prime
Experienced Member
Hi all,
I finally think I've got to the bottom of the problems I was having with interfacing a DS12887 with the PC-RETRO board.
The PC-RETRO is a chip for chip copy of the 64K-256K 5150 board and so therefore has all it's problems / limitations, namely incomplete address decoding of the I/O space.
I intially tried the interface at I/O 0x140, 0x141, that initially seemed to work then the next day just returned gibberish.
So next I tried the "standard" AT compatible location of 0x70,0x71, and to my surpprise writing to it beeped the speaker and killed the keyboard.
So I went off and studied the IBM tech ref manual, seems that in the second instance the PPI at 0x60, is allocated a block of 32 bytes, so I was hitting a mirror of that at 0x70.
But an interesting thing was that in the tech ref for the 5150 (section 1-10 system unit), it lists 0x100-0x1FF as "Not usable", looking at the schematic I'm not sure why, but that did seem to be the case which is why 0x140 didn't work.
Interestingly the 5160 tech manual doesn't list anything for this range, but seems to have the same decoder circuit so I assume would have the same problem.
Anyway adjusted the hardware (and software) to address it at 0x240, 0x241 and it appears to be working absolutely without problems.
Oh and curses to IBM not deocding A10-A15 of the I/O space meaning that everything above 0x400, is just mirrors of 0x000-0x3FF
Cheers.
Phill.
I finally think I've got to the bottom of the problems I was having with interfacing a DS12887 with the PC-RETRO board.
The PC-RETRO is a chip for chip copy of the 64K-256K 5150 board and so therefore has all it's problems / limitations, namely incomplete address decoding of the I/O space.
I intially tried the interface at I/O 0x140, 0x141, that initially seemed to work then the next day just returned gibberish.
So next I tried the "standard" AT compatible location of 0x70,0x71, and to my surpprise writing to it beeped the speaker and killed the keyboard.
So I went off and studied the IBM tech ref manual, seems that in the second instance the PPI at 0x60, is allocated a block of 32 bytes, so I was hitting a mirror of that at 0x70.
But an interesting thing was that in the tech ref for the 5150 (section 1-10 system unit), it lists 0x100-0x1FF as "Not usable", looking at the schematic I'm not sure why, but that did seem to be the case which is why 0x140 didn't work.
Interestingly the 5160 tech manual doesn't list anything for this range, but seems to have the same decoder circuit so I assume would have the same problem.
Anyway adjusted the hardware (and software) to address it at 0x240, 0x241 and it appears to be working absolutely without problems.
Oh and curses to IBM not deocding A10-A15 of the I/O space meaning that everything above 0x400, is just mirrors of 0x000-0x3FF
Cheers.
Phill.