home *** CD-ROM | disk | FTP | other *** search
- ;
- ; EXTENDED OPCODE LIBRARY
- ;
- ;
- ;REGISTER INDEXED ADDRESS
- RXAD MACRO REGPR,BSADD ;(HL)<-REGPR+BSADD
- LXI H,BSADD
- DAD REGPR
- ENDM
- ;
- ;REGISTER INDEXED LOAD
- RXLD MACRO REG,REGPR,BSADD ;REG<-(REGPR+BSADD)
- RXAD REGPR,BSADD
- MOV REG,M
- ENDM
- ;
- ;REGISTER INDEXED STORE
- RXST MACRO REG,REGPR,BSADD ;(REGPR+BSADD)<-REG
- RXAD REGPR,BSADD
- MOV M,REG
- ENDM
- ;
- ;REGISTER DIRECT LOAD
- RDLD MACRO REG,ADDR ;REG<-(ADDR)
- LXI H,ADDR
- MOV REG,M
- ENDM
- ;
- ;REGISTER DIRECT STORE
- RDST MACRO REG,ADDR
- LXI H,ADDR
- MOV M,REG
- ENDM
- ;
- ;REGISTER INDIRECT LOAD
- LIND MACRO REG,ADDR ;REG<-((ADDR))
- LHLD ADDR
- MOV REG,M
- ENDM
- ;
- ;REGISTER STORE INDIRECT
- SIND MACRO REG,ADDR ;((ADDR))<-REG
- LHLD ADDR
- MOV M,REG
- ENDM
- ;
- ;ADD TO ACCUMULATOR INDIRECT
- ADDI MACRO ADDR ;A<-A+((ADDR))
- LHLD ADDR
- ADD M
- ENDM
- ;
- ;SUBTRACT FROM ACCUMULATOR INDIRECT
- SUBI MACRO ADDR ;A<-A-((ADDR))
- LHLD ADDR
- SUB M
- ENDM
- ;
- ;IF REG NOT 0, THEN JUMP TO LABEL
- JNZR MACRO REG,LABEL
- XRA A
- CMP REG
- JNZ LABEL
- ENDM
- ;
- ;IF REG 0, THEN JUMP TO LABEL
- JZR MACRO REG,LABEL
- CMP REG
- JZ LABEL
- ENDM
- ;
- ;(DE) STORED AT ADDRESS IN (HL)
- STDM MACRO
- MOV M,E
- INX H
- MOV M,D
- ENDM
- ;
- ;SAVE ALL REGISTERS
- SAVE MACRO
- PUSH PSW
- PUSH B
- PUSH D
- PUSH H
- ENDM
- ;
- ;RESTORE ALL REGISTERS
- UNSAVE MACRO
- POP H
- POP D
- POP B
- POP PSW
- ENDM
- ;
- ;MOVE 'C' BYTES FROM (HL) TO (DE)
- MOVE MACRO FROM,TO,NBYTES
- LOCAL MO1
- MVI C,NBYTES
- LXI H,FROM
- LXI D,TO
- MO1: MOV A,M
- STAX D
- INX H
- INX D
- DCR C
- JNZ MO1
- ENDM
- ;
- ;FILL REGION FROM (HL) TO (DE) WITH CHAR
- FILL MACRO FROM,TO,CHAR
- LOCAL FI1
- LXI H,FROM
- LXI D,TO
- FI1: MVI A,CHAR
- MOV M,A
- INX H
- MOV A,L
- CMP E
- JNZ FI1
- MOV A,H
- CMP D
- JNZ FI1
- ENDM
- ;
- ;SHIFT ACCUMULATOR 1 BIT TO RIGHT
- SHRT MACRO
- RRC
- ANI 7FH
- ENDM
- ;
- ;SHIFT ACCUMULATOR 1 BIT TO LEFT
- SHLT MACRO
- RLC
- ANI 0FEH
- ENDM
- ;
- ;SHIFT ACCUMULATOR RIGHT AMT BITS INDEXED IN REG
- SHRV MACRO REG,AMT
- LOCAL SH1
- MVI REG,AMT
- SH1: RRC
- ANI 7FH
- DCR REG
- JNZ SH1
- ENDM
- ;
- ;SHIFT ACCUMULATOR LEFT AMT BITS INDEXED IN REG
- SHLV MACRO REG,AMT
- LOCAL SH1
- MVI REG,AMT
- SH1: RLC
- ANI 0FEH
- DCR REG
- JNZ SH1
- ENDM
- ;
-