Jump to content

Photo

RXB - Rich Extended Basic


889 replies to this topic

#876 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Mon Nov 26, 2018 9:16 PM

New RXB demo of CALL PRAM(address)

 



#877 arcadeshopper OFFLINE  

arcadeshopper

    River Patroller

  • 3,925 posts
  • Location:Portland, Oregon USA

Posted Tue Nov 27, 2018 10:58 AM

New RXB demo of CALL PRAM(address)

 

 

this video is unavailable.. it says  did you make it private?


  • RXB likes this

#878 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Tue Nov 27, 2018 7:23 PM

No I do not know why this happening will look into it!

 

Well turns out Youtube has a new editor and it requires a double check on Public Youtubes.


Edited by RXB, Tue Nov 27, 2018 7:39 PM.


#879 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Thu Nov 29, 2018 2:13 AM

UPDATE ON RXB WORK IN PROGRESS:

 

What do you guys think about this new feature I am working on:

 

CALL LOAD(hex address,hex value,hex value) ! Hex values in strings all begin with > 

CALL LINK(hex address,hex value,hex value) ! Hex values in strings all begin with >

 

 

Example:

100 A$=">29FD" :: B$=">AA" :: C$=">00"

110 CALL LOAD(A$,B$,C$) ! This would load  >AA00 at RAM address >29FD

 

CALL LINK(">3FFE") ! Would execute address link with out needing to look up the link name and checking stack which is slower.

Also you could use Decimal values CALL LINK(16382) also works or nomral XB coninues to work CALL LINK("TESTER")

 

This feature would work with all address routines like CALL VDPSTACK(adddrss), CALL PRAM(address), CALL POKEG(address), CALL POKEV(address)... and all others....

 

 

AGAIN ANY FEED BACK ON THIS IDEA?


Edited by RXB, Thu Nov 29, 2018 2:14 AM.


#880 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Sun Dec 2, 2018 1:57 AM

Well couple of days with no reply so going with a new command instead:

 

HEX(hex$) or HEX(dec#)

 

So commands like CALL LOAD(HEX("2000"),HEX("FE")) would load >FE at RAM address >2000

Or commands like PRINT HEX(8192) would print 2000

 

If HEX has a String or String Variable it puts Decimal Integer into FAC

If HEX has a Decimal Floating Point number in it it creates a string for that value to use.

 

The previous post to this had issues with the > sign on input and output that this new version does not create.

Also the new version is much faster and more compact allowing use in complicated XB program lines.



#881 TheBF OFFLINE  

TheBF

    Dragonstomper

  • 820 posts
  • Location:The Great White North

Posted Sun Dec 2, 2018 8:40 AM

Well couple of days with no reply so going with a new command instead:

 

HEX(hex$) or HEX(dec#)

 

So commands like CALL LOAD(HEX("2000"),HEX("FE")) would load >FE at RAM address >2000

Or commands like PRINT HEX(8192) would print 2000

 

If HEX has a String or String Variable it puts Decimal Integer into FAC

If HEX has a Decimal Floating Point number in it it creates a string for that value to use.

 

The previous post to this had issues with the > sign on input and output that this new version does not create.

Also the new version is much faster and more compact allowing use in complicated XB program lines.

 

 

I like this factoring much better Rich.  By keeping it simple you have made a more generally useful function.

This will clarify a  lot of BASIC code where there are negative decimal numbers used for addresses. (yuk)

 

Well done.  Chuck Moore would be proud of you. :-)



#882 Ksarul OFFLINE  

Ksarul

    River Patroller

  • 4,903 posts

Posted Sun Dec 2, 2018 10:20 AM

Also note, sometimes we may not make a comment, but we do post a like--that is just as much a positive endorsement of the idea as the comment would be, Rich.  :) I do agree that the second solution to the problem is even more elegantly simple than the first one was. I like it.



#883 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Sun Dec 2, 2018 11:15 PM

 

 

I like this factoring much better Rich.  By keeping it simple you have made a more generally useful function.

This will clarify a  lot of BASIC code where there are negative decimal numbers used for addresses. (yuk)

 

Well done.  Chuck Moore would be proud of you. :-)

Thanks HEX does not work with anything but two bytes i.e. >1234 or >4321 or >38A7 

Thus only is for address use like CALL LOAD or CALL PEEK



#884 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Sun Dec 2, 2018 11:17 PM

Also note, sometimes we may not make a comment, but we do post a like--that is just as much a positive endorsement of the idea as the comment would be, Rich.  :) I do agree that the second solution to the problem is even more elegantly simple than the first one was. I like it.

Thanks.

 

Say how would I put more ROMs into RXB I was thinking of Explorer and adding another ROM of Assembly to speed up XB.



#885 atrax27407 OFFLINE  

atrax27407

    Stargunner

  • 1,130 posts

Posted Mon Dec 3, 2018 4:09 AM

Rich,

 

When can we expect a release - or is RXB a "moving target"? 



#886 Ksarul OFFLINE  

Ksarul

    River Patroller

  • 4,903 posts

Posted Mon Dec 3, 2018 6:32 AM

It is a matter of updating the bank switching tables, Rich. Right now, XB has two banks, but is actually only switching half of the ROM (4K). The other half needs to be present at all times, based on the pointers to the various ROM routines. I am not sure how much space remains in that constant 4K to allow you to add additional pointers to new banks, but that is where you'd have to start looking.



#887 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Mon Dec 3, 2018 2:24 PM

It is a matter of updating the bank switching tables, Rich. Right now, XB has two banks, but is actually only switching half of the ROM (4K). The other half needs to be present at all times, based on the pointers to the various ROM routines. I am not sure how much space remains in that constant 4K to allow you to add additional pointers to new banks, but that is where you'd have to start looking.

I was thinking of making numerous ROMs for RXB (XB) current switch method could up updated...

0207            ************************************************************
  0208 6000              AORG >6000   
  0210                
  0211            * PAGE SELECTOR FOR PAGE 1  
  0212      6000  PAGE1  EQU  $                 >6000   
  0213 6000 0002  C2     DATA 2                 0   
  0214            * PAGE SELECTOR FOR PAGE 2  
  0215      6002  PAGE2  EQU  $                 >6002   
  0216 6002   00  C7     BYTE >00   
  0217 6003   07  CBH7   BYTE >07               2   
  0218 6004   0A  CBHA   BYTE >0A   
  0219 6005   94  CBH94  BYTE >94               4   
  0220 6006 0028  C40    DATA 40                6   
  0221 6008 0064  C100   DATA 100               8   
  0222 600A 1000  C1000  DATA >1000             A   
  0223 600C 0000         DATA 0                 C   
  0224 600E 4001  FLTONE DATA >4001             E   
  0225            ************************************************************
  0226            * XML table number 7 for Extended Basic - must have   
  0227            *     it's origin at >6010  
  0228            ************************************************************
  0229            *           0      1      2      3      4      5     6  
  0230 6010 619C         DATA COMPCG,GETSTG,MEMCHG,CNSSEL,PARSEG,CONTG,EXECG  
       6012 61A2  
       6014 72CE  
       6016 6070  
       6018 6470  
       601A 64C4  
       601C 6500  
  0231            *           7      8    9     A    B    C      D  
  0232 601E 61BA         DATA VPUSHG,VPOP,PGMCH,SYMB,SMBB,ASSGNV,FBSYMB   
       6020 6C2A  

 99/4 ASSEMBLER
XML359                                                       PAGE 0005
       6022 6410  
       6024 61B4  
       6026 61A8  
       6028 61AE  
       602A 618C  
  0233            *             E     F   
  0234 602C 6EE2         DATA SPEED,CRNSEL  
       602E 6076  
  0235            ************************************************************
  0236            * XML table number 8 for Extended Basic - must have   
  0237            *     it's origin at >6030  
  0238            ************************************************************
  0239            *           0   1      2    3      4  5     6      7  
  0240 6030 74AA         DATA CIF,CONTIN,RTNG,SCROLL,IO,GREAD,GWRITE,DELREP   
       6032 65CC  
       6034 6630  
       6036 7ADA  
       6038 7B48  
       603A 7EB4  
       603C 7ED8  
       603E 7EF4  
  0241            *           8    9    A      B      C      D      E   
  0242 6040 7F7E         DATA MVDN,MVUP,VGWITE,GVWITE,GREAD1,GWITE1,GDTECT  
       6042 6F98  
       6044 7FC0  
       6046 7FDA  
       6048 7EA6  
       604A 7ECA  
       604C 6050  
  0243            *           F   
  0244 604E 7C56         DATA PSCAN   
  0245                
  0246            * Determine if and how much ERAM is present   
  0247 6050 D80B  GDTECT MOVB R11,@PAGE1        First enable page 1 ROM   
       6052 6000  
  0248            *-----------------------------------------------------------
  0249            * Replace following line      6/16/81   
  0250            * (Extended Basic must be made to leave enough space at   
  0251            * top of RAM expansion for the "hooks" left by the 99/4A  
  0252            * for TIBUG.)   
  0253            *      SETO R0                Start at >FFFF  
  0254            * with  
  0255 6054 0200         LI   R0,>FFE7          Start at >FFE7  
       6056 FFE7  
  0256            *-----------------------------------------------------------
  0257 6058 D40B         MOVB R11,*R0           Write a byte of data  
  0258 605A 940B         CB   R11,*R0           Read and compare the data   
  0259 605C 1306         JEQ  DTECT2            If matches-found ERAM top   
  0260            *-----------------------------------------------------------
  0261            * Change the following line   6/16/81   
  0262            *      AI   R0,->2000         Else drop down 8K   
  0263 605E 0200         LI   R0,>DFFF          Else drop down 8K   
       6060 DFFF  
  0264            *-----------------------------------------------------------
  0265 6062 D40B         MOVB R11,*R0           Write a byte of data  
  0266 6064 940B         CB   R11,*R0           Read and compare the data   
  0267 6066 1301         JEQ  DTECT2            If matches-found ERAM top   
  0268 6068 04C0         CLR  R0                No match so no ERAM   
  0269 606A C800  DTECT2 MOV  R0,@RAMTOP        Set the ERAM top  

 99/4 ASSEMBLER
XML359                                                       PAGE 0006
       606C 8384  
  0270 606E 045B         RT                     And return to GPL   

Now >6010 and >6030 have to remain in exact location for Lower 8K assembly programs and EA manual using Assembly in XB,

but >6000 to >600F could be used for bank switching 14 more banks of 8K banks or upper 4K banks.

 

I can move >6004 to >600F to some where else in XB ROMs there is 20 bytes open in XB ROMS, or use exiting values.

 

For additional XB ROMs that upgrade XB the lower 4K of XB ROM would have to be duplicates for a 8K switching.

 

Thus instead of a write to >6002 being bank 2 of 8K XB ROMs, we could write to >600A and that would be a new XB 8K ROM page.



#888 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Wed Dec 5, 2018 12:44 AM

Rich,

 

When can we expect a release - or is RXB a "moving target"? 

Well the only thing left for me to finish is HEX(string) or HEX(decimal) then I can work on demos and documentation.

 

Delay so far is figuring out the changes to XB ROMs to allow for a new value HEX to be added with a token of maybe >CA

 

NUDTAB in GPL and ROM is a branch table searched for in GPL and used by XB ROMs:

[0686]               ***********************************************************
[0687]               *               NUD / STATEMENT BRANCH TABLE
[0688]               ***********************************************************
[0689] A147 41,89    NUDTB  BR   RECX              'RECORD'              0
[0690] A149 46,8B           BR   NBREAK            'BREAK'               0
[0691] A14B 46,9D           BR   NUNBRK            'UNBREAK'             0
[0692] A14D 46,81           BR   NTRACE            'TRACE'               0
[0693] A14F 46,86           BR   NUNTRC            'UNTRACE'             0
[0694] A151 41,8C           BR   NREADX            'READ'                0
[0695] A153 41,8F           BR   PRINTX            'PRINT'               0
[0696] A155 41,86           BR   SZRUNX            'RUN'                 0
[0697] A157 41,A7           BR   LINPUX            Reserved for LINPUT   1
[0698] A159 41,92           BR   RESTOX            'RESTORE'             1
[0699] A15B 43,7F           BR   NRNDMZ            'RANDOMIZE'           1
[0700] A15D 41,95           BR   INPUTX            'INPUT'               1
[0701] A15F 41,98           BR   OPENX             'OPEN'                1
[0702] A161 41,9B           BR   CLOSEX            'CLOSE'               1
[0703] A163 42,48           BR   NPI               'PI'                  1
[0704] A165 42,58           BR   NMAX              'MAX'                 1
[0705] A167 42,65           BR   NMIN              'MIN'                 2
[0706] A169 46,28           BR   RPTZ01            'RPT$'                2
[0707] A16B 41,9E           BR   ACCEPX            'ACCEPT'              2
[0708] A16D 41,83           BR   EOFX              'EOF'                 2
[0709] A16F 45,1A           BR   ASC01             'ASC'                 2
[0710] A171 45,BD           BR   POS01             'POS'                 2
[0711] A173 45,55           BR   VAL01             'VAL'                 2
[0712] A175 45,2B           BR   STRZ01            'STR$'                2
[0713] A177 44,90           BR   SEGZ01            'SEG$'                3
[0714] A179 41,A4           BR   DELETX            'DELETE'              3
[0715] A17B 41,A1           BR   DISPLX            'DISPLAY'             3
[0716] A17D 44,F3           BR   LEN01             'LEN'                 3
[0717] A17F 44,FF           BR   CHRZ01            'CHR$'                3
[0718]               *RXB PATCH CODE FOR BASIC RND REPLACEMENT ***********
[0719] A181 42,AF           BR   NRND              'RND'                 3      
[0720]               * The following are long branches to another GROM
[0721] A183 05,80,1C EOFX   B    EOF
[0722] A186 05,60,1E SZRUNX B    SZRUN
[0723] A189 05,80,22 RECX   B    REC
[0724] A18C 05,80,0E NREADX B    NREAD
[0725] A18F 05,80,04 PRINTX B    PRINT
[0726] A192 05,80,0C RESTOX B    RESTOR
[0727] A195 05,80,06 INPUTX B    INPUT
[0728] A198 05,80,08 OPENX  B    OPEN
[0729] A19B 05,80,0A CLOSEX B    CLOSE
[0730] A19E 05,80,1E ACCEPX B    ACCEPT
[0731] A1A1 05,80,00 DISPLX B    DISPL1
[0732] A1A4 05,80,02 DELETX B    DELET
[0733] A1A7 05,80,30 LINPUX B    LINPUT
[0734]               ***********************************************************

So putting it in XB ROM presents a address problem as ERRTAB will not allow for insertion of 4 bytes:

[2152]                      AORG >0B00
[2153]               ***********************************************************
[2154]               *                BASIC KEYWORD TABLE
[2155]               *      THE TOKEN IS ITS LEFT BINDING POWER
[2156]               ***********************************************************
[2157] CB00 CB,14,CB KEYTAB DATA CHAR1,CHAR2,CHAR3,CHAR4,CHAR5
       CB03 35,CB,4E
       CB06 CB,EF,CC
       CB09 59
[2158] CB0A CC,A8,CC        DATA CHAR6,CHAR7,CHAR8,CHAR9,CHARA
       CB0D F6,CD,2F
       CB10 CD,5D,CD
       CB13 68
[2159] CB14 21       CHAR1  TEXT '!'
[2160] CB15 83              BYTE TREMZ             *  !
[2161] CB16 23              TEXT '#'
[2162] CB17 FD              BYTE NUMBEZ            *  #
[2163] CB18 26              TEXT '&'
[2164] CB19 B8              BYTE CONCZ             *  &
[2165] CB1A 28              TEXT '('
[2166] CB1B B7              BYTE LPARZ             *  (
[2167] CB1C 29              TEXT ')'
[2168] CB1D B6              BYTE RPARZ             *  )
[2169] CB1E 2A              TEXT '*'
[2170] CB1F C3              BYTE MULTZ             *  *
[2171] CB20 2B              TEXT '+'
[2172] CB21 C1              BYTE PLUSZ             *  +
[2173] CB22 2C              TEXT ','
[2174] CB23 B3              BYTE COMMAZ            *  ,
[2175] CB24 2D              TEXT '-'
[2176] CB25 C2              BYTE MINUSZ            *  -
[2177] CB26 2F              TEXT '/'
[2178] CB27 C4              BYTE DIVIZ             *  /
[2179] CB28 3A              TEXT ':'
[2180] CB29 B5              BYTE COLONZ            *  :
[2181] CB2A 3B              TEXT ';'
[2182] CB2B B4              BYTE SEMICZ            *  ;
[2183] CB2C 3C              TEXT '<'
[2184] CB2D BF              BYTE LESSZ             *  <
[2185] CB2E 3D              TEXT '='
[2186] CB2F BE              BYTE EQUALZ            *  =
[2187] CB30 3E              TEXT '>'
[2188] CB31 C0              BYTE GREATZ            *  >
[2189] CB32 5E              TEXT '^'
[2190] CB33 C5              BYTE CIRCUZ            *  ^
[2191] CB34 FF              BYTE >FF
[2192] CB35 3A,3A    CHAR2  TEXT '::'
[2193] CB37 82              BYTE SSEPZ             *  ::
[2194] CB38 41,54           TEXT 'AT'
[2195] CB3A F0              BYTE ATZ               *  AT

99/4 GPL-ASSEMBLER (Pass 3) correct                                   PAGE 0039 
EQUATES ALCS-359
[2196] CB3B 47,4F           TEXT 'GO'
[2197] CB3D 85              BYTE GOZ               *  GO * RXB MOTION
[2198] CB3E 49,46           TEXT 'IF'
[2199] CB40 84              BYTE IFZ               *  IF
[2200] CB41 4F,4E           TEXT 'ON'
[2201] CB43 9B              BYTE ONZ               *  ON * ONKEY
[2202] CB44 4F,52           TEXT 'OR'
[2203] CB46 BA              BYTE ORZ               *  OR
[2204] CB47 50,49           TEXT 'PI'
[2205] CB49 DD              BYTE PIZ               *  PI
[2206] CB4A 54,4F           TEXT 'TO'
[2207] CB4C B1              BYTE TOZ               *  TO
[2208] CB4D FF              BYTE >FF
[2209] CB4E 41,42,53 CHAR3  TEXT 'ABS'
[2210] CB51 CB              BYTE ABSZ              *  ABS
[2211] CB52 41,4C,4C        TEXT 'ALL'
[2212] CB55 EC              BYTE ALLZ              *  ALL
[2213] CB56 41,4E,44        TEXT 'AND'
[2214] CB59 BB              BYTE ANDZ              *  AND
[2215] CB5A 41,53,43        TEXT 'ASC'
[2216] CB5D DC              BYTE ASCZ              *  ASC
[2217] CB5E 41,54,4E        TEXT 'ATN'
[2218] CB61 CC              BYTE ATNZ              *  ATN
[2219] CB62 42,59,45        TEXT 'BYE'
[2220] CB65 03              BYTE >03               *  BYE
[2221] CB66 43,4F,4E        TEXT 'CON'
[2222] CB69 01              BYTE >01               *  CONtinue
[2223] CB6A 43,4F,53        TEXT 'COS'
[2224] CB6D CD              BYTE COSZ              *  COS
[2225] CB6E 44,45,46        TEXT 'DEF'
[2226] CB71 89              BYTE DEFZ              *  DEF
[2227]               * GKXB added token
[2228] CB72 44,45,4C        TEXT 'DEL'
[2229] CB75 09              BYTE >09               *  DEL
[2230] CB76 44,49,4D        TEXT 'DIM'
[2231] CB79 8A              BYTE DIMZ              *  DIM
[2232] CB7A 45,4E,44        TEXT 'END'
[2233] CB7D 8B              BYTE ENDZ              *  END
[2234] CB7E 45,4F,46        TEXT 'EOF'
[2235] CB81 CA              BYTE EOFZ              *  EOF
[2236] CB82 45,58,50        TEXT 'EXP'
[2237] CB85 CE              BYTE EXPZZ             *  EXP
[2238] CB86 46,4F,52        TEXT 'FOR'
[2239] CB89 8C              BYTE FORZ              *  FOR
[2240] CB8A 49,4E,54        TEXT 'INT'
[2241] CB8D CF              BYTE INTZ              *  INT
[2242] CB8E 4C,45,4E        TEXT 'LEN'
[2243] CB91 D5              BYTE LENZ              *  LEN
[2244] CB92 4C,45,54        TEXT 'LET'
[2245] CB95 8D              BYTE LETZ              *  LET
[2246] CB96 4C,4F,47        TEXT 'LOG'
[2247] CB99 D0              BYTE LOGZ              *  LOG
[2248] CB9A 4D,41,58        TEXT 'MAX'
[2249] CB9D DF              BYTE MAXZ              *  MAX
[2250] CB9E 4D,49,4E        TEXT 'MIN'
[2251] CBA1 E0              BYTE MINZ              *  MIN
[2252] CBA2 4E,45,57        TEXT 'NEW'
[2253] CBA5 00              BYTE >00               *  NEW * RXB CALL NEW
[2254] CBA6 4E,4F,54        TEXT 'NOT'
[2255] CBA9 BD              BYTE NOTZ              *  NOT
[2256] CBAA 4E,55,4D        TEXT 'NUM'
[2257] CBAD 04              BYTE >04               *  NUMber
[2258] CBAE 4F,4C,44        TEXT 'OLD'
[2259] CBB1 05              BYTE >05               *  OLD

99/4 GPL-ASSEMBLER (Pass 3) correct                                   PAGE 0040 
EQUATES ALCS-359
[2260] CBB2 50,4F,53        TEXT 'POS'
[2261] CBB5 D9              BYTE POSZ              *  POS
[2262] CBB6 52,45,43        TEXT 'REC'
[2263] CBB9 DE              BYTE RECZ              *  REC
[2264] CBBA 52,45,4D        TEXT 'REM'
[2265] CBBD 9A              BYTE REMZ              *  REMark
[2266] CBBE 52,45,53        TEXT 'RES'
[2267] CBC1 06              BYTE >06               *  RESequence
[2268] CBC2 52,4E,44        TEXT 'RND'
[2269] CBC5 D7              BYTE RNDZ              *  RND
[2270]               * RXB PATCH CODE
[2271] CBC6 52,41,4E        TEXT 'RAN'            
[2272] CBC9 E2              BYTE RANZ              *  RAN * RXB RND
[2273] CBCA 52,55,4E        TEXT 'RUN'
[2274] CBCD A9              BYTE RUNZ              *  RUN 
[2275] CBCE 53,47,4E        TEXT 'SGN'
[2276] CBD1 D1              BYTE SGNZZ             *  SGN
[2277] CBD2 53,49,4E        TEXT 'SIN'
[2278] CBD5 D2              BYTE SINZ              *  SIN
[2279] CBD6 53,51,52        TEXT 'SQR'
[2280] CBD9 D3              BYTE SQRZ              *  SQR
[2281] CBDA 53,55,42        TEXT 'SUB'
[2282] CBDD A1              BYTE SUBZ              *  SUB
[2283] CBDE 54,41,42        TEXT 'TAB'
[2284] CBE1 FC              BYTE TABZ              *  TAB
[2285] CBE2 54,41,4E        TEXT 'TAN'
[2286] CBE5 D4              BYTE TANZ              *  TAN
[2287] CBE6 56,41,4C        TEXT 'VAL'
[2288] CBE9 DA              BYTE VALZ              *  VAL
[2289] CBEA 58,4F,52        TEXT 'XOR'
[2290] CBED BC              BYTE XORZ              *  XOR
[2291] CBEE FF              BYTE >FF
[2292] CBEF 42,41,53 CHAR4  TEXT 'BASE'
       CBF2 45
[2293] CBF3 F1              BYTE BASEZ             *  BASE
[2294] CBF4 42,45,45        TEXT 'BEEP'
       CBF7 50
[2295] CBF8 EE              BYTE BEEPZ             *  BEEP
[2296] CBF9 43,41,4C        TEXT 'CALL'
       CBFC 4C
[2297] CBFD 9D              BYTE CALLZ             *  CALL
[2298] CBFE 43,48,52        TEXT 'CHR$'
       CC01 24
[2299] CC02 D6              BYTE CHRZZ             *  CHR$
[2300]               * GKXB added token
[2301] CC03 43,4F,50        TEXT 'COPY'
       CC06 59
[2302] CC07 0A              BYTE >0A               *  COPY
[2303] CC08 44,41,54        TEXT 'DATA'
       CC0B 41
[2304] CC0C 93              BYTE DATAZ             *  DATA
[2305] CC0D 45,4C,53        TEXT 'ELSE'
       CC10 45
[2306] CC11 81              BYTE ELSEZ             *  ELSE
[2307] CC12 47,4F,54        TEXT 'GOTO'
       CC15 4F
[2308] CC16 86              BYTE GOTOZ             *  GOTO * RXB ONKEY
[2309] CC17 4C,49,53        TEXT 'LIST'
       CC1A 54
[2310] CC1B 02              BYTE >02               *  LIST
[2311]               * GKXB added token
[2312] CC1C 4D,4F,56        TEXT 'MOVE'
       CC1F 45
[2313] CC20 0B              BYTE >0B               *  MOVE

99/4 GPL-ASSEMBLER (Pass 3) correct                                   PAGE 0041 
EQUATES ALCS-359
[2314] CC21 4E,45,58        TEXT 'NEXT'
       CC24 54
[2315] CC25 96              BYTE NEXTZ             *  NEXT
[2316] CC26 4F,50,45        TEXT 'OPEN'
       CC29 4E
[2317] CC2A 9F              BYTE OPENZ             *  OPEN
[2318] CC2B 52,45,41        TEXT 'READ'
       CC2E 44
[2319] CC2F 97              BYTE READZ             *  READ
[2320] CC30 52,50,54        TEXT 'RPT$'
       CC33 24
[2321] CC34 E1              BYTE RPTZZ             *  RPT$
[2322] CC35 53,41,56        TEXT 'SAVE'
       CC38 45
[2323] CC39 07              BYTE >07               *  SAVE * RXB SAVE IV254
[2324] CC3A 53,45,47        TEXT 'SEG$'
       CC3D 24
[2325] CC3E D8              BYTE SEGZZ             *  SEG$
[2326] CC3F 53,49,5A        TEXT 'SIZE'
       CC42 45
[2327] CC43 EB              BYTE SIZEZ             *  SIZE * RXB CALL SIZE
[2328] CC44 53,54,45        TEXT 'STEP'
       CC47 50
[2329] CC48 B2              BYTE STEPZ             *  STEP
[2330] CC49 53,54,4F        TEXT 'STOP'
       CC4C 50
[2331] CC4D 98              BYTE STOPZ             *  STOP * RXB MOTION
[2332] CC4E 53,54,52        TEXT 'STR$'
       CC51 24
[2333] CC52 DB              BYTE STRZZ             *  STR$
[2334] CC53 54,48,45        TEXT 'THEN'
       CC56 4E
[2335] CC57 B0              BYTE THENZ             *  THEN
[2336] CC58 FF              BYTE >FF
[2337] CC59 42,52,45 CHAR5  TEXT 'BREAK'
       CC5C 41,4B
[2338] CC5E 8E              BYTE BREAKZ            *  BREAK
[2339] CC5F 43,4C,4F        TEXT 'CLOSE'
       CC62 53,45
[2340] CC64 A0              BYTE CLOSEZ            *  CLOSE
[2341] CC65 44,49,47        TEXT 'DIGIT'
       CC68 49,54
[2342] CC6A E9              BYTE DIGITZ            *  DIGIT
[2343] CC6B 45,52,41        TEXT 'ERASE'
       CC6E 53,45
[2344] CC70 EF              BYTE ERASEZ            *  ERASE
[2345] CC71 45,52,52        TEXT 'ERROR'
       CC74 4F,52
[2346] CC76 A5              BYTE ERRORZ            *  ERROR
[2347] CC77 46,49,58        TEXT 'FIXED'
       CC7A 45,44
[2348] CC7C FA              BYTE FIXEDZ            *  FIXED
[2349] CC7D 47,4F,53        TEXT 'GOSUB'
       CC80 55,42
[2350] CC82 87              BYTE GOSUBZ            *  GOSUB
[2351] CC83 49,4D,41        TEXT 'IMAGE'
       CC86 47,45
[2352] CC88 A3              BYTE IMAGEZ            *  IMAGE
[2353] CC89 49,4E,50        TEXT 'INPUT'
       CC8C 55,54
[2354] CC8E 92              BYTE INPUTZ            *  INPUT
[2355] CC8F 4D,45,52        TEXT 'MERGE'
       CC92 47,45
[2356] CC94 08              BYTE >08               *  MERGE

99/4 GPL-ASSEMBLER (Pass 3) correct                                   PAGE 0042 
EQUATES ALCS-359
[2357] CC95 50,52,49        TEXT 'PRINT'
       CC98 4E,54
[2358] CC9A 9C              BYTE PRINTZ            *  PRINT
[2359] CC9B 54,52,41        TEXT 'TRACE'
       CC9E 43,45
[2360] CCA0 90              BYTE TRACEZ            *  TRACE
[2361] CCA1 55,53,49        TEXT 'USING'
       CCA4 4E,47
[2362] CCA6 ED              BYTE USINGZ            *  USING
[2363] CCA7 FF              BYTE >FF
[2364] CCA8 41,43,43 CHAR6  TEXT 'ACCEPT'
       CCAB 45,50,54
[2365] CCAE A4              BYTE ACCEPZ            *  ACCEPT
[2366] CCAF 41,50,50        TEXT 'APPEND'
       CCB2 45,4E,44
[2367] CCB5 F9              BYTE APPENZ            *  APPEND
[2368] CCB6 44,45,4C        TEXT 'DELETE'
       CCB9 45,54,45
[2369] CCBC 99              BYTE DELETZ            *  DELETE
[2370] CCBD 4C,49,4E        TEXT 'LINPUT'
       CCC0 50,55,54
[2371] CCC3 AA              BYTE LINPUZ            *  LINPUT
[2372] CCC4 4E,55,4D        TEXT 'NUMBER'
       CCC7 42,45,52
[2373] CCCA 04              BYTE >04               *  NUMBER
[2374] CCCB 4F,50,54        TEXT 'OPTION'
       CCCE 49,4F,4E
[2375] CCD1 9E              BYTE OPTIOZ            *  OPTION
[2376] CCD2 4F,55,54        TEXT 'OUTPUT'
       CCD5 50,55,54
[2377] CCD8 F7              BYTE OUTPUZ            *  OUTPUT
[2378] CCD9 52,45,54        TEXT 'RETURN'
       CCDC 55,52,4E
[2379] CCDF 88              BYTE RETURZ            *  RETURN
[2380] CCE0 53,55,42        TEXT 'SUBEND'
       CCE3 45,4E,44
[2381] CCE6 A8              BYTE SUBNDZ            *  SUBEND
[2382] CCE7 55,41,4C        TEXT 'UALPHA'
       CCEA 50,48,41
[2383] CCED EA              BYTE UALPHZ            *  UALPHA
[2384] CCEE 55,50,44        TEXT 'UPDATE'
       CCF1 41,54,45
[2385] CCF4 F8              BYTE UPDATZ            *  UPDATE
[2386] CCF5 FF              BYTE >FF
[2387] CCF6 44,49,53 CHAR7  TEXT 'DISPLAY'
       CCF9 50,4C,41
       CCFC 59
[2388] CCFD A2              BYTE DISPLZ            *  DISPLAY
[2389] CCFE 4E,55,4D        TEXT 'NUMERIC'
       CD01 45,52,49
       CD04 43
[2390] CD05 E8              BYTE NUMERZ            *  NUMERIC
[2391] CD06 52,45,53        TEXT 'RESTORE'
       CD09 54,4F,52
       CD0C 45
[2392] CD0D 94              BYTE RESTOZ            *  RESTORE
[2393] CD0E 53,55,42        TEXT 'SUBEXIT'
       CD11 45,58,49
       CD14 54
[2394] CD15 A7              BYTE SUBXTZ            *  SUBEXIT
[2395] CD16 55,4E,42        TEXT 'UNBREAK'
       CD19 52,45,41
       CD1C 4B
[2396] CD1D 8F              BYTE UNBREZ            *  UNBREAK

99/4 GPL-ASSEMBLER (Pass 3) correct                                   PAGE 0043 
EQUATES ALCS-359
[2397] CD1E 55,4E,54        TEXT 'UNTRACE'
       CD21 52,41,43
       CD24 45
[2398] CD25 91              BYTE UNTRAZ            *  UNTRACE
[2399] CD26 57,41,52        TEXT 'WARNING'
       CD29 4E,49,4E
       CD2C 47
[2400] CD2D A6              BYTE WARNZ             *  WARNING
[2401] CD2E FF              BYTE >FF
[2402] CD2F 43,4F,4E CHAR8  TEXT 'CONTINUE'
       CD32 54,49,4E
       CD35 55,45
[2403] CD37 01              BYTE >01               *  CONTINUE
[2404] CD38 49,4E,54        TEXT 'INTERNAL'
       CD3B 45,52,4E
       CD3E 41,4C
[2405] CD40 F5              BYTE INTERZ            *  INTERNAL
[2406] CD41 52,45,4C        TEXT 'RELATIVE'
       CD44 41,54,49
       CD47 56,45
[2407] CD49 F4              BYTE RELATZ            *  RELATIVE
[2408] CD4A 56,41,4C        TEXT 'VALIDATE'
       CD4D 49,44,41
       CD50 54,45
[2409] CD52 FE              BYTE VALIDZ            *  VALIDATE
[2410] CD53 56,41,52        TEXT 'VARIABLE'
       CD56 49,41,42
       CD59 4C,45
[2411] CD5B F3              BYTE VARIAZ            *  VARIABLE
[2412] CD5C FF              BYTE >FF
[2413] CD5D 52,41,4E CHAR9  TEXT 'RANDOMIZE'
       CD60 44,4F,4D
       CD63 49,5A,45
[2414] CD66 95              BYTE RANDOZ            *  RANDOMIZE
[2415] CD67 FF              BYTE >FF
[2416] CD68 53,45,51 CHARA  TEXT 'SEQUENTIAL'
       CD6B 55,45,4E
       CD6E 54,49,41
       CD71 4C
[2417] CD72 F6              BYTE SEQUEZ            *  SEQUENTIAL
[2418] CD73 FF              BYTE >FF
[2419]               ***********************************************************
[2420]               * RXB PATCH CODE FILLER BYTE ******************************
[2421] CD74 00,00,00        BYTE >00,>00,>00
[2422]               * GROM ADDRESS >CD77 FOR ERRTAB
[2423]               ***********************************************************
[2424]               * ERRTAB - Error table containing all of the error messages
[2425]               *          error numbers and the severity code for each
[2426]               *          error. The error call number is the data byte
[2427]               *          that must follow the CALL ERRZZ or CALL WARNZZ.
[2428]               *          Messages with severity of zero are system
[2429]               *          messages and not error messages.
[2430]               *
[2431]               *  Message, Error #, Severity                     CALL #
[2432]               ***********************************************************

Thus I am going to have to move some stuff in GPL and add HEX to XB ROMs.



#889 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Thu Dec 6, 2018 12:33 PM

Looking at other commands that can be added like HEX(string) or HEX(decimal) it occured to me I could add:

 

BEEP does same as CALL BEEP

HONK does same as CALL HONK

BIAS(-string) or BIAS(+string) this removes or adds screen bias from a string off screen or put on screen

INVERSE(character-code) this will inverse the definition of a character from on dots to off dots

 

Also:

 

BASIC   justs goes to TI Basic

BYE     same as CALL BYE

FILES(number)    same as CALL FILES(number)

NEW    same as CALL NEW

SIZE    same as CALL SIZE

XB("pathname.filename")    or XB    this is like RUN but works with strings.

 

These are all RXB commands so a new RXB Manual will be required and new Demo programs re-written.



#890 RXB OFFLINE  

RXB

    River Patroller

  • 3,402 posts
  • Location:Vancouver, Washington, USA

Posted Fri Dec 7, 2018 4:40 AM

Well post I put up before this showed the listing XB ROMs use to find the KEYWORD you put in like say PRINT or CALL CLEAR as it looks for PRINT or CALL in the list first.

 

Previously in new version of RXB I have changed all routines under CALL "whatever" to put the most often called at top of list to speed up execution of RXB in XB programs.

 

Now here is the new XB ROMs keyword search list and you will notice that it is no longer alphabetically listed like from Texas Instruments anymore.

 

It is ordered by most often used or searched commands at top and least at bottom so should provide a slight speed increase in RXB vs XB.

CHAR1  TEXT '!'
       BYTE TREMZ             *  !
       TEXT '='
       BYTE EQUALZ            *  =
       TEXT '('
       BYTE LPARZ             *  (
       TEXT ')'
       BYTE RPARZ             *  )
       TEXT '#'
       BYTE NUMBEZ            *  #
       TEXT ':'
       BYTE COLONZ            *  :
       TEXT ';'
       BYTE SEMICZ            *  ;
       TEXT '*'
       BYTE MULTZ             *  *
       TEXT '+'
       BYTE PLUSZ             *  +
       TEXT ','
       BYTE COMMAZ            *  ,
       TEXT '-'
       BYTE MINUSZ            *  -
       TEXT '/'
       BYTE DIVIZ             *  /
       TEXT '<'
       BYTE LESSZ             *  <
       TEXT '>'
       BYTE GREATZ            *  >
       TEXT '^'
       BYTE CIRCUZ            *  ^
       BYTE >FF
CHAR2  TEXT '::'
       BYTE SSEPZ             *  ::
       TEXT 'IF'
       BYTE IFZ               *  IF
       TEXT 'ON'
       BYTE ONZ               *  ON * RXB ONKEY
       TEXT 'TO'
       BYTE TOZ               *  TO
       TEXT 'OR'
       BYTE ORZ               *  OR
       TEXT 'PI'
       BYTE PIZ               *  PI
       BYTE >FF
CHAR3  TEXT 'RND'
       BYTE RNDZ              *  RND * RXB CHANGED
       TEXT 'FOR'
       BYTE FORZ              *  FOR
       TEXT 'INT'
       BYTE INTZ              *  INT
       TEXT 'SUB'
       BYTE SUBZ              *  SUB
       TEXT 'REM'
       BYTE REMZ              *  REMark
       TEXT 'AND'
       BYTE ANDZ              *  AND
       TEXT 'NOT'
       BYTE NOTZ              *  NOT
       TEXT 'XOR'
       BYTE XORZ              *  XOR
       TEXT 'LEN'
       BYTE LENZ              *  LEN
       TEXT 'ASC'
       BYTE ASCZ              *  ASC
       TEXT 'POS'
       BYTE POSZ              *  POS
       TEXT 'VAL'
       BYTE VALZ              *  VAL
       TEXT 'SGN'
       BYTE SGNZZ             *  SGN
       TEXT 'TAB'
       BYTE TABZ              *  TAB
       TEXT 'ALL'
       BYTE ALLZ              *  ALL
       TEXT 'MAX'
       BYTE MAXZ              *  MAX
       TEXT 'MIN'
       BYTE MINZ              *  MIN
       TEXT 'ABS'
       BYTE ABSZ              *  ABS
       TEXT 'SQR'
       BYTE SQRZ              *  SQR
       TEXT 'TAN'
       BYTE TANZ              *  TAN
       TEXT 'ATN'
       BYTE ATNZ              *  ATN
       TEXT 'SIN'
       BYTE SINZ              *  SIN
       TEXT 'LOG'
       BYTE LOGZ              *  LOG
       TEXT 'EXP'
       BYTE EXPZZ             *  EXP
       TEXT 'COS'
       BYTE COSZ              *  COS
       TEXT 'ALL'
       BYTE EOFZ              *  EOF
       TEXT 'REC'
       BYTE RECZ              *  REC
       TEXT 'DIM'
       BYTE DIMZ              *  DIM
       TEXT 'DEF'
       BYTE DEFZ              *  DEF
       TEXT 'RUN'
       BYTE RUNZ              *  RUN
       TEXT 'CON'
       BYTE >01               *  CONtinue
       TEXT 'RES'
       BYTE >06               *  RESequence
       TEXT 'NUM'
       BYTE >04               *  NUMber
* GKXB added token
       TEXT 'DEL'
       BYTE >09               *  DEL
       TEXT 'NEW'
       BYTE >00               *  NEW * RXB CALL NEW
       TEXT 'END'
       BYTE ENDZ              *  END
       TEXT 'OLD'
       BYTE >05               *  OLD * RXB SAMS
       TEXT 'BYE'
       BYTE >03               *  BYE
       BYTE >FF
CHAR4  TEXT 'CALL'
       BYTE CALLZ             *  CALL
       TEXT 'GOTO'
       BYTE GOTOZ             *  GOTO * RXB ONKEY
       TEXT 'NEXT'
       BYTE NEXTZ             *  NEXT
       TEXT 'THEN'
       BYTE THENZ             *  THEN
       TEXT 'STEP'
       BYTE STEPZ             *  STEP
       TEXT 'ELSE'
       BYTE ELSEZ             *  ELSE
       TEXT 'SEG$'
       BYTE SEGZZ             *  SEG$
       TEXT 'CHR$'
       BYTE CHRZZ             *  CHR$
       TEXT 'STR$'
       BYTE STRZZ             *  STR$
       TEXT 'RPT$'
       BYTE RPTZZ             *  RPT$
       TEXT 'BEEP'
       BYTE BEEPZ             *  BEEP
       TEXT 'DATA'
       BYTE DATAZ             *  DATA
       TEXT 'READ'
       BYTE READZ             *  READ
       TEXT 'OPEN'
       BYTE OPENZ             *  OPEN
       TEXT 'BASE'
       BYTE BASEZ             *  BASE
       TEXT 'STOP'
       BYTE STOPZ             *  STOP * RXB MOTION
       TEXT 'SIZE'
       BYTE SIZEZ             *  SIZE * RXB CALL SIZE
       TEXT 'LIST'
       BYTE >02               *  LIST
       TEXT 'SAVE'
       BYTE >07               *  SAVE * RXB SAVE IV254
* GKXB added token
       TEXT 'COPY'
       BYTE >0A               *  COPY
* GKXB added token
       TEXT 'MOVE'
       BYTE >0B               *  MOVE
       BYTE >FF
CHAR5  TEXT 'GOSUB'
       BYTE GOSUBZ            *  GOSUB
       TEXT 'PRINT'
       BYTE PRINTZ            *  PRINT
       TEXT 'INPUT'
       BYTE INPUTZ            *  INPUT
       TEXT 'ERROR'
       BYTE ERRORZ            *  ERROR
       TEXT 'DIGIT'
       BYTE DIGITZ            *  DIGIT
       TEXT 'ERASE'
       BYTE ERASEZ            *  ERASE
       TEXT 'USING'
       BYTE USINGZ            *  USING
       TEXT 'IMAGE'
       BYTE IMAGEZ            *  IMAGE
       TEXT 'CLOSE'
       BYTE CLOSEZ            *  CLOSE
       TEXT 'FIXED'
       BYTE FIXEDZ            *  FIXED
       TEXT 'BREAK'
       BYTE BREAKZ            *  BREAK
       TEXT 'TRACE'
       BYTE TRACEZ            *  TRACE
       TEXT 'MERGE'
       BYTE >08               *  MERGE
       BYTE >FF
CHAR6  TEXT 'RETURN'
       BYTE RETURZ            *  RETURN
       TEXT 'SUBEND'
       BYTE SUBNDZ            *  SUBEND
       TEXT 'ACCEPT'
       BYTE ACCEPZ            *  ACCEPT
       TEXT 'LINPUT'
       BYTE LINPUZ            *  LINPUT
       TEXT 'NUMBER'
       BYTE >04               *  NUMBER
       TEXT 'UALPHA'
       BYTE UALPHZ            *  UALPHA
       TEXT 'OUTPUT'
       BYTE OUTPUZ            *  OUTPUT
       TEXT 'APPEND'
       BYTE APPENZ            *  APPEND
       TEXT 'UPDATE'
       BYTE UPDATZ            *  UPDATE
       TEXT 'OPTION'
       BYTE OPTIOZ            *  OPTION
       TEXT 'DELETE'
       BYTE DELETZ            *  DELETE
       BYTE >FF
CHAR7  TEXT 'DISPLAY'
       BYTE DISPLZ            *  DISPLAY
       TEXT 'NUMERIC'
       BYTE NUMERZ            *  NUMERIC
       TEXT 'SUBEXIT'
       BYTE SUBXTZ            *  SUBEXIT
       TEXT 'RESTORE'
       BYTE RESTOZ            *  RESTORE
       TEXT 'UNBREAK'
       BYTE UNBREZ            *  UNBREAK
       TEXT 'UNTRACE'
       BYTE UNTRAZ            *  UNTRACE
       TEXT 'WARNING'
       BYTE WARNZ             *  WARNING
       BYTE >FF
CHAR8  TEXT 'INTERNAL'
       BYTE INTERZ            *  INTERNAL
       TEXT 'RELATIVE'
       BYTE RELATZ            *  RELATIVE
       TEXT 'VALIDATE'
       BYTE VALIDZ            *  VALIDATE
       TEXT 'VARIABLE'
       BYTE VARIAZ            *  VARIABLE
       TEXT 'CONTINUE'
       BYTE >01               *  CONTINUE
       BYTE >FF
CHAR9  TEXT 'RANDOMIZE'
       BYTE RANDOZ            *  RANDOMIZE
       BYTE >FF
CHARA  TEXT 'SEQUENTIAL'
       BYTE SEQUEZ            *  SEQUENTIAL
       BYTE >FF
***********************************************************





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users