I just learned (from reading the manual) that the LabVolt trainer comes with a built-in RAM test in ROM. So I tried it - and PicoRAM failed :-( Only "pages" `0x02` and `0x03` are user RAM on the LabVolt; page `0x00` is obviously the infamous 6502 Zero Page, and `0x04` is memory-mapped IO / hardware, specifically, the PIA sits there. As you know, in 6502 speak, a page corresponds to the high nibble of the 16 bit address, and hence, each page has 256 bytes.
To start the RAM test, you write the start page (`0x02`) into memory cell `0x0000`, and the end page (`0x03`) to `0x0001`. Then you start the program from the ROM address `0xF6B1`. The program then goes through all the test patterns (bytes `0x00` to `0xFF`) and writes and reads back every memory cell in all pages (inclusive and) between start- and end-page; here, from `0x0200` to ` 0x03FF`, 512 bytes of user RAM.
This test *failed* at first, and it failed quickly! It is surprising that the machine was working at all with the LabVOLT... I hence tweaked the firmware a bit by introducing two more `NOP`s when reading the address from the latches, and played with some GPIO settings. After a bit of back and forth, the RAM test finally succeeded!
The firmware version 1.2 has been uploaded to the GitHub repo.
Michael Wessel
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.