mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
363 lines
4.5 KiB
363 lines
4.5 KiB
.XLIST
|
|
.COMMENT |
|
|
INITIAL WRITING 12/10/84 SLR
|
|
|
|
PURPOSE:
|
|
TO SUPPORT INTEL MNEMONICS
|
|
(SOME ZILOG MNEMONICS WILL NO LONGER WORK)
|
|
|
|
MACROS COMPRESSED TO REQUIRE MINIMUM STORAGE IN MACRO TABLE
|
|
|
|
(I TESTED THESE ON A SIMPLE TEST FILE I KEYED IN. I DON'T HAVE
|
|
ANY INTEL MNEMONIC STUFF AROUND HERE FOR A REAL GOOD TEST, SO
|
|
UNTIL I START GETTING FEEDBACK, BE CAREFUL!)
|
|
|
|
IF YOU ARE REALLY SERIOUS ABOUT THIS, LET ME KNOW. THE Z80.LIB
|
|
FILE CAN BE MODIFIED TO WORK ALSO.
|
|
|
|
TO ALLOW FOR BIGGER EXPRESSIONS, REPLACE 'G J K N'
|
|
WITH 'G J K N O Q S T'
|
|
|
|
HAVE FUN!
|
|
STEVE
|
|
|
|
********************** W A R N I N G ********************************
|
|
|
|
THESE MACROS DO NOT HANDLE OPERANDS CONTAINING THE '$' PC COUNTER
|
|
IF YOU HAVE CODE THAT USES THE $ LOCATION IN A JUMP ADDRESS
|
|
CALCULATION, YOU NEED TO INSERT THE FOLLOWING CODE IN EACH JUMP
|
|
MACRO:
|
|
1. BEFORE THE DW PUT A .PHASE $-1
|
|
2. AFTER THE DW PUT A .DEPHASE
|
|
|
|
THAT IS TO MAKE UP FOR THE FACT THAT THE $ COUNTER WILL BE POINTING
|
|
TO THE DW RATHER THAN THE PRECEDING DB. ONCE THESE MACROS ARE MODIFIED
|
|
YOU CAN NO LONGER USE THE .PHASE AND .DEPHASE PSEUDO-OPS IN YOUR
|
|
CODE...
|
|
|
|
|
|
|
|
|
MOV MACRO X,Y
|
|
IFIDN <Y>,<M>
|
|
LD X,(HL)
|
|
EXITM
|
|
ENDIF
|
|
IFIDN <X>,<M>
|
|
LD (HL),Y
|
|
EXITM
|
|
ENDIF
|
|
IFIDN <Y>,<m>
|
|
LD X,(HL)
|
|
EXITM
|
|
ENDIF
|
|
IFIDN <X>,<m>
|
|
LD (HL),Y
|
|
EXITM
|
|
ENDIF
|
|
LD X,Y
|
|
ENDM
|
|
HLT MACRO
|
|
HALT
|
|
ENDM
|
|
MVI MACRO R,G J K N
|
|
IFDIF <R>,<M>
|
|
IFDIF <R>,<m>
|
|
LD R,G J K N
|
|
EXITM
|
|
ENDIF
|
|
ELSE
|
|
LD (HL),G J K N
|
|
ENDM
|
|
INR MACRO R
|
|
IFDIF <R>,<M>
|
|
IFDIF <R>,<m>
|
|
INC R
|
|
EXITM
|
|
ENDIF
|
|
ELSE
|
|
INC (HL)
|
|
ENDM
|
|
DCR MACRO R
|
|
IFDIF <R>,<M>
|
|
IFDIF <R>,<m>
|
|
DEC R
|
|
EXITM
|
|
ENDIF
|
|
ELSE
|
|
DEC (HL)
|
|
ENDM
|
|
ADD MACRO R
|
|
.? 80H,R
|
|
ENDM
|
|
.? MACRO R,Y
|
|
. DEFL 0
|
|
IRPC X,<BCDEHLMA>
|
|
IFIDN <Y>,<X>
|
|
DB R+.
|
|
EXITM
|
|
ELSE
|
|
. DEFL .+1
|
|
ENDM
|
|
. DEFL 0
|
|
IRPC X,<bcdehlma>
|
|
IFIDN <Y>,<X>
|
|
DB R+.
|
|
EXITM
|
|
ELSE
|
|
. DEFL .+1
|
|
ENDM
|
|
ENDM
|
|
ADC MACRO R
|
|
.? 88H,R
|
|
ENDM
|
|
SUB MACRO R
|
|
.? 90H,R
|
|
ENDM
|
|
SBB MACRO R
|
|
.? 98H,R
|
|
ENDM
|
|
ANA MACRO R
|
|
.? 0A0H,R
|
|
ENDM
|
|
XRA MACRO R
|
|
.? 0A8H,R
|
|
ENDM
|
|
ORA MACRO R
|
|
.? 0B0H,R
|
|
ENDM
|
|
CMP MACRO R
|
|
.? 0B8H,R
|
|
ENDM
|
|
ADI MACRO G J K N
|
|
DB 0C6H,G J K N
|
|
ENDM
|
|
ACI MACRO G J K N
|
|
DB 0CEH,G J K N
|
|
ENDM
|
|
SUI MACRO G J K N
|
|
DB 0D6H,G J K N
|
|
ENDM
|
|
SBI MACRO G J K N
|
|
DB 0DEH,G J K N
|
|
ENDM
|
|
ANI MACRO G J K N
|
|
DB 0E6H,G J K N
|
|
ENDM
|
|
XRI MACRO G J K N
|
|
DB 0EEH,G J K N
|
|
ENDM
|
|
ORI MACRO G J K N
|
|
DB 0F6H,G J K N
|
|
ENDM
|
|
CPI MACRO G J K N
|
|
DB 0FEH,G J K N
|
|
ENDM
|
|
RLC MACRO
|
|
RLCA
|
|
ENDM
|
|
RRC MACRO
|
|
RRCA
|
|
ENDM
|
|
RAL MACRO
|
|
RLA
|
|
ENDM
|
|
RAR MACRO
|
|
RRA
|
|
ENDM
|
|
JMP MACRO G J K N
|
|
DB 0C3H
|
|
DW G J K N
|
|
ENDM
|
|
JC MACRO G J K N
|
|
DB 0DAH
|
|
DW G J K N
|
|
ENDM
|
|
JNC MACRO G J K N
|
|
DB 0D2H
|
|
DW G J K N
|
|
ENDM
|
|
JZ MACRO G J K N
|
|
DB 0CAH
|
|
DW G J K N
|
|
ENDM
|
|
JNZ MACRO G J K N
|
|
DB 0C2H
|
|
DW G J K N
|
|
ENDM
|
|
JP MACRO G J K N
|
|
DB 0F2H
|
|
DW G J K N
|
|
ENDM
|
|
JM MACRO G J K N
|
|
DB 0FAH
|
|
DW G J K N
|
|
ENDM
|
|
JPE MACRO G J K N
|
|
DB 0EAH
|
|
DW G J K N
|
|
ENDM
|
|
JPO MACRO G J K N
|
|
DB 0E2H
|
|
DW G J K N
|
|
ENDM
|
|
CC MACRO G J K N
|
|
CALL C,G J K N
|
|
ENDM
|
|
CNC MACRO G J K N
|
|
CALL NC,G J K N
|
|
ENDM
|
|
CZ MACRO G J K N
|
|
CALL Z,G J K N
|
|
ENDM
|
|
CNZ MACRO G J K N
|
|
CALL NZ,G J K N
|
|
ENDM
|
|
CP MACRO G J K N
|
|
CALL P,G J K N
|
|
ENDM
|
|
CM MACRO G J K N
|
|
CALL M,G J K N
|
|
ENDM
|
|
CPE MACRO G J K N
|
|
CALL V,G J K N
|
|
ENDM
|
|
CPO MACRO G J K N
|
|
CALL PO,G J K N
|
|
ENDM
|
|
RC MACRO
|
|
RET C
|
|
ENDM
|
|
RNC MACRO
|
|
RET NC
|
|
ENDM
|
|
RZ MACRO
|
|
RET Z
|
|
ENDM
|
|
RNZ MACRO
|
|
RET NZ
|
|
ENDM
|
|
RP MACRO
|
|
RET P
|
|
ENDM
|
|
RM MACRO
|
|
RET M
|
|
ENDM
|
|
RPE MACRO
|
|
RET V
|
|
ENDM
|
|
RPO MACRO
|
|
RET PO
|
|
ENDM
|
|
RST MACRO G J K N
|
|
DB 0C7H+(G J K N)*8
|
|
ENDM
|
|
IN MACRO G J K N
|
|
DB 0DBH,G J K N
|
|
ENDM
|
|
OUT MACRO G J K N
|
|
DB 0D3H,G J K N
|
|
ENDM
|
|
LXI MACRO R,G J K N
|
|
.. 1,R
|
|
DW G J K N
|
|
ENDM
|
|
PUSH MACRO R
|
|
.. C5,R
|
|
ENDM
|
|
POP MACRO R
|
|
.. C1,R
|
|
ENDM
|
|
STA MACRO G J K N
|
|
DB 32H
|
|
DW G J K N
|
|
ENDM
|
|
LDA MACRO G J K N
|
|
DB 3AH
|
|
DW G J K N
|
|
ENDM
|
|
XCHG MACRO
|
|
DB 0EBH
|
|
ENDM
|
|
XTHL MACRO
|
|
DB 0E3H
|
|
ENDM
|
|
SPHL MACRO
|
|
DB 0F9H
|
|
ENDM
|
|
PCHL MACRO
|
|
DB 0E9H
|
|
ENDM
|
|
DAD MACRO R
|
|
.. 9,R
|
|
ENDM
|
|
STAX MACRO R
|
|
IFIDN <R>,<D>
|
|
DB 18
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<B>
|
|
DB 2
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<d>
|
|
DB 18
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<b>
|
|
DB 2
|
|
ENDM
|
|
LDAX MACRO R
|
|
IFIDN <R>,<D>
|
|
DB 26
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<B>
|
|
DB 10
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<d>
|
|
DB 26
|
|
EXITM
|
|
ELSE
|
|
IFIDN <R>,<b>
|
|
DB 10
|
|
ENDM
|
|
INX MACRO R
|
|
.. 3,R
|
|
ENDM
|
|
DCX MACRO R
|
|
.. B,R
|
|
ENDM
|
|
CMA MACRO
|
|
CPL
|
|
ENDM
|
|
STC MACRO
|
|
SCF
|
|
ENDM
|
|
CMC MACRO
|
|
CCF
|
|
ENDM
|
|
SHLD MACRO G J K N
|
|
DB 34
|
|
DW G J K N
|
|
ENDM
|
|
LHLD MACRO G J K N
|
|
DB 42
|
|
DW G J K N
|
|
ENDM
|
|
.. MACRO X,Y
|
|
. DEFL 0
|
|
IRP Q,<B,D,H,PSW,SP,b,d,h,psw,sp>
|
|
IFIDN <Q>,<Y>
|
|
EXITM
|
|
ELSE
|
|
. DEFL .+1
|
|
IF . EQ 4
|
|
. DEFL 3
|
|
IFIDN <Q>,<SP>
|
|
. DEFL 0
|
|
ENDM
|
|
DB 0&X&H+(. SHL 4)
|
|
ENDM
|
|
.LIST
|
|
|