; ; Z80 ASSEMBLER TEST INSTRUCTION FILE ; ORG 100H ;TEST ORG PSEUDO OP LABEL1 EQU $ ;TEST EQU PSEUDO OP DEFW LABEL1 ;TEST DEFW PSEUDO OP DEFB 03FH ;TEST DEFB PSEUDO OP FORM 1 DEFB 'THIS IS A TEST' ;TEST DEFB PSEUDO OP FORM 2 DEFS 55 ;TEST DEFS PSEUDO OP ; ; THE HEX NUMBERS MUST BE IN PAIRS AND MUST NOT HAVE 'H' AFTER THEM ; THE ASCII STRINGS CAN INCLUDE ANY CHARACTERS (INCLUDING QUOTES AND ; SEMI-COLONS EXCEPT NO COMMAS ; IBM 'ASCII FIRST,0DFF,THEN HEX ; LD A,B ;TEST LOAD LD A,0FFH LD A,(HL) LD A,(IX+5) LD A,(IY+6) LD B,C ;TEST LOAD LD B,0FFH LD B,(HL) LD B,(IX+5) LD B,(IY+6) LD (HL),B LD (HL),(HL) LD (IX+5),B LD (IY+5),B LD (HL),23 LD (IX+1),24 LD (IY+1),25 LD (BC),A LD (DE),A LD (LABEL1),A LD A,(BC) LD A,(DE) LD A,(LABEL1) LD A,I LD A,R LD I,A LD R,A LD BC,LABEL1 LD DE,LABEL1 LD HL,LABEL1 LD SP,LABEL1 LD IX,LABEL1 LD IY,LABEL1 LD BC,(LABEL1) LD DE,(LABEL1) LD HL,(LABEL1) LD IX,(LABEL1) LD IY,(LABEL1) LD (LABEL1),HL LD (LABEL1),BC LD (LABEL1),DE LD (LABEL1),IX LD (LABEL1),IY LD SP,HL LD SP,IX LD SP,IY PUSH BC PUSH DE PUSH HL PUSH AF PUSH IX PUSH IY POP BC POP DE POP HL POP IX POP IY POP AF EX DE,HL EX AF,AF' EXX EX (SP),HL EX (SP),IX EX (SP),IY LDI LDIR LDD LDDR CPI CPIR CPD CPDR ADD A ADD 0FFH ADD (HL) ADD (IX+5) ADD (IY+6) ADC A ADC 0FFH ADC (HL) ADC (IX+5) ADC (IY+5) SUB A SUB 0FFH SUB (HL) SUB (IX+5) SUB (IY+5) SBC A AND A AND 0FFH AND (HL) AND (IX+5) AND (IY+5) OR A XOR A CP A ADD A,A ADD A,0FFH ADD A,(HL) ADD A,(IX+5) ADD A,(IY+6) ADC A,A ADC A,0FFH ADC A,(HL) ADC A,(IX+5) ADC A,(IY+5) SUB A,A SUB A,0FFH SUB A,(HL) SUB A,(IX+5) SUB A,(IY+5) SBC A,A AND A,A AND A,0FFH AND A,(HL) AND A,(IX+5) AND A,(IY+5) OR A,A XOR A,A CP A,A INC A INC (HL) INC (IX+3) INC (IY+5) DEC (HL) ADD HL,BC ADC HL,DE SBC HL,DE ADD IX,BC ADD IY,DE INC BC INC DE INC HL INC SP INC IX INC IY DEC BC DEC DE DEC HL DEC SP DEC IX DEC IY RLCA RLA RRCA RRA RLC B RLC (HL) RLC (IX+5) RLC (IY+4) RL B RRC B RR B SLA B SRA B SRL B RLD RRD DAA CPL NEG CCF SCF NOP HALT DI EI IM0 IM1 IM2 IM 0 BIT 5,E BIT 5,(HL) BIT 5,(IX+5) BIT 5,(IY+4) SET 4,B SET 4,(HL) SET 4,(IX+5) SET 4,(IY+4) RES 4,E RES 4,(HL) JP LABEL1 JP NZ,LABEL1 JP Z,LABEL1 JP NC,LABEL1 JP C,LABEL1 JP PO,LABEL1 JP PE,LABEL1 JP P,LABEL1 JP M,LABEL1 JR +6 JR C,5 JR NC,5 JR Z,5 JR NZ,5 JP (HL) JP (IX) JP (IY) DJNZ 5 CALL LABEL1 CALL NZ,LABEL1 CALL Z,LABEL1 CALL PO,LABEL1 CALL PE,LABEL1 RET RET NZ RET Z RET PO RETI RETN RST 38H IN A,(03H) IN B,(C) INI INIR IND INDR OUT (034H),A OUT (C),E OUTI OTIR OUTD OTDR END $ ; ; z80 assembler test instruction file ; ORG 100H ;test org pseudo op LABEL1 EQU $ ;test equ pseudo op DEFW LABEL1 ;test defw pseudo op DEFB 03FH ;test defb pseudo op form 1 DEFB 'THIS IS A TEST' ;test defb pseudo op form 2 DEFS 55 ;test defs pseudo op ; IBM 1A0000,TOP OF SCREEN ON LEAR SEIGLER ADM3,0D0A0D0A,DOWN 3 LINES ; LD A,B ;test load LD A,0FFH LD A,(HL) LD A,(IX+5) LD A,(IY+6) LD B,C ;test load LD B,0FFH LD B,(HL) LD B,(IX+5) LD B,(IY+6) LD (HL),B LD (HL),(HL) LD (IX+5),B LD (IY+5),B LD (HL),23 LD (IX+1),24 LD (IY+1),25 LD (BC),A LD (DE),A LD (LABEL1),A LD A,(BC) LD A,(DE) LD A,(LABEL1) LD A,I LD A,R LD I,A LD R,A LD BC,LABEL1 LD DE,LABEL1 LD HL,LABEL1 LD SP,LABEL1 LD IX,LABEL1 LD IY,LABEL1 LD BC,(LABEL1) LD DE,(LABEL1) LD HL,(LABEL1) LD IX,(LABEL1) LD IY,(LABEL1) LD (LABEL1),HL LD (LABEL1),BC LD (LABEL1),DE LD (LABEL1),IX LD (LABEL1),IY LD SP,HL LD SP,IX LD SP,IY PUSH BC PUSH DE PUSH HL PUSH AF PUSH IX PUSH IY POP BC POP DE POP HL POP IX POP IY POP AF EX DE,HL EX AF,AF' EXX EX (SP),HL EX (SP),IX EX (SP),IY LDI LDIR LDD LDDR CPI CPIR CPD CPDR ADD A ADD 0FFH ADD (HL) ADD (IX+5) ADD (IY+6) ADC A ADC 0FFH ADC (HL) ADC (IX+5) ADC (IY+5) SUB A SUB 0FFH SUB (HL) SUB (IX+5) SUB (IY+5) SBC A AND A AND 0FFH AND (HL) AND (IX+5) AND (IY+5) OR A XOR A CP A ADD A,A ADD A,0FFH ADD A,(HL) ADD A,(IX+5) ADD A,(IY+6) ADC A,A ADC A,0FFH ADC A,(HL) ADC A,(IX+5) ADC A,(IY+5) SUB A,A SUB A,0FFH SUB A,(HL) SUB A,(IX+5) SUB A,(IY+5) SBC A,A AND A,A AND A,0FFH AND A,(HL) AND A,(IX+5) AND A,(IY+5) OR A,A XOR A,A CP A,A INC A INC (HL) INC (IX+3) INC (IY+5) DEC (HL) ADD HL,BC ADC HL,DE SBC HL,DE ADD IX,BC ADD IY,DE INC BC INC DE INC HL INC SP INC IX INC IY DEC BC DEC DE DEC HL DEC SP DEC IX DEC IY RLCA RLA RRCA RRA RLC B RLC (HL) RLC (IX+5) RLC (IY+4) RL B RRC B RR B SLA B SRA B SRL B RLD RRD DAA CPL NEG CCF SCF NOP HALT DI EI IM0 IM1 IM2 IM 0 BIT 5,E BIT 5,(HL) BIT 5,(IX+5) BIT 5,(IY+4) SET 4,B SET 4,(HL) SET 4,(IX+5) SET 4,(IY+4) RES 4,E RES 4,(HL) JP LABEL1 JP NZ,LABEL1 JP Z,LABEL1 JP NC,LABEL1 JP C,LABEL1 JP PO,LABEL1 JP PE,LABEL1 JP P,LABEL1 JP M,LABEL1 JR +6 JR C,5 JR NC,5 JR Z,5 JR NZ,5 JP (HL) JP (IX) JP (IY) DJNZ 5 CALL LABEL1 CALL NZ,LABEL1 CALL Z,LABEL1 CALL PO,LABEL1 CALL PE,LABEL1 RET RET NZ RET Z RET PO RETI RETN RST 38H IN A,(03H) IN B,(C) INI INIR IND INDR OUT (034H),A OUT (C),E OUTI OTIR OUTD OTDR MULT:; UNSIGNED SIXTEEN BIT INTEGER MULTIPLY. ; ON ENTRANCE: MULTIPLIER IN DE. ; MULTIPLICAND IN HL. ; ; ON EXIT: RESULT IN HL. ; ; REGISTER USES: ; ; ; H HIGH ORDER PARTIAL RESULT ; L LOW ORDER PARTIAL RESULT ; D HIGH ORDER MULTIPLICAND ; E LOW ORDER MULTIPLICAND ; B COUNTER FOR NUMBER OF SHIFTS ; C HIGH ORDER BITS OF MULTIPLIER ; A LOW ORDER BITS OF MULTIPLIER ; LD B,16; NUMBER OF BITS- INITIALIZE LD C,D; MOVE MULTIPLIER LD A,E; LD X,Y ;SHOULD GET 'U' ERROR LOAD A,B ;SHOULD GET 'O' ERROR CP 'A' ;TEST 'X' FORMAT EX DE,HL; MOVE MULTIPLICAND LD HL,0; CLEAR PARTIAL RESULT EJECT ;TEST EJECT PROCESSING MLOOP: SRL C; SHIFT MULTIPLIER RIGHT RRA; LEAST SIGNIFICANT BIT IS IN CARRY JR NC,NOADD-$; IF NO CARRY SKIP THE ADD ADD HL,DE; ELSE ADD MULTIPLICAND TO PARTIAL RESULT NOADD: EX DE,HL; SHIFT MULTIPLICAND LEFT ADD HL,HL; BY MULTIPLYING IT BY TWO EX DE,HL; DJNZ MLOOP-$; REPEAT UNTIL NO MORE BITS RET; END; ; ; LABEL1: LD (LABEL1),A ; COMMENT LD (LABEL1),A ; comment LD (LABEL1),A ; comment ; LD (HL),B ;comment LD A,B ;comment LD (HL),0 ; COMMENT ; IN A,LABEL1 IN A,03H ; JP PO,LABEL1 JP PO,LABEL1 JP PO,LABLE1 ; ADD A,A ADD A,B ADD A,B ; OR A,B OR A,B ; ELSE ENDIF ; LD (LABEL1),HL ; COMMENT LD (LABEL1),HL ; comment LD (LABEL1),HL ; comment ; ;******************************************************* ;******************************************************* ; FILE: EX (SP),HL ; comment 25 EX DE,HL ; comment 25 ; comment 25 LONGNAME ; comment 33 LONGNAME: ; comment 41 LONGNAME:: XOR A ; comment 25 LONGNAME::SCF ; comment 25 LONGNAME:: SCF LONGNAME: SCF LONGNAME:SCF ; ELAB:: LD HL,(NNNNNNNNNNNNN); comment 35 LONGNAME:SCF LONGNAME: SCF SHORT1::SCF ;comment SHORT: ; comment 9 SHORT: ; comment 9 ; comment 9 LABEL: SCF!SCF! SCF ; comment 25 LABEL: SCF ! SCF !SCF ; comment 25 DAA ; comment 17 END ; comment 17 END $