-
My first MC6800 program - Towers of Hanoi on the Heathkit!
06/28/2025 at 13:38 • 0 commentsWell, that was a bit of work to get that running... getting to know the side effects of the built-in firmware / monitor routines for driving the keyboard and display are always a bit of work! I almost went insane yesterday when sequences of `PSHA`, `PSHB` and ` PULB` and `PULA` op-codes consistently "transmuted" into `PSHA`, `PSHA` and `PULB`, `PULB`, and only when actually *running* the code... turns out there was still something slightly off with PicoRAM's timing, that oddly only showed up when accessing the stack. At first I suspected that there was something wrong with the assembler, ASM80.org, or that push/pull are only supported for the `A` accumulator, and that the MC6800 "would correct" these op-code "on the flx". I then replaced PicoRAM with the original 2112 SRAMs, and saw that the problem went away too - ops! After 2 hours of PicoRAM debugging I found that I needed to remove a few `NOP`s... and, problem fxed! There is a new firmware version, 1.3: https://github.com/lambdamikel/picoram-ultimate/blob/main/firmware/v1.3/picoram_ultimate.uf2
Anyhow, after I understood how indexed addressing from the stack using `TSX` and `LDAA <offset>, X` works, I got it running - my first MC6800 assembly program. Thanks again to ASM80.org for hosting a very useful tool online. Here is the code, which might be instructive for anyhow trying to learn how utilize the ET-3400's built-in monitor / firmware ROM routines for their own programs:
https://github.com/lambdamikel/picoram-ultimate/blob/main/software/et-3400/HANOI.A68
I also uploaded the programs to the ET-3400 Google IO group here:
https://groups.io/g/ET-3400/files/9.%20Sample%20Programs/Towers%20of%20Hanoi%20Assembly%20and%20HexAnd, a video too - enjoy!
-
New programs for the Lab-Volt 6502 CPU Trainer - Towers of Hanoi!
06/23/2025 at 23:41 • 0 commentsI ported the 6502-version of the Towers of Hanoi from
https://rosettacode.org/wiki/Towers_of_Hanoi
to the Lab-Volt trainer.It was fun to study the manual and learn how to use the firmware routines for input & output! My HANOI.RAM program can be found on the PicoRAM Ultimate GitHub, as well as the ".a65" assembly source code:
https://github.com/lambdamikel/picoram-ultimateI am also briefly showing two other programs that I found in the Lab-Volt course book; one IO LED PIA test, and a program that adds two numbers and displays the result. These programs are also in the GitHub repo. Enjoy!
-
New Firmware v1.2 Passes LabVolt RAM Test!
06/22/2025 at 19:48 • 0 commentsI 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.
-
Firmware Update and PicoRAM Ultimate Galore!
06/21/2025 at 16:10 • 0 commentsI fixed a slight firmware stability problem with the Microprofessor. The `CLOCK.RAM` program is a good stability test. It runs for hours now without any glitch / crash, so I am assuming that this problem has been fixed. At first I though it was due to noise or requiring 74F373 instead of the 74LS373, but these were red herrings. In the end, the GPIO slew rate and drive strength, as well as the hysteresis config were causing the problem. Fixed in Version 1.1 of the firmware now. And here is video showing all the machines with the new firmware:
-
GitHub repo online!
06/15/2025 at 18:47 • 0 comments -
PicoRAM Ultimate 2nd PCB Revision Working!
06/11/2025 at 15:25 • 0 commentsIt just arrived yesterday evening, and I got up early this morning to check it out. It takes about one hour to assemble. A good stability test is the clock program for the microprofessor; if this runs stable for minutes, then everything is good wrt. timing and such. Passed!
-
Another Game on the Philips MC6400 - Guess the Number!
06/11/2025 at 15:23 • 0 commentsSurprisingly interesting:
-
Load the NIM Game from SD Card
06/07/2025 at 13:34 • 0 commentsI own the MC6400 for a while by now, but never did anything serious with it. Yesterday I typed in the NIM Game from the manual; given that that takes 20+ minutes I never dared to do that before given the lack of reliable storage. This has changed with PicoRAM now. The program is also on the program audio cassette that came with the machine, but I wasn’t able to load any of the programs from the 40+ year cassette. Really enjoying it now.
-
PicoRAM Ultimate and the Philips MasterLab MC6400
06/05/2025 at 14:57 • 0 commentsPicoRAM Ultimate replaces the 1 KB (2x 2114) of SRAM in this SC/MP III (INS8070)-based machine from ~1985. PicoRAM facilitates dump and restore of full memory dumps to and from SD card. We are loading - and running - a simple 1digit hex counter demo program from the manual here.
-
Final PCB in production...
06/04/2025 at 03:22 • 0 comments