IDENT DDF,DDF PERIPH BASE M SST BFMS,FNSS,EQSS,FTSS,NSSS,GQSS,FASS,DTSS TITLE DDF - DISPLAY DISK FILE. *COMMENT DDF - DISPLAY DISK FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. DDF SPACE 4,10 *** DDF - DISPLAY DISK FILE. * * J. J. EIKUM. 73/03/13. * J. J. EIKUM. 78/11/24. * P. C. HIGGINS. 81/06/08. * P. C. HIGGINS. 84/05/01. * L. K. JACOBS. 84/10/01. DDF SPACE 4,50 *** DDF PROVIDES THE CAPABILITY TO READ AND DISPLAY THE * CONTENTS OF PHYSICAL DISK SECTORS. THE CONTENTS OF THE * SECTOR CAN BE CHANGED AND THE SECTOR REWRITTEN. * * SEVERAL METHODS ARE PROVIDED TO SPECIFY THE DISK * ADDRESS TO READ. THE ADDRESS CAN BE SPECIFIED EXPLICITLY * BY ENTERING THE EST ORDINAL, TRACK, AND SECTOR, OR AN FNT, * EJT, OR QFT ORDINAL CAN BE SPECIFIED AND THE BEGINNING OR * CURRENT POSITION WILL BE DISPLAYED. SEVERAL SCRATCH AREAS * ARE AVAILABLE TO STORE EST ORDINAL, TRACK, AND SECTOR * WHILE READING OTHER LOCATIONS ON MASS STORAGE. RANDOM * ADRESSING AND PERMANENT FILE REFERENCING COMMANDS ARE ALSO * PROVIDED. DDF PROVIDES THE CAPABILITY OF PRINTING THE * INFORMATION DISPLAYED. * * WARNING. SINCE THE MASS STORAGE I/O IS DONE BY DDF * ITSELF, THE DISPLAY MAY BLINK DURING THE ACTUAL TRANSFER, * ESPECIALLY IN A BUSY SYSTEM. IF THE DISK CHANNEL HANGS FOR * ANY REASON, THE CONSOLE WILL BLANK AND THE KEYBOARD WILL BE * INOPERABLE. * * WARNING. SOME OF THE DDF COMMANDS, THE ONES THAT * REQUIRE THE KEYBOARD TO BE UNLOCKED, CAN MAKE CHANGES THAT * MAY CAUSE THE SYSTEM TO HANG OR PERMANENT FILES TO BE LOST. * THESE BAD EFFECTS MAY NOT OCCUR UNTIL SOME TIME AFTER THE * CHANGES HAVE BEEN MADE AND AT THAT TIME IT MAY BE IMPOSSIBLE * TO UNDERSTAND WHAT HAPPENED. ALSO, IT IS REMOTELY POSSIBLE * TO BLANK THE CONSOLE WHILE USING THESE COMMANDS. IT IS * IMPORTANT THAT THE DDF USER UNDERSTAND WHAT IS BEING DONE * BEFORE USING THESE COMMANDS. DDF SPACE 4,10 *** DAYFILE MESSAGES. * * * * INCORRECT USER ACCESS.* = *SECURITY-UNLOCK* WAS NOT SET * ON A SECURED SYSTEM. DDF SPACE 4,10 *** OPERATOR MESSAGES. * * * THE FOLLOWING MESSAGES MAY APPEAR AT THE CONTROL POINT. * * * WAITING FOR MEMORY.* = DDF IS WAITING FOR CM TO STORE * THE DISPLAY AND COMMAND PROCESSORS. * *READING EQXXX TP=XXXX CT=XXXX* = SHOWS STATUS OF CHECKOUT * DURING A PACK RECOVERY. * * * ABOVE THE COMMAND LINE, THE FOLLOWING MESSAGES MAY APPEAR. * * *FORMAT ERROR.* = A FORMAT ERROR WAS DETECTED DURING * TRANSLATION OF THE ENTRY. * *INCORRECT ENTRY.* = THE COMMAND WAS NOT LEGAL. * *INCORRECT EQUIPMENT.* = THE EST ORDINAL SPECIFIED EITHER WAS * NOT MASS STORAGE OR WAS A NULL EQUIPMENT. * *INCORRECT PARAMETER.* = THE PARAMETER IN THE ENTRY WAS * INCORRECT OR TOO LARGE. * *REPEAT ENTRY.* = THE ENTRY WILL NOT BE CLEARED AFTER * EXECUTION. * *SYSTEM BUSY.* = DDF IS WAITING FOR THE SYSTEM TO PROCESS * A REQUEST. * * BYTE NNNN.* = THE DATA SPECIFIED IS IN BYTE NNNN. * * LENGTH = NNNNNNNNB.* = THE *SKIPEI* COMMAND HAS SKIPPED * NNNNNNNN (OCTAL) SECTORS. * * THE FOLLOWING MESSAGES TELL WHY THE *SCAN* COMMAND STOPPED. * *LINKAGE BYTE BAD.* * *SYSTEM SECTOR LINKAGE BYTE BAD.* * *TRACK LINK IN WRONG SECTOR.* * *WORD COUNT TOO BIG.* * *TRACK NOT RESERVED.* * * THE FOLLOWING MESSAGES MAY APPEAR DURING A PACK RECOVERY. * *ERROR IN TRACK STATUS.* * *END OF EQUIPMENT.* * *SYSTEM SECTOR IN TRACK.* * *NEXT TRACK IN USE.* * * SOME COMMANDS READ SEVERAL SECTORS. IF A DISK ERROR IS * ENCOUNTERED WHILE PROCESSING THE COMMAND, PROCESSING STOPS * AND THE ERROR CODE IS DISPLAYED ON THE LEFT SCREEN. DDF SPACE 4,10 * COMMON DECKS. *CALL COMDMAC *CALL COMPMAC *CALL COMSCPS *CALL COMSEJT *CALL COMSLFD *CALL COMSPIM *CALL COMSMSP *CALL COMSMST *CALL COMSPRD *CALL COMSSSD *CALL COMSZOL DDF SPACE 4,10 ** PROGRAMS CALLED. * * DDFILE - DDF UTILITY FUNCTION PROCESSOR. * NOTE - (RA+2) = POINTER TO OUTPUT FILE. * (RA+3) = POINTER TO *DBUF*. * (RA+4) = LWA+1 OF *DDFILE*. * (RA+5) = CPU STATUS WORD - USED TO RECEIVE FUNCTION * CODE FROM *DDF*. * THE ASSEMBLY CONSTANT *D* (=5) IS USED TO REFERENCE * THESE LOCATIONS. DDF SPACE 4,50 ** DDF LOADING SEQUENCE. * * THE FOLLOWING SEQUENCE IS USED TO INITIALIZE *DDF*. * * A) UPON ENTRY *DDF* BRANCHES TO *PRS*. * - CHECK FOR LEGAL USER. * - LOAD *DDFILE*. * - REQUEST FL FOR CM RESIDENT TABLES AND PROCESSOR * OVERLAYS. * - LOAD RIGHT SCREEN PROCESSOR OVERLAYS TO CM. * B) *PRS* BRANCHES TO *LCP*. * - LOAD AND PRESET EACH COMMAND PROCESSOR OVERLAY, AND * LOAD COMMAND PROCESSORS TO CM. * - WRITE TABLES TO CM. * C) LOAD RESIDENT OVERLAY. * - PRESET DIRECT CELLS AND CONSTANTS. * - SET CHANNELS AND REQUEST DISPLAY. * - SET EQUIPMENT PARAMETERS FOR DEFAULT FAMILY-S * LABEL TRACK. * - CLEAR END OF SECTOR BUFFER FOR NEATER DISPLAY. * D) ENTER MAIN LOOP VIA THE READ SECTOR COMMAND PROCESSOR. * * DDF LOADING SEQUENCE DIAGRAM - * * ORIGINAL PROGRAM * * LOC PPFW(1100)---------------------------------------------- * DDF(MAIN LOOP) * DLS(LEFT SCREEN DRIVER) * DRS(RIGHT SCREEN DRIVER) * LOC RSPLA--------------------------------------------------- * TABLES(TCEF,TCRO) * LCP(LOAD COMMAND PROCESSORS)>>>>>>>>>V>>>>>V>>>>>V>>>>>V * LOC OVL----------------------------------V-----V-----V V * PRS 8XB 8XC 8XD V * RIGHT SCREEN PROCESSORS . . . V * LOC RESLA(AFTER LONGEST-----------------.-----.-----.-----V * SINGLE RIGHT SCREEN . . . 8XA * PROCESSOR) . . . . * . . . . * . . . . * LOC CPLA---------------------------------.-----.-----.-----. * . . . PRR * . . . . * . . . . * * * PP STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION - * * LOC PPFW(1100)-------------------- * DDF(MAIN LOOP) * DLS(LEFT SCREEN DRIVER) * DRS(RIGHT SCREEN DRIVER) * LOC RSPLA------------------------- * / CURRENT / * / RIGHT / * / SCREEN / * / PROCESSOR / * LOC RESLA------------------------- * 8XA - * RESIDENT * ROUTINES * PKI, ETC. * LOC BFMS-------------------------- * SECTOR BUFFER * LOC CPLA-------------------------- * / CURRENT / * / COMMAND / * / PROCESSOR / * * * CM STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION - * * ORG------------------------------------------------- * DDFILE(CP PROGRAM) * DDFILE FL------------------------------------------- * TCEF(TABLE OF COMMAND FORMATS) * TCRO(TABLE OF RIGHT SCREEN PROCESSOR OVERLAYS) * DDFILE FL + CMTL------------------------------------ * RIGHT SCREEN PROCESSORS * COMMAND PROCESSORS(LOADED FROM OVERLAYS) DDF SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. MC EQU T4 MASS STORAGE CHANNEL (NOT A SCRATCH CELL) EQ EQU T5 EST ORDINAL (NOT A SCRATCH CELL) TK EQU T6 TRACK (NOT A SCRATCH CELL) SC EQU T7 SECTOR (NOT A SCRATCH CELL) DK EQU 15 DISPLAY KEYBOARD CONTROL * 16 SPARE * 17 SPARE AB EQU 20 - 24 ASSEMBLY BUFFER UI EQU AB+3 USER INDEX RI EQU AB+3 RANDOM INDEX BA EQU 25 - 26 BUFFER ADDRESS RC EQU 27 REPEAT COUNT SB EQU 30 SYSTEM BUSY FLAG CR EQU 31 CHANNEL RESERVED FLAG RS EQU 32 RIGHT SCREEN DISPLAY TA EQU 33 CM SYNTAX TABLE ADDRESS/100B EF EQU 34 EXECUTE FLAG LT EQU 35 LAST TRACK NUMBER ON EQUIPMENT LS EQU 36 LAST SECTOR NUMBER ON TRACK RT EQU 37 CM TRT RECOVERY TABLE ADDRESS/100B KE EQU 40 KEYBOARD ENTRY KI EQU 41 KEYBOARD BUFFER INDEX KM EQU 42 KEYBOARD MESSAGE POINTER CA EQU 43 CHARACTER ADDRESS FN EQU 44 - 50 FILE NAME * EQU 51 - 57 SPARES PF EQU 60 - 64 PF CONTROL WORD * 65 SPARE XC EQU 66 X-COORDINATE (6000B, CH01 ASSUMED) YC EQU 67 Y-COORDINATE **** DDF SPACE 4,20 ** DIRECT CELL USAGE. * * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS * BY THE DISPLAY ROUTINES AND COMMAND PROCESSORS. * * T0 - T3. * CM - CM+4. * AB - AB+4. * RC. * YC. * * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS * BY THE COMMAND PROCESSORS ONLY. * * FN - FN+4. DDF TITLE MACRO DEFINITIONS. * MACRO DEFINITIONS. ACRDEF SPACE 4,10 ** ACRDEF - AUX COMMAND ROUTINE DEFINITION. * *NAME ACRDEF * * ENTRY *NAME* = OVERLAY NAME (CM FL RESIDENT). * * DEFINES TAG *NAME_M* AS INDEX OF OVERLAY CONTROL WORD IN * TABLE *TCRO*. PURGMAC ACRDEF MACRO ACRDEF,NAM CON /NAM/NAM,NAM_L,0,NAM,0 .1 SET *O-TCRO-5 QUAL NAM_N EQU /PRESET/.1/5 QUAL * LOC .1/5+1 ENDM ACRDEF ACROVL SPACE 4,10 ** ACROVL - DEFINE AUX COMMAND ROUTINE OVERLAY. * *NAME ACROVL LA * * ENTRY *NAME* = NAME OF OVERLAY. (CM FL RESIDENT) * *LA* = LOAD ADDRESS. * * NOTE IF THE OVERLAY IS TO USE THE RIGHT SCREEN DISPLAY * OVERLAY AREA, SEE COMMENTS ON USE OF THIS AREA * WITH DEFINITION OF SYMBOL *ACRLA*. * NOTE TO BEGIN A SEQUENCE OF OVERLAYS, THE SYMBOL *ACRA* * MUST BE UNDEFINED OR EQUAL TO ZERO. PURGMAC ACROVL MACRO ACROVL,NAM,LA LOC *O BSS 0 .A IF DEF,//ACRA .B IFNE //ACRA,0 QUAL * QUAL PRESET .1 SET *-ACRA+4 "ACRA"L EQU .1/5 .CMTL SET .CMTL+"ACRA"L QUAL * .A ENDIF .B ENDIF USE NAM .C IFC NE,$NAM$$ QUAL PRESET NAM EQU * ACRA MICRO 1,, NAM QUAL * QUAL ACRA SET * QUAL * QUAL NAM LOC LA NAM EQU * .C ELSE QUAL ACRA SET 0 QUAL * .C ENDIF ENDM ACROVL COMMAND SPACE 4,10 ** COMMAND - ENTER COMMAND PROCESSOR. * *CMD COMMAND * * ENTRY *CMD* = NAME OF COMMAND PROCESSOR. * * NOTE - COMMAND PROCESSORS CANNOT USE LITERALS. PURGMAC COMMAND MACRO COMMAND,CMD LOC *O BSS 0 .A IF DEF,CMDA QUAL PRESET .1 SET *-/DDF".N"/CMDA+4 "CMDA"L EQU .1/5 .MCMDL MAX .MCMDL,"CMDA"L .CMTL SET .CMTL+"CMDA"L QUAL * .A ENDIF .B IFC NE,$CMD$$ QUAL PRESET CMD EQU .N*10000+* CMDA MICRO 1,, CMD QUAL * CMDA SET * LOC CPLA .B ENDIF ENDM COMMAND ENTER SPACE 4,10 ** ENTER - ENTER SPECIAL SYNTAX. * *CMD ENTER (SYNTAX),D * * ENTRY *CMD* = NAME OF COMMAND PROCESSOR. * *SYNTAX* = SYNTAX OF COMMAND. * IF *D* IS PRESENT, A DUMMY ENTRY IS DEFINED. PURGMAC ENTER MACRO ENTER,CMD,SYNTAX,D .A IFC EQ,$D$$ CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000 .A ELSE CMD EQU *O CON 0,0 .A ENDIF ORG *O-2 .1 SET * DATA Z$SYNTAX$ BSSZ 10-*O+.1 FILL REMAINDER OF SYNTAX AREA (15D CHAR MAX) .B IFC EQ,$D$$ CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000 .B ELSE CON 0,0 .B ENDIF .1 SET *O-TCEF LOC .1/5 ENDM ENTER INDEX SPACE 4,40 ** INDEX - GENERATE INDEXED TABLE. * (MODIFIED VERSION OF MACRO FROM *COMPMAC*.) * * *NAME INDEX TYPE,ADDRESS * * ENTRY *NAME* = TABLE NAME. * *TYPE* = OFFSET INTO TABLE FOR THIS ENTRY. * *ADDRESS* = CONTENTS OF THIS ENTRY. * * THIS MACRO IS INTENDED TO GENERATE TABLES WHICH ARE INDEXED * BY SYMBOLIC CONSTANTS SUCH AS FILE AND JOB ORIGIN CODES. * IT HAS 3 CALLING SEQUENCES. * * IF *NAME* IS PRESENT, THE FWA OF THE TABLE IS SET TO *NAME*. * * IF *ADDRESS* IS MISSING, THE TABLE IS TERMINATED WITH AN * *ORG* TO THE END OF THE TABLE. THIS RESULTS IN ZERO ENTRIES * FOR UNDEFINED ENTRIES IN THE TABLE. * * OTHERWISE, A TABLE ENTRY IS MADE AT *INDEX* + *TYPE* OF * *ADDRESS*. * * EXAMPLE - TO GENERATE A TABLE FOR PROCESSING FILE TYPES. * *TFTP INDEX BEGIN TABLE * * INDEX PRFT,PRP PROCESS PRINT FILE AT *PRP* * INDEX LOFT,LOP PROCESS LOCAL FILE AT *LOP* * * INDEX MXFT TERMINATE TABLE AT *TFTP*+*MXFT* * * THE CODE PROCESSING THIS TABLE NOTES THAT - * A FILE OF TYPE *MXFT* CANNOT BE PROCESSED, * A TABLE ENTRY = 0, CANNOT BE PROCESSED. * * USES SYMBOL NAME *INDEX*. PURGMAC INDEX MACRO INDEX,A,B,C .A IFC NE,$A$$ A BSS 0 .1 SET A .2 SET *O .A ELSE ORG .2+B IFC NE,$C$$,2 LOC B CON C LOC .1+B BSS 0 .A ENDIF ENDM INDEX OVERLAY SPACE 4,10 ** OVERLAY - DEFINE NEW OVERLAY. * * OVERLAY ORG,(TITLE) * * ENTRY *ORG* = ORIGIN ADDRESS OF OVERLAY. * *TITLE* = TITLE FOR OVERLAY. PURGMAC OVERLAY OVERLAY MACRO O,TEXT .N SET .N+1 ERRNG 1R4-.N TOO MANY OVERLAYS .N MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ01234 TTL DDF/8"OVLN"".N" - TEXT TITLE QUAL DDF".N" IDENT 8"OVLN"".N",O TEXT *COMMENT DDF - TEXT COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. ORG O ENDM OVERLAY RSDEF SPACE 4,10 ** RSDEF - RIGHT SCREEN PROCESSOR DEFINITION. * *NAME RSDEF R * * ENTRY *NAME* = PROCESSOR OVERLAY NAME. * *R* = FLAG TO INDICATE PROCESSOR IS RESIDENT, NOT * AN OVERLAY. * * DEFINES TAG *NAME_N* AS INDEX OF OVERLAY CONTROL WORD IN * TABLE *TDPO*. PURGMAC RSDEF MACRO RSDEF,NAM,R .A IFC EQ,$R$$ CON /NAM/NAM,NAM_L,0,NAM,0 .A ELSE CON NAM,0,0,0,0 .A ENDIF .1 SET *O-TCRO-5 QUAL NAM_N EQU /PRESET/.1/5 QUAL * LOC .1/5+1 ENDM RSDEF RSOVL SPACE 4,10 ** RSOVL - DEFINE RIGHT SCREEN DISPLAY PROCESSOR OVERLAY. * *NAME RSOVL LA * * ENTRY *NAME* = NAME OF PROCESSOR. * *LA* = LOAD ADDRESS. * * NOTE - THE DISPLAY PROCESSORS CANNOT USE LITERALS. * - THE ENTRY TO THE ROUTINE IS AT *LA*+1. PURGMAC RSOVL MACRO RSOVL,NAM,LA LOC *O BSS 0 .A IF DEF,//RSPA QUAL * QUAL PRESET .1 SET *-RSPA+4 "RSPA"L EQU .1/5 .MRSPL MAX .MRSPL,"RSPA"L .CMTL SET .CMTL+"RSPA"L QUAL * .A ENDIF USE NAM .B IFC NE,$NAM$$ QUAL PRESET NAM EQU * RSPA MICRO 1,, NAM QUAL * QUAL RSPA SET * QUAL * QUAL NAM LOC LA NAM EQU * .B ENDIF ENDM RSOVL DDF SPACE 4,20 **** ASSEMBLY CONSTANTS. CH EQU CHDS DISPLAY CHANNEL D EQU 5 CPU STATUS WORD KBUFL EQU 32D+2 KEYBOARD BUFFER LENGTH NSRA EQU 6 NUMBER OF SCRATCH REGISTER AREAS RCPC EQU 12D RIGHT SCREEN - COMMANDS PER COLUMN MLPS EQU 40 MAIN LOOPS PER SECOND ON CC545 NAME MICRO 1,, DDF OVLN MICRO 1,, X PNFL EQU 0 TABLE INDEX FOR LOCAL FNT ACCESS .N SET 0 OVERLAY NUMBER QUAL PRESET .1 SET 0 .2 SET 0 NOREF .1,.2 .MRSPL SET 0 MAXIMUM RIGHT SCREEN PROCESSOR LENGTH NOREF .MRSPL .MCMDL SET 0 MAXIMUM COMMAND PROCESSOR LENGTH NOREF .MCMDL QUAL * **** TITLE MAIN PROGRAM. DDF SPACE 4,10 ** DDF - MAIN PROGRAM. ORG PPFW DDF BSS 0 ENTRY LJM /PRESET/PRS PRESET PROGRAM * CON 0,** (IF *DDFILE* NOT LOADED BY PRESET) * MAIN LOOP. DDF1 RJM DLS DISPLAY LEFT SCREEN DFIM (CON RJMI) PROCESS KEYBOARD FOR 721 UJN *+2 CON PKI RJM SYS DISPLAY SYSTEM HEADERS RJM DRS DISPLAY RIGHT SCREEN RJM PSS PAUSE FOR SYSTEM CFNC THCF TRANSFER HIDDEN TO VISIBLE, CLEAR HIDDEN DCN CH+40 RJM PKI PROCESS KEYBOARD INPUT RJM RCP RECALL COMMAND PROCESSOR IF NECESSARY UJN DDF1 LOOP DPP SPACE 4,10 ** DPP - DROP PP. DPP BSS 0 ENTRY LDN 10 CLEAR *DIS* FLAG STD CM+4 LDN CCTS STD CM+1 MONITOR SJCM MONITOR DPPM DROP PP LJM PPR EXIT TO PP RESIDENT GLOBAL SPACE 4,10 * GLOBAL DATA. DFIM (CON C721) DCTY CON C545 DISPLAY CONSOLE TYPE DFIM (CON T721) CTOS CON T545 TOP OF SCREEN DFIM (CON Y721-YINC) CBOS CON Y545-YINC BOTTOM OF SCREEN DFIM (CON -YINC) SINGLE SPACE FOR 721 DBLS CON -YINC*2 DOUBLE SPACE Y-COORDINATE INCREMENT DFIM (CON LN08) CPFC CON LN13 LINE ABOVE FIRST LINE OF PFC TITLE LEFT SCREEN DISPLAY. *** LEFT SCREEN. * * THE LEFT SCREEN DISPLAYS INFORMATION ABOUT THE DISK * AND THE CONTROL POINT. THE LOGICAL ADDRESS ON THE DISK * APPEARS FIRST. THE LINK BYTE FROM THE TRT FOR * THE CURRENT TRACK IS DISPLAYED AND IS INTENSIFIED IF IT IS * NOT THE SAME AS THE CONTENTS OF THE LINKAGE BYTES. THE CEN- * TRAL MEMORY ADDRESS, BYTE NUMBER OF THE TRT ENTRY AND * RESERVATION, INTERLOCK, AND PRESERVED FILE STATUSES ARE ALSO * DISPLAYED. * * THE FAMILY AND PACK NAMES, AND THE CONTROL POINT * NUMBER AND JSN OF THE ASSOCIATED JOB ARE DISPLAYED. * THE DISK-S PERMITS AND INDIRECT TRACK NUMBERS ARE SHOWN. * IF PRESENT, BOTH CONTROL POINT MESSAGES ARE DISPLAYED. * IF A DISK ERROR OCCURS, THE ERROR CODE RETURNED IN LOCATION * *RDCT* BY THE DRIVER IS DISPLAYED. * * THE CONTENTS OF THE SCRATCH REGISTERS, THE PHYSICAL * LOCATION, AND THE HARDWARE STATUS CODE (THE MEANING WILL VARY * DEPENDING ON THE TYPE OF MASS STORAGE) ARE ALSO DISPLAYED. * * IF A PACK RECOVERY IS IN PROGRESS, THE TRACK POINTER AND * TRACK RECOVERY WORD ARE DISPLAYED. DLS SPACE 4,15 ** DLS - DISPLAY LEFT SCREEN. * * ENTRY (RT) = CM RECOVERY DATA TABLE ADDRESS. * (ZERO IF RECOVERY ROUTINES NOT USED.) * * USES T1, T2, T3, AB - AB+4, CM - CM+4, RC, YC. * * CALLS CTR, DOL, D2S, D4D, D6S, SNT. * * MACROS CFNC, DFIM, DISPLA, DISPHD, SFA. DLS SUBR ENTRY/EXIT CFNC SLSF SELECT LEFT SCREEN, SMALL CHARACTERS DISPHD (DDF. DISPLAY DISK FILE.) DFIM (CON LN06),*+1 LDC LN08 OUTPUT COORDINATES STD YC OAN CH+40 LDD XC OAN CH+40 * DISPLAY DISK ADDRESS DATA. DISPLA CH01,,( EST =) LDD EQ DISPLAY TOP DIGIT SHN -6 ZJN DLS1 IF NO UPPER DIGIT ADN 1R0 DLS1 OAN CH+40 LDD EQ RJM D2S DISPLAY LAST TWO DIGITS DISPLA CH15,,( TK = ) LDD TK RJM D4D DISPLAY TRACK NUMBER DISPLA CH30,,(ADDRESS OF TRT =) LDD TK SHN -2 DLSA ADC TRTS RJM D6S DISPLAY TRT ADDRESS DISPLA ,,(BYTE) LDD TK LPN 3 ADN 1R0 OAN CH+40 LCN YINC MOVE TO NEXT LINE RAD YC OAN CH+40 DISPLA CH01,,( TYPE = ) SFA EST,EQ DISPLAY EQUIPMENT TYPE ADK EQDE CRD AB LDD AB+3 OAN CH+40 DISPLA CH15,,( SC = ) LDD SC RJM D4D DISPLAY SECTOR NUMBER DISPLA CH30,,(CONTENTS OF TRT = ) LDN 0 STD RC RJM SNT GET NEXT TRACK LINK STD T2 LDM BFMS NJN DLS2 IF NOT EOF/EOI LDM BFMS+1 DLS2 SHN 6 PJN DLS3 IF NOT A CHAIN BYTE SHN -6 LMD T2 ZJN DLS3 IF TRT AND CHAIN BYTE MATCH DFIM (CFNC BIVF) PSN PSN LDN 3 STD RC DLS3 LDC CH48 OUTPUT X-COORDINATE OAN CH+40 LDD T2 RJM D4D OUTPUT VALUE DFIM (CFNC EIVF) SOD RC PJN DLS3 IF REPEAT COUNT NOT COMPLETE PSN PSN * DISPLAY TRACK STATUS. RJM CTR CHECK TRACK RESERVATION BIT STD T2 MJN DLS4 IF TRACK RESERVED DISPLA CH53,,(NOT),H DLS4 DISPLA CH57,,(RESERVED) LCN YINC RAD YC OAN CH+40 DISPLA CH01,,( STATE = ) LDD AB LPN 3 SHN 1 STD T1 LDM DLSE,T1 OAN CH+40 LDM DLSE+1,T1 OAN CH+40 LDD T2 SHN 21-7 PJN DLS6 IF NOT FIRST TRACK PRESERVED FILE DISPLA CH56,,(PRESERVED) DLS6 LDD T2 SHN 21-3 PJN DLS7 IF NOT INTERLOCKED LCN YINC RAD YC OAN CH+40 DISPLA CH54,,(INTERLOCKED) DFIM (CON LN11),*+1 DLS7 LDC LN15 OAN CH+40 SBN YINC STD YC * DISPLAY FAMILY AND PACK NAMES. DISPLA CH01,,(FAMILY = ) SFA EST,PF+4 DISPLAY FAMILY NAME ADK EQDE CRD CM LDD CM+4 SHN 3 ADK PFGL CRD CM LDN 3 OAM CM,CH LDD CM+3 SCN 77 OAN CH+40 DISPLA CH22,,( PACK = ) LDN 3 DISPLAY PACK NAME OAM PF,CH LDD PF+3 SCN 77 OAN CH+40 * DISPLAY CONTROL POINT INFORMATION. DISPLA CH42,,( CP = ) LDD CP DISPLAY CONTROL POINT NUMBER SHN -7 RJM D2S DISPLAY TWO DIGITS DISPLA CH55,,(JSN = ) LDC 0 DLSB EQU *-1 (ADDRESS OF EJT ENTRY, SET BY *PRS*) CRD CM LDN 2 DISPLAY JOB SEQUENCE NAME OAM CM,CH * DISPLAY FIRST PERMIT AND DATA TRACK NUMBERS. LDD YC OAN CH+40 DISPLA CH01,,(PERMITS TRACK = ) LDD AB+4 SHN 3 ADN ALGL CRD CM LDD CM+2 RJM D4D DISPLAY TRACK NUMBER DISPLA CH26,,( FIRST TRACK INDIRECT CHAIN = ) LDD CM RJM D4D DISPLAY TRACK NUMBER * DISPLAY CONTROL POINT MESSAGES. LCN YINC*2 OUTPUT COORDINATES RAD YC OAN CH+40 LDD XC OAN CH+40 LDD CP DISPLAY FIRST MESSAGE LINE ADN MS1W RJM DOL DISPLAY ONE LINE LCN YINC RAD YC LDN 2 OUTPUT COORDINATES OAM XC,CH LDD CP ADN MS2W OUTPUT SECOND MESSAGE LINE RJM DOL DISPLAY ONE LINE * DISPLAY SCRATCH AREAS. LCN YINC*2 OUTPUT COORDINATES RAD YC OAN CH+40 DISPLA CH01,,(------------SCRATCH AREAS-------------) LDM RDCT LPN 77 ZJN DLS8.1 IF NO ERROR STD T3 DFIM (CFNC BIVF) PSN PSN LDN 3 STD RC DLS8 DISPLA CH44,,(ERROR = ) LDM DLSD,T3 OAN CH+40 DFIM (CFNC EIVF) SOD RC NJN DLS8 IF REPEAT COUNT NOT COMPLETE PSN PSN DFIM (LCN YINC) DLS8.1 LCN YINC*2 RAD YC OAN CH+40 DISPLA CH06,,(EST TK SC COMMENT) LDC SRA STD T2 LDN 0 STD T3 DLS9 LCN YINC RAD YC OAN CH+40 LDD XC OAN CH+40 AOD T3 SHN 6 OAN CH+40 DISPLAY SCRATCH AREA LETTER LDI T2 DISPLAY EST ORDINAL RJM D6S AOD T2 LDI T2 DISPLAY TRACK RJM D6S AOD T2 LDI T2 DISPLAY SECTOR RJM D6S LDN 0 OAN CH+40 LDN 2 DISPLAY COMMENT RAD T2 LDN 4 STD CM DLS10 LDI T2 OAN CH+40 AOD T2 SOD CM PJN DLS10 IF MORE COMMENT LDD T3 LMN NSRA ZJN DLS11 IF END OF SCRATCH AREAS LJM DLS9 LOOP FOR REST OF SCRATCH REGISTERS * DISPLAY RECOVERY DATA. DLS11 LDD RT NJN DLS12 IF RECOVERY TABLE PRESENT LJM DLS14 RETURN DLS12 LCN YINC*2 OUTPUT COORDINATES RAD YC OAN CH+40 DISPLA CH01,,(TRACK POINTER = ) LDD RA ADD RT SHN 6 DLSC ADN RCPW READ POINTER WORD * ADN ICPW IF BUILDING INDIRECT CHAIN * ADN BSPW IF IN *BLDSTRT.* CRD CM LDD CM RJM D4D DISPLAY TRACK POINTER LCN YINC OUTPUT COORDINATES RAD YC OAN CH+40 DISPLA CH01,,(TRACK RECOVERY WORD = ) LDD RA ADD RT SHN 6 ADD TK ADC TRCT-4000 CRD CM LDN CM STD T3 DLS13 LDN 0 OAN CH+40 LDI T3 RJM D4D DISPLAY FOUR DIGITS AOD T3 SBN CM+5 MJN DLS13 IF MORE OF WORD TO DISPLAY DLS14 FJM *,CH IF CHANNEL FULL, WAIT DCN CH+40 LJM DLSX RETURN LIST G DLSD EQU *-1 ECHO 1,ERRCODE=("DREC") CON EMN._ERRCODE "TXT._ERRCODE" ERROR LIST * DLSE BSS 0 DATA 4HON DATA 4HIDLE DATA 4HOFF DATA 4HDOWN TITLE RIGHT SCREEN DISPLAY. *** RIGHT SCREEN. * THE RIGHT SCREEN DISPLAYS THE CONTENTS OF THE DISK * SECTOR. THE BYTE NUMBERS ARE THE ACTUAL BYTE NUMBERS FOR * THE PHYSICAL DISK SECTOR (I.E. BYTES 0 AND 1 ARE THE CONTROL * BYTES). THESE BYTE NUMBERS ARE USED IN THE MEMORY CHANGING * COMMANDS. * * THE RIGHT SCREEN IS CHANGED WITH THE RIGHT BLANK OR * TAB KEY. FOR SOME DISPLAYS THE */* INCREMENTS THE ADDRESSES * DISPLAYED. DRS SPACE 4,15 ** DRS - DISPLAY RIGHT SCREEN. * * ENTRY (RS) = INDEX INTO TABLE OF RIGHT SCREEN DISPLAYS. * RIGHT SCREEN SELECTED - SMALL CHARACTERS. * CHANNEL ACTIVE. * * EXIT TO DISPLAY ROUTINE. * (T3) = BFMS, BUFFER ADDRESS. * * USES T3. * * CALLS LDO, RIGHT SCREEN PROCESSORS. DRS2 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY DCN CH+40 DRS SUBR ENTRY/EXIT LDM DRSB CHECK FOR OVERLAY LOADED LMD RS ZJN DRS1 IF DISPLAY UNCHANGED LDD RS RJM LDO LOAD DISPLAY OVERLAY DRS1 LDC BFMS SET BUFFER ADDRESS STD T3 LJM ** JUMP TO DISPLAY PROCESSOR * LJM RSPLA (NOT FORMATTED DISPLAY) * LJM DFD (IF FORMATTED DISPLAY) DRSA EQU *-1 OVERLAY CONTROL WORD FROM CM TABLE * CONTROL WORD FROM CM TABLE = (DRSA). *DRSA DATA 0 ADDRESS OF LOADED DISPLAY PROCESSOR DATA 0 PROCESSOR LENGTH CON 0,0 DATA 0 DISPLAY INDEX ERRNZ *-DRSA-5 CONTROL WORD MUST BE FIVE BYTES DRSB CON MXDI CURRENTLY LOADED RIGHT SCREEN DISPLAY ID * (PRESET TO ILLEGAL ID FOR INITIALIZATION) DIS HERE DISPLAY DATA RSPLA BSS 0 RIGHT SCREEN PROCESSOR LOAD ADDRESS TITLE CENTRAL MEMORY RESIDENT TABLES. USE PRESET QUAL PRESET ** CM TABLES. * TCEF SPACE 4,15 ** TCEF - TABLE OF COMMAND ENTRY FORMATS. * * VFD 96/Z*SYNTAX* * VFD 6/L,1/0,5/OVL,12/PP ADDR * * AFTER LOAD TO CM * VFD 96/Z*SYNTAX* * VFD 6/L,1/1,17/CM ADDR * * L = COMMAND PROCESSOR LENGTH (CM WORDS). * OVL = LAST CHARACTER OF OVERLAY NAME. * PP/CM ADDR = ADDRESS OF PROCESSOR. TCEF BSS 0 LOC 0 ARD ENTER (AUTOREAD.) BTR ENTER (BEGINR.) BEI ENTER (BLDEOI.) BLS ENTER (BLDSL.) BRS ENTER (BLDSTRT.) BOT ENTER (BOT.) CTB ENTER (CTB.) DEP ENTER (DEP.) DIS ENTER (DIS.) DRP ENTER (DROP.) DTK ENTER (DTK.) EEP ENTER (EEP.) EET ENTER (EJT.) EST ENTER (EST.) EFO ENTER (FAMILY.) FPE ENTER (FIND.) FIS ENTER (FINDISS.) FOV ENTER (FINDO.) FST ENTER (FINDS.) FSS ENTER (FINDSS.) EFB ENTER (FNT.) EFL ENTER (FNTL.) EFC ENTER (FNTLC.) GTT ENTER (GETTRT.) HOL ENTER (HOLD.) LSA ENTER (LOAD.) NAT ENTER (NEXTAT.) NSS ENTER (NEXTSS.) EPN ENTER (PACKNAM.) PRD ENTER (PREAD.) PTK ENTER (PTK.) PWT ENTER (PWRITE.) EIT ENTER (QFT.) ERA ENTER (RANDOM.) REC ENTER (RECOVER.) SCN ENTER (SCAN.) ELS ENTER (SC.*.) ESC ENTER (SC.) SRW ENTER (SETRW.) STP ENTER (SETTP.) SPF ENTER (SHOWPF.) SKE ENTER (SKIPEI.) SKF ENTER (SKIPF.) SKR ENTER (SKIPR.) STB ENTER (STB.) SSA ENTER (STORE.) ETK ENTER (TK.) SCT ENTER (UI.) WRT ENTER (WRITE.) TCEFA ENTER ( ),DUMMY LISTING FILE COMMANDS CLF ENTER (LISTING.) OUT ENTER (OUT.) PRT ENTER (PRINT.) RET ENTER (RETURN.) REW ENTER (REWIND.) SID ENTER (SETID.) SKL ENTER (SKIPL.) .END ENTER ,DUMMY END OF TABLE QUAL LOC *O .1 SET *-/PRESET/TCEF TCEFL EQU .1/5 LENGTH OF TABLE QUAL * TDPO SPACE 4,10 ** TCRO - TABLE OF CENTRAL RESIDENT OVERLAYS. * * VFD 12/ENTRY,12/L,24/ADDR,12/DI * * ENTRY = PROCESSOR ENTRY ADDRESS. * L = PROCESSOR LENGTH IN CM WORDS. * (L=0 IF NOT AN OVERLAY) * ADDR = PP ADDRESS OF CODE BEFORE LOADED TO CM. * = CM ADDRESS AFTER PRESET. * DI = OPTION (USUALLY A BUFFER INDEX). TCRO BSS 0 LOC 0 DFB RSDEF DISPLAY SECTOR - FIVE BYTES/LINE DTB RSDEF DISPLAY SECTOR - TEN BYTES/LINE DTX RSDEF DISPLAY SECTOR - TEXT DLC RSDEF DISPLAY LEGAL COMMANDS DFD RSDEF DISPLAY SECTOR - FORMATTED DSS RSDEF DISPLAY SYSTEM SECTOR FOR *DFD* DPE RSDEF DISPLAY PFC SECTOR FOR *DFD* DEI RSDEF DISPLAY EOI SECTOR FOR *DFD* MXDO EQU * MAXIMUM DISPLAY OVERLAY INDEX+1 TAR ACRDEF TABLE ACCESS ROUTINES (EJT, FNT, QFT) LRR ACRDEF LABEL/TRT RECONSTRUCTION SUBROUTINES QUAL LOC *O TCRO EQU 0+TCEFL CM ADDRESS OF TABLE MXDI EQU DFDN+1 MAXIMUM DISPLAY INDEX FOR DISPLAY TOGGLE .1 SET *-/PRESET/TCRO TCROL EQU .1/5 TABLE LENGTH IN CM WORDS SPACE 4,10 .1 SET *-/PRESET/TCEF CMTL EQU .1/5 CM TABLE AREA LENGTH QUAL * .CMTL SET CMTL ACCUMULATE TOTAL CM REQUIRED TITLE LOAD COMMAND PROCESSORS. LCP SPACE 4,15 ** LCP - LOAD COMMAND PROCESSORS. * * ENTRY FROM PRS. * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS. * (RC) = 1. * (TA) = CM FWA FOR TABLES. * * EXIT TO RESIDENT OVERLAY PRESET. * * USES AB, AB+3, AB+4, RC, T1. * * CALLS EXR, PSS. LCP3 LDC CMTL WRITE TABLES TO CM STD T1 LDD RA ADD TA SHN 6 CWM TCEF,T1 LDC 3R8"OVLN"A LOAD RESIDENT ROUTINES OVERLAY RJM EXR EXECUTE OVERLAY LCP BSS 0 LCP1 RJM PSS PAUSE FOR SYSTEM AOD RC ADVANCE OVERLAY NAME SBN .L+1 PJN LCP3 IF ALL COMMAND OVERLAYS LOADED LDD RC LOAD NEXT OVERLAY ADC 2L8"OVLN" RJM EXR EXECUTE OVERLAY LDC TCEF-2 SET COMMAND TABLE ADDRESS STD AB LCP2 LDN 2 CHECK NEXT COMMAND RAD AB LDI AB ZJN LCP1 IF END OF COMMAND TABLE LDN 10 ADVANCE TO OVERLAY ID RAD AB LDI AB SHN 21-5 MJN LCP2 IF PROCESSOR ALREADY LOADED STD T1 SHN 5-21 LPN 37 LMD RC NJN LCP2 IF COMMAND PROCESSOR NOT IN THIS OVERLAY LDM 1,AB SET PP MEMORY ADDRESS STM LCPA LDI AB SET CM ADDRESS INTO TABLE SCN 77 LMD AB+3 LMN 40 STI AB LDD AB+4 STM 1,AB LDD AB+3 WRITE PROCESSOR TO CM SHN 6 ADD RA SHN 6 ADD AB+4 CWM **,T1 LCPA EQU *-1 (PP ADDRESS OF PROCESSOR) LDD T1 UPDATE CM ADDRESS RAD AB+4 SHN -14 RAD AB+3 LJM LCP2 LOOP PSS SPACE 4,10 ** PSS - PAUSE FOR SYSTEM. * * EXIT TO *PPR*, IF ERROR FLAG SET. * (CM+1) = 0 IF ERROR FLAG NOT SET. * * MACROS MONITOR, PAUSE. PSS SUBR ENTRY/EXIT PAUSE LDD CM+1 ZJN PSSX IF ERROR FLAG NOT SET MONITOR DPPM DROP PP LJM PPR EXIT OVL SPACE 4,10 ** OVL - COMMAND PROCESSOR OVERLAY LOAD ADDRESS. OVL EQU *+5 TITLE PRESET PROGRAM. PRS SPACE 4,10 ** PRS - PRESET PROGRAM. * * EXIT TO PPR IF ANY ERRORS. * TO LCP TO CONTINUE PRESET. * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS. * (RC) = 1. * (TA) = CM FWA FOR TABLES. * (DDF) = 0, IF *DDFILE* NOT LOADED. * * USES CM - CM+4. * * CALLS DFM, CUA, PSS. * * MACROS EXECUTE, MONITOR, PAUSE. PRS BSS 0 RJM CUA CHECK USER ACCESS NJN PRS0 IF JOB HAS NO SYSTEM ORIGIN PRIVILEGES LDK SSML CRD CM LDD CM LPN 7 ZJN PRS1 IF UNSECURED SYSTEM LDK SSTL CRD CM LDD CM SHN 21-11 MJN PRS1 IF *SECURITY-UNLOCK* SET PRS0 LDC PRSE * INCORRECT USER ACCESS.* RJM DFM SEND DAYFILE MESSAGE MONITOR ABTM LJM PPR EXIT PRS1 LDN 1 PRESET OVERLAY COUNTER STD RC LDN 10 STD CM+4 LDN SCTS SET *DIS* FLAG STD CM+1 MONITOR SJCM PRS2 RJM PSS PAUSE FOR SYSTEM LDD FL NJN PRS3 IF NONZERO FIELD LENGTH LDN ZERL CRD CM AOD CM+1 REQUEST MEMORY MONITOR RSTM UJN PRS2 LOOP PRS3 RJM PSS PAUSE FOR SYSTEM LDN ZERL CLEAR CPU READY FLAG CRD CM LDD RA SHN 6 ADN D CWD CM LDD CP WRITE CONTROL CARD TO MESSAGE AREA ADN MS1W CWM PRSB,ON CWD CM ADN TFSW-MS1W-1 FETCH EJT ORDINAL CRD CM SFA EJT,CM STD CM+4 SET ADDRESS OF EJT ENTRY STM DLSB SHN -14 STD CM+3 RAM DLSB-1 LDN 0 STD CM+2 LDN 1S5+1 SET JOB ADVANCE STD CM+1 LDD MA CWM PRSF,ON MONITOR UTEM LDD CM+1 CHECK *UTEM* RESPONSE NJP PRS3 IF REJECT RJM PSS PAUSE LDN ZERL CRD CM LDD MA CALL *1AJ* WITH CONTROL CARD IN MS1W CWM PRSC,ON CWD CM EXECUTE 1AJ,= MONITOR RPPM LDD CM+1 ZJN PRS5 IF PP NOT ASSIGNED PRS4 PAUSE WAIT UNTIL CPU READY LDD CM+1 ZJN PRS6 IF ERROR FLAG NOT SET PRS5 LDN 0 DISABLE LISTING FILE COMMANDS STM TCEFA STM DDF INDICATE *DDFILE* NOT LOADED STD CM+1 CLEAR ERROR FLAG MONITOR CEFM LDN ZERL UJN PRS7 REQUEST STORAGE FOR COMMAND PROCESSORS PRS6 LDD RA READ CPU READY FLAG SHN 6 ADN D CRD CM LDD CM ZJN PRS4 IF NOT READY * REQUEST FL FOR COMMAND PROCESORS. LDD RA GET LWA+1 OF DDFILE SHN 6 ADN D-1 PRS7 CRD AB LDD AB+3 SHN 14 ADD AB+4 ADN 77 SHN -6 STD TA SET CM TABLE ADDRESS SHN 6 ADC TCMTL+77 CM FL INCREASE REQUIRED SHN -6 STD AB (AB) = REQUIRED FL LDD CP ADN MS1W CWM PRSD,TR * WAITING FOR MEMORY.* PRS8 LDN ZERL CRD CM LDD AB REQUEST STORAGE STD CM+1 MONITOR RSTM RJM PSS PAUSE LDD AB LMD FL NJN PRS8 IF MEMORY NOT OBTAINED * LOAD DISPLAY PROCESSOR OVERLAYS TO CM. LDD TA INITIALIZE OVERLAY ADDRESS POINTER SHN 6 ADC CMTL STD AB+4 SHN -14 STD AB+3 LDN 0 STD AB PRS9 LDM TCRO+1,AB SET WORD COUNT ZJN PRS10 IF NOT AN OVERLAY STD T1 LDM TCRO+3,AB SET PP MEMORY ADDRESS STM PRSA LDD AB+3 SET CM ADDRESS INTO TABLE STM TCRO+2,AB LDD AB+4 STM TCRO+3,AB LDD AB+3 WRITE PROCESSOR TO CM SHN 6 ADD RA SHN 6 ADD AB+4 CWM **,T1 PRSA EQU *-1 (PP ADDRESS OF PROCESSOR) LDD T1 UPDATE CM ADDRESS RAD AB+4 SHN -14 RAD AB+3 PRS10 LDN 5 ADVANCE INDEX RAD AB SBN MXDO*5 PJN PRS11 IF END OF TABLE LJM PRS9 LOOP PRS11 LJM LCP LOAD COMMAND PROCESSORS FROM OVERLAYS PRSB VFD 48/8L$DDFILE.,12/0 PRSC VFD 18/3R1AJ,6/0,12/2,12/0,12/4 PRSD DATA C* WAITING FOR MEMORY.* PRSE DATA C* INCORRECT USER ACCESS.* PRSF VFD 12/1,6/6,42/1 SET JOB ADVANCE SPACE 4,10 ** PRESET COMMON DECKS. QUAL$ EQU 0 DONT REQUALIFY COMMON DECKS *CALL COMPCUA EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT *CALL COMPGFP QUAL * RESUME UNQUALIFIED DEFINITIONS TITLE RIGHT SCREEN DISPLAY PROCESSOR CM RESIDENT OVERLAYS. DFB SPACE 4,10 *** FIVE BYTES PER LINE. * THE CONTENTS OF THE SECTOR ARE DISPLAYED BY CENTRAL * MEMORY WORD. THE BYTE NUMBERS ARE DISPLAYED IN * PARENTHESIS AFTER THE CENTRAL MEMORY WORD NUMBER. * THE */* IS USED TO TOGGLE BETWEEN THE FIRST AND * SECOND HALF OF THE SECTOR. THE NUMBER OF WORDS * DISPLAYED IS DETERMINED BY THE WORD COUNT IN THE * CONTROL BYTES. DFB SPACE 4,15 ** DFB - DISPLAY FIVE BYTES/LINE. * * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (T3) = BUFFER ADDRESS. * * EXIT TO DRS2. * * USES T3, YC, AB - AB+4. * * CALLS DMW, D4D, SPP. * * MACROS DISPLA. DFB RSOVL RSPLA DISPHD (DDF. 5 BYTES/LINE.) LDM CTOS SET TOP OF SCREEN OAN CH+40 SBN YINC STD YC DISPLA CH01,,(LINKAGE BYTES = ) LDI T3 DISPLAY CONTROL BYTES RJM D4D DISPLAY FOUR DIGITS LDN 0 OAN CH+40 LDM BFMS+1 RJM D4D DISPLAY FOUR DIGITS RJM SPP SET PAGE PARAMETERS ZJN DFB1 IF NO WORDS TO DISPLAY STD AB+4 LDM BFMS+1 NUMBER OF WORDS IN SECTOR SBD AB - FIRST WORD NUMBER MJN DFB4 IF NO DATA TO BE DISPLAYED SBD AB+4 - PAGE SIZE PJN DFB2 IF FULL PAGE TO BE DISPLAYED RAD AB+4 ADJUST WORD COUNT TO DISPLAY DFB1 ZJN DFB4 IF NO DATA TO DISPLAY DFB2 LCN YINC ADVANCE Y-COORDINATE RAD YC LDD AB SET LAST WORD NUMBER + 1 ADN 10 STD AB+1 LCN 10 DECREMENT WORDS TO DISPLAY RAD AB+4 PJN DFB3 IF FULL GROUP TO BE DISPLAYED RAD AB+1 ADJUST LAST WORD NUMBER LDN 0 STD AB+4 DFB3 LDD AB SET FIRST BYTE NUMBER SHN 2 FIRST WORD NUMBER * 5 STD AB+2 LDD AB ADN 2 + 2 RAD AB+2 = FIRST BYTE NUMBER LDN 0 SET DISPLAY MODE STD AB+3 RJM DMW DISPLAY MEMORY WORDS LDD AB+4 NJN DFB2 IF MORE WORDS TO DISPLAY DFB4 LJM DRS2 EXIT DIS HERE DTB SPACE 4,10 *** TEN BYTES PER LINE. * THE CONTENTS OF THE SECTOR ARE DISPLAYED 10B BYTES PER * LINE. THE ENTIRE SECTOR IS DISPLAYED ON THE SCREEN * WITH BYTE NUMBERS. DTB SPACE 4,15 ** DTB - DISPLAY TEN BYTES/LINE * * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (T3) = BUFFER ADDRESS. * * EXIT TO DRS2. * * USES T2, T3, XC, YC. * * CALLS D4D, ODC. DTB RSOVL RSPLA DISPHD (DDF. 10B BYTES/LINE.) LDC LN05 STD YC LDM DCTY SET FIRST BYTE NUMBER SBK C545 ZJN DTB1 IF CC545 CONSOLE LDN 0 CLEAR BOTTOM OF SCREEN ADJUSTMENT STM DTBA LDM DRSA+4 CHECK PAGE NUMBER FOR 721 LPN 1 ZJN DTB1 IF FIRST PAGE LDC 250 SET FIRST BYTE SECOND PAGE DTB1 STD T2 * OUTPUT ONE LINE. DTB2 LDN 2 OUTPUT COORDINATES OAM XC,CH LDD T2 RJM D4D DISPLAY BYTE NUMBER LDN 7*XINC DTB3 RAD XC OUTPUT X-COORDINATE OAN CH+40 LDM BFMS,T2 RJM D4D DISPLAY CONTENTS OF BYTE AOD T2 LPN 7 ZJN DTB4 IF END OF LINE LDN 5*XINC UJN DTB3 LOOP TO DISPLAY REST OF LINE * OUTPUT DISPLAY CODE FOR LINE. DTB4 OAN CH+40 LDC CH01 RESET X-COORDINATE STD XC LDC BFMS-10 SET ADDRESS OF FIRST BYTE ADD T2 STD T3 LDN 10 BYTES TO DISPLAY RJM ODC OUTPUT DISPLAY CODE LDD T2 LPN 77 NJN DTB5 IF NOT NEW BLOCK * ADVANCE Y-COORDINATE. LCN YINC RAD YC DTB5 LCN YINC RAD YC SBM CBOS DTBA ADN YINC*4 MJN DTB8 IF AT BOTTOM OF SCREEN LDC 500-1 CHECK FOR END OF DISPLAY SBD T2 MJN DTB6 IF AT BOTTOM OF SCREEN LJM DTB2 LOOP * DISPLAY LAST TWO BYTES. DTB6 LDN 2 OUTPUT COORDINATES OAM XC,CH LDD T2 DISPLAY BYTE NUMBER RJM D4D LDN 7*XINC DTB7 RAD XC OUTPUT X-COORDINATE OAN CH+40 LDM BFMS,T2 DISPLAY CONTENTS OF BYTE RJM D4D AOD T2 LPN 1 ZJN DTB9 IF BOTH BYTES DISPLAYED LDN 5*XINC UJN DTB7 LOOP TO DISPLAY REST OF LINE DTB8 UJN DTB10 RETURN DTB9 LDC CH49 OUTPUT DISPLAY CODE FOR LAST 2 BYTES OAN CH+40 LDC BFMS+500 STD T3 LDN 2 RJM ODC LDC CH01 RESET X-COORDINATE STD XC DTB10 LJM DRS2 RETURN DIS HERE DTX SPACE 4,10 *** TEXT. * DISPLAYS THE CONTENTS OF THE SECTOR IN TEXT MODE. * THE AMOUNT OF TEXT TO DISPLAY IS DETERMINED BY THE * WORD COUNT IN THE CONTROL BYTES. DTX SPACE 4,15 ** DTX - DISPLAY TEXT. * * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (T3) = BUFFER ADDRESS. * * EXIT TO DRS2. * * USES T1, T2, T3, AB, YC. * * CALLS ODC. DTX RSOVL RSPLA DISPHD (DDF. TEXT MODE DISPLAY.) LDM CTOS ADN YINC STD YC LDM BFMS SET WORD COUNT NJN DTX2 IF DATA TO DISPLAY DTX1 LJM DTX7 RETURN DTX2 LDM BFMS+1 STD AB LDM DCTY SET FIRST BYTE NUMBER SBK C545 ZJN DTX3 IF CC545 CONSOLE LDM DRSA+4 CHECK PAGE NUMBER FOR 721 LPN 1 ZJN DTX3 IF FIRST PAGE LDC -40 DECREMENT NUMBER OF WORDS TO DISPLAY RAD AB MJN DTX1 IF NO WORDS TO DISPLAY LDC 240 SET FIRST BYTE SECOND PAGE DTX3 ADN 2 RAD T3 FIRST BYTE TO DISPLAY LDN 0 STD T1 DTX4 LDD XC DTX5 OAN CH+40 LCN YINC RAD YC SBM CBOS MJN DTX7 IF BOTTOM OF SCREEN REACHED LDD YC OAN CH+40 LDN 0 INITIALIZE LINE WORD COUNT STD T2 DTX6 LDD T1 SBD AB ZJN DTX7 IF ALL WORDS DISPLAYED LDN 5 RJM ODC OUTPUT DISPLAY CODE WORD AOD T1 LDM -1,T3 ZJN DTX4 IF END OF TEXT LINE AOD T2 SBN 5 NJN DTX6 IF NOT END OF SCREEN LINE LDC CH05 CONTINUE ON NEXT LINE OF SCREEN UJN DTX5 LOOP FOR REST OF LINE DTX7 LJM DRS2 RETURN DIS HERE DLC SPACE 4,10 *** LEGAL COMMANDS. * DISPLAYS A LIST OF THE DDF COMMANDS. DLC SPACE 4,15 ** DLC - DISPLAY LEGAL COMMANDS. * * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (TA) = ADDRESS OF COMMAND TABLE IN CM. * * EXIT TO DRS2. * * USES T2, DK, RC, XC, YC, AB - AB+4. * * CALLS DOL. DLC RSOVL RSPLA DISPHD (DDF. LEGAL COMMANDS.) LDN 0 INITIALIZE COMMAND INDEX STD DK DLC1 LDM CTOS STD YC LDN RCPC COMMANDS PER COLUMN STD RC DLC2 LDN 2 OUTPUT COORDINATES OAM XC,CH LDD RA GET ADDRESS OF COMMAND ADD TA SHN 6 ADD DK ADN 2 CHECK NEXT COMMAND CRD AB SBN 2 RJM DOL DISPLAY COMMAND LDD AB CHECK NEXT COMMAND ZJN DLC3 IF END OF COMMANDS LCN YINC ADVANCE Y-COORDINATE RAD YC LDN 2 ADVANCE COMMAND INDEX RAD DK SOD RC NJN DLC2 IF NOT END OF COLUMN LDC 13D*XINC ADVANCE X-COORDINATE RAD XC UJN DLC1 START NEXT COLUMN DLC3 LDM DCTY RESET COORDINATES SBK C545 ZJN DLC4 IF CC545 CONSOLE LDN 3*YINC DLC4 SBK 3*YINC+RCPC*YINC ADM CTOS STD YC LDC CH01 STD XC * OUTPUT SPECIAL CHARACTER COMMANDS. LDC DLCA-1 STD T2 DLC5 LCN YINC RAD YC LDN 2 OAM XC,CH DLC6 AOD T2 DISPLAY LINE LDI T2 OAN CH+40 LPN 77 NJN DLC6 IF NOT END OF LINE LDM 1,T2 NJN DLC5 IF MORE LINES TO DISPLAY LJM DRS2 RETURN DLCA BSS 0 DATA Z*+ INCREMENT SECTOR.* DATA Z*- DECREMENT SECTOR.* DATA Z*. ADVANCE PAST END OF TRACK, ZERO SECTOR.* DATA Z*, ADVANCE TO NEXT TRACK IN CHAIN.* DATA Z*= ADVANCE PAST EOI.* DATA Z*8 INCREMENT TRACK.* DATA Z*9 DECREMENT TRACK.* DATA Z*/ ADVANCE RIGHT SCREEN.* DATA Z*SPACE - READ CURRENT SECTOR.* DATA Z*RIGHT BLANK OR TAB - CHANGE RIGHT DISPLAY.* CON 0 DIS HERE DFD SPACE 4,20 ** DFD - DISPLAY FORMATTED DATA. * * DETERMINES SECTOR TYPE AND CALLS APPROPRIATE FORMATTING * DISPLAY PROCESSOR. * * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (T3) = BUFFER ADDRESS. * * EXIT TO DRS2. * * USES AB. * * CALLS DEI, DPE, DSS, D4D, LDO. * * MACROS DISPLA. DFD RSOVL RSPLA DISPHD (DDF. FORMATTED DISPLAY.) LDM CTOS OAN CH+40 ADM DBLS DOUBLE SPACE ADN YINC BACK UP ONE STD YC DISPLA CH01,,(LINKAGE BYTES = ) LDI T3 RJM D4D DISPLAY FIRST BYTE LDN 0 OAN CH+40 STD AB LDM BFMS+1 RJM D4D DISPLAY SECOND BYTE LDI T3 ZJN DFD2 IF EOF/EOI SECTOR LDM BFMS+1 ZJN DFD5 IF EMPTY SECTOR LDI T3 SHN 6 ADM BFMS+1 LMC 377777 NJN DFD1 IF NOT SYSTEM SECTOR LDN DSSN SELECT SYSTEM SECTOR DISPLAY UJN DFD3 LOAD PROCESSOR DFD1 LDN DPEN SELECT PFC DISPLAY UJN DFD3 LOAD PROCESSOR DFD2 LDM BFMS+1 NJN DFD5 IF NOT EOI SECTOR LDN DEIN SELECT EOI SECTOR DISPLAY DFD3 LMM DFDB ZJN DFD4 IF PROCESSOR LOADED LMM DFDB STM DFDB RJM LDO LOAD DISPLAY OVERLAY LDD CM SET PROCESSOR ADDRESS STM DFDA DFD4 LJM ** JUMP TO DISPLAY PROCESSOR DFDA EQU *-1 DFD5 LJM DRS2 RETURN DFDB DATA 0 CURRENT PROCESSOR ID DCE SPACE 4,15 ** DCE - DISPLAY PF CATALOG ENTRY. * * ENTRY (AB+2) = SET FOR CALL TO DMW. * (T3) = BUFFER ADDRESS. * * EXIT DATA DISPLAYED. * * USES T1, AB, AB+1, CM, YC. * * CALLS DPT, DMW. * * MACROS DISPLA. DCE SUBR ENTRY/EXIT LDM CPFC SET *DMW* PARAMETERS STD YC LDN 0 STD AB LDN NWCE STD AB+1 LDC TPFC STD AB+3 RJM DMW DISPLAY MEMORY WORDS * DISPLAY DATES AND MODES. LDM DBLS RAD YC LPC 7777 OAN CH+40 LDC -NWCE*5 ADD T3 STD CM DISPLA CH01,,(CREATED ) LDD CM DISPLAY CREATION DATE ADN FCCD RJM DPT DISPLAY PACKED DATE AND TIME DISPLA CH34,,( CT = ) LDM FCCT,CM DISPLAY FILE CATAGORY SHN -6 STD T1 LDM DCEA,T1 OAN CH+40 DISPLA ,,( M = ) LDM FCAM,CM DISPLAY ACCESS MODE LPN 77 STD T1 LDM DCEB,T1 OAN CH+40 LCN YINC RAD YC OAN CH+40 DISPLA CH01,,(MODIFIED ) LDD CM DISPLAY MODIFICATION DATE ADN FCMD RJM DPT DISPLA CH35,,(CONTROL ) LDD CM DISPLAY CONTROL CHANGE DATE ADN FCKD RJM DPT LCN YINC RAD YC OAN CH+40 DISPLA CH01,,(ACCESSED ) LDD CM DISPLAY LAST ACCESS DATE ADN FCAD RJM DPT DISPLA CH35,,(UTILITY ) LDD CM DISPLAY UTILITY ACCESS DATE ADN FCUD RJM DPT LJM DCEX RETURN DCEA DATA 2HPR FILE CATAGORIES DATA 2HSP DATA 2HPU DCEB DATA 2HWR ACCESS MODES DATA 2HRD DATA 2HAP DATA 2HEX DATA 2H DATA 2HMD DATA 2HRM DATA 2HRA DPT SPACE 4,10 ** DPT - DISPLAY PACKED DATE AND TIME. * * ENTRY (A) = ADDRESS OF PACKED DATE AND TIME. * * USES T1, AB - AB+4. * * CALLS CDD. DPT SUBR ENTRY/EXIT STD T1 LDI T1 CONVERT YEAR SHN -6 SBN 30D PJN DPT1 IF YEAR GREATER THAN 1999 ADC 100D DPT1 RJM CDD SHN 6 LMN 1R/ STD AB+1 SHN -14 LMC 2L STD AB LDI T1 CONVERT MONTH LPN 77 RJM CDD STD AB+2 AOD T1 LDI T1 CONVERT DAY SHN -6 RJM CDD SHN 6 LMN 1R. STD AB+4 SHN -14 LMC 2L / STD AB+3 LDN 5 DISPLAY * YY/MM/DD.* OAM AB,CH LDI T1 CONVERT HOUR LPN 77 RJM CDD SHN 6 LMN 1R. STD AB+1 SHN -14 LMC 2L STD AB AOD T1 LDI T1 CONVERT MINUTE SHN -6 RJM CDD STD AB+2 LDI T1 CONVERT SECOND LPN 77 RJM CDD SHN 6 LMN 1R. STD AB+4 SHN -14 LMC 2L . STD AB+3 LDN 5 DISPLAY * HH/MM/SS.* OAM AB,CH LJM DPTX RETURN SPACE 4,10 ** *DFD* COMMON DECKS. *CALL COMPCDD SPACE 4,10 * PFC TAGS FOR DISPLAYS. TPFC DATA 10H FCFN/FCUI DATA 10H FCLF/FCBT DATA 10H FCRI/FCCD DATA 10H FCAC/FCMD DATA 10H FCCT/FCAD DATA 10H FCKD DATA 10H FCRS/FCUD DATA 10H FCPW/FCXD DATA 10H FCAF/FCAA DATA 10H FCAL/FCFC DATA 10H FCCN DATA 10H FCP1 DATA 10H FCP2 DATA 10H FCTF/FCTV DATA 10H FCCW DATA 10H FCIW SPACE 4,10 * FNT DISPLAY TAGS. TFNT DATA 10H FNT DATA 10H FST DIS HERE SPACE 4,10 QUAL .1 SET *-RSPLA+4 FDPLA EQU RSPLA+.1/5*5 FORMATTED DISPLAY PROCESSOR LOAD ADDRESS QUAL * DSS SPACE 4,10 *** SYSTEM SECTOR DISPLAY. * IF THE SECTOR CURRENTLY IN THE BUFFER IS A SYSTEM * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED. DSS SPACE 4,15 ** DSS - DISPLAY SYSTEM SECTOR. * * ENTRY FROM DFD. * CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (T3) = BUFFER ADDRESS. * (YC) = Y-COORDINATE. * * EXIT TO DRS2. * * USES AB - AB+3, YC. * * CALLS DCE, DMW, DPT. * * MACROS DISPLA. DSS RSOVL FDPLA LDN 0 DISPLAY FNT/FST STD AB LDN 2 STD AB+1 LDN FNSS-BFMS STD AB+2 LDC /DFD/TFNT STD AB+3 RJM DMW DISPLAY MEMORY WORDS LDM DBLS RAD YC LPC 7777 OAN CH+40 DISPLA CH01,,(SYSTEM SECTOR. UPDATED) LDC DTSS+2 DISPLAY DATE AND TIME RJM /DFD/DPT * DISPLAY PFC ENTRY FOR DIRECT ACCESS OR FAST ATTACH FILES. LDM FNSS+4 CHECK FILE TYPE SHN -6 LMN PMFT ZJN DSS1 IF DIRECT ACCESS PERMANENT FILE LMN FAFT&PMFT NJN DSS2 IF NOT FAST ATTACH FILE DSS1 LDN CTSS-BFMS STD AB+2 RJM /DFD/DCE DISPLAY CATALOG ENTRY DSS2 LJM DRS2 RETURN DIS HERE DPE SPACE 4,10 *** PFC ENTRY. * THE CONTENTS OF ONE PERMANENT FILE CATALOG ENTRY ARE * DISPLAYED. THE CENTRAL MEMORY WORD NUMBER DISPLAYED * IS RELATIVE TO THE BEGINNING OF THE PFC ENTRY. THE * BYTE NUMBER RELATIVE TO THE BEGINNING OF THE SECTOR * IS DISPLAYED IN PARENTHESIS AFTER THE CM WORD NUMBER. * THE */* IS USED TO ADVANCE TO THE NEXT PFC ENTRY IN * THE SECTOR. DPE SPACE 4,15 ** DPE - DISPLAY PFC ENTRY. * * ENTRY FROM DFD. * CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD. * (T3) = BUFFER ADDRESS. * (YC) = Y-COORDINATE. * * EXIT TO DRS2. * * USES T2, AB+2, DRSA+4. * * CALLS DCE, D2S. * * MACROS DISPLA. DPE RSOVL FDPLA LDM DRSA+4 CHECK INDEX SHN NWCES SBM BFMS+1 PJN DPE1 IF NOT IN SECTOR ADN NWCE-1 MJN DPE2 IF END OF PFC NOT IN SECTOR DPE1 LDN 0 STM DRSA+4 DPE2 LCN YINC*2 RAD YC OAN CH+40 DISPLA CH01,,(PFC ORDINAL = ) LDM DRSA+4 ADN 1R0 OAN CH+40 LDM DRSA+4 SHN NWCES STD T2 SHN 2 ADD T2 ADN 2 STD AB+2 RJM /DFD/DCE DISPLAY CATALOG ENTRY LJM DRS2 RETURN DIS HERE DEI SPACE 4,10 *** EOI SECTOR DISPLAY. * IF THE SECTOR CURRENTLY IN THE BUFFER IS AN EOI * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED. DEI SPACE 4,15 ** DEI - DISPLAY EOI SECTOR. * * ENTRY FROM DFD. * CONSOLE FUNCTIONED FOR RIGHT SCREEN. * (T3) = BUFFER ADDRESS. * * EXIT TO DRS2. * * USES AB - AB+3, YC. * * CALLS DMW, DPT. * * MACROS DISPLA. DEI RSOVL FDPLA LDN 0 DISPLAY FNT/FST STD AB LDN 2 STD AB+1 LDN FNEI STD AB+2 LDC /DFD/TFNT STD AB+3 RJM DMW DISPLAY MEMORY WORDS LDM DBLS RAD YC LPC 7777 OAN CH+40 DISPLA CH01,,(EOI SECTOR. UPDATED) LDC BFMS+DTEI+2 DISPLAY DATE AND TIME RJM /DFD/DPT LJM DRS2 RETURN DIS HERE SPACE 4,10 RSOVL END OF RIGHT SCREEN PROCESSORS QUAL PRESET .1 MAX DSSL,DPEL,DEIL .2 SET FDPLA-RSPLA .MRSPL MAX .MRSPL,.2/5+.1 MAXIMUM TOTAL OVERLAY AREA QUAL * MRSPL EQU /PRESET/.MRSPL MAX RIGHT SCREEN PROCESSOR LENGTH SPACE 4,15 ** AUXILIARY COMMAND ROUTINES ORIGIN DEFINITION. * * THIS AREA AT THE END OF THE RIGHT SCREEN PROCESSOR OVERLAY * AREA MAY BE USED BY COMMAND PROCESSORS FOR EXTRA SUBROUTINES. * BEFORE LOADING THE SUBROUTINES, THE COMMAND PROCESSOR MUST * FIRST SET THE DISPLAY INDEX (RS) TO *DFBN* TO SELECT THE * SHORTEST DISPLAY OVERLAY (*DFB*). NOTE THAT THIS MUST BE * DONE BEFORE EACH CALL TO REFRESH THE DISPLAY TO OVERRIDE ANY * KEYBOARD REQUESTS THAT CHANGE THE RIGHT SCREEN DISPLAY. * * ** THE *DFB* DISPLAY MUST NOT USE ANY SECONDARY OVERLAYS. ** ACRLA EQU RSPLA+/PRESET/DFBL*5 MACRL EQU MRSPL-/PRESET/DFBL MAXIMUM LENGTH OF OVERLAY SPACE 4,10 ** RESIDENT OVERLAY ORIGIN DEFINITION. * * THIS OVERLAY IS LOADED ONCE AND REMAINS IN THE PP. RESLA EQU RSPLA+MRSPL*5-4 RESIDENT LOAD ADDRESS SPACE 4,10 OVERFLOW PPFW OVERLAY RESLA,(RESIDENT ROUTINES.) QUAL * BSS 2 LJM PRR PRESET RESIDENT ROUTINES * ABOVE CODE MAY BE OVERLAYED BY RIGHT SCREEN PROCESSORS. TITLE KEYBOARD INPUT PROCESSING. *** KEYBOARD INPUT. * IF THE CHARACTERS ARE THE FIRST ENTRY, THE FOLLOWING * APPLIES - * *+* READS THE NEXT SECTOR. IF AT EOI OR END OF THE TRACK THE * CURRENT SECTOR IS REREAD. * *-* READS THE PREVIOUS SECTOR. IF AT THE BEGINNING OF TRACK * THE CURRENT SECTOR IS REREAD. * *.* ADVANCES TO TRACK IN THE CONTROL BYTES AND SETS THE * SECTOR TO 0. IF THE CONTROL BYTES DO NOT CONTAIN A * TRACK LINK, THE CURRENT SECTOR IS REREAD. * *,* ADVANCES TO THE NEXT TRACK IN THE TRT CHAIN. THE SECTOR * NUMBER IS NOT CHANGED. IF CURRENTLY IN THE LAST * TRACK IN THE CHAIN, THE CURRENT SECTOR IS REREAD. * *=* READS THE NEXT SECTOR AFTER EOI. IF THE EOI IS AT THE * END OF AN EOI TRACK, THE CURRENT SECTOR IS REREAD. * *CR* SETS *REPEAT ENTRY.* * * * READS THE CURRENT SECTOR INTO THE BUFFER. * (*) HOLDS DISPLAY. * *8* INCREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR. * *9* DECREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR. * RIGHT BLANK OR TAB CHANGES THE RIGHT SCREEN DISPLAY. * */* ADVANCES THE ADDRESS DISPLAYED ON THE RIGHT SCREEN. * * ALL COMMANDS ARE DISPLAYED ON THE BOTTOM OF THE LEFT SCREEN * AS THEY ARE ENTERED. * * *CR* MUST FOLLOW ALL COMMANDS BEFORE ACTION IS TAKEN. * *BKSP* DELETES THE PREVIOUS CHARACTER TYPED. * LEFT BLANK OR BACKTAB DELETES THE CURRENT LINE BEING ENTERED. * * COMMANDS ARE PROCESSED INTERPRETIVELY. AFTER THE PERIOD (.) * ANY ALPHA-NUMERIC CHARACTERS CAN BE ENTERED, HOWEVER, THE * MESSAGE *FORMAT ERROR.* OR *INCORRECT PARAMETER.* WILL APPEAR * AFTER THE *CR* IS ENTERED IF AN ERROR IS MADE. * * NOTE THAT MOST COMMANDS DO NOT CAUSE A SECTOR TO ACTUALLY * BE READ AND DISPLAYED. AFTER ENTERING COMMANDS THAT CHANGE * THE EQUIPMENT, TRACK, OR SECTOR A SPACE MUST BE ENTERED TO * READ THE SECTOR. THIS ALLOWS DATA FROM ONE SECTOR TO BE * READ AND WRITTEN TO ANOTHER SECTOR. * * AFTER A COMMAND THAT CHANGES THE EQUIPMENT OR TRACK, THE * TRACK AND SECTOR NUMBERS ARE CHECKED. IF EITHER THE TRACK * OR SECTOR IS ILLEGAL ON THE EQUIPMENT/TRACK, IT WILL BE SET * TO ZERO. * DKB SPACE 4,10 ** DKB - DISPLAY KEYBOARD BUFFER. * * ENTRY (KM) = ADDRESS OF KEYBOARD MESSAGE. * (DK) = DISPLAY KEYBOARD CONTROL(721 ONLY). * * EXIT (A) = (DK), ZERO FOR CC545. * * USES DK, T1, YC. * * MACROS CFNC, DFIM. DKB SUBR ENTRY/EXIT CFNC SLPF SELECT LEFT PRIORITY OUTPUT DFIM (CON LN51),*+1 LDC LN49-YINC/2 SET Y-COORDINATE STD YC DFIM (UJN DKB1) * DISPLAY KEYBOARD BUFFER IN MEDIUM CHARACTERS ON CC545. DCN CH+40 CFNC SLMF SELECT LEFT SCREEN, MEDIUM CHARACTERS LDN 4 SET INTENSIFICATION COUNT STD DK DKB1 LDN 2 OUTPUT COORDINATES OAM XC,CH * LDN 0 STD T1 DKB2 LDM KBUF,T1 ZJN DKB3 IF END OF KEYBOARD LINE SHN 6 ADM KBUF+1,T1 OAN CH+40 LDN 2 ADVANCE INDEX RAD T1 SBD KI MJN DKB2 IF NOT END OF KEYBOARD LINE DKB3 CFNC EELF ERASE TO END OF LINE * DISPLAY KEYBOARD MESSAGE(S) IF SET. LDN 2 OUTPUT ERROR MESSAGE LINE COORDINATE OAM DKBA,CH LDD KM ZJN DKB5 IF ERROR MESSAGE NOT SET STD T1 SET MESSAGE ADDRESS DKB4 LDI T1 DISPLAY MESSAGE OAN CH+40 LPN 77 ZJN DKB5 IF END OF MESSAGE AOD T1 UJN DKB4 DISPLAY NEXT BYTE DKB5 LDD SB NJN DKB6 IF SYSTEM BUSY FLAG CLEAR DISPLA ,,(SYSTEM BUSY.) * LOOP FOR PROPER INTENSIFICATION. DFIM (CFNC EELF) DKB6 SOD DK ZJN DKB7 IF INTENSIFICATION COMPLETE LJM DKB1 LOOP DKB7 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY DCN CH+40 LDD DK LJM DKBX RETURN * COORDINATES FOR ERROR MESSAGE LINE. DKBA CON CH01 DFIM (CON LN50) CON LN48+YINC/2 PKI SPACE 4,10 ** PKI - PROCESS KEYBOARD INPUT. * * EXIT TO SPECIAL CHARACTER PROCESSOR. * TO FIRST CHARACTER PROCESSOR. * TO *BSP* IF KEYBOARD BUFFER FULL. * TO *IKE* IF NOT A SPECIAL CHARACTER. * * USES DK, EF, KE, KI, T1. * * CALLS BSP, DKB, IKE, SPECIAL CHARACTER PROCESSORS. PKI8 STM PKIA STORE CHARACTER PKI9 LDN 0 STD DK PKIX RJM DKB DISPLAY KEYBOARD LINE NJN PKI1 IF INPUT NOT COMPLETE LJM * ENTRY/EXIT PKI EQU *-1 *PKI SUBR ENTRY/EXIT LDN 0 STD DK PKI1 CFNC SKIF SELECT KEYBOARD INPUT IAN CH+40 DCN CH+40 STD KE ZJN PKI8 IF NO INPUT DFIM (UJN PKI3) LDC 60B PRESET TO *CR* PKIA EQU *-1 ZJN PKI2 IF NO PREVIOUS CHARACTER SOM PKIB DECREMENT COUNTER NJN PKI9 IF DELAY NOT ELAPSED LDN 20 SET REPEAT DELAY PKI2 LMN 24 SET INITIAL DELAY STM PKIB PKI3 LDD KE STM PKIA SBN 63 PJN PKI9 IF ILLEGAL CHARACTER ADN 63-1R8 MJN PKI7 IF NOT SPECIAL FIRST CHARACTER LDD KI NJN PKI4 IF NOT FIRST CHARACTER LDM PKIC-1R8,KE GET ADDRESS OF PROCESSOR STD T1 UJN PKI5 PROCESS COMMAND PKI4 LDD KE SBN 53 MJN PKI7 IF NOT SPECIAL CHARACTER LDM PKID-53,KE GET ADDRESS OF PROCESSOR STD T1 PKI5 LJM 0,T1 PROCESS COMMAND PKI6 LDN 1R REPLACE CODE FOR SPACE STD KE PKI7 LDN 0 CLEAR EXECUTE FLAG STD EF LDD KE STM KBUF,KI AOD DK AOD KI LMK KBUFL-1 NJN IKE IF BUFFER NOT FULL LJM BSP DELETE LAST CHARACTER ENTERED PKIB CON 1 DELAY COUNT PKIC SPACE 4,10 * TABLE OF SPECIAL FIRST CHARACTERS. PKIC BSS 0 LOC 1R8 CON ITN 8 - INCREMENT TRACK NUMBER CON DTN 9 - DECREMET TRACK NUMBER CON AOS + - ADVANCE ONE SECTOR CON BOS - - BACKUP ONE SECTOR CON DDC * - DROP DISPLAY CHANNEL CON IRD / - INCREMENT RIGHT DISPLAY CON PKIX ( CON PKIX ) CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD CON APE = - ADVANCE PAST EOI CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY CON AOT , - ADVANCE ONE TRACK CON ATZ . - ADVANCE ONE TRACK AND ZERO SECTOR NO. CON SRE CR - SET REPEAT ENTRY CON PKIX BKSP CON RCS SPACE - READ CURRENT SECTOR LOC *O PKID SPACE 4,10 * TABLE OF SPECIAL CHARACTERS. PKID BSS 0 LOC 53 CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD CON PKI7 = CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY CON PKI7 , CON PKI7 . CON PEC CR - PROCESS ENTERED COMMAND CON BSP BKSP - DELETE LAST CHARACTER CON PKI6 SPACE LOC *O IKE SPACE 4,15 ** IKE - INTERPRET KEYBOARD ENTRY. * * ENTRY (EF) = 0 IF INTERPRET ONLY. * (EF) " 0 IF EXECUTE REQUESTED. * (KI) = END OF BUFFER POINTER. * (TA) = CM FWA OF COMMAND TABLE. * * EXIT TO PKIX IF EXECUTE NOT REQUESTED. * TO EMC IF FIRST CHARACTER 0 - 7. * TO COMMAND PROCESSOR IF EXECUTE AND COMMAND COMPLETE. * (CA) = ADDRESS OF NEXT CHARACTER IN BUFFER. * * USES T1 - T3, CA, CM, KM. * * CALLS EMC, COMMAND PROCESSORS. IKE LDN 0 STD T1 SET TRIAL CHARACTER STD CM SET SYNTAX TABLE INDEX LDM KBUF CHECK FIRST CHARACTER SBN 1R0 MJN IKE1 IF ALPHABETIC SBN 8D PJN IKE1 IF ABOVE 7 LJM EMC PROCESS MEMORY CHANGE COMMAND IKE1 LDN 2 SET SYNTAX ENTRY LENGTH STD T2 LDD RA READ ENTRY ADD TA SHN 6 ADD CM CRM IKEA,T2 LDN 2 ADVANCE INDEX FOR NEXT PASS RAD CM LDC IKEA SET ENTRY POINTER STD T2 LDI T2 NJN IKE2 IF NOT END OF TABLE LJM IKE9 PROCESS END OF SCAN IKE2 LDC KBUF SET CHARACTER ADDRESS STD CA IKE3 LDI T2 COMPARE UPPER SHN -6 ZJN IKE7 IF COMPARE COMPLETE STD T3 LMI CA NJN IKE4 IF NO MATCH AOD CA LDI T2 COMPARE LOWER LPN 77 ZJN IKE7 IF COMPARE COMPLETE STD T3 LMI CA NJN IKE4 IF NO MATCH AOD T2 AOD CA UJN IKE3 LOOP * PROCESS NO MATCH FOUND. IKE4 LDI CA NJN IKE5 IF DIFFERENT CHARACTER LDD T1 NJN IKE6 IF NOT UNIQUE ENTRY LDD T3 SET NEXT CHARACTER STD T1 IKE5 LJM IKE1 LOOP IKE6 LMD T3 ZJN IKE5 IF SAME CHARACTER UJN IKE10 CHECK EXECUTE FLAG * PROCESS UNIQUE CHARACTER. IKE7 LDD EF NJN IKE8 IF EXECUTE FLAG SET LJM PKIX RETURN IF INTERPRET ONLY * PROCESS COMMAND. IKE8 LDM IKEA+10 SET WORD COUNT SHN -6 STD T1 LDM IKEA+10 GET CM ADDRESS LPN 37 SHN 6 ADD RA SHN 6 ADM IKEA+11 CRM CPLA,T1 READ COMMAND PROCESSOR LJM CPLA EXECUTE COMMAND * PROCESS END OF FORMAT SCAN. IKE9 LDD T1 NJN IKE12 IF UNIQUE CHARACTER STM KBUF-1,KI BACKSPACE POINTER SOD KI IKE10 LDD EF ZJN IKE11 IF EXECUTE FLAG NOT SET LDC SREA *REPEAT ENTRY.* STD KM IKE11 LJM PKIX RETURN IKE12 SBN 1R= PJN IKE10 IF SPECIAL CHARACTER LDD T1 FILL NEXT CHARACTER STM KBUF,KI AOD KI LJM IKE LOOP IKEA BSS 12 COMMAND SYNTAX BUFFER SPACE 4,10 ** EXIT ROUTINES FOR COMMAND PROCESSORS. ERR SPACE 4,10 ** ERR - SET ERROR MESSAGE. ERR1 LDC =C*FORMAT ERROR.* UJN ERR SET MESSAGE ERR2 LDC =Z*INCORRECT PARAMETER.* UJN ERR SET MESSAGE ERR3 LDC =Z*NOT FOUND.* UJN ERR SET MESSAGE ERR4 LDC =Z*INCORRECT ENTRY.* UJN ERR SET MESSAGE ERR5 LDC =Z*INCORRECT EQUIPMENT.* ERR STD KM UJN RET RETURN IMS SPACE 4,10 ** IMS - INITIALIZE MASS STORAGE DRIVERS AND RANDOM ACCESS. IMS RJM CTS CHECK TRACK AND SECTOR NUMBERS * UJN RET RETURN RET SPACE 4,10 ** RET - NORMAL RETURN. RET LDN 0 CLEAR INDEX RET1 STD T1 SET CLEARING INDEX LDD KM NJN RET3 IF MESSAGE SET LDD T1 SET KEYBOARD INDEX STD KI RET2 LDN 0 CLEAR BUFFER STM KBUF,T1 AOD T1 LMC KBUFL NJN RET2 IF NOT END OF BUFFER RET3 LDC RCPX RESTORE LOOP STM RCPA STD SB CLEAR *SYSTEM BUSY* INDICATION LJM PKIX RETURN SBN SPACE 4,10 ** SBN - SET BYTE NUMBER MESSAGE. * * (FN) = BYTE NUMBER. SBN LDD FN CONVERT NUMBER SHN -6 RJM C2D CONVERT TOP TWO DIGITS STM SBNB LDD FN RJM C2D CONVERT TWO DIGITS STM SBNB+1 * CHECK RIGHT SCREEN PAGE. LDD RS SBK DFBN DFIM (ZJN SBN1) ZJN SBN3 IF FIVE BYTE DISPLAY SBN DLCN-DFBN DFIM (MJN SBN3) MJN SBN4 IF TEN BYTE OR TEXT DISPLAY ZJN SBN4 IF COMMAND DISPLAY * SET PAGE NUMBER FOR FOUR PAGE DISPLAY. SBN1 LDN 0 STM DRSA+4 LDC -2-500/4 SBN2 RAD FN MJN SBN4 IF ON CURRENT PAGE AOM DRSA+4 LDC -500/4 UJN SBN2 LOOP TO CHECK NEXT PAGE * SET PAGE NUMBER FOR TWO PAGE DISPLAY. SBN3 LDD FN ADC -242 SHN 0-21 LMN 1 STM DRSA+4 SBN4 LDC SBNA LJM SKM DISPLAY MESSAGE SBNA DATA H* BYTE * SBNB DATA Z*NNNN.* SCP SPACE 4,10 ** SCP - START UP CPU PROGRAM. * * ENTRY (A) = FUNCTION NUMBER * 2 + 1. * (CM - CM+4) = CONTENTS OF CPU STATUS WORD. SCP STD CM+4 LDD RA SHN 6 ADN D CWD CM LJM RET RETURN SKM SPACE 4,10 ** SKM - SET KEYBOARD MESSAGE. * * ENTRY (A) = ADDRESS OF MESSAGE. SKM EQU ERR SPACE 4,10 ** SPECIAL CHARACTER PROCESSORS. AOS SPACE 4,10 ** AOS - ADVANCE ONE SECTOR. AOS LDD SC CHECK SECTOR COUNT SBD LS ZJN AOS1 IF END OF TRACK LDM BFMS ADM BFMS+1 ZJN AOS1 IF END OF INFORMATION AOD SC AOS1 LJM RCS READ SECTOR AOT SPACE 4,10 ** AOT - ADVANCE ONE TRACK. AOT RJM SNT GET NEXT TRACK SHN 6 PJN AOT1 IF END OF CHAIN SHN -6 STD TK AOT1 UJN ATZ2 CHECK TRACK NUMBER APE SPACE 4,10 ** APE - ADVANCE PAST EOI. APE LDD SC SBD LS ZJN APE1 IF END OF TRACK AOD SC ADVANCE TO NEXT SECTOR UJN APE2 READ SECTOR APE1 RJM SNT GET NEXT TRACK SHN 6 PJN APE2 IF EOI TRACK SHN -6 STD TK LDN 0 STD SC APE2 LJM RCS READ SECTOR ATZ SPACE 4,10 ** ATZ - ADVANCE ONE TRACK AND ZERO SECTOR. ATZ LDM BFMS NJN ATZ1 IF NOT EOF LDM BFMS+1 ATZ1 SHN 6 PJN ATZ2 IF NOT CHAIN BYTE SHN -6 STD TK SET NEXT TRACK LDN 0 STD SC ATZ2 RJM CTS CHECK SECTOR LIMIT LJM RCS READ SECTOR BOS SPACE 4,10 ** BOS - BACKUP ONE SECTOR. BOS LDD SC ZJN BOS1 IF BEGINNING OF TRACK SOD SC BOS1 LJM RCS READ SECTOR BSP SPACE 4,10 ** BSP - BACKSPACE KEYBOARD BUFFER. BSP SOD KI DECREMENT POINTER LDD KM LMC SREA ZJN BSP1 IF *REPEAT ENTRY.* LDN 0 STD KM CLEAR MESSAGE BSP1 STM KBUF,KI CLEAR LAST CHARACTER LJM RET3 RESTORE LOOP CMB SPACE 4,10 ** CMB - CLEAR MESSAGE AND BUFFER. CMB LDN 0 CLEAR KEYBOARD MESSAGE STD KM STM RDCT CLEAR DRIVER ERROR CODE STD CM CLEAR CONTROL POINT MESSAGES LDD CP ADN MS1W CWD CM ADN MS2W-MS1W CWD CM LJM RET CLEAR KEYBOARD BUFFER DDC SPACE 4,10 ** DDC - DROP DISPLAY CHANNEL. DDC RJM HDC HOLD DISPLAY CHANNEL RJM CSB CLEAR SCREEN BUFFER UJN IRD1 RETURN TO *PKIX* DTN SPACE 4,10 ** DTN - DECREMENT TRACK NUMBER. DTN SOD TK DTN1 LPC 3777 ADC 4000 STD TK LJM ATZ2 CHECK TRACK NUMBER IRD SPACE 4,10 ** IRD - INCREMENT RIGHT DISPLAY. IRD AOM DRSA+4 INCREMENT DISPLAY INDEX LPC 777 STM DRSA+4 IRD1 LJM PKIX RETURN ITN SPACE 4,10 ** ITN - INCREMENT TRACK NUMBER. ITN AOD TK UJN DTN1 CHECK TRACK NUMBER PEC SPACE 4,10 ** PEC - PROCESS ENTERED COMMAND. PEC LDN 1 SET EXECUTE FLAG STD EF LJM IKE CHECK COMMAND RCS SPACE 4,10 ** RCS - READ CURRENT SECTOR. RCS RJM RSB READ SECTOR LJM RET3 RESTORE MAIN LOOP RRD SPACE 4,10 ** RRD - ROTATE RIGHT DISPLAY. RRD AOD RS INCREMENT RIGHT DISPLAY POINTER SBN MXDI NJN RRD1 IF LEGAL DISPLAY STD RS RRD1 UJN IRD1 RETURN TO *PKIX* SRE SPACE 4,10 ** SRE - SET REPEAT ENTRY. SRE LDC SREA STD KM UJN RRD1 RETURN TO *PKIX* SREA DATA Z*REPEAT ENTRY.* TITLE MEMORY CHANGES. EMC SPACE 4,10 *** MEMORY CHANGES. * XXX,YYYY. ENTER YYYY INTO BYTE XXX. * XXX,DCC ENTER CHARACTERS CC IN BYTE XXX. * * IF THE COMMA *,* IS REPLACED BY A PLUS *+*, THE BYTE NUMBER * WILL BE INCREMENTED AFTER THE ENTRY IS PROCESSED. THE ACTUAL * DATA ON THE DISK IS NOT CHANGED UNTIL THE WRITE COMMAND IS * ENTERED. EMC SPACE 4,10 ** EMC - ENTER MEMORY CHANGE. * * ENTRY (EF) = 0 IF INTERPRET ONLY. * (EF) " 0 IF EXECUTE REQUESTED. * * USES T1, AB+4, CM, CA, KM, RC. * * CALLS BSP, CDR, RET. EMC LDC KBUF STD CA RJM CDR CONVERT BYTE NUMBER ZJN EMC2 IF NO MORE CHARACTERS LMN 1R+ ZJN EMC1 IF *+* LMN 1R,&1R+ NJN EMC3 IF ILLEGAL CHARACTER EMC1 LDD AB+4 STD RC ADC -502 PJN EMC3 IF BYTE NUMBER TOO LARGE LDD CA STD CM AOD CA LDI CA LMN 1RD ZJN EMC6 IF CHARACTER ENTRY * ENTER OCTAL VALUE. RJM CDR CONVERT VALUE EMC2 ZJN EMC4 IF NO MORE CHARACTERS LMN 1R. ZJN EMC7 IF *.* EMC3 LJM BSP DELETE ILLEGAL CHARACTER * INCOMPLETE ENTRY. EMC4 LDD EF ZJN EMC5 IF EXECUTE NOT REQUESTED LDC SREA SET *REPEAT ENTRY.* STD KM EMC5 LJM PKIX RETURN * ENTER DISPLAY CODE. EMC6 LDM 3,CA NJN EMC3 IF TOO MANY CHARACTERS LDM 1,CA SHN 6 ADM 2,CA STD AB+4 VALUE * ENTRY COMPLETE. EMC7 LDD EF ZJN EMC5 IF EXECUTE NOT REQUESTED LDD AB+4 STM BFMS,RC STORE VALUE LDI CM LMN 1R+ ZJN EMC8 IF *+* TYPE ENTRY LJM RET RETURN * *+* ENTRY, ADVANCE ADDRESS. EMC8 LDD CM SBN 1 STD T1 EMC9 AOI T1 ADVANCE ADDRESS SBN 1R8 MJN EMC11 IF NO OVERFLOW LDN 1R0 RESET DIGIT STI T1 SOD T1 ADC -KBUF PJN EMC9 IF MORE DIGITS LDN KBUFL-1 STD T1 EMC10 LDM KBUF,T1 SHIFT BUFFER ONE CHARACTER RIGHT STM KBUF+1,T1 SOD T1 PJN EMC10 IF MORE CHARACTERS LDN 1R1 STM KBUF ADD LEADING 1 AOD CM INCREMENT CHARACTER COUNT EMC11 LDM 1,CM LMN 1RD NJN EMC12 IF NOT CHARACTER ENTRY AOD CM EMC12 LDD CM ADC -KBUF+1 LJM RET1 CLEAR LAST PART OF ENTRY TITLE SUBROUTINES. ASD SPACE 4,10 ** ASD - ASSEMBLE DIGITS. * * ENTRY (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (AB - AB+4) = ASSEMBLY. * TO ERR IF NOT TERMINATED BY A *.*. * * CALLS CDR, ERR1. ASD SUBR ENTRY/EXIT RJM CDR CONVERT DIGITS LMN 1R. ZJN ASDX IF PERIOD LJM ERR1 *FORMAT ERROR.* ASN SPACE 4,10 ** ASN - ASSEMBLE NAME. * * ENTRY (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (FN - FN+4) = NAME (LEFT JUSTIFIED). * TO ERR IF ILLEGAL CHARACTER OR MORE THAN 7 CHARACTERS. * * USES T1, T2. * * CALLS ERR2. ASN3 LDD T2 ADD CHARACTER TO NAME STM FN,T1 ASN SUBR ENTRY/EXIT LDN ZERL CRD FN LDN 0 STD T1 ASN1 LDI CA ASSEMBLE CHARACTERS ZJN ASN2 IF END OF CHARACTER STRING SBN 1R. ZJN ASNX IF TERMINATOR LDI CA SAVE CHARACTER SHN 6 STD T2 AOD CA LDI CA ZJN ASN2 IF END OF CHARACTER STRING SBN 1R. ZJN ASN3 IF TERMINATOR LDI CA ADD CHARACTERS TO NAME LMD T2 STM FN,T1 AOD CA AOD T1 SBN 4 MJN ASN1 IF LESS THAN 7 CHARACTERS ASN2 LJM ERR2 *INCORRECT PARAMETER.* CDR SPACE 4,10 ** CDR - CONVERT DIGITS RIGHT ADJUSTED. * * ENTRY (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (A) = SEPARATOR CHARACTER. * (AB - AB+4) = ASSEMBLY. * (CA) = ADDRESS OF SEPAROTOR CHARACTER. * * USES T2, T3, CA. CDR SUBR ENTRY/EXIT LDN ZERL CLEAR ASSEMBLY AREA CRD AB CDR1 LDI CA LOAD CHARACTER SBN 1R0 MJN CDR2 IF ALPHA SBN 1R8-1R0 MJN CDR3 IF OCTAL DIGIT SBN 1R -1R8 ZJN CDR5 IF SPACE CDR2 LDI CA LOAD CHARACTER UJN CDRX RETURN CDR3 ADN 1R8-1R0 STORE DIGIT STD T3 LDN AB+4 SET BYTE ADDRESS STD T2 CDR4 LDI T2 LOAD BYTE SHN 3 ADD T3 ADD NEW DIGIT STI T2 STORE SHN -14 SAVE OVERFLOW STD T3 SOD T2 ADVANCE BYTE ADDRESS LMN AB-1 NJN CDR4 IF NOT END OF ASSEMBLY AREA CDR5 AOD CA ADVANCE ADDRESS UJN CDR1 LOOP CEQ SPACE 4,10 ** CEQ - CHECK EQUIPMENT. * * ENTRY (EQ) = EQUIPMENT. * * EXIT TO *ERR5* IF INCORRECT EQUIPMENT. * * USES CM - CM+4. * * MACROS SFA. CEQ SUBR ENTRY/EXIT SFA EST,EQ READ EST ENTRY ADK EQDE CRD CM LDD CM+4 MST ADDRESS/10 SHN 3 ADN DDLL CRD CM LDD CM SHN 21-12 PJN CEQX IF NOT NULL EQUIPMENT LJM ERR5 *INCORRECT EQUIPMENT.* CLB SPACE 4,10 ** CLB - CHECK LOCK BIT. * * EXIT TO ERR IF KEYBOARD LOCKED. * (CM - CM+4) = *SSTL* WORD READ FROM CMR. * * USES CM - CM+4. * * CALLS ERR. CLB SUBR ENTRY/EXIT LDK SSTL CHECK *SECURITY-UNLOCK* BIT CRD CM LDD CM SHN 21-11 MJN CLBX IF UNLOCKED LJM ERR4 *INCORRECT ENTRY.* CSA SPACE 4,10 ** CSA - COMPUTE SCRATCH AREA ADDRESS. * * ENTRY (CA) = POINTER TO NEXT CHARACTER. * * EXIT (CA) UPDATED. * (T2) = ADDRESS OF SCRATCH AREA. * * CALLS ERR1, ERR2. CSA SUBR ENTRY/EXIT LDI CA SBN NSRA+1 PJN CSA1 IF ILLEGAL CHARACTER LDI CA CALCULATE ADDRESS SBN 1 SHN 3 ADI CA ADC SRA-1 STD T2 AOD CA CHECK NEXT CHARACTER LDI CA LMN 1R. ZJN CSAX IF LEGAL SEPARATOR LJM ERR1 *FORMAT ERROR.* CSA1 LJM ERR2 *INCORRECT PARAMETER.* CSB SPACE 4,10 ** CSB - CLEAR SCREEN BUFFER. * * CLEAR SCREEN BUFFER, RESET TOP OF PAGE, AND SET *PKI*-S * RETURN ADDRESS TO *DDF1* WHEN THE CONSOLE TYPE IS A *CDC721*. * * USES T1. * * MACROS CFNC, DFIM. CSB1 LDN CSBAL-1 STD T1 CSB2 LDM CSBA,T1 ISSUE FUNCTION CFNC SOD T1 PJN CSB2 IF MORE FUNCTIONS LDC DDF1 SET *PKI* EXIT STM PKI CSB SUBR ENTRY/EXIT DFIM (UJN CSB1) UJN CSBX RETURN CSBA BSS 0 TABLE OF FUNCTION CODES IN REVERSE ORDER CON CHSF CLEAR HIDDEN SCREEN CON RTPF RESET TOP OF PAGE CON SRSF SELECT RIGHT SCREEN, SMALL CHARACTERS CON RTPF RESET TOP OF PAGE CON SLSF SELECT LEFT SCREEN, SMALL CHARACTERS CSBAL EQU *-CSBA CTR SPACE 4,10 ** CTR - CHECK TRACK RESERVATION BIT. * * EXIT (A) .LT. 0 IF RESERVATION BIT SET. * * CALLS SNT. CTR SUBR ENTRY/EXIT RJM SNT SET NEXT TRACK LDD T1 ADC SHNI+22-4 STM CTRA LDD CM+4 CTRA SHN ** UJN CTRX RETURN CTS SPACE 4,10 ** CTS - CHECK TRACK AND SECTOR AND ZERO IF TOO LARGE. * * ENTRY (EQ) = EST ORDINAL. * * EXIT (A) .NE. 0, IF DEVICE IS INACCESSIBLE. (OFF OR DOWN) * (LS) = LAST SECTOR FOR CURRENT TRACK AND EQUIPMENT. * (LT) = MAXIMUM TRACK NUMBER FOR DEVICE. * (SC) = 0 IF IT WAS LARGER THAN THE SECTOR LIMIT. * (TK) = 4000 IF IT WAS LARGER THAN (LT). * * USES AB - AB+4, CM - CM+4. CTS SUBR ENTRY/EXIT CTSA SETMS IO,(AR,NS,AD,RW,DF) * SETMS IO,(RR,NR,NS,AD,RW,DF) (ERROR PROCESSING ENABLED) LDD CM+4 SET FIRST WORD OF TRT SHN 3 ADK TDGL CRD CM ADK TRLL-TDGL CRD AB LDD AB+3 LPN 77 SHN 14 LMD AB+4 SBD TH =4000/4 STM DLSA+1 STM SNTA+1 SHN -14 LMC ADCI STM DLSA STM SNTA LDD CM GET MAXIMUM TRACK ADC 4000-1 STD LT SBD TK PJN CTS1 IF LEGAL TRACK LDC 4000 STD TK CTS1 LDM SLM CHECK SECTOR SBN 1 STD LS SBD SC PJN CTS2 IF LEGAL SECTOR LDN 0 STD SC CTS2 UJP CTSX RETURN DMW SPACE 4,20 ** DMW - DISPLAY MEMORY WORDS. * * ENTRY (AB) = WORD NUMBER OF FIRST LINE TO DISPLAY. * (AB+1) = WORD NUMBER+1 OF LAST LINE. * (AB+2) = INDEX FOR FIRST BYTE TO DISPLAY. * (AB+3) = N TO DISPLAY KEYWORD TABLE. * (N = FWA OF TABLE, 10 CHARACTERS PER ENTRY.) * = 0 TO SUPPRESS KEYWORD DISPLAY. * (YC) = Y-COORDINATE ABOVE FIRST LINE TO BE DISPLAYED. * * EXIT (AB) = (AB+1). * (T3) = ADDRESS OF LAST BYTE DISPLAYED + 1. * (YC) = Y-COORDINATE OF LAST LINE DISPLAYED. * * USES T3, AB, AB+2, YC, RC. * * CALLS D2D, D4D, ODC. DMW SUBR ENTRY/EXIT LDD AB SBD AB+1 PJN DMWX IF NOTHING TO DISPLAY LDD AB+3 SET TABLE ADDRESS STM DMWA LDD AB+2 SET BYTE ADDRESS ADC BFMS STD T3 * DISPLAY LABEL FOR WORD. DMW1 LCN YINC RAD YC OAN CH+40 OUTPUT COORDINATES LDD XC OAN CH+40 LDD AB DISPLAY CM WORD NUMBER RJM D2D LDC 2R ( OAN CH+40 LDD AB+2 DISPLAY BYTE NUMBER RJM D4D LDC 2R) OAN CH+40 LDD AB+3 ZJN DMW2 IF NOT TABLE DISPLAY LDN 5 DISPLAY TABLE DATA OAM **,CH DMWA EQU *-1 LDN 5 ADVANCE TABLE POINTER RAM DMWA * DISPLAY CONTENTS OF WORD. DMW2 LDN 0 DISPLAY 5 BYTES STD RC OAN CH+40 DMW3 LDN 0 OAN CH+40 LDI T3 DISPLAY CONTENTS OF BYTE RJM D4D AOD T3 AOD RC LMN 5 NJN DMW3 IF MORE BYTES * LDN 0 DISPLAY 5 BYTES IN DISPLAY CODE OAN CH+40 LCN 5 RAD T3 LDN 5 RJM ODC OUTPUT DISPLAY CODE DMW4 LDN 5 INCREMENT BYTE ADDRESS RAD AB+2 AOD AB INCREMENT CM WORD NUMBER LMD AB+1 ZJN DMW5 IF END OF DISPLAY LJM DMW1 LOOP DMW5 LJM DMWX RETURN D2D SPACE 4,10 ** D2D - DISPLAY 2 DIGITS. * * ENTRY (A) = DIGITS RIGHT ADJUSTED. D2D SUBR ENTRY/EXIT LPN 77 UNPACK DIGITS STD T0 SHN 3 LMD T0 SCN 70 ADC 2R00 CONVERT TO DISPLAY CODE OAN CH+40 UJN D2DX RETURN D4D SPACE 4,10 ** D4D - DISPLAY 4 DIGITS. * * ENTRY (A) = DIGITS RIGHT ADJUSTED. * * USES T1. * * CALLS D2D. D4D SUBR ENTRY/EXIT STD T1 SHN -6 DISPLAY FIRST 2 DIGITS RJM D2D LDD T1 DISPLAY SECOND 2 DIGITS RJM D2D UJN D4DX RETURN END SPACE 4,10 ** END - END CPU PROGRAM. * * USES CM - CM+4. * * CALLS WCC. END SUBR ENTRY/EXIT ENDA RJM WCC WAIT FOR CPU TO COMPLETE * UJN ENDX (*DDFILE* NOT LOADED) LDN 0*2+1 STD CM+4 LDD RA SHN 6 ADN D CWD CM UJN ENDX RETURN LDO SPACE 4,20 ** LDO - LOAD OVERLAY. * * ENTRY (A) = OVERLAY CONTROL WORD INDEX. * (RELATIVE TO *TCRO*) * (DRSB) = PREVIOUS (RS). * (DRSA - DRSA+4) = CURRENT OVERLAY CONTROL WORD. * * EXIT (DRSA - DRSA+4) UPDATED AS REQUIRED. * (DRSB) UPDATED IF DISPLAY IS BEING CHANGED. * (CM) = LOAD ADDRESS. * OVERLAY LOADED AND PRESET. * OLD OVERLAY CONTROL WORD WRITTEN TO CM, IF VALID, * TO PRESERVE DISPLAY INDEX. * * USES AB, CM - CM+4. * * CALLS MCI. LDO SUBR ENTRY/EXIT STD AB SAVE INDEX LDD RA LOAD CONTROL WORD FOR DESIRED OVERLAY ADD TA SHN 6 ADC TCRO ADD AB CRD CM LDD CM+1 CHECK WORD COUNT ZJN LDO1 IF NO LOAD REQUIRED LDD CM SET LOAD ADDRESS STM LDOA LDD CM+2 LOAD PROCESSOR OVERLAY SHN 6 ADD RA SHN 6 ADD CM+3 CRM **,CM+1 LDOA EQU *-1 LOAD ADDRESS LDO1 LDD AB LMD RS NJP LDOX IF NOT A MAIN DISPLAY OVERLAY LDM DRSB SBN MXDI PJN LDO2 IF OLD CONTROL WORD INVALID LDD RA STORE OLD CONTROL WORD ADD TA SHN 6 ADC TCRO ADM DRSB CWM DRSA,ON LDO2 LDD RA READ NEW PROCESSOR CONTROL WORD ADD TA SHN 6 ADC TCRO ADD RS CRM DRSA,ON (SETS PROCESSOR ENTRY ADDRESS FOR *LJM*) LDD RS UPDATE OLD ID STM DRSB LJM LDOX RETURN ODC SPACE 4,10 ** ODC - OUTPUT DISPLAY CODE. * * ENTRY (A) = NUMBER OF BYTES TO DISPLAY. * (T3) = ADDRESS OF FIRST BYTE. * (XC) = 6000. * * EXIT (T3) = ADDRESS OF NEXT BYTE. * * USES T0, T3. ODC2 LDI T3 DISPLAY BOTH CHARACTERS ODC3 OAN CH+40 AOD T3 SOD T0 NJN ODC1 IF MORE BYTES TO DISPLAY ODC SUBR ENTRY/EXIT STD T0 ODC1 LDI T3 SBD XC MJN ODC2 IF UPPER CHARACTER LEGAL LPN 77 UJN ODC3 DISPLAY LOWER CHARACTER ONLY RCP SPACE 4,10 ** RCP - RECALL COMMAND PROCESSOR IF NECESSARY. * * ENTRY (RCPA) = ADDRESS IN COMMAND PROCESSOR IF RECALLING. * = RCPX IF NO RECALL NEEDED. * * EXIT (RCPA) UPDATED. RCP SUBR ENTRY/EXIT RCP1 LJM RCPX RETURN IF NO RECALL * LJM COMMAND (RECALL COMMAND PROCESSOR) RCPA EQU *-1 SOM RCPB PJN RCP1 IF RECALL COUNT NOT EXAUSTED DFIM (LDN MLPS-1) LDN 0 RESET RECALL COUNT STM RCPB UJN RCPX RETURN TO MAIN LOOP RCPB CON 0 RECALL COUNT RSB SPACE 4,10 ** RSB - READ SECTOR TO BUFFER. * * EXIT (A) .LT. 0 IF ERROR ON READ. * (A) = 0 IF NO ERROR. * * CALLS CEQ, RDS. * * MACROS ENDMS. RSB SUBR ENTRY/EXIT RJM CEQ CHECK EQUIPMENT LDC BFMS RJM RDS READ SECTOR MJN RSBX IF ERROR ENDMS * LDN 0 STM RDCT UJN RSBX RETURN SNS SPACE 4,10 ** SNS - SET NEXT SECTOR. * * EXIT (A) = 0 IF CURRENTLY AT EOI. SNS1 LDM BFMS NJN SNS2 IF NOT EOF LDM BFMS+1 SNS2 STD TK SNS SUBR ENTRY/EXIT LDM BFMS ADM BFMS+1 ZJN SNSX IF EOI AOD SC SBD LS SBN 1 NJN SNSX IF NOT END OF TRACK STD SC SET SECTOR TO ZERO LDM BFMS SHN 6 ADM BFMS+1 LMC 377777 NJN SNS1 IF NOT SYSTEM SECTOR LDM NSSS UJN SNS2 ENTER TRACK FROM SYSTEM SECTOR SPP SPACE 4,10 ** SPP - SET PAGE PARAMETERS. * * ENTRY (DRSA+4) = PAGE INDEX. * (T3) = BFMS. * * EXIT (A) = NUMBER OF WORDS TO DISPLAY (PAGE SIZE). * (AB) = FIRST CM WORD NUMBER (PAGE INDEX * PAGE SIZE). * * USES AB. SPP SUBR ENTRY/EXIT LDM DRSA+4 DFIM (LPN 3) LPN 1 PAGE INDEX DFIM (SHN 4) * 20B, 721 PAGE SIZE SHN 5 * 40B, 545 PAGE SIZE STD AB = FIRST CM WORD NUMBER LDI T3 SET UP NUMBER OF WORDS TO DISPLAY ZJN SPPX IF EOI SECTOR DFIM (LDN 20) 721 PAGE SIZE IN CM WORDS LDN 40 545 PAGE SIZE IN CM WORDS UJN SPPX RETURN WCC SPACE 4,10 ** WCC - WAIT FOR CPU TO COMPLETE. * * EXIT (CM - CM+4) = CONTENTS OF CPU STATUS WORD. * * CALLS RCPA. WCC SUBR ENTRY/EXIT WCC1 RJM RCPA RETURN TO MAIN LOOP LDD RA READ STATUS WORD SHN 6 ADN D CRD CM LDD CM+4 ZJN WCCX IF COMPLETE UJN WCC1 LOOP SPACE 4,10 * COMMON DECKS. QUAL COMDDSP AVOID *RDS* DEFINITION CONFLICT *CALL COMDDSP QUAL * RDC EQU /COMDDSP/RDS REQUEST DISPLAY CHANNEL DDS EQU /COMDDSP/DDS HDC EQU /COMDDSP/HDC PSS EQU /COMDDSP/PSS *CALL COMDSYS *CALL COMPC2D QUAL COMPSNT IRA$ EQU * QUAL * *CALL COMPSNT TITLE BUFFERS. SRA SPACE 4,10 ** SRA - SCRATCH REGISTER AREA. * * 9 BYTES PER ENTRY. * 0 = EST ORDINAL. * 1 = TRACK. * 2 = SECTOR. * 3 = 3/DISPLAY NUMBER,9/DISPLAY INDEX * 4 - 8 = 10 CHARACTER COMMENT SRA BSSZ 9D*NSRA KBUF SPACE 4,10 KBUF BSSZ KBUFL KEYBOARD BUFFER SPACE 4,10 DIS HERE SPACE 4,10 USE PRESET BFMS BSSN 502 SECTOR BUFFER CPLA BSSN 0 COMMAND PROCESSOR LOAD ADDRESS END BSSN SPACE 4,10 * COMMON DECKS THAT DEFINE TAGS BASED ON *BFMS*. QUAL LSD *CALL COMSLSD QUAL * *CALL COMSPFM *CALL COMSSSE *CALL COMSWEI TITLE PRESET PROGRAM. PRR SPACE 4,10 ** PRR - PRESET RESIDENT ROUTINES. PRR3 LDN 10 CLEAR LAST PART OF BUFFER STD T1 PRR4 LDN 0 STM BFMS+500,T1 SOD T1 PJN PRR4 IF MORE TO CLEAR LJM RCS READ SECTOR ERRNG BFMS+500-* CLEARING CODE OVERFLOWS END OF BUFFER PRR BSS 0 ENTRY LDN 0 PRESET DIRECT CELLS STD CR STD KI STD KM STD DK STM RSPLA STD RT LDK DFBN PRESET FIVE BYTE RIGHT SCREEN DISPLAY STD RS LDD CP ADK PFCW CRD CM ADK PKNW-PFCW CRD PF LDD CM+3 STD PF+4 LDC CH01 PRESET X-COORDINATE STD XC STD SB CLEAR SYSTEM BUSY FLAG LDK DSEQ CHECK DISPLAY CONSOLE TYPE SFA EST ADK EQAE CRD CM LDD CM+2 ZJN PRR1 IF CC545 CONSOLE MDIN MODIFY DISPLAY GENERATOR PRR1 LDN 0 CLEAR *.* IN COMMON DECKS STM D6SA STM D2SB CLEAR *OAN* INSTRUCTION LDD RA PRESET CPU PROGRAM ADDRESS CONSTANTS SHN 6 ADN D-2 CRD CM LDD CM+3 STD BA LDD CM+4 STD BA+1 LDM DDF NJN PRR2 IF *DDFILE* LOADED ISTORE ENDA,(UJN ENDX) PRR2 RJM RDC REQUEST DISPLAY RJM CSB CLEAR SCREEN BUFFER LDN ZERL CLEAR CONTROL POINT MESSAGES CRD CM LDD CP ADN MS1W CWD CM ADK MS2W-MS1W CWD CM LDN 0 INITIALIZE DISK ADDRESS DATA STD SC LDC PFNL GET DEFAULT FAMILY ORDINAL CRD CM LDD CM+3 STD EQ SFA EST GET LABEL TRACK NUMBER ADK EQDE CRD CM LDD CM+4 SHN 3 ADN ALGL CRD CM LDD CM+1 STD TK RJM CTS CHECK TRACK VALUE LDC DDF1 PRESET *PKI* EXIT STM PKI LJM PRR3 CLEAR BUFFER AND ENTER MAIN LOOP SPACE 4,10 ** DUMP INSTRUCTION MODIFICATION BLOCK. DIMB SPACE 4,10 OVERFLOW RESLA OVERLAY /PRESET/OVL,(COMMAND PROCESSORS.) OVL SPACE 4,10 ** OVL - INITIALIZE OVERLAY. * * LOAD NON-COMMAND OVERLAYS TO CM. OVL SUBR ENTRY/EXIT * INITIALIZE *COMPGFP* IN OVERLAY BEFORE SAVING IN CM. RJM IFP INITIALIZE FNT PROCESSORS * SAVE *TAR* OVERLAY IN CM. LDN /PRESET/TARL SET OVERLAY LENGTH STD T1 LDD AB+3 SAVE CM ADDRESS STM /PRESET/TCRO+TARN*5+2 LDD AB+4 STM /PRESET/TCRO+TARN*5+3 LDD AB+3 WRITE OVERLAY TO CM SHN 6 ADD RA SHN 6 ADD AB+4 CWM /PRESET/TAR,T1 LDD T1 UPDATE CM ADDRESS RAD AB+4 SHN -14 RAD AB+3 UJN OVLX RETURN SPACE 4,10 *** THE FOLLOWING COMMANDS ARE AVAILABLE - ARD SPACE 4,10 *** AUTOREAD.NNNN. * REREAD THE SECTOR EVERY NNNN SECONDS. IF NNNN IS NOT * ENTERED, ONE IS USED. AUTOREAD IS TERMINATED BY CLEARING * THE COMMAND WITH THE LEFT BLANK OR BACKTAB KEY. ARD COMMAND LDN MLPS SET DEFAULT COUNT STD FN+1 LDI CA ZJN ARD1 IF NO SECOND COUNT ENTERED RJM ASD ASSEMBLE COUNT LDD AB+4 SHN 5 * 40 ERRNZ MLPS-40 CODE ASSUMES EQUALITY SHIFT 5 = * 40 STD FN+1 ARD1 LDD FN+1 SET COUNT STD FN ARD2 RJM RCPA RETURN TO MAIN LOOP SOD FN PJN ARD2 IF MORE DELAY RJM RSB READ SECTOR UJN ARD1 RESET COUNT BEI SPACE 4,10 *** BLDEOI. * CREATES A EOI SECTOR IN BUFFER. BEI COMMAND LDC BFMS STD T3 BEI1 LDN 0 STI T3 AOD T3 ADC -BFMS-2-100*5 MJN BEI1 IF NOT END OF BUFFER LDC 2RDD STM FNSS LDN 1RF SHN 6 STM FNSS+1 LDN PDTL SET DATE AND TIME CRM DTSS,ON LJM RET RETURN BOT SPACE 4,15 *** BOT.NNNN. * BACK UP ONE TRACK. SEARCH THE TRT STARTING AT TRACK NNNN FOR * A TRACK THAT POINTS TO THE CURRENT TRACK. IF ONE IS FOUND, * THE CURRENT TRACK IS SET TO THAT VALUE. IF NO TRACK IS FOUND * THAT POINTS TO THE CURRENT TRACK, *INCORRECT PARAMETER.* IS * DISPLAYED. IF NNNN IS NOT ENTERED, THE SEARCH STARTS AT * TRACK 0. * * NOTE THAT THE SEQUENCE OF COMMANDS *TK.NNNN.*, *BOT.*, * *TK.NNNN.*, *BOT.AAAA.* (WHERE AAAA IS THE TRACK RETURNED BY * THE FIRST *BOT.* COMMAND + 1) CAN BE USED TO DETERMINE IF * TWO DIFFERENT TRACKS ARE BOTH LINKED TO TRACK NNNN. BOT COMMAND LDD TK STD RC LDI CA ZJN BOT1 IF NO TRACK ENTERED (START AT TRACK 0) RJM ASD ASSEMBLE TRACK NUMBER LDD AB+4 BOT1 LPC 3777 ADC 4000 STD TK SET STARTING TRACK BOT2 RJM SNT GET LINK LMD RC ZJN BOT3 IF LINKED TO CURRENT TRACK AOD TK LMD LT NJN BOT2 IF MORE TRACKS TO CHECK LDD RC RESTORE CURRENT TRACK STD TK LJM ERR2 *INCORRECT PARAMETER.* BOT3 LJM RET RETURN CTB SPACE 4,10 *** CTB. * CLEAR THE TRACK INTERLOCK BIT FOR CURRENT TRACK AND * EQUIPMENT. THE KEYBOARD MUST BE UNLOCKED TO USE THIS * COMMAND. CTB COMMAND RJM CLB CHECK LOCK BIT RJM SNT CHECK TRACK INTERLOCK BIT LDD T1 ADC SHNI+22-4-4 STM CTBA LDD CM+4 CTBA SHN ** MJN CTB1 IF TRACK INTERLOCK IS SET LJM ERR4 *INCORRECT ENTRY.* CTB1 LDD EQ STD CM+1 LDD TK STD CM+2 LDN CTIS STD CM+3 MONITOR STBM LJM RET RETURN DEP SPACE 4,10 *** DEP. * DISABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE * DRIVER TO READ A SECTOR. * (BY DEFAULT, ERROR PROCESSING IS DISABLED.) DEP COMMAND LDN DEPL-1 STD T1 DEP1 LDM DEPA,T1 MOVE SETMS CODE STM CTSA,T1 SOD T1 PJN DEP1 IF MOVE NOT COMPLETE LJM RET RETURN DEPA SETMS IO,(AR,NS,AD,RW,DF) SELECT RETURN ON ALL ERRORS DEPL EQU *-DEPA LENGTH DIS SPACE 4,10 *** DIS. * DROP DISPLAY AND CALL *DIS* TO CONTROL POINT. DIS COMMAND RJM END END CPU PROGRAM RJM DDS DROP DISPLAY LDD CP SET CONTROL POINT NUMBER SHN -7 RAM DISA+1 LDD IA WRITE INPUT REGISTER CWM DISA,ON LJM PPR EXIT TO PP RESIDENT DISA VFD 60/0LDIS DRP SPACE 4,10 *** DROP. * DROP DISPLAY AND PP. DRP COMMAND RJM END END CPU PROGRAM RJM DDS DROP DISPLAY LJM DPP DROP PP DTK SPACE 4,10 *** DTK.SSSS. * DROP TRACKS STARTING WITH THE CURRENT TRACK AND SET THE EOI * SECTOR IN THE TRT TO SSSS. * * DTK. * DROP TRACKS TO END OF CHAIN STARTING WITH THE CURRENT TRACK. * * THE KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND. DTK COMMAND RJM CLB CHECK LOCK BIT RJM CTR CHECK TRACK RESERVATION PJN DTK2 IF TRACK RESERVATION BIT NOT SET LDD EQ SET EST ORDINAL ADC 4000 SET CHECKPOINT STD CM+1 LDD TK STD CM+2 LDI CA ZJN DTK1 IF NO SECTOR SPECIFIED RJM ASD ASSEMBLE SECTOR NUMBER LDD AB+4 STD CM+3 SBD LS SBN 1 PJN DTK2 IF ILLEGAL SECTOR LDD CM+2 CLEAR SECTOR PARAMETER BIT LPC 3777 STD CM+2 DTK1 MONITOR DTKM LJM RET RETURN DTK2 LJM ERR2 *INCORRECT PARAMETER.* EEP SPACE 4,10 *** EEP. * ENABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE * DRIVER TO READ A SECTOR. * (BY DEFAULT, ERROR PROCESSING IS DISABLED.) EEP COMMAND LDN EEPL-1 STD T1 EEP1 LDM EEPA,T1 MOVE SETMS CODE STM CTSA,T1 SOD T1 PJN EEP1 IF MOVE NOT COMPLETE LJM RET RETURN EEPA SETMS IO,(RR,NR,NS,AD,RW,DF) RETURN ON NOT READY/RESERVED EEPL EQU *-EEPA LENGTH ERRNZ DEPL-EEPL SETMS MACRO LENGTH CHANGE EET SPACE 4,10 *** EJT.NNNN. * ENTER DISK ADDRESS FROM EJT ORDINAL NNNN. * (0 .LE. NNNN .LE. LARGEST EJT ORDINAL.) THE EQUIPMENT, * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE EJT ENTRY IS NOT * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED. EET COMMAND LDN TARN RJM LDO LOAD OVERLAY LDN PEJT RJM /TAR/RFE READ FST ENTRY LDD FN+1 ZJP ERR2 IF TRACK NOT ASSIGNED STD TK LDN 0 CLEAR SECTOR STD SC LJM IMS INITIALIZE MASS STORAGE EST SPACE 4,10 *** EST.NN. * ENTER EST ORDINAL. THE EQUIPMENT MUST BE A MASS STORAGE * DEVICE. EST COMMAND RJM ASD ASSEMBLE NUMBER LDD AB+4 LPC 777 STD AB SFA EST READ EST ENTRY ADK EQDE CRD CM LDD CM SHN 6 PJN EST1 IF NOT MASS STORAGE LDD CM+4 MST ADDRESS/10 SHN 3 ADN DDLL CRD CM LDD CM SHN 21-12 MJN EST1 IF NULL EQUIPMENT LDD AB STD EQ LJM IMS INITIALIZE MASS STORAGE EST1 LJM ERR5 *INCORRECT EQUIPMENT.* EFO SPACE 4,10 *** FAMILY.CCCCCCC. * USE PERMANENT FILE FAMILY *CCCCCCC*. (THE FAMILY IS SET * INTERNALLY IN DDF. *PFCW* IN THE CONTROL POINT AREA IS NOT * CHANGED.) THE FAMILY IS INITIALLY SET TO THE FAMILY * SPECIFIED IN *PFCW*. EFO COMMAND RJM ASN ASSEMBLE NAME RJM SFE SET FAMILY EQUIPMENT NJN EFO1 IF FAMILY NOT FOUND LDD T2 SET FAMILY EST ORDINAL STD PF+4 LJM RET RETURN EFO1 LJM ERR2 *INCORRECT PARAMETER.* *CALL COMPSFE FPE SPACE 4,25 *** FIND. * THE FIND COMMAND SCANS THE CATALOG TRACK STARTING AT THE * CURRENT POSITION SEARCHING FOR THE SPECIFIED CATALOG ENTRY. * THE CATALOG TRACK MUST BE READ VIA APPROPRIATE COMMANDS * (FAMILY, PACKNAM, UI, ETC.) BEFORE THE FIND COMMAND IS USED. * THE FOLLOWING OPTIONS ARE AVAILABLE. * * FIND.CCCCCCC.NNNNNN. * SEARCH FOR PERMANENT FILE CCCCCCC WITH USER INDEX NNNNNN. * * FIND.CCCCCCC.. * SEARCH FOR PERMANENT FILE CCCCCCC WITH A ZERO USER INDEX * (I.E. A HOLE). * * FIND.CCCCCCC. * SEARCH FOR PERMANENT FILE CCCCCCC. THE USER INDEX IS * IGNORED. * * FIND..NNNNNN. * SEARCH FOR A PERMANENT FILE WITH USER INDEX NNNNNN. THE FILE * NAME IS IGNORED. * * FIND... * SEARCH FOR A PERMANENT FILE WITH A ZERO USER INDEX. THE FILE * NAME IS IGNORED. (I.E. SEARCH FOR ANY HOLE.) FPE COMMAND RJM ASN GET FILE NAME AOD CA LDI CA ZJN FPE1 IF UI NOT ENTERED RJM ASD ASSEMBLE USER INDEX LDD AB+3 LPN 37 RAD FN+3 LDD AB+4 STD FN+4 FPE1 LDD RS LMN DFDN SHN 12 ADM /DFD/DFDB LMN DPEN NJN FPE2 IF PFC DISPLAY NOT UP LDM DRSA+4 UJN FPE3 STORE PFC ORDINAL FPE2 LDN 0 FPE3 STD T3 SHN NWCES STD T1 SHN 2 RAD T1 LDM BFMS ADM BFMS+1 NJN FPE4 IF EOI NOT ENCOUNTERED LJM ERR3 *NOT FOUND.* * COMPARE PARAMETERS WITH THE CATALOG ENTRY. FPE4 LDD FN ZJN FPE6 IF FILE NAME NOT SPECIFIED LDN 0 STD T2 FPE5 LDM FN,T2 COMPARE NAME LMM BFMS+2,T1 NJN FPE7 IF NOT A MATCH AOD T1 AOD T2 SBN 3 MJN FPE5 IF MORE CHARACTERS LDD FN+3 COMPARE SEVENTH CHARACTER LMM BFMS+2,T1 SCN 77 NJN FPE9 IF NOT A MATCH FPE6 LDD T3 SHN NWCES STD T1 SHN 2 RAD T1 LDI CA NJN FPE8 IF UI SPECIFIED LDM BFMS+2+FCUI,T1 LPN 37 ADM BFMS+2+FCUI+1,T1 NJN FPE11 IF NON-ZERO, ASSUME MATCH FPE7 UJN FPE9 CONTINUE SEARCH FPE8 LDM BFMS+2+FCUI,T1 LMD FN+3 LPN 37 NJN FPE9 IF UI DOES NOT MATCH LDM BFMS+2+FCUI+1,T1 LMD FN+4 ZJN FPE11 IF UI MATCHES * ADVANCE TO NEXT CATALOG ENTRY. FPE9 AOD T3 ADVANCE BUFFER INDEX SHN NWCES STD T1 SBM BFMS+1 PJN FPE10 IF END OF SECTOR LDD T1 SHN 2 RAD T1 LJM FPE4 LOOP FPE10 RJM SNS SET NEXT SECTOR RJM RSB READ SECTOR MJN FPE12 IF ERROR RJM RCPA RETURN TO MAIN LOOP LJM FPE2 LOOP * DISPLAY PFC ENTRY. FPE11 LDN DFDN SET DISPLAY STD RS RJM LDO LOAD OVERLAY LDD T3 STM DRSA+4 FPE12 LJM RET RETURN FIS SPACE 4,10 *** FINDISS.NNNNNN. * STARTING AT THE CURRENT POSITION, SEARCH FOR THE NEXT SYSTEM * SECTOR WITH USER INDEX NNNNNN ON THE CHAIN. IF NNNNNN IS * NOT SPECIFIED THE USER INDEX IS NOT CHECKED AND THE NEXT * SYSTEM SECTOR IS DISPLAYED. THIS COMMAND IS INTENDED TO BE * USED ON THE INDIRECT ACCESS PERMANENT FILE CHAIN. FIS COMMAND LDI CA ZJN FIS1 IF NO USER INDEX SPECIFIED RJM ASD ASSEMBLE USER INDEX LDD AB+3 STD FN+3 LDD AB+4 STD FN+4 FIS1 RJM SNS ADVANCE TO NEXT SECTOR NJN FIS3 IF NOT EOI RJM SNT GET NEXT TRACK STD T1 SHN 6 MJN FIS2 IF NOT EOI TRACK SHN -6 LMD SC NJN FIS2 IF NOT AT EOI INDICATED IN TRT LJM ERR3 *NOT FOUND.* FIS2 AOD SC SBD LS SBN 1 NJN FIS3 IF NOT END OF TRACK STD SC LDD T1 STD TK FIS3 RJM RSB READ SECTOR MJN FIS5 IF ERROR LDM BFMS SHN 6 ADM BFMS+1 LMC 377777 NJN FIS4 IF NOT SYSTEM SECTOR LDI CA ZJN FIS5 IF NO UI SPECIFIED LDM CTSS+3 LMD FN+3 LPN 37 NJN FIS4 IF UI DOES NOT MATCH LDM CTSS+4 LMD FN+4 ZJN FIS5 IF UI MATCHES FIS4 RJM RCPA RETURN TO MAIN LOOP LJM FIS1 LOOP FIS5 LJM RET RETURN FOV SPACE 4,10 *** FINDO.NNNN NNNN NNNN NNNN NNNN. * SEARCH FROM THE CURRENT POSITION FOR THE OCTAL NUMBER * SPECIFIED. THE NUMBER CAN BE 1 TO 20 DIGITS AND IS RIGHT * JUSTIFIED IN AS MANY BYTES AS ARE NECESSARY TO HOLD THE * NUMBER. THE SEARCH STARTS ON A BYTE BOUNDARY AND THE BYTE * NUMBER IS DISPLAYED IF THE SEARCH IS SUCCESSFUL. IF THE * FIRST PART OF THE NUMBER IS FOUND AT THE END OF THE BUFFER, * THE SEARCH IS TERMINATED EVEN THOUGH THE ENTIRE NUMBER * WAS NOT FOUND. IF THE CARRIAGE RETURN IS ENTERED AGAIN, * THE SEARCH CONTINUES AT THE CURRENT MATCH. FOV COMMAND LDD CA SAVE CHARACTER ADDRESS STD FN+4 LDN 0 STD T1 FOV1 AOD CA FIND SIZE OF NUMBER LDI CA ZJN FOV2 IF END OF STRING LMN 1R NJN FOV1 IF NOT BLANK CHARACTER AOD T1 COUNT BLANKS UJN FOV1 CHECK NEXT CHARACTER FOV2 SOD CA SET BYTE COUNT SBD FN+4 SBD T1 ADN 3 SHN -2 STD FN+3 FOV3 LDD FN+4 CONVERT NUMBER STD CA RJM ASD ASSEMBLE DIGITS LDD KM CHECK KEYBOARD MESSAGE LMC SBNA NJN FOV4 IF NOT MESSAGE FROM FINDO STD KM LJM FOV9 CONTINUE SEARCH FOV4 LDM BFMS ZJN FOV5 IF EOF LDM BFMS+1 FOV5 ZJN FOV10 IF ZERO LENGTH SECTOR SHN 2 SET BYTE COUNT ADM BFMS+1 ADN 2 STD FN+2 LDN 2 SET STARTING POSITION STD FN STD FN+1 FOV6 LDN 5 SET BEGINNING OF SEARCH SBD FN+3 STD T3 FOV7 LDM BFMS,FN+1 COMPARE BYTES LMM AB,T3 NJN FOV9 IF NOT A MATCH AOD T3 LMN 5 ZJN FOV8 IF SEARCH COMPLETE AOD FN+1 LMD FN+2 NJN FOV7 IF NOT END OF SECTOR FOV8 LJM SBN DISPLAY BYTE NUMBER FOV9 AOD FN STD FN+1 LMD FN+2 NJN FOV6 IF NOT END OF SECTOR FOV10 RJM RCPA RETURN TO MAIN LOOP RJM SNS READ NEXT SECTOR ZJN FOV11 IF EOI RJM RSB READ SECTOR MJN FOV12 IF ERROR LJM FOV3 LOOP FOV11 LJM ERR3 *NOT FOUND.* FOV12 LJM RET RETURN FST SPACE 4,10 *** FINDS.CCCCCCC * SEARCH FROM THE CURRENT POSITION FOR THE STRING OF CHARACTERS * CCCCCCC. IF THE FIRST PART OF THE STRING MATCHES THE * END OF THE BUFFER, THE SEARCH IS TERMINATED EVEN THOUGH THE * ENTIRE STRING WAS NOT FOUND. THE BYTE NUMBER OF THE BEGIN- * ING OF THE STRING IS DISPLAYED. IF THE CARRIAGE RETURN IS * ENTERED, THE SEARCH IS BEGUN AGAIN AT THAT POINT. FST COMMAND LDI CA NJN FST1 IF CHARACTER STRING ENTERED LJM ERR2 *INCORRECT PARAMETER.* FST1 LDD KM CHECK KEYBOARD MESSAGE LMC SBNA NJN FST2 IF NOT MESSAGE FROM FINDS STD KM LDN 1 STD T2 LJM FST9 CONTINUE SEARCH AT NEXT BYTE FST2 LDM BFMS ZJN FST3 IF EOF LDM BFMS+1 NJN FST4 IF NOT ZERO LENGTH SECTOR FST3 LJM FST10 ADVANCE TO NEXT SECTOR FST4 SHN 2 SET BYTE COUNT ADM BFMS+1 ADN 2 STD FN+2 LDN 2 SET STARTING BYTE NUMBER STD FN STD FN+1 LDD CA SET BEGINNING OF STRING STD T3 FST5 LDN 2 SET FIRST/SECOND HALF OF BYTE FLAG STD T2 FST6 LDM BFMS,FN+1 CHECK FIRST CHARACTER OF BYTE SHN -6 LMI T3 NJN FST9 IF CHARACTERS DONT MATCH AOD T3 FST7 LDI T3 CHECK SECOND CHARACTER OF BYTE ZJN FST8 IF SEARCH COMPLETE LMM BFMS,FN+1 LPN 77 NJN FST9 IF CHARACTERS DONT MATCH AOD T3 LDI T3 ZJN FST8 IF SEARCH COMPLETE AOD FN+1 ADVANCE TO NEXT 2 CHARACTERS LMD FN+2 NJN FST6 IF NOT END OF SECTOR FST8 LJM SBN DISPLAY BYTE NUMBER FST9 LDD CA RESET POINTERS STD T3 LDD FN STD FN+1 SOD T2 NJN FST7 IF STARTED WITH FIRST CHARACTER OF BYTE AOD FN ADVANCE SEARCH TO START WITH NEXT BYTE STD FN+1 LMD FN+2 NJN FST5 IF NOT END OF SECTOR FST10 RJM RCPA RETURN TO MAIN LOOP RJM SNS SET NEXT SECTOR ZJN FST11 IF EOI RJM RSB READ SECTOR MJN FST12 IF ERROR LJM FST2 SEARCH NEW SECTOR FST11 LJM ERR3 *NOT FOUND.* FST12 LJM RET RETURN FSS SPACE 4,10 *** FINDSS.NNNNNN. * STARTING FROM THE CURRENT TRACK AND SEARCHING TO THE END * OF THE TRT, FIND AND DISPLAY THE NEXT SYSTEM SECTOR WITH * USER INDEX NNNNNN. IF NNNNNN IS NOT SPECIFIED, THE USER * INDEX IS NOT CHECKED. FSS COMMAND LDN 0 STD SC LDI CA ZJN FSS1 IF UI NOT ENTERED RJM ASD ASSEMBLE USER INDEX LDD AB+3 STD FN+3 LDD AB+4 STD FN+4 FSS1 AOD TK ADVANCE TO NEXT TRACK LMD LT NJN FSS2 IF NOT END OF TRT SOD TK LJM ERR3 *NOT FOUND.* FSS2 RJM SNT CHECK FOR FLAWED TRACK LMC 3777 ZJN FSS1 IF FLAWED TRACK RJM RSB READ SECTOR MJN FSS4 IF ERROR LDM BFMS SHN 6 ADM BFMS+1 LMC 377777 NJN FSS3 IF NOT SYSTEM SECTOR LDI CA ZJN FSS4 IF NO UI SPECIFIED LDM FNSS+4 CHECK FILE TYPE SHN -6 LMN PMFT NJN FSS3 IF NOT PERMANENT FILE SYSTEM SECTOR LDM CTSS+3 LMD FN+3 LPN 37 NJN FSS3 IF UI DOES NOT MATCH LDM CTSS+4 LMD FN+4 ZJN FSS4 IF UI MATCHES FSS3 RJM RCPA RETURN TO MAIN LOOP LJM FSS1 LOOP FSS4 LJM RET RETURN EFB SPACE 4,10 *** FNT.NNNN. * ENTER DISK ADDRESS FROM GLOBAL FNT ORDINAL NNNN. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT, * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED. EFB COMMAND LDN TARN RJM LDO LOAD OVERLAY LDN PFNT RJM /TAR/RFE READ FST ENTRY LDD FN+1 ZJP ERR2 IF TRACK NOT ASSIGNED STD TK TRACK LDN 0 STD SC SECTOR LJM IMS INITIALIZE MASS STORAGE EFL SPACE 4,10 *** FNTL.NNNN. * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT, * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED. EFL COMMAND LDN TARN RJM LDO LOAD OVERLAY LDN PNFL RJM /TAR/RFE READ FST ENTRY LDD FN+1 ZJP ERR2 IF TRACK NOT ASSIGNED STD TK LDN 0 CLEAR SECTOR STD SC LJM IMS INITIALIZE MASS STORAGE EFC SPACE 4,10 *** FNTLC.NNNN. * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT, * TRACK, AND SECTOR ARE SET TO THE CURRENT POSITION OF THE * FILE. *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY * IS NOT USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED. EFC COMMAND LDN TARN RJM LDO LOAD OVERLAY LDN PNFL RJM /TAR/RFE READ FST ENTRY LDD T3 CHECK FILE TYPE CRD CM LDD FN+2 SET TRACK ZJN EFC2 IF NO CURRENT TRACK STD TK LDD FN+3 SET SECTOR STD SC UJN EFC3 INITIALIZE MASS STORAGE EFC2 STD SC SET SECTOR LDD FN+1 SET TRACK STD TK EFC3 LJM IMS INITIALIZE MASS STORAGE GTT SPACE 4,10 *** GETTRT.NNNN. * THIS COMMAND IS INTENDED TO BE USED ON THE LABEL TRACK. THE * EQUIPMENT AND TRACK MUST BE SET FOR THE LABEL TRACK BEFORE * THE COMMAND IS USED. GETTRT READS THE SECTOR THAT CONTAINS * THE CHECKPOINTED TRT INFORMATION FOR TRACK NNNN AND DISPLAYS * THE BYTE NUMBER WITHIN THE SECTOR FOR THAT TRACK. GTT COMMAND RJM ASD GET TRACK NUMBER LDD AB+4 GET BYTE NUMBER WITHIN CM WORD LPC 3777 STD AB+4 LPN 3 STD AB+3 LDD AB+4 GET CM WORD NUMBER SHN -2 STD AB+2 SHN -6 SET SECTOR NUMBER STD SC SHN 6 STD AB+1 AOD SC LDD AB+2 GET CM WORD NUMBER WITH SECTOR SBD AB+1 STD AB SHN 2 CALCULATE BYTE NUMBER ADD AB ADD AB+3 ADN 2 STD FN RJM RSB READ SECTOR LJM SBN DISPLAY BYTE NUMBER HOL SPACE 4,10 *** HOLD. * DROP DISPLAY AND WAIT FOR OPERATOR ASSIGNMENT. RESERVED * CHANNEL IS NOT DROPPED. HOL COMMAND RJM DDS DROP DISPLAY LDD MA SAVE DISK DATA CWD T3 RJM RDC REQUEST DISPLAY RJM CSB CLEAR SCREEN BUFFER LDD MA RESTORE DISK DATA CRD T3 LJM IMS INITIALIZE MASS STORAGE EIT SPACE 4,10 *** QFT.NNNN. * ENTER DISK ADDRESS FROM QFT ORDINAL NNNN. * (0 .LE. NNNN .LE. LARGEST QFT ORDINAL.) THE EQUIPMENT, * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE QFT ENTRY IS NOT * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED. EIT COMMAND LDN TARN RJM LDO LOAD OVERLAY LDN PQFT RJM /TAR/RFE READ FST ENTRY LDD FN+1 ZJP ERR2 IF TRACK NOT ASSIGNED STD TK LDN 0 CLEAR SECTOR STD SC LJM IMS INITIALIZE MASS STORAGE LSA SPACE 4,10 *** LOAD.C. * RELOAD THE EQUIPMENT, TRACK, AND SECTOR FROM SCRATCH AREA * C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS ARE * DISPLAYED ON THE LEFT SCREEN). (REFER TO THE STORE COMMAND.) LSA COMMAND RJM CSA GET ADDRESS OF SCRATCH AREA LDI T2 ZJN LSA1 IF STORE NOT DONE STD EQ LDM 1,T2 STD TK LDM 2,T2 STD SC LDM 3,T2 SET DISPLAY SHN -11 STD RS RJM LDO LOAD OVERLAY LDM 3,T2 LPC 777 STM DRSA+4 LJM IMS INITIALIZE MASS STORAGE LSA1 LJM ERR2 *INCORRECT PARAMETER.* EPN SPACE 4,10 *** PACKNAM.CCCCCCC. * USE PERMANENT FILE PACK CCCCCCC. (THE PACK NAME IS SET * INTERNALLY IN DDF. *PKNW* IN THE CONTROL POINT AREA IS NOT * CHANGED.) THE PACK NAME IS INITIALLY SET TO THE NAME IN * *PKNW*. EPN COMMAND RJM ASN GET NAME LDD FN SAVE NAME STD PF LDD FN+1 STD PF+1 LDD FN+2 STD PF+2 LDD PF+3 LPN 77 LMD FN+3 STD PF+3 LJM RET RETURN PRD SPACE 4,10 *** PREAD. * READ THE CURRENT SECTOR USING THE *READ PROTECTED SECTOR* * FUNCTION. THIS COMMAND REPLACES THE SPACE KEY WHEN READING * PROTECTED SECTORS. SPECIAL KEYS LIKE *+* AND *-* CANNOT * BE USED TO READ PROTECTED SECTORS. THE KEYBOARD MUST BE * UNLOCKED TO USE THIS COMMAND. PRD COMMAND RJM CLB CHECK LOCK BIT RJM CEQ CHECK EQUIPMENT LDD TK SAVE TRACK AND SECTOR STD FN LDD SC STD FN+1 LDD EQ SET EQUIPMENT ADC 1000 STM PRDB EXECUTE 0PI,PRDB+1 SET UP DRIVER FOR PROTECTED SECTORS LDD FN RESET TRACK AND SECTOR STD TK LDD FN+1 STD SC LDM KBUF+1 LMN 1RW NJN PRD1 IF NOT *PWRITE* COMMAND LDC WDS STM PRDA PRD1 LDC BFMS READ/WRITE SECTOR RJM RDS PRDA EQU *-1 * RJM WDS (*PWRITE* COMMAND) MJN PRD2 IF ERROR ENDMS * LDN 0 STM RDCT PRD2 LDM RDCT RELOAD DRIVER STD FN LDD T6 STD FN+1 RJM CTS LDD FN STM RDCT LDD FN+1 STD T6 LJM RET RETURN PRDB BSS 0 *0PI* LOAD ADDRESS ERRNG 7777-PRDB-1-ZPXL *0PI* OVERFLOWS PP MEMORY PTK SPACE 4,10 *** PTK.NNNN. * ENTER PROTECTED TRACK. THIS COMMAND WORKS THE SAME AS THE * TK. COMMAND EXCEPT THE NUMBER ENTERED IS NOT CHECKED AND THE * KEYBOARD MUST BE UNLOCKED. PTK COMMAND RJM CLB CHECK LOCK BIT RJM ASD ASSEMBLE TRACK NUMBER LDD AB+4 LPC 3777 LMC 4000 STD TK LJM RET RETURN PWT SPACE 4,10 *** PWRITE. * WRITE THE CURRENT SECTOR USING THE *WRITE PROTECTED SECTOR* * FUNCTION. THIS COMMAND SHOULD BE USED INSTEAD OF THE *WRITE* * COMMAND WHEN WRITING PROTECTED SECTORS. QUAL PRESET PWT EQU PRD PWTL EQU PRDL QUAL * ERA SPACE 4,20 *** RANDOM.NNNN.RRRR. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR WITH FIRST TRACK * NNNN. *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM * ADDRESS IS NOT ON THE TRACK. * * * RANDOM..RRRR. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE * CURRENT TRACK AS THE FIRST TRACK. *INCORRECT PARAMETER.* IS * DISPLAYED IF THE RANDOM ADDRESS IS NOT ON THE CHAIN. * * * RANDOM.C.RRRR. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE TRACK * SPECIFIED BY SCRATCH REGISTER C AS THE FIRST TRACK. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM ADDRESS IS * NOT ON THE CHAIN. ERA COMMAND LDD TK SAVE CURRENT TRACK STD RC LDI CA LMN 1R. ZJN ERA3 IF TRACK NUMBER NOT ENTERED LDI CA SBN NSRA+1 PJN ERA1 IF NOT A SCRATCH AREA RJM CSA COMPUTE SCRATCH AREA ADDRESS LDM 1,T2 SET TRACK FROM SCRATCH AREA UJN ERA2 STORE TRACK ERA1 RJM ASD GET FIRST TRACK LDD AB+4 ERA2 STD TK ERA3 AOD CA RJM CDR GET RANDOM ADDRESS LMN 1R. NJN ERA4 IF FORMAT ERROR RJM CRA CHECK RANDOM ADDRESS MJN ERA5 IF NOT ON CHAIN LJM RET RETURN ERA4 LDD RC RESET TRACK STD TK LJM ERR1 *FORMAT ERROR.* ERA5 LDD RC RESET TRACK STD TK LJM ERR2 *INCORRECT PARAMETER.* *CALL COMPCRA ESC SPACE 4,10 *** SC.NNNN. * ENTER SECTOR NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF * THE SECTOR NUMBER IS TOO LARGE. ESC COMMAND RJM ASD ASSEMBLE NUMBER LDD LS SBD AB+4 MJN ESC1 IF ILLEGAL SECTOR LDD AB+4 STD SC LJM RET RETURN ESC1 LJM ERR2 *INCORRECT PARAMETER.* ELS SPACE 4,10 *** SC.*. * ENTER THE NUMBER OF THE LAST SECTOR ON THE TRACK INTO THE * SECTOR NUMBER. ELS COMMAND LDD LS SET LAST SECTOR STD SC LJM RET RETURN SCN SPACE 4,15 *** SCAN. * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION * CONTROL BYTES ARE ENCOUNTERED. THE SCAN STOPS IF, AT SOME * POINT, THE CONTROL BYTES ARE INCORRECT OR THE TRACK IS NOT * RESERVED. * * * SCAN.*. * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION * INDICATED IN THE TRT IS REACHED. THIS IS INTENDED TO BE USED * FOR THE INDIRECT ACCESS PERMANENT FILE CHAIN. NOTE - WHEN * *PFM* DELINKS A TRACK IN THE MIDDLE OF THE CHAIN, IT DOES NOT * UPDATE THE TRACK POINTER IN THE PRECEEDING TRACK. THIS WILL * CAUSE SCAN TO STOP AT THIS POINT AND DISPLAY AN ERROR. SCN COMMAND SCN1 RJM RCPA RETURN TO MAIN LOOP RJM SNT CHECK TRT LDN 0 SET ERROR MESSAGE NUMBER STD T3 LDM BFMS SHN 6 ADM BFMS+1 LMC 377777 NJN SCN2 IF NOT SYSTEM SECTOR AOD T3 LDM NSSS UJN SCN3 CHECK SYSTEM SECTOR POINTER SCN2 LDM BFMS NJN SCN3 IF NOT EOF LDM BFMS+1 NJN SCN3 IF NOT EOI LJM SCN9 CHECK EOI PROCESSING SCN3 SHN 6 PJN SCN4 IF NOT A TRACK LINK BYTE SHN -6 LMM CM,T1 NJN SCN8 IF LINKAGE BYTES DONT MATCH TRT LDN 2 SET ERROR MESSAGE NUMBER STD T3 LDD SC LMD LS NJN SCN8 IF TRACK LINK NOT IN LAST SECTOR UJN SCN5 CHECK WORD COUNT SCN4 SHN -6 SBN 1 LMD SC NJN SCN8 IF NEXT SECTOR .NE. CURRENT SECTOR+1 SCN5 LDN 3 SET MESSAGE NUMBER STD T3 LDM BFMS CHECK WORD COUNT ZJN SCN6 IF EOF LDD HN SBM BFMS+1 MJN SCN8 IF BAD WORD COUNT SCN6 AOD T3 RJM CTR CHECK TRACK RESERVATION PJN SCN8 IF TRACK NOT RESERVED RJM SNS ADVANCE TO NEXT SECTOR SCN7 RJM RSB READ SECTOR MJN SCN11 IF ERROR LJM SCN1 LOOP SCN8 LDM SCNA,T3 GET MESSAGE LJM SKM SET KEYBOARD MESSAGE SCN9 LDI CA ZJN SCN11 IF NOT SCAN TO TRT EOI RJM SNT SET NEXT TRACK STD T1 SHN 6 MJN SCN10 IF NOT EOI TRACK SHN -6 LMD SC ZJN SCN11 IF AT EOI INDICATED IN TRT SCN10 AOD SC ADVANCE TO NEXT SECTOR SBD LS SBN 1 NJN SCN7 IF NOT END OF TRACK STD SC LDD T1 STD TK UJN SCN7 READ NEXT SECTOR SCN11 LJM RET RETURN SCNA CON SCNB,SCNC,SCND,SCNE,SCNF SCNB DATA Z*LINKAGE BYTE BAD.* SCNC DATA Z*SYSTEM SECTOR LINKAGE BYTE BAD.* SCND DATA Z*TRACK LINK IN WRONG SECTOR.* SCNE DATA Z*WORD COUNT TOO BIG.* SCNF DATA Z*TRACK NOT RESERVED.* SPF SPACE 4,10 *** SHOWPF. * DISPLAY THE PERMANENT FILE WHOSE CATALOG ENTRY IS CURRENTLY * DISPLAYED. THE *PFC* DISPLAY MUST BE ON THE RIGHT SCREEN TO * USE THIS COMMAND. THE DEVICE, TRACK, AND SECTOR FROM THE * PFC CURRENTLY DISPLAYED ARE USED TO DISPLAY THE FILE. IF THE * DEVICE IS NOT PRESENT, *INCORRECT PARAMETER* IS DISPLAYED. SPF COMMAND LDD RS CHECK CURRENT DISPLAY LMN DFDN SHN 12 ADM /DFD/DFDB LMN DPEN NJP ERR4 IF PFC DISPLAY NOT UP LDM DRSA+4 COMPUTE PFC ADDRESS SHN NWCES STD FN SHN 2 RAD FN LDM BFMS+2+FCDN,FN DETERMINE EQUIPMENT FILE IS ON LPN 77 ZJN SPF2 IF FILE IS ON MASTER DEVICE STD CM LDD MA SAVE CURRENT DIRECT CELLS ADN 4 CWD T3 - T7 ADN 1 CWD CM+3 - CM+7 LDD T5 SEARCH FOR DEVICE RJM SDN PJN SPF1 IF DEVICE FOUND ADN 1 ZJN SPF4 IF DEVICE NOT FOUND SPF1 LDD MA RESTORE DIRECT CELLS USED BY *COMPSDN* ADN 4+1 CRD CM+3 SPF2 LDM BFMS+2+FCBT,FN SET TRACK STD T6 LDM BFMS+2+FCBS,FN SET SECTOR STD T7 SHN 21-13 PJN SPF3 IF INDIRECT ACCESS FILE LDN 0 STD T7 SPF3 LJM IMS INITIALIZE MASS STORAGE SPF4 LDD MA RESTORE PREVIOUS VALUES TO DIRECT CELLS ADN 4 CRD T3 ADN 1 CRD CM+3 LJM ERR2 *INCORRECT PARAMETER* *CALL COMPSDN SKE SPACE 4,10 *** SKIPEI. * SET TRACK AND SECTOR TO EOI BASED ON CURRENT POSITION AND * INFORMATION IN THE TRT. THE NUMBER OF SECTORS SKIPPED IS * DISPLAYED ON THE LEFT SCREEN. SKE COMMAND RJM SEI SEARCH FOR EOI LDD T2 SET UP MESSAGE SHN -6 RJM C2D CONVERT TWO DIGITS STM SKEB LDD T2 RJM C2D CONVERT TWO DIGITS STM SKEB+1 LDD T3 SHN -6 RJM C2D CONVERT TWO DIGITS STM SKEB+2 LDD T3 RJM C2D CONVERT TWO DIGITS STM SKEB+3 LDC SKEA LJM SKM SET KEYBOARD MESSAGE SKEA DATA H* LENGTH = * SKEB DATA Z*NNNNNNNNB.* *CALL COMPSEI SKF SPACE 4,10 *** SKIPF. * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOF * IS ENCOUNTERED. SKF COMMAND SKF1 RJM SNS ADVANCE TO THE NEXT SECTOR RJM RSB READ SECTOR MJN SKF2 IF ERROR RJM RCPA RETURN TO MAIN LOOP LDM BFMS ADM BFMS+1 ZJN SKF3 IF EOI LDM BFMS NJN SKF1 IF NOT EOF SKF2 LJM RET RETURN SKF3 LJM ERR3 *NOT FOUND.* SKR SPACE 4,10 *** SKIPR. * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOR * OR EOF IS ENCOUNTERED. SKR COMMAND SKR1 RJM SNS ADVANCE TO THE NEXT SECTOR RJM RSB READ SECTOR MJN SKR2 IF ERROR RJM RCPA RETURN TO MAIN LOOP LDM BFMS ADM BFMS+1 ZJN SKR3 IF EOI LDM BFMS ZJN SKR2 IF EOF LDM BFMS+1 SHN -6 NJN SKR1 IF NOT SHORT PRU SKR2 LJM RET RETURN SKR3 LJM ERR3 *NOT FOUND.* STB SPACE 4,10 *** STB. * SET THE TRACK INTERLOCK BIT FOR THE CURRENT TRACK. THE * KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND. STB COMMAND RJM CLB CHECK LOCK BIT STB1 RJM CTR CHECK TRACK RESERVATION MJN STB2 IF TRACK IS RESERVED LJM ERR4 *INCORRECT ENTRY.* STB2 LDD EQ STD CM+1 LDD TK STD CM+2 LDN STIS STD CM+3 MONITOR STBM LDD CM+1 ZJN STB3 IF REQUEST HONORED LDN 0 STD SB RJM RCPA RETURN TO MAIN LOOP UJN STB1 LOOP STB3 LJM RET RETURN SSA SPACE 4,10 *** STORE.C.COMMENT * STORE THE CURRENT EQUIPMENT, TRACK, AND SECTOR INTO SCRATCH * AREA C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS * ARE DISPLAYED ON THE LEFT SCREEN). THE COMMENT IS COPIED TO * THE SCRATCH AREA AND DISPLAYED ON THE LEFT SCREEN. THE * COMMENT IS FOR CONVENIENCE ONLY AND IS TRUNCATED TO 10 * CHARACTERS. THE EQUIPMENT, TRACK, AND SECTOR CAN BE RELOADED * FROM THE SCRATCH AREA WITH THE *LOAD* COMMAND. SSA COMMAND RJM CSA GET ADDRESS OF SCRATCH AREA LDD EQ SAVE EQUIPMENT STI T2 AOD T2 LDD TK SAVE TRACK STI T2 AOD T2 LDD SC SAVE SECTOR STI T2 AOD T2 LDD RS SAVE DISPLAY INFORMATION SHN 11 ADM DRSA+4 STI T2 AOD T2 LDN 4 COPY COMMENT STD T1 AOD CA SSA1 LDI CA SHN 6 ADM 1,CA STI T2 LDN 2 RAD CA AOD T2 SOD T1 PJN SSA1 IF MORE BYTES LJM RET RETURN ETK SPACE 4,10 *** TK.NNNN. * ENTER TRACK NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF * THE NUMBER IS TOO LARGE. ETK COMMAND RJM ASD ASSEMBLE NUMBER LDD AB+4 LPC 3777 ADC 4000 STD T2 SBD LT SBN 1 PJN ETK1 IF ILLEGAL TRACK LDD T2 STD TK LJM RET RETURN ETK1 LJM ERR2 *INCORRECT PARAMETER.* SCT SPACE 4,10 *** UI.NNNNNN. * SET EQUIPMENT AND TRACK FOR THE CATALOG ENTRIES FOR USER * INDEX NNNNNN (NNNNNN .LE. 377777). *INCORRECT PARAMETER.* IS * DISPLAYED IF THE CATALOG IS NOT FOUND (THIS MAY BE THE RESULT * OF ENTERING THE WRONG FAMILY OR PACK NAME.) IF THE FAMILY * OR PACK NAME ARE CHANGED (AFTER ENTERING THE *UI* COMMAND), * THE *UI* COMMAND MUST BE REENTERED. SCT COMMAND RJM ASD GET USER INDEX LDD MA SAVE CURRENT ENTRIES ADN 5 CWD T3 LDN PF RJM SCA SET CATALOG ADDRESS PJN SCT1 IF DEVICE FOUND AND ACCESSIBLE ADN 1 NJN SCT2 IF NOT FOUND SCT1 LDN DFDN STD RS RJM LDO LOAD OVERLAY LDN 0 SET SECTOR STD SC STM DRSA+4 SET DISPLAY INDEX LJM IMS INITIALIZE MASS STORAGE SCT2 LDD MA RESTORE PREVIOUS ENTRIES ADN 5 CRD T3 LJM ERR2 *INCORRECT PARAMETER.* *CALL COMPSCA WRT SPACE 4,10 *** WRITE. * WRITE THE CONTENTS OF THE BUFFER TO THE SECTOR CURRENTLY * INDICATED. IF THE KEYBOARD IS NOT UNLOCKED, *INCORRECT * ENTRY.* IS DISPLAYED. WRT COMMAND RJM CLB CHECK FOR LOCKED KEYBOARD RJM CEQ CHECK EQUIPMENT LDC BFMS+WLSF RJM WDS WRITE DATA ENDMS LJM RET RETURN SPACE 4,10 COMMAND TAR SPACE 4,10 ** TAR - TABLE ACCESS ROUTINES. * * THIS CM RESIDENT OVERLAY CONTAINS THE SUBROUTINES REQUIRED * FOR COMMANDS *EJT.*, *FNT.*, *FNTL.*, *FNTLC.*, AND *QFT.* * TO ACCESS THE CMR/NFL TABLES INVOLVED TO READ A FST ENTRY. * * THEY ARE LOADED AT THE END OF THE COMMAND OVERLAY. QUAL PRESET .1 MAX EETL,EFBL,EFLL,EFCL,EITL QUAL * QUAL TARLA EQU CPLA+/PRESET/.1*5 TAR OVERLAY LOAD ADDRESS QUAL * TAR ACROVL TARLA CFA SPACE 4,10 ** CFA - CALCULATE FNT ADDRESS. * * ENTRY (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (T3) = LOCAL FNT POINTER. * * USES CM - CM+4. * * CALL ASD. CFA SUBR ENTRY/EXIT RJM ASD GET FNT ORDINAL LDN LENF COMPUTE FNT NFL ADDRESS (FNTN+NNNN*LENF) STD T0 LDC FNTN STD T3 CFA1 LDD AB+4 RAD T3 SHN -14 NJN CFA2 IF OVERFLOW SOD T0 NJN CFA1 IF MULTIPLY BY LENF INCOMPLETE LDD CP ADN FLSW GET NFL/100B CRD CM LDD CM FORM LWA+1 OF LOCAL FNT AREA SHN 6 ADN 1 STD CM+1 LDD T3 SBD CM+1 MJN CFAX IF LEGAL ORDINAL CFA2 LJM ERR2 *INCORRECT PARAMETER.* CTO SPACE 4,15 ** CTO - CHECK TABLE ORDINAL. * * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE. * (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (T3) = TABLE ORDINAL. * (T1) = MANAGED TABLE IDENTIFICATION CODE. * * USES CM - CM+4. * * CALLS ASD. CTO SUBR ENTRY/EXIT STD T1 RJM ASD ASSEMBLE TABLE ORDINAL LDM TMTP,T1 READ POINTER WORD CRD CM LDD AB+4 CHECK VALID ORDINAL STD T3 SBD CM+2 MJN CTOX IF LEGAL ORDINAL LJM ERR2 *INCORRECT PARAMETER.* RFE SPACE 4,15 ** RFE - READ FST ENTRY. * * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE. * (CA) = ADDRESS OF CHARACTER STRING. * * EXIT (FN - FN+4) = FST ENTRY. * (T3) = FNT ADDRESS. * (EQ) = EST ORDINAL. * * USES CM - CM+4. * * CALLS CFA, CTO, .EJT, .FNT, .QFT. * * MACROS NFA, SFA. RFE4 LDD FN SET EST ORDINAL STD EQ RFE SUBR ENTRY/EXIT LMK PNFL NJN RFE1 IF NOT LOCAL FNT STD T1 RJM CFA CALCULATE FNT ADDRESS NFA T3,R UJN RFE2 READ TABLE ENTRY RFE1 LMK PNFL RJM CTO CHECK TABLE ORDINAL LDM TMTA,T1 STD CM LDD T3 GET ADDRESS OF SPECIFIED ENTRY RJM 0,CM RFE2 ADM TFSI,T1 CRD FN READ FST ENTRY LDD FN+1 ZJN RFE3 IF EMPTY FILE SFA EST,FN ADK EQDE CRD CM READ EST ENTRY LDD CM SHN 21-13 MJN RFE4 IF MASS STORAGE RFE3 LJM ERR2 *INCORRECT PARAMETER.* TFSI INDEX LIST OF INDICES TO FST ENTRY INDEX PNFL,FSTL INDEX PFNT,FSTG INDEX PQFT,ENTQ INDEX PEJT,SCHE INDEX PEJT+1 TMTA INDEX LIST OF MANAGED TABLE ACCESS ROUTINES INDEX PFNT,.FNT INDEX PQFT,.QFT INDEX PEJT,.EJT INDEX PEJT+1 TMTP INDEX LIST OF MANAGED TABLE POINTER ADDRESSES INDEX PFNT,FNTP INDEX PQFT,QFTP INDEX PEJT,EJTP INDEX PEJT+1 QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT IFP$ EQU 0 GENERATE *IFP* REMOTE CODE .OFFS SET *O-*L *CALL COMPGFP SPACE 4,10 ACROVL ERRNG EPFW-TARLA-/PRESET/TARL*5 *TAR* OVERFLOWS ERROR PROC. * SINCE THE IFP CODE FOR COMPGFP IS EXECUTED DURING PRESET, * THE LOCATIONS TO BE PRESET MUST BE REFERENCE VIA THE ORIGIN * COUNTER, RATHER THAN THE LOCATION COUNTER (WHICH WAS USED TO * DEFINE THE SYMBOLS *EJTB*, *FNTB*, AND *QFT*). * TO ACCOMPLISH THIS, THE PRESET CODE IS ASSEMBLED USEING A * DIFFERENT QUALIFIER. THIS NECESSITATES REDEFINING THE * ASSEMBLY OPTION TAGS AS WELL. USE PRESET QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT EJTB EQU /TAR/EJTB+/TAR/.OFFS FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT FNTB EQU /TAR/FNTB+/TAR/.OFFS QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT QFTB EQU /TAR/QFTB+/TAR/.OFFS IFP$ EQU 0 GENERATE *IFP* REMOTE CODE IFP HERE ASSEMBLE *IFP* REMOTE CODE HERE USE * SPACE 4,10 OVERFLOW /PRESET/OVL QUAL * RESUME UNQUALIFIED DEFINITIONS OVERLAY /PRESET/OVL,(LISTING FILE COMMAND PROCESSORS.) OVL SUBR ENTRY/EXIT UJN OVLX RETURN SPACE 4,10 *** THE FOLLOWING COMMANDS ARE USED TO PRINT THE CONTENTS OF THE * DISK SECTOR AND MANIPULATE THE LISTING FILE. CLF SPACE 4,10 *** LISTING.CCCCCCC. * SET THE LISTING FILE NAME TO CCCCCCC. THE LISTING FILE IS * ORIGINALLY *OUTPUT*. CLF COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE RJM ASN GET NAME LDD BA SHN 6 ADD RA SHN 6 ADD BA+1 CWD FN WRITE NAME TO BUFFER LDN 2*2+1 LJM SCP START CPU OUT SPACE 4,10 *** OUT. * RELEASE THE LISTING FILE TO THE OUTPUT QUEUE. OUT COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE LDN 3*2+1 LJM SCP START CPU PRT SPACE 4,10 *** PRINT. * PRINT THE CURRENT EQUIPMENT, TRACK, SECTOR, TRT INFORMATION, * AND THE CONTENTS OF THE SECTOR. * * * PRINT.NNNN. * PRINT THE NEXT NNNN (MUST BE AN OCTAL NUMBER) SECTORS START- * ING WITH THE CURRENT SECTOR. PRINTING WILL STOP AT EOI IF * ENCOUNTERED BEFORE NNNN SECTORS HAVE BEEN PRINTED. ONE PAGE * OF OUTPUT IS PRODUCED FOR EACH SECTOR PRINTED. PRT COMMAND LDI CA ZJN PRT1 IF NUMBER NOT ENTERED RJM ASD CONVERT NUMBER LDD AB+4 SBN 1 PRT1 STD FN SAVE COUNT PRT2 RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE RJM SNT GET CONTENTS OF TRT STD AB LDD CM+4 STD AB+1 LDM DLSA STD AB+3 LDM DLSA+1 STD AB+4 LDD TK SHN -2 RAD AB+4 SHN -14 RAD AB+3 LDM BFMS STD T5+3 (=CM) LDM BFMS+1 STD T5+4 (=CM+1) LDD BA SHN 6 ADD RA SHN 6 ADD BA+1 CWD T5 WRITE OUT EQUIPMENT AND CONTROL BYTES ADN 1 CWD AB ADN 1 CWM BFMS+2,HN WRITE OUT CONTENTS OF BUFFER RJM WCC RESET (CM - CM+4) SOD FN DECREMENT COUNT MJN PRT3 IF DONE RJM SNS SET NEXT SECTOR ZJN PRT3 IF AT EOI LDN 1*2+1 SET FUNCTION CODE STD CM+4 LDD RA SHN 6 ADN D CWD CM RJM RSB READ NEXT SECTOR MJN PRT4 IF ERROR LJM PRT2 LOOP PRT3 LDN 1*2+1 LJM SCP START CPU PRT4 LJM RET RETURN RET SPACE 4,10 *** RETURN. * RETURN THE LISTING FILE. RET COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE LDN 6*2+1 LJM SCP START CPU REW SPACE 4,10 *** REWIND. * REWIND THE LISTING FILE. REW COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE LDN 4*2+1 LJM SCP START CPU SID SPACE 4,10 *** SETID.NN. * SET THE ID FOR THE OUTPUT FILE TO NN. SID COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE RJM ASD CONVERT ID LDD BA SHN 6 ADD RA SHN 6 ADD BA+1 CWD AB LDN 7*2+1 LJM SCP START CPU SKL SPACE 4,10 *** SKIPL. * POSITION TO THE END OF THE LISTING FILE. SKL COMMAND RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE LDN 5*2+1 LJM SCP START CPU SPACE 4,10 COMMAND SPACE 4,10 OVERFLOW /PRESET/OVL QUAL * OVERLAY /PRESET/OVL,(LABEL/TRT RECONSTRUCTION PROCESSORS.) OVL SPACE 4,10 ** PRESET THE OVERLAY BY LOADING THE AUXILIARY COMMAND * PROCESSOR SUBROUTINES TO CM. OVL SUBR ENTRY/EXIT LDN /PRESET/LRRL SET OVERLAY LENGTH STD T1 LDD AB+3 SAVE CM ADDRESS STM /PRESET/TCRO+LRRN*5+2 LDD AB+4 STM /PRESET/TCRO+LRRN*5+3 LDD AB+3 WRITE OVERLAY TO CM SHN 6 ADD RA SHN 6 ADD AB+4 CWM /PRESET/LRR,T1 LDD T1 UPDATE CM ADDRESS RAD AB+4 SHN -14 RAD AB+3 UJN OVLX EXIT SPACE 4,10 *** THE FOLLOWING COMMANDS CAN BE USED TO RECONSTRUCT THE LABEL * AND TRT OF A DEVICE THAT HAS LOST THEM. THE COMMANDS WILL * NOT NECESSARILY RECOVER THE DEVICE CORRECTLY. THE COMMANDS * (IN APPROXIMATE ORDER OF USE) ARE - * * BEGINR - BEGIN RECOVERY BY INITIALIZING TABLES; * RECOVER - SCAN DEVICE TO FIND FILES; * BLDTRT - CHECK FOR LINKAGE ERRORS AND BUILD A SECTOR OF * THE TRT FOR THE LABEL TRACK. * NEXTAT - FIND AND READ NEXT AVAILABLE TRACK. * (A TRACK WITH NO LINKAGE IN THE RECOVERY TABLES.) * NEXTSS - FIND AND READ NEXT TRACK IN THE RECOVERY TABLE * THAT BEGINS WITH A SYSTEM SECTOR. * SETTRT - MODIFY POINTERS FOR RECOVER COMMAND. * SETRW - MODIFY RECOVERY DATA FOR A TRACK. * BLDSL - CREATE LABEL SECTOR FOR DEVICE. * * THESE COMMANDS USE A RECOVERY TABLE IN CM TO KEEP TRACK OF * LINKAGES. THE TABLE IS INITIALIZED BY THE *BEGINR.* COMMAND. * THE OTHER COMMANDS USE OR MODIFY THE DATA IN THE TABLE TO * EFFECT DEVICE RECOVERY. THE TABLE IS FORMATTED AS FOLLOWS. * * *T,MST IMAGE OF MST FOR DEVICE. (MSTL WORDS LONG) * * *T,SSDW *FNSS* WORD FROM SYSTEM SECTOR OF CURRENT CHAIN. * *FTSS* WORD. * *DTSS* WORD. (THREE WORDS FOR FNSS....DTSS) * * *T,RCPW 12/FT, 12/PT, 12/SC, 24/UNUSED (RECOVER POINTERS) * * FT - FIRST TRACK OF CURRENT CHAIN. * PT - PREVIOUS TRACK IN CHAIN. * SC - CURRENT SECTOR FOR EOI SEARCH AFTER ERROR. * * *T,ICPW 12/FT, 12/PT, 36/UNUSED (INDIRECT CHAIN POINTERS) * * FT - FIRST TRACK OF INDIRECT CHAIN IN *BLDIC* COMMAND. * PT - PREVIOUS TRACK OF INDIRECT CHAIN. * * *T,BSPW 12/TT, 12/SC, 12/FT, 12/NF, 12/TL (BUILD POINTERS) * * TT - DESTINATION TRACK FOR WRITING TRT. * SC - SECTOR FOR CURRENT PIECE OF TRT. * FT - FIRST TRACK FOR CURRENT PIECE OF TRT. * NF - DAF FILE COUNT. * TL - TRT LENGTH FROM MST. * * * TWO RESERVED WORDS FOLLOW. * * *T,TRCT BEGINNING OF TRACK RECOVERY TABLE. * (MSTL+10 WORD FROM BEGINNING OF MST AREA.) * (ONE WORD PER TRACK AS FOLLOWS) * *T 6/TY, 1/RE, 1/SS, 1/FL, 1/, 2/EI, 12/FT, 12/PT, 12/NT, 12/LC * * TY - FILE TYPE FROM SYSTEM SECTOR. * RE - READ ERROR DETECTED IN TRACK. * SS - SYSTEM SECTOR IN TRACK AT OTHER THAN SECTOR ZERO. * FL - FLAWED TRACK INDICATOR. * EI - EOI STATUS FOR TRACK. * =0 - NO EOI. * =1 - NORMAL EOI IN TRACK. * =2 - EOI, WRITTEN BY IMS. * FT - FIRST TRACK OF CHAIN LINKED TO THIS TRACK. * PT - FIRST TRACK ENCOUNTERED LINKED TO THIS ONE. * ((PT) = CURRENT TRACK IF START OF FILE) * NT - NEXT TRACK OR EOI SECTOR NUMBER. * LC - LINKAGE COUNT. (NUMBER OF TRACKS LINKED * TO THIS TRACK.) SPACE 4,10 ** LINKAGE RECOVERY DEFINITIONS. * * THE FOLLOWING SYMBOLS ARE USED TO REFERENCE THE * CM RECOVERY TABLES. QUAL SSDW EQU MSTL+0 SYSTEM SECTOR DATA WORDS RCPW EQU MSTL+3 RECOVERY POINTER WORD ICPW EQU MSTL+4 INDIRECT CHAIN RECOVERY POINTER WORD BSPW EQU MSTL+5 BUILD SECTOR POINTER WORD * MSTL+6 SPARE * MSTL+7 SPARE TRCT EQU MSTL+10 TRACK RECOVERY TABLE CRAL EQU TRCT+4077 CM RECOVERY AREA LENGTH QUAL * SPACE 4,10 ** DIRECT CELL USAGE CONVENTIONS. * * (FN - FN+4) = RECOVERY POINTERS. * = (RCPW) FOR BEGINR, NEXXTAT, NEXTSS, RECOVER. * = (ICPW) FOR BLDIC. (NOT YET IMPLEMENTED) * = (BSPW) FOR BLDSL, BLDTRT. * (AB - AB+4) = RECOVERY WORD FOR CURRENT TRACK. BTR SPACE 4,10 *** BEGINR. * BEGIN TRACK RECOVERY FOR THE CURRENT SELECTED EQUIPMENT BY * RESERVING AND CLEARING THE CM RECOVERY TABLES. * THE EQUIPMENT TO BE RECOVERED MUST BE REMOVABLE AND UNLOADED. * THE MST IN CMR FOR THE SELECTED EQUIPMENT IS USED TO * INITIALIZE THE MST FOR THE LABEL TRACK BUILT BY THE RECOVERY * COMMANDS. BE SURE THE EQUIPMENT MNEMONIC IN THE *E,M* * DISPLAY MATCHES THE PACK TO BE RECOVERED. IF THIS COMMAND IS * USED AGAIN, RECOVERY IS RESTARTED FOR THE CURRENT EQUIPMENT. BTR COMMAND LDD RT NJN BTR2 IF NOT FIRST USE OF *BEGINR.* LDD FL REQUEST STORAGE FOR TABLE STD RT SAVE TABLE ADDRESS ADN CRAL/100B STD AB LDD CP ADN MS1W CWM BTRA,TR * WAITING FOR MEMORY.* BTR1 LDN ZERL REQUEST STORAGE FOR RECOVERY TABLE CRD CM LDD AB STD CM+1 MONITOR RSTM RJM PSS PAUSE LDD AB LMD FL NJN BTR1 IF MEMORY NOT OBTAINED BTR2 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY SFA EST,EQ READ EST ENTRY ADK EQDE CRD CM LDN MSTL SET UP MST SKELTON FOR RECOVERY STD T1 LDD CM+4 GET MST ADDRESS SHN 3 CRM EPFW,T1 RJM MST SET MST AREA LDD RA WRITE MST TO RECOVERY TABLE ADD RT SHN 6 CWM EPFW,T1 LDN ZERL CRD AB CLEAR RECOVERY WORDS CRD FN LDD CP CLEAR MESSAGE ADN MS1W CWD FN BTR3 LDD RA CLEAR RECOVERY TABLE ADD RT SHN 6 ADD T1 CWD FN AOD T1 ADC -CRAL MJN BTR3 IF MORE TO CLEAR LDC 4000-1 SET INITIAL TRACK STD FN RJM /LRR/SRP SAVE RECOVERY POINTERS AOD FN READ FIRST SECTOR STD TK LDN 0 STD SC RJM RSB READ SECTOR TO BUFFER LJM RET RETURN BTRA DATA C* WAITING FOR MEMORY.* MST SPACE 4,10 ** MST - SET MST RECOVERY TABLE. * * ENTRY (EPFW - EPFW+MSTL) = MST IMAGE. * * EXIT MST SET FOR RECOVERY OPERATIONS. * * USES T3. MST SUBR ENTRY/EXIT LDC EPFW+ALGL*5 STD T3 LDC /LSD/FLTK STM 1,T3 LDN 0 STI T3 CLEAR INDIRECT POINTER STM 2,T3 CLEAR PERMITS POINTER STM 3,T3 CLEAR CATALOG TRACK COUNT STM 4,T3 CLEAR *DAT* POINTER .1 SET STLL-ALGL LDN .1*5 RAD T3 LDN 2 STI T3 CLEAR INITIALIZE REQUESTS LDN 0 STM 1,T3 CLEAR ERROR STATUS STM 3,T3 CLEAR DAF USER COUNT LJM MSTX RETURN BLS SPACE 4,20 *** BLDSL. * BUILDS A LABEL SECTOR IMAGE IN THE DATA BUFFER FROM DATA * IN THE CM RECOVERY TABLE. ONCE THE OTHER RECOVERY COMMANDS * HAVE COMPLETED, THE MEMORY CHANGE COMMANDS CAN FILL IN ANY * MISSING DATA. THE BUFFER CAN THEN BE WRITTEN TO DISK WITH * THE WRITE COMMAND. * * NOTE - IF THIS COMMAND IS USED AFTER THE *RECOVER* COMMAND * COMPLETES, THE MST IN THE DATA BUFFER WILL SHOW THE * POINTERS TO THE FIRST TRACK OF THE PERMIT DATA AND INDIRECT * PF CHAIN. SINCE THE *RECOVER* COMMAND IS UNABLE TO FIND THE * CATALOG TRACK CHAIN, THESE POINTERS ARE HELPFUL IN LOCATING * THE CATALOG TRACK CHAIN, WHICH IS ALLOCATED BY *IMS* * IMMEDIATELY PRECEEDING THESE TWO TRACKS. THIS ONLY APPLIES * TO THE INITIAL CATALOG TRACKS. OVERFLOW TRACKS ARE LINKED * THRU THE LAST SECTOR OF ONE OF THE INITIAL TRACKS. BLS COMMAND LDD RT NJN BLS1 IF RECOVERY TABLES NOT PRESENT LJM ERR4 *INCORRECT COMMAND.* BLS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY LDC 3777 SET LINKAGE FOR SYSTEM SECTOR STM BFMS LDN 77 STM BFMS+1 BLS2 LDN ZERL CLEAR SECTOR BUFFER CRM FNSS,ON BLSA EQU *-1 LDN 5 ADVANCE BUFFER ADDRESS RAM BLSA LMC BFMS+2+100*5 NJN BLS2 IF CLEAR INCOMPLETE LDN 2 STD T1 BLS3 LDM BLSB,T1 SET FILE NAME = *LABEL* STM FNSS,T1 SOD T1 PJN BLS3 IF COPY INCOMPLETE LDC SYFT*1S6 SET FILE TYPE STM FNSS+4 LDD EQ SET EQUIPMENT ORDINAL STM FTSS-1 LDN PDTL SET DATE AND TIME CRM DTSS,ON LDN 1 STM NSSS SET NEXT SECTOR STM DTSS SET FLAG STM /LSD/LLSS SET LABEL LEVEL SFA EST,EQ READ EST ENTRY ADK EQDE CRD CM LDD CM+3 SET EQUIPMENT MNEMONIC STM /LSD/E4SS LDN MSTL READ MST FROM RECOVERY AREA STD T1 LDD RA ADD RT SHN 6 CRM /LSD/N4SS,T1 LDM /LSD/N4SS+ALGL*5+1 SET LABEL TRACK AND SECTOR STD TK STM FTSS LDN 0 STD SC LJM RET RETURN BLSB DATA Z*LABEL* BRS SPACE 4,10 *** BLDSTRT. * BUILD NEXT SECTOR OF TRT DATA FOR LABEL TRACK. AFTER LAST * SECTOR IS BUILT, THE POINTERS ARE RESET FOR THE FIRST SECTOR * AGAIN. TRACK AND SECTOR ARE SET FOR *WRITE* COMMAND. * * BLDSTRT.N. * BUILD SECTOR *N* OF TRT DATA FOR LABEL TRACK. (N .GE. 1) * * NOTE IT WILL BE NECESSARY TO MANUALLY GENERATE THE EOI * SECTOR FOR THE LABEL TRACK. BRS COMMAND LDD RT NJN BRS1 IF TABLES NOT ALLOCATED LJM ERR4 *INCORRECT ENTRY.* BRS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY LDN BSPW-RCPW SET POINTER INDEX RAM /LRR/RRPA STM /LRR/SRPA RJM /LRR/RRP RESTORE RECOVERY POINTERS LDD FN NJN BRS2 IF NOT INITIAL ENTRY STD FN+1 LDD RA GET LABEL TRACK FROM MST ADD RT SHN 6 ADN ALGL CRD CM LDD CM+1 STD FN BRS2 LDI CA CHECK PARAMETER ZJN BRS3 IF NO SECTOR SPECIFIED SBN 1R1 MJN BRS4 IF ILLEGAL SECTOR NUMBER STD FN+1 BRS3 AOD FN+1 ADVANCE SECTOR SBN 1 SHN 10 (400B TK/PRU) ADC 4000 STD FN+2 SET STARTING TRACK SBD LT MJN BRS5 IF LEGAL SECTOR BRS4 LJM ERR2 *INCORRECT PARAMETER* * CHECK ALL TRACKS FOR ERRORS. BRS5 RJM CLE CHECK FOR LINKAGE ERRORS RJM BTS BUILD TRT SECTOR LDM BFMS+1 LMC 100 ZJN BRS8 IF SECTOR FULL, NOT END OF TRT * COMPLETE LAST SECTOR OF TRT. LDD TK LPN 3 ZJN BRS7 IF LAST WORD FULL BRS6 LDC 3777 SET UNUSABLE TRACKS AS FLAWED STI T3 AOD T3 LDD RC SHN 1 LMN 1 STD RC AOD TK LPN 3 NJN BRS6 IF NOT END OF WORD LDD RC SAVE TRACK STATUS BYTE STI T3 AOD T3 AOM BFMS+1 INCREMENT SECTOR WORD COUNT BRS7 LDN 0 CLEAR REMAINDER OF LAST SECTOR STI T3 AOD T3 ADC -BFMS-2-100*5 MJN BRS7 IF NOT END OF SECTOR LDN 0 RESET POINTER TO START OVER STD FN * SET POINTERS AND RETURN. BRS8 LDD TK SAVE NEXT TRACK STD FN+2 LDD FN SET DESTINATION ADDRESS STD TK LDD FN+1 SET SECTOR STD SC LDD RA SAVE POINTERS ADD RT SHN 6 ADN BSPW CWD FN LJM RET RETURN BTS SPACE 4,10 ** BTS - BUILD TRT SECTOR. * * BUILD A SECTOR OF TRT FROM RECOVERY TABLE. BTS SUBR ENTRY/EXIT LDD FN+1 SET LINK ADN 1 STM BFMS LDN 0 STD RC STM BFMS+1 LDC BFMS+2 STD T3 LDD FN+2 STD TK * BUILD TRT FROM RECOVERY TABLE. BTS1 RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD LDD AB LPN 10 ZJN BTS2 IF NOT FLAWED TRACK LDC 3777 SET FLAWED TRACK STI T3 UJN BTS4 SET STATUS BTS2 LDD AB+3 STI T3 LDD AB SCN 77 ZJN BTS3 IF NOT FIRST TRACK OF FILE LDC 401 UJN BTS5 SET TRACK STATUS BTS3 LDD AB+3 ZJN BTS5 IF TRACK NOT LINKED BTS4 LDN 1 SET TRACK STATUS BTS5 SHN 21 MERGE STATUS LMD RC SHN 1 STD RC AOD T3 ADVANCE TRACK POINTERS AOD TK LPN 3 NJN BTS6 IF TRT WORD NOT COMPLETE LDD RC STORE TRACK STATUS BYTE STI T3 AOD T3 LDN 0 STD RC AOM BFMS+1 INCREMENT SECTOR WORD COUNT LMC 100 ZJN BTS7 IF SECTOR FULL BTS6 LDD TK LMD LT ZJN BTS7 IF END OF TRT LJM BTS1 PROCESS NEXT ENTRY BTS7 LJM BTSX RETURN CLE SPACE 4,10 ** CLE - CHECK FOR LINKAGE ERRORS. * * VERIFY THAT ALL TRACKS RESERVED HAVE UNIQUE LINKAGE. CLE SUBR ENTRY/EXIT LDC 4000 STD TK CLE1 RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD LDD AB LPN 64 NJN CLE2 IF ERRORS LDD AB+4 SBN 2 MJN CLE3 IF LINKAGE UNIQUE CLE2 LDC CLEA *ERROR IN TRACK STATUS.* LJM ERR OUTPUT MESSAGE CLE3 AOD TK SBD LT MJN CLE1 IF ALL TRACKS NOT CHECKED UJN CLEX RETURN - NO ERRORS CLEA DATA Z*ERROR IN TRACK STATUS.* NAT SPACE 4,10 *** NEXTAT. * LOCATES THE NEXT AVAILABLE TRACK ON THE CURRENT EQUIPMENT, * AND READS THE FIRST SECTOR OF THE TRACK. THE SEARCH BEGINS * AT THE DISPLAYED TRACK POINTER+1. BY RESETTING THE TRACK * POINTER TO TRACK ZERO, AND USING THIS COMMAND, UNRESERVED * TRACKS CAN BE FOUND AND CHECKED FOR BEING PART OF THE * CATALOG TRACK CHAIN OR INDIRECT FILE CHAIN. NAT COMMAND LDD RT NJN NAT1 IF TABLES ALLOCATED LJM ERR4 *INCORRECT ENTRY.* NAT1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY RJM /LRR/RRP RESTORE RECOVERY POINTERS UJN NAT3 ENTER LOOP NAT2 RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD LDD AB+1 CHECK FOR LINK ZJN NAT4 IF TRACK AVAILABLE NAT3 AOD FN STD TK SBD LT MJN NAT2 IF NOT END OF DEVICE SOD TK LDC NATA *END OF EQUIPMENT.* LJM ERR OUTPUT MESSAGE NAT4 STD SC RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS RJM RSB READ SECTOR TO BUFFER LJM RET RETURN NATA DATA Z*END OF EQUIPMENT.* NSS SPACE 4,10 *** NEXTSS. * LOCATES THE NEXT TRACK IN THE RECOVERY TABLE THAT BEGINS * WITH A SYSTEM SECTOR. THE SEARCH BEGINS AT THE DISPLAYED * TRACK POINTER+1. NSS COMMAND LDD RT NJN NSS1 IF TABLES ALLOCATED LJM ERR4 *INCORRECT ENTRY.* NSS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD GUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY RJM /LRR/RRP RESTORE RECOVERY POINTERS UJN NSS3 ENTER LOOP NSS2 RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD LDD AB CHECK FOR SYSTEM SECTOR SCN 77 NJN NSS4 IF SYSTEM SECTOR (FIRST TRACK) NSS3 AOD FN STD TK SBD LT MJN NSS2 IF NOT END OF DEVICE SOD TK LDC NSSA *END OF EQUIPMENT.* LJM ERR OUTPUT MESSAGE NSS4 LDN 0 STD SC RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS RJM RSB READ SECTOR TO BUFFER LJM RET RETURN NSSA DATA Z*END OF EQUIPMENT.* REC SPACE 4,15 *** RECOVER. * RECOVER TRACKS STARTING AT FIRST TRACK OF DEVICE. IF THIS * COMMAND IS USED MORE THAN ONCE SINCE A *BEGINR* COMMAND, IT * CONTINUES RECOVERY BY FINDING THE NEXT SYSTEM SECTOR TRACK. * * RECOVER.X. (X = ANY CHARACTER.) * CONTINUE RECOVERY BY SCANNING FROM CURRENT POSITION TO EOI. * * RECOVERY DATA IS ADDED TO THE TABLE BY SEARCHING FOR TRACKS * THAT BEGIN WITH A SYSTEM SECTOR, AND FOLLOWING THE LINKAGE * TO EOI. ERRORS AND ANOMOLYS ARE FLAGGED. THE INDIRECT CHAIN * IS NOT TRACED. THE DISPLAY IS DROPPED UNTIL AN ERROR * OCCURS, OR UNTIL THE SEARCH COMPLETES. IT IS THEN * REQUESTED AGAIN AS IF A *HOLD* COMMAND HAD BEEN USED. REC COMMAND LDD RT NJN REC1 IF TABLES ALLOCATED. LJM ERR4 *INCORRECT COMMAND.* REC1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY RJM /LRR/RRP RESTORE RECOVERY POINTERS LDI CA CHECK MODE ZJN REC2 IF NO ENTRY SPECIFIED RJM DDS DROP DISPLAY AOD FN+2 ADVANCE TO NEXT SECTOR STD SC LJM REC5 CONTINUE FROM NEXT SECTOR. REC2 RJM DDS DROP DISPLAY * ENTER HERE TO CHECK NEXT TRACK FOR SYSTEM SECTOR. REC3 AOD FN SET TRACK AND SECTOR STD FN+1 STD TK LMD LT NJN REC4 IF NOT END OF EQUIPMENT SOD TK SOD FN LDC RECB *END OF EQUIPMENT.* LJM REC14 REPORT ERROR REC4 LDN 0 STD SC RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD LDD AB+1 NJN REC3 IF TRACK LINKED RJM RSB READ SECTOR TO BUFFER MJP REC13 IF ERROR LDM BFMS CHECK FOR SYSTEM SECTOR SHN 6 ADM BFMS+1 ZJN REC6 IF EOI AT (SC) = 0 LMC 377777 NJN REC3 IF NOT SYSTEM SECTOR RJM /LRR/CSS CHECK SYSTEM SECTOR ZJN REC7 IF NO CHAIN RECOVERY * ENTER HERE TO SCAN FROM CURRENT POSITION TO EOI. REC5 RJM /LRR/SRP SAVE RECOVERY POINTERS RJM /LRR/WSM WRITE STATUS MESSAGE RJM PSS PAUSE FOR SYSTEM RJM /LRR/RRP RESTORE RECOVERY POINTERS RJM SNS SET NEXT SECTOR NJN REC8 IF NOT EOI * CHECK EOI SECTOR. REC6 RJM /LRR/CEI CHECK EOI RJM /LRR/STA SET TABLE ADDRESS CWD AB SAVE TRACK RECOVERY WORD REC7 LJM REC3 LOOP TO FIND NEXT FILE REC8 LDD SC ZJN REC10 IF NEW TRACK RJM RSB READ SECTOR TO BUFFER MJP REC13 IF ERROR LDM BFMS CHECK FOR SYSTEM SECTOR IN TRACK SHN 6 ADM BFMS+1 LMC 377777 NJP REC5 IF NOT SYSTEM SECTOR LDD AB SET SYSTEM-SECTOR-IN-TRACK STATUS SCN 20 LMN 20 STD AB LDC RECC *SYSTEM SECTOR IN TRACK.* LJM REC14 PROCESS ERROR * ADVANCE TO NEXT TRACK. REC10 LDD TK SET FORWARD LINK STD AB+3 LDD FN+1 RESET TRACK STD TK RJM /LRR/STA SET TABLE ADDRESS CWD AB SAVE TRACK RECOVERY WORD LDD AB+3 SET NEW TRACK STD TK RJM /LRR/STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD AOD AB+4 LDD AB+1 NJN REC12 IF TRACK ALREADY LINKED RJM RSB READ SECTOR TO BUFFER MJP REC13 IF ERROR LDM BFMS CHECK FOR BEGINNING OF ANOTHER FILE SHN 6 ADM BFMS+1 LMC 377777 ZJN REC12 IF SYSTEM SECTOR LDD FN SET REVERSE LINKS STD AB+1 LDD FN+1 STD AB+2 LDD TK STD FN+1 LJM REC5 LOOP * TRACK TO BE LINKED IS ALREADY IN USE. REC12 LDC RECD *NEXT TRACK IN USE.* UJN REC14 PROCESS ERROR * PROCESS READ ERROR IN TRACK. REC13 LDD AB SET ERROR STATUS SCN 40 LMN 40 STD AB LDN 0 * TERMINATE PROCESSING. REC14 STD T3 SAVE MESSAGE ADDRESS LDD SC SAVE CURRENT SECTOR STD FN+2 RJM /LRR/SRP SAVE RECOVERY POINTERS RJM /LRR/RDM RESUME DISPLAY MODE LDD T3 LJM ERR REPORT ERROR RECB DATA Z*END OF EQUIPMENT.* RECC DATA Z*SYSTEM SECTOR IN TRACK.* RECD DATA Z*NEXT TRACK IN USE.* SRW SPACE 4,10 *** SETRW.B.NNNN. * CHANGE BYTE *B* OF CURRENT TRACK RECOVERY WORD TO *NNNN*. SRW COMMAND LDD RT NJN SRW1 IF TABLES ALLOCATED LJM ERR4 *INCORRECT ENTRY.* SRW1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES STD RS LDN LRRN OVERLAY CONTROL WORD INDEX RJM LDO LOAD OVERLAY RJM /LRR/STA SET TABLE ADDRESS CRD CM READ TRACK RECOVERY WORD RJM ASD GET BYTE NUMBER LDD AB+4 STD RC SBN 5 PJN SRW2 IF OUT OF RANGE AOD CA ADVANCE CHARACTER ADDRESS RJM ASD ASSEMBLE NEW VALUE LDD AB+4 STM CM,RC RJM /LRR/STA SET TABLE ADDRESS CWD CM SAVE TRACK RECOVERY WORD LJM RET RETURN SRW2 LJM ERR2 *INCORRECT PARAMETER.* STP SPACE 4,10 *** SETTP.NNNN. * SETS RECOVERY TRACK POINTER FOR *RECOVER.*, *NEXTAT.*, * *NEXTSS.*, AND *SETRW.* COMMANDS TO *NNNN*. STP COMMAND LDD RT NJN STP1 IF TABLES ALLOCATED LJM ERR4 *INCORRECT ENTRY.* STP1 ADD RA READ POINTER WORD SHN 6 ADN RCPW CRD CM RJM ASD ASSEMBLE VALUE LDD AB+4 LPC 3777 LMC 4000 STD CM STD TK LDD RA SAVE UPDATED POINTER WORD ADD RT SHN 6 ADN RCPW CWD CM LDN 0 STD SC RJM RSB READ SECTOR TO BUFFER LJM RET RETURN SPACE 4,10 COMMAND TERMINATE COMMANDS LRR SPACE 4,10 ** LRR - LABEL/TRT RECONSTRUCTION SUBROUTINES. * * THE FOLLOWING ROUTINES ARE SAVED IN CENTRAL TO BE LOADED * AT THE END OF THE RIGHT SCREEN PROCESSOR AREA AS NEEDED. LRR ACROVL ACRLA CEI SPACE 4,15 ** CEI - CHECK EOI SECTOR. * * ENTRY (AB - AB+4) = TRACK RECOVERY WORD. * (FN - FN+4) = RECOVERY POINTERS. * * EXIT (A) = 0 IF INDIRECT CHAIN. * RECOVERY POINTERS UPDATED. * * USES T1, CM - CM+4. * * CALLS STA. CEI SUBR ENTRY/EXIT LDD SC STD AB+3 AOD AB SET EOI STATUS LDD SC LMN LS ZJN CEIX IF AT END OF TRACK AOD SC RJM RSB READ SECTOR TO BUFFER ZJN CEI1 IF NO READ ERROR RJM SRP SAVE RECOVERY POINTERS RJM /LRR/RDM RESUME DISPLAY MODE LJM RET RETURN CEI1 LDN 2 STD T1 SOD SC LDM BFMS ADM BFMS+1 NJN CEI3 IF NOT ANOTHER EOI SECTOR CEI2 LDM BFMS+FNEI,T1 CHECK FOR FILENAME *IMS* LMM CEIB,T1 NJN CEI3 IF NOT CATALOG/PERMIT/DATA TRACK SOD T1 PJN CEI2 IF CHECK NOT COMPLETE AOD AB SET IMS EOI STATUS CEI3 LDN 0 FORCE EOI STATUS FOR *SNS* STM BFMS STM BFMS+1 LJM CEIX RETURN CEIB DATA Z*IMS* CSS SPACE 4,15 ** CSS - CHECK SYSTEM SECTOR. * * ENTRY (AB - AB+4) = TRACK RECOVERY WORD. * (FN - FN+4) = RECOVERY POINTERS. * * EXIT (A) = 0 IF INDIRECT CHAIN. * RECOVERY POINTERS UPDATED. * * USES T1, CM - CM+4. * * CALLS STA, ERR. CSS SUBR ENTRY/EXIT LDD RA READ MST RECOVERY AREA ADD RT SHN 6 ADN ALGL CRD CM ADN SSDW-ALGL SAVE FNT/FST/DATE/TIME CWM FNSS,TR LDD FN SET LINKAGE STD AB+1 STD AB+2 LDM FNSS+4 SET FILE TYPE SHN -6 STD T1 SHN 6 RAD AB LDD T1 LMN SYFT NJN CSSX IF NOT SPECIAL FILE LDN 2 STD T1 CSS1 LDM FNSS,T1 CHECK FOR FILENAME *LABEL* LMM CSSA,T1 NJN CSS2 IF NOT LABEL SECTOR SOD T1 PJN CSS1 IF CHECK NOT COMPLETE LDN 1 ALGL BYTE POINTER UJN CSS6 SAVE TRACK CSS2 LDN 2 STD T1 CSS3 LDM FNSS,T1 CHECK FOR FILENAME *DATA* LMM CSSB,T1 NJN CSS4 IF NOT INDIRECT CHAIN SOD T1 PJN CSS3 IF CHECK NOT COMPLETE LDN 0 ALGL BYTE POINTER UJN CSS6 SAVE TRACK CSS4 LDN 2 STD T1 LDM FNSS+3 LMM CSSC+3 SCN 77 NJN CSS7 IF NOT PERMIT CHAIN CSS5 LDM FNSS,T1 CHECK FOR FILENAME *PERMIT* LMM CSSC,T1 NJN CSS7 IF NOT PERMIT CHAIN SOD T1 PJN CSS5 IF CHECK NOT COMPLETE LDN 2 ALGL BYTE POINTER * SAVE TRACK IN PROPER *ALGL* BYTE. CSS6 STD T1 LDD TK SAVE TRACK POINTER STM CM,T1 LDD RA ADD RT SHN 6 ADN ALGL CWD CM RJM SRP SAVE RECOVERY POINTERS LDD T1 ZJN CSS7 IF INDIRECTS LMN 1 NJN CSS7 IF NOT LABEL RJM RDM RESUME DISPLAY MODE LDC CSSA *LABEL* LJM ERR OUTPUT MESSAGE CSS7 LJM CSSX EXIT CSSA DATA Z*LABEL* CSSB DATA Z*DATA* CSSC DATA Z*PERMIT* RDM SPACE 4,10 ** RDM - RESUME DISPLAY. * * RESETS PARAMETERS AND REQUESTS DISPLAY. * * USES T3. * * CALLS CSB, RDC, MDC. RDM SUBR ENTRY/EXIT LDD MA SAVE DISK DATA CWD T3 RJM RDC REQUEST DISPLAY CHANNEL RJM CSB CLEAR SCREEN BUFFER LDD MA RESTORE DISK DATA CRD T3 UJN RDMX RETURN RRP SPACE 4,10 ** RRP - RESTORE RECOVERY POINTERS. * * ENTRY (TK) = CURRENT TRACK. * * EXIT (AB - AB+4) = TRACK RECOVERY WORD. * (FN - FN+4) = RECOVERY POINTERS. RRP SUBR ENTRY/EXIT LDD RA ADD RT SHN 6 RRPA ADN RCPW * ADN ICPW IF INDIRECT CHAIN RECOVERY * ADN BSPW IF GENERATION OF TRT (BLDSTRT.) CRD FN RJM STA SET TABLE ADDRESS CRD AB READ TRACK RECOVERY WORD UJN RRPX RETURN SRP SPACE 4,10 ** SRP - SAVE RECOVERY POINTERS. * * ENTRY (TK) = CURRENT TRACK. * (AB - AB+4) = TRACK RECOVERY WORD. * (FN - FN+4) = RECOVERY POINTERS. * * EXIT WORDS STORED IN CM RECOVERY AREA. SRP SUBR ENTRY/EXIT RJM STA SET TABLE ADDRESS CWD AB SAVE TRACK RECOVERY WORD LDD RA SAVE RECOVERY PARAMETERS ADD RT SHN 6 SRPA ADN RCPW * ADN ICPW IF INDIRECT CHAIN RECOVERY * ADN BSPW IF GENERATION OF TRT (BLDSTRT.) CWD FN UJN SRPX RETURN STA SPACE 4,10 ** STA - SET TABLE ADDRESS. * * EXIT (A) = CM ADDRESS FOR CURRENT TRACK RECOVERY WORD. STA SUBR ENTRY/EXIT LDD RA ADD RT SHN 6 ADD TK ADC TRCT-4000 UJN STAX RETURN WSM SPACE 4,10 ** WSM - WRITE STATUS MESSAGE. * * WRITES MESSAGE TO MS1W FOR RECOVERY STATUS. WSM SUBR ENTRY/EXIT LDD EQ SET EST IN MESSAGE SHN -6 ADC 2RQ0 STM WSMA+5 LDD EQ RJM C2D CONVERT TO DISPLAY STM WSMA+6 LDD FN SET TRACK POINTER IN MESSAGE SHN -6 RJM C2D CONVERT TO DISPLAY STM WSMA+11 LDD FN RJM C2D CONVERT TO DISPLAY STM WSMA+12 LDD FN+1 SET CURRENT TRACK IN MESSAGE SHN -6 RJM C2D CONVERT TO DISPLAY STM WSMA+15 LDD FN+1 RJM C2D CONVERT TO DISPLAY STM WSMA+16 LDN ZERL CRD CM LDD CP WRITE MESSAGE TO MS1W ADN MS1W CWM WSMA,TR CWD CM SET EOL LJM WSMX RETURN WSMA DATA 30H READING EQXXX TP=XXXX CT=XXXX SPACE 4,10 ACROVL END OF OVERLAY ERRNG MACRL-/PRESET/LRRL *LRR* OVERFLOWS DISPLAY OVL AREA SPACE 4,10 OVERFLOW /PRESET/OVL QUAL * SPACE 4,10 QUAL .L EQU .N LAST OVERLAY LETTER MCMDL EQU /PRESET/.MCMDL MAXIMUM COMMAND PROCESSOR LENGTH TCMTL EQU /PRESET/.CMTL TOTAL CM REQUIRED FOR RESIDENT OVLS SPACE 4,10 ERRNG EPFW-CPLA-MCMDL*5 COMMAND(S) OVERFLOW ERROR PROCESSOR DDF TTL DDF - DISPLAY DISK FILE. END