Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

SOL-20 Memory Management Dilemma

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    SOL-20 Memory Management Dilemma

    I wanted to try out the Compupro Spectrum board in my Sol. After trying the Matrox ALT-512/256 and the Dazzler I found that BASIC was an invaluable tool, to learn the card's registers, before moving to an 8080 assembly language routine.

    I run MBASIC in CP/M and it is a big program, using up half the 48k memory.

    I have been running the 64k SCP110 static RAM card, it had an address decoder for disabling applications, but its logic its used up to disable the card above BFFFH. This card though can inhibit 4k blocks of memory. I looked at the Compupro RAM17, but that one has the facility to inhibit the memory for 16k blocks, not leaving enough spare RAM.

    To run the Spectrum card, MBASIC and CP/M and still have some area left for transient programs I needed to have the SCP110 card inhibit above 48K (as usual) but also over a 8k range, say from 6000H to 7FFFH, because this is the space or a block required for the Spectrum's RAM, which when the spectrum is not activated, just acts as ordinary system RAM.

    I have attached a "memory map" of my SOL. The thing is that I didn't want to modify the SCP110 card or the RAM17 card hardware as they are valuable (to me at least), but I noticed that if I unplugged the jumper on the output of the address decoder on the SCP110 card, I could plug it onto a custom pcb which would deal with the required deactivation of the SCP card over an 8k address range and then I could have no modification to the actual SCP110 card.

    I think there is also a way to Phantom the memory out using that line in the SOL, but I struggle with the software, say to integrate that into test programs and a hardware solution seemed suitable, but is there another more simple/easy way to do it than at the hardware level ?

    (I didn't have a 74LS640 in my parts box, so I had to use the '642 with some pullups because its open collector)
    Attached Files
    Last edited by Hugo Holden; November 18, 2020, 03:21 AM.

    #2
    What disk controller are you using in the Sol? Maybe you could run the Spectrum card in high RAM address like D000-EFFF depending on your disk controller. The North Star controllers can't be moved. A Micropolis controller is easily moved and CP/M does not even have to be patched.

    Mike

    Comment


      #3
      Originally posted by deramp5113 View Post
      What disk controller are you using in the Sol? Maybe you could run the Spectrum card in high RAM address like D000-EFFF depending on your disk controller. The North Star controllers can't be moved. A Micropolis controller is easily moved and CP/M does not even have to be patched.

      Mike
      I have the N* double density controller at E800.

      At D000, where there was some space available I made a ROM card (using two Sol personality cards). On that I have a few useful programs where I can test memory, write to blocks of memory. That is also helpful in testing the graphic's cards so I need to keep that running.

      I also have a program called MEMMAP, I got from a textbook which shows how much of the memory is used by CP/M. But when I filled the whole memory with all the same byte and ran CP/M, I found that CP/M actually used a little more memory in high memory than the MEMMAP program reported, that is how I figured out how much free memory I would have left over just below CP/M and in the gap to where the Spectrum card will be.

      Comment


        #4
        I'm not sure, are you trying to use software to activate phantom? I believe it is normally done by a hardware circuit. When the card that you want to control a portion of RAM spare that card pulls pin 67, phantom *, down. If the controlling card has a select signal for that chunk of RAM then that could be fed out to pin 67 with an open collector gate and disable the other board(s). Else, a lot of processing time would be eaten up testing memory addressing to see if the CPU is trying to access that range of RAM.

        Perhaps you could make a small circuit on a prototyping S-100 board that could test RAM addressing and issue phantom to the bus if the requested address was within the lower and upper memory range and allow some other board that wasn't looking for phantom (disabled) to still control that RAM range. Would work if there was only one such need for phantom control in the system.
        Crazy old guy with a basement full of Pentium 1 laptops and parts

        Comment


          #5
          If you have a S100 extention card, you can hack a memory remapper to it. It wouldn't work well in the case. If you don't mind tacking wires to your memory board, you can use Kevlar tape to isolate the offending address pins from the bus and put your hack card on there ( not cuts needed ).
          Dwight

          Comment


            #6
            Originally posted by DeltaDon View Post
            I'm not sure, are you trying to use software to activate phantom? I believe it is normally done by a hardware circuit. When the card that you want to control a portion of RAM spare that card pulls pin 67, phantom *, down. If the controlling card has a select signal for that chunk of RAM then that could be fed out to pin 67 with an open collector gate and disable the other board(s). Else, a lot of processing time would be eaten up testing memory addressing to see if the CPU is trying to access that range of RAM.

            Perhaps you could make a small circuit on a prototyping S-100 board that could test RAM addressing and issue phantom to the bus if the requested address was within the lower and upper memory range and allow some other board that wasn't looking for phantom (disabled) to still control that RAM range. Would work if there was only one such need for phantom control in the system.
            Thanks, I was not exactly sure how the phantom system was supposed to work.

            It is an interesting thing with the Spectrum card, because when its not activated for graphics activities, it is still active in the sense that its video RAM becomes general RAM filling the address range that the card occupies, so in a sense that solves one problem when it is fitted to the computer. The SCP-110 card though didn't have enough hardware on it to simultaneously knock it out over 48k and also create an 8k hole in the rest of its address space.

            Still, at least what I made works, without having to cut any tracks etc, but it does require the extra card and in the case of the SOL-20 I always seem to be looking for extra card slots!

            Comment


              #7
              .... it turned out just by coincidence that this address decoder board I made will be useful when I install the Bytesaver II, to deactivate the SCP-110 memory card over the range when the Bytesaver will operate. (I'm still awaiting the Bytesaver to arrive in the post !)

              Comment


                #8
                Originally posted by Hugo Holden View Post
                I wanted to try out the Compupro Spectrum board in my Sol. After trying the Matrox ALT-512/256 and the Dazzler I found that BASIC was an invaluable tool, to learn the card's registers, before moving to an 8080 assembly language routine.

                I run MBASIC in CP/M and it is a big program, using up half the 48k memory.

                I have been running the 64k SCP110 static RAM card, it had an address decoder for disabling applications, but its logic its used up to disable the card above BFFFH. This card though can inhibit 4k blocks of memory. I looked at the Compupro RAM17, but that one has the facility to inhibit the memory for 16k blocks, not leaving enough spare RAM.

                To run the Spectrum card, MBASIC and CP/M and still have some area left for transient programs I needed to have the SCP110 card inhibit above 48K (as usual) but also over a 8k range, say from 6000H to 7FFFH, because this is the space or a block required for the Spectrum's RAM, which when the spectrum is not activated, just acts as ordinary system RAM.

                I have attached a "memory map" of my SOL. The thing is that I didn't want to modify the SCP110 card or the RAM17 card hardware as they are valuable (to me at least), but I noticed that if I unplugged the jumper on the output of the address decoder on the SCP110 card, I could plug it onto a custom pcb which would deal with the required deactivation of the SCP card over an 8k address range and then I could have no modification to the actual SCP110 card.

                I think there is also a way to Phantom the memory out using that line in the SOL, but I struggle with the software, say to integrate that into test programs and a hardware solution seemed suitable, but is there another more simple/easy way to do it than at the hardware level ?

                (I didn't have a 74LS640 in my parts box, so I had to use the '642 with some pullups because its open collector)
                I was searching through some old threads and found this one of yours. I've been looking for a Sol memory map, and your attachment was perfect. It was very similar to one I'd seen before and it's a welcome addition to my new Sol notebook I've been putting together.

                Comment

                Working...
                X