RXB Posted April 15, 2011 Share Posted April 15, 2011 (edited) Ok so this is a thread of packages and Videos on GPL HOW 2 and each package is going to have a letter behind it to indicate the version. i.e. GPLHOW2A, GPLHOW2B, GPLHOW2C and so on…. This is GPLHOW2A and a Video. GPLHOW2A.zip Edited April 15, 2011 by RXB 3 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted April 15, 2011 Share Posted April 15, 2011 Ok so this is a thread of packages and Videos on GPL HOW 2 and each package is going to have a letter behind it to indicate the version. i.e. GPLHOW2A, GPLHOW2B, GPLHOW2C and so on…. This is GPLHOW2A and a Video. Excellent stuff! Thanks for doing the video. This is the first time I ever saw a GPL development cycle. This stuff doesn't stop to amaze me, even in 2011. Very cool Quote Link to comment Share on other sites More sharing options...
lucien2 Posted April 15, 2011 Share Posted April 15, 2011 Thanks again Just a question: The code is located at >C000 with the GROM directive, but what is located at >0000 with the AORG directive ? Quote Link to comment Share on other sites More sharing options...
RXB Posted April 15, 2011 Author Share Posted April 15, 2011 Thanks again Just a question: The code is located at >C000 with the GROM directive, but what is located at >0000 with the AORG directive ? AORG >0000 does nothing at all. If you look at my RXB source code I use AORG alot to keep the code byte per byte where it is supposed to be. An example would be say I want the code to be on a even address, then I would put in AORG >0010 to jump foward from say a odd address like >0007 GPL does not care if it is even or not but will anounce it in the LIST file that the address is not even. So I just used the AORG out of habit, sorry. By the way you will get a kick out of the next Demo and video. Quote Link to comment Share on other sites More sharing options...
RXB Posted April 15, 2011 Author Share Posted April 15, 2011 Here is the next package: GPLHOW2B And the Video: GPLHOW2B.zip 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted April 15, 2011 Share Posted April 15, 2011 Thanks! This is very helpful. Quote Link to comment Share on other sites More sharing options...
RXB Posted April 16, 2011 Author Share Posted April 16, 2011 (edited) GPLHOW2C so this one is a bit more useful. How to make a Screen Editor like TI Writer or Editor Assembler. GPLHOW2C.zip Edited April 16, 2011 by RXB 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted April 16, 2011 Share Posted April 16, 2011 Excellent stuff! About the GPLHOW2B sprite demo. Just took a quick glance at the source code. It seems you are using the sprite motion routine that's in the ISR. Wonder how fast sprite motion would be if not using ISR sprite motion. hhhmm.. makes we wonder how they did this in Car Wars. If I'm not mistaking it was discussed a while ago that's a GPL game. And you really can't say that's a slow game. It's fast and difficult as hell Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted April 16, 2011 Share Posted April 16, 2011 It looks like I may have to write my own AMS based text editor eventually... This GPL thing is really fascinating! Thanks for the demo's. Quote Link to comment Share on other sites More sharing options...
lucien2 Posted April 17, 2011 Share Posted April 17, 2011 (edited) I did this as a small exercise: Roll a dice and count the occurences of each number. Is there an easier way to display a variable? I found that routine at >2F7C in the "Art of Assembly" book. GROM >C000 * GROM HEADER DATA >AA00,>0100,>0000 DATA MENU DATA >0000,>0000,>0000,>0000 MENU DATA >0000 DATA START STRI 'DICE' * SYSTEM VARIABLES ARG1 EQU >835C ARG2 EQU >835D ARG3 EQU >835E ARG4 EQU >835F ARG5 EQU >8360 ARG6 EQU >8361 * 6 COUNTERS (WORDS) CNTS EQU >8316 * MAIN START RAND 5 ST @>8378,@FAC+1 CLR @FAC DSLL 1,@FAC DINC @CNTS(@FAC) ST @FAC+1,@ARG1 CLR @ARG2 DST @CNTS(@FAC),@ARG3 CALL PRINT B START * PRINT UNSIGNED WORD DECIMAL * ARG1 ROW * ARG2 COL * ARG3 VALUE PRINT CLR @FAC ST @ARG1,@FAC+1 DSLL 5,@FAC ADD @ARG2,@FAC+1 CALL >2F7C ST @>8367,@FAC+3 CLR @FAC+2 CLR @ARG5 MOVE @ARG5,@>8300(@FAC+2),V*FAC RTN END Edited October 9, 2016 by lucien2 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted April 17, 2011 Author Share Posted April 17, 2011 It looks like I may have to write my own AMS based text editor eventually... This GPL thing is really fascinating! Thanks for the demo's. Actually I had considered writing a AMS version of text editor. But wanted to do it with a 80 column card that way I could include graphics. The idea was to use 80 column bit mapped mode and text mode. It would not be PC standards but for TI it would be a giant leap. Quote Link to comment Share on other sites More sharing options...
RXB Posted April 17, 2011 Author Share Posted April 17, 2011 (edited) I did this as a small exercise: Roll a dice and count the occurences of each number. Is there an easier way to display a variable? I found that routine at >2F7C in the "Art of Assembly" book. http://www.youtube.com/watch?v=ZwNSQdbXfVY GROM >C000 * GROM HEADER DATA >AA00,>0100,>0000 DATA MENU DATA >0000,>0000,>0000,>0000 MENU DATA >0000 DATA START STRI 'DICE' * SYSTEM VARIABLES ARG1 EQU >835C ARG2 EQU >835D ARG3 EQU >835E ARG4 EQU >835F ARG5 EQU >8360 ARG6 EQU >8361 * 6 COUNTERS (WORDS) CNTS EQU >8316 * MAIN START RAND 5 ST @>8378,@FAC+1 CLR @FAC DSLL 1,@FAC DINC @CNTS(@FAC) ST @FAC+1,@ARG1 CLR @ARG2 DST @CNTS(@FAC),@ARG3 CALL PRINT B START * PRINT UNSIGNED WORD DECIMAL * ARG1 ROW * ARG2 COL * ARG3 VALUE PRINT CLR @FAC ST @ARG1,@FAC+1 DSLL 5,@FAC ADD @ARG2,@FAC+1 CALL >2F7C ST @>8367,@FAC+3 CLR @FAC+2 CLR @ARG5 MOVE @ARG5,@>8300(@FAC+2),V*FAC RTN END Actually you have found a very elegant way of doing this. I have a very involved way of doing it in the RXB 2001 source code, but depends on XB and not the Basic routines. Also as RXB is a cartridge I had to avoid using Basic routines as I had no idea if they would be there, I did this to stay compatible with any configuration. Take a look at page 3-19 of the GPL manual. Or just load the PDF and use FIND for XPT. It shows using XPT and YPT and CB to write or read the screen. Or page 4-50 the FMT command might be a better choice. DST @ARG1,@YPT * YPT and XPT are the standard row and column values built into the TI OS. FMT * Format command BIAS >00,5,@ARG3 * BIAS 0 added to characters,5 is the number of characters to put on screen,use characters in ARG3 FEND * End of Format command Congrats on a very well written GPL program. Also take a look at address >14B0 in TI Intern GPL GROM 0 for the Cassette routine as it uses FMT also. You can look at my RXB 2001 Source code and find HPUT and VPUT in how I did those. Many ways to tackle the problem. The attachment is another way. By the way I am working on EA BASIC support routines added to TI BASIC in the GROMS and will put out a GPLHOW2 when done. Edited April 17, 2011 by RXB Quote Link to comment Share on other sites More sharing options...
RXB Posted April 17, 2011 Author Share Posted April 17, 2011 (edited) Attachment did not work this is another try at it. Look at the section of GET A STRING and PUT IT on screen. GKDSTR I think is the name. Here is the code you might want. <0228> C7E3 08 FMT * FORMAT <0229> C7E4 FC,60 SCRO >60 * BIAS for XB or BASIC 96 Decimal <0230> C7E6 FE,01 ROW 1 <0231> C7E8 FF,0D COL 13 <0232> <0001> C7EA E9,4C HSTR 10,@FAC+2 * this one uses a string of 10 characters from pointer @FAC+2 <0002> C7EC FB FEND * End of Format Putstringonscreen.txt Edited April 17, 2011 by RXB 1 Quote Link to comment Share on other sites More sharing options...
lucien2 Posted April 18, 2011 Share Posted April 18, 2011 (edited) Ok thanks. So, there is not an easier way. The problem with the HSTR instruction is that it needs a constant length, and the >2F7C routine return a variable length at >8361. I will try, but I think it puts something just after the characters stored at >8367. EDIT: The routine returns the address of the characters just after them (at >8367), so the last character is always at >8366 but the length is variable. Edited April 18, 2011 by lucien2 Quote Link to comment Share on other sites More sharing options...
RXB Posted April 18, 2011 Author Share Posted April 18, 2011 GPLHOW2D This one is huge as it is Editor Assembler TI BASIC support. CALL CHARPAT, CALL LOAD, CALL INIT, CALL LINK, CALL POKEV, CALL PEEKV The source code has quite a few comments i will update it when I add AMS support. You can not use the GPL LINKER on this one as it is in GROM 1 and 2. GPLHOW2D.zip 2 Quote Link to comment Share on other sites More sharing options...
John Doe Posted April 19, 2011 Share Posted April 19, 2011 (edited) Edited February 22, 2014 by Tony Knerr Quote Link to comment Share on other sites More sharing options...
RXB Posted April 20, 2011 Author Share Posted April 20, 2011 (edited) GPLHOW2D This one is huge as it is Editor Assembler TI BASIC support. CALL CHARPAT, CALL LOAD, CALL INIT, CALL LINK, CALL POKEV, CALL PEEKV The source code has quite a few comments i will update it when I add AMS support. You can not use the GPL LINKER on this one as it is in GROM 1 and 2. Getting these errors when assembling. Are there image files available after the successful application of the patches? Tony I see the problem your pic shows ASSEMBLER EXECUTING The GPL Assembler in the package shows GPL ASSEMBLER EXECUTING so you are not using my GPL Assembler, you are using something else. Also it states what pass it is on Pass 0 to Pass 3 or more. Edited April 20, 2011 by RXB Quote Link to comment Share on other sites More sharing options...
John Doe Posted April 20, 2011 Share Posted April 20, 2011 (edited) Edited February 22, 2014 by Tony Knerr Quote Link to comment Share on other sites More sharing options...
RXB Posted April 20, 2011 Author Share Posted April 20, 2011 (edited) GPLHOW2D This one is huge as it is Editor Assembler TI BASIC support. CALL CHARPAT, CALL LOAD, CALL INIT, CALL LINK, CALL POKEV, CALL PEEKV The source code has quite a few comments i will update it when I add AMS support. You can not use the GPL LINKER on this one as it is in GROM 1 and 2. Getting these errors when assembling. Are there image files available after the successful application of the patches? Tony I see the problem your pic shows ASSEMBLER EXECUTING The GPL Assembler in the package shows GPL ASSEMBLER EXECUTING so you are not using my GPL Assembler, you are using something else. Also it states what pass it is on Pass 0 to Pass 3 or more. Finally got this to work, had to disable the hard drive. As soon as a CALL INIT is done, though, the beep from the power up screen sounds continually (1400 khz tone). Disk is attached with files in GK and HSGPL format. HSGPL files saved from HSGPL LOAD program, GK files saved from CARTSAVE. Tony Cool are you saying what I said and that CALL INIT is not the bug of (1400 khz tone) from my GPL code but some other bug? I have no way to test GPL other then PC99 and Classic99 so I was trying to find a bug in my code. Edited April 20, 2011 by RXB Quote Link to comment Share on other sites More sharing options...
John Doe Posted April 20, 2011 Share Posted April 20, 2011 (edited) Edited February 22, 2014 by Tony Knerr Quote Link to comment Share on other sites More sharing options...
RXB Posted April 20, 2011 Author Share Posted April 20, 2011 (edited) Cool are you saying what I said and that CALL INIT is not the bug of (1400 khz tone) from my GPL code but some other bug? I have no way to test GPL other then PC99 and Classic99 so I was trying to find a bug in my code. Apparently the bug is in your CALL INIT, as the tone starts once enter is pressed after that text is entered. I've done all the compiling, testing, and dumping of the TI Groms for this exercise using the MESS Emulator, which has HSGPL emulation. It keeps me from having to walk down the basement for my TI or Geneve. It would be an excellent tool for what you're doing now, but there's a learning curve involved as the HSGPL is more complicated and less forgiving than other Gram devices. Tony OK i just finished GPLHOW2E and will put that out there. It is the DMII cartridge Source code and how to make your own. I will keep looking at the code for GPLHOW2D but the only thing that talks to scratch pad that I can see so far is >8300 as that is used by Basic as a counter of some kind, will have to trace it back. If that is the case then a Basic AMS support is just dead. XB does not use >8300 to >8364 so I only have to save a few bytes to use Scratch pad most is free, but Basic uses scratch pad just all over the place and is very badly written. Basic looks like it was written by a committee that never met. Edited April 20, 2011 by RXB Quote Link to comment Share on other sites More sharing options...
RXB Posted April 20, 2011 Author Share Posted April 20, 2011 GPLHOW2E This one is the DMII cartridge upgrades slightly and is 340 sectors of DV80 source code. This has much more data on how GPL works and how to do things. I used up to 16 characters for Symbol table names so less comments on the side have to be used. Also included a VDP DV80 file showing all the VDP address used and what they do. This one will be a good one to look over if you want to learn GPL. Also here is a video. GPLHOW2E.zip 2 Quote Link to comment Share on other sites More sharing options...
John Doe Posted April 20, 2011 Share Posted April 20, 2011 (edited) Edited February 22, 2014 by Tony Knerr Quote Link to comment Share on other sites More sharing options...
RXB Posted April 21, 2011 Author Share Posted April 21, 2011 Cool are you saying what I said and that CALL INIT is not the bug of (1400 khz tone) from my GPL code but some other bug? I have no way to test GPL other then PC99 and Classic99 so I was trying to find a bug in my code. Apparently the bug is in your CALL INIT, as the tone starts once enter is pressed after that text is entered. I've done all the compiling, testing, and dumping of the TI Groms for this exercise using the MESS Emulator, which has HSGPL emulation. It keeps me from having to walk down the basement for my TI or Geneve. It would be an excellent tool for what you're doing now, but there's a learning curve involved as the HSGPL is more complicated and less forgiving than other Gram devices. Tony OK i just finished GPLHOW2E and will put that out there. It is the DMII cartridge Source code and how to make your own. I will keep looking at the code for GPLHOW2D but the only thing that talks to scratch pad that I can see so far is >8300 as that is used by Basic as a counter of some kind, will have to trace it back. If that is the case then a Basic AMS support is just dead. XB does not use >8300 to >8364 so I only have to save a few bytes to use Scratch pad most is free, but Basic uses scratch pad just all over the place and is very badly written. Basic looks like it was written by a committee that never met. Is there room for code to kill the sound generators at the end of the CALL INIT code? That way, CALL INIT will produce a short beep to let you know it has executed. Alternately, do you change the interrupt level anywhere in the routine? That may be the cause of the tone. Tony Good news got it fixed. And as a bonus the AMS BASIC support also will be in the same package. So Basic will have EA Cart support and AMS support, and memory left over. Quote Link to comment Share on other sites More sharing options...
RXB Posted May 6, 2011 Author Share Posted May 6, 2011 GPLHOW2F This package and video is on TI BASIC to GPL HOW2. Took ANIMATION in TI Basic from 99er Mag and converted it to GPL. Some step by step on how it is done and fully commented source code also. ( I also included TXT files to for quick viewing of source files) GPLHOW2F.zip 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.