User Tools

Site Tools


sd:the_paradox_of_the_perfect_virtual_computer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
sd:the_paradox_of_the_perfect_virtual_computer [2026/06/19 09:24] appledogsd:the_paradox_of_the_perfect_virtual_computer [2026/06/19 09:54] (current) appledog
Line 75: Line 75:
  
 And, we are. We are retro done right, and we are also, just a computer. And, we are. We are retro done right, and we are also, just a computer.
 +
 +== The path forward
 +The original b0..b7 system seems more interesting and capable than EA, AX and EAX, precisely because it is separate. That splits 32/64 bit programming away from 8/16 bit based on the mode of the programmer. For C, it is less important; for C or any other language, pick the video mode and sound system that represents your era and set the system speed accordingly.
 +
 +With this in mind, what changes are to be made?
 +
 +* Simply the addition of the q0..q7 would aid.
 +* More video modes.
 +* Separate IO memory. This is looking more viable every day.
 +* The kernal has to be moved. Likely to the start of, or end of memory. The kernal interface is based on the INT system. Next, FREE RAM becomes easy to calculate; it's the start of kernal space. The big issue, I suspect, is the INT system.
 +
 +=== Separate memory?
 +The first thing to do is create a special bank (of 64k?) which we can call cache. All IO will be run through this and not main memory. This memory is accessed only via special load and store commands. The key here is I don't know what those commands should be, or how they should work. Maybe a MOV command that can move to and from cache memory. But how does this work exactly?
 +
 +* a) Since [] is used for a memory location maybe <> or () can be used for a cache memory location.
 +* b) A separate opcode that moves data between registers and cache memory
 +
 +    LDA <$E000>
 +    LDA ($E000)
 +    LDA [[$E000]]
 +
 +This 'parallel memory' for IO and possibly video is interesting. A data-only memory, or, system/kernal-only memory.
 +
 +   MOVC A, [$4000]
 +   MOVC [$4000], A
 +
 +The thing is, using [$4000] makes it look like something from RAM.
 +
 +   LDA &$4000
 +
 +Using & could indicate it's from cache, but this means it would need to be a different opcode.
sd/the_paradox_of_the_perfect_virtual_computer.1781861088.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki