|
Emulator /
MemoryAndInterruptClass: ProcMemIOTsMemory is always the easiest to emulate... In our case we have an array of 32k of integers. Only 12 bit of the 32 are used; maybe we find a use for the extra bits... The PDP8 instuctions can only address 4k: thus we have effectively 8 banks of 4k. In order to address these banks we need an extra feature, and this is where the memory IOTs come in. (See under 128K Memory extension for the extended version we implemented: 32 banks of 4k) A description of these IOTs is shown in KM8-E Memory Extension of the Small Computer Handbook Part of the Multi8 MMU also has a part in these processes: it remaps a virtual bank to a real 4k bank. A listing of the Multi8 IOTs is shown in Multi8 IOTs This MMU contains a 8x3 bit relocation memory (RAM) that can be loaded by the LRM IOT. When the processor is in User Mode each memory reference by the processor is relocated by the MMU. Recall that the extended memory address for processor cycles is developed by the Memory Extension Control (either from the Instruction Field Register or from the Data Field Register). During relocation this (virtual or processor) extended memory address is used to select a (3-bit) word in the Relocation Register, giving the real or bus extended memory address. The other part of the MMU consists in selective trapping (or 'untrapping') providing the capability to select by software which IOTs should be trapped if executed in User Mode and which not. So software may (by loading certain registers in the MMU) specify that e.g.. the CDF/CIF 30 instructions are not to be trapped. This makes it possible to dynamically control the access of user programs to various memory fields. CDF/CIF instructions that are un-trapped, and RDF and RIF are executed by the hardware, without the (large) emulation overhead. This means that the larger part of the emulation overhead normally experienced in foreground/background operation is eliminated. Naturally basic instructions having to do with trapping in user mode are part of the original PDP8, A description of these IOTs is shown in KM8-E Time-share Option of the Small Computer Handbook In the PDP8.Tests folder you will find the respective test programs. They are also stored on disk MyProgs-22-04-07 of Disks.Working as .SV save files.
The emulator passed all four tests. |