Here it is!
The MITS 88-2SIO dual serial port card has the ability to be configured, via a rabbit warren of jumper wires, for either TTL, RS-232, or Teletype mode. Likewise, the baud rate is also selected via jumpers, with separate jumpers for the two 6850 UARTs. So I configured one of the two ports for TTL, but without RTS, CTS, or DCD handshaking; which frees up about six now unused inverters on some 74LS04 ICS, which have the VERY convenient jumper positions made completely easy to use. After reading the 6850 UART datasheet, it appears that the wants to capture data on the rising edge of the clock, which is the opposite of what I saw on the oscilloscope when probing the output of the PS2 keyboard directly, i.e., the keyboard outputs the clock line held high via a 2.2K internal resistor, which then goes low for eleven pulses when the keyboard is sending data. So I think maybe I need to invert it for proper operation.? Well, that turns out to be quite simple, by routing a pin from the Molex connector to an unused gate on one of the 740LS4s, which therefore provides some anti-static buffering, as well as the inverted clock signal, that I THINK that I need.
So I put together a simple 8080 machine language program to read from the keyboard and to write to the data LEDs.
ORG 0000: LDA 0x1f ; reset the UART OUT 0x0a ; configure for 8-bits + odd parity + 1 stop bit LDA 0x1c ; at 1X clock rate OUT 0x0a LOOP: IN 0x0a ; get port status byte AND 0x01 ; mmask for Rx status bit JZ LOOP IN 0x0b ; read the data OUT 0xff ; display on front panel LEDs JMP LOOP NOP NOP
O.K. Then. What now? Obviously need to come up with some code to do the translation of PC scan codes to ASCII, but there is a bunch of other stuff that comes to mind. Like working on the interrupt-driven versions of the I/O routines, and testing the ability of the Altair to also send and receive MIDI data, using the interface module that I am also working on, even though that module will eventually be equipped with something like an Arduino Every, as I have discussed previously.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.