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