Next is the code for the 8085 Test Fixture and a pdf attached with color coding for ease of reading. Three down 2 to go.
I have left out all the general description and referred to the Z80 Code. I have included comments about features specific to the 8085.
I have left out all the general description and referred to the Z80 Code. I have included comments about features specific to the 8085.
Code:
;Fluke 8085 Pod Test Fixture EPROM Code 641421 V1.1
;
;Refer to Z80 Test Fixture EPROM Code for more general information
;
;All control lines are tied inactive through either pullup or pulldown resistors as needed
;
;There is a resistive voltage divider and switch to simulate a powerfail using the fixture.
;
;EPROM is accessed when A11 Low and /RD
;/INTA enables latch tied to 0D7H on the data bus. 0D7H is a Rst 2 instruction, which goes to Address 10H
;Empty EPROM locations are filled with 0FFH, a Rst 7 instruction (Address 38H).
;
;The address lines exercised by each test are as follows:
; A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
;Reset A10, A7 ----- to --------- A0
;Int A12, A9, A6 -- to --------- A0
;Trap A11, A9, A7 ----- to --------- A0
;Rst5.5 A13, A9,A8, A6 -- to --------- A0
;Rst6.5 A14, A9 ------------ to --------- A0
;Rst7.5 A15, A10, A6 -- to --------- A0
.ORG 0000H ;Interrupt vector for Reset routine
Reset0: JMP Reset1
.ORG 0010H ;Interrupt vector for Rst 2 routine
Int0: JMP Int1
.ORG 0024H ;Interrupt vector for Trap routine
Trap0: JMP Trap1
.ORG 002CH ;Interrupt vector for Rst 5.5 routine
Rst550: JMP Rst551
.ORG 0034H ;Interrupt vector for Rst 6.5 routine
Rst650: JMP Rst651
.ORG 003CH ;Interrupt vector for Rst 7.5 routine
Rst750: JMP Rst751
.ORG 00BFH ;Reset, toggle A10 and A7-A0
;Reset routine executed after Pod Resets or RUN UUT start address
;Routine will run through program code and jumps to stay in Reset2 loop after reset, until an interrupt.
Reset1: MVI A,18H ;No Sout, Reset Rst7.5 F/F, Rst Mask Set, Rst7.5&6.5&5.5
SIM ;Set Interrupt Mask
Reset2: EI ;Enable Interrupts
STA 0001H ;Write 0001H to toggle A1. Writes 18H then float value to toggle data lines
LDA 0400H ;Read 400H to toggle A10. Reads floating data bus
JMP Reset2
.ORG 023FH ;Int, toggle A12,A9 and A6-A0
Int1: STA 0002H ;Write 0001H to toggle A1. Writes float value to toggle data lines
LDA 1000H ;Read 1000H to toggle A12. Reads floating data bus
EI ;Enable Interrupts
JMP Int1
.ORG 02BEH ;Trap, toggle A11,A9 and A7-A0
Trap1: STA 0004H ;Write 0004H to toggle A3. Writes float value to toggle data lines
LDA 0800H ;Read 800H to toggle A11. Reads floating data bus
EI ;Enable Interrupts
JMP Trap1
.ORG 033DH ;Rst 5.5, toggle A13,A9,A8 and A6-A0
Rst551: STA 0008H ;Write 0001H to toggle A1. Writes float value to toggle data lines
LDA 2000H ;Read 2000H to toggle A13. Reads floating data bus
EI ;Enable Interrupts
JMP Rst551
.ORG 03BCH ;Rst 6.5, toggle A14 and A9-A0
Rst651: STA 0010H ;Write 0001H to toggle A1. Writes float value to toggle data lines
LDA 4000H ;Read 4000H to toggle A14. Reads floating data bus
EI ;Enable Interrupts
JMP Rst651
.ORG 043FH ;Rst 7.5, toggle A15,A10 and A6-A0, toggle SOD if connected to SID
;Error in code does not execute toggle on A15
Rst751: DI ;Disable interrupts
Rst753: MVI A,48H ;Sout 0,leave Rst7.5 f/f,Mask Enable Rst7.5&6.5&5.5
SIM ;Set Interrupt Mask and serial out bit low
RIM ;Read Interrupt Mask to get serial in bit
ANI 80H ;Keep serial in bit
CPI 00H ;Compare to low bit
JZ Rst752 ;Jump if it is low, to toggle serial bit
JMP Rst753
Rst752: MVI A,0C8H ;Sout 1,Leave Rst7.5 f/f, Mask enable Rst7.5&6.5&5.5
SIM ;Set Interrupt Mask and serial out bit high
RIM ;Read Interrupt Mask to get serial in bit
ANI 80H ;Keep serial in bit
CPI 80H ;Compare to high bit
JZ Rst754 ;Jump if it is high
JMP Rst752
;Rst754: There is an error in the code above, it does not ever get here, Rst754 should be here
STA 0020H ;Write 0001H to toggle A1. Writes last A to toggle data lines
LDA 8000H ;Read 8000H to toggle A15. Reads floating data bus
Rst754: EI ;Enable Interrupts
JMP Rst751
.END




