Page:CTSS programmer's guide.djvu/54

From Wikisource
Jump to navigation Jump to search
This page has been proofread, but needs to be validated.

Supervisor subroutines are called by means of the trapping convention described in Chapter 3, "User Communication with the Supervisor." Where arguments are expected, they are located relative to index register 4 as in normal calling sequences; for example

          TSX     RDFLXA,4
          PZE     BUFF,,4 
                  . . .
                  . . .
RDFLXA    TIA     =HRDFLXA

is a call to RDFLXA with a single argument in (1,4) and a return to (2,4). The BCD name of the supervisor entry, as specified in the TIA instruction, must be left-justified with trailing blanks. To read an input line from the console,

TSX     RDFLXA,4
PZE     BUFF

reads 14 words into memory starting at BUFF. On return the logical AC contains N where the break character is the Nth character; the word containing the break has blanks to the right of the break; subsequent words contain blanks. To issue an output line to the console,

TSX    WRFLX.4  or   TSX     WRFLX,4 
PZE    BUFF,,N       PZE     BUFF,,N

where WRFLX writes the N words (N≤14) starting at BUFF, adding a carriage return at the end of the line, and a color shift at beginning and end where the color shift is available; blanks are deleted from the end of the line. WRFLXA differs in that it does not add carriage return or color shift, and does not delete terminal blanks.

All entries to the master disk control subroutine are interpreted like supervisor calls. See Chapter 5.

The call:

TSX    DEAD,4

returns control to the supervisor and puts the user in dead status,

40