
LOWCORE/ASM - Low memory assignments and BIOS

   This is the source code that assembles the file BOOT/SYS as a core image
   (no load information) file. The Lowcore file contains the bootstrap
   loader, certain low memory storage locations, the I/O drivers, the DCBs
   and DCTs, memory bank handling, byte I/O routines, and other
   miscellaneous code. The file normally occupies track 0 on a system disk,
   and is read into memory by the computer's boot ROM. At that point,
   execution is transferred to the Lowcore boot loader and Sysres is loaded.

   The Lowcore source code is divided into several subsections. In order of
   appearance, they are:

        DCB area - Default DCBs for the standard I/O devices.
        BOOT - Boot loader for Sysres and CRTC initialization.
        SYSINFO & DCT - The stack area, input buffer, and default DCTs.
        IODVR - Byte I/O handling for standard and non-standard devices.
        MULDIV - Math routines used by the system.
        CLOCKS - Heartbeat processing vidram and bank switching.
        KIDVR - The keyboard driver and type-ahead processing.
        DODVR - The video driver and VDCTL SVC handler.
        PRDVR - The printer driver.
        FDCDVR - The floppy disk driver

SYSRES - Resident portion of the DOS

   This source code assembles the load module file SYS0/SYS, commonly
   referred to as Sysres. It contains the BDOS and other routines. It is
   origined at 1300H, which puts it above Lowcore and the low memory driver
   zone. It is loaded into position by the boot loader in Lowcore. Once
   loaded, execution is begun at the SYSINIT entry point. This initilizes
   the remaining machine hardware, loads the configuration file if present,
   executes any Auto command, and brings in the command interpreter. The
   main subsections of Sysres are:

        Certain low memory values and the system flag table.
        FILPOSN - File read/write, positioning, and allocation routines.
        LOADER - SVC handling, overlay loading, command file loading.
        TASKER - Interrupt processing.
        SYSINIT - System initialization after cold or warm boot.
        SOUND - Sound, Pause, and some other miscellaneous low memory
                routines.
        LOGO -- The signon graphics display in direct load-to-screen format.

SYS1/SYS

   SYS1 is, among other things, the primary command interpreter. As such, in
   handles all requests for commands in the three system Libraries. It also
   contains the code for the SVCs @CMNDI, @CMNDR, @FSPEC, @FEXT, @PARAM,
   @EXIT and @ABORT. SYS1 is normally executed by doing an @EXIT or @ABORT
   SVC from within a program, or by executin a RET instruction as long as
   the stack pointer is at the same position it was in when the program was
   executed by DOS.

 SYS2/SYS

   SYS2 is a multifunction overlay. It handles creating, opening, and
   renaming files, hashing filenames and password, checkin a drive for
   mounted diskette, and locating a specified of free DCB. It contains the
   code for the SVCs @INIT, @OPEN, @RENAME, @GTDCB, and @CKDRV.

SYS3/SYS

   SYS3 handles closing a file or device, and restoring original file spec
   or device spec to the Control Block. During a file close, it also
   de-allocates space if the ending record number is smaller than it was
   upon open.  It contains the code for SVCs @CLOSE and @FNAME.

SYS4/SYS

   SYS4 handles the system error routines, either displaying an error
   message or placing the message in a user-specified buffer. Beside the
   standard error codes, an "extended error" (error number 63) will display
   an error value placed in the HL register pair. The only SVC handled by
   SYS4 is @ERROR.

SYS5/SYS

   SYS5 is the primary system debugger. It is activated by the system, by
   the break key, or by the SVC @DEBUG. During assembly, SYS5 is
   cross-referenced to produce an EQUate file used in assembling SYS9, the
   extended debugger.

Note: SYS6, SYS7 and SYS8 are library overlays, and contain all the
   executable DOS commands.

SYS9/SYS

   SYS9 is the extended system debugger. When loaded, it resides as a module
   in high memory, and handles additional functions that require more memory
   than was available for SYS5 which resides in the overlay region. There
   are no SVCs directly handled by SYS9.

SYS10/SYS

   SYS10 will kill a file or device.  It contains code for the SVC @REMOV.

SYS11/SYS

   SYS11 handles the execution of a JCL file. It automatically links and
   unlinks itdelf into the system. It is used to supply input from the JCL
   file in response to keyboard line requests.

SYS12/SYS

   SYS12 handles the two mini directory and free space SVCs, as well as
   locates or checks for a memory module header. It contains the code for
   the SVCs @DODIR, @RAMDIR and @GTMOD.

SYS13/SYS

   SYS13 holds the place reserved for an extended command interpreter. It
   performs no function, but is on the disk to set the proper attributes of
   any file copied over it to act as an extended interpreter. It also
   prevents a system hangup if the extended interpreter flag (EFLAG$) is set
   without the presence of a user file in the SYS13 directory slot.

