Digital PDFs
Documents
Guest
Register
Log In
AH-F965A-MC
May 1983
251 pages
Original
12MB
view
download
OCR Version
10MB
view
download
Document:
CZRJOA0 RP07 PERF EXER MAY 1983 bw
Order Number:
AH-F965A-MC
Revision:
000
Pages:
251
Original Filename:
CZRJOA0__RP07__PERF_EXER__AH-F965A-MC__MAY_1983_bw.pdf
OCR Text
PERF EXER CZRJOARO AH-F965A-MC cm;k;;::B FICHE 2 OF 2 veoe 1N usa 1983 BDBEB 1 B SEQ 0001 REM B IDENTIFICATION PRODUCT CODE: AC=F964A=-M( PRODUCT NAME: CZRJOAO RPOQ7 PERF EXER PRODUCT DATE: JANUARY 1, MAINTAINER: CX DIAGNOSTIC ENGINEERING AUTHOR: MIKE 1983 LEAVITT (HE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. NO RESPONSIBILITY IS ASSUMED FOR SOF TWARE ON EQUIPMENT THAT 1S NOT AFFILJATED COMPANIES. COPYRIGHT (C) THE FOLLOWING ARE DIGITAL DEC THE USE SUPPLIED OR BY RELIABILITY OF DIGITAL OR ITS 1983 BY DIGITAL EQUIPMENT CORPORATION TRADEMARKS OF PDP DECUS DIGITAL EQUIPMENT CORPORATION: UNIBUS DECTAPE MASSBUS C ¥4 RJOAQ RPO7 PERF EXER MACRO V04.00 1-,AN-83 12:06:52 PAGE us ER DOCUMENTATION CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 2 USER DGCUMENTATION .REM & 1. CONTENTS ABSTRACT 1.1 2. REQUIREMENTS 2.1 2.2 2.3 3. 4 S 3.6 . 3.7 3.8 3.9 4. LOADING THE PROGRAM STARTING ADDRESSES PROGRAM CONTROL SWITCH OPTIONS PASS/TEST TERMINATION 3.5.1 PASS TERMINATION 3.5.2 TEST TERMINATION RUN_TIME 3.6.1 DATA TRANSFER MODE 3.6.2 SEEK VERIFICATION MODE DUAL PORT OPERATJION XxDP, ACT11, APTT APT ENVIRONMENTAL CONTROLLiNG THE 4.1 ) EQUIPMENT MEDIA PRELIMINARY PROGRAMS OPERATING PROCEDURE 3.1 ¢ .3 % GENERAL DOCUMENT NOTES 4.2 PARAMETERS 4.1.1 PROGRAM CONTROL PARAMETERS 4.1.2 (HANGE DEVICE ADDRESS KEYBOARD COMMANDS PERFORMANCE 5.1 5.2 4.2.1 4.2.2 4.2.3 4.2.4 'T' D' 'S' ‘W' COMMAND COMMANL COMMAND (COMMAND 4.2.6 "WT*® COMMAND (OMMAND PERFORMANCE SUMMARY TYPEQUT EXPLANATION HARD/SOFT ERROR DEF INITIONS 5.2.1 HARD ERRORS SOFT ERRORS DATA CHECKING & ERROR RECOVERY 6.1 6.2 6.3 7. °R' SUMMARY TYPEOQUT 5.2.2 6. DEFINITIONS PROGRAM 4.2.5 5. TABLE DATA BUFFER COMPAR]SON VERIFICATION OF DATA WRITTEN BAD ADDRESS FLAGGING ERRO R MESSAGES SEQ 0002 CIZRJOAD RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 2-1 USER DOCUMENTATION 7.1 7.2 8. PROGRAM DESCRIPTION 8.1 8.2 8.3 8.4 9. ERROR DESCRIPTION LINES DETAIL ERROR LINES HOW THE PROGRAM OPERATES DUAL PORT QOPERATION SELELTION OF OPERATION VARIABLES DATA PATTERNS RP SOF TWARE DRIVER DOCUMEN? SEQ 0003 LY SEQ 0004 CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 3 USER DOCUMENTATION O PERFORM ¢ NTROLLER. ISK DRIVES THE PERFORMANCE EXERCISER PROGRAM WILL EXERCI AS EITHER SINGLE OR DUAL PORT UNITS. DUAL POR BY LOADING AND RUNNING THE PROGRAM FROM BOTH CON ;SE'ng?seg WILL EXERCISE T0 OBTAIN INTERACTIVE A MIXED SYSIEM OF P ° (=) b+ > —n THAT THE DRI RATE AND SEE m Z2-—o003 ASSBUS e=C SUBSYSTEM, IN ADDITION ON THE SUBSY M THE RPO7 PE AN INTERACT T -ABSTRA(T —O0W 1- DUAL TESTING, OPERATIONS ON THE MULTI-DRIVE CONF IGURATIONS ARE OVERLAPPED (OTHER DRIVES ARE PERFORMING SEEK/SEARCH OPERATIONS WHILE ONE DRIVE 1S PERFORMING A DATA TRANSFER). OPERATIONS AMONG THE DRIVES ARE OPTIMIZED SO THAT A HIGH SUBSYSTEM DATA TRANSFER RATE OR A HIGH POSITIONING OPERATION RATE IS MAINTAINED. THE PERFORMANCE OF EACH DRIVE IS MONITORED BY THE PROGRAM. DRIVE EXCEEDS A PRESET NUMBER OF ERRORS IN ANY OF If A SEVERAL CATEGORIES, THAT DRIVE 1S AUTOMATICALLY DEASSIGNED. (THE OPERATOR MAY OVERRIDE THE AUTOMATIC DEASSIGNMENT FEATURE.) THE PROGRAM REPORIS PERFORMANCE STATISTICS FOR EACH DRIVE BEING EXERCISED ON REQUEST FROM THE OPERATOR OR AUTOMATICALLY AT AN INTERVAL DETERMINED BY THE OPERATOR. ALL DATA TRANSFER COMMANDS EXCEPT WRITE HEADER & DATA AND WRITE CHECK HEADER & DATA ART USED., RECALIBRATE AND READ-IN PRESET COMMANDS ARE USED AT STARTUP AND DRIVE INITIALIZATION. RECALIBRATE, OFFSET, AND RETURN=-TO-CENTERLINE COMMANDS ARE USED DURING ERROR RECOVERY. THE DATA TRANSFER COMMANDS ARE SELECTED RANDOMLY EXCEPT FOR THE WRITE CHECK COMMANDS. THE WRITE CHECK COMMANDS ARE USED TO VERIFY A PREVIOUS WRITE OPERATION. THUS, WHEN A WRITE COMMAND IS SELECTED, ESSHRQ;A WRITTEN IS VERIFIED BY THE APPROPRIATE WRITE CHECK DEPENDING UPON WHETHER THE PROGRAM HAS SEEN LOADED VIA APT AUTOMATI( MODE OR APT DUMP MODE WILL DETERMINE WHETHER: PROGRAM/OPERATOR COMMUNICATJONS ARE THROUGH THE KEYBOARD, DYNAMIC PROGRAM QOPTIONS ARE SELECTED VIA SWITCH REGISTER SETTINGS AND ERRORS ARE REPORTED ON THE CONSOLE TERMINAL. 1.1 GENERAL DOCUMENT NOTES A. IN REFERENCE TO ALL NUMBERS IN THIS DOCUMENTION. TO INDICATE THE BASE OF A NUMBER LARGER THAN SEVEN. A PERIOD(.) WILL FOLLOW THE NUMBER TO INDICATE DECJMAL OR NO PERIOD WILL FOLLOW THE NUMBER TO INDICATE OCTAL. A DOUBLE PERIOD(. INDICATES OCTAL. DECIMAL. JF .) THE NUMBER OCCURS AT THE END OF INDICATES DECIMAL AND ALSO, ANY REFERENCES A SINGLE TO TIME ARE A SENTENCE, PERIOD( .) ALWAYS IN CIRJOAQ RPO7 PERF ENER MACRO VO0&4.00 1=-JAN=B3 12:06:52 PAGE 3-1 USER DOCUMENTAT JON SEa 0005 REQUIREMENTS 2.1 EQUIPMENT PDP=-11 PROCESSOR 20K MEMORY KWil=L OR KW11=P {{OC(K PROGRAM LOADING DEVICE TERMINAL RH11 OR RH70 CONTROLLER 1 10 8 DISK DRIVES (RPO7'S) 2.2 MEDIA THE PERFORMANCE FXERC!ISER PROGRAM REQUIRES FORMATIED DIoK PACKS GENERATED BY THE RPQ? FORMATTER PROGRAM (ISSFMT). THE PACKS MUST BE FORMATTED IN 32 SECTOR (16 BIT) MODE; THE ALTERNATE (30. SECTOR - 18 BIT ) MODE IS NOT SUPFORTTED. 2.3 PREL IMINARY PROGRAMS RPO7 FRONT-END TEST RPO7 FUNCTIONAL TEST OPERATING PROCEDURE 3.1 LOADING THE PROGRAM THE PROGRAM MAY BE LOADED BY EITHER OF THE FOLLOWING MEDIA: PAPER TAPE, USING THE STANDARD PAPER TAPE PROCEDURE .XXDP MEDIA, USING ANY XXDP DEVICE 3.2 STARTING ADDRESSES 200 - START ADDRESS, ALL SWITCHES CLEAR (SEE SECTION 3.4) WHEN THE PROGRAM IS STARTED, A DATA PATTERN WILL BE WRITTEN ALL ON-LINE DRIVES IN A SEQUENTIAL SEEK MODE. UPON COMPLETION THE WRITE, THE PROGRAM GOES INTG A TESTING MODE. 204 - RESTART ADDRESS, THE ABILITY TO THE RESTART ADDRESS PROVIDES THE OPERATOR WITH (HANGE THE DEFAULT RP/RH ADDRESSES 1.2), ANY PROGRAM PARAMETERS (SEE SECTION DR]VE LIMIT PARAMETERS (SEE SECTION 4.2). 3.3 PROGRAM (ONTROL &.1) (SEE OR SECTION CHANGE SEQ 0006 €z R JOAQ RPO7 PERF EXER MACRO Vv04.00 1-JAN-B83 12:06:52 PAGE 3-2 S t R DOCUMENTATION PROVIDED THE PROGRAM HAS BEEN LOADED AND STARTED VIA THE APT DUMP MODE OR THE DIAGNOSTIC IS RUNNING IN STAND ALONE PROCESSOR/DRIVE OPERATIONS ARE INITIATED AND CONTROLLED BY ~EYBOARD (OMMANDS AND SWITCH REGISTER SWITCH SETTINGS. HOWeVER, IF THE PROGRAM IS LOADED VIA APT SCRIPT MODE ALL SETUP AND SWITCH REGISTER SETTINGS WILL BE PROVIDED THROUGH TWE APT E TABLE. TYPEOUTS FROM THE USER DJAGNOSTIC MAY OR MAYNOT BE INHIBITED aigEgEéstg$ON WHETHER OR NOT THE APPROPRIATE BIT IN THE E TABLE SWITCH OPTIONS 1F THE PROGRAM S BEING RUN ON A SWITCHLESS PROCESSOR THE PROGRAM WILL DETERMINE THAT THE HARDWARE SWITCH REGISTER IS NOT PRESENT AND WILL USE A 'SOFTWARE® SWITCH REGISTER. THE °'SOFTWARE' SWIT(H REGISTER IS LOCATED AT LOCATION 176 . THE SETTINGS OF THE ‘'SOF TWARE' SWITCHES ARE CONTROLLED THROUGH A KEYBOARD ROUTINE WHICH IS CALLED BY TYPING A 'CONTROL G'. THE PROGRAM WILL RECOGNIZE THE °CONTROL G' AT ANY TIME EXCEPT WHEN THE PROGRAM [S IN KEYBOARD ENTRY MODE, OR IS AT A HIGHER PRIORITY PROCESSING AN DRIVE INTERRUPT, THE 'SOF TWARE' SWITCH VALUES ARE ENTERED AS AN OCTAL NUMBER IN RESPONSE TO THE PROMPT FROM THE SWITCH ENTRY ROUTINE: *SWR = NNNNNN NEW =' EACH TIME SWITCH SETTINGS ARE ENTERED, THE ENTIRE SWITCH REGISTER IMAGE MUST BE ENTERED, LEADING ZEROS ARE NOT REQUIRED. 'RUBQUT’ gu?TE502L$35 U' FUNCTIONS MAY BE USED TO CORRECT TYPING ERRORS DURING ON PROCESSORS WITH HARDWARE SWITCH REGISTERS, THE *SOF TWARE' SWITCH REGISTER MAY BE USED, IF THE PROGRAM fINDS ALL 1°S IN THE SWITCHES. ALL SWITCH REGISTER REFERENCES WILL BE TO THE 'SOFTWARE' REGISTER AND THE PROCEDURES DESCRIBED ABOVE MUST BE FOLLOWED. SW<15>=1 SW<14> SW<id>=1 SW<12> SW<1 1> SW<10>=1 SW<Q9>=1 Sw<09> SW<08>=1 SW<07>=1 SW<06>=1 SW<05>=1 SW<04>=1 SW<03>=1 HALT ON ERROR NOT USED 1N §81T ERROR TYPEOQUT NOT USED NOT USED BELL CON ERROR CHANGE END OF PASS 10 1/4 Of NORMAL NOT USED INHIBIT END OF PASS MESSAGES DISPLAY ALL DATA COMPARE ERRORS DO NOT ALTER THE CURRENT OPERATION PARAMETERS PARTJAL REGISTER DISPLAY IF ERROR; DO NOT DISPLAY ECC CORRECTION RESULTS HIBIT MAXIMUM ERROR COUNT CHECK; DO NOT DEASSIGN IVES WHEN END OF TEST 1S REACHED SPLAY THE SECTOR IN ERROR (BEFORE RETRY ATTEMPTS) *DCK*, °'DTE', OR 'WCF' ERRORS OR AFTER THE 28TH TRY IF UNCOPRECTABLE 'DCK*® ERROR — DO D 3.4 ATA COMPARE ERRORS & SW<07> SET, DISPLAY REST Sw<02»>=1 FER BI1 SUBSYSTEM STATUS TYPEOUT DURING STARTUP H CIZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 3-3 1 SEQ 0007 USER DOCUMENTATION INHIB]T PERFORMANCE REPORT AFTER SPECIFIED TIME PROMPT *WRITE ANYWHERE' QUESTION DURING AUTO TEST MODE SW<O1>=1 SW<00>=1 3.5 INHIB]IT DATA COMPARE AFTER READ COMMAND, W/0 ERROR READ ONLY MODE PASS/TEST TERMINATION A PASS IN RANDOM 'T' COMMAND MODE OR SEQUENTIAL 'T' COMMAND MODE IS DETERMINED BY EITHER BITS READ OR SEEKS PERFORMED. THE NUMBER Of BITS OR SEEKS RFQUIRED FOR A PASS IS DERIVED FROM EITHER THE SOFT ERROR RATE SPECIFICATION OR THE SEEK ERROR RATE SPECIFICATION. THE SOFT ERROR SPECIFICATION FOR THE RP DRIVE ERROR (NON=DISK RELATED) FOR THE 90X CONFIDENCE THE LEVEL) 1 THAN 1 _SOFT IS NO MORE THAN 1 SEEK LEVEL) SEEK ERROR SPECIFICATION FOR THE RP DRIVE ERROR IN IS NO MORE IN 1 X 10%10 BITS READ. X 10%6 SEEKS. (SEE SECTION 3.5.1 (SEE SECTION 3.5.1 FOR THE 90% CONFIDENCE A PASS IN ‘W' OR °'R' C(OMMAND MODE IS DETERMINED DISK ADDRESS LIMITS SETUP BY THE OPERATOR. 3.5.1 BY THE MAXIMUM PASS TERMINATION END OF PASS FOR A SINGLE DRIVE IN THE RANDOM ‘T' COMMAND MODE OR SEQUENTIAL 'T° CONDITIONS. A. COMMAND MODE, IS DETERMINED BY ONE OF IF PARAMETER 'ENDING' IS 1, END OF PASS OCCURS WHEN THE DRIVE HAS READ 4,128 x 10%9 BITS (2.58X 10%8 WORDS). IF__Sw09=1 THE END OF PASS OCCURS WHEN BITS (.645 X 108 WORDS). B. THE FOLLOWING THE D IVE HAS READ 1.032°X 109 IfF PARAMETER 'ENDING' IS O, END OF PASS OCCURS WHEN THE DRIVE HAS PERFORMED 1 X 10%6 SEEKS. END OF PASS FOR A SINGLE DRIVE DETERMINED AS FOLLOWS. A. WHEN A SEQUENTJAL SEEK IN ‘W' OR 'R' COMMAND MODE, IS MADE BEYOND THE MAXI MUM D] SK ADDRESS LIMITS SET BY THE OPERATOR, THE PASS [S CONSIDER ED ENDED. 3.5.2 TEST TERMINATION IF A. B. (c). D. SWO4 IS CLEARCO), THE TEST FOR A DPJVE IS TERMINATED WHEN: THE DRIVE HAS COMPLETED PARAMETER °‘PASSES' IS THE NUMBEh OF PASSES SPECIFIED IN THE TOTAL ERRORS ACCUMULATED EXCEED 25. . A FATAL ERROR OCCURS: EM12 OR EM14, OPERATOR DEASSIGNS THE DRIVE THE NUMBER OF PASSES SPECIFIED BY THE MONITOR HAVE BEEN REACHED, WHEN RUNNING IN °*XXDP' CHAIN MODE, MODE OR 'APT' SCRIPT MODE (ANY AUTO MODE). ‘'ACT11' CHAIN TN CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 3-4 SEQ 0008 USER DOCUMENTATION 3.6 RUN TIMt THE EXERCISER PROGRAM MAY BE RUN IN TwO MODES. (SEE SECTION 3.5.1) THE PROGRAM RUN TIME VARIES GREATLY DEPENDING ON THE OPERATION MODE SELECTED, THE READ/WRITE RATIO PARAMETER (°'RATIO'), AND BY SWR SWITCHES O, 1, AND 2. 3.6.1 DATA TRANSFER MODE (DEFAULT) ONE DRIVE - APPROX. 45 MIN. 3.0.2 (TO REACH 4.128 X 109 BITS (2.58 X 10*8 WORDS) SEEK VERIFICATION MODE PARAMETER PARAMETER PARAMETER SW<01> =1 SW<Ge> =1 °'MAX WRD CNT' = 256, (1 SECTOR) °'MAX TRK® = 'MIN TRK' (SAME VALUES) 'MAX SEC' = 'MIN SEC' (SAME VALUES) (NO DATA COMPARE) (READ ONLY MODE) ONE DRIVE = APPROX. 4.0 HRS (TO REACH 1 3.7 DUAL PORT OPERATION A. B. C. 3.8 X 106 SEEKS) LOAD THE 2ERFORMANCE SWITCH THE EXERCISER PROGRAM °*CONTROLLER SELECT' WHICH IS TO BE INTO BOTH PROCESSORS. SWITCH TO 'A/B' ON EACH DRIVE TESTED AS A DUAL PORT DRIVE AND CYCLE THE DRIVES UP. START THE PROGRAM IN EACH PROCESSOR. RUN THE PROGRAM AS THOUGH EACH PROCESSOR WERE RUNNING INDEPENDENTLY OF THE OTHER. XXDP, ACT11, APT11 COMPATIBILITY THIS PROGRAM [S COMPATIBLE WITH AUTOMATIC MODES. ACT11 AND APT11 [N BOTH DUMP AND THIS PROGRAM 1S ALSO, COMPATIBLE WITH XXDP IN DUMP AND CHAIN MODES, AND PROVIDES MEDIA PROTECTION IN THE CASE WHERE THE RPO7 IS THE XXC? LOADING DEVICE. AUTOMATIC MODE OR CHAIN MODE 1. THE _BUS ADDRESS AND CONTROLLER 176700 AND 254 RESPECTIVELY. DUMP MODE 1. INTERRUPT VECTOR ARE DEFAULTED TO (NO MONITOR) INPUT DIALOGUE PROMPTED AFTER PROGRAM STARTS APT ETABLE DEFINITIONS THE FOLLOWING DEFINITIONS ARE VALID FOR SPECIFYIN ING TABLF (ETABLE) ENTRIES,VIA RUNNING THE APT UTILITY APT ENVIRONMENTAL ROGRAM *'TSP**: 0> 3.9 (MONITOR) CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-5 SEQ 0009 USER DOCUMENTATION 1. SOF TWARE ENV]IQONMENT: 1 IF 0 IF APT SCRIPT MODE STANDLONE MODE ENVIRONMENT MODE: ° BIT 5 O O-— ETABLE DOES SI l IN 6 PROGRAM DOES SIZING l1 SPOOL MESSAGES S TO APTTM DON'T SPOOL TO APT [F SCRIPT MODE SUPPRESS TTY CONSOLE QUTPUTY O— [ BiT 6 1] BIT 7 = 1 ALLOW TTY CONSGLE OUTPUT BIT & T0 BIT O ARE NOT USED SWITCH 1 (SOF TWARE SWITCH RE IF _ENVIRONMENT MODE BIT 7 (S THE OF SOF TWARE SWITCH REGISTER THE HARDWARE SWITCH 2 TTY CONSOLE S (USER SWITCH REGISTER) NOT USED CPU OPT]ONS NOT USED MEMORY TYPES NOT USED 1-4 AND MAX MEMORY ADDRESSES INTERRUPT VECTOR 1: USED WHEN ENVIRONMENT MODE BIT 7 1;DEFAULT - 254 BUS PRIORITY 1: NOT USED. INTERRUPT VEZTOR 2: NOT USED 10. BUS PRIORITY 2: 1. BASE ADDRESS: 12. DEVICE MAP: NOT USED USED WHEN ENVIRUNMENT MODE BIT 7 NOT USED 13, CONTROLLER DESCRIPTOR WORDS: NOT USED 14. CONTROLLER DESCRIPTOR WORDS: NOT USED 1.DEFAULT = 176700 (2 R JOAQ RPQ7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE UsS 3 R DOCUMENTATION 3-6 SEQ 0010 CONTROLLING THE PROGRAM THE FOLLOWING KEYBOARD CONVENTIONS ARE USED BY THE KEYBOARD ENTRY ROUTINES IN THE PROGRAM: A. TO DELETE AN INCORRECT CHARACTER FROM AN ENTRY STRING, TYPE ;:820¥LE.IL;8%NG A RUBOUT WILL DELETE SUCESSIVE CHARACTERS B. TO DELETE AN ENTIRE LINE, TYPE A 'CONTROL U*' C. AN ENTRY MUST BE TERMINATED BY EITHER A °*CARRIAGE RETURN' GR A 'PERIOD'. THE °'PERIOD' TERMINATION IS RECOGNIZED BY THE PROGRAM AS A DEFAULT ENTRY REQUEST. BY A 'PERIOD' ACCEPT THE ENTERED VALUE AND WILL DEFAULT FOR ANY REMAINING ENTRIES. D. IF A 'CONTROL C*' IS TERMINATED THE PROGRAM WILL TO THE PRELOADED VALUES IS TYPED DURING DRIVE TESTING MODE, WILL ENTER THE COMMAND MODE. *ENTER COMMAND'® (*U). WHEN A LINE INSTEAD OF A ‘CARRIAGE RETURN®', IF A 'CONTROL C' A THE PROGRAM IS TYPED DURING SEQUENCE, wITH NO DRIVES ASSIGNED, THE PRIGRAM WILL BE RESTARTED AT LOCATION 204 . OTHERWISE, THE PROGRAM WILL RETURN TO 'ENTER COMMAND® PROMPT AND WAIT FOR A CORRECT SEQUENCE OF CHARACTERS. IF 'CONTROL C' 1S TYPED DURING ANY OTHER ENTRY SEQUENCE, THE PROGRAM WILL RETURN TO THE BEGINNING OF THE GROUP SEQUENCE BEING ENTERED. 4. 1 PARAMETERS BE THE FOLLOWING QUESTIONS ARE TESTED. THE DEFAULT AS DOCUMENTED HERE. *THE HELP MESSAGE DO YOU WANT ASKED 10 DETERMINE HOW THE RPO7 WILL ANSWERS TO CAN ONLY BE IT TYPED (L) ? THESE QUESTIONS ARE ALWAYS TYPED ONCE, A 'Y' RESPONSE WILL TYPE A SUMMARY OF THE SWITCH REGISTER DEFINITIONS, ALONG WITH ALL THE COMMANDS AVAILABLE TO THE USER. A °'N' RESPONSE WILL NOT TYPE ANY HELP MESSAGE AND THE NEXT PROMPT WILL BE TYPED. IF _RUNNING THE MANUFACTURES VERSION OF THIS PROGRAM, QUESTION WILL ASKED. OTHERWISE, CONTINUE THE FOLLOWING TO THE NEXT PROMPT. ‘DO YOU WANT 132, CHARACTER ERROR MODE (L) Y ? A 'Y' RESPONSE WILL ALLOW THE 132, CHARACTER ERROR MESSAGES T0O BE TYPED TO THE QUTPUT DEVICE WHEN AN ERROR OCCURS. A °N°' RESPONSE WILL OUTPUT THE NORMAL LONG ERROR TYPE MESSAGES TO THE OUTPUT DEVICE. THE 132. CHARACTER ERROR MODE, IS A 132. CHARACTER STRING, WHICH i$ SEPERATED INTO COLUMNS OF DATA FOR THE ERROR REPORT. REPORTING HELFPS MANUFACTURING FIND DIFFERENT TYPES OF THIS FORM OF ERRORS MORE ERROR SEQ 00M (I 1 R JOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 3-7 UsS t R DOCUMENTAYION EASILY. THE USER CAN SCAN SCAN DOWN A COLUMN, INSTEAD 0 LOOKING THRU THE TYPICAL LONG ERROR REPORT. THE ONE DISADVANTAGE OF THE 132, CHARACTER REPORT, IS THE AMOUNT Of ERROR DATA WHICH CAN BE REPORTED TO THE USER. THE FOLLOWING FIELD VERSION OF QUESTION AND WARNING MESSAGE THIS DIAGNOSTIC. ONLY APPEAR [N THE ‘DO YOU WANT TO WRITE ANYWHERE ON MEDIA (L) N ?° A °N' ANSWER WILL PROCEED WITH TESTING ONLY THE FE CYLINDER AND SKIP THE FOLLOWING QUESTICN, A °'Y' ANSWER WILL PROCEED TO NEXT WARNING MESSAGE AM'D QUESTION. IF THE PROGRAM IS IN "'READ ONLY'' MODE (Sw0=1), THE WARNING QUESTION WILL BE ASKED. *! CONTINUE MESSAGE WILL BE OMITTED CUSTOMER DATA WILL BE OVERWRITTEN (L) BUT THE ! ?° A 'Y' ANSWER WILL PROCEED WITH TESTING THE ENTIRE DISK. ANSWER WILL PROCEED WITH TESTING ONLY THE FE CYLINDER. A °N' 1f ONLY THE FE CYLINDER IS TO BE TESTED, THE FOLLOWING MESSAGE WILL BE FRiINTED. '« TESTING WILL OCCUR OM FE CYLINDER ONLY ¢ AT THIS POINT, IF THE PROGRAM IS LOCKED IN '‘READ ONLY'' MODE, THE FOLLOWING MESSAGE WILL BF TYPED. IF THE PROGRAM IS NOT LOCKED IN “'READ ONLY'' MODE, ‘* PROGRAM THE FOLLOWING MESSAGE WI!LL BE OMITTED. 1S LOCKED IN °'READ ONLY' MODE +° WHEN THE PROGRAM ]S STARTED, THE OPERATOR WwiLL BE ASKED TO ENTER PARAMETERS. THE FOLLOWING MESSAGE WILL BE DISPLAYED: *CHANGE PARAMETERS (L) N ?° IF THE ENTRY IS A 'N' FOLLOWED BY A CARRIAGE RETURN OR JUST A CARRIAGE RETURN (DEFAULT), AND WiLL CONTINUE. If THE ENTRY IS THE PROGRAM WILL NOT ALLOW ANY FPARAMETERS TO CHANGED & V' v ILLOWED BY CARRIAGE RETURN, THE OPERATOR WILL BE ALLOWED TO (HANGE THE ROGRAM PARAMETERS. THE PROGRAM WILL IDENTIFY THE PARAMETER BY THE NAME GIVEN BELOW, DISPLAY THE CURRENT VALUE OF THE PARAMETER AND WAIT FOR THE ENTRY. THE PROGRAM WILL TYPE °*INVALID ENTRY® If THE ENTRY lS NOT CORRECT AND WAIT FOR A CORRECT ENTRY TO BE TYPED. (SEE SECTION 4.1.1) If THIS IS THE PROGRAM'S FIRST START, THE STATUS OF THE DRIVES ON THE SELECTED MASSBUS SUBSYSTEM WwiLL BE PRINTED. ON ALL SUBSEQUENT STARTS, THIS TYPEOUT MAY BE INHIBITED BY SETTING Sw<02> =1, SE@ 0012 CIRJOAD RPQ7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-8 USER DCCUMENTATION THE FOLLOWING IS AN EXAMPLE DRIVE STATUS PRINTOUT: NOWV SN —O ‘DRIVE STATUS: ONL INE RPQ7 LOAD DEVICE CFFLINE RP(7 ONL INE RPOQ7 NON=INTERLEAVED NJT PRESENT NOT AN RPO7 NOT PRESENT NOT PRESENT'® THE ABOVE DRIVE STATUS SHOWS 1 « 7 WILL NOT BE TESTED. ¢, 1. KEYBOARD ENIRY QUESTION » 1 BASE 10. THAT DRIVE 0O WILL BE TESTED, WHILE DRIVES PARAMETERS DEFAULT VALUE 8192. (SEE NOTE) VALUE RANGE 6 - 819c. FUNCTION CONTROLS THE MAXIMUM WORD COUNT USED FOR DATA TRANSFERS NOTE: THE PROGRAM WILL SELECT A MAXIMUM WORD COUNT, WHICH IS DETERMINED BY THE MEMORY AVAILABLE. THE MAX. WORD COUNT ASSIGNED BY THE PROGRAM 1S 8192.(1 TRK) WORDS. THE OPERATOR MAY SPECIFIY ANY OTHER MAX. WORD COUNT AS LONG AS THE VALUE SPECIFIED IS AT LEAST € WORDS BUT NO LARGER THAN 8192. WORDS OR MEMORY AVAILABLE. (WHICH EVER VALUE 1S SMALLER) 2 10. 0 0 - 32767. DETERMINES THE INTERVAL (IN MINUTES) BETWEEN AUTOMATI( PERFORMANCE REFORT TYPEQUTS; NO TYPEQUT If TH], PARAMETER IS 0 OR IF SW<02> =1 3 10. 15. 0 - 32767. DETERMINES THE INTERVAL (IN MINUTES) BETWEEN DATA (OMPARES TO MEMORY AFTER A READ DATA COMMAND, ALWAYS DO COMPARE If THIS PARAMETER IS 0. IF SW01 =1, THEN NO DATA COMPARES WILL BE GRANTED,UNLESS A 'DCK’ ERROR OCCURS. 4 10, 1 1 - 32767, NUMBER OF PASSES TO END OF TEST. (THIS PARAMEER IS NCT USED WHEN THE PROGRAM S N1 CIRJOAQ RPO7 PERI EXER MACRO V04,00 1-JAN-B3 12:06.52 PAGE 3-9 USER DOCUMENTATION SEQ 0013 OPERATING !N AUTO RUN MODE) 5 10, 0 0 - 15, [f PARAMETER=0,DATA PATTERN IS RANDOMLY SELECTED. IF PARAMETER>O,SPECIFIES ONE OF THE THE 15. PATTERNS. SELECTED DATA PATERN THE PARAMETER IS POINTED BY “PATTERN''. ¢ 8 000000 0 OR 1 (SEE SECTION 8.4) [F PARAMETER = 0, COUNT THE WORD IS RANDOMLY SELECTED BETWEEN 6 AND THE VALUE *WRDCNT® (MAX WRD IF PARAMETER = ', COUNT WwiLL BE THE "WRDCNT' (MAX WHD 0-7 CONTROLS THE APPROXIMATE RATIO OF READ (OMMANDS. 8 8 000001 0 OR 1 SNON N NN Pt VALUE TO WRITE R/W RATIO 1571 7/1 W nNo 000002 NOAV 8 e ~ 7 —2 NI 8 WD o ’ (NT), THE WORD VALUE (NT), IF PARAMETER = 1, END OF PASS DETERMINED BY THE ‘'WORDS READ' COUNT, IF PARAMETER = 0, END OF PASS IS DETERMINED BY THE NUMBER OF f SEEKS. 9 4.1.2 8 10 ) (HANGE DEVICE 000001 0 OR1 000000 0 OR 1 1f g Q0 1, DO AN APPROPRIATE WR | € CHECK AFTER EACH WRITc q) M M AND. IF EQ O, SELECT WRITE CH 3 C K COMMAND RANDOMLY. 1F 2ARAHETER=0.RANDUM DA 1 BLOCK ADDRESS 1S us t D IN 'T* COMMAND ¢ P ARAMETER=1,SEQUENTIAL DA A BLOCK IS USED IN ! ' (OMMAND, ADDRFSS THE RP/RH ADDRESS AND VECTOR MAY BE CHANGED WHEN THE PROGRAM |S STARTED AT ADDRESS 204 OR It THE PROGRAM DOES NOT RESPONSE WHEN JT ACCESSES THE DEFAULT RP/RH ADDRESS. RECEIVE A CIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-10 SEQ 0014 USER DOCUMENTATION (DEFAULT ADDRESS = 176700, VECTOR = 254) ADDRESS SELECTION EXAMPLES EXAMPLE 1 RPCS1=176790 <(R> RPVEC=0C0254 <CR> «NO CHANGE :NO CHANGE IN ADDRESS IN ADDRESS EXAMPLE 2 RPCS1=176700 1726400<CR> RPVEC=000254 224<(R> 6.2 ;CHANGE BASE ADDRESS T0 172400 :CHANGE VECTOR ADDRESS TO 224 KEYBOARD CCMMANDS THROUGH THE KEYBOARD COMMANDS, THc OPERATOR MAY ASSIGN DRIVES FOR TEST ('T* COMMAND), WRITE SEJUENTIAL DATA (°'W' COMMAND), PERFORM A SEQUENTIAL READ ('R’ COMMAND), PERFORM WRITE DATA AND FOLLOWED BY TEST ('Wi' COMMAND ), REQUEST A DRIVE PERFORMANCE SUMMARY THE *T', (*'S* 'W', COMMAND), OR DEASSIGN A DRIVE 'R AND 'WT*' ('D' COMMAND). COMMANDS ARE EXCLUSIVE TO ONE ANOTHER ON THE SAME DRIVE UNDER TEST. THZ ‘D' COMMAND MUST BE ENTERED IN ORDER TO ISSUE A DIFFERENT COMMAND T0 THE SAME DRIVE UNDER TEST. EXCEPT FOR THE °'S°' COMMAND, WHICH CAN BE ENTERED AT ANY TIME DURING THE TEST. IF THTM PROGRAM WAS STARTED AT ADDRESS 204 OR IF NO DRIVES ARE ASSI.«ED FOR TESTING, THE FOLLOWING MESSAGE WILL BE ENTERING THE COMMAND MODE. HOUEVER. IF A *CONTROL C*' TYFt BEFORE IS TYPED WHILE TESTING IS 1IN PROGRESS, THE FOLLOWING MESSAGE WILL OMITTED AND THE PROGRAM WILL ENTER COMMAND MODE . BE *NO DRIVES ASSIGNED' WHcN THE PROGRAM ENTERS THE «ilLl BE TYPED: COMMAND MODE, THE FOLLOWING PROMPT ‘HH:MM:SS ENTER COMMANDS:'* THE PROGRAM WILL THEN ACCEPT ANY OF THE VALID COMMANDS. AT THE COMPLETION OF A COMMAND, THE PROGRAM WILL EXIT COMMAND MODE AND TRY TC ASSIGN THE DRIVE(S) THAT WERE REQUESTED. IF THE DRIVE(S) CANNOT BE ASSIGNED, ONE OF THE FOLLOWING ERROR MESSAGES WILL BE REPO"TED AND THE PROCESS CONTINUES FOR EACH DRIVE. KESPONSE ?DRIVE N LOAD DEVICt DRIVE N OFFLINE ?DRIVE N NOT ASSIGNED COMMAND (S) T, W, R, VI T, W, R, WT D, S €l UsS CZIRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN=-B3 12:06:52 PAGE 3-11 SEQ 0015 USER DOCUMENTATION 7DRIVE 7DRIVE 7DRIVE DRIVE NEXT, N N N N ALREADY ASSIGNED NOT PRESENT UNSAFE NOT AN RPO?7 T, T, T, T, W, W, W, W, R, R, R, R, W WT Wl WT THE PROGRAM WILL PROCESS ALL THE ASSIGNED DRIVES AS FOLLOWS: WHEN THE PROGRAM IS ASSIGNING THE DRIVES, THE OPERATOR WILL BE TO CHANGE THE DRIVE PARAMETERS WITH THE FOLLOWING PROMPT: *CHANGE DRIVE PARAMETERS 1F _THE ENTRY RETURN IS A 'N' (DEFAULT), ASKED (L) N ?°' FOLLOWED BY A CARRIAGE RETURN CR JUST A CARRIAGE THE PROGRAM WILL NOT ALLOW ANY PRIVE PARAMETERS T0 BE CHANGED AND WILL PROCEED TO TEST THE DRIVES AS COMMANDED. IF THE ENTRY IS A 'Y' FOLLOWED BY CARRIAGE RETURN, THE OPERATOR WILL BE ALLOWED TO CHANGE THE DRIVE PARAMETERS AS FOLLOWS. THE PROGRAM WILL FIRST TELL THE OPERATNOR WHICH DRIVE IS BEING REFERENCED FOR CHANGES AND THE HARD WIREC DRV SERIAL NUMBER fORMAT: 'DRIVE # N, PGXXXX. ADDRESS LIMITS:' WHERE THE 'XXXY' RPSN IS THE HARD WIRED REGISTER OF THE MBA, JUMPERED IN THE RPSN REGISTER, THE PROGRAM WILL PARAME TERS. DEFAULT NAME MIN MAX MIN MAX MIN MAX ¢ CYL CYL TRK TRK SEC SEC IF THE "XXXX® VALUES FOR DRV THE RANGE ' 630. 0 31, 0 49. * *+ 0 0 0 0 - NUMBER CONTAINED SERIAL WILL APPEAR AS VALUE VALUE NUMBER '?2227°, [S FOLLOWING ADDRESS I IM]T FUNCTION 630. 630, 31. 31. 49. 49. THE THE THE THE THE THE MANUFACTURES VERSION OR TESTING ‘T* MINIMUM MAXIMUM MINIMUM MAXIMUM MINIMUM MAXIMUM CYLINDER ADDRESS CYLINDER ADDRESS TRACK ADDRESS TRACK ADDRESS SECTOR ADDRESS SECTOR ADDRESS THE FIELD VERSION OF IS ANYWHERE ON THE MEDIA, THIS PROGRAM AND THIS VALUE WILL BE 0. COMMAND USED TO ASSIGN A DRIVE(S) TO PERFORM FORMAT: THE TEST OF T HE FOR A T EST. DRIVE(S). THIS COMMAND IS REQUIRED TN<CR> = DRIVE NUMBER. TERMINIATED BY MAY BE O TO 7 OR °*A', A IN NOT |F RUNNING THE FIELD VERSION OF THIS PROGRAM AND TESTING OCCURS ONLY ON THE FE CLYINDER, ThIS VALUE WILL BE 630. IF RUNNING THE 6.2.1 REQUEST DECIMAL SERIAL CARRJAGE RETURN <(R>, ENTRY MUST BE EXER MACRD V04.00 1-'AN-83 12:06:52 PAGE 3-12 EXAMPLE: 6.2.2 ‘D' SEQG 0016 TO<CR> = ASS IGN DRIVE O FOR TEST TA<CR> = ASS IGN ALL AVAILABLE DRIVES FOR TEST COMMAND USED TO DEASSIGN A DRIVE(S) BEING EXERCISED. FORMAT: DN<(R> = DRIVE NUMBER, MAY BE 0 TO 7 OR TERMINIATED BY A EXAMPLE: .2.3 *'S* CARRIAGE 'A'. RETURN <(R>. ENTRY MUS/( BE DO<CR> - DEASSIGN DRIVE 0 DA<CR> = DEASSIGN ALL DRIVES BEING TESTED, COMMAND USED TO REQUEST A PERFORMANCE SUMMARY TYPEOUT FOR THE REFERENCED DRIVE(S). AFTER THE 'S’ COMMAND HAS BEEN PERFORMED, THE PROGRAM WILL AUTOMATICALLY RESUME FORMAT: TESTING THE DRIVE(S) MAY BE O TO 7 OR TERMINIATED BY A CARRIAGE EXAMPLE: 'A'., RETURN <(CR>, SO<CR> = TYPEOUT PERFORMANCE SAC(R> = gg?ng}EgggEORHAN(E THE PERFORMANCE FOPMAT: TERMINATED BY EXAMPLE: 'R' EXERCISER PROGRAM, MAY BE 0 TO 7 OR A CARRIAGE DISK, WITH DATA ACCEPTABLE ENTRY MUST BE WO<CR> - WRITE A DATA PATTERN ON DRIVE 0. WAC(R> - WRITE A DATA PATTERN ON ALL AVAILABLE COMMAND FORMAT: TERMINATED BY A EXAMPLE: THE DISK. RN<(CR> = DRIVE NUMBER. ‘Wi’ °"A°', RETURN <CR>. USED TO PERFORM A SEQUENTJAL READ OF 6.2.6 THE WN<CR> = DRIVE NUMBER. 6.2.5 ENTRY MUST BE COMMAND USED TO PERFORM A SEQUENTIAL WRITE OF 10 TEST. SUMMARY FOR DRIVE 0 SUMMARY FOR ALL DRIVES ! ‘W' UNDER SN<(CR> = DRIVE NUMBER. 6£.2.4 WHJCH WERE MAY BE O TO 7 OR *A', CARRJAGE RETURN <(R>, ENTRY MUST BE RO<CR> - READ THE DATA ON DRIVE O. RA<(R> COMMAND = READ THE DATA ON ALL AVAILABLE DRIVES. DRIVES. Cc CZRJOAQ RPO7 PERF USER DOCUMENTATION SEQ 0017 CZR:JA0 RPQO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-13 'SER DOCUMENTATION USED TO PERFORM A SEQUENTIAL WRITE DATA, FOLLOWED BY A 'T' (OMMAND. FORMAT: WTN<CR> = DRIVE NUMBER O TO 7 NR "‘A'", ENTRY MUST BE TERMINATED BY A LARRIAGE RETURN <(R>. EXAMPLE: WwT0<CR> = WRITE A DATA PATTERN AND TEST D DRIV E O WTA<CR> = WRITE A DATA PATTERN AND TEST A.L DRIVES PEXFORMANCE 5.1 THE SUMMARY TYPEOUT PROGRAM WILL DISPLAY A PERFORMANCE BEING EXERCISED. REPORT FOR THE DRIVES THIS REPORT WILL BE DISPLAYED AUTOMATICALLY IF _THE PARAMETER °'INTRVL' IS NOT ZERO AND SW<02>=0, OR IF THE DRIVE HAS REACHED THE DEFINED NUMBER OF PASSES AND SW<08>=0, OR IF THE OPERATOR REQUESTS TO DO SO BY USE OF THE 'S* COMMAND. THE REPORT TYPEOUT ‘TIME' ‘DRIVE' ‘DRV S/N' CONTAINS THE ELAPSED TIME OF FOLLOWING FIELDS: PROGRAM DRIVE NUMBER - DRIVE TYPE HARD WIRED MASSBUS ADAPTER SERIAL NUMBER(RMSN) *PASS’ 'WRLS WRITN /' ' PASS' :H;ggAkéAD /o NIUMBER OF WORDS WRITTEN EACH PASS BY THE DRIVE TOTAL NUMBER OF WORDS (Xx10%6) WRITTEN BY THE DRIVt ' PASS' :Sgg;g%. NUMBER OF WORDS READ EACH PASS BY THE DRIVE TOTAL NUMBER OF WORDS (X10%6) READ BY THE DRIVE ' * NUMBER OF SEEK OPERATIONS EACH PASS BY THE DRIVE TOTAL NUMBER OF SEEK OPERATIONS BY THE DRIVE PASS' TOTAL' *SOFT* ‘HARD® 'SK]* NUMBER OF ‘OTHER' SUFT DATA ERRORS NUMBER NF HARD DATA ERRORS NUMBtR OF PROGRAM DETECTED POSITIONING ERRORS NUMBER OF ‘MISP’ NOTE: PRESENT PASS COUNT FOR THE DRIVE 'SK]°' ERRORS TOTAL ERRORS OF OTHER TYPES ERRORS EM1, EM2, EM3, EM4, EM5, & EMI0 ARE NOT ‘OTHER® ERROR TOTAL. 5.2 SOF T/HARD ERROR DEF INIT]ONS 5.2.1 HARD ERRORS A. INCLUDE! IN THE A °DTE® (DRIVE TIMING ERROR) OR A 'DCK' (DATA CHECK ERROR) WHICH OCCURS DURING A READ DATA OR A READ HEADER & DATA OPERATION AND IS NOT CORRECTABLE OR DOES NOT BECOME CORRECTABLE AFTER THE gg??gafl HAS PERFORMED THE COMPLETE RETRY SEQUENCE ON THE BAD THE RETRY SEQUENCE IS 16. RE-READS AT TRACK CENTER AND 2 ATTEMPTS CIZRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN=-83 12:06:52 PAGE 3-14 USER DOCUMENTATION SEQ 0018 BOTH AT POSITIVE AND NEGATIVE OFFS{TS. 5.2.2 SOFT ERRORS A. B. C. D. 6.1 t(C CORRECTABLE ‘DCK' € "ECH’ 'DCK' ERRORS. ERRORS WHICH BECOME ECC CORRECTABLE DURING RETRY OR WHICH ARE READ CORRECTLY DURING RETRY. HEACER READ ERRORS = READ DATA, READ HEADER & DATA, OR WRITE DATA COMMANDS ‘'DTE' ERRORS WHICH ARE CORRECTED OR WHICH BECOME ECC CORRECTABLE 'DCK* ERROR DURING THE RETRY SEQUENCE. DATA COMPARISON DATA COMPARISON OCCURS AFTER EACH (READ HEADER AND DATA) 'RDDAT' OPERATION UNDER THE (READ DATA) OR 'RDHD’ FOLLOWING CONDITJONS: A. THE COMMAND TERMINATED WITH NO ERRORS AND SW<01>=0 B. THE OPERATION TERMINATED WITH 'DCK' SET AND THE ERROR IS ECC CORRECTABLE OR THE SECTOR IN ERROR IS READ CORRECTLY AFTER RETRY ATTEMPTS. 6.2 VERIFICATION OF DATA WRITTEN DATA VERIFICATION IS DONE EITHER THROUGH READING THE DATA BA(K AND MATCHING THE DATA WITH ONE OF THE 15. PATTERNS OR THROUGH ISSUING A WRITE CHECK COMMAND AFTER DOING A WRiTE DATA COMMAND. 6.3 BAD ADDRESS FLAGGING ACCOMPLISHED BY THE RPO7 HARDWARE SKIP DEFECT. ERROR MESSAGES ERRORS ARF REPORTED ON THE TTY CONSOLE. THE PROGRAM CONTAINS NO CODED ERROR HALTS. IF THE PROGRAM HALTS (ASSUMING, OF COURSE, THAT SW<15> [S NOT SET), AN UNRECOVERABLE PROGRAM CONDITION HAS OCCURRED OR A CENTRAL PROCESSOR FAILURE HAS OCCURRED. ERROR MESSAGES ARE MADE UP OF SEVERAL LINES. EACH TYPE OF ERROR HAS SEVERAL OPTIONAL LINLCS WHICH MAY APPEAR WITH I1, POSSIBLE ERROR MESSAGE LINES WHICH MAY APPEAR ARE SECTION DESCRIBING THE PARTICULAR ERROR HEADER. 7 ERROR DESCRIPTION LINES (THE MESSAGE MESSAGE TAGS ARE GIVEN FOR REFERENCE.) ALL OF GIVEN IN THE THE 6 €z R JOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-15 Us t R DOCUMENTATION TAG EmM1 2 SEQ 0019 TEXT RH CONTROLLER INTERRUPT OCCURRED (RMAS=0) THE RH CONTROLLER INTERRUPTED AND THE ATTENTION SUMMARY REGISTER Eme (RMAS) WAS CLEARED. UNEXPECTED ATTENTION OCCURRED THE INDICATED DRIVE INTERRUPTED BUT PERFORMING AN OPERATION, EM3 M 35SBUS PARITY ERROR THE DRIVE WAS NOT (M(PE=1) THE RH DETECTED A CONTROL BUS PARITY ERROR WHEN READING THE INDICATED REGISTER FROM THE INDICATED DRIVE. EM& MASSBUS PARITY ERROR THE (PAR=1) INDICATED RP DETECTED A CONTROL BUS PARITY ERROR WHEN THE RH LOADED THE EMS ADDRESS PLUG CHANGE BIT THE EM6 SPECIFIED REGISTER. 'OPE' SET BIT WAS SET WHEN THE INDICATED DRIVE RH DIDN'T RESPOND TO ADDRESSING WHEN THE PROGRAM ADDRESSED THE RH, FROM THE INDICATED ADDRESS. EM10 NO RESPONSE WAS RECEIVED UNCORRECTABLE MASSBUS PARITY ERROR ThE PROGRAM HAS REGISTER. EMIT INTERRUPTED. TRIED FATAL MASSBUS PARITY 3 TIMES TO READ OR WRITE THE INDJCATED ERROR & CONTROL BUS PARITY ERROR OCCURRED WHEN ThE RH ATTEMPTED TO PROCESS A PREVIOUS, DIFFERENT PARITY ERROR. EM12 PERSISTENT DEVICE UNSAFE THE DRIVE BECAME UNSAFE; DRIVE C LEAR TO THE CRIVE CID NOT CLEAR THE UNSAFE CONDITION. THE PROGRAM WILL AUTOMATICALLY DEASSIGN THE DRIV E' THE DRIVE CANNOT BE EXERCISED UNTIL THE UNSAFE C ONDITION HAS BEEN CLEARED BY MANUAL INTERVENTION. EM13 OPCRATION NOT COMPLETED WITHIN TIME LIM]IT THE DRIVE DID NOT COMPLETE THE OPERATION WITHIN 10. AFTER THE OPERATION WAS INITIATED. EM14 UNIT WENT OFFLINE SECONDS CIRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 3-16 SEQ 0020 USER DOCUMENTATION THE DRIVE WENT OFFLINE DURING THE INDICATED OPERATION. (THE 'MOL' BIT BECAME ZERO.) THE PROGRAM WILL AUTOMATICALLY DEASSIGN THE DRIVE. THE OPERATOR MUST REASSIGN THE DRIVE WITH THE 'T' COMMAND TO RE-INITIATE TESTING. EM20 HEADER CRC -l VY >»x '7'1‘1 [ ] O’-‘ —NO THE PROGRAM IS TESTING A DUAL PORT TO THE REQUESTING PORT WITHIN 15, TO THE DRIVE FROM THE REPORTING PO XD TO PORT REQUEST H HAS NOT SWITCHED ER PORT RFEZUEST e NO RESPONSE ow EM1S ERROR A HEADER CRC ERROR WAS DETECTED AT THE INDICATED DISK ADDRESS. THE CONTENTS OF THE HEADER ARE DISPLAYED. THE OPERATION WILL BE RETRIED 3 TIMES. EM21 DATA CHECK (°DCK') ERROR A DATA CHECK ERROR WAS DETECTED AT THE INDICATED SECTOR. THE FULL RETRY SEQUENCE (INCLUD DI ?G OFFSET) WILL BE INITIATED EgRSg?E EM22 WRITE SECTOR IN ERROR [F THE CHECK ERROR = DATA CHECK ECC HARD ERROR (°ECH) BIT ('DCK') SET A WRITE CHECK ERROR OCCURRED AND THE DATA CHECK ('D(CK') BIT WAS SET. IF 'ECH' IS NOT SET, THE OPERATION WILL BE RETRIED UP T0 3 TIMES:; IF THE "ECH' 8IT IS SET, BE RETRJED UP TO 16. TIMES. EM23 WRITE CHECK ERROR - DATA CHECK THE OPERATION WILL ('DCK') NOT SET A WRITE CHECK ERROR OCCURRED AND °'DCK® WAS NOT SET. THE WORDS WHICH CAUSED THE ERROR ARE DISPLAYED IN THE FRROR MESSAGE. THE OPERATION WILL BE RETRIED 3 TIMES. EM24 HEADER READ ERROR - 'FMT' BIT DROPPED A WRITE DATA, WRITE CHECX DATA, OR A READ DATA WAS BEING PERFORMED AND A 'FMT' ERROR OCCURRED. THE PROGRAM RE-READ THE HEADER OF THE ERROR SECTOR AND THE °‘HCRC' BIT WAS SET. THE CONTENTS OF THE HEADER ARE DISPLAYED. BE RETRIED 3 TIMES. EM25 HEADER READ ERROR = HEADER COMPARE THE OPERATION WILL ('HCE') ERROR SIMILAR TO EM24, EXCEPT THAT THE 'HCE' ERRQOR BJT WAS SET INITIALLY. THE OPERATION WILL BE RETRIED 3 TIMES. EM26 FORMAT ERROR FORMAT 'HCRC® ERROR OCCURRED., BIT WAS NOT DISPLAYED. Em27 ('FER®) WHEN THE HEAD 3 R WAS RE-REAV, ('HCE') THE THE CONTENTS OF THE HEADER ARE THE OPERATION WILL BE RET RIE 1ED 3 TIMES. HEADER COMPARE SET. ERROR CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 3-17 SEQ 0021 USER DOCUMENTAT]ON SIMILAR TO EM26 EXCEPT THAT THE THE OPERATION WILL BE RETRIEF Em30 MISCELLANEOUS DRIVE FPRCA THIS MESS.\GE AOE', EM3 °*hMR', lS GIVEN FOR THE ,FOLLOWING ERROR BITS: ‘ILF', OR 'ILR OPERATION INCOMPLETE g?c?SERATION EM32 'HCE' BIT WAS SET INITIALLY. 3 TIMES. (°OPI') ERROR ‘ntumr LFTE ERROR OCCURRED AT INDICATED DRIVE TIMING ('DTE') ERROR DRIVE TIMING ERRIR OLCURRED ON THE OPERATION WILL BE KETRIED 3 TIMES. EM33 THE PARITY THE ('PAR') INDICATED SECTOR. THE ERROR AFTER OPERATION STARTED 'PAR' BIT WAS SET WHEN_THE OPERATION WAS COMPLETED. OPERATION WILL BE RETRIED 3 TIMES. EM34 WRITE (LOCK FAILURE A WRITE ('WCF') CLOCK FAJLURE OCCURRED DURING THE OPERATION. OPERATILN WILL BE RETRIED 3 TIMES. EM3S WRITE LOCK L . THE DRIVE WAS WRITE RH CONTROLLER OR UNIBUS TRANSFER ERROR *TRE® IS SET TIMES IF IN THE RH CONTROL REGISTER AND NO D ERROR HAS OCCURRED. OR EM4T OPERAT]ION. ('w.E') ERROR AO%E%BE OPERATION WAS ATTEMPTED BUT EM4O THE INVALID ALDRESS ('JAE') ERROR AN INVALID ADDRESS ERROR OCCURRED DURING THE EM36 THE THE OPERATION WILL BE RETR] THE ERROR WAS CAUSED BY °"MDPE’. °'DLT®, ‘uPE', ' BUS ADDRESS OR WORD COUNT INCORRECT NO DRIVE ERROR OCCURRED BUT EITHER THE BUS ADDRESS INDICATES THAT AN INCORRECT NUMBER OFf WORDS WERE WORD COUNT REGISTER IS NOT ZERO. EML2 TRANSFERED OR DATA COMPARE ERRORS = NO DRIVE ERROR DETECTED NO SUBSYSTEM ERROR WAS SIGNALED; HOWEVER, COMPARE . EM43 THE CAN'T MATCH DATA READ WITH A PATTERN THE DATA DOES NCT J CIRJOAQ RPO7 PERF EXER MACRO Vv04.00 1-JAN-83 12:06:52 PAGE 3-18 2 SEQ 0022 USER DOCUMENTATION THE DATA IN THE BUFFER DOES NOT MATCH ANY OF PATTERNS, EMLG ERROR BIT(S) THE STANDARD SET, BUT NO ERROR SIGNALED BY THE RH CONTROLLER THE OPERATION COMPLETED NORMALLY, HOWEVER, THE PROGRAM FOUND EITHER ERROR BITS IN THE RP SET OR ERROR BITS IN THE RH CONTROLLER SET. EM6S ECC LOGIC FAILURE DURING °DCK' ERROR PROCESSING, THE CONTENTS OF POSITION REGISTER REGISTER (RMEC1) OR THE CONTENTS OF (RMEC2) WERE NOT VALID. THE ECC ECC PATTERN THE POSITION REGISTER WAS EITHER 0 OR GREATER THAN 010040, OR THE PATTE?N REGISTER CONTAINED ZEROS. EM46 BUS ADDRESS OR WORD COUNT NOT CONSISTENT THE PROGRAM WAS PROCESSING AN ERROR AND FOUND THAT THE NUMBER OF WORDS TRANSFERED AS INDICATED BY THE BUS ADDRESS REGISTER DOES NOT AGREE WITH THE TRANSFER COUNT FROM THE WORD COUNT REGISTER. EMS0 SEEK INCOMPLETE ERROR THE DRIVE SIGNALED EITHER EMST NOT USED EM6O DEVICE UNSAFE 'SKI' ERROR. INDICATED DR IVE UNSAFE ERROR OCCURRED; CLEARED BY A 'DRIVE CLEAR' INSTRUCTION. THE 7.2 THE ERROR WAS DETAIL ERROR LINES THE LINE NUMBERS GIVEN BELOW ARE FOR REFERENCE ONLY. HH:MM:SS ‘HH:MM:SS® IS THE TIME SINCE (HOURS, MINUTES, SECONDS) *PRSNT COMMAND= XXXX THE PROGRAM WAS STARTED. PREV COMMAND= YYYY' MNEMONICS USED FOR THE COMMANDS ARE DEF INED BELOW: USER DOCUMENTATION CIRJOAD RPO? PERF EXER MACRO V04.00 1-JAN=83 12:06:52 2 PA PAGE 3 SEEK = SEEK (OCTAL 5) OFFSET = OFFSET (OCTAL 15) RECAL URVCLR RELSE -19 K SEQ 0023 - RECALIBRATE (OCTAL 7) = DRIVE CLEAR (OCTAL 11) = RELEASE (OCTAL 13) RTC READIN PACK = RETURN TO CENTERLINE (OCTAL - READIN PRESET (OCTAL 21) = PACK ACKNOWLEDGE (OCTAL 23) SEARCH *GETREG *SETFMT *SELDRV = = = = WCKD WCKHD WRTDAT FMTRK = = = RDDAT RDHD SEARCH (OCTAL 31) GET REGISTERS (OCTAL 41) SET FORMAT (ECI OR hCl) SELECT DRIVE (OCTAL «5) 17) (OCTAL 43) WRITE CHECK DATA (OCTAL WRITE CHECK HEADER & VATA (OCTAL 53) WRITE DATA (OCTAL 61) FORMAT TRACK (WRITE HWI:ADER & DATA) (OCTAL 63) = READ DATA (OCTAL 71) = READ HEADER & DATA (OCTAL 73) * SPECIAL RP DRIVER COMMAND (NOT A CONTROLLER COMMAND) (DISPLAY OF THE RH/RP REGISTERS IN TWO GROUPS: RPCS1, RPCS2, RPDS, RPER1, RPER2, RPEC1 AND RPECc FORM THE GROUP; ALL THE OTHER REGISTERS ARE IN THE SECOND GROUP. FIRST é;sgfzegs gS SET, ONLY THE REGISTERS IN THE FIRST GROUP WILL BE THE THE ABOVE LINE WILL BE TYPED IF THE ERROR OCCURRED DURING NON-DATA TRANSFER PART OF THE OPERATION. 't ERROR AT BAD TRACK/SECTOR' THE ABOVE LINE WILL BE PRINTED IF A DATA ERROR OCCLSFS AT AN ADDRESS ON THE DISK WHICH THE OPERATOR HAS IDENTIFIED AS BrING BAD. 'NOTPRT' MUST BE O FOR THE ERROR TO BE REPORTED. PARAMETER A WORD CALLED °'STATUS® IS DISPLAYED WITH THE RP REGISTERS. THE CONTENTS OF THIS WORD IDENTIFY HOW THE ERRQR WAS PROCESSED BY THE RP DRIVE HANDLER ROUTINE. (SEE SECTION 9.7) ERROR AT (XXX TYY SZZ PREV ADDR= CUUU TVV SuW THE THE ACTUAL ADDRESS OF ERROR SECTOR AND DISK ADDRESS ARE GIVEN IN THIS LINE. SECTOR ADDRESSES ARE IN DECIMAL. PRSNT ADDR= S22 (XXX TYY THE CYLINDER, PREV ADDR= CUUU PREVIOUS TRACK, & TVV Swu THIS LINE IDENTIFIES THE ADDRESS WHEN THE ERROR WAS DE.ECTED; THE PREVIOUS ADDRESS IS ALSO GIVEN. CYLINDER, TRACK, & SECTOR (2 R JOAQ RPQ7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 3-20 us t R DOCUMENTATION L 2 SEQ 0024 ADDRESSES ARE GIVEN IN DECIMAL. STARI CYL= XXX END CYL= YYY THIS LINE IDENTIFJIES THE STARTING CYLINDER OR A SEEK (IMPLIED) AND THE DESTINATION CYLINDER. CYLINDER ADDRESSES ARE IN DECIMAL. LINE 6 START (CYL= XXX END CYL= YYY ACTUAL (CYL= 222 THIS LINE IDENTIFIES THE STARTING CYLINDER OF AN IMPLIED SEEK, THE DESTINATION CYLINDER, AND THE CYLINDER THE DISK ACTUALLY STOPPED AT. CYLINDER ADDRESSES ARE IN DECIMAL. RPBA= XXXX RPW(= YYYY THIS LINE GIVES THE CONTENTS OF THE RH CONTROLL;E BUFFER ADDRESS REGISTER AND THE RH CONTROLLER WORD COUNT REGISTER. THIS LINE IS NOT PRINTED IF SW<05> IS NOT SET. START CYL= XXX THIS LINE OPERATION. RPDA= XXXX START TRK= YY START SECTOR= 22 IDENTIFIES THE STARTING DISK ADDRESS OF THE PRESENT CYLINDER, TRACK, AND SECTOR VALUES ARE DECIMAL. RPCA= YYYY THIS LINE GIVES THE CONTENTS OF THE RP TRACK AND SECTOR ADDRESS REGISTER AND THE CONTENTS OF THE DESIRED CYLINDER gg?RESS REGISTER. THIS LINE IS NOT PRINTED IF SwW<05> IS NOT LINE 10 BUFFER ADDR= XXXX WRD CNT= YVYYY ACTUAL NUMBR WRDS XFRD= 2712 THIS LINE GIVES THE STARTING ADDRESS OF THE BUFFER USED FOR THE CURRENT DATA TRANSFER OPERATION, ITS SIZE(WORD COUNT), AND THE ACTUAL NUMBER OF WORD TRANSFERED. THE STARTING ADDRESS OF THE Eggffz égc{:AOCTAL, THE WORD (OUNT AND WORDS TRANSFERED VALUE L. (ZRJOAD RPQ7 PERF EXER MACRO Vv04.00 1-JAN-83 12:06:52 PAGE 3-21 SEQ 0025 USER DOCUMENTATION LINE 1 EXPCTD DATA= xXXX THIS LINE GIVES RECEVD DATA= YYYY THE EXPECTED DATA, 6221;25 LOCATION OF THE WORD WORD POS= 711 THE RECIEVED DATA FROM THE IN THE SECTOR. LINE 12 HEADER CONTENTS OF THIS GAVE LINE GIVES THE ERROR. ERROR SECTOR= THE CONTENTS OF XXXX THE XXXX XXXX HEAOER OF XXXX THE SECTOR WHICH LINE 13 cooeees RPEC1= XXXX RPE(C2= YYYY THIS LINE wilLL BE PRINTED AFTER A SUCC SSFUL RETRY OF WHICH BECAME ECC CORRECTABLE DURING RE TRY., A SECTOR LINE 14 ECC CORRECTABLE WITHOUT OFFSET THE SECTOR NECESSARY. IN ERROR IS ECC CORRECTABLE. NO RETRY ATTEMPTS ARE LINE 15 READ CORRECTLY AT (NEG OR POS) OFFSET THE SECTOR IN ERRCR WAS READ WITHOUT ERROR AT OFFSET VALUE. THE INDICATED B?ESE$CIOR IN ERROR BECAME £CC CORRECTABLE AT THE INDICATED LINE D]SK, THE WORD POSITION IS 16 ECC CORRECTABLE AT (NEG OR POS) OFFSET CORRECTED ON X RETRY L?;EngRAYION WAS PERFORMED ERROR FREE ON THE INDICATED RETRY IN CIRJOAQ RPO7 PERF EXEF MACRO V04,00 1-UAN-83 12:06:52 PAGE 3-22 SEQ 0026 USER DOCUMENTATION LINE 18 UNCORRECTABLE AFIER X RETRIES THE OPLRATION COULD 80T BE INDICATED NUMBER OF PERFORMED RETRY ATTEMPTS, CORKECTLY AFTER THE DIFFERENT ERROR DURING RETRY WHILE THC PROGRAM WAS RETHYING THE EFROR, A DI FFERENT OCCURRED., IF THIS LINE 15 PRINTED, THE RH/RP ReGISTERS W ILL ALSO BE PRINTED (SEE LINE 2). LINE 20 DATA COMPARISON ERRCRS A PRINTOUT OF DATA COMPARISO* ERRORS FOLLOW THIS LINE. 21 LINE TOTAL THIS THF VALUE COM2ARE LINE ERRORS= GIVES GIVEN IS THE XXXX TOTAL IN DECIMAL. DATA (OMPARISON ERROR COUNT. THE LINE 22 THE DATA (OMPARED CK THIS LINE INDICATES ECC CORRECTION, THE RESJLTS OF THE DATA COMPARISON FOLLOWING LINE 23 ECC CORRECTIUN RESULTS THE PROGRAM PERFORMED ECC CORRECT ION AND THE RESULTS ARE REPORTED. THE FDDRESS IN MEMORY OF THE WORD (S) IN ERROR ARE GIVEN, THE WORD(S) T ER CORRECTION ARE PRINTED, BEFORE CORRcCTION AND THE wORD(S) AF LINE 24 ERROR BURST BEGINS AT WORD XX¥ IN DATA FIELD OF ERRCR SECTOR THIS IS AN INFORMATIONAL LINE WHICH WILL BE PRINTED FOR 'DCK' ERRORS WHICH ARE ECC CORRECTABLE OR WHICH BECOME €CC CORRECTABLE DURING SEQ 0027 CIRJOAOQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-23 USER DOCUMENTATION RETRY, DECIMAL. *XXX' ]S THE WORD UFFSET VALUE FROM 'RMEC!' AND IS IN LINE 25 ERROR WAS NOT IN THE DATA READ = ECC CORRECTION CAN'T BE PERFORMED THE DATA SRROR WAS NOT IN DATA TRANSFERED TO MEMORY. LINE 26 CONTENTS OF THE ERROR SECTOR (REPORTED ABOVE) IF SW<03> 1S SET, THE SECTOR WHICH GAVE THE ‘DCK’, ‘WCF*' ERROR OR 'HARD' DATA CHECK ERROR IS PRINTED. CONTENTS OF THE SECTOR FOLLOW THIS LINE. °'DTE' OR, THE LINE 27 TOTALS; ERRORS:X WRDS WRJTN: THIS IS THE LAST TYPE ERRORS. LINE YYYY WRDS READ: 72171 PRINTED FOR ALL NON-POSITIONING 'ERRORS ]S THE TOTAL ERROR COUNT FOR THE DRIVE AND INCLUDES EVERY ERROR DETtCTED, REGARDLESS OF TYPE. ‘WRDS WRITN® 'WRDS READ' IS THE IS THE TOTAL NUMBER OfF TOTAL NUMBER OF WORDS WRITTEN THE DRIVE. WORD READ BY THE DRIVE. LINE 28 TOTALS; SEEKS: THIS fHE IS XXX TOTAL POS ERR= YYY TOTAL SKI ERR= ? LAST *TOTAL SEEKS' B8Y THE DRIVE. LINE IS THE TOTAL NUMBER Of ERRORS. SEEK OPERATIONS PERFORMED ‘TOTAL P0S ERR' IS THE ERROR BY Tiit wwmivE, TOTAL NUMBER OF PROGRAM DETECTED POSITIONING *TOTAL SKI ERR® TOTAL NUMBER OF °'SKI*' THE DRIVE. |S THE PROGRAM DESCRIPTION 8.1 PRINTED FOR ALL POSITIONING TYPE PROGRAM OPERAT]ON ERRORS SIGNALED BY BA SEQ 0028 WHEN THE PROGRAM IS STARTED, PROVIDING APT TTY ENABLE BIT OR DIAGNOSTIC LOADED BY OTHER THAN APT SCRIPT MODE, PARAMETERS ARE CLEARED OR INITIALIZED, IS SET ALL TABLES AND THE PARAMETERS WHICH ARE UNDER OPERATOR TTY ENTRY CONTROL ARE CHECKED FOR VALIDITY AND CONSISTENCY. RH CONTROLLER INTERRUPT ENABLE ('IE') IS SET, TI¥ KEYBUARD INTERRUPT ENABLE IS STARTED. THE THE 1S SET, AND THE KWll-L OR KW11=P CLOCK COMMAND ENTRIES WILL NOW BE ACCEPTED BY THE PROGRAM. PROGRAM SCANS TS INTERNAL ASSIGNMENT TABLES, .OOKING FOR: 1) %) ) DRIVES TO ASSIGN/DEASSIGN PERFORMANCE REPORT TYPEQUT REQUESTS DRIVES REQUIRING COMMAND INITIATION, BUFFER ASSIGNEMENT, &) DRIVES COMPLETING CURRENT OPERATIONS. OR PARAMETER SELECTION. PROGRAM CONTINUES SCANNING ITS TABLES UNTIL AN ENTRY IS FOUND. IN THE CASE OF THE PROGRAM AT INITIAL START, THE FIRST ENTRY WILL BE MADE BY THE OPERATOR WHEN A DRIVE IS ASSIGNED (°T*® COMMAND). WHEN A DRIVE DRIVE IS ROUTINE 1S ASSIGNED, PRESENT, THE_KEYBOARD ENTRY ROUTINE VERIFIES THAT THE IS AN RPO7, THEN ISSUES A ISSUES A "RECALIBRATE' AND IS 'READIN PRESET' INSTRUCTION. ONLINE. THE INSTRUCTION, ASSIGNMENT SETS °FMT16°', AND PARAMETERS FOR THE OPERATION ARE SELECTED AND A BUFFER IS ASSIGNED. IF THE OPERATION IS A WRITE OR WRITE CHECK COMMAND, THE ASSIGNED BUFFER WILL BE FILLED WITH THE SELECTED PATTERN. (WRITE CHECK COMMANDS ARE PARAMETERS SELECTED FOR THE PRECEDING WRITE COMMAND.) ISSUED AFTER EACH WRITE COMMAND. THE WRITE CHECK COMMAND USES THE IS THEN PASSED TO THE COMMAND INITIATION ROUTINE. CONTROL THE COMMAND INITIATION ROUTINE FIRSY LOOKS AT THE CYLINDER ADDRESS OF THE REQUESTED OPERATION. IF THE DRIVE MUST SEEK TO ANOTHER CYLINDER TO PERFORM THE OPERATION, THE PROGRAM ISSUES A SEARCH INSTRUCTION T0 THE DRIVE WITH A ‘TARGET® SECTOR WHICH IS 1 SECTOR EARLIER THAN THE 'TRANSFER' SECTOR. (THIS ALLOWS THE PROGRAM TO INITIATE OPERATIONS ON ANOTHER DRIVE WHILE THE PRESENT DRIVE, OR OTHER DRIVES, ARE SEARCHING FOR °‘TARGET' SECTORS., ALL SEEKS ISSUED BY THE PROGRAM ARE IMPLIED SEEK SFARCH OPERATIONS.) WHEN A SEARCHING DRIVE FINDS THE °‘TARGET' SECTCA AND INTERRUPTS, THE PROGRAM THEN ISSUES THE REGUESTED COMMAND 10 THE DRIVE THAT INTERRUPTED. WHEN THE [ATA TRANSFER OPERATION IS COMPLETE, THE DRIVE REGISTERS ARE STORED AND A DATA TRANSFER IS INITIATED FOR A WAITING DRIVE. ' THE OPERATION HAS BEEN COMPLETED NORMALLY, THE SAVED ORIVE REGISTERS ARE CHECKED TO VERIFY THAT NO ERROR R 8 BITS ARE SET; THE RH CONTROLLER BUS ADDRESS AND WORD COUNT ADDRESS RE REGISTERS ARE CHECKED YO VER]IFY THAT THE CORRECT NUMBER OF WORDS H AVE BEEN TRANSFERED AND THAT TWO REGISTERS ARE CONSISTENT WITH EAC H OTHER; AND It A READ COMMAND, THE DATA BUFFER IS co COMPARED. THE THE COMMAND WAS WHEN THIS SEQUENCE IS COMPLETED, THE DRIVE IS RETURNED TO THE ASSIGNED, INACTIVE LIST. THE PROGRAM THEN INITIATES A DATA iRANSFER ON A WAITING DRIVE ANL RESELECYS AND REINITIATES ANOTHER OPERATION ON THE RELEASED DRIVE. ERRORS WHICH OCCUR ARE PROCESSED IN THE FOLLOWING ORDER. MULT!PLE Lol Y CIRJOAOD RPO7 PERF EXER MACRO V0&4.00 1-JAN-83 12:06:52 PAGE 3-24 USER DOCUMENTATION 3 SEQ 0029 ERRORS WILL BE REPORTED AS THE FIRST ERROR TYPE CMECKED. A. ERRORS REPORTED FOR OPERATIONS WHICH HAVE NOT COMPLETED NORMALLY. OPERATION NOT COMPLETED WITHIN TIME LIMIT - EMI3 UNIT WENT OFFLINE = EMI14 8. ERRORS REPORTED FOR OPERATIONS WHICH COMPLETE NORMALLY. CORRECTABLE UNSAFE = EMAY DRiVE TIMING ERROR - EMSZ DATA CHECK ERROR = EM21 WRITE CHECK WITH DCK SET = EM22 HEADER CRC ERRORS = EM20 FORMAT ERRORS - EM24, EM26 HEADER COMPARE ERRORS = EM25, EM27 PROGRAM DETECTED POSITIONING ER°0R - LMST SEEK INCOMPLETE ERROR = EM50 WRITE CHECK WITHOUT 'DCK' SET - EM23 RH CONTROLLER ER UNIBUS TRANSFER ERROR = EM4LO ‘OP]*' ERROR - 'PAR' 'WCF* EM31 ERROR - EM33 ERROR - EM34 'JAE' ERROR - EM35 ‘WLE' ERROR = EM3 6 MISCELLANEOUS DRIVE ERROR - EM30 C. ERRORS NOT FLAGGED BY THE HARDWARE ERROR DETECTION LOGIC. BUS ADDRESS OR WORD COUNT INCORRECT - EMA41 DATA COMPARE ERRORS = NO DRIVE ERROR DETECTED - EM&2 CAN'T MATCH DATA READ WITH A PATTERN - EM4L3 ERROR BIT(S) SET, BUT NO ERROR SIGNALED BY THE RH CONTROLLER - EM44 ECC LOGIC FAJLURE = EM4S BUS ADDRESS OR WORD COUNT NOT CONSISTENT - EMé&6 8.2 DUAL PORT OPERAT]ON DUAL PORT OPERATION IS NEARLY IDENTICAL TO THE OPERATIOY ? IN SECTION 8.1. THE DIFFERENCES ARE IN COMMAND SEQUENC AND COMMAND TERMINATION. WHEN THE DUAL PORT HANDLER ROUTINE IN THE EXERCISER PROGRAM RECEIVES A REQUEST FOR A DRIVE, THE PROGRAM VERIFIES THAT THE DRIVE IS ONLINE. TEST THE DRIVE IS SELECTED AND THE RPCS1 REGISTER IS READ TO THE "DVA' BIT, DRIVE. IF THE DRIVE IF THE DRIVE IS IN NEUTRAL, THIS WILL SEIZE THE IS SEIZED BY THE OTHER PORT, A DRIVE CLEAR COMMAND IS ISSUED 10 THE DRIVE TO SET 'PORT REQUEST'. THE PROGRAM THEN CHECKS 'DVA' IN *RPCS1°', IF THE DRIVE 15 AVAILABLE AS INDICATED BY THE °DVA' BIT, THE COMMAND SEQUENCE WILL BE INITIATED IN THE NORMAL MANNER (SEE SECTION 8.1 ABOVE). IF °‘DVA' WAS NOT SET, THE PROGRAM MAKES AN ENTRY FOR THE ORIVE IN AN INTERNAL °‘PORT REQUEST PENDING' TABLE AND STARTS A 15, SECOND TIMER FOR THE DRIVE. IF THE DRIVE HAS NOT SWITCHED TO THE REQUESTING SYSTEM WITHIN THE 15. SECOND INTERVAL, THE PROGRAM REPORTS A °ND RESPONSE TO PORT REQUEST®' ERROR. NORMALLY TH]IS ERROR MESSAGE iNDICATES A FAILURE IN THE DUAL PORT CONTROL LOGIC IN THE DRIVE BEING TESTED; HOWEVER, UNDER CERTAIN CONDITIONS 0 0D CIRJUAQ RPO7 PERF EXER MACRO v0&4.00 1-JAN-83 12:06:52 PAGE 3-25 USER DOCUMENTATION (E.G. MASSBUS PAR & TY ON A TTY), THE OT ER AFTER 1T HAD REOUE ST ED SEQ 0030 ggs BEING REPORTED ON THE OTHER SYSTEM SSOR WAS UNABLE TO PROCESS THE DRIVE THE DRIVE. THE OPERATOR MUST BE AWARE OF WHAT THE OTHER SY TE M IS DOING AT RELATED ERROR MES ) AG ES PROPERLY. ALL AFTER A DRIVE HAS c0 M PLFTED AN 0 P E RA THE REGISTERS AND JSSUE A 'RELEAS 3 ! TERMINATED WITH AN ERROR, THE DRI v ERROR PROCESSING HAS BEEN COMPLET E TIMES TO INTERPRET THE PORT T HE PR OGRAM WILL S 10 DR VE; If THE OPERA T E RELEASED UNTIL DRIVES WHICH eR EIN NEUTRAL BUT NOT BEING STIL L_TREATED AS DUAL PORT DRIVES IN THAT A RELEASE COMMAND l SSUED AT THE END OF NORMAL COMMAND PROCESSING OR AT THE END 0 RR OR PROCESSING. A RELEASE COMMAND ]SSUED UNDER THESE CONDIT l ONS H HAS NO FUNCTIONAL EFFECT ON THE OPERATION OF THE DRIVE. SINGLE PORT DRIVES, EXERCISED BY T4E OPPOSITE PORT ARE 8.3 1 SELECTION OF OPERATION VARIABLES A. SECTOR ADDRESS SELECTION IS RANDOM BETWEEN THE VALUES IN 'MINSEC® AND °*MAXSEC'. TRACK ADDRESS SELECTION IS RANDOM BETWEEN THE VALUES IN 'MINTRK' AND °*MAXTRK'. CYLINDER ADDRESS SELECTION IS RANDOM BETWEEN °'MINCYL®' AND °"MAXCYL'. IF A MINIMUM ADDRESS IS GREATER THAN THE CORRESPONDING MAXIMUM ADDRESS, PROGRAM WILL SWAP °"MAX®' AND °*MIN' ADDRESSES AND CONTINUE. B. THE THE WORD COUNT IS RANDOMLY SELECTED BETWEEN 6 AND THE VALUE 'WRDCNT® (MAX WRD CNT). THIS IS NECESSARY AS THE PROGRAM REQUIRES 4 LOCATIONS IN THE DATA PORTION OF THE SECTOR TO BE ABLE TO MAT(H THE DATA TO A PATTERN FOR DATA COMPARISON PURPOSES AND NEEDS 2 MORE LOCATIONS IF A READ HEADER & DATA COMMAND IS ISSUED. C. THE DATA WRITTEN IS RANDOMLY SELECTED AMONG THE 15. STANDARD PATTERNS. SELECTION. D. 8.4 THE PARAMETER 'PATTERN' IF THIS PARAMETER IS 0. ENABLES THE RANDOM PATTERN THE COMMANDS ARE SELECTED RANDOMLY. WRITE CHECK DATA COMMAND 15 SE?:O?SS&AQELV IF THE PREVICUS COMMAND WAS THE APPROPRIATE WRITE DATA PATTERNS THE PROGRAM SELECTS ONE OF THE FOLLOWING DATA PATTERNS TO WHEN A WRITE COMMAND IS SELECTED. THE ENTIRE BUFFER IS f THE SELECTED PATTERN, WHEN DATA IS REAC FROM THE DISK, T COMPARES DATA ON A SECTOR BASIS. IF THE PARAMETER ‘PATTER PROGRAM WILL ATTEMPT TO MATCH THE FIRST & DATA WORDS OF EAC TO ONE OF THE FOLLOWING PATTERNS. HOWEVER, If THE PARAMETER IS NOT O, THE PROGRAM WILL ASSUME THAT THE DESIRED DATA PATTER LOCATION ‘PATTERN' IS THE DATA TO LOOK FOR AND WILL NOT TRY TO ANY PATTERNS. THIS ALLOWS THE OPERATOR TO SCAN THE DISK FOR ANY SPECIFIC PATTERN. PAT 1 PAT 2 PAT 3 PAT & PAT S PAT 6 PAT 7 PAT 8 D CIRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 3-26 USER DOCUMENTATON SEQ 0031 CIRJOAQ RPO7 PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 3-27 T O 0 0 0 O A N N E N A N A N AOOORNARNNAND NROONANOOAWORN NAORO VWVOM USER DOCUMENTATION PAT 9 OeIJT[esoLNRSAXt TO0O0IO0O0O0O000O ev PAT 10 11 PAT 12 PAT 13 PAT 14 172666 077777 153333 000000 7 7 PAT 15 ]OAeNAgOoVfMgNAXoRNolAoNARoNoRfAoRdAoRoNdM[NkAlN 177776 4 7 6 PAT gGggSg—QeGGPGP-P OMAeOMAOAOAMr—AOMOAR MAtOMrN AO| OLAVN [aoXgfldVSaNoVYaNOAB WO\ON ORMPCRCACAWCNCMNRIWANCRPOIoadindasidltand-dniAnanMNO OONMOMOMOMOMIOMNOMOMOMOMOMOMOM aosla]lty1n 4 4 7 7 4 7 p] 3 7 ? 7 7 7 7 I4 ? 4 7 * WORST 9.1 9.2 7 14 4 4 14 7 [4 7 4 14 ? [4 7 ? /4 4 7 7 7 4 7 7 CASE PATTERN RH/RP DRIVER THIS DOCUMENT IS THE USER'S GUIDE TO INITIALIZE THE JSR RETURN FOR THE RH/RP DRIVER. DRIVER: PC,RPINIT UPON RETURN YOU MUST EXAMINE THE ‘'DRVSTA' TAB THE STATE O THE DRIVES THAT ARE ONLINE FOR TESTING, EIGHT BYTES; ONE BYTE PER DRIVE. BE INDICATED AS FOLLOWS: CRVSTA DRIVE THE STATE SEQ 0032 CIZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-28 USER DOCUMENTATION >0 NL =0 NONEXISTENT DRIVE UNSAFE <0 THE DRIVE TYPE IS DEFINED IN AN 8 BYTE LONG TABLE TAGGED °'DRVIYP', DRIVE NULMBER. ENTRIES ARE ENCODED AS FOLLOWS: THE TABLE CONTAINS ONE BYTE DRVTYP INDEXED BY THE RPQ7 -1 NOT AN RPO7 ROUTINE WILL DO A READIN PRESET AFTER THE DRIVER HAS BELN FOLLOWING SEQUENCE. CALL: IS RPQ?7 S 'RMINIT® AND NONEXISTENT DRIVE 4 THE FOR EACH DRIVE CONDITION 0 9.3 INE OFFLINE, DRIVE IS NOT AN RPO7, OR JSR PNTDPB RE TURN1 INITIALIZED, RO,RPO7 RE TURN? IT AND WILL SET FMT16. IS CALLED USING THE ;MAKE THE CALL ;ADDRESS OF DPBt REYURN IF QUEUE RETURN [F IS FULL REQUEST IS IN :QUEUE OR THERE IS AN ;ERROR CONDITION *DPB (DATA PARAMETER BLOCK) PNTDPB: .BYTE 0 :(0) .BYTE .WORD 0 0 :(3) PSEL AND A17 AND Al6 : (&) WORD COUNT (MUST BE NEG.) .BYTE .BYTE .WORD 0 0 0 .BYTt .BYTE 0 .WORD O .WORD .WORD 0 O DRIVE NUMBER ¢(1) OFFSET VALUE OR FMT16, ECT, AND HC(CI :(2) COMMAND :(6) BUFFER ADDRESS OR REGISTER TABLE POINTER s (10) SECTOR ADDRESS OR sFIRST REG. ;(11) INDEX TRACK ADDRESS OR sLAST REG. INDEX :(12) CYLINDER ADDRESS ¢(14) ERROR TABLE POINTER ¢POINTS TO THE FIRST OF TWENTY sLOCATIONS OF WHERE THE DRIVER ;1S TO STORE THE RH/RP ;REGISTERS ON AN ERROR, IF LEFT ;IERO REGISTERS ARE NOT SAVED. ¢ (16) STATUS/ERROR INDICATOR sBIT15=1=ERROR OCCURRED :BIT07=1=DONE sBIT14-BIT09 AND B]T06-B1703 sINDICATE TYPE OF ERROR SEQ 0033 CIR JOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 3-29 ust R DOCUMENTATION 9.4 THE DRIVER PROVIDES A SOFTWARE TIMEOUT CAPABILITY 5 T0 UTILIZE THIS CAPABILITY YOU MUST SUPPLY THE'RP TIMER'' ROUTINE WITH THE ELAPSED TIME IN THE FOLLOWING MANNER: MOV #16.,=(SP) JSR PC,RPTMR 16, MILLISECONDS BETWEEN CLOCK TICKS :CALL THE TIMER ROUTINE 17 SHOULD Bt NOTED THAT YOU MUST PROVIDE THE CODE TO DRIVE (LOCK AND THE ELAPSED TIME MUST BE IN MILLISECONDS. 9.4. 1 EXAMPLE = WRITE 1000. WORDS 1%: 2%: WRTIDPB: JSR RO,RPO?7 sCALL THE DRIVER F 8%5 1% 3270P8016 :WAIT BMI] ERROR :ERROR OCCURRED .BYTE .BYTE .BYTE .BYTE .WORD .WORD .BYTE .BYTE .WORD .WORD WORD S ;ORIVE #S : :WRITE COMMAND : :WORD COUNT :BUFFER ADDRESS :SECTOR s TRACK :CYLINDER SERROR TABLE :STATUS/ERROR INDICATOR Wk TDPB 161 0 =1000. WRTBUF 3 § 400 ERRTBS O ALTERNATE WRTDPB: :DPB_ADDRESS S WRITE =1000. WRTBUF -WworRD 400,.ERRTBS,0 RP(S? RPW( RPBA RPDA RP(S2 RPDS RPER1 RPAS IF F 3.5 sTHIS SETUP ACHIEVED SEVERYTHING THE :ABOVE TABLE DID, BUT SIN A CLEANER FORMAT RH/KP REGISTERS MNEMON] ¢ FOR QUEUE {WAIT FOR COMMAND TO COMPLE'E DPB SETUP .WORD WORD .WORD .WORD .BYTE 9.5 THE INDEX 0 2 4 6 10 12 14 16 PAGE 3-3 3-30 1 3 SEQ 003 4 NSNS B S5 BN WNANLANILNNONONORND NOO S NLOONVOONSNO 2 PAGE RPLA RPDB RPMR1 RPDY RPSN RPOF RPD(C RPHR RPMR? RPER?2 RPEC] RPEC? RPBAE RP(CS3 * RH70 CONTROLLcR REGISTERS 9.6 COMMANDS PERFORMED BY THE DRIVER COMMAND CODE COMMAND TYPE SEEK 105 P DRIVE CLEAR RELEASE OFFSET RETURN TO CENTER READIN PRESET PACK ACKNOWLEDGE 11 113 115 117 121 123 N N P P N N GET REGISTER(S) 141 S WRITE CHECK DATA WRITE CHK HEADER & DATA WRITE DATA WRITE HEADER & DATA READ DATA READ HEADER & DATA 151 153 161 163 mn 173 RECAL IRATE 107 SEARCH 131 9.7 T nov2 SET FORMAT SELECT DRIVE 143 145 P P S S D 0 D D D 0 HOUSEKEEPING POSITIONING DATA TRANSFER SPECIAL PROVIDED BY THE DRIVER DPB STATUS/ERROR INDICATOR WORD THIS INDICATOR WILL INFORM THE USER OF THE RESULTS OF THE REQUEST. xfléafls ACCOMPLISHED BY SETTING VARIES BITS OF THE INDPICATOR TO BIT NO. MEANING If ON A 1" 15 ERROR OCCURRED - r~ ¢ USER DOCUMENTATION CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 3-31 SEQ 0035 USER DOCUMENTATION DONE DONE (BI1107=0) : BITS 14~9 SPECIFIES TYPE (BITO7=1); BITS 6-3 SPECIFIES TYPE 164(1) USER MADE A REQUEST FOR A FUNCTION TO BE 13(1) USER MADE A REQUEST FOR A FUNCTION PERFORMED ON AN OFFLINE T0 BE OR UNSAFE PERFORMED ON A DRIVE UNLOAD REQUEST IN QUEUE. DRIVE THAT HAS AN 12(2) PERSISTENT UNSAFE CONDITION EXIST. 11(2) UNCORRECTABLE PARITY ERROR OCCURRED 10(2) (&) FATAL PARITY ERROR. A MASSBUS CLEAR WAS PERFORMED, ALL QUEUES WERE EMPTIED, AND ALL DRVACT'S SET TO THE IDLE STATE 9(3) (&) SOF TWARE TIMEOUT OCCURRED ON THIS DRIVE 8(4) SOF TWARE TIMEOUT OCCURRED ON ANOTHER DRIVE 4 DONE 6(2) ERROR OCCURRED DURING AN [/0 OPERATION 5(2) ERROR OCCURRED DURING AN OPERATION OTHER THAN /0. 4(2) CORRECTABLE UNSAFE CONDITION OCCURRED 3(2) DRIVE ERROR OCCURRED THAT CAUSED AN AUTOMATIC '‘RECALIBRATE'' SEQUENCE PORT REQUEST TIMEOUT. THE DRIVER REQUESTED THE DRIVE BUT THE OPPOSITE PORT DID NO1 RELEASE THE DRIVE WITHIN 15, SECONDS. NON-EXISTENT DRIVE REQUESTED. USER MADE A REQUEST FOR A NON-EXISTENT DRIVE. 1]] ~ ~ [a¥] REQUEST WASN'T PUT IN QUEUE. REGISTERS WERE NOY SAVED) (RH/RP REQUEST QUEUE HAS BEEN EMPTIED. THE ISSUED A 'DRIV CLFAR'' TO THE DRJVE. NOTE: ALL RH/RP REGlSTERS.ARE SAVED DRIVER AS PER DPB+14 BEFORE THE ''DRIVE CLEAR', (3) REQUEST QUEUE HAS BEEN EHPYIED THE DRIVER ISSUED A MASSBUS INIT. ALL THE INIT RH/RP REGISTERS FOR THE DRIVE WERE SAVED AS PER DPB+14 BEFORE CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-4AN=-83 12:06:52 PAGE 3-32 SEQ 0036 USER DOCUMENTATION (4) 9.8 = A '‘RECAL IBRATE'' SHOULD BE BEFORE ANY OTHER COMMAND. ISSUED EKROR CALLS MADE BY THE DRIVER. THERt ARE A FEW ERRORS THAT CAN OCCUR THAT CAN NOT BE INDICATED WHEN THIS TYPE OF ERROR 1S DETECTED BY THE DRIVER IT WILL MAKE AN ERROR CALL OF THE FORM ''ERROR N'', WHERE ''N'' IS THE ERROR NUMBER AND THE ERROR WILL BE AN EMT INSTRUCTION. N TYPE DATA AVAILABLE 1 RH/RP INTERRUPT *R4= RP(CS1°S ADDRESS 2 UNEXPECTED ATTENTION R 1= DRIVE NUHBER R 3= ATA 8l7 *Ré4= RPCS; S ADDRESS OCCURRED (RHAS=0) OCCURRED R5= (R RPERRS =RPDS RPERRS+2=RPER1 RPERRS+4=RPER2 RPERRS +6=RPMR? 3 MASSBUS PARITY ERROR (M(PE=1) RD.ADR= ADDRESS OF RD.WRD= WORD READ 4 MASSBUS PARITY WRT.AD= ADDRESS OF REG. WRT.WD= WORD WRITTEN RD.WRD= WORD READ BACK 5 DDRESS PLUG CHANGE BIT SET ('OPE' ERROR) R1= DRlvglNUHBER * ERROR (PAR=1) THIS IS R3= AT *R4= RPCS; S ADDRESS R5= (RM =RPDS RPERRS RPERRS+2=RPFR1 RPERRS ¢4=RPER2 RPERRS +6=RPMR? THE ACTUAL UNIBUS ADDRESS (176700) REG. READ WRITTEN IN A DPB. RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE & SEQ 0037 .REM 3 VERSION 1. (CZRJO-A=0) THIS VERSION IS THE STARTING POINT THE RPO7 DISK DRIVE. FOR (X DIAGNOSTIC SUPPORT OF RPO7 PERF fXER MACRO V04,00 1-JAN-B3 12:06-52 PAGE S SEQ 0038 ;*LAST REVISION 01-JAN-83 TITLE CZRJOAD RPO? PERF EXER +*COPYR.GHT (C) 1983 ;*DIGITAL EQUIPMENT CORPORATION :*CCLORADO SPGS., (0. 80919 M 5-pnoann BY MIKE LEAVITT 'THIS PROGRAM WAS ASSEMBLED USING THE PDP=-11 'PACKAGE (MAINDEC=-11-DZQAC-(5), 18-MAR-81 ) 104000 000004 000011 R ROR R ROR TYPEQUTS ROR ND OF PASS MESSAGES LL DATA COMPARE ERRORS ? NGE _PARAMETERS ERROR SCOPE STKLMT PIRG DSWR DDISP SPLAY SECTOR IF *DCK' ERR U 28TH RETRY . 1F DATA COMPARE ERROR & SW07? °*WCF' 'RRECTABLE AFTER 1817 DATA COMPARE AFTER READ W/0 D ONLY MODE 0 BASIC DEFINITIONS = EMT ior THE STACK POINTER t++ 1100 wex ::BASIC DEFINITION OF ERROR CALL BASIC DEFINITION OF SCOPE CALL = 11 ;:CODE FOR HORIZONTAL = 200 = 177776 s, CODE FOR CARRJAGE RETURN=-LINE s sPROCESSOR STATUS WORD = 177774 ssSTACK LIMIT REGISTER = 177570 = 177570 s sHARDWARE SWITCH REGISTER : sHARDWARE CISPLAY REGISTER = 12 = 15 = 177772 = X0 TAB ;. CODE FOR LINE FEED ::CODE FOR CARRIAGE RETURN FEED s sPROGRAM INTERRUPT REQUEST REGISTER ;:GENCRAL REGISTER ERROR ., DISPLAY REMAINDER OF BUFFER DO NOT TYPE DRIVE STATJUS AT PROGFAM START DO NOT TYPE PERFORMANCE REPORT AFTER SPECIFIED :*GENERAL PURPOSE REGISTER DEFINITIONS RO ERROR T CHECK FOR MAXIMUM ERROR COUNTS OT DROP DRIVE AT END OF TE€CT SPLAY ERROR SECTOR IF °'DCK' DTE', OR 'MISCELLANEOUS DEF INITIONS LF CR (LOOP ON PRESENT VALUES) L REGISTER DISPLAY IF ERROR SC CORRECTION RESULTS DISFLAYED IF S;INITIAL A?gSESS OF CRLF ggu ps 000000 P> pmMmmmmm Pl 2R 2N 2% 2% BN BN BN BN NE NN NN BN BE NN NE BN BE N .SBTTL 001100 OPERAT]IONAL SWITCH SETTINGS R LAE ....o.o.o.o-o.o.n-....-..h..--o.-...-.o.o SBTTL SYSMA{ >» X 87 MAINDEC °DCK*® ERROR TIME N . CIZRJOAQ RPO7 PERF EXER MA'RO V04.00 1-JAN-83 12:06:52 PAGE 5-1 SEQ 0039 BASIC DEFINITIONS 000021 00000% 00000 000004 000005 00C )06 000007 000006 000007 R1 R? R3 R4 RS R6 R7 SP PC 000000 000040 000100 000140 000200 000240 000300 000340 PRO PR PR? PR3 PR& PRS PR6 PR7 100000 SW1S = 100000 Sw12 SW1l SW10 = 10000 = 4000 = 2000 001000 000400 Sw09 SW08 SW0? Sw06 000040 SW05S 100000 8IT1S 000020 000010 000004 000002 000001 001000 000400 000200 000100 000040 000020 000010 000004 000002 000001 040000 020000 010000 004000 002000 001000 000400 =0 = 40 = 100 = 140 = 200 = 240 = 300 = 340 s sGENERAL REGISTER ::GENERAL REGISTER s sGENERAL REGISTER s sGENERAL REGISTER ::GENERAL REGISTER :;GENERAL REGISTER :sGENERAL REGISTER ::STACK POINTER : sPRUGRAM COUNTER DEFINITIONS ::PRIORITY :sPRIORITY ::PRIORITY ::PRIORITY :;PRIORITY ::PRIORITY ::PRIORITY ;sPRIORITY LEVEL LEVEL LEVEL LEVEL LEVEL LEVEL LFEVEL LEVEL s+ 'SWITCH REGISTER'' SWITCH DEFINITIONS SWi1é SWw13 000200 000100 1 X2 %3 X4 XS 16 X7 X6 X7 J*PRIORITY LEVEL 040000 020000 010000 004000 002000 = = = = = = = = = = 40000 = 20000 = 1000 = 400 = 200 = 100 = 40 Sw04 = 20 SW03 =10 SW02 =4 SW01 = 2 Sw00 =1 SW9=5W09 SW8=SW08 SW7=SW07 SW6=SW06 SW5=SW05 SW&=SW04 SW3=SW03 SWw2=5w0?2 SW1=SW01 SW0=Sw00 ;«DATA BIT DEFINJTIONS (BITOO 1O BIT1S5) BIT14 B8IT13 81112 BITN 8IT10 817109 81108 = 100000 = = = = = = = 40000 2C000 10000 4000 2000 1000 400 0 1 2 3 4 § 6 7 O gar EXER MACRO V04.00 1=-JAN=83 12:06:52 PAGE S5=-2 BIT07 81106 BITOS BIT04 81103 BIT102 BITOY SEQ 0040 = 200 = 100 = 40 = 20 =10 =4 = 2 BITOO =1 B179=B1109 B8118=8]108 8117=81T107 BIT6=B]T06 B115=BIT0S BIT4=BIT04 BI13=B]T103 8172=B1102 000001 W =200~V NN 000064 000240 *BASIC ‘'CPU'' TRAP VECTOR ADDRESSES ERRVEC = 4 RESVEC = 10 TBITVEC = 14 ::TIME OUT AND OTHER ERRORS ;;RESERVED AND ILLEGAL INSTRUCTIONS VT BIT BPTVEC : :BREAKPOINT TRAP (BPT) TRTIVEC = JOTVEC = 20 PWRVEC 14 = 14 = 24 EMTVEC = 30 TRAPVEC = 34 TKVEC = 60 TPVEC = 64 PIRQVEC = 240 .SBTTL ::TRACE TRAP ;s INPUT/0UTPUT TRAP (10T) *«SCOPEet :;POWER FAIJL :;EMULATOR TRAP (EMT) «+ERRORee ::'TRAP'' TRAP :eTTY KEYBOARD VECTOR ;s TTY PRINTER VECTOR ; sPROGRAM INTERRUPT REQUEST VECTOR RPO7 REGISTERS :CONTROL AND STATUS REGISTER 1 (RP(S1) 000100 000200 000400 001000 002000 020000 040000 NN = OOV VBNV — el il anld Sl cnld =l —~ b el oD il D vd cad ) i el e D el b PONLAVNININIAINININ) = b b e b b ek = b =2 OO OO O 000004 000010 000014 000014 000014 000020 000024 000030 000034 000060 8IT1=BIT01 8170=81T00 1€ RDY Al6 A7 PGl MCPE TRE :SC = = = = = = = 100 200 400 1000 2000 20000 40000 = 100000 s INTERRUPT ENABLE (BIT #6) sREADY (BIT #7) ;HIGH ORDER BUS ADDRESS BIT (BIT #8) sHIGH ORDER BUS ADDRESS BIT (BIT #9) ;PORT SELECT (BIT #10) ;MASSBUSS PARITY ERROR (BIT #13) s TRANSFER ERROR (BIT #14) ;SPECIAL CONDITION (BIT #15) sWORD COUNT REGISTER (RPW() s (EACH BIT IS CALLED BY BIT NUMBER) :BUS ADDRESS REGISTER (RPBA) ¢ EACH BIT IS CALLED BY BIT NUMBER) :CONTROL AND STATUS REGISTER 2 (RP(S2) 000001 000002 000004 Us1 use Use =1 s 2 =4 SUNIT SELECT (BIT #0) SUNIT SELECT (BIT #1) JUNIT SELECT (BIT #2) SEQ 0041 REGISTERS 130 13 132 133 134 135 136 137 138 139 140 161 }25 000010 000020 000040 000100 000200 000400 001000 002000 004000 010000 020000 040000 100900 BAl PAT CLR IR OR MDPE MXF PGE NEM NED UPE WCE OLT = = = = = = = = = = = = 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 ;BUS ADDRESS INCREMENT INHIBIT (BIT #3) :MASSBUS PARITY TEST (BIT #4) :CLEAR (BIT #5) ;s INPUT READY (BIT #6) ;OUTPUT READY (BIT #7) :MASS BUS PARITY ERROR (BIT #8) :MISSED TRANSFER ERROR (BIT #9) :PROGRAM ERROR (BIT #10) :NON EXISTENT MEMORY (BIT #11) :NON EXISTENT DRIVE (BIT #12) :UNIBUS PARITY ERROR (BIT #13) :WRITE CHECK ERROR (BIT #14) = 100000 ;DATA LATE (BIT #15) 164 :DATA BUFFER REGISTER }zg .SBTTL 1?3 ;CONTROL AND STATUS 1 REGISTER. (#00) GO FO F1 Fo f3 Fé :GO BIT (BIT #0) ;FUNCTION CODE BIT ;FUNCTION CODE BIT sFUNCTION CODE BIT JFUNCTION CODE BIT sFUNCTION CODE BIT }22 151 152 153 154 155 156 }gg :(EACH BIT 000001 000002 000004 000010 000020 000040 004000 }23 DVA RPO7 REGISTERS = = = = = = 1 2 4 10 20 40 = 4000 060001 000002 000004 000100 OFFON EWN ILv vV = z = = 1”7 020000 PIP 10000 = 20000 172 };2 000200 000400 001000 002000 004000 010000 040000 100000 };g 000001 000002 181 000020 182 183 18¢ 185 186 DRY DPR PGM LBT WRL MOL ERR ATA = = = = = = 1 2 4 100 (BIT #11) 000004 000010 000040 000100 000200 000400 001000 ;OFFSET ON (BIT #0) ;EARLY WARNING (BIT #1) :INTERLEAVE (BIT #2) :VOLUME VALID (BIT #6) 200 400 1000 2000 4000 ;DRIVE READY (3IT #7) ;DRIVE PRESENT (BIT #8) ;PROGRAMABLE (BIT #9) sLAST SECTOR TRANSFERRED (BIT #10) JWRITE LOCK (BIT 1Y) MEDIUM ON-LINE (BIT #12) :POSITIONING OPERATION [N PROGRESS (BIT #13) = 40000 = 100000 ;ERROR REGISTER #01 177 178 179 180 ;DEVICE AVAILABLE M #2 #3 #4 #5 ;DRIVE STATUS REGISTER (RPDS1) (#01) 161 162 163 164 165 166 167 168 169 170 (RPDB) IS CALLED BY BIT NUMBER) :COMPOSITE ERROR (BIT #14) :ATTENTION ACTIVE (BIT #15) (RPER1) (#02) ILF ILR z = 2 :ILLEGAL FUNCTION (BIT #0) sILLEGAL REGISTER (BIT #1) FER W(F ECH HCE HCRC AOE = 20 :FORMAT ERROR (BIT #4) :WRITE CLOCK FAIL (BIT #5) ;ECC HARD ERROR (BIT #6) ;HEADER COMPARE ERROR (B]T #7) ;HEADER CRC ERROR (BIT #8) :ADDRESS OVERFLOW ERROR (BIT #9) RMR PAR = 4 = 10 = = = = = 40 100 200 400 1000 ;REGISTER MODIFICATION REFUSED (BIT #2) :PARITY ERROR (BIT #3) - ~Ne— o~ o OAO RPO7 PERF EXER MACRO Vv0&4.00 1-JAN-83 12:06:52 PAGE 5-3 EXER MACRO Vv 064.00 1-JAN=-83 12:06:52 PAGE —BODO 13[FV9YIET,4OT ¢MAINTENANCE REGISTER SEQ 0042 (RPMR1)(#03) SATTENTION SUMMARY PSEUDO-REGISTER (RPAS) (#04) e[r~cY‘ea~YgxaYoatlaPatoY'ayYaPaRxY20aY0aaVxTaaHl gg mg ggS Gmmg Bg LQIL o0 [~Y~Y~YoYaYaYaV[a)VIEVNRISVIED> LIA[TVSOJEIeVIV)E OOODODO o[e]yl) L2£%3 taetttaa 5g S S SScf ag) SS [@]elolele] ;DESIRED SECTOR/TRACK ADDRESS REGISTER (RPDA) ;DRIVE TYPE REGISTER (RPDT) (#05) (#06) TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE Iv TYPE NUMBE v TYPE NUMBE iv IVE REQUEST R 3 MOVING HEAD (B IT QOO0 awv raraoacacxaoaraxo NO}CTNOo o0WVOT0oVOT0VoO{0aONT0aV[aO0(g NM—OINOAN=N NMINONDODOV2Y3L~VIROOJJN(JONIO=eJMVEOKIPNNP&MOeVENReoDoWbO£eRaVEObX[OOPlr PePPPPmePP ¢O[4el0[eO~olog fYeb0al[OYee=LallVeYeoLallOYeeallOteollVeelYelaleY]laeYalYoalte V]o¥ &VIRg g LgVEX [ [—NOO0 e= l=edIl=Tedl=oLlO=el(OO0el=eilel] cocCoOrOFPOrOPONONONO [elelelslololols] [elelelolels] S5-& OO0 UMW — TTFPNM MMMMMMN N eN—gO[X[{wo0OJelOlONeToel0lVOoOelCleslOeO le]OoelOIoJelTOlOeoe-leOlOl0eeOQle0lOlaOee0lael~0Ol—e O O—NOINOTNFMO=(N\OJOCO=O—=OeNIMeIFNOM-NDOOO (2 RJOAQ RPO7 PERF RPO7 REGISTERS O0 —ONTOOOO «LOOK=AHEAD REGISTER (RPLA) &oVaLgEVRXOO0O0O0O0O[olelelelelels] . TAPE DRIVE (8] T NOT SECTOR ADD RE (=] (#07) o STER (RPSN) ;SERIAL NUMBER RE GIST s (EACH IS CALLED BY BIT NUMSER) sOFFSET REGISTER (RPOF) (#11) VDWUE w fYvaY[l O- O [=]elele] [l [+ 4 (=] (#10) D (BIT M) (BIT #15) SEQ 0043 CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 5-5 7 REGISTERS 245 :DESI R ADDRESS (RPDC) (#12) 248 : CURR R ADDRESS (RPCC) (#13) . (EAC :RPO7 ERROR OOV ~NO NS W OO S QNN WWWAUVWN AOAIAIN PVNINI VNN LLED BY BIT NUMBER) . (EAC 000400 001000 002000 004900 010000 100000 mw~ NS AW = OO~ AORLALNLNINLNINLNLNINI NN NN NNNN Qo 0000 000N 00000000 PGE = = = z = 100000 DGE TPE AIR DPE BPE DCU XV Dv( TCF LCE L8C SK1 BSE :WRITE READY UNSAFE (BIT 8) :WRITE OVERRUN (BIT 9) (BIT 10) *READ/WRITE UNSAFE #1 (BIT 11) TREAD/WRITE UNSAFE #2 (BIT 12) *READ/MWRITE UNSAFE #3 :PROGRAM ERROR (BIT 15) = ;RPO7 ERROR 000001 000002 000004 000010 273 WRYUNS WOR RWU1 RWU2 RWU3 ALLED BY BIT NUMBER) REGISTER #2 (RPER2) (#14) = = =z = = z = z = = = = = REGISTER #3 (RPER3) (#15) (BIT 0) :DIAGNOSTIC ERROR ING ERROR(BIT 1) :TEMPETATURE WARN :AJR SYSTEM WARNING ERROR3) (BIT 2) :DATA PARITY ERRUr (BIT :BUFFER PARITY ERROR (BIT 4) :DC UNSAFE (BIT 5) 6) : INDEX UNSAFE (BIT 7) :DEVICE CHECK (BIT (BIT 8) STACH CALIBRATION FAILURE 9) (BIT R ERRO NDER :L0SS OF CYLI 10) (BIT K CLOC <L0SS OF BIT :SEEK INCOMPLETE (BIT 14) :BAD SECTOR ERROR (BIT 15) 0 0 JECC : (EA JECC s (EA REGISTER (RPEC1) (#16) CALLED 8Y BIT NUMBER) ) N REGISTER (RPEC2) (#17 ER) SBTTL 7 DRIVER COMMANDS NOOP SEEK RECAL DRVCLR RELSE RTC READIN SEARCH IS CALLED BY BIT NUMB = 101 = 105 = 107 = 111 = 113 = 117 = 12 = 131 WCKD = 15 WRIDAT FMTRK RDDAT = 16] = 163 = 171 WCKHD RDHD ABASE AVECT1 = 153 =173 = 176700 = 256 :NO OPERATION ; SEEK ;RECALIBRATE ;DRIVE CLEAR ;RELEA ;RETURN TO CENTER LINE ;READ IN PRESET s SEARCH ;MRITE CHECK DATA :WRITE CHECK HEADER & DATA ;WRITE DATA sFORMAT TRA(CK sREAD DATA ;READ HEADER & DATA CIRJOAD RPQ7 PERF EXER MACRO V0&4.00 K07 DR IVER . COMMANGS 309 0 1-JAN-83 12:06:52 1=JAN- 12:06:52 PA PAGE 5-6 - F 4 SEQ 0044 CZRJOAQ RPO7 PERF EXER MACRO V04.00 1=-JAN=-83 12:06:52 PAGE 6 6 & SEQ 0045 TRAP CAT(CHER 1 SBTTL =0 :*ALL UNUSED LOCATIONS FROM & = 776 CONTAIN A *'.¢2 HALT" *+SEQUENCE TO CATCH ILLEGAL TRAPS AND INTERRUPTS 600000 000174 000174 000176 TRAP CATCHER +LOCATION 000000 CONTAINS 0 TO CATCH' IMPROPEALY LOADED VECTORS DISPREG: .WORD 000000 SWREG: .SBTTL 0 .WORD 0 000137 003532 JMP S#STARTI ; 000204 000137 003522 JMP SW#START LSBITL 1150FTWARE SWITCH REGISTER STARTING ADDRESS(ES) ) 000200 8 ::SOFTWARE DISPLAY REGISTER ACT"1 2:JUMP TO STARTING ADDRESS OF PROGRAM :CHANGE THE RHXX/RP)7 ADDRESS HOOKS ::"'.'.""..""""'"""."'."..".'t.'l'.t"".".t""." 000210 . *HOOKS REQUIRED BY ACT11 000046 $SVP(=. :SAVE PC ;:1)SET LOC.46 TO ADDRESS OF 246 000046 835523 segng 000052 040000 ‘WORD 10 1 000210 001100 =$SVPC .=1100 "SBTTL 40000 SENDAD IN .S$EOP $32)SET LOC.52 T0 40000 **“RESTORE PC APT PARAMETER BLOCK fi't".'.t'.'t"""".""""".l"i.."t't"..t"..""t.t". SET LOCATIONS 24 AND 44 AS REQUIRED FOR APT .R 000024 000044 001100 000024 000200 000044 001100 001100 2222232222222 X2XXX222ZX2222X222322222X2 2222222222022 2] .$X=. 226" 500 244 SAPTHDR .=.8X ;:SAVE CURRENT LOCATION 1ISET POWER FAIL TO POINT TO START OF PROGRAM TIFOR APT START UP S°POINT TO APT INDIRECT ADDRESS PNIR. ;:POINT TO APT HEADER BLOCK ::RESET LOCATION COUNTER B X22X222Z322222X3X2222232222222232322332223222222222222222220CR22 3] SETUP APT PARAMETER BLOCK AS DEFINED IN THE APT=PDP11 DIAGNOSTIC *INTERFACE SPEC. 601100 12 001100 001102 001104 001106 001110 001112 000000 001206 014234 014234 014234 000032 001114 SAPTHD: $HIBTS: .WORD SMBADR: .WORD $TSTM: .WORD SPASTM: -WORD SUNITM: _WORD "WORD TAB. XY=, O ::TW0 HIGH BITS OF 18 BIT MAILBOX ADDR. SMAIL :-ADDRESS OF APT MAJLBOX (BITS 0-15) 6300. -:RUN TIM OF LONGEST TEST 6300. ::RUN TIME IN SECS. OF 1ST PASS ON 1 UNIT (QUICK VERIFY) 6300. :-ADDITIONAL RUN TiME (SECS) OF A PASS FOR EACH ADDED UNIT SETEND-SMAIL/2 ;:LENGTH MAILBOX~E TABLE (WORDS) SCMTAGSTARING ADDRESS CIZRJOAO RPO7 PERF EXER MACRO v04.00 1-JAN=-83 12:06:52 PAGE 7 SEQ 0046 COMMON TAGS 0 .SBTTL COMMON TAGS :;"'.""'."'."""""""".'"'..."Q"'l"'"".'.""Q"' s*THIS TABLE CONTAINS VARIOUS COMMON STORAGE LOCATIONS *USED IN THE PROGRAM, 01114 001114 01114 01116 01117 01120 01122 01126 01126 01130 onN 01132 01134 001136 001140 001142 001144 001146 001150 001151 001152 001156 001156 001160 001162 00164 001166 001170 000000 000 000 000000 000900 000000 000000 000 on 000000 000000 000000 000000 000000 000000 000000 000 000 000000 177570 17757C 177560 177562 177564 177566 000 001172 012 o017 001173 001174 001176 001202 001203 00120¢ $CMTAG: 002 000 000000 207 . 077 015 012 377 000 377 .=TAB. XY ;s START OF COMMON TAGS .WORD $TSTNM: .BYTE $ERFLG: .BYTE $ICNT: ,WORD SLPADR: .WORD SLPERR: .WORD SERTTL: .WORD S$SITEMB: .8YTE $ERMAX: .BYTE SERRPC: .WORD $GDADR: .WORD $BDADR: .WORD $GDDAT: .WORD $BDCAT: .WORD WORD .WORD $AUTO0B: .BYTE $INTAG: .BYTE .WORD SWR: .WORD DISPLAY: .WORD $TKS: 177560 $TkB: 177562 $TPS: 177564 $TPB: 177566 $NULL: .BYTE O 0 0 0 0 0 O O 1 0 0 0 O O 0 0 0 0 O DSWR DDISP 0 : ;ADDRESS OF SWITCH REGISTER : *ADDRESS OF DISPLAY REGISTER <. TTY KBD STATUS :.1TY KBD BUFFER ;. TTY PRINTER LTATUS REG. ADDRESS ;o TTY PRINTER BUFFER REG. ADDRESS ¢CCNTAINS NULL CHARACTER FOR FILLS SFILLC: 12 ¢s INSERT FILL CHARS, AFTER A ''LINE FEED’ $FILLS: .BYTE $TP:LG: $TMPO: S$BELL: .BYTE ,WORD .ASCIZ SQUES: SCRLF: SLF: .BYTE .ASCI! LASCII ASCIZ ¢ CONTAINS THE TEST NUMBER ;s CONTAINS ERROR FLAG ¢ s CONTAINS SUBTEST ITERATION COUNT ;- CONTAINS SCOPE LOOP ADDRESS s CONTAINS SCOPE RETURN FOR ERRORS ;s CONTAINS TOTAL ERRORS DETECTED ¢ CONTAINS ITEM CONTROL BYTE ¢ - CONTAINS MAX. ERRORS PER TEST ¢ CONTAINS PC OF LAST ERROR INSTRUCTION s CONTAINS ADDRESS OF 'GOOD*® DATA ¢ cCONTAINS ADDRESS OF 'BAD' DATA :;CONTAINS °'GOOD*' DATA s CONTAINS °'BAD' DATA ; ;RESERVED==NOT TO BE USED ssAUTOMATIC MODE ;s INTERRUPT MODE 2 INDICATOR INDICATOR :;CONTAINS # OF FILLER CHARACTERS REQUIRED 0 .."TERHINAL AVAILABLE'' FLAG (BIT<07>z0=YES) 0 sUSER DEF INED <207><377><377> ;:CODE FOR BELL :;QUESTION MARK ¢ s CARRIAGE RETURN s LINE FEED <15> <12> ::'...l'..'.'-l."‘"'""'.""""..'.Q"'."i'."."...""..' .SBTTL APT MAILBOX-ETABLE EXXX2322X23222222222 222X 22 R RRRRRRRRRRRRRRRRRRRRRRR) 001206 001206 001210 001212 001214 001216 001220 001222 001224 001226 EVEN 000000 000000 000000 000000 000000 000000 000000 000000 $MAIL : SMSGTY: SFATAL: STESIN: $PASS: $OEVCT: SUNIT: SMSGAD: $MSGLG: SETABLE: .WORD .WORD .WORD .WORD .WORD _WORD .WORD .WORD AMSGTY AFATAL ATESIN APASS ADEVCT AUNIT AMSGAD AMSGLG ;s APT MAILBOX ;MESSAGE TYPE CODE ;;FATAL ERROR NUMBER ;:1eST NUMBER ;;PASS COUNT ;;DEVICE COUNT ;;1/0 UNIT NUMBER ;;MESSAGE ADDRESS ; ;MESSAGE LENGTH s :APT ENVIRONMENT TABLE SEQ 0047 CIRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 7-1 MAILBOX-ETABLE SENV: 001272 SENVM: $SWREG: SUSWR: $CPUOP: .BYTE BYTE .WORD .WORD .WORD AENV AENVM ASWREG AUSWR ACPUOP : ;ENVIRONMENT BYTE :sENVIRONMENT MODE RITS ;s APT SWITCH REGISTER s sUSER SWITCHES .+ CPU TYPE,OPTIONS BITS 15=11=(CPU TYPE —— mm * < =< b [e o Jv o] [] oo — own se 11/704=01,11/05=02,11/20=03,11/40=04,11/45=05 11/70=06,P0Q=07,0=10 BIT 10=REAL TIME (CLOCK BIT 9=FLOATING POINT PROCESSOR <X s a0 AN T vt ® » % 2 T X" 2w —t B> 000000 QO [=]e oo APT AMAMS1 AMTYP1 BIT 8=MEMORY MANAGEMENT ;:HIGH ADDRESS,.M.S. BYTE ::MEM, TYPE,BLK#1 MEM.TYPE BYTE -= (HIGH BYTE) 900 NSEC CORE=001 300 NSEC BIPOLAR=002 S00 NSEC M0OS=003 000000 SMADR1: .WORD AMADR1 ;sHIGH ADDRESS,BLK#1 000 000 000000 000 000 000000 000 000 000000 000254 000000 SMTYP?2: $MADR?: 3: SMAMS SMTYP3: $MADRS3: SMAMSA: SMTYPSG$MADR& SVECT: SVE(CTZ: §MaMS2: .BYTE BYTE AMAMS? AMTYP?2 AMADR? AMAMS3 AMTYP3 AMADR3 ::HIGH ADDRESS,M.S. BYTL ::MEM,TYPE ,BLKH? s sMEM_LAST ADDRESS.,BLK#? :sHIGH ADDRESS,M.S.BYTE 176700 000000 000000 000000 $BASE : SDEVM: $COW1: $(DW?2: SETEND: LMEXIT +WORD .BYTE BYTE -WORD .BYTE .BYTE .WORD .WORD +WORD .WORD -WORD .WORD -WORD AMAMSS AMTYPG AMADR4 AVECT1 AVECT? ABASE ADEVM ACDW1 ACDW? MEM.LAST ADDR.=3 @vTeS,THIS WORD AND LOW OF : MEM.TYPE ,BLKN3 s cMEM.LAST ADDRESS BLK#3 ::HIGH ADDRESS ,M.S.BYTE :IMEM. TVPE ,BLKAG sMEM.LAST ADDRESS ,BLKAS + s INTERRUPT VECTOR1,BUS PRIOR]ITYA1 : INTERRUPT VECTORN2BUS PRIORITY#2 s :BASE ADDRESS OF EQUIPMENT UNDER TEST : :DEVICE MAP :;CONTROLLER DESCRIPTION WORDA#1 : ;CONTROLLER DESCRIPTION WORD#?2 . "‘TYPE"’ J CIRJOAO RPQO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 8 SEQ 0048 USER DEFINED TAGS .SBTTL USER DEFINED TAGS 001272 001274 001276 001300 001302 001306 001306 0n1310 176700 000254 172540 172542 000104 177546 000100 000000 SRPADR: SRPVEC: $LKCSR: $LKCSB: SLPVEC: $LKS: SLLVEC: CLKFLG: .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD 176700 254 172540 172542 104 177546 100 0 :FIRST ADDRESS OF RHXX/RPO7? REGISTERS sRPO7 VECTOR ADDRESS :ADDR OF KW11-P STATUS REGISTER :ADDR OF KW11-P COUNTER BUFFER SADDR OF KW11=-P VECTOR :ADDR OF KW11=L STATUS REGISTER ADDR OF KWi1=L VECTOR TNO CLOCK= 0, P=CLOCK= 1 OR L=CLOCk< =1 0013.« 000000 STATIN: .,WORD 0 SYTYPE STATISTICS® 00,212 000074 HERTZ: .WORD 60. :60H7 SYSTEM= 60. OR SOWZ sver = 50. INDICATOR 001220 DRIVE =$UNIT 001316 001320 000000 000000 ATIN: DRVNO: .WORD .WORD 0 0 :DRIVE # STORAGE: ERRORS 1=5 ¢ 10 :SAME AS USED IN APT SATTN REG STORAGE: ERRORS 15 & 10 ‘DRIVE # STORAGE FOR PRINTOUT 001324 000 RETRY: _BYTE 0,0 ;ERROR RETRY LIMIT IN TP~ LOWER BYTE 001322 000000 001326 001330 001332 001334 001336 001340 001342 001344 001346 001350 001352 000003 000000 000000 000000 000000 000000 000000 000000 000000 177777 000 001353 000 001354 001356 001360 001362 001364 001366 001370 00137 001777 001. "« 001376 001400 001402 001404 001406 001410 001412 001414 000000 000000 000000 000000 000000 000000 000000 000 000 000000 000000 000000 000000 000000 000000 000000 000000 000000 001422 000000 001416 001420 001424 000000 000000 000000 000 MASK : FAIRNS: LSTAD: CHGADR: CFLAG: BADSEC: HOUR: MINUTE: SECOND: ONESEC: IROIND: FRSTER: . MWORD 0 .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD ,WORD .BYTE 3 O 0 0 0 O O 0 O -1 0 .BYTE O .WORD .WORD .WORD .WORD LWORD .WORD .WORD .BYTE .BYTE .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD O O O 0 0 O O O O 0 O O O O O O 0 0 TSTANY: .WORD O SAVPOS: SAVER1: SAVERS: ERCTR: LIMIT: CMCNT: (MCYL: CMSEC: CMTRK: WRDPOS: ECBIT: ECSEC: ECMSKO: ECMSKT: ECWRD: ECGD: ECBADO: ECWRDY: ECGD1: ECBADT: ROONLY: .WORD .WORD .WORD O 0 O SERROR RETRY REGISTER MASK ;RETRY COUNT [N THE UPPER BYTE ;MAXIMUM TIME IN QUEUE VALUE ;STORE LAST MEMORY ADDRESS HERE S CHANGE RHXX/RP0O7 UNIBUS ADDRESS FLAG ;"CONTROL C* FLAG :BAD TRACK/SECTOR FLAG ;HOUR COUNT STORED HLRE MINUTE'S COUNT STORED HERE ;SECOND'S COUNT STORED HERE :TIMER ROUTINE COUNTER (FOR ONE SECOND) ;2ERO INDICATOR FOR THE DATA COMPARE ROUTINE :DATA COMPARE ERROR FLAG :1F > 0, PROCESSING 'DCKER® OR CAN'T MATCH PATTERN J1F € 0, HISCOHPARSION f OUND :MISCOMPARSION OR CAN'T MAT(CH PATTERN FLAG :1F < 0, ERROR [N BUFFER :SAVE WORD POSITION IN COMPARE ROUTINE :SAVE R1 HERE :SAVE PS HERE :NUMBER OF ERRORS :DISPLAY LIM]IT *WORD COUNT :CYLINDER ADDRESS :SECTOR ADDRESS : TRACK ADDRESS ;WORD POSITION IN COMPARE ROUTINE :ERROR BURST BIT OFFSET ;ERROR BURST WORD OFFSET (RELATIVE 10 SECTOR} :CORRECTION MASK FOR FIRST ERROR WORD :CORRECTION MASK FOR SECOND ERROR WORD :LOCATION OF FIRST ERROR WORD :GOOD (CORRECTFN) DATA, FIRST WORD :BAD (RECEJVED, DATA, FIRST WORD ;LOCATION OF SECOND ERROR WORD :GOOD (CORRECTED) DATA, SECOND WORD :BAD (RECEIVED) DATA, SECOND WORD :TEST ON FE CYLINDER ONLY =0, TEST ANYWHERE ON MEDIA sREAD/WRITE MODE=0, READ MODE ONLY=1 1! CIRJOAQ RPQ7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 8-1 SEQ 0049 USER DEF INED TAGS 001426 500000 DRVPAR: .WORD 0 001430 000000 XXDP: .WORD 0 001432 001433 001436 001440 001461 001442 001443 200 103 112 055 101 05§ 060 132 117 000 122 ;WHEN ORIVES ARE BEING ASSIGNED, :0=CHANGE DRIVE PARAMETERS :1=D0 NOT CHANGE DRIVE PARAMETERS STHE LOW BYTE CONTAINS THE DRIVE NUMBER FROM WHICH ‘THE PROGRAM WAS LOADED. S'XXDP' DEVICE LLIST BEX LASCIT JASCI1 <CRLF> /{IRJO/ ;PROGRAM 1D NLIST ASCIT CASCIT JASCII LASCIZ BEX 7=/ /A7 7=/ 70/ REV: THE MIGH BYTE CODE FOR THE RPO7. CONTAINS THE ;REVISION LEVEL SPATCH LEVEL .EVEN .SBTTL COMMON PARAMETERS :THE FOLLOWING TWO LOCATIONS CONTAIN THE SOFT ERROR RATE WORDS USED TO "DETERMINE END OF PASS WHEN THE PROGRAM 1S DATA BIASED. :17T WILL TAKE APPROXIMATELY 2.4 PASSES TO REACH THE SOFT ERROR RATE OF *1 ERROR IN 10410 31'5 (6 25 X 108 WORDS) READ OR 10. PASSES TO REACH THE 90% *CONF IDENCE LEVEL OF &4.128 X 10-10 BITS (2.58 X 109 WORDS) READ. *ENDCON= LSB AND suocouoz= MSB 001446 001450 142200 007540 ENDCON: :THE .WORD .WORD 142200 007540 :(2.58 X 10°8 WORDS) OR (4.128 X 109 BITS) READ FOLLOWING TWO LOCATIONS CONTAIN THE SEEK ERROR RATE WORDS USED ‘DETERMINE END OF PASS WHEN THE PROGRAM IS SEEK BIASED. 10 21T WILL TAKE 1 PASS TO REACH A SEEK ERROR RATE OF 1 enaon IN 10%6 SZEKS OR 3 SPASSES TO REACH A 90% CONFIDENCE LEVEL OF ‘ENDSEK= LSB AND ENDSEK+2= MSB 3 X 10%6 SEEK 501452 001454 041100 000017 ENDSEK: .WORD -WORD 041100 000017 :(1 001456 001460 0014€2 000062 000004 000017 MAXER: CMPLMT: CMPTIM: .WORD .WORD .WORD 50. & 15.,15. :MAXIMUM ERRORS ALLOWED PER DRIVE *NUMBER OF COMPARE ERRORS TYPED QUT :FIRST WORD [S THE INTERVAL BETWEEN DATA COMPARES. S(IN MINUTES). SECOND WORD IS THE INTERVAL COUNTER, 000017 X 106 SEEKS) *1F FIRST WORD 1S 2ERO, THEN DATA COMPARE IS ALWAYS ON. 001466 001470 03100C 000000 001474 STHIS TIMER HAS NO AFFECT IF Sw01=1 WRDCNT: INTRVL: .WORD .WORD 12800. 0,0 000001 PASSES: .WORD 1 IS TYPED. *NUMBER OF PASSES 10 END OF TEST [THIS PARAMETER IS ':855355° WHEN PROGRAM [S OPERATING IN AUTO RUN(CHAIN) 001476 000000 PATTERN: .WORD O “IF EQ O,RANDOMLY SZLECT DATA PATTERN 001500 000000 RANDW(: O 000000 .WORD -MAXIMUM WORD COUNT (6-12800.) SFIRST WORD IS THE PERFORMANCE TYPEOUT SCIN MINUTES). SECOND WORD IS THE “IF FIRST WORD 1S 2ERO, NO REPORT INTERVAL INTERVAL COUNTER. :1F NOT £ O,SELECT ONE SET OF PATTERN ‘POINTED BY THE "'PATTERN “1F EQ TO 0, GENERATE A RANDOH WORD COUNT :FOR THE OPERATION. “IF NOT EQ TO O, USE THE VALUE IN °‘WRDCNT® FOR CIRJOAQ RPO7 PERF EXER MACRO V04,00 1-JAN=-83 12:06:52 PAGE 8-2 SEa@ 0050 COMMON PARAMETERS 001502 000003 RATIO: .WORD 3 :THE WORD COUNT ;READ/WRITE RATIO ;0 = 15/ V= 6/% 5/ 5 6 - Y/S 2/6 b o= 001504 000001 ENDING: -WORD 001506 000001 WRT(HK: +WORD 001510 000000 RANDOM: -WORD N 2 3 - 0= [RANGE 0 - (READ/WR]ITE) 7] 4/4 177 :1F NOT EQ O, END OF PASS DETERMINED :BY THE 'WORDS READ' COUNT., (2.58 X 1048 WORDS) s1F EQ O, END OF PASS DETERMINED sBY THE SEEK COUNT. (1 X 1046 SEEKS) s1F NOT EQ O, DO AN APPROPRIATE WRITE sCHECK AFTER EACH WRITE COMMAND. ;IF EQ O, SELECT WRITE CHECK COMMANDS sRANDOMLY, ;1F EQ T0 0, RANDOMLY SELECT DATA BLOCK sADDRESS. IF NOT EQU O,SEQUENTIJALLY SELECT DATA BLOCK ADDRESS 001512 001514 000010 000004 LSBTTL VALUES FOR FIRST OPERATIGN BEGPAT: BEGCOD: -WORD -WORD 8. 4 sSTARTING PATTERN CODE [RANGE 1 - 15.] STARTING COMMAND CODE [RANGE 0 = 5) WRITE CHECK DATA ('W(KD') 0 1 WRITE CHECK HEADER & DATA ('WCKHD® WRITE DATA ("WRTDAT') 2 . [ . [J . [J . [4 . [ 3 4 [4 . . 000400 001520 001522 001524 001526 001530 021532 001534 001536 001540 000000 0019542 001544 001546 001550 001552 001554 001556 001560 .SBTTL TABLES, CONSTANTS, AND VARIABLE LOCAT]IONS . [ = NOT USED) READ HEADER & DATA (°'RDHD') WRD CNT [RANGE 6 - WRD(CNT] 256. ST ARTING +WORD -WORD -WORD -WORD -WORD -WORD -WORD +WORD .WORD elolelelelele]lwls] cLIST OF DRIVES PERFORMING COMMANDS ORDERQ: 000000 ASNLST: -WORD 000000 DDRVS: 000000 ('FMTRK® (°RDDAT') .WORD el 000000 5 TRACK BEGWC: ¢A BIT :ADDRESSES OF OR VES TO BE DROPPED -WORD .WORD .WORD .WORD -WORD -WORD .WORD [elalelolelelel 001516 [J FORMAT READ DATA SET IS AN ASSIGNED DRJVE = NOT USED) CZRJOA0 RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 8-3 TAGLES, CONSTANTS, AND VARIABLE M 4 LOCATIONS 001562 001564 000000 000000 001566 001570 001572 001574 001576 001600 201602 001604 001606 000000 000000 000000 000000 000000 000000 000000 000000 00C200 ;ADDRESSES OF NEWLY ASSIGNED DRIVES NEWUNT: .WORD 0 001610 001612 001614 001616 001620 001622 001€24 001626 001630 000000 000900 000000 000000 000000 000000 000000 000000 000000 LIST OF DRIVES AVAJL: .WORD .WORD WORD .WORD WORD .WORD JWORD .WORD WORD WAITING FOR BUFFERS/PARAME TERS 0 0 0 0 0 0 O 0 O 001632 001634 001636 001640 001642 001644 001646 001650 001652 000000 000000 000000 000000 000000 000000 000000 000000 000000 :LIST OF DRIVES WAIT: .WORD JWORD .WORD .WORD WORD .WORD .WORD WORD .WORD WAITING FOR BUFFERS O 0 0 O 0 O 0 0 0 001654 001656 001662 001666 0J1672 001676 001702 001706 001712 001716 001722 001726 001732 001736 001742 001746 001752 001756 001762 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 00,0000 000000 000000 000000 000000 000000 000000 .WORD .WORD JWORD .WORD .WORD .WORD .WORD .WORD +WORD .MORD 0 O 0 0 0 0 0 0 0 0 BUFFER ALLOCATION TABLE ENTRY COUNT 000000 000000 0000GO 000000 00000C 000000 000000 000000 000009 000000 000000 000000 000000 000000 000000 000000 000000 000000 BUFTBL: .WORD .WORD .WORD .WORD .WORD .WORD .WORD WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 SEQ 0051 N CIZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN 83 12:06:52 PAGE 8-. TABLES, CONSTANTS, AND VARJABLE 0C0000 000000 000000 000000 000000 0J0000 000000 000000 000000 000000 .WORD .WORD .WORD WORD .WORD 0,0 0,0 0,0 v,0 0,0 002016 002022 002026 002032 002036 002042 002046 002052 000000 000000 000000 000000 000000 000000 200900 000000 000000 (GG2000 000300 00000 000000 000000 000000 000000 .WORD .WORD .WORD .WORD .WORD .WORD .WORD LWORD 0,0 (.0 0,0 0,0 0,0 0.0 0,0 0,( 000000 002056 002060 046234 046476 002064 002066 00,070 002072 002074 047202 047444 47706 050150 050412 002062 €02076 000000 .WORD 046740 .WORD .WORD LWORD ..ORD .WORD .WORD 002077 062100 002101 002102 002103 377 161 377 171 173 02104 004 OPTBL: 002106 002107 (02110 0211 002112 002113 (2114 202115 010 012 016 020 022 030 050 052 002116 002124 002134 002144 002154 002164 DRIVE3 DR'VE4L DRIVES DRI 'E6 DRIVE? .BYTE .BYTE .BYTE BYTE .BYTE .BYTE WCKD -1 WRTDAT -1 RODAT RDHD FUNCYION(COMMAND) 006 .BYTE .BYTE 6 .BYTE 60 .BYTE .BYTE .BYTE .BYTE .BYTE .BYTE .BYTE .BYTE 060 062 070 072 377 123 122 104 122 122 DRIVEZ2 ;ADDRESS OF ADPRESS ADDRESS ;ADDRESS ;ADDRESS ADDRESS THE PARAMETER BLOCK FOR DRIVE ¢ OF THE PARAMETER BLOCK FOR OF THE PARAMETER BLOCK FOR OF THE PARAMETER BLOCK FOR OF THE PARAMETER BLOCK FuUR OF THE PARAMETER BLOCK FOR DRIVE DRIVE DRIVE DRIVE DRIVE ;DRIVER COMMAND CONTYOL TABLE (USED IN RP DRIVER) (OM'BL: 002117 002120 002121 002122 0,0 ;ORIVE PARAMETER BLOCK(DPB) POINTER TABLE BLKADR: ,WORD DRIVEO ;ADDRESS OF THE PARAMETER BLOCK FOR DRIVE 0 .WORD DRIVE1 ADDRESS OF THE PARAMETER BLOCK FOR DRIVE 1 151 002105 SEQ 0052 LOCATIONS 001766 001772 001776 002002 002006 002012 & .EVEN 105 105 122 105 124 105 103 126 114 103 .BYTE .BYTE BYTE BYTE sWRITE CHECK DATA ;WRITE CHECK HEADER AND DATA (NOT USED) _WRITE DATA sFORMAT TRACK (NOT YJSED) ;READ DATA +READ HEADER AND DATA CODE CONTROL 10 12 16 20 22 30 50 52 62 70 72 =1 s SEEK TABLE :RECAL :DRIVE CLEAR sRELEASE sRETURN TO CENTERLINE +READIN PRESET sPACK ACKNOWLEDGE s SEARCH ;WRITE CHECK DATA ;WRITE CHECK HEADER AND DATA :WRITE DATA sFORMAT TRACK +READ DATA +READ HEADER AND DATA s TERMINATOR :MESSAGE CONTROL TABLE FOR °'OPTBL® TABLE MNTBL: .ASCIZ JASCIZ JASCIZ JASCIZ LASCIZ /SEEK /RECAL /DRVCLR /RELSE /RTC / / / / / 3 4 S 6 7 CIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 8-5 AND VARIABLE LOCATIONS ] o L l L Lt Tl T L CONSTANTS, NN AN CNOMPA oOOVgelToMVMJNo[TyoM=lele TABLES, —OO S SEQ 0053 (IRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 9 TABLES, CONSTANTS, AND VARIABLE 002314 002316 002360 0024¢0 002322 002324 002326 002330 002332 002334 002336 002340 002342 002344 002346 002350 002352 002520 002560 002620 002660 002720 002760 003020 003060 003120 003160 003220 003260 003320 002320 002354 002356 : STANDARD DATA PATTERN POINTER TABLE $TNDAT: 002460 _WORD .WORD DATAQ DATAT :STANDARD DATA PATTERN 0 :STANDARD DATA PATTERN 1 .WORD .WORD .MORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD DATA DATA&L DATAS DATA6 DATA7 DATAB DATAG DATA10 DATA11 DATA12 DATA13 DATA14 DATA1S5 :STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD ;STANDARD .WORD 00560 .WORD 003262 002360 002360 002362 002364 002366 002370 002372 002374 002376 002400 002402 002404 002406 002410 002412 002414 002416 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 002420 00c422 002424 002426 0)2430 002432 000001 000003 0000907 0C.J17 000037 000077 DATA1: 002460 002462 177776 177774 DATA2: 002434 002436 002440 002442 002444 062446 002450 002452 002454 002456 SEQ 0054 LOCATIONS ZEROS: DATAO: 000177 000377 000777 001777 003777 007777 017777 037777 077777 177777 DATA ZEROS ;STANDARD DATA PATTERN 2 DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN PATTERN ;ALL Q'S PATTERN .WORD ONES .WORD .WORD .WORD .WORD .WORD WORD .WORD .WORD LWORD .WORD .WORD WORD .WORD .WORD .WORD .WORD 0 O 0 0 0 0 O 0 0 0 0 O 0 0 0 0 sALL 0'S DATA PATTERN _WORD .WORD .WORD .WORD .WORD .WORD 000001 000003 000007 000017 000037 000077 ;STANDARD PATTERN 1 .WORD .WORD 177776 177774 ;STANDARD PATTERN 2 .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD sALL 1°'S PATTERN 000177 000377 000777 001777 003777 007777 017777 037777 Q77777 177777 3 4 5 6 7 8 9 10 11 12 13 14 15 CZIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 9-1 CONSTANTS, AND VARIABLE O T O AN AN TABLES, [elelelolslelelolelalolelele]o OTOVONNOVOIT -— OO0O0O0O0O0O0O0O0O0O00 002546 00255g SEQ 0055 LOCATIONS [olalelslolelelalalalelelele] :STANDARD PATTERN 3 000000 1772777 s STANDARD PATTERN & 00260 09260 00260 ; STANDARD PATTERN 5 EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 9-2 AND VARJABLE NI [gValaViVaVtoiala) [elelolelolalelololalalolololela) ONITOVONITOVONTIONT DO0 SEQ 0056 LOCATIONS [gVIaVValaVivalaVIvaleV] CONSTANTS, OIOV NONONIONI TABLES, :STANDARD PATTERN 6 (NOT WORST CAStE ; STANDARD PATTERN 7 alal'alal’alo1VotolvatalValalvalalAlel CIRJOAD RPO7 PERF :STANDARD PATTERN 8 (WORST CASE) 12:06: RO AR N A0D 00,1 73AN-85 12:06:52 PAGE 9-3 CZRJOAD RPO7 PERF EXER MACRO V04.00 1=JAN=63 i SEQ 0057 ;STANDARD PATTERN 9 [olelololololelelels ; STANDARD PATTERN 10 s STANDARD PATTERN 11 onN-g a day : STANDARD PATTERN 12 CZRJOAQ RPQO7 PERF EXER MACRO v04.00 1=JAN-83 12:06:52 PAGE 9-¢ TABLES, CONSTANTS, AND VARIAB LE toOC ATIONS [N AV eolelolelololololololeloclaBelololNIololelololololal—ol=olo=lel—s [elelalalelelololololsloleoBeolelololslololelolololelololals]LalabalbalbalbalbalabalbababaLalialalbalbalbalalbalabalalalalalalalal VONOTNOVTONIVTOINOTNOTIONIO o (=4 M NN UMMM MM MNP 00326 o SEQ 0058 ; STANDARD PATTERN 13 sSTANDARD PATTERN 14 sALL 1°'S DATA PATTERN sSTANDARD PATTERN 15 CIRJOAQ RPO7 PERF TABLES, CONSTANTS, 003342 003344 003346 003350 003352 003354 003356 EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 9-5 AND VARIABLE 000000 000000 000000 000000 000000 000000 000000 LOCATIONS .WORD .WORD .WORD .WORD .WORD .WORD .WORD 00N000 000000 000000 000000 000000 000000 000000 SEQ 0059 RJOAO RPQO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 10 ! €2 ER ROR POINTER TABLE .SBTTL 5 SEQ 0060 ERROR POINTER TABLE s*THIS TABLE CONTAINS THE INFORMATION FOR EACH ERROR THAT CAN OCCUR. :*THE INFORMATION [S OBTAINED BY USING THE INDEX NUMBER FOUND IN s*LOCATION SITEMB, THIS NUMBER INDICATES WHICH ITEM [N THE TABLE IS PERTINENT, s*NOTE: IF SITEMB IS O THE ONLY PERTINENT DATA [S (SERRPC). :*NOTE2: EACH ITEM IN THE TABLE CONTAINS & POINTERS EXPLAINED AS FOLLOWS: ) EM ;;POINTS TO THE ERROR MESSAGE :® ot 0T DF ::POINTS TO THE DATA ::POINTS TO THE DATA FORMAT g:} ;RH CONTROLLER INTERRUPT OCCURRED (RPAS = 0) 003360 003360 DT 0 :ERROR 2 —OODNO NS WA N ANAN N ANAN AN VWA =/ OBNOV W ORI POAD NUNOAUNININD b = b D d e e oy b g:s ;ERROR & NN\ B BN B ::POINTS TO THE DATA HEADER SERRTB: :ERROR 3 N =D OWN DH ;ERROR 1 OO0 NN E WO — o* :UNEXPECTED ATTENTION OCCURRED D12 0 E"% ] :MASSBUS PARITY ERROR (MCPE=1) DT3 0 gnz H ;MASSBUS PAR]ITY ERROR (PAR=') DT& 0 (ERROR S EMS :NOT USED sng ;RHXX DIDN'T RESPOND DH2 D12 0 003426 ;ERRCR 6 003430 003432 003434 003436 H DT6 0 TO ADDRESSING 0061 SEQ Q0 006 ERROR POINTER TABLE C(IZRJOAQ RPO7 PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 11 1 %& 003440 011600 003642 005740 S 003444 6 003446 003452 022626 7 003512 010046 003512 8 003514 9 003516 10 }3 003520 104401 000617 ;THIS ROUTINE HANDLES UNEXPECTED TIMEOUTS ] 003454 BADTMO: MOV ST -(ROS ;SAVE PC WHERE THE TIME OUT OCCURED SADJUST PC =2 TYPE BR 65% ‘8 +:TYPE ASCI2 STRING *GET OVER THE ASCIZ CMP ézgss: ) 104402 000246 000406 (SP)+,(SP)+ *RESTORE STACK POINTER LASCIZ <CRLF><LF>/UNEXPECTED BUS TIMEOUT, PC=/ MOV RO,=(SP) TYPOC NOP BR 12 (SP) ,RO :SETUP FOR TYPING OUT PC :PUT "HALT(0)* START1 LSBTTL START OfF PROGRAM MOV B8R INSTRUCTION HERE If ‘10 STOP ON UNEXPECTED TIMEOUT. :BRANCH TO START1 15 003522 }g 003530 012737 000407 177777 001332 START: 18 003532 012737 000400 001332 START1: MOV 003540 2 003542 000240 012737 000001 001212 21 003550 005227 (70000 START2: INC LSBTTL INITIALIZE THE COMMON TAGS ::CLEAR THE COMMON TAGS (S$CMTAG) AREA MoV #$CMTAG,R6 sosFIRST LOCATION TO BE CLEARED CLR (R6) + ¢ CLEAR MEMORY LOCATION 19 22 003554 52 003556 001375 000005 003560 003564 003566 003572 003574 012706 005026 022706 001374 012706 001114 003600 003606 003614 003622 003630 003636 012737 012737 012737 012737 012737 012737 034742 000340 040256 000340 037640 000340 000030 000032 000034 000036 000024 000026 003652 012737 123456 037226 003644 012737 003660 ‘013746 003664 012737 003672 012737 003700 012737 003706 022777 003714 001012 003716 003720 000403 012716 003724 000002 001154 001100 176543 000004 003720 177570 177570 177777 003726 #-1,CHGADR START? ;ALLOW RHXX/RPO7? ADDRESS TO BE CHANGED :START THE PROGRAM #400, CHGADR :CLEAR RHXX/RP0O7 ADDRESS CHANGE FLAG #1,8TESTN ;:SET TEST NUMBER IN APT MAIL BOX »0 ;TTY LOOP, WAIT FOR INCREMENT ::tt'ttt"t"tt"""t'"""'t't'!itt'.t.tttt"tt"t""tt'ltt't T§11: NOP MOV BNE RESET 25 YOU WISH .4 10F WORD :CLEAR THE WORLD CMP #SWR,R6 s :DONE? BNE .=6 :.LO0OP BACK I[F NO MOV #STACK,SP ssSETUP THE STACK POINTER s INITIALIZE A FEW VECTGRS MOV #SERROR,ANEMTVEC ;,EMT VECIOR FOR ERROR ROUTINE Mov #340 ,INEMTVEC+2 ;LEVEL 7 MOV #STRAP ,@#TRAPVEC ;;TRAP _VECTOR FOR TRAP CALLS MOV #340, 38 TRAPVEC+2.LEVEL 7 MOV #SPWRDN,3#PWRVEC ;;POWER_FAJLURE VECTOR 037224 MOV #340 @#PWRVEC+2 ; Lt VEL 7 MOV #123456,SLONUM_ MCV #176543,$HINUM ;:PRIME THE RANDOM NUMBER GENERATOR ; -BOTH HIGH AND LOW WORDS 2:SI2E FOR A HARDWARE SWITCH REGISTER. IF NOT FOUND OR IT IS ;;EQUAL TO A "=1', SETUP FOR A SOF TWARE SWITCH REGISTER. 000004 001154 001156 175240 643 [.QV MOV MOV MOV CMP BNE S#ERRVEC,-(SP) #6498 ,QNERRVEC #DSUWR, SWR #DDISP,DISPLAY #-1,3SWR BR MOV 65% #65%, (SP) k1] 66% ;;SAVE ERROR VECTOR ;;SET UP ERROR VECTOR s:SETUP FOR A HARDWARE SWICH REGISTER ;;AND A HARDWARE DISPLAY REGISTER :sTRY TO REFERENCE HARDWARE SWR :;BRANCH If NO TIMEOUT TRAP OCCURRED ;sAND THE HARDWARE SWR IS NOT = -1 s ;BRANCH [F NO TIMEOUT ;sSET UP FOR TRAP RETURN K CIRJOAO RPO7 PERF EXtR MaCRO V04.00 1-JAN-83 12:06:52 PAGE 11-1 INITIALIZE THE COMMON TAGS 001154 S SEQ 0062 003726 012737 000176 003742 012637 000004 003746 003752 003760 88%398 005037 132737 001403 012737 001214 000200 001227 001230 001154 .78 26 27 003770 gg 003776 012737 012737 003440 000300 000004 000006 :SETUP “'TIMEQUT'® TRAP VECTOR FOR UNEXPECTED BUS TIMEOUTS MOV #BADTMO,ERRVEC ;SETUP FOR UNEXPECTED TIMEO MOV #PRG,ERRVEC+2 :LEVEL 6 30 004004 3} 104401 001432 004010 004014 004016 005227 001022 104401 177777 003734 012737 000174 001156 [ 004022 000617 #SWREG, SWR MOV #DISPREG DISPLA ,,poxnr 10 SOF TWARE SWR 663 : MOV (SP)+,aERRVEC ..nssroae ERROR VECTOR CLR BITB BEQ MOV $PASS #APTSIZE,SENVM 67% #$SWREG, SWR :CLEAR PASS COUNT ..resr USER SIZE UNDER APT ‘YES,USE NON-APT SWITCH 1INO,USE APT SWITCH REGISTER J:TYPE 004024 ::698: 688: 005737 001012 123727 001406 023727 001005 104406 000403 112737 .SBTTL TYPE JREV TYPE PROGRAM NAME THE NAME INC BNE TYPE B8R .ASCIZ OF THE #-1 68$ ,69% :TYPE PROGRAM [D, REV LEVEL & PAT(CH LEVEL PROGRAM é8% If FIRST PASS :sFIRST TIME? $:BRANCH IF NO :iTYPE ASCIZ STRING ‘GET OVER THE ASCIZ <CRLF>aRPO7 PERFORMANCE EXERCISERa<CRLF> 001226 000001 001156 000176 cer VALUE ron SOF TWARE SwITCH REGISTER 062 ::ARE WE RUNNING UNDER XXDP/A(T? ane 7os *:BRANCH IF YES CMPB SENV.# P:ARE WE RUNNING UNDER APT? BEQ 70% PIPRANCH IF YES CMP SWR, #SWRE G ::SOFTWARE SWITCH REG SELECTED? 001150 GTSWR BR MOVB 000042 000001 33 gg BNE 708: 71%: 71% :BRANCH [F NO 718 #1,$AUTOB ::SET AUTO-MODE 23GET SUFT-SWR SETTINGS INDICATOR STHE FOLLOWING FINDS OUT THE PROGRAM CONTROL MODE: ;PAPER TAPE (MANUAL), ACT11, XXDP CHAIN OR DUMP 36 004122 005037 40 004144 41 004152 122737 103002 37 004126 38 004134 39 004136 42 004154 42 006160 4. 004164 45 004166 004172 «6 47 48 49 MOV .SBTTL 004062 004062 004066 004070 004076 006100 004106 004110 004112 004114 3 004122 65%: 006220 004220 006222 004226 0042%0 SO 004231 51 004232 52 004236 122737 001121 013737 105037 005737 0016425 104401 000412 005046 112716 104403 00, 000 1064401 000460 001430 177777 000041 000040 001430 000007 N01430 100042 CLR CMPB BNE MOV 001430 CMPB BHIS 1$: 004174 --738: 78 001430 001203 CLRB ST BEQ TYPE BR XXDP #-1,aN4) 3 aNG0,XXOP ;CLEAR *XXDP* LOAD DEVICE STORAGE XXDP ~o DEFAULT TO DRIVE 0 #7,XXDP 1% Y7V, 2% 738 72% LASCIZ <CRLF>/NOT CLR MOVB TYPOS BYTE -($P) XXDP,(SP) BYTE TYPE BR 1 0 $CRLF is *LOADED FROM AN RPO7? (UNKNOWN) ‘BR IF NOT SGET oevxcs INDICATOR AND NUMBER ;IS IT A VALID NUMBER ? YES ‘CHAIN MODE OR ACT11 AUTO ACCEPT ? ‘BR IF NEITHER ,.rvps ASCIZ STRING TGET oven THE ASCIZ TESHNG DRIVE / :CLEAR WORD ON STACK *GET DRIVE ADDRESS STYPE THE ADDRESS SONLY 1 CHARACTER *SUPRESS LEADING ZEROS SCR=LF *GET NUMBER OF DRIVES CZRJOAO RPO7 PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 11=2 GET VALUE FOR SOF TWARE SWITCH REGISTER 53 54 004260 55 004244 56 0042646 004252 57 58 §9 60 61 62 004274 006274 004276 004302 004304 004305 0064306 004312 004400 66 004400 67 004404 68 004410 69 004412 70 71 72 73 76 004416 0064420 006426 006432 006434 ;2 004442 77 006444 78 004450 79 004452 005227 001055 104401 000410 005066 113716 104403 001 000 104401 000432 004737 105737 001415 105737 001403 113737 005737 001411 013737 000405 105737 001002 006737 177777 006254 .:758: 74s: 001430 004314 §i76" 033430 001226 001256 001262 001274 001262 001272 001150 062436 004456 004464 004472 004476 004502 004504 004510 004512 004516 013737 013737 005037 012705 005025 022705 001374 012706 005037 001100 177776 90 91 92 93 94 95 98 004530 0045364 004540 004544 004550 004556 004562 005037 00 37 005037 005037 013737 005037 005037 001340 0013¢?2 001344 001472 001462 001334 046366 004566 004572 004576 0046602 004606 004612 C04616 102 004622 104 004626 105 004634 013737 005037 005037 005037 005037 005037 005037 005037 005037 032777 001402 001272 001276 001314 001520 040560 060562 BR .ASCIZ CLR MOVB TYPOS .BYTE .BYTE 1YPE BR LASCIZ 6$: 001346 001464 174320 838 75% ;FIRST TIME THRU HERE ‘NO ,,rvpe ASCIZ STRING 748 -GET ovea THE ASCIZ -($P) XXDP,(SP) 1 0 76% §s 7/, HALT :CLEAR WORD ON STACK :GET DRIVE ADDRESS :TYPF DRIVE ADDRESS SONLY 1 CHARACTER :SUPRESS LEADING ZEROS ,.rvpe ASCI2 STRING <GET OVER THE ASCIZ PROGRAM, CLEAR LOC. PC,S$TKINT BEQ MOVB ST BEQ MOV 4% S$VECT1,$RPVEC $BASE 6% $BASE,SRPADR *NOT :NEW INEW *NO :NEW $AUTOB ;RUNNING TSTB ? <CRLF>/T0 TEST DRIVE JSR BR 7%: 046630 047072 047334 047576 050040 050302 050544 001424 000001 4: 5% 002056 001312 INC BNE TYPE TSTB REQ TSTB 001256 80 81 82 83 84 85 86 87 88 89 006522 2%: SEQ 0063 $ENV 5$ $VECTI 6% 40 AND RESTART PROGRAM./<CRLF> :TURN ON THE KEYBOARD INTERRUPT *RUN UNDER APT MODE *NO,DO NOT BOTHER :NEW VECTOR ? LOAD IF = 0 VECTOR BASE ADDRESS ? BASE ADDRESS IN AUTO MODE ? BNE 6% MOV MOV CLR MOV CLR CMP BNE MOV CLR $SRPADR,RPADR $RPVEC .RPVE( STATIN NORDERQ,RS (RS) + #BLKADR,RS 7% #STACK,SP PS ;LOOK FOR END OF CLEAR AREA ‘BR IF NOT FINISHED :SETUP THE STACK POINTER :CLEAR THE PROCESSOR STATUS WORD HOUR MINUTE SECOND INTRVL +2 CMPTIM,CMPTIM+2 CFLAG DRIVEO+SFIRST :CLEAR THE HOUR'S COUNTER ;CLEAR THE MINUTE'S COUNTER :CLEAR THE SECOND'S COUNTER :CLEAR INTERVAL COUNTER INIT COMPARE TIME COUNTER :CLEAR THE °*CONTROL C' FLAG -RESET SFIRST FLAG FOR DRIVE 0 JSR MOV CLR (LR CLR CLR MOV CLR CLR PC.BUSADR HERTZ2,ONESEC YES *CHECK RHXX/RPO7 BUS ADDRESS :LOAD ADDRESS INTO DRIVER :LOAD VECTOR INTO DRIVER ;CLEAR PERFORMANCE SUMMARY TYPEOUT FLAG :START OF AREA TO CLEAR :RESTORE ONE SECOND COUNTER VALUE CLR CLR CLR CLR (LR CLR CLR DRIVE1+SFIRST DRIVE2+SFIRST ORIVE3+SFIRST DRIVE4+SFIRST ORIVES*SFIRST DRIVEG+SFIRST DRIVE7+SFIRST RESET RESET :RESET :RESET :RESET RESET :RESET S$FIRST SFIRST S$FIRST SFIRST SFIRST $FIRST $FIRST BEQ 13 :BR NO (LR BI1 RDONL Y #5W0, aSWR FLAG FLAG FLAG FLAG FLAG FLAG FLAG FOR FOR FOR FOR FOR FOR FOR DRIVE DRIVE DRIVE DRIVE DRIVE DRIVE DRIVE 1 2 3 4 S 6 7 :ASSUME READ/WRITE CONDITION :1S EXERCISER IN *READ ONLY' MODE [F ° CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 11-3 GET VALUE FOR SOF TWARE SWITCH REGISTER 106 004636 ?83 004642 005237 001424 8% : H(]) }}2 004654 123 124 125 126 004656 004662 004664 004666 004672 004674 004676 004700 004704 004706 127 004712 28 004716 129 004720 130004722 105737 001035 005227 001032 104401 104411 012500 (05737 (01013 105710 001414 “05760 001006 122710 001411 177777 INC BNE 064330 9%: 00133 000001 060103 10%: 104401 057017 11$: 106407 064440 12%: 000750 TYPE ROLIN MOV ST BNE 1STB 13%: 137 }gg $SAUTOB 13¢ #-1 :LOCK PROGKAM IN "READ ONLY' MODE LMSHELP ;TYPE "TYPE HELP MESSAGE (L) N 2 ° ‘READ THE ENTRY : SAVE ADDRESS or RE SPONSE ‘WAS (“C) TYPED? ‘BR IF YES :UAS RESPONSE A CARRJAGE RETURN ? (SP)+,R0 CFLAG 108 (RO) CMPB #'N, (RO) TYPE BADENT 12% 13% BR és B8R 13 TYPE TYPE NODFLT LHELPTX :BR IF YES (DEFAULT) :WAS IT TERMINATED WITH CARRIAGE RETURN ? ‘BR IF NO ‘WAS IT A 'Y* RESPONSE ? ‘BR IF YES :BR IF YES SWAS IT A 'N' RESPONSE ? ;TYPE BAD ENTRY MESSASE STRY AGAIN STYPE *NO DEFAULT® STRY AGAIN STYPE HELP TEXT MESSAGE :AUTO SIZE FOR RH70 CONTROLLER AND DETERMINE : JUMPERED FOR 22 OR 32 REGISTERS 140 004742 141 004746 162 004754 1646 004766 005037 062737 013746 (12737 013700 146 004776 147 005002 012701 005720 149 005006 012737 163 004760 145 0064772 148 005004 062700 005720 0405¢6 174000 000004 005032 001272 001234 SIZE70: 000004 000050 ADD 000012 000050 MOV ST 040566 ST 005014 005016 005020 005022 005720 005301 001375 012737 155 005032 ;gg 005036 012716 000602 005040 2%: 158 005040 013700 001272 3$. 160 005050 161 005052 001416 060001 163 005060 022711 154 005030 159 005044 162 005056 000403 013701 052710 000074 040566 001400 000003 CLR BIC MOV MOV MOV 1$: 040566 MOV ? :BR IF NO 11% 1(RO) 108 #'Y, (RO) BEQ ;AUTO MODE ? ‘BR IF YES *FIRST TIME THRU MERE 138 BEQ TSTB BNE CMPB BEQ 000131 104401 001410 133 604734 134 004736 TSTB BNE 000116 000753 ;gz 004742 001150 122710 131 004726 132 004730 150 151 152 153 RDONL Y ;SEE IF OPERATOR WANTS HELP TEXT PRINTED 112 004642 113 004646 114 004650 117 118 119 120 121 122 INC SEQ 0064 IF IT IS RHEXT #174000,8CPUOP ERRVEC,=(SP) #2% ERRVEC SRPADR RO ;CLEAR RPBAE OFFSET :CLEAR CPU TYPE REGISTER :SAVE CONTENTS OF ERROR VECTOR :SETUP 'TRAP' RETURN ADDRESS JGET RPCS1 ADDRESS #10.,R1 (RD)+ ;GET NUMBER OF REGISTERS TO CHECK STRAP IF NOT A VALID RPBAE #50, RHEXT SLOAD OFFSET FOR RPBAE #50,R0° (RO) + $GET REGISTER OFFSET FOR RH?0 :TPAP IF NOT A VALID RPCS3 (22 REGISTER RH) ST DEC BNE MOV (RO) + R1 1% #74 ,RHEXT STRAP IF NOT A VALID REGISTER ;DONE WITH ALL 32 REGISTERS 2 a IF NO :LOAD OFFSET FOR RPBAE (32 REGISTER RH) MOV RT] #3%,(SP) :SETUP RETURN ADDRESS MOV $RPADR, RO BEQ ADD X3 RO,R1 ‘BR IF NONE :GET RPBAE REGISTER CMP #3, (R1 ;ARE B8R MOV BIS 3¢ nuexr R1 saf7ia 6 (RO) :GET RPCS1 REGISTER ;GET RPBAE REGISTER OFFSET :SET EXTENDED ADDRESS BITS IN RPCS1 THE EXTENDED BITS SET IN RPBAE ? CZRJOAD RPQ7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 11-4 SEQ 0065 GET VALUE FOR SOFTWARE SWITCH REGISTER 164 005064 165 005066 166 005070 001010 005011 011046 168 905076 001003 167 005072 169 005100 };? 005106 042726 176377 052737 030000 012637 000004 001234 176 177 178 179 180 181 182 183 184 185 186 187 188 189 005120 0051246 005132 005140 005146 005154 005162 005164 005172 005200 005202 005206 005212 005214 190 005222 191 005230 192 005232 193 005240 ;g; 005246 }3? 004737 013737 012737 012737 013737 023727 101403 012737 162737 000241 006037 105737 001403 162737 023737 003406 013737 013737 177777 001330 001654 001656 001660 160000 064330 001660 001660 2%: 003000 001466 001660 001660 3$: 001660 00°466 001466 060606 001330 040020 210 005266 032777 000004 005037 104401 104411 012600 005737 001334 060226 g}; 005274 213 005276 214 005302 215 005206 21¢ 005310 217 005312 00,316 005320 005322 005324 005330 005332 005336 225 005340 226 005344 2¢7 005346 228 005352 105737 001404 001467 001353 105710 001454 105760 001006 122710 001406 122710 001443 104401 000735 1%: 160000 001660 001150 005737 001154 205 005260 209 005264 SIIZMEM: 062304 062434 000001 064330 001330 198 005246 199 005252 218 219 220 221 222 223 224 48: ;ROUTINE 005227 001005 6$: :BR_[f NO ¢CLEAR EXTENDED ADDRESS BITS *SAVE RP(S1 REG CONTENTS BNE L4 ;B8R IF NO (SP)+ ERRVEC sRESTORE CONTENTS OF ERROR VECTOR BIS Mov LKPAR: :ARE THE EXTEND BITS CLEAR IN RPCS1 ? #BIT13'8 IT12 $CPUOP ;SET THE 11/70 CPU TYPE CODE TO DETERMINE BUFFER MAX WORD COUNT INC BNE ’-1 1% (MP BLOS MOV suB CLC ROR 1S18 BEQ SuB LSTAD,#160000 ;OVER 28K ? 2% :NO #160000,BUF TBL+4 $XXDi MAX MEMORY 28K #ENDPGM,BUF TBL+4 ; SUB'RACT PROGRAM SPACE sCLEAR THE *7* BIT BUF TBL ¢4 ¢ CONVERT TO WORD CJUNT $AUTOB sRUNNING IN AUTO MODE ? 3% :BR_IF NO #1536. ,BUFTBL+4 ;SUBTRACT *XXDP' LOADER SIZE (1.5K WORDS) MOV MOV BUFTBL+4 ,WRDCNT ;USE MAX AVAIL MEMORY AS MAX WRD CNT WRDCNT,PARLST+2 ;VALUE FOR THE PARAMETER TABLE JSR MOV MOV MOV MOV (MP BLE ;FIRST TIME :BR IF NO THRU HERE ? PC,S$SIZE sSEE _HOW MUCH MEMORY ON SYSTEM S$LSTAD,LSTAD :SAVE THE L*ST ADDRESS #1,BUfTBL :LOAD NUMBER OF BUFFERS NENDPGM ,BUF TBL +2 ;STAKTING ADDRESS OF BUFFER LSTAD,BUFTBL+4 LAST ADDR TO BUFFER ALLOCATION TABLE WRDCNT,BUFTBL+4;IS MAX WORD COUNT TOO LARGE 4% :BR_IF NO PWRFLG SETVEC sRETURNING FROM POWER FAJL +BRANCH IF YES 8IT #5u02,aSwWR sD0ES USER WANT MANUAL [NTERVENTION ? (LR TYPE ROLIN MOV 1ST CFLAG MESFE (MPB #°'N, (RO) 8to 1%: 001334 BNE 1578 8t0 1S18 BNE CMPB BEQ 000001 000131 000116 2%: ? TST BNE 1S18 8eQ 173660 IN RPBAE #-CCAI7IA16>, (SPYe sSEE IF THE OPERATOR WANTS TO CHANGE ANY PARAMETERS 001150 060103 '3 (R1) (RO) ,=(SP) BIC };% 174 005112 175 005116 BNE (LR MOV 8taQ TYPE BR $AUTOB 1% 8% (SP)+,RO CFLAG LKPAR (RO) 8$ 1(RO) 2% #'Y,(RO) 8% .BADENT LKPAR ? sRUNNING IN AUTO MODE ? :BR [F NO ¢BR IF YES sCLEAR CONTROL C FLAG , ;TYPE 'DO YOU WANT TO WRITE ANYWHERE ON MEDIA (L) N ? :READ THE ENTRY :SAVE ADDRESS OF RESPONSE sWAS IT CONTROL C ? :BR _[F YES :WAS RESPONSE A CARRIAGE RETURN ? :BR IF _YES UAS IT TERMINATED WITH CARRIAGE RETURN ? IF NO UAS IT A *Y' RESPONSE ? :BR IF YES {WAS IT A "N’ RESPONSE ? :BR IF YES :TYPE BAD ENTRY MESSAGE : TRY AGAIN :CLEAR CONTROL C FLAG 000116 8%: 005737 001624 9%: 060526 001334 001150 13%: 060706 =5 N =2 N b VN =N =N NO :WAS IT A 'Y' :BR_IF YES iWAS IT A 'N' :BR IF VYES o 000131 060451 NE SN NO NS NWN SO O=OONV=CW =000 ONO NN ?° ¢? RESPONSE ? RESPONSE ? s TYPE BAD ENTRY MESSAGE :TRY AGAIN :TIPE *ND DEFAULT' :TRY AGAIN :ENABLE TEST ANYWHERE OPTION 9% LFEONLY :TYPE RDONLY iég ??OSSAH LOCKED IN ‘'READ ONLY'' MODE ? MREAD ;TYPE CFLAG $AUTOB SETVEC sRUNNING IN AUTO MODE 13% +ASKPAR ‘s« TESTING WILL OCCUR ON FE CYLINDER ONLY "+ PROCRAM [S LOCKED IN °READ ONLY' MODE sCLEAR CONTROL C FLAG ? :BR IF YES ;TYPE °'CHANGE PARAMETERS ?* :READ THE ENTRY : SAVE ADDRESS OF RESPONSE 001334 000001 000131 000116 060103 14%: 15¢%: NN N NN ! gaSlIT TERMINATED WITH CARRIAGE RETURN ? 000001 104401 O CUSTOMER DATA WILL BE OVERWRITTEN gas ?ESPONSE A CARRIAGE RETURN ? 7%: NON~NN ! gASIIT ggNTROL 001422 WONIUNO * ? :SAVE ADDRESS OF RESPONSE 001334 6%: O =40O=0=O—=O~00 OCOONONOOOOOO TYPE CONTINUE L)y 057017 0uv1402 104401 ¢BR IF YES :READ THE ENTRY 5%: O=000 - OMNO = NOINNSN s ONNO NNV NN B B WNWNNINININ) b b =o O RONORNOSNOSNNO S AIWAWVIWAVIVAVIVA VIV VAW VAWV UV VAWVAWIUHANA WY VIVIWAWAWY VIV OO00O0O0O00OO0OO0O0OCO00 CFLAG .OVRWRT 060103 005037 00000 4% O 005460 005464 005466 4 ¢PROGRAM RUNNING IN READ ONLY MODE 7% -AOW 005452 005454 SEQ 0066 RDONLY AP 00 _ 3% PP -AZ - [eolololalololelelele] jelelolelolelolalels] — O—O—=O—O—0O—=000— o OOONONOOONOO—O » O 8 =\ b A\ ad \N) = ANV b AN £ o NN NO NS NANNON S OO = =4 OO0 = = PINO — P SO —0OO,rO—NO~ 001424 - NR|M P bt ) rn—d WM - OO 536 2 536 6 o0 O o0 O 005354 536 0 (olelolole BNolelolelololelalelalelelelelel=] OB W=0O00 NN NN - OV ~NOW S NN =2 OO0 NN WO O DELSHSIASLETNT.NT, N T.NT, ST NI, NT,N}NININININONY NIALNINAININININININIAI NN ~N 00 Q0 00 00 OO N AN WMNANIVAWVIW NSBB8 5 55 85 5 B NN NN NN NN NN n) MACRO v04.00 i- JAN=83 12:06:52 PAGE 11=5 SWITCH RECISTER - " CZRJOAD RPO7 PER GET VALUE FOR SO 060604 031110 001466 000006 000006 001466 ENTPR: SPARLST ,RY PC,PARENT WRDCNT , #6 SETVEC #6,WRDCNY sWAS (*C) TYPED? :BROIF YES :WAS RESPONSE A CARRIAGE RETURN (DEFAULT ;BR _IF YES gaSIgT BERHINAYED WITH CARRIAGE RETURN ? ;WAS IT A 'Y*' RESPONSE ? :BR IF YES iWAS IT A "N' iBR IF YES RESPONSE ? :TYPE BAD ENTRY MESSAGE s TRY AGAIN sPARAMETER TABLE ADDRESS :GET THE PARAMETER ENTRY :1S YHE 'URDCNT' VALUE OK ? :BR_IF 1T 1S sSET 'WRDCNT' TO THE MINIMUM VALUL 'N')? ' +' CZRJOAO RPO7 PERF EXER MACRO V04,00 1-JAN=83 12:06:52 PAGE 11-6 SEQ 0067 005662 005664 005665 005666 N — WINY =2 OO 00 NN PUWRFLG 1% #5W02,aSWR 173310 005776 006002 006010 006014 006016 006024 364 006026 12% 1%: R4 DRSTAT LSCRLF 2%: R4 ,=(SP) 3%: 104401 056607 43 104401 056751 5%: 005737 001430 6%: 001430 056761 056620 7%: 8%: 056530 060464 057075 000005 006026 057192 006026 SET THE SAVE REGISTERS FLAG FIRST TIME THRU ? BR IF YES RETURNING FROM POWER Fail BRANCH IF YES TYPEQUT THE DRIVE STATUS BR IF NOT DRIVE TABLE POINTER TYPE 'DRIVE STATUS' CR-LF ? TABLE :SAVE R4 FOR TYPEOQUT ..TYPE DRIVE NUMBER ;s SUPPRESS LEADING ZEROS DRVSTA(RSL) sCHECK DRIVE'S STATUS ;BR IF UNSAFE BNE 5§ 6% 1S18 DRVIYP(R4G) 3¢ ;TYPE & BLANKS :BR IF ONLINE ;SEE IF OFFLINE OR NONEXISTENT :BR IF NONEXISTENT ¢BR IF OFFLINE :DRIVE NOT AN RPQO7 f1¢ :CHECK NEXT DRIVE .NOTPRS ;DRIVE NOT PRESENT s CHECK NEXT DRIVE UNTOFF ;DRIVE OFFLINE :PRINT DRIVE TYPE i1 8s NOTSAF ¢DRIVE UNSAFE 8s sPRINT DRIVE XXDP ;LOADED FROM THIS DEVICE ? 7% XXDP,R&4 7% LODEV f1s +UNTON BLNKS2 RO ) ,RO DRVTYP(R4 #3RP0O7,108 #5,R0 9% #3RPO7P,109 108: ;INITIALIZE THE RPO7 DRIVER 0 NOTRP 056715 sSTART THE CLOCK ::60 TYPE=--0CTAL ASCII ssTYPE 2 DIGIT(S) i 056700 104401 000455 000413 oo AWNVUVAWVVNNWAWN 1s LBLNKS&4 000416 NN Wl L AN AN LN AN AN N NN #- 2 000460 005746 035750 005756 005756 005762 005764 005770 005774 PC,CKCLK PC.RPINIT c-i SAVEFG 040522 040464 005742 JSR EYETSEIETITEYSEE TN YN PN PN X O=2=O0O000000000 =O00O0WOOOO—00 O L BN =N 2NN S S 005660 SETVEC: O =2 O W0 NWN = O O AN NOWV DNV WA =2OVD AN NN NG NN N NN AN AN N N A N N NN N :DISPLAY DRIVE STATUS AND SET UP THE OTHER S/STEM DEVICES THAT :THE PROGRAM WILL USE. PROGRAM RETURN HERE ON POWER FAIL (=l=4 [oleololelololololele] (=l elelelelalelololole] Vi VAN oo o ol ol atoat 2ol 20 o % IP £ NWNINNIN) = — O J,NF JoP ol sO(o ¥ple Folele N N N AN AN AN AN NN N NN N NN W POAINONININININD b D b ad e ed b o GET VALUE FOR SOF TWARE SWITCH REGISTER :BR IF TYPE NO ;LOADED FROM THIS DRIVE ? :BR_IF NO ;TYPE 'LOAD DEVICE' :DRIVE _ONLINE sTYPE 2 BLANKS ¢GET DRIVE TYPE ;ASSUME ADDRESS OF RPO? MESSAGE ? +1S DEVICE AN R ro7 STYPE IT ¢TYPE THE DRIVE IF YES ;ASSUME ADDRESS OF RPO7+ MESSAGE TYPE MESSAGE +MESSAGE ADDRESS HERE ? CIRJOAO RPQ7 PERF EXER MACRO Vv04.00 1-JAN=-83 12:06:52 PAGE 11-7 D 6 SEQ 0068 GET VALUE fOR SOFTWARE SWITCH REGISTER 365 366 006030 367 006032 368 006036 369 006040 370 006044 371 006052 %;% 006054 006304 016402 006204 004737 032762 001002 104401 374 375 376 377 005204 020427 001272 104401 006060 006062 006006 006070 378 006074 002056 045262 000004 000200 056776 000010 0012C3 11%: 12%: ASL MoV ASR JSR BIT BNE TYPE R& "LKADR(R4) ,R2 fd PC,SVRHXX #ILV,SRPDS(R2) 11% NINLEV ¢ CHANGE TO WORD INDEX ;GET BASE ADDRESS s CHANGE TO BYTE INDEX :SAVE ALL REGISTERS ;INTERLEAVE SECTOR SET ? :BR _IF YES ; TYPE NON-INTERLEAVED MESSAGE INC R4 R4, #E. 2% LSCRLF : INCREMENT DRIVE NUMBER/TABLE POINTER ;FINISHED ? :BR IF NOT s CR=LF (Mp BNE TYPE CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 12 SEQ 0069 GET VALUE FOR SOF TWARE SWITCH REGISTER } ;INITIALIZE PROGRAM PARAMETERS FOR STARTUP 3 0060764 004737 033430 S 006106 012737 007540 4 006100 012737 142200 001446 173032 5 006114 032777 001000 8 006126 012737 030440 11 006140 12 006144 105737 001406 001226 14 006154 012737 000366 7 006122 5 006132 13 006146 16 006162 17 006166 18 006170 19 006174 001406 012737 001730 012737 006110 105737 001003 005737 001150 003454 STA: 001450 006176 006200 006202 006204 006210 006212 006216 706220 006224 006226 005001 005002 005003 005737 001403 123701 001433 105761 003430 016300 001450 32 33 34 35 006236 006242 006250 006252 004737 032760 (01402 010062 031010 000006 37 006262 38 006266 005737 001007 040020 40 006274 1 006302 001446 28: 38 112760 004737 177776 020250 4$: 001430 5% : 002056 001566 36 006256 004737 030322 4 005060 43 006306 022322 4S 006312 46 006316 020127 003732 44 006310 47 006320 48 00632¢ 50 006326 51 00633 005201 000132 001332 012737 005037 000001 040020 #030640,ENDCON > INITIALIZE 1STB BEQ SENV 2% MOV #366,ENDCON+2 8$: 9% :BR IF NO ;APT SCRIPT MODE NO ? INlTlALlZE (1/16 OF NORMAL) XFER COUNT(LSB) (MSB) BLE CHGADR 8s :RUNNING IN AUTO MODE “BR IF YES CLR CLR CLR TST BEQ (MPB BEQ 1STB BLE MOV R R2 R3 XXDP 5§ XXDP,R1 7% DRVSTA(R1) 7% BLKADR(R3) ,RO :DRIVE # *AVAIL TABLE INDEX ‘DRIVEN * 2 *LOADED FROM THIS DEVICE ? ‘BR IF NO *LOADED FROM THIS DRIVE ? ‘BR IF YES :DRIVE ON LINE 2 NO :LOAD DPB ADDRESS JSR BI1 BEQ MOV PC.GETID #ILV,$RPDS(RO) 6% RO,NEWUNT(R2) :GET DRIVE SERIAL NUMBER *INTERLEAVE SECTOR SET ? ‘BR IF NO :LOAD DPB ADDRESS TO ABAIL QUEUE PURFLG 7% ‘RETURNING FROM POWER FAIL ? *BRANCH IF YES JSR TST BNE cMp INC PC.,CLROPB PC.DRVPRM $FIRST (RO) #-2,$PACK(RO) PC,SEQPAR (R3)+, (R2)+ ? (1/4 OF NORMAL) XFER COUNT(LSB) #1730 ,ENDCON®2 : (MSB) #006110,ENDCON (SW9=1) $AUTOB 38 ? *START AT 200 ? NO *CLEAR DPB BLOCK *SETUP DRIVE PARAMETER LIMITS *RESET SFIRST FLAG FOR FIRST 204 START -SCTUP COMMAND *WT® (WRITE DATA AND TEST) *SETUP SEQUENTIAL PARAMETERS FOR WRITE ; INCREMENT R *NEXT DRIVE INDEX CMP BLE 01,87 43 BR 9s CHGADR CLEAR START MOV (LR #1,CFLAG PWRFLG :DUMMY *CONTROL (' FLAG *CLEAR POWER FAIL FLAG ‘LR 001334 1$ 1STB BNE ST MOVB JSR 000007 :INITIALIZE NORMAL XFER COUNT(LSB) MOV (LR 000026 7% 005037 000403 68 : ;INITIALIZE THE KEYBOARD INTERRUPT HANDLER DO YOU WANT SHORT RUN TIME JSR 000200 #142200 ENDCON #SW9,3SWR MOV 001450 31 604232 004737 030104 39 006270 #7540 ,ENDCON+2 : (MSB) MOV 1%: 040454 MOV BEQ 001446 001430 PC,STKINT BIT 001332 21 22 23 24 25 26 27 28 29 30 JSR MOV :ALL DRIVES ASSIGNNED ? FLAG CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 13 SEQ 0070 MAIN PROGRAM 5 LSBTTL 3 006340 005737 6 006352 001402 & 006344 S 006346 7 006354 8 006360 18 006364 001407 005737 000137 004737 001334 MAIN: 001520 1%: 007234 026454 }} TST CFLAG :WAS (*C) 2% IN ORDER QUE ? :BR IF NO, ELSE BEQ ST 38 ORDERQ JMP JSR JOLE PC,KSR BEQ TYPED? ;BR IF NO ;ANY DRIVES :LET ALL DRIVES FINISH ORDER ;SERVICE THE KEYBOARD ;CHECK FOR DRIVES TO BE DROPPED 13 14 15 16 17 18 19 006364 006370 006374 006376 006400 006402 006404 012703 12705 005715 001004 005725 005303 001373 000010 001544 272 23 24 25 26 27 006410 0066414 006416 006420 006422 006424 012701 005711 00144 021115 001412 005721 001610 30 006430 31 006436 32 006436 33 006440 36 006442 35 006444 %9 006446 0127017 005711 001760 021115 001402 005721 000772 001632 38 006450 39 006452 011100 104401 46 006476 4S 006500 29 006506 005015 004737 000735 %g 006406 53 006426 40 41 42 63 28: 38: MAIN PROGRAM 006456 006462 006466 006472 MOV MOV ST BNE ST DEC BNE #8.,R3 #DDRVS ,RS (RS) 3s (RS) + R3 1% ;DRIVE COUNTER :ADDRESS OF 'DROPPED DRIVE®' TABLE :SEE IF ENTRY AT PRESENT POSITION :BR IF THERE IS ONE : INCREMENT TO NEXT TABLE POSITION :DECREMENT DRIVE COUNTER :BR IF MORE TO CHECK MOV 18T BEQ CMP BEQ TST #AVAIL ,RY (R1) 5¢ (R1), (RS) 7% (R1)+ :ADDRESS OF "AVAILABLE DRIVES®' TABLE :1F AT END OF °*AVAIL' TABLE ? :BR IF YES ;1S DRIVE IN "AVAIL® THE TABLE ? :BR IF YES :NO, INCREMENT °*AVAIL' TABLE ADDRESS 5%: 6$: MOV TST BEQ cmP BEQ TST BR MUALT,RY (R1) 2% (R1), (RS) 7% (R1)+ 6% ;ADCDRESS OF THE °'WAIT' BUFFER TABLE :AT THE END OF °WAIT® TABLE ? :BR [F YES ;1S DRIVE IN THE 'WAIT® TABLE ? :BR IF YES :NO, INCREMENT *WAIT® TABLE ADDRESS ;AND CONTINUE LOOKING 7%: MOV TYPE (R1) R0 LSCRLF :PUT THE DRIVE'S BLOCK ADDRESS IN RO ;CR=LF (RS) PC,CMPRES 2% :CLEAR THE °*DROP DRIVE® TABLE ENTRY ;COMPRESS THE RESPECTIVE TABLE :SEE IF ANY MORE DRIVES 1%: 2%: 000437 BR 3$: (S 000772 004737 104401 104401 004737 B8R 001203 026146 057321 057357 025042 JSR TYPE TYPE JSR (LR JSR BR 022200 23 SO 006506 51 006512 52 006514 53 006516 5S¢ 006520 55 006526 56 006526 57 006530 MAINDA: MAIN1 43 PC,STIME LDASHS MSGDRP PC,ONESUM :GO CHECK FOR NEW ASSIGNED DRIVES ;AND CONTINUE LOOKING :TYPE ELAPSED TIME TYPE ‘eeee= ’ :TYPE °*DROPPED, °* :TYPE ONE DRIVE SUMMARY :LOOK FOR DRIVES TO BE ASSIGNED 012703 005001 005002 005005 005765 001005 005725 00520 000010 MAIN1: 001566 1%: 2%: MOV (LR (LR (LR 151 BNE 157 INC #8.,R3 R1 R2 RS NEWUNT (RS) 3% (RS) ¢ R1 :DRIVE COUNT sASSIGN LIST INDEX ;“AVAIL® INDEX :NEW DRIVE INDEX ;NEW DRIVE IN THIS POSITION :BR IF THERE IS : INCREMENT RS :INCREMENT ASSIGN INDEX CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 13=1 SEQ 0071 MAIN PROGRAM 58 006532 005303 29 006536 000442 59 006534 001371 62 006540 63 006544 64 006550 104401 104401 010146 006552 006554 006555 006556 006562 006566 006572 006576 104403 002 000 104401 1064401 016500 004737 104401 71 006606 72 006610 001402 005722 65 66 67 68 69 70 006602 73 76 75 76 77 78 006612 006616 006622 006626 006634 006640 gg 006642 005762 000773 016562 005065 156137 005037 005722 DEC R3 ;DECREMENT DRIVE COUNT BR MAIN? ‘START OPERATIONS FOR THE AVAJLABLE DRIVES TYPE TYPE MOV L$CRLF ‘DRVMSG R1,=(SP) :CR=LF *'DRIVE® 1:SAVE R1 1YPOS BYTE BYTE TYPE TYPE MOV JSR TYPE 2 0 . COMMA "BLNKS1 NEWUNT(RS) RO PC,TYPDRY ,ASGND ::90 TYPE==OCTAL ASCI! SSTYPE 2 DIGIT(S) :SUPPRESS LEADING 2EROS “TYPE *,? ‘TYPE 1°BLANK -PUT ADDRESS OF DPB IN RO JTYPE DRIVE SERIAL NUMBER P'STARTED® BEO ST 58 (R2)+ ‘BR IF VES *INCREMENT AVAILABLE BNE 001203 056601 3%: 056573 056531 001566 032770 057623 001610 001566 001566 040550 032020 Y 001610 S$: 001542 000731 1531 BR MOV CLR BISB (LR T1ST BR 81 1% AVAIL (R2) ‘BR IF MORE 1:TYPE DRIVES FOR TYPEOUT DRIVE NUMBER ‘AT END OF AVAILABLE TABLE TABLE INDEX 4 *CONTINUE LOOKING FOR END OF TABLE NEWUNT (RS) ,AVAIL (R2) :MOVE ADDR OF DRIVE INTO AVAIL LST NEWUNT (R5) ;TAKE DRIVE OUT OF NEW DRIVE TABLE ATABIT(R1),ASNLST :SET DRIVE ASSIGNED INDICATOR AUTLST :CLEAR AUTO ASSIGN (R2)+ :INCREMENT AVAILABLE TABLE POINTER 28 *LOOK FOR MORE DRIVES ;GET PARAMETERS. BUFFER SPACE, AND START ORDERS FOR DRIVES IN gg STHE "AVAILABLE® QUEUE 84 006644 85 006646 005002 105737 87 006654 88 006660 89 006662 105737 001023 012737 001150 92 93 94 95 96 005037 005037 005037 013737 104401 001342 001344 001472 001462 060124 86 006652 001030 90 006670 91 006676 006702 006706 006712 006716 006724 gg 006730 99 100 101 102 103 013737 005037 000137 MAIN2: 001542 000001 001312 001340 CLR TSTB R2 ASNLST ;START FROM THE FIRST LOCATION *ANY DRIVES ACTIVE ? TST8 BNE MOV $AUTOB 1% #1,CFLAG ‘RUNNING IN AUTO MODE ? ‘BR IF YES :DUMMY *CONTROL C' FLAG BNE 001334 001346 MV LR 001464 031744 1%: 2%: P13 HERTZ,ONESEC HOUR MINUTE SECOND INTRVL +2 CMPTIM,CMPTIMe2 NODRV$ 3 3EQ MOV CLR JSR :ANY DRIVES WAITING FOR THE BUFFER ? ‘BR IF NO *LOAD RO WITH THE DPB ADDRESS *CLEAR THE STACK FOR BUFFER REQ SCALL TO GET THE BUFFER RT, :IF O,BUFFER IS STILL NOT AVAILABLE ‘BRANCH IF NO BUFFER AVAILABLE *CLEAR PARAMETER SELECT FLAG SFILL THE BUFFER JMP $GET42 005762 001435 016200 005046 004737 012660 001423 005060 001632 000130 BEQ CLR WAIT(R2) S$ WAIT(R2),RO -(SP) PC,GE TBUF (SP)+,8BUF(RC) X3 $NEXT (RO) 109 006772 004737 020102 JSR PC,FILBUF }35 006766 110 006776 005060 004737 017512 000006 000116 020160 :RESTORE ONE SECOND COUNTER VALUE *CLEAR THE HOUR'S COUNTER ‘LR (LR LR h TYPE 006734 006740 006742 006746 006750 104 006754 105 006760 106 006762 001632 ‘BR IF YES MOV CLR JSR $FAIR(RO) PC.GODRIV *CLEAR THE MINUTE'S COUNTER SCLEAR THE SECOND'S COUNTER *CLEAR INTERVAL COUNTER SINIT COMPARE TIME COUNTER *TYPE *NO DRIVES ASSIGNED' *GIVE CONTROL TO MCNITOR ‘CLEAR THE FAIR FLAG *SET COMMAND AND GO . CZRJOAQO RPO7 PERF EXER MACRO V04.00 1=JAN=-R3 12:06:52 PAGE 13-2 H 6 SEQ 0072 MAIN PROGRAM 111 007002 012705 113 007010 116 007012 001376 010045 116 117 118 119 060201 Q04737 000742 008722 115 007006 115 007014 007020 007022 007026 007030 }g? 007032 oosr;s 012701 001520 001632 (%: 000740 005737 125 126 127 128 129 130 131 132 133 134 007042 007044 007050 007052 007056 007062 007066 007070 007074 007076 005002 005762 001002 000137 016200 005760 001010 105760 001403 004737 137 007104 004737 140 007114 005046 142 143 144 145 007122 007126 007130 00713¢ 012660 001416 004737 005060 000006 148 007144 004737 020160 }gg 007102 }gg 007110 141 007116 }29 007140 149 150 151 152 007150 007154 007156 007160 }gz 007162 159 0071646 156 007170 157 007176 001975 006404 004737 004737 005060 012705 005725 001376 010045 022760 101006 158 007200 012705 160 007206 001376 }gg 007212 000402 169 007204 005725 161 007210 5¢: 001610 6%: 007234 001670 000130 7%: 000026 020250 020612 8$: 021662 9%: 108: 017512 020102 000130 000116 000003 001632 005722 166 007220 012701 165 007216 000712 060201 :PUT THE WAIT oue BNE MOV 3g RO,=(RS) ‘BR IF NO LOAD THE DPB ADDRESS ADD JSR BR TST R2,R1 P(,CMPRES 2 (R2)+ BR 11%: 000116 12%: 15%: INTO THE ORDER QUE REHOVE THE DRIVE FROM THE °'WAIT' QUE TOFFSET THE QUE POSITION ;COMPRESS THE QUE ‘BRANCH IF DONE JCHECK THE NEXT QUE *LOOPING BACK CLR 187 BNE JMP MOV ST BNE 1518 BEQ JSR R2 AVAIL(R2) 7% IDLE AVAIL(R2),RO $NEXT (RO) 9% $PACK(RO) 8s PC,SEQPAR :CLEAR DRIVE TABLE POINTER JANY DRIVES WAITING FOR PARAMETERS ‘BRANCH IF ANY ‘BRANCH IF NONE ;CONTROL BLOCK ADDR IN RO *PARAMETERS BEEN SELECTED ? ‘BR IF THEY WAVE :'T* COMMAND FOR THIS DRIVE ? ‘BR IF YES ;GET SEQUENTJAL PARAMETERS FOR READ OR WRITE JSR PC,GENPAR :GO GENERATE (LR «(SP) :MAKE ROOM ON THE MOV BEQ JSR CLR (€P)+,$BUF (RO) 12% PC.FILBUF SNEXT(RO) ;MOVE BUFFER ADDR 10O DPB *BR IF ‘0" ADDR (NO BUFFER) SFILL THE BUFFER :CLEAR PARAMETER SELECT FLAG JSR JSR I0LE 10§ PC,.LODPAR PC.,GETBUF SFAIR(RO) ‘BR IF YES SGET THE BUFFER THE PARAMETERS ;LOAD THE PARAMETERS JUST GENERATED JGET BUFFER cCLEAR THE STACK FOR THE BUFFER ADDR "FAIRNESS® COUNT JSR PC,GODRIV :PUT CURRENT DPB IN DRIVER BR 15§ :CONTINUE LOOKING MoV 18T BNE MOV INC CMP #ORDERQ,RS (RS)+ 11% RO, -(R5) SEAIR(RD) ADDRESS OF ORDER QUE IN RS END OF QUE ? ‘BR [F NOT *PUT BLOCK ADDRESS INTO QUE s INCREMENT THE FAJR COUNT #3, 8$FAIR(RD) ;THREE TIMES,BUFFER |S NOT AVAILABLE? MOV #UALT RS ‘LOAD INTO THE WAIT QUE BNE 13% ST BR 001610 2 INTO ORDER QUE JANY OUTSTANDING ORDERS ? MOV 14%: FWAIT R ‘QUE AVAILABLE ORDERQ BH! 138: (RS)+ 187 BNE CLR 001520 000116 #ORDERQ,RS 53 B8R 010045 164 007214 167 007224 001520 000416 005260 MOV MOV 022200 122 007034 }%2 007040 38: 1S7 14$ (RS) ¢ RO, - (RS) 15¢ *AN AVAILABLE LOCATION ? ‘BRANCH [F NOT SLOAD INTO WAIT QUE ‘REMOVE THE DPB FROM AVAILABLE QUE (R2)¢ JINCREMENT INDEX #AVAIL R :*AVAILABLE® B8R 63 ADD R2,.R1 MOV *BRANCH IF NOT OVER THREE TIMES *BRANCH BACK TO FIRE NEXT DRIVE TABLE ADDRESS :FORM ADDRESS OF LAST ENIRY _ EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE (IRJOAO RPO7 PERF MAIN PROGRAM 007232 004737 000704 022200 JSR BR NONN=NNNS 2N WWWEHNNO O NNWVWOAWVNWWINI= WWWNWES SN OO NNNNO—-2WNONO WOWOOW N NINOWVIN 007376 007400 007404 007406 007410 007412 0074616 007422 007430 007432 007436 007440 007444 007450 007452 007456 0074672 007466 000137 001520 000016 000001 000626 001446 OO 000050 0014564 NSO 000046 001452 NNAANNGO 000036 SNO S NON #ORDERQ ,R1 ;ADDRESS OF 28: BEQ TST BEQ 7% $TATUS (RO) 2% ‘BRIF F SSEE IF ‘BR IF MOV R1,=(SP) :S’ MOV 031420 001610 #-1,$PACK(RO) CMPB BEQ #1,8PACX(R)) 13 BHI BLO (3 5% 5¢ F QUE .VE FINISHED [VE NOT FINISHED i€ : IN R1 HE QUE POINTER QUE ADDRESS JLATE STATISTICS FOR DRIVE IN RO ¢SS END OF COMMAND AR THE BAD TRK/SEC ERROR INDICATOR JEE IF ANY DRIVES HAVE TOO MANY ERRORS :NOW SEE IF WE ARE AT THE END OF A PASS *Ww' COMMAND FOR THIS DRIVE ? "R' COMMAND FOR THIS DRIVE ‘B8R IF YES ? ‘B8R IF YES ENDING ‘WILL THE EOP BE DETERMINED BY # OF SEEKS ? 3$ ‘BR IF YES SRDPAS’Z(RO) ENDCON+2 ;1S IT THE EOP BY DATA READ ? $RDPAS (RO) 5% 43 :BR [F YES :BR IF NO ,ENDCON SIS IT THE EOP BY DATA READ ? :BR IF NO STHIS IS THE END OF PASS CMP $SEEKS+2(RO) ,ENDSEK+2 BLO grz Ss :BR If NO ggeex5(n0) END‘EKBR 0ls IT THE EOP BY SEEKS ? BHI 4% ‘BR IF ;IS IT THE EOP BY SEEKS ? YES JSR PC.SEOP "THIS IS THE END OF PASS 5% MOV MOV ST BNE (SP)+,R1 #AVAIL RS (RS) + 6% :RESTORE THE ORDER TABLE INDEX *ADDRESS OF THE 'AVAIL' TABLE JSR JSR PC,CMPRES PC.RELBUF *COMPRESS THE ORDER QUE *RESTORE BUFFER BIT BNE 151 BEQ (LR ST BEQ #5w02,3SWR 8% STATIN 8% STATIN ASNLST 8% :TYPE PERFORMANCE SUMMARY ‘BR IF NOT STIME TO TYPE THE PERFORMANCE SUMMARY ? ‘BR [F NOT SCLEAR THE INDICATOR :ANY DRIVES ASSIGNED ? :BR IF NO JSR PC.STATPR STYPE JMP MAIN MOV 7%: 001314 001314 001542 057107 TYPE 02474y 057214 006340 *BAC HE ORDER QUE DRESS INTO RO 4%: 6%: 171524 -(R1} CMPB CMP BLO BR 022200 017646 000004 ‘PUT BLOC* PC.STATIS PC.PROCES BADSEC PC, ABNRML ST BEQ CMP 3$: (R1)+,R0 JSR JSR (LR JSR BFOQ 001504 001450 :COMPRESS THE TABLE :CONTINUE LOOKING MOV 017210 007472 001336 031372 000026 PC,CMPRES 6% FOR A COMMAND TO FINISH ST 177777 SEQ 0073 IDLE: 1$: 000040 OWNN = N =N O NNWSNO'N OO =00—— 007344 007346 S rOLSfOOONNENEN =N =2 W= NN WO =S NONNINOO SO O=20—==0O CONOON B WO WSO O00O0O0OCOOO0O OO0O0O—=O0OO000—=— SN OWN=WN=rOND O—0O—=~0000~0—~2 OONOONOOONON OWOWASO = N=N=N) 007350 007356 007360 007362 007370 007372 [elelelolelala) ololeldlels] :WAIT o w W W NP N IASLSL ST NN NI SIS SN S LS N[ N1V NONININONINONININ) = b =S b b =2OO WO OV OOV OV OV VOO OO0 OO0 C00000 NN NNNNNNN~NO OO NI NN = O V0NV UIN 2 O V00N NI WAL= O0 68 007226 13-3 1VPE 8% : (R1),=-(RS) ,MSGREP ,TRMREP P1S IT THE END OF ‘BR IF ND THE ‘AVAIL® TABLE ? *MOVE THE DPB INTO THE 'AVAIL' TABLE STYPE */\/\/\/\/-PERFORMANCE REPORT=\/\/\/\/\" STYPE THE SUMMARY */N/N/N/N/N..LETC :CONTINUE THE LOQUP CIRJOAD RPQ7 PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE SEQ 0074 14 ] ANANPO PN NNV NONIRININD) = =d b =D b d b b b b T S P BN T IV, ONONS NS NO WOMNMNON =2 O SO N WO SNOOONON [elelelelale P lelog QOWO'NC OO — SN AN = OO 00 ~JIWNA) — sPROCESS THE COMMAND TERMINATION 001320 000016 PROCES: 100000 000166 040000 000166 040000 000200 MOVB ST BIT BEQ BIT BM] BNE BIT BNE (RO) ,DRVNO :DRIVE $TATUS (RO) NUMBER FOR ANY ERROR MESSAGES SSEE IF DRIVER SIGNALED AN ERROR #8116, sapcs1<no$ SSEE IF *SC* SET 1% BR IF IF NOT SET #BIT14, sapcs1(ao$ -SEE IF °TRE® SET ERPROC BR IF ERROR :BR [F SET #B1T14,$RPDS (RO’ ;SEE IF 'ERR® SET ERPROC :BR [F SET ERPROC 32 007620 [eleolelalelelololelelelele o] OOOOrIO—=ONOOOWOO O £ NNINNIAANNI N = N 2 D) 8 8 PNINO S NNNS NS NONNN O UNNON) =2 55 =2 A = NN NN NNNNVOOON N NWNNNI N N —t OO 00NN LS NN = O O 00 O :NO ERRORS DETECTED IN REGISTERS, DO SOME CHECKING ANYWAY 013746 014046 000002 1$: 171402 JSR 8IT BNE 001462 001464 JSR ST 001462 001462 000001 001464 014732 28: 3%: :CHECK ERROR BITS 3 :BR [F YES PC.CKBUS #SW01,aSWR SCHELK BUS ADDRESS & WORD COUNT SINHIBIT DATA COMPARE (SW01=1) ? CMPTIM ‘1S COMPARE DATA ALWAYS ON ? BEQ CMP BLT 2% ‘BR IF YES CMPTIMe2,CMPTIM:TIME TO COMPARE DATA ? 3 ‘BR IF NO CMP BLT CMPTIMe2,(SP)+ 2% MOV ADD 001464 PC,CKERR CLR JSR RTS CMPTIM,=(SP) #1,(SP) SGET CURRENT INTERVAL :ADD ONE MINUTE TIME AND CMPTIMe?2 SCLEAR INTERVAL TIMER FOR NEXT COMPARE :STILL COMPARING DATA ? ‘BR IF YES PC,CMPAR PC ‘NO 'DCK® *RETURN ERROR, BUT COMPARE DATA ANYWAY WO ~NVO O —rN -~ 007622 007630 007632 (o=l OOW :COMMAND TERMINATED WITH AN ERKOR - PROCESS THE ERROR 000200 000016 ERPROC: BIT BEQ JMP 010206 cexto7 $TATUS(RO) :DONE BIT SET ? ERPRC1 :BR IF NO, ORDER DIDN'T COMPLETE NORMALLY DONE :PROCESS ORDER COMPLETION WITH O NN [@ X e1. L NTo AV P SV 1 007636 007636 52 007644 007646 007654 007656 007664 007666 007674 007676 007704 61 007706 007714 007716 010000 000016 004000 000016 002000 000016 001000 000016 040002 000016 000004 000016 ERPR(1: BNE 8IT BN BIT BNE BIT BNE *PROCESS ERROR WITH 'DONE' BIT SET "ERROR' celt12 STATUS(RO) UNSAF & 'DONE' NOT SET ;SEE BR If YES IF DRIVE WAS UNSAFE 031111 S!AIUS(ROS ;PARITY ERROR OCCURRED UCPA R IF IT DID 091110 STAIUS(ROS ;FATAL PARITY ERROR? 381109 srAtUS(noS IS ONE : TIMEOQUT? ALPAR BR IF THERE SWTIM :BR If YES OFLIN :BR IF PRTIM :BR IF 1T DID BIT #BIT14!BITO1, STATUS(RO) SDRIVE WENT OFFLINE ? 8IT lBlYZ $TATUS(RO) BNE BNE RTS PC :ERROR. 1T DID PORT REQUEST TIME OuT ? RETURN :DRIVE 1S PERSISTENTLY UNSAFE 007720 68 007724 PUNSAF: JSR DISPLY PC,LINEY LEMI2 :PRINT LINE 1 OF ERROR MESSAGE SPERSISTENT DEVICE UNSAFE MESSAGE (IRJOAQ RPO7 PERF MAIN PROGRAM EXER MACRO vU4.00 1-JAN-83 12:06:52 PAGE 14-1 69 007730 70 71 72 73 74 007734 007740 007744 007750 007754 SEQ 0075 JSR PC,LINE2 ;PRINT VINE 2 OF JSR PC.LINE? *PRINT LINE 7 OF *DROP THE DR;VE JSR JSR JSR JMP pc,tlwes PC.EINEL PC.INCTO DROP (PRINT ;PRINT L1 LINE > OF 4 OF ERROR MESSAGE ERROR MESSAGE TWF ERROR MESSAGE *INCREMENT TOTAL ERROR COUNT ERROR MiSSAGE ¢UNCORRECTABLE MASSBUS PARITY ERROR OCCURRED 78 007760 79 007764 80 007770 TYPE TYPE TYPE B8R 000406 ,$CRLF "$CRLF “EM10 FALPRI sCR=LF ; CR-LF s '"UNCORRECTABLE PARITY ERROR' ;FINISH PROCESSING THE ERROR s 'FATAL' MASSBUS PARITY ERROR OCCURRED 1044601 104401 1044601 FALPAR: TYPE ,$CRLF "$CRLF CEMIT s CR=LF : CR=LF :"FATAL PARITY ERROR' MESSAGE 104401 104401 FALPR1: TYPE TYPE ,MSGON "DRVMSG ;TYPE ;TYPE O TYPE TYPE 013746 MOV OCOO0O0O0O00O0 81 007774 UCPAR: 104403 002 000 004737 TYPOS BYTE BYTE 2 0 BIT #SW15,35WR JSR 032777 BEOQ 000207 1%: DRVNO, = (SP) HALT RTS PC.INCTOT 1% PC MESSAGE 'ON’ *DRIVE' ;:SAVE DRVNO FOR TYPEOUT ;:TYPE DRIVE NUMBER ¢:G0 TYPE-=0CTAL ASCIi ssTYPE 2 DIGIT(S) : +SUPPRESS LEADING ZEROS :INCREMENT TOTAL ERROR COUNT ;HALT ON ERRCR ? :BR [F NOT JERROR HALT i ) (o L XY Yo T ST P 004737 004737 004737 004737 004737 000207 NINLNLNINLD NN S ONMNNINY =N O =2 NN SN VNN =N O ~— 104414 [olelelelelels] ~N W o b wnd —d ol cnld cld o (elelolelolelele] (alolelalelelele] 004737 SWIIM: JSR DISPLY JSR JSR JSR JSR JSR RTS PC.LINE? ,EM13 PC,LINE2 PC.LINES PC.LINEL PC.INCTOT PC.LINE? PC sPRINT LINE 1 OF ERROR MESSAGE sPRINT THE TIME OUT MESSAGE sPRINT LINE 2 OF sPRINT LINE 3 OF ¢PRINT LINE 4 OF s INCREMENT TOTAL sPRINT LINE 7 OF sRETURN ERROR ERROR ERROR ERROR ERROR MESSAGE MESSAGE MESSAGE COUNT MESSAGE [e]elelololelele] WNINONL NN NN - B OMANIND = ) WO = NNV SR OWVNON =00~ — (2T STe Ne J NTw P o S5OSO ONO 8 B MW = = = v b D D i e — b e e o —h e (elelelelelalale] d =D ;DRIVE WENT OF FLINE OOO0O0OO0O00 e e il b e e e e D ) D e e i i d ) il el = NN-._.—.d_a-a-ld—.—‘ooooooooog = OO NOWVE WA —=O0V® NN - :SOF TWARE TIMEOUT OCCURRED OFLIN: JSR DISPLY JSR JSR JSR JSR JSR JMP PC.LINET LEMI4 PC,LINE2 PC.LINE3 PC,LINEL PC.INCTO PC,LINE? DROP ;PORT REQUEST TIMEOUT ERROR ;PRINT ¢PRINT ;PRINT sPRINT sPRINT LINE 1 OF THE ERROR OFFLINE MESSAGE LINE 2 07 THE ERRGR LINE 3 OF THE ERROR LINE & OF THE ERROR MESSAGE MESSAGE MESSAGE MESSAGE s INCREMENT TOTAL ERROR COUNT ;PRINT LINE 7 OF THE ERROR MESSAGE ;DRCF THE DR]VE CIZRJOAQ RPO7 PERF EXER MACRO Vv04.00 1-JAN-83 12:06:52 PAGE 14-2 L 6 SEQ 0076 MAIN PROGRAM 122 010150 004737 022214 010164 010170 004737 004737 022716 023366 123 0101564 126 010160 127 010176 128 010200 }%g 010204 104414 004737 004737 004737 000207 PRTIN- 051503 022262 026122 024056 000240 032760 001402 000137 013340 145 010224 146 010232 032760 001402 040000 000137 013340 146 010240 150 010246 032760 001402 000002 000137 013432 153 010254 154 010262 032760 001402 040000 000137 011234 157 010270 032760 040000 }28 010300 000137 013194 161 010304 162 010312 032760 001402 000400 000137 011624 165 010320 166 010326 032760 001402 000020 000137 012010 169 010334 032760 000200 };; 01034¢ 000137 012172 172 010350 174 010356 032760 001402 020000 000137 012460 177 010364 178 010372 032760 001402 000010 000137 012576 181 010400 182 010406 032760 001402 000040 000137 013242 185 010414 032760 002000 }g% 010250 }gg 010264 158 010275 }gz 010314 }gg 010330 170 010342 };Z 010360 }gg 010374 }gz 010410 sTYPE LINE OF THE ERROR MESSAGE JSR JSR PC,LINE3 PC,LINES ;TYPE LINE 3 OF sTYPE LINE & OF THE ERROR MESSAGE THE ERROR MESSAGE RTS ,EM1S PC,LINE2 PC,INCTOT PC,LINE? PC 1 ;PRINT PORT _TiME QUT MESSAGE ;TYPE LINE 2 OF THE ERROR MESSAGE : INCREMENT ;TYPE LINE sRETURN TOTAL ERROR COUNT 7 OF THE ERROR MESSAGE ;PROCESS ORDER COMPLETION WITH 'ERROR' € °'DONE' BIT _ET 139 010206 141 010210 142 010216 }2; 010234 PC,LINEY JSR JSR }%% }22 010220 JSR DISPLY JSR 101002 001402 000030 000016 DONE: 1§%: NOP BIT 8tQ #BIT04!BI1T03,8TATUS(RO) ;UNSAFE OCCURRED 2% :BR _If NOT BIT 8EQ #BIT14,SRPERT(RO) 3% ;BR JMP 00C202 000200 2%: 3%: 4§$: 5%: 6%: 7§%: #BIT1,8RPDS(RO) ) ;SEE IF 'EWN® :BR IF NOT 8Ir 8EQ #BITi4,8RPCS2(RO) ;IS 'WCE' SET 5% ¢BRANCH [F NOT SET BIT 000202 8$%: 9%: 10%: 11$: 12%:" #BIT14,3RPCST1(RO) :CHECK ‘TRE' IF SEV BIT BEQ #BIT08,8RPERY(RO) 7$ :BR [F : '"HCRC' NOT 8IT BEQ #B1704,$RPERT(RO) :'FMT* SET? 8$ :BR_IF NOT SET BlT #BI1T07,$RPERT (RO) JMP CKHCE 8EQ TRFER HCRCER CKFMT 9% sPROCESS 'TRE' SET? sPROCESS 'HCRC' ¢ CHECK FORMAT ERROR :BR _IF :'HCE' SET? NOT SET sCHECK °"HCE® ERROR BIT BEQ #B1T13,SRPERT(RO) :'OPI* SET? 10$ sBR IF NOT SET 8lr 8t0o #BIT3,$RPERT(RO) : 'PAR® SET? 11$ sBR 17 NOT SET 8IT 8EQ #8115,3RPERT(RO) s 'WCF® SET? 12% ¢BR IF NOT SET BIT #81110,$RPERT (RO) JMP 000202 sWRITE CHECK ERROR :BR JMP 000202 WCKER ;REPORT EARLY WARNING 6% JMP 000202 EWNERR OPIER PARER WCFER SET SET BNE JMP 000202 'UNS® BIT 8tQ JMP 000202 IF sREPORT UNSAFE JMP 000202 :SEE IF NO UNSAF JMP 000166 ¢REPORT UNSAFE JMP JMP 000176 UNSAF :REPORT ‘OP]°* sREPORT sREPORT 'PAR® ‘W(F' s"IAE' SET? ? >~ - =z 13%: 012722 001000 002202 002000 000200 010000 000202 164%: 15%: 012562 000202 16%: 010546 000137 011756 000137 000207 013204 17%: OBIT11 +SRPERT(RO) ; 'WLE' ULEER ‘WLE' ‘s sREPORT #BIT9,SRPERT(RO) #BI1T12,8RPERT(RO) 'AQE' SET? "LBT' SET? 15% :BR IF NOT SET 15% PC :BR IF NOT SET :TAOE' € °LBT' #B1T10,$RPDS(RO) 16% DTEER $RPER1(RO) 17% DCKER SET? ;BR_IF NOT SET ;SEE :BR IF NOT sREPORT 'DTE' . SEE IF #BIT16, SRPER3(R0) SET, IF 'DCr" :BR_IF NOT +PROCESS *'DCK’ s 'SKI' EXIT 'DTE® SET ERROR SET SET 18% BRANCH 1F SKI, OCYL SET 19% :BRANCH 1F $9 #BIT1S, $RPER3(R0) 000230 DRVER O 00 L2 100000 000230 —— 040000 DD PP TVD— 000202 sBR IF NOT SET .REPORT °‘IAE’ DODODOD® AN Mie UVO—D— 004000 13% 1AEER DOD®» Yo O 012670 VO =z=m D Sea 0077 SK1ER PC :BAD SPOT ? ;REPORT ERROR +REPORT SKI ERROR +EXIT FROM ERROR ANALYSIS ROUT. N CIRJOAQ RPO7? PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 15 SEQ 0078 MAIN PROGRAM 5 :PROCESS DATA ('DCK') 8 0105646 032760 000100 000202 11 010556 022760 010040 000232 10 010554 12 010564 13 010566 16 010572 }2 010576 001411 001024 004737 104414 000451 17 010600 18 010606 026027 101013 20 21 22 23 24 001410 005760 001033 004737 104414 19 010610 010614 010616 010622 010624 010630 25 010634 005760 000404 26 010636 27 010642 28 010646 29 010652 30 010656 31 010664 32 010670 004737 106414 004737 004737 012737 004737 000403 gg 010676 000602 33 010672 36 010700 37 0107064 gg 013710 000232 010040 18%: 001232 022214 053300 024016 004737 024024 28: 3%: 001324 4%: 024056 5% 004737 104414 022214 051560 63: 46 010722 004737 022262 DCKERT: 48 010732 49 010736 004737 004737 023366 0163.6 51 010750 52 010756 032760 001012 50 010742 #10040, $RPECT (RO} BR s 1% 2% PC.LINEY LEMS? :ECH tQROR SET 2 ‘BR IF NN ;OTHERWISE RPEC1=10040 ;REPORT ¢CC LOGICAL FAILURE ‘FIRST LINE OF ERROR MESSAGE SECH ER OR = ECC UNCORRECTABLE CMP BH] $RPEC1T(RO),#10040 2% :BR BEQ 187 BNE JSR DISPLY 2% $RPEC2(RO) 6% PC,LINET LEM4L7 JSR DISPLY JSR JSR MOV JSR BR PC,LINEY LEM&S PCLLINE PC,INCTOT #3 RETRY PC.%RETRY 48 :TYPE FIRST LINE OF ERROR MESSAGE STYPE 'ECC LOGIC ERROR" STYPE LINE 2 OF ERROR MESSAGE ;INCREMENT TOTAL ERROR COUNT ‘RETRY COUNT JRETRY THE ORDER TRETRY WAS NOT SUCCESSFUL BR 5¢ SFINISH THE ERROR REPORT BR JSR JSR RIS $RPECT (RO) 13 PC.,LINEG6C PC,LINE6GD PC.LINE7 PC IF ;1S POSITION COUNT OVER MAXIMUM ? YES sPOSITION COUNT 0 ? ‘BR IF YES -VALUE IN PATTERN REGISTER ? ‘BR IF YES ;TYPE FIRST LINE OF ERROR MESSAGE STYPE 'ECC LOGIC ERROR' *PRINT "CORRECTED ON N RETRY(S)® :PRINT "UNCORRECTABLE AFTER N RETRY(S)' STYPE LINE 7 OF ;RETURN ERROR MESSAGE JTHE VALUES IN BHE ECC REGISTERS ARE CORRECT, REPORT 'DCK' ERROR 42 010712 43 010716 47 010726 CMP JSR 29 2g 010722 #ECH,SRPERT(RO) BEQ 181 000234 022214 053140 022262 026122 000003 017040 BIT BNE JSR DISPLY 022214 053456 004737 004737 000207 DCKER: CMECK ERROR 004737 012737 7%: 022716 PC,LINET ,EM21 ;PRINT LINE 1 OF ERROR MESSAGE :DATA CHECK ERROR JSR PC.LINE2 :PRINT LINE JSR JSR PC,LINEL PC.PRTBAD ‘PRINT LINE & OF ERROR MESSAGE “SEE IF BAD SECTOR TO BE PRINTED JSR 001322 MOV 53 010760 032760 000100 070202 811 54 010766 001403 §5 010770 004737 56 010774 000403 57 010776 004737 58 011002 000460 110100 JSR DISPLY 010000 000202 BIT BNE 011174 023776 22 011006 012737 000012 64 011012 65 011016 66 011022 004737 005760 001775 020160 000016 1%: 001324 _ ?2%: 3¢: 4$: BEOQ JSR B8R JSR BR MOV JSR 187 BEQ PC.LINES 2 OF ERROR MESSAGE *PRINT LINE 3 OF ERROR MESSAGE #BIT15'BIT12'B1T96,MASK ;LOAD ERROR MASK caxr12.snpea1(ao> SIS IT 'DTE* 2 2% R IF YES #B1106, sapeal(aoS SIS IT "ECH* 2 1% PC,13$ 2% PC,LINEC 106 :BR IFNO PC,GODRIV $TATUS (RO) 1 :RETRY *TEST FOR DONE ‘BR [F NOT DONE #10. ,RETRY : COMPARE BAD DATA ;PRINT °*SECTOR 1S €CCCORRECTABLE® :FINISH THE ERROR REPORT *RETRY COUNT CIRJOAQ RPO7? PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 15-1 SEQ 0079 MAIN PROGRAM 67 011024 68 011026 100057 032760 000200 70 011036 71 011042 004737 104414 026122 055570 76 011052 75 011060 033760 001412 001322 000202 010100 000202 78 011072 79 011076 105237 123737 001325 001324 001325 004737 004737 004737 004737 024274 026026 026122 024056 016356 7%: 8%: 69 011034 ;§ 011046 76 011062 77 011070 001006 000137 032760 001421 000016 007636 5$: 39 011132 000436 98 99 100 101 011134 011140 011144 011150 006737 004737 004737 004737 023776 023734 026002 (015534 9% : 106 011156 004737 024024 11$: 107 011164 108 011170 109 011176 004737 004737 012737 024010 026002 000001 12%: 111 011206 112 011212 113 011214 114 011220 115 011226 116 011230 105737 100406 004737 104414 004737 000240 001353 }82 011162 110 011202 }}g 011232 000753 004737 PC,INCTOT ,LINSM BIT BEQ MASK,$RPER1(R0O) 7% ;LOOK AT CURRENT ERROR ‘BR IF DIFFERENT ERROR INCB (MPB RETRY#1 RETRY,RETRY+1 *INCREMENT RETRY COUNT :DONE ? BIT BEO 001342 004737 000407 JSR DISPLY JMP 011104 011106 }gg 011154 12% :BR IF NOT ERROR #B1T7,8TATUS(RO) " :SEE IF ORDER TERMINIATED NORMALLY BNE 80 91 92 93 94 $5 011112 011116 011122 011126 BPL BIT BNE JSR 13¢: 026122 056037 026056 148: 15¢: 000207 }}g ERPRC1 *SEE WHICH ERROR *INCREMENT TOTAL ERROR COUNT **DIFFERENT ERROR DURING RETRY' #BIT12!'B1T6,$RPERT(RO) ;'ECH® OR 'DTE® STILL 3ET ? 9% :BR IF NEITHER SET JSR JSR JSR JSR JSR JSR JSR JSR PC.LINEG PC.LINESB PC. INCSOF PCIECC JSR PC,LINE6D 8s *INCREMENT ERROR COUNT JSR JSR MOV PC,LINEGA PC. INCSOF #1 FRSTER :PRINT 'SECTOR READ CORRECTLY AFTER N RETRY(S)' S INCREMENT 'SOFT' ERROR COUNT :SET PROCESSING "DCKER® INDICATOR 1STB BMI JSR DISPLY JSR NOP FRSTER+1 15% PC, INCTOT .LIN9G PCLLINE? ‘ERROR [N COMPARE ? ‘BRANCH IF ERROR S INCREMENT TOTAL ERROR COUNT ‘'DATA COMPARE OK' MESSAGE ‘PRINT LINE 7 OF ERROR MESSAGE B8R 014136 :BR IF NOT 38 PC,LINES PC. INCHRD PC.INCTOT PCLLINE? PC.PRTBAD BR 108 : 5$ B8R JSR RTS 15§ 13§ PC . CMPARD PC ‘BR IF NOT ‘PRINT LINE 8 OF ERROR MESSAGE S INCREMENT 'HARD' ERROR CGUNT * INCREMENT TOTAL ERROR COUNT ‘PRINT LINE 7 OF ERROR MESSAGE :PRINT THE BAD SECTOR *CLEAN UP AND RETURN :PRINT "SECTOR IS ECC CORRECTABLE' ‘PRINT LINE SB OF THE ERROR MESSAGE *INCREMENT *SOFT' ERROR COUNT *CORRECT THE ERROR USING ECC AND CHECK :COMPARE THE BUFFER ;PRINT 'UNCORRECTABLE AFTER N RETRY(S)' :COMPARE THE BUFFER :RETURN ;WRITE CHECK ERROR PROCESSING 121 011234 032760 100000 123 126 125 128 011244 011250 011254 0112{0 004737 104414 005037 004737 022214 051664 (€J1322 022262 129 130 131 132 011300 011304 011312 011316 004737 012737 004737 000403 026122 000003 017040 122 011242 011264 011270 011274 001034 004737 004737 004737 022716 023366 023456 000202 WCKER: 81T #BIT15,SRPERT(RO) JSR DISPLY CLR JSR PC.LINEY LEM23 MASK PCLLINER JSR MOV JSR BR PC.INCTOT #3 RETRY PL.SRE TRY 1$ BNE JSR JSR JSR ;SEE IF IT 'DCK' IS SET ALSO 2s :BRIF PC.LINES PC.LINEL PC.LINES *PRINT LINE 3 OF ERROR MESSAGE *PRINT LINE & OF ERROR MESSAGE *PRINT LINE S OF ERROR MESSAGE *INCREMENT TOTAL ERROR COUNT ‘RETRY LIMIT ‘RETRY THE OPERATION *RETRY UNSUCESSFUL ‘PRINT *PRINT ‘CLEAR *PRINT IT LINE 1 OF ERROR MESSAGE WCE & DCK NOT SET ERROR MASK LINE 2 OF ERROR MESSAGE CIRJOAD RPO7 PERF EXER MACRO v04.00 1-JAN=-83 12:06:52 PAGE 15-2 SEQ 0080 MAIN PROGRAM 133 134 011320 004737 024016 137 011326 004737 024024 1446 011334 012737 000012 001324 146 011346 012737 051611 }gg 011324 }§g £11332 145 011342 147 011356 148 149 150 151 152 153 000532 000527 004737 032760 011362 011364 001003 012737 011372 011400 011402 032760 001410 012737 155 011416 001017 JSR PC,LINESC 15§ ‘FINISH PROCESSING THE ERROR :PRINT *CORRECTED 0 N N RETRY(S)' JSR PC,LINE6D :PRINT *UNCORRE(TAB L E AFTER N RETRY(S)' MOV #i0. ,RETRY :RETRY LIMIT 011474 MOV NEMJ2 8% *ASSUME 052512 011474 BNE MOV 000100 000202 053456 011474 022214 040000 B8R 1%: 28: 000176 000426 158 011422 159 011430 026027 “01012 161 011436 162 011440 001407 005760 160 011432 163 011444 164 011446 165 011454 0uS760 001007 012737 000403 166 011456 012737 3$: 000232 053300 011474 053140 011474 173 011476 104414 00000V 004737 022262 179 011516 004737 020160 181 011526 001775 182 011530 183 011532 005760 100405 000003 001324 18¢ 011536 }gg 011542 004737 000416 001325 187 011544 188 011550 186 011556 105237 123737 001663 001325 001324 191 011566 001401 200 011572 004737 024274 12%: 202 011600 004737 026002 13¢: 024016 001325 118: BNE MOV BR MOV :OTHERWISE RPEC1=10040 ECC LOGICAL FAILURE gS POSITION COUNT OVER MAXIMUM ? YE 6% NEMLT,8% 6% ‘BR IF YES SELSE, REPORT THE ECC LOGIC FAILURE ¥EM4LS ,8$ #3,RETRY JSR PC,GODRIV BEQ 10% PC.LINES PC.LINEL PC.LINES ‘BR IF YES *VALUE IN PATTERN REGISTER ? ;ELSE, REPORT THE ECC LOGIC FAILURE SRETRY LIMIT ;TYPE THE ERROR MESSAGE ‘MESSAGE ADDRESS GOES HERE :PRINT LINE 2 OF ERROR MESSAGE :PRINT LINE 3 OF ERROX MESSAGE ‘PRINT LINE & OF ERROR MESSAGE :PRINT LINE S OF ERROR MESSAGE :RETRY THE DRDFR $TATUS(RU) :ORDFR FINISHED ? 11% :BR [F ERROR ON ORDER ‘BR IF NOT INCB RETRY+1 INCB CMPB BEQ RETRY#1 RETRY,RETRY#1 1% 1~casne~r RETRY COUNT ; ONE ? BR IF AT RETRY LIMIT BEQ PC,LINE6C 13§ :INCREMENT RETRY (OUNT *PRINT °CORRECTED ON N RETRY(S) SFINISH ERROR PROCESSING . #B1T1S, snpea1<ao$ S'DCK SET BR 9% 12% :BR l NOT = DIFFERENT ERROR JSR PC,LINES :PRINT LINE 8 = *DIFFERENT ERROR ' JSR PC, INCSOF ;COUNT AS A SOFT ERROR BR ? *POSITION COUNT 0 ? JSR 157 ECH SET $RPEC1(RO) O PCLLINE2 BIT 000752 201 011576 000405 S $RPEC2 (RO) JSR BR 190 011560 032760 100000 000202 }33 011570 BEQ ST B8M] 105237 7 $RPEC1CRO) ,#10040 5¢ :BR IF DISPLY MORD 108%: 010046 SRPEC1(ROS CMP BHI 7%: 8% : 9% : 'WCK® ALSO SET ? ;REPORT JSR J5R JSR 000016 3¢ WEM37,8% ;DID 5¢ MOV 022716 023366 023456 #B1T14,$RPCS2(ROS ERROR MESSAGE THAT EM22 WILI RE PRINTED BNL S$: 6$: *PRINT LINE 1 OF #ECH,SRPER1(RO) 4 FEMS2 131 000234 169 011472 170 011474 180 011522 4$: PC,LINE *FINISH PROCESSING T HE ERROR BIT BEQ MOV CMP 000232 012737 004737 004737 004737 010040 15§ :BRIF IT DJ ‘MESSAGE F ‘WRITE CHECK :WRITE CHECK E RROR WITH , BRANC 1F NOT REPORT 'ECH' ERROR B8R }23 011464 011502 011506 - 011512 JSR BIT 154 011410 022760 010040 000232 ;gg 011420 BR 15§ :CONTINUE RETRY (ZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 15-3 SEQ 0081 MAIN PROGRAM 203 011604 204 205 011606 206 011612 207 011616 208 011622 209 000402 004737 004737 004737 000207 026026 026122 024056 14% 158 219 011630 220 011634 221 011640 222 011644 223 011650 224 011654 225 011660 226 011664 227 011672 228 011674 229 011700 230 011704 231 011710 232 011716 233 011724 234 011730 235 011732 236 011736 237 011742 238 011744 239 011750 240 011754 241 242 243 244 011756 245 011762 246 011766 2647 011772 248 011776 249 012002 250 012006 251 252 252 254 012010 255 012016 256 012020 257 012024 258 012030 259 012034 260 012042 Sg} 012044 268 012050 270 012054 271 012060 004737 004737 004737 104414 004737 004737 004737 004737 032760 001402 004737 004737 004737 012737 012737 004737 000405 004737 004737 000404 004737 004737 000207 024364 016746 022214 051537 022262 022716 023366 023666 040000 023456 026002 026122 000400 000003 017040 15¢ (EXIT JSR JSR JSR PC, INCHRD PC.INCTOT PCLLINE? :COUNT AS A HARD ERROR *INCREMENT TOTAL ERRGR COUNT SFINISH THE ERROR MESSAGE RTS 210 211 217 011624 BR "HCRC® HCRCER: JSR JSR JSR DISPLY JSR JSR JSR JSR PC,READDR PC.READHD PC,LINET ,EM20 PCLLINE2 PC.LINE3 PC.LINEG PC.LINESA :READ ERROR SECTOR HEADER SGET THE HEAD INFORMATION ;PRINT LINE 1 OF ERROR MESSAGE ‘REPORT *HCRC' SPRINT LINE 2 OF ERROR MESSAGE *PRINT LINE 3 OF ERROR MESSAGE *PRINT LINE & OF ERROR MESSAGE PRINT THE HEADER INFORMAYION JSR JSR JSR MOV MOV JSR PC,LINES PC. INCSOF PC.INCTOT #B118,MASK #3,RETRY PC.SRETRY ‘DISPLAY WORDS WHICH CAUSED "WCE® *INCREMENT 'SOFT® ERROR COUNT L INCREMENT TOTAL ERRUR COUNT .ssr sanoa MASK SRETRY LIMIT *RETRY ORDER JSR éé" PC,LINEGC gg.LINE? *PRINT "CORRECTED ON N RETRY(S)' 'EQ{ LINE 7 OF ERROR MESSAGE JSR PC,LINE6GD géa 1$: 001322 001324 BR 024016 024056 ra ¥ 024056 *RETURN :REPORT 000176 024024 PC 3%: JSR RTS ERROR wm,snpcsz(aoseR;uceo ERROR ALSO? 2 PC.LINE? PC SRETRY NOT SUCESSFUL ,PRINT *UNCORRECTABLE AFTER N RETRY(S)® ‘PRINT LINE 7 OF ERROR MESSAGE SRETURN :REPORT DRJVE ERROR 004737 104414 004737 004737 004737 004757 000207 022214 052154 022262 022716 026122 024056 ORVER: JSR DISPLY JSR JSR JSR JSR RTS PC.LINEY LEM30 PC,LINE2 PC.LINE3 PC.INCTOT PC.LINE7 PC sPRINT LINE 1 OF snnoa ‘REPORT DRIVE ERROR ‘PRINT LINE 2 OF ERROR *PRINT LINE 3 OF ERROR *INCREMENT TOTAL ERROR *PRINT LINE 7 OF ERROR *RETURN ME SSAGE MESSAGE MESSAGE COUNT MESSAGE sPROCESS FORMAT (°'FER') ERROR 032760 001402 000137 004737 004737 032737 001002 000137 004737 104414 004737 000400 011624 024364 016746 000400 000202 CKFMT: gég ggl18,SRPER1(R0) : "HCRC' SET ON ORIGINAL ERROR ? 1$: JMP JSR JSR HCRCER PC,READDR PC,READHD :READ HEADER JMP FMTER ;BR'IF "HCRC® SE! :NO, ERROR IS TFMT' ONLY JSR PC,LINEY JSR PC,LINE? 050710 ghg 012750 022214 051743 022262 2%: DISPLY ;BR IF NOT SET ¢REPOST HCRC ERROR :GET CORRECTED TRACK € SECTOR ADDRSSES 5%118.GENREG*+QPERT; "HCRC' SET WHEN HEADER READ? ,EMJ4 SPRINT LINE 1 OF ERROR MESSAGE :HEADER READ ERROR - FMT BIT DROPPED UP :PRINT LINE 2 OF ERROR MESSAGE C(ZkJOAD RPO7 PERF EXER MACRO Vv04.00 1-JAN=-83 12:06:52 PAGE 15-4 SEQ 0082 VY] [E S xZ4[« 4[+- ~ MAIN PROGRAM ow E. wv wv [+ 4 >[(4V+«S 4 L. [= uJ [+ [¥¥]¢ CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-B3 12:06:52 PAGE 15-5 £ 7 SEQ 0083 MAIN PROGRAM %gg 012404 000207 6%: %gg pr ;RETURN :REPORT POSSIBLE POSITIONING ERROR 338 012406 339 012412 340 012416 341 012422 362 343 344 365 346 347 gzg RTS 012426 012432 012436 (12442 012446 012452 012456 004737 104416 006737 004737 012637 004737 004737 004737 004737 004737 000207 022214 053413 022262 022744 POSER: 063324 023666 026076 026122 024176 016630 %gg 357 012460 359 012464 360 012470 361 012474 362 012500 363 012504 364 365 012510 366 012514 367 012522 368 012530 369 012534 370 012536 371 012542 372 012546 373 012550 374 012554 g;g 012560 004737 104414 004737 004737 004737 004737 004737 012737 012737 004737 000405 004737 004737 000207 004737 004737 000207 022214 052206 022262 001322 O0u1324 024016 024056 024024 024056 g;g 385 012562 387 012566 ggg 012572 004737 104614 000137 022214 052251 010722 gg? 392 012576 393 012602 394 012606 395 012612 396 012616 397 012622 398 012626 399 012634 004737 104414 004737 004737 004737 004737 012737 012737 022214 052304 022262 023022 023366 026122 000010 000003 402 012650 004737 024016 400 012642 401 012646 4«03 012654 004737 000405 004737 ;REPORY 'OPl' OPIER: JSR DISPLY JSR JSR JSR JSR 022716 023366 026002 026122 020000 000003 017040 017040 024056 JSR DI>PLY JSR JSR MOV JSR JSR JSR JSR JSR RTS JSR MOV OPIER1: MOV JSR BR JSR JSR RTS PC.LINET LEMSI PC,LINE? PC,LINE3C (SP)+,CYLNDR PC,LINESA PC,INCMIS PC,INCTOT PC,LINE7A PC.RECALT PC ;PRINT LINE 1 OF ERROR MESSAGE :PROGRAM DETECTED POSITIONING ERROR ;PRINT LINE g OF ERROR MESSAGE ;PRINT LINE 3C OF ERROR MESSAGE :;POP STACK INTO CYLNDR :PRINT LINE 5A OF THE ERRCR MESSAGE ; INCREMENT MISPOSITIONING COUNT : INCREMENT TOTAL ERROR COUNT ;PRINT LINE 7A OF ERROR MESSAGE :RECALIBRATE SEXIT ERROR PC,LINET LEM3Y PC,LINE? PC,LINE3 PC,LINE& PC, INCSOF PC,INCTOT #B1T13,MASK #3,RETRY PC,SRETRY 19 PC,LINEGC PC.LINE? PC :PRINT LINE 3 OF ERROR MESSAGE ;PRINT LINE & OF ERROR MESSAGE ;couur “OPI'* AS A SOFT DATA ERROR :SEPT. 26 ADDED FOR RPO7 *INCREMENT TOTAL ERROR COUNT ERROR MASK SRETRY LIMIT ;RETRY THE ORDER sRETRY UNSUCESSFUL :PRINT *CORRECTED ON N RETRY(S)"® ;PRINT LINE 7 OF ERROR MESSAGE JEXIT ;PRINT "UNCORRECTABLE AFTER N RETRY(S)® ;PRINT LINE 7 OF ERROR MESSAGE ;RETURN 1$: JSR JSR RYS :REPORT °'DTE' DTEER: JSR DISPLY JMP :REPORT 'PAR' PARER- JSR DISPLY JSR JSR JSR JSR MOV MOV PC,LINEY LEM33 PC,LINE? PC,LINE3E PC,LINES PC, INCTOY #BIT03,MASK #3,RETRY :PRINT LINE 1 OF ERROR MESSAGE ;REPORT ‘PAR® SPRINT LINE 2 OF ERROR MESSAGE SPRINT LINE 3E OF ERROR MESSAGE SPRINT LINE & OF ERROR MESSAGE : INCREMENT TOTAL ERROR COUNT :ERROR MASK :RETRY LIMIT JSR PC,LINE6C SPRINT "CORRECTED ON N RETRY(S)* 001322 00132¢4 JSR BR 1%: JSR PC,LINE6D PC,LINE? PC :PRINT LINE 1 OF ERROR MESSAGE :'OPI' ERROR :PRINT LINE 2 OF ERROR MESSAGE ERROR PC.LINEY ,EM3? DCKERY ;PRINT LINE 1 OF ERROR MESSAGE ;'DTE® ERROR :FINISH PROCESSING THE °'DTE® ERROR ERROR PC,SRETRY 2$ PC,LINE7 ;RETRY ORDER SRETRY UNSUCESSFUL SPRINT LINE 7 OF ERROR MESSAGE CIRJOAQ RPO7 PERF MAIN PROGRAM 404 012660 405 012662 289 012666 410 611 612 413 414 415 012670 012674 012700 012704 012710 012714 2}9 012720 EXER MACRO Vv04.00 1-JAN=-83 12:06:52 PAGE 15-6 000207 004737 000772 024024 2%: 004737 104414 004737 004737 004737 004737 'IAE® JAEER: JSR DISPLY JSR JSR JSR JSR RTS P PC,LINEGD 1% JEXIT ;PRINT 'UNCORRECTABLE AFTER N RETRY(S)' :FINISH ERROR MESSAGE ERROR PC,LINE? ,LEM3S PC,LINE? PC,LINE3F PC,INCTOT PC.LINE? PC ;PRINT LINE 1 OF ERROR MESSAGE :REPORT *JAE’ TPRINT LINE ¢ OF ERROR MESSAGE SPRINT LINE $F OF ERROR MESCAGE : INCREMENT TOTAL ERROR (OUNT SPRINT LINE 7 OF ERROR MESSAGE :RETURN :REPORT 'WLE' ERROR 012722 012726 012732 012736 012742 252 012746 004737 104414 004737 004737 004737 WLEER: 000207 429 012750 430 012756 431 012760 004737 104414 004737 022214 052072 022262 436 012774 032760 040000 632 012764 433 012770 013002 013004 013010 013014 013020 229 013024 004737 004737 001402 004737 004737 004737 004737 000207 JSR DISPLY JSP JSR JSR RTS 25% 435 436 437 438 439 BR ;REPSRT 000207 2}3 420 621 422 423 624 RTS JSR SEQ 0084 022716 023366 ERROK MESSAGE OF ERROR MESSAGE PC.LINES PC,LINE4 ;PRINT LINE 1 ;FORMAT ERROR sPRINT LINE 2 :PRINT LINE 3 :PRINT LINE 4 OF OF OF ERROR MESSAGE ERROR MESSAGE ERROR MESSAGE 1% PC,LINES PC,LINESA PC,INCTOT PCLLINE? :BR IF NOT *DISPLAY WORDS WHICH CAUSED 'WCE® :PRINT LINE SA OF ERROR MESSAGE : INCREMENT TOTAL ERROR COUNT :PRINT LINE 7 OF ERROR MESSAGE PC FORMAT ERROR FMTER: JSR DISPLY JSR JSR JSR 1%: 22% ;PRINT LINE 1 OF ;REPORT ‘'WLE' :PRINT LINE 2 OF : INCREMENT TOTAL ;PRINT LINE 7 OF :REPORT 000176 023456 023666 026122 024056 PC,LINEY ,EM36 PC,LINE2 PC,INCTOT PC,LINE? PC,LINE? ,EM26 PC,LINE2 :RETURN BIT #BIT14,8RPCS2(RO) RTS PC BEQ JSR JSR JSR JSR ERROR MESSAGE ERRCR COUNT ERROR MESSAGE ;'WCE® ERROR ALSO ? ;REPORT HEADER COMPARE ERROR 446 445 446 447 448 013026 013032 013036 013042 013046 004737 104414 0064737 004737 006737 450 451 452 453 454 013060 013062 013066 013072 013076 001402 004737 004737 004737 004737 449 013052 222 013102 032760 000207 02221« 052117 022262 022716 023566 047,000 022656 023566 026122 024056 22; 459 013104 460 013110 HCEER: 000176 JSR DISPLY JSR JSR JSR PC,LINET ,EM27 PC,LINE2 PC,LINE3 PC,LINE& :PRINT LINE 1 OF ERROR :HEADER COMPARE ERROR ;PRINT LINE 2 OF ERROR :PRINT LINE 3 OF ERROR PRINT LINE & OF ERROR BEQ JSR JSR JSR JSR 1% PC,LINES PC,LINESA PC,INCTOT PCLLINE? :BR IF NOTY :DISPLAY WORDS WHICH CAUSED °WCE® :PRINT LINE SA OF ERROR MESSAGE :INCREMENT TQTAL ERROR COUNT sPRINT LINE 7 OF ERROR MESSAGE BIT 1%: RTS lBlT14.$RP(SZ(R05 PC :*WCE' ERROR ALSO ? MESSAGE MESSAGE MESSAGE MESSAGE :RETURN :PROCESS CONTROL/INTERFACE TRANSFER ERROR 004737 1064414 022214 052564 TRFER: JSR DISPLY PC,LINET LEMLO ;PRINT LINE 1 OF ERROR MESSAGE :RHXX OR UNIBUS TRANSFER ERROR CZRJOAQ RPO7 PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 661 462 463 664 013116 013120 0131264 013130 004737 004737 004737 004737 466 467 468 469 470 471 472 473 4764 013142 013144 013152 013156 013162 013164 013170 013172 013176 001415 012737 005037 004737 000403 004737 000402 004737 004737 465 013134 2;2 013202 032760 000207 022262 02%716 023366 026122 121400 000176 000003 001322 017040 00132¢ 024024 1%: 024056 2%: 2;2 479 480 481 482 483 484 485 +PROCESS 013204 013210 013214 013220 013224 013230 013234 239 013240 004737 104414 004737 004737 004737 004737 004737 000207 022214 053355 022262 022732 026122 026052 024176 SKIER: 490 491 6492 493 494 495 004737 104414 004737 004737 004737 004737 022214 052361 022262 0227264 023366 026122 497 013276 498 013304 499 013312 012737 012737 004737 000003 000040 017040 496 013272 500 501 502 503 504 282 sPRINT LINE § OF SPRINT LINE 3 OF :PRINT LINE &4 OF : INCREMENT TOTAL BEQ MOV CLR JSR BR JSR BR JSR JSR c$ #3,RETRY MASK PC.SRETRY 1% PC,LINEGC 2% PC,LINEGD PT,LINE? ;BR _IF NONE SET sRETRY LIMIT sCLEAR ERROR MASK ¢RETRY THE OPERATION ¢RETURN HERE IF RETRY UNSULESSFUL sPRINT *CORRECTED ON N RETRY{S)*® ;FINISH THE ERROR REPORT sPRINT "UNCORRECTABLE AFTER N RETRY(S)' ¢PRINT LINE 7 OF ERROR MESSAGE RTS °'SKI' JSR DISPLY JSR JSR JSR JSR JSR +REPORT WRIRE 013242 013246 013252 013256 013262 013268 013316 013320 013324 013330 013332 013336 004737 000405 004737 004737 000207 004737 000772 016356 WCFER: 024016 024056 1$: 024024 2%: ggg ERROR ERROR ERROR ERROR MESSAGE MESSAGE MESSAGE COUNT #BIT15!81IT13:8179 BIT8,SRPCS2(R0O) ; *DLT',"UPE',"MXF*, PC ERRORS PC,LINET ,EMS0 PC,LINE2 PC,LINE3B PC,INCTOT PC, INCSKI PC,LINE7A PC CLOCK FAILURE :PRINT LINE 1 CF ERROR MESSAGE : 'SKI' ERROR ;PRINT LINE 2 OF ERROR MESSAGE ¢PRINT LINE 3B OF ERROR MESSAGE s INCREMENT TOTAL ERROR COUNT s INCREMENT °*SKI*' OR 'OCYL' ERROR (COUNT ;PRINT LINE 7A OF ERROR MESSAGE ('W(CF') JSR DISPLY JSR JSR JSR JSR PC,LINET ,EM34 PC,LINE? PC,LINE3A PC,LINES PC,INCTOT :PRINT LINE 1 OF ERROR MESSAGE cREPORT WRITE CLOCK FAILURE ¢PRINT LINE 2 OF ERROR MESSAGE :PRINT LINE 3A OF ERROR MESSAGE sPRINT LINE & OF ERROR MESSAGE s INCREMENT TOTAL ERROR COUNT MOV MOV JSR #3,RETRY #Bi105,MASK PC,SRETRY sRETRY COUNT ;ERROR MASK sRETRY THE ORDER JSR 001324 001322 Sea 0085 PC,LINE? PC,LINES PC,LINEG PC,INCTOY RTS 2%3 H JSR JSR JSR JSR BIT 024016 15-7 BR JSR JSR RTS JSR BR PC.PRTBAD 2% PC,LINEGC PC,LINE? PC PC,LINEGD 1% sSEE _IF BAD SECTOR TO BE PRINTED ¢RETURN HERE 1F RETRY UNSUCESSFUL ¢PRINT °*CORRECTED ON N RETRY(S)® :PRINT LINE 7 OF ERROR MESSAGE sPRINT "UNCORRECTABLE AFTER N RETRY(S)' sPROCESS DRIVE UNSAFE ERROR 509 013340 004737 022214 511 512 513 5164 515 516 004737 004737 004737 012737 012737 004737 022262 022716 026122 040000 (000003 017040 510 013344 013350 G13354 013360 013364 013372 013400 517 013404 104414 000403 UNSAF: 053522 001322 001324 JSR PC.LINEY ¢PRINT LINE JSR JSR JSR MOv MOV JSR PC,LINEQ PC,LINES PC,INCTOY #BIT14 ,MASK #3,RETRY PC,SRETRY ¢PRINT LINE 2 OF ERROR MESSAGE ;PRINT LINE 3 OF ERROR MESSAGE s INCREMENT TOTAL ERROR COUNT JRETR. MASK sRETRY (GUNT :RETRY THE ORDER DISPLY BR ,EM60 1% 1 OF ERROR MESSAGE sREPORT DRIVE UNSAFE ;RETRY WAS UNSUCESSFUL *MDPE' SET ? O DO 024016 1%: 0249056 2%: b d JSR 024024 031302 :DROP UNSAFE DRIVE PC sREPORT EARLY EWNERR: JSR #B112,$RPER3(R0) :SKIP LINES ;"TPE® SET? JSR JMP ;REPORT AN :TYPE REMAINING ERROR MESSAGE SYAIR" SET? :BR If NO LEM72 :'EARLY WARNING ERROR,AJR TPE NOT SET® PC,INCTOT #7,MASK #3.RETRY PC.SRETRY (3 PC.LINE6C PC - INCREMENT TOTAL ERROR COUNT :SET UP ERROR MASK :RETRY COUNT *RETRY THE ORDER ;RETRY UNSUCESSFUL RETURN :PRINT *CORRECTED ON N RETRY(S)® :RETURN :YAIR SYSTEM WARNING ERROR® PC.LINE2 PC,LINE3 4%: NO 23 3Erm b ;RETURN *PRINT TEMPERATURE WARNING ERROR 13 000230 "UNCORRECTABLE AFTER N RETRY(S)® ;PRINT LINE 7 OF ERROR MESSAGE #B1T1,$RPER3(RO) 1$ :BR .8 EM70 — :PRINT WARNING ERROR PC,LINET 000230 o0 [elelolele] OO — NN WNES BN = = OO~ OoOHrMNVONS OSSOSO 053702 DROP PC,LINE? RTS NN b D D D eed D D o D e ad D o i o D b 053624 A AN N A AN LN N AN N N AN AN AN (O LV IV [ TV IV TV VIV, [V IV P o 466 sPRINT *CORREC TED ON N RETRY(S)' :CONTINUE WITH ERROR REPORT PC,LINE6D 053545 000004 2% PC,LINEGC o D 000002 JSR BR JSR JMP PC.LINEGD DROP 'UNKNOWN' <ERROR MESSAGE :PRINT QUT :PRINT 'UNCORRECTABLE AFTER N RETRY(S)® :DROP DRIVE CATA PATTERN RSSO WNNO 3%: A ¥ DISPLY DISPLY DISPLY PC,LINET 43 PC,LINE?Z PC.LINE3A :PRINT LINE 3A OF ERROR MESSAGE 2% X NN NN AN —_N=R) WENRUN WWO S~ SANNNN OO00O0O0 MOV OOO0D OWVOW 2%: FRSTER 5% » 1%: :WAS (*C) TYPED? :BR IF YES sFIRST ERROR IN THE CFLAG s 001352 TST BNE 1S1B BNE JSR DISPLY JSR JSR JSR BR PC,LINEG 3 LY NOMT(CH: WS NN OO — O rRONS 001334 QOO0 WO ON N s S B D NNNESNWNON b b OO AN NN =2 LN =2 N OMN = NNO = NSO S NN BN A NOU A ~N 640 642 (elelolelelale P T lelalle l lole o O = [=lelelelelolelolalolelelolelelele] B ) -l ) el ) e — i e il il i wnld b il wd e 600 B AWNEO—=2NEBDONREDD 2NN NN N=ONS S NNNESN ONO~N *R1 = POINTER FIRST WORD OF DATA BUFFER loleleleleleleleloelalalalelalelalele ol O ODNO NN NN — = OOVM~NOW SN W ASVVALAVALANAW NSNS(W IV TV LV TV LV IV IV OO N NNNNNNNN ~oooorOor o Yo XV IV, IV IV 1V [V, ] 024024 031302 022214 AN NN AN A L L AN LA LN AN AN AN AN AN L AN AN NN NANVAVWLA ooooooo o AN NN A NN 5 NN AN N NN ANANINNO N RONI RO NONIMNORON) — — OOV NO NS NN =2 OOV NN WOV VAU ALAD A N SEQ 0086 EM43 SCRLF LINGI ST CFLAG JSR INC R1,=(SP) PC.LINOCT WROPOS WRDPOS , = (SP) 3INE MOV MOV JSR 5$ PC,$5B2D SECTIOR ? :BR IF NOT OR [F PROCESSING °*D(KER® :TYPE LINE 1 OF ERROR MESSAGE :*CAN'T MATCH DATA WITH PATTERN' ;PRINT LINE 2 OF ERROR MESSAGE sPRINT LINE 4 OF ERROR MESSAGE ¢CONTINUE PROCESSING ERROR ;ESAN;I MATCH DATA WITH PATTERN' sCR=L ¢HEADER FOR DATA PRINTOUT sWAS (*C) TYPED? ;BR IF YES sADDRESS OF WORD POSITION :TYPE WORD NUMBER s INC WORD POSITION sPUT THE WORD POS ON THE sCONVERT IT 10 DECIMAL STA(K 000770 5%: 177777 001460 MOV MOV RTS N w \=4 R2 < CLR m S o 0 2] ADD WRDPOS ,#3 LEADING ZEROS) ATA WORD —~ LSCRLF DISPLY (MP BNE Y 0 Ownr LYo — X 7 B @ PO —— OX —r & ©oX -0 JSR (P1)+,=(SP) PC.LINOCTY ) - 4 026306 1 001203 1 74 0013 ,PERIOD .BLNKS? L ACE >» [ MOV 6 - 05 7 056530 RS,$REPLZ Voo DO << <z I MOVVLLO JSR .WORD DISPLY DISPLY > mmymmmm ~ &»H 032662 SEQ 0087 fi-—-wo'.—o)—o—a—c-« D D i b e D b oD d o o NN LN AN AN N N NN NN o OOV 00 ~NONN S NnY — ([olelolelalelalalelalels] NN ~O 00 00 00 QO 00 0O J0 00 00 IAAIAUIMOWAUNA N 013662 013666 3670 EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 15-9 [elelelelalele llelel tlolel O= =200 ONOO~=0O0000 QO WNINND =2 NSNS O S NI NNO NWNNES =SSOV OVINO O SN = N — = O\ NNNN =S NS NSO CIRJOAO RPO7 PERF MAIN PROGRAM #<252 +2.>,R1 NCREHENT BUFFER POINTER ~ & MAT(HING WORDS #-1,FRSTER g?PLHT.LlHIT :SET_ERROR FOUND INDICATOR SE?SANTHE COMPARE ERROR TYPEQUT LIMIT ;CLEAR 'WORDS TO COMPARE' COUNT IN R2 d = 000166 177400 000176 b D b 000202 005760 000416 000226 004737 004737 004737 0064737 004737 004737 000207 T T Nv 1 ) 104414 [oleleleleleTm] Pl X X 2k 2k 2k ki bbb ed bbb S8 b 002 2 OMNPONINIY O =2 AN~NNVO V VIO = OTM &~ — [« L, 870 Yo XNTVEY b D 000230 8IT BNE 8IT BNE 1ST BNE qgoooo,SRPCS1(RO) °'TRE' OR 'M(CPE' 1% $RPER1(RO) IF ANY SET ¢ANY BITS SET IN ER1 $RPER3(RO) SANY BITS SET IN ER3 ? sANY BIT SET :BR IF NO IN ER? 1% $RPERZ (RO) 2% PC,LINET SET :BR IF ANY SET :BR IF YES ;PRINT LINE 1 OF ERROR MESSAGE ;PRINT LINE 2 OF ERROR MESSAGE s INCREMENT TOTAL :PRINT LINE 7 OF sRETURN ERROR COUNT ERROR MESSAGE EML4 ;ERROR BITS SET, BUT NO ERROR BITS SET PC,LINEZ PC,LINESG sPRINT LINE 3 OF ERROR MESSAGE ¢PRINT LINE & OF ERROR MESSAGE PC,LINE2 PC, INCTOT PC,LINE7 PC 2%: _IF n177400 SRPCSZ(Rbé ;SEE IF ERROR BITS IN (S2 SET 1% 1%: sSEE BR'IT EITHER SET 000020 ?zPUC(RO) MOV ASL ADD SWRDL (RO) ,=(SP) (SP) $BUF (RO), (SP) (SP)+ ,$RPBA(RO) o s o o 1%: TST BNE B (KBUS: = I r 000170 s 005760 VVOVOVOVO OO alalalalalnlsial ] OSSN OrOrOSr0O P X, X7 b e i e o e e D e e D e i S8 NY OO0 (elelelele) W) = =2 OO N [o N QAPo s CHECK BUS ADDRESS REGISTER & WORD COUNT REGISTER (elelelalalolelelelelolnlelele) OO0 ~NO W Bl e b e d e (oo e Yo To Yo Yo Yo o ] 620 CKERR: LS [eleleloelalelale Nele B elelelelolelelo] 060000 b B HANAN NN sCHECK ERROR BITS IN THE RHXX & RPO7 REGISTERS 2%: s CHECK WORD COUNT ¢BR IF NOT ZERO sWORD LENGTr s CHANGE INT( BYTE COUNT :ADD THE ST'RTING LOCATION :BUFFER ADURESS PROPER ? :BR IF OK sPRINT LINE 1 OF ERROR MESSAGE <BUS ADDRESS OR WORD COUNT INCORRECT sPRINT LINE 2 OF ERROR MESSAGE ;PRINT LINE 3D OF ERROR MESSAGE sPRINT LINE & OF ERROR MESSAGE s INCREMENT TOTAL ERROR COUNT sPRINT LINE 7 OF ERROR MESSAGE CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 16 K SEQ 0088 MAIN PROGRAM } ; COMPARE z 014132 005037 001352 5 014136 6 014144 132760 001001 000004 9 10 11 12 13 }g 014150 014154 014160 014166 014174 014176 005037 016001 016037 066037 001901 000207 001362 000006 000020 000170 16 014200 17 014206 016037 052737 000012 150000 001370 001370 19 014222 013737 001460 001364 g 014146 18 014214 20 21 22 23 24 25 000024 000207 016037 014230 014234 014242 014246 014252 014260 005237 012737 005037 005037 023760 101005 28 014272 29 014274 30 014300 31 014306 %% 014314 000405 016002 166037 126027 001034 26 014262 27 014266 CMPAR: 013702 005037 THE BUFFER (LR FRSTER ;CLEAR "FIRST ERROR' AND °'NO DCK®' CMPARD: B]TB BNE #4,$CODE (RO 1% s SEE IF READ COMMAND BRIF IT IS 1$: CLR MOV MOV ADD BNE RTS ERCIR $BUF (RO) ,R1 SWRDL (RO) ,CMCNT $RPWC(RO) ,CMCNT 2% PC :CLEAR THE ERROR COUNTER ;BUFFER ADDRESS ;WORD COUNT TO WORKING LOZATiON ; CALCULATE WORDS TRANSFERED MoV BIS SCYL(RO),CMCYL #150000,CMCYL ;CYLINDER ADDRESS WORKING LOCATION :SET MFG, USER AND FMT BITS MOV CMPLMT,LIMIT ;DISPLAY LIMIT RTS 000010 001364 177777 001356 001360 001366 001366 001366 2%: 001372 001350 MOV (CMSTR: 000022 001366 001366 000022 000022 000024 001366 000005 gg 2%: $SEC(RO),CMSEC INC MOV CLR CLR cMP BHI LIMIY #-1,IROIND SAVER1 SAVERS CMCNT ,$SSEC(RO) 19 BR MOV SUB CMPB BNE 2% $SSEC(RO) ,R? $SSEC(RO) ,CMCNT $CODE (RU) ,#5 CMDAT MOV CLR 1$: PC CMCN) ,R2 CMCNT INDICATOR :RETURN sEX1T==NO WORDS XFERED :SECTOR & TRACK ADDRESSES TO WORKING LOCNS :CONVERT PARAMETER INTO LIMIT VALUE ;CLEAR THE °'ZERO'S' INDICATOR :CLEAR THE R1 SAVE WORD :CLEAR THE R5 SAVE WORD ;IS BUFFER SIZE GREATER THAN ONE SECTOR ? :BR IF IT IS ;LESS THAN, USE REMAINING BUFFER :SET COUNTER TO 0 : COMPARE SECTOR ;DECREMENT WURD COUNT sREAD HEADER & DATA? :BR IF NOT : COMPARE HEADER WORDS 36 0164316 012705 38 39 40 41 022521 001405 012737 004737 37 014322 014326 014330 014332 014340 62 0146344 43 014346 &6 014350 45 016356 46 016362 47 014366 23 014370 50 014374 51 014400 g% 014406 052711 022521 001405 001370 177777 014374 012737 004737 177776 014374 000137 015010 005237 004737 000207 001362 015016 162702 003007 CMHED: 150000 001374 1$: 001374 000002 2%: CMSTR2: 22 MOV #CMCYL RS sADDRESS OF COMPARING CYLINDER CMP BEQ MOV JSR (R5)+,(R1)+ 1$ #-1,WRDPOS PC,CMSTR2 sCHECK CYLINDER :BR IF COMPARE 0K s INDICATE UORD POSITION IS HEADER WRD 1 sREPORT ERRO 2% :BR IF BIS CMP BEQ #150000, (R1) (R§)+, (R1)+ MOV JSR #-2 ,WRDPQS PC,CMSTRZ JMP CMPRX SuB BGT INC JSR RTS ¥2,R2 CMDAT ERCIR PC,CMPRT PC :SET BITS INCASE BAD SECTOR ENCOUNTER + COMPARE SECTOR/TRACK EQ sINDICATE WORD POSITION IS HEADER WRD 2 +REPORT ERROR s SUBTRACT EADER LENGTH FROM S1ZE ¢BR IF NOT FINISHED s COMPARE THE DATA PORTION ¢ INCREMENT THE ERROR COUNT sREPORT THE COMPARISON ERROR sCHECK THE REST OF THE HEADER : COMPARE DATA FIELD 56 014406 Q12737 57 014414 (04737 ] 177777 015444 001374 (MDAT: MOV JSR #-1,4RDPOS PC,MAT(H ;INITIAL]ZE WORD POSITION ;FIND THE PATTERN CIRJOAQ RPO7 PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 16-1 58 014420 59 014422 g? 014426 000403 004737 000463 62 0164430 63 014432 66 016436 65 014442 66 014444 67 014446 68 014452 011405 012703 005237 022125 001016 005737 001406 70 014462 001402 69 014454 013554 000010 ;; 016464 004737 015016 73 74 75 76 005302 003441 005303 001357 ;g 014500 79 014502 80 81 82 83 014506 014510 014516 014522 gg 014526 86 014530 164472 3%: 005761 001410 012737 005237 004737 000760 105737 014534 014536 014542 014546 014552 014560 014562 014566 014570 014574 100412 005037 010137 010537 013737 000743 005737 001740 004737 000735 98 99 100 101 102 103 106 105 }89 014576 014604 014606 014612 014616 014620 014626 014630 0146364 126027 001414 013702 020227 002474 162737 003667 012702 108 109 110 111 112 113 014636 014644 014646 014652 014660 014662 023727 002461 105237 123760 101424 105037 000664 105237 177777 001362 015016 6%: 001350 ¢FOUND A PATTERN ;RETURN HERE IF NO MAT(H WITH PATTERN MADE +BYPASS COMPARE ROUTINE MOV MOV INC cMP BNC TST BEQ (R4) ,RS #16.,R3 WRDPOS (R1)+,(RS) ¢+ 3 ERCTR 3% sADDRESS OF PATTERN ADDRESS IN R4 ¢R3 IS PATTERN POS COUNTER s INCREMENT TO CURRENT WORD POSITION . COMPARE BUFFER WITH PATTERN sBR IF NOT EQUAL :ERRORS DETECTED ? :BR IF NO ERRORS 3% :BR IF Bl17 #Su3,aSWR JSR PC,CMPRT DEC BLE DEC BNE R2 4] R3 2% TST =2(R1) 001350 001356 001360 001374 5%: 001354 001350 6$: 015016 000026 000005 001366 000004 000400 7%: 8s: 001366 000400 000002 001372 001372 000152 001373 1ST8 9%: 1% 5% #-1,IR0IND ERCTR PC,CMPRT 3% FRSTER sSWITCH 3 SET ? NOT SET :DISPLAY THE WORD sDECREMENT SIZE COUNT ¢BR WHEN AT END sDECREMENT PATT POS COUNT :BR IF NOT AT END OF PATT sRESTART THE PATTERN :1S MISCOMPARED CHARACTER=0 sBR IF YES sSET NON-ZERO MISCOMPARED INDCATOR s INCREMENT THE ERROR COUNTER +REPORT ERROR s CONTINUE COMPARE ¢FIRST ERROR? BMI] CLR MOV MOV MOV BR TST 8EQ JSR B8R 6% IROIND R1,SAVER! RS,SAVERS WRDPOS,SAVPOS 3% ZROIND 3% PC,CMPRT 3s «BR_IF NOT ¢SET THE ZERO INDICATOR :SAVE CURRENT R1 :SAVE CURRENT R5 ;SAVE CURRENT WORD POSITION :CONTINUE COMPARE sANY MISCOMPARIONS NOT ZERQOS ? sBR IF NONE-ALL ERRORS=ZERO +REPORT ERROR :CONTINUE COMPARING CMPB BEQ MOV CMP BLY SuB BLE MOV $CODE(RO) ,#5 9% CMCNT ,R2 R2,#4 CMPRX #256.,CMCNT CMDAY #256. ,R2 sREAD HEAD AND DATA ? JYES sSET _COUNTER = REMAIN BUFFER LENGTH s1S THERE AT LEAST 4 WORDS TO MATCH PATTERN ? :BR IF NO :GREATER THAN A SECTOR ? sNO,RETURN TO COMPARE LOOP sSET COUNTER =SECTOR SIZE cmp BLT INCB (MPB 8LOS CLRB CMCNT, #2 ¢1S THERE AT LEAST 2 WORDS TO COMPARE HEADER ? CMPRX :BR _IF NO CMSEC « INCREMENT COUNTER CMSEC,SECLMT(RO) ¢MAX SECTOR # ? 10$ :NO CMSEC sRESET SECTOR # BR 001366 001372 BEQ MOV INC JSR B8R 001352 SEQ 0089 1% PC,NOMTCH 7% BR 177776 7 BR JSR BR BEQ 000753 87 88 89 90 91 92 93 94 95 89 116 014666 2%: 001362 032777 014470 0146472 014474 014476 1%: 000020 001374 L INCB CMDAT CMTRK ¢RETURN TO COMPARE LOOP s INCREMENT TRACK # CIRJOAO RPQO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 16-2 SEQ 0090 MAIN PROGRAM 115 116 117 118 119 014672 014700 014702 014706 014712 120 014716 121 014722 122 014726 123760 101414 105037 005237 013746 042716 022660 101401 001373 125 014732 012705 001370 128 014744 129 014746 130 0147564 001405 012737 004737 177777 014374 132 014762 133 0147664 001405 012737 131 014760 022521 INC MOV 150000 000150 000427 052711 022521 108: 150000 001374 118: 004737 014374 001374 136 014776 137 015004 162737 003401 000002 001366 146 015010 004737 015376 }%g 015006 }23 01501 000677 000207 160 161 162 163 164 165 005737 001005 004737 004737 000431 015020 015024 01502¢ 015032 015036 015040 015040 001356 174 015116 };2 015122 004737 000207 015206 105737 100443 001013 001352 166 015050 167 015054 015112 015114 177 015124 178 015130 179 015132 012605 012601 NORMAL RETURN,NOT WRAP AROUND MOV #CMCYL,RS ;ADDRESS OF BEQ MOV JSR 1% #-1,4RDPOS PC,CMSTR? IMATCH :INDICATE WORD POSITION IS HEADER WRD 1 sNOT MATCH B1S CMP CMP 10$ #150069, (R1) (R5)+, (R1)+ (R§)+, (RT)+ NO COMPARING CYLINDER ;SET BITS INCASE BAD SECTOR ENCOUNTER : COMPARE 1ST HEADER WORD SECOND WORD OF HEADER 8EQ MOV 12% #-2 ,WRDPOS SuB BLE #2,CMCNT CMPRX :ADJUST WORD COUNT : COMPARE IS DONE JSR PC,ENDCMP ¢PRINT LAST LINE RTS PC,CMSTRZ 8% nC DATA COMPARE iMATCH s INDICATE WORD POSITION IS HEADER WRD 2 :NOT MAT(H ;RETURN TO COMPARE LOOP IF ERRORS ERRORS NOP 1$: TST BNE JSR JSR BR SAVER1 2% PC,48 PC,7% 3% sPRINT SAVED VALUES ? :BR IF YES ¢PRINT INITIAL MESSAGE INFO ;PRINT REMAINDER OF MESSAGE JEXIT MOV MOV MOV Mov MOV MOV JSR JSR CLR CLR MoV R1,=(SP} RS,=(SP) WRDPOS, =(SP) SAVER1,R1 SAVERS RS SAVPOS.WRDPOS PC,49 PC,7% SAVER1 SAVERS (SP)+,WRDPOS :;PUSH R1 ON STACK ;;PUSH RS ON STACK ;PUSH WRDPOS ON STA(CK ;DISPLAY SAVED R1 :DISPLAY SAVED RS :DISPLAY SAVED WORD POSITION ;PRINT INITIAL MESSAGE INFO ;PRINT SAVED VALUES :CLEAR SAVED REGISTER INDICATORS :CLEAR THE OTHER ONE s:POP STACK INTO WRDPOS JSR RTS PC,7% PC sPRINT REMAINDER OF MESSAGE :RETURN 1ST8 BM] BNE FRSTER 9% 5% 2$: 015060 015066 015072 015076 015102 015106 015042 015044 CMPRX CMPRT: 015124 015206 010146 010546 013746 013701 013705 013737 004737 004737 005037 005037 012637 168 169 170 171 172 173 CMPRX: sTYPE 000240 BR B8R }g? }g; 015016 #150000, (SP) :SAVE ONLY THE CYLINDER BITS (SP)+, CYLLHT(RO) sLAST CYLINDER ? JSR 12%: CMTRK, TRKLMT (RO) sMAX TRACK # ? 10$ : CMTRK RESET TRACK # CMCYL ¢ INCREMENT CYLINDER NUMBER CMCYL =(SP) :GET _COMPARING CYLINDER BIC CMP BLOS 177776 }gg 014772 (MPB BLOS CLRB 001373 001370 001370 }%2 014730 126 014736 127 014742 000156 001374 001356 001360 001354 015124 015206 001356 001360 001374 MOV MOV 3%: 4%: (SP)+,RS (SP)+,R1 :;POP STACK INTO RS ::POP _STACK INTO R1 ¢FIRST ERROR ? :BR IF NOT , :BR IF FIRST ERROR AND PROCESSING °'DC(K' ERROR, CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE MAIN PROGRAM 180 181 015134 004737 }gg 015160 000404 182 183 184 185 015140 015144 015150 015154 188 015162 189 015166 190 015172 104414 004737 004737 004737 022214 052666 022262 022724 023306 191 192 015176 104414 104414 106416 055613 (001203 055642 012737 177777 195 015206 005737 001334 }gz 015204 196 197 198 199 015212 015214 015220 015222 200 015226 201 015230 000207 100412 005737 001403 005337 001005 032777 015242 015244 015250 015256 010146 162716 004737 004737 210 211 212 213 214 %}g 015266 015270 015276 015300 015304 015310 004737 104414 016146 004737 104414 000207 024306 056530 177776 024306 001203 217 015312 218 015320 219 015322 023727 001003 104414 001374 221 015330 222 015336 223 015340 023727 001003 104414 001374 013746 001374 004537 000006 1064614 032662 220 015326 224 015344 225 015346 226 015352 227 015356 228 015362 229 015366 230 015370 g;; 015374 016546 000420 000411 004737 104414 000207 8%: 9s: 108: 000002 024306 015312 177776 _ 177777 11%: 177776 12%: 057065 033332 057711 156530 B8R 6% 13%: 148: ,EM&2 PC,LINE? PC.LINE3A PC.LINEG SEQ 0091 ;ELSE, FIRST ERROR AND COMPARE ;DATA COMPARE ERROR W/0 °*DCK' ERROR SPRINT LINE% OF ERROR MESSAGE :PRINT LINE 3A OF ERROR MESSAGE :PRINT LINE 4 OF ERROR MESSAGE 160 TO TYPE HEADER ,LIN9B ,$CRLF ,LINOH :PRINT sCR=LF ;PRINT MOV #-1,FRSTER :SET WORD EXPCTD ADDR POS DATA FIRST ERROR FLAG CFLAG ;WAS (*C) 10% JBR IF NOT AT LIM]T TST PC 'DATA COMPARISON ERRORS' °* 001353 ENDC(MP: RECEVD DATA’ :RETURN TYPED? BM] ST BEQ DEC 9¢ LIMIT 8s LIMIT BIT #5uW07,3SWR MOV SUB JSR JSR R1,={SP) #2.(SP) PC,LINOCT PC,11$ ;BUFFER ADDRELSS *ADJUST ADDRESS STYPE [T :GET WORD POSITIO JSR DISPLY MOV JSR DISPLY RTS PC,LINOCT ,BLNKS?2 <2(R1),-(SP) PC,LINOCT ,$CRLF PC STYPE IT sTYPE 2 BLANKS :RECEIVED DATA STYPE IT sCR-LF *RETURN (MP BNE DISPLY WRDPOS, #-1 128 ,MSHWI 1S IT HEADER WORD 1 :BR [F NO STYPE * WD CMP BNE DISPLY WRDPOS , #-2 13$ ,MSHW2 ;1S 1T HEADER WORD 2 ? :BR_IF NO STYPE * HW2 ° MoV WRDPOS ,=(SP) JPUT THE WORD POS ON THE STA(CK JSR .WORD DISPLY RS, SREPLZ 6 ,PERIOD :TYPE IT (REPLACE LEADING ZEROS) :TYPE 6 DIGITS BNE BNE RTS BR BR JSR DISPLY RTS 108 PC =2(RS) ,=-(SP) f48 33 PC,$SB2D ,BLNKS2 PC :BR IF YES STYPEQUT LIMIT REACHED ? :BR IF IT HAS :DECREMENT LIMIT COUNTER JPRINT ALL DATA (OMPARE ERRORS ? :BR IF YES :RETURN JPUT EXPECTED DATA ON THE STACK ? *CONVERT IT TO DECIMAL STYPE ° ;TYPE 2 BLANKS JLAST LINE OF COMPARE ERROR REPORTING 105737 001417 ERROR W/0 :PRINT LINE 1 OF ERROR MESSAGE DISPLY DISPLY DISPLY MOV 057055 s%z 235 015376 236 015402 7%: 000200 205 206 207 208 PC,LINET RTS 001364 001001 000207 209 015260 6%: 001364 202 015236 582 015240 JSR DISPLY JSR JSR JSR 5%: 16-3 1STB BEQ FRSTER1 2% :ANY (OMPARE ERRORS FOUND ? :BR [F NOT ‘DCK’ CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 16-4 SEQ 0092 JL=O(NMOUMMe&6& —L=IA=lMoO=" MAIN PROGRAM (=15 e > oo4xo«[+ NW— w2Oaxo xnEax 2—!g- [4(Y+) e2‘&e'¥y 0PWRwTOxReYR—P&NPOR 4[l wIO E —_oun>awvieaeaw w2-ae.w—a O~ ~uws oN @- o@==M—OWADE —=- a—-d > N- Q. ~~ X WE &2 CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 17 SEQ 0093 MAIN PROGRAM 1 :ROUTINE 18 ;?EEERN THE ADDRESS Or 2 1 : 12 13 : : }g : 16 0154446 010146 22 015452 23 015454 001402 006304 21 015446 24 015456 25 26 27 28 29 30 015460 0154646 015466 015472 015474 015500 32 33 74 35 36 37 38 23 015506 015510 015512 015514 015520 015522 015530 015532 31 015504 013704 000416 012704 011601 162704 001413 016405 012703 022125 001366 005303 001374 062704 000403 (062766 012601 000207 MATCH: 001476 000044 1%: 2s: 000002 002314 000004 3%: 002314 000002 000002 2} 43 44 45 46 47 4«8 49 ONLY WHEN LOCATION °'PATTERN' 4 . S3: 6$: MOV JSR RE TURN1 THE EXPECTED FIXED DATA PATTERN IN R #BUFFER,RY PC,MATCH RE TURN? :BUFFER ADDRESS :PATTERN ADDRESS ;COULDN'T MATCH PATTERN MOV R1,-(SP) ;SAVE R1 BEQ ASL 1% R4 :BR IF YES v 2 MOV B8R MOV MOV SuB BEQ MOV MOV CMP 8h= DEC BNE ADD BR ADD MOV RTS IN R& PATTERN,NG X3 #64 R4 (SP),R1 #2,R4 5% STNDAT(R4),RS #4,R3 (R1)+, (RS)+ 2% R3 3% #STNDAT R4 6% #2,2(SP) (SP)+,R1 PC ON THE STACK :WAS RANDOM PATTERN ENABLED * :USE KNOWN PATTERN :PATTERN TABLE INDFX ;RELOAD R ;DECREMENT INDE/ ;BR IF PATTERN AOT MAT(CH ;ADDRESS OF PATTERN ADDRESS :NUMBER OF LOLATIONS TO CHECK :COMPARE THE BUFFER AGAINST THE PATTEPN ;BR IF NOT EQUAL, TRY NEXT PATTERN :FINISHED CHECKING? :BR IF NOT FINISHED :MAKE PATTERN ADDRESS ABSOLUTE JEXIT :INCREMENT RETURN ADDRESS ;RESTORE R} :RETURN sUSE ECC TO CORRECT THE DATA ERROR 01553 015542 015546 015552 015554 015556 015560 016037 Q16046 066016 001002 005726 000207 005045 000172 000170 000020 55 015600 56 015604 16*637 122760 001400 000005 000026 000004 901400 001000 001400 SO 51 52 53 54 TO MATCH THE DATA WITH A PATTERN ;1S EQUAL TO O (RANDON DATA PATTERN MODE). OTHERWISE, THIS ROUTINE wiLL 015562 015566 015572 015574 015576 016046 004737 005716 001413 006316 57 015612 58 015614 001007 062737 60 015624 162737 59 015622 000403 61 015632 62 015636 062706 016037 64 015650 65 015656 66 015664 67 015672 013737 042737 0462737 006237 001460 1%: 000022 032046 000004 000¢32 63 015644 005337 001576 001376 177760 000017 001406 ECC: 001376 001406 001376 001406 MOV MOV ADD -1 1S, RTS CLR $RPBA(RO) ,ECSEC SRPWC(RO) ,=(SP} SWRDL(RO),(SP) 1% (SP)+ PC -(SP) ;ADDRESS OF LAST LOCN XFERED ;ACT WORDS XFERED (2°'S COMP) ;ADD WORDS REQUESTED ) ;RESTOxt STACK ;EXIT==NO WORDS XFERRED :CLEAR NEXT STACK LOCN SuB CMPB (<P) ECSEC #5,$CODE (RO) *SUBTRACT SECTOR RESIDUE ‘WAS OPERAIION READ HEAD & DATA 3% ;G0 ADJUST THE STACK POINTER MOV JSR 18T BEQ ASL BNE ADD 2% 3$: B8R $SSEC(RO),-(SP) :SECTOR SIZE PC,801V .DIVIDE WORDS XFERED av sscron SIZ2E (SP) :PARTIAL SECTOR XFERED ? 2% :BR IF NOT (SP) :CONVERT INTO NUMBER OF BYTES b3 #4,ECSEC SuB #256.+2,ECSEC DEC ECBIT ADD MOV MOV BIC BIC ASR BR IF :ADD HEADER SIZ2E (IN BYTES) BACK IN ;SUBTRACT SECTOR DATA FIELD SIZE C(IN BYTES) #4,5P SADJUST YHE STACK POINTER $RPEC1(RO) ,ECBIT’ €ECC POSITION COUNT ECBIT,ECWRD #4C17,ECBIT #17,ECWRD ECWRD :ADJUST 611 POSITION SLOAD THE WORD COUNT LOCATION “SAVE THE BIT OFFSET COUNT SCLEAR THE BIT OFFSEY *CHANGE TO BYTE COUNT(DIVIDE BY 2) MAIN PROGRAM 68 015676 69 015702 006237 006237 001406 001406 ASR ASR 71 0157212 013746 001406 v 104614 001374 03332 032446 057711 056121 001400 000172 70 015706 106414 056065 72 73 76 75 015716 015720 015726 015730 006216 011637 004737 004737 77 78 79 80 015740 015744 015752 015760 104414 063737 026037 101902 000137 016344 83 84 85 86 87 88 015766 015774 016000 016004 016006 016012 016037 005037 005337 002405 006337 006137 000234 001404 001376 91 92 93 94 gg 016020 016GC26 816032 016036 016046 017737 013746 047716 043777 052677 163362 001402 97 016050 005737 001404 76 015734 8; 015762 gg 016016 000770 98 016054 016056 001415 013737 101 016072 026037 100 016066 102 )16100 103 016102 104 016106 105 016110 }89 016114 17-1 D 8 SEQ 0094 062737 101006 005737 001516 005037 000414 0is ASR MOV JSR JSR 0Is DIS ADD CMP ECWRD ECWRD :CHANGE TO BYTE COUNT(DIVIDE BY 4) *CHANGE TO BYTE COUNT(DIVIDE BY 8.) ECWRD, = (SP) SPUT THE WORD COUNT ON THE STAC LINTOA *'ERROR BURST BEGINS AT ° (SP) (SP) ,WRDPOS PC,$$82D PC.$SUPRL *GET STARTING WORD FOR MESSAGE(DIVIDE BY 16.) *GET CURRENT WORD POSITION *CONVERT [T TO DECIMAL STYPE IT (LEFT JUSTIFIED) BH] ‘LINTOB ECSEC,ECWRD $ROBA(RO) ,ECWRD 43 *' IN DATA FIELD OF ERROR SECTOR' ‘FIND THE BEGINNING OF THt EPROR BURST :SEE IF BURST WAS IN DATA READ ‘BR IF IN DATA READ MOV CLR DEC BL T ASL ROL $RPEC2(R0) , ECMSKO :GET THE ERROR BIT MASK ECMSK1 :CLEAR THE UPPER MASK WORD ECBIT *DECREMENT THE BIT OFFSET COUNT 6% ‘BR IF DONE ECMSKO *SHIFT THE ERROR MASK ECMSK *SHIFT THE LOWER INTO THE UPPER 5S¢ SCONTINUE THE SHIFT MOV MOV BIC B8IC BIS SECWRD,ECBADO ECMSKO,=(SP) AECWRD | (SP) ECMSKO,aE CWRD (SP)+,3ECWRD ;SAVE THE INCORRECT WORD ;PUT LOWER MASK ON STACK *CLEAR ERRONLOUS ONE BITS CLEAR ERRONEOUS ONE BITS -SET DROPPED BITS 183§ ECMSK 1 :DOES ERROR GO INTO NEXT WORD 2 ADD #2,ECWRD1 001414 BH] ST BEQ CLR 8% ECMSKO ECC2 ECWRD1 :BR IF YES, ELSE, ‘WAS ERROR'IN FIRST WORD 3 ‘BR IF NO *CLEAR 2Nu WORD ADDRESS 001406 001404 JMP 001402 &$: 5$: 001402 001404 163350 001402 163336 BR 001412 163342 68$: 001406 001414 BEQ MOV 000172 001414 CMP 000002 001402 001414 BR ,PERIOD gECce 7% ECWRD,ECWRD STYPE :NOT N DATA READ = REPORT T FROM MASK FROM BAD WORD ‘BR IF NO ‘DUPLICATE ADDRESS : INCREMENT ERRORTMADDRESS $SRPBA(R0) ,ECWRD1’ ECCY *.° :1S NEXT WORD IN THE BUFFER ? *PRINT WORD CORRECTED 108 016116 109 016126 017737 013746 163272 001404 MOV MOV SECWRD1,ECBADY ECMSK1,=(SP) ;SAVE THE SECOND BAD WORD :PUT THE UPPER MASK ON THE STACK 111 016136 043777 001404 BI( ECMSK1,ECWRDT :CLEAR ERRONEOUS ONE BITS FROM DATA WORD 114 016146 118 016152 104414 013746 056265 001406 DIS MOV LLINIOH ECWRD, = (SP) :HEADER SPUT ECWRD ON THE STACK 119 016162 013746 001374 MOV WRDPOS,=(SP) :PUT 004537 000006 104414 104414 013746 032662 ISR LMORD DISPLY DISPLY MOV 110 016130 }}g 016142 016156 120 016166 121 122 1¢3 12 129 016172 016176 016200 016206 016210 016214 I~ EXER MACRO V064.00 1-JAN-83 12:06:52 PAGE 2 CZRJOAO RPO? PERF 047716 052677 004737 004737 004737 163260 163246 024306 033332 057711 056530 001412 024306 BIC BIS JSR JSR JSR SLCWRD,(SP) (SP)¢,8ECWRDY PC,LINOCT PC,$5B2D RS . SREPLZ 6 ,PERIOD .BLNKS2 £CBADO,-(SP) PC,LINOCT :CIEAR ERRONEOUS ONE BITS FROM UPPER MASK :SET DROPPED BITS STYPE ECWRD THE WORD POS ON THE STACK *CONVERT IT TO DECIMAL STYPE IT (REPLACE LEADING ZEROS) STYPE 6 DIGITS STYPE STYPE 2 BLAN S *PUT ECBADO ON THE STACK :TYPE ECBADO (IRJOAD RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 17-2 SEQ 0095 TeMNP —SNIMTMTJIOO WMMMOe—OU A O—OO0O—.XO0N J (X MAIN PROGRAM +PUT QECWRD ON THE STA(K ; TYPE RECWRD ; TYPE 2 BLANKS T-¢gO(W)P—Xo VLsor-[agunld— OOVV :TYPE 2 BLANKS 104 N4[« -wx(] —~O 0OVONVO NN MO 350 - Oda« -— w O [O¢]HOEw'O0EH-E~MTe—OOlFE Z <a — 3 X w I V O o — O W 2 b O 4 D >= wDO-Ne—ZU2VNOZW MAQ=O-= NLWIO@W~BO= AI&QwCMnOv3sInV® —L~A—aQodAgodguaIcYdg -~ —gW [V LY ;ERROR BURST WAS NOT TRANSFERED TO MEMORY (IRJOAQ RPO? PERF EXER MACRGC VC4.00 1-JAN-83 12:06:52 PAGE 18 f SEQ 0096 MAIN PROGRAM } :ROUTINE 3 016356 032777 000010 S 016366 6 016372 016001 016046 000172 000020 & 016364 7 016376 8 016402 9 10 11 12 13 16 001520 066016 001002 016406 016406 016610 005726 000207 005046 15 016424 001403 016412 016416 016422 16 016426 17 016430 18 016432 19 016436 20 016440 21 016446 22 016450 23 016456 24 016460 25 016464 26 016470 27 016476 28 016500 29 016504 30 016506 31 016512 32 016516 33 016520 3% 016524 35 016530 36 016532 gg 016536 39 016542 016046 004737 005716 006316 161601 000410 162701 122760 001002 162701 062706 104414 104414 122760 001021 104414 010146 004737 106414 012146 004737 104614 012146 004737 104414 104414 40 41 42 43 016546 016552 016554 016560 012702 010146 004737 104414 45 46 47 48 49 016570 016572 016576 016600 016604 001412 104414 012146 004737 005302 44 016566 50 016606 51 016610 52 016614 53 016616 54 016622 g; 016626 57 020160 001366 106414 000754 104414 104414 000207 162570 TO DISPLAY THE SECTOR WHICH GAVE PRTBAD: BIT BEQ MOV MOV 000170 ADD BNE 1%: 000022 032046 000005 000004 000004 001203 (56413 000005 000024 28: 3¢: 000024 056466 024306 056527 024306 056531 024306 001203 056507 000010 024306 056530 000172 48: 5¢: 6%: 056531 024306 001203 001203 7%: 8s: :ROUTINE :PRINT THE BAD SECTOR ? $RPBA(RQ) ,R1 SWRDL {R0) .=(SP) *PUT THE END ADDRESS INTO R1 :FIND THE BEGINNING OF THE SECTOR 13 SRPWC(RO) . (SP) 1 ‘BR IF NOT :SUBTRACT THE WORDS NOT TRANSFERED (SP)+ PC ~(SP) $SSEC(RO),-(SP) PC.SDIV (SP) ;RESTORE STACK ‘EXIT=--NO WORDS XFERRED ‘MAKE THE UPPER DIVIDEND O ASL SUB BR (SP) (SP) ,R1 33 :CONVERT THE RESIDUAL SECTOR INTO BYTE *SUBTRACT IT FROM THE END ADDRESS SFINISH THE SIZING SUB CMPB BNE SUB ADD DISPLY DISPLY CMPB BNE DISPLY MOV JSR DISPLY MOV JSR DISPLY MOV JSR DISPLY DISPLY b1 3 #256.%2 R #5.$CODE (RO) 33 ¥ ,R1 NG SP ,SCRLF ,LINTIH #5,$LODE(RO) 4% LLINN SBR IF IT IS = COMPLETE SECTOR TRANSFERED *SUBTRACT FULL SECTOR FROM END ADDR ‘WAS OPERATION READ HEADER & DATA ? ;TYPE R1,$RPBA(RO) *PRINTED ALL 7% ,BLNKS1 (R1)+,=(SP) PC,LINOCT R2 DISPLY DISPLY RTS SECTOR SIZE ,LINVIA BEQ DISPLY MOV JSR DEC BR THE R1,=(SP) PC.LINOCT ,BLNKS3 (R1)+,=(SP) PC,LINOCT ,BLNKS1 (R1)¢,=(SP) PC,LINOCT ,S$CRLF #8..R2 R1.=(SP) PC.LINOCT ,BLNKS2 CMP :DIVIDE THE WORDS XFERED BY :DIVIDE :REMANDER = 0 ? ‘BR IF NOT *SUBTRACT HEADER SIZE FROM ADDR *RESTORE THE STACK POINTER L CR=LF ‘PRINT THE HEADER *WAS OPERATION READ HEADER & DATA 2 ‘BR IF NOT ‘TYPE "ADDR HEADER' ‘PUT THE ADDRFSS ON THE STACK ‘TYPE THE ADDRESS STYPE 3 BLANKS *PUT WORD ON STACK ‘TYPE THE 1ST hEADER WORD STYPE 1 BLANK *PUT WORD ON STACK ‘TYPE THE oND MEADER WORD LCR-LF MOV MOV JSR DISPLY BNE DISPLY 001203 #5W3,asuR ST RTS CLR MOV JSR ST BEQ 001000 THE HARD ERROR 6% ,S$CRLF £ ,SCRLF ,SCRLF pC "ADDR DATA® ‘8. DATA WORDS PER LINE :PUT THE ADDRESS ON THE STACK *TYPE THE ADDRESS STYPE 2 BLANKS THE SECTOR ? ‘BR IF ALL PRINTED STYPE 1 BLANK ‘PUT THE DATA ON THE STACK ‘TYPE THE DATA *DECREMENT THE HORIZONTAL COUNT ‘BR IF NOT AT THE END OF S CR=LF THE LINE *RESTORE THE WORDS/LINE COUNT SCR=LF SCR-LF *RETURN TO DO A RECALIBRATE USING ACTIVE DPB COUNT (IN BYGES) CIRJOAQ RPO7 PERF EXER MACRO v04.00 1=-JAN=83 12:06:52 PAGE 18-1 SEQ 0097 MAIN PROGRAM 58 39 :CALL: ; MOV 25 : RF TURN 60 ; 63 016630 64 016636 65 016662 010037 116060 112760 67 016654 68 016656 69 016660 000000 000774 005760 66 016650 70 016664 71 016666 72 016672 73 74 75 76 ;g 016676 016702 016706 016712 016716 004037 001775 006737 012660 112660 112660 005060 005060 000207 016654 000166 000107 041304 000027 009002 000016 000033 000032 000012 000010 112737 050654 005737 001775 000207 000107 041304 050656 050672 127 017020 128 017026 129 017026 130 017032 MOVB JSR RE TURN RECALO: MOVB 1$: 28: 109 110 111 112 113 114 115 }}9 126 017016 BEQ JSR MOVB MOVB CLR CLR RTS ; : 000774 125 017014 .WORD BR 18T MOV ; 88 016734 123 017002 124 017010 JSR RO,RPO? ;START THE RECALIBRATE ‘DPB ADDRESS *DRIVER DIDN'T ACCEPT THE COMMAND “SEE IF FINISHED 3¢ PC,READDR S1F EQ NO DECREMENT (SP)+,$PREVA+2(RD) THE ADDRESSES SMOVE THE CYLINDER ADDRESS (SP)+.$PREVA+T(RO) ‘MOVE THE TRACK ADDRESS (SP)+ . $PREVA(RO) *MOVE THE SECTOR ADDRESS $CYL(RO) ;CLEAR THE CURRENT CYLINDER ADDRESS $SEC(RO) :CLEAR THE CURRENT TRK/SEC ADDRESS PC *RE TURN :?2u11~e TO A RECAL WITH NO uPB ACTIVE 004037 120 016762 121 016770 122 016774 0 1% $TATUS (RD) 1$: JCALL: 86 016726 118 016746 119 016756 2% : 000034 82 gz 89 016736 90 016742 13; 016744 :DPB ADDRESS PC,RECALT RO,2$ :LOAD THE DPB ADDRESS SRP(S1(RO),SPREVO(R0O) ;SAVE THE PREVIOUS COMMAND #RECAL,$.OMND(RO) SLOAD THE NEW COMMAND 024364 81 87 016732 #0PB,RO RECALT: MOV MOVB MOVB 3¢ gg 85 016720 JSP JSR GENDPB B8R 13 BEQ RTS WDRIVE,GENOPB PC,RECALO #RECAL,GENDPB+$COMND RO,RPO? 1% GENDPB+$ 28 PC 000074 000006 012737 004037 177776 041304 016637 111037 112737 050654 000774 000002 050654 000173 005737 050672 011666 000006 001775 062706 000006 050665 050664 READHD: 050666 MOV MOVB MOVB 050656 050660 MOVB MOVB 1¢: 28: MOV JSR GENDPB BR :DPB ADDRESS FOR COMMAND TUS ;SEE IF FINISHED ‘BR IF NOT FINISHED :DPB ADDRESS :SECTOR ADDRESS *TRACK ADDRESS ;CYLINDER ADDRESS ;TRACK ADDRESS *SECTOR ADDRESS 2(SP) .GENDPB+$CYL *CYLINDER ADDRESS (RO) , GENDPB ;DRIVE NUMBER #RDHD,GENDPB+$COMND ; COMMAND #-2,GENDPB*SWCNT ‘WORD CTR = 2 RO,RPO7 :DRIVER ENTRANCE 1% GENDPB+STATUS MOV (SP) ,6(SP) ADD ‘DRIVER DIDN'T ACCEPT THE COMMAND &4 (SP),GENDPB+S$TRK 6(SP).GENDPB+$SEC 3 BEOQ ;RELCALIBRATE COMMAND sDRIVER ENTRANCE ;UTILITY READ HEADER ROUTINE ;CALL: : MOV #DPB,RO ; MOV #SECTOR,-(SP) ; MOV #TRACK,=(SP) : MOV #CYLINDER,=(SP) ; JSR PC,READDR : RE TURN 116637 116637 ;DRIVE ADDRESS 2% #6,5P :DPB ADDRESS FOR COMMAND :DRIVER DIDN'T ACCEPT CGMMAND :FINISHED? ‘BR If NOT *ADJUST STACK FOR RETUKN *ADJUST RETRUN POINTER (ZRJ0OAQ0 RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 18-? H 8 SEQ 0098 MAIN PROGRAM }%% 017036 000207 RTS PC 133 134 sRETRY sCALL: THE PRESENT OPERATION 138 : RE TURNZ2 135 136 137 : N : 139 }2? : : 142 143 144 145 146 147 017040 017046 017050 017052 017054 917060 004737 005760 001775 100405 105237 062716 020160 000016 150 151 152 153 017066 017074 017076 017102 032760 001441 005757 001004 000200 155 017110 001025 }28 017064 154 017104 000436 005760 }g? 017112 000415 158 159 160 161 017114 017122 017124 017132 022737 001005 032760 001414 164 165 166 167 017136 017144 017146 017152 033760 001407 105237 123737 }gg 017162 000207 }g% 017136 168 017160 001325 000002 000016 2%: 000202 000002 000200 3%: 000404 001327 000202 001325 001324 001325 4%: 5%: 6%: 004737 004737 005726 024274 024056 176 017200 177 017204 104414 000137 (055570 097636 7%: 000207 :NOTE: ]F A DIFFERENT ERROP OCCURS DURING :RETRY, THE ROUTINE EXITS TQ °ERPR(C!® BNE 7% CMP BNE 6% ;RE=START ORDER JORDER FINISHED? :BR [F NOT :BR IF ERROR ;INCREMENT RETRY (OUNT :INCREMENT RETURN ;6O TO EXIT ? $RPER1(R0O) ;MAKE SURE THAT THE DRIVE ERROR REG IS CLEAR 5% s CONTINUE RETRY :BR JF NOT 817 8EQ #7 ,MASK L3 #BIT1,8RPDS(RO) 7% ;EWN ERROR? :BR [F NO eIt BEQ INCB (MPB MASK ,$RPER1 (RO’ 7% RETRY+1 RETRY,RETRY+1 :SAME ERROR? ;B8R IF NOT :INCREMENT RETRY (COUNT ;DONE ? RTS PC JRETURN JSR JSR 1S1 PC,LINES PC,LINE7 (SP)+ :REPORT DIFFERENT ERROR JPRINT LINE 7 sADJUST STACK POINTER FOR DIRECT RETURN DISPLY JMP ,LINSM ERPR(1 J'DIFFERENT ERROR DURING RETRY' JREPORT THE ERROR BNE RIS 8%: :SUCESSFUL RETRY #BIT7,$TATUS(RO) :DID ORDER TERMINATE NORMALLY 8% :BR iF NOT MASK :1S ERROR MASK 0 ? 3% :BR [F NOT BR 001322 sRETRY UNSUCESSFUL BIT 8EQ 1ST BNE B8R 001322 JRETRY COUNT PC,GODRIV $TATUS(RO) 1% 2% RETRY+1 #2,(SP) TST 000007 #COUNT ,RETRY PC,SRETRY JSR 157 BEQ BM] INCB ADD B8R 001322 171 017164 172 017170 173 017174 };2 017176 $RETRY: 1%: MoV JSR RE TURN1 :RETURN 5% $SRETRY PC ;"EWN' STILL SET? :NO, REPORT DIFFERENT ERROR JSET, RETRY ;BR IF NOT DONE :RETURN CIRJOAQ RPQ? PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN=H3 12:06:52 PAGE 19 l SEQ 0099 } :RREIXNE TO UPDATE THE PERFORMANCE SUMMARY STATISTICS 3 : MOV g : RETURN STATIS: BIT #81T107'81706,8TATUS(RO) ;CHECK FOR DATA TERMINATION MOV SRPBA(RQ) ,FACTOR -STORE THE FINAL BUFFER ADDRESS 4 : 7 017210 032760 000300 000016 9 017220 016037 000172 017510 8 017216 10 017226 11 017234 }% 017236 14 017242 15 16 17 18 19 001533 166037 001524 017510 122760 000002 000024 000000 000024 017510 000044 000042 001404 122760 001043 063760 005560 26 017326 004737 017274 017302 017306 017312 017316 017322 27 017332 28 017336 29 017340 30 017344 31 017350 22 017356 063760 005560 016046 016046 012746 012746 005766 001412 012660 012660 062760 005560 33 017362 000401 gz 017366 005726 34 017364 017510 006237 0172590 017252 017260 017262 017270 20 21 2 25 26 25 000006 017510 000064 000062 000064 0461100 000017 022626 2$: 3% 000024 40 017406 063760 005560 017510 000036 063760 005560 016046 016046 000040 017510 000074 000072 000074 000072 4S 0172434 46 0176440 47 017444 48 017450 49 017454 012746 012746 004737 005766 001412 4%: 017462 017466 017474 017500 012660 062760 005560 000401 000004 57 N17506 000207 58 017502 56 017504 022626 095726 000072 000001 000070 ;SEE IF COMMAND WAS A WRITE 1$ :BRANCH ]F YES #0,$CODE (RO) :PRESENT OPERATION AN AUTO WRITE CHECK 43 :BR IF NO FACTOR,SWTPAS(RQ) :ADD WORDS WRITTEN PER PASS SWTPAS+2(RO) ;ADD ANY CARRY pC,$0BDIV :DIVIDE BY 1 X106 (SP)+,SWTOT. +4(RO) +GET LOW REMAINDER #1,8WTOTL(RO) ;V'PDATE THE TOTAL WRDS WRITTEN SWT0TL+2(RO) ;ADD ANY CARRY CMP (SP)Y+,(SP)+ :GET HIGH ¢ LOW REMAINDER OFF STA(K (MPB BEQ #2,$CODE (RO) 7% :SEE IF COMMAND WAS A WRITE :BRANCH IF YES ADC $ROPAS+2(R0O) ;ADD ANY CARRY MOV #041100,-(SP§ ~;GET LOW DIVISOR pC,$0BDIV :DIVIDE BY 1 X106 B8R TST :DID REP COUNTER REACH LIMIT YET ? ‘BR If NO (SP)+,SWTOTL+6(RD) 38 (SP)+ :GET HIGH REMAINDER :GET QUOTIENT OFF FACTOR,SRDPAS (RO} STACK :ADD WORDS READ PER PASS FACTOR,SRTOTL+4 (R( ;ADD WORDS READ TO REP COUNTER SRTOTL+6(RO) ;ALS ANY CARRY SRTOTL+4(RO) ,=(SP) :GET LOW DIVIDEND SRTOTL*6(RO) ,=(SP) :GET MIGH DIVIDEND #17,-(SP) & (SP) 5% :GET HIGH DIVTSOR :DID REP COUNTER REACH LIMIT YET ‘BR If NO (SP)+,$RT1OTL+6(RD) (SP) s ,SRTOTL +4 (RO) ;GET LOW REMAINDER #1,8RTOTL(RO) :UPDATE THE TOTAL WRDS READ $RTOTL +2(RO) :ADD ANY CARRY 6% RTS PC (SP)¢,(SP) ¢ (SP) ¢ ? :GET HIGH REMAINDER MOV ADD ADC BR (MP 157 ? FACTOR,SWTCTL+4 (RO) :ADD WORDS WRITTEN TO REP COUNTER SWTOTL+6(RO) ;ADD ANY CARRY SWTOTL*4(RO) ,~(SP) :GET LOW DIVIDEND SWTOTL+6(R0) ,=(SF) ;GET HIGH DIVIDEND #061106,-(SF) ;GET LOW DIVISOR #17,-(SP) :GET HIGH DIVISOR MOV ADD ADC MoV 5¢: 6%: 7%: NO DATA TRANSFER 4(SP) 23 TST BEQ 000066 [F ;CONVERT TO A WORD COUNT TST BEQ JSR SO 017456 012660 000074 51 52 53 54& #2,8CODE (RO) MOV 032114 $BUF (RO) ,FACTOR ;SUBTRACY THE INITIAL ADDREZS CMPB BEQ CMPB BNE ADD ADC ADD AD( MOV MOV 000017 :BR IF NOT DATA TERMINATION ;BR ADD 041100 7% :DPB ADDRESS 7% MOV 000056 pC,sfaTlS FACTOR ADD ADC MOV MOV MOV MOV 000064 #DPB,RO ASR JSR 000002 017412 017420 017426 017430 1$: 000004 122760 001443 61 42 63 46 BEQ 000062 37 017370 28 017374 39 017400 BEQ SUB 032114 000062 000001 000060 JSR :GET HIGH & LOW REMAINDER OFF STA(K sGEYT QUOTIENT OFF STA(K C(IRJOAQ RPO? PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 19-1 MAIN PROGRAM 58 59 (17510 000000 FACTOR: .WORD O J . SEQ 0100 ;USED FOR WORDS TRANSFERED JAN-83 1 12:06:52 PA PAGE 20 MAIN PROGRAM CLR JSR MOV MOV 001654 001656 000920 5% 000004 000002 - (D) i o i ol e O = WO OOOO olelelelelelele]ls) ALLOCATION TABLE sSEE IF THERE IS A BLOCK LARGE ENOUGH ¢BRANCH IF IT IS sDECREMENT TABLE COUNT ¢sADJUST BUFFER WRD (NT 5%: RTS TO PUT BUFFER BACK MOV RELBUF : IS ZERO sMAKE NEW STARTING ADDRESS ¢sRETURN # BYTES TO WORDS sRETURN ¢DECREMENT ENTRY COUNT ¢8R IF ALLOCATION TABLE EMPTY sDECREMENT TABLE COUNT ¢BR IF ITEM WERE LAST ENTRY ;MOVE TABLE POINTER sDECREMENT TABLE COUNT :CONTINUE IF NOT AT END OF ;RESTORE R3 sRESTORE R? sRESTORE R1 sRETURN IN TABLE #0PB,RO PC,RELBUF 001656 001654 MOV MOV MOV MOV MOV MOV MOV BgFTBL.R2 000120 MOV SHLOWC (RO) ,R3 8EQ DIFFERENCE : CONVERT # WORDS TO BYTES ¢POINT TO NEXT ENTRY ¢MOVE ITEMS ° A ¥ > 3%: & w SWRDL (RO) , (R1) $WRDL (RO) *> 000004 sFIRST ADDRESS OF ¢BR IF 0D - NI~ 001654 SEPARATE BUFFERS 1F NONE AVA]LABLE sCONTINUE LOOKING +BUFFER ADDRESS TO STA(CK " 000010 000020 :BR :BR IF THROUGH TABLE : INCREMENT TABLE POINTER * N2 NN SN = =2 NN NN = O MVOMNINY = \NNONONIO — W N OO ONNINANN N = &S N OCOOONOMNMINOOOCOO =N [elelolelolelelelalelele) (=4 oI I000 20200 (=] N ~N SNNNNNNNSNN oo O OO WAL S NN O~ — d e e b il e e (elelelelelelelele) NOVARWN=O :NUMBER OF R2 RETURN AOASUAVAAVIWWN :SAVE R3 TBL ,R2 BUF 5% #BUF TBL+2,R1 3%RDL(RO).2(R1) 000002 JSR 60 : SAVE R :SAVE R2 MOV sROUTINE C LL: 49 ;BUFFER ADDRESS WILL BE ON THE STACK sSTACK WILL BE ZERO IF NO BUFFER AVAILABLE [ ] D D D D el d D i D and e e D wd o b — el 634 :DPB ADDRESS sCLEAR THE STA(K : Mov GETBUF 000020 000020 000020 0053 #0PB,RO - (5>} PC,GETBUF OV mn DA~~~ COONDVNPANI D D VOO OCOWOOoOSrO SN NS NN= L NN D e D i D e b D D D ON =2 N2 = NO OO NN SN O N TM NN — OO0O0O 0000000 QOO OOON =0 = =2 —d > D wnd RETURN 011166 Sea 0101 TO GET A BUFFER MOV SNNNNNNNNNSNNNY NN o (o oy o g e Yo Yo Yo 36 EXER MACRO VU4.00 1-JAN-83 ?OUTINE elolelalelalelelalalelolelelelelalelolololalalolololeloleolololals] AN AN AN AR NN WVVE NN =2 OO 00 NN S AN NINI AN NI PO NI PO A = ad —d ed e e d e e cd 2 O N0 00 NN W BN NN = O O 00 ~I NN S i) — CZRJOAQO RPO7 PERF #BUF TBL +2,R1 ;DPB ADDRESS :SAVE R :SAVE R2 :SAVE R3 :SAVE Ré :SAVE RS ‘BEGINNING OF ¢ENTRY COUNT TABLE :BR IF EMPTY TABLE :TRIAL ADDRESS TABLE SEQ 0102 CIRJOAQ RPQ7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 20-1 MAIN PROGRAM 58 017676 §9 017700 60 017704 61 017706 62 017710 63 017714 64 017716 65 017720 006303 066003 021103 001424 062701 005302 00137¢ 016011 67 017732 68 017736 005237 005202 66 017724 69 017740 70 017742 71 017746 72 017752 73 017756 74 017760 016061 000414 000006 000004 000006 001654 000006 005237 000443 016011 001654 28: 000120 000006 75 017764 066061 000120 000002 76 017772 010246 77 0177764 013702 001654 78 020000 79 020006 012705 016504 85 020026 005302 80 020010 81 020012 82 020014 83 020016 84 020020 86 020026 87 020030 88 020032 006304 061504 020411 001406 062705 001656 000002 95 020060 96 020062 97 020064 98 020066 012521 005302 001374 012605 100 020072 101 020074 012603 012602 94 020056 012521 000002 001654 BUF TBL R2 ; INCREMENT ENTRY COUNT S INCREMENT R2 FOR USE LATER $BUF (RO), (R1)+ :BLOCK ADDRESS TO TABLE BR MOV MOV 4$: MOV 5% MOV MOV ADD MOV ASL ADD CMP BEQ ADD DEC 000002 000004 6%: 7%: 8s: 99 020070 012604 102 020076 }82 020100 INC INC 3¢ 000004 000415 012602 066165 005337 010105 062705 ;CHANGE TO BYTE COUNT *ADDRESS OF HIGHER ADJACENT BLOCK :UPPER ADJACENT BLOCK ‘BR IF YES *INCREMENT POINTER *DECREMENT ENTRY COUNT *CONTINUE SEARCHING :PUT THE BUFFER BLOCK INTO THE TABLE INC BR MOV 001366 005726 89 020034 90 020036 91 020044 92 020050 93 020052 R3 $BUF (RO),R3 (R1),R3 38 ¥ ,R1 R2 1$ $BUF (RD) MOV 000120 000002 016921 016021 1%: ASL ADD (Mp BEO ADD PEC BNE MOV 012601 000207 43 SHLDWC (RO), (R1) + BUF TBL 8$ $BUF (RO) $HLDOWC (RO R2,=(SP) BUFTBL ,R? #BUFTBL+2.RS 2(RS),Ré R& (RS) ,R& R4, (R1) 6% #4,RS R2 *SEE IF A LOWER ADJACENT BLOCK IS IN THE TABLE :WRD CNT TO TABLE : INCREMENT ENTRY COUNT SEXIT *RELEASED BUFFER [S LOWER ADJACENT : INCREMENTED WRD CNT *ENTRY COUNT :SAVE R2 :BEGINNING OF TABLE ‘BLOCK SIZE (IN WORDS) :CHANGE 10 BYTE COUNT :ADD BLOCK BEGINNING ADDRESS *R1 STILL POINTS TO INSERTED ENTRY SLOWER ADJACENT '\ TABLE : INCREMENT POIN" R ‘DECREMENT ENTP COUNT 5 (SP)+ 8% (SP)+,R2 2(R1),2(RS) BUF TBL R1,RS #4:R5 *RESTORE R2 *INCREMENT LOWER BLOCK LENGTH *DECREMENT ENTRY COUNT ‘GET READY TO COMPRESS *INCREMENT TO NEXT ENTRY MOV DEC BNE MOV (R5) ¢, (R1) R2 7$ (SP)+,RS ‘MOVE SIZE FIELD DOWN :DECREMENT ENTRY COUNT ‘BR IF NOT FINISHED *RESTORE RS MOV MOV (SP)+,R} (SP)+.R2 :RESTORE R3 ‘RESTORE R? MOV MOV (rR§)+, (R1) (SP)+.R& (SP)+,R1 PC +CONTINUE LOOKING :RESTORE STACK POINTER SEND :COMPRESS TABLE R& *RESTORE ‘RESTORE R1 RE TURN ;EiLt THE ASSIGNED BUFFER (IfF WR; ~ OR WRITE CHECK COMMAND) sCALL: 107 : MOV #0PB,RO 108 H MoV #BUFADR,$BUF (RO) 110 }}5 ; ; JSR RE TURN PC,FILBUF 109 113 020102 114 020104 :BLOCK WRD CNT BNE TS7T BR MOV ADD DEC MOV ADD MOV RTS }82 $HLOWC (RO : 106412 132760 000004 000024 MOVB :Dto ADDRESS #PATTERN,SPATTC(RO) FILBUF: SAVREG BITB #4,$CODE (RO) :LOAD BUFFER ADDRESS INTO THE DPB sPATTERN CODE :SAVE THE REGISTERS *SEE IF READ COMMAND N ORI 2N 2R 2R 2T 2P —.d—.-jd—‘—.—‘—.-‘d—l_‘-.-J-J-‘—.-J-‘—l—.—.—.—l — e wd ed el d ad el el el :2; PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 20-2 020112 020114 020120 0201264 020130 020134 020140 020142 020144 020146 020150 020152 020154 020156 001020 016001 016002 116004 016405 012703 012521 005302 003403 005303 001373 000766 104413 000207 000006 000020 000030 002314 000020 BNE MOV MOV MOVB MOV MOV MOV DEC BLE DEC BNE BR RESREG RTS 1$: 28: 3¢ 4$: ;ELART s ; ; ; 020160 020162 020166 020172 020174 020176 020200 020206 020212 020220 020222 020230 020234 020242 020246 010046 010037 004037 0060000 000000 012600 062760 005560 026060 001412 062760 005560 062760 005560 000207 000001 000050 0000017 000100 THE 1%: 2%: 000052 000012 JSR L.WORD HALT MOV ADD ADC CMP BEQ ADD ADC 000046 000076 3s: ADD ADC RTS SEQ 0103 4% $BUF (R0) ,R1 $WROL (ROS ,R2 SPATTC(ROS,R4 STNDAT(R4).RS #16. ,R3 (RS)+,(R1)+ R2 X R3 3¢ 2% PC COMMAND FOR THE MOV JSR RETURN GODRIV: MOV MOV 020172 041306 000001 000054 000034 CALL: M8 DPB :BR IF READ :BUFFER ADDRESS :POSITIVE WORD COUNT RELATIVE PATTERN ADDRESS -PATTERN ADDRESS SPATTERN COUNT :MOVE THE PATTERN INTO THE BUFFER ;DECREMENT THE WORD COUNT :BR IF DONE (WORD COUNT = 0) ;DECREMENT THE PATTERN COUNT :BR IF MORE PATTERN JCONTINUE DISTRIBUTING THE PATTERN :RESTORE THE REGISTERS *RETURN IN RO #DPB,RO PC.GODRIV :DPB ADDRESS RO,=(SP) RO.2$ :SAVE RO :CURRENT DPB ADDRESS RO.RPG7 0 :CALL THE DRIVE HANDLER :DRIVE BLOCK ADDRESS GOES HERE ;DRIVER REJECTED REQUEST *RESTORE RO :INCREMENT THE OPERATION COUNT (SP)+,RO #1,80PERC(RO) $OPERC+2(R0) $SPREVA+2(R0) ,$CYL(RO) :DID COMMAND REQUIRE A CYLINDER CHANGE 3$ :BR IF NO #1,8SEEKS(RO) :INCREMENT SEEK COUNT PER PASS $SEEKS+2(R0) SADD ANY CARRY #1,$STOTL(RO) :INCREMENT SEEK COUNT TOTAL $STOTL+2(RO) :ADD ANY CARRY PC ? N CIRJOAQ RPQ7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 21 SEG 0104 MAIN PROGRAM 1 :RREIINE TO SETUP PARAMETERS FOR A SEQUENTIAL READ OR WRITE OF 4 : MOV #0PB RO ;DPB ADDRESS 9 ; : JSR RETURN PC,SEQPAR *CALL ROUTINE 8 9 SWHERE ; 'NN' CAN BE ONE OF "W’ COMMAND= =2 }g ; % S 10 1" 14 020250 15 020254 16 020256 17 020262 : : 005760 001010 005760 001005 18 020264 012704 5? 020274 000453 19 020270 004737 000054 000052 000010 MOV 021332 JSR BR 000166 000010 000027 000032 25 020320 016060 000174 000010 59 020326 016060 000012 000222 28 020334 29 020340 gg 020344 012704 004737 000427 000010 021332 32 020346 33 020354 3, 020362 116060 116060 016060 000146 000142 000136 37 020404 38 020406 39 020612 001473 004737 032777 031420 25 020422 000744 43 020424 44 0206430 4S 020434 012704 013705 004737 35 020370 36 020376 40 020420 46 020440 47 020444 48 020652 49 020456 50 020460 51 020466 52 020474 gz 020500 58 020506 56 020512 57 020514 112760 122760 001467 010560 042760 001002 000006 177776 000020 000034 000020 000377 005460 012760 000004 000400 000020 000020 1 $SOPERC+2(R0O) 1% $OPERC (RO) 1% #S$SEC,RG PC,CKLMTS 3$ (NOT USED ‘BR IF NO *1S THIS THE :BR IF NO 16O CHECK DISK ADDRESS LIMITS :BR IF NOT AT END OF SEGUENTIAL ADDRESSING ;SAVE CURRENT PARAMETERS ‘SAVE PREVIOUS TRACK/SECTOR ADDRESS MOV $RPDA(RO), $SEC(RO) *CURRENT SECTOR & TRACK ADDRESS $CYL(RO).$PREVA+2(R0) $RPDC (RO) . $CYL (RO) 000010 000011 000012 MOVB MOVB MOV MINSEC(RO),$SEC(RQ) MINTRK(RO).$TRK(R0) MINCYL (RO) ;$CYL (RO) 160536 BEQ JSR 81T 8$ PC.$EOP #5404, aSWR MOVB C(MPB BEO 3¢ MOV MOV JSR MOV BIC 000020 FIRST OPERATION ? SGET INDEX TO SECTOR ADDR STORAGE [N DPB #$SEC,RG PC,CKLMTS 3s 000024 000026 IN ROUTINE) ;1S THIS THE FIRST OPERATION ? MOV JSR BR BNE :SAVE PREVIOUS CYLINDER ADDRESS :CURRENT CYLINDER ADDRESS ;GET INDEX TO SECTOR ADDR STORAGE IN DPB 160 CHECK DISK ADDRESS LIMITS :BR IF NOT AT END OF SEQUENTIAL ADDRESSING :RESET SECTOR ADDRESS *RESET TRACK ADDRESS SRESET CYLINDER ADDRESS #4,$CODE (RO) #-2,$PACK(RO) :SET CODE TO READ DATA :WAS WRITE DATA IN PROGESS ? 9% ‘BR :BR IF YES (START TESTING, ‘T COMMAND) STHIS IS THE END OF PASS :DO NOT DROP DRIVE AT EOT (SW04=1) ? [F NO 2% *MUST SURE ADDRESS IS NOT °*BSF* TRA(K #SSEC,RG WRDCNT,RS PC, CHKWC :GET INDEX TO SECTOR STORAGE SWORD COUNT IS MAXIMUM *CHECK WORD COUNT FOR MAXCYL/MAXTRK RS $WRDL (RO) 1377 SWRDL(RO) SGET WORD COUNT :IS IT LESS THAN ONE SECTOR WORD COUNT ? ‘BR IF NO INCB SURDL01(R0) 000022 NEG MOV SWCNT(RO) : CHANGE WORD COUNT TO 2°'S COMP_EMENT #256.,8SSEC(RO) :SECTOR SIZE FOR READ OR WRITE 000024 1STB BMI MOVB 000004 000120 4$: 000026 000004 THE FOLLOW NUMBERS; COMMAND= =1 COMMAND= 0 COMMAND= ‘GET COMMAND NUMBER $RPCS1(RO),$PREVO(RO) $SEC(RO), $PREVA(KO) MOV 2%: NN,‘PACK(RO) MOVB MOV MOV 000012 000010 001466 021512 000021 105760 100407 112760 1%: BR 105260 016060 016060 'R*' BNE ST BNE 116060 016060 016060 'W' 'T* SEQGPAR: TST 22 020276 23 020304 24 020312 MOV THE DISK 5%: MOV MOV ‘SET TO ONE SECTOR $WRDL (RO) , SWCNT (RO) $WRDL (RO) . SHLDWC (RO) $PACK(RO) 6% #4,$CODE (RO) :STORE FOR 2°'S COMPLEMENT WORD *HOLD WORD FOR *RELBUF' ROUTINE :'R* OR 'W' COMMAND FOR THIS DRIVE ? ‘B8R IF WRITE :CODE FOR READ DATA PO OO0O0O0O0OO0O0OO OO0O0O0O0O0O00O0O 2 OO0O0O0O OO0 OO AONONORNNININONRNUNY 00 OB PERF EXER MACRO V04.00 1-JAN=53 12:06:52 PAGE 21-1 112760 000171 005737 001424 0 000415 6 0 001366 112760 2 6 & 0 & 2 112760 004737 110560 012760 000207 105060 005960 005726 000137 000002 000101 021272 000030 177777 000026 000130 006340 000002 6%: 000024 000002 000130 7%: 8$: 9% 38 9 SEQ 0105 MOVB #RDDAT,$COMND (RO) ST RDONL Y MOVB JSR #WRTDAT,$COMND (RD) 0P CODE PC,GETPAT :GET PATTERN CODE BR BNE MOVB MOVB :SET UP 5¢ #2,$CODE(RO) ‘BR [F YES *CODE FOR WRTDAT PC *RETURN C(LRB $PACK(RQ) SNEXT(ROD) (SP)+ MAIN . *LOCKED IN "'READ ONLY'' MODE ? :PATTERN CODE #-1 SNEXT(RO) (LR 187 JMP FOR EXIT RS SPATTC(RQ) MOV RTS -DRIVE CODE FOR OPERATION 7$ :SET PARAMETERS SELECTED INDICATOR :SET "T' COMMAND FLAG [N DPB TABLE sCLEAR 'PARAMETER SELECTED®" INDICATOR :CLEAR STACK LEVEL ;JUMP TO MAIN BACKGROUND LOOP CIRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 22 SEQ 0106 :GENERATE PARAMETERS FOR THE OPERATION FCALL: PC,$RAND RDONL Y 1% #SW0,3SWR 1% #8. RS PC.GETREM RS,RATIO 1% 42 ,RS 037226 000001 MOV $LONUM,RS 000010 032022 001502 000002 B8R 1$%: 177776 000004 000122 000174 000222 28 ] 160322 000124 000126 001510 2%: THEAD: 000054 001405 36 020740 37 020744 38 020750 012704 004737 000146 000142 000136 4«3 020776 000137 021150 000124 000125 ADD MOVB MOV MOV TST BEQ RS w*c1 EAD ONLY'' MODE ? R 5 T 8IT 0 RS 4,RS RS“$NCODE «RO) R READ 0 $SRPDA(RO), SNSEC $RPDC (30) JSNCYL RO) : 1%: MOV ggfl NSNSEC ,RG ggLCKLMTS T 2%: MOVB MOVB MINSEC(RO), $NSEC MINTRK(RO) .$NTRK ) ) ) JMP RANS 12 ggv 3. A RANDOM SOPERC'Z(RO) 1¢ $OPERC (RO) 28 000126 € RANC YL ST BNE ST BEQ 000052 000124 021332 SWAB BIC 29 RANDOM NUMBER GENERATOR m JSR 15T BNE BIT BNE MOV JSR (MP BHIS MOV VLI OOADODNDreo GENPAR: :DPB AUDRESS MMOMMMOMDO < OOOWNO = =2 NN 037126 001424 PC.GENPAR m RETURN #LPB,RO [ FEFTEFFEFE FI XN FIN N N ¥ ; JSR v MOV *®e : : ROOO0OO0O PRV PRI PUAININD b o b od e b b —ed b NOWV NN = O D00 NNV NN O O NN S NN — MAIN PROGRAM 7£NCYL(R0).SNCYL INDEX TO SECTOR ADDR STORAGE IN DPB HECK DISK ADDRESS LIMITS F NOT AT END OF SEQUENTIAL ADDRESSING ;RESET SECTOR ADDRESS :RESET TRACK ADDRESS RESET CYLINDER ADDRESS =CHECK FOR °BSF' TRACK CHECK FOR RANDOM WORD SIZE CZRJOAQ RPO7? PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 23 SEQ 0107 MAIN PROGRAM ) ;GENERATE A RANDOM CYLINDER ADDRESS BETWEEN VALUES "MINCYL' & "MAXCYL' 3021002 &L 021006 5 021012 6 02,014 016005 000134 RANCYL: MOV MAXCYL(RO),RS 166005 000136 SUB MINCYL(RO),RS 004737 032022 026005 001407 7 021020 005205 9 021026 066005 8 021022 19 021032 \ 010560 000136 000136 000126 }% 14 15 16 17 18 19 INC JSR 18 ADD MOV ;GET MAXIMUM CYLINDER ADDRESS MINCYC(ROI,RS 13 :'MINCYL' AND 'MAXCYL' ‘BR_IF THEY ARE RS “INCREMENT DIFFERENCE 10 USE AS DIVISOR PC,GETREM MINCYL(RO) RS RS,SNCYL(RO) 016005 026005 001407 166005 005205 004737 000140 000142 %1 021066 110560 000125 20 021062 ? >GET NUMBER OF ALLOWABLE CYLINDERS “GET THE RANDOM AUGMENT *NEW CYLINDER ADDRESS :STORE CYLINDER ADDRESS IN DPB 066005 RANTRK: MOV (MP BEQ SUB INC JSR MAXTRK(RO),RS MINTRK(RO) ,RS 18 MINTRK(RO),RS RS PC.GETREM ;GET MAXIMUM TRACK ADDRESS s"MINTRK® AND "MAXTRK® THE SAME ? *BR IF THEY ARE :GET NUMBER OF ALLOWABLE TRACKS *INCREMENT D:FFERENCE 10 USE AS DIVISOR GET THE RANDOM AUGMENT 1%: Movs R5.SNTRK(R6) ;sSTORE TRACK ADDRESS IN DPB 000142 032022 000142 [4 23 ADD MINTRK(RO) ,RS JNEW TRACK ADDRESS ;GENERATE A RANDOM SECTOR ADDRESS BETWEEN VALUES "MINSEC' & °*MAXSEC' 021072 021076 021102 021106 016005 026005 001407 166005 000144 000146 30 021112 31 021116 004737 066005 29 021110 005205 000146 RANSEC: MOV CMP BEO SU3 MAXSEC(RO),RS MINSEC(ROI.R5 18 MINSEC(RO),RS 032022 000146 JSR ADD PC,GETREM MINSEC(RO),RS INC RS * INCREMENT DIFFERENCE RS,SNSEC(R0) TM :STORE SECTOR ADDRESS IN DPB 3% ;MAKE SURE ADDRESS JUST GENERATED IS NOT 40 021144 41 621150 012704 004737 000404 004737 000137 000124 021332 MOV JSR BR JSR 037126 021002 22 28: JMP WSNSEC,R4 PC,CKLMTS 28 PC,SRAND RANCYL TO USE AS DIVISOR GET THE RANDOM AUGMENT :NEW SECTOR ADDRESS 13: 36 021126 37 021132 38 021136 39 021140 MOVB ;GET MAXIMUM SECTOR ADDRESS *'MINSEC' AND ‘MAXSEC' THE SAME ? *BR IF THEY ARE :GET NUMBER OF ALLOWABLE SECTORS 32 021122 110560 000124 *BAD SECTOR FILE' :GET INDEX TO SECTOR ADDR STORAGE [N DPB G0 CHECK DISK ADDRESS LIMITS *BR IF NOT AT END Of SEQUINTIAL ADDRESSING CYCLE THE RANDOM NUMBER GENERATOR GO GENERATE NEW ADDRESS ;GENERATE A RANDOM BUFFER LENGTH BETWEEN 6 & THE VALUE IN 'WRD(NT® 5 021150 46 021156 47 021160 48 021162 49 021164 50 51 52 33 THE SAME sGENCRATE A RANDOM TRACK ADDRESS BETWEEN VALUES 'MINTRK' & °*MAXTRK' 021036 021062 021046 027050 021054 021056 25 26 27 28 CMP BEQ 021170 021174 021176 021202 55 021206 56 021210 57 013705 005737 071011 005205 0 737 020527 002003 004737 000762 012704 004737 001466 001500 032022 RANSIZ: MOV TST BNE INC JSR 037126 1$: 000124 021512 28: 000006 (NP BGE JSR BR MOV JSR WRDCNT,RS RANDWC 28 RS PC,GETREM ;GET MAX WORD COUNT SELECT A _RANDOM WORD COUNT ? ‘BR IF NOT INCREMENT THE MAXIMUM WRD CNT *DIVIDE BY MAX VALUE WSNSEC,R4 PC,CHKWC :GET INDEX TO SECTOR STORAGE “SEE IF WORD COUNT IS TO0 LARGE T0 FIT 1IN REMAINDER OF TRACK. IF SO, THEN ADJUST RS.#6 2% PC,SRAND RANS 17 WORD COUNT LESS THAN 6 ? :BR IF NO *CYCLE THE RANDOM NUMBER GENERATOR CZkJOAQ RPO7 PERF OWVINIOWVWNO MAIN PROGRAM EXER MACRO VO04.00 1=-JAN-83 12:06:52 PAGE 23-1 000002 000122 3%: 000377 éngfl z%.s~coos<ao> 81( 2377RS MOV MOV #256.,RS BNE 000400 000020 A ¥ E RS, SWRDL (RO SEQ 0108 sWORD COUNT TO FIT ON TRA(CK. :WRITE OPERATION ? :BR IF NO ;WRITTING PARTIAL SECTOR ? :BR IF NO, ELSE, SWRITE AT LEAST ONE SECTOR :WORD COUNT ~NON VWA ONONNION D e s o e b AIPLMNVNINLND [aASI,ST, N1 81,8 1,8 ] [olelalolele] - ~ :GET A RANDOM PATTERN NUMBER 000002 021272 000123 177777 200122 000130 RANPAT: gnEB lZ.SNCODE(RO) JSR MOVB RS SNPATC (RO) RANXIT: MOV RTS RANXIT PC,GETPAT g-i $NEXT(RO) ¢WRITE OPERATION ? :BR _IF NO :GET PATTERN CODE :MOVE PATTERN CODE TO CONTROL ;SET PARAMETERS SE| ELECTED sRETURN BLOCK INDICATOR NN NN NN N W NNV =2 2O O NN oo SNOOMNVO SO W WM o — b oo o ad — [o ] e red D oo [olelalolololelole] NN NN NN ;ROUTINE TO SELECT A PATTERN 000020 001476 GETPAT: MOV 1ST 001476 MOV #16.,R5 PATTERN 1% PATTERN,RS JSR JSR PC,SRAND PC,GETREM 037126 032022 BEQ 1%: 2%: BR 1S7T BEQ ASL RT1S 2% RS GETPAT RS PC LEELFCT PATTERN ENABLE RANDOM PATTERN SELECTION ? YES USE INDEXED PATTERN NO :CYCLE THE RANDOM NUMBER GENERATOR ;GET CODE :WAS PATTERN ZERO SELECTED ? :BR IF YES +MAKE CODE INTO TABLE INDEX 9 SEQ 0109 OV 00 NN Nr0 — :THIS ROUTINE IS USED TO CHECK ADDRESS LIMITS BEFORE THE NEXT COMMAND WA =O0VRNCWVIE WA N MAIN PROGRAM F EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 24 ‘RO = DPB ADDRESS BEFORE CALLING THE ROUTINE ALSO, : MoV #DPB,RO :DPB ADDRESS JSR PC,CKLMTS :CALL ADDRESS LIMITS ROUTINE : T ; D rd s : ‘R4 SNNNOOMWN S SN NS OoONOMN SN b el el el el el AN AN NN N il D il — L1 AN AN NTNT NTNT N1 NT. N, N [olelelololololalola] 000002 000136 000136 000001 000002 000142 000142 000146 000001 eeseee = POINTER CKLMTS: 1$: 2%: 000146 MOV BR i e e = IT WILL CHECK FOR MAXIMUM ADDRESS LIMITS TO LOOK #POINTER,RG 777 :POINTER TO SECTOR STORAGE :RETURN HEPE TO SECTOR STORAGE BEFORE ;POINT TO secron STORAGE POINT MOV MINCYL (RO),2(R&) BGE 2% ;BR IF NO g;fll-).nlncu(nm-8R 1(R&) ,MINTRK (RO) SEQUENTIAL ADDRESSING CAL .ING THE ROUTINE RO,R& CMPB NOT END OF IN DPB N;1S CYLINDER ADDRESS BELOW MIN. ? ;RESET CYLINDER TQ MIN. ;1S TRACK ADDRESS BELOW MIN. MOVB MINTRK(RO), 1 (R&) ;24)LMINSEC (RD) éb ?ECTOR ADDRESS BELOW MIN. MOVB MINSEC(RO),(R&) :RESET SECTOR TO MIN. gg?e [N DPB sELSE, RETURN HERE TO RESET DISK ADDRESS ADD 325 IF (SSEC OR SNSEC) SRESET TRACK TO MIN. ? :LOOK FOR MAXIMUM LIMITS, FOR END OF SEQUENT]AL ADDRESSING AND 000144 WNON) = = OO [aSTANT N1 N1 N1 81,01, ) ;ALSO CHECK THAT ADDRESS IS NOT °'BAD SECTOR FILE' [o]elelolelalolela) P AN =200V :1S PERFORMFD, :FOR AN END TO THE SEQUENTIAL ADDRESSING AND WILL MAKE SURE THE CURRENT .?REEESS IS NOT THE °*BAD SECTOR FILE' NP N ANANANAAN AN AT AU A NI AV NI NI NINIA) = =D b o TM CIRJUAD RPO7 PERF 000146 000001 000001 000146 000142 000002 000002 016046 005316 026426 001004 126460 000140 (8 5%: 000134 6%: 001742 000207 7%: 000002 MINSEC(RO), (R&) cMPB8 1(R4) ,MAXTRK(RO)" ;1S TRACK ADDRESS OVER MAXIMUM ? MINTRK (RO),1(R4) sRESET INCB RESET SECTOR ADDRESS s INCREMENT TO NEXT TRACK ADDRESS 63 :BR IF NO MINSEC(RO), (R&) ;RESET SECTOR ADDRESS INC 2(R&) ; INCREMENT TO NEXT CYLINDER ADDRESS agD g%.(SP) ADJUSY RETURN TO RESET DISK ADDRESS PARAMETERS MOV DEC FET1(RO),=(SP) (sP) BNE 8$ BEQ RTS ‘% PC gn: L (MPB 8%: 1(R4) BLE Movse (MP 000154 ggk)+MAXSEC (RO) IS SECTgR ADDRESS AT MAXIMUM ° MOvVB MOvB 000001 000156 000001 gHEB L 000002 021462 021464 021470 021472 021476 021500 021506 021510 38: ;éRk).HAX(VL(RO)R 2(R&),(SP)¢ 1(R4),TRKLMT(RO) TRACK ADDRESS NolS CYLINDER ADDRESS OVER MAXIMUM ? sCHECK NOT TO READ OR WRITE BAD SECTOR TRA(K SGET 1ST FE CYLINDER (LAST CvyL+1) sLOOK AT LAST USER CYL INDER ¢ARE WE ON LAST USER CYLINDER ? :BR If NO ;1S THIS THE BAD SECTOR :BR _[F YES sRETURN TRA(K ? CIRJOAQ RPO7 PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 25 ) ;THIS ROUTINE 2 3 SEQ 0110 IS USED TO CALCULATE AND CHECK THE WORD COUNT 4 ;COUNT 2 (CONTENTS OF RS), THEN THE DESIRED WORD COUNT IS CHANGED, ,ruetuoao COUNT WILL NOT CAUSE A TRACK OVERFLOW DURING THE 7 8 9 : : : MOV MOV JSR #9PB,R0 #POINTER,RS PC,CHKWC : 12 13 ;RO = DPP ADDRESS BEFORE CALLING THE ROUTINE :R& = POINTER TO SECTOR STORAGE BEFORE CALLING THE ROUTINE }2 17 021514 18 021520 19 021522 060004 105760 001023 126060 20 021530 21 021532 22 021536 001017 105760 001010 24 021546 25 26 27 701004 23 021540 28 021550 29 021556 30 021560 31 021566 32 33 021570 34 021572 021576 021600 021602 021606 021610 021612 021614 021616 021620 23 021622 46 021624 47 48 49 50 51 52 53 54 55 THAT IN DPB :RETURN WITH RS CONTAINING THE DESIRED WORD COUNT ;RS = DESIRED WORD COUNT BEFORE CALLING THE ROUTINE 16 021512 40 41 42 43 RETURN SO TRANSFER. ;DPB ADDRESS :POINTER TO SECTOR STORAGE ($SEC OR SNSEC) ;CALL (HECK WORD COUNT ROUTINE }? 35 36 37 38 39 FOR THE :DRIVE THAT IS TO DO A DATA TRANSFER ON THE MAXIMUM TRACK OF THE MAX[MUM sCYLINDER, IF THE CALCULATED MAXIMUM WORD COUNT, EXCEEDS THE DESIRED WORD 021630 021632 021636 021640 021644 021646 021650 021656 021656 56 021660 CHKWC: 000146 000144 000154 026064 001022 126064 001016 , 000134 000002 000140 000001 111404 016046 160416 005006 062704 005316 002374 BNE 1578 BNE 000142 000140 000144 000400 (MPB BNE 1$%: 2%: 3%: 005726 020504 003420 010405 005316 026426 001010 016046 005316 005040 116416 022626 001744 000207 CMP BNE (MPB BNE MOVB MOV SUB (LR ADD DEC BGE ST CMP BLE MOV 000416 0160646 1S18 BNE (MPB 000152 126060 ADD BR 000156 68 000002 000154 000001 5¢: MOV DEC CMP BNE MOV DEC (LR MOVB (MP BEQ RTS RO,R& MINSEC (RO) ;POINT TO SECTOR STORAGE POINT ALLou SPIRAL RD/WRT ? 23 F NO MAXSEC (RO), SECLMT(RO) ;ALLOW SPIRAL RD/WRT 23 BR IfF NO [N DPB ? HINTRK(RO) CALLOW SPIRAL RD/WRT ? 1% ‘BR IF NO MAXTRK (RO) , rnanr(nO) ;ALLOW SPIRAL RD/WRT ? 1% :BR IF NO IWHEN SPIRAL RD/WRT IS ALLOWED, THEN CMECK ;70 MAKE SURL YOU DO NOT SPIRAL OVER MAXIMUM STRACK ON MAXIMUM CYLINDER MAXCYL(RO),2(R4)’ ;ON MAXIMUM CYL INDER ? X3 :BR IF NO MAXTRK(RO),1(R&) ;ON MAXIMUM TRACK ? 43 :BR IF NO ;ADJUST WORD COUNT TO FIT ON REMAINDER OF TRACK (R4G) R4 ;GET STARTING SECTIR ($SEC OR SNSEC) ADDRESS MAXSEC (RO),=(SP) ;GET MAXIMUM SECTOR R4, (SP) Ré #256. R4 (SP) 3s (SP)+ RS,R& 5% R4 ,RS 5¢ FET(RO),=(SP) (SP) 2(R&),(SP)+ 5% TRKLMT(RO) ,=(S (SP) -(SP) 1(R4), (SP) (SP)¢,(SP) e 23 PC ;GEY NUHBER StCTORS TO BE XFERD :CLEAR SADD 1 sscton OF WORDS TO R4 ;DONE ALL SECTORS YET ? ‘BR IF NO ;RESTORE STACK ;100 MANY WORDS FOR TRACK :BR If NO :YES, CHANGE WORD COUNT ;GET 1ST FE CYLINDER (LAST ? CYL+1) $LOOK AT LA%T USER CYLINDER Y3 .' “« LAST USER CYLINDER ? :BR IF )’ cer LAST TRACK ;LOOK AT NEXT TO LAST TRACK ;PUSH STACK :GET CURRENT TRACK 1S 1T TRACK BEFORE BAD SECTOR TRACK ? sBR IF YES (DON'T ALLOW SPIRAL TO BAD SEC TRK) CZRJOAQ RPO?7 PERF EXER MACRO V06.00 1-JAN-B3 12:06:52 PAGE 26 SEQ 0111 - MAIN PROGRAM ;ROUTINE R C LL: MOV JSR JSR S~ OHroOorNNSsrON S OONO SN O00OO0O0O0O0O0O NINVMNVRONINININININ PORIPINDN) b cd cod cd el JNNVNNNNNNO‘O‘OO‘ 8 EANNNI = SO0 NN AUNNALNIALININIPLNINONINONOND e o ad e d e e o D i e o e D OO0O0O0COCOO0O0O0OO0O RETURN o o N O N N = OO 00 N0 (¥,] AN = OO0 NN NN = OO 00 O VSN WA AN A N ANANIN) NI AU N RN NINUNIND =2 =P d cad b b d b e b TO GET el il il el el el ) ) ol el NNO VWAL SN = = O OSSO OMNNOMNISOON —d [elaleleloleleleleleT e AUNIALRLRLNLTLRL NV NN MUNLNLNLRLNLNLNLANL AL NN AN ~ 36 022174 THE PREVIOUSLY SELECTED PARAMETER VALUES #0P8,RD :DPB ADDRESS PC,LOUPAR :LOAD THE PARAMETERS JUST GENERATED PC,GENPAR *GENERATE THE PARAMETERS 1518 RS,=(SP) $PACK (RO) 000166 MOVB $SRPCS1(RO),$PREVO(RO) ;SAVE CURRENT PARAMETERS 000006 BITB $CYL(RO),$PREVA+2(R0) :SAVE STARTING CYLINDER LODPAR: MoV 000026 BNE 177701 BNE MOV ggEC(RO).SPREVA(RO) MOV 024364 000034 000033 000032 1%: 022176 2%: 022174 000100 022176 157156 000151 000002 000002 000161 000024 000002 ? #4C76,$PREVO(RO) :STRIP GO,AND IE BITS #6,SNCODE(RO) ;SEE IF NEXT OPERATION IS READ OR WRITE 1% ‘BR IF EITHER B8I(B 000012 000010 :SAVE RS .é;'lgongAno FOR THIS DRIVE B8R JSR MoV Move Movse DEC BGE MOV BIT 3%: PC,READDR -GET (SP)+,$PREVA+2(R)) :SAVE STARTING SECTOR AND TRALK THE (SP)+.$PREVA+1 (RO) (SP)+.$PREVA(RO) [TCNT+2 3 TTCNT,ITCNT+2 z§u06.aSUR 02((0.$COMND (RO) 6 #2,$CODE (RO) DECREMENTED SECTOR AND :CYLINDER ADDRESS *TRACK ADDRESS *SECTOR ADDRESS ;REPEAT THIS COMMAND AGAIN ? ‘BR IF YES :RESTORE ITERATION COUNT :LOOP ON PREVIOUS VALUES :BR TRACK ADDRESSES f NO (SW6=z1) ? Néls COMMAND A WRITE CHECK DATA ? sBR [F : CODE FOR WRTDAT sPUT WRITE DATA COMMAND BA(CK FOR LOOP #URTDAT,$COMND (RD) 6% 000002 000002 S$NCODE (RO) ,$CODE (RO) sLOGICAL CODE FOR OPERATION $NCODE (RO) ,RS ;:LOAD RS FOR USE AS TABLE INDEX COMTBL(RS) ,$COMND(RO) ;COMMAND CODE ggCKD.SCOHND(RO) 000027 #60,$PREVO(RO) dAS}fREvlous COMMAND A WRITE 000002 00002¢ #4,$CODE (RO) s CHANGE WRITE (HECK TO READ DATA (OMMAND :CCDE NUMBER CHANGED TO READ DATA 00002¢ 000030 000010 000012 000022 000024 000022 000004 000120 ¥ A 63 K DATA ? CHEC an 15 yoiS NEW COMMAND A WRITEDATA ? SRODAT, sconuo<no$ 5%: SNPATC(RO) ,SPATTC(RO) #256. ,$SSEC(RO) #1,$CODE (RO) #2,$SSEC(RD) *TRACK AND SECTOR ADDRESSES *CYLINDER ADDRESS ; INITIAL VALUE OF .ea If NOT ADD HEADER SIZE SWCNT(RO) SMAKE RTS PC *RETURN .WORD 0.0 (SP)+,RS SECTOR SIZE .HEADE OPERATION ? $SWRDL (RO) , SWCNT (RO) $WRDL (RO) . $HLDWC (RO) 6%: ITONT: ;PATTERN CODE SNSEC (RO) , $SEC(RD) $NCYL (RO) .$CYL (RO) sGET WORD COUNT AND *HOLD WORD FOR 'RELBUF' ROUTINE 1T’ 2's COMPLEMEN! ‘RESTORE R SYITCNT® CONTAINS THE NUMBER OF TIMES 10 - CZRJOAQ RPO7 PERF MAIN PROGRAM EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 26-1 SEQ 0112 HE ' sROUTINE . CALL: COMMAND IS THE COUNTER TO COMPRESS A LIST MoV JSR RETURN CMPRES: MOV 8eaQ TST BR RTS 1%: #ADDRS ,R1 PC,C(MPRES ¢ COMPRESS LIST STARTING AT THIS ADDRESS 2(R1),(RT) 1% s COMPRESS THE TABLE IN R ;BR WHEN ZERQO FOUND ¢ INCREMENT R ;CONTINUE COMPRESSING TABLE +RETURN (R1)+ CMPRES PC CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 27 SEQ 0113 ERROR MESSAGE GENERATION ROUTINES } .SBTTL 3 :PRINT LINE 1 OF ERROR MESSAGE: g "HH MM:S 6 022214 032777 9 022230 032777 7 022222 8 022224 10 11 12 13 14 ERROR MESSAGE GENERATION ROUTINES 02223%6 022240 022244 022250 022254 }2 022260 001402 104401 001010 104491 104401 004737 104401 000207 002000 001176 020000 156732 LINEY: B8]7 lSU10 aSWR :SWITCH 10 SET 2 156716 1%: BIT usu13 aSWR JINHIBIT TYPEOUT (Sw13=1) ? 001203 001203 026146 056531 2%: BEQ TYPE BNE TYPE TYPE JSR TYPE RTS 153 LOBELL 2% LOCRLF LOCRLF PC,STIME ,BLNKS PC ;B8R IF NOT sRING THE BELL :BR [F YES ;CR-LF :CR=LF STYPE ELAPSED :TYPE 1 BLANK :RETURN & TYPE DESCRIPTION 17 18 19 :PRINT LINE 2 OF ERROR MESSAGE :*PRESENT ORDER = XXXX PREVIOUS ORDER = Xxxxx' :'* ERROR AT BAD TRACK/SECTOR® %9 'BUFFER ADR = XXXXXX 20 21 22 23 24 25 :'DRIVE RPCS1T RP(S2 RPDS1 RPER! RPER2 RPER3 s'RPEC2 RPUW( RPBA RPDA RPAS RPLA RPDB ;'RPDT RPSN RPOF RPDC RPCC STATUS® ;'RPBAE RP(CS3' (RH70 ONLY) -'BUS ADDRESS OR WORD COUNT NOT CONSISTENT® S'RPUA = XXXXXX RPWC = XXXXXX' 28 022262 022262 010346 022266 29 022270 30 022274 31 022300 32 022302 33 022310 36 022314 7 022320 36 022324 37 022330 010546 104414 005037 005004 012737 116004 042704 004737 005737 001440 40 022344 41 022350 042706 004737 022264 38 022332 39 022340 42 022354 43 L4 45 46 012737 116004 000426 005005 126504 001405 105765 4«8 022374 005205 47 022372 022376 022400 022402 022406 53 0226406 5S4 022414 LINEZ: 010446 022356 022360 022364 022366 &9 50 51 52 TIME 100402 000770 006305 006305 006305 012737 060537 MOV MOV 001203 022422 054536 000166 177701 022356 022426 022422 054556 070027 022422 1¢: 2%: 002104 002104 ::PUSH RS ON STACK :CR=LF JCLEAR MESSAGE ADDRESS STORAGE ;WORKING REGISTER :ADDRESS OF 'PRESENT ORDER = * MSG JGET THE OPCODE :SAVE ONLY SIGNIFICANT BITS :TYPE THE FIRST MNEMONIC SEE IF MNEMONIC ENTRY FOUND BR IF NOT BIC JSR #C76,R4 PC,1% :SAVE Oh SIGNIFICANT BITS :TYPE TH[L PREV.JUS MNEMONIC BR CLR (MPB B8EQ 1518 INC 002124 022426 022426 ::PUSH R3 ON STA(K ::PUSH R4 ON STA(K RS,=(SP) ,$CRLF 43 R& #LIN2C,48 $RP(S1(RO) ,RG #4C76,R4 PC 18 5$ LINEZA 8MI] 3% R3,=(SP) R4 ,=-(SP) NMBR WRDS XFRD = Xxx* MOV DISPLY (LR CLR MOV MOVB B8IC JSR 1ST B8EQ MOV MovB 177/01 022356 WRD CNT = XXXX RPECT' RPMR1!' B8R ASL ASL ASL MOV ADD #LINCP,LS SPREVO(RO) R& LINEZ2A RS OPTBL (RS) R4 3% OPTBL (RS) b33 RS ;ADDRESS C® 'PREVIOUS ORDER = * MSG PREVIOU< NOPERATION CODE :CONTINUE :CLEAR THE TABLE INDEX :L00K FOR THE OPCODE ;BR WHEN OPCODE COUNT = OP(CODE ;L00K FOR END OF TABLE :BR |F END s INCREMENT 2% RS RS RS #MNTBL ,S59% RS5,5% ‘N THE POINTER JCONTINUE - NOT END OF JSHIFT INDEX JSHIFT THE INDEX JUHIFT THE INDEX TABLE JADDRESS OF ASCII TEXT TABLE :ADD THE INDEX CIRJOAQ RPO7 PERF EXER MACRO VQ4.00 1-JAN-83 12:06:52 PAGE 27-1 ERROR MESSAGE GENERATION ROUTINES 5SS 022420 56 022622 §7 02246204 58 022426 28 022430 104414 000000 104414 000000 000207 61 022432 62 022436 63 022440 64 022644 65 022450 66 022454 67 022460 68 022464 69 022470 005737 (01406 104414 104614 1)4414 106416 013746 004737 104414 001336 ;; 022500 004737 022662 70 022474 73 022504 74 022512 75 0225164 76 022520 ;g 0225264 79 022530 012705 032777 001031 104414 012705 004737 4%: 5¢: 054324 83 022544 013746 001234 86 022560 001006 90 91 92 93 94 95 96 97 022576 022604 022606 022612 022616 022620 022626 022630 98 022632 104414 012705 004737 032760 001422 016046 066016 006316 066016 022660 001410 104414 99 022636 100 022642 }85 85%2?3 104414 004737 004737 022652 022654 022656 }82 022660 012605 012604 012603 000207 105 022662 012546 107 022666 108 022672 017646 004737 106 022664 060016 JSR 1566442 000020 000170 000006 000172 053226 001203 022754 023366 % 1% : 000000 024306 PC.3$ :PRINT THE REGISTERS #0714 ,RS *REGISTER SECTOR LINE ? DEFINED AS BAD AREA REGISTER HEADER NUMBER ON THE STA(K INDEXES :PRINT THE OPTIONAL REGISTERS ? 1% ,DH15 #0115,RS ‘BR IF NOT *STANDARD RPO7? REGISTER HEADER *SECOND DATA LINE ,DH16 ;STANDARD RP0O7 REGISTER HEADER MOV JSR #0716,RS PC,3$ MOV $CPUOP, - (SP) BNE 1% 0544064 054530 022662 1$: ;PRINT THE BAD :BR IF NOT ‘CR-LF :ERROR ADDRESS ‘CR=LF *STANDARD RP0O7 *PUT THE DRIVE STYPE IT STYPE 2 BLANK PC.3$ BIC CMP 000016 BADSEC L INE2B ,S$CRLF .LIN2S .SCRLF .DH14 DRVNO,=(SP) PC.LINOCT ,BLNKS? JSR 003777 030000 000100 0 PC #SW0S5,aSWR DISPLY 054512 022662 SEQ 0114 ;TYPE 1T *ADDRESS OF °'PRESENT® OR "PREVIOUS® MESSAGE *TYPE THE OPERATION MNEMONIC *ADDRESS OF MESSAGE SRETURN TO MAIN ROUTINE O BIT BNE DISPLY MOV 022662 104414 87 022562 88 022566 89 022572 MOV 054225 054470 012705 004737 042716 022726 TST BEQ DISPLY DISPLY LINE2B: DISPLY DISPLY MOV JSR DISPLY 054450 80 022534 g} 022540 84 022550 85 022554 LINE2A: )01203 054577 001203 0564126 001320 024306 056530 000040 DISPLY WORD DISPLY .WORD RTS K TPRINT THEM STHIRD DATA LINE :PRINT THE REGISTERS ;CHECK THE CPU (RW) TYPE #5¢174000,(SP) #30000, (SP) + :LEAVE THE CPU BITS :SEE [F RH70 DISPLY MOV JSR ,DH17 #D117.RS PC,3$ *STANDARD RPO7 REGISTER HEADER SOPTIONAL FOURTH DATA LINE *PRINT THE REGISTERS DISPLY 81T BEQ MOV ADD ASL ADD CMP BEQ :BR IF NO #B116,8TATUS(RO) " ;DATA ERROR ? 28 :BR IF NOT $SWRDL (RO) ,-(SP) :TRANSFER SIZE $RPWC(RO) . (SP) :ADD REMAINING WORD COUNT (SP) :CONVERT TO AN BYTE INCREMENT $BUF (RO),(SP) :BUFFER STARTING ADDRESS (SP)+,$RPBA(RO) :CORRECT BUFFER ADDRESS ? 2% ‘BR IF YES DISPLY JSR JSR ,EM4L6 .SCRLF PC,LINE3D PC.LINEG :'BUS ADDRESS AND WORD COUNT ARE NOT CONSISTENT® MOV Mov MOV RTS (SP)+,RS (SP)+ R4 (SP)+.R3 PC ;:POP STACK INTO ::POP STACK INTO +POP STACK INTO *RETURN TO ERROR (RS)¢+,=(SP) JPUT THE REGISTER INDEX ON THE STACK 3($P),=(SP) PC.LINOCT :VALUE STYPE IT MoV ADD MOV JSR RO, (SP) $CR-LF *PRINT LINE 3D OF ERROR MESSAGE ‘PRINT LINE & OF ERROR MESSAGE RS R4 R3 PROCESSING ROUTINE SADD DRIVE'S TABLE ADDRESS CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 27-2 ERROR MESSAGE GENERATION ROUTINES 109 110 111 112 113 022676 022700 022704 022706 022710 }}g 022714 005726 104414 005715 001365 104414 000207 056530 001203 4%: 116 }}g }59 022722 106414 000517 054633 LINE3: 122 }gz RTS PC ;CORRECT THE STACK POINTER :TYPE 2 BLANKS ;AT END OF LINE ? ‘BR IF NOT SCR-LF *RETURN DISPLY ,LINM3 BR LIN3.1 ;LINE TT §S° 3 ENTRANCE ‘FINISH PRINTOUT sPRINT LINE 3A OF ERROR MESSAGE $*START CYL="CCC END CYvL= CCC® 125 022724 159 022730 104414 000514 054651 LINE3A: 128 }gg DISPLY BR ,LINN3 LIN3. 1 sLINE 3A ENTRANCE *FINISH ERROR LINE ;PRINT LINE 3B OF ERROR MESSAGE ;'START CYL= CCC END CYL= CCC ACTUAL CYL= CCC® 131 022732 132 022736 }gz 022742 0064737 1044164 000207 023270 001203 LINE3B: JSR DISPLY PC,LIN3.3 ,$CRLF RTS 135 s"START CYL= CCC 138 022744 }28 022750 004737 000137 023270 LINE3C: 023322 149 }2% JSR JMP ;LINE 3B ENTRANCE PC JPRINT LINE 3C OF ERROR MESSAGE }gg END CYL= CCC PC,LINS.3 LIN3.4 ACTUAL CYL= CCC ;LINE TRK= TT® 3C ENTRANCE ‘FINISH MESSAGE sPRINT LINE 3D OF ERROR MESSAGE J'RPBA = XXXXXX RPWC = XXXXXX* 164 022754 145 022702 032777 001416 000040 147 022770 016046 000172 146 022764 148 022776 149 023000 023006 023010 023016 023020 104414 004737 104414 016046 004737 104414 000207 055010 156172 LINE3D: BIT BEQ DISPLY MOV 024306 055017 000170 024306 001203 155 }29 JSR DISPLY 1$: MOV JSR DISPLY RTS #5405 ,aSwR 1% ,LINB3 ;SWITCH § SET BRIF IT IS *'RPBA = 159 023026 023032 023036 023042 023046 023050 023054 104414 054712 004737 104474 104414 005046 116016 004737 024340 056530 055030 016046 000012 000011 024340 LINESE: DISPLY MOV JSR DISPLY DISPLY CLR MOVB JSR ? ° $RPBA(RO) ,-(SP) ' ;BUFFER ADDR REG CONTENTS PC,LINOCT ,LIiNW3 $RPWC (RO),=(SP) PC,LINOCT ,S$CRLF PC ;CONVERT TO OCTAL AND TYPE “URPMC = * LINS3 §CYL(RO),=(SP) PC,L INDEC ,BLNKS2 .LINST3 <(SP) S$TRK(R0),(SP) PC,L INDE( IT *WORD COUNT REGISTER CONTENTS :CONVERT TO OCTAL AND TYPE IT sPRINT LINE 3E OF ERROR MESSAGE J'START CYL = CCC STARY TRK = 17 158 023022 160 161 162 162 164 165 (SP)+ ,BLNKS2 (RS) 3¢ .S$CRLF ;PRINT LINE 3 OF ERROR MESSAGE :"ERROR AT CCC TT SS PREVIOUS ADR = CCC 119 022716 150 151 152 }gz 18T DISPLY ST BNE DISPLY SEQ 0115 START SEC = S§S° ;'START (CvyL = :MOVE CYL TO STACK STYPE IT IN DECIMAL :TYPE 2 BLANKS S'START TRK = ° *CLEAR STACK :TRACK TO STACK STYPE IT IN DECIMAL MMs}alalalalialalalalalial.elLalralalalalialialMMVMMNMIMIMIMNPMN (w4SoOA[OTIeZSlOTeElNYMOeTlHA.IeAleOOMNlE0oT.NOHleOX)W[OATaOOeIIlTeNTDAlO12OIoWAlNTTNeoVOlOIeMRlNUOeIWAlY1EIIeNDlrAITeNOTlNOIeINlOIOAaINlWMeUOEIl=eTNHlIATelOOAIaOWNlIeVlIOEeOWNlHNOTeOIlNQUeNOMTXwINN]mDfl[QFHOINeONEYlWMaeNXxVlIQTeTOAlNOIeDTIlO~eIAOlO*XOeNNIlMOEOeNOUDlTRMoHIlDNSPoLOlOPWPeIO|l.eNOwE——]l._..:.WQ[YIOOe&aTMOlOWoNSlAOToOMVlQI0LoNOlIYeoT0lNsOOeVlsOITwE[] 0Ny-[—»-O"n-MOo—ONC—O|2b-Iw—OYEW<MrdOOE0ZMo.wo~sa@OD[V}—.KCe]~P2XdlWaBm2UpW=0O)Oo)Z2NTEeMV—02ZyZ——.OM4DLvogd—4>O[sW}<w[EVL2+[yWMaAg2aXe0eVZVZO[[-)««N[[J>vH"M=[¥n-)IJOIVols]oeNOl6NNWZ--o<4wZ]ewO).(a-Av~4ovPWLa~Z70[n7w—,JONoEMw4oEYn0o[Pu>lO-aDeiOl-Kro=-wW—0)2<<eO2uOl[w-[]wo=[(—4M4JO+((7WiWU}Ye¥[d]Sw[,~H~Yg02vOEN[me=o—VYZ,l~-aeW~lwoaoOQSO0NOx2ZNOWaNoMlx~(L.A4—w4-S[C+=we}[[>~a]M+-gl0>d—ua=tSewD0nuIUXElUNWoZ2e2vVsnNlTWaOeeL-W=OOloWw¥9RE2ZrOYaW[—eaNN=l2[YgxL[Oo2Ee<OOalY[0aLywLvw2Z—eI=od=Rn))ldO(w—x[BN][~«ANMOIO'AQN0O-MW(~Nr~rO=wo-[oO——I>&a<w4”eaNZ[s]~=«}~O—«O2|WaNN«@ONIvq£40NIOOANabIs~_o~NMN0I—-v(k[w-wa<—xxa=—NO~[V%y}~2<O4¥I—M-Oa0u0NWIONOwwOLoVB3oIovh0In=NdCO4xXwO>"nLo[v4a<IayXVTblO—ONOCD-2aUOoO)og¢~wO)MwNun0>oa W<X<< L~o4vE——~b)MOO2VsoN—VaI0d-—OO[r—V)£»7_e, v o[ - —C [=) — CZRJOAQ RPQ7 PERF - wv 0 o 2 0 =t\ha))=—d OwrT LTOAQA.dresOM—(<%] w-v [-x — > M xT e0NX-W(—4<=NWL)[]N4~=IMO%NT]2OUNOMVIN-MNVOO1Wo—0NNI>MT=NCyO4%ONO=0MrVOOmT2INIW—NO 0r-MwL—".2>MNVTOeNmNNL2w>-rOY[-0DEONeIOt]MeO>wNOO>MmvINaVlr=AEOMOO—NxV0NeM>OTOM=OlENGIINeOPKN=lwOSNeDdB(MONSNF>[NOTI=DT=IVdMl=OE0ONeIWZlMeVOaWN>lTWMTveMOaNIlO=EeIeTOMNl>IDTeeOO-MlTET=NIeNOl>VIUT0eaN=olTNMAeONEl-oTxI-.=P—WMee4e—L“NUT<-YV-=M—o—OV0Iee4)>0lOWOV-NeMVNN=lSMNOoOODl—NOI0=ueIMS2NlnW=VTT0oIDNAlNOOE=TeN0OWMl~IAIs2N8VNO]=M0sIOIT0AN]TOD>UTOeESOA=VW|s—O~.[O2NTVeoA«AsWxwZa—aAxA3vo-3aQNeXe4xTA—oMI>loVW>—OOTfe[NOINOieTlD0MMOTal_ZOOJeTl—V=OwVvMOTe—t0elINoN=y.V—ra~0TtlF 4[«YZ>We—bWoXMw=-L—D0aRNr0.iXMW[Ql.=ivO~xdPeo-&£-]Q)A-eo—OT>ZW—OeCX—aQ=0O>*gAras-XakU~ea>> Q=r=X-QDaUeDhcrmet=woX~Qe-laWo—QerlA»N.-lE0=aA(l>K=~oX.A=>!—iTWuoQt0li—WwAptewV]OyN-[Qe)V-DT—[*>-L~TaOcUarYac=Vt+aYIc—SXaIotraX@[O—e-a(sQ)L~V—.*I—OgaDN*ZQ>g>*—Q uXCS]XS-4[)+)teLa>aceaWx—ION.xClV(wMe%oaoWNOU—gaD> ERROR MESSAGE GENERATION ROUTINES EXER MACRO v04.00 1 =JAN=83 12:06:52 PAGE 27-3 SEQ 0116 -][V4, 4w[« v[-V,] w () [ < )p 4 O« 0N o X N OAQ RPO7 PERF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 27-4 9 SEQ 0117 R MESSAGE GENERATION ROUTINES 223 023322 204 023326 225 023332 226 023336 104414 013746 042716 004737 228 023346 229 023350 005046 116016 231 023360 %gg 023364 104414 0002G7 227 023342 230 023354 104414 004737 054742 063324 010000 024340 LIN3.4: DISPLY MOV BIC JSR 054761 DISPLY 000175 024340 234 %%g ‘PRINT 'TRK= ° <(SP) ‘CLEAR STACK WORD SRPDA+1(R0),(SP) ;PUT TRACK ON STACK DISPLY RTS ,SCRLF pC PC.LINDEC sTYPE 1T IN DECIMAL ;PRINT LINE & OF ERROR MESSAGE ;'BUFFER ADR= XXXXXX WRD CNT= XXXX 237 023366 032760 240 023402 016046 238 023374 239 023376 261 023606 262 023412 263 023416 264 023622 265 023426 266 023632 267 023436 268 023442 269 023444 250 023450 gg; 023454 001427 104414 000100 000016 LINE4: #BIT06,$TATUS(RO) MOV $BUF (RO),=(SP) 000020 MOV $WRDL (RO) ,-(SP) :BUFFER SIZE 000172 MOV 055060 BEQ DISPLY 004737 104414 026306 055076 JSR DISPLY 006737 104414 024340 055112 016046 016046 166016 006216 004737 104414 000207 000006 JSR DISPLY 000006 024340 001203 1%: SUB ASR JSR CISPLY RTS :PRINT LINE %gg ° 256 023456 104414 055135 258 023470 013746 001234 260 023500 261 023504 262 023506 022726 001012 162760 030000 259 023474 263 023516 264 023522 265 023526 266 023532 267 023536 268 023542 269 023546 023552 023556 023562 023566 023570 275 023574 276 023600 277 023602 278 023606 279 023612 162760 000002 042716 032760 001403 162760 017046 004737 104414 016046 004737 016046 066016 005046 016046 004737 012616 005316 032760 001416 000172 LINES: :BR'IF NOT ‘PRINT 'BUFFER ADR= PC,LINOCT ,LINS4 *CONVERT TO OCTAL & PRINT ‘PRINT °‘WRD CNT= * PC,LINDEC ,LINX4 004000 000002 000172 024306 055153 000172 000240 OF ERROR MESSAGE 000172 000210 BEQ SUB MOV JSR pISPLY JSR MOV ADD CLR MOV 000022 032066 000176 JSR MOV DEC BI1 BEQ WORD POS= XXX' ,LINDS ;PRINT $CPUOP, =(SP) SCHECK THE CPU (RH) #~c174000,(SP) MOV 024306 000170 000020 040000 1%: RECEVD DATA= XXXXXX BIC 8IT STYPE IT IN DECIMAL $' NMBR WRDS XFRD = ° $BUF (RO), (SP) ~ ;SUBTRACT STARTING ADDRESS (SP) :CONVERT INTO A WORD COUNT PC.LINDEC STYPE IT IN DECIMAL ,SCRLF :CR-LF PC *RETURN #2.,$RPBA(RO) CMP BNE SUB ° :BUFFER ADDR ON STACK $RPBA(R0),-(SP) " :VALUE IN BUFFER ADDR REGISTER SUB MOV 003777 000004 DISPLY ;DATA ERROR ? 1% ,LINM4 'EXPCTD DATA= XXXXXX 257 023462 NMBR WRDS XFRD= XXX' BIT 253 270 271 272 273 274 ,LINT3 ;PRINT *ACTUAL CYL= ° *ACTUAL CYLINDER *CLEAR THE FORMAT BIT STYPE IT IN DECIMAL CLR MOYB JSR 001203 ,LINA3 EYLNDR, - (SP) #BIT12. (SP) PC,LINDEC #30000, (SP) + 1% #4 ,$RPBA(RO) *EXPCTD DATA® :BACK THE ADDRESS UP :LEAVE THE CPU BITS TYPE SSEE IF RH70 :BR IF NO BACKUP THE BUFFER POINTER #B8iT11,$8RPCS3(ROS :SEE WHICH WORD HALF DIDN'T COMPARE 1$ :1F €Q, EVEN HALF DIDN'T COMPARE #2.$RPBA(RO) ‘BACKUP THE BUFFER POINTER AGAIN SRPBA(RD) ,=(SP) ;YEXPCTD® DATA - AT THE BUFFER LOCATION PC,LINOCT STYPE 1T ,LINBS SPRINT 'RECEVD DATA® $RPDB(RO) ,-(SP) :RECEVD DATA FROM BUFFER PC,LINOCT $RPWC(RO) ,=(SP) SWRDL (RO) . (SP) -(SP) $SSEC(RO),-(SP) PC.SDIV (SP)+, (SP) (SP) STYPE [T >WORD LENGTH ON STACK :MAKE INTO A POSITIVE NUMBER *UPPER DIVIDEND TO ZERO SSECTOR SIZE ON THE STACK ‘DIVIDE WORDS XFERED BY SECTOR SIZE *MOVE REMAINDER UP THE STACK DECREMENT WORD POSITION 8Y 1 #B1T14,$RPCS2 (ROY 2% ; c1S 'WCE® SET ? F NG B 10 SEQ 0118 9 Kb wWNe-TOOTNOOTOMUMo&VolO- CIRJOAQ RPO7 PERF EYLR MACRO V04.00 1-JAN-B3 12:06:52 PAGE 27-5 ERROR MESSAGE GENERATION ROUTINES (oe-‘sr[YmaR~E ]e<Vx[v~2N[WOw>v~V) o-D>w=oX4ZOQw[(-o+>v=73r'e]4 L—a-89bo-4V 2wl> = DWwWOwWwWaDdDw WCOWWO> 2WwWe—OS> o o (=] (=] ~y o o [() -[ ] _— - CIRJOAC RPOQ7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 27-6 ERROR MESSAGE GENERATION ROUTINES 336 024016 ggg 024022 104414 000403 055355 LINE6C: DISPLY BR 339 ,LINGS LING.? SEQ 0119 ;*CORRECTED ON N RETRY(S)® “TYPE THE REST OF THE LINE :PRINT LINE 6D OF THE ERROR MESSAGE §z$ :*UNCORRECTABLE AFTER N RETRY(S)' 342 024026 %éé 024030 104416 000400 055405 LINE6D: DISPLY BR ggg ;RETRY COUNT 358 024032 359 004034 360 024040 361 024064 362 024050 §gz 024054 005046 113716 004737 104414 104414 000207 LING.2: 001325 026340 055373 001203 365 %29 377 10 ,LINUOG Lle 2 : "UNCORRECTABLE AFTER N RETRY(S)' TFINISH TYPEOUT CLR MOVB JSR DISPLY DISPLY RTS -($P) RETRY+1,(SP) PC.LINDEC ,LINRG .SCRLF PC :CLEAR STACK *RETRY COUNT STYPE IT 1~ DEC IMAL +* RETRY( ;PRINT LINE 7 OF THE ERROR MESSAGE PUTOTALS; ERRORS:XXX WRDS WRITN:XXXXX X106 WRDS READ:XXXXX X10%6° 024056 104414 055514 379 024066 380 024072 381 024076 382 024102 383 024106 384 024110 385 026114 386 024120 387 024124 388 024130 389 124134 390 v24136 391 024142 392 02414€ 393 024152 394 024156 004737 104414 012746 060016 004737 004737 104614 104414 104414 012746 060016 004737 004737 104414 104414 104414 024340 455535 000056 396 024170 001401 LINE?: 378 024062 016046 000102 305 024162 397 024172 §gg 024174 032777 037324 032446 057711 05/552 055553 000066 037324 (032446 057711 057552 001203 100000 062000 000207 415 024210 616 026216 617 026220 418 024224 ;TOTALS; ©RRORS ;10 STACK PC.LINDEC .LIN? #SWTOTL,= SP) RO, (SP) PC.$DB2D PC . $SUPRL ,PERIOD .MSGX10 ,LIN7R NSRTOTL,-(SP) RO, (SP) PC..DB2D PC,SSUPRL ,PERIOD ,MSGX19 .$CRLF : CONVERT PRlNT lT ‘TYPE rvpe ' X10%6" SCR-LF BEQ 1% ‘BR 'F NOT HALT RTS #5415, aSWR PC ;TYPE IT IN DECIMAL SPRINT ' WRDS WRITN® :AT_KESS OF LOW WORD ON STACK : CONVERT SPRINT STYPE '.° STYPE * X10%6° 'PRINT * WRDS READ® :LOW WORD ADDRESS ‘SEE IF "HALT ON ERROR® = SWITCH 15 SSWITCH 15 HALT JPRINT LINE 7A OF ERROR MESSAGE “*TOTALS; SEEKS= XXXXX MIS POS ERRORS= XXX 104414 012746 060016 004737 004737 104414 104414 055455 000076 037324 032446 057711 055472 419 024230 016046 000112 420 024234 421 024240 ,LIN?T ‘TOTAL(RO) -(SP) JSR DISPLY MOV ADD JSR JSR DISPLY DISPLY DISPLY MOV ADD JSR +SR DISPLY DISPLY DISPLY BIT 1% 4C) 285 612 0264176 413 024202 414 024206 154764 DISPLY MOV 004737 104414 024340 055475 LINE7A: DISPLY MOV ADD JSR JSR ,LIN7P #$STCTL,-(SP) RO, (<% PC.SDLD PC.SSUPRL MOV £n|spo<n0) -(SP)° pISPLY DISPLY JSR DISPLY .PERIOD ,LIN7M PC,LINDEC .LINI. SKI ERRORS= XXX' ;*TOTALS; SEEK = ° :TOTAL SEEKS SLEVICC TABLE ADDRESS "CONVERT THE SEEK COUNT SPRINT IT STYPE '.° :' MIS POS ERRORS= ° :TOTAL "RRORS ; TYPE IT°IN DECIMAL : SK] ERRORS:= ' Ci Ky EXER MACRO V04,00 1-JAN=83 12:06:52 PAGE 27-7 0D 10 SEQ 0120 ERROR MESSAGE GENERATION ROUTINES 422 024244 016046 000110 624 425 426 427 1064614 032777 001401 000000 001203 100000 423 024250 026254 024260 024266 024270 253 024272 004737 024340 154666 000207 1%: ;CONVERT & PRINT DISPLY BIT BEQ HAL T ,S$CRLF #SW1S,3SWR 1$ ‘CR=LF SSEE IF HALT ON ERROR = SWITCH 15 SET ‘BR IfF NOT SSWITCH 15 HALT PC,LINOEC RTS PC ;PRINT LINE 8 OF 2%} 232 024304 $SKI(RO),=(SP) JSR 430 633 024274 434 024300 MOV |T STYPE IT IN DECIMAL THE ERROR MESSAGE ;*DIFFERENT ERRCR DURIN% RETRY' 104415 004737 000207 <770 022262 LINEB: DISPLY JSR ,LINBM PC,LINE2 RTS PC 437 438 439 ;OCTAL JCALL: ; 2:_.; : RETURN LINOCT: MOV JSR MOV : 440 :PRINT LINE 2 OF ERROR MESSAGE TYPEOUT ROUTINE MOV JSR NUM,=(SP) ;PUT 2(SP),=(5P) PC,$SB20 (SP)+,18% :PUT NUMBER IN PROPER LOCATION ON STACK ;CONVERT THE NUMBER TO OCTAL :GET THE ADDRESS OF THE ASCII STRING O (SP)+, (SP) STYPE IT :ADDRESS *CORRECT THE PC,LINOCT THE NUMBER ON THE STACK & 663 026306 464 026312 445 026436 016646 006737 012637 467 024330 448 024332 449 024334 106414 000000 012616 000005 000207 RTS 470 71 &» ~ e 472 LINDEC: 032446 057711 PC SADDRESS THE LAST 6 ASCII DIGITS :RETURN STACK MOV JSR 2(SP),=(SP) PC,$SB2D :SET UP STACK FOR CONVERT CONVERT IT TO DECIMAL MOV RTS (SP)+, (SP) PC RESTORE STACK POINTER JSR DISPLY PC.$SUPRL ,PERIOD rvps YPE IT (LEFT .SBTTL GENERAL SUPPORT SUBROUTINES oecnsneur TEDS 012616 000207 004737 104414 000002 033332 I 463 024360 222 024362 4 #5..1$ ALL: THE MOV JSR RETURN SECTOR-TRACK ADDRESS #0PB,RO PC,READDR AT 016646 00473/ agg DISPLY .WORD MOV ;ROUTINE TO CONVERT THE INPUT NUMBER TO DECIMAL AND TYPE IT SLEFT JUSTIFJED (CALL: ; MOV NUM, = (SP) ;PUT THE NUMBER ON "HE STACK . JSR PC,LINDEC : RETURN 459 024340 460 024344 22? ADD 1%: 452 453 454 455 456 2§g 461 024350 462 024354 024332 :DPB ADDRESS ;ON RETURN THE STACK CONTAINS THE ; R 23? 024336 040737 I 646 026322 000002 033362 02433¢ 4(SP) = SECTOR ADDRESS 2(SP) = TRACK ADDRESS (SP) = CYLINDER ADDRESS FOLLOWING: JUSTIFIED) FoXan) CIRJ AO RPO7 PERF E 10 SEQ 0121 GENERAL SUPPORT SUBROULTINES 479 024364 162706 000006 READDR: SUB 481 024374 482 024400 483 024406 005066 005066 116066 000006 000006 000174 000006 CLR CLR MOVB 000222 000002 MOV 480 024370 48B4 0264412 485 024420 486 024426 r87 024432 438 024434 489 024440 490 024442 491 024446 492 024450 493 024456 494 026462 495 024464 496 024470 497 024472 498 024500 479 024506 500 024512 016616 116066 016066 005766 001403 105366 000424 005766 001406 116066 105366 000413 005766 001410 116066 116066 005366 000207 000006 000175 000006 MOV 000004 MOVB 1%: 000006 000004 000152 000004 2%: 000006 000002 000152 0001564 000002 3¢ 000006 000004 4%: ST BEQ DECB BR TST BEQ MOVB DECB BR ST BEQ MOVB MOVB DEC RTS #6,5P 6(SP), (SP) ;DCREMENT THE STACK POINTER ‘MOVE THF RETURN ADDR DOWN THE STACK 6(SP) ‘CLEAR SIACK FOR SECTOR 4(SP) :CLEAR STACK FOR TRACK S$RPDA(RO),6(SP) :SECTOR ON STACK $RPDA+1(RO),4(SP) :TRACK ADDRESS $RPDC(RO),2(SP) ;CYL 1~oeh ADDRESS 6(SP) *SECTOR 0 28 ‘BRANCH IF so 6(SP) ‘DECREMENT ONE SECTOR 4% ‘BRANCH 0 EXIT L(SP) ALSO ON "RACK 0 ? {3 ‘BRANCH IF SO SECLMT(RO),6(5P) SLAST SECTOR &(SP) :DECREMENT ONE TRACK 4% SEXIT 2(sP) *ALSO ON CYLINDER 0 ? (s ‘BRANCH If SO SECLMT(R0),6(SP)’ SLAST SECTOR TRKLMT(RO).4(SP) *GET LAST TRACK 2(SP) :DECREMFNT ONE CYLINDER COUNT *RE TURN PC ] CZRJOAO RPO7 PEFF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 27-8 CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 28 KW11 F 10 SEQ 0122 CLOCK CHECK ROUTINE } LSBTTL 2 sROUTINE TO CHECK FOR KWi1=L OR KW11=P CLOCKS 9 €24514 6 024520 005037 013746 001310 000004 8 024532 005777 154540 7 026524 9 024536 10 024544 11 024550 012737 012737 013701 012721 024576 000004 000001 (001302 026272 001310 174575 154512 1% (24554 012711 00300 16 026566 012777 000131 13 024560 ;2 024574 17 024576 18 024602 19 024604 012777 (000442 012716 000002 012737 CKCLK: 024650 1$: ;SET INTERRUPT PRIORITY T0O 6 #131,38LKCSR :SET KW11=P INTERRUPT, 7S, (SP) :SETUP RETURN ADDRESS #CKCLK2,ERRVEC ;SETUP ERROR T~AP VECTOR FOR L=CLOCK #1%,(SP) :SETUP RETURN ADDRESS {KCLK3 MOV RTI MOV (KCLK2: MOV 30 024655 104401 057634 1% 32 33 34 %g 024666 024670 024674 024676 001402 000137 000000 000137 37 024702 012637 gg 024706 000207 001150 031744 1831 MOV MOV MOV MOV MOV B8R RT1] TYPE TST8 BEQ JMP HALT JMP 2%: 003522 000004 :SET P=CLOCK FLAG :KW11=P VECTOR ADDRESS :SETUP KW11=-P VECTOR BR 024656 105737 *SETUP ERROR TRAP VECTOR FOR P=CLOCK CHE (K l-1667..aSLKCSB ;LOAD COUNTER BUFFER WITH 16.67 012716 31 024662 ;CHECK FOR KW11=P MOV 28 024650 000002 aSLKCSR #1,CLKFLG SLPVEC,RY #KWSVR, (R1)+ #PR6, (R1) 154466 177777 001306 026272 000300 000100 29 024654 sASSUME ''NO CLOCK'' AVAILABLE s +PUSH ERRVEC ON STACK MOV MOV MOV MOV 005777 012737 013701 012721 01¢711 012777 000415 154436 CLKFLG ERRVEC ,=-(STM #CKCLKT CanvEC 20 024612 21 024616 22 024624 2% 024630 24 024634 25 024640 59 024646 001310 CLOCK CHECK ROUTINE MOV MOV CkrLKY1: 000004 CLR MOV TST 154502 024606 kW11 CKCLK3: MOV RTS asLKS #-1,CLKFLG SLLVEC,R #XWSVR, (R1)+ #PR6, (R1) #100,wSLKS (KCLK3 NEDCLK $AUTOB 2$ $GET42 CNT UP, JCHECK FOR KW1'=L ;SET L=CLNCK FLAG cKWil=L VCCTOR ADDRESS :SETUP KW11-L VECTOR :CET INTERRUPT PRIORITY TO 6 sSET KW11=L INTERRUPT P OR L CLOCK MUST BE ON SYSTEM' ;RUNNING IN AUTO MODE ? START ‘BR IF NOT :ABORT PROGRAM JHALT ;TRY AGAIN (SP) ¢+, ERRVEC ;RESTORE THE ERROR VECTOR PC 29 :E:ls ROUTINE IS USED TO SHUT OFF INTERRUPT TO THE SYSTEM CLOCK 2% : s &6 024710 4S 024714 46 024716 005737 001410 100404 001310 000101 154350 49 024730 50 024736 042777 000207 000100 154346 47 024720 4P 0264726 042777 000403 CALL CLKOFF: 1%: 2s: JSR PC,CLKOFF ;CALL ROUTINE TST BEQ BM] CLKFLG 2% 1$ ;1S CLOCK AVAILABLE sBR IF NO :BR IF L=-CLOCK #100,3%LKS P( JSHUT OFF nd11=L BT BIC BR BIC RTS #101,38LRCSR 10US, ;SHUT OFF ? KW11=P [NTERRUPT INTERRUPT “EPEAT MODE CHECK 6 10 CIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:04:52 PAGE 29 SEQ 0123 CLOCK CHECK ROUTINE 2 3 :?2EIINE TO DISPLAY STATISTICS FOR ASSIGNED DRIVES 5 6 : ; 4 BB NOSNSNOSNSO =S NO OO OO WIS NNEOS =Y (elelelololololololele S5 NN = =2 OO ~ [=Te PP I NTe ¥ Jaf ol Jo] o AIAVANVNINIAI AL RINI PV NINVT VNI AINININOND A A A A A A A A A R P oV o R¥ elelelolololelololeloldlelololelclals] NN LN N AN AN N NNV PO A N NI PO N NN SN = OO 00 O N 88 NV = O 00 14 STATPR. 001542 2%: 001203 1%: 002056 045550 JSR PC,STATFR MOV RO, =(SP) :;PUSH RO ON STACK BEQ (LR 5¢ R4 ‘BR IF NOT :CLEAR THZ DRIVE RE TURN MOV ST TYPE 104401 R4 . =(SP) ASNLST $3PUSH R4 ON STACK *ANY DRIVES ASSIGNED ,$CRLF R4 BLKADR(R4) ,R0 BITB ATABIT(R4),ASNLST R4 sCHANGE 70 INDEX WORDS :GeT THE DRIVE'S BILOCK ADDRESS ‘RESTORE P4 :IS THIS DRIVE ASSIGNED ? BEQ 43 :BR IF NOT JSR PC.STIME STYPE ELAPSED TIME TYPE “MSGSUM TYPE TYPE LSCRLF ‘CR-LF ,DASHS STYPE STYPE ‘eeeee 'SUMMARY, ' 4$: JSR INC PC.TYPSUM R4 STYPE THE SUMMARY {INCREMENT THE INDEX s E 38 ‘BR IF NO rup R4, #8. SFINISHED ? A0V (SP)+ R4 ::POP STACK RTS PC ‘RETURN MOV ? INDEX *CR-LF ASL MO\ A°R 0015642 (SP)+.RO ::POP STACK INTO R4 INTO RO :?RUTINE 70 TYPE THE SUMMARY FOR CNLY ONE DRIVE sCALL: : MOV JSR RE TURN ONESUM: MOV OO0 —=O =000 QOO0 0O0O00 52 NIRLNIRINOAINONI N ; ; [o Yo Yo Yo IV IV AV [V IV TV IV IV IV ] N SO V00 NO NN KW11 MOV CLR #DPB,RO :DPB ADDRESS RO,=(SP) :SAVE RO R&4 ‘CLEAR R4 FOR DRIVE NUMBER PC,ONESUM R&.=-(SP) (RO) ,R& PC.TYF_JM *DRIVE NUMBER STYPE THE SUMMARY MOV MOV RTS (SP)+,Ré (SP)+.RO PC ‘RESTORE R&4 ‘RESTORE RO ,DASH13 :TYPE THE SUMMARY JCALL: : MOV #ORIVE 025070 000240 68 025072 104401 056601 Ré MOVB JSR TYPE : MOV TYPSUM: NOP : SSAVE RE TURN ;TYPE REST OF TYPE #0PB, R *RETURN R4 SUMMARY LINE .DRVMSG STYPE ‘ececeeccecee- J :DRIVE NUMBER ‘DPB ADDRESS 1 ;TYPE 'DRIVE® CZRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 29-1 KW11 H 10 SEQ 0124 CLOCK CHECK ROUTINE 69 025076 70 71 72 73 74 75 76 77 78 79 025100 025102 025103 010446 104403 002 000 MOV 025104 025110 025114 025120 025126 025134 025136 025144 025146 025150 1044017 104401 104401 012737 122764 001403 012737 106401 000000 104401 056573 81 025160 004737 032764 025170 000404 025202 025202 025206 025212 025216 025220 016046 004737 004537 000003 106401 80 025156 82 025164 7 84 85 86 gg 104401 104401 056531 056575 (56531 057075 000005 025146 060464 057102 025146 1$: 28: 056531 000114 033332 032552 057711 I¥F 92 93 025224 025230 025250 025250 025254 025256 025262 104401 000407 025232 ;:678: 057532 98 025266 99 025272 100 025276 104401 010046 062716 004737 004737 104401 104401 102 025306 062716 000056 004737 104401 032362 057711 101 025302 102 025310 104 025314 105 025320 }89 025324 108 109 025330 02533« 025354 110 025354 111 025360 112 025362 010046 004737 106401 104401 000407 1064401 010046 062716 000042 037324 032362 057711 057542 JSR PC, ;TYPE DRIVE SERIAL NUMBER BR LASCI2 b4 /, PASS / MOV JSR JSR .MORD TYPE $PASSC(RO),=(SP) ;PUT THE PASS COUNT ON THE STA(K P(,$582D :CONVERT [T RS.REPLZ STYPE IT 3 STYPE 3 DIGITS LPERIOD STYPE *,° 000036 TYDRV L6588 SUMMARY ,$CRLF ;TYPE 6hs: STYPE 1 BLANK SsTYPE ASC'Z STRING $:GET OVE. THE ASCIZ :CR=LF ;s TYPE ASCIZ STRING ::GET OVER THE ASCIZ <CRLF>/WRDS WRiTN'/ TYPE MOV ADD JSR JSR TYPE TYPE JMSPASS RO,=(SP) #SUTPAS, (SP) PC,$DB¢D PC.SUPRS .PERI0D “MSTOTL ;TYPE */ PASS ° :GET ADDRESS OF DPB :POINT TO LOW NUMBER OF WRDS WRITIEN PF- PASS :CONVERT DECIMAL NUMBER SSUPPRESS LEADING ZERJS AND TYPE STYPE *.° STYPE ' TOTAL ° RO,=-(SP) :GET ADDRESS OF DPB PC,$08B20 :CONVERT "ECIMAL NUMBER ADD #SWT0TL, (SP) JSR TYPE PC .SUPRS ,PERIOD “MSGX10 STYPE LINE & OF TYPE SUMMARY 69% ::TYPE ASCIZ STRING TYPE ::698: 057532 "BLNKS1 _ASCIZ JSR 057552 025336 TYPE MOV 037324 1 BLANK '-* O , COMMA JTYPE LINE 3 OF SUMMARY TYPE 67% BR 6% 66%: sTYPE STYPE NUMBER ;TYPE 1 Bl ANK SADDRESS OF RP0O7? MESSAGE :IS DEVICE AN RPO7 2 ‘BR IF YES :ADDRESS OF RPO7+ MESSAGE :TYPE THE DRIVE TYPE MESSAGE {MESSAGE ADDRESS HERE STYPE *,° ;TYPE LINE 2 OF 3? DRIVE $:G0 TYPE=-=0CTAL ASCI] $:TYPE 2 DIGIT(S) : :SUPPRESS LEADING ZEROS ,BLNKS1 "DASH ,BLNKS1 #SRPO7,2% #S5,0RVFYP(R4) 1% #SRPO7P,28 TYPE :.65%: 64$: 2 0 ::SAVE R4 FOR TYPEOU! ::TYPE TYPE TYPE TYPE MOV CMPB BEQ MOV TYPE WMORD TYPE TYPE 025172 89 94 95 96 97 TYPOS BYTE .BYTE R&,=(SP) BR é8$ TYPE MOV ADD LMSPASS RO,-(SP) #SROPAS, (SP) .ASCIZ <CRLF>/WRDS READ ;POINT 17 LOW NUMBER OF WRDS WRITTEN :SUPPRESS LEADING 2EROS AND STYPE '.° ' TYPE X10%6° ::GET OVER THE ASCIZ '/ STYPE '/ PAYS ° ;GET ADDRESS OF DPB :POINT TO LOW NUMBER Of WRDS READ PER "ASS CIRJOAQ RPO7 PERF kW11 CLOCK EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 29-2 025366 025372 025376 025402 025406 004737 004737 104401 104401 010046 037324 032362 057711 057542 119 120 121 025414 025420 025424 0064737 004737 104401 037326 032362 057711 025410 }% 025430 12 125 025 126 127 128 129 3 025 025 025464 025466 025472 062716 000006 104401 057552 106401 025442 000407 000046 037324 032362 057711 057542 025514 025520 025524 025530 062716 004737 004737 104401 000076 037324 032362 057711 147 148 025534 104401 025542 130 025476 131 025502 132 025506 133 025512 025540 225566 149 025566 025572 025604 150 025604 025610 151 025612 152 025616 025622 025634 010046 000412 104401 000404 016046 104405 104401 104401 00404 057532 000106 154 025642 155 025646 104401 104401 057711 0256564 025652 025662 000403 016046 000110 157 025670 158 025674 104401 104401 057711 025702 025666 025700 104405 000404 JSR JSR TYPE PC.$0B2D PC.SUPRS LPERIOD :CONVERT DECIMAL NUMBER :SUPPRESS LEADING ZEROS AND STYPE '.° SUMMARY 71¢ ::TYPE ASCIZ STRING LINE S OF TYPE BR #SRTOTL ., (SP) “MSGX10 fos 74s: X10%6° S:GET OVER THE ASCIZ .MSPASS RO, = (SP) #SSEEKS, (SP) P(,$0B20 PC.SUPRS ,PERIOD ‘MSTOTL :SUPPRESS LEADING ZEROS AND TYPE STYPE '.° STYPE * TOTAL ° #$570TL . (SP) PC.$0B2D PC,SUPRS .PERIOD :POINT TO LOW NUMBER OF SEEK COUNT $CONVERT DECIMAL NUMBER JSUPPRESS LEADING ZERQOS AND TYPE STYPE *.° BR _ASCIZ TYPE BR RO, =-(SP) SUMMARY 72% / ;TYPE '/ PASS ° ;PUT $STOTL ON THE STACK :POINT TO LOW NUMBER OF SEEK COUNT :CONVERT DECIMAL NUMBER ;PUT $STOTL ON THE STACK ;s TYPE ASCIZ STRING ::GET OVER THE ASCIZ <CRLF>’CUMULATIVE ERRORS:/ 75% ::TYPE ASCIZ STRING 748 2:GET OVER THE ASCIZ JASCIZ <CR_F>/SOFT / MOV $SOFT(k0),=(SP) ;:SAVE $SOFT(RO) TYPE TYPE LPERIOD 77% STYPE *.° $:TYPE ASCIZ STRING bR 76$ FOR TYPEOUT 1360 TYPE==DECIMAL ASCII WITH SIGN S3GET OVER THE ASCIZ .ASCIZ / HARD / MOV SHARD(RQ) ,=(SP) ;:SAVE $HARD(RO) TYPE TYPE LPERIOD 79% STyPe *.° $:TYPE ASCIZ STRING TYPDS 78s: ' TYPE MOV ADD JSR JSR TYPE TYPE TYPDS 76%: STYPE TYPE <CRLF>/SEEKS sTYPE LINES 6 AND 7 OF TYPE 73% 1413 :POINT TO 10W NUMBER OF WRDS READ _ASCIZ ADD JSR JSR TYPE --798: 156 025662 ; CONVERT DECIMAL NUMBER $SUPPRESS LEADING ZEROS AND TYPE STYPE *L° JTYPE ¢ TOTAL ! :GET ADDRESS OF DPB MOV . 778: 016046 104405 ?hs- 057711 025624 153 025634 025640 JTYPE :758: 000104 PC,$DB2D PC.SUPRS ,PERIOD LJASTOTL RO, =(SP) TYPE .- 738: (25574 JSR JSR TYPE TYPE MOV ADD . 71%: 104491 010".6 C...16 004737 004737 104401 104401 134 135 136 }zg SEQ 0125 CHECK ROUTINE 113 114 115 116 117 118 I 10 BR 78s FOR TYPEOQUT $:60 TYPE-=DECIMAL ASCI! WITH SIGN S:GET OVER THE ASCIZ .ASCIZ / SKI MOV $SKI1(R0),=(SP) ;;SAVE $SKI(R)) 1YPE TYPE LPERIOD 81% STYPE *.° 2:TYPE ASCIZ STRING TYPDS BR 80s / FOR TYPEQUT J2GC TYPE==D' CIMAL ASCII WITH SIGN SSGET OVER THE ASCIZ CZRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-B83 12:06:52 PAGE 29-3 KWll J 10 SEQ 0126 CLOCK CHECK ROUTINE -+81%: 025712 025712 025716 016046 104405 025730 000404 160 025720 161 025726 025742 104401 1064401 162 025742 165 025746 016046 166016 166 025766 167 025770 168 025774 104405 104401 104401 025752 025756 025762 169 026000 166016 166916 166016 000207 000112 80s: 057711 025732 --83%: 000102 000104 000106 000119 000112 057711 001203 Bes: ASCIZ / MISP / MOV TYPDS TYPE TYPE BR $MISPO(RD) ,=(SP) MOV $TOTAL(RO),=(SP) ;CALCULATE NUMBER OF OTHER ERRORS $SOFT(RO),(SP) :SUBTRACT $SOFT FROM $TOTAL LASCIZ SuB SuB SuB SuB TYPDS TYPE TYPE RTS ,PERIOD 83% 828 / OTHER / SHARD(RO) . (SP) $SKI1(RO),(SF) ::SAVE SMISPO(RO) 360 TYPE==DECIMAL ASCII STyPE L ;3TYPE ASCIZ STRING FOR TYPEQUT WITH SIGN “IGET OVER THE ASC1Z :SUBTRACT $SHARD FROM STOTAL :SUBTRACT $SKI FROM $TOTAL $MISPO(R) . (SP) :SUBTRACT SMISPO FROM STOTAL LPER10D F.’%cau 1360 TYPE==DECIMAL ASCII WITH SIGN ‘TYPE S CR=LF *.° CIZRJOAO RPO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAGE 30 KW1l K 10 SEQ 0127 CLOCK CHECK ROUTINE 1 15 16 :ROUTINE TO INCREMENT $SOFT 026002 026006 005737 001006 026016 026020 _ 026024 103002 005260 000207 026010 026027 001336 000104 INOTE: $SOrT WILL NOT BE INCREMENTED BEYOND 77777 (32767.) INCSOF: TST BNE 077777 000106 CMP 1$: BHIS INC RTS BADSEC 1% sse IF BAD TRK/SEC INDICATOR SET R IF IT'S SET, DON'T INCREMENT COUNT ssorr(no>,c77777 15 $SOFT ALREADY AT MAXIMUM ? 1% : IS IT $S0F T(RO) N ; INCREMENT $SOFT PC :ROUTINE TO INCREMENT SHARD 026026 026032 026036 026042 026044 8 026050 005737 001006 026027 103002 005260 000207 001336 000106 INOTE: $HARD WILL NOT BE INCREMENTED BEYOND 77777 (32767.) INCHRD: TST BNE CMP BHIS INC RTS 077777 000106 1$: BADSEC sSEE IF BAD TRK/SEC INDICATOR SET 1$ ;8 R IF IT'S SET, DON'T INCREMENT COUNT $SHARD (RO) ,#77777 : 1S SHARD ALREADY AT MAXIMUM ? 1$ ; IT IS $HARD (RO) N : INCREMENT $HARD PC ;ROUTINE TO INCREMENT $SKI 026052 026056 026060 026066 026070 0 026074 005737 001006 026027 103002 005260 000207 001336 000110 CNOTE: $SKI WILL NOT BE INCREMENTED BEYOND 77777 (32767.) INCSKI: TST BNE CMP BHIS INC RTS 077777 000110 1%: BADSEC 1% $SKI1(RO) ,#77777 1% $SK1(RO) PC ;SEE IF BAD TRK/SEC INDICATOR SET :BR IF IT'S SET, DON'T INCREMENT COUNT :1S $SKI ALREADY AT MAXIMUM ? :BR IF ll S s INCREMENT $SKI ;ROUTINE TO INCREMENT $M1SPO 026076 026102 005737 001006 026112 026114 103002 005260 001336 026106 026027 000112 077777 2 026120 000207 000112 :NOTE: S$MISPO WILL NOT BE NCREMENTED BEYOND 77777 (32767.) INCMIS: TST BNE BADSEC 1% BHIS INC 1% snxsvo<ao> 1$: CMP RTS ¢SEE BR snxspo<ao> 0/7777 R INDICATOR SET DON'T INCREMENT COUNT 'S SET, %l? SMISPO ALREADY AT MAXIMUM ? IF BAD TRK/SEC S y s INCREMENT SM]SPO ;ROUTINE TO INCREMENT $TOTAL 026122 026126 005737 001006 026136 026140 026144 103002 005260 000207 001336 026130 026027 000102 077777 000102 INOTE: STOTAL WILL NOT BE INCREMENTED BEYOND 77777 (32767.) INCTOT: TST BNE BADSE( 1$ SEE If BAD TRK/SEC INDICATOR SET INCREMENT COUNT BHIS INC RTS 1 STOIAL(RO) :BR 1$: CMP SIOTAL(RO) 077777 FIT lS $TOTAL ALREADY AT MAXIMUM ? IS N s INCREMENT S$TOTAL CZRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 31 KW1l L 10 SEQ 0128 CLOCK CHECK ROUTINE 1 ?3 ;ROUTINE TO TYPE THE ELAPSED CPU RUN TIME & 026146 S 026152 005737 001446 001310 7 026162 013746 001340 6 026154 012737 8 026166 9 026172 021627 002407 11 026200 021627 10 026176 12 026204 13 026206 005237 002402 005237 000002 026222 17 026226 104401 060074 18 026230 19 026234 20 21 22 23 026240 026244 026246 026252 013746 004737 004537 000002 104401 013746 26 026256 004737 26 026266 gg 026270 000002 000207 25 026262 004537 CMP BLT 026222 033332 032546 1%: 28: 40 41 42 43 44 4S 46 47 48 026336 026342 026350 026352 926356 026362 026370 026372 026376 49 026402 50 51 52 §3 54 55 56 57 026410 026412 026416 026422 026426 026430 026436 026440 005337 001037 013737 005237 023727 103406 005037 005237 005237 005237 023727 103412 005037 005237 023727 101402 005037 012746 023727 001402 012716 004737 005737 001411 023737 002405 012737 JSR JSR ;1S CLOCK AVAILABLE :BR [F NO :ASSUME 2 DIGITS TO :PUT 'HOURS' ON THE :100. HOURS OR MORE ‘BR IF NO (SP),#1000. 11000. HOURS OR MORE ? 28 PC,$5B2D RS.FILLZ *CONVERT STYPE IT . COLON avge PC.$SBD *CONVERT TO DECIMAL MOV MINUTE ,=(SP) 0332546 JSR LWORD RS.FILLZ 2 JSR 060074 001344 TYPE MOV 032546 JSR 033332 38: 001346 001312 001344 001344 KWSVR: 001346 000074 001344 001472 001464 001342 001342 001342 001340 001340 001340 000024 001312 023417 000062 000020 064322 001470 1%: 28: 001472 001470 177777 001314 JSR PC,$SB2D MORD RTS 2 PC RS.FILLZ TYPE STACK ? “TYPE 4 DIGITS TO DECIMAL :NUMBER OF SPUT HOUR DIGITS TO TYPE 'MINUTES® ON THE STACK STYPE IT STYPE 2 DIGITS tege :PUT SECONDS ON THE STACK :CONVERT TO DECIMAL STYPE IT STYPE 2 DIGITS CLOCK INTERRUPT SERVICE ROUTINE DEC BNE MOV INC CMP BLO CLR INC INC INC CMP BLO CLR 000074 . COLON SECOND,=(SP) ? 3 DIGITS ‘BR If NO 001342 033332 TYPE :TYPE 1% 28 O :KW11 026272 026276 026300 026306 026312 026320 026322 026326 026332 INC CLKFLG 3¢ #2,2% HOUR , = ($P) (SP) _#100. 1% .MORD %3 31 32 33 34 35 36 37 38 39 T1ST BEQ MOV MOV CMP BLT INC 001750 004737 004537 000000 026222 000144 14 026212 15 026216 16 026222 $STIME: INC CMP BLOS CLR MOV CMP BEQ MOV JSR 83 BEQ CMP BLT MOV ONESEC 1% HERTZ ,ONESEC SECOND SECOND, #60. 1s SECOND INTRVL +2 CMPTM+2 ; INCREMENT THE 1/60 SECOND COUNTER :BR IF A SECOND NOT COUNTED *RESTORE THE VALUE :COUNT THE SECOND SAT MAXIMUM 2 ‘BR IF NOT :CLEAR THE SECOND'S COUNTER : COUNT SUMMARY INTERVAL COUNTER :COUNT COMPARE TIME INTERVAL COUNTER HOUR HOUR , #9999 1% HOUR #20.,-(SP) *COUNT THE MINUTE TAT MAXIMUM ? :BR IF NOT :CLEAR THE MINUTE'S COUNTER *COUNT THE HOURS TAT MAXIMUM ‘BR IF NOT *CLEAR THE HOURS :20MS ON THE STACK @ SOHWZ MINUTE MINUTE,#60. 1% MINUTE HERTZ,#50. 2 #16.,(SP) PC.RPTMR INTRVL 3g INTRVL*2,INTRVL 3$ #-1,STATIN :CPU RUNNING @ SOHZ ? ‘BR IF YES ;16MS ON THE STACK @ 60HZ :DRIVER TIMER ROUTINE :DISPLAY THE PERFORMANCE SUMMARY ? :BR IF NOT :DISPLAY INTERVAL FINISHED ? :BR IF NO :SET PERFORMANCE SUMMARY DISPLAY fLAG CZRJOAO RPO7 PERF EXER MACRO v04.00 1~JAN-83 12:06:52 PAGE 31-1 KW11 Mm10 SEQ 0129 CLOCK CHECK ROUTINE 58 026443 59 02645 88 ) 837 0002 001472 3%: ¢ L? RT INTRVL #2 :CLEAR THE PERFORMANCE INTERVAL COUNTER CIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 32 KW11 N 10 SEQ 0130 CLOCK CHECK ROUTINE 1 % ;ESTTAND DECODE ROUTINE i : MOV #1,CFLAG é 7 3 ; : : JSR RE TURN1 PC.KSR KSR: £31 8PL SAVREG MOV MOV MOV CLR DTUW KSR S 10 11 12 13 14 15 19 20 21 22 23 : 026454 026460 026462 026464 026472 026476 026504 026510 026514 026520 026524 005737 100375 1064412 012737 013704 012764 005037 040546 104401 034656 000200 040560 000040 001334 177776 000010 KSR1: 1%: RE TURN? *ROUTINE IS NORMALLY SET BY IN INTERRUPT MODE THE TTY *RETURN AFTER KEYBOARD SERVICED #PR4,PS RPADR,R4 #CLR,RPCS2(R4) CFLAG ;ANY DATA TRANSFERS UNDER WAY ‘BR IF YES ‘SAVE THE REGISTERS SSET PRIORITY TO & :GET RP/RH BASE ADDRESS :CLEAR MASSBUS CONTROLLER *CLEAR THE 'CONTROL C' FLAG TSMSWR+?2 STYPE *SWR = ° 25 026534 017746 152414 MOV 026540 26 026542 104402 004737 033430 TYPOC JSR PC,STKINT 2360 TYPE=<=OCTAL ASCIICALL DIGITS3) SINITIALIZE TTY KEYBOARD gg 026552 104401 060001 TYPE LJENTCOM :"ENTER COMMAND' RDLIN MOV ST BEQ TST BNE JMP (SP)+,RS CFLAG 2% ASNLST 13 START ;READ THE KEYBOARD *GET ADDRESS OF INPUT STRING ‘WAS (°C) TYPED? iBRIF NO_ *ANY DRIVES ASSIGNED ? ‘BR IF YES $JUMP TO START JSR INC PC,CKCLK RS :START SYSTEM CLOCK *POINT TO SECOND CHARACTER 27 026546 30 31 32 33 3, 35 gg 004737 026556 026560 026562 026566 026570 026574 026576 104411 012605 005737 001405 005737 001141 000137 38 026602 39 026606 004737 005205 40 41 42 43 LG 45 4é 47 026610 026616 026616 026622 026624 026630 026632 026636 122715 001465 122715 001410 024710 001334 001542 003522 024514 000101 000067 49 026644 S0 026652 122765 001003 000124 52 026660 000507 51 026654 53 026662 54 026670 55 026672 142715 57 026700 58 026706 177770 030030 122765 001003 006737 000106 122765 001003 000123 177777 3%: 177777 4$: 177777 S%: 027620 aSWR,=(SP) PC.CLKOFF (MPB BEQ CMPB BEQ #'T,(RS) 9% #'A,(RS) 3g BICB #%C7,(RS) JSR PC,NEWASN CMPB BHI CMPB BLO 000060 004737 56 026676 000500 28: 000124 121527 101117 121527 103514 48 026640 JSR LSCRLF PC,STIME , COMMA "BLNKS1 ? 001203 026146 056573 056537 TYPE CMPB BNE BR ‘CR-LF ‘TYPE ELAPSED TIME STYPE *,° STYPE 1 BLANK 2SAVE 9SWR FOR TYPEQUTY 2 CONTENTS OF SSHUT OFF (RS) ,#'7 12$ (R5).#'0 12% #°'T,=1(R5) 43 ‘EQ TO 'T° ‘BR [F NOT EQ 134 CEXIT #'S,-1(RS) 6% 2 AN ‘A’ IT IS NUMBER GREATER THAN AN ASCII 7 ? IT IS NUMBER LESS THAN AN ASCII 0 ? IT IS *ASSIGN DRIVE FOR TEST TEXIT (MPB BNE A 'T' INTERRUPT WHILE WAITING ‘LEAVE ONLY LOWER 3 BITS IF 13§ #°D,-1(RS) 1 PC,DROPD SWITCH REGISTER CLOCK CEQ TO TYES ;EQ TO ‘BR IF :DRIVE ‘BR IF *DRIVE ‘BR IF (MPB BNE JSR B8R SERVICE ;SYSTEM BUSY RETURN 104401 004737 104401 104401 26 026530 TYPE JSR TYPE TYPE ;*CFLAG' ‘EQ 10 'D* ? ‘BR IF NOT EQ *DRCP DRIVE ‘6Q TO °S° ‘BR IF NOT EQ CHAR NOT 'A° kw1l 8 11 SEQ 0131 CLOCK CHECK ROUTINE 59 026710 004737 027726 61 62 64 65 67 68 69 122765 001012 005737 001053 032777 001047 0064737 000127 122765 001043 004737 000122 60 026714 026716 026724 026726 026732 026734 026742 026746 70 026750 71 026752 72 026760 73 026762 000471 000453 177777 6%: 001424 000001 152212 030052 7%: 177777 8%: 177777 9%: 030040 74 026766 000444 78 027000 005737 001424 81 027006 82 027014 83 027016 84 027024 85 027026 86 027034 87 027036 88 007044 89 027046 90 027054 032777 001022 122765 001413 126527 101015 126527 103411 142765 004737 000001 152140 000101 000001 000001 000067 000001 000060 177770 030064 000001 92 027062 93 027066 94 027070 104401 000601 104401 057713 118 057756 96 027100 104413 75 026770 76 026776 79 027004 91 027060 95 027076 97 98 99 }8? 027102 027106 027114 027120 122765 001034 001026 000407 000137 005777 052777 005037 000207 000127 }8§ 111504 005037 005037 108 027140 104411 107 027136 104401 109 027142 012600 111 027150 001365 110 027144 112 027152 005737 001414 115 116 117 118 119 001006 122710 001410 122710 001403 027162 027164 027170 027172 027176 060164 001334 105710 113 027154 114 027156 001334 001426 105760 000001 000131 000116 CMPB BNE ST BNE BIT BNE JSR #°W,=1(RS) 8% RDONLY 11¢ #SW0, 37WR 11 PC,DATAPK CMPB BNE JSR #'R,-1(RS) 12% PC, KEDAPK C(MPB BNE #°W,=1(RS) 12% BNE 118 BR BR CEXIT 13§ CEXIT 13§ RDONL Y #SW0,asuR 11$ #°'A,* 5) 108 1(RS),#'7 12% 1(RS),#°'0 12% #%C7.1(RS) PC,WATPAK 128: TYPE BR TYPE ,MSWRO is INVLD 13$: RESREG 10%: 152044 BR JMP 3 BIS CLR RTS STYPE STATISTICS 13§ BIT BNE CMPB BEQ CMPB BH1 CMPB BLO BICB JSR :ROUTINE 106 027122 105 027126 106 027130 PC,SCMND 18T 026472 152054 000100 177776 JSR BR 13§ is asTke #B1T06,38TkS PS PC ‘EQ TO ‘W’ ‘BR IF NOT EQ *LOCKED IN "READ ONLY'' MODE ? ‘BR IF YES *1S SWITCH O SET ? ‘BR IF SET, CAN'T DO ‘W' COMMAND ‘WRITE DATA ‘60 TO 'R' ? ‘BR IF NOT EQ *READ DATA SEXIT *WT COMMAND ? *NO SLOCKED IN "'READ ONLY'' MODE ? ‘BR IF :TYPE 'CAN'T WRITE IN READ ONLY MODE' STRY AGAIN STYPE ‘INVALID COMMAND® MESSAGE STRY AGAIN *RESTORE RO - RS *CLEAR THE TTY BUFFER SET TTY INTERRUPT ENABLE ‘SET PRIORIT® BACK TO ZERO *RETURN TO FROCESS THE ASSIGN REQUEST ASSIGN: MOVB 1% CLR CLR TYPE ROLIN MOV (RS),Ré& CFIAG DRVPAR _MSPRM (SP)+,RO ST CFLAG 1ST8 (RO) BNE BEQ 1S18 BNE CMPB BEQ C(MPB BEQ 1% 3s 1(RO) 28 #°'Y, (RO) 43 #°'N, (RO) 3$ YES YIS SWITCH O SET ? ‘BR IF SET, CAN'T DO ‘W' COMMAND SALL DRIVES ? YES ‘GREAT THAN 7 SYES L‘SS THAN 0 YES CHOP OFF THE HIGHER BITS ASSIGN DRIVES WITH WT COMMAND (°T', 'R', OR 'Ww' COMMANDS) :PUT DRIVE # IN Ré *CLEAR CONTROL C FLAG :ASSUME CHANGING DRIVE PARAMETER s *TYPE 'CHANGE DRIVE PARAMETERS27 ‘READ THE ENTRY :SAVE ADDRESS OF 1.ESPONSE ‘WAS (“C) ‘BR IF YES ‘BR IF VES TYPED? ‘WAS RESPONSE A CARRIAG. RETURN (DEFAULT ‘WAS xv TERMINATED WITH CARRIAGE RETURN? ‘BR IF NO ‘WAS IT A *Y' RESPONSE ? ‘BR IF YES ‘WAS IT A °N® RESPONSE ? ‘BR IF YES . °N*)? — (ZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 32-1 SEQ 0132 CLOCK CHECK ROUTINE 104401 121 027204 122 027206 123 027212 00747 005237 122704 126 027220 012737 14 027216 127 128 129 130 027226 027232 027236 027240 131 027242 13¢ 027250 133 027252 134 027260 135 027262 136 027066 001426 005737 001407 123704 001004 893 3%: 050652 001450 6S: 031276 031276 {4CS50 071542 004737 000207 027364 001003 139 140 141 142 143 164 005004 012737 005737 001407 123704 001004 027320 027326 027330 027336 027340 027344 027346 027352 027354 027356 027362 012737 000413 136437 001007 004737 005204 020427 003751 000207 004737 000770 157 027364 158 027372 159 0273764 160 027400 161 027402 162 027406 163 027412 164 027414 165 027420 166 027422 167 027424 168 027430 169 02743¢ 170 027442 171 027644 172 027450 173 027452 172 027456 175 027462 136437 001056 110437 006304 016400 004737 006204 105764 001451 100443 004737 004737 032760 001461 005737 001015 104401 104401 010446 ASGN1: 001430 056761 000137 145 166 147 143 149 150 151 152 153 154 133 ’s: 012737 000407 136437 137 027270 027274 027276 027306 027310 027312 027316 060103 056652 001430 031276 1%: ASGNZ: 1%: 031276 040550 001542 027364 3%: 000007 031252 040550 001542 050654 040454 DRVPAR ‘D0 NOT CHANGE DRIVE PARAMETERS #'A,RG ASGN2 000200 STRY AGAIN SASSIGN ALL ‘BRIF YES DRIVES ? :ERROR MESSAGE ¥§DP.R4 LOA?ED FROM THIS DRIVE MOV ggoosv,nsunsc : "LOAD osvxce' MESSAGE ADDRESS BR 8118 BNE JSR RTS JMP CLR MOV 1ST MOV BR §§DP EOA?ED gnon THIS DEVICE ATABIT(R&) ,ASNLST :BR IF PC ASNERR *RETURN *EXIT ERROR PC,ASGN? SSEE *LOADED FROM THIS DEVICE X)DP,Ré& *LOADED FROM THIS DRIVE 24 #_ODEV,ASNMSG :ERROR MESSAGE ‘BR IF NO JSR PE~ASGN3 BLE R4, #7 1% RTS 43: JSR BR ASGN3: 8!8 BNE sALREADY 4y ? ASSIGNED ? N THE DRIVE ENT DRIVE # IVE CHECKED ? PC ER MESSAGE PC,ASNERR 3% :DRIVE ALREADY ASSIGNED ? ATABIT(R4G), ASNLST ASGN& R4 ,GENDPB R& ? sBR [F NO :"LOAD DEVICE' MESSAGE ADDRESC BITB INC CMP DRIVE ON THE SYSTEM XXDP 4S ATAB.T(R4), ASNLST BNE IF ;START WITH DRIVE 0 2% ? IT IS R4 $UNTASN,ASNMSG ? -onxvs ALREADY ASSIGNED ? 28 IT IS PC RECALO .GET DRIVE NUMBER +MAKE R4 WORD INDEX ;PUT BLOCK'S ADDR INTO RO ;RECALIBRATE DRIVE DRVSTA(R&) ASGN? :DRIVE AVAILABLE? ¢BR IF DRIVE OFFLINE OR NONEXISTENT BLKADR(R&) ,RO ASGN6 PC CLRDPB 030104 001203 056601 ;TYPE BAD ENTRY MESSAGE NUNTASN,ASNMSG Move ASL 002056 016720 001426 2%: BADENT is MOV TST 8EQ BEQ CMPB BNE 001430 056761 BEQ (MPB BNE 2%: 031252 TYP': BR INC CMF3 elA 120 027200 oMoy KW11 cNn PC.GETID #1LV,$RPDS (RO) ASGNS DRVPAR 1% LSCRLF ,ORVMSG R4 ,=(SP) sMAKE R4 BYTE 'NDEX :BR_If DRIVE UNSAFE :BR NO sCLEAR BLOCK FOR DRIVE JUST ASSIGNED :GEf DRIVE SERJAL NUMBER : INTERLEAVE SECTOR SET ? [F CHATGE 8RIVE PARAMETERS ? :CR=LF TVPE ‘DRIVE' :;SAVE R& FOR TYPEOUT ¢ TYPE DRIVE NUMBER [ X CIRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:50 PAGE 32-2 C2RJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 32-3 KWw1l D N SEQ 0133 CLOCK CHECK ROUTINE 027464 027466 027467 1046403 002 000 178 027500 004737 176 027470 177 027474 179 027504 180 027506 181 027512 104401 104401 006304 0OC’“37 010466 056573 056531 002056 182 027520 183 027526 113760 006204 186 027532 012737 056751 189 190 191 192 193 196 195 196 027544 027550 027552 027554 027562 027564 027572 027574 105764 001405 100010 012737 000407 0127° 000403 012737 040464 199 027606 }gg 027530 }gg 027540 }gg 027602 200 027674 030102 1$: 001566 000026 000207 000137 ASGNG: 031252 031276 JSR PL. TYPDRVY STYPE DRIVE SERIAL NUMBER MOV BLKADR(R4),NEWUNT(R4) RTS PC ASL JSR MOVB ASR , COMMA "BLNKS1 R PC,DRVPRM PACK,$PACK(RO) R4 ?vpe ', STYPE 1 BLANK ‘MAKE R4 WORD INDEX “GET THE DRIVE'S ADDRESS LIMITS ;DPB ADDRESS ;SET COMMaND INDICATOR ‘MAKE R& BYTE INDEX :RETURN MOV #NOTSAF ,ASNMSG ; 'UNSAFE® ASNERR 110 ERROR ROUTINE ASGN7: TSTB BEQ BPL MOV BR MOV BR MOV DRVIYP(R4) 1% 2% #NOTRP,ASNMSG 3¢ #NOTPRS,ASNMSG 3¢ FUNTOFF ,ASNMSG :DRIVE PRESENT? :BR [F NOT ‘BR IF DRIVE OFFLINE :ADDRESS Gr 'NOT RP0O7' MSG CEXIT -ADDRESS OF 'NOT PRESENT' MSG SEXIT -ADDRESS OF 'DRIVE OFFLINE' MESSAGE MOV ONINLEV,ASNMSG :ADDRESS OF 031276 056715 031276 1%: 000137 056607 031252 031276 2%: 3¢ 012737 056776 031276 ASGN8: 031252 ::60 TYPE==0CTAL ASCI! :iTYPE 2 DIGIT(S) *SUPPRESS LEADING ZEROS ASGN6: 056700 000137 2 0 TYPE TYPE 032770 030322 TYPOS .BYTE BYTE JMP JMP JMP ASNERR ASNERR MESSAGE ADDRESS :TO ERROR ROUTINE *NON-INTERLEAVED® 210 CRROR RCUTINE MESSAGE (IRJOAU RPO7 PERF EXER MACRO v04.00 1-JAN-B3 kW11 (LOCK CHECK ROUTINE ) % 12:06:52 PAGE 33 ;'D' COMMAND (ROUTINE TO DROP A DRIVE) 4 027620 005004 7 027632 (J1403 9 027636 12703 11 027650 1§ 027652 001417 146437 16 17 18 19 027676 027700 027702 027704 006204 005303 001410 0052064 21 22 <3 2; 027710 027716 027722 n27724 S 027622 6 027626 8 027634 012703 122715 111504 DROPD: 000010 000101 18 027660 14 027666 15 227670 20 027706 146437 006304 016464 000001 000755 012737 004737 000766 000207 0-0550 060550 001562 032020 002056 001544 031276 013746 30 027736 31 027740 32 027742 001416 111504 136414 3L 027750 gg 07756 116437 000411 060550 001542 7 027760 38 027766 39 027772 012737 004737 000413 056630 031252 031276 43 030006 44 030012 22 030016 104401 10440 104401 33 027746 40 027774 41 030000 4¢ 030002 47 030022 030022 23 030026 5% 1% ‘BR IF BEQ BI(B £ 3 ;BR ATABIT(RG) ,ASNLST MOV JSR BR RTS YES GET DRIVE NUMBER f, B8R 3%: (RS) R4 ;COUNTER :DROP ALL DRIVES ? MOV ASR DEC BEQ INC 122715 001404 105737 001410 006737 012637 000207 SCMND: 001542 000101 BEQ MOVB BIT8 BEQ 1%: 001542 2%: 024740 38: 057327 001203 05¢513 001542 MOV CMPB 040550 ATABIT(RA) AsuLsi T R3 FOR ONE DRIVE onxve ASSIGNED ? ,DELETE THE DRIVE FROM THE ASSIGN D LIST ATABIT(RL) AUTLST :DELETE DRIVE FROM AUTO ASSIGN LIS R4 MAKE ADLCR INTO A WORD INDEX BLKADR(R4) ooavs<a4) ;PUT ADDRESS IN DROP LIST R3 (s Ré ;ANY MORE DRIVES ? ‘BR IF NOT SUNTNOT ,ASNMSG PC,ASNERR 2$ PC :ADDR or *NOT ASSIGHED® MESSAGE :REPORT IT 1% 03 A"NLST,=(SP) ::PUSH ASNLST ON STA(CK 2% (RS), ATABIT(R&G), (SP) :BR [F YES ;GET DRIVE NUMBER ;IS THIS DRIVE ASSIGNED ? #'A, (RS 1 :ALL STATISTICS ? :BR NO MOVB BR ATABIT(R4) ,ASNLST 38 MoV JSR BR #UNTNOT ,ASNMSG PC,ASNERR A1 ;ADDR OF °NOT ASSIGNED® MSG :TYPE ERROR MESSAGE SEXIT TYPE TYPE TYPE LDASH13 JSCRLF JMSGCON STYPE "ececccemccaes ‘CR-LF STYPE "CONTINUING...' MOV RTS (SP) ¢ ,ASNLST PC 1518 BEQ JSR ASNLST 43 PC,STATPR :GET DRIVE ASSIGN BIT *AMY DRIVE ASSIGNED ? :BR IF NO ;TYPE ALL STATISTICS ::POP STACK INTO ASNLST ;T COMMAND (POUTINE TO TEST A DRIVE) g? 52 030030 gz 030034 BEQ #8, ,R3 #'A, (RS) :*S" COMMAND (ROUTINE TO TYPE DRIVE PERFORMANCE SUMMARY) 28 027726 027726 29 027732 :START WITH DRIVE 0 BiCB ASL MOV 43 %g Ré BITB 2%: (56630 031252 (LR MOV (MPB MOVB 10 027642 136437 040550 001542 1%: ¢ STQ 0134 005037 000137 030102 027122 NEWASN: CLR JMP ;*R* PACK ASSIGN COMMAND (RUUTINE ;SET *T' COMMAND INDICATOR ;GO TO THE ASSIGN ROUTINC TO DO SEQUENTIAL READ DATA) CZRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 33-1 kw1l F 11 SEQ 0135 CLOCK CHECK ROUTINE 56 5, 030040 58 030046 012737 000137 000001 027122 030102 g? REDAPK: MOV JMP #1,PACK ASSIGN ;SET 'R' COMMAND INDICATOR *ASSIGN THE REQUESTED DRIVE ;'W' COMMAND (ROUTINE TO DO SEQUENTIAL WRITE DATA) 62 030052 gz 030060 012737 000137 177777 027122 030102 22 DAT. PK: MOV JMP #-1,PACK ASS iGN SSET 'W' COMMAND INDICATOR *ASSIGN REQUESTED DRIVE :'WI' COMMAND (ROUTINE TO DO WRITE DATA AND TEST A DRIVE) 67 030066 68 03CN70 98 030076 116515 012737 000137 71 000000 030102 000001 177776 027122 030102 WATPAK: MOVB MOV JMP PACK: .WORD 1(RS), (RS) #-2.PACK ASS TGN 0 ;ADJUST DRIVE NUMBER ADDRESS PSET *WI' COMMAND INDICATOR “JUMP TO ASSIGN ROUTINE ; TEMPORARY STORAGE FOR COMMAND INDICATOR CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 34 kW11 6 11 SEQ 0136 (' OCK CHECK ROULTINE } ?08I1~E 3 ; MOV 2 : RE TURN 4 : g 010146 010346 010446 0°0546 14 030130 012703 030114 030120 030122 030124 15 030134 16 030136 CLRDPB: 005737 001073 010004 062704 040020 0000C2 #DPB,RO PC,CLRDPB :DPB ADDRESS 005024 162703 000002 001374 19 030144 062704 000002 21 030154 22 030156 52 030162 005024 142703 001374 000002 25 030164 062704 1%: 28 030174 29 030176 g? 030202 32 33 030204 ADD (RG) + #2,R3 1% STACK STACK STACK STACK ;RETURNING FROM POWER FAIL ? :BRANCH IF YES :GET THE DPB ADDRESS ;ADDRESS OF FIRST LOCN TO BE CLEARED :NUMBER OF LOCNS TO BE CLEARED :CLEAR LOCATIONS *SCOMND® ‘DONE CLEARING YET ? - °*$CYL' IN DPB ‘BR IF NO -SKIP OVER THE °*SREG' LOCATION 000026 ADD #<SDRVSN=-$F IRST>,R4 ;SKIP OVER 'SFIRST®, MIN/MAX ADRS 012703 (00062 MOV #<SRPCSI-SCRVSN>+2,R3 162703 001374 000002 SuB BNE #2,R3 3% 113760 001514 000024 MOVB BEGCOD, $CODE (RO’ 116160 002076 000002 MOVB COMTBL (R1),$COMNE(RO) 005024 03022° 030232 030236 030244 030252 (0256 0.)264 030272 113760 196360 013760 013760 005¢60 012760 012760 132760 22 gggggg 062760 47 030320 (LR SuB ON ON ON ON :NUMBER OF LOCNS TO BE CLEARED 36 37 38 39 40 41 42 43 030310 030312 030314 030316 #<$CYL-$COMND>+2 R3 R1 R3 R4 RS c<£~5x1-31Arus>~2 R3 013701 44 030300 MOV PWRFLG A3 RO,R4 #2 ,RG ::PUSH . ;PUSH ::PUSH ;:PUSH MOV 36 030212 35 030216 R1,=(SP) R3,-(SP) R&,=(SP) RS,=(SP) BNE 20 030150 012703 000114 26 27 030170 MOV MOV MOV MOV TST BNE MOV ADD 000012 }g 030142 4«9 JSR ‘RO = DPB ADDRESS BEFORE CALLING THE ROUTINE 9 030104 030104 030106 030110 030112 10 11 12 13 TO CLEAR THE DPB FOR THE ASSIGNED DRIVE 001403 001514 001512 000030 001516 001516 000004 000400 000001 000001 000002 2$: 3%: CLR MOV 000030 000020 000004 000022 000114 000024 000022 CLR SUB BNE " 012605 012604 012603 012601 ;CLEAR LOCATIONS 'S$DRVSN® - °*S$RPCS3' [N DPB :DONE CLEARING YET ? :BR IF NO INITIALI2E BEGCOD,RY :GET SOME OTHER LOCAT]ONS :INITIAL COMMAND CODE THE ACTUAL OP CODE ;OPERATION CODE ADD #2,85SEC(RO) BEQ 13 (SP)+,RS (SP)+,R& (SP)+ .R3 (SP)+,R1 PC IN DPB SLIMITS AND *CYL, TRK, SEC, FE1' LIMITS :NUMBER OF LOCNS TO BE CLEARED BEGPAT ,$PATTC (R0) :PATTERN CODE $PATTC(RO) ;CONVERT CODE TO A TABLE INDEX BEGWC ,SWRDL (RQ) ;BEGINNING WORD COUNT BEGW(,SWCNT(RO) ;VALUE FOR DATA TRANSFER SWCNT(RO) MAKE IT INTO 2°'S COMPLEMENT #256.,8SSEC(RO) ;INITIAL VALUE NF SECTOR SIZE #1,8PASSC(RO) ;PRESET PASS COun" TO 1 #1,3C0DE (RO) :HEADER COMMAND ? RTS sROUTINE (R4G) + ;CLEAR LOCATIONS °*S$TATUS® - *SNEXT® SDONE CLEARING YET ? ‘BR IF NO MOVB ASLB MOV MOV NEG MOV MOV B8 MOV MOV MOV MOV 000207 (RG)+ #2,R3 23 :BR IF NCT ;ADD HEADER SIZE TO SECTOR SIZE ::POP STACK INTO RS ;:POP STACK INTO R4 ;:POP STACK INTO R3 “:PCP STACK INTO R} “ TURN TO GET ADDRESS LIMITS FRuUY THE OPERATOR CIRJOAO RPQ7 PERF KW11 EXER MACRO %.064.00 1-JAN-83 12:06:52 PAGE 34-1 H 11 SEQ 0137 CLOCK CHECK ROUTINE 50 51 g% <CALL: : : §§ :RO = DPB ADDRESS BEFORE CALLING THE ROUTINE 56 030322 57 030324 010346 010446 59 60 61 62 062760 103426 016040 01692-, 58 030326 030332 030340 030342 030350 63 030356 AS 030364 66 67 68 69 70 ;; 030370 030372 030400 030402 03040€ 030412 78 050416 79 030422 80 0304264 81 030430 82 030432 83 030436 846 030440 85 030444 86 030452 87 030460 88 030466 89 030474 90 030502 04737 016000 005737 030706 000132 000150 000154 000152 001422 000134 000140 000144 000156 000136 000146 105737 001150 001074 000136 000142 005737 003071 005737 001426 g% 030514 016063 016063 016063 016063 016063 016063 104.01 004737 000150 000150 000154 000154 000152 000152 060022 031110 946 95 96 97 98 99 016003 0160064 020304 003404 010360 010460 00013¢ 000134 91 030510 030520 030524 030530 030532 030534 030540 100 030544 101 030550 102 030554 103 030556 104 030560 105 106 107 108 109 110 030564 030570 030574 030600 030602 030604 }}} 030610 001066 016403 016003 016004 020304 003404 010360 010460 016003 016004 020304 003404 010360 010460 1%: 000134 000136 000142 000140 000140 000142 000146 000144 000144 000146 JSR 2%: 3%: 4 000002 000010 000016 000024 000032 000040 R3,=(SP) R4,=(SP) PC,GETLMY ;DPB ADDRESS :CALL ROUTINE :SAVE R3 ;SAVE R4 JGET ADDRESS LIMITS BNE MOV BR CLR (LR CLR 2% :8R [F FEV1(RO) ,MINCYL(RD) 3% FINCYL (RO) sCLEAR MINTRK (RO) ;CLEAR MINSEC(RO) sCLEAR TSTB $AUTOB BNE SECLMT(RO) ,MAXSEC(RO) +LOAD MAXIMUM SECTOR TSTANY ;ARE YOU TESTING ANYWHERE ON MEDIA 2 7% YES JRESET MINIMUM CYLINDER ADDRESS MINIMUM CYLINDER MINIMUM TRACK MINIMUM SECTCR sRUNNING IN AUTO MODE :BR IF YES ? ST BGT TST BNE MOV MOV MOV MOV MOV MOV MOV CHGADR :PROGRAM STARTED AT 200 ? 7% :BR IF YES DRVPAR s CHANGE DRIVE PARAMETERS ? 7% :BR [F NO TABLE (R4) ,R3 JPARAMETER TABLE ADDRESS CYLLMT(RO),2(R3) sLOAD CYLINDER LIMIT FOR MINCYL CYLLMT(RO),10(R3) sLOAD CYLINDER LIMIT FOR MAXCYL TRKLMT(RD) ,16(R3) ;LOAD TRACK LIMIT FOR MINTRK TRKLMT(RO), 24 (R3) sLOAD TRACK LIMIT FOR MAXTRK SECLMT(RQ),32(R3) sLOAD SECTOR LIM]IT FOR MINSEC SECLMT(RO) ,40(R3) JLOAD SECTOR LIMIT FOR MAXSEC JSR PC,PARENT sGET THE DRIVE'S PARAMETERS MOV MOV (mMP BLE MOV MOV MINCY. (RO),P3 MAXCY' (RO) ,R4 R3,R4 5% R3,MAXCYL(RO) R4, MINCYL(RO) :STORE MINCYL JSTORE MAXCYL ;1S MIN. LESS :BR IF YES ;SWAP MIN. TO ;SWAP MAX. TO MOV MOV (MP BLE 6%: PC,ORVPRM o1 $FIRST(RO) sSEE IF FIRST TIME STARTED 4 ;BR IF NOT CYLLMT(RO) ,MAXCYL(RO) ;LOAD MAXIMUM CYLINDER TRKLMT(RO) ,MAXTRK(RO) :;LOAD MAXIMUM TRACK TYPE 5%: #DPB,R0 ADD 8(CS MOV MOV MOV TST 001332 061604 JSR DRVPRM: M(/ MOV 177777 001004 016060 000402 9005060 005060 005060 MOV MOV MOV MOV MOV (MP BLE MOV MOV LENTLMT MINTRK(RO) ,R3 MAXTRK(RO) ,R4 R3,R4 63 ;' ADDRESS LIMITS;® VALUE VALUE THAN OR EQUAL ;STORE MINTRK VALUE ;STORE MAXTRK VALUE 1S MIN. LESS THAN OR EQUAL ;BR IF YES ;SWAP MIN. TO MAX. JSWAP MAX. T0O MIN. ;STORE MINSEC VALUE R3,R4 7% :1S MIN. LESS THAN OR EQUAL ;BR IF YES R4, MINSEC(RO) ;SWAP MAX. R3,MAXSEC(RQ) ;STORE MAXSEC JSWAP MIN. ° T0 MAX, ? TO MAX, ? MAX. MIN. R3,MAXTRK(RO) R4 ,MINTRK(RO) MINSEC(RO) ,R3 MAXSEC(RO) ,R4 T0O MAX. VALUE TO MAX., TO MIN. CIRJOAO RPQO7 PERF EXER MACRO v04.00 1-JAN-83 12:06:52 PAG: 34-2 KW11 In SEQ 0138 CLOCK CHECK ROUTINE 114 030614 115 030620 005737 001016 001422 117 118 119 120 030630 030632 030640 050646 103003 016060 026060 103003 000156 0001364 000136 000156 016060 000150 009134 123 030656 016060 000136 000012 129 030700 012504 116 030622 026060 000136 000156 }%} 030650 127 030664 128 030672 130702 }g? 030704 116060 116060 000142 000146 000011 000010 7%: 8$%: 9%: ST BNE :ARE BR CMP MINCYL‘RO), re1<nb) MOV CYLLMT(RO) ,MAXCYL(RO) BHIS MOV CMP BHIS MOV MOVB MOVB MOV 012603 00207 TSTANY 9 MOV RTS 8% FET(RO) ,MINCYL(RO) MAXCYL (RO) ,FET(RO) 9% HINCYL(RO),SCVL(RO) MINTRK (RO) ,$TRK(R0Q) MINSEC(RO),$SEC(RO) (5P)¢+,R4 (SP)+,R3 PC B NO RESET MINIMUM CYLINDER ADDRESS ;1S HAX CYLINDER < 1ST FE CYLINDER ? ‘BR IF :RESET MAXIMUH CYLINDER ADDRESS sINITIAL CYLINDER VALUE ;INITIAL sINITIAL :;POP STACK INTO R3 :RETURN }%g : }gg ‘RO= DPB ADDRESS BE"ORE CALLING THE ROTINE 139 140 141 142 143 164 145 146 147 148 149 030706 030710 030712 030720 030726 030734 030742 030744 030752 030754 030762 030770 005001 012760 012760 012760 012760 111001 122761 001414 012760 012760 012760 031004 012601 }g? 8%?552 152 031006 GETLMT: 010146 012760 000207 001057 001060 000035 000041 000156 000150 000154 000152 000005 040464 001166 001166 000037 000156 000150 000154 000061 000152 s MOV CLR MOV MOV MOV L, MUvB CMPB BEQ MOV MOV MOV MOV MOV RTS ADDRESS LIMITS FOR THE PC,GETLMT TRACK VALUE SECTOR VALUE :;POP STACK INTO Ré& ;POEEINE JSR THE xs nxu CYLINDER < 1ST FE CYLINDER ? }g% 138 030706 TO GET YOU resrxnc ANYWHERE ON MEDIA ? IF Y CURRENT DRIVE TYPE :CALL ROUTINE R1,=(SP) ;:PUSH R1 ON STA(CK 349..SECLHT( 0) ;GET SECTOR LIMIT (SP)+,R1 ..POP STACK INTO R? R1 :START FRESH #559.,FE1(RO) ;GET ADDRESS OF 1ST FE CYLINDER #560.,CYLLMT(RN) ;ASSUME CYLINDER LIMIT FOR RPO7 #29.,TRKLMT(RO) ;ASSUME TRACK LIMIT ' #33, ,SECLMT(RO) ;ASSUME SECTOR LIMIT (RO) ,R1 :GET DRIVE NUMBER #5,0RVTIYP(R1) ;IS DRIVE AN RPQO7 ? 18 :BR [F YES #630.,FE1(;7) :GET ADDRESS OF 1ST FE CYLINDER #630.,CY. LMT(RD) ;GET CYLINDER LIMIT FOR RPQ7+¢ #31.,TRKLMT(RO) :GETY TRACK LIMIT I, PC ;RETURN J " CIRJOAD RPQ7 PERF EXER MACRO V04.00 1-JAN=-§3 12:06:52 PAGE 35 SEQ 0139 — CLOCK CHECK ROUTINE N sROUTINE TO GET THE DR] VE sTHIS NUMBERS CONTAINED IN sSERIAL NUMBER. ~NO N sCrLL: : : MOV JSR SER] AL NUMBER FROM RPSN REGISTIR & LSD'S OF T4E RE GISTER ARE ONLY THE #DPB,RO PC.GETID THE ;0PB ADDRESS s CALL ROUTINE RO,-(SP R1,=(SP R2,=(SP RS,=(SP RO,R2 ;C SgRHXX MoV (LR ROL :2PSN(R0)R s > ;sPUSH RO ON STACK :;PUSH R1 ON STACK ;sPUSH R2 ON STA(CK :;PUSH RS ON STA(K OoET INDEX TO DPB sSAVE ALL REGISTERS :FOUR DIGITS TO STORE ;ERIAL NUMBER s ZEROD sPUT THE NEXT DIGIT :INTO RS RS DRVSN(RO) > ADD move < 000060 000160 R1 % - 4 o ROL ROL ROL ROL ROL > 19: V2000 O =MW MOV « 045262 000004 000216 MOV MOV MOV MOV MOV JSR VA~ D DDRDDV DO DDD YLDV WUVNONIOWN o\ NN )— YVOVOO -~ -t “Q GETID: = (=] [=] [olele] (=4 OCOO0O0O0O0O0O [=] [ol=le] o b e (O e e e d D o oo VIS OO0O000 O RNNMNOIWVIN =2 b b b b d 2 2 O O NNOWNNV = O o [=ld=lelc JolalelalelalelelelolalalV Te Vol ¥ W ~N VIONC OV N N NN NNV OB NORSNOSOOST OO NOONIONNOOSNOO b b o o D e D o N U i U e e e e W U A A e D WA U D W D e o AN W U e b e e e e o N U U L A (A b A A A%l d ol lelolololalololalolololalelalela] QOOONNNNOIOONNNNLE L5 25 8 NNININ) —S b b b b N AN AN AN AN RO = DPB ADDRESS BEFORE CALLING THE ROUTINE =lelololelelelolelalelololelololelalolelolelelelalalelel — OOV OO NN B ANN) = OO 00 NOMVN SN PUNVINIALININININININD = cd b d d ed d e b o W KW11 JMAKE [T ASCII 2:POP STACK ;SAVE DRIVE SERIAL NUMBER D IGI7 sGET NEXT INDEX FOR DRIVE S ERIAL NUMBER JALL PIGITS TYPED? ;NO == BRAN(CH ;:POP STACK INTO R 5 INTO R 2 ::POP STACK INTO R 1 ;:POP STACK INTO R 0 JRETURN CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 36 K 1 SEQ 0140 PARAMETER ENTRY ROUTINE ! .SBTTL ; PARAMETER ENTRY ROUTINE S 6 : : 8 031110 9 031112 10 11 12 13 14 15 16 i7 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 031116 031122 031124 031126 031130 031132 031134 031136 031142 031146 031152 031156 031162 031164 031166 031172 031174 021200 031202 031204 031206 031210 031212 031214 031216 031220 031224 031230 031232 34 031234 35 031236 36 031242 37 031244 38 031246 39 031250 010346 005037 012337 001451 104401 000200 012302 012305 011546 004737 004737 104401 104401 104401 104611 012601 005737 001021 004537 031116 031246 031220 001334 031126 010215 000737 104401 162703 000732 010215 000404 005037 011603 000724 005726 000207 #ADR,R3 PC,PARENT ;PARAMETER TABLE ADDRESS :GET THE PARAMETERS PARENT: MOV (LR R3,=(SP) CFLAG :SAVE THE PARAMETER TABLE ADDRESS :CLEAR THE "CONTROL C' FLAG 28: 0 (R3)+,R2 (R3)+.RS (R3),=(SP) P(,$$82D PC,SUPRSL 18: 033332 032346 056531 056567 056531 033174 33: 060103 000006 48: 5$: 001334 MOV JSR MOV BEQ TYPE .WORD MOV MOV MOV JSR JSR TYPE TYPE TYPE RDLIN MOV TST BNE JSR ik 78 48 001334 031214 031220 031232 PARAMETER ENTRY ROUTIRE 68: 7%: 3¢ 48 5% MOV BR TYPE SUB BR MOV BR (LR MOV BR 1S RTS (R3)+,28 7S ,BLNKST QUES ,BLNKS1 (SP)¢,R1 (FLAG 68 R5,CK.DIG R2,(RS) 18 ,BADENT #6,R3 1$ RZ2,(RS) 73 CFLAG (SP),R3 18 (SP)+ PC :ADDRESS OF PARAMETER NAME :BR_IF AT END OF TABLE STYPE THE PARAMETER NAME :ADDRESS OF PARAMETER NAME TEXT :MAXIMUM PARAMETER VALUE :ADDRESS OF PARAMETER :CURRENT VALUE OF PARAMETER :CONVERT IT_TO DECIMAL STYPE IT (LEFT JUSTIFIED) STYPE THE CURRENT VALUE OF THE PANAMETER :TYPE 1 BLANK s12 STYPE 1 BLANK :READ THE KEYBOARD :INPUT ASCII STRING ADDRESS SWAS (~C) TYPED? BROIF IT WAS :CHECK THE DIGIT(S) :CARRIAGE RETURN ONLY ENTERED :PERIOD ONLY ENTERED :ILLEGAL INPUT TERMINATED WITH A CARRIAGE RETURN :TERMINATED WITH A TM'."" :TERMINATED WITH A *'. :MOVE NEW VALUE TO PARAMETER LOCATION :GET MORE PARAMETERS :*BAD ENTRY' :DECREMENT THE TABLE POINTER :TRY AGAIN INEW VALUE ZEXIT SCLEAR THE *CONTROL C' FLAG _ :RELOAD THE PARAMETER TABLE ADDRE 5S TRY AGAIN :CORRECT THE STACK POINTER SRETURN CZRJOAQ RPO7 PERF PARAI “TER ENTRY :Exonut ASSIGN/DROP ERROR MESSAGE 3 4 : MOV : RETURN : 2 7 031252 8 031256 9 031262 104401 104401 104401 10 031266 010446 031270 031272 031273 104403 002 000 11 031274 12 031276 }2 031300 001203 ASNERR: 056567 056601 JSR TYPE TYPE TYPE MOV TYPOS BYTE BYTE 104401 000000 ASNMSG: 000207 15 16 17 }g TYPE .WORD RTS #MESADR,ASNMSG PC,ASNERR ,SCRLF :ERROR MESSAGE ADDRESS ;CR=LF ,QUES .DRVMSG RN ;TYPE *DRIVE' :;TYPE DRIVE 2 0 ::G0 TYPE--OCTAL ASCII ;s TYPE 2 DIGIT(S) : : SUPPRESS LEADING ZEROS R4 ,=(SP) ;:SAVE R4 FOR TYPEOUT NUMBER sTYPE SPECIFIC MESSAGE :MESSAGE ADDRESS 0 PC :DROP DRIVE IF A FATAL ERROR OCCURS s CALL: : JSR PC,DROP : RETURN 20 031302 24 031306 25 031310 005037 005004 111004 27 031320 28 031326 29 031330 146437 006304 010064 26 031312 146437 031334 031340 031344 031350 031354 031356 104401 104401 104401 104401 006204 010446 031360 031362 031363 36 031364 gg 031370 104403 002 000 104401 000207 043460 040550 040550 DROP: 001542 Bi.2 ASL MOV 001544 0012903 057561 057616 056601 TYPE TYPE TYPE TYPE ASR MOV 001203 1$: ;ROUTINE 031372 031400 031402 031410 52 031412 gz 031416 032777 001006 023760 101002 000137 000207 000020 147554 001456 000102 031302 (LR CLR MOVB RI(B 032020 zg 41 42 63 46 SEQ 0141 ROUTINE } 30 31 32 33 34 35 LN EXER MACRO v04.00 1-JAN-§3 12:06:52 PAGE 37 TYPOS BYTE BYTE TYPE RTS <ROUTINE JMP RTS ;CLR PERMENANT ERROR FLAG :CLEAR R4 FOR DRIVE NUMBER ;MOVE DRIVE NUMBER TO R4 ATABIT(R&G) ,ASNLST ;REMOVE DRIVE FROM ASSIGNED LIST ATABIT(RG) ,AUTLST ;DELETE DRIVE FROM AUTO ASSIGN LIST Ré ;MAKE DRIVE NUMBER INTO A TABLE INDEX RO,CDRVS(R&) sPUT DRIVE IN DROP LIST JSCRLF ,DROPNG . MSGON .DRVMSG R4 R4 ,=(SP) :TYPE °*?FATAL OR EXCESSIVE ERRORS' :TYPE 'ON® :TYPE *DRIVE® :DRIVE NUMBER ::SAVE R4 FOR TYPEOUT ;s TYPE DRIVE NUMBER ::60 TYPE--0C~AL ASCII ssTYPE 2 DIGIT(S) ;s SUPPRESS LEADING 2EROS :CR=LF 2 0 LSCRLF PC TO DROP DRIVE ABNRML: BIT BNE CMP BHI 1$: PERM Ré (RO) ,R4 If ERRORS BECOMES EXCESSIVE #5W04 ,35WR ;SEE IF SWITCH & SET 1% :BR IF IT'S SET MAXER,STOTAL (RO) :CHECK TOTAL ERROR VALUE 1% :BR IF ERRORS DO NOT EXCEED MAX DROP PC TO CHECK FOR END OF :DROP THE DRIVE :RETURN PASS AND END OF TEST MmN CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 38 SEQ 0142 END OF PASS ROUTINE 1 .SBTTL T END OF PASS ROUTINE N R R R RN R P P AR P RN R R R RN R R R R AR R R RN AR NN A NN R NN IO AR OO NS 'INCREMENT THE PASS NUMBER (‘PASS) ;*]F THERES A HONXTOR 60 10 7 ;«1F THERE ISN'T JUMP TO RTURN 031420 031420 010446 031424 031430 051432 031440 031442 031450 105737 001410 136437 00111C 156437 000441 001150 031452 031460 031462 031470 031472 026037 103435 032777 001031 104401 031520 031522 031526 031532 031534 031540 031544 031552 006304 010064 105737 001062 005237 005237 042737 000452 031554 031422 031476 031502 031506 031512 031562 031564 031570 031574 031600 031604 031610 031614 031620 031624 111004 104401 104401 104401 146437 1$: 040550 032020 040550 032020 000114 001474 000020 147464 001544 001542 032777 000400 147372 004737 001203 001203 057327 057371 001203 026146 057321 057345 025042 010346 010004 062704 031644 031646 031652 03165¢ 031656 005024 162703 001374 012603 005260 012703 3$: 000036 000002 000114 R4 ,=(SP) TSTB BEQ BITB BNE BISB BR $AUTOB :RUNNING IN AUTO MODE ? $ ‘BR IF NO ATABIT(R4),AUTLST ;1S DRIVE ALREADY ASSIGNED TO AUTO LIST ? 6$ ;BR IF YES ATABIT(R4),AuTLST SADD DRIVE TO AUTC ASSIGN LIST 3¢ CMP 8LO BIT BNE TYPE $PASSC (RO) ,PASSES :SEE IF AT END OF TEST 38 :BR JF NOT #5W04 ,aSWR “TYPE END OF TEST MESSAGE (SW04=1) 38 ‘BR [F NO "$CRLF ‘CR-LF ASL MOV TSTB BNE INC INC BIC BR RO.DDRVS(RA) ASNLST 7% $DEVCT $PASS #100000,$PASS 7% MOVB BIT 5% (R) ,R4 :SAVE R& :MOVE DRIVE NUMBER ? $CRLF *CR-LF ‘DASH13 (TYPE '=enemmconeees ' ‘MSGEOT STYPE "END OF TESTeeececmcccccccaaa- EOT* ATABIT(R&) ASNLST ;DELETE DRIVE FROM ASSIGNED LIST #SWO08,aSWR :MAKE DRIVE NUMBER INTO TABLE INDEX *PUT BLOCK ADDRESS INTO onop LIST ‘ALL DRIVES ARE DROPPED ? ‘BR IF NO *INCREMENT DEVICE COUNT *INCREMENT THE PASS COUNT :AVOID NEGATIVE NUMBER ;INHIBIT END OF PASS TYPEOUT (SW08=1) ? BNE TYPE TYPE TYPE TYPE TYPE JSR TYPE TYPE 4% ,$CRLF "$CRLF ‘DASH13 “MSGEOP "$CRLF PC.STIME ,DASH5 "MSGSUM ‘BR IF YES S CR-LF ‘CR-LF STYPE 'eeecccccacacs ' STYPE 'END OF PASS® *CR-LF :TYPE ELAPSED TIME STYPE ‘ee==e STYPE *SUMMARY' MOV MOV ADD R3,=(SP) RO. R4 #SRDPAS R4 : SAVE R3 *DRIVE'S BLOCK ADDRESS *ADD THE STARTING ADDR OF CLR SUB BNE MOV INC (R4 0, ns 5 (SP)+,R3 $PASSC (RO) :CLEAR LOCATIONS *SRDPAS® = *SOPERC' *DONE CLEARING YET ? :BR IF NO *RESTORE R3 L INCREMENT THE PASS COUNT JSR 4%: 000016 MOV TYPE TYPE TYPE BI(B 001542 001216 001022 104401 104401 104401 104401 104401 004737 104401 104401 2%: 001203 001203 057327 057417 040550 001216 001214 100000 031630 031632 031636 031640 $EOP: MOV PC,ONESUM *TYPE ONE DRIVE SUMMARY l<SOPERC-SRDPAS>02 R3 SECTIONS TO CLEAR :NUMBER OF LOCNS TO BE CLEARED IN DPB CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 38-1 END OF PASS ROUTINE 031662 105737 031666 031670 031676 031700 031702 001404 023737 001402 012604 000207 031704 031710 031712 021716 031722 031730 031732 031734¢ 031736 031740 031742 031744 031750 031752 031754 031756 031760 031762 031764 031764 ) 031766 005237 001375 005237 005237 042737 005327 000001 003013 012737 000001 031732 013700 001405 000005 004710 000240 000240 000240 3 031770 005037 S 032000 6 032004 005237 004737 & 031774 7 03?010 g 032014 }? 032020 001150 001542 032020 001216 001214 100000 000042 $GET42: $ENDAD: $DOAGN: $RINAD: 17777¢ 012706 001100 004737 024514 RTURN: 001212 033430 000000 $AUTOB ;RUNNING IN AUTO MODE ? INC BNE INC INC BIC DEC ,WORD 86T Mov ,WORD $SEOPCT MOV BEQ RESET JSR NOP NOP NOP AUTLST 8% $DEVCT $PASS #100000,8PASS (PC) e 1 $DOAGN (PCY+ ,a(P(C) 1 ;CLEAR AUTO ASSIGN LIST FOR NEXT PASS AND :WAIT FOR TTY s INCREMENT DEVICE COUNT ::INCREMENT THE PASS NUMRER :;DON'T ALLOW A NEG. NUMBER +:LO0P? aNe? RO $DOAGN :2GET MONITOR ADDRESS J:BRANCH IF NO MON]ITOR ::CLEAR THE WORLD ::G0 TO MONITOR ;s SAVE ROOM ::FOR ssACTI JMP .WORD a(PC)e RTURN : :RETURN PS ;SET PRIORITY T0 O $TESTIN PC,STKINT ; INCREMENT THE TEST NUMBER [N THE MA]IL BOX :MAKE SURE KEYBOARD INTERRUPT AND JMP MAIN JRETURN TO LOOP .WORD 0 (LR MOV JSR AUTLST: SEQ 0143 15718 BEQ (MP 8EQ MOV RTS INC JSR 006340 7% ASNLST AUTLST 8% (SP)+,R4 PC PC,(RD) #STACK,SP PC,CKCLX :BR [F NO JHAVE ALL DRIVES COMPLETED PASS [N AUTO MODE ? ;BR IF YES ;sRESTORE R4 ;:RETURN S YES JsRESTORE COUNTER JRESTORE STACK JSYSTEM CLOCK ARE STILL ON. JAUTO ASSIGN LIST (USED IN AUTO RUN MODE® :QRUTINE TO GET THE REMAINDER OF THE RANDOM NUMBER JCALL: : MOV NUMBER,RS :DIVISOR INTO RS ; JSR PC,GETREM : RE TURN JREMAINDER IS IN RS ;? 22 032040 23 032042 gg 032044 001214 $ENDCT: 14 15 20 032032 21 032034 8$: $EUPCT: }% 18 032022 19 032026 032020 7%: 000137 031770 000137 6$: N 11 013746 013746 010546 004737 012605 005726 037226 037224 GETREM: MOV MOV MCv JSR 032046 MOV 1S71 000207 RTS SLONUM,-(SP) SHINUM,=(SP) :STORE RANDOM NUMBER ON THE :UPPER PART (SP)+,RS (SP)+ JPUT THE REMAINDER INTO RS JADJUST THE STACK POINTER RS,=(SP) PC,8DIV PC STACK FOR DIVIDE :PUT THE DIVISOR ONTO THE STA(K :DIVIDE THE RANDOM NUMBERS 59 LSBTTL INTEGER DIVIDE ROUTINE 28 .'."'.."'.'...."."'.'."'."'...'...'.'.l...."'."""."'.... 29 ;oTh]S ROUTINE WILL DIVIDE A 32-BIT TWO'S COMPLEMENT INTEGER — PR ¥ FY PR PR FE FR PR FE IE IR FE TN SEQ 0144 «DIVIDEND BY A 16=BIT TWO'S COMPLEMENT INTEGER DIVISOR GIVING . ::THE HIGH DIVIDEND MUST BE < 1/2 *A 16=BIT TW0'S COMPLEMENT INTEGER QUOTIENT AND A 16-BIT REMAINDER. *DIVISION WILL BE PERFORMED SO THAT THE REMAINDER IS OF THE :EQTE SIGN AS THE DIVIDEND. " MoV . . ' OW DIVIDEND,=(SP) MOV MOV . HIGH DIVIDEND,=(SP) DIVISOR,=(SP) JSR . RETURN *2AS LARGE AS THE DIVISOR PC,SDIV :;QUOTIENT & REMAINDER ARE ON THE STACK * . STACK » 0P |I . T T T T +2 * NO ERROR OVERFLOW REMAINDER AL Y T T YT Y O T QUOTIENT T Y Y T Y DIVIDE BY ZERO A T ZEROS Y Y Y T T YT Y ALL ONES ALL ZERDS ALl ONES t 63 000026 $DIv: 03217 00003 00v03 TH'S ROUTINE WILL LINK TO THE DIVISION SUBROUTINE SAVREG MOV CLR MOV 000030 000032 SE 2 :SI0RE RO - RS :DIVISOR 26(SP) RS :OTHER DIVISOR WORD JUPPER DIVIDEND UORD Etz g? ;CLEAR OTHER DIVIDEND REGISTERS JSR Mov PC,M.DPID R1.30(SP) R3,32(SP) :?g P? )+,(SP) MOV RESREG .SBTTL (°'M.DPID®). 30(SP) R2 MOV NOO OO =2000000000 = O=O0O==000==0=0 OB OO B NNOONWVON NS W= NOO OO TM O b OONOOOOOO— NOWOONN=20OWNI S WD OOV OSINOOMNION SO0 *NOTE: [elelelololololelelelolels) [o Yo Yo IV, IV IV TV IV IV TV IV TV IV ¥ ) N =2 OO NONSWNI=0O0 48 NN LN U W U NN AN AN (N AN N NINLRLALNINININI NN NI NN Zr~ Mo — B 12 RPO7 PERF EXER MACRO V04.00 1=JAN=83 12:06:52 FAGE 38-¢ DIVIDE ROUTINE 32(SP),‘R3 :LOWER DIVIDENDW ;G0 TO THE DIVIDE ROUTINE JREMAINDER ON THE STACK :QUOTIENT ON THE STACK sRESTORE RO - RS :MOVE RETURN UP THE STACK DOUBLE DIVIDE ROUTINE 2223222222202 222R2RX20220RR2R2RRRRRRRRRR R R RRRRRRRRD DR Q) s*THIS ROUTINE UILL DIVIDE A 32-BIT TW0'S COMPLEMENT INTEGER :*DIVIDEND BY A 32-BIT TWO'S COMPLEMENT INTEGER DIVISOR GIVING s*A 16=-BIT TW0'S COMPLEMENT INTEGER QUOTIENT AND A 32-BIT REM"INDER. ;*DIVISION WILL BE PERFORMED SO THAT THE REMAINDER 1S OF THE ;*SAME SIGN AS THE DIVIDEND. "CALL: * * * * . MOV LOW DIVIDEND.,-(SP) JSR RETURN PC,$0BDI1V MOV MOV MOV ssTHE HIGH DIVIDEND MUST BE < 1/2 HIGH DIVIDENY,=-(SP) LOW DIVISOR,~(SP) HIGH DIVISOR,=(SP) :AS LARGE AS THE DIVISOR ssQUOTIENT & REMAINDER ARE ON THE STACK * * STACK NO ERROR * T10P REMAINDER ALL ZEROS ALL ONES (MSD) * * QUOTIENT ALL ALL ONES +2 REMAINDER |23 SOoeeoeoe® ALL ZEROS ZEROS 8820322 DIVIDE BY ZERO ceooes v eoeseemen OVERFLOW || S Oosoocseoeseoces ALL ONES (LSD) * |J seNOTE: THIS ROUTINE WILL LINK TO TAE DIVISION SUBROUTINE (*M.DPID'). €12 (ZRJOAO RPO7 PERF EXER MACRO v04.00 1-JAN-83 12: 06:52 PAGE 38-3 SEQ 0145 DOt'BLE DIVIDE ROUTINE 87 88 032114 59 032116 92 032132 93 032136 104412 016604 016605 016602 016603 005000 95 96 97 98 99 004737 010066 010166 010366 104413 90 032122 91 032106 94 032140 032142 032146 032152 032156 032162 100 032164 101 032166 102 103 104 105 106 107 108 109 110 mm 112 113 114 115 $DBDIV: LAVREG Mov MOV MOV MoV CLR CLR JSR 005001 MOV MOv MOV RESREG MOV RTS 012616 000207 LSBTTL ;CALL: ;STORE RO = RS 260(SP) Ry +HIGH DIVISOR WORD 30(SP) RS 32(5P) ,R2 34(SP) ,R3 ;LOW DIVISOR WORD ;UPPER DIVIDEND WORD ;LOWER DIVIDEND WORD :? +CLEAR OTHER DIVIDEND REGISTERS PC,M.OPID RO, 30(SP) R1,32(SP) ¢G) TO THE DIVIDE ROUTINE ;REMAINDER ON THE STACK (M5D) JREMAINDER ON THE STACK (LSD’ R3,34(5P) ;QUOTIENT ON THE STA(K sRESTORE RO - RS é%P)’.(SP) ;MOVE RETURN UP THE STA(K DOUBLE PRECISION DIVISION SUBROUTINE JSR PC.M.DPID = RO=-R1-R2-R3 (RO=MSD) DIVID EN DIVIS OR = R4G=-RS (R4=MSD) *RETURN REMAINDER AFTER D IVISIO N = RO=-R1 (RO=MSD) QUOTIENT AFTER DI VISION = R2-R3 (R2=MSD) 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 032170 032174 032176 032200 032204 032206 022212 032214 032216 032222 032224 032226 032230 032232 032234 032236 032240 012746 010446 010546 005466 005416 005666 061601 005500 066600 103445 005046 006103 006102 006101 006100 005716 G01410 134 135 136 137 138 139 140 141 142 143 032246 032250 032252 032254 032:60 032262 032264 032266 032270 032272 066601 005500 005516 066600 000404 060501 005500 005516 060400 005516 133 032242 005016 000040 M.DPID: 000002 000002 MOV MOV MoV NEG NEG SB( ADD ADC ADD 000002 M.DP4LO: ROL ROL ROL ROL TST ADD ?S P) :IF CARRY THEN OVERFLOW HAS OCCURRED P) STHIS IS A LONGER LASTING CARRY BIT P STEST "'CARRY'' INDICATOR $p *CLEAR UP FOR NEXT TIME _DP41 “1F NO "“CARRY'' THEN ADD ELSE SUBTRACT (SP) ,Ri 0 .DP4L? §,R1 0 ash STA(K ;PERFORM THE INITIAL SUBTRA(CTION RO Psb asP M.DP4L2: +FORM NEGATIVE sVERSION OF THE DIVISOR (SP) SP,R1 (SP) M.DP4Y: sLOW ORDER DIVISOR TO THE 2(SP) SP SP 000004 sCOUNTER FOR DIVISION CYCLES sHIGH ORDER RS,=(SP) BCS CLR BEQ CLR 000002 #40,=(SP) R&,-(SP) s - ;1 RO’ ¢~ I ;ADD =(DIVISOR) SSET "CARRY' ;ADC +(DIVISOR) SET ''CARRY" <SET ''CARRY"’ D 12 CIR ‘A0 RPO? PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 38-4 SEQ 0146 OOUBLE PRECIS [} N OIVISION SUBROUTINE v (g-7] 2<0a opQ4AOo Owo—[4(+S —[Ve] —O—opafidduwxdwxadna v>~ ZOo@e~>-Wwl = oIo o()-=] 2—_o—x_—r¥nEoXa o3OOS0NIOlVM0WITIWNIeOlN0ITOoNOlI0oOlI0OMOoOO0NlROoT=lO0=VDo=OOlIVNoTCOOlMVoOOVlINOeOIlVTLW-OlT~O* ——oNOMNO [ ( o = ] [ o = ] L o l ( o = ] )[elolelelelelslolelololololelololeLalbalbalalabalalalalunlbalbalbaNlbalalalalalOAISNVO(Lalalllllllil1lalalalalal ][Joeloleloelololfoelolels SOUPT=VOMNIO .—a1O>W2F0rVEUnVNAOaW>OWT N o N - o vVvo ATy smenen OVNIOONOOOMONO N NN o[=[8a ]v A[} S CwnDOax -4 4 o[+ E 12 CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12: 06 52 PAGE 39 SUPRS = TYPE ASC1Z, REPLACE LEADING 0°'S WITH BLAN 1 .SBTTL SUPRS - TYPE ASCIZ, SEQ 0147 REPLACE LEADING 0°'S WITH BLANKS % .SBTTL. l. ;:t'ttt'ttt't'tt"t"'t't"""'""i.t"tttltt".".'."""'Q" 5 sCALL: g : é : 9 }? 010046 14 032354 005037 13 032350 016500 }2 032360 000405 17 032362 18 032364 19 032370 010046 016600 010037 20 032374 21 032374 22 032376 23 032400 24 032404 25 032406 26 032412 ¢/ 032416 28 032416 29 032422 30 032426 31 032430 32 33 3, 35 36 MOV #NUMADR,-(SP) :FIRST ADDRESS OF ASCIZ STRING : MOV #NUMADR,-(SP) :F[RST ADDRESS OF SUPRSL: MOV RO,=-(SP) ;SAVE RO oR ; 12 032346 032434 032436 032440 032442 032444 105710 001406 122710 001006 1127:/¢v 000770 005300 112710 005737 001002 010037 104401 000000 012600 012616 005207 000004 0326436 000004 032436 SUPRS: SUPR1: 18: 000040 032436 032436 JSR JSR 3$: 48: SUPR2: PC.SUPRSL 4($P) RO BR SUPR1 SUPR2 ASCIZ STRING “GET FOINTER TO MESSAGE MOV MOV MOV RO,={SP) 4($P) RO RO, SUPR2 :SAVF RO SGET POINTER TO MESSAGE ‘GET POINTER FOR TYPING 1ST8 BEQ CMPB BNE (RO) 28 #°'0,(RO) 3¢ ;TEST FOR TERMINATOR YES lS THIS A '0'* ? BR DEC MOVBE 1% RO #°0,(RO) 'NEXT CHAR. BACKUP 1 *MAKE IT 0" MOvB 2%: PC,SUPRS MOV CLR 000060 000060 SUPRSL =TYPE ASCIZ. LEFT JUSTIFY ST BNE MOV TYPE .WORD MOV MOV RTS #40,(R0O)* REPLACE IT WilH A ''BLANK' SUPR? LEFT JUSTIFY 2 i RO, SUPR2 O (SP)+,RO (SP)+,(SP) PC ves ;RESTORE RO ;RESTORE STA(K . F 12 CIRJOAD RPO7 PERF EXER MACRO v0Q4.00 1 -JAN=-83 12:06:52 P*GE 40 ASCIZ, REPLACE .SBITL SBTTL = TYPE ASCIZ, REPLACE LEADING 0 S WITH BLANKS SSUPRL = TYPE ASCIZ, LE/T JUSTI t'"t'.'l".'"""""""""'.l""t"""""l"""."'"' THIS ROUTINE 1S SAME AS ‘'SUPRSL' AND SUPRS' EXCEPT THAT |T b ;WILL SUPPRESS THE ERROR TYPEOUT IF SwW13=1, THIS IS ACCOMPLISHED 8Y {USING THE TRAP CALL 'DISPLY®, INSTEAD OF ‘TYPE'. :CALL: : MOV NNUMADR,-(SP) :FIRS) : MOV #NUMADR,-(SP) :FIRST ADDRESS OF RO,=(SP) :SAVE RO JSR b b : O0O0O0O OO0 OVOrOoO SO0 Oo OWoOsr nNOO $SUPRL: MOV O000 = OO0 OO0 WOH ~NOON JSR $SUPRS: MOV QOO0 =000 —=0O0~0~=0~ O =000 —=200~00—-0NO00O OO SO = VNNOVION =N =N NOOOPOONNWNNONESEN O=OO = WNOW=ONNO=O = NOOOH NVNOOOOOCOOO S NOOSOONIONS IO O o AW N VWA ) 85 8 B NNANTNIN) =2 b 2 O OO ~ olelelelolelalelolelelololalolelelelelo BNol wliy Lo b b 2 b —b NNI = OO 00 NV RO AU PO PNO RO NI NI N =2 OO 00NV NN AN AN £ NN N AN AN N OO0 NO NN SEQ 0148 LEADING O'S WITH BLANKS S NN = OO 00 NN S in) — = TYPE 18: MOV CLR BR CSUPRT U : 000060 032536 1ST8 28: 38: 48 $SUPR2: PC,$SUPRL 4($P) $SUTRD RO STRING ASCIZ STRING TG MESSAGE :SAVE R (RO) :TEST FOR TERMINATOR 4($P) RO RO, $SUPR2 MOVB BR DEC #40, (RO)+ 1 RO #'0,(RO) $SUPR? 4 RO, $SUPR2 .WORD O MOV RTS (SP)+. PC MOV 1GET POINTER ASCIZ RO,=(SP) 28 #'0, (RO) MOVE ST BNE MOV DISPLY ADDRESS OF $SUPR1 BEQ gn:e N 000040 000060 032536 MOV MOV PC,$SUPRS (SP)+,RO (SP) ‘GET POINTER TO MESSAGE *GET POINTER FOR TYPING YES 13 THIS A *'0"* 2 ‘REPLACE IT WITH A "BLANK'' 'NEXT CHAR. *BACKUP 1 ‘MAKE IT ''0* TLEFT JUSTIFY ? *NO YES STYPE, UNLESS SW13=1 :RESTORE RO *RESTORE STACK 6 12 CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 41 SEQ 0149 $SUPRL = TYPE ASCIZ, LEFT JUSTIFY } RofIlNE 3 : 4 2 : : 7 : 8 18 : : }1 032546 005237 032654 14 15 16 17 18 19 032554 032560 032564 032566 032572 032574 016600 005737 001014 122710 001004 112710 000004 032654 1% 032552 0109046 20 21 22 23 24 25 26 27 28 oR 032600 032602 032604 032606 032610 032612 032616 032622 032624 005200 000771 105710 001003 005300 112710 016600 105720 001376 29 032626 30 032630 005300 162500 32 T 34 35 36 gg 032036 032640 032642 032644 (32646 032652 104401 000000 012600 012616 005037 000205 zg 032654 000000 31 032632 010037 000060 MOV #ADR =(SP) ;ADDRESS OF NUMBER (IN ASCII) MOV #ADR,~(SP) :ADDRESS OF JSR .WORD JSR .WORD FILLZ: INC REPLZ: MOV MOV ST BNE CMPB BNE Move 1%: 000040 INC BR 1518 BNE DEC MOVB MOV 1578 BNE DEC SUB 2s: 000060 000004 TO REPLACE LEADING ZEROS IN A NUMERIC STRING WITH SPACES 3% 4%: 032640 MOV TYPE .WORD MOV MOV CLR RTS 5¢: 032654 FILLO: .WORD RS,REPLZ N RS,FILLY N ‘REPLACE PRECEDING ZEROS WITH BLANKS ;'N' IS NUMBER OF DIGITS TO BE TYPED JLEAVE ZERQ'S 4(SP),RO FILLO 3% #'0, (RO) s #40, (RO) *ADDRESS OF NUMBER TO RO sLEAVE PRECEDING ZFROS ? ‘BR IF YES *BYTE EQUAL TO ASCII '0° ? BR IF NOT :REPLACE THE ZERO WITH A SPACE RO,~(SP) RO 1% (RO) 3% RO #'0,(RO) 4(SP),RO (RO)+ 49 ; INCREMENT THE BYTE ADDRESS :G0 BACK AND LOOK FOR MORE LEADING ZEROS :SEE IF ZERO BYTE TERMINATOR :BR IF NOT :BACKUP STRING POINTER :PUT A 2ERO BACK IN ;PUT ADDRESS OF FIRST CHARACTER ON STACK :SEE IF ZERO BYTE TERMINATOR :BR IF NOT RO (RS)+,R0 :BACKUP STRING POINTER ;ADJUST ADDRESS RO,S5% :GET ADDRESS FOR TYPEOUT (SPY+,RO (SP)+, (SP) FILLO RS :TYPE THE NUMBER SADDRESS OF NUMBER 1:POP STACK INTO RO ;RESTORE STA(CK TRESET FILL FLAG ;RETURN O :IF O IS SAME AS °‘REPLZ' 22 gifo TRAP CALL 'ODISPLY', INSTEAD OF *WILL SUPPRESS THE ERROR TYPEOUT 45 ; 2; : 46 49 50 g; AND [F SET, LEAVE PRECEDING 2ERQS FOR TYPE 'FILLZ' SW13=1, °TYPE'. EXCEPT THAT |7 THIS ACCOMPLISHED BY MOV #,DR,-(SP) ;ADDRESS OF NUMBER (IN ASCIID) .WORD N ;*N* : ; MOV JSR #ADR,=(SP) RS,$FILLZ ;ADDRESS OF NUMBER (IN ASCII) s TYPE PRECEDING ZERQS INC FILLO ;LEAVE ZERO'S RO,=(SP) 4(SP) RO FILLO :SAVE RO SADDRESS OF NUMBER T0 RO TLEAVE PRECENING ZEROS ? : oR : JSR .WORD gz 032656 005237 032654 $FILLZ: 58 032662 56 032664 57 032670 010046 016600 005737 000004 032654 $R{PLZ: MOV MOV K3 RS,$REPLZ N TYPED :SAVE RO ;THIS ROUTINE LL: (IN ASCII) FILLO A 62 NUMBER ;TYPE PRECEDING ZEROS :*N' IS NUMBER OF DIGITS TO BE REPLACE PRECEDING ZEROS WITH BLANKS IS NUMBER OF DIGITS TO BE TYPED SN' IS NUMBER OF DIGITS TO BE TYPED H 12 CIRJOAQ RPN7 PERF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE &1-1 $SUPRL = TYPE ASCIZ, LEFT 58 032674 001014 60 032702 61 032706 62 032710 001004 112710 005200 64 032714 105710 59 032676 63 032712 65 66 67 68 69 70 71 72 73 74 75 76 77 78 032716 032720 032722 032726 022732 032736 032736 032740 032742 032746 032750 032752 032756 032756 gg 032762 122710 000060 001376 005300 162500 010037 104414 BNE MOVB INC 000060 000004 TSTB BNE DEC MOVBE MOV TSTB 38 48 BNE DEC SUB MOV DISPLY 032750 5¢: 3 #'0, (RO) B8R 2%: 000000 000205 (MPB 000040 012600 012616 005037 BNE 18: 000771 001003 005300 112710 016600 105720 SEQ 0150 JUSTIFY 28 #40, (RO) RO 1% 3¢ RO #°0, (RO) 4(SP},RO (RO)+ ‘?2“{’“5 CALL: s 93 3§ ) 0 MOV CLR (SP)+ (SP) FILLO RTS g} 48 RO (R§)+, RO,5$ .WORD MOV 0326564 (RO) T0 TYPE (SP)+,R0 RS THE DRIVE :BR IF YES ‘BYTE EQUAL TO ASCII *0' 2 ‘BR [F NOT ‘REPLACE THE ZERO WITH A SPACE *INCREMENT THE BYTE ADDRESS 160 BACK AND LOOK FOR MORE LEADING ZEROS *SEE 1r 2ERO BYTE TERMINATOR ‘BR IF NOT BACKUP STRING POINTER ‘PUT A ZERO BACK IN *PUT ADDRESS OF FIRST CHARACTER ON STACK *SEE IF ZERO BYTE TERMINATOR ‘8R IF NOT *BACKUP STRING POINTER *ADJUST ADDRESS *GET ADDRESS FOR TYPEQUT STYPE, UNLESS SW13=1 *ADDRESS OF 1.POP STACK NUMBER INTO RO ‘RESTORE STACK ‘RESET FILL FLAG *RETURN SERIAL NUMBER [N DECIMAL : P MOV JSR #DPB,RO PC.TYDRV ;ADDRESS OF DRIVE PARAMETER BLOCK TCALL ROUTINE 96 : MOV #DPB,RO ;ADDRESS OF 183 ‘RO = DPB ADDRESS BEFORE CALLING THE ROUTINE gg 101 102 103 104 : 032764 032770 032774 033000 105 033006 106 033010 107 033012 }83 033016 1064401 104401 010037 062737 104401 000000 104401 000207 060152 057052 033010 000160 JSR TYDRV: TYPDRV: TYPE TYPE MOV ADD 033010 TYPE WORD TYPE 1$: 057711 RTS }}? ?ouvxus 112 : ng : 13 116 117 118 119 120 : 033020 033026 033030 033034 033040 }g; 03304¢ 123 124 AlLL 032777 001004 005037 000137 062716 000002 020000 177776 035652 000002 146126 PC, TYPDRV ,DRVSN .MSGPG RO,1$ #EDRVSN,1$ O .PERIOD BC ;TYPE DRV S/N: ° ‘TYPE PG’ *ADDRESS OF DPB “INDEX TO DRIVE SERIAL NUMBER *TYPE THE DRIVE SERIAL NUMBER :ADDRESS OF DRIVE SERIAL NUMBER FIELD TTYPE *RETURN’ 10 TYPE ERRORS DISPLY ;MUST DEFINED IN ‘TRAP' TABLE MESADR *ADDRESS OF RETURN $DSPLY: BIT BNE CLR JMP 1$: ADD RT] #B1113,35WR 18 arps $TYPE #2,(5P) CHARACTER MESSAGE :INHIBIT ERROR TYPEOUT ‘8R IF YES *SET PRIORITY TO ZERO STYPE THE MESSAGE P INCREMENT THE RETURN *RETURN STHIS ROUTINE IS USED TO CHECK IF A TASCI] DRIVE PARAMEER BLOCK *CALL ROUTINE(WITH NO HEADER MESSAGE) IS A DIGIT BETWEEN O AND 7 ? - TYPE ASCIZ, LEFT sCALL 6 7 : MOV : RE TURN1 : 8 9 ? S 033060 6 033062 1010064 111102 & 033054 7 033064 8 033070 8 033072 000060 121127 000067 042702 177770 005725 000205 CK.0CT: ASCII *CHARACTER [S NOT BETWEEN 0-7 :CHARACTER IS S0CTAL DIGIT IN R2 AS A :LESS THAN ZERO? SYES == BRANCH BH] MOVB 1% (R1),R2 :YES == BRANCH :GET THE CHARACTER (R1),#'7 BIC #AC7.R ST RTS ;T IS ROUTINE i : MOV 6 ; RE TURN1 ‘GREATER THAN SEVEN? ‘STRIP AWAY (RS)+ RS CMARACTER :CHECK THE CHARACTER (R1),#'0 1$ 1 THE ASC!I *ADJUST FOR RETURN *RETURN IS USED TO CHECK AN ASCII CHARACTER :éggLoereanxne 1F 1T 1S A DIGIT BETWEEN O AND 6. S ; 7 N g 0 1 2 3 ;ADDRESS OF (MPB 8LO CMPB 1$: ¢ RS,C(K.0OCT RE TURN2 ; 121127 103407 #ADR,R1 JSR : 2 033046 3 033052 SEQ 0151 JUSTIFY b) COMNNNNNNNNNNOOOCOOOPOIPOOVNVNVWNWVWNMWMIWVIWNWWNES S NI NS NG ~ 85 B UNNIUNAN NN NN NN AN Cc> Ve [Vl] 0 RPO7 PERF EXER MACRO V04.00 1-JAN=83 *2:06:52 PAGE 41-2 : 033074 033100 033102 033106 121127 103407 121127 1010064 000060 S 033112 ¢ 033116 g 033120 042702 005725 000205 000060 & 033110 111102 000071 4 6 7 000054 6 033134 121127 001413 121127 8 033142 0 033150 1 033154 ;R (R1), 1% 0 CMPB BH] (R1),#'9 1$ 8IC 13 RTS #'0,R2 (RS)+ RS (R1),R2 *GET THE CHARACTER ‘STRIP AWAY THE ASCI! *ADJUST FOR RETURN *RETURN CHARACTER T0 RETURN ADR? SCARRIAGE RETURN * ADR& SPERIOD * RETURN RETURN RETURN RETURN RETURN (K.CHR: TSTB BEQ ADR1 ADR3 ADRS ADR6 (R1) {3 000056 004537 033074 JSR RS,CK.DEC 004537 033046 005725 = DIGIT :LESS THAN ZERO? :YES -- BRANCH *GREATER THAN NINE? :YES == BRANCH CHECK AN ASCII IS. (R1),#', 2% (R1),#°. 000410 :NOT BETWEEN O AND 9 JRETWEEN O AND 9 CMPB BEQ CMPB 001407 CHARACTER ; : : 105711 ASCII CHARACTER ;ADDRESS OF ASCI1 CHARACTER *CHECK CHARACTER : 001417 THE #ADR,R1 RS,CK.CHR : 9 ? :CHECK MoV JSR ; 8 9 033146 CMPB BLO ;ADDRESS OF : : : 5 7 033140 RS,CK.DEC :THIS ROUTINE WILL ;girenn1~s WHAT IT :CALL 2 3 & 033126 5 033132 #ADR,R1 RETURNZ MOVB 1%: 9 ? 2 033122 3 033124 CK.DEC: JSR BEQ 1$ BR X 1s1 (RE)+ JSR RS, (K.0OCT *UNKNOWN CHARACTER :COMMA * (R1)=ADR+1 (R1)=ADR+1 (R1)=ADR+1 ‘DIGIT BETWEEN O AND 7. :DIGIT BETWEEN 8 AND 9. ‘R2 = DIGIT & (R1)=ADR#1 :"'CARRIAGE RETURN''? :YES == BRANCH LU 'COMMA**? SYES == BRAN.H S“PERIOD'" :YES == BRANCH SDIGIT" :NO == BRANCH T0CTAL ? ‘DIGIT BETWEEN 8-9 CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 41-3 $SUPRL = TYPE ASCI., LEFT JUSTIFY 182 033156 183 033160 184 033162 005725 005725 005725 185 033164 186 033166 005725 00520 }gg 033172 000205 187 033170 1%: 2%: 3% 011505 4% 190 187 (R5)+ (RS)+ (RS5)+ TST INC (RS)+ R1 RTS RS MOV ;THIS ROUTINE }g; (RS),RS CHECKS AN ASCII SEQ 0152 .DIGIT BEIUEEN 0-7 ; PER10D : COMMA :CARRIAGE RETURN ;MOVE POINTER TO NEXT CHARACTER sUNKNOWN CHARACTER :RETURN STRING FOR LEGAL ;EZCEACTERS AND FORMS A DECIMAL VALUE BINARY NUMBER 193 194 195 196 197 198 199 200 : MOV : RETURN ; ; : : : : : 585 203 033174 204 033176 205 033200 206 033202 207 033204 208 033206 209 033210 033214 033216 033220 033222 033224 033226 210 033230 211 033234 212 033236 213 033240 214 033242 215 033244 216 033246 217 033250 033254 033256 033260 033262 033264 033266 218 033270 219 033272 220 033274 221 033276 222 033300 223 22¢ 225 226 187 153 J 12 033302 033304 033306 033310 010446 010346 010246 005002 005003 005004 004537 033 O 033316 033310 033312 033230 033230 062705 006303 010346 006303 006303 062603 060203 004537 033314 033300 033276 033270 033234 033234 105711 001010 005724 005724 005724 020316 101004 000402 005725 033122 000004 ] 033122 MOV JSR RETURN RETURN RETURN RETURN RETURN (K.DIG: MOV MOV MOV CLR CLR CLR JSR 6% 9 6% 7% 1% 1% 1%: ADD 2%: ASL MOV ASL ASL ADD ADD JSR 8% 5$ 4$ 3% 2% 2% 3%: 1STB BNE 18T #ADR,R1 sMAX, MAGNITUDE OF INPUT NUMBER SCHECK DIGITS :"CRTM ONLY ENTERED -- R2=0 S“PERIODTM ONLY ENTERED =- R2=0 ;ILLEGAL CHARACTER OR INPUT TOO LARGE -- R2z? “CR'* == R2 = NUMBER "COMMA” == R2 = NUMB-R R&4,=-(SP) R3,-(SP) R2,=(SP) R2 R3 R4 RS5,(K.CHR :SAVE R& ;SAVE R3 ;SAVE THE MAX, SIZE ON THE STACK :START WITH 0 ACP6H #4 ,RS R3 R3,-(SP) R3 R3 (SP)+,R3 R2,.R3 RS,CK.CHR (R1) 8% (RG)+ 1871 (RG) ¢ 6$: CMP BHI BR 181 R3, (SP) 9% 8% (RS) ¢ 187 :ADDRESS OF ASCIZ STRING #NUM,R2 RS,(K.DIG ADR1 ADR? ADR3 ADR& ADRS 4 5%: IN R2. (R4)+ S"PERIOD'' == R2 = NUMJER JCHECK ONE CHARA(CTER JILLEGAL CHARACTER ;CARRJAGE RETURN L P :DIGIT 0=7 :DIGIT 8-9 , ;STEP RETURN POINTZR PAST "'CR'' & ‘'PERIOD'* RE TURNS JINPUT NUMBER 2 JSAVE « svdh :*8 .(-2)+(-8) = «10 ;UPDATE THE INPUT NUMBER sCHECK ONE CHARACTER sILLEGAL CHARACTER : CARRIAGE RETURN : .DlGlT 0=7 DIGIT 879, ;DOES A °*'CR'' :BR IF NOT FOLLOW THE , °‘‘PERIOD . :INCREMENT THE RETURN :INCREMENT THE RETURN JINCREMENT THE RETURN ;CHECK THE MAGNITUDE OF THE NUMBER sBR IF ENTERED NUMBER T0J LARGE :BVPASS INCREMENT : INCREMENT RETURN PAST INVALID RETURN CZIRJOAO RPO7 PERF EXER MACRO V0&4.00 1-JAN-83 12:06:52 PAGE 41-4 $SUPRL - TYPE ASCIZ, LEFT JUSTIFY 227 033312 228 033314 229 033316 230 033320 231 033322 232 033324 233 033326 %gg 033330 005725 060605 010302 005726 012603 012604 011505 000205 236 K 12 s INC R EMENT RETURN (RS)¢ ST UP RETURN POINTER ;SETJ R4 RS ADD ER NT ED VALUE JE R3,R2 MOV MAX. SIZE OFF OF STACK A N LE ¢C (5P)+ ST ;RESTOR E R3 (SP)+,R3 MOV (SP)+.R& ;RESTOR ER MOV ;GET R 3 T URN ADDRESS (R5) ,RS MOV ;RETURN RS RTS sTHIS ROUTINE WILL CONVERTA16'817 UNSIGNED BINARY NUMBER 70 AN 7%: 8%: 9% : TUNSIGNED DECIMAL ASCIZ NUMBER s CALL NUMBER , - (SP) MOV : 237 238 239 : 240 SEQ 0153 JSR PC,$582D gUI THE NUMBER ON THE STACK SADDRESS OF THE 1ST ASCIZ CHAR IS ON THE STA(K 2641 ; RETURN 243 NOTE: THE PROGRAM REQUIRES THIS FORM OF '$SB2D°, NOT THE VERSION ON : 262 gzg 566 033332 247 033340 268 033344 949 033350 250 033354 525 033356 253 254 255 256 : ;SAVE THE BINARY NUMBER 2(5P),1% 000002 033356 $SB2D: MOV :SET THE POINTER #18,-(SP) MOV 033356 ;CALL THE DOUBLE LENGTH CONVERT 2D PC,$0B JSR 037324 ‘PICKUP THE POINTER (SP)+,2(SP) MOV 000002 $RETURN PC RTS 000207 0.0 .WORD 1%: 000060 000000 AA 16-BIT UNSIGNED BINARY NUMBER TO AN STHIS ROUTINE WILL CONVERT 016637 012746 004737 012666 TUNSIGNED OCTAL ASCIZ NUMBER. S CALL NUMBER , = (SP) MOV : : 257 258 : 260 : : 259 :NOTE: 52} 263 033362 26% 033370 265 033374 266 033400 267 033404 268 033406 THE SYSMAC LIBRARY, REV C AND LATER 016637 012746 004737 012666 00027 000000 000002 033406 $SB20: 033406 037520 070002 1%: 000000 JSR RE TURN PC,$5820 EUT THE NUMBER ON THE STA(CK CADDRESS OF THE 1ST ASCIZ CHAR IS ON THE STA(K THE PROGRAM REQUIRES TMIS FORM OF '$SB20°, NOT THE VERSION ON THE SYSMAC LIBRARY, REV C AND LATER MOV MOV JSR MOV RTS .MORD 2(5P),1% #1%,-(SP) pC,$0820 (SP)+,2(SP) PC 0.0 ;SAVE THE BINARY NUMBER ;SET THE POINTER SCALL THE DOUBLE LENGTH CONVERT ;PICKUP THE POINTER RETURN (ZRJOAD RPO7 PERF EXER MACRO V04,00 1=JAN-83 12:06:52 PAGE &2 TTY INPUT L 12 SEQ 0154 ROUTINE 1 LSBTTL SRR 033412 033414 033416 033420 -ENABL 000000 000000 CJ0000 TTY INPUT ROUTINE RN N AR NN R AN RN RN RN AT RN RN RN R AR RN O NN ANRNNNNNARONRRARANNONOARONOR LSB $TKCNT: .WORD $TKQIN: .WORD $TKQOUT: .WORD $TKQSRT: .BLKB 033427 $TKQEND=. O O 0 7 ; :NUMBER OF ITEMS IN QUEUE S INPU POINTER $S0UTPUT POINTER ::TTY KEYBOARD QUEUE .EVEN s*TK INITIALIZE ROUTINE c*THIS ROUTINE WILL INITIALIZE THE TTY KEYBOARD INPUT QUEUE J*SETUP THE INTERRUPT VECTOR AND TURN ON THE KEYBOARD INTERRUP? e CALL M o 033430 033436 033442 033450 033456 033464 033470 033476 005037 012737 013737 012737 012737 005777 012777 000207 033412 033420 033414 033500 000200 145472 000100 033414 033416 000060 006062 JSR RETURN $TKINT: CLR MOV MOV MOV MOV ST MOV RTS 145462 PC,OTKINT $TKCNT #STKQSRT,$TKQIN STKQIN,STKQZUT #STKSRV,3#TKVEC #200,a#TKVEC+2 asTkB #100,337KS PC ;*TK SERVICE ROUTINE s*THIS ROUTINE WILL SERVICE THE ::CLEAR COUNT OF ITEMS IN QUEUE ::MOVE THE STARTING ADDRESS OF THE ;:QUEUE INTO THE INPUT & QUTPUT POINTERS. ::INIVTALIZE THE KEVBOARD VECTOR ;:'BR'' LEVEL 4 Y3CLEAR DONE FLAG P ENABLE TTY KEYBOARD INTERRUPT P:RETURN TO CALLER TTY KEYBOARD INTERRUPT ;*BY READING THE CHARACTER FROM THE INPUT BUFFER AND PUTTING ;*I7T :#1F IN THE QUEUE. THE CHARACTER IS A “‘CONTROL=C'* (“C) STKINT IS CALLED AND :*UPON RETURN EXIT 1S MADE TO THE '‘CONTROL-C'' RESTART ADDRESS (CTRAP) 033500 033504 033310 033514 033516 033520 033522 033522 033526 033530 033536 033540 033542 033546 033552 033554 033562 033564 033564 033572 033574 117746 042716 021627 001002 005726 000002 021627 001007 104401 004737 005726 000137 021627 001004 145456 177600 000021 $TKSRV: MOVB BIC CMP 308 : 000003 034635 03343C 034676 000007 1$: 022737 000176 001154 022737 001004 104401 000007 033412 001500 001176 BNE TST RTI ::PICKUP THE CHARACTER SiSTRIP THE JUNK $31S IT A RANDOM XON? 308 (SP)+ :BRANCH IF NO JsCLEAN RANDOM XON OFF *SRETURN CMP BNE TYPE JSR ST JMP CMP BNE (SP),#3 1% LSCNTLC PC.STKINT (SP)+ CTRAP (SP),#7 28 ;218 IT A CONTROL C? s :BRANCH IF NO SSTYPE A CONTROL=C (*C) *3INIT THE KEYBOARD S3CLEAN UP STACK ::CONTROL C RESTART 23IS IT A CONTROL G6? *SBRANCH If NO BEQ 6% 1360 T0 SWR CHANGE CMP 28: @$TKB,=-(SP) #5C177, (SP) (sP) ,#$XON CMP BNE TYPE #SWREG, SWR #7,8TKCNT 3¢ J$BELL 2315 SOFT=SWR SELECTED? ::1S THE QUEUE FuLL? P:BRANCH IF NO T:RING THE TTY BELL STACK M2 CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 42-1 TTY SEQ 0155 INPUT ROUTINE 033600 033602 033604 033610 033612 033616 033620 033624 033626 033632 005726 000451 021627 001021 005077 005726 105777 100375 117746 042716 033636 033642 033644 033652 033654 033660 033664 033666 033672 033674 033700 022627 001366 012777 000002 005237 021627 002405 021627 003002 042716 112677 033710 033716 033720 033726 023727 001003 012737 000002 033704 005237 000023 TST BR CMP BNE (LR TST 1ST8 BPL Move 3%: 145362 145334 31%: 145330 177600 B1C 000021 000100 033414 033427 033420 033414 5%: CMP BNE MOV RTI $TKQIN,#$TKQEND ..GO OFF THE END? 5% ;BRANCH IF NO #STKQSRT,$TKQIN ..RESET THE POINTER sRETURN e AN INC :*SOF TWARE 033736 033740 033744 033746 033752 033756 033762 022737 001124 105777 100121 117746 042716 021627 001300 000176 001154 $TKQIN AR AR AR N RN ¢*ROUTINE 033730 ¢:1S IT A CONTROL-Q? s :;BRANCH [F NO :cREENABLE TTY KEYBOARD INTERRUPTS s sRETURN ;s COUNT THIS CHARA(CTER ¢s1S IT UPPER (ASE? s sBRANCH IF YES ::1S 1T A SPECIAL CHAR? : :BRANCH [F YES +sMAKE IT UPPER CASE ::AND PUT IT IN QUEUE ssMAKE IT 7-BIT ASCII 4%: 000175 033414 (SP)+, 421 31$ #100,a87kS #AC177, (SP) S$TKCNT (SP) ,#140 4% (SP),m75 49 #40,(SP) (SP)+,38TKQIN 32%: 000040 177510 ¢ CLEAN CHARACTER OFF OF STACK soEXIT so 1S IT A CONTROL°S° ¢ :BRANCH IF NO s:DISABLE TTY KEYBOARD INTERRUPTS ¢ CLEAN CHAR OFF STA(K ssWAIT FOR A CHAR ¢:LOOP UNTIL ITS THERE ¢sGET THE CHARACTER CMP BNE MoV RT] INC CMP BLT CMP BGT BIC mMove 145306 033412 000140 (SP)+ 5% (SP),#23 32% CR LS (SP)+ as$TKS 31$ a$TKB, =~ (SP) R R : cUPDATE THE POINTER R R RN NN TR AN NN RN RN RN R AN SWITCH REGISTER CHANGE ROUTINE. IS ENTERED FROM THE NN TRAP HANDLER, ANANN RN RN RN ENRS AND WILL :*SERVICE THE TEST FOR CHANGE IN SOF TWARE SWITCH REGISTER TRAP : *CALL WHEN OPERATING IN TTY [NTERRUPT MODE. $CKSWR: CMP BNE 1ST8 BPL MovB 145214 145210 177600 000007 8I(C CMP BNE #SWREG, SWR s:1S THE SOFT=-SWR SELECTED 15% a8 TKS 15% a$TKB,=(SP) «EXIT IF NOT ::1S A CHAR WAITING? ¢oIF NOT, EXIT s YES l‘C177(SP) (SP), #7 ¢oMAKE IT 7-BIT ASCI! ¢:1S IT A CONTROL=G? 2% :o1F NOT, PUT IT IN THE TTY QUEUE ¢ AND EXIT ‘'t'lt.'t.itt."i"'t"""'."fi!t.."l'.t.t."."'."'fit"""i' <*CONTROL :*ROUTINE 033764 033772 033774 033776 034002 034006 123727 001674 005726 004737 005077 112737 001150 000001 033430 145152 000001 001151 034016 034020 034024 034030 104401 104401 013746 104402 034647 034654 000176 IS PASSED TO THIS POINT FROM EITHER THE OR FROM THE SOF TWARE : *CONTROL=G BEING TYPED 6$: $GTSWR: SWITCH REGISTER AND THE (MPB 8tQ TST JSR CLR Movs $AUTOB, M 2% (SP)+ PC,STKINT a$TKS #1,8INTAG TYPE TYPE MOV TYPOC +SCNTLG , SMSWR SWREG,=(SP) SOF TWARE TTY INTERRUPT TRAP CALL, SERVICE AS A RESULT OF SWITCH REGISTER BEING SELECTED. ¢ARE WE RUNNING IN AUTO-MODE? ¢+ ;BRANCH IF YES :CLEAR CONTROL-G OFF STACK ,.FLUSH THE _TTY INPUT QUEUE . ;DISABLE TTY KEYBOARD INTERRUPTS ¢ SET INTERRUPT MODE INDICATOR :.ECHO THE CONTROL-G (*G) ,,TVPE CURRENT CONTENTS ::SAVE SWREG FOR TYPEQUT ;60 TYPE--OCTAL ASCII(ALL DIGITS) A =200 O000O0 OVVNINES WWNOO S NSO NNOO— O— =2 NN NN =N OO0 1645106 177600 000003 000025 034642 000006 20%: LS NOO NSO OV NN S NNO OB ONC NONENO OO = O = = = OO\ = NINININ ONONOONOOrIN O = ~NO OO WOOWVMNONNNNUWN=ONWO NN 000015 10%: 19%: 7%: +:PROMPT FOR NEW SWR 1ST8 BPL a$TKS 7% s IF NOT TRY AGAIN MovB A$TKB,=(SP) cmP BNE ::BRANCH [F NOT (MPB BNE :sBRANCH JF (LR TYPE ADD 8¢: 9%: MOV JMP 036064 000060 :sP1CK UP CHAR ;sMAKE IT 7-BIT ASCII c:1S IT A CONTROL=C? JJYES, ECHO CONTROL=-C (*C) ssCLEAN UP STACK :;REENABLE TTY KEYBOARD INTERRUPTS? NO JsALLOW TTY KEYBOARD [NTERRUPTS ;s CONTROL=C RESTART H A CONTROL=-U? IF NOT TRY [T ECHO CONTROL=-U (*U) £ PREVIOUS INPUT AGAIN 3018 IT A <CR>? ::BRANCH ]F NO :2YES, IS IT THE FIRST (HAR? > © o [ X [F YES :JSAVE NEW SWR J:CLEAR UP STACK ::ECHO <CR> AND <LF> ::RE=-ENAB.E TTY KBD INTERRUPTS? — — ;sBRANCH |F NOT p-] 144750 P 000100 Pw3Y 000001 ;s CHAR THERE? :;BRANCH — 144772 #AC177,(SP) ;s CLEAR COUNTER :o THE NEW SWR (MpP 000004 0000902 000006 001203 001151 =(SP) =(SP) :;RE=-ENABLE TTY KBD INTERRUPITS :sRETURN JsECHO CHAR :;CHAR < 0? ;s :BRANCH JF Y3 »n 145044 SEQ 0156 »SMNEW TYPE (LR BIC 000001 N 12 IF ¥E ;:BRANCH [F ¥3 MW D»n 165112 [o XV, L1 s O O NO O NN S B 0 *rO NN LSS 8 B UNNINNIN) ad b 1N OO SMNONOSNONONONONI SN SO NN ANIRIRNINLNININININININIPNININININ) ob b b b b d b b U N U LN U AN N AN AN A LAt N AN AN AN AN AN AN AN W A U N U N A U R A W WP W R R R PP B P 2 AR R R B ¥ W X aF 2P 2 ¥ [ [elalelalolalelelolalelolalololololalololelelololele] ) NN oo SO 034050 034054 OCOO—=O =00 O—ONOCOON OMN = NN == 2 NONNSOON WNONOCO =N NNWNO =N 034046 034665 pl=l=lololelolalelelelelelelolalelel Sgolelelalel] OOOWVOOOOOOHNRONONOOONOOR~=0OO00N OH OO N =2VNNIW=N=LON WSV =N —s - 034032 QO =00 QOO ON OIS — NNSOO WOoOOoOoON NOr 2NN CIR JOAQ RPO7 P t R F EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 42-2 1Y INPUT ROUTIN 1 £ J:CHAR > 77 000067 JsBRANCH S J:STRIP=-0OFF ASCII FIRST (HAR THE THIS 1S 23 000060 000002 JiNO, SHIFT PRESENT I 000002 177776 17%: 001202 18%: .DSABL i TYPE B8R LSB CHAR OVER TO MAKE ROOM FOR NEW ONE. JsKEEP COUNT OF (HAR :SET IN NEW (HAR ;sGET THE NEXT ONE JsTYPE 2<CRY<LF> s oSIMULATE C(ONTROL-U .'"'t.t"t!'t'i'tt""'t"'"t"'.'.'!.'..'..I'.'.'..."......'l.' CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 42-3 TTY B 13 SEQ 0157 INPUT ROUTINE .'THEE ROUTINE WILL INPUT A SINGLE CHARACTER FROM THE TTY * o o e 034272 011646 034302 036306 034310 034314 034316 034316 034322 034326 034330 034336 005066 005046 012746 000902 000004 005737 001775 005337 117766 005237 033412 034350 001003 034276 N34342 034352 034360 016666 023727 012737 00002 000004 000002 64$: 1%: 000004 033416 033427 033420 033416 RETURN HERE $SROCHR: MOV 034316 033412 177062 033416 RD(HR s CHARACTER IS ON THE (SP),=(SP) ::PUSH DOWN THE PC AND L(SP) -(SP) #64%,-(SP) 2sGET :SPUT :sPUT 1POP 4(SPY,2(sP) TS7T 8EQ DEC MOVB INC $TKCNT 1$ $TKCNT atTKQOUT 4L (SP) $TKQOU J:WAIT ON A CHARACTER 2% :SBRANCH IF NO CLR (LR MoV RT] CMP MOV RT] STACK QUEUE ::WITH PARITY BIT STRIPPED OFF MOV BNE 2s: s:GET A CHARACTER FROM THE SSTHE PS READY FOR A (HARACTER NEW PS ON STACK NEW PC ON STACK NEW PC AND PS : :DECREMENT THE COUNTER ..GET ONE CHARA(CTER SUPDATE THE POINTER sTKOOUT OSTKOEND ..DID IT GO OFF QF THE END? #$TKQSRT,$TKQOUT; ;RESET THE POINTER : SRETURN ::'t"""""".""""'t""'.'t".tt.'tt"tt't't't""Q.'i"' ;*THIS ROUTINE WILL INPUT A STRING FROM THE TTY s*CALL: e RDL IN ;:INPUT A STRING FROM THE TTY e M 034362 010346 034366 034372 034376 034400 034402 034406 034410 034412 03441% 034416 034424 034430 034434 034436 034442 034446 034450 012703 022703 101456 104410 112613 122713 001022 005716 001007 112737 104401 012716 005303 020327 103434 111337 106401 034364 034454 034456 034460 034462 034470 034474 034476 034502 005046 000746 005716 001406 112737 106401 005016 122713 001003 $SROLIN: MOV _ 034616 034635 1$: 28: 000177 000134 034614 177777 10$: 034614 63 : 034616 034614 034614 5% 000134 034614 000025 RETURN HERE 034614 7%: CLR MOV CMP BLOS RDCHR MOVB CMPB BNE T3 BNE MOVB TYPE MOV DEC CMP BLO MOVB TYPE B8R TSt BEQ MOVB TYPE CLR (MPB BNE *ADDRESS OF FIRST CHARACTER WILL BE OGN THE ;:TERMINATOR WILL BE A BYTE OF ALL 0°'S R3,=(SP) ::SAVE R3 #STTYIN,R3 #STTYIN®15.,R3 4% *:GET ADDRESS ::BUFFER FULL? YiBR IF YES 1160 READ ONE CHARACTER FROM THE 1iGET CHARACTER 231S IT A RUBOUT *:BR IF NO 2315 THIS THE FIRST RUBOUT? 2iBR IF NO SSTYPE A BACK SLASH -($P) (SP)+,(R3) #177,(R3) 5% (s 6% #'\,0% ,9% #-1,(SP) R3 23, HSTTYIN X (R3),9% 9% % (5P) 7% #'\,9% ,9% (SP) #25, (R3) 8% *:CLEAR THE RUBOUT KEY ::SET THE RUBOUT KEY TTvY 1 BACKUP BY ONE :;SIACK EMPTY? ‘IBR IF YES ..serup T0 TYPEOUT THE DELETED CHAR. 160 TYPE 1360 READ ANOTHER CHAR. ..RUBOUT KEY SET? ‘BR IF NO STYPE A BACK SLASH ;:CLEAR THE RUBOUT KEY 2215 CHARACTER A CTRL U? ;B8R IF NO STACK CZRJOAQ RPO7 PERF EXER MACRO V0&4.00 1-JAN-83 12:06:52 PAGE 42-4 TTY ¢ 13 SEQ 0158 INPUT ROUTINE 034506 034510 036512 034516 034520 034522 036526 034532 034534 104401 034642 122713 001011 105013 104401 106401 000022 106401 001202 4$: 111337 104401 034614 034614 3% 000726 000717 03440 000712 034552 034556 034560 034564 034570 034572 034574 034576 034606 034612 034614 034615 034616 034635 122723 001305 105063 104401 005726 012603 011646 016666 012766 000002 000 000 034542 034546 034642 034647 034654 ) C4665 136 136 136 015 040 TYPE 8$: 001203 034616 000015 177777 001204 000004 034616 000002 000004 9s: 103 125 107 012 040 015 015 015 123 116 2 5 034676 6 0364706 012737 005237 000001 053412 8 034716 005237 033414 7 034710 9 10 11 12 034722 034730 034732 034740 112777 023727 001003 012737 000002 001334 000015 176476 033414 033427 033420 033414 STTYIN: SCNTLC: SCNTLU: $CNTLG: $MSWR: SMNEW: BR $SCNTLUY ..GO START OVER b} ; : GO 1cxup ANOTHER CHACTER CMPB BNE CLRB TYPE TYPE #22,(R3) 38 (R3) ,$TRLF STTVIN TYPE $QUES BR BR {s CMPB BNE CLRB TYPE 187 MOV MOV MOY MOV RT] .BYTE BYTE .BLKS .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ #15,(R3)+ 2% =1(R3) JSLF (SP)+ (SP)+,R3 (SP),=(SP) 4(SP),2(SP) #STTYIN,4(SP) MOVB TYPE ;TYPEA CONIROL 'V {s 2315 CHARACTER A '"*R'"? s BRANCH IF NO *3CLEAR THE CHARACTER ,,rvpe ACRTM G “LF" FITYP e THE INPUT STRING :3TYPE A S:CLEAR rus BUFFER AND LOCP (R3),9% ,9% PECHO THE CHARACTER ;CHECK FOR RETURN :L00P IF NOT RETURN ...LEAR RETURN (THE 15) sTYPE A LINE FEED ::CLEAN RUBQUT KEY FROM THE STACK PSRESTORE R S3ADJUST THE STACK AND PUT ADDRESS OF i FIRST ASCII CHARACTER ON IT 0 0 15, /*C/<15><12> /+U/<15><12> /°6/<15><12> <15><12>/SWR = / / NEw = / : sRETURN ::STORAGE FOR ASCII CHAR. TO TYPE LTERMINATOR SSRESERVE 15. BYTES FOR TTY INPUT ::CONTROL ''C” :iCONTROL ‘'’ ::CONTROL ''G' ;THIS ROUTINE WILL PROCESS THE (*C) CTRAP: MOV INC #1,CFLAG $TKCNT ;SET THE "CONTROL C' FLAG :COUNT THIS CHARACTER INC $TKQIN SUPDATE THE POINTER MOVB 1$: CHARACTER CMP BNE MOV RTI #15,38TKQIN tPUT 'RETURN' CHARACTER $TKQIN,#$TKQEND :GO OFF THE END ? 1% ‘BR IF YES #$TKOSRT,$TKQIN ;RESET THE POINTER *RETURN IN QUEUE THE D13 CIZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 43 SEQ 0159 ERROR HWANDLER ROUTINE 1 .SBTTL ERROR HANDLER ROUTINC R R L T R R P P R R R T T R TR T R TR T L T +*THIS ROUTINE WILL INCREMENT THE ERROR FLAG AND THE ERROR COUNT, ¢*SAVE THE ERROR ITEM NUMBER AND THE ADDRESS OF THE ERROR CALL s*AND GO TO SERRTYP ON ERROR s*THE SWITCH OPTIONS PROVIDED B8Y THIS ROUTINE ARE: HALT ON ERROR INHIBIT ERROR TYPEQUTS ;*SW15=1 teSW13=1 "3:28=1 BELL ON ERROR ' ERROR N :;ERROR=EMT AND N=ERROR ]TEM NUMBER $SERROR: CLRB CKSWR MOV MOV 8IT BNE TYPE TYPE JSR INCB BEQ MOV BIT BEQ TYPE [BSAVE ::CLEAR THE [TEM BYTE SAVE LOCATION TITEST FOR CHANGE IN SOFT-SWR R3,ATTN ‘SAVE THE ATTENTION REGISTER CONTENTS R1.DRVNO :DRIVE NUMBER #SU13,aSWR TINHIBIT PRINTOUTS ? 412 ‘BR IF YES $CRLF ‘CR-LF "$CRLF LCR-LF PC,STIME ‘TYPE ELAPSED TIME SERFLG ::SET THE ERROR FLAG 78 SIDON'T LET THE FLAG GO TO ZERD $STSTNM,aDISPLAY ::DISPLAY TEST NUMBER AND ERROR FLAG #B1T10.3SWR 1:BELL ON ERROR? 1$ 1INO = SKIP $BELL $SRING BELL (SP), SERRPC #2,$ERRPC QSERRPC.SITEMB #B1T09,35WR 1004$ #177,81TCMB $3GET ADDRESS OF ERR.3 INSTRUCTION S3SEE IF THIS IS THE 2ND ERROR CALL IN THIS ROUTINE BRANCH IF SO P:SEE IF CPSAVE HAS CPU ERR REG TIMEOUT INDICATION 034742 034746 034750 034754 034760 034766 034770 034774 035000 035006 035010 035012 035020 035026 035030 105037 104407 010337 010137 032777 001004 104401 104401 004737 105237 001775 013777 032777 001402 104401 035040 035044 035052 035060 035066 035070 011637 162737 117737 §32777 001060 122737 001132 000002 144054 001000 001132 001130 144066 000177 001130 MOV SUB MOVB BIT BNE CMPB 105737 001047 022737 035330 035326 TSTB BNE CMP IBSAVE 10038 #-1,CPSAVE 013746 012737 013737 000406 012737 000004 035140 177766 000004 035326 177777 035326 1000%: MOV MOV MOV BR MOV ERRVEC,=(SP) #10008 ERRVEC 177766.CPSAVE 1001$ #-1,CPSAVE 10018: RT] MOV (SP)¢,ERRVEC :;RESTORE CONTENTS OF ERROR VECTOR CMP #-1,CPSAVE ::SEE IF CPSAVE HAS CPU ERR REG TIMEOUT BI1 BEQ BIC MOVB MOVB ¥BIT00,CPSAVE 1004% #BI100,177766 SITEMB.IBSAVE #177,8i1EmB :-SEE IF POWER MONITOR BIT IS SET IN CPU ERR REG LIBRANCH IF 0K ::CLEAR THE BIT FOUND SET - :MAKE IBSAVE NON-ZERO FOR DUAL ERROR CALL PISET SITEMB 10 SPECIAL POWER FAJL POINTER 035034 035076 035100 035104 035106 035114 035116 035122 035130 535136 035140 035146 005237 001454 001445 012716 035330 o 001316 001320 020000 144166 001203 001203 026146 001117 001116 002000 7%: 144136 144126 001176 001126 177777 0351564 1%: 035152 035154 000002 012637 035160 022737 177777 035326 035170 035176 035200 035206 035214 032737 0G1414 042737 113737 112737 000001 035326 000001 001130 000177 177766 035330 035166 035222 001420 000402 000004 001130 INC BEO BEQ 1002%: MOV BEO BR $ERTTL 1004$ 1004$ n0b1s, (sp) 1004$ 1004$ :COUNT THE NUMBtR OF ERRORS ;;STRIP AND SAVE THE ERROR ITEM CODE *:SEE IF LOOP ON ERROR IS SET *BRANCH AROUND ROUTINE IF SO S3SEE IF THIS IS THE POWER FAIL CALL :SBRANCH AROUND ROUTINE IF IT IS *:BRANCH IF SO *3SAVE CONTENTS OF ERROR VECTOR ::SETUP 'TRAP® RETURN ADDRESS > :MOVE CPU ERROR REGISTER TO CPSAVE FOR TEST ::SET CPU ERROR REGISTER TIMEOUT $:SETUP RETURN ADDRESS :SBRANCH If SO ::BRANCH OVER IBSAVE CLEARING INDICATOR INDICATION CIRJOAD RPG7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 43-1 E 13 SEQ 0160 ERROR HANDLER ROUTINE %%g%zg 105037 035330 035230 (32777 020000 p) 035236 035240 8%2%?8 035250 001004 004737 1064401 122737 035256 035260 035266 035272 035273 035274 035276 035302 035304 035310 035312 001007 13737 004737 200 000 000777 105737 001005 005777 100002 000000 035316 035322 035324 035326 035330 105737 001230 000002 000000 000000 8%2%}2 }8822: 143716 035332 001203 208 000001 001226 001130 036676 035272 035330 : 21s: 22%: 2%: 3 (035330 IBSAVE ;:CLEAR IBSAVE SO 2ND TIME BIT #BIT13,3S5WR ::SKIP TYPEOUT [F SET TYPE LSCRLF BNE JSR c(MPB 143644 104407 (LRB BNE MOVB JSR BYTE .BYTE BR 7518 BNE 187 BPL HALT 20% PC,SERRTYP #APTENV,SENV 23 $ITEMB,21% PC,8ATYS 0 O 22% 1BSAVE 3% aSWR 1% CKSWR 1518 BNE RT] CPSAVE: .WORD IBSAVE: .WORD IBSAVE 7% 0 0 THROUGH EXITS ::SKIP TYPEOUTS .60 TO USER ERROR ROUTINE ::RUNNING IN APT MODE 1:NO,SKIP APT ERROR REPORT J:SET ITEM NUMBER AS ERROR NUMBER JsREPORT FATAL ERROR TO APT :;APT ERROR LOOP JsSEE IF IBSAVE IS LOADED :sBRANCH IF NOT = NO HALT ON PWR MON BIT ERROR JsHALT ON ERROR ;:SKIP IF CONTINUE JsHALT ON ERROR' ;:TEST FOR CHANGE [N SOFT=SWR J.SEE IF JTEM ;;BRANCH BACK ::RETURN ;:LOCATION TO J;LOCATION TO CPU ERROR REG CONTENTS ITEM BYTE BYTE SAVE LOCATION HAS AN ERROR (CALL T0O CALL ORIGINAL ERROR SAVE SAVE F CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 44 ERROR MESSAGE TYPEQUT ROUTINE .SBTTL ERROR MESSAGE 13 SEQ 0161 TYPEQOUT ROUTINE '.it'""""""""""'""i".l""Q'."."t"""""""i 'THIS ROUTINE USES THE "'ITEM CONTROL BYTE'' (SITEMB) TO DETERMINE WHICH ;«AND REPORTS THE :*ERROR |S TO BE REPORTED. 035332 035332 035336 035340 035342 035346 104401 010046 005000 153700 001004 001203 035350 013746 035354 035356 035360 104402 000437 122700 035366 035374 035400 035402 035404 035406 035410 035412 013737 012700 000406 005300 006300 006300 006300 062700 035422 035424 035426 035430 001404 104401 000000 104401 035440 001404 035364 035416 035434 035442 035444 035446 035452 035454 035456 035460 035464 035466 001006 012037 012037 001132 MOV $ERRP(,=(SP) 000177 TYPOC BR (MPB 6% #177,R0 1 :SAVE SERRPC FOR TYPEOUT ::ERROR ADDRESS 2360 TYPE==0CTAL ASCII(ALL DIGITS) MOV MOV BR DEC ASL ASL ASL ADD STESTN,PFTSTN #PFECH,RO 1001$ RO RO RO RO #SERRTB RO BEQ TYPE MORD TYPE 3s O $CRLF t3SKIP TYPEOUT IF NO POINTER ,.IYPE THE “‘ERROR MESSAGE'' $ERROR MESSAGE'' POINTER GOES ME-E Pi'CARRIAGE RETURN'' & "'LINE FEEC BEQ 5$ SiSKIP TYPEOUT 001130 001212 035510 1$: 035650 10008: 003360 035426 10018: 28: 001203 035444 104401 001203 b ¥ 48: 5%: 6%: 7%: 013046 035472 005710 035476 104401 035504 035476 104402 001770 ERROR. :.”CARRIAGE RETURN'' € "'LINE FEED" :SSAVE RO SSPICKUP THE ITEM INDEX 035466 035470 INFORMATION CONCERNING LSCRLF RO, =(SP) RO a#$ITEMB,RO 1% 001203 000207 APFROPRIATE TYPE MOV CLR BISB BNE 104401 000000 104401 011000 001004 012600 $ERRTYP: THE IT THEN OBTAINS, FROM THE ''ERROR TABLE'' (SERRTB), BNE MoV MOV TYPE MORD TYPE MOV BNE 1000 (RO) s, 2‘ (RO)Y+,48 ;;1F ITEM NUMBER IS ZERO, JUST ;sTYPE THE PC OF THE ERROR PIGET OUT *3SEE IF THIS ERROR CALL P RRANCH IF NOT IS SPECIAL POWER FAIL CALL ::GET TEST NUMBER ::MOVE POMWER FAIL ERROR CALL TABLE TO RO $:BRANCH TO CALL ERROR SIADJUST THE INDEX SO THAT [T wiLL M WORK FOR THE ERROR TABLE ::FORM TABLE POINTER ;:PICKUP ''ERROR MESSAGE'' POINTER ;sPICKUP "'DATA ntADEtn'' POINTER IF 0 .,TVPE THE ''DATA HEADER'' “DATA HEADEF'' POINTER GOES HER q “'CARRIAGE RETURN' § 't INE FEED ,.PICKUP DATA TABLE POlNTE 1360 TYPE THE DATA RTS O L$CRLF (RO),RO 7% (SP)+,RO ,$CRLF pC MoV 3(R0O)¢+ ,=(SP) ::SAVE a(RO)+ FOR TYPEOUT 157 (R0O) 2315 THERE ANOTHER NUMBER? MOV TYPE TYPOC BEO 6% B8R s TYPE 8% $SRESTORE RO :."CARRIAGE RETURN'' L ::RETURN € "'LINE FEED' 1360 TYPE=-=0CTAL ASCII(ALL DIGITS) S:BR IF NO ,.rvpe TW0(2) SPACES 035502 600771 040 040 000 035510 035520 035602 035520 120 124 035602 11 105 035634 127 123 PFECH: PFECH1,PFECH2,PFECH3,PFECHG ; WORDS DEFINING TABLES BELOW. PFECHI: .ASCIZ? ?POWER MONJTOR BIT IN CPU ERROR REGISTER FOUND SE:? PFECH2: '?3%&1 TESTNO ERR PC CPUERREG? 035634 035650 001132 035326 PFECH3: 035504 8%: ’?35#2 .WORD / LOOP ..ruo<2> SPACES PFTSTN,SERRPC,CPSAVE,O CIRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 44~ tRROR MESSAGE TYPEOUT ROUTINE 035644 035650 000 000000 000 000 PFECH4: PFTSIN: .BYTE WORD 0,0,0,0 0 6 13 SEQ 0162 ¢ CONTAINS TEST NUMBER FOR PF BIT ERROR CZRJOAQ RPO7 PERF EXER MACRO V0&4.00 1-JAN-83 12:06:52 PAGE &5 TYPE ROUTINE LSBTTL TYPE H 13 SEQ 0163 ROUTINE MLALALAASAALRAAA MMM A AAAAARAAARAAARAAARAA AR R} 'ROUTINE TO TYPE ASCIZ MESSAGE. MESSAGE MUST TERMINATE UITH A O BYTE. $*THE ROUTINE WILL INSERT A NUMBER OF NULL CMARACTERS AFTER A LINE FEED. $*NOTE1: SNULL CONTAINS THE CHARACTER TO BE USED AS THE FILLER (H ARAC‘ER $FILLS CONTAINS THE NUMBER OF FILLER CHARACTERS REQUIRED SFILLC CONTAINS THE CHARACTER TO FILL AFTER, $*NOTEQ: 'NOTE3 t(A '1) QOR USlNG A TYPE TRAP INSTRUCTION . MESADR J:MESADR IS FIRST ADDRESS OF AN «S(CIZ STRING TYPE MESADR OCOOONWVINW=OOOOONOC OO VONWNONNWNN—~N NWANNO ONNOO O =N =N NIO NN = NONINIWN =N N= S W DO W= L OWOWWOW—N BVNIWWVIWO OO SN —O=ONO S~ NO N NWNINN ONISNONSENONONOOONONO =200 =0 WOO—=0OWON O NNOOOOOOONONOO o WVSPOWV NWSNNW OO0O—-400~0O0=00—0~ 000000 —=0000~0O~ OODO000 036036 O~=O0— SNNSNNNNNNNNSNNNNSNNSNSNSNN ES 85 SN ANNAININ) b it 2 O (= ~ OO O o S OONO SNOOSNSNONNON o 105737 001173 000002 000001 001226 000100 001227 035722 036666 000040 1S18 BPL HALT BR MOV MOV (MPB BNE I8 8EQ MOV 001227 61%: 2%: 000002 60%: 3%: 000011 4% s sLEAVE RO,=(SP) 82(SP),R0O #APTENV,SENV 62% :sSAVE IF NO TERM]INAL R J:GET ADDRESS OF ASCIZ STRING JsRUNNING [N APT MODE 2sNO,GO CHECK FOR APT CONSOLE NAPTSPOOL ,SENVM ; ;SPOOL MESSAGE TO APT 629% J:NO,GO CHECK FOR CONSOLE 0 s sMESSAGE ADDRESS RO,61% PC,3ATY3 #APTCSUP,SENVM 6 0% (RO)+,=(SP) 4% (SP)+ (SP)+,RO #2,(SP) :SETUP MESSAGE ADDRESS FOR APT ::SPOOL MESSAGE TO APT ;:APT (ONSOLE SUPPRESSED 2:YES,.SKIP TYPE OUT ¢ sPUSH CHARACTER TO BE TYPED ONTO STA(K ssBR IF IT ISN'T THE TERMINATOR s IF TERMINATOR POP ;T OFF THE STACK :;RESTORE RO ..ADJUST RETURN PC #CRLF, (SP) ::BRANCH [F NOT <(RLF> (SP) ¢ ;:POP JsTYPE 5%: 6%: SCHARCNT 2% PC,STYPEC SFILLC,(SP)+ ;s CLEAR CHARACTER COUNT s sGET NEXT CHARACTER .GO TYPE THIS CHARACTER 7%: 1(SP) ..DOES A NULL NEED TO BE TYPED? ;:BR IF NO=--GO POP THE NULL OFF OF STA(K ::60 TYPE A NULL ;D0 NOT COUNT AS A COUNT ..L00P 8$ 5% 001170 036064 036202 BNE TST b1 ) ;:BR IF YES ::HALT HERE YETURN : BRANCH IF <HT> 036202 000001 MOVB ::1S THERE A TERMINAL? 19 #HT, (SP) 000200 0 6064 001172 JSR -WORD 8118 BNE $TPFLG 2% $NULL ,=(,P) 6% PC.STYPEC SCHARCNT &) <CR><LF> EQUIV A CR AND LF IS IT TIME FOR FILLER CHARS.? sIF NO GO GET NEXT CHAR, GET # OF FILLER CHARS. NEEDED :AND THE NULL CHAR, CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 45-1 113 SEQ 0164 TYPE ROUTINE +HORIZONTAL 036040 112716 036044 004737 036056 001372 036050 036060 036062 036064 036064 036070 036072 036076 036102 036106 036110 036110 036114 036116 036122 036126 036132 036134 036134 036136 036136 036142 036144 036152 036160 036162 036166 036170 036176 036200 036202 036204 132737 000040 036064 000007 8$: 036202 005726 000724 105777 10002¢ 017746 143070 122716 001012 000023 105777 100375 117716 143044 122716 001366 000021 042716 042716 143064 177600 101$: 177600 BITB #7.$CHARCNT ST BR (SP)+ 28 $:POP SPACE OFF STA(CK $3GET NEXT CHARACTER TSTB BPL MOV a$IKS 108 a$1kB, = (SP) ;:CHAR [N KYBD BUFFER? 2:BR IF NOT 1iGET CHAR CMPB BNE #$XOFF, (SP) 102$ TSTB BPL MOVB as$1Ks$ 101$ a$TKB, (SP) CMPB BNE #$XON, ($P) 101% JSR BI( 1028 : 108 : 143022 143014 000002 036202 000012 #' BIC 143040 000002 000015 MOVB BNE $TYPEC: 005726 105777 100375 116677 122766 001003 105037 000406 122766 001402 105227 000000 000207 9% : TAB PROCESSOR 000002 PC.ETYPEC 9¢° 0177600, (sP) 0177600, (sP) ;:REPLACE TAB WITH SPACE S TYPE A SPACE S:BRANCH IF NOT AT ::TAB STOP *:STRIP EXTRANEOUS BITS P WAS CHAR XOFF 1iBR IF NOT ;:WAIT FOR CHAR ::GET CHAR PISTRIP IT SIWAS IT XON? ::BR IF NOT ST (SP)+ s:FIX STACK TSTB BPL MOVB C(MPB BNE CLRB as$IPS 108 2(SP),asTPB #CR,2(SP) 1$ $CHARCNT $STYPEX #LF, 2(sp> $TYP (PC)0 O PC ;sWAIT UNTIL PRINTER IS READY BR (MP8 BEQ INCB $CHARCNT: .WORD $STYPEX: RIS 1%: ,(SP) ::LOAD CHAR TO BE TYPED INTO DATA REG. ;:1S CHARACTER A CARRIAGE RETURN? ::BRANCH IF NO s YES==CLEAR CHARACTER COUNT JIEXIT 131S CHARACTER A LINE FEED? S BRANCH IF YES J3COUNT THE CHARACTEK ::CHARACTER COUNT STORAGE (IRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 4% BINARY TO OCTAL (ASCII) AND TYPE .SBTTL L J 13 SEQ 0165 BINARY TO OCTAL (ASCII) AND TYPE L T S A L T :*THIS ROUTINE 1S USED TO CHANGE A 16-81T BINARY NUMBER TO A 6-DIGIT ;*0CTAL (ASCI]) NUMBER AND TYPE [T, :+$TYPOS=-=~ENTER HERE 10 SETUP SUPPRESS ZEROS AND NUMBER OF DIGITS TO TYPE 'CALL .' ] X ot X MOV TYPOS .BYTE BYTE NUM,=(SP) N M ;Y :NUMBER TO BE TYPED J:CALL FOR TYPEOUT ;:N=1 TO 6 FOR NUMBER Of CIGCITS TO TYPE ;:M=1 OR 0 ;: 1=TYPE LEADING ZEROS ;0=SUPPRESS LEADING ZEROS . % ;*$TYPON=-==<ENTER HERE TO TYPE OUT WITH THE SAME PARAMETERS AS THE LAST ;*$TYPOS OR $TYPOC s*CALL: o it MOV TYPON NUM,=-(SP) 2 :NUMBER T0O BE TYPED ;:CALL FOR TYPEOUT B -%LVPOC---ENTER HERE FOR TYPEOUT OF A 16 BIT NUMBER ;*CALL ;X 036256 036260 036262 036266 036270 036276 036300 0363064 036510 036512 036714 036316 03630 036320 03632¢ 036326 03633C 03633¢ 036336 036342 036344 036346 036350 110437 113704 016605 005003 006105 000404 006105 006105 006105 010503 006103 105337 100016 042703 001002 005704 001403 005204 036433 Ol o NN 000001 000006 000005 036431 O N = 112637 062716 000406 112737 11277 112737 010346 010446 010546 113704 005404 062704 000000 000001 036433 000002 NN 036220 036224 036230 036232 036240 036246 036254 017646 116637 OO0 036206 036212 $TYPOS: MOV MOVB MOVB ADD 8R $TYPOC: MOVB MOVB $TYPON: MOV3 MOV MOV MOV ngge N 000006 036432 036431 000012 1%: 2$: 036432 MOV TYPOC 1% 177770 4%: ADD MOvVB MOVB MOV CLR ROL BR ROL ROL ROL MOV ROL DECB BPL BIC BNE 187 8EQ INC NUM,=(SP) ::NUMBER TO BE TYPED ssCALL FOR TYPEOUT a(SP),=(LP) 1(SP),S0FILL (SP)+,80MODE+1 #2,(SP) ;:;PICKUP THE MOCE ::LO0AD ZERO FILL SWITCH ;;NUMBER Of DIGITS TO TYPE ;:ADJUST RETURN ADDRESS #1,80F1LL #6,30MODE +1 #5,80CNT R3,=(SP) R&,=-(SP) RS,=-(SP) 32M00501.R4 ::SET THE 2:SET FOR :sSET THE ::SAVE R3 :sSAVE Ré ::SAVE RS ::GET THE #6,R4 R4, SOMODE $OFILL,RG 12(SP),RS R RS 1% RS :sSUBTRACT IT FOR MAX, ALLOWED ::SAVE IT FOR USE ::GET THE ZERO FILL SWITCH ::PICKUP THE INPUT NUMBER :;CLEAR THE OUTPUT"U.O.RD :;ROTATE MSB INTO ::60 DO MSB ::FORM THIS DIGIT $TYPON RS RS RS,R3 R3 $0MODE 7% #177770,R3 4 R& 5% R& ZEROQ FILL SWITCH SIX(6) DIGITS ITERATION COUNT NUMBER OF DIGITS TO TYPE ::GET LSB OF THIS DIGIT :;TYPE THIS DIGIT? J:BR IF NO ::GET RID OF JUNK :sTEST FOR O ::SUPPRESS THIS 0? ::BR IF YES :;DON'T SUPPRESS ANYMORE 0°S CZRJOAQ RPO7 PERF BINARY EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 46-1 TO OCTAL (ASCII) AND TYPE 036352 036356 052703 05c703 000060 000040 036376 036400 003347 002402 036406 036410 036412 036414 036622 036424 036426 036427 036430 036431 036432 012605 012604 012603 016566 012616 000002 000 000 000 000 000000 036362 036366 036372 036402 0364064 110337 104401 105337 5¢: 036426 036426 036430 7%: 005204 000744 6%: 000002 000004 K 13 SEQ 0166 BIS BIS #'0,R3 # _R3 ::MAKE THIS DIGIT ASCII J:MAKE ASCII IF NOT ALREADY BGT RLT 2 6% *:BR IF MORE TO DO “*BR IF DONE MOVB TYPE DECB INC B8R MoV MOV MOV Mov MOV RTI 8$: .BYTE RYTE $SOCNT: .BYTE $SOFILL: .BYTE $OMODE: .WORD R3 8% 8é $OCNT R&4 28 (SP)+,RS (SP)+.R& (SP) ¢ .R3 2(SP),4(SP) (SP)+ . (SP) 0 0 0 0 0 *SAVE FOR TYPING 1160 TYPE THIS DIGIT SCOUNT BY 1 S INSURE LAST DIGIT ISN'T A BLANK 1250 DO THE LAST DIGIT ::RESTORE *:RESTORE **RESTORE 23SET THE RS Ré R3 STACX FOR RETURNING : sRETURN ‘2 STORAGE FOR ASCII DIGIT :;TERMINATOR FOR TYPE ROUTINE S:0CTAL DIGIT COUNTER S37ERO FILL SWITCH *:NUMBER OF DIGITS TO TYPE CIRJOAD RPO7 PERF EXER MACRO Vv04.00 1-JAN-83 12:06:52 PAGE &7 L 13 SEQ 0167 CONVERT BINARY TO DECIMAL AND TYPE ROUTINE .SBTTL CONVERT BINARY TO DECIMAL AND TYPE ROUTINE 'Qt't'"'."""""""""""""'t'.'t'..'tt"'t"""""' 'YHIS ROUTINE 1S USED TO CHANGE A 16-BIT BINARY NUMBER TO A 5-DIGIT 2*SIGNED DECIMAL (ASCII) NUMBER AND TYPE IT. DEPENDING ON WHETHER THE :*NUMBER 1S POSITIVE OR NEGATIVE A SPACE OR A MINUS SIGN WILL BE TYPED :*BEFORE THE FIRST DIGIT OF THE NUMBER. LEADING ZEROS WiLL ALWAYS BE :'?EttACED WITH SPACES. e ‘e 036434 036434 036436 010046 010746 036446 012746 036440 036442 036444 036452 036456 036460 03¢ 52 036470 036472 036476 010246 010346 010546 016605 100004 005405 112766 005000 012703 112723 $TYPDS: 000020 000040 005002 016001 160105 002402 005202 000774 060105 005702 001002 105716 100407 106316 036536 116663 000001 052702 110223 000040 036534 103003 036544 052702 036556 005720 036550 036554 036560 036564 036566 036570 036572 036574 036576 036600 036606 036610 036612 036614 036616 020027 002746 003002 010502 000764 105726 100003 116663 105013 012605 012603 012602 012601 000001 036650 036502 036506 036510 036512 036514 036516 036520 036522 036524 036526 036530 036532 1$: 2%: 036640 38: 48: cg. 000060 177777 6%: 7%: ::PUT THE BINARY NUMBER ON THE 1360 TO THE ROUTINE MOV MOV RO, =(SP) R1.=(SP) ::PUSH RO ON STACK 1:PUSH R1 ON STACK MOV #20200,-(SP) 1iSET BLANK SWITCH AND SIGN MOV BPL NEG MOVB CLR MOV MOVB CLR MOV SUB BLT INC BR ADD ST BNE 1s1B BMI ASLB 8$: 177776 9% R2,=-(SP) R3,=-(SP) RS ,=(SP) 20(SP) .RS 1% RS #'-,1(SP) RO #$DBLK,R3 " (RS)* SIYES==SET THE SIGN #'0,RS ¥ .R? R2,(R3)+ (RO) + CMP BLT BGT MOV BR TS18 BPL RO, #10 2$ 8s RS,R2 6% (SP)+ 9% MOV (SP)+.R3 MOVB CLRB MOV MOV MOV ::SET THE FIRST CHARACTER TO A BLANK 1(SP),=1(R3) BIS BIS MOVB $3GET THE INPUT NUMBER ‘iBR IF INPUT IS POS. ‘:MAKE THE BINARY NUMBER POS. 1SMAKE THE ASCII NUMBER NEG. ::7ERO THE CONSTANTS INDEX S3SETUP THE OUTPUT POINTER ::ADD BACK THE CONSTANT *SCHECK IF BCD DIGIT=0 “:FALL THROUGH IF 0 S:STILL DOING LEADING 0°'S? :iBR IF VES *MSD? 6% MOVB =1(SP),=2(R3) (R3) (SP)+,RS (SP)+.R2? (SP)+.R1 STACK ::PUSH R2 ON STACK :sPUSH R3 ON STA(K ::PUSH RS ON STACLK R2 $DTBL (RO) ,R1 R1,RS 4% R2 3¢ R1,RS R2 5% (SP) 7% (SP) BC(C ST 000010 177777 NUM, = (SP) MOV MOV MOV 020200 000055 MOV TYPDS ..CLEAR THE BCD NUMBER ;iGET THE CONSTANT *FORM THIS BCD DIGIT BR IF DONE " INCREASE THE BCD DIGIT BY 1 P:BR IF NO T:MAKE THE BCD DIGIT ASCII “IMAKE IT A SPACE IF NOT ALREADY A DIGIT ::PUT THIS CHARACTER IN THE OUTPUT BUFFER $3JUST INCREMENTING P3CHECK THE TABLE INDEX 2360 DO THE NEXT DIGIT 1160 TO EXIT PIGET THE LSD ::60 CHANGE T0 ASCII .,uas THE LSD THE FIRST NON-ZERO? 1:BR IF NO ves--ser THE SIGN FOR TYPING *SET THE TERMINATOR ..PCP STACK INTO RS *:POP STACK INTO R3 SIPOP STACK INTO R? 1:POP STACK INTO R1 CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 47-1 CONVERT BINARY 10O DECIMAL AND TYPE ROUTINE 036620 0126010 036650 036622 10440 6 000002 000004 036626 01666 6 036634 01261 036636 000002 036640 023420 036642 001750 036644 000144 036646 000012 036650 ¢$DTBL: $DBLK: MOV TYPE Mov (5P)+,RO $DBLK 2(SP),4(SP) 1000. 100. 10. .BLKW & MoV RTI 10000. (SP)+, (SP) SEQ 0168 m13 _INTO RO R ;:POP STACK THE NUMBE TYPE ;:NOW :sADJUST THE STA(K ;sRETURN TO USER N 13 (ZRJOAQ iPQ7 PERF EXER MACRO V04.0C 1-JAN-83 12:06:52 PAGE 48 SEQ 0169 COMMUNICATIONS ROULTINE .SBTTL APT COMMUNICATIONS ROUTINE AR RARAASAARRARRARARAARRRRR2 R 2R RRR2RRRRRRR2 ] ] 000001 000001 $ATYL: MOovB MOvB #1,8MFLG 000001 $SATYS: $ATY(: MOvB #,8FFLG ¢.T0O ONLY REPORT FATAL ERROR MOV MOV 1S718 RO,=(SP) R1,-(SP) SMFLG ::PUSH RO ON STAC(K ::PUSH R1 ON STA(K (MPB BNCL 6l18 BEQ MOV #APTENV,SENV ..OPERATING UNDER APT? FAPTSPOOL , SENVM ..SHOULD SPOOL MESSAGES? J1F NOT BR ..GEY HESSAGE ADDR. TST BNF SHSGTYPE 1% RO, $MSGAD BNE 5UB 2% $MSGAD,RO 2s: C0122¢ 001224 000004 00:206 000004 000002 037034 000004 037124 MOV 1S18 (RO)¢ 001210 000004 ;IF NCT: BR ;IF NOT: BR ;BUMP RETURN ADDR. :sSEE [t DONE W/ LLAST XMISSION? Jo1F NOT: WAITY JsPUT ADDR [N MA]LBOX JsFIND END OF MESSAG:E ..SUB START OF MES SAGE s:GEY MESSAGE LNG 4 [N WORDS MOV ADD v @4 (SP) 2 5 BR 1SR .WORD 1S18 8t0Q 1ST BNE MOV ADD 12%: ooSHOULD TYPE A "ESSAH’, ssPUT LENGTH IN M-]LBOX :;TELL APT TO TAK: MSG. 4% PC,STYPE INC (LRB PUT MSG ADDF [N JSR L INKAGE -BUMP RETJRN ADDRESS : ;PUSH 199776 ON STACK $3CALL TYPE MACRO ;sSHOULD REPORT FATAL ERROR? IF NOT: ;o ER JIF NOT: BR ;;RUNNING UNDER APT? YPE = 11%: ERFOR d:.SHSGlVPE 1ST 001206 FATAL «:T0 TYPE A MESSAGE RO RO,$MSGLGT 8EQ 001226 ::70 REPORT /SR MOV MOV * OO~V 177776 035652 38: #2,L(SP) ADD SFATAL O 001222 1$: O 000004 33 a4 (SP) RO TM~ 002506 000002 001200 3% 00 O = 001227 5% [ 000100 BEQ N~ 001226 SATY( -< 000001 B8R O 037122 #1,8FFLG OO0V~~~ PRPAARD A 2P SV DB BV S OMNY TM VO N\ ~PNPZPeTM o < -~ T OYESSWD $ATY3: OO =O2mmm O NINIWVAANANRY N =t LN b N =2 N 000200 000001 000100 000040 A (= 1 ] ~NWwWNN JWWIWNOOWN—=NONOON O ~ o ONWNNOOOO —~O—»— O MPOMNIN OCO0OO0O0O0O0O0O0O0—O =000V —O=O OO OO0 =0 —==0000 =000 =0OWONOO == O WNINONOOCO W= NO =2 WVNIN =N =N = NOO QOON COOCONI N NSNS NSV O NN~ N =N OO0 O O NANNN oOC~N O =2 NNNNONVINWNON A N LN LN N N N N NNNNNNNNNNNNNNY — o e ad b D D i wnd (elelolelele] PNORNVNVN) = b =0 OO NOOM NV S WO O SO HOOOMNO 7036 OC==0000r 000000 7036 OO === D0000000— A LN Ui A AN N AN A W L AN AN AN N N 7034 CTV;!\“’J‘\KDNFNUPQCMN‘J\K}’“MCVQD“M—ND NN [=4¥] OMN =2 NN O O NANN NN ONINNWNVAN S B WO WW MR (eotoleleolelololelolalelelalelelelelololalelololole e APT ,,FINISHED LAST MESSAGE? ssGET ERROR # . .BUMP RETURN ADDR. APT TO TAKE ERRCR R FATAL FLAG R LOG FLAG R MESSAGE FLAG STACK INTO R1 gtACK INTO RO CZRJOAC RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 49 B 14 SEQ 0170 RANDOM NUMBER GENERATGR ROUTINE .SBTTL RANDOM NUMBER GENERATOR ROUTINE MR AAALAARAAAASAAAAARAARARAARAMARRRR AR AR RRdRllld) :*THIS ROUTINE IS A DOUBLE _PRECISION PSEUDO RANDOM NUMBER GENERATOR ;*WITH A RANGE OF 0 TO 2(+33)-1, s*CALL: o 1T . JSR RE TURN PC,$RAND 037140 037144 037150 037152 037154 037156 037160 03716« 037166 037172 03717¢ 037200 037204 037210 037214 037216 037220 037222 037224 037226 010946 010146 010246 013700 013701 012702 006300 006101 005202 001374 053700 005501 063701 062700 005501 062701 010037 010137 012602 012601 012600 000207 176543 123456 $RAND: 037226 037224 177771 037226 037224 001057 047401 037226 037224 1%: :;RETURN HERE THE :;NUMBER WILL BE : 2SHINUM, SLONUM " 027126 037126 037130 037132 037134 ;:CALL THE ROUTINE RANDOM IN MOV MOV MOV MOV RO,=(SP) R1,=(SP) R2,=(SP) $LONUM,RO :;PUSH RO ON STACK ::PUSH R1 ON STACK :sPUSH R2 ON STAC(K ::SET RO WITH LOW ADD #474601,R1 ::ADD HIGH CON3TANT MOV MOV ASL ROL INC BNE ADD ADC ADD ADD AD( MOV Moy MOV MOV MOV RTS $SHINUM: _WORD SLONUM: .WORD $SHINUM,R1 #-7,R2 RO R1 R2 1% SLONUM ) R1 SHINUM,R1 #1057 ,RC R1 RO, SLONUM R1,SHINUM (SP)+,R? (SP)+,R1 (SP)+,R0 PC 176543 123456 ::SET R1 WITH HIGH ::SET SHIFT COUNT 2;SHIFT RO LEFT AND s :ROTATE CARRY INTO R1 AND 2:CHECK FOR DONE ::CONTINUE SHIFT LOOP ::ADD NUMBER TO MAKE X 129 ::PROPOGATE CARRY :ADD NUMBER TO MAKE X 129 ::ADD LOW CONSTANT : sPROPOGATE CARRY :SAVE RO :2SAVE R1 ::POP STACK INTO R2 ::POP STACK INTO R1 ::POP STACK INTO RO : RETURN CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B83 12:06:52 PAGE S0 SAVE AND RESTORE RO-FS ROUTINES .SBTTL ¢ 14 SEQ 0171 SAVE AND RESTORE RO-R5 ROUTINES ::""t".""'"""""'"""""""."l"".."""""""' s *SAVE RO=-RS s*CALL: ;i SAVREG ;*UPON RETURN FROM $SAVREG THE STACY WILL LOOK LIKE: ;t 1T0P===(+16) Jr $2-==(+18) s* +4===R5 ;¥ +6===R4 ;* +8---R3 ;*+10-==R2 ;412===R] ;*+14---R0 037230 037230 037232 037236 037236 0372640 037242 037244 037250 037254 037260 037264 $SAVREG: 010046 010146 010246 010346 010446 010546 016646 016646 016646 016646 000002 MOV MOV MOV MOV MOV RO,=(SP) R1,=(SP) R2,=(SP) R3,=(SP) R4 ,=(SP) ::PUSH :sPUSH :sPUSH :;PUSH ::PUSH MOV MOV 22(SP) ,=(SP) 22(SP),=(SP) ::SAVE PC OF MAIN FLOW :sSAVE PS OF CALL [0} MoV 000022 000022 000022 000022 MOV RTI RS.,=(SP) 22(SP),=(SP) 22(SP) ,=-(SP) RO R1 R2 R3 R4 ON ON ON ON ON STA(CK STACK STACK STACK STACK ;3PUSH RS ON STACK JsSAVE PS OF MAIN FLOW ;sSAVE PC OF CALL :*RESTORE RO-=RS 037266 ;*CALL: e 037266 012666 037312 037314 037316 037320 012603 012602 012601 012600 037272 037276 037302 037306 037310 037322 012666 012666 012666 012605 012604 000002 000022 000022 000022 000022 $RESREG: RESREG [ [0} (SP)+,22(SP) :sRESTORE PC OF CALL MOV MOV MOV MOV (SP)+,R3 (SP)+ ,R?2 (SP)+ R (SP)+,RO ::POP ::POP ::POP ::POP MOV MOV MOV MOV MOV RT] (SP)+,22(SP) (SP)+,22(SP) (SP)+,22(SP) (SP)+,RS (SP)+ R4 2:RESTORE PS OF CALL ;;RESTORE PC OF MAIN FLOW :sRESTORE PS OF MAIN FLOW ::POP STACK INTO RS 2:POP STACK INTO R4 STACK STACK STACK STACK INTO INTO INTO INTO R3 R? R1 RO COUBLE LENGTH BINARY TO DECIMAL ASC! (SY CIZRJOAQ RPO7 PERF EXER MACRO V04.00 -J AN=-83 12:06:52 PAGE C ONVERT ROUTINE .SBTTL MR A A AR R D 14 51 SEQ 0172 DOUBLE LENGTH BINARY TO DECIMAL ASCII A A A Rl A R A A R R R R R R X R R CONVERT ROUTINE R R R R A I I +*THIS ROUTINE WILL CONVERT A 32-BIT BINARY NUMBER TO AN UNSIGNED ;*DECIMAL (ASCII) NUMBER. THE SIGN OF THE BINARY NUMBER MUST BE :-ngirxve. B v MOV e RE TURN i JSR #PNTR, = (SP) PC,an€DB20 ;:POINTER TO LOW WORD OF BINARY NUMBER ;:THE FIRST ADDRESS OF 2315 ON THE STACK 037324 037326 037332 037336 106412 016602 012700 010066 037344 012202 037342 037346 037354 037360 037364 037366 037370 037372 037374 037376 037400 037402 037404 012201 012737 012704 012705 005003 161401 005602 161502 002402 005203 000772 062401 005502 037406 037410 062402 022525 037416 037420 037422 037426 037426 037430 037432 037436 037436 037440 037442 037444 037446 037450 037452 937454 037456 037460 037462 037464 037466 037470 037472 110320 005327 000000 001357 105020 104413 000207 145000 035632 160400 002765 113200 000230 041100 000017 103240 000001 023420 000000 001750 000000 000144 000000 037412 052703 $DB2D: 000002 037504 000002 000012 037434 037436 2(SP) ,R2 #$DECVL,RO RO, 2 (SP) MOV (R2)¢ .R2 MOV 037422 MOV 1$: 28: 3¢: 000060 SAVREG MOV MOV MOV (RQ) +,R1 #10.,48 MoV MOV CLR SUB SBC SUB BLT INC BR ADD ADC #S$TNPUWR,RG #STNPWR+2,RS R3 (R&) ,R1 R2 (RS) ,R2 3¢ R3 2% (R4) ¢+ ,R1 R2 BIS #'0,.R$ ADD CMP MOVB DEC MORD BNE CLRB RESREG RTS $TNPWR: 145000 35632 160400 2765 113200 230 041100 17 103240 1 23420 0 1750 0 144 0 (RG)+,R2 (RS)¢+,(RS)+ R3,(RO)+ (PC)+ O 1$ RO) + PC ASCIZ ::SAVE REGISTERS ::PICKUP THE DATA POINTER ::GET ADDRESS OF ''$DECVL'* STRING ::PUT ADDRESS OF ASCIZ STRING ON STACK ;:PICKUP THE BINARY NUMBER ;:SET UP TO DO 10 CONVERSIONS ::ADDRESS OF TEN POWER :;CLEAR PARTIAL 13 SUBTRACT TEN POWER ::BR IF TEN POWER TO LARGE S3ADD 1 TO PARTIAL $:LO0P ;sRESTORE SUBTRACTED VALUE ssMOVE TO NEXT TEN POWER {3 CHANGE PART'AL TO ASCII JsSAVE 17 :DONE? ::BR IF NO P STERMINATOR S:RESTORE REGISTERS :SRETURN 1:1.0E09 ::1.0E08 ::1.0€07 ::1.0E06 ::1.0E05 ::1.0E04 ::1.0E03 ::1.0€02 (IRJOAO RPO7 PERF EXER MACRO V04,00 1-JAN=-83 12:06:52 PAGE 51-1 DOUBLE LENGTH BINARY TO DECIMAL ASCII 037474 037476 €37500 037502 037504 000012 000000 000001 000000 SEQ 0173 CONVERT ROUTINE 12 0 1 0 $DECVL: .BLKE ::1.0€01 ::1.0€00 12, :sRESERVE STORAGE FOR ASCIZ STRING F (IRJOAO KPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 52 DOUBLE LENGTH BINARY TO OCTAL ASCII 14 SEQ 0174 CONVERT ROUTINE LSBTTL A DOUBLE LENGTH BINARY TO OCTAL ASCII AAAAAAAAAR AR AR AR RAAAARARAAR AR CONVERT ROUTINE AR AR R] D)) :*THIS ROUTINE WILL CONVERT A 32-BIT UNSIGNED BINARY NUMBER TO AN S*UNSTIGNED OCTAL ASCIZ NUMBER. seCALL e MOV e RE TURN it 037520 104412 037522 016501 037532 012706 037542 037544 037546 037550 037552 037554 037556 037560 037562 037564 037570 037572 037574 037576 037600 037602 037604 037606 037610 037612 012100 012101 005002 110245 010002 005304 003007 001405 005205 010566 104413 000207 006203 006001 006000 006001 006000 006001 006000 040302 037526 037536 037614 037620 037622 000002 012705 037637 012703 177770 062702 000753 $0B20: 00001¢ JSR SAVREG MOV 000002 28 : 38: 000060 $0CTVL: = (SP) PC,ar$0B20 2(sSP) ,R1 MOV #$0CTVL*13. RS MOV #*(C7.R3 MOV 1$: #PNTR, MOV MOV CLR MOVB MOV DEC BGT BEQ INC MOV RESREG RTS ASR ROR ROR ROR ROR ROR ROR BIC ADD B8R .BLKB #2. ,R& (R1)+,R0 (R1)+.R1 R2 R2,=(RS) RO.R2 R 3 2% RS RS,2(SP) ::POINTER TO LOW WORD OF BINARY NUMBER S3CALL THE ROUTINE *THE ADDRESS OF THE CHAR. IS ON :iSAVE ALL REGISTERS ‘PICKUP THE POINTER TO LOW WORD .POINTER TO DATA TABLE ;DO ELEVEN CHARACTERS MASK .,LOUER WORD S HIGH WORD s TERMINATOR ;:PUT CHARACTER IN DATA TABLE S3GET THIS DIGIT $:COUNT THIS CHARACTER $3BR IF NOT THE LAST DIGIT 23BR IF IT IS THE LAST DIGIT 2:ALL DIGITS DONE-ADJUST POINTER FOR FIRST :3ASCIZ CHAR. & PUT IT ON THE STACK :;RESTORE ALL REGISTERS SRETURN TO USER ::POSITION THE MASK FOR THE LAST DIGIT ::POSITION THE BINARY *'UMBER FOR i THE NEXT OCTAL DIGIT PC R3 R1 RO R1 RO R1 RO R3,R2 ::MASK OUT ALL JUNK 14, ::RESERVE DATA TABLE #0,R2 1% FIRST ASCIZ T:MAKE THIS CHAR. ASCII 2360 PUT IT IN THE DATA TABLE THE STACK CIRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 53 6 14 SEQ 0175 POWtR DOWN AND UP ROUTINES .SBTTL POWER DOWN AND UP ROUTINES MIAASAALALAAALASALAAAAAAARARAARAARAARARRRARAR AR R0 Al dd) 037640 037646 037654 037656 037660 037662 037664 037666 037670 037674 037700 037706 037710 012737 012737 010046 010146 010246 010346 010446 010546 017746 010637 012737 000000 000776 040012 000340 141260 040016 037712 000024 000026 POWER DOWN ROUTINE ‘PURDN MOV #SILLUP,Q#PWRVEC ;;SET FOR FAST UP MOV #340,3#PWRVE(+2 ..bRIO:7 MoV RO,-(SP) :sPUSH RO ON STACK MOV MOV MOV MOV MOV MOV MoV MOV HALT BR 000024 . M 037712 012737 037720 037724 037730 037734 037736 037742 037766 037750 037752 037754 037756 037760 037762 037764 037772 040000 040002 040004 040006 040010 040012 040014 5 040016 013706 005037 005237 001375 005337 003775 012677 012605 012604 012603 012602 012601 012600 012737 012737 104401 040022 012716 040044 000002 000000 000776 000000 2 040020 000000 2 040022 200 040012 (40016 (40016 040016 $SAVR6: .=2 ::THE POWER UP SEQUENCE WAS STARTED ;. BEFORE THE POWER DOWN WAS COMPLETE :sPUT THE SP HERE PWRFLG: .WORD O ;POWER FAIL FLAG GOES HERE; '~.LED= 1 HEG?:R: LASCIZ <CRLF><LF>/"'POWER UP'® AT / 000024 000026 $PWRAD: SILLUP: 8 #SILLUP ,I#PWRVEC ;;SET FOR FAST DOWN $SAVR6, SP ::GET SP $SAVR6 ;sWAIT LOOP FOR THE TTY $SAVRE ¢:WAIT FOR THE INC 19 ..OF WORD PWRFLG sTTY WAIT LOOP & SET POWER FAIL FLAG 2% ;WAIT FOR FLAG= 1 (SP)+,aSWR :;POP STACK [NTO aSwR (SP) ¢ RS ::POP STACK INTO RS (SP)+,R4 :.POP STACK INTO R4 (SP)+,R3 :;POP STACK INTO R3 (SP)+,R? ::POP STACK INTO R2 (SP)+,R1 ;;POP STACK INTO R1 (SP)+ RO : POP STACK INTO RO #$PWRON,a#PURVEC :;SET UP THE POWER DOWN VECTOR #340,3#PURVEC+2 ;:PR]O:7 :;REPORT THE POWER FAILURE MSGPWR ¢sPOWER FAIL MESSAGE POINTER (PC)+,(SP) :sRESTART AT PWRUP PWRUP : ;RESTART ADDRESS 2%: 042 2] MOv CLR INC BNE DEC BLE MOV MOV MOV MOv Mov Mov MOV MOV MOV TYPE .WORD MOV ,WORD RTI HALT BR 0 $PWRMG: 012 : HANG UP :POWER UP ROUTINE $PWRUP: MOV 141204 037640 000340 .~2 R1 ON STACK % ON STACK R3 ON STA(CK R4 ON STACK R5 ON STA(K aSWR ON STA(CK SP UP VECTOR ALAAZAAAAAA2AARRR22R0d0RRRRRRRRRRRRRRRRRRRRRRRRRRRRARD 2 1%: 040020 I4 v :THIS ROUTINE HANDLES THE RETURN ON POWER UP., WAIT THREE (3) MINUTES AND ;00 AN AUTO RE-START 10 ‘SIZMEM 18 11 12 13 14 000024 R1,-(SP) ::PUSH R2,=(SP) s s PUSH R3,=(SP) :sPUSH R&4,=(SP) ..PUSH RS ,=(59) :PUSH aSWR,=(SP) .,PUSH SP,$SAVR6 :SAVE #$PURUP,3#PWRVEC :;SET 040044 040050 040052 040054 005227 001375 000005 005037 000000 177776 PWRUP: INC BNE RESET (LR #0 .~b PS sTTY LOOP, WAIT FOR :OF WORD sCLEAR THE WORLD :CLEAR PSW INCREMENT et D¥l & o4.a<[~[+vey¥4[Vo<w]4i[W4[n+NZw[-M2—0e—E2(~v(aV<&WWZL2~D—OW2D>CXLW4—E[+ OO oo M-o 4TM] 2O[« IO OTMIONTlflMflfOlNflOfiNlflMfiOlflMnlnlMnlflMOM — N[.-OV2JNY-o-oEoYY—N-OwM)]—bBNNNNV©ONN—[J-vN [NIIooOlMl-YYOaeeo0OV©0MlNlOOPNYOea2Val]MdMlYeO[[e0VaOo= NTOMlOW¥=N l]IOe,eMN[NNlPOloOI0A¥aeO]0UNMllNMOIeaMWOOT0OOOO ll-4AO NVMBeoOEPlleo0ORooKTlO[-OAlONooM,—0olO]M—ldOONo—dOIlK=oeM0eeNlOOl—JlOON2CcNII0TJFlNOeOlVolOVMorMTdO00lTeoSSONIOoeOMTOeEmlINNotNN0eNLOOlOMelMJ—SOI0VTro-aTlereIONNM0SeOeN—NrOle=OOR0MaNMOlNWLeI=l’rA0eONOalON—EedOT0e[ G—L-&N>wAVdS)U~-3v«YLV—Yem[dVRSUN@ *EEXIwNZOVDEaNAOV—2.oOY«a~DTaEeIcOUr—O—.JVIAXWo-IO~RRO«TVaDB0rUO|O—APVRsNw—~>@*UI_-aNLD"BrWElO<~>NV>-VOe9-~W>w—DNWNZVO0)I U_@=WTEUoOCJZEAOVaENUXVwLIJTDMAINUEi0JVEIZsOVXNrA2OO—Vse-LVCUWe—IuDNOwN—UO>DMAWDOCQO>.ZV. =o«w.Oo~——Cw20—o Y«WJIQWJA<9AeooEdOMLXR9wIO0 )-NJ—xOWNZE2wowa02AX—FLw>REOYW— W>AN—Cg-u—A-w[M2OX~¢I-V-=0OeXU~-WwA~D)(]Xw@WCDLLxaDRedO>DWW7d€2 -u-X3|-NOrI—>—QUO-E@Q>VO0<VZOWTNW-MOAOOIXB-YwOutMS-=wA [V 4-[+ .L[<o o=[8=[+Z—_ — N.vV —cZ& - La-NDD0UBOUO=Tw>w-~2t )oV[PyNN—>WOa+ wi .o . D~— [)-— g S —r 2< ](S0 - POWER DOWN AND UP ROUTINES CIRJOAQ RPO7 PERF EXER MACRO vV 04.00 1-JAN=B3 12:06:52 PAGE 53-1 H 14 SEQ 0176 G— oZwo-4a a-Ax.Z <v a— [ 14 CZRJOAQ RTM07 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 54 SEQ 0177 TRAP DECODER 1 .SBTTL TRAP DECODER ;:t""'t"""""'""""""'l"'."i"""'t""!"."""" ;*THIS ROUTINE WILL PICKUP THE LOWER BYTE OF THE ‘'TRAP'* INSTRUCTION s«AND USE IT TO INDEX THROUGH THE TRAP TABLE FOR THE STARTING ADDRESS ;*OF THE DESIRED ROUTINE. THEN USING THE ADDRESS OBTAINED IT wiLL 2#GO TO THAT ROUTINE. 040256 040260 040266 040266 040270 040272 040276 010046 016600 005740 111000 006300 016000 000200 $TRAP: 000002 040312 MOV MOV ST MOVB ASL MOV RTS RO, =(SP) 2($P) RO = (RO} (RO),RO RO $TRPAD(RO),RO RO ::SAVE RO SiGET TRAP ADDRESS ::BACKUP BY 2 S:GET RIGHT BYTE OF TRAP SPOSITION FOR INDEXING ::INDEX TO TABLE 2360 TO ROUTINE ;:THIS IS USE TO HANDLE THE '‘GETPRI'* MACRO 040300 040302 040310 011646 016666 000002 000006 000002 $TRAP2: MOV MOV RT] .SBTTL (SP),=(SP) 4(SP),2(SP) ::MOVE THE PC DOWN ::MOVE THE PSW DOWN ::RESTORE THE PSW TRAP TABLE :*#THIS TABLE CONTAINS : ROUT INE THE STARTING ADDRESSES OF :+BY THE 'TRAP'' INSTRUCTION. 040312 040300 060326 034020 040330 040332 040334 040336 033730 034272 034362 037230 040314 040316 040320 040322 040374 5460340 2 060342 3 035652 036232 036206 036246 036434 037266 033020 000032 $TRPAD: .WORD $TYPE $TYPOC $TYPOS $TYPON $TYPDS $TRAP? THE ROUTINES CALLED ;;CALL=TYPE ;:CALL=TYPOC ;:CALL=TYPOS ::CALL=TYPON ::CALL=TYPDS TRAP+1(104401) TRAP+2(104402) TRAP+3(104403) TRAP+4(104404) TRAP+5(104405) TTY TYPEOUT ROUTINE TYPE OCTAL NUMBER (WITH LEADING ZEROS) TYPE OCTAL NUMBER (NO LEADING ZEROS) TYPE OCTAL NUMBER (AS PER LAST CALL) TYPE DECIMAL NUMBER (WITH SIGN) $GTSWR ;;CALL=GTSWR TRAP+6(104406) GET SOFT-SWR SETTING $CKSWR $SRDCHR $SROLIN $SAVREG ;:CALL=CKSWR ::CALL=RDCHR ::CALL=RDLIN ::CALL=SAVREG TRAP+7(104407) TEST FOR CHANGE IN SOFT-SWR TRAP+10(104410) TTY TYPEIN CHARACTER ROUTINE TRAP+11(104411) TTY TYPEIN STRING ROUTINE TRAP+12(104412) SAVE RO-RS ROUTINE $SRESREG ::CALL=RESREG $DSPLY ::CALL=DISPLY $TERM= , ~$ TRPAD TRAP+13(104413) RESTORE RO-RS ROUTINE TRAP+14(104414) ROUTINE TO TYPE ERROR MESSAGES CZRJOAD RPO? PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 55 SEQ 0178 RPO7 DRIVER g .SBTTL 1% ;STORAGE FOR RPDS, RPER1, RPER2, AND RPER3 16 040344 040354 040364 040374 040404 040414 040424 7 040434 000000 000000 000000 000000 000000 000000 000000 000000 18 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 090000 000000 000000 000000 000000 RPSTUO: RPSTU1: RPSTU2: RPSTU3: RPSTU4: RPSTUS: RPSTU6: RPSTU7: .WORD .WwORD .WORD .WORD .WORD .WwORD .WwORD .WwORD 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 ;DS, ER1, ER2 & ER3 STORAGE FOR DRIVE 0 :DS, ER1, ER2 €& ER3 STORAGE FOR DRIVE 1 :0S, ER1, ER2 & ER3 STORAGE FOR DRIVE ¢ :DS, :DS, :DS, :0S, :DS, ER1, ER1, ER1, ER1, ER1, :DRVACT=0 If DRIVE 20 000 000 000 000 28 040451 29 040452 2? 040453 000 000 000 000 32 IS IDLE DRVACT: .BYTE .BYTE .BYTE .BYTE 0 0 0 0 ;DRIVE ;DRIVE :DRIVE ;DRIVE BYTE .BYTE .BYTE 0 0 0 :DRIVE 5 ;DRIVE 6 ;DRIVE 7 .BYTE 0 0 1 2 3 sDRIVE 4 ;TABLE OF DRIVE STATUS INDICATORS (DRVSTA=8 BYTES) 33 ;DRVSTA=0 IF DRIVE IS OFFLINE OR NONEXSITENT 34 :DRVSTA>0 If DRIVE IS ONLINE %2 ;DRVSTA<O IF DRIVE IS UNSAFE 37 060454 38 040455 39 040456 40 060457 000 000 000 000 DRVSTA: .BYTE .BYTE .BYTE .BYTE 0 0 O O ;:DRIVE ;DRIVE :DRIVE ;DRIVE 42 040461 43 040462 000 000 .BYTE .BYTE 0 0 ;DRIVE 5 ;ORIVE 6 000 000 46 47 48 49 61 BYTE .BYTE 0 0 0 1 2 3 JORIVE & ;ORIVE 7 ;TABLE OF DRIVE TYPES ;DRVTYP= O IF ;DRVTYP= & IF ;DRVIYP= 5 |F (DRVTYP=8 BYTES) DRIVE IS NONEXISTENT (DRVSTA=0, ALSO) DRIVE IS RPQ7+¢ DRIVE 1S RPO7 MOVING HEAD OPTION ;DRVTYP==1 [f NOT RPO7 g? 952 060464 53 040465 54 040466 55 040467 56 040470 57 04047 58 040472 28 040473 FOR DRIVE FOR DRIVE FOR DRIVE FOR DRIVE FOR DRIVE ;DRVACT<0 IF DRIVE IS ACTIVE WITH AN ERROR RECOVERY OPERATION 23 040446 24 060445 25 0460446 26 040447 22 040463 STORAGE STORAGE STORAGE STORAGE STORAGE ;DRVACT>0 If DRIVE IS ACTIVE WITH A (OMMAND %} 41 040460 ER2 & ER3 ER2 & ER3 ER2 & ER3 ER2 & ER3 ER2 & ER3 ;TABLE OF DRIVE ACTIVE INDICATORS (DRVA(T=8 BYTES) 19 27 040450 RPO7 DRIVER 000 000 000 000 000 000 000 000 DRVTYP: .BYTE .BYTE BYTE .BYTE .BYTE .BYTE BYTE BYTE 0 0 0 0 0 0 0 O ;DRIVE sDRIVE ;DRIVE ;DRIVE :DRIVE ;DRIVE sDRIVE :DRIVE 0 1 2 3 & 5 6 7 sTABLE OF DUAL PORT INITIALIZATION INDICATORS 3 4 5 6 7 CZRJOAOQ RPO7 PERF RPO7 DRIVER EXER MACRO V04,00 1=JAN-83 12:06:52 PAGE 55-1 62 ;DPINT=0 IF 22 65 66 67 68 69 70 71 040474 040475 040476 040477 040500 040501 040502 000 000 000 000 000 000 .BYTE BYTE BYTE BYTE BYTE BYTE 0 0 0 0 0 0 .BYTE 0 BYTE 000 ;TABLE OF 75 ;g INITIALIZATION [S NOT ACTIVE ON THE DRIVE ;DRIVE ;DRIVE :DRIVE ;DRIVE ;DRIVE ;DRIVE 9 040506 040507 040510 040511 040512 040513 000 000 000 000 000 000 000 000 87 88 :DRIVE 7 PENDING DUAL PORT REQUESTS 000000 ;:DRIVE 0 :DRIVE 1 0 0 0 0 0 0 :DRIVE ;DRIVE :DRIVE ;DRIVE :DRIVE ;DRIVE TRNSWT: .WORD 2 3 & S 6 7 O sEACH DRIVE 000000 101 102 }82 SRCHWT: .WORD 1S ASSIGNED ONE BIT, STARTING AT BITOO FOR DRIVE O. O ;RP0O7 DRIVER ACTIVE FLAG (ACTDRV=1 BYTE) ;ACTDRV=0 If DRIVER IS INACTIVE sACTDRV>Q IF DRIVER 1S ACTIVE 000 107 ACTDRV: .BYTE ;SOFIUARE 108 }?8 }}5 040521 .BYTE BYTE BYTE .BYTE BYTE BYTE 0 0 sSEARCH WAIT KEYS (SRCHWT=1 WORD) sTHIS IS A ONE WORD QUEUE THAT WILL CONTAIN A KEY FOR EACH OFf :THE DRIVES THAT ARE PERFORMING A SEARCH COMMAND FOR THE 1/0 :REQUEST THAT IS AT THE TOP OF THEIR REQUEST OQUEUE. 3; }82 040520 .BYTE BYTE THAT A DUAL PORT REQUEST IS NOT PENDING FOR THAT DRIVE THAT A DUAL PORT REQUEST IS PENDING FOR THAT DRIVE :"'DPB'' OF THE 1/0 OPERATION. 93 94 95 96 183 040516 & § sTRANSFER WAIT FLAG (TRNSWT=1 WORD) sTHIS IS A ONE WORD QUEUE. IT WILL CONTAIN THE ADDRESS OF gg g; 040514 DPRQS: 0 1 g :DRIVE 6 :DPRQS=0 IF ;DPRQS<O IF 78 0460504 79 040505 };g DPINT: 000 74 113 114 115 116 SEQ 0179 sDPINT<O IF INITIALIZATION IS IN PROGRESS ;% 040503 80 81 82 83 84 gg K 14 0 TIHER RO "INE ACTIVE TR=0. ACTSTR>0 . 000 ACTSTR: .BYTE FLAG (ACTSTR=1 SOFTWARE TIMER ROUTINE SOF TWARE TIMER ROUTINE BYTE) IS INACTIVE IS ACTIVE O ;SAVE REGISTERS FLAG (SAVEFG=1 WORD) sSAVEFG <0 IF SAVE THE RHXX/RPO7 REGISTERS WHEN THE ;OPERATION IS COMPLETED AS PER (DPB+14). ;SAVEFG=0 IF SAVE THE RHXX/RP0O7 REGISTERS, AS PER :(DPB+14), AFTER AN ERROR. L 146 CZRJOAQ AQ RPO7 PERF EXER MACRO V04.00 1-JAN=-B83 12:06:52 PAGE 55-2 SEQ 0180 RPO7 OR DRIVER 119 040522 120 11 122 000000 SAVEFG: 127 040524 128 ¢FOR A DATA TRANSFER START A SEARCH COMMAND sSEEKFG<O IF DATA TRANSFER WILL DO IMPLIED SEE¢S, +DISREGARD THE WINDOW 177777 129 It 132 040526 133 040530 134 060532 177777 177777 177777 136 040536 137 040540 138 0405642 177777 177777 177777 135 040534 }28 040544 }22 040546 177777 TIMER: ,WORD .WORD .WORD -1 =1 -1 ;DRIVE 0 ;DRIVE 1 ;DRIVE 2 .WORD .WORD .WORD =1 -1 -1 :DRIVE & :DRIVE 5 :DRIVE 6 -1 -1 TIME ALLOWED FOR AN OPERATION ;DRIVE 3 :ORIVE 7 DTuw: ;DTUW=+N (WHERE N=0 TO 7) IMPLIES DATA TRANSFER UNDERWAY UN DRIVE N . WORD =1 ;ATTENTION BITS TABLE (ATABIT=8 BYTES) sTHIS TABLE CONTAINS THE CORRESPONDING BIT ¢ATTENTION BIT 001 002 004 010 020 040 }gg 040557 200 ATABIT: 100 .BYTE .BYTE .BYTE .BYTE .BYTE .BYTE 1 2 & 10 20 40 ;DRIVE ;DRIVE ;DRIVE ;DRIVE :DRIVE ;DRIVE .BYTE 200 :DRIVE 7 .BYTE 160 }g} 100 TO EACH DRIVES 0 1 2 3 4 5 :DRIVE 6 :STORAGE FOR RPADR (THE FIRST ADDRESS (776700) OF THE RHXX/RPQ7), sRPVEC (THE VECTOR ADDRESS (254)), AND RPVEC+2 (THE BR LEVEL (5)). 176700 000256 000050 }gg 000240 RPADR: RPVEC: RHEXT: ,WORD .WORD .WORD 176700 254,5+32. 50 ;RHXX/RPO7 CONTROL STATUS REGISTER sVECTOR ADDRESS & BR LEVEL 5 ;OFFSET TO RPBAE ¢SEARCH DIFFERENCE IS 1 SECTOR 000001 };} 173 174 17¢ TABLE (TIMER=8 WORDS) sTHIS TABLE CONTAINS THE .WORD -1 :DATA TRANSFER UNDERWAY INDICATOR (DTUW=1 WORD) :DTUWCO IF NO DATA TRANSFER UNDERWAY 151 040550 152 040551 153 040552 154 040553 155 040554 156 040555 }?3 040570 s TIMEOUT 177777 }gg 163 040560 164 0460562 }gg 040566 .WORD .WORD 147 148 157 040556 SEEXFG: 177777 141 142 }22 O :SEEK FLAG (SEEKFG=1 WORD) :SEEKFG=0 IF WHEN THE DISK ADDRESS ISN'T [N THE WINDOW 123 124 125 126 .WORD MXWNDW: .WORD 1 ;DEFINITIONS OF THE RHXX/RPO7 ADDRESS INDEXES 000000 000002 000004 RPCST RPW( RPBA =0 4 = 4 ;CONTROL AND STATUS REGISTER #1 (DRIVE REG. 00) :WORD COUNT REGISTER (NOT A DRIVE REG) ;UNIBUS ADDRESS REGISTER (NOT A DRIVE REG) WO000a00000AP (2 RJOAQO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06.52 PAGE 55-3 RPO7 DRIVER M4 SEQ 0181 Qro= on ~ ~C v~ oTM k-l 03313?37 PERF EXER MACRO V04.00 1~JAN=83 12:06:52 PAGE 56 1 :RHXX/RPO7 DRIVER 2 3 N 14 SEQ 0182 INITIALIZATION CODE :THIS ROUTINE WILL DETERMINE WHICH RPO7 DRIVES ARE :AVAIL ABLE FOR TESTING AND SET THE DRVSTA INDICATOR A 2 ‘1O THE PROPER STATE JSR PC,RPINIT FOR EACH DRIVE. :NOTE: THIS ROUTINE CALLS DRVINT g sCALL 9 ; RETURN }? : }% :NOTE: THE *P' OR 'L® CLOCK MUST BE STARTED 14 060572 15 040574 104412 013746 17 040606 004737 16 040600 177776 012737 000240 18 040612 012701 040344 20 040622 21 060626 gg 040626 005021 020102 103775 24 0460630 25 040634 012702 012721 gg 040642 101774 29 040644 30 040650 31 0406564 32 040660 33 040666 005037 005037 005037 005037 013703 38 39 40 2; 040712 040714 040720 040722 005001 004037 000401 000402 43 44 45 46 47 48 49 040724 040730 0640732 040736 040740 060746 060746 19 040616 012702 26 040640 020102 3L 040670 35 040674 36 040700 37 0407064 012723 013713 013704 012764 105061 005201 042701 001366 012637 1064413 000207 045772 RPINIT: 177776 040524 2%: 0404564 040456 040460 040462 040562 043174 040564 040560 000040 040750 3¢ 040456 48 5¢: 77770 177776 ;SAVE RO = RS *SAVE THE PRESENT PROCESSOR STATUS PC. (LRQUE *CLEAR ALL REQUEST QUEUES #<5%2.5>,30PS MOV #RPSTUO,RY :CHANGE THE PRIORITY TO 5 SFIRST ADDRESS TO BE CLCARED MOV #SEEKFG.R2 MOV MOV #OTUW,R? #-1,(R1)+ :LAST ADDRESS SINITIALIZE BLOS 2% *LOOP IF NO CLR CMP BLO CMP (R1) + R1,R. 18 R1,R2 TLAST ADDRESS TO BE :CLEAR :ARE WE DONE? ‘BRANCH IF NO CLEARED DONE? CLR CLR CLR CLR MO/ DRVSTA DRVSTA+2 DRVSTA+4 DRVSTA+6 RPVEC,R3 ;SETUP THE RHXX/RP0O7 VECTOR CLR JSR B8R 8R RY ao DRVINT 33 5$ ;START WITH DRIVE C SINIT THE DRIVE :*DVA® NOT SET OR PARITY ERROR *NORMAL RETURN DRVSTA(R1) R1 #4C7.R1 {1 (SP)+,aNPs ;SET DRIVE STATUS TO OFFLINE 260 TO NEXT DRIVE *MASK OUT UNUSED BITS :BR IF MORE DRIVES T0 GO SRESTCRE THE PROCESSOR STATUS *RESTORE RO = RS ‘BYE-BYE MOV MOV MOV MOV 000010 aNPS ,=(SP) MOV JSR 1%: 040546 177777 SAVREG MOV CLRB INC BIC BNE MOV RESREG RTS ;SET ALL DRIVES TO OFFLINE #ISR, (R3)+ RPVEC +2, (R3) RPADRRS ;FIRST ADDRESS OF RHXX/RPQ7 #B1T05,RPCS2(RG) " ;MASSBUS INIT PC CZRJOAO RPO7? PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 57 SEQ 0183 RPQO7 DRIVER 1 :DRIVE 2 3 A 5 ‘ . THIS ROUTINE DETERMINES IF A DRIVE EXIST AND I: IT IS AN RPO7, IF IT IS, A "READ=IN PRESET'' 1S ISSUED AND FMT22 ;1S SET f0 A “'1''. fHEN MOL, DPR, DRY, AND VV ARE_CHECKED T0 - INSURE THEY ARE ALL ON A "1°'. AND DEPENDING ON THEIR STATE, g ‘DRVSTA IS SET TO THE PROPER CONDITION. 8 9 10 . : ; 14 ’ 1 }§ . : 15 }9 177777 040474 18 33 023420 040526 1 0406454 264 041006 25 041014 000117 010000 22 04 23 041002 040464 000010 26 061022 27 041024 0006000 000010 045426 53 041030 30 041032 31 041036 32 041044 33 046 3% 52 040454 004000 000000 N %74 061262 012605 112761 000005 041076 022705 061104 022705 024040 112761 000004 041110 041112 001420 001415 020040 041120 022705 0641126 0641132 0641134 061142 022705 001404 112761 000446 024042 012746 004037 000000 041262 000121 045130 041124 54 041144 5S 041150 56 041154 57 041156 RPADR,R4 #DRVNUM,R1 RO.DRVINT MOV RS, =(SP) MOV ASR #10000., TIMER(R1) ;START 10. R1 :DRIVE ADDRESS CLRB DRVSTA(R) MOVB BIT #1{1 RPCS1(R4) :DO A DRIVE CLEAR COMMAND (& SEIZE DRIVE) #81712,RPCS2(R4) " ;NONEXISTENT DRIVE? RETURN? RE TURN? 2?{8 CLRB MOV BEQ JSR 001407 020042 177777 Q40464 PC,SET.IE (PARITY) :SAVE RS ;SET THE DUAL PORT INITIALIZE FLAG SECOND TIMER :START DRIVE STATUS AS OFFLINE ;CLEAR THE DRIVE TYPE INDICATOR *SELECT A DRIVE :NO-==BRANCH N 160 SET “‘IE'* WITHOUT A '‘TRE SLEAVE THIS ROUTINE 6% ;OTHERWISE EXIT flggr RO,RD.RP ;READ THE DRIVE TYPE RFG. 8% MOV (SP)+,RS :ERROR RETURN ADDRESS :PUT DRIVE TYPE IN RS MOVB #5,DRVTYP(R1) BEQ 13 ‘BR IF YES X ‘BR IF YES CMP BEQ MOVB CMP BEQ 040464 DRVTYP(R1) R1,RPCS2(R4) ;ERROR OCCURRED *NORPAL RETURN DRVSTA(R1) :SET DRIVE STATUS TO OFFLINE #BIT1" RPCS1(R4)’ ;SEE IF ODRIVE AVAILABLE 38 :BRANCH IF DVA SET DPINT(R1) JSOFTWARE TIMEOUT ON DUAL PORT [INITIALIZE ? 1$ ‘BRANCH IF NOT CMP 040464 :;f,DPXNT(R1) :UNJBUS #~ .RESS OF RHXX/RPO7 (RPCS1) :DRIVE NUMBER :CALLED BY A JSR CLRB BIT BNE 7518 BNE B8R 045036 041102 MOV MOV JSR B8R 35 49 50 51 g% INITILIZATION ROUTINE CMP BEQ MOVB 8R MOV JSR RPCS1 8$ #20040,RS #24040,RS #4,DRVTYP(R1) 220042 ,RS :SET RPO7 INDICATOR *SINGLE PORT RPO7 :DUAL PORT RPO7 :SET RPO7+ INDICATOR *SINGLE PORT RPO7+ /33 ;BRANCH IF SO #121,=(5P) RO,WRT.RP ;DO A "READ-IN PRESET' #24042,R5 (9 #-1,DRVIYP(R1) 6% ‘DUAL PORT RPO7+ :BRANCH IF SO :SET INDICATOR TO ‘OTHER' JEXIT CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 57-1 €15 SEQ 0184 RPO7 DRIVER 58 041160 59 041164 60 041170 61 041172 62 0641174 A3 041200 be 041202 65 041204 66 041206 012746 004037 000032 041262 004037 000012 061262 012605 100015 68 041216 69 041222 004037 000014 67 061210 116164 70 71 72 73 061224 061226 061230 061232 061262 006126 100004 112761 76 77 78 79 041242 061244 041250 061252 005105 042705 001003 112761 81 82 83 84 85 86 gg 041262 041262 041264 041272 041274 041300 041302 ;g 061240 80 041260 000407 005720 006301 012761 006201 105061 012605 000200 012000 045130 MOV JSR RPOF 8$ JSR RPDS 8% MOV BPL 045036 040550 045036 177777 000016 000001 177777 040454 040526 6$: 7%: 8$: 040474 RO,RD.RP :READ RPDS (SP)+,RS 5¢ ;AND SAVE IT IN RS ‘BRANCH IF ATA=0 ATABIT(R1),RPAS(R4) ;CLEAR ATTENTION BIT RO,RD.RP SFIND OUT WHY ATA=1 8$ ROL 8PL MOVB (SP)+ 5% #-1,DRVSTA(R1) ;1S 1T UNSAFE? ‘BR IF NOT :SET UNSAFE INDICATOR BR 5¢: 167077 ;SET FMT16=1 MOVB JSR RPER1 040454 #B1T12,-(SP) RO,WRT.RP COM BIC 6% CEXIT BNE MOVB RS ;CHECK MOL, DPR, DRY, AND VV #AC<BIT12'81T08'BITO7'BIT06>,RS 6% :BRANCH IF MOL, DPR, DRY, OR VV #1,DRVSTA(RY) :SET DRIVE STATUS TO ONLINE (RO) + :STEP OVER THE ERROR RETURN ASL MOV ASR CLRB MOV RTS R1 #=1,TIMER(R1) R1 DPINT(RY) (SP)+,RS RO :WORD INDEX :STOP THE CLOCK :DRIVE ADDRESS 18T IS CLEAR :RESTORE RS SEXIT gg ;REQUEST PRE-PROCESSOR-HANDLES SUBSYSTEM REQUEST g; :CALL 93 94 95 96 : : : ; JSR RO,RPO7 PNTADR RETURN1 RE TURN? ;CALL THE RP07 DRIVER :ADDRESS OF POINTER OF DRIVES PARAMETER BLOCK SRETURN WERE IF QUEUE IS FULL :RETURN HERE IF REQUEST IS IN QUEUE OR THERE RPO7: MOV 3PS, = (SP) :SAVE (RO),R2 :PICKUP THME DRIVE PARAMETER BLOCK POINTER gg 99 041304 013746 103 041326 011002 100 041310 101 041316 102 061324 106 041330 105 106 107 108 109 041334 041336 041342 041346 041350 }}? 061354 112 041356 113 041362 114 041364 177776 013737 112737 104412 040564 000001 005062 000016 111201 013764 105761 003006 004037 000421 105761 003435 105761 177776 040520 MOV CLR MOVB MOV TSTB BGT JSR 040560 040454 040750 040454 040504 MOV MOVB SAVREG 1$: RPVEC+2,a#PS #1,ACTDRV 16(R2) (R2),R1 RPADR,R& DRVSTA(RY) 1% RO,DRVINT B8R b1 TSTB BLE TsTB DRVSTA(RY) 5 DPRQS(RY) ;1S AN ERROR CONDITION THE CALLING STATUS :DON'T ALLOW ANY RPO7 INTERRUPTS $SET "'ACTIVE DRIVER' FLAG *SAVE RO - RS :CLEAR THE STATUS/ERROR INDICATOR :PICKUP THE DRIVE NUMBER :UNIBUS ADDRESS OF RP(CS? :CHECK DRIVES STATUS :BRANCH IF ONLINE :GO INIT. THE ORIVE :ERROR RETURN ;1S DRIVE STATUS ONLINE? ‘BR If NOT :OUTSTANDING PORT REQUEST FOR THF DRIVE ? (ZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 57-2 D 15 SEQ 0185 RPO7 DRIVER 115 061370 116 041372 117 041376 001016 010164 004037 120 041404 121 041410 122 061412 105761 001042 004737 04046é 125 061420 004737 042670 38: 128 041426 004037 046070 48 131 132 133 134 041434 041442 041446 041450 012764 032714 001023 004737 000000 000100 137 138 139 143 144 145 061456 041462 041464 041472 041476 041500 105761 002412 012762 105761 001007 012762 040454 148 149 150 151 061510 041516 041520 041522 012762 104413 005720 000401 153 041524 154 0641526 155 041530 156 041534 157 041540 104413 005720 105037 012637 118 041402 123 041416 126 041424 139 041432 135 041454 116 041506 000450 000437 000434 000434 000420 000403 000200 BNE MOV JSR 48 R1,RPCS2(R4) RO,DRVAUE ;BR IF VES :SELECT THE DRIVE :PUT THIS REQUEST TSTB BNE JSR DRVACT(R1) 7§ PC,0PT ;1S THIS DRIVE ACTIVE? :BR IF YES CALL THE OPTIMIZER JSR PC,C17 ;GO WANDLE JSR RO,DRVQUE ;PUT REQUEST MOV BIT BNE JSR #0,RPCC(R4) #BiT06,(R4) 78 PC,SET.IE ;WRITE THE CURRENT (YL REG S1E BIT SET 2 SYES :SET THE INTERRUPT TSTB BLT MOV 1ST8 BNE MOV DRVSTA(R1) ;SEE_IF DRIVE OFFLINE OR UNSAFE 68 :BR IF UNSAFE #BIT15'BIT14,16(R2) ~:SET OFFLINE ERROR INDICATOR DRVTYP(R1) ;SEE_IF OFFLINE OR NONEXISTENT 7% :BR IF OFFLINE #BIT15!BITO1,16(R2) ;REPORT DRIVE NONEXISTENT 6$: 78: MOV RESREG 1St BR #BIT15!BIT12,16(R2) ;DRIVE IS UNSAFE sRESTORE RO = RS (RO)+ :SETUP FOR NORMAL RETURN 9% :FINISH UP, THEN EXIT 88: 98: RESREG 1ST CLRB MOV RTS (RO) ¢ ACTDRV (SP)+,amps 000010 046070 BR 28: 041542 BR 000036 045426 BR BR BR 58 140000 040464 000016 100002 000016 110000 (00016 040520 177776 BR 8$ 7$ 78 8s 7% 78 RO ;QUEUE SQUEUE IS FULL ;60 TO EXIT :RESTORE RO - RS :CORRECT THE RETURN ADDRESS :CLEAR "“ACTIVE DRIVER' FLAG :RETURN ''PSTM* TO USER LEVEL :RETURN TO CALLER 161 162 S CALL : 164 ; 166 061562 167 041544 168 041550 104412 013746 177776 148137 040550 170 041562 004737 046144 173 041572 010164 169 041556 171 061566 172 041570 174 041576 105081 005702 001475 012764 040504 000010 000111 OPT: 040516 MOV MOV JSR SAVREG PC,OPT ;ADDRESS OF DRIVE PARAMETER BLOCK :DRIVE NUMBER SETUP A COMMAND :SAVE RO = RS MOV @#PS,-(SP) CLRB DPRAS(R1) :RESET THE PORT REQ FLAG 1ST BEQ R2 8% ;1S THERE A REQUEST :NDO--BRANCH T0 EXIT mov #1{1,RPCS'(R&) JICB JSR 000000 #DPB,R2 #DRVNUM,R1 IN QUEUE :RETURN ;OPTIMIZER-CALLED FOP A PARTICULAR DRIVE : THE PARITY ERRIR IS FULL 159 163 IN QUEUE MOV :SAVE PROC. ATABIT(RD),SRCHwE PC,GETREQ RI RPCS2(R4) STATUS :CLEAR SEARCH FLAG :GET "'DPB" POINTER OF REQUEST IN QUEUE? :LOAD THE DRIVE ADDRESS :CLEAR THE DRIVE ~N r I o~ o 0AQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 57-3 175 176 177 178 179 061604 061612 061614 0641620 041622 032764 001446 105761 003014 004737 181 182 183 184 061636 041640 041642 041650 105761 100056 012762 000452 040454 186 041652 187 061660 122762 002407 180 041626 188 041662 189 041670 190 041672 191 041676 193 041700 194 195 196 197 041704 041706 041712 041716 012762 040454 046166 110000 000016 000150 000002 122762 001403 004737 000437 000135 000002 005737 040546 002006 005737 100003 004737 042312 38: 040524 PC,POPQUE 2% : YES=~BRANCH :NO--REMOVE REQUEST FROM QUEUE MOV #BiT15'BIT14,16(R2) (MPB BLT #150,2(R2) {3 CMPB BEQ JSR BR 98 1ST DIUW BGE 1St BPL JSR ;SET OFFLINE STATUS/ERROR INDICATOR DRVSTA(RT) ;1S DRIVE UNSAFE ? 9% ‘B8R TO EXIT IF NOT #BIT1S!BIT12,16(R2) ;SET UNSAFE STATUS/ERROR INDICATOR 9s ;BRANCH TO EXIT ¥135,2(R2) 3% PC,Cl4 ;1S THE REQUEST FOR : YES--BRANCH 1/0? _ 1S"IT A DIAGNOSTIC (OMMAND ? :BRANCH IF SO :CALL THE COMMAND INITIATOR :BRANCH TO EXIT :DATA TRANSFER UNDERWAY? BR 5% SEEKFG 5¢ PC.CI 98 :BR IF YES :D0 IMPLIED SEEKS ? :NO, DO SEARCH :START A"DATA TRANSFER 042200 5% JSR BR PC,CI3 9s ;START A SEARCH ON TARGET SECTOR -1 G0 TO THE EXIT 112761 010103 006303 177777 040504 6$: 035230 (40526 MOVB MOV ASL #=1,0PROS(R1) R1,R3 R3 ;SET PORT REQUEST INDICATOR ;SET UP TO ADDRESS WORDS CONVERT TO WORD INDEX #0,RPCC{R4) 8s :SET PORT REGUEST SEXIT P ,C17 ;PROCESS THE PARITY ERROR 9% PC,SET,IE (SP)+,anPs :BR_IF SET o SSET "IETM WITHOUT A '‘TRE :RESTORE PROC. STATUS :RESTORE RO = RS 012763 012764 000402 000000 210 0641760 004737 042670 212 213 214 215 001102 004737 012637 104413 032714 MOV 000036 MOV BR 78: 000100 88 : 045426 177776 98: 000207 JSR BIT BNE JSR MoV RESREG RIS 218 219 220 221 222 LCALL : : 224 225 226 : : : AT5000.,TIMERCR3)CCISTART 15 SECOND. TIMER #BiT106, (R&) PC :SEE IF *IE* ALREADY SET _ ;COMMAND INITIATOR 223 : % 230 062012 231 042016 JSR BGY 004737 000423 207 041750 208 041756 229 062006 #BIT11,RPCST(RA) DVA SET ? 68 ;10 PROT'REQUEST ,IF NOT DRVSTA(R1) :1S DRIVE ONLINE? 48: 203 0641730 204 041736 205 041740 216 042004 BIT BEQ T1S18 TSTB BPL MOV BR 2: SEQ 0186 042006 200 061722 201 041726 041770 0641772 061776 042002 18: 000016 000426 211 0641764 000000 140000 138 041720 206 041742 004000 £ 15 MOV MOV JSR #DPB,R? DRVAUM,R PC,C127%2 : 004737 010237 010203 046166 040514 CI1: :ADDRESS OF DRIVE PARAMETER BLOCK :URIVE NUMBER :€12232 = (11, €13, OR Cl4 SWHERE: : CI1 = DATA TRANSFER : €13 = SEARCH REQUESTED BY DATA XFER : C1& = NO DATA TRANSFER JSR MOV MOV PC,POPQUE RQ.TRNSWT R2.R3 :REMOVE REQUEST FROM "DRIVES WAIT'* QUEUE :PUT REQ, IN TRANSFER WAIT QUEUE :DPB ADDRESS TO R3 CZRJOAQ RPO7 PLRF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 57-4 F 15 SEQ 0187 RPO7? DRIVER 232 042020 233 0462004 013704 010164 235 042036 236 042040 001011 016246 238 062050 239 062054 260 042056 52} 042060 004037 000024 042670 000422 045130 263 962062 264 0462066 062703 062704 000004 000002 266 062076 247 062076 248 062100 249 042104 250 0462106 251 062110 252 062112 012324 012346 004037 000006 042670 012346 004037 234 062030 122762 040560 000010 000135 MOV MOV 000002 237 062044 052716 100000 245 042072 253 042116 254 0642120 %g} 042122 012324 000034 042670 004737 045130 042152 JSR 026262 000012 272 042162 273 062166 012746 004037 100000 045130 042632 013704 040560 280 042210 016246 000012 283 042222 004037 000034 042670 MOV RPDC 17 000002 278 042200 281 062214 1%: 045130 270 042152 282 042220 [HE RPMR1 REG *LOAD BUFFER ADDRESS *LOAD SECTOR AND TRACK “CALL THE LOAD(WRITE) ROUTINE *INDEX OF REGISTER TO LOAD *ERROR RETURN ADDRESS *LOAD CYLINDER ADDRESS 000137 010164 ‘WRITE (R3)+, (R4)+ (R3)+,=(SP) RO,WRT.RP 040546 279 042204 ‘SET THE DIAGNOSTIC MODE BIT MOV MOV JSR RPDA 17 MOV JSR 045130 000024 042670 000207 RO,WRT .RP :DESIRED WORD COUNT *RPWC ADDRESS 010137 274 042172 275 042174 5;9 042176 #81T116,(5P) JSR RPMR1 17 BR #4 ,R3 #2 R 004037 000000 062670 002406 BIS ADD ADD 267 042142 271 042160 ‘BRANCH [F NOT ‘GET THE ROUTINE NUMBER, PARAMETERS SIS IT A DIAGNOSTIC COMMAND ? :LOAD THE COMMAND AND EXIT 016246 ggg 042146 1$ 4(R2) ,-(SP) #1%5,2(R2) 28 263 042126 264 062132 265 042136 266 042140 SRPCST ADDRESS “SELECT DRIVE CMPB BNE MOV 000004 RPADR, R4 R1,RPES2(RG) 2%: 000156 000010 Cl2: (R$)+, (RG) + (R3)+,=(SP) RO,WRT.RP *LOAD WORD COUNT PC,CI2 ;SEE IF BIT15 SHOULD BE SET IN RPMRI 2(R2),=-(SP) ;LOAD ''COMMAND+GO'’, ''A178A16'°, AND 'PSEL"’ MOV R1,0TUW ;SET "'DATA TRANSFER UNDERWAY'’ CMP 12(R2),FET(R2) :DATA XFER TO FE CYLINDERS ? MOV JSR #B1T15,-(5P) RO,WRT.RP YSET THE DIAGNOSTIC MODE BIT ‘WRITE THE RPMR1 REG MOV JSR RPCS1 17 RO,WRT.RP JMP 1 BLT 1% ‘BR IF NO 1%: RPMR1 17 RTS 13 MOV RPADR, R4 :RPCS1 ADDRESS MOV 12(R2),-(SP) ‘DESIRED CYLINDER ADORESS MOV JSR 045130 RPDC 17 PC R1,RPCS2(RG) RO,WRT .RP *SELECT DRIVE 004737 042152 JSR PC,CI2 sSEE IF BIT15 SHOULD BE SET IN RPMR1 286 042230 287 062234 288 062240 289 042242 116203 163703 002002 062703 000010 040570 MOV8 SUB BGE ADD 10(R2),R3 MXWNDW . R3 1% #50.,R3 ;PICKUP SECTOR ADDRESS ‘BACXUF OV MAX. SEARCH FOR 1/0 WINDOW ‘B IF >= 0 ) K “ADD MAXIMUM SECTOR COUNT BA 291 062250 116266 000011 MOVB 11(R2),1(SP) ‘THE DESIRED TRACK %gg 062224 290 042246 010346 292 062256 004037 294 062264 062670 293 042262 000006 000062 045130 000001 1$: MOV JSR RPDA 17 RY,-(SP) RO,WRT.RP ;COMBINE THE ADJUSTED SECTOR WITH *LOAD DESIRED TRACK & SECTOR ~ o o o~ RPO7 PERF 042266 0642272 042276 EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 575 012746 004037 000000 000131 045130 042310 000550 062312 C'2316 042322 042326 042332 013704 010164 116203 122703 001907 040560 000010 000002 000131 062340 042344 062346 042350 004037 000006 042670 000403 045130 WA 2OV WA ES 8585 = OO0 NV 852 B BB B AN AN AN U N N U U AN A U AN NN U AN U AN U AN U U U AN N NN W NN N N AN NNV = NN = OV ~NONW S NN = O VO NO WV b b Db b 2 2 NN NN = O U AN U AN AN G AN AN AN N N N AN AN N AN N 042334 016246 000010 122703 001011 016246 004037 000034 062670 004737 000525 042402 062406 0642410 042414 042416 062420 0424246 0462430 042432 042434 122703 001013 004037 000032 042670 116216 004037 000032 042670 000507 0626436 062442 042444 122703 001504 122703 001501 122703 001014 004037 000032 042670 116266 004037 000032 042670 000107 122703 000141 6$: 016203 000006 7$: 042452 042456 062460 042466 062466 042470 062476 042502 042504 042506 042510 042514 42516 000105 1%: 000012 045130 2%: 042152 000115 3%: 045036 000001 045130 6%: 000117 000143 5%: 045036 000001 045130 000001 000436 001023 S1%8 ATABIT(RY), . SROMWT v MOV MOV MOVB (MPB BNE RPADR R4 R1,RPES2(R4) 2(R2),R3 #131,R3 18 JSR RPDA c17 BR RO,WRT.RP 28 ;60 LOAD CYLINDER (MPB BNE MOV JSR RPDC 17 JSR BR #105,R3 33 12(R2) ,=(SP) RO,WRT.RP IS IT A SEEK COMMAND “BRANCH_IF NO ;LOAD DESIRED CYLINDER PC,CI2 cié ;SEE (MPB BNE JSR RPOF c1z MovB JSR RPOF C17 BR #115,R3 48 RO,RD.RP ;1S 1T AN "'OFFSET'* COMMAND ? :BR_[F NO sMERGE THE OFFSET VALUE INTO RPOF sBUT DON'T CHANGE THE UPPER 1(R2),(SP) RO,WRT.RP ;BYTE WHEN ! NADING THE sREGISTER (RrOF) c16 ;60 START THE COMMAND (MPB BEQ (NP8 8tQ (MPB BNE JSR RPOF c17 mMovse JSR RPOF c17 #107,R3 Cl6 #117,R3 :1S IT A ''RECALIBRATE'® COMMAND? :BRANCH IF YES SIS IT A RETURN TO CENTER? #143,R3 6% RO,RD.RP IS IT A ''SET FORMAT'' COMMAND? “BRANCH IF NO sREAD THE OFFSET REGISTER BR 128 (MPB #141,R3 ;1S IT A “'GET REGISTER' COMMAND? MOV 6(R2),R3 :POINTS TO 15T ADDRESS OF WHERE MOV 042352 042356 042360 042364 042370 042372 042374 042400 0462450 #131,=(SP) RO,WRT.RP BR Cl4: SEQ 0188 MOV JSR RPCS1 005309 156350 040550 040516 4 p) G 15 BNE ;START A SEARCH CIS 10(R2),-(SP) Clé 1(R2),1(SP) RO,WRT.RP 108 :S ET "'SEARCH “'SEARCH WAIT'' WAIT KEY JRPCS1 ADDRESS FSELECT DRIVE :PICKUP THE REQUESTED COMMAND JIS IT A SEARCH COMMAND? SBRANCH_IF NO :LOAD DESIRED TRACK & SECTOR IF BIT1S SHOULD BE SET sBRANCH IF VYES IN RPMRI , S L ;COMBINE ''fMT16'',"'€CI’’, AND "‘HCI “BRANCH [F NO 0 o~ O ~e 03313?37 PERF EXER MACRO V04.00 1-JAN=B3 12:06:52 PAGE 57-6 352 353 042522 354 042530 116237 116205 356 357 358 359 042540 062542 042544 042546 000000 042670 012623 023705 361 042554 %g% 042562 062737 000764 000002 364 042564 365 042570 366 042572 367 062576 368 042600 369 042602 370 042604 371 062610 372 042616 373 042622 376 042624 g;g 042630 122703 001405 010346 004037 000000 042670 004737 052762 005737 100002 004737 000207 000145 377 042632 378 042634 379 0462642 380 042644 gg; 062652 006301 012761 006201 112761 000207 383 384 385 386 ggg 042654 042656 042662 062664 042666 010346 004037 000000 042670 000761 389 042670 390 042672 391 042674 005702 001001 000207 §g§ 062676 012762 104000 000016 1$: 394 042704 395 042710 396 042714 397 062716 398 062720 399 042724 012746 004037 000000 042756 004737 105061 000111 045130 CI78: 000010 000011 355 042534 004037 045036 360 042552 400 401 402 403 404 042730 042734 042740 042742 042746 282 042754 407 062756 408 0462760 001414 105061 020237 001005 005037 012737 000207 104412 005001 042540 8$: 98 : 046166 000200 040522 ADD B8R 02,98 8% : INCREASE THE IND'X BY 2 ;LOOP=-=-MORE TO READ CMPB BEQ MOV JSR RPCS1 cl7 JSR BIS ST 8PL JSR RTS #145,R3 12% R3,=(SP) RO.WRT.RP SIS IT A “SELECT DRIVE'' COMMAND? *BRANCH IF YES *LOAD THE COMMAND PC,POPQUE #8i107,16(R2) SAVEF G 138 PC,SVRHXX PC JREMOVE REQ. FROM QUEJE :SET THE ''DONE'’ BIT :SAVE RHXX/RP07? REGISTERS ? ‘BR IF NO ;YES=-=-GO SAVE THE REGISTERS ‘RETURN TO USER CIS: ASL MOV ASR MOVB RTS R1 #10000.,TIMER(RY) JSTART 10. SECOND T!MER R1 #1 ,DRVACT(RY) JSET THE DRIVE ACTIVE PC *RETURN TO THE USER Cl6: MOV JSR RPCS1 17 BR R3,-(SP) RO.WRT.RP 1ST BNE RTS R2 1s BEQ 118 12%: 138: 023420 040526 000001 040444 045130 C17: 046050 040504 040444 040514 040514 177777 040546 :READ RHXX/RP0? REGISTER JGET THE CONTENTS OF RHXX//RPO? REG. :LAST REG. BEEN READ 10$: 045262 RO,RD.ép ;10 PUT THE REGISTER(S) :INIT. THE INDEX FOR THE FIRST REG. SINDEX OF LAST REG. TO MOVE (SP)+,(R3) 9% RS 062540 000016 JSR 10(R2).,9% 11(R2).RS SEQ 0189 RP(S1 17 MOV CMP 042540 045130 MOVB MOVB H 15 1$: C18: 12¢ :INDEX OF REG. TO READ SGET OUT IF YES ;LOAD THE COMMAND IS JANYTHING IN QUEUE ? BRANCH IF QUEUE IS THERE OTHERWISE EXIT . MOV 081715'81111 16(R2) MOV JSR RP(S1 cI8 JSR CLRB #111,-(SP) RO,WRT.RP ;D0 A "DRIVE CLEAR" PC,EMPTYQ DPRQS(RY) ;EMPTY THE QUEUE JCLEAR THE PORT REQUEST FLAG CLRB CMP BNE CLR MOV DRVACT(R1) R2, TRNSWT 1% TRNSWT #-1,0TUW SAVREG (LR R1 RTS ;SET “PARITY'' ERROR INDICATOR .DRlVE IS IDLE cIF THIS DRIVE HAD AN 1/0 REQUES?T :IN PROGRESS CLEAR ALL OF THE FLAGS PC ;SAVE RO - RS CZRJOAO RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE 57-7 SEQ 0190 RPO7 DRIVER 409 610 411 412 413 414 042762 042766 042770 062772 042776 0643000 005003 105761 001003 105761 001443 013702 416 063010 001402 418 0643016 419 043020 420 063022 005702 001413 032764 415 0643006 617 063012 020137 004737 040444 1%: 040504 040514 28: 0605646 046144 R3 DRVACT(R1) 2$ DPRQS(R1) 6% TRNSWT,R2 ;DRIVE ACTIVE? *BRANCH IF IN ACTIVE *PORT REQUEST ;BRANCH_IF NOT *GET ''DPB'' FROM THE "‘TRANSFER WAIT'' QUEUE BEQ 3g ‘BRANCH IF CMP JSR 010000 000010 ST BEQ BIT 012762 100002 000016 MOV 425 043042 012762 102000 000016 431 432 433 434 435 436 437 438 439 440 461 442 443 063056 063062 063066 0463072 043074 0643702 043106 043110 063114 043120 063122 043130 063136 105061 105061 020137 001005 012737 005037 005201 062703 042701 001321 012737 005037 004737 040444 040504 0605646 222 043146 000406 447 448 449 450 451 004737 105061 105061 004737 104413 421 043030 422 063032 252 043040 259 043050 444 043140 043150 043154 043160 063164 043170 2§§ 043172 001404 000403 012763 0127664 177777 177777 040514 3% CLR TSTB BNE TSTB BEQ MOV 040526 177777 040514 045772 000040 000001 458 043204 459 043210 460 043214 013704 013701 002402 040560 040546 462 063222 463 063226 464 043230 004737 104413 105037 043550 461 063216 222 04323¢ 467 004737 000002 043236 040520 -8R IF NOT 5$ : CONTINUE :SET 'DRIVE NON-EXISTENT® INDICATOR ;STOP THE TIMER 6$: CLRB CLRB CMP BNE MOV CLR INC ADD BIC BNE MOV CLR JSR DRVACT(R1) .PRQS(R1) R1,0TUW 6$ #-1,DTUM TRNSWT R1 #2,R3 #5C7.R1 1% #-1,DTUM rnnsur QUE :SET *'DRIVE ACTIVE'' TO IDLE :CLEAR PORT REQUEST FLAG +1S THIS DRIVE SETUP FOR A TRANSFER ‘BR IF NOT *RESET THE INDICATOR ‘CLEAR THE TRANSFER QUEUE :MOVE TO THE NEXT DRIVE :BRANCH 1f MORE DRIVES *NO DATA TRANSFERS UNDERWAY ‘CLEAR THE °'TRANSFER WAIT' QUEUE SCLEAR ALL OF THE REQUEST QUEUES B8R 8$ : CONTINUE PC,EMPTYQ DRVSTA(RY) DRVIYP(R1) PC.SET.IE ;CLEAR THE DRIVE'S QUEUE *SET DRIVE TO OFFLINE :CLEAR THE DRIVE TYPE INDICATOR SSET ‘'lE" 1rnour “TRE"" ‘RESTORE R MOV 7%: 8$: 040520 ¥BI1T15'81701, 16(&2) 48 ° #-1,TIMER(R3) JSR CLRB CLRB JSR RESREG s INTERRUP' 104412 R ‘QUEUE ENTRY FOR DRIVE 13 .aa IF NOT #BIT12,RPCS2(R4)’ ;°*NED' SET ? #BIT15'BIT10,16(R2) MOV RTS 112737 YES :GET THE DPB POINTER MOV S$: 000207 456 063174 *DID THIS DRIVE MAVE AN 1/0 IN PROGRESS? 4$: 000010 22? 457 063202 BR 040546 046050 040454 040464 045626 PC,CETREQ 8EQ 040546 000002 177770 R1,DTUW ISR: 1$: .ser "'NON-CLEARABLE PARITY'' ERROR INDICATOR aaltos RPCS2(R4) ;DO A MASSBUS INIT. PC *RETURN SERVICE ROUTINE MOVEB #1,ACTDRV sSET *'ACTIVE DRIVER'' FLAG MOV MOV BLT RPADR, R4 0TUW,R1 1% Aoongss OF RPCS! 3 ‘GET "DATA TRANSFER UNDERWAY'' INDICATOR *BRANCH IF NO DATA TRANSFER UNDERWAY JSR RESREG CLRB PC.SC +CALL SPECIAL CONDITIONS RESIORQ RO - RS CLEAR ACTIVE DRIVER' FLAG SAVREG JSR RT] PC,TD ACTDRV ; TRANSFER DONE ROUTINE *SAVE RO- RS SCALL TRANSFER DONE ‘RETURN C(IRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 57-8 RPO7 DRIVER zgg 043236 005037 043460 671 043242 672 043246 473 043254 040444 177777 040546 177777 040526 (043320 043322 043326 043330 043332 105061 012737 006301 012761 006201 013702 005037 052762 010164 004037 000900 042670 006126 100430 005737 100002 004737 489 043344 001003 493 494 498 499 6474 043256 475 476 477 478 479 480 481 482 483 484 485 486 487 043264 043266 043272 043276 0643304 043310 043314 063316 488 043336 23? 043346 S00 501 502 282 043354 043360 043364 043366 122762 040514 040514 000200 000010 045036 TM: 000016 040522 045262 000135 000002 116164 040550 000016 004737 004737 005702 001403 043462 046144 2%: 043370 043374 043376 043402 004737 000207 012714 000207 505 043404 506 043412 507 043416 (52762 004737 004737 100100 046050 045262 000016 510 043426 511 043434 512 043436 513 043442 g}g 043450 032764 001406 005237 116164 000207 040000 000512 0463460 040550 000016 516 043452 g}g 043456 012714 000207 000113 g}g 043460 000000 283 043422 012714 041542 000113 3%: 4$: 040111 255 SEQ 0191 CLR PERM ;:CLR PERMENANT ERROR FLAG CLRB MOV ASL MOV ASR MOV CLR BIS MOV JSR RPCS1 Cl ROL 8M] ST 8PL JSR DRVACT(R1) #-1,DTUW R1 #=1,TIMER(RT) R1 TRNSWT,R2 TRNSWT #BIT07,16(R2) R1,RPCS2(R4) RO,RD.RP ;SET ORIVE ACTIVE INDICATOR TO IDLE :NO DATA TRANSFERS UNDERWAY ;GET "'DPB’' FROM THE °''TRANSFER WAIT'' QUEUE ;TRANSFER WAIT QUEUE--CLEAR QUEUE :SET DONE ;SELECT THE DRIVE ;TRANSFER ERROR(TRE=1)? (SP)+ 48 SAVEFG 1¢ PC,SVRHXX :BR IF YES :SAVE RHXX/RPQO7 REGISTERS ? ;BR IF NO :YES=-=-SAVE THE REGISTERS 2% :BRANCH IF NOT ;CANCEL (MPB #1%5,2(R2) MOVB ATABIT(R1) ,RPAS(R4) BNE JSR JSR TST BEQ PC,WC.HK PC,GETREQ R? 38 TIMEOUT ;1E FROM DIAGNOSTIC COMMAND ? ;RESET THE ATA BIT :SEE IF WRITE CHECK TO BE PUT :GET DPB POINTER ;ENTRY FOR DRIVE ? :BR IF NOT IN QUEUE JSR RTS MOV RTS PC,OPT PC #113,(R4) PC :CALL OPTIMIZER :RETURN ;RELEASE THE DRIVE :RETURN BIS JSR JSR #BIT15!BIT06,16(R2) :SET DATA ERROR FLAG PC,EMPTYQ ;EMPTY THE "'DRIVE'S WAIT'' QUEUE PC,SVRHXX :SAVE THE RHXX/RP07 REGISTERS MOV 260111, (RO ;ISSUE A "DRIVE CLEAR' BIT BEQ INC MOVB RTS #BIT14,RPDS(R4) ;DID ERROR BIT CLEAR? 5% :BR IF YES PERM :SET PERM ERROR FLAG ATABIT(R1) ,RPAS(R4) ;CLR ATA BIT PC :RETURN 5%: MOV RTS #113,(R4) PC ;ISSUE A RELEASE ;RETURN PERM: .WORD O ;PERMENANT ERROR FLAG TO THE DRIVE sFORCE WRITE CHECK ROUTINE 523 043462 524 043466 005737 001427 526 043476 527 043500 ggg 043504 001023 004037 000420 525 043470 1%: J 15 122762 001506 000161 046070 WC.HK: 000002 TST BEQ WRTCHK 1% :D0 WRITE CHECK ? ‘BR If NO BNE JSR BR 1% RO,DRVQUE 1% :BRANCH If NOT ;PUT INTO THE QUEUE ;BRANCH IF QUEUE IS fuLl CMPB #WRTDAT,$COMND (R2) :LAST COMMAND A WRITE COMMAND ? ~ e o Flal N 033[5287 PERF $30 531 532 533 534 535 ggg 043506 043512 063520 043526 043534 043540 043546 EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 57-9 005062 116262 016262 016262 105062 112762 060207 000016 000166 000012 000010 000024 000151 ggg 540 541 542 543 544 545 546 000002 1$: CLR MOVB MOV MOV CLRB MOVB RTS SEQ 0192 $TATUS(R?) :CLEAR 'DONE' BIT IN DPB SRPCS1(RZ),$PREVOC(R2) ;:PREVIOUS COMMAND $CYL(R2),$PREVA+2(R2) -PREVIOUS CYLINDER ADDRESS $SEC(R2) ,SPREVA(R2) ;PREVIOUS SEC , TRK ADDRESSES $CODE (R2} ;CHANGE WRITE DATA TO WRITE CHECK DATA #WCKD,$COMND (R2) : CHANGE FUNCTION CODE TO WRITE CHECK PC SEXIT sSPECIAL CONDITION ROUTINE 0643550 063554 043556 043562 043564 063566 063570 547 043572 116403 001013 004937 000000 042756 106126 100404 000016 553 554 555 556 557 043604 043606 043610 043612 043616 005046 110316 005001 012703 030316 043622 043624 043626 043630 043632 005201 106303 001373 005726 000207 565 043634 566 043640 ggg 043642 105761 001402 000137 040504 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 58L 585 586 063646 063652 043654 063660 043664 105761 003011 004737 004737 0064737 040454 043670 063674 043676 063702 043704 105761 003405 105761 001020 004737 040454 043710 063714 043716 043722 043726 043730 105761 100412 012746 006037 000000 063772 045426 ;READ ''RPAS'* REGISTER :BRANCH [F ANY °‘ATA® BITS SET ;READ CONTROL AND STATUS REGISTER B8R (SP)+ 1% 184 ;1S “1E''=1? ;YES, NO DRIVES TO CHECK EM7 JSR RTS 1 PC,SET.IE PC :1F ERROR REPORT IS DESIRED JREPORT ILLEGAL INTERRUPT sSET INTERRUPT ENABLE *RETURN CLR MOVB CLR MOV BIT -(SP) R3,(SP) R1 #1,R3 R3. (SP) SCh: INC ASLB BNE ST RTS R1 R} SC3 (SP) + PC :MOVE TO THE NEXT DRIVE ;ANY MORE DRIVES TO CHECK ? :BR IF YES :CLEAN OFF THE STACK $CS: TSTB BEQ JMP DPRQS(R1) 1% SC13 ;1S THERE PORT REQUEST QUTSTANDING ? :BR IF NO ;START THE OUTSTANDING COMMAND 1$: TSTB 8GT JSR JSR JSR DRVSTA(R1) 2% PC.GETREQ PC. SVRHXX PC.SC12 TSTB BLE 1STB BNE JSR DRVSTA(RY) 3¢ DRVACT(R1) SC6 PC.SC12 TSTB BM] MOV JSR RP(S1 S(8 DRVSTA(R1) X3 #111,-(SP) RO,WRT.RP ;1S THIS DRIVE ON-LINE ? :BR IF YES :GET DPB POINTER :SAVE THE RHXX/RPO7? REGISTERS ;SAVE RPDS, RPER1, RPER2 AND RPER3 :ALSO DO A DRIVE INIT (DRVINT) :DID DRIVE COME ON-LINE ? :BR IF NO ;DRIVE ACTIVE WITH COMMAND OR ERROR RECOVERY ? :BR IF EITHER :SAVE RSDS, RPER1, RPER2 AND RPER3 ;ALSO D) A'DRIVE INIT (DRVINT) :CHECK ON DRIVE'S STATUS :BR IF UNSAFE ;DRIVE (LEAR :WRITE THE COMMAND INTO RP(S1 :REGISTER INDEX SPARITY EXIT ADDRESS 1%: 2%: 000001 001005 $C3: 044204 046144 045262 044120 060444 2%: 044120 040454 000111 045130 MOVB BNE JSR RPCS1 C18 ROLB BM] RPAS{R&),R3 2% RO,RD.RP 000401 104001 004737 000207 558 043620 SC: 045036 548 549 043574 550 043576 gg; 043602 559 560 561 562 222 000027 000034 000032 K 15 38: BNE scé ;BRANCH OVER ERROR, REPLACE BRANCH WITH °*NOP’ ;PROCESS ALL DRIVES THAT HAVE ;STORE ATA BITS ON STACK ;SETUP R1 & R3 TO CHECK DRIVE 0 ;1S THIS ATA BIT SET 2 :BR IF VES C(IRJOAQ RPO7 PERF EXER MACRO v04.00 1-JAN-B3 12:06:52 PAGE 57-10 SEQ 0193 RPO7 DRIVER 040550 587 043732 588 043740 gg% 043742 116164 000240 000727 594 043744 595 043746 596 043754 597 043756 598 043762 288 043766 006301 012761 006201 004737 010164 000137 043772 043776 044000 044004 044010 105761 001405 004737 004737 000402 040446 607 044012 283 044016 004737 000137 042704 043622 610 044022 g}} 044026 105061 136137 613 044034 614 044036 615 064042 616 044050 617 044054 618 044056 619 044062 620 044070 621 0644076 622 044100 623 044106 624 044110 252 044114 001012 004737 052762 005737 100002 004737 116164 146137 006301 012761 006201 004737 000137 627 044120 628 044124 629 044126 630 044130 631 0644132 632 044140 633 064146 636 064154 635 044162 636 0441664 637 044166 638 044170 639 044174 640 044176 641 044200 010164 006301 006301 006301 016461 016461 016461 016461 006201 006201 006201 004037 (000401 000207 005726 649 0442064 650 044210 651 044216 010164 116164 105761 601 602 603 604 882 gz% 044202 000016 4 177077 040526 SC6: 046144 000010 044022 Move NOP ATABIT(R1) ,RPAS (R4) BR $C4 :CHECK FOR MORE DRIVES ASL MOV ASR Mov R #-1,TIMER(RY) R1 PC,GETREQ RT RPCS2(R4) ;SETUP TO ADDRESS WORDS :STOP THE TIMER *RESTORE THE DRIVE ADDRESS GET THE OPB POINTER FROM THE QUEUE *SELECT DRIVE 1578 DRVACT(R1) ;1S DRIVE IDLE? 2% :CONTINUE JSR JMP S(8: 046144 042670 1%: 2%: 040516 SC11: BEQ JSR JSR BR JSR JMP scii 1% PC,GETREQ PC.CI7 DRVACT(R1) :SET DRIVE 1% ;AN 1/0 COMMAND? :BRANCH IF YES 040526 SC12: 000010 *CHECK MORE DRIVES ATABIT(R1),SRCHWT SAVEFG 1%: *YES=-BRANCH ‘GET DPB POINTER *PROCESS THE PARITY ERROR ;PROCESS THE UNCORRECTABLE PARITY ERROR $C4 1% 000016 040516 *PROCESS THE SEARCH PC,C178 PC,POPQUE #81107,16(R2) 000016 ;CLR ATIN BIT PC, SVRHXX *RE.IVE REOUEST FROM QUEUE :SET ''DONE'’ BIT *SAVE THE REGISTERS? :BR IF NO PYES=-=SAVE ALL OF scé *CHECK FOR MORE DRIVES g}.apcsz(aa) ;SELECT DRIVE RPDS (R4) ,RPSTUO(R1) RPER1(R4) ,RPSTUO+2(R1) ;STORE DRIVE STATUS :STORE ERROR REG #1 S:ERS(RA)"RPSTUO+6(R1) :STORE ERROR REG #3 RPER2(R4) RPSTUO+4(R1) 000040 000042 o 000016 :STORE ERROR REG #2 1$: RO,DRVINT 18 PC (SP)+ JINIT. THE STATE OF ;TAKE ERROR EXIT sRETURN CLEAR THE STAC SC13: R1,RPCS2(R&) :SELECT THE DRIVE 1%: DPINT(RY) SINITIALIZING THE DRIVE ? 040750 000673 THE RHXX/RP07 REG'S ATABIT(R1) ,RPAS(R4) :CLEAR ATTENTION BIT ATABIT(R1) . SRCHWT ;CLEAR IMPLIED SEEK SET R1 ;WORD INDEX #-1,TIMER(RY) :STOP CLOCK R1 RESTORE R1 A REQUEST 'START PC,OPT : 000012 000014 IDLE sDOING A SEARCH OPERATION FOR SC8 THE DRIVE *PROCESS THE PARIIY ERROR ATABIT(R1) ,RPAS(R4) :CLEAR THE ATTENTION BIT CZRJOAQ RPO7 PERF RPO7 DRIVER 652 064222 653 064224 654 044230 655 656 657 658 659 660 661 662 663 22g 0646234 044236 044242 044244 044246 EXER MACRO Vv04.00 1-JAN=B3 12:06:52 PAGE 57-11 001424 105061 004037 000240 105761 003014 005702 001423 040750 004737 052762 004737 004737 000411 046 44 140000 045262 046166 666 0644274 667 064302 673 064304 032764 001003 004737 004000 045426 004737 041542 000402 JSR NOP TSTB BGT ST BEQ 040454 0664250 044254 044262 044266 044272 27§ 044310 BEQ (LRB 040476 000016 000000 2%: { 676 0644312 2;5 044316 000137 3¢: 043622 4$: 679 680 681 gg% 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 m15 2% DPINT(R1) RO,DRVINT DRVSTA(R1) 2% R2 X 700 044402 701 044406 ;85 044410 005737 001027 112737 104412 005001 005003 005763 002406 166663 003002 004737 005201 005723 022701 003362 104413 105037 012616 000207 040520 000001 RPTMR: 040521 040526 000002 044412 1%: 040526 2%: 000010 040521 3%: 4: :BR [F NOT *CLEAR THE INIT INDICATOR $6GO INIT THE DRIVE :DUMMY :DRIVE :BR IF *QUEUE ‘BR IF PARITY ERROR RETURN ONLINE ? YES == START ORDER ENTRY FOR THE DRiVE NOT JSR BIS JSR JSR BR PC,GETREQ ;cer DPB ADDRESS #BIT15'BIT14,16(R2) ;INFORM USER THAT DRIVE OFFLINE PC, SVRHXX ;SAVE THE REGISTERS PC .POPQUE ‘REMOVE THE QUEUE X BIT BNE JSR #BIT11,RPCS1(RG) :DVA SET 2 3¢ ;SET THEN CALL oPT PC,SET.IE BR 4$ JSR PC,OPT JMP $Cé :/RPO7 TIMER ROUTINE S CALL : MOV NTIME,-(SP) : JSR PC,RPTMR 044322 044326 044330 044336 044340 044342 044344 044350 064352 044360 044362 044366 044370 044372 044376 044400 SEQ 0194 TST BNE MOVB SAVREG CLR CLR ST BLT SUB BGT JSR INC ST CMP BGT RESREG CLRB MOV RTS ACTDRV 4$ #1,ACTSTR R1 R3 TIMER(R3) 2% 2(SP),TIMER(R3) ;START THE REGUEST *PROCESS OTHER DRIVES ;ELASPED TIME IN MILLiSECONDS ON THE STACK ;CALL RPO7 TIME ROUTINE ;CHECK "ACTDRV & ACTSTR' :1F_NON ZERO EXIT SSET "ACTSIR’ :SAVE RO = RS *START WITH DRIVE 0 ;1S THE TIMER RUNNING? ‘BRANCH IF NO :COUNT THE INTERVAL 2% PC,STO R1 (R3)+ #8..R1 1% :BR IF NO SOFTWARE TIMEOUT :CALL SOFTWARE TIMEOUT ROUTINE ‘MOVE TO NEXT DRIVE ACTSTR (SP)+, (SP) $ZERO ACTIVE SOF TWARE *ADJUST THE STACK PC ;0UT OF DRIVES? *BRANCH IF NO ‘RESTORE RO = RS *RETURN ;8? JSOFTWARE TIMEOUT ROUTINE 706 707 708 709 710 m 712 713 INOTE: ; : PCALL : THIS ROUTINE MUST BE ENTERED AT PRIOGRITY 6 OR GREATER . RETURN ; MOV JSR #DRVNUM,R1 PC,STO0 ;DRIVE NUMB(R :SOF TWARE TIME ROUTINE TIMEOUT ROUTINE FLAG CIRJOAQ RPO7 PERF EXER MACRO V04.00 1=-JAN=83 12:06:52 PAGE 57-12 N 15 SEQ 0195 064630 044634 044640 064642 044645 044659 0464654 046656 0446662 044664 044670 044677 044674 NIVNNI NN = O =N S ONS SO0 ~N WOOoOOo = — N NN OD0O0—=LO0000COO0O~O—==0000000 OO0O0O0O—-DVIOON 000000 OO = - > b O NWNWNNIS NS =S OWA NS NOWNMSOS0 OO O [olale OWWWS OCONOOOWOOO—O0 O NNV 2 NN = NI NN =N S = 044536 044540 044544 044550 044552 044556 044564 044570 044576 044600 044602 044606 044610 044616 044622 044626 WOWES O WO =200 NN NV et b YN 044532 O0O00O0O0O0O0O=000000O0— OO0OO—-ONOO—20OWVIOON~=00O0 OB WVNIWNIWNMWNANIWNNIES = NW=WN WVINONWNNNNONNESNNESN 044530 OOOQO=O === OOMNIOOOOOW—~ DO\ NAN2PO OMN=ONONO = WAHN AN AL NI AN N NI NI NN b b cd od D RPO7 DRIVER STC: 040560 000010 MOV R1,=~(SP) :SAVE R1 MOV RPAL *GET ADDRESS OF ''RPCS1" éggs RO.RD.RP MOV MOV 045036 9 1ST8 040474 1$: 040504 040516 040546 046144 101000 000016 coooao 000010 045262 2%: R3.=(SP) R& R1,RP{S2(R4) DPINT(RY) STRYING TO INTIALIZE BNE TST8 BNE MOV CMP BEQ JSR 6$ DPRAS(R1) 6% TRNSWT,R2 R1.DTUW 28 PC,GETR ‘8R IF YES THE DRIVE ? ‘BR IF YES TOUTSTANDING PORT REGUEST FOR THE DRIVE ? ‘BR IF YES GET "'DPBTM* FROM THE ‘‘TRANSFER WAIT'* QUEUE *TRANSFZR UNDERWAY ON THIS DRIVE? :BRANCH IF YES :GET DPB ADDRESS 331115'31109 16(R2) ;SET THE ERROR FLAGS PC, SVRHXX :SAVE RHAX/RPO7 REGISTERS DRVACT(R1) :DRIVE IS IDLE JSR RO,DRVINT SINIT. THIS DRIVE 040514 BEQ MOV 5$ TRNSWT,R2 SYES==BRANCH SGET ''DPB'' FROM THE "'TRANSFER WAIT'' QUEUE 046144 BEQ JSR 4 PC,GE TREQ :YES==BRANCH *GET THE DPB POINTER FROM QUEUE CLRB DRVACT(R1) :SET DRIVE ACTIVE TO R1 #8..R1 3¢ S INCREMENT THE DRIVE NUMBER :LAST DRIVE BEEN CHECKED? *NO=--L00P TRNSWT SCLEAR TRANSFER WAIT QUEUE 040444 JSR :READ THE DRIVE STATUS REGISTER ;1S "DRY''=1? 6% 8IS *SELECT THE DRIVE (SP) ¢ BM] TSTB ‘SAVE R3 MOV CLRB Ets 040750 3%: 0460644 0460546 B8R TSTB CMP 100400 000016 4$: BIS 177777 040526 S%: MOV ST 040444 INC (MP BGT 000010 177777 060514 040546 MOV CLR 045772 #B8{705,RPCS2(R&)’ a% 9% DRVACT(R1) DTUW,R1 *START WITH DRIVE 0 ‘PARITY ERROR RETURN :DRIVE IDLE asrons THE INIT.? *WAS A DATA TRANSFER UNDERWAY ON THIS DRIVE? next1s'81roa.16<u2) #-1,TIMER(R3) (R3)+ ¥-1,DTUN SUINIT'' THE MASS BUS :INFORM USER OF INIT. :STOP THE TIMER *UPDATE THE INDEX LDLE *NO DATA TRANSFERS UNDERWAY JSR PC,CLRAUE MOVB RPAS(R4),RS ;READ ATTENT]ON REG 040546 BNE 1STB BNE TSTB BNE éng 7% DPINT(R1) 108 DPRQS(R1) 1% $1.ovuu S YES=-BRANCH STRYING TO INTIALIZE THE DRIVE ? ‘BR IF YES - DRIVE NOT ONLINE ourcvnnonnc PORT REQLEST FOR THE DRIVE ? R IF YES = NO RESPONSE TO REQUEST gaY?FTRSNSFER UNDERWAY FOR THIS DRIVE 045036 33?51 RO,4D.RP *READ CONTROL AND STATUS REGISTER 9% 1518 (SP)+ :CHECK 000016 040550 040474 040504 8R 6$: BITB 13§ ATABIT(RI).RS :CLEAR ALL REQUEST QUEUES CEXIT 1S ATTENTION FOR THIS DRIVE UP ? *RDY* 060474 042756 9%: 040474 040454 10%: 177777 046144 040526 043526 JSR TST BEQ BIS BR 000016 11%: 12%: +ROUTINE 040560 000000 000004 010000 000000 020000 173456 000002 00000¢ MOV CLRB JSR TST BEQ MOV JSR JSR MOV MOV RTS SEXIT JSK INDEX ERRADR RETURN RD.RP: MOV PC,CI8 ;GO HANDLE THE DPINT(R1) DRVSTA(RY) ;CLEAR THE INITIALIZE INDICATOR *SET DRIVE OFFLINE 138 ;REQUEST IN QUEUE ‘BR IF NOT 12$ SFINISH #-1,TIMER(R3) DPRES (R1) :STOP THE R *CLEAR PORT REQUEST R2 13$ oueus ENTRY FOR DRIVE F NONE '8 PC,EMPTYQ ;CLEAR THE QUEUE (SP)+,R3 :RESTORE R3 PC ;RETURN #-1,TIMER(R3) PC,GETREQ RO PC,GE TREQ (SP)+,R1 RO,RD.RP NOT AVAILABLE INDICATOR ? : INFORM USER OF PORT REQUEST ERROR FOR THE DRIVE :RESTORE R1 ;GO READ A REGISTER ‘REG. INDEX FROM BASE *ERROR ADDRESS--PROCESS ERROR STARTING THIS ADDRESS *CONTENTS OF REG. (SP),=(SP) :SAVE RO (RO)+. (SP) ‘REG RPADR, = (SP) *ADDRESS OF ; 2% JEXIT 2(SP),4(SP) (SP)+, (SP)+ (RO),RO #2,R0 IS ON THE STACK THE *READ THE CONTENTS OF THE REG TCHECK IF NON-EXIST DRIVE #RP(SS, (SP) #BIT12.3(SP) 1% #BIT13,3RPADR 2%: ;INFORM THE USER DRIVE :SAVE RHXX/RP97 REGISTERS *AT 1% 000002 ? *GET DPB ADDRESS oext1553112.16(aé) PC,SVRHXX °*NED’ :STOP THE TIMER *GET THE DPB ADDRESS #BIT15'BIT14,16(R2) a(SP) J4(SP) RPADR (SP) 18: :STOP THE TIMER 10 READ A RHXX/RPO7 REGISTER e B Be 0o O SO NONNNORO N OQONICONO N = =20 = I I WO~ OO OO O O =20V O =) = PINI N NN N — [elalelelelelolelelalelele =) O =) =2 OWO WO = =2 O — =2 NN = OVONONES WO NN OO NININININD b b e b = cred cnd b cd b 90 00 0o GO Ov 00 00 GO 0 00 OO OB 00 OO 0B 00 0O 00 00 0O tCALL 138 13§ MoV 000016 DPRQS (R1) 13$ #-1,TIMER(R3) CLRB CLRB SEQ 0196 :BR IF "RDY''=0 SINITIALIZING THE DRIVE ? ‘BR If INIT PENDING *PORT REQUEST PENDING ? ‘BR IF NOT 8$ 8%: OO0 OO O 040526 OO0O0O0O0O0—— OWVOOO—-O0O0 ON=SNSNIWMIWN 177777 13%: 045036 045040 1% DPINT(R1) 7%: 040504 o OO0O0O0O0—0O o O=0000~ S BN=NDNN) 647 OO0O—O—— O—-00000 OO0 B 16 :NED BIT SET ? ‘ERROR EXIT :MCPE SET ? *MOVE THE RO TO TOP OF STACK ‘CLEAR OFF THE STACK *ERROR EXIT ADDRESS JEXIT ¢NORMAL EXIT ~ 38 ST RTS (SP)+ SEQ 0197 ;CLEAR OFF RO CEXIT STACK :ROUTINE TO WRITE A REGISTER CALL : MOV ; INDE X : : PININ = NNV NN NN = NI O NOWININ =) (=lelelolelelelelelel Jololel et et e "d WO 2 OWO =~ O =5 O —~O000NO — : 000401 WRT.RP: JSR DATA,=(SP) RO,WRT.RP *CALL LOADED ON THE STACK THE ROUTINE TO LOAD(WRITE) *ERROR FREE RETURN (RO)+,=(SP) :FORMING THE ?2PADR ‘SEE REG ADORESS 2% #150,4(SP) 2% 1734G2 MOV aRPADR, = (SP) ;READ RPCS1 177770 000007 MOVB (SP).7(SP) *ATTACH A17,A18,PSEL 000150 000004 173410 040560 010000 040560 000014 000010 1%: ;gla SWAB BIC 000000 2%: TST 000000 3¢: 48: CONTROLLER READY ‘MERG THE A17,A18,PSEL BITS ‘CHOP OFF THE REST BITS FROM RP(S1 *RESTORE STACK LEVEL BIT BNE #BIT12.3(SP) 3 *NONE EXIST DRIVE ? SBRANCH IF IT IS ADD #RPERT, (SP) ; #2,R0 *NORMAL RETURN #RPCSZ, (SP) RPADR, (SP) BIT BNE #B1T3,3(SP) 3¢ BR 4 MOV (RO),RO ADD 000002 (SP)+ IF RPADR, (SP) 4(SP) .a(SP) RPADR ; (SP) MOV 000000 (SP) #-C7,(SP) ¢BRANCH [F NOT RP(CS1 :DATA XTRNS COMMAND ? *BRANCH IF NOT ADD MOV MOV ADD ST MOV RTS (SP)+ (SP)+, (SP) RO TO *THE DEST REG ADDRESS ‘WRITE THE REGISTER *CHECK NED,PAR BITS : *ADDRESS RPERT ‘PAR SET ? *BRANCH IF $O CEXIT ;ERROR EXIT ‘CLEAR OFF THE STACK ‘MOVE RO TO TOP OF STACK CEXIT :ROUTINE TO SAVE THE RHXX/RPO7 REGISTERS AS PER DPB+14 JCALL : ; 045262 045264 045266 045270 045274 045300 045304 045306 045312 MOV JSR SVRHXX: SAVREG 1$: PC, SVRHXX R2 MOV RPADR, R4 MOV 14(R3) ,R3 CMP 3¢, #RPDB MOVB 000022 #DPB,R2 ST BEQ BEQ CLR THE REG. YINDEX OF THE REGISTER T0 BE LOADED *ADDRESS TO RETURN TO ON AN ERROR ERRADR RETURN MOV :DATA TO BE BNE CMPB BLT 011000 00572¢ 012616 000200 (olelele ===y OO == =000 WA = O8 = (N =S LN SN ~NO SN NS NWHOOOWNO — NNOVNES SN o o~ o ¢ 16 78 :ADDRESS OF DRIVE PARAMETER BLOCK *SAVE THE DRIVES REG'S :SAVE RO - RS *QUEUE ENTRY FOR THE DRIVE ‘BR IF NONE (R2),RPCS2(R4) :SELECT DRIVE 7% 3¢ ‘EXIT IF NO ADDRESS *COUNTER € POINTER ? ‘GET THE ERROR TABLE POINTER ‘REACHED THE BUFFER REGISTER ? #BI1T07,RPCS2(R4) 4 Foskr E RPDB AS ZEROES INUE * A Mo~ (a¥.) N AADNRERAD DV ETPWN 2O HeEm OO w3 O=C O s et ONO»— ~e oro~N 42670 MoV RESREG RTS 3 6 SS THE UNCg THE : RETURN IF RH70 :POINT TO RPBAE JSTORE THE CONIENTS :GET RP(S3 JRESTORE RO - RS JRETURN MOV MOV MOV :SET THE ''TRE'' BIT OF THE WORD READ :A24U§}Efi0R DATO sYES==CLEAR ''TRE"’ +CLEAN OFF THE STACK CLEAR °'TRE" mMmMmMmmmmm Bt s Bt B << e Gt ;RESTORE R4 RETURN TO CALLER et ) e o € € - mmmmmmmm ) < € - . gy RTS sREAD RP(CS‘ - MOV sQUEUE COUN QCNT: (S (S PC MOVB = 1%: 2%: L] 000001 2% . 045470 045474 045476 #8 1106, (R4) .S #8 IT12.RPCS2(R4) ;1S "NED''=1? 1% (Sp ) WITHOUT GETTING A ;sPICKUP ADDRESS OF RP(CS? sSELECT DRIVE 8IT (SP) BNE TST BR 64 045466 ;SAVE R4 IN RPCS1 INTERRUPT ENABLE ROUTINE (R) ,-(SP) #B11{4,(sP) SWAB MovBs 000010 R&,=(SP) R4 RPADR, R1,RPCS2(R4) sSET 8IS L] [ ] 000100 010000 BIT ;DRIVE NUMBER OOUOOOVOO0 DDDDVDDOD 040000 LJ 921 045440 SET.IE: MOV 040560 000010 (IE) #DRVNUM,R1 FC,SET.IE [olelelelelels) : JSR ODDDDODD N - ard ) o e b nd d C,OO~NO NS i NelBl elelVolleloVe )V, MOV ( F NE, NO sROUTINE TO SET THE %NTERRUPT ENABLE s TRANSFER ERROR (TRE ;s CALL . CPU E THE CPU T Y OSSN = O 7%: . OD O W~ 0+ e 065342 NOT :'OR* SET ? ; W o 000002 - 000046 —2RROW~A [ ST 1 19, 0645342 SEQ 0198 0.RD.RP w L2 045036 [5 R3¢ M 927 928 929 930 931 332 H~NOMN ¢ 20 D o 000010 NN OO0OCOOO0O ORONHAIFOO0 OCIV=WNNOVIO SN NNENOWOO WNIWWONNINOW = NOCNWOON 000200 bl o 903 04 O=00000000 OCO= =0 0ONH 2O QP =MNIN=NINIWNES NI BB NONNNN Qb d PNVOON =2 BN NWWWNES SO ONONN X 23X 2l 22 X 2E 2L 2L a2 2t 2R af 2X X RPO7 DRIVER D 16 EXER MACRO Vv04.00 1-JAN-B3 12:06:52 PAGE 57-15 OO0 OOOWO OWN—=N)— SO0 NO ONNOOO VNS~ CZRJCAOD RPQO7 PERF CIZRJOX0 RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 PAGE 57-16 E 16 SEQ 0199 RPO7 DRIVER gz% 045507 000 BYTE gzg 946 947 948 949 950 951 952 ggz 0 ;DRIVE 7 ;QUEUE INPUT POINTERS 0645510 045512 045514 045516 045520 045522 045524 045526 045572 045612 065632 045652 045672 045712 045732 045752 QINPT: ggg .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD QDRVO QDRV1 QDRV? QDRV3 QDRV4 QDRVS QDRV6 QDRV7 :DRIVE ;DRIVE :DRIVE :DRIVE :DRIVE :DRIVE :DRIVE ;DRIVE 0 1 2 3 & S 6 7 0 1 2 3 4 S 6 7 ;QUEUE OUTPUT POINTERS 957 958 959 960 961 962 963 ggg 045530 045532 045534 045536 045540 045542 065544 045546 045572 045612 045632 045652 045672 045712 045732 045752 QOUTPT: .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD QDRVO QDRV1 QDRV?2 QDRV3 QDRV& QDRVS QDRV6 QDRV7 ;DRIVE sDRIVE ;DRIVE :DRIVE :DRIVE :DRIVE ;ORIVE ;DRIVE 966 967 968 969 045550 045552 045554 045556 045572 045612 045632 045652 QSTART: QSTOP: .WORD .WORD .WORD .WORD QDRVO QDRV1 QDRV? QDRV3 :DRIVE O START ADDRESS ;DRIVE O STOP ADDRESS & DRIVE :STOP DRIVE 1-=START DRIVE 2 ;STOP DRIVE 2--START DRIVE 3 970 971 972 973 g;g 045560 045562 045564 045566 045570 045672 045712 045732 045752 045772 .WORD .WORD .WORD .WORD .WORD g;g 978 979 980 981 982 983 984 985 ggg QDRV4 QDRVS QDRV6 QDRV?7 QTERP DRIVE DRIVE DRIVE DRIVE DRIVE 3--START 4=--START S=--START 6-=-START 7 DRIVE DRIVE DRIVE DRIVE ;DRIVE REQUEST QUEUES QDRVO: QDRV1: QDRV2: QDRV3: QDRV4: QDRVS: QDRV6: QDRV7: QTERP=, .BLKW .BLKW .BLKW .BLKW .BLKW .BLKW .BLKW .BLkW 333 ;ROUTINE TO CLEAR ALL OF 992 33} s CALL : 993 994 995 996 997 998 ;STOP :STOr :STOP ;STOP ;STOP 045572 045612 045632 045652 045672 045712 045732 045752 045772 045774 046000 046002 046004 046006 045772 104412 012702 005022 005022 005022 005022 045500 CLROUE: 10 10 10 10 10 10 10 10 JSR PC,CLRQUE SAVREG MOV CLR CLR CLR CLR #QCNT,R2 (R2)+ (R2)+ (R2)+ (R2)+ THE REQUEST QUEUES :SAVE RO - RS ;ZERO THE QUEUE COUNTS ;DRIVES 0 & 1 :DRIVES 2 £ 3 :DRIVES 4 £ 5 :DRIVES 6 £ 7 & S 6 7 1 START ADDRESS F CZRJOAD RPO7 PERF EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 57-17 16 SEQ 0200 RPO? DRIVER 999 (46010 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 046014 046020 046022 046024 046026 046032 046036 046040 046042 046044 }8}9 046046 012703 012701 012122 005303 001375 012703 012701 012122 005303 001375 1064413 000010 MOV 045550 1%: 000010 045550 2$: 000207 MOV MOV DEC BNE MOV MOV MOV DEC BNE RESREG RTS #8.,R3 #QSTART.R1 (R1)+,(R2)+ R3 1% #8. ,R3 #QSTART,R1 (R1)+,(R2)+ R3 2% PC }8}§ ;EMPTY THE QUEUE SPECIFIED BY R1 1014 1015 ; CALL : }8}9 1018 1019 1020 1021 : 046050 046054 04605¢ 046064 }855 046066 105061 006301 016161 006201 045500 045510 EMPTYQ: 045530 000207 ;ROUTINE 1026 s CALL 1027 1028 1033 1034 1035 1036 1037 1038 1039 1040 1041 10642 104 }82g C66070 046076 046100 046104 046106 046112 046120 046126 046130 046136 046140 045142 122761 001421 105261 006301 010271 062761 026161 001003 016161 006201 005720 000200 000010 045500 000002 045510 045550 045510 045510 ;RESTORE RO = RS #DRVNUM,R1 CLRB ASL MOV ASR QCNT(R1) ;CLEAR NUMBER OF ITEMS IN QUEUE R1 QINPT(R1) ,Q0UTPT(R1) ;SET OQUTPUT QUEUE POINTEP=INPUT POINTER R1 JSR PC,EMPTYQ :DRIVE NUMBER PC TO PUT A REQUEST IN QUEUE MOV #DPB,R? sADDRESS OF : ;. : JSR eeeeeeececcaa RO,DRVQUE ;GO PUT REQUEST IN QUEUE ;RETURN HERE 'F QUEUE IS FuLL sRETURN HERE [F REQUEST IS IN OUEUE CMPB BEQ INCB ASL MOV ADD CMP BNE MOV ASR ST RTS #10,0CNT/RT) ;1S QUEULE FULL? 2$ ;BR IF YES=-TAKE RETURN1 QCNT(R1) : INCREMENT QUEUE COUNT R1 R2,3QINPT(R1) ;PUT THIS REQUEST IN QUEUE #2,0INPT(RT) ;UPDATE THE QUEUE POINTER QINPT(R1),uSTOP(R1) ;TIME TO RESET THE POINTER 18 :BRANCH [+ NO QSTART(R1} ,QINPT(R1, ;YES=--RESET POINTER R1 (RO) + ;TAKE RETURN 2 RO sRETURN TO USER DRVQUE: 045500 045510 ;MOVE THE STARTING ADDRESS ;OF THE QUEUE INTO THE ;QUEUE OUTPUT POINTER : : 1029 1030 }825 ;ADDRESS OF THE QUEUE INTO s THE QUEUE [NPUT POINTER MOV RTS 185? sMOVE THE STARTING 045552 1%: 2s: MOV #DRVNUM,R1 DRIVE PARAMETER BLOCK :DRIVE NUMBER }829 ;ROUTINE 1048 1049 1050 1051 1052 :ON RETURN, R2 WILL CONTAIN POINTER ADDRESS OF sZERO IF NO REQUEST IN QUEUE. ; sCALL : MOV #DRVNUM R :DRIVE NUMBER }822 1055 046144 V05002 TO GET THE '‘DPB'' ADDRESS OF NEXT REQUEST : JSR PC,GETREQ GETRFO: CLR R2 IN QUEUE °‘'DPB'' REQUESTED OR ;GO GET THE REQUEST o~ o 3237 PERF 046146 046152 046154 046156 046162 046164 EXER MACRO V04.00 1-JAN-B3 12:06:52 PAGE 57-18 105761 001404 006301 017102 006201 000207 N45500 1%: 045530 2s: 1518 BEQ ASL MOV ASR RTS 6 16 QCNT(RT) 2% R1 dQ0UTPT(R1),R2 R1 PC SEQ 0201 ;1S THERE ANY REQUEST IN QUEUE? ¢NO==-=BRAN(CH ;PICKUP ''DPB'' POINTER FOR THIS DRIVE sRETURN TO USER ;ROUTINE TO ''POP'' THE REQUEST FROM QUEUE :ON RETURN, R2 WILL CONTAIN POINTER ADDRESS OF °‘'DPB'’' REMOVED s CALL : : 046166 046172 046174 046200 046204 046212 046220 046222 046230 046232 105361 006301 017102 005071 062761 026161 001003 016161 006201 000207 045500 045530 045530 000002 065530 045530 045552 045550 045530 MOV JSR POPQUE: DEC(B ASL MOV CLR ADD CMP BNE MOV 1%: ASR RTS #DRVNUM,R1 PC,POPQUE :DRIVE NUMBER sCALL TO REMOVE RLQUEST QCNT(RT) ;DECREMENT QUEUE COUNT P a3Q0UTPT(R1) ,R2 ;GET THE ''DPB'' POINTER adQOUTPT(R1) +REMOVE DPB ADDRESS FROM THE QUEUE #2,Q0UTPT(RY1) ;UPDATE THE QUEUE POINTER QOUTPT(R1) ,QSTOP(R1) ,;TIME TO RESET THE POINTER? 1% :NO=-BRANCH TO EXIT GSTART(R1) ,QOUTPT(RT) ;YES--RESET THE POINTER R1 PC sRETURN TO USER CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-83 12:06:52 PAGE S8 H 16 SEQ 0202 DEVICE PARAMETER BLOCKS 1 .SBTTL 2 3 :BLOCK LOCATION EQUATE STATEMENTS 4 5 6 7 8 9 10 000001 000002 000003 000004 000006 12 13 000011 000912 15 000016 1 14 16 17 18 19 20 21 22 23 24 25 26 27 DEVICE PARAMETER BLOCKS 000010 000014 . =0 :DRIVE NUMBER (BYTE) SCOMND = SFMT+1 :OPERATION CODE $emT SPSEL SWCNT $BUF $SEC $TRK $CYL $REG $TATUS =1 = $FMT+2 = = = = = = = $FMT+3 SFMT+5 SFMT+7 $FMT+10 SFMT+11 $FMT+13 SFMT+15 000020 000022 000024 000026 000027 000030 000032 000036 000042 SWRDL $SSEC $CODE $PACK sWORD COUNT (NOT 2°'S COMP) ;SECTOR SIZE FOR CURRENT OPERATION (25€¢. OR 258.) +PRESENT COMMAND SELECTION CODE = = = = = = = = sPREVIOUS COMMAND SELECTION CODE (BYTE) ;PATTERN CODE :PREVIGUS ADDRESS- TRK, SEC, CYL (DOUBLE WORD) :WORDS READ PER PASS (DOUBLE WORD) ;WORDS WRITTEN PER PASS (DOUBLE WORD) sNUMBER OF SEEKS PER PASS (DOUBLE WORD) ¢OPERATICN COUNT (DOUBLE WORD) :TOTAL WORDS WRITTEN X10%6 (DOUBLE WORD) & = SWRDL+6 000046 000052 000056 32 33 34 35 36 37 38 39 000066 SRTOTL = SWRDL+46 000076 000102 000104 000124 000110 000112 $STOTL $TOTAL $SOFT $HARD $5K1 SMISPO = = = = = = 000114 000116 000120 44 4% 000122 «9 000125 50 52 53 54 000123 000124 000126 000130 000132 SWRDL+56 SWRDL+62 SWRDL+C4 SWRDL+66 SWRDL+70 SWRDL+72 = SWRDL+74 = SWRDL+76 = SWRDL+100 +READ/WRITE COMMAND INDICATOR $NCODE SNPATC SNSEC $NTRK SNCYL SNEXT $FIRST = = = = = = SWRDL+102 SNCODE* SNCODE+? SNCODE+3 SNCODE+4 SNCODE+6 SNCODE+10 000134 000136 MAXCYL MINCYL = SNCODE+12 = MAXCYL+2 (BYTE) ;1 X106 REPETITION COUNTER (DOUBLE WORD) :TOTAL WORDS READ X10%6 (DOUBLE WORD) ;1 X106 REPETITION COUNTER & (DOUBLE WORD) sTOTAL SEEK COUNT (DOUBLE WORD) s TOTAL ERRORS COUNT (ALL TYPES) :'SOFT' ERROR COUNT : '"HARD' ERROR COUNT :'SKI' ERROR COUNT ¢PROG DETECTED MIS-POSITIONING ERROR COUNT +PASS COUNTER ;OPERATION QUEUE ‘FAIRNESS' COUNT +HOLD WORD FOR 'RELBUF' ROUTINE sNEXT OPERATION CODE sNEXT PATTERN SNEXT SECTOR sNEXT TRACK +NEXT CYLINDER ;PARAMETER SELECTION INDICATOR ¢FIRST OPERATION INDICATOR ¢ INDEX EQUATES FOR MAXIMUM/MINIMUM ADDRESSES 8¢ 56 57 $PASSC $FAIR SHLDWC SWRDL+7 SWRDL+10 SWRDL+12 SWRDL+16 SWRDL+2¢ SWRDL+26 SWRDL+32 SWRDL+36 : INDFX EQUATES TO THE NEXT OPERATION PARAMETERS 46 «7 48 (BYTE) *WORD COUNT (2'S COMP) :BUFFER ADDR OR REGISTER TABLE POINTER :SECTOR ADDRESS OR 1ST REG A :TRACK ADDRESS OF LAST REG ADDR :CYLINDER ADDR ‘REGISTER STORAGE (I1F ERROR) :STATUS WORD (SET BY DRIVER) = SFMT+17 = SWRDL+? = SWRDL+4 28 29 g? &2 63 (BYTE) :PORT SELECT & BITS A16, A17 ¢DRIVE'S HISTORY AND CURRENT INDICATOR STORAGE EQUATES $PREVO SPATTC $PREVA $RDPAS SWIPAS $SEEKS $OPERC SWIOTL «0 41 :FMT,HCI,ECI OR OFFSET CODE (BYTE) sMAXIMUM CYLINDER ADDRESS ;MINIMUM CYLINDER ADDRESS CIRJOAO RPQ7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 FAGF 531 DEVICE PARAMETER BLOCKS ) 5 60 25 000140 e 000144 000146 MAXTRK MINTRK MAXSEC MINSEC 63 MAX(CYL +4 MAXCYL+6 MAXCYL+10 MAXCYL+12 SEQ 0203 sMAXIMUM TRACK ADDR ¢MINIMUM TRACK ADDR sMAXIMUM SECTOR ADD sMINIMUM SECTOR ADD ; INDEX EQUATES FOR CYLLMT, TRKLMT, SECLMT ADDRESSES LIMITS AND 1ST FE CYLINDER 64 65 66 000150 000152 67 gg CYLLMT SECLMT 000154 000156 TRKLMT FE1 ;? = = = = MAXCYL*+14 CYLLMT#2 CYLLMT+4 CYLLMT+6 :CYLINDER ADDRESS LIMIT :SECTOR ADDRESS LIMIT s TRACK _ADDRESS LIMIT :1ST FE CYLINDER ;DRIVE SERIAL NUMBER AREA INDEX EQUATE ;g 006160 $DRVSN ;g = CYLLMT+10 :DRIVE SERIAL NUMBER (6 BYTES) sRP/RH REGISTER EQUATES 76 000166 77 78 79 SRPCS1 000170 000172 000174 80 81 82 83 84 85 86 87 88 89 90 SRPWC SRPBA SRPDA 000176 000200 000202 000204 000206 000210 000212 000214 000216 000220 000222 91 $RP(S2 SRPDS SRPERT SRPAS SRPLA SRPDB $RPMR1 SRPDT $RPSN $RPOF $RPDC 000224 92 93 94 95 96 3; 106 = = = = I 16 $RPCC 000226 000230 000232 000234 000236 000240 046234 046236 066250 045252 0466476 046500 046512 046514 046740 066742 0646754 000 SRPER2 $RPER3 $RPECT SRPEC2 $RPBAE $RPCS3 000 066422 001 047126 = = = = = = = = = = = $RP(S1+10 SRP(S1¢12 $RP(S1+14 SRP(S1¢16 $SRP(S1+20 $SRP(S1+2?2 $RP(S1+24 $RP(S1+26 $SRP(S1+30 $RP(S1+32 $RP(S1+34 = = = = = = $RP(S1+40 SRP(S1+42 SRP(S1+44 SRP(S1+46 $RP(S1+50 SRP(S1+52 sRP REGISTER STORAGE = $RP(S1+36 :DPB FOR DRIVE 0 DRIVEO: .BYTE 0,0 BLKW 5 MWORD . +$RP(S1-$REG .BLKB $RPCS3-$REG :DPB FOR DRIVE 1 009 DRIVE1: .BYTE 000 ORIVEZ: .BLKW WORD .BLKB 066664 002 = $DRVSN+6 = SRP(S1+2 = $RP(S1+4 = SRP(S1+6 ;:DPB FOR DRIVE 2 .BYTE BLKW WO ;DRIVE NUMBER 0 1,0 ;DRIVE NUMBER 1 2.0 5 L +SRPCS1-SREG :DRIVE NUMBER ? 5 ,+$RP(S1-$REG SRPCS3-$REG ¢ (ZRJOAQ RPO7 PERF EXER MACRO Vv04.00 1 DEVICE PARAMETER BLOCKS =JAN=-83 12:06:52 PAGE 58-2 .BLKB 003 000 BLKW .WORD .8LKB 047632 900 000 000 5 5,0 S ;DPB FOR DRIVE .BYTE BLKW +WORD .BLKB :DRIVE NUMBER 3 ;DRIVE NUMBER & :DRIVE NUMBER 5 ,+8RPCS1-$REG $RP(S3-$REG ;DPB FOR JRIVE 6 DRIVEG: .BYTE 6,0 BLKW 5 WORD . +$RP(S1-$REG .BLKB $RP(CS3-$REG DRIVE?: SEQ 0204 7 7,0 5 :DRIVE NUMBER 6 :DRIVE NUMBER 7 ,+SRP(S1-$REG $RP(S3-$REG GENREG: .BLKW <N OO | ODOOO 0 000000 050674 000000 .BYTE .BYTE .BYTE .BYTE .WORD -WORD .BYTE .BYTE .WORD -WORD .WORD LNDR ENREG &~ GENDPB: [5 8] AWV NIV O0COO0O0O0O0O00O :GENERAL PURPOSE DEVICE PARAMETER BLOCK O h d ) D s e e e e el ) e e i b ., +$RP(S1-$REG $RP(S3-$REG BLKW 050600 MNIMNVN) R b b b b . D d d = OO O Nt OO0 N WNEWNN = OO0~ WORD .BLKB 5 +WORD .BLKB 050336 007 4,0 .BLKW DPB FOR DRIVE RIVES: .BYTE 050074 006 BYTE l & L 005 5 . +SRP(S1-$REG SRP(S3-$REG ;DPY FOR DRIVE 4 DRIVE4: 16 $RP(S3-$REG R DRIVE 3 000 047370 004 ’ :DRIVER PARAMETER BLOCK, DRIVE # ;OFFSET VALUE OR FMT16, HCI OR ECI s COMMAND CODE :PSEL, A16 AND A17 :WORD COUNT (NEG) ¢BUFFER ADDRESS sSECTOR ADDRESS s TRACK ADDRESS sCYLINDER ADDRESS :ADDRESS TO SAVE :STATUS WORD sREGISTER STORAGE ALL RHXX/RPO7 REG'S r—~-< L'Te2aZo -0 wi_J [ p-4ve ~ LSBTTL ox~ N >NO<[BgRLI-I—TwTZ ~ Oo~ w~ UWVLOeTXoN3AEAs—=C=OS(MJI<Y7iEVeWEO-IOLMBI—N=IT0vMVUlZVYLOyWoF0.SIW~=O3O0MP=FO=AENVM1VR)0VloWS—M9WOo=XLA08NNNOU2=OTSEt0OrVI=U=WoMDTFlIo3MOAES=QOWASCe=OR¢VtONoI4NNUSSAg ESlwNL=Oo0eMWMI5EMTPOEO=NOOTlNW0MS—WoULEST=oOIlNeIMD1ESOTD0Ol~OTo8MToOF=R2SaIEX0ON8QAT=0TTlDe3ZoCNNOM6l(~oNo=2TeTO5SAFI4.UoElSI<J=OoIMN0eYOOLCP5\ONoAM0Po=IZOW6lIoJUNMEMFoONoINI(OWoS8rT—7SBEIOl-rZS3IUVMEeo—CI0PNoODIEA6TSTAN—=Meo81SOlI0tWMTMOoO=SO2IMUTSX~I=lENSNN=eS30OOLNoIMrEP~=34EolOWNXM—V—IEL0=oIMST5=IOOWlrFAGOMe6M=Z0N—NI0NoMIESOST7FN=0ElNO~rOo0WUNOe6OOMUMlEISU1OOIAO\N0UeACNOO2=N~=le8OeOINNES3PoI=SeeIPNO—ENlE‘—MTOStTeeOOIoAOSEt5SINl°eZTOONItE6SFOI=OMTVO-eSlN7ESI0EOZeoa—0EOAOIONleoS1EOXoW0MrOe —NeeEoTVl2TEMUN0NI—Ve—=TaOISD0IUErYOlO4OOEEoE4=ONIwr8ITSVML1WlEJF$N=—0TWeO2PFEe0—TOOOlSTFONEooINOeeV0~t~E—N0WF=OS8oUEMNN0tOTT0eVOAEoWNOM2NS0OVNlIEXOe=TOMoeaO >osbBw2C—(<Q»3TaV-L>DoX}«UWV—d9>I]D0IS—a0x2O1~a2Jo>g.wNtAL70w2]eZVO>J(2WXZVaF—OxAmX¥-dO—AiwEI22rrWWXX=OvN~0@—eC)LN-x\Oa2udD~0aoo4X—rO=wIW WLMOe—2dOVNEA—wvWI)MTIWuD2O-—oOOUw~XWsUIWDW=CwVT0ZI&O Q2VWB.uOo0AnOJD2NEeLWtuw~xI0ZVxADWwrWI@eWaouND22OVWwiX—XO—0€LZxmO-O~DVQ2Wwu—EZm=0D€TaQ-~XNnO-Xe43EOVO~uE—WeIXZBAgnTrOwVxZL0S-XuTD-gd2dNu€CI~Wa0XNl<XvNOLMOux2SW(—-3—O XwUXw.«wNW»]_uoR(OnNIWeDViuIUO;O@w—AM=VwI¢EmJ~«DNweV_0aIW)E=OBADZJICiEoT~OWO<N XO>Vs<X U—O>ND0OFeTvTM=~JUEE—Ww=wTO-oORD~VNQAx4~~BXA-XOOQTa[weT UZA«+JdVWiIFTEEASwOkIOrCeeeTNO~w@NW TYawX~VAYO\UsEXIOZlOxNT-wrLAgBWTOaXeraWQHo—~XLOi-oFILeIVO[ ~Uox1JoyXTxrdIoWS¥OY0aM—=T0VeUoYNAVaxD®M>.CO-WZOwN-TQs~—@2NW~-2wEI0—WvD°-OW@QAUu~3NEEATBWLwID2L0O-wW—v2E—[TVX2-n .XTOOITO0dV-V>FPLS~DOEWwNMX~OMJIT=A>EZ_AXIC—goavNZ~W2V=D,WOCLO40XxwNw)VwDWU[,IIX>-IWOMw@=NZe)JLPTOmEI)2VTVxNAKEOO1.IDXDI0Z2DOWa9N—LQXW—ie4—:i-Ia~eEw(\(sOQo <~a ]%Do-E E=-—os[op)[e4««] W(xi@V9]~~PwON (OQ@=)ZAaM>\2wA—wr2Q>m—oTWoDWrM0x2~X— %~4} aaw—d VW[— 4~oO[-+eBN(Ew-—7oTZ~ ~——L (—<SVy}, ov~~ "[ ~, CZRJOAQ RPO7 PERF EXER MACR 0 v04.00 1-JAN-B3 12:06:52 PAGE 59 ERROR MESSAGES K 16 SEQ 0205 ERROR MESSAGES . CIRJOAOD RPO7 PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 60 L 16 SEQ 0206 >Or=er—r—e=POUM= OOOS0OO~0=—OIO= M TOWNTO = OM = ERROR MESSAGES — WFMeNo0DOMN RPDS REG ADR REG ADR RPCSY RPW( RPSN RPER1 DATA/ 600D RP(CS?2 RPBA RPOF RPCS3/<CRLF> RPER3 RPERZ2 RPAS/ RPER1T RPAS RPCC RPER?2 BAD/ RPDS RPDA RPD( RPLA RPER3 RPDB STATUS /<(RLF> RPECT/<CRLF> RPMRi/<CRLF> oPAocoRoACoOoOWoPrmAU OLQocaxOo+coNax“aaSxUxWaWxOaxw-T|}M O[~Y0O~a[y0YOa0YOaYoORNsaOYea0YOaeY0aeO) oO(WN] WOVWOIIT—O 0 WMOON ->a— O000 — e — r e — e w VOWOWDYWOOo OOO0O0O0 >o O30IO03TO30 O3I03OI0TZ03OI30I Ooo Il ~a 0 ws O Ne— OTO0O0VO0O [OV—MeEOM]N MOO0O0O0O0 [O4CO020O OMC’OheOg [ONO [=b—] “—ow_aoxacsdo LoZV2>W]D@>OD>A Ov0&NO-LoR~0 i oxaxo (=-4%) Q-~L No «(xa W-[+o41l bo wIO QoA [-44- - ao wex 3ete O w»ao aw wa o —_ NEL wWNo Mma. o ~5 o xa N vy o—Nx weal (V9] a SEQ 0207 - o 29530%4174324724141¢3942N9420351 CZIRJOAQ RPO7 PERF EXER MACRN v04.00 1 ~JAN=-83 12:06:52 PAGE 62 SEQ 0208 MESSAGES -O«WViO]wO[VNe—emeOO0OA[O0NVWWEAWOERINANMRANANANWAOC-rOAOIVNEMVXODA2VONVNE—_ ASCL] CNO=IN3TI(UN—SOON~OITS OESo3N—TW3.aA-3uISH4vOM1X~55RTPm06O6 OwEgWoZVx~N>XO00eKOCgar0x-=ZrVxw[HoO4ZN<~Ii2-+n0OoZ[w4gWh~x&o+nED=)“Wo~SO—-NUIwExMmM[ow-x@H4w1~XCga«]EgSxsouxw “VES<Wo~NTwIEMX[4-Vw~AaxJ9oaVog<Yxc OON NDN7F2TTTWFANMMMONON——= ~O-LwWOwoAwxYXxVoxAg -~v ~Q vwox-xOxowdy -4[+ [ x “ws oW &A AA ¥vo~waNx -N~AD -Ol[>V 4- L A - ~ v d[» (2 Q{OAO RPO7 PERF MESSAGES YeloiellVleVe)ONa0M (olelolololele) EXER MACRO V04.00 1-JAN=83 12:06:52 PAGE 62-1 OOIIIIN 20 oo ASCI1 SeEa 0209 HEADER/<CRLF> DATA/<CRLF> eES—A(“Wi]WwV4V—J(Y-_xN[VPUTNV,xEe([@~][ow-m[N&4V¥[]«oM~[V[}-~R>0[-NE~—s_~“wNESNWM—L-MOXZEX(EWDW[~OSZZ>O OSANVIAJL»A~BFWum(Wgt2@~E->([A0Sw>~VNW.\ALOu]'®mVZ4gy>X][pA~EASNMOv2uAulmg2ZCLGY]uWng2CLAG.OI]—u0ZmMg)T]xd)—AS\-2-=o-A2LO0NVuN"XmE4VgW"]E0F,LAVGOo—O]AOQS'0yFmrI[o&IeOS<oeEO0R(RNCJSWAC=-NSOy3EOw&D)A~O[ovASMIZs0«tQA=SNxuDOmMg0CPVGuInFgEA(AC*SONOVwL&(1A.2|SK»o4AAeVsp4m]E[--rMg«~IA—SN0uVmMVgO2SZeNn—I[2@-oA.w>S(<-4SAD+IUmsx+[=r¢Ag]OTLNVAV"-0SIeNOrEA4PXSINmrOa.gIV-0SWmlINOgON)AoTD~a&dI—-SOVVAr4M[QANEeIvN-W[’0]])(Ge}[[SVy—=OMWsNSv.)II2SaOZoyENNTALENDLA20SO.VVCXEQOWIxNOGVIAXG1MG0NuV[[|1m}nQgN.WgDraOVAOANITIFoNWGRNxrJ--T.P~~dEVAM”Wg&oN~[«~«w—o”LN4”aAIOONG[aIr«~.NAWVN3XQFCOxGNZLrDS.iNuOVn0WCAOI)DoZ.NSZO0IaNS0OAxOT~geN.O0JgooJDoIZoCA0uSW~J$Nb.AuXnxwmg~NMNoOER0ZaI—SO=Ax>CSw.DreJNmu0wgN1EAdouOS20AD2—F.NJOSwrOi.uOWN~aS0aWM4AOwTTZoNoSaIrZV0Ol-N—B.UCLAQwNToxwVS0VOwrN2-dZoNZS2I.AN0IVSEaZ-OToNrSVDTAloNu[.SWA§e,=—-NVSrOAS¢DNTy.seoNMS0orACNoSElSNt ONCEOL]-N—IyU~SVgxZOSTvVW~OogNOAU0OONLTNASPWWUAMOg2LNOVIAOg@ON(AIEUN—I2WOD+IMU~NIgDAN=OO«WVOWZP-EDMMAlUOO0O=SNgIeW~-NSDO>O=PDON~0O~DNWNNAOTWRAONCUOg~NN=7IOZINMWVOR<ONOA7UMgYOONTMU~I[~NgIS=OO3OLVVVNO~NW3PIMLVNUOIgWMAISNOSLNPMg-VOOONA~I——=MeNVINLVMANUO-OINNOA=NNMIONSWO8MNUmDUMg—TNIiOOMaIM~[N]UAAxLNONMUw=NIAIO~'MNNUANMLSOOOo~OWIANSOI0~VgM—=Ose0UIO,N~OetSOZMMO1LmNNMNOMO4CLONI—NgONTP0IEAANNAROONUSNgAIMEOAAM=>NLOAPNODNLNWAO=eM 1W\IONONA~NIiVOEOMeCO==INLLOZOOIO.ICNw=eLNMMROOWDNeWOWPINOUe—UOR=AAOMwaNeLISPrCIDoee-P=OLTLTODeOAOO OI—IDOSUNNOMOOSIAOOIRVLDVgOWIDTegNODMONUZPM—AlOPN0OALNZIVUNOLTOIMIN N(—[x-4VS4=9[1w]«Vev][N|[V.7oeP~]Zo~AVZwOW[E4AJ>[-=-s-) o“o-o-[4-£(4m-[[—w4s++[vo-wv>4Vte[]« [.Y}[[[]](])]]]}}[V.17 --o~[ S--~NO~~[OWdN~~[ “@&aT['owx}V (=.%)O ~—Wv 1.1}T1T1T1T1T2TLTIRSPEFFFPFFFFPPrPgydadad (STl LSBTTL [ W = o ] — w ~ < « D X w N S » m n )[elalelelololelalaleleldlelolololole]lalelolelelolelololelololelolelalelalolololalelnlelelelololalalalelelelo eIOC0OO00O~0OO00OON0—0NNrmN—NFN—rVOANINEOT0C0O0O0O0O0O0CNONOITOWNVINMINOMNOMNV— Oe[LoQQrO—-0r—Or0ldr—mr0rr N_V=LVI2LEW—VLOV0LZAVNOL0AOV-MV>OaVYAO [IB1SCZADTVKNL2S0NOYAZVSANALEA [Awa“v~-]< [\~}4[(&o}]~ - TELETYPE MESSAGES 2Tv(~-VM2] ][[[] PSPo~ ~”—_P [~ N ”- CZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN-B3 JAN-83 12:06:52 PAGE 63 12:06: SEQ 0210 TELETYPE MESSAGES r(~VYd](s-=] P ”~ ~- ” o9 CBELLY/ CUSTOMER DATA WILL BE OVERWRITTEN ? / !/<(RLF> /CONTINUE (L) 2?7/ <CRLFE>/+ TESTING W 1 <CCRLF>/+ PROGRAM | DER ONLY ¢/<(RLF> LY ' MODE ¢/<(RLF> TM ! N =omeccccccccccccsccccccccccccnccccocs /<(RLF> — <BELL>/ (L) lalel < <CRLF>/CHANGE DRIVE PARAMETERS (L) N ? / <CRLF>/DO YOU WANT TO WRITE ANYWHERE ON MEDIA <CRLF> wnre g et ot Dot e P e St P (alelnlalinlalials] g P wuwmnunuwvunnwm St B2t St Bt Gt OVRWRT: - L] L] L] L] L] L] L] P 2 2. 2. 2.2.2.2 ~NNO —— NES =200 B OOOWI—= ORI OO == —— OO N OO =00 VN bt g? 060526 NN = O OMNININY [elelelolelolels] OOWNNOOO 87 060430 88 060451 MSPRM: MESFE: SeEQ 02N [(Valen] f RPO7 PERF EXER MACRO V04.00 1-JAN=83 12:06:5¢ PAGE 63-1 060664 077777 077777 001462 001474 061224 061354 000001 000007 001500 001502 061061 061451 061407 000017 -WORD .WORD PAR21.1.RANDOM 0 SLASH: ASKPAR: .ASCIZ .ASCIZ @ / 3 <CRLF>/CHANGE PARAMETERS (L) N 2 / PAR3: .ASCIZ /DATA PATTERN NUMBER (0=RANDOM, 1=15.=FIXED) / 040 110 1064 101 126 061354 061407 061451 061515 123 101 11 101 M 101 11 101 111 117 11 105 116 116 125 105 JWORD 130 115 PAR1: PAR2: 130 116 130 116 130 116 122 115 PARG: PARS: PAR6: PAR7: PARB: PAR9: PAR11: PAR12: 101 101 106 115 105 PAR14: PAR1S: PAR16: PAR19: PAR21: LASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ ,ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCilZ _ASCIZ .ASCIZ PAR1S 1 WRTCHK ;TABLE TERMINATOR /MAXIMUM WORD COUNT (6-12800.) / /TIME BETWEEN REPORTS (IN MINUTES. 0=NO REPORT) / /MAX CYL / /MIN CYL / /MAX TRK / /MIN TRK / /MAX SEC / /MIN SEC / /WORD COUNT MODE (0=RANDOM, 1:=FIXED) / /TIME BETWEEN DATA COMPARES (IN MINUTES, O=ALWAYS) /READ TO WRITE RATIO (0-7) / /ENABLE WRITE CHECK (0=NO, 1=YES) / /END OF PASS MODE (0=SEEKS, 1:=DATA) / /NUMBER OF PASSES / /SEEK MODE (0= RANDOH 1=SEQUENTIAL) / / T L X o afa® [~ YV Y 3 ¥ I X X .EVEN [ X 52 T T g{ 061537 122 105 105 116 0k 001510 057 103 40 41 42 43 o PAR16.1.ENDING 040 200 11§ 115 115 118 115 115 127 124 PAR3, 15, PATTERN PARTY,1.RANDWC PAR14.7.RATIO .WORD 001506 24 060702 25 069706 29 061136 30 061147 31 061160 32 061171 33 061202 34 061213 38 061224 39 061271 INTRVL PAR1Z.32767.,(MPTIMm PAR19,32767. 'PASSES 001504 000001 000001 28 061061 MWORD .WORD .MORD PAR1,12800..WRDCNT PAR2'3 §767 000001 061537 000200 115 124 .WORD .MORD 001476 15 060672 5% 060700 26 060742 27 061001 .WORD .WORD s il £ 061271 061515 PARLST: VoV oD 11 001470 YV YV YV YV 10 060656 001466 Y 7 060636 8 060642 9 060650 031000 077777 Y S 060620 6 060626 060742 061001 PARAMETER ENTRY TABLE Y 3 060604 & 060612 SEQ 0212 I .SBTTL PAGE 6 Y % 2 G Y 2: 4 L PARAMETER ENTRY TABLE PA Y EXER MACRO V04.00 1-JAN-83 12:06:52 I CZRJOAQ RPO7 PERF 12:06:52 PA PAGE 65 S€Q 0213 }? .WORD WORD -WORD .WORD .WORD .MORD .WORD .WORD TABLEO TABLE TABLE TABLE TABLESG TABLES TABLES TABLE? ;PARAMETER JPARAMETER ‘PARAMETER JPARAMETER sPARAMETER ;PARAMETER ;PARAMETER SPARAMETER ;PARAMETER TABLE FOR ADDRESS LIMITS 20 061624 061632 061640 061646 000000 001166 000035 000035 000041 000041 046372 066370 046376 046374 046402 046400 TABLEO: 0616564 061662 061147 061136 061171 061160 061213 061202 061672 061147 000000 046634 TABLE1: 061706 061714 061722 061730 061171 061160 061213 061202 000035 000035 000041 000041 046640 046636 046644 046642 000000 047076 061700 061740 061746 061136 061147 001166 046632 061754 061762 061770 061776 061136 061171 061160 061213 061202 001166 000035 000035 000041 000041 047102 047100 047106 047104 062006 061147 000000 047340 062022 062030 062036 062044 061171 061160 061213 061202 000035 000035 000041 000041 047344 047342 047350 047346 062054 061147 000000 047602 062070 062076 062106 052112 061171 061160 061213 061202 000035 006035 000041 000041 047606 047604 047612 047610 062016 062062 062122 062130 062136 062146 062152 062160 061136 061136 061147 061136 061171 061160 061213 061202 001166 001166 000000 001166 000035 000035 000041 000041 047074 047336 047600 050044 050042 050050 050046 050054 050052 .WORD .WORD .MORD .WORD .MORD .MORD .WORD .MORD .WORD .MORD .MORD .WORD TABLE2: .WORD .WORD .WORD .MORD .WORD .WORD TABLE3: .WORD .WORD .MGRD .MORD .WORD .WORD TABLE4: .WORD -WORD .WORD .WORD .WORD .WORD TABLCS: .WORD -WORD .MORD .WORD .WORD .WORD PARS.O0.MINCYL*DRIVEOD PAR&.630. ,MAXCYL+DRIVEOD PAR7.29..MINTRK+DR]VED PARG.29..MAXTRK+DRIVEQ PAR9.33. MINSEC+DRIVED PAR . B,3 MAXSEC*DRI3. VEOD,O TABLE TABLE TABLE TABLE TABLE TABLE TABLE TABLE e e & FOR FOR FOR FOR FOR FOR FOR FOR DRIVE DR]VE DR;VE DRIVE DRIVE DRIVE DR]VE DRIVE 0 1 § 4 € 9 e e e TABLE: PARS,0,MINCYLSDRIVE! PAR&.630.,MAXCYL*DRIVE1 PAR7.29..MINTRK¢DR]IVE1 PAR6.29..MAXTRK*DR]VE1 PAR9.33. MINSEC*DRIVE] PARB,33, ,MAXSEC*DRIVE?,0 PARS,0,MINCYL*DRIVE2 PAR&,630. ,MAXCYL*DRIVE?2 PAR7.2Y..RINTRK+DR]VE FAR6.J9.. MAXTRK+DR]VE PAR9.33. MINSEC+DR]VE PARS8,33, MAXSEC+DRIVEZ,0 PARS,0,MINCYL+DRIVES PAaa.eso..nAchLooa1v§3 PAR7.29..MINTRK+DR]VE PAR6.29..MAXTRK*DRIVE3 PAR9,33. ,MINSEC*DRIVES PAR8,33, MAXSEC+DRIVES.0 PARS,0,MINCYL«DRIVE PAR&.630.,MAXCYL+DRIVES PAR7.29..MINTRK+DRIVE4 PAR6.29..MAXTRK+DR]VE4 PAR9.33. MINSEC+DRIVE4L PARS,33..MAXSEC+DRIVE4.0 PARS,0,MINCYL*DRIVES PAR4.630..HAXCVL00RIV§S PAR7.29..MINTRK*DRIVE PARG.29..MAXTRK+DRIVES PAR9.33. MINSEC+DRIVES PARB.33 MAXSEC+DRIVES.O ANttt 061624 061672 061740 062006 062054 062122 062170 062236 PN AP PR NP RRN S 061604 8 061606 061610 061612 061614 061616 061620 o 061622 e s et e sPARAMETER TABLE POINTERS FOR ADDRESS LIMITS b e 2 DRIVE PARAMETER TABLES (DPB) P b b b e SBTTL Nt % WPV PPPN PP RN NP 83 . ~= CIZRJOAQ RPO7 PERF EXER MACRO V04.00 1-JAN=-83 12:06:52 DRIVE PARAMETER TABLES (DPB) CIRJOAQ RPO7 PERF PARAMETER 0 6 EXER MACRO V04 .00 1=JAN-B3 12:06:52 PAGE 65-1 TABLES (DPB) OOe\M—ONO VOMTNVO (OON—=VNOOeMVMMONAVN OOOaaoc0o0Woa0Ia0Na WOO0aIMaAOcVanOoa KW-Y-EY=X-UKDYE-)XN R=X YWWE-IEK1E-KYELXKI-XS2 ORIVE —oNo—@PVx]e«NoNoL1aN1L+—Ox¢Eo=O£aEPYEx.Oo-BNPNoWEoNxioeLEK¢=lOxo=—SxtEKDrKNa[OwxdV N[eolaeleloleale) ][eleleleleleoleleldslsle SEQ 0214 4 2 0 6 6 4 2 0 6 ' > o a x L.]3333 [4N-.44Y~a=a~NYa=YaYa CgACLC L«-.). Le&«o]d PC.SSIZE =(SP) J:SAVE RO On THE SiSAVE R1 ON THE STA(K arfie -(sm MOV MOV MOV MOV MOV 116,304 ::IGNORE PARITY ERRORS WwHILE SIZING SRTI.30116 SFERRVEC,=(SP) ::SAVE PRESENT ERROR VECTOR PS § PC SFERRVEC+2,-(SP) SP,RO ;: s SAVE THE STA(K POINTER []0]") Mov MOV (SP)+ QPERRVECe2 ;:PUSH OLD PSw AND P(C ON STA(K ;s SAVE THE PSW [N QSERRVE(*?2 (R1) (R1)+ SSTEST TMIS ADDRESS S:STEP TO NEXT ADDRESS MOV arne,-(sp) S:SAVE MEMORY ERROR VECTOR P¢ § P( siSET ‘"$a52RVEC PS TO THE PRESENT PS 000004 i%: 000002 2%: 000006 00000« 000116 000114 062434 $LSTAD: 157 159} B8R SuB MOV [[0)") MOV MOV L[0}") MOV MOV MOv RTS ,WORD #2% , IRERRVE( 220000, R1 1% 22 .R1 RO,SP ;:SET FOR TImMEQUT PIFIRST ADDRESS SSTRY ANOTMER ::DROP BA(K JJRESTORE THE STA(K (SP) ¢, MERRVEC+2 ;;RESTORE ERROR VEC(TOR (SP)+.RERRVEC (SP)+.a#116 ;;RESTORE MEMORY ERROR VECTOR R1,SLSTAD ;:LAST ADDRESS (SP) e a4 N~ STA(K MOV (SP)s R1 éépso.ao ‘'RESTORE P:RESTORE R RO 0 ;s CONTAINS THE LAST ADDRESS PP P PP RPN RO,=(SP) R1 PP RPRPRPRPARPRARNPRPRR g b d el D e e A (PO 062422 062426 062430 062432 062434 MmOV MOV PP [=F ¥ o NN S B $SIZE: 2 = D -l o OO~ OWWRIAINWNO OO NNNNNN—O e d el e i OO0O0OTDOOOO 000000 =0 COO0O0= 062344 NONVNININIONIOWNWNNMNLNL B O—=OOCOCCONNNNNNOLELS O VIWWNINIWO O NN 2 O WWNO LNNNNNO SV yYyNO S WU = OO oro0roOosroo jelololalalels o) oo aSLSTSTL ST ST ST STV N AN N N NN NN ;*SLSTAD WILL CONTAIN THE LAST AVAJLABLE MEMORY LOCATION X J JSR RE TURN 1 te 1 s*CALL: ;e PPRP :'""."""""'""'""""."'..'.."'...'Q..'Q..Q'Q....O". PRGP TO SI1ZE WEMORMY TN XU X ROUTINE s€o 0218 X .SBTTL 66 1 9 12:06:52 PAGE 1 1-JAN=-83 X EXER MACRO v04.00 1O SIZE MEMORY L X (IR :0A0 RPQ7 PERF ROUTINE sta 0216 ¢ cTHIS ROUTINE ]S USED TO INSURE TME BUS ADDRESS OF THE AMXN/AP(? s1S SETUP FOR 14 SNOTE: TMIS ROUTINE DESTROYS RO-R& ad BUSADR = GET BUS ADDRESS AND VECTOR ADDRESS PPttt adled THE PROPER ADDRESS. IT wWiLL ALSO READ TwE ADDRESS 2 ;FROM THE TTY |f REGUIRED. JCALL: 005737 001332 15 21 22 23 264 25 26 062444 062450 062454 062460 0624664 062470 062472 005037 104401 005037 012700 104401 011046 104402 001332 001203 001334 001272 062576 28 29 30 31 32 %2 062500 062502 062504 062510 062512 062516 104611 012601 005737 001361 004537 000756 35 36 37 38 39 062520 062524 062530 060532 062534 012700 104401 011046 104402 104401 056530 005737 001334 004537 062614 47 062560 48 062564 49 062570 012700 012701 012021 0N01272 040560 g; 062574 000297 27 062474 40 062540 &1 062542 62 062544 43 062550 44 062552 104401 10441 012601 001341 000760 BUSADR: 1%: 056530 TST CHGADR JINPUT FROM TTY REQUESTED? (LR TYPE LR MOV TYPE MoV TYFOC CHGADR LSCRLF CFLAG #SRPADR,RQ JARP(ST (RO) ,=(SP) JYES==CLEAR THE REQUEST FLAG :CR=LF SCLEAR (ONTROL C FLAG ;FIRST ADDRESS JRPCSYE :PRESENT RP(CS! ADDRESS :TYPE 51 TYPE LBLNKS2 :TYPE 2 BLANKS BGE RDLIN MOV TST BNE JSR BR 001334 062614 001274 062695 2%: b} (SP)e+ ,R1 CFLAG 1% RS.,(K.NUM 1% mov TYFE MOV TYPOC TYPE #SRPVEC RO JMRPVZC (RO),~-(SP) 1ST7 CFLAG JSR RS, CK.NUM JNO==8BRAN(M :GET THE ENTRY JADDRESS OF ASCJI TExt ;WAS (*C) TYPED? ;BR IF YES JENTER AND STORE THME NEW ADDRESS :ERROR ExI7t JBLNKS? :VECTOR ADZRESS JURPVEC:"" SPRESENT RMXX/RPO7 VECTOR ADDRESS ON TME :TYPE 51 ;TYPE BLANKS (SP)+ R JASCII TEXT 14 ;BR YES 2% .ERROR Ex]7 MOV MOV MOV #$RPADR,RO #RFADR R (RO)+,(RY)e ;FIRST ADDRESS OF JFIRST ADDRESS OF :BUS ADDRESS RTS PC .ASCIZ .ASC]2 @RP(S1:=3 @SRPVE(:=® ROL IN MOV BNE B8R :READ THF JWAS (*C) [F ENTRY ADDRESS TYPED? ;ENTER AND STORE STA(KX NEWw ADDRESS (RO)e¢,(R1)» :VECTOR ADDRESS ;RETURN L Lk MOV X 01201 NEW PARAME TERS WHMERE 10 PUT Twim MRP(S1: MRPVEC: L 103 126 PR 120 120 N 122 122 o en 5T 062576 564 062605 K L S0 062572 3%: K 2 92 062556 002046 PPPRRO PR AR AP P 062636 16 0626442 PC.BUSADR J 13 JSR RE TURN X : : 1 10 }% X g ~ SR ) g PAGE ¢ L X .SBTTL 2 4 X BUSADR = GET BUS ADDRESS AND VECTOR ADDRESS PA X EXER MACRO V04.00 1=-JAN=83 12:06:52 L (IRJOAQ RPO7 PERF (OCTAL) 063324 o SGET CURREMT POINTED BYTE s R4, #'0 5% RG, 87 -V DRNDNDWNpAV] 177770 .EVEN 000000 PAT(CH: 064330 ENDPGM=, CYLNDR: .WORD TWE . NUMBER "ERMINATOR DETECTED SYES,ERROR EX;1 JYES,ERPOR EX]T SSHIFT LEFT “ONE ;OCTAL DIGIT 77770,R 4 R2 JERRQOR ]F (ARRY wil SET :CHOP OFF MIGHER BITS sAPPENDING CURRENT DIGIT TC NUMBER sDECREMENT BYTE COUNT soRANCH,IF LAST BYTE :LOOPING BA(K 1)¢,R4 o -~ DVOD LS IV P o D o W ® & * ® N Nt s~ WAAm~AADEDNA 3%: IN "LARGER THAN AS(]1-7 ? D 2%: ;BRANCH,JF VALUE SSMALLER TMEN ASCII=C fl’wt\ —‘flNflN“ a1 _J 000067 (R1)+,R4 DIGITS fINAL OCTAL ;CHECK TERMINATOR JERROR EXIT sFINAL VALUE= 0 JYES,THEN NOT REPLACE THE ORIGINAL VALUE REPLA(E THE ORIGINAL VALUE SADJUST FOR NORMAL RE TURN RESTORE R& RESIORE R3 RESYORE R2 :EXIY sALLOCATE 200 OCTAL LOCATIONS FOR PATCHING 258. :ONE SECTOR OF WORDS PP PPPIPIPIPIPIRPIPEPIPIPIPIPIPIPIPIPIPIPIPPPIPPDP P BEQ (mPB R? W BB DD 000060 Move ;SAVE Ré JMAX OCTAL RG,=(SP) T B 1%: CLR 06‘R3 T T B 000006 ni,=(SP) =15P) VNN DN DN VOOV O —=WVNOMNINANP NP N =2 NO =PV O OO N NS N WNEWE WO RSP 2O NI W WVOOOO—=0O—=0OMNONIIVNININOCOO S & BN NIONMNINWVINES SNOWOOO MOv MOV MOv SERROR € NORMAL RS OF ASCIZ STRING CHANGED O 062724 NONOVNO =N =) CONNIENO = OO —=OO0O0O0O0O WEVO=MNIS S 38 062712 062714 062716 062720 062722 OO0O0OOO—O =0 =020~ 000000 062700 062702 062704 062706 062710 OO0 HhO0OO0OOOOONONO=O —2~sos 062670 062672 062674 062676 Q=2 OO0 NN 062664 (K.NUM: mOv - 062614 OCOO0OO0O0O0O— RET RET SADR N1 RS (K .NUM , . e T T T T T "oV JSR ZMARA(TERS . SCALL: In R2 e T :AND FORMS AN OCTAL NUMBER WV NN 2O OO N ~ VB (K NUR = (MECK NUMBER (OC? -— e S8TTL :THIS ROUTINE CMECKS AN ASC i1 SIR lNG FOR LEGAL 2O O® YOV B AW (@S] W NN AN N ANANND PO RO RO AU RO PU RO AD ALY b —d s b d b b b b — 2 OO 00 NO W uiry — (K NUM = (HE(K NUMBER % S€Q 0217 (IRJCAD RPQ7 PERF EXER MACRO v04.00 1=JAN=83 12:06:52 PAGE 68 200 200 200 200 200 200 200 0«0 040 040 127 040 040 040 127 122 126 124 040 104 123 26 065473 200 040 040 31 065612 32 065650 33 06567 34 065737 35 065760 36 066001 200 200 290 200 200 200 123 123 123 123 123 123 123 127 127 127 127 127 127 127 ¢7 065472 29 065557 30 065560 37 066050 38 066134 39 066211 40 06671 41 066372 &2 066457 43 066557 44 066647 45 066733 46 067034 67 067144 48 067265 49 067362 51 067471 53 067603 56 067705 55 067744 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 20¢ 200 200 200 200 123 123 123 123 123 040 123 040 123 040 040 123 040 040 123 123 127 127 127 127 127 040 127 040 127 040 040 127 040 040 127 127 CASCI1 ASCII CASCII LASCI] LASCII LASCII LASCI] LASCI] LASCII ASCI1 JASCII LASCII CASCII LASCII LASCIY LASCII CASCII LASCII ASCII LASCI] JASCII LASCII LASCI] JASCID LASCIT LASCII LASCII LASCID LASCIL LASCII 2 W ["S " Y " 2 2 cyi.inder adrs/ cylinder adrs/ track adrs/ track adrs/ sector adrs/ sector adrs/ e :max :min :max :min :max :min <CRLF>/THE FOLLOWING ARE VALID COMMANDS:/ <CRLF>/ WI<(R> assign drive and co SEQUENTIAL WRITE data/ <CRLF>/ R#<CR> assign drive and go SEQUENTIAL READ data/ <CRLF>/ T#<CR> assign drive to do (random or seguential) TEST/ <CRLF>/WTP<CR> assign drive, to do SEQUENTIAL WRITE data and/ <CRLF>/ to do (random or sequential) TEST/ <CRLF>/ D#<CR> DROP a drive from test/ <CRLF>/ S#<CR> type the performance SUMMARY report/ <CRLF> <CRLF>/ ) ) ] # is the drive number (0-7 or 'A* for all drives)/ <CRLF> <CRLF>/SWITCH REGISTER SETTINGS:/ <CRLF>/SW15= <CRLF>/SW14= <CRLF>/SW13= <CRLF>/SW12<CRLF>/SW11= <CRLF>/SW10= <CRLF>aSw09= <CRLF>/5W08= <CRLF>/SW07= <CRLF>/SW06= <CRLF>/SW05= <CRLF>/ <CRLF>/SW04= <CRLE>/ <CRLF>/SW03= (100000) (040000) (020000) (010000) (004000) (002000) (001000) (000400) (000200) (000100) (000040) (000020) JASCII LASCI1 JASCIT (000010) <CRLF>/ i <CRLF>/ <CRLF>/SW02= (000004) <CRLEF>/ <CRLF>/ <CRLF>aSW01= (000002) LASCI] <CRLF> LASCI] 2 <CRLF>/MAXCYL <CRLF>/MINCYL <CRLF>/MAXTRK <CRLF>/MINTRK <CRLF>/MAXSEC <CRLF>/MINSEC <CRLF> 222 JASCIT LASCIT LASCI] LASCI] LASCI] LASCII JASCI] <CRLF> <CRLF>/DRIVE PARAMETERS:/ T 110 101 mm 101 m 101 m ,ASCI] LASCI] <CRLF>/SW00= (000001) halt on error/ /7 inhibit error typeout/ / /. ring tty bell on error/ qhangg end of pass to 1/4 of normalad 1inhibit end of pass messages/ display all data compare errors/ don't change parameters (loop on present values)/ A. partial register display it error/ B. no ECC correction results displayed it error/ A. do not check for maximum error count/ B. do not drop drive at end ot test/ A. display error sector if DCK, DTE or WCF error/ B. display sector it DCK uncorrectable atter 28th ret (. it data compare error & SW07 set, display remainde A. do not type drive status at program start/ ) B. do not type performance report after specitied tim C. prompt ‘write anywhere®' question during auto test inhibit data compare after read without DLK errora read only mode/ ) 56 067745 57 070035 58 070125 200 200 200 116 040 117 040 040 LASCI] JASCIL ASCIT 60 070164 200 124 1RA LASCIT <CRLF>/NOTE: [f a DCK error occurs, the program will execute/ a data compare on the data in memory, reguardless/ <CRLE>/ of the set*ing in SW01./ <CRLF>/ <CRLE> <CRLE>/Type control-. (*C) to HALT the program/ ¢2 070235 200 124 157 LASCI] <CRLF>/To change RHXX adresses, 59 070163 61 07023¢ 200 200 040 LASCIT LASCII <CRLF> start program at address 204/ W 1264 119 115 115 115 115 115 HELPTX: T 122 e 200 104 <(CRLF> <BELL>/THE MELP MESSAGE CAN ONLY BE TYPED ONCE,/ <BCLL> <CRLF>/DO YOU WANT [T TYPED (L) ? / W 20 064764 21 065046 22 065127 23 065217 24 065305 25 065357 26 065416 17 .ASCII ASCII LASCII LASCIZ W 19 064722 200 200 200 200 200 200 200 ] 104 MSHELP: T 064463 064517 064553 064604 064635 064667 064721 0 T 12 13 14 15 16 17 18 200 200 126 e 10 064440 11 u64441 200 007 007 200 HELP TEXT MESSAGE T 6 064330 7 064301 8 064402 9 064403 LOBTTL T g 2 HELP TEXT MESSAGE 7~ 1 SEQ o] 0218 (ZRJOAQ RPO7 PERF EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE 69 By G g B St NEYNNTDY HcLP/ P g P <CRLF>/,END OF SEQ 0219 P 00020 P 69 - [ ] . L[] >rrP> 63 070324 64 070325 65 07034 66 07034 ¢? EXER MACRD V04.00 1-JAN=83 12:06:52 PAGE 69-1 (TR XV YV TV, ] (ZRJOAQ RP)7 PERF HELP TEXT MESSACE OMwI—OXNXI=@NOMOIOWNO0AOD0—NO0MOI—N~OINYDiOOOTOOUWrO—M«O0MOEZOrW0EONI0O—NO)V)OU—VUNDaOoaVOvaw0wOWWVNOQMONUOLEOXVNOVUNSI &o=I(0[&TdOaWY=YI)Oa0NloY]wO&3eYdaS«Y]Ol&oaCeYYT&Aa0oaQY0lIa&eatOlGlaTO&daWCoeYl2&lNaalUY%IOoaoIlYMNT&ePaalIYYIEUaaeNOMVlIEYeOToOalfEYWeTaAaNVleWV2oaTNOalEYMlNNOaIaOAl)lNMa—atYIUYeINaSaNlOVVVeaYNTm4laVUOoV>YlAAaaNIVIVM2OYNalMaV0OWO2Yen" aaVVlIFYEaOMaeVYl0ONSalaVOYCOlUEIaMo0LNVYalCOIaIlVYeSZa0OEOaldIlVYaTUENYa02TaCIYOlIEYaVGaY0IeSNYNToSOalYI—PVaOeYYoE0IOolAYOVIaleaY0VlloOYaaelY0IVaolaATNYOYLeaaAAI NlVYlIao0AYOYaolV>OieNtTYldaooIYAOlY-dOa1IaYY=TlaMdYAY—aoAaCIN@YYlI=OaVdYeOYiToeAlMYOYN=oeObdYYAlo~ONYYe>Vena=uYlYO’Lam=oo~OEnWIYlSaNE|O—oYISaVEdlOYOIPNaeFYAlaSFYTeAeaONYl=aAOdIlRTVnmOeVNdIu=IlOAmVSndeNUNLlTmuIivMOn(maIILvlwXA—lSHe OUTelNVIlTOlFeI—lOelN—eOI]2Tet -ONFSdIOoMTlWONlMSeVIlMaOWlINOlMITl~OToNOrlINOl—sITMlrTINOle0lDIeOlN0elOeTLNoIOVNTOeNIOWQlTeVOI\[NelTOWelN2Oe.lAeWlONlMWVeIlNreOTWIlVMNlOTIlNaOlIelAOeRlI— eOlNTe~lOa—TWlMNal—Oel—NOlIalOeVlOIelMNelSeIlOeI—leNOlSeTOleFlMaOdTeAl dLoA)=DN—Jp—[F]DholCxOaeT—iOaWAa)N-oOClTaLxCODoOdDOVTeLLMOS(=looLCDaWNsSVeB>4OLANdDl)OoY9UVCVOOeNSqSToWAld.oNVSSOe=uOVOgwTeVNCOCeTeGlUSAqeSOPoClNWCMN0aICAGeloWUICTBaOMlOQ—eloSVNoIO)aNTOwINDAloOP=ONeCSMT2lo=OlOASNeNoME0ES=ColCOOUAeMeSa=0ECVOlTOeSOI=AeOl—N0LSOoWlOSVo)OOoWAQIEaI)oYlO'0ACNM~SuCOTaaeSVQ=tFvOb0tLlNCNOATUcS)NaueOANIZNlCN-@OCIOXIEbOeO—tOTANlONUNrpEMWeVelYLeNOWmEolC3ObNATrEoA~EmbDMebOl=reCNOaoTmXedAbr—I~leOCU4ONeIP[CM-0WlNIWDY_OeTCOo-WredT—IUOB4lOT0e-_eV[aEO+e—DOrNe2_¥OdlO00>eUoOJrDOO@o]I0lx-OOaV&rbNOZ0Nl0at6eIOV-XDoO2elONrOIEIOo00Ve@o-lPOXtMN"e]0o0oSO@I0SolXeMOO—-IJbColN=DE0"c@lOaMIbOOoNENDaaWDI0lIbSOrZOTWOoO—eNaIbWl0Or—EoOeV—MObEalIONZa>4ageEobbDxDVOOIAlSMO«eaVOE—al0aVIN0DMCl,EoII3nOaOOrViOoeDlEroMfodOOA0VNaereOelaDaOVOeeNddOToOM[TTldONN>OeeoNDM>O—MIV=lOOe-e’IWOaWM>oltMe~2XLoNeMlt>NOO.XTOoI0DAo>eVNt>olWSV2NeN—WxooeNIDtNAoMX>_lN—WeUN[eJLOIxta—s>OIEONaOrTNleIOYW2ts—a—lNEMa~XWO>OfMslOXeWN2a>OaAV—EAVT—eIZelr—2AXaOWOtIO—Oef>s0laFZ—O0TOaWAeoLatEl~O—ATXNM Deelo "n AgDLS]9CsCC9CC<CCC9GCE<CACACAgCCE2ACECA1ECAC<IOCAVCEWIOVEeDOLNTUIFIBEWIVUIOVLWIUIVNUI>ZI»>IZ»2I>O2 ON0OFITT0OOIAOOWO—O0—OITOO0OMIr0—rr~ Q- SYMBOL TABLE CIRJOAO RPO7 PERF EXER MACRO v04.00 1 -JAN-83 12:06:52 PAGE 69-2 SEQ 0220 AROANTNTTIFTTFBMMMUMMNINN ==OIXT—~EENIIArevrrWO [0=YOO—WWW6o6oo7oo8=6N3V‘N3VCD3V5NV65IV7I3VI4D5VD3A0DU3N4V5N0DI0IT1T01XCPS=.=.AHOPURISTLAX"ALBEAG UZORKbE MMW>W OO - E6U=7NQEW05O163L‘x4—DTN0E61EX3WUlR03"4wS2N5E601En‘M‘WO11N0E[0t‘ETW2I—2y}14TL6TxN5>@ E0E1Q71‘"Or2R6A—EX60E4Ltrq3‘b01I—SwM-R2E5W64E"JO0Z30IQAWRE45E7XTOAN‘C0O012XTwN2UOE5E3AMSZ23I01Jw0OA1I‘65E4MrW62F—160wWA735EoTNw21f710SuOE5F735EnSN02160eAO6E50r5E6Twt2!0NF44g10L[«6I‘365E7"—XnrT]5F210hO—VUY0H57.rEF3"Z6-F20VNL4RrH015EIStt2R5F62[01Xy[U«0'5[EeMT‘10F120}EJJ2I1O>@45wVE3IRX—032F1260ESaO4‘')x3524sOZarE5Ge160WE22t=1oGM5A2Na‘E7GX10DEM23N2U1G2‘56tTIA0EWGVTO0E6LUN360RwG.>25A2E7GL40E7—N3i1F‘G-354COIXv—-E2WG540E1wOXoaiE‘VGr365Z2aiKZ1O0xGr50E3XO6G15VT—WT0G(35—0EQ>=UXCI0“5146C2H3A5O0E6G(0H1452MTC0“e350E"D—‘(2HV54NR0E‘H+U3‘520E6OX2E1=“57O H476<AWZBL,.212@HeAWZ31lSWIuaAg242W[SG)-Z‘5lAMLST0O7eZWW27MlLNg)6o5LMgL]IA03ENlAPZGSu1<s6TLlgfDCsL5NNpEPa7OtAn0LlP)Zub2sUI7NEl3LGMZLsNMI5GL7Els=1WS24LNGlMQpI!uP.Ns3MMe.OZWN1LsNHTWll2WGZNZ7Ml¢5pu2Om1LNOlLNsgOgW62P7)pumn0LN3l—€OE+1O6PRKMZotLNSOoOyD27P3KoMMtY2PL6NS«LoMmZs0IT2Xo2N=StL6PNSL7=—2TTqe4L6NUTLUDO50TDIM3L1NXLYOX5D3@BL‘oL5N1L-o—7N0UL6eN1L32l-L71—04VL2NWL7oL312JonLNLI-XO>woZL5L2—6hLMaaZ=nLlNL41d.QIEa2a~nlL72TlZxDoEnLN130LZOWNteOZLndDe2U>nLN‘73L=—TdZae-VnL16—d2wOXenULN70LdernELU3dOarnLN47ELdITanLN-3iLN47OLdAVWh¥nL6d4WxdCe[nLN8VLVd>NOeDDLnL_39JdOeOALNn‘LdeLW69nD4ia[HDZAx2—y">-—Y"e>=%N—DZ-P"WnIuIHXHi[-Y"X~Y=?HTA-H-ZON.aFAOI"~—a-HNIST"aTHAnOv=a"I»HlO"qe«H!BtUNTp>HGWSUH[NNvEOo"WUNXHxaO.gLWO"FlArHLoEL"aMEZXPHWOI"—GoHIVZCGa"OTHGeO—ICHGE"GH=HHDvwyMNHxOPIV"e—.NIWUiNUXOFTDM>UUMaNIDxW-wVeN—xDMN-D0 CZRJOAO RPO7 PERF SYMBOL TABLE EXER MACRO V0&4.00 1-JAN=83 12:06:52 PAGE 69-3 SEQ 0221 AbddSStelNtSNdNldLlWhdAlAlil)elWblM)LDDDD(DILDLDdMDCdDoDGdGGGSGG)GtSeelGsGlQsBlBle =TWO4O0OLONCIA>N>VKYOd~0aZ"a:oOTTxO.Ox>0=lADC1D=Z<=[NR]oOVo0NOTNMT0I—lofILXN%oOVAdOeeO0Z>T4~o(TXelaO—WNeXT_W&uQATI0<TAYNdelONbOXILZTL=oTS0OILPZ4eZTuOIAlbg>lIX)ZX«o20L>NMJIoOTblI>TuXTVAT0MOoYrXX—eVOdwNlNZNO4IO0oV0nTWaMAWT—~Ool0AUOOUPNLZ—»EOa=eCIINNWXlOO=RwOmT—DNO0XgxTWAwLMoF)MZ0Bl~Zd(Oow2e"LAIMDeOrEAoNV0ZlADXONlT0=UOANUeIWNDdA0YW=OlaJdO0M"T DNO2NuLSelAEAONI0alO0WweWOwDeMZIPMlCwaZ~r—NOOdONAaLXAOlMw2OelNDEOPre0AUIeANZ0NTCAVe=l=NNOWlDIEOXdOCNIM—DemR3D,eAlDVCV2lIMOuUdVOIeWONa—0N"TDATUlANErlVMwOeN~Oa—NLOD»VN—l~dlAMOTUV>Ooe—AdX0ONIeVIllMAMAxAaOTaIeANr9ZOeWONrllNNX-IASeAGL0Co=TAoVIOe~EloAFW~lrLNeeAX”T"aINWCrXlNG—VAlaOA=0ANIA~cCVVLeEZlOOTaOXryN>TNLAaLl>Nrr=rc3A4aGOOOW[0XIAACllTOICXDLTUANoo—eIAOWlLMlNNAELMXON waaI0NOT"rVCN-eWllDIAIQweANAOLO"NeWl0ClCrNoeOXdNO0AXDN="roDMQlOXMlVNIeNGE=-ONxoAeAlO2OlVT0FX"0IA sAarINIU-]tQTMNOLMOZ-TATl3DGS~slII0AInVOl"s0JQBTsDWCTEAoFV"OAWTlOIeUAOUaI0lNT4XIolQON4WOsTI0a.CSEC0“lSOUOIlwOwsNeAIIXA4glVN-T"OoO«0CQBe=LMINO0u14O-AITI]AN4TOVCNCs.ZIEPQW-WTIlUOOAO4B2oL.eSw—-WN=&IlNZAOO—l4oOIIO[NNgW2O4N]CZOiN.ToVZeQUONMTEnO4llMWC.NTI0a@NeWNwNQ4Irll-O2CXFNNDaEeWe4ANOl0lO3O.VrEI—N-GeeOX4YIOlCOl.0rTP"eI~=Oa40MrlO.~lNAB2IDNXaOO—O4aU[~Qwl3I.elI)CX>OVOIa&NN0F4aI3E—OTf~-FNOlLXCe>e0OIE3W~&4Weol[.r(OIIMVOOa0WX>-oO1=—lT>3D-lCeN,TVoMxd—Ne0AX4Oe>»Q3Jl--NlNxEV>wAq.Oe0PNN4Na€UOXOlV-Lj1BI0>dVTAwAa"0iOC4OXNSaM%NdYI3Ol.uO}loEDWAeI04—UBe-»AsW"JOlA-MW[lNoVC3UX>VC0aVVNOeNaVS[-Ol~Yle OE VNVNe—NIX MtdAF 1] TtPeINAO«—=lDTFIYi0veO—NTl=BOINDa]O—OaTFSgooMOloNTODaMXNOIeI>TNolDVoNOaIaToDMIOFOldcaONeaID=l3eXeI—cDlDD AoN=aNaMIlAeOe=cbaNTMalVeVOOOatc~NeaVlEOIbd OW~exNabNlIorONeGVOcM—FalAMNIerN—Ion—TOOsiNbrTncOOa_IOblMcWNNJaabN0INlaTOObeVc~NlaIbIOa~cWIOSTlTaNeONMIa3lcNITMaaWNlcIO2WTaeITAwlJNeNc(D—XsAOOMaTlWNAMOcNaCaATIVelnE>NNoa=IOwMnlVNo3OW—WecNOIOwUVMOla—Ne—TnVNIlNcOOIanAwVNUaTlOM=OeN~c—WlNaAOWTDNVeMUcOWNlAWIaEENeVTXZNOalIIeAIVOclOaTNOTceLVaOlO0—cNDaaIIoTOolLODNT-VeMW=LVONlMNV-Da3OMOLlNMVO3MOeIDNl0OVVICoVMNOlNONIOVeMVSIL¥0OAlO~IOIaL=WIV0—NOwlOoInWOUVa0iMUYlbMOONNn0WoNwDOV=NlWO0wMaO2OIlN0VWTO0NcwOM0Wl9wOTewOaWC~AwlFOIWewxVQwMOlWawOODoNAWNlwWAONxOTWeTI OAV—oW>NhEUMPD0>eWDINeLCA—IeM"XAONMWPAIELZUPWNTW "oU2OeXE—0PrZwW—PAuWnUi—s2S>w5reN-OFAPaXOMPwONeaIo~MOouySeMDARNYDPOR[IL"DbVnNRAeMIVYEeOIoNVEEMeoIDVEONSPIFVR~oIOPVD—oETA[VShoIeNVUOIbIDIVbV[EANDbNVMbWIVB)VVFIVO0NIIWN0VNOVeN—0TMIOr0VO—00r00—N0VO0er ON0UOMVI0O0PTNOW0UOVI0NTLO0NOIV0M—O0AIMNO00N>AO0r0NVFON 0OD0 w0Oa0UVOEWC0ESXNXNICOXMNCNFTeAeXANXOTWNXOISXSANXTEWXON—OrN— JuTwNVu—OmN—Or——NIMZOOmrrrrIdueOw (ZRJOAOD RPO7 PERF SYMBOL TABLE EXER MACRO v04.00 1-JAN-B3 12:06:52 PAGE 69-4 SEQ 0222 SYMBOL TABLE TYPDS = 104405 TYPE = 106401 TYPOC = 104402 TYPCON = 104404 TYPOS = 104403 TYPSUM 025070 UCPAR UNS = UNSAF UNTASN UNTNOT UNTOFF UNTON uPt = usH = us2 = US4 = 007760 040000 013340 056652 056630 056607 056620 020000 000001 000002 000004 EXER MATRO V04,00 1=-JAN=§3 12:06:52 PAGE 69-5 $CxSWR $CMTAG s(m3 = $(M, = SINTLC $INTLG SINTLU $CODE = $ComMNN= $CPUOP $CRLF sCyL = $OBDIV soBLK $°820 $0820 $DECVL vV = 000100 WALT 001632 WATPAK 030064 $OEVCT SOEVM $DJV W(F WCFER WOHKX WwlkD WCKER WCKHD $ORVSN= $OSPLY $DTBL SENDAD SENDCT SENV Ww(E = 040000 = 000040 013242 = 040344 = 000151 011234 = 000153 WC.HK WLE = WLEER WOR WROCNT WRDPOS WRL = WRTCHK WRTDAT= WRT.RP WRYUNS= XXDP Y JEROS JROIND SAPTHD SATYC SATY! SATYS SATYL $AUTOB $B8ASE $BDADR $80DAT $8ELL $8UfF = $CDW1 $Cowe SCHARC 04346¢ 004000 012722 001000 001466 001374 004000 001506 000161 045130 000400 001430 057707 002360 001350 021100 036704 (036660 036666 036676 001150 001262 001136 001142 001176 0000V6 001266 001270 036202 $DOAGN SENVM $EOP $EOPCT SERFLG SERMAX $ERROR SERRPC $SERRTB SERRTY SERTTL SETABL SETEND $FAJR = SFATAL SFFLG 033730 001114 000000 000021 034635 0%4667 N34662 Y0024 000002 001234 001203 000012 032114 036650 037324 037520 037504 (001216 001264 032046 (031764 000160 033020 036640 021754 031740 001226 001227 031420 031732 001117 001139 034742 001132 003360 (3533 001126 001226 001272 000116 001210 J3712¢4 $FILLE $SFILLS SFILLZ 001172 0017 032656 $FMT = $GDADR $GDDAT $GET42 $GTSWR $HARD = $HD = $HIBTS SHINUM $HLDWC(= 000001 001134 001140 031744 034020 000106 000000 (001100 037224 000120 $FIRLT= 000132 $ICNT $ILLuP $INTAG $1TeEm8 SLF SLFLG $Lk(S8 $LK(SR $LKS SLLVEC SLONUM $LPADR SLPERR $LPVEC SLSTAD SMADRY $MADR 001120 040012 001121 (0011%0 001204 037123 001300 001§76 001304 001306 (037226 001152 001124 (001302 062434 (001240 001244 $MADR $SMADRSL $MAIL 001250 001254 001206 $MAMS2 $MAMSS SMAMSL $MBADK SMFLG $MISPO= 001242 001246 001252 001102 037122 000112 $MAMST SMNEW $MSGAD $MSGLG $SMSGTY SMSWR sSMTYP1 SMTYP2 SMTYPY $MTYPL SNCODE= SNCYL = SNEXT = SNPATC= 001236 034645 0012¢2 0012.4 001206 034654 001237 001243 001247 001253 000122 000126 000130 000123 E 2 SEQ 0223 $PWRAD $PWRON $PwRMG $PWRUP $QUES $RAND $RD (MR $RDLIN $ROPAS=z $RDSZ = $REG = $REPLY SRESRE SRETRY $SRPADR $RPAS = $RPBA = (040006 (37640 04000 (3771 09120 (0 71;6 03‘§ 2 034362 000036 000017 000014 03;662 037266 (017040 (001272 000204 000172 $RPBAE= 000236 $SRPC( = 000224 $RP(S1= 000166 $RP(S2= 000176 $RP(S3= $RPDA = $RPDB = $RPDC = $SRPDS = $SRPDT = $RPEC1= SRPEC2= $RPER1= $RPER2= $RPER3= SRPLA = $RPMR1= $SRPOF = $RPSN = SRPVEC $RPW( = $RPO7? 000240 000174 000210 000222 000200 000214 $SRPO7P 000232 000234 000202 000226 000230 000206 000212 000220 000216 001274 000170 057075 (57102 $SAVRE $SAVRG $5820 037230 040016 033332 $SEC = $SEEKS= $SETUP= $S1Z¢E $SkI = $SOFT = $SSEC = $STCTL= $STUP = $SUPRL 000010 000046 000156 062304 000110 000104 000022 000076 177777 032446 SNSEC = 000124 SNTRK = 000125 $SRINAD 031766 SRTOTL= 000066 $OCTVL $S820 $NULL 001170 SNWTST= 000000 $SOCNT 036430 SOMODE $OPERC= $PACK = $PASS $PASSC= $SPASTM $SPATT(C= $PREVA= $PREVO= $PSEL = 037622 036432 000052 000026 001214 000114 (001106 000030 000032 000027 000003 035362 $SUPRS $SUPRT $SUPR2 $SvPC = $SWR = $SWREG $TATUS= $TERM =z $TESTN ST Mg $7x8 $TKCNT $TKINT $TKQEN= $TXKQIN $TKQ0U $TXQSR $7kS $TXSRY $TMPO $IN 03 £92 (032474 032536 000210 122000 (001230 00001 00003 00121 02614 0011¢ 83341 3343 033427 033414 033416 033420 001160 033500 001174 z 000002 SINPWR $TOTAL= $1P8 $STPFLG $TPS $TRAP 037434 (00102 001166 001173 001164 040256 $TRAP2 040300 $TRk = 000011 $TRP = 000015 $TRPAD (040312 $TISTM 001104 $STSTNM 001116 $TTVYIN 034616 $TYPDS (036434 $TYPE 035652 $STYPEC (036064 $TYPEX 0362064 $TYPOC 036232 $TYPON (036246 $TYPOS SUNIT 036206 001220 SUNITM SUSWR SVECTY 001110 001232 001256 $Ww(NT = $SWRDOL = $W10TL= SWIPAS= 000004 000020 000056 00004% $xOFF = $XON = $$GET4= $OFILL 8% = 00002 000021 000000 0364 001100 SVECT2 001260 [aalaaYaiXaalaslaslaataalaateatoateslaalaaYaataalaalaalaalaalaakaalaakaala ol ol e alaale o alaalasloatoatoateateooteale .. . 7. 7 T T 7 7V T T V""" CIRJOAD RPO7 PERF ERRORS DETECTED: O VIRTUAL MEMOKRY USED: 62464 WORDS ( 244 PAGES) DYNAMI( MEMOR« AVAILABLE FOR 70 PAGES CZRJOA.BIC,CZkyuUA/(=(20,12]C2RJI0A . DOC,CZRIOA HIS, CIRJOA,[20,0)5YSMAC/N s 00C 001 070345 000000 ~rn . ABS. SEQ 0224 OOOOOOCOC AT N TN ARAARN|ARP RARARRAABRARNN EXER MACRO v04.00 1=-JAN=83 12:06:52 PAGE 69-6 bttt T T XTITITTIITIOCD (ZRJOA0 RPO7 PERF SYMBOL TABLE LUDPD>N-N-~—OVDNmOB-IPA-NANGAlNsLokAO~e 15-212 15-26% 15-308 o o L) . .. ). .] w(oL)) [=][~Nm A~aMLw-sS1[a-a]}el\N—LQ)m—oAAa-N-V0CN1g’]lY)[P=a~cnegx=loRBaA=OV>NoN‘UIOPucALGa=o1P>Xga~O=pODNcmL0QVI<aaoAV€lIALN'vD-3MVAYInCsNO‘0n—NoalTA00L.[O"Aw(o1AaBBvS>])0¥[]~NFGoRNONN1oIVE=O5N4IARaVOI3=iIAOadaLy=6[NdVVoRND5eOBwXSaOKAIX.0-lwx—aL|oro0oNlONAoIR~2TO~oWvZtNe]MP~Rn2ART1FJOoLoM‘=ODOAuOWX1dVNDu-g[NYXR0‘twgAD6XORWs1AgNOTI|0}LoA[XUK«-"€IRlVA0NWa)EeNA5L0—ILAXREw28A0ZOUER=eE7BDwNL0YAIAV)Z‘aLF—-V.N—ORN1AN,AoBLnNZNyN0MORaE—JDRwA~O5®-—NoPA2Ky]NLLYDR-5o[L~BO0ORLDw0OAoRPd[N~-|Ny[0Wg}ANut3da~-UewD|—YA|d00}Lo£WId0KAe00)dkR~LLWaoA¢[ylk ]aLo.-a9—l L~oA"VO-O-N-OOoY]N[yao)[VIVMN0~NN-oRA-AI-Y].'O]y|]~[VY1Me~9o¥RIJBVOrLAg¥)=BVeMEa.aOaNMORVOOIvIByY0n—VIe1O-A)aI~I—FIDl—aINOSCNA¥NagWIMNI2~DLNAlA~IRRAMMN[IVO—-o@=aY—OMLYI—L¥No]VIWY—OT]—AOaO|0]e@]02WMVM1eO4FIIoaV[OAAp[——NVN.B1LLE"I[aXl "~«-4]O4uN—Lae0T|tM/"n w[ ~~ W~.]-r d~w2oo~3oa=-]K"a)VY"dLNo]0=Y~o|-lLOl[NYL ~)ooo-[ -ooLD -[ a--u[]u]4N[}d[d~}[[L[L ] N~@N-w8OAO-’]]N~—3NoNOO[S~Ow-]]]—T4—A-S—0Nr_oO0rW—YANINa—erN~V8£Ol]Ie0rNNO—NVU-o=I00LYRNtGOUOE0gL"[gIF[o N©-oLv-OW]]].][9}~(~4L[-o©~o-[=]’N~oL—] [~~LoLN8o~e[=)]aSn}N]d[lL=[l] s"~\[]~o~-o9)ynNyNd[ © N-=1 L~S~No(N-W¢v5oRo]R]V'—V=ls, LP.o=oW=4RU))=g-V—IAg@ooaNNGoD=1aoMO@—XloVOLdO®aVW¥O]U~DN~U~aVLGo—l-eO=WLA gN[ Na~-N@v8A])[I2o~NwN[~w-L][~ )])N[l L~~~o4~woa~9JLN]lN ”oLLo-«~~u].L|d~)la®}&Ll -D—dmdeokolcfwdwdwd[~V'aol)O0olrax-l%M0AwunlvDoOl42LaLd)ilwn[lv)VUaillan©l®]wnlwnl)cmlwnilGialauG(RTmTw]NGOSTeNTL-[JTS (IRJOAQ RPO? PERF EXER MACRD V04,00 1=JAN-83 12:06 :52 PAGE C(ROSS REFERENC € TABLE (CREF v04.00) §-1 15-352 $€0 0229 1%-379 22-8 11-99 28- 11- iOO 52-63 13-21% L ] ) 32-77 1424 34-64 14-37 $MAL ety ¢3-1 431 63-1 43-1 43=1e 43=1¢ 431 4(3-1 (3-1¢ 7-08 13-146¢ 13=155¢ 13-156 S8-412 £5-1 €5-1 (B-1¢ «5-1 65-1 i1 (8-1¢ ~e ~— B b =t 49-1# - Wy Ob =t ~ = 49-1 i 21-51¢ 69=1 26-52¢ 58-42#8 {3-1e 45~ — 42~ - LI 20-7% 421 3= el ] 58-378 (3=1e 45-1 28-47e 28-49e 49-1 49-1 «9-1¢8 49=1e 11-19 11-25 11=-% 43-1 66=1¢ 7-0# 661 ol ol ol ol ol ol ol ol ol o e o - wvwa ANy -, ) RO 6-11 ree =98 R [PVIV_ TP -1 FECeCCrrecr- 11-98¢ 58-9 30-17. ] NS 48-1 rferreCcCere 11-98. 58-7 sebwNn ] N Ob ~& —ay wo (V] O — o " — *oW ~ ] 58-64 L VIV L NIV} ?O] O [ 0 I S~] 11-98¢ 8- rreccreece 38-1# 3.0k «8-12 =000 —=O0OO0ONOOOO =000 2OWVN 22000 - R PRIV RRERERERRE RBRIYV=NVIBRYR N $SMADRS $MADRG 451 nONY SFATAL $FELG $FILLC $FILLS $SMADRY $MADR? % (3-10 (3-1 66 -8 1-0# SFALR $SLPERR $LPVEC $LSTAD (3= SEQ 0226 38-1s § 32 4” 1L $E TABL $EYEND $LPADR B 51:58 - SERRTY $LK(SB $LK(SR $LKS SLLVEC $LONUM by 3 SERTTL $FILL $FIRST sFmy $GDADR $GDDAY $GETL?2 $GTSWR $HARD $HD $HIBTS SHINUM $HLDW( SICNT $ILLUP $INTAG SITEMB CLF $LFLG 11=11 112§ (7-18 NN SERRTH 58-76 WVNWOSre $ERROR SERRP( 58-728 4 NIV] O SERMAX 61=1%¢ & ?7 L1=-1168 &7-9 TR 308 7-08 1;-?03 32‘680)1°Jl~°03 12:06:52 PAGE $-2 v $3225. 8-1 ?s LS VININIUF W W N RV R AOCOODOOINIVINIW 0 8 0 0 00t MNONVAIOD =t b b b bt =t -0 e $018L SENDAD SEND(T SENY SENVA SEOP $EOP(T SERFLG 8-1 onN o sDRVSH $OSPLY e SPNAGH ((REF e EXIR MACROD (ROSS PEFERENCE TABLE 45-1 ekt CIRJOA0 RPO7 PERF $8-512 26-45 $8-482 50-91 58-92 8-%¢ 27-198 27-202 27-206 $8-106 BB 34-20 58-48 B BEEBEE W * 3 Py 32-182¢ ko L L AV N N [«XN -l et e [] 58-47 BE "0 00 POY VY 2k Y. OVCOVNIrOoO WmoRwne F XV, L NIV PO VWONO ] 00 " 26=16¢ *® ~ O W -0 ] N I AAL, LY, B 1 NV 0N o * [ N . " 40 Nt P e - = 58-460 ' L4 — BN b bbb e POV R e N I @WNINNO [OOWNNO [V LS IV Pl VANV PO PUT. VY SV ¥ S . R R NT. R S 2O AN ~N) — W o L] ] -y o pary o~ w o N1 V] NN (B8-1¢ 26-10 58-23» 53-1# 43-1 451 29-112 38-1 58-268 58-106 58-106 58-106 58-106 58-106 93-106 15-400 15-469 15-499 18-1428 18-168 62+ 45-1 — ww oS B W » ~OoO W& - 49-12 L1-55# 15-327 B ) * ) -l 8-8 (V] N VY PXVI VIVRV R L - \ oy - b © » LYV [ | o Fo [J - BBJEBEBIEEBBEEBEEBrrrres 30-19¢ 29-16% il ) —ndd LAV X (8(8- N $RPQO7 1-1 6= OO SREPLZ $RE SRE SRETRY 7-0 - SREG [4 —‘o $RAND SRD(HR $RODE( $ROLIN $RDOCT $ROPAS $RDS?Z 1 200 5MON &~ 7wu-vnu~a] SR2A 2 g 4 90 $QUES -0f "86 ¢ $PWRMG $PWRUP 62-1 uw—.m_.” - il i il il ) N © & W VN-=-00OC/ $PREVO $PSEL $PWRAD $PWRDN 2 419 WAVA = VAN = SMIYPL $NCODE SNCYL SNE XY INPATC $NSEC INTRK SNULL INWTST $OCNT $0CTVL $OMODE $OPER( SPACK $PASS $PASS( SPASTR SPATT(C SPREVA §°110 (8- —d AN = P\S G =S \NBNEON —_NOWNQOp NN S MAmS SMEADR LG smiSPO LTS $MSGAD SMSGLG LN SMSWR sM1vP sM1vp Mivp A= A A AL =S smAmS [ ok af o o8 21 V¥ g ¥1e 1o o aN1rel.J e 6 008 0 1=-08 1-08 71-08 7-0#0 LTLIS EBEEEEEEESTETETETEEXEEEEEEESE T LEY) S€Q 0227 A~ (IR J0A0 RPO7 PERF EXER MACRQ 32‘680)1.J‘~-‘3 12:06:92 PAGE $-3 (ROSS REFERENCE TABLE ((REF v (20 )0A0 RPO7 PERS (lil RA(CROD '82f680’1011l~03 12:00:52 PAGE $-¢ (ROSS REFEMENCE TABL (CREF $S1Z2E L3N 7 $S0F $SSEC $S10TL $STUP $SUPR1 $SUPR? $SUPR. $SUPRS $SVP( $SWR 18-44 19-9 27-%¢ 14=-11 16-187 B 22| -g '3 i 1§-19 17-8% 16-16% 15=-7¢4 58-928 14-209 61-8 61-8 61-9 164=-1% 15-15¢ a7-31% 14-1¢9 15-121 15-530 15-53¢ 617 61-9 16=12 17=44 1942 [ Hn 15=-76 58-8882 11«71 27-18¢ 164=149 11=-81 19-43 S {4383 121 ) 17-62 ar=-311 477 15-190 14-1§1 15-2 18241 15 b) -604 58-930 61?7 27-93 27-1%0 27-2N 19=52¢ '3 S it 8-106 61-10 eI 15-160 b3 | 21-7 P 1§=-17 15=-162 14=-161 12-33 61-9 e7-2¢9 ! 61?7 P 7-180 61-8 22=27 3 38-80 $8-9« 8-9% E 2-¢6 58-8%8 21°§6 S8-978 20-70 F ga- $8-79 $8-92 P -5;6 } 27-200 14=199 18-164 14-¢03 $8-820 15-; 1991 $9-201 V- 53=1¢ $53=-1e 19-50¢ 19=51¢ 17=74 17-140 27-460 36-17 12402 18=76+ 18=119¢ 21-23 21=25¢ 2645 27=169 34<128¢ =198 13-201 20-146¢ 58-28¢ 11-25 L2-1 11=176 11=2% &2-1 11=2§ &2-1 29-128 0 LARS ) 5-3100 ll-il 112§ 1128 29-156 29-165 29-165 30-16 34450 $58-208 2=3108 $=-3100 $S3-14 1 14 $¢-1 580 =664 16-226 C1-2632 -53% 58-112 -310 $-310 66-12 27-622 29-150 16-26 16-29 20=149¢ 20-148 $5=310 5-310 40-19 «0-18¢ 17-75 &0-212 6-8 5-73# 11-25 63-1 5-310 40=-242 5¢-1 5-310 16-30 27413 5-310 40-23¢ 4(0-3% 6-82 5-85 18-1 5-87 18-1 27-38¢4 (%1 13235 X 58-320 Sl-i 58-382 21-53¢ 5-310¢ 2647+ 5-310# S-310# 7-391 43-1 70 {y=) 7-0 43-1 F 1 -85 27<205¢ P OBV O A =AY =2 O £ TOWE bt~y yOO .g.\lu w K|SOV N 57-285 sa-g 52- 27-262¢ REELR 18-$ E SPP P E T A 17=101 Z30e 33 BSR R t:qlf —SPIAIR) =[V IV p b d s N b 1779 $-3100 AR RN [aYo1cle1J.Y.Y. VYV VVV. Y YT 3 $SEEKS $SETUP 4 7-4% Y X2 R AR AA R RA A AR R $45820 $.820 $SEC 1 6747 19« &7 L $SRINAD SR1OTL $SAVRE $SAVRE 0 6 1 67-23 $8-82 58-96 - $RPW( 8 61-$ 61-8 61-10 61-9 —“Rroe rO $9PSN SRPVEC 8 AN SRPLA $SHPMRY SRPOS =D $RPER SRPER = $RPECQ SRPERY A\ $#PDS $HPDT (Y $RPL 11-158 BN $RP(S $RP(S $HPDA $RPDB $RPD( 11-144 DA SRP( S VA NAOD =N~ =~y OO O =) - N ~yO N\.I'OVIOOU'O 6 SO0 0 0 0y [ ¢ ' $PPBAE $eP( ( '?:‘3' ) = SRPBA i?-“o - = RPAS AN =8 VNN = -76 N b sepn7e S«kADR SE0 0220 MACRG YOO (ROSS REFERENCE TAB.E ((REF v(6. 9 Ve An=83 12:06:52 PAGE ST v - 13006 10 vee3e - 16-81 10eS3 Lo $'¢sIn L 3L 7-08 ;-60 11=19¢ §7-1 a Se {9 (6= 3148 ¢cf! M4 STEINT Lf11-66 62=1 12-% Lo-180 32-26 L=V 3 .8 Lo=1e c -1 $TXQIN $1XQ0U &~ &¢2-1 (o= Go-1e (2=1e 923 1) £2=" (210 42=1¢ $7°x$ ,5-20 621 621 62 $TERN ;§g: 311 ] STEQEN $TKQSR 00 16-127 18-1¢3 “8-150 19°; -9 4 ‘21 62~ (-8 &2-) (- Q-1 (2= S 23] t2-18 (-8 32-98¢ 42-1 2= &2~ (-8 (=1 10eSS [ e $-% 14eS7 G 2 5€0 16e§9 be 14e8 b 16141 6=14 15-85 42-1 45-1 451 42=7e 62-0e 429 42=11%e (2 (2= 42=1¢ 4210 61 41 $4-1 S4-1 $4-1 S¢-18 84 8418 41 $4-18 S4e S4-12 27-9%0 27-337 34-20 58-1 431 (o1 &2+ 'y -?0 &o-10 (=1 601 S -io &L~ $TxSRy Lgol L2-18 $IN $IN S=748 S1e° 5-89 911 11-19 21-10 11=19 11-19 11=-19¢ 7-08 7-07 7-08 11=2% ¢5-1 65-1 (5-1 5¢-1# S-1 5" 45- (5=1e 65 45-1 50-20¢ 37-43% $8-35¢ 18=-118¢ gl-SS' g’-lbb 26-127- §5-202 $8-122 561 56-1 S¢-1 $4=1 YRS 61 S¢-14 9~ 7=-08 (3-1 £3-1 1-119 (5-18 (8-1 L6-18 5¢-1 .n 08 $I10TAL 27-: $IRAP2 54-) $1RP 5¢=-1 $1P8 $IPELG $1PS $TRAP $T1RK 5¢-1 541 L2 ¢9-162 Se-14 &= 5¢-1 5= YL STRPAD $751M 954-1 6=-118 STIVIN STYPBN $TYPDS 42-1 54-1 4&7-12 SIVPEC SIYPEX $1YPOC &2-1 45-1 4&6-12 &5-1 (5-1 561 &5-1# 564-1 STSTNM $TYrE $TYPON $TYPOS $UNIT SUNITR SUSWR $VECTY svECT2 SWINT S5 46-1 7-0#4 6-11% 7=08 7=04 7-0# 18-123¢ SWIPAS $XOFF (=1 -1 S¢=-18 Sa-g 42-1 42-1 S6-1 541 45-1 &5-1»2 56~1 1568 18<1 18-49 42=1o 42=1¢ 42=1¢ 4% (%] | -y 1 ‘ 4 418 4= -18 ] | 19 1 | $3-19 (3-1 2= $¢-1 $¢-1 Se-12 S4=28 42-1 §6-1 4~ $4=1 4= -y 1 (2-18 $¢-1 65-1 L5-1»# 1M1= 21=50¢ 21=252¢ 26=51s 26-53¢ - - - - 19-20+ 19=21¢ 19-18¢ 45-1 S6-1 $S4-12 56¢=2 §4~1 11-69 O gg-‘ gg-zz - 6= 8-0 Eg-f? - SWIOTL 0-20 [] -6. 19-19¢ 45-1 - 922 29-9¢ 58-28A 19-2% 58-274 34-39¢ 34=40¢ 55-199 S58-9# - - - - 58-29 D OO (X gs-so 8-32 1929 19=-30¢ 19-31¢ 0229 18- ~- $1MPO 0 6l §9=20% $§7-530¢ 33? 15-180 e oN S o 58-34 58-35 58-36 e 58-37 5:- 19=-32¢ 58-302 * 27-3I81 29-102 - - :-iz - ~m EXER PUVIPOEY PERF VOVVVODVVOVVIVIVVVVIVIVIOVIY RPNT7 A AOAMOAANAVRDRVDDTE (1P J0A0 (IRJOAQ RPQ? PERF EXER MACRD 1=)AN=83 12:06:52 PA 57456 S7-4b4e $7-684 (RGSS REFEFENCE TABLE (CREF v ,680) JAN-03 12:06:52 -1120 [ Y O O g = O ~N~ |I ) (V.V} 3 o [ ] o ] ~ [} LV ~ ak OO0O0O00O [« ] o L1 AMAMS S AMSGAD AMSGLG AMSGTY OOQOO0OOCOO0OO0OO0O0O0O0O0O0 AMADR& AMAMS AMAMS 2 AMAMS 3 e O AMADRY AMTYP AMTYP?2 AMTYP3 AMTYPS AOE APASS APRIOR APTCSU APTENV APTSIZ APTSPO - o AlR AMADR1 AMADR? —_edabes L ADEV(Y ADEVM AENV AENVM AFATAL ? NNNNNY " 08 0 ADDW? ADDWS ADDW9 WOV ’ ~ YNNNNN?NNNNVNNN " 00 0 ] ] U L ADDWS ADDW6 1" 37-418 7= O ADDW1S ADDW ADDW ADDW& 11 7-0 o ADDW1 ADDW! ADDW14 - 2 -165 11-1¢ = ACPUOP ACTDRY ACTSIR ADDWO ADDWI ADDW10 ADLWY 1 45-1 0» ACDW? 13-183 =0 =2 OO0 =000 0C0COCO0O0O0O0O0OOOOONOOOOOOOO [elelelalolelelolelelelele BrpT, ) o ABNRAL ACDW -3078 NNNNNNNNNNNYNYNYY ) UL L \I'—OWWN\I\I\NNNNNNN?NNNNVVN\I‘NNVNNN . 000 00 . 0000 NN [} ‘0 7"\0’.“‘] ABASE =1138 £5-1 (8-1 ?-110 [ Al N Al 421 (8-11 - SYON BASTA .8 PAGE S-o 48-1 48-14 48-1»# $€0 02% ~[oLel=]<LlM 0NMO OMO~FN[M~V}O~rNOV~][aewl oN0o~r~VwOolao[~7 oMN«®"NLo~[=] Z¢[OoegYaJw)MVanbRNaRMA2XONblS5V2oVO}a0~l0alaNV[][e+lVbl=ya0DANWTNS-RSrvoG=ATLdSAa0o,MOLoY=ew0M~30i-OMoe-SL4w0)d-~\[yLoaAO-~—-NLa--*OO—lO-WN]"MoLa]emLlUoZ[—a-Nad—yUVIBOFrANMJINIOoA0oN})Ca]aolOLY.aAlaA3TolTRYL4aN~MNLl[2LaQoldoR¥ReNLXlOL[VVOV22LGTVaglUakVlUyatXLoNaKalE|aZ2 o0[-—[MNgVU0Vaael]l00Lo[~VV-—aal)l O a[o~MMoN—e-~= l."—"aNlO.N5"Oa[) NoN3Nao-O[]Jd[1)o[T"L"Nw-L~--am[Jyo~A—Ly. wo~ NLo—a~aSlaN0-']]Oa.} =O-L~”o4A"o"—][, 3e4TOW4~CAOe)O-AUe)M0E—tXSJNYWtVFI0«OARRtOVC0N&dMT6gN0VOO8RAaINOMl0Vm-SVVT70LOOeIt0olVnEA0=4TMWoA=L0RTOoNXVANOCIk0GvoTTAtO0OVN[V"ENR5TYZA.MlI00avVVtLXeONoOeTAl0[0teCD0NV[OTAT—O[LRko0XVD80OT5eCtAOI0[ONe~5VT>[UWTi2at0)L1~TOOV=NtADr0M»NTTOb—MtVVLWM[eOUUU]liN4LYMWD38MEL0)OLCNLA€U)0EYDM[LGNOU)0«Oo41M0(NNN——=TSR=ek_L=oO~CEGM"] )]—OaeNe00l[TLaNWO.r—=—=oo[kal0wON5EIVAUN@AMn» WM5UOAr~NaLRMGD-aLD0olL—L0—haO-O—aM»-MYZl]DNuVNtAw~kNONG-VW=.’0KP~MOD2A.0[MVo-G—2NaLU LOR—1lT[W0[- O—aMVLe-E"cM,¥0)(]Y2CNNR8OAL0NeOA0NIEOMCNe0RJLOIeRC0NeRCA8NeOCu0—LON0NCNYL)COIONYEV80o]o—Y0oNgMlOt)e})]E.0s«IRaToVOFlOgAO@Ll[x8N0¥BN]ajoNR¢elRlML(1«0e0—Oa.T]OMIV—KQ2Nedx-lL06rNaV[LZD>Ood¥ia~gP—[Ox0ALLZ]xNOIBSCTI0RrNCgrsZaOoA—=A(0lWuXoVIOD0esN8TyElINuJVeZCM0oiJaOOTolAt0DoZ.a1Ve.n0lNZkoao1Oul.N2A0k6O.00-— LogV0Ak]" ~RL0odOWNIVuR"k8wAIL0N]WAS 0o[V]l=4[S~N-~VNYL1(0aOl]LRA]Mv0Cao[Mlau[4.~h[ oy Oao~])" ]n Loo]M-.)]L]"ael(]¢oL=—l[L] V]Le-Mo~MeUEU(Ul0l—=LLL-V)a\m]=l LLM[~oo M7LaLLdaolNlI¥UUIU.®—Oal O|oaeooO-~}TJO0—I3a0LV0]eIIa—la~LMo.lN~]O¢al¥.e[oa]L"JLaLINOl[ CIRJOAO RPI7 PERF CROSS REFERENCE TABLE (CREF vXa.éo ) EXER MACRO V04,00 1-JAN=53 . 12:06:52 6:52 ] PAGE PAGE $ - S=7 SEQ 0231 [ L L [ VA —~.MIGNe“'“DoOoAo~CoOo—Mo-AAE~NEFGDNO=a~oN]UAX~Lwo~MroO[Ol«NNMUeNKOEN.IO.NOE([vaM¥)]ANLS,ND—~As?OoRL-uMo0Ce]&8&aUNl[0oN[aVa%aeaA.[Vdl]LN.lT~aooo--wNN0——in2URwyONO%o2—4~8OSrM]1OwNV[|EOaXMN¥vM(]¥Ug,|Io—NT—N~.|T.wVNl-—.Tl.Nl.AlNNe_OT|—N.VO.OONVIo"TaN-NMO)”LMn—0SR0NMw[w-O(~O3-V+o——OeaawL~eT~0VT0M0~Oln[~ v04.00 )" YTy v) @«¥ ¥TT y EXER MACRO V0&4.00 1-JAN =63 12:06:52 PAGE S-8 (CREF - - - TABLE - - CROSS REFERENCE = - g- O3][ —_—[O] WaoN¥NTeN["a INNN= A L] 8wL ®nRk &- (~Vo) -0w[a]¥[] (oV4] N0-g[][VaV) MMeULN--O~wL=ToB][00o-yN]lNNQ-oe@O.o=EU~PGo&oMo~w==RXVoo&e0.=IN=~L[L8.ooLNMRa}D=—loT0NNoI.EDONtoToP=M[aLDS~d@N]-I~OV»)oE=W][o.a}—N2[lWSM<oeNo.oFEOoJS~A0=o(J«©O--=](v-On)U0YE0NUMNoO3AMaI.lWDYGNW-o8eeoE—¥ROVNWF0.G=eo].O[=V—BNOoANFIoNi]LYAAITMNORL-C[D+I«ago[w)O[VMa[4~W.~o]lIV(L0L0P9.VVRaLelWOA<a¥lLNYAII00l1e¥“]Ao"aa¥M~yoVTA[AWAa.=V,ll®A1Y0YaWNNgO.VT"AW¥As0l([aOMOlA)Ua.UOWlNYeU"AM.YLRLeP0rUAMO—NCNOOOAe.U®ONLIo~~aw(VMAO[L0yU0}0NUeVIP=OA—M.BL=NO«-08D41NOUo9Lo=M0OMw3eT=L—4&]O0|]aM]N04.Il[AM[WeV-MM’wa=ODIIIN0M¥aM0~TeYl~NdANOoaDOAd-—2="L—¥R0e0[|.]aUVON&g0vN0W--=—SIO|"""0]N_M.0L0O0a~-oh-KoJOC=——--oA]O[0——(lVeaNDAO1.>WvXwN3OnLM.~dDOV—X=NNeMySO0—.N]V«O[oON—M0-DU2(V—80aML\N0N—QNo0OMJ8TDNXxGOoIVeON—0O0O\o0—.VNl—Nx0NNe1-~eT—OTVeM0W—08eb—V—ea—OU+loO8OAr0eM0MO."N1"M0eN~.NS—JVadVlReIeIORTM—oOa0"DY—xVNad,ONNw[~WM—-M arOO—lNeNO]O]UmooaR[V.—FRM0ewYdI~dXLrOaD=:enIN—xa0NX—yLXOVdNeMTON’*aU—.OmNN=0l0eRo0DO=d0D.mJO(NOIyA00oeRbUS))n9WeAOV®N(80Md—.oINYVOV—TEMXeReT\e0Y|¢N0O0)Sl}—eMNPEI8oAg0OONVUbX&W(eIO—r0eY©o.]NNVVNYOeeoMoW—-M—O=Ie0~I0Y0IOSt[NVDWNJ4aI=—M2O[eeR—N—00.n¢0Y0—RW.-WNTaX0~&TO—TVNAIOINOLoND0T0n|0SeYWNwIAe0R8lVN.e~NaMON—W[XN—~A—o—R]1d)"00VNiO—SlPOe[w0aOrT(0~L—VAh[N—N00yN¥aol Y)[MO]""a0~L[wg~"lYLaLNeIa¥l)l 0——40O[oNM"UNI"-LaMVl)a—-Yt"-eYn[«]o---o[]]——— OM00NeM—e~eL0——30eO\VMM——JM¢WyeMe"1— OANON1ONIOV0[ow-O[8Nn}VO—NON0VoMw---—O6]]M—NaOYN—"DVIV[woMw-oVL0v"]a0Y0yOVYy"al CZRJOAD RPO7 PERF ) SEQ 0232 M~—Y[NS.-OAUN [o«]N4+38nX (ow-["VaN0)] (woLN~Yl ]L] 0G1UaL]1L O|oIOBIMNBOII IIOID OIrIL| 7] ~)] ]0o][ )o]~ NN0|OB I0OOI0I0O0~0IOIe[ Oo[]] ] UL AOODOOITORNO000O0000O =09M0O.0OO /0I00O¢ R/t a3P04Ya8PYa8B0Y5aPY2aP8Y6ebY8oPY8P=omY6e=Y]b-Y4e-Y5b-Y80>3Ye]=6Y0="N-»YN]n>OD8Y][~Y¢~oO—<NMo3VWOwIMc6--L)O1T—mXOoO09]~(N7N[NS-e8Xl0]WMO—N—g1R8|VO,~r0NUO3IANoONNOY8VM—VR0VIaDOTONMoNo3OMVVO¥O]e5OON0I—MTdOONVMIaORIIO5OR¢VPOMXF2¢OOIL0YVNoIN30N)O—RN0[ro~O0M-9¥-T ¥VL-]MLe}0—E0T—dO9N]0E[e9|W6A2IOO~T0N—SY6S6o5W0D9ON—O&I8~eNro~--<—eOW0]F—ero08~NM3—ra09Te—oSNO7~WMrsW—9.eaS1oea9SdSo9=-~&NSU[1X0N—o'-" —&=VLae}V)o0---9-eeA[[)——N—LM[a~lU9OW-_I9EL[Oo4(Va-]~[—alXl9Ba—V¥] waLVwe0]l NNUOVMOOOWOO—LDIVCMOOUNNOFM<PO]—CO- -[Lo-.(—a42—] M-L—o AO"~—RCOO0SruCOMRqaOSMSNOd0SRDOAgRAOEAdNRAMLEONdRUOANoGLeM0—N)ONNom0)dMIMEONRVowMn[——vJOON3=]"Vn]MwoO,]NaMI~N—n«yTS[©-RIEOY0]ON—mOMV—|Y¥MNoOUOYA0BVVNNOYROoONMoMAVBloBN0TYYDOoN0oO~IMgOOBIaVDgMOVoYNlA=2OeOOo0MTI~MVOVIM1Ng—VeMMOlONaNN0TYMM2NRO-IlOeoaONM0ITOLaMYT==N0vaN0oIVOIMlVoNNoaO¥lNOR[lEeA0MWTC.¥F—M¥-=NII0|-—MdOo0NSlO»WA-OaI0nNTUlaI0lMOOW—A-L 0MNMee4OLO—o§WM.OeNN6eS00—V~~o-~O,-4|O)}yW~sL——N95O=s6001M3Oe~1O6Ms|"¢40Ot‘1864tooVeO0OO2l4e0]—lNOoM]0NsY~AMe—eL0V0aao--]Jle=o4O0&—Nc"—n—allL)VM3NeTNs[~RIeP~AMFNIOeNEoa0~MT]®1U0)y0ALT~O3 k W M ~ N e O — o r N V O = O \ r 0 Y O O AIX-Z0OU3«ZqCEZT>C<L09TSC9u«\OwuCKd€ L L. L) DOVo-=NINIMZO [U)0]94L6 )JVdoVEK L olVal(i CROSS REFERENCE TABLE & L ] YOVOOOOOO ONNOO T WVOI 0A0 R~0 MMMTo¢00 CIRJOAQ RPO7 PERF EX ER MACR MACRO V 04,00 1-JAN-B83 12:06:52 PAGE S-9 (CREF CREF v064.00) SEQ 0233 - LAoR*VlwaXol o -[a-=)L’)l——]L O]IOVOeBAIVoI0¥OVIAe0ROIVeeIB0TV02II¥eSIORRV«YONoI[]]YRNoL[|]2Vl OA 900NOUOOUoO\0—0JO(h0N080—I00~Og—00M00O=880D-—¢&0—Mr0Oe— ~[ ~ AMLONYMIWeO=OGN-OFy= =»=v][ oO)L0olOLo0DOo0VOe0VOe0VeOV0eOeYWVVWoOVaR » NNTNO0OvVN—e o A—ooO2-0—N0©[OW[[[w<~O(iL~O~~.V~~-V"UL4=FaaroV])l[N)DT»NYrMOoa=mAe>lWrR¥LVOOOVLOAe]~eia]8ov3NFd0me1>Val—oOoNWlynlvN]AO8drOOooveIOelVIa0W0Tlm¥VodB0ooOol>OtrVoOvWVVWV18alI060TOmVoaIg1yOlVooNNVrroVlI0gaoV>oOl0mo—oIoVOMOlo0Vo>AVO1roVNVToo00gmBIy>sVV[O[oJorVD0OOoIkaaIaVloV0eV¥ToONTao0dOI[l0oaNVvIaTSD6OlNVIo[VOOaWWN<TNO~wNoNRNO~N—~AnVIR]d]VaQ=MA[D)BB0RWYNONWvDOW~—v~ANOL-~~Ov~2«AeaL[|Vo]«l[ER«NBOMw-VvBO-RRWAEoOOOOLONo4Y4O3ONgF44}Y|yRXoNMPPNoSrXXRoUOMNYN<NBNoXfU—oM—U-RGVooVMErVNVMOMNOANoTll]eNa—MDoOVNDMdIF—VoOIrNIOaNT)VOoRNVUIlooO—¥AlBnNNWN—NNgNrgN——=O—oDNT DoEoAaLLOOAXC—ONgL0oN=leaBM0DavMlJ1orEoY—evMVEYN1]3«eOM—JRlav0IeeA-IM¥.ROoVFroB.oM8ON.oO.N-l=OMoNed8dDAT71NDaNlOolNVa[-TTNTOT~YTY[=Vl8OIRMWMoVa1aM=oANaOXJVINYJYNTeYNX—aVVTNVOeM0relOTaaa—OO=VaI[aYYYDNaLOW(AG=VM1NIJoY4D0oNUVLVaVOlRTleOa2N—AaN—LVvN—l"[N—a=OIdea—|evIoN[lleVNI&[tIF=NNRTOB-IIRNNNIIoTeVI~ISOONrVIMOOeNNREA=Oo-VMNORSao-N~-l[O [~~>J—3—y[—L&0—OY%ROw-uOwY&V&"[€TN€ oowP~)[Y ~ol OT¥gOOAyyXO——OOaMl7Na8NO¥EYNOWXRNOAE=XMDA[IDAGRON—A8R4NWWeAXAN=NeAl-WY(OMVO—[oeY ~WA0GOGOad4DadaDG0«—A~NMAARNFWNWNOMNONA—o a0[ad 1O02-oa1O-0WT[[Rw~V0V=UL-]aN])n1oO>Ta=DC-YaOB-xY=a-0og6YdL=cLVW6o-LeNIar=YleI=oxN=V-tYeV1N0TIlx=tV81a5xLmINT~notVa6No=oIYmx0VD81e=NOxoIml0Y0ixVNoAoIT=laV1eRo&I[=Vao>=DYITMXx=VVN4Yo(oARTa[RXl=NOVaNV[~"oINa[V[aoY[|=aYYoxo2aPyVe-[NJYFO|Y|VWRONONIIVLIWoNNOIVRiOgYFVMDDgVNRRN0[DOaN¥NR0gOMol=eIA0NNAXT—BB0MoYNl—OI%RoW=lAIR0NNoOOlONe0AVL—N[eONolI[0=eYM¥-¢o[aYOaYIOaYNaYWVae]lIYeaOYoT~laIlaYIaDYuaiYIorYLaN~a)U]IYD]a—=LYatIVYaOaM0YaOYaYnaAMdYa) CROSS REFERENCE TABLE Ca]VO«cx—WKWNV&WwaWJexW 9254558750770074567877765455888884275154 OIMWCNUWONAoOrNAeOreOeRmNeORmNrDIRNm[AOe~ArCOe)]L|YN=—MOeDM—NOM~ININE aOdDMW0le—000=oaolN YalOM’NlO~N’WRaA"MaNolA’aRMlN’RlaAaN OL.MaNO-lam—’MLNalIal -wwP~ OO00OO0000O0O0O0OO000 MNN NWW- NNNNOO— A—evN——P-—T— L4 - CIRJOAQ RPO7 PERF EYER MACRO V04,00 1-JAN -83 12:06:52 PAGE $-10 (CREF v04.40 ) SEQ 0234 . [ [J ¢[RI)LO~gD=7B—VM Ar—N=OunutyutNOVNAOWNo0¢8y *® -=o3eXL)=[ONX—OeNg]rEyK—MrK—oL41RNe[=(-—VARoNe~-MMNre—er——VORW--nIX——N-OXO-[«(O=Vow(IoVN2eO15O|OR-O«»O~VIO& —o~aYOAo)olvM[oVaN4lWaCY,oONVg«aSlLYaRVSlOvRaO2aAlTv,NeOflI[a0—aw%lVTEo7ad&lOXaLU¥-WNa[lVo0YOI=ala¥dlt 3OO—-AaOgOA—&)UR|UN0[O@-B0TMOo+N=AitME8UdWNIL8]UT0OAEouV0LRL6I_gO0vNRA—ULWRUONV8=PID~W0¢0e0oVL.DF[O.6"OLW"I0[OI.RMIWVWAoOa-WLOeN]yV]SL—0—-ULV0—eb~R~O0O0U[”&vo@O"LA-EaMLOXI1—n-="A—-IO)OR—-§®=o0Ar»~0N-FG8UEO=-LNePIV]¢L8O[0T.GOL49N0oyIWG9OV-1"0—NODRAOIMAegDEMpMNN®1rEa4~o& -[~~ W~~ 0JO%w]eL] [i}—NV=<[R3O|-2=eO4C-—0eNW«DO—=Oe|0AQORbN~NO0V=IbeIO[OV3o-ee]] ¥O~DL0]Y—NeATeOMWCAeIONARObNNOeNIDrIN=eNLIVmOXSOeNrOOMIEerO~NCrBNbrOOIeNIANMOXeNIJON—JeIVOLWNVOPeUAwNUMWOAOwNTECN=s(OdMINDEC—d3]L]LN[NOO2M2VAoN>—4RD—MN—~g=>]0|"0a1gaO—VXrlMMIB0a~VN¥KoC2EEOo¢|O¢taol=OdU2TrNX—=083LOMOMN[ANeaQA—O]]A02d0WV"eTrAMLXO3Ia0—la0A—MN2N-MXlAO.|.000NlV2OAoOrDXOIdI~a0NNO3NOE~MDOo0IOV——0I2A8yeO=y[—EeM—TN3SLY"[I0EaX O(oNA-o-@A--O-==o~[AJ0U"0V[U0}~[l~a}][)[oL®Lo[o~o—-J-~-~~ed]o[’&UL0=w—[lSLOe=X0f—M®[e«dms— «wL)© oLo[so25s-o[~w~ow s-~oo ~4~)~~ ]~4).VUU-UV}ya"][a[[a[]¥”) VaUoMW-a~eoONO«4oA—NPs@ll"4'—O&UV1e.lr011——VXa’VaYa~&YeAaQOOllD—’-")loD-a0VOyaX"mXelPYa~[VW¥o0~W]"v-MNV3VlNh¢eL¢-y¢[Laa—L[)pLl).« w—oaeoLO[ aM «— n[VL}oaN]O~~O ly U4O-P[~Co~)eVJ'a[dl[ [w]N~~Y[ULna][l ¢O[U[Lo~V[«LUAa]NY) (IRJOAQ RPO7 PERF EXER MACRO V04,00 1-JAN=83 12:06:52 PAGE S-11 CROSS REFERENCE TABLE (CREF v04.00) SEQ 0235 = L L J 57-107 $7=743 17-99 )L 4[][) L.9[ -~ v(«.00 N~[} N~]F EXER MACRO V04,00 1=JAN-53 12:06:52 PAGE $-12 (CREF « [ - TABLE N CROSS REFERENCE O(=] ~LN) _b alS Seed2S5 E8»Ta gyW— o 0N 0—R5INVTW=IW»IVOV IT &»TY N&W TMNN |® Y Y a&0~Na.g y oo— iS~ EN“6~H1.4oNoLOe]Io&U]dU|nR=SNk[1=NaIH8.]ob~Ogl1[O'0-eO2‘OH-O.12M;T,nVMSI0W{'O1N.‘O2NEeun)SVs1=E‘A=—.2UOOn)G90o-SNN&%04oD>.2IZy-E“>—0~On90DSo1>]Mf7—3s[.U&o|]NE[-2l1‘9V~OoWA.n3owA.o20MSELlW="36oY ~w9eF]">A[e75n8AWN.ES034“9OT(3n5‘NE’.O\CSWUO81Y[1M03An9{.2&‘0SH9LE[o-.O0l[aS]V=l1[9tow60WOX"2,EV.1WRBSLH‘AO~90"5ENYl®W..ROoYP[0=6H,<9O(0WO2N5E1©N.Oo[e=-9YH8~gTNOeW0N5E2/6.(9[20Oe)V8Nn«=7H1A3eRMrN04E"5N.A9e‘ru~03MT4[WMH‘1.95RE0Wn23ANVrN"8I.O55E0eNH3M0A.9Jr"4M5R1I.EIee"9N).—IBr"165O.-EN3GHAe7e.9O1H3-O.EN0H375-9O0N96E.5OR‘TNIN8P.I90N4R1Nf.T=ON'O.1N09NV5E.8RANT7O2.M03WNf9R".I27N6EO'N.VN8-T‘7O.16O;UTN.032ARO9VNE(T.‘8N3ER0TP.F"RNR0ETPN.E1S3R5N ©©[o.a—dlL ~]odN~[[- L ][~Va[ (IRJOAQ RPO7 PERF ) SEQ 0236 - - ] [ d o- - ] [ d o4 -L.al~.—&]a5l&a4l¥a-¥l]—«aTle[¥[—aVaT)4[[O-Va—)NM48YN—0oRX0vNF-olD.[LNAal—NW—WO©O@—LKva)—=vIMe—-~)eF—ON@E(~5]2DF]IWO%o-—N-ON]I0~|-[.Ual[~4x-’—lLY>w0L~8-w.yalo]~.0aFulaor[0(Va-o)xwoa—IXV3]-xLo[«SNo[g~vr-l0eo"0—do~a0YelVN—XlVO¥ITN—§U0VOaVoOwT-YO(aV—DONO1-Y.1iDwJOsAN|rVNwYxIEeI—YOxN0wbi©OeaMd—-NLaR]lL0dO~®@DlL’®C—oKRaWLXxDD7a[~4~YOIxL)E[J£|L"4[©~4d-Yl_)ay{(lL]¥[aOIZI«0a«~4-x]»[L[N—Y(&|voOONu]dI~oo-Lg)o-[]=I—0l[}>[ oRXgn-NWTd—~LUoMw]L“--£4-g[W}—wD—2No-uJ3deV0LQN—LM.O-1]I&KOV¢tDU~xVONN%h-I[]}J—WZWXuI7--—IREIReXIoaO->][}~I]—0®I»[-o4(~-—~MN~V0]0a&N0Y@3NVeNOTmyoVWOwD—A0—0YO8tV~O4N~-~=A[—[N)O—se'e0WO—A[]Nraw0e0uRe—@LODr~0MI«Ue—O0-0Z'=NINOVL@oZ-N—-o-oNO.YU'LM—]al—L)D0edOa.]LWeNob~&eMV—4~"[og—Ad®yL[}OM)LD<—Nt-O&V&PXg(~[<«L~©O-l.©e=)[Na}]°—]L|)E«®NV4gEe)©-O-—[[]9][—VStuaasn(]a--XoY[)2W&o-L4)odJ]nXdLV]o~~- 0([Te—[( Ba[.|]W(l(Yl[]ootx b4 (ROSS REFERENCE TABLE EXER MACRD (CREF v04.00 « ]ILw.aol"rUa) v~LUL -[ ] -][ -] " » = L- UoOOSL10C|auoOdSWr|~a-vNQ~-‘w)lFuOASiMUl@L1—SOV_0gwoORL[]lsO‘rIS[1UeIQ—Wewry.1OBO~9Jr‘0C3-“y5dO18AMe5d‘[0E~~O~.D|23ar]RO1XWQVaIYOVN W-"I5Vs1JY]2¥I001aL1lON5s6aI"52YlaoO=X0sL0[L8Xo'300NN5w)n3~8e0b51~-i4—32E~0aR01M28oOo300‘85N1(L6O-WX="5a]90--e)0——215T7-E16NM=9O31Sw‘NL12~snT)][N25~L1-aNX31ON’5a--"))4O——~[J25E1OeC1aBA1"[-o~-1G[=Od]]08IdN0N1ND51N1N‘.N'3-0I1N07O5—@~®01~®Ve-OT[o E1["oFe0)5OE"O ~[]r W~]]ILONUIaVOlLI ~o-~ -0U 0N" wLN] [-~[U[] o")[a¥ o -® (IRJOAD RPO7 PERF V04.00 ) 1=-JAN=§3 1 2:06:52 Lo[aN&WwM-ektl0~en —[Oo-VFM[.a~0Y]F. e PAGE S-13 Seq 0237 4 V o l " L o [ ~ T 1 a ] l V a } ¥ V [ L A ) o a w T l V M Lael-oa~yY] L[J hLd] « o- - b OODOO—IVOVAOROOP]“LP.OVNTMOORAUM~“NNNMOAUIIMO&NROOITNOOONMON-—L-"wnNO~w[.(NeVayY"O"N—oN=-OOM=NTo=NOo=o(]-=4[ LaNDA00N|AlBnyNRgNBOOoOOeRINOoQ=INOOLMO(E<~T—)DBNIOSoQI=IUo=sZ<MIAa)OOMal—~etIMILoIylGIOSIORV5«OI8VVXI]ILdRO3OIIAVXOYIEL[doVo-d"=OT][eOVS—waXanAN@"--[NN«~--'wNoNO[N~©~V¢a)OIy-FO*N—gwoNa2@W-PV]O[y}[O|NnOVIeNo-[W0O=eyVBFN0—OI-O~yWN0NQeBN0yOVI0—IaLOM0N©0o“ANRO oNOEZ2ZJA2COZD2OIMZD2OFoTD—oOZ=IMo=XTo=MoZ=2~o[Z=2—SANTAIMAZOTANZA@IINZASIZTL~~ OrIaLlZNPIVZO2ZrINOZIVZIZ=2X—ZeN 2oZNoI=ZS=22-Z-Ow"20ogNyXGEONVO>—8e§~wyAD«@[©e0EV[a))yJ>~>o}No-x—)g4lBNNaNWLl0og0oPNoaloloO—"kyoSkOoElLIol~-¢ b—U—MdW—ddoDOdWdo=eodio~dJAbN)FdPDJeNdNLDo=N¢oe"obOdA)UMdDCUM)N)o=eodORoIbX]dN[SdeeNd4—M]]LDaMJJN—2MoNO~e]tNNCeNEtORNTRNN)Rr0Ao0=NbC l-elIlFOol)]MlLN[o 0]LoNol" N]2RVN["YVO}laNTaY|A V[a )]Lo 2a]NeV],[[ "NXaAlN" -v [ TM ot [ [x0-—AXOE4uD&OW¢+O>IOw—rNMmeMOruwa0LAW «1X%®oda0Vl“ ][} —M ] 9 ] ) L [ "a[VN2o)aX OoWM [ J L=X2[VlYa O@ [14o —N vO& 00 og [*al"s) an O " '0 ~09TM0- ~NO (CREF @ ~nNEd TABLE e "me oM~ o~ (ROSS REFERENCE @” (IRJOAQ RPO7? PERF EXER MACRO VO 00 1= AN=-53 12:06:52 PAGE S$-1¢ S€EQ 0238 v o—~ O4aladDLYONLa)ey-”9 DNOyPONIxSNONANNAOANVONNOe-ONANNXO0NVOAN-~-1LTANT]7Me.ay\02O=8ol~[T«0MNOXOO(OWNwOWiOw[]=a)wgNTaN[gOsPd=VTlaA|l—VNgN=Va,el0eaAVRgPaVilaR—~MVP-NonaV~=blyVo~U=NoJ=U~V0O=OOoNVP~OVaeVV=l17UaYN7]TBM[[L~o~YJo—7T}aN~=VlV7U=RVOV7UNWSV0U=OV0=VV7=NRoV0yO=o*7eRTMLa~o"[dCkl]VN~[OORSNCVIYVo=oAON&7=aELN[nDYo=)O§7=WPeNO7=NXV@w=rTMo~-VNO[O~VO© bON2W"TAyX“d1o=N2—"w0ZNOdAa2G1dNAoTgR=6XdLoAe=Ta3ldNAgoZe=p3IwuNAdT0aUbR2s5ZVw©~o]AJd[=RTa7aAXdUaO02MwWdsA9)VRXoaA=7enTVog4a~.—-aC—oOA-|~.N-8lTYILao]0Xeo10OUA~=dAZO~0L~-@\N¥—WlD®]L[[I6bAGT(R3Zwe|AdT3aAoZd=0T0)OA2ZFwNAAdT’IVwAZdN72OdAY28~o0Z@w(Gd02)o)pMVoNG—X~A3vEOIonN0DA}LsaJ£oaoogI9«J4o&e}.—)l)a¥ON"lMVa3vY9oaoXl}a%)aYYY)oa—¥dvVVl)2VI—oo¥uMvU"a3V=X1]anUoaY[VlaeY0l%TNAl«eNk>o-lgoaLRV"n'=O"l—"oUlLTaU0NvrOda2-VOkaNylolaSn2—a[=klsTl0nd~N'2~-~OeL3«}|IdaAV8M®alsO2oNg@a¥a}d‘0]d=NYMo9]XE-lNo=1A\=laDloOD=TFVaI@7"lUaLwa©V[w~s0VL3o~bl¥l-—T&aO“Ioh]oLL"lV[.[ZMoSDA'odN2NOuM2\vdADZd]«1oAM)2~Nb=ONa8ZoVdwG=2Ad‘N~i2yA@-ON0aeI2[&tN5AaJT}loN"2o[4w>u~oa~L.l2yd--dLa~~YLll[L[9IO2oXAkXN‘-OAUtoMINoOON"o-ON)-84g&)GoTd0«—XM1Ya4"~LlNOy~—o-X”Ox"WOkYL[[OP®OWNVo0I©—®WaNo2WONoNo4VNN=l8O=W@Ar2"=ToOGo-~—®~2KTN0Nd=L2GayoNPNMe¥S802NoO=—NN©wN©WL>~OO|L[V2A—~ytydeAaS¥0l2WOoeNOAl&X=« SNJXImey0dNSwOgmpaGTlmgwlNSJOGdemgTSNuomyYGaOe%udLOG*LNGLamo«npkdIAeL,GRaemglONDayk-0A0-(~4NO[N]L""y=00U0lO~- N-G1OA—OWGMelIgMN-IGNGAGLDhgo2VNAe)][N0YG2SA«ONMMR—dS)o]0oR@FO=IIANd0aA~@TgWII00SsG~OoAT@eL[10sm—MgTM8WG»mReNpNWaAoe0RnApT8NeW]SNAONNGo]0)00M0LNOaY=V0lTa0V"&¥-w00L—Go©N3e"[¢l0[A&Jr0GNTOFA0~A-0WS—NRa0eIno8mW0OGOLOS00]TNLoI0bPRkAMU’~®0["00IA0SNFYR0AO00R¢Vo@R—OVAEPL)R00E)N=LON9~"o[-[5g0—So00OoOYN0]0&C~r—XI0I&—0NX~Wr¢RIP00[S(V—-NOeaUe00YVoeOsW00aA0k LOeo]~U—~L oO4l0oY%Va0OTvM[aWtOl¢"V[ FgsnLe8lU[(--V|oaYl ~o][)N[ "@O42]"lT["0M2klN@e0X0"0POR¢oP[ Loo(=@aLX]d=aU~X"Y]][L oOOg-)]V1Vw-|alOa"V7ol ~©Lo[o]o ©ow-~][V"Ogo-o]~Yo[[oo¥ONgYN"u0Oo"N-~-]U,(2 (ROSS REFERENCE (19,00 RPO7 PERF EYER MACRO v04,00 V= AN-§3 1 2:0¢:52 PAGE $-1§ TAB. € ((REF w06.90 ) e SEQ 0239 VIo[a"l¥e~AlVlYaNWVa o-N—>g-n—y=Ca"~-lNal¥ o-N>g=y~[.¢0] L] Qe (10 )0A0 #PQ7 ll.ztzfl RACRO 'xglbgo Ve (RO55 REFERENC 177¢ fn.0P60 8-1¢ " 0PGQ 8 LA LY 34=1210 ¢ 25-19 25-34 34-63¢ 4 25-23 25-30 34-62¢ 58-584 65-20 65-20 63-20 3467 65-20 26-31 65-20 26-36 34-990 34118 34-123 34710 34<1110 34-128 34-100 34-127 98-59¢ 63-382 63-402 TYLTATL B0 NN — —-OP0ONOO —_ NN N 9 0 0 0 0 0 [} RSITMR 29-122 65-20 NONVO 63-20 8 NOPVRLAUND ~ WO =O O 65-20 WO NIO VO N 65-20 WOV PLO Y 58-60# B POPLND et O [elelele Rde) 58--. alYs LV 1V IV, 1O 58-60 e ’ =0\ WO PO PLO N [l oL SN L NIV L OF ¥ WwW—=OO0O0O0O —w S OO O p) L] VI 4 $8-58 WOPLONOON 65-2) =AY = PLNLNL O GO VOO 34-95% 65-20 N 34-61¢ 65-20 18-19¢ [ I MSPASS MSPRN nsox10 MSMELP MSH LGP 65-20 S 15=514¢ 15=542¢ AR LN N NN OB VS NSO L L R R R MRPVE C MSGCON MmSGDRP MSGE OP mSGEOT MSGON mSGPG MSGPUR MSGREP nsosun - OPNINY = MRP(S1 25-28 I4 ¢ untnnuuo~“nuur%rr%n~%nr~e\nn ' minNUTE mnT1BL mOM 0] mREAD 15498 N = AN N U MINTRK 153660 N —= OOV MINSEC 15231 OO C OO0 O MESFHE mINCYL 15-125¢ LR] w0 pE mLPE 15=7¢ O =0 PUAU OTM Lt =2 P N =2 L O (V) L =21 | L [ PAXTRK S 8 OO OO POWMO VO mAXER § (e 2a Yo JaNIV To R ] =t =t O ~b =t § 5 P IAD =2 O O O R WO VNN 4 =N O RN L VIV T W SV LV VR B Yo lCP VEWY IV orovaeawn ~ (Y ol WO — » w [RV RV ] a» mAINDA 38-8 J - el LTOL) mAN? OO —rurOny &~ = m_OPID MAN mAXSEC 11101 8 = DPY%) PAT(H mAX( YL SEQ 0240 8-1392 " DPLG mASK 11180 —OFIOLO N LSTAD =83 12:06:52 PAGE $-16 ;j?,f Rt TN 1 [V LV IV LV TV RV IV ) LOlEY LOUPAR -‘\fi LIngS LEPAR (CREF (19,0A0 PPO7 PERE ENER MATRQ (ROSS REFEPEN(E TABLE (C(REF ® 101 - =116 |21 ] - 63-5¢00 -1%¢8 "y ~NonE 63-582 Y -; NOTAVL ? =142 NOTPRS NOTRP NOTSAF NGA ofFDIM OfFON OFFSEY OfLIN OnE S OnE SEC OnESUM oP| OPIER OPIERY oP1 OPIBL oR ORDERQ OVRWRT PA(K PAR PARI PARI PARI2 PARVG PARYS PARYS PAR1O PAR? PAR21 PARY PARGL PARS PAKG PAR? PARS PARG PARENT «38¢ ? «2%0 tb 13-¢7 13=7¢ 13=78¢ 32«18 18-92 27-3¢6¢4 13-17% §3-%1 t 1 ‘: 16~ =2848 1- "- ;z 11-3($ =22%¢ «19¢ =192 186 63-140 63-13%2 63-1¢2 <2608 -1618 8-0 164-60 9-0 g-oc 13-43 $-1908 16=17% 1S-3¢78 $7=102 8-0 8-0 15-60 15-0 9-00 11-89¢ 29-458 13-90¢ 38-1 31-31e¢ 31-33. 164-1110 15-357¢ S7-1668 2-00 7=64 27-66 S57-500 $7-6264 S57-676 8-0# 11-8% 13-$§ 15=-111 13=122 13149 §2-182 J=52¢ §5-57¢ 33-62¢ 33-68¢ 33-712 64~ 64-9 64-11 64-10 64-6 6L-§60 64-382 -398 -408 -410 =428 -4 -¢0 65-50 65-50 65-20 65-20 63-20 85-20 65-20 200 63-20 65-20 65-00 65-20 63-20 63-00 63-20 -1342 11-23% $=-180# 6L~ 64~ 644 64-15 64=7 6k=¢9# 64-30# 64-318 64-328 64-338 64-3is 11-304 S-848 P4 <20 S50 =20 <20 -92 3 NOOP S8 ¢3-39¢ SE0 0247 L X NORT(H 29-132 -$20 - 1- 73 11-13 18- ' ¢3-402 $2-61 NingE NODFLY NUDRYS ) $7-287 L Nt wAN Nt wuNT $5-1690 63-¢92 «13%9¢ 28-3 -1388 680 1=,00~83 12:00:52 PaQE $-17 W~ ~ NED wiDCLE NEm PAAAAAS S48 mrunte v06.00 65-00 65-30 65-00 65-90 36-84 65-90 6520 65-¢0 05-90 65-90 65-30 65-90 £%-30 65-00 63-00 £5-90 65-20 65-20 63-20 63-00 65-20 es-so 65-20 85-2C 65-20 65-20 63-20 63-20 65-20 (79,080 P07 (ROSS REFEPENCE PARER ’AD\SY PA,PAR 14t 11=198%¢ PASSES - PAT (M =708 PER100 - PAY PERF EfR Ma‘ 0" 52‘ c0 Y-,an-03 12:06:52 PAGE $-18 TABLE gqia 11. 7-6 }7'§ o i PEE(N (YXAY| PEE(HY P'((“i e PIE(ML PETISTN »GE PGA PlP PIRO PIRQVE POPQUE POSER PRO PR PR PR -f D) [V &6~ (VS Jree 64~ &4~ «1378 -1478 1718 6- 7-6690 4610 YRRV =18 YRRV] $7-179 15-304 <1048 «1048 13-1%y 15=49 14-62 $=-106 20-11% 29-121 §3=14¢ 56-19% S6-16¢ $6=47 $7-99 §$7-100e §7<«15¢¢ 93=10 32=13¢ 32-99¢ 58-3. (1118 12-%7 12=51¢ 34-10 $53=1e 53-38 1125 §3-1e §53=1e 53=1¢ 53=1¢ 92=1e $7-9¢68 $7-9808 §7-:76 §7-:78 $3-112 QCNT QORVO QDRV §$7-9358 g’-Oa 7-9¢ S57-994 27-957 7-958 57-:18¢ 27-96 7-96 QDRV QDRVL §7-949 $7-950 §7-969 $7-961 §7-969 57-970 QS T10P 20-108 11880 $«-1048 §3%-1 QTERP 29-99 18-%2 16-1228 PURUP QOUTPY QSTART 2987 15-49¢ 14-%2 15-95 §7-214» QDRV6 QDRv? QINPT 2?7 ‘!-s’% od 28-2¢ PSEL PSW PUNSAF QDRVS 7417 1-107 - 28-12 §7=167 S=1148 $-1048 14-9%2 QDRYV S7-:T18 ’ 59-? 1 =1048 <1048 11-28 PURVEC 57-663 7-$108 - 57-614 <1068 PURFLG 2-38 $7-370 g-10&0 P 14 57—§§9 8s PR PRTIM 4 29-1% - -1048 =1048 32-1% PROCES T=$12e f?'?gs 29-18(0 YRS ) $-2584 S=1048 zotoao PRIBAD {3278 9151 YRAY | PRL PRS PR “.3‘ -4 1310 staie 13-%8s 1§1 PN $EQ 0262 ((nEf v0e.00 1.=198 S=1048 §7-948 £7-951 S7-95§ §7-95 §7-9468 §7-9578 §57-966#8 §7-9678 §7-974 14-672 11-320 11-25¢ §7-959 S7°96§ §7-96 §7-964 S57-:20 §7-:20 §7-:00 87-:3%¢ §7-9864 §7-971 S7-97§ §7-97 S57-:37¢ §7-:59 §7-:08 §7-:7¢ S§7--3% $7-9782 $7-9798 §7-:35¢ §7-:5¢ S7-:71e $7-981a2 §57-982# §7-9E32 57-98¢«#2 §7-985# §7-:38e §7-:71 §7=:41 “"-: 9 87«:74% $7-:.78 §7-:41» S57-:75¢ (10,0A0 RPQ7 PERF (RGSS MEFEMENCE EXER MATRQ TABLE ((RE’ v 82‘680,1°Jl-.3 12:06:952 PAGE $-19 ??:3'- SEQ 0243 11=25¢ 23-¢ 64-1 64-8 T o_a N [ o ba AW OB~ NN LRR1.V SN0 O NWO VA 0 s L ] O - bt VWA PO M= DWW YN = BN L}] 57-325 1-38 26-41 8-122 11=256 11=106 57-35% 11-287 11-229 32-108 21-61 1818-118#¢ 27=19 38-59 38-99 52-1 195=59¢ 15-367¢ 15-78¢ 15-399¢ 15-79 15497 11-159 20-138 15-296 19-297 $7-8120 $57-891 27=479¢ 18-85 56-36 57-858 57-513 NN LI d WO O — OV — ] L [egde Rk NNV VNN =t NV 1V IV IV IV ] TM © LA,V) NN SN ONO o — WD WEH O 57-293 . — o s -t aswn 57-905 57-56 57-175 56=37¢ $7=717+ 5723 57-733 57-116¢ 57-85% 57-310 57-282 57-510 57-318 57-631 7-23 7-91 O I I 57-%075757-768 55-1634 57-85¢ 57-490¢ 55-165# 152820 7-587¢ -~ o — NN 18-124 = 11-153¢ NNy NN ] [ [J NN AN bt =t OO [« N J oOw: © S 'S VOONIWVNOD =\ 8 NOD O = b s SO N WON= 7-68 NNNNN 9 0 0 0 J ] . P o IV X 0 i 00 el ) s 4&-9 (W IV IV [V IV 1) - L 8 LN ] . RPECI RPEC2 ) RP(CSS RPDA RPDB RPD( RPDS RPDT e RP(S2 —r RP(S1 WO P IV Y RPAS RPBA RPBAE RPCC( A= = RPADR WVAVAAOVA AU AWV N RPO7 AA REV RHEXT RMR WAL RESVEC RETRY NAVA AN RESREG OO0 ~I0000 N ONIWVIOD N O VOO~ OO0 ~ © N~ B NNICN I~y & AWNOBINNO y ® L] LA R 2R R % ) 00 — ;OO — D = CBNIAY NN OB N AL AYAY P Y. DO - AN oy ) oy VAVAWVIVAN oy =2 (B WA = 0B A OB WA oy © O WAt N DD VWAL b |} - S\ =t 255 R 23-53 957-173¢ 57-880¢ 57-279e 57-920¢ 57-304¢ S7=44be 57-479¢ $7-598¢ koM-&[y}TR%wON-o’[VNoo0DM[S—Ne]}NLU"a]o¥WL0O~~E~N1lry.3]RLoVA)LaYV[o"eVal)aUlVaY3BVo][w~Ne'L]Val[)aIlaRe[V0al(~VVoea)lLV"alRyanWN$ow4-M)OoN3)][=}—[LVo&tO0oVeW~WJWk)—eNre-~o -XMR]O—=—qaeeNYL——OVuIUsVWwhw[o].)a[lB[[svL-~V=VU"a—4]a])l0n¥al *oMNNNVOV-wUo[on]lwlmBBmNN[wwoTw4O-NUVuAa0oLs—MlNAlRTaVnVATNWE0N8V"eO>4"-~wwaeo©so-]Ld$"Nsl[L < -Nso~-~]U) ©0 EXER MACRO 326.00 1=JAN-83 12:06:52 PAGE ((REF v .00) ® 2 S3 NIOATCOrWYOrW0rIELOowWxUEgZ TABLE L® 4 gTM L2-]]aNl—.L1ca[a(l]o ~o]0[-«V[[]nr—[l+ (ROSS REFERENCE -o L OLUVUWOLWOLOUWOLOLWLWIWWIWWVO V ESdO«D4OE<5D«aq>CDg>E=OaEN3dEDoN3CaDcNEaAINaEcVIacVaNXEnDNcTIaVUnIHDaNIaVDnNaGDnJWXEaiiawaEdaerX= NN—~-[}>aU0VO-NW'NANooAo——-LUAtMX}LMMOI5lyYyDTINIDVRNI)aTN~~&O)IrVaIOYRN~VDGeINNOo-o~X ~~V'UAIoN[NPD—NOVNVo4%eOINl(VM~NhaY[¥]IOVLeVI]IMDANVNIVWoN»R MVoOet-eQXOW00~~U8wM=0VOO0eYOowWOO—Y0KiYMyN=--U~NOONeN-s=4INBTwW[L]ww0N ~N 4O4X aeA)]¢}eOlwaV0.OPRIBBNMBuBeNBDEoVEBNoBJEom"@4NMM—JLpUN~~]~=mMNXN~MO~~U¢GmVVOZ"OEAIXNoo-O bMOnlXMyNe4[eoM ~~wL Ag—Ve[]a) [0Val o-)—[V CIRJOAQ RPO7 PERF $-20 SEQ 0244 ") - - - w ~ ~ (=] ~ U w~ ~w~ ' wn ~ 0 a0 ~ U 57-876 CZRJOAQ RPO7 PERF EXER MACRO V0&4.00 1=-JAN=-83 12:06:52 PAGE S=21 SEQ 0245 CROSS REFERENCE TABLE (CREF v04.00) SET.IE S§7=-27 57-134 - - X100 37890 i-se 11-140# SIZE70 e SIZMEM SKli 11 306 §7-168+* 57-30Ce 57-611 57-620+ 11=2S 11=-15# 11=11 11=21# 11-82¢ 19=7# 11-87 28-35 11=18# 38-4 32-36 53=15 13-219 13=221r 31=57+ 14=213 64=240 55-99# 12=-3# 5=104%8 6-3 6-1 11-16 8-0# 13-180 15=479# STKLMT STNDAT S10 SUPR1 SUPRZ SUPRS SUPRSL S-104» 9-0# 57-694 39-15 39=14¢ 29-98 36-18 SVRHXX SWo Swi0 SWO1 Sw0?2 11=36° 5«-10-# 5=10¢ 5=10¢4 5=104 Sw03 Sw0& 5=104 5-104 SW06 Sw0? SWi8 Sw09 Svl $=10¢ S=10¢ 5=104 5104 S“On‘ SwW0S SWi10 Swil Swt Swl SWié SW1s Sw Sv Sub SwS Swb Sw? Sw8 w9 SwR Swlf (s 5=104 S=-10 # S-10.# S=1( 48 S=10¢8 $«1).8 S=1.+8 S<1( 48 S=1"68 S=1,40 S=12%8 Se17%8 29=-7#4 33-42 17=29 57-714H 39-20# 36=19¢ 29-104 39-124 17-35 20-119 39-29 29-11. 39-31+ 29=120 39-334 29-130 35=12 11-104 57-374 22-=12 57=-487 32-67 57=-507 32-81 5=1040 S=1044 14-20 11-210 11=-322 13-213 37-41 38- S=104# S=10e# S-104# S5«1040 S=1048 S«1048 §S=-1044 S=104# 21-39 27-7% 26-26 16-201 38-1 27=144 57-673 11-312 57-918«# 3124 29-136 39-17# §57=572 57-618 57-662 §7=-732 §7=798 57-8764 27-6 27-9 L3 14-93 27=-395 16-69 18-3 27-425 27-177 $=° & o S« Se" %8 -8 126 1129 16-:9 - - SKIER SLASH SRCHWT STA STACK START STARTY START? STATIN STATIS 13225 57-550 19-208 53-35 STATPR 11-202 57450 -292 11=174# 5=273# 57-213 2 |1-§s 1!-;5- §7=41 8-1 1M 621 2%’?’ 16=cN gi-gl 18- o-10 1124 1-39 11-{ e i?- P4 1128 2626 8-1 t1=116 62 2 1139 21-6 42-) 11104 27-9 621 11-;10 2773 (2<1e 11322 Q72164 (3 1; 27177 'S L3 13217 27308 43 142 1493 43 &3 27<42S Si-{fl ONwW~g5SNOL0JVoOT4¢SJoIVTE<XKXNOSIooXaU2oOlNYVaoIO1¥VlUiVoMOeVlU.VoTPYaoaMVoITYRoVIo=M=AeRJNAoROLkEAMdoet[LXaVl[kaOSe=Too=~N~”¥YJo}NaTJNoNM~2aXnLYIERX[ew[Aa-YV~a0l)gOwVieONINOINIOIOY0y— /VI-OR—OMaO—])[MO—TR|D8ION\BDRTO=IDNOI3OIFDUOVIMFO0TIDWAOODVUML=TAID-oDIONNOMlIIZNDOO=NeIWoONN=OO=ONOII~~—2-[FDBC/NLOReMR-NOM"Nr®|-MOWMN1WNn.|O"oNV-O0OFo[oVNlL[a])EoNNEOO8.83.5.35.5.L.4YaVIX3[eolJ=o=N][ Evw[OoNoTON)OSoOUDMMOo0M—0NN¢=I0O=0OC06N>L>l—NV0ol~)VI—R[&ai oUo~ w’. WSN0OUMOO» -[}——4o]SXo—B=Xo—rBo=—IROXvIOoNOlOPoOloODN=[—OaoDV=rIOa—RvVi~aQIND]MIoeVOolIoO~lUDa[M——M Inl| wM0~w-v¢TMw wOOw ~OLn5] OooN~SV~3ooONodIdaViNO—oofIJNOaOVeliOelN.OCWJoUYIoMVJNoA(XOTOaNdLNV—k NM4~~ a&L<n& o~~~ L O44|)SVENKBAXTOBIBBVINOoIJIoaOAOlVIIiNVoe1DIDIlN.V—I—RIDoYNNoTeNyRIoYMoeVDIIA-Ve—NNIaAdOMMleIADo[lDDNLLlMO2IIo|l o<81I5~-.[ woo~~U] DD bg = . un=iy Wi"ySSRiySyoyTleooleeeeeeT[ TABLE (CREF OAoVWqOPDBoSco—CIOauWwvwa LRX2y3 -OQ—NwoPA—IMe~MOYa[N3MOmY0INl)L[OWNT=w~V-AMMaVmlNOONM=-.~N ~ ~ N ~ O3O OUMOAISN b- ° N [ o 0 Y d a l [ V o ~ a = l D V ] a [ ~ = 4 o w N 2 X o[ea®YlOL~’a)l»vVaad [RINs)DB| STON—wMeINmNMINaJdRoVA5Ln~NlS]REdXKNOerIU~wNeMo—=O0— «- - L- L- NoTN)UNTN—IINPRB¢ID—NIR0IDO2[O=IlVUOa¥IONoOUdBI.DMONMNO==NRM=LSMaDlLaOU—I—¥] ~ CROSS REFERENCE L- « CZRJOAO RPO7 PERF EXER MACRO V04,00 1-JAN =83 12:06:52 PAGE $-22 v04.00) SEQ 0246 & L & L[ L J 57-784+ Ny[~Voa~loy~ANao0D~Nog)VT4a(l==2ON["aeJE—De1V—a)<gX[YMaloM8gloL)a[lAOOTNSOOMOT v04.00 ® bl 16-88¢ 16-93 [].4l OLo.a o L) EXER MACRO V04,00 1-JAN-83 12:06:52 PAGE $-23 (CREF 4[a4"] o~U ©~ ) N~N -~ ©© No[ o~U <©] o[J)| oU -] TABLE -ow[] o~~UU ©OL]] ~LI (ROSS REFERENCE oo-'0d—[ T~~LM -0N]I0~L ] U t0 N A~o INOoN-->wX]][—A&BOoJNOMCI0B—0eUDaWY«—N]W0TN~xMOAON=LDVNA4ULW~yOW9¢IxT XJ"NON[e-3g=|—O—ON=ee—NNW2-0DMwN])\tW200aNI-YN[KDE%O8oNw0-&][UDiIkoWNUDNFYO--M0TDoLoaOR][ A~~WIOo—T4TD_6—NxIOTeu"nDuObnE>UVNaLMIXlO)"8aO2»)o-oa I[LLWo-=0Na[t)—LlIRUuIksIeyEaZ0<=BY8IVeORWO&—e]N020gZ2OI0oQ’VO0T0We\Ou2N~T—&tZ00InoN[e&ONw--—Oa"—M~d -NO-~-@S&]]]—vNWN~s']YNN2NNA-1LGO00NS~~NOU WMo—OMeN&0NVFuAeM»)"0tM=nOaIe0~—fLrol wLs-©[ ~O ~U[\4} 2Lao-[-[--]lo)4]]—l[[[ -NoLa--~2n3——[ aoawaod~))llNN0[)[[VVV a-]-~ Me4Nd«—mo[oL.kO—aLl oN~L-O—a~yl 2Lw"Noo~~ ]]4U[ hy[l|" L--odd][¥.}aaL)[)L CIRJOAQ RPO? PERF ) SEQ 0247 Ll L * L4 & CIRJUAD RPO7 PERF EXER MACRO V04,00 1=JAN=83 12:06:52 PAGE M-1 SS(MRE $S(MIM $3ESCA SINEWT 7-0 CROSS REFERENCE 6-599# 6-5994 S=104# S=1048 TABLE 11-19 S4-1 11=254 $SSET $ESETM $3sk 1P LBACT LSAPIB SAPTH SAPTY LSCAT( 54 11-29 S=104» 5-764 §-79# §=70# §5-798 S=774 6-8 7-0 6-11 48-1 6-1 .$082D0 30820 S5-784 S-78# S51-1 52-1 .SERRO .SERRT LSPOWE .SRAND .SREAD L$SAVE .3SI2E STRAP SIYPD LSTYPE S-774 S=77# S5-79# 5-78¢ 5764 5-78# S-784 5-788 S5=778 5=764 (3-1 46-1 53-1 49-1 L2-1 50-1 66~ S4-1 47-1 45-1 LEQUAT HEADE LSETUP .SWRH] LSWRLO S-7¢# S-76# S=764 S-764 S-76# LSCMTA .SEOP .$1YPO S<-77# $=-79#4 S-77#% A 30=-2# (KDIG CKNUM COMMEN ENDCOM ERENTR ERROR ESCAPE GETPR] GE TSWR S=278¢ S=408 S=104# S=104# 42-1%%¢ S-1044 5=1048 5=1048 5=-1044 MULT NEWTST POP S=104# S=104# 5=-106# (XCHR MORETA PUSH REPORT S=-17#4 6-14# 4«8-1 5=104# 49-1 S-104# SETPR] SETIRA SETUP S=1040 54-1 S=1048 SLASH 5=104# SKIP S=104# (CREF v04.00 94=1 SEQ 0248 ) S4=1 564=1 54=1 56=1 954=1 56-1 S4=1 54-1 S4=-12 56=2 7-08 6-599 38-1 L6-1 5=104 5-895 5-310 5-87 5-87# 30-16 41-209 36-27 5-88 30-18 30-19 5-90 5-94 5-99 5=101 5-102 15-342 16-173 27-102 3347 34=46 34-129 34-151 35-29 61-34 £1-76 &7-1 48-1 30-17 L1-217 5-89 43~ 57-549 66-1 11-31 7-0 11-19 15-305 11-31» 4(8-1 49-1 16-165 53-1 27-28 53-1 28-6 33-28 34-9 34-138 35-10 67-1 48-1 48-1 42-1 54-1 11=25 54-1 54-1 54-1 54=1 54-1 56=1 54-1 54-1 S54=18 54=? 15-300 50-1 50-1 53-1 S=104» S5=104# S=104# S=104# S=1048 79-161 uPLODE XXEP S=104# 224 -65#4 v04.00 SR o ‘4'1 29-153 29-156 29-159 ? SEQ 0249 ) O o - 1YP? TYP? 1YPO. 1YPOC TYPIX1 TYPDC (CREF b S4-1# S-104# NI N S=104» TRMIRP TYPBIN =SP) 53-1 el ¥, End SWRSU 5=-104# 45-1 N STARS EXER MACRO V04,00 1=JAN=B3 12:06:52 PAGE M- TABLE -— P — (IRJOAD RPO7 PERF CROSS REFERENCE 6-11 29-69 66-1 11-62 7-0 651 7-0 66-1 32-175 37-10 37-35 29-82 29-93 29-109 62-1 53-1 29-125 29-148 29-149 29-152 29-15% 29-158
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies