What they have in common is what matters.
Why would any program that runs in 32K, less the BBL area (64 words) not
run correctly under the SYSTEM map with 21MX memory protection disabled?
When HP-IPL/OS runs something like HP BASIC, it loads the program to be
run into a 32K word virtual address space(called a page in IPL). It them
pokes in a modified sort of BBL program.
A single function can remap the SYSTEM and USER maps, and make that virtual
address space the SYSTEM map and transfer control to any address in that
page.
The program that ~had~ been loaded into VM is now running on its very own
32K word machine, IRQ vectors, DCPC transfers, everything.
When that program (HP BASIC in this case) jumps to the special BBL loader
a tiny DMS program unswaps the DMS maps and jumps to a special entry
point in IPL, the threaded interpreter keeps chugging along as if it also is
being
run on a totally different CPU.
Early versions of RTE could be run in VM pages, in fact, and program that
does
not take control of the DMS mapping registers must, be definition, run
normally
under these conditions.
The system map is the system map, no matter where in physical memory it is
mapped to. At power on, its the first 32K words of physical address space.
So what if it happens to be mapped to some other physical address space?
There
is no way for a non-DMS program to ever know this is the case.
Why would it not run perfectly?
----- Original Message -----
From: "Jay West" <jwest at classiccmp.org>
To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at classiccmp.org>
Sent: Thursday, January 11, 2007 12:14 AM
Subject: Re: HP 21MX/F and OS choices (was Lookee what I just got!)
Bob wrote...
Why would TSB be any different than single user
HP BASIC (which uses
IRQ's)?
ok, let me ask a question which cuts to the chase then. What exactly
did
you have to change in HP BASIC to allow it to run under IPL?
Remember, HP BASIC and TSB have pretty much zero in common.
Jay