Jump to content
IGNORED

RXB 2022 RELEASED


RXB

Recommended Posts

  • 2 months later...
On 4/6/2022 at 6:00 PM, RXB said:

RXB 2022 RELEASED

Outstanding! The full-page ad should say:

 

"RXB 2022: Not one byte is wasted!"

 

Lots of hard work went into this, and thanks! Can't wait to try out all the SAMS capabilities.

 

And I really appreciate the little hidden jokes - 

"But if the ALPHALOCK key is on numeric-variable will be non-zero i.e. -26294 just for giggles that is hex >994A."

  • Like 3
Link to comment
Share on other sites

Hey Rich,

Is there any way RXB can be made to be recognized by JJ's BOOT program?

Or can BOOT be modified to recognize RXB?

I use BOOT exclusively as  a start menu and have for many years. Using the "[ get menu" and "] put menu" I have ALL the software I use to compose Yesterday's News available very quickly. I also have many other menus I page in when needed. For me, it's the greatest.  

Link to comment
Share on other sites

2 hours ago, sparkdrummer said:

Hey Rich,

Is there any way RXB can be made to be recognized by JJ's BOOT program?

Or can BOOT be modified to recognize RXB?

I use BOOT exclusively as  a start menu and have for many years. Using the "[ get menu" and "] put menu" I have ALL the software I use to compose Yesterday's News available very quickly. I also have many other menus I page in when needed. For me, it's the greatest.  

JJ's BOOT I used to use called MENU and it is hard coded to XB version 110 starting line at hex >633B

and that is an issue for RXB newest versions as this fails initialization for VDP STACK and RAM locations can be modified in RXB.

You see never use hard coded address for carts as this assumes there never will be an upgrade to that cart.

What should be done is see the address in the menu of that cart and go to that address.

If you look at the main menu you see the second title screen of a cart and that screen also has the starting address of cart.

RXB points to a much different address like RXB 2022D and 2022E the one I am working on has >7E63 but that could change later.

I would look for >633B in JJ's BOOT and change it to >7E63 to use RXB 2022D or 2022E.

The problem is in JJ's BOOT that assumed no changes to XB cart.

 

  • Like 2
Link to comment
Share on other sites

3 hours ago, sparkdrummer said:

Well, no success - I used John Birdwell's Disk Utilities and searched in BOOT and BOOU for 633B in hex and found nothing.

Yea ran into this before like Funnelweb was a problem that uses a oddball GPL address in XB to jump into XB and would crash RXB.

All software should use the address in Cartridge Menu Header of GPL to get the start address, never use a hardcoded address.

The Cartridge Menu Header will never be wrong, a hard coded address never allows changes or updates.

Link to comment
Share on other sites

Try >6372.   Some of the boot/menu programs check this address and assume the cart is NOT xb if it is different.  Long ago, this was a simple, consistent validation check.

 

Sample code from MENU:

 

XBPROG LI   R1,>6372
       C    R1,@CARTAD
       JEQ  RUNXB
       LI   R7,6         'no xb'
       B    @PUTERR

 

  • Like 2
Link to comment
Share on other sites

2 hours ago, InsaneMultitasker said:

Try >6372.   Some of the boot/menu programs check this address and assume the cart is NOT xb if it is different.  Long ago, this was a simple, consistent validation check.

 

Sample code from MENU:

 

XBPROG LI   R1,>6372
       C    R1,@CARTAD
       JEQ  RUNXB
       LI   R7,6         'no xb'
       B    @PUTERR

 

Yea assumed that the XB cart never ever is updated or changed. 

Nice suggestion but RXB >6372 is same command not changed.

I seem to remember many years ago I ran into this, and they were using some really oddball address that was not even a GPL command like between GPL commands.

Anyway this is the RXB GPL Code at >6372:

***********************************************************
*            START OF BASIC INTERPETER
***********************************************************
* GROM Address >6372 TOPLEV
       AORG >0372
TOPLEV CLR  V@LODFLG           Initialize temp area
* RXB PATCH CODE USER *************************************
*        MOVE 77,V@LODFLG,V@LODFLG+1
*        ST   5,@KEYBD          Select full keyboard
*        SCAN
*        CZ   @KEYBD
*        BR   G6388             99/4A Console?
*       ST   >01,V@CONFLG      Select 99/4A console
       CALL SET24K
       B    G6388
****** NEW RXB TITLE SCREEN LOCATION >C000 ****************
RXBRUN EQU  >D100
RUNRXB B    RXBRUN
***********************************************************

       AORG >0388
*
G6388  CLR  @KEYBD
       DST  NLNADD,V@BUFSRT   Initialize edit-buffer start
       DST  NLNADD,V@BUFEND   Initialize edit-buffer end
       MOVE 2,G@ATNZZ,@INTRIN Get address of ATNZZ
       AND  >1F,@INTRIN       Throw away the BR opcode
       DADD >5B,@INTRIN       Address of polynomial constan
       ST   >31,V@LODFLG      indicate try auto-boot
*----------------------------------------------------------
* Add the following line for fixing "MEMORY FULL" error
* occurring during MERGE execution will leave the file open
* to disk DSR bug, 5/19/81
SZNEW  CLR  V@MRGPAB          Initialize merged temporary
*                              for PAB pointer
*----------------------------------------------------------
       ST   RSTK,@SUBSTK   * Load base of subroutine stack
       CALL CHRTA2         * Load character table
       CLR  @FLAG          * Initialize flag byte
       DCLR @BUFLEV        * Initialize crunch buffer level
       CALL CLSALL         * Close all open files
       CLR  @DATA          * Initialize READ/DATA pointer
* RXB PATCH CODE VDP STACK LOCATION
*       DST  VRAMVS,@VSPTR * Initialize base of value stack
       DST  @>836E,@VSPTR  * Initialize base of value stack
       DST  @VSPTR,@STVSPT * Save in permanent base
       DST  @VSPTR,V@SAVEVP
       CALL INITPG         * Initialize program & s.t.
       CALL INTRND         * Initialize random number
       CZ   V@LODFLG
       BS   TOPL02            If need auto-boot
* RXB PATCH CODE *************
*      CLR  V@LODFLG          Won't ever need to do again
       BR   G63D0
* RXB PATCH CODE ******************************************
       AORG >03D0
G63D0  CALL AUTOLD            Attempt an auto-boot
*     Label TOPL02 is used by auto-boot in detection of err
ERRRDY EQU  $
TOPL02 CALL G6A84             Say READY
       BYTE 0               *  returns to TOPL15
TOPL05 CALL INITPG            Initialize program space
TOPL10 CALL KILSYM            Kill the symbol table
* RXB PATCH CODE *************
* TOPL15 AND  >F7,@FLAG         If error in UDF execution
TOPL15 B    MYSRCH
G63E0  ST   5,@KEYBD          Select full keyboard
       SCAN
       CLR  @KEYBD
TOPL20 ST   RSTK,@SUBSTK      Initialize subroutine stack
TOPL25 DST  NLNADD,@VARW      Screen addr = lower left corn
       CLR  @RAMFLG           Clear the RAMFLG
       CLR  @PRGFLG           Make sure not in program mode
* Check for auto-num mode
       CLOG >01,@FLAG         If auto-num on
       BS   TOPL35
       DADD @CURINC,@CURLIN   Generate new line number
       CGE  0,@CURLIN         >32767?
       BS   TOPL30
       AND  >FE,@FLAG         If out of range->exit auto-nu
       B    TOPL35            Merge in below
* Must be a long branch!!
TOPL30 DCEQ @ENLN,@STLN       Line might exist
       BS   G6412
       DST  @CURLIN,@FAC      Ready for program search
       XML  SPEED
       BYTE SEETWO          * Search for existence of line
       BS   EDTZ05            COND set = line found
G6412  XML  SCROLL            Scroll to the next line
       DST  @CURLIN,@ARG2     New line #
       CALL DISO              Display the line number
       DINC @VARW             Following by a space
       BR   G6420
TOPL35 XML  SCROLL            Scroll the screen
G6420  ST   >9E,V@NLNADD-1    Display the prompt character
       CALL G6A76             Read in a line
       CALL SAVLIN            Save input line for recall
*    Crunch the input line
       CLR  @ERRCOD           Assume no-error return
       DST  CRNBUF,@RAMPTR    Initialize crunch pointer
       XML  CRUNCH            CRUNCH the input line
       BYTE 0              *  Normal crunch mode
TOPL42 CASE @ERRCOD+1
       BR   TOPL45            No error detected
       BR   ERRSYN            *SYNTAX ERROR
       BR   ERRBLN            *BAD LINE NUMBER
       BR   ERRLTL            *LINE TOO LONG
       BR   ERRNTL            *NAME TOO LONG
       BR   ERRNQS            *UNMATCHED QUOTES
       BR   ERRCIP            *COMMAND ILLEGAL IN PROGRAM
       BR   ERRIVN            *UNRECOGNIZED CHARACTER
TOPL45 DCZ  @FAC              Line # present
       BS   TOPL55
       CLOG >01,@FLAG         Not AUTONUM
       BR   G645B
       CEQ  >0D,@RKEY         Must be up or down
       BS   G645B
       CEQ  >01,@CHAT         Start EDIT mode
       BR   G645B
       B    EDTZZ0
G645B  CALL EDITLN            EDIT the line into the progra
       BS   TOPL25            If didn't change the line
       BR   TOPL10
*    Jump always
TOPL55 CEQ  >01,@CHAT         If blank line - ignore
       BS   TOPL25
       CEQ  >EB,V@CRNBUF
       BS   SZSIZE
       CH   >08,V@CRNBUF      If imperative
* GKXB Branch code for new commands DEL, COPY, and MOVE.
       BS   NEWCMD            Go here to test for new
*                              keywords
       DST  CRNBUF+1,@PGMPTR  Anticipate usage of PGMCHR
       XML  PGMCHR            Prepare CHAT for OLD and SAVE
       CASE V@CRNBUF          Select the keyword
       BR   SZNEW             NEW                 0
       BR   SZCONT            CONTINUE            1
       BR   SZLIST            LIST                2
       BR   SZBYE             BYE                 3
       BR   SZNUM             NUMBER              4
       BR   SZOLD             OLD                 5
       BR   SZRES             RESEQUENCE          6
       BR   SZSAVE            SAVE                7
       BR   SZMERG            MERGE               8
*    AUTO-BOOT - attempt a ---->   RUN "DSK1.LOAD"
AUTOLD MOVE 11,G@DSCLOD,V@CRNBUF
       DST  CRNBUF,@PGMPTR    DSK1.LOAD is in crunch buffer
* RXB PATCH CODE *************
*      BR   SZRUNL            Go to the RUN "NAME" CODE
       BR   RUNRXB
********************************* RUN *********************
SZRUN  CEQ  STRINZ,@CHAT      Ready for 'RUN "NAME" ----
       BR   G64BF
SZRUNL DST  @PGMPTR,@FAC14    Save pointer to name
       XML  PGMCHR            Get the length of the string
       ST   @CHAT,@FAC13      Put it in FAC13
       CLR  @FAC12            Make it a double byte
       DADD @FAC12,@PGMPTR    Skip the string
       XML  PGMCHR            To see there is line no. ahea
       CALL G8024             Only RUN "NAME" ?
       BR   ERRSYN            No - junk on end so error
       ST   STRINZ,@CHAT      Prepare for LOAD routine
       DST  @FAC14,@PGMPTR    Restore the saved PGMPTR
       CALL OLD1              Load the program
       BR   SZRUN0            Go ahead from here
*                              No RUN "NAME" : just run the
*                              current program in memory
G64BF  CEQ  >C9,@CHAT         Is there a line # after RUN?
       BR   G64D5
       XML  PGMCHR            Get the line number
       ST   @CHAT,@FAC        Put it in FAC for SEETWO
       XML  PGMCHR
       ST   @CHAT,@FAC1
       XML  PGMCHR            Should be EOS now
       CALL G8024             Is it?
       BS   SZRUN2            Yes - Go ahead from here
*                              Just 'RUN'
G64D5  CALL G8024             Should be EOS now
       BR   ERRSYN            No-SYNTAX ERROR
SZRUN0 DCEQ @ENLN,@STLN       Refuse without program
       BS   ILLST
       DST  @ENLN,V@START     Defualt to beginning
       DSUB 3,V@START         Offset into the table
       BR   SZRUN1            Merge in below
*    Jump always
SZRUN2 DCEQ @ENLN,@STLN       Refuse without program
       BR   G64F9
ILLST  XML  SCROLL            Scroll the screen for message
       CLR  @PRGFLG           Prevent line # printing
WRNNPP CALL G6A82
       BYTE 29                * NO PROGRAM PRESENT
       BR   TOPL15
*    Condition can never be set since line 0 is prohibited
G64F9  XML  SPEED
       BYTE SEETWO          * Find the line in the program
       BR   ERRLNF            * LINE NOT FOUND
       DST  @EXTRAM,V@START   Program run starts here<<<<<<<<<<
* GKXB RUN code for color change.
SZRUN1 BR   RUNPAT            Change colors.
G6504  CALL CLSALL            Close any open files
       DEC  @PRGFLG           Put it back in execution
       ST   @RAMTOP+1,@RAMFLG Set/reset RAMFLG flag -- when
       DCLR V@SEXTRM           in program mode & ERAM exist
       DCLR V@ERRLN           Disallow CONTINUE after RUN
       CALL KILSYM            Reset ERR handling to defualt
       ST   RSTK,@SUBSTK      Set the stack empty
* RXB PATCH CODE ************ Turn off DSK#.LOAD search
* SZRUN4 B    G6A70
SZRUN4 B    SCHOFF  Turn off search first then G6
EDTZ05 B    EDTZ00

 

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