%IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF ! + ! ! DR32 DEFINITIONS FOR COMMAND TABLE, PACKETS, AND CHARACTERISTICS ! ! - ! ! QIO COMMAND TABLE OFFSETS ! DECLARE LONG CONSTANT XF$M_IOS_SUCCES = x'00000001' DECLARE LONG CONSTANT XF$M_IOS_CMDSTD = x'00000002' DECLARE LONG CONSTANT XF$M_IOS_INVPTE = x'00000004' DECLARE LONG CONSTANT XF$M_IOS_FREQPK = x'00000008' DECLARE LONG CONSTANT XF$M_IOS_DDIDIS = x'00000010' DECLARE LONG CONSTANT XF$M_IOS_SLFTST = x'00000020' DECLARE LONG CONSTANT XF$M_IOS_RNGERR = x'00000040' DECLARE LONG CONSTANT XF$M_IOS_UNQERR = x'00000080' DECLARE LONG CONSTANT XF$M_IOS_INVPKT = x'00000100' DECLARE LONG CONSTANT XF$M_IOS_FREQMT = x'00000200' DECLARE LONG CONSTANT XF$M_IOS_RNDENB = x'00000400' DECLARE LONG CONSTANT XF$M_IOS_INVDDI = x'00000800' DECLARE LONG CONSTANT XF$M_IOS_LENERR = x'00001000' DECLARE LONG CONSTANT XF$M_IOS_DRVABT = x'00002000' DECLARE LONG CONSTANT XF$M_IOS_PARERR = x'00004000' DECLARE LONG CONSTANT XF$M_IOS_BUSERR = x'08000000' DECLARE LONG CONSTANT XF$M_IOS_RDSERR = x'10000000' DECLARE LONG CONSTANT XF$M_IOS_WCSPE = x'20000000' DECLARE LONG CONSTANT XF$M_IOS_CIPE = x'40000000' DECLARE LONG CONSTANT XF$M_IOS_DIPE = x'80000000' DECLARE LONG CONSTANT XF$M_IOS_NEXREG = x'00000020' DECLARE LONG CONSTANT XF$M_IOS_LOG = x'00000040' DECLARE LONG CONSTANT XF$M_IOS_DDIERR = x'00000080' DECLARE LONG CONSTANT XF$S_XFDEF = 4 record XFDEF variant case group XF$R_XFDEF_BITS0 ! SUCCESS ! COMMAND STARTED ! INVALID PTE ! FREE QUEUE PACKET ! DDI DISABLE ! SELF TEST ! RANGE ERROR ! UNALIGNED QUEUE ERROR ! INVALID COMMAND PACKET ! FREE QUEUE EMPTY ! RANDOM ENABLE ! INVALID DDI COMMAND ! LENGTH ERROR ! DRIVER ABORT ! PARITY ERROR (CI OR DI) ! RESERVED ! DDI STATUS ! RESERVED ! BUS ERROR ! READ DATA SUBSTITUTE ERROR ! WCS PARITY ERROR ! CONTROL INTERCONNECT PARITY ERROR ! DATA INTERCONNECT PARITY ERROR LONG IOS_SUCCES_bits ! COMMENT ADDED BY SDL - IOS_SUCCES_bits contains bits IOS_SUCCES through IOS_DIPE end group XF$R_XFDEF_BITS0 case group XF$R_XFDEF_BITS1 ! SKIP OVER 5 BITS ! NON-EXISTENT REGISTER ! LOG ! ERROR ON FAR-END DEVICE BYTE FILL_9_bits ! COMMENT ADDED BY SDL - FILL_9_bits contains bits FILL_9 through IOS_DDIERR end group XF$R_XFDEF_BITS1 end variant end record XFDEF DECLARE LONG CONSTANT XF$M_CMT_SETRTE = x'00000001' DECLARE LONG CONSTANT XF$M_CMT_DIPEAB = x'00000002' DECLARE LONG CONSTANT XF$K_CMT_LENGTH = 32 ! LENGTH OF COMMAND TABLE DECLARE LONG CONSTANT XF$C_CMT_LENGTH = 32 ! LENGTH OF COMMAND TABLE ! DECLARE LONG CONSTANT XF$S_XFDEF1 = 32 record XFDEF1 LONG XF$L_CMT_CBLKSZ ! COMMAND BLOCK SIZE LONG XF$L_CMT_CBLKAD ! COMMAND BLOCK ADDRESS LONG XF$L_CMT_BBLKSZ ! BUFFER BLOCK SIZE LONG XF$L_CMT_BBLKAD ! BUFFER BLOCK ADDRESS LONG XF$L_CMT_PASTAD ! PACKET AST ADDRESS LONG XF$L_CMT_PASTPM ! PACKET AST ADDRESS BYTE XF$B_CMT_RATE ! DATA RATE group XF$R_CMT_FLAGS_OVERLAY variant case BYTE XF$B_CMT_FLAGS ! FLAGS case group XF$R_CMT_FLAGS_BITS ! SET DATA RATE ! DISABLE PARITY ERROR ABORT BYTE CMT_SETRTE_bits ! COMMENT ADDED BY SDL - CMT_SETRTE_bits contains bits CMT_SETRTE through fill_46 end group XF$R_CMT_FLAGS_BITS end variant end group XF$R_CMT_FLAGS_OVERLAY WORD XFDEF$$_FILL_1 ! SPARE LONG XF$L_CMT_GBITAD ! GO BIT ADDRESS ! COMMAND PACKET OFFSETS ! end record XFDEF1 DECLARE LONG CONSTANT XF$K_PKT_RD = 0 ! READ DECLARE LONG CONSTANT XF$K_PKT_RDCHN = 1 ! READ CHAINED DECLARE LONG CONSTANT XF$K_PKT_WRT = 2 ! WRITE DECLARE LONG CONSTANT XF$K_PKT_WRTCHN = 3 ! WRITE CHAINED DECLARE LONG CONSTANT XF$K_PKT_WRTCM = 4 ! WRITE CONTROL MESSAGE ! VALUE 5 IS RESERVED DECLARE LONG CONSTANT XF$K_PKT_SETTST = 6 ! SET SELF TEST DECLARE LONG CONSTANT XF$K_PKT_CLRTST = 7 ! CLEAR SELF TEST DECLARE LONG CONSTANT XF$K_PKT_NOP = 8 ! NOP DECLARE LONG CONSTANT XF$K_PKT_DIAGRI = 9 ! DIAGNOSTIC READ INTERNAL DECLARE LONG CONSTANT XF$K_PKT_DIAGWI = 10 ! DIAGNOSTIC WRITE INTERNAL DECLARE LONG CONSTANT XF$K_PKT_DIAGRD = 11 ! DIAGNOSTIC READ DDI DECLARE LONG CONSTANT XF$K_PKT_DIAGWC = 12 ! WRITE CONTROL MESSAGE DECLARE LONG CONSTANT XF$K_PKT_SETRND = 13 ! SET RANDOM ENABLE DECLARE LONG CONSTANT XF$K_PKT_CLRRND = 14 ! CLEAR RANDOM ENABLE DECLARE LONG CONSTANT XF$K_PKT_HALT = 15 ! HALT DECLARE LONG CONSTANT XF$M_PKT_SLNERR = x'00000020' DECLARE LONG CONSTANT XF$K_PKT_NOTRAN = 0 ! NO TRANSMISSION DECLARE LONG CONSTANT XF$K_PKT_CB = 1 ! COMMAND BYTE ONLY DECLARE LONG CONSTANT XF$K_PKT_CBDM = 2 ! COMMAND BYTE AND DEVICE MESSAGE DECLARE LONG CONSTANT XF$K_PKT_CBDMBC = 3 ! CMD. BYTE, DEV. MSG, AND BYTE COUNT ! VALUES FOR INTERRUPT CONTOL DECLARE LONG CONSTANT XF$K_PKT_UNCOND = 0 ! UNCONDITIONAL INTERRUPT DECLARE LONG CONSTANT XF$K_PKT_TMQMT = 1 ! INTERRUPT ON TERM. QUEUE EMPTY DECLARE LONG CONSTANT XF$K_PKT_NOINT = 2 ! NO INTERRUPT DECLARE LONG CONSTANT XF$M_PKT_SUCCES = x'00000001' DECLARE LONG CONSTANT XF$M_PKT_CMDSTD = x'00000002' DECLARE LONG CONSTANT XF$M_PKT_INVPTE = x'00000004' DECLARE LONG CONSTANT XF$M_PKT_FREQPK = x'00000008' DECLARE LONG CONSTANT XF$M_PKT_DDIDIS = x'00000010' DECLARE LONG CONSTANT XF$M_PKT_SLFTST = x'00000020' DECLARE LONG CONSTANT XF$M_PKT_RNGERR = x'00000040' DECLARE LONG CONSTANT XF$M_PKT_UNQERR = x'00000080' DECLARE LONG CONSTANT XF$M_PKT_INVPKT = x'00000100' DECLARE LONG CONSTANT XF$M_PKT_FREQMT = x'00000200' DECLARE LONG CONSTANT XF$M_PKT_RNDENB = x'00000400' DECLARE LONG CONSTANT XF$M_PKT_INVDDI = x'00000800' DECLARE LONG CONSTANT XF$M_PKT_LENERR = x'00001000' DECLARE LONG CONSTANT XF$M_PKT_DRVABT = x'00002000' DECLARE LONG CONSTANT XF$M_PKT_PARERR = x'00004000' DECLARE LONG CONSTANT XF$M_PKT_NEXREG = x'00000020' DECLARE LONG CONSTANT XF$M_PKT_LOG = x'00000040' DECLARE LONG CONSTANT XF$M_PKT_DDIERR = x'00000080' DECLARE LONG CONSTANT XF$S_XFDEF2 = 33 record XFDEF2 LONG XF$L_PKT_FLINK ! FORWARD LINK LONG XF$L_PKT_BLINK ! BACKWARD LINK BYTE XF$B_PKT_MSGLEN ! LENGTH OF DEVICE MESSAGE AREA BYTE XF$B_PKT_LOGLEN ! LENGTH OF LOG AREA group XF$R_PKT_CMDCTL_OVERLAY variant case BYTE XF$B_PKT_CMDCTL ! COMMAND CONTROL case group XF$R_PKT_CMDCTL_BITS ! FUNCTION CODE ! MUST BE ZERO BYTE PKT_FUNC_bits ! COMMENT ADDED BY SDL - PKT_FUNC_bits contains bits PKT_FUNC through FILL_2 end group XF$R_PKT_CMDCTL_BITS ! FUNCTION CODE VALUES end variant end group XF$R_PKT_CMDCTL_OVERLAY group XF$R_PKT_PKTCTL_OVERLAY variant case BYTE XF$B_PKT_PKTCTL ! PACKET CONTROL case group XF$R_PKT_PKTCTL_BITS ! UNUSED ! CONTROL INTERCONNECT SELECT ! SUPPRESS LENGTH ERROR ! INTERRUPT CONTROL BYTE FILL_3_bits ! COMMENT ADDED BY SDL - FILL_3_bits contains bits FILL_3 through PKT_INTCTL end group XF$R_PKT_PKTCTL_BITS ! VALUES FOR CONTROL INTERCONNECT SELECT end variant end group XF$R_PKT_PKTCTL_OVERLAY LONG XF$L_PKT_BFRSIZ ! BUFFER SIZE LONG XF$L_PKT_BFRADR ! BUFFER ADDRESS LONG XF$L_PKT_RMBCNT ! RESIDUAL MEMORY BYTE COUNT LONG XF$L_PKT_RDBCNT ! RESIDUAL DDI BYTE COUNT group XF$R_PKT_DSL_OVERLAY variant case LONG XF$L_PKT_DSL ! DR32 STATUS LONGWORD case group XF$R_PKT_DSL_BITS0 ! SUCCESS ! COMMAND STARTED ! INVALID PTE ! FREE QUEUE PACKET ! DDI DISABLE ! SELF TEST ! RANGE ERROR ! UNALIGNED QUEUE ERROR ! INVALID COMMAND PACKET ! FREE QUEUE EMPTY ! RANDOM ENABLE ! INVALID DDI COMMAND ! LENGTH ERROR ! DRIVER ABORT ! PARITY ERROR ! RESERVED ! DDI STATUS ! RESERVED LONG PKT_SUCCES_bits ! COMMENT ADDED BY SDL - PKT_SUCCES_bits contains bits PKT_SUCCES through FILL_5 end group XF$R_PKT_DSL_BITS0 case group XF$R_PKT_DSL_BITS1 ! SKIP OVER 5 BITS ! NON-EXISTENT REGISTER ! LOG ! ERROR ON FAR-END DEVICE BYTE FILL_6_bits ! COMMENT ADDED BY SDL - FILL_6_bits contains bits FILL_6 through PKT_DDIERR end group XF$R_PKT_DSL_BITS1 end variant end group XF$R_PKT_DSL_OVERLAY BYTE XF$B_PKT_DEVMSG ! START OF DEVICE MESSAGE ! ! SECOND LONGWORD OF I/O STATUS BLOCK DEFINITIONS ! end record XFDEF2