%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 DECLARE LONG CONSTANT PR8NN$_NICR = 25 ! Next Interval Count Register DECLARE LONG CONSTANT PR8NN$_ICR = 26 ! Interval Counter Register DECLARE LONG CONSTANT PR8NN$_TODR = 27 ! Time of Year DECLARE LONG CONSTANT PR8NN$_PME = 61 ! Performance Monitor Enable DECLARE LONG CONSTANT PR8NN$_MCSTS = 38 ! Machine Check Status Register DECLARE LONG CONSTANT PR8NN$_NICTRL = 128 ! NMI and Interrupt Control Register DECLARE LONG CONSTANT PR8NN$_INOP = 129 ! Interrupt Other Processor DECLARE LONG CONSTANT PR8NN$_NMIFSR = 130 ! NMI Fault/Status Register DECLARE LONG CONSTANT PR8NN$_NMISILO = 131 ! NMI Bus Silo DECLARE LONG CONSTANT PR8NN$_NMIEAR = 132 ! NMI Error Address Register DECLARE LONG CONSTANT PR8NN$_COR = 133 ! Cache On Register DECLARE LONG CONSTANT PR8NN$_REVR1 = 134 ! Revision Register #1 DECLARE LONG CONSTANT PR8NN$_REVR2 = 135 ! Revision Register #2 DECLARE LONG CONSTANT PR8NN$M_SID_LRCPU = x'00800000' DECLARE LONG CONSTANT PR8NN$M_RXDB_LAVL = x'00000001' DECLARE LONG CONSTANT PR8NN$M_RXDB_RAVL = x'00000002' DECLARE LONG CONSTANT PR8NN$M_RXDB_SENB = x'00000004' DECLARE LONG CONSTANT PR8NN$M_RXDB_UNI = x'00000008' DECLARE LONG CONSTANT PR8NN$M_RXDB_DKEY = x'00000010' DECLARE LONG CONSTANT PR8NN$M_RXDB_VKEY = x'00000020' DECLARE LONG CONSTANT PR8NN$M_RXDB_PCPU = x'00000040' DECLARE LONG CONSTANT PR8NN$M_RXDB_SLOW = x'00000080' DECLARE LONG CONSTANT PR8NN$M_RXDB_BOUN = x'00000001' DECLARE LONG CONSTANT PR8NN$M_RXDB_SP1 = x'00000002' DECLARE LONG CONSTANT PR8NN$M_RXDB_SP2 = x'00000004' DECLARE LONG CONSTANT PR8NN$S_PR8NNDEF = 4 record PR8NNDEF variant case group PR8NN$R_PR8NNSID_BITS ! Read only SID register ! Processor Serial Number ! CPU Revision Level ! Left/Right CPU bit ! CPU Type Code LONG SID_SERIAL_bits ! COMMENT ADDED BY SDL - SID_SERIAL_bits contains bits SID_SERIAL through SID_TYPE end group PR8NN$R_PR8NNSID_BITS case group PR8NN$R_PR8NNREVR2_BITS ! Read only REVR2 register ! Console Revision Level ! WCS Revision Level ! Microcode Revision Level LONG FILL_1_bits ! COMMENT ADDED BY SDL - FILL_1_bits contains bits FILL_1 through REVR2_UCODE end group PR8NN$R_PR8NNREVR2_BITS ! ! Bit definitions for data returned by the GET_CPU_INFO console command ! through the RXDB IPR. ! ! The first group of names include bits that are similarly defined for ! both uniprocessor and dual processor configurations. The second group ! of names defines those bits that are specific to uniprocessor configurations. ! case group PR8NN$R_PR8NNRXDB_BITS1 ! ! Left CPU Available ! Right CPU Available ! Secondary CPU Enabled ! Uni-processor Configuration ! Diag Key Matched SID ! VMS Key Matched SID ! 'Primary' CPU designator ! Slow/Fast designation BYTE RXDB_LAVL_bits ! COMMENT ADDED BY SDL - RXDB_LAVL_bits contains bits RXDB_LAVL through RXDB_SLOW end group PR8NN$R_PR8NNRXDB_BITS1 case group PR8NN$R_PR8NNRXDB_BITS2 ! ! Bounded System Configuration ! Unused ! Unused BYTE RXDB_BOUN_bits ! COMMENT ADDED BY SDL - RXDB_BOUN_bits contains bits RXDB_BOUN through fill_66 end group PR8NN$R_PR8NNRXDB_BITS2 end variant end record PR8NNDEF ! ! Field definitions for console interface thru RXCS/TXCS/RXDB/TXDB ! ! ! RXCS - Console to CPU status register ! ! 31 24 23 16 15 08 07 06 00 ! +--------------+--------------+---------------+----+----+--------+ ! | MBZ | MBZ | MBZ |DONE| IE | MBZ | ! +--------------+--------------+---------------+----+----+--------+ ! DECLARE LONG CONSTANT rxcs$m_int_enable = x'00000040' DECLARE LONG CONSTANT rxcs$m_n_done = x'00000080' DECLARE LONG CONSTANT rxcs$s_n_rxcs_register = 4 record n_rxcs_register group rxcs$r_fill_67 variant case LONG rxcs$l_rxcs case group rxcs$r_fill_68 ! Must Be Zero ! Interrupts enabled ! Operation done LONG fill_0_bits ! COMMENT ADDED BY SDL - fill_0_bits contains bits fill_0 through fill_8 end group rxcs$r_fill_68 end variant end group rxcs$r_fill_67 end record n_rxcs_register ! ! RXDB - Console to CPU communication ! ! 31 24 23 16 15 14 12 11 08 07 00 ! +--------------+--------------+--+-------+--------+-------------+ ! | MBZ | MBZ |ER| MBZ | ID | DATA FIELD | ! +--------------+--------------+--+-------+--------+-------------+ ! DECLARE LONG CONSTANT rxdb$m_error = x'00008000' DECLARE LONG CONSTANT rxdb$k_opa0_data = 0 ! 0 Local terminal read ascii data DECLARE LONG CONSTANT rxdb$k_csa1_data = 1 ! 1 Drive 1 data binary data DECLARE LONG CONSTANT rxdb$k_csa3_data = 2 ! 2 Drive 3 data binary data DECLARE LONG CONSTANT rxdb$k_opa4_data = 3 ! 3 Local term ( nolog ) read ascii data DECLARE LONG CONSTANT rxdb$k_csa2_data = 4 ! 4 Drive 2 data binary data DECLARE LONG CONSTANT rxdb$k_csm_cksum = 5 ! 5 DECLARE LONG CONSTANT rxdb$k_opa5_data = 6 ! 6 Remote terminal read ascii data DECLARE LONG CONSTANT rxdb$k_csax_status = 7 ! 7 CSAx status byte binary data DECLARE LONG CONSTANT rxdb$k_cons_vax = 8 ! 8 Misc message see data below DECLARE LONG CONSTANT rxdb$k_get_cpu_data = 9 ! 9 Get-CPU-Data response binary data DECLARE LONG CONSTANT rxdb$k_csm_cmd = 10 ! A Cons support ucode cmd function code DECLARE LONG CONSTANT rxdb$k_csm_data = 11 ! B Console support data binary data DECLARE LONG CONSTANT rxdb$k_spare_c = 12 ! C spare DECLARE LONG CONSTANT rxdb$k_toy_data = 13 ! D TOY clock data binary data DECLARE LONG CONSTANT rxdb$k_spare_e = 14 ! E spare DECLARE LONG CONSTANT rxdb$k_decnet_data = 15 ! F DECnet data binary data ! DECLARE LONG CONSTANT rxdb$k_env_alert = 0 ! Environmental Alert DECLARE LONG CONSTANT rxdb$k_csa1_status = 1 ! CSA1 Status DECLARE LONG CONSTANT rxdb$k_csa2_status = 2 ! CSA2 Status DECLARE LONG CONSTANT rxdb$k_rem_port_status = 3 ! Remote Port Status DECLARE LONG CONSTANT rxdb$k_console_status = 4 ! Console Status DECLARE LONG CONSTANT rxdb$k_csa3_status = 5 ! CSA3 Status DECLARE LONG CONSTANT rxdb$k_spare_6 = 6 ! spare DECLARE LONG CONSTANT rxdb$k_toy_pe = 7 ! TOY clock protocol error DECLARE LONG CONSTANT rxdb$k_emm_status = 8 ! EMM status inquiry response ! Insert new console-to-vax message types above this line DECLARE LONG CONSTANT rxdb$k_max_type = 9 ! Highest defined console-to-VAX message type ! DECLARE LONG CONSTANT rxdb$k_emm_blower = 0 ! Blower out DECLARE LONG CONSTANT rxdb$k_emm_yellow = 1 ! Yellow zone warning DECLARE LONG CONSTANT rxdb$k_emm_red = 2 ! Red zone warning ! DECLARE LONG CONSTANT rxdb$k_success = 0 ! Success, note low bit clear DECLARE LONG CONSTANT rxdb$k_io_error = 1 ! POS IO Error, RMS Code follows DECLARE LONG CONSTANT rxdb$k_open_error = 2 ! Failure to OPEN DECLARE LONG CONSTANT rxdb$k_io_blk_error = 3 ! QIO completion code follows DECLARE LONG CONSTANT rxdb$k_qio_error = 4 ! QIO completion code follows DECLARE LONG CONSTANT rxdb$k_write_error = 5 ! Can't write to hard disk ! DECLARE LONG CONSTANT rxdb$k_carrier_present = 0 ! DECLARE LONG CONSTANT rxdb$k_carrier_absent = 15 ! hex F DECLARE LONG CONSTANT rxdb$k_console_present = 0 ! DECLARE LONG CONSTANT rxdb$k_console_absent = 15 ! hex F - about to be absent DECLARE LONG CONSTANT rxdb$s_n_rxdb_register = 4 record n_rxdb_register group rxdb$r_fill_69 variant case LONG rxdb$l_rxdb case group rxdb$r_fill_70 group rxdb$r_rxdb_data_overlay variant case BYTE rxdb$b_data ! Data byte case group rxdb$r_data_fields BYTE msg_bits ! COMMENT ADDED BY SDL - msg_bits contains bits msg through msg_type end group rxdb$r_data_fields end variant end group rxdb$r_rxdb_data_overlay BYTE id_bits ! COMMENT ADDED BY SDL - id_bits contains bits id through error WORD rxdb$w_hiword end group rxdb$r_fill_70 end variant end group rxdb$r_fill_69 ! ! Constant definitions for id field ! ! Valu Function Name Data Field ! Constant values for data byte message type field ! ! Definitions for MESSAGE data byte field for environmental alert. ! ! Definitions for MESSAGE data byte for CSA1/CSA2/CSA3 Status ! ! Constant definitions for Remote Port and Console status. ! end record n_rxdb_register ! ! TXCS - Console to CPU status register ! ! 31 24 23 16 15 08 07 06 00 ! +--------------+--------------+---------------+----+----+--------+ ! | MBZ | MBZ | MBZ |DONE| IE | MBZ | ! +--------------+--------------+---------------+----+----+--------+ ! DECLARE LONG CONSTANT txcs$m_int_enable = x'00000040' DECLARE LONG CONSTANT txcs$m_ready = x'00000080' DECLARE LONG CONSTANT txcs$s_n_txcs_register = 4 record n_txcs_register group txcs$r_fill_71 variant case LONG txcs$l_txcs case group txcs$r_fill_72 ! Must Be Zero ! Interrupts enabled ! Data register ready LONG fill_0_bits ! COMMENT ADDED BY SDL - fill_0_bits contains bits fill_0 through fill_8 end group txcs$r_fill_72 end variant end group txcs$r_fill_71 end record n_txcs_register ! ! TXDB - CPU to Console communication ! ! 31 24 23 16 15 14 12 11 08 07 00 ! +--------------+--------------+--+-------+--------+-------------+ ! | MBZ | MBZ |ER| MBZ | ID | DATA FIELD | ! +--------------+--------------+--+-------+--------+-------------+ ! DECLARE LONG CONSTANT txdb$m_error = x'00008000' DECLARE LONG CONSTANT txdb$k_opa0_data = 0 ! 0 Local terminal write ascii data DECLARE LONG CONSTANT txdb$k_csa1_data = 1 ! 1 Drive 1 data binary data DECLARE LONG CONSTANT txdb$k_csa3_data = 2 ! 2 Drive 3 data binary data DECLARE LONG CONSTANT txdb$k_opa4_data = 3 ! 3 Nolog term/diag writ ascii/binary data DECLARE LONG CONSTANT txdb$k_csa2_data = 4 ! 4 Drive 2 data binary data DECLARE LONG CONSTANT txdb$k_uns_csm_data = 5 ! 5 Unsolicited CSM data csm status DECLARE LONG CONSTANT txdb$k_opa5_data = 6 ! 6 Remote terminal write ascii data DECLARE LONG CONSTANT txdb$k_diagnostic = 7 ! 7 DECLARE LONG CONSTANT txdb$k_decnet_data = 8 ! 8 DECnet data binary data DECLARE LONG CONSTANT txdb$k_drive_cmd = 9 ! 9 Drive ( CSA1/2/3 ) command function code DECLARE LONG CONSTANT txdb$k_csm_cmd = 10 ! A Cons support ucode cmd function code DECLARE LONG CONSTANT txdb$k_csm_data = 11 ! B Console support data binary data DECLARE LONG CONSTANT txdb$k_csm_cksum = 12 ! C CSM checksum binary data DECLARE LONG CONSTANT txdb$k_toy_data = 13 ! D TOY clock data binary data DECLARE LONG CONSTANT txdb$k_spare_e = 14 ! E ( unused ) DECLARE LONG CONSTANT txdb$k_misc_comm = 15 ! F Miscellaneous command command code ! DECLARE LONG CONSTANT txdb$k_csa1_cmd = 0 ! csa1 command DECLARE LONG CONSTANT txdb$k_csa2_cmd = 1 ! csa2 command DECLARE LONG CONSTANT txdb$k_csa3_cmd = 2 ! csa3 command ! DECLARE LONG CONSTANT txdb$k_read_sector = 0 ! DECLARE LONG CONSTANT txdb$k_write_sector = 1 ! DECLARE LONG CONSTANT txdb$k_read_status = 2 ! ! DECLARE LONG CONSTANT txdb$k_software_done = 1 ! 1 - Software is done DECLARE LONG CONSTANT txdb$k_boot_this_cpu = 2 ! 2 - Boot this cpu DECLARE LONG CONSTANT txdb$k_clear_warm_start = 3 ! 3 - Clear warm start flag DECLARE LONG CONSTANT txdb$k_clear_cold_start = 4 ! 4 - Clear cold start flag DECLARE LONG CONSTANT txdb$k_boot_other_cpu = 5 ! 5 - Boot ( restart ) other cpu DECLARE LONG CONSTANT txdb$k_unjam = 6 ! 6 - UNJAM command DECLARE LONG CONSTANT txdb$k_loadnboot = 7 ! 7 - @LOADNBOOT DECLARE LONG CONSTANT txdb$k_toy_read = 8 ! 8 - Read TOY register DECLARE LONG CONSTANT txdb$k_toy_write = 9 ! 9 - Write TOY register DECLARE LONG CONSTANT txdb$k_disable_sec = 10 ! A - Disable secondary DECLARE LONG CONSTANT txdb$k_emm_status_inq = 11 ! B - EMM Status Inquiry DECLARE LONG CONSTANT txdb$k_force_next_prim = 12 ! C - Force next primary to opposite DECLARE LONG CONSTANT txdb$k_get_cpu_info = 13 ! D - Get CPU Information request DECLARE LONG CONSTANT txdb$s_n_txdb_register = 4 record n_txdb_register group txdb$r_fill_73 variant case LONG txdb$l_txdb case group txdb$r_fill_74 group txdb$r_txdb_data_overlay variant case BYTE txdb$b_data ! Data byte case group txdb$r_data_fields BYTE msg_bits ! COMMENT ADDED BY SDL - msg_bits contains bits msg through msg_type end group txdb$r_data_fields end variant end group txdb$r_txdb_data_overlay ! ID field ! unused, must be zero ! Error flag BYTE id_bits ! COMMENT ADDED BY SDL - id_bits contains bits id through error WORD txdb$w_hiword ! unused, must be zero end group txdb$r_fill_74 end variant end group txdb$r_fill_73 ! ! Constant definitions for id field ! ! Valu Function Name Data Field ! Definitions for data byte fields for CSAx command message type ! ! Definitions for data byte field for csax_cmd message ! ! Definitions for data byte field for miscellaneous communications. ! end record n_txdb_register ! ! Definitions for data byte field for unsolicited CSM data. ! DECLARE LONG CONSTANT txdb$m_csm_trap_flag = x'00000080' DECLARE LONG CONSTANT txdb$s_csm_unsolicited_data = 1 record csm_unsolicited_data group txdb$r_fill_75 variant case BYTE txdb$b_csm_data case group txdb$r_fill_76 ! Halt code if flag=1 ! 0=TOMM, 1=HALT BYTE halt_code_bits ! COMMENT ADDED BY SDL - halt_code_bits contains bits halt_code through csm_trap_flag end group txdb$r_fill_76 end variant end group txdb$r_fill_75 end record csm_unsolicited_data