rocky007 Posted December 14, 2021 Share Posted December 14, 2021 (edited) some tries of Extended Basic games in only 10 lines ? 10 A$="D2FE9EFBFFBF5B4FF":: B$="66283A7E7E3A2866"&RPT$("0",48) :: CALL MAGNIFY(4) ::CALL CLEAR::CALL COLOR(4,13,3,2,5,6,12,16,15) :: L=3:: X=16:: Y=1 11 D$=RPT$("3F",5)&RPT$("7F",3)::E$=RPT$("FE",4)&RPT$("FC",4) :: CALL SCREEN(15) ::CALL VCHAR(1,32,132,L+1)::INPUT "LEVEL ( 1 - 10 ) ":T::S=15+T 12 F$="0061637E6467070707070767647E63610086C67E26E6E0E0E0E0E0E6267EC686" :: CALL CHAR(63,A$,132,B$,128,D$&D$&E$&E$,112,F$) 20 FOR I=2 TO 25:: DISPLAY AT(I-1,1) :RPT$(".",12)&"??"&RPT$(" | ",3)&"??":: IF I<14 THEN CALL SPRITE(#I,128,11,1,1) ELSE IF I<23 THEN CALL SPRITE(#I,112,INT(I-12),1,1,S/2,0) 21 CALL LOCATE(#I,Y,X) :: Y=Y+64:: IF X<128 AND Y<>97 AND Y<>193 THEN Y=Y-32 ELSE IF Y=193 THEN Y=1:: X=X+32:: IF X=112 THEN X=X+17 22 NEXT I:: FOR I=2 TO 13 STEP 8:: CALL MOTION(#I+1,S,0,#I,S,0,#I+3,S,0,#I+2,S,0)::NEXT I:: CALL MOTION(#17,-S,0,#18,-S,0,#19,-S,0,#6,-S,0,#7,-S,0) 23 SC=SC+PT::PT=100::CALL MOTION(#8,-S,0,#9,-S,0):: XX=1::YY=1::CALL SPRITE(#1,132,2,XX,YY) :: D=0:: IF L=0 THEN PRINT "BYE, YOUR SCORE:";SC ::END 81 IF JX<>0 OR JY<>0 THEN CALL POSITION(#1,YY,XX) ::XX=XX+(JX*4) :: YY=YY-(JY*4) :: IF XX>0 AND YY<192 AND YY>0 THEN CALL LOCATE(#1,YY,XX)::CALL SOUND(1,910,0) :: IF XX=225 THEN D=2 84 CALL COINC(ALL,A) :: PT=PT-1 :: IF A=0 AND (XX=113 OR XX=1) THEN CALL MOTION(#1,0,0) ELSE IF (A=0 AND XX<113) THEN D=D+1 85 P=INT((XX-8)/32)+1 :: IF A=-1 AND P>3 THEN D=D+1 ELSE IF A=-1 AND P>0 AND P<4 THEN IF P=2 THEN MY=-S :: CALL MOTION(#1,MY,0)ELSE MY=S :: CALL MOTION(#1,MY,0) 90 CALL JOYST(1,JX,JY) :: IF D=0 THEN 81 ELSE IF D>0 AND D<3 THEN CALL HCHAR(L,32,32)::L=L-1::CALL SOUND(10,110,0)::GOTO 23 ELSE CALL SOUND(10,2000,0)::GOTO 23 1 CALL CHAR(128,"5FDFDFDFDFDFC0FFFFE0E0E0E0E0E07FFAFBFBFBFBFB03FFFF07E7E7E7E707FE"):: CALL MAGNIFY(4):: CALL CLEAR:: CALL SCREEN(2):: FOR I=1 TO 10::CALL COLOR(I,8,2)::NEXT I 2 FOR I=1 to 28 :: CALL SPRITE(#I,128,INT(RND*13)+2,50,50,INT(RND*100)-100,INT(RND*100)-100):: NEXT I :: DISPLAY AT(11,9) : "AMIGA FORMAT "::DISPLAY AT(12,10) : "PRESS ENTER" 10 ACCEPT AT(1,1):A$::CALL DELSPRITE(ALL) ::DIM NB(24),NP(24), PX(24),PY(24):: FOR X=0 TO 3 :: FOR Y=0 TO 5 :: PX(A)=1+(X*8) :: PY(A)=2+(Y*4) :: A=A+1 :: NEXT Y :: NEXT X :: I=-1 11 CALL CHAR(128,"3F40C0C0C0C0C0C0403F6AD5AAD57F00FC0203030303030302FCAA55AB55FE00")::CALL CHAR(65,"103070FFFF703010FFFFFFFFFFFFFFFF")::CALL CLEAR 30 FOR X=16 TO 246 STEP 64 :: FOR Y=4 TO 192 STEP 32 :: NB(S)=INT(RND*50):: NP(S)=INT(RND*10)+1 ::S=S+1 :: CALL SPRITE(#S,128,4,Y,X):: NEXT Y :: NEXT X:: CALL COLOR(5,7,2) 33 IF I=23 THEN I=0 ELSE I=I+1 ::IF NB(I)<>99 THEN IF NB(I)>90 THEN DISPLAY AT( PY(I),PX(I)) SIZE(4) :" BB":: NB(I)=99 :: G=G+1 ELSE DISPLAY AT( PY(I),PX(I)) SIZE(3) :NB(I) :: NB(I)=NB(I)+NP(I) 35 CALL HCHAR(CY+4,CX+7,32) :: CALL JOYST(1,XX,YY) :: CX=CX+XX*2::CY=CY-YY :: IF CX<0 OR CX>24 THEN IF CX<0 THEN CX=24 ELSE CX=0 ELSE IF CY<0 OR CY>20 THEN IF CY<0 THEN CY=20 ELSE CY=0 36 CALL KEY(0,K,S):: IF K=32 THEN T=(CY/4)+((CX/8)*6) :: IF NB(T)<79 THEN NB(T)=99::G=G+1::DISPLAY AT( PY(T),PX(T)) SIZE(3) :" BB" ELSE IF NB(T)<99 THEN NB(T)=0:: DISPLAY AT( PY(T),PX(T)) SIZE(3) :NB(T) 38 IF K=32 AND NB(T)=99 THEN CALL SOUND(100,110,0) :: S=S-1 ELSE IF K=32 AND NB(T)=0 THEN CALL SOUND(100,800,0):: S=S+1 40 CALL HCHAR(INT(CY)+4,INT(CX)+7,65) :: IF G=24 THEN CALL CLEAR :: PRINT "LOOSER ! BUY AN ATARI !!! YOUR SCORE IS ":: PRINT S;" FORMATTED DISK" :: END ELSE 33 1 DIM Y(48),YY(8):: FOR I=0 TO 10:: Y(I)=(I*16)+1:: Y(20-I)=Y(I)::NEXT I :: CALL MAGNIFY(4) :: CALL CLEAR ::CALL SPRITE(#8,136,5,176,1):: CALL SCREEN(2) 2 CALL CHAR(65,"00000000000000FF1818181818181818FF81FF81FF81FF81"):: FOR I=1 TO 32:: READ A:: CALL VCHAR(3,I,A+60,22):: NEXT I :: T=0 :: CALL COLOR(5,10,2) 3 CALL CHAR(132,"1F3E7C7E7F7F7F55555555555555557FF0F87CFCFCFCFC5454545454545454FC"):: FOR I=1 TO 7 :: YY(I)=INT(RND*19):: CALL SPRITE(#I,132,8,Y(YY(I)),I*32-18) :: NEXT I 4 CALL CHAR(136,"1C3E2A367F3E3E22000000000000000000000000000000000000000000000000") :: A=1:: BX=1::BY=176::BK=241::BXBUF=0 5 CALL JOYST(1,JX,JY) :: Z=BX+JX*2 :: IF (JY>0) AND (BX=BK) THEN BY=BY-16 :: BK=242-BK :: CALL SOUND(1,560,10) ELSE IF Z>0 AND Z<242 THEN BX=Z 6 C=INT((BX+23)/32):: TP=Y(YY(C)) ::IF C>0 AND C<8 AND BY>TP-7 AND BY<TP+31 THEN CALL COLOR(5,10,5)::CALL COLOR(5,10,2)::CALL SOUND(1,220,5)::T=T+100 7 IF BX=241 AND BY=16 THEN CALL CLEAR ::PRINT "YOU WIN !!! YOUR TIME :";T ::END ELSE YY(A)=YY(A)+1 :: IF YY(A)>19 THEN YY(A)=0 8 CALL LOCATE(#A,Y(YY(A)),(A*32)-18) :: A=A+1 :: IF A>7 THEN A=1 9 CALL LOCATE(#8,BY,BX):: T=T+1 :: IF BX<>BXBUF THEN CALL SOUND(1,1950,1):: BXBUF=BX ::GOTO 5 ELSE 5 10 DATA 7,7,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,7,7 Edited December 14, 2021 by rocky007 12 Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted December 14, 2021 Share Posted December 14, 2021 wow, amazing. ( I would need at least the 32K expansion for the code, to program one of these. And 2 years. ? ) 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted December 14, 2021 Share Posted December 14, 2021 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted December 14, 2021 Share Posted December 14, 2021 Excellent videos from Newline99. ? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted December 14, 2021 Share Posted December 14, 2021 8 hours ago, rocky007 said: some tries of Extended Basic games in only 10 lines ? Excellent. Well done. ? Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted December 14, 2021 Share Posted December 14, 2021 Perhaps it's time for another contest? 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted December 14, 2021 Share Posted December 14, 2021 25 minutes ago, Vorticon said: Perhaps it's time for another contest? I would say so. ? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 14, 2021 Share Posted December 14, 2021 4 hours ago, Vorticon said: Perhaps it's time for another contest? Question: What is the purpose of the 10 line limit? Is it to see how much code can be packed into just 10 lines? Or is it to keep the program small and manageable, thus attracting programmers who don't have the time or inclination to get bogged down in a large project? If it is the second, I would suggest having a program size limit of 1640 bytes. This is the maximum number of bytes you can fit into 10 lines. Without the 10 line limit programs are easier to write and the code is less convoluted. 1 1 Quote Link to comment Share on other sites More sharing options...
rocky007 Posted December 14, 2021 Author Share Posted December 14, 2021 (edited) having a constraint of 10 lines allows you to optimize your code to the extreme. the logic deployed will be different than with a limitation in byte size for example it will be necessary to rethink the loops, the routines, the conditional test but I grant you, the result is often illegible and sometime force you to do a dirty code example, how to do in 1 line : 10 FOR I=1 TO 10 20 IF I=1 THEN PRINT "HELLO" 30 NEXT I Edited December 14, 2021 by rocky007 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted December 14, 2021 Share Posted December 14, 2021 29 minutes ago, senior_falcon said: Question: What is the purpose of the 10 line limit? Is it to see how much code can be packed into just 10 lines? Or is it to keep the program small and manageable, thus attracting programmers who don't have the time or inclination to get bogged down in a large project? If it is the second, I would suggest having a program size limit of 1640 bytes. This is the maximum number of bytes you can fit into 10 lines. Without the 10 line limit programs are easier to write and the code is less convoluted. It's really a combination of the two. I like that concept of memory size though! I think I'll launch another competition after everybody has recovered from the Holidays, likely in February. 2 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted December 14, 2021 Share Posted December 14, 2021 Reminds me of the competitions we had among students in my programming courses. We would see who could complete an assignment with the least amount of code. I was hanging out in a different class lab one day and the TA saw one of my programs and flipped her lid. I had to explain to her what was happening, show her my actual assignment that I was turning in, then once she calmed down tell her she was not my TA to begin with. 1 4 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 14, 2021 Share Posted December 14, 2021 5 hours ago, rocky007 said: example, how to do in 1 line : 10 FOR I=1 TO 10 20 IF I=1 THEN PRINT "HELLO" 30 NEXT I Although technically "illegal", disabling prescan enables XB to execute some naughty programming 100 X=0 :: !@P- 110 FOR X=1 TO 10 :: IF X<>1 THEN NEXT X ELSE PRINT "HELLO" :: NEXT X 2 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted December 14, 2021 Share Posted December 14, 2021 5 minutes ago, InsaneMultitasker said: Although technically "illegal", disabling prescan enables XB to execute some naughty programming 100 X=0 :: !@P- 110 FOR X=1 TO 10 :: IF X<>1 THEN NEXT X ELSE PRINT "HELLO" :: NEXT X Ooooooo. @senior_falcon but will it compile? 1 Quote Link to comment Share on other sites More sharing options...
rocky007 Posted December 14, 2021 Author Share Posted December 14, 2021 18 minutes ago, InsaneMultitasker said: Although technically "illegal", disabling prescan enables XB to execute some naughty programming 100 X=0 :: !@P- 110 FOR X=1 TO 10 :: IF X<>1 THEN NEXT X ELSE PRINT "HELLO" :: NEXT X haha well done Quote Link to comment Share on other sites More sharing options...
RXB Posted December 14, 2021 Share Posted December 14, 2021 I think if you use RXB2020E you could really make some great 10 line code that does not need 32K to work. Like using CALL JOYLOCATE Format CALL JOYLOCATE(key-unit,x-return,y-return,row-index,column-index,#sprite,dot-row,dot-column) CALL JOYLOCATE(key-unit,x-return,y-return,row-index,column-index,#sprite,dot-row,dot-column),key-return-variable) CALL JOYLOCATE(key-unit,x-return,y-return,row-index,column-index,#sprite,dot-row,dot-column),key-return-variable) GOTO line-number Description JOYLOCATE combines commands JOYST, KEY, LOCATE and a built in IF fire-button GOTO line-number. Keyboard key or fire button is in key-return-variable, but only joystick fire or key Q is used for GOTO line-number. As seen above line number option can be left out or furter key-return-variable can be left out too. Index is number of dots for row and column. OR CALL JOYMOTION Format CALL JOYMOTION(key-unit,x-return,y-return,#sprite,row-index,column-index) CALL JOYMOTION(key-unit,x-return,y-return,#sprite,row-index,column-index,key-return-variable) CALL JOYMOTION(key-unit,x-return,y-return,#sprite,row-index,column-index,key-return-variable) GOTO line-number Description JOYMOTION combines commands JOYST, KEY, MOTION and a built in IF fire-button GOTO line-number. Keyboard key or fire button is in key-return-variable, but only joystick fire or key Q is used for GOTO line-number. As seen above line number option can be left out or furter key-return-variable can be left out too. Index is number of dots for row and column. OR CALL KEY CALL KEY(string,key-unit,return-variable,status-variable) where string could be X$="EeSsDdXx" would be the arrow keys and would ignore any other keys pressed. These alone would eliminate numerous lines of XB code and no other XB could pull this off or be that fast. JOYMOTION for example is a CALL JOYST, CALL MOTION, CALL KEY and GOTO all in a single command. 2 Quote Link to comment Share on other sites More sharing options...
rocky007 Posted December 15, 2021 Author Share Posted December 15, 2021 yes i know, your RXB is very powerful and perfect for this type of project. but i wanted to code them on a 1981 stock configuration. but in case of a new contest, with RXB accepted in rules, i should try ! 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 15, 2021 Share Posted December 15, 2021 (edited) 1 hour ago, rocky007 said: yes i know, your RXB is very powerful and perfect for this type of project. but i wanted to code them on a 1981 stock configuration. but in case of a new contest, with RXB accepted in rules, i should try ! Agreed. It is best to keep it simple. If you allow RXB then you should also allow XB 2.8 G.E.M., XB 2.7, XB 3 and any other flavor of XB that is out there. Edited December 15, 2021 by senior_falcon 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted December 15, 2021 Share Posted December 15, 2021 15 hours ago, InsaneMultitasker said: Although technically "illegal", disabling prescan enables XB to execute some naughty programming 100 X=0 :: !@P- 110 FOR X=1 TO 10 :: IF X<>1 THEN NEXT X ELSE PRINT "HELLO" :: NEXT X Did not know that! What other tricks does disabling prescan allow? Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted December 15, 2021 Share Posted December 15, 2021 2 hours ago, rocky007 said: yes i know, your RXB is very powerful and perfect for this type of project. but i wanted to code them on a 1981 stock configuration. but in case of a new contest, with RXB accepted in rules, i should try ! With the last contest we allowed all flavors of XB. This time around, I think we'll have 2 categories: TI XB and a separate category for all other flavors of advanced XB. This should keep the playing field level. While we also had TI BASIC in the mix as well, 10 lines is simply too limiting in that environment to allow for very interesting projects and we had few entries, so I'm thinking no to include this category this time around. 2 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted December 15, 2021 Share Posted December 15, 2021 25 minutes ago, Vorticon said: Did not know that! What other tricks does disabling prescan allow? I bet it will allow for recursive SUBs, returning XB to its v1.00 behavior. 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 15, 2021 Share Posted December 15, 2021 22 hours ago, rocky007 said: having a constraint of 10 lines allows you to optimize your code to the extreme. the logic deployed will be different than with a limitation in byte size for example it will be necessary to rethink the loops, the routines, the conditional test but I grant you, the result is often illegible and sometime force you to do a dirty code example, how to do in 1 line : 10 FOR I=1 TO 10 20 IF I=1 THEN PRINT "HELLO" 30 NEXT I This does it in one line, but I would hardly say the code is "optimized". 1 FOR I=1 TO 10 :: PRINT SEG$("HELLO",1,-5*(I=1));:: NEXT I 2 Quote Link to comment Share on other sites More sharing options...
rocky007 Posted December 15, 2021 Author Share Posted December 15, 2021 1 hour ago, senior_falcon said: This does it in one line, but I would hardly say the code is "optimized". 1 FOR I=1 TO 10 :: PRINT SEG$("HELLO",1,-5*(I=1));:: NEXT I pretty clever..but unfortunaly it doesnt give the same result : on your code, you don't have the line return after "HELLO"..? Quote Link to comment Share on other sites More sharing options...
RXB Posted December 15, 2021 Share Posted December 15, 2021 5 hours ago, senior_falcon said: Agreed. It is best to keep it simple. If you allow RXB then you should also allow XB 2.8 G.E.M., XB 2.7, XB 3 and any other flavor of XB that is out there. Sure, but those are not designed to use Assembly from Console ONLY, but they do have cool features. You need a command like RXB CALL EXECUTE(RAM-address) in order to do that, as far as I know they all have CALL LINK which requires 32K Lower 8K. Of course, very little Scratch Pad can be used for Assembly like only first 24 bytes of Scratch Pad along with FAC and ARG area 32 bytes. Thus 32 bytes from FAC & ARG are new set of Registers are set up with CALL LOADs while 24 bytes are the Assembly program. My IN THE DARK game used this feature of Assembly support using Scratch Pad and RAM, but using Scratch Pad alone is fine. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 15, 2021 Share Posted December 15, 2021 3 hours ago, RXB said: Of course, very little Scratch Pad can be used for Assembly like only first 24 bytes of Scratch Pad along with FAC and ARG area 32 bytes. Thus 32 bytes from FAC & ARG are new set of Registers are set up with CALL LOADs while 24 bytes are the Assembly program. I had my doubts, so I ran this program using RXB2020 in Classic99. This pokes the values 1 to 24 to >8300 10 CALL LOAD(-32000,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) 20 GOTO 20 Using the debugger I could see that only the first 5 bytes were as expected; the others were different values.Not even Rasmus can write a useful assembly program on the TI using only 5 bytes. Poking to the FAC at >834A yielded similar results - a couple of bytes were correct, but most were not. So I cannot see how this would be useful on a TI99 without the memory expansion. Quote Link to comment Share on other sites More sharing options...
RXB Posted December 15, 2021 Share Posted December 15, 2021 22 minutes ago, senior_falcon said: I had my doubts, so I ran this program using RXB2020 in Classic99. This pokes the values 1 to 24 to >8300 10 CALL LOAD(-32000,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) 20 GOTO 20 Using the debugger I could see that only the first 5 bytes were as expected; the others were different values.Not even Rasmus can write a useful assembly program on the TI using only 5 bytes. Poking to the FAC at >834A yielded similar results - a couple of bytes were correct, but most were not. So I cannot see how this would be useful on a TI99 without the memory expansion. You have a point as a I have made modification since then from 2020E, this is how GPL does CALL EXECUTE(adddress) it does a BLWP @address *********************************************************** * CPU PROGRAM FOR >8300 SCATCH PAD SUBROUTINE EXECUTE * *********************************************************** * AORG >8300 * CPUPGM DATA >8302 * CPUPGM DATA >8302 First address. * DATA >0420 * BLWP @>834A Switch contex * DATA >834A * FAC not used * DATA >04E0 * CLR @>837C Clear for GPL * DATA >837C * Status Reg * DATA >045B * RT Return to GPL. * * END * END * ********************************************************** The new RXB 2021 CALL EXE(address) instead of a BLWP @address does a BL @address the entire point is to load assembly, and run it, any other line that is executed next will of course, not be dependable as different commands and tokens trigger different values in Scratch Pad. This new approach allows for use of XB ROM routines to be used directly thus, routines like XB SCROLL can be directly called which would be faster than PRINT. So yes you are correct if you load Scratch Pad you have to be very careful as to where. But soon it should be easier to do in RXB 2021. Here is GROM 3 Scratch Pad use: *********************************************************** * Temporary workspaces in EDIT PAD EQU >8300 TEMPORARY PAD1 EQU >8301 TEMPORARY PAD2 EQU >8302 TEMPORARY ACCUM EQU >8302 # OF BYTES ACCUMULATOR (4 BYTE STPT EQU >8302 TWO BYTES PAD3 EQU >8303 TEMPORARY PAD4 EQU >8304 TEMPORARY PABPTR EQU >8304 PAD5 EQU >8305 TEMPORARY PAD6 EQU >8306 TEMPORARY DFLTLM EQU >8306 Default array limit (10) CCPPTR EQU >8306 OFFSET WITHIN RECORED (1) RECLEN EQU >8307 LENGTH OF CURRENT RECORD (1) PAD7 EQU >8307 TEMPORARY CCPADR EQU >8308 RAM address of current refs PAD8 EQU >8308 CCPADD EQU >8308 RAM address of current color CALIST EQU >830A Call list for resolving refs RAMPTR EQU >830A Pointer for crunching BYTES EQU >830C BYTE COUNTER NMPTR EQU >830C Pointer save for pscan CHSAV EQU >830E CURINC EQU >830E Increment for auto-num mode TOPSTK EQU >8310 Top of data stack pointer LINUM EQU >8312 Used to determine end of scan NMLEN EQU >8314 Current line for auto-num CURLIN EQU >8314 Current line for auto-num VAR9 EQU >8316 XFLAG EQU >8316 SCAN FLAG-BITS USED AS BELOW DSRFLG EQU >8317 INTERNAL =60, EXTERNAL =0 (1) FORNET EQU >8317 Nesting level of for/next AAA1 EQU >8302 BBB1 EQU >830C CCC1 EQU >8308 *********************************************************** * Permanent workspace variables STRSP EQU >8318 String space begining STREND EQU >831A String space ending SREF EQU >831C Temporary string pointer SMTSRT EQU >831E Start of current statement VARW EQU >8320 Screen address ERRCOD EQU >8322 Return error code from ALC STVSPT EQU >8324 Value-stack base VARA EQU >832A Ending display location PGMPTR EQU >832C Program text pointer EXTRAM EQU >832E Line number table pointer STLN EQU >8330 Start of line number table ENLN EQU >8332 End of line number table DATA EQU >8334 Data pointer for READ LNBUF EQU >8336 Line table pointer for READ INTRIN EQU >8338 Add of intrinsic poly constant SUBTAB EQU >833A Subprogram symbol table IOSTRT EQU >833C PAB list/Start of I/O chain SYMTAB EQU >833E Symbol table pointer FREPTR EQU >8340 Free space pointer CHAT EQU >8342 Current charater/token BASE EQU >8343 OPTION BASE value PRGFLG EQU >8344 Program/imperative flag FLAG EQU >8345 General 8-bit flag BUFLEV EQU >8346 Crunch-buffer destruction leve LSUBP EQU >8348 Last subprogram block on stack * FAC EQU >834A Floating-point ACcurmulator FAC1 EQU FAC+1 FAC2 EQU FAC+2 FAC3 EQU FAC+3 FAC4 EQU FAC+4 FAC5 EQU FAC+5 FAC6 EQU FAC+6 FAC7 EQU FAC+7 FAC8 EQU FAC+8 FAC9 EQU FAC+9 FAC10 EQU FAC+10 FAC11 EQU FAC+11 FAC12 EQU FAC+12 FAC13 EQU FAC+13 FAC14 EQU FAC+14 FAC15 EQU FAC+15 FAC16 EQU FAC+16 FAC17 EQU FAC+17 AAA EQU FAC+2 CCC EQU FAC+4 BBB EQU FAC+6 DDD EQU FAC+2 FFF EQU FAC+4 EEE EQU FAC+6 DDD1 EQU FAC+10 FFF1 EQU FAC+12 EEE1 EQU FAC+14 * ARG EQU >835C Floating-point ARGument ARG1 EQU ARG+1 ARG2 EQU ARG+2 ARG3 EQU ARG+3 ARG4 EQU ARG+4 ARG5 EQU ARG+5 ARG6 EQU ARG+6 ARG7 EQU ARG+7 ARG8 EQU ARG+8 XSTLN EQU >8364 GKXB variable XENLN EQU >8366 GKXB variable ARG11 EQU ARG+11 XCURLI EQU >8368 GKXB variable XCURIN EQU >836A GKXB variable ARG15 EQU ARG+15 ARG16 EQU ARG+16 * VSPTR EQU >836E Value stack pointer HIVDP EQU >8370 Highest VDP Avaliable EXPZ EQU >8376 Exponent in floating-point RAMTOP EQU >8384 Highest address in ERAM RAMFRE EQU >8386 Free pointer in the ERAM RSTK EQU >8388 Subroutine stack base RAMFLG EQU >8389 ERAM flag STKMIN EQU >83AF Base of data stack STKMAX EQU >83BD Top of data stack PRTNFN EQU >83CE *********************************************************** 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.