Deblocking
I ran into this problem with my MyCP/M projects. The skeleton custom BIOS (cbios.asm) does not cover sector/block sizes other than 128 bytes. Unfortunately I did not read Chapter 12 (Sector Blocking and Deblocking) of the "CPM 2.2 Alteration Guide". So I was caught out. This was the reason I built Grant Searle's CP/M machine. So I could look at a properly working CBIOS. I thought it would be a good platform to prototype my FRAM "chip" disks (thus the expansion port on latest PCB).
This is still a good plan, I just have to learn Z80 assembler (MyCP/M is 8085 based).
Expansion Port
Here is the latest schematic:

And the expansion port:

Unfortunately I access disk hardware partly via I/O space (i.e. disk and page selection) and memory address space (i.e. page data R/W). Grant Searle's access is all I/O space.
Okay, I can adapt. I can use IO1 for data space, IO3/4/5 address space.
Expansion PCB
The expansion PCB then is fairly simple:
- (IO1 OR IO_RD) Reads data from the FRAM
- (IO1 OR IO_WR) Writes data to the FRAM
- (IO3 OR IO_WR) Writes to the low FRAM address latch
- (IO4 OR IO_WR) Writes to the next FRAM address latch
- (IO5 OR IO_WR) Writes to the high FRAM address latch
Here is a schematic two chip disk system:

Note: The W29C040 is a 512kx8 FRAM that uses a 256 bit page size.
TBC ...
AlanX
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.