Jump to content
IGNORED

GPLHOW2


RXB

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.

 

GPLHOW2A.zip

Edited by RXB
  • Like 3
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
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

Link to comment
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.

 

 

 

       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 by lucien2
  • Like 2
Link to comment
Share on other sites

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.

Link to comment
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

 

 

  	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 by RXB
Link to comment
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

Putstringonscreen.txt

Edited by RXB
  • Like 1
Link to comment
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
Link to comment
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.

 

GPLHOW2D.zip

  • Like 2
Link to comment
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.

 

 

 

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 by RXB
Link to comment
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.

 

 

 

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

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 by RXB
Link to comment
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.

 

GPLHOW2E.zip

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 3 weeks later...

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

  • Like 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...