LC //e Card - I/O Addresses


Locations with undefined reads in the $C000-$C07F range tend to return the last key pressed.

Address R/W Use
$C028 R/W Switch to main firmware (undocumented).
$C029 R/W Switch to alt firmware bank (undocumented).
$C02B R/W Bits in table below.*
$C05C R Bit 2 = speed selected in option panel (1=fast).*
$C072 W The firmware (Int CX ROM and PFI) write either $5A or $00 here.**

* See TN.AIIE.10.

** Writes to $C072:

Who Where Value
INT CX $C4AB $00
INT CX $C579 $5A
PFI 0 $D445 $5A
PFI 0 $D470 $00
PFI 0 $F5EF $00
PFI 0 $F60B $5A
PFI 1 $D4BC $5A
PFI 1 $D519 $00
PFI 1 $F178 $5A
PFI 1 $F205 $00

$C02B Bits

Bit Use
6 Cleared at $C41C in Int. CX ROM, set at $C573
5 See below
4 See below
3 Set Alt FW Bank, 0=D1, 1=D2.
2 Set CPU speed (1=fast). Documented.
1 3.5" signals on disk port
0 3.5" signals on disk port

The PFI code always sets bits 4 and 5 after storing $5A into $C072, and always clears bits 4 and 5 after storing a zero into $C072. This appears to enable writing to $C8-space.


Clock Card

The clock card has the following in it's I/O locations most times:

Offset Dir Use
00 R/W Firmware writes here, perhaps as a control register, the value written here is readable
01 R Reading this location continuously returns the date and time in the ThunderClock format
02 ? Unknown (always $FF?)
03 R The firmware uses this location
04-07 R Some kind of counter, seems to always be 7 more than the 08-0E value
07 R A different counter value
08-0E R Yet another counter value
0F R And we have another counter

Changing the date/time in the Macintosh control panel while the //e is running causes the 01 offset value to return continuous 8D (CR). The firmware is able to fix this, but I haven't figured out how, yet.

The characters out of the 01 offset are msb off, except for the CR value.