Well a short time since I last posted. Much progress but still not finished.
I believe that the sd card writing problem is solved. I used Bob Doyle's VHDL code from his (any) PDP8. His approach to using the sd card for storage was to completely stop the execution of PDP8 instructions while the mass storage operation was in process. My translation and integration into my PDP8e took the approach that I would use the data break operation (DMA) like the original PDP8. The net result was that reading worked OK, but writing did not have the word from memory before the first word was sent to the sd card, resulting in an octal 0000 as the first word, then every other word was shifted up one address. Several changes were made in the sd.sv file to change the state machine to pre-fetch the first word so it was available before the first write to the sd card.
The next problem I categorized as random jumps, executing off in the weeds, or crashes. This address where this was happening was 76xx. When I poked this into a google search, the IA came back with that this was likely because the disk was not ready. I had hi-jacked an LED in the state display to indicate when the "disk" was ready. When I looked at it when one of these occurrences happened, the "disk" was not ready! I have not tracked this problem down yet.
The third problem was communication between the PDP8e and OS8. Both minicom and picocom don't work properly with OS8. I have a set of utility programs written by David Gesswein on my computer. They are part of the dumprest package. It has a dumb terminal program in it. When I tried to compile the "dumbterm" program in that package it failed for a number of reasons. The programs appear to have the last changes made in 2001. My compiler is gcc 15.2 There have been numerous upgrades to C and to the standard libraries in the past 25 years! I modified the source until I got clean compiles, and it almost works correctly. Then I remembered Doug Ingram's console serial device. It includes a terminal program, when I tried it, it works properly. I am now torn as to fix the dumb terminal bug or try again with code from the console serial device.!
No comments:
Post a Comment