Difference between revisions of "GeneveOS Utility Functions"

From Ninerpedia
Jump to navigation Jump to search
(Created page with "Accessing devices (floppy disk, hard disk, serial connector, printer) is possible in GeneveOS via XOP calls. == User-task XOPs == User-task XOPs are available for use in app...")
 
Line 5: Line 5:
User-task XOPs are available for use in application programs. Here is a typical example:
User-task XOPs are available for use in application programs. Here is a typical example:


PABADD EQU  >F180 
  UTIL  DATA 9
  UTIL  DATA 9
PARSE  DATA >0008
  ...
  ...
         LI  R0,PABADD
         LI  R0,PARSE        opcode
        LI  R2,PABADD+15    target buffer; here: name field of PAB
        LI  R3,>5000        first byte is maximum length of buffer
        MOVB R3,*R2
        CLR  R3              normal mode
         XOP  @UTIL,0
         XOP  @UTIL,0
         MOVB @PABADD+2,R0
         JEQ OK
        JNE ERROR
        ...


Similar as with the TI-99/4A device service routine concept (DSR), a Peripheral Access Block (PAB) must be set up prior to invoking the XOP.
Similar as with the TI-99/4A device service routine concept (DSR), a Peripheral Access Block (PAB) must be set up prior to invoking the XOP.
Line 49: Line 51:
|-
|-
| R2
| R2
| Pointer to physical name || -
| Pointer to target buffer || -
|-
|-
| R3
| R3
Line 55: Line 57:
|-
|-
| Status
| Status
| - || EQ
| - || EQ=1 when successfully parsed
|}
|}

Revision as of 20:31, 17 July 2016

Accessing devices (floppy disk, hard disk, serial connector, printer) is possible in GeneveOS via XOP calls.

User-task XOPs

User-task XOPs are available for use in application programs. Here is a typical example:

UTIL   DATA 9
PARSE  DATA >0008
...
       LI   R0,PARSE        opcode
       LI   R2,PABADD+15    target buffer; here: name field of PAB
       LI   R3,>5000        first byte is maximum length of buffer
       MOVB R3,*R2
       CLR  R3              normal mode
       XOP  @UTIL,0
       JEQ  OK

Similar as with the TI-99/4A device service routine concept (DSR), a Peripheral Access Block (PAB) must be set up prior to invoking the XOP.

Utility functions

Opcode 0: Validate time

Checks whether the clock chip contains a valid time setting.

Input Output
R0 0000 0000
Status - EQ=1 if time is valid


Opcode 8: Parse filename

Input Output
R0 0008 Delimiter
R1 Pointer to logical name Error code
R2 Pointer to target buffer -
R3 Alias flag -
Status - EQ=1 when successfully parsed