HOME RAM banks 1,3,4,6 and most of 7 are used for the RAM disk in 128 Basic the rest of 7 contains editor scratchpads. The HOME bank is paged in the same way as the Spectrum 128, using port 0x7ffd.ĭ0-2: RAM bank (0-7) to map into memory at 0xc000.ĭ3: Select video area to be used by ULA Bank 5 or Bank 7. This does not appear to cause any problems with existing commercial software, although some demos (such as 'Real Action') are affected, but it provides some more memory. This means that the HOME bank is paged like a normal Spectrum 128, except that there is an additional bank at 0x8000 where you would expect to find Bank 2. The TS2068 only has 48KB of base RAM, but the SE has also been expanded to use a variation of the ZX Spectrum 128 paging system to increase the base RAM to 144KB. Reading this port returns the last byte sent to it. Odd banks in the 128 scheme are contended. The contended memory timings for the SE are unknown but should be similar to that for the 48K machine, except that the pattern starts at a different number of T-states after the interrupt, than the usual 14335. On the SE each of these banks is connected to 64KB of RAM, providing an additional 128KB in addition to the base RAM. On a TC2048, BASIC is contained in the 16K ROM area and banks 0-7 and 0'-7' are not normally available, while on a TS2068 part of the BASIC is stored in an 8KB ROM in bank 0' and cartridges plugged into the dock use banks 0-7. When memory is being paged, interrupts should be disabled and the stack should be in an area which is not going to change. Port 0xf4 determines which banks are to be paged in with each bit referring to the relevant bank (0-7 or 0'-7'). Bit 7 of port 0xff determines which bank to use (0=DOCK, 1=EX-ROM). Memory is paged in 8KB banks from either the DOCK or the EX bank, but these banks are mutually exclusive - you cannot page in a bank from both simultaneously. This does mean it is possible to set up a screen and page it out. DOCK and EX banks are overlaid on this bank, but paging over the screen area does not change the RAM used by the ULA. The top 32KB is uncontended but the 16KB screen area below that is contended. The HOME bank is the normal Spectrum memory area. The Timex Horizontal MMU sees the RAM as three banks of memory HOME, DOCK, and EX banks.
Jarek installed his 128 compatibility upgrade to take the RAM to 144KB and then installed a 128KB SRAM connected to the Timex memory management unit.
This means it uses two different systems to access its full 272KB of RAM. The SE combines the RAM paging systems of the Timex TS2068 with the ZX Spectrum 128 and then adds another 16K to that.