IDENT LOADBC,110B,LOADBC ABS SST ENTRY LOADBC ENTRY RFL= ENTRY SSJ= SYSCOM B1 TITLE LOADBC - LOAD BUFFER CONTROLWARE. *COMMENT LOADBC - LOAD BUFFER CONTROLWARE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. LOADBC SPACE 4,10 ***** LOADBC - DOWNLOAD DISK OR NAD CONTROLWARE. * * W. J. SMITH. 79/07/21. * J. L. LARSON. 83/06/14. * * LOAD APPROPRIATE CONTROLWARE ON REQUESTED CHANNEL. LOADBC SPACE 4,10 *** *LOADBC* IN CONJUNCTION WITH THE PP PROGRAM *1LC* WILL DOWN- * LOAD CONTROLWARE TO THE REQUESTED CHANNEL AND CONTROLLER. * * COMMAND CALL - (DISK AND LOCAL NAD FORMAT) * * LOADBC(C=XX,F=EEEEEEE,D=DDDDDDD) * * XX OCTAL CHANNEL NUMBER. IF NOT SPECIFIED * (FOR A SYSTEM INITIATED REQUEST), CHANNEL IS * DETERMINED FROM THE CHANNEL CONTROLWARE TABLE OR * THE EST (CONTROL MODULE LOAD). * IF THE PREFIX C IS USED THE CHANNEL IS A CONCURRENT * CHANNEL. (IE. C4 = CONCURRENT CHANNEL 4) * * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM * (DEFAULT = SYSTEM FILE). * * DDDDDDD FILE NAME TO DUMP CONTROLLER MEMORY TO BEFORE * CONTROLLER RELOAD. THE DUMP CAPABILITY IS AVAILABLE * FOR 7155/7165/7255 CONTROLLERS ONLY * (DEFAULT = NO LOAD). * * *LOADBC* PRESENTLY ASSUMES A CONTROLLER PHYSICAL EQUIPMENT * NUMBER OF ZERO. * * COMMAND CALL - (CONTROL MODULE) * * LOADBC(EQ=EO,F=EEEEEEE) * * EO CONTROL MODULE EST ORDINAL. * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM * (DEFAULT = SYSTEM FILE). * * * *LOADBC* CAN ALSO LOAD CONTROLWARE ON REMOTE NADS * VIA *NLD* AFTER FIRST OBTAINING VALIDATION FROM *CVL*. * * COMMAND CALL - (REMOTE NAD FORMAT) * * LOADBC(C=XX,ND=AA,TY=BBB,LT=CC,AC=DDDD,F=EEEEEEE) * * XX OCTAL CHANNEL NUMBER. * AA HEXADECIMAL REMOTE NAD NUMBER. * BBB TYPE OF CONTROLWARE TO LOAD. * 170 - CYBER 170 (DEFAULT). * IBM - IBM. * MIN - COMMON MINICOMPUTER. * 200 - CYBER 20X. * CC LOGICAL TCU ENABLES MASK. * DDDD HEXADECIMAL ACCESS CODE. * EEEEEEE FILE NAME TO LOAD CONTROLWARE FROM * (DEFAULT = SYSTEM FILE). LOADBC SPACE 4,10 *** DAYFILE MESSAGES. * * * BUFFER ARGUMENT ERROR.* * *LOADBC* LOAD FET CONTAINED INCORRECT BUFFER POINTER. * * * CHXX, CONTROLLER RESERVED.* * THE MULTIPLE-ACCESS CONTROLLER IS RESERVED THROUGH THE * ALTERNATE ACCESS. *LOADBC* DELAYS AND CONTINUES RETRY * OF CONTROLWARE RELOAD VIA *1LC* UNTIL THE RESERVE IS * RELEASED. * * * CONTROLLER DID NOT TAKE ALL CONTROLWARE.* * THE CONTROLLER DID NOT TAKE ALL THE DATA IN THE * CONTROLWARE RECORD DURING LOAD PROCESSING. * THE CONTENTS OF THE A REGISTER IN *1LC* WAS NOT * ZERO AFTER ONE OF THE *OAM* INSTRUCTIONS. * * * CONTROLLER DUMP COMPLETE.* * REQUESTED CONTROLLER DUMP WAS SUCCESSFUL. * * * CONTROLLER DUMP UNSUCCESSFUL.* * *1LC* WAS UNABLE TO DUMP 7155 CONTROLLER MEMORY DUE * TO FUNCTION TIMEOUT OR INCORRECT CONTROLLER RESPONSE. * * * CONTROLWARE LOAD ABORT, C=XX.* * REQUESTED CONTROLWARE LOAD WAS UNSUCCESSFUL. * XX = CHANNEL NUMBER XX REQUESTED. * * * CONTROLWARE LOAD ABORT, EQ=XXX.* * REQUESTED CONTROLWARE LOAD WAS UNSUCCESSFUL. * XX = CONTROL MODULE EST ORDINAL. * * * CONTROLWARE LOAD ALREADY IN PROGRESS.* * REQUESTED CONTROLWARE LOAD FOR SPECIFIED CHANNEL * WAS ALREADY BEING PROCESSED BY ANOTHER COPY OF * *LOADBC*/*1LC*. * * * CONTROLWARE NOT FOUND.* * EITHER THE SPECIFIED FILE DOES NOT CONTAIN THE * REQUESTED CONTROLWARE, OR *F=0* WAS SPECIFIED. * * * DUMP BUFFER ARGUMENT ERROR.* * *LOADBC* DUMP FET CONTAINED INCORRECT BUFFER POINTER. * * * ERROR IN PARAMETERS.* * *LOADBC* COMMAND CONTAINED INCORRECT PARAMETER(S). * * * FUNCTION TIMED OUT=NNNN.* * *1LC* TIMED OUT IN THE FUNCTION ROUTINE WHEN * FUNCTIONING THE CONTROLLER DURING LOAD PROCESSING. * NNNN = FUNCTION NUMBER. * * * GENERAL STATUS = NNNN.* * NNNN = THE GENERAL STATUS AFTER THE CONTROLWARE LOAD * WAS COMPLETED. THE CONTROLWARE LOAD WAS NOT * SUCCESSFUL AND THE GENERAL STATUS IS NOT ZERO. * * * INSUFFICIENT DUMP BUFFER SPACE.* * *LOADBC* DUMP FET BUFFER SPACE WAS INSUFFICIENT FOR * CONTROLLER MEMORY DUMP. * * * INCORRECT CHANNEL NUMBER.* * CHANNEL NUMBER SUPPLIED ON *LOADBC* COMMAND WAS NOT * NUMERIC OR WAS NOT A VALID HARDWARE CHANNEL NUMBER. * * * INCORRECT EST ORDINAL.* * EST ORDINAL SUPPLIED ON *LOADBC* COMMAND WAS NOT A * VALID EST ORDINAL. * * * INCORRECT 1LC DUMP RESPONSE CODE.* * *1LC* RETURNED AN INCORRECT RESPONSE CODE TO *LOADBC*. * * * LENGTH IN 52 TABLE .NE. FET.* * THE CONTROLWARE RECORD LENGTH IN THE 52 TABLE DID NOT * EQUAL THE CONTROLWARE RECORD LENGTH SPECIFIED IN THE * FET AFTER THE CONTROLWARE WAS READ INTO *LOADBC* FIELD * LENGTH. * * * LOADBC ABORT - BAD INITIATION PARAMETERS.* * THE ACTUAL NAD MEMORY SIZE IS SMALLER THAN THE * SPECIFIED *LOADBC* DEFAULT MEMORY SIZE. * * * LOADBC ABORT - XXX ERROR CODE = YYY.* * PP PROGRAM XXX (*CVL* OR *NLD*) RETURNED A RESPONSE * CODE OF YYY WHEN VALIDATING THE NAD OR WHEN * LOADING NAD CONTROLWARE. * * * LOADBC REMOTE NAD LOAD - GO OR DROP.* * FLASHING DISPLAY MESSAGE INDICATING THAT *CVL* COULD * NOT DETERMINE THE STATUS OF THE NAD. OPERATOR * ACTION IS REQUIRED BEFORE CONTROLWARE WILL BE * LOADED. * * * NO CHANNEL LOAD REQUEST.* * CHANNEL WAS NOT SPECIFIED ON THE *LOADBC* COMMAND * AND CHANNEL CONTROLWARE LOAD REQUEST WAS NOT FOUND * IN THE CHANNEL TABLE. * * * NO CONTROLWARE ON CHANNEL.* * THE CHANNEL TABLES INDICATE NO CONTROLWARE * EXISTS ON THE REQUESTED CHANNEL. * * * NO GENERAL STATUS RECEIVED.* * AFTER A GENERAL STATUS FUNCTION IN *1LC*, THE *IAM* * INSTRUCTION DID NOT RECEIVE THE STATUS WORD. * * * NO 52 TABLE IN CONTROLWARE RECORD.* * THE CONTROLWARE RECORD READ FROM THE FILE DID * NOT CONTAIN A 52 TABLE ENTRY. * * * NO 77 TABLE IN CONTROLWARE RECORD.* * THE CONTROLWARE RECORD READ FROM THE FILE DID * NOT CONTAIN A 77 PREFIX TABLE. * * * NOT CORRECT CONTROLLER TYPE FOR DUMP.* * REQUESTED CONTROLLER DUMP WAS NOT PERFORMED SINCE * THE DEVICE IS NOT A 7155/7165 CONTROLLER NOR A 7255 * ADAPTOR. * * * NOT CONTROL MODULE EST ORDINAL.* * EST ORDINAL SUPPLIED ON *LOADBC* COMMAND DOES NOT * CORRESPOND TO A CONTROL MODULE DEVICE. * * * SPECIFIED CHANNEL IS IN USE.* * THE CHANNEL TABLES INDICATE THE SPECIFIED CHANNEL * WAS DOWN AND ASSIGNED TO MAINTENANCE PERSONNEL. * * * SYSTEM NOT IN ENGR MODE.* * *LOADBC* AND *1LC* INITIATED FROM A NON-SYSTEM REQUEST * REQUIRE ENGINEERING MODE ENABLED. * * * USER NOT SYSTEM ORIGIN.* * *LOADBC* AND *1LC* CAN ONLY BE INITIATED FROM SYSTEM * ORIGIN OR FROM A SYSTEM REQUEST. * * * VALIDATION DENIED - DEVICE NOT FOUND.* * *CVL* RETURNED A RESPONSE INDICATING THAT THE * SPECIFIED NAD WAS NOT FOUND IN THE EST. * * * VALIDATION DENIED - DEVICE ON OR IN USE.* * *CVL* RETURNED A RESPONSE INDICATING THAT NAD * CONTROLWARE COULD NOT BE LOADED BECAUSE THE NAD * WAS TURNED ON OR IN USE. * * * YYY FIRMWARE MATTT-VVV,CH=XX.* * YYY = CONTROLLER TYPE (844, 885, FSC ADAPTOR). * TTT = CONTROLWARE TYPE (401, 454, 710, 721). * VVV = VERSION NUMBER (A12, A13,...). * XX = CHANNEL ON WHICH CONTROLWARE WAS DOWNLOADED. LOADBC SPACE 4,10 *** ERRLOG MESSAGES. * * *CHXX,MATTT,AVV,LOAD COMPLETE.* * XX = CHANNEL ON WHICH DISK CONTROLWARE WAS DOWNLOADED. * TTT = CONTROLWARE TYPE (MA401, MA454, MA710, MA721). * VV = VERSION NUMBER (A12, A13, A15, ...). * * * CHXX,ABORT,SYYYY.* * AN ERROR IN GENERAL STATUS AFTER THE CONTROLWARE WAS * DOWNLOADED. * XX = CHANNEL NUMBER XX. * YYYY = GENERAL STATUS. * * * CHXX,ABORT,FYYYY.* * FUNCTION TIMEOUT WHEN FUNCTIONING THE DISK CONTROLLER. * XX = CHANNEL NUMBER. * YYYY = FUNCTION THAT TIMED OUT. * * * CHXX,ABORT,ALL DATA NOT TAKEN.* * THE CONTROLLER DID NOT ACCEPT ALL THE DATA ON A * DOWNLOAD CONTROLWARE ATTEMPT. * XX = CHANNEL NUMBER. * * * CHXX,ABORT,NO GENERAL STATUS.* * AFTER DOWNLOAD OF CONTROLWARE WAS COMPLETE, THE * GENERAL STATUS WORD WAS NOT RETURNED BY THE CONTROLLER * AFTER A STATUS FUNCTION. * XX = CHANNEL NUMBER. * * * CHXX, CONTROLLER RESERVED.* * THE GENERAL STATUS INDICATED THE MULTIPLE-ACCESS * CONTROLLER WAS RESERVED THROUGH THE ALTERNATE ACCESS. * CONTROLWARE IS DOWNLOADED AFTER THE CONTROLLER RESERVE * IS RELEASED. * XX = CHANNEL NUMBER. SPACE 4,10 *** *LOADBC* IS A CPU PROGRAM WHICH LOADS CONTROLWARE TO * A SPECIFIED OR DRIVER REQUESTED CHANNEL OR CONTROL * MODULE. THE CONTROLWARE IS READ FROM A LOCAL * FILE OR FROM THE SYSTEM (DEFAULT) FILE. * IF CONTROLWARE IS TO BE LOADED ON A DISK CHANNEL, *1LC* * IS CALLED TO DO THE ACTUAL LOADING OF CONTROLWARE READ FROM * *LOADBC* FIELD LENGTH. A RESPONSE CODE IS RETURNED TO * *LOADBC* LOAD FET+0 AND THE APPROPRIATE DAYFILE MESSAGE * IS ISSUED. *LOADBC* WILL RETRY CONTROLWARE RELOAD VIA *1LC* * *CRRC* TIMES BEFORE THE RELOAD IS CONSIDERED UNSUCCESSFUL * DUE TO CONTROLLER HARDWARE MALFUNCTION. FOR 7155 DISK * CONTROLLERS, *1LC* WILL ALSO OPTIONALLY DUMP THE CONTROLLER * MEMORY TO *LOADBC* DUMP BUFFER BEFORE RELOADING THE * CONTROLWARE. *LOADBC* WILL PERFORM A BINARY COMPARISON * BETWEEN THE OLD AND NEW CONTROLWARE AND WRITE THIS * DATA TO A FILE THAT CAN BE PROCESSED BY *DSDI*. * IF CONTROLWARE IS TO BE LOADED ON A NAD CHANNEL, *CVL* IS * FIRST CALLED TO VALIDATE ACCESS TO THAT NAD. IF VALIDATION * HAS BEEN GRANTED, *NLD* IS CALLED FOUR TIMES - 1) TO LOAD * CONTROLWARE USING DEFAULT NAD BUFFER AND MEMORY SIZE * PARAMETERS, 2) TO OBTAIN GENERAL NAD STATUS AND THE NAD-S * ACTUAL MEMORY SIZE, 3) TO LOAD CONTROLWARE USING THE ACTUAL * NAD MEMORY SIZE, AND 4) TO RETURN THE LOCAL NAD TO A * USABLE STATE. THE ASSIGNED LOCAL NAD IS THEN RELEASED * BY A FINAL CALL TO *CVL*, AND AN APPROPRIATE DAYFILE * MESSAGE IS ISSUED. SPACE 4,10 * MACRO DEFINITIONS. *CALL COMCCMD *CALL COMCMAC NIPADD SPACE 4,15 ** NIPADD - NAD INITIATION PARAMETER ADDRESS. * * NIPADD W * W = NAD WORD ORDINAL (0-24). * * USES X - 2. * A - 2. * B - 2. NIPADD MACRO W LOCAL A,B MACREF NIPADD A SET W*24/60 *NADIP* TABLE OFFSET B SET W*24-A*60 SHIFT COUNT SA2 NADIP+A SB2 B+12D ENDM NSTADD SPACE 4,15 ** NSTADD - NAD STATUS WORD ADDRESS. * * NSTADD W * W = NAD STATUS WORD ORDINAL (0-23). * * USES X - 2. * A - 2. * B - 2. NSTADD MACRO W LOCAL A,B MACREF NSTADD A SET W*16/60 NAD STATUS BLOCK OFFSET B SET W*16-A*60 SHIFT COUNT SA2 GST+A SB2 B ENDM SPACE 4,10 * COMMON DECKS. *CALL COMSDFS *CALL COMSDSL *CALL COMSPRD *CALL COMSSSD *CALL COMSSSJ SPACE 4,10 * LOCAL SYMBOL DEFINITIONS. BUFL EQU 10000D BUFFER SIZE NECESSARY FOR NAD CW CRRC EQU 3 CONTROLWARE RELOAD RETRY COUNT CTL EQU 201B *CVL* LOAD CONTROLWARE FLAGS CTSZ EQU 40000B 7165 CONTROLLER MEMORY SIZE DBUFL SET CTSZ*2+4 DBUFL SET DBUFL/5+1 DUMP BUFFER LENGTH FDBC EQU 100B FIRST DUMP BYTE TO COMPARE FDWI EQU FDBC*2/5 FIRST DUMP WORD INDEX FDBI EQU FDBC*2-FDWI*5 FIRST DUMP BYTE INDEX LDBC EQU 13710B+1 LAST DUMP BYTE + 1 TO COMPARE LDWI EQU LDBC*2/5 LAST DUMP WORD INDEX LDBI EQU LDBC*2-LDWI*5 LAST DUMP BYTE INDEX CDHZ EQU 2410D CONTROLWARE DIAGNOSTICS HEADER SIZE FLBC EQU CDHZ+FDBC-100B FIRST LOAD BYTE TO COMPARE ERRNG FDBC-100B LOAD BEGINS AT 100B AFTER DIAGNOSTICS FLWI EQU FLBC*2/5 FIRST LOAD WORD INDEX FLBI EQU FLBC*2-FLWI*5 FIRST LOAD BYTE INDEX NAD EQU 300B *CVL* NAD DEVICE CODE RND EQU 301B *CVL* REMOTE NAD DEVICE CODE RTNU EQU 10B RETURN EQUIPMENT BIT VRNM EQU 4 *CVL* RESPONSE - DEVICE NOT FOUND VRUS EQU 6 *CVL* RESPONSE - DEVICE IN USE OR ON VRSI EQU 34B *CVL* RESPONSE - NAD STATUS INDETERMINATE SPACE 4,10 * GLOBAL MEMORY DEFINITIONS. ORG 110B SSJ= VFD 36/0,12/LCCS,12/IRSI BSSZ SSJL-1 SPACE 4,10 * FILE ENVIRONMENT TABLES. IN EQU * SYSTEM RFILEB BUF,BUFL,(FET=9) DUMP FILEB DBUF,DBUFL ORG DUMP CON 0 CLEAR DUMP FILE NAME ORG DUMP+5 SPACE 4,10 * CONTROL STORAGE CELLS. ACC CON 0 REMOTE NAD ACCESS CODE CCHF CON 0 CONCURRENT CHANNEL FLAG CHAN VFD 18/2H ,42/0 CHANNEL IN DISPLAY CODE LEFT JUSTIFIED CHN CON 0 CHANNEL NUMBER CME CON 0 CONTROL MODULE EST ORDINAL CMES CON 0 EST ORDINAL DISPLAY CODE LEFT JUSTIFIED CMQ CON 0 CONTROL MODULE EQUIPMENT NUMBER CRN CON 0 CONTROLWARE RECORD NAME LEFT JUSTIFIED CWL CON 0 CONTROLWARE LENGTH DRCF CON 0 SET IF NOT DRIVER CALL ESTW CON -1 EST POINTER WORD *ESTP* FN VFD 36/6HSYSTEM,24/0 DEFAULT CONTROLWARE FILE FWC CON 0 FWA OF CONTROLWARE LTCU CON 0 LOGICAL TCU ENABLES LWC CON 0 LWA+1 OF CONTROLWARE RE CON 0 RETURN EQUIPMENT FLAG RL CON 0 REMOTE NAD LOAD FLAG RNAD CON 0 REMOTE NAD NUMBER RT CON CRRC RETRY COUNT TYPE DATA 0L170 NAD CONTROLWARE TYPE TYPN CON 0 NAD TYPE FLAG GST BSSZ 100B GENERAL STATUS RETURNED BY *NLD* GSTL EQU * APPROXIMATE END OF GENERAL STATUS CVLB SPACE 4,10 ** *CVL* PARAMETER BLOCK. CVLB BSS 0 LOC 0 CRC CON 0 RESPONSE CODE CEO CON 0 EST ORDINAL CCH CON 1S48 CHANNEL CEQ CON 1S48+NAD*10000B LOCAL NAD DEVICE CODE CUN CON 0 UNIT (NOT USED FOR *RHF*) CDV CON 1S48 NAD DEVICE CODE CFC CON 0 FUNCTION CHARACTERISTICS CAC CON 0 REMOTE HOST ACCESS CODE CLT CON 0 LOGICAL TCU ENABLES MASK CND CON 0 REMOTE NAD NUMBER LOC *O NLDB SPACE 4,10 ** *NLD* PARAMETER BLOCK. NLDB CON 0 RESPONSE CODE CON 0 *FIRST* CON 0 *IN* CON 0 *OUT* CON 0 *LIMIT* CON 0 RESERVED FOR REMOTE NAD LOADING * *NLD* PARAMETER BLOCK FOR NAD STATUS. NADSTAT BSS 1 WORD 0 OF *NLD* PARAMETER BLOCK VFD 60/GST *FIRST* VFD 60/GST *IN* VFD 60/GST *OUT* VFD 60/GSTL *LIMIT* BSSZ 1 RESERVED FOR REMOTE NAD STATUS SPACE 4,10 * NAD STATUS SYMBOLS. WAMS EQU 22D WORD ORDINAL OF ACTUAL MEMORY SIZE WUNM EQU 12D WORD ORDINAL OF UNUSED NAD MEMORY TRCM SPACE 4,10 ** TRCM - GENERATE MESSAGE ADDRESS TABLE. * * TRCM BML,DAY,ERROR * * BML BINARY MAINTENANCE LOG MESSAGE FIRST WORD ADDRESS. * DAY DAYFILE MESSAGE FIRST WORD ADDRESS. * ERROR ERROR LOG MESSAGE FIRST WORD ADDRESS. PURGMAC TRCM TRCM MACRO BML,DAY,ERROR VFD 24/BML VFD 18/DAY VFD 18/ERROR ENDM TLRC SPACE 4,10 ** TLRC - INDEXED TABLE OF LOAD RESPONSE MESSAGE ADDRESSES. * *T TLRC VFD 6/0,18/ BML ,18/ DAY ,18/ ERROR * * BML BINARY MAINTENANCE LOG MESSAGE FIRST WORD ADDRESS. * DAY DAYFILE MESSAGE FIRST WORD ADDRESS. * ERROR ERROR LOG MESSAGE FIRST WORD ADDRESS. TLRC BSS 0 LOC 0 TRCM ,MSG0,EMSG RC1 TRCM ,MSG1 RC2 TRCM ,MSG2 RC3 TRCM ,MSG3 RC4 TRCM ,MSG4 RC5 TRCM ,MSGRR RC6 TRCM ,MSG6 RC7 TRCM ,MSG7 RC10 TRCM ,MSG10 RC11 TRCM ,MSG11 RC12 TRCM ,MSG12 RC13 TRCM ,MSGRR RC14 TRCM ,MSG14 RC15 TRCM ,MSG15 RC16 TRCM ,MSG16 RC17 TRCM ,MSG17 RC20 TRCM ,MSG20 RC21 TRCM ,MSG21 RC22 TRCM ,MSGRR RC23 TRCM ,MSGRR RC24 TRCM ,MSGRR RC25 TRCM ,MSGRR RC26 TRCM ,MSGRR RC27 TRCM ,MSGRR RCAML EQU * LOAD RESPONSE CODE ABORT MESSAGE LIMIT RC30 TRCM BML30,MSG30,EMSG0 RC31 TRCM BML31,MSG31,EMSG1 RC32 TRCM BML32,MSG32,EMSG2 RC33 TRCM BML33,MSG33,EMSG3 RC34 TRCM 0,IRMB,EMSG4 LOC *O TLRCL EQU *-TLRC TABLE LENGTH TDMA SPACE 4,10 ** TDMA - INDEXED TABLE OF DUMP RESPONSE MESSAGE ADDRESSES. * * 42/0, 18/DAYFILE MESSAGE ADDRESS TDMA BSS 0 LOC 0 CON DRM0 * CONTROLLER DUMP COMPLETE.* DR1 CON DRM1 * DUMP BUFFER ARGUMENT ERROR.* DR2 CON DRM2 * INSUFFICIENT DUMP BUFFER SPACE.* DR3 CON DRM3 * NOT CORRECT CONTROLLER TYPE FOR DUMP.* DR4 CON DRM4 * CONTROLLER DUMP UNSUCCESSFUL.* TDMAL EQU * TABLE LENGTH DR5 CON DRM5 * INCORRECT 1LC DUMP RESPONSE CODE.* LOC *O SPACE 4,10 * DAYFILE MESSAGES ISSUED BY *LOADBC*. MSG0 DATA C* YYY FIRMWARE VVVVVVVVV,CH=XXX.* MSG1 DATA C* USER NOT SYSTEM ORIGIN.* MSG2 DATA C* SPECIFIED CHANNEL IS IN USE.* MSG3 DATA C* NO CHANNEL LOAD REQUEST.* MSG4 DATA C* ERROR IN PARAMETERS.* MSG6 DATA C* INCORRECT CHANNEL NUMBER.* MSG7 DATA C* NO CONTROLWARE ON CHANNEL.* MSG10 DATA C* CONTROLWARE NOT FOUND.* MSG11 DATA C* SYSTEM NOT IN ENGR MODE.* MSG12 DATA C* BUFFER ARGUMENT ERROR.* MSG14 DATA C* CONTROLWARE LOAD ALREADY IN PROGRESS.* MSG15 DATA C* NO 77 TABLE IN CONTROLWARE RECORD.* MSG16 DATA C* NO 52 TABLE IN CONTROLWARE RECORD.* MSG17 DATA C* LENGTH IN 52 TABLE .NE. FET.* MSG20 DATA C* INCORRECT EST ORDINAL.* MSG21 DATA C* NOT CONTROL MODULE EST ORDINAL.* MSG30 DATA C* CONTROLLER DID NOT TAKE ALL CONTROLWARE.* MSG31 DATA C* GENERAL STATUS = NNNN.* MSG32 DATA C* FUNCTION TIMED OUT=NNNN.* MSG33 DATA C* NO GENERAL STATUS RECEIVED.* MSGRR DATA C* CDC RESERVED RESPONSE CODE.* DRM0 DATA C* CONTROLLER DUMP COMPLETE.* DRM1 DATA C* DUMP BUFFER ARGUMENT ERROR.* DRM2 DATA C* INSUFFICIENT DUMP BUFFER SPACE.* DRM3 DATA C* NOT CORRECT CONTROLLER TYPE FOR DUMP.* DRM4 DATA C* CONTROLLER DUMP UNSUCCESSFUL.* DRM5 DATA C* INCORRECT 1LC DUMP RESPONSE CODE.* MSGA DATA C* CONTROLWARE LOAD ABORT, C=XXXXXXX.* MSGB DATA C* CONTROLWARE LOAD COMPLETE.* MSGC DATA C* CONTROLWARE LOAD ABORT, EQ=XXXXXXX.* SPACE 4,10 * ERROR LOG MESSAGES. EMSG DATA C*CHXXX,YYYYYYYYY,LOAD COMPLETE.* EMSG0 DATA C* CHXXX,ABORT,ALL DATA NOT TAKEN.* EMSG1 DATA C* CHXXX,ABORT,SYYYY.* EMSG2 DATA C* CHXXX,ABORT,FYYYY.* EMSG3 DATA C* CHXXX,ABORT,NO GENERAL STATUS.* EMSG4 DATA C* CHXXX, CONTROLLER RESERVED.* SPACE 4,10 * BML MESSAGES. BMLM VFD 12/BMLML,48/0 SET MESSAGE LENGTH VFD 12/DM0401,12/HI0105,12/0,12/0,12/0 CHANNEL/EQUIPMENT VFD 60/0 CONTROLWARE TYPE AND VERSION BMLML EQU *-BMLM-1 MESSAGE LENGTH BML30 VFD 12/BML30L,48/0 SET MESSAGE LENGTH VFD 12/DM0401,12/HI0114,12/0,24/0 CHANNEL VFD 60/0 NOT USED BML30L EQU *-BML30-1 MESSAGE LENGTH BML31 VFD 12/BML31L,48/0 SET MESSAGE LENGTH VFD 12/DM0401,12/HI0115,12/0,24/0 CHANNEL VFD 60/0 LAST STATUS BML31L EQU *-BML31-1 MESSAGE LENGTH BML32 VFD 12/BML32L,48/0 SET MESSAGE LENGTH VFD 12/DM0401,12/HI0116,12/0,24/0 CHANNEL VFD 60/0 LAST FUNCTION BML32L EQU *-BML32-1 MESSAGE LENGTH BML33 VFD 12/BML33L,48/0 SET MESSAGE LENGTH VFD 12/DM0401,12/HI0117,12/0,24/0 CHANNEL VFD 60/0 NOT USED BML33L EQU *-BML33-1 MESSAGE LENGTH TITLE NAD CONTROLWARE PARAMETERS. NADCON SPACE 4,10 ** NADCON - GENERATE NAD CONSTANT. * * NADCON P * P = HEXADECIMAL VALUE (0-FFFF). NADCON MACRO P LOCAL A,B MACREF NADCON A SET P/0#100 B SET P-A*0#100 VFD 4/0,8/A,4/0,8/B ENDM NADIP SPACE 4,10 ** NADIP - NAD INITIALIZATION PARAMETERS. * * THE FOLLOWING INITIALIZATION PARAMETERS ARE LOADED AT THE * END OF THE NAD CONTROLWARE. THEY ARE USED BY THE CONTROLWARE * TO CONFIGURE THE NAD DURING INITIALIZATION. * * NOTE - IF ENABLED NAD BUFFER TRACING IS DESIRED, THE * ANALYST SHOULD CHANGE THE APPROPRIATE LINE BELOW TO - * NADCON 0#2954 ENABLE NAD BUFFER TRACING. NADIP BSS 0 NADCON 0 NAD MEMORY SIZE - 1 NADCON 0#F TCU ENABLES NADCON 0 STREAM MODE NADCON 0#19 NUMBER OF NADS NADCON 0#23 MAXIMUM NUMBER OF PATHS NADCON 0 RESERVED NADCON 0 INTERNAL BUFFER COUNT NADCON 0 RESERVED NADCON 0 CONTROL MESSAGE BUFFER COUNT NADCON 0#81 TYPE 0 BUFFER SIZE NADCON 0 TYPE 0 BUFFER COUNT NADCON 0#810 TYPE 1 BUFFER SIZE NADCON 0 TYPE 1 BUFFER COUNT NADCON 0 TYPE 2 BUFFER SIZE NADCON 0 TYPE 2 BUFFER COUNT NADCON 0 TYPE 3 BUFFER SIZE NADCON 0 TYPE 3 BUFFER COUNT NADCON 6 TRUNK RECEIVER QUEUE LIMIT NADCON 6 TRUNK SEND QUEUE LIMIT NADCON 0#1E CONTROL MESSAGE RECEIVE QUEUE LIMIT NADCON 0#1E CONTROL MESSAGE SEND QUEUE LIMIT NADCON 2 PATH RECEIVE QUEUE LIMIT NADCON 2 PATH SEND QUEUE LIMIT NADCON 0 DISABLE NAD BUFFER TRACING (DEFAULT) NADCON 1R:/1R:*10000B CHARACTER SET MODE (DEFAULT 64) DATA 0 LNADIP EQU *-NADIP * *NADIP* TABLE WORD OFFSETS. WCBC EQU 8 CONTROL MESSAGE BUFFER COUNT WIBC EQU 6 INTERNAL (SYSTEM) BUFFER COUNT WMNP EQU 4 MAXIMUM NUMBER OF PATHS WNMS EQU 0 NAD MEMORY SIZE WTBC EQU 12D TYPE 1 BUFFER COUNT * NAD INITIATION PARAMETER DEFINITIONS. DCBC EQU 0#23 DEFAULT CONTROL MESSAGE BUFFER COUNT DNMS EQU 0#7FFF DEFAULT NAD MEMORY SIZE - 1 DTBC EQU 2 DEFAULT TYPE 1 BUFFER SIZE LCBC EQU 0#30 CONTROL MESSAGE BUFFER LENGTH LTBC EQU 0#820 TYPE 1 BUFFER LENGTH TITLE MAIN PROGRAM. LBC SPACE 4,10 ** LOADBC - LOAD BUFFER CONTROLWARE MAIN PROGRAM. LOADBC BSS 0 ENTRY SB1 1 RJ PRS PRESET SA1 DRCF NZ X1,LBC2 IF NOT DRIVER CALL LBC1 RJ SCN SELECT CHANNEL NUMBER SA1 CME NZ X1,LBC2 IF LOAD REQUEST FOR CONTROL MODULE RJ CCS CHECK CHANNEL STATUS LBC2 RJ RCF READ CONTROLWARE FILE LBC3 SA2 DUMP ZR X2,LBC4 IF NO DUMP REQUESTED SX2 A2+ LX2 18 LBC4 SA3 CME SA1 CHN ZR X3,LBC4.1 IF CONTROL MODULE NOT SPECIFIED SX1 X3+4000B SET CONTROL MODULE FLAG FOR *1LC* LBC4.1 SA3 DRCF LX3 10 BX6 X3+X1 SA6 IN+8 SA3 LBCA BUILD *1LC* CALL WORD BX6 X3+X2 SET DUMP REQUEST MX7 42 SA1 IN CLEAR FET+0 RESPONSE CODE SA6 LBCD+1 SA6 LBCB BX7 X7*X1 SA7 A1 SA2 CCHF CHECK FOR CONCURRENT CHANNEL NZ X2,LBC6 IF CONCURRENT CHANNEL SYSTEM SPC,,A6 CALL *1LC* EQ LBC7 COMPLETE LOAD LBC6 SYSTEM CPM,R,LBCD,140B*100B ASSIGN CIO PP FOR THE LOAD LBC7 RECALL IN WAIT FOR LOAD TO COMPLETE SA1 X2 GET *1LC* RESPONSE CODE MX0 -8 LX1 -1 BX0 -X0*X1 SX2 X0-RC14 CHECK FOR LOAD ALREADY IN PROGRESS SA1 DRCF CHECK IF NEED TO RESELECT CHANNEL BX1 X1+X2 CX1 X1 ZR X1,LBC1 IF RELOAD IN PROGRESS FOR DRIVER REQUEST SA1 CME ZR X1,LBC8 IF NOT CONTROL MODULE LOAD SA1 IN+8 GET CHANNEL NUMBER USED MX6 12 BX1 X6*X1 LX1 12 BX6 X1 SX1 X1+10000B SA6 CHN RJ COD CONVERT TO DISPLAY CODE LX6 48-0 MX4 12 BX6 X4*X6 SA6 CHAN LBC8 SX2 X0-RCAML NG X2,ELP IF NOT CONTROLLER HARDWARE ERROR SX6 X0-RC34 ZR X6,LBC9 IF CONTROLLER RESERVED SA2 DRCF ZR X2,ELP IF DRIVER CALL SA2 RT CHECK RETRY COUNT SX6 X2-1 SA6 A2+ ZR X6,ELP IF RETRY COUNT EXHAUSTED RJ IRM ISSUE RESPONSE MESSAGES BX2 X2-X2 PREVENT DUMP ON RETRY EQ LBC4 RETRY CONTROLWARE LOAD LBC9 RECALL SA1 LBCC GET PREVIOUS CONTROLLER RESERVE FLAG NZ X1,LBC3 IF PREVIOUS CONTROLLER RESERVE SX6 B1 SA6 A1 RJ IRM ISSUE RESPONSE MESSAGES EQ LBC3 RETRY CONTROLWARE RELOAD LBCA VFD 18/3R1LC,24/0,18/IN *1LC* CALL WORD LBCB BSS 1 *SPC* PARAMETER WORD LBCC CON 0 CONTROLLER RESERVED RESPONSE FLAG LBCD CON 0,0 CALL BLOCK FOR CONCURRENT PP ASSIGNMENT TITLE DISK CONTROLWARE SUBROUTINES. CCS SPACE 4,15 ** CCS - CHECK CHANNEL STATUS. * * ENTRY (CHN) = CHANNEL NUMBER. * * EXIT (X5) = CONTROLWARE TYPE FOR CHANNEL. * (CHAN) = CHANNEL NUMBER IN DISPLAY CODE. * (CRN) = CONTROLWARE RECORD NAME. * * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 3, 6. * * CALLS COD, RCT. CCS SUBR ENTRY/EXIT SA5 CHN CONVERT CHANNEL NUMBER TO DISPLAY MX0 -5 CLEAR POSSIBLE CCH FLAG BX1 -X0*X5 SX1 X1+100B FORCE LEADING ZERO FILL SX0 5 RJ COD MX1 -12 SB6 -B1 BX6 -X1*X6 LX6 -12 SA1 CHN CHECK FOR CONCURRENT CHANNEL LX1 59-5 PL X1,CSS0 IF NOT A CONCURRENT CHANNEL SX1 1RC ADD *C* TO CHANNEL NUMBER LX6 -6 LX1 54 BX6 X6+X1 CSS0 SA6 CHAN RJ RCT READ CHANNEL TABLES CCS1 SB6 B6+B1 CALCULATE WORD INDEX IN CHANNEL TABLE IX5 X5-X0 PL X5,CCS1 IF DIVIDE BY 5 NOT COMPLETE IX5 X5+X0 BYTE INDEX SX1 12 IX5 X5*X1 SB3 X5 SHIFT FOR CHANNEL BYTE SA1 CBUF+B6 CHANNEL STATUS MX5 -5 SA3 CBUF+CTALL*2+B6 CHANNEL CONTROLWARE LX1 B3 LX3 B3 SX0 RC7 * NO CONTROLWARE ON CHANNEL.* LX3 12 BX5 -X5*X3 CONTROLWARE TYPE SX7 X5-MXCWT PL X7,ELP IF INCORRECT TYPE SA4 TCWT+X5 GET CONTROLWARE RECORD NAME ZR X4,ELP IF NO CONTROLWARE ON CHANNEL BX7 X4 LX1 59-53 SA7 CRN PL X1,CCSX IF CHANNEL UP SA2 CBUF+CTALL+B6 CHANNEL ASSIGNMENT MX6 12 LX2 B3 BX2 X6*X2 R= X0,RC2 * SPECIFIED CHANNEL IS IN USE.* ZR X2,CCSX IF CHANNEL NOT ASSIGNED EQ ELP PROCESS ERROR TCWT SPACE 4,10 ** TCWT - TABLE OF CONTROLWARE TYPES. TCWT BSS 0 LOC 0 NOCW CON 0 0 - NO CONTROLWARE HTCW DATA 0LBCS 1 - HT (7054/7154/7152) FTCW DATA 0LBCF 2 - FT (7154/7152) FMCW DATA 0LFMD 3 - FMD (7155) ADCW DATA 0LADP 4 - FSC ADAPTER PHCW DATA 0LPHD 5 - DEMA/PFMD (7155-10) IDCW DATA 0LISD 6 - 7255 ADAPTOR CCCW DATA 0LMA464 7 - 7165 CCC LNFL EQU * LOCAL NAD FLAG NDCW DATA 0L170 10 - CYBER 170 NAD CMCW DATA 0LCMD 11 - CONTROL MODULE I C2CW DATA 0LCM2 12 - CONTROL MODULE II M8CW DATA 0LCCC7990 13 - 7990 CCC LOC *O ELP SPACE 4,15 ** ELP - END *LOADBC* PROCESSING. * * ENTRY (X0) = LOAD RESPONSE CODE. * * USES X - 1, 2. * A - 0, 1, 2. * B - 2, 5. * * CALLS IRM, SNM, VCD. * * MACROS ABORT, ENDRUN, MESSAGE. ELP BSS 0 ENTRY SA0 B0 SET NO ABORT FLAG ZR X0,ELP1 IF LOAD COMPLETE SA0 B1 SET ABORT FLAG SX1 X0-RCAML NG X1,ELP2 IF NOT CONTROLLER HARDWARE ERROR ELP1 RJ VCD VERIFY CONTROLWARE DUMP ELP2 RJ IRM ISSUE RESPONSE MESSAGES SB5 MSGB * CONTROLWARE LOAD COMPLETE.* ZR X0,ELP3 IF LOAD COMPLETE SB5 MSGA * CONTROLWARE LOAD ABORT, C=XX.* SA1 CHAN ENTER CHANNEL DISPLAY INTO SUMMARY MESSAGE SA2 CME ZR X2,ELP2.1 IF NOT CONTROL MODULE SB5 MSGC * CONTROLWARE LOAD ABORT, EQ=XXX.* SA1 CMES ENTER EST ORDINAL INTO SUMMARY MESSAGE ELP2.1 SB2 1RX RJ SNM ELP3 MESSAGE B5,0,R SX1 A0+ NZ X1,ELP4 IF *LOADBC* TO BE ABORTED ENDRUN ELP4 ABORT FFI SPACE 4,10 ** FFI - FIND FIRMWARE IDENT. * * (BUF - BUF+16) = PREFIX TABLE OF FIRMWARE RECORD. * * (X7) = FIRMWARE TYPE AND REVISION LEVEL. * * USES X - 1, 2, 3, 4, 7. * A - 1, 2, 3. * B - 2, 3. * * CALLS USB. * SET DEFAULT NAME. FFI4 SA3 FFIB DEFAULT NAME BX7 X3 FFI SUBR 0 ENTRY/EXIT SB2 BUF+10B FIRST WORD ADDRESS OF UNPACK SB3 B0 DEFINE NO ASCII MX4 -6 RJ USB SB2 70 SA1 USBB-1 FFI1 SA1 A1+B1 SCAN FOR *FIRMWARE* SB2 B2-B1 SX1 X1-1RF ZR B2,FFI4 IF END OF TEXT STRING NZ X1,FFI1 IF NOT *F* SA2 A1+1 SX2 X2-1RI NZ X2,FFI1 IF NOT *I* SA3 FFIA CHECK FOR REMAINDER OF *FIRMWARE* FFI2 BX1 -X4*X3 SA2 A2+B1 AX3 6 IX2 X1-X2 NZ X2,FFI1 IF NOT *RMWARE* NZ X3,FFI2 IF NOT END OF *RMWARE* SB3 A2-USBB-61 SX7 1R ASSEMBLE FIRMWARE IDENT PL B3,FFI4 IF NOT ENOUGH CHARACTERS REMAIN SB3 9 FFI3 LX7 6 POSITION ASSEMBLY SA2 A2+B1 SB3 B3-B1 BX7 X2+X7 NZ B3,FFI3 IF NOT END OF ASSEMBLY LX7 6 EQ FFIX RETURN FFIA VFD 18/0,42/7H ERAWMR FFIB DATA 10H********** IRM SPACE 4,15 ** IRM - ISSUE RESPONSE MESSAGES. * * ENTRY (X0) = LOAD RESPONSE CODE. * * EXIT DAYFILE AND ERROR LOG MESSAGES ISSUED * FOR RESPONSE CODE. * * USES X - 1, 2, 3, 5, 6. * A - 1, 2, 3, 5, 6. * B - 2, 3, 5. * * CALLS COD, FFI, SNM. * * MACROS MESSAGE. IRM1 SX1 X0-RCAML NG X1,IRM3 IF NOT CONTROLLER HARDWARE ERROR SA1 IN+8 GET LAST FUNCTION/STATUS FROM *1LC* MX2 -12 BX1 -X2*X1 SX1 X1+10000B FORCE LEADING ZERO FILL RJ COD CONVERT TO DISPLAY CODE MX2 -24 BX1 -X2*X6 SX6 1R. LX1 -24 LX6 30 BX6 X1+X6 SA6 MSG31+2 ENTER LAST STATUS IN MESSAGE SA6 BML31+2 ENTER LAST STATUS IN MESSAGE SA6 MSG32+2 ENTER LAST FUNCTION IN MESSAGE SA6 BML32+2 ENTER LAST FUNCTION IN MESSAGE IRM2 SB5 X5 ENTER DATA IN ERROR LOG MESSAGE SB3 IRMB SB5 -B5 SB2 1RY RJ SNM SB5 IRMB ENTER CHANNEL DISPLAY IN ERROR LOG MESSAGE SB2 1RX SA1 CHAN RJ SNM MESSAGE B5,4 ISSUE ERROR LOG MESSAGE IRM3 AX5 18 MESSAGE X5,0,R ISSUE LOAD RESPONSE MESSAGE AX5 18 CHECK FOR BML MESSAGE SX5 X5 ZR X5,IRMX IF NO BML MESSAGE SA2 X5+1 SA1 CHN SET CHANNEL IN BML MESSAGE LX1 24 BX6 X1+X2 SA6 A2 MESSAGE X5,11B,R ISSUE LOAD COMPLETE MESSAGE TO BML IRM SUBR ENTRY/EXIT SA5 TLRC+X0 GET MESSAGE ADDRESSES NZ X0,IRM1 IF NOT LOAD COMPLETE SB5 MSG0 ENTER CONTROLWARE TYPE SB2 1RY SA1 BUF+10B RJ SNM SB5 MSG0 ENTER CHANNEL DISPLAY IN DAYFILE MESSAGE SB2 1RX SA1 CHAN RJ SNM RJ FFI FIND FIRMWARE IDENT SA2 BMLM+1 SA1 CHN SET CHANNEL IN BML MESSAGE SA7 A2+1 STORE FIRMWARE IDENT SA7 IRMC LX1 24 BX6 X1+X2 SA3 CMQ SET EQUIPMENT NUMBER IN BML MESSAGE LX3 12 BX6 X1+X2 BX6 X6+X3 SA6 A2 MESSAGE BMLM,11B,R ISSUE LOAD COMPLETE MESSAGE TO BML SB5 MSG0 ENTER CONTROLWARE TYPE SB2 1RV BX1 X7 RJ SNM SA1 IRMC EQ IRM2 SET CONTROLWARE TYPE IN ERROR LOG MESSAGE IRMA VFD 18/0,24/4H,CH=,12/0,6/1R. IRMB BSS 4 IRMC CON 0 RCF SPACE 4,20 ** RCF - READ CONTROLWARE FILE. * * ENTRY (TYPN) = NAD TYPE FLAG. * .EQ. POSITIVE, IF *TY* OPTION NOT SPECIFIED. * .EQ. NEGATIVE, IF *TY* OPTION SPECIFIED. * (RL) = .NE. 0, IF REMOTE NAD LOAD. * * EXIT (FWC) = FWA CONTROLWARE IN LOAD BUFFER. * (LWC) = LWA CONTROLWARE IN LOAD BUFFER. * * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE CODE. * * USES X - 0, 1, 2, 3, 5, 6, 7. * A - 1, 2, 3, 6, 7. * B - 2, 3, 4, 6. * * MACROS ASSIGN, READ, REWIND, SKIPB, SKIPEI, STATUS. RCF2 STATUS IN DETERMINE IF LOCAL FILE PRESENT SA1 X2 MX2 -11 AX1 1 BX1 -X2*X1 ZR X1,ELP IF NO LOCAL FILE REWIND IN,R RCF3 READ IN,R READ CONTROLWARE RECORD SA1 IN CLEAR FET CODE AND STATUS MX6 51 BX6 X6*X1 SA6 A1 SA1 IN+2 READ *IN* POINTER SA2 A1+B1 READ *OUT* POINTER SB2 X2 SA3 B2 SB6 X1 SAVE *IN* MX5 12 MX1 6 FORM 7700 MASK BX2 X5*X3 SX0 RC15 * NO 77 TABLE IN CONTROLWARE RECORD.* BX1 X1-X2 NZ X1,ELP IF NOT 7700 TABLE LX3 12 BX2 X5*X3 LENGTH OF 7700 TABLE SX0 RC16 * NO 52 TABLE IN CONTROLWARE RECORD.* LX2 12 SB3 X2+B1 SA2 B2+B3 READ EXPECTED 5200 TABLE SX3 5200B SX6 A2+B1 FWA OF CONTROLWARE SA6 FWC SB2 X6 *OUT* = FWA OF CONTROLWARE SX6 X2-1 SUBTRACT LENGTH OF 5200 TABLE SX7 A2 IX7 X2+X7 ADD CONTROLWARE LENGTH SB4 X6 BX2 X5*X2 SA7 LWC SAVE LWA+1 OF CONTROLWARE LX2 12 BX2 X2-X3 NZ X2,ELP IF NOT 5200 TABLE SB6 B6-B2 *IN* - *OUT* SB6 B6-B4 SX0 RC17 * LENGTH IN 52 TABLE .NE. FET.* NZ B6,ELP IF CM WORD COUNT DOES NOT MATCH SA6 CWL SAVE CONTROLWARE LENGTH RCF SUBR ENTRY/EXIT SA1 IN SA2 FN ASSUMED FILE NAME SX0 RC10 * CONTROLWARE NOT FOUND.* ZR X1,ELP IF *F=0* SPECIFIED MX3 42 BX1 X3*X1 BX3 X1-X2 NZ X3,RCF2 IF ALTERNATE FILE SPECIFIED ASSIGN IN SKIPEI IN,R POSITION TO EOI SKIPB IN,2,R POSITION TO BEGINNING OF DIRECTORY READ IN,R READ DIRECTORY SA2 X2+2 READ *IN* POINTER SA3 BUF LENGTH OF 7700 TABLE SB3 X2+ (B3) = LWA+1 OF DATA READ SA2 CRN LX3 24 SB2 X3+BUF FIRST RECORD ON SYSTEM DIRECTORY MX7 42 SA1 TYPN PL X1,RCF1 IF TYPE NOT SPECIFIED SA3 RL ZR X3,RCF1 IF NOT REMOTE NAD LOAD SA2 TYPE USE TYPE SPECIFIED BY CALLER RCF1 SA1 B2+ READ DIRECTORY ENTRY GE B2,B3,ELP IF END OF DIRECTORY SB2 B2+2 BX3 X7*X1 BX3 X3-X2 NZ X3,RCF1 IF CONTROLWARE NOT FOUND BX1 -X7*X1 SX1 X1-10 NZ X1,RCF1 IF CONTROLWARE NOT FOUND SA1 A1+B1 SET RANDOM ADDRESS IN FET MX7 -29 SA2 IN+6 BX2 X7*X2 BX6 -X7*X1 BX6 X6+X2 SA6 A2 SA1 IN+2 RESET *IN* = *FIRST* SA2 IN+1 MX7 -18 BX2 -X7*X2 BX1 X7*X1 BX6 X1+X2 SA6 A1 EQ RCF3 READ CONTROLWARE RECORD RCT SPACE 4,10 ** RCT - READ CHANNEL TABLES. * * ENTRY (RCTA) = CHANNEL TABLES DESCRIPTOR WORD. * * EXIT CBUF = CHANNEL TABLES FROM CMR. * * USES X - 7. * A - 7. * * MACROS SYSTEM. RCT SUBR ENTRY/EXIT MX7 1 READ FROM LOW CORE SA7 CBUF SYSTEM RSB,R,RCTA,0 READ CHANNEL TABLES EQ RCTX RETURN RCTA VFD 12/0,12/CTALL*3,18/0,18/CBUF SCN SPACE 4,15 ** SCN - SELECT CHANNEL NUMBER. * * ENTRY (ESTW) = EST POINTER WORD *ESTP*. * * EXIT IF DRIVER REQUEST FOUND IN CHANNEL TABLE - * (CHN) = CHANNEL NUMBER. * (CME) = 0. * (CMQ) = 0. * IF DRIVER REQUEST FOUND IN CONTROL MODULE EST ENTRY - * (CME) = EST ORDINAL. * (CRN) = CONTROLWARE RECORD NAME LEFT JUSTIFIED. * * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE. * * USES X - 2, 3, 4, 5, 6, 7. * A - 2, 4, 6. * B - 2, 3, 4, 5, 6. * * CALLS RCT. SCN7 SA6 CHN SAVE CHANNEL NUMBER LX6 59-5 PL X6,SCN7.1 IF NOT CONCURRENT CHANNEL SA6 CCHF SET CONCURRENT CHANNEL FLAG SCN7.1 SX6 HI0103 SCN8 SA1 BMLM+1 SET BML MESSAGE SYMPTOM CODE LX6 36 MX5 12 LX5 48 BX1 -X5*X1 BX6 X1+X6 SA6 A1 SCN SUBR ENTRY/EXIT SB4 4 RJ RCT READ CHANNEL TABLES SA4 CBUF+CTALL*2 GET CHANNEL CONTROLWARE ENTRY SX6 B0+ INITIALIZE CHANNEL NUMBER SA6 CME CLEAR CONTROL MODULE EST ORDINAL SA6 CMQ CLEAR CONTROL MODULE EQUIPMENT NUMBER SCN1 SB4 B4-B1 PL X4,SCN2 IF NO CONTROLWARE LOAD REQUESTED LX2 X4,B1 PL X2,SCN7 IF NOT LOAD IN PROGRESS SCN2 LX4 12 SX6 X6+B1 ADVANCE CHANNEL NUMBER PL B4,SCN1 IF MORE ENTRIES IN WORD SA4 A4+1 SB4 4 SB2 A4-CBUF-CTALL*3 NE B2,SCN1 IF MORE CHANNELS IN TABLE * SCAN EST FOR LOAD REQUEST FOR CONTROL MODULE. SA4 ESTW GET LAST EST ORDINAL + 1 MX6 -12 LX4 -24 BX4 -X6*X4 SB3 X4 MX7 -11 R= B4,ESTE EST ENTRY SIZE SX5 2RCM CONTROL MODULE MNEMONIC SB7 CBUF SX0 100B SB5 B7+X0 END OF BUFFER LX0 18 SCN3 SB6 B7-B4 SA7 B6+B4 SET LOW CORE READ FLAG FOR *RSB* SYSTEM RSB,R,SCNA,0 READ NEXT 100B WORDS OF EST SA4 SCNA ADVANCE EST BLOCK IN *RSB* CALL IX6 X4+X0 SA6 A4 SCN4 SB6 B6+B4 EQ B6,B5,SCN3 IF END OF BUFFER SA4 B6 READ WORD *EQDE* OF EST ENTRY ERRNZ EQDE CODE ASSUMES *EQDE* = 0 SA2 A4+B1 ERRNZ EQAE-1 CODE ASSUMES *EQAE* = 1 LX4 -12 BX6 -X7*X4 BX6 X6-X5 LX2 59-35 NZ X6,SCN5 IF NOT CONTROL MODULE PL X2,SCN5 IF RELOAD NOT REQUESTED LX2 35-34 PL X2,SCN6 IF LOAD NOT IN PROGRESS SCN5 SB2 B2+1 INCREMENT EST ORDINAL NE B2,B3,SCN4 IF NOT END OF EST SX0 RC3 * NO CHANNEL LOAD REQUEST.* EQ ELP PROCESS ERROR SCN6 MX0 -5 SET CONTROLWARE TYPE LX2 11 BX2 -X0*X2 GET RECORD NAME TABLE INDEX MX0 -3 SAVE EQUIPMENT NUMBER LX4 3 BX6 -X0*X4 SA6 CMQ SA2 X2+TCWT BX6 X2 SX7 B2 SET EST ORDINAL SA6 CRN SET RECORD NAME SA7 CME SX1 X7+1000B FORCE LEADING ZERO-FILL RJ COD CONVERT TO DISPLAY CODE LX6 42-0 MX0 18 BX6 X0*X6 SA6 CMES SX6 HI0106 EQ SCN8 SET BML MESSAGE SYMPTOM CODE SCNA VFD 12/0,12/100B,18/0,18/CBUF VCD SPACE 4,15 ** VCD - VERIFY CONTROLWARE DUMP. * * EXIT CONTROLLER MEMORY DUMP VERIFIED WITH CONTROLWARE * RECORD AND DUMP FILE WRITTEN. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - ALL. * B - 2, 3, 4, 5. * * MACROS MESSAGE, WRITER. VCD SUBR ENTRY/EXIT SA1 DUMP ZR X1,VCDX IF NO DUMP REQUESTED MX2 -8 LX1 -1 BX5 -X2*X1 DUMP RESPONSE CODE SA0 B1 SET ABORT FLAG SB5 X5-TDMAL SA1 TDMA+X5 GET MESSAGE ADDRESS NG B5,VCD0 IF VALID RESPONSE CODE SA1 TDMA+DR5 SET INCORRECT *1LC* RESPONSE MESSAGE VCD0 SB3 12 MESSAGE X1,0 ISSUE DUMP STATUS MESSAGE TO DAYFILE NZ X5,VCDX IF NOT DUMP COMPLETE SA4 FWC GET FWA CONTROLWARE IN LOAD BUFFER SA5 DBUF+FDWI GET FIRST WORD OF DUMP TO COMPARE SA4 X4+FLWI GET FIRST LOAD WORD (SKIP DIAGNOSTICS) LX5 FDBI*12+12 SB5 60-FDBI*12-12 LX4 FLBI*12+12 SB4 60-FLBI*12-12 MX3 -12 SB2 B0 VCD1 BX2 X4-X5 COMPARE DUMP AND LOAD CONTROLWARE BX2 -X3*X2 ZR X2,VCD4 IF BYTE COMPARES CX6 X2 AX2 1 SX6 X6-1 SX7 17B INDICATE MULTIPLE BITS DID NOT VERIFY NZ X6,VCD3 IF MULTIPLE BIT FAILURE SX7 10B INDICATE BIT 0 DID NOT VERIFY ZR X2,VCD3 IF BIT 0 FAILURE SX7 B0+ VCD2 AX2 1 LOCATE FAILING BIT POSITION SX7 X7+B1 NZ X2,VCD2 IF BIT NOT LOCATED VCD3 LX7 8 BX5 X5+X7 LX7 X5,B5 SA7 A5 VCD4 SB4 B4-B3 LX4 12 PL B4,VCD5 IF MORE BYTES IN LOAD WORD SA4 A4+B1 GET NEXT LOAD WORD SB4 48 LX4 12 VCD5 SB5 B5-B3 LX5 12 GE B5,B2,VCD1 IF MORE BYTES IN DUMP WORD SA5 A5+1 GET NEXT DUMP WORD SB5 60 SX1 A5-DBUF-LDWI NG X1,VCD5 IF NOT AT LAST WORD SB2 60-LDBI*12 ZR X1,VCD5 IF COMPARING LAST WORD SA3 CHAN SET DISPLAY CHANNEL IN DUMP HEADER SA2 CHID1 SX7 DHDR RESET DUMP FET *FIRST* AND *OUT* TO HEADER LX3 -12 BX6 X2+X3 SA7 DUMP+3 SA6 CHID2 SA7 DUMP+1 SA6 A2 WRITER A7-B1 WRITE RECORD TO DUMP FILE SETFS X2,0 CLEAR FILE STATUS SA0 B0 SET NO ABORT FLAG EQ VCDX RETURN TITLE PROCESS NAD CONTROLWARE. PNC SPACE 4,10 ** PNC - PROCESS NAD CONTROLWARE. PNC BSS 0 ENTRY RJ RCF READ CONTROLWARE FILE RJ CCV CALL *CVL* FOR VALIDATION ZR X1,PNC2 IF ALLOWED ACCESS TO NAD SX2 X1-VRNM ZR X2,PNC4 IF NAD NOT FOUND SX2 X1-VRUS ZR X2,PNC5 IF NAD IN USE OR ON SX2 X1-VRSI ZR X2,PNC1 IF REMOTE NAD STATUS INDETERMINATE SB6 3RCVL RJ EMS ISSUE ERROR MESSAGE ABORT PNC1 MESSAGE PNCA,2,R *$LOADBC REMOTE NAD LOAD - GO OR DROP.* RJ PSE PAUSE * SET UP *NLD* EST ORDINAL AND CHANNEL PARAMETERS. PNC2 SA1 CVLB+CEO EST ORDINAL (MAY BE ZERO) MX0 -12 SA2 A1+B1 CHANNEL NUMBER BX1 -X0*X1 BX2 -X0*X2 LX1 36-0 LX2 48-0 BX6 X1+X2 SA6 NLDB SAVE PARAMETERS FOR *NLD* CALL RJ CNP CHECK NAD INITIATION PARAMETERS NZ X6,NER IF ERROR DETECTED BY *NLD* RJ CNL LOAD NAD CONTROLWARE SX0 0 INDICATE LOAD COMPLETE FOR *IRM* RJ IRM ISSUE RESPONSE MESSAGES MESSAGE MSGB,0 * CONTROLWARE LOAD COMPLETE.* SA1 NLDB+5 NZ X1,PNC3 IF LOAD FOR REMOTE NAD SA1 NLDB CLEAR COMPLETION BIT IN PARAMETER BLOCK MX0 48 BX6 X0*X1 SA6 A1 SYSTEM NLD,R,NLDB,4*100B TURN NAD ON AND UP PNC3 RJ RET RETURN EQUIPMENT VIA *CVL* ENDRUN PNC4 MESSAGE PNCB,,R * DEVICE NOT FOUND.* ABORT PNC5 MESSAGE PNCC,,R * DEVICE ON OR IN USE.* ABORT PNCA DATA C*$REMOTE NAD LOAD - GO OR DROP.* PNCB DATA C* VALIDATION DENIED - DEVICE NOT FOUND.* PNCC DATA C* VALIDATION DENIED - DEVICE ON OR IN USE.* CCV SPACE 4,15 ** CCV - SET UP PARAMETERS AND CALL *CVL*. * * ENTRY (RL) = REMOTE NAD LOAD FLAG. * .EQ. 0, IF LOCAL NAD LOAD. * .NE. 0, IF REMOTE NAD LOAD. * (CHN) = CHANNEL NUMBER (IN BINARY). * * EXIT (X1) = RESPONSE CODE FROM *CVL*. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - NONE. * * CALLS CVL=. CCV SUBR ENTRY/EXIT SA1 CHN SET CHANNEL SA2 CVLB+CCH BX6 X1+X2 SA6 A2 MX0 1 SA1 RL LX0 52-59 NZ X1,CCV1 IF REMOTE NAD LOAD * SET UP PARAMETERS FOR DEDICATED LOCAL NAD ACCESS. SA2 A2+B1 SET LOCAL NAD DEDICATED ACCESS FLAG BX6 X0+X2 SA6 A2 SA2 CVLB+CDV SET LOCAL NAD DEVICE CODE SX3 NAD BX7 X2+X3 SA7 A2 SA2 A2+B1 SET *LOAD CONTROLWARE* FLAGS SX3 CTL BX6 X2+X3 SA6 A2 EQ CCV2 CALL *CVL* * SET UP PARAMETERS FOR DEDICATED REMOTE NAD ACCESS. CCV1 SA2 CVLB+CAC SET ACCESS CODE SA1 ACC LX0 48-52 BX1 X0+X1 BX6 X1+X2 ACCESS CODE SA6 A2 SA2 A2+B1 SET TCU ENABLES MASK SX3 B1 SA4 LTCU BX2 X0+X2 LX3 4-0 BX7 X2+X3 BX7 X4+X7 MERGE TCU ENABLES FIELD SA7 A2 SA2 A2+B1 SET REMOTE NAD NUMBER SX4 RND SET REMOTE NAD DEVICE CODE LX3 52-4 SA1 RNAD BX2 X0+X3 SA5 CVLB+CDV BX7 X4+X5 SA7 A5 BX6 X1+X2 LX4 12 POSITION REMOTE NAD DEVICE CODE BX6 X4+X6 SA6 A2 CCV2 SX1 CVLB FWA OF PARAMETER BLOCK SX2 1 FUNCTION REQUEST RJ CVL= CALL *CVL* SA1 CVLB+CRC CHECK RESPONSE CODE FROM *CVL* MX0 -6 LX1 -6 BX1 -X0*X1 EQ CCVX RETURN CNL SPACE 4,15 ** CNL - CALL *NLD* TO LOAD NAD CONTROLWARE. * * ENTRY (NLDB - NLDB+5) = *NLD* PARAMETER BLOCK. * (RL) = REMOTE NAD LOAD FLAG. * .EQ. 0, IF LOCAL NAD LOAD. * .EQ. 1, IF REMOTE NAD LOAD. * * EXIT NAD CONTROLWARE LOADED. * * ERROR TO *NER*, IF *NLD* DETECTED ERROR. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 1, 2, 3, 4, 6, 7. * B - NONE. * * MACROS MOVE, SYSTEM. CNL SUBR ENTRY/EXIT SA1 NLDB CLEAR COMPLETION BIT MX0 48 BX6 X0*X1 SA6 A1 * ENSURE INITIALIZATION PARAMETERS START ON NAD WORD BOUNDARY. SA1 CWL GET CONTROLWARE LENGTH BX7 X7-X7 SA4 LWC LWA+1 OF CONTROLWARE LX1 59-0 PL X1,CNL1 IF EVEN NUMBER OF CM WORDS SA7 X4 APPEND ZERO WORD AFTER CONTROLWARE SX4 X4+B1 CNL1 SX6 X4+LNADIP ADD NAD INITIALIZATION PARAMETERS SA6 NLDB+2 SET *IN* SA1 FWC SET *OUT* = *FIRST* = FWA OF CONTROLWARE BX7 X1 SA7 A6+B1 *OUT* SA7 A6-B1 *FIRST* SX6 X6+B1 SET *LIMIT* SA6 A6+2 SA3 RL ZR X3,CNL2 IF LOCAL NAD LOAD SA1 ACC ACCESS CODE SA2 RNAD REMOTE NAD NUMBER LX1 16-0 SA3 LTCU LOGICAL TCU ENABLES LX2 8-0 BX6 X1+X3 BX6 X2+X6 SA6 NLDB+5 CNL2 MOVE LNADIP,NADIP,X4 SYSTEM NLD,R,NLDB,1*100B SA1 NLDB CHECK *NLD* RESPONSE CODE MX0 -6 LX1 -6 BX1 -X0*X1 ZR X1,CNLX IF NO ERROR EQ NER ISSUE ERROR MESSAGE AND ABORT CNP SPACE 4,15 ** CNP - CHECK NAD INITIATION PARAMETERS. * * EXIT (X6) = 0, IF NAD READY FOR FINAL LOAD. * (X6) .GT. 0, IF *NLD* ERROR. * * USES X - 0, 1, 2, 5, 6. * A - 1, 6. * B - NONE. * * CALLS CNL, FNP, FNS, RET, SNP. * * MACROS ABORT, MESSAGE, NIPADD, NSTADD, SYSTEM. CNP SUBR ENTRY/EXIT NIPADD WNMS GET SPECIFIED NAD MEMORY SIZE RJ FNP NZ X6,CNP6 IF MEMORY SIZE SPECIFIED SX6 DNMS SET DEFAULT NAD MEMORY SIZE NIPADD WNMS RJ SNP NIPADD WMNP GET MAXIMUM NUMBER OF PATHS RJ FNP SX5 X6+B1 SAVE MAXIMUM NUMBER OF PATHS + 1 NIPADD WIBC GET INTERNAL BUFFER COUNT RJ FNP IX6 X6-X5 PL X6,CNP1 IF INTERNAL BUFFER COUNT .GT. PATHS BX6 X5 NIPADD WIBC RESET INTERNAL BUFFER COUNT RJ SNP CNP1 SX5 DCBC NIPADD WCBC GET CONTROLWARE MESSAGE BUFFER COUNT RJ FNP IX6 X6-X5 PL X6,CNP2 IF COUNT .GE. DEFAULT BX6 X5 NIPADD WCBC SET DEFAULT COUNT RJ SNP CNP2 SX5 DTBC NIPADD WTBC GET TYPE 1 BUFFER COUNT RJ FNP IX6 X6-X5 PL X6,CNP3 IF COUNT .GE. DEFAULT BX6 X5 NIPADD WTBC SET DEFAULT TYPE 1 BUFFER COUNT RJ SNP CNP3 RJ CNL CALL *NLD* TO LOAD CONTROLWARE SA1 NLDB SET UP NAD STATUS PARAMETER BLOCK MX6 48 BX6 X6*X1 SA6 NADSTAT SA1 NLDB+5 REMOTE NAD ADDRESS BX6 X1 SA6 NADSTAT+5 SYSTEM NLD,R,NADSTAT,3*100B CALL *NLD* SA1 NADSTAT CHECK *NLD* RESPONSE CODE MX0 -6 LX1 -6 BX6 -X0*X1 BX1 X6 SAVE STATUS IF *NLD* ERROR NZ X6,CNPX IF *NLD* ERROR NSTADD WAMS GET ACTUAL MEMORY SIZE FROM STATUS RJ FNS SX5 X6-DNMS ZR X5,CNP4 IF SAME AS DEFAULT SIZE NG X5,CNP7 IF ACTUAL .LT. DEFAULT NIPADD WNMS RESET NAD MEMORY SIZE RJ SNP CNP4 NSTADD WUNM GET UNUSED MEMORY FROM STATUS RJ FNS IX5 X5+X6 UNUSED MEMORY + (ACTUAL-DEFAULT) SX2 LTBC TYPE 1 BUFFER SIZE IX6 X5-X2 NG X6,CNP5 IF NO ROOM FOR MORE TYPE 1 BUFFERS BX6 X5 IX1 X6/X2 ADDITIONAL MEMORY USED SX2 LTBC TYPE 1 BUFFER SIZE IX2 X2*X1 ADDITIONAL MEMORY USED IX5 X5-X2 REMAINING UNUSED MEMORY NIPADD WTBC GET CURRENT TYPE 1 BUFFER COUNT RJ FNP IX6 X6+X1 INCREMENT COUNT NIPADD WTBC RESET TYPE 1 BUFFER COUNT RJ SNP CNP5 SX2 LCBC CONTROLWARE MESSAGE BUFFER SIZE IX6 X5-X2 NG X6,CNP6 IF NO ROOM FOR MORE BUFFERS IX1 X5/X2 ADDITIONAL MESSAGE BUFFERS NIPADD WCBC GET CURRENT BUFFER COUNT RJ FNP IX6 X6+X1 INCREMENT COUNT NIPADD WCBC RESET MESSAGE BUFFER COUNT RJ SNP CNP6 BX6 X6-X6 EQ CNPX RETURN CNP7 MESSAGE CNPA,0 * LOADBC ABORT - ...* RJ RET RETURN NAD EQUIPMENT ABORT CNPA DATA C* LOADBC ABORT - BAD INITIATION PARAMETERS.* EMS SPACE 4,15 ** EMS - ISSUE ERROR MESSAGE. * * ENTRY (B6) = PP NAME IN DISPLAY CODE. * (X1) = ERROR CODE. * * EXIT DAYFILE MESSAGE ISSUED. * * USES X - 1. * A - NONE. * B - 2, 5. * * CALLS COD, SNM. * * MACROS MESSAGE. EMS SUBR ENTRY/EXIT RJ COD CONVERT TO OCTAL DISPLAY CODE SB2 1RY INSERT ERROR CODE INTO MESSAGE SB5 EMSA BX1 X4 RJ SNM SX1 B6 INSERT PP NAME INTO MESSAGE SB2 1RX LX1 59-17 SB5 EMSA RJ SNM MESSAGE EMSA,0 *LOADBC ABORT - ...* EQ EMSX RETURN EMSA DATA C* LOADBC ABORT - XXX ERROR CODE = YYY.* FNP SPACE 4,15 ** FNP - FETCH NAD INITIATION PARAMETER. * * (NAD INITIATION PARAMETERS ARE 16-BIT VALUES DEFINED IN THE * *NADIP* TABLE, 2.5 PARAMETERS PER CM WORD.) * * ENTRY (X2) = *NADIP* TABLE WORD. * (B2) = SHIFT COUNT TO POSITION FIRST BYTE. * * EXIT (X6) = 44/0,16/VALUE. * * USES X - 0, 2, 6. * A - 2. * B - 2. FNP SUBR ENTRY/EXIT MX0 -8 LX2 B2,X2 POSITION UPPER 8 BITS SB2 B2-60 BX6 -X0*X2 EXTRACT UPPER 8 BITS NG B2,FNP1 IF PARAMETER NOT DIVIDED SA2 A2+B1 GET NEXT WORD FNP1 LX2 12 POSITION LOWER 8 BITS LX6 8 BX0 -X0*X2 EXTRACT LOWER BITS IX6 X0+X6 COMBINE UPPER AND LOWER BITS EQ FNPX RETURN FNS SPACE 4,15 ** FNS - FETCH NAD STATUS WORD. * * ENTRY (X2) = WORD CONTAINING FIRST DIGIT OF VALUE. * (B2) = SHIFT COUNT FOR POSITIONING DIGIT. * * EXIT (X6) = 44/0,16/NAD STATUS WORD. * * USES X - 0, 2, 3, 6. * A - 2. * B - 2, 3, 4. FNS SUBR ENTRY/EXIT SB4 4 LX2 B2,X2 POSITION FIRST DIGIT SB3 B4-B1 DIGIT COUNT MX0 4 SX6 B0 CLEAR RESULT FNS1 BX3 X0*X2 NEXT DIGIT SB3 B3-B1 BX6 X6+X3 SB2 B2+B4 INCREMENT POSITION LX6 4 NG B3,FNSX IF ALL DIGITS EXTRACTED LX2 4 POSITION NEXT DIGIT SX3 B2-60 NG X3,FNS1 IF STILL IN SAME WORD SA2 A2+B1 GET NEXT WORD SB2 B0 RESET POSITION EQ FNS1 CONTINUE NER SPACE 4,10 ** NER - PROCESS *NLD* ERROR. * * ENTRY (X1) = *NLD* ERROR RESPONSE CODE. * * EXIT NAD IS RELEASED, AND JOB IS ABORTED. * * USES X - NONE. * A - NONE. * B - 6. * * CALLS EMS, RET. * * MACROS ABORT. NER BSS 0 SB6 3RNLD RJ EMS ISSUE ERROR MESSAGE RJ RET RETURN NAD EQUIPMENT ABORT PSE SPACE 4,10 ** PSE - PAUSE FOR OPERATOR GO/DROP. * * USES X - 1, 6. * A - 1, 6. * B - NONE. * * MACROS RECALL. PSE SUBR ENTRY/EXIT SA1 B0 SET PAUSE FLAG IN RA+0 SX6 10000B BX6 X1+X6 SA6 A1 PSE1 RECALL SA1 B0 CHECK PAUSE FLAG IN RA+0 SX6 10000B BX1 X1*X6 NZ X1,PSE1 IF PAUSE FLAG NOT CLEARED EQ PSEX EXIT RET SPACE 4,10 ** RET - RETURN NAD EQUIPMENT VIA *CVL*. * * EXIT ANY EQUIPMENT ASSIGNED TO JOB HAS BEEN RELEASED. * * USES X - 0, 1, 2, 3, 6, 7. * A - 1, 3, 6, 7. * B - NONE. * * CALLS CVL=. RET SUBR ENTRY/EXIT SA1 CVLB+CEO EST ORDINAL MX0 -12 BX6 -X0*X1 ZR X6,RETX IF NO EQUIPMENT ASSIGNED SA3 CVLB+CRC MX2 1 SET DATA-IN-WORD FLAG BX7 X0*X3 CLEAR RESPONSE CODE/COMPLETION BIT LX2 48-59 SA7 A3 BX6 X2+X6 SA6 A1 SX7 RTNU SET RETURN EQUIPMENT FLAG SA7 CVLB+CFC SX1 CVLB FWA OF PARAMETER BLOCK SX2 1 FUNCTION REQUEST RJ CVL= CALL *CVL* EQ RETX RETURN SNP SPACE 4,15 ** SNP - SET NAD INITIATION PARAMETER. * * ENTRY (X2) = WORD CONTAINING FIRST BYTE OF VALUE. * (X6) = 44/0, 16/NEW VALUE. * (B2) = SHIFT COUNT FOR POSITIONING FIRST BYTE. * * EXIT NAD PARAMETER RESET. * * USES X - 0, 2, 6. * A - 2, 6. * B - 2. SNP SUBR ENTRY/EXIT MX0 -12 LX6 -8 POSITION UPPER 8 BITS OF NEW VALUE LX2 B2,X2 POSITION WORD BX2 X0*X2 CLEAR OLD VALUE SB2 B2-60 BX0 -X0*X6 IX2 X0+X2 SET NEW VALUE (UPPER 8) BX0 -X0*X6 SAVE NEW VALUE (LOWER 8) LX0 -4 LT B2,B0,SNP1 IF PARAMETER NOT DIVIDED BX6 X2 SA6 A2 STORE FIRST WORD (UPPER 8) SA2 A2+B1 GET NEXT WORD (LOWER 8) SNP1 MX6 12 BX2 -X6*X2 CLEAR OLD VALUE (LOWER BYTE) SB2 -B2 COMPLEMENT SHIFT COUNT BX0 X0+X2 INSERT NEW VALUE (LOWER 8) LX6 B2,X0 SA6 A2 STORE WORD EQ SNPX RETURN TITLE COMMON DECKS. * COMMON DECKS. *CALL COMCARG *CALL COMCCIO *CALL COMCCOD *CALL COMCCVL *CALL COMCDXB *CALL COMCHXB *CALL COMCLFM *CALL COMCMVE *CALL COMCSNM *CALL COMCSYS *CALL COMCUSB SPACE 4,10 USE LITS USE * TITLE BUFFER ALLOCATION. * BUFFER ALLOCATION. CBUF BSS 100B CHANNEL TABLES / EST BUFFER ERRNG *-CBUF-CTALL*3 CHANNEL TABLES OVERFLOW BUFFER DHDR BSS 0 DUMP FILE HEADER VFD 12/7700B,12/16B,36/0 CHID1 VFD 12/2HCH,12/0,36/0 CONTROLLER CHANNEL NUMBER SYDT1 BSSZ 1 SYSTEM DATE ( YY/MM/DD.) SYTM1 BSSZ 1 SYSTEM TIME ( HH.MM.SS.) BSSZ 11 CHID2 VFD 12/2HCH,12/0,36/0 CONTROLLER CHANNEL NUMBER VFD 12/2HID,48/5 SYVR BSSZ 2 SYSTEM VERSION SYDT2 BSSZ 1 SYSTEM DATE SYTM2 BSSZ 1 SYSTEM TIME BSSZ 1 VFD 12/2HBC,48/0 DBUF EQU * CONTROLLER DUMP BUFFER BUF EQU DBUF+DBUFL CONTROLLER LOAD BUFFER RFL= EQU BUF+BUFL+4 FIELD LENGTH TITLE PRESET. PRS SPACE 4,20 ** PRS - PRESET PROGRAM. * * EXIT (CHN) = CHANNEL, IF SPECIFIED ON COMMAND. * (CHAN) = DISPLAY CHANNEL, IF SPECIFIED ON COMMAND. * (CME) = CONTROL MODULE EST ORDINAL, IF SPECIFIED. * (CMES) = DISPLAY EST ORDINAL, IF SPECIFIED. * (CMQ) = CONTROL MODULE EQUIPMENT NUMBER. * (CRN) = CONTROLWARE RECORD NAME. * (DRCF) = 0 IF DRIVER CALL. * (ESTW) = EST POINTER WORD *ESTP*. * DUMP FILE HEADER PRESET IF CONTROLLER DUMP REQUESTED. * TO *PNC* IF TO LOAD NAD CONTROLWARE. * (RL) .NE. 0 IF REMOTE NAD LOAD. * * ERROR EXIT TO *ELP* WITH (X0) = ERROR RESPONSE CODE. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 4, 5, 7. * * CALLS ARG, CCS, DXB, HXB. * * MACROS CLOCK, DATE, MESSAGE, SYSTEM. PRS6 RJ CNS CHECK IF NAD ONLY PARAMETER SPECIFIED SA1 DUMP ZR X1,PRSX IF NO CONTROLLER DUMP REQUESTED DATE PRSA GET SYSTEM DATE SA1 PRSA BX6 X1 SA6 SYDT1 SET SYSTEM DATE IN DUMP FILE HEADER SA6 SYDT2 CLOCK PRSA GET SYSTEM TIME SA1 PRSA BX6 X1 MX7 1 SA6 SYTM1 SET SYSTEM TIME IN DUMP FILE HEADER SA6 SYTM2 SA7 A1 READ FROM LOW CORE SYSTEM RSB,R,PRSC,0 GET SYSTEM VERSION SA1 PRSA SET SYSTEM VERSION IN DUMP FILE HEADER SA2 A1+B1 BX6 X1 LX7 X2 SA6 SYVR SA7 A6+B1 PRS SUBR ENTRY/EXIT SA1 XJPR LX1 59-23 MX2 -6 BX1 -X2*X1 SX0 RC1 * USER NOT SYSTEM ORIGIN.* ERRNZ SYOT CODE DEPENDS ON VALUE NZ X1,ELP IF USER IS NOT SYSTEM ORIGIN SA1 ACTR GET ARGUMENT COUNT SA4 ARGR ADDRESS OF FIRST PARAMETER SB5 TLCA *LOADBC* ARGUMENT TABLE SB4 X1 RJ ARG PROCESS ARGUMENTS NZ X1,PRS2 IF ARGUMENT ERROR SYSTEM RSB,R,PRSB,0 GET FWA CHANNEL TABLES SA1 PRSA MX0 -18 AX1 12 BX6 -X0*X1 SA1 RCTA LX6 18 BX6 X1+X6 SA6 A1 SYSTEM RSB,R,PRSD,0 GET EST POINTER WORD *ESTP* SA1 ESTW AX1 36 BX6 -X0*X1 SA1 SCNA PLACE EST FWA IN *RSB* CALL LX6 18 BX6 X6+X1 SA6 A1 SA1 CMEF PL X1,PRS0 IF CONTROL MODULE NOT SPECIFIED SA1 CHFL NG X1,PRS2 IF CHANNEL PARAMETER SPECIFIED SA1 A1+B1 SX7 B1 INDICATE NOT DRIVER CALL SA7 DRCF NG X1,PRS2 IF DUMP FILE NAME SPECIFIED SA5 CMES CONVERT EST ORDINAL RJ CNS CHECK IF NAD ONLY PARAMETER SPECIFIED SB7 B0+ SET OCTAL CONVERSION RJ DXB SX0 RC20 * INCORRECT EST ORDINAL.* NZ X4,ELP IF CONVERSION ERROR SA6 CME SA5 ESTW GET LAST EST ORDINAL + 1 MX7 -12 LX5 36 BX7 -X7*X5 IX7 X6-X7 PL X7,ELP IF EST ORDINAL TOO BIG SX7 X6-NOPE NG X7,ELP IF EST ORDINAL TOO SMALL MX7 -24 ISOLATE EST FWA AX5 12 BX2 -X7*X5 ERRNZ ESTE-2 CODE ASSUMES *ESTE* = 2 LX6 1 IX6 X2+X6 LX6 18 SA1 PRSE SET EST ENTRY ADDRESS IN *RSB* WORD BX6 X6+X1 SA6 A1 SA7 PRSA SET LOW CORE READ FLAG FOR *RSB* SX5 2RCM SYSTEM RSB,R,PRSE,0 GET EST ENTRY ERRNZ EQDE CODE ASSUMES *EQDE* = 0 SA1 A7 SA2 A1+B1 ERRNZ EQAE-1 CODE ASSUMES *EQAE* = 1 MX0 -3 SAVE EQUIPMENT NUMBER AX1 9 BX6 -X0*X1 SA6 CMQ MX6 -11 GET MNEMONIC AX1 3 BX6 -X6*X1 BX6 X6-X5 SX0 RC21 * NOT CONTROL MODULE EST ORDINAL.* MX7 -5 NZ X6,ELP IF NOT *CM* DEVICE AX2 24 GET CONTROLWARE TYPE BX1 -X7*X2 SA1 X1+TCWT GET CONTROLWARE RECORD NAME BX6 X1 SA6 CRN EQ PRSX RETURN PRS0 R= X6,HI0105-HI0102 SA5 CHAN CONVERT CHANNEL NUMBER MX7 -6 BX2 X5 LX2 6 BX0 -X7*X2 SB6 -34B SET MAXIMUM CHANNEL NUMBER SX0 X0-1RC NZ X0,PRS0.1 IF NOT A CONCURRENT CHANNEL BX5 X7*X2 SX7 40B SET CONCURRENT CHANNEL FLAG SB6 -12B SET MAXIMUM CHANNEL NUMBER SA7 CCHF PRS0.1 SA1 CHFL PL X1,PRS6 IF CHANNEL PARAMETER NOT SPECIFIED SA1 BMLM+1 SET OPERATOR INITIATED LOAD LX6 36 IX6 X1-X6 SA6 A1 SX7 B1 INDICATE NOT DRIVER CALL SA7 DRCF RJ DXB SX0 RC6 * INCORRECT CHANNEL NUMBER.* NZ X4,ELP IF CONVERSION ERROR SA1 CCHF SX5 X6+B6 IX6 X6+X1 PL X5,ELP IF NOT HARDWARE CHANNEL SA6 CHN LX6 12 SET CHANNEL IN *CPM* CALL BLOCK SA6 LBCD RJ CCS CHECK CHANNEL STATUS SX5 X5-LNFL NZ X5,PRS6 IF NOT NAD CHANNEL SA3 TYFL SA1 TYPE NAD TYPE MX0 18 BX1 X0*X1 BX7 X3 SA7 TYPN SAVE NAD TYPE FLAG SA2 TRCT TABLE OF REMOTE CONTROLWARE TYPES PL X3,PRS3 IF NO NAD TYPE SPECIFIED PRS1 BX2 X1-X2 ZR X2,PRS3 IF MATCH ON NAD TYPE SA2 A2+B1 NZ X2,PRS1 IF NOT END OF TABLE PRS2 SX0 RC4 * ERROR IN PARAMETERS.* EQ ELP PROCESS ERROR PRS3 SA5 LTCU VALIDATE LTCU ENABLES ZR X5,PRS5 IF NOT REMOTE NAD LOAD SB7 B0 RJ DXB NZ X4,PRS2 IF PARAMETER ERROR SX7 -1111B VALIDATE LTCU ENABLES BX5 X7*X6 NZ X5,PRS2 IF PARAMETER ERROR MX0 4 SA7 RL SET REMOTE NAD LOAD FLAG LX0 1 BX7 X0*X6 PRS4 LX0 1 CHANGE OCTAL DIGITS TO BINARY DIGITS AX6 2 BX7 X7+X6 BX6 -X0*X6 NG X0,PRS4 IF MORE DIGITS TO PROCESS BX7 X0*X7 SA7 A5 SA5 RNAD ZR X5,PRS2 IF NO REMOTE NAD ADDRESS SPECIFIED RJ HXB NZ X4,PRS2 IF PARAMETER ERROR SX5 X6-0#100 PL X5,PRS2 IF PARAMETER ERROR SA6 A5+ SA5 ACC ZR X5,PRS5 IF NO ACCESS CODE SPECIFIED RJ HXB NZ X4,PRS2 IF PARAMETER ERROR SX5 X6-0#10000 PL X5,PRS2 IF PARAMETER ERROR SA6 A5+ PRS5 SA1 DUMP ZR X1,PNC IF NO CONTROLLER DUMP REQUESTED MESSAGE DRM3,0 * NOT CORRECT CONTROLLER TYPE FOR DUMP.* EQ PNC PROCESS NAD CONTROLWARE LOAD PRSA CON -1 TEMPORARY BUFFER PRSB VFD 12/0,12/1,18/CHTP,18/PRSA CHANNEL TABLE ADDRESS PRSC VFD 12/0,12/2,18/SVNL,18/PRSA SYSTEM VERSION PRSD VFD 12/0,12/1,18/ESTP,18/ESTW EST ADDRESS PRSE VFD 12/0,12/1,18/0,18/PRSA CONTROL MODULE EST ENTRY CNS SPACE 4,10 ** CNS - CHECK IF NAD ONLY PARAMETER SPECIFIED. * * EXIT TO *PRS2* IF NAD ONLY PARAMETER SPECIFIED. * * USES X - 1. * A - 1. CNS SUBR ENTRY/EXIT SA1 NOLP-1 CNS1 SA1 A1+B1 NG X1,PRS2 IF NAD ONLY PARAMETER SPECIFIED NZ X1,CNS1 IF NOT END OF ARGUMENT TABLE EQ CNSX RETURN TLCA SPACE 4,10 ** TLCA - TABLE OF *LOADBC* ARGUMENTS. TLCA BSS 0 CHFL EQU * CHANNEL FLAG C ARG CHAN,CHAN,400B D ARG DUMP,DUMP F ARG IN,IN CMEF EQU * CONTROL MODULE FLAG EQ ARG CMES,CMES NOLP EQU * FOLLOWING ARE NAD ONLY *LOADBC* PARAMETERS AC ARG ACC,ACC LT ARG LTCU,LTCU ND ARG RNAD,RNAD,400B TYFL EQU * NAD TYPE FLAG TY ARG TYPE,TYPE ARG END OF ARGUMENT TABLE TRCT SPACE 4,10 ** TRCT - TABLE OF REMOTE CONTROLWARE TYPES. TRCT BSS 0 DATA 0L170 CYBER 170 DATA 0LIBM IBM DATA 0LMIN COMMON MINICOMPUTER DATA 0L200 CYBER 20X CON 0 END OF TABLE SPACE 4,10 END