At 08:37 AM 10/18/2015, Johnny Billquist wrote:
I decided to look into this a couple of days ago, since
the basic
workings of FRTS includes using interrupts, which is not possible if
running under time sharing. That would also imply that it would not be
possible to use F4 under RTS-8, which I had some memory of that it
actually is possible.
To sum things up: The FPP-8 can usually not be used when in
timesharing. First of all, you use IOTs to control the FPP, and all
IOTs are trapped when in user mode. Second, as you note, the FPP-8
uses 15-bit addresses, which would make it impossible to use with
virtual memory.
Also, the interrupt system is not available when in user mode.
However, FRTS actually have code to detect if it is running under
RTS-8, and do not use the interrupt system in that case, but adopts.
Also, since the FPP-8 IOTs are caught by RTS-8, and do not do
anything, FRTS actually believes you are on a system without an FPP-8,
even if you actually have one. So, FRTS will always use the FPP-8
emulator in this situation.
MULTOS-8 hook in to the same functionality, making FRTS believe it is
running under RTS-8, which means that F4 programs will actually work
under MULTOS-8, including ADVENT. I don't know if ETOS also implements
the bits needed to make it look like OS/8 programs are actually under
RTS-8. If it does, ADVENT should be possible to run under ETOS as
well. Otherwise not.
Sounds like it's possible, if MULTOS-8 can give a user a full 32k to
work with.
Finally, as I noted, the FPP-8 is not that possible to
use in user
mode, both because of the IOT instructions being caught, and the
15-bit addressing. However, the FPP-8A have a mode where it only
allows memory accesses within the same field, and will trap out if any
memory reference goes to another field. With some work, and code, I
think it could be possible to actually have access to the FPP-8 from
user mode, if you have an FPP-8A, but I have never tried this, as I
lack the hardware.
That's not going to help anything using Fortran-IV, of course. The
library and user code assumes that "virtual" addresses are the same as
physical ones. And IOTs aren't "not possible" - they just need to be
trapped and emulated by the OS.
It wouldn't be all that hard to add support for a FPP to a timesharing
system as a UUO that knows how to map the user's field to something the
FPP could use, then locking that field in core, as the FPP will
continue to DMA from it while executing FPP instructions.
To support even this simple FPP mode would require the underlying OS to
handle the housekeeping, as the FPP startup needs to know the physical
field of the active parameter table, which a timeshared user wouldn't
know.
Seems like a lot of work given the number of FPPs in the wild.
Also, not just FPP8-A has that feature. The "same field as the APT" bit
is also implemented by the FPP-12. This makes me wonder what
application there was for this.
Of course, you don't need the hardware to experiment with this. The
SIMH FPP-8A implementation is as compatible to the hardware as I could
make it - everything but the maintenance mode IOTs are implemented.
-Rick