The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...
The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...
The Programmer's Guide to TRSDOS Version 6 - Tim Mann's Home ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7.6.31 @FLAGS$ SVC-101<br />
This SVC will return a pointer <strong>to</strong> the base of the flags table. <strong>The</strong> pointer is returned in<br />
register IY. <strong>The</strong> flag table is a table of 26 flags lettered A-Z. Certain additional<br />
system variables are indexed relative <strong>to</strong> this pointer. Once the pointer is obtained, each<br />
flag may be referenced relative <strong>to</strong> IY. For instance, if the SFLAG$ is needed, use<br />
"IY+'S'-'A'" <strong>to</strong> reference the s<strong>to</strong>rage address of the flag. <strong>The</strong> following presents the<br />
flag assignments available <strong>to</strong> the programmer:<br />
Registers Affected: AF, IY.<br />
Exit:<br />
IY Returns the pointer <strong>to</strong> the base of the flag table.<br />
AFLAG$<br />
This "allocation" flag contains the starting cylinder number that is used by the<br />
system's file space allocation routine when searching for free space on disk<br />
media. <strong>The</strong> system defaults this value <strong>to</strong> cylinder 1.<br />
CFLAG$<br />
Bit 0 If set, then the system will not permit the change of HIGH$ via SVC-100.<br />
This flag is reset by @EXIT and @CMNDI. This function is useful for<br />
applications invoking system resources via @CMNDR while still wanting<br />
control of the entire memory region through HIGH$.<br />
Bit 1 If set, @CMNDR is executing. This flag is reset by @EXIT and @CMNDI. Note<br />
that once an @CMNDR invocation is performed, the flag cannot be reset by the<br />
system until "exit" of the application has been made via @EXIT or @CMNDI.<br />
Bit 2 If set, it indicates that the command interpreter in SYS1 is requesting the<br />
line input from the keyboard. This condition is important for keyboard<br />
filters that may change the resident system overlay. If SYS1 is resident and<br />
overwritten when bit-2 is set, you will crash the DOS upon passing control<br />
back <strong>to</strong> the keyboard driver unless SYS1 is res<strong>to</strong>red.<br />
Bit 3 If set, then the system is requesting execution from either the "SET" or<br />
"SYSTEM (DRIVER=" commands. This bit should be tested by drivers or filters<br />
upon installation <strong>to</strong> ensure that they are being installed by the proper<br />
system command rather than just by RUN or execution.<br />
Bit 4 If set, then the @CMNDR SVC will only execute system LIB commands. Bear in<br />
mind that "RUN" will be invokable which could then be used <strong>to</strong> override the<br />
limitation.<br />
Bit 5 If set, the SYSGEN library command will be inhibited. This may be useful <strong>to</strong><br />
inhibit application environments from altering the boot initialization<br />
configuration.<br />
Bit 6 If set, then @ERROR will not display any error message. This can be used <strong>to</strong><br />
inhibit the posting of error messages by programs invoked from @CMNDR.<br />
Bit 7 If set, then @ERROR will pass the error message <strong>to</strong> the buffer pointed <strong>to</strong> by<br />
register pair DE. See @ERROR for more data.<br />
DFLAG$<br />
Bit 0 Set <strong>to</strong> "1" if SPOOL is active<br />
Bit 1 Set <strong>to</strong> "1" if TYPE AHEAD is <strong>to</strong> be active. Type-ahead can be<strong>to</strong>ggled on/off<br />
via this bit.<br />
Bit 2 If set, it indicates VERIFY (ON) has been set.<br />
Bit 3 If set, it indicates that SYSTEM (SMOOTH) is active.<br />
Bit 4 If set, then MemDisk is active.<br />
7-20