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.