!+ ! ! XRSTS.R16 - XPORT declarations for RSTS/E ! !- REQUIRE 'RSTSE' ; ! RSTS/E monitor interface definitions. ! ! Set up some literals ! LITERAL XRSTS$K_BUFF_SZ = 256, ! Buffer size in words XRSTS$K_SIGN_BIT = %O'100000'; ! Sign bit ! ! Set up pointers and initialization macros to the XRB and FIRQB. ! BIND $XRSTS_COMMON = 0 : BLOCK[] FIELD($LOW$FIELDS), $XRSTS_XRB = $XRSTS_COMMON[XRB] : VOLATILE BLOCK[] FIELD($XRB$FIELDS), $XRSTS_FIRQB = $XRSTS_COMMON[FIRQB] : VOLATILE BLOCK[] FIELD($FIRQB$FIELDS); MACRO $XRSTS_INI_FIRQB = CH$FILL( 0, FQBSIZ*%UPVAL, CH$PTR($XRSTS_FIRQB) ) %, $XRSTS_INI_XRB = CH$FILL( 0, XRBSIZ*%UPVAL, CH$PTR($XRSTS_XRB) ) %; ! ! RSTS/E Control Block ! $FIELD XRSTS$CB_FIELDS = SET XRSTS$A_BFADR = [$ADDRESS], ! I/O buffer address XRSTS$A_BFPTR = [$POINTER], ! I/O buffer pointer XRSTS$G_BFCTR = [$BYTES(2)], ! I/O buffer count XRSTS$G_AT1 = [$BYTES(2)], ! File attributes(word 1) $OVERLAY( XRSTS$G_AT1 ) XRSTS$V_RECF = [$BITS(4)], ! Record format XRSTS$V_FILO = [$BITS(4)], ! File organization XRSTS$V_PRIC = [$BITS(4)], ! Print control $CONTINUE XRSTS$G_AT2 = [$BYTES(2)], ! File attributes(word 2) XRSTS$G_AT3 = [$BYTES(2)], ! File attributes(word 3) XRSTS$G_AT4 = [$BYTES(2)], ! File attributes(word 4) XRSTS$G_AT5 = [$BYTES(2)], ! File attributes(word 5) XRSTS$G_AT6 = [$BYTES(2)], ! File attributes(word 6) XRSTS$G_AT7 = [$BYTES(2)], ! File attributes(word 7) XRSTS$G_AT8 = [$BYTES(2)], ! File attributes(word 8) $OVERLAY( XRSTS$G_AT8 ) XRSTS$V_BCKS = [$BYTE], ! Bucketsize in blocks XRSTS$V_FIXS = [$BYTE] ! Number of bytes in fixed control area TES; LITERAL XRSTS$K_CB_LEN = $FIELD_SET_SIZE; MACRO $XRSTS_CB = BLOCK[ XRSTS$K_CB_LEN ] FIELD ( XRSTS$CB_FIELDS ) % ; ! ! RSTS/E Rename Block ! MACRO $XRST_REN_ARGS = BLOCK[ FQBSIZ ] FIELD ( $FIRQB$FIELDS ) % ;