mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +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
|