mirror of
https://github.com/brouhaha/a2zip.git
synced 2024-06-02 11:41:27 +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
|
||
|
||
|