mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
242 lines
7.7 KiB
Plaintext
242 lines
7.7 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
* PAGE ZERO VARIABLES
|
||
*--------------------------------
|
||
* $00 THRU $1F RESERVED FOR USER
|
||
*---Apple Monitor, mostly--------
|
||
MON.WIDTH .EQ $21
|
||
CH80 .EQ $57B
|
||
CH .EQ $24
|
||
CV .EQ $25
|
||
BASL .EQ $28
|
||
YSAVE .EQ $2F
|
||
ESCAPE.FLAG .EQ $30
|
||
MON.MODE .EQ $31
|
||
MON.INVFLG .EQ $32
|
||
MON.YSAV .EQ $34
|
||
HOOK.OUT .EQ $36,37
|
||
HOOK.IN .EQ $38,39
|
||
A0L .EQ $3A
|
||
A0H .EQ $3B
|
||
A1L .EQ $3C
|
||
A1H .EQ $3D
|
||
A2L .EQ $3E
|
||
A2H .EQ $3F
|
||
*--------------------------------
|
||
* ProDOS USES $40-4F
|
||
*--------------------------------
|
||
A3L .EQ $40
|
||
A3H .EQ $41
|
||
A4L .EQ $42
|
||
A4H .EQ $43
|
||
*--------------------------------
|
||
.DUMMY
|
||
.OR $50
|
||
*--------------------------------
|
||
*
|
||
* Following needed at all times
|
||
*
|
||
*--------------------------------
|
||
SCREEN.WIDTH .BS 1
|
||
INFLAG .BS 1
|
||
LO.MEM .BS 2 START OF SYMBOL TABLE
|
||
EOT .BS 2 END OF SYMBOL TABLE
|
||
PP .BS 2 START OF SOURCE PROGRAM
|
||
HI.MEM .BS 2 END OF SOURCE CODE
|
||
*--------------------------------
|
||
PAGE.NUMBER .BS 2
|
||
PAGE.LENGTH .BS 1 =0 means no titles
|
||
LINE.COUNT .BS 1
|
||
DGTCNT .BS 1
|
||
INCREMENT.VALUE .BS 2 FOR AUTO-LINE-NUMBERING (INIT=10)
|
||
CURLNO .BS 2 NUMBER OF LAST-SUBMITTED LINE (INIT=990)
|
||
PASS .BS 1 PASS NUMBER (0=PASS 1, 1=PASS 2)
|
||
CHAR.PNTR .BS 1
|
||
CURRENT.CHAR .BS 1 CURRENT CHARACTER FROM 'GNC'
|
||
CURRENT.MAJOR.LABEL .BS 2 PNTR TO CURRENT MAJOR LABEL
|
||
EXP.NEW .BS 1 NEW EXPRESSION FLAG
|
||
STPNTR .BS 2 SYMBOL TABLE WORKING POINTER
|
||
TPTR .BS 2 SYMBOL TABLE TEMP POINTER
|
||
BASE.INDEX .BS 1 used in EXPR
|
||
LC.MODE .BS 1
|
||
EXP.VALUE .BS 4
|
||
EXP.VALUE64 .BS 4
|
||
SYM.VALUE .BS 4
|
||
EXP.UNDEF .BS 1 UNDEFINED TERM FLAG
|
||
EMIT.COLUMN .BS 1 KEEPS TRACK OF COLUMN FOR EMIT
|
||
ORGN .BS 4
|
||
RPTCHR .BS 1 (NML, NTKN)
|
||
RPTCNT .BS 1 (NML, NTKN)
|
||
PNTR .BS 2 SEARCH STRING PNTR
|
||
INSAVE .BS 8
|
||
*--------------------------------
|
||
CALL.NUM .BS 2 CURRENT MACRO CALL NUMBER
|
||
MACLBL .BS 2
|
||
CONV.CTRL .BS 1 CONTROL FLAG INSIDE CONVERT.LINE.NUMBER
|
||
MACRO.LEVEL .BS 1
|
||
PARAM.PNTR .BS 1
|
||
PARAM.CNT .BS 1
|
||
*--------------------------------
|
||
PROMPT.FLAG .BS 1 NULL, "H", OR "I"
|
||
HIDE.HIMEM .BS 2 SAVES HIMEM DURING "HIDE"
|
||
CURRENT.LINE.NUMBER .BS 2
|
||
LF.ALL .BS 1 =0 TO LIST, <0 TO NOT LIST
|
||
LF.MACRO .BS 1 =0 TO LIST MACRO EXPANSIONS
|
||
FLAG.SPEED .BS 1
|
||
DLIM .BS 1 ".AS" DELIMITER, also ASM
|
||
SRCP .BS 2 POINTER TO CURRENT SOURCE LINE
|
||
ENDP .BS 2 POINTER TO END OF LINE RANGE
|
||
EXP.FWDREF .BS 1
|
||
AUTOLN.FLAG .BS 1 +=MANUAL, -=AUTO LINE NUMBERS
|
||
LINE.START .BS 2
|
||
LINE.END .BS 2
|
||
*--------------------------------
|
||
ZP.COMMON .EQ *
|
||
*--------------------------------
|
||
*
|
||
* Variables used only during SPECIFIC commands
|
||
*
|
||
*--------------------------------
|
||
BLKSIZ .BS 1 used in MOVE.TEXT.UP and MOVE.TEXT.DOWN
|
||
MOVE.DISTANCE .BS 2 used in NML, COPY, and MOVE.TEXT.UP
|
||
AUTO.FLAG .BS 1 +=VERIFY, -=AUTO REPLACE
|
||
CHANGE.CNT .BS 1 # OF REPLACEMENTS IN THIS LINE
|
||
ED.FCOL .BS 1
|
||
ED.FKEY .BS 1
|
||
ED.PNTR .BS 1
|
||
ED.BEGLIN .BS 1
|
||
TEXT.OPTIONS .BS 1 used in TEXT command only
|
||
REPLACE.LENGTH .BS 1
|
||
SOURCE.LENGTH .BS 1
|
||
WBUF.LENGTH .BS 1
|
||
KEY.PNTR .BS 2 USED IN FIND, REPLACE
|
||
BUF.PNTR .BS 2 USED IN FIND, REPLACE
|
||
KEY.ADDR .BS 2 SEARCH KEY ADDRESS
|
||
MATCH.END .BS 1
|
||
LC.FLAG .BS 1 +=AS IS, -=ACCEPT BOTH CASES
|
||
*--------------------------------
|
||
.OR ZP.COMMON
|
||
*--------------------------------
|
||
*
|
||
* Variables used only during Assembly
|
||
*
|
||
*--------------------------------
|
||
SEARCH.KEY .BS 3 USED BY OPCODE SEARCH ROUTINE
|
||
OPTBL.PNTR .BS 2 USED BY OPCODE SEARCH ROUTINE
|
||
DO.INDEX .BS 1 DO level: =0 if empty, else 1-63
|
||
DO.STACK .BS 8 64 bits, =1 if true
|
||
DO.SKIP.CNT .BS 1 COUNTS .DO NESTS WHEN SKIPPING
|
||
NYBBLE.FLAG .BS 1 .AC DIRECTIVE
|
||
BYTE .BS 1 .AC DIRECTIVE
|
||
PHASE.FLAG .BS 1 +=NORMAL, -=IN PHASE
|
||
DUMMY.FLAG .BS 1 +=NORMAL, -=IN DUMMY SECTION
|
||
TF.FLAG .BS 1
|
||
TRGT .BS 2 TARGET ADDRESS
|
||
MACSTK .BS 2 MACRO STACK POINTER
|
||
ERROR.COUNT .BS 2
|
||
*--------------------------------
|
||
OBJ.BYTE .BS 1
|
||
ADDR.LENGTH .BS 1
|
||
LF.CONDITIONAL .BS 1 =0 TO LIST FALSE SETS
|
||
LF.XTRA.BYTES .BS 1 =0 TO LIST XTRA BYTES ON XTRA LINES
|
||
EMIT.MARGIN .BS 1 COLUMN FOR LINE NUMBER TO START IN
|
||
MACRO.SAVEX .BS 1
|
||
DUMMY.ORGN .BS 4
|
||
ORIGIN.SAVE .BS 4
|
||
FLAG.MA .BS 1
|
||
CALL.CNTR .BS 2 TOTAL # OF MACRO CALLS
|
||
*--------------------------------
|
||
*---ONLY IN .BS DIRECTIVE--------
|
||
BS.COUNT .BS 2 # BYTES TO RESERVE
|
||
*---ONLY IN .AS & .AT DIRECTIVES
|
||
AS.HIBIT .BS 1 BIT 7 VALUE FOR .AS/.AT
|
||
AT.HIBIT .BS 1 BIT 7 TOGGLE FOR LAST BYTE BIT 7
|
||
*--------------------------------
|
||
*
|
||
*---$EB reserved for ECHO TEXTALKER software---
|
||
*
|
||
*---$F0-FF reserved for ASM.PARTICULAR---
|
||
*
|
||
*--------------------------------
|
||
.ED
|
||
*--------------------------------
|
||
* CHARACTER CODES
|
||
*--------------------------------
|
||
CHR.CTRL.I .EQ $89
|
||
CHR.RETURN .EQ $8D
|
||
CHR.BLANK .EQ $A0
|
||
CHR.DOLLAR .EQ $A4
|
||
CHR.STAR .EQ $AA
|
||
CHR.DASH .EQ $AD
|
||
CHR.PERIOD .EQ $2E
|
||
CHR.BSLASH .EQ $DC
|
||
*--------------------------------
|
||
* MISCELLANEOUS SYMBOLS
|
||
*--------------------------------
|
||
SYMBOL .EQ $0100 SYMBOL PACK AREA
|
||
HSHTBL .EQ $0130 HASH POINTER TABLE
|
||
KBUF .EQ $0170 - $01BF KEY STRING
|
||
WBUF .EQ $0200 WORKING BUFFER
|
||
WBUF.MAX .EQ 248 AND ITS LENGTH
|
||
PATHNAME .EQ $2CE (LAST 50 BYTES)
|
||
*--------------------------------
|
||
* ROM-BASED ROUTINES
|
||
*--------------------------------
|
||
MON.PRNTAX .EQ $F941
|
||
MON.PRBL2 .EQ $F94A PRINT (X) BLANKS
|
||
MON.INIT .EQ $FB2F TEXT MODE, FULL WINDOW
|
||
MON.ADVANC .EQ $FBF4
|
||
MON.BS .EQ $FC10
|
||
MON.UP .EQ $FC1A
|
||
MON.VTAB .EQ $FC22
|
||
MON.CLREOP .EQ $FC42
|
||
MON.HOME .EQ $FC58
|
||
MON.LF .EQ $FC66
|
||
MON.CLREOL .EQ $FC9C
|
||
MON.DELAY .EQ $FCA8
|
||
MON.RDKEY .EQ $FD0C READ NEXT CHAR
|
||
MON.READCH .EQ $FD18
|
||
MON.PHEX .EQ $FDDA PRINT BYTE IN HEX
|
||
MON.COUT .EQ $FDED
|
||
MON.BL1 .EQ $FE00
|
||
MON.SETKBD .EQ $FE89
|
||
MON.SETVID .EQ $FE93
|
||
MON.OUTPORT .EQ $FE95 SET NEW PR#N OUTPUT
|
||
MON.BELL .EQ $FF3A RING THE BELL
|
||
MON.RTS .EQ $FF58 ONLY AN "RTS"
|
||
MNTR .EQ $FF69 CALL-151 ENTRY INTO MONITOR
|
||
MON.GETNUM .EQ $FFA7
|
||
MON.TOSUB .EQ $FFBE
|
||
MON.CHRTBL .EQ $FFCC MONITOR COMMAND CHAR TABLE
|
||
*--------------------------------
|
||
MON.RESET .EQ $3F2 THRU 3F4
|
||
*--------------------------------
|
||
.MA INCD
|
||
INC ]1
|
||
BNE :1
|
||
INC ]1+1
|
||
:1
|
||
.EM
|
||
*--------------------------------
|
||
RDMAIN .EQ $C002
|
||
RDAUX .EQ $C003
|
||
RDROM .EQ $C082
|
||
RDRAM .EQ $C083
|
||
WRMAIN .EQ $C004
|
||
WRAUX .EQ $C005
|
||
AUX.CODE .EQ $DF00
|
||
*--------------------------------
|
||
.MA SYM
|
||
.DO AUXMEM
|
||
JSR ]1.]2
|
||
.ELSE
|
||
]1 (]2),Y
|
||
.FIN
|
||
.EM
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/scmasm.31/scmasm.s.data
|
||
LOAD usr/src/scmasm.31/scmasm.s
|
||
ASM
|