Google
 

Trailing-Edge - PDP-10 Archives - bb-ee87a-sb - 10,7/dil/dapblk.req
There are 5 other files named dapblk.req in the archive. Click here to see a list.
!
! Include files
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
! OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
!
! COPYRIGHT  (C)  DIGITAL  EQUIPMENT  CORPORATION 1985.
! ALL RIGHTS RESERVED.

! EDIT HISTORY
!
! Facility DAP
!
! Edit (%O'2', '23-May-84', 'Sandy Clemens')
!  %( Add a CRLF to the end of a bunch of files because without it, if
!     you copy the file to another system with FTS, you will lose the
!     last line of the file!  FILES:  DAPBLK.10-REQ, DAPERR.BLI,
!     DIRLST.10-BLI, DIR10.10-B36, DAPT10.10-B36.
!  )%
!
! Edit (%O'5', '5-Oct-84', 'Sandy Clemens')
!  %( Add new format of COPYRIGHT notice.  FILES:  ALL )%

LIBRARY 'BLI:XPORT';

%IF (%VARIANT AND %O'400') NEQ 0 %THEN $SHOW(ALL) %FI;

! DD Structure

$FIELD $DAP_DESCRIPTOR_FIELDS=
       SET
       DAP$T_DATA=[$DESCRIPTOR(BOUNDED)],
           $OVERLAY($SUB_FIELD(DAP$T_DATA,XPO$H_LENGTH))
           DAP$H_BYTES_REMAINING=[$SHORT_INTEGER],

           $OVERLAY($SUB_FIELD(DAP$T_DATA,XPO$A_ADDRESS))
           DAP$A_DATA=[$POINTER],

           $OVERLAY($SUB_FIELD(DAP$T_DATA,XPO$H_PFXLEN))
           DAP$H_BYTES_USED=[$SHORT_INTEGER],

           $OVERLAY($SUB_FIELD(DAP$T_DATA,XPO$H_MAXLEN))
           DAP$H_MESSAGE_LENGTH=[$SHORT_INTEGER],

           $CONTINUE
           
       DAP$B_OPERATOR=[$SHORT_INTEGER],
       DAP$B_STREAMID=[$SHORT_INTEGER],
       DAP$H_LENGTH=[$SHORT_INTEGER],   ! Length of this DAP message
       DAP$H_BITCNT=[$SHORT_INTEGER],   ! Number of bits used in last byte of data message
       DAP$V_MFLAGS=[$BYTES(5)],
           $OVERLAY(DAP$V_MFLAGS)       ! these are for clearing the flags
           DAP$$V_MFLAGS_1=[$BYTES(2)], ! 
           DAP$$V_MFLAGS_2=[$BYTES(2)], ! 
           DAP$$V_MFLAGS_3=[$BYTES(1)], ! 
           $OVERLAY(DAP$V_MFLAGS)
           DAP$V_MFLAGS_STREAMID=[$BIT],! Stream ID (not supported)
           DAP$V_MFLAGS_LENGTH=[$BIT],  ! Length field present
           DAP$V_MFLAGS_LEN256=[$BIT],  ! Length field is 2 bytes long
           DAP$V_MFLAGS_BITCNT=[$BIT],  ! BITCNT field present (DATA message only)
           DAP$V_MFLAGS_XXXXXX=[$BIT],  ! Reserved
           DAP$V_MFLAGS_SYSPEC=[$BIT],  ! System-specific field present (not supported)
           DAP$V_MFLAGS_MORE=[$BIT],    ! Not last segment -- more coming
           $CONTINUE
       DAP$V_INTERRUPT=[$BIT],          ! Interrupt message
       $ALIGN(WORD)                     ! Make the addresses halfword aligned
       DAP$A_NLB=[$ADDRESS],            ! Address of NLB
       DAP$H_OFFSET=[$SHORT_INTEGER],   ! Number of into msg for DAP msg start
       DAP$A_OTHER_DD=[$ADDRESS]        ! Address of DD for other direction
       TES;

! End of DD

LITERAL DAP$K_DESCRIPTOR_LEN=$FIELD_SET_SIZE;
MACRO $DAP_DESCRIPTOR= BLOCK[DAP$K_DESCRIPTOR_LEN] FIELD ($DAP_DESCRIPTOR_FIELDS) %;




!Configuration block definitions

! CONFIG Structure

$FIELD $CONFIG_FIELDS=

	SET
	CONFIG$H_BUFSIZ=[$SHORT_INTEGER],
	CONFIG$B_OSTYPE=[$BYTE],
	CONFIG$B_FILESYS=[$BYTE],

	CONFIG$B_VERSION=[$BYTE],
	CONFIG$B_ECONUM=[$BYTE],
	CONFIG$B_USRNUM=[$BYTE],
	CONFIG$B_SOFTVER=[$BYTE],

	CONFIG$B_USRSOFT=[$BYTE],
	CONFIG$V_SYSCAP=[$SUB_BLOCK((%BPVAL/8)*12)],
                $OVERLAY(CONFIG$V_SYSCAP)
		CONFIG$V_PREALLOCATION=[$BIT],
		CONFIG$V_SEQUENTIAL_ORG=[$BIT],
		CONFIG$V_RELATIVE_ORG=[$BIT],
		CONFIG$V_DIRECT_ORG=[$BIT],	!Reserved
		CONFIG$V_INDEXED_SINGLE_KEY=[$BIT],	!Reserved
		CONFIG$V_SEQUENTIAL_TRANSFER=[$BIT],
		CONFIG$V_RANDOM_ACCESS_RECNUM=[$BIT],
		CONFIG$V_RANDOM_ACCESS_VBN=[$BIT],
		CONFIG$V_RANDOM_ACCESS_KEY=[$BIT],
		CONFIG$V_RANDOM_ACCESS_HASH=[$BIT], !Reserved
		CONFIG$V_RANDOM_ACCESS_RFA=[$BIT],
		CONFIG$V_INDEXED_MULTI_KEY=[$BIT],	!Reserved
		CONFIG$V_SWITCH_ACCESS_MODE=[$BIT],
		CONFIG$V_APPEND_ACCESS=[$BIT],
		CONFIG$V_SUBMIT_ACCESS=[$BIT],
		CONFIG$V_DATA_COMPRESSION=[$BIT],	!Reserved
		CONFIG$V_MULTI_DATA_STREAMS=[$BIT],
		CONFIG$V_STATUS_RETURN=[$BIT],		!Reserved
		CONFIG$V_BLOCKING=[$BIT],
		CONFIG$V_UNRESTRICTED_BLOCKING=[$BIT],
                CONFIG$V_LEN256=[$BIT],
                CONFIG$V_CHECKSUM=[$BIT],
                CONFIG$V_KDF=[$BIT],
                CONFIG$V_ALLOC=[$BIT],
                CONFIG$V_SUM=[$BIT],
                CONFIG$V_DIRECTORY=[$BIT],
                CONFIG$V_DTM=[$BIT],
                CONFIG$V_PROTECTION=[$BIT],
                CONFIG$V_ACL=[$BIT],
                CONFIG$V_FOP_PRINT=[$BIT],
                CONFIG$V_FOP_SUBMIT=[$BIT],
                CONFIG$V_FOP_DELETE=[$BIT],
                CONFIG$V_DEFAULT_FILESPEC=[$BIT],       ! Reserved
                CONFIG$V_SEQUENTIAL_ACCESS=[$BIT],
                CONFIG$V_RECOVERY=[$BIT],               ! Reserved
                CONFIG$V_BITCNT=[$BIT],
                CONFIG$V_WARNING_STATUS=[$BIT],
                CONFIG$V_RENAME_ACCESS=[$BIT],
                CONFIG$V_WILDCARDING=[$BIT],
                CONFIG$V_GO_NO_GO=[$BIT],
                CONFIG$V_NAME=[$BIT],
                CONFIG$V_SEGMENTING=[$BIT]

                ! End of DAP 5.6 SYSCAP bits, new bits for 6.0 may follow
                $CONTINUE
	TES;

! End of CONFIG

LITERAL CONFIG$K_LEN=$FIELD_SET_SIZE;

MACRO $CONFIG=BLOCK[CONFIG$K_LEN] FIELD($CONFIG_FIELDS) %;

! DIB fields

$FIELD $DIB_FIELDS=
       SET
       DIB$A_NLB=[$ADDRESS],            ! The NLB to the remote system
       DIB$A_CONFIG=[$ADDRESS],         ! Remote configuration block
       DIB$A_NEW_FAB=[$ADDRESS],
       DIB$B_OPERATION=[$BYTE],
       $ALIGN(WORD)
       DIB$A_I_DD=[$ADDRESS],
       DIB$A_O_DD=[$ADDRESS],
       DIB$H_FLAGS=[$BYTES(4)],
           $OVERLAY(DIB$H_FLAGS)
           DIB$V_NO_SEND_CONTROL=[$BIT],
           DIB$V_FILE_OPEN=[$BIT],
           DIB$V_ACCESS_ACTIVE=[$BIT],
           DIB$V_COMPUTE_CHECKSUM=[$BIT],
           $CONTINUE
       DIB$H_CHECKSUM=[$BYTES(2)]
       TES;

! End of DIB

LITERAL DIB$K_LENGTH=$FIELD_SET_SIZE;

MACRO $DIB=BLOCK[DIB$K_LENGTH] FIELD ($DIB_FIELDS) %;


!Bits for runtime workaround conditionals

LITERAL                                 ! TOPS-20 workarounds
    T20_BUG_NO_DIR_PRV=1;               ! No status for ER$PRV on DIRECTORY

LITERAL                                 ! RSTS/E workarounds
    RST_BUG_NO_DIR_FNF=1;               ! No status for ER$FNF on DIRECTORY

LITERAL                                 ! RSX workarounds
    RSX_BUG_NOT_WANT_BLS=1;             ! RSX FCS FAL doesn't like BLS field

LITERAL                                 ! VMS workarounds
    VMS_BUG_BYTLM_HANG=1;               ! VMS hangs if BUFSIZE not << BYTLM

LITERAL                                 ! IAS workarounds
    IAS_BUG_ACM_FOP=1;                  ! IAS complains about FOP bits on close