mirror of
https://github.com/brouhaha/a2zip.git
synced 2026-10-25 03:02:21 +00:00
792 lines
8.1 KiB
Plaintext
792 lines
8.1 KiB
Plaintext
PAGE
|
|
|
|
; Some useful macros
|
|
|
|
DSTZ MACRO ADDR
|
|
LDA #$00
|
|
STA ADDR
|
|
STA ADDR+1
|
|
ENDM
|
|
|
|
DASL MACRO ADR1,ADR2
|
|
IFNB <ADR2>
|
|
LDA ADR1
|
|
ASL A
|
|
STA ADR2
|
|
LDA ADR1+1
|
|
ROL A
|
|
STA ADR2+1
|
|
ELSE
|
|
ASL ADR1
|
|
ROL ADR1+1
|
|
ENDIF
|
|
ENDM
|
|
|
|
DLSR MACRO ADR1,ADR2
|
|
IFNB <ADR2>
|
|
LDA ADR1+1
|
|
LSR A
|
|
STA ADR2+1
|
|
LDA ADR1
|
|
ROR A
|
|
STA ADR2
|
|
ELSE
|
|
LSR ADR1+1
|
|
ROR ADR1
|
|
ENDIF
|
|
ENDM
|
|
|
|
DROR MACRO ADR1,ADR2
|
|
IFNB <ADR2>
|
|
LDA ADR1+1
|
|
ROR A
|
|
STA ADR2+1
|
|
LDA ADR1
|
|
ROR A
|
|
STA ADR2
|
|
ELSE
|
|
ROR ADR1+1
|
|
ROR ADR1
|
|
ENDIF
|
|
ENDM
|
|
|
|
DROL MACRO ADR1,ADR2
|
|
IFNB <ADR2>
|
|
LDA ADR1
|
|
ROL A
|
|
STA ADR2
|
|
LDA ADR1+1
|
|
ROL A
|
|
STA ADR2+1
|
|
ELSE
|
|
ROL ADR1
|
|
ROL ADR1+1
|
|
ENDIF
|
|
ENDM
|
|
|
|
DOR MACRO ADR1,ADR2,ADR3
|
|
LDA ADR1+1
|
|
ORA ADR2+1
|
|
STA ADR3+1
|
|
LDA ADR1
|
|
ORA ADR2
|
|
STA ADR3
|
|
ENDM
|
|
|
|
DAND MACRO ADR1,ADR2,ADR3
|
|
LDA ADR1+1
|
|
AND ADR2+1
|
|
STA ADR3+1
|
|
LDA ADR1
|
|
AND ADR2
|
|
STA ADR3
|
|
ENDM
|
|
|
|
D1COMP MACRO ADR1,ADR2
|
|
LDA ADR1
|
|
EOR #$FF
|
|
STA ADR2
|
|
LDA ADR1+1
|
|
EOR #$FF
|
|
STA ADR2+1
|
|
ENDM
|
|
|
|
DADC MACRO ADR1,ADR2,ADR3
|
|
LDA ADR1
|
|
ADC ADR2
|
|
IRP ADR,<ADR3>
|
|
STA ADR
|
|
ENDM
|
|
LDA ADR1+1
|
|
ADC ADR2+1
|
|
IRP ADR,<ADR3>
|
|
STA ADR+1
|
|
ENDM
|
|
ENDM
|
|
|
|
DSBC MACRO ADR1,ADR2,ADR3
|
|
LDA ADR1
|
|
SBC ADR2
|
|
IRP ADR,<ADR3>
|
|
STA ADR
|
|
ENDM
|
|
LDA ADR1+1
|
|
SBC ADR2+1
|
|
IRP ADR,<ADR3>
|
|
STA ADR+1
|
|
ENDM
|
|
ENDM
|
|
|
|
DADD MACRO ADR1,ADR2,ADR3
|
|
CLC
|
|
DADC <ADR1>,<ADR2>,<ADR3>
|
|
ENDM
|
|
|
|
DSUB MACRO ADR1,ADR2,ADR3
|
|
SEC
|
|
DSBC <ADR1>,<ADR2>,<ADR3>
|
|
ENDM
|
|
|
|
ADD MACRO ADR1,ADR2,ADR3
|
|
IFNB <ADR1>
|
|
LDA ADR1
|
|
ENDIF
|
|
CLC
|
|
ADC ADR2
|
|
IFNB <ADR3>
|
|
IRP ADR,<ADR3>
|
|
STA ADR
|
|
ENDM
|
|
ENDIF
|
|
ENDM
|
|
|
|
SUB MACRO ADR1,ADR2,ADR3
|
|
IFNB <ADR1>
|
|
LDA ADR1
|
|
ENDIF
|
|
SEC
|
|
SBC ADR2
|
|
IFNB <ADR3>
|
|
IRP ADR,<ADR3>
|
|
STA ADR
|
|
ENDM
|
|
ENDIF
|
|
ENDM
|
|
|
|
DADDB1 MACRO ADDR,BYTE
|
|
LOCAL LABEL
|
|
CLC
|
|
LDA ADDR
|
|
ADC BYTE
|
|
STA ADDR
|
|
BCC LABEL
|
|
INC ADDR+1
|
|
LABEL:
|
|
ENDM
|
|
|
|
DSUBB1 MACRO ADDR,BYTE
|
|
LOCAL LABEL
|
|
SEC
|
|
LDA ADDR
|
|
SBC BYTE
|
|
STA ADDR
|
|
BCS LABEL
|
|
DEC ADDR+1
|
|
LABEL:
|
|
ENDM
|
|
|
|
DADDB2 MACRO ADDR,BYTE
|
|
LOCAL LABEL
|
|
IFNB <BYTE>
|
|
ADD ADDR,BYTE,ADDR
|
|
ELSE
|
|
ADD ,ADDR,ADDR
|
|
ENDIF
|
|
BCC LABEL
|
|
INC ADDR+1
|
|
LABEL:
|
|
ENDM
|
|
|
|
DSUBB2 MACRO ADDR,BYTE
|
|
LOCAL LABEL
|
|
IFNB <BYTE>
|
|
SUB ADDR,BYTE,ADDR
|
|
ELSE
|
|
SUB ,ADDR,ADDR
|
|
ENDIF
|
|
BCS LABEL
|
|
DEC ADDR+1
|
|
LABEL:
|
|
ENDM
|
|
|
|
DINC MACRO ADDR
|
|
LOCAL LABEL
|
|
INC ADDR
|
|
BNE LABEL
|
|
INC ADDR+1
|
|
LABEL:
|
|
ENDM
|
|
|
|
DDEC MACRO ADDR
|
|
DSUBB2 ADDR,<#$01>,ADDR
|
|
ENDM
|
|
|
|
DDEC2 MACRO ADDR
|
|
DSUBB2 ADDR,<#$02>,ADDR
|
|
ENDM
|
|
|
|
DMOV MACRO ADR1,ADR2
|
|
LDA ADR1
|
|
IRP ADR,<ADR2>
|
|
STA ADR
|
|
ENDM
|
|
LDA ADR1+1
|
|
IRP ADR,<ADR2>
|
|
STA ADR+1
|
|
ENDM
|
|
ENDM
|
|
|
|
DMOVI MACRO DATA,ADR2
|
|
LDA #<(DATA)
|
|
IRP ADR,<ADR2>
|
|
STA ADR
|
|
ENDM
|
|
LDA #>(DATA)
|
|
IRP ADR,<ADR2>
|
|
STA ADR+1
|
|
ENDM
|
|
ENDM
|
|
|
|
DMOVI2 MACRO DATA,ADR2
|
|
LDA #>(DATA)
|
|
IRP ADR,<ADR2>
|
|
STA ADR+1
|
|
ENDM
|
|
LDA #<(DATA)
|
|
IRP ADR,<ADR2>
|
|
STA ADR
|
|
ENDM
|
|
ENDM
|
|
|
|
PUL MACRO ADR1
|
|
IRP ADR,<ADR1>
|
|
PLA
|
|
STA ADR
|
|
ENDM
|
|
ENDM
|
|
|
|
PSH MACRO ADR1
|
|
IRP ADR,<ADR1>
|
|
LDA ADR
|
|
PHA
|
|
ENDM
|
|
ENDM
|
|
|
|
DPUL MACRO ADR
|
|
PUL ADR+1
|
|
PUL ADR
|
|
ENDM
|
|
|
|
DPUL2 MACRO ADR
|
|
PUL ADR
|
|
PUL ADR+1
|
|
ENDM
|
|
|
|
DPSH MACRO ADR
|
|
PSH ADR
|
|
PSH ADR+1
|
|
ENDM
|
|
|
|
MOV MACRO ADR1,ADR2
|
|
LDA ADR1
|
|
IRP ADR,<ADR2>
|
|
STA ADR
|
|
ENDM
|
|
ENDM
|
|
|
|
INCA MACRO
|
|
ADD ,<#$01>
|
|
ENDM
|
|
|
|
DECA MACRO
|
|
SUB ,<#$01>
|
|
ENDM
|
|
|
|
TSTA MACRO
|
|
ORA #$00
|
|
ENDM
|
|
|
|
STR MACRO TEXT
|
|
DB TEXT
|
|
ENDM
|
|
|
|
JEQ MACRO ADR
|
|
LOCAL LABEL
|
|
BNE LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JNE MACRO ADR
|
|
LOCAL LABEL
|
|
BEQ LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JCC MACRO ADR
|
|
LOCAL LABEL
|
|
BCS LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JCS MACRO ADR
|
|
LOCAL LABEL
|
|
BCC LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JLT MACRO ADR
|
|
LOCAL LABEL
|
|
BGE LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JGE MACRO ADR
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JGT MACRO ADR
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
BCC LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JPL MACRO ADR
|
|
LOCAL LABEL
|
|
BMI LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JMI MACRO ADR
|
|
LOCAL LABEL
|
|
BPL LABEL
|
|
JMP ADR
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSREQ MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BNE LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRNE MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BEQ LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRCC MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BCS LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRCS MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BCC LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRLT MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BGE LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRGE MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRGT MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
BEQ LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRPL MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BMI LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
JSRMI MACRO ADR,ADR2
|
|
LOCAL LABEL
|
|
BPL LABEL
|
|
JSR ADR
|
|
IFNB <ADR2>
|
|
JMP ADR2
|
|
ENDIF
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSEQ MACRO ADR
|
|
LOCAL LABEL
|
|
BNE LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSNE MACRO ADR
|
|
LOCAL LABEL
|
|
BEQ LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSCC MACRO ADR
|
|
LOCAL LABEL
|
|
BCS LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSCS MACRO ADR
|
|
LOCAL LABEL
|
|
BCC LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSLT MACRO ADR
|
|
LOCAL LABEL
|
|
BGE LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSGE MACRO ADR
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSGT MACRO ADR
|
|
LOCAL LABEL
|
|
BLT LABEL
|
|
BEQ LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSPL MACRO ADR
|
|
LOCAL LABEL
|
|
BMI LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
RTSMI MACRO ADR
|
|
LOCAL LABEL
|
|
BPL LABEL
|
|
RTS
|
|
LABEL:
|
|
ENDM
|
|
|
|
DTST MACRO ADDR
|
|
LDA ADDR+1
|
|
ORA ADDR
|
|
ENDM
|
|
|
|
DTSTBE MACRO ADR1,ADR2
|
|
DTST ADR1
|
|
BEQ ADR2
|
|
ENDM
|
|
|
|
DTSTBN MACRO ADR1,ADR2
|
|
DTST ADR1
|
|
BNE ADR2
|
|
ENDM
|
|
|
|
DTSTJE MACRO ADR1,ADR2
|
|
DTST ADR1
|
|
JEQ ADR2
|
|
ENDM
|
|
|
|
DTSTJN MACRO ADR1,ADR2
|
|
DTST ADR1
|
|
JNE ADR2
|
|
ENDM
|
|
|
|
DTSTRE MACRO ADR1
|
|
DTST ADR1
|
|
RTSEQ
|
|
ENDM
|
|
|
|
DTSTRN MACRO ADR1
|
|
DTST ADR1
|
|
RTSNE
|
|
ENDM
|
|
|
|
DTST2 MACRO ADDR
|
|
LDA ADDR
|
|
ORA ADDR+1
|
|
ENDM
|
|
|
|
DTS2BE MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
BEQ ADR2
|
|
ENDM
|
|
|
|
DTS2BN MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
BNE ADR2
|
|
ENDM
|
|
|
|
DTS2JE MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
JEQ ADR2
|
|
ENDM
|
|
|
|
DTS2JN MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
JNE ADR2
|
|
ENDM
|
|
|
|
DTS2RE MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
RTSEQ ADR2
|
|
ENDM
|
|
|
|
DTS2RN MACRO ADR1,ADR2
|
|
DTST2 ADR1
|
|
RTSNE ADR2
|
|
ENDM
|
|
|
|
DXBNE MACRO ADR
|
|
DEX
|
|
BNE ADR
|
|
ENDM
|
|
|
|
DYBNE MACRO ADR
|
|
DEY
|
|
BNE ADR
|
|
ENDM
|
|
|
|
DXBEQ MACRO ADR
|
|
DEX
|
|
BEQ ADR
|
|
ENDM
|
|
|
|
DYBEQ MACRO ADR
|
|
DEY
|
|
BEQ ADR
|
|
ENDM
|
|
|
|
DXBPL MACRO ADR
|
|
DEX
|
|
BPL ADR
|
|
ENDM
|
|
|
|
DYBPL MACRO ADR
|
|
DEY
|
|
BPL ADR
|
|
ENDM
|
|
|
|
DXBMI MACRO ADR
|
|
DEX
|
|
BMI ADR
|
|
ENDM
|
|
|
|
DYBMI MACRO ADR
|
|
DEY
|
|
BMI ADR
|
|
ENDM
|
|
|
|
IXBNE MACRO ADR
|
|
INX
|
|
BNE ADR
|
|
ENDM
|
|
|
|
IYBNE MACRO ADR
|
|
INY
|
|
BNE ADR
|
|
ENDM
|
|
|
|
DECBE MACRO ADR1,ADR2
|
|
DEC ADR1
|
|
BEQ ADR2
|
|
ENDM
|
|
|
|
DECBN MACRO ADR1,ADR2
|
|
DEC ADR1
|
|
BNE ADR2
|
|
ENDM
|
|
|
|
DECJE MACRO ADR1,ADR2
|
|
DEC ADR1
|
|
JEQ ADR2
|
|
ENDM
|
|
|
|
DECJN MACRO ADR1,ADR2
|
|
DEC ADR1
|
|
JNE ADR2
|
|
ENDM
|
|
|
|
DECABE MACRO ADR1
|
|
DECA
|
|
BEQ ADR1
|
|
ENDM
|
|
|
|
DECABN MACRO ADR1
|
|
DECA
|
|
BNE ADR1
|
|
ENDM
|
|
|
|
DECABP MACRO ADR1
|
|
DECA
|
|
BPL ADR1
|
|
ENDM
|
|
|
|
DECABM MACRO ADR1
|
|
DECA
|
|
BMI ADR1
|
|
ENDM
|
|
|
|
TSTABE MACRO ADR1
|
|
TSTA
|
|
BEQ ADR1
|
|
ENDM
|
|
|
|
TSTABN MACRO ADR1
|
|
TSTA
|
|
BNE ADR1
|
|
ENDM
|
|
|
|
TSTABP MACRO ADR1
|
|
TSTA
|
|
BPL ADR1
|
|
ENDM
|
|
|
|
TSTABM MACRO ADR1
|
|
TSTA
|
|
BMI ADR1
|
|
ENDM
|
|
|
|
TSTAJE MACRO ADR1
|
|
TSTA
|
|
JEQ ADR1
|
|
ENDM
|
|
|
|
TSTARP MACRO
|
|
TSTA
|
|
RTSPL
|
|
ENDM
|
|
|
|
CMPBE MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BEQ ADR2
|
|
ENDM
|
|
|
|
CMPBN MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BNE ADR2
|
|
ENDM
|
|
|
|
CMPBL MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BLT ADR2
|
|
ENDM
|
|
|
|
CMPBG MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BGE ADR2
|
|
ENDM
|
|
|
|
CMPBM MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BMI ADR2
|
|
ENDM
|
|
|
|
CMPBP MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
BPL ADR2
|
|
ENDM
|
|
|
|
CMPJE MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
JEQ ADR2
|
|
ENDM
|
|
|
|
CMPJL MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
JLT ADR2
|
|
ENDM
|
|
|
|
CMPJSE MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
JSREQ ADR2
|
|
ENDM
|
|
|
|
CMPJSN MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
JSRNE ADR2
|
|
ENDM
|
|
|
|
CMPJSG MACRO ADR1,ADR2
|
|
CMP ADR1
|
|
JSRGE ADR2
|
|
ENDM
|
|
|
|
CMPRE MACRO ADR1
|
|
CMP ADR1
|
|
RTSEQ
|
|
ENDM
|
|
|
|
CPXBE MACRO ADR1,ADR2
|
|
CPX ADR1
|
|
BEQ ADR2
|
|
ENDM
|
|
|
|
CPXBG MACRO ADR1,ADR2
|
|
CPX ADR1
|
|
BGE ADR2
|
|
ENDM
|
|
|
|
CPXRGT MACRO ADR1
|
|
CPX ADR1
|
|
RTSGT
|
|
ENDM
|
|
|
|
CPYBN MACRO ADR1,ADR2
|
|
CPY ADR1
|
|
BNE ADR2
|
|
ENDM
|
|
|
|
|