• Please review our updated Terms and Rules here

IMSAI fix pt3

Nama

Veteran Member
Joined
May 22, 2009
Messages
851
Location
New Zealand
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/vcf...uilding-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
 
Last edited:
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

Code:
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
 
F400h-F7FFh

Code:
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
 
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?
 
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 Jumpers V1.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
 
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
 
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
 
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.
 
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.
 
Last edited:
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
 
Last edited:
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.
 
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
 
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:
Code:
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
 
Last edited:
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
:)
 
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
 
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
 
Back
Top