The following is a description of those memory locations within the DOS
portion of FLEX which contain information of interest to the programmer.
The user is coutioned against utilization for his own purposes any
locations documented as being either "reserved" or "system scratch", as
this action may cause destruction of data.
These locations contain the address of the
FCB
List Pointer bytes of the first
FCB in the chain of open files. The address in these locations is managed by
FMS
and the programmer should not store any values in these locations. A user
program may, however, want to chain through the FCBs of the open files for
some reason, and the address stored in these locations is the proper starting
point. Remember that the address is that of the FCB List Pointer locations
in the FCB, not the first word of the FCB. A value of zero in these locations
indicates that there are no open files.
$D40B-$D$0C Current FCB Address
These locations contain the address of the last FCB processed by the File
Management System. The address is that of the first word of the FCB.
$D435 Verify Flag
A non-zero value in this location indicates that FMS will check each sector
written for errors immediately after writing it. A zero value indicates that
no error checking on writes is to be performed. The default value is
"non-zero". Flexemu does not support this feature.
The line buffer is a 128 byte area into which characters typed at the keyboard
are placed by the routine
INBUF
. All characters entered from the keyboard are
placed in this buffer with the exeption of control characters. Characters
which have been deleted by entering the backspace character do not appear in
the buffer, nor does the backspace character itself appear. The carriage
return signaling the end of the keyboard input is, however, put in the buffer.
This buffer is also used to hold the
STARTUP file during a coldstart (boot)
operation.
TTYSET Backspace Character $CC00
This is the character which the routine
INBUF
will interpret as the
Backspace character. It is user definable through the
TTYSET DOS Utility
. Default = $08, a Ctrl H (ASCII BS)
TTYSET Delete $CC01
This is the character which the routine
INBUF
will interpret as the line
cancel or Delete character. It is user definable through the
TTYSET DOS Utility
. Default = $18, Ctrl X (ASCII CAN)
TTYSET End of Line Character $CC02
This is the character DOS recognizes as the multiple command per line
separator. It is user definable through the
TTYSET DOS Utility
. Default=$3A,
a colon (:).
TTYSET Depth Count $CC03
This byte determins how many lines DOS will print on a page before Pausing
or issuing Ejects. It may be set by the user with the
TTYSET DOS Utility
command.
Default=0.
TTYSET Width Count $CC04
This byte tells DOS how many characters to output on each line. If zero,
there is no limit to the number output. This count may be set by the user
using
TTYSET DOS Utility
. Default=0.
Last Terminator $CC11
This location contains the most recent non-alphanumeric character encountered
in prcessing the line buffer. See
NXTCH
and
CLASS
for details.
User Command Table Address $CC12-$CC13
The programmer may store into these locations the address of a command table
of his own construction. See the section called
"User-Written commands" for
details. Default=0000, no user command table is defined.
Line Buffer Pointer $CC14-$CC15
These locations contain the address of the next character in the Line Buffer
to be precessed. See
INBUFF,
NXTCH,
GETFIL,
GETCHR and
DOCMND
for instances of its use.
Escape Return Register $CC16-$CC17
These locations contain the address to which to jump if a RETURN is typed
while output has been stoppend by an Escape Character. See
TTYSET utility
for information on Escape processing. See
PCRLF
for details.
Current Character $CC18
This location contains the most recent character taken from the Line Buffer
by the
NXTCH
routine. See
NXTCH
for details.
Previous Character $CC19
This location contains the previous character taken from the Line Buffer
by the
NXTCH
routine. See
NXTCH
for details.
Current Line Number $CC1A
This location contains a count of the number of lines currently on the page.
This value is compared to the Line Count value to determine if a full page
has been printed.
Loader Address Offset $CC1B-$CC1C
These locations contain the 16-bit bias to be added to the load address of a
routine being loaded from the disk. See
System Routine LOAD
for details. These locations are also used as scratch by some system
routines.
Transfer Flag $CC1D
After a program has been loaded from the disk (see
System Routine LOAD
), this
location is non-zero if a transfer address was found during the loading
process. This location is also used as scratch by some system routines.
Transfer Address $CC1E-$CC1F
If the Tranfer Flag was set non-zero by a load from the disk (see
System Routine LOAD
), these locations contain the last transfer address encountered.
If the Transfer Flag was set zero by the disk load, the content of these
locations is indeterminate.
Error Type $CC20
This location contains the error number returned by serveral of the File
Management System functions. See
FLEX Error Messages
for an interpretation of the
error numbers.
If zero, output performed by the
PUTCHR
routine is through the routine
OUTCH
. If non-zero, the routine
OUTCH2
is used. See
OUTCH
and
OUTCH2
for details.
Input Switch $CC23
If zero, input performed by
is through the routine INCH. If it is
GETCHR
non-zero, the routine
INCH2
is used. See
INCH
and
INCH2
for detail.
File Output Address $CC24-$CC25
These bytes contain the address of the File Control Block being used for
file output. If the bytes are zero, no file output is performed. See
PUTCHR
for details. These locations are reset by
RSTRIO
.
File Input Address $CC26-$CC27
These bytes contain the address of the File Control Block being used for
file input. If the bytes are zero, no file input is performed. The routine
RSTRIO
clears these bytes. See
GETCHR
for details.
Command Flag $CC28
This location is non-zero if DOS was called from a user program via the
DOCMND
entry point. See
DOCMND
for details.
Current Output Column $CC29
This location contains a count of the number of characters currently in the
line being output to the terminal. This is compared to the
TTYSET Width Count
to determine when to start a new line. The output of a control character
resets this count to zero.
System Scratch $CC2A
Memory End $CC2B-$CC2C
These two bytes contain the end of user memory. This location is set during
system boot and may be read by programs requiring this information.
Error Name Vector $CC2D-$CC2E
If these bytes are zero, the
routine RPTERR
will use the file ERRORS.SYS as
the error file. If they are non-zero, they are assumed to be the address of
an ASCII string of characters (in directory format) of the name of the file
to be used as the error file. See
RPTERR
for details.
File Input Echo Flag $CC2F
If this byte is non-zero (default) and input is being done through a file,
the character input will be echoed to the output channel. If this byte is
zero, the character retrieved will not be echoed.
System Scratch $CC30-CC4D
System Constants $CC4E-CCBF
Printer Initialize $CCC0-$CCD7
This area is reserved for the overlay of the system printer initialization
subroutines.
Printer Ready Check $CCD8-$CCE7
This area is reserved for the overlay of the system "check for printer ready"
subroutine.
Printer Output $CCE4-$CCF7
This area is reserved for the overlay of the system printer output character
routine. See Printer Routine descriptions for details.