AltairZ80 / Altair8800 SIMH - Is it possible to set memory range as Read Only?

10 views
Skip to first unread message

Joseph Corda

unread,
Jan 16, 2026, 9:35:54 PMJan 16
to Altair 8800
After I have loaded a "bin/rom" file into memory location (say to addr. F800) is it possible to have that memory F800 to FDFF set as as read only ?

Using SIMH I'm trying to emulate a system in which I'm not able to write to a "ROM" memory range just like a "real" system. 

Any suggestions would be appreciated 
Joe

Patrick Linstruth

unread,
Jan 17, 2026, 8:10:13 AMJan 17
to Altair 8800
Using AltairZ80, you can add the “ROM” option to the end of your LOAD command. This will tell the simulator to treat what you just loaded as ROM. This will also work when loading HEX files with “-h”.

sim> load dbl.bin 0 rom
256 bytes [1 page] loaded at 0 [ROM].
sim> set cpu verbose
sim> show cpu
CPU     
        64KB, NOITRAP, 8080, AZ80, STOPONHALT
        NONBANKED, ALTAIRROM, VERBOSE,
       0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF [16k]
00000: RWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
04000: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
08000: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
0C000: WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWR,
0x[02 03 04 05 08 09 0A 10 11 12 13 14 15 16 17 18 19 28 29 2A 2B 32 33 A0 A1 A2 A3 A4 A5 A6 A7 FD FE FF]
        MMU, NOSWITCHER, NOPO
sim> 

Altair8800 simulator does not have this option yet. I am planning on implementing it with PROTECT and UNPROTECT options, example:

sim>set ram prot=f8-fd

Would protect pages F8-FD and ignore memory writes.

sim>set ram unprot=f8-fd

Would unprotect pages F8-FD and allow memory writes.

I think this is more in line with how the original 8800 worked, although not many RAM boards supported PROTECT.

I will see about getting that added to Altair8800 simulator in the next week.

--
You received this message because you are subscribed to the Google Groups "Altair 8800" group.
To unsubscribe from this group and stop receiving emails from it, send an email to Altair-8800...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/Altair-8800/a6aa728f-b711-42fd-9c8d-d10fe013c5f2n%40googlegroups.com.

Joseph Corda

unread,
Jan 17, 2026, 10:03:20 AMJan 17
to Patrick Linstruth, Altair 8800
Thanks Patrick that would be great,, as I mainly use Altair8800 SIMH these days.

It was funny I discovered this issue working on JoeMon and I used STA/SHLD in a few spots in my code .. but due to my ignorance the variables were defined within the F800-FCFF range.. So JoeMon
worked in the simulator, but once burned to real EPROM adn run on real hardware I started to get errors and odd behavior. 
After a quick review of my source It was obvious what was wrong and has been fixed !
Going forward with a protect./unprotect option will be a big help so please let me know when I can pull a Altair8800 update from your repo 
Joe


Patrick Linstruth

unread,
Jan 17, 2026, 1:37:34 PMJan 17
to Altair 8800
I added the ROM option to LOAD when messing around with AMON. The first thing AMON does is figure out how much RAM is in the system by writing/reading at page boundaries. It assumes AMON is in ROM and doesn’t check if it loops past FF00 back to 0000. If the entire system is RAM, it will loop forever.

Joseph Corda

unread,
Jan 17, 2026, 2:11:10 PMJan 17
to Patrick Linstruth, Altair 8800


Reply all
Reply to author
Forward
0 new messages