Image Map Image Map
Results 1 to 5 of 5

Thread: The sol with three brains.

  1. #1

    Default The sol with three brains.

    Having a little time on my hands and some parts in the workshop, I made a project adding two additional PT ROM modules to the SOL. The trick was to get them, unmodified, to interface with the S-100 bus, it required some additional logic IC's.

    The project with the schematic is here:

    So far I have used one module to hold the Memtest program and my "walking man".

  2. #2


    Nicely done, Hugo! I can appreciate the intent if not the details (I'm more of a Heathkit or Dynaco 'Prepare a 3 1/2" yellow wire' level guy. And I tried the various ways of getting the largest CP/M I could - from relocating SOLOS to F000 to phantoming it out. But memory testing in ROM is a nice touch.
    Bob Stek
    Saver of Lost Sols

  3. #3



    Thanks for those remarks.

    I noticed I was porting the Memtest program to the SOL quite a lot. And initially I had a lot of unreliable memory cards that I subsequently repaired. So I thought hey, why not just have the Memtest in the computer ? Plus I like to show off the walking man from time to time. I also learn't fairly quickly that if a program starts to malfunction, first thing: check the memory.

    I made a memory checker of sorts (a little weird but it works) for the 1k general Ram and the 1k video ram on the motherboard. It gets all of the possible symbols the character generator IC can give, puts them into general Ram, moves them to the video ram and repeats and duplicates it over the full screen. So if all the symbols remain normal looking and correct on the screen as it rapidly cycles around and around, then I know that the 1k general ram, the 1k video ram and the character generator IC are all likely good, so it tests three things at once, possibly it could miss a defect, but its still a good test.


  4. #4


    I have been loading some programs into the ROM space and having some interesting experiences.

    I got the MEMTEST program and used the front end of it which loads the entered address range into the HL & DE registors, but then I modified the rest of the program to ask for a byte value. So with this program (I have now put in ROM) I can put any byte I like into any part or the entire 48k of RAM. So I can erase or fill the ram so to speak. This is handy because rather than just having random bytes (that you get after the computer powers on) I can now see where various programs end in memory or what parts of the memory get used by those various programs with a memory dump.I call this program MWIPE.

    Then I decided to try to use the TRAIN program (which is a moving graphic of a choo choo train) in the ROM.

    I hadn't had difficulty with my "Walking Man" graphic, or MEMTEST or WMWIPE, so I figured that the TRAIN would be easy.

    My Walking man doesn't use any general RAM aside from its program listing, only video RAM. But the TRAIN program uses the system RAM above the end of the formal program. So although if you look at the .ENT file, it only is 0186h bytes, or 391 bytes total, it in fact uses memory all the way from 0100h to about 0986h when its running. Or about 2182 bytes in total. So after realizing that, I'm happy that my Walking Man program was probably fairly efficient after all.

    But to run the Train program in ROM at a high address (0DA00h) in this case, where there is no RAM above it, I had to modify the last two lines of the Train.asm program, so it still used the addresses in lower system RAM that it did when the program was located at 0100h. It had me wondering for a while. It is working now and safely tucked away in one of the MM5204 ROMs.

    I find it very difficult to understand other people's code, even when commented, perhaps because I can barely understand my own.
    Last edited by Hugo Holden; May 8th, 2020 at 03:03 AM.

  5. #5


    Quote Originally Posted by Hugo Holden View Post

    I find it very difficult to understand other people's code, even when commented, perhaps because I can barely understand my own.

    🤣 Way back when, I was very proud of being able to write a 13 byte callable-from-BASIC5 subroutine! With only high level language experience since then, compared to me I consider you an expert assembly language programmer! I can generally follow the gross logic, but my mind rebels at anything more than JMP, CALL or RET!
    Bob Stek
    Saver of Lost Sols


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts