I finally got around to posting the code for MemDump, a program I wrote for my 8088 computer (back in July, last year *eye roll*) to display the contents of memory. I have used it extensively so far to see if my interrupts and interrupt vector table (IVT) are installed correctly in low memory.
I restarted my homebrew 8088 computer from scratch, and replaced the original 2 KB of SRAM with 384 KB (I left room in the memory map to add 256 more KB for a final total of 640 KB). I also wrote a firmware program to initialize the interrupt vector table, added an interrupt controller, completely redesigned the control signal demultiplexing circuitry (which both improved the efficiency and decreased the complexity), and wrote a simple demo program to display a memory dump in hexadecimal.
It displays the title, and current segment of memory on the first line. Lines 2-4, it displays the 4 hex characters of the offset, and then 16 characters of memory to the right of the offset.
Due to the small limitations of the 20×4 line LCD screen, I had to cram a lot of information into a small space. I would have liked to have inserted a space or some delimiting character between the right-most character of the offsets and the 16 hexadecimal characters of the memory on the right.
However, I did not have a space to spare, and I didn’t want to decrease the number of hex characters per line, since 16 is a nice number, so I left it.
The final goal is to have it scroll up or down when the user presses the up or down arrows. I haven’t decided if I will limit the program to a maximum of 64 KB, which is the maximum memory per segment, or if I will make it automatically update the segment as the user scrolls past its boundaries.
I plan on releasing the schematics and an update on my 8088 project soon. Right now, this program will only run on my computer, but with the schematics, others will be able to build a compatible model.