The default (minimum) ATOM had the following memory map (hex numbers are proceeded with an '#': #F000-#FFFF ROM MM52164 IC20 OS ROM #C000-#CFFF ROM MM52164 IC20 Basic ROM #B000-#B3FF PPI INS8255 IC25 Keyboard, Tape I/O, Speaker #8000-#83FF RAM 2114 ICs 42&43 Graphics and Basic RAM #0000-#03FF RAM 2114 ICs 51&52 Stack and scratch RAM Extensions: #D000-#DFFF ROM MM52132 IC21 Floating point ROM #E000-#EFFF ROM MN52132 Disk Operating System ROM #B800-#BBFF VIA 6522 IC1 Printer Interface #B400-#B7FF Extension PL8 Econet Interface #A000-#AFFF ROM MN52132 IC24 Utilities ROM #9400-#97FF RAM 2114 ICs 32&33 Graphics RAM #9000-#93FF RAM 2114 ICs 34&35 Graphics RAM #8C00-#8FFF RAM 2114 ICs 36&37 Graphics RAM #8800-#8BFF RAM 2114 ICs 38&39 Graphics RAM #8400-#87FF RAM 2114 ICs 40&41 Graphics RAM #3C00-#7FFF Extension PL6/7 Reserved for external RAM #3800-#3BFF RAM 2114 ICs 18&19 Basic RAM #3400-#37FF RAM 2114 ICs 16&17 Basic RAM #3000-#33FF RAM 2114 ICs 14&15 Basic RAM #2C00-#2FFF RAM 2114 ICs 12&13 Basic RAM (FP?) #2800-#2BFF RAM 2114 ICs 10&11 Basic RAM #0400-#27FF Extension PL6/7 Reserved for Eurocards When RAM is placed at #2800 and up, the Basic text is placed there, leaving the #8000 and up region for graphics. The Disk Operating System expansion card added the following to the memory map: #Exxx ROM #0A00-#0A7F 8271 FDC #0400-#09FF RAM Non-Acorn modifications: ROM SWITCHING A single utility ROM was not enough, as many ROMs were devised, so a switching card was created, which could map one of several ROMs on the #A000-#AFFF location. The OS ROM at #F000-#FFFF was changed, allowing automatic paging looking for the command to be executed. This mechanism is similar to the BBC ROM switching. The switching is done with port #BFFF. CMOS RAM The 2114 RAM ICs were not very economic in power consumption, which could lead to power supply problems in extended Atoms. This led to the development of CMOS RAM cards. Initially these cards supplemented the standard memory with a new block from #4000 to #7FFF. Per 2 kByte chip a battery backup and/or write protect could be used. With the falling RAM prices and increasing capacities, eventually the complete lower 32K region was covered. As the PL6/7 buffer assumed the memory ranges #0400-#27FF, #3C00-#7FFF and #Exxx were external, some modification to the mainboard was needed. Graphics RAM in CMOS. The graphics region spanned #84xx-#97xx, or 5 kByte. A 8 kByte CMOS RAM chip replacing the 2114s reduced power consumption and supply additional RAM space, not used by the OS. The covered memory would run from #8000 to #9FFF. More disk capacity, CP/M The original 8271 Floppy Disk Controller chip supported only single density, and the operating system only single sided, 40 track disks. And the chip is unavalilable from the original sources. As an alternative to upgrading the FDC and patch the DOS, the decision was made to combine the project with support for a popular OS of the time: CP/M. A board containing a Z80 CPU, 64 kByte RAM, WD1793, and a interface Z80 PIO was designed. With a small change in the Atom DOS ROM and some basic intelligence in the Z80 boot ROM, both Atom FDC emulation and CP/M support was archieved. Adding an 80 colomn VDU card completed the CP/M configuration. The communication between the Atom and the Z80/FDC card was done via an VIA card. This card implemented an extra 6522 VIA, two 4 kByte ROM sockets and a 2 kByte RAM socket at #0400. The ROM sockets could be mapped from #9xxx to #Fxxx. The primary purpose was to provide a DOS ROM at #Exxx. Mapping #Axxx and #BC00-#BFFF outside the bus This was done with a simple modification called "daktuin" (roof garden). . The signal used to switch #Exxx to the outside of the bus, is now modified to switch #Axxx and #BC00-#BFFF too. When placed in the context, the "daktuin" looks as follows: