Digital PDFs
Documents
Guest
Register
Log In
AH-F959A-MC
May 1983
207 pages
Original
98MB
view
download
OCR Version
132MB
view
download
Document:
CZRJLA0 RP07 FCTNL TEST MAY 1983 bw
Order Number:
AH-F959A-MC
Revision:
000
Pages:
207
Original Filename:
CZRJLA0__RP07__FCTNL_TEST__AH-F959A-MC__MAY_1983_gray.pdf
OCR Text
PachE1 oF 1 st HIEHIER SEQ 0001 CIRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 2 USER DOCUMENTATION .REM 3 IDENTIFICATION PRODUCT CODE: AC=F958A=-M( PRODUCT NAME: CZRJLAO PRODUCT DATE: JANUARY 1, 1983 MAINTAINER: CX DIAGNOSTIC ENGINEERING AUTHOR: MIKE LEAVITY RPO7 FCTNL TEST THE 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 RESPONSIRILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. NO RESPONSIBILITY IS ASSUMED FOR SOF TWARE ON EQUIPMENT THAT IS NOT AFFILIATED COMPANIES. THE USE SUPPLIED OR BY RELIABILITY OF DIGITAL OR ITS COPYRIGHT (() 1983 BY DIGITAL EQUIPMENT CORPORATION THE FOLLOWING ARE TRADEMARKS OF DIGITAL EQUIPMENT CORPORATION: DIGITAL DEC PDP DECUS UNIBUS DECTAPE MASSBUS us CIRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 3 USER DOCUMENTAT]ON .REM § 1.0 TABLE OF CONTENTS GENERAL INFORMATION 1.1 l.i 1. PROGRAM ABSTRACT SYSTEM REQUIREMENTS RELATED DOCUMENTS AND STANDARDS 1.5 ASSUMPTJONS 1.6 2.0 DIAGNOSTIC WIERARCHY PREREQUISITES OPERATING INSTRUCTIONS .1 .i . 4 .3 .6 2.7 COMMANDS SWITCHES FLAGS HARDWARE QUESTIONS SOF TWARE QUESTIONS EXTENDED P-TABLE DIALOGUE QUICK STARTUP PROCEDURE 3.0 ERROR INFORMATION 4.0 PERFORMANCE AND PROGRESS REPOR1S 5.0 TEST SUMMARIES SEQ 0002 €2 us CIRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE & USER DOCUMENTATION 1.0 GENERAL INFORMATION 1.1 PROGRAM ABSTRACT SEQ 0003 Mo THE RPO7 FUNCTIONAL DRIVE TEST CONTAINS A SERIES OF TESTS THAT W ILL VERIFY THAT THE DISK IS CAPABLE OF PERFORMING SEEKS, THAT THE SE EKS AND ACCESS TIMES ARE WITHIN TOLERANCE, THAT THE ADDRESSING CIRCU I1TRY ovegarec PROPERLY, AND THAT WRITE AND READ DATA CAPABILITIES ARE cEd on THIS DOCUMENT, 1 CTION 2 OF 1.2 SYSTEM REQUIREMENTS THIS PROGRAM WILL REQUIRE 1. X =3¢ MM 3=z M *> IPTION OF THE RUNTIME MC » TAPE. F T0_THE XXDP THE RUNTIME S R USE ulrn THE e I AGNO TIC NA R OR). THESE SER I1C S PROV N D TO THE SOF TWARE 5 Nvi RONMEN P TH XXDP+, ACT, APT, SL I E AN R S E RVI ( F THERE IS A BRIEF DESC R IPT I THE FOLLOWING SYSTEM HARDWARE: AN _XXDP+ LOAD MEDIUM § A CONSOLE KEYBOARD/PRINTER &. A PDP=11 PROCESSOR WHICH HAS THE THROUGHPUT CAPABILITY EQUAL TO AT LEAST 2.2 MBYTES / 35( FOR OPERATION IN NON- 28K WORDS OF MAIN MEMORY INTERLEAVED MODE OR 1.3 MBYT YTES/SECOND FOR OPERATION IN 5. 6. 1.3 INTERLEAVED MODE. ONE RH70 OR RH11 CONTROLLER A PROGRAMMABLE CLOCK (KWw11-P) RELATED DOCUMENTS AND STANDARDS XXDP+ USER'S MANUAL (CHOUS) RPO7 PURCHASE SPECIFICATIONS (A-PS-3015478-0-0) 1.6 DIAGNOSTIC HIERARCY PREREQUISITES RPO7 FRONT END DIAGNOSTIC, RPO7 PDP11 FORMATTER. 1.5 RESTRICTIONS THIS PROGRAM WILL NOT BE ABLE RESIDENT MICRODJAGNOSTICS. TO RUN ANY OF THIS PROGRAM WILL NOT RUN ON LSI=11 THE AVAILABLE RPO7 CPU'S. THE COMMANDS: NOP, DIAGNOSTIC, FORMAT TRACK, AND READ/WRITE DESCRIPTOR ARE NOT USED. TRACK SEQ 0004 CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1=JAN=B3 11:06:45 PAGE &-1 USER DOCUMENTATION F A KW11=P SYSTEM CLOCK IS NOT INSTALLED ON THE ESTS WILL NOT BE EXECUTED. - SYSTEM, THE TIMING THE PROGRAM DCES NOT PROVIDE MODULE CALLOUT IN THE ERROR PRINTOUT. 2.0 OPERATING INSTRUCTIONS THIS SECTION CONTAINS A BRIEF DESCRIPTION OF THE RUNTIME SERVICES. FOR DETAILED INFORMATION, REFER TO THE XXDP+ USER'S MANUAL (CHOUS). 2.1 COMMALDS THERE ARE ELEVEN LEGAL COMMANDS FOR THE DIAGNOSTIC RUNTIME SERVICES (SUPERVISOR), THIS SECTION LISTS THE COMMANDS AND GIVES A VERY BRIEF DESCRIPTION OF THEM. THE XXDP+ USER'S MANUAL HAS MORE DETAILS. COMMAND EFFECT START START THE DIAGNOSTIC FROM AN INITIAL STATE CONT INUE CONTINUE AT TEST THAT WAS INTERRUPTED (AFTER *() RESTARTY PROCEED EXIT ADD DROP PRINT DISPLAY FLAGS IFLAGS START THE DIAGNOSTIC WITHOUT INITIALIZING CONTINUE FROM AN ERROR HALT RETURN TO XXDP+ MONITOR (XXDP+ OPERATION ONLY:) ACTIVATE A UNIT FOR TESTING (ALL UNITS ARE CONSIDERED YO BE ACTIVE AT START TIME DEACTIVATE A PRINT SlATlSTl(AL INFORMATION (IF IMPLEMENTED BY THE DIAGNOSTIC = SECTION 4.0) TYPE A LIST OF ALL DEV!CE INFORMAT ION TYPE THE STATE OF ALL FLAGS (SE SE(TION 2.3 CLEAR ALL FLAGS (SEE SE(!ION 2. A COMMAND CAN BE RECOGNIZED BY THE FIRST THREE CHARACTERS. YOU MAY, FOR EXAMPLE, TYPE ''STATM INSTEAD OF "'START", 2.2 SO SWITCHES THERE ARE SEVERAL SWITCHWES WHICH ARE USED TO MODIFY SUPERVISOR OPERATION. THESE SWITCHES ARE APPENDED TO THE LEGAL COMMANDS. ALL OF THE LEGAL SWITCHES ARE TABULATED BELOU WITH A BRIEF DESCRIPTION OF EACH, = IN THE DESCRIPTIONS BELOW, A DECIMAL NUMBER S DESIGNATED BY “‘DDDDD'". SWITCH EFFECT JTESTS:LIST EXECUTE ONLY THOSE TESTS SPECIFIED IN THE LIST. LIST IS A STRING OF IESI NUMBERS, FOR EXAMPLE = /TESTS:1:5:7-10. THIS LIST HlLL CAUSE TESTS 1,5,7.8,9.10 10 /PASS :DDDDD JFLAGS :FLGS BE RUN, OTHER TESTS WILL NOT BE RUN. EXECUTE ooooo PASSES (0DDDD = 1 TO 64000) ?SISE?$§6LISDSGLAGS. FLAGS ARE DESCRIBED /EOP:DDDDD REPORT END OF PASS MESSAGE AFTER EVERY JUNITS:LIST TES1/ADD/DROP ONLY THOSE UNITS SPECIFIED DDDDD PASSES ONLY. (DDDDD = 1 TO 64000) SEQ 0005 CZRJLAD RPO7 FCTINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 4-2 USER DOCUMENTATION IN THE LIST. * ST EXAMPLE = JUNITS:0:5:10-12 USE UNITS 0,5,10,11,12« l NUMBERS = 0-63) EXAMPLE OF SWITCH USAGE: START/TESTS:1=5/PASS:1000/E0P:100 ©m FFECT OF THIS COMMAND WILL BE: 1) TESTS 1 THROUGH S WILL BE TEC, 2) ALL UNITS WILL TESTED 1000 TIMES AND 3) THE euo of MESSAGES uxL ae PRINTED AFTER EACH 100 me F PASSES ONLY. H CAN BE RECOGNIZED BY THE FIRSY THREE CNARACI§RS XAMPLE, TYPE ''/TES:1=5"" INSTEAD OF ''/TESTS:1 VOU MAY, gghgflngs A TABLE THAT SPECIFIES WHICH SWITCHES CAN BE USED BY EACH TESTS START RESTART CONT INUE X X PROCEED DROP PASS FLAGS EOP UNITS X X X X X x i X Y X X ADD 2.3 X 1 x FLAGS FLAGS ARE USED TO SET UP CERTAIN OPERATIONAL PARAMETERS SUCH AS LOOPING ON ERROR. ALL FLAGS ARE CLEARED AT STARTUP AND REMAIN CLEARED UNTIL EXPLICITLY SET USING THE FLAGS SWITCH. FLAGS ARE ALSO CLEARED AFTER A START COMMAND UNLESS SET USING THE FLAG SWITCH. THE ZFLAGS COMMAND MAY ALSO BE USED TO CLEAR ALL FLAGS. WITH THE EXCEPTION OF THE START AND ZFLAGS COMMANDS, NO COMMANDS AFFECT THE STATE OF THE FLAGS; THEY REMAIN SET OR CLEARED AS SPECIFIED BY THE LAST FLAG SWITCH. FLAG EFFECT HOE HALT ON ERROR = CONTROL IS RETURNED 10 RUNTIME SERVICES COMMAND MODE LOOP ON ERROR LOE [ER® IBR* IXR# PRI PNT BOE UAM INHIBIT ALL ERROR REPORTS INHIBIT ALL ERROR REPORTS EXCEPT FIRST LEVEL ERROR TYPE, (FIRST LEVEL CONTAINS NUMBER, PC, TEST AND UNIT) INHIBIT EXTENDED ERROR aspoats (THOSE CALLED BY PRINTX MACRO'S) DIRECT MESSAGES 10 LINE PRINTER PRINT TEST uunaea AS TEST EXECUTES BELL'' ON ERRN UNATTENDED noue (NO MANUAL INTERVENTION) SEQ 0006 ISR INHIBIT STATIS?ICA% REPORTS (DOES NOT APPLY TO DIAGNOSTICS WHICH DO NOT SUPPORT STATISTICAL REPORTING) IDR INHIBIT PROGRAM DROPPING OF UNITS ADR EXECUTE AUTODROP CODE LOOP ON TEST EXECUTE EVALUATION (ON DIAGNOSTICS WHICH LOT EVL HAVE EVALUATION SUPPORT) * ERROR MESSAGES ARE DESCRIBED IN SECTION 3.1 SEE THE XXDP+ USER'S MANUAL FOR MORE DETAILS ON FLAGS. YOU MAY SPECIFY MORE THAN ONE FLAG WITH THE FLAG SWITCH. FOR EXAMPLE, T0 CAUSE THE_PROGRAM TO LOOP ON ERROR, INHIBIT ERROR REPORTS AND TYPE A "BELL'' ON ERROR, YOU MAY USE THE FOLLOWING STRING: /FLAGS:LOE: IER:BOE 2.4 HARDWARE QUESTIONS WHEN A DIAGNOSTIC IS STARTED, THE RUNTIME SERVICES WILL PROMPT THE USER FOR HARDWARE INFORMATION BY TYPING '‘CHANGE HW (L) ? YOU MUST ANSWER “'Y'' AFTER A START COMMAND UNLESS THE HARDWARE INFORMATION HAS BEEN “PRELOADED'' USING THE SETUP UTILITY (SEE CHAPTER 6 OF THE XXDP+ USER'S MANUAL). WHEN YOU ANSWER THIS QUESTION WITH A *'Y*', THE RUNTIME SERVICES WILL ASK FOR THE NUMBER OF UNITS C(IN DECIMAL). YOU WILL THEN BE ASKED THE FOLLOWING QUESTIONS FOR EACH UNIT, b 176700 ? 254 ? od UNIT 0 RPCS1 ADRS (0) DRIVE # (0) 0 ? THE 1ST QUESTION *‘RPCS1 ADRS'' REQUIRES THAT THE USER INPUT THE ADDRESS OF RPCS1 OF THE CONTROLLER WHICH IS CONNECTED TO THE DRIVE UNDER TEST. DEFAULT IS 176700 (OCTAL). THE ZND QUESTION “‘'VECTOR ADRS'' REQUIRES THE USER TO INPUT THE 5?25?8%?;L¥ECTOR ADDRESS OF THE RHXX CONTROLLER. DEFAULT IS THE 3RD QUES T 1 ON "BR LEVEL' REQUIRES THE USER TO INPUT THE CONTROLLER DEFAULT IS LEVEL 5. INTERRUPT PR I 0 R ITY LEVEL. THE &4TH QUEST | 8N “DRIVE #'' REQUIRES THE USER TO %PE% IFY THE DRIVE RIVE TO BE TESTED. DEFAULT IS 0 (OC AL). NUMBER OF THE 2.5 SOFTWARE QUESTIONS AFTER YOU HAVE ANSWERED THE HARDWARE QU ES T IONS OR A F1 ER A RESTART OR CONTINUE COMMAND, THE RUNTIME SERVICES WILL ASK FOR SOF TWARE PARAMETERS. THESE PARAMETERS WILL GOVERN SOME DIA 5 NOSTIC SPECIFIC SEQ 0007 CIRJLAD RPO7 FCINL TEST MACRO V04.00 1-JAN-B3 11:06:45 PAGE 4-4 USER DOCUMENTATION OPERATION MODES. YOU UXL% BE PROMPIED BY "cnaucg SW (L) 2, WISH TO CHMANGE ANY PARAMETERS, ANSWER BY TYPING QUESTIONS AND THE DEFAULT IF YOU ' v' . THE SOF TWARE VALUES ARE DESCRIBED AS FOLLOWS: CHANGE DRIVE PARAMETER (L) N ? If THE RESPONSE TO THE PREVIOUS QUESTION IS °N' THE FOLLOWING DRIVE PARAMETER QUESTIONS WILL BE SKIPPED AND PROGRAM WILL PROCEED AS NORMAL. A 'Y' RESPONSE WILL ALLOW THE USER TO ANSWER THE FOLLOWING DRIVE PARAHE!ER QUESTIONS. STARTING CYL (D) 0 2 *+(TESTS -6.6-3.11.13.14,17 18) INCREMENT CYL (D) STARTING TRX (D) TRK (D) ENDING 1 ? g ? 31 2 «+(TESTS ««(TESTS *+(TESTS 2) 2-7,11,13,16.,17) 3-6,11,14,16°18) ENDING CYL (D) INCREMENT TRK (D) STARTING SEC (D) SEC (D) ENDING DATA PATTERN (0) 629 ? e+ (TESTS 2-4.6,8,10,14,17,18) 1 2 «(TESTS 11 ig.{r) 0 2 --<15515 ,5=7.13) (TESTS 5.6,14,18) 49 030221 ? --<tesrs 16,17.18) If THE FIELD VERSION OF THIS PROGRAM IS BEING RUN, THE FOLLOWING QUESTION WILL BE ASKED. DO YOU WANT TO WRITE ANYWHERE ON MEDIA (L) N ? IF THE RESPONSE TO THE PREVIOUS QUESTION IS °'N', THE FOLLOUING QUESTION WILL BE SKIPPED AND PROGRAM WILL PROCEED AS NORMA A 'Y' RESPONSE WILL PRINT THE FOLLOWING WARNING MESSAGE TO THE OUTPUT DEVICE AND ASK THE FOLLOWING QUESTION. ! CUSTOMER DATA WILL BE OVERURIITEN $ CONTINUE i) ? *+(TESTS 17,18) IF_THE RESPONSE TO THE PREVIOUS QUESTION IS °N', THE FOLLOWING QUESTION WILL BE SKIPPED AND THE PROGRAM WILL NOT ALLOW TESTS 17-18 T0O 85525%85750 FOR TESTING. A 'Y' RESPONSE WILL ASK THE FOLLOWING USE RANDOM DATA PATTERNS FOR RANDO?Sugg}E TEST (L) N ? PERFORM READ HEADER & DATA DURING SEEKS (L) v ? (TESTS 2-6) TYPE TIME REPORTS (L) N ? N INHIBIT SOF TWARE TIMEOUTS (L) "(ALL TESTS) TIMING TESTS, STALL BETWEEN SEEKS RANDOM lNSYEAD OF 2 MSEC (L) N ? (TESTS 7-10,14,18) STALL AFTER EVERY DRIVE FUNCTION IN NON-TIMING TESTS (L) N ? CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE &5 SEQ 0008 USER DOCUMENTATION *+(TESTS 1-6,11,13,14-18) *USE RANDOM STALL TIMES (L) N ? **(TESTS 1-6,11,13,14-18) * THAT QUESTION IS ASKED WHEN YES *+ INDICATES NOT PART OF IS ANSWERED TO THE QUESTION. THE DIALOGUE. STALL DEFINITIONS THERE ARE TWO DISTINCT STALLS 1. SELECTABLE STALL, : VIA SOFTWARE (SW) DIALOGUE: 10. MSEC OR RANDOM (1=64 MSEC) STALL TIME AFTER EVERY DRIVE FUNCTION IN NON-TIMING TESTS. 2. NON=-SELECTABLE, 2 MSEC OR RANDOM STALL BETWEEN SEEKS IN TIMING TESTS A °N' RESPONSE TO ASSUHE 8. THRU 10. THE SUPERVISOR QUESTION ‘‘CHANGE SW (L)?"* WiLL THE ASSIGNED SOFTWARE (SW) DEFAULT CONDITIONS STARTING CYLINDER = 0, ENDING CVLINDER ENDING TRACK = 31, INCREMENT TRACK = = REPEATS = 1& 629, STARTING TRACK STARTING SECTOR = 0, . w SECTOR= 49, PATTERN = 030221, WRITE ON ALL CYLINDERS WITHIN SPE(: aZED LIMITS, RUN TEST 3 1 118. DO READ WEADER AND DATA COMMAND IN SEEK TESTS NO T ME REPORTS, SOFTWARE TIMEOUTS ENABLED. 2-6, NO STALL, NOTE IF RUNNING THE FIELD VERSION OF THIS PROGRAM, TESTS 17 AND 18 WILL ONLY BE RUN WHEN THE “‘WRITE DATA ANYWHERE ON THE MEDIA'TM OPERATOR. 2.6 OPTION IS SELECTED BY THE EXTENDED P-TABLE DIALOGUE WHEN YOU ANSWER THE HARDWARE QUESTIONS, YOU ARE BUILDING ENTRIES IN A TABLE THAT DESCRIBES THE DEVICES UNDER TEST. THE SIMPLEST WAY 10 auxuo THIS TABLE 1S TO ANSWER ALL QUESTIONS FOR EACH UNIT TO BE TESTED. IF YOU HAVE A MULTIPLEXED oevxce SUCH AS A MASS STORAGE CONTROLLER WITH SEVERAL DRIVES OR A COMMUNICATION DEVICE WITH SEVERAL anes THIS BECOMES TEDIOUS sxnce MOST OF THE ANSWERS ARE REPETITIOUS. TO ILLUSTRATE A MORE EFFICIENT METHOD, SUPPOSE YOU ARE TESTING A FICTIONAL DEVICE, THE XY11. SUPPOSE THIS DEVICE CONSISTS or A CONTROL MODULE WiTH EIGHT UNITS (SUB=DFVICES) ATTACHED TO IT THESE UNITS ARE DESCRIBED av THE OCTAL NUMBERS O THROUGH 7. THERE IS ONE HARDWARE PARAMETER THAT CAN VARV AMONG UNITS CALLED THE Q-FACTOR., THIS Q-FACTOR MAY BE O OR 1. BELOW IS A SIMPLE WAY 10 BUILD A TABLE FOR ONE XY11 Ultu EIGN! UNITS. # UNITS (D) UNIT 1 ? B<(R> 06.00 11:06:4545 PAGE PAGE & 4=6 1-JAN-83 11:06: CZRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN=-B3 USER DOCUMENTATION SEC 0009 (SR ADDRESS (0) ? 180000<(I> SUO'DEVICE # (0) ? CTOR (O) 0 ? 1R UNIT 2 CSR ADDRESS (0) ? 160000<(a> SUB-DEVICE # (0) ? Q=FACTOR (0) 1 ? 0<CR> UNIT 3 CSR ADDRESS (0) 2 160000<CR> # (0) ? 2<(R> SUB=DEVICE <CR> Q=F" TOR (0) 0 7 UNIT & (SR ADDRESS (0) ? # (0) SUB=-DEVICE Q=-FACTOR (0)0 7 160000<CR> 3<(R> <(R> UNIT § CSR ADDRESS (0) ? 160000<CR> 4&<CR> SUB-DEVICE # (0 7 Q=FACTOR (0) 0 ? <(R> UNIT 6 160000<CR> CSR ADDRESS (0) ? 5<(R> ? (0) # CE SUB-DEVI Q-FACTOR (0) 0 ? <(R> UNIT 7 CSR ADDRESS (0) ? 160000<CR> SUB-DEVICE # (0) ? 6<(R> 1<(R> Q=FACTOR (0) 0 ? UNIT 8 160000<CR> CSR ADDRESS (0) SUB-DEVICE # (0) ? 7<(R> <(R> Q-FACTOR (0) 1 ? NOTICE THAT THE DEFAULT VALUE FOR THE Q-FACTOR CHANGES WHEN A NON=DEFAULT RESPONSE IS GIVEN. BE CAREFUL WHEN SPECIFYING MULTIPLE UNITS! AS YOU CAN SEE FROM THE ABOVE EXAMPLE, THE HARDWARE PARAMETERS DO NOT VARY SIGNIFICANTLY FROM UNIT TO UNIT. NOT VERY EFFICIENT, THE PROCEDURE SHOWN 1S THE RUNTIME SERVICES CAN TAKE MULTIPLEUNIT SPECIFICATIONS HOWEVER. LET'S BUILD THE SAME TABLE USING THE HU TIPLE SPECIFICATION FEATURE. # UNITS (D) ? B<(R> UNIT 1 (SR ADDRESS (0) ? 160000<CR> SUB-DEVICE # (0) ? 0,1<(R> 0-FACTOR (0) 0 ? '1,0<(R> CIRJLAQO RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06.45 PAGE &4=7 USER DOCUMENTATION SEQ@ 0010 UNIT 3 CSR ADDRESS (0) ? 160200<CR> SUB=-DEVICE # (0) ? 2-5¢<CR> Q=FACTOR (0) 0 ? 0<CF> NIT 7 CSR ADDRESS (0) ? 1€0000<CR> SUB=DEVICE # (0) ? 6,7<CR> 0=FACTOR (0) 0 ? AS YOU CAN SEE 1<CR> IN THE ABOVE DIALOGUE, THE RUNTIME SERVICES WILL BUILD AS MANY ENTRIES AS IT CAN WITH THE INFORMATION GIVEN IN ANY ONE PASS THROUGH THE QUESTIONS., ARE BUILT SINCE IN THE FIRST PASS, TWO ENTRIES TWO SUB-DEVICES AND Q-FACTORS WERE SPECIFIED. THE SERVICES ASSUME THAT THE CSR ADDRESS IS 160000 FOR BOTH SINCE IT WAS SPECIFIED ONLY ONCE. BUILT. =" IN THE SECOND PASS, FOUR ENTRIES WERE 'THIS IS BECAUSE FOUR SUB-DEVICES WERE SPECIFIED. THE CONSTRUCT TELLS THE RUNTIME SERVICES TO INCREMENT THE DATA FROM THE FIRST NUMBER TO THE SECOND. IN THIS CASE, SUB=DEVICES 2. 3, & AND 5 WERE SPECIFIED. (IF THE SUB-DEVICE WERE SPECIFIED BY ADDRESSES, THE INCREMENT WOULD BE BY 2 SINCE ADDRESSES MUST BE ON AN EVEN BOUNDARY.) THE CSR ADDRESSES AND Q-FACTORS FOR THE FOUR ENTRIES ARE ASSUMED TO BE 160000 AND 0 RESPECTIVELY SINCE THEY WERE ONLY SPECIFIED ONCE. SPECIFIED IN THE THIRD PASS. THE LAST TWO UNITS ARE THE WHOLE PROCESS COULD WAVE BEEN ACCOMPLISHED SHOWN BELOW. # UNITS (D) ? IN ONE PASS AS B8<(R> UNIT 1 160000<CR> CSR ADDRESS (0) ? 0=7<CR> SUB-DEVICE # (0) ? Q=FACTOR (00 0 ? 0,1,0,,,.1,7<(R> AS YOU CAN SEE FROM THIS EXAMPLE, NULL REPLIES (COMMAS ENCLOSING A NULL FIELD) TELL THE RUNTIME SERVICES TO REPEAT THE LAST REPLY. 2.7 QUICK START=UP PROCEDURE (XXDP+) T0 START=UP THIS PROGRAM: 1. BOOT XXDP+ 2. GIVE THE DATE AND ANSWER THE LSI AND 50HZ (IF THERE IS A CLOCK) QUESTIONS 3. TYPE "R NAME'', WHERE NAME IS THE NAME OF THE BIN OR BIC FILE FOR THIS PROGRAM 4. TYPE ''START" 5. ANSWER THE “‘CHANGE HW'' QUESTION WITH *'v* SEQ 0011 CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 4-8 USER DOCUMENTATION 6. ANSWER ALL THE HARDWARF QUESTIONS 7. ANSWER THE "'CHANGE SW'* QUESTION WITH "N WHEN YOU FOLLOW THIS PROCEDURE YOU WILL BE USING ONLY THE DEFAULTS FOR FLAGS AND SOF TWARE PARAMETERS. THESE DEFAULTS ARE DESCRIBED IN SECTIONS 2.3 AND 2.5. 3.0 ERROR INFORMATION 3.1 TYPES OF ERROR MESSAGES THERE ARE THREE LEVELS OF ERROR MESSAGES THAT MAY BE ISSUED BY A DIAGNOSTIC: GENERAL, BASIC AND EXTENDED. GENERAL ERROR _MESSAGES ARE ALWAYS PRINTED UNLESS THE '“IER'’ FLAG IS SET (SECTION 2.3). THE GENERAL ERROR MESSAGE 1S OF THE FORM: TYPE NUMBER NAME ERROR MESSAGE TST NUMBER PC:XXXXXX ON UNIT NUMBER JWHERE; NAME = DIAGNOSTIC NAME TYPE = ERROR TYPE (SYS FATAL, DEV FATAL, HARD OR SOFT) NUMBER = ERROR NUMBER UNIT NUMBER = 0 = N (N IS LAST UNIT IN PTABLE) TST NUMBER = TEST AND SUBTEST WHERE ERROR OCCURRED PC:XXXXXX = ADDRESS OF ERROR MESSAGE CALL BASIC ERROR MESSAGES ARE MESSAGES THAT CONTAIN SOME ADDITIONAL INFORMATION ABOUT THE ERROR. THESE ARE ALWAYS PRINTED UNLESS THE “'IER'' OR '‘IBR' FLAGS ARE SET (SECTION 2.3), THESE MESSAGES ARE PRINTED AFTER THE ASSOCIATED GENERAL MESSAGE. EXTENDED ERROR MESSAGES CONTAIN SUPPLEMENTARY ERROR INFORMATION SUCH AS REGISTER CONTENTS OR GOOD/SAD DATA. THESE ARE ALWAYS PRINTED UNLESS THE "IER', “IBRTM OR "IXR'* FLAGS ARE SET (SECTION 2.3). THESE MESSAGES ARE PRINTED AFTER THE ASSOCIATED GENERAL ERROR MESSAGE AND ANY ASSOCIATED BASIC ERROR MESSAGES. 3.2 ERROR PRINTOUT THE ERROR PRINTOUT WILL CONTAIN A ONE LI g E ERROR DESCRIPTION FOLLOWED BY COLUMN HEADINGS AND COLUMNS OF REGIST R CONTENTS IN OCTAL. : EXAMPLE HRD CZRXXX ERR OOXXX CYL XxX. TSTXX ON UNITXX RPO7 ADDRESSING ERROR (IAE AOE) TRK XX. SEC XX, RPER2 SUBXX (HEX) XXXX DRIVE RPCS1 RPWC RPBA RPDA RP(CS2 RPDS RPOF RPDC RPCC RPER2 RPER3 RPEC1 RPEC2 OOOONE JOOOORX OO JOOENE XXXXAX XXXAXX XXXXXX RPSN RPMR1 RPDT RPDB RPLA RPERT RPAS XOOOOOE JXOOONC XOOOE XOOONEE XXXXXX XXXXAX XXXXXX OO OO JOOOOOC XN XOONEEE XXXXXX XXXXXX N ; ‘. PCXXXXX % CZRJLAD RPO7 FCTNL TEST MACRO ¥04.00 1-JAN=83 11:06:45 PAGE USER DOCUMENTATION GE 4=9 M SEQ 0012 THE FIRST LINE OF THE ERROR MESSAGE IS PRODUCED BY THE DIAGNOSTIC SUPERVISOR, THERE ARE SEVEN ITEMS REPRESENTED IN THE FIRST LINE OF OUTPUT, THEY ARE: 1) tn§ MAINDEC NUMBER, 2) THE TYPE OF ERROR 1€: WARD, DEVICE rutng ) THE ERROR MESSAGE NUMBER, 4) THE FAILING LOGICAL UNIT NUMBER, S) THE NUMBER OF THE FAILING TEST, 6) THE NUMBER OF THE FAILING SUB=TEST, FAILURE MESSAGE. 7) TME ACTUAL PROGRAM COUNT OF THE THE SECOND LINE PRODUCES INFORMATION ABOUT THE SPECIFIC FAILURE MODE. THE BALANCE OF THE ERROR REPORT CONTAINS REGISTER STATUS TO AID THE F.tE. IN FAULT DETECTLION AND POSSIBLE ISOLATION. 3.3 SPECIFIC ERROR MESSAGES INIT CODE ERRORS ON A START COMMAND OR ON A NEW PASS, THE DRIVE AVAILIBILITY IS CHECKED IN THE INIT CODE, BEFORE RUNNING THE TESTS. A DRIVE NOT AVAILABLE IS APPROPRIATELY REPORTED AND THE CURRENT PASS ABORTED FOR THAT UNIT: DRIVE N UNSAFE DRIVE N NON-EXISTENT DRIVE N OFF<-LINE DRIVE N NOT A RPO7 WHERE 'N' IS THE DRIVE NUMBER THAT FAILED NUMBERED ERROR LIST 1: RHXX CONTROL BUS PARITY ERROR MCPE=1 4: WRITE 2: 3: 5: 6: 7: 11: 12: 13: 14: 15: 16: 17: 20: 21: ¢2: 235: 24: 25: 26: 27: 30: 31: 32: RHXX DATA BUS PARITY ERROR MDPE=1 RHXX ILLEGAL CONDITIONS SET (NED,NEM,PGE ,MXF) CHECK ERROR DATA LATE ERROR DRIVE PROGRAMMING ERROR (PGE) LOSTS BIT CLOCK (LBC) WRITE CLOCK FAILS WRITE LOCK ERROR DATA ERROR (DCK) DRIVE BUS PARITY ERROR (DPE) ILLEGAL CONDITIONS SET CILF,ILR,RMR) ADDRESSING ERROR (1AE,AOE) SEEK ERROR (SKI,LCE) CLOCK (KW11=P) OVERFLOW IN TIMING TEST EARLY WARNING (EWN) READ AND WRITE HEAD FAILS DATA FORMAT BIT ERROR (FER) HEADER INFORMATION ERROR (HCE) DRIVE HAS BECOME NON-EXISTENT DRIVE HAS NOT RESPONDED TO PORT REQUEST SOFTWARE TIMEOUT ON THIS DRIVE FATAL MASSBUS PARITY ERROR (MCPE=1 OR PAR=1) OFFLINE OR UNSAFE DRIVE REQUESTED WRITE=READY UNSAFE (1 (1) (1 SEQ 0013 CZRJLAD RPO7 FCTINL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 4=10 USER DOCUMENTATION DC POWER UNSAFE INDEX UNSAFE PROCESSOR HANDSHAKE FAILURE DRIVE OFF=LINE OR NOT A RPO7 OPERATION INCOMPLETE (OPI) IMPROPER HEADER DATA ECC LOGIC FAILURE (M (2) MISC DRIVE ERROR RPER1 RPER2, RPER3 DRIVE TIMING ERROR (DTE) AD OVFL AOE NOT SET WHEN READING PAST LAST SECTOR HARD ERROR = N N SOFT ERROR = OM OF RPDS NOT SET ON OFFSET (TMMD OM OF RPDS NOT RESET ON RET CENTER (MD MOST OF THE NUMBERED ERRORS ABOVE WILL ALSO CAUSE A DUMP OF THE FORMAT BELOW, CONSISTING OF 2 PARTS, A BASIC, THEN AN EXTENDED ERROR MESSAGE, BOTH COUNTROLLED BY IBR AND IXR FLAGS: CYL XxX. DRIVE JOOOOKK RPER1 XOOOOOC RPOF X000 TRK XX. SEC xx. RPER2 (HEX) XXXX RPCS1 RPWC RPBA RPDA RPCS2 RPDS RPAS RPLA RPDB RPMR1 RPDT RPSN RPDC RPCC RPERZ RPER3 RPECT RPEC? X000 JOOOOC XXXXAN XXXXAN NXXXXX XXXXXX XOOOCC XN OO XXX XXXXNXX XXXXXX HO0OOOC KOO X XOOOOE XXXXXX XXXXXX EXCEPT]ONS: () DRIVE N (), DRV CYL TRK SEC XXX XXX XXX XXX GDCYL GDTRK GDSEC BDCYL BDTRK BDSEC XXX (3) XXX XXX XXX XXX XXX # OF OPERATIONS WITH A LOST REVOLUTION: XXXX OPERATIONS TIMED ALLOWABLE OPERATION TIME LIMIT MAX= XXXXX US (4) NO ADDITIONAL MESSAGES (%) TIMING TESTS 7, 14, 18: UNRECOVERABLE SEARCH ERROR ABORT TEST SEARCH FAILED AFTER 16 RETRIES ABORT TEST XXXX N LAST BLOCK TFR LBT NOT SET WHEN READING LAST SECTOR NN UNCORRECTABLE ECC _ERROR NN (HCRC) S NS HEADER CRC ERROR SEQ 0014 CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 4-11 USER DOCUMENTATION (6) TIMING TESTS B-10, 14, 18: POSITION ERROR: 3.4 ABORT TEST ERROR TYPE THE FIRST LINE OF ERRCR MESSAGES PRODUCED BY THE DIAGNOSTIC § UPERVISOR IDENTIFIES THE TYPE OF ERROR REPORTED. DIAGNOSTICS IN 3 CATEGORIES: 1. °SFT' = SOFT: THE FIRST LOST D'SC REVOLUTION IN THE ADDRESS MARK DETECTION TESTS. °'HRD' = HARD: ALL ERRORS, EXCE>T PEVICE FATAL ERRORS AND SOFT 2. 3. THEY ARE CLASSIFIED B Y THE ERRORS. 'DVC FTL' = DEVICE FATAL: AM FRROR THAT FAILS THE DEVICE; DEVICE NDT READY, NON-EXISTENT OR NCI AN RPO7, 4.0 PERFORMANCE AND PROGRESS REPORTS AT THE END OF EACH PASS, THE PASS COUNT IS GIVEN ALONG WITH THE TOTAL NUMBER OF ERRORS REPORTED SINCE THE DIAGNOSTIC WAS STARTED. THE "'EOP'* SWITCH CAN BE USED TO CONTROL HOW OFTEN THE END OF PASS MESSAGE IS PRINTED. SECTION 2.2 DESCRIBES SWITCHES. 5.0 TEST SUMMARIES TEST 1: RECAL TEST THIS TEST EXECUTES A RECALIBRATE COMMAND, THEN EXECUTES A READ HEADER AND DATA COMMAND TO VERIFY CCRRECT POSITION. NOTE 20 =M STS 2-6, SEEK POSITIONING ED VIA READ HEADER AND DATA UNSUPERSEDED BY SOF TWARE SEEK IN WHICH CASE GUE, G IS NOT VERIFIED. TEST 2: INCREMENTAL SEEK TEST THIS TEST EXECUTES FORWARD SEEKS TO ADVANCL THE FIRST(STARTING) CYLINDER ADDRESS TO THE LAST(ENDING) CYLINDER ADDRESS INCREMENTALLY. WHEN THE LAST(ENDING) CYLINDER IS REACHED, THE TEST IS REPEATED IN THE REVERSE DIRECTION. THE INCREMENT/DECREMENT VALUE IS 1 VIA SW DIALOGUE. BY DEFAULT, CHANGEABLE TEST 3: RANDOM SEEK TEST THIS TEST EXECUTES 1024, SEEK OPERATIONS RANDOMLY BETWEEN THE 2égsgsglRSY(S!ARllNG) CYLINDER ADDRESS AND LAST(ENDING) CYLINDER CIR RHX USER DOCUMENTATION . e CIRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 4-1 ' ¢ 2 vty TEST &: RECAL/RANDOM SEEK TEST THIS TEST EXECUTES A RECALIBRATE COMMAND, FOLLOWED BY A szl 10 A RANDOMLY SELECTED CYLINDER. THIS SEQUENCE IS REP EATED 10. TIMES. TEST 5: SEEK DIFFERENTIAL TEST THIS TEST CONSISTS 0F 3 SUBTESTS TO TEST THE WEAD POSITIONER AND SERVO SYSTEM RESPONSE TO 3 UNIQUE DIFFERENTIAL SEEK PROFILES: 1. 6 CYLINDER DIFFERENTIAL SEEK: CHANGE 10 7, LOGIC. BY ... FORSES A SLEW RAT TEST POSITIGNAL 3££xxuc FROM CYLINDER O T0 S5, 1 T0 6, 6264 10 629, 10 THE 2. 33 CYLINDER DIFFERENTIAL SEEK: WORST CASE 2555 OVERSHOOT TEST, FORCED BY SEEKING FROM CYLIND T e A LR it 11 i T 3. 400 CYLINDER DIFFERENTIAL SEEK: FORCES MAXIMUM ACCELERATION AND DECELERATION OF CARRIAGE ASSEMBLY, FORCED BY SEEKIN% FROM CYLINDER O TO 399, 1 T0 400, 2 10 401, ... 230 10 62 TEST 6: OSCILLATING SEEK TEST THIS TEST SHALL EXECUTE A SERIES OF SEEK OPERATIONS TO CAUSE AN OSCILLATING MOVEMENT OF THE HEAD POSITIONER. THAT MOVEMENT SHALL RESULT FROM SEEKING TO THE FOLLOWING PATTERN OF DESIRED CYLINDERS: FROM THE MAXIMUM DISTANCE SEEK OF CYLINDER O TO LAST(ENDING) CYLINDER (LC), FROM CYLINDER 1 TO LC=1, FROM CYLINDER 2 70 LC-2, ... DOWN TO THE MEDIAN CYLINDER, THEN, REVERSING THE ORDER OF THOSE SEEKS FROM THE MEDIAN CYLINDER CYLINDER O TO LC. BACK UP TO THE MAXIMUM DISTANCE SEEK OF NOTE THE TESTS NUMBERED 7-10., CONTAIN TIMING TESTS. THAT A KkW11P 14., 18 THEY REQUIR P=-CLOCK BE olNS!ALLE TESTS, THE MAXIMUM AND THE MINIMUM TIMES. AND THE AVERAGE SEEK TIME FOR EACH TEST ARE CHECKED AGAINST TOLERANCES GIVEN BY THE THE ENGINEERING SPECS. THE PROGRAM WILL PRINT THE MEASURED TIMES ONLY IF THEY ARE OVER THE TIMING TOLERANCES, PROVIDED THE PRINT WAS REQUESTED VIA SOTWARE (SW) IF A SYSTEM CLOCK IS NOT DIALOGUE., FOUND T0O BE PRESENT, TIMING TESTS WILL NOT BE EXECUTED. THE OPERATOR WILL BE NOTIFIED VIA A MESSAGE. CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 4=-13 .. USER DOCUMENTATION SEQ 0016 TEST 7: ROTATIONAL SPEED TIMING TEST THIS TEST ExEtUTES A seaacn TRACK FT AND SECTOR F COMMAND TO CYLINDER FC AS soon AS THE SEARCH OPERATION IS DONE, THE t:st SETS tu 8;1 EXECUTE ANOTHER SEARCH COMMAND WITH THE SAME auxx/lP aeclstea CONTENTS, THE tln; INTERVAL IS MEASURED AGAINSTA TOLERANCE OF 16.515 MSEC +=3%. REPEAT THIS SEQUENCE 10 TIMES. IN CASE ANY RECOVERABLE REAC ERROR EXISTS, THE PROGRAM WILL EXECUTE THE SEARCH COMMAND 16 TIMES, IF THE RETRY SEQUENCE FAILS THE PROGRAM WILL ARORT THE TEST, GENERATING A MESSAGE TELLING WHY THE PROGRAM WAS ABORTED. TEST 8: ONE CYLINDER SEEK TIMING TEST THIS TEST EXECUTES FORWARD SEEXK FROM THE FIRST(STARING) CYLINDER TO THE FIRST(STARTING) CYLINDER + 1 AND THE OPERATION IS TIMED AGAINST A TOLERANCE OF 5 MSEC.. AFTER EXECUTING THE TEST (VCLE THE FIRST(STARING) CYLINDER ADDRESS IS INCREMENTED BY ON fH1S PROCEDURE CONTINUES UNTIL THE REVERSE 0 fMIS SEQUENCE TWICE. FIRST(STARTING) CYL INDER ADDRESS REACHES 629 THE USER SPECIFIED ENDING CY LINDER THEN THE TEST IS REPEATED IN THE DIRECTION. CYLINDER SEEK TIME WILL 8 TYPE COMPUTED AND THE AVERAGE ONE REPORTED HHEN TIME REPORTS (L ) QUESTION IS RESPONDED TO IN THE AFFIRMATIVE. THE AVERAGE ' s om0 o G e e B Gr M G GO B S S G 63 S e On G e e o S -_Toeoeoeoeooeeee IS COMPUTED PER FORMULA: (AVG’ D e SEEK TIME FOR A SINGLE THE CYLINDER SEEK 629 + 629 WHERE TX IS THE SINGLE CYLINDER SEEK TIME. TEST 9: AVERAGE SEEK TIME MEASUREMENT THIS TEST WILL MEASURE THE AVERAGE SEEK TIME THE FOLLOWING CALCULATION: ' (AVG) D BY USING 2 X [ (T1 X 629)+(T2 X 628)+...4(7629 X 1)] e eaomeoememe s w s e e W S B R e W 6D e S YD G S 09 G e @ e e e ae e e e 629 X 629 : WHERE THE TX IS THE FORWARD (REVERSE) SEEK TIME FROM CYLINDER O TO CYLINDER THE X C(CYLINDER X TO CYLINDER 0). TOTAL NUMBER OF SEEKS EXECUTED. AVERAGE SEEK TIME TOLERANCE IS 23 THE NUMBER 2X629 IS MSEC. TEST 10: MAXIMUM SEEK TIMING TEST THIS TEST EXECUTES FORUARD SEEK FROM CYLINDER O TO _THE LAST(ENDING) CYLIND THEN A REVERSE SEEK FROM_ THE LAST(ENDING) CYLINDER 76OF CYLINDER O. BOTH SEEKS ARE TIMED AGAINST A TOLERANCE 46 MSEC A TOTAL NUMBLR OF 1024 SEEKS WILL BE ECUTED TO TIME(512 FORWARD, 512 REVERSE). CALCULATE THE MAXIMUM SEEK E CIRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 4=14 USER DOCUMENTATION 2 SEQ 0017 TEST 11: MID TRANSFER SEEK TEST THIS TEST EXECUTES READ DATA COMMANDS FOR ON THE FIRST (STARTING) CYLINDER, EVERY TRACK WITH WORD COUNT BEING SET 10 EQUAL A FULL TRACK PLUS ONE SECTOR. THIS SPIRAL READ DATA OPERATION, REQUIRING A MID-TRANSFER TEST ENSURES THAT EACH READ HEAD WORKS PROPERLY AND ALSO ENSURES THAT THE WORKS PROPERLY. SEEK, TEST 12: ERROR REGISTER BIT TEST EXECUTE A READ DATA COMMAND ON THE LAST USER ADDRESSABLE SECTOR, TESTING FOR THE ASSERTION OF LAST BLOCK TRANSFERRED (LBT) BIT OF THE STATUS REG RPDS. REISSUE READ ERROR (AOE) BIT OF THE ERROR REG. RPER1, DATA COMMAND TO LAST SECTOR WITH A WORD COUNT GREATER THAN 256 WORDS, TESTING FOR THE ASSERTION OF THE ADDRESS OVERFLOW TEST 13: OFFSET/RETURN TO CENTER LINE TEST VERIFY THAT THE OFFSET AND RETURN TO CENTER WORK PROPERLY. LINE COMMAND ISSUE AN OFFSET COMMAND, PROCESS THE ATTENTION INTERRUPT AND %gsgxal;OSF ggggas. VERIFY THE ASSERTION OF THE OFFSET MODE ISSUE A RETURN TO CENTER LINE COMMAND, PROCESS 'HE ATTENTION INTERRUPT AND CHECK FOR ERRORS, VERIFY THE RESETVING OF OM. TEST 14: RANDOM READ TEST / ADDRESS MARK DETECTIN TEST IF THERE IS NO P-CLOCK, THIS TEST RANDOMLY SELECTS A SECTOR, THEN EXECUTES A READ DATA COMMAND TO THIS SECTOR TO VERIFY THAT NO DATA TRANSFER ERROR OCCURS. REPEAT 1024 TIMES. fk'iHERE IS A P=-CLOCK, THE ADDRESS MARK DETECTION TIMING TEST VERIFIES THAT DATA CAN BE READ CORRECTLY WITHIN THE SAME REVOLUTION AS A SECTOR DETECTION. THE TEST RANDOMLY SELECTS A SECTOR, SEARCHES FOR THE PRECEDING LOGICAL SECTOR, THEN READS THE SELECTED SECTOR. THE TIME INTERVAL SEARCH DONE = READ DONE IS MEASURED AND CHECKED TO BE WITHIN THE AT SAME DISC REVOLUTION. REPEAT THIS SEQUENCE THE END OF THE TEST, AN ERROR MESSAGE SHALL 1024 TIMES. INDICATE THE NUMBER OF OPERATIONS WITH A REVOLUTION LOST, IF ANY. TEST 15: FE CYLINDER ADDRESS TEST THIS TEST EXECUTES READ-HEADER AND DATA COMMANDS TO VERIFY THE ADDRESSING OF SECTOR O ON ALL TRACKS OF THE FIRST FE CYLINDER, THEN EXECUTES AN EXPLICIT SEEK SECOND FE CYLINDER. TO ACCESS TEST 16: FE CYLINDER WRITE AND WRITE-CHECK TEST THIS TEST WILL WRITE ON THE FIRST FE CYLINDER FROM THE THE SEQ 0018 CIRJLAO RPO7 FCTINL TEST MACRO V04.00 1-JAN-83 11:06:45 PAGE 4-15 USER DOCUMENTATION FIRST(STARTING) TO THE LAST(ENDING) TRACK TO vsanrv THAT tns MWEQNMHEAAUHWM uu9%§ ERROR, THE TEST WRITES THE DEFAULT DATA PATTERN 030221 OR A USER SPECIFIED DATA PATTERN ONTO THE MEDIA, FOLLOWED BY EXECUTING A WRITE=CMECK COMMAND, THE TEST CHANGES THME DATA PATTERN TO ITS COMPLEMENT VALUE AND REPEATS THE TEST CYCLE. COUNT 1S SET TO DO TWO MALF TRACK DATA TRANSFERS. THE WORD TEST 17: WRITE TEST {F RUNNING THE FIELD VERSION OF THIS PROGRAM, THIS TEST IS ONLY RUN IF THE “WRITE DATA ANYWHERE ON THE MEDIA'* OPTION IS SELECTED QUESTIONS. BY THE OPERATOR, IN THE SOFTWARE PARAMETER THIS TEST WRITES DATA AND WRITE CHECKS DATA ON EVERY_ TRACK FROM THE FIRST(STARTING) TO LASTC(ENDING) TRACK OF THE FIRST (STARTING) CYLINDER FC AND THE LAST(ENDING) CYLINDER. THE WORD COUNT IS SET TO DO TWO HALF TRACK DATA TRANSFERS. TEST 18: RANDOM WRITE TEST /ADDRESS MARK DETECTION TEST IF RUNNING THE FIELD VERSION OF THIS PROGRAM, THIS TEST IS ONLY RUN IF THE "WRITE DATA ANYWHERE ON THE MEDIA'* OPTION IS 35%%%}535 BY THE OPERATOR, IN THE SOFTWARE PARAMCTER IF THERE IS NO P-CLOCK, THIS TEST WRITES_ DATA AND HRlTE CHECKS DATA RANDOMLY ON THE MEDIA, WITH A TRANSFER SIZE OF SECYOR 1024 TIMES. THE DATA PATTERN IS RANDOM OR A SPECIFIED PATTERN, If THERE IS A P-CLOCK, THE TEST ADDRESS_ MARK DETECTION TIMING VERIFIES THAT DATA CAN BE WRITTEN CORRECTLY WITHIN THE SAME REVOLUTION AS A SECTOR DETECTION. THE TEST RANDOMLY SELECTS A SECTOR, SEARCHES FOR THE PRECEDING SECOND LOGICAL SECTOR, THEN WRITES THE SELECTED SECTOR. THE TIME INTERVAL SEARCH DONE = WRITE DONE IS MEASURED AND CHECKED TO BE WITHIN THE SAME DISC REVOLUTION. ON THE SELECTED SECTOR. A WRITE CHECK DATA IS THEN ISSUED REPEAT 1024 TIMES. AT THE END OF THE TEST, AN ERROR MESSAGE SHALL INDICATE THE NUMBER OF OPERATIONS WITH A REVOLUTION LOST, IF ANY, a{g#hae RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 6 B .REM 3§ VERSION (CZRJL=A=0) 1. THIS VERSION IS THE STARTING POINT FOR CX DIAGNOSTIC SUPPORT OF THE RPO7 DISK DRIVE. SEQ 0019 SEQ 0020 RPO7 FCTINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 7 ;*LAST REVISION 01-JAN-83 TITLE .SBTTL CZRJLAO RPO7 FCTNL TEST PROGRAM HEADER .ENABL . 002000 AMA,ABS = 2000 M SNONOCOOOS T NN L OCN [ T g p—— O = =NIWO O HrNNNOW v purd o o0 o [=lelelelelelelelelalelelelele) PORONUNIN b e b b d e o d o o [el=lelelelelelelolalelelel4 R RR : ; 000 000 101 060 000001 000060 041026 041144 002172 002204 074614 000000 000000 000000 000000 002124 000000 002046 000000 THE PROGRAM HEADER IS THE INTERFACE BETWEEN THE DIAGNOSTIC PROGRAM AND THE SUPERVISOR. LSNAME : : LASCII LASCII LASCII LASCII 70/ 72/ /R/ 73/ BYTE BYTE BYTE O 0O O LASCII /A/ LASCIT 70/ WORD TSPTHV .WORD 60 .WORD LSHARD .WORD LSSOFT LWORD LSHW LWORD L$SW .WORD LSLAST LWORD O MWORD O LWORD O .WORD O LWORD O :DIAGNOSTIC NAME LASCII 7L/ LSREV:: LS$DEPO: : LSUNIT:: LSTIML:: LSHPCP: : L$SPCP:: LSHPTP:: LS$SPTP:: LSLADP:: L$STA:: L$CO:: LSDTYP:: LSAPT:: LS$DTP:: sREVISION LEVEL ;0 ;NUMBER OF UNITS :LONGEST TEST TIME ;POINTER TO H.W. QUES. :POINTER TO S.W. QUES. :PTR, T0 DEF. H.W. PTABLE ;PTR, T0 S.W, PTABLE :DIAG. END ADDRESS :RESERVED FOR APT STATS :DIAGNOSTIC TYPE :APT EXPANSION :PTR, TO DISPATCH TABLE LSDISPATCH .WORD :DIAGNOSTIC RUN PRIORITY LSPRIO:: - LSENV]:: LSEXP1:: :FLAGS DESCRIBE HOW IT WAS SETUP sEXPANSION WORD CZRJLAD RPO7 FCTNL TEST MACRO V04.00 1-JAN=B3 11:06:45 PAGE 7-1 I 2 PROGRAM MEADER 8‘§ oé 082 LSMREV SVC REV AND EDIT # BYTE CSREVISION 8 S o LSEF:: 051 0 03¢ 900000 80 8 6 6 02060 0206 062 002064 00%064 002066 002 00207 003020 000900 000000 000000 002070 00207 002072 002074 002074 002076 002076 002100 002100 002102 002102 002104 002104 002106 002106 000000 002110 002112 002112 002114 002114 002116 002116 002120 002120 026502 002110 325 000000 000000 000000 003026 104035 000000 025460 026504 025452 000000 000000 000000 LSSPC:: LSDEVP:: LSREPP: : LSEXP4:: LSEXPS:: LSAUT:: LSDUT:: LSLUN:: LSDESP: : LSLOAD: : LSETP:: LSICP:: L$CCP:: LSACP:: LSPRT:: LSTEST:: LSDLY:: LSHIME:: BYTE o CSEDIT ‘woRs © MWORD O .WORD LSDVIYP WORD O WORD O WORD O WOKD O WORD O WORD O .WORD LSDESC EMT ESLOAD WORD O .WORD LSINIT .WORD LSCLEAN .WORD LSAUTO .WORD LS$PROT .WORD O WORD O .WORD O :DIAG. EVENT FLAGS : POINTER TO DEVICE TYPE LIST :PTR. TO REPORT CODE :PTR, TO ADD UNIT CODE :PTR. TO DROP UNIT CODE :LUN FOR EXERCISERS TO FILL ;:POINTER TO DIAG. DESCRIPTION :GENERATE SPECIAL AUTOLOAD EMT :POINTER TO ERRTBL ;PTR. TO INIT CODE ;PTR. TO CLEAN-UP CODE :PTR. 70 AUTO LODE :PTR. TO PROTECT TABLE ;TEST NUMBER :DELAY COUNT :PTR. TO HIGH MEM SEQ 0021 DISPATCH TABLE 83 11:06:45 PAGE 8 é SBTTL DiSPATCH TABLE CZRJLAO RPO7 FCTNL TEST MACRO V04.00 1-JAN=83 11:06:45 PA J 2 A 4 : THE DISPATCH TABLE CONTAINS THE STAR: ING ADDRESS OF EACH TEST. ; : 17T 1S USED BY THE SUPERVISOR TO DISPATCH TO EACH TEST. 8 002122 002124 002124 0021 000022 0021 0021 oo§14g 002142 002144 002146 002150 002152 002154 002156 002160 002162 0021 002166 80 1 021 18 026610 026660 LMORD LSDISPATCH:: MORD .WORD 8 1 7694 0277 5 03105 032040 °3§ZS° 033632 034036 034264 034454 035772 036250 036636 037160 LMORD .WORD MORD LMORD MORD MWORD MORD .WORD MORD LMORD WORD MWORD LMWORD LWORD 15 tg T T8 19 T10 T1 r1§ T T14 T15 T16 T17 T18 8 9766 2;2 MORD LMWORD M tg T T4 SEQ 0022 CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 9 DEFAULT X HARDWARE P-TABLE % LSBTTL . SEQ 0023 DEFAULT HARDWARE P=TABLE s4e 4 ; 9 ; IS IDENTICAL TO THE STRUCTURE OF THE HARDWARE P=-TABLES. b) a 9 002170 00217 00217 10 002172 11 002174 1§ 002176 }‘ 002200 20 21 002202 THE DEFAULT HARDWARE P-TABLE CONTAINS DEFAULT VALUES OF s THE TEST=DEVICE PARAMETERS. THE STRUCTURE OF THIS TABLE LJ 000004 176700 000254 000240 LSHW: DFPTBL:: 000000 L10000: LWORD .WORD .WORD .WORD .WORD L10000-L$HW/2 176700 254 240 0 :RPCS1 BASE REGISTER ADDRESS :VECTOR ADDRESS sBR LEVEL S DEVICE :DRIVE NUMBER .SBTTL SOF TWARE P-TABLE s 4 NN (=l{=l=1=} NN ~N W Z83N8 RNSFrRoSRRRR wleleleleleles] : PARAMETERS THAT CAN BE CHANGED BY THE OPERATOR. (=1=] [=]=] VIS NN = OV SEQ 0024 : THE SOF TWARE P-TABLE CONTAINS THE VALUES OF THE PROGRAM NPV PONININININD = i cd i ed e cd e e NN =OO OO NO NS WNN) = CIR%LAO RPO7 FCINL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 10 SOF TWARE P=-TABLE 2 26 002234 gg 002235 29 002236 30 31 38 39 002240 LSSW:: SFPTBL:: FC: LC: IC: FT: «WORD L10001=-L$Sw/2 MORD O MORD JWORD 629. 1 -WORD g IT: FS: LS: PAT: WORD WORD LWORD LWORD REDHDR: TIMTYP: .BYTE .BYTE LT: TIMSTL: STALLF: STALRD: STOFLG: JWORD .BYTE ;FIRST CYLINDER :LAST CYLINDER : INCREMENT CYLINDER sTESTS: 2<4,6-8,11,13,14,17.,18 STESTS: s-a.e.a-10.:c.17,la STESTS: SFIRST TRACK STESTS: §-7.11.13.16.17 1 O 49, 030221 : INCREMENT TRACK SFIRST SECTOR :LAST SECTOR :WRITE DATA PATTERN STESTS: STESTS: :TESTS: sTESTS: 1 1 0 ;READ HEADER AND DATA CMD FLAG = DEFAULT: YES = SEEK TESTS 2-6 ;TYPE TIME = DEFAULT: YES = TIMING TESTS 7-10,14,18 ;TIMING TESTS,STALL BETWFEN SEEKS: RANDOM INSTEAD OF 2 MSEC .BYTE 0 .BYTE .BYTE 0 0 31, SLAST TRACK STESTS: 3-6.11.14.16~18 11,16,17 2,5-7.13 5.6,14,18 16-18 (WORST CASE) ;STALL FLAG: AFTER EVERY DRIVE FUNCTION = DEFAULT: NO ;NON=TIMING TESTS 1-6,11,14=18 ;RANDOM STALL FLAG = DEFAULT: NO = PREREQUISITE: STALLF=1 :SOFTWARE TIMEOUT INWIBIT FLAG = DEFAULT: NO = ALL TESTS RANPAT: WRTALL: .BYTE .BYTE 0 0 ;RANDOM WRITE PATTERN = DEFAULT: NO - TEST: 18 :ggg}g D?;A16LL OVER THE MEDIA FLAG = DEFAULT: NO CHANGE: .BYTE 0 :CHANGE DRIVE PARAMETER FLAG L10001: s 000340 000100 bt bt Beg B0 (=] o &H o o (=] mun nn " el %] oo = = IS mr N mMmm T2 WNN < TMm ) ) ] ) ) s B 0 —f g s 0t b0 o o] o o o bt bt Bt Bt OO0O0O0O0O0O0O0O0O O=NIWH VOO o o o s B DDODDODDDDMDMED Bt nunnnuunnnnn O =2NIWSH VIO YOO O LU LTI ]o ot b bt oy B Dt D Bt Bt O b Pt 2N =N =N IS =) S = NN LU LI U O LTI O T O L T O [ T [T [=l=l=lelelelelelele e O =NWS VIO N OVO =MWV ) o —y = —— et ——— Bt bt Bt Bt B ) o B — .SBTTL c=-n 2200 VS ODWN EMOM= DE20DVPD> H =D N s - -TmTmmT IT — e NN NN OHOoHrON (=lelelelele] 000034 j=lelele el NOWS VNN 000040 s 000002 000001 e Y 001000 s 000001 PRlORl!V LEVEL DEFINITIONS cte s MMMMMeccscs .. MDDPDDDDODDs- DODODODDDODDDOEDDODMDe. oo se o o o o o &»H 100000 VOVOVOO Ve VDODDDDOD ~N » o o o o NS WO ON VIV LS < eq — g= IRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 11 EQUATES SECTION SEQ 0025 GLOBAL EQUATES SECTION i : THE GLOBAL EQUATES SECTION CONTAINS PROGRAM EQUATES THAT : ARE USED IN MORE THAN ONE TEST. DIFINITIONS OR SUPERVISOR TO PROGRAM COMMUNICATION : . ¢ : START COMMAND WAS ISSUED * CONTINUE COMMAND WAS ISSUED RESTART COMMAND WAS [SSUED ¢ A NEW PASS HAS BEEN STARTED : A POWER-FAIL/POWER=UP OCCURRED CZRJLAO RPO7 FCINL TEST MACRO V04.00 1-JAN-83 11:06:45 PAGE 11=1 GLOBAL EQUATES SECTION 000040 000000 PRI01== &0 PRI00== (¢ SOPERATOR F'.AG BITS 0004 EvL== 0002 00040 ADR== IDU== 000018 000100 000200 LOT== [SR== UAM== 880400 BOE== 002000 004000 010000 020000 040000 PR]== IXE== IBE== 1ER== LOF== 1900 100000 PNT== HOE== 4 18 2 &0 108 20 400 1000 2000 4000 10000 20000 40000 100000 N 2 SEQ 0026 CIRJLAD RPO7 FCTINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 12 8 3 SEQ 0027 RHXX REGISTERS 1€ sz 1 8 850000 MCFe == 20000 100000 MSSC o 00 1000 RDY Al Al ;PSEL TRE sz == == == : INTERRUPT ENABLE 2 400 1808 g 0 == 40000 == 100000 (BIT #6) :READY (BIT #7) :HIGH ORDER BUS ADDRESS BIT (BIT #8) *MIGH ORDER BUS ADDRESS BIT (BiT #9) ;PORT SELEC #10) :MASSBUSS :TRANSFER ERROR (BIT #13) ERROR (BIT #14) :SPECIAL CONDITION (BIT #15) sWORD COUNT REGISTER (RPWC) s (EACH BIT IS CALLED BY BIT NUMBER) ;BUS ADDRESS REGISTER (RPBA) s(EACH BIT IS CALLED BY BIT NUMBER) ;NON EXISTENT DRIVE (BIT #12) ;UNIBUS PARITY ERRCR (BIT #13) ;WRITE CHECK ERROR (BIT #14) :DATA LATE (BIT #15) :CONTROL AND STATUS 1 REGISTER. (#00) =z 1 Eri == 10 DVA == 4000 et 004000 :F& ‘S sz 20 == 40 A :PROGRAM ERROt (BIT #10) shOM EXISTENT MEMORY (BIT #11) RPO7 REGISTERS ;G0 -~~~ OR (BIT #8) ;MASS BUS PAR (BIT #9) ERROR ER sMISSED TRANSF sDATA BUFFER REGISTER (RPDB) :(EACH BIT IS CALLED BY BIT NUMBER) .SBTTL m— sOUTPUT READ 8000 O LT 4) [=i=d{=d=l=l=l=] T T T T O 00~ 100000 BIT (BIT #3) [=l=i=l=l=1=1=1=1] T T T U T U T O T T T o o - 000400 00 T O 000040 et BN = BN =2 BN = SN = BN = COO0O0O0OO0OO0O0O0O0O0O0O T L T TR TR T T TR ;CONTROL AND STATUS REGISTER 2 (RP(CS2) w NN N N N N AN N NN PO RO A PO AU NI ROINO N = b RHXX RECISTERS ;CONTROL AND STATUS REGISTER 1 (RPCST) cd b e b b e b gmgww 2 OO 00 NO VI WM = O 000 OV AN = O O 00 NN 0N = .SBTTL CIR GLO RPO7 REGISTERS - CIRJLAD RPO7 FCTINL TEST MACRO v04.00 1-jAN-B3 11:06:45 PAGE i 12-1 Cc 3 e 8 9 ;DRIVE STATUS REGISTER (RPDS) (#01) 22 6 [ 65 67 68 69 70 7 7 7 ;g 000001 888002 004 002000 040000 100000 79 80 000001 000002 83 000020 91 92 93 32 004 000040 000100 000200 00400 001000 002000 004000 010000 020000 040000 100000 96 3; 133 101 s WRL == 4000 :DRY :DPR PGM LST 1 2 & 100 == 200 == 400 == 1000 - 2800 :DRIVE READY (BIT #7) :DRIVE PRESENT (BIT #8) :PROGRAMABLE (BIT #9) SLAST SECTOR TRANSFERRED (BIT #10) SWRITE LOCK (BIT #11) == 10000 SMEDIUM ON-LINE (BIT #12) == 40000 SCOMPOSITE ERROR (BIT #14) :PIP == 20000 ATA == 100000 £RR ;OFFSET MODE ‘ERROR WARNING SSECTOR INTERLEAVE MODE IS ENABLED TH. W.W SVOLUME VALID (BIT #6) :POSITIONING OPERATION IN PROGRESS (BIT #13) SATTENTION ACTIVE (BIT #15) :ERROR REGISTER #01 (RPER1) (#02) ;; 84 85 86 87 B 89 == == == == sMOL 76 81 82 oM EWN I sV ILF ILR == 1 == 2 FER == 20 RMR :PAR WCF ECH HCE HCRC AOE 1AE WLE DTE OP] UNS DCK ;ILLEGAL FUNCTION (BIT #0) SILLEGAL REGISTER (BIT #1) == &4 == 10 *REGISTER MODIFICATION REFUSED (BIT #2) SPARITY ERROR (BIT #3) == 40 == 100 == 200 == 400 == 1000 == 2000 == 4000 == 10000 == 20000 == 40000 == 100000 SWRITE CLOCK FAIL (BIT #5) SECC HARD ERROR (BIT #6) :HEADER COMPARE ERROR (BIT #7) :FORMAT ERROR (BIT #4) SHMEADER CRC ERROR (BIT #8) :ADDRESS OVERFLOW ERROR (BIT #9) SINVALID ADDRESS ERROR (BIT #10) SWRITE LOCK ERRGR (BIT #11) :DRIVE TIMING ERROR (BIT #12) SOPERATION INCOMPLETE (BIT #13) SDRIVE UNSAFE (BIT #14) :DATA CHECK ERROR (BIT 15) ;MAINTAINABILITY REGISTER #01 (RPMR1) (#03) 100000 DMD == 100000 :DIAGNOSTIC MODE }8% sATTENTION SUMMARY PSEUDO-REGISTER (RPAS) (#04) 104 105 106 107 108 109 110 }}; :ATO SATY SAT SAT PATG SATS AT6 SAT7 113 114 == 1 == 2 == 4 == 10 == 20 == 40 == 100 == 200 :DEVICE 0 (BIT #0) SDEVICE 1 (BIT #1) :DEVICE i (BIT #2) SDEVICE 3 (BIT #3) SDEVICE & (BIT #4) :DEVICE S (BIT #5) :DEVICE 6 (BIT #6) SDEVICE 7 (BIT #7) ;DESIRED SECTOR/TRACK ADDRESS REGISTER (RPDA) (#05) &(f my S =3 @I 23 D il D D ) e ;:DRIVE TYPE REGISTER (RPDT) (#06) i e e -‘OomwgmzwfvdcomwowbwwdoomwOwwaaooaNg NRORZEE® D D D e ) D D i ;D10 D106 == 10 == 20 sDRIVE TYPE NUMBER BIT & sJRIVE TYPE NUMBER BIT 5 == 200 == 400 == 4000 == 20000 ;DRIVE TYPE NUMBER BIT 8 ;DRIVE TYPE NUMBER BIT 9 ;:DRIVE REQUEST REQUIRED (BIT #11) sMOVING HEAD (BIT #13) == & D105 :DYO? == 40 == 100 : TAP == 40000 == 100000 ;DRIVE TYPE NUMBER BIT ;DRIVE TYPE NUMBER BIT 9 ;DRIVE TYPE NUMBER BIT sTAPE DRIVE (BIT #14) ;NOT BLOCK ADDRESSED (BIT #15) ;LOOK~AHEAD REGISTER (RPLA) (#07) B PN :SC0 ;501 :SC; :SC :SC6 == 100 == 200 == 400 == 1000 == 2000 ;RPO7 ERROR REGISTER #02 (RPER2) sSECTOR COUNT FIELD O sSECTOR COUNT FIELD 1 sSECTOR COUNT FIELD % sSECTOR COUNT FIELD 3 ;SECTOR COUNT FIELD &4 (BIT #6) (BIT #7) (BIT #8) (BIT #9) (BIT #10) (#10) 000400 WRYUNS == 400 sWRITE OFF TRACK CENTER (WRITE UNSAFE) 004000 010000 RWU2 RWU3 == 4000 == 10000 sW/R UNSAFE ERROR 2 (READ OR WRITE ERROR) sW/R UNSAFE ERROR 3 (WRITE ERRGR) 001000 002000 100000 WOR RWU1 PGE == 1000 == 2000 == 100000 sWRITE OVERRUN ERROR sW/R UNSAFE ERROR 1 (WRITE ERROR) :PROGRAM ERROR ;RPO7 ERROR REGISTER #03 (RPER3) P B p——g— g ;DRIVE TYPE NUMBER BIT 1 :DRIVE TYPE NUMBER BIT § +NBA B S OO O VWIS 8BS P NNO OO0 == 1 == 2 ;D10 ;D708 :DRQ sMOH ) D D PR D100 :0781 DT i s D - d D D d i e SEQ 0029 ;(EACH BIT IS CALLED BY BIT NUMBER) WA N NN AL NN NN N 00 NO VS AN = O 00 NNV P 3 ~ Rg(luL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 12-2 ’ 000010 020 000040 000100 000200 000400 001000 002000 040000 100000 : DGE DPE SDF DCu IXU pv(C PHF LCE LBC SK1 BSE == 1 == 10 == 20 == 40 == 100 == 200 == 400 == 1000 == 2000 == 40000 == 100000 sDIAGNOSTIC COMMAND ;DATA PARITY DURING WRITE sSERDES DATA FAILURE :DC LOW UNSAFE s INDEX PULSE UNSAFE ;DRIVE CHECK s TACH CALIBRATE FAILURE sLOST CYLINDER (POSITIONER IN GUARD BAND) sLOST BIT CLOCK sSEEK INCOMPLETE :BAD SECTOR ;OFFSET REGISTER (RPOF) (#11) 002000 HC] == 2000 ;HEADER COMPARE INHIBIT (BIT #10) az: CZRJLAD RPO7 FCTINL TEST MACRO V04.00 1-JAN-B83 11:06:45 PAGE RPO7 REGISTERS zr% 17 };g 004000 01000 10000 176 177 };3 CMOD 180 185 }gg 188 193 :ECC PATTERN REGISTER (RPEC2) (#17) }gg ;:(EACH BIT IS CALLED BY BIT NUMBER) 196 }gg 000101 LSBTTL RPO7 DRIVER COMMANDS NOOP == 101 ILLCMD == 143 :SEEK sRECALIBRATE :DRIVE CLEAR sRELEASE :OFFSET :RETURN TO CENTER LINE :READ IN PRESET :SEARCH :DIAGNOSTIC MODE : ILLEGAL COMMAND == 153 == 161 == 163 == 165 == 171 == 173 == 175 :WRITE CHECK HEADER AND DATA :WRITE DATA :FORMAT TRACK :WRITE TRACK DSECRIPTOR :READ DATA :READ HEADER AND DATA :READ TRACK DSECRIPTOR 200 201 202 203 204 205 206 207 208 000105 000107 000111 000113 000115 000117 000121 000131 000135 210 000151 WwCKD 177400 SCTRWC 000143 000153 000161 000163 000165 000171 000173 000175 SEEK RECAL DRVCLR RELSE OFFSET RTC READIN SEARCH DIAG WCKHD WRTDAT FMTRK WRTTD RDDAT RDHD RDTD == == == == == == == == == :NO OPERATION 105 107 111 113 115 117 121 131 135 :WRITE CHECK DATA == 151 == =256. :DEFAULT WORD COUNT :THE FOLLOWING ARE SPECIAL DRIVER COMMANDS (NOT CONTROLLER COMMANDS) %5} == 141 223 000141 GETREG 225 226 227 228 000145 000147 == 145 MAINT SETFORM == 147 224 :COMMAND MODIFIER BIT (BIT #13) ;ECC POSITION REGISTER (RPEC1) (#16) ;(EACH BIT IS CALLED BY BIT NUMBER) 192 558 == 100000 ;ERROR CORRECTION CODE INWIBIT (BIT #11) :FORMAT BIT (BIT #12 ;SERIAL NUMBER REGISTER (RPSN) (#14) ;(EACH IS CALLED BY BIT NUMBER) 189 }3? 21 212 213 214 215 1€ g}; == 4000 == 10000 SEQ 0030 :CURRENT CYLINDER ADDRESS (RPCC) (#13) ;(EACH BIT IS CALLED BY BIT NUMBER) 184 209 -_e 3 :DESIRED CYLINDER ADDRESS (RPDC) (#12) s(EACH BIT IS CALLED BY BIT NUMBER) 181 }gg 199 ECI FMT16 12- :READ RPCS1, RPWC, RPBA, RPDA AND STORE THEM AT ADDRESS :POINTED TO BY 'DPB'+6. ;WRITE MAINTENANCE REGISTER RPMR1 :SET FORMAT PSEUDO-CMD: WRITE OFFSET REGISTER. SETFORM :FIRST READS RPOF, EXTRACT ITS LO BYTE, CHANGES ITS Wl B :PE? 'DPB', MERGES BOTH BYTES TO WRITE RPOF, HENCE SETF RPO7 DRIVER COMMANDS 2%9 339 ;WRITES RPOF WITH I 8 YTE PER "DPB*, LO BYTE UNCHANGED. THE s COMMAND OFFSET DO S T HE OPPOSITE. SEQ 0031 e CZRJLAD RPO7 FCINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 12-4 C SEQ 0032 NL TEST MACRO v04.00 1-JAN-B83 11:06:45 PAGE 13 1= .SBTTL GLOBAL DATA SECTION : THE GLOBAL DATA SECTION CONTAINS DATA THAT ARE USED S¥RN3& F SVSTAT:: .WORD 0 001165 001166 000037 000061 NC1:: NC2:: NT1:: NS1:: 6;9. g 0. 1. 49, 000000 000000 0000 000000 000 000000 CYL.RD:: .WORD TRK.RD:: .WORD SEC.RD:: .WORD CYL.DS:: .WORD SEC.DS:: .WORD TRK.DS:: .WORD O O O O O O TIM,UP:: O O O O 0,0 O 000001 000002 000004 000010 000020 000040 000100 000200 0o R R R R rororo O AROPFRSF NS OO 000000 000000 000000 000000 00000 000000 000000 000000 000000 163400 000012 000012 coocooe 0000 000000 0000 00000 000000 000000 W 000000 NN AN N AN AN AN N 1 ITCNT:: WORD ISRCNT:: .WORD 8 XTIMES:: .WORD 10264. DOTWO:: .WORD O CLKSTA:: .WORD 8 BYPASS:: .WORD NN WNNNNNN 00001 00000 088008 00000 000000 000200 83888883388 S8 RO RORIRIRORD OO o wWronN S8383888 833838288 =3=3i=3=4 § ~N ; IN MORE THAN ONE TEST. ~NOOOOrWYWNN oMo SN jol=l=] NONURLNLNLNLNOND SOOOO 3 350 [elelelelelelels] VISR SN NN D N A NN =O VD oo~ B SEHRGRISS NN NI N RD NI NI NINU N b b b b cd R WARAN L S NIO NB N R L 205 D 00 N 1~ i) — O O 00 IO W £~ Jee 000000 .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD WORD TIM.DN:: 000000 .WORD LWORD .WORD .WORD WORD .WORD TIM.PT:: .WORD WCEFLG:: .WORD DELTA:: .WORD TRKWC:: .WORD STALLY1:: .WORD STALL2:: .WORD :BIT TABLE BITS:: .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD O O O O 0,0 O O O O =<256.25.> 10. 10. BITO00 BIT01 8!!0% BIT0 BIT04 BITOS BIT06 BIT07 ;TEST ITERATION COUN : INTERRUPT SERVICE COUNTER STEST ITERATION COUNT; TESTS 14. & 18. *USED TO FORCE TWO ITERATIONS OF AN OPERATION SCLOCK STATUS (NO CLOCK= 0,KW11=P= 1 OR KWllepL= =1 :BYPASS ROUTE ADR; SET IN CALL ERRABO SCALLERS; CALL.A/B7C, DRVCAL, SRCHOO. *STATUS/ERROR INDICATOR IS; SAVED HERE ON AN ERROR :LAST PHYSICAL CYL SFIRST FE (VL SLAST PHYSICAL TRK SLAST PHYSICAL SEC ;CYLINDER READ :TRACK READ SSECTOR READ :CYLINDER DESIRED *SECTOR DESIRED :TRACK DESIRED ;MINIMUM TIME INUMBER OF COUNTS BELOW MIN. LIMIT SMAXIMUM TIME *NUMBER OF COUNTS ABOVE MAX. LIMIT STOTAL TIME OF ALL SEEKS *NUMBER OF SEEKS PERFORMED ;MINIMUM TIME ‘NUMBER OF COUNTS BELOW MiN. LIMIT SMAXIMUM TIME *NUMBER OF COUNTS ABOVE MAX. LIMIT sTOTAL TIME OF ALL SEEKS :NUMBER OF SEEKS PERFORMED sPOINTS TO TABLE OF TIMES T sFATAL WRITE CHECK ERROR FLAG sMEMORY SIZING SCRATCH LOCATION 4 sWORD COUNT FOR HALF A TRACK IN 16 BIT MODE :10 HlLLig Eg:DS STALL :10 MILLISECONDS STALL ¢ S >O s o 4 LMORD BIT08 0 .WORD LWORD BIT10 BITI 20000 0000 100000 001 0002 00004 .WORD JWORD .MORD .WORD .WORD LWORD BITI BIT14 BIT1S BITO0D BITO1 BIT02 0092 000040 000100 000200 .WORD .WORD .WORD .WORD BIT04 BITOS BITO06 BIT07 1 88 2 .WORD 1000 -WORD 800018 oo R o8 o8 o0 o F o F o f ok 2l 2l ke 8888838338388 NN W 00O 00O 33253 ggogagua & o » D0 > o — N~ SEQ 0033 Tfiu‘ts' MACRO Vv04.00 1=JAN=B3 11:06:45 PAGE 13<1 7 WORD JSBTTL BIT09 Blt1§ BITO3 TIMING LIMITS ;ROTATIONAL TEST TABLES TOR RPO7 DRIVE 004605 *SOHZ AND 60WZ TABLE f7A:: .WORD ROTATE 003103 003246 "WORD .WORD ~N o~ w ~N 002442 002444 002446 002450 o o 8 SRIFRTR 000000 WORD TIMT10:: .WORD 000764 .WORD .WORD WORD 004721 TIMT11:: 004766 005115 000000 TIMT12:: 005033 71420:: .WORD 005115 000000 004374 010770 000000 000000 003246 1603. 1702. :SEEK TEST TABLES 004647 005115 000000 O .WORD ONECYL REV O ;L0LIMIT (16.515MS SHILIMIT (16.515M5 : FORWARD :REVERSE INO LO LIMIT 500. SHI LIMIT(5.0MS) .WORD WORD .WORD REV O 2300. AVERGE : FORWARD .WORD .WORD "WORD MXSEEK REV O : FORWARD *REVERSE SNO LO LIMIT "WORD WORD "WORD "WORD *REVERSE INO LO LIMIT tHI LlHlY (23.0MS) 4600. Ml Llflll (46.0MS) MARK :ADDR MARK TEST O O 1702. + 3%) = 3%) :2ND nsc uout INO LO LimIT Ml LlHl! (16.515M5 = 3%) :SPECS. MESSAGE TABLES FOR ROTATIONAL AND TIMING TESTS ;ROTATIONAL MESSAGE AND LO/WI LIMITS 005132 003103 003246 50u1 AND 60HZ TABLE .WORD "WORD "WORD nsc?x 1603. 1702. :MSG L0 LIMIT (16.515MS + 3%) THI LIMIT (16.515MS = 3%) ;TIMING TEST MESSAGES AND LO/MI LIMITS C Gl S - - 888 888 NN 888 NN 888 = O 000 NNV AW O 00 NV —o = -2 - 3 P e L AOAININIAINININININD = b b b b N - FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 13-2 g 51% 0090 64 SP10:: 6 g 00513 00029 004374 SP11:: & 6 00513 00009 SP12:: 2 4 0 . SEQ 0034 .WORD .WORD +WORD MSG10x ,WORD .WORD .WORD MSG11x 010770 .WORD .WORD .WORD MSG12x O M6 sNO LO LIMIT 005132 000000 $1420:: .WORD .WORD MSG14X O ;MSG sNO LO LIMIT 003246 .WORD 00. 300. 4600, 1702. JMSG sNO LO LIMITY Ml LIMIT (5.0MS) JMSG sNO LO LIMITY JHI LIMIT (23.0MS) Ml LIMIT (46.0MS) M LIMIT (16.515MS = 3% — g(— L R oko — eNPh WS d b AWIN b bb SWN = buwwuwruumruwmwwwwwuOV NO WV WN =O YV NV AN = O V00 < OOV N NN - COO0O000O —=O0O0000 OO00O00O N DPB.A:: IVE NUMBER .BYTE .BYTE .BYTE .BYTE .WORD WORD 8 0 R TABLE POINTER CTOR ADDRESS OR ACK ADDRESS OR L AND A17 AND A16 D COUNT (MUST BE NEG.) DBUFF .BYTE 002551 000 BYTE 0 002552 002554 000000 002744 LMORD O .WORD fSELDVALUE OR FMT16, ECI, AND HWCI FER ADDRESS OR G. INDEX . INDEX REG TO THE FIRST OF TWENTY ONS OF WHERE THE DRIVER TORE 002556 LWORD 000000 THE RHXX/RPQ7 S ON AN ERROR, IF LEFT ISTERS ARE NOT SAVED. T US/ERROR INDICATOR > ERROR OCCURRED > DONE 0 T 09 AND BIT06-BITO3 TYPE OF ERROR OMMAND SEL AND A17 AND A16 SRD COUNT (MUST BE NEG.) FFER ADDRESS OR T ER TABLE POINTER 000 002572 002574 000000 002744 A PR TR A N TM DA PR DR DR LR J © 002571 DO 000 4% 002576 6 ET VALUE OR FMT16, ECI, AND HC(CI 2 BUFF © . 042610 = o 177776 o <o 0 E _NUMBER VIoOoO0oO .BYTE () DPB.B:: 002560 JMORD 000000 pDPB.C:: 177776 062610 .BYTE BYTE BYTE BYTE .WORD [ TR TETEATEATEA 4 :DP8 (DRIVE PARAMETER BLOCK) o o O 20 —r SEQ 0035 AO R:O; FCINL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 14 LIMITS 0 0 0 0 0 62 BUFF S ECTOR ADDRESS OR A 9 LINDER ADDRESS ROR_TABLE POINTER TO THE FIRSY OF TWENTY NS OF WHERE THE MRIVER TORE THE RHXX/R=07 RS ON AN ERROR, IF LEFT GISTERS ARE NOT SAVED. ATUS/ERROR INDICATOR =>ERROR OCCURRED =>DONE 1709 AND BITO06-BITO3 E TYPE OF ERROR v E _NUMBER S ET VALUE OR FMT16, ECI, AND MW(] ND SEL AND A17 AND Al6 BRD COUNT (MUST BE NEG.) FFER ADDRESS OR T ER TASLE POINTER AO RPO? f(‘NL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE .BYTE 60 002611 000 .BYTE 000000 bi 002614 002744 .WORD 69 002616 .WORD 002612 000000 © 000 SEQ 0036 VO 58 23 00261 26 0 141 O NG LIM 0 S OF WHERE THE DRIVER ORE THE RHXX/RPQ7 S ON AN ERROR, IF LEFT ISTERS ARE NOT SAVED. TUS/ERROR INDICATOR ;ERROR OCCURRED DONE 10 9 AND BIT06-BITO3 000 000000 002744 +WORD = 000000 B et bt b 93 002636 9 95 96 97 ERROR E_NUMBER EYDVALUE OR FMT16, ECT, AND H(CI EL AND A17 AND Al6 RD COUNT (MUST BE NEG.) FFER ADDRESS OR ER_TABLE POINTER CTOR ADDRESS OR EG. INDEX HHND=t =AM D v — A (D =t MM ©O DVD<MDDM Mo 1l H PO — 2-20r- 000 VMV N O 8 82 002630 83 84 002631 85 86 002632 87 002634 0 000000 062610 =DM AN D el Vo~ A‘ADAAAAAA T YPE OF ACK ADDRESS OR G. INDEX INDER ADDRESS OR TABLE POINTER O THE FIRST OF TWENTY S OF WHERE THE DRIVER ORE THE RHXX/RPQ7 S ON AN ERROR, IF LEFT ISTERS ARE NOT SAVED. TUS/ERROR INDICATOR ;ERROR OCCURRED ONE T 0 AND BiT06-BITO3 TYPE OF ERROR CIRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN-83 11:06::5 PAGE 15 SEQ 0037 TIMING LIMITS 1 000000 i& 002640 00 668 192220 002644 000254 5 00 65g 9 80 652 02654 g 002656 000050 000000 800000 000000 10 176700 66g 1 662 1; 664 15 00 14 0026 g 15 002672 16 002674 17 002676 18 00%700 19 002702 20 002704 21 002706 22 002710 23 002712 24 002714 25 002716 26 002720 27 002722 28 002724 §9 002726 0 002730 g; 002732 176702 176704 176706 176710 176712 176714 176716 176/20 176722 176724 176726 176730 176732 176734 176736 176740 176742 176744 176746 176750 176752 33 34 gg 000240 .WORD 176700 gSk.S'SZ. O sUSED TO SELECT A UNIT FOR TE"" sCONTAINS RPCS1 BASE ADDR%SS sCONTAINS VESYOR ADDRESS & BR . 'VEL RHEXT.: .WORD RHTYPE:: WORD DRVAO:: ,WORD DRVSN:: .WORD O 8 0 sCONTAINS RH70 OFFSET TO RPBAE sCONTAINS RHXX TYPE; RH11= 0, RW70= 1 sDRIVE NUMBER :STORAGE FOR EACH S/N DIGIT RPCS1:: 176700 sBASE ADDRESS USED FOR THE DRIVE RPWC:: RPBA:: RPDA:: RPCS2:: RPDS:: RPER1:: RPAS:: RPLA:: RPDB:: RPMR1:: RPDT:: RPSN:: RPOF:: RPDC:: RPCC:: RPER2:: RPER3:: RPEC1:: RPEC2:: RPBAE:: .WORD LWORD .WORD .WORD .WORD .WORD ,WORD ,WORD ,WORD .WORD .WORD LWORD ,WORD ,WCRD .WORD LWORD ,WORD .WORD .WORD .WORD .WORD RPCS3:: .WORD 176702 176704 176706 176710 176712 176714 176716 176720 176722 :"'ORD COUNT REGISTER sBYTE ADDRESS REGISTER sDESIRED SECTOR/TRACK ADDRESS ;RPO7 STATUS REGISTER :RPO7 DRIVE STATUS sRPO7 ERROR REGISTER M sRPO7 ATTENTION SUMMARY PSEUDO REGISTER ;RPO7 LOOK AHEAD REGISTER sRPO7 DATA BUFFER 176724 176726 176730 176732 176734 176736 176740 176742 176744 sRPO7 MAINTENANCE REGISTER #1 :DRIVE TYPE REGISTER ;RPO7 SERIAL NUMBER :RPO7 OFFSET REGISTER sRPO7 DESIRED CYLINDER sRPO7 CURRENT CYLINDER :RP07 ERROR REGISTER #2 :RPO7 ERROR REGISTER #3 :RPO7 ERROR POSITION 176746 176750 176752 :RPO7 ERROR PATTERN sRH70 REGISTER sRH70 REGISTER SATTENTION BITS TABLE (ATABIT=8 BYTES) sTHIS TABLE CONTAINS THE CORRESPONDING BIT TO EACH DRIVES sATTENTION BIT 37 002734 38 002735 39 002736 40 41 42 43 .WORD RPADR:: ,WORD RPVEL.* UNIT:: 002737 002740 002741 002742 22 002743 001 002 004 ATABIT::.BYTE .BYTE BYTE 200 .BYTE 010 020 040 100 .BYTE .BYTE .BYTE .BYTE 1 2 & 10 20 40 100 200 ;DRIVE 0 :DRIVE 1 :DRIVE 2 ;DRIVE :DRIVE ;DRIVE :DRIVE ;DRIVE 7 46 & ; STORAGE FOR DEVICE REGISTERS 23 002744 REG:: .BLKW 22. 3 & 5 6 ;SAVE REGISTERS HERE CZRJLAO RP07 FCINL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 16 NNV NN NS NN - GLOBAL TEXT 1 1 17 SECTION .SBTTL il SEQ GLOBAL TEXT SECTION A4 s THE GLOBAL TEXT SEC TION CONTAINS FORMAT STATEMENTS, s MESSAGES, AND ASCII ; MORE THAN ONE TEST. INFORMATION THAT ARE USED IN ;NAMES OF DEVICES SUPPORTED BY PROGRAM 003020 003020 18 24 25 26 27 003026 003026 122 120 060 LASCIZ -EVEN /RPO7/ ; TEST DESCRIPTION 122 120 060 ;8 5 36 37 38 39 003054 2? 003057 LSDVTYP:: LSDESC:: ; .ASELZ /RPO7 FUNCTIONAL TEST/ FORMAT STATEMENTS USED IN PRINT CAL!S CRLF:: DH25A:: LASCIZ .ASCIZ /%IN/ /%ADRIVE %01%N/ 42 003075 43 003114 44 003133 45 003152 46 003201 47 003272 4«8 003352 49 003443 50 003523 51 003615 52 003677 gz 003717 045 045 045 045 045 045 045 045 045 045 045 045 101 101 101 101 116 116 116 116 116 116 101 116 103 124 123 122 045 045 045 045 045 045 122 045 DHG4A:: DH&44B:: DH&G4C:: DH&G4D:: DH&GLE:: DH44LF:: DH44LG:: DH44LH:: DH44LI:: DH4&LJ:: DH4L4LK DH44L:: ,ASCIZ _ASCIZ _ASCIZ .ASCIZ .ASCIZ _ASCIZ ,ASCIZ _ASCIZ _ASCIZ _ASCIZ .ASCIZ ,ASCIZ /XACYL XD3XA. / /XZATRK X¥D2XA. / /XASEC XD2XA. / /XARPER2 (MEX) !T!Tl!!!/ /7INXADRIVE RPCS1 RPBA RPD /AINXO06%A X06%A 106!A !06!A 1061A !062A /INXARPER1 RPAS RPLA RPD RPMR1 /INXO6XA X06%A X06%A %06%A !06!A !06!‘ /INXARPOF RPDC RPCC RPER? E’ /INX06XA ZX06XA X06%A Z06%A %C6%A Y /XARPBAE RPCS3/ /XINX06XA X06IN/ 55 003736 56 003764 57 004021 045 045 045 101 117 101 105 063 107 DH4SA:: _ASCIZ DH4SB:: .ASCIZ DH45C:: .ASCIZ /XADRV CYL TRK SECIN/ ISOSZA !D XA. !DB!A !D3!A IN/ /IAGDCYL GDTRK DCYL BDTRK 59 2? 004164 045 116 045 DH52A:: .ASCIZ /XNXANUMBER OF LOST REVOLUTIONS=XD4XA./ 62 004232 045 116 045 NOCLK:: ,ASCIZ /XNXANO P=CLOCK, TIMING TESTS WILL NOT BE EXECUTEDIN/ 045 045 124 101 000 124 SNDIGT:: WRTENM:: .ASCIZ /X1/ ,ASCIZ /!ATESY XD2%A. NOT RUN, NOT ENABLED BY USERZIN/ 045 045 045 101 101 101 123 101 120 SEABAD:: ABOTST:: POSERR:: .ASCJZ /XASEARCH fAlLED AFTER 16. RETRIESIN/ .ASCIZ /XAABORT TESTIN/ .ASCIZ /XAPOSITION ERROR, TEST ABORTEDIN/ o o A ~ 000 104 8 &~ 116 101 o 045 045 045 045 045 6 99 004544 104 116 101 RP(CS2 206/ RPDT 206/ RPECT X06IN/ RPDS/ RPSN/ RPEC2/ BDSECXIN/ 063 DH4S5D:: .ASCIZ /%ID3XA. 153103!A !S3IDSIA ZS3ID3ZA. 1531031A 2S3XD3XA.IN/ 045 125 DSNMSG:: .ASCIZ /!NiADRlVE 201%A, PG/ SEAERR:: .ASCIZ /lAUNRECOVERIBLE SEARCH ERRORXN/ 0038 P S S e e NN NWNWN W= -=000 EM&G:: EMS:: LASCIZ /RHXX DATA BUS PARITY ERROR MDPE=1/ /RHXX ILLEGAL CONDITIONS SET (NED,NEM,PGE ,MXF)/ . EM7:: LASCIZ /DRIVE PROGRAMMING ERROR (PGE)/ /LOSTS BIT CLOCK (LBC)/ LASCIZ LASCIZ LASCiZ LASCIZ /WRITE CLOCK FAILS/ /WRITE LOCK ERROR/ /DATA ERROR (DCK)/ /DRIVE BUS PARITY ERROR (DPE)/ EM6: : EM1S: EM16: EM17: LASCIZ LASCIZ LASCI2 LASCIZ LEGAL CONDITIONS SET CILF,ILR,RMR)/ Mors SLngg 58«n>53n£?-. NN =S —as MESNN=SN =000 =NON) I B e eT I EM3:: D RESSING ERROR (IAE,AQE)/ 3 K ERROR (SKI,LCE)/ OCK (KW11=-P) OVERFLOW IN TIMING TESTA @F ATAL MASSBUS PARITY ERROR (MCPE=1 OR PAR=1)3 EM36:: .ASCI2Z /DRIVE OFFLINE OR NOT AN RPQ7/ LASCIZ /OPERATION INCOMPLETE (OPI)/ / IMPROPER HEADER DATA/ /ECC LOGIC FAILURE/ — - —a ONG WOW .ASCIZ LASCI2 LASCIZ LASCIZ — eb D D D D —D LASCIZ LASCIZ LASCIZ LASCIZ LASCIZ LASCIZ LASCIZ LASCIZ EM&1:: EM34:: EM35:: EM&2:: EM&3:: LASCIZ LASCIZ LASCIZ LASCIZ B>PMPre oo b e e B D D 3 > D R e I T IS OO==N-baa VSRS aa /WRITE CHECK ERROR/ /DATA LATE ERROR/ — —d ) ) D e ) O==ONON = O =walaN LASCIZ LASCIZ dd-floddd =t O =ON) =Y O=OS /RHXX CONTROL BUS PARITY ERROR MCPE=1/ EM30:: EM31:: EM32:: EM33:: OO=NONINY) /ANZADRIVE X01XA NOT AN RPO73IN/ LASCIZ LASCIZ EMZO: EMc1: EMZ2: EM23: EM24: EM2S: EM26: EM27: =NNCOOO= /ANZADRIVE Z01%A UNSAFEXIN/ /ANXADRIVE X01%A NON-EXISTENTIN/ /ANZADRIVE Z01%A OFF=LINEZIN/ GLOBAL ASCI1 MESSAGE SECTION EM11: EM EM13: EM14: NN=ONOO .ASC | .ASCI .ASCI .SBTTL P PR .ASC! NEDMSG:: OFLMSG:: NOTMSG:: — D D D =D =D D —D — UNSMSG:: d b i \ofi—-\l 2O—DI\NNO WS SONUVWVIW W= MNO-= NOO=ONOO N=ON=O — - OO = WO O = W NN o ~N o NN =OOoNNNIN NN NN oo §2222228 WRININ) = = sz 2 NOOAOONW w NWVWN—= AN o SNNSOWVT &g o g FEER NN o (=1=] .ASCIZ /%A * LIMIT(S)/ EM1:: EM2:: — VIV OO0 O0O OOO0O0O0O0 © OO0 W =OOVEN NV NN - SOB/NR N MSGI2X:: rNNNN - e s b e e e — O C) = Lot ViAWV SSU& —_——yt 328 W e D~ L=i=l=4 (==l MSGI4X:: OO 00O o o0 o0 o VW VWA N~ ~NO O Noo RO o ~NOo SIRAIR288 i i i o o — e D e s o D e s D e e e i o i D i o b e = e e i e ik = 2 O O O o PINONUNININD /ENXAROTATIONAL SPEED TIMESINIA « /INXAONE CYLINDER SEEK TIMESINIA * FORWARD/ /INXAAVERAGE SECK TIMESINZA + FORWARD/ /AINTAMAXIMUM SEEK TIMESINZA + FORWARD/ /ANZAADDRESS MARK DETECT TIMESINZA + / & SCIZ /%A * FORWARD/ A SCIZ /%A * REVERSE/ ASCI ASCI . ASCI MXSEEK:: . & sCl MARK:: LA S ciz ROTATE:: ONECYL:: AVERGE:: YWY - [=leleleleleled e = - " o M EREEEREEBIINIININY F 3 S 888 2282 8888 8 2 — 82 , eq SEQ 0039 NL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 16-1 RLY WARNING (EWN)/ AD & WRITE HEAD FAILS/ TA_FORMAT BIT ERROR (FER)/ 3 @DRIVE HAS NOT RESPONDED TO PORT REQUESTa 9SOF TWARE TIMEOUT ON THIS DRIVER @0FFLINE OR UNSAFE DRIVE REQUESTEDA /WRITC=-READY UNSAFE/ /DC POWER UNSAFE/ /INDEX UNSAFE/ /PROCESSCR HANDSHAKE FAILURE/ SEQ 0040 sCiZ .EVEN ”.p)—%l w - O wv m g« sCl )wu.sia Del> ». b - SC SC sCl OZ s -~ S S $ S Obs SooN, - Nx—#r-wuvBeW-xOMw(%-[~- wbo42xwan oLow ~) — 1 NL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 16-2 SSAGE SECTION o NS w v wi [T mfl SEQ 0041 CIRJLAD RPO7 FCTINL TEST MACRO V04.00 1-JAN-B83 11:06:45 PAGE 17 GLOBAL ERROR REPORT SECTION {o 7604 .SBTTL 013746 012746 007610 007614 0076 g 0076 007624 5 0076 01 788 1 104414 86 706 13746 007640 007644 007646 7650 6 0076564 012746 010500 104414 06;706 013746 007672 104414 76 7660 7664 7670 7674 7 007700 8 007704 9 007710 10 007714 007720 007724 007730 007734 007740 007744 007746 " 007750 12 007754 007760 007764 007766 007770 13 007774 010000 010004 010010 010014 010020 010024 010030 010034 010040 010042 o 010044 15 010050 010054 010060 010062 010064 012746 015746 012746 010600 06;706 013746 042716 004737 012746 012746 012746 012746 012746 012746 010600 104414 062706 012746 012746 010600 104415 06%706 013746 013746 013746 013746 01;766 013746 013746 012746 012746 010600 104415 062706 012746 012746 010600 104415 062706 00;2 80 07 00002 : DH&G4: GLOBAL ERROR REPORT SECTION MOV MOV 000006 002270 003114 000002 000006 00 27; 00313 000002 000006 003004 177400 011430 011572 011570 011566 011564 003152 000005 SP. CSPNTB #6,5P REG+40,=(SP) #177400, (5P) PC,OCTHEX sPRINT RPERZ ERROR CODE IN HEX #PSTACK+6,=(SP) #PSTACK+4.=(SP) #PSTACK+2.=(SP) #PSTACK,=(SP) #DHL4D , =(SP) #5,-(SP) SP RO CSPNTB 000014 #14,5P 003201 000001 #DHLLE ,-(SP) #1,-(SP) °DRIVE RPCS1 RPW( RPBA RPDA RPCS2 RPDS' :PRINT 'RPER1 RPAS RPLA RPDB RPMRY RPDT RPSN' sPRINT 000004 002756 002754 002752 002750 00%746 002744 00;654 00 275 00001 000022 003352 000001 #DHLLG,=(SP) 000004 #4,5P #1,-(SP) SP.RO CSPNTX 16 §1oora 010070 013746 002774 MOV REG+30,=(SP) 10100 010106 010110 010114 010120 010124 013746 013746 013746 013746 013746 015746 00277 MOV MOV 000010 REG* 8.-(5») REG+20.=(SP) REG*16,=(SP) REG*14.=(SP) #DHLLH ,=(SP) 010136 010140 012746 010600 MOV MOV MOV MOV MOV REG*24.=(SP) 104415 062706 000022 TRAP ADD 012746 003523 MOV #DHLL] ,-(SP) MOV TRAP ADD MOV MOV MOV MOV MOV SP.RO CSPNTX #4,5P REG+46,=(SP) REG+44 . =(SP) REG#+42,=(SP) REG+40.=(SP) REG*36,=(SP) 010130 01013¢ 17 18 010144 010150 13746 00 775 . 012746 010154 010156 010160 19 010164 010170 010174 010200 010204 010600 104415 062706 013746 013746 013746 013746 013746 010214 010220 010224 010230 010232 010234 20 010240 21 010244 22 23 010246 010252 010256 010260 010262 264 010266 010272 010276 010302 010306 010310 010312 25 010316 26 010316 010322 0103§6 010330 010332 27 010336 . 010336 013746 012746 012746 010600 104415 062706 005737 001424 002766 30 764 00276 00276 00344 MOV MOV 000001 MOV 000004 00301 00301 003006 003004 003002 010210 013746 003000 29 010340 30 010340 010344 000022 002652 012746 012746 010600 104415 062706 013746 013746 012746 012746 010600 104415 062706 003677 000001 012746 012746 010600 104414 062706 003054 000001 000004 003016 003014 003717 000003 000010 000004 104423 012746 012746 MOV 002776 003615 000010 003736 000001 1%: L10002: DH&S:: 4 SEQ 0042 REG*26,=(SP) #10,=-($P) SP,RO CSPNTX #22,5P :PRINT °'RPOF RPDC(C RPCC RPER2 RPER3 #1,-(SP) REG*+34,=(SP) MOV MOV MOV MOV TRAP ADD ST BEQ REG+32,=(SP) #DH4LLJ . =(SP) #10,-(5P) SP,RO CSPNTX #22,5P RHTYPE 1% MOV MOV MOV TRAP ADD MOV MOV MOV MOV MOV TRAP ADD #DHLLK ,=(SP) #1,-(SP) SP,RO CSPNTX #4,5P REG+52,=(SP) REG+50,=(SP) #DH4L4LL ,=-(SP) #3,SP,RO CSPNTX #10,5P MOV MOV MOV TRAP ADD #CRLF ,=(SP) #1,-(5P) SP,RO CSPNTB #4,SP TRAP CSMSG MOV MOV #DH4LSA, = (SP) #1,-(SP) B ;1S IT RH70 CONTROLLER ? :BR IF NO :PRINT °*RPBAE RP(S3' :CR=LF RPEC1 RPEC2* e ACRO v04.00 1=JAN=B3 11:06:45 PAGE 17-1 CZRJLAD RPO? FCTINL TEST M GLOBAL ERROR REPORT SECTION SEQ 0043 CIRJLAO RPO7 FC TNL_TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 17-2 GLOBAL ERROR REPORT SECTION -~L—ANl 2746 2746 003054 0000901 L10003: 746 746 002310 006164 012746 012746 003054 000001 746 DHS2:: 000002 #CRLF ,=(SP) TRAP C$MSG Mov MOV TIM.UP+6 .,~(SP) #DH52A ,~(SP) #CRLF ,~(SP) ", =(SP) L10004: &4 010600 MOV DH25:: TRAP C$MSG Mov MOV Mov #DH25 =(SP) #2,-(S ) DRVNO,=(SP) Sh ;CR=LF sCR=LF ?ACRO v04.00 1-JAN-B3 11:06:45 PAGE 17-3 MoV SP,RO 000006 ADD #6,5P 03054 MOV cmr -(SP) TRAP 00001 000004 MOV TRAP MOV L10005: ($PNTB § sfiuta ADD n. SP TRAP C($MSG F & SEQ 0044 St CIRJLAD RPO7 FCINL TEST MACRO V04.00 1-JAN-B3 11:06:45 PAGE 18 SEQ 0045 GLOBAL SUBROUTINES SECTION 1 .SBTTL i § 81064 * 1825 9 01065 10 010654 046 R 010656 1 014 0104wo 10546 1% 010662 15 01067 }9 010676 016646 816666 000207 13 ;*SAVE RO=RS g JSR SAVREG: . ' 6 01066 11 1; GLOBAL SUBROUTINES SECTION 01 16546 oooogo 18 s*CALL: 20 2 010700 23 010706 24 010710 25 010714 ‘e 012666 012666 012666 012605 26 010716 012604 27 010720 28 010722 §9 010724 0 010726 31 010730 RO,=(SP) R1.=(SP) R2.=(SP) R3.=(SP) RG.={SP) RS.=(SP) ::PUSH RO ON STACK $:PUSH R1 ON STACK ::PUSH "i ON STACK $:PUSH R3 ON STACK $:PUSH Re ON STACK $:PUSH RS ON STACK MOV MOV RTS 0(SP) .=(SP) 0(SP) .=(SP) PC $3SAVE PC OF MAIN FLOW S:SAVE PC OF SAVREG CALL 0{sP),=(SP) $:SAVE PUSHED PARAMETER :*RESTORE RO=RS 19 51 010700 o MOV MOV MOV MOV MOV MOV MOV 000020 000020 PC,SAVREG 012603 012602 ©32601 012500 000207 000020 000020 000020 RESREG: JSR PC,RESREG MOV MOV MOV (SP)+,20(SP) (SP)+,20(SP) (SP)+,20(SP) ::RESTORE PC OF RESREG CALL S:RESTORE PC OF MAIN FLOW $RESTORE PUSHED PARAMETER MOV (SP)+,Ré& $:POP STACK INTO Ré& MOV MOV MOV MOV MOV RTS (SP)+.RS (SP)+.R3 (SP)+.R2 (SP)+.R1 (SP)+.RO PC $:POP STACK INTO RS $:POP STACK INTO R3 $:POP STACK INTO R2 $:POP STACK INTO R1 S:POP STACK INTO RO H & SEQ 0046 GLOBAL SUBROUTINES SECTION 1 :Aglo SIZE FOR RH70 CONTROLLER AND DETERMINE IF IT IS JUMPERED FOR 22 OR ‘i 3 9 RS MUST CONTAIN POINTER TO NEW RPCS1 BASE ADDRESS :gAlfscxsteas § JSR 9 010732 005037 00265 SIZE70: CLR 11 010742 01374? 000004 MOV 15 010762 1? 010766 01 708 0057 000012 MOV ST 18 010772 19 011000 0 011002 orgr 005720 oosso; 000050 012737 000403 012716 000076 10 8107;6 oosogr oozcsg 1; 010746 1 818724 14 0107 g 17 010770 1 011004 g 011006 2% 011014 26 011016 gz 011022 27 011024 012737 011016 000004 11;88 000050 0057 9 00137 000002 011024 011500 28 o11o§e o1srog 002650 go 011032 002650 060002 32 011042 33 011046 3, 011050 gs 011052 6 011056 37 011060 §a 011062 9 011066 022712 001007 005012 011046 042726 00100; 005237 012637 40 011072 000207 RHEXT RHTYPE :CLEAR RPBAE OFFSET MOV MOV ADD ERRVEC,=(SP) #2% ,ERRVEC (RS),RO #50,R0 :SAVE CONTENTS OF ERROR VE(TOR SSETUP *TRAP' RETURN ADDRESS SGET RPCS1 ADDRESS SGET REGISTER OFFSET FOR RW70 #10. ,R2 (RO) + (RO) + :CLEAR RMXX TYPE REGISTER (RW11) SGET NUMBER OF REGISTERS TO CMECK STRAP [F NOT A VALID RPBA STRAP [F NOT A VALID RPCS #50,RHEXT (RO)+ R2 28: MOV BR MOV #74 ,RHEXT 3 #38,(SP) 38: MOV MOV RHEXT,R2 *GET RPBAE REGISTER OFFSET ADD RO,R2 :GET RPBAE REGISTER 1%: BNE 002650 RTI BEQ 8IS 000093 176377 000004 CLR 1531 31 011036 052710 001400 002652 ;CALL ROUTINE MOV 15T DEC 00141 0 011034 PC,SIZE70 48: CMP BNE CLR MOV BIC BNE INC MOV RTS 1% (RS) ,RO X #AT7'A16,(RO) SLOAD OFFSET FOR RPBAE (22 REG:STER RM) STRAP [F NOT A VALID REGISTER :DONE WITH ALL 32 REGISTERS ? :BR IF NO SLOAD OFFSET FOR RPBAE (32 REGISTER RM) :SETUP RETURN ADDRESS :GET RPCST REGISTER :BR IF NONE :SET EXTENDED ADDRESS BITS IN RP(SI #3,(R2) :ARE THE EXTENDED BITS SET IN RPBAE ? 48 :BR IF NO (R2) SCLEAR EXTENDED ADDRESS BITS IN RPBAE (RO),=(SP) *SAVE RPCS1 REG CONTENTS #°C<A177A16>, (SP)+ :ARE THE EXTEND BITS CLEAR IN RP(S1 ? 48 :BR IF NO RHTYPE :SET RHXX TYPE REGISTER (RW70Q) (SP)+,ERRVEC SRESTORE CONTENTS Cf ERROR VECTOR PC o CIRJLAD RPO7 FCTNL YES! MACRO v04.00 1-JAN-B3 11:06:45 PAGE 19 SEQ 0047 ON 1 i INTEGER DIVIDE ROU!!N§ s :*THIS ROUTINE U{LL DIVIDE A 32-BIT TWO'S COMPLEMENT INTEGER 4 :*A 16=BIT TWO'S COMPLEMENT INTEGER QUOTIENT AND A 15-BIT REMAINDER. :*DIVIDEND BY A b3 16=BIT TWO'S COMPLEMENT INTEGER DIVISOR GIVING :*DIVISION WILL BE PERFORMED SO THMAT THE REMAINDER IS OF THME ? ::%:{E SIGN AS THE DIVIDEND. B :* MOV LOW DIVIDEND,=(SP) 10 1 I ;e MOV JSR DIVISOR,=(SP) PC,SD1V 9 I 1§ 1 14 I ;i §® 15 ;e RE TURN *“v''=0 *v*'=1 -0 18 E' }3 I : . 21 I %i 24 25 011074 26 011076 005046 010046 28 011102 010246 27 011100 29 0111064 30 011106 31 011110 32 011114 33 011120 3, 0111264 35 011126 36 011132 37 011134 38 011136 39 011140 40 011144 41 011146 ‘i 011150 002407 003011 052766 011156 012700 46 011162 000424 46 011170 000401 4% 011164 47 011172 43 011174 49 011176 SO 011200 51 011202 52 011204 53 011206 54 011210 55 011212 56 011214 57 011216 005266 005402 000241 000405 006100 010003 060203 103001 010300 006101 (05316 001370 T0P NO ERROR o e e 8w G REMAINDER OVERFLOW L. L E L L L 1 J DIVIDE BY ZERO Ao e G e e e G eh e am s ALL ZEROS e- ALL ONES ALL ONES ALL ZEROS «(SP) ;:CLEAR DIV STATUS .ORD: RESERVED TO SET ( AND v BITS RO,=(SP) ::PUSH RO (N STACK MOV R2,=(SP) 000003 000002 ATTEMPTED TO DIVIDE BY ZERO CiLR MOV 000021 000024 000022 177777 DIVIDE OVERFLOW OCCURRED $DIv: MOV 000003 “t**z0 QUOTIENT MOV 000020 ;:0UOTIENT & REMAINDER ARE ON THE STACK IMPLIES NO ERROR IMPLIES ERROR OCCURRED *2 010346 005600 016602 -—-eoee : AS LARGE AS THE DIVISOR :* 010146 005046 012746 016601 016600 100005 105366 005400 005401 STACK ::THE HIGM DIVIDEND MUST BE < 1/2 HIGH DIVIDEND,=(SP) *C*'=1 ;e }g 3% MOV 1%: 000014 3%: 6%: 5%: 6%: R3,=-(SP) (LR MoV MOV MOV BPL DECB NEG NEG -(SP) #17,,-(5P) 24(SP) R 22(SP) RO 1% 3(SP) RO R1 BLT $ SB8( MOV RO 20(SP) ,R2 BGT BIS $ #3,14(5P) BR 7% MOV 2%: R1,=(SP) INC B NEG cLc HK ROL MOV ADD BCC MOV ROL DEC BNE #-1.R0 2(SP) 4% R2 6% RO RO,R3 R2,R3 6% R3,R0 R1 (SP) 5% ::PUSH R1 ::PUSH R2 ::PUSH R3 UN STA(K ON STACK ON STACK ::SAVE A PLACE FOR SIGNS ::SETUP THE ITERATION COUNTER ;:PICKUP THE DIVIDEND ::CHECK THE SIGN ::KEEP TRACK OF THE SIGN :;AND NEGATE THE ORIGINAL : NUMBER ::PICKUP THE DIVISOR ::CHECK THE SIGN ::DIVISOR OF 0 IS A NO=-NO 22SET "'V R ''C'" IN DIV STAT WORD ::SET REMAINDER TO ALL ONES JIEXIT ::KEEP TRACK OF DIVISORS SIGN :NEGATE THE ORIGINAL NUMBER ::CLEAR *'C'" IN PSW ::START FORMING QUOTIENT ::POSITION MSB'S s+ COPY :;COMPARE DIVIDEND & DIVISOR ;2BR IF DIVIDEND > DIVISOR ::REMAINDER AFTER THIS LOOP 2;QUOTIENT BIT ENTERS MERE : :DONE? ::BR IF NO oTM CIRJLAD RPO7 FCTNL ;E%}‘nncao v04.00 1=JAN=-B3 11:06:45 PAGE 20 GLOBAL SUBROUTINES - NSO = 4 P D il D il el il —-g——————— Y D i 68 00 01ggg1 105 005316 000002 & SN0 SRS o~ ~ 01401 005401 010166 01006g 01%60 012602 012601 012600 006226 000242 001401 000262 012616 000207 000014 7%: 8$: 000001 805 36 AR — 80 5701 905 005716 00;006 005400 S D D D i il 1 005726 (R il i il il Dl i A i - SEQ 0048 R1 8% ::OVERFLOW? ssBR IF NO 151 (SP)e $:CLEAR COUNTER FROM STACK 8IS CLR MOV 108: 11%: IS.IL(SP) R RO,R1 151 BGE NEG (SP) 9% RO DEC (SP) CLRB 9%: 000020 000016 18T BPL ST BEQ NEG MOV MOV MOV MOV MOV MOV ASR CLv BEU SEV MOV RTS 1(5P) (SP) e+ 108 R1 R1,20(5P) RO, 16(SP) (SP)+,R3 (SP)+,R2 (SP)+,R1 (SP)+,R0 (SP)+ 1% (SP)+,(SP) P( 2SET """ IN DIV STATUS WORD :2SET REMAINDER TO ALL ZERQS ::COPY REMAINDER INTO QUOTIENT :sREMAINDER SIGN CORRECTION NEEDED? J:BR IF NO s :NEGATE REMAINDER “SCLEAR SIGN BUT DON'T FORGET QUOTIENT ::QUOTIENT SIGN CORRECTION NEEDED? ::BR IF NO :sNEGATE QUOTIENT ::RETURN QUOTIENT AND : :REMAINDER TO USER ::POP STACK INTO R3 ::POP STACK INTO R2 ::POP STACK INTO R1 ::POP STACK INTO RO S:COPY C IN PSW PER C IN DIV STAT WORD ::CLEAR V IN PSW s:v=0 IN DIV STAT WORD, EXIT ::v=1 IN DIV STAT WORD, COPY V IN PSW S:MOVE RETURN ADR UP ONE PLACE, OVERRIDING DIVISOR ::RETURN WITH SP POINTING TO REMAINDER fat ol -~ g3 $3 P NN N NN NN NININLNINNONININININONINONOININONONY D il [elelelelelelelelelelelelelelelelelelelelelelelelele] [P o w’ aoacwwflflflwwwflwgsgagmgggg W = O W NFVHWN =00 »r~>» =¥ ~y - NL TEST MACRO v04.00 1= AN=B3 11:06:45 PAGE 201 NES SECTION SEQ 0049 CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 21 GLOBAL SUBROUTINES SECTION 1 : INTEGER MULTIPLY ROUTINE & :* MOV MULTIPLER,=(SP) STACK PRODUCT g s*CALL 5 6 ; M Hd ;e . 9 :* n }g :* :® 10 14 011316 15 011%20 16 011 52 17 011324 18 0113%6 19 011; 2 20 011334 21 011336 2% 011;20 25 011344 24 011346 25 011350 26 011352 27 011356 28 011360 010046 0 6 010246 0O 6 01 1 100002 005216 005401 016602 100002 005316 005402 012746 005000 33 011372 34 011374 35 011376 36 011400 37 011402 38 011404 39 011406 40 011410 41 011414 42 011420 63 0114622 46 011626 4% 011426 LSB'S MSB'S $MULT: MOV MOV MOV CLR MOV BPL RO,=(SP) R1,=(SP) R2,=(SP) =(SP) 12(SP) R 1% s:sPUSH RO ON STACK ;ssPUSH R1 ON STACK s:PUSH R2 ON STACK ssCLEAR THE SIGN KEY ssGET THE MULTIPLICAND ::BR IF PLUS BC( 4% ;:DON'T ADD IF MULTIPLICAND = 0 000012 000014 1%: 000021 2%: 4%: 006001 2 011370 T0P *2 006000 gl 011366 0 011364 - 3%: 060200 005316 001372 022616 001403 005400 005401 005600 005726 010066 010166 012602 012601 012600 000207 INC NEG MOV BPL DEC NEG MOV CLR ADD ROR 000010 5%: - o (SP) R1 14(SP) ,R2 2% (SP) R2 #17.,-(SP) RO R2,RO ;:POSITION THE PARITIAL PRODUCT AND (SP) ssHAS ALL BITS OF THE MULTIPLICAND BEEN DONE? R1 BNE CMP BEOQ NEG NEG SB( 1ST MOV MOV MOV MOV MOV 3% (SP)+,(SP) 5% RO R1 RO (SP)+ RG,12(SP) R1,10(SP) (SP)+ ,R2 (SP)+,R1 (SP)+ RO RTS :2SET THE SIGN KEY ssMAKE THE MULTIPLICAND POSTIVE 3GET THE MULTIPLIER ::BR IF PLUS s sUPDATE THE SIGN KEY ssMAKE THE MULTIPLIER POSTIVE ssSET THE LOOP COUNT ;sSETUP FOR THE MULTIPLY LOOP RO ROR DEC 000012 MULTIPLICAND,=(SP) PC,SMULT ;sPRODUCT IS ON THE STA(K :' 103001 §9 011362 MOV JSR RETURN PC ssTHE MULTIPLICAND s:BR _IF NO s sSHOULD PRODUCT BE NEGATIVE? ;G0 TO EXIT IF NO ssYES==SO MAKE IT SO ;sCLEAR SIGN INFO. OFF OF STACK ::PUT THE PRODUCT ON THE STACK (MSB'S) ::LSB'S ;sPOP STACK INTO R2 ;:POP STACK INTO R1 :sPOP STACK INTO RO L CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 22 10N GLOBAL SUBROUTINES SECT 1 i S 0114§% 810;46 9 0114 12700 10146 011440 8 011446 01 70; 012701 0 018 10 011452 11 011454 1; 011453 13 011462 00631 ooo§41 oog 66 10 oos 15 011470 16 011472 17 011474 18 011476 19 011500 005301 003367 005720 005302 003361 1% 011464 20 011502 21 011506 2§ 011512 23 011514 24 o11s1g 25 011522 6 011524 7 o11s§6 8 011530 29 011534 30 011536 31 011542 32 011544 33 011550 3, 011552 35 011554 36 011556 37 011560 gs 011562 40 011564 SEQ 0050 y ;:OCTAL TO HEXADECIMAL CONVERSION ROUTINE & 0114 9 011459 & : 011564 00004 000004 000006 000001 012702 000004 012700 005710 003005 012720 00530 00337 00041 011564 000011 062720 005302 003366 012602 012601 012616 000207 000067 R1,=(SP) R2.=(5P) #PSTACK,RO :SAVE R1 CLR #4,R2 #4 R (rG) SGET THE ITERATION VALUES :AND DUPLICATE FOR TWO LOOPS SINITIALIZE THE BUFFER MOV MOV ASL cLe ASL BCC (RO) $SAVE R2 *SET UP THE BUFFER ADDRESS (SP) $ *MOVE THE PREVIOUS BIT(S) OVER SCARRY = 0 SROTATE A BIT FROM THE TEST VALUE *IF 2ERO, SKIP NEXT INSTRUCTION R1 2% (RO) + R2 1% SONE LESS ITERATION TO GO *BUT NOT DONE UNTIL = 0! *NEXT BUFFER LOCATION :ONE LESS ITERATION T0=-GO :1F NOT ZERO, KEEP GOING' BIS #8110, (RO) MOV #4,R2 ST 8GT MOV DEC BGT (RO) 5% #60, (RO)+ R2 43 :CONTENTS ZERO? SIF NOT, SKIP NEXT SSET THIS CHARACTER = NULL SONE LESS CHARACTER TO GO *IF NOT ZERO, KEEP GOING CMP BHI ADD (RO) ,#11 6% #60, (RO)+ SALPHA OR NUMERIC CHARACTER? SIF > 11, ALPHA! *MAKE NUMERIC ASCII 8s: ADD DEC BGT MOV MOV MOV RTS #55.,(R0)+ R2 5¢ (SP)+,R2 (SP)+.R1 (SP)+. (SP) PC PSTACK: .BLKW 10, 3s: 4: 000060 021027 101003 062720 000402 1%: 28: os§71 MOV MOV OCTHEX: MOV 5%: 000060 6%: 7%: DEC BGT ST DEC BGT MOV BR BR #PSTACK,RO 11 7% ‘MARK THE BIT AS BEING SET :GET THE NEW ITERATION COUNT SAND GET THE BUFFER ADDRESS AGAIN :DONE, RETURN! *AND GO=-ON :MAKE HEX ASCII SONE LESS ITERATION T0=GO SONE LESS ITERATION, IF NOT ZERO *RESTORE R *AND R1 *MOVE STACK OVER INPUT VALUE *AND RETURN ;SOTWARE PSEUDO STACK CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 23 GLOBAL SUBROUTINES SECTION 1 L SEQ 0051 i :SUBR TO GENERATE A PSEUDO RANDOM NUMBER 4 :THERE ARE 3 SEED VALUES THAT CAN BE SAVED .tue NUMBER IS RETURNED IN SRP1 5 ? 011610 812066 8 011612 013700 9 011616 10 011650 ooo§a1 005337 14 011636 063700 11 011624 1; 011656 13 011630 15 011640 16 011644 17 011646 18 011650 19 0116564 20 011656 21 011660 22 011664 gz 011666 25 011670 26 011672 27 011674 006100 o§1oo 063700 010037 006100 100 063700 006100 006100 010037 012600 000207 000000 001233 007622 011672 011670 011670 011674 011672 011674 : 011674 RAND: :T0 GENERATE THE PSEUDO RANDOM NUMBER MOV RO,=(SP) cLC DEC SRNCON MOV ROL ROL ADD ADD MOV ROL ROL ADD ROL ROL MOV MOV RTS $SRNCON: 0 $RP1: 1233 $RP2: 7622 $RP1,RO :SAVE RO :GET A SEED : RO RO $RNCON, RO $rRP2,R0 RO, SRP1 RO RO sapz.ao o RO, SRP2 (SP)+,R0 PC ;RESTORE RO SEQ 0052 CIRJLAD RPO7 FCTNL TEST MACRC v04.00 1=JAN=B3 11:06:45 PAGE 24 GLOBAL SUBROUTINES SECTI ON % [ ; : 2 +1= KW11=P 1= KWi1l=L :THIS, ROUTINE WILL ALSO SETUP “‘TICKMS' (TIMC PER CLOCK TICK 10 11 ¢ 011676 002250 16 011706 000120 15 ST.CLK: CLR 012142 }g 011702 011712 011714 17 18 011716 19 #'P,RO CSCLCK RO,RS BCC 1% OO0O0O0O0O OO =t b oo Ot b ad d ONONN SENONOC 012122 MOV ADD (R5) "PKB #2.PKB 012124 ADD 04 Pkt MOV MOV MOV (R5)+,PKV (RS) + HERTZ #1,CLKSTA MOV TRAP MOV #'L.RO C$CLCK RO,RS BCC 38 MOV ST 002250 1%: s W [ LN T S oo NN = s -y NN o OCO00O0 POt o O b wt SOMNY S =08 d OO WNNNNWVININININNYN OO bttt SO b ON =D s b OOOOOOOOgOOO O S MNINVMNIVIRONIN = =2 O RS,PCLKTB MOV JSR BF (R§) ,PKCS (R§)+,PKC sASSUME “‘UNKNOWN'' HERTZ ;1S THERE A P=CLOCK PRESENT ? ;GO TO 18 [F NO :SAVE P=-CLOCK TABLE ADDRESS :GET "CSR' ADDRESS :MAKE PKB ADDRESS BY sADDING 2 :MAKE PKC ADDRESS BY sADDING & (RS)+ :SKIP OVER °'BR LEVEL' PC.ST.PCLK 2% ;START P=CLOCK AS A WATCH DOG TIMER MOV RS,LCLKTB ST MOV MOV MOV JSR (R5)+ (R5)+,LKV ¢ HERTZ (R5) #-1,CLKSTA PC,ST.LCLK MOV 002250 :GET "VECTOR® ADDRESS sGET "HERTZ' LINE FREQUENCY sSET P-CLOCK FLAG ;1S THERE A L=-CLOCK PRESENT ? ;GO TO 3% IF NO (R§)+,LKS ;SAVE L-CLOCK TABLE ADDRESS sGET "CSR' ADDRESS :SKIP OVER "BR LEVEL' sGET 'VECTOR' ADDRESS ;GET °"HERTZ® LINE FREQUENCY :L=CLOCK FLAG sSTART L=CLOCK AS A WATCH DOG TIMER ;GET THE CLOCK TICK COUNT OO0 O b b oo O b b O =t LA TN 3 50 51 012050 52 012056 53 012064 MOV TRA? MOV sASSUME °*‘NO CLOCK' sSET L=CLOCK P=TABLE, START L-CLOCK — N e 42 012020 43 012024 44 012026 45 012032 46 012036 47 012044 48 HERTZ MOV 000114 O=00 40 41 012014 -_ 35 012002 012006 012010 36 37 012012 38 39 N ~ o & 012002 CLKSTA CLR sSET P=CLIuk P=TABLE & START P=(LOCK o 4 011730 25 011734 26 011742 27 011746 28 011754 §9 011756 0 011762 31 011766 32 011774 gS 012000 N MILLISECONDS) SAND “'TICKUSTM (T] ME PER CLOCK TICK IN MICROSECONDS) AS PER L NE FREQUENCY. SCALL sSTART THE CLOCK PC,ST.CLK JSR : RE TURN : 8 9 20 2] 22 011720 g! 0117%6 — :DETERMINE IF THERE IS e CLOCK ON SYSTEM, START THE CLOCK. “'CLKSTA'TM WILL SINDICATE THE CLOCK TYPE. ?s NO CLOCK 3 2%: MOV #20.,TICKMS (MP HERTZ,#50. MOV #20000. . T1CkuS ;ASSUME :20000.0 21S IT S0 20.0 _ USEC HERTZ LINE FREQUENLY ? CINL TEST MACRO v04.00 1=JAN=B3 11:06:45 PAGE 24=1 xu£§ SECIION 14 127 12737 207 ooooig 0404 BLA 815112 12114 oooogg 0404 38: MOV 38 #16. ,T1CKMS RT: PC MV TICKMS: .WOR) TICKUS: .WOFD B #1886, ,TICKUS 15, 16666. 5 SEQ 0053 :BR ;r YES ‘MUS 05 60HZ, 16.666 MSEC & :16666.0 USEC :16 MILLISECONDS PER CLOCK TICK 116666 MICROSECONDS PER CLOCK TICK :KW11=P CLCCK TABLE, CSR REG, PKB REG, PKC REG & VEC ADR 000000 PCLKTB: w0 O ;P=CLK TBL ADR 17254 17254 PKCS: PKB: JWORD WORD 172540 172542 ;7ONTROL & STATUS SCOUNT SET BFR PKV: "WORD 104,106 SVECTOR 172544 000104 PKC : 000106 ‘WORD 172544 :COUNTER ;KW11=L CLOCK TABLE, CSR REG & VEC ADR 0o = 00 I3 ~ IR ®00 000000 177546 000100 000000 NN PON) = e cd e e ed 012746 012746 013746 012746 104437 062706 012777 000300 012312 012126 000003 ; 000207 e d D Db W N 8'\!0‘&0:0& oo D — D d ol oo NN — —a O ©O0O0 WV — bDb ed D oo oo SERIRR : 88“‘80\’“" SN O W NN d b 002233 [elelelelelelele BNeT-] 105737 001021 OO0O0O0OOO0O0 00 © O 00 0o 0o 0o 0O ?-m’fi-‘ooo Ng\n 80 012144 —a 000102 000010 000001 012777 000115 LCLKTB: .WORD O :L=CLK TBL ADR LKS: LKV: MORD “WORD 177546 100,102 ;CONTROL & STATUS :VECTOR MERTZ: WORD O :60 HZ. OR 50 HZ. LINE FREQUENCY 1STB BNE STOFLG s MOV MOV MOV MOV TRAP ADD MOV #PR106,=(SP) #KWSRV .= (SP) PKV,=($P) #3,-(SP) C$SVEC #10,5P #1,3PKB :ALLOW SOF TWARE TIMECUTS ? *NO=-BRANCH sSETUP VECTOR FOR P=CLOCK ST.PCLK: 177714 MOV 177704 1%: 105737 001016 002233 012746 01%766 000300 012312 ST.LCLK: #115,3PkCS RTS PC TSTB BNE STOFLG 1s MOV MOV #PRI06,=(SP) #KWSRV .= (SP) 013746 012136 MOV LKV, =($P) 104437 062706 TRAP ADD CSSVEC #10,5P 012746 000003 000010 012777 000100 177654 000207 MOV 1$: MOV RTS :COUNT ONE TICK S INT.EN."",COUNT DCWN'', "MODE 1 (REPEAT)", :"'LINE FREQ'', AND "‘RUN"’ :RETURN :ALLOW SOF TWARE TIMEOUTS ? *NO--BRANCH *SETUP VECTOR FOR L=CLOCK #3,=(SP) #100,aLks PC :START THE KW1l=L *RETURN :Efiff ROUTINE IS USED TO STOP THE SYSTEM CLOCK ; JSR PC,STOPCK :CALL ROUTINE o ~N 2 -008 ~ - e i NN [elelelelell=] $ 0;01.3PKCS 1%: 2%: #100,a8LKS PC NIN) = =2 rororonN WNNNW N LAt LN Te P —p—) [=l=lele] L10006: JS R TICKMS,=(SP) PC,RPTMR sTIME PER TICK IN MILLISECONDS sCOUNT THE ELASPED TIME RT] OObb°~8 N O N NN NN ~N NN NOWNN ~ NNSNNNN ~ NOWSS S ~ NoANoOrOrONON OO R b Tl * ol = L T D P = OO0 =0000 D i o D D D i D e D D e D 000001 MOV TRAP ADD #3,=(SP) CSSVEC #10,5P 177510 MOV 1$: WAIT BIC MOV L10007: 288 28: S e o i #PR106,=(SP) MOV 177530 177520 #101,3PK(S aPKV.=(SP) MOV MOV MOV :STOP CLOCK *SAVE THE OLD CLOCK VECTOR ADDRESS SSETUP VECTOR FOR P=CLOCK #18,-(5P) PKV.=(SP) #240. ,arxB #105,3PK(S #101,3PKCS #28,(SP) MOV MOV MGV MOV TRAP ADD #PR106,=(SP) (SP)+,=(SP) PKV,=(SP) #3,-(SP) CSSVEC #10,5P RTS PC CLR — e uunuununal~b¢&bleufig VI R W = OV NOWVI=Y MOV FORSEC: BIC MOV o D o 177566 D s sSTOP THE L=CLOCK CLOCK INTERRUPT SERVICE ROUTINE KWSRY: aPkB :4 SEC DELAY AT LINE FREQ *RUN AT LINE FREQ, DOWN MODE, IE=1 ‘WAIT FOR CLK INTER $STOP CLOCK *ADJUST FOR RETURN :RESTORE OL. VECTOR ADDRESS FOR P=CLOCK :CLEAR CLK BFR COUNT D :ROUTINE TO PROVIDE A 2 MS STALL AFTER A SEEK OPERATION IN THE SEEK TIMING D i STESTS. THIS STALL 1S REQUIRED TO COMPENSATE FOR THE ‘ACCESS READY' DELAY ;é:tlne RPO7. THIS STALL TIME IS NOT INCLUDED IN THE CALCULATED SEEK TIMES. D i D il il — el i BIC RTS ;1S THERE A CLOCK AVAJLABLE ? sBR IF KD sBR IF L=CLOCK ;STOP THE P=CLOCK sA RECALIBRATE COMMAND (alelelelelelelelelelelelelelelaloleloleTo o B - 1) ey w S 177624 kKS‘l sTHIS SUBROUTINE IS USED TO RELOAD THE (LCCK FOR A & SECOND TIMEOUT DURING L N N N N N e L L L LN LN LN N L A LN LN v L S IL V¥ ¥ 3F O SF S8 X 08 o F o8 20 WWWNWWWWWW N NO VWS SN NN WWNNIN) b b b e = O NSOONONNOY NS o ornN O VS WN 2O \nbw-flosaflgm?&)-‘ "3 il D i o - WwwnonoN W =000~ ee —D 177620 STOPCK: T1ST BEO BM] gac sKW1T D e NNV = il D il @2 =e D i e D i 200000 D i i D o0 8 og SEQ 0054 lsaCRO v04.00 1-JAN=-B3 11:06:45 PAGE 24-2 : : 042777 017746 012746 012746 177442 TWOMS: JSR RETURN BIC PC, TWOMS #101,3PKCS MOV aPKV.=(SP) MOV MOV #PR106,=(SP) #2%,-(5P) ;STOP THE P=CLOCK *SAVE THE OLD CLOCK VECTOR ADDRESS sSETUP VECTOR FOR P=CLOCK OO0 =OONO O= OO0CO 000 177404 190 012646 191 012654 192 012662 #200, ,aPxB :LOAD THE CLOCK BUFFER PC,RAND SYES, FETCH A RANDOM NUMBER (SP)+,aPKB SADD IT TO THE BASIC 2 MSEC STALL imstL RP1,=(SP) 246?77, (5P) 177346 1%: #101,3PKCS 177336 2%: #101,aPKCS #38,(5P) L10010: 3¢: #PR106,-(SP) (SP)+,=(SP) PKV,=(SP) :zanoon STALL? *GET RANDOM NUMBER SLIMIT IT TO 25 MSEC SSTART THE CLOCK :STOP THE P=CLOCK $ADJUST FOR RETURN :RESTORE OLD VECTOR ADDRESS FOR P=(CLOCK #3%,-(SP) 000003 CSSVEC #10,SP 000010 177302 oPKB PC sSET COUNT = 0 :RETURN sTHIS ROUTINE LOADS A READ HEADER AND DATA COMMAND OR A SEEK COMMAND sINTO DPB.B+2 AND DPB.C+2, DEPENDING ON THE STATE OF REDHDR FLAG :THAT CAN BE ALTERED BY THE OPERATOR. sCALL NNNOANNNN 189 012644 #10,5P 012126 o000 = O 2O —=—200 171 012614 172 012620 176 177 178 179 180 181 182 183 184 012622 185 012622 186 012626 187 012630 188 012636 SEQ 0055 CSSVEC 000300 012574 012576 012602 012606 012610 5 PKV,=(SP) 012566 169 012570 170 012570 D #3,-(SP) O==00 ONN== _— MM v NI s=(fl0 v04.00 1-JAN=-B3 11:06:45 PAGE 24-3 OO0 -0 159 012510 157 01 512 158 01252 159 01 Si‘ 160 012530 161 012534 16§ r£12540 163 012544 164 012552 166 012554 167 012562 168 012566 ONINININ S = NNON 5NN ONONNNEONYNNESNN O NN= S NSNNOWSS S - NN NONNONOOr 012504 SR23822 O =bd 1 473 1250 (=l=l=] 012472 -0 CIRJLAD RPO7 FCIN GLOBAL SUBROUTINE LDCMD: 002226 000173 000173 002562 002602 000105 000105 002562 002602 JSR RETURN PC,LDCMD 1STB BEOQ REDHDR ;DO EXPLICIT SEEKS FOR VERIFYING ? Sgbub.b?fl.(*? :DATA COMMAND MOV MOV BR 1%: MOV 2%: RTS MOV 1% #RDHD ,,DPB.B+2 :NO==BRANCH ;NO=-=SET UP FOR READ HEADER AND #SEEK ,DPB.B+2 ;SETUP FOR SEEK COMMAND gEEEK.DPB.C°2 SEQ 0056 1 i :ERROR ANALYSIS ROUTINE 4 :R1 ;RO NOT USED :R BASE ADDRESS OF SAVED REG'S TABLE g :RS LINK AND RET 10 1" 3 : CALLING SEQ: JSR RS ,ERRANY }‘ 3 bl 9 :g‘ 1; : 15 012664 ERRANY: DPB ADDRESS TEMP STORAGE DPB FET 012664 012666 012670 012672 16 012674 010146 010246 010346 010446 005037 002254 MOV MOV MOV MOV CLR 18 012702 19 012706 01610; 016237 000014 000036 MOV MOV 17 012700 20 012714 21 0127%2 g; 8}2;32 012501 116237 116237 533255 000006 000007 000002 4 015740 004737 014206 25 012744 26 012752 27 012754 012756 032762 001406 104456 012760 012762 %g 012764 000001 005331 007604 000137 30 012770 31 012776 32 013000 013002 013004 013006 32 013010 032762 001406 104456 000002 005376 007604 000137 36 013022 37 013024 38 013032 39 013034 013036 013040 013042 2? 013044 001412 032762 001006 104456 000003 005440 007604 000137 4«2 013050 43 013056 46 013060 032762 001406 104456 020000 MOV 002266 002272 002270 000150 000000 1%: 014042 020400 000010 2%: 014052 gs 013014 032762 017000 000010 3%: 040000 000012 014052 040000 000010 4%: R1,=(SP) R2,=(SP) R3,=(SP) RG,=(5P) SVSTAT (RS)+,R1 14(R1) ,R2 36(R2),CYL.RD MOVB MOVB gr?a 6(R2) ,SEC.RD 7(R2),TRK.RD g§a1).01so BIT BEQ TRAP #MCPE,0(R2) 2% CSERHRD JSR PC,ADJUST ::PUSH R1 ON STACK ::PUSH R2 ON STACK ::PUSH R3 ON STA(K ::PUSH R4 ON STACK :PROGRAM FLAGS: EACH BIT INDICATES ERROR TYPE :DPB ADDRESS :ADDRESS OF SAVED REGISTER TABLE ;GET CURRENT CYLINDER :GET CURRENT SECTOR :GET CURRENT TRACK :1F DATA TFR CMD :THEN GET THE DECREMENTED SECTOR ADDRESS :MCPE ERROR ? :BRANCH IF NOT .WORD .WORD .MORD JMP EM DH&4 BIT BEO TRAP WORD .WORD .WORD JMP #MPE 'UPE,10(R2) ;PARITY PROBLEM ? 3% :BRANCH IF NONE CSERHRD 2 EM2 DH&4 JEXIT 32% BEQ BIT BNE TRAP .WORD .WORD .WORD JMP 4% #ERR,12(R2) 4% CSERHRD 3 EM3 DHé&4 32% :BRANCH IF NONE :ANY DRIVE ERROR ? :REPORT THE DRIVE ERROR BIT BEQ TRAP #WCE,10(R2) 5% CSERHRD :ANY DATA PATTERN ERROR ? :BRANCH IF NONE BIT 31$ JEXIT #NED 'NEM'MSPGE 'MXF ,10(R2) :ILLEGAL CONDITIONS ? JEXIT o CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1=JAN=-B3 11:06:45 PAGE 25 GLOBAL SUBROUTINES SECTION F 5 SEQ 0057 GLOBAL SUBROUTINES SECTION 013062 000004 013066 25 013070 000137 48 013102 49 013104 013106 013110 013112 g? 013114 001406 104456 000005 005540 007604 000137 S% 013120 5 0131%6 gg 013130 032762 00100; 000137 040000 56 013134 57 013142 032762 001406 100000 000137 014062 032762 001406 104456 000007 005616 002000 013064 805216 0076?‘ & LMORD EM& +WORD gHAL 014052 6? 013074 032762 100000 000010 5%: 58 013144 013146 013150 013152 28 013154 61 013160 62 013166 63 013170 013172 013174 104456 000006 005560 007604 014052 007604 000137 014072 66 013204 67 013212 032762 001406 000040 ?8 013224 000137 014072 71 013230 72 013236 032762 001406 004000 013242 013244 013246 ;g 013250 000014 005666 007604 000137 76 013254 77 013262 78 013264 79 013272 032762 001042 032762 001444 81 013302 82 013304 83 013312 001412 022762 00101¢ gg 013200 68 013214 013216 013220 013222 73 013240 80 013274 104456 000013 005644 007604 BEQ TRAP WORD .WORD .WORD JMP 6% CSERHRD 5 EM5 DH&4& 32% ;BRANCH IF NONE #OLT,10(R2) sANY DATA LATE ERROR ? JEXIT BIT BNE JMP #ERR,12(R2) 7% 438 ;ANY DRIVE ERROR ? ;BRANCH [F ANY SEXIT 000040 7%: BIT BEQ #PGE ,40(R2) 8$ ;DRIVE PROGRAMMING ERROR ? sBRANCH IF NONE 33% SEXIT #LBC,42(R2) 9% CSERHRD 7 EM7 ;LOST BIT CLOCK ? ;BRANCH IF NONE TRAP LMORD .WORD .WORD JMP 000042 B8%: BIT BEQ TRAP LWORD .WURD DH&44 349 JEXIT BIT BEQ #UCF ,14(R2) 108 sWRITE CLOCK FAILS ? sBRANCH IF NONE JMP 349 SEXIT BIT BEQ MULE ,14(R2) 11% sWRITE LOCK ERROR ? sBRANCH [F NONE .WORD .WORD .WORD JMP 12 EM12 DH&4 349 SEXIT BIT BNE BIT BEQ #DTE,14(R2) 16% #DCK,14(R2) 17% :DATA ERROR ON DRIVE ? ;REPORT THE DRIVE TIMING ERROR sANY DATA ERROR ? sBRANCH IF NONE BEQ (MP BNE 13% #10040,44(R2) 14% SEXIT IF NOT SET ;POSITION REG=10040 ;REPORT ECC LOGIC FAILURE JMP 000014 9S%: TRAP MORD LWORD .WORD 000014 10%: 014072 010000 000014 100000 000014 11%: BIT 000100 000014 000044 128: CSERHRD 6 EM6 DH&4 .WORD TRAP 010040 JEXIT 68%: 104456 0327€2 BIT 2% 000012 014174 013176 .WORD JMP CSERHRD 1 EMN DH&4 CSERHRD IE(H,14(R2) ;ECH SET, THEN RPEC1=10040 oTM CZRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 25-1 - —4 -4 &~ CD;! - - SN ~ ~N !:Edh~nb o gg 87 01 81 88 89 01 0 01 013344 013346 90 013350 z 20’ 2 23 8358 ~NS 013314 8} i]g i gg 013324 84 ; [=l=l=l i [=l=l=l=] CIRJLAD RPO7 ¥ AL SUBROUT 3 o133se 01 gs& ls:cao v04.00 1=JAN=B3 11:06:45 PAGE 25-2 TRAP LWORD 010040 000046 94 95 013370 16%: 013370 013372 013374 013376 g? 013400 11§ 113 013500 114 013506 115 013510 013512 4% JEXIT (MP BHI #10040,44(R2) 15% sLEGICAL POSITION REG CONTENTS ? ;BRANCH IF SO 000010 JMP 4% TRAP TRAP .WORD JMP 000137 014072 032762 000007 000042 17%: BIT BEQ 18%: 003000 000014 19%: 014112 032762 001406 020000 104456 000051 000C14 20%: CSERKHRD 13 EM13 DH&LG 349 dEXIT CSERHRD 45 EM4LS DH&4 348 JEXIT #DPE ,L2(R2) 18% ;DRIVE DATA BUS PARITY ? 34% JEXIT :BRANCH [F NONE BIT BEQ ; INTERFACE PROBLEM ? #ILF'ILR'RMR,14(R2) 19% ;BRANCH IF NONE .WORD LWORD .WORD JMP 15 EMIS DH&4G 35% BIT BEQ #1AE'AOE,14(R2) :POSITION ERROR 20% sBRANCH IF NONE WORD .WORD .WORD JMP 16 EM16 DH&4 36% BIT BEQ #0P],14(R2) 21% .WORD &1 TRAP 000137 EXIT CSERHRD 14 EMI4 DH&LG TRAP 014102 H&G TRAP LWORD .WORD .WORD JMP 000014 CSERHRD 43 EM4LS LWORD -WORD 014072 H&4 LWORD .WORD LWORD .WORD .WORD JMP 014072 C;EINRD & JMP .WORD 014072 SEQ 0058 EM4L7 TRAP 15%: 013356 013360 013362 93 013364 98 013404 99 013412 100 013414 013416 013420 013422 101 013424 102 103 013430 106 013436 105 013440 013442 013444 013446 106 013450 107 108 013454 109 013462 110 013464 013406 013470 013472 111 013474 13%: 18 S LMORD .WORD 014072 6 TRAP CSERHRD JEXIT CSERHRD CSERHRD JEXIY sOPERATION INCOMPLETE :BRANCH [F ? 13514 1 18 1352 18 N 041000 g 4 119 013532 120 0135 0135 013540 }21 014112 81 542 13544 1%? 013550 1%6 013556 125 013560 013562 013564 013566 126 013570 127 RS 8I8SR s8N S00S LRIVFE WRGZR 119 1" 013614 013616 0136%0 01367« 013676 013700 145 013702 146 147 013706 013706 013710 013712 013714 148 013716 149 150 013722 151 013730 000002 000012 c;sauao sBRANCH [F NONE 1 Em? 22%: IEHN.IZ(RZ) 23% CSERHRD 21 ;PROBLEM ? sBRANCH [F SO Em21 H&& 7% 0146122 23%: 000020 000014 24%: JEXIT 14(R2) ,R3 sCHECK IF HEAD MISSING #*C<FER'ECH!HCRC!MCE>,R3 ;CHOP THE REST BITS sMISSING HEAD ? O:ER!ECN!N(RC!H(E.R3 sBRANCH [F NOT 2 CSERHRD 22 Em22 DH&4 38% #FER,14(R2) 25% CSERHRD JEXIT ;FORMAT ERROR JBRANCH [F NOT ? 23 EM23 DH&4 000137 014132 032762 000600 000014 000400 000014 007604 000137 lS:l!LCE.‘Z(flZ) sSERVO OR ACTUATOR SEEXK ERROR ? JEXIT 6% 106456 000027 006235 007604 BIT BEQ H&& 63 H&4 014112 0146132 032762 001406 EM41 .WORD 000720 131 013610 132 013612 139 140 013652 141 013660 16§ 013662 143 013670 144 013672 21%: .WORD .WORD JMP TRAP 177057 130 013604 013640 013642 013644 138 013646 000042 000014 128 013574 129 013600 133 013622 134 135 013626 136 013634 137 013636 SEQ 0059 1 ACRO v04.00 1=JAN=-B3 11:06:45 PAGE 25-3 11 33 CIRJLAD RPO7 ¥ GLOBAL SUBROUT 38% 25%: lflgRC.IL(RZ) 26 CSERHRD 24 EM24 DH&4 38% 0146132 26%: 104456 I?CR(!N(E.1A(R2) JEXIT sHEADER ;BRANCH IF NONE INFORMATION ERROR ? *HEADER CRC ERROR ? sBRACH IF SO JEXIT CSERHRD 46 000137 0146132 032762 001406 017400 EM4L6 DH&44 38% 000040 27%: JEXIY #WURYUNS !WOR !RWUT !RWU2 ! RWU3 40 (R2!} sBRANCH [F NONE 28% sWRITE AND READ UNSAFE ? SEQ 0060 MACRO v04.00 1=JAN=B3 11:06:45 PAGE 25-¢4 TRAP 000040 Em32 9% JEXIT BIT BEQ #DCU,462(R2) 9% :DC LOW ? JMP 014142 000042 28%: — b OO0 SOOOO (=l=l=] W= NO SS9 38 000042 29%: BIT BEO TRAP .WORD .WORD .WORD JMP 014142 000400 000042 308: BIT EM33 ) 9% #1xU,42(R2) 308 CSERHRD 34 JEXIT s INDEX UNSAFE ? sBRANCH [F NONE JEXIT #PHF ,42(R2) ;PROCESSOR HANDSHAKE TRAP 42% CSERHRD sBRANCH [F NOT BEQ .WORD .WORD .WORD JMP FAILURE?? 35 — — NOON SO ) h — D e D e OO0 d D 000100 sBRANCH [F NONE 052737 000451 000091 002254 31%: BIS BR 438 #B1T0,SVSTAT sMCPE=1,RHXX A=SYNC CONTRZL BUS PARITY — —2 — ) i ) e 032762 geanao 014142 052737 000445 000002 002254 32%: BIS BF #BIT1,SVSTAT 438 sRHXX DATA BUS PARITY,ILLEGAL CONDITION 000004 002254 33%: #BIT2,SVSTAT 43% ;PROGRAM ERROR: PROHIBITED COMMANDS ;WERE EXECUTED (WRITE/READ TRACK DES, #BIT3,SVSTAT 438 sDRIVE CLOCK, TIMING, DATA ERROR Ongk.SVSYA! ;ILLEGAL CONDITION ,DECODER, INTERFACE #BITS,SVSTAT ;POSITIONING ERROR #BIT6,SVSTAT sMECHANICAL FAILURE : AIR, TEMP ETC. OO0 O 34%: O 000020 002254 35%: oN 009040 002254 36%: ON 000100 002254 37%: O 000200 002254 38%: #BIT7,SVSTAT 43% ;HEADER INFORMATION ( HEADER FAILURE, 000400 002254 39%: #B118,SVSTAT 438 ;UNSAFE (READ/WRITE, INDEX, TACH) O S — = 0 O P «O O Y - ) ON 002254 o TRACK). wN sFORMAT — ot wh S~ b — ©O — — OO — - ©0 T — T YR STD o sDATA LATE, WRITE CHECK. 000010 — OO0 — OO0 — - OO -ughngkn OO0 014142 .WORD .WORD .WORD JMP H4b 000137 OO0 gmhSNdSOOwgmwa-flooqumbdeom o 00000000 NN NN NNNNYNOO OO0 il D il s D D i D il i D ) il D il ol il D il lh D D s D O O O OO — D 772 OO PR [ e L Al N =O 000 TRAP 000137 Sgianno .WORD .WORD .WORD 43% 43% 43% sRETRY SHOULD BE ALLOWED. : PROBLEM sOR UNFORMAT TRACK ) SEQ 0061 100000 000062 42%: BIT BNE 2325.42(02) .WORD .WORD .WORD &6 TRAP PONUND b e d e e e e ga(no v04.00 1=JAN=B3 11:06:45 PAGE 25-5 MOV MOV MOV MOV RTS CSERHRD {7 Hob 98 JEXIT ;:POP STACK INTO Ré& ::POP STACK INTO R3 ;sPOP STACK ssPOP STACK INTO RZ2 INTO R1 SEQ 0062 CIRJLAD RPO7 FCINL TE ) lg:cao v04.00 1-JAN=-B3 11:06:45 PAGE 26 GLOBAL SUBROUTINES SE T 1 :SUBROUTINE TO ADJUST THE SECTOR ADDRESS BECAUSE IT IS AUTOMATICALLY g : 6 014 ADJUST: TST :%szfnsuleo AT THE END OF A TRANSFER g 7 014 ?g 005737 001914 002272 8 014214 9 014222 10 014226 11 014230 1; 014 13 01424 14 014244 15 014250 16 014252 }g 014256 012 gr 005737 001011 o137§7 005337 oooags 005337 00040 005337 000207 002264 002272 002262 002266 002270 002270 BNE MOV 002272 1%: 002270 2%: 3%: 19 JSR 1ST BNE MOV DEC BR DEC BR DEC RTS PC,ADJUST :CALL ROUTINE SEC.RD 1% :SECTOR 0? NS1,SEC.RD TRK.RD 2% NT1,TRK.RD SVL.RD $ §£c.no s TRK.RD PC sMAKE IT LAST PHYSICAL SECTOR AND DECR TRACK SLAST TRACK? :BR IF NOT SMAKE IT LAST PHYSICAL TRACK AND DECR CYL :DECR CYL JEXIT : SEXIT ;sADJUST TRACK :BR IF NOT ;THIS ROUTINE WILL CALL THE RPO7 DRIVER AND THEN WAIT ON THE FUNCTION g? :IRLEOHPLEYE. IF AN ERROR OCCURS IT IS REPORTED. 22 : 23 gg 26 014260 27 014264 28 014266 §9 014270 0 014274 31 014276 32 014300 014306 014314 33 014322 3% 014326 35 014330 36 014336 37 014336 38 014344 39 014346 40 014352 41 014360 a; 014364 4% 014366 46 014370 22 014374 : : 004437 002540 000774 005737 001775 100036 013737 113737 113737 004537 002540 004537 002540 R4, CALL.A CALL.A: JSR R4 ,RPO7 :CALL RPO7 DRIVER 002556 1$: CALL.A DPB.A+16 1% :DONE? :NO=--L00P 002552 002551 002550 015100 002274 002300 002276 012664 000200 002254 004437 002542 0001067 020750 002542 002540 000240 012637 000204 JSR RETURN 020750 022737 001013 013746 112737 FILL *'DPB'' WITH COMMAND INFORMATION 002542 DPB.A ER ST BEQ BPL MOV MOVB MOVB JSR DPB.A JSR $ DPB.A+12,CYL.DS DPB.A+11,TRK.DS DPB.A+10,SEC.DS RS,ERRABO CMP BNE MoV MOVB #BIT7,SVSTAT 3% DPB.A+2,=(SP) :HEADER ERROR? :1F NOT MATCH, NO R4 ,RPO? S1SSUE THE COMMAND DPB.A JSR 3s: DPB.A “np vV RTS RS ,ERRANY #RECAL ,DPB.A+2 (SP)+,DPB.A+2 R4 :BRANCH !F NO ERROR ;CYLINDER :TRACK ;SECTOR :CHECK THE ABORT CONDITION :PARAMETER BLOCK ADDRESS :DETECT ERROR :SET UP FOR A RECAL COMMAND :THIS BUFFER sFILLER FOR THE DRIVER :RETURN 47 :THIS ROUTINE IS THE SAME AS ‘‘CALL.A'" EXCEPT FOR THE DPB USED AND IF 49 :AND SECTOR) READ IS CHECKED FOR VALIDITY. 4«8 STHE COMMAND IS A READ HEADER AND DATA THE HEADER (CYLINDER, TRACK, 50 :CALL 51 52 gz §5 014376 : : : 004437 020750 FILL DPB JSR R4 ,CALL.B RETURN CALL.B: JSR R4 ,RPO7 ;:CALL DRIVER - SEQ 0063 § 016402 0144 80 014536 81 014540 82 014542 85 014542 84 014546 85 014550 86 014554 87 014556 £ 89 90 91 92 93 G 95 014560 96 014564 97 014566 98 014570 99 014574 100 014576 101 014600 15100 NO~N oo~ 012664 000200 002254 000173 :CHECK THE ABORT CONDITION *BRANCH IF NO ERROR :CYLINDER : TRACK :SECTOR #BIT7,SYSTAT :HEADER ERRORS? #RECAL,DPB.B+2 ;SET UP A RECAL COMMAND R&,RPO? ggp)o.opa.ao2 DPB.B+2,#RDHD 4% DPB.B+16 4 002576 015354 oaa.veava sTAKE BRANCH IF NOT MATCH :1SSUE THE COMMAND :THIS BUFFER SFILLER FOR THE DRIVER o :RESTORE THE COMMAND :DOING IMPLIED SEEKS? *NO==BRANCH :ERROR DETECTED ? :BRANCH IF SO :GO CHECK THE DATA ;ERROR DURING VERIFY 002231 1STB BEQ JSR 015274 .WORD RTS :z:{f ROUTINE STALLF sSTALL R4, STALL SYES==CALL STALL ROUTINE R4 :RETURN (19 STALL1 ? *NO=-=BRANCH :STALL TIME POINTER IS THE SAME AS '‘CALL.B'* EXCEPT FOR THE DPB USED. FILL DPB R&,CALL.C JSR RETURN 020750 CALL.C: JSR DPB.C R R4 ,RPO7 CALL.C DPB.C+16 1% 3% DPB.C+12,CYL.DS DPB.C+1%1,TRK.DS DPB.C+10,SEC.DS RS,.ERRABO 102 014622 103 014626 104 014630 108 014646 RS, ERRABO 2% DPB.B+2,=(SP) Lol 002562 014606 014614 105 014634 106 014636 107 014644 :DONE? sNO==BRANCH RS, ERRANY 002562 002562 CALL.B DPB.B+16 1% 3¢ DPB.B+12,CYL.DS DPB.8+11.TRK.DS DPB.B+10,SEC.DS WO 70 014476 71 014502 72 014304 73 014506 7% 014512 75 014514 76 014522 77 014526 78 014530 79 014532 [=l=i=d 0OO 8 0144 59 01441 60 014414 61 014416 0164;‘ 0144 s 62 0144 635 014444 64 014446 65 014452 66 014154 67 014462 68 014464 69 014470 oo W o 82 LAO RPO7 ¥ AL SUBROUT RS ,ERRANY 000200 002602 002254 #BIT7,SVSTAT 2% DPB.C+2,-(SP) sCALL DRIVER sDONE? +NO=-=LOOP sYES=-BRANCH IF NO ERROR ;CYLINDER ;TRACK ;SECTOR sCHECK THE ABORT CONDITION sHEADER ERRORS? sIF NO MATCH, NO! =TM 8N W ON) o o g3 028756 002602 SEQ 0064 f1EGay -2 AL COMMAND MMAND ER DRIVER S~ O 002602 gNObNOb WU‘NNN—‘—‘g 2o~ 002602 NNNNNSN ~ o e e d D e D D D D o o o i i L0020t 2t af oF 2 JF ¥ I 8 SIS (mlelelelelalelolelelT- BN -ToTole el a3 "3 NIV NN = O 000 o D s D ) D e D ) D i D e e il PONININININININD b d b e o o O NS NN = i D & — o e saCRO V04.00 1=JAN=-B3 11:06:45 PAGE 26-2 (SP)+,DPB.(+2 2%: 002173 5% 3%: DPB.C+2,#RDHD 31 DPB.C+16 3] 002616 015354 002231 0 4%: 015274 5%: sDOING IMPLIED SEEK? sNO==EXIT :ANY ERROR ? R4, VERIFY SEXIT s YES==CHECK THE DATA 5% ;ERROR DURING VERIFY 5% :NO==BRANCH STALLF RG,STALL STALL1 R& sSTALL ? sYES==CALL STALL ROUTINE sSTALL TIME POINTER CIRJLAO RPO7 FCTNL TEST MACRO V04.00 1-JAN-E3 11:06:45 PAGE 27 N SEQ 0065 GLOBAL SUBROUTINES SECTION 1 sTH.S ROUTINE IS THE SAME AS ' CALL.A" EXCEPT FOR THE DPB USED AND 4 :CALL i sON AN ERROR LOCATION “ERR.CT'* IS EXAMINED. IF ERR.CT IS EQUAL TO sSERFLG EXIT IS TO THE NEXT TEST. 5 9 H FILL DPB : RETURN H 3 014742 005027 002340 004437 020750 10 014746 11 014752 1; 8147;6 1 147 g 14 014762 0026;0 0007 ; 005737 001775 }9 8}2;?8 000417 18 014770 013737 15 014764 014776 015004 19 015012 20 015016 21 015020 Zg 015024 25 015026 24 015026 25 015032 26 015034 27 015040 gg 015042 002636 100401 1N 7;7 113737 004537 oozogo 004537 002620 105737 001403 004437 002350 000204 002631 002630 015100 WCEFLG R4 ,RPO7 ;CLEAR WRITE CHECK ERROR FLAG :CALL DRIVER 3%: DRVCAL gleP8016 $ sDONE No-- ooP B 4% *NO ERRORS MOV DTADPB+12,CYL.DS 1STB BEQ STALLF 5% :STALL ? NO--BRANCH STALLZ R4 SIALL TIME POINTER 002§76 002300 002276 012664 002231 (%: 015274 DTADPB B 1ST BEQ BM] MOVB MOvVB JSR DTADPB JSR DTADPB JSR 5%: 30 R4 ,DRVCAL DRVCAL: CLR JSR . 002632 JSR LWORD RTS 1% :BR IF ERRORS sCYLINDER DTADPB+11,TRK.DS : TRACK DTADPB+10,SEC.DS sSECTOR RS,ERRABO :CHECK THE ABORT CONDITION :DATA BLOCK ADDRESS RS ,ERRANY R&4,STALL :YES==CALL STALL ROUTINE ) 3 32 32 :SUBR TO EXECUTEA COMMAND STORED IN DTADPB. *SIMILAR TO SUBR CALL.A EXCEPT THAT HARD AND SOFT ERRORS ARE NOT CHECKED *1.E. NO CALL TO ERRANY, 35 015044 36 015050 004437 002620 37 015052 000774 38 015054 005737 39 015060 001775 40 015062 100003 41 015064 4 42 &4 01 015070 45 015072 0 004537 002 620 013702 207 020750 EXECMD: JSR DTADPB 002636 2%: 015100 002634 BR 1ST BEO BPL JSR 3%: DTADPB MOV RTS R4 ,RPO7 EXECMD DTADPB+16 2% 3% RS,ERRABO :EXEC CMD :DPB PIR SWAIT FOR @ NOT FULL DO E? ‘WAIT FOR DONE :SKIP ON ERROR FREE DONE *ERROR: CHECK ABORT CONDITION SEXIT TEST IF *DPB*+16 SET WITH ERRORS: NED*PRIOSYOOHCPOPAR*OFL*UNS DTADPB+14,R2 PC PB* PTR :FETCH AD OF SAVED REG TBL CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 28 SEQ 0066 GLOBAL SUBROUTINES SECTION 1 § :THIS ROUTINE IS USED TO DETERMINE THE ABORT CONDITIONS OF 4 :CALLING SEQ ; : :THE 1/0 ROUTINES 5 . : ; 9 015100 10 015102 010146 01o§4e 1; 8‘?1 816‘ ; 000014 11 015106 13 01511 000036 002266 116237 000007 00227 116237 16 0151 016105 18 015144 001405 015150 015152 01515¢ 20 015156 21 015160 22 015164 23 015166 015170 015172 015174 24 015176 000031 006330 010600 000440 032702 001405 104455 000032 006366 007604 000430 015214 28 015216 007604 000420 15 015126 17 015140 032702 19 015146 25 015200 26 015204 27 015206 015210 015512 29 015220 30 015224 31 015226 015230 015232 015234 g; 015236 T 015240 34 015244 35 015246 015250 015252 015254 36 015256 37 015260 38 015264 39 015266 2g 015270 42 MOV 16 ooooo; 000016 MOV MOV 002275 000004 1%: 032702 001405 1G4455 000033 0064 36 001090 28: 032702 001405 104455 000036 006475 010600 000410 032702 001407 104455 000037 006552 006000 3$: 050000 4: 000400 013705 012602 012601 000205 002252 5%: 6%: 14(R15 ,R2 *ADDRESS OF SAVED REGISTER TABLE (r8)+ A1 36(R2).CYL.RD MOV 16(R1) ,R2 (RO).TRK.RD BIT #BI1T1,R2 TRAP CSERDF 1% MORD .WORD .WORD BR BIT BEQ TRAP WORD .WORD .WORD BR 25 EM25 DH25 1 #B1T2,R2 28 CSERDF 26 EM26 DH&& 1 .WORD BR DH&44& 13 BIT BEQ TRAP MWORD .MORD BIT BEQ TRAP LMORD .WORD .WORD BR BIT BEQ TRAP MORD .WORD .WORD 010600 :SAVE R1 :SAVE R2 9<nsx.§ec.ao BEOQ 104455 BR MOV MOV MOV RTS DATA BLOCK PAR ADDRESS R1,=(SP) R2.=(SP) MOVB MOVB 000002 RS,ERRABO NORMAL RET ERRABO: MOV MOV 012501 14 0151 JSR DPB #B1T9,R2 3g CSERDF 27 EM27 :LOAD THE DPB ADDRESS :GET CURRENT CYLINDER :GET CURRENT SECTOR :GET CURRENT TRACK ‘R2 TEMP STORAGE :DRIVE BECOME NON-EXIST ? :BRANCH IF NOT JEXIT *PORT REQUEST TIMEOUT ? :BRANCH IF NOT :TIME OUT ON THIS DRIVE *BANCH IF NOT SEXIT #BIT10'BIT11,R2 :MASSBUS PARITY ERROR ? 43 :BRANCH IF NOT CSERDF 30 EM30 DH25 5 #BIT12'BIT14,R2 :DRIVE UNSAFE OR OFFLINE 6% :BRANCH IF NOT (OTHER ERROR CATLOG) CSERDF 31 EM31 DM 5$ BYPASS,RS (SP)+,R2 (SP)+.R1 hS :THE ABORT ADDRESS SEXIT IF NO ABORT CONDITION SEXIT 013573 46 ABOPAS: 104444 o7 48 49 50 81 5 5 54 55 56 015274 57 015276 58 015302 59 015304 60 015310 61 015314 eg 015320 63 015322 64 015330 65 015332 66 015336 67 015340 68 015344 69 015346 70 015350 71 015352 72 6 SEQ 0067 ;ABORT RETURN ADDRESS FROM "ERRABO' SUBR, VIA 'BYPASS®', 43 &8 01527 c TRAP ON DEV FATAL ERROR CSDCLN ;THIS ROUTINE WILL PROVIDE A STALL IN MILLISECONDS FOR A SPECIFIC SAMOUNT OF TIME IF STALRD = O OR A RANDOM AMOUNT OF TIME IF STALRD = 1. SSTALL1 CONTAINS SPECIFIED 11n§ FOR TESTS 1-6, AND STALL2 :Egrznxus THE TIME FOR TESTS 13-18. ; JSR TIME POINTER R&,STALL ;WHERE TO FIND THE STALL TIME STALL: MOV a(R4)+,=(SP) :PICKUP STALL TIME BEQ JSR MOV 13 PC,RAND $RP1, (SP) *NO==BRANCH SYES==FORM RANDOM NUMBER TAND USE IT FOR THE STALL TIME CLR =(SP) :CLEAR TEMP, LOCATION : 013446 105737 002232 011610 011672 177700 000001 000144 000000 000002 1%: 28: 38: TSTB BIC SUB B8LO MOV ST DEC ggs A ¥ cMP RTS STALRD #ec77,(5P) #1,2(SP) ‘USE A RANDOM TIME ? :BUT NEVER > 64 MILLISECONDS *MORE STALL REQUIRED? 43 *NO=--BRANCH 32 :LOOP IF MORE COUNTS NEEDED #100.,(SP) R 0(SP) (SP)+,(SP)+ R4 SSTALL FOR ABOUT 1 MILLISECOND ‘NOP TO KILL TIME : COUNT ;CLEAN OFF SEXIT THE STACK =D CIRJLAD RPO7 FCTINL T £ 1 MACRO v04.00 1=JAN=-B3 11:06:45 PAGE 28-1 GLOBAL SUBROUTINES S t TION CZRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 29 SEQ 0068 GLOBAL SUBROUTINES SECTION 1 ’?22{‘"‘ 70 SOF TWARE COMPARE HEADER ON IMPLIED SEEKS 4 f :; JSR R4, VERIFY ADR POINTER 9 ; RETURN 5 : 8 015354 010146 9 015356 012401 10 015360 042737 VERIFY: MOV 150000 11 015366 023761 042610 13 015376 023711 042612 15 015406 16 015415 17 015420 013737 1137;7 113737 042610 042613 042612 19 015432 112137 002300 1; 015374 001003 14 015402 18 o1sa§e 001431 112137 20 015436 011137 22 015444 015446 015450 015452 23 015454 24 015462 25 015466 26 015472 27 015474 104456 000052 007020 010340 012737 004437 062704 012601 000204 21 015442 005744 ERR RETURN 002276 042610 000002 002266 002270 002272 1%: 000107 014260 000002 38: 4$: :CYLINDER NUMBER OK? 1% CMP geurroz.<n1) MOV MOVB MOVB DBUFF,CYL.RD DBUFF+3,TRK.RD DBUFF+2,SEC.RD MOVB (R1)+.TRK.DS BEQ ST 2%: DBUFF ,2(R1) BNE MOV 002542 ;SAVE R1 (R&)+ R1 #150000,0BUFF MOVB 002274 R1,=(SP) MOV BIC CMP TRAP MORD JWORD .WORD MOV JSR ADD MOV RTS ;ADDRESS OF DPB+10 (SECTOR NUMBER) 3 (R1)+,SEC.DS (R1),€YL.DS - (R4} CSERHRD 42 EM&2 DH4S #RECAL,DPB.A+2 R4, CALL.A #2.R4 (SP)+,R1 R& :GET ADDRESS OF DPB+10 :STRIP FORMAT AND BAD SECTOR BITS FROM CYLINDER NUMBER :NO==-BRANCH $YES==HOW ABOUT TRACK/SECTOR? *BRAMCH IF GOOD :SAVE THE EXPECTED AND THE :RECIEVED CYLINDER, TRACK, :AND SECTOR :MAKE IT TEST PC+4 :LOAD RECALIBRATE ORDER CODE :GO EXECUTE THE COMMAND : INCREMENT RETURN ADDRESS *RESTORE R1 SEXIT CZRJLAO RPO7 FCTNL TEST ACRO v04.00 1=JAN=83 11:06:45 PAGE 30 SEQ 0069 umuswmmxtsu: 1 i IN}S ROUTINE WILL PERFORM A "HASSBUS" INIT. FOLLOWED BY g ?215 THIS ROUTINE DESTROYS R1 AND Ré ‘A 4 7 g ; : 3 10 015476 005001 14 015516 012727 11 015500 1§ 015503 13 015512 15 01ss§a 16 015530 17 015532 18 015534 19 015540 20 015542 21 015544 015552 015560 22 015566 23 015572 24 015574 25 015600 26 015602 015777 00 ogr 005937 000040 8oge§g 0026 004437 020750 oozeio 000433 005737 001775 1000;1 013737 113737 113737 004537 002620 004537 002620 000107 165162 002632 002631 002630 015100 012777 012777 1%: 002274 002300 002276 2%: g? 015622 000204 165052 165072 3%: 4%: R1 :D0 A MASSBUS 1nxr AND RECAL :RETURN MERE IF NO ERROR RETURN HERE ON ERROR : INCASE OF snaoa (TYPTIM) MOV CLR CLR #CLR,ARPCS2 DTADPB+ 1o DTADPB+12 JSR R4 ,RPO? :CALL THE DRIVER BR ST 4% DTADPB+16 BRANCH IF QUEUE FULL,NO SPACE :WAIT ON DONE BPL MOV MOVB MOVB JSR oerpa 3 sTAKE NORMAL EXiT IF NO ERROR DTADPB+12,(YL.DS s CYLINDER DTADPB+11,TRK.DS :TRACK MOV 012664 000000 000090 RETURN2 DTADPB 002636 ON THE DRIVE UNDER TEST. JSR R4, SRCHOO RE TURN1 SRCHO0: CLR 002622 005724 27 015604 000406 28 015606 29 015614 “RECALIBRATE' BEQ ornope 1S7 #RECAL ,DTADPB+2 :COMMAND = aecALxenAvE 1$ :DPB POINTER DTADPB+10,SEC.DS *SECTOR RS,ERRABO ;CHECK ANY ABORT CONDITION RS, ERRANY (R4)+ :ADJUST FOR ERROR EXIT: #0,3RPDA #0.3RPDC *TRACK AND SECTOR =0 SCYLINDER = 0 B8R 4% RTS R4 MOV MOV *MASSBUS INIT $TRACK=0; SECTOR=0 *CYLINDER = $G0 TO THE EXIT *RETURN §23 :THIS 1S AN RT] WHICH IS USED Y THE TIMING TESTS 35 015624 36 015624 DORTI: L10011: - 015624 000002 sRETURN FROM INTERRUPT RTI gg ‘E:{f ROUTINE WILL INITIALIZE THE TIMERS USED BY THE TIMING ROUTINE &0 21 : 3 4% 015626 4 015632 004737 012700 010646 002302 STRTMR: JSR MOV 45 015636 012701 002336 46 015642 005020 47 015644 020001 51 015662 012737 gz 015674 000207 48 015646 1%: 103775 49 015650 012710 042610 50 015654 012737 077777 002302 077777 52 015670 004737 010700 §s JSR RETURN 002320 MOV CLR CMP PC,STRTMR PC,SAVREG #TIM.UP,RO :SAVE RO=-RS SSTART AT rxn up (MINIMUM) RO,R1 : DONE ? #TIM.PT.RI (RO) + SSTOP AT TIM.P .CLEAR BLO MOV MOV 1$ *NO=-=BRANCH #DBUFF , (RO) *SETUP POINTER #°CBITIS, TIM.UP :SET MINIMUM T nz T0 MAXIMUM JSR PC,RESREG MOV RTS #°CBIT15.TIM.DN :POSITIVE NUMBER PC *RESTORE RO=RS REIURN :THIS ROUTINE 1S USED FOR MEASURE THE AVERAGE SEEK TIME 007 SEa @ 0070 CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 30-1 GLOBAL SUBROUTINES SECTION 56 gg :IN THE TEST 10 STHE TIME IS MEASURED AS: 23 3 2‘ ; ‘o : WHERE THE T1 IS THE SEEK TIME FROM CYLO TO CYL1 gg :THE COUNT2: ROUTINE WILL CALCULATE THE FOLLOWING SUMMATICN 64 : g; : 93 : 71 015676 72 015702 73 015704 7% 015706 75 015712 76 015714 77 015720 78 015724 o1§70§ 00570 001402 012702 010146 017746 004737 016666 002302 80 015736 81 015742 82 015746 83 015750 84 015752 85 015756 86 015760 87 015762 88 015764 016616 013746 006216 005216 004737 006126 100001 005216 062662 177776 002206 000010 90 015774 91 016000 92 016006 005262 017777 062737 000014 174120 000002 94 016020 002002 79 015732 89 015770 93 016014 95 016022 96 016026 97 016034 98 016036 99 016042 100 101 102 103 104 016050 016052 016060 016066 016070 }82 016074 011666 005562 027712 017712 027763 002002 005262 ozrreg 00340 017762 027763 003402 005262 000207 002320 174204 011316 000002 000002 177776 174104 rus 12 1S THE SEEK TIME FROM CYLO TO CYL2 LETC. (TIX6294T2X6284T3X627%0uuen) X 2 629 #TIM.UP,R2 RS 1% #TIM.DN,R2 R1,=(SP) aPK(,=(SP) PC,SMULT 2(§P) ,=2(SP) :COUNT UP TABLE :COUNT UP CALCULATING ? *BRANCH IF SO SLOAD THE COUNT DOWN TABLE SCOEFFICIENT 629,628,627,.... ETC. *MEASURED TIME INTERVAL STIME INTERVAL X COEFFICIENT :SWAP THE LSB , MSB OF THE PRODUCTION MOV MOV ASR INC JSR ROL BPL INC ADD =2(SP), (SP) LC,=(SP) (SP) (SP) PC,SDIV (SP)+ 2% (SP) (SP)+,10(R2) * FOR THE CALLING SEQ OF $DIV ROUTINE :DIVIDED BY 629 (TOTOL # OF SEEKS) : DIVIDEC BY 629/2 :ROUND UP THE FRACTION STIME X COEFFICIENT/TOTAL # OF SEEKS *REMAINDER OVER 0.5 ? :BRANCH IF NOT *ROUND UP ;LSB OF THE TOTAL SuMm INC MOV ADD 14(R2) aPKC,aTIM.PT #2,7iM.P1 :TOTAL SEEK COUNT :SAVE THE TIME INTERVAL ;ADJUST THE POINTER BGE 3$ :BRANCH IF NOT 5% aPK(,4(R2) aPKC,6(R3) 6% 6(R2) ‘BRANCH IF NOT SLOAD THE NEW MAXIMUM VALUE JOVER THE LIMIT :BRANCH IF NOT SUPDATE THE COUNT, IF SO MOV 2%: 164330 002336 ADC CMP 174076 174072 000004 3$: 000002 174056 000004 &$: 174046 174040 000004 000006 65%: 000006 629%629 COUNT2: MOV ST BEQ MOV 1%: MOV MOV JSR MOV 011074 000012 (TIXNG29+T2X628+TIXN627+TeX626. 000 . ) X2 6%: (SP),2(SP) 12(R2) aPKkC, (R2) MOV CMP BGE INC CMP aPKC, (R2) aPKC .4 (R3) 43 2(R2) aPK(,4(R2) RTS PC BLE MOV CMP BLE INC : *HSB OF THE TOTAL SUM “MINIMUM TIME *LOAD THE NEW MINIMUM ‘LOWER THEN THE LIMIT ? *BRANCH IF NOT *UPDATE THE COUNTER IS SO SGREATER THAN THE MAXIMUM VALUE CEXIT 107 108 }?3 sTHIS ROUTINE WILL ADD THE ELAPSED TIME TO THE AVERAGE JMAINTAIN THE MINIMUM AND MAXIMUM TIMES. ;?REE: THIS ROUTINE DESTROYS R2 1M : 112 : MOV MOV #1P,R3 FLAG,RS ? sPARAMETER POINTER SFLAG=0=COUNT UP COUNTER AND —— owv 3 MA (RO 10N JSR COUNT: 177776 000004 1% #TIM.DN,R2 S:xc.(aé)o aPK(,=2(R2) g:KC.L(RS) 2%: (R2) (R2)+ aPKC,(R2)+ 4“8 aPK(,=2(R2) g:t(.b(RS) 3%: 177776 000006 002114 4($: (RS) 5%: 173726 (R2)+ aPK(,(R2)+ (R2)+ (R2) LSTEST, Mm8. 000022 6% sFLAG==1=COUNT DOWN ;PICKUP THE “'UP'* POINTER HY ;USE IT1? sYES==BRANCH :NO==PICKUP "‘DOWN'* POINTER sLESS THAN PREVIOUS LOW? sNO==BRANCH sYES==SAVE IT :LESS THAN THE LOW LIMIT? sNO==BRANCH sYES==COUNT |7 ;ADVANCE THE POINTER 6% aPKC ,aTIM.PT #2,TIM PT PC 6%: ;YHIE ROUTINE PRINTS THE SPEC OF . CAL :GREATER THAN PREVIOUS MWIGM? :YES==SAVE IT :GREATER THAN THE MHIGHM LIM]IT? sNO==BRANCH sYES==COUNT |IT :ADVANCE THE POINTER :ADD THIS COUNT TO THE TOTAL sCOUNT THIS READING ;D0 NOT SAVE COUNTS IN MEMO IN 8 TO ALLOW sA WRITE=CHECK OPERATION AFTER THE TIMED wRITE sOTHERWISE WRITE DATA WILL BE DESTOYED AND A sWRITE CHECK ERROR WCE WILL RESULT Jn RP(S2! THIS COUNT? sLAST CYLINDER X & sNO==BRANCH sYES==-WELL SAVE IT THEN ;ADVANCE JRETURN THE POINTER ALL TIMING TESTS (R4)+,R2 sTHE TABLE BEO 3 SEXIT IF NOT MOV (R2)+,=(SP) JSR R&,SPTYP TABLE ADDRESS TABLE: LMORD NNV O=O s ONOOO: O=O0 OO — ) O=O00 [o = T P oo OO oMo OO NN o~ &~ ronorornorn ooooror B i OO00O0 — s = OO0 "WORD "WORD 002227 000001 000004 SPTYP: MOV 1STB MESSAGE MIN VALUE MAX VALUE TIMTYP MOV n,-5p) ADD 8, 5P MOV TRAP SP,RO CSPNTF 4 sNO==BRANCH #DBUFF +<4*629.>,TIM.PT ;SAVE 47534 173676 000002 PC,COUNT #TIM UP,R2 RS 1%: S3S — - SNWVIWIN N NN NN =W N NN NNSNN NNWVINNN S NN NOOOO N =N = OO ONIN) = NNININININD = NNINNI NN = N NN WD [elelelel=lelelelelelelelel=l={=] OO MNO OO0 = OO —=O OO W NIWWWVHNN N 0000000000000000000008 U b b e e o o o o ch e e o o ol ol o o ol o OONNY 2”” 2 OO oooNO OO b o o o o o o o o i e o o o i o o e e [=l=l-lolelelelelololelelelelololotolatele o) RETURN D000 SEQ 007 v04.00 1=JAN=-B3 11:06:45 PAGE 30-2 NS W N VI NN = OO WA = OO 00 N OO VVVVNVWVWMWVAESE NSNS nW _.dd‘ddddddfldddddddd-‘ddfldddddddddddddddddddddd“‘dd—‘d‘ OF » € 22 3 o « o - e~ i AULDRESS sALLOW PRINT sPRINT MESSAGE 169 016316 170 016320 171 016 016353 16 0163 016340 016342 172 016346 173 016346 016352 016356 016360 016362 174 016366 0204 e SEQ 0072 MACRO v04.00 1=)AN=-B3 11:06:45 PAGE 30-3 (R2)+ —-N —00 01631 01631 &[ NNN S NNS 8**’\) SN NNSONNN 8- NS NSO ONNON =N o &85 SRREIBH OONNON g-‘Obb ~Noo o 16 ~N s~ 16¢76 1630 DO =000 OO -t et 016 016 01627 N - %2 € 2323332222288 &= b 3 = w -~ e © 166 167 168 ; -S(az).-(sr) 1 17777 1711 MSGMIN,=(SP) #2,-(SP) 0002 000006 SP,.RO CSPNTF (RE)+ #6,5P 1%: 2% =2(R2),=(SP} 17777 1713 00002 #2,-(SP) 000006 #6,5P 003054 000001 000004 s THE MAXIMUM VALUE sBRANCH [F NO LIMIT #MSGMAX ,=(SP) SP.RO CSPNTF 2%: #CRLF ,=(SP) #1,-(SP) 3%: RTS sCR=LF CZRJLAO RPO7 FCTINL TEST MACRO v04.00 1=JAN=83 11:06:45 PAGE 31 SEQ 0073 GLOBAL SUBROUTINES SECTION 1 § ::THIS ROUTINE 1S USED TO TYPE THE MINIMUM, & 5 S1T WILL ALSO CHECK THE TIMES TO ENSURE STHEY ARE WITHIN TOLERANCE AND IF NOT FLAG THE BAD TIMES. SMAXIMUM, AND AVERAGE TIMES FOR THE TIMING TESTS ? ,?RIE THIS ROUTINE DESTROYS R2-RS - ; JSR }? : RETURN 9 : TABLE RG,TYPTINM :GO REPORT THE TIMES :POINT TO THE PROPER TABLE 1% STABLE: MSGADR1 ;ADDRESS OF ASCIZ MESSAGE NUMBER 1 14 : SMINIMUM TIME ALLOWED 1 }2 17 016370 18 016372 19 016376 g? 016400 01240 105 001 22 016402 23 016404 002227 017104 24 o1e«1g : MSGADR2 : MAX. ALLOWED TYPTIM: MOV 1STB BNE 1%: 25 01641 26 016414 27 016416 28 016422 29 016426 0164§6 016432 016436 016440 016442 30 016446 31 016452 32 016454 016460 016464 016466 016470 7064 737 013746 012746 010 104 062706 005764 001012 012746 012746 010600 106417 062706 017462 017104 000091 34 016500 016500 012446 016506 016512 016514 016516 012746 010600 104417 062706 000004 000014 RTS R4 MOV R4 ,=(SP) :SAVE RET ADR MOV (R2)+.RS :ADDRESS OF MESSAGE NUMBER 2 MOV 000004 36 016524 001416 016536 016542 016566 016446 012746 012746 005737 001413 010346 000002 000006 017542 177776 01720 00000 3$: (R2)+,118 (R2)+.R3 (R2) ,R2 MOV #TIM.UP,RG MOV MOV MOV TRAP ADD 118,=(SP) #,-(SP) SP,RO (SPNTF 8, 5P JMP 106 JSR ST BNE MOV MOV MOV TRAP ADD 017443 000001 016502 012746 017110 35 016522 0057264 2%: SMAXIMUM TIME ALLOWED :PICKUP THE TABLE POINTER SINMIBIT TIME REPORTS? *NO, PROCEED MOV 002302 *ADDRESS OF ASCIZ MESSAGE NUMBER 2 (R&)+,R2 TIMIYP 1% MOV 33 0164764 000137 017100 37 oaosgo 38 016532 39 016534 MIN. ALLOWED MOV MOV PC,CHKT M 14(R&) 1 = (SP) #MSGNON, #1,-(SP) SP,RO CSPNTF #4, 5P SPICKUP THE LOW LIMIT SAND THE HIGH LIMIT ‘PARAMETER POINTER *SEE IF ALL THE DATA IS TO BE TYPED :DID ANY COUNTS OCCUR? ‘BR IF YES (R&)+,=(SP) #2,-(SP SP,RO CSPNTF #6,SP BEQ 4% MOV MOV MOV -2(R4),=(SP) #MSGBEL ,=(SP) #3,-(SP) 3 BEQ MOV SADDRESS OF MESSAGE NUMBER 1 #MSGMIN,=(SP) MOV MOV TRAP ADD ST CExiT (R4)+ ;ANY SEEKS BELOW THE LOW LIMIT $$FLG 4% R3,=(SP) STYPE # OF SEEKS BELOW LIMIT? IND, SKIP IT *NO=--BRANCH - REI8rea &I8 800062 oo S MOV TRAP ADD MoV MOV MOV MOV TRAP ADD TST 000006 BEQ 017542 TST +,=(5P) #MSGMAX ,=(SP) #2,-(SP) SP,RO CSPNTF #6,5P (RG)+ 5% $$FLG 5% R%.-( P) 177776 017257 000003 3 SKIP | 5%: sFORM THE AVERAGE 011074 :1S THE REMAINDER OVER HALF? ONNN © =t OO0 NN O 0 sNO==BRANC( H sTYPE # OF %EEKS BELOW LIM]T? SP.RO 000004 1 1 1 sANY SEEKS ABOVE THE MIGH LIMIT =2(R&4) ,=(SP) #MSGABV,=(SP) #3,-(SP) 017156 000001 ==i=l=] =t b b OO0 = = O =t et O NONONOO O S oo S ONNN OSSO NN O =N =N = NN S O PNONIWNOWVO NNNONO =N SN ONNN SN NNSO l a NN — NO=O &5 85 B NINWNNIWO OO N =N OO NO O O wvworNwooOo OO O NNINWNONN OO oo 4%: 000010 OCO=000O0O0OOOOOO=O00000O0—=00000O0 =000 -t OO0 000010 ~ PO === 20000 OO WO NNES 0000 ~ o NSO 233323 g2z2 0 CTION D D — e o D i il D D 52 0 53 016702 56 016704 55 016710 016714 016720 016724 016726 016730 56 016734 57 016742 58 016744 59 016752 60 016754 61 016762 62 016764 016770 016774 017000 017002 017004 63 017010 64 017012 017012 017016 SEQ 0074 %S! MACRO v04.00 1-JAN=-83 11:06:45 PAGE 31-1 O =N =N NSO NN NSO NNSNNSNESNNS O—=00000000C il il D D el 50 0 510 D e 4“7 «8 &9 0 ) B D D D il D &~ o ) - D D D D D D D D D VWA D oo O OTM &~ o o NWYWWWA SESEETEE & AEFERESEES OO VW NI = b s SIRSF NNV SHNSERERIRS R RSER (ellololololelelalololololelelolelelololalolelalalelela o) TMTM CIRJLAOD RPO7 9 GLOBAL SUBROU l 6%: (SP) (SP) + ,AVERAG AVERAG,=(SP) OAVGVAL;-(SP) #6,5P 000006 000007 002114 000016 002114 7% Ol&..LSlESI 000022 002114 g18..LSIESY #7,LSTEST =2(R&) ,=(SP) UHSGNUHS-(SP) 177776 017334 000002 7%: sNO==-BRANCH ;s YES==ROUND UP :POP AVERAGE VALUE FOR PRINT sTEST 7 ? sBRANCH [F SO sTEST 14 ? ;BRANCH [F SO :TEST 18 ? ;BRANCH IF SO :SKIP =2(R&) ,=(SP) #MSGSEA,=(SP) ;g 017102 116 117 017542 —¢ — N —— 9%: b h e 2 s ey SP RO CSPNTF #6,5P 5% ;SKIP =2(R&) ,=(SP) #MSGOPE ,=(SP) #2,-(SP) SP RO CSPNTF RS JNEXT MESSAGE POINTER :1F NONE EXIT sNO MORE THAN 2 (SP)+ R4 R& JEXIT 10§ 2% 108: D e #2,-(SP) #6,5P RS 118 ;FETCH RET ADR 118: MSGMIN: MSGMAX: MSGAVG: : AVGVAL MSGBEL : MSGABV: MSGNUM: MSGSEA: MSGOPE :: MSGNON: /AINXAMIN=ZD5XA0. US/ I!NlAHAXf!DS!AO. us/ /AINXZAAVG=/ /%ZD5%A0. US/ AVERAG: /%A" ;ADRRESS OF MSG 1 sAVERAGE VALUE XD4LXA. BELOW THE MINIMUM OF XDSZA0. USIN/ /XA XD4LXA. ABOVE THE MAXIMUM OF /XDSXA. SEEKS TIMEDIN/ / XD5%A. SEARCHES TIMEDIN/ 7/ XD5%A. OPERATIONS TIMEDZIN/ / XA NOT TIMEDZN/ %D5XA0. USIN/ sSUBR TO CHECK IF COMPLETE SPECS ON SEEKS SHOULD BE TYPED s1F THE AVERAGE SEEK TIME IS ABOVE SPEC, OWOO—=OO = NN =N NNV = SO NOONONNNN oo sELSE, DO NOT TYPE THEM sSSFLG IS SET TO INDICATE TYPE THEM [=lelelelelelelelelele e le 113 017532 114 017534 115 017540 MOV MOov MOV Mov 80 017110 81 017133 8% 017156 83 017167 84 017202 85 017257 86 017334 87 017361 88 017411 89 017443 90 91 95 107 017512 108 017516 109 017520 110 017524 m 0175%6 112 017530 BR 8s: 74 017104 75 017106 76 96 97 98 99 100 101 017462 102 017466 103 017474 104 017476 105 017502 106 017506 SEQ 0075 oo 70 017074 71 017100 % (elelelelelelelelel] SO0 OO OV 67 017064 68 017070 69 017072 MOV MOv TRAP ADD 1 [=l&lelelele el BB OO0 81705& 17056 817060 % 000002 : 65 0170 66 017040 017040 017044 017050 o5&N w= 170 74 N 8170 6 170 g ES MACRO v04.00 1-JAN=-83 11:06:45 PAGE 31-2 EC 10N OO0 O0O0O0O—=O0000 P e Y= = Y = e P Pur et 17022 O=00 g= o~ — CIRJLAD RPO7 ¥ 1 GLOBAL SUBROUT 002114 CHKTIM: FLG #9.,LSTEST 10(R4) ,=(SP) R&) ,=(SP) &) ,=(SP) THEN TYPE ABOVE AND BELOW VALUES sINIT FLAG ;TEST 9, AVERAGE SEEK TIMING ? SEXIT IF NOT sPUSH LOW DIVIDEND OF TOTAL TIME OF ALL SEEKS sPUSH HIGH DIVIDEND sPUSH DIVISOR = NUMBER OF SEEKS TIMED sCALCULATE AVERAGE sREM/2 IS REM OVER HALF? 1%: 017542 2%: 3%: $$FLG: sNO, SKIP NEXT :YES, ROUND UP AVG TIME s0UT OF SPEC? SEXIT IF NOT sSET FLAG TO REPORT ALL DATA sTYPE ALL SPECS FLAG SEQ 0076 CZRJLAD RPO7 FCTNL 1%51 MACRO v04.00 1-JAN-B3 11:06:45 PAGE 32 GLOBAL SUBROUTINES SECTI ON TRACK, AND EECTOR ENERATES RANDOM CYL IND ER, SAVES THEN IN THE g P8 (D fapPB+10, 11 & DTADPB+12). TINE DESTROYS R1-R 's 4 ; R4, RANADR 8 017544 9 817550 }? 17556 1§ 004737 113701 042701 01161% 01167 17770 PC,RAND RANADR: $RP1,R1 #177%00.R1 17 017572 18 017574 19 017576 g? 017602 020137 003407 163701 000261 006001 063701 000766 22 017604 g! 017610 020137 002011 25 017616 26 017620 27 017622 28 017624 §9 017626 0 017630 g} 017632 01020 160102 000241 006002 160203 010301 000764 33 017634 36 017640 35 017644 36 37 38 39 017650 40 017654 41 017656 110137 113701 042701 4 017612 6% 017662 43 017664 44 017666 45 017672 46 017674 47 01770C 48 017702 49 017706 50 017710 51 017712 52 017714 53 017716 56 017720 gz 017722 57 017724 :FORM SECTOR IN R1 :REDUCE SIZE TO <= 63 SEARCH FOR FS<=R1<=LS 1 14 017560 15 017564 16 017566 :GENERATE A RANDOM NUMBER 01370 002222 gl.LS 1%: 002220 FS,R1 002220 R1 FS,R1: 1% 002220 g}.rs 2%: :WHILE RI>LS DO R1=FS+(R1=FS)/2 sWHILE R1<FS DO R1=LS=(LS=R1)/2 LS.R% 002222 R2.R R1,R2 R2 RZ.R3 R3,R1 2% 3%: MovB Move BIC R1.DTADPB+10 $RP1+1,R1 #177740,R1 :SET RANDOM SECTOR IN DPB :FORM TRACK IN R1 *REDUCE SIZE TO <= 31 ;BINARY SEARCH FOR FT<=R1<=LT 020137 003407 163701 000241 006001 063701 000766 020137 00;011 013702 010203 002214 4%: 002212 F1.R1 002212 1 {;.a1 002212 5%: 21,:1 sWHILE RI>LT DO RI=FT+(R1=FT)/?2 :WHILE R1<FT DO R1=LT=(LT=R1)/2 LT.R2 002214 R2.R3 R1,R2 160102 000241 00600% 16020 010301 000764 110137 g;.LT R2 RZ.R3 R3.R1 5% 002631 6%: R1,DTADPB+11 :SET RANDOM TRACK IN DPB JSR MOV BIC -0 TM §1161§ 1167 7600 L L — wre - — MACRO v04.00 1=JAN-B3 11:06:45 PAGE 32-1 SEQ 0077 ] R AND R1 76 600,R1 1 sGENERATE RANDOM NUMGERS sPICK ONE FOR CVLlND;R sREDUCE SIZE TO <=1777 OOg-‘OO 800 O 72 017770 73 017774 76 017776 75 020002 76 020004 77 020006 78 020010 79 020012 80 020014 g} 020016 83 020020 84 020024 oW &SN 8N = AN = NN -~ OWRrOWWO NNONN S= COfrOOWw — e Y~ 64 017744 65 017750 66 017752 67 017756 68 017760 ?9 017762 7? 017766 OO0—=0O0—-0000 O=0O0OOC==0ON OOOCOOOWrNO NYWNNON =NIND - sBINARY SEARCH FOR FC<=R1<=L( OO0 O= OO0 = 68 Rog 60 017740 21 ; oW SNINN [=l=1V"] 017730 Ss 8177 58 &Z AL SUBROUT -y [ 8’ e LAO RPO7 ¢ 002206 7%: 002204 8% sWHILE R1>LC DO RI=FC+(R1=F(C)/2 FC.R1 R1 002204 002204 R1,LC 8%: sWHILE R1<FC DO R1=L(C=(LC=R1)/2 002206 002632 9%: R1,DTADPB+12 R& sSAVE CYLINDLR ADDRESS ;RETURN SEQ 0078 CIR ;L AD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 33 RPO7 DRIVER .SBTTL RPO7 DRIVER ;STORAGE FOR RPDS, RPER1, RPER2, AND RPER3 T - T Rbbbt = ¥ -4 T 1 ¥ IbktttdiL’bl et g e ot g et ot o St (elele] czu;uo RPO7 FCTNL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 33-1 61 :DPINT=0 IFf lumau%mon IS NOT ACTIVE ON THE DRIVE g; :DPINT<O IF INITIALUZATION IS IN PROGRESS 65 8 0129 6? 0160 64 0201 6 68 0161 016§ 9 SEQ 0079 02016 0 020164 71 020165 7§ 888 8 DPINT: 80 000 000 { 74 .BYTE BYTE BYTE :DRIVE :DRIVE ? :DRIVE g BYTE .BYTE BYTE BYTE :DRIVE :DRIVE & :DRIVE § :DRIVE 9 BYTL :DRIVE ;TABLE OF PENDING DUAL PORT REQUESTS :DPRGS=0 IF THAT A DUAL PORT REQUEST IS NOT PENDING FOR THAT DRIVE ;s .omos<o IF THAT A DUAL PORT REQUEST IS suoms FOR THAT DRIVE 7? 02016? 000 DPRQS: .BYTE O :DRIVE 0 80 020171 81 ozowi 000 000 BYTE BYTE O O :DRIVE :DRIVE & 78 02016 79 ogono ag 02017 83 020174 gg 02C179 000 000 BYTE BITE 000 000 000 86 87 BYTE BYTE BYTE 0 0 ;DRIVE 1 :DRIVE g O 0 0 :DRIVE § :DRIVE 6 :DRIVE 7 : TRANSFER wm FLAG (TRNSWT=7 WORD) IS A ONE WORD QUEUE. IT WILL CONTAIN THE ADDRESS OF gg "oPs" OF THE 1/0 OPERATION. g? 020176 007300 TRNSWT: .WORD O sSEARCH WAIT KEYS (SRCHWT=1 WORD) sTHIS IS A ONE WORD QUEUE THAT WILL CONTAIN A KEY FOR EACH OF :THE DRIVES THAT ARE PERFORMING A SEARCH COHHAND FOR THE 1/0 8RLR2R 92 93 :REQUEST THAT IS AT THE TOP OF THEiR REQUEST QUEU 95 sEACH DRIVE IS ASSIGNED ONE BIT, STARTING AT BlTOO FOR DRIVE 0. 98 020200 000000 SRCHWT: .WORD O sRPO7 DRIVER ACTIVE FLAG (ACTDRv=1 BYTE) sACTDRV=0 IF DRIVER IS INACTIVE ;ACTDRV>0 IF DRIVER IS ACTIVE — e NOAPWN <O~ 020202 000 ACTDRV: .BYTE 0 ; SOF TWARE TIHER ROUTINE ACTIVE FLAG (ACTSTR=1 BYTE) sACTSTR=0 If SOFTWARE TIMER ROUTINE IS INACTIVE :ACTSTR>0 IF SOFTWARE TIMER ROUTINE IS ACTIVE 020203 000 ACTSTR: .BYTE O ;TIMEOUT TABLE (TIMER=8 WORDS) ;THIS TABLE CONTAINS THE TIME ALLOWED FOR AN OPERATION TIMER: L.WORD .WORD =1 =1 ;DRIVE 0 1 :DRIVE RPO7 c 7 SEG 0080 DRIVER 113 020 12 1 8 0212 120 020214 121 020216 1 ; 020 %0 } ¢ 020222 177777 177777 177777 177777 177777 177777 125 126 =1 -1 -] =1 =1 =1 ;DRIVE :DRIVE :DRIVE ;DRIVE sDRIVE sDRIVE i & 5 9 ;DATA TRANSFER UNDERWAY INDICATOR (DTUW=1 WORD) ;DTUW<O IF NO DATA TRANSFER UNDERWAY }%; 129 020224 JWORD +WORD +JWORD WORD +WORD LMORD ;DTUW=+N (WHERE N=0 TO 7) IMPLIES DATA TRANSFER UKDERWAY ON DRIVE N 177777 DTuWw: .WORD =1 DTM CZR;LAO RPO7 FCT?IL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 33-2 SEQ 0081 CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 34 ;RHXX/RP0O? DRIVER INITIALIZA CALL : WHICH RPO7 DRIVES ARE 70 THE PROPER STATE sNOTE: THIS ROUTINE IR§IVE. JSR RETURN T THE DRVSTA INDICATOR PC.RPINIT RPINIT: JSR 004737 004737 JSR 104440 010046 012700 000240 004737 025176 O00O0—=000=000 o OOO0CO0OON==ONO = purt VWA = ONINWO WN OOOON=NNN=O~N ~ WWWWNONONONO o NNNNSN=SNOWVN =Npary 104441 1$: 2%z N=NONOO N gg: 000207 CMP BLO MOV MOV CMP BLOS R1,R2 1% #DTUW,R2 #=1,(R1)+ R1,R2 2% CLR DaVSTA+2 CLR 010700 (R1)+ DRVSTA CLR DRVSTA+4 MOV RPVEC+2,-(SP) MOV TRAP ADD MOV MOV JSR BR #3,-(SP) CSSVEC #10,SP #CLR,ARPCS2 DRVNO,R1 R4 ,DRVINT 31 CLRB MOV 012600 :g 020412 #PRI05,RO CSSPRI PC,CLRQUE #RPSTUO,R1 #TIMER,R2 BR 105061 46 020406 Mov TRAP JSR MOV MOV MOV MOV 3%: PC,ST.CLK CSGPRI RO,=(SP) CLR 162306 PC,SAVREG TRAP Mov CLR =4 OO0 =0000 O == OO =mtaa NN NS NIWNIW HSNN NEOANNSNN S WO NOWES - b OO NN SRIINSEXS orooMmNn VIS S B Oo8r & (LN N INOTE: THE 'P' OR 'L' CLOCK MUST BE STARTED o e o i b VIS W= OOVONOWVS W= POt OO gWWWWWWNNNNNNNNN : 000401 000402 4«9 ;THIS ROUTINE WILL D TAVAILABLE FOR TESTI d ONOWVSWN=OOV00 NN W - DRIVER TRAP JSR DRVSTA+6 :SAVE RO - RS :TURN ON THE CLOCK :SAVE THE PRESENT PROCESSOR STATUS sCHANGE THE PRIORITY TO 5 ;CLEAR ALL REQUEST QUEUES sFIRST ADDRESS TO BE CLEARED sLAST ADDRESS TO BE CLEARED :CLEAR sARE WE DONE? sBRANCH IF NO sLAST ADDRESS sINITIALIZE sDONE? sLOOP IF NO sSET ALL DRIVES TO OFFLINE sSETUP RHXX/RPO7 VECTOR #ISRV,=(SP) RPVEC ,=(SP) NIT TED DRIVE DRIVE SET OR PARITY ERROR 5% TURN STATUS TO OFFLINE DRVSTA(R1) HE PROCESSOR STATUS (SP)+,RO C$SPRI :E,aesnso ;DRIVE INITILIZATION ROUTINE ;RESTORE RO - RS :BYE-BYE CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 34=1 RPO7 DRIVER 50 51 g§ - 56 §7 58 23 : : : : 62 020414 010546 64 020426 65 ozoagz 66 020434 63 020416 006301 012761 006201 020156 003720 020204 112761 68 020442 69 020446 105061 010177 020146 162216 72 020466 73 020470 ;g 020474 001403 004737 76 020476 77 020502 78 020510 79 020512 020136 0064000 80 020516 gg 020520 105061 032777 001004 105761 001347 000501 83 020522 84 0205¢c 85 020530 86 020532 87 02053¢ 004437 10026 120726 012605 112761 024254 89 020546 001420 91 020554 001415 67 0206436 105061 020136 70 020452 71 020460 000111 010000 112777 032777 000513 88 020542 022705 92 020556 000005 020040 024040 112761 000004 022705 95 020572 96 020576 97 020600 33 020606 022705 001404 112761 000446 024042 012746 000121 100 020610 101 020614 102 020620 103 020622 104 020624 105 020630 106 020634 004437 000000 020726 012746 004437 000032 MOV #DRVNUM,R1 JSR R4 ,DRVINT RE TURN1 RE TURN2 MOVB 108: 162200 162202 162150 020042 177777 024346 010000 024346 ASL MOV ASR CLRB CLRB MOV move BIT BEQ JSR 1%: 020156 022705 001407 ‘DRVSTA IS SET TO THE PROPER CONDITION. DRVINT: MOV 024632 93 020564 94 020570 SEQ 0082 ;1S SET 70 A “1'. fWEN MOL, DPR, DRY, AND VV ARE_CHECKED T0O SINSURE THEY ARE ALL ON A “1°'., AND DEPENDING ON THEIR STATE, ‘ 177777 90 020550 7 ;THIS ROUTINE DETERMINES IF A DRIVE EXIST AND IF IT IS AN RPO7. IF IT IS, A "READ=IN PRESET'' IS ISSUED AND FMT16 2 5 61 . 22%: 020146 :SET THE INITIAL FLAG R1 #2000.,TIMER(R1) ;SET A 2 SECOND TIMER R1 :DRIVE ADDRESS DRVSTA(R!) DRVTYP(R1) R1,3RPCS2 *START DRIVE STATUS AS OFFLINE :CLEAR THE DRIVE TYPE INDICATOR SSELECT A DRIVE #111,arPCs1 ‘DO A DRIVE CLEAR COMMAND (& SEIZE DRIVE) #B1T12,3RPCS2 ;NONEXISTENT DRIVE? BR CLRB BIT BNE TSTR BNE BR DRVSTA(R1) #B1T11,3RPCS1 22% DPINT(R1) 108 33 :SET DRIVE STATUS TO OFFLINE ;SEE IF DRIVE AVAILABLE :BRANCH IF DVA SET *SOFTWARE TIME OUT JSR 26 13 MOV R4 ,RD.RP ;READ THE DRIVE TYPE REG. MOVB CMP (SP)+,RS #5,DRVTYP(R1) BEQ #20040,RS ;:ERROR RETURN ADDRESS *PUT DRIVE TYPE IN RS :SET RP0O7 INDICATOR 28 :BR IF YES CMP #24040,RS MOVB #4,DRVIYP(R1) BEQ 2% CMP BEQ MOVB BR 28: :SAVE RS ;NO===BRANCH i 260 SET ""IE'* WITHOUT A "‘TRE' SLEAVE THIS ROUTINE CMP 020146 #-1,DPINT(R1) 1% PC,SET.IE 33 BEQ 020146 RS, =(SP) :DRIVE NUMBER TO R1 *CALLED BY A JSR *ERROR OCCURRED (PARITY) :NORPAL RETURN MOV JSR 0 8$ MOV JSR 32 28 #20042,RS #24042,R5 28 #-1,DRVIYP(R1) 6% :BRANCH IF NOT SOTHERWISE EXIT :SINGLE PORT RPO7 :DUAL PORT RPO7 :BR IF YES :SET RPO7+ INDICATOR :SINGLE PPRT RPO7+ *BRANCH IF SO ‘DUAL PORT RP07+ *BRANCH IF SO :SET INDICATOR TO "OTHER® SEXIT #121,-(SP) ;DO A "READ=IN PRESET" #B1T12,=(SP) R4 ,WRT .RP SSET FMT16=1 R4 ,WRT.RP SEQ 0083 D o~ oTM JLAO RPO7 FCINL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 34-2 7 DRIVER 130 020740 131 020744 13% 020746 13 134 135 136 137 O=O0Oro0O0-0 VN =NOVONO el =l ONO? O=0000==0000—=—=00 12§ 020710 123 020714 126 020716 125 020724 126 020726 127 020726 128 020730 129 020736 48 024254 080 000012 177777 R4 ,RD.RP 162014 020136 (SP)+ (3] #-1,DRVSTA(RT) 000001 020136 177777 020204 #1,DRVSTA(RT) 6%: 8%: ;STEP OVER THE ERROR RETURN R1 #=-1,TIMER(RT) R1 :WORD INDEX (SP)+,RS ;RESTORE RS JEXIT DPINT(R1) RTS R& s CALL JSR RPO7: O ==t O=O—= OO0 - NNV ONSN —ONNO 147 020754 OO0 -t QOO = — o OO0 O=O—=O— o= NS © S NN =N & ONNO SN SN ~O OO OWwWW PO SO = =NONINN -0 104440 010046 150 020774 151 020776 152 021002 153 021004 154 021010 155 021012 156 021016 157 158 021020 159 0210264 160 021026 161 021032 sSTOP THE CLOCK :DRIVE ADDRESS sREQUEST PRE=-PROCESSOR-HANDLES SUBSYSTEM REQUEST PNTADR 148 020762 149 020770 sSET DRIVE STATUS TO ONL INE (RG)+ R4 ,RPO7 RE TURN1 RETURN2 020760 :FIND OUT WHY ATA=1 i1 S IT UNSAFE? .8 R IF NOT :S 3 T TUNSAFE INDICATOR 6% H 3XI RS 2¢ H ECK ¢ MOL, DPR, DRY, AND VV 7! z;c<al!12!81108!§l T 07!B1706>,R5 sBRANCH IF MOL, DPR, DRY, OR VvV IS CLEAR 020156 020752 146 R4 ,RD.RP 4%: 138 139 140 141 142 143 144 020750 145 020750 sREAD RPDS (SP)+,RS ;AND SAVE IT _IN RS 31 sBRANCH IF ATA=0 ATABIT(R1) ,aRPAS ;CLEAR ATTENTION BIT 167077 O=00~0 ONWVIOCNON 108 02064 109 020644 110 020646 m 8 0652 11§ 065 113 020654 114 020662 115 020666 116 020670 117 020672 113 0%0674 119 020676 120 050704 121 020706 CO=000 107 0 0638 002646 000001 010646 020202 RPVEC+2,R0 C$SPRI MovB 1STB 020414 020136 020166 MOV TRAP CLR 020136 1%: C$GPR] RO,=(SP) MOV 000016 #1,ACTDRY PC . SAVREG (R&) ,R2 16(R2) (R2),R1 R4 ,DRVINT 31 TSTB DRVSTA(RY) 1ST8 DPRQS(R1) 5% BNE ;SAVE THE CALLING STATUS sDON'T ALLOW ANY RPO7 INTERRUPTS T “ACTIVE DRIVER'' FLAG RO - RS CKUP THE DRIVE PARAMETE R BLOCK POINTER EAR THE STATUS/ERROR INDICA TOR Vv E ?RVSfA(Rl) BGT JSR BR BLE ;ADDRESS OF POINTER OF DRIVES PARAMETER BLOCK sRETURN HERE IF QUEUE IS FULL ;RETURN HERE IF REQUEST IS IN QUEUE OR THERE ;1S AN ERROR CONDITION TRAP MOV mMove JSR ;CALL THE RPO7 DRIVER $ sERROR RETURN :NO ERROR ;1S DRIVE STATUS ONLINE? :BR_IF NOT sOUTSTANDING PORT REQUEST FOR THE DRIVE ? :BR IF YES SEQ 0084 CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1=JAN=-B3 11:06:45 PAGE 34-3 SO F22 L oo 358 SN —_— it B NON D il il il oo —_— oo -0 OO ONNN&OW VIS B oOoMNY WWNIIN N==ON NY oS SNV OSSNSO O add Dl D B OO b cd cd w2 D il 020136 02VACT(R1) ;1S THIS DRIVE ACTIVE? PC,OPT IF IF ¥ YES BR ;BR ;CALL THE OPTIMIZER PC.CI7 ;GO HANDLE THE PARITY ERRCR 9% R4 ,DRVQUE ;PUT REQUEST IN QUEVE sQUEUE IS FuLL #0,aRPCC sWRITE THE CURRENT (YL REG 8 sYES 6%: ;1E BIT SET ? PC,SET.IE 8% sSET THE INTERRUPT :RETURN DRVSTA(RT) ;SEE IF DRIVE OFFLINE OR UNSAFE 140000 000016 UNSAFE 7% :BR IF F UNS #BITI5!BIT14,16(R2) ;SET OFFLINE ERROR INDICATOR 100002 000016 2 BR IF OFFLINE :REPORT DRIVE NONEXISTENT #BIT1S!BITO1,16(R 2) 110000 000016 020146 Nt b cd el b ad B - NN ;PUT THIS REQUEST IN QUEUE ;QUEVE IS FuLL 02i106.3R9c51 024632 sSELECT THE DRIVE 9% R4 ,DRVQUE 8s wVios 5%: — D il 025300 000000 000100 R1,3RP(CS2 8% D D 021212 004437 000436 N OO000O 2%: 020126 48: NN O0O0O00O0O MOV 022364 NN O00000O0 161230 025300 0067%7 000435 oo 0000000 105761 NN (o= 04437 000452 000440 NV 000 10 010790 DRVTYP(R1) 8% 8% 10%: 020202 012600 104441 000204 ;G0 10 EXIT #BIT1S'BIT12,16(R2) :DRIVE IS UNSAFE PC,RESREG :RESTORE RO = RS (RG)+ :SETUP FOR NORMAL RETURN 108 SFINISH UP, THEN EXIT 7%: 8%: PC,RESREG *RESTORE RO = RS CLRB ACTDRY MOV TRAP RTS (SP)+,RO C$SPRI SCLEAR 'ACTIVE DRIVER' FLAG *RESTORE PRIORITY 9%: 010700 sSEE IF OFFLINE OR NONEXISTENT (RG)+ R4 *CORRECT sRETURN THE RETURW ADDRESS TO CALLER sOPTIMIZER=CALLED FOR A PARTICULAR DRIVE SMrNVOSsONOON B B BN WNWNNON) = = —d e e e e D o ONUNLNLNLNLNONONOND roruRLRLRORONONONUND d =D tCALL [=lelelelelele el — i VBN =O VooN MNONVPORNONOINURLNUNOND o (=1= e e e e e b e = B (d=l=l=T= 0000000008 c’shfil~u~&»u<: O 00 NN NN = VoW e I e e R e e I e e W) = O V00 NPV EWNN = O OO ~NO W e OO0 E 2 —2 DRIVER LNLSLNL NN N RPO OPT: 020200 161402 #DRVNUM R PC,OPT ;:DRIVE NUMBER TO R1 sSETUP A COMMAND PC,SAVREG CSGPR] ;SAVE RO = RS RO,=-{SP) ATABIT(R1) ,SRCHWT sCLEAR LA SEACH FLAG DPRQS(R1) sRESET THE PORT REQ FLAG #vee PC,GETREQ R? 7% R1,aRP(CS2 #1171, 3rRPCSY sGET "'DPB"* POINTER OF REQUEST :1S THERE A REQUEST IN QUEUE? :NO=-BRANCH TO EXIT sLOAD THE DRIVE ADDRESS sevenes sCLEAR THE DRIVE SEQ 0085 (ll;LlO RPO7 FCTINL TEST MACRO v04.00 1=JAN=-B3 11:06:45 PAGE 34-4 ~NS&sN o WVVNIWWN OO0 108: 140000 000016 110000 000016 000150 000002 000135 000002 020136 828 5% ¥ 025376 #8178,3RPDS 161406 020136 N -t —b Y :T0 PROT REQUEST ,IF NOT :1S DRIVE ONLINE? PC ,POPQUE *NO=--REMOVE REQUEST FROM 1% SYES==BRANCH $ -ga T0 EXIT IF NOT 8s :BRANCH TO EXIT #BIT15'BIT12,16(R2) 1%: #150,2(R2) QU :SET UNSAFE STATUS/ERROR INDICATOR :1S THE REQUEST FOR [/0? 2% s YES==BRAN(CH 2% :BRANCH IF SO #135,2(R2) 021754 PC,CI& ;1S THE DIAGNOSTIC COMMAND ? sCALL THE COMMAND INITIATOR 8% sBRANCH TO EXIT DTUW 4% :DATA TRANSFER UNDERWAY? :YES==GO START A SEAR(CH 020224 2%: 021456 3%: 021042 4%: PC,CI3 8% ;G0 TO THE EXIT 77777 5%: #=1,DPROS(R1) R1,R3 R3 :SET PORT REQUEST INDICATOR :SET UP TO ADDRESS WORDS :CONVERT TO WORD INDEX ;g.aapcc ;ssr'poai REQUEST PC,CI17 :PROCESS THE PARITY ERROR PC,SET.IE sSET ""1E"" WITHOUT A 022364 000100 024632 000207 :DPR SET ? 13 DRVSTA(RY) #B8iT15'8]114,16(R2) SET OFFLINE STATUS/ERRCR INDICATOR RVSTA(RY) ;1S DRIVE UNSAFE ? 010700 PC.CI 8% ;START A DATA TRANSFER :START A SEARCH #20000.,TIMER(R3) 047040 000090 FERVRE D D d D ol oka2 2 2t b o VWSS oON &N s SO0 O — o e de D D D D e e g 000400 3553 BLN FRR RFRRESRNERSE OoMN e eI ] I R P e I R P W NN — e s O oo OO0DO0OOCO0O0O O00000 NN DN OO0 OO0 N COO0O0O00O0OO0O0O0O0O0O00 OO VWY OV BN -O OV®NO VWA = EW VWAV BB N WWJ-‘-‘ OO‘N& mf W = O WO NO WV NN —-O Voo~ AURLNLNLNLAINLNLALNL AL NN N NN AL N NN NI NN NN NI NN NN DRIVER N RPO7 6%: 7%: 8%: #BIT06,3RPCST (SP)+ RO ($SPR :E.RESREG :SET A 20. SECOND TIMER JEX ;SEE IF "1E* ALREADY SET :RESTORE PROC. STATUS ;RESTORE RO = RS *'TRE CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 35 SEQ 0086 DRIVER #4,R3 #2.Ré 1%: (R$)+ (RG)+ (R3)+, (R4)+ (R3)+.=(SP) 024346 R4 WRT.RP 100000 024346 - L= =EO — TI< N 2%: O DECEN 100000 (P l=1F DVDO-N L5N V. TN alaa oL s 024346 D<<< C13: » woO00O 52 021642 53 021646 56 021652 55 021656 56 021662 57 021664 000004 000002 W CEXR g? 021636 2% o 40 021600 41 021602 6% 021606 43 021612 46 021614 4% 021616 46 021622 47 021626 48 021630 49 021632 #DMD, (SP) R&G ,WRT .RP O gZ 021554 3 021556 34 021560 35 021562 36 021566 37 021570 38 021572 39 021576 4(R2) ,=(SP) ON 0 051546 31 021550 :21!6.2(!2) 024346 SO 8 031562 9 021544 O RPCS1,RG R1,3RP(S2 100000 oo 27 021536 RZ.R 000004 [=1=] O ~0O WO ~O 56 021532 R§.72N501 000002 OO NN NO WwN 1 021520 g 021524 0 15;6 2g 021530 PC ,POPQUE 002660 OO=0O OO BO—=N) WOOOr 20 021574 WOMNW=N 20NN 18 021506 19 021510 [« X 3 S (W) Nbb%@-‘Nflg\flflN 17 021500 S RONRNONN &~ L=1%"] SNONVNOO SO 14 0 1696 15 021470 16 021474 cit: 85017 NO WO e }1 145 1§ 031460 e 9 10 1z (R3)+,=(SP) R4 ,WRT .RP 0 S P8 CI1,C13, OR Clé &ATA TRANSFER EARCH REQUESTED BY DATA XFER NOT DATA TRANSFER al<aled 3 L TO=©OMmM 8 CTMM - JSR #DRVNUM,R1 #0PB,R2 PC,CI1? aomn MOV MOV sn)o vazivfl alalal Sra ; LR TR TR PR TR T SCALL 4 -—T D et BN OO e ;COMMAND INITIATOR 1 OOOOOOOOOOOO& OOOOOOS-‘OOOOO WNOO=NOO == 0 RPO REQUEST FROM “DRIVES WAIT"* QUEUE . IN 1RAN§FER WAIT QUEUE DRIVE STIC COMMAND ? IF NOT 3 SGET THE RT NUMBER, PARAME TERS SSET THE GIAGNOSTIC MODE BIT ‘WRITE THE RPMR1 REG sRETURN HERE ON ERROR ;LOAD THE COMMAND AND EXIT ;DESIRED WORD COUNT sRPUC ADDRESS sLOAL WORD COUNT sLOAD BUFFER ADDRESS sLOAD SECTOR AND TRACK sCALL THE LOAD(WRITE) ROUTINE : INDEX OF REGISTER TO LOAD sRETURN HERE ON ERROR sLOAD CYLINDER ADDRESS #BI1T15,(R2) sRETURN HERE ON ERROR ;MAINTENANCE MODE FLAG BIT =(SP) sSET DMD BIT IN RPMR 2% #BIT15, (SP) R4 ,WRT .RP 2(R2),=(SP) R4 ,WRT.RP R1,DTUW c1s sBRANCH [F NOT ;WRITE TO RPMR ;RETURN HERE ON ERROR ;LOAD "‘COMMAND+GO'‘, "‘A178A16'', AND "'PSEL" ;RETURN HERE ON ERROR ;SET "DATA TRANSFER UNDERWAY' RPCS1 ADDRESS 12(R2) ,=(SP) :DESIRED CYLINDER ADDRESS R4 ,WRT.RP ? sSET DMD BIT ONLY THE REST BITS MuST Bt 0 RPCS1, R4 R1,3RP(S2 SET SELECT DRIVE sRETURN HERE ON ERROR 7 ggs LAO RPO? FCINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 35-1 58 28 § 021}g?g 1624 00010 9 826%‘6 61 021 6§ 17 021714 %SI c17 100000 000000 66 8 1750 004639 024346 65 MOV 2 100000 67 021724 63 0 }; 8 000024 022364 71 0217 7§ 021740 004437 000000 ;S 021752 000552 77 0217564 013704 002660 80 021770 81 02177« 122703 001007 000131 ?0 8 1730 012746 000131 024346 78 021760 76 021764 010177 116203 160704 000002 82 021776 016246 000010 004437 000006 022364 000403 024346 88 022014 89 022020 90 022022 122703 001007 016246 004437 000034 022364 000531 000195 1%: 000012 024346 2%: 122703 000115 91 022026 92 022032 93 022034 gg 022036 96 022040 97 022044 001013 3%: 98 022046 004437 024254 99 022052 000032 100 022054 022364 101 02205 116219 000001 10% 022062 004437 024346 103 022066 104 022070 }82 022072 107 022074 000032 022364 122703 108 022100 109 022102 110 022108 001510 122703 001505 112 022114 001014 114 022122 000032 111 022110 113 022116 000107 4: 000117 122703 000147 004437 024254 5%: sRETURN HERE ON EIROR R4 ,WRTRP :SET DMD BIT ONLY,THE REST BITS MUST BE 0 MOV #SEARCH,=(SP) ;START A SEARCH | A— 1T . 1z R4, WRT.RP HAINYENANCE HODE ;RETURN HERE ON ERROR cIs MoV RPCS1,R4 sRPTS1 ADDRESS CMPB BNE OSEARCN R3 1% IS IT A SEARCH COMMAND? :BRANCH IF MOV MovB R1,3RP(S2 2(R2) ,R3 10(R2) ,=(SP) :SELECT DRIVE ;PICKUP THE REQUESTED COMMAND :LOAD DESIRED TRACK & SECTOR JSR 6 c17 BR R4 ,WRT.RP 2% sRETURN HERE ON ERROR ;GO LOAD CYLINDER (MPB BNE MOV JSR 14 c17 BR #SEEK,R3 3% 12(R2) ,=(SP) ;1S IT A SEEK COMMAND ;BRANCH IF NO :LOAD DESIRED CYLINDER CMPB #OFFSET,R3 ;1S IT AN "OFFSET'* REGISTER CHANGE COMMAND ? JSR 32 c17 Movae JSR R4 ,RD.RP :MERGE THE OFFSET VALUE INTO RPOF :BUT DON'T CHANGE THE UPPER :RETURN HERE ON ERROR :BYTE WHEN LOADING THE ;REGISTER (RPOF) BNE 32 c17 000513 :LOAD DESIRED TRACK & SECTOR #BIT15,(5P) MOV 83 022002 84 022006 85 022010 3? 022012 sTHE SECTOR AND TRACK ADDRESS iSR BR Clé: 10(R2) ,=(5P) R4, WRT RP SEQ 0087 #BIT15,0(R2) JSR 0 i1t R ’ BIT BIS ' : R4 ,WRT RP clé 4% 1(R2),(SP) R4 ,WRT.RP ;RETURN HERE ON ERROR :BR _IF NO sRETURN HERE ON ERROR BR clé CMPB #RECAL,R3 :1S IT A "'RECALIBRATE'' COMMAND? (MPB #SETFORM,R3 IS IT A "SET FORMAT'® COMMAND? BEQ (MPB BEQ BNE JSR 32 Cl6 #RTC,R3 Clé 6% R4 ,RD.RP ;60 START THE COMMAND :BRANCH [F YES s1S IT A RETURN TO CENTER? BRANC IF YES :BRANCH 1F NO :READ THE OFFSET REGISTER CZRJLAD RPO7 FCTNL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 35-2 RPO7 K 7 SEQ 0088 DRIVER 115 022124 022364 }}s 0 }‘g 884§6£ 119 § 1§2 ?%e 119 02214 02§‘ }gg 8 1464 000445 12% 055153 00105 122 022146 17 8oogo1 000001 MOVB 26346 ign c17 BR 122703 000141 68: 124 022154 016203 000006 7%: 000010 000011 026254 131 022202 13; 022206 116%37 116 gs 004437 000000 022364 01;623 023705 134 022212 062737 000002 137 022222 138 022226 139 022230 140 022236 141 022240 142 022242 122703 001007 012746 004437 000024 022364 000145 145 022246 146 022250 147 022254 148 022256 149 022260 150 022264 151 022272 010346 004437 000000 022364 004737 052762 004737 154 022300 155 022302 156 022310 157 022312 006301 012761 006201 112761 160 022322 161 022330 163 022336 164 022340 165 022344 166 022346 167 022350 168 022352 169 022356 170 022360 171 022362 125 1 9 022160 127 02 196 128 022172 1;9 022176 130 ogzzoo 133 022210 }gz 022220 }22 022244 }gg 022276 }gg 022320 1e§ 022332 oo14§3 000764 022176 8$: 98 : 022176 100000 024346 000405 11%: 024346 025376 000200 024472 000016 001750 020204 000001 020126 032762 001407 100000 000000 052716 004437 000024 022364 010346 004437 000000 022364 000746 100000 024346 000207 000207 005046 024346 128: 138: CI15: Cl6: ;RETURN HERE ON ERROR MOV 6(R2) ,R3 MOVB MOVB JSR 0 17 MOV CMP 10(R2),9% 11(R2).RS R4 ,RD.RP ADD #2,9% CMPB BNE MOV JSR 24 17 #MAINT,R3 1% #OMD , = (SP) R4 ,WRT.RP BR 128 MOV JSR 0 17 JSR B1S JSR R3,=(SP) R4 ‘WRT.RP ASL MOV ASR MOVB RTS R1 #1000., TIMER(R1) :SET A ONE SECOND TIMER R1 #1,DRVACT(R1) ;SET THE DRIVE ACTIVE PC *RETURN TO THE USER BIT BEQ #BIT15,0(R2) 1% :MAINTENANCE MODE ? ‘BRANCH IF NOT BIS JSR 24 17 MOV JSR 0 €17 BR #B1115, (SP) R4 ,WRT.RP *SET DMD BIT ONLY *THE REST BITS MUST BE 0 RTS 108 SLOAD “'FMT16', "ECITM, AND/OR "HCI". #GETREG.R3 CLR 1$: 128 *COMBINE F'mt 6", "ECI", AND "‘MCI"* (MPB BR 108: R4, WRT.RP ;RETURN WERE ON ERROR BNE BEQ 022176 1(R2),1(SP) (SP)+,(R3)+ 9%, RS ‘BRANCH IF NO 1S IT A “GET REGISTER'' COMMAND? SPOINTS TO 1ST ADDRESS OF WHERE :T0 PUT THE REGISTER(S) SINIT. THE INDEX FOR THE FIRST REG. PINDEX OF LAST REG. TO MOVE *READ RMXX/RP0? REGISTER SINDEX OF REG. TO READ *RETURN HERE ON ERROR *GET THE CONTENTS OF RMXX//RP07 REG. :LAST REG. BEEN READ? 126 SGET OUT IF YES 8$ :LOOP--MORE TO READ PC,POPQUE #B8i107,16(R2) PC, SVRHXX PC -(SP) R3,=(SP) R4 ‘WRT.RP 15 P INCREASE THE INDEX BY 2 ;1S IT A *'SELECT MAINTENANCE'' COMMAND? *BRANCH IF NOT *SET DIAGNOSTIC MODE COMMAND *WRITE THE MAINTENANCE REGISTER :RETURN HERE ON ERROR CEXIT :LOAD THE COMMAND ;INDEX OF REG. TO WRITE *RETURN HERE ON ERROR *REMOVE REQ. FROM GUEUE :SET THE "DONE'' BIT SYES==GO SAVE THE REGISTERS TRETURN TO USER : :RETURN HERE ON ERROR SLOAD THE COMMAND :INDEX OF REG. TO WRITE *RETURN HERE ON ERROR CZRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PA GE 35-3 &PO7 DRIVER (17: 17 0 % 64 00570 174 8 66 00100 172 1%: :ANYTHING IN QUEUE ? *BRANCH IF QUEUE IS THERE #111,-(SP) :D0 A “DRIVE CLEAR' ci8 JSR PC,EMPTYQ ;RETURN HERE ON ERROR SEMPTY THE QUEUE CLRB DRVACT(R1) :DRIVE IS IDLE 12762 104000 000016 2%: MOV 178 022400 012746 MOV 180 022410 00000 179 0224064 181 022412 1a§ 022414 183 022420 184 022426 185 022430 186 022434 187 022436 188 022442 ;gg 022450 191 022452 19; 022456 193 022460 194 022462 195 022466 004437 000111 02245 004737 025260 1 5021 020126 185061 020237 001005 020176 001402 004737 00570 00141 032777 001404 228: 025354 2%: 160142 012762 100002 000016 209 022540 01276§ 102009 000016 211 022554 212 022560 213 022564 105061 105061 020137 020126 020196 0202¢4 %35 022536 000403 210 022546 01276 214 022570 215 022572 001005 01%737 17777 1777727 216 022600 005037 020176 217 022604 218 022606 005201 062703 220 022616 221 022620 001321 012737 219 022612 042701 22; 022626 005037 020176 223 022632 224 022636 004737 012777 025176 000040 227 022646 228 022652 004737 105061 025260 020136 ggz 022644 000406 BEQ MOV CMP BEQ JSR 3%: 020224 5% 020224 160024 TRNSWT #-1,DTUM PC R1 R3 DRVACT(R1) 22% DPRAS(R1) 5% TRNSWT ,R2 R1,DTUW P1F THIS DRIVE HWAD AN 1/0 REQUEST :IN PROGRESS CLEAR ALL OF THE FLAGS :SAVE RO = RS :DRIVE ACTIVE? *BRANCH IF IN ACTIVE :PORT REQUEST :BRANCH [F NOT SGET THE '‘TRANSFER WAIT'' QUEUE :DID THIS DRIVE HAVE AN 1/0 IN PROGRESS? MoY #BIT1S'BITO1,16(R2) MOV :SET "PARITY'" ERROR INDICATOR :CLEAR THE PORT REQUEST FLAG TST BEQ BIT BEQ :BRANCH IF YES SGET THE DPB POINTER :QUEUE ENTRY FOR DRIVE ? 4% #BIT12,3RPCS2 3$ iBR IF NOT ;'NED® SET ? :BR IF NOT 4$ : CONT INUE :;SET °'DRIVE NON-EXISTENT® INDICATOR #BIT1S'BIT10,16(R2) :SET "NON-CLEARABLE PARITY'" ERROR INDICATOR ;s:ofi THE TIMER SSET "DRIVE ACTIVE' TO IDLE DRVACT(R1) MOV O-I.IIHER(R3$ BNE MOV DPRQAS(R1) R1,DTUW 5 #-1,DTUM :CLEAR PORT REQUEST FLAG :1S THIS DRIVE SETUP FOR A TRANSFER ‘BR IF NOT SRESET THE INDICATOR INC ADD BIC BNE R1 #2,R3 SMOVE TO THE NEXT DRIVE CLR TRNSWT CLRB CLRB CMP CLR TRNSWT #5C7.R1 *CLEAR THE TRANSFER QUEUE MOV 1% #-1,0TUW :BRANCH IF MORE DRIVES *NO DATA TRANSFERS UNDERWAY JSR MOV PC, CLROUE #CLR,3RPCS2 7% *CLEAR ALL OF THE REQUEST QUEUES ‘D0 A MASSBUS INIT, : CONT INUE JSR CLRB PC,EMPTYQ DRVSTA(RY) :CLEAR THE DRIVE'S QUEUE sSET DRIVE TO OFFLINE BR 6%: :OTHERWISE EXIT 2% PC,GETREQ R2 BR 020204 4S%: 000002 177770 177777 CLR CLR TSTB BNE TSTB 010000 206 022530 PC,SAVREG 1%: 020176 020224 203 022516 204 022520 205 022526 JSR 020126 013702 020137 200 022506 201 022510 202 022514 1$: C18: 001443 DPROS(R1) CLR MOV RTS 010646 020224 CLRB R4 ,WRT.RP R2, TRNSWT 1% 004737 005001 005003 105761 001003 JSR PC 081115!8[111.16(&2) CMP BNE 0;0176 177777 €.0166 198 022476 199 022502 2%: 005037 012737 000207 RTS 0 020166 196 022470 105761 197 022474 CI78: 024346 SEQ 0089 R zi 800 07 7 7 181 BNE 175 0 s 7g };9 0 L SCLEAR THE °'TRANSFER WAIT® QUEUE n7 SEQ 0090 IVE TyP E_INDICATOR 3e (lR;LlO RPO7 FCTNL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 35-4 DRIVER RPO7 HOgT *‘TRE R SEQ 0091 CIRJLAD RPO7 FCTINL TEST MACRO v04.00 1-JAN-B83 11:06:45 PAGE 36 DRIVER NS ~ 020202 ISRv: #1,ACTDRY ISRCNT - NSO b NNNNNNNNNNNO sSET ""ACTIVE DRIVER'' FLAG :COUNT INTERRUPTS = R :GET "'DATA TRANSFER UNDERWAY'' INDICATOR :BRANCH IF NO DATA TRANSFER UNDERWAY sSAVE RO :(A%% TRANSFER DONE 1%: 2%: L10012: o~ ~N [elelelelelelelelelel=l= NN NN s INTERRUPT SERVICE ROUTINE SEX CALL SPECIAL CONDITIONS RESTORE RO = R :CLEAR “ACTIVE DRIVERTM FLAG CLRB RTI et N = NOWOOOWo NN NN = - YO NNINWNN ONNNNNNY v e 020224 177777 020176 020176 000200 157656 1: CLRB MOV 020204 MOV MOV #B1T07,16(R2) R1,aRPCS2 ASR CLR BIS 000016 JSR 0 17 ROL 024472 000135 002734 025354 000002 157626 1%: 021212 oS OSSO 157564 2%: 000016 3%: 157536 157530 DRVACT(R1) #-1,DTuw R1 #=1,TIMER(RT) R1 TRNSWT ,R2 ASL MOV 024254 P et TM L~ ] W) = 2 O N~N NORURIRONONONY N NN NN N felel=lelel=lol=-Elelelelelelelelelelelelelelelelelelelelelele -] s TRANSFER DONE ROUTINE BMI JSR (MPB BNE MovB JSR 1ST BEQ JSR BR MOV BR BIS JSR JSR MOV MOV BR TRNSWT R4,RD.RP (SP)+ 3% PC, SVRHXX 1135.2<a2) ;SET DRIVE ACTIVE INDICATOR TO IDLE sNO DATA TRANSFERS UNDERWAY sCANCEL TIMEOUT :GET ''DPB'* ADDRESS FROM THE s TRANSFER WAIT QUEUE--CLEAR QUEUE :SET_DONE sSELECT THE DRIVE s TRANSFER ERROR(TRE=1)? sRETURN HERE ON ERROR sBR IF YES :YES==SAVF THE REGISTERS :1E FROM DIAGNOSTIC COMMAND ? :BRANCH IF NOT SC sRESET THE ATA BIT ;GET DPB POINTER :ENTRY FOR DRIVE ? :BR IF NOT ;sCALL OPTIMIZER ;CHECK OTHER DRIVES #113,3RPCST :RELEASE THE DRIVE ATABIT(R1) ,aRPAS PC,GETREQ R2 2% PC,OPT SC :CHECK FOR OTHER DRlVEiG caxt15:agr°¢.1e<h2) :SET DATA ERROR F PC,EMPTY PC . SVRHXX #40111,3RPCSY gé1s.anpc51 ;EMPTY THE "'DRIVE'S WAIT'* QUEUE :SAVE THE RHXX/RPO7 REGISTERS S1SSUE A "'DRIVE CLEAR" SISSUE A RELEASE TO THE DRIVE SCHECK FOR OTHER DRIVES sooN & NN b WNIANWNWN sSPECIAL CONDITION ROUTINE [elelele] onoron VVAVVWAWVIUAWAN S N NN - i i i<O Y0 NON VIWN NP AW = DOV NS bbbbuwwgwuwwwwwnawwwmd---a WN=O 0N VB WN SO VR NOWVNSWN<SOOVORNTE WVNMAEN RPO 157540 000000 024254 SC: MOVB BNE JSR 0 aRPAS R3 2% R4 ,RD.RP sREAD "‘RPAS"’ ;BRANCH [F ANY 'ATA* BITS SET sREAD (ONTROL AND STATUS REGISTER 6§ 63 0231¢ 64 02316 55 0231 65 0231 67 02317 68 023174 i ¢ i i 024632 SC3: :ATA=1? SCé4: :MOVE TO THE NEXT DRIVE AN "'ATA"'=1 000001 0 71 023204 7; 023206 73 023210 764 023212 75 023214 76 023216 77 023220 78 023220 79 0232264 sSET INTERRUPT ENABLE JRETURN :PROCESS ALL DRIVES THAT HAVE P 81 f 0231 ;RETURN N%RE ON ERROR :18 IE''=1? :YES, NO DRIVES TO CHECK N - 14 sYES==BRANCH ;BRANCH IF MORE TO CHECK? sCLEAN OFF THE STACK 020166 sRETURN TO USER - 28 RAS(R1) 3 DRVSTA(RT) sPORT RFQUEST OUTSTANDING ? 0 :;BR IF NOT 80 023252 81 0232 Bg 023236 83 023240 84 023246 gz 023250 023614 020136 025354 024472 023530 PC,GETREQ PC,SVRHXX PC,SC12 87 023254 88 023260 89 023262 90 023266 8} €23270 020136 DRVSTA(R1) 6% DRVACT(R1) SC6 :DRIVE ACTIVE WITH COMMAND OR ERROR RECOVERY ? DRVSTA(R1) sALSO DO A DRVINT sCHECK ON DRIVE'S STATUS sBR IF UNSAFE 93 023274 94 023300 95 023302 96 023304 97 023306 98 023310 99 023314 100 023316 101 05?;20 10% 023322 10 0533 6 104 023330 105 023334 106 023340 107 023342 108 023344 109 023346 110 053350 111 023352 11% 113 023354 114 023356 020126 2%: 5%: PC,SC12 023530 020136 6%: 4] R1 R1 R1 :START THE OUTSTANDING COMMAND sCHECK THE DRIVE STATUS sBRANCH IF ONLINE :GET DPB POINTER :SAVE THE RHXX/RP0O7 REGISTERS :SAVE RPDS, RPER1, RPER3, AND RPERZ2 sALSO DO A DRIVE INIT (DRVINY) :DID DRIVE COME ONLINE? :NO===BRANCH :BR IF EITHER :SAVE RPDS, RPER1, RPER3, AND RPER2 g?STUOOA(R1).RS 020032 R1 R1 #BIT13,RS 020000 8% #111,-(5P) R4 ,WRT.RP 00011 024346 7%: (SP) RS SC4 8%: sADDRESS PLUG CHANGED :BRANCH IF SO ;DRIVE CLEAR : THE COMMAND INTO RP(S1 ER INDEX EXIT ADDRESS (RPAS) DEFORE THE ERROR CALL ;G0 CHECK FCR MORE ATA'S " b DRIVER — SEQ 0092 Cll;LAO RPO7 FCINL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 36-1 RPO7 SEQ 0093 C ZR;LAO RPO7 FCINL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 36-2 DRIVER SC8: e 133 023440 134 023444 135 136 023452 137 023454 138 023460 139 023466 140 023472 16§ 163 023610 164 023612 165 157176 020200 010177 157134 b b — :YES==-BRANCH :GET DPB POINTER :PROCESS THE PARITY ERROR :PROCESS THE SEARCH :1S DRIVE IDLE? : CONT INUE PC,CI78 :PROCESS THE UNCORRECTABLE PARITY ERROR DRVACT(R1) :$=T DRIVE IDLE 28 :BRANCH IF YES $C :CHECK MORE DRIVES ATABIT(R1),SRCHWT :;DOING A SEARCH OPERATION FOR :AN 1/0 COMMAND? :REMOVE REQUEST FROM QUEUE ;SET "'DONE'’ BIT PC, SVRHXX SYES==SAVE ALL OF THE RHXX/RPO7 REG'S ATABIT(R1) ,aRPAS ;CLEAR ATTENTION BIT :CLEAR IMPLIED SEEK SET ATABIT(R1) . SRCHWT ;WORD INDEX :STOP CLOCK R1 PC,OPT ‘RESTORE R1 *START A REQUEST s}.aapcsz ;SELECT DRIVE :CHECK FOR MORE DRIVES aRPDS,RPSTUO(R1) aRPERT,RPSTUO+2(R1) (R1) ARPER2.RPSTUO+4 2?PER3.RPS!UO*6(R1) . R4 ,DRVINT 1% :INIT. THE STATE OF THE DRIVE :TAKE ERROR EXIT (SP)+ :CLEAR THE STACK R1 :;1.IIHER(R1) ;SETUP TO ADDRESS WORDS :STOP THE TIMER R1,aRPCS2 *SELECT THE DRIVE PC 1%: 005726 000676 SC13:; -~~~ 1% PC,GETREQ PC.CI7 sci1 DRVACT(R1) R1 R1 WWNON b i sC12: 000207 PP :SETUP TO ADDRESS WORDS :STOP THE TIMER :RESTORE THE DRIVE ADDRESS :GET THE DPB POINTER FROM THE QUEUE SSELECT DRIVE R1 #-1,TIMER(R1) 020414 ONNN R1 #-1,TIMER(RY) R1 PC,GE TREQ R1.3RPCS2 SCh }66 023614 1 1 i 1 2%: OO S 000137 ;CHECK FOR MORE DRIVES #B81107,16(R2) 020204 021212 023206 SC& PC,POPQUE 000016 — 155 023564 156 0¢357¢ 157 023374 158 023576 159 023500 160 027604 161 075606 020200 ViAW SNINNN 141 023500 142 023506 143 023510 144 023516 145 023520 146 023524 147 148 023530 149 023534 150 023536 151 023540 152 023542 153 023550 154 023556 SCé: >SS 130 0234 13 13§ 023440 020204 NWNO! NNV YN - 8 s 1%? 023&%2 61 R37 06 NN 126 023414 000712 88 8388282 115 023360 11? 1170 2 118 0 119 0 7 120 8 74 121 00 1 g 023404 1 023410 -t O [« ) R PO7 157050 1%: SC8 *RETURN :PROCESS THE PARITY ERROR ATABIT(R1) ,@aRPAS’ ;CLEAR THE ATTENTION BIT SINITIALIZING THE DRIVE ? DPINT(R1) ¢ SEQ 0094 %L AQ RPO7 FCTNL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 36-3 WODRDTWOIND aov'\: s N lalal Tal LS VSTA(RT) . 8 000016 156760 (el D D e D 4% 3$: '8 1T14,16( R2) XX UE ;INFORP USER THAT DRIVE OFFLINE sSAVE THE REGISTERS sREMOVE THE QUEUE sDVA SET ? ;SET THEN CALL OPT JMP PC,OPT $C4 sSTART THE PENDING REQUEST ;PROCESS OTHER DRIVES :/RPE? TIMER ROUTINE oW wWNOWWVISS WO ROV NOONWNNNVN O = WWOONOW = NN =N NONNNN = NN NIWON NN oo~ JSR s CAL CO=0000 OO0 =00000-=00 O=000NOO (eleleJolelele] O=00 NS N§N-NNNN- b :BR IF NOT *GE T DPB_ADDRESS 3% D e NN =2OOVONRPVSWN=O :BR IF YES == START ORDER PC,SET.IE OOV OV NI WB sCLEAR THE INIT INDICATOR :GO INIT THE DRIVE :DUMMY PARITY ERROR RETURN sDRIVE ONLINE ? :?0000..TIHER(R1):SET A 60. SECOND TIMER — =3= NINUNLINL P INLNLALNLNL NNV NN NN N POPVNIAL N INONONIND b b s o b d cnd b e b REQ #B1T8,3aRPDS 3] R1 28%: :BR IF NOT sQUEUE ENTRY FOR THE DRiVE VW O el —-m VDN — [= ) 4 =] - OO = SES %OO‘ SN O PINT(R1) & ,DRVINT 020136 N W NN -0 s ~lelelelelelelelelelel=l= AN NNON (NN NwoeOr ONN o 020156 020414 D D D D e D e D D D D D D D OO0 0000 NNNSNNNSNSN V0O NP VNN = O VOO NO NS WKW d h =D DRIVER 020292 000001 010646 RPTMR: 000002 024026 ACTDRV sCHECK "ACTDRYV & ACTSTR" :%.SAVREG sSET "ACTSTR' ;SAVE RO = RS R3 I%HER(RS) :IF _NON ZERO EXIT :START WITH DRIVE 0 2%: ;1S THE TIMER RUNNING? sBRANCH IF NO 2(SP) ,TIMER(R3) sCOUNT THE INTERVAL 2% :BR IF NO SOF TWARE TIMEOUT PC,STO sCALL SOFTWARE TIMEOUT ROUTINE 3] sMOVE TO NEXT DRIVE 3$: 1% PC,RESREG 1%: 020204 (R3)+ 000010 010700 020203 sELASPED TIME IN MILLISECONDS ON THE STACK sCALL RPO7 TIME ROUTINE 4% #1,ACTSTR 020203 020204 #TIME,-(SP) PC,RPTMR 4%: RTS s0UT OF DRIVES? ;BRANCH IF NO ACTSTR ;RESTORE RO = RS sZERO ACTIVE SOFTWARE TIMEOUT ROUTINE FLAG PC sRETURN (SP)+,(SP) sADJUST THE STACK ;SOFTWARE TIMEOUT ROUTINE INOTE: T HIS ROU }lgi MUST BE ENTERED AT PRIORITY 6 OR GREATE SCALL: ST0 MOov #DRVNUM,R1 sDRIVE NUMBER 81 82 MOV MOV Mov MOv MOV CMP 020156 R S ) R S ) R S ) R4 S ) T RN 1, R2 R1 v 1$ D P INT(RT) 020166 D PRAS(R1) :PROT REQUEST ? # 1,TIMER(R3) :STOP THE TIMER :GET THE QUEUE ;EXIT IF NONE 4 010 00 000016 VOOV f=Y 5% TRNSWT 020224 #-1,0Tuw 5% DPINT(R1) 2%: DRVSTA(R1) 020204 s8RANCH IF SO sTIME OUT OR LOST INTERRUPT :ON HOUSE KEEPING COMMANDS sTIME OUT ON DATA TRANSFER sREAD ALL REGISTERS sDRRIVE SET TO IDLE sCLEAR DATA TRANSFER QUEUE s E?R THE TRANSFER DRIVE # EAR THE INITIALIZE T UNIT TO OFFLINE #=1,TIMER(R3) PC,GETREQ R2 sANYTHING IN QUEUE #-1,TIMER(R3) sFINI +STOP THE TIMER INDICATOR 5% :BRANCH . F NOT ggll15!BlT14.1é(Rg) :guFCRH THE USER DRIVE NOT AVAILABLE 000016 3%: DPRQS(R1) PC,GETREQ R2 000016 :BRANCH IF SO EXIT PC,SVRHXX 025354 100004 024472 025260 :DRIVE INITIALIZE ? #BIT15!'B1T9,16(R2) 1%: DRVACT(R1) 177777, 020204 020166 sBRANCH IF SC 5% PC,SVRHXX PC.EMPTYQ (SP)+,R4 5%: SP)+,R3 S S C TCALL sANYTHING IN QUEUE ? :BRANCH 8 IF NONE #BIT15!BIT2,16(R2) ; INFORM USER OF PROT REQUEST TIMEQUT 4%: sROUTINE ;CLEAR THE PORT REQUEST INDICATOR :GET DPB ADDRESS +,R2 +,R1 sREAD ALL REGISTERS sCANCCL ALL QUEUE REQ sRESTORE R&-R1 - 140000 sPICKUP THE TRANSFER QUEUE : TRANSFER UNDER WAY ON THIS DRIVE #BIT15!'BIT9,16(R2) N 1 777 7 0 253 5 5$ ;SAVE R1=-Ré4 wvunoeamoe 000016 0 201 5 0 20 3 ¢, EETREQ [ R3 101000 0 244 72 0 201 26 0 201 76 1 7”7 77 3% 020204 N 025354 sCALL 2$ VOV 177777 Swve 020176 020224 % OV~ ~ b YN = YN S NN = STO: -t . N~~~ PC.STO s ~NoOO NONINWN = N = = JNOOONON NENNNONONS =N NN = OCCOCOWO S NN NIIWNO S WO O WWWONNO W ek O 242 r{1 246 250 252 OO b= O=00 O=0O00OWVO SOV O NNOO M NOONN £ N = b d o OO0 =000 N=WVIHfNN=-WN=N=S0OWO000 WVWOOO—-=0000 OOOOOOflOdSOOOOOO OCO0OO0OOOOOOOOOOO NN N = NN VNS WWN VN = SO0 NN 70 4! 72 7% 74 75 76 77 78 79 80 NS NOSONONONSOTNSOSONDOD 68 69 00 SEQ 0095 JSR RETURN CO0O0CO0O0O00O0O00O0O0O0LOOO0OODOO0O0O0O00O 6 7 RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 36-4 VER NN N NN LR R R o 0¥ oF S ¥ ST 2P 2T 2P 2P T X o oF o F ¥ S S S S S 5 O > 20 e OOOMMMMMW”MMW&bbbbbbbbbwwwg AL NN NNV NNV NNNOAAINLAINININI nrRONY NONLNLNLNLNLNLNLNLNLNLNL NI AN NN NI AN NI NININI NN NN NN N oo 00 o 0o WWNWWWWNWKWND VSN VS WN =0V NS WN =O VN VIS WA =0V~ VIS WN =0V ~NG 35 L JEXIT TO READ A RHXX/RPO7 REGISTER JSR INDEX ERRADR RETURN R4 ,RD.RP :GO READ A REGISTER +REG. INDEX FROM BASE sERROR ADDRESS=-=PROCESS ERROR STARTING +AT THIS ADDRESS sCONTENTS OF REG. IS ON THE STACK 156340 000002 000004 1%: sMOVE THE R4 TO TOP OF STACK ;CLEAR OFF THE STAC K 3s: ~r 0 2%: 000002 - NV~ e L T 020000 SCHECK IF NON=EXIST DRIVE NED BIT SET ? *ERROR EXIT MCPE SET 2 o 000000 b 010000 :READ THE CONTENTS OF THE REG RTS X1 L (SP) (SP)+ R4 ;ERROR E XIT ?DDRESS sEXI v 000004 ;SAVE R& :sggaess OF THE *IS 000000 SEQ 0096 -~ O 002660 DVAARWAANINNR-RB|DID~D~ SFNNVADVA~APADAD - TV~DOVWV — O~ NS on —OOWnSmT éD.RP: sNORMAL EXIT :CkE?R OFF STACK sROUTINE TO WRITE A REGISTER s CALL DATA,=(SP) R4 ,WRT.RP :DATA TO BE LOADED ON THE STACK MOV {26)*.°(SP) sFORMING THE REG ADDRESS BLT #150,4(SP) 1% aRPCS1,~(SP) sBRANCH IF NOT MOV JSR X INDE ERRADR RETURN WRT .RP: 012446 000150 BNE (MPB 000004 156272 MOV 177770 000007 002660 010000 002660 000014 000010 000000 (SP)+ 1%: RPCS1,(SP) 4(SP) ,a(SP) RPCS1,(SP) #10,(SP) #BIT12,9(SP) 000000 2% RPCS1, (SP) #4,(SP) #B113,3(SP) 000000 2% #2 R4 000002 $ RTS ;ROUTINE TO SAVE sCALL THE ROUTINE TO LOAD(WRITE) THE REG. s INDEX OF THE REGISTER TO BE LOADED sADDRESS TO RETURN TO ON AN ERROR sERROR FREE RETURN sBRANCH IF NOT RP(CS1 ;DATA XTRNS COMMAND ? (SP) #%C7,(SP) (SP) ,7(SP) WO L1 00 024332 301 024334 30% 024336 303 024342 304 024344 305 306 307 308 309 310 m 312 313 314 315 024346 316 024346 317 024350 318 024352 319 024360 320 024362 321 024366 322 024370 323 024374 324 024400 325 024402 326 024406 327 024414 328 024420 329 024424 330 024432 331 024434 332 024440 333 024444 334 0 335 0 336 0 337 0 338 0 339 0 340 0 341 342 sooswsooOrNSO O OO 98 024 gZ §99 024330 [elelelalelelelelelelelelelelelel] ~Ne— 28? %8 024254 88 024254 289 024256 290 024262 291 024264 %9§ 024272 93 024276 294 024302 295 024310 296 024312 %97 0%4;20 & 5N B NN D~ v~ P oTM LAO 3287 FCTNL TEST MACRC v04.00 1-JAN=-83 11:06:45 PAGE 36-5 DRI (R4) R4 (SP)+ (SP)+,(SP) R4 sRESTORE s THE DEST S t«OM RP(CS1 COMMAND S ;WRITE THE sCHECK NED, *NONE EXIST BRANCH IF 1| *ADDRESS RPER1 ‘PAR SET ? :BRANCH IF SO sNORMAL RETURN JEXIT sERROR EXIT sCLEAR OFF THE STACK :H2Y$ R4& TO TOP OF STACK THE RHXX/RPQ7 REGISTERS AS PER DPB+14 CIRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 36-6 SEQ 0097 3?9 024574 370 371 024576 372 024602 373 024606 374 024610 375 024614 376 024620 377 024622 378 022622 02462 379 024630 OO0O0000 =000 WONOO==000 N = NN =2 O b S N SN NONOSMNIN S NN NONONIWS O NVOW NO NN WN=-NON B BN = <2000 NNN NOCOCOSNNONNOONNIN VIS OSNO S NN NN NN L Rt e e VIVIVITAWY - VAWV S O N 0000000000000 O OVBDNO VS WN=OY N N N NN N N N N N NN VITWNAVTWAVIWAIWUWA B ses RS wgw sCALL : : =1=s (== TR RPO7 DRIVER SVRHXX: 010646 JSR JSR 000014 024550 024550 000022 000200 156132 1%: 2%: 3%: 024550 000046 000002 024550 022364 002652 4$: 5%: 6%: 002642 002650 - 011413 010700 #DPBNUM,R?2 PC, SVRHXX PC,SAVREG :DPB POINTER TO R2 :SAVE THE DRIVES REG'S (RHXX= RH11 OR RW70) :SAVE RO-RS ST R2 6usus ENTRY FOR THE DRIVE ? MOVB (R2) (ARP(S2 :SELECT DRIVE ser THE ERROR TABLE POINTER BEQ 156162 024254 004737 000207 MOV 7% MOV BEQ (LR gng 14(R2) ,R3 7% 3% 32.022 BIT BNE CLR BR #BIT07,3RP(S2 2% (R3)+ X3 JSR .gORD R4 ,RD.RP 0 MOV (SP)+,(R3)+ ‘BR IF NONE T IF NO ADDRESS TER & POINTER ED THE BUFFER REGISTER ? ET SET SPDB AS ZEROES ;READ THE SELECTED REGISTER sREGISTER INDEX sERROR RETURN ADDRESS s STORE THE REGlSTER CONTENTS CMP BEQ ADD BR 3%, 046 6% #2,3% 1% :REACHED THE END JSR ST BEQ MOV ADD MOV PC,C17 RHTYPE 7% RPADR,R& RHEXT,Ré (RG)+.(R3)+ TEOEESS ;SE UNCORRECTABLE PARITY ERROR JSR PC,RESREG MOV RTS (R4), (R3) PC :BR IF YES ? : INCREMENT THE REGISTER INDEX sCONTINUE READING THE REGISTERS :1F EQ, NO :POINT TO RPBAE :GET RPCS1 BASE ADDRESS :STORE THE CONTENTS sGET RP(CS3 ;;RESTORE RO-RS sRETURN sROUTINE TO SET THE INTERRUPT WITHCUT GETTING A ''TRE" sCALL 395 024666 396 024670 397 024672 NSOOONNSO OO N = = —a 93 024654 94 024660 O 387 024632 388 024634 389 024640 390 024644 391 024646 392 024652 [elelelePlelelelelele] : : : SET.IE: MOV 002660 MOV 156024 MOV MOV 040000 000100 010000 MOV JSR RE TURN BIS SWAB 156002 #DRVNUM,R1 PC,SET.IE ;:DRIVE NUMBER T0 R1 R4 ,=(SP) R1,3RPCS2 (R&) ,=(SP) : SAVE R4 :PICKUP ADR OF RPCS1 ;SELECT DRIVE :READ RP(S1 (SP) AD#USTFOR DATO RPCS1,R4 #1114, (5P) SE' ..IE.. :SET THE “'TRE'' BIT OF THE WORD READ MOVB BIT BNE #B1106, (R4) #BI7112,3RP(S2 lS "'NED"'=1? YES=-=CLEAR "‘TRE"’ 1% BR 2% ST (SP)+ :CLEAN OFF THE STACK m;uo mr FCINL TEST MACRO v04.00 1= AN=B3 11:06:45 PAGE 36-7 90 0 9 11 6702 0 3 000001 1:: 2%: MOVR MOV RTS (sP )o unn (SP) PC n 8 SEQ 0098 :CLEAR "nt" ;RESTOR .flquflN YO CALLER SEQ 0099 (IR ;L AD RPO7 FCTNL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 37 RPO7 DRIVER ; QUEUE COUNT 8 CNT: N M M U M O N N e e e e v o = — NN v OO STI BYT .BYT .BYT .BYT .BYT sQUEUE INPUT PO’ ‘TERS QINPT: +WORD «WORD .WORD +WORD .WORD .WORD +WORD WRVO QDRV1 ODRV§ QDRV QDRV4 QDRVS QDRV6 QDRV7 ;QUEVE OUTPUT POINTERS «WORD .WORD .WORD .WORD .WORD .WORD .WORD +WORD QDRVO QDRV1 QDRV? QDRV3 .WORD .WORD «WORD -WORD .WORD +WORD «WORD .WORD +WORD QDRVO QDRV1 QDRV2 QDRV3 QDRV& ODRVS QDRV6 QDRV7 [~Y=Y~Y-YoYa-4Yaya) -'-eR- bLWMA NOO WO0VO 025176 QOUTPT: QSTART: QSTOP: QDRV4 QDRVS QDRV6 QDRV7 QTERP ;DRIVE REQUEST QUEUES aavuvunuvnunnunvm g MMM (=lelelelelolele) “02‘602 NM=oW=D n6666 BYT .BYT7 .BYT 0 S TART ADDRESS 0 S TOP ADDRE S R Iv E 1-=STAR T ==START R IVE R IVE R Iv E 4==START R Iv E 5==START D R Iv E 6=-=START D R IVE 7 g C ll;LlO RPO7 FCTNL TEST MACRO v04.00 1=JAN-B3 11:06:45 PAGE 38 DRIVER SEQ 0100 R PO7 % sROUTINE TO CLEAR ALL OF THE REQUEST QUEUES PCALL A 5 14 025 15 025226 16 025230 17 025232 18 025 19 055%&0 20 025244 1 025246 NN = N NWWIN = N NO O OO NN OWNONOONONOONNINNOW N NWVHAIN = N WVHAIN = NN NN N 11 8586 1; 025 1% °8°°°° O000 — 10 5 g 1 Sd—.d =2 \NANNONIWWVIWAINg s 02520 o000 OO S = ? 0 5173 ; i 025250 025252 gg 025256 CLROUE: 010646 024704 1$: 2%: 55 025340 56 025346 57 025350 sADDRESS OF THE QUEUE INTO :THE QUEUE INPUT POINTER Mov ;OF THE STARTING ADDRESS THE QUEUE INTO THE ;QUEVE OUTPUT POINTER MOV CALL H 105061 024704 024714 JSR EMPTYQ: : MOV MOV JSR RE TURN1 RETURN2 000010 024704 DRVQUE : gHPB ;CLEAR NUMBER OF ITEMS IN QUEUE A REQUEST 024714 000002 024714 024714 024756 024754 024714 IN QUEUE #DRVNUM R1 #DPB,R2 R4 ,DRVQUE l;0.0CNl(R1) R1 R2,30INPT(R1) #2,0INPT(R1) 1%: ASR ;DRIVE NUMBER sADDRESS OF PARAMETER BLOCK ;G0 PUT REQUEST IN QUEUE sRETURN HERE IF QUEUE IS FULL sRETURN HERE IF REQUEST IS IN QUEUE QCNT(R1) 024704 e QCNT(R1) PC tCALL N ;DRIVE NUMBER TO R1 PC.EMPTYQ g%NPI(RI).OOUIPT(RI) ;SET OUTPUT QUEUE POINTER=INPUT POINTER 024734 :ROUTINE TO on DRVNUM,R1 R1 000207 P R ity 54 025336 sDRIVES 2 g1 t g :DRIVES sDRIVES & :DRIVES 6 & 7 sMOVE THE STARTING ;EMPTY THE QUEUE SPECIFIED BY R1 CO0O0O0O0O0O—=O = 50 025314 51 025316 PC,SAVREG ;RESTORE RO = RS 40 41 &2 43 44 4s L6 ;SAVE RO = RS sIERO THE QUEUE COUNTS cotnt.as 010700 %7 8 47 025300 48 025306 49 025310 PC,CLROUE sMOVE 26 29 30 3 32 025260 gz 025264 025266 35 025274 36 025276 37 38 39 JSR :1S QUEVE FULL? sBR _IF YES-TAKE RETURN1 s INCREMENT QUEUE COUNT ;PUT THIS REQUEST IN QUEUE “UPDATE THE QUEUE POINTER QINPT(R1),QSTOP( fiéak:!lflf TO RESET THE POINTER 1 :BRANCH IF NO g?TARI(RI).OlNPT(Rl) sYES==RESET POINTER (R4)+ :TAKE RETURN 2 CZR;LAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 38-1 RPO7 kK 8 SEQ 0101 DRIVER gg 025352 000204 2%: RTS R& :RETURN TO USER g? :ROUTINE TO GET THE '‘DPB'* ADDRESS OF NEXT REQUEST IN QUEUE 6 sCALL 64 : 6 65 29 MoV 3 RE TURN : 68 025354 69 025356 70 025 71 025 72 025366 7 : 055372 ;g 025374 005002 105761 001404 024704 017102 024734 809301 006201 GETREQ- CLR 1STB BEQ 1%: 000207 2%: #DRVNUM,R1 JSR _ PC,GETREQ ASL MOV ASR RTS ;:DRIVE NUMBER TO R1 GO GET THE REQUEST :R2=""DPB'* ADDRESS OF THE REQUEST :R2=0 IF NO REQUEST IN QUEUS R2 QCNT(R1) 2% :1S THERE ANY REQUEST IN QUEUE? :NO=-==BRANCH 200UTPT(R1),R2 :PICKUP "'DPB'’ POINTER FOR THIS DRIVE PC :RETURN TO USER R1 R1 ;‘7' :ROUTINE TO "‘POP'* THE REQUEST FROM QUEUE 78 sCALL 79 80 g} 83 025376 84 025402 85 025404 86 025410 87 025414 88 025422 : : . 105361 006301 024704 026161 024734 017102 005071 062761 024734 024734 000002 89 025430 001003 90 025432 016161 024754 91 025440 3§ 025442 102 (626201 000207 024734 024756 024734 MOV JSR RE TURN #DRVNUM,R1 PC,POPQUE :DRIVE NUMBER TO R1 sCALL TO REMOVE REQUEST :R2=ADDRESS OF DPB REMOVED POPQUE: DECB ASL MOV CLR ADD CMP QCNT(R1) :DECREMENT QUEUE COUNT R1 ) d00UTPT(R1),R2 :GET THE ''DPB'' POINTER 300UTPT(R1) :REMOVE DPB ADDRESS FROM THE QUEUE #2,00UTPT(R1) :UPDATE THE QUEUE POINTER QOUTPT(R1),QSTOP(R1) ;TIME TO RESET THE POINTER? 1$: R1 PC BNE MOV ASR RTS 1% :NO=-BRANCH TO EXIT QSTART(R1),Q0UTPT(R1) ;YES==RESET THE POINTER :RETURN TQ USER REPORT CODING SCCTION CZRJLAO RPO7 FCINL 04.00 TEST MACRO V04.00 1-JAN-83 1-JAN-83 11:06:45 PAGE 40 11:06: .SBTTL L SEQ 0102 REPORT CODING SECTION 14 : THE REPORT CODING SEC "PRINTSTM CALLS TH AT G 4 47 025644 48 60 61 025446 025446 LSRPT:: 000167 000000 +WORD WORD J$Jmp L10013=2-, .EVEN 104425 L10013: TRAP CSRPT AL REPORTS. B~ | - g | £3 23 — W= O 000NN NN - 1 NL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 41 3 .SBTTL PROTECTION TABLE see s : 05565% 02545 025454 025456 M 09000 17777 000006 _ THIS TABLE T0 PROTEC T LSPROT:: 0 -1 6 IS USED BY THE RUNTIME SERVICES THE LOAD MEDIA. ;P=TABLE OFFSET OF (SR sNOT A MASSBUS DEVICE sP=TABLE OFFSET DRIVE # SEQ 0103 N NS N - 33 .SBTTL INITIALIZE SECTION s ;s THE INI TIAL : AT THE BEGI &~ o o ~ v 002252 #ABOPAS ,BYPASS N 000001 002242 002240 #1,1TCNT 000034 012700 000035 002640 002640 IT COUNT OCK MESSAGE FLAG SSAGE FLAG GOES HERE 002640 002012 2%: 3%: 4 UNIT UNIT,LSUNLT ABORT 000024 002660 #20..,R2 002640 UNIT,RO CSGPHRD 5%: s : :BR IF UNIT NUMBER FOR TESTING NITS TO TEST ? SRHXX/RPO7 REGISTER COUNT DATA SINK #RPCS1,R3 *GET UNIT FROM HARDWARE P=-TABLE > N 177777 s NN=NN :CR=LF 003054 000001 ~s 1 X o~~~ wunuvwm ~ VOO WNONNNO OOOWWO NNWWOOCWVWWO NN NNWVNIWOONON =IO b N ON = N AN ES = WWNON) — S PO0OSTO b O O00O0 OO0 =00 —=0O0-0 ;GO TO "CONTIN' IF YES ;*STA*, "RES' OR 'NEW PASS' ? 1%: :GO TO 3% IF NO, MUST BE NEW °'SUB=-PASS' 000004 177777 OCDODOOOON ==Ottt 48 025652 s CONTINUE COMMAND ? . bONObONOONg 012746 S ONNY O WY 103016 ;CALLED BY SFTW DRVRS sRESET ITERATION COUNT :CLEAR INTERRUPT COUNTER :POWER UP SEQUENCE ? ;GO TO 18 IF NO 026124 25534 ;ABORT PASS OM DEV FATAL ERROR DETECTED IN "ERRABO" ;GO TO 4% IF YES 000036 000137 104447 CSREFG VNN E e « B 103002 104447 #EF .PUR,RO D VNI AN~ ~ND TO A~AD DN 012700 ISRCNT AAN O OO0 o0 OO 015272 103432 IS PERFORMED sRESET THE WORLD CSRESET o ©O0 © S ECTION sONTegNS THE CODING THAT NG OF EAC LSINIT:: OCO0OO0O0 i ad bbb B b b b VWS W= N OOV N VRN = OV NONNININ NO PPN O 0o MNOVNSWN=O NN LN N N N AN N AN 2 SEQ 0104 MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 42 ;SAVE R} :AND THE BASE ADDRESS :DERIVE NEW ADDRESS :L0G IT IN NEW TABLE sCOUNT LOGGING :R2 NOT ZERO, CONTINUE LOGGING :SEE IF RH70 IS PRESENT :1S IT AN RH70 ? AO RPO7 FCTNL TEST MACRO V04.00 1-JAN=B3 11:06:45 PAGE 42-1 AL1ZE SECTION SEQ 0105 01 8 éeeo 17702 002650 025664 06150 0014 P:0 6% 22 025672 01021 MOV ST RHEXT,R2 (RS) ,R2 :BR IF NO 1c;$ S MOV ADD MOV R2,(R3)+ (RS)+ R2, (R3) :SAVE NEW RPBAE SADD 2 :SAVE NEW RPCS3 6 025674 0226 8 035702 §9 025706 g? 025712 0155 7 ©12537 011537 002644 ooge«e 002654 62 025716 004737 020226 65 025732 66 025734 67 025736 68 025742 93 025744 100443 001054 105765 001425 100012 71 025746 010546 49 025656 ; 02566 0%567 57 o%ssre 0125 9 oogoaz 68: 6% 025722 013705 0026%4 64 025726 105765 020136 025750 025754 025760 025762 025764 72 025770 73 025772 025772 025774 026000 026004 026006 026010 74 026014 75 026016 026016 012746 012746 010600 104417 06706 001700 010546 01746 012746 010600 104417 062706 000666 020146 005273 000002 000006 7%: 005240 000002 000006 8s: 010546 026024 026030 026032 026034 76 026040 77 026042 026042 026044 026050 026054 026056 026060 012746 010600 104417 062706 000654 80 026066 81 026072 82 026074 005737 100061 005237 ;g 026066 010546 012746 012746 010600 104417 062706 (000642 000002 000006 9%: 005150 000002 000006 102250 (25570 MOV cMP (SP)+,(SP)+ ;RESTORE STACK MOV MOV MOV (RS)+,RPADR (R5)+ . RPVE' (R5)+.RPVEC+2 (R5) ,DRVNO *SAVE INTERUPT VECTOR ADDRESS :SAVE TNTERUPT PRIORITY :SETUF PRIVE NUMBER FOR UNIT N MOV TSTB JSR PC,RPINIT :INITIALIZE THE SUB=SYSTEM 8M] BNE ISTB BEQ BPL 9% 108 DRVTYP(RS) 13 7% SUNSAFE BRANCH ‘DRIVE OK INED + OFL ? "NED BRANCH: NON-EXISTENT DRV TOFL BARANCH: OFF=L INE MOV MOV MOV MOV TRAP ADD BR RS,=(SP) #NOTMSG,=(SP) #2,-(SP) SP,RO CSPNTF #6,5P 3s SEXIT BLOCK MOV MOV MOV MOV TRAP ADD BR RS,=(SP) #OF LMSG,=(SP) #2,-(SP) SP.RO CSPNTF #6,5P 3% SEXIT BLOCK MOV MOV 026020 012746 005201 MOV MOV TRAP ADD BR DRVNO,RS DRVSTA(RY) SSAVE RPCS1 BASE ADDRESS :PICKUP DRIVE # AS AN INDEX *CHECK DRIVE STATUS: IF NOT AVAILABLE, TRY ANOTHER DRIVE RS,=(SP) #NEDMSG,=(SP) #2,-(5P) SP.RN CSPNTF #6,5P 3s SEXIT BLOCK MOV pOV MOV MOV TRAP ACD RS,=(SP) #UNSMSG,=(SP) #2,-(5P) SP.RO CSPNTF #6,5P 3 :DRV NOT AVAILABLE: TRY ANOTHER TST BPL CLKSTA EXINIT :DRV IS OK' WHAT CLOCK TYPE? ‘P TYPE, OK' BR 108: ‘GET RPBAE OFFSET SADD BASE ADDRESS TO OFFSET INC 2% *UPDATE. CAN CLOCK MESSAGE BE TYPED ? SEQ 0106 EXINIT gz 026100 001056 85 026102 0 6102 026112 026114 0 6113 gs 026122 012746 012746 01060 10441 06270 00044 005%32 000001 026124 026130 0261 026140 026144 026146 90 026152 91 026156 ° 026160 013746 81;746 13746 012746 104437 062706 0067%7 104432 000320 00%6‘6 022674 002644 000003 94 026166 95 026174 96 026200 97 026202 98 026204 026210 99 026212 012777 005737 001410 100404 013700 104436 000403 000040 002250 026214 026220 013700 104436 012136 026222 026226 013700 104436 002644 106 026234 000244 105 026236 106 026244 107 026252 108 026260 109 013737 013737 013737 013737 112 026266 113 026272 114 026300 012701 013777 013746 000004 101 026222 102 02€230 103 026232 110 11 026304 026310 026314 026316 026320 115 0263;6 116 026330 117 026332 118 026334 sSKIP NEXT INTERMEDIATE BRANCHING ;SETUP RHXX/RP0O7 VECTOR CONTIN: 000010 011676 9% 026162 004737 012262 100 026214 #,-(SP) sSTART (LOCK L10015~-. 154474 ABORT: sSTOP THE CLOCK sNO CLOCK, SKIP CLKSTA 012126 1%: 2%: 104444 104432 «WORD EXINIT: MoV 002654 PC,STOPCK #CLR,ARPCS2 NOTDV—=N PATAN 89 :PRINT *NO P=CLOCK, TIMING TESTS WILL NOT BE EXECUTED' MOV MOV MoV 002654 sMASSBUS INIT TO CLEAR IMPENDING INTERRUPTS sRELEASE APPROPRIATE CLOCK VECTOR sL=CLK :SKIP O AR 88 8 6124 #NOCLK ,=(SP) ;BR IF NO FOOOD —SAPPA T E2N — XY - JLAO RPO7 FCTINL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 42-2 TIALIZE SECTION DRVNC,DPB.A DRVNO,DPB.B DRVNO,DPB. C DRVNO,DTADPB ;STUFF DRIVE NUMBER IN DPB TABLES ;PRINT DRIVE SERIAL NUMBER 012746 012746 010600 104417 062706 017746 005002 006116 006102 000004 ¥4 ,R1 DRVNO,aRP(CS2 DRVNO,=(SP) 154370 :b DIG I | 1S S 3 T DRIVE sSELEC #DSNMSG,=(SP) #2,-(SP) SP.RO CSPNTF #6,SP 3%: (SP) aRPS= N, JFETCH S/N (SP) sPUT NEXT DIGIT INTO R? R2 R2 sZERO QUTPY | D 9 SEQ 0107 IALIZE SECTION 120 026 3§ 806103 119 026 121 026 1 ; 6344 123 02634 124 8 635 125 02635 1 9 026356 127 026362 026 026372 026376 026400 ROL ng ROL ADD MOV R2,DRVSN 0611 ROL 006113 88210 1 ROL ROL ROL 86 10 7g 01 ; 012746 800060 02656 oozgso MOV 12746 004 as 012746 00000 01 609 104%1 0%6402 128 026406 129 02641g }3? 026412 oegroe 005301 132 026414 01%766 026424 ozeage . 026430 010600 104417 062706 134 026434 004737 012622 136 026446 112737 000020 138 026462 004437 014260 MOV MOV MOV TRAP 000006 ADD DEC 003347 BGT 005726 oze«go 012746 ST 164 (SP)+ 000004 002541 002542 015272 002252 ) #,-(5P) PC,LDCMD :LOAD COMMAND IN DPB.B, MOVB #20,DPB.A+1 SSET 16 SIT FORMAT MOV TRAP JMCRD #ABORT ,BYPASS #SETFORM,DPB.A+2 R4, CALL .A #ABOPAS ,BYPASS CSEXIT L10015-. .EVEN 180 026500 026500 1044611 L10015: ;COUNT DOWN DIGIT INEXT DIGIT :RESTORE STACK JSR JSR 104432 000002 178 179 3s SP,RO CSPNTF #4,5P MOVB 165 026474 . 026476 #6,5P R1 MOV TRAP ADD 000147 :MAKE RESULT ASCII SSAVE R FOR PRINT #SNDIGT,=(SP) #2,-(SP) SP RO CSPNTF #CRLF ,=(SP) MOV 137 026456 012737 #DRVSN,=(SP) MOV 000001 MOV }28 026466 (gw) R (SP) R #°0,R2 003054 135 026440 012737 026162 002252 112737 (SP) TRAP CSINIT DPB.C FOR SEEK TESTS :BYPASS RUTE ON RP DRiVER FATAL ERROR SSET FORMAT MODE (16 BIT) :GO EXECUTE THE COMMAND :RESTORE ABORT ADDRESS FOR "ERRABO' DEV FATAL ERROR mr~ LAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 42-3 CIRJLAD RPO7 2 CTNL TEST MAZRO v04.00 1=JAN=B3 11:06:45 PAGE 43 SEQ 0108 AUTODROP SECTION > k3 LT TETE TR TR T .SBTTL FLAG WAS SET, SEE IF THEY WILL RESPOND. DROPPED FROM TESTING. ad 026502 026502 026502 THIS CODE IS EXECUTED IMMEDIATELY AFTER THE INITIALIZ 3 CODE [F THE "ADRTM ~re NOV00 YO NS NN = — AUTODROP SECTION 104461 TRAP ($AUTO THE UNIT(S) UNDER TEST ARE ( H 13 (KED TO THOSE THAT DON'T ARE [MMED I A TELY CIRJLAOD RPO7 FCINL TEST MACRO v04.00 1-JAN=-B83 11:06:45 PAGE 44 yr v SEQ 0109 CLEANUP CODING SECTION % .SBTTL CLEANUP CODING SECTION 4 4 P THE CLEANUP CODING SECTION CONTAINS THE CODING THAT IS PERFORMED 7 k2 2 : 8 026504 9 10 026504 026510 11 0 6518 012700 104441 015777 000340 14 026532 15 026536 005737 001410 002250 1; 026520 1 ogbs 6 16 026540 AFTER THE MARDWARE TESTS WAVE BEEN PERFORMED. LSCLEAN:: 013777 004737 800040 002656 012262 154150 154142 MOV TRAP MOV #PR107,RO ($SPRI #CLR,IRPCS2 3 BEQ CLKSTA 2% MOV JSR DRVUNO,aRPCS2 PC,STOPCK 100404 BM] 18 026542 013700 012126 MOV PKV,RO 19 026550 000403 BR 2% MOV TRAP LKV,RO CSCVEC MOV TRAP TRAP LWORD RPVEC,RO CSCVEC CSEXIT L10017-, TRAP (SCLEAN 17 026546 20 21 026552 026552 026556 22 026560 23 026560 026564 264 026566 - 026570 26 026572 026572 104436 013700 104436 012136 013700 104436 104432 000002 002644 104412 TRAP 1%: 2%: L10017: 1% :SET PRIORITY 10 7 :MASSBUS INIT TO CLEAR IMPENDING INTERRUPTS :GET DRIVE NUMBER :STOP THE CLOCK ‘RELEASE APPROPRIATE CLOCK VECTOR *NO CLOCK, SKIP iL=CLK ‘P=CLK VECTOR RELEASE CSCVEC ;L=CLK VECTOR RELEASE :RPO7 VECTOR RELEASE CIRJLAD RPO7 FCTNL TEST MACRO v04.00 1=JAN=B3 11:06:45 PAGE 45 W =0 .SBTTL DROP UNIT SECTION see : THE DROP=UNIT : TO NO LONGER B © o0 6574 000167 6576 EE(‘ I 0? CONTAINS THE CODING THAT CAUSES A DEVICE TE S TED. L$DU:: 26574 oo WININ = =b S NN 00~0e NN DROP UNIT SECTION .WORD 000000 .EVEN 020670 0266L0 104453 L10029: TRAP ($Du SEQ 0110 WO WIWNWN - V00000 NN NN - .SBTTL ADD UNIT SECTION CODE THE PROGRAMMER WISHES "THE ADD-UNIT SECTI ON CONTAINS ANY WITH THE ADDING OF A UNIT BA(K i : 10 THE TEST CYCLE. L$AY:: 0 26602 026602 026604 08 EXECUTED IN CONJUNCTION 000167 000000 LWORD "WORD JS)MP 110021 JEVEN 4 026606 026606 104452 L10021: TRAP ($AU SEQ 011 - CIRJLAQ RPO7 FCINL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 46 ADD UNIT SECTION SEQ 0112 CIRJLAQ RPO7 FCTINL TEST MACRO v04.00 1=-JAN=B3 11:06:45 PAGE 47 F — COV®NO NS WN =OVO NV N WIN NN N NN W INIANI N RO NI R NO RO NI RO N WA = OO0V N b b b s et b NN HARDWARE TESTS .SBTTL HARDWARE TESTS ;*IN THE DESCRIPTIONS OF THE BELOW TESTS THE VARIABLES USED 'AND THEIR DEFAULT VALUES (UNLESS SPECIFIED OTHERWISE) ARE: -nusnoulc '-------. S*1TONT ;eF( sl il SeNC OF NC1 e TeNC2 : X PeFT teLT PelT PeNT X TefS eLS .SBTTL VALUE VARIABLE v e e o e e e s e 1 ITERATIONS 0 629 1 FCelC LC=1¢C 0 31, i FTelT 0 49. e FIRST CYLINDER ADDRESS LAST CYLINDER ADDRESS INCREMENT VALUE NEW OR MODIFIED CYLINDER ADDRRESS NEW OR MODIFIED CYI INDER ADDRESS FIRST TRACK ADDRESS LAST TRACK ADDRESS INCREMENT VAL UE NEW OR MODIFIED TRACK ADDRESS FIRST SECTOR ADDRESS LAST SECTOR ADDRESS SEEK TESTS ;*THE SEEK TESTS WILL BE EXCUTED USING IMPLIED SEEKS. ;*IMPLIED SEEKS WILL BE PERFORMED BY ‘'READ HEADER AND THESE ;*DATATM" COMMANDS TO TRACK “‘FT'* SECTOR *'fSTM OF THE DESIRED CYLINDER. :#THE WORD COUNT WILL BE SET SUCH THAT ONLY THE CYLINDER AND s*TRACK/SECTOR WORDS OF THE HEADER ARE READ. ;*HOWEVER, THESE IMPLIED SEEKS CAN BE SUPERSEDED BY EXPLICIT SEEKS ievIA OPERATOR DIALOGUE, IN WHiCH CASE HEADER INFORMATION IS NOT VERIFIED. CIRJLAO RPO7 FCTNL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 48 TEST 1: RECALIBRATE J SEQ 0113 TEST % JSBTTL 3 TEST 1: RECALIBRATE TEST 39 ::""t"t.."."'.""""""'QQ'l"""".IQQ"'QQ"QQ"QQ.Q"Q"""t."'t' ‘% ‘e 40 41 e M ‘ THIS TEST WILL CAUSE THE DRIVE TO EXECUTE A RECALIBRATE COMMAND CYCLE AND THEN DO A READ HEADER AND DATA COMMAND TO VERIFY POSITION. ::""."t'ttt"'t"tt'"."'Q"'."QQ"'."Q'.'.!'."'Q'..""Q"""'Q'.""Q A 51 §7 026610 58 026610 59 026616 026676 60 026624 61 026630 62 026634 026634 63 026636 64 026642 65 026646 66 026652 67 026654 026654 026654 68 026656 026656 012737 000012 002240 112737 000107 002542 005037 002572 005037 104402 004437 004437 005337 001361 104403 104401 002570 :: TEST: MOV #10.,1TCNT ;SET ITERATION COUNT MOVBE WRECAL,DPB.A+2 ;RECAL=COMMAND CLR DPB.B+12 SCYL 0 CLR 1.1: 014260 014376 002240 EXITI: L10023: L10022: oPB.B+10 TRAP JSR JSR DEC BNE ($BSUB R4 ,CALL.A R4.CALL.B TTCNT TESTY TRAP (SESUB TRAP CSETST SSEC/TRK 0 ;G0 EXECUTE THE COMMAND 16O EXECUTE THE COMMAND :DONE [TERATIONS ? ‘BR IF NO CIRJ LAO RPO7 FCTNL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 49 TEST 2: INCREMENT SEEK TEST % LSBTTL TEST 2: 4 :-: AR A 8 ;o b) 9 H Hd i 13 }1 1% 14 026660 15 026660 16 026666 17 026674 18 026702 026702 026702 19 026704 20 026710 026710 21 026712 22 026720 23 026726 24 026730 25 026736 026736 026736 26 026740 27 026744 026744 28 026746 29 026754 30 026762 31 026764 026764 026764 AR AR 002220 002212 002204 002570 002571 002572 014376 104403 063737 023737 002210 002206 ) 002572 002572 013737 002206 002572 104402 004437 014376 104403 163737 023737 002210 002204 002365 003765 104401 A A A A A A R A R A R i i :: CYLINDER ADDRESS FROM ''fC'' TO°* LC'' BY THE INCREMENT UHEN THE RESULTANT CYLINDER ADDRESS (NC) EXCEEDS “LC'" REVERSE SEEK CYCLE S ARE_INITIATED; STARTING AT THE LAST LEGAL “‘NC" AND DECREMENTING BY *'IC UNTIL "NCTM* IS LESS THAN ''FC'". AT THE COMPLETION OF EACH ge ENSURE PROPER OPERATION. 12: 1%: 12.11: 12.1: 104402 004437 A INCREMENT SEEK TEST L10025: SEEK COMMAND THE PROPER INDICATORS ARE EXAMINED TC MOVB MOvVB MOV TRAP L10026: 002572 002572 EXIT2: L10024: a2 AR iR FS,DPB.B+10 FT,0PB.B+11 FC,DPB.B+12 ($BSUB il iR Rl :FS :FT sFC JSR R4&,CALL.B ;GO EXECUTE THE COMMAND TRAP ADD CMP (SESUB I1C,DPB.B+12 LE., DPB B+12 sMOVE MOV LC,DPB.B+12 TRAP JSR ($B8SUB R4 ,CALL.B TRAP SUB CMP C$ESUB lc DPB B+12 FC,DPB.B+12 TRAP CSETST BGE 12.21: 12.2: 2] THIS TEST WILL COMMAND FORWARD SEEK CYCLES TO ADVANC MAALAAS AR 113737 113737 013737 A SEQ 0114 BLE T2 .11 12.21 TO NEXT :0UT OF CY INDER CYLINDERS :NO--BRANCH ;60 EXECUTE THE COMMAND R 2222 2220 LAO RPO7 FCINL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 50 L SEQ@ 0115 T 3: RANDOM SEEK TEST .SBTTL SRR PR TR PR TR 1 SRR BETWEEN PARAMTERS ° THE RANDOM CYLI ge IF X,V ARE 33‘565 THE ACTUAL OPERAT AN 6 eneaAteo BY USING THE X H N R L FC + SRP1 BY DOING: = FC + R CYL WHERE R gs OBTAINED BY: P1 DIV (LC01)-FC = WHERE Q = QUOTIENT, Mov #10.,ITCNT MovBe #SEEK,DPB.A+2 REHAINDER BEQ 3.1 MOV CMP = A RANDOM NUMBER FROM RAND CALL. $RP1 SET ITERATION COUNT .LOAD STARTING TRACK ADDRESS FC,DPB.B+12 FC,LC ;INITIAL CYLINDER ADDRESS ;CYLINDER LIMITS THE SAME ? ;SEEK=COMMAND :BR IF THEY ARF 027074 004437 027100 104403 027102 50 027104 51 027112 52 027116 53 027120 104402 113777 JSR PC,RAND sCYCLE THE RANDOM NUMBER GENERATOPPR MOV INC LC,=(SP) (SP) sFORM THE DIVISOR s INCREMENT Mov CLR SuB $RP1,-(SP) =(SP) ;USE THE HIGH RANDOM NUMBER :UPPER DIVIDEND FC,(SP) SUBTS?CT THE LOWER LIMIT (SP)+,DPB.B+12 :ADD THE REMAINDER TO THE INITIAL CYLINDER JSR PC,$DIV ST (SP)+ ADD :0IVI :DISCARD THE QUOTENT ;END OF RANDOM CYL GEN. 002552 13.1: 13.11: L10030: 13.2: 153556 O "MOD® FUNCTION: FT,0PB.B+11 ol ooNwNoO OO ONONN 104402 49 027102 THE TRACK ADDRESS IS INCREMENTED FOR EACH SEEK SO THAT VERIFICATION OF POSITIONING OCCURS JUSING EACH HEAD. TRACK ADDRESSES ARE INCREMEM' sGENERATE A RANDOM CYLINDER 027072 4«8 027100 RS TE TR TR TR P TEST3: 013737 47 027074 READING A SECTOR FROM fHE CURRENTLY ADDRESSED CYLINDER AND TRACK. MovB 40 027056 41 027062 Y4 43 44 45 027064 46 027072 THIS IEST PERFORMS RANDOM SEEK OPERATIONS BETWEEN CYLINDERS °FC' AFTER EACH SEEK, THE POSITION OF THE DRIVE IS VERIFIED BY 'LC'. '."'.'t"t'.""".'Q""'.'i"".'it...'.'t.fil.t""'.t."""t"'."'.".' NNN = = 20 21 22 235 026766 24 026766 25 026774 26 027002 27 027010 28 027016 29 027024 30 31 32 33 027026 34 027032 35 027036 36 027040 37 027044 38 027046 39 027052 PRI 19 RN TR TR IR AR 14 15 16 17 18 RN 1§ R 10 }1 % 8 9 % 7 B B 5 6 2222222323222 322222232222222322223 2233222322222 2220222002022 0R00RRdRdRdRdRddRRddlld) S 4 W : TEST 3: RANDOM SEEK TEST Mov DPB.B+12,DPB.A+12 TRAP ($BSUB JSR R4, CALL.A TRAP CSESUB TRAP MOovB MOV ASL ASL SU DPB.A,ARP(S2 aRPLA,=(SP) (SP) (SP) ;COPY NEW CYLINDER ADDRESS ;GO0 EXECUTE THE COMMAND sSELECT THE DRIVE :GET THE LOOK AHEAD REGISTER :ALIGN THE SECTOR ADDRESS ;ALIGN THE SECTOR ADDRESS — —_— wo -4 m~N AO RPO7 FCTNL tgsr MACRO V04.00 1-JAN=83 11:06:45 PAGE S0-1 3: RANDOM SEEK TEST 5¢ gs 8 027122 7126 00031 1 939 80 570 SWAB MOVB 80 7143 9 027142 60 027144 61 0 7120 gg 82;}6% 103007 10 o; 105037 ooo«gs 112737 002570 BHIS BLO CLRB BR MOVB 027160 64 057164 027164 65 027166 66 027172 67 027200 68 027202 69 027210 70 027214 71 027216 027216 004437 014376 9 027130 ?1 49 0 %ga 0271 8 637 002570 104403 105237 123737 101703 113737 005337 001275 104401 000001 002571 002571 002212 002240 002570 }g: L10031: 002214 002571 EXIT3: L10027: no9 SEQ 0116 (SP) (SP)+,DPB.B+10 :PUT :LOAD ADDRESS THE DPB IN LOWER BYTE MOV CMPB NS1,=(SP) (SPJ+,DPB.B+10 SPUT LAST SECTOR ADDRESS ON THE STACK :NEW SECTOR ADDRESS TOO LARGE ? JSR R4,CALL.B GO EXECUTE THE COMMAND TRAP INCB CMPB BLOS MOVB DEC BNE CSESUB DPB.B+11 DPB.2011.LT TEST FT,DPB.B+11 1TCNT TESTS : INCREMENT THE TRACK ADDRESS SMAXIMUM ? ‘BR IF NOT *RELOAD STARTING TRACK ADDRESS :DONE ITERATIONS ? :BR IF NO TRAP CSETST 2% 18 DPB.B+10 $ #1,DPB.B+10 ‘BR IF NOT :BR IF ADDRESS IS 2 GREATER SRESET TO SECTOR ADDRESS 0 : CONT INUE SRESET ADDRESS TO SECTOR 1 £3 — Vo BB NWWAN WA W NN NN NI NI NI NINIRU M) = b e b e e b b be NO VS WN <LOOM NV WN < O000 NN IS NN - OOV NO VNS WN 2OV BB NN Pl oF 2k ol I I P N S NN —-=OOV ~NOoOWV SEQ@ 0117 RECAL, RANDOM SEEK TEST .SBTTL N I mN~N RPO7 FCINL TESY HACRO VO‘ 00 1-JAN=-83 11:06:45 PAGE 51 TEST &4: RECAL, RANDOM SEEK TEST AR RN R RN R R RN RN RN RN :' E R R RN AR AR RARRERANRARNANRNANREORNANRNRTRNRARNARCOQCRROEROEROOEROERETD THIS TEST EXECUTES A RECAL COMMAND, THEN A SEEK IMPLIED IN A READ HEADER i AND DATA COMMAND, TO A RAND I THE TRACK AD OF THE RANDOMLY SELECTED CYLINDER iS INCREMENTED BY ONE, i . . e THIS SEQUENCE IS REPEATED 10 LV SELECTED CYLINDER. TIMES. STARING FROM FC, AT EACH TEST ITERATION. THE RANDOM CYLINDER IS GENERATED BV USING THE °*MOD* FUNCTION: X MOD Y =X=(XDIVY) ~Y Had IF Xx,¥ ARE lNTEGE SWITHY © 0 THEN I THE ACTUAL OPERATION PERFORMED IS . :® :® o e ot i X MODY = REMAINDER OF X DIV V FC+ SRP1 MOD (LC+1)=FC BY DOING: = FC ¢+ R CYL OBTAINE WHERE R IS 3 1D0lv (L(Ol)-FC s WHERE Q = QUOTIENT, REHA!NDER $RP1= A RANDOM NUMBER FROM RAND CALL. """."."."""t""0"""".l'......""'....."Q".Q"..."...""'Q'." 027220 027220 012737 000015 002240 027242 013737 002204 00257¢ 0272%6 027234 113737 11%737 002212 000107 002571 002542 T4:: TEST&: MOV #10,.,1TCNT MOV FC,DPB.B+12 MOVB MOvB FT,0PB.B+11 ORECAL DPB.A+2 SET ITERATION COUNT .LOAD S!ARIING TRACK ADDRESS ;RECAL=COMMAN JINITIAL CVLXNDER ADDRESS ;GENERATE A RANDOM CYLINDER 027250 004737 027260 005046 011610 JSR PC,RAND :CYCLE THE RANDOM NUMBER GENERATOR CLR =-(SP) UPPER DIVIDEND 027254 013746 011672 MOV 027262 027266 MOV INC 027270 027274 027300 027304 027306 027306 027310 027314 027314 027316 027316 027320 027326 027332 02733 02733 027340 027344 027350 027354 027356 013746 005216 002206 004737 011074 163716 002204 062637 005726 104402 004437 SUB JSR 002572 ATMD 1ST 14.1: 014260 L10033: 104403 104402 113777 017746 14.2: 002540 153346 006316 006316 000316 112637 002570 013746 002264 122637 002570 103007 103403 153342 1%: $RP1,=-(SP) USE THE HIGH RANDOM NUMBER LC,=(SP) (SP) FORH THE DIVISOR s INCREMENT PC,SDIV .Dl VIDE FC,(SP) (SP)+,DPB.B+12 (SP)+ SUBTRA(T THE LOWER LIMIT :ADD THE REMAINDER TO THE INITIAL CYLINDER :DISCARD THE QUOTENT sEND OF RANDOM CYL GEN. TRAP JSR ($BSuUB R4, CALL.A TRAP (SESUB TRAP MOVB MOV ($8SU DPB.A,aRP(S2 ORPLA.-(SP) :SELECT THE DRIVE GEY THE LOOK AHEAD REGISTER BHIS BLO b3 2% BR IF NOT BR IF ADDRESS IS 2 GREATER ASL ASL SWAB MOVB MOV (MPB (SP) (SP) (SP) (SP)+,DPB.B+10 NS1,=(SP) (SPSO DPB.B+10 ;G0 EXECUTE THE COMMAND ALIGN THE SECTOR ADDRESS ALIGN THE SECTOR ADDRESS Put ADDRESS IN LOWER BYTE LOAD THE DPB PU! LAST SECTOR ADDRESS ON THE STA(K NEU SECTOR ADDRESS TOO LARGE ? H‘N LAO RPO7 FCINL TEST nncno voa 00 1=JAN=83 11:0¢:45 PAGE S1=1 8 10 SEQ 0118 T &: RECAL, RANDOM SEEK TEST 55 027360 105037 002570 CLRB gs #1,DPB.B+10 R4,CALL.B PB.B+10 :RESET TO SECTCR ADDRESS 0 027400 61 027402 eg 027496 63 027414 1044 g; 105237 123737 10171 ; 002571 002571 TRAP INCB CMPB BLOS CSESUB DPB.B+11 DPB.B+11,LT TESTé ; INCREMENT THE TRACK ADDRESS SMAXiMUM ? ‘BR IF NOT TRAP CSETST sg 057 000403 BR ég 82;§92 112737 000001 002570 ig: MOVE 037 76 004437 014376 JSR L10034: 60 027400 002214 N 64 027416 1137g 002%12 002571 5 ozraga 005337 002240 66 0276430 001304 67 027432 0276432 104401 EXIT4: L10032: MOVB DEC BNE FT,0PB.B+11 1TENT TEST4 *CONT INUE ;RESET ADDRESS TO SECTOR 1 ;GO EXECUTE THE COMMAND RELOAD STARTING YRACK ADDRESS : DONE lTERATlONS ‘BR IF N ¢ 10 L TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 52 = Z AD RPO7 FC SEQ 0119 5: DIFFERE TIAL SEEK TEST TEST 5: DIFFERENTIAL SEEK TEST SBTTL : A2 i i 5 2 22 2222222000222 THIS TEST CONSISTS :' 4 R R RdRddRdddRdRddRRddddddRRRdddRdRddll]) F 3 SUBTESTS TO TEST THE HEAD POSITIONER AND SERVO UNIQUE DIFFERENTIAL SEEK PROF ILES: FORCES A SLEW RATE CHANGE BY SEEKING FROM CyL 0 10 5, 6 7 8 9 10 4 T0 629, TO TEST THE POSITIONAL LOGIC. - }1 . i 2. 33 CYL DIF SSEK WORST CASE SEEK OVERSHOOT TEST, FORCED BY SEEKING 1 10 33, 0 3 ¢ oo 59 10 629. FROM CYL O TO0 3 :: 3. 400 CyL DIF SEEK: FORCES MAX ACCE ERAT ON AND DECELERAT!ON OF CARRIAGE T0 400, 2 T0 40 sggfflngéqfORCED BY SEEKING FROM CYL :' 13 E- 14 15 16 R 15: 17 027434 18 027434 19 027442 20 027450 21 027456 22 23 24 25 027464 26 027470 27 027476 027476 28 027500 027500 29 027504 027504 30 027506 027506 31 027510 32 027514 027514 33 027516 34 027522 35 027526 39 027534 2 2323222222222 2222222222222 R 2R MOVB MOVB FS,DPB.B+10 FT,0PB.B+11 MOVB LT, DPB.C+11 MOvVB LS.DPB.C+10 R ;FIRST SEEK OF R R R RdRd R RdRddRRdRRRld]) THE PAIR OF SEEKS READS FS, FT sSECOND SEEK OF THE PAIR OF SEEKS READS LS, LT 36 CYL DIFF SEEK 005037 012737 002612 104402 TESTS: .1 15.11: 004437 L10036: 104403 15.2: L10037: CLR DPB.B+12 TRAP ($BSUB JSR R4 ,CALL.B TRAP C$ESUB MOV TRAP JSR TRAP INC INC cMP 002612 BGE 38 #5,0PB.(+12 C$BSUB R4 ,CALL.C CSESUB DPB.B+12 DPB.C+12 NC1,DPB.C+12 15.11 ;FIRST SEEK STARTS AT 0 ;SECOND SEEK IS TO FIRST CYL ¢ 5 ;GO EXECUTE THE COMMAND ;GO EXECUTE THE COMMAND sNEXT CYL OF FIRST SEEK :NEXT CYL OF SECOND SEEK sREACHED LAST USER CYL ON SECOND(LAST?) SEEK? :NOT YET, REPEAT ABOVE SEQ UNTIL OUT OF CYL 233 CYL DIFF SEEK 39 40 027536 41 027542 42 027550 005037 012737 027550 104402 027552 46 027556 004437 43 027552 004437 027566 104403 104402 15.3: 15.31: L10040: 104403 027556 45 027560 027560 46 027562 47 027566 002612 15.4: 014560 L10041: MOV CLR DPB.B+12 #32.,0PB.C+ 12 TRAP ($B8SUB JSR R4 ,CALL.B TRAP C$ESUB TRAP JSR ($BSUB R&,CALL.C TRAP ($ESUB sFIRST SEEK STARTS AI 0 sSECOND SEEK IS TO FIRST CyL + 32. ;60 EXECUTE THE COMMAND ;GO EXECUTE THE COMMAND 94 5 g 36 NN INC INC (MP 002612 BGE D10 SEQ 0120 DPB.B+1 DPB.C+1 u§1 DPB.C+12 5 oo O ONMONMONON NNNNNNNNNNNSY NN =l=lelelelelelelelell=1=} ;400 CYL DIFF SEEK 005037 012737 104402 004437 104403 104402 004437 104403 002361 2 027662 00257 00061 104401 014376 CLR OPB.B+12 TRAP ($BSUB JSR R4, CALL.B RAP (SESUB MOV 002612 ts. 51: L10 042: 15 .6: L10043: XI15: Ex] L10 035: TRAP JSR TRAP #399.,0PB.(+12 ($BSUB R4, CALL.C C$ESUB INC INC (MP DPB.B+12 DPB.C+12 NC1.DPB.C#12 TRAP CSETST BGE 15.61 0 RST CvL + 399. ;GO EXECUTE THE COMMAND ;GO EXECUTE THE COMMAND sNEXT CYL OF FIRST SEEK INEXT CYL OF SECOND SEEK :REACHED LAST USER CYL ON SECOND(LAST?) :NOT YET, REPEAT ABOVE SEQ UNTIL OUT OF SEEK? C¥L - 1 IAL S B VIV YV 00 Vi oW > O = v04.00 1=JAN=B3 11:06:45 PAGE S52-1 mr O YOVSWNN-=O elo 0 0 ¢ 0 \I’) NL T CZRJLAD RPO7 FCINL TEST MACRO V04.00 1-JAN-83 11:06:45 PAGE 53 E 10 SEQ 0121 TEST 6: OSCILLATING SEEK TEST 1 SBTTL TEST 6: OSCILLATING SEEK TEST i i THIS TEST PERFORMS A SERIES OF SEEK OPERATIONS TO CAUSE AN OSCILLATING MOVEMENT OF THE WEAD POSITIONER. g ;:'"..'.'""'.""""""""'.'Q"""'Q"".""".'."'.".""""""QQ 6 ::.'."'....""".""".""."".'.Q.."'.""'.'"."'.."".."""""." 4 5 7 8 027664 9 027664 10 027672 11 027700 12 0%7706 13 027714 14 027722 1137%7 11;7 7 113737 113737 013737 013737 027730 104402 027732 004437 027736 104403 15 027730 16 027732 17 027736 18 027740 027740 19 027742 20 027746 027746 21 027750 22 027754 23 027760 24 027766 25 027770 027770 027770 104402 004437 104403 005237 005337 023737 002361 104401 002220 002215 002222 oog 16 002204 002206 002570 002571 002610 002611 00 575 00261 16:: TEST6: 16.1: 16.11: 014376 L10045: 16.2: 014560 002572 002612 002612 L10046: 002204 EXIT6: L10044: MOVB MOVE MOVB MOVB MOV MOV FS,0PB.B+10 FT.DPB.B+11 LS.DPB.C+10 LT.DPB.C+11 FC.DPB.B*12 LC.DPB.C+12 TRAP ($BSUB JSR R4,CALL.B TRAP (SESUB TRAP JSR TRAP ($BSUB R4, CALL.C :F3 ET LS LT iFC iLC ;GO EXECUTE THE COMMAND ;GO EXECUTE (SESUB INC DEC CMP BGE DPB.B+12 DPB.C+12 DPB,(+12,F( 16.11 TRAP (CSETST JUNTIL THE COMMAND ¢ T TIMING TESTS :*THE TIMING TESTS WILL ENSURE THAT THOSE FUNCTIONS BE ING SeTIMED ARE WITHIN THE TOLERANCES SPECIFIED IN THE . S*ENGINEERING SPECIFICATIONS' 'RPO7 SeTHE SEEK TIMING WILL BE PERFORMED USING EXPLICIT SEEK :*OPERATIONS. AT THE COMPLETION OF EACH CF THE TIMING PeTESTS THE MINIMUM, MAXIMUM AND AVERAGE !IMES WILL BE SeTYPED, IF TIMTYP=1, LSBTTL A BN R O 2222222222222 B LR TR TR S TEST 7: ROTATIONAL SPEED TIMING TEST 2 2222222222222 FS. 005737 003002 104432 001044 004437 000402 000137 030016 030020 030024 030030 030034 005005 012703 012701 004737 004737 002432 000012 015626 012262 030040 030044 C30050 030054 012746 012746 013746 012746 17 222 CLKSTA 1% CSEXIT L10047-, R4, SRCHOO 2% EXIT? CLR Mov MOV JSR JSR #17A,R3 #10.,R1 PC,STRTMR PC,STOPCK 000300 030660 012126 000003 MOV MOV MOV MOV #PRI06,=(SP) #17,7%,-(SP) PKV,=(5P) #3,-(SP) 062706 000010 ADD #10,5P 012746 01%746 000000 015624 MOV MOV #PR100,-(SP) #DORTI,=(SP) 02 06 10 14 22 26 28 012746 104437 062706 013777 013746 113766 012677 000003 17.1 MOov TRAP ADD MOov MoV MOvVB MOV #3,-(SP) CSSVEC #10,5P FC,aRPDC FS,=(SP) F1,1(SP) (SP)+,aRPDA 40 42 104402 005077 17.1%: TRAP (LR ($B5UB aPkB 76 013746 075476 1%: 031020 2%: TEST7: TRAP 002644 000010 002206 002220 002212 152526 161754 MOV 152572 000001 R R RRRdRddRddd TRACK FT, R d Rl lddd) SECTOR THIS PROCEDURE IS REPEATED 10 TIMES THEN THE AVERAGE TIME IS CALCULATED AND CHECKED TO ENSURE IT IS WITHIN TOLERANCE: 16.515 MS/REV + OR - 3% TST BGT TRAP LWORD JSR BR JMP 104437 002250 RR AS SOON AS THE INTERRUPT OCCURS, THE GO BIT IS SET AGAIN AND THE OPERATION IS TIMED. 2223323222232 23 2 2 2222 027772 027772 027776 030000 030002 030004 030010 030012 22220220200 THIS TEST WILL START A SEARCH TO CYLINDER FC, 2R R Rl d sKW11=P CLOCK? sYES==START TEST ;D0 A MASSBUS INIT & RECAL sRETURN HERE IF NO ERROR sRETURN HERE IF ERROR s COUNT UP sTIMING LIMITS sTIME 10 SEARCHES sINITIALIZE THE TIMERS ;STOP THE CLOCK sSETUP VECTOR IN CASE OF CLOCK OVERFLOW C(S$SVEC sSETUP RHXX/RPO7 VECTOR RPVEC ,=(SP) JFC :FS B3| sLOAD FT/FS sSTART COUNTING AT ZERO ] = SEQ 0122 :;.'.."""'.'""'""""'Q""Q.'."""'"'.".".".".'.0'.0"."""'.1 L OWVSWN=OVRNIWVNWN <O Y00 NN WA - NDNDNVMNINOININ b b b Bl B ed b b NOWVSWN=OVEN WWWIWWWWWWNINDN,. .SBTTL TR TR TR égf' 220 — - — F10 2;?; FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 54 — N> 10 SEQ 0123 #131,aPKCS SINT.EN., COUNT UP AT 100KHZ aPKkC,=(SP) SSAVE THE CLOCK 19111l.an905 :ERROR? #SEARCH,IRPCST [olelelele] O W= S = 161722 #101.3PKCS (SP)+,aPKB 152462 17.2% PC.SAVREG R N = = = O~ NONNVONON % NSO PINEAN R4 SN VIV S NS SN2 OVo : ROTATIONAL SPEED TIMING TEST #0TADPB,R2 PC, SYRHXX #CLR,aRPCS2 155434 152426 DTADPB,aRPCS2 PC,RESREG RS ,ERRANY L10050: 000210 004422 000001 :START A SEARCH ‘WAIT ON INTERRUPT :STOP THE CLOCK SAND RESTORE THE COUNTED VALUE ;NO==-BRANCH ::SAVE RO=-RS :f73 POINTER SSAVE ALL THE RHXX/RPO7 REGISTERS *MASSBUS CLEAR :SELECT DRIVE ::RESTORE RO=RS ;FIND OUT WHAT ERROR csssga #BIT3'BIT7,SVSTAT 002254 17.10%: 17.44% :RETRY ALLOWED ? :BRANCH IS SO #SEAERR,=(SP) #1,-(5P) 000004 #16. ,WCEFLG #SEARCH,aRP(CS1 #CLR,aRPCS2 WCEFLG 1% sOVER RETRY LIMIT :BRANCH [F NOT 17.2% 000040 002620 DTADPB,aRP(S2 - X T (=lelele] I SRS 00¢340 75 2 76 030444 030444 77 030446 004461 0000C1 17.20%: ;DRIVE ADDRESS ? #SEABAD,=(SP) #1,-(SP) SP,RO CSPNTF 000004 004525 000001 #4,5P #ABOTST,=(SP) 000004 17.2: 161450 sRETRY 16 TIMES sWAIT FOR INTERRUPT sANY ERROR ? SEXIT IF NONE sMASSBUS CLEAR #BIT14,3RPDS NN NN NN - WD mr~ 0 RPO7 FCINL TEST MACRO v04.00 1-JAN=83 11:06:45 PAGE 54-1 17.2%: 17.8% SEXIT ($BSUB aPkB ;START [HE COUNT AT ZERO (2 R JLAO RPO7 FCTINL TEST MACRO v04.00 1=JAN=83 11:06:45 PAGE 54<2 13 S T 7: ROTATIONAL SPEED TIMING TEST 79 03046 01%777 0001;1 1616?2 MOV #131,9PK(CS 78 030452 012777 000131 80 030466 81 030470 ag 030474 83 030502 000901 017 49 042777 012677 161430 000101 161414 85 030514 86 030516 001453 004737 010646 BEO JS" 030526 030532 0047 015777 024472 000040 JSR MOV PC,SYRHXX #CLR,aRPCS2 JSR PC,RESREG 84 030506 032777 040000 030522 01272; 030540 013777 030546 004737 88 030556 002620 87 030552 89 030560 030560 90 030562 91 030570 92 030572 93 030600 94 030606 95 030610 004537 104403 032737 001636 012737 012777 000001 032777 96 030616 001412 152200 161416 152156 002620 010700 152122 L10051: 002254 000020 000131 002340 152052 97 030620 98 030626 99 030634 100 030640 012777 013777 005337 001357 000040 002620 002340 103 030644 104 030650 105 030652 }39 030654 004737 005301 003444 000137 016076 108 030660 004737 012324 012700 000000 _ 152054 1%: 030702 030706 030714 030722 030726 030734 030742 030750 112 0307564 104441 004737 012702 004737 o1§777 013777 016102 016237 116237 116237 004737 104456 030756 030760 030762 000024 006112 007604 030764 012777 112 030764 030772 013777 SWAIT ON INTERRUPT 1S2VE THE CLOCK :STOP THE CLOCK SAND RESTORE THE COUNTED VALUE 17.3% PC . SAVREG *NO==BRANCH ::SAVE RO=RS 0TADPB TRAP BIT BEQ MOV MOV WAIT BIT BEQ 152042 152034 002620 :SELECT DRIVE ::RESTORE RO=-RS SFIND OUT WHAT ERROR CSESUB #BIT3'BIT7,SVSTAT :RETRY ALLOWED ? 17.10% :BRANCH IF NOT, ABCRT TEST #16. ,WCEFLG CRETRY 16 TIMES #SEARCH,aRPCSY ;START TO SEARCH #BIT14,3RPDS ;ANY ERROR 17.38% :BRANCH IF NONE 17.20% CEXIT PC,COUNT R1 17.68 17.1% ;UPDATE THE COUNT DONE? SYES==GO TO THE EXIT *NO, LOOP 17.7%: JSR PC,FORSEC ;RESET TIMER TO & SEC, CHANGE (L~ >ERVICE AD MOV #P2100,R0 JSR MOV MOV MoV MOV MOVB MOVB JSR PC,SVRHXX #CLR,aRPC 52 DTADPB,aRP(S2 14(R1) ,R2 36(R2) CYL.RD 6(R2),SFC.RD 7(R2).TFK.RD PC,RESREG TRAP JSR MOV 151754 151746 002266 002272 002270 TRAP 151670 RS .ERRANY :SAVE ALL THE RHXX/RPO7 REGISTERS *MASSBUS CLEAR JSR DEC BLE JMP 010646 00260 151676 DTADPB,aRPCS2 :DPB POINTER 17.3%: 030142 000040 #DTADPB,R2 :1S "ERR=1'" #CLR,IRPCS? DTADPB,aRP(S2 WCEFLG 1% B8R 024472 000040 002620 000014 000036 000006 000007 010700 #BIT14,3RPDS :START A SEARCH MOV MOV DEC BNE }85 030642 000657 109 110 030664 030670 111 030672 030676 aPKC,=(SP) #101.3PKCS (SP)+,aPKB JSR X 000210 040000 WAIT MOV BIC MOV MOV 012664 JSTART THE CLOCK #SEARCH,BRPCST MOV 152130 SEQ 0124 MOV BIT ooze;o 10 17.8%: (S$SPRI PC,SAVREG #DTADPB,R2 CSERHRD .WORD .WORD WORD 20 EM20 DH&& MOV #CLR,aARP(S?2 MOV DTADPw,aRP(S2 sMASS BUS CLECAR ;LOAD THE DRIVE ADDRESS :DECREMENT THE RETRY COUNT :BRANCH IF NOT OVER THE LIMIT :DROP THE PRIORITY , ;3 SAVE RU=KS :DPB POINTER :SAVE ALL THE RMXX/RP0O7 REGISTERS *MASSBUS CLEAR JSELECT DRIVE ;ADDRESS OF SAVED REGISTER TABLE -GET CURRENT CYLINDE. sGET CURRENT SECTOR :GET CURRENT TRACK P RESTORE RO=RS : s LEAR THE MASSBUS :& SELECT DRIVE CZRJLAO RPO7 FCTINL TEST 7: ROTATIONAL SOoV 1=JAN=-83 11:06:45 PAGE 54-3 110 SEQ 0125 JIALIZE THE CLOCK YPE EXIT7: MOV MOV MOV MOV L10047: TRAP ADD TRAP RPVE(+2,=(SP) #ISRV,=(SP) RPVEC,=(SP) ’3 .~ (SP) C(SSVEC #10,5P (SETST THE TIMES sSETUP RHXX/RPO7 VECTOR J 10 CZRJLAO RPO7 FCTINL TEST MACRO v04.00 1-JAN-B3 11:06:45 PAGE 55 SEQ 0126 TEST B: ONE CYLINDER SEEK TIMING TEST i .SBTTL TEST 8: ONE CYLINDER SEEK TIMING TEST § .':"".'".""""""""'""""""""."".""."."""...'.."'..."' 5 ) 5" :® CYLINDER BY ONE FROM FC UNTIL THE INCREMENT IS GREATER THAN THE CYLINDER *LC', THEN REVERSE SEEK TO CYLINDER ‘FC'. DO IT TWICE. ;e EXCEED THE MAXIMUM TIME PERMITTED FOR A ONE CYLINDER SEEK. “ :® 7 B 8 9 :® 10 THIS TEST WILL COMMAND FORWARD SEEK CYCLES TO ADVANCE THE THE TIME TO PERFORM EACH SEEK IS CHECKED TO ENSURE IT DOES NOT THE TIME MUST BE LESS THAN 4MS. ::.t"""'.."""""""'"""Q""..'l.".""'."""."Q".Q"'.'Q"'Q.. 11 1§ 031050 13 031050 14 031054 15 031056 031060 16 031062 17 031066 18 031070 031072 19 031074 20 031100 21 031104 22 031112 23 031116 %g 8%}}52 T8:: 005737 003002 104432 002250 004437 000402 104432 (015476 1%: 002442 002246 2%: TEST8: 000756 000744 012703 005037 013737 005737 001407 sSEEK TO FC TRAP (LR JSR JSR C$SESUB RS PC,STRTMR PC,STOPCK MOov MOV #PR106,-(SP) #18.7%,-(SP) 000010 MOV TRAP ADD #3,-(SP) CSSVEC #10,5P 012746 01%766 000000 015624 Mov MoV #PR100,-(SP) #DORTI,=(SP) 012746 104437 062706 000003 MOV TRAP ADD #3,-(SP) CSSVEC #10,5P 002622 031126 26 031130 27 031134 031134 28 031136 29 031140 30 031144 31 10440¢ 004437 014742 031160 013746 104403 005005 004737 004737 012746 012746 012746 104437 062706 013746 18.1 L10053: 78.5%: 015626 012262 000300 031650 012126 000003 MOV TST BEQ MOV MoV 002644 Mov 000010 %9 FC,DTADPB+12 FC 18.5% #SEEK,DTADPB+2 005237 023737 003063 002632 002632 031240 42 031242 104402 005077 160654 002206 78.1%: 18.2: ;START WITH BEGINNING CYLINDER JIF FC <> 0 ;ELSE SKIP ;THEN SEEK TG FC BEFORE TiMING PORTION OF TEST ;SET THE UP/DOWN SWIT(H TO UP sINITIALIZE THE TIMERS ;STOP THE (CLOCK sSETUP VECTOR IN CASE OF CLOCK OVERFLOW PKV,=(SP) sSETUP RHXX/RPO7 VECTOR RPVEC,=(SP) ;SEEK FORWARD: 38 031224 39 031230 4«0 031236 41 031240 ;D0 A MASSBUS INIT. AND RECAL :NO ERROR RETURN ($B5UB R4 ,DRVCAL 000105 031202 031206 031212 031216 35 031220 R4 ,SRCHOO 2% CSEXIT L10052-, TRAP JSR 012737 33 34 031176 sKW11=P CLOCK? sYES==START TEST sPARAMETER POINTER sSET=UP FOR TWO ITERATIONS 002632 031164 031170 031172 CLKSTA 1% CSEXIT L10052-. #TIMT10,R3 DOTWO 002204 002204 32 031150 031154 18T BGT TRAP .WORD JSR BR TRAP LWORD MOV (LR FC ==> L( INC (MP BGT DTADPB+12 DTADPB+12,LC 18.3% sMOVE TO NEXT CYLINDER UP sO0UT OF CYLINDERS? :YES, GO SEEK REVERSE TRAP (LR ($BSUB aPkB ;START THE COUNTER AT ZERO 031534 031542 81 031546 82 031552 83 031554 031554 84 031556 85 031564 86 031566 - -~ -l 002254 18.28: 18.3%: aPKC,=(SP) SGET THE CURRENT COUNT MOV (SP)+,aPKB :AND RESTORE THE VALUE #101,aPKCS BIT #B1714,3RPDS MOV #DTADPB,R2 JSR DTADPB TRAP 18.2% PC,SAVREG PC, SVRHXX #CLR,ARP(S2 DTADPB,aRP(S2 PC,RESREG RS .ERRANY CSESUB BIT BNE #BITS,SVSTAT 18.9% DEC DTADPB+12 JSR JSR PC,COUNT PC . TWOMS SN :SEEK REVERSE: 002204 18.4%: OO=H =il 18.3: O 76 031470 77 031476 78 031502 79 031510 8C 031512 031516 031522 031526 MOV JSR MOV MOV JSR L10054: S OOONOON 031446 031454 031462 031464 SSTART A SEFK SSTART THE CLOCK BEQ JSR 151326 151320 oSNNS 71 031440 #SEEK,aRP(S1 #131,3PKCS BIC 151354 DTADPB+12,aRPDC :LOAD DESIRED CYLINDER MOV MOV WAIT 160614 ONNNNNNINNNNN N =2 NNNNN NN 5 B B 8 N U LN LN U P N LN 70 031434 MOV 151376 160630 - NW NN N N N N 5 5 6 6 6 6 7 7 0 0 0 1 151440 NOSOSNNSANNOSONSOSOCO SO & 56 57 58 59 60 61 62 63 64 65 66 031416 67 031422 68 031430 69 031432 031432 72 73 74 75 = , (] ~ N NN PO N N N N 2 N N NN e N N B e 7 0 1 1 N N 55 7 N N 54 e 53 SEQ 0127 TEST N N N N N 52 N N 48 L9 50 51 10 .00 1=JAN=83 11:06:45 PAGE 55=1 031246 54 62 7 N N 47 ON i 8: mo OD 43 44 45 46 COO0O0O0O0O0O0O0O0O0O0O0O0O0O0O0OO0O0O0O0O00O0O0 RP AQ 151246 CMP BLT 151204 160436 160422 151162 #SEEK,aRP(S1 #131,3PKCS #B1114,3RPDS BEQ ::SAVE RO=RS :DPB POINTER :SAVE ALL THE RHXX/RP07 REGISTERS :MASSBUS CLEAR SSELECT DRIVE :RESTORE RO=RS :FIND OUT WHAT ERROR ;POSITION ERROR? sYES, ABORT TEST sCOUNT THIS SEEKS TIME sSTALL TWO MILLISECONDS :LOOP, SEEK FORWARD sMOVE TO NEXT CYLINDER DOWN ;SET UP/DOWN SWITCH TO DOWN sMOVE TO NEXT CYLINDER DOWN sYES, EXIT LOOP ;0UT OF CYLINDERS? :START A SEEK :START THE CLOCK WAIT ON INTERRUPT :GET THE CURRENT COUNT :STOP THE CLOCK :AND RESTORE THE VALUE :ANY DISK ERRORS? :NO--BRANCH #0TADPB,R2 ;DPB POINTER :SAVE ALL THE RHXX/RPO7 REGISTERS sMASSBUS CLEAR sSELECT DRIVE PC, SVRHXX TRAP :NO==BRANCH 18.10% JSR BIT 18.9%: aPKC,=(SP) #101,3PKCS (SP)+,aPKB PC.SAVREG MOV MOV JSR JSR DTADPB :ANY DISK ERRORS? :START THE COUNTER AT ZERO DTADPB+12,aRPDC :LOAD DESIRED CYLINDER JSR MOV 002254 DTADPB+12,F( 18.6% MOV MOV WAIT MOV BIC MOV BEQ 151134 151126 DTADPB+12 ($BSUB aPKB BIT :STOP THE CLOCK FC <== L( TRAP CLR MOV L10055: 000040 DEC :WAIT ON INTERRUPT #CLR,aRP(S2 DTADPB,aRP(S2 PC,RESREG RS .ERRANY CSESUB #BITS,SVSTAT 18.10§ ::RESTORE RO=-RS sFIND OUT WHAT ERROR sPOSITION ERROR? sNO, CONTINUE o oTM =9 000000 #PR100,RO 010646 PC,SAVREG #DTADPB,R2 PC,SVRHXX 16076 12450 . sCOUNT THI sSTALL TWO DTADPB+12 DOTWO 18.8% 177777 SEQ 0128 #POSERR -($P) 18, 002632 002246 10 #1,-(SP} #-1,00TW0 C$SPRI #CLR,aRPCS?2 DPB,aRP(S2 ).R2 2),CYL.RD .SEC.RD COMNAY DNONN—=O TBOPOA~AA~AONS— SN Me DV A~AA~AD SO 21DDODVNVDD — A o oo OO OO VW S WWNNININ) = =QOONNC SNSNONNO SOOIV W PC,FORSEC o 012324 000004 O OO NN VIV SNy ONOSONSSNOON SO SOV D e o o o e e e e o D o D [elelolelelelelelelelalalalel=] WNNNN N N NN N NN N NN N peiy W 031224 RS 18.1% MOV MOV MoV TRAP ADD R COONNNNNNNNNNN —_— D D D — o000 VoONOs — —_ OO0 Vs 103 004544 000001 =lelelelelele ) WINNANIN) = -2 OO SO0 102 CYLINDER SEEK TIMING TEST E o OV O 2O O OO 0O O 0o 0o 00 b osaflombw—-ooafl O -2 8: 07 FCTNL TEST MACRO V04.00 1-JAN-B3 11:06:45 PAGE 55-2 [elelelelelelelo Nelelelelelel-]-] el=lelelelelelellelelelelelel] A ) ,TRK.RD ESREG HRD sLOOP, SEE ;MOVE *SEEK FORW sNOW!!! sRESET TIMER TO & SEC, sDROP THE PRIORITY CLk SERVICE AD : :SAVE RO=R5 :DPB POINTER :SAVE ALL THE RHXX/RPO7 REGISTERS sMASSBUS CLEAR sSELECT DRIVE sADDRESS OF SAVED REGISTER TABLE :GET CURRENT CYLINDER sGET CURRENT SECTOR sGET CURRENT TRACK :sRESTORE RO=RS #CLR,ARPCS?2 DTADPB,aRP(S2 PC,ST.CLK R4G,TYPTIM R4, SPTYP sSETUP RHXX/RP0O7 VECTOR L10052: CHANGE o> —_— wo - Y mN~N L 0 RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 56 : AVERAGE SEEK TIME MEASUREMENT TEST : .SBTTL A ’ 4 S AR SEQ 0129 TEST 9: AVERAGE SEEK TIME MEASUREMENT TEST AR AR ‘ 7 Mm10 AR AR R R dRRRRdRRdRRRRRRdRRR] ] THIS TEST WILL MEASURE THE AVERAGE SFEK TIME AS FOLLOWS: t (AVG) B 2 X [ (71 X 629) + (T2 X 628) ¢ (T3 X 627) +....+ (1629 x )] e I I R R - ee > - 629 x 629 g 10 WHERE: 1 1 1 THE TN IS THE MEASURED TIME INTERVAL FOR SEEKING FROM CYLINDER O TO CYLINDER N OR FROM CYL N TO CYL O. 2X629 1S THE TOTAL NUMBER OF SEEKS. ::"".".."..."""Q""""""Qt.'".'."'t'.".'t"'"Q"""'Q""'."'. 14 15 032040 16 032040 17 032044 18 032046 032050 19 032052 20 032056 21 032060 032062 22 032064 23 032070 24 032074 25 032100 26 27 0321064 032110 032114 032120 032124 032126 28 29 032132 032136 032142 032146 032152 032154 30 032160 31 032164 32 032170 33 032176 34 032202 032202 35 032206 005737 003002 104432 000702 004437 000402 104432 000670 012703 013701 004737 004737 012746 012746 013746 012746 104437 062706 012746 012746 013746 012746 104437 062706 005037 005237 013777 005077 19:: 002250 015476 1%: 002452 002256 015626 012262 2%: TEST9: 000300 032536 012126 000003 000010 000000 015624 002644 000003 000010 032754 032754 032754 157720 150516 19.1: 36 032212 37 032220 104402 012777 012777 000001 000105 000131 39 032226 042777 000101 157664 41 032240 032777 040000 150424 38 032222 017746 40 032234 42 032246 43 032250 032254 012677 0014§o 004737 012702 157676 157662 010646 002620 19.1%: 150446 157700 B 531 BGT TRAP .WORD CLKSTA 1% CSEXiT BR TRAP LWORD MOV MOV JSR JSR L10056~, R4, SRCHOO 2% CSEXIT L10056~. #TIMT11.R3 NC1,R1 PC,STRTMR PC.STOPCK MOV MOV v MOV TRAP ADD #PR106,=(SP) #19.7%,-(SP) PKV,=(5P) #3,-(SP) C$SVEC #10,5P MOV MOV MOV MOV TRAP ADD CLR INC MOV CLR #PR100,=(SP) #DORTI,=(SP) RPVEC,=(SP) #3,-(5P) CSSVEC #10,5P INCCYL INCCYL INCCYL ,aRPDC aPKB TRAP MOV MOV WAIT ($BSUB #SEEK,aRPCST #131,3PKCS BIC #101,3PKCS JSR MOV aPKk(,=(SP) MOV (SP)+,aPKB BIT #B1T14,3RPDS MOV #DTADPB,R2 BEQ JSR 19.2% PC . SAVREG :KW11=P CLOCK? SYES==START TEST :D0 A MASSBUS INIT & RECAL :RETURN HERE IF NO ERROR :PARAMETER POINTER :COUNT AND COEFFICIENT SINIT. THE COUNTERS SSTOP THE CLOCK :SETUP VECTOR IN CASE OF CLOCK OVERFLOW ;SETUP RHXX/RP0O7 VECTOR ;INITIALIZE THE SEEK CYLINDER ADDRESS : INCREMENT THE SEEK CYLINDER ADDRESS *SEEK ADDRESS *START COUNT AT ZERO ;START A SEEK SSTART THE CLOCK :WAIT ON INTERRUPT :STORE THE COUNTED VALUE :STOP CLOCK SAND RESTORE THE COUNT :ERR=1? *NO=-=BRANCH ::SAVE RO=RS :DPB POINTER 002254 Woow =viOO O—=0OW Of =0 PC,COUNT2 PC,TWOMS ($BSUB aPKC,=(SP) #101,3PKCS (SP)+,aPkB 157516 #B1714,3RPDS 150256 n w — TM w [~] — o TM b 2 o ~ ~ o N > o x mX. >»m sYES, ABORT TEST :SET UP/DOWN SWITCH TO uP sUPDATE THE COUNT sSTALL 2 MSEC sSTART THE COUNT AT ZERO ;ERR=1? #0TADPB,R2 PC,SVRHXX :DPB POINTER SSAVE ALL THE RMXX/RPO7 REGISTERS DTADPB,aRP(S2 SSELECT DRIVE PC,RESREG RS . ERRANY (SESUB #BIT5,SVSTATY 19.4%: sSAVE THE CLOCK VALUE sSTOP THE CLOCK sNOW RESTORE THE VALUE :NO==BRANCH #CLR,aRPCS2 002254 ;START THE CLOCK ;WAIT ON_INTERRUPT 19.3$ PC.SAVREG L10060: 004544 000001 R :PIOSITION ERROR? sALWAYS SEEK BACK TO THE FIRST CYLINDER sSTART A SEEK CONSNNES S O0OONOON OO0O-— 19.2: 000040 CSESUB #BITS,SVSTAT 19.2%: O—=O0O—= ONNNNYN NNVIWNW NWWNNWOWWNINNSONNNSN =WO =NW S =Ny O ONNOOON NWSNNNS NSO NN - O W OO =OHES L10057: OCOO0O0O0O0O0 OCO000O0O ONNNNNNUNNNNNO = NNNNN SERer wE OO0 f RR 0O SN SN S =N N O NINroW OO0 = S O O ONS RO SO DTADPB,aRPCS2 PC,RESREG RS, ERRANY 19.3% ::SAVE RO=RS :MASSBUS CLEAR :;RESTORE RO=RS :FIND OUT WHAT ERROR ;POSITION ERROR? sNO, CONTINUE #POSERR,=(SP) 000004 177777 015676 012450 © WSSO S ONN A > & SNNN R AR SEQ 0130 PC,SVRHXX 012324 000000 012702 10 #CLR,aRPCS2 oOo00O0 \:NOFOJ\NO SNONNNO OO0 O0O0O0O0—=000 OCOO0O =000 === = 3 b OOO0O0O (elolelelelelelelelelelelelelelelelelelelelelelelelelelelelelelelelelolelelelelelelelaTolo I = AN N LN N N NN N N N N N N N NN N LN N N N NN NN NN N NN N N NN RN TMM N I It b e VI WAV &H» > BN = — WWWNIN = = OO O NNNNO Lol =1 T S NT. o NSO B Owve VWA N=00V0~N OO VIV W= OOV NOWVSW oo O‘Og wYooN O OO NNNNNNNNN W =O OV NI N oo - g§-83 11:06:45 PAGE 56-1 010646 002620 19.3%: PC,TWOMS R1 19.1% 19.8% 19.7%: PC,FORSEC #PR100,RO C$SPRI PC,SAVREG #DTADPB,R2 sSET UP/DOWN SWITCH TO DOWN :UPDATE THE COUNT sSTALL 2 MSEC sDONE? sNO==BRAN(CH JYES=<=EXIT sRESET TIMER TO & SEC, CHANGE (LK SERVICE :DROP THE PRIORITY ::SAVE RO=RS :DPB POINTER AD LAO RPO7 FC 9: AVERAGE 032560 032564 03257 0326 032604 0 613 0 6% 032626 82 83 032632 032636 032642 032663 03265¢ 032654 84 032660 032662 032664 032666 85 0325670 032670 032676 86 032704 87 032710 032714 88 032716 89 032722 90 91 032724 032730 032734 032740 032744 032746 92 032752 032752 93 94 032754 MACRO V04.00 1-JAN=83 17:06:45 PAGE 56=2 n SEQ 0131 ME MEASUREMENT TEST 5447 004 JSR PC, SVRHXX MOV DTADPB,aRPCS2 1;0078 MOV 00014 00036 oozgg MOV MOV 000007 00227 MOVB osezo 15007 ooooog oog #CLR,IRPCS2 14(R1) ,R2 36(R2) .CYL.RD MOVB 6(R2),S$EC.RD JSR PC,RESREG 002646 022674 002644 000003 MOV MOV MOV MOV RPVEC+2,=(SP) #ISRY,=(SP) RPVEC,=(SP) #3,-(5P) 000010 ADD #10,5P .WORD .WORD .WORD 20 EM20 DH&4 MOV MOV JSR JSR #CLR,ARPCS2 DTADPB,aRP(S?2 PC,ST.CLK R4, TYPTIM 016240 JSR SP11 R4 ,SPTYP 002646 022674 002644 000003 Muv MOV MOV MOV RPVEC+2,-(SP) #ISRV,=(SP) RPVEC,=(SP) #3,-(5P) ADD #10,5P TRAP CSETST .WORD O 010700 000040 002620 011676 016370 000010 TRAP TRAP 147772 147764 719.8%: TIMT1i TRAP L10056: INCCYL: 7(R2).TRK.RD :SAVE ALL THE RHXX/RPO7 REGISTERS :MASSBUS CLEAR *SELECT DRIVE :ADDRESS OF SAVED REGISTER TABLE :GET CURRENT CYLINDER :GET CURRENT SECTOR SGET CURRENT TRACK ::RESTORE RO=-RS :SETUP RHXX/RP0O7 VECTOR CSSVEC CSERHRD ;CLEAR THE MASSBUS ;& SELECT DRIVE sINITIALIZE THE CLOCK :G0 TYPE THE TIMES sPOINTER ;SETUP RHXX/RPO7 VECTOR C$SVEC sCYL ADR COUNTER 94 1 JSBTTL TEST 10: MAXIMUM SEEK TIMING TEST i :;Q'Q""'.."."'""""'Q'""Q'..""""'.".Q'.'.""'.'Q.'Q"'0"0.'.0'. 5 1 CYLINDER *LC*, e THEY ARE WITHIN THE TOLERANCE ALLOWED FOR THE MAXIMUM SEEK 4 e g I 9 10 v e e 1 e 1§ THIS TEST WILL COMMAND A FORWARD SEEK FROM CYLINDER 0 10 THEN A REVERSE SEEK FROM CYLINDER ‘LC* TO CYLINDER 0. BOTH SEEKS ARE TIMED AND CHECKED TO ENSURE TIME. THIS SEQUCNCE IS REPEATED 512 TIMES (FOR A TOTAL OF 1024 SEEKS), THE MAXIMUM SEEK TIME MUST BE LESS THAN 46 MS. °LC* DEFAULTS T0 629 (10) FOR RPO7'S. ::'."'Q'Q'.""'t""0""'"""'.".'.""Q.QQ'.'0.Q""'Q"Q""".QQ"."' 1 14 032756 15 032756 16 032762 17 032764 032766 18 032770 19 032774 20 032776 033000 21 033002 005737 oosogg 10447 000642 00443° 00040 10443 00067 T10:: 015476 1%: 012703 002462 28: 004737 004737 015626 012262 22 033006 012 23 033012 24 033016 25 26 032022 002250 001000 000300 ST 8GT TRAP LMORD JSR BR TRAP LMORD MOV TEST10: MOV JSR JSR MOV CLKSTA 1% CSEXIT L10061-. R4, SRCHOO 2 CSEXIT L10061=. :KW11=P CLOCK SYES==START TEST :DO A MASSBUS INIT & RECAL *RETURN HERE IF NO ERROR #TIMT12,R3 ;PARAMETER POINTER PC,STRTMR PC.STOPCK SINIT. THE TIMERS 1STOP THE CLOCK SSETUP VECTOR IN CASE OF CLOCK OVERFLOW #512. ,Ri #PR106,=(SP) SREPEAT ""0="LC*=0"" 512 TIMES 023026 033442 MOV #110.7$,-(SP) )33036 033042 033044 000093 000010 MOV TRAP ADD #3,-(SP) CSSVEC #10,5P 033054 033060 000000 015624 002644 MOV MOV MOV #PR100,=(SP) #DORTI.=(SP) RPVEC,=(SP) 000010 TRAP ADD CSSVEC #10,5P 157016 002206 TRAP CLR MOV C$BSUB aPkB LC,aRPDC #131,3PKCS 156770 000101 156754 MOV WAIT MOV BIC MOV (SP)+,aPKB ‘START THE CLOCK ‘WAIT ON INTERRUPT ‘SAVE THE CLOCK , SSTOP THE CLOCK TAND RESTORE THE CCuie'ED VALUE 010646 002620 BEQ JSR MOV 110.2% PC, SAVREG #DTADPB,R2 *NO=-=-BRANCH ::SAVE RO=RS :DPB POINTER 000040 002620 MOV MOV #CLR,IRPCS2 DTADPB,aRPCS2 *MASSBUS CLEAR :SELECT DRIVE 0353032 27 28 033050 033064 033070 033072 29 033076 032076 30 033100 31 033104 32 033112 33 033120 3% 033126 35 033130 36 033134 37 033142 38 033146 39 033154 40 033156 033162 033166 033172 033200 012126 000003 000105 000131 040000 024472 MOV MOV MOV PKV,=(SP) :SETUP RHMXX/RP0O7 VECTOR #3,-(5P) #SEEK,aRPCS1 aPKC,=(SP) #101,aPKCS BIT #BIT14,3RPDS JSR PC, SVRHXX ;START COUNTING FROM ZERO SMAXIMUM CYL INDER :START A SEEK :ERR=1? *SAVE ALL THE RHXX/RP07 REGISTERS - SEQ 0132 10: MAXIMUM SEEK TIMING TEST mr~y cn LAO RPO7 FCTNL TEST MACRO Vv04.00 1-JAN=83 11:06:45 PAGE 57 4103 DEEa13 Gi 033216 430 0 — 0 RPO7 ¢ 0: MAXIMUM MACRO v0 4.00 1=JAN=-B3 11:06:45 PAGE 57-1 IMING T ES T 019700 012664 L17062: 002254 i47 s Og §£ 033364 033364 64 033366 65 033374 66 033376 033376 033402 033406 033410 033412 67 033416 68 033420 69 033424 70 033430 ;:RESTORE RO=RS SFIND OUT WHAT ERROR ;YES, ABORT TEST sUP THE COUNT sSTALL FOR TWO MILLISEC 147374 156626 156612 aPKC,=(SP) #101.3PKCS 147352 #B1T14,3RPDS (SP)+,aPKB 110.3$ PC,SAVREG #0TADPB,R2 PC, SVRHXX #CLR,aRPCS2 147324 147316 DTADPB.aRP(S2 PC,RESREG 012664 RS ,ERRANY :START COUNT AT ZERO sBEGINNING CYLINDER IS 0 :START A SEEK sSTART THE CLOCK ;WAIT ON_INTERRUPT :SAVE THE CLOCK ;STOP THE CLOCK sNOW RESTORE CLOCK :"ERR"=1 ? +NO=-=BRANCH : ; SAVE RO=R5 :DPB POINTER sSAVE ALL THE RHXX/RPO7 REGISTERS sMASSBUS CLEAR ;SELECT DRIVE : ;RESTORE RO=RS sFIND OUT WHAT ERRO® L10063: 000040 002254 sPOSITION ERROR? sNO, CONTINUE 110.48%: 004544 000001 000004 177777 110.3%: 016076 012450 R ;2 033440 012324 110.7%: 172 164 NN 4 4 MOV sSET THE UP/DOWN SWITCH TO DOWN sUPDATE THE COUNT sSTALL FOR TWO MILLISEC sDONE? 110.1% :NO==-BRANCH PC,FORSEC sRESET TIMER TO & SEC, CHANGE (LK SERVICE AD :DROP THE PRIORITY #PRIO0,RO C$SPRI 000000 —— 033452 78 033454 033460 033464 033470 033476 SEQ 0133 ;SET_THE UP/DOWN SWITCH TO UP 72 033436 75 033442 76 77 033446 n sPOSITION ERROR? aRPDC #SEEK ,QRPCST #131,aPKCS 63 71 033434 TRAP 81T 110.2: 50 02%566 6% 0333562 P&.RESREG RS ,ERRANY 110.2%: 48 033240 49 83 222 51 033252 Sg 03%256 53 033264 54 033272 55 033274 56 033300 57 033306 58 033312 59 033320 60 033322 033326 033332 033336 033344 033352 61 033356 JSR JSR DTADPB x PC,SAVREG #DTADPB,R2 PC,SVRHXX #CLR,aRPCS2 DTADPB,aRP(S2 sYES==EXIT ::SAVE RO=-R5 :DPB POINTER sSAVE ALL THE RHXX/RP07 REGISTERS sMASSBUS CLEAR sSELECT DRIVE 033506 0161 033516 033526 033532 116237 004737 ; 033510 816 116237 79 0335 03 S‘g 033542 Og 544 80 033546 033546 033554 81 033562 82 033566 033572 43 033574 gg 033600 86 033602 033606 033612 033616 033622 033624 87 033630 033630 013746 012746 013746 012746 104437 062706 104401 sGET CURRENT CYLINDER sGET CURRENT SECTOR sGET CURRENT TRA(CK ; sRESTORE RO=RS JSR TRAP 000024 006112 007604 012777 013777 004737 004437 002462 004437 002524 ;ADDRESS OF SAVED REGISTER TABLE MOV MOV mMove MovBe 104456 000040 002620 011676 016370 1 4 7114 1 4 7106 110.8%: MOV MOV SP12 002646 022674 002644 000003 000010 .WORD .WORD .WORD JSR JSR TIMT12 JSR 016240 L10061: #CLR,IRPCS2 DTADPB,aRP(S2 PC,ST.CLK RG.TYPTIM R&,SPTYP MOV MOV MOV MOV TRAP ADD RPVEC+2,=(SP) TRAP CSETST #ISRV,=(SP) RPVEC,=(SP) #3,-(SP) CS$SVEC #10,SP N - TEST 10: MAXIMUM SEE K TIMING TES sSETUP RHXX/RPQ7 VECTOR el SEQ 0134 (lflJLAg RPO7 FCINL T EST MACRO VO?.00 1=JAN=83 11:06:45 PAGE 57-2 Ve — ?N =3 RN FN SEQ 0135 TEST 11: MID=TRANSFER SEEK TEST JSBTTL NN R RN RN RN RN RN E R E RPN R RO RN R RN AR R AR AR RN NN R RNA NN NN AR RORNRCOEROROEROEROEROEROEOROEROTOTTS tTHIS TEST EXECUTES READ=DATA COMMMANDS TO EVERY TRACK IN THE SFIRST(STARTING) CYLINDER. :THE FUL L TR ACK TRANSFER 1S MADE IN 2 PASSES: STARTING CYLINDER STARTING TRACK ENDING TRACK INCREMENT TRACK STARTING SECTOR — STHE PAR AMETERS: nmunun 00. THRU 24, 25. THRU (49, +1) O =" 187 PASS, SECTORS:: 2ND PASS, SECTORS: 012737 11%737 113737 013737 012737 005037 002654 000171 002344 042610 000000 002212 002204 002744 002246 T1:: 100411 005337 112737 062737 000762 002246 002246 00;630 177400 104403 113702 002631 10140 110237 002631 000740 004737 104401 002216 002214 020226 2%: L10065: T11.5%: SINITIALIZE THE SUB=SYSTEM SSTOP THE CLOCK :DRIVE ADDRESS #RODAT,DTADPB+2 :READ=DATA COMMAND TRKWC ,DTADPB+4 :ASSUME HALF FULL TRACK #DBUFF ,DTADPB+6 :BUFFER ADDRESS #0,DTADPB+10 :SECTOR ADDR DOTWO TRESET 2 ITERATIONS CONTROL FT.DTADPB+11 FC,DTADPB+12 #REG,DTADPB+14 :TRACK ADDR :CYLINDER ADDRESS :RHXX/RP07 REGISTER ;START A DATA TRANSFER pOTWO 28 DOTWO #25..DTADPB+10 ‘DONE HALF TRACK TWICE? SYES, EXIT 2 ITERATIONS LOOP *NO, MARK 2ND ITERATION :TFR 2ND HALF OF TRACK 111.2% 1LOOP TO TFR 2ND HALF DOTWO DTADPB+10 :RESET PARAMETERS FOR 1ST LOOP *RESTART AT SECTOR 0 C$ESUB DTADPB+11,R2 17,R2 LT,R2 ExiTN R2.DTADPB+11 :UPDATE THE TRACK ADDRESS SADD THE DESIRED TRACK NUMBER SOVER THE TRACK LIMIT? ‘BRANCH IF SO #-256. ,DTADPB+4 sYES, SET WC FOR 2ND HALF TRACK + 1 SECTOR 1%: 002624 DRVNO,DTADPB R4 ,DRVCAL 000031 177400 PC,RPINIT PC . STOPCK ($BSUB 111.2%: 014742 002246 005037 105037 162737 063702 02370% MOvVB MOvB MOV MOV MOovB MOvB MOV .1 104402 004437 005737 JSR JSR SO0~ NO 113737 11;737 013737 020226 012262 [=l=l=l=lelelel=] OCO0OO00000O0 004737 004737 NN NIN ooocorOrO OO WIWWIWNWNO NN VI SN NN :WV‘NNN—'OON NNNNNNNNO% oo~ ON oo WINWNWN ety S NWW WWWNWNWNWNW NN NN NN N NN N w N N N N NN NN NN N N N N NN W felelelelelelelelelelelelelelelalalel=lalt-] .':"...'..."'.".."'.""""."."."'."".".""".'...""'.Q'..."'Q"' 000000 LOOOOOCO 2O WNANLAIN NORUNO RO N NN NN b = i e e e s W = N=OVONOW S WN=OVONOWNS WOV~ VIS W ) 202 5D NWWWWWKN AN =OO ONOWVE VIS S N N2 OOVRNOWV INL T %ST HA(ROS¥06.00 1=JAN=-83 11:06:45 PAGE 58 ANSFER SEEK TE #-256..DTADPB+4 :WC FOR 1ST HALF TRAP BLOS MOovB ExXITN : JSR L10064: TRAP 111.2% PC,RPINIT CSETST ST0 NEXT TRACK 1LOOP BACK TTRACK TRACK — LSBTTL : 52 2 2 2 32 2 N SEQ 0136 TEST 12: ERROR REGISTER BIT TEST 2323222232222 2 2222222222222 22222202000 dRRdRRdRdR Rl ddlll ] THIS TEST FORCES %gT € AOE ERROR BITS THAT ARE NOT FULLY CHECKED BY THE MICRO DIAGNOSTI [A 6 7 6N LBT ,AQE: READ THE LAST USER SECTOR WITH A WORD COUNT >256. 222222232323 22222 222 3 2 2 2R i 2 2R Rl ddld ] 4 034216 35 034220 034222 034224 0365%6 3¢ 034230 034230 37 034232 38 034240 39 034242 40 034250 41 034252 4% 034254 43 034260 44 034262 45 034262 034262 034262 104402 004737 032762 001005 106456 104402 004737 032762 001005 001001 000403 004537 002620 104407 WININIWNNONONOND S-S0 NO PCRPINIT PC . STOPCK DRVNO,DTADPB 040090 000012 NS1,DTADPB+10 NT1.DTADPB+11 NC1.DTADPB+12 #REG,DTADPB+14 C$BSUB 15112 TsT12: 177400 01 5044 1 001000 001000 000200 CSESUB :gaa.12<a2) 002624 #SCTRWC ,DTADPB+4 000014 PC,EXECMD #AOE , 14 (R2) C$BSUB TST12A L10070: 000014 TST12A: CSERHRD 51 EMS51 0 CSESUB QAOE.IA(RZ) #DVC,42(R2) 000042 1% 2% RS,ERRANY 012664 i!12: 0066: D CMD IN DPB ;SET T WORD COUNT TO READ ONE SECTOR sSET LAST v USER SECTOR IN DPB s1.E., CYL 629, TRK 31, SEC 49 ;POINT TO RHXX/RPO7 REG TABLE SAVED ON (CMD DONE sEXEC CMD :LBT=1? 0K, SKIP EMS50 0 RS, ERRANY 012664 12 3 THE SUB=SYSTEM 3 ( LOCK D #DBUFF ,DTADPB+6 sDATA BUFF ER CSERHRD 50 L10067: : #RODAT,DTADPB+2 :SE #SCTRUC ,DTADPB+4 PC,EXECMD #LST,12(R2) 000012 104456 000063 00734 000000 104403 042762 001005 032762 mMove MOV MOV MovB 1e2.1: 000062 007246 000000 104403 032762 001403 004537 002620 062737 JSR JSR MovB oooororO OO norRoNONONNNON [=lelelolelelel=] OCO0O0O0O000O0 SV = OO SN OO=SrO 004737 004737 113737 112737 012737 012737 113737 113737 0137%7 012737 CO0OO0O0O—=O000O0 [ 9 0%‘036 16 034036 17 0364042 1; 0;2066 13 0340564 14 036068 15 034070 16 034076 17 0341064 18 036112 19 034120 20 034126 0361%6 21 034130 22 034134 23 034142 24 034144 034146 034150 034152 25 034154 034156 26 034156 27 034164 28 034166 29 034172 30 034174 31 034202 034202 32 034204 gB 034210 CSETST ;OTHER ERRORS? :NO, SKIP sYES, FLAG THEM ;SET DPB TO READ BEYOND LAST SECTOR JATTEMPT TO READ PAST LAST SECTOR sAQE=1? ;0K, SKIP RROR TABLE IM.9o0mM wo - MmN ng RPO7 FCINL TEST MACRO 04.00 1=JAN-B3 11:06:45 PAGE 59 12: ERROR REGISTER BIT TE T . 1F ANY RRORS 2)(ER3) = 0 e - ov -0 W1 SEQ 0137 S T/RETURN=TO=CENTER=LINE TEST LSBTTL 2 TEST 13: OFFSET/RETURN=-TO-CENTER=LINE TEST 2222222322222 222222222 2222222222222 R0 ISSUE AN OFFSET COMMAND, R Rl RRR Rl PROCESS THE ATTENTION INTERRUPT AND CHECK FOR ERRORS ,VERIFY THE ASSERTION OF OM OF RPDS. ISSUE THE RETURN TO CENTER LINE COMMAND, PROCESS THE ATTENTION INTERRUPT AND CHECK FOR ERRORS, VERIFY THE RESETTING OF OM. — oooconorONV PONNINNN 8 NN —=O00 [olelelelelel=] [eolelelelalel=] NNONONONONN NNNNNNNN O0O0==000 bbb O PNONIWWNWNWNWNN &~ OO0= OO WE S NS P o P P 104402 014742 002634 000001 }?§13: FS,DTADPB+10 FT.DTADPB+11 FC.DTADPB+12 :OPERATE ON FS,FT,FC CSERHRD 54 EMS4 O TRAP CSESUB MOV #RTC,DTADPB+2 ($BSUB JSR MOV R4, DRVCAL DTADPB+14,R2 BEQ T13.1% #OM,12(R2) CSERHRD MORD .WORD WORD 55 EMSS O TRAP TRAP CSESUB CSEXIT LWORD 113.18: DEC EXIT13: L10071: 15713 MWORD .WORD WORD BIT 000012 ($BSUB TRAP TRAP £10073: 034452 sINITIALIZE THE SUB=SYSTEM R4, DRVCAL DTADPB+14.R2 #OM, 12 (R2) TRAP 002240 PC,RPINIT JSR MOV BIT BNE P 4406 4612 4416 002622 R Rl ] SSET ITERATION COUNT :GET DRIVE NUMBER #REG,DTADPB+14 :POINTER TO RHXX/RPO7 REG TABLE SAVED ON CMD DONE #OFFSET,DTADPB+2 :LOAD OFFSET CMD L10072: 000117 R0 o MOVB MOVB MOV MOV MOV TRAP 104403 R #10.,1TCNT DRVNO,DTADPB P PR 4404 JSR 2 MOV TEST13: MOV P 012737 o oD P 000000 © T13:: 000012 WNWNW OO =l{=lelelelelel=] - N 2222232223222 22322322223 22222 WW WO s b cd i i b VONOWVSWN=OYRNOWVSWN = b SWN=0O PONUAUNIND W ~N oo WSSO ®NG WWIWWN CTNL TEST MACRO v04.00 1-JAN-83 11:06:45 PAGE 60 BNE TRAP L10671~-, [TCNT TEST13 CSETST :START A DATA TRANSFER :POINTER TO RHXX/RPO7 REG TBL SAVED ON CMD DONE TOM = 12 10K :LOAD RETURN TO CENTER LINE CMD ;START A DATA TRANSFER :POINTER TO RHXX/RPO7 REG TBL SAVED ON (MD DONE ‘oM - 0? 20K :DONE ITERATIONS ? ‘BR IF NO LSBTTL TEST 14: RANDOM READ TEST 4222222222222 2222222 R0 2R RRRRRdRRdRRdRdRRRdRRdd R RRddd Rl ldl) STHIS TEST RANDOMLY SELECTS A SECTOR ADDRESS: CYL BETWEEN FC AND LC, : : :1F _THERE TRK :1F THERE > : BETWEEN FT AND LT, SEC BETWEEN FS AND LS. 1S NO P=CLOCK, IT THEN EXECUTES A READ DATA COMMAND TO 1 SECTOR ;AFTER EACH READ=DATA COMMAND, THE PROGRAM VERIFIES THE AND VERIOUS RHXX/RPO7 REGISTERS. IS A P=CLOCK,THE PROGRAM PERFORMS AN ADDRESS MARK DETECTION TEST: e ;1T VERIFIES THAT DATA CAN BE READ CORRECTLY WITHIN THE SAME DISC REVOLUTION sAS A SECTOR DETECTION. SEARCH FOR THE LOGICAL SECTOR PRECEDING THE SELECTED ;SECTOR TO READ, THEN READ THE SELECTED SECTOR, TIME THE SEARCH DONE-READ DONE ;70 BE WITHIN A DISC REVOLUTION. FLAG LOST REVOLUTIONS. :;".'.!...'Q""""""""""'.'..""..'."".'.""".."Q'.""""""' 34454 00262 00262 00262 00262 00263 104402 004437 104403 005337 001367 015626 000101 NS NOWND NS NNN N OWESES NN OOOr 035742 4 WD NNNN SBBES oo O b O=0000 NN 0047 -t 034046 034652 JSR JSR BNE TST14A: 012126 000003 000010 000000 015624 002644 000003 155310 :LOAD THE DRIVF ADDRESS #RDDAT,DTADPB+2 :EXECUTE READ (OMMAND TRAP 015476 DRVNO,DTADPB MOVB TRAP EXIT14: DEC 002240 004437 000402 000137 OO0O00 034642 L10075: :SET ITERATION COUNT iP=CLK PRESENT? TST14A PC,RPINIT PC.STOPCK TRAP 014742 XTIMES, ITCNT CLKSTA BGT JSR JSR MOV rov MOV 104432 2 MOV ST MOVB 001206 042 45 46 034636 T14:: }52114: N NW OCOWVWVWVWNE SN W NONNOO SN VNOY W=D O0 OSSO O 002240 SONSNO 223 SR2RIIIRRZ FARFNN22222 VO O O O O bbbbbg PWN=OOVONE WWLY VS W = W WWNININININININININI N b b b s b b b d e b OVONOWVSWN=SOOVONOWVS W =00V NIWVSsWNY= - 3> 8O SEQ 0138 : KANDOM READ TEST OB NN In RPO7 FCTNL TEST MACRO v04.00 1-JAN=-B3 11:06:45 PAGE 61 #-256..DTADPB+4 :WORD COUNT = ° SECTOR #DBUFF .DTADPB+6 :BUFFER ADDRESS #REG,DTADPB+14 :RHXX/RPO7 REGISTER TABLE R4, RANADR ($BSUB R4, DRVCAL CSESUB [TCNT TEST14 CSEXIT LWORD L10074~-. JSR R4, SRCHOO BR JMP JSR 1% XITi4 PC,STRTMR BIC #101,3PK(S MOV #PR106,=(SP) MOV MOV MOV :GENERATE A STARTING ADDRESS ;START A DATA TRANSFER :DONE ITERAIIONS ? :BR IF NO :MASS BUS INIT & RECAL *NO RECAL ERROR, CONTINUE SEXIT ON RECAL ERROR ;INIT THE TIMERS *STOP THE P=CLOCK SSETUP VECTOR IN CASE OF CLOCK OVERFLOW #114.78,-(SP) PKV,=(SP) #3,-(SP) TRAP ADD CSSVEC #10,5P MOV #PR100,=(SP) MOV #3,-(5P) MOV MOV SYES, EXEC RAND READ TEST + AD MARK DET SINITIALIZE THE SUB=SYSTEM $STOP THE CLOCK #DORT] ,=(5P) RPVEC ,=(SP) sSETUP RHXX/RPQO7 VECTOR CZRJLAD RPO7 FCTNL TE51 MACRO v04.00 1-JAN=-83 11:06:45 PAGE 61-1 n SEQ 0139 TEST 14: RANDOM READ TEST 034656 034660 2; 034664 104437 062706 005005 TRAP ADD CLR 000010 49 :REDUCE THE TARGET SECTOR BY 2, TO COMPUTE THE VALUE OF 52 034666 004437 017544 54, 034676 55 034704 56 034706 57 034712 032777 001006 162701 0029202 0000064 58 034714 gg 034720 61 034722 62 034724 63 034726 64 034732 65 03473 66 034740 67 034744 68 69 034744 034744 034744 70 034746 71 034754 113701 062701 000411 005701 001405 162701 001002 062701 062701 002630 000031 000030 $1S INTERLEAVED SECTOR ENABLED ? ‘BR IF YES BACKUP THE SECTOR ADDRESS FOR THE SEARCH ‘BR IF < SECTOR 0 3%: i$: T1410%: 114.2: 012677 113766 002631 000001 75 034776 012777 145676 012777 177400 042610 145664 012777 000006 ;; 035010 #1LV,3RPDS 2 #2.R1 1% 000031 73 034764 012703 BIT BNE SUB BGE 2%: 145740 76 035004 sGEN A RAND ADR: CYL, TRk, SEC 1%: 002632 74 034770 R4 ,RANADR MOVB 000002 000062 002472 THE 2ND LOGICAL T14.1%: JSR 145766 104402 013777 110146 72 034756 :SET COUNT=UP FLAG FOR COUNT SUBR ;SECTOR. ;? 53 034672 C$SVEC #10,5P RS ADD BR ST BEQ SUB BNE ADD ADD ;PREPARE TRAP MOV MCOVB MOVB MOV 145660 R1 3% #25.,R1 3¢ #25..R1 #24. R GET TARGET SECTOR ADDRESS 10 READ ADJUST FOR ADDRESS BEFORE SECTOR 0 CEXIT ;1S IT SECTOR ADDR 0 ? :BR IF YES :IS IT SECTOR ADDR 25 ? ‘BR IF NO :ADJUST FOR THE ADDRESS BEFORE SECTOR O :REDUCE THE TARGET SECTCR BY ¢ TO SEARCH C$BSUB DTADPB+12,3RPDC ;CYL R1,=-(SP) HERGE SECTOR DTADPB+11,1(SP) :AND TRK (SP)+, aRPDA LOAD TRK/SEC #DBUFF ,aRPBA SET DATA BUFFER ADR 0-256..3RPUC MOV #11420,R3 MOV 79 #50.,.R1 13 MOV MOV 155104 DTADPB*lO R1 #6,3PKB READ SECTOR IIHING LIMITS FOR COUNT SUBR SALLOW> 6 REVOLUTIONS PER SEARCH: :3 FOR IMPLIED MAX SEEK (46 MSEC OR ABOUT 3 REVOLUTJIONS) g? 3 FOR WORST CASE SEARCH(SECT CMP ERR OR HPR CRC ERR) 82 035016 012777 000105 155074 MOV #105,3aPKCS ;START P=CLOCK:IE,COUNT DOWN,LINE FREQ &, 835040 87 035046 042777 012677 000101 155050 155052 BIC MOV #101.3PKCS (SP)O aPKB ‘STOP THE CLOCK AND RESTORE THE COUNTED VALUE 89 035060 90 035062 035066 001533 004737 012702 83 035024 012777 000131 84 035032 000001 85 035034 017746 155064 145626 MOV WAIT MOV 88 035052 032777 040000 145612 035072 035076 035106 035112 91 035116 92 035122 93 035124 035124 004737 012777 013777 004737 004537 002620 104403 BIT BEQ JSR MOV 010646 002620 024472 000040 002620 010700 012664 JSR MOV MOV JSR JSR 145564 145556 L10076: DTADPB TRAP ISEARCH aRP(S1 aPKC,=(SP) 131114 arRPDS 114 PC, SAVREG ODTADPB R2 PC, SVRHXI #CLR,IRPCS2 DTADPB,aRPCS2 PC, RESREG RS. ERRANY ($ESUB STARY A SEARCH ‘WAIT ON INTERRUPT SSAVE THE CLOCK .e ROR? NO--BRANCH 1 :SAVE RO=RS :DPB POINTER SAVE ALL THE RHXX/RPQO7 REGISTERS *MASSBUS CLEAR :SELECT DRIVE ..RES!ORE RO=RS ;FIND OUT WHAT ERROR M > O—OO b QPO == OW ONSONNINSSOMNIN =N =S NSOONNNSOONNON 004422 000001 quT3!8117.SVSTAT #SEAERR =(5P) ‘RETRY ALLOWED :BRANCH S SO ? #,5P #ABOTST,=(SP) #1,-(5P) SP.RO CSPNTF #4,SP 1%: 2%: 114.8% #16. ,WCEFLG #6,3PKB ;RETRY 16 TIMES sALLOW > 6 REVOLUTIONS PER SEAR(CH: ;3 FOR IMPLIED MAX SEEK (46 MSEC OR ABOUT 3 REVOLUTIONS) :3 FOR WORST CASE SEARCH(SECT CMP ERR OR HDR (RC ERR) #105,aPKCS #SEARCH,RPCST ;START P=CLOCK:1E,COUNT DOWN,LINE FREQ :START A SEARCH aPKC,=(SP) *SAVE THE CLOCK (SP)+,aPKB SAND RESTORE #101.3PKCS 154652 #B1114,3RPDS 165412 114118 #CLR,IRPCS2 145400 145372 DTADPB,aRPCS2 WCEFLG 28 004461 000001 #SEABAD,=(SP) #1,-(SP) 000004 004525 000001 #4,SP #ABOTST,=(SP) #1,-(5P) 000004 #4,5P 114.8% 154506 aPKC,=(5P) #101,3PK(S 040000 145246 #B1T14,aRPDS b et \NON NSNS ., =00 145270 154522 b\ oON S=O ($85UB DTADPB+10,aRPDA aPkB #RDDAT ,aRPCS1 #121,9PKC(S OO=O OO OONN SSTOP THE CLOCK *ERROR? THE COUNTED VALUE SEXIT IF NONE :MASSBUS CLEAR :;DRIVE ADDRESS *OVER RETRY LIMIT ? :BRANCH IF NOT SP.RO CSPNTF 114.3: 010646 002620 SWAIT ON INTERRUPT SP.RO CSPNTF —_O VoW rOS MWNAONNNSONYNUWWNNSNOANNO NN S O=OSNO=OS NS WNNWNNNSONN OONNOOOONOOOMNNINNNWNNNO N =NYN o WWNNNESONNNND Ris S ) S =N NONNWVIWES 4 ~ S NONNONNONES ey PONNNNNO = NYNNN N = RO ~ ~ ORI VAR AN = R ORIMIN &DRIR == CRosOoNNN OO0O=0000—=000000000O00O0000 OO b b oo —- b s(== - it o O N = PO - ANV VIV AT AT AT U‘\b"\fl\fl\fl\fi\fl\fl\fl\fi\fl &~ P-4 Svitvitviivitvi ittt v WwN A OO0~ Nt et OO AT e v v v v Y Y L L L L L L LT T T L) d O NN IS 25 25 B NNANNIN) = = =2 O O N N0 O W B £ NN = W AORD = = O O RO NOSOOSOFCONONCOSNISNO NSO OO OO OO N LN N N N U N U N U U U N N U U U N N N U N N NN N N NN N NN NN el=l=l=l=l=l=l=l=l=l=l=lelalelelelelelelelelelelelelelelelelelelelelele -] ONO VWOV~ L) SEQ 0140 #1,-(SP) -t NN NN -t D2 OO0O—-000O0—~00000 BIT BNE 00225¢ 00 ] (] NOCNNON SO g (=4 o 8~O DD O P~ WWWNINNINNINNNNNWNWWNWWN. VIV PNOPNON) =2 b b b D Db b b b b = OO NNNO O NS SN NN OO O (el=lblelelelelelelelelelelele]=] = OO 3W < 0 000210 R O R T e e B o —a — i e d h i i e D wiwwnurnoronoronoNOND . NN N=OOVBNIWVESWN =0 K1 EST g _......._._._..._.oocgoooooooo VIS W) = OO0 T MACRO v04.00 1-JAN=B3 11:06:45 PAGE 61-2 145310 T1411%: SEXIT ;SET TRK/SECT TO READ sCLEAR P=CLK BUFFER COUNT :START A READ START THE CLOCK:]E=1,UP,SINGLE,10US :WAIT ON INTERRUPT :SAVE THE CLOCK (SP)+ aPKB :STOP THE CLOCK :AND RESTORE THE COUNTED VALUE 11412% :NO=-=BRANCH PC,SAVREG #0TADPB,R2 ;ERR=1? : :SAVE RO=-RS :DPB POINTER RPO7 FCTNL TEST MACRO v04.00 1=JAN=-83 11:06:45 PAGE 61-3 035470 136 035472 137 035500 138 035502 035506 035512 035514 035516 139 035522 140 000040 1 SEQ 0141 PC,SVRHXX #CLR,ARPCS2 ;SAVE ALL THE RHXX/RPO7 REGISTERS PC,RESREG :RESTORE RO=RS *MASSBUS CLEAR DTADPB,aRP(S2 SSELECT DRIVE RS ERRANY :FIND OUT WHAT ERROR 002254 sPOSITION ERROR? sNO, 004544 000001 CONTINUE 000004 016076 002244 012324 11412%: T14.7%: PC,COUNT ;COUNT TIME SEARCH DONE=READ DONE 114.1% sNO, CONTINUE (R2),XTIMES 114.8% PC,FORSEC #PR100,RO 000000 C$SPRI PC,SAVREG #DTADPB,R2 :REPEATED 1024 TIMES? sYES, CONCLUDE TEST sRESET TIMER TO & SEC, ;DROP THE PRIORITY 644 oo 000040 002310 :SAVE ALL THE RHXX/RPO7 REGISTERS 114.8%: 1%: EV LOST? G SOFT ERROR 3 002310 000404 104457 000065 007432 (LK SERVICE :SELECT DRIVE sADDRESS OF SAVED REGISTER TABLE sGET CURRENT CYLINDER sGET CURRENT SECTOR sGET CURRENT TRACK :;RESTORE RO-RS 010760 646 CHANGE ::SAVE RO=RS :DPB POINTER sMASSBUS CLEAR N LN U —_ , L10077: o NN NN N N N N NN JSR 034666 552 554 260 N AN LN N N AN NN N NN NN N N WA LN N U VWA WAL NOWNS AN 000 — b b d b d — VIV VYW —t W 150 [elelelelelelelelelelelelelolelelelelelelelelelelelrlelelelelalel-] 149 mmmmmmmmmgmmwmmmmm 141 035524 142 035530 143 035534 144 035536 145 146 035542 147 148 546 o O=O00000 = O PO ==k OWD o NS ONIN=NES SNSONNENES 133 035462 136 035466 135 035470 o 035436 035648 03545 0355456 O0O00O = OOO—— o NS ~ OONINNNN 94 R JLAD RP Tt S T 14: R ANDOM READ TEST 2%: AD - - OO g NN OO MMV NINN ONNWAES IS 85 55 SN =4 B DD O &=~ [elelelelelelelelelelelelelelele] WWWWNWIWN NN WIWNNWNINWNN. VI IIWWAIWAWY ~O —_3> o o 32000 WNY — o~ o —— — —D) Bd p— ?A(RO v04.00 1=JAN=-B83 11:06:45 PAGE 61-4 016370 3%: 016240 4%: XIT14: L10074: .WORD DHS52 JSR 11420 JSR $1420 RG,TYPTIM R4 ,SPTYP n SEQ 0142 ;GO TYPE THE TIMES sPOINTER sSETUP RHXX/RPO7 VECTOR #10,5P CSETST 3 (A SEQ 0143 A2 2222 R R AR AR AR R0 RdRRdRRdRdRRRRRRdddRRdddRRdRRRddRdddd]) THE FE CYLINDERS ARE CYL 630 AND 631, AT THE FIRST TEST CYCLE THE TEST SETS ‘‘DMD** BIT OF THE RPMR R EGISTER FE CYLINDERS. IN ORDER TO ACCESS R EAD HEADER AND DATA COMMANDS THEN SEQUEN ?E ADDRESSING OF THE SECTOR 0 ON THE FIRST FE CYLINDER. AT THE SECOND TEST CYCLE A SEEK COMMAND IS EXECUT €D TO ACCESS THE SECOND FE CYLINDER. NN NN ~N #SCTRWC ,DTADPB+4 NCS,DTADPB+12 R4 DRVNO, #5,DRVTYP(R&) 000094 #4 ,DRVTYP(RG) CSERDF 100000 L10101: 002636 115.2: 002622 1S1T15: L10102: 002631 #SEEK,DTADPB+2 115.1: 014742 002262 CSOCLN #DMD ,DTADPB 1%: 000105 NN NWNWVINW WO WNIWO DRVNO,DTADPB #DBUFF ,DTADPB+6 ;BUFFER AD :tRACK 0. ) #0,0TADPB+10 WW - e i o #10., 1TCNT TEST15: i i i e o i HE SUB=SYSTEM PC,RPINIT PC STOPCK - -OO-.EOO—'O—'O-'OOOOO-'OOO OCOOONON = b b b 0 d = OO o OO 5 =N = NIWNWNININIWNN & 5~ o NO S S NSNNNNNNNNNN o WS WVNO O = O O WIWNWWNWWNIWNWNWWNWK o OB VIWVIE < 5 S NININNNNNYN NNNW e i T15:: i SO O o =000 NN NN S B NN NNV oo ON OO SNONOONOONO i o ok e e o — KR8 ~ o o ::'..'.'.".'.""""""".""'..'.."....'..""Q.'"'."'.."'."."'Q'..' o O oo ooooooror NN NN TEST 15: FE CYLINDER ADDRESSING TEST THIS TEST LOCATES THE FE CYLINDERS; 0*0000000 NN WNINNI N NI NI NN PO NN WWN W W 202 200 VB ESSS N m LSBTTL =2 st b b e et b = W= OO0 NV NN - CORNOVEWN=OORNOVS W~ SE558 H&L RIS 88 JFHGR [elelelelelelelelele]le]-] WWWN NN N AN AN NN NN WNN WA W N NN ocoooooooocooaooooooooooooo VIVILY VWO 7 FCINL_TEST MACRO V04, g? 1=JAN=B3 11:06:45 PAGE 62 LA R 1 s ¢ CYLINDER ADDRESSING TE 002631 J ($B85UB R4 ,DRVCAL ($ESUB DTADPB+16 EXITI5 ($BSUB #RDHD ,DTADPB+2 R4 ,DRVCAL ($ESUB DTADPB+16 EXIT1S NT1,DTADPB+'1 DTADPB+11 sASSUME NO FIX COUNT E ADDRESS INTO DPB RDS 0 HEAD OPTION ;7O FIND OUT FIX HEAD OPTION sBRANCH IF NO FIX HEAD sDOES IT CONTAIN FIX HEAD sBRANCH S SO ;SET MAINTENACE MOPL FLAG AT THE 2ND BYTE ;00 AN EXPLICIT SEEK sSTART A DATA TRANSFER sANY ERROR CONDITION EXISTS ? SEXIT IF SO sREAD THE HEADER AND DATA sSTART A DATA TRANSFER +ANY ERROR SEXIT IF SO sLAST TRACK CHECKED ? sBRANCH [F NOT — v - Y mr~N th RPO7 FCINL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 62-1 15: SEQ 0144 FE CYLINDER ADDRESSING TEST 51 036176 000760 54 036204 005; gg 036200 105037 8026%1 55 056210 56 036%16 036216 57 036220 58 036224 036224 59 036226 60 0362%2 61 036234 6% 036240 63 8 12 036246 036246 02632 112737 000105 10460; 00443 014742 104403 005337 002240 001;66 004737 042737 104401 020226 100000 1%: 0Qu26k22 115.3: L10103: 002620 B8R CLRBE DTADPB+11 ;RESET TO TRACK 0 mMove #SEEK,DTADPB+2 ;D0 AN EXPLICIT SEEK INC DTADPB+12 TRAP JSR ($BSUB R4&,DRVCAL TRAP DEC (SESUB JTCNTY BNE EXIT1IS: JSR BIC £10100: 1ST15 TRAP TEST1S PC,RPINIT #DMD,DTADPB CSETST ;ACCESS 2ND FE CYL sSTART A DATA TRANSFER s DONE ITERATIONS ? :BR IF lNlYlALllE THE SUB=SYSTEM ;CLEAR THE DMD BIT IN THE DPB PA SC P mo LSBTTL €12 SEQ 0145 TEST 16: FE CYLINDER WRITE AND WRITE CHECK TEST :'.".."""""""".""""'.'.""'."""Q"'.""'."".QQ."".."'." ;THIS TEST EXECUTES WRITE=DATA SEQUENTIALLY FROM TRACK FT TO TRACK LT ;ON THE FIRST FE CYLINDER WHICH IS ACCESSIBLE IN MAINTENANCE MODE. :THE PARAMETERS ARE AS FOLLOWS: STHE FULL TRACK TRANSFER IS MADE IN 2 PASSES: : : : : ; 1ST PASS, SECTORS: 2ND PASS. SECTORS: CO. THRU 26. 25. THRU 49. STARTING TRACK ENDING TRACK INCREMENT TRACK STARTING SECTOR = FT = LT = T = FS ::'."'..'.'."""""""""""'...'.'."""""'.'".""""'.".Q'.."' (elelelelelelelelele] [elelalelelelelelelelelele]-] =l=l-Elelelelelelelelelell] OO DWW NO VS WN =000V WN <LOOVRNOWVSWN =00 uwgwuwuuwwmwruwvvmwm—'-aa------oN VB WN = OV &~ N NOWVWSW S W =00V WVIVWVWAWNMEB S 7 FCINL_TEST MACRO v04.00 1=-JAN=83 11:06:45 PAGE 63 CYLINDER WRITE AND WRITE CHECK T:5T 250 250 256 262 270 276 004737 113737 013737 012737 113737 020226 002654 002344 042610 002212 312 320 324 332 012737 105037 052737 004737 002744 002621 100000 012262 336 322 346 36352 36356 36362 36364 005037 105037 01370§ 01370 013704 010223 005204 002246 002630 002224 002626 002624 36370 36372 36400 36404 36404 36406 36406 36410 36416 104402 112737 004437 306 %gggg 36422 36430 36434 36434 36436 36442 36446 013737 T16:: 002620 002624 002626 002631 002260 002632 002620 112737 004437 104403 005737 100406 005337 000151 014742 002622 002246 #REG,DTADPB+14 DTADPB+1 #DMD,DTADPB PC,STOPCK ;SAVED RHXX/RP0O7 REGISTER SCLEAR THE HWCI SSET THE MAINTENANCE MODE FLAG :STOP THE CLOCK BNE WRPAT: L10105: 002622 002622 L10106: 002246 36450 112737 000031 36456 000745 MOV CLRB BIS JSR 116.1 116.2: 000161 014742 ;INITIALIZE THE SUB=SYSTEM :LOAD THE DRIVE ADDRESS :WORD COUNT = HALF TRACK :BUFFER ADDRESS SFIRST TRACK TEST16: CLR CLRB MOV MOV MOV 1%: MOV INC 104403 104402 112737 006437 PC,RPINIT DRVNO,DTADPB TRKWC,DTADPB+4 #DBUFF ,DTADPB+6 FT,DTADPB+11 MOV 002634 001375 000105 014742 JSR MOVE MOV MOV MOVB 002630 NC2,DTADPB+12 DOTWO DTADPB+10 PAT,R2 DTADPB+6,R3 DTADPB+4 R4 R2, (R3)+ R4 :FIRST FE CYLINDER W/0 FIX H :RESET 2 ITERATIONS CONTROL *RESTART AT SECTOR 0 sFILL THE DATA PATTERN sBUFFER ADDRESS sWORD COUNT 1% :BRANCH IF PATTERN IS WRITTEN TO ALL BUFF LOC TRAP MOVB JSR ($BSUB #SEEK,DTADPB+2 R4, DRVCAL :DO A SEEK FIRST SSTART A DATA TRANSFER TRAP CSESUB TRAP MOVB JSR C$BSUB #WRTDAT,DTADPB+2 :WRITE DATA COMMAND R4, DRVCAL :START A"DATA TRANSFER #WCKD,DTADPB+2 R4 ,DRVCAL :CHANGE TO WRITE CHECK DATA COMMAND :START A DATA TRANSFER TRAP ST BMI DEC CSESUB DOTWO 1% DOTWO :DONE HALF TRACK TWICE? SYES, EXIT 2 ITERATIONS LOOP *NO, ‘MARK 2ND ITERATION MOVB JSR MOVB BR #25..DTADPB+10 URPAf :TFR 2ND HALF OF TRACK :LOOP TO TFR 2ND HALF TRACK 79 036604 036634 S NOWWUIWWDN A o O ~ O00000O-— o OO—2==aD— NS O== O=0O MoV MOV INC BNE TRAP WRPATN: mMovB JSR DTADPB+4 R4 R2 J(R3)+ R4 ($8SUB #SEEK,DTADPB+2 R&,DRVCAL TRAP CSESUB 002622 TRAP MOvB #WRTDAT ,DTADPB+?2 002622 mMove #WCKD ,DTADPB+2 T16.4: W N ;BRANCH [F NOT DONE PAT,R R L10107: JSR L10110: SHUWOWO NWNNONW 3$ MOV 3%: 002620 TRAP TST MOovB BR 1%: 002214 JSR BM] DEC 002630 100000 sBUFFER ADLRESS 2%: Mov 002622 DTADPB+6,R3 DOTWO COM Mova ADD MOvB CMP BHI s BiIC TRAP SEQ 0146 sRESET PARAMETERS FOR 1ST LOOP sRESTART AT SE./OR 0 CLR (LRB D12 DTADP%010 1%: 116.3: WHROWOO NSENVNNON ~N o o VI oo E- TV NNV NN NN — = s —» —a oqugo OOOO&OOOO‘O Pttt (33333 o .4 mo & ~ o [=lelelelelelelel-] OO0 NN WNWNN NNNwOor O o OO VWV e D ONOWVISW N=0V® N Swg WN =2 OV~ go NNNSNNN ~ 7 FCINL TEST MACRO v 04.00 1 -J AN-83 1 1:06:45 PAGE 63-1 CYLINDER WRITE AND WRITE C HE (K TE ST ($8SUB R4 ,DRVCAL R& ,DRVCAL CSESUB DOTWO 1% ) 0TwWO ) 25.,DTADPB+10 w RPATN DTADPB+11,R2 IT,R2 R2,DTADPB+11 TR LT, TEST16 #DMD ,DTADPB CSETST sCOMPLEMENT THE PATTERN sWORD COUNT sFILL THE BUFFER WITH COMPLEMENT DATA s SEEK _COMMA:'D sSTART A DATA TRANSFER sWRITE DATA FIRST sSTART A DATA TRANSFER sCHANGE TO WRITE=CHECK sSTART A DATA TRANSFER sDONE HALF TRACK TWICE? sYES, EXIT 2 ITERATIONS LOOP sNO, MARK 2ND ITERATION :TFR 2ND HALF OF TRACK :2ND ITERATION sUPDATE THE TRACK ADDRESS sRESET THE MAINTENANCE FLAG Pi S JSBTTL YOWVES W= YO RP 2{:{"@% TEST MACRO v04.00 1=JAN=83 11:06:45 PAGE 64 ?uls TEST EXECUTES WRITE ¢ WRITE CHECK DATA ON EVERY TRACK OF STARTING SCYLINDER AND ENDING CYLINDER. AFTER EACH WRITE + WRITE CHECK OPERATION, }:iclnAcx ADDRESS 1S UPDATE BY THE AMOUNT SPECIFIED IN THE '‘INCREMENT WOV NOTE: CYLINDER 629. WILL NOT BE USED, IN ORDER TO PRESERVE THE BAD SECTOR FILE DATA, = od e : e STHE FULL TRACK TRANSFER IS HADE xn 2 PASSES: : 1ST PASS, SECTORS: 00. THRU 24. 2ND PASS, SECTORS: VRNV ; 25. TMRU 49. b b P THE PARAMETERS: : STARTING CYLINDER : ENDING CYLINDER ; ; : ENDING TRACK INCREMENT TRACK STARTING SECTOR STARTING TRACK : WN = OOV TEST 17: WRITE TEST 2222222222233322222322222222223222322223 2232222222222 223222223222222220R220232kd]] 2O WNNINU RO PO NUAY NINONUIND b b W W VANE S SE DSBS DWWWWNWKAN N =OVBNIVNBWNL—=OOVRNO S SEQ 0147 036636 036636 036642 036646 004737 105737 001015 020226 002235 036650 036654 036660 036664 036666 036670 036674 036676 036700 013746 012746 012746 010600 104417 002114 004345 000002 036702 036710 036716 113737 013737 012737 002654 002344 042610 036770 0367764 036776 013704 010223 00 002624 036724 036732 036740 036746 036756 026760 036764 037000 037002 037006 037010 037010 112737 113737 013737 012737 005037 013702 013703 75 "."'.t'.".l"""""'.'t'.'"t'.'".""t"."".'t""'...'""'.""'.0 T17:: 000006 002620 002624 002626 1% 000000 002630 002212 002631 002204 002632 002744 002634 002246 002224 002626 JSR 1STB BNE PC,RPINIT WRTALL 18 MOV MOV MOV MOV TRAP ADD CLR TRAP JMORD LSTEST,=(SP) #URTENM, = (SP) #2,-(SP) SP,RO CSPNTF #6,5P RO CSEXIT L10111-, MOVB MOV MOV DRVNO,DTADPB :;DRIVE ADDRESS TRKWC .DTADPB+4 :HALF TRACK #DBUFF ,DTADPB+6 :BUFFER ADDRESS MOV MOV INC DTADPB+4 R4 R2,(R3)+ R& MOVB MOVB MOV MOV CLR MOV MOV 28: 012262 17.1: BNE JSR CLR TRAP SINITIALIZE THE SUB=SYSTEM :DID OPERATOR WANT TO WRITE ON MEDIUM? ‘BR IF YES INOTIFY OPERATOR THAT TEST WAS NOT RUN :CLEAR RO FOR TRAP #0,DTADPB+10 FT.DTADPB+11 FC.DTADPB+12 #REG,DTADPB+14 DOTWO PAT,R2 DTADPB+6,R3 :SECTOR ADDRESS *TRACK ADDRESS :CYLINDER ADDRESS :THE SAVED REGISTER TABLE ADDRESS SRESET 2 lTERAYION CONTROL :PATTERN IN RZ,fILL *BUFFER ADDRESS 28 RS SSTCP THE CLOCK PC,STOPCK ($BSUB *TOTAL NUMBER OF WORD COUNIT .LOAD DATA PATTERN BUFFER *INCREMENT WORD COUNT ‘BRANCH IF NOT DONE $1ST PASS FLAG sRESET PARAMET ERS FOR 1ST LOOP sRESTART AT SECTOR 0 sUPDATE THE TRACK ADDRESS s INCREMENT BY THE SPECIFIED AMOUNT sOVER THE LIMIT ? sBRANCH IF SO sUPDATE THE TRACK ADDRESS CSETST THE STARTING TRACK ————————— . —— SN S S S sRESET sUPDATE THE CYLINDER ADDRESS TO LC :LOOP BAC(K S sYES, EXIT :NO, FLAG 2ND PASS SN TADPB+11 {9DP8012 ;1S IT 2ND PASS? SN SUN SN S 002212 002206 17 S 5%: S :LOOP BACK SO 4%: . S 3%: S ‘GET STARTING SECTOR FOR 2ND WALF OF TRACK S :LOOP TO XFER 2ND HALF OF TRACK S #25.,0TADPB+10 TEST {7 — 2%: SYES, EXIT 2 ITERATIONS LOOP *NO, 'MARK 2ND ITERATION S :DONE HALF TRACK TWICE? 3% DOTWO — CSESUB DOTWO — 00263 0 :DO THE WRITE CHECK COMMAND ;DO THE WRITE CHECK COMMAND R4 ,DRVCAL ;WRITE DAT A COMMAND 0 THE WRITE COMMAND — L10112: IF NO #WCKD,DTADPB+2 #URTDAT ,DTADPB+2 R4 ,DRVCAL J ;AR SDON'T WRITE ON LAST USER CYLINDER — 00262 2 1% DTADPB+12 — 1%: DTADPB+12,#629. ;1S THIS THE LAST USER CYLINDER ? s o 00262 2 TEST17: (:P e 001165 L 104401 002632 SEQ 0148 L WWHWWWON NININNINNON HWHOWO O'NNO'NW WWOOOOWW ONWNNNNN SWWO =O AN NVIOW M2 —_— - O=0O-000 O=O=0O= O==0O0—=—=0 CO=O00 ooy VIV W OO OSSNV purd (=] ~NOOO"WVYWWNSS SONNNOSMNVNONO NN = = OO0 N B WWW oo (WWWWN NN W NN WWNWNWWWNWNWN. — m= [ ] 0 COO0OO0O0O0OOO0OOOO HWWWNIWNWNN. COO W OO0O0O0O0O OO0O0DOO0OO0 NWWNWWWWNL. €0 O VYWYV OOVONOWVSW 00000000 NNNNNNNN ~Nwoo oo W N=OOVERNOVSR NN <OV NOWVNAN= MACRO v04.00 1-JAN=-83 11:06:45 PAGE 64~1 RRRRRRd R RdRddRRdRdRdRdddRRRdRdRlld)) rus TRANSFER SIZE IS ALWAYS EQUAL TO ONE SECTOR. .lF THERE IS A P=CLOCK,THE PROGRAM PERFORMS AN ADDRESS MARK DETECTION TEST: :IT veaxrles THAT DATA CAN BE WRITTEN CORRECTLY WITHIN THE SAME DISC REVOLUTION SASA SECTOR DETECTION. SEARCH FOR THE SECOND LOGICAL SECTOR PRECEDING THE SSELECTED SECTOR TO WRITE, THEN WRITE THE SELECTED SECTOR. TIME THE SEARCH *DONE=WRITE DONE TO BE WITHIN A DISC REVOLUTION. FLAG LOST REVOLUTIONS. INOTE: CYLINDER 629. WILL NOT BE USED, IN ORDER TO PRESERVE THE BAD : SECTOR FILE DATA. : ; ; ; s s STARTING TRACK ENDING TRACK STARTING SECTOR ENDING SECTOR e ; STARTING CYLINDER ENDING CYLINDER e ; ; e *PARAME TERS : PATTERN '."."'t"'tl""t"'""'"'t'Q'.i'.'."t"'l"'Q.!Q""t0"'.'..'..0'."."! 037160 037160 37164 37170 004737 105737 001015 020226 002235 37172 013746 02 06 012746 010600 012746 106417 062706 T18:: JSR 1STB BNE PC,RPINIT WRTALL 1% 002114 MOV LSTEST,=(SP) 000002 MOV MOV 004345 000006 MOV SURTENM,=(SP) TRAP ADD CSPNTF #6,5P SINITIALIZE THE SUB=SYSTEM ‘DID OPERATOR WANT TO WRITE ON MEDIUM? :BR IF YES INOTIFY OPERATOR THAT TEST WAS NOT RUN #2,-(SP) SP,RO ;CLEAR RO FOR TRAP CLR RO LWORD L16113-. MOV MOVB MOV MOV XTIMES, ITCNT DRVNO,DTADPB #-256. ,0TADPB+4 #DBUFF .DTADPB+6 :SET ITERATION COUNT :YES, PROCEED: SET UP THE PAPAMETERS :WORD COUNT SET TO ONE SECTOR :BUFFER ADDRESS 002250 BNE 1S1 28 CLKSTA *LOCP IF NOT DONE tP=CLK PRESENT? 004737 020226 JSR 005000 104432 TRAP 001600 013737 113737 012737 012737 002244 002654 177400 042610 012737 002744 01370§ 002624 013703 002626 013704 002224 010423 oosgoz 001375 005737 003055 18: 28: MOV MOV MOV MOV MOV INC BGT — ——————— — — R0 e 222222222220 s i 222 e a-o O NIT VB WN=00 =200V i SIN THE PACK AREA BONDEC BY THE (STARTING CYLINDER, Enoxnc CYLINDER) : (STARTING TRACK, ENDING TRACK) (STARTING SECTOR, ENDING SECTOR) s W AI I TEST 18: RANDOM WRITE TEST s i A s B — -3 SEQ 0149 iuxs TEST EXECUTES WRITE ¢ WRITE CHECK DATA RANDOMLY: a WS AN OO 00 NNV S N = O 0 00 YO N SN = O O 00 NON WY SN WNIRD = .SBTTL s WNAWWNINIWN NN N NI NN N NOMNONIN) = b W E S ESD NSNS W G 12 RANDOM WRITE T 176 VWAV — wo — m~N R 07 FCTNL TESYEgA(RO v04.00 1-JAN-B3 11:06:45 PAGE 65 CSEXIT #REG,DTADPB*+14 DTADPB#4,R2 DTADPB+6.R3 PAT,R& R4, (R3)+ R2" TST18A PC,RPINIT : THE SAVED RHXX/RP0O7 REGISTER TABLE :WORD COUN ‘BUFFER ADDRESS :PATTERN SFILL THE BUFFER WITH DEFAULT PATTERN S INCREMENT THE WORD COUNT YES, EXEC RAND WRT TST + AD MRK DET TST SINITIALIZE THE SUB=SYSTEM —_ wo - m~N SEQ 0150 RPO7 FCTNL TEST MACRO v04.00 1=-JAN=-B3 11:06:45 PAGE 65-1 : RANDOM WRITE 1% TES T ooargr o1;§ez TEST18: . - SR SRS SRR 33?53Z 002631 000037 8;; §2 8;; 22 85?551 002632 037346 037352 037354 037360 037364 037370 105737 001413 01370% 01372 004737 013723 002234 2%: 002624 002626 011610 011672 3%: 4%: 037400 037402 037402 037402 10077 037374 71 037404 oezrog 104402 000001 5% 118.1: gnge I PC,STOPCK PR ERE SURE YOU DOR'T ORITE TN THE BAD SEC FILE DIAoPao11.031. 553 }?lfio'"f LAST TRACK ? 5?3 ?1ADPB¢12.‘629. 353 }gl;egus LAST USER CYLINDER ? TSTB BEQ MOV MOV JSR MOV RANPAT 5% DTADPB+4 R DTADPB+6,R PC,RAND $RP1,(R3)+ SSELECT RANDOM PATTERN ? :BRANCH IF NOT :WORD COUNT 2°'S COMPLEMENT :BUFFER ADDRESS :GERERATE NEW RANDOM NUMBER sFILL THE BUFFER WITH RANDOM PATTERN BM] 4 :LOOP BACK , IF NOT DONE ADD TRAP #1,R2 ($BSUB 002622 MOVB #WURTDAT ,DTADPB+2 112737 000151 002622 MOVB #WCKD,DTADPB+2 :DO A WRITE CHECK DATA DEC BNE TRAP CSESUB ITCNT TEST18 :DONE ITERATIONS ? sBR [F NO TRAP JWORD CSEXIT L10713-, 764 037424 75 037430 004437 014742 014742 JSR L10114: JSR R4 ,DRVCAL k& ,DRVCAL 037430 76 037432 77 037436 78 037440 037440 - 037442 10¢403 005337 001327 B0 037444 81 037450 82 037452 83 037456 004437 000402 000137 004737 015476 85 86 037470 037474 012746 012746 000300 040574 MOV MOV #PR106,=(SP) #T180FL,=(SP) 012746 104437 062706 000003 MOV TRAP ADD #3,-(SP) CSSVEC #10,5P 037500 0375064 037510 037512 87 88 037516 037522 037526 037532 037536 037540 gg 037544 91 037546 92 037552 9% 037554 9. 037560 95 037564 SFINISH ? 000161 004437 84 037462 ;STOP THE CLOCK 112737 72 037412 73 037416 001165 JSR 002240 EXIT18: 104432 001360 042777 013746 040774 015626 000101 012126 000010 012746 012746 013746 012746 104437 062706 000000 015624 002644 000003 105737 001413 002234 005005 01370% 013703 004737 000010 002624 0026 01161 152430 TIST1RA: JSR BR JMP 1%: JSR BIC MOV R4 ,SRCHCO 1% XIT18 PC,STRTMR 3161.3PK(S :D0 A WRITE DATA :MASS BUS INIT £ RECAL :NO RECAL ERROR, CONTINUE sEXIT ON RECAL ERROR JINIT THE TIMERS :STOP THE P=(CLOCK :SETUP VECTOR IN CASE OF CLOCK OVERTLOW PKV,=(SP) :SETUP RHXX/RP0O7 VECTOR MOV MOV MOV MOV TRAP ADD #PR100,=(SP) #DORT] ,=(SP) RPVEC,=(SP) #3,-(5P) CBSVEC #10,5P RS :SET COUNT=UP FLAG FOR COUNT SUBK 1ST18B: T1STB BEQ MOV MOV JSR RANPAT 2% DTADPB+4,R2 DTADPB+6.R3 PC,RAND sSELECT RANDOM PATTERN ? *BRANCH IF NOT CLR :WORD COUNT 2°'S C(CMPLEMFNT *BUFFER ADDRESS :GERERATE NEW RANDOM NUMBER [ J=) VIS WN 200N --------—----a--ooogooooooooog —P VS AN = OV NV NN =OVON — — Dl o il D i D ) D D D il d D ) D D ) D D D e RANDOM WRITE 037570 013723 037600 10077 o§7574 ow»wwaoomwgwbuwaoomwo W WNWNWNN. N NN ] Y ek ok o o 112 SEQ 0151 TEST oez7o§ 011672 1%: 000001 MOV $RP1, BM] 1% ADD #1,R (R3)+ :FILL THE BUFFER WITH RANDOM PATTERN SFINISH 2 ;LOOP BACK , IF NOT DONE ‘2%2?8; THE TARGET SECTOR BY 2, TO COMPUTE THE VALUE OF THE 2ND LOGICAL 037602 004437 017544 037606 037614 037616 037624 037626 123727 001004 053727 001766 113701 002631 000037 002632 001165 037640 037642 037646 001006 162701 002002 037632 037650 032777 062701 037654 000411 037656 037660 037662 037666 037670 037674 005701 001405 162701 001002 062701 062701 002630 000004 143032 2%: JSR R4 ,RANADR :gEQEASSQQDVSSRSO£V%'U;?gf ?EC' € BAD SEC FILE 38: CMPB BNE CMP BEQ MOVE TADPB+11,#31. $ DTADPB+12,#629. 2% DTADPB+10,R1 ‘BR IF NO :1S THIS THE LAST USER CYLINDER ? ‘BR IF YES SGET TARGET SECTOR ADDRESS TO WRITE BNE SUB BGE 5$ #2.R1 48 ‘BR IF YES :BACKUP THE SECTOR ADDRESS FOR THE SEARCH :BR IF < SECTOR 0 7% CEXIT 000002 000062 037700 037700 037700 037702 037710 037712 037720 ADD B8R 5%: ST BE? 000031 SUB BNE 000031 000030 6%: 7%: 118.2: 002632 . 00263% 142742 002624 002626 000001 037724 037732 1.4472 013777 110146 113766 012677 013777 013777 037744 012777 000006 037740 012703 002472 BIT 4%: e o — ) i S il i i D i e s D s s i i i e - wo - mN~N RPO7 FCTNL TEST MACRO V04.00 1-JAN=83 11:06:45 PAGE 65-2 ADD ADD :PREPARE #I1LV,aRPDS #50.,R1 R1 6% #25.,R1 6% #25..R1 #24. .R1 3 ' :1S THIS THE LAST TRACK ? H :1S INTERLEAVED SECTOR ENABLED ? *ADJUST FOR THE ADDRESS BEFORE SECTOR 0 ;1S IT SECTOR ADDR 0 ? ‘BR IF YES SIS IT SECTOR ADDR 25 ? :BR IF NO :ADJUST FOR THE ADDRESS BEFORE SECTOR 0 *REDUCE THE TARGET SECTOR BY 2 TO SEARCH 142730 142724 TRAP MOV MOVB MOVB MOV MOV MOV ($BSUB DTADPB+12,3RPDC R1,=(3P) DTADPB+11,1(SP) (SP)+ ,aRPDA DTADPB+4,aRPWC DTADPB+6.aRPBA ;CYL ‘MERGE SECTOR ;AND TRK :LOAD TRK/SEC :WRITE 1 SECTOR :SET DATA BUFFER ADR 152150 MOV #6,3PKB SALLOW > 6 REVOLUTIONS PER SEARCH: 143004 MOV OI1LZO.R3 sTIMING LIMITS FOR COUNT SUBR :3 FOR IMPLIED MAX SEEK (46 MSEC OR ABOUT 3 REVOLUTIONS) :3 FOR WORST CASE SEARCH(SECT CMP ERR OR HDR CRC ERR) 037752 037760 037766 037770 037774 040002 012777 012777 000001 017746 042777 012677 040014 001534 000105 000131 152140 142672 152130 000101 152114 152116 040006 032777 040000 142456 040016 004737 010646 004737 012777 013777 024472 000040 002620 aPKC,=(SP) #101.3PK(S (SP)+,aPKB ;START P=CLOCK:1E=1,COUNT DOWN,LINE FREQ :START A SEARCH :WAIT ON INTERRUPT *SAVE THE CLOCK :STOP THE CLOCK SAND RESTORE THE COUNTED VALUE BEQ T1811% ;NO=--BRANCH BIT JSR MOV 040022 012702 0026;0 060026 040032 040040 MOV MOV WAIT MOV BIC MOV 142630 142622 JSR MOV MOV #105,aPKCS #SEARCH,3RPCST1 #B81114,3RPDS PC,SAVREG #0TADPS,R2 PC, SVRHXX #CLR,aRPCS2 DTADPB,aRP(S2 *ERROR? ::SAVE RO=RS :DPB POINTER ‘SAVE ALL THE RHXX/RP0O7 REGISTERS *MASSBUS CLEAR :SELECT DRIVE L CZRJLAO RPO7 FCTNL TEST MACRO v04.0C 1-JAN=B3 11:06:45 PAGE 65-3 TEST J 12 SEQ 0152 18: RANDOM WRITE TEST 040046 147 040052 148 040056 149 940060 040060 004737 004537 002620 104403 010700 L10115: 150 040062 032737 000210 152 040072 01%766 004422 151 040070 001022 040076 012746 040102 040104 040106 010600 104417 oesros 040116 040122 040124 040125 012746 010600 104417 062706 153 040112 }gg 040132 156 040136 012746 000137 012737 JSR 012664 002254 MOV MOV TRAP ADD 000004 040700 JMP 002340 8$: 151750 9$: 159 sFIND OUT WHAT ERROR csesga #SEAERR,=(SP) MOV 000001 ; ;RESTORE RO=RS MGV MOV TRAP ADD 004525 RS ,ERRANY #BIT3'BIT7,SVSTAT MOV 000004 000020 TRAP PC,RESREG BIT BNE 000001 }gg 040144 012777 000006 JSR DTADPB MOV MOV 8% RETRY ALLOWED ? :BRANCH 1S SO #,-(sP} SP,RO CSPNTF 84, 5P #ABOTST,=(SP) #1,-(5P) SP,RO CSPNTF #4,SP T18END #16. WCEFLG #6,39PKB :RETRY 16 TIMES SALLOW > 6 REVOLUTIONS PER SEARCH: :3 FOR IMPLIED MAX SEEK (46 MSEC > ABOUT 3 REVOLUTIONS) :3 FOR WORST CASE SEARCH (SECT CMP .7R OR HDR CRC ERR) }g? 162 040152 163 040160 164 040166 165 040170 166 040174 167 060202 168 040206 169 040214 170 040216 012777 012777 000001 017746 042777 012677 032777 0071434 012777 000105 000131 151740 142472 151730 000101 151714 151716 040000 142456 000040 142444 171 060224 013777 002620 172 060232 173 040236 174 040240 060244 040250 040252 040254 175 040260 040264 005337 001342 012746 012746 010600 104417 062706 012746 012746 040272 040274 104417 ©52706 040270 010600 176 040300 177 040304 040304 178 060306 179 040314 180 040320 181 040326 182 040334 183 040336 184 040342 000137 002340 000001 000004 004525 000001 040700 017746 151562 000121 042777 000101 BIT #B1114,3RPDS MOV BIC MOV aPKC,=(SP) #101.3PKCS (SP)+,aPkB BEQ MOV T1811% #CLR,ARPCS2 118.3: WCEFLG 9% #SEABAD,-(SP) #1,-(SP) SP,RO CSPNTF #4,SP #ABOTST,=(SP) #1,-(SP) TRAP ADD CSPNTF #4,SP 142352 1423%2 151564 151550 JMP TRAP T1811%: MOV CLR MOV MOV WAIT MOV BIC :START P=CLOCK:IE,COUNT DOWN,LINE FREQ ;START A SEARCH ‘WAIT ON INTERRUPT SSAVE THE CLOCK :STOP THE CLOCK SAND RESTORE THE COUNTED VALUE *ERROR? sEXIT IF NONE *MASSBUS CLEAR DTADPB,aRPCS2 ;DRIVE ADDRESS DEC BNE MOY MOV MOV TRAP ADD MOV MOV MOV 000004 002630 151602 000161 #105,aPKCS #SEARCH,aRPCST1 MOV 004461 104402 013777 005077 012777 012777 000001 142436 MOV MOV WAIT ‘OVER RETRY LIMIT ? ;BRANCH IF NOT SP,RO T18END ;OTHERWISE EXIT ($BSUB DTADPB+10,3RPDA ;SET TRK/SECT TO WRITE aPkB :CLEAR P=CLK BUFFER COUNT #WRTDAT ,aRPCST ;START A WRITE #121,aPK(S aPK(,=(SP) #1071 .aPK(S *START THE CLOCK:1E=1,UP,SINGLE,10US ‘WAIT ON INTERRUPT SSAVE THE CLOCK SSTOP THE CLOCK SEQ 0153 C 4 R J L?O RPO7 FCTNL TEST MACRO v04.00 1-JAN=B3 11:06:45 PAGE 65-4 1tS1 8: RANDOM WRITE TEST 185 Q0350 186 040356 187 Qu0362 188 040364 060370 040376 040400 040406 040414 189 040420 190 060424 191 040426 040426 012677 038777 001437 004737 012702 004737 012777 013777 004737 004537 002620 104403 s1see 040000 010646 002629 024472 000040 002620 010700 142262 142054 L10116: 032737 001411 000040 040444 040450 040452 040454 195 040460 012746 010600 104417 062706 000507 000001 012746 MOV JSR MoV MOV JSR 012664 192 040430 193 040436 194 040440 MoV BIT BEO JSR 142310 002254 JSR DTADPB MOV MOV MOV TRAP ADD BR 000004 197 040462 004737 016076 118128: JSR 199 040466 013746 002646 MOV 040506 040510 200 040514 201 040522 202 040526 203 040530 040530 204 040532 205 040540 104437 062706 112737 104404 004437 207 040542 040546 040552 040556 040562 040564 208 040570 013746 012746 013746 012746 104437 062706 000137 002646 015624 002644 000003 210 040574 040472 040476 040502 012746 013746 012746 022674 002644 000003 ;AND RESTOKE T1812% :NO==BRAN(CH #0TADPB,R2 :DPB POINTER sSAVE ALL THE RHXX/RP0O7 REGISTERS PC,SAVREG PC,SVRHXX #CLR,aRP(S2 DTADPB,aRP(S2 PC,RESREG RS,ERRANY TRAP RIT BEQ 004544 (SP)+,aPKB oagr1l.aapos MOV MOV MOV SVSTAT RR,=(SP) ,~(SP) PC,COUNT RPVE(C+2,=-(SP) THE COUNTED VALUE ::SAVE RO=RS sMASSBUS CLEAR :SELECT DRIVE 0 ssRE :FIND OUT WHAT ERROR ;POSITION ERROR? sNO, CONTINUE ;COUNT TIME SEARCH DONE-WRITE DONE :SETUP RHXX/RPQ7 VECTOR #ISRV,=(SP) RPVEC,=(SP) #3,-(SP) TRAP ADD MOVB TRAP JSR #UCKD,DTADPB+2 ;D0 A WRITE CHECK DATA (MD R& ,DRVCAL ;DO RECALIBRATE TRAP (MP BGE CSESEG TlH.gPOIA.XIIHES sYES, T18END RPVEC+2,=(SP) 060010 037546 MoV MOV MOV MOV TRAP ADD JMP 004737 012324 T180FL: JSR PC,FORSEC 212 040600 012700 000000 MoV #PR100,RO 213 040606 040612 040616 040622 040630 040636 04042 004737 012702 004737 012777 013777 016102 016237 010646 002620 024472 000040 002620 000014 000036 JSR MoV JSR MOV MOV MOV MOV PC,SAVREG 040604 104405 023737 002057 104441 000010 000151 002622 014742 002316 100008: 002244 TRAP 142040 142032 002266 CSSVEC #10,SP ($BSEG sREPEATED 1024 TIMES? CONCLUDE TEST :SETUP RHXX/RPQO7 VECTOR #DORTI,=(SP) RPVEC,=(SP) #3,-(5P) CSSVEC #10,5P 1s1i8s C$SPRI #0TADPB,R2 PC, SVRHXX #CLR,aRPCS?2 DTADPB,aRP(S?2 14(R1) .R2 36(R2) ,CYL.RD s CONTINUE sRESET TIMER TG & SEC, CHANGT (LK SERVICE AD :DROP THE PRIORITY ::SAVE RC=RS ;DPB POINTER :SAVE ALL THE RHXX/RPQ7 REGISTERS sMASSBUS CLEAR sSELECT DRIVE sADDRESS OF SAVED REGISTER TABLE sGET CURRENT CYLINDER L1 040764 004437 016370 2%: 016240 002646 3%: XIT18: 000003 N=2OON— rororuNIrOUN VWA S NN 000010 L10113: R4G,TYPTIM MOV MOV MOV MOV TRAP AbLD TRAP e . 0 0 oo (2t Tal M~ Laal) 00 SO XM 1D » O 0m>om DO T BOWPO A~~~ VO JSR 11420 JSR $1420 ;GO TYPE THE TIME> sPOINTER R4 ,SPTYP + .EVEN 104401 sCLEAR THE HASSBUS DRIVE ;& SELECT SINITIALIZE THE CLOCK T $ ERSOF 3 M 52 H 52 TRAP .WORD .WORD «WORD ; sRESTORE RO=-RS $ CSETST ww i VO~ 010532 H COMWNECY 1%: 2 M ORI D - AN Ve T OVs <N s |MOMTMM VMA<O VYW » LN 010532 .WORD .WORD .WORD BR :GET CURRENT TRACK ;ANY SEARCH=WRITE TIMED > 1 REVOLUTION? :NO, SKIP sONLY ONE LOST REV? :YES, FLAG SOFT ERROR 1 UP+6 $ 21 l M.UP+6, $ $ ERHRD e U TRAP T.0LK P) ~ BEQ ,ORP(S2 PB,aRP(S?2 N~ 000001 ;GET CURRENT SECTOR oo TSTI8C: OMNO DTN TST BEQ CMP JSR B VOR 002310 Mov MOV N =4 002310 T18END: = 14 62 161754 MU 000040 002620 011676 +WORD +WORD -WORD s TRAP (alelm] JSR E MovB mMove Vi 040650 040656 0460664 214 040670 72 SEQ 0154 N : RANDOM OCOO0O—=O——= 1 13 « RPO? FCIN C IR) L sSETUP RHXX/RP0O7 VECTOR (lRJLAg RPO7 FCTNL TEST MACRO v04.00 1-JAN=-83 11:06:45 PAGE 66 TEST 18: RANDOM WRITE 1 3 TEST M2 SEQ 0155 PARAMETER CODING MACRO V04.00 1-JAN=-83 11:06:45 PAGE 67 TEST 18: RANDOM WRITE TEST SEQ 0156 ‘i .TITLE PARAMETER CODING 13 .SBTTL L H &5 L6 &7 48 49 g? : : : : : : Sg 041024 000022 041026 56 55 041026 041030 041032 HARDWARE PARAMETER CODING SECTION THE HARDWARE PARAMETER CODING SECTION CONTAINS MACROS THAT ARE USED BY THE SUPERVISOR TO BUILD P-TABLES. THE MACROS ARE NOT EXECUTED AS MACHINE INSTRUCTIONS BUT ARE INTERPRETED BY THE SUPERVISOR AS DATA STRUCTURES. THE MACROS ALLOW THE SUPERVISOR TO ESTABLISH COMMUNICATIONS VITH THE OPERATOR. LSHARD :: «WORD L10117=L$HARD/?2 061036 000031 041072 160000 177777 .WORD +WORD +WORD LWORD TSCODE MESG1 TSLOLIM TSHILIM 061040 041042 041044 001031 041105 000000 000377 .WORD LWORD +WORD LWORD TSCODE MESG2 TSLOLIM TSHILIM 002032 041121 000340 000000 .WORD .WORD LWORD +WORD TSCODE MESG3 340 TSLOLIM 61 041060 0641062 041064 041066 041070 62 63 041072 003032 041132 000007 000000 000007 .WORD .WORD JWORD +WORD LWORD +EVEN T$CODE MESG4 7 TSLOLIM TSHILIM 67 041072 68 0641105 69 041121 ;9 061132 122 126 102 104 .ASCIZ .ASCIZ LASCIZ .ASCIZ /RPCS1 ADRS/ /VECTOR ADRS/ /BR LEVEL/ /DRIVE #/ 56 57 041036 58 59 041046 041050 041052 041054 60 72 76 86 041056 000007 «WORD L10117: 120 105 122 122 103 103 040 111 MESG1: MESG2: MESG3: MESG4L: +EVEN TSHILIM ;PRINT °"RP(S1 ADRS?* ;PRINT "VECTOR ADRS?' ;PRINT 'BR LEVEL?' ;PRINT 'DRIVE #?° mmmmmmmmm THAT ARE USED BY THE SUPERVISOR TO BUILD P=TABLES. : INTERPRETED BY THE SUPERVISOR AS DATA STRUCTURES. THE ; MACROS ARE NOT EXECUTED AS MACHINE INSTRUCTIONS BUT_ARE _THE —t ; MACROS ALLOW THE SUPERVISOR TO ESTABLISH COMMUNICATIONS WITH THE OPERATOR. R SN 000116 015130 19 TSCODE .WORD PARMSG 056044 .WORD TSCODE 000052 041430 001777 000000 001164 .WORD .WORD TSCODE FCMSG 001052 041446 001777 000001 001165 .WORD TSCODE .WORD 1777 TSLOLIM TSHILIM LCMSG 002052 .WORD T$CODE 000001 001164 .WORD WORD LWORD 1777 TSLOLIM TSHILIM 003052 T$CODE FTMSG 000036 .WORD .WORD .WORD .WORD WORL 004052 .WORD T$CODE 000037 .WORD .WORD WORD s W OO .WORD WORD WORD 1 oo NN = b OSSN P .WORD oo WIWNWNIND SO &~ 005052 oo OO0 (=]=] S PO OF .WORD L10120-L$SOFT/2 .WORD — e (=]=]=) P ¥ LS$SOFT:: 041400 000001 041244 041246 29 30 041250 LWORD WORD .WORD .WORD 1777 TSLOLIM TSHILIM 37 TSLOLIM TSHILIM LTMSG .WORD -WORD !SCODE {IH 000036 .WORD .WORD TILOLIM TSHiLiM 006052 .WORD T$CODE .WORD ;PRINT °"CHANGE DRIVE PARAMETERS?® ;GO TO 18 IF NO sPRINT 'STARTING cvL?* sPRINT "ENDING cve?* sPRINT *INCREMENT cvL?* sPRINT *STARTING TRK?* ;PRINT "ENDING TRK?® sPRINT *INCREMENT TRK?® sPRINT *STARTING ICMSG +WORD o P o OO0 0O0 SR P ok f N F : "TmmAaMmMmMMmMMmMmMMmMmmMmMmmMmmmmmmmm : THE SOFTWARE PARAMETER CODING SECTION CONTAINS MACROS 20 041166 041170 061172 041174 0461176 21 22 041200 oo oo~ SOFTWARE PARAMETER CODING SECTION * * N=LOYONOWVWN .SBTTL 37 TSLOLIM TSHILIM SEC?* " TMTM 1 SEQ 0157 [l) B 13 PARAFETER CODING MACRO V04,00 1-JAN-83 11:06:45 PAGE 68 SOFf TWARE PARAMETER CCDING SECTION .WORD F;HSG .WORD TSCODE WORD WORD LWORE -WORD -WORD WORD WORD .WORD +WORD 1%: LWORD +WORD +WORD 7 TSLOLIM TSHILIM TSLOLIM TSHILIM TSCODE T$CODE WKW N VOO 014120 041675 000400 .WORD T$CODE WINWWWWN WIWNWWWNIND CSNONOONSS 014130 062030 000001 gb 7 041362 58 041364 041366 59 041370 60 041372 0461374 WRSAFM .WORD +WORD TSCODE ?PATHG .WORD TSCODE .WORD 400 RDHDMG 011130 042157 000400 .WORD .WORD .WORD T$CODE TIMMSG 400 013130 .WORD .WORD .WORD T$CODE STOMSG 400 .WORD .WORD .WORD T$CODE STLTM 1 .WORD .WORD .WORD TSCCDE STALMG 400 .WORD .WORD .WORD TSCODE T$CODE STALRM OwWw =W 55 041354 041356 041360 .WORD .WORD .WORD oW ONO 5 041346 041350 . 041352 PATTERN?'® sPRINT 'DO YOU WANT TO WRITE DATA ANYWHERE ON MEDIA? .WORD 011130 042107 000001 'DATA 177777 TSLOLIM TSHIL!M 007044 2%: sPRINT PATMSG 40 0461314 41 SEC?* s;HSG 014130 041626 000400 39 sPRINT 'ENDING LWORD 1 ;GO TO 2% IF NO sPRINT * *! CUSTOMER DATA WILL BE OVERWRITTEN ! CONTINUE?" sPRINT '¥Egt§eNDOH DATA PATTERNS FOR RANDOM WRITE - sPRINT 'PERFORM READ HEADER & DATA DURING SEEKS?' sPRINT 'TYPL sPRINT *INHIBIT SOF TWARE TIMEOUTS?® TIME REPORTS?® sPRINT *TIMING TESTS, STALL BETWEEN SEEKS: RANDOM IN sPRINT *STALL AFTER EVERY DRIVE FUNCTION IN NON-TIM] ;G0 10 3% IF NO N| 041554 SEQ 0158 - TV TR A MR e e wa 041%52 041254 56 04 041 60 13 TM| PARAMETER CODING MACRO v04.0 0 1 =JAN=83 11:06:45 PAGE 68-1 SOF TWARE PARAMETER CODING SECT C I ON 80 041502 81 0415%0 82 041536 83 0415564 4 061572 85 041610 101 101 106 103 87 041626 88 041675 123 105 11 123 105 104 104 007 124 116 116 124 116 101 117 on 101 106 103 101 104 1264 040 041 90 042017 92 042030 93 042107 103 125 120 117 123 105 116 89 0‘17‘6 94 042157 95 042201 96 042233 97 042327 gg 042414 007 124 011 11 13 116 125 123 124 123 1M1 124 oss 105 122 120 PARMSG: FCMSG: LCMSG: ICMSG: FTMSG: LTMSG: 1TMSG: FSMSG: LSMSG: PATMSG: WRITMG: WRSAFM: RPATMG: RDHDMG: 110 TIMMSG: STOMSG: 105 STALRM: 115 101 .ASCIZ LASCIZ LASCIZ LASCIZ L.ASCIZ .ASCIZ LASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCII QASCII /CHANGE DRIVE PARAMETERS/ /STARTING CYL/ . /ENDING cyL/ /INCREMENT CYL/ /STARTING TRK/ /ENDING TRK/ /INCREMENT TRK/ /STARTING SEC/ /ENDING SEC/ /DATA PATTERN/ /DO YOU WANT TO WRITE ANYWHERE ON MEDIA/ <BELL>/ ! CUSTOMER DATA WILL BE OVEQURITTEN Y/<CR<LF> <BELL)/ B e L R" .ASCIZ /CONTINUE/ .ASCIZ /TYPE TIME REPORTS/ .ASCIZ .ASCIZ .ASCIZ STLTIM: .ASCIZ STALMG: .ASCIZ _ASCIZ T > ) W e WD e e I(cR)(L') /USE RANDOM DATA PATTERNS FOR RANDOM WRITE TEST/ /PERFORM READ HEADER & DATA DURING SEEKS/ /INHIBIT SOFTWARE TIMEOUTS/ /TIMING TESTS, STALL BETWEEN SEEKS: RANDOM INSTEAD OF 2 MSEC/ /STALL AFTER EVERY DRIVE FUNCTION IN NON-TIMING TESTS/ /USE RANDOM STALL TIMES/ .EVEN 1}} 0462444 SPAT(H::.BLKW 50. ;PROGRAM PAT(H AFEA (50. WORDS) 113 042610 DBUFF:: 256.+25. sDATA BUFFER FOR HALF A TRACK }}g 073610 122 074610 074612 074614 074630 000006 .BLKW .BLKW .EVEN LSLAST:: 256. .WORD TSFREE .WORD T$SIZE ONE SECTOR EXTRA FOR MID=-TRANSFER SEEK TEST PSP ———— ) }?8 [Vl alrulalala) 110 124 116 116 -_— 10% 12 105 m .EVEN v _ VN 76 041400 77 0614%0 78 041446 79 041464 L10120: 1 T 1 72 041400 MORD T 3%: N 000001 -~ — 041376 61 041400 62 SEQ 0159 — D13 PARAMETER CODING MACRO v04.00 1~ AN"S 11:06:45 PAGE 68-2 SOF TWARE PARAMETER CODING SECTION E 13 PARAMETER CODING MACRO V04,00 1-JAN=-B3 11:06:45 PAGE 69 SOF TWARE PARAMETER CODING SECTION 14 16 074614 074616 074620 17 074620 18 07622 19 074624 20 074626 21 074630 23 000000 000004 176700 000254 000240 000000 000001 L10121: L10123: .END .WORD 0 .WORD WORD 'WORD 176700 254 240 "WORD -WORD L10123-./2-1 SEQ 0160 PARAMETER CODING MACRO V04.00 1-JAN=-83 11:06:45 PAGE 69-1 SYMBOL TABLE F13 SEQ 0161 " G D O MWD WWOLW180 =AaATENNOWINm g T JE= J2EOWr=i==-—0 & i ~- L "na":Bn=:W:=:=: = et 9- " SYMBOL TABLE VLOVVVLVVLLVVLVLVLVVLLVLLVLVLVLVLLVLY eOLCoOT3P—3OoVIESQUMW0RNOL—OM]5r3eQ“QV2NAoOLDTo0wRe[‘VaWOrOIoLVoXFVUOGN$NC—NRU5POVIg0WOr<LROa‘=9oNOW—RV——NABC05ITIP$oroOV=0x.OSDLTR0NaoN‘OASIOVrTORo)XT-3ALmT2SeVOHROo)NFOI0L8rSOA0NCVofoOI0eLNORS‘'VoX—w 2rT~OAL810O$—NRVOeOaeNoD)1OL3A>roV=U0u)-RLiMNOOD0aVOO AO0o“ONook3SLCoI0)VOT1RSLO0MOU0coAI$TBANVRNVLMu2==OOS“LAVoOdv0TlLeVONwRNCIVTo-Rao>OL2SSAOJ—O0>oLNeURRLN0OoNdCOL)O>ALa‘WSVlV(RDa0ACoO=E=WeLY)LN0N]OIoV>O)5eOR1NtCMVILa0eeL0OMWIoAMO=oO1eVNLRTA0LeO0VBe£IPdYOtOL3Bo0DVR2(‘0NI0tGLAOe(M0VFN5dORt‘~oDOOV0WOeABOtTNODOoi;0VDNt1RLQ0OoDNVY+TE~0NO—WNJDo2~=AOTYOFIoTINDX)TTIL1TOUOFOOoDTNO0Oo»(wH—TWONI)vrECNVVoe6TNWTGOO7N0oODw-LOV1EDOoTGE0N2MoWOO-DD0FhS6-V0XoIlGE~=A2Oo0DlDOAJUNOse0ALCSW-lMO0<oNGeJ—CO5DoNTlOd'NIOoe0daEMO0lGOYoCOd1oVlV0‘oCY0VOeO0ONlD0G=2e0llOolEAoIONeWN0NX0l0T>xOG5OaT0DXlo“P0Aox—VMeO0Ol0AJNeTCGNer0OMlVTEo=2DoedOOMe“S~Nr—lA0xEG—OeFO‘l-oeOEoQVOeM2N”0lI>AO0AGOeONl“oIQo—OeOUOWTl-R‘A0“YN=—Wr—] LgO—<VLUNUSsY>E.o"MD0wALLsV1LNMo0ILs—oO.NqW0O-lLoO0VML1SNOLo0LY11(1YUL2l.o0LM5no1v1‘L9oLO151o0O1L1Lo’N5oN1L1Lo4F15L1oU1L1LMo265o=17L1Loo21O05L1o1OL61Lo’2No5Lo1UL6‘1Mo2o5L01oL61o3=07‘1LoLO610o3N1LLo7O12.No3l1L3Lo7.1‘Io3M1.LL57ol1.6qo4’LlL70‘O.110ol4JLqL=I=‘1lL042.LD=1YlLY31.VL0L1<‘l=L.a51.L0l6Lq17lL0-.Ll1.H0l2H1.o’Hl0q)H1>l‘"0qwl5H1o.6H0-l2q7"1lH02.arHl1.A-nH3!0la sVe©O"OoVCo)s"2xwaEOkOs"=Hvs"(Ds"Ois"OEHVx-s"ixF=EXA"VW3DCNNIVO=2LEON0VMUOODENWVZOOZvONVOWWvSNE_'O<IOSC>VeFOV'LVx"OWILXT=UNVY.—-VOE0VPOUOVsvO_MVJ”OVLoOVSxELL’OOVLLsbv£LOVsOLLVsVLLLsOVVLAPwW4LLVALVLAPEVLLCWVV2LLGPXVVL0NXLVKPVeLILOKrXVVLKPWAYrKONeLONPWDNrOAEH-OPNNE=ARZU0RPEVE PARAMETER CODING MACRO v04.00 1=JAN-83 11:06 :45 PA G 13 SEQ 0162 OXV'ANO2dN0NOD1XOVNSOWT<NMNIX33OVNI35OION7OO2INVN~0NVMAN‘OVONEV3OWIO-2ONNOaIIU~7VwNN"oMOOONa3OINMI2VTDOTNO3NeMU0IOOrNI—3OTMNOE2MOO0eSNOW=M6EOIT NNV“~O=N0VZE3OO5UON=ENV‘FO=6-DVNI"ONOMElVI2NIfeOZ=2iNEMVNlIeV0fFOM—=iNIMIO4ZNCWJT5LONIW2ZTL27UINV>NIOLTTV2ILOA3NMEVOWN1NVMATI5eOTOEN7YTNMV'0I*M—»1=OWO*IT3OEONJNIOO1TV0OO6=NI0NN00O0MN7NEOX0NNTM=VCEM0INICFAN6ON=LIO=M—CU00=O M QAXOBQAFOAOAeNeAgAeyNSyOggABgABSS5bt=Lb)Lb)LLb)LNLVANAV)IELA2LL0LALA0WOJeIZ42Z0VSDTI2TSOTWTeQeWeAeeeDAeeoeeeoeoeeeeoBBB 0IelV9Ot5l4Nel<8eOl<8el<8NelMMYeNVleO<l3e<lO8eVVlYeYMMloelOeNleVlOeMlVeAlOoVeAMlVeAlOVAelIVaAM0lIYeToGlNOenVlN)aUVlAWMeVlDeIlVeIVlYeVVlYeVAlIeVYlIaIMVlIoeIVlIVeAlIVe)lIVeAloVeAlIVeAlIMVeAIloV)eVl)eVl)IeVl)eoVl)eVl)eMVlIeVleIlVeVYleNlVeYlOeUIlNOeMYlNeYloOelO=elO—et0—=e o woow O @2 [C) -@ e M MV S==O=O0ONONO ~ONO O =O NMRN O N=O NOrr¢vv¢o=o=o=)v =o=o=o=o= "nun o [ ( A “ a e @ A P _ = ] A w R » d l L ) v A N R l‘lll‘NRDWRFrREVrRIdN<QWd‘DATEOVNNWYDH-YIOVoOL TWOM2ANIMIIIMINMMNIVNNN O9AEJ3g€WXO-Q2N0uV>+0rVat20raF =TO—S0VMN—0~N~OO0M—N0 (PBoesoVWse8®s¢I=OeV= OTWOVVVINOIVNO=OVOOVOVONINIMIIVNOIOIOININOO axXx [ PARAMETER CODING MACRO vO0& .00 1=JAN=B3 11:06:45 PAGE 69-3 H13 SYMBOL TABLE SEQ 0163 113 ERRORS D M OMONI—OT MW MO I — - (] SEQ 0164 =2DDHD>IZIIIZIII3Z ( 119 PAGES) 30464 WORDS DYNAMIC MEMORY AVAILABLE FOR 70 PAGES CZRJLA.BIC,CZRJLA/C [20,015VC34R.MLB,[20,12]CZRJILA.DOC,CZRILA.HIS,CZRJLA VIRTUAL MEMORY USED: Quwr DT JC<uX> a-wue—Nd 123,\.95612qlclz122 PARAMETER CODING MACRO V04.00 1-JAN=-83 11:06:45 PAGE 69-4 SYMBOL TABLE J 13 PARAMETER CODING MACRO v04.00 1-JAN=-B3 11:06:45 PAGE S-1 SEQ 0165 CROSS REFERENCE TABLE (CREF v04.00 ) 50-34 51-31 65-67 65-96 59-37 Mm O~ O O T n [} ONoD~OWY 0 & v Ry R '3""',""“ — -~ o5- ON NM=ONY Mo o S0 0 b - 3 - — aoWNn0 o~ [WoVY'«) v[l§ 4 O o 59-33 32-59 - ol 04k =110# 32-34 68-86 N< 0v MM 10 3-13 3=15¢ 3-18 9-31 9-31 2-11 L2-93% 54-61 34-148¢ 36-204+ 26-6# 68-36 v B9 [=] K 13 PARAHETE? oD 2 ING MACRO V04.00 1-JAN=83 11:06:45 PAGE S-2 SEQ 0166 CROSS REFERENCE TABLE (CREF v04.00 ) * a ~ o w — o N~ L 13 ODING MACRO V04.00 1-JAN=-83 11:06:45 PAGE S-3 ENCE TABLE (CREF v04.00 ) CSSVEC 7=2788 7=278# 55-109 34-20 ga-aa 6-27 65-230 SEQ 0167 36=45 24=94 56=29 52-43 53=16 i 4 ( l L " L [ ] o L — l ~ o * e L N S ) t — a L l O M I v e V ] O N — ~ N O o F [ L " a L l a " l a " a l ¥ V l ] ¥ £ R a s L l a e 4 " a l V ] M | I R X V w O m N O N V O N , D TO2WVINoV0 0aNMv—ONOM—O 3 ke 5 7 O o NOMe—M =" O oM g0 N o" 4"Lal1x —] TOO(NoVLYawaolOa0nl~¥NL]oV—sT0wAaaOOlN"llVroaa’elal]Vle"oU¥]aAaa~lPRl7laa"vMM-lla.loLa"Mlya)lL Cw—mQO*rv-w2 52-58 @ ws 28-35 62-33 Ed = = - " (=] >07O8ONvBN301I=OM146ROT51NATISI163WOMVI580NCONM‘9N9DS085WOTN1=223=MV&oMOR—0tNVmeOTG[NN2DTD-Ms3Nu2B05n~R>MFNM4)OVMN[a=oN¥U0>1]EO3N-2Dw5S2>MO3050MAM0JVNRW—OOe-sNAUPOM—A00ROXINWEN>MA=RO5MSENVeVOA9=NV~4M(]NEe=[37IMVT2ENETOWM06VrSORYe=A—eWSnA0*Vo@N0Nh®O5ONIOERgNO8mT3<«N3M*ENVFM6O-1aN3N000ABOIWXO4oTND-V1CNUmInoNR€OAl<M«AooOHMlDNOOVObOJNW).wOOMObXNTON=O"NIeO - <- - * t 000 1 CROSS REFEREMCE TABLE i UL i -“« = = & oOOTCMTPNN-F)UVOMMOxITAOSMNWgNIDGWNeVTANONWMWVIOPMWANTNNMOINiDNTORMADNaIONaAOVtM»0O—oVOeR—I=yTeEN=-O-pbOMOoAONOIN*aGi=TRN0MMFgMEdeOIAoO*<ETS-seeoNxMOsaOVuNxDnMTwCIeONULMOTIMYE=NoMVOxA0NIeTa=aeN.u2xTMTMIOOISRNMTeh-oTNNM=_0TsM"dONNN4oUeATMY~YO09"o0TNP,ROIOMOMRTNTAkM3NIT.OVOAN0-8Iaoo ©2 OMNW0IV.PUT&3&INMOOTR&SNV=VO"OMVTOVAIWCTB=a@ONN.OIII'VSOOTM.-NWONESN=TI"OOMCNT-TWk-O'—sIUNNX31NSOI.I=TDMT-X1N"-AMI1-(o"NX=1O]-IO1,-VNW‘=TTOwN ~v—M —WYOI.WN=SWYA'I=WNYSN=,N=SIIYNM'NONYYSI“ONYTSDA8RYS=ONNN'eTS_MR,NFUITSE"T(=NOF0NOTY -OOOC8U1"NU7APNUNOM210MR-«rOIAIa9I8—4WMTE0NTLAR6I6W5wREW—WVNVO36AYOMWNN28WOOAAW1y29WVONNOY60RWON~N901O—OO NTMIOM—=OM0~LOVMMTF=«N-[- eYNo0O=0M MoL[3y2MN=~MO~oNNTM=MMNOO=UnLUINNMM0—OooINMNNtOMMoNOVROwVY3e~NnPE NMWNAVW&¥)7EIY3t-.RUONNWWNTL—MEOWNR-NSVMVWOe=EEAV—OINANO0I—Ob"V.RBIOlMIO0NVO0NON*=NTV®TV~MMNY-MV TONMO«VN-*LU3IWG)T=MVVVO2M[ o~o~vN 1)N~ 'NOv—eoXMOMAWs_~OvYLO8NO4APO7MN22URERNNM"aSRM=ANaM(872"o5OIoINAON\I]==JUIeNNMVyNWM215J11o"OTOTWQL«TIE~=OOTeMYONWO92KWM0=8O-ssLONUMOWLVTVAVN‘yNEN071TWFVWWWEVM2—k88=62WVVeO=WhNWO‘L97G~51BUYTOOWV.NNAO210M12Nl—-WLDRNWYOOT113T1NNF-=OOBOMNO-NOMO[!UlRU L~LLo]oN<M-5Mw~—Y~.TM--Ta&Aat10 =?i0~5ll[T5-NOoOL|—e~(a~([V<]oow 44—0—-)w~~—— y~M ~o!a"N-!NY¥r][lL)R] LLLL0w0< Kc4M4wv) OOaMNO3NAAa5¢ a"} UlUPXONllll¥"oLoo0SeMMN=laa0LLOYLSdleaNooOiV-laNa~—«ll]oLOalOO1~OVYAAV-OO NOV-==OeOABMO-0U"-UULW—O8N\NLNLML~N«MnMN«-ealOMo=VNNVNcVONNNWM«.e&«&11&LPBoVe=STON0YOSNN00®WOI3&&GI-o0OeNNo0aVOIIeG-&0T«OO~~V0SVW0—YM~V0NBeNONsTn0mBOMMWNONNMT&ONNO&&&NOTMIOo=-3b|1140]0WOwMMWVMMoTWgVMWOOMgVLNO&B* i-iei8[iW~N PARAMETER CODING MACR 0 v04.00 1 =JAN-83 11 :06:45 PAGE S~¢4 mi13 (CREF v04.00 ) SEQ 0168 = - & N 13 SEQ 0169 36=254+ 57-79 * w 1 -— Ed a0 - L i ~N ~N o - ~Lw2Nl ow 35-188+ ~N o0~7 ~NLMa.l PARAMETER CODING MACRO vggioe 1°8AN-83 11:06:45 PAGE S=5 ) CROSS REFERENCE TABLE (C 04.00 N i 36=-20+ 36-237 B 14 PARAMETER CODING MACRO V04.00 1-JAN=B3 11:06:45 PAGE S-6 SEQ 0170 CROSS REFERENCE TABLE (CREF v04.00 ) N - wM e - Orh . oD O U LA DI D e UM O LA)e > A RoVUXXX—XONXMIOXNXOXNXXarX-X“”w0 ¢~=-<R]LeReeeeeeRRLTMk RGo 56=ué 52‘8285‘1 [ — NT0UO=IMF 56-64 57-41 57-61 PARAMETER CODING_MACRO VOé .00 3 1 =JAN=-83 11:06:45 PAGE S=-7 CROSS REFERENCE TABLE (CREF v04.00 ) C 14 SEQ 0171 o EisxZnNE&TxaZr—no=r2g—ux o=e-~ La) PARAMETER CODING MACRO V04,00 1-JAN=83 11:06:45 PAGE S-8 D 14 SEQ 0172 CROSS REFERENCE TABLE (CREF v04.00 ) 68-28 68-30 68-32 68-28 68-30 68-32 68-28 68-30 68-32 46-35 46-35# 48-38 7-278# 7-278#4 GSRADO GSXFER GSYES 7-278# GETREG GETREQ HCE 12-223# 34-212 12-86# HCl HCRC HELP 68~ 36-125 36-244 68-26 36-259 36-266 38-68# 39-14 40-41 40=414 12=171# 12-87# 7=259% 2445+ 1$AU ISAUTO ISCLN 36-180 68-24 7=-2788 7-278# 7=-2784 4LG6-9% 43-10# 4L4L-BN 67-534 67-62# 7=2788 7=-2788 7-278# 7=-278# 7-278% 7-278% 7-%780 7=-278%# 7-2788 4L5-8B# 7=-2788 7=2788 24784 L4264 42-BN 7=-304 4L1-8# 69-16 40~ 4B~ 52 64=-25 68-12# 46-348 43-17# 44=24 45-33% 24=53 24 & 69-164 69-21 69-214 NO 24=165# L8-67# 50-46 51=43# 24-168# 48-674 50-46# 51-43¢ E 14 PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE S-9 SEQ 0173 CROSS REFERENCE TABLE (CREF v04.00 ) ~3 = r ILV INCCYL ISR ISRCNT ISRV I7 ITONT 1TMSG IXE I1xu JSJMP O O O OO O VDWWWWNO0 O VWANWWNI WAV NI AN OO OO0 O T N AN NN OO0 - kY g =3 k4 12-644 56-30+ 11=57# 13-94 34-36 10-14# 13-8# 65-40+ 68-28 11=57# 12-160# 7=-278% 24-84 7=-3234 36-6+ 36-5# 58-46 55-109 4213 65-76+ 68-82# 25-160 40-61 24-94 46-19 56-83 56-91 57-86 61-165 65-199 65-230 50-69+ 51=23¢ 51-65+ 60-12+ 60-36+ 61-18+ 61-33+ 62-22+ 62-59+ CROSS REFERE N LSDEPO LSDESC LSDESP L$DEVP L$DISP LSDLY LSDTP LSDTYP L$DU LSDUT LSDVTY (al ] PARAMETER (OD F 14 G_MACRO v04.00 1-JAN=B3 11:06:45 PAGE S-10 TABLE SEQ 0174 (CREF v04.00 ) 7- 16=27# 777= 77- 7-32 2 L 16=17# 67-53 67-53# 9-9 9-94 4L2-8# 68-1224 69-22 1-8# 68-12 68-12# 30-138 31-36 10-84 31-58 31-60 31-102 64-31 65-35 a0 o - o [o] o~ T T T T T T 7 7 T OLIWCINIDIIN NN O v O ON N UM = O ON N J UM = O ON N J (UM = O ON W NUM v O VWON I (UM = O WO IV M = O MO N NN A AN NN AN AN AN NN A NN AN O O O O O O 00000 T - ow i ~ SEQ 0175 G 14 PARAHE!E?E Copnl gg NG_MACRO v04.00 1-6AN-33 11:06:45 PAGE S-11 CROSS REFERENCE TABLE (CREF v04.00 ) e 04¢.00 ) O~ [ o ¥ w ~ Lal — ] ws w ~M o H COOCCOCOOOOOOOOOOY W UED VDDWeEe Er E=ZANVVVWLOLLVLLLVLLVLLLOLO VOOV A VW 6666666666666661112621221qlcl61161nl1666611111‘033333’333111 O OONT M 0 Ne= === r—MOMOW O T TN —=MNNN OO OCOO—MANICMNNI nNO * SEQ 0176 e H 14 PARAMETER CODING MACRO V04 .00 1=JAN=83 11:06:45 PAGE S-1 CROSS REFERENCE TABLE (CREF Vv I 16 PARAME Y ER ?E C gglNG MACRO V04.00 1-JAN=-B3 11:06:45 PAGE S-13 SEQ 0177 CROSS REFERENCE TABLE (CREF v04.00 ) TWOWONg NMOWVNVTiN -— 55-34 OM O - 55-100 56-29 56-80 57-28 57=77 61-46 k"L!) ’ UL LA UL ) 54=110 -L SUNL O|V NNUL NVOMWN (WO 38-83# 65-19¢4 3 5=12 5 5-86 &= 61-148 -+ 65-88 Te— =0 00 ~N -TVNO—SW -"MN&—O -TMN—-gVOlV o 34-221 10 P L UL POPQUE SR - "WMVW Lal RANOI I ND T e eI o e i o il e Dine i i 9TT £ V x vV — 2 EN W e VI N OTXCALRAR=2AORoxWIARAWVDLOWEZ (=O&J3WQF0VmXo)r-0O - 65-212 3 PARAMETER CODING MACRO V04 '0001:80 ) J 14 SEQ 0178 MAEGNGCO M wo — -@e EMEMe— s & — - a8 = N NS asae—aMs * a E* N g O OIN e— L = - = ~ OeNO eN o CROSS REFERENCE TABLE (CREF v AN=83 11:06:45 PAGE S=14 » ~0oONI—VT SEQ 0179 K 14 — e — O o o0 —0 OITNITOO I3 VNe=RNOUMWN O = 3 .- O Ohe—M — Ry MWIN MO NOONO — wv (= N - n zx = w NMT MO — 0N — — 0N & O ONNT - N ~ — [Ya) 0o OO - - N Fre — " a ~0 W G0 O~ vV -0 NEOOV FoOEEEZ2CEw 20T Exoaclk EcccEccEccaaoscaaocaxxaadx [ s Lal’s) xxxxxwv -—oumn x TM N NN N 155555.!5555.)56555533333333455552222731593335666666666226 6455155559625031056666666669 ~ k060=3 940555169552630131R® 641= 712=44 L MM IWNONINNST 0525035566 N4 -0 a0 — N VOOMN OO F M OwWne WV T TO— L OONO i - O O - - CROSS REFERENCE TABLE (CREF v04.00 ) PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE S=15 PARAHE?E? C galNG MACRO Vv04.00 1-JAN=-B3 11:06:45 PAGE S-16 CROSS REFERENCE TABLE (CREF voa.flo ) SRCHOO SRCHWT ST.CLK ST.LCL ST.PCL STALL STALL] STALLZ2 STALLF 30-10# 33-98# 24=13# 24=47 24-32 26-85 68-57 STALRM STLTIM 68-60 68-55 . ST0 55=44 55-72 61-152 65-216 56=35 56=55 57-32 57-52 62-36 13-46# 13=47# 10=-22# STALMG STALRD SEQ 0180 10-24# MM MMN OO o= M o= o= MMM NN MMMMMM NN Ty 2 M ooNNININNININN O T ] N*]olSalolNolalSolJNNa+TAloNal-l+ALaiNlaNotSlNalAaOlNaElOWAl SPTYP L 14 MNA-N WMIMMVOCMIN NvNy 0 k=3 03— SEQ 0181 M4 CROSS REFERENCE TABLE (CREF VO064. PARAME TER_ CODING_MACRO Vv04.00 1-66N;83 11:06:45 PAGE $-17 )1) clclalclclqlqlclcl.lcl1l-|¢|.l.¢|1lqlq.l.lQl..lql2222222222222222222222222223~)) ~ ~ 0033568993‘0123361578"23572‘933920.‘223‘5603156677 03156677 0033568993‘0‘23361578"?3572‘933920.1223‘56 0’!‘356899lfl60123391575Ifl‘23572‘8339501233‘5603156679 333 1111111qlclcl!.l.lclc.lnl¢|¢|.|¢|ql._l1‘222222222222222?222222222223 L L 0033566993471133595764lq235729933420112345603756677 I I I N Nee e eee MMMMMMMMNMNMNIMNIMAS 3 ST S ST T N8 S8 W8 W7 W7 W7 W7 <7 7 7 DN i i i i n n in niyndn, S8 ST 8 8 W8 7 ~F w7 7 W7 +F S<T7 N7 0T ONN= (NUINAUNNT ~F ~AF ~F ~NF ~NNF 7 IT NNNN T O ATO OInOInOINMIANGWAG M M NMIM Nv oMMMF ~F ~F S© SOO Me M M M MIMNMNPIV GE W3 ST T <7 3 3 8 7 7 7 7 7 7 V7 7Oyi i i i, RRRRR R O ONR A AR NN O OININS M S I T 9 TNNININ e - 2 <ONNNNININISO0 ONIONI -y NoO MR AR R AR AT A R SRR SRR S KA O TR N AR AR REA R s SEQ 0182 N 14 PARAMETER CODING MACRO V04,00 1-JAN=-83 11:06:45 PAGE S-18 CROSS REFERENCE TABLE (CREF v04.00 ) wts 04,00 ) VAW D OO O OO OO OO OO OO OO O O OO OO OO O OO O OO O OO OO0 O OO0 00O T NW IWNININO OO 6868~ 68 R R R O 0 P D D D OVC OO OO DO OOOOOOOOOOOCOOOOOVOOVVOVOVOD AAAAADOO 1 — NOOO O r v = = r= = = = = (N OIM) J NN AN NN NN NN N NN A N N 0 0 60 60 G0 60 G0 G0 G0 0 G0 G0 G0 +— UMW G0 O UM B ke (%] > =) v -d@TM SEQ 0183 B 15 k) AN=83 11:06:45 PA PARAMETER CODING MACRO V04 CROSS REFERENCE TABLE (CREF v 15 PARAMETER CODING MACRO V0&4.00 1-JAN=-83 11:06:45 PAGE S=-20 SEQ 0184 CROSS REFERENCE TABLE (CREF v04.00 ) 4XPoVTraTgeABUZRATIreTeTrefreealalvalvalValvealelALN -TONMNA MNMN TO OO ON= AOWAVNIONVMOTON 69-16 45-8# 67-53 9-9 42-8# 17-3# TSSPTA TSSRPT - T$S$SEG T$$S0F TSSSRV TS$SUB 69-15#4 40-47# 65-201 ] TS$$SW TSSTES 68-12 24=-i12# 4B-62# 52=274 = oA[) owON = 7-323 7-323 k. *® @ M= = O3 O F Ne= F OOMM$ F 0NN — NN OO ' TSSDAT T$$0U TSSHAR - TSSHW T$SINI - TSSMSG o= =N MM S 3 = O = O NIIMM T O = = OO e e =TVOWMONDJION0G il OM O IND O O O O O IWN =T ~F TWAIANO WAINW O 9-9 17-4428 17-48 69-16 40-61 65-2014 68-12#4 65-203 65-203# 24-115 48-67 10-8 4B-57#4 7-323 7-323% 7-323 7-323%# PARAMETER CODING MACRO V04,00 1-JAN=83 11:06:45 PAGE $-21 D15 SEQ 0185 CROSS REFERENCE TABLE (CREF v04.00 ) TSEXCP 67-55 68-2¢4 ISFLAG 40-61 TSFREE TSGMAN 68-122 7-278# TSLAST 7-278% TSHILI 6755 68-24 67-554 68-24# 4«0-61# 67-554 68-244 6 8-122# 67-57 68-26 69-15 AR A N R AN RN R A AN RN ASOR e w & (3[=-1w= N II N k= B £ ®% =g0'VWOSNINIMkM=3=TMO=NNM=MN'INONONONOOONNIIT=OONIT - a3 MNO9OTMN3I0ONI7ONN~TIOSNnNOO‘ODVnmONO0VnOOO9NVmOO1NOOOOiV3OOOn5nNVOOOM6iIOONO8IiNVOOV9.OnVOOY0nOiOOOOOOn1VOOOO2iNANnNNNn2iNNnNN(A3VNnNNO"NNi5nVTNnNNAN6N7nNOINNAIn8TNnNNO9ANU0INiNN1TODnN~NN2T7TNTU777N37TMJFFO7377T‘FTF3WW35NF3OUN==MJMM5OUG7MSOI8===O6=M7====6 —wSRoNNOR~kA-3WWNMAROWARVONAORWOMEAORNRANIAWVNOMWONVIEVRBIVNSRORUNBOPVTSRON]NSRBWNBSe3=0O NO=-—M-TNu3R3~ST(TBNURMMR7O=W.OOOOVO!=NUMV00.VOO—=OW!OOOVO1IVNOOT2OMOONOTO~F3IOOOO3O1OOW3N~OOOO=“0VOOOOMO4WVOOOO=IMOOOeN=l~NNNnANN4O=NN5ONWV5MANNNMNNV5O=N=NNA<M35NoAov=NNONT835NO=“TMMO5ONTNNrAN5—NNSN“UIN53NTMeNMN=N5TONMVO7TI7NT6N7O7I7NOMT37WT7I6=N7TTTTON=T33FN6e=F33TT(=P$SOO6UNMN\OM=FONMoMTNM6=MO=MFN=N6===6V=N6 PARAMETER CODING MACRO V04.00 1-JAN=-83 11:06:45 PAGE S$-22 — O E 15 CROSS REFERENCE TABLE (CREF V04 00) SEQ 2186 = k 3 ONIVANT=ONMNTM M=<OS0NV3MUDW~TVINOMA ONMF7TO=eINVM—AI=TNIOMVOINMOIOMT o'=wW =O0RVO|BBWVMNOIMNMATAIMNMONO0YITOMIWNTNIMO OeCFAUTNMIW=AO~UNIN.MO EE0NL8]EEEEDMOFYETDISJN=FYVTO0M~VINOUOTNMO ENEL08]NEENYEYOM(EIDT53NOIY=-WVM~ieN[rN=eO1NWVNIAoTMI-OCV0WOM}OTWMOSO ENE0UEENELEYOMoN=D$TNJI=Y-eAMOR0~IOrTNN—IW=e ~0'”1—6'7"'7N‘7“20949’0725630’657395872059 £ R 3 ON6CRI=eB(TMO9UO0WWNVG0M=OND3N8NOTMO=IOM9VON”TRNAMNzI53STNO7M=OIN63NTvOTW3—eYRDNOBRNTkNR=oO—~MSOeN=eOM=JWoNTY0O=NNTWOERMIOO0TNEOBNMVWSOSTNEeVNOMNR\OTM—vONN0A]ODOUI=N(SNMNBIRNO0O0ovwNO)nB[wwvo®-8i”RVNeMREOwNBW—ENOVUR7RWTENM6ANOORRW5TNMNREOV=8JOIRO‘MTN=E'ON—P—Y-MNOTNR=INBRNT OF(VNT=RWIO=MNCv-=MO8oN=NWT2ONVW0OEFN:O4ON~I—BUMMNbO3IM=Ne=WONoRTOnNseA=NOUFNMT—AReIOM=NuNWVN=UMNTMONNIOOVTONNnMONwNONIwMoyNANONNMOORO—MIGNNSONOeMY=NWFORDO 7OOM)TOT-RaMuI"3LIlNVO‘O|e13aT-1¥No00sl0Od3.WIvfV,IaVO6OOIilVNa3R=[v4OO=laIczONeNadsO=5OVYl)VN5a‘tWbR=zE3vOENT5as=3x3z=VvVONsekNR5Exsg4Ta~=blEc®3OA5l3T0NNl?kR6RTOB-03R3T6RIT0z0bONBN0N(owE6MDsST=08-~]3eMIO=eST[-=O~OO0N|~WOOMTON00WTFNgOON0MROROVDVNWUNAOATEMWoWONVbNWION0MAOTMI(NWOA=VV0WB=NWbTR0IRNNVMNO0NVOOTN6“e~OoO0Mil4)N~0OA]V5NYO5OO50o~WOOORV6RNOvO4NO—E0WA5NTVe0V—INW5BVNWMN~5AE0FWIA6O=Y=EO6MNABVN\S(ONU6WLTM&WBNM)0oR N3EA“VIOO]ON~OR=“TTTI —NeT|OON—Nr32RIeMO—I-WM00MTN.MWGTIO=RODNONBOO=OMRNVOL=I.WTINOMNNMSe=ONTNkMP=YNT3OVkNNT=3IOyEO=N3DTO0TTR0TO=NJIOOTN(=MUoMT0~WM(-<NOTC1C&)SWNwNOOUT—T=MOVMOTNOSVW0xNRNNNOOEUNICMUTxO(BMNN=ITOONMROOeBM==LONV3OOYSLIRT0cEO=owoCWOa<PUO2wOoMNwI—0DbtLvT4VPe2vNO>5PnDR0OV6Nn7YeMD62xOu]OMNOONIVeIVMW—2E¥OeRN0JWNEON0EEANW8R4IOOEEVXVNOTogw==a NVO~OOOBDoWUVT/lTB0MOeSV[V0OTl Ov}ITSTOAA.BRNv]C,ON3VENTI(l.V£O0,0vOIONRV-,E=VMI1OvNNO,0OSOI=-MVLNE3,ION-W,aIWO—OlEETVaVNRAlI~TEoVVlUYTOaPOERDFlNVENaSM—lVEVNEo=IUVlOETEMaW=RTlTJDOSA—ORQIAFTRTEORANNNERNo=SIXVNBR=/ANbk g0vOO)LMNTLNRolNLO0NO=AR=IMV(ReTI1¥MWOL3NNM.MN]N0SOeOON0rV-O—NLO—OTONRMaNlTO=VV"NaNglNOVIb"TOIaTWNl0NMNaNWWlBVN[~TWI TTNIPl N0ANO=SFDO0IOWIV00NWAW0MVOONW0yINRWMW0NAVI=OOOWMTAsSsTMS0SOW10LTTNeWO~~WWNOOYMVV0TA0MO ~]U—LBb = ReRwULe= — 0NRM=ebBRGkOpk0k~kONhRy VWaToIlRAvONLb}WtVOlN0aeVO (ONTUJ=O—wIWMINWN <0NroFOU=TMWeIN3=MV~ =x/wRoqn—«N— kubnMN¥=w-~3 kLbe1R'o"A3,SNl“'” 22 k3 R e iz PARAMETER CODING MACRO v04.00 1-8AN-83 n :06:45 PAGE $-23 F15 CROSS REFERENCE TABLE (CREF v04.00 ) SEQ 0187 a= o - = i OONOo®IRMWOo=O][OOTWNoONNTVNITTON3T5ON~ONONwIMS==NTaO3ONONNGnON®00-M300.WOMU0KNwWVOWAWOWIWYWONTTwF WMx=)ONNw R&%“".“'M"9' 0 a0 ~ —M 0N« O ~F 00 e S R A N R A R R A N N O W N V O N O N O M N M N O T N O V O N I N O N N = N T B 3 ODWWRO0ORTO0o— O T4SXS NoO0N~ONIM=O eRNMS.NNCNOIO0MONWNOVMNNWIONOMOV=OIOTeMOOOO0NONNIVOT00=NT0vOT=UeIONOMO=NIM0==N—==NeAMMM==N=AM=MNeM=OOV== O=NLY O N I N 0 N 0 0 M G 0 I 0 O N W = M N O O N 0 0 0 0 0 0 0 0 0 N M I = = O N L T O = M O N d e = O = = M = = ROO3e[R N"V&aNlO=tNOMION—Oee NO0ONYT0oNU=WONrM—N woO3e3MONNOOUOVTOOUIMoo MIV=So=N== OWNYRNOIOR©NT=RMB—eBRtVW(AO-NUOIS0STWNNOMOANeNNy=OM(IVOV~A=UN=OOINV=0NOMw—OTMo—V=OO OO<=UMOANFO—NMNNo==ROIOooN Oo=N=NRNTVNNeeOAITVONNOMRVFNTIONT=O=TNNWMROTMVOIIoD—&3OT ONINNNOS=VTTEIIINONN0MO—MNN=TV0=RO[~oOWA"0NaNl=VTO0NOV=M=O0I~VVNN=NN=NO0N0=O=UMNIUNMON=N SNUMOMSNV=N ON=OMFTMCNje= MST= WvO Ma0O WMNITO~Me=AA —Bow w S h T 0 = o a u " R r N n t R E Q=0«ONOMT—NUW=VN I=RWwy NTWVNTOAWWWIO TWOI—N—'NMeN—MNIN—M-ANAN OITVOONT0V N=MVRT—I=NONMTONIAN VONTWOA0 DAaBle]irloBrilTligoliOrA0LNegi-0IM0DNN0N WOaTFVIN—IN3e—MNVOITO ONTO0V LaVelI}RATlt"l-a"a"a A3OD=NNTONVAM aVSoDeLTBalVYolVMa0lIG1NoV8XalVVlali TOMWNWN)MWVNMONO~OMON G~O(TUN=eM0FW ONO3WN=IAIMN FTNMVTOUSv=MNe0OI=TNOU=0MN— T=OMeY—FTM~oINNT ] -~y —R%R O -g3 38 T TN AN O OVO OOVOOV OOVO 0V O VO ooRw CROSS REFERENCE TABLE TR ~ PARAHE‘E? C ODING_MACRO V04.00 1-JAN=-83 11:06:45 PAGE S=24 615 (CREF V04 00) SEQ 0188 o PARAMETER CODING MACRO V04,00 1-JAN=B3 11:06:45 PAGE $-25 H15 CROSS REFERENCE TABLE (CREF v04.00 ) www — — ww -- ~N ~N - w o O VN0 G ww VO ~N SEQ 0189 PARAHEYE? Copnl gg NG_MACRO Vv04.00 1-JAN=83 11:06:45 PAGE S-26 SEQ 0190 NON305O3ONO“O0UV‘MWO5-5~OO15W15M—O25MVO35W3‘650667O8VM79O7VO0V77I<TN7O+F7WNFN77T“]FT7O=~FNT8-TMN811Nv82N|88I1NVW82G38O-—M‘85MO9A6D~9c—lzr9TM~.O!O9~1!O29O CROSS REFERENCE TABLE (CREF VOA.é ) 115 wooo]DolO©N o~ g oNc0— -N WRe=B||RnRRRVVRN“ .)eBI528ND"L0&sA IeTLP ~TINJ"O0MA-DATDATRNAIBDW0IAVY~AVON0WIMw-VONeO—”/.xWR|Ou—By®n’tw B3 4 wn ~ — — M n & PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE S-27 CROSS REFERENCE TABLE (CREF V06.60 ) TIMTYP TRE TRK.DS TRK.RD WCE WCEFLG WCF wCKD WCKHD J 15 SEQ 0191 10-20# 12=-11# 13-27# 13-23# 5778+ 65-213+ 13-430 12-84# 12=2104 12=211# 25-66 63-45 63-70 35-216+ 35=-222+ 36-24 3625+ 36-236 61-100+ 61-116+ 65-156+ 65=172+ 54=71¢ 54=92+ 564=99+ 64-58 65-73 65-200 36-253+ 61=149+ MM )-5- SEQ 0192 TalalN\— w n ~M wo M w Lol 0 w ~- ~oOO~F— O NN NN =WOUINAIN0NTMe PO¥D OMmN wo-0 -—5 oO w0 JVouO-ODT0OowJENV<ZONZOO2VIO-V0eONMOY CROSS REFERENCE TABLE (CREF v04.5 ) w0 K 15 PARAHE?E? CoDl ga NG_MACRO Vv04.00 1-JAN=83 11:06:45 PAGE S-28 ~ T ] 0 v w a0 ] (s w o — i 35-102 L 15 PARAMETER CODING MACRO v04.00 1 -68N;83 11:06:45 PAGE M=1 SEQ 0193 CROSS REFERENCE TABLE (CREF vO& 7=278#» -23#4 D i o 1=15# =-19# - e e = d i e i » i e e e e e e N i o 44-3 45- 67-53 9-9 4%—8 =304 67-43 17=-3 41-8 69-16 60-47 7=278# 7=278# 7=2784 7=278# 53-15 60-19 65-125 7=278# 7=278# 61-17 7=278# 36=4 50-49 55=41 62-37 51=41 55-69 62-42 51=44 56-34 62-56 52-42 57=49 63-63 63-67 6452 52-17 53-8 564=23 5$7-14 58-20 59-9 42-101 - 4“B74 52-45 58-32 52=57 59-20 42-40 7=278# 7=278# 7=278# 7=278# 7=278# 7=278#% 7=278# 7=278# 48-59 7=278# 7=278# 7=-278# 7=278# 7=278# Lewv DOCLN DODTA DODU DORPT DRV. IN ENDAU ENDAUT ENDCLN ENDCOM ENDDU ENDHRD ENDHW ENDINI ENDMOD 100010 ol 8B B ANNWN =N —aONES NOMW S N=O0NOOON N o o VWAL = OV = T BRuaR " = zR% DEVIYP DISPAT DISPLA 00 w COMMEN COMND DELAY DESCRI D ek N =S ) N - CLRVEC N BNCOMP BNERRO BREAK BRESET CKLOOP CLOCK CLOSE S# “6-9 ¢80 44-18 44=-21 44-23 49-19 49-26 50-47 50-63 51=-42 €1=5y 52-28 52=31 52-43 62-38 62-44 62-57 63-40 63-44 63-46 63-t5 63-69 63-71 61-151 65-215 66-2 68-123 D e BOGNTST 7=278# 7=278# 7=278# 7=2784 42-18 e BGNSW 7= 733 (=2788 7=278# 7=278# 7=278# 7=278# 7=278# 7=278# 7=278# 7=278# e e BGNSRV BGNSUB —d d e T BGNSF [ R =LT D e D B o 000 000 [ U‘f'\) NWOM) b e d cd e s -‘V‘WWWU‘—'WSNNNNNNN = oO=0 OV~ W o N o =N i i BCOMPL BERROR BUNAU BGNAUT 39-1 46-35 M5 PARAMETER CODING MACRO V04,00 1-JAN=-83 11:06:45 PAGE M-2 SEQ 0194 CROSS REFERENCE TABLE (CREF v04.00 ) ~ = -3 R-3 ["NaoOwclv0"S\aA0lo."0s PARAMETER CODING MACRO ggéfoe 1=JAN=83 11:06:45 PAGE M-3 (R0SS REFERENCE TABLE ( 04.00 ) N 15 SEQ 0195 MSEDATA MSDECR MSDEFA MSENDE =2R = M$ERR] MSESCA M$ESCS M$EXCP 3 MSEX]T M$E X SE R w PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE M=4 CROSS REFERENCE TABLE (CREF v04.00 ) B 16 SEQ 0196 U " S I SR A AR B A 2 A AR SN IR AN AN A R e A R N M) MSGENB MSGETS 2= L [} C16 PARAMETER CODING MACRO V04,00 1-JAN=83 11:06:45 PAGE M-5 SEQ 0197 CROSS REFERENCE TABLE (CREF v04.00 ) ]TLpsLpYIpSTSTTpNNTOVIT,TNNTONNIVIVTTVTLAVLAVLYAeletB-0 36-4 2 2 2 o — ' ‘ ? B " - === = o= = (NOUOUMIMIMIM M $ 3 TN v = v = (UM J F O O \ O o= v o= ¢ v v v 17-10 P R A R Tl Y Ty T o el al s alalal o sy aILTVS-BeYRtNALP0OatV 45-84 PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE M-6 CROSS REFERENCE TABLE (CREF v04.00 ) Mi SEQ 0198 R N R A A A A N S N R AR R S AR A N A AN AN A ANOR ®| VVaoOMER b 2 BANITR BN " —IhNN R R RO o = i D 16 RR IIII . i 000 =2 wD OO O O O 0 O OO O O OO O OO O 0 00 00O O OO OO0 O OO0 OO0O0O0O TN WA AND O O O O O O O O OO0 O O OO OO OO0 O O OO OO OO OO OO0 OO OO0 OO TN VWA 8' 9 EE QO SEQ 0199 E 16 PARAMETER CODING _MACRO v04.00 1 -8AN-83 11:06:45 PAGE M=-7 CROSS REFERENCE TABLE (CREF v 04 0) PARAHE?E? C ODING MACRO V04.00 1-JAN-83 11:06:45 PAGE M-8 CROSS REFERENCE TABLE (CREF v04.00 ) F 16 SEQ 0200 » "R®Tx ]=Rk| T=*zx =y i T Uald . Ua NR JONONN TV MO =0 NN 3 M I NN O 000 —e—e=MMINOO —MIITnnn oo 5666666666666666 Mman — M SN O OO0 —reMMINOO =MNITITNnn 557929.."27272925 5666666666666666 MW Lal 4"l OO OUML N OO O OO0 - M T TN — =N NOSTONN AR O=NT —r—e=MMINOO —MNMITNnNn 56666666666666 00 NS — o~ w =T TN . G0 (Vo) =M = MMT TNO v = = NONOIMM) OO O - —ME TN RNhcR A0 00 M aRocoOoRzazk P 0O N NNT TV . W o aSM BN T [] 0670022263742’93609291 Om OV W N OM v ON DOMWNONO OO3 o & 6 12445555566661113’3456 a0 —ONNT TV NI T O w NSNS T VWWA b 6 12“55555666611133‘56 T T W Mo 66 [ <] NT 0 24455555666611113345 aM—a R 56666666666666666 T TN RO 56666666fi66666666 MSMASK M$POP MSPRIN 3 TN MSPUSH 2445555566661111334566 6174‘5‘170"8608 WOON MSMCHI MSMCLO MSMSK1 112717762233‘ 8893‘587220‘056 NT TN gk o~ 124‘555556666111334456 |~ MO CROSS REFERENCE TABLE (CREF V04 0 5666666666666666 RO RRaR 5666666666666666 2 5666666666666666 NN [} 56666666666666666 MSLDRO SEQ 0201 G 16 PARAMETER CODING MACRO v04.00 1 - J 8“;83 11:06:45 PAGE M-9 PARAMETER CODING MACRO V04.00 1-JAN=83 11:06:45 PAGE M-10 CROSS REFERENCE TABLE (CREF Vv04.00 ) H 16 SEQ 0202 NOOOO0 & o= === = NNNMMMMN G SONNININ N OO 000 = e e e e e o o o=UMMM = P00 0 'R R e b=3 116 PARAMETER CODING MACRO V04,00 1-JAN-83 11:06:45 PAGE M-11 SEQ 0203 CROSS R EFERENCE TABLE (CREF v04.00 ) NN 3 TV OO ONN = = = unnnunn = nnununmn ON N = = S 3 TN OON NS 24=1128 17-29 10-8 36-4 24-130 45-8 42-8 42-39#% 17=29# 36-4# 4L5-8# vUyl GONONOUM MN= = ] AetLoTV,IVSRS S[ NITNOWNNOVOVO OO0 O VNN WONMWNDO NN 41-8# ON N = = = Nnninn = ONNONNININE F TVWNOO NOMIN N Q0 = M VWO = M= (NGO NNND ~F O =MD = +— NI MaeI|LACYPRNLt,ASAL O7V3WIAWWNMW~AWWIAWWZIN R=3 = oO=NNN=UMNMNMN ANA-NANITVWO & ¥ ¥TAV NN N O OOV O OOV O OO0 = NINNIMM S 3 T NDANNNINN O OO O OO v\ —CQOMMIN O ~F NOAHNOMININ e~ UM F N OMMN OO NI R O MOV = (MO = 3 T ONANINDNO VO~ o SEQ 0204 J 16 CROSS REFERENCE TABLE (CREF v04.00 ) PARAMETER CODING MACRO V04,00 1-JAN=83 11:06:45 PAGE M-12 4 [=) =L)3 (=1[< 3 ] ][ I SEQ 0205 i 2 UL o K 16 O O =3 ON VOO =N~ MNOWN' —NOOTMONOWNITONWNO—=INTN STMOONIMN00O 2@ ElRAHE TE R CODI NG_MACRO v04.00 1- 88";03 11:06:45 PAGE M=13 < ROSS REFERENC E TABLE (CREF v0&. 11:06:45 PAGE M=14 1- JAN-US V04,00Vv04.00 MACRO CODING TER PARAME ) (CREF TABLE CE CROSS REFEREN MSXFER MANUAL MEMORY OPEN POINTE 57-208 60-264 61-157 es-gla 67-57 ea-gz 68-38 68-55 57-79 60-24 61-157 os-gtc 67-57# es-gzn 68-384 68-55# S57=79 eo-g‘c 61-157# es-g1‘ 67-59 68=24 68-49 68-5 S7-79 S7-79® $0-33 60-33 61-139n 61-159 65-222 es-g1a 67-59 67-61 68-26 68248 68-4bk 68-408 68-578 68-59 59-24 = 59-24 59-24 60-33 60-33# 60-35# 62-33 61-159# 61-159 # 65-222 65-222 65=222 68-144 68-14 67-61# 68-28 68-28#4 68-268 6B=4el# 68=47 68-47N 68-59# 68-60 68-60# 17-4 30-165 31-66 55-86 17-5 30-168 42-29 56-69 17-6 30-171 4o=71 7-66 1710 30-173 4273 61-96 17-26 3129 42-15 61=97 17=30 ;-3¢ &e=77 6.-118 17=31 31-34 42-BS 61-119 17-35 1731-39 = 31-40 42-114 42-127 61-138 1741 31«45 4g-132 65-35 7-278#¢ 17-12 17-13 17-15 17-16 17-18 17-19 17-23 17=24 17-32 17-33 42-16 42-20 42-25 61-160 55-52 65-213 65-225 55-101 56-=43 56-63 56-81 56-43 56-63 55=101 56-43 44-100 54-110 34-36 24-17 57-86 57-28 50-21 50-3 56-13 57=-3 56-81 56-63 55-100 42-89 61-44 51-3 57-12 64-23 63-16 64-3 45-184 4L6-19# 54=268 1=;628 1=:66# 1=:718 1=:76# 7=278# 7=278# 72784 7-273: 25-20 1-<398 7-278% 1-<79# 7-2784 31-64 31-6 54-74 547 PRINTS PRINTX 1=-=59# READEF 1->03# RESREG RFLAGS SAV.RH SAVREG SETPRI SETVEC SLASH STARS Sv( XFER XFERF XFERT 1==194 7-278# 7-235# 1-=99%4 25-15 7-278# 7-86# 7-35# 61-90 gga 5 61- § -33 eg 65-224 68-1 68-3 68-51 7-2784 68-16 PRINTB PRINTF REPORT ' §7-178 6024 61-157 65-78# 67558 ea-goc 6B-34# 68-53# POP PUSH READBU 7-278# 54=115 36-373 51-132 7-310 55-105 54-54 61-149 68-16# 56-87 54-86 65-146 7-278# 54=111 54-54 7-4BN 61-149 54-86 65-188 65-146 61-132 54-54 54-86 7-22# 36-348 61-132 61-149 65-146 61-90 34-45 34-20 24-94 1=>13#¢ 7-278%# 24-B4 # 7-278 1->18 56-27 56-29 55-109 65-230 55-34 65-207 65-199 72784 1=>248 7-2784 4B-39 7-167# 54-14 4 54-3 1->38 54-21 53-6 61-15 61-3 60-8 60-3 7-278 7=-2774 1=>524 12128 70788 40-61# 42-914 1->08#¢ 57-178# 57-208 1-3208 7-278# 1-3164 SEQ 0206 §8 81-150# 370 65 £7-55 68-20 68-34 6853 ga 61e; 65-224 6B=16# 68-30# gg-?z: 7-5468 1 3—ga sg g eag 68-18¢ 68-328 68-51# 56=-214 §9-244 61- gc 62~ 65224 68-16 68-30 gg-§z 1-982# ’ e 7-278# 60-35# 68-16 61-35#4 68-40 6840 57-82 65-188 54=111 68-40# 68-59 55-80 55-52 55-80 55=101 65-213 55-52 55-80 54-111 65-213 65-188 34-254 34=199 24=155 3-1476 24-135 24=12 56-83 56-91 57-26 49-12 49-3 48-43 55-10 56-3 55-3 62-17 63-3 62-3 42-1034 42-165# 44-24K 64=33# 68-59 65-37# 65-78#4 68-59%# 1745 31-46 54-60 65-152 1747 3155 5461 65-153 57-40 57-60 57-78 57-40 56-81 56-80 54=37 61=46 57-60 57-40 57=-77 54-39 61-165 57-78 57-60 61-148 54=119 65-86 61-90 57-78 65-212 55-32 65-88 51-20 58-3 65-3 55-15# 52-15 53-3 52=3 59-7 58-18 59-3 65-27 55184 56-18# 56-21#
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies