Hi all...
I've been trying to get some action from this IMSAI for awhile now. Main
problem is I don't know what is on the EPROMs on the EconoROM board. It
looks like banks A & B, OR banks C & D, can be enabled together starting at
address 0000h. There are 6 2708's in A0 through B1, and 8 2708's in C0
through C3.
I've been looking for an EPROM burner that can read/write 2708's with no
luck so far. We have TWO machines at work, and neither will do it. Anyone
know of a burner that WILL?
I manually read the first 256 bytes of the first chip, and disassembled it,
also manually - I'm looking for a good disassembler program too! I've got
one called DASM V1.2 by John Wilson, but have been having some trouble with
it.
If you've got a few minutes, have a look at what I've included below - the
first 128 bytes of code. Let me know if any of it looks familiar. (Or if I
messed up the job!) The comments are for my own benefit - I'm pretty rusty
with assembler.
Addr. Hex Value Mnemonic Comments
0000 AF XRA A ;Exclusive Or A with A (clears A)
0001 C3 3B 00 JMP 003B ;Jump to 003Bh
0008 C3 EE EF JMP FFEE ;Jump to FFEEh
0010 C3 F1 FF JMP FFF1 ;Jump to FFF1h
0018 C3 F4 FF JMP FFF4 ;Jump to FFF4h
0020 C3 F7 FF JMP FFF7 ;Jump to FFF7h
0028 C3 FA FF JMP FFFA ;Jump to FFFAh
0030 C3 FD FF JMP FFFD ;Jump to FFFDh
0038 C3 D3 09 JMP 09D3 ;Jump to 09D3h
003B D3 F0 OUT F0 ;Send contents of A register to port F0h
003D C3 11 D2 JMP D211 ;Jump to D211h
0040 3B DCX SP ;Decrement stack pointer
0041 00 NOP ;Do nothing
0042 C3 5C 00 JMP 005C ;Jump to 005Ch
0045 21 00 F0 LXI H,00 F0 ;Load register pair H & L with F000h
0048 0E 4E MVI C,4E ;Move 4E to register C
004A AF XRA A ;Clear register A
004B 77 MOV M,A ;Move register A to loc'n given in H & L
004C 23 INX H ;Increment H & L registers
004D 0D DCR D ;Decrement register C
004E C2 4B 00 JNZ 004B ;Jump on no zero to address 004Bh
0051 06 18 MVI B,18 ;Move 18h into register B
0053 21 2A F1 LXI H,F12A ;Load H & L registers with F12Ah
0056 77 MOV M,A ;Move register A to loc'n given in H & L
0057 23 INX H ;Increment H & L registers
0058 05 DCR B ;Decrement register B
0059 C2 53 00 JNZ 0053 ;Jump on no zero to address 0053h
005C 31 9E F0 LXI SP,F09E ;Load stack pointer with F09Eh
005F CD 42 01 CALL 0142 ;Transfer program control to addr 0142h
0062 06 2A MVI B,2A ;Move 2Ah into register B
0064 CD 51 01 CALL 0151 ;Transfer program control to addr 0151h
0067 CD 7A 00 CALL 007A :Transfer program control to addr 007Ah
006A 23 INX H ;Increment H & L registers
006B 7E MOV A,M ;Move value from loc'n in H & L to reg A
006C FE 3A CPI 3A ;Compare A with 3Ah (A - 3Ah)
006E DA 7A 05 JC 057A ;Jump on carry to 057Ah
0071 CD DE 01 CALL 01DE ;Transfer program control to addr 01DEh
0074 CD 94 01 CALL 0194 ;Transfer program control to addr 0194h
0077 C3 5C 00 JMP 005C ;Jump to address 005Ch
007A 21 BC F0 LXI H,F0BC ;Load H & L registers with F0BCh
007D 22 50 F0 SHLD F050 ;Store H & L registers at F050h
Joel A. Weder
jweder(a)telusplanet.net
403-556-4020