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

.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