Jump to content
RXB

GPLHOW2

Recommended Posts

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.

[url="http://www.youtube.com/watch?v=Cs4D_Gn0Le8"]http://www.youtube.c...h?v=Cs4D_Gn0Le8[/url] Edited by RXB

Share this post


Link to post
Share on other sites
[quote name='RXB' timestamp='1302834834' post='2258660']
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.

[url="http://www.youtube.com/watch?v=Cs4D_Gn0Le8"]http://www.youtube.c...h?v=Cs4D_Gn0Le8[/url]
[/quote]

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 :thumbsup:

Share this post


Link to post
Share on other sites
[quote name='lucien2' timestamp='1302855097' post='2258808']
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]


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.

Share this post


Link to post
Share on other sites
Here is the next package: GPLHOW2B

And the Video:

http://www.youtube.com/watch?v=pW5lLx3cIho

Share this post


Link to post
Share on other sites
GPLHOW2C so this one is a bit more useful. How to make a Screen Editor like TI Writer or Editor Assembler.



http://www.youtube.com/watch?v=X-aTiHojrMg Edited by RXB

Share this post


Link to post
Share on other sites
Excellent stuff! :cool:

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 :D

Share this post


Link to post
Share on other sites
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

[spoiler]
       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
[/spoiler] Edited by lucien2

Share this post


Link to post
Share on other sites
[quote name='Vorticon' timestamp='1302942916' post='2259465']
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]

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.

Share this post


Link to post
Share on other sites
[quote name='lucien2' timestamp='1303041817' post='2260029']
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.

[media]http://www.youtube.com/watch?v=ZwNSQdbXfVY[/media]

[spoiler][code]
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
[/code][/spoiler]
[/quote]

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 by RXB

Share this post


Link to post
Share on other sites
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 Edited by RXB

Share this post


Link to post
Share on other sites
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 by lucien2

Share this post


Link to post
Share on other sites
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.

http://www.youtube.com/watch?v=ykQVkFzEaXc

Share this post


Link to post
Share on other sites
[quote name='Tony Knerr' timestamp='1303253990' post='2261958']
[quote name='RXB' timestamp='1303120748' post='2260719']
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.

[url="http://www.youtube.com/watch?v=ykQVkFzEaXc"]http://www.youtube.c...h?v=ykQVkFzEaXc[/url]
[/quote]


Getting these errors when assembling.
Are there image files available after the successful application of the patches?

Tony
[/quote]

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 by RXB

Share this post


Link to post
Share on other sites
[quote name='Tony Knerr' timestamp='1303266375' post='2262135']
[quote name='RXB' timestamp='1303257969' post='2262010']
[quote name='Tony Knerr' timestamp='1303253990' post='2261958']
[quote name='RXB' timestamp='1303120748' post='2260719']
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.

[url="http://www.youtube.com/watch?v=ykQVkFzEaXc"]http://www.youtube.c...h?v=ykQVkFzEaXc[/url]
[/quote]


Getting these errors when assembling.
Are there image files available after the successful application of the patches?

Tony
[/quote]

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.
[/quote]

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
[/quote]

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 by RXB

Share this post


Link to post
Share on other sites
[quote name='Tony Knerr' timestamp='1303291801' post='2262315']
[quote name='RXB' timestamp='1303268041' post='2262148']
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.
[/quote]

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
[/quote]

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 by RXB

Share this post


Link to post
Share on other sites
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.

http://www.youtube.com/watch?v=btUltSVB77s

Share this post


Link to post
Share on other sites
[quote name='Tony Knerr' timestamp='1303334657' post='2262717']
[quote name='RXB' timestamp='1303302015' post='2262361']
[quote name='Tony Knerr' timestamp='1303291801' post='2262315']
[quote name='RXB' timestamp='1303268041' post='2262148']
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.
[/quote]

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
[/quote]

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.
[/quote]

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
[/quote]

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.

Share this post


Link to post
Share on other sites
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)


http://www.youtube.com/watch?v=MXllZjvcXWg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...