Master 128
==========
Sideways ROMs
F Terminal
E View
D ADFS
C Basic
B Edit
A Viewsheet
9 DFS
8 Socket (ANFS)
7 RAM
6 RAM
5 RAM
4 RAM
3 Cartridge
2 Cartridge
1 Cartridge
0 Cartridge
Memory Map
0000-2FFF main RAM
3000-7FFF screen RAM or Shadow RAM
8000-BFFF sideways ROM/RAM
(8000-8FFF 4k MOS RAM)
C000-DFFF MOS or Filing System RAM
E000-FBFF MOS
FC00-FCFF FRED
FD00-FDFF JIM
FE00-FEFF Sheila
FF00-FFFF MOS
50 Bytes of CMOS Ram in a 146818 Real time clock and Ram chip
(probably I/O mapped somewhere - appears to be on the system via slow data
bus instead of the speech processor)
NB. In mode 135 (Shadow Mode 7) the MOS uses the extra 19K of shadow ram to
increase the speed of inter-filing system transfers (*MOVE).
Private Ram
8000-83FF Soft key expansion buffer
8400-87FF VDU Workspace (Flood fill only)
8800-88FF VDU variables and ECF
8900-8FFF Character definitions (Software fonts)
C000-DBFF Paged rom workspace
DC00-DCFF MOS Cli buffer
DD00-DEFF Transient utility workspace (*MOVE)
DF00-DFFF MOS Private workspace
Rom Select Register (ROMSEL) at &FE30
b7 b6 b5 b4 b3 b2 b1 b0
RAM 0 0 0 PM3 PM2 PM1 PM0
RAM (bit 7) : 1 - Map 4K MOS Ram into &8000-&8FFF
PM0-PM3 : Determine sideways rom/ram paged in.
Access Control Register (ACCCON) at &FE34
b7 b6 b5 b4 b3 b2 b1 b0
IRR TST IFJ ITU Y X E D
IRR (bit 7) : 1 - Cause an IRQ to the CPU
TST (bit 6) : 0 at all times
IFJ (bit 5) : 1 - &FC00-FDFF directed to cartridge
0 - &FC00-FDFF directed to 1Mhz bus
ITU (bit 4) : 1 - CPU can access internal co-pro
0 - CPU can access external co-pro
Y (bit 3) : 1 - &C000-DFFF 8K Private ram
0 - &C000-DFFF VDU driver code (MOS)
X (bit 2) : 1 - 20K Shadow ram at &3000-7FFF
0 - Main ram at &3000-7FFF
E (bit 1) : 1 - Causes either the main or shadow RAM to be accessed in
locations 3000-7FFF depending on the current operation.
RAM in the main map is accessed in all cases except when
the address of the current operation code lies in the range
C000-DFFF, ie within the MOS VDU code.
0 - All accesses to locations 3000-7FFF are directed to the
RAM in the main map.
D (bit 0) : 1 - Causes the shadow ram to be displayed by the CRT
0 - Causes the main memory to be displayed by the CRT
CMOS Ram Allocations
0 Econet station number
1-2 Econet file server ID
3-4 Econet printer server
5 Default filing system/language
6-7 Rom frugal bits (*INSERT/*UNPLUG)
8 EDIT Startup options
9 Reserved for telecommunication applications (modem?)
10 VDU Mode and *TV settings
11 ADFS Startup options, Keyboard settings, floppy drive parameters
12 Keyboard auto-repeat delay
13 Keyboard auto-repeat rate
14 Printer ignore character
15 Default printer type, serial baud rate, ignore status, tube select
16 Default serial data format, auto boot option, internal/external tube,
Bell amplitude
17-19 ANFS
20- Spare
Keyboard Table - Extra Master Keypad Only
C10 C11 C12
R0 4 5 6
R1 0 1 3
R2 # * ,
R3 / DEL .
R4 + - RET
R5 8 9
R6 6 7
R7
NB. No keyboard links (it's in CMOS!)
During idle (free run) mode depression of any keys other than SHIFT/CTRL
will cause an IRQ to be generated via the system 6522. The keyboard column
lines C0-C12 are continually scanned by incrementing a counter, decoding its
outputs and pulling low a column line. Any key depressed will cause an
interrupt to be generated. A keyboard enable signal (KBEN) is generated to
stop free running mode at which point the counter contents are loaded by CPU
operation to determine on which column the key was pressed. The rows are
then individually selected to determine which key was pressed.
NB. This appears to contrast to the BBC B way of doing things.