No assembly syscall table. Device #31 handles its dozen function calls. Example in pseudo-code:
Code: Select all
open (31,31, 0, "PF"); // Fork child process.
chkin (31);
pid = chrin ();
if (pid == 0) {
// Do childish things.
}
Loadable drivers. Processes may assign a vector table to a device and become a driver (leaving BASIC coders behind), receiving LFNs translated to global LFNs that never collide with other processes as well as receiving copies of the file names to cross address spaces. Few extra syscalls help to allocate and release cozy homes (IO area pages) for interrupt handlers.
That's pretty much the last next VIC thing from my side, fitting nicely on two double-printed sheets of paper and being a thing of beauty.