Actually there are quite a few IO mapped ports on the
M1 but the
keyboard and Video are in the memory map.
The only I/O port used in a cassette-based M1 is, IIRC 0xFF, used for the
casette interface and video mode selection.
In a disk system with an RS232 interface, the RS232 interface takes a
handful of I/O ports (is it 4 in and 4 out?) The disk controller, printer
port, casette-selection relay are all memory-mapped.
In a Model 3, all those (apart form the cassette-select relay, which
doesn't exist!) are I/O ports. Hwoever, since a lot of applciation
software would read the printer port address to determine if a printer
was connecoted, if it was ready, etc, there's a bit of extra circuitry in
the M3 and M4 to make a memory read from the approriate address also read
the printer input port (which can _also_ be read by an IN instruction as
an I/O port), so that such software will run on an M3
THe Model 4 follows the Model 3 in this repsect, but has even more I/O ports
used (sound, clock speed, 6845, etc)
-tony