| 33 | |
| 34 | (I have confirmed this wiring, and compared it with existing documentation of the Z80 machines which are more known). |
| 35 | |
| 36 | I suspect the 74HC175 could be used to convert from Motorola to Intel bus style, then? And provide separate /OE and /CE signals to the cartridge (and possibly /WE if a writable cartridge exists). But it's strange to use a flip flop gate for that? |
| 37 | |
| 38 | = A look at the ROM = |
| 39 | |
| 40 | The ROM dump is attached to this page (see attachment section at the bottom) and I'm in the process of disassembling and studying it. |
| 41 | |
| 42 | It is based on the 68HC05 CPU which is a ver simple CPU core. To workaround the limitations of the CPU, a set of short subroutines are used (for example to push and pop the A and X registers from a software managed stack), as well as code generation on the fly (usually writing generated code at addresses 5F to 62, which must be in some internal RAM). |
| 43 | |
| 44 | Registers have been identified that likely handle memory mapping. They are read-write, so it's possible to know the current bank number. |
| 45 | |
| 46 | - $29: Selects what is banked at 4000 |
| 47 | - $2A: Selects what is banked at 8000 |
| 48 | - $2B: Selects what is banked at D000 |
| 49 | - $2C: Selects what is banked at C000 |
| 50 | |
| 51 | Page at 4000 is used to map 16K segments of the ROM. Each segment begins with a jumptable in the form of several JMP instructions. |
| 52 | |
| 53 | The section at 2000 onwards is always visible by the CPU and a large part of it is code that selects a bank and then jump to a specific routine inside it. It also contains the subroutines mentionned above (stack management, ...) and some other code (uppercase/lowercase ASCII detection). |
| 54 | |
| 55 | ASCII strings in the ROM are terminated with an FF byte. |
| 56 | |
| 57 | No 68HC05 style reset vector found in the ROM so far. I suspect (from MAME stub drivers) that there is an internal ROM in the 68HC05 that does the reset and early init. I don't know how much of it will be needed. So far I found nothing that appears to jump outside the ROM space or otherwise use the internal ROM, but I have only disassembled a couple kilobytes of code in the resident bank. |