• Please review our updated Terms and Rules here

How did most implement a serial port with an Intel 4004?

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
2,264
Location
USA
Did they use the I/O ports on ROM's / RAM's to control a serial IC ? Or a 4003? Wikipedia says about the 4003:

4003: 10-bit parallel output shift register for scanning keyboards, displays, printers, etc.

But the datasheet shows parallel outputs so I'm not seeing how it would "scan a keyboard'.
 
But the datasheet shows parallel outputs so I'm not seeing how it would "scan a keyboard'.

Assuming we’re taking about scanning an X/Y matrix one thing you could do with a parallel out shift register is connect the outputs to one axis of the matrix, an input port to the other axis, and by shifting a single “1“ or “0” around in a circle you can read one line of keys at a time. If you’re an overly clever boy you could even use the read pulse for the input port as the clock signal for the shift registers so the row is autoincremented on every read, maybe?

Tricks like this were pretty common in 70’s computers. I vaguely recall the Commodore Dynamic PET motherboard uses a bit cycling through a shift register to coordinate video and DRAM timing?
 
I was looking at a Busicom 141-PF page that analyzes the source code and they were using ROM #1's 4 input I/O's along with a shift register.

Were there any UART's at the time of the Intel 4004? Did anyone try to interface one of them?
 
I was looking at a Busicom 141-PF page that analyzes the source code and they were using ROM #1's 4 input I/O's along with a shift register.

Were there any UART's at the time of the Intel 4004? Did anyone try to interface one of them?
The WD 1402 was available from 1971. Did anyone try to interface one with a 4004? Probably but the 40 pin UART was likely more expensive than the 4004 in the mid-70s.
 
For interfacing to a teletype, almost certainly bit-bang, I would guess. Even in the later days of the 8085, some low-speed systems did bit-banging using the RIM/SIM instructions. It doesn't take much code to do it, particularly when talking with a dedicated (hard wired) peripheral like an ASR.
 
Back
Top