The photo shows the board fitted with two 8K RAM chips for a grand total of 16K.
I've replaced them with a 32K RAM and a 64K ROM.
This required modding the PAL equations, and wiring extra address lines
Another issue is that the ROM is mapped from 0000 up, and the RAM from FFFF down.
CP/M needs RAM from 0000 up, so to run CP/M the SCPUB needs to disable ROM so that STEbus memory appears there.
I intend to modify the memory map so that when the ROM is switched out, on-board RAM appears there instead. CP/M is small, so I can fit it and a BASIC interpreter there.
I've looked at the BBC second processor as a model. The boot ROM is a nice small 4K, twice the size of the 6502 version, but there are two software interfaces in there. The first provides the Acorn MOS, the second provides the CP/M interface.
The BBC Z80 second processor BASIC runs as a CP/M application. Jonathan Harston has written utilities to convert it to use the BBC MOS directly: http://mdfs.net/Software/BBCBasic/Z80Basic/
I am nowhere near as experienced as Jonathan, and I found it a lot of work modifying the 2K 6502 MOS ROM, so this look as just as much work and then as much again to figure out the CP/M side.
2018-11-18 Uploaded manual, circuits and original PAL equations
2018-11-18 Uploaded the Intel hex file of a ROM that came with the board. I believe it to be a BASIC compiler for which I have the manual. The manual says there is a ROM 'A' for the Run-Time Package in IC22 (0000-3FFF) and another 'B' for the BASIC in IC23 (4000-7FFF). I have the BASIC ROM and the RTP.
2018-11-22 I have joined the two 16K ROM images into one 32K image which I disassembled, turned into source code as far as I can, and reassembled. The output matches the original ROM data.
2018-11-25 Updated source file and manual for BASIC compiler. More details about i/o addresses, and what they operate. The manual covers everything about the language, machine-code interfacing, multi-tasking, and example programs. The i/o uses serial I/O (easy to port) and the STEbus EPROM programmer described in another project. If you don't have that, the ROM programming commands will not work. There is enough information to port it to other boards. I think I will leave it at that.
2018-12-03 Completed mods for accepting a 32K SRAM and a 64K ROM. Also programmed two GAL chips. The 22V10 has the same logic as the original PAL. The 16V8 is modified so that it will either boot with ROM at 0x0000 and RAM at 0x8000, or have the top half of the ROM appear at 0x0000 and 0x8000 then replace the low copy with RAM. The latter is to allow the implementation of CP/M.
I have programmed the 32K BASIC into the lower half of the ROM. The upper half is reserved for CP/M boot code, but that is a future project. ROM pin A15 is wired to the link that selects the memory mapping, so one link controls both ROM and GAL.
2018-12-05 After fixing some mistakes, I now have partial success - board prints "Press RETURN" on reset, but does not respond to characters coming in. RS232 data signal is reaching the serial chip, I may try the simpler demo program from the SCPUB manual tomorrow.
2018-12-07 Found A10 floating due to track I had broken. Repaired, now compiles and runs BASIC.
The command MLIST reports my BASIC program areas starts at 0xC000, so I would have to mod the ROM to use the full 32K RAM available. For now I prefer to leave 16K space free for paged memory and bus memory space.
The autobaud feature copes with 300 to 9600 baud, but fails at 19200 and over. It is possible to change a byte (CONSOLE_AUTOBAUD_ENABLE_FLAG in the source code) to skip autobaud.
When terminals were not expected to send characters faster than a human typing, it was not possible to choke a computer with text. Now that the PC is the usual terminal, copy-and-pasting programs...Read more »