epaell wrote: ↑Sat Jun 29, 2024 12:21 pm
Is it possible to program the ROMs using the processor? I noted the board has a "write enable" jumper and I thought I saw this mentioned somewhere on the forum but I can't seem to find it again. However, after a quick look through the data sheet for the device it looks to me like access to the full address bus (or at least the first 15 bits) is needed to send the appropriate commands for writing to it. With only 16KB (14 address bits) available at a time I guess that's not possible with the current set up?
Yes, although I haven’t yet tested this, my reading of the datasheet indicated that writing of the FLASH ROM should be achievable (in 4KB blocks), as long as you are using at least a 32KB bank (i.e. ability to present the A0 - A14 address lines).
This is required for presenting the software data protection address code sequence.
Once the software data protection sequence is completed, an erasure of a specified 4KB block (within the currently selected bank) would first be completed, followed by the byte-by-byte sequence written (programmed) within the erased 4KB block area.
So, yes, you are correct that this wouldn’t be achievable with the 16KB bank setup that I’ve initially setup my PLD for. I chose this bank size as a default setup, thinking that most users would want the larger 48KB RAM space.
However, the Card can be configured for whatever ROM space(s) you want to allocate within the 64K addressing space of our existing CPU Cards (or even the full linear address space with future 20-bit addressing CPU Cards).
However, you do of course need to re-program your “glue logic” PLD to achieve this.
Note also, that the code performing the ROM write operations would need to be running from RAM, as the ROM content is not available for a read operation until the completion of the erasure / programming operation.
If to be a function of ROM based code, this would first need to be programmatically relocated to RAM for execution outside the ROM.
The ROM Write jumper was included on the ROM expansion card (like on the CPU Card), to allow exploring / experimentation with this possibility.
The thinking being that this might be useful for storing things like non-volatile settings, and such like.