Messenger: Difference between revisions

Jump to navigation Jump to search
m
Correction to port decoding
(Correction to amount of RAM overwritten, add description of paging and I/O)
m (Correction to port decoding)
Line 17: Line 17:
The Messenger 1.1 includes an 8k×8 static RAM and an 8k×8 EPROM, although only around 0.5 KiB of code is included, and only the low 256 bytes of RAM are used.
The Messenger 1.1 includes an 8k×8 static RAM and an 8k×8 EPROM, although only around 0.5 KiB of code is included, and only the low 256 bytes of RAM are used.


The Messenger ROM and RAM is paged out by writing to port 0x77, and paged in by reading from port 0x77.  More precisely, paging is triggered by I/O to ports where A7=0, A4=1, A3=0, and A1=1, i.e. (port & 0x009a) == 0x0012.  It is also paged in automatically upon execution of addresses 0x0066 and 0x0067.  The serial port is accessible through most significant bit of port 0xff6f, for both sending and receiving.  More precisely, the serial port is accessed through I/O ports where A13=1, A7=0, A4=0, A3=1 and A1=1, i.e. (port & 0x209a) == 0x200a.  Serial port I/O can be accessed regardless of whether the ROM and RAM are paged in.
The Messenger ROM and RAM is paged out by writing to port 0x77, and paged in by reading from port 0x77.  More precisely, paging is triggered by I/O to ports where A7=0, A4=1, A3=0, and A1=1, i.e. (port & 0x009a) == 0x0012.  It is also paged in automatically upon execution of addresses 0x0066 and 0x0067.  The serial port is accessible through most significant bit of port 0xff6f, for both sending and receiving.  More precisely, the serial port is accessed through I/O ports where A7=0, A4=0, A3=1 and A1=1, i.e. (port & 0x209a) == 0x000a.  Serial port I/O can be accessed regardless of whether the ROM and RAM are paged in.


== Programs with Messenger snapshots support ==
== Programs with Messenger snapshots support ==

Navigation menu