Jump to content
Sign in to follow this  
InsaneMultitasker

Adventure Cartridge 80 column development and GPL

Recommended Posts

7 hours ago, publicarni said:

I just tested it on a real TI-99 with EVPC 80 column card and it works great,

also saving and loading a game on a real disk ... 🙂

Thank you!  That is good news. Are you using the FG99 to load the game file? 

 

Your test reminds me that there are TI devices like the HSGPL that can make use of cartridges, so I will make a gram file later today for hsgpl, gram kracker, etc. 

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, Asmusr said:

That's strange. Even though it goes through GPL it should end up calling either DSR subprogram >16 or FILES, right?

I am using dsr subprogram >16 to set CALL FILES(1).   The code I introduced looks similar to this, I'll have to check the binary for its location in grom.

 

       CALL  [email protected]              call our routine
       BYTE  >01                          with a parameter of 1

 

docallfiles

       FETC  @>834C                # of files from parameter
       DST   >0116,[email protected]>077E    set up 'pab'
       DST   >077E,@>8356     pointer
       CALL  [email protected]>10                 dsrlnk
       BYTE  >0A                      subprogram list

 

  • Like 2

Share this post


Link to post
Share on other sites

RXB has CALL FILES(0) or up to CALL FILES(15) and they all work.

*********************************************************** 
* CALL FILES(number)  0 to 15                             *
***********************************************************
SFILES DATA SSIZE
       STRI 'FILES'       *   FILES
       DATA $+2
       CALL COMB          *   (
       CALL CLSALL        *   Close all open files
       CALL RXBFIL        *   Set files
       BR   RXBNEW        *   Go do a NEW
RXBFIL CALL SUBLP3        *   Get Files value
       DCZ  @FAC          *   Zero?
       BS   RXBF0         *   Yes, RXB CALL FILES(0)
       DCHE 16,@FAC       *   16 or more to high
       BS   ERRBV         *   Yes, BAD VALUE error
       CEQ  RPARZ,@CHAT   *   )?
       BR   ERRSYN        *   SYNTAX ERROR 
       XML  PGMCHR        *   Skip )
       DCLR @FAC2         *   Clear         
       ST   @FAC1,@FAC2   *   Load file value
       DST  >0116,[email protected] *   Set files buffer space
       DCHE 256,@PAD      *   
       BR   DSRDSS        *
       ADD  >10,@VROAZ+1  *
DSRDSS DST  VROAZ,@FAC12  *
       CALL LINK          *
       BYTE >0A           *
       ST   @ERCODE,@PAD2 *
       SRL  4,@FAC6       *
       CZ   @FAC6         *
       BR   ERRFE         *
       CEQ  >20,@PAD2     *
       BS   ERRFE         *
       RTN                *
RXBF0  CEQ  RPARZ,@CHAT   * )?
       BR   ERRSYN        * SYNTAX ERROR 
       XML  PGMCHR        * Skip )
       DST  >3CEF,@>8370  * Set FILE(0) VDP Highest address 
       RTN                * Return

 

Share this post


Link to post
Share on other sites
47 minutes ago, RXB said:

RXB has CALL FILES(0) or up to CALL FILES(15) and they all work.

Thanks Rich.  I tried the included RXB2020 (in js99er) and CALL FILES(1) resulted in an XB error message.  Maybe the same issue my Adventure code runs into? 

 

I then tested the included BASIC and XBASIC 2.9.  Both succeeded with this log entry: Executing disk DSR FILES routine (n = 1).  So we know the DSR routine works.

 

Js99er doesn't have grom view/debug, so I'm at a loss why it fails there and not in Classic99.  I'll try to trace the BASIC CALL FILES routine in classic99 for clues.

 

 

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, InsaneMultitasker said:

Thanks Rich.  I tried the included RXB2020 (in js99er) and CALL FILES(1) resulted in an XB error message.  Maybe the same issue my Adventure code runs into? 

 

I then tested the included BASIC and XBASIC 2.9.  Both succeeded with this log entry: Executing disk DSR FILES routine (n = 1).  So we know the DSR routine works.

 

Js99er doesn't have grom view/debug, so I'm at a loss why it fails there and not in Classic99.  I'll try to trace the BASIC CALL FILES routine in classic99 for clues.

 

 

Just tested RXB 2020 and 2021 with FinalGrom in TI99/4A console with NO 32K or P-BOX just console

CALL FILES(0) works fine VDP stack size 13144 bytes free

 

CALL FILES(1) up to CALL FILES(15) all crash without a DSK Controller.

Suppose I could created a RXB only version that does what the DSK Controller does...

  • Like 1

Share this post


Link to post
Share on other sites
10 minutes ago, RXB said:

Just tested RXB 2020 and 2021 with FinalGrom in TI99/4A console with NO 32K or P-BOX just console

CALL FILES(0) works fine VDP stack size 13144 bytes free

 

CALL FILES(1) up to CALL FILES(15) all crash without a DSK Controller.

Suppose I could created a RXB only version that does what the DSK Controller does...

Thanks for testing. Without a controller, I would be inclined to just ignore the call files error and skip the routine (the DSRLNK should return an error).   

 

I sent Rasmus a PM with what I believe is the reason js99er reacts differently.  I'll hold on any further testing or comments until he has a chance to review. 

  • Like 2

Share this post


Link to post
Share on other sites
9 hours ago, InsaneMultitasker said:

Thanks for testing. Without a controller, I would be inclined to just ignore the call files error and skip the routine (the DSRLNK should return an error).   

 

I sent Rasmus a PM with what I believe is the reason js99er reacts differently.  I'll hold on any further testing or comments until he has a chance to review. 

Fixed. It was an error in the subprogram list in the DSR, which meant that subprogram >16 was never found. 

  • Like 6
  • Thanks 2

Share this post


Link to post
Share on other sites
6 hours ago, Asmusr said:

Fixed. It was an error in the subprogram list in the DSR, which meant that subprogram >16 was never found. 

Thank you,  the subprogram >16 is now successfully executing from the Adventure 80 cartridge. 

  • Like 2

Share this post


Link to post
Share on other sites
On 3/12/2022 at 3:25 PM, InsaneMultitasker said:

First post has been updated with the current .bin file and a TIFILES-format gram file.

See the Geneve OS Development topic for the program PLAYE, which can be used to run the Adventure 80 cartridge GROM file on the Geneve.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thierry Nouspikel's "The TI-99/4A Tech Pages" has lots of great info there.

There are also disassembled GPL listings of the E/A, Mini-Memory, and TI-Writer carts.

 

  • Like 3

Share this post


Link to post
Share on other sites
1 hour ago, InsaneMultitasker said:

Is there a "simple" list of GPL instructions and their operation?  Like a Cliff Notes for the GPL language? 

You can start with the instruction list starting at page J-1 of the GPL Programmer's Guide and dive into section 4 of the document for extremely detailed explanations. Thierry Nouspikel's pages also have a lot of useful data here.

gpl_programmers_guide-OCRed.pdf

  • Like 3

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.
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...