goapple2/source/applesoft/S.DEFINITIONS

164 lines
6.8 KiB
Plaintext

1010 *--------------------------------
1020 * ZERO PAGE LOCATIONS:
1030 *--------------------------------
1040 GOWARM .EQ $00,01,02 GETS "JMP RESTART"
1050 GOSTROUT .EQ $03,04,05 GETS "JMP STROUT"
1060 USR .EQ $0A,0B,0C GETS "JMP <USER ADDR>"
1070 * (INITIALLY $E199)
1080 CHARAC .EQ $0D ALTERNATE STRING TERMINATOR
1090 ENDCHR .EQ $0E STRING TERMINATOR
1100 TKN.CNTR .EQ $0F USED IN PARSE
1110 EOL.PNTR .EQ $0F USED IN NXLIN
1120 NUMDIM .EQ $0F USED IN ARRAY ROUTINES
1130 DIMFLG .EQ $10
1140 VALTYP .EQ $11,12 $:VALTYP=$FF; %:VALTYP+1=$80
1150 DATAFLG .EQ $13 USED IN PARSE
1160 GARFLG .EQ $13 USED IN GARBAG
1170 SUBFLG .EQ $14
1180 INPUTFLG .EQ $15 = $40 FOR GET, $98 FOR READ
1190 CPRMASK .EQ $16 RECEIVES CPRTYP IN FRMEVL
1200 SIGNFLG .EQ $16 FLAGS SIGN IN TAN
1210 HGR.SHAPE .EQ $1A,1B
1220 HGR.BITS .EQ $1C
1230 HGR.COUNT .EQ $1D
1240 MON.CH .EQ $24
1250 MON.GBASL .EQ $26
1260 MON.GBASH .EQ $27
1270 MON.H2 .EQ $2C
1280 MON.V2 .EQ $2D
1290 MON.HMASK .EQ $30
1300 MON.INVFLG .EQ $32
1310 MON.PROMPT .EQ $33
1320 MON.A1L .EQ $3C USED BY TAPE I/O ROUTINES
1330 MON.A1H .EQ $3D "
1340 MON.A2L .EQ $3E "
1350 MON.A2H .EQ $3F "
1360 LINNUM .EQ $50,51 CONVERTED LINE #
1370 TEMPPT .EQ $52 LAST USED TEMP STRING DESC
1380 LASTPT .EQ $53,54 LAST USED TEMP STRING PNTR
1390 TEMPST .EQ $55 - 5D HOLDS UP TO 3 DESCRIPTORS
1400 INDEX .EQ $5E,5F
1410 DEST .EQ $60,61
1420 RESULT .EQ $62 - 66 RESULT OF LAST * OR /
1430 TXTTAB .EQ $67,68 START OF PROGRAM TEXT
1440 VARTAB .EQ $69,6A START OF VARIABLE STORAGE
1450 ARYTAB .EQ $6B,6C START OF ARRAY STORAGE
1460 STREND .EQ $6D,6E END OF ARRAY STORAGE
1470 FRETOP .EQ $6F,70 START OF STRING STORAGE
1480 FRESPC .EQ $71,72 TEMP PNTR, STRING ROUTINES
1490 MEMSIZ .EQ $73,74 END OF STRING SPACE (HIMEM)
1500 CURLIN .EQ $75,76 CURRENT LINE NUMBER
1510 * ( = $FFXX IF IN DIRECT MODE)
1520 OLDLIN .EQ $77,78 ADDR. OF LAST LINE EXECUTED
1530 OLDTEXT .EQ $79,7A
1540 DATLIN .EQ $7B,7C LINE # OF CURRENT DATA STT.
1550 DATPTR .EQ $7D,7E ADDR OF CURRENT DATA STT.
1560 INPTR .EQ $7F,80
1570 VARNAM .EQ $81,82 NAME OF VARIABLE
1580 VARPNT .EQ $83,84 ADDR OF VARIABLE
1590 FORPNT .EQ $85,86
1600 TXPSV .EQ $87,88 USED IN INPUT
1610 LASTOP .EQ $87 SCRATCH FLAG USED IN FRMEVL
1620 CPRTYP .EQ $89 >,=,< FLAG IN FRMEVL
1630 TEMP3 .EQ $8A - 8E
1640 FNCNAM .EQ $8A
1650 DSCPTR .EQ $8C
1660 DSCLEN .EQ $8F USED IN GARBAG
1670 JMPADRS .EQ $90,91,92 GETS "JMP ...."
1680 LENGTH .EQ $91 USED IN GARBAG
1690 ARG.EXTENSION .EQ $92 FP EXTRA PRECISION
1700 TEMP1 .EQ $93 - 97 SAVE AREAS FOR FAC
1710 ARYPNT .EQ $94 USED IN GARBAG
1720 HIGHDS .EQ $94,95 PNTR FOR BLTU
1730 HIGHTR .EQ $96,97 PNTR FOR BLTU
1740 TEMP2 .EQ $98 - 9C
1750 TMPEXP .EQ $99 USED IN FIN (EVAL)
1760 INDX .EQ $99 USED BY ARRAY RTNS
1770 EXPON .EQ $9A "
1780 DPFLG .EQ $9B FLAGS DEC PNT IN FIN
1790 LOWTR .EQ $9B,9C
1800 EXPSGN .EQ $9C
1810 FAC .EQ $9D - A1 MAIN FLT PT ACCUMULATOR
1820 DSCTMP .EQ $9D,9E,9F
1830 VPNT .EQ $A0,A1 TEMP VAR PTR
1840 FAC.SIGN .EQ $A2 HOLDS UNPACKED SIGN
1850 SERLEN .EQ $A3 HOLDS LENGTH OF SERIES-1
1860 SHIFT.SIGN.EXT .EQ $A4 SIGN EXTENSION, RIGHT SHIFTS
1870 ARG .EQ $A5 - A9 SECONDARY FP ACC
1880 ARG.SIGN .EQ $AA
1890 SGNCPR .EQ $AB FLAGS OPP SIGN IN FP ROUT.
1900 FAC.EXTENSION .EQ $AC FAC EXTENSION BYTE
1910 SERPNT .EQ $AD PNTR TO SERIES DATA IN FP
1920 STRNG1 .EQ $AB,AC
1930 STRNG2 .EQ $AD,AE
1940 PRGEND .EQ $AF,B0
1950 CHRGET .EQ $B1 - C8
1960 CHRGOT .EQ $B7
1970 TXTPTR .EQ $B8,B9
1980 RNDSEED .EQ $C9 - CD
1990 HGR.DX .EQ $D0,D1
2000 HGR.DY .EQ $D2
2010 HGR.QUADRANT .EQ $D3
2020 HGR.E .EQ $D4,D5
2030 LOCK .EQ $D6 NO USER ACCESS IF > 127
2040 ERRFLG .EQ $D8 $80 IF ON ERR ACTIVE
2050 ERRLIN .EQ $DA,DB LINE # WHERE ERROR OCCURRED
2060 ERRPOS .EQ $DC,DD TXTPTR SAVE FOR HANDLERR
2070 ERRNUM .EQ $DE WHICH ERROR OCCURRED
2080 ERRSTK .EQ $DF STACK PNTR BEFORE ERROR
2090 HGR.X .EQ $E0,E1
2100 HGR.Y .EQ $E2
2110 HGR.COLOR .EQ $E4
2120 HGR.HORIZ .EQ $E5 BYTE INDEX FROM GBASH,L
2130 HGR.PAGE .EQ $E6 HGR=$20, HGR2=$40
2140 HGR.SCALE .EQ $E7
2150 HGR.SHAPE.PNTR .EQ $E8,E9
2160 HGR.COLLISIONS .EQ $EA
2170 FIRST .EQ $F0
2180 SPEEDZ .EQ $F1 OUTPUT SPEED
2190 TRCFLG .EQ $F2
2200 FLASH.BIT .EQ $F3 = $40 FOR FLASH, ELSE =$00
2210 TXTPSV .EQ $F4,F5
2220 CURLSV .EQ $F6,F7
2230 REMSTK .EQ $F8 STACK PNTR BEFORE EACH STT.
2240 HGR.ROTATION .EQ $F9
2250 * $FF IS ALSO USED BY THE STRING OUT ROUTINES
2260 *--------------------------------
2270 STACK .EQ $100
2280 INPUT.BUFFER .EQ $200
2290 AMPERSAND.VECTOR .EQ $3F5 - 3F7 GETS "JMP ...."
2300 *--------------------------------
2310 * I/O & SOFT SWITCHES
2320 *--------------------------------
2330 KEYBOARD .EQ $C000
2340 SW.TXTCLR .EQ $C050
2350 SW.MIXCLR .EQ $C052
2360 SW.MIXSET .EQ $C053
2370 SW.LOWSCR .EQ $C054
2380 SW.HISCR .EQ $C055
2390 SW.LORES .EQ $C056
2400 SW.HIRES .EQ $C057
2410 *--------------------------------
2420 * MONITOR SUBROUTINES
2430 *--------------------------------
2440 MON.PLOT .EQ $F800
2450 MON.HLINE .EQ $F819
2460 MON.VLINE .EQ $F828
2470 MON.SETCOL .EQ $F864
2480 MON.SCRN .EQ $F871
2490 MON.PREAD .EQ $FB1E
2500 MON.SETTXT .EQ $FB39
2510 MON.SETGR .EQ $FB40
2520 MON.TABV .EQ $FB5B
2530 MON.HOME .EQ $FC58
2540 MON.WAIT .EQ $FCA8
2550 MON.RD2BIT .EQ $FCFA
2560 MON.RDKEY .EQ $FD0C
2570 MON.GETLN .EQ $FD6A
2580 MON.COUT .EQ $FDED
2590 MON.INPORT .EQ $FE8B
2600 MON.OUTPORT .EQ $FE95
2610 MON.WRITE .EQ $FECD
2620 MON.READ .EQ $FEFD
2630 MON.READ2 .EQ $FF02
2640 *--------------------------------