29.12.2012 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!