PDA

View Full Version : IMSAI fix pt3



Nama
April 22nd, 2015, 03:37 PM
I’ll call this 'IMSAI fix pt3'.

Pt1 - Getting a Expandoram card working:
http://www.vintage-computer.com/vcforum/showthread.php?46815-ECONORAM-issues-in-IMSAI-advice-needed

Pt2 - While I was waiting for some ‘line delay’ parts for the Expandoram fix, I’d thought I’d pursue setting up the IMSAI as a PT ‘Subsystem B’ system. Still struggling with this, but will probably change direction and now build one of Don Caprio’s 8 slot motherboards as the ‘Subsystem B’ system:
http://www.vintage-computer.com/vcforum/showthread.php?47203-Building-a-(PT)-SUBSYSTEM-B-without-a-GPM-card

So now that I have the Expandoram card working, I thought I’d try setting the IMSAI up in the configuration it came to me in.

Card 1 - IMSAI 8080 CPU
Card 2 - Expandoram card set to 48k
Card 3 - 8k RAM card
Card 4 - MIO card #2
Card 5 - Versafloppy 1 card
Card 6 - ROM card containing 2708 EPROMs. One at F000h (unmarked), the other marked ‘CBIOS’ at F400h. (I’ve dumped the contents of these already). The unmarked EPROM includes reference to 56k V1.4 CP/M, and the CP/M boot screen content.
Card 7 - MIO card #2

Hooked up to a Dual LOBO 8” drives (SHUGART mechanisms). I been cleaning this over the last few evenings, and powered it up for the first time last night. No explosions.
Both MIO cards have cables running from the MIO SIO connectors to female DB25 connectors on the back of the IMSAI. A single external serial cable (hand made) was also included with male DB25 connectors at either end (also tried another known working serial cable too).

I also received a small handful of 8” floppies, some with CP/M written on them!

Last night I tried powering up the entire unit for the first time. I connected the supplied cable from the MIO #1 card to my Mac running a terminal program.
I set the IMSAI switches to execute at F000h, and after a few test trials with blank 8” floppies incase the drive chewed them up, I inserted one floppy labelled CP/M.

On executing the code, the drive dropped the head, and went though a series of head moves, and the front panel flashed with activity. After about 10 seconds the head lifted and all activity stopped…I could almost imagine it actually loading CP/M, unfortunately there was no activity over the serial connection. I repeated the procedure connecting to MIO #2. Still no go. Nothing seems to be sent via the serial MIO cards.

I could be wrong, but I would have expected with this setup to see the CP/M message pop up in my terminal with one of the MIO cards connected. Please correct me if my assumption is incorrect.

These MIO cards have a lot of jumpers and I started to map out how each card has been setup, to better understand the issue, not that I completely understand much of it yet. Complex boards:

__________

MIO #1
9600 baud
Bit rate not set for Cassette

UART Config:
Do not transmit or check parity
Transmit 1.5 stop bits for 5 bit characters, 2 for all others
8 Bits/Character
Generate and check Even Parity

SIO UART TD line to EIA transmitter #1

Receive ready to bit 3
Transmit ready to bit 4

__________

MIO #2
1200 baud
800 bit-rate for Cassette

UART Config:
Do not transmit or check parity
Transmit 1.5 stop bits for 5 bit characters, 2 for all others
8 Bits/Character
Generate and check Even Parity

SIO UART TD line to EIA transmitter #1

Receive ready to bit 3
Transmit ready to bit 4

__________

One thing I have noticed on the MIO #1 card, is that there is no jumper on the ‘External Address jumper’ section. From a quick look at the manual, I believe it needs something here, otherwise no I/O port group is selected. Maybe the jumper has fallen off?
MIO #2 has pins 3 and 14 jumpered to activate Address bit 2.

Finally the MIO manual seems to have a few tests programs that I’ll start to work through, but any thoughts or insights would be most welcome.
My biggest question is in what situations would you use two serial lines? Unfortunately I have no idea what the IMSAI was hooked up to previously.

Cheers

Phil

Nama
April 22nd, 2015, 08:49 PM
For those who are interested, here are the disassembles of the two EPROMs (using an online disassembler for 8080) that are in my machine.
Apologies in advance, as I don't actually know how to program in assembly language.

F000h-F3FFh


f000h: c349f0 jmp label_f049
f003h: c37df0 jmp label_f07d
f006h: c3bdf0 jmp label_f0bd
f009h: c3caf0 jmp label_f0ca
f00ch: c3d5f0 jmp label_f0d5
f00fh: c3c6f0 jmp label_f0c6
f012h: c3ddf0 jmp label_f0dd
f015h: c3d9f0 jmp label_f0d9
f018h: c3e1f0 jmp label_f0e1
f01bh: c3f3f0 jmp label_f0f3
f01eh: c3f8f0 jmp label_f0f8
f021h: c3fdf0 jmp label_f0fd
f024h: c302f1 jmp label_f102
f027h: c308f1 jmp label_f108
f02ah: c317f1 jmp label_f117
f02dh: c3aef2 jmp label_f2ae
f030h: c3bbf2 jmp label_f2bb
f033h: c38af3 jmp label_f38a
f036h: c366f3 jmp label_f366
f039h: c308f3 jmp label_f308
f03ch: c314f3 jmp label_f314
f03fh: 1a ldax d
f040h: 4d mov c, l
f041h: 4c mov c, h
f042h: 11210a lxi d, a21h
f045h: 1e1a mvi e, 1ah
f047h: 23 inx h
f048h: 8e adc m
f049h: label_f049:
3e00 mvi a, 0h
f04bh: 320300 sta 03h
f04eh: 318000 lxi sp, 080h
f051h: 2165f0 lxi h, f065h
f054h: cd call *1
f055h: 08 nop
f056h: f3 di
f057h: cd call *1
f058h: e1 pop h
f059h: f0 rp
f05ah: 2100c9 lxi h, c90h
f05dh: 224000 shld 040h
f060h: 3e2b mvi a, 2bh
f062h: c38bf0 jmp label_f08b
f065h: 0c inr c
f066h: 35 dcr m
f067h: 364b mvi m, 4bh
f069h: 20 nop
f06ah: 43 mov b, e
f06bh: 50 mov d, b
f06ch: 2f cma
f06dh: 4d mov c, l
f06eh: 20 nop
f06fh: 56 mov d, m
f070h: 45 mov b, l
f071h: 52 mov d, d
f072h: 53 mov d, e
f073h: 49 mov c, c
f074h: 4f mov c, a
f075h: 4e mov c, m
f076h: 20 nop
f077h: 312e34 lxi sp, 342eh
f07ah: 0d dcr c
f07bh: 0a ldax b
f07ch: 03 inx b
f07dh: label_f07d:
318000 lxi sp, 080h
f080h: cd call *1
f081h: e1 pop h
f082h: f0 rp
f083h: 2100c9 lxi h, c90h
f086h: 224000 shld 040h
f089h: 3e2a mvi a, 2ah
f08bh: label_f08b:
324500 sta 045h
f08eh: 3e02 mvi a, 2h
f090h: 324300 sta 043h
f093h: af xra a
f094h: 324200 sta 042h
f097h: 324400 sta 044h
f09ah: cd call *1
f09bh: ae xra m
f09ch: f23ec3 jp label_c33e
f09fh: 320000 sta 00h
f0a2h: 2103f0 lxi h, f03h
f0a5h: 220100 shld 01h
f0a8h: 320500 sta 05h
f0abh: 2106d1 lxi h, d16h
f0aeh: 220600 shld 06h
f0b1h: 018000 lxi b, 080h
f0b4h: cd call *1
f0b5h: 02 stax b
f0b6h: f1 pop psw
f0b7h: fb ei
f0b8h: 0e00 mvi c, 0
f0bah: c300c9 jmp label_c900
f0bdh: label_f0bd:
db02 in 2
f0bfh: e608 ani 8h
f0c1h: c8 rz
f0c2h: 3eff mvi a, ffh
f0c4h: c9 ret
f0c5h: c9 ret
f0c6h: label_f0c6:
c3d5f0 jmp label_f0d5
f0c9h: c9 ret
f0cah: label_f0ca:
cd call *1
f0cbh: bd cmp l
f0cch: f0 rp
f0cdh: cacaf0 jz label_f0ca
f0d0h: db00 in 0
f0d2h: e67f ani 7fh
f0d4h: c9 ret
f0d5h: label_f0d5:
db02 in 2
f0d7h: e610 ani 10h
f0d9h: label_f0d9:
cad5f0 jz label_f0d5
f0dch: 79 mov a, c
f0ddh: label_f0dd:
d300 out 0
f0dfh: c9 ret
f0e0h: c9 ret
f0e1h: label_f0e1:
cd call *1
f0e2h: 93 sub e
f0e3h: f1 pop psw
f0e4h: 210000 lxi h, 00h
f0e7h: 39 dad sp
f0e8h: 224d00 shld 04dh
f0ebh: 3a44f0 lda f044h
f0eeh: cd call *1
f0efh: 25 dcr h
f0f0h: f2afc9 jp label_c9af
f0f3h: label_f0f3:
79 mov a, c
f0f4h: 324200 sta 042h
f0f7h: c9 ret
f0f8h: label_f0f8:
79 mov a, c
f0f9h: 324400 sta 044h
f0fch: c9 ret
f0fdh: label_f0fd:
79 mov a, c
f0feh: 324300 sta 043h
f101h: c9 ret
f102h: label_f102:
c5 push b
f103h: e1 pop h
f104h: 224000 shld 040h
f107h: c9 ret
f108h: label_f108:
060a mvi b, ah
f10ah: label_f10a:
c5 push b
f10bh: cd call *1
f10ch: c7 rst 0h
f10dh: f1 pop psw
f10eh: c1 pop b
f10fh: c8 rz
f110h: 05 dcr b
f111h: c20af1 jnz label_f10a
f114h: af xra a
f115h: 3c inr a
f116h: c9 ret
f117h: label_f117:
060a mvi b, ah
f119h: label_f119:
c5 push b
f11ah: cd call *1
f11bh: f6f1 ori f1h
f11dh: c1 pop b
f11eh: c8 rz
f11fh: 05 dcr b
f120h: c219f1 jnz label_f119
f123h: af xra a
f124h: 3c inr a
f125h: c9 ret
f126h: label_f126:
db64 in 64
f128h: e601 ani 1h
f12ah: c226f1 jnz label_f126
f12dh: cd call *1
f12eh: 49 mov c, c
f12fh: f2db64 jp label_64db
f132h: 57 mov d, a
f133h: 3a4600 lda 046h
f136h: a2 ana d
f137h: c8 rz
f138h: 7a mov a, d
f139h: label_f139:
324700 sta 047h
f13ch: f601 ori 1h
f13eh: 2a4d00 lhld 04dh
f141h: f9 sphl
f142h: c9 ret
f143h: 0600 mvi b, 0h
f145h: 3a40f0 lda f040h
f148h: 4f mov c, a
f149h: 3a4400 lda 044h
f14ch: b9 cmp c
f14dh: da53f1 jc label_f153
f150h: 0610 mvi b, 10h
f152h: 91 sub c
f153h: label_f153:
4f mov c, a
f154h: db65 in 65
f156h: b9 cmp c
f157h: f5 push psw
f158h: db63 in 63
f15ah: 2f cma
f15bh: 5f mov e, a
f15ch: e610 ani 10h
f15eh: b8 cmp b
f15fh: ca6ef1 jz label_f16e
f162h: 7b mov a, e
f163h: e60f ani fh
f165h: b0 ora b
f166h: 2f cma
f167h: d363 out 63
f169h: 3e01 mvi a, 1h
f16bh: cd call *1
f16ch: 80 add b
f16dh: f2f1c8 jp label_c8f1
f170h: 0603 mvi b, 3h
f172h: label_f172:
79 mov a, c
f173h: d367 out 67
f175h: 3a45f0 lda f045h
f178h: c5 push b
f179h: cd call *1
f17ah: 25 dcr h
f17bh: f2c1db jp label_dbc1
f17eh: 64 mov h, h
f17fh: e610 ani 10h
f181h: c8 rz
f182h: 3a44f0 lda f044h
f185h: c5 push b
f186h: cd call *1
f187h: 25 dcr h
f188h: f2c105 jp label_5c1
f18bh: c272f1 jnz label_f172
f18eh: 3e20 mvi a, 20h
f190h: c339f1 jmp label_f139
f193h: db63 in 63
f195h: 2f cma
f196h: e60f ani fh
f198h: caa9f1 jz label_f1a9
f19bh: 0eff mvi c, ff
f19dh: label_f19d:
0c inr c
f19eh: 1f rar
f19fh: d29df1 jnc label_f19d
f1a2h: 3a4200 lda 042h
f1a5h: e603 ani 3h
f1a7h: b9 cmp c
f1a8h: c8 rz
f1a9h: label_f1a9:
cd call *1
f1aah: 57 mov d, a
f1abh: f2af3c jp label_3caf
f1aeh: c9 ret
f1afh: label_f1af:
214800 lxi h, 048h
f1b2h: 0604 mvi b, 4h
f1b4h: 3ef8 mvi a, f8h
f1b6h: 324600 sta 046h
f1b9h: cd call *1
f1bah: 50 mov d, b
f1bbh: f23ec4 jp label_c43e
f1beh: cd call *1
f1bfh: e4f13a cpo label_3af1
f1c2h: 48 mov c, b
f1c3h: 00 nop
f1c4h: d365 out 65
f1c6h: c9 ret
f1c7h: 210000 lxi h, 00h
f1cah: 39 dad sp
f1cbh: 224d00 shld 04dh
f1ceh: cd call *1
f1cfh: 93 sub e
f1d0h: f1 pop psw
f1d1h: c4aff1 cnz label_f1af
f1d4h: cd call *1
f1d5h: 43 mov b, e
f1d6h: f1 pop psw
f1d7h: 3efe mvi a, feh
f1d9h: 324600 sta 046h
f1dch: cd call *1
f1ddh: 8d adc l
f1deh: f23e88 jp label_883e
f1e1h: cd call *1
f1e2h: 9a sbb d
f1e3h: f2324c jp label_4c32
f1e6h: 00 nop
f1e7h: d364 out 64
f1e9h: label_f1e9:
db67 in 67
f1ebh: 77 mov m, a
f1ech: 23 inx h
f1edh: 05 dcr b
f1eeh: c2e9f1 jnz label_f1e9
f1f1h: cd call *1
f1f2h: 26f1 mvi h, f1h
f1f4h: af xra a
f1f5h: c9 ret
f1f6h: 210000 lxi h, 00h
f1f9h: 39 dad sp
f1fah: 224d00 shld 04dh
f1fdh: cd call *1
f1feh: 93 sub e
f1ffh: f1 pop psw
f200h: c4aff1 cnz label_f1af
f203h: cd call *1
f204h: 43 mov b, e
f205h: f1 pop psw
f206h: 3efc mvi a, fch
f208h: 324600 sta 046h
f20bh: cd call *1
f20ch: 8d adc l
f20dh: f23ea8 jp label_a83e
f210h: cd call *1
f211h: 9a sbb d
f212h: f2324c jp label_4c32
f215h: 00 nop
f216h: d364 out 64
f218h: label_f218:
7e mov a, m
f219h: d367 out 67
f21bh: 23 inx h
f21ch: 05 dcr b
f21dh: c218f2 jnz label_f218
f220h: cd call *1
f221h: 26f1 mvi h, f1h
f223h: af xra a
f224h: c9 ret
f225h: 324c00 sta 04ch
f228h: 3e80 mvi a, 80h
f22ah: 324600 sta 046h
f22dh: label_f22d:
db64 in 64
f22fh: e601 ani 1h
f231h: c22df2 jnz label_f22d
f234h: db63 in 63
f236h: e61f ani 1fh
f238h: f660 ori 60h
f23ah: d363 out 63
f23ch: 3a4c00 lda 04ch
f23fh: d364 out 64
f241h: 3e01 mvi a, 1h
f243h: cd call *1
f244h: 80 add b
f245h: f2c326 jp label_26c3
f248h: f1 pop psw
f249h: db63 in 63
f24bh: f6e0 ori e0h
f24dh: d363 out 63
f24fh: c9 ret
f250h: label_f250:
db63 in 63
f252h: e61f ani 1fh
f254h: d363 out 63
f256h: c9 ret
f257h: 3a4200 lda 042h
f25ah: e603 ani 3h
f25ch: b7 cmp a
f25dh: 4f mov c, a
f25eh: 3e09 mvi a, 9h
f260h: ca69f2 jz label_f269
f263h: label_f263:
c601 adi 1h
f265h: 0d dcr c
f266h: c263f2 jnz label_f263
f269h: label_f269:
2f cma
f26ah: d363 out 63
f26ch: 3a47f0 lda f047h
f26fh: cd call *1
f270h: 80 add b
f271h: f2db64 jp label_64db
f274h: e680 ani 80h
f276h: ca7ff2 jz label_f27f
f279h: f1 pop psw
f27ah: 3e40 mvi a, 40h
f27ch: c339f1 jmp label_f139
f27fh: label_f27f:
c9 ret
f280h: 47 mov b, a
f281h: label_f281:
3a48f0 lda f048h
f284h: label_f284:
3d dcr a
f285h: c284f2 jnz label_f284
f288h: 05 dcr b
f289h: c281f2 jnz label_f281
f28ch: c9 ret
f28dh: 2a4000 lhld 040h
f290h: 0680 mvi b, 80h
f292h: 3a4300 lda 043h
f295h: d366 out 66
f297h: c350f2 jmp label_f250
f29ah: 57 mov d, a
f29bh: 3ed0 mvi a, d0h
f29dh: d364 out 64
f29fh: 3e04 mvi a, 4h
f2a1h: label_f2a1:
3d dcr a
f2a2h: c2a1f2 jnz label_f2a1
f2a5h: db64 in 64
f2a7h: e620 ani 20h
f2a9h: 7a mov a, d
f2aah: c0 rnz
f2abh: f604 ori 4h
f2adh: c9 ret
f2aeh: label_f2ae:
cd call *1
f2afh: 08 nop
f2b0h: f1 pop psw
f2b1h: c2e6f2 jnz label_f2e6
f2b4h: cd call *1
f2b5h: c8 rz
f2b6h: f2c2ae jp label_aec2
f2b9h: f2c9cd jp label_cdc9
f2bch: 17 ral
f2bdh: f1 pop psw
f2beh: c2e6f2 jnz label_f2e6
f2c1h: cd call *1
f2c2h: c8 rz
f2c3h: f2c2bb jp label_bbc2
f2c6h: f2c92a jp label_2ac9
f2c9h: 40 mov b, b
f2cah: 00 nop
f2cbh: 118000 lxi d, 080h
f2ceh: 19 dad d
f2cfh: 224000 shld 040h
f2d2h: 214500 lxi h, 045h
f2d5h: 35 dcr m
f2d6h: c8 rz
f2d7h: 2b dcx h
f2d8h: 2b dcx h
f2d9h: 34 inr m
f2dah: 3a3ff0 lda f03fh
f2ddh: 3c inr a
f2deh: be cmp m
f2dfh: c0 rnz
f2e0h: 3601 mvi m, 1h
f2e2h: 23 inx h
f2e3h: 34 inr m
f2e4h: b7 cmp a
f2e5h: c9 ret
f2e6h: label_f2e6:
21fdf2 lxi h, f2fdh
f2e9h: cd call *1
f2eah: 08 nop
f2ebh: f3 di
f2ech: 3a4700 lda 047h
f2efh: cd call *1
f2f0h: 14 inr d
f2f1h: f3 di
f2f2h: 0e0a mvi c, a
f2f4h: cd call *1
f2f5h: d5 push d
f2f6h: f0 rp
f2f7h: 0e0d mvi c, d
f2f9h: c3d5f0 jmp label_f0d5
f2fch: c9 ret
f2fdh: 44 mov b, h
f2feh: 49 mov c, c
f2ffh: 53 mov d, e
f300h: 4b mov c, e
f301h: 20 nop
f302h: 45 mov b, l
f303h: 52 mov d, d
f304h: 52 mov d, d
f305h: 23 inx h
f306h: 20 nop
f307h: 03 inx b
f308h: label_f308:
7e mov a, m
f309h: fe03 cpi 3h
f30bh: c8 rz
f30ch: 4f mov c, a
f30dh: cd call *1
f30eh: d5 push d
f30fh: f0 rp
f310h: 23 inx h
f311h: c308f3 jmp label_f308
f314h: label_f314:
f5 push psw
f315h: 0f rrc
f316h: 0f rrc
f317h: 0f rrc
f318h: 0f rrc
f319h: cd call *1
f31ah: 1d dcr e
f31bh: f3 di
f31ch: f1 pop psw
f31dh: e60f ani fh
f31fh: c690 adi 90h
f321h: 27 daa
f322h: ce40 aci 40h
f324h: 27 daa
f325h: 4f mov c, a
f326h: c3d5f0 jmp label_f0d5
f329h: d630 sui 30h
f32bh: fe0a cpi ah
f32dh: f8 rm
f32eh: d607 sui 7h
f330h: c9 ret
f331h: fe30 cpi 30h
f333h: da47f3 jc label_f347
f336h: fe3a cpi 3ah
f338h: da45f3 jc label_f345
f33bh: fe40 cpi 40h
f33dh: da47f3 jc label_f347
f340h: fe47 cpi 47h
f342h: d247f3 jnc label_f347
f345h: label_f345:
af xra a
f346h: c9 ret
f347h: label_f347:
af xra a
f348h: 3c inr a
f349h: c9 ret
f34ah: fe20 cpi 20h
f34ch: c8 rz
f34dh: fe2c cpi 2ch
f34fh: c8 rz
f350h: fe5e cpi 5eh
f352h: ca5df3 jz label_f35d
f355h: fe2e cpi 2eh
f357h: ca5df3 jz label_f35d
f35ah: fe0d cpi dh
f35ch: c0 rnz
f35dh: label_f35d:
c5 push b
f35eh: 0e0a mvi c, a
f360h: cd call *1
f361h: d5 push d
f362h: f0 rp
f363h: c1 pop b
f364h: af xra a
f365h: c9 ret
f366h: label_f366:
210000 lxi h, 00h
f369h: 45 mov b, l
f36ah: label_f36a:
cd call *1
f36bh: 83 add e
f36ch: f3 di
f36dh: 04 inr b
f36eh: cd call *1
f36fh: 4a mov c, d
f370h: f3 di
f371h: c8 rz
f372h: cd call *1
f373h: 31f3c0 lxi sp, c0f3h
f376h: 79 mov a, c
f377h: cd call *1
f378h: 29 dad h
f379h: f3 di
f37ah: 29 dad h
f37bh: 29 dad h
f37ch: 29 dad h
f37dh: 29 dad h
f37eh: 85 add l
f37fh: 6f mov l, a
f380h: c36af3 jmp label_f36a
f383h: cd call *1
f384h: caf04f jz label_4ff0
f387h: c3d5f0 jmp label_f0d5
f38ah: label_f38a:
3a4400 lda 044h
f38dh: d367 out 67
f38fh: 3a46f0 lda f046h
f392h: cd call *1
f393h: 25 dcr h
f394h: f22e01 jp label_12e
f397h: 3a3ff0 lda f03fh
f39ah: 67 mov h, a
f39bh: 3a41f0 lda f041h
f39eh: 47 mov b, a
f39fh: af xra a
f3a0h: 324600 sta 046h
f3a3h: cd call *1
f3a4h: 50 mov d, b
f3a5h: f23ef4 jp label_f43e
f3a8h: 324c00 sta 04ch
f3abh: d364 out 64
f3adh: af xra a
f3aeh: label_f3ae:
d367 out 67
f3b0h: 05 dcr b
f3b1h: c2aef3 jnz label_f3ae
f3b4h: label_f3b4:
3efe mvi a, feh
f3b6h: d367 out 67
f3b8h: db65 in 65
f3bah: d367 out 67
f3bch: af xra a
f3bdh: d367 out 67
f3bfh: 7d mov a, l
f3c0h: d367 out 67
f3c2h: af xra a
f3c3h: d367 out 67
f3c5h: 3ef7 mvi a, f7h
f3c7h: d367 out 67
f3c9h: 3a42f0 lda f042h
f3cch: 47 mov b, a
f3cdh: af xra a
f3ceh: label_f3ce:
d367 out 67
f3d0h: 05 dcr b
f3d1h: c2cef3 jnz label_f3ce
f3d4h: 3efb mvi a, fbh
f3d6h: d367 out 67
f3d8h: 3ee5 mvi a, e5h
f3dah: 0680 mvi b, 80h
f3dch: label_f3dc:
d367 out 67
f3deh: 05 dcr b
f3dfh: c2dcf3 jnz label_f3dc
f3e2h: 3ef7 mvi a, f7h
f3e4h: d367 out 67
f3e6h: 3a43f0 lda f043h
f3e9h: 47 mov b, a
f3eah: af xra a
f3ebh: label_f3eb:
d367 out 67
f3edh: 05 dcr b
f3eeh: c2ebf3 jnz label_f3eb
f3f1h: 2c inr l
f3f2h: 25 dcr h
f3f3h: c2b4f3 jnz label_f3b4
f3f6h: cd call *1
f3f7h: 26f1 mvi h, f1h
f3f9h: af xra a
f3fah: c9 ret
f3fbh: e5 push h
f3fch: 213d00 lxi h, 03dh
f3ffh: d5 push d

Nama
April 22nd, 2015, 08:50 PM
F400h-F7FFh


f400h: c5 push b
f401h: f5 push psw
f402h: 5e mov e, m
f403h: 23 inx h
f404h: 7e mov a, m
f405h: e603 ani 3h
f407h: c6ec adi ech
f409h: 57 mov d, a
f40ah: 23 inx h
f40bh: 46 mov b, m
f40ch: eb xchg
f40dh: 70 mov m, b
f40eh: 79 mov a, c
f40fh: fe0c cpi ch
f411h: ca71f4 jz label_f471
f414h: fe0d cpi dh
f416h: ca7ff4 jz label_f47f
f419h: fe0a cpi ah
f41bh: ca86f4 jz label_f486
f41eh: fe15 cpi 15h
f420h: cacdf4 jz label_f4cd
f423h: fe04 cpi 4h
f425h: cad3f4 jz label_f4d3
f428h: fe06 cpi 6h
f42ah: ca47f4 jz label_f447
f42dh: fe02 cpi 2h
f42fh: cad9f4 jz label_f4d9
f432h: fe08 cpi 8h
f434h: cadff4 jz label_f4df
f437h: 7d mov a, l
f438h: e63f ani 3fh
f43ah: fe3f cpi 3fh
f43ch: c246f4 jnz label_f446
f43fh: dbff in ff
f441h: e602 ani 2h
f443h: ca5df4 jz label_f45d
f446h: label_f446:
71 mov m, c
f447h: label_f447:
010100 lxi b, 01h
f44ah: label_f44a:
09 dad b
f44bh: 7c mov a, h
f44ch: fef0 cpi f0h
f44eh: c25df4 jnz label_f45d
f451h: 26ef mvi h, efh
f453h: 7d mov a, l
f454h: f6c0 ori c0h
f456h: 6f mov l, a
f457h: cd call *1
f458h: a5 ana l
f459h: f4c363 cp label_63c3
f45ch: f47ce6 cp label_e67c
f45fh: 03 inx b
f460h: c6ec adi ech
f462h: 67 mov h, a
f463h: 7e mov a, m
f464h: 367f mvi m, 7fh
f466h: eb xchg
f467h: 77 mov m, a
f468h: 2b dcx h
f469h: 72 mov m, d
f46ah: 2b dcx h
f46bh: 73 mov m, e
f46ch: f1 pop psw
f46dh: c1 pop b
f46eh: d1 pop d
f46fh: e1 pop h
f470h: c9 ret
f471h: label_f471:
2100ec lxi h, ec0h
f474h: e5 push h
f475h: label_f475:
3620 mvi m, 20h
f477h: 23 inx h
f478h: 7c mov a, h
f479h: fef0 cpi f0h
f47bh: da75f4 jc label_f475
f47eh: e1 pop h
f47fh: label_f47f:
7d mov a, l
f480h: e6c0 ani c0h
f482h: 6f mov l, a
f483h: c35df4 jmp label_f45d
f486h: label_f486:
d5 push d
f487h: 114000 lxi d, 040h
f48ah: 19 dad d
f48bh: 7c mov a, h
f48ch: fef0 cpi f0h
f48eh: c2bcf4 jnz label_f4bc
f491h: label_f491:
dbff in ff
f493h: e601 ani 1h
f495h: ca91f4 jz label_f491
f498h: cd call *1
f499h: a5 ana l
f49ah: f47df6 cp label_f67d
f49dh: c0 rnz
f49eh: 6f mov l, a
f49fh: 26ef mvi h, efh
f4a1h: d1 pop d
f4a2h: c35df4 jmp label_f45d
f4a5h: d5 push d
f4a6h: e5 push h
f4a7h: 1100ec lxi d, ec0h
f4aah: 2140ec lxi h, ec40h
f4adh: label_f4ad:
7e mov a, m
f4aeh: 12 stax d
f4afh: 3620 mvi m, 20h
f4b1h: 13 inx d
f4b2h: 23 inx h
f4b3h: 7c mov a, h
f4b4h: fef0 cpi f0h
f4b6h: c2adf4 jnz label_f4ad
f4b9h: e1 pop h
f4bah: d1 pop d
f4bbh: c9 ret
f4bch: label_f4bc:
e5 push h
f4bdh: 7d mov a, l
f4beh: e6c0 ani c0h
f4c0h: 6f mov l, a
f4c1h: label_f4c1:
3620 mvi m, 20h
f4c3h: 23 inx h
f4c4h: 1d dcr e
f4c5h: c2c1f4 jnz label_f4c1
f4c8h: e1 pop h
f4c9h: d1 pop d
f4cah: c35df4 jmp label_f45d
f4cdh: label_f4cd:
01c0ff lxi b, ffc0h
f4d0h: c34af4 jmp label_f44a
f4d3h: label_f4d3:
014000 lxi b, 040h
f4d6h: c34af4 jmp label_f44a
f4d9h: label_f4d9:
01ffff lxi b, ffffh
f4dch: c34af4 jmp label_f44a
f4dfh: label_f4df:
210000 lxi h, 00h
f4e2h: c35df4 jmp label_f45d
f4e5h: 00 nop
f4e6h: 323800 sta 038h
f4e9h: 218606 lxi h, 686h
f4ech: 223900 shld 039h
f4efh: 3a5d00 lda 05dh
f4f2h: fe20 cpi 20h
f4f4h: cafe06 jz label_6fe
f4f7h: 210000 lxi h, 00h
f4fah: e5 push h
f4fbh: c3a709 jmp label_9a7
f4feh: 31a90f lxi sp, fa9h
f501h: cd call *1
f502h: 8d adc l
f503h: 09 dad b
f504h: da0d07 jc label_70d
f507h: 218006 lxi h, 680h
f50ah: 220600 shld 06h
f50dh: cd call *1
f50eh: 0f rrc
f50fh: 0c inr c
f510h: 3e2d mvi a, 2dh
f512h: cd call *1
f513h: c1 pop b
f514h: 0b dcx b
f515h: cd call *1
f516h: b0 ora b
f517h: 0b dcx b
f518h: cd call *1
f519h: d7 rst 2h
f51ah: 0b dcx b
f51bh: fe0d cpi dh
f51dh: cafe06 jz label_6fe
f520h: d641 sui 41h
f522h: daa50b jc label_ba5
f525h: fe1a cpi 1ah
f527h: d2a50b jnc label_ba5
f52ah: 5f mov e, a
f52bh: 1600 mvi d, 0h
f52dh: 213707 lxi h, 737h
f530h: 19 dad d
f531h: 19 dad d
f532h: 5e mov e, m
f533h: 23 inx h
f534h: 56 mov d, m
f535h: eb xchg
f536h: e9 pchl
f537h: 7e mov a, m
f538h: 07 rlc
f539h: a5 ana l
f53ah: 0b dcx b
f53bh: a5 ana l
f53ch: 0b dcx b
f53dh: c607 adi 7h
f53fh: a5 ana l
f540h: 0b dcx b
f541h: 5c mov e, h
f542h: 08 nop
f543h: 70 mov m, b
f544h: 08 nop
f545h: da0804 jc label_408
f548h: 09 dad b
f549h: a5 ana l
f54ah: 0b dcx b
f54bh: a5 ana l
f54ch: 0b dcx b
f54dh: 97 sub a
f54eh: 07 rlc
f54fh: 5a mov e, d
f550h: 09 dad b
f551h: a5 ana l
f552h: 0b dcx b
f553h: a5 ana l
f554h: 0b dcx b
f555h: a5 ana l
f556h: 0b dcx b
f557h: a5 ana l
f558h: 0b dcx b
f559h: 96 sub m
f55ah: 09 dad b
f55bh: 74 mov m, h
f55ch: 0a ldax b
f55dh: bd cmp l
f55eh: 0a ldax b
f55fh: b9 cmp c
f560h: 0a ldax b
f561h: a5 ana l
f562h: 0b dcx b
f563h: a5 ana l
f564h: 0b dcx b
f565h: e1 pop h
f566h: 0a ldax b
f567h: a5 ana l
f568h: 0b dcx b
f569h: a5 ana l
f56ah: 0b dcx b
f56bh: e5 push h
f56ch: d5 push d
f56dh: c5 push b
f56eh: af xra a
f56fh: 325b00 sta 05bh
f572h: 0e0f mvi c, f
f574h: 115c00 lxi d, 05ch
f577h: cd call *1
f578h: a2 ana d
f579h: 06c1 mvi b, c1h
f57bh: d1 pop d
f57ch: e1 pop h
f57dh: c9 ret
f57eh: cd call *1
f57fh: 8d adc l
f580h: 09 dad b
f581h: d2a50b jnc label_ba5
f584h: cd call *1
f585h: 8a adc d
f586h: 0c inr c
f587h: 3d dcr a
f588h: c2a50b jnz label_ba5
f58bh: cd call *1
f58ch: 60 mov h, b
f58dh: 0c inr c
f58eh: 220c00 shld 0ch
f591h: cd call *1
f592h: 09 dad b
f593h: 00 nop
f594h: c3fe06 jmp label_6fe
f597h: cd call *1
f598h: 8d adc l
f599h: 09 dad b
f59ah: d2a50b jnc label_ba5
f59dh: cd call *1
f59eh: 8a adc d
f59fh: 0c inr c
f5a0h: cabb07 jz label_7bb
f5a3h: cd call *1
f5a4h: 60 mov h, b
f5a5h: 0c inr c
f5a6h: 220c00 shld 0ch
f5a9h: 3d dcr a
f5aah: cabb07 jz label_7bb
f5adh: cd call *1
f5aeh: 60 mov h, b
f5afh: 0c inr c
f5b0h: 220e00 shld 0eh
f5b3h: 3d dcr a
f5b4h: c2a50b jnz label_ba5
f5b7h: af xra a
f5b8h: c3bd07 jmp label_7bd
f5bbh: 3e0c mvi a, ch
f5bdh: 321000 sta 010h
f5c0h: cd call *1
f5c1h: 0600 mvi b, 0h
f5c3h: c3fe06 jmp label_6fe
f5c6h: cd call *1
f5c7h: 8a adc d
f5c8h: 0c inr c
f5c9h: cae507 jz label_7e5
f5cch: cd call *1
f5cdh: 60 mov h, b
f5ceh: 0c inr c
f5cfh: dad507 jc label_7d5
f5d2h: 22570f shld f57h
f5d5h: e67f ani 7fh
f5d7h: 3d dcr a
f5d8h: cae507 jz label_7e5
f5dbh: cd call *1
f5dch: 60 mov h, b
f5ddh: 0c inr c
f5deh: 3d dcr a
f5dfh: c2a50b jnz label_ba5
f5e2h: c3f007 jmp label_7f0
f5e5h: 2a570f lhld f57h
f5e8h: 7d mov a, l
f5e9h: e6f0 ani f0h
f5ebh: 6f mov l, a
f5ech: 11bf00 lxi d, 0bfh
f5efh: 19 dad d
f5f0h: 22590f shld f59h
f5f3h: cd call *1
f5f4h: 0f rrc
f5f5h: 0c inr c
f5f6h: cd call *1
f5f7h: 19 dad d
f5f8h: 0c inr c
f5f9h: c2fe06 jnz label_6fe
f5fch: 2a570f lhld f57h
f5ffh: 225b0f shld f5bh
f602h: cd call *1
f603h: 28 nop
f604h: 0c inr c
f605h: cd call *1
f606h: bf cmp a
f607h: 0b dcx b
f608h: 7e mov a, m
f609h: cd call *1
f60ah: ff rst 7h
f60bh: 0b dcx b
f60ch: 23 inx h
f60dh: cd call *1
f60eh: 3f cmc
f60fh: 0c inr c
f610h: da1908 jc label_819
f613h: 7d mov a, l
f614h: e60f ani fh
f616h: c20508 jnz label_805
f619h: 22570f shld f57h
f61ch: 2a5b0f lhld f5bh
f61fh: eb xchg
f620h: cd call *1
f621h: bf cmp a
f622h: 0b dcx b
f623h: 1a ldax d
f624h: cd call *1
f625h: 30 nop
f626h: 0c inr c
f627h: 13 inx d
f628h: 2a570f lhld f57h
f62bh: 7d mov a, l
f62ch: 93 sub e
f62dh: c22308 jnz label_823
f630h: 7c mov a, h
f631h: 92 sub d
f632h: c22308 jnz label_823
f635h: 2a570f lhld f57h
f638h: cd call *1
f639h: 3f cmc
f63ah: 0c inr c
f63bh: dafe06 jc label_6fe
f63eh: c3f307 jmp label_7f3
f641h: cd call *1
f642h: 8a adc d
f643h: 0c inr c
f644h: fe03 cpi 3h
f646h: c2a50b jnz label_ba5
f649h: cd call *1
f64ah: 60 mov h, b
f64bh: 0c inr c
f64ch: e5 push h
f64dh: cd call *1
f64eh: 60 mov h, b
f64fh: 0c inr c
f650h: e5 push h
f651h: cd call *1
f652h: 60 mov h, b
f653h: 0c inr c
f654h: d1 pop d
f655h: c1 pop b
f656h: c9 ret
f657h: 7b mov a, e
f658h: 91 sub c
f659h: 7a mov a, d
f65ah: 98 sbb b
f65bh: c9 ret
f65ch: cd call *1
f65dh: 41 mov b, c
f65eh: 08 nop
f65fh: 7c mov a, h
f660h: b7 cmp a
f661h: c2a50b jnz label_ba5
f664h: cd call *1
f665h: 57 mov d, a
f666h: 08 nop
f667h: dafe06 jc label_6fe
f66ah: 7d mov a, l
f66bh: 02 stax b
f66ch: 03 inx b
f66dh: c36408 jmp label_864
f670h: cd call *1
f671h: 0f rrc
f672h: 0c inr c
f673h: cd call *1
f674h: 8a adc d
f675h: 0c inr c
f676h: cd call *1
f677h: 60 mov h, b
f678h: 0c inr c
f679h: e5 push h
f67ah: cd call *1
f67bh: 60 mov h, b
f67ch: 0c inr c
f67dh: label_f67d:
e5 push h
f67eh: cd call *1
f67fh: 60 mov h, b
f680h: 0c inr c
f681h: 44 mov b, h
f682h: 4d mov c, l
f683h: d1 pop d
f684h: e1 pop h
f685h: f3 di
f686h: caa108 jz label_8a1
f689h: da8f08 jc label_88f
f68ch: 22b30f shld fb3h
f68fh: e67f ani 7fh
f691h: 3d dcr a
f692h: caa108 jz label_8a1
f695h: cd call *1
f696h: b2 ora d
f697h: 08 nop
f698h: 3d dcr a
f699h: caa108 jz label_8a1
f69ch: 59 mov e, c
f69dh: 50 mov d, b
f69eh: cd call *1
f69fh: b2 ora d
f6a0h: 08 nop
f6a1h: 31a90f lxi sp, fa9h
f6a4h: d1 pop d
f6a5h: c1 pop b
f6a6h: f1 pop psw
f6a7h: e1 pop h
f6a8h: f9 sphl
f6a9h: 2ab30f lhld fb3h
f6ach: e5 push h
f6adh: 2ab10f lhld fb1h
f6b0h: fb ei
f6b1h: c9 ret
f6b2h: f5 push psw
f6b3h: c5 push b
f6b4h: 21490f lxi h, f49h
f6b7h: 7e mov a, m
f6b8h: 34 inr m
f6b9h: b7 cmp a
f6bah: cacd08 jz label_8cd
f6bdh: 23 inx h
f6beh: 7e mov a, m
f6bfh: 23 inx h
f6c0h: 46 mov b, m
f6c1h: 23 inx h
f6c2h: bb cmp e
f6c3h: c2cd08 jnz label_8cd
f6c6h: 78 mov a, b
f6c7h: ba cmp d
f6c8h: c2cd08 jnz label_8cd
f6cbh: 7e mov a, m
f6cch: 12 stax d
f6cdh: 23 inx h
f6ceh: 73 mov m, e
f6cfh: 23 inx h
f6d0h: 72 mov m, d
f6d1h: 23 inx h
f6d2h: 1a ldax d
f6d3h: 77 mov m, a
f6d4h: 3eff mvi a, ffh
f6d6h: 12 stax d
f6d7h: c1 pop b
f6d8h: f1 pop psw
f6d9h: c9 ret
f6dah: cd call *1
f6dbh: 8a adc d
f6dch: 0c inr c
f6ddh: fe02 cpi 2h
f6dfh: c2a50b jnz label_ba5
f6e2h: cd call *1
f6e3h: 60 mov h, b
f6e4h: 0c inr c
f6e5h: e5 push h
f6e6h: cd call *1
f6e7h: 60 mov h, b
f6e8h: 0c inr c
f6e9h: d1 pop d
f6eah: e5 push h
f6ebh: cd call *1
f6ech: 0f rrc
f6edh: 0c inr c
f6eeh: 19 dad d
f6efh: cd call *1
f6f0h: 28 nop
f6f1h: 0c inr c
f6f2h: cd call *1
f6f3h: bf cmp a
f6f4h: 0b dcx b
f6f5h: e1 pop h
f6f6h: af xra a
f6f7h: 95 sub l
f6f8h: 6f mov l, a
f6f9h: 3e00 mvi a, 0h
f6fbh: 9c sbb h
f6fch: 67 mov h, a
f6fdh: 19 dad d
f6feh: cd call *1
f6ffh: 28 nop
f700h: 0c inr c
f701h: c3fe06 jmp label_6fe
f704h: af xra a
f705h: 327c00 sta 07ch
f708h: 325c00 sta 05ch
f70bh: cd call *1
f70ch: d7 rst 2h
f70dh: 0b dcx b
f70eh: 0e09 mvi c, 9
f710h: 215d00 lxi h, 05dh
f713h: 77 mov m, a
f714h: 23 inx h
f715h: 0d dcr c
f716h: caa50b jz label_ba5
f719h: cd call *1
f71ah: d7 rst 2h
f71bh: 0b dcx b
f71ch: fe2e cpi 2eh
f71eh: ca2609 jz label_926
f721h: fe0d cpi dh
f723h: c21309 jnz label_913
f726h: 0d dcr c
f727h: ca3009 jz label_930
f72ah: 3620 mvi m, 20h
f72ch: 23 inx h
f72dh: c32609 jmp label_926
f730h: 0e04 mvi c, 4
f732h: fe2e cpi 2eh
f734h: c24b09 jnz label_94b
f737h: 216500 lxi h, 065h
f73ah: cd call *1
f73bh: d7 rst 2h
f73ch: 0b dcx b
f73dh: fe0d cpi dh
f73fh: ca4b09 jz label_94b
f742h: 77 mov m, a
f743h: 23 inx h
f744h: 0d dcr c
f745h: caa50b jz label_ba5
f748h: c33a09 jmp label_93a
f74bh: 0d dcr c
f74ch: ca5509 jz label_955
f74fh: 3620 mvi m, 20h
f751h: 23 inx h
f752h: c34b09 jmp label_94b
f755h: 3600 mvi m, 0h
f757h: c3fe06 jmp label_6fe
f75ah: cd call *1
f75bh: 41 mov b, c
f75ch: 08 nop
f75dh: cd call *1
f75eh: 57 mov d, a
f75fh: 08 nop
f760h: dafe06 jc label_6fe
f763h: 0a ldax b
f764h: 03 inx b
f765h: 77 mov m, a
f766h: 23 inx h
f767h: c35d09 jmp label_95d
f76ah: 216500 lxi h, 065h
f76dh: 7e mov a, m
f76eh: fe48 cpi 48h
f770h: c0 rnz
f771h: 23 inx h
f772h: 7e mov a, m
f773h: fe45 cpi 45h
f775h: c0 rnz
f776h: 23 inx h
f777h: 7e mov a, m
f778h: fe58 cpi 58h
f77ah: c9 ret
f77bh: eb xchg
f77ch: 2a810f lhld f81h
f77fh: 7d mov a, l
f780h: 93 sub e
f781h: 7c mov a, h
f782h: 9a sbb d
f783h: eb xchg
f784h: c9 ret
f785h: cd call *1
f786h: 7b mov a, e
f787h: 09 dad b
f788h: d0 rnc
f789h: 22810f shld f81h
f78ch: c9 ret
f78dh: e5 push h
f78eh: 210000 lxi h, 00h
f791h: cd call *1
f792h: 7b mov a, e
f793h: 09 dad b
f794h: e1 pop h
f795h: c9 ret
f796h: cd call *1
f797h: 8a adc d
f798h: 0c inr c
f799h: 210000 lxi h, 00h
f79ch: caa609 jz label_9a6
f79fh: 3d dcr a
f7a0h: c2a50b jnz label_ba5
f7a3h: cd call *1
f7a4h: 60 mov h, b
f7a5h: 0c inr c
f7a6h: e5 push h
f7a7h: cd call *1
f7a8h: 6b mov l, e
f7a9h: 07 rlc
f7aah: feff cpi ffh
f7ach: caa50b jz label_ba5
f7afh: cd call *1
f7b0h: 6a mov l, d
f7b1h: 09 dad b
f7b2h: cadb09 jz label_9db
f7b5h: e1 pop h
f7b6h: 110001 lxi d, 10h
f7b9h: 19 dad d
f7bah: e5 push h
f7bbh: 115c00 lxi d, 05ch
f7beh: 0e14 mvi c, 14
f7c0h: cd call *1
f7c1h: a2 ana d
f7c2h: 06e1 mvi b, e1h
f7c4h: b7 cmp a
f7c5h: c2400a jnz label_a40
f7c8h: 118000 lxi d, 080h
f7cbh: 0e80 mvi c, 80
f7cdh: 1a ldax d
f7ceh: 13 inx d
f7cfh: 77 mov m, a
f7d0h: 23 inx h
f7d1h: 0d dcr c
f7d2h: c2cd09 jnz label_9cd
f7d5h: cd call *1
f7d6h: 85 add l
f7d7h: 09 dad b
f7d8h: c3ba09 jmp label_9ba
f7dbh: cd call *1
f7dch: 6e mov l, m
f7ddh: 0b dcx b
f7deh: fe1a cpi 1ah
f7e0h: caa50b jz label_ba5
f7e3h: de3a sbi 3ah
f7e5h: c2db09 jnz label_9db
f7e8h: 57 mov d, a
f7e9h: e1 pop h
f7eah: e5 push h
f7ebh: cd call *1
f7ech: 20 nop
f7edh: 0a ldax b
f7eeh: 5f mov e, a
f7efh: cd call *1
f7f0h: 20 nop
f7f1h: 0a ldax b
f7f2h: f5 push psw
f7f3h: cd call *1
f7f4h: 20 nop
f7f5h: 0a ldax b
f7f6h: c1 pop b
f7f7h: 4f mov c, a
f7f8h: 09 dad b
f7f9h: 7b mov a, e
f7fah: b7 cmp a
f7fbh: c2060a jnz label_a06
f7feh: 60 mov h, b
f7ffh: 69 mov l, c

g4ugm
April 23rd, 2015, 12:33 AM
My biggest question is in what situations would you use two serial lines?

Lots of reasons, Serial Printer, Modem, Serial Plotter (Not sure if these were around at that date, but I think its possible)

You only appear to have connected three wires. If the leads you were supplied with have more wires try looping 4-5 and 6->8+20 on the interface cards to fake RTS/CTS hardware control.

I assume the CPM disk is one that matches the hardware?

g4ugm
April 23rd, 2015, 12:34 AM
Also check that the cards are strapped for RS232. If used with a TTY they they could be current loop..

Nama
April 25th, 2015, 04:57 AM
Hi Dave,
The leads that came with the machine are 3 wire for basic serial comms.
The CP/M disks came with the IMSAI and the Lobo dual 8" drives. I believe they are a set.

I've spent some time mapping out my two MIO cards to see how they are set up:

http://www.neoncluster.com/temp_items/MIO_files/MIO%20Jumpers%20V1.jpg

If you can see the hi-res linked image, you will see orange and pink lines that represent the jumper(able) sections of my MIO boards. I've cross referenced with the manual, and have also written down what I believe the jumper combinations mean.

At a glance both boards seem to be set up very similarly, and I can't see any reason why 'MIO board 1' shouldn't work connected to a PC terminal. It's set for 9600 baud, and only TD and RD lines are hooked up. It seems perfectly setup for basic terminal communication, unless I'm misunderstanding something.

'MIO board 2' is a little different. It has a few after market hacks and "fixes" applied to the solder side of the board.
These additional connections are shown in green, yellow, and blue. (I haven't started looking for cut traces yet)
It's set for serial at 1200 baud.
There are some additional jumpers in the 'Input Jumper' section. These connect EIA receivers to Control Ports, which I have no understanding of.
In addition, 'MIO board 2' has been jumpered for cassette, with it's bit rate set to 800.

The MIO test program in the manual is quite large, and I can't see myself toggling it in anytime soon. I'll have to think of another plan of attack.

Thanks

Phil

Nama
April 26th, 2015, 02:09 PM
I came across this short snippet of code to dump ASCII 'A' to port 0 on the serial line:

0011 1110 3E [076 MVIA Move into Accumulator;
0100 0001 41 101 an ASCII "A"
1101 0011 D3 323 Out on port;
0000 0000 00 000 port 0
1100 0011 C3 303 JMP to start address;
0000 0000 00 000
0000 0000 00 000 address 000h

When I tried it out I got nothing, but I happened to remove the serial cable while it was running, and as I pulled the cable a stream of garbage appeared on my terminal. After some investigation, I found that with the cable half plugged in I was able to receive junk from the MIO board while running this program. I'm not yet sure why the cable has to be half in for it to work. I believe the RD and TD lines are connecting, but maybe when the GND line connects the stream of data stops. Very strange, and needs more investigation.

Anyway, the stream of data certainly isn't 'A's at 9600 baud, and I've played with a lot of settings on the terminal and can't get anything like a 'A' to appear.
If I halt the program on the IMSAI, the stream still continues, but just 00h is sent, if I start up the program again, the flow of random characters picks up where the 00h left off.

If I change the port to 1 , 2 or 3, the stream just sends 00h. The stream only stops when the IMSAI is shut down. On restart, the program has to be entered again to start the stream, but from there on only a power down can shut the stream off.

Maybe the UART needs initialising first. Not sure how to do this though as I don't have any Assembler knowledge :-(

Does anyone have a Monitor program that plays nicely with the MIO cards?

Cheers

Phil

Marty
April 26th, 2015, 03:52 PM
Hi All;
Nama, "" When I tried it out I got nothing, but I happened to remove the serial cable while it was running, and as I pulled the cable a stream of garbage appeared on my terminal. After some investigation, I found that with the cable half plugged in I was able to receive junk from the MIO board while running this program. I'm not yet sure why the cable has to be half in for it to work. ""

CORROSION !!! on the cable ends..

THANK YOU Marty

Nama
April 26th, 2015, 05:19 PM
The cables are very clean and tidy, as is the entire system. Except for a bit of dust (which has been cleaned) the IMSAI is in very good physical shape.
Although I could be mistaken, I don't think corrosion is the issue. Thanks though.

tezza
April 26th, 2015, 07:06 PM
Working with these machines is working very close to the metal. Good luck Philip.

Tez

Nama
April 26th, 2015, 08:35 PM
Yes, it's certainly a learning experience.
I'm always amazed at what can be achieved with some perseverance, good luck, and some kind help from others.
There are a number of skill sets that I wish I had, as it would make things much easier. But having said that, I think about what I have learnt already, and it's far more than I ever thought I'd know about these things. Wish I knew 10000x more though.

Nama
April 28th, 2015, 03:17 PM
Been working on this in the evenings. The situation has improved immensely.

I was able to track town the serial fault due to the fact that the TD and RD lines were switched on the home made cable.

I was able to run the small program to dump ‘A’s to my MacBook terminal software from the MIO Board 1 (Board 2 is presently removed from the system).

With no drive attached, I was also able to executing the code in EPROM at FF00, which now produces the following message on the Terminal:

Luvk’CPoM’VERSION’qntMJ

Strange that it’s corrupt, but I know from looking at the FF00 EPROM dump that it should say:

56K CP/M VERSION 1.4

I played around with the settings on the Terminal, and nothing I tried worked. I was able to set the terminal to 6 data bit (not 8 bit) and was able to see the parts that were missing from the original message:

56. ../ ....... 1.4

Combine the two (6 bit and 8 bit settings), you get the whole message. Strange.

Not being able to fix the character issue, I moved on. I plugged in the 8” drives, and using the FF00 address again I tried to boot CP/M from the disks I have. The two disks labeled CP/M did not work, and ended with the error message:

DISK’ERRc’qx

or

BDOS'ERR'ON'Az‘BAD’SECTOR

I was however able to get to the CP/M prompt with two disk labeled ‘MSBASIC’, and ‘Work Disk 1’
The prompt however looked like this:

MJA~

To be sure what I was seeing was indeed the prompt I tried it again at the 6 bit setting, and it looked like this;

.>

Great!

The problem then became that typing anything on the Terminal has no effect on the IMSAI. I think I’ll have to trace the RD signal, and see if it’s getting to the UART.
Obviously, as I only have two bootable disks, my first priority is to get backups made. I certainly don’t want to use them much for trouble shooting.

I was able to determine that the MIO Board 1 is on Port 0, and Board 2 is possibly on port 20.
Were these machines, with two serial cards, ever setup with one card transmitting to a terminal, and the other card receiving serial from a (different) terminal? This seems like a strange setup, but I can’t rule it out yet.

Things to resolve before I can try to make floppy backups:
- Why the funky characters
- Why can’t I send serial to the IMSAI.

Anyway, very happy with the progress.

Cheers

Phil

Nama
April 29th, 2015, 02:37 AM
Ok...I figured out the corrupt serial issue. Seems that the 7th bit is stuck high.

Using this deduction as a guide, I can correctly remap the following ASCII:

Luvk’CPoM’VERSION’qntMJ
[FF]56K CP/M VERSION 1.4[CR][VT]

DISK’ERRc’qx
DISK ERR# 18

BDOS'ERR'ON'Az‘BAD’SECTOR
BDOS ERR ON A: BAD SECTOR

MJA~
[CR][VT][SOH]>

Now I just need to find the problem component.

g4ugm
April 29th, 2015, 08:57 AM
That's what I would expect if the terminal is set for 6 data bits.

Nama
April 29th, 2015, 03:37 PM
I'll double check 6 bit setting on my terminal. The card itself is jumped for 8 bit, but I'll double check that again too.

Cheers

Nama
April 30th, 2015, 03:28 PM
SUCCESS!!!

After discovering that the 7th bit was stuck I removed the UART, as I was going to swap it with the one from the MIO board 2, and found that one of the legs was bent under. I gently bent it straight again and reinserted the UART. After a little bit of fiddling with the terminal settings, I was now able to receive a clean stream of data from the IMSAI to the Macbook. Finally!

However, I still couldn’t send anything back.

I traced the TD signal from the Mac to the MIO board. At one point it enters a 75189 (U15) at pin 10, and should exit at pin 8. but I couldn’t see any signal from pin 8. I changed it out for a spare, but it still didn’t work. I can’t explain exactly why, but after a little bit of frustration and total lack of understanding why the output wasn’t pulsing, I then had a gut feeling that the issue could have something to do with the USB to serial adaptor connected to my Mac…However I’ve never had any trouble with it connecting to my OSI C4 or my SOL-20. Anyway, I broke out my old WIN2000 laptop and hooked it up to the serial line.
Surprise, surprise, I am now able to boot CP/M 1.4 from one of two bootable disks, and also transmit CP/M commands from the WIN2000 machine back to the IMSAI. Finally I am up and running. Not sure what the issue is with my USB adaptor though.

So my next priority is to backup the bootable floppies. The floppies that do boot, don’t boot consistently. They boot 50% of the time, but also have their fair share of BDOS errors etc.
But I’m confident that if I can get it to boot then a copy can be made.

I did DIRectory listings on all the floppies that came with the machine in the hopes I could find some software that can help. Unfortunately disk manipulation software on the disks is limited.

No FORMATing program.
No SYSGEN.
I do have PIP on one disk (although I haven't tested it yet),
and a COPY.COM program on a few other disks.
Thats it!

Launching the COPY.COM I get the following:

COPYDSK - VER 1.2

OPTIONS:
"A" = COPY ALL TRACKS
"O" = COPY TRACKS 0 AND 1
"F" = COPY FROM TRACK 2 TO END OF DISK
"E" = EXIT TO CP/M (INSERT SYSTEM DISK FIRST)

PUT SOURCE IN DRIVE A, DESTINATION IN DRIVE B
AND ENTER SELECTION:


There is no option to FORMAT the disk, and I’m wondering if a FORMAT is needed before I use this COPY program, or wether the COPY.COM program formats the disk as part of the process.

I did actually try to do a COPY using this program on one of the bootable disk, but the reaction from the drives was a little startling. Both drive A and B heads lowered and lifted repeatedly, Clank, Clank Clank… So I quickly stopped that incase I ended up destroying the boot floppy.
At one point I tried doing a DIRectory listing on drive B, and also got a similar head Clank, Clank reaction. I’ll have to look into this further.

So I’m wondering if anyone knows what my options are for making a bootable backup?
My best guess is that I now need to install a Monitor program in EPROM which will probably live just above the FF00h CP/M boot EPROM. I could (possibly) boot CP/M so it’s in memory, reset then launch the Monitor program, then find and dump a CP/M 1.4 FORMAT program over serial to 100h, and execute it.
If that works and I can FORMAT a blank disk, then maybe I could try COPY.COM again, or try dumping a single drive COPY program, or even CP/M 1.4 SYSGEN….or something else???

I’m not actually sure if this is the best way to go, there are probably better options. If you think you have a better approach with more chance of success, I’m all ears.

***UPDATE***
Here is list of everything on the disks:

MBASIC DISK
A: MBASIC COM
A: STARTRK ASC
A: LOAN ASC
A: PORTVAL5 BAS
A: COPRAN ASC
A: MORTG ASC
A: BLKFRI3 BAK
A: GETPUT ASC
A: BLKJK ASC
A: CHESS ASC
A: BIO ASC
A: DEVPRO2 ASC
A: REMBAL ASC
A: TRADE BAK
A: WUMP ASC
A: GLMENU BAK
A: TRADE ASC
A: BLKFRI3 ASC
A: PORTVAL5 BAK
A: CPINDEX BAS
A: PORTVAL BAS
A: TIMEGAIN BAS
A: GLMENU ASC
A>

CP/M 2.2 SELECT DISK
A: PIP COM
A: PRACTICE DOC
A: PRACTICE SEL
A: SEL0000 SIS
A: SEL0100 SIS
A: SEL0200 SIS
A: SEL0300 SIS
A: SEL0400 SIS
A: SEL0500 SIS
A: SEL0600 SIS
A: SEL0700 SIS
A: SEL0800 SIS
A: SEL0900 SIS
A: SEL1000 SIS
A: SEL1500 SIS
A: SELCAT1 FIL
A: SELCAT2 FIL
A: SELDATAD FIL
A: SELDIAGS FIL
A: SELECT COM
A: SELHELP FIL
A: SELINST FIL
A: WHATSUP $$0


GAMES DISK
A: ADVENT10 DAT
A: ADVENT11 DAT
A: ADVENT12 DAT
A: ADVENTD1 DAT
A: ADVENTD2 DAT
A: ADVENTD3 DAT
A: ADVENTD4 DAT
A: ADVENTD5 DAT
A: ADVENTD6 DAT
A: ADVENTD7 DAT
A: ADVENTD8 DAT
A: ADVENTD9 DAT
A: ADVENTUR COM
A: CALENDAR COM
A: LIFE COM
A: MM COM
A: OTHELLO COM
A: PACMAN COM
A: TTT COM
A: CALENDAR
A: BNCH BAK
BDOS ERR ON A: BAD SECTOR


BLANK DISK
A: BNCH BAK
A: BNCH INT
A: BNCH BAS
A: BNCH COM


SELECT DISK
A: SEL0200 SIS
A: SEL0100 SIS
A: SEL0300 SIS
A: SEL0500 SIS
A: SEL0900 SIS
A: SEL1000 SIS
A: SEL1500 SIS
A: SELDATAD FIL
A: SELDIAGS FIL
A: SELINST FIL
A: SEL0000 SIS
A: SEL0800 SIS
A: SELCAT1 FIL
BDOS ERR ON A: BAD SECTOR
A: SEL0600 SIS
A: SELECT COM
A: SEL0400 SIS
A: SELINST $$$
A: SELHELP FIL


WORK DISK
A: CRUN2 COM
A: PRINT PRN
A: PRINT HEX
A: CURSOR BAS
A: SUBS1 BAS
A: CRTFM INT
A: INVOICE BAK
A: RESUME TXT
A: RESUME1 TXT
A: GLMENU ASC
A: RESUME3 TXT
A: DICK TXT
A: PRINT ASM
A: PRINT COM
A: RESUME4 TXT
A: COPY COM
A: CBAS2 COM
A: INVOICE TXT
A: MICROFI2 TXT
A: DEVPRO3 ASC
A: TEL-LOG TXT
A: NAMES BAS
A: DEVPRO2 ASC
A: FILE
A: RESUME5 BAK
A: NAMES1 ASC
A: RE-ANAL TXT
A: THOMP TXT
A: AZ-INV TXT
A: DUBOIS TXT
A: REVFORM BAS
A: REVFORM1 BAS
A: RE-COMP TXT
A: BEAL PRO
A: QUICK1 BAS
A: DUBOIS1 TXT
A: DUBOIS2 TXT
A: RR-JACK TXT
A: DUBOIS3 TXT
A: 2012MOR PRO
A: NEW-OFF TXT
A: SNOOPY ASC
A: MOHAVE TXT
A: 1284GHM TXT
A: 724PARK TXT
A: XD COM
A: MICRO-FI TXT
A: ELVADO MKT
A: PERDATA TXT
A: RESUME5 TXT
A: BAK
A: MICROFI1 TXT
A: RESUME2 TXT
A: RESUME7 TXT
A: NEWHOR TXT
A: 1284BRO TXT
A: VENDOR
A: PART


NO NAME DISK (WITH LABEL)
A: CRUN2 COM
A: G/L000 INT
A: G/L010 INT
A: G/L020 INT
A: G/L030 INT
A: G/L040 INT
A: G/L050 INT
A: G/L070 INT
A: G/L080 INT
A: CRTFM INT
A: G/L0F020 DAT
A: G/L0F030 DAT
A: G/L0F130 DAT
A: G/I0F010 DAT
A: CRT/GL
A: CRT
A: ADDFILE DAT
A: WORKFILE DAT
A: G/L0F110 DAT
A: COPY COM


Thanks again for everyones support.

Phil

tezza
May 1st, 2015, 01:49 AM
Awesome! Well done Phil!
T
ez

Nama
May 1st, 2015, 03:54 PM
Yes...very happy with the progress.
It just comes down to persistence, and trying things out logically :-)

Just need to figure out how to copy these boot disks, then I can put the cover back on the beast, and start playing some StarTrek
:-)

deramp5113
May 1st, 2015, 04:42 PM
I've used COPY.COM on a number of Lifeboat CP/M distributions. It is a track-by-track copy, so this effectively formats the disk as it copies each track. Waaaaay faster than doing a FORMAT, and then using PIP to copy all files, and then running MOVCPM, and then running SYSGEN.

Your head clanging may have been normal - was the clanking alternating between the two drives, and if so, at about what rate?

Mike

Nama
May 1st, 2015, 07:04 PM
Thanks for the confirmation on COPY.COM. That helps a lot.
Yes, I've wondered if it was normal behaviour. The heads do indeed alternate as would be expected, I just thought the rate was a little to high. Its hard to estimate the speed, but I'd say maybe 3 up-down cycles/second/head.

I'll try COPY.COM again this evening, but first I'll and to copy a non-boot disk.

Thanks

Nama
May 1st, 2015, 08:10 PM
Just tried booting CP/M again. Unfortunately now I can't boot from one of the previously working floppies, which leaves me down to one working floppy. and even that one only boots about once on 10 attempts. Oh dear...what to do.

MicrocomputerSolutions
June 9th, 2015, 05:40 PM
I would guess that at least one of your drives is out of alignment.

Using a drive that is out of alignment to write on a disk that was created or written on by another drive can make the disk unreadable on other drive/s, even if the disk was originally written on the other drive/s.

I suggest getting your floppy drives serviced, and don't write on any disk that already has information on it until then, because you will render it/them unreadable.

I can service your drives (for a fee of course). I've been servicing Shugart floppy drives since the 1970s.

Nama
October 7th, 2015, 07:18 PM
Sorry for the late reply.
Yes, certainly a service would be great idea, however I'm in New Zealand so unless I can find someone here how can do a professional job, then I'm probably out of luck.

retrogear
October 8th, 2015, 06:48 AM
Covering the basics:

I assume you don't have a cleaning disk? Can you open the drive covering enough to access the heads? Reaching in with Q-tip and alcohol can do the job.
Oxide buildup especially from old media can hinder the boot process too.