Digital PDFs
Documents
Guest
Register
Log In
AH-9210C-MC
May 1978
275 pages
Original
156MB
view
download
OCR Version
239MB
view
download
Document:
CZRJGC0 RP04-5-6 DISKLESS 1 DEC 1978 bw
Order Number:
AH-9210C-MC
Revision:
000
Pages:
275
Original Filename:
CZRJGC0__RP04-5-6__DISKLESS_1__AH-9210C-MC__DEC_1978_gray.pdf
OCR Text
RP04/5/6 CZRIGCO omvmen: sazo EBRCD FICHE1 OF 2 MADE IN USA RP04/5/6 CZRIGCO cormant 7e7s ZHENED _FICHE2O0F2 MADEINUSA (ZRJGCO,RPOL/S/6 DSKLS CTRLR1 CZRJGC.PT 26=JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 B 12:41 1 PAGE 2 SEQ 0001 SEQ 0001 .REM a IDENTIFICATION PRODUCT CODE: AC=9208C-MC PRODUCT NAME: CZRJGCO RP04/5/6 DISKLESS CONTROLLER TEST-PART | DATE CREATED: MAY 1976 MAINTAINER: DIAGNOSTIC ENGINEERING AUTHOR: PETE BLACKSTONE 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 RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS . MANUAL THE SOF TWARE DESCRIBED IN YHIS DOCUMENT IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOF TWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. COPYRIGHT (C) 1974,1978 DIGITAL EQUIPMENT CORPORATION THE FOLLOWING ARE TRADEMARKS OF DIGITAL EQUIPMENT CORPORATION DIGITAL DEC PDP DECUS UNIBUS DECTAPE MASSBUSS CZRJGCO,RP04/S5/6 DSKLS CTRLR1 CZRJGC.PN 26~JuL-78 10:10 MACY11 30A(1052) 27-JuL=78 CONTENTS 1. ABSTRACT 2. REQUIREMENTS 2.1 EQUIPMENT - STORAGE 2.3 PREL IMINARY PROGRAMS 3 LOADING PROCEDURE 3.1 ME THOD 4. STARTING PROCEDURE 4.1 CONTROL SWITCH SETTINGS 4.2 STARTING ADDRESS OR ADDRESSES 4.3 PROGRAM AND/OR OPERATOR ACTION 5. OPERATING PROCEDURE - OPERATIONAL SWITCH SETTINGS 9.8 SUB-ROUTINE ABSTRACTS 6. ERRORS 6.1 'FATAL' ERRORS e RESTRICTIONS 8. MISCELLANEOUS 8.1 EXECUTION TIME 8.2 STACK POINTER 8.3 OPERATOR SELECTABLE SCOPE LOOPS 8.4 PROGRAM REVISION HISTORY 9.0 PROGRAM DESCRIPTION £ 12:41 1 PAGE 4 SEQ 0003 SEQ 0002 CZ W4 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1T 26=JuL-78 10:10 1.0 MACY11 30A(1052) 27-JuL-78 D 12:41 1 PAGE 5 ABSTRACT THE DIAGNOSTIC IS USED TO TEST RPQ4/5/6 DEVICE CONTROL LOGIC CONNECTED TO EITHER AN RH11 OR RH70 DISK DRIVE CONTROLLER THIS DIAGNOSTIC TESTS THE RH11 AND DCL OF AN RJP04/5/6 SUBSYSTEM. IT DOES NOT USE THE DISK SURFACE OR ANY SIGNALS FROM THE MDLI. IT REQUIRES THAT THE DCL CABLE BE PLUGGED INTO THE MDLI OR IF THE DISK IS POWERED UP, IT BE APPROPIATELY TERMINATED. IS REQUIRED TO GET THE DISK TO THE ‘HEADS UNLOADED'' POSITION. AFTER A SUCCESSFUL RUN (WITH NO ERRORS) OF THIS DIAGNOSTIC IT CAN BE ASSERTED THAT, '‘THAT PART OF THE DCL THAT HANDLES DATA OR DATA ASSOCIATED LOGIC IS WORKING PROPERLY''. THIS IMPLIES THAT, THE PART OF THE LOGIC WHICH HANDLES MECHANICAL COMMANDS OR ITS ASSOCIATED LOGIC IS NOT TESTED IN THIS DIAGNOSTIC. ALL DATA COMMANDS USE THE MAINTENANCE REGISTER IN THE WRAPAROUND MODE. THE DIAGNOSTIC DOES NOT DO ANY TESTING OF THE RH70 CONTROLLER WHEN IT IS USED ON AN RWP04/5/6 SYSTEM TO TEST RP04/5/6 DISK DRIVES CONNECTED TO THAT TYPE OF CONTROLLER. IT IS ASSUMED THAT THE RH70 SPECIFIC CONTROLLER DIAGNOSTIC HAVE BEEN SUCCESSFULLY RUN TO COMPLETION BEFORE THIS DIAGNOSTIC IS RUN. 2.0 REQUIREMENTS 2.1 EQUIPMENT PDP-11 COMPUTER WITH CONSOLE TELETYPE, AND A RP04/5/6 DISK SYSTEM. THE RP04/5/6 DISK SYSTEM WILL CONSIST OF AN RH11/RH70 CONTROLLER, AND DISK CONTROL LOGIC (DCL), THE CABLE FROM THE DCL CAN BE CONNECTED TO THE MDLI, BUT IF NOT THAT CABLE MUST BE PROPERLY TERMINATED. 2.2 STORAGE THIS PROGRAM REQUIRES 16K WORDS OF MEMORY. 2.3 PREL IMINARY PROGRAMS THIS CAN BE THE FIRST PROGRAM RUN ON AN RJP04/5/6 SYSTEM BUT THE CONTROLLER DIAGNOSTICS MUST BE RUN FIRST IN THE CASE OF AN RWP04/5/6 SYSTEM. 3.0 LOADING PROCEDURE USE STANDARD PROCEDURE FOR LOADING .ABS TAPES 4.0 STARTING PROCEDURE SWITCH 12 MUST BE SET WHEN THIS PROGRAM IS TO BE RUN USING AN RH70 CONTROLLER. IT CAN BE SET AT THE FRON PAEL, OR IN THE SOF TWARE SWITCH REGISTER IF THE OPERATOR SO DESIRES. SE PARAGRAPH 5.1 FOR A DESCRIPTION OF SOF TWARE SWITCH REGISTER OPERATION. SEQ 0004 SEQ 0003 czi cz CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 4.1 MACY11 30A(1052) 27-JUL-78 E 12:41 1 PAGE 6 CONTROL SWITCH SETTINGS SEE SECTION 5.1 4.2 STARTING ADDRESS START AT ADDRESS 200--<FOR NORMAL RUN START AT ADDRESS 204=--TO SELECT NON-DEFAULT ADDRESSES START AT ADDRESS 210===FOR UNIT SELECTION 200 START ALL SWITCHES MUST BE DOWN FOR WORST CASE RUN. WITH THIS STARTING ADDRESS ALL THE RP04/5/6S ON THE SYSTEM WILL BE TESTED ONE AT A TIME BEFORE "END PASS'' IS PRINTED OUT. TESTING WILL START WITH THE LOWEST UNIT NUMBER DRIVE THAT IS POWERED UP (THAT IS THE LOWEST UNIT NUMBER RHAS REGISTER THAT RESPONDS)THEN GO ON TO THE NEXT HIGHER UNIT NUMBER THAT IS POWERED UP. 204 RESTART SAME AS START 200 WITH THE FOLLOWING EXCEPTION: THE PROGRAM WILL INTERROGATE THE OPERATOR FOR A NON-STANDARD C.S.R. AND VECTOR ADDRESS BEFORE STARTING. ONCE THE QUESTIONS HAVE BEEN CORRECTLY ANSWERED, AND IT IS ALSO NECESSARY TO SELECT A PARTICULAR UNIT FOR TEST (TYPICAL PROGRAM EXECUTION FROM ADDRESS 210), THE PROCESSOR MAY BE HALTED AND RESTARTED FROM ADDRESS 210. THE NEW PARAMETERS WILL NOT BE CHANGED UNLESS THE PROGRAM IS AGAIN RESTARTED FROM ADDRESS 204. IF ALL UNITS ARE TO BE CHECKED, THE PROCESSOR NEED NOT BE TOUCHED. THE PROGRAM WILL SUTW}%S?LLY RESTART AT 200 AFTER RECEIVING THE NEW DEVICE 210 START ALL SWITCHES MUST BE DOWN FOR WORST CASE RUN. WITH THIS STARTING ADDRESS THE CONSOLE TELETYPE WILL ASK FOR THE UNIT NUMBER TO BE TESTED. THEN ONLY THAT UNIT WILL BE TESTED FOR EACH PASS OF 4.3 THE PROGRAM. PROGRAM AND/OR OPERATOR ACTION 1. LOAD THE PROGRAM INTO MEMORY. 2. SET STARTING ADDRESS ON THE SWITCH REGISTER 3. PRESS 'LOAD ADDRESS''. 4. SET "OPERATIONAL SWITCH SETTINGS'® (SEE SECTION 5.1) WORST CASE IS ALL SWITCHES DOWN. 5. PRESS ''START', 6. FOR THE FIRST PASS EACH TEST WILL BE EXECUTED ONCE ON THE DRIVES PRESENT OR DRIVE SELECTED BEFORE 'END PASS'' IS PRINTED. THE FIRST PASS WILL REQUIRE OPERATOR SEQ 0005 SEQ 0004 czl czi CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN MACY11 30A(1052) 26-JUL-78 10:10 27-JuUL-78 F3 12:41 PAGE 7 INTERVENTION IF THE PROGRAM IS NOT RUN UNDER AN '‘ACT=11"' MONITOR. THE SECOND AND SUBSEQUENT PASSES WILL EXECUTE EACH TEST FOUR TIMES ON EACH DRIVES PRESENT OR DRIVE SELECTED BEFORE "END PASS'' IS PRINTED. THE SECOND AND SUBSEQUENT PASSES DO NOT NEED ANY OPERATOR INTERVENTION. 5.0 OPERATING PROCEDURE 5.1 OPERATIONAL SWITCH SETTINGS IF THE PROGRAM IS BEING RUN ON A SWITCHLESS PROCESSOR (I. E. AN 11/34) IT WILL DETERMINE THAT A HARDWARE SWTICH REGISTER IS NOT PRESENT, AND WILL USE A "‘SOFTWARE'' SWITCH REGISTER. THE SETTINGS OF THE '‘SOFTWARE'' SWITCHES ARE CONTROLLED THROUGAH A KEYBOARD ROUTINE WHICH IS CALLED BY TYPING A "CONTROL G'. THE PROGRAM WILL RECOGNIZE A °'CONTROL G' AT ANY TIME EXCEPT WHEN IT IS AT A HIGHER PRIORITY PROCESSIHG A RP04/5/6 INTERRUPT. THE "'SOFTWARE'® SWITCH VALUEA ARE ENTERED AS AN 2&7’?% E&I‘BER IN RESPONSE TO A PROMPT FROM THE SWITCH ENTRY NE : 'SWR = NNNNNN NEW =' EACH TIME SWITCH SETTINGS ARE ENTERED, THE ENTIRE SWITCH REGISTER IMAGE MUST BE ENTERED. LEADING ZEROS ARE NOT REQUIRED. 'RUBOUT' AND °'CONTROL U' FUNCTIONS MAY BE USED TO CORRECT TYPING ERRORS DURING SWITCH ENTRY. ON PROCESSORS WITH HARDWARE SWITCH REGISTERS, THE ‘'SOF TWARE'' SWITCH REGISTER MAY ALSO BE USED. 16 SWITCHES IN THE IF THE PROGRAM FINDS ALL "UP' POSITION WHEN IT IS STARTED, ALL SWITCH REGISTER REFERENCES WILL BE TO THE ''SOF TWARE'' REGISTER AND THE PROCEDURES DESCRIBED ABOVE MUST BE FOLLOWED. SWITCH DEFINITIONS ARE GIVEN IN SECTION 9 ‘'OPERATIONAL aglIQECH SETTINGS'' HOWEVER THE DETAIL DESCRIPTION ARE GIVEN SWITCH 15 = HALT ON ERROR WHEN THIS SWITCH IS SET, IF THE PROGRAM FINDS AN ERROR THEN THE APPROPIATE INFORMATION WILL BE PRINTED OUT AND THEN THE PROGRAM WILL HALT. AFTER THIS HALT, PRESSING "'CONTINUE'" WILL CONTINUE WITH THE PROGRAM TILL THE NEXT ERROR IS FOUND WHEN THE SAME THING WILL HAPPEN. SWITCH 14 - LOOP ON TEST WHEN THIS SWITCH IS SET THE PROGRAM WILL BEGIN TO LOOP ON THE CURRENT TEST BEING EXECUTED. FOR EXAMPLE IF THIS SWITCH IS SET WHEN THE PROGRAM IS IN TEST 10 THEN THE PROGRAM WILL KEEP EXECUTING ALL OF TEST 10 REPEATEDLY. ONE WAY TO BE SURE THAT THE PROGRAM IS IN THE EXPECTED TEST IS TO SET THIS SWITCH DURING AN ERROR PRINTOUT OR DURING A PROGRAM HALT. SEQ 0006 SEQ 0005 CZF CZF CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JuL-78 10:10 MACY11 30A(1052) 27-JuUL-78 G 12:41 1 PAGE 8 SWITCH 13 = INHIBIT ERROR TYPEOUTS WHEN THIS SWITCH IS SET FURTHER ERROR PRINTOUTS WILL CEASE, HOWEVER OPERATOR INSTRUCTIONS SUCH AS ''STOP DRIVE X'’ WILL CONTINUE. AT THE END OF PASS '‘TOTAL NUMBER OF ERRORS ON THIS PASS ON DRIVE X'' WILL BE TRUE, THAT IS, ALTHOUGH PRINTOQUTS WERE INHIBITED IF THAT PASS FOUND 6 ERRORS, IT WILL SAY SO. ; SWITCH 12 = RH70 CONTROFLLER SELECT THIS SWICH MUST BE SET AT THE START OF THE PROGRAM WHEN THE DISK DRIVES TO BE TESTED ARE CONNECTED TO AN RH70 CONTROLLER. IT MUST NOT BE SET WHEN DISK DRIVES TO BE TESTED ARE CONNECTED TO AN RH11 CONTROLLER. SWITCH 11 = INHIBIT ITERATIONS WHEN THIS SWITCH IS SET THE PROGRAM ON SECOND PASS WILL &OEER(E.:‘EcT EACH TEST FOUR TIMES BUT WILL DO EACH TEST SWITCH 10 = BELL ON ERROR WHEN THIS SWITCH IS SET, IF THE PROGRAM FINDS AN ERROR THE ‘BELL'' OR "'ALARM'' WILL BE SOUNDED. THIS SWITCH IS USEFUL WHEN SWITCH 11 IS SET YET INFORMATION IS NEEDED WHEN ANY ERROR IS DETECTED. TAKE THE EXAMPLE OF A PROGRAM LOOPING ON A TEST WITH SWITCH 11 SET TO HELP SCOPING. THEN IF THIS SWITCH IS SET AND THE BELL OR ALARM SOUNDS IT MEANS THAT THE ERROR IS PRESENT BUT IF THE BELL OR ALARM STOPS IT MEANS THAT THE ERROR IS NOT PRESENT. SWITCH 9 - LOOP ON ERROR WHEN THIS SWITCH IS SET, IF THE PROGRAM FINDS AN ERROR THEN GENERALLY THE PROGRAM WILL LOOP BACK TO THE LAST EXECUTED '‘SCOPE'' STATEMENT. IF ON THE SECOND TIME THROUGH AN ERROR IS FOUND IT WILL AGAIN LOOP BACK TO THAT ‘‘SCOPE'' STATEMENT. THIS LOOPING WILL CONTINUE AS LONG AS THE ERROR IS PRESENT AND THIS SWITCH IS SET. HOWEVER IF THE ERROR IS NOT PRESENT AT ANY TIME THEN IT WILL CONTINUE NORMALLY WITH THE PROGRAM. EACH TIME THE ERROR IS ENCOUNTERED PRINTOUT WILL TAKE PLACE UNLESS SWITCH 11 IS ALSO SET. THAT SWITCH 11 DURING BEGUG, USING A SCOPE, IT IS RECOMMENDED IS ALSO SET. NOTE: ALSO SEE SECTION 8.3 SWITCH 8 - LOOP ON TEST IN SWR <7:0> THIS IS A SPECIAL SWITCH. WHEN SET SWITCHES O THRU 7 HAVE ONE MEANING AND WHEN RESET SWITCHES O THRU 7 HAVE ANOTHER MEANING. THIS MEANS THAT ANY SETTING OF SWITCH 0 THRU 7 MUST BE DONE WITH SWITCH 8 IN THE APPROPIATE POSITION. WHEN THIS SWITCH IS SET THEN SWITCHES O THRU 7 GIVE THE TEST NUMBER TO BE LOOPED ON. FOR EXAMPLE WITH SWITCH 8 SET AND SWITCH 3 SET THE PROGRAM WILL LOOP SEQ@ 0007 SEQ 0006 CZR CZR CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 MACY11 30A(1052) ON TEST 10. 27-JuL-78 H 12:41 1 PAGE 9 HOWEVER THIS SETTING MUST BE DONE AT THE BEGINNING OF THE PROGRAM THEN ALL THE TESTS FROM 1 TO 10 WILL BE EXECUTED AND THEN TEST 10 WILL BE REPEATED OVER AND OVER AGAIN. WHEN THIS SWITCH IS NOT SET THEN SWITCHES 0 THRU 7 HAVE THE MEAING ITS NAME INDICATES. FOR EXAMPLE SWITCH 7 IS "'STOP FURTHER COMPARES: THAT IS IF SWITCH 8 IS NOT SET AND SWITCH 7 IS SET THEN WHEN A DATA ERROR IS DETECTED NO FURTHER COMPARES WILL BE DONE. FOR EXAMPLE IN A 256 WORD BUFFER IF ALL THE WORDS ARE IN ERROR THEN AFTER SEEING THE PRINTOUT FOR THE FIRST FEW WORDS SETTING SWITCH 7 ONLY WILL STOP FURTHER PRINTOUTS OF THIS ERROR AND GO ON WITH THE TEST RATHER THAN PRINT ALL THE 256 WORDS. HOWEVER IF THIS WAS DONE WITH SWITCH 11 THEN THE NEXT ERROR THAT THE PROGRAM DETECTS IN A_SuB- SEQUENT TEST WILL ALSO BE LOST. BUT WITH SWITCH 7, ONLY THIS GROUP OF DATA ERRORS ARE NOT PRINTED OUT. ANOTHER EXAMPLE OF SWITCH 8 BEING LOW IS WITH SWITCH 6, WHICH IS “ECC TEST-COMPARE END RESULT ONLY''. THAT IS IF SWITCH 8 IS NOT SET AND SWITCH 6 IS SET THEN ON ECC TESTS (TEST 120 THRU TEST 134) INSTEAD OF COMPARING CONTENTS OF THE POSITION REGISTER AND PATTERN REGISTER AFTER EVERY CLOCK, COMPARES WILL ONLY BE DONE AT THE END OF ALL THE CLOCKS. NOTE: ALSO SEE SECTION 8.3 SWITCH 7 - STOP FURTHER COMPARES IF SWO8 IS LOW. IF SWITCH 8 IS SET AND THIS SWITCH IS ALSO SET THEN THIS SWITCH GIVES THE TEST NUMBER TO BE LOOPED ON AS INDICATED IN THE DESCRIPTION OF SWITCH 8. IF SWITCH 8 IS NOT SET AND THIS SWITCH IS SET THEN THE PROGRAM WILL DO AS THE NAME INDICATES. FOR EXAMPLE IN A 256 WORD BUFFER IF ALL THE WORDS ARE IN ERROR THEN AFTER SEEING THE_ERROR PRINTOUTS FOR THE FIRST FEW WORDS THEN SETTING SWITCH 7 WITH SWITCH 8 NOT SET WILL STOP THE PRINTOUT OF ALL 256 WORDS BUT WILL NOT STOP THE PRINTOUT OF ANOTHER ERROR IN ANY SUBSEQUENT TEST. IT IS EXPECTED THAT SWITCH 7 AFTER BEING SET FOR A WHILE TO STOP PRINTING ALL THE 256 WORDS WILL BE RESET AGAIN TO ENABLE THE PRINTING OF OTHER DATA ERRORS. SWITCH 6 = ECC TEST-COMPARE END RESULTS ONLY IF SWO8 IS LOW IF SWITCH 8 IS SET AND THIS SWITCH IS ALSO SET THEN THIS SWITCH GIVES THE TEST NUMBER TO BE LOOPED ON AS INDICATED IN THE DESCRIPTION OF SWITCH 8. IF SWITCH 8 IS NOT SET AND THIS SWITCH IS SET THEN ON ECC TESTS (TEST 120 THRU TEST 134) INSTEAD OF COMPARING CONTENTS OF THE POSITION AND PATTERN REGISTERS AFTER EVERY CLOCK, COMPARES WILL BE DONE ONLY AT THE END OF ALL THE CLOCKS. 5.2 SUB-ROUTINE ABSTRACTS SEE SECTION 9 ''SUBROUTINES' SEQ 0008 SEQ 0007 CZR CZR CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26-JuUL-78 10:10 €.0 27-JuL-78 I 12:41 1 PAGE 10 SEQ 0009 SEQ 0008 CZR CZR ERRORS ERROR PRINTOUTS CONTAIN THE ERROR ADDRESS AND OTHER PERTINENT INFORMATION CONCERNING THE PARTICULAR FAILURE. THIS INFORMATION MAY BE THE CONTENTS OF RELEVANT RP04/5/6 REGISTERS OR GOOD/RECEIVED DATA. IF THE ERROR OCCURRED IN A SUBROUTINE, THE ADDRESS OF THE SUBROUTINE CALL IS ALSO GIVEN. REFER TO THE PROGRAM LISTING AT THE STATED ADDRESS TO DETERMINE THE CAUSE OF THE ERROR. 6.1 "FATAL' ERRORS IN THE EVENT THAT THE DISK DRIVE BECOMES UNAVAILABLE TO THE CONTROLLER, POWERS DOWN, OR CERTAIN CRITICAL STATUS BITS CANNOT BE CLEARED PRIOR TO THE START OF A TEST SEQUENCE - THIS INFORMATION WILL BE COMMUNICATED TO THE OPERATOR. IN ADDITION THE TTY BELL WILL RING AND THE PROGRAM WILL HALT. IT IS SUGGESTED THAT IF THIS HAPPENS THE OPERATOR LOAD ADDRESS 200 (210) AND RESTART THE PROGRAM AS A FIRST ATTEMPT TO SOLVE THE PROBLEM. IF THE FAILURE CONTINUES TO OCCUR, LOOK IN THE TEST LISTING FOR THE 'HALT' INSTRUCTION AND REPLACE IT PLUS THE TWO WORDS ('TYPE ,CPHALT'') ABOVE WITH 'NOP'S. WITH TTY ERROR PRINTOUTS INHIBITED A SCOPE LOOP CAN BE INITIATED FOR THE TEST IN QUESTION. IT IS ALSO POSSIBLE TO CONTINUE FROM THE HALT POINT, BUT IT IS NOT RECOMMENDED AS ALL FOLLOWING TESTS WILL EXHIBIT THE SAME SYMPTOMS AND GIVE MISLEADING ERROR PRINTOUTS. THE DCL TO THE MDLI MUST BE PROPERLY TERMINATED. SWITCH 12 MUST BE SET WHEN RUNNING ON AN RH70 CONTROLLER AND IT MUST NOT BE SET WHEN RUNNING ON AN RH11 CONTROLLER. BECAUSE OF THE REQUIREMENT FOR IT TO BE SET WHEN USING AN RH70, THE PROGRAM CANNOT BE RUN IN CHAIN MODE WHEN USING THE SOF TWARE SWITCH REGISTER FEATURE WHILE RUNNING ON AN RH70. THIS IS BECAUSE THE ROUTINE WHICH GETS ‘'SOF TWARE'' SWTICH SETTINGS IS NOT OPERABLE WHEN IN CHAIN MODE. 8.0 MISCELLANEOUS 8.1 EXECUTION TIME THE FIRST PASS OF THE PROGRAM WILL TAKE 30 SECONDS PER DRIVE. SUBSEQUENT PASSES WILL TAKE 1 MINUTE. 8.2 STACK POINTER THE STACK IS INITIALLY SET TO 1000 —d —d ol BUT NEVER LEAVE IT IN THE PROGRAMMABLE STATE. IF THERE IS NO DRIVE CONNECTED THEN THE CABLE NORMALLY GOING FROM ) IF THERE IS A DRIVE CONNECTED THEN THE OPERATOR MUST HAVE THE DRIVE PORT SWITCH LOCKED EITHER ON PORT A OR PORT B ) — RESTRICTIONS D 7.0 — v CZRJGC.PN MACY11 30A(1052) 26=JUL-78 10:10 27-JuL-78 Jd 12:41 1 PAGE 11 SEQ 0010 SEQ 0009 CZR. CZR. D D D HERE IS A DETAILED EXPLAINATION OF HOW THE LOOP ON ERROR WORKS. FOR INSTRUCTIONS REGARDING USAGE OF THIS TECHNIQUE, HIT *C ANY TIME WHILE THE PROGRAM IS RUNNING. ON HITTING AN ERROR IF THE LOOP ON ERROR SWITCH IS SET, THE PROGRAM GOES BACK = USUALLY BACK TO THE BEGINNING OF THE TEST. D e OPERATOR SELECTABLE SCOPE LOOPS —_—d 8.3 D D CZRJGC.PN MACY11 30A(1052) L~~~ L~ S S~ L~ CZRJGCO,RPO4/5/6 DSKLS CTRLRT WHEN THIS OPERATOR SELECTABLE SCOPE LOOP IS USED THEN THE POINT THE PROGRAM GOES BACK TO CAN BE CHANGED. THE RESTRICTIONS TO THE POINT WHERE THE PROGRAM CAN GO ARE: 1. IT MUST BE WITHIN THE TEST UNDER CONSIDERATION LOOP ON ERROR SWITCH MUST BE SET 2. 3. THE ERROR MUST OCCUR WITHIN THE TEST UNDER CONSIDERATION IF THE ERROR DOES NOT OCCUR WITHIN THE TEST UNDER CONSIDERATION THE PROGRAM WILL REVERT TO NORMAL OPERATION. HOWEVER, IF LOOP ON TEST SWITCH IS SET AND THIS OPERATOR SELECTABLE SCOPE LOOP IS USED THEN THE PROGRAM WILL LOOP BACK TO THE SELECTED POINT WHEN IT COMES TO THE END OF THE TEST UNDER CONSIDERATION. AFTER LOOPING FOR SOME TIME IF THE LOOP SWITCH IS PUT DOWN THEN NORMAL OPERATION WILL CONTINUE. 8.4 PROGRAM REVISION HISTORY 9.0 PROGRAM DESCRIPTION THE FOLLOWING SECTIONS DESCRIBE EACH TEST AND SUBROUTINES IN DETAIL AND CAN ALSO BE USED AS AN INDEX TO THE LISTING. THE LEFT MOST COLUMN IS THE LINE NUMBER WITHIN THE LISTING gHERE THAT ITEM WILL BE FOUND. ;3 o 1 EXTERNAL SYSMAC.SML SYSTEM MACRO PACKAGE WHICH MUST BE MADE AVAILABLE TO THE SOURCE PROGRAM AT ASSEMBLY TIME. e e e e e e i e o 'NOTE MACROS BEGINNING WITH '*.$'" ARE SUPPLIED BY AN d b d o :*ttttt'fitttttt*tttttttfitttt"'tttitt — e ;*INTERNAL PROGRAM MACROS BEGIN HERE D d ;*DRIVE MUST BE LOCKED ON PORT A OR PORT B CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 BASIC DEFINITIONS K 12:41 1 PAGE 12 SEQ 0011 SEQ 0010 D A e e S e R R e e i e d-fl—lda—l—l—ld—l—l—l_‘—l—l—l—ld—l—)-‘—l-‘d-—l—l—ld—‘_‘-—l-—l—l—l—l—l—l—d—‘-fl—.—l—l—l-—b-fl-fl—l 502 506 507 000046 000052 041406 020000 $ENDAD .WORD ;;SOF TWARE DISPLAY REGISTER ;;SOFTWARE SWITCH REGISTER 20000 ;s1)SET LOC.46 TO ADDRESS OF S$ENDAD IN .SEOP ;:2)SET LOC.52 TO 20000 STARTING ADDRESS B .SBTTL 0 0 D DISPREG: .WORD .WORD SWREG: ~ Ay 000000 000000 CZR CZR - 000174 000176 SEQ 0012 SEQ 0011 e 503 504 1 PAGE 13 U TRAP CATCHER L 12:41 Hyou 27-JUL-78 e MACY11 30A(1052) —J—l—l—d-l—l-‘—‘—l—j—l—l—l-‘—l—l—d—l—h—)-j—l—l—l—l—‘—‘-‘—l-l—l..)-b—l—l—l-)—l—l—l-ld—l—l-l—l-l-d—l—-.-l-‘ — CZRJGCO,RPQ4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 G SSe QABEGINZ ;NORMAL START sMODIFY ADDRESSES sSELECT DRIVE START ;**STARTING ADDRESS 210 WILL TEST ONLY ONE SPECIFIED DRIVE o de ;**STARTING ADDRESS 204 FOR PARAMETER MODIFICATION, ;**«RESTART AUTOMATICALLY FROM 200 AFTER PARAMETER MODIFICATION. e e ;**«THIS WILL TEST ALL DRIVES ON THE SYSTEM A SINGLE DRIVE AT A TIME Jenp ;**«STARTING ADDRESS 200 FOR NORMAL STARTS e e e JMP a#BEGIN a#BASECH Med o7 .=200 RA: JMP ADDMOD: JMP Shan 000210 000137 000137 004240 046244 004230 G- 514 000200 000137 e 000200 pe 512 T X DD ST . o R TR R DD D = D ) D .=1110 CZR. — e MEMORY MANAGEMENT DEF INITIONS SEQ 0013 SEQ 0012 ) D d e = PAGE 14 e e e e M1 12:41 e 001110 27-JUL=78 e 525 526 MACY11 30A(1052) — CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=JuL-78 10:10 CZRJGC.PN XXV $AUTOB: $INTAG: g SWR: DISPLAY: $TKS: $TKB: $TPS: $TPB: DDISF $BELL: $QUES: $CRLF: $LF: : RESERVED=-NOT TO BE USED s ;AUTOMATIC MODE INDICATOR ;; INTERRUPT MODE INDICATOR ;;ADDRESS OF SWITCH REGISTER ;;ADDRESS OF DISPLAY REGISTER ;:TTY KBD STATUS ::TTY PRINTER STATUS REG. ADDRESS n $REGAD: $REGO: $REG1: $REGZ2: $REG3: : $REG4 $REGS: $TMPO: $TMP1: $STMP2: $TMP3: $TMPS: $TMPS: 000377 .ASCIZ .ASCII .ASCII .ASCIZ ;:TTY PRINTER BUFFER REG. ADDRESS :;CONTAINS NULL CHARACTER FOR FILLS :2CONTAINS # OF FILLER CHARACTERS REQUIRED ;2 INSERT FILL CHARS. AFTER A ‘LINE FEED'' FLAG (BIT<07>=0=YES) ;2" 'TERMINAL AVAILABLE'® :2CONTAINS THE ADDRESS FROM :2CONTAINS ((SREGAD)+0Q) ::CONTAINS ((SREGAD)+2) ;2CONTAINS ((SREGAD)+4) ) +6) ;;CONTAINS ((SREGAD ::CONTAINS ((SREGAD)+10) ::CONTAINS ((SREGAD)+12) ;2USER DEF INED : JUSER DEF INED :2USER DEF INED : ;USER DEF INED ;2USER DEF INED 2 ;USER DEF INED :2MAX. NUMBER OF ITERATIONS :;ESCAPE ON ERROR ADDRESS <207><377><377> ;:;CODE FOR BELL /?/ :2QUESTION MARK <15> ;;CARRIAGE RETURN <12> ::LINE FEED SEQ 0014 SEQ 0013 D - —d D ARAININIAIA YA ;;CONTAINS PASS COUNT :2CONTAINS THE TEST NUMBER 2 ;CONTAINS ERROR FLAG ;2CONTAINS SUBTEST ITERATION COUNT ;2CONTAINS SCOPE LOOP ADDRESS ;2CONTAINS SCOPE RETURN FOR ERRORS ;;CONTAINS TOTAL ERRORS DETECTED :2CONTAINS ITEM CONTROL BYTE ;;CONTAINS MAX. ERRORS PER TEST ;2CONTAINS PC OF LAST ERROR INSTRUCTION ;2CONTAINS ADDRESS OF 'GOOD' DATA :2CONTAINS ADDRESS OF 'BAD' DATA ;;CONTAINS 'GOOD' DATA ::CONTAINS °'BAD' DATA ;:TTY KBD BUFFER SNULL: $FILLS: $FILLC: $TPFLG: $TIMES: : $ESCAPE 1 PAGE 15 — o . N 12:41 AR .WORD .BYTE .BYTE [elelelelelelelalelelolelelelolNle] D D D _ COMMON TAGS $PASS: STSTNM: $ERFLG: S$ICNT: $LPADR: $SLPERR: $ERTTL: SITEMB: : SERMAX $ERRPC: $GDADR: $BDADR: : $GDDAT $BDDAT: 000000 000 000 _a 88 rrmoR R 001100 001102 001103 MACY11 30A(1052) [elelelelelelelelelellolelelelelelels) CZRJIGCO,RP04/5/6 DSKLS CTRLR1 26~JUL-78 10:10 CZRJIGC.P11 27-JuL-78 _ CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuUL=78 10:10 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 gg% 594 595 596 597 598 599 001226 001230 057460 062733 001232 001234 067312 070030 001236 057543 001240 066070 MACY11 30A(1052) 27-JuL-78 ERROR POINTER TABLE ;*ITEMT EM] DH1 DT DF 1 ;*1TEM2 602 282 001242 001244 067672 001246 057543 609 610 611 612 613 614 001250 065645 619 001252 067646 25§ 001256 057543 626 001260 065442 628 629 630 DATA COMMAND :PC :PC OF JSR :TEST NO :WORD NO. :GOOD DATA :CONTENTS OF RHCS] DF33 s*ITEM3 :CONTENTS OF RHER1 : SERRPC ,PCJSR, STSTNM, ERWORD , $GDDAT, CS1,DS1,ER1 001254 070167 1 1 1 1 1 1 1 1 1 1 1 ]1 1 ] 1 1 1 1 1 1 W 1 1 1 ! 1 EM2 :ERROR ON DH32 :PC :PC OF JSR :TEST NO :WORD NO. :GOOD DATA :BAD DATA DATA COMMAND D132 :$ERRPC ,PCJSR, STSTNM, ERWORD , SGDDAT , $BDDAT, CS1,DS1,ER1 EM2 :ERROR ON DF32 ;*I1TEM4 CZF CZF :0,0,0,1,0,0,0.0 :CONTENTS OF RHCS! :CONTENTS OF RHDS] :CONTENTS OF RHERT 622 627 :WRONG DATA IN READING OR WRITING HARDWARE REGISTER :PC :REG. ADDR. :GOOD DATA :RECEIVED DATA : SERRPC ,REGADR , SGDDAT , SBDDAT :0,0,0,0.0 DH33 615 616 g}g 623 SEQ 0015 SEQ 0014 :ERROR ON DT33 070200 ggg gg$ PAGE 16 :CONTENTS OF RHDS1 605 606 2 EM2 600 601 B 12:41 DH31 :0,0,0,1,0,0,0,0.0, :PC ;TEST NO :WORD NO. :GOOD DATA :BAD DATA DATA COMMAND CZRJGCO.RPO4/5/6 DSKLS CTRLRT CZRJGC.» 1 26=JUL-78 10:10 MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE 632 :CONTENTS OF RHDS1 001262 067624 001266 001270 001272 001274 000000 000000 067624 070157 223 001276 057572 650 651 652 653 654 655 656 001300 065645 001264 070157 ;] TEM6 1 0 0 DT31 DF 31 3 3 :$ERRPC,$TSTNM, ERWORD , $GDDAT , $BDDAT,CS1,DS1,ER1 ;0,0,1,0,0,0,0,0, EM6 :ERROR ON WRITE HEADER AND DATA 1 } DH32 :PC :PC OF JSR :TEST NO ;WORD NO. :GOOD DATA :BAD DATA :CONTENTS OF RHCS1 1 1 1 1 1 1 1 1 :0,0,1,0,0,0,0,0, :CONTENTS OF RHDS1 :CONTENTS OF RHER1 067646 070167 001306 001310 057572 063056 001312 001314 067340 070041 001316 001320 000000 000000 001326 001330 057631 063201 DT32 DF 32 :$ERRPC ,PCJSR,STSTNM, ERWORD , $GDDAT , $BDDAT,CS1,DS1,ER1 :0,0,0,1,0,0,0,0,0, EM6 DH2 DT3 DF3 :ERROR ON WRITE HEADER AND DATA :PC :TEST NO :WORD NO. :GOOD DATA :BAD DATA :$ERRPC,$TSTNM, ERWORD , $GDDAT , $BDDAT :0,0,1,0,0, 0 0 3 2 EM11 DH11 :CONTROLLER OR DRIVE STATUS :PC :TEST NO 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 239 001322 001324 682 683 684 685 686 :*]TEM7 :*ITEM10 067340 070041 DT3 DF3 x]TEM11 1 :$SERRPC,$TSTNM, ERWORD , $GDDAT , $BDDAT,(CS1,DS1,ER1 ggg 001302 001304 1 DT31 DF 31 ;%] TEMS CZR CZR } 657 660 gg; SEQ 0016 SEQ 0015 :CONTENTS OF RHER1 ggz 636 637 638 639 640 641 642 643 644 645 646 647 PAGE 17 :CONTENTS OF RHCS1 631 635 B 12:41 :$ERRPC,$TSTNM, ERWORD , $GDDAT , $BDDAT :0,0,1,0,0, 1 1 1 1 1 1 1 1 1 ] } CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL-78 10:10 MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE 687 688 689 690 691 692 693 694 695 696 ggg 001332 001334 067354 070046 001336 057631 699 700 701 702 703 704 705 706 001340 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 ;3? 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 DT11 DF11 *ITEM12 D 12:41 2 PAGE 18 1 1 1 1 :$ERRPC,$TSTNM, $BDADR,CS1,CS2,DS1,ER1 ;0,0,0,0,0,0 1 1 1 1 1 } :CONTENTS OF RHER1 :WRONG DATA FROM SILO 062733 DH1 001342 001344 067312 070030 DT1 DF1 :PC :REG.ADDR :GOOD DATA :RECEIVED DATA :$ERRPC ,REGADR, $GDDAT , $8DDAT ;0,0,0,0 001346 001350 000000 000000 001354 070030 001352 001356 001360 067312 057404 043361 0 0 CZR CZR :FAILING REG. ADDR :CONTENTS OF RHCS1 :CONTENTS OF RHCS2 :CONTENTS OF RHDS1 EM11 :*ITEM13 SEQ 0017 SEQ 0016 1 1 1 1 1 1 1 1 1 1 1 1 DT1 :$ERRPC, TSTNM,REGADR, $SGDDAT , $SBCDAT EM14 DH14 :REGISTER FAILED :PC :FAILING REG. ADDR :CONTENTS OF FAILING REG. :CONTENTS OF RHCS1 :CONTENTS OF RHCS?2 1 1 1 1 1 1 1 1 1 1 :$ERRPC, $8DADR, $BDDAT,(S1,€S2,DS1,ER1 :0,0,0,0,0,0,0 1 } :SPECIFIED REG. NON EXISTANT SO ABORT ;PROGRAM :PC :ADDR. OF REG :$ERRPC, TEMP1 ;0,0 1 1 1 1 1 1 1 1 DF1 xITEMIS 330 001362 (087374 001364 9072055 DT14 DF14 *]TEM1S 001366 057704 001370 063561 DH15 001372 001374 067416 070065 DT15 DF15 001376 001400 057755 063612 :*ITEM16 EM1S EM16 DH16 :0,0,0,0,0 :CONTENTS OF RHDS1 :CONTENTS OF RHER1 :WAIT LOOP FAILED :PC :WAT PC :BIT WANTED :REG. ADR. ;REG. CONT. 1 1 1 001402 CZR PO, $SBDDAT :$SERRPC,$TMP3,$TMP1,$TM DF16 :0,0,0,0 EM17 DH17 JWRITE CHECK :PC sTEST NO ;CONTENTS OF ;CONTENTS OF s CONTENTS OF 001422 001424 :REGISTER FAILING :i;gT - DF20 ;CONTENTS OF RHER1 ;CONTENTS OF RHERZ2 ;CONTENTS OF RHER3 ;CONTENTS OF RHAS ;CONTENTS OF RHDS1 :$ERRPC,TSTNM ER1,ER2,ER3,AS,DS1 ;0,0,0,0,0,0,0 EM21 ;s INTERRUPT FAILING DT20 067464 070104 ;*ITEM21 001426 001430 060043 064323 780 781 001432 001434 067504 070113 785 001436 060065 DH21 DT21 DF21 ;*]TEM22 EM2 791 001440 064443 DHZ2?2 795 796 001442 001444 067520 070120 D122 DF22 :PC ;TEST NO ;CONTENTS OF RHCS1 ;CONTENTS OF RHAS ;CONTENTS OF RHDS1 :$ERRPC,TSTNM,CS1,AS,DS1 :0,0,0,0,0 ;ERROR IN DRIVE PRESENT - :LOOKING AT RHAS AND RHCS2-NED(BIT#12) :DRIVES PRESENT DO NOT AGREE :NOTE: ON DUAL PORT SYSTEM :DRIVE ON OTHER PORT WILL NOT GIVE NED :HENCE THERE WILL BE A MISSMATCH :PC ;TEST NO :RHAS UNIT (RHER1 BITS SET) ;RHCS2 UNIT ('NED' BIT TEST) ;$ERRPC,TSTNM ;0,0 P PP EM20 DH20 —p————— -~ ;*]TEM20 ;0,0,0,0,0,0,0 S 001420 DF17 T ST T SO ST YO SO S 060022 064140 DT17 RHBA RHDB RHWC ;CONTENTS OF RHCS1 ;CONTENTS OF RH(CS2 :$ERRPC,$TSTNM,$BA,DB, WC,(CS1,CS2 T U SO YO 001416 FAILING SORAE O S 761 J*ITEM17 U 067444 070075 774 775 CZR O 057776 063755 001412 001414 769 770 SEQ 0018 SEQ 0017 N 001406 001410 756 757 762 DT16 067426 070070 2 PAGE 19 P 001404 E 12:41 T 743 744 745 746 747 748 749 MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE L CZRJGCO,RPO&/5 /6 DSKLS CTRLR1 CZRJGC.PI 26=JUL-78 10:10 000000 000000 001456 060545 J*ITEM 24 EM24 810 001460 064546 DHZ24 816 g}g 001462 001464 067526 070124 DT24 DF 24 819 820 821 001466 060640 ;*]TEM 25 EM25 823 824 825 826 827 828 001470 064546 DH24 830 831 g%% 001472 001474 067526 DT24 802 803 804 805 806 807 808 809 811 812 813 814 815 822 829 834 835 836 001452 001454 000000 000000 070124 001476 057631 001500 064731 0 0 0 0 :*]TEM26 DF 24 PAGE 20 :NO LONGER USED DUE TO SPECIAL °'NED’ :TEST TABLE TYPE OUT ROUTINE ;LOOK AHEAD REGISTER AT THE ;BEGINNING OF A SECTOR IS IN s ERROR ;PC ;RHDST ;BAD RHLA ;GOOD RHLA ;SECTOR NO ;SECTOR CLOCK :$ERRPC,DST ,$BDDAT ,$TMP1,$TMP2 ,$TMP3 ;0,0,0,0,0 ;LOOK AHEAD REGISTER IS ;IN ERROR ;PC ;JRHDST ;BAD RHLA ;GOOD RHLA ;SECTOR NO ;SECTOR CLOCK ;$ERRPC ,DST,$BDDAT ,$TMP1,$TMP2,$TMP3 :0,0,0,0,0 EM11 ;CONTROLLER OR DRIVE STATUS DH26 ;PC ;PC OF JSR JFAILING REGISTER ADDRESS 837 838 839 :CONTENTS OF RHCS1 :CONTENTS OF RHCS?2 :CONTENTS OF RHDS1 :CONTENTS OF RHER1 gz? 001502 001504 067546 070133 847 gzg 001506 057460 001510 065134 DT26 DF 26 :$ERRPC ,PCJSR,$BDADR,(S1,(S2.DS1,ER1 ;0,0,0,0,0,0, EM1 :ERROR IN READING OR WRITING HARDWARE REGISTER DH27 :PC ;PC OF JSR :TEST NUMBER :FAILING REGISTER .GOOD DATA SEQ 0019 SEQ 0018 R 842 843 s*]TEM27 B 850 851 852 853 854 S S 844 845 846 2 — —d R —Y R S N W N W —g —Y Y Y —Y e bttt ;*]1TEM23 001446 001450 F 12:41 S 799 800 801 MACYT1 30A(1052) 27-JUL-78 ERROR POINTER TABLE e CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL~-78 10:10 CZRJGCO,RPO&/S5 /6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE 2 PAGE 21 SEQ 0020 SEQ 0019 SJRECEIVED DATA 857 858 001512 001514 067570 070143 863 864 001516 001520 060700 065277 ;=1 TEM30 D127 DF27 , $GDDAT , $8DDAT ;$ERRPC ,PCJSR, TSTNM,REGADR L ’ol ’ ’ ’ EM30 DH30 ;ggnnsnr CYLINDER DOES NOT REFLECT DESIRED CYLINDER REG. ‘PC OF JSR *REGISTER ADDRESS 1GOOD DATA :BAD DATA DT30 DF 30 R, , $BDDAT EGAD $GDDAT s$ERRPC ,PCJSR,R E ;ECC GENERATED IS INCORRECT 066273 DH34 :PC 001532 067714 DT34 :$ERRPC,TSTNM,GECC1,GECC2,WECCT ,WECC2,DISK 889 001534 070210 DF 34 ;0,0,0,0,0,0,0 893 001536 061144 EM32 ;ON READ COMMAND AFTER DATA AND ECC HAVE BEEN READ ;ECC REGISTER OR RHER1 IS IN ERROR sONLY LOWER 11 BITS OF PATTERN REGISTER 870 871 001522 001524 067606 070151 876 001526 061021 879 001530 887 s*1TEM31 ;*x]TEM32 . . ’ . . ;EVERY WORD IN THIS SECTOR IS GIVEN IN 'DATA USED"’ ;TEST NUMBER ;GOOD ECC1 ;GOOD EC2C JWRITTEN ECCT JWRITTEN ECC2 ;DATA USED ;CAN BE READ ;THIS SHUOLD MATCH LOWER 11 BITS OF ECC1 899 001540 066456 ' DH35 ;PC :TEST NUMBER ;GO0OD ECC1 :GOOD ECC2 :PATTERN REGISTER sRHER1 906 001542 067734 DT35 ;$ERRPC,TSTNM,GECC1,GECC2,EC2,ERT 908 001544 070217 DF 35 :0,0,0,0,0,0 001546 001550 061433 066661 27-JUL-78 ERROR POINTER TABLE ;*1TEM33 EM33 DH36 H 12:41 2 PAGE 22 SEQ 0021 SEQ 0020 :géGH COUNT BIT NOT HIGH AFTER 38859 CLOCKS ;PC OF JSR ;TEST NUMBER ;RHMR ;POSITION REG. sPATTERN REGISTER 001552 067756 D136 s$ERRPC ,PCJSR, TSTNM,MR EC1,EC2 001554 070227 DF 36 ;0,0,0,0,0.0 001556 061505 EM34 ;ZERO DETECT BIT NOT HIGH WHEN THE 232 BIT ECC REGISTER HAS ITS 21 BITS ;*ITEM34 ;OF ZEROS ;ERROR PRINTOUT WILL CONTINUE TILL 001560 DH36 066661 ;gERO DETECT BIT IS HIGH ;PC OF JSR ;TEST NUMBER :RHMR ;POSITION REG. ;PATTERN REGISTER 001562 067756 DT36 ;$ERRPC ,PCJSR,TSTNM MR EC1,EC2 001564 070227 DF 36 :0.0,0,0,0,0 001566 061600 EM35 ;POSITION REGISTER OR 11 BITS OF ;*ITEM35 ;PATTERN REGISTER INCORRECT ;LOWER 11 BITS OF PATTERN REGISTER 2SHOULD MATCH LOWER 11 BITS OF GOOD ECC1 ;DATA ENVELOPE AND N-CODE ZEROS ARE IN DECIMAL 001570 067020 DH37 ;PC ;TEST NUMBER ;ECC POSITION ;GOOD POSITION ;GOOD ECC1 ;GOOD ECC2 :ECC PATTERN ;DATA ENVELOPE ;N-CODE ZEROS 001572 067774 DT37 ;$ERRPC,TSTNM,EC1,POSITI,GECCT,GECC2,EC2,DATENV,ZCODE 001574 070235 DF 37 :0,0,0,0,0,0,0,0.0 CZRJ CZRJ et et mi m i miml Ml ml mi mimi el ml Al al Al al A el alRALALIALALALALALALALALALALALALALALALALALALALALALNILALA 911 912 913 914 915 916 917 MACY11 30A(1052) -l—l.—)-‘—i—l—l—l—l—h—&—h-—l—'—l—‘—l—.—d—l—l—l—l—l—ld—ld—I-J—l—h-‘—‘-fl-‘—i-‘_l-—l-—l—l_.—‘—d.fl - CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=JuL-78 10:10 CZRJGC.P1 15 DH35 :ON A READ COMMAND WITH NON CORRECTABLE ;ERROR INSERTED DCK AND ECH SHOULD BE SET :PC ;TEST NUMBER ;GOOD ECC1 ;GOOD ECC2 :PATTERN REGISTER ;POSITION REGISTER ;RHER1 001602 067734 DT35 ;$ERRPC,TSTNM,GECC1,GECC2,EC2,ECT,ERT 001604 070217 DF 35 :0,0,0,0,0,0.0 EM37 :ggf ERROR 001606 001619 062210 063201 001612 001614 067354 070046 001616 062345 001620 067236 001622 001624 ;*1TEM37 DH11 DT11 ;*]TEM4O :TEST NO :FAILING REG. ADDR :CONTENTS OF :CONTENTS OF :CONTENTS OF :CONTENTS OF RHCS1 RHCS2 RHDS1 RHER1 :SERRPC ,$TSTNM, $8DADR, CS1,(S2,DS1,ER1 DF11 :0,0,0,0,0,0 EM4O :RHWC DID NOT = 0 AFTER A READ OR ;WRITE HEADER AND DATA DH40 DT40 DF40 070020 070246 y ;PC ;TEST NO ;CONTENTS OF RHWC :$ERRPC,TSTNM, $8DDAT :0,0,0 ;*RH11/RH70 REGISTERS ;*WORD COUNT REGISTER (RHWC) ;*EACH BIT IS CALLED BY BIT NUMBER ;*BUS ADDRESS REGISTER (RHBA) ;*EACH BIT IS CALLED BY BIT NUMBER ;*CONTROL AND STATUS REGISTER 2 (RH(CS2) 000001 000002 000004 000010 us1= us2= US4= BAI= 1 2 4 10 JUNIT SELECT JUNIT SELECT JUNIT SELECT ;BUS ADDRESS (BIT #0) (BIT #1) (BIT #2) INCREMENT INHIBIT (BIT #3) P EM36 S—"—————— 066456 SEQ 0022 SEQ 0021 PAGE 23 W 001600 ;=] TEM36 2 N 062077 ERROR POINTER TABLE I 12:41 —l—l—l—-l—l_l—l—l—l—l—d—b—d.—i—l—l-‘ RN N N 001576 27-JUL-78 MACY11 30A(1052) AMALALALALALAWIA L LA LALALALA LAY WY Y L o AT AL CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 26-JuL-78 10:10 CZRJGC.PN 1€ 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 NEM= NED= UPE= WCE= DLT= 4000 10000 20000 40000 100000 MXF = PGE= 1000 2000 ;PROGRAM ERROR (BIT #10) :NON EXISTANT MEMORY (BIT #11) sNON EXISTANT DRIVE (BIT #12) ;UNIBUS PARITY ERROR (BIT #13) :WRITE CHECK ERROR (BIT #14) ;DATA LATE (BIT #15) ;*DATA BUFFER REGISTER (RHDB) s*EACH BIT IS CALLED BY BIT NUMBER S ;*CONTROL AND STATUS 1 REGISTER. (#00) O O e Y S ;*RP04 REGISTERS R _— 40 100 200 400 P CLR= IR= OR= MPE= ;INVERT PARITY ON MASS BUS TO EVEN (BIT #4) ;CLEAR (BIT #5) s INPUT READY (BIT #6) :OUTPUT READY (BIT #7) :MASS BUS PARITY ERROR (BIT #8) :MISSED TRANSFER ERROR (BIT #9) P 20 CZRJ CZRJ P PAT= SEQ 0023 SEQ 0022 ————"—— = p—— PP P ERROR POINTER TABLE 2 PAGE 24 onoooocooonooonooooooonooooooonooonocrorr O O o 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 27-JUL-78 MACY11 30A(1052) GO= 1E= RDY= Aib= A17= PSEL= DVA= MCPE= TRE= SC= 1 100 200 400 1000 2000 4000 20000 40000 100000 ;G0 (BIT #0) ; INTERRUPT ENABLE (BIT #6) :READY (BIT #7) ;HIGH ORDER UNIBUS BITS (BIT #8) ;HIGH ORDER UNIBUS BITS (BIT #9) ;PORT SELECT (BIT #10) ;DEVICE AVAILABLE (BIT #11) :MASSBUSS PARITY ERROR (BIT #13) ;TRANSFER ERROR (BIT #14) :SPECIAL CONDITION (BIT #15) ;*STATUS REGISTER (RHDS1) (#01) DPR= PROG= LST= WRL= MOL = PIP= 1 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 ATA= 100000 DF 5= DFF20= DIGB= GRV= DL64= DE1= Vv= DRY= ERR= 40000 (BIT #0) ;DRIVE FORWARD 5'°/SEC. (BIT #1) ;DRIVE FORWARD 20'"/SEC. ;DRIVE TO INWER GAVRD BAND (BIT #2) ;GO REVERSE (BIT #3) :DIFFERENCE LESS THAN 64 (BIT #4) ;DIFFERENCE EQUALS 1 (BIT #5) :VOLUME VALID (BIT #6) :DRIVE READY (BIT #7) :DRIVE PRESENT (BIT #8) :PROGRAMABLE (BIT #9) ;LAST SECTOR TRANSFERRED (BIT #10) :WRITE LOCK (BIT #11) :MEDIUM ON-LINE (BIT #12) :POSITIONING OPERATION IN PROGRESS (BIT #13) ;COMPOSIT ERROR. (BIT #14) :ATTENTION ACTIVE (BIT #15) . *ERROR ?EGISTER #01 (RHER1) (#02) ;ILLEGAL FUNCTION (BIT #0) ILF= RN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=-JuL-78 10:10 CZRJGC.P1T 1€ CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGL.P11 26-JUL=78 10:10 1079 1080 1081 1082 1083 1084 1085 106 1087 1088 1089 1090 1091 1092 }ggz 000002 000004 000010 000020 000040 00010 00020 000400 001000 002000 004000 010000 020000 040000 100000 }83g 000001 000002 000004 000010 000020 000040 000200 000400 001000 000001 000002 000004 000010 000020 000040 000100 000200 ILR= RMR= PAR= FER= WCF= ECH= HCE= HCRC= AOE= IAE= WLE= DTE= OPI= UNS= DCk= 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 100000 K 12:41 2 PAGE 25 ;ILLEGAL REGISTER (BIT #1) :REGISTER MODIF ICATION REFUSED (BIT #2) :PARITY ERROR (BIT #3) ;FORMAT ERROR (BIT #4) :WRITE CLOCK FAIL (BIT #5) ;ECC HARD ERROR (BIT #6) :HEADER COMPARE ERROR (BIT #7) :HEADER CRC ERROR (BIT #8) :ADDRESS OVERFLOW ERROR (BIT #9) ;INVALID ADDRESS ERROR (BIT #10) :WRITE LOCK ERROR (BIT #11) :DRIVE TIMING ERROR (BIT #12) ;OPERATION INCOMPLETE (BIT #13) :DRIVE UNSAFE (BIT #14) :DATA CHECK ERROR (BIT 15) —d ) —d d D e e e e e e ) e o ) D — e —d e ) —d d d e SEQ 0024 SEQ 0023 CZRJ CZRJ 16 16 16 16 16 16 16 16 16 16 16 16 16 16 }g ;*MAINTAINABILITY REGISTER (RHMR) (#03) }2 DMD= MCLK= MINX= MSTCK= MRD= MWR= DENVL= ZER= DTSY= 16 16 16 16 16 16 16 16 }g 1 2 & 10 20 40 200 400 1000 :DIAGINOSTIC MODE (BIT #0) :MAINTAINABILITY CLOCK (BIT #1) :MAINTAINABILITY INDEX (BIT #2) :MAINTAINABILITY SECTOR CLOCK (BIT #3) :MAINTAINABILITY READ (BIT #4) :MAINTAINABILITY WRITE (BIT #5) :DATA ENVELOPE (BIT #7) :ZERO DETECT (BIT #8) :MAINTAINABILITY SYNC DETECTED (BIT #9) ;*ATTENTION SUMMARY PSEUDO-REGISTER (RHAS) (#04) }g ATO= AT1= AT2= AT3= AT4= ATS= ATé= AT7= 1€ 1€ 1€ 16 16 16 17 }; 1 2 & 10 20 40 100 200 :DEVICE 0 (BIT #0) :DEVICE 1 (BIT #1) :DEVICE 2 (BIT #2) :DEVICE 3 (BIT #3) :DEVICE 4 (BIT #4) :DEVICE 5 (BIT #5) :DEVICE 6 (BIT #6) :DEVICE 7 (BIT #7) e D D D b LN D e LD LA e D e e LD D LD LD D D D D D D LD D D) D D e D D RUKLEERNERRUN VS onIanran 2038 IRERIC2 D D D 1097 1098 099 00 0 0 0 MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE ;*DESIRED SECTOR/TRACK ADDRESS REGISTER (RHDST) (#1) ;*EACH BIT IS CALLED BY BIT NUMBER ;*DRIVE TYPE REGISTER (RHDT) (#06) ;*EACH BIT IS CALLED BY BIT NUMBER 17 17 17 17 17 17 1i 1 1i 1 1i 1i 1i 1i 1i 1i 1i CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.P11 26=-JUL~-78 10:10 1135 }}%9 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 }}gz 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 002000 004000 010000 020000 040000 100000 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 002000 004000 010000 020000 100000 1178 1179 1180 1181 1182 1183 1184 1185 1186 }}gg }}gg PAGE 26 SEQ 0025 SEQ 0024 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 002000 004000 020000 CZRJ! CZRJ! 17 :*LOOK-AHEAD REGISTER (RHLA) (#07) }; EXT1= EXT2= EXT4= EXT10= EXT20= EXT40= SC1= SC2= SC4= SC10= SC20= TRK1= 17 17 17 17 17 17 17 17 17 17 17 17 TRK2= TRK4= TRK10= TRK20= 1 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 40000 100000 :EXTENSION 1 (BIT #0) EXTENSION 2 (BIT #1) :EXTENSION 3 (BIT #2) EXTENSION 4 (BIT #3) :EXTENSION 5 (BIT #4) :EXTENSION 6 (BIT #5) :SECTOR COUNT FIELD O (BIT #6) :SECTOR COUNT FIELD 1 (BIT #7) :SECTOR COUNT FIELD 2 (BIT #8) :SECTOR COUNT FIELD 3 (BIT #9) :SECTOR COUNT FIELD 4 (BIT #10) :TRACK FIELD 1 (BIT #11) :TRACK FIELD 2 :TRACK FIELD 3 :TRACK FIELD 4 :TRACK FIELD S (BIT #12) (BIT #13) (BIT #14) (BIT #15) WCU= CSF= WSU= CSu= MSE= TDF= TUF= FEN= WRU= MHS= NHS= IXE= vu30= PLU= ACU= 1 2 4 10 20 40 100 200 400 1000 2000 4000 10000 20000 100000 :WRITE CURRENT UNSAFE (BIT #0) :CURRENT SINK FAILURE (BIT #1) :WRITE SELECT UNSAFE (BIT #2) :CURRENT SWITCH UNSAFE (BIT #3) :MOTOR SEQUENCE ERROR (BIT #4) :TRANSITIONS DETECTOR FAILURE (BIT #5) :TRANSITIONS UNSAFE (BIT #6) :FAILSAFE ENABLED (BIT #7) :WRITE READY UNSAFE (BIT #8) :MULTIPLE HEAD SELECT (BIT #9) :NO HEAD SELECTION (BIT #10) :INDEX ERROR (BIT #11) :30VOLT UNSAFE (BIT #12) :PLO UNSAFE (BIT #13) :ACUNSAFE (BIT #15) :*RP05/6 ERROR REGISTER #2 (RHER2) (#10) }};z 1175 1176 1177 12:41 2 :*RP04 ERROR REGISTER #2 (RHER2) (#10) }}gg 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 }};} MACY11 30A(1052) 27-JUL-78 ERROR POINTER TABLE L WCU= CSF= WSU= CSU= RAW= TDF= TUF= ABS= WRU= MHS= NHS= IXE= PLU= 1 2 4 10 20 40 100 200 400 1000 2000 4000 20000 :*«OFFSET REGISTER (RHOF) (#11) :WRITE CURENT UNSAFE :CURRENT SINK FAILURE :CURENT SELECT UNSAFE :CURRENT SWITCH UNSAFE :READ AND WRITE :TRANSITIONS DETECTOR FAILURE :TRANSITIONS UNSAFE :ABNORMAL STOP :WRITE READY UNSAFE :MULTIPLE HEAD SELECT :NO HEAD SELECTION :INDEX ERROR ;PLO UNSAFE I ECI= FMT22= ;FORMAT BIT (BIT #12 JHEADER COMPARE INHIBIT (BIT #10) ;ERROR CORRECTION CODE INHIBIT (BIT #11) HCI= P P P ;*EACH BIT IS CALLED BY BIT NUMBER 020 e G N D T T T T PSU= VUF = UWR= PRE= ACL= DCL= SKI= oCyL= 100 40000 100000 sPACK SPEED UNSAFE (BIT #0) ;VELOCITY UNSAFE (BIT #1) JANY UNSAFE EXCEPT READ/WRITE (BIT #3) :DISK PACK ROTATION ERROR (BIT #4) ;AC LOW (BIT #5) ;DC LOW (BIT #6) ;SEEK INCOMPLETE (BIT #14) ;OFF CYLINDER (BIT #15) ;*ECC POS 1 T{gN REGISTER (RHEC1) (#16) ;*EACH BIT CALLED BY BIT NUMBER e ;*ERROR REGISTER #03 (RHER3) (#15) e P P T T T TN T T ;*SERIAL NUMBER REGISTER (RHSN) (#14) ;*EACH IS CALLED BY BIT NUMBER D n QU N - TN T d d e ;*CURRENT CYLINDER ADDRESS (RHCC) (#13) e D D wd d wd wd s*EACH BIT IS CALLED BY BIT NUMBER. e Y p————— TN Y Y g ORI R P NN N R PO RO P [NSLASLUST ST NS LS TN LN 1S 1,8 ] NNNIN NN Efiocn~qown:~uuv-ac»oon~qount~uuv-a<> ;*DESIRED CYLINDER ADDRESS (RHCA) (#12) NN ;OFFSET NEGATIVE (REVERSE) (BIT #7) ;OFFSET 200 MICRO INCHES (BIT #3) ;OFFSET 400 MICRO INCHES (BIT #4) ;OFFSET 800 MICRO INCHES (BIT #5) N OFREV= sOFFSET 100 MICRO INCHES (BIT #2) N ;OFFSET 25 MICRO INCHES (BIT #0) sOFFSET 50 MICRO INCHES (BIT #1) C N OF 25= OF 50= OF100= OF 200= 0F400= OF 800= SEQ 0026 SEQ 0025 Y N N N N N PAGE 27 N TN L N DN TN L N N N N N N N N N 2 NN ERROR POINTER TABLE 12:41 (a) 27=JUL=78 —l—.—!-l—h-d—l—b—‘-l—lddd-‘-l—l-l—l-—‘-ld—l-‘-l-l—l—‘—l—b—l-l—l—l—‘d—l-fl—l—l—d-‘_‘—‘—i—.—l—l—l—l—l-‘d—‘—l nN — 000001 000002 000004 MACY11 30A(1052) O Y Y Y - Y D Y Y b cd i cd i PR EBIRARA — OO0 Y— — —) — CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL-78 10:10 - M MACY11 3 30A(1052) =-JUL27-JuL-78 ERROR POINTER TABLE N 12:41 12 2 PA GE 28 17 1247 1248 1249 1250 1251 1252 1253 1254 S s 7 SEQ K 002 ;*ECC PATTERN REGISTER (RHEC2) (#17) s*EACH BIT IS CALLED BY BIT NUMBER —l_a_l—l—l—l—l—l—l-—l—l—l—l—l—l—J—l—l..J—b—d—l_&—l—d—h—l—l—h—b—l-l—l—l—.—l.‘—‘—h—.-fl—.—h AN A An An A 00 On On 00 B0 On On 00 AN O O 00 00 (o (o G0 OO 00 00 00 00 00 00 00 00 00 00 00 00 00 NN N SNISNSNNN CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=-JuL-78 10:10 CZRJGC.PN .SBTTL SEEREERN PAGE 29 REGISTER ADDRESSES RPVEC: 254 ;RPO4 VECTOR ADDRESS CZR CZR U Y N 000254 SEQ 0028 SEQ 0027 N 001626 ;*RP04/5/6 DISK 1/0 REGISTERS LOCATED IN THE RH11 CONTROLLER ;*NOTE: THE CONTENTS OF THESE LOCATIONS WILL BE DIFFRENT . % .'t 176722 176702 176704 176710 RHDB: : RHWC RHBA: RHCS2: IF THE '‘CHANGE BASE ADDRESS'' ROUTINE IS USED. THIS ROUTINE STARTS AT LOCATION TAGED 'BASECH' 176722 176702 176704 176710 ;DATA BUFFER SEE NOTE ABOVE ;WORD COUNT SEE NOTE ABOVE ;BUS ADDRESS SEE NOTE ABOVE ;CONTROL AND STATUS 2 SEE NOTE ABOVE ;*RP04/5/6 DISK 1/0 REGISTERS LOCATED IN THE DEVICE CONTROL LOGIC (DCL) THESE LOCATIONS WILL BE DIFFERENT . % IF THE ''CHANGE BASE ADDRESS ROUTINE IS USED. x THIS ROUTINE STARTS AT LOCATION TAGED 'BASECH' : THE CONTENTS OF s *NOTE 1282 1283 1295 3 ;*RP04 VECTOR ADDRESS 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 B 12:41 176700 176714 176706 176740 176732 176734 176742 176716 176724 176712 176726 176730 176744 176746 176720 176736 RHCS1: : RHER1 RHDST: RHERZ: RHOF: RHCA: RHER3: : RHAS RHMR: RHDS1: RHDT: RHSN: RHEC1: RHECZ: RHLA: RHCC: 176700 176714 176706 176740 176732 176734 176742 176716 176724 176712 176726 176730 176744 176746 176720 176736 ;CONTROL AND STATUS 1 SEE NOTE ABOVE ;ERROR #1 SEE NOTE ABOVE ;DESIRED SECTOR/TRACK ADDRESS SEE NOTE ABOVE ;ERROR #2 SEE NOTE ABOVE ;OFFSET SEE NOTE ABOVE ;DESIRED CYLINDER ADDRESS SEE NOTE ABOVE ;ERROR #3 SEE NOTE ABOVE JATTENTION SUMMARY SEE NOTE ABOVE sMAINTAINABILITY SEE NOTE ABOVE ;DRIVE STATUS SEE NOTE ABOVE ;DRIVE TYPE SEE NOTE ABOVE ;SERIAL NUMBER SEE NOTE ABOVE ;ECC POSITION SEE NOTE ABOVE ;ECC PATTERN SEE NOTE ABOVE ;LOOK-AHEAD SEE NOTE ABOVE ;CURRENT CYLINDER ADDRESS SEE NOTE ABOVE ;*ADDITIONAL REGISTERS LOCATED IN THE RH70 CONTROLLER LOGIC 176750 176752 : RHBAE RHCS3: 176750 176752 ;BUS ADDRESS EXTENSION REGISTER ;CONTROL AND STATUS REGISTER #3 RN 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 27-JUL-78 ERROR POINTER TABLE MACYi1 30A(1052) Y Y————— - -y CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 3 ;DATA BUFFER CONTR0L1AND STATUS 1 ;WORD COUNT ;BUS ADDRESS SATTENTION SUMMARY sMAINTAINABILITY ;DRIVE STATUS ;DRIVE TYPE s SERIAL NUMBER ;ECC POSITION ;ECC PATTERN ; LOOK-AHEAD s CURRENT CYLINDER ADDRESS e —d — P W WS QN WS S N W G #3 :ERROR U :OFFSET :DESIRED _CYLINDER ADDRESS ST W ;ERROR #2 ST VT U W RROR # :DESIRED SECTOR/TRACK ADDRESS " p———— ;CONTROL AND STATUS 2 e — CZR CZR P OOO0O DB: wC: [oleleleleleoleleloleleololole el ;*THE FOLLOWING LOCATIONS ARE RESERVED FOR REGISTER SAVES *«ANY TIME THERE IS AN ERROR ALL THESE WILL BE FILLED ;*ONLY SOME MAY BE PRINTED BUT ALL WILL BE FILLED TRUE ;*FOR THE TIME JUST AFTER THE "ERROR'' ERROR COMMAND ) d e d e d e ROORIIK guuuu%m WN=O V00 NOWVMSWN=OVRONONNSWN=O o~ 0O b el e D D e D d D D d D D ) b — il cald b an b WWWWWWW D WWWWWWWWWW b WW 1306 b SEQ 0029 SEQ 0028 > PAGE 30 T T CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL=-78 10:10 27=-JUL-78 MACY11 30A(1052) REGISTER ADDRESSES 1335 27-JUL-78 REGISTER ADDRESSES CZR CZR NUNIT: .WORD 002002 002004 000000 000000 UNITSL.: SELECT: .WORD .WORD 002006 000000 ERFLGS: ;ERROR FLAG 002010 000000 SAVDT: ;SAVE DRIVE TYPE REGISTER ;FOR COMPARISON IN DRIVE CLEAR TEST 000000 SAVSN: T 000000 y—g—— e J—— g 002000 000000 PCJSR: 002016 002020 000000 000000 ATTENT: 002022 000000 TMPILL: 002024 000C00 TSECC: 002026 000000 TESDTE: O 002014 ;SAVE PC OF JSR WHICH GAVE THE ERROR o sAND RH INIT TEST SJATTENTION BIT FOR PRESENT UNIT ;TATAL ATTENTION BITS O s TEMPORARY ILLEGAL FUNCTION e TOTALAT: ;FLAG TO_SAY IF ECC TEST OR NOT sWHEN =177777 IT IS AN ECC TEST sWHEN =0IT IS NOT AN ECC TEST ;FLAG TO SAY IF DRIVE TIMING ERROR OR NOT sWHEN = 177777 IT IS A DTE TEST IT IS NOT A DTE TEST ; TEMPORARY TAG USED IN DRIVE TIMING 002030 000000 : TAGDTE 002032 000000 TSTNM: ;TEST NUMBER 002034 000000 FIRST: ;IF ZERO WILL TYPE HEADER 002036 000000 RPO6: ;IF O PROGRAM WILL TREAT DRIVE AS RP04 002040 000000 RH70: ;IF 1 PROGRAM IS RUNNING ON RH70 ;IF O PROGRAM IS ON AN RH11 ;ERROR TEST W W S S JWHEN = 0 TW Y ;SAVE SERIAL NUMBER REGISTER ;FOR COMPARISON IN DRIVE CLEAR TEST VT QPN Y sAND RH INIT TEST T ST ST ST SN YO ST ST ST ST SO WO Y 002012 o G .BLKW WORD .WORD O OO UNITS: UNIT: NOUNIT: OO ;TABLE OF DRIVES PRESENT TO TEST ;UNIT UNDER TEST sNUMBER OF UNITS PRESENT JUSED TO KEEP TRACK OF UNIT UNDER TEST ;USED TO DETERMINE IF THERE IS MORE ;THAN ONE UNIT ;ALL ONES INDICATE UNIT TO BE SELECTED JUNIT NO. SELECTED 000010 000000 000000 N WW& SEQ 0030 SEQ 0029 001754 001774 001776 o D e ) e e WW ~N NN =00 — o 73 3 PAGE 31 ;*FLAGS & INTERNAL PROGRAM CONTROL WORDS e d D ek = EERERATEE - b e b d d d b - -l vy wi i Wolo ENTe QV, Y VIT,N] - o VooO~NONESW WWWWWWWW W W PRy 1342 MACY11 30A(1052) Y CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.PN 26=-JuL-78 10:10 }%g@ :*FUNCTION EQUATES 1%%9 :*«TABLE OF FUNCTICNS FOR RHCS1, THEN ''GO'' BIT HAS TO BE SET 1388 002042 1405 002102 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 }289 FUTABL : 002042 002044 002046 002050 002052 002054 002056 002060 002062 002064 002066 002070 002072 002074 002076 002100 000000 000002 000006 000010 000012 000030 000050 000052 000060 000062 000070 000072 000004 000014 000016 000022 NOPERA: UNLOAD: RECALI: DCLEAR: RELEAS: SERCH: WRCHEK: WRCHDT: WRIDAT: WRIFOR: READAT: REFOR: SEECOM: OFSETC: RETCL: PKACK: 002104 000000 ILLEGL: .WORD 000020 1408 1412 }2}2 :READ IN :COMPUTED ILLEGAL FUNCTION :*DATA BUFFERS FOR READ WRITE 002110 003154 000422 WRFROM: 000422 .BLKW REINTO: .BLKW 1415 1416 1417 274. 274. :WRITE FROM THIS BUFFER :READ INTO THIS BUFFER :«TABLE FOR ATTENTION BITS }2}3 :*ATTENTION TABLE 1420 004220 001 002 }25% 004226 100 200 1421 :NO OPERATION :UNLOAD (STAND BY) :RECALIBRATE ;DRIVE CLEAR :RELEASE (DUAL=-PORT OPERATION) :SEARCH COMMAND :WRITE CHECK DATA :WRITE CHECK HEADER AND DATA JWRITE DATA :WRITE HEADER AND DATA (FORMAT) ;READ DATA ;READ HEADER AND DATA :SEEK COMMAND ;OFFSET COMMAND sRETURNTO CENTERL INE :PACK ACKNOWLEDGE READIN: 20 1409 1S 0 2 6 10 12 30 S0 52 60 62 70 72 & 14 16 22 004223 010 020 004 040 ATABLE: .BYTE 1,2,4,10,20,40,100,200 SEQ 0031 SEQ 0030 e e e e e e e e 3 PAGE 32 e e e e 1382 1383 E 12:41 e e e b e MACY11 30A(1052) 27-JuUL-78 REGISTER ADDRESSES e e e e CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PI 26=JUL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC PN 26=JuL-78 10:10 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 002002 30A(1052) 001100 001140 001000 054220 000340 056436 000024 000026 112737 012737 012737 013746 012737 012737 012737 022777 001012 000403 012716 000002 012737 012737 012637 000020 000022 177777 00444¢€ 000176 000174 000004 001 001 012737 012777 004737 005737 001001 000402 000000 177776 175124 000137 005326 054136 055176 002034 PAGE 33 .SBTTL SETUP TESTS BR CLR RESET MOV CLR CMP BNE MOV MOV MOV MOV MOV MOV MOV MOV MOV CLR MOV MOV MoV MOV MOV MOV CMP 000004 001140 001142 174504 3 *x*DJAGNOSTIC CODEw**+ CLR MOVB 001115 001106 001110 §. 12:41 .SBTTL SBTTL .SBTTL BEGINZ2: MOV START: 001374 012706 012737 012737 012737 012737 012737 012737 012737 012737 005037 005037 27-JuL-78 REGISTER ADDRESSES BEGIN: 002002 b 1456 1457 1458 1459 1460 177777 S nNo 1453 1454 1455 012737 - 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 MACYTT #-1,a#SELECT START JSELECT UNIT a#SELECT ;DO NOT SELECT UNIT ;NORMAL RUN #$CMTAG,R6 ;2FIRST LOCATION TO BE CLEARED (R6) + #SWR,R6 ; ;DONE? ::CLEAR MEMORY LOCATION ;:LO0P BACK IF NO .~6 #STACK ,SP ;sSETUP THE STACK POINTER #$SCOPE ,a#IOTVEC ;:;10T VECTOR FOR SCOPE ROUTINE #340 MIOTVEC+2 ;;LEVEL 7 #$SERROR ,a#EMTVEC ;:;EMT VECTOR FOR ERROR ROUTINE #340,a#EMTVEC+2 ;;LEVEL 7 #STRAP ,a# TRAPVEC ::TRAP VECTOR FOR TRAP CALLS #340,a#TRAPVEC+2;LEVEL 7 #SPWRDN ,a#PWRVEC ;.POWER FAILURE VECTOR #340,3#PWRVEC+2 ;:LEVEL 7 $TIMES ;o INITIALIZE NUMBER OF ITERATIONS $ESCAPE ;:CLEAR THE ESCAPE ON ERROR ADDRESS #1,SERMAX ;;ALLOW ONE ERROR PER TEST #..SLPADR s INITIALIZE THE LOOP ADDRESS FOR SCOPE #. ,SLPERR ;;SETUP THE ERROR LOOP ADDRESS a#ERRVEC,-(SP) ;;SAVE ERROR VECTOR #64$ ,Q#ERRVEC #DSWR, SWR ;;SET UP ERROR VECTOR ;;SETUP FOR A HARDWARE SWICH REGISTER #-1,3SWR ;:TRY TO REFERENCE HARDWARE SWR #DDISP,DISPLAY ;;AND A HARDWARE DISPLAY REGISTER 66% 65% ;;BRANCH IF NO TIMEOUT TRAP OCCURRED s ;BRANCH IF NO TIMEOUT 64%: BNE BR MOV 65%: MOV #SWREG, SWR ;;POINT TO SOF TWARE SWR 66%: MOV (SP)+ ,@#ERRVEC ;;RESTORE ERROR VECTOR STARTA: MOV MOV JSR TST BNE BR #0,PS ;SET PROCESSOR STATUS TO 0 a#F IRST 1% 2% ;1S THIS FIRST TIME ROUND ? ;SKIP HEADER IF NOT ;DO HEADER IF SO 1%: a#SND1 RTI MOV JMP #65%, (SP) #D]SPREG,DISPLAY #RPVECT ,@RPVEC PC,a#STKINT ;2SET UP FOR TRAP RETURN ;THIS IS FOR UNTIMELY DRIVE INTERRUPTS sINITIALIZE THE TTY KEYBOARD ;SKIP OVERALL PROGRAM HEADER SEQ 0032 SEQ 0031 004664 004672 104401 004766 104401 005052 000427 005266 005737 001006 023727 001005 000042 001140 002034 SND1: 000176 38 b b ) s i e i i i D i il Vi nivioaunoanaug noron b b b il d b i d b b =00 ONOWNSWN=O 104406 000403 112737 TYPE ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ TYPE BR TYPE BR TYPE BR TYPE BR TYPE BR 005200 177777 ;. TYPE ASCIZ STRING ;:GET OVER THE ASCIZ BR 005140 012737 TYPE BR ::TYPE ASCIZ STRING :2GET OVER THE ASCIZ ;sTYPE ASCIZ STRING ::GET OVER THE ASCIZ ;sTYPE ASCIZ STRING ::GET OVER THE ASCIZ :2TYPE ASCIZ STRING 78$ ::GET OVER THE ASCIZ ;sTYPE ASCIZ STRING ::GET OVER THE ASCIZ #=1,94F IRST sNEXT TIME DO NOT GIVE HEADER a2 64% SWR ,#SWREG 65% ;;ARE WE RUNNING UNDER XXDP/ACT? ; ;BRANCH IF YES ;;SOFTWARE SWITCH REG SELECTED? 65% ; ;BRANCH IF NO ;:GET SOFT-SWR SETTINGS 000001 001134 64%: #1,$AUTOB ;.SET AUTO-MODE INDICATOR 032777 001403 012737 (10000 173546 RH70CK: 000001 002040 #SW12,aSWR 3s #1,3#RH70 ;LOOK TO SEE IF USING RH70 ;IF SW12 = 0, SKIP NEXT 005737 001434 002002 A#SELECT TST1 ;200 START? 104401 000422 104412 042716 011637 012637 005416 177770 001774 002004 3%: ,65% 64% #177770, (SP) (SP) ,@#UNIT (SP)+,@#UNITSL ;IF SW12 = 1, CU IS AN RH70 ;SKIP NEXT IF STARTING FROM 200 ::TYPE ASCIZ STRING ;:GET OVER THE ASCIZ JONLY KEEP LAST 3 BITS sSAVE UNIT TO BE TESTED sSAVE UNIT TO BE TESTED OO O O N0 104401 000433 ;:TYPE ASCIZ STRING :.GET OVER THE ASCIZ DN 004626 000417 ,65% 649 AN AN AN W AN AN AN N N D N W 104401 004620 004624 TYPE BR CZRJ CZRJ NaXV,) W 004530 000434 SEQ 0033 SEQ 0032 - —.I—l-a-d—l—l-b—-l.—)_.‘—l—l—a_‘—l-d—-b—l_l_g 104401 004522 004526 3 PAGE 34 A A A A A A AA A D 1480 1481 1482 1483 1484 1485 G 27-JUL=-78 12:41 MACY11 30A(1052) INITIALIZE THE COMMON TAGS NININI A A AN NI CZRJGCO,RP0O4/5/6 DSKLS CTRLRI1 CZRJGC.P11 26=JUL~-7 8 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 005500 005502 005510 005514 000004 012737 012706 012737 000901 001000 000001 001212 005522 012737 012737 012700 012701 013102 TST1: 3 SCOPE 002032 MOV MOV MOV #1,8TIMES #STACK, SP #TTNO,#TSTNM 056446 000030 MOV #REGSA1,a#EMTVEC,ERROR VECTOR SO THAT 005556 000024 001630 000004 MOV MOV MOV MOV DEC #2% ,a#ERRVEC #24 ,RO lRHDB R1 8(R1)+ R2 RO CMP MOV ERROR BIT BNE 33 BRANCH IF 24 DONE #ERRVEC+2, a#ERRVEC :RESTORE TRAP CATCHER (SP)+, (SP)* CLEAN STACK -2(R1). $TMP1 *STORE FAILING REG ADDR JREGISTER NON EXISTANT 15 #SW13,aSWR ;INHIBIT ERROR PRINTOUT ? 4% ;BRANCH IF YES 1%: 000006 000004 177776 001200 020000 173334 2%: BNE BR MOV TYPE 005614 012746 H 000204 1% ,65% BR 64% MOV #ADDMOD ,~(SP) TYPOC 104402 000000 Y HALT 000137 041320 012737 005766 002040 173754 002040 005736 SEQ 0034 SEQ 0033 27-JUL-78 12:41 PAGE 35 GET VALUE FOR SOFTWARE SWITCH REGISTER MACY11 30A(1052) 000004 000030 012737 000006 000004 BRANCH IF 24 NOT DONE ;2TYPE ASCIZ STRING :2GET OVER THE ASCIZ ;GET READY TO TYPE STARTING ADDRESS :OF "'CHANGE OF BASE ADDRESS'' ROUTINE ;FORCE THE RESTART! A#$EOP ;GO TO END OF PROGRAM 3%: MOV CLR #TRP,a#4 RH70 JINITIALIZE VECTOR JINIT RH INDICATOR ++ C.W TYPE L67% *:TYPE ASCIZ STRING TRP: 056436 ;READ HARDWARE REG. ;COUNT DOWN JMP BR 012737 ;NO REGISTERS ARE SAVED :SET UP FOR BUS TIMEOUT ;THERE ARE 24 REG TO TEST :R1 NOW HAS ADDR OF ADDR OF FIRST REG. (%: TST INC 005776 ;:D0 1 ITERATION :SET UP STACK POINTER ;THIS SAVES TEST NUMBER RTN: aRHBAE RH70 66% - ADDRESS RPBAE (RH11/RH70?) :FOUND AN RH70-SET MASK :2GET OVER THE ASCIZ BR CMP TYPE RTN (SP)+,(SP)+ ,65% MOV #$ERROR,@¥EMTVEC :RESTORE ERROR VECTOR :SO THAT REGISTERS ARE SAVED lERRVEC*Z.alERRVEC :RESTORE TRAP CATCHER BR MOV 64 ;ADJUST THE STACK ..TYPE ASCIZ STRING :GET OVER THE ASCIZ > CZRJIGCO,RP0O4/5/6 DSKLS CTRLR] CZRJGC.PN 26=-JuL-78 10:10 1570 1571 1572 1573 1574 000004 012737 012706 012737 005737 001402 000137 013737 013737 004537 000000 000000 MACY11 3??(1052) 001212 3 I PAGE 36 12:41 REFERENCE EACH REGISTER TST2: #1,STIMES #STACK,SP #TTNO,#TSTNM 002032 010742 001636 042272 AHRH70 308 TST3 0 1 PC 104001 000207 000004 012737 000001 001212 006134 012737 000003 002032 006142 006146 006152 006156 006162 006164 006170 006174 013701 012711 011137 105737 001405 005037 010137 104001 ;;D0 1 ITERATION sRESET STACK ;THIS SAVES TEST NUMBER sTEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED ;JUMP TO NEXT TEST - AFPRCS2+12 ,a#UN IRHCS2 ,dNUN+2 SS.GJBITST ;TEST BITS IN REGISTER 006114 006116 006124 006126 SEQ 0035 SEQ 0034 27-JUL-78 TST3: sONLY THESE BITS TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED ;IN CORRECT DATA RECEIVED ;RETURN TO BLT3 ROUTINE SCOPE MOV #1,8$TIMES ;;D0 1 ITERATION MOV #TTNO,a#TSTNM ;THIS SAVES TEST NUMBER 001656 177777 001126 001126 MOV MOV a#RHAS ,R1 ;R1 HAS ADDRESS OF RHAS ;TEST DATA 001124 042270 CLR aR1,a#$BDDAT a#$BDDAT TST4 a#$GDDAT TSTB BEQ ERROR #-1,aR1 ?1.afiREGADR ;THIS CLEARS RHAS (SURPRISED!) ;BRANCH IF GOOD ;GOOD DATA sFAILING REG. RHAS ;RHAS DOES NOT CLEAR ;BY WRITING ONES IN CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 26-JuL-78 10:10 CZRJGC.P1 MACYTT 3?;(1052) 3 J PAGE 37 27-JUL-78 12:41 PARTIAL TEST OF RHAS FOR UNIT NUMBERS PRESENT 000004 012737 006206 e b cd 1639 000001 000004 055176 020000 i b D ) VONOVNSWN—=O 006176 006200 001212 TST4: 002032 172710 006412 111137 002020 105037 105711 002021 001402 000137 4%: 000010 001642 177777 1%: 020000 104401 006646 #TTNO,a#TSTNM 172306 2%: 007530 64$ L67% sSTART WITH AN INIT ;THIS SAVES TEST NUMBER JINITILIZE TTY KEYBOARD ;INHIBIT ERROR TYPEOUT? ;BRANCH IF YES ;2TYPE ASCIZ STRING ::GET OVER THE ASCIZ ;2TYPE ASCIZ STRING BR TYPE BR 688 708 ;2GET OVER THE ASCIZ MOV MOV CLR MOV MOV MOV @#RHAS ,R1 66% _698 718 a#RHCSZ ,R2 aRk2 #8. RO R4 a#RHER1 #-1,3R4 BNE aR?2 RO 1% MovB aR1,a#TOTALAT CLRB A#TOTALAT+1 BEQ JMP 2% XE2 INC DEC BIT BEQ JMP 3%: PC,a#STKINT z§U13.GSUR 2:D0 1 ITERATION ::GET OVER THE ASCIZ ;:TYPE ASCIZ STRING ;2GET OVER THE ASCIZ TSTB 007172 032777 001402 000137 RESET MOV TYPE 006472 001656 001636 #1,8TIMES TYPE BR TYPE BR 006326 013701 013702 005012 012700 013704 012714 005212 005300 001373 SCOPE MOV JSR BIT BNE 006240 b R3S A A RA AR e G RG AR g b b i b cnd i b i i e oocoororrOr O OO i cncd 2 1608 TYPE ;sTYPE ASCIZ STRING ;LOAD R1 WITH ADDR. OF RHAS ;LOAD R2 WITH ADDR. OF RHCS2 ;CLEAR RHCS2 (ADDRESS UNIT #0) ;INITIALIZE DRIVE COUNTER ;LLOAD R4 WITH ADDR. OF RHER1 ;MOVE ERRORS INTO RHER1 OF UNIT ADDRESSED s INCREMENT UNIT NO. (RHCS2) ;COUNT DOWN DRIVE COUNTER ;TEST AND DO NEXT UNIT IF 8 NOT DONE sSAVE ALL RESULTING ATTENTION BITS s (USED IN DRIVE CLEAR TEST) ;CLEAR UPPER BYTE aR1 sTEST RHAS FOR ANY DRIVES PRESENT #SW13,aSWR 3% SELTST s INHIBIT ERROR TYPE OUT? sNONE RESPONDING = TYPE THE MESSAGE ;SOME THERE - GO FILL "UNITS'' TABLE ;TYPE "NO DRIVES'' MESSAGE IF NO sCHECK FOR SELECTED UNIT START AND LOAD ;"UNITS'' TABLE WITH DESIRED DRIVE IF SO ::TYPE ASCIZ STRING TYPE 007072 BR TYPE BR ::GET OVER THE ASCIZ :2TYPE ASCIZ STRING ::GET OVER THE ASCIZ :2TYPE ASCIZ STRING ::GET OVER THE ASCIZ :2TYPE ASCIZ STRING :2GET OVER THE ASCIZ 041320 JMP ;G0 oUT 006716 007004 BR TYPE BR s*SET UP DRIVES PRESENT TABLE SEQ@ 0036 SEQ 0035 CZRJGCO,RP04/5/6 DSKLS CTRLR1 26-JuL-78 10:10 CZRJIGC.P1 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 MACY11 30A(1052) T4 K 12:41 3 PAGE 38 TEST FOR DRIVES PRESENT USING RHAS AND RH(CSZ2 XE2: 007172 007172 007176 27-JUL-78 012700 2%: 000010 001754 177777 3%: MOV MOV #8. RO HUNITS,R3 ;LOAD 'UNITS'' TABLE COUNTER sLOAD "UNITS'' TABLE POINTER DEC RO s COUNT DOWN MOV #UNITS ,R3 ;JRELOAD THE TABLE POINTER MOV CMP R5,@aRHCS2 #24020,aRHDT s INSERT UNIT NO. INTO RHCS2 UNIT ADDR. sJREAD RHDT = IS IT A DUAL PORT RPO4 ? JREAD RHDT = IS IT A SINGLE PORT RPO4 ? MOV BNE 012703 005005 103120 001754 10%: 001776 000010 001176 001176 4%: CLR CLR MOV MOV ROR B8CC #-1,(R%)+ 3% RS A#NOUNIT #8. .RO aR1,a#$TMPO as$TMPO 5% sPRESET 1ST TABLE BLOCK TO ALL ONES sPRESET NEXT BLOCK IF 8 NOT DONE JINITIALIZE UNIT NO. TO O sNO. OF UNITS PRESENT sRELOAD THE TABLE COUNTER sADDR OF RHAS INTO TEMPORARY STORAGE ;SET CARRY IF 0 BIT = 1 (UNIT ATTEN.) sCHECK NEXT UNIT IF ONE NOT IN BIT O 010577 022777 001503 022777 001477 172370 024020 172410 020020 172400 CMP #20020,aRHDT 022777 001473 022777 001467 024021 172370 CMP #24021 ,aRHDT ;DUAL PORT RPOS ? 020021 172360 CMP #20021,aRHDT ;SINGLE PORT RPO5 ? 022777 001463 022777 001457 024022 172350 CMP #24022 ,aRHDT ;READ RHDT = IS IT A DUAL PORT RPO6 ? 020022 172340 CMP #20022,aRHDT JREAD RHDT = IS IT A SINGLE PORT RPO6 ? 11%: BEQ BEQ 6$ 6% 6% 6% 6% 6% sYES...TYPE THE UNIT NO. SYES...TYPE THE UNIT NO. sTYPE UNIT NO. ;TYPE NO. IF SO IF SO ;YES...TYPE THE UNIT NO. ;YES...TYPE THE UNIT NO. ;*NO...IT'S NOT AN RP04/RP0O5/RP0O6 DEVICE SO TYPE ;*0UT THE DEVICE TYPE 104401 - WN=O d —d —d —d —d — VNN — e D — ) ) —d —d ) ) — — NNNNNNNNNN — 323 000410 010546 104405 104401 000406 017746 104402 104401 000422 000407 010523 104401 010546 104405 TYPE 007334 BR ,65% 648 ;:TYPE ASCIZ STRING MOV R5,-(SP) sPUT THE UNIT NUMBER ON STACK TYPDS TYPE 007366 BR MOV 172256 TYPOC TYPE 007476 6%: .67% sTYPE IT ::TYPE ASCIZ STRING ,69% ;TYPE IT ;:TYPE ASCIZ STRING 5% JUNIT NOT AN RPO4/RPO5/RPO6 SO TEST NEXT ONE 66% @RHDT ,~(SP) ;.GET OVER THE ASCIZ ;PUT RHDT ON THE STACK BR 68% MOV RS, (R3)+ ;LOAD TABLE POSITION AND INCR IT MOV TYPDS R5,-(SP) sPUT UNIT NO. ON THC STACK sTYPE THE UNIT NO. BR 001223 ;.GET OVER THE ASCiZ TYPE .SCRLF ;.GET OVER THE ASCIZ s CRLF SEQ 0037 SEQ 0036 CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26=JuL-78 10:10 005237 MACY11 001776 013737 013737 005337 001754 001776 002000 005737 001403 013737 002002 002004 001774 002000 001774 30A(1052) T4 27-JUL-78 L 12:41 3 PAGE 39 TEST FOR DRIVES PRESENT USING RHAS AND RH(CSZ2 INC A#NOUNIT ;INCR THE TOTAL NO. OF UNITS INC DEC BNE R5 RO 48 ;"RHCS2' UNIT ADDRESS ;DRIVE COUNTER DOWN ONE sTEST AND DO NEXT UNIT IF 8 NOT DONE MOV @HUNITS,@#UNIT ;SET UNIT NO. TO FIRST ONE FOUND/OR 0 TST BEQ A#SELECT ;STARTING ADDRESS 200 ? TST5 ;BRANCH IF STARTING FROM 200 QFUNITSL,@#UNIT ;CHANGE UNIT NUMBER TO SELECTED ONE MOV DEC MOV @HNOUNIT ,@#NUNIT ;SAVE NO. OF UNITS sIF NUNIT = O THEN ONLY ONE UNIT ANUNIT sIF NUNIT > O THEN MORE THAN ONE UNIT SEQ 0038 SEQ 0037 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P11 26=-JuL~78 10:10 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 007544 007546 000004 012737 012737 007562 007570 007574 012737 007554 MACY11 30A(1052) T4 000901 010272 001212 001106 000005 042620 002016 002032 TSTS: M3 27-JUL-78 12:41 PAGE 40 TEST FOR DRIVES PRESENT USING RHAS AND RHCS2 SCOPE MOV MOV #1,STIMES #1$,SLPADR ;:D0 1 ITERATION ;:SET SCOPE LOOP ADDRESS MOV JSR CLR #TTNO,a#TSTNM PC,a#CLDISK QNATTENT ;THIS SAVES TEST NUMBER sFILL UNIT NO. s CLEAR ;*TEST FOR UNIT #0 000041 000011 TST BNE MOV CMPB 002002 001774 ANUNIT 108 #41,R0 BNE TST #11,(RO) 108 a#SELECT BNE 108 ;IS UNIT #0 NEXT IN THE UNITS TABLE ? :IF NOT, TEST THIS UNIT ;IF SO, CHECK THE LOAD MEDIA LOCATION ;WAS IT AN RP04/5/6 ? sNO...GO AHEAD WITH TESTING UNIT #0 ;WAS UNIT #0 SELECTED ? ;(JE. WAS IT A 210 START ?) sIF SO...TEST IT ;*INCREMENT THE UNITS TABLE TO NEXT DRIVE (IF ANY) ;%8 DECREMENT THE 'NOUNITS'®' PRESENT (TO BE TESTED) 012700 005720 001754 MOV TST #UNITS RO (RO) + 022710 001404 011037 005337 013700 177777 cMP BEQ MOV DEC #-1,(R0O) 108 (RO) ,@#UNIT @MNOUNITS 001774 001776 001774 108: MOV a#UNIT RO ;LOAD THE UNITS TABLE POINTER sSELECT THE NEXT UNIT IN THE TABLE ; (DOUBLE INCREMENT THE POINTER, RO) ;1S THERE ANOTHER TABLE ENTRY PRESENT ? sIF NOT (LOC = =1)...MUST USE UNIT #0 ;SET UP TO BE THE UNIT UNDER TEST ;DECREMENT BECAUSE UNIT # O WONT'T BE TESTED ;RO CONTAINS UNIT NO. ;*SET UP THE PROPER DEVICE TYPE FLAG SNINNNSN I3FIJIIIIIIIIIY 1776 0004 012737 MOV 171754 002036 024022 171770 020022 171760 177777 002036 2%: CLR CMP BEQ CMP BEQ BR MOV RO,@RHCS?2 a#RPO6 #24022 ,aRHDT 2% #20022 ,@RHDT 2% 3% #-1,3#RP06 sASSUME THE NEXT UNIT IS AN RPO4 3%: 116037 004220 104401 007732 000414 01376 104405 104401 000410 017746 001774 007776 171644 002016 ;SET UP UNIT ADDRESS ;CLEAR RPO6 DEVICE TYPE FLAG ;DUAL PORT RPQ6 ? sYES...SET THE FLAG ;SINGLE PORT RP06 ? ;YES..SET FLAG sNO...DON'T SET RPO6 FLAG SSET IT MovB E ;SET APPROPRIATE ATTENTION BIT (RO) ,@#ATT[NT ATABL TYPE ,65% ;:TYPE ASCIZ STRING ,67% JUNIT NO. TO STACK :TYPE DRIVE NO. ::TYPE ASCIZ STRING :2GET OVER THE ASCIZ ;;SAVE @RHSN FOR TYPEOUT BR MOV TYPDS TYPE BR MOV 64% A#UNIT ,-(SP) 66% @RHSN, = (SP) ::GET OVER THE ASCIZ SEQ 0039 SEQ 0038 010022 010024 010030 010052 010056 104402 104401 000410 017746 104402 010060 010066 010070 010076 022777 010100 010106 010110 010116 010120 010126 010130 010136 010140 3 PAGE 41 27-JUL-78 MACY11 30A(1052) TYPE SERIAL NUMBER AND DRIVE TYPE TS5 TYPOC TYPE 010032 BR 171606 024020 MOV TYPOC 171576 020020 171566 022777 001453 022777 001447 024021 171556 020021 171546 022777 001424 022777 001420 000454 024022 171536 020022 171526 .69% 68$ aRHDT ,=(SP) CMP BEQ CMP BEQ 254020.3RHDT CMP BEQ CMP BEQ zg4021.anuor CMP BEQ CMP BEQ g§4022.8RHDT #20020,aRHDT 4% #20021,aRHDT 6% #20022 ,aRHDT 5% 1% b e s b b 0 ONOWNSWN=O EEEREEREE L L EEPEEET: 333 CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26~JUL~78 10:10 N 12:41 ::G0 TYPE=--OCTAL ASCIICALL DIGITS) ;2TYPE ASCIZ STRING :2GET OVER THE ASCIZ ::SAVE aRHDT FOR TYPEOUT ;260 TYPE=--OCTAL ASCIICALL DIGITS) ;DUAL PORT RPO4 ? ;TYPE ASCII MSG OUT ;SINGLE PORT RPO4 ? : ;TYPE THE MESSAGE : ;DUAL PORT RPOS ? : TYPE MSG ;SINGLE PORT RPOS5 ? ;TYPE MSG ;DUAL PORT RPO6 ? : TYPE MSG ;SINGLE PORT RPO6 ? : TYPE MSG ;DRIVE IS NOT AN RP04/RP05/RP06 sDON'T TYPE THE ASCII MESSAGE - S0 ;=SHOULD NEVER HAPPEN AT THIS POINT sUNLESS DRIVE GOT SICK WHILE TESTING b b cd - b i 0o SEQ 0040 SEQ 0039 010142 010142 010146 010176 010200 010200 010204 010234 104401 000413 000435 104401 000413 000416 4%: 010150 5%: 010206 010242 000413 104401 010244 010272 010276 010302 010310 005777 005777 017737 017737 171370 171362 171360 171350 6%: 1%: 002012 002010 ;WAS IN PROGRESS 718 70% ;:TYPE ASCIZ STRING ;.GET OVER THE ASCIZ ;SKIP NEXT MESSAGE 72% 738 1% :2TYPE ASCIZ STRING ::GET OVER THE ASCIZ :SKIP NEXT .75% 74% ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ aRHSN aRHDT sREAD SERIAL NO. AND DRIVE TYPE 1% @RHSN,A#SAVSN aRHDT ,a#SAVDT ;THESE TWO ARE TO HELP SCOPE LOOPS ;SAVE TO CHECK IF CLR RHCS2 BIT 5 CLEARS ANY BITS ;SAVE TO CHECK IF CLR RHCS2 BIT 5 CLEARS ANY BITS 4 PAGE 42 JSR BIT BEQ 010346 010416 010474 010000 010570 1%: TYPE BR TYPE BR TYPE BR BIT BNE TYPE BR #TTNO,@#TSTNM PC,a#CLDISK #MOL ,aR3 TS17 .65% 648 ,67% 66% .69% 68% #MOL ,aR3 1% 713 70% ;THIS SAVES TEST NUMBER sGIVE INITILIZE ;CHECK MOL IN RHDS1 sBRANCH IF MOL LOW ;s TYPE ASCIZ STRING ;;GET OVER THE ASCIZ ;:TYPE ASCIZ STRING ;;GET OVER THE ASCIZ ;:TYPE ASCIZ STRING ;:GET OVER THE ASCIZ sCHECK MOL IN RHDS1 sBRANCH IF MOL IS HIGH ;:TYPE ASCIZ STRING ;.GET OVER THE ASCIZ RO PO N NN RO R SCOPE MOV 002032 RO A RO A AL RN AN PO N PR 104401 000006 042620 010000 AR 000004 012737 004737 032713 001551 A 010316 010320 010326 010332 010336 010340 010344 010410 010414 010466 010472 010554 010560 010562 010566 O NN D TYPE SERIAL NUMBER AND DRIVE TYPE SEQ 0041 SEQ 0040 0 B 12:41 NN 27=-JUL-78 AAA AR LA LA LA LA LAIALALAVAYALALALRIATAIALAIAIA YR IAIAIA YA 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 MACY11 39?(1052) alal CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 1851 }gg% 1854 1855 1856 1857 1858 }ggg 010662 010664 010672 010676 010700 010704 000004 012737 005737 001402 000137 004737 000007 002040 010710 012706 001000 1863 010722 013737 001636 1864 1865 1866 1867 1868 }ggg 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 }ggg 010714 010730 010736 010742 010744 010746 010750 010752 010754 010760 010766 010774 011002 011006 011010 011012 011014 012737 013777 004537 020017 176710 104001 TST7: 000007 002032 001774 042272 170700 010744 000207 000004 012706 012737 013737 013777 004537 001476 176700 104001 000207 SCOPE MOV #TTNO,#TSTNM ;THIS SAVES TEST NUMBER MOV #STACK,SP JRESET STACK MOV QHRHCS2 ,dN#PRCS2+14 MOV JSR .WORD .WORD ERROR RTS 001000 000010 001640 001774 042272 TST10: 002032 011010 170634 PRCS1: SCOPE MOV MOV MOV MOV JSR .WORD .WORD ERROR RTS AH#RH70 308 TST10 PC,a#CLDISK #TTNO,a#TSTNM sTEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED ;JUMP TO NEXT TEST ;GIVE INITIALIZE ;THIS SAVES TEST NUMBER sGET REGISTER ADDRESS QHUNIT,aRHCS2 R5,BITST 20017 176710 1 ;MOVE UNIT NO. UNDER TEST ;TEST BITS IN REGISTER sONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED #STACK,SP HTTNO,a#TSTNM sJRESET STACK ;THIS SAVES TEST NUMBER PC ;RETURN TO BLT3 ROUTINE A#RHCST ,a#PRCST+14 ;GET REGISTER ADDRESS Q¥UNIT ,aRHCS2 ;MOVE UNIT NO. UNDER TEST RS, BITST ;TEST BITS IN REGISTER 1476 sONLY THESE BITS ARE TESTED FOR READ/WRITE 176700 ;ADDRESS OF REG. BEING TESTED 1 s INCORRECT DATA RECEIVED PC ;RETURN TO BLT3 ROUTINE o2 NN SEQ 0042 SEQ 0041 REGISTCR TESTS MOV PRCS2: 4 .SBTTL TST BEQ JMP JSR 010752 042620 1861 1862 002032 C 27=-JUL-78 12:41 PAGE 43 CHECK MOL TO BE LOW AR ARIALA LA IA VAR YA A LRIAIRIA A A IAIA A IATA RO AIRIA AR A AN AN AL AL AN A NN AL N AL PN NN NN PO NN NN N MA(CY!? 3?2(1952) (el CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26~-JUL-78 10:10 CZRJGC.PN 110 TST11: SCOPE 011016 000004 011020 011024 011032 012706 012737 004737 001000 000011 042620 002032 MOV MOV 011036 052777 000020 170572 BIS #PAT ,aRHCS2 011044 005077 170572 CLR aRHER1 JSR #STACK,SP #TTNO,@#TSTNM PC,a#CLDISK sRESET STACK ;THIS SAVES TEST NUMBER JINIT AND SET UNIT NUMBER AND DEVICE ;CPU REG. CORRESPONDENCE (R1-R4) ;*SET FORCED PARITY ERROR 'PAT' ;SET 'PAT' TO INVERT PARITY s GENERATED JWRITE DCL REGISTER USING BAD CONTROL PARITY ;*WITH THIS PARITY ERROR NOTHING WILL BE READ TILL IT IS ; *CLEARED 011050 011054 011137 022737 011062 011064 011072 011076 001406 012737 010137 104001 001126 104200 104200 042270 013746 052716 012637 011237 023737 001403 010237 001774 000120 001124 001126 001124 011136 011142 011437 022737 001126 000010 011150 011152 011160 011164 001406 012737 010437 000010 042270 011100 011104 011110 011114 011120 011126 011130 011134 011166 104001 104001 001124 1%: 001126 042270 001126 MOV aR1,a#$BDDAT sRHCS1 ===> $BDDAT #SC!DVA!RDY.G#SBD?Q;O&COMPARE RHCS1 AFTER PARITY BEQ MOV MOV ERROR ;BRANCH IF SC!DVA!RDY=1 1% #SC!DVA!RDY ,a#$GDDAT ;GOOD DATA R1,3#REGADR ;REGISTER ADDRESS RHCS1 ;SETTING PAT AND 1 sWRITING DCL REGISTER RHCS1 ;DID NOT SET SC!DVA!RDY MOV ANUNIT,-(SP) MOV CMP BEQ MOV ERROR aR2,a#$BDDAT ;RHCS2 ===> $BDDAT a#SGDDAT ,a#$BDDAT ; COMPARE RH(CS2 2% ;0K = SC!DVA!RDY ARE HIGH R2,a#REGADR sREGISTER ADDRESS ;READING DCL REGISTER RHCSZ2 DID NOT 1 ;SHOW UNIT#!PAT!IR BITS HIGH cMP 001126 2%: BIS MOV MOV CMP BEQ MOV 001124 MOV ERROR 3%: #PAT!IR, (SP) (SP)+,a#$GDDAT ;WITH "PAT' BIT HIGH sGET UNIT NUMBER s INCLUDE PAT AND IR ;PUT ON STACK 3% ;RHER1 =-=> $BDDAT ;ERROR REGISTER RHER1 SHOULD sHAVE 'PAR' SET ;A = OK, IT DOES R4 ,a#REGADR 1 ;FAILING REGISTER RHER1 :g?¢II;ASBROR DID NOT aR4 , a#$BDDAT #PAR,a#$BDDAT #PAR ,a#$GDDAT ;GOOD DATA SEQ 0043 SEQ 0042 CZR CZR S LS LS LS LS LS LS LS TS LS TS TN TN LS LN LS LS TSNS TS TN LS LS S 1S 1,8 1,8 4 S LA 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 D 27=-JUL=78 12:41 PAGE 44 RHCS1 - CONTROL AND STATUS 1 REGISTER MACY11 30A(1052) Lttt L Lt L L L CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 26=JUL-78 10:10 CZRJGC.PNI 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 011166 011170 011174 011202 011210 011216 011222 011224 011226 011230 011232 011234 011240 011246 011254 011262 011266 011270 011272 011274 001000 000012 001632 001774 042272 MACY11 30A(1052) TM TST12: 002032 011224 170420 PRWC: E 4 27=-JUL-78 12:41 PAGE 45 RHCS1 - BIT # 13 - MCPE SCOPE MOV MOV MOV JSR .WORD .WORD ERROR RTS 001000 000013 001634 001774 042272 TST13: 002032 011270 170354 PRBA: SCOPE MOV MOV MOV MOV JSR . WORD ERROR RTS SEQ 0044 SEQ 0043 JRESET STACK ;THIS SAVES TEST NUMBER AHRHWC ,a#PRWC+14 sGET REGISTER ADDRESS NO. UNDER TEST QHUNIT ,dRHCS2 UNIT sMOVE RS ,BITST IN REGISTER BITS ;TEST 177777 ;ONLY THESE BITS ARE TESTED FOR READ/WRITE }76702 sADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED #STACK,SP #TTNO,a#TSTNM PC JRETURN TO BLT3 ROUTINE #STACK, SP #TTNO,A#TSTNM sRESET STACK RS,BITST sTEST BITS IN REGISTER sONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED ;THIS SAVES TEST NUMBER , a#PRBA+14 ANRHBA sGET REGISTER ADDRESS QFUNIT,ARHCS2 sMOVE UNIT NO. UNDER TEST 177776 }76704 PC ;RETURN TO BLT3 ROUTINE L Lt Lt Lt L LN Lt LS LS LN LS LS LS LS T N LS LN T ST ST S .S LS TN LN TN LN S LN TN T N TS 1N TN 1,8 1,8 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 MACY11 30A(1052) T3 27=-JUL-78 F 12:41 4 PAGE 46 RHBA = UNIBUS ADDRESS REGISTER SEQ 0045 SEQ 0044 CZR. CZR. 2! 011276 011300 011304 011312 011320 011326 011332 011334 011336 011340 001000 000014 001642 001774 042272 104001 000207 TST14: 002032 011334 170310 PRER1: SCOPE MOV MOV MOV MOV JSR .WORD .WORD ERROR RTS #STACK,SP #TTNO,Q#TSTNM JRESET STACK ;THIS SAVES TEST NUMBER R5,BITST 177777 176714 1 ;TEST BITS IN REGISTER sONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED A#RHER1,a#PRERT+14 sGET REGISTER ADDRESS @#UNIT ,@RHCS2 ;MOVE UNIT NO. UNDER TEST PC JRETURN TO BLT3 ROUTINE CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=JuL-78 10:10 CZRJIGC.PN T14 011422 011426 011430 011432 011434 011440 011444 011446 012737 004737 013700 012701 012702 012710 050110 010146 052716 011637 022610 001405 011037 010037 104001 000241 006101 052701 042701 005302 001351 27-JUL=-78 G 12:41 4 PAGE 47 RHER1 - ERROR REGISTER #i TST15: 000004 000015 042620 001660 000001 000005 000001 #TTNO,@#TSTNM PC,a#CLDISK 002032 A¥RHMR, RO #1.R1 #5,R2 #DMD ,aR0 R1,aR0 R1,=(SP) #DMD ! 400, (SP) (SP) ,a#$GDDAT (SP)+,aR0 1%: 000401 001124 2% aR0, $BDDAT 001126 042270 fio.a#REGADR 2%: 000400 001000 CLC ROL BIS BIC DEC BNE R1 #400,R1 #BITO9,R1 R2 1% :THIS SAVES TEST NUMBER ;SET UNIT NUMBER AND INIT ;RO HAS MAINTENANCE REG. ADR. ;R1 HAS DATA :R2 HAS COUNT OF NUMBER OF BITS ;SET DIAGNOSTIC MODE BIT ;SET DATA IN RHMR :SAVE DATA FOR COMPARES ;INCLUDE BIT 0 :SAVE FOR ERROR PRINTOUT :COMPARE DATA ;BRANCH IF GOOD ;BAD DATA :FAILING REG. ADR. ;MAINTENANCE REGISTER ;FAILED TO SET INDICATED JBITS ;CLEAR CARRY ;GET NEXT DATA ;SET UNUSED BITS ;CLEAR READ ONLY BIT s COUNT ;BRANCH IF S BITS NOT DONE ;*NOW FLOAT A 0 011450 011454 011460 011464 011466 011470 011472 011476 012701 012702 012710 050110 020110 000435 000005 000001 010137 011037 010037 001124 001126 042270 001407 104001 e e 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 MACY11 30A(1052) 000261 006101 042701 052701 005302 001354 3%: 4%: 001340 000400 MOV MOV MOV BIS CMP BEQ MOV MOV MOV ERROR SEC ROL BIC BIS DEC BNE #5,R2 #DMD ,aR0 R1.aR0 R1.aR0 4% R1,3a4#8GDDAT aR0,a#$BDDAT ?0.3#REGADR R1 ;R1 HAS DATA ;R2 HAS COUNT BITS :SET DIAGNOSTIC MODE BITS ;SET DATA IN RHMR :COMPARE DATA :BRANCH IF GOOD ;GOOD DATA ;BAD DATA ;FAILING REG. ADR. RHMR JMAINTENANCE REGISTER :DOES NOT ALLOW WRITING ;ZEROS ;SET CARRY :GET NEXT DATA #BI1TO5!BITO6!BIT 07'BIT09,R1 :CLEAR READ ONLY BIT #31T08,R1 :SET BIT ZEROED BY ROL R2 3% ;COUNT IF S BITS DONE :BRANCH IF INCOMPLETE SEQ 0046 SEQ 0045 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=JuL-78 10:10 CZRJGC.P1 011530 011532 011536 011544 011552 011560 011564 011566 011570 011572 001000 001774 042272 011574 000004 011576 011602 011610 012706 012737 013737 013777 011616 011624 011630 011632 011634 011636 004537 177777 176740 104001 000207 002032 011566 170056 002032 011632 170012 4 PAGE 48 RHMR - MAINTENANCE REGISTER TST16: SCOPE PRDST: 8117 001009 000017 001646 001774 042272 H 115 MACY11 30A(1052) 27=JUL=-78 MOV MOV MOV MOV JSR .WORD .WORD ERROR RTS 12:41 #STACK,SP #TTNO,a#TSTNM - THIS SAVES TEST NUMBER @#RHDST ,a#PRDST+14 ;GET REGISTER ADDRESS ;MOVE UNIT NO. UNDER TEST Q#UNIT ,@RHCS2 RS,BITST ;TEST BITS IN REGISTER 17437 JONLY THESE BITS ARE TESTED FOR READ/WRITE PC ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED ;RETURN TO BLT3 ROUTINE #STACK,SP sRESET STACK }76706 SCOPE #TTNO,a#TSTNM PRERZ: JRESET STACK :THIS SAVES TEST NUMBER Q#RHERZ2 ,a#PRER2+14 sGET REGISTER ADDRESS Q#UNIT ,aRHCS2 ;MOVE UNIT NO. UNDER TEST R5,BITST 177777 }76740 PC sTEST BITS IN REGISTER ;ONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED sRETURN TO BLT3 ROUTINE SEQ 0047 SEQ 0046 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 011640 011642 011646 011654 011662 011670 011674 011676 011700 011702 000004 012706 012737 013737 013777 004537 016277 176732 011704 011706 011712 011720 011726 011734 011740 011742 011744 011746 000004 012706 012737 013737 013777 004537 001777 001000 000020 001650 001774 042272 117 & I 27-JUL-78 12:41 PAGE 49 RHER2 - ERROR REGISTER #2 TST120: SCOPE MACY11 30A(1052) 002032 011676 167746 : PROF JRESET STACK ;THIS SAVES TEST NUMBER +14 ,a#PROF Q#RHOF sGET REGISTER ADDRESS QHUNIT,aRHCS2 sMOVE UNIT NO. UNDER TEST #STACK,SP H#TTNO,¥TSTNM ;TEST BITS IN REGISTER JONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED ;RETURN TO BLT3 ROUTINE 104001 000207 176734 104001 000207 001000 000021 001652 001774 042272 TST121: 002032 011742 167702 PRCA: SCOPE MOV MOV MOV MOV JSR .WORD . WORD ERROR RTS #STACK,SP #TTNO,a#TSTNM JRESET STACK ;THIS SAVES TEST NUMBER A#RHCA ,a#PRCA+14 GET REGISTER ADDRESS NO. UNDER TEST QHUNIT ,QRHCS2 UNIT ;sMOVE ;TEST BITS IN REGISTER JONLY THESE BITS ARE TESTED FOR READ/WRITE ;ADDRESS OF REG. BEIMG TESTED s INCORRECT DATA RECEIVED ;RETURN TO BLT3 ROUTINE SEQ 0048 SEQ 0047 4 SCOPE MOV MOV MOV MOV JSR .WORD .WORD SEQ 0049 SEQ 0048 JRESET STACK ;THIS SAVES TEST NUMBER OW#RHER3 ,a#PRER3+14 sGET REGISTER ADDRESS QHUNIT,aRHCS2 sMOVE UNIT NO. UNDER TEST #STACK,SP #TTNO,a#TSTNM RS ,BITST ERROR RTS ;TEST BITS IN REGISTER sONLY THESE BITS ARE TESTED FOR READ/WRITE sADDRESS OF REG. BEING TESTED s INCORRECT DATA RECEIVED ;RETURN TO BLT3 ROUTINE ;*«0F THE TWENTY REGISTERS (4 IN RH11, 16 IN RP04) ONLY 12 ARE ;*x(CHECKED IN THE ABOVE TESTS ;**TWO ARE ALREADY TESTED (SERIAL NO. AND DRIVE TYPE) ;**THE OTHER 7 WHICH ARE RHDS1, RHLA, RHCC, RHEC1, RHEC1, RHECZ ;**ARE READ ONLY REGISTERS. ONE OR ZERO CANNOT BE WRITTEN 2/ smismismisisisisi i~ 011750 011752 011756 011764 011772 012000 012004 012006 012010 012012 PAGE 50 27=-JUL-78 MACY11 30A(1052) RHCA = DESIRED CYLINDER REGISTER 121 PPN NLNLNLNL NN CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26=JuL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JUL~-78 10:10 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 012014 012016 012022 000004 012706 012737 001000 000023 012030 004737 042620 MACY11 3?351052) TST23: K SEQ 0050 SEQ 0049 SCOPE MOV #STACK,SP JRESET STACK JSR PC,a#CLDISK ;HERE IT IS USED TO SETUP HARDWARE/ :CPU REGISTER CORRESPONDENCE MOV 002032 4 27=JUL=78 12:41 PAGE_51 RHER3 - ERROR REGISTER #3 #TTNO,Q#TSTNM ;THIS SAVES TEST NUMBER ;R1=RHCS1 :R2=RH(CS2 ;R3=RHDS1 012034 005037 CLR 002006 A#ERFLGS ;R4=RHER1 ;CLEAR ERROR FLAG ;*SIMULATED DISK AREA WILL BE USED AS A TEMPORARY :*STORAGE TABLE FOR DRIVES PRESENT DETERMINED FROM 'NED' = 0 IN RHCS2 012040 012044 012050 012054 012056 012701 051422 000010 1$: 177777 012060 012062 012066 012072 012074 012100 012102 012104 000010 051422 #DISK,R1 #8. .RO #-1,(R1)+ RO 1% ;LOAD TABLE POINTER ;LOAD TABLE LOCATION COUNTER sFILL 8 LOCATIONS WITH =1 ;COUNT DOWN ONE LOCATION ;BRANCH IF 8 NOT DONE CLR aR2 sSELECT UNIT NO.O (U2!U1!U0=0) 7$: MOV MOV TST BIT BEQ DEC 108: MOV 2%: 010000 MOV MOV MOV DEC BNE BEQ #8. RO #DISK,R1 aR4 #NED ,aR?2 3% RO 3 ;RELOAD TABLE LOCATION COUNTER sRELOAD THE TABLE POINTER ;READ A DRIVE REGISTER (RHER1) sNON EXISTENT DRIVE BIT = 0 ? ;YES...DRIVE PRESENT, CHECK THE TYPE *NO...DECREMENT DRIVE COUNT :CHECK RESULTS IF 8 DRIVES DONE BIC INC MOV INC MovB #*C7,(SP) (SP) @#RHCS1,R3 R3 #100,3R3 012612 MOV (SP)+,aR2 ;PUT RHCS2 ON THE STACK sMASK ALL BUT THE UNIT NUMBER s INCREMENT THE UNIT NUMBER sGET RHCS1 ADDRESS ;ADDRESS UPPER BYTE OF RHCS1 sSET 'TRE' IN RHCS1 ;WITHOUT ADDRESSING DRIVE ;RHCS2 HAS THE INCREMENTED UNIT 000757 BR 2% ;TEST FOR NEXT DRIVE 012106 012110 012114 012116 012122 012124 011246 042716 005216 013703 005203 112713 012130 012132 177770 001640 000100 aR2,-(SP) ;WITH 'NED' CLEARED ;*CHECK THE UNIT TYPE AND BUILD 'NED' DERIVED UNITS TABLE 022777 001425 022777 001421 024020 167522 020020 167512 022777 001415 022777 001411 024022 167502 020022 167472 38: CMP #24020,3RHDT ;1S THIS A DUAL PORT RP0O4 ? CMP #20020,aRHDT ;1S THIS A SINGLE PORT RPO4 ? CMP #24022 ,aRHDT ;1S THIS A DUAL PORT RPQ6 ? CMP #20022 ,aRHDT ;1S THIS A SINGLE PORT RPO6 ? BEQ BEQ BEQ BEQ 8% 8% 8% 8% :ENTER IN TABLE IF SO :ENTER IN TABLE IF SO :ENTER IN TABLE IF SO :ENTER IN TABLE IF SO CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=-JUL-78 10:10 CZRJGC.PN 2172 2173 2174 012174 012202 012204 012212 022777 024021 020021 MACY11 3?3§1052> 167462 012226 012230 012232 012234 27-JUL=78 12:41 167452 & PAGE 52 CONTROL AND STATUS 2 (RHCS 2) = °NED' CMP #24021 ,aRHDT ;1S THIS A DUAL PORT RPO5 ? CMP #20021,aRHDT ;1S THIS A SINGLE PORT RPO5 ? BEQ BEQ 3 8% :ENTER IN TABLE IF SO :ENTER IN TABLE IF SO BR 7% sNO RPO4 FOUND SO CHECK NEXT UNIT 012621 MOV SuB MoV #8.,<(SP) RO, (SP) (SP)+,(R1)+ ;LOAD MAX NO. OF DRIVES ;(SP) NOW HAS THE PRESENT DRIVE NO. :LOAD TABLE, INCR TABLE LOCATION & 005300 001402 005212 000716 DEC BEQ INC BR RO 4% aR2 2% 012214 012216 012222 012224 L 012746 160016 8$%: 000010 *RESTORE THE STACK TO WHERE IT WAS ;DECREMENT THE DRIVE COUNT sCHECK RESULTS IF 8 UNITS CHECKED :SELECT NEXT UNIT :GO TEST IT ;*COMPARE °'NED' DERIVED UNITS TABLE WITH THAT DERIVED USING RHAS IN T4 012236 012242 012244 012246 012250 012252 012254 004037 001754 051422 000010 012256 012304 012422 4%: 043514 JSR UNITS DISK 8. 5% 6% 13% RO,a#COMPAR ; COMPARE RESULTS ;PHER1/RHAS DERIVED DATA :'NED' TEST DATA ;NO.OF WORDS TO COMPARE sRETURN FOR ERROR HEADER JRETURN FOR ERROR DATA JRETURN FOR GOOD COMPARISON (NEXT TEST) ;*SPECIAL °'NED'/'RHAS' TABLE TYPE OUT ROUTINE (BYPASSES .SERRTYP AND s*HENCE IGNORES INHIBIT ERROR TYPEOUT SWITCH) 5%: 012256 012260 012264 012270 012274 104022 012703 012701 012702 012137 012300 012237 001126 012304 032777 020000 166626 177777 001124 000010 001754 051422 001124 14%: 6%: 012352 [0} (R2) +,a#$BDDAT BIT BNE CMP #SW13,aSWR 13% #-1,3#8GDDAT ;INHIBIT ERROR TYPE OQUTS ? YES...EXIT TYPE TYPE MOV ,SPACES8 ,SPACES8 a#$GDDAT ,~-(SP) NO...TAB OVER PC COLUMN :TAB OVER THE TEST NO. COLUMN ..SAVE a#$GDDAT FOR TYPEOUT BYTE BYTE TYPE BR 6 0 .SPACE?2 12% TYPE .SPACES8 TYPOS 062730 062722 22 #8. .R3 #UNITS,R1 #DISK,R2 (R1)+,a#8GDDAT BEQ 062722 062722 001124 012350 ERROR MOV MOV MOV MOV 11%: 11% ;LENGTH OF BOTH UNIT TABLES ADDRESS OF RHAS/RHER1 UNITS TABLE :ADDRESS OF °'NED' RHCSZ2 UNITS TABLE :LOAD RHAS UNIT NO.INTO ‘‘SGDDAT'' AND ; INCREMENT THE TABLE LOCATION LOAD 'NED' UNIT NO. INTO '‘'SBDDAT'' z INCR TABLE LOCATION *DOES RHAS UNIT TABLE LOCATION = =1 ? :YES...DON'T TYPE IT = CHECK °"NED' TABLE ::G0 TYPE--OCTAL ASCII ::TYPE 6 DIGITS : :SUPPRESS LEADING ZEROS :SPACE OVER TO THE NEXT COLUMN ;CHECK THE °"NED' UNIT TABLE ;TAB OVER THE PC COMUMN SEQ 0051 SEQ 0050 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JUL-78 10:10 012356 012362 104401 104401 062722 062722 012366 022737 177777 mo4 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 53 123 CONTROL AND STATUS 2 (RHCS 2) = °NED' 001126 12%: 001126 012405 012406 012412 012414 012416 012422 001223 9%: 000014 TYPE TYPE .SPACE8 .SPACES CMP #=1,348BDDAT BEQ MOV TYPOS BYTE BYTE TYPE DEC BNE ADD ;TAB OVER THE TEST NO. COLUMN ;TAB OVER THE RHAS UNIT COLUMN ;DOES °'NED' UNIT TABLE LOCATION = = 1 ? 6 0 sYES...DON'T TYPE IT ;;SAVE a#$BDDAT FOR TYPEOUT ;:G0 TYPE--OCTAL ASCII ;:TYPE 6 DIGITS ; :SUPPRESS LEADING ZEROS .SCRLF R3 14% #14,SP ;FOR THE NEXT LINE IN BOTH TABLES sCOUNT DOWN 2 TABLES LOCATION COUNTER ;IF NOT = O TYPE OUT NEXT 2 LOCATIONS ;ADJUST STACK FOR NO 'POP'' € RTS FROM '‘COMPAR'’ 9% a#$BDDAT ,-(SP) 13%: ;*IN THE ABOVE TEST BITS 0,1,2, AND BIT 12 ARE TESTED ;*IF THE 'DRIVES PRESENT'' TYPE OUT DOES NOT AGREE WITH WHAT WAS ;*FOUND USING RHER1 & RHAS, THEN THE ERROR IS IN THE LOGIC ;*FOR BIT12(NED), OR UNIT SELECT(BIT O TO 2), OR RHER1, OR RHAS ;*IT IS NOT POSSIBLE BY PROGRAM TO CHECK IF A NON-EXISTENT ;*DRIVE IS REALLY STANDING THERE OR NOT s*MANUALLY LOAD LOCATION "“ERUNIT'' WITH A UNIT NUMBER ;*AND RESTART AT LOCATION ‘ERSTAR'' THIS WILL LOOP FOR ;*EVER DOING EXACTLY AS TEST ON THAT ONE UNIT ;*TO GET BACK TO MAIN DIAGNOSTIC HIT HALT SWITCH AND ;*RESTART PROGRAM IN NORMAL MANNER SEQ 0052 SEQ 0051 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1 26=-JuL-78 10:10 012422 000004 012424 012430 004737 005037 N & 123 27-JUL-78 12:41 PAGE 54 CONTROL AND STATUS 2 (RHCS 2) = °*NED' TST24: SCOPE MACY11 30A(1052) JSR CLR 042620 002006 SEQ 0053 SEQ 0052 :SET REGISTERS AND CLEAR *CLEAR ANY ERRORS PC,a#CLDISK NERFLGS ;+FILL ALL POSSIBLE BITS WITH ONES 012544 012777 012777 012777 052777 012777 012777 012777 012777 012777 012777 012777 012777 012777 012552 012556 012562 052712 013712 012700 012434 012442 012450 012456 012464 012472 012500 177777 177777 177777 157010 001476 177777 017437 177777 016277 177777 17777; 00000 177777 167166 167162 167156 167152 167146 167142 167136 167132 167126 167122 MOV MOV MOV BIS MOV #177777.,3RHDB #177777.3RHWC #177777.3RHBA #157010.aRHCS2 #1476 ,@RHCST ;RBUS ADDRESS REGISTER GETS 177777 :WORD COUNT REGISTER GETS 177777 :3US ADDRESS REGISTER GETS 177777 -CONTROL AND STATUS 2 GETS 157010 .CONTROL AND STATUS REGISTER/GETS 1476 MOV #17437 ,8RHDST :DESIRED SECTOR TRACK MOV #16277 ,8RHOF :OFFSET REGISTER MOV MOV #177777.3RHER3 #DMD , 3RHMR :ERROR REGISTER 3 *MAINTENANCE REGISTER BIS MOV MOV #CLR, @R2 aFUNIT,aR2 #RHDB, RO MOV MOV MOV 167116 167114 167106 MOV 000040 001774 001630 #177777 .8RHER1 #177777 ,8RHER2 #177777 ,9RHCA #177777 ,aRHMR :ERROR REGISTER1 GETS 177777 :ERROR REGISTER 2 :DESIRED CYLINDER :MAINTENANCE REGISTER :CLEAR ALL POSSIBLE BITS *REINSTATE UNIT NO. “RO CONTAINS ADDR. OF ADDR. OF REG. ;*DATA BUFFER REGISTER 012737 011037 013037 023737 001401 177777 042270 001126 001124 012616 052712 000040 012622 013712 001774 012614 001124 001126 104001 2%: MOV MOV MOV CMP BEQ ERROR #177777 ,a#8GDDAT ; GOOD DATA FOR ERROR aR0,a#REGADR sJREGISTER ADDRESS @(RO) + ,a#$BDDAT ;TEST DATA BIS #CLR,aR2 MOV @FUNIT ,aR2 a#$GDDAT ,a#$BDDAT ; COMPARE GOOD WITH TEST DATA 2% ;BRANCH IF GOOD 1 ;RHDB DID NOT HAVE ALL ONES JAFTER A CLR IN RHCS2 - ;SET CLEAR AGAIN BECAUSE JREADING RHDB AFTER CLEARING sSET DLT SC AND TRE sREINSTATE UNIT NO. WILL ;*WORD COUNT REGISTER 012626 012634 012640 012646 012650 012737 013037 022737 001402 004737 177777 001126 177777 001124 3$: 001126 #177777 ,a#SGDDAT :GOOD DATA FOR ERROR TYPEOQUT a(R0)+,a#$BDDAT ;TEST DATA BEQ JSR 013434 #177777 ,a#SBDDAT 4$ PC,a#ERCS2C :COMPARE DATA :BRANCH IF GOOD “JUMP TO ERROR FOR CLR (BIT 5) ;*BUS ADDRESS REGISTER 012654 012662 012737 013037 000000 001126 001124 48: MOV MOV #0,a#$GDDAT ;GOOD DATA FOR ERROR TYPEOUT ) ;TEST DATA + ,a#$BDDAT @d(RO C(ZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26=-JuL-78 10:10 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 012666 012674 012676 022737 001402 004737 000000 B 5 27-JUL-78 12:41 PAGE 55 MACY11 30A(1052) CONTROL AND STATUS 2 (RHCS2) = 'CLR' T24 CMP BEQ 001126 JSR 013434 #0,a#$BDDAT 5% PC,a#ERCS2C ; COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*CONTROL AND STATUS 2 REGISTER 012702 012706 012712 012716 012722 012730 012732 012746 053716 012637 013037 023737 001402 004737 000100 001774 001124 001126 001124 5%: 001126 MOV #100,<(SP) MOV MOV CMP BEQ (SP)+,a#$GDDAT ;GOOD DATA FOR TYPE OUT @(RO) +,a#$BDDAT ;TEST DATA a#S$GDDAT ,a#$BDDAT; COMPARE DATA 6% ;BRANCH IF GOOD BIS JSR 013434 A#UNIT, (SP) PC.,a#ERCS2C s INCLUDE IR ;SET UNIT NO. ;JUMP TO ERROR FOR CLR (BIT 5) ;*CONTROL AND STATUS 1 REGISTER 012736 012744 012750 012756 012760 012737 013037 022737 001402 004737 004276 001126 004276 001124 6%: 001126 MOV MOV CMP BEQ JSR 013434 #4276 ,3#8GDDAT ;GOOD DATA FOR ERROR TYPEOUT a(RO)+,a#$BDDAT ;TEST DATA #4276 ,a#88DDAT ; COMPARE DATA 7% sBRANCH IF GOOD PC.,a#ERCS2C ;JUMP TO ERROR FOR CLR (BIT 5) ;*ERROR 1 REGISTER 012764 012772 012776 013004 013006 012737 013037 022737 001402 004737 000000 001126 000000 001124 7%: 001126 MOV MOV cMP BEQ JSR 013434 #0,a#$GDDAT @(RO)+,a#$BDDAT #0,a#$BDDAT 108 PC,a#ERCS2C ;GOOD DATA FOR ERROR TYPEOUT ;TEST DATA ; COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*DESIRED SECTOR/TRACK REGISTER 013012 013020 013024 015032 013034 012737 013037 022737 001402 004737 017437 001126 017437 001124 10%: 001126 MOV MOV CMP BEQ JSR 013434 #17437 ,a#SGDDAT ;GOOD DATA FOR ERROR TYPEOUT @(RO)+,a#$BDDAT ;TEST DATA #17437 ,a#$BDDAT ; COMPARE DATA 11% ;BRANCH IF GOOD PC.,a#ERCS2C ;JUMP TO ERROR FOR CLR (BIT 5) ;*ERROR 2 REGISTER 012737 013037 022737 001402 004737 000000 001126 000000 001124 118: 001126 MOV MOV CMP BEQ JSR 013434 #0,a#$GDDAT a(RO) +,a#$BDDAT #0,a#$BDDAT 12% PC,a#ERCS2C ;GOOD DATA FOR ERROR TYPEOUT ;TEST DATA ; COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*OFFSET REGISTER 013106 013110 012737 013037 022737 001402 004737 116000 001124 116000 001126 001126 013434 12%: MOV MOV [ BEQ JSR #116000, a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(RO)+,a#$BDDAT :TEST DATA #116000, 3#$BDDAT :COMPARE DATA 138 :BRANCH IF GOOD “JUMP TO ERROR FOR CLR (BIT 5) PC,a#ERCS2C ;*DESIRED CYLINDER ADDRESS REGISTER SEQ 0054 SEQ 0053 2! czl c CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.P11 26=JUL=-7% 10:10 2379 2380 2381 2382 gggz 2385 013114 013122 013126 013134 013135 012737 073037 022737 001402 004737 001777 001126 001777 %%3} 013150 013154 013162 013164 013037 022737 001402 001124 13$: 001126 013434 004737 001126 000000 001126 013434 gggz 2395 2396 2397 2398 2399 328? 3283 013170 013174 013202 013210 013212 013037 012737 123737 001402 004737 001126 000000 001124 001124 001126 158: 013434 013216 013224 013230 013236 013240 012737 013037 022737 001402 004737 000400 001126 000400 001124 16$: 001126 013434 PC,a¥ERCS2C *JUMP TO ERROR FOR CLR (BIT 5) MOV #0,a4$GDDAT :GOOD DATA FOR ERROR TYPEOUT JSR PC,a¥ERCS2C “JUMP TO ERROR FOR CLR (BIT 5) ;*ERROR 3 REGISTER MOV CMP BEQ a(R0)+,a#SBDDAT :TEST DATA *COMPARE DATA #0,a#SBDDAT 15§ *BRANCH IF GOOD MOV MOV (MPB BEQ a(R0) +,a#SBDDAT #0,a#SGDDAT a#$GDDAT,a#$BDDAT 168 PC,a#ERCS2C MOV MOV CMP BEQ :GET RHAS CONTENTS *GOOD DATA FOR ERROR TYPE OUT *COMPARE FOR RHAS *BRANCH IF GOOD *JUMP TO ERROR FOR CLR (BIT 5) :IN RHCS2 #400,3#$GDDAT ;GOOD DATA FOR ERROR TYPEOUT a(ROJ+,a#SBDDAT :TEST DATA #400,a#$BDDAT : COMPARE DATA 17$ *BRANCH IF GOOD PC,a¥ERCS2C 013244 013252 013254 013260 013264 013270 013272 012737 013046 011637 042716 022726 001402 004737 000600 001124 178: 001126 001100 000600 013434 MOV MOV MOV BIC CMP BEQ JSR #600,a#SGDDAT a(RO)+,-(SP) (SP) ,a#$BDDAT #VV'PROG, (SP) #600, (SP)+ 208 PC,¥ERCS2C “JUMP TO ERROR FOR CLR (BIT 5) ;GOOD DATA FOR ERROR TYPEOUT :GET RHDS1 -TEST DATA :CLEAR VV AND PROG *COMPARE DATA *BRANCH IF GOOD *JUMP TO ERROR FOR CLR (BIT 5) *IN RHCS2 :*DRIVE TYPE 013276 013304 013310 013316 013320 013737 013037 023737 001402 004737 002010 001126 002010 001124 208: 001126 013434 MOV MOV CMP BEQ JSR AHSAVDT ,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(RO)+,a#$BDDAT :TEST DATA MSAVDT , a#SBDDAT : COMPARE DATA 21% :BRANCH IF GOOD PC,a#ERCS2C *JUMP TO ERROR FOR CLR (BIT 5) ;*SERJAL NUMBER REGISTER 013324 013332 013737 013037 002012 001126 001124 26434 013336 023737 002012 001126 21%$: MOV MOV CMP HSAVSN, a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(R0)*+,a#$BDDAT ;TEST DATA ¥SAVSN, a#SBDDAT SEQ 0055 SEQ 0054 ——— 2l 2zl ; , , , | } | | :*DRIVE STATUS REGISTER 2429 2432 2433 JSR JSR 5235 gzsg ;GOOD DATA FOR ERROR TYPEOUT a(R0)+,a#$BDDAT :TEST DATA #1777 ,3#$8DDAT : COMPARE DATA 148 :BRANCH IF GOOD ;*MAINTAINABILITY REGISTER 2420 2423 26424 2425 2626 #1777 ,a#8GDDAT MOV CMF BEQ JSR 32}? 2412 2413 26414 2415 2416 2417 2418 2419 MOV ;«ATTENTION SUMMARY REGISTER %28% 2404 2405 2406 2,07 e MACY11 30A(1052) 27-JUL-78 12:41 PAGE 56 124 CONTROL AND STATUS 2 (RHCS2) = 'CLR' 2387 013142 012737 000000 001124 14%: 2382 2359 2990 s : COMPARE DATA 001402 004737 BEQ JSR 013434 22% PC.,a#ERCS2C sBRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) s*ECCT POSITION 013352 013372 013374 012737 013037 022737 001402 004737 000000 001126 000000 001124 22%: 001126 013434 MOV MOV CMP BEQ JSR #0,a#$GDDAT ;GOOD DATA FOR ERROR TYPEOUT @(R0O) +,a#$BDDAT ;TEST DATA #0,a#$BDDAT ; COMPARE DATA 23% PC,a#ERCS2C sBRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*ECC2 PATTERN 013400 013406 013412 013420 013422 012737 013037 022737 001402 004737 000000 001126 000000 001124 23%: 001126 013434 MOV MOV CMP BEQ JSR #0,a#$GDDAT ;GOOD DATA FOR ERROR TYPEOUT a(R0O) +,a#$BDDAT ;TEST DATA #0,a#$BDDAT ; COMPARE DATA PC,a#ERCS2C ;JUMP TO ERROR FOR CLR (BIT 5) 24$ ;BRANCH IF GOOD s *LOOK=-AHEAD REGISTER 013426 24%: 005720 TST (RO) + ;AS THE LOOK-AHEAD REG. CANNOT BE PREDICTED JAFTER AN INIT IT IS NOT CHECKED ;*CURRENT CYLINDER ADDRESS REGISTER 013430 005720 013432 013432 000405 013434 013440 014037 013442 013444 005720 000207 104001 25%: 26%: 042270 TST (RO) + ;AS THE CURRENT REG. CANNOT BE PREDICTED BR TST25 ;BRANCH OVER JSR -(RO), Q#REGADR ;FAILING REGISTER ADDRESS ERCS2C: MOV ERROR TST RTS 1 (RO) + PC AFTER A INIT IT IS NOT CHECKED ;CLR (BIT 5) IN RHCSZ2 DID ;NOT CLEAR APPROPIATE BITS ;OR CLEARED EXTRA BITS ;JUNDO =(RO) FOR BAD DATA sRETURN TO TEST ABOVE -m SEQ 0056 SEQ 0055 alal NN | 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 013344 013346 D 5 27-JUL-78 12:41 PAGE 57 30A(1052) T24 CONTROL AND STATUS 2 (RHCS2) = 'CLR' A IA A A A IR IAIAIAYARIAIRNIAIA Y 2435 2436 MACY11 A cmicacAastALTALTALALALIALIA LA LTALALALA LA CZRJIGCO,RPO4/5/6 DSKLS CTRLRI CZRJGC.PN 26~JuUL-78 10:10 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 013446 013450 013454 000004 012706 012737 001000 000025 013462 004737 042620 013466 013474 012777 013777 000001 002100 013502 013506 013510 013512 004037 001632 003154 000023 043312 013514 052777 000001 013522 052737 TST2S: 002032 166164 166136 SCOPE MOV MoV #STACK,SP #TTNO,@#TSTNM JRESET STACK ;THIS SAVES TEST NUMBER JSR PC,a#CLDISK MOV #DMD , 3RHMR sINIT AND SET UP GENERAL CPU/DEVICE sJREGISTER CORRESPONDENCE AND UNIT NO. MOV AWPKACK ,@RHCST ;SET DIAGNOSTIC MODE ;LOAD 'PACK ACKNOWLEDGE COMMAND'' INTO RHCS1 ;*SAVE REGISTERS FOR COMPARISON AFTER 'GO' IS ISSUED JSR RHW( REINTO RO,a#SAVER 19. 000100 3 BIS 166116 : SAVE ;FROM ;70 sNUMBER OF REGISTERS SAVED #GO,aRHCS1 ;ISSUE 'GO' TO PACK ACKNOWLEDGE COMMAND :*CHANGE SAVED REGISTERS TO EXPECTED VALUES BIS 003204 #VV ,¥REINTO+30 ;SAVED RHDS1 ;*AFTER GO HAS BEEN GIVEN TO PACK ACKNOWLEDGE COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARISONS CAN ;*BE DONE 013530 013534 013536 013540 004037 001€32 002110 000023 JSR 043312 RHW( RO,a#SAVER WRFROM 19. ; SAVE ;FROM ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 013542 113737 003201 ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOvVB 002135 QHREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE PACK ACKNOWLEDGE COMMAND ;*WITH AFTER GO 013550 013554 013556 013560 013562 013564 013566 004037 003154 002110 000023 013570 013570 013610 043514 013570 013574 013576 013705 060505 016537 047624 013604 104001 JSR REINTO WRFROM 1. 1% 1% RO.a#COMPAR 2% 001630 1%: 042270 ; COMPARE :GOOD BUFFER ;TEST BUFFER sNUMBER JRETURN FOR ERROR ; SAME JRETURN FOR GOOD COMPARISON MOV ADD MOV @#ERWORD ,R5 ;GETTING READY TO INDEX R5.R5 ;DOUBLE ERROR WORD RHWC=2(RS) ,a#REGADR ;FAILING REGISTER ADDRESS ERROR 1 ; IMPROPER REGISTER CHANGE sAFTER PACK ACKNOWLEDGE COMMAND sWITH GO IS GIVEN SEQ 0057 SEQ 0056 CZR (al £ 12:41 PAGE 58 STATUS 2 (RHCSZ2) = 'CLR' ~N po 27-JUL-78 MACY11 30A(1052) T24 CONTROL AND AMA LA IALAIAIAIAIAIAIAIAITAIAIAIAIAIAIAIAIAINAIAIAIAIAIRAIA AR N A PO PO NN N N OO CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 gggg 013606 2534 013610 5 MACY11 30A(1052) 27-JuL-78 12:41 PAGE 59 PACK ACKNOWLEDGE COMMAND TEST 125 000207 RTS 2%: PC JRETURN TO COMPARISON ;CONTINUE WITH THE NEXT TEST SEQ 0058 SEQ 0057 CallaltalUalUaltaltalt altal Lad LAl UAl LA A LN G AN LA N NN N NN NN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=-JuL-78 10:10 CZRJGC.PN F 001000 000026 042620 TST26: 002032 SCOPE MOV MOV JSR #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK sRESET STACK ;THIS SAVES TEST NUMBER sINIT AND SET UP GENERAL CPU/DEVICE JREGISTER CORRESPONDENCE ;*FILL ALL POSSIBLE REGISTER BITS WITH ONES 013724 013732 013740 013744 013746 013750 013752 013754 013760 013766 013772 013776 012777 012777 052777 012777 012777 012777 012777 012777 012777 012777 012777 012777 004037 001632 003154 000021 177777 177777 157010 001476 177777 017437 177777 00000 177777 MOV MOV BIS MOV #177777.9RHWC #177777.3RHBA #157010.aRHCS2 #1476 ,@RHCST :WORD COUNT REGISTER GETS 177777 :BUS ADDRESS REGISTER GETS 177777 :CONTROL AND STATUS 2 GETS 177430 :CONTROL AND STATUS REGISTER 1 GETS 21476 MOV #17437 ,3RHDST :DESIRED SECTOR TRACK MOV MOV #16277 ,aRHOF #777 ,@8RHCA :OFFSET REGISTER ;DESIRED CYLINDER #DMD ,aRHMR sMAINTENANCE REGISTER MOV MOV MOV MOV 165726 165720 MOV #177777 ,aRHER1 #177777 ,RHER2 #177777 ,9RHER3 #177777.,3RHMR :ERROR REGISTER1 GETS 177777 :ERROR REGISTER 2 :ERROR REGISTER 3 -MAINTENANCE REGISTER :*BEFORE RESET SAVE REGISTERS IN READ INTO BUFFER JSR RHW(C 043312 RO,a#SAVER REINTO s SAVE ;FROM ;TO |¥ ;NUMBER éggé¥f RESET AND REINSTATE UNIT NUMBER 004737 053777 005037 013746 052716 055176 001774 JSR BIS 165650 013746 042716 052716 014064 014070 014074 012637 005037 005037 QHREINTO+2 BIS #IR,(SP) MOV MOV CLR CLR MOV CLR CLRB MOV 003172 014050 014054 014060 CLR MOV 0C3162 105037 QHUNIT,aRHCS2 JINITIALIZE TK ;*CHANGE ORIGINAL SAVED REGISTERS TO EXPECTED VALUES AFTER RESET 003156 001774 012737 PC,a#S$TKINT 003202 A#UNIT,-(SP) ;CLEAR SAVED RHBA sGET UNIT NUMBER FRO SAVED RHCSZ2 s INCLUDE IR (SP)+ ,@#REINTO+4 ;SAVED RH(S2 #DVA'!RDY!76 ,@#REINTO+6 ;SAVED RHCS1 a4REINTO+10 :SAVED RHER1 SHREINTO+14 :SAVED RHERZ2 #116000,a#REINTO+16 ;SAVED RHOF AMREINTO+22 ;SAVED RHER3 AHREINTO+24 ;SAVED RHAS #400,a#REINTO+26; SAVED RHMR :*CHANGE RHDS1 WITHOUT CHANGING PROG BIT MOV AH¥REINTO+30,-(SP) MOV CLR CLR SAVED RHDS1 (SP) + ,Q#RE INTO+30; sSAVED RHEC1 HREINTO+36 Q4RE INTO+40 ;SAVED RHEC?2 BIC BIS 003204 003212 003214 4%: #*CPROG, (SP) #700, (SP) ;GET RHDS1 ;CLEAR EVERYTHING EXCEPT PROG ;SET EXPECTED BITS = 'DPR', °'DRY' & 'WwV' CZR o SEQ 0059 SEQ 0058 N N NN 000004 012706 012737 004737 5 LAl LA N LA A A N N N N AN AN AN N N AN N N N NN W N 2535 2536 2537 2538 2539 2540 G MACY11 30A(1052) 27-JUL-78 12:41 PAGE 60 PACK ACKNOWLEDGE COMMAND TEST 125 ~N CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26-JuL-78 10:10 CZRJGC.P11 H S MACY11 30A(1052) 27-JuL-78 12:4 1 126 UNIBUS INIT TEST 2591 2592 014104 014106 014110 JSR 001632 002110 000021 RHW( WRFROM 17, 2599 2600 %gg; 014112 2604 RO, a#SAVER s SAVE :FROM ;70 sNUMBER ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 2598 2603 61 ;*AFTER RESET, SAVE REGISTERS FOR COMPARISONS TO BE DONE 2593 014100 004037 043312 2594 2595 %ggg PAGE 113737 003201 :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 002135 MOVB ;*COMPARE REGISTERS BEFORE RESET WITH REGISTERS AFTER RESET 014120 004037 043514 2605 2606 2607 2608 2609 gg}? 014124 014126 014130 014132 014134 014136 003154 002110 000021 014140 014140 014160 2612 2613 2614 2615 2616 2617 2618 2619 2620 014140 014144 014146 014154 013705 060505 016537 104001 014156 014160 000207 JSR RO, a#COMPAR MOV ADD MOV ERROR @4#ERWORD ,R5 ;GETTING READY TO INDEX R5,R5 ;DOUBLE ERROR WORD RHWC=2(R5) ,@#REGADR ;FAILING REGISTER ADDRESS 1 ;REGISTER CONTENTS AFTER :A RESET THAT IS AN sUNIBUS INITIALIZE CAUSED ;AN IMPROPER REGISTER CHANGE PC JRETURN TO COMPARISON JRETURN TO POINT ON GOOD COMPARISON REINTO WRFROM 17. 1% 1% 2% 047624 001630 SNREINTO+25,a#WRFROM+25; SAVE UPPER RHAS 1%: 042270 2%: RTS ; COMPARE :GOOD BUFFER ;TEST BUFFER :NUMBER JRETURN FOR ERROR ; SAME JRETURN FOR GOOD COMPARISON SEQ 0060 SEQ 0059 CZR. CZR. LN N N N N A N N N L A L L A L L L O A N L N N A L N AN WA AN S L S A AN O L T S S U SN L A O L N S A U N A W N N A CZRJGCO,RPO4/5/6 DSKLS CYRLR1 CZRJIGC.P11 26=JUL-78 10:10 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 | 563 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 5.3 PAGE 62 27-JUL-78 1 §:41 MACYTT 3?A(1052) UNIBUS INIT TE T 26 .SBTTL 014160 014162 014166 014174 014200 014202 014206 001000 000027 002040 002032 #STACK,SP #TTNO,@#TSTNM JRESET STACK ;THIS SAVES TEST NUMBER TST30 PC.CLDISK ;JUMP TO NEXT TEST ;CLEAR DISK AND LOAD R'S sTEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED 165412 @aRHDB RO JREAD FROM EMPTY SILO 100100 #DLT!IR, (SP) PC,a#PUTREG ;GET DATA LATE BIT AND IR ;SAVE REGISTERS 001774 a#UNIT,=(SP) 042224 001712 (SP)+,a#(CS2 1% RZ,a#$BDADR 001122 144200 014246 022737 014254 014262 001403 010137 104011 001122 014264 01271 040000 014270 014274 004737 022737 042224 004200 014302 014304 014310 001403 010137 104011 001122 014312 014316 014322 014326 014330 014334 013746 052716 022637 001403 010237 104011 SILO TCSTS MRH70 308 014336 042620 014212 014216 014222 014226 014232 014236 014240 014244 014256 1ST127: SEQ 0061 SEQ 0060 001774 000100 001712 001122 n 001714 1%: CMP BEQ MOV ERROR 2%: 2% R1,a#$BDADR n #TRE ,aR1 PC,a#PUTREG 3% R1,a#$BDADR 1 3%: A#UNIT,-(SP) #IR,(SP) IN ;1S DATA LATE BIT UP? :IF YES BRANCH ;IF NOT STORE FAILING REG. sRHCSZ DID NOT HAVE DLT sRHCS2 SHOULD HAVE ONLY ;DLT AND UNIT NUMBER (BIT 0-2) :QELOOTHER BITS SHOULD #SC!TRE!RDY:DVA,a#CS1 #RDY !DVA ,a#(CS1 001714 sGET UNIT NO. - ;IS SPECIAL CONDITION, ;AND READY UP? :IF YES BRANCH TRANSFER ERROR ;IF NOT STORE FAILING REG. sRHCST1 DID NOT HAVE SC, DVA sTRE AND RDY. AFTER A ;READ FROM EMPTY SILO ONLY ;THESE BITS SHOULD BE UP ;ALL OTHERS SHOULD BE 0 ;CLEAR ERROR BITS BY MOVING ;ONE INTO TRE IN RHCS1 ;SAVE REGISTERS :S%LOBITS BUT RDY AND DVA SHOULD sBRANCH IF YES ;STGRE FAILING ADDRESS JAFTER A ONE IN TRE ONLY sREADY AND DVA SHOULD BE SET IN sRHCST (SP)+,a#(S2 sRHCS2 SHOULD HAVE IR AND UNIT ONLY R2,a#$BDADR *STORE FAILING ADDR TST30 1 ;BRANCH IF YES *AFTER A ONE IN TRE ONLY N U N AN N N NN AN N N AN N NN N NN N NN N NN N NN VNN NN W NN A CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PNM 26=JuUL-78 10:10 014336 014340 014344 014352 014356 014370 014374 014400 014404 014410 014412 014416 000004 012706 012737 005737 001402 000137 004737 013746 001000 000030 002040 014440 014442 014444 014446 002032 MOV BIS JSR ggz QHUNIT,=(SP) #IR, (SP) PC,a#PUTREG §§P)+.a#csz ;SAVE REGISTERS *IR SHOULD BE SET ''OR'‘ RESET 001122 MOV ERROR R2,a#$BDADR 11 CLR aRHDB MOV ANRHCS2,a#28 :FAILING REGISTER RH(CS2 *RHCS2 DOES NOT HAVE IR *SET, UNIT NO. SET AND *ALL OTHER BITS 0 “LOAD DATA BUFFER (SILO) WITH 0 *LOAD SILO WITH ALL ONES -ADDRESS OF RHCS2 165176 014442 1%: 3%: 001122 165126 165122 000000 4%: 010037 013737 001126 001630 014534 014540 014542 014550 014554 014562 022705 001411 012737 010537 013737 177777 104001 104001 177777 001126 001630 WAT 042270 001124 042270 “IF FLAG = 1, THIS TEST IS SKIPPED “JUMP TO NEXT TEST “CLEAR REGISTERS LOAD R'S ‘WAIT TRAP *ADDRESS OF RHCS2 MOV QMUNIT,-(SP) ; JSR ggz PC,a#PUTREG 2§P)*.8#CSZ *SAVE REGISTERS *IR AND 'DR'* SHOULD BE SET BIS #OR'IR. (SP) “IR AND 'OR"’ MOV ERROR R2,a#$BDADR 11 MOV MOV CMP BEQ aRHDB, RO aRHDB RS #0.RO 5% MOV MOV RO, a#$BDDAT :BAD DATA R4RHDB, a#REGADR :SAVE RHDB FAILING REG. CMP #-1,RS MOV MOV MOV #-1.a#$GDDAT :GOOD DATA RS, a4$BDDAT *BAD DATA A#RHDB , S#REGADR :SAVE RHDB FAILING REG. ERROR 5%: #-1,3RHDB 6:ono CLR 001124 014520 014524 014532 MOV 308 TST31 PC,CLDISK BEQ ERROR #SGDDAT 1 TST31 1 SEQ 0062 SEQ 0061 :RESET STACK :THIS SAVES TEST NUMBER “TEST FLAG FOR RH70 CONTROLLER 001774 000100 042224 001712 001774 000300 042224 001712 014476 014502 014506 014512 014514 #STACK, SP #TTNO,#TSTNM aRH70 014564 042620 2%: 014452 014456 014462 014466 014470 014474 SCOPE MOV MOV 5 PAGE 63 ST BEQ JMP JSR 165204 177777 001636 014420 014424 014432 TST30: J 12:41 :SAVE RHCS2 ADDR. FAILING REG. *"OR" IN RHCS2 SHOULD BE “SET TOGETHER WITH IR AND SUNIT NO. “SAVE SILO DATA SHOULD BE 0 *SAVE SILO DATA SHOULD BE ALL 1 *FIRST WORD 0? XYZ DO MORE TEST *BRANCH IF YES *GOOD DATA *SILO DID NOT HAVE THE FIRST WORD 70" WHEN ‘DR'' WAS SET *SECOND WORD ALL ONES? *BRANCH IF YES *SILO DID NOT HAVE THE SECOND *WORD OF ALL ONES WHEN ‘DR *WAS SET N L A N N U A A O O AN A O N N O N N N N N N N N N A 2670 2671 27-JUL -78 MACY11 30A(1052) SILO TST 1 127 LN N N N N A N A A L U AN L A AN N N L N N L CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 2723 2724 2725 2726 2727 2728 g;%g 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 014564 014566 014574 014600 014602 000004 012737 005737 001402 000137 014606 014612 014616 014620 014622 014624 014630 014632 014636 014642 014644 014646 014650 014654 014660 014664 014670 014672 014676 014700 012700 012705 005020 005305 001375 004737 005000 012705 010077 005200 005305 001373 013746 052716 004737 022637 001405 010237 104011 005037 000031 002040 27=-JUL-78 MACYi1 30A(1052) T30 SILO TEST 2 002032 TST31: 051422 000103 1%: 000102 164766 2%: 001774 000200 042224 001712 001122 002006 3%: 4%: 2756 2757 014724 014730 012700 012705 051422 000102 5%: 2761 2762 2763 2764 014742 014746 014752 014760 014037 011637 013737 005737 2766 2767 2768 014766 014770 014772 104012 000401 104013 001126 001124 001630 002006 #TTNO,a#TSTNM a#RH70 MOV MOV CLR DEC #SILOTB,RO #67. RS (RO)+ RS CLR MOV MOV INC DEC BNE MOV BIS JSR CMP MOV ERROR CLR MOV MOV MOV RO #66. RS RO,aRHDB RO R5 2% a#UNIT,=(SP) #0R, (SP) PC,a#PUTREG (gP)*.B#CSZ 3 R2,a#$BDADR 11 a#ERFLGS #SILOTB,RO #66. RS 2§HDB.(R0)+ BNE 4% :BRANCH IF 66 NOT DONE 7% ;BRANCH IF GOOD ;BAD DATA ;GOOD DATA BNE JSR 042620 042270 308 TST32 1$ PC.,a#CLDISK MOV MOV CLR CMP #SILOTB,RO #66. ,R5 -(SP) (SP) ,(RO) + MOV MOV =(R0O) ,a#$BDDAT (SP) ,a#$GDDAT MOV TST BNE 6%: 5 PAGE 64 SCOPE MOV TST BEQ JMP 015024 K 12:41 ERROR BR ERROR ;THIS SAVES TEST NUMBER :TEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED :JUMP TO NEXT TEST ;TABLE POINTER : COUNTER :CLEAR TOTAL TABLE s COUNT :BRANCH IF NOT COMPLETELY CLEAR ;CLEAR ALL REG. sCOUNT ;LOAD SILO WITH COUNT FROM 0 TO 65 JNEXT COUNT ;1S 66 LOADS DONE? ;BRANCH IF NOT. ;SAVE REGISTERS :"OR"" SHOULD BE SET IR RESET ;BRANCH IF YES ;SAVE RHCS2 ADR. FAILING REG. :"OR'' WAS NOT SET, IR WAS NOT sRESET AFTER SILO WAS FULL ;POINTER s COUNTER :READ SILO s COUNT sPOINTER a#RHDB , a#REGADR :FAILING REG. RHDB a#ERFLGS ;1S THIS FIRST ERROR? 6% :IF _NOT BRANCH ;THESE TWO ERROR CALLS ARE FOR 12 64% 13 ;BRANCH TO AVOID PRINTING NEXT ERROR ;THE SAME TYPEOUT. SILO JHAD A COUNT WRITTEN IN. ;ON READ OUT AN ERROR WAS sDETECTED. THE TOTAL SILO :READOUT IS IN LOCATION :"'SILOTB'* TO THE NEXT 65 2775 014774 005720 2777 2778 014776 015002 017746 042716 64%: 16 17 TST (RO)+ MOV aSWR,=(SP) BIC :WORDS. : INCREMENT (R0) AREDsggTHER COMPARES TO ; BE #*(SWO7' SWO8, (SP) sONLY KEEP SW7 AND Sw8 SEQ 0063 SEQ 0062 10%: #SW07, (SP) + 108 TST (SP)+ INC DEC BNE (SP) RS 5% ;TEST SWO07 :IF NO MORE COMPARE THEN BRANCH JNEXT GOOD WORD s COUNT :BRANCH IF 66 NOT COMPLETE :POP STACK CZRJ CZRJ N AN Nl L A L LN LN N L L A L N LN N N N I R RO RO K8 7%: CMP BEQ SEQ 0063 J LA 000200 SE Q@ 0064 WW 022726 001403 5 PAGE 65 LS. 9191 ,.% 2784 015006 015012 015014 015016 015020 015022 L 12:41 1% 2779 2780 2781 2782 2783 27=-JUL-78 MACY11 30A(1052) 1B SILO TEST 3 NN NN NN NN CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JUL-78 10:10 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JuL-78 10:10 27-JUL-78 MACY11 30A(1052) SILO TEST 3 3 M5 12:41 PAGE 66 ; 2785 015024 015026 015034 015040 015042 015046 000032 002040 002032 TST32: 1%: BEQ JMP JSR 308 TST33 PC,a#CLDISK = 1, THIS TEST IS SKIPPED :IF FLAG “JUMP TO NEXT TEST *CLEAR DISK REG. CLR INC MOV RO RO RO, aRHDB :CLEAR RO *ADD 1 *LOAD SILO BEQ BR JSR 2$ 1% PC,a#PUTREG *BRANCH IF YES *NO SO BRANCH *SAVE REGISTERS CMP 2%: 042224 100000 #TTNO,a#TSTNM ST 015150 042620 164546 000103 SCOPE MOV 001712 164510 000001 001124 001126 001124 001126 001630 042270 3%: #67. RO BIT ADLT,aCS2 MOV ERROR R2,a#$BDADR 11 BNE 001122 aRH70 MOV MOV CMP BEQ MOV ERROR 3$ :THIS SAVES TEST NUMBER “TEST FLAG FOR RH70 CONTROLLER *67 DONE? :DLT SET? *BRANCH IF YES *FAILING ADDRESS RHCS2 “DATA LATE DID NOT SET AT 67TH. aRHDB,a#$BDDAT - INPUT TO SILO >GOOD DATA #1,a#$GDDAT a#$GDDAT ,a#$BDDAT ; COMPARE TST33 :BRANCH IF GOOD a#RHDB,a#REGADR :FAILING REG. RHDB 12 “WORD IN RHDB CHANGED ;AFTER THE 67TH INPUT. SEQ 0065 SEQ 0064 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL-78 10:10 015159 000004 015152 015160 015164 015166 015172 012737 015176 015202 015206 015212 015216 015220 015224 015226 015232 015234 015236 015240 015244 015246 015254 015256 015260 015252 015266 015272 015276 015314 015316 MACY11 30A(1052) 27-JUL-78 132 SILO TESTé 000033 002040 002032 308 TST34 “IF FLAG = 1, THIS TEST IS SKIPPED SJUMP TO NEXT TEST “TEST FLAG FOR RH70 CONTROLLER *CLEAR DISK 001774 000100 042224 001712 MUNIT,-(SP) :GET UNIT NO. PC,a#PUTREG :SAVE REGISTERS 001122 R2,a#$BDADR 11 #IR, (SP) (SP)+,a#CS2 1% 1%: 2%: 010110 000004 001636 @4RHDB, RO R1 R1,3R0 R1 #4 ,R1 015256 3%: 001122 (SP)+,a#(CS2 43 #RHDB, RO #4 3RO ar2,R1 aR0.RS aR0.R3 aR2.R& #OR.R1 6$ gg.ns RO, S4REGADR #4. Q¥SGDDAT RS . a#$BDDAT 001124 1 5%: *FAILING REGISTER RHCS2 *RHCS2 DOES NOT HAVE IR SET “AND ALL OTHER BITS 0 *RO HAS RHDB ADDRESS *DATA ‘0, THEN 1 THEN 2 THEN 3 :IN RHDB * INCREMENT DATA *1S 4 DONE *RHCS2 ADDRESS *WAIT ON OR. *CLR IN RHCS2 :UNIT NO. R2,a#$BDADR 11 042270 000004 001126 *BRANCH IF GOOD 0 #IR, (SP) PC,a4PUTREG 4%: *JR SHOULD BE SET 'OR'' CLEARED *BRANCH IF NOT PC,a#CLDISK QUNIT.-(SP) 001630 000004 *SET INPUT READY 2$ SARHCS? ,a#38 042620 001774 000100 042224 001712 000004 015372 ;THIS SAVES TEST NUMBER MRH70 000200 015370 SEQ 0066 SEQ 0065 HTTNO,@#TSTNM PC,a#CLDISK 001630 005201 022701 103373 013737 104415 000000 000200 004737 013746 S PAGE 67 TST33: 015450 042620 052716 N 12:41 R3 “WAIT FOR 'OR" ;SAVE REGISTERS *IR SHOULD BE SET '0''=0 *BRANCH IF GOOD *FAILING REGISTER RHCS2 *RHCS2 DOES NOT HAVE IR SET *AND ALL OTHER BITS 0 *RO HAS RHDB ADDRESS *LOAD 4 IN SILO *SAVE *READ *READ *SAVE STEST RHCS2 THE 4 IN SILO SILO TO GET DLT RHCS2 FOR OR IN RHCS2 “IF OR IS NOT SET BRANCH *SILO 4 IS NOW COMPARED :SILO ADDRESS 2GOOD DATA *BAD DATA *SILO DID NOT CONTAIN WORD “PUT IN AFTER 'OR'' WAS UP *1S IT ZERO BECAUSE SILO ;1S DESTRUCTIVE READ CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 2870 2871 2872 2873 2874 2875 2876 2877 2878 015374 015376 015402 015406 015412 015414 015420 015422 015426 015432 015436 015442 015446 001407 010037 005037 010337 104001 032704 001013 013746 052716 012637 010437 010237 104001 27-JUL=-78 MACY11 30A(1052) 133 SILO TEST 5 BEQ MOV CLR MOV ERROR 042270 001124 001126 100000 001774 100300 001124 001126 042270 6%: BIT B 12:4 1 6 PAGE 68 6% RO, a#RCGADR a#SGDDAT R3,a#$BDDAT 1 ;AFTER THE ONE WORD PUT IN ;HAS BEEN TAKEN OUT AS sSILO IS A DESTRUCTIVE READ #DLT.R4 3 R4, a#$BDDAT ;BAD DATA BNE MOV BIS MOV TST34 Q#UNIT,-(SP) #DLT!OR!IR,(SP) (SP) +,a#$GDDAT MOV ERROR R2,a#REGADR 1 MOV ;BRANCH IF GOOD ;SILO ADDRESS ;GOOD DATA ;BAD DATA ;SILO SHOULD BE ZERO sBRANCH IF DLT SET ;GET UNIT NO ; ;GOOD DATA ;RHCS2 ADDRESS ;DATA LATE ERROR SEQ 0067 SEQ 0066 94 Z CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.PN 26-JUL-78 10:10 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 015450 000004 015452 015460 015464 012737 005737 000034 002040 27-JUL=-78 MACY11 30A(1052) 133 SILO TEST 5 .SBTTL MORE REGISTER TESTS TST34: SCOPE 002032 MOV TST BEQ JMP MOV JSR 015466 015472 015476 015502 042620 012711 010146 005216 112736 011137 022737 003566 000005 001126 006766 006766 042270 015544 112711 015546 015552 015556 015564 015566 015574 015600 011137 022737 001460 012737 010137 015602 000137 104001 000032 001126 006632 006632 042270 015726 C 12:41 MOV 6 #TTNO,a#TSTNM ;THIS SAVES TEST NUMBER #STACK,SP PC,CLDISK sRESET STACK ;CLEAR DISK REG. a#RH70 308 TST35 #3566,aR1 R1,=(SP) (SP) sTEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED ;JUMP TO NEXT TEST ) ;LOAD RHCS1 WITH ANY NUMBER ;GETTING READY TO FORM ODD BYTE :SP NOW HAS ODD BYTE FOR RHCS1 1% :BRANCH IF GOOD #2566 !DVA!RDY ,a#$GDDAT ;GOOD DATA 001124 R1,3a#REGADR 1 1%: 001124 SEQ 0068 SEQ 0067 #5,a(SP)+ sMOVE 5 INTO ODD BYTE FOR RHCS1 aR1,a#$BDDAT :TEST DATA #2566 !DVA!RDY ,a#$BDDAT ;RHCS1 SHOULD HAVE 6766 001126 001126 PAGE 69 MOvB BEQ MOV MOV ERROR JMP ;FAILING REGISTER RHCS1 sMOVING A NUMBER INTO ;ODD BYTE OF RHCS1 GAVE ;WRONG RESULTS #32,3R1 aR1.a#SBDDAT :MOVE INTO EVEN BYTE :TEST DATA TST36 :DO NEXT RH11 TEST IF GOOD R1,a4REGADR :FAILING REGISTER RHCS1 #2432 ' DVA'RDY,a#$8DDAT ;RHCS1 SHOULD HAVE 6632 #2432 'DVA'RDY, a#$GDDAT ;GOOD DATA 1 TST36 : - ) ;MOVING A NUMBER INTO EVEN ;BYTE OF RHCS1 GAVE WRONG sRESULT ;SKIP RH70 TEST - ) w4 czl TST35: 015606 000004 015610 015616 015622 012737 012706 004737 000035 001000 042620 015626 015632 015634 015636 015642 012711 010146 005216 003566 112736 011137 000005 001126 015646 015654 015656 015664 015670 022737 004766 001126 004766 042270 001124 015672 015676 015702 015710 015712 015720 015724 112711 011137 022737 001406 012737 010137 104001 000032 001126 004632 004632 042270 002032 SCOPE #TTNO,a#TSTNM #STACK,SP PC,CLDISK MOV MOV INC MOvVB MOV #3566,aR1 R1,-(SP) (SP) #5,9(SP)+ oR1,a#$BDDAT CMP BEQ 0566'DVA'RDY a#$BDDAT ;RHCS1 SHOULD HAVE 4766 :BRANCH IF GOOD ERROR 15 001126 001124 ;THIS SAVES TEST NUMBER MOV MOV JSR MOV MOV MOvB MOV CMP BEQ MOV MOV ERROR n CZF ~N SEQ 0069 SEQ 0068 abt adt ads a2 D 6 27-JUL-78 12:41 PAGE 70 MACYT1 30A(1052) TEST ODD BYTE INSTRUCTION ON RHCS1 = RH11 T34 sJRESET STACK ;CLEAR DISK REG. ;LOAD RHCS1 WITH ANY NUMBER sGETTING READY TO FORM ODD BYTE ;SP NOW HAS ODD BYTE FOR RHCS1 sMOVE 5 INTO ODD BYTE FOR RHCS1 ;TEST DATA #566'DVA'RDY a#$GDDAT ;GOOD DATA 51?1.O#REGADR ;FAILING REGISTER RHCS1 :MOVING A NUMBER INTO ;0DD BYTE OF RHCS1 GAVE ;WRONG RESULTS #32,3R1 aR1,a#$BDDAT ;MOVE INTO EVEN BYTE :TEST DATA #432 ' DVA'RDY, a#SBDDAT ;RHCS1 SHOULD HAVE 4632 TST36 :BRANCH IF GOOD #432!DVA!RDY.3#SGDDAT :GOOD DATA ?1.3#REGADR ;FAILING REGISTER RHCS1 ;MOVING A NUMBER INTO EVEN ;BYTE OF RHCS1 GAVE WRONG sRESULTS G oals alt abs abt alt adt sl CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26=JUL-78 10:10 CZRJGC.P 1 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 015726 000004 015730 012737 E 6 PAGE 71 27-JUL-78 12: 41 MACY11 30A(1052) TEST ODD BYTE INSTRUCTION ON RHCS1 = RH70 T35 TST36: 000036 002040 002032 016104 042620 015744 015750 177000 015754 015760 015762 015764 015766 015772 015776 016002 052712 010246 005216 105036 013746 052716 011237 022637 001774 000100 001126 001126 016006 016010 016016 016024 016030 001411 013737 052737 010237 001774 000100 042270 016032 016036 016042 013746 052716 052712 016046 016050 016054 016060 016064 016070 112612 013746 052716 011637 011237 022637 016074 016076 016102 001403 010237 104001 104001 001774 000010 020000 001774 020110 001124 001126 001126 042270 001124 001124 1%: SEQ 0070 SEQ 0069 SCOPE MOV TST BEQ JMP JSR #TTNO, a# TSTNM BIS MOV INC CLRB MOV BIS MOV cMP #177000, (R2) R2,=(SP) (SP) a(SP)+ afUNIT, =(SP) ;GETTING READY FOR OPD BYTE :SP NOW HAS ODD BYTE FOR RH(S2 sCLERR RH(CS2 ODD BYTE aR2,a#$BDDAT ;TEST DATA BEQ MOV BIS MOV ERROR 1% a#UNIT, a#SGDDAT MOV BIS BIS afUNIT, #BAI, MOVB MOV BIS (SP)+, :MOVE INTO EVEN 3?§P) AFUNIT, #UPE!IR! BAI, (SP) a#$GDDAT ;GOOD DATA (SP), MOV MOV cMP BEQ MOV ERROR a#RH70 308 TST37 PC,a#CLD ISK #IR, (SP) (SP)+ ,a#$BDDAT #IR, R2, 1 #UPE ,aR?2 ;IF FLAG = 1, THIS TEST IS SKIPPED ;JUMP TO NEXT TEST sGIVE INIT & SETUP REGISTER CORRES ;LOAD RH(CS2 ;GET UNIT NO. s INPUT READY AS IT IS SET ;COMPARE TO SEE THAT :"'CLRB'" DID CLEAR a#$GDDAT ;GOOD DATA @#REGADR ;FAILING REGISTER RH(CS2 ;CLEARING ODD BYTE OF RHCS2 -(SP) (SP) aR2,a#$BDDAT (SP)+,a#$BDDAT TST37 ;THIS SAVES TEST NUMBER sTEST FLAG FOR RH70 CONTROLLER ?Z.GIREGADR ;GAVE WRONG RESULTS ;HAVE UPE AND MPE IN RHCSZ2 ;BESIDES UNIT SELECT BYTE OF RHC(CS?2 sTEST DATA ;COMPARE TO SEE THAT MOVB DID sMOVE EVEN BYTE ONLY ; ;BRANCH IF GOOD ;FAILING REGISTER RHCS2 sMOVING A NUMBER INTO EVEN ;BYTE OF RHCS2 GAVE WRONG ;RESULTS -=) CzZf czi CZRJGCO,RPO4/5/6 DSKLS CTRLR1T CZRJGC.P1 26=JuUL-78 10:10 2999 3000 %88} 016104 000004 3003 016106 3004 016114 3005 016120 3006 016124 012737 012706 004737 013704 3008 010446 3007 016130 3009 3010 3011 016136 016140 016134 012714 016144 005216 112736 011437 016156 016160 016166 016172 001406 012737 010437 104001 016174 016200 016204 016212 016214 016222 016226 112714 011437 022737 001406 012737 010437 104001 3012 016150 022737 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 F TST37: 000037 001000 042620 001632 6 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 72 136 TEST ODD BYTE INSTRUCTION ON RHCS?2 002032 025252 MOV MOV JSR MOV #TTNO,a#TSTNM #STACK,SP PC,CLDISK A¥RHWC, Ré ;THIS SAVES TEST NUMBER sRESET STACK ;CLEAR DISK REGISTERS ;R4 NOW IS WORD COUNT REGISTER : H | 3 MOV Ré, ;GETTING READY TO FORM ODD BYTE i #25252, R4 -(SP} ;LOAD RHWC 000377 INC movs (SP) #377, 177652 001126 CMP #177652 ,a4$BDDAT : COMPARE TO SEE IF MOVB DID OK 177652 042270 000123 001126 177523 177523 042270 MOV BEQ MOV MOV ERROR 001124 1%: 001126 001124 CZF CZF : H ; SCOPE MOV 001126 SEQ 0071 SEQ 0070 MOvB MoV CMP BEQ MOV MOV ERROR @(SP)+ R4, a#SBDDAT :SP NOW_HAS ODD BYTE FOR RHWC ;MOVE 377 INTO ODD BYTE OF RHWC sTEST DATA 1% ;BRANCH IF GOOD #177652 ,a#8GDDAT ;GOOD DATA Ré4, A#REGADR ;REGISTER FAILING RHWC 1 sMOVING INTO ODD BYTE OF RHWC ;GAVE WRONG RESULTS #123, aR4 sMOVE INTO EVEN BYTE OF RHWC aR4 ,aNSBDDAT ;TEST DATA #177523 ,a#88DDAT TST40 ; ;BRANCH IF GOOD #177523%,a#8GDDAT ;GOOD DATA R4, @#REGADR ;REGISTER FAILING RHWC 1 g 6 016232 016236 016244 016250 016254 016260 016262 016264 016270 012706 012737 004737 013704 012714 010446 005216 112736 011437 3040 016302 001406 3046 016324 3039 016274 022737 3041 3042 3043 3044 3045 3047 3048 3049 3050 3051 3052 016304 016312 016316 016320 016330 016336 016340 016346 016352 001000 000040 042620 001634 025253 177652 001126 177652 042270 112714 000125 001126 177524 011437 022737 001406 012737 010437 104001 MOV MOV JSR MOV MOV MOV INC mMovB MOV 002032 000377 001126 012737 010437 104001 177524 042270 CMP BEQ 001124 MOV MOV ERROR 1%: 001126 001124 SCOPE MOvB MOV CMP BEQ MOV MOV ERROR #STACK,SP #TTNO,@#TSTNM PC,CLDISK A¥RHBA, R& #25253, aR4 Ré, -(SP) (SP) #377, a(SP)+ R4, aNSBDDAT JRESET STACK ;THIS SAVES TEST NUMBER 1% ;BRANCH IF GOOD ;R4 HAS ADDRESS OF RHBA ;LOAD RHBA ;GETTING READY FOR ODD BYTE ;SP HAS ODD BYTE ADR. OF RHBA ;LOAD ODD BYTE OF RHBA sTEST DATA #177652 ,a#$BDDAT ; COMPARE MOVB RESULTS #177652 ,a#$GDDAT ; GOOD DATA Ré, @#REGADR ;FAILING REGISTER RHBA 1 sMOVING INTO ODD BYTE OF ;RHBA GAVE WRONG RESULTS #125, R4 aR4 ,a#$BDDAT ;TEST DATA #177524 ,aNSBDDAT TST41 ; :BRANCH IF GOOD #177524 ,a#8GDDAT ; GOOD DATA R4, @#REGADR ;FAILING REGISTER RHBA 1 sMOVING INTO EVEN BYTE OF ;RHBA GAVE WRONG RESULTS GO O LNHNHNE N N N 3030 3031 3032 3033 3034 3035 3036 3037 3038 TST40: alt adt atd abt atl abd atd add add atd add aft adlalt alt att all abt all abt alt al Ualt alt adUale al i ad UN UG GG 000004 abl als oat 016230 atd %8%3 L oadt 3025 3026 3027 SEQ 0072 SEQ 0071 020 G 27=-JUL-78 12:41 PAGE 73 ODD BYTE TEST ON RHWC LN MACYTT 3?2;1052) ale NN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 .SBTTL * k% B M2 « *wN . * kA . * kR . . % . ERROR REGISTER #01 . h R R *w . TST41: 016464 016470 016476 016502 016510 016514 016520 016522 016526 002032 163256 1%: 2%: 002022 3%: 000100 002022 002022 000002 002104 002022 042620 000001 002104 016464 042224 001716 001122 163162 001110 WHENEVER ANY OTHER USE IS MADE OF THESE REGISTERS - kW * 016436 016440 016446 01645C 016456 FOUR GENERAL REGISTERS WILL BE RESERVED FOR HARDWARE R1=RHCS1 CONTROL AND STATUS1 R2=RHCS2 CONTROL AND STATUSZ R3=RHDS1 DRIVE STATUS 1 R4=RHER1 ERROR REGISTER1 APPROPIATE SAVING MUST BE DONE . 016356 016362 016370 016374 016402 016406 016412 016416 016422 016424 016432 016434 » * h . 016354 DCL COMMAND TESTS ! 4%: (RHER1) TEST BIT #1 (ILLEGAL REGISTER) CANNOT BE TESTED ON PDP11 THIS BIT IS FOR PDP10 USE ONLY SCOPE MOV MOV JSR MOV #STACK ,SP #TTNO,a#TSTNM PC,a#CLDISK #DMD , aRHMR MOV MOV CMP BNE ADD BR #FUTABL ,RO #17. ,R5 A#TMPILL,(RO)+ 3% #2,a4TMPILL 1% CLR DEC a#TMPILL RS BNE BIT BNE 2% #100, alTMPILL ADD 12% JRESET STACK ;THIS SAVES TEST NUMBER ;CLEAR REGISTERS ;SET DIAGNOSTIC MODE ;GET READY TO MAKE ILLEGAL FUNCTION ;LOAD FUNCTION CODE TABLE START ;COUNTER (16 GOOD FUNCTIONS) ;IS THIS A LEGAL FUNCTION CODE? :NO - DECR. FUNCT. CODE CTR ;YES MAKE NEXT FUNCTION CODE sTEST NEXT FUNCTION CODE :MAKE NEXT CODE IF 1ST 16 :LEGAL FUNCTIONS NOT DONE ;BRANCH IF 16 NOT COMPLETE sALL BITS UP TO BIT #5 COMPARED? 3VES = EX]T swenee= MOV Q#TMPILL ,@#ILLEGL;NO =PEST THE ILLEGAL FUNCTION #2.34TMPILL, ;TEST NEW FUNCTION CODE NEXT TIME JSR MOV PC,a#CLD]ISK #DMD , 3RHMR ;SET DIAGNOSTIC MODE MOV MOV JSR TST BEQ MOV ERROR a4 ILLEGL ,aR1 #4S ,a#SLPERR PC,a#PUTREG a#ER1 5% R4 ,a#$8DADR 11 sILLEGAL FUNCTION ===> RHCS1 ;ERROR RETURN POINT :SAVE REGISTERS ;THERE SHOULD NOT BE ANY ERROR YET sCONTINUE IF RHER1 STILL = 0 sFAILING REGISTER ADDRESS RHER1 JALTHOUGH AN ILLEGAL FUNCTION ;HAS BEEN MOVED INTO RH(CS1 sNO ERRORS SHOULD SHOW TILL SEQ 0073 SEQ 007¢ NN AN A (N AN N N AN N N N N N W NN NN NN NN H 6 _ 27=-JUL-78 12:41 PAGE 74 MACY11 30A(1052) TEST ODD BYTE INSTRUCTION ON RHBA 140 Cadt atUall Alt atl adt all ail al Uall adUadt abt adtadUal Uad Ual Ual U U U CAT A A UAL G UAE NN G CZRJIGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.P11 26=JuUL-78 10:10 V00NN S W =o b b b e b i o e bl s i D ud -b i asl cu e WWWWWWWWW W | 12:41 6 PAGE 75 TEST ILF BIT #0 IN REG. RHER1 ;GO IS SET RHER1 SHOULD BE ;ALL ZEROS 016530 016534 016540 016546 016550 016554 052711 016556 016562 016566 013746 042716 022726 016572 016574 016602 001404 013737 016604 004737 000901 042224 000001 58: 001716 104011 ;GO IN RHCS1 ;SAVE REGISTERS ;ILLEGAL FUNCTION BIT SHOULD BE SET ;IT IS = CONTINUE sFAILING REGISTER ADDRESS RHER1 ;ILLEGAL FUNCTIOM DID NOT sSET ON AN ILLEGAL FUNCTION sEXECUTION, THE ILLEGAL FUNCTION ;BEING EXECUTED IS IN RHCS1 a#DS1,-(SP) ;GET RHDS1 :MASK PROG §§.a#savoR 001122 6%: 001736 001000 #PROG, (SP) #ATA'!ERR!VV!DPR!DRY, (SP)+ 140700 001662 #GO,aR1 PC,a#PUTREG fiiLF.a#ER1 6 BEQ 001122 045060 sTHEY ARE = CONTINUE ERROR a#RHDS1,a#$BDADR ;FAILING REGISTER ADDRESS RHDS1 1 ;FOLLOWING BITS SHOULD BE SET JSR PC.,a#MIDDLE MOV 7%: 7% ;ATTENTION (BIT 15) ;VOLUME VALID (BIT 6) ;COMPOSIT ERROR (BIT 14) ;DEVICE READY (BIT 7) SHOULD ;BE SET ON RHDS1 sWITH AN ILLEGAL FUNCTION SATTENTION (BIT 15) ;COMPOSIT ERROR (BIT 14) ;MEDIUM ON LINE (BIT 12) ;DEVICE READY (BIT 7) ;GIVE A WRITE HEADER AND ;DATA COMMAND WITHOUT ;CLEARING THE ERRORS ;USING "MIDDLE'' SO THAT ;1T WILL COME BACK BEFORE sTHE END TO FIND OUT ITS 016610 016614 016616 016620 016622 010237 104415 000000 001000 004737 042224 016626 032737 040000 016634 016636 016642 001003 010137 016644 000660 13%: BR 016646 000240 12%: NOP 104011 016616 10%: 11%: 001714 001122 R2.a#10% ;STATE ;MOVE RHCSZ2 ADDRESS MOV WAT . WORD MXF JSR 0 ;ADDRESS OF RHCSZ2 PC,a#PUTREG ;SAVE REGISTERS BIT #TRE ,a#CS1 ;TRANSFER ERROR (BIT 14) RHCS1 - 'TRE’ BNE 13% ERROR ?}.GISBDADR ;WAIT FOR "MXF' BIT 2SHOULD SET DUE TO "MXF' ;1T IS = CONTINUE ;FAILING REGISTER RHCS1 ;TRANSFER ERROR (BIT 14) RHCS1 - 'TRE’ 2SHOULD BE SET DUE TO ‘"MXF' ;LOCAL SCOPE RETURN POINT 1% ;GO BACK & TEST NEXT FUNCTION CODE SEQ 0074 SEQ 0073 CZR. o T41 27=JUL=78 s ~N CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26=JuL-78 10:10 MACY11 30A(1052) 001900 000042 016664 004737 042620 012777 012777 012777 012777 012777 012746 053716 012677 012777 004037 001632 003154 000021 043312 3188 016750 016754 016756 016760 3190 3191 016762 052777 000001 016770 016774 005037 042737 003166 016000 017002 017010 052737 005037 000100 003174 3181 3182 3183 3184 3185 3186 3187 3189 3192 3193 3194 3195 3196 3197 002032 PAGE 76 ILF BIT #0 IN REG. RHER1 SCOPE MOV MOV #STACK,SP #TTNO,Q#TSTNM sRESET STACK ;THIS SAVES TEST NUMBER JSR PC,a#CLDISK sJINIT AND SET GENERAL REGISTERS s*FILL ALL POSSIBLE BITS WITH ONES 016670 016676 016704 016712 016720 016726 016732 016736 016742 3180 TST4L2: 6 177777 177777 017437 016377 000777 001400 002102 162676 000001 162734 162730 162732 162730 162724 162710 MOV MOV MOV MOV MOV MOV BIS MOV MOV #177777 ,8RHWC #177777 ,aRHBA #17437 ,@RHDST #16377 ,aRHOF #777 ,3RHCA #A16!A17,-(SP) @#READIN, (SP) (SP)+,aRHCS1 #DMD , aRHMR ;WORD COUNT REGISTER GETS 177777 ;BUS ADDRESS REGISTER GETS 177777 ;DESIRED SECTOR TRACK GETS 17437 ;OFFSET REGISTER GETS 16277 ;DESIRED CYLINDER GETS 777 ;GET BIT 9 AND 8 sFILL READ IN PRESET IN RHCS1 ;SET DIAGNOSTIC MODE ;*THE REGISTERS WILL BE SAVED IN REINTO BUFFER JSR RHWC REINTO RO,a#SAVER 17. 162650 s SAVE ;FROM ;T0 ;NUMBER SAVED ;*GIVE READ IN PRESET COMMAND BIS #GO,aRHCS1 ;INCLUDE GO TO READ IN PRESET . *NOW SAVED REGISTERS WILL BE CHANGED TO EXPECTED VALUE ;CLEAR SAVED RHDST H#FMT22'HCI'ECI ,@#REINTO+16 ;CLEAR FMT22,HCI,ECI IN s SAVED RHOF #VV ,a#REINTO+16 ;SET VV IN SAVED RHOF 003172 CLR BIC A¥REINTO+12 003172 BIS CLR A#REINTO+20 :CLEAR SAVED RHCA ;*AFTER A READ IN PRESET COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 017014 017020 017022 017024 017026 004037 001632 002110 000021 113737 043312 JSR RHWC WRFROM RO,a#SAVER W, 003201 002135 : SAVE :FROM :T0 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB A¥REINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE READ IN PRESET COMMAND ;*WITH AFTER COMMAND 017034 017040 017042 017044 004037 003154 002110 000021 043514 JSR REINTO WRFROM e RO,a#COMPAR ; COMPARE :GOOD BUFFER ;TEST BUFFER sNUMBER OF REGISTERS SEQ 0075 SEQ 0074 N A AN N AN N N LN N N A N N AN N AN N N AN N N N N AN N N N NN N NN N NN NN N NN NN 000004 012706 012737 TEST J 12:41 U 016650 016652 016656 T41 27-JUL-78 U U AN A L (L L 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 MACY11 30A(1052) Lt (N U L U U CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26-JuUL-78 10:10 3227 3228 32 017046 017050 017052 017054 017054 017074 017054 017060 017062 017070 013705 060505 016537 017072 000207 017074 104001 ; SAME JRETURN FOR GOOD COMPARISON 2% 001630 042270 2%: MOV ADD MOV ERROR A#ERWORD ,R5 ;GETTING READY TO INDEX RS, R5 ;DOUBLE ERROR WORD RHWC=2(RS) ,@#REGADR ;FAILING REG. ADDRESS 1 ;READ IN PRESET CAUSED IMPROPER RTS PC :REGISTER CHANGE sRETURN FOR FURTHER COMPARISONS :NO ERRORS SEQ 0076 SEQ 0075 D0 PAGE 77 JRETURN FOR ERROR 1% 1% 047624 6 N N N NN N N NV N NN N N N W N N NN NN N W N NN NNWNN 3220 3221 3222 3223 3224 3225 3226 K 27=-JUL-78 12:41 MACY11 30A(1052) READ IN PRESET T42 [aln NN CZRJIGCO,RPO4/5/6 DSKLS CTRLR& CZRJGC.P11 26=-JUL-78 10:1 017074 017076 000004 012737 017104 017110 017116 017122 017126 017132 017136 017140 017142 017144 017152 017156 017162 017164 017166 017170 017172 004737 012777 013711 012700 012703 012702 013023 005302 001375 013737 010137 052711 017174 000200 104415 000043 042620 000001 002042 001632 001706 000021 001662 017172 000001 002032 27-JUL-78 L 12:41 T42 READ IN PRESET TST43: SCOPE MOV 6 SEQ 0077 SEQ 0076 PAGE 78 #TTNO,Q#TSTNM ;THIS SAVES TEST NUMBER ;*START WITH CLR IN RHCS2 (BITS) JSR MOV MOV 162542 1%: 017164 2%: 000000 000200 104415 000000 3%: MOV MOV DEC BNE MOV MOV BIS WAT .WORD DRY WAT WORD PC,a#CLDISK #DMD , 3RHMR @#NOPERA ,aR1 CLEAR ALL POSSIBLE BITS ;SET DIAGNOSTIC MODE :PUT NOP OPERATION=0 IN RHCS1 ;STARTING ADDRESS OF REG :STARTING ADDRESS OF WHERE SAVED HRHE C2-RHWC+2/2,,R2 ;NUMBER OF REGISTERS d(RO)+,(R3)+ ;SAVE HARDWARE REG : COUNT R2 18 sBRANCH IF NOT COMPLETE A#RHDS 1 ,a2$ ;GET ADDRESS OF DRIVE STATUS R1,a43$ ;GET ADDRESS OF RHCS1 #G0,aR1 ;GO TO RHCS1 sWAIT FOR DRY IN RHDS1 O ;ADDRESS OF DRIVE STATUS RHDS1 ;DRY WILL BE WAITED ON sWAIT FOR RDY IN RHCS1 ;ADDRESS OF RHCS1 PUT HERE BY AN ;EARLIER MOV ;RDY WILL BE WAITED ON 0 RDY ;s*AFTER A NO OP COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 017176 017202 017204 017206 017210 004037 001632 002110 000021 113737 JSR 043312 RHW( WRFROM RO,a#SAVER 17. 001733 s SAVE FROM :T0 :NUMBER OF REGISTERS SAVED :*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%S0 THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 002135 MOVB A#AS+1 ,aWRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE ;*WITH AFTER COMMAND 017216 017222 017224 017226 017230 017232 017234 004037 001706 002110 000021 017236 017236 017256 043514 017236 017242 017244 017252 013705 047624 001630 4%: 042270 NO OP COMMAND JSR wC WRFROM 17. 4% 4% 5% RO,a#COMPAR ; COMPARE ;GOOD BUFFER sTEST BUFFER sNUMBER OF REGISTERS JRETURN FOR ERROR : SAME sJRETURN FOR GOOD COMPARISON MOV ADD A#ERWORD ,R5 R5.R5 ;GETTING READY TO INDEX :DOUBLE ERROR WORD MOV ERROR RHWC=2(RS) ,@#REGADR ;FAILING REG. ADDRESS ;NO OP COMMAND CAUSED IMPROPER 1 :REGISTER CHANGE CZR. CZR. LN A N A U N N N N U N A L N N A N (N AN N N A O N N N O N N AN O S O N N N N A A SN U SN U N O N O AN A AN S AN SN N N CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 26-JuL-78 10:10 CZRJIGC.P11 MACY11 30A(1052) CZRJIGCO,RP04/5/6 DSKLS CTRLR1 26-JUL~-78 10:10 CZRJIGC.PI 3289 017254 M6 PAGE 79 MACY11 30A(1052) 27-JUL-78 TEST FUNCTION T43 NO OPERATION 12:41 RTS 000207 012737 004737 012777 017264 042620 000001 001110 162362 14%: JRETURN FOR FURTHER COMPARISONS ;NO ERRORS 5%: 017256 017256 017264 017270 PC MOV JSR MOV #1483 ,#SLPERR PC,a#CLDISK #DMD , aRHMR ;SET SCOPE LOOP TO 14$ sINIT LAST ALL ZERO TEST ;SET DIAGNOSTIC MODE ;*NOW START WITH ALL ONES IN ALL POSSIBLE REGISTERS 017276 017302 017306 017312 017320 012700 012705 012730 013777 001632 177676 001774 162316 6%: 005305 002042 001632 001706 000021 001662 017400 000001 7%: 017372 10%: 118: MOV MOV MOV MOV #RHWC ,RO :ADDRESS OF FIRST REGISTER #RHEC2-RHWC+2/2,RS ;NO. OF REGISTERS #177676,3(R0O)+ ;FILL WITH ALL ONES SMUNIT,SRHCS2 :REINSTATE UNIT NUMBER UNDER TEST DEC RS *COUNT BIS WAT .WORD DRY WAT .WORD #G0,aR1 ;GO TO RHCS1 sWAIT FOR DRY IN RHDS1 ;ADDRESS OF DRIVE STATUS RHDS1 ;DRY WILL BE WAITED ON sWAIT FOR RDY IN RHCS1 ;ADDRESS OF RHCS1 PUT HERE BY AN ;EARLIER MOV. ;RDY WILL BE WAITED ON BNE MOV MOV MOV MOV MOV DEC BNE MOV MOV 6$ *BRANCH IF INCOMPLETE SNOPERA,@R1 :PUT NOP OPERATION =0 IN RHCS1 #RHWC ,RO *STARTING ADDRESS OF REG MIC RS *STARTING ADDRESS OF WHERE SAVED #RHEC2-RHWC+2/2,R2 ;NUMBER OF REGISTERS a(RO)+,(R3)+ ;SAVE HARDWARE REG COUNT R2 78 *BRANCH IF NOT COMPLETE a#RHDS1,a#108 -GET ADDRESS OF DRIVE STATUS R1,a#11$ *GET ADDRESS OF RHCS1 0 O RDY 017402 *KEEP INTERRUPT DISABLED ;*AFTER A NO OP COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 017404 017410 017412 017414 017416 004037 001632 002110 000021 113737 JSR 043312 RHWC WRFROM RO,a#SAVER W, 001733 002135 ;SAVE ;FROM :T0 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS :*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE mMovB WAS+1 ,aMIRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE NO OP COMMAND ;*WITH AFTER COMMAND 017424 004037 043514 JSR RO,a#COMPAR : COMPARE SEQ 0078 SEQ 0077 CZRJGCO,RP04/5/6 DSKLS CTRLR1 26=JUL~-78 10:10 CZRJIGC.PN 017430 017432 017434 017436 017440 017442 001706 002110 000021 017444 017444 017464 017444 017450 017452 017460 013705 5 N 6 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 80 T43 NO OPERATION FUNCTION TEST ;GOOD BUFFER sTEST BUFFER sNUMBER OF REGISTERS JRETURN FOR ERROR s SAME JRETURN FOR GOOD COMPARISON 12%: 047624 001630 042270 017462 017464 13%: @#ERWORD ,R5 ;GETTING READY TO INDEX R5,R5 ;DOUBLE ERROR WORD RHWC=2(R5) ,a#REGADR ;FAILING REG. ADDRESS 1 ;NO OP COMMAND CAUSED IMPROPER sREGISTER CHANGE PC JRETURN FOR FURTHER COMPARISONS ;NO ERRORS SEQ 0079 SEQ 0078 CZRJIGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.P1T 26=JuUL-78 10:10 3360 3361 3362 3363 3364 %ggg 017464 017466 017472 017500 000004 012706 012737 004737 001900 000044 042620 B 7 MACY11 30A(1052) 27-JuUL-78 12:41 PAGE 81 143 NO OPERATION FUNCTION TEST TST44: 002032 SCOPE MOV MOV JSR %%2; #STACK,SP #TTINO,@#TSTNM PC,a#CLDISK SEQ 0080 SEQ 0079 :RESET STACK :THIS SAVES TEST NUMBER :SET REGISTERS AND CLEAR :«FILL ALL POSSIBLE BITS WITH ONES 3369 3370 3371 3372 3373 017504 017512 017520 017526 017534 012777 012777 012777 052777 012777 177777 177777 177777 157010 001476 162116 162112 162106 162102 162076 MOV MOV MOV BIS MOV #177777,8RHDB #177777 ,8RHWC #177777 ,8RHBA #157010,8RHCS2 #1476 ,3RHCST ;BUS ADDRESS REGISTER GETS 177777 ;WORD COUNT REGISTER GETS 177777 ;BUS ADDRESS REGISTER GETS 177777 ;CONTROL AND STATUS 2 GETS 157010 :CONTROL AND STATUS REGISTER/GETS 1476 3375 017550 012777 017437 162066 MOV #17437 ,aRHDST :DESIRED SECTOR TRACK 3377 017564 012777 016277 #16277 ,aRHOF :OFFSET REGISTER 3379 3380 ggg; 017600 017606 017614 012777 012777 012777 177777 000001 177777 3374 017542 012777 177777 162072 3376 017556 012777 177777 162062 3378 017572 012777 177777 162052 MOV MOV 162056 MOV MOV 162046 162044 162036 MOV MOV MOV 3383 g%gé 3386 3387 3388 3389 3390 3391 3392 3393 017622 017626 017630 017634 017636 017640 017644 017646 013700 005012 012705 006000 103002 012714 005212 002020 000010 31$%: 005305 3401 017666 012777 000001 3403 3282 017700 017704 052711 012700 000001 001630 017674 30%: 177777 017650 017652 017654 017660 017664 3402 001401 000770 013746 052716 012612 013711 001774 157010 002050 27%: 161764 3406 #177777 ,8RHER3 #DMD , 3RHMR #177777 ,8RHMR :DESIRED CYLINDER ;ERROR REGISTER 3 :MAINTENANCE REGISTER ;MAINTENANCE REGISTER a#TOTALAT RO :GET DRIVE PRESENT INC aR2 : INCREMENT RHCS2 - UNIT NO. CLR MOV ROR BCC MOV DEC BEQ BR MOV BIS MOV aR2 #8..RS RO 318 #-1,3R4 RS 27% 308 AFUNIT,-(SP) #157010, (SP) (SP)+,aR2 :CLEAR RHCS2 AND CARRY BIT :COUNTER :GET BIT INTO CARRY :BRANCH IF NO UNIT ON THIS BIT :MOVE INTO ERROR REGISTER TO SET ATA :COUNT :BRANCH IF 8 DONE ;CONTINUE THIS ROUTINE :REINSTATE SET BITS 2 MOV #DMD , 3RHMR :SET DMD BIS MOV #G0,aR1 #RHDB, RO ;G0 :RO CONTAINS ADDR. OF ADDR. OF REG. a#DCLEAR,aR1 :DRIVE CLEAR = 10 INTO RHCS1 :*DATA BUFFER REGISTER 3409 3410 017710 017716 012737 013037 3412 %2}2 017730 017732 001402 004737 3415 #177777 ,aRHCA :ERROR REGISTER 2 MOV MOV gzgg 311 #177777 ,8RHER2 :ERROR REGISTER1 GETS 177777 :*THIS SETS BITS FOR ALL PRESENT DRIVES 3394 3395 3396 3397 3398 3200 #177777 ,8RHER1 017722 022737 177777 001126 001124 177777 001126 020570 28%: MOV MOV #177777 ,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(R0O) +,a#$BDDAT ;TEST DATA BEQ JSR 3$ PC,a#ERCLFC CMP #177777 ,a#$BDDAT :COMPARE DATA :BRANCH IF GOOD :JUMP TO ERROR FOR CLR (BIT 5) (W4 c2l 7 PAGE 82 SEQ 0081 SEQ 0080 012737 013037 022737 001402 004737 177777 001126 177777 001124 3%: 001126 MOV CMP BEQ JSR 020570 8177777 ,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(R0O)+,a#$BDDAT ;TEST DATA #177777 ,a#$8DDAT : COMPARE DATA 4$ PC,¥ERCLFC :BRANCH IF GOOD *JUMP TO ERROR FOR CLR (BIT 5) 017764 017772 017776 020006 012737 013037 022737 001402 004737 177776 001126 177776 001124 A ¥ 001126 MOV MOV CMP BEQ JSR 020570 e e ;*BUS ADDRESS REGISTER #177776 ,a#8GDDAT ;GOOD DATA FOR ERROR TYPEOUT @(RO) +,a#$BDDAT ;TEST DATA #177776 ,a#$BDDAT - COMPARE DATA ;BRANCH IF GOOD 5% PC,a#ERCLFC ;JUMP TO ERROR FOR CLR (BIT 5) ;*CONTROL AND STATUS 2 REGISTER 012746 053716 012637 013037 023737 001402 004737 000110 001774 001124 001126 001124 5%: 001126 MOV BIS MOV MOV CMP BEQ JSR 020570 #110,-(SP) s INCLUDE IR a#UNIT, (SP) sSET UNIT NO. (SP)+,a#$GDDAT ;GOOD DATA FOR TYPE OUT @(R0)+,a#$BDDAT ;TEST DATA a#$GDDAT ,a#$BDDAT ; COMPARE DATA 6% ;BRANCH IF GOOD PC,a#ERCLFC ;JUMP TO ERROR FOR CLR (BIT 5) ;*CONTROL AND STATUS 1 REGISTER 005737 001404 012737 000403 012737 013037 002000 023737 001402 004737 104210 001124 004210 001126 001124 001124 001126 6%: TST BEQ ggv ANUNIT sARE THERE MORE THAN ONE UNIT 32% ;BRANCH IF ONLY ONE UNIT g;gk?10.8’5GDDAT:GOOD DATA 32%: 33%: MOV MOV #4210,a#8GDDAT ;GOOD DATA @(RO) +,a#$BDDAT ;TEST DATA CMP BEQ a#$SGDDAT ,a#$BDDAT ; COMPARE DATA 7$ ;BRANCH IF GOOD JSR 020570 PC,a#ERCLFC ;JUMP TO ERROR FOR CLR BIT 5 ;IN RHCS2 ;*ERROR 1 REGISTER 020112 020120 020124 020132 020134 012737 013037 022737 001402 004737 000000 001126 000000 001124 7%: MOV MOV #0,a#8GDDAT ;GOOD DATA FOR ERROR TYPEOUT a(RO) +,a#$BDDAT ;TEST DATA BEQ 108 CMP 001126 JSR 020570 #0,a#S$BDDAT ; COMPARE DATA PC,a#ERCLFC ;JUMP TO ERROR FOR CLR (BIT 5) ;BRANCH IF GOOD ;*DESIRED SECTOR/TRACK REGISTER 020140 020146 012737 013037 017437 001126 001124 108 : MOV MOV s MOV e 017736 017744 017750 017756 017760 ek ;*WORD COUNT REGISTER cZl czl i DRIVE CLEAR c 12:41 e T44 27=-JUL-78 R MACY11 30A(1052) e, CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 #17437 ,a#8GDDAT :GOOD DATA FOR ERROR TYPEOUT @(RO) +,a#$BDDAT ;TEST DATA 1 012737 013037 022737 001402 004737 000000 001126 000000 001124 11%: 001126 MOV MOV CMP BEQ JSR 020570 #0,a#$GDDAT @(RO) +,a#8BDDAT #0,a#$BDDAT 12% PC.,a#ERCLFC ;GOOD DATA FOR ERROR TYPEOUT ;TEST DATA ; COMPARE DATA sBRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*OFFSET REGISTER 020214 020222 020226 020234 020236 012737 013037 022737 001402 004737 116000 001126 116000 001124 12%: 001126 MOV MOV CMP BEQ JSR 020570 #116000,a#8GDDAT :GOOD DATA FOR ERROR TYPEOUT @(RO) +,a#$BDDAT ;TEST DATA #116000,a#$8DDAT . COMPARE DATA 13$ ;BRANCH IF GOOD PC,a#ERCLFC ;JUMP TO ERROR FOR CLR (BIT 5) ;*DESIRED CYLINDER ADDRESS REGISTER 020242 020250 020254 020262 020264 012737 013037 022737 001402 004737 001777 001126 001777 001124 13%: 001126 MOV MOV cMP BEQ JSR 020570 #1777 ,a#8GDDAT ;GOOD DATA FOR ERROR TYPEOUT @(RO)+,a#$BDDAT ;TEST DATA #1777 ,a#$BDDAT ; COMPARE DATA 14% ;BRANCH IF GOOD PC.a#ERCLFC ;JUMP TO ERROR FOR CLR (BIT 5) ;*ERROR 3 REGISTER 020270 020276 020302 020310 020312 012737 013037 022737 001402 004737 000000 001126 000000 001124 14%: 001126 020570 MOV MOV CMP BEQ JSR #0,a#SGDDAT @(R0O) +,a#8BDDAT #0,a#SBDDAT 15% PC.a#ERCLFC ;GOOD DATA FOR ERROR TYPEOUT ;TEST DATA ; COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*ATTENTION SUMMARY REGISTER 020316 020324 020332 020336 020344 020346 013737 043737 013037 123737 001402 004737 002020 002016 001126 001124 001124 001124 15%: MOV BIC AN#TOTALAT ,a#SGDDAT;SET ALL BITS OF DRIVE PRESENT IN RHAS QWATTENT ,a#SGDDAT sCLEAR ONLY WORKING DRIVE BIT CMPB BEQ JSR a#SGDDAT ,a#SBDDAT 16% PC,a#ERCLFC MGV 001126 020570 @(R0O) +,a#$BDDAT ;GET RHAS ; COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) IN RHCSZ2 ;*MAINTAINABILITY REGISTER 020352 020374 012737 013037 022737 001402 004737 000400 001126 000400 001124 16%: 001126 MOV MOV CMP BEQ JSR 020570 #400,a#$GDDAT @(RO) + ,a#$BDDAT #400,a#$8DDAT 17% PC,a#ERCLFC ;GOOD DATA FOR ERROR TYPEOUT ;TEST DATA ;COMPARE DATA ;BRANCH IF GOOD ;JUMP TO ERROR FOR CLR (BIT 5) ;*DRIVE STATUS REGISTER 020400 012737 000700 001124 17%: MOV #700,a#$GDDAT ;GOOD DATA FOR PRINTOUT n o ~N AMABMAAMAMAMAMAMAMMAMAMNANAMAAMAMNAMRBAMDNNAMDNNAN 020166 020174 020200 020206 020210 A ;*ERROR 2 REGISTER A JSR 020570 #17437 ,a#$BDDAT ; COMPARE DATA 11% ;BRANCH IF GOOD PC.,a#ERCLFC ;JUMP TO ERROR FOR C.R (BIT 5) CZF A BEQ SEQ 0082 SEQ 0081 A CMP 001126 7 PAGE 83 A 017437 0D 12:41 A 022737 001402 004737 T44 27-JUL-78 DRIVE CLEAR A 020152 020160 020162 MACY11 30A(1052) A CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 CZRJGCO,.RP04/5/6 DSKLS CTRLRT CZRJIGC.P11 26=JUL-78 10:10 3528 3529 3530 3531 3532 gggz 020406 020410 020414 020420 020424 020426 013046 011637 042716 022726 001402 004737 MACY11 30A(1052) 27-JUL-78 T44 DRIVE CLEAR MOV MOV BIC CMP BEQ JSR 001126 001000 000700 020570 gggg 3537 3538 3539 3540 ggzg 020432 020440 020444 020452 020454 013737 013037 023737 001402 004737 002010 001126 002010 001124 20%: 001126 020570 3543 354 3546 020460 013737 002012 001124 21%: 3547 3548 3549 gggg 020466 020472 020500 020502 013037 023737 001402 004737 001126 002012 001126 020570 ggg% 3554 3555 020506 020514 012737 013037 3557 gggg 020526 020530 001402 004737 3556 020520 022737 000000 001126 000000 001124 22%: 001126 322? 3562 3563 020534 020542 012737 013037 3565 gggg 020554 020556 001402 004737 3564 020546 022737 000000 001126 000000 001124 23%: 001126 3568 gggg 3571 %g;% PAGE 84 a(R0)+,=(SP) (SP) ,a~$BDDAT #PROG, (SP) #700, (SP) + 208 PC,a#ERCLFC :GET RHDS1 ;TEST DATA :CLEAR PROG BIT :COMPARE DATA :BRANCH IF GOOD :JUMP TO ERROR FOR DRIVE CLEAR 005720 24%: gg;g 3576 %g;g 020564 005720 3579 gggg 020566 020566 000413 3582 3583 020570 020574 014037 104001 25%: 26%: 042270 CZR CZF L A 4 4 ¢ f MOV MOV CMP BEQ JSR L ¢ ¢ { : a#SAVDT ,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT @a(R0O)+,a#$BDDAT :TEST DATA a#SAVDT ,a#SBDDAT :COMPARE DATA 218 :BRANCH IF GOOD PC,a#ERCLFC :JUMP TO ERROR FOR CLR (BIT 5) :*SERIAL NUMBER REGISTER MOV MOV CMP BEQ JSR ¢ A#SAVSN,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(RO) +,a#$BDDAT ;TEST DATA ¥ SAVSN, a#SBDDAT :COMPARE DATA 22% :BRANCH IF GOOD PC,a#ERCLFC :JUMP TO ERROR FOR CLR (BIT 5) ! { ¢ ¢ ¢ f :*ECC1 POSITION : MOV MOV #0,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT a(RO) +,a#$BDDAT ;TEST DATA BEQ JSR 23% PC,a#ERCLFC [ { ¢ #0,a#$BDDAT :COMPARE DATA :BRANCH IF GOOD :JUMP TO ERROR FOR CLR (BIT 5) { : :*ECC2 PATTERN : MoV MOV #0,a#SGDDAT :GOOD DATA FOR ERROR TYPEOUT @a(R0)+,a#$BDDAT :TEST DATA BEQ JSR 24$ PC,a#ERCLFC { [ ¢ #0,a#$BDDAT :COMPARE DATA :BRANCH IF GOOD :JUMP TO ERROR FOR CLR (BIT S) TST (RO) + { [[] [ : *LOOK=-AHEAD REGISTER 020562 SEQ 0083 SEQ 0082 2 CMP 020570 12:41 = :*DRIVE TYPE CMP 020570 E 7 { :AS THE LOOK-AHEAD REG. CANNOT BE PREDICTED :IT IS NOT CHECKED AFTER AN INIT ‘ : :«CURRENT CYLINDER ADDRESS REGISTER : TST (RO) + :AS THE CURRENT CYL REG. CANNOT BE PREDICTED :AFTER AN INIT IT IS NOT CHECKED 4 ‘ BR TST4S :BRANCH OVER JSR ' < ERCLFC: MOV ERROR -(RO), 1 Q#REGADR :FAILING REGISTER ADDRESS :CLR FUNCTION = 10 IN RHCS1 DID ‘ { 020576 020600 005720 000207 020602 020604 020610 020614 005720 004737 104401 000000 R 27=-JUL=78 DRIVE CLEAR TST 042654 062450 F 12:41 + (RO) RTS PC TST JSR (RO) + PC,a#CHECKT TYPE HALT ,CPHALT 7 PAGE 85 sNOT CLEAR APPROPIATE BITS ;OR CLEARED EXTRA BITS ;UNDO =(RO) FOR ERROR sRETURN TO ABOVE PROGRAM ;OR CLEARED EXTRA BITS ;JUNDO =(RO) FOR BAD DATA ;CHECK THAT DVA,RDY,DPR,DRY = 1 CANNOT CONsJAND THAT NO OTHERS = 1. ;STOP THE TEST SEQ 0084 SEQ 0083 0 3?A(1052) AN A A SSASMSAMSASAMAMBNARAMAMAMAMARANAMRARARARARADANANBAADANADLNANBANDNDANDLNDDDEDDDDDDDDDDDDDDDDDN 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 MACY11 alal NN CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JUL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJIGC.P1 26=-JuL-78 10:10 3594 3595 3596 3597 T4 TST4S: 000004 012706 012737 004737 012777 005077 013777 017746 MACY11 30A(1052) 160774 002072 161014 27-JUL-78 DRIVE CLEAR SCOPE G 12:41 7 PAGE 86 002032 MOV MOV JSR #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK sRESET STACK ;THIS SAVES TEST NUMBER JINIT AND SET UP GENERAL REG. CORRES. sAND UNIT NUMBER ;SET DIAGNOSTIC MODE BIT 161014 MoV #DMD , 3RHMR 160762 CLR MOV MoV aRHDST sMAKE DESIRED SECTOR TRACK LEGAL @#SEECOM,aRHCST ;LOAD SEEK COMMAND INTO CONTROLLER aRHCC,~=(SP) ;GET CURRENT CYLINDER ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*FOLLOWING ARE TWO BLOCKS OF CODE TO LOAD RHCA WITH THE PROPER ;*ADDRESS DEPENDING UPON WHETHER THE DRIVE IS AN RP0O6 OR RPO4 020662 020666 020679 020674 020676 020704 020706 020714 020722 020724 020730 020732 020740 020742 020750 005737 001416 022726 001404 012737 000403 012737 013777 000415 022726 013777 002036 001456 001456 001210 001455 001210 001210 160730 ?05: 11%: 000632 000632 001210 000631 001210 001210 160674 12%: 13%: ;MOVE DRIVE TYPE FLAG TO ITSELF TO TEST :TREAT THE DRIVE AS AN RPO4 TST BEQ a#RPO6 CMP BEQ MOV BR #814.,(SP)+ 9% MOV MOV BR CMP BEQ MCV BR MOV MOV 118 #814. , QNS TMPS 108 #813. ,a#$TMP5 ?z:TMPS.SRHCA #410.,(SP)+ 12% 13$ #609. ,a¥$TMPS a¥STMPS ,aRHCA ;TREAT THE DRIVE AS AN RP06 ;1S CURRENT CYLINDER SAME AS 814. ? ;BRANCH IF YES TO MAKE RHCA = 813. ;GET READY TO MAKE RHCA = 814. sFILL RHCA ;GET READY TO MAKE RHCA = 813. ;MAKE DESIRED CYLINDER 814., OR 813, ;SAVE REGISTERS ;TREAT THE DRIVE AS AN RP0O4 ;1S CURRENT CYLINDER SAME AS 410. ? ;BRANCH IF YES TO MAKE RHCA = 409. ;GET READY TO MAKE RHCA = 410. sFILL RHCA ;GET READY TO MAKE RHCA = 409. JMAKE DESIRED CYLINDER 410., OR 409. ;*SAVE REGISTERS FOR COMPARISON AFTER GO 020756 020762 020764 020766 004077 001632 003154 000023 043312 020770 052777 000001 14%: JSR RHWC REINTO RO,a#SAVER ;NUMBER OF REGISTERS SAVED 19. 160642 :*GIVE GO TO COMMAND BIS s SAVE ;FROM :T0 #GO,aRHCS1 ;GO TO COMMAND ;*CHANGE SAVED REGISTERS TO EXPECTED VALUES 020776 021004 021012 052737 052737 042737 000001 020000 000200 003162 003204 003204 BIS BIS BIC #GO,a#RE INTO+6 ;SAVED RHCS1 #PIP ,@#REINTO+30 ;SAVED RHDSI #DRY ,@#REINTO+30 ;SAVED RHDS1 SEQ 0085 SEQ 0084 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10:10 MACY11 30A(1052) T45 H 27-JUL-78 12:41 SEEK COMMAND TEST 7 PAGE 87 SEQ 0086 SEQ 0085 ;*AFTER GO HAS BEEN GIVEN FOR SEEK COMMAND :'gevgongISTERS AGAIN SO THAT COMPARISONS CAN * % 3654 3655 3656 3657 021020 021024 021026 021030 004037 001632 002110 000023 JSR 043312 RHWC WRFROM RO,a#SAVER 19. s SAVE ;FROM .TO :NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES AKRE ONLY VALID FOR THE LOWER BYTE 3663 021032 113737 003201 MovB 002135 ANREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE SEEK COMMAND ;*WITH CONTENTS AFTER GO IS ISSUED 013705 060505 016537 047624 3680 021074 104001 3683 021076 RO,a#COMPAR 2% 001630 1%: sRETURN FOR GOOD COMPARISON a#ERWORD ,R5 R5.R5 ;GETTING READY TO INDEX .DOUBLE ERROR WORD ERROR 1 ; IMPROPER REGISTER CHANGE RTS 000207 :GOOD BUFFER ;TEST BUFFER ;NUMBER JRETURN FOR ERROR ; SAME MOV ADD MoV 042270 ; COMPARE RHWC=2(RS) ,a#REGADR ;FAILING REGISTER ADDRESS PC ;AFTER SEEK COMMAND sWITH GO IS GIVEN RETURN TO COMPARISON ;*NOW GIVE INIT AND GET GO AND PIP DOWN 052712 013712 012777 000040 001774 000001 2%: 160542 BIS MOV MOV #CLR,aR2 @#UNIT,aR2 #DMD , aRHMR sRH INITILIZE JREINSTATE UNIT NUMBER ;SET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL sAND HOLDS RHLA FROM MOVING ;*CHANGE REGISTERS TO EXPECTED VALUE 3700 021146 042737 042737 052737 017737 013737 000001 020000 000200 160530 001210 003162 003204 003204 003216 003220 BIC BIC BIS MOV MOV #GO,a#REINTO+6_ ;SAVED RHCS1 #PIP ,@#REINTO+30 ;SAVED RHDSI #DRY ,a#RE INTO+30 ;SAVED RHDS1 @RHLA, a#RE INTO+42; SAVED RHLA AN¥STMPS ,a#REINTO+44 ;SAVED RHCC ;*AFTER INITILIZE SAVE REGISTERS SO THAT ;*COMPARES (AN BE DONE 2P 3F 3T E o aF oF oF o F 2 F 3 S o o o o o 021060 021064 021066 REINTO WRFROM 19, 1% 1% NV 3676 3677 3678 JSR A 043514 N 004037 003154 002110 000023 021060 021060 021100 N 021040 021044 021046 021050 021052 021054 021056 PO 3668 3669 3670 3671 3672 3673 3674 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26=JuL~-78 10:10 021154 021160 021162 021164 004037 001632 002110 000023 I =78 12:41 27-JUL MACY11 30A(1052) T45 SEEK COMMAND TEST 043312 JSR RHW( WRFROM 19. 7 PAGE 88 RO,a#SAVER SEQ 0087 SEQ 0086 s SAVE FROM ;T0 :NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS :*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 021166 113737 003201 002135 MOVB SHREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS 021232 000207 104001 3%: 047624 001630 042270 021234 MOV ADD MOV ERROR Q#ERWORD ,R5 ;GETTING READY TO INDEX R5.RS :DOUBLE ERROR WORD RHWC=2(RS) ,a#REGADR ;FAILING REGISTER ADDRESS RTS PC 5 004737 042620 021240 012777 000001 021246 021254 013777 005077 002072 160372 021266 021270 004037 001632 003154 000023 021272 052777 JSR PC,a#CLDISK 160412 MOV #DMD , 3RHMR 160364 MOV CLR a#SEECOM,aRHCS1 aRHCA sINIT AND SET UP GENERAL REG. sAND UNIT NUMBER sSET DIAGNOSTIC MODE BIT sTHIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;LOAD SEEK COMMAND INTO RHC ;DESIRED CYLINDER ADDRESS ;*SAVE REGISTERS FOR COMPARISON AFTER GO 043312 JSR RHWC REINTO RO,a#SAVER 160340 s SAVE FROM T0 NUMBER OF REGISTERS SAVED 19. 000001 ; IMPROPER REGISTER :CONTENTS AFTER GIVING AN sINITILIZE FOLLOWING A ; SEEK COMMAND JRETURN TO COMPARISON ;GOOD COMPARISON 4%: 021234 021260 021264 ; SAME JRETURN POINT FOR GOOD COMPARISON 4% :*GIVE GO TO SEEK COMMAND #GO,aRHCS1 BIS ;GO TO SEEK COMMAND s *CHANGE SAVED REGISTERS TO EXPECTED VALUES 021300 052737 000001 003162 BIS VIV PP 013705 060505 016537 3% 3% ; COMPARE :GOOD BUFFER ;TEST BUFFER sNUMBER OF REGISTERS TO BE ; COMPARED JRETURN POINT FOR ERROR o b ol b b 021214 021220 021222 021230 RO, a#COMPAR bl l o o 021214 021214 021234 JSR REINTO WRFROM 19. bk ol o S S S 021206 021210 021212 043514 #GO,#REINTO+6 sSAVED RHCS1 N S O A O A 004037 003154 002110 000023 B 021174 021200 021202 021204 o ;*COMPARE REGISTERS AFTER INITIALIZE CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26=JuL-78 10:10 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 021306 021314 052737 042737 020000 000200 MACY11 30A(1052) T45 -78 27-JUL SEEK COMMAND TEST 7 PAGE 89 #PIP,a#REINTO+30 ;SAVED RHDS1 #DRY ,a~REINTO+3C ;SAVED RHDS1 BIS BIC 003204 003204 J 12:41 ;*AFTER GO HAS BEEN GIVEN TO SEEK COMMAND :*g@vg REGISTERS AGAIN SO THAT COMPARISONS CAN . % 021322 021326 021330 021332 004037 001632 002110 000023 ON JSR 043312 RHWC RO,a#SAVER WRFROM 19. s SAVE ;FROM :T0 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 021334 113737 003201 :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOVB 002135 ANREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE COMMAND ;*WITH CONTENTS AFTER GO IS GIVEN JSR 043514 021342 021346 021350 021352 021354 021356 021360 021362 021366 021370 021376 REINTO WRFROM 1. 5% 5% 047624 001630 5%: 6% MOV ERROR 042270 RTS 021400 RO, a#COMPAR ; COMPARE :GOOD BUFFER ;TEST BUFFER sNUMBER JRETURN FOR ERROR ; SAME sRETURN FOR GOOD COMPARISON ;GETTING READY TO INDEX .DOUBLG ERROR WORD RHWC=2 (RS) ,a#REGADR ;FAILING REGISTER ADDRESS 1 ; IMPROPER REGISTER CHANGE :AFTER COMMAND PC ;WITH GO IS GIVEN sRETURN TO COMPARISON ;*NOW GIVE INIT AND GET GO AND PIP DOWN NOWVMSAWN=O EREEER RS §8 021402 021406 021412 052712 013712 012777 000040 001774 000001 6%: 160240 BIS MOV MOV #CLR,aR2 @#UNIT ,aR2 #DMD , aRHMR sRH INITILIZE JREINSTATE UNIT NUMBER sSET DIAGNOSTIC MODE BIT sTHIS ENABLES COMMANDS WITHOUT MOL sAND HOLDS RHLA FROM MOVING ;*CHANGE REGISTERS TO EXPECTED VALUE 021420 021426 021434 021442 021450 042737 042737 052737 017737 005037 003162 003204 003204 003216 BIC BIC BIS MOV CLR #GO,a#RE INTO+6_ ;SAVED RHCS1 #PI1P,a#REINTO+30 ;SAVED RHDS1 #DRY ,a#RE INTO+30 ;SAVED RHDS1 @RHLA , a#RE INTO+42; SAVED RHLA ANREINTO+44 sSAVED RHCC s*AFTER INITIALIZE SAVE REGISTERS SO THAT ;*COMPARES CAN BE DONE SEQ 0088 SEQ 0087 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P 26=-JuL-78 10:10 021454 021460 021462 021464 021466 004037 001632 002110 000023 113737 K MACY11 30A(1052) 27-JUL-78 12:41 T45 SEEK COMMAND TEST JSR 043312 RHW( WRFROM RO,a#S/\VER 19. 003201 7 PAGE 90 SEQ 0089 SEQ 0088 s SAVE sFROM ;70 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB 002135 AFREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS :*COMPARE REGISTERS AFTER INITALIZE 004037 003154 002110 000023 021506 021510 021512 021514 021514 021534 021514 021520 021522 021530 013705 060505 016537 021532 021534 000207 104001 JSR REINTO WRFROM 19. 043514 7$ ; COMPARE ;GOOD BUFFER ;TEST BUFFER sNUMBER OF REGISTERS TO BE ; COMPARED RETURN POINT FOR ERROR 8% *RETURN POINT FOR GOOD COMPARISON 7% 7%: 047624 001630 042270 8%: MOV ADD MOV ERROR RTS RO, a#COMPAR ; SAME Q#ERWORD ,R5 ;GETTING READY TO INDEX R5,R5 -DOUBLE ERROR WORD RHWC=-2(R5) ,@#REGADR ;FAILING REGISTER ADDRESS 1 :# CONTENTS AFTER GIVING AN COMMAND . PC JRETURN TO COMPARISON ;GOOD COMPARISON Eab al ab ok 3 » BEDDDDEEDDDDDEDEEEREENNNNSE 021474 021500 021502 021504 CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JuL~-78 10:10 3851 3852 3853 021536 021542 021550 3855 021554 000004 012706 012737 MACY11 30A(1052) T45 TST46: 004737 001000 000046 042620 002032 012777 000001 160076 T 27-JUL=-78 12:41 SEEK COMMAND TEST MOV MOV PAGE 91 #STACK,SP #TTNO,a#TSTNM JSR PC,a#CLDISK MOV #DMD , 3RHMR JRESET STACK ;THIS SAVES TEST NUMBER sINIT AND SET UP GENERAL REG. sAND UNIT NUMBER sSET DIAGNOSTIC MODE BIT sTHIS ENABLES COMMANDS WITHOUT MOL sAND HOLDS RHLA FROM MOVING 3859 021562 013777 002044 MOV 160050 @¥UNLOAD ,aRHCS? ;LOAD UNLOAD COMMAND INTO RH ;*SAVE REGISTERS FOR CCMPARISON AFTER GO 3863 3864 3865 021570 021574 021576 021600 004037 001632 003154 000023 043312 3869 021602 052777 000001 JSR RO,a#SAVER RHWC REINTO 19. 3872 3873 3874 021610 021616 021624 052737 052737 042737 000001 020000 000200 3876 3877 3878 3879 021632 021636 021640 021646 005737 001053 032777 001047 001100 3881 3882 021650 021654 000441 104401 021656 3884 3885 021760 021764 013746 104405 001774 020000 s SAVE :FROM ;70 sNUMBER OF REGISTERS SAVED :*GIVE GO TO UNLOAD COMMAND BIS 160030 #G0,aRHCST :GO TO UNLOAD COMMAND :*CHANGE SAVED REGISTERS TO EXPECTED VALUES 003162 003204 003204 BIS BIS BIC #GO,a#REINTO+6_ ;SAVED RHCS1 #PIP,3#REINTO+30 ;SAVED RHDS1 #DRY ,a#RE INTO+30 ;SAVED RHDS1 TST a#$PASS ;1S THIS FIRST PASS BNE 5% JBRANCH IF SW13 HIGH BNE BIT 157272 5% #SW13,3SWR TYPE ;BRANCH IF NOT FIRST PASS sINHIBIT ERROR_PRINT HIGH? BR 649 ,65% ;:TYPE ASCIZ STRING MOV QHUNIT ,-(SP) sJUNIT UNDER TEST TYPDS ;;GET OVER THE ASCIZ s*AFTER GO HAS BEEN GIVEN TO UNLOAD COMMAND :*géVgD EEGISTERS AGAIN SO THAT COMPARISONS CAN 1% 3891 3892 3893 021766 021772 021774 021776 022000 004037 001632 002110 000023 113737 5%: 043312 JSR RHW( WRFROM 19. 003201 002135 ON RO,a#SAVER s SAVE :FROM :T0 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOvB AHFREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE UNLOAD COMMAND ;*WITH AFTER GO SEQ 0090 SEQ 0089 CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JUL-78 10:10 MACY11 30A(1052) T46 M7 27-JUL-78 12:41 PAGE 92 UNLOAD COMMAND TEST ; COMPARE ;GOOD BUFFER ;TEST BUFFER NUMBER sRETURN FOR ERROR JSR REINTO WRFROM 19. 1% RO,a#COMPAR 2% MoV ADD MOV :RETURN FOR GOOD COMPARISON ANERWORD ,R5 ;GETTING READY TO INDEX R5.R5 :DOUBLE ERROR WORD RHWC=2 (RS) ,a#REGADR ;FAILING REGISTER ADDRESS 104001 ERROR 1 022044 000207 RTS PC 022046 022052 022056 052712 013712 012777 043514 022006 022012 022014 022016 022020 022022 022024 022026 022032 022034 016537 022042 1% 047624 001630 000040 001774 000001 1%: 042270 2%: ; IMPROPER REGISTER CHANGE sAFTER UNLOAD COMMAND ;WITH GO IS GIVEN sRETURN TO COMPARISON ;*NOW GIVE INIT AND GET ALL GO AND PIP DOWN BIS #CLR,aR?2 sRH INITILIZE MOV a#UNIT ,aR2 SREINSTATE UNIT NUMBER MOV 157574 ; SAME #DMD , 3RHMR sSET DIAGNOSTIC MODE BIT sTHIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING 022064 022072 022100 022106 042737 042737 052737 017737 000001 020000 000200 157562 :*CHANGE REGISTERS TO EXPECTED VALUE BIC 003162 003204 003204 003216 BIC BIS MoV #GO,a#REINTO+6_ ;SAVED RHCS1 #P1P,QHRE INTO+30 ; SAVED RHDS1 #DRY ,@#RE INTO+30 :;SAVED RHDS1 @RHLA,Q#RE INTO+42; SAVED RHLA s*AFTER INITIALIZE SAVE REGISTERS SO THAT :*COMPARES CAN BE DONE 022114 022120 022122 022124 004037 001632 002110 000023 043312 JSR RHW( WRFROM RO,a#SAVER 19. 022126 113737 003201 022134 022140 022142 022144 004037 003154 002110 000023 043514 022146 022150 022152 022154 022154 022174 022154 022160 013705 060505 FROM :T0 *NUMBER OF REGISTERS SAVED ;*COMPARE REGISTERS AFTER INITIALIZE ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 002135 MOVB SHREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS JSR RO,a#COMPAR REINTO WRFROM 19. 3%: MOV ADD ; COMPARE :GOOD BUFFER ;TEST BUFFER ;NUMBER OF REGISTERS TO BE ; COMPARED 3% 3% 4% 047624 s SAVE sRETURN POINT FOR ERROR : SAME sRETURN POINT FOR GOOD COMPARISON A#ERWORD ,R5 R5.R5 ;GETTING READY TO INDEX ;DOUBLE ERROR WORD SEQ 0091 SEQ 0090 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JuUL~-78 10:10 3960 3961 3962 3963 3964 3965 3966 022162 022170 016537 104001 022172 022174 000207 001630 N 7 MACY11 39_2?052) 27-JUL-78 12:41 PAGE 93 UNLOAD COMMAND TEST 042270 MOV ERROR 4$: RTS RHWC=2(R5) ,a#REGADR ;FAILING REGISTER ADDRESS 1 ; IMPROPER REGISTER ;CONTENTS AFTER GIVING AN sUNLOAD COMMAND PC sRETURN TO COMPARISON ;GOOD COMPARISON SEQ 0092 SEQ 0091 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JuL-78 10:10 3967 3968 3969 3970 B 27-JUL-78 12:41 PAGE 94 UNLOAD COMMAND TEST 156736 BIT BEQ JMP #SW4 ,A5WR 6% TST51 ;TEST FOR NO OFFSET OR RTC ;IF = 0, DO THE NEXT TWO TESTS ;SKIP THE NEXT TWO TESTS sCONTINUE WITH NEXT TWO TESTS #STACK,SP #TTNO,a#TSTNM sRESET STACK ;THIS SAVES TEST NUMBER #DMD , aRHMR T46 022174 022202 022204 022210 032777 001402 000137 022210 022212 022216 022224 000004 012706 012737 004737 001000 000047 042620 002032 SCOPE MOV MOV 022230 012777 000001 157422 MOV 022236 022244 052777 042777 000004 000004 157414 157406 BIS 000020 8 MACY11 30A(1052) 023162 6%: TST47: JSR PC.,a#CLDISK SEQ 0093 SEQ 0092 ) ;INIT AND SET UP GENERAL REG. sAND UNIT NUMBER sSET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*GIVE ONE INDEX PULSE TO CLEAR RHLA BEFORE THE START OF THIS TEST BIC #MINX , aRHMR A#MINX ,aRHMR sSET INDEX PULSE ;CLEAR INDEX ;*TO ENABLE LOOP ON THIS TEST THE POSITIONER HAS TO ;*BE BROUGHT TO CENTER LINE 017777 013711 005211 157420 002072 022266 022272 022300 022306 022310 012700 012777 012777 005300 001370 000004 000011 000001 022312 004737 042620 022316 012777 000001 022324 022332 013777 012777 002074 000001 022340 022344 022346 022350 004037 001632 003154 000023 043312 022352 052777 000001 157260 :*GIVE GO TO OFFSET COMMAND BIS #GO,aRHCST ;GO TO OFFSET COMMAND 022360 022366 052737 052737 000001 020000 003162 003204 BIS BIS 022252 022260 022264 MOV MOV INC 157372 aRHCC ,aRHCA a#SEECOM,aR1 aR1 ;SET DESIRED CYLINDER TO RHCC ;SEEK COMMAND TO RHCS1 ;GO TO SEEK COMMAND ;*FOUR SECTOR CLOCKS ARE GIVEN TO TAKE POSITIONER OFF OFFSET POSITION MOV MOV MOV DEC BNE ; COUNTER #4 RO #MSTCK ! DMD ,aRHMR :SET SECTOR CLOCK #DMD , aRHMR JRESET SECTOR CLOCK RO s COUNT 5% ;BRANCH IF NOT COMPLETE JSR PC,a#CLDISK 157334 MOV #DMD , aRHMR 157306 157310 MOV MOV a#0F SETC ,aRHCST1 ;LOAD AN OFFSET BIT sSET AN OFFSET BIT #OF 25 ,aRHOF 157360 157352 5%: INIT AND SET UP GENERAL REG. sAND UNIT NUMBER ;SET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*SAVE REGISTERS FOR COMPARISON AFTER GO JSR RHWC REINTO 19. RO,a#SAVER : SAVE ;FROM ;70 ;NUMBER OF REGISTERS SAVED :*CHANGE SAVED REGISTERS TO EXPECTED VALUES #GO,a#REINTO+6_ ;SAVED RHC(S1 #PIP,a#REINTO+30 ;SAVED RHDS1 CZRJIGCO,RPO4/5/6 DSKLS CTRLRI] CZRJIGC.P1T 26=JUL=78 10:10 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 022374 042737 000200 C 8 PAGE 95 27-JUL=78 12:41 MACY11 30A(1052) 147 OFFSET COMMAND TEST BIC 003204 ;*AFTER GO HAS BEEN GIVEN TO OFFSET COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARISONS CAN ;*BE DONE 022402 022406 022410 022412 004037 001632 002110 000023 JSR RHWC 043312 4043 0464 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 RO,a#SAVER WRFROM 19. s SAVE ;FROM 310 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 022414 113737 003201 :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%S0 THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MoV8 002135 ANREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE OFFSET COMMAND ;*WITH AFTER GO 4041 4042 #DRY ,a#REINTO+30 ;SAVED RHDS1 022422 022440 022442 022446 022450 022456 004037 003154 002110 000023 022442 022442 022462 043514 013705 047624 JSR REINTO WRFROM 19. 1% 1% RO, a#COMPAR 2% 001630 1%: 042270 022460 : COMPARE ;GOOD BUFFER ;TEST BUFFER :NUMBER RETURN FOR ERROR ; SAME :RETURN FOR GOOD COMPARISON MOV ADD MOV ERROR @#ERWORD RS ;GETTING READY TO INDEX R5,R5 -DOUBLE ERROR WORD RHWC=2(R5) ,a#REGADR ;FAILING REGISTER ADDRESS 1 ; IMPROPER REGISTER CHANGE RTS PC :AFTER OFFSET COMMAND ;WITH GO IS GIVEN ;REiURN TO COMPARISON ;*NOW GIVE INIT AND GET ALL GO AND PIP DOWN 022462 022466 022472 052712 013712 012777 000040 001774 000001 042737 042737 042737 052737 017737 000001 157140 2%: 157160 003162 003172 003204 003204 003216 BIS MOV MOV #CLR,aR2 ;RH INITILIZE #DMD , aRHMR ;SET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING a#UNIT ,aR2 sREINSTATE UNIT NUMBER :*CHANGE REGISTERS TO EXPECTED VALUE #GO,a#REINTO+6 ;SAVED RHCS1 BIC BIC BIC BIS MOV #OF 25, 3#RE INTO+16; SAVED RHOF #PIP.#REINTO+30 :SAVED RHDS1 #DRY . S#RE INTO+30 :SAVED RHDS1 ARHLA , a#RE INTO+42: SAVED RHLA s*AFTER INITIALIZE SAVE REGISTERS SO THAT :*COMPARES CAN BE DONE 022536 022542 004037 001632 043312 JSP RHW( RO,a#SAVER ; SAVE ;FROM SEQ 0094 SEQ 0093 CZ CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P11 26-JuL-78 10:10 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 409% 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 022544 022546 113737 003201 022556 004037 003154 002110 000023 043514 022570 022572 022574 022576 022576 022576 022602 022604 022612 013705 060505 016537 022614 000207 JNUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS :*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MoV8 002135 SFREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS AFTER INITIALIZE JSR REINTO WRFROM 19. RO,a#COMPAR 3% 4% 3%: 047624 001630 042270 (%: ; COMPARE :G0OD BUFFER ;TEST BUFFER :NUMBER OF REGISTERS TO BE ; COMPARED sRETURN POINT FOR ERROR 3% 022616 104001 ;T0 WRFROM 19. 002110 000023 022550 022616 8 D PAGE 96 12:41 8 30A(1052) MACY11 27=JUL=7 T47 OFFSET COMMAND TEST s SAME sRETURN POINT FOR GOOD COMPARISON MOV ADD MOV ERROR @#ERWORD ,R5 ;GETTING READY TO INDEX R5.R5 ;DOUBLE ERROR WORD RHWC=2(R5) ,a#REGADR ;FAILING REGISTER ADDRESS ; IMPROPER REGISTER 1 RTS PC ;CONTENTS AFTER GIVING AN sINITIALIZE FOLLOWING A ;OFFSET COMMAND JRETURN TO COMPARISON .GOOD COMPARISON SEQ 0095 SEQ 0094 czl czl JAND UNIT NUMBER ;SET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*GIVE ONE INDEX PULSE TO CLEAR RHLA BEFORE THE START OF THIS TEST 052777 042777 000004 000004 157006 157000 BIS BIC A#MINX , aRHMR #MINX, aRHMR ;CLEAR INDEX sSET INDEX PULSE 022660 013777 002076 156752 MOV @RETCL,aRHCST ;LOAD RETURN TO CENTER LINE COMMAND INTO RHCS1 022666 022672 022674 022676 004037 001632 003154 000023 043312 022700 052777 000001 022706 022712 022720 022726 022730 012700 012777 012777 005300 001370 000004 000011 000001 156740 156732 022732 022740 022746 052737 052737 042737 000001 020000 000200 003162 003204 003204 ;*GIVE GO TO RETURN TO CENTER LINE COMMAND BIS 156732 #GO,aRHCST ;GO TO RETURN TO CENTER COMMAND ;*FOUR SECTOR CLOCKS ARE GIVEN TO TAKE POSITIONER TO CENTER LINE 5%: MOV MOV MOV DEC BNE s COUNTER #4 ,RO SET SECTOR CLOCK !DMD ,@RHMR;K AMSTC #DMD , 3RHMR sJRESET SECTOR CLOCK s COUNT RO 5% ;BRANCH IF NOT COMPLETE ;*CHANGE SAVED REGISTERS TO EXPECTED VALUES #GO,a#REINTO+6_ ;SAVED RHCS1 #PIP ,a#REINTO+30 ;SAVED RHDSI #DRY ,@#REINTO+30 ;SAVED RHDS1 BIS BIS BIC ;*AFTER GO HAS BEEN GIVEN TO RETURN TO CENTER LINE COMMAND 022754 022760 022762 022764 4158 4159 4161 4162 022766 004037 001632 002110 000023 113737 ;*SAVE REG.ISTERS AGAIN SO THAT COMPARISONS CAN ;«BE DONE 043312 JSR RHWC WRFROM 19. 003201 002135 RO,a#SAVER ; SAVE JFROM ;10 :NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB QHREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE RETURN TO CENTER LINE COMMAND n (al ~N W W N W T ;NUMBER OF REGISTERS SAVED S :FROM ;T0 O 1. s SAVE S RO,a#SAVER W RHWC REINTO U ;*SAVE REGISTERS FOR COMPARISON AFTER GO JSR O N 022644 022652 W #DMD , aRHMR W MOV W 157014 JRESET STACK ;THIS SAVES TEST NUMBER sINIT AND SET UP GENERAL REG. W 000001" #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK W 022636 012777 002032 N 042620 SCOPE MOV MOV JSR W 000004 012706 012737 004737 N 3 ONOVSWN=O b b Pl o b b cnd o TST50: 022616 022620 022624 022632 b ad i b CZF W 4107 4108 SEQ 0096 SEQ 0095 NS CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJGC 11 26=JuL-78 10:10 E 8 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 97 147 OFFSET COMMAND TEST 4163 4164 4165 4166 4167 4168 4169 4170 LN 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 022774 004037 003154 002110 000023 023014 023014 023034 043514 013705 060505 016537 047624 104001 023032 ;*WITH AFTER GO JSR REINTO RO,a#COMPAR WRFROM 19. 1% 1% ;TEST BUFFER NUMBER JRETURN FOR ERROR ; SAME 2% 001630 1%: 042270 000207 ; COMPARE :GOOD BUFFER :RETURN FOR GOOD COMPARISON MOV ADD MOV ERROR @#ERWORD ,R5 ;GETTING READY TO INDEX R5,R5 :DOUBLE ERROR WORD RHWC=2(RS) ,@#REGADR ; FAILING REGISTER ADDRESS 1 ; IMPROPER REGISTER CHANGE RTS PC :AFTER RETURN TO CENTER LINE COMMAND sWITH GO IS GIVEN JRETURN TO COMPARISON ;*NOW GIVE INIT AND GET ALL GO AND PIP DOWN 2%: 023034 023040 023044 052712 013712 012777 000040 001774 000001 156606 023052 023060 023066 023074 042737 042737 052737 017737 000001 020000 000200 156574 003162 003204 003204 003216 023102 023106 023110 023112 004037 001632 002110 000023 BIS MOV MOV #CLR,aR2 @#UNIT ,aR2 #DMD , 3RHMR sRH INITILIZE JREINSTATE UNIT NUMBER sSET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*CHANGE REGISTERS TO EXPECTED VALUE #GO,a#REINTO+6_ ;SAVED RHCS1 #PIP ,3#REINTO+30 ;SAVED RHDSI1 #DRY ,@#REINTO+30 ;SAVED RHDS1 BIC BIC BIS MOV dRHLA, 3#RE INTO+42; SAVED RHLA s*AFTER INITIALIZE SAVE REGISTERS SO THAT ;*COMPARES CAN BE DONE 043312 JSR RHW( WRFROM RO,a#SAVER 19. : SAVE FROH ;10 :NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 023114 113737 003201 023122 023126 023130 023132 004037 003154 002110 000023 043514 023134 023136 023140 023142 023142 023162 023142 013705 ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOVB 002135 SHRE INTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;*COMPARE REGISTERS AFTER INITIALIZE JSR REINTO WRFROM RO,a#COMPAR 19. MOV OF REGISTERS TO BE ; COMPARED ;RETURN POINT FOR ERROR 3% 4% 3%: ;GOOD BUFFER sTEST FER ;NUMBER 3% 047624 ; COMPARE ; SAME :RETURN POINT FOR GOOD COMPAR]ISON a#ERWORD RS JGETTING READY TO INDEX ‘alal NN SEQ 0096 bol o] SEQ 0097 A A AAAAAMAMAMAAMAMAAMAMADLNRAAAADBDADLNADNDILI AN DDDDDEDDDDDDDDDDDDDN CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P11 26=-JUL~78 10:10 F 8 27-JUL-78 12:41 PAGE 98 MACY11 30A(1052) RETURN TO CENTER LINE COMMAND TEST 150 ~N po o o o Ol S O S S S N N N N N N N N N N N ;GOOD COMPARISON N 4%: JRETURN TO COMPARISON NN PC NN RTS ;CONTENTS AFTER GIVING AN sINITIALIZE FOLLOWING A RETURN TO ;CENTER LINE COMMAND N 023162 042270 N 000207 001630 R5.R5 ;DOUBLE ERROR WORD RHWC=2 (R5) ,a#REGADR ;FAILING REGISTER ADDRESS ; IMPROPER REGISTER 1 N 023160 104001 ADD MOV ERROR S 060505 016537 SEQ 0098 SEQ 0087 S 023146 023150 023156 750 P 4219 4220 6221 4222 4223 4224 4225 4226 4227 4228 G 8 PAGE 99 27-JUL=78 12:41 RETURN TO CENTER LINE COMMAND TEST ] CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 MACY11 30A(1052) 012777 000001 156450 JRESET STACK JSR PC,a#CLDISK sINIT AND SET UP GENERAL REG. sJAND UNIT NUMBER ;SET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING MOV #TTNO,a#TSTNM #DMD , aRHMR 4238 4239 4240 052777 042777 000004 000004 156442 156434 BIS BIC #MINX , 3RHMR #MINX, 3RHMR 023224 013777 002046 156406 MOV Q¥RECALI,ARHCST ;LOAD RECALIBRATE COMMAND INTO RHCS1 sSET INDEX PULSE ;CLEAR INDEX ;*SAVE REGISTERS FOR COMPARISON AFTER GO JSR 023232 023236 023240 023242 004037 001632 003154 000023 043312 023244 052777 000001 023252 023272 023274 012700 012777 012777 005300 001370 000004 000011 000001 156374 156366 023276 023304 023312 052737 052737 042737 000001 020000 000200 003162 003204 003204 RHWC REINTO RO,a#SAVER 19. s SAVE ;FROM :T0 sNUMBER OF REGISTERS SAVED ;*GIVE GO TO RECALIBRATE COMMAND BIS #GO,aRHCS1T ;GO TO RECALIBRATE COMMAND o ~N NN N #4 RO ; COUNTER #MSTCK !DMD ,aRHMR; SET SECTOR CLOCK #DMD , aRHMR sJRESET SECTOR CLOCK RO s COUNT 5% ;BRANCH IF NOT COMPLETE 023332 004037 001632 002110 000023 113737 043312 003201 ; *BE DONE JSR RO,a#SAVER s SAVE 19. sNUMBER OF REGISTERS SAVED RHW( WRFROM 002135 ;FROM ;10 ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB AMREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS N N N N 023320 023324 023326 023330 N ;*AFTER GO HAS BEEN GIVEN TO RECALIBRATE COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARISONS CAN N :*CHANGE SAVED REGISTERS TO EXPECTED VALUES #GO,a#REINTO+6_ ;SAVED RHCS1 #PIP,a#REINTO+30 ;SAVED RHDS1 #DRY ,@#REINTO+30 ;SAVED RHDS1 BIS BIS BIC N N N N 5%: NN ;*FOUR SECTOR CLOCKS ARE GIVEN TO TAKE POSITIONER TO CYLINDER 0 MOV MOV MOV DEC BNE N A 156366 N 4249 4250 4251 4252 4253 4254 255 4256 023210 023216 N 4244 4245 4246 4247 4248 ;*GIVE ONE INDEX PULSE TO CLEAR RHLA BEFORE THE START OF THIS TEST N 4241 4242 4243 ;THIS SAVES TEST NUMBER S S S S S S O S S S S S S aF o o o F o o 0P OB ol o o 023202 #STACK,SP MOV N 002032 SCOPE MOV N 001200 000051 042620 N 000004 012706 012737 004737 CZR N 4235 4236 4237 TSTS51: 023162 023164 023170 023176 SEQ 0099 SEQ 0098 P 4229 4230 4231 4232 4233 4234 8 MACY11 30A(1052) 27=JUL-78 12:41 PAGE 100 RETURN TO CENTER LINE COMMAND TEST 150 (al CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26~JuUL~-78 10:10 H CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.PT 26=JuL-78 10:10 MACY11 30A TS5 8 I PAGE 101 27=-JUL-78 12:41 RECALIBRATE COMMAND TEST SEQ 0100 SEQ 0099 ;*COMPARE REGISTERS BEFORE RECALIBRATE COMMAND 4285 023340 023344 023346 023350 023352 023354 023356 004037 003154 002110 ;*WITH AFTER GO JSR 043514 REINTO WRFROM RO,a#COMPAR ; COMPARE ;GOOD BUFFER ;TEST BUFFER sNUMBER JRETURN FOR ERROR ; SAME *RETURN FOR GOOD COMPARISON 1%: 047624 001630 023374 042270 a#ERWORD ,RS MOV RHWC=-2(R5) ,@#REGADR ;FAILING REGISTER ADDRESS ADD ERROR 023376 ;GETTING READY TO INDEX MOV RTS R5.R5 ;DOUBLE ERROR WORD 1 ; IMPROPER REGISTER CHANGE PC ;WITH GO IS GIVEN sRETURN TO COMPARISON sAFTER RECALIBRATE COMMAND ;*NOW GIVE INIT AND GET ALL GO AND PIP DOWN 2%: 052712 013712 012777 000040 001774 000001 156242 042737 042737 052737 017737 000001 020000 000200 156230 003162 003204 003204 003216 MOV #CLR,aR2 Q#UNIT ,aR2 , 3RHMR #DMD sRH INITILIZE JREINSTATE UNIT NUMBER sSET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL ;AND HOLDS RHLA FROM MOVING ;*CHANGE REGISTERS TO EXPECTED VALUE #GO,a#RE INTO+6 :SAVED RHCS1 BIC #P1P,3#REINTO+30 ;SAVED RHDS1 BIS #DRY ,a#RE INTO+30 ;SAVED RHDS1 BIC MOV @RHLA ,@#RE INTO+42; SAVED RHLA ;*AFTER INITIALIZE SAVE REGISTERS SO THAT :*COMPARES (AN BE DONE JSR RO,a#SAVER s SAVE 004037 003154 002110 000023 043514 023500 023502 023504 023506 023506 023526 023506 013705 ;*COMPARE REGISTERS AFTER INITIALIZE RO,a#COMPAR ; COMPARE JSR :GOOD BUFFER REINTO WRFROM ;TEST BUFFER ;NUMBER OF REGISTERS TO BE s COMPARED JRETURN POINT FOR ERROR 19. 3% 3% ; SAME JRETURN POINT FOR GOOD COMPARISON 4% 047624 3%: MOV ,RS a#ERWORD ;GETTING READY TO INDEX S 023466 023472 023474 023476 002135 O S S 003201 W S 113737 ;NUMBER OF REGISTERS SAVED F 58 oF o 023460 ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB QNREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS ;70 19. 000023 N RHWC WRF ROM X ;FROM 002110 PO S 043312 f 004037 001632 BIS MOV 016537 104001 001630 042270 RHWC=2 ;DOUBLE ERROR WORD RS) ,a#REGADR ;FAILING REGISTER ADDRESS ; IMPROPER REGISTER :CONTENTS AFTER GIVING AN sINITIALIZE FOLLOWING A sRECALIBRATE COMMAND JRETURN TO COMPARISON 2GOOD COMPARISON P L 4348 4349 060505 SEQ 0101 SEQ 0100 O 4341 4342 4343 6344 4345 4346 4347 8 PAGE 102 3 MACY11 30A(1052) 27=-JUL-78 51 RECALIBRATE COMMAND TEST Pl P o F W o S L CZRJGCO.?P04/5/6 DSKLS CTRLRI1 CZRJGC 26=JuUL-78 10:10 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 4350 4351 4352 4353 4354 4355 4356 023526 000004 012706 MACY11 30A(1052) 51 TST52: 27-JUL-78 K 12:41 8 PAGE 103 RECAL IBRATE COMMAND TEST 023542 012737 004737 001000 000052 042620 002032 MOV MOV JSR #STACK,SP #TTNO,@#TSTNM PC,a#CLDISK 023546 012777 000001 156104 MOV #DMD , aRHMR 023554 013777 002052 156056 MoV QWRELEASE ,@RHCS1 ;LOAD RELEASE COMMAND INTO RHCS1 023562 023566 023570 023572 004037 001632 003154 000023 043312 023574 023602 052777 052777 000001 000001 sRESET STACK ;THIS SAVES TEST NUMBER sJINIT AND SET UP GENERAL REG. sAND UNIT NUMBER sSET DIAGNOSTIC MODE BIT ;THIS ENABLES COMMANDS WITHOUT MOL sAND HOLDS RHLA FROM MOVING ;*SAVE REGISTERS FOR COMPARISON AFTER GO JSR RHW( REINTO RO,a#SAVER 1. s SAVE FROH T0 M’BER OF REGISTERS SAVED ;*GIVE GO TO RELEASE COMMAND BIS #G0,aRHCST ;GO TO RELEASE COMMAND sSET DMD TO HOLD RHLA #DMD , aRHMR BIS 156036 156050 :*CHANGE SAVED REGISTERS TO EXPECTED VALUES 023610 023616 023624 023630 023632 023634 052737 017737 004037 001632 002110 000023 000001 156052 “«AFTER GO HAS BEEN GI ‘EN TO RELEASE COMMAND BIS 003202 003216 MOV #DMD, 3#RE INTO+26; SAVED RHMR BRHLA, a#RE INTO+42: SAVED RHLA :*SAVE REGISTERS AGAIN SO THAT COMPARISONS CAN ;*BE DONE JSR RHW(C 043312 RO,a#SAVER WRFROM s SAVE :FROM :T0 . ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 023636 113737 003201 ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MovB 002135 ;*COMPARE REGISTERS BEFORE RELEASE COMMAND ;*WITH AFTER GO 043514 023644 023650 023652 023654 023656 JSR REINTO WRFROM 19. 1% 1% 2% 023662 023664 023670 023672 023700 013705 060505 016537 104001 047624 001630 QNREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS 1%: 042270 MOV ADD MOV ERROR RO,a#COMPAR : COMPARE :GOOD BUFFER s TEST BUFFER sNUMBER JRETURN FOR ERROR ; SAME JRETURN FOR GOOD COMPARISON Q#ERWORD ,R5 sGETTING REAYD TO INDEX R5.R5 :DOUBLE ERROR WORD RHWC=2(RS) ,@#REGADR ; FAILING REGISTER ADDRESS 1 : IMPROPER REGISTER CHANGE SEQ 0102 SEQ 0101 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JuUL-78 10:10 4406 4407 4408 4409 44610 MACY11 30A(1052) 152 27-JUL-78 L 12:41 RELEASE COMMAND TEST 8 PAGE 104 JAFTER RELEASE COMMAND 023702 023704 000207 2%: RTS PC sWITH GO IS GIVEN JRETURN TO COMPARISON SEQ 0103 SEQ 0102 CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26~-JUL-78 10:10 MACY11 30A(1052) 152 4611 4412 4613 TSTS3: 44614 4415 002032 155726 27-JUL-78 RELEASE COMMAND TEST MOV MOV JSR MOV JSR 0 TSTS4: 023740 023742 023746 023754 SCOPE 002032 MOV MOV 023760 012777 155656 MOV 023766 023772 024000 005077 012777 013711 155650 MOV 024004 004037 JSR 024010 024012 024014 001632 003154 000023 RHWC REINTO 19. 024016 024022 024026 004737 104401 m 12:41 JSR 8 PAGE 105 #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK #DMD , aRHMR RO, a#MAKECYL sRESET STACK ;THIS SAVES TEST NUMBER sINIT DRIVE sSET DIAGNOSTIC MODE ;SUBROUTINE TO GIVE A SEEK #STACK,SP #TTNO,a#TSTNM sJRESET STACK ;THIS SAVES TEST NUMBER PC,a#CLDISK SEQ 0104 SEQ 0103 sCHANGE RHCC TO O sINIT AND SET UP GENERAL REGISTERS ;*THESE ARE REGULAR SET UPS FOR SEARCH COMMAND CLR MOV #21. ,3RHDST 3 aRHCA #FMT22 , ARHOF a#SERCH,aR1 ;DESIRED SECTOR/TRACK REGISTER sTRACK 0 SECTOR 21 ;DESIRED CYLINDER =0 ;FORMAT BIT=1 (16 BITS PER WORD) ;FILL SEARCH COMMAND IN RHCS1 :*NOW SAVE REGISTERS STARTING FROM RHWC IN WRITE FROM BUFFER JSR 042654 062450 TYPE HALT RO,a#SAVER PC,a#CHECKT LCPHALT ;SAVE REGISTERS FOR COMPARISON ;AT THE END OF THE SEARCH ;START SAVING FROM RHWC ;SAVE INTO REINTO ;NUMBER OF REGISTERS SAVED ;CHECK THAT DVA,RDY,DPR,DRY = 1 sAND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- ;*NOW THE DIAGNOSTIC MODE BIT WILL BE SET ;*AND THE SEARCH OPERATION STARTED 024030 CLR assTMP1 sTHIS WILL HAVE THE EXPECTED ;VALUE OF RHLA REGISTER MOV a#RHMR RO BIC #177400,R3 sNOW RO HAS MAINTENANCE REG. ADDR. ;GET DESIRED SECTOR/TRACK REG. *GET SECTOR ONLY MOV #DMD , aR : MOV MOV 155552 024116 024122 BIS BIS BIC NOP BIS BIC NOP BIS MOV TST @RHDST ,R3 R3,SECTR #GO,3RHCS1 #MSTCK ,aR0 #MSTCK . aRO *DUPLICATE SECTOR GO *SET SECTOR CLOCK *CLEAR SECTOR CLOCK *ALLOW TIME BETWEEN SECTOR CLOCKS #MSTCK , 3RO *SET SECTOR CLOCK #MSTCK . aRO *CLEAR SECTOR CLOCK *ALLOW TIME BETWEEN SECTOR CLOCKS #MINX'MSTCK,@RO -SET INDEX AND SECTOR CLOCK #DMD , 3RO "RESET INDEX AND SECTOR CLOCK R3 ;IF SECTOR REQUIRED JUMP OUT CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26~-JuL~-78 10:10 CZRJGC.PN L4667 4468 4469 4470 Y4 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 024124 N 8 27-JUL-78 12:41 PAGE 106 MACYT 30A(1052) 154 LOOK AHEAD REGISTER BEQ 001555 1% ;BRANCH OF SECTOR ZERO REQUIRED ;*AFTER THE INDEX PULSE RHLA WILL BE CHECKED TO BE ZERO 024126 024134 024142 024150 012737 017737 017737 023737 024156 024160 024166 026172 024176 024202 024206 001414 013737 160337 012746 163716 012637 104024 001140 152534 155476 001200 001206 001126 001720 001126 053550 001202 001140 001206 001204 001202 1$: ;*AND $TMP4 WILL BE SET UP TO COUNT BYTES MOV #608. ,a#8TMP4 ;THERE ARE 608 BYTES PER SECTOR MOV aRHLA,a#$BDDAT ;SAVE RHLA MOV aRHDST ,a#DST ;SAVE DESIRED SECTOR TRACK cMP a#S$TMP1 ,a#SBDDAT ;RHLA SHOULD BE HAVE EXTENSION ;FIELD EQUAL TO ZERO BEQ 2% ;BRANCH IF GOOD MOV QNSECTR, a¥STMP2 ;GET SECTOR SOUGHT SuB R3,a¥$TMP2 ;$TMP2 NOW HAS PRESENT SECTOR MOV SuB MOV ERROR #608. ,~(SP) aNsTMPS , (SP) (SP)+,a#$TMP3 24 sNUMBER OF BYTES PER SECTOR ; (SP)HAS PRESENT BYTE NUMBER ;PRESENT BYTE NUMBER ;LOOK AHEAD REGISTER AT THE BEGINING OF A ;SECTOR IS IN ERROR ;*NOW THE 304 WORDS WILL START ;*FOR FIRST BYTE CLOCK WILL BE INDEPENDENT OF ;*SECTOR CLOCK THEN IT WILL COINCIDE FOREVER TILL ;*THE BEGINNING OF NEXT SECTOR ;*ONE WORD ONLY THAT IS TWO BYTES 024210 024214 024220 024222 024226 024232 024236 024242 024244 024246 024252 024256 024260 012702 012705 000404 2%: MOV ggv #8. .R2 ZE.RS ;BYTE ;BYTES PER WORD 3$: BIS BIC BIS BIC DEC BNE DEC MOV DEC BNE A#MSTCK !MCLK,aR0 AMSTCK !MCLK,aR0 #MCLK ,aR0 #MCLK, 3RO R2 4% a¥STMPS #7 ,R2 RS 3% ;SET SECTOR AND CLOCK ;CLEAR SECTOR AND CLOCK sSET CLOCK ;CLEAR CLOCK ;BYTE COUNTER ;BRANCH IF BYTE NOT COMPLETE ;BYTE COUNT DOWN ;SETUP FOR SECOND BYTE ;1S WORD COMPLETE? ;BRENCH IF NOT COMPLETE 4%. 001206 000007 ;TO GIVE SECTOR CLOCK AND CLOCK ;*NOW 303 WORDS ARE LEFT ALL ARE IDENTICAL ;*THAT 1S 606 IDENTICAL BYTES WILL BE GIVEN ;*RHLA WILL BE CHECKED STAR TO COUNT AFTER ;*BEGINNING OF SECTOR PULSE ;*AFTER_128 BYTES (2 BYTES ARE ALREADY GIVEN) ;%S0 127 MORE ;*THEN RHLA WILL BE CHECKED AFTER 128 MORE BYTES s*THEN RHLA WILL BE CHECKED AFTER 256 MORE BYTES ;*THEN THE TOTAL OF 608 BYTES WILL BE COMPLETED ;*AND RHLA WILL BE MADE READY FOR NEXT SECTOR ;*AND RHLA WILL BE CHECKED 024262 012705 000100 MOov #64. RS 024266 012701 000177 MOV #127. .R1 ;RS WILL KEEP TRACK WHEN SEXTENSION FIELD IS TO BE CHECKED ;FIRST TIME CHECK EXTENSION FIELD SEQ 0105 SEQ 0104 CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PT 26=-JUL-78 10:10 024330 012702 052710 042710 052710 042710 005302 001372 005337 001436 005301 024332 001357 024272 024276 5%: 000007 000012 000912 000002 000002 6%: 001206 MOV BIS BIC BIS BIC DEC BNE DEC #7 ,R2 AMSTCK !MCLK,aR0 A#MSTCK !MCLK ,aR0 AMCLK ,aR0 #MCLK , 3RO R2 6% NS TMP4 DEC R1 BNE 5% BEQ 10% ;AFTER 127 MORE BYTES ;CLOCKS PER BYTE COUNTER ;SET SECTOR CLOCK AND CLOCK ;CLEAR SECTOR CLOCK AND CLOCK sSET CLOCK sRESET CLOCK ;COUNT DOWN CLOCKS PER BYTE ;BRANCH IF BYTE NOT COMPLETE ;COUNT DOWN BYTES ;BRANCHOUT IF 608 BYTES DONE ;COUNT DOWN NUMBER OF BYTES ;TO CHECK EXTENSION FIELD ;BRANCH IF EXTENSION FIELD NOT :TO BE CHECKED YET ;*NOW THE EXTENSION FIELD OF THE LOOK AHEAD REGISTER ;*WILL BE CHECKED 024334 024342 062737 017737 000020 155326 001200 001126 ADD MOV #20,a4$TMP1 @RHLA,a#$BDDAT 024350 024356 017737 023737 155270 001200 001720 001126 013737 160337 012746 053550 001202 001140 001206 001202 MOV CMP BEQ Mov aRHDST ,a#DST ;SAVE DESIRED SECTOR TRACK a#$TMP1 ,a#$BDDAT ;CHECK VALUE OF RHLA 7$ ;BRANCH IF GOOD QHSECTR, a#8TMP2 ;GET SECTOR SOUGHT SuB MOV ERROR aNSTMPS , (SP) (SP)+,a#$TMP3 25 001414 163716 024414 012637 104025 024416 024420 060505 010501 000723 024424 024432 024436 024442 024444 024450 062737 052710 042710 000240 052710 042710 024454 024456 005303 001223 024422 SuB MOV 001204 000020 001200 R3,a#$TMP2 #608. ,-(SP) 7%: ADD MOV BR R5.R5 R5.R1 5% 10%: ADD #20,a48TMP1 LiC A#MSTCK ,aR0 000010 BIS NOP 000010 000010 #MSTCK ,aR0 BIS BIC AMSTCK ,aR0 #MSTCK ,aR0 DEC BNE R3 1% ;GET TO THE NEXT EXTENSION ;GET RHLA FOR COMPARISON ;$TMP2 NOW HAS PRESENT SECTOR ;NUMBER OF BYTES PER SECTOR ; (SP) HAS PRESENT BYTE NUMBER ;PRESENT BYTE NUMBER ;LOOK AHEAD ERROR IN THE MIDDLE ;OF A SECTOR IS IN ERROR sJGET NEXT STEP TO CHECK EXTENSION FIELD ;PUT IN COUNTER ;BRANCH BACK SECTOR ;1S NOT COMPLETE ;THESE TWO INSTRUCTIONS GIVE ;ONE SECTOR CLOCK EXTRA ;ALLOW TIME BETWEEN SECTOR CLOCK ;THESE TWO INSTRUCTIONS GIVE ;ONE SECTOR CLOCK EARLY ;BEFORE THE NEXT SECTOR ;1S REQUIRED NO OF SECTORS COMPLETE ;BRANCH IF NOT 012702 052710 042710 005302 001372 052710 000010 000002 000002 000012 A A 024460 024464 024470 024474 024476 024500 b ;*NOW THE REQUIRED SECTOR IS REACHED ;*ONE SECTOR CLOCK WILL BE GIVEN TO GET SECTOR PULSE ;*DOWN AND HENCE ATA UP b 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 B 9 PAGE 107 27=JUL=78 12:41 MACY11 30A(1052) 154 LOOK AHEAD REGISTER MOV BIS BIC DEC BNE BIS #8. .R2 #MCLK,aR0 #MCLK,aR0 R2 12% ;8 CLOCKS sSET CLOCK ;CLEAR CLOCKS s COUND DOWN ;BRANCH IF 8 NOT DONE #MSTCK !MCLK,aR0 ;SET SECTOR AND CLOCK SEQ 0106 SEQ 0105 Czi czi CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.P1T 26=-JuL-78 10:10 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 024504 042710 c 9 52) 27-JUL-78 12:41 PAGE 108 MACY11 30A(10 154 LOOK AHEAD REGISTER BIC 000012 #MSTCK !MCLK,aR0 ;CLEAR SECTOR AND CLOCK s*NOW ALL REGISTERS WILL BE COMPARED ;%SO FILL EXPECTED VALUE INTO SAVED LOCATIONS 024510 024516 052737 053737 024524 024532 024540 052737 052737 013737 100000 003162 003200 BIS BIS 000001 003202 003204 003216 BIS BIS MOV 002016 100000 001200 #SC,a#REINTO+6 ;INCLUDE SC IN SAVED RH(CS1 QFATTENT ,@#REINTO+24 ;FILL APPROPIATE ATTENTION ;IN SAVED RHAS #DMD ,a#RE INTO+26 ;SET DMD IN RHMR SAVED #ATA ,Q#REINTO+30 ;SET ATA IN RHDS1 SAVED ANSTMP1 ,a#REINTO+42 MOVE EXPECTED VALUE s INTO RHLA SAVED ;*AFTER SEARCH COMMAND ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 024546 024552 024554 024556 024560 004037 001632 002110 000023 113737 JSR 043312 003201 RHWC WRFROM 19. RO,a#SAVER ; SAVE ;FROM :T0 sNUMBER :*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOvVB QHREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS 002135 ;*COMPARE REGISTERS BEFORE SEARCH WITH AFTER 024566 024572 024574 024576 024600 024602 024604 024606 024612 024614 024622 024624 024626 JSR REINTO 043514 13%: 047624 001630 042270 14%: WRFROM 18. 13$ 13% 14% MOV ADD MOV ERROR RTS RO,a#COMPAR ; COMPAR ;GO BUFFER ;TEST BUFFER :NUMBER sRETURN FOR ERROR ; SAME sRETURN FOR GOOD COMPARISON @#ERWORD ,R5 ;GETTING READY TO INDEX R5.R5 ;DOUBLE ERROR WORD RHWC=2(R5) ,a#REGADR ;FAILING REG. ADDRESS ;CONTENTS OF REGISTER 1 PC s CHANGED AT END OF :SEARCH SEQ 0107 SEQ 0106 CzZf Czf 4623 4624 4625 4626 4627 4628 4629 4630 024626 024630 024634 024642 024646 024654 024660 000004 012706 012737 004737 012777 004037 000000 001000 000055 042620 000001 045172 D 9 PAGE 109 MACY11 30A(1052) 27=-JUL-78 12:41 154 LOOK AHEAD REGISTER TSTSS: 002032 155004 SCOPE MOV MOV JSR MOV JSR 0 #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK #DMD , aRHMR RO, a#MAKECYL sJRESET STACK ;THIS SAVES TEST NUMBER sINIT DRIVE ;SET DIAGNOSTIC MODE ;SUBROUTINE TO GIVE A SEEK sCHANGE RHCC TO O SEQ 0108 SEQ 0107 e e e e e . s . et i s i ml i i il Rl Al RL Ml Rl AL AL RLRL AL RLALALALALALALALALALALALALALALALALALALALALALAALA T LAWNNLNALN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26=-JUL-78 10:10 E 9 PAGE 110 27-JUL-78 12:41 MACY11 30A(1052) 155 MAKE CURRENT CYLINDER = 0 4631 024670 000004 012706 012737 024676 024702 024706 024712 024714 024716 012700 012701 012720 005301 001374 004737 001000 000056 TSTS56: 002032 051324 000460 177777 1%: 042620 AV RV READ/WRITE ADDRESSING VIA RHMR SCOPE MOV MOV MOV MOV MOV DEC BNE JSR #STACK, SP #TTNO,B#TSTNM :RESET STACK -THIS SAVES TEST NUMBER #SECGAP,RO :POINTER 1% : #304. ,R1 :;1.0:0» PC.,CLDISK * COUNTER *CLEAR 'DISK'* AREA TO ALL ONES “THIS IS USED TO SET UP GENERAL sJREGISTER CORRESPONDENCE ;*THESE ARE TO SET UP FOR DISKLESS USE ONLY 024722 012737 010000 024730 024734 024740 024744 024752 024756 024760 005037 005037 005037 012737 004537 052642 052€52 052644 052646 052650 000400 044026 052642 052702 MOV #FMT22 ,a#WCYL ;FORMAT 22=16 BIT WORDS AND CLR CLR CLR a#WSECTR ANWKEY1 ANWKEY2 #256. ,@#FNWORD :TRACK=0, SECTOR=0 sKEY1=0 ;KEY2=0 ;256 DATAWORDS MOV JSR WwCYL GCRC R5.a#CRC sCYLINDER 0 ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS FOR RH11 024762 024770 012777 012700 010077 012705 012720 177374 002110 154634 000403 010000 2%: 025010 025012 025014 025016 005020 005305 001375 005077 025022 025026 025032 004737 104401 042654 062450 025034 013711 002064 025040 025044 025052 025056 005037 012777 005077 004737 002006 010000 154574 052466 000000 154642 154622 MOV MOV MOV MOV MOV #-260. ,aRHWC #WRFROM,RO ;256 DATA WORDS 4 HEADER WORDS :BUS ADDRESS TO BE #259. ,RS #FMT22, (RO) + ;COUNTER :FORMAT =16 BIT WORD CLR DEC BNE CLR (RO) + RS 2% @RHDST :SECTOR=0, TRACK=0,KEYS=0, ALL DATA=0 ;8 CYLINDER=0....S0 CLEAR ALL ‘WRFROM'' ;CONTINUE IF ALL 259 NOT COMPLETE :TRACK=0, SECTOR=0 JSR TYPE PC.a#CHECKT LCPHALT ;CHECK THAT DVA,RDY,DPR,DRY = 1 :AND THAT NO OTHERS = 1. CANNOT CON- MOV AHWRIFOR,aR1 CLR MOV CLR JSR ANERFLGS #FMT22 ,dRHOF HALT 154576 & "WRFROM'' QUTPUT BUFFER RO, aRHBA @aRHCA PC, a#COMWHD :BUFFER 'WRFROM'' :STOP THE TEST :GET READY FOR WRITE HEADER :AND DATA WITH 62 IN RHCS1 :CLEAR ERROR FLAG :FORMAT BIT=1 16 BIT WORDS :CYLINDER O :WRITE HEADER AND DATA FROM ‘'WRFROM'' ;INTO THE RHMR REGISTER AND BACK INTO ;CORE 'DISK'" AREA IV IV IV IV, IV, IV .SBTTL CZR CZR IV, RV, IV, IV ] SEQ 0109 SEQ 0108 AV AV RV TV IV IV CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=JuUL-78 10:10 CZRJGC.PN 9 SEQ 0110 SEQ 0109 PAGE 111 WRITE HEADER AND DATA 1 ;*IF THE PROGR M COMES BACK HERE WITHOUT ERROR ;*PRINT OUTS FROM THE '‘COMWHD'' ROUTINE THAT MEANS ;~ALL HEADER ON DISK IS GOOD IE. ONLY DATA IS ;*TO BE CHECKED TO SEE IF IT IS ZERO ;*AND WRITE DATA GAP AND TOLERANCE GAP TO SEE IF THEY ;*ARE ALL ZEROS (ECC1 AND ECC2 MAY NOT BE 0) AS WELL AS ;*CHECKING RHWC FOR ZERO 025062 025070 025072 017737 001401 154544 025074 025100 025102 025106 025112 025114 025120 005737 001034 004737 002006 001126 104401 aRHW( , SBDDAT 5% ;MOVE WORD COUNTER INTO BAD DATA . SHOULD HAVE COUNTED UP TO ZERO TST a¥ERFLGS sHAVE ANY ERRORS OCCURED? ERROR 104040 000000 005037 005037 MOV BEQ 5%: 043044 062450 BNE JSR TYPE 052422 052424 CLR CLR HALT 40 TSTS7 PC,a#CHECKE L,CPHALT A#WECCT aMWECC2 sRHWC DID NOT = O AFTER A WRITE sHEADER AND DATA ; :BRANCH IF YES :CHECK THAT BITS =1 :CANNOT CONTINUE TESTING IF THEY DON'T :STOP THE ;CLEAR ECC TEST ;*REINTO BUFFER IS FILLED WITH EXPECTED DATA OF ALL 0'S RO,a#CLAREA 002006 .WORD CLR REINTO+<272.%2> ;TO O JFILL WITH ZEROS a#ERFLGS ;CLEAR ERROR FLAG 043514 JSR 004037 003154 004214 000000 005037 042536 025142 004037 003154 051422 000421 025162 025166 025172 025146 025150 025152 025154 025156 025160 025162 025164 025166 4735 JSR 025124 025130 025132 025134 025136 025170 104007 000207 104010 000207 REINTO ;CLEAR "REINTO"' ;FROM ;*COMPARE ‘REINTO'' BUFFER WITH 'DISK'' BUFFER REINTO DISK RO,a#COMPAR 273. 3s 3%: 4%: 4% TST57 ERROR ;NUMBER OF WORDS CHECKED JRETURN POINT FOR ERROR HEADER 7 RTS PC RTS PC ERROR : CHECK :GOOD BUFFER ;TEST BUFFER 10 JRETURN POINT FOR ERROR DATA sRETURN FOR GOOD COMPARISON ;READ ERROR10 NEXT JRETURN TO ‘‘COMPAR'’ ;WORD NOS 1 TO 256 ARE ;DATA WORDS ;257 AND 258 ARE ECC : ZEROED OUT 2259 TO 273 TOLERANCE GAP 0 F 12:41 AL RLALRLALALALALALALALALALUALALUALUAUA LA LUA LA LA LA WA WA LWL WL W W WA WD W WA WD A N A A AL 756 27-JUL-78 LML AL AL R R MACY11 30A(1052> alal NN CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JUL-78 10:10 (ZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PI 26-JuL-78 10:10 4736 4737 4738 4739 4740 4741 4762 4763 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4,786 4787 4788 4789 4790 4791 025172 025174 025200 000004 012706 012737 025206 025212 025216 025220 025222 025224 012700 012701 005020 005301 001375 004737 001000 000257 MACYTT G TSTS57: 002032 051324 000460 9 1%: SCOPE MOV MOV #STACK,SP #TTNO,Q#TSTNM sJRESET STACK ;THIS SAVES TEST NUMBER MOV MOV #SECGAP,RO #304. ,R1 é?O)* sPOINTER s COUNTER ;CLEAR SIMULATED "DISK'® AREA IN CORE BNE 1% 3 g%? JSR 042620 SEQ 0111 SEQ 0110 112 3?A (1052) 27-JUL-78 12:41 PAGE WRITE HEADER AND DATA 1 56 PC,a#CLDISK sTHIS 1S USED TO SET GENERAL REGISTERS ;*THESE ARE TO BE SETUP FOR DISKLESS USE ONLY 025230 012737 010000 052642 MOV #FMT22 .aMWCYL ;FORMAT 22 = 16 BIT WORDS AND 025236 025244 025250 025254 025262 025266 025270 012737 000001 052646 052650 0004 00 044026 052644 MOV CLR #1,aMSECTR aAWKEY1 s TRACK=0, SECTOR=1 ;KEY1=0 052702 MOV #256. ,0#FNWORD ;256 DATA WORDS 052642 052652 CLR JSR wCYL GCRC NWKEY?2 R5,a#(CRC ;CYLINDER 0 ;KEY2=0 ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS FOR THE RH11 AND 'WRFROM'' BUFFER 025272 025300 025304 012777 012700 010077 177374 002110 154324 025310 012720 010000 025314 025320 025322 025324 025330 025334 025336 025340 012720 005020 005020 012705 012720 005305 001374 012777 000001 025346 025352 025356 004737 025360 025364 025370 025376 025402 154332 2%: MOV MOV MOV #-260. ,aRHWC #WRFROM RO RO,aRHBA MOV #FMT22, (RO) + MOV CLR CLR #1,(R0O)+ (RO) + (RQ) + ggg z;1.(RO)* ;256 DATA WORDS 4 HEADER WORDS ;THESE TWO INSTRUCTIONS GETS ;ADDR. OF WRFROM INTO RO AND ;BUS ADDRESS REGISTER ;FORMAT=16 BIT WORDS ;CYLINDER=0 ;TRACK=0, SECTOR=1, KEYS=0 #256. RS ;KEY1=0 ;KEY2=0 s COUNTER BNE MOV 3% #1,3RHDST ;BRANCH IF DATA NOT COMPLETE :TRACK=0 SECTOR=1 042654 062450 JSR PC,a#CHECKT ;CHECK THAT DVA,RDY,DPR,DRY = 1 01371 002064 MOV A#WRIFOR,aR1 ;GET READY FOR WRITE HEADER AND 005037 012777 005077 004737 002006 010000 CLR a#ERFLGS ;CLEAR ERROR FLAG 104401 000000 000400 177777 000001 154250 052466 3%: 154276 MOV TYPE HALT 154252 MOV CLR JSR LCPHALT #FMT22 , aRHOF aRHCA PC,a#COMWHD ;MOVE ALL ONES FOR DATA JAND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- ;DATA WITH 62 IN RH(CS1 sFORMAT BIT=1 ;CYLINDER =0 (16 BIT WORDS) JWRITE HEADER AND DATA INTO 'DISK'' AREA ;*IF THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUTS ;*FROM THE ''COMWHD'' ROUTINE THAT MEANS ALL THE HEADER ON "DISK'' ;*1S GOOD IE. ONLY THE DATA IS TO BE CHECKED TO SEE IF IT IS s*ALL ONES AND WRITE DATA GAP AND TOLERANCE GAP TO SEE IF CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.PI 26=-JuL-78 10:10 H 9 27-JUL-78 12:41 PAGE 113 MACY11 30A(1052) WRITE HEADER AND DATA 2 157 4792 ;*THEY ARE ALL ZEROS, = ECC1 AND ECC2 ARE NOT CHECKED. 4794 4795 4796 4797 ;*RHWC IS CHECKED TO BE = 0 4793 025406 025414 025416 017737 001401 025420 025424 025426 025432 025436 025440 025444 005737 001041 004737 154220 001126 104040 104401 000000 005037 005037 002006 6%: MOV BEQ ERROR aRHW( , SBDDAT 6% 40 ;LOAD WORD COUNTER JUST IN CASE 2SHOULD BE = 0 sRHWC DOES NOT = O AFTER A WRITE TST a#ERFLGS sHAVE ANY ERRORS OCCURRED? 043044 062450 BNE JSR TYPE 052422 052424 CLR CLR HALT TST60 PC ,a#CHECKE ,CPHALT AMWECCT AMECC? SEQ 0112 SEQ 011 sHEADER AND DATA IS COMPLETED s ;BRANCH IF YES ;CHECK THAT BITS =1 ;CANNOT CONTINUE TESTING IF THEY DON'T ;STOP THE TEST ;CLEAR ECC ;CLEAR ECC ;*FILL "REINTO'' BUFFER WITH EXPECTED DATA OF ALL 1'S 042536 025474 JSR RO,a#CLAREA .WORD JSR REINTO+<255.%2> ;T0 ;DATA -1 JFILL REST RO,a#CLAREA REINTO RE INTO+<256. %2> 002006 sFILL REINTO BUFFER ;FROM :FROM REINTO+<272.%2> 0 :TO ;DATA CLR ;CLEAR ERROR FLAG A#ERFLGS ;*NOW COMPARE 'DISK'' BUFFER WITH 'REINTO'' BUFFER IN CORE 025500 025504 025506 025510 025512 025514 025516 025520 025522 004037 003154 051422 025526 000207 025524 025520 025524 025530 104007 000207 104010 043514 JSR REINTO RO, a#COMPAR 5%: ;GOOD BUFFER DISK ;TEST BUFFER 3] 5% TST60 sRETURN POINT FOR ERROR HEADER JRETURN POINT FOR ERROR DATA JRETURN FOR GOOD COMPARISON 273. 4%: s CHECK ERROR sNUMBER OF WORDS CHECKED 7 RTS PC RTS PC ERROR 10 ;READ ERROR 10 NEXT sRETURN TO COMPARE sWORD NOS 1 TO 256 ARE :DATA WORDS sWORD NOS 257 AND 258 ;ARE ECC WHICH HAVE BEEN ; ZEROED ;WORD NOS 259 ;IS DATA GAP ;WORD NOS 260 TO 273 ;ARE TOLERANCE GAP JRETURN TO COMPARE LIV IV, IV, TV T T I IV IV IV IV IV IV IV IV IV IV IV TV IV 042536 I 004037 WV 025450 025454 025456 025460 025462 025466 025470 025472 4846 4847 025530 025532 000004 012706 001000 2%‘;8 025536 4851 4852 025544 025550 012700 012701 051324 000460 4854 4855 4856 025560 025562 025564 005301 001374 004737 4848 4853 232; 025554 012737 012720 000060 TST60: 002032 000377 4864 4865 4866 4867 4868 /zg?g SCOPE MOV #STACK,SP JRESET STACK MOV MOV #SECGAP,RO #304. ,R1 ;POINTER s COUNTER DEC BNE JSR R1 1% PC,CLDISK : : ;THIS IS USED TO SET UP GENERAL MOV 1%: 042620 MOV #TTNO,@#TSTNM #377,(R0O)+ ;THIS SAVES TEST NUMBER ;LOAD SIMULATED 'DISK'' AREA WITH 377 JREGISTER CORRESPONDENCE ;*THESE ARE TO BE SETUP FOR DISKLESS USE ONLY 025570 012737 010000 052642 MOV H#FMT22 ,a#WCYL 025576 025604 025610 025614 025622 012737 005037 005037 012737 004537 000401 052646 052650 000400 044026 052644 MOV CLR CLR MOV JSR #4071 ,a#WSECTR ANWKEYT DMWKEY2 #256. ,@#FNWORD RS ,a#(CRC 025626 025630 052642 052652 052702 wCYL GCRC 2?;;12 ;FORMAT 22=16 BIT WORDS AND ;CYLINDER 0 ;TRACK=1, SECTOR=1 ;KEY1=0 ;KEY2=0 ;256 DATA WORDS ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS FOR RH11 AND ‘WRFROM'' BUFFER 4873 4874 4875 025632 025640 012777 012700 177374 002110 23;9 025644 010077 4878 4879 4880 4881 4882 4833 4884 4885 025650 MOV Mov #-260. ,aRHWC #\WRFROM RO 153764 MoV RO,aRHBA 012720 010000 MoV #FMT22, (RO) + 025654 025660 025662 025664 025670 012720 005020 005020 012705 012720 000401 2%: 000400 052525 3%: MOV CLR CLR MOV MOV #401, (RO) + (RQ)+ (RQ) + #256. ,R5 #052525,(RO)+ 025676 025700 001374 012777 BNE MOV 3% #401,aRHDST 4889 4890 2335 025706 025712 025716 004737 104401 000000 042654 062450 JSR TYPE HALT PC,a#CHECKT LCPHALT ;CHECK THAT DVA,RDY,DPR,DRY = 1 JAND THAT NO OTHERS = 1. CANNOT CON;STOP THE TEST 4893 4894 4895 4896 4897 zggg 025720 013711 002064 MOV A#WRIFOR,aR1 025724 025730 025736 005037 012777 005077 002006 010000 153710 CLR MOV CLR a#ERFLGS #FMT22 ,aRHOF aRHCA ;GET READY FOR WRITE HEADER sAND DATA WITH 62 IN RHCS1 ;CLEAR ERROR FLAG ;FORMAT BIT=1(16 BIT WORDS ; CYLINDER=0 JWRITE HEADER AND DATA INTO 'DISK'® CORE 4886 2% 4900 4901 025674 025742 005305 004737 000401 052466 153772 153736 153712 DEC JSR R5 PC,a#COMWHD ;256 DATA WORDS 4 HEADER WORDS sTHESE TWO INSTRUCTIONS GET ;ADDR. OF WRFROM INTO RO ;AND BUS ADDRESS REGISTER ;FORMAT=16 BIT WORDS s CYLINDER=0 ;TRACK=1, SECTOR=1, KEYS=0 ;KEY1=0 ;KEY2=0 s COUNTER ;MOVE ALTERNATE ONES FOR DATA : COUNT ;BRANCH IF DATA NOT COMPLETE :TRACK=1 SECTOR=1 ;*IF THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUTS s*FROM THE '‘COMWHD'' ROUTINE THAT MEANS ALL HEADER IN NN SEQ 0113 SEQ 0112 o ] MACY11 30A(1052) 27-JUL-78 12:41 PAGE 114 157 WRITE HEADER AND DATA ?2 2%2?) 4861 4862 4863 9 (ale) CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JuL-78 10:10 1 s*ONLY ECC1 AND ECC2 ARE NOT CHECKED 6%: TST BNE a#ERFLGS TST61 sHAVE ANY ERRORS OCCURED? s ;BRANCH IF YES TYPE .CPHALT sCANNOT CONTINUE TESTING IF THEY DON'T JSR 043044 062450 HALT CLR 052422 052424 CLR PC,a#CHECKE aMWECCT AMWECC2 ;CHECK THAT BITS =1 ;STOP THE TEST sCLEAR ECC s CLEAR ECC s*FILL "REINTO'' BUFFER WITH EXPECTED DATA JSR 042536 026010 026014 026016 026020 026022 026026 026030 026032 026034 REINTO RO,a#CLAREA REINTO+<255.%2> 52525 .WORD RO,a#CLAREA JSR REINTO0+<256.%2> REINTO+<272.%2> 0 WORD 042536 CLR 002006 NERFLGS .; FROM :T0 :DATA sFILL REST :FROM :TO sDATA *CLEAR ERROR FLAG :*NOW COMPARE ‘DISK'' BUFFER WITH 'REINTO'' BUFFER IN CORE 026066 JSR 043514 026040 026044 026046 026050 026052 026054 026056 026060 026062 026064 REINTO DISK RO, a#COMPAR 273. 4%: 5%: 000207 4% 5% TST61 ERROR 7 PC RTS PC ERROR : CHECK ;GOOD BUFFER ;TEST BUFFER ;NUMBER OF WORDS CHECKED JRETURN POINT FOR ERROR HEADER RTS 10 D D0 AVIAaAUIWG. M sFILL REINTO BUFFER JRETURN POINT FOR ERROR DATA ;RETURN FOR GOOD COMPARISON ;READ ERROR 10 NEXT sRETURN TO COMPARE sWORD NOS 1 TO 256 ARE ;DATA WORDS ;WORD NOS 257 AND 258 ;ARE ECC WHICH HAVE BEEN : ZEROED ;WORD NOS 259 ;1S DATA GAP ;WORD NOS 260 TO 273 ;ARE TOLERANCE GAP JRETURN TO COMPARE A 002006 025760 025764 025766 025772 025776 026000 026004 AR A sJRHWC DID NOT = O AFTER A WRITE sHEADER AND DATA WAS COMPLETED A 4912 4913 40 ;LOAD AND TEST FOR ZERO sRHWC SHOULD = 0 TN ERROR 104040 aRHW( , SBDDAT 6% NN MOV BEQ 001126 NN 153660 A DA WA A 017737 001401 A 025746 025754 025756 VT ;*RHWC IS CHECKED TO BE = 0 AN THEY ARE ALL ZEROS. A s*TOLERANCE GAP TO SEE IF AN 491 ;*'DISK'" IS GOOD. DATA IS TO BE CHECKED TO SEE s«IF IT IS ALL 052525 AND WRITE DATA GAP AND SEQ 0113 LA 4902 4903 4904 4905 4906 4907 4908 4909 4910 SEQ 0114 (il NN CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.PI 26=JuL-78 10:10 Jd 9 ) PAGE 115 12:41 30A(1052 27-JUL-78 MACY11 WRITE HEADER AND DATA 3 T60 o2 CZR. CZR. als all als 4 ~ SEQ 0115 SEQ 0114 AU DvaaaaANAAVWN MACY11 30A(1052) 27-JuL-78 12:41 PAGE 116 160 WRITE HEADER AND DATA 3 LV LY LV Y L 4958 4959 9 (VL IV IV IV IV TV TV TV TV LV TV TV TV TV TV LV LV RV LN Y CZRJGCO,RPO4/5/6 DSKLS CTRLR1T CZRJGC.PN 26=JuL-78 10:10 K #SECGAP,RO #304. ,R1 :;1.(Ro>+ :POINTER *COUNTER *CLEAR DISK AREA TO ALL ONES. 1% : PC,CLDISK 042620 s *THESE ARE 026130 012737 010000 026136 026142 026146 026152 026160 026164 026166 005037 005037 005037 012737 004537 052642 052652 052644 052646 052650 044026 052642 *REGISTERS TO SET UP FOR DISKLESS USE ONLY MOV #FMT22 ,a#WCYL :FORMAT 22=16 BITWORDS AND CLR NWSECTR QNWKEY 1 :TRACK=0, SECTOR=0 *KEY1=0 CLR CLR MOV JSR WwCYL GCRC 052702 “THIS IS USED TO SET GENERAL A LA 4y 1%: 177777 :RESET STACK :THIS SAVES TEST NUMBER ANWKEY?2 #256. ,a#FNWORD RS.,a#CRC *CYLINDER 0 ARG A A 051324 000460 #STACK, SP #TTNO,3#TSTNM ;KEY2=0 ;256 DATAWORDS ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS 153434 MOV MOV MOV MOV MOV #-260. ,aRHWC #WRFROM,RO CLR DEC (RO) + ;256 DATA WORDS 4 HEADER WORDS :FROM BUFFER 'WRFROM'' 026170 026176 026202 0262” 02¢€ ¢ 012777 012700 010077 012705 012720 026216 026220 026222 026224 005020 005305 001375 005077 026230 026234 026240 004737 042654 062450 JSR TYPE HALT PC,a#CHECKT JCPHALT :AND THAT NO OTHERS = 1. :STOP THE TEST 026242 013711 002064 MOV a#WRIFOR,aR1 :GET READY FOR WRITE HEADER 026246 005037 012777 005077 012777 052777 000240 052777 002006 010000 153366 000001 000001 153370 a#ERFLGS #FMT22 ,aRHOF :CLEAR ERROR FLAG :FORMAT BIT=1 16 BIT WORDS 153366 153340 #DMD , aRHMR #GO,aRHCS1 000001 153330 004737 032737 001404 013737 042224 002000 001714 001636 001122 026310 026314 026322 026324 104401 000000 177374 002110 153426 000403 010000 2%: BNE CLR 153414 RO, aRHBA #259. RS #FMT22,(RO) + RS 2% aRHDST @RHCA ;IN BUS ADDRESS ;COUNTER :FORMAT =16 BIT WORD :CYLINDER=0 :SECTOR=0, TRACK=0,KEYS=0, ALL DATA=0 2 COUNT JBRANCH IF ALL 259 NOT COMPLETE ;TRACK=0, SECTOR=0 ;CHECK THAT DVA,RDY,DPR,DRY = 1 :AND DATA WITH 62 IN RHCS1 :CYLINDER 0 2SET DIAGNOSTIC MODE ;GO #GO,aRHCS1 :THIS GO SHOULD SET PGE PC,a#PUTREG :SAVE REGISTERS #PGE ,a#(CS1 ;1S PGE SET 3s :BRANCH IF GOOD a#RHCS2 ,a#$BDADR CANNOT CON- AN 012700 012701 012720 005301 001374 004737 002032 SCOPE MOV MoV A 026104 026110 026114 026120 026122 026124 TST61: AW WA WA 012706 012737 001000 000061 WA 000004 SEQ 0116 SEQ 0115 AN 026070 026072 026076 160 9 L PAGE 117 27=JUL-78 12:41 WRITE HEADER AND DATA 3 NN N 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 MACY11 30A(1052) VAN CZRJIGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJIGC.PN 26=-JuUL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.PN 26=JuUL-78 10:10 5016 5017 5018 026332 026334 M9 MACY11 30A(1052) 27-JUL=-78 12:41 PAGE 118 T61 PROGRAM ERROR RHCS2 #10 104037 ERROR 3%: 37 sPGE DID NOT SET WHEN A WRITE ;WAS ATTEMPTED WITH ONE IN PROGRESS SEQ 0117 SEQ 0116 CZRJGCO,RPO4/5/6 DSKLS CYRLR‘I CZRJIGC.P11 26~JUL-78 10:10 5019 N 9 MACY11 30A(1052) 27-JuUL=78 12:41 PAGE 119 T61 PROGRAM ERROR RHCS2 #10 285(1) s THESE TESTS ARC THROUGH THE MAINTAINABILITY REGISTER = RHMR 5022 5023 gggg i L L THE SECTOR GAP AND SYNC BYTE ARE ALWAYS READ AS ZEROS AND 144000 NO MATTER WHAT IS IN THE SIMULATED DISK AREA 5026 5027 5028 gggg S Jew s s THE HEADER CONSISTING OF CYLINDER ADDRESS, SECTOR, TRACK AND THE KEYS ARE READ FROM LOCATION CYL:, SECTOR:, KEY1:, AND KEY2 AND NOT FROM HEADER: ON SIMULATED DISK 5031 5032 s S CRC IS READ FROM SIMULATED DISK LOCATION WCRC: HEADER GAP IS ALWAYS READ AS ZEROS NO MATTER 5035 s Jx% ON SIMULATED DISK 5038 by ALL DATA IS READ FROM SIMULATED DISK DISK: 28%2 gggg Jaw TAGGED SECGAP: AND WSSYNC: WHAT IS ON THE SIMULATED DISK AREA THE DATA SYNC IS READ FROM HDWSYN: SEQ 0118 SEQ 0117 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JUL-78 10:10 026334 026336 026342 000004 012706 012737 001000 000062 5047 5048 5049 026350 026354 026360 012746 012705 012700 000000 000400 051422 5055 026400 005020 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 026364 026366 026370 026372 026374 026402 026404 026406 026414 026422 026430 026436 026444 026452 026456 011620 005305 001375 005726 012705 005305 001375 012737 112737 112737 012737 012737 012737 005037 004537 010000 000000 000000 000000 000000 000400 047514 047504 051404 004737 012777 012777 112746 112766 012677 012777 005077 004737 104401 000000 013711 005037 004737 017737 001401 104040 005737 5087 5088 5089 5090 026604 026610 026614 026616 004737 104401 000000 012700 043044 062450 g 002110 112746 112766 012620 000000 000000 5091 5092 5093 5094 026622 026626 026632 026640 001046 012720 002032 18: 2%: 047504 047507 047506 047510 047512 047564 8 10 12:41 PAGE 120 PROGRAM ERROR RHCS2 #10 042620 177374 003154 000000 000000 153120 014000 153114 042654 062450 002070 002006 047344 153042 SCOPE MOV MOV #STACK , SP #TTNO,Q#TSTNM ;RESET STACK :THIS SAVES TEST NUMBER MOV MOV MOV #0,-(SP) #256. RS #D1SK,RO :DATA TO BE READ : COUNTER :START OF SIMULATED DISK DATA (RO) + :CLEAR ECC, DATA GAP, AND MOV DEC BNE TST MOV CLR DEC BNE MOV MOVB MOVB MOV MOV MOV CLR 044026 026462 026464 026466 026472 026500 026506 026512 026520 026526 026532 026536 026542 026546 026550 026554 026560 026564 026572 026574 026576 026602 TSTA2: 000021 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 161 27-JuL=78 SEQ 0119 SEQ 0118 CZR CZF c 5039 5040 5041 5042 5043 5044 2822 5050 5051 5052 5053 5054 MACY11 30A(1052) JSR 153132 153126 000001 153116 001126 002006 208: 010000 cyL WCRC JSR MOV MOV MOVB MOVB MOV MOV CLR JSR TYPE HALT MoV CLR JSR MOV BEQ ERROR TST BNE RS 23 :MOVE IN DATA ON TO SIMULATED DISK : COUNT :BRANCH IF 256 NOT COMPLETE :UNDO =(SP) ;2 ECC WORDS : TOLERANCE GAP ;BRANCH IF NOT COMPLETE #0!FMT22,a#CYL ;16 BITS PER WORD #0,@4SECOTR+1 ;TRACK 0 #0,a#SECOTR :SECTOR 0 #0,HKEY1 :KEY1=0 #0, BHKEY2 :KEY2=0 #256.,#DAWORD ;NO. OF DATA WORDS X :THIS IS A READ COMMAND RS, a4#CRC ;GO TO CALCULATE CRC SREFOR,aR1 ERFLGS PC , &4COMHD @RHWC,$BDDAT 208 40 ERFLGS TST63 5 : : , : : : : : : s : CYLINDER 0 :CHECK THAT DVA,RDY,DPR,DRY = 1 :AND THAT NO OTHERS = 1. CANNOT CON~:STOP THE TEST :READ HEADER AND DATA=72 :CLEAR ERROR FLAG :READ HEADER AND DATA :LOAD AND TEST RHWC :SHOULD = 0 :RHWC DOES NOT = 0 AFTER A READ :ANY ERRORS ALREADY THERE : : : : : : : PC,@#CLDISK :SETUP GENERAL REGISTERS #-256.4. ,@RHWC ;256. DATA 4 HEADER WORDS #REINTO,QRHBA ;STARTING ADDRESS OF READ BUFFER #0,=(SP) :IN LOWER BYTE GET SECTOR #0,1(SP) ;GET TRACK IN HIGHER BYTE (SP)+,@RHDST :TRACK/SECTOR IN RHDST #FMT22!ECI,ARHOF ;16 BITS PER WORD ARH(A PC,a#CHECKT ,CPHALT 5 5 p p 5 p § , p : : : : : : : p : : : : : i : : : p : :BRANCH IF YES JSR TYPE HALT MOV PC , a4 CHE CKE ,CPHALT #WRFROM, RO :CHECK_THAT BITS = 1 :CANNOT CONTINUE TESTING IF THEY DON'T :STOP THE TEST :GETTING READY TO FILL EXPECTED DATA MOVB MOVB MOV #0,=(SP) #0,1(SP) (SP)+, (RO)+ :IN_LOWER BYTE GET SECTOR :GET TRACK IN HIGHER BYTE :GET TRACK/SECTOR IN BUFFER MOV 000001 (SP), (RO + RS 1$ (SP)+ #17. RS 5 3 3 5 p g #0'FMT22,(RO)+ ;CYLINDER O p : 5114 5115 5116 026642 026646 026652 026656 026662 026664 026666 026670 026674 026676 026700 026702 026704 026706 026710 026712 026714 026716 012720 012720 012701 012702 010220 005301 001375 004037 002110 003154 000404 026710 026714 026720 104004 000207 104005 000207 000000 000000 000400 000000 3%: 043514 4%: 5%: ¢ 10 27-JUL-78 12:41 PAGE 121 READ HEADER AND DATA 1 MOV MOV MOV MOV MOV DEC 8NE JSR WRFROM REINTO 4+256. 4% 5% TST63 ERROR RTS ERROR RTS #0, (RO) + #0,(RO. + #256. ,R1 #0,R2 RZ.(RO)+ R1 3% RO,a#COMPAR & PC 5 PC ;KEY1 IN BUFFER ;KEY2 IN BUFFER ;DATA WORD COUNTER ;DATA ;DATA INTO BUFFER s COUNT ;BRANCH IF 256 NOT DONE s CHECK ;GOOD BUFFER sTEST BUFFER ;NUMBER OF WORDS CHECKED sRETURN POINT FOR ERROR HEADER sRETURN POINT FOR ERROR DATA ;RETURN FOR GOOD COMPARISON ;READ NEXT ERROR sRETURN TO ‘'‘COMPAR'' ;WORD NOS 1 TO 4 ARE ;RETURN TO ‘‘COMPAR'' SEQ 0120 SEQ 0119 CZR CZR e i E. mi E. e et mi ms i Eml s sl R m R Emc el AL AL Rl Rl AL Rl AL AL AL RLALIALIAL AL ALALIALALI AL RLALALALALRALALALALALALALALALN 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 g”% MACY11 39251052) e CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuUL~-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 026720 026722 026726 000004 012706 012737 026734 026740 026744 026750 026752 026754 026756 026760 026764 026766 026770 012746 012705 012700 011620 005305 001375 005726 012705 005020 005305 001375 012737 001000 000063 D 10 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 122 READ HEADER AND DATA 1 T62 TST63: 002032 177777 000400 051422 1%: 2%: 047504 047507 047506 047510 047512 047564 #-1,-(SP) #256. ,RS #DISK RO ;DATA TO BE READ ;COUNTER :START OF SIMULATED DISK DATA (SP) ,(RO)+ RS ;KEY1=0 :KEY2=0 ;NO. OF DATA WORDS PC,a#CLDISK #-256.-4. ,aRHWC #REINTO,aRHBA #1,-(SP) sSETUP GENERAL REGISTERS ;256. DATA 4 HEADER WORDS ;STARTING ADDRESS OF READ BUFFER ;IN LOWER BYTE GET SECTOR aRHCA PC,a#CHECKT .CPHALT ;THIS IS A READ COMMAND ;GO TO CALCULATE CRC sGET TRACK IN HIGHER BYTE s TRACK/SECTOR IN RHDST ;16 BITS PER WORD @#REFOR,aR1 sCYLINDER 0 ;CHECK THAT DVA,RDY,DPR,DRY = 1 ;AND THAT NO OTHERS = 1. CANNOT CON;STOP THE TEST ;READ HEADER AND DATA=7?2 20% 40 a#ERFLGS :SHOULD = 0 sRHWC DOES NOT = O AFTER A READ ;ANY ERRORS ALREADY THERE a#ERFLGS PC,a#COMHD aRHW( , $BDDAT 20%: ;SECTOR 1 #0,a#KEY1 #0,a#KEY2 #256. ,a#DAWORD #FMT22'ECI ,aRHOF 001126 ;THIS SAVES TEST NUMBER ;MOVE IN DATA ON TO SIMULATED DISK s COUNT 1% :BRANCH IF 256 NOT COMPLETE (SP) + JUNDO =(SP) #17. RS ;2 ECC WORDS (RO)+ ;CLEAR ECC, DATA GAP, AND RS :TOLERANCE GAP ;BRANCH IF NOT COMPLETE 2% #O'FMT22,a#CYL ;16 BITS PER WORD #0,a#SECOTR+1 ;TRACK 0 #0,1(SP) (SP) +,aRHDST 152532 043044 062450 ;RESET STACK #TTNO,a#TSTNM Y2 RS ,a#CRC 000001 002006 MOV MOV MOV MOV DEC BNE TST MOV CLR DEC #STACK ,SP #1,a#SECOTR 152546 152542 152456 SCOPE MOV MOV ;CLEAR ERROR FLAG ;READ HEADER AND DATA ;LOAD AND TEST RHWC TST64 ;BRANCH IF YES ,CPHALT sCANNOT CONTINUE TESTING IF THEY DON'T ;STOP THE TEST PC,a#CHECKE #WRFROM,RO sCHECK THAT BITS =1 sGETTING READY TO FILL EXPECTED DATA #0!FMT22,(RO)+ ;CYLINDER 0 000001 012701 #1,=(SP) #0,1(SP) ;IN LOWER BYTE GET SECTOR ;GET TRACK IN HIGHER BYTE #0, (RO) + #0, (RO) + sKEY1 IN BUFFER ;KEY2 IN BUFFER (SP)+, (RO) + #256. .R1 ;GET TRACK/SECTOR IN BUFFER *DATA WORD COUNTER SEQ 0121 SEQ 0120 5188 5189 5130 027242 027246 027250 027252 027254 027260 027262 027264 027266 027270 027272 027274 027276 027300 027302 012702 010220 005301 001375 004037 002110 003154 000404 027274 027300 027304 104004 000207 104005 000207 177777 3%: 043514 MOV MOV DEC BNE JSR WRFROM REINTO 4+256. #-1,R2 + R2.(RO. R1 3s RO,a#COMPAR ;DATA ;DATA INTO BUFFER s COUNT JBRANCH [F 256 NOT DONE s CHECK ;GOOD BUFFER JTEST BUFFER sNUMBER OF WORDS CHECKED ;RETURN POINT FOR ERROR HEADER ;RETURN POINT FOR ERROR DATA (%: JRETURN FOR GOOD COMPARISON JREAD NEXT ERROR 5%: JWORD NOS 1 TO 4 ARE JRETURN TO ''COMPAR'’ JRETURN TO '‘COMPAR'’ SEQ 0122 SEQ 0121 CZR TM E 10 30A(1052) 27-JUL=78 12:41 PAGE 123 763 READ HEADER AND DATA 2 LRLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA VI A LA LALA LA LAY A Y AW LA 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 MACY11 ~N n CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL-78 10:10 1%: 2%: 047510 047512 047564 152162 152156 000001 152146 20%: 043044 062450 027566 027572 027576 027602 027610 027612 027616 027622 002170 010000 000001 000001 012701 000000 000000 000400 TST MOV CLR DEC ;DATA TO BE READ s COUNTER #D]SK,RO (SP), (RO)+ RS 1% (SP)+ #17..R5 + (RO) R5 2% #O!FMT22 ,a#CYL #1 ,a#SECOTR+1 #1,a4SECOTR #0,a4KEY1 #0,a#KEY2 #256. ,a#DAWORD a#x RS ,a#CRC ;START OF SIMULATED DISK DATA :MOVE IN DATA ON TO SIMULATED DISK s COUNT :BRANCH IF 256 NOT COMPLETE ;UNDO =(SP)° :2 ECC WORDS ; TOLERANCE GAP :BRANCH IF NOT COMPLETE ; 16 BITS PER WORD ;SECTOR 1 :KEY1=0 :KEY2=0 ;NO. OF DATA WORDS ;THIS IS A READ COMMAND ;GO TO CALCULATE CRC PC,a#CLDISK ;SETUP GENERAL REGISTERS #REINTO,aRHBA #1,-(SP) #1,1(SP) (SP)+,@RHDST ;STARTING ADDRESS OF READ BUFFER ;IN LOWER BYTE GET SECTOR ;GET TRACK IN HIGHER BYTE aRHCA s TRACK/SECTOR IN RHDST #FMT22'EC1,@RHOF :16 BITS PER WORD LCPHALT @#REFOR ,aR1 a#ERFLGS ;CLEAR ERROR FLAG TST 40 a#ERFLGS TST65 BEQ ERROR BNE JSR HALT MOV MOV MOVB MovB MOV MOV MOV MOV PC ,a#COMHD W( , SBDDAT aRH 208 PC ,a#CHECKE LCPHALT #WRFROM,RO ;STOP THE TEST ;READ HEADER AND DATA=7?2 ;READ HEADER AND DATA ;LOAD AND TEST RHWC JSHOULD = 0 JRHWC DOES NOT = 0 AFTER A READ ;ANY ERRORS ALREADY THERE :BRANCH IF YES :CHECK THAT BITS =1 ;CANNOT CONTINUE TESTING IF THEY DON'T ;STOP THE TEST ;GETTING READY TO FILL EXPECTED DATA #0!FMT22,(RO)+ ;CYLINDER 0 #1,-(SF) #1,1(SP) (SP)+,(RO)+ #0, (RO)* #0,(R0O)+ #256. .R1 ~ Py ; TRACK 1 #-256.-4 . ,aRHW( ;256. DATA & HEADER WORDS PC,a#CHECKT po>) ;CLEAR ECC, DATA GAP, AND TYPE HALT MOV CLR JSR MOV TYPE 000001 JOSZSZgg-(SP) ;CYLINDER 0 :CHECK THAT DVA,RDY,DPR,DRY = 1 CANNOT CONsAND THAT NO OTHERS = 1. CLR JSR 001126 002006 MOV DEC BNE BNE MOV MOVB MOvB MOV MOV MOV CLR JSR CyL WCRC JSR MOV MOV MovB MOVB MOV MOV 047504 047507 047506 152072 MOV MOV MOV JRESET STACK ;THIS SAVES TEST NUMBER #TTNO,a#TSTNM AN AL 052525 000400 051422 #STACK,SP AN 002032 SCOPE MOV MOV AW 012746 012705 TST64: WA 5200 5201 5202 5203 027320 027324 027330 027334 027336 027340 027342 027344 027350 012737 001000 000064 ;IN LOWER BYTE GET SECTOR sGET TRACK IN HIGHER BYTE ;GET TRACK/SECTOR IN BUFFER ;KEY1 IN BUFFER ;KEY2 IN BUFFER ;DATA WORD COUNTER LA AW VLA WA WA VLWL 5199 027312 000004 012706 SEQ 0123 SEQ 0122 LALALALALALALALALUALA LA LA LA UA LA LA LA LA A LA VL 5191 5192 5193 5194 5195 5196 5197 5198 F 10 PAGE 124 MACY11 30A(1052) 27=-JUL=78 12:41 READ HEADER AND DATA 2 T63 ala) CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26~JuL-78 10:10 fi (ZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PT 26=JuL-78 10:10 5247 5248 5249 5250 5251 5252 5253 5254 5255 027626 027632 027634 027636 027640 027644 027646 027650 027652 027654 027656 027660 027662 027664 027666 012702 010220 005301 001375 004037 002110 003154 000404 027660 027664 027670 052525 MACY11 30A(1052) T64 READ HEADER AND DATA 3 3%: MOV MOV 043514 104004 (%: 104005 5%: 000207 000207 27-JUL-78 G 10 PAGE 125 12:41 DEC BNE JSR WRFROM #052525 ,R2 + R2,(RO. SEQ 0124 SEQ 0123 | czr. CZR, ;BRANCH IF 256 NOT DONE s CHECK p) b b bl 2 sNUMBER OF WORDS CHECKED JRETURN POINT FOR ERROR HEADER sRETURN POINT FOR ERROR DATA 2. 2! 2! ;READ NEXT ERROR 5¢ ;DATA BUFFER INTO ;DATA ; COUNT ;GOOD BUFFER ;TEST BUFFER JRETURN FOR GOOD COMPARISON ;RETURN TO "‘COMPAR'' ;WORD NOS 1 TO 4 ARE sRETURN TO ‘'COMPAR"’ SI S 5 CZRJGCO,RPO4/5/6 DSKLS CTRLRI CZRJGC.P1 26=JuL-78 10:10 5266 027670 000004 027672 012737 000065 027700 027704 027712 027716 027720 027722 027724 027732 027740 027746 027752 027756 027764 027772 027776 030000 030002 030006 030010 030012 030014 030020 030026 012706 012737 001000 042536 T64 H 10 27-JUL-78 12:41 PAGE 126 READ HEADER AND DATA 3 TST6S: SCOPE MACY11 30A(1052) 002032 002032 MOV #TTNO,a#TSTNM ;THIS SAVES TEST NUMBER MOV #STACK,SP #TTNO,a#TSTNM JRESET STACK RO,a#CLAREA DISK 80LGAP¢16 047552 047514 cyL WCRC JSR WRFROM #0,a#SECOTR+1; TRACK 0 #0 ,a#SECOTR ;SECTOR 0 ;KEY1 0 asKEY] aNKEY2 ;KEY2 0 #256. , a#NOWORD ;NO OF DATA WORDS #1.,a34X JWRITE DATA RS.,a#CRC ;GO TO CALCULATE CRC RO,a#CLAREA WRFROM+<256. %2> 177400 002110 000000 000000 151572 010000 000000 042654 062450 377 JSR 151604 151600 MOV MOV MOV mMovB MOV MOV MOV JSR 000001 151570 151564 TYPE 002062 047344 042224 002006 000377 051422 000400 000401 047624 ;CLEAR SIMULATED DISK ;FROM :TO ;DATA YLINDER 0 #O!FMT22,a#CYL;C 047504 047507 047506 042620 ;THIS SAVES TEST NUMBER 1%: 001124 001126 047624 002006 2%: HALT MOV CLR JSR JSR TST BNE MOV MOV MOV MOV CMP BEQ MOV MOV SuB TST BNE ERROR BR ERROR PC,a#CLDISK #-256. ,8RHWC #WRFROM, aRHBA #0,-(SP) #0,1(SP) (SP)+ ,aRHDST #FMT22 ,aRHOF #0,aRHCA PC,a#CHECKT .CPHALT a#WRIDAT ,aR1 a#ERFLGS PC.,a#COMHD PC ,a#PUTREG a#ERFLGS TST66 #377 ,RO #DISK,R1 #256. ,R2 :FILL WRITE BUFFER WITH 377 ;FROM LOCATION ;TO LOCATION :DATA ;SETUP GENERAL REGISTERS ;256. DATA WORDS ;STARTING ADDRESS OF WRITE BUFFER :SECTOR 0 :TRACK 0 ;SECTOR 0 TRACK O :16 BITS PER WORD FORMAT ;CYLINDER 0 ;CHECK THAT DVA,RDY,DPR,DRY = 1 CANNOT CON;AND THAT NO OTHERS = 1. :STOP THE TEST :WRITE DATA=60 ;CLEAR ERROR FLAG ;WRITE DATA ;SAVE REGISTERS ;HAVE ANY ERRORS OCCURED? ;BRANCH IF YES ;GOOD DATA :DATA WRITTEN INTO 'DISK"’ ;COUNTER #256.+1 ,a#ERWORD ;FOR ERROR WORD Rg.(R1)¢ ;COMPARE GOOD DATA WITH DATA ON DISK 3 RO,a#$GDDAT -=(R1) ,a#$BDDAT R2 ,a#ERWORD a#ERFLGS 2% 4 64% 5 ;BRANCH IF GOOD ;GOOD DATA ;BAD DATA ;ERROR WORD NO ;ANY ERRORS ALREADY THERE? ;BRANCH IF YES ;ERROR ON WRITE DATA COMMAND :BRANCH TO AVOID PRINTING NEXT FRROR ;WORD NO GIVES WORD IN ERROR SEQ 0125 SEQ 0124 #SWO07, (SP) + ;IS 7 SET AND 8 RESET aSWR,=.SP) #177177,(SP) TST66 R2 1% sJGET SWITCH SETTING JKEEP ONLY SWITCH 7 AND 8 ;BRANCH OUT IF YES ;IF NOT COUNT 256 WORDS ;BRANCH IF 256. NOT DONE W DEC BNE ;JUNDO -=(R1) FOR BAD DATA oA YA BIC CMP BEQ (R1)+ Y 3%: TST MOV A 150726 177177 000200 64%: L 005721 017746 042716 022726 001402 005302 001345 SEQ 0126 SEQ 0125 L 5329 5330 030204 030206 030212 030216 030222 030224 030226 I 10 12:41 PAGE 127 A 5321 5322 5323 5324 5325 5326 5327 5328 MACY11 30A(1052) 27-JUL-78 TE D DATA T65 WRITE WA WA LA LA LA LA LA LA LA LA N LA LA LA LA LA LA LA LA AW WL W WAL CZRJGCO,RP(G4/5/6 DSKLS CTRLR1 CZRJGC.P11 26~-JUL~78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGT P11 26-JuL-78 10:10 030230 030232 000004 012706 030236 030244 030250 030252 030254 012737 TST66: 001000 000066 042536 002032 042536 030256 J 10 12:41 SEQ 0127 SEQ 0126 PAGE 128 SCOPE MOV #STACK,SP JRESET STACK MOV JSR .WORD .WORD .WORD #TTNO,@#TSTNM RO,a#CLAREA DISK DISK+776 177400 ;THIS SAVES TEST NUMBER ;CLEAR SIMULATED DISK :FROM :T0 ;DATA JSR .WORD .WORD .WORD RO,a#CLAREA REINTO REINTO+776 O ;CLEAR READ INTO BUFFER ;FROM ;10 :DATA s*THESE ARE TO SETUP FOR DISKLESS USE ONLY 012737 105037 112737 005037 005037 012737 005037 004537 047504 051404 010000 047507 047510 047512 047514 044026 047504 047506 047564 MOV H#FMT22 ,a#CYL CLR asKEY?2 CLRB MOVB CLR MOV CLR JSR CyL WCRC sCYLINDER O 16 BITS PER WORD FORMAT a#SECOTR+1 #1,a#SECOTR AMKEY1 ;TRACK 0 sSECTOR 1 #10. ,@#DAWORD X RS, a#CRC ;NO. OF DATA WORDS sTHIS IS A READ COMMAND ;KEY1=0 ;KEY2=0 ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS 004737 013711 012777 012777 112746 112766 012677 012777 005077 004737 104401 000000 005037 004737 042620 002066 177766 003154 151240 014000 151234 042654 062450 002006 047344 151252 151246 000001 151236 JSR PC,a#CLDISK ;SETUP GENERAL REGISTERS MOV MOV #=10. ,aRHWC #REINTO,aRHBA ;10 DATA WORDS ;STARTING ADDRESS OF READ BUFFER MOV MOvB MovB MOV MOV @#READAT ,aR1 ;READ DATA INTO RH(CS1=70 CLR JSR #1,-(SP) ;IN LOWER BYTE GET SECTOR 1 #0,1(SP) ;GET TRACKO IN UPPER BYTE (SP)+,aRHDST ;TRACK/SECTOR IN RHDST #FMT22'ECI ,@RHOF ;16 BITS PER WORD ;ECC CORRECTION INHIBIT BECAUSE sECC IS NOT CHECKED HERE aRHCA ;CYLINDER 0 PC,a#CHECKT ;CHECK THAT DVA,RDY,DPR,DRY = 1 CLR JSR a#ERFLGS PC.a#COMHD TYPE HALT LCPHALT sAND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- ;CLEAR ERROR FLAG sREAD DATA ;*]F THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUT ;*FROM ''COMHD’‘ ROUTINE IN MEANS DATA IS TO BE CHECKED ;*NOW THE DATA READ INTO ‘REINTO'' BUFFER WILL s*BE CHECKED, ONLY 10 WORDS SHOULD BE CHANGED ;*ALL OTHER WORDS SHOULD REMAIN UNCHANGED ;*THE "WRFROM'' BUFFER IS FILLED WITH EXPECTED DATA AND CHECKED 030440 005737 002006 TST AN¥ERFLGS sHAVE ANY ERRORS OCCURED? (W IV TV LV LV LV, LV LV IV TV IV TV IV LV, LV LV, LW RV, LV SV, LV, LV, IV AV, LV, IV, ] 5331 5332 27-JUL-78 MACY11 30A(1052) WRITE DATA T65 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 MACY11 30A(1052) 166 042536 27=JUL=78 READ DATA K 10 PAGE 129 12:41 BNE JSR TST67 RO,a#CLAREA JSR RO,a#CLAREA WRFROM WRFROM+776 0 042536 WRFROM WRFROM+22 177400 ::BRANCH IF YES ;CLEAR BUFFER sFROM :T0 :DATA JFILL EXPECTED DATA ;FROM + 10 :DATA :*NOW READ DATA BUFFER IS CHECKED 002110 000401 MOV #WRFROM,RO ;GOOD DATA MOV MOV CMP BEQ MOV MOV #256. .R2 #257. ,0#ERWORD (RO)+,(R1)+ 2% -(R0O) ,a#$GDDAT -(R1) ,o#$8DDAT ;COUNTER :;FOR ERROR WORD NO :COMPARE GOOD WITH READ BUFFER JBRANCH IF GOOD ;GOOD DATA ;BAD DATA a#ERFLGS ;ANY ERRORS ALREADY THERE MOV 003154 047624 1%: 001124 001126 047624 002006 SuB TST 3%: BNE ERROR BR ERROR #RE INTO,R1 R2 ,a#ERWORD 3% 4 A 5 :DATA READ sERROR WORD NO ;IF YES BRANCH DO NOT TYPE HEADER ;ERROR ON READ DATA ;BRANCH TO AVOID PRINTING NEXT ERROR ;WORD NO 1-10 ARE DATA ;WORDS ;WORD NOS 11-256 HAVE NOT BEEN ;READ AND BUFFER SHOULD BE :ZERO IF OTHER THAN ZERO ;WRONG NUMBER OF WORDS HAVE ;BEEN READ IN THE DISK NOW :CONTAINS 177400 ALL 256 ;WORDS BUT ONLY 10 WORDS ;SHOULD BE READ IN 022021 017746 042716 022726 001402 005302 001345 150362 4%: 177177 000200 2%: CMP (RO)+,(R1)+ ;UNDO =(RO) AND =(R1) FOR ERROR TST67 R2 JBRANCH OUT IF YES ;s COUNT MOV BIC CMP aSWR,-(SP) #177177,(SP) #SWO7, (SP) + BNE 1% BEQ DEC JGET SWITCH SETTING :KEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET :BRANCH IF NOT COMPLETE SEQ 0128 SEQ 0127 CZRJGCO,RPO4/5/6 DSKLS CTRLRI CZRJIGC.PI 26-JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 T66 READ DATA TST67: SCOPE L 10 12:41 PAGE 130 SEQ 0129 SEQ 0128 5434 5435 012706 012737 001000 000067 012701 012721 012721 003154 010000 000401 004037 003274 004152 000000 042536 #STACK,SP #TTNO,Q#TSTNM sRESET STACK ;THIS SAVES TEST NUMBER ;*SET UP "REINTO'' FOR WHAT IS TO BE READ 003232 070707 177776 003234 20 WORDS OF 070707 THEN 16 WORDS WITH ZERO _FLOATING FROM RIGHT TO LEFT (EG. 177776,177775,177773 ETC) MOV MOV 002032 042536 012700 012701 010021 000261 006100 DATA TABLE 1%: 103774 MOV MOV MOV CLR CLR JSR .WORD .WORD .WORD #REINTO,R1 #FMT22, (R1)+ #401,(R1)+ (R1)+ (R1)+ RO,a#CLAREA REINTO+<4*2> REINTO+<23.%*2> 070707 MOV MOV MOV #177776 RO ;GETTING READY TO FLOAT 0 #REINTO+<24.%2>,R1;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ ;MOVE IN FLOATING O SEC ROL BCS JSR .WORD .WORD .WORD RO 1% RO,a#CLAREA REINTO+<40.%2> REINTO+776 O ;STARTING ADDRESS sCYLINDER O FORMAT 16 BIT WORDS s TRACK=1, SECTOR=1 ;KEY1=0 ;KEY2=0 ;FILL "REINTO'' BUFFER :FROM ;TO ;DATA :SET CARRY ;GET O ONE BIT LEFT ;BRANCH IF 16 NOT DONE sFILL THE REST OF BUFFER WITH 0 ;FROM ;70 ;DATA ;*SET UP SIMULATED DISK WITH WHAT IS TO BE READ 004037 051422 051470 070707 042536 012700 012701 010021 000261 006100 103774 177776 051472 004037 051532 052420 177777 004737 JSR RO,a#CLAREA ;FILL "DISK'' BUFFER "WORD DISK+<19.%*2> :TO .WORD 2%: DISK ; FROM "WORD 070707 *DATA MOV #177776 RO :GETTING READY TO FLOAT ZEROS MOV RO, (R1)+ MOV SEC ROL #D1SK+<20.#2>,R1:STARTING ADDRESS WHERE 177776 GOES sMOVE IN FLOATING 0 :SET CARRY ;GET O ONE BIT LEFT BCS RO 2% 042536 JSR RO,a#CLAREA ;FILL THE REST OF BUFFER WITH 177777 043344 JSR PC,a#WRCHHD ;WRITE CHECK HEADER AND DATA .WORD .WORD .WORD DISK+<36.%2> DISK+776 177777 ;BRANCH IF 16 NOT DONE :FROM :TO ;DATA 222X R RPRRRRRPRRRRRRRNRNRRRRRRNRRNNRRNDNNON » » 000004 % 030574 » 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5495 5696 5497 5498 030744 030750 030754 030760 013746 052716 004737 022637 001774 000100 042224 001712 MOV BIS JSR CMP AMUNIT,=(SP) #IR, (SP) PC,a#PUTREG (SP)+,a#(S2 5500 5501 030766 030772 032712 001402 040000 BIT BEQ #MICE ,aR2 33 5502 5503 5504 5505 2289 5508 5509 gg}(‘) 030764 030774 030776 031000 001406 BEQ 104017 000401 ERROR BR 104017 38: 5512 gg}z ERROR sGET UNIT NUMBER sONLY BIT 6 SHOULD BE SET sSAVE REGISTERS ; COMPARE RH(CS2 4% sBRANCH IF GOOD 17 4% sRHDB CONTAINS FAILING WORD ;RHBA CONTAINS ADDRESS+2 17 ;WRITE CHECK ERROR HIGH? ;BRANCH IF ERROR NOT DUE TO "WCE' ;OF THE WORD IN MEMORY FROM sTHE DISK THAT DID NOT COMPARE .L?E AND SC WILL BE SET DUE TO sWCE CORRECTLY WAS NOT SET BUT SOME ;BITS OTHER THAN IR JAND UNIT NO. WAS SET ;*NOW CHECK MEMORY TO SEE 5515 5516 5517 5518 gg;g 031002 031006 031012 031016 031020 012700 012720 012720 005020 005020 002110 010000 000401 5521 5522 5523 ggsg 031022 031026 031030 031032 004037 002120 002166 070707 5526 5527 5528 5529 5530 gg;} 031034 031040 031044 031046 031050 031052 5533 5534 5535 22339 IF NOTHING GOT DESTROYED ;*FILL "WRFROM'® WITH WHAT SHOULD BE IN 'REINTO'' THEN CHECK MOV MOV MOV CLR CLR #WRFROM,RO #FMT22, (RO) + #6401, (RO) + (RO) + (RO)+ ;STARTING ADDRESS sCYLINDER :TRACK=1, SECTOR=1 ;KEY1=0 ;KEY2=0 042536 JSR .WORD .WORD .WORD RO,a#CLAREA WRFROM+<4*2> WRFROM+<23.+2> 070707 sFILL "WRFROM'' BUFFER sFROM ;TO ;DATA 012700 012701 010021 000261 006100 103774 177776 002170 MOV MOV MOV SEC ROL B(S #177776 R0 ;GETTING READY TO FLOAT 0 MWRFROM+<24 ,+2> ,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ sMOVE IN FLOATING 0 :SET CARRY RO ;GET O ONE BIT LEFT 5% ;BRANCH IF 16 NOT DONE 031054 031060 031062 031064 004037 002230 003106 000000 042536 JSR WORD .WORD .WORD RO,a#CLAREA WRFROM+<40.*2> WRFROM+776 O ggzg 031066 005037 002006 CLR ANERFLGS ;CLEAR ERROR FLAG 5541 5542 031072 031076 004037 002110 043514 JSR WRFROM REINTO 256. 6% RO, a#COMPAR s CHECK :GOOD BUFFER 5538 5543 5544 5545 031100 031102 031104 003154 000400 031112 4s: TESTED 5%: ;FILL THE REST OF BUFFER WITH 0 ;FROM :T0 ;DATA :*NOW THE READ BUFFER WILL BE CHECKED sTEST BUFFER sNUMBER OF WORDS CHECKED ;RETURN POINT FOR ERROR HEADER *= als) ] RR RN RRRRRARRRRRARRRRRRARRAARRRRNRAAR ® ;*HAS BEEN COMPLETED NOW WRITE CHECK ERROR BIT IS TO BE RN ;*]F THE PROGRAM COMES BACK HERE THEN WRITE CHECK 552343 5499 SECTOR 1 RN 5492 TRACK 1, PR sCYLINDER O, RPN 5523? SEQ 0130 SEQ 0129 : M 10 MACY11 30A(1052) 27-JuL-78 12:41 PAGE 131 T67 WRITE CHECK HEADER AND DATA NN CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.P1 26=JuL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 MACY11 30A(1052) 27=JUL-78 10 PAGE 132 T67 WRITE CHECK HEADER AND DATA 104004 6%: 7% TST70 ERROR 104005 7%: 031116 031124 000207 000207 000240 10%: RTS JRETURN POINT FOR ERROR DATA ;RETURN FOR GOOD COMPARISON sREAD NEXT ERROR 5 sRETURN TO COMPARISON SUBROUTINE ;DATA IN REINTO BUFFER GOT s CHANGED AFTER A WRITE sCHECK HEADER AND DATA COMMAND sWORD NO CONTAINS THE WORD sNUMBER THAT GOT CHANGED JRETURN TO COMPARISON SUBROUT INE NOP sONLY A BRANCH POINT RTS ERROR SEQ 0131 SEQ 0130 5613 CZ¥ CzZi W W SCOPE ;%16 WORDS OF FLOATING ONES (EG. 1, 2, 4. 10) %16 WORDS OF FLOATING ZEROS (EG. 177776, 177775) 001000 000070 MOV MOV 002032 #STACK,SP #TTNO,a#TSTNM sRESET STACK ;THIS SAVES TEST NUMBER ;*SET UP "REINTO'' FOR WHAT IS TO BE READ 031140 031144 031150 031152 031154 031156 031162 031166 031170 031172 031174 012700 012701 010021 006100 103375 012700 012701 010021 000261 006100 103774 000001 003154 031176 031202 031204 031206 004037 003254 004152 042536 177776 003214 1%: MOV MOV MOV ROL BCC 2%: #1,RO #REINTO,R1 RO, (R1)+ RO 1% ;GETTING READY TO FLOAT 1 ;STARTING ADDRESS WHERE 1 GOES sMOVE FLOATING 1 ;GET 1 ONE BIT LEFT ;BRANCH IF 16 NOT DONE RO,a#CLAREA REINTO+<32.%2> REINTO+776 sFILL REST OF BUFFER WITH 1 FROM ;70 #177776 ,R0O :GETTING READY TO FLOAT 0 #REINTO+<16.%2>,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ sMOVE IN FLOATING 0 :SET CARRY RO ;GET O ONE BIT LEFT 2% ;BRANCH IF 16 NOT DONE 1 000001 ;WITH DATA ;*SET UP SIMULATED DISK WITH WHAT IS TO BE READ MoV MOV MOV ROL BCC #1,R0 #DISK ,R1 RO, (R1)+ RO MOV MOV BCS #177776 ,R0O ;GETTING READY TO FLOAT 0 #DISK+<16.%2>,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ ;MOVE FLOATING 0 :SET CARRY RO ;GET O ONE BIT LEFT 4% ;BRANCH IF 16 NOT DONE 042536 JSR .WORD .WORD .WORD RO,a#CLAREA DISK+<32.%2> DISK+776 0 sFILL REST OF BUFFER WITH 0 ;FROM ;10 ;WITH DATA 043656 JSR PC.,a#WRCHDA ;WRITE CHECK DATA 031210 031214 031220 031222 031224 012700 012701 010021 006100 103375 000001 051422 031226 031232 012700 012701 010021 000261 006100 177776 051462 031246 031252 031254 031256 004037 051522 052420 000000 031260 004737 031236 031240 031242 031244 3%: 4%: MOV SEC ROL 103774 O 012706 012737 O 031126 031132 W ;*TOTAL OF 32 WORDS CONSISTING OF . W ;*DATA TABLE N TST70: 000004 N 031124 3% ;GETTING READY TO FLOAT 1 ;STARTING ADDRESS WHERE 1 GOES ;MOVE FLOATING 1 ;GET 1 ONE BIT LEFT ;BRANCH IF 16 NOT DONE sCYLINDER O, TRACK 1, SECTOR 1 ;KEYS 0, 32 WORDS. ;*IF THE PROGRAM COMES BACK HERE THEN WRITE CHECK o 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 SEQ 0132 SEQ 0131 N CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 B 1 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 133 WRITE CHECK HEADER AND DATA 167 001712 ;BRANCH IF ERROR NOT DUE TO "WCE'' BR 031320 17 6% ;RHDB CONTAINS FAILING WORD ;RHBA CONTAINS ADDRESS+2 ;OF THE WORD IN MEMORY FROM ;THE DISK THAT DID NOT COMPARE 5%: 031322 ERROR 17 sTRE AND SC WILL BE SET DUE TO WCE ;WCE WAS CORRECTLY NOT SET ;BUT SOME BITS OTHER THAN ;IR AND UNIT NO. WERE SET ;*NOW CHECK MEMORY TO SEE IF ANYTHING GOT DESTROYED s*FILL "WRFROM'' WITH WHAT SHOULD BE IN REINTO THEN CHECK IT 031324 031330 031334 005037 012700 012701 010021 006100 002006 000001 002110 012700 012701 177776 002150 6%: 7%: 103375 010021 000261 006100 103774 031376 004037 002210 003106 000001 10%: CLR MOV MOV MOV ROL BCC a#ERFLGS MOV MOV MOV #177776 RO :GETTING READY TO FLOAT 0 H#WRFROM+<16.%2> ,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ sMOVE IN FLOATING 0 SEC ROL BCS JSR .WORD .WORD .WORD 042536 #1,R0 #WRFROM ,R1 :8.(R1)4 7% ;CLEAR ERROR FLAG ;GETTING READY TO FLOAT 1 ;START ADDRESS WHERE 1 GOES ;MOVE FLOATING 1 ;GET 1 ONE BIT LEFT ;BRANCH IF 16 NOT DONE RO 108 :SET CARRY ;GET O ONE BIT LEFT ;BRANCH IF CARRY SET RO,a#CLAREA WRFROM+<32.%2> WRFROM+776 1 ;FILL REST OF BUFFER WITH 1 ;FROM ;TO ;WITH DATA ;*NOW THE READ BUFFER WILL BE CHECKED 031400 031404 031406 031410 031412 031414 004037 002110 003154 000400 031420 031424 031416 031432 031420 031422 031424 104004 11%: 104005 12%: 000207 043514 JSR WRFROM REINTO RO,a#COMPAR 256. ; CHECK :GOOD BUFFER ;TEST BUFFER ;NUMBER OF WORDS CHECKED 11$ 12% sRETURN POINT FOR ERROR HEADER ;RETURN POINT FOR ERROR DATA TST71 sRETURN FOR GOOD COMPARISON ERROR 4 ;READ NEXT ERROR 5 ERROR 5 ;DATA IN REINTO BUFFER GOT RTS PC JRETURN TO COMPARISON SUBROUT INE ;CHANGED AFTER A WRITE ;CHECK DATA COMMAND V. V_ N V. V. V. 5% ERROR W BEQ ;ONLY BIT 6 SHOULD BE SET ;SAVE REGISTERS ; COMPARE RH(CS2 ;BRANCH IF GOOD ;WRITE CHECK ERROR HIGH? W sGET UNIT NUMBER #IR, (SP) PC,a#PUTREG (SP)+,a#(S2 6% AWCE ,a#(S2 W ANUNIT,-(SP) BIS JSR CMP BEQ BIT W 040000 MOV N 001774 000100 042224 001712 N 013746 CZF N ;*HAS BEEN COMPLETED NOW WRITE CHECK ERROR BIT IS TESTED 5614 5615 CZF N WRITE CHECK DATA SEQ 0133 SEQ 0132 N cNn 12:41 PAGE 134 N 170 27-JUL-78 N MACY11 30A(1052) B CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26=JuL-78 10:10 1 e Yo Ve Yo Yo Ve Yo Yo Y S e Ve Ve Ve Ve Ve Ve Ve Ve e Ve W N sJONLY A BRANCH POINT N NOP N 13%: PC CZR CZR N 000240 RTS ;WORD NO CONTAINS THE WORD ;NUMBER THAT GOT CHANGED JRETURN TO COMPARISON SUBROUT INE SEQ 0134 SEQ 0133 N 031430 WRITE CHECK DATA N 000207 27-JUL-78 N 031426 170 N 5670 5671 5672 5673 5674 5675 5676 MACY11 30A(1052) S CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 DM PAGE 135 12:4 1 MACY11 SEQ 0135 SEQ 0134 CZR CZR TST71: SCOPE 031432 000004 031434 031440 031446 031452 031456 031462 012706 012737 004737 004737 104401 042620 042654 062450 031464 012700 003154 MOV #REINTO,RO 031470 031474 031500 031504 031510 031514 013720 012720 013720 012720 013720 012720 001642 000000 001646 000000 001654 000000 MOV MOV MOV MOV MOV MOV + 1T, a#RHER(RO) 031520 031524 031530 013704 013705 012737 001656 002016 031556 MOV MOV MOV a#RHAS R4 RS Q#ATTENT ;R5 HAS ATA BIT IN RHAS 031536 031544 012737 012700 000003 003154 MOV MOV #3,a48TMP1 #REINTO,RO sRETURN POINT TO ERROR ;ERROR REGISTER COUNTER ;REGISTER BUFFER POINTER 031550 031552 031556 031564 031572 031574 031600 012002 012701 052777 013777 000001 000040 (RO) +,R2 ;R2 HAS ADDRESS OF ERROR REG 031604 031606 001401 120537 001774 002032 TYPE HALT 001110 001200 1%: 150052 150044 2$: 042224 071732 MOV MOV BIS MOV MOV JSR CMPB #STACK ,SP #TTNO ,a#TSTNM PC,a#CLDISK PC,a#CHECKT LCPHALT #0,(RO)+ (RO) + a#RHERZ, #0,(RO)+ (RO) + a#RHER3, #0,(RO)+ #2$ ,a#SLPERR #8170 ,R1 #CLR,aRHCS2 ANFUNIT ,QRHCS2 ;CLEAR DISK REGISTERS ;CHECK THAT DVA,RDY,DPR,DRY = 1 ;sAND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- ;BUFFER STARTING FOR 3 ERROR sREGISTERS ;RHER? STORED IN REINTO ;BITS NOT TO BE CHECKED IN RHER1 ;RHER2 STORED IN REINTO+4 ;BITS NOT TO BE CHECKED IN RHERZ2 ;RHER3 STORED IN REINTO+10 ;BITS NOT TO BE CHECKED IN RHER3 ;R4 HAS RHAS ;THAT SHOULD SET WITH ERROR sR1 WILL HAVE BIT UNDER TEST ;CLEAR RH(CS2 sREINSTATE UNIT NO. ;SET ERROR BIT ;JREAD AND SAVE REGISTERS ;ONLY THE BIT IN RS SHOULD BE ;SET IN RHAS ;LOOK @ RHDS1 IF GOOD sWITH THE SETTING OF ONE ;ERROR BIT IN AN ERROR BEQ ERROR 104020 JRESET STACK ;THIS SAVES TEST NUMBER Vo N MOV MOV JSR JSR e 000000 001000 ;REGISTER, THE CORRESPONDING ;RHAS BIT DID NOT SET 031610 031614 031620 031624 031626 013746 042716 022726 001401 104020 001736 001100 140600 3%: MOV BIC BEQ ERROR a#DS1,-(SP) ;GET RHDS1 #VV!PROG, (SP) ;REMOVE VV AND PROG #ATA'!ERR!DPR!DRY .(SP)+;THESE BITS PLUS VV 43 ;CHECK "GO' NEXT, IF THIS 20 ;WITH THE SETTING OF ONE SHOULD BE IN RHDS1 WAS OK ;ERROR BIT, COMPOSITE ERROR ;OR _ATTENTION ACTIVE, OR JONE OF THE OTHER ;PERMANENT BITS DID NOT SET e Ve Ve Ve T ERROR BIT FUNCTIONAL TESTS P .SBTTL VoV 5677 5678 5679 Yo Ve Ve Ve Ve Ve Ve Ve Yo Ve Ve Ve Ve Ve Yo Ve Yo Yo Yo Yo 0o o CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26~JuUL-78 10:10 E 1" PAGE 136 12:41 30A(1052) 27-JUL-78 DATA 170 WRITE CHECK 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 MOV a#DS1,-(SP) 001126 5%: 001736 001100 1460600 104020 031706 031710 031712 031714 031716 006301 031720 031722 031726 005720 005337 001310 103403 BIC CMP BEQ ERROR ;*THIS IS 7%: ASL BCS 000717 108: 001200 5% sFURTHER CHECK OF R1,a4$GDDAT ;GOOD DATA R2 ,a#REGADR a#(S2,a”SBDDAT 1 #VV!PROG, (SP) TST DEC BNE sFAILING REGISTER °'GO" FUNCTIONALITY ;BAD DATA ;"'G0"" WITH NO-OP CHANGED ;ERROR REGISTER ;GET RHDS1 ;CLEAR VV AND PROG #ATA'ERR!DPR!DRY, (SP)+;GO SHOULD NOT CLEAR ANY BITS 7% ;CHECK NEXT ERROR BIT IF A-OK 20 THE MAIN BIT BIT BNE BR 031001 001374 ;GIVE NO-OP ;SAVE REGISTERS ;GO SHOULD NOT CLEAR ERROR ;"'GO"* WITH NO-OP SHOULD NOT CLEAR ;ATA AND/OR ERR TESTING CONTROL LOwIC R1 108 (RO) ,R1 7% sGET NEXT BIT TO THE LEFT ;GO ON TO NEXT REGISTER IF DONE ;1S THIS BIT TO BE TESTED ? sIF NOT, GET NEXT ONE (RO) + a#$TMP1 1% ;ADVANCE RO TO NEXT ERROR REG. JREGISTER COUNTER ;DO NEXT ONE, IF 3 NOT COMPLETE 2% ;IF TO BE TESTED, GO DO IT ! ;*NOW AFTER SETTING ATA IN RHDS1 ""1'" IN RHAS AT THE ;*DRIVE POSITION SHOULD CLEAR ATA IN RHDS1 031730 031734 031742 031746 031754 031760 031764 031766 004737 012737 012714 013777 004737 105737 001401 042620 031730 177777 002016 042224 001732 031770 031774 032000 013746 042716 022726 001736 001000 040700 032004 032006 001110 11%: 147702 TSTB BEQ ERROR 104020 001401 104020 JSR MOV MOV MOV JSR 12%: MOV BIC CMP BEQ ERROR PC,a#CLDISK #118,SLPERR ;CLEAR sERROR RETURN #-1,a3R4 QNATTENT ,aRHAS ;SET BIT IN RHAS AND ATA IN RHDS1 ;WRITE 1 INTO DRIVE BIT POSITION ?525 ;THIS SHOULD BE ZERO PC,a#PUTREG ;SAVE REGISTERS 20 sMOVING A ‘"1'" INTO RHAS ;AT THE DRIVE BIT POSITION ;DID NOT CLEAR IT a#DS1,-(SP) ;GET RHDS1 #PROG, (SP) sMASK PROGRAMABLE #ERR!VV!DPR!DRY, (SP)+ sRHDS1 13% 20 ~N #GO,aRICST PC ,a#PUTREG R1,aR2 p o MOV JSR CMP BEQ MOV MOV MOV ERROR OO 4%: OO OO OO O OO 013746 042716 022726 001401 042270 001124 071712 150002 CZR OO OO O OO O OO OO 031666 031672 031676 031702 031704 000001 042224 ATTENTION WITH ERROR TEST AAMROAAAAMAAAAAOAOO 5763 012777 SEQ 0136 SEQ 0135 PAGE 137 TM7 SHOULP HAVE THESE BITS ;BUT ATA SHOULD BE CLEARED ;CHECK RHER1 IF GOOD JMOVING '"1'" INTO RHAS AT THE ;DRIVE BIT POSITION DID NOT ;CLEAR ATA IN RHDS1 A 5762 021630 031636 031642 031644 031646 031652 031656 031664 F1N 12:41 A 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 27=-JUL-78 o CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26~JuL-78 10:10 MACY11 30A(1052) 032016 032020 001401 104020 177777 001716 13%: CMP #<1,34[R1 BEQ ERROR 1ST72 20 ;RHERT SHOULD NOT CHANGE ;BY CLEARING RHAS sBRANCH IF GOOD ;RHER1 WAS CHANGED BY CLEARING ;RHAS BY MOVING '"1"" INTO ;THE DRIVE BIT POSITION o ~N CZR. S e oot et ot et~ ot ot st st St oot <t st el <ot =l ol - 5796 5797 5798 5799 5800 022737 SEQ 0137 SEQ 0136 e 5794 S795 032010 G 1 30A(1052) 27-JUuL-78 12:41 PAGE 138 TM7 ATTENTION WITH ERROR TEST o 5789 5790 5791 5792 5793 MACY11 lal CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26~JuL~-78 10:10 002032 042536 032050 032054 032056 032060 e sRESET STACK MOV JSR .WORD .WORD .WORD #TTNO,@#TSTNM RO,a#CLAREA DISK DISK+776 177400 ;THIS SAVES TEST NUMBER ;CLEAR SIMULATED DISK ;FROM :T0 ;DATA JSR RO,a#CLAREA ;CLEAR READ INTO BUFFER .WORD REINTO+776 .WORD WORD REINTO O ;FROM ;T0 L 000072 042536 #STACK,SP L 012737 SCOPE MOV L L 032030 032036 032042 032044 032046 T1ST72: 001000 CZR. CZR. e 000004 012706 SEQ 0138 SEQ 0137 e 032022 032024 71 H1 27-JUL-78 12:41 PAGE 139 ATTENTION WITH ERROR TEST ;DATA 012737 105037 112737 005037 005037 012737 005037 004537 047504 010000 047507 047510 047512 000012 047514 044026 047504 047506 047564 MOV CLRB MOVB CLR HFMT22 ,a#CYL A#SECOTR+1 #1,a#SECOTR a#KEYT ;CYLINDER O 16 BITS PER WORD FORMAT ;TRACK 0 sSECTOR 1 sKEY1=0 MOV CLR #10. ,a#DAWORD asx ;NO. OF DATA WORDS ;THIS IS A READ COMMAND CLR ééR aMKEY2 RS,a#CRC ;KEY2=0 ;GO TO CALCULATE CRC L WCRC 051404 ;*THESE ARE REGULAR SETUPS 032134 032140 032144 032152 032160 032164 032172 032176 004737 013711 012777 012777 032204 032210 032214 005077 004737 112746 112766 012677 012777 104401 000000 052777 005037 004737 042620 002066 177766 003154 000001 000000 000001 014000 147444 147446 147460 147454 147442 042654 062450 000010 002006 047344 147406 JSR PC,a#CLDISK ;SETUP GENERAL REGISTERS MOV MOV #=10. ,aRHWC #REINTO,aRHBA 210 DATA WORDS ;STARTING ADDRESS OF READ BUFFER MOV MOVB MovB MOV MOV Q#READAT ,aR1 ;READ DATA INTO RH(CS1=70 CLR JSR TYPE #1,-(SP) ;IN LOWER BYTE GET SECTOR 1 #0,1(SP) ;GET TRACKO IN UPPER BYTE (SP)+,aRHDST s TRACK/SECTOR IN RHDST #FMT22'ECI,QRHOF ;16 BITS PER WORD sECC CORRECTION INHIBIT BECAUSE sECC IS NOT CHECKED HERE aRHCA ;CYLINDER 0 PC,a#CHECKT sCHECK THAT DVA,RDY,.DPR,DRY = 1 .CPHALT ;AND THAT NO OTHERS = 1. CANNOT CON- BIS #BA] ,8RHCS2 HALT CLR JSR A#ERFLGS PC,a#COMHD ;STOP THE TEST ;SET BUS ADDRESS INHIBIT ;CLEAR ERROR FLAG sREAD DATA ;*IF THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUT ;*FROM "'COMHD'' ROUTINE IN MEANS DATA IS TO BE CHECKED ;*NOW THE DATA READ INTO ‘REINTO'' BUFFER WILL ;*BE CHECKED, ONLY ONE WORD SHOULD BE CHANGED ;*ALL OTHER WORDS SHOULD REMAIN UNCHANGED ;*THE 'WRFROM'' BUFFER IS FILLED WITH EXPECTED DATA AND CHECKED oo 032062 032070 032074 032102 032106 032112 032120 032124 032130 032132 e Ao ATl a ke a ke Lo aXe sl Ao Ao sl sl A Al A A e ;*THESE ARE TO SETUP FOR DISKLESS USE ONLY Lo e 5801 5802 5803 MACY11 30A(1052) e A CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=JuL=78 10:10 CZRJGC.P1 032264 012700 012701 012702 012737 022021 001424 014037 014137 160237 005737 002110 003154 000400 000401 047624 1%: ;GOOD DATA :DATA READ ;COUNTER ;FOR ERROR WORD NO :COMPARE GOOD WITH READ BUFFER MOV MOV SuB TST BNE ERROR BR -(R0O) ,a#$GDDAT -(R1) ,a#$8DDAT R2,a#ERWORD a#ERFLGS 3% 4 A3 ;GOOD DATA ;BAD DATA ;ERROR WORD NO ;ANY ERRORS ALREADY THERE ;IF YES BRANCH DO NOT TYPE HEADER :ERROR ON READ DATA :BRANCH TO AVOID PRINTING NEXT ERROR BEQ 001124 001126 047624 002006 3%: ERROR pd 3 5 ;BRANCH IF GOOD :WORD NO 1-10 ARE DATA ;WORDS ;WORD NOS 11-256 HAVE NOT BEEN ;READ AND BUFFER SHOULD BE ;ZERO IF OTHER THAN ZERO ;WRONG NUMBER OF WORDS HAVE ;BEEN READ IN THE DISK NOW :CONTAINS 177400 ALL 256 ;WORDS BUT ONLY 10 WORDS ;SHOULD BE READ IN 022021 017746 042716 022726 001402 005302 001345 146570 177177 4%: 000200 2%: CMP MOV aSWR,=(SP) :UNDO =(R0O) AND =(R1) FOR ERROR ;GET SWITCH SETTING PEC BNE R2 1% s COUNT ;BRANCH IF NOT COMPLETE BIC CMP BEQ (RO)+,(R1)+ #177177,(SP) #SWO7, (SP) + TST73 o ~N e e #WRFROM,RO #REINTO,R1 #256. .R2 #257. ,3#ERWORD (RO)+,(R1)+ ;KEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET ;BRANCH OUT IF YES e e e MOV MOV MOV MOV CMP e :*NOW READ DATA BUFFER IS CHECKED P JEXPECTED DATA e Al #177400,3#WRFROM e Ao Lo ol Ao oAl :*EXPECTED DATA IS 177400 IN FIRST LOCATION ONLY MOV 002110 e aXe o 177400 ;TO ;DATA oo a e a e a e a e ale ale e 012737 :FROM e WRFROM+776 0 :CLEAR FLAG ;CLEAR BUFFER CZR, 0 WRFROM a#ERFLGS RO,a#CLAREA SEC 0139 SEQ 0138 (o CLR JSR 002006 042536 032240 032244 032250 032252 032254 032256 172 In PAGE 140 27-JUL-78 12:41 BUS ADDRESS INHIBIT & CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 MACY11 30A(1052) CZRJGCO,RP04/5/76 DSKLS CTRLR1 CZRJGC.P11 26-JUL=78 10:10 5904 §905 5906 5907 5908 5909 gg}? 032366 032370 032374 032402 032406 032410 000004 012706 012737 005737 001402 000137 001000 000073 002040 §912 032414 004037 5915 5916 5917 032424 177400 5913 032420 051422 §914 032422 052420 J 1 MACY11 30A(1052) 27=JUL=78 12:41 PAGE 141 172 BUS ADDRESS INHIBIT a TST73: 032732 SCOPE MOV MOV TST BEQ JMP #STACK , SP #TTNO,Q#TSTNM HRH70 30% TST74 :RESET STACK :THIS SAVES TEST NUMBER *TEST FLAG FOR RH70 CONTROLLER ;IF FLAG = 1, THIS TEST IS SKIPPED :JUMP TO NEXT TEST 042536 JSR RO, a#CLAREA :CLEAR SIMULATED DISK .WORD 177400 *DATA 002032 .WORD 'WORD gg}g *FROM :T0 ;*THESE ARE TO SETUP FOR DISKLESS USE ONLY 5920 032426 5921 032434 5922 032440 5923 032446 5924 032452 5925 032456 5926 032464 5927 032470 5928 032474 5929 032476 5930 012737 105037 112737 005037 005037 012737 005037 004537 047504 051404 010000 047507 000001 047510 047512 000001 047514 044026 5933 5934 5935 5936 032500 032504 032510 032516 004737 013711 012777 012777 042620 002066 177777 160000 5938 5939 032530 032534 112746 112766 5941 5942 5943 5944 5945 5946 5947 5948 5949 ggg? 032546 047504 MOV CLRB MOVB CLR CLR MOV CLR JSR cYL WCRC 047506 047564 gg;} 5937 032524 5940 DISK DISK+776 :CYLINDER 0, 16 BITS PER WORD FORMAT :TRACK 0 *SECTOR 1 *KEY1=0 :KEY2=0 :NO. OF DATA WORDS ;THIS IS A READ COMMAND :GO TO CALCULATE CRC :*THESE ARE REGULAR SETUPS 052711 147114 147110 JSR MOV MOV MOV PC,a#CLDISK Q#READAT ,aR1 #=1. ,3RHWC #160000,aRHBA :SETUP GENERAL REGISTERS *READ DATA INTO RHCS1=70 210 DATA WORDS - STARTING ADDRESS OF READ BUFFER 000001 000000 000001 MOVB MOVB #1,-(SP) #0.1(SP) *IN LOWER BYTE GET SECTOR 1 *GET TRACKO IN UPPER BYTE 147074 MOV CLR JSR TYPE HALT BIS CLR JSR (SP)+,aRHDST :TRACK/SECTOR IN RHDST #FMT22'ECI.@RHOF ;16 BITS PER WORD ;:ECC CORRECTION INHIBIT BECAUSE *ECC IS NOT CHECKED HERE aRHCA :CYLINDER 0 PC,a#CHECKT :CHECK THAT DVA,RDY,DPR.,DRY = 1 L CPHALT SAND THAT NO OTHERS = 1. CANNOT CON*STOP THE TEST #BA] ,ARHCS2 *SET BUS ADDRESS INHIBIT ANERFLGS :CLEAR ERROR FLAG PC , a#COMHD *READ DATA MOV aR1,a#$BDDAT ;TEST DATA BEQ CMP #SC'TRE'DVA'A16'A17!RDY!70,3#$8DDAT ;COMPARE RHCS1 2% -BRANCH IF GOOD MOV R1,a4REGADR 001400 032542 012677 012777 014000 032554 032560 032564 032570 032572 032600 032604 005077 004737 104401 000000 052777 005037 004737 147072 042654 062450 5952 5953 gggg 032610 011137 001126 5956 5957 032614 032622 022737 001406 145670 5959 032632 010137 042270 5958 032624 WFMT22,a#CYL a#SECOTR+1 #1,a#SECOTR KEY1 ANKEY2 #1..a#DAWORD sX RS, a#CRC 012737 147076 000010 002006 047344 BIS MOV 147036 1$: 001126 144270 001124 MOV #A16'A17,aR1 :1s 760000 #SC!TRE'DVA'RDY! 7 _a#$GDDAT ;GOOD DATA :REGISTER RHCS1 SEQ 0140 SEQ 0139 CZR. CZR. & & & & & 6 g é 6 & & é' 6 21 6 6 6 6 6 6 6 6 6 6 3 g 6 é 6 6 6 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JuL-78 10:10 5960 5961 5962 5963 5964 5965 5 5967 5968 5969 5970 5971 gg;% 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 032636 104001 032640 032644 032650 032654 032660 032666 013746 052716 012637 011237 023737 001403 001774 004110 001124 001126 001124 MACY1 3?;?052) 2%: 001126 032670 010237 042270 032676 017737 146732 001126 032704 032712 032714 032722 032730 022737 001407 012737 013737 104001 160000 001126 160000 001634 001124 042270 032674 032732 104001 3%: 4%: K11 27=JUL-78 12:41 PAGE 142 RHCS2 = BIT # 11 = NEM ERROR 1 MOV BIS MOV MOV CMP BEQ A#UNIT, = (SP) #NEM!IR!BAI, (SP) s INCLUDE NEM BAI AND IR (SP)+ ,a#$GDDAT ; aR2,a#$BDDAT :TEST DATA a#$GDDAT ,a#$BDDAT; COMPARE RHCSZ2 ERROR 1 38 ;REFERENCE NON EXISTANT sMEMORY DID NOT SET sREQUIRED BITS sGET UNIT NUMBER MOV R2.,a#REGADR ;JREGISTER ADDRESS MoV adRHBA ,a#$BDDAT CMP BEQ MOV MOV ERROR #160000,a#$B8DDAT . COMPARE RHBA 48 ;BRANCH IF GOOD #160000,a#$GDDAT; GOOD DATA A#RHBA ,Q#REGADR ;REGISTER ADDRESS RHBA 1 JAFTER A NON EXISTANT MEMORY ERROR ;RHBA DOES NOT HAVE 160002 sREFRENCING NONEXISTANT MEMORY ;CAUSED AN ERROR SHOULD SET NEM ;TEST DATA SEQ 0141 SEQ 0140 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 5988 5989 5990 5991 032732 LN MACY11 30A(1052) 27=JUL=78 12:41 PAGE 143 RHCS2 = BIT # 11 = NEM 173 TST74: 000004 SEQ 0142 SEQ 0141 SCOPE ;*DATA TABLE s*TOTAL OF 32 WORDS CONSISTING OF 5992 ;%16 WORDS OF FLOATING ONES (EG. 1, 2, 5993 5994 5995 4, 10) ;%16 WORDS OF FLOATING ZEROS (EG. 177776, 177775 032734 032740 032746 012706 012737 004737 001000 000074 042620 MOV MOV 002032 JSR #STACK,SP #TTNO,a#TSTNM PC.a#CLDISK sRESET STACK ;THIS SAVES TEST NUMBER JINIT AND SET UP GENERAL REGISTERS s*SET UP "REINTO'' FOR WHAT IS TO BE READ 032752 032756 032762 032764 032766 032770 032774 033000 033002 033004 033006 012700 012701 010021 006100 103375 012700 012701 010021 000261 006100 103774 000001 003154 033010 033014 033016 033020 004037 003254 004152 000001 042536 1%: 177776 003214 2%: MOV MOV MOV ROL BCC MOV #1,RO #REINTO,R1 RO, (R1)+ RO 1% #177776,R0 ;GETTING READY TO FLOAT 1 ;STARTING ADDRESS WHERE 1 GOES sMOVE FLOATING 1 sGET 1 ONE BIT LEFT sBRANCH IF 16 NOT DONE :GETTING READY TO FLOAT 0 SEC ROL RO :SET CARRY ;GET O ONE BIT LEFT RO,a#CLAREA REINTO+<32.%2> REINTO+776 1 ;FILL REST OF BUFFER WITH 1 :FROM 10 *WITH DATA MOV MOV BCS JSR .WORD ‘WORD WORD #REINTO+<16.%2>,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ sMOVE IN FLOATING O 2% ;BRANCH IF 16 NOT DONE ;*SET UP SIMULATED DISK WITH WHAT IS TO BE READ 033022 033026 033032 033034 033036 012700 012701 010021 006100 103375 033040 033044 033050 033052 033054 033056 012700 012701 010021 000261 006100 103774 033060 033064 033066 004037 051522 052420 000000 000001 051422 3%: 177776 051462 042536 4%: ;GETTING READY TO FLOAT 1 *STARTING ADDRESS WHERE 1 GOES :MOVE FLOATING 1 *GET 1 ONE BIT LEFT BRANCH IF 16 NOT DONE MOV MOV MOV ROL BCC #1,R0 #D1SK,R1 RO, (R1)+ RO 3$ MOV MOV #177776 RO :GETTING READY TO FLOAT 0 #DISK+<16.%2>,R1" ;STARTING ADDRESS WHERE 177776 GOES MOV RO, (R1)+ :MOVE FLOATING 0 - BCS RO 4$ *BRANCH IF 16 NOT DONE JSR .WORD .WORD .WORD RO,a#CLAREA DISK+<32.%2> DISK+776 O SEC ROL *SET CARRY *GET O ONE BIT' LEFT ;FILL REST OF BUFFER WITH 0 :FROM :T0 ;WITH DATA s*CHANGE FIFTH WORD TO O ON DISK 033072 033076 005037 005037 051432 002006 CLR CLR a#DISK+10 A¥ERFLGS sCLEAR FIFTH WORD ON DISK sCLEAR ERROR FLAG CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL=78 10:10 MACY11 3??21052) 6044 033102 004737 043656 MmN 27-JUL=78 12:41 WRITE CHECK ERROR JSR 6045 PC,a#WRCHDA &g PAGE 144 ;WRITE CHECK DATA sCYLINDER O, TRACK 1, SECTOR 1 ;KEYS 0, 32 WORDS. 6048 6049 :*]F THE PROGRAM COMES BACK HERE THEN WRITE CHECK S«MAS BEEN COMPLETED, NOW WRITE CHECK ERROR BIT IS TESTED 282? :*ALONG WITH RHWC FOR PROPER WORD COUNT AND RHBA FOR ADDRESS 6052 033106 013746 001774 MOV SUNIT,=(SP) ;GET UNIT NUMBER 6054 033116 004737 042224 JSR PC,a#PUTREG :SAVE REGISTERS 63 :BRANCH IF GOOD 6053 033112 052716 040300 6055 033122 022637 001712 6057 033130 032737 6058 033136 001002 040000 6056 6059 033126 033140 001407 000401 6064 104017 6065 033144 BIS P BEQ 001712 104017 6060 033142 6061 6062 6063 5%: (SP)+,a#(CS2 66 #WCE ,a#CS2 S$ BR “$ ERROR 17 17 6071 033154 6072 022737 6074 ¢ 6¢ :RHBA CONTAINS ADDRESS+2 :OF THE WORD IN MEMORY FROM :THE DISK THAT DID NOT COMPARE :TRE AND SC WILL BE SET DUE TO WCE 6¢ 66 6¢ 6¢ *BUT SOME BITS OTHER THAN 6t :RHDB CONTAINS FAILING WORD 104017 177750 6$: 001706 TST BEQ A¥RH70 16% :TEST FOR RH70 CONTROLLER :SKIP RH70 CODE AND DO RH11 IF NOT MP #-24. ,amiC :COMPARE RHWC AFTER A FORCED ;WRITE CHECK ERROR BEQ 178 6075 8;‘7’ 033166 000421 BR 158 CMP BEQ #RE INTO+<8.+2>,a#8A :COMPARE RHBA AFTER A FORCED :WRITE CHECK ERROR IN FIFTH WORD 158 :CONTINUE IF GOOD BR 15% *FORCED WRITE CHECK ERROR ON FIFTH WORD :SKIP RH11 CODE AND CONTINUE WITH TEST CMP #-27. . 3MC :COMPARE RHWC AFTER A FORCED 001402 BEQ 148 :WRITE CHECK ERROR :CHECK RHBA IF GOOD 000405 BR 15% :FORCED WRITE CHECK ERROR ON FIFTH WORD :BRANCH TO CONTINUE TEST CMP #REINTO+<5.+2> ,a#B8A; COMPARE RHBA AFTER FORCED :WRITE CHECK ERROR IN FIFTH WORD 033164 6078 033170 022737 6079 6080 033176 001415 033200 000413 6085 022737 033204 6086 6087 033212 033214 6089 6‘33? 033216 ERROR 003174 033230 17%: ERROR 177745 001706 16%: 104017 6092 033220 022737 003166 6093 033226 001710 104017 6082 6083 033202 6098 6099 6¢ :WCE WAS CORRECTLY NOT SET 001402 609 6095 60960967 ¢ :WRITE CHECK ERROR HIGH? : :BRANCH IF ERROR NOT DUE TO 'WCE' 033162 6088 6f :COMPARE RH(CS2 6¢ IR AND UNIT NO. WERE SET 6068 033146 005737 002040 gggg 033152 001414 6081 ¢ ¢ BIT BNE ERROR ¢ #IR'OR'WCE,(SP) :ONLY BIT 6 SHOULD BE SET % 6073 SEQ 0143 SEQ 0142 001401 104017 ERROR 001710 14$: BEQ ERROR 17 17 17 15% 17 :CHECK RHBA IF GOOD :WORD COUNT REGISTER IN ERROR AFTER A :FORCED WRITE CHECX ERROR ON FIFTH WORD :BRANCH TO CONTINUE TEST *BUS ADDRESS REGISTER IN ERROR AFTER :WORD COUNT REGISTER IN ERROR AFTER A :CONTINUE IF GOOD :BUS ADDRESS REGISTER IN ERROR AFTER sFORCED WRITE CHECK ERROR ON FIFTH WORD :*NOW CHECK MEMORY TO SEE IF ANYTHING GOT DESTROYED S«FILL "WRFROM'' WITH WHAT SHOULD BE IN REINTO THEN CHECK 24‘ | & Z &t 10%: 033302 033304 004037 002210 003106 000001 #177776 RO :GETTING READY TO FLOAT 0 #WRFROM+<16.%2>,R1 ;STARTING ADDRESS WHERE 177776 GOES RO, (R1)+ :MOVE IN FLOATING 0 SEC ROL BCS 103774 033274 033300 MOV MOV MOV JSR .WORD .WORD 042536 .WORD #WRFROM,R1 RO, (R1)+ RO 7% :START ADDRESS WHERE 1 GOES JMOVE FLOATING 1 JGET 1 ONE BIT LEFT :BRANCH IF 16 NOT DONE RO :SET CARRY :GET O ONE BIT LEFT RO,a#CLAREA WRFROM+<32.%2> WRFROM+776 :FILL REST OF BUFFER WITH 1 :FROM ;T0 108 1 :BRANCH IF CARRY SET ;WITH DATA :*NOW THE READ BUFFER WILL BE CHECKED JSR WRFROM 043514 033306 033312 033314 033316 033320 033322 004037 002110 003154 033324 033340 033326 033330 033332 104004 11%: 104005 12%: REINTO 033334 000207 033336 000240 :NUMBER OF WORDS CHECKED :RETURN POINT FOR ERROR HEADER ;RETURN POINT FOR ERROR DATA TST75 13%: ;RETURN FOR GOOD COMPARISON ERROR RTS ERROR 4 PC 5 RTS PC NOP s CHECK ;GOOD BUFFER ;TEST BUFFER 256. 11% 12% 0004 00 033326 033332 000207 RO,a#COMPAR ;READ NEXT ERROR S5 :RETURN TO COMPARISON SUBROUTINE ;DATA IN REINTO BUFFER GOT :CHANGED AFTER A WRITE :CHECK DATA COMMAND :WORD NO CONTAINS THE WORD :NUMBER THAT GOT CHANGED ;RETURN TO COMPARISON SUBROUT INE ;ONLY A BRANCH POINT VPRV IVIVIISV9°99°S Qg ® 177776 002150 MOV MOV ROL BCC IV 012700 012701 010021 000261 006100 ;CLEAR ERROR FLAG ;GETTING READY TO FLOAT 1 I 103375 aNERFLGS #1,R0 I T T I 7%: CLR MOV Y 15%: CZRJ N 033254 033260 002006 000001 002110 SEQ 0144 SEQ 0143 T Y b i b b b b - ONOWVESWN=O 033252 005037 012700 012701 010021 006100 174 N 12:41 PAGE 145 WRITE CHECK ERROR 27=JUL-78 T 6100 MACY11 30A(1052) R C(ZRJGCO,RPO4/5/6 DSKLS CTRLRI1 26=-JuL-78 10:10 CZRJIGC.PN ] TST75: SCOPE ey WRITE CHECK ERRCR CZ¥ ~N 174 SEQ 0145 SEQ 0144 (w) B 12 12:41 PAGE 146 033342 012706 001000 012737 012746 012705 012700 000075 125252 000400 051422 PR 000004 égp).(RO)* 1% (SP)+ 6165 #0.a#SECOTR #0 ,a#KEY1 :SECTOR 0 :KEY1=0 #4. , a#DAWORD X *NO. OF DATA WORDS “THIS IS A READ COMMAND #0. IHKEY2 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 SR SR PR SR SR SR S S A e *KEY2=0 *GO TO CALCULATE CRC #0,-(SP) 146112 aRHCA PC.,a#CHECKT LCPHALT a#REFOR,aR1 a#ERFLGS 104401 000000 012700 012720 112746 112766 012620 012720 000000 aRHWC , SBDDAT 20%: 043044 062450 002110 000000 000000 000001 PC,a#COMHD 001126 002006 208 40 a#ERFLGS TST76 PC,a#CHECKE LCPHALT 000001 ;IN LOWER BYTE GET SECTOR #1,1(SP) :GET TRACK IN HIGHER BYTE (SP) + ,aRHDST ;TRACK/SECTOR IN RHDST #FMT22'ECI ,aRHOF ;16 BITS PER WORD 000001 146036 #WRFROM,RO #0,(RO)+ #0,-(SP) #1,1(SP) (SP)+,(RO)+ #0,(RO) + ;CYLINDER O ;CHECK THAT DVA,RDY,DPR,DRY = 1 ;AND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- :READ HEADER AND DATA=72 ;CLEAR ERROR FLAG ;READ HEADER AND DATA ;LOAD AND TEST RHWC :SHOULD = 0 :RHWC DOES NOT = 0 AFTER A READ ;ANY ERRORS ALREADY THERE ;BRANCH IF YES :CHECK THAT BITS = 1 ;CANNOT CONTINUE TESTING IF THEY DON'T :STOP THE TEST e :SETUP GENERAL REGISTERS ;4. DATA 4 HEADER WORDS ;STARTING ADDRESS OF READ BUFFER e PC.a#CLDISK #-4.-4. ,aRHWC #RE INTO,aRHBA 146126 146122 S o RS, a#CRC S 6164 e 6163 #17. RS :2 ECC WORDS (RO) + *CLEAR ECC, DATA GAP, AND RS * TOLERANCE ~GAP 28 "BRANCH IF NOT COMPLETE #0'0,a#CYL ;16 BITS PER WORD #1.a#SECOTR*1 :TRACK 1 S 6160 6161 6162 *BRANCH IF 256 NOT COMPLETE *UNDO =(SP) s 2%: ?855 IN DATA ON TO SIMULATED DISK A 000021 *START OF SIMULATED DISK DATA e 1%: SR *COUNTER #D1SK.RO :DATA TO BE READ Sm #256. .R5 SR :THIS SAVES TEST NUMBER #125252,-(SP) SR HTINO,@#TSTNM SR :RESET STACK e 002032 #STACK , SP PR PR 033340 :GETTING READY TO FILL EXPECTED DATA ;CYLINDER O :IN LOWER BYTE GET SECTOR ;GET TRACK IN HIGHER BYTE ;GET TRACK/SECTOR IN BUFFER :KEY1 IN BUFFER L 6151 6152 6153 6154 6155 6156 6157 6158 6159 27=-JUL-78 L 6144 6145 6146 6147 6148 6149 6150 MACY11 30A(1052) e CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 000207 *RETURN TO ‘‘COMPAR'' “WORD NOS 1 TO & ARE *RETURN TO ''COMPAR'’ ;*NOW SEE THAT FORMAT ERROR BIT GOT SET 033724 004737 042224 033730 033736 033740 022737 001401 100020 104020 6%: 001716 JSR PC,a#PUTREG ;SAVE REGISTERS cMP BEQ ERROR #FER!DCK,a#ERT 1ST76 20 ;FORMAT ERROR SHOULD BE SET ;BRANCH IF GOOD ;A 16 BIT PER WORD READ WAS ATTEMPTED sWHEN THE DISK HAD ;THE FORMAT BIT=0= 18 BITS PER ;WORD THE READ WAS ;COMPLETED BUT ERROR REG ;WAS NOT RIGHT ;NOTE DCK WILL BE SET BECAUCE ;ECC HAS NOT BEEN GENERATED WL WL N W W W W N N L P NP N N 4 PC 5 PC *TEST BUFFER *NUMBER OF WORDS CHECKED “RETURN POINT FOR ERROR HEADER *RETURN POINT FOR ERROR DATA *RETURN FOR GOOD COMPARISON *READ NEXT ERROR N 5%: RTS ERROR RTS *BRANCH IF 256 NOT DONE * CHECK *GOOD BUFFER N 4%: REINTO 444, 4$ 5% 6% ERROR COUNT NN R1 = 043514 033702 033704 033706 033710 033712 033714 033716 033720 033722 DEC BNE 3$ RO, 34#COMPAR JSR WRFROM ;KEY2 IN BUFFER *DATA WORD COUNTER :DATA :DATA INTO BUFFER = 3%: #0, (RO)+ #256. N1 #125252,R2 R2, (RO)+ S-S 125252 MOV MOV MOV MOV CZF CZF = 000000 000400 SEQ 0146 SEQ 0145 S 012720 012701 ¢ 12 PAGE 147 MACY11 30A(1052) 27=-JUL-78 12:41 175 ERROR REGISTER #1-BIT 4 -FORMAT ERROR S CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL-78 10:10 6234 6235 6236 033742 D 12 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 148 175 ERROR REGISTER #1-BIT 4 -FORMAT ERROR 000004 TST76: 8% g%zg 033744 012706 001000 23212 033750 012737 000076 6243 6244 6245 6246 033756 012737 177777 033764 033770 042536 033772 033774 004037 051422 052446 000000 6250 6251 6252 6253 6254 6255 6256 6257 033776 034002 034006 034012 034016 034022 034030 034036 005037 105037 105037 005037 005037 012737 012737 004537 047504 047507 047506 047510 047512 000004 000001 044026 6247 6248 6249 6258 6259 6260 034042 034044 052642 052652 SEQ 0147 SEQ 0146 CZR CZR € SCOPE ¢ :*WRONG FORMAT BIT g :*NOW A WRITE DATA WILL BE ATTEMPTED WITH € MOV #STACK,SP :RESET STACK g 002032 MOV #TTNO,@#TSTNM ;THIS SAVES TEST NUMBER g 047620 MOV #-1,34NOSYNC :SET FLAG SO THAT DATA SYNC ;AND DATA IS NOT READ ¢ ¢ € € FRMAT1: JSR .WORD RO,a#CLAREA DISK CLR CLRB CLRB CLR CLR MOV MOV JSR arcyL a#SECOTR+1 a¥SECOTR AKEYT AKEY?2 #4 , I#NOWORD #1, 34X RS,a#CRC :CLEAR SIMULATED DISK :FROM .WORD TOLGAP+16 :T0 LWORD O :DATA :*THESE ARE SETUP FOR DISKLESS USE ONLY 047552 047514 wCYL GCRC ggg;_ :CYLINDER O, FORMAT 18 BIT WORDS :TRACK 0 :SECTOR 0 :KEY1 0 :KEY2 0 :NO OF DATA WORDS :WRITE DATA ;GO TO CALCULATE CRC :*THESE AER REGULAR SETUPS € ¢ ¢ ¢ ¢ ¢ € € ¢ ¢ ¢ € ¢ ¢ E 6263 6264 6265 034046 034052 034054 004037 002110 002116 042536 JSR RO,a#CLAREA WRFROM WRFROM+6 :FILL WRITE FROM BUFFER WITH 125252 :FROM :T0 ¢ ¢ ¢ 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 034060 034064 034072 034100 034104 034112 034116 034122 034126 034130 034134 034140 004737 012777 012777 005077 012777 005077 004737 104401 000000 013711 005037 004737 042620 177774 002110 145540 010000 145534 042654 062450 JSR MOV MOV CLR MOV CLR JSR TYPE HALT MOV CLR JSR :SETUP GENERAL REGISTERS :256 DATA WORDS ;STARTING ADDRESS OF WRITE BUFFER :TRACK=0 SECTOR=0 :16 BITS PER WORD FORMAT ;CYLINDER 0 ;CHECK THAT DVA,RDY,DPR,DRY = 1 :AND THAT NO OTHERS = 1. CANNOT CON:STOP THE TEST :WRITE DATA=60 :CLEAR ERROR FLAG :WRITE DATA ¢ € 034144 034150 034154 034156 034162 034166 004737 005737 001041 012700 012701 012702 042224 002006 6266 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 034056 125252 002062 002006 047344 000000 051422 000004 125252 145540 145534 145536 PC.a#CLDISK #-4 ,aRHWC #WRFROM,3RHBA aRHDST #FMT22 , aRHOF @RHCA PC,a#CHECKT ,CPHALT aMWRIDAT ,aR1 SNERFLGS PC,a#COMHD :DATA :*IF THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUTS ;*FROM THE ‘'COMMD'' ROUTINE IT MEANS SECTOR GAP, SYNC BYTE :*HEADER, HEADER CRC, HEADER GAP AND SYNC BYTE HAVE GONE BY ;*AND SYNCS WERE CORRECTLY DETECTED ;*DATA IS TO BE CHECKED JSR TST BNE MOV MOV MOV PC,a#PUTREG ANERFLGS 43 #0,R0 #DISK,R1 #4 ,R2 ;SAVE REGISTERS :HAS ANY ERRORS OCCURED? :BRANCH IF YES :GOOD DATA :DATA WRITTEN INTO 'DISK' :COUNTER ¢ 2% TST ERROR 2%: 5%: 144676 177177 000200 3%: a#ERFLGS 4 ESROR gS TST MOV (R1)+ dSWR,=(SP) BIC CMP #177177,(SP) #SW07, (SP) + DEC BNE R2 1% BEQ 4% 20 OO O ONON OOV BNE MOV MOV ;FOR ERROR WORD . COMPARE GOOD DATA WITH DATA ON DISK ;BRANCH IF GOOD ;GOOD DATA ;BAD DATA ;ERROR WORD NO ;ANY ERRORS ALREADY THERE? ;BRANCH IF YES ;ERROR ON WRITE DATA COMMAND ;ON A WRITE DATA WITH ;WRONG FORMAT NO DATA ;SHOULD BE WRITTEN ;WORD NO GIVES WORD IN ERROR OO SuB #5 ,a#ERWORD RO, (R1.+ 3% RO, a#$GDDAT -(R1) ,a#$BDDAT R2 ,a#ERWORD BEQ 001124 001126 047624 002006 104004 000401 104005 005721 017746 042716 022726 001402 005302 001345 MOV CMP ;BRANCH TO AVOID PRINTING NEXT ERROR JUNDO -(R1) FOR BAD DATA sGET SWITCH SETTING sKEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET. ;BRANCH IF YES ;IF NOT COUNT 256 WORDS ;BRANCH IF 256 NOT DONE AR 1%: ;*NOW CHECK TO SEE THAT FORMAT ERROR BIT GOT SET 022737 001401 104020 000020 001716 4%: CMP #FER,a#ER1 ;FORMAT ERROR SHOULD BE SET ERROR 20 ;A 16 BIT PER WORD WRITE DATA BEQ 1ST177 ;BRANCH IF GOOD ;WAS ATTEMPTED WHEN THE DISK ;HAD THE FORMAT BIT =0=18 ;BITS PER WORD THE WRITE ;WAS CORRECTLY ABORTED ;BUT ERROR REG. 1 WAS WRONG AR A AR AR APA A A 047624 AN 000005 SEQ 0148 SEQ 0147 AN 012737 020021 001424 010037 0146137 160237 005737 001002 E 12 PAGE 149 27-JUL-78 12:41 ERROR REGISTER #1-BIT 4 -FORMAT ERROR ‘ 034172 034200 034202 034204 034210 034214 034220 034224 034226 MACYTT 3?9é1052) lalal NN CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJIGC.P1T 26=-JuL-78 10:10 6324 2;32 034272 000004 6327 6328 6329 6330 6331 6332 6333 633, 6335 gggg 034274 034300 034306 034312 034316 034322 034324 034330 034332 034340 012706 012737 004737 004737 104401 000000 012700 012005 052777 013777 MACY11 3?96()1052) 1ST77: 001000 000077 042620 042654 062450 002032 001652 000040 001774 145276 145270 g%%g 034346 013777 6342 034354 012777 6344 034370 012777 6345 6346 ggzg 034362 #STACK, SP #TTNO,#TSTNM PC,a#CLDISK PC.a#CHECKT ,CPHALT #RHCA,RO (RO)+.RS #CLR,3RHCS2 QMUNIT,BRHCS2 :RESET STACK :THIS SAVES TEST NUMBER *CLEAR DISK *CHECK THAT DVA,RDY,DPR,DRY = 1 “AND THAT NO OTHERS = 1. CANNOT CON“STOP THE TEST :RS HAS ADDRESS OF REG. UNDER TEST ;REINSTATE UNIT NO. 034376 034404 034412 145264 MOV AWRIFOR,aRHCS1 ;gzx;scgngen AND DATA=62 177766 145250 MOV #-10. , BRHWC *10 WORDS 000010 145246 MOV #10,3RHDST *DESIRED TRACK=0, SECTOR=10 002110 052777 012777 005077 000010 010000 145234 145244 145232 145236 gggg 6351 6352 6353 g§§§ MOV MOV JSR JSR TYPE HAL T MOV MOV BIS MOV 002064 012777 MOV 8IS MOV CLR #WRFROM,@RHBA #BA], BRHCS2 #FMT22,3RHOF ARHCA :BUS ADDRESS = WRFROM *BUS ADDRESS INCREMENT INHIBIT :FORMAT 16 BIT WORDS *CYLINDER =0 :*SAVE REGISTERS 034416 034422 034424 034426 004037 001640 003154 000016 043372 JSR RHCS1 REINTO 14. RO, a#SAVER : SAVE *FROM 110 *NUMBER OF REGISTERS SAVED 6356 :*NOW THE COMMAND IS GIVES TO 6358 “»«TRACK=0 IT COMES BACK AFTER ONE SECTOR 6357 “*WRITE HEADER AND DATA FOR CYL=0, SECTOR=10 2;23 6361 :*HAS PASSED 012777 000001 gggz 034442 012715 177672 6362 034430 034436 005277 145176 6365 034446 052737 000001 6366 6367 6368 6369 2;;? 034454 034462 034470 034476 034504 052737 042737 052737 052737 042737 000004 000200 040000 000001 000200 6372 003174 003156 003176 003176 003154 003154 MOV #DMD , 3RHMR :SET DIAGNOSTIC MODE MOV #177672.,aRS ‘ESV ::érng ALL BITS EXCEPT BIS #DMD , #RE INTO+20" :SET DMD IN SAVED REGISTER RHMR INC BIS BIC BIS BIS BIC ARHCS1 *GO TO RHCS1 WITH 62 #RMR_S#REINTO+2 :SET RMR IN SAVED REG. RHER1 #DRY . 3#RE INTO+22 :CLEAR DRY IN RHDS1 #ERR . S#RE INTO+22 *SET ERR IN RHDST #GO,3#REINTO ;SET GO IN SAVED REG. RHCS1 #RDY,I#REINTO :CLEAR RDY BIT :+«AFTER AN ATTEMPT TO WRITE INTO A REGISTER 2;;:3. 6375 6376 6377 6378 145222 :*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 034512 034516 034520 034522 004037 001640 002110 000016 043312 SEQ 0149 SEQ 0148 SCOPE :*SET UP FOR AN OPERATION (WRITE HEADER AND DATA) 232? 6343 1$: 28%: F 12 27-JUL-78 12:41 PAGE 150 ERROR REGISTER #1-BIT 4 -FORMAT ERROR JSR RHCS1 WRF ROM 14. RO, B4SAVER : SAVE *FROM ‘10 *NUMBER . 1 ’ ‘ AMOAAMAMAMAMMAOAAOAAAAAAAOOOAOO OO OO OO OO OO O OO OO OO O OO OO OO O OO CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL~78 10:10 MACY11 G 2 PAGE 151 30A(1052) 27=JUL=78 12:41 177 RHERT = BIT #2 - REG. MCDIFICATION REFUSED 6380 ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 034524 113737 003173 ;*OPERATION THC UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 002127 mMOovB ANREINTO+17 ,a#WRFROM+17;SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE ATTEMPTED WRITE WiTH AFTER 034552 034552 034572 013705 060505 016537 104001 043514 JSR REINTO WRFROM 047624 001636 AN 042270 MOV ADD MOV ERROR RTS ;*THE - % 004737 : COMPAR ;GO BUFFER :TEST BUFFER ;NUMBER ;RETURN FOR ERROR s SAME 000207 034572 RO,a#COMPAR 042620 5%: JSR JRETURN FOR GOOD COMPARISON a#ERWORD RS sGETTING READY TO INDEX R5,R5 ;DOUBLE ERROR WORD RHCS1-2(R5) ,a#REGADR ;FAILING REG. ADDRESS 1 ;CONTENTS OF REGISTER PC s CHANGED WITH ;AN ATTEMPT TO WRITE ;DURING AN OPERATION FOLLOWING CLEAR MAY SET PC,a#CLDISK THE ATA BIT BECAUSE GO IS HIGH ;CLEAR DISK OO 004037 003154 002110 ooooooorrrOr 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 SEQ 0150 SEQ 0149 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 001200 000100 042620 000001 045172 MACY11 30A(1052) 177 TST100: 002032 145034 SCOPE MOV PAGE 152 #STACK ,SP MOV JSR #TTNO,a#TSTNM PC,a#CLDISK {SR RO,a#MAKECYL #DMD , aRHMR JSR REINTO #STACK ,SP #TTNO,a#TSTNM A#NOSYNC PC,a#SETDSK RO,a#CLAREA 8E1NTO¢<256.~2> 002110 010000 000401 000001 000001 042536 MOV #WRFROM,RO #FMT22,(RO)+ MOV #4017, (RO) + MOV #1,(RO)+ MOV #1,(R0O)+ MOV RO,a#CLAREA JSR WRFROM+10 %2> WRFROM+<256. 044430 JSR 177400 72 1 1 1 -256. REINTO 1] 1%: JRESET STACK ;THIS SAVES TEST NUMEER sINIT DRIVE ;SET DIAGNOSTIC MODE sSUBROUTINE TO GIVE A SEEK s CHANGE RHCC TO 1 SCOPE MOV MOV CLR JSR 002032 12:41 RHER1 - BIT #2 - REG. MODIFICATION REFUSED MOV TST107: 001000 000101 047620 044302 042536 27-JUL=78 H 12 1 NOP RO,a#HCCRCE JRESET STACK ;THIS SAVES TEST NUMBER :SET FLAG SO THAT DATA SYNC ;SET UP SIMULATED DISK ;FILL REINTO BUFFER ;FROM LOCATION ;TO LOCATION ;DATA ;10000 INTO WRFROM :401=TRACK1,SECTOR1 ;1 INTO WRFROM+ ;1 INTO WRFROM+6 sFILL WRFROM ;FROM :T0 ;DATA ;READ HEADER AND DATA sCYLINDER ;SECTOR s TRACK ;WORD COUNT sRHBA BUFFER sREAD ;HEADER COMPARE :RETURN POINT FROM HCCRCE SEQ 0151 SEQ 0150 034754 034756 034762 034770 034774 035002 035006 000004 012706 012737 004737 012777 004037 000000 001000 000102 042620 000001 045172 MACY11 30A(1052) T101 I 12 27=-JUL-78 12:41_PAGE 153 ERROR REG1 = BIT #7 - HEADER COMPARE ERROR TST102: SCOPE MOV MOV JSR MOV 5SR 002032 144656 #STACK,SP #TTNO ,@#TSTNM PC,a#CLDISK , aRHMR #DMD RO, a#MAKECYL ;INIT DRIVE sSET DIAGNOSTIC MODE sSUBROUTINE TO GIVE A SEEK sCHANGE RHCC TO 0 TST103: SCOPE 035010 035012 035016 035024 035030 035034 MOV 002032 #STACK ,SP MOV CLR #TTNO,@#TSTNM a#NOSYNC JSR RO,a#CLAREA JSR REINTO PC ,a#SETDSK 8E1NTO*<256.'2> 012720 004037 000001 042536 004037 044430 MOV #WRFROM,RO #FMT22, (RO) + MOV MOV #4601, (RO) + #1,(RO)+ MOV #1,(RO)+ MOV RO,a#CLAREA JSR WRFROM+10 WRFROM+<256. %2> 177400 %SR 0 ;FROM LOCATION :TO LOCATION ;DATA ;10000 INTO WRFROM :401=TRACK1,SECTOR1 ;1 INTO WRFROM+ :1 INTO WRFROM+6 sFILL WRFROM ;FROM :TO :DATA ;READ HEADER AND DATA ;CYLINDER REINTO 1 NOP ;HEADER COMPARE ;RETURN POINT FROM HCCRCE 0 1%: RO,a#HCCRCE sRESET STACK ;THIS SAVES TEST NUMBER sSET FLAG SO THAT DATA SYNC sSET UP SIMULATED DISK sFILL REINTO BUFFER ;SECTOR ; TRACK ;WORD COUNT ;RHBA BUFFER 1 0 -256. 035130 sRESET STACK sTHIS SAVES TEST NUMBER ;READ SEQ 0152 SEQ 0151 S SIS S S SIS S S S S S SN S S S SN SN SN NSNS SN A SNSNSNSNSNSNYNNANNNNN N O CZRJGCO,RPO4/5/6 DSKLS CTRLR] CZRJGC.P11 26-JuL-78 10:10 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 012737 004737 012777 004037 000001 001000 000104 04262? 00000 045172 TST104: 002032 144500 035170 035174 035202 035210 035214 035220 035222 035224 035226 035232 035234 035236 035240 035244 035246 035250 035252 035254 035256 035260 035262 035264 001000 000105 177777 044302 042536 #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK {SR RO, a#MAKECYL MOV TST105: 035166 SCOPE MOV MOV JSR WRFROM #STACK,SP #TTNO,a#TSTNM #-1,3#NOSYNC PC,a#SETDSK RO,a#CLAREA WRFROM+<256. %2> 125252 JSR 042536 REINTO RO,a#CLAREA REINTO+<256.%2> 177409 JSR RO,a#HCCRCE 044430 ;CHANGE RHCC TO 1 SCOPE MOV MOV MOV JSR JSR 002032 047620 , aRHMR #DMD sRESET STACK sTHIS SAVES TEST NUMBER ;INIT DRIVE sSET DIAGNOSTIC MODE sSUBROUTINE TN GIVE A SEEK JRESET STACK sTHIS SAVES TEST NUMBER sSET FLAG SO THAT DATA SYNC ;SETUP SIMULATED DISK sFILL WRFROM BUFFER ;FROM LOCATION :TO LOCATION :DATA sFILL REINTO BUFFER CZR. Py N NN NN 000004 012706 SEQ 0153 SEQ 0152 NN NN NN N NN 6500 6501 6502 035132 7103 J 12 PAGE 154 27-JUL-78 12:41_ ERROR REG1 = BIT #7 - HEADER COMPARE ERROR ;fiROM LOCATION - o ! ;WRITE DATA s CYLINDER :SECTOR : TRACK sWORD COUNT 000240 1%: ;RHBA BUFFER ;WRITE ;HEADER COMPARE sRETURN POINT FROM HCCRCE NSNS SISNSNSNSNSNNSNNN 6488 6489 €490 6491 6492 6493 6494 6495 6496 6497 6498 6499 MACY11 30A(1052) o ~N CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJGC.P1T 26=JUL~78 10:10 6522 6523 001000 035320 042620 000001 045172 TST106: 002032 144344 001000 000107 177777 044302 042536 MOV MOV 002032 047620 MOV JSR JSR WRFROM #STACK ,SP #TTNO,I#TSTNM #=1,a4#NOSYNC PC.,a#SETDSK RO,a#CLAREA WRFROM+<256.%2> 125252 JSR RO,a#CLAREA 042536 JRESET STACK ;THIS SAVES TEST NUMBER sINIT DRIVE sSET DIAGNOSTIC MODE ;SUBROUTINE TO GIVE A SEEK s CHANGE RHCC TO 0 ;SET FLAG SO THAT DATA SYNC ;SETUP SIMULATED DISK JFILL WRFROM BUFFER ;FROM LOCATION ;TO LOCATION .DATA ;FILL REINTO BUFFER :;GOM LOCATION 1 ;WRITE DATA sCYLINDER ;SECTOR 0 -256. *RFROM ; 1%: JRESET STACK sTHIS SAVES TEST NUMBER REINTO REINTO+<256.%2> 177400 JSR RO,a#HCCRCE 60 0 044430 035410 035412 035414 035416 035420 #STACK,SP #TTNO,#TSTNM PC,a#CLDISK #DMD , aRHMR RO, Q#MAKECYL TST107: SCOPE 035322 035324 SCOPE MOV MOV JSR MOV 6SR NOP s TRACK JWORD COUNT ;sRHBA BUFFER JWRITE ;HEADER COMPARE JRETURN POINT FROM HCCRCE SEQ 0154 SEQ 0153 CZR. CZR. SN N NN N NN N N N N NN NN NN NN N NN NN NN N NN NN NN NN NN NN NNNNNNNNNNNNN T105 K 12 _PAGE 155 27=-JUL-78 12:41 ERROR REG.1 = BIT #7 - HEADER COMPARE ERROR NN CZRJGCO,RP0O4/5/6 DSKLS CTRLRI] CZRJGC.PN 26=JuL-78 10:10 MACY11 30A(1052) CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26-JuL-78 10:10 L 12 27=-JUL-78 12:41 PAGE 156 MACY11 30A(1052) 1107 ERROR REG.1 = BIT #7 - HEADER COMPARE ERROR TST110: SCOPE 051404 042536 MOV MOV CLR JSR COM JSR #STACK,SP #TTNO,a#TSTNM A#NOSYNC PC,a#SETDSK a#WCRC RO,a#CLAREA sRESET STACK ;THIS SAVES TEST NUMBER sSET FLAG SO THAT DATA SYNC sSET UP SIMULATED DISK s CHANCE CRC TO GIVE HCRC sFILL REINTO BUFFER 002110 010000 000401 000001 000001 042536 MOV MOV MOV MOV MOV JSR #WRFROM,RO #FMT22, (RO) + #401, (RO) + #1,(RO)+ #1,(RO)+ RO,a#CLAREA ;10000 INTO WRFROM ;401=TRACK1,SECTOR1 ;1 INTO WRFROM+ ;1 INTO WRFROM+6 ¢FILL WRFROM 035424 002032 REINTO REINT0+<256.%2> 0 WRFROM+10 WRFROM+<256. %2> 177400 JSR 72 0 044430 1 1 =256. REINTO 0 1%: 0 NOP RO,a#HCCRCE ;FROM LOCATION :TO LOCATION :DATA ;FROM ;T0 :DATA sREAD HEADER AND DATA sCYLINDER ;SECTOR s TRACK JWORD COUNT ;RHBA BUFFER ;READ ;CRC ERROR :RETURN POINT FROM HCCRCE NANNNNNNNNNNNNYNNY 035422 035546 SEQ 0155 SEQ 0154 (ZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JuL-78 10:10 | 6591 6592 6593 659 6595 6596 | M 12 PAGE 157 MACY11 30A(1052) 27-JUL=-78 12:41 1110 RHER1 - BIT #8 - CRC ERROR (READING) 035550 035552 6597 6598 6599 6600 6601 6602 6603 6604 TST111: 001000 000111 177777 044302 051404 042536 MOV MOV MOV 002032 047620 JSR oM JSR WRFROM PC,a#SETDSK aMWCRC RO,a#CLAREA REINTO RE INTO+<256. %2> 6607 177400 044430 6608 6609 6610 6611 6612 JSR RO, a#HCCRCE sRESET STACK sTHIS SAVES TEST NUMBER sSET FLAG SO THAT DATA SYNC sSETUP SIMULATED DISK sCHANGE CRC TO GIVE HCRC sFILL WRFROM BUFFER sFROM LOCATION :TO LOCATION ;DATA sFILL REINTO BUFFER .;804 LOCATION JWRITE DATA sCYLINDER ;SECTOR : TRACK 6613 JWORD COUNT 6614 sRHBA BUFFER 6615 6616 6617 6618 #STACK,SP #TTNO,INTSTNM #=1,34#NOSYNC WRFROM+<256. %2> 125252 JSR RO,a#CLAREA 042536 6605 6606 SCOPE JWRITE 035652 1%: ;CRC ERROR ;RETURN POINT FROM HCCRCE SEQ 0156 SEQ 0155 6619 N 12 12:41 PAGE 158 RHERT = BIT 8 = CRC ERROR (WRITING) ;*SET UP FOR THE TWO LAST SECTOR TRANSFERRED TESTS FOLLOWING 001401 000137 TST 2%: 3%: 036340 001000 000112 042620 000001 045172 BEQ BR JMP TST112: SCOPE MOV MOV JSR 002032 143742 JSR 814. g:RPOb FLAG TO ITSELF TO TEST sMOVE RPO? 3s a#DOG = 0 TREAT DRIVE AS RP0O4 TREAT AS RP06 = DO NEXT 'MAKECL'® & TEST :DO SECOND FOLLOWING 'MAKECL'' AND TEST #STACK,SP #TTNO, Q¥ TSTNM PC,a#CLDISK #DMD , aRHMR RO, a#MAKECYL sRESET STACK ;THIS SAVES TEST NUMBER sINIT DRIVE sSET DIAGNOSTIC MODE sSUBROUTINE TO GIVE A SEEK s CHANGE RHCC TO 814. b 1N 1 035670 035672 035676 035704 035710 035716 035722 002036 CZRJ CZRJ eT o 005737 SEQ 0157 SEQ 0156 e e e e I B NN m 27=JUL-78 eT o MACY11 30A(1052) P P CZRJIGCO,RPO4/5/76 DSKLS CTRLRI CZRJIGC.PN 26=JuL~78 10:10 TST113: 035724 035726 035732 035740 035744 035746 035750 035752 035760 001000 000113 042536 011456 #STACK,SP #TTNO,Q#TSTNM 002032 RO,a#CLAREA DISK 50LGAP¢16 #21. ,a#SECOTR 002110 000025 000022 143544 001456 042654 062450 000001 143542 143536 ;T0 :SECTOR 21. :KEY1 0 RS ,a#(CRC ;GO TO CALCULATE CRC RO,a#CLAREA JSR WRFROM gRFROM+<256.'2> 143556 143552 :EkgfiR SIMULATED DISK aKEY1 a#KEY2 #256. ,a#NOWORD CyL WCRC 177400 ;THIS SAVES TEST NUMBER :DATA #814. 'FMT22,a#CYL; CYLINDER 814. #18. ,a#SECOTR+1; TRACK 18. 047504 047507 047506 047552 047514 042620 sRESET STACK PC,a#CLDISK #-256. , aRHWC #\RFROM,3RHBA #21.,-(SP) #18..1(5P) (SP)+,@RHDST #FMT22, aRHOF #814. , 3RHCA PC,a#CHECKT LCPHALT :KEY2 0 :NO OF DATA WORDS JWRITE DATA :FILL WRITE BUFFER WITH 377 ;FROM LOCATION ;TO LOCATION ;DATA :SETUP GENERAL REGISTERS :256. DATA WORDS ;STARTING ADDRESS OF WRITE BUFFER ;SECTOR 21. ;TRACK 18, ;SECTOR 21. TRACK 18. :16 BITS PER WORD FORMAT ;CYLINDER 814. :CHECK THAT DVA,RDY,DPR,DRY = 1 CANNOT CON;AND THAT NO OTHERS = 1 ;STOP THE TEST CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJGC.P11 26=JuL~ 78 10:10 6675 6676 6677 6678 036126 036132 036136 036142 036146 013711 B 13 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 159 T113 RHDS1 (BIT #10) = LAST SECTOR TRANSFERRED, 002062 002006 047344 042224 002006 000377 051422 000400 000401 MOV CLR JSR JSR TST BNE MOV 047624 1%: 001124 001126 047624 002006 005721 017746 042716 022726 001402 005302 001345 013746 042716 022726 001412 013737 012737 013737 104001 2%: 64%: 142700 177177 000200 3%: 001736 001000 002700 001662 002700 001736 (%: 042270 001124 001126 MOV MOV MOV CMP BEQ MOV MOV SuB TST BNE ERROR BR ERROR TST MOV BIC CMP BEQ DEC BNE MOV BIC cMP BEQ MOV MOV MOV ERROR A#WRIDAT ,aR1 a#ERFLGS PC,a#COMHD PC ,a#PUTREG ‘LST' JWRITE DATA=60 ;CLEAR ERROR FLAG JWRITE DATA ;SAVE REGISTERS ;HAVE ANY ERRORS OCCURED? $ ;BRANCH IF YES #377 ,R0 ;GOOD DATA #DISK,R1 :DATA WRITTEN INTO 'DISK"’ #256. ,R2 ;COUNTER #256.+1,a#ERWORD ;FOR ERROR WORD R2.(R1)* :COMPARE GOOD DATA WITH DATA ON DISK ?IERFLGS 3 RO,a#$GDDAT -(R1) ,a#$BDDAT R2 ,a#ERWORD a#ERFLGS ;BRANCH IF GOOD ;GOOD DATA ;BAD CATA ;ERROR WORD NO (R1)+ aSWR,=(SP) #177177,(SP) #SWO7, (SP) + 4% R2 1% ;ANY ERRORS ALREADY THERE? ;BRANCH IF YES ;ERROR ON WRITE DATA COMMAND ;BRANCH TO AVOID PRINTING NEXT ERROR ;WORD NO GIVES WORD IN ERROR :UNDO =(R1) FOR BAD DATA ;GET SWITCH SETTING :KEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET ;BRANCH OUT IF YES ;IF NOT COUNT 256 WORDS ;BRANCH IF 256. NOT DONE a#DS1,-(SP) ;GET RHDS1 2% 4 648 5 ;CLEAR PROG #LST!DPR!DRY!VV,(SP)+;1IS 'LST' HIGH ? 5% :BRANCH IF GOOD #PROG, (SP) SRHDS1,a#REGADR ;FAILING REG. ADDRESS #LST 'DPR!'DRY!VV,a#$GDDAT ;GOOD DATA ?fiDSl.ifiSBDDAT ;BAD DATA ;'LST® DID NOT SET AFTER ;LAST SECTOR ON LAST TRACK ;ON LAST CYLINDER WAS JWRITTEN 013737 104415 001640 5%: 6%: 000000 000200 000137 036330 037004 MOV WAT A#RHCST ,ax6$ :SET UP "WAT'' SUBROUT INE ;RHCS1 ADDRESS ;WAIT FOR READY RDY JMP ;VV BIT #6 MAY OR MAY NOT BE HIGH a#CAT ;DON'T DO THE RPO4 °‘LST' TEST FOLLOWING SEQ 0158 SEQ 0157 CZl CZ CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 001000 000114 042620 045172 ¢ 13 PAGE 160 MACY11 30A(1052) 27-JuL-78 1 2:4 1 ) T113 RHDS1 (BIT #10 = LA ST SECTOR TRANSFERRED, DOG: TST114: 002032 SCOPE MOV MOV JSR 143272 MOV JSR 410. TST115: sJRESET STACK #STACK ,SP #TTNO,a#TSTNM RO,a#CLAREA sRESET STACK ;THIS SAVES TEST NUMBER ;CLEAR SIMULATED DISK aMKEY1 a#KEY2 ;KEY1 0 ;KEY2 0 R5.a#CRC ;GO TO CALCULATE CRC ;THIS SAVES TEST NUMBER sINIT DRIVE ;SET DIAGNOSTIC MODE ;SUBROUTINE TO GIVE A SEEK ;CHANGE RHCC TO 410. 047504 047507 047506 DISK ;FROM TOLGAP+16 ;70 ;DA 0 ;DATA #410.!FMT22, a#CYL;CYLINDER 410. #18. ,a#SECOT R+1;TRACK 18. ;SECTOR 21. #21. ,a#SECOT R 047552 047514 #256. ,0#NOWORD #1,a4X cyL WCRC JSR WRFROM 000001 143072 143066 012701 012702 #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK #DMD , 3RHMR RO,a#MAKECYL SCOPE 002032 163106 143102 SEQ 0159 SEQ 0158 °‘LST' RO,a#CLAREA %2> WRFROM+<256. 377 PC,a#CLDISK JSR #-256. ,aRHWC MOV #WRFROM,aRHBA MOV #21.,-(SP) MOV #18.,1(SP) MOVB MOV MOV MOV JSR TYPE HALT MOV CLR JSR JSR TST BNE MOV MOV MOV (SP) + ,aRHDST #FMT22 ,aRHOF #410. ,aRHCA PC,a#CHECKT ;NO OF DATA WORDS ;WRITE DATA ;FILL WRITE BUFFER WITH 377 ;FROM LOCATION :TO LOCATION ;DATA ;SETUP GENERAL REGISTERS :256. DATA WORDS ;STARTING ADDRESS OF WRITE BUFFER ;SECTOR 21. :TRACK 18. ;SECTOR 21. TRACK 18. :16 BITS PER WORD FORMAT sCYLINDER 410. ;CHECK THAT DVA,_RDY,DPR,DRY = 1 .CPHALT sAND THAT NO OTHERS = 1. a#WRIDAT ,aR1 a#ERFLGS ;CLEAR ERROR FLAG PC,a#COMHD PC ,a#PUTREG a#ERFLGS 5% #377 ,RO #DISK,R1 #256. ,R2 ;STOP THE TEST ;WRITE DATA=60 ;WRITE DATA ;SAVE REGISTERS sHAVE ANY ERRORS OCCURED? ;BRANCH IF YES ;GOOD DATA ;DATA WRITTEN INTO "DISK' s COUNTER CANNOT CON- w4 czl 000401 047624 1%: 001124 001126 047624 002006 000401 2%: 64%: 142230 177177 000200 036766 104001 4%: 001736 001000 002700 001662 002700 001736 #256.+1 ,a#ERWORD ; FOR ERROR WORD RO, (R1. + s COMPARE GOOD DATA WITH DATA ON DISK 3% ;BRANCH IF GOOD RO,a#$GDDAT ;GOOD DATA ;BAD DATA =(R1) ,a#$BDDAT R2 ,a#ERWORD -ERROR WORD NO BNE ERROR BR ERROR TST MOV 2% 4 64% 5 (R1)+ aSWR,=(SP) BIC CMP 3%: 013746 042716 022726 001412 013737 012737 013737 MOV CMP BEQ MOV MOV sSuB TST 104004 042270 001124 001126 'LST' BEQ DEC BNE MOV BIC CMP BEQ MOV MOV MOV ERROR a#ERFLGS ;ANY ERRORS ALREADY THERE? #177177,(SP) #SW07, (SP) + ;KEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET 4% R2 1% sBRANCH IF YES ;ERROR ON WRITE DATA COMMAND sBRANCH TO AVOID PRINTING NEXT ERROR ;WORD NO GIVES WORD IN ERROR sUNDO =(R1) FOR BAD DATA ;GET SWITCH SETTING ;BRANCH OUT IF YES ;IF NOT COUNT 256 WORDS ;BRANCH IF 256. NOT DONE a#DS1,-(SP) ;GET RHDS1 #PROG, (SP) :CLEAR PROG BIT #LST!DPR!DRY!VV,(SP)+ ;IS 'LST" HIGH ? 5% sWAIT FOR "RDY' IF GOOD a#RHDS1 ,a#REGADR ;FAILING REG. ADDRESS #LST!DPR!DRY!VV,a#$GDDAT ;GOOD DATA a#DS1,a#$8DDAT ;BAD DATA 1 ;'LST' DID NOT SET AFTER ;LAST SECTOR ON LAST TRACK ON LAST ;CYLINDER WAS WRITTEN - 'VV' BIT #6 ;MAY OR MAY NOT BE HIGH 6812 036770 036776 037000 037002 013737 104415 000000 000200 001640 037000 5%: "2\7/ 6%: 0 W RDY A¥RHCST ,ax6$ ;SET UP "WAT'' SUBROUT INE ;RHCS1 ADDRESS ;WAIT FOR "RDY' BIT SEQ 0160 SEQ 0159 CZ¥ CzZ d_smbleblctealealinilio o tca teale ba ftababos 012737 020021 001424 010037 014137 160237 005737 001002 D13 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 161 RHDS1 (BIT #10) - LAST SECTOR TRANSFERRED, T115 cmbem b CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JuL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 6813 6814 037004 037004 037006 037012 037020 037024 037030 037032 037034 000004 012706 012737 004737 004037 051422 052446 000000 001000 000116 042620 042536 E 13 PAGE 162 A(1052) MACY11 3 27=JuL=78 1 2:4 1 RHDS1 (BIT #10 ) = LAST SECTOR TRANSFERRED, 115 CAT: TST116: 002032 SCOPE ‘LST' MOV MOV #STACK,SP #TTNO,a#TSTNM JRESET STACK ;THIS SAVES TEST NUMBER .WORD .WORD .WORD DISK TOLGAP+16 0 sFROM .T0 ;DATA JSR JSR PC,a#CLDISK RO,a#CLAREA ;INIT AND SET UP GENERAL REG. CORRES. ;CLEAR SIMULATED DISK :*THESE ARE TO SETUP FOR DISKLESS USE ONLY :*AND WILL HANDLE RP0O4 OR RPO6 DRIVES 037036 037042 005737 001404 002036 037044 037052 012737 000403 011456 047504 037054 012737 010632 047504 037062 037070 037076 037102 037106 037114 037122 037126 037130 112737 112737 000022 047507 047506 005037 005037 012737 012737 004537 047504 051404 TST a#RP06 MOV #814. 'FMT22,a#CYL;CYLINDER 814., 16 BITS PER WORD 10%: MOV #4610, 'FMT22,@#CYL;CYLINDER 410., 16 BITS PER WORD 118: MOVB MOVB CLR #18. ,a#SECOTR+1 ;TRACK 18. #21. ,a#SECOTR :SECTOR 21. A#KEY1 ;KEY1 0 MOV MOV #256. ,a#NOWORD #1,a4X BEQ BR CLR 047552 047514 éSR YL 108 ;MOVE RPO6 FLAG TO ITSELF TO TEST :TREAT DRIVE AS RPO4 IF = 0 1% :TREAT DRIVE AS RPO6 :TREAT DRIVE AS RPO4 a#KEY?2 ;KEY2 0 RS5,a#CRC ;GO TO CALCULATE CRC ;NO OF DATA WORDS ;WRITE DATA WCRC ;*THESE ARE REGULAR SETUPS 037132 037136 037140 037142 037144 037150 037156 037164 037170 037176 037202 JSR 004037 000001 142440 MOV 142454 142450 012677 012777 010000 RO,a#CLAREA WRFROM WRFROM+<256. %2> 377 JSR PC,a#CLDISK MOV #-326. ,aRHWC MOV #WRFROM,aRHBA MOV #21.,-(SP) MOVB #18..,1(SP) MOV (SP)# aRHDST #FMTZé aRHOF :FILL WRITE BUFFER WITH 377 ;FROM ;T0 :DATA ;SETUP GENERAL REGISTERS :326. DATA WORDS :STARTING ADDRESS OF WRITE BUFFER :SECTOR 21. :TRACK 18. :SECTOR 21. TRACK 18. :16 BITS PER WORD FORMAT :*CHECK TO SEE WHAT TYPE OF DRIVE IS BEING TESTED :*AND LOAD CYLINDER ADDRESS REGISTER WITH THE PROPER NUMBER 037210 037214 037216 037224 037226 005737 001404 012777 000403 012777 TST 002036 001456 142426 000632 142416 12%: BEQ MOV BR MOV a#RP06 ;MOVE FLAG TO ITSELF 12% #814. ,aRHCA 13% #410. ,dRHCA :TREAT AS :CYLINDER :TREAT AS :CYLINDER TO TEST RPO4 IF = 0 814. RP0O6 410. SEQ 0161 SEQ 0160 w4 czl — CZRJUGCO.RPO4/5/6 DSKLS CTRLRT CZRJGC.P11 26-JUL-78 10:10 gg;g 037234 6871 6872 6873 6874 gg;z 037234 037240 037244 037246 037252 004737 104401 000000 013711 005037 F 13 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 163 T116 ERROR REGISTER 1 = BIT #9 AJE 138: 042654 JSR 062450 TYPE HAL T MOV CLR 002062 002006 gg;g 6879 6880 6881 6882 037256 037262 037264 037266 004037 001632 003154 SEQ 0162 SEQ 0161 043312 000023 PC,@CHECKT L CPHALT MWRIDAT.3R1 SWERFLGS , .CHECK THAT DVA,RDY,DPR,DRY = 1 "AND THAT NO OTHERS = 1. “STOP THE TEST -WRITE DATA=60 “CLEAR ERROR FLAG CANNOT CON- 2 91 | ! : y i i _ :«THE REGISTERS WILL BE SAVED IN REINTO BUFFER : JSR RHWC REINTO : : : RO, a#SAVER 19. - SAVE FROM NUMBER SAVED ! 6884 :*GIVE WRITE DATA COMMAND g 233; 037270 004737 047344 JSR ! 2323 -xCHANGE SAVED REGISTERS TO EXPECTED VALUES PC , a4#COMHD :WRITE DATA COMMAND 6890 ggg; 037274 037300 005737 001407 002040 6893 6894 6895 gggg 037302 037310 012737 012737 177702 003130 037316 000406 6898 6899 238? 037320 037326 012737 012737 177774 003314 003154 003156 8$: MOV MOV #-4_RMREINTO :SAVED RHWC SHOULD BE = 4 HWURFROM+<2%256.>+<2+66. , a#RE INTO+2 :SAVED RMBA SHOULD BE WRFROM+256+66 6902 6903 6904 6905 6906 gggg 037334 037342 037350 037356 037364 052737 042737 052737 012737 017737 000200 000100 140000 001000 142254 003160 003160 003162 003164 003166 9%: BIS BIC BIS MOV MOV #OR,BHREINTO+4 :SAVED RHCS2 #IR.MREINTO+4 -SAVED RMCS2 #5C 1 TRE .3#REINTO+6: SAVED RHCS1 SHOULD HAVE 'SC' & 'TRE® HAOE ,a#REINTO+10 :SAVED RHER1 SHOULD HAVE 'AOE° BRHDST , M#RE INTO+12: SAVED RHDST SHOULD HAVE= :RHDST IS UNDEF INED 003154 003156 -CHECK FOR RH70 CONTROLLER *SKIP RH70 CODE AND DO RH11 IF NOT MOV MOV #-76.a#REINTO :SAVED RHWC SHOULD BE = 76 (OCTAL) HWURFROM+<2%256.>+<2+8. >, a#RE INTO+2 :SAVED RHBA SHOULD BE WRFROM+256+8 9s “SKIP NEXT RH11 CODE :*CHECK TO SEE WHAT TYPE OF DRIVE IS BEING TESTED gg}? “xAND SET UP CYLINDER ADDRESS ACCORDINGLY 6912 6913 6914 6915 gg}g 037372 037376 037400 037406 037410 005737 001404 012737 000403 012737 002036 6918 6919 2359 037416 037424 037432 013737 052737 052737 ggsz A#RH70 8s BR 6909 6922 ST BEQ 001457 003174 000633 003174 14$: 002016 000001 142000 003200 003202 003204 158: TST BEQ MOV BR MOV a#RPO6 :MOVE RPO6 FLAG TO ITSELF TO TEST 14$ -TREAT AS RP04 IF = 0 #815. ,a#REINTO+20; SAVED DESIRED CYLINDER ADDRESS 15% -TREAT AS RP06 #411. .9#REINTO+20: SAVED DESIRED CYLINDER ADDRESS MOV BIS BIS SFATTENT ,@#REINTO+24 :SAVED RHAS SHOULD HAVE APPRO. BIT #DMD , 3#RE INTO+26: SAVED RHMR HATATERR'LST,@#REINTO+30 ;SAVED RHDS1 -«AFTER A WRITE DATA COMMAND WITH "AOE' ERROR :*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 004037 001632 002110 000021 JSR RHWC 043312 WRFROM W 003201 MOVB 002135 N NE N B Q¥REINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS 037516 000207 037520 005037 104001 2% 001630 1%: 042270 2%: 002006 N N N 047624 RO, a#COMPAR ; COMPARE ;GOOD BUFFER sTEST BUFFER ;NUMBER OF REGISTERS sRETURN FOR ERROR ; SAME N 013705 060505 016537 REINTO WRFROM 17. 1% 1% N 037500 037504 037506 037514 JSR N N 043514 ;RETURN FOR GOOD COMPARISON N 004037 003154 002110 000021 037500 037500 037520 MOV @#ERWORD ,R5 MOV ERROR RHWC=2(R5) ,a#REGADR ;FAILING REG. ADDRESS 1 ;FORCED AOE ERROR CAUSED IMPROPER ADD R5.R5 RTS PC CLR a#ERFLGS N N N e 037460 037464 037466 037470 037472 037474 037476 N N ;*COMPARE REGISTERS BEFORE WRITE DATA COMMAND ;*WITH AFTER COMMAND ;GETTING READY TO INDEX -DOUBLE ERROR WORD N 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 270 ;NUMBER OF REGISTERS SAVED YR 113737 sREGISTER CHANGE JRETURN FOR FURTHER COMPARISONS :NO ERRORS ;CLEAR ERROR FLAG ;*DATA IS TO BE CHECKED HERE 042224 000377 051422 000400 000400 037524 037530 037534 037540 037544 037552 037554 037556 037562 037566 037572 JSR MOV PC,a#PUTREG #377 ,RO ;SAVE REGISTERS :GOOD DATA MOV MOV #256. ,R2 #256. ,@#ERWORD s COUNTER ;FOR ERROR WORD MOV 047624 3%: CMP BEQ MOV MOV SuB TST BNE 001124 001126 047624 002006 ERROR 037624 005721 017746 042716 022726 001402 037626 005302 AN 141324 177177 000200 5%: 6%: BR ERROR TST MOV #DISK ,R1 RO, (R1)+ 6% RO,a#$GDDAT -(R1) ,a#$BDDAT R2 ,a#ERWORD a¥ERFLGS 4% 4 5% 5 (R1)+ aSWR,=(SP) BIC CMP BEQ #177177,(SP) #SW07, (SP)+ 7% DEC R2 ;DATA WRITTEN INTO ‘DISK"’ ;COMPARE GOOD DATA WITH DATA ON DISK ;BRANCH IF GOOD :GOOD DATA ;BAD DATA ;ERROR WORD NO ;ANY ERRORS ALREADY THERE? ;BRANCH IF YES ;ERROR ON WRITE DATA COMMAND WITH FORCED ‘"AOE* ;BRANCH TO AVOID PRINTING NEXT ERROR ;WORD NO. GIVES WORD IN ERROR ;UNDO -(R1) FOR BAD DATA ;GET SWITCH SETTING ;KEEP ONLY SWITCH 7 AND 8 ;IS 7 SET AND 8 RESET ;BRANCH OUT IF YES ;IF NOT COUNT 256 WORDS CZR N 037452 6937 6942 ;SAVE ;FROM ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THF COMPARES ARE ONLY VALID FOR THE LOWER BYTE 6936 6938 6939 6940 6941 RO,a#SAVER SEQ 0163 SEQ 0162 o ~N on T116 G 13 PAGE 164 27=JUL=78 12:41 ERROR REGISTER 1 - BIT #9 AOE N 6929 6930 6931 6932 6933 6934 6935 037440 037444 037446 037450 30A{1052) P 6925 6926 6927 6928 MACY11 NN NN PN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 - -> VN N N N Y NN N Y N N N N N N N N N N P PN PN D T e ey P Py Py P ;BRANCH IF 256. NOT DONE Py 3% CZR CZR PR BNE SEQ 0163 P ERROR REGISTER 1 - BIT #9 AOE SEQ 0164 P 037632 PAGE 165 PR T 6983 001345 H13 12:41 P 037630 T116 27-JUL-78 S 6981 6982 MACY11 30A(1052) P CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1N 26=JUL=-78 10:10 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PI 26=JuL-78 10:10 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 037632 037634 037640 037646 037652 037660 037664 000004 012706 037666 037670 037674 037702 037706 037714 037722 012777 052777 042777 001000 000117 042620 000001 045172 MACY11 30A(1052) T116 002032 I 13 27=JUL=78 12:41 PAGE 166 ERROR REGISTER 1 = BIT #9 AOE TST117: SCOPE MOV MOV JSR MOV JSR 142000 0 TST120: SCOPE 001000 000120 042620 002032 MOV MOV JSR 000001 000004 000004 141744 141736 141730 MOV BIS BIC SEQ 0165 SEQ 0164 #STACK ,SP ;RESET 5TACK PC,a#CLDISK #DMD , aRHMR RO, 3#MAKECYL ;INIT DRIVE ;SET DIAGNOSTIC MODE :SUBROUTINE TO GIVE A SEEK #TTNO,a#TSTNM #STACK,SP #TTNO,a#TSTNM PC,a#CLDISK ;*GIVE INDEX PULSE #DMD , aRHMR #MINX,aRHMR #MINX , aRHMR :THIS SAVES TEST NUMBER ;CHANGE RHCC TO 0 ;RESET STACK :THIS SAVES TEST NUMBER ;CLEAR REGISTERS AND SET UNIT NO. ;SET DIAGNOSTIC MODE ;SET INDEX ;CLEAR INDEX ;*THESE ARE REGULAR SETUPS 141666 MOV MOV MOV #-256. ,aRHWC #REINTO,RO RO,aRHBA 012720 010000 MOV #FMT22, (RO) + ;256 DATA WORDS 4 HEADER WORDS :THESE TWO INSTRUCTIONS GETS :ADDR, OF WRFROM INTO RO AND ;BUS ADDRESS REGISTER ;FORMAT=16 BIT WORDS 037752 037756 037760 037762 037766 037772 037774 037776 012720 005020 005020 012705 012720 005305 001374 012777 012000 MOV CLR CLR MOV #12000, (RO) + (RO)+ (RO) + #256. ,RS ;COUNTER BNE MOV 1% #12000,aRHDST :BRANCH IF DATA NOT COMPLETE 040004 040010 040014 004737 042654 040016 040022 040026 040034 037730 037736 037742 012777 012700 010077 177400 003154 037746 141674 000400 177777 012000 1%: 141640 ggg :;1.(RO)+ ;CYLINDER=0 :TRACK=20 SECTOR=0 KEYS=0 :KEY1=0 ;KEY2=0 ;MOVE ALL ONES FOR DATA ;TRACK=20 SECTOR=0 062450 JSR TYPE HALT PC,a#CHECKT ;CHECK THAT DVA,RDY,DPR,DRY = 1 01371 002070 MOV a#REFOR,aR1 :GET READY FOR WRITE HEADER AND 005037 012777 005077 002006 010000 CLR a#ERFLGS :CLEAR ERROR FLAG 004037 001632 003154 000023 043312 104401 000000 141612 141614 MOV CLR LCPHALT #FMT22 ,aRHOF aRHCA :AND THAT NO OTHERS = 1. :STOP THE TEST ;DATA WITH 62 IN RHCS1 :FORMAT BIT=1 :CYLINDER =0 (16 BIT WORDS) ;*THE REGISTERS WILL BE SAVED IN REINTO BUFFER JSR RHW(C REINTO 19. RO,a#SAVER CANNOT CON- ; SAVE :FROM ;T0 ;NUMBER SAVED ;*GO TO WRITE HEADER AND DATA CZR CZR 040134 040140 040142 040144 004037 001632 002110 000023 040146 113737 002000 012001 002016 000001 140000 :*CHANGE SAVED REGISTERS TO EXPECTED VALUE 003162 003164 003166 003200 003202 003204 BIS #SC ' TRE ,a#REINTO+6 :SAVED RHCS1 BIS BIS #DMD , S#RE INTO+26 :SAVED RHMR #ATAIERR,3#REINT0+30 ;SAVED RHDS1 MOV MOV MOV #1AE ,a#REINTO+10 :SAVED RHER1 #12007, a#RE INTO+12: SAVED RHDST QFATTENT ,#REINTO+24 :SAVED RHAS ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE 043312 JSR RHWC WRFROM RO,a#SAVER 19. 003201 sSET DIAGNOSTIC MODE . GO s SAVE ;FROM ;T0 ;NUMBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT :*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS :*SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE 002135 MOvB SFREINTO+25 ,a#WRFROM+25; SAVE UPPER RHAS s *COMPARE REGISTERS BEFORE READ IN PRESET COMMAND 004037 003154 002110 000021 040174 040174 040214 043514 013705 060505 016537 047624 104001 ;*WITH AFTER COMMAND JSR REINTO WRFROM RO, a#COMPAR 17, 2% ;NUMBER OF REGISTERS ;RETURN FOR ERROR 2% 33 001630 2%: 042270 000207 : COMPARE .GOOD BUFFER sTEST BUFFER ; SAME JRETURN FOR GOOD COMPARISON MOV ADD MOV ERROR a#ERWORD ,R5 ;GETTING READY TC INDEX R5.RS -DOUBLE ERROR WORD RHWC=2(RS5) ,a#REGADR ;FAILING REG. ADDRESS 1 ;FORCED IAE CAUSED IMPROPER RTS PC ;REGISTER CHANGE ;RETURN FOR FURTHER COMPARISONS :NO ERRORS 004737 042620 3%: JSR PC,a#CLDISK :CLEAR GO BIT S ST s s S s 140000 ;NOW RO WAS MAINTENANCE REG. ADDR. S 052737 012737 012737 013737 052737 052737 141550 a#RHMR RO #DMD ,an0 #G0,aRH(ST s 040070 040076 040104 040112 040120 040126 MOV MOV BIS CZR CZR SO S SO S s 001660 000001 000001 SEQ 0166 SEQ 0165 SOE SO SO SO SO SO SO SO SO SO SO SUE SO SO SO S S S 013700 012710 052777 J 13 30A(1052) 27=JUL-78 12:41 PAGE 167 7120 ERROR REGISTER 1 - BIT #10 'IAE’ SO 040052 040056 040062 MACY11 oS CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJGC PN 26=JuL-78 10:10 012777 052777 042777 000001 000004 000004 002032 - 040240 040246 040254 TST121: SCOPE MOV MOV JSR #STACK,SP #TTNO,@#TSTNM PC,a#CLDISK ;*GIVE INDEX PULSE WS & NO = o& v 001000 000121 042620 PN 000004 012706 012737 004737 —_— 040220 040222 040226 040234 K13 MACY11 30A(1052) 27=JUL=-78 12:41 PAGE 168 1120 ERROR REGISTER 1 = BIT #10 'IAE' _ CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 MOV BIS BIC #DMD , 3RHMR #MINX , 3RHMR #MINX , aRHMR SEQ 0167 SEQ 0166 JRESET STACK ;THIS SAVES TEST NUMBER ;CLEAR REGISTERS AND SET UNIT NO. ;SET DIAGNOSTIC MODE sSET INDEX ;CLEAR INDEX ;*THESE ARE REGULAR SET'JPS 040262 040270 040274 012777 012700 010077 002110 141334 040300 012720 177400 141342 MOV MOV MOV #-256. ,aRHWC #WRFROM ,RO RO, @RHBA 010000 MOV #FMT22, (RO) + 012720 000026 012705 012720 005305 001374 012777 000400 177777 MCV CLR CLR MOV ggg #22.,(RO)+ (RO)+ (RQ) + #256. ,RS :;1.(R0)0 ;TRACK=0, SECTOR=22. KEYS=0 :KEY1=0 ;KEY2=0 ;COUNTER sMOVE ALL ONES FOR DATA BNE MOV 1% #22. ,aRHDST ;BRANCH IF DATA NOT COMPLETE s TRACK=0 SECTOR=22 040336 040342 040346 004737 042654 062450 JSR PC,a#CHECKT 040350 013711 002064 MOV a#WRIFOR,aR1 :GET READY FOR WRITE HEADER AND 040354 040360 040366 005C37 012777 005077 002006 010000 CLR a#ERFLGS :CLEAR ERROR FLAG 040304 040310 040312 040314 040320 040324 040326 040330 005020 005020 104401 000000 000026 141260 1%: 141306 TYPE .CPHALT HALT 141262 MOV CLR ;256 DATA WORDS 4 HEADER WORDS sTHESE TWO INSTRUCTIONS GETS ;ADDR. OF WRFROM INTO RO AND ;BUS ADDRESS REGISTER ;FORMAT=16 BIT WORDS ;CYLINDER=0 ;CHECK THAT DVA,_RDY,DPR,DRY = 1 ;AND THAT NO OTHERS = ;STOP THE #FMT22 ,aRHOF aRHCA 1. CANNOT CON- TEST :DATA WITH 62 IN RHCS1 ;FORMA BIT=1 (16 BIT WORDS) :CYLINDER =0 ;*AS EXCEPTION IS ASSERTED BEFORE RUN IS ;*LATCHED RHWC ,RHBA,RHCS1,RHCS2 CANNOT BE CHECKED s *BECAUSE RHWC WILL VARY DEPENDING UPON GATE DELAYS ;*ON DIFFERENT UNITS 040372 040376 040402 004037 001642 003154 000015 ;*THE REGISTERS WILL BE SAVED IN REINTO BUFFER 043312 JSR RHER1 REINTO RO,a#SAVER 13. s SAVE :FROM :T0 ;NUMBER SAVED :*GO TO WRITE HEADER AND DATA 040404 040410 040414 013700 012710 052777 001660 000001 000001 141216 MOV MOV BIS a#RHMR RO #DMD , 3RO #G0O,aRHCST :NOW RO HAS MAINTENANCE REG. ADDR. ;SET DIAGNOSTIC MODE ;GO s *CHANGE SAVED REGISTERS TO EXPECTED VALUE 7162 7163 7164 7165 7166 7167 7168 7169 7170 n 7172 7173 7174 7175 7176 7177 7178 7179 7180 040422 040430 040436 040444 040452 012737 012737 013737 052737 052737 004037 001642 002110 000015 040472 113737 002000 000027 002016 000901 140000 L 13 27-JUL-78 12:41 PAGE 169 ERROR REGISTER 1- BIT #10 'IAE’ 003154 003156 003170 003172 003174 MOV MOV MOV BIS BIS T121 #1AE ,Q#REINTO ; SAVED RHER1 #23. ,a~REINTO+2;SAVED RHDST QHATTENT ,@#REINTO+14 ;SAVED RHAS #DMD ,a#REINTO+16 ;SAVED RHMR #ATA!ERR,Q#REINTO+20 ;SAVED RHDS1 ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE JSR 043312 RHER1 WRFROM RO,a#SAVER 13. 003171 s SAVE ;FROM :T0 sNUMBER OF REGISTERS SAVED :*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT ;*0PERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;*S0 THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MOvVB 002125 ANREINTO+15,a#WRFROM+15; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE READ IN PRESET COMMAND ;*WITH AFTER COMMAND 043514 040500 040504 040506 040510 040512 040514 040516 JSR REINTO WRFROM RO, a#COMPAR (b B ; 2% 2% 3% 040520 040524 040526 040534 013705 060505 016537 040536 000207 104001 2%: 047624 001640 042270 ; COMPARE ;GOOD BUFFER sTEST BUFFER ;NUMBER OF REGISTERS ;RETURN FOR ERROR ; SAME ;RETURN FOR GOOD COMPARISON MOV ADD MOV ERROR @#ERWORD ,R5 ;GETTING READY TO INDEX R5,R5 :DOUBLE ERROR WORD RHER1-2(R5) ,a#REGADR ;FAILING REG. ADDRESS 1 ;FORCED IAE CAUSED IMPROPER RTS PC JREGISTER CHANGE JRETURN FOR FURTHER COMPARISONS :NO ERRORS 040540 004737 042620 SEQ 0168 SEQ 0167 3%: JSR PC.a#CLDISK ;CLEAR GO BIT S S S S S S SN S S S S S S S S S S SN SN =0 SN SN N NSNS SIS NSNS SN SNSNSN NN 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 715 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 MACY11 30A(1052) st CZRJGCO,RPO4/5/6 DSKLS CTRLRY CZRJGC.PN 26=JuL-78 10:10 7181 MACY11 30A(1052) mna1 040544 040546 040552 040560 000004 012706 012737 004737 001000 000122 042620 002032 040564 040572 040600 012777 052777 042777 000001 000004 000004 141066 1461060 161052 M3 27=JUL=78 12:41 PAGE 170 ERROR REGISTER 1- BIT #10 'lAE’ TST122: SCOPE MOV MOV JSR #STACK,SP sJRESET STACK PC.,a#CLDISK sCLEAR REGISTERS AND SET UNIT NO. #TTNO,a#TSTNM ;*GIVE INDEX PULSE ;THIS SAVES TEST NUMBER MoV #DMD, 3RHMR ;SET DIAGNOSTIC MODE BIC #MINX ; 3RHMR sCLEAR INDEX BIS SEQ 0169 SEQ 0168 #MINX,SRHMR sSET INDEX ;*THESE ARE REGULAR SETUPS 012777 012700 010077 177400 002110 000400 004737 104401 042654 062450 01371 002062 00503~ 012777 002006 010000 005737 002036 012777 000403 001457 140740 012777 000633 140730 001404 MOV MOV 141010 012705 012720 005305 001374 012777 000000 MOV 141016 177777 000000 1%: 140776 MOV MOV DEC BNE MOV #256. RS s COUNTER #-1,(R0O)+ RS sTHESE TWO INSTRUCTIONS GETS ;ADDR. OF WRFROM INTO RO AND ;BUS ADDRESS REGISTER sMOVE ALL ONES FOR DATA ;BRANCH IF DATA NOT COMPLETE s TRACK=0 SECTOR=0 JSR PC,a#CHECKT ;CHECK THAT DVA_RDY,DPR,DRY = 1 MOV ANWRIDAT ,aR1 CLR MOV a#ERFLGS #FMT22 ,aRHOF TST a#RP06 MOV BR #815. ,aRHCA 5% sCYLINDER = 815 (ONE TOO MANY) :TREAT DRIVE AS RPO6 MOV #4171, ,3RHCA sCYLINDER = 411 (ONE TOO MANY) BEQ (%: ;256 DATA WORDS & HEADER WORDS #\WRFROM,RO RO,aRHBA 1% #0. ,aRHDST TYPE HALT 140752 #-256. ,aRHW( LCPHALT 4% sJAND THAT NO OTHERS = 1. ;STOP THE TEST CANNOT CON- ;GET READY FOR WRITE ;DATA WITH 60 IN RHCS1 ;CLEAR ERROR FLAG ;FORMA BIT=1 (16 BIT WORDS) ;MOVE FLAG TO ITSELF TO TEST ;TREAT DRIVE AS RPO4 IF FLAG = 0 ;TREAT DRIVE AS RPO4 ;*AS EXCEPTION IS ASSERTED BEFORE RUN IS s*LATCHED RHWC,RHBA ,RHCS1,RHCS2 CANNOT BE CHECKED :«BECAUSE RHWC WILL VARY DEPENDING UPON GATE DELAYS :*ON DIFFERENT UNITS 004037 001642 003154 000015 043312 5%: ;*THE REGISTERS WILL BE SAVED IN REINTO BUFFER JSR RHER1 REINTO RO,a#SAVER 13. : SAVE FROH MJBER SAVED ;*GO TO WRITE HEADER AND DATA 013700 012710 001660 000001 MOV MOV a#RHMR RO #DMD ,aR0 sNOW RO HAS MAINTENANCE REG. ADDR. ;SET DIAGNOSTIC MODE NANNSNNNNNNNNNNN CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 o, 000001 BIS 012737 012737 013737 052737 052737 002000 000001 002016 000001 MOV 140000 MOV MOV BIS BIS 043312 JSR #GO,aRHCST ;GO ;*CHANGE SAVED REGISTERS TO EXPECTED VALUE JIAE S#REINTO ; SAVED RHER1 ; RHDST SAVED #1. S#REINTO+2 QNATTENT ,@#REINTO+14 ;SAVED RHAS #DMD ,a#REINTO+16 ;SAVED RHMR #ATA'!ERR,@#REINTO+20 ;SAVED RHDS1 ;*SAVE REGISTERS AGAIN SO THAT COMPARES CAN BE DONE RHER1 WRFROM 13. RO,a#SAVER : SAVE FROH NUHBER OF REGISTERS SAVED ;*AS UPPER BYTE OF RHAS CAN BE CHANGING IN A DUAL PORT 041022 113737 003171 041030 041034 041036 041040 041042 041044 041046 004037 003154 002110 000015 041050 041050 041070 043514 041050 041054 041056 041064 013705 060505 016537 047624 041066 000207 104001 ;*OPERATION THE UPPER BYTE OF RHAS WILL BE SAVED AS IS ;%SO THAT THE COMPARES ARE ONLY VALID FOR THE LOWER BYTE MoVB 002125 SHREINTO+15,a#WRFROM+15; SAVE UPPER RHAS ;*COMPARE REGISTERS BEFORE READ IN PRESET COMMAND ;*WITH AFTER COMMAND JSR REINTO WRFROM RO, a#COMPAR 13. 2% 2% 3% 001640 2%: MOV ;NUMBER OF REGISTERS ;RETURN FOR ERROR : SAME JRETURN FOR GOOD COMPARISON @#ERWORD ,R5 ADD R5,R5 RTS PC MOV ERROR 042270 ; COMPARE ;GOOD BUFFER ;TEST BUFFER ;GETTING READY TO INDEX .DOUBLE ERROR WORD RHER1-2(RS) ,@#REGADR ;FAILING REG. ADDRESS 1 ;FORCED IAE CAUSED IMPROPER :REGISTER CHANGE JRETURN FOR FURTHER COMPARISONS :NO ERRORS 041070 004737 042620 3%: JSR PC,a#CLDISK :CLEAR GO BIT : o S S S S S S S S S S S S S S S S S S S S SN S S S S SN SN SN SN SN SN SN SN NN SNSNSNSNNNSNNNNNNN 052777 s s s s 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 040744 CZR Sl s 7237 7238 7239 7240 7241 7242 7243 SEQ 0170 SEQ 0169 (&l ~N CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=-JuUL~ 78 10:10 N 13 PAGE 171 ) 12:41 30A(1052 27=-JUL~78 MACY11 T122 ERROR REGISTER 1- BIT #10 'IAE’ CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 7278 7279 041074 041076 000004 012737 000001 7281 041112 104401 041120 7280 7282 7283 7284 041104 012737 041116 000425 041176 104405 041172 000000 013746 001774 104401 041206 7285 7286 7287 041200 041204 041212 000402 013746 7289 7290 ;2235 041220 041224 041230 005037 005037 005737 7293 041234 001413 7295 041236 005237 001100 7298 7299 041252 041254 041260 104405 104401 000137 041422 7302 7303 7304 7305 7306 041264 041270 041272 041276 041302 005337 001413 013700 012701 022100 001776 7309 77%}(1) 041310 041314 011137 000137 001774 007544 7288 7294 7296 7297 7733(0)? 7307 7308 041216 041242 041246 041304 041306 104405 104401 013746 001401 000775 MACYT 3??5}052) 001212 177776 7328 7329 7330 7331 7332 7333 MOV TYPE MOV TYPDS TYPE 041356 041 041364 041370 041372 041376 ;:TYPE ASCIZ STRING 648 AFUNIT,=(SP) ;.GET OVER THE ASCIZ ;GET READY TO TYPE UNIT NUMBER 001112 001102 002002 CLR CLR TST a¥SERTTL ANSTSTNM Q#SELECT ;CLEAR TOTAL NUMBER OF ERRORS ;CLEAR TEST NUMBER ;STARTING FROM 210 ? BEQ 3% sTEST NEXT DRIVE IF NOT INC a#SPASS s INCREASE PASS COUNT TYPDS 041425 001100 TYPE MOV TYPDS TYPE 007544 3$: 001774 001754 1$: 2%: 001102 001212 001100 100000 104401 013746 104405 104401 013700 041425 001100 041422 000042 .SENULL ;CONTINUE ON THIS ONE IF SO ;TYPE END PASS # JMP a#TSTS ;DO NEXT TESTS DEC BEQ MOV MOV CMP A#NOUNITS $EOP a#UNIT RO HUNITS ,R1 (R1)+,RO sNO. OF UNITS PRESENT DECREMENTED ;BRANCH IF ALL DRIVES COMPLETE sUNIT UNDER TEST ; TABLE ;1S THIS UNIT JUST TESTED MOV JMP (R1) ,@#UNIT a#TSTS ;THIS IS NEXT UNIT ;GO FOR NEXT TESTS BEQ BR SCOPE 001100 . SENDMG a#$PASS,~(SP) 2% 1% *%*SUBROUTINES**=* $TSTNM $TIMES $PASS #100000,8PASS (PC)+ 1 $DOAGN (PC)+,3(PC)+ 1 ;;ZERO THE TEST NUMBER ;.ZERO THE NUMBER OF ITERATIONS ;- INCREMENT THE PASS NUMBER ;;DON'T ALLOW A NEG. NUMBER ::LO0P? TYPE MOV TYPDS TYPE $GET42: MOV . SENDMG $PASS ,~(SP) ;;TYPE "END PASS #'' ;;SAVE $PASS FOR TYPEOQUT ;:G0 TYPE--DECIMAL ASCII WITH SIGN ;:TYPE A NULL CHARACTER ;.GET MONITOR ADDRESS . SENULL a#42 RO > ;BRANCH IF YES ;BRANCH IF NO CLR CLR INC BIC DEC $EOPCT: .WORD BGT MOV $ENDCT: .WORD $EOPCT SEQ 0171 SEQ 0170 sREINSTATE PS TO 0 001112 005037 005037 005237 042737 005327 000001 003022 012737 000001 041346 ,658 ;:TYPE ASCIZ STRING ;.GET OVER THE ASCIZ ;GET READY TO TYPE NUMBER OF ERRORS .SBTTL 000004 ;;D0 1 ITERATION #0,PS ,67% .SBTTL 041322 041326 041332 041336 041344 041346 041350 041352 041354 #1,8TINES 66% Q#SERTTL,-(SP) .SBTTL 041320 PAGE 172 BR MOV 7314 7319 7320 7321 7322 7323 7324 7325 7326 7327 TST123: SCOPE MOV BR 7312 7313 7315 7316 7317 7318 B 14 27-JUL-78 12:41 END OF DRIVE 2:VES ;;RESTORE COUNTER > CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.PT 26=JuL-78 10:10 041402 041404 041406 041410 041412 041414 041416 041420 041422 041425 041432 041440 MACY11 001405 000005 004710 30A(1052) 27-JUL-78 END OF PASS ROUTINE C 14 12:41 PAGE 173 BEQ $DOAGN :;BRANCH IF NO MONITOR $ENDAD: JSR NOP PC,(RO) ;2GO TO MONITOR ::SAVE ROOM RESET NOP 377 042412 051501 000 042116 020123 NOP JMP $SRTNAD: .WORD $ENULL: .BYTE ;sCLEAR THE WORLD ::FOR a(PC)+ rsr1 =1,-1.0 J:ACTI :;RETURN SENDMG: .ASCIZ <1§><12>/E~o PASS” #/ :NULL CHARACTER STRING ;**HERE IS A DETAILED EXPLAINATION OF HOW THE LOOP ON ERROR WORKS. ;**ON HITTING AN ERROR IF THE LOOP ON ERROR SWITCH IS SET, THE ;**PROGRAM GOES BACK = USUALLY BACK TO THE BEGINNING OF THE TEST. ;**WHEN THIS OPERATOR SELECTABLE SCOPE LOOP IS USED THEN THE POINT ;**THE PROGRAM GOES BACK TO CAN BE CHANGED. ;**THE RESTRICTIONS TO THE POINT WHERE THE PROGRAM CAN GO ARE: IT MUST BE WITHIN THE TEST UNDER CONSIDERATION s**1, LOOP ON ERROR SWITCH MUST BE SET ixx2. ;**3_ THE ERROR MUST OCCUR WITHIN THE TEST UNDER CONSIDERATION ;*=]F THE ERROR DOES NOT OCCUR WITHIN THE TEST UNDER CONSIDERATION ;**THE PROGRAM WILL REVERT TO NORMAL OPERATION. HOWEVER, IF LOOP ON s*«TEST SWITCH IS SET AND THIS OPERATOR SELECTABLE SCOPE LOOP IS USED ;**THEN THE PROGRAM WILL LOOP BACK TO THE SELECTED POINT WHEN IT ;*«COMES TO THE END OF THE TEST UNDER CONSIDERATION. 2 ;*«AFTER LOOPING FOR SOME TIME IF THE LOOP SWITCH IS PUT DOWN THEN ;**NORMAL OPERATION WILL CONTINUE. TESTAD: 0 000000 005037 104401 000421 013746 104402 104401 000414 013746 104402 104401 104401 000430 177776 041456 CLR PS :MAKE PROCESSOR STATUS ZERO 002032 BR MOV 64$ QMTSTNM,-(SP) “GET OVER THE ASCIZ :GET READY TO TYPE TEST 041534 TYPE ,67% ,,rvpe ASCIZ STRING 001110 001223 041604 104401 041672 104401 041760 000430 000422 104412 062716 012637 : OPERSEL :FIRST ADDRESS OF TEST 000002 001106 TYPE TYPOC B8R ?ogoc Y ,65% 66% a4SLPERR,-(SP) TYPE ,SCRLF B8R 688 B8R 728 TYPE TYPE BR TYPE RDOCT ADD MOV ::TYPE ASCIZ STRING *NUMBER “GET OVER THE ASCIZ -GET READY TO TYPE LOOP BACK PC .69% ::TYPE ASCIZ STRING ,71% 70 73$ S:TYPE ASCIZ STRING *“GET OVER THE ASCIZ *:TYPE ASCIZ STRING #2,(SP) (SP)+,a#$LPADR “ GET OVER THE ASCIZ “:GET OVER THE ASCIZ :GET LPADR SEQ 0172 SEQ 0171 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 7390 7391 042036 042042 104401 000417 7393 7394 7395 7396 042106 042210 042212 042216 000440 104412 012637 013746 7392 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 76414 76415 76416 7417 7418 042102 042222 104401 000002 MACY11 30A(1052) 27-JUL-78 END OF PASS ROUTINE 042044 TYPE BR TYPE BR 042110 001110 001106 .SBTTL D 14 12:41 PAGE 174 758 74% ;s TYPE ASCIZ STRING ;.GET OVER THE ASCIZ ;. TYPE ASCIZ STRING :.GET OVER THE ASCIZ (SP) +,a#8LPERR a#$LPADR,~(SP) ;GET LPERR L77% 76$ SAVE REGISTERS ROUTINE ;*THIS SAVES THE CONTENTS OF ALL HARDWARE REGISTERS ;*IN MEMORY LOCATIONS TAGED FROM 'WC'' TO "EC2'’ b . b :#THIS IS DONE SO THAT COMPARES ARE DONE WITH SAVED LOCATIONS THIS WILL MAKE ;*AND NOT THE REGISTERS THEMSELVES. :*ERROR PRINTOUTS FOR GOOD AND BAD DATA ALWAYS DIFFRENT 042224 042224 042226 042230 042232 042236 042242 010046 010146 010246 012700 012701 012702 PUTREG: 001632 001706 000023 10%: MOV MOV MOV MOV MOV MOV MOV DEC BNE MOV MOV MOV RTS RO,=(SP) :;PUSH RO ON STACK R2,=(SP) #RHW(C ,RO ;;PUSH R2 ON STACK ;STARTING ADDRESS OF REG .SBTTL FLOAT 1 R1,-(SP) ;;PUSH R1 ON STACK MIC,R1 ;STARTING ADDRESS OF WERE SAVED #RHCC-RHW(+2/2 ,R2 ;NUMBER OF REG. INTO RZ2 géRO)*.(R1)* ;SAVE HARDWARE REG. 108 (SP)+,R2 (SP)+,R1 :;POP STACK INTO R2 ;;POP STACK INTO R1 (SP)+,R0O ;;POP STACK INTO RO PC AND O ;*FLOAT A ONE AND A ZERO THRU A DESIGNATED REGISTER ;*ABSOLUTE ADDRESS OF REG. UNDER TEST IS IN Ré4 7437 7438 7439 042264 042266 042270 000000 000000 000000 7441 7442 7443 7444 7445 042272 042276 042300 042304 042310 012537 012504 010437 010537 062705 MASK : LERR: ;BITS UNDER TEST ;ERROR HLT ADDRESS 0 0 REGADR: 0 042264 042270 042266 000004 BITST: MOV MOV MOV MOV ADD (R5)+, MASK R4, REGADR (R5)+, RS, #é, Ré4 LERR RS ;FETCH DATA MASK ;GET ADDRESS OF REG. UNDER TEST ;GET ERROR RETURN ADDR. sMODIFY RETURN ADDR. TO JUMP OVER RTS SEQ 0173 SEQ 0172 CZRJGCO,RP0O4/5/6 DSKLS CTRLRI] CZRJIGC.P1T 26=JUL-78 10:10 042352 001000 042600 136560 BLTZ2: BLT3: 001103 001774 055176 RTS COM MOV BIT BEQ TSTB BEQ RESET MOV JSR 137236 4%: 001124 001126 MOV COM BIC CoM MOV MOV COM BIC 001126 001640 177477 001124 177534 PC, R3 BLTZ2 BLTZ2 R3 R3 BLT1 RS R3 #8LT3, a#LAD #SW09,aSWR 4% a#SERFLG 4% ;INITIALIZE DATA PATTERN ;OUTPUT FLOATING ZERO ;OUTPUT FLOATING ONE sSHIFT PATTERN ;BRANCH IF NOT COMPLETE JRETURN TO TEST s COMPLEMENT PATTERN ;SET SCOPE LOOP ;LOOP ON ERROR ;BRANCH IF NO sANY ERRORS ;BRANCH IF NO A#UNIT ,aRHCS2 PC,a#$TKINT R3,a#$GDDAT a#HA K sSTART WITH AN INIT sSET UNIT NUMBER UNDER TEST SINITILIZE TK ;INIT FOR SCOPING LOOPS ;STORE GOOD DATA sAND MASK WITH PATTERN ;CLEAR THE REST MASK ORE sREST REGISTER TO T ;OUTPU REGISTER FROM s INPUT a#$GDDAT, (R4) (R4) ,a#$BDDAT AAMASK A#MASK , a#SBDDAT sAND MASK OUT RECEIVED DATA AMMASK ;RESTORE MASK -1S DATA CORRECT 2%: 3%: 1%: 1% (R4) ,a#$BDDAT ;BRANCH IF GOOD #*C<IR!OR>, (SP) (SP)+,a#$GDDAT . aLERR ;KEEP IR AND OR BIT ;SET IR OR BITS IF NEEDED ;GO TO REPORT ERROR a#RHCST,R4 ;REGISTER UNDER TEST RH(CS1? 2% ;BRANCH IF NOT #RDY !DVA ,a#$GDDAT; SET RDY AND DVA 3% R4 AH¥RHCS2 :REGISTER UNDER TEST RH(CS2? 3% ;BRANCH IF NOT R4 ,-(SP) :GET RHCSZ2 001124 % 001636 ”, PC, :REPLACE BY 104420 FOR LOCAL SCOPE LOOP RTS PC .SBTTL CLEAR MEMORY ROUTINE THIS CLEARS ANY BLOCK OF MEMORY FILLING IT WITH ANY DATA % 004200 E 14 12:41 PAGE 175 a#SGDDAT ,a#$BDDAT 001126 % 7473 7474 7475 7476 7477 TST BNE % 7467 7468 7469 7470 7471 7472 MOV JSR JSR CLC ROL % 7466 BLT1: ¥ 7465 010337 005137 043737 005137 013714 011437 005137 043737 005137 023737 001424 011437 023704 001004 052737 000410 023704 001005 011446 042716 052637 004777 000240 000207 000001 042342 042342 SesLNLNLNL N, 7458 7459 7460 7461 7462 7463 7464 012703 004737 004737 000241 006103 005703 001370 000205 005103 012737 032777 001411 105737 001406 000005 013777 004737 FLOAT 1 AND 0 CALL JSR % Y RO, CLAREA ;STARTING ADDRESS OF BLOCK ;DATA TO BE FILLED z 'R1 WILL HAVE STARTING ADDRESS OF BLOCK TO BE FILLED :*R2 AFTER SUBTRACTION WILL HAVE TWICE NUMBER OF LOCATIONS . 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 76457 27-JUL-78 MACY11 30A(1052) SEQ 0174 SEQ 0173 CZ w4 (ZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuUL-78 10:10 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 F MACY11 30A(1052) 27-JUL=78 12:41 CLEAR MEMORY ROUTINE ;*R3 WILL HAVE DATA TO BE 14 SEQ 0175 SEQ 0174 PAGE 176 FILLED ;*TO AVOID DIVIDE ROUTINE TWO DECREMENT R2 WILL BE USED CLAREA: 010146 010246 010346 012001 012002 012003 160102 062702 010321 005302 005302 001374 012603 012602 012601 000200 R1,-(SP) R2,=(SP) R3,-(SP) (RO)+,R1 (RO)+,R2 (RO)+,R3 000002 R1,R2 1%: #2,R2 R3,(R1)+ (SP)+,R3 (SP)+ ,R2 (SP)+,R1 RO ;:PUSH R1 ON STACK :;PUSH R2 ON STACK ;:PUSH R3 ON STACK ;FROM ;70 ;DATA ;NO. OF LOCATIONS MINUS TWO ;GET TWICE NO OF LOCATIONS ;MOVE IN DATA ;BRANCH IF NOT COMPLETE :;POP STACK INTO R3 ;;POP STACK INTO R2 ;;POP STACK sRETURN INTO R1 czl czi k. i S MOV RTI a#LAD, (SP) e i M ;*THIS WILL LOOP BETWEEN X: AND SCOP1 PROVIDED THERE IS NO "NEWTST X, a#LAD i 2 *MOV iy i J*X: s :t :t .SBTTL i SCOP1 CLEAR DISK ROUTINE 042620 042624 042630 042634 013701 013702 013703 013704 001640 001636 001662 001642 CLDISK: MOV MOV MOV MOV @#RH(CST, AFRHCS2, a#R4DS1T, a#f %£R1, 042640 042644 042650 042652 012712 013712 005011 000207 000040 001774 MOV MOV CLR #CLR,aR2 RTS st :' S 1%: Skt aSwR 1 A 0§U09. BEQ ;*EXAMPLE OF THE USE OF THE ABOVE 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 T.SCOP: BIT e 042600 136330 s 001200 LOCAL TRAPS a#UNIT ,aR2 aR1 PC R1 R2 R3 R4 ;R1 ;R2 ;R3 ;R4 WILL WILL WILL WILL BE BE BE BE CONTROL AND STATUS1 CONTROL AND STATUS?Z DISK STATUS REGISTER1 ER<OR REGISTER #1 ;CLEAR ALL REG. JREINSTATE UNIT NO. sCLEAR FUNCTION BITS g 032777 001402 013716 000002 6SBTTL B i 042602 042610 042612 042616 LAD: SEQ 0176 SEQ 0175 s 000000 PAGE 177 i e 042600 G 14 12:41 e e 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 MACY11 30A(1052) 27=JUL-78 LOCAL TRAPS A CZRJGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.PI 26=JuL-78 10:10 3%: 001736 001100 000600 000400 000006 8% ;BRANCH IF THEY ARE ;TEST DRIVE PRESENT 4%: #DPR,a#DS1 5% R3,a#$BDADR 26 ;CONTINUE IF THERE ;ADDRESS OF BAD REGISTER (RHDS1) ;RHDS1 DOES NOT HAVE DPR 001736 5%: #DRY ,a#DS1 6% R3,a#$BDADR 26 ;TEST DRIVE ;IF DPR WAS sADDRESS OF ;RHDS1 DOES 6%: R3.,a#$BDADR 26 001122 001122 ;GET RHDS1 #VV!PROG, (SP) ;CLEAR VV AND PROGRAMABLE BIT #DPR!DRY, (SP)+;RHDS1 SHOULD HAVE THESE SET 001736 001122 000200 a#DS1,~-(SP) 7$ 7% 7%: PC 8%: #6, (SP) PC sBRANCH OUT ;BRANCH OUT 0 O P P P P P N P P P P YA . A YA P PR P . THAN DVA AND RDY SET ;ALL OTHER BITS SHOULD BE 0 PN P ;1F RDY THERE BRANCH ;ADDRESS OF BAD REGISTER (RH(CS1) sRHCS1 DID NOT HAVE READY sRIGHT AT START OF TEST ;BRANCH TO NEXT COMPARE ;ADDRESS OF BAD REGISTER (RH(CS1) sRHCS1 HAD SOME BITS OTHER B 3s R1,a#$BDADR 26 sTEST READY S 2%: 2% R1,a#$BDADR 26 B ;BRANCH TO NEXT COMPARE #RDY ,a#(S1 sAVAILABLE AT START OF TEST B 104026 3% 1%: 001122 001122 ;ADDRESS OF BAD REGISTER (RHCS1) sRHCS1 DID NOT HAVE DEVICE B 000403 010137 001714 26 P 104026 000200 R1,a#$BDADR P 000413 032737 001003 010137 ;BAD SO TEST DEVICE AVAILABLE :BRANCH IF DVA THERE B 001122 104026 #DVA,a#(S1 1% READY THERE, BRANCH IF GOOD BAD REGISTER (RHDS1) NOT HAVE DRY ;ADDRESS OF BAD REGISTER (RHDS1) ;RHDS1 HAS SOME BITS OTHER ;THAN MOL, DRY, DPR, B 010137 001714 JSR S 004000 001004 3% ;SAVE REGISTERS ;RHCS1 SHOULD HAVE DEVICE AVAILABLE ;AND BE READY :BRANCH IF GOOD ;GET PC OF o 032737 PC,a#PUTREG #DVA'!RDY,a#CS1 SET ;ALL OTHER BITS SHOULD BE 0 ;RETURN TO TEST AND HALT ;ADJUST STACK TO GET OVER HALT IN TEST JRETURN TO TEST AND CONTINUE TESTING P 001423 ;SAVE PC OF JSR+4 oo 001714 (SP) ,a#PCJSR #4 ,a#PCJSR e S CHECKT: MOV SuB e 002014 e 004737 022737 002014 000004 042224 004200 e 162737 e P 011637 OO0 IN RH(CST =1 O (DVA) AND READY (RDY) ;*AND CHECKS THAT DEVICE PRESENT (DPR), DEVICE READY (DRY) IN RHDST = 1 ;*IT ALSO CHECKS THAT NO OTHER BITS IN THESE REGISTERS = 1 e ;*THIS CHECKS THAT DEVICE AVAILABLE OO0 C(HECK DISK STATUS ROUTINES . A e e 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 .SBTTL e 7562 SEQ 0177 SEQ 0176 PAGE 178 r 7560 7561 H 14 12:41 -m CLEAR DISK ROUTINE 7551 7552 7553 7554 7555 7556 7557 7558 7559 27-JUL-78 NN 30A(1052) ala MACY11 N A CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuUL-78 10:10 e e e e e e e e o e o P S . P B P, B, S, S, S B S B B B . i S S (W4 (Wi e SEQ 0178 SEQ 0177 f PAGE 179 m 7607 I 14 MACY11 30A(1052) 27-JUL-78 12:41 CHECK DISK STATUS ROUTINES L CZRJIGCO,RPO4/S5/6 DSKLS CTRLR1 (ZRJGC.P11 26=JuL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR! CZRJGC.PI 26=JuL-78 10:10 MACY11 i 2% R1,a#$BDADR 26 BR BIT BNE MOV ERROR BR BIT BNE MOV ERROR A 3 #DRY ,a#DS1 33 R3,a#$BDADR 26 43 #DPR,a#DS 1 5% R3,a#$BDADR 26 (%: RTS PC JRETURN TO TEST AND HALT 5%: ADD #6, (SP) ;ADJUST STACK TO GET OVER HALT IN TEST 000400 001122 000006 RTS PC O AN O O O 3%: ;sBRANCH OUT O 001736 ;RHDS1 SHOULD HAVE DPR,DRY ;BRANCH OUT AND CONTINUE IF THERE sFAILING REGISTER RHDS1 ;RHDS1 DOES NOT HAVE DPR,DRY JRETURN TO TEST AND CONTINUE AR O 2%: ;BRANCH IF GOOD JFAILING REGISTER JRHCS1 IS IN ERROR ;DOES NOT HAVE DVA, RDY ;BRANCH OUT ;RHDS1 SHOULD HAVE DPR,DRY ;BRANCH IF THERE sFAILING REGISTER RHDS1 ;RHDS1 DOES NOT HAVE DPR,DRY A 001736 001122 043160 043162 043166 BNE MOV ERROR P 104026 000200 JRHCS1 SHOULD HAVE DEVICE AVAILABLE ;AND BE READY . YA O 000417 032737 001004 010337 #DVA,a#(S1 TESTING Y8 043120 043122 043130 043132 043136 043140 043142 043150 043152 043156 104026 4% BIT P 001122 BR sRHCS1 IS IN ERROR ;DOES NOT HAVE DVA, RDY ;BRANCH 0OUT P 001004 010137 1%: JFAILING REGISTER A 043110 043112 043116 001714 26 ;BRANCH IF GOOD P 004000 ERROR 1% R1,a#$BDADR 3 000427 032737 MOV P 043100 043102 104026 BNE ;SAVE PC OF JSR+4 sGET PC OF JSR JREAD & SAVE REGISTERS JRHCS1 SHOULD HAVE DEVICE AVAILABLE ;AND BE READY P 001122 (SP) ,a#PCJSR #4 ,#PCJSR PC,a#PUTREG #RDY ,a#CS1 A 001004 010137 001714 CHECKE: MOV SuB JSR BIT Y 043070 043072 043076 002014 PN 004737 032737 002014 000004 042224 000200 . P 011637 162737 PN, P 043044 043050 043056 043062 N 0N 00 0N 0N An An 0N 0N 7N = MR A0 On OO0 On On On On IN RHCS1 PN P, P (RDY) P AND READY P (DVA) s*AND CHECKS THAT DEVICE PRESENT (DPR), DEVICE READY (DRY) IN RHDS1 =1 N 7618 7619 ;*THIS CHECKS THAT DEV.CE AVAILABLE P 7613 7614 7615 7616 7617 |3 P 7611 7612 SEQ 0179 SEQ 0178 e 7608 7609 7610 J 14 30A(1052) 27-JUL-78 12:41 PAGE 180 CHECK DISK STATUS ROUTINES a#$TMP1 ,a$TMPO 2% NS TMP2 3% a$TMPO ,a#$BDDAT 16 P D0 D0 D0 OO0 P O 0 D0 AR O O N N N M0 A ; TEMPORARY COUNT ;IS REQUIRED BIT THERE? ;BRANCH IF YES s COUNT ;BRANCH IF NOT TIME UP ;REGISTER CONTENTS sWAITED ON BIT FAILED TO SET OO0 O ;BRANCH IF NOT TIME UP N O BIT BNE DEC BNE MOV S??OR A#TIMCNT ,a#$TMP?2 0 ;ABSOLUTE REG. ADDRESS UNDER WAIT ;BIT WAITED FOR s CONTINUE B B B ;A CONTAINS REGISTER ADDRESS JHENCE X$ WILL HAVE ABSOLUTE REG. ADR. B @A, axs$ - S MOV - B CALL FOR THE ABOVE WAITLOOP IS P B P B B B B S S P 0 .WORD S WAT B RN X % % RN B P P n L] 001126 MOV s COUNT YA YA PN O 1$ a#s$TMP?2 P 3%: 001202 135672 BNE e S 001202 135706 JWAT PC+2 IN STMP3 e 043170 001200 RO,a¥$TMP3 BNE MOV MOV BIT DEC 001202 :SAVE RO ;GET ADRESS OF REG. ADDERSS P * » * 1%: ;WAITING COUNT ;WAT PC FOR TYPEOUT #2,aN8TMP3 (RO) +,a#$TMPO sWAIT REGISTER ADDRESS (RO) +,a#$TMP1 sWAIT ON BIT RO,2(SP) sRESTORE RETURN ON STACK (SP)+ RO sRESTORE RO A#TIMCNT ,a#$TMP2 : TEMPORARY COUNT a#$TMP1 ,@8TMPO ;IS REQUIRED BIT THERE? 2% ;BRANCH IF YES MOV MOV MOV CZFk CZF e B 7681 7682 7683 7684 7685 001202 135732 RO,=(SP) 2(SP) ,RO X 7679 7680 000002 043170 001200 MOV SuB 001204 X 7678 104016 000002 001204 000002 001176 001200 000002 ONE LOOP OR ONE COUNT = 5.15 MICROSEC WITH BIPOLAR MEMORY (MIN) ONE LOOP OR ONE COUNT = 11.86 MICROSEC WITH CORE (MIN) WITH CORE ERROR IS INDICATED AFTER ABOUT 650 MILLISEC (MIN) MOV % 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 010037 162737 012037 012037 010066 012600 013737 033777 001021 005337 001371 013737 033777 001007 005337 001371 017737 SEQ 0180 SEQ 0179 PAGE 181 WAIT LOOP TIMCNT: 177777 WAIT.T: MOV % 7666 177777 010046 016600 * 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 MACY11 30A(1052) 27-JUL-78 12:41 CHECK DISK STATUS ROUTINES 8 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26-JuUL-78 10:10 K 14 CZR po N ;*THE CALL :*JSR ;*FROM :*T0 IS RO,a#SAVER :*NUMBER OF WORDS SAVED SAVER: 010146 010246 010346 012001 012002 012003 013122 005303 001375 012603 012602 012601 000200 1%: MOV MOV MOV MOV MOV MOV MOV DEC BNE MOV MOV :?g .SBTTL R1,-(SP) RZ.=(SP) R3,-(SP) (RO)+,R1 (RO) +,R2 (RO)+,R3 d(R1)+,(R2)+ R3 1% (SP)+,R3 (SP)+ ,R2 é%P)*.R’ :2PUSH R1 ON STACK ::PUSH R2 ON STACK :2PUSH R3 ON STACK ;FROM ;70 :NUMBER ;SAVE REGISTER CONTENTS s COUNT sBRANCH IF NOT DONE :;POP STACK INTO R3 :;POP STACK INTO R2 ;;POP STACK INTO R1 WRITE CHECK ROUTINE ;*THIS IS A SUBROUTINE TO DO WRITE CHECK HEADER AND DATA s*CYLINDER O, TRACK 1, SECTOR 1, KEYS 0 012737 112737 112737 005027 010000 000001 047510 047512 047514 044026 047504 047507 047506 047564 WRCHHD: ;*THESE ARE TO SET UP FOR DISKLESS USE ONLY MoV MovB MovB CLR CLR MOV CLR gif HFMT22 ,a#CYL #1,94SECOTR+1 #1,a#SECOTR a#KEY] a#KEY2 #36. ,DAWORD a#x R5.,a#CRC sCYLINDER O FORMAT 16 BIT WORDS :TRACK=1 :SECTOR=1 ;KEY1=0 ;KEY2=0 sNO OF DATA WORDS ;THIS IS A READ OPERATION :GO TO CALCULATE CRC WCRC ;*THESE ARE REGULAR SETUPS 004737 042620 012777 012777 177730 003154 000001 000001 136166 014000 112746 112766 012677 012777 136200 136174 000001 136164 JSR PC.a#CLDISK MOV MOV MOvB MOVB #-40. ,aRHWC #REINTO,@RHBA #1,-(SP) #1.1(SP) MOV MOV SET UP GENERAL REGISTERS AND CLEAR DISK REGISTERS 36 DATA WORDS 4 HEADER WORDS :STARTING ADDRESS OF READ BUFFER :SECTOR=1 *TRACK=1 IN UPPER BYTE -TRACK=1, SECTOR=1 IN RHDSI (SP)+.@RHDST #FMT231ECI.aRHOF " :16 BIT WORDS (o 00 N0 00 (o o 0o 0o 0o 00 00 0o 00 0o 0o 0o 0o 00 00 00 0o O :«THIS IS A SUBROUTINE TO SAVE REGISTERS :*IN THE REGISTER TABLE TO ANY LOCATION 0 A0 0N AR An AN M An A On 0N On A On On On 00 An 00 On O On O SAVE ROUTINE Y P P P O .SBTTL £ P P P P 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 SEQ 0181 SEQ 0180 o ~N CZRJGCO,RP0O4/5/6 DSKLS CTRLRI1 CZRJGC.P1 26=JuL-78 10:10 L 14 30A(1052) 27-JUL-78 12:41 PAGE 182 MACY11 CHECK DISK STATUS ROUTINES alal NN b olo] OO0 00 00 00 MO0 0D e OO0 O A O A D0 O O P P P P P P JRETURN TO WRITE CHECK TEST P PC P RTS P PC.,a#COMHD P JSR ;WRITE CHECK HEADER AND DATA=52 PN P 047344 s INTO RHCS1 JWRITE CHECK HEADER AND DATA ;SAME AS READ HEADER AND DATA P AWRCHDT ,aR1 . P 002060 P, B ;STOP THE TEST HALT MOV P, P LCPHALT s CYLINDER=0 sCHECK THAT DVA,_RDY,DPR,DRY = 1 CANNOT (ONsAND THAT NO OTHERS = 1. B 000207 PC,a#CHECKT B, B 043512 TYPE aRHCA B 004737 CLR JSR . B 7755 043506 104401 000000 013711 136162 042654 062450 B 7753 7754 005077 004737 e B, B 7751 7752 043464 043470 043474 043500 043502 e 7745 7746 7747 7748 7749 7750 sECC LOGIC IS NOT CHECKED YET S 7743 7764 e M ;ECC CORRECTION INHIBIT BECAUSE 7742 SEQ 0182 SEQ 0181 e WRITE CHECK ROUTINE 183 e B 27-JUL-78 S MACY11 30A(1052) e P CZRJGCO,RPO4/5/6 DSKLS CTRLR! CZRJGC.PN 26=-JuL-78 10:10 M 14 PAGE 12:41 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 MACY11 30A(10520 27-JUL-78 WRITE CHECK ROUTINE .SBTTL N 14 12:41 PAGE 184 COMPARE ROUTINE ;*THIS 1S A SUBROUTINE TO COMPARE TWO BLOCKS IN MEMORY ;*R1 HAS GOOD DATA BUFFER ADDRESS ;*R2 HAS TEST DATA BUFFER ADDRESS :*$TMPO HAS ADDRESS OF RETURN ON ERROR TO PRINT HEADER ;*$TMP1 HAS ADDRESS OF RETURN ON ERROR TO PRINT DATA ;*R3 HAS NUMBER OF WORDS TO BE COMPARED ;*R4 HAS ONE MORE THAN NUMBER OF WORDS TO BE COMPARED 010146 010246 010346 010446 010546 012001 012002 012003 012037 012037 COMPAR: 014137 014237 160337 005737 001003 004777 000402 004777 022122 017746 (RO)+,$TMPO (RO) +,$TMP1 (RO) ,RO R3.R4 001176 001200 047624 1%: 001124 001126 047624 002006 135366 135362 135314 R1,-(SP) R2,=(SP) R3,-(SP) R4 ,-(SP) R5,=(SP) (RO)+,R1 (RO)+,R2 (RO)+,R3 2%: 5%: R& R4 ,a#ERWORD §§1)*.(R2)+ =(R1) ,a#SGDDAT =(R2) ,a#$BDDAT R3,a#ERWORD A¥ERFLGS 2% PC.a$TMPO 5% PC.as$TMP1 (R1)+,(R2)+ aSWR, - (SP) #C600, (SP) 177177 000200 3%: 4%: #SW07, (SP)+ 43 R3 1% (SP)+,RS (SP)+ R4 (SP)+ ,R3 (SP)+ ,R2 (SP)+,R1 RO ::PUSH R1 ON STACK ::PUSH R2 ON STACK ;;PUSH R3 ON STACK ;:PUSH R4 ON STACK ::PUSH R5 ON STACK ;ADDRESS OF GOOD DATA BUFFER ;ADDRESS OF TEST DATA BUFFER ;NO OF WORDS TO BE COMPARED :RETURN ON ERROR TO PRINT HEADER ;RETURN ON ERROR TO PRINT DATA JRETURN ON NO ERROR ;NO OF WORDS TO BE COMPARED :FOR ERROR WORD NO ;COMPARE GOOD WITH TEST DATA ;BRANCH IF GOOD ;GOOD DATA ;BAD DATA ;ERROR WORD NO. ;ANY ERRORS ALREAY THERE ;BRANCH IF YES :RETURN TO PRINT HEADER :BRANCH TO AVOID PRINTING NEXT ERROR JRETURN TO PRINT DATA JUNDO =(R1) AND -(R2) FOR ERRORS JGET SWITCH SETTING :KEEP ONLY SWITCH 7 AND 8 :1S 7 SET AND 8 RESET ;BRANCH OUT IF YES s COUNT ;BRANCH IF ALL NOT DEVICE ::POP STACK INTO RS ;:POP STACK INTO R4 :;POP STACK INTO R3 ;;POP STACK INTO R2 :;POP STACK INTO R1 JRETURN TO MAIN PROGRAM SEQ 0183 SEQ 0182 [co MMmMMmomMmmnm CZRJGCO,RPO4/5/6 DSKLS CTRLRI] CZRJIGC.P1 26=JUL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 MACYTT 7812 30A(1052) 27-JUL-78 COMPARE ROUTINE B 15 12:41 PAGE 185 SEQ 0184 SEQ 0183 7813 ;*THIS IS A SUBROUTINE TO DU WRITE CHECK DATA 7815 7816 ;*THESE ARE TO SET UP FOR DISKLESS USE ONLY 7814 7817 7818 7819 s*CYLINDER O, TRACK 1, SECTOR 1, KEYS 0 043656 012737 112737 112737 010000 043672 043700 043704 043710 043716 005037 005037 012737 005037 047510 047512 043722 043726 043730 004537 047504 051404 044026 1 047514 047504 047507 047506 047564 WRCHDA: MOV MOvVB mMovB CLR CLR MOV JSR HFMT22 ,a#CYL sCYLINDER O FORMAT 16 BIT WORDS asx ;THIS #1,a#SECOTR+1 #1,a#SECOTR aMKEY1 aNKEY2 #32. ,a4#DAWORD R5,a#CRC ;TRACK=1 ;SECTOR=1 ;KEY1=0 ;KEY2=0 ;NO OF DATA WORDS IS A READ OPERATION ;GO TO CALCULATE CRC ;*THESE ARE REGULAR SETUPS 004737 042620 012777 012777 177740 112746 112766 000001 012677 012777 005077 004737 104401 000000 013711 004737 000207 135666 135662 135652 135650 042654 062450 002056 047344 JSR PC,a#CLDISK ;SET UP GENERAL REGISTERS MOV #-32. ,3RHWC ;36 DATA WORDS 4 HEADER WORDS MOVB MCYB MOV #1,-(SP) #1,1(SP) (SP)+ ,aRHDST ;SECTOR=1 ;TRACK=1 IN UPPER BYTE ;TRACK=1, SECTOR=1 IN RHDST MOV MOV CLR JSR TYPE HALT MOV JSR RTS #REINTO,aRHBA #FMT22'!ECI ,aRHOF aRHCA ;AND CLEAR DISK REGISTERS ;STARTING ADDRESS OF READ BUFFER ;16 BIT WORDS sECC CORRECTION INHIBIT BECAUSE sECC LOGIC IS NOT CHECKED YET ;CYLINDER=0 PC,a#CHECKT LCPHALT ;CHECK THAT DVA,RDY,DPR,DRY = 1 ;AND THAT NO OTHERS = 1. CANNOT CON- a#WRCHEK ,aR1 ;WRITE CHECK DATA=50 INTO RHCS1 ;STOP THE TEST PC.a#COMHD ;WRITE CHECK HEADER AND DATA PC ;RETURN TO WRITE ;SAME AS READ HEADER AND DATA CHECK TEST ¢l t CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1 26-JUL-78 10:10 MACY11 30A(1052) 27=JuL -78 COMPARE ROUTINE 7852 7853 .SBTTL 7854 7855 7856 7857 7858 c15 12:41 PAGE 186 CRC GENERATION ROUTINE ;*THIS | S A SUBROUTINE TO CALCULATE CRC FOR THE FOUR ;*HEADER WORDS AND STORE THEM IN 'WCRC'' AND ‘‘GCRC'’ ;*R1 = REGISTER FOR CRC, INCREMENTED CRC VALUE IS HERE ;*R2 = THIS HAS BIT POSITION 2 VALUE C 7859 :*R3 - THIS HAS BIT POSITION 16 I.E. OUTPUT BIT VALUE B :*R4 - THIS HAS BIT POSITION 15 VALUE E :*$TMPO ;*$TMP2 :x$TMP3 :*$TMP4 :*$TMPS = NUMBER OF WORDS = NUMBER OF BITS PER WORD = 16 = TEMPORARY REG. = TEMPORARY REG TO TRANSFER CARRY = THIS HAS DATA BIT VALUE D ;*FETCH DATA BIT D ;*B =D XOR 16 ;»C =B XOR 2 B XOR 15 ;*ROTATE RIGHT ONE POSITION ;*B GOES TO POSITION 1 ;QE = ;*( GOES TO POSITION 3 ;*E GOES TO POSITION 16 ;*REPET 64 TIMES s*CALL s *X M 7881 7882 7883 7884 7885 7886 044026 044026 044030 044032 044034 044036 010046 012500 010146 010246 010346 7888 7889 044042 044044 005001 005037 7890 7891 044050 044056 CRC: 001210 012737 012037 000004 001204 7893 7894 7895 7896 7897 7898 7899 7900 7901 044070 044076 044102 044106 044112 044114 044120 044122 044124 013737 006037 006037 032701 001403 012703 000401 005003 063703 001204 001204 001210 000001 7903 7904 7905 044130 044134 044136 032701 001403 012702 040000 7906 7907 044142 044144 000401 005002 001176 001202 001206 16%: 156: MOV MOV MOV MOV MOV MOV CLR CLR MOV MOV MOV MOV ROR ROR BIT BEQ MOV BR CLR 100000 001210 ADD BIT BEQ 100000 3%: MOV BR CLR JSR RS ,a#CRC sFIRST LOCATION AT ;PUT CRC IN WCRC FOR READ GCRC FOR WRITE RO,-(SP) (RS)+,R0 ::PUSH RO ON STACK ;GET POINTER TO CYL WNO. R4 ,-(SP) R1 :2PUSH R4 ON STACK ;CLEAR WORKING LOCATION R1,=-(SP) R2,-(SP) R3,-(SP) NS TMPS ::PUSH R1 ON STACK ::PUSH R2 ON STACK ::PUSH R3 ON STACK #4 ,NSTMPO (RO) +,a#8TMP3 ;WORD COUNT : TEMPORARY WORD STORAGE a#$TMP3 a#sTMPS ;GET LSB INTO ''C*’ :GET ABOVE '‘C'" INTO $TMPS R3 ;GET POSITION 16 #16.,8TMP2 :BIT COUNT asSTMP3 ,a#8TMPS ; TEMPORARY WORD STORAGE #ITO,R1 1% S%IHS.RB a#$TMPS ,R3 #MIT14,R1 3% 2!21715.122 R2 ;IS POSITION 15 HIGH ;BRANCH IF POSITION 16 LOW JGET POSITION 16 :XOR POSITION 16 WITH D ;70 GIVE B ;1S POSITION 2 HIGH ;BRANCH IF POSITION 2 LOW ;GET POSITION 2 ;GET POSITION 2 SEQ 0185 SEQ 0184 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 044146 060302 044150 044154 044156 044162 044164 032701 001403 012704 000401 005004 060304 000002 044170 044174 044176 044200 044202 044206 044210 044214 044216 044220 044224 044226 044232 044234 044236 044242 044244 044250 044254 044256 044262 044264 044266 044270 044272 044274 044276 044300 006037 001206 044166 D 15 PAGE 187 MACY11 30A(1052) 27-JUL-78 12:41 CRC GENERATION ROUTINE 4%: ADD R3,Rc BIT #I1T1,R1 5%: 6%: BEQ MOV BR CLR ADD 100000 56 #MIT15,R4 6% R4 R3.R4 TST BMI BIC BR BIS TST BMI BIC BR 8IS 100000 020000 020000 TST 000001 13%: 14%: 001176 BMI BIC BR BIS DEC BNE DEC BNE MOV MOV MOV MOV MOV MOV RTS ;1S POSITION 15 HIGH ;BRANCH IF POSITION 15 LOW ;GET POSITION 15 ;GET POSITION 15 ;XOR POSITION 15 WITH B ;TO GIVE E ;GET LSB INTO ''C"' ;GET ABOVE C INTO R1 ;TEST B ROR ROR 100000 000001 001202 ;XOR B WITH POSITION 2 ;7O GIVE C ;BRANCH IF B=1 ;SET B IN POSITION 1 10 #BIT15,R1 R2 118 #BIT13,R1 12% #B8I1T13,R1 R4 13$ #B81T0,R1 14% ;SET B IN POSITION 1 SsTEST C ;BRANCH IF (=1 ;GET C IN POSITION 3 ;GET C IN POSITION 3 ;TEST E ;BRANCH IF E=1 ;GET E IN POSITION 16 ;GET E IN POSITION 16 ;BIT COUNTER ;BRANCH IF 16 NOT DONE #8170 ,R1 NS TMP? ;WORD COUNTER R1,a(RS)+ (SP)+ R4 (SP)+ ,R3 (SP)+ ,R2 (SP)+,R1 (SP)+,R0 RS ;BRANCH IF 4 NOT DONE ;PUT CRC WHERE DESIRED ;;POP STACK INTO R4 ;;POP STACK INTO R3 ;;POP STACK INTO R2 ;;POP STACK INTO R1 ;;POP STACK INTO RO ;*THIS IS A SUBROUTINE TO SET UP THE SIMULATOR DISK FOR ;*CYLINDER O (16 BITS PER WORD) ;*TRACK 1, SECTOR 1 J*KEY1 1 s*KEY2 1 ;*CRC THROUGH THE JSR RS5,a#CRC ;%256 WORDS OF 177400 010046 010146 010246 012700 : SETDSK 177400 ;*CALL JSR MOV MOV MOV RO,=(SP) R1,-(SP) R2,=(SP) MOV PC,a#SETDSK #177400,R0 ::;PUSH RO ON STACK ::PUSH R1 ON STACK ::PUSH R2 ON STACK :DATA IN THE DISK SEQ 0186 SEQ 0185 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 044314 044320 012701 012702 010022 005301 001375 012701 E 15 MACY11 30A(1052) 27=-JUL-78 12:41 CRC GENERATION ROUTINE 000400 051422 1%: 000021 2%: 005022 MOV MOV MOV DEC BNE MOV PAGE 188 ’256-.R1 #DISK,R2 RO, (R2)+ ;COUNTER ;START OF SIMULATOR DISK ;MOVE IN DATA ;COUNT FOR 256 JBRANCH IF 256 NOT COMPLETE ;2 ECC WORDS, 1 DATA GAP ;14 TOLERANCE GAP ;CLEAR ECC,DATA GAP AND ;s TOLERANCE GAP s COUNT :BRANCH IF NOT COMPLETE CLR DEC BNE ;*NOW SET UP FOR DISKLESS USE 010000 000001 000207 047504 047507 047506 047510 047512 047564 MOV MOVB MOVB MOV MOV MOV JSR CYL WCRC MOV MOV MOV RTS WHFMT22 ,a#CYL #1,a4SECOTR+1 #1,a#SECOTR #1,a4KEY] #1,a#KEY2 256. ,a#DAWORD RS .,a#CRC (SP)+ ,R2 (SP)+ ,R1 (SP)+,R0O PC :CYLINDER O (16 BIT WORDS) :TRACK=1 ;SECTOR=1 JKEY1=1 :KEY2=1 ;NO. OF DATA WORDS ;GO TO CALCULATE CRC ;FIRST CRC WORD ;PUT CALCULATED CRC ::POP STACK INTO R2 ;;POP STACK INTO R1 ;:POP STACK INTO RO SEQ 0187 SEQ 0186 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JuL-78 10:10 F 27-JUL-78 12:41 CRC GENERATION ROUTINE MACY11 30A(1052) 15 PAGE 189 s*THIS IS A SUBROUTINE TO CHECK HEADER COMPARE ERROR ;*(BIT #7) AND CRC ERROR (BIT #8) ;*CALL JSR RO,a#HCCRCE 010037 162737 004737 004737 002014 000004 042620 042654 062450 002014 HCCRCE: MOV JSR JSR -no COM IX@®DMI Y % % R % * % R % LEER R R 044430 044434 044442 044446 044452 044456 044460 044464 044466 044472 044474 044476 044502 044504 044510 % I . % RO,a#PCJSR #4 ,#PCJSR PC,a#CLDISK PC,a#CHECKT ,CPHALT 135160 TYPE HALT MOV MOV MOV 000001 TSTB MOVB €12077 135134 135116 MOV MOV 044514 044520 012077 012037 047514 135114 MOV MOV (RO) +,aRHBA (RO) +,a#X 044524 012777 014000 MOV #FMT22'ECI ,aRHOF 044532 044536 005037 004737 002006 047344 CLR JSR PC.,a#COMHD 104401 000000 011037 012011 012077 112046 105720 112066 105720 012677 001210 TSTB 135116 (RO) ,a#$TMP5 (RO) +,aR1 (RO) +,3RHCA (RO)+,-(SP) + (RO) (RO)+,1(SP) + (RO) (SP) + ,aRHDST (RO) +,aRHWC a#ERFLGS ; COMMAND-READ HEADER AND DATA =WRITE DATA : ER IND CYL s ;SECTOR ; TRACK ;WORD COUNT ;RHBA BUFFER START ;1=WRITE DATA O0=READ ;H=1 HEADER CHECK, H=0 CRC CHECK ;SAVE PC OF JSR+4 ;GET PC OF JSR sINIT AND SETUP GENERAL REG. ;CHECK THAT DVA,RDY,DPR,DRY = 1 ;AND THAT NO OTHERS = 1. CANNOT CON;STOP THE TEST :SAVE COMMAND : COMMAND s CYLINDER s SECTOR ;UP DATE RO : TRACK ;UPDATE RO s TRACK SECTOR ;NO. OF DATA WORDS +4 HEADER ;IF A READ HEADER AND DATA ;STARTING ADDRESS OF BUFFER :X=0 READ HEADER AND DATA :X=1 WRITE DATA ;16 BITS PER WORD ;ECC CORRECTION INHIBIT ;CLEAR ERROR FLAG ; COMMAND ;*IF THE PROGRAM COMES BACK HERE WITHOUT ERROR PRINTOUTS ;*FROM THE ''COMHD'' ROUTINE THAT MEANS SECTOR GAP, ;*FIRST SYNC, HEADER, HEADER CRC, HEADER GAP AND ;*SYNC BYTE HAVE GONE BY AND SYNCS WERE CORRECTLY s*DETECTED ;*HEADER AND DATA ARE TO BE CHECKED. 044542 044546 044552 044554 044560 004737 005737 001034 005737 001015 042224 002006 047514 JSR TST BNE TST BNE PC,a#PUTREG a#ERFLGS 108 asx 3% ;SAVE REGISTERS ;ANY ERRORS ALREADY THERE sBRANCH IF YES ;IS THIS A READ ;IF A WRITE DATA BRANCH SEQ 0188 SEQ 0187 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 G 15 PAGE 190 MACY11 30A(1052) 27-JUL-78 12:41 CRC GENERATION ROUTINE ;*NOW THE READ BUFFER WILL BE CHECKED ;*HEADER SHOULD BE COMPLETELY READ AS WRITTEN ;*NO DATA WORDS SHOULD BE READ ;*REINTO BUFFER HAS BEEN FILLED WITH 0 ;*WRFROM BUFFER HAS BEEN FILLED WITH EXPECTED DATA 044562 044566 044570 044572 044574 044576 044602 044604 044606 004037 002110 003154 000400 044602 044606 044644 JSR 043514 WRFROM REINTO RO,a#COMPAR 1% sRETURN POINT FOR ERROR HEADER 2% 104004 1%: 104005 2%: 000207 ERROR JRETURN POINT FOR ERROR DATA 4 RTS PC ERROR .GOOD DATA ;TEST BUFFER ;4 HEADER 252 DATA 256. 108 s CHECK 5 044610 000207 RTS PC 044612 000414 BR 108 JRETURN FOR GOOD COMPARISON sREAD NEXT ERROR 5 JRETURN TO COMPARISON SUBROUT INE ;WORD NO 1 THRU 4 ARE sHEADER WORDS AND HENCE ;SHOULD BE READ AS WRITTEN ON ;DISK, WORD NOS. 5 ONWARDS ;SHOULD NOT BE READ AND HENCE ;READ INTO BUFFER ;SHOULD BE UNCHANGED JRETURN TO COMPARISON ;JUMP OUT ;*NOW THE DISK WILL BE CHECKED ;*NO DATA SHOULD BE WRITTEN ;*REINTO BUFFER HAS BEEN FILLED WITH EXPECTED DATA ;*DISK HAS BEEN FILLED WITH 177400 ;*WRFROM HAS BEEN FILLED WITH 125252 044614 044620 044622 044624 044626 044630 044632 044634 044636 044640 004037 003154 051422 3%: 000400 044634 044640 044644 JSR REINTO g§gK 4% 5% 108 ERROR 104004 A ¥ 104005 5%: RTS ERROR 10%: RTS TST 000207 044666 000207 005720 001442 022737 001417 017737 022737 044674 044676 001470 013737 044642 044644 044646 044650 044656 043514 000072 001210 CMP 134756 000200 001126 001126 MOV CMP 001642 042270 BEQ MOV RO,a#COMPAR 4 PC 5 PC (RO)+ 6% #72 ,a48TMPS 11$% @RHER1,a#$BDDAT #HCE ,a#$BDDAT s CHECK ;GOOD DATA BUFFER ;TEST BUFFER JRETURN POINT FOR ERROR HEADER JRETURN POINT FOR ERROR DATA sRETURN POINT FOR GOOD COMPARISON sREAD NEXT ERROR 5 JRETURN TO COMPARISON SUBROUT INE ;WORD NO ARE ALL DATA ;WORDS THE SHOULD NOT sHAVE BEEN CHANGED BY THE ;WRITE COMMAND sRETURN TO COMPARISON SUBROUTINE ;IS THIS A HCRC ON HCE CHECK? sBRANCH IF HCRC ;1S THIS A READ COMMAND ;BRANCH IF YES ;TEST DATA ;ONLY HEADER COMPARE BIT? ;SHOULD BE SET 7% sBRANCH IF GOOD @#RHER1,a#REGADR ;REGISTER ADDRESS RHERI SEQ 0189 SEQ 0188 CZRIGCO,.RPO4/5/6 DSKLS CTRLRT CZRJGC.P11 26=JUL=78 10:10 8099 044704 012737 044714 000460 044716 044724 017737 022737 134720 100200 001126 001126 8108 8109 044732 044734 001451 013737 001642 062270 8111 8112 044750 104027 8100 8101 8102 8103 8104 8105 8106 8107 8110 044712 044716 044742 104027 012737 8113 044752 000441 8114 8115 8116 8117 8118 8119 8120 8121 8122 044754 044762 044764 044772 045000 045002 045010 045016 022737 001417 017737 022737 001426 013737 012737 104027 8123 045020 000416 000200 H 15 MACY11 30A(1052) 27-JUL=78 12:41 CRC GENERATION ROUTINE 100200 001124 001124 000072 001210 134652 000400 001126 001126 001642 000400 042270 001124 g}gg 045022 017737 134614 001126 8126 8127 8128 8129 8130 8131 8132 8133 g};g 045030 022737 100400 045036 045040 001407 012737 100400 045056 000200 045046 045054 013737 104027 001642 12%: 8150 8151 8152 8153 8154 7% MOV CMP ARHER1,a#$BDDAT ;TEST DATA #DCK'HCE ,a#$BDDAT ;ONLY HEADER COMPARE BIT? BEQ MOV 7% *BRANCH IF GOOD SHRHER1,@¥REGADR ;REGISTER ADDRESS RHERT ERROR 27 B8R CMP BEQ MOV CMP BEQ B8R 27 :GOOD DATA *AFTER AN ERROR ON THE *HEADER ONLY HCE SHOULD *BE SET ;SHOULD BE SET *DCK IS SET BECAUSE ECC IS NOT READ #DCK 'HCE ,a#$GDDAT 7% #72,48TMPS ;GOOD DATA :AFTER AN ERROR ON THE *HEADER ONLY HCE SHOULD :BE SET ;IS THIS A READ COMMAND? 12$ *BRANCH IF A READ aRHER1 ,a#$8DDAT ;TEST DATA #HCRC ,a#$BDDAT -ONLY CRC ERROR SHOULD BE THERE 7% SMRHER1,@#REGADR ;REG. ADDR = RHER1 :GOOD DATA 27 ;AFTER A CRC ERROR ONLY CRC *SHOULD BE SET #HCRC,a#$GDDAT 7% *BRANCH OUT MOV ARHER1,a#$BDDAT :TEST DATA 001126 CMP 001124 BEQ MOV #DCK'HCRC ,a#$8DDAT ;HCRC AND DCK SHOULD BE SET -DCK IS SET BECAUSE ECC IS NOT READ 7% *BRANCH IF GOOD #DCK 'HCRC ,a#$GDDAT ; GOOD DATA Q#RHER1T,@#REGADR: FAILING REGISTER RHER1 27 ;AFTER A CRC ERROR ON A READ *DCK AND HCRC SHOULD BE SET *DCK IS SET BECAUSE ECC IS NOT READ RO ‘RETURN TO MAIN TEST 042270 MOV ERROR 7%: 8138 8139 8140 8146 8147 g}zg BR MOV MOV ERROR 8136 8137 8141 8142 8143 8144 8145 #HCE .a#SGDDAT MOV 6%: SEQ 0190 SEQ 0189 MOV ERROR 118: PAGE 191 RTS ;*THIS IS A SUBROUTINE TO LEAVE AT THE MIDDLE OF :*A WRITE HEADER AND DATA COMMAND “«IT TRYS TO GET SECTOR 10, TRACK 0, CYLINDER 0 : 045060 MIDDLE: 045060 045062 045064 010046 010146 013777 002064 045072 045100 045106 045114 012777 012777 012777 052777 177766 002110 000010 000010 045122 012777 010000 “«BUT COMES OUT AFTER ONE SECTOR ;*THE COMMAND OS JSR PC,a#MIDDLE *+BA] IS SET 134546 MCV MOV MOV RO,-(SP) ::PUSH RO ON STACK R1,-(SP) ::PUSH R1 ON STACK AHWRIFOR,ARHCS1 :?“‘;fc2$A°f" AND DATA=62 134532 134526 134530 134514 MOV MOV MOV BIS #-10. , BRHWC #WRFROM,QRHBA #10,aRHDST #BA], BRHCS2 134520 MOV #FMT22 ,9RHOF +IN RH 210 WORDS :BUS ADDRESS=WRFROM *DESIRED TRACK=0 SECTOR=10 “BUS ADDRESS INCREMENT INHIBIT :FORMAT 16 BIT WORDS c2 Z | | | | | | | | | ‘ CZRJGCO,RP04/5/6 DSKLS CTRLR1T CZRJGC.P1 26=JUL-78 10:10 8155 8156 8157 8158 8159 8160 8161 8162 045130 045134 005077 012737 8163 8164 045142 045150 045156 045162 045164 012777 052777 004137 000000 012601 8166 045170 000207 8165 8167 8168 045166 134516 000001 000001 000001 053552 I 15 MACY11 30A(1052) 27-JuL-78 12:41 CRC GENERATION ROUTINE C.R MCy 045162 134510 134462 MID: 012600 8170 8172 aRHCA #1,34M.D #DMD , aRHMR #GO,aRHCS1 R1,a#SEARCH O (SP)+,R1 RTS PC .SBTTL JAM CURRENT CYLINDER ROUTINE (SP)+,R0O :SECTOR ::POP STACK INTO R1 ::;POP STACK INTO RO :*THIS SUBROUTINE WILL CHANGE THE CURRENT CYLINDER REGISTER :*THIS IS DONE BY GIVING A SEEK COMMAND THEN AN INIT 8177 :*CALL IS g}gg 2*XC :*WHICH WILL LOAD THE CURRENT CYLINDER WITH THE DESIRED CYLINDER VALUE 8178 8181 :*JSR 8182 045172 8184 8185 8186 8187 045174 045200 045206 045210 8183 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 g%qg 045172 045214 045220 045226 045234 045242 045244 045246 045250 045252 045256 045264 045270 045272 045276 045304 045306 045306 045310 010546 010037 162737 012005 010577 005077 013777 012777 052777 000240 000240 000240 000240 004737 017737 020537 001406 010537 013737 104030 012605 000200 MAKECYL: 002014 000004 002014 134436 134424 002072 000001 000001 134412 134424 134376 042620 134414 001126 001124 001676 RO,a#MAKECYL :DESIRED VALUE OF CURRENT CYLINDER MOV RS,=-(SP) CLR ARHDST A#SEECOM,aRHCST #DMD , aRHMR #G0,aRHCS1 MOV SuB MOV MOV MOV MOV BIS NOP NOP NOP NOP JSR MOV CMP BEQ MOV MOV 001126 042270 ERROR 1%: MOV RO,a#PCJSR #4 ,a#PCJSR (RO) +,RS RS,aRHCA ::PUSH RS ON STACK :PC OF JSR+4 :SAVE PC OF USR :GETTING READY TO FILL DESIRED CYLINDER :FILL DESIRED CYLINDER REGISTER :MAKE SURE DESIRED SECTOR TRACK IS NOT ILLEGAL ;FILL SEEK COMMAND :SET DIAGNOSTIC mMODZ ;GO TO SEEK :ALLOW TIME FOR SEEK TO HANG UP :ALLOW TIME FOR SEEK TO HANG UP :ALLOW TIME FOR SEEK TO HANG UP :ALLOW TIME FOR SEEK TO HANG UP PC,a#CLDISK ;GIVE INIT @aRHCC ,a#$BDDAT ;TEST DATA RS ,a#$BDDAT :COMPARE CURRENT CYLINDER 1% :BRANCH IF GOOD RS ,a#SGDDAT :GOOD VALUE OF RHCC A#RHCC ,a#REGADR :FAILING REGISTER ADDRESS 30 :CURRENT CYLINDER DOES NOT MATCH DESIRED CYLINDER :REGISTER AFTER A SEEK AND AN INIT (SP)+,RS c2l c2l ‘ : | | | | | | | | | | 8173 8174 g};g SEQ 0191 SEQ 0190 ;CYLINDER=0 :SECTOR IS SET TO 1 SO THAT :WE CAN GET OUT AT THE :MIDDLE OF AN OPERATION :LOOKING FOR SECTOR 10 ;SET DIAGNOSTIC MODE :GO TO RHCS1 WITH 62 MOV BIS JSR .WORD MOV MOV 8169 PAGE 192 ::POP STACK INTO RS RTS RO .SBTTL ECC GENERATION AND COMPARISON ROUT INE CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PT 26=JUL-78 10:10 8211 8212 8213 8214 8215 8216 8217 J 15 PAGE 193 MACY11 30A(1052) 27-JUL-78 12:41 ECC GENERATION AND COMPARISON ROUTINE ;*THIS SUBROUTINE GENERATES AND TESTS ECC JSR PC,ECTEST s *CALL =100000 =40000 =20000 =10000 =4000 =2000 =1000 =400 =200 =100 8254 045312 8258 045314 ECDATA: 0 000000 GECC1: 0 ;DATA BIT FOR ECC ;IF ALL ONES THEN CURRENT BIT IS A ONE ;IF ZERO THEN CURRENT BIT IS A ZERO :LO? ORDER ECC WORD TO BE GENERATED HERE . ! 8261 045316 000000 GECC2: 0 :HégH ORDER ECC WORD TO BE GENERATED HERE 8264 045320 000000 TSECCG: 0 ;1F =177777 GENERATE AND TEST ECC FOR THIS BIT ;IF =0 DO NOT GENERATE AND TEST ECC FOR THIS BIT SEQ 0192 SEQ 0191 czl czl i P, e e e ; TEMPORARY HARD ERROR COUNT HADTMP: 0 P3: 0 P12: 0 P22: 0 P24 : 0 e e e o O P ICODE: B 000000 . 045334 ;DATA ENVELOPE FOR TYPE OUT ;MAX FOR WRITE IS 4096 ;MAX FOR READ IS 4128 ;LEADING ZEROS ENVELOPE FOR TYPE OUT ;THIS IS SHUT OFF WHEN POSITION COUNTER ; IN ENABLED sMAX COUNT IS 38859 S, DATENV: O :TRUE COUNT IS 4128 BUT AS COMPARES ARE ;DONE ONE STAGE LATER SO 4129 B 000000 ;HARD ERROR COUNT S 045332 ;POSITION REGISTER S ; TEMPORARY N CODE M NCOUNT: 0 POSITI: O HARDER: 4129. o 113713 000000 000000 010041 i 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 :N-CODE WORD 38859. 045322 045324 045326 045330 e 8270 NCODE: CZl czl e 8267 8268 8269 SEG 0193 SEQ 0192 MACY11 30A(1052) 27-JUL-78 12:41 PAGE 194 ECC GENERATION AND COMPARISON ROUTINE o CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26~JuL-78 10:10 K 15 010046 010146 010246 010346 010446 010546 013701 013702 005737 001406 ECTEST: 045314 045316 045312 MOV MOV MOV MOV MOV MOV MOV MOV ST BEQ RO,-(SP) R1,=(SP) R2,=(SP) ;;PUSH RO ON STACK ;;PUSH R1 ON STACK ::PUSH R2 ON STACK R4 ,-(SP) R5,=(SP) ;:PUSH R4 ON STACK :;PUSH R5 ON STACK R3,-(SP) a#GECCT R a#GECC2,R2 a#ECDATA :;PUSH R3 ON STACK 2% ;*IF CARRY IS NCT ZERO THEN D=1 ;*INVERT X32 TO GIVE RO 045402 045404 045410 045412 045414 010103 052703 005103 010300 000404 045416 045420 045424 010103 042703 010300 045426 045430 045432 000241 006000 006000 177776 177776 1%: 2%: 3%: MOV BIS CoM MOV BR R1,R3 Q;CPIESZ.R3 R R3.RO 3% ;*IF CARRY IS ZERO THEN D=0 :*X32 BECOMES RO MOV BIC MOV CLC ROR ROR #~CPIE32.R3 RO RO sECCT WORD sECC2 WORD ;IS CURRENT BIT A ONE ;BRANCH IF CURRENT DATA D=0 ] 177737 045342 045342 MOV BIS COM MOV ASR ;*INVERT Xx21 173777 MOV BIS R1,R3 ;;CPIE21.R3 045344 045344 MOV ASR R3,a#P2?2 P22 COM 045346 045346 ASR R1,R3 #~CP1E23,R3 R3 R3,a#P24 P24 ;*NOW THAT RO FOR POSITION 1 i g ;TM :® P3 FOR POSITION 3 P12 FOR POSITION 12 P22 FOR POSITION 22 P24 FOR POSITION 24 005000 053700 053700 042701 050001 000404 120020 045344 045346 002400 RO P22 RO a#P3 RO #P12,RO #PIE1IPIE3!PIE12,R2 RO.R2 a#P4 RO BIC 2 ' PIE24,R1 #PIE2 BR 12$ BIS RO,R1 ~ TM ~N Pt B B B, B . B, S, B . B LM CLR BIS BIS BIS BIS BIC BIS o 045340 045342 R2 R1 M 053700 053700 042702 050002 ROR ROR L 006002 L 4 ;*ARE KNOWN THE ROTATE WILL BE DONE AND ;*THESE BITS JAMED IN e MOV BIS CoM MOV m e 176777 L 010103 052703 005103 010337 006237 e m ;*INVERT Xx23 e e 010103 052703 005103 010337 006237 P S, R2,R3 #~CPIE11,R3 R3 R3,a#P12 a#P12 S 010203 052703 005103 010337 006237 . s*INVERT X11 . M. M. R2 ,R3 #~CPIE2,R3 R3 R3,a#P3 a#P3 — 045340 045340 MOV BIS COM MOV ASR s 137777 ;BRANCH IF RO=0 . 108 ;*INVERT X2 e 010203 052703 005103 010337 006237 RO s 045440 045442 045446 045450 045454 TST BEQ CZF e 005700 001462 EQ 0194 SEQ 0193 e 045434 045436 L 15 PAGE 195 MACY11 30A(1052) 27-JUL-78 12:41 ECC GENERATION AND COMPARISON ROUTINE e CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJIGC.P1T 26=JUL-78 10:10 m1S MACY11 30A(1052) 27-JUL=78 12:41 PAGE 196 ECC GENERATION AND COMPARISON ROUTINE 8379 8380 8389 8390 ggg; 045604 006002 045606 006001 045610 042702 100000 045614 010137 045314 045620 010237 045316 045624 005737 045320 045630 001432 8395 8396 8397 045632 045640 045642 032777 001005 032777 8399 8400 8401 8402 8403 8404 045652 000421 108: 12%: 8398 8405 8406 045650 045654 045656 045662 045666 001401 010146 042716 022677 001404 000400 133300 000100 133270 8407 045670 004737 042224 8409 045676 8410 045700 8411 045706 8412 8413 045710 000407 023777 001403 045326 004737 042224 8408 8414 8415 8416 045674 045714 ROR ROR BIC MOV MOV TST { { § § { § R2 R1 #PIE1,R2 R1,a#GECCT R2,a#GECC2 a#TSECCG 148 :BRANCH IF HARDWARE NOT TO BE CHECKED ;1S SWITCH 8 SET :BRANCH IF SW8 IS SET ;1S SWITCH 6 SET B8R 14% :IF SWITCH 8 IS NOT SET AND :SWITCH 6 IS SET THEN :DO NOT DO COMPARES :GOOD PATTERN REGISTER :GET ONLY PATTERN BITS :COMPARE PATTERN REGISTER MOV BIC cMP 15% R1,-(SP) #174000, (SP) (SP)+,3RHE(C2 138 :«TO SAVE TIME JSR ERROR 13%: :1F =1777777 TEST HARDWARE :1F = 0 DO NOT TEST HARDWARE #SW8,aSWR 15% #SW6, ASWR BEQ 133762 :SAVE ECC1 :SAVE ECC2 :1S HARDWARE TO BE CHECKED BIT BNE BIT BEQ 104035 104035 : :*(HECK HARDWARE 15%: 174000 134004 PC,a#PUTREG 35 BR 148 cMP a#POSITI,ARHECT BEQ 148 :*TO SAVE TIME JSR PC.a#PUTREG ERROR 35 w; :BRANCH IF Swé IS NOT SET :BRANCH IF GOOD :SAVE REGISTERS :PATTERN REGISTER IN 11 BITS IN ERROR :BRANCH OUT ;COMPARE POISTION REGISTER :BRANCH IF GOOD :SAVE REGISTERS :POSITION REGISTER IN ERROR :"DATA ENVLOP'' GIVES NUMBER OF CLOCK :PULSES FROM BEGINING OF COMMAND :THAT IS THE CLOCKS IN THE R/W DATA FIELD ENVELOPE 8419 gg? :IN A WRITE THERE ARE 10000 OCTAL CLOCKS :IN A READ THERE ARE 10040 OCTAL CLOCKS 8422 8423 8424 g:gg 2 :*N=-CODE ZEROS'' GIVE THE NUMBER OF CLOCKS : GIVEN FOR THE LEADING ZEROS FIELD :MAX COUNT IS 113713 OCTAL 8427 8428 8429 : :"'GOOD POSITION'' GIVES NUMBER OF CLOCKS :GIVEN AFTER LEADING ZEROS WHICH IS FOR THE DATA :FIELD ggg 8432 8433 8434 :MAX COUNT IS 10040 OR 10041 OCTAL 045716 045716 012605 14%: ¢ ;%SO AFTER ROTATE RO GETS PUT INTO POSITION 1 BEQ 8393 8394 { :*THE PROGRAM [OMES MERE IF RO=0 ggg; 8383 8384 8385 8386 8387 8388 SEQ 0195 SEQ 0194 MOV (SP)+,RS ::POP STACK INTO RS i § 8435 8436 8437 8438 8439 8440 MACY11 30A(1052) 27-JuL-78 12:41 PAGE 197 ECC GENERATION AND COMPARISON ROUTINE 045720 012604 MOV (SP) + R4 045732 000207 RTS PC 045722 045724 045726 045730 012603 012602 012601 012600 MOV MOV MOV MOV (SP)+,R3 (SP)+,R2 (SP)+,R1 (SP)+,RO SEQ 0196 SEQ 0195 ;;POP STACK INTO Ré& :;POP STACK ;;POP STACK ::POP STACK ;;POP STACK INTO R3 INTO R2 INTO R1 INTO RO —_;Qflmofimll"Rg——xoflmonmzjr-uc_.-zommofimzjr'xg_-:o-wmonmzjr'flc.—zoflmcfiw CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.PN 26=JuL-78 10:10 N 15 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10:10 B 16 MACY11 30A(1052) 27-JuL-78 12:41 PAGE 198 ECC GENERATION AND COMPARISON ROUTINE SEQ 0197 SEQ 0196 ;*THIS SUBROUTINE WILL CONTROL THE ECC GENERATION ROUTINE ;*FOR ERROR CORRECTION PROCESS PC,a#ECORR ;*CALL JSR, 000000 010037 162737 012037 010146 013701 012711 005037 002014 000004 045734 005737 001007 005337 045326 001001 000403 005237 000420 002014 JEXPECTED POSITION REGISTER WHEN CORRECTION IS COMPLETE o XP ERPOS: O ECORR: MOV SuB MOV MOV MOV MOV CLR RO,a#PCJSR #4 ,aPCJSR (RO)+ a#ERPOS R1,-(SP) a#RHMR , R1 #DMD ,aR1 a#ECDATA ;SAVE PC OF JSR + & ;SAVE PC OF JSR ;GET POSITION REG. WHEN CORRECTION IS COMPLETE ;;PUSH R1 ON STACK sMAIMTENANCE REGISTER ;SET DIAGNOSTIC MODE BIT ;ECC DATA IS ZERO 1%: TST BNE DEC BNE BR INC BR a#POSITI 2% a#NCOUNT 6% 2% ;1S SOFTWARE POSITION NON ZERO sBRANCH IF N-CODE S COMPLETE ;DECREMENT N-CODE ;BRANCH IF N-CODE IS NOT COMPLETE ;BRANCH AS N-CODE IS COMPLETE 001660 000001 045312 045324 001415 032711 001016 BEQ BIT BNE ; INCREMENT CLOCKS GIVEN FOR LEADING ZEROS ;BRANCH AS N-CODE IS NOT COMPLETE ;GO TO GIVE CLOCK AND TEST ECC a#POSITI ; INCREMENT SOF TWARE POSITION SERPOS,a#POSITI:HAVE ENOUGH CLOCKS BEEN GIVEN TO DETECT ERROR 3% ;BRANCH IF MORE CLOCKS TO BE GIVEN FHADTMP ,a#POSITI;HAVE ENOUGH CLOCKS BEEN GIVEN FOR HARD ERROR ;THAT IS HAVE 4128 MORE CLOCKS BEEN GIVEN 5% :BRANCH IF YES ;CHECK ZERO DETECT BIT IN RHMR #ZER,aR1 ;BRANCH IS ZER SET 4% 004737 JSR ERROR PC ,a#PUTREG 34 ;SAVE REGISTERS ;ZERO DETECT BIT NOT HIGH BIS BIC JSR AMCLK ,aR1 AMCLK ,aR1 PC,a#ECTEST ;SET CLOCK ;CLEAR CLOCK ;GO TO GENERATE AND TEST ECC 005237 023737 103012 023737 6%: ;POSITION REG. WHEN CORRECTION IS COMPLETE 045334 045326 045734 045326 045336 045326 2%: ;*TO SAVE 104034 052711 042711 004737 000737 INC CMP BHIS tMP a#ZCODE 3% 3%: BR TIME 1% SWHEN 21 BITS IN ECC 32 BIT REGISTER IS s CONT INUE ;*THIS EXTRA CLOCK IS TO BRING ECH HIGH ;*AFTER THIS CLOCK POSITION REGISTER MAY BE 10040 OR 10041 OCTAL 052711 042711 5%: BIS BIC A#MCLK ,aR1 AMCLK ,aR1 ;SET CLOCK ;CLEAR CLOCK O CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 A ¥ 012601 000200 MOV RTS (SP)+,M RO ;;POP STACK INTO R1 ;*THIS SUBROUTINE GENERATES THE ECC FOR WHAT IS ON DISK AND INSERTS THEM ;*ON LOCATIONS 'DISK+1000' AND ‘DISK+1002"" FILLELS 010046 010146 010246 MOV RO,=(SP) MOV R5,=(SP) MOV MOV MoV MOV 045326 045314 045316 051422 000400 000020 CLR CLR CLR 9%: ; 177777 045312 045350 045314 045316 0%: 045312 i 046104 046104 046106 N Ll 8497 8498 8499 8500 C 16 PAGE 199 12:41 30A(1052) MACY11 27-JUL-78 ECC GENERATION AND COMPARISON ROUTINE *hw * kR 3 ;BRANCH IF DATA BIT IS ZERO ;ECC DATA BIT IS A ONE ;BRANCH TO GENERATE ECC ;ECC DATA BIT IS A ZERO ;GO TO GENERATE ECC ;DECREMENT BIT COUNT ;BRANCH IF 16 BITS NOT DONE ;DECREMENT WORD COUNT R4 .SBTTL . 11% #-1,a#ECDATA 12% a#ECDATA PC,a#ECTEST R3 108 R2 ROR BCC MOV BR CLR JSR DEC BNE DEC ;:PUSH R1 ON STACK ;;PUSH R2 ON STACK ;:PUSH R3 ON STACK ::PUSH R4 ON STACK :;PUSH RS ON STACK #16..R3 (R1)+,R4 a#GECC2 #DISK,R1 #256. ,R2 MOV MOV ;:PUSH RO ON STACK ;CLEAR POSITION ;CLEAR GECC1 ;CLEAR :POINTER TO DATA FOR ECC GENERATION :COUNTER FOR NUMBER OF DATA WORDS :COUNTER FOR NUMBER OF BITS PER WORD ;DATA IN R4 a#POSITI a#GECC] MOV MOV BNE MOV MOV MOV MOV MOV MOV MOV g?g 052422 052424 R1,-(SP) R2,=(SP) R3,-(SP) R4 ,=(SP) ;GET ONE DATA BIT IN CARRY 9% ;BRANCH IF 256 WORDS NOT DONE AWGECCT,aNDISK+<256.%2>; INSERT ECC1 ON DISK SHGECC2,a#DISK+<257.%2>; INSERT ECC2 ON DISK (SP)+ ,R5 ;;POP STACK INTO RS (SP)+ R4 ;;POP STACK INTO Ré (SP)+,R3 ;;POP STACK INTO R3 (SP)+,R2 ;;POP STACK INTO R2 (SP) +,R1 ;;POP STACK INTO R1 ;gP)*,RO ;;POP STACK INTO RO RH BASE ADDRESS CHANGE ROUTINE THIS ROUTINE WILL ALLOW THE CHANGE OF THE BASE ADDRESS FROM 176700 TO ANY TYPED VALUE SEQ 0198 SEQ 0197 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10:10 046244 046244 046250 104401 000425 013746 104402 104401 000425 004737 104412 012700 012701 012737 021637 001407 005776 163716 061620 104401 104401 000416 013746 104402 104401 000416 013746 104402 104401 BASECH: 045252 001640 001640 000000 001640 046470 BR JSR RDOCT MOV MOV MOV CMP 000004 1%: 001626 046654 001640 046724 047040 047130 000200 047220 047236 046244 ADTIMO: PC,a#STKINT ;;TYPE ASCIZ STRING ;;GET OVER THE ASCIZ (SP)+ ,a#RPVEC :SETUP VECTOR ADDRESS ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ .75% ;:TYPE ASCIZ STRING ;:GET OVER THE ASCIZ 778 76$ 79% ;:TYPE ASCIZ STRING TYPE BR TYPE BR MOV TYPOC TYPE .81% 80s .83$ 82% ;. TYPE ASCIZ STRING ,85% 84% a#BEGIN ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ :0K, NOW START OVER WITH NEW ADDRESS TYPE BR CMP JMP ,65% 643 ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ :RESTORE THE STACK ;AND DO IT AGAIN. TYPE BR MOV BR 047052 ::TYPE ASCIZ STRING ::GET OVER THE ASCIZ ;INITIALIZE THE TTY KEYBOARD 718 708 BNE MOV TYPOC TYPE BR TYPE 046774 ,67% 663 ;:TYPE ASCIZ STRING ::GET OVER THE ASCIZ ADD DEC BR 001626 ;2TYPE ASCIZ STRING ;:GET OVER THE ASCIZ ;GET READY TC TYPE OLD BASE .69% 68% Su8 TYPOC TYPE BR RDOCT MOV TYPE BR MOV TYPOC TYPE 046542 ,65% 648 a#RHCST,-(5P) a0(SP) a#RH(CS1,aSP asSP, (RO) + R1 2% TST 2%: 12:41 ;GET STARTING ADDRESS OF REGISTERS ;NUMBER OF REGISTERS ;SET UP TO CHECK NEW ADDRESS ;NEW CSR? sNO=-SKIP NEXT sACCESS THE NEW ADDRESS ;GET THE ADDRESS OFFSET ;AND PLUG IT IN ;DONE ALL OF THEM YET? :NOT YET, SO DO MORE BEQ 001626 004240 TYPE BR TYPOC TYPE 055176 001630 000026 047230 27-JUL-78 MOV 046340 005301 001375 000417 013746 104402 104401 000437 104412 012637 D 16 PAGE 200 RH BASE ADDRESS CHANGE ROUTINE MACY11 30A(1052) BR JMP #RHDB ,RO #22. ,R1 #ADTIMO ,a#é ?iP.afiRHCS1 a#RPVEC,-(SP) .73% 72% @#RHCS1,-(SP) 74% a#RPVEC,-(SP) 78% #RA,-(SP) (SP)+,(SP)+ A#BASECH ;GET READY TO TYPE OLD VECTOR ADDRESS ;;GET OVER THE ASCIZ ;;TYPE ASCIZ STRING ;;GET OVER THE ASCIZ ;.GET OVER THE ASCIZ ;:TYPE ASCIZ STRING ;.GET OVER THE ASCIZ S€e 0199 SEQ 0198 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 27-JUL=78 MACY11 30A(1052) E 16 PAGE 201 12:41 SEQ 0200 SEQ 0199 RH BASE ADDRESS CHANGE ROUTINE 8609 8610 8611 8612 8613 8614 ;*THIS IS A LITTLE ROUTINE THAT TESTS NED BIT 11 ;*THIS LOOPS HERE FOR EVER ;*TO BE USED ONLY IF DRIVES PRESENT LOOKING AT NED DOES NOT AGREE 8615 8616 8617 8618 IN RHCS2 047314 047316 047322 047326 047330 047334 047336 047340 000000 004737 013712 005714 032712 001401 000773 000772 ;*WITH WHAT 042620 047314 010000 ERUNIT: O ERSTART:JSR 1%: 2%: MOV TST BIT BEQ BR BR IS REALY THERE PC,a#CLDISK @¥ERUNIT ,aR2 aR4 #NED ,aR2 2% 1% 1% JUNIT UNDER MANUAL TEST ;SET GENERAL REG. sSELECT UNIT ;TEST RHER1 sTEST NED ;BRANCH IF GOOD ;NED NCT SET ;NED SET MACY11 30A(1052) 27-JuL-78 F 16 12:41 PAGE 202 RH BASE ADDRESS CHANGE ROUTINE .SBTTL DISK SIMULATION ;*IN A WRITE HEADER AND DATA COMMAND FILL THE FOLLOWING ;*WCLY=WITH CYLINDER TO BE ON DISK ;*WSECTR=WITH SECTOR AND TRACK TO BE ON DISK ;*WKEY1= WITH KEY1 TC BE ON DISK ;*WKEY2= WITH KEY2 TO BE ON DISK ;*FNWORD= NO OF DATA WORDS TO BE WRITTEN ON DISK ;*THE COMMAND THEN IS JSR PC,COMWHD % ;' .'. . % ;*IN A WRITE DATA COMMAND FILL THE FOLLOWING ;*CYL=WITH CYLINDER TO BE FOUND ON DISK ;*SECOTR= WITH SECTOR AND TRACK TO BE FOUND ON DISK ;*KEY1= WITH KEY1 TO BE FOUND ON DISK ;*KEY2= WITH KEY2 TO BE FOUND ON DISK ;*X= 1 MUST BE ONE ;*NOWORD= WITH NUMBER OF DATA WORDS TO BE WRITTEN ;*THE COMMAND THEN IS JSR PC,COMHD * » % % » . * ;*IN A READ HEADER AND DATA COMMAND FILL THE FOLLOWING ;*CYL= WITH CYLINDER TO BE FOUND ON DISK ;*SECOTR= WITH SECTOR AND TRACK TO BE FOUND ON DISK ;*KEY1= WITH KEY1 TO BE FOUND ON DISK ;*KEY2=WITH KEY2 TO BE FOUND ON DISK ;*DAWORD= WITH NUMBER OF WORDS TO BE FOUND ON DISK ;*;X=0 MUST BE ZERO ;*THE COMMAND THEN IS JSR PC,COMHD * % % % % % %= * E CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 ;*IN A READ DATA COMMAND FILL THE FOLLOWING ;*CYL= WITH CYLINDER TO BE FOUND ON DISK :*SECOTR= WITH SECTOR AND TRACK TO BE FOUND ON DISK :*KEY1= WITH KEY1 TO BE FOUND ON DISK ;*KEY2=WITH KEY2 TO BE FOUND ON DISK :*DAWORD= WITH NUMBER OF WORDS TO BE FOUND ON DISK ;*:X=0 MUST BE ZERO ;*THE COMMAND THEN IS JSR PC,COMHD - % SEQ 0201 SEQ 0200 CZRJGCN,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1T 26=JuL-78 10:10 MACY11 30A(1052) 27-JuL-78 DISK SIMULATION G 16 12:41 PAGE 203 ;*WRITE DATA COMMAND ;*OR READ COMMAND I.E DATA ONLY OR HEADER AND DATA ;**THIS SUBROUTINE IS THE FIRST IN A SERIES OF NESTED SUBROUTINES :"Iéolsg??f DIAGNOSTIC MODE, AN EXTRA DIAGNOSTIC INDEX, AND THE can! 0 ;*=]T THEN CALL THREE OTHER SUBROUTINES, WHICH IN TURN CALL OTHER THESE ARE: ;**SUBROUTINES. Ja Ik e S 000000 011637 162737 010046 010146 010246 010346 010446 010546 RUNCTR: 002014 COMHD: .WORD MOV SuB MOV O (SP) ,a#PCJSR #4 ,a#PCJSR RO,~(SP) :SAVE PC OF JUSR + 4 ;SAVE PC OF JSR ;:PUSH RO ON STACK MOV MOV MOV R1,-(SP) R2,=(SP) R3,-(SP) R4 ,-(SP) R5,-(SP) ::PUSH R3 ON STACK ;:PUSH R4 ON STACK :2PUSH RS ON STACK #DMD , 3RHMR ;SET DIAGNOSTIC MODE MOV MOV ::PUSH R1T ON STACK ;;PUSH R2 ON STACK 012777 052777 042777 052777 000001 000004 000004 000001 132260 132252 132244 132216 MOV 012737 000113 047342 RUNWAT: MOV #75.,3#RUNCTR sSET DIAGNOSTIC INDEX ;CLEAR DIAGNOSTIC INDEX ;ISSUE 'GO" BIT & STALL 'TILL 'RUN' s(FUNCTION CODE IS ISSUED BY THE TEST) ;LOAD STALL COUNT = APPROX. 450US 005337 047342 1%: DEC a#RUNCTR s COUNT DOWN ONE 013746 042716 012637 004137 047506 177740 047456 053552 MOV BIC SECOTR, =(SP) #177740, (SP) ;GET DESIRED SECTOR/TRACK ;MAKE ONLY SECTOR JSR R1,a#SEARCH cISSUE SECTOR CLOCKS C~==emmemmeeummens 001375 8734 002014 000004 SEARCH RDHEAD WRDATA REDATA 8IS BIC BIS BNE MOV A#MINX , IRiHMR A#MINX , 3RHMR #GO,aRH(S1T 1% (SP)+, ;FOR 11/50 CPU WITH CORE MEMORY sCONTINUE UNTIL = 0 a#TRK ;SAVE SECTOR SEQ 0202 SEQ 0201 CZRJGCO,RP0O4/5/6 DSKLS CTRLR! CZRJGC.PN 26=JuL-78 10:10 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 047456 047460 047464 047470 047474 047500 000000 012701 010137 010137 010137 004137 000240 047516 047520 047522 047626 27-JUL-78 DISK SIMULATION TRK: .WORD MOV MOV MOV MOV JSR H 16 12:41 0 #+NOP N1 R1,a#SSYN R1,a#HEDGAP R1,a#HEDSYN R1,a#RDHEAD SEQ 0203 SEQ 0202 PAGE 204 ;GOING TO sNOP INTO sNOP INTO ;NOP INTO MOVE NOPS SSYN HEDGAP HEDSYN ; *DUMMY ERROR CALL LOCATIONS FOR THE READ HEADER OPERATION LTL: SECOTR: 047504 047506 KEY1: KEY2: 047510 047512 047514 047516 .WORD X: eolelelo e 8735 8736 8737 MACY11 30A(1052) ;KEY1 WORD ;KEY2 WORD ;X=1 WRITE COMMAND :X=0 READ COMMAND ;IF "ERROR 2'' INSERTED BY RDHEAD ;SUBROUTINE THEN THE FIRST SYNC. ;1S NOT DETECTED. NO BAD DATA ;1S GIVEN BECAUSE SYNC=144000 SSYN: 00024C ;CYLINDER ADDRESS ;SECTOR/TRACK ADDRESS WORD NO ;1S """ BECAUSE THIS IS THE FIRST ;WORD TESTED ;CANNOT BE READ. 047520 000240 HEDGAP: ;IF "ERROR 3'' INSERTED BY ;RDHEAD SUBROUTINE THEN THE ;HEADER GAP 0'S WERE NOT NOP JWRITTEN RIGHT. ;IF "WORD NO'' CONTAINS, SAY :3(8), THEN IT IS THE THIRD ;WORD OF A 5 WORD HEADER ;GAP THAT IS WRONG ."BAD DATA'' CONTAINS WHAT IS ;GOING ON THE DISK 047522 000240 HEDSYN: ;IF "ERROR 3'' INSERTED BY RDHEAD NOP ;SUBROUTINE THEN THE HEADER SYNC. ;GENERATED BY DCL IS WRONG ;OR THE LAST BYTE ;OF THE HEADER GAP 0°'S IS WRONG ;IN EITHER CASE WORD NO=6 ;RIGHT BYTE IS HEADER 0 JLEFT BYTE IS SYNC :"BAD DATA'' HAS WHAT IS GOING ;ON DISK 047540 005737 001017 005737 001410 005737 047544 001011 002006 047514 047620 TST TST BEQ TST BNE a#ERFLGS ouT asx DAREAD a#NOSYNC ouT ;ARE ANY ERRORS DETECTED ;IF YES, EXIT ;IS IT A DATA WRITE ? sNO...THEN DO A DATA READ > ;1S THIS FORCED HEADER ERROR COMMAND ;IF YES NOSYNC==1 THEN WRITE OR READ ;1S SHUT OFF SO BRANCH OUT ;IF NOSYNC=0 THEN CONTINUE JEXIT IF SET > CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P11 26=JUL-78 10:10 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 047546 004137 047552 047554 047556 000000 000000 000404 047560 004137 000000 000000 047564 047566 047570 047570 047572 047574 047576 047600 047602 047604 012605 012604 012603 012602 012601 012600 000207 MACY11 30A(1052) 27-JuL=78 DISK SIMULATION 051072 DAREAD: DAWORD: QuT: SEQ 0203 :WRITE DATA < :NO OF WORDS TO BE WRITTEN BR 0 0 out JSR R1,a#REDATA .WORD .WORD 0 0 ;READ DATA < ;NO OF WORDS TO BE READ MOV MOV MOV MOV MOV MOV (SP) + RS ;:;POP ;:POP ;:;POP ;:POP NOWORD: .WORD 054026 SEQ 0204 R1,a#WNDATA JSR Y: I 16 PAGE 205 12:41 .WORD RTS (SP)+ ,R4 (SP)+,R3 (SP)+ ,R2 + ,R1 (SP) (SP)+,R0O PC SENIT e STACK STACK STACK STACK ;sPOP STACK INTO RS INTO R4 INTO R3 INTO R2 INTO R1 ;sPOP STACK INTO RO JEXIT ROUTINE - — CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26=JuL-78 10:10 8809 8810 8811 881 881 8814 8815 8816 8817 8818 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION J 16 12:41 SEQ 0205 SEQ 0204 PAGE 206 ;*THE DISK SECTOR IS DCVIDED AS FOLLOWS ;%19 WORDS OF 0, ONE WORD 144000 ;*THESE MAKE 39 BYTES FOR SECTOR GAP AND ONE SYNC. BYTE 047606 047610 047612 047614 047616 014400 000 RSYNC: RCYL: RSETR: RKEY1: RKEYZ2: 1 0 0O O O ;*5 WORDS OF 0 ONE WORD 144000 ;*THESE MAKE 11 BYTES FOR HEADER GAP AND ONE ;*THESE ARE DCL GENERATED SYNC. BYTE ;*THERE ARE 256 WORDS OF DATA ;*THERE ARE 2 WORDS FOR ECC GENERATED BY DCL ;*15 WORDS OF O FOR DATA GAP AND TOLERANCE GAP CZRJGCO,RPO4/5/6 DSKLS CTRLRT CZRJGC.PN 26=JuL-78 10:10 MACY11 30A(1052) 27-JuL-78 DISK SIMULATION 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 000000 NOSYNC: 0 047622 047624 000000 000000 TY: 0 ERWORD: 0 8851 8852 8853 8854 8855 8856 8857 8858 8859 047626 047632 047636 047642 047646 047652 047654 047660 047664 012137 012137 012137 012137 012137 010146 013700 012705 012710 047610 047612 047614 047616 050416 8862 8863 047700 047704 042710 000404 000012 8848 8849 8850 8860 8861 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 12:41 PAGE 207 ;*READ DISK HEADER 047620 8845 &9 K 16 047670 047674 047706 047712 047716 047722 047726 047732 047734 047736 047740 047742 047746 047752 047756 047760 047762 047770 047774 050000 050002 050010 050016 050024 050026 050034 050040 052710 052710 012710 042710 012702 052710 042710 005302 001372 005305 001362 012702 005037 004737 005302 001372 013737 RDHEAD: MOV MOV MOV MOV MOV MOV MOV MOV MOV 001660 000002 000001 000010 000002 BIS BIS 000013 000012 000007 000002 000002 1%: 2%: 3%: 000022 050414 050420 4%: 004737 032710 047606 050420 001000 050414 012737 013737 012737 000001 047606 104002 047624 001124 047516 047610 050420 047612 050414 001012 000571 013737 004737 013737 050414 BIC BR MOV BIC MOV BIS BIC DEC BNE DEC BNE MOV CLR JSR DEC BNE MOV JSR BIT BNE MoV MOV MOV 5%: BR MOV JSR MOV ;FORCED HEADER ERROR = =1 sNORMAL = 0 ;ERROR TYPE NO. ;ERROR WORD NO. (R1)+, Q#RCYL (R1)+, Q#RSETR (R1)+, Q#RKEY1 (R1)+, Q#RKEY2 (R1)+, a#COMPA R1,-(SP) a#RHMR, RO w2, RS #DMD, @RO ;STORE CYLINDER ADDRESS ;STORE SECTOR AND TRACK ADDRESS ;STORE KEY1 ;STORE KEYZ2 ;STORE COMPARE OR NOT ;;PUSH R1 ON STACK ;RO CONTAINS MAINTANENCE REG. ;R5 IS A COUNTER FOR WORDS :DIAG. MODE A#MSTCK ,aR0 ;SET SECTOR FOR FIRST WORD A#MCLK ,aR0 ;SET CLOCK FOR FIRST WORD A#MSTCK!MCLK,aR0 ;RESET SECTOR AND CLOCK 2% ;BRANCH OVER GIVING SECTOR FOR FIRST TIME #MSTCK !MCLK !DMD ,aR0;SET SECTOR, CLOCK, DIAG. MODE, RESET INDEX A#MSTCK !MCLK ,aR0 ;RESET SECTOR, CLOCK "7, R2 sR2 IS A COUNTER FOR BYTES #MCLK, aRO sSET CLOCK #MCLK, aRO sRESET CLOCK R2 ;BYTE COUNTER 38 ;BRANCH IF BYTE NOT COMPLETE R5 ;WORD COUNTER 1$ ;BRANCH IF WORD NOT COMPLETE #18., R2 ;NO OF WORDS OF ZEROS a#WORD ;READ 0 . @#READ ;GO TO READ R2 s COUNT 43 @#RSYNC ,a#WORD ;SYNC. WORD ", #DTSY, 5% a#READ aRO sSYNC. BYTE DETECTED? ;BRANCH IF SYNC DETECTED #, a#ERWORD ;ERROR WORD NO a#RSYNC ,a#SGDDAT ;SYNC WORD #104002,a#SSYN ; INSERT "ERROR 2'' IN SSYN 13% a#RCYL, Q#WORD C, a#READ Q¥RSETR,a#WORD ;BRANCH OUT ;SETUP CYLINDER ;READ ;SETUP SECTOR/TRACK SEQ 0206 SEQ 0205 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PI 26=JuL-78 10:10 050046 050052 050122 050124 050130 050134 050142 050146 050152 050154 050160 050164 050172 050200 050202 050206 050210 050212 050216 050224 050226 050232 050234 050240 050242 050310 050314 050320 050350 050354 004737 050420 047614 050420 047616 050420 051404 050420 002026 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION JSR 050414 050414 050414 050416 012705 012702 012737 004737 005737 001413 160237 005037 013737 012737 000503 013725 005302 001351 004737 023737 001426 005737 001406 051406 000005 000006 050652 050650 047624 001124 050650 104003 047624 001126 047520 050650 050652 047606 6%: 7%: 050650 047620 005737 001420 005037 000403 013737 013737 012737 012737 000443 013725 000440 050650 012702 005037 004737 005302 001372 013737 004737 005737 001404 032710 001415 000005 050414 050420 047606 050650 000006 104003 001124 001126 047624 047522 050650 047606 050420 047620 001000 10%: PC ,a#READ MOV JSR MOV JSR MOV JSR TST BNE TST BEQ QNRKEY" ,a#WORD JSR TST BEQ Su8 CLR MOV MOV BR PC,a#WRITE MOV MOV MOV MOV DEC BNE JSR cMP BEQ TST 001124 L 16 12:41 PAGE 208 BEQ TST BEQ CLR BR MOV MOV MOV MOV BR MOV BR ;READ ;SETUP KEY1 PC ,a#READ sREAD PC ,a#READ sREAD QNRKEY2 ,a#WORD a#WCRC,aMORD PC ,a#READ A#TESDTE 13% ?:EU‘PA SEQ 0207 SEQ 0206 ;SETUP KEY2 ;SETUP CRC sREAD ;1S THIS A DRIVE TIMING ERROR ;BRANCH OUT IF YES ;1S THIS A READ OR WRITE COMMAND #HEGAP, RS #5, R2 #6 , I¥ERWORD ;POINTER FOR HEADER GAP ;NO OF WORDS OF ZEROS ;ERROR WORD NO SET AHWWORD 7% sTEST WRITTEN WORD ;BRANCH IF GOOD THAT IS 0 R2 , a#ERWORD a#$GDDAT :FOR HEADER GAP ;WORD NO IN ERROR ;GOOD WORD SHOULD BE 0 ;BAD DATA $BDDAT a#WWORD , #104003 ,a#HEDGAP :"ERROR 2'' GOES IN HEDGAP 138 ;BRANCH OUT @¥WWORD, (R5)+ ;SAVE HEADER GAP 65 PC, @#WRITE ;WRITE HEADER (DATA) GAP SYNC ?GQSYNC.G‘UUORD a#NOSYNC ;IS THIS FORCED HEADER ERROR COMMAND ;IF YES NOSYNC=-=1 THEN WRITE OR READ ;1S SHUT OFF SO BRANCH OUT :IF NO NOSYNC=0 THEN CONTINUE 149 ;BRANCH IF TRUE ERROR A#WWORD : a#SGDDAT ;1T SHOULD BE ZERO 108 ;BRANCH IF GOOD 15% a#RSYNC ,a#SGDDAT @#WWORD , a#$BDDAT #6, ;BRANCH TO TYPE ERROR :GOOD DATA :BAD DATA a#ERWORD #104003 ,a#HEDSYN 13% ;BRANCH OUT @H#WWORD, (R5)+ 133 ;SAVE DATA SYNC. ;*READ COMMAND START FROM HERE 11%: 12%: 050414 MOV CLR JSR DEC BNE MOV JSR TST BEQ BIT BEQ #5, WORD PC. R2 R2 READ 12% A#RSYNC ,@#WORD PC, READ @#NOSYNC 16$ #DTSY ,aR0 138 ;READ HEADER GAP ;IS 5 HEADER GAP ZEROS COMPLETE s IF NOT BRANCH ;SYNC WORD ;READ HEADER (DATA) SYNC) sIF NOT ERROR COMMAND BRANCH sSYNC. DETECTED s IF ZERO BRANCH OUT CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.PN 26=JuL-78 10:10 000403 032710 001011 012737 013737 012737 012601 000201 27-JUL-78 MACY11 30A(1052) DISK SIMULATION 16%: 001000 000006 047606 1046002 047624 001124 047522 17%: 13%: BR BIT BNE MOV MOV MOV MOV RTS M6 12:41 17% #DTSY, 13% PAGE 209 aRO #6,a#ERWORD ;IF NOT ZERO BRANCH TO ERROR ;SYNC. DETECTED? :BRANCH IF YES ;ERROR WORD NO. a#RSYNC ,a#$GDDAT; SYNC WORD #104002 ,a#HEDSYN é?P)*,R1 ::POP STACK INTO R1 SEQ 0208 SEQ 0207 CZRJGCO,RP0O4/5/6 DSKLS CTRLRI CZRJGC.PN 26-JUL-78 10:10 MACY11 30A(1052) 27=-JUL=78 DISK SIMULATION 8 12:41 1 PAGE 210 SEQ@ 0209 SEQ 0208 8956 8957 8958 8959 8960 8961 8962 8963 ;*READ ONE WORD IN ‘WORD'' : WORD COMPA: 010246 012705 012710 READ: 000020 000007 000012 045320 1%: 5%: 6%: 050414 2%: 045320 3%: - 88 #DMD, a#WORD =(SP) #MRD !DMD, (SP)+, a#TSECCG @aR0 a#DATENV PC,a#ECTEST #MCLK, aRO 045312 7%: 8%: 4%: :;PUSH R2 ON STACK sWORD COUNTER ;SET DIAG. MCDE sCHECKING IF THERE IS A ONE :IF NO ONE BRANCH ;SET BIT 4 IF DATA HAS ONE :BYTE COUNTER aR0 ;SET CLOCK,DATA IF ANY, SECTOR ;1S THIS BIT TO GENERATE AND TEST ECC ;BRANCH IF NO ;1S DATA BIT A ONE ;BRANCH IF DATA BIT IS 0 ;ECC DATA BIT IS A ONE CH &; BRANC ;ECC DATABIT ISA O ;KEEP ONLY DIAG. MODE ;CHECKING IF THERE IS A ONE :IF NO ONE BRANCH (SP) :KEEP DATA AND DIAG. MODE ;PUT IN DATA,_RESET CLOCK, SECTOR ;1S ECC TO BE GENERATED FOR THIS BIT ;BRANCH IF NO ;sNUMBER OF CLOCKS GIVEN FOR DATA ENVELOPE ;GO TO GENERATE AND TEST ECC sSET_CLOCK #-1,a#ECDATA ;IS THIS BIT TO GENERATE ECC ;BRANCH IF NO ;1S DATA BIT A ONE sBRANCH IF DATA BIT IS =0 ;ECC DATA BIT IS A ONE a#ECDATA #DMD, =(SP) a#WORD 48 #MRD !DMD, (SP) (SP)+, aR0 a#TSECCG ;ECC DATA BIT IS =0 ;KEEP DIAG. MODE ;CHECKING IF THERE IS A ONE ;BRANCH IF NO ONE ;KEEP DIAG. MODE AND DATA ;SET DATA, DIAG. MODE, CLEAR CLOCK ;IS THIS BIT TO GENERATE ECC a#TSECCG 8% #MRD , aR0 7% 000020 045320 6% a#ECDATA 38 045332 045350 000002 045320 000021 R2 #MSTCK !MCLK, gTSECCG 2% 000021 045312 000001 050414 n7, a@RO #-1,a¥ECDATA 045312 045312 000001 177777 a#WORD 1% #MRD, RS @RO gflsflD.ORO 000020 177777 R2,=(SP) w2, #DMD, 000002 000001 050414 8% ; BRANCH C(ZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.PI 26-JuUL-78 10:10 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 001404 005237 004737 005302 001341 005305 001300 012602 000207 045332 045350 27=-JUL=78 MACY11 30A(1052) DISK SIMULATION 9%: BEQ INC JSR DEC C 12:41 9% AMDATENV Pg LJONECTEST R 3s RS 1% (SP)+,R2 PC 1 PAGE 211 ;BRANCH IF NO sNUMBER OF CLOCKS GIVEN FOR DATA ENVELOPE ;GO TO GENERATE AND TEST ECC ;BYTE COUNTER ;BRANCH IF ONE BYTE NOT COMPLETE ;WORD COUNTER sBRANCH IF ONE WORD NOT COMPLETE ;;POP STACK INTO R2 SEQ 0210 SEQ 0209 C CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRIGC.P11 26=JuL~ 78 10:10 MACY11 30A(1052) 27-JuL-78 DISK SIMULATION D 12:41 1 PAGE 212 9023 9024 9025 ;*WRITE ONE WORD WHICH COMES BACK IN 'WWORD'' WWORD: 050650 010046 010246 010346 010546 012705 012710 012702 WRITE: 1$: 000007 000013 000040 MOV #7 ,R2 3$: 045332 045350 4%: 000002 000040 045312 5%: 000001 045320 6$%: 7%: :BYTE COUNTER BEQ 2% BR CLR CLC ROR MOV TST BEQ INC JSR BIS BIT BEQ MOV SEC 045312 :;PUSH R3 ON STACK ;;PUSH RS ON STACK ;WORD COUNTER :SET DIAG. MODE ;RO HAS RHMR ADDRESS IN IT R3,-(SP) R5,=(SP) #2 ,R5 #1,3R0 AMSTCK !MCLK !DMD ,aR0; SET SECTOR AND CLOCK SEC ROR 2%: ;;PUSH RO ON STACK :;PUSH R2 ON STACK MOV MOV 045312 000001 045320 045332 045350 RO,=(SP) R2.=(SP) BIT 045312 177777 MOV MOV MOV MOV MOV MoV 000002 000001 177777 O #MWR , 3RO #-1,3a#ECDATA R3 3s a#ECDATA ;BRANCH IF ZERO ;ECC DATA BIT IS A ONE s SET_CARRY :MOVE 1 FORWARD ;ECC DATA BIT IS = 0 :CLEAR CARRY R3 #DMD ,aR0 a#TSECCG 4% a#DATENV PC,a#ECTEST #MCLK ,aR0 sMOVE 0 FOR WWORD ;CLEAR SECTOR AND CLOCK ;IS THIS BIT TO GENERATE ECC ;BRANCH IF NO sNUMBER OF CLOCKS GIVEN FOR DATA ENVELOPE ;GO TO GENERATE AND TEST ECC sSET CLOCK IN RHMR 5% #-1,aNECDATA sBRANCH IF ZERO ;ECC DATA BIT IS A ONE :SET _CARRY #MWR , 3RO gROR 22 CLR CLC ROR MoV TST BEQ INC JSR a#ECDATA DEC sCHECK WRITE BIT IN MAINT. REG. R3 #DMD, a#TSECCG 7% sMOVE 1 FOR WWORD @RO a#DATENV PC,a#ECTEST R2 ;CHECK WRITE BIT IN RHMR ;ECC DATA BIT IS ZERO ;CLEAR CARRY sMOVE 0 FOR wono sCLEAR CLOC ;IS THIS BIT TO GENERATE ECC :BRANCH IF NO sNUMBER OF CLOCKS GIVEN FOR DATA ENVELOPE :G0 TO GENERATE AND TEST ECC sCOUNT FOR BYTE END SEQ 0211 SEQ 0210 MACY11 30A(1052) 27-JuL=78 DISK SIMULATION E 12:41 1 PAGE 213 SEQ 0212 SEQ 0211 . 051040 051042 051044 051046 010337 051052 051054 051056 051060 051062 012605 012603 012602 012600 000207 050650 BNE DEC BNE 4% RS 1% ;IF NOT BYTE END BRANCH ;COUNT FOR WORD END :IF NOT WORD END BRANCH MOV R3,a#WWORD ;STORE THE WORD MOV MOV MOV MOV (SP)+,R5 (SP)+,R3 (SP)+,R2 (SP)+,R0O ::POP STACK ::POP STACK ::POP STACK ;:POP STACK RTS PC INTO RS INTO R3 INTO R2 INTO RO o CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26=JuL~78 10:10 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION F 12:41 1 PAGE 214 ;*WRITE DATA = PUT DATA INTO 'DISK'‘' AREA FROM ‘WWORD"' ;*ONE WORD AT A TIME COUNTD: 0 000000 000400 000000 011137 012102 012137 FORMAT: ZWORDS: 0 WRDATA: 051064 050476 010046 010146 010246 010346 010446 012701 (R1) ,a#COUNTD (R1)+,R2 (R1)+,a#COMPA ;STORE NO. OF WORDS TO BE WRITTEN ;SAME IN R2 ; COMPARE OR NOT RO.=(SP) R1,-(SP) R2.,=(SP) :2PUSH RO ON STACK ::PUSH R1 ON STACK ;:PUSH R2 ON STACK :2PUSH R3 ON STACK :2PUSH R4 ON STACK R3,-(SP) R4 ,=(SP) 000016 052430 177777 1%: 001660 051066 051064 051070 002024 177777 051422 050652 050650 045320 7%: 2%: #14. ,R1 #TOLGAP ,R3 #-1,(R3)+ ;NO. OF TOLERANCE GAP WORDS ;START OF TOLERANCE GAP TABLE sMAKE IT 177777 ;1S 14 COMPLETED s IF NO BRANCH ;RO CONTAINS MAINTANENCE REG. (SP) ,a#ZWORDS (SP)+ R4 ?TSECC $ #-1,a#TSECCG :NO. OF ZERO WORDS TO BE WRITTEN PC,a#WRITE SJWRITE INTO ‘'WWORD'' #DISK,R3 gcwono. (R3)+ ;IS THIS AN ECC TEST ? :BRANCH IF NO ;THESE BITS ARE TO GENERATE ECC sADDRESS THE 'DISK'' AREA sSTORE ON SIMULATED DISK s COUNT DOWN ;CONTINUE IF ALL WORDS NOT WRITTEN sANY ZEROS TO BE WRITTEN ? sBRANCH IF NONE TO BE WRITTEN ;WRITE ZEROS INTO 'WWORD'' ;STORE INTO 'DISK'’ 050652 050650 3%: 045320 000002 050652 050650 4%: sNO MORE ECC TO BE GENERATED 5%: ;WRITE ECC1 AND ECC2 ON SIMULATED DISK ;STORE ON WEECT AND WEEC2 SEQ 0213 SEQ 0212 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JUL-78 10:10 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 27-JUL-78 MACY11 30A(1052) SIMULATION DISK BNE 051256 JSR MOV 050650 6%: G 12:41 SEQ 0214 5% SEQ 0213 PC,WRITE @HWWORD, (R3)+ JWRITE DATA GAP INTO ‘WWORD'' ;STORE INTO 'DISK'’ @¥WWORD, (R3)+ ;STORE INTO 'DISK' ;;POP ;;POP :;POP ;:POP ;;POP MOV JSR #14. ,R1 PC,a#WRITE DEC BNE R1 6% MOV 1 PAGE 215 051310 051312 051314 051316 051320 MOV MOV MOV MOV MOV (SP)+ R4 (SP)+,R3 (SP)+,R2 (SP)+,R1 (SP)+,RO 051322 RTS R1 ;WRITE TOLERANCE GAP ZEROS STACK STACK STACK STACK STACK INTO R4 INTO R3 INTO R2 INTO R1 INTO RO CZRJIGCO,RPO4/5/6 DSKLS CTRLRI1 CZRJGC.P1 26-JuL-78 10:10 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION H 12:41 1 PAGE 216 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 ;*WRITE HEADER AND DATA % . . % ‘«THIS IS THE SIMULATED DISK “«ONLY ONE SECTOR OF SPACE I3 ALLOWED 051324 051372 051374 051404 051406 051420 051422 051422 052422 052424 052426 052430 SECGAP: .BLkW WSSYNC: .BLkW HEADER: .BLKW 19. 1 4 HEGAP: HDWSYN: SILOTB: DISK: WECC1: WECC2: DTAGAP: TOLGAP: .BLKW .BLKW 5 1 .BLKW .BLkW .BLkW .BLKW .BLKW 256. 1 1 1 14, WCRC: .BLKW 1 ;SECTOR GAP 38 BYTES OF 0 sSECTOR GAP 1 BYTE OF 0 ONE SYNC BYTE sHEADER = CYL, SECTOR/TRACK, KEY1, KEYZ2 s CRC ;HEADER GAP 10 BYTES OF 0 sHEADER GAP 1 BYTE OF 0 ONE SYNC. BYTE ;USED IN SILO TEST AS SILO TABLE ;DATA SPACE ;ECCT ;ECC2 ;DATA GAP 2 BYTES OF 0 :TOLERANCE GAP 28 BYTES OF 0 SEQ@ 0215 SEQ 0214 CZRJGCO,RP04/5/6 DSKLS CTRLR1 26-JuL-78 10:10 CZRJGC.P1 MACY11 27-JUL-78 30A(1052) DISK SIMULATION g 12:41 3 PAGE 217 SEQ 0216 SEQ 0215 9198 9199 9200 ;*WRITE HEADER AND DATA ;*«THIS SUBROUTINE IS THE FIRST IN A SERIES OF NESTED SUBROUTINES ;*«]T ISSUES DIAGNOSTIC MODE, AN EXTRA DIAGNOSTIC INDEX, AND THE ;*+'GO’ BiT ;x«]T THEN CALL THREE OTHER SUBROUTINES, WHICH IN TURN CALL OTHER THESE ARE: s **SUBROUTINES. *hk - * kR . * Rk . 052464 052466 052472 052500 052502 052504 052506 052510 052512 000000 011637 162737 010046 010146 010246 052514 012777 052777 042777 052777 002014 000004 002014 SEARCH WRHEAD WRDATA RNCTR1: . WORD COMWHD: MOV SuB MOV MOV MOV MOV MOV MOV 010346 010446 010546 0 (SP) ,a#PCJSR #4 ,a#PCJSR RO,=(SP) R1,-(SP) R2.=(SP) R3,-(SP) R4 ,=(SP) RZ,=(SP) 127136 127130 127122 127074 MOV BIS BIC 052464 RNWAT1: MOV #75. ,Q#RNCTR1 1%: DEC BNE a#RNCTRT BIS #DMD , aRHMR , aRHMR #MINX #MINX , 3RHMR #G0,aRHCST ;"RUN' LINE STALL COUNTER :SAVE PC OF JSR + & ;SAVE PC OF JSR ::PUSH RO ON STACK ::PUSH R1 ON STACK ;;PUSH R2 ON STACK ::PUSH R3 ON STACK ::PUSH R4 ON STACK ;2PUSH RS ON STACK ;SET DIAGNOSTIC MODE sSET DIAGNOSTIC INDEX sCLEAR IT ;SET 'GO" BIT & STALL °'TILL 'RUN' :LOAD STALL COUNTER = APPROX. 450US 052544 012737 000113 052552 052556 005337 001375 052464 052560 052564 052570 013746 042716 012637 052644 177740 052600 MOV BIC MOV a#WSECTR,~(SP) #177740, (SP) ;GET DESIRED SECTOR/TRACK sMAKE ONLY SECTOR :SAVE SECTOR 052574 052600 004137 000000 053552 JSR .WORD 81.8’SEARCH ;ISSUE SECTOR CLOCKS < :SECTOR NO. 052602 052606 012701 010137 000240 052654 #+NOP R1 ;GOING TO MOVE NOPS :NOP INTO SEGAP : WTRK MOV MOV 1% (SP)+ ,aMTRK R1,a#SEGPER ;FOR 11/50 CPU WITH CORE MEMORY ;COUNT DOWN 1 TIME sCONTINUE UNTIL O > CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JUL-78 10:10 9254 9255 9256 9257 9258 052612 052616 052622 052626 052632 052652 010137 010137 010137 010137 010137 052656 052660 052662 052664 052666 004137 000000 000000 052736 000000 000000 000000 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION WCYL: J 12:41 1 SEQ 0217 PAGE 218 SEQ 0216 INTP FSYNER INTO ERHEAD INTO ERCRC INTO ERHDGAP INTO HDESYN MOV MOV MOV MOV MOV R1,a#4F SYNER R1,a#ERHEAD R1,a#ERCRC R1,a#ERHDGP R1,a#HDESYN sNOP sNOP sNOP sNOP sNOP JSR R1,a4WRHEAD sWRITE THE HEADER < 0 WSECTR: 0 WKEY1: O WKEY2: 0 GCRC: 0 sCYLINDER sSECTOR AND TRACK :KEY1 :KEY2 ;GO0OD CRC :+*DUMMY ERROR CALL LOCATIONS FOR THE WRITE HEADER OPERATION 052654 000240 SEGPER: NOP :IF "ERROR 6'' INSERTED BY sWRHEAD SUBROUTINE THEN ;SECTOR GAP GOING ON DISK ;1S NOT RIGHT. ;sWORD NO. CONTAINS WHICH sWORD IS WRONG, THAT IS sFIRST OF TENTH OR WHAT EVER NO. ;BAD WORD IS GOING ON DISK 052656 000240 FSYNER: NOP ;IF "ERROR 6'' INSERTED BY ;WRHEAD SUBROUTINE THEN ;THE LAST O BYTE OF SECTOR ;GAP, OR FIRST SYNC. BYTE sAFTER SECTOR GAP IS IN ;ERROR. sWORD NO. CONTAINS 20 sRIGHT BYTE IS SECTOR GAP ;LEFT BYTE IS SYNC. BYTE :g?gKUORD IS WHAT IS GOING ON 052660 000240 ERHEAD: NOP ;IF "ERROR 6'' INSERTED BY ;WRHEAD SUBROUTINE THEN ;HEADER GOING ON DISK + 1S WRONG. ;WORD NO 1 = CYLINDER NO ;WORD NO 2 = SECTOR/TRACK :WORD NO 3 = KEY1 JWORD NO 4 = KEY2 :gll\ls)KUORD IS WHAT IS GOING ON 052662 000240 ERCRC: NOP ;IF "ERROR 6'' INSERTED BY ;WRHEAD SUBROUTINE THEN CRC WRITTEN ;ON DISK IS IN ERROR. CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26-JuUL-78 10:10 CZRJIGC.PI 9310 9311 9312 9313 052664 MACY11 30A(1052) 27-JUL=78 DISK SIMULATION K 12:41 SEQ 0218 SEQ 0217 ;GOOD DATA IS WHAT SHOULD BE ON DISK ;BAD DATA IS WHAT IS GOING ON DISK ;WORD NO IS 5. ERHDGP: NOP 000240 1 PAGE 219 ;IF "ERROR 6'' INSERTED BY ;WRHEAD SUBROUTINE THEN HEADER ;GAP GOING ON DISK IS WRONG. ;WORD NO. GIVES WHICH OF ;THE HEADER GAP WORDS ;ARE WRONG. FOR EXAMPLE: ;WORD NO 1 = FIRST HEADER GAP WORD : ;BAD WORD IS WHAT IS GOING ON DISK 052666 HDESYN: 000240 NOP ;IF "ERROR 6'' INSERTED BY ;WRHEAD SUBROUTINE THEN LAST sHEADER GAP BYTE OR HEADER ;SYNC BYTE GOING ON DISK IS WRONG. :WORD NO = 5 :BAD DATA IS WHAT IS GOING :ON DISK, RIGHT BYTE IS HEADER :GAP 0 BYTE, LEFT BYTE IS HEADER ;GAP SYNC. 052670 052674 002006 052676 052702 052704 051072 052706 052706 052710 052712 052714 052716 052720 052722 a#ERFLGS ;ARE ANY ERRORS DETECTED ;IF YES EXIT 81 .A#WRDATA ;WRITE THE DATA < ;FORMAT COMMAND NO. OF DATA FOUT FNWORD: FOUT: .WORD 0 (SP)+,RS (SP)+,R4 (SP)+,R3 (SP)+ ,R2 (SP)+,R1 (SP)+,R0O PC ::POP STACK ;:POP STACK ;:POP STACK ;:POP STACK ::POP STACK ;:POP STACK INTO RS INTO R4 INTO R3 INTO R2 INTO R1 INTO RO > CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26-JuL-78 10:10 9355 9356 9357 9362 9363 9364 9365 9366 9367 052724 052726 052730 052732 052734 000000 000000 000000 000000 000000 9377 9378 9379 052736 052742 052746 012137 012137 012137 9380 9381 9382 9383 9384 9385 DISK SIMULATION 052752 052756 052762 052764 052770 052774 012137 012137 010146 012701 013700 012710 sCyL: SSECTR: SKEY1: SKEY2: SCRC: 3 PAGE 220 0 0 C 0 0 052724 052726 052730 WRHEAD: MOV MOV MOV 051324 001660 000001 MOV MOV MOV MOV 052732 052734 MOV MOV 9386 053000 012705 000002 MOV 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 053004 053010 053014 053020 053022 053024 053026 053030 053032 053034 052710 012710 032710 001403 000261 006003 000402 000241 006003 012710 000010 000013 000040 000001 38: 9398 9399 9400 9401 9402 9403 053044 053050 053054 053056 053060 053062 053064 053066 053070 053074 053076 053100 053102 052710 032710 001403 000261 006003 000402 000241 006003 012710 005302 001362 005305 001342 000002 000040 4%: 1$: 2s: 9397 053040 012702 000007 9405 9406 9407 9408 9409 9410 L 12:41 ;*R0O = MAINT.REG. ;*R1 = SIMULATED DISK ;*R2 = BYTE COUNT :*R3 = WRITE WORD ;*R5 = WORD COUNT 9370 9371 9372 9373 9374 9375 9376 27-JuL-78 ;*WRITE HEADER 9358 9359 9360 9361 9368 9369 ' MACY11 30A(1052) 5%: 000001 6%: . BIS MOV BIT BEQ SEC ROR BR CLC ROR MOV MOV BIS BIT BEQ SEC ROR BR CLC ROR MOV DEC BNE DEC BNE : H : : : (R1)+,a#SCYL (R1)+,a#SSECTR (R1)+,a#SKEY1 (R1)+,a#SKEY2 (R1)+,a#SCRC R1,-(SP) #SECGAP,R1 a#RHMR RO #DMD ,aR0 #2 RS ::PUSH R1 ON STACK ;SIMULATED DISK INDICATOR ;RO NOW HAS MAINT. REG. ADDR. ;SET DIAG. MODE IN RHMR ;WORD COUNTER #MSTCK ,aR0 ;SET SECTOR FOR FIRST BYTE AMSTCK !MCLK !DMD,aR0;SET SECTOR, CLOCK, DIAG. MODE, RESET INDEX #MWR , aR0 ;CHECK WRITE BIT IN MAINT. REG. 2% :SET _CARRY R3 ;MOVE ONE FORWARD 3% : ;CLEAR CARRY R3 ;MOVE ZERO FORWARD #DMD , 3RO :CLEAR CLOCK, SECTOR #7 ,R2 AMCLK ,aR0 #MWR ,aR0 5% R3 6% R3 #DMD , 3RO R2 4% R5 1% ;BYTE COUNTER sSET CLOCK ;CHECK WRITE BIT IN MAINT.REG. ;BRANCH IF ZERO :SET_CARRY ;MOVE ONE FORWARD ;SET DIAG. MODE AGAIN IN RHMR s CONT INUE SEQ 0219 SEQ 0218 MACY11 30A(1052) CZRJGCO,RPO4/5/6 DSKLS CTRLR1 26~-JUL-78 10:10 CZRJIGC.P DISK SIMULATION MOV 010321 005703 TST BEQ M1 12:41 R3, (R1; + R3 73 #1, AYERWORD MOV 104006 052654 MOV MOV JMP 000022 000024 047624 MOV MOV JSR ggg #18. .R2 #20. ,@#ERWORD PC,a#WRITE ?12UORD.(R1)+ SuB CLR MOV R2 , a#ERWORD ;IF NOT GET ERROR WORD NO. ;GOOD WORD a#$GDDAT @#WWORD ,a#$BDDAT ;BAD WORD 053544 050652 050650 047624 001124 050650 104006 CLR 001126 052654 053214 053216 11%: a#$GDDAT R3,a/$BDDAT , a#SEGPER #104006 ;BRANCH OUT awn17s :;24006.3‘SEGPER:STORE "ERROR 6’ IN SEGPER DEC R2 108 BNE > ;COUNT NO. OF SECTOR GAP ;COUNT TO GIVE ERROR WORD ;WRITE SECTOR GAP ;STORE SECTOR GAP WORD MOV BR SEQ@ 0220 SEQ 0219 PAGE 221 047624 000001 001124 001126 053176 053204 053212 27-JUL-78 ;BRANCH 0UT > ;HAVE 18 WORDS OF ZEROS BEEN WRITTEN ? ;IF NOT DO SO ;*AT THIS POINT THE SECTOR FOUND FLOP SHOULD SO THAT THE HEADER SYNC BYTE CAN BE GIVEN ;*BE HIGH. ;*HOWEVER IN THE DRIVE TIMING ERROR TEST THE REST OF THE ROUTINE ;*]1S ABORTED - HEADER SYNC BYTE IS NOT GIVEN 053220 053224 053226 005737 001147 004737 002026 013711 023721 001414 012737 013737 014137 012737 000524 050650 047606 000004 052724 000005 050652 050650 [ ¥' & g 388 =23 053350 Q#TESDTE ;1S THIS A DRIVE TIMING ERROR JSR PC,aMRITE MOV CMP @MWORD, (R1) @#RSYNC,(R1)+ sWRITE ONE SECTOR GAP 0 BYTE sAND ONE SYNC. BYTE = 230 sSAVE 0 BYTE AND SYNC BYTE MOV MOV -(R1) ,a#$BDDAT :BAD WORD #104006 . 3#F SYNER: INSERT 'ERROR 6'' IN FSYNER BEQ MOV MOV 047624 001124 052656 BR 12%: 047624 oo 012702 050652 000024 047606 001126 104006 TST BNE 052660 13%: MOV MOV MOV ? MOV cMP BEQ sSuB MOV MOV MOV BR 17% sBRANCH OUT IF YES ;IF SYNC. BYTE RIGHT :IF YES BRANCH 12% #20. ,a#ERWORD ;IF NOT GET READY FOR ERROR @#RSYNC ,a#SGDDAT ; GOOD WORD 17% :BRANCH 0OUT #4 ,R2 :FOUR HEADER WORDS #SCYL ,R3 #5 ,a#ERWORD a#WWORD, (R1) (R3)+,(R1)+ 148 R2 , a¥ERWORD -(R3) ,a#$GDDAT =(R1) ,a#$BDDAT > ;POINTER FOR HEADER TABLE ;ERROR WORD NO SET :WRITE & HEADER WORDS ;STORE WRITTEN WORD ;IS IT RIGHT? s IF GOOD CONTINUE sIF NOT GET READY FOR PRINT ;WORD NO ;GOOD DATA ;BAD DATA #104006 , a#ERHEAD : INSERT 'ERROR 6'* *BRANCH OUT 17% > CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.PN 26-JuUL-78 10:10 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 053352 053354 053356 053362 053366 053372 053374 053400 053406 053414 005302 001353 004737 013711 022137 001414 014137 013737 012737 012737 9480 9481 053424 053430 012702 012737 9484 9485 9486 9487 9488 &3(9) 053446 053450 053454 053460 053464 053472 001412 160237 005037 014137 012737 000424 &778 9482 9483 053422 053436 053442 000450 004737 013721 9491 9492 053474 053476 005302 001354 9494 9495 9496 9497 9498 9499 3558? 053504 053510 053514 053516 053524 053530 053536 013711 023721 001413 012737 014137 013737 012737 9502 053544 053544 012601 9505 9506 053546 000201 9493 gggz 053500 004737 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION 14$: 050652 050650 052652 001126 052652 000005 104006 001124 047624 052662 000005 000006 047624 050652 050650 047624 001124 001126 104006 16%: 050652 000005 001126 047606 104006 17% SEXIT MOV MOV #5.R2 #6, a#ERWORD sNO OF HEADER GAP ;ERROR WORD NO SET JSR MoV BEQ sus 047624 001124 052666 17%: PC,a#WRITE @MMORD, (R1)+ 16% R2 ,a#ERWORD MOV MOV BR DEC BNE R2 15% MOV cMP BEQ MOV MOV MOV MoV @MWWORD, (R1) AHRSYNC, (R1) + 17% SEXIT #5 ,a#ERWORD =(R1) ,a#$BDDAT a#RSYNC ,a#SGDDAT #104006 ,a#HDESYN PC.a#WRITE MOV (SP)+,R1 RTS R1 SEQ@ 0221 SEQ 0220 > ;WRITE HEADER GAP ;STORE :IF GOOD BRANCH ;ERROR WORD NO a#SGDDAT :GOOD DATA =(R1) ,a#$BDDAT ;BAD DATA #104006,a#ERHDGP; STORE ‘ERROR 6"’ ;BRANCH OUT 17% JSR 050650 047606 PAGE 222 R2 ;ARE 4 HEADER WORDS DONE? 138 :IF NOT DO THEM PC.a#WRITE sWRITE CRC @MWWORD, (R1) sSTORE CRC (R1)+,a#GCRC s COMPARE GOOD CRC 208 ;BRANCH IF GOOD =(R1) ,a#SBDDATA :BAD CRC WRITTEN a#GCRC,a#S$GDDAT ;GOOD CRC #5 , a#ERWORD sERROR WORD NO #104006 ,a#ERCRC ; INSERT ERROR 6 CLR 052664 12:41 1 DEC BNE JSR MOV cMP BEQ MOV MOV MOV MOV BR 208: 15%: N ;ARE 5 HEADER GAP ZEROS :IF NOT BRANCH ;;POP STACK INTO R1 > DONE > CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P11 26=-JuL-78 10:10 9508 9509 9510 9511 9512 9513 9514 27=JUL-78 MACY11 30A(1052) DISK SIMULATION 8 12:41 2 PAGE 223 * % % » ;*SEARCH SECTOR RO=RHMR ADDRESS R1=PASSED ARGUMENT (SECTOR SEARCHED FOR) R2=CLOCK COUNT (PER BYTE) R3=SECTOR COUNTER FROM R1 R5=BYTES PER WORD COUNT *BEBORE INDEX IS GIVEN TWO SECTOR CLOCKS ARE GIVEN TO RESET s*SECTOR PULSE IN CASE IT IS SET ;*AT BEGINNING OF EACH SECTOR ONE SECTOR CLOCK HAS TO RISE :«BEFORE CLOCK THEN EVERY EIGHT CLOCKS ONE SECTOR CLOCK IS ;*IDENTICAL WITH CLOCK : *NUMBERING THE SECTOR CLOCKS AS FOLLOWS ;*THE SECTOR (1IL0CK UNDER INDEX = 0 :*THE NEXT s *THE NEXT ;*ETC. ;*THEN THE LAST SECTOR CLOCK IN ONE SECTOR HAS NUMBER - 608 :*THE NEXT SECTOR THEN HAS 608 SECTOR CLOCKS :*THE NEXT SECTOR THEN HAS ANOTHER 608 SECTOR CLOCKS ;*AND SO ON 053550 000000 053552 012137 SECTR: 053550 ;SECTOR SEARCHED FOR O SEARCH: MOV Q#SECTR (R1)+, RO,=(SP) R1,-(SP) R2,=(SP) R3,-(SP) R4 ,=(SP) R5,=(SP) a4RHMR, RO SECTR,R3 #DMD, a@R0O SRO aRO aRO aRO ;SAVE SECTOR SEARCHED FOR :;PUSH RO ON STACK :;PUSH R1 ON STACK ::PUSH R2 ON STACK ::PUSH R3 ON STACK :;PUSH R4 ON STACK ;;PUSH RS ON STACK sNOW RO HAS MAINTENANCE REG. ADR. sSECTOR COUNTER sSET DIAGNOSTIC MODE sSET SECTOR CLOCK ;CLEAR SECTOR CLOCK ;SET SECTOR CLOCK ;CLEAR SECTOR CLOCK ;THE ABOVE TWO SECTOR CLOCKS ARE GIVEN FOR 042710 052710 042710 #MSTCK, #MSTCK, #MSTCK, #MSTCK, 052710 012710 sIN CASE IT STARTS SET A#MINX!MSTCK ,aR0 :SET INDEX AND SECTOR CLOCK #DMD, :RESET INDEX AND SECTOR CLOCK 3RO ;RESETING SECTOR PULSE SEQ 0222 SEQ@ 0221 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10:10 053636 053640 MACY11 30A(1052) 27-JUL-78 DISK SIMULATION C 12:41 2 SEQ 0223 SEQ 0222 PAGE 224 ;IF SECTOR REQUIRED JUMP QUT R3 TST BEQ 7$ :BRANCH OF SECTOR ZERO REQUIRED ;*NOW THE 304 WORDS WILL START 005703 001461 ;*FOR FIRST BYTE SECTOR CLOCK WILL GO HIGH THEN CLOCK WILL GO HIGH ;*BOTH WILL COME DOWN TOGETHER THEN SEVEN CLOCKS WILL BE GIVEN ;#;FOR SECOND BYTE AND ALL OTHER BYTES TILL NEXT SECTOR SECTOR CLOCK s*WILL BE IDENTICAL WITH ONE CLOCK ;*ONE WORD ONLY 012702 012705 052710 052710 000402 052710 042710 052710 000010 012702 005305 001362 000007 1$: BIS BIS 000010 000002 000012 000012 000002 MOV MOV 28: 3$: 8s%: BR BIS BIC BIS BIC DEC BNE MOV DEC BNE #8.. #e, R2 RS #MSTCK ,aR0 #MCLK ., aR0 38 #MSTCK !MCLK,aR0 #MSTCK!MCLK,3R0 #MCLK, aR0 #MCLK, @aRO R2 8s "7, R2 RS 2% ;BYTE COUNTER ;BYTES PER WORD ;SET SECTOR CLOCK sSET CLOCK ;BRANCH TO CLEAR SECTOR AND CLOCK ;SET SECTOR AND CLOCK ;CLEAR SECTOR AND CLOCK sSET CLOCK ;CLEAR CLOCK ;BYTE COUNTER ;BRANCH IF BYTE NOT COMPLETE ;SETUP FOR SECOND BYTE ;1S WORD COMPLETE? ;BRANCH IF NOT COMPLETE :TO GIVE SECTOR CLOCK AND CLOCK s*NOW 303 WORDS ARE LEFT AND ALL ARE IDENTICAL 012701 012705 012702 052710 042710 052710 4%: 5%: 6%: MOV MOV MOV BIS BIC BIS BIC DEC #303., R "2, RS n, R2 #MSTCK !MCLK,aR0 MMSTCK'MCLK,aR0 MCLK, aRO #MCLK, aRO R2 ;WORDS PER SECTOR COUNTER ;BYTES PER WORD COUNTER ;BYTE COUNTER (CLOCK COUNTER) ;SET SECTOR CLOCK AND CLOCK ;CLEAR SECTOR CLOCK AND CLOCK ;SET CLOCK :RESET CLOCK ;1S BYTE COMPLETE? DEC RS ;1S WORD COMPLETE? BNE BNE DEC 5% R BNE BIS BIC 43 #MMSTCK,aR0 #MSTCK ,aR0 BNE 1% DEC 7%: 63 MOV MOV MOV MOV R3 (SP)+,RS (SP) + R4 (SP)+ ,R3 (SP)+ ,R2 :BRANCH IF NOT COMPLETE JBRANCH IF NOT ;1S SECTOR COMPLETE ;BRANCH IF NOT ;SET SECTOR ;CLEAR SECTOR :1S REQUIRED NO OF SECTORS COMPLETE :BRANCH IF NOT ;POP STACK ..P(P STACK ::POP STACK ;;POP STACK INTO RS INTO R4 INTO R3 INTO R2 W CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JUL-78 10:10 054014 054016 054020 27-JUL-78 MACY11 30A(1052) DISK SIMULATION 012601 MOV MOV RTS D 12:41 2 PAGE 225 (SP)+,R1 (SP)+,R0 R1 ;;POP STACK INTO R1 ;:POP STACK INTO RO ;*READ ONE SECTOR OF DATA RNO: RCOM: 054022 054024 054026 054032 054036 054040 012137 012137 010146 005737 001403 012737 012702 012703 012337 004737 054022 054024 002024 177777 000402 051422 050414 050420 045320 REDATA: MOV MOV MOV TST BEQ MOV MOV 2%: 002024 045320 000017 050414 050420 3s: 4% ;NO. OF WORDS READ ;EXTRA STORAGE 0 0 MOV MOV JSR DEC BNE TST BNE CLR MOV MOV #258. .R2 ;SAVE NO. OF WORDS ONLY FOR INFORMATION SJEXTRA WORD ONLY FOR INFORMATION :;PUSH R1 ON STACK ;1S THIS AN ECC TEST ;BRANCH IF NO ;THESE BITS ARE TO GENERATE ECC ;256 WORDS PER SECTOR #D1SK,R3 (R3) +,a#WORD :S.G#READ ;READ (R1) +,3#RNO (R1)+,3#RCOM R1,-(SP) a#TSECC 1% #-1,a#TSECCG 2% a#TSECC 4% a#TSECCG (R3) +,a#WORD JSR DEC BNE PC ,a#READ R2 MOV RTS (SP)+ ,R1 R1 3% ;PLUS 2 ECC WORDS sPUINTE TC DISK SIMULATION ;READY TO READ CONTENTS ;1S 256 WORDS DONE? ;1F NOT BRANCH ;IS THIS AN ECC TEST ;BRANCH OUT IF YES :NO MORE ECC BITS ARE TO BE GENERATED :ONE DATA GAP, 14 TOLERANCE GAP ;SE:gY TO READ CONTENTS OF WORD s COUNT ;BRANCH IF 14 NOT DONE ;;POP STACK INTO R1 sRETURN SEQ 0224 SEQ 0223 C. CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 9658 9659 9660 9661 9662 9663 9664 9665 054136 054136 054142 054206 054210 054216 26~-JuL-78 10:10 104401 000421 104402 012777 000000 MACY11 30A(1052) DISK SIMULATION RPVECT: 054144 054136 27-JUL-78 125410 TYPE BR TYPOC MOV HALT :E 12:41 £ PAGE 226 ,65% 648 #RPVECT ,aRPVEC ;s TYPE ASCIZ STRING ;:GET OVER THE ASCIZ ;TYPE FROM PC ;RESTORE TRAP RP04 VECTOR s CHANGE TO CONTINUE SEQ 0225 SEQ 0224 054220 9673 054242 9669 9670 9671 9672 9674 9675 104407 054222 054226 054232 054236 005037 005037 005037 005037 054250 054252 001111 000416 054254 054260 032777 013746 012737 047620 002024 045320 002026 040000 000004 054300 054266 005737 177060 054272 012637 054300 054302 054306 022626 012637 23 054316 001404 054276 000463 054310 054320 054356 054364 054366 054372 054376 054400 054406 054410 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 054414 054416 054422 054430 054432 054440 054446 054452 054456 054462 054466 001102 054474 054502 054506 054510 001103 001115 001103 001000 124564 013737 4 105037 005037 000415 032777 001011 005737 001110 001106 013777 013716 000002 000004 TST 001103 001212 7%: 001212 001104 000001 054510 001102 001106 001110 001214 000001 001104 001212 001102 001106 001115 124440 $OVER 6% O#ERRVEC,=-(SP) #58 , aERRVEC 177060 (SP)+ ,a#ERRVEC $SVLAD BIT #81T08,aSWR CMPB aSWR,STSTNM CMPB BHI SERMAX , SERFLG 33 CMP MOV BR BEQ TSTB BEQ BIT BEQ (SP)+,(SP)+ (SP)+ ,a#ERRVEC 7% P 3 $OVER $ERFLG 3s #81T09,aSWR 43 $LPERR,SLPADR $OVER $ERFLG $STIMES i$ #BIT11,aSWR 1% $PASS CMP BGE 1%: MOV MOV $SVLAD: INCB MOV MOV CLR MOVB STIMES,SICNT $OVER #1,81CNT SMXCNT,STIMES $TSTNM (SP) ,SLPADR (SP) ,SLPERR $ESCAPE #1,SERMAX 3%: 001100 001104 #BIT14,35WR MOV 2R CLRR CLR HR BIT BNE TST 4%: 124532 a#NOSYNC a#TSECC a#TSECCG a#TESDTE BR BEQ 2%: 123737 101015 023737 002021 012737 013737 105237 011637 011637 005037 112737 MOV MOV $8: 124614 001406 005237 BIT MOV 000004 004000 CLR CLR CLR CLR BNE $XTSTR: BR 000004 127737 032777 001404 9694 9695 9696 9697 9698 9699 9700 9701 9692 9693 1%: 000004 124622 054346 054354 054336 054344 124670 000400 001462 105737 001421 9691 CKSWR 032777 054326 054330 054334 BEQ INC SOVER: e SYSMAC LIBRARY ROUTINES MOV MOV RTI $MXCNT: 4 1% $ICNT ;sTEST FOR CHANGE IN SOFT-SWR :CLEAR FLAG FOR HEADER ERROR COMMANDS :CLEAR FLAG FOR ECC TEST :EVEN IN AN ECC TEST EVERY CLOCK :DRIVE T'MING ERROR TEST ..LOOP UN PRESENT TEST? :2YES IF SW14=1 :2IF RUNNING ON THE ‘XOR'' TESTER CHANGE ::SAVE THE CONTENTS OF THE ERROR VECTOR ::SET FOR TIMEOUT ::TIME OUT ON XOR? :;:;RESTORE THE ERROR VECTOR :2G0 TO THE NEXT TEST :;CLEAR THE STACK AFTER A TIME OuT ;:RESTORE THE ERROR VECTOR ::LO0OP ON THE PRESENT TEST ;;LO0P ON SPEC. TEST? ::BR IF NO ;20N THE RIGHT TEST? ;:BR IF YES :2HAS AN ERROR OCCURRED? ..BR IF NO SWR<7:0> :2MAX. ERRORS FOR THIS TEST OCCURRED? ::BR IF NO ::LOOP ON ERROR? ;:BR IF NO ;;SET LOOP ADDRESS TO LAST SCOPE ;:ZERO THE ERROR FLAG ::CLEAR THE NUMBER OF ITERATIONS TO MAKE ::ESCAPE TO THE NEXT TEST ..IMUBIT ITERATIONS? BR IF YES ..IF FIRST PASS OF PROGRAM INHIBIT ITERATIONS ..INCREDENT ITERATION COUNT ..CHECK THE NUMBER OF ITERATIONS MADE :BR IF MORE ITERATION REQUIRED ..REIN!TIALIZE THE ITERATION COUNTER ;:SET NUMBER OF ITERATIONS TO DO :2COUNT TEST NUMBERS ::SAVE SCOPE LOOP ADDRESS ::SAVE ERROR LOOP ADDRESS ::CLEAR THE ESCAPE FROM ERROR ADDRESS :2ONLY ALLOW ONE(1) ERROR ON NEXT TEST $TSTNM,aDISPLAY ;:DISPLAY TEST NUMBER $LPADR, (SP) ::FUDGE RETURN ADDRESS ..FIXES Ps . NUMBER OF ITERATIONS o | 9668 SEQ 0226 SEQ 0225 el bl ol i .SBTTL PAGE 227 ol i 966%667 | e MACY11 30A(1052) 27=JUL=-78 12:41 SYSMAC LIBRARY ROUTINES il CZRJGCO,RP0O4/5/6 DSKLS CTRLRT 26=JUL-78 10:10 CZRJGC.P1 o 054726 9729 054554 112723 000040 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 054572 054574 054576 054600 054602 054604 054606 054610 054612 054614 054622 054626 054632 054634 054636 054642 054644 054646 054650 054652 054654 054656 054664 054666 054670 054672 054674 054676 054700 9763 054704 9764 9765 9766 9767 9768 9769 054712 054714 054716 054720 054722 054724 2%: 054716 3%: 005202 000774 060105 005702 001002 105716 100407 106316 103003 116663 052702 052702 110223 005720 020027 002746 003002 010502 000764 105726 100003 116663 105013 012605 012603 012602 012601 012600 104401 4$: 5%: 000001 000060 000040 177777 6%: 7%: 000010 8%: 177777 054726 016666 000002 012616 000002 023420 001750 000144 000012 1$: 177776 9%: 000004 R2 $DTBL (RO) ,R1 R1.R5 48 ;. CLEAR THE BCD NUMBER s;GET THE CONSTANT ;:FORM THIS BCD DIGIT ;:BR IF DONE INC BR ADD TST BNE TSTB BMI ASLB BCC MOvB BIS BIS MOvVB TST CMP BLT BGT MOV BR TSTB BPL MOVB CLRB MOV MOV MOV MOV MOV TYPE MOV $DTBL: MOV RTI 10000. 1000. 100. 10. #' RS+ R2 3% R1.R5 R2 5% (SP) 7$ (SP) 6% 1(SP) ,=1(R3) #'0,R2 #' _R2 R2,(R3)+ (RO) + RO.#10 2% 8% R5.R2 6% (SP) + 9% =1(SP) ,-2(R3) (R3) (SP)+,R5 (SP)+,R3 (SP)+,R2 (SP)+,R1 (SP) +,RO $DBLK 2(SP),4(SP) (SP)+,(SP) ;sSET THE FIRST CHARACTER TO A BLANK ;s INCREASE THE BCD DIGIT BY 1 ;:ADD BACK THE CONSTANT ;;CHECK IF BCD DIGIT=0 ;sFALL THROUGH IF 0 ;:STILL DOING LEADING 0'S? ;:BR IF YES ;:MSD? ::BR IF NO s:YES==SET THE SIGN :sMAKE THE BCD DIGIT ASCII ssMAKE IT A SPACE IF NOT ALREADY A DIGIT ;;PUT THIS CHARACTER IN THE OUTPUT BUFFER ;s JUST INCREMENTING ;sCHECK THE TABLE INDEX ::GO DO THE NEXT DIGIT ;:G0 TO EXIT ;.GET THE LSD ;:G0 CHANGE TO ASCII ;;WAS THE LSD THE FIRST NON-ZERO? ::BR _IF NO ;;YES==SET THE SIGN FOR TYPING ;:SET THE TERMINATOR :;POP STACK INTO RS ::POP STACK INTO R3 ::POP STACK INTO R2 ;:POP STACK INTO R1 ;:POP STACK INTO RO 2:NOW TYPE THE NUMBER :;ADJUST THE STACK ;;RETURN TO USER sl CLR MOV SuB BLT MOvB ARl 005002 016001 160105 002402 000001 ;;PUSH RO ON STACK :PUSH R1 ON STACK ;;PUSH R2 ON STACK :;PUSH R3 ON STACK ;;PUSH RS ON STACK ::SET BLANK SWITCH AND SIGN ;:GET THE INPUT NUMBER ;:BR IF INPUT IS POS. ;sMAKE THE BINARY NUMBER POS. ;sMAKE THE ASCII NUMBER NEG. ;s ZERO THE CONSTANTS INDEX ::SETUP THE OUTPUT POINTER ol 054560 054562 054566 054570 000055 RO,=(SP) R1,=(SP) R2.=(SP) R3,-(SP) R5,=(SP) #20200,-(SP) 20(SP) RS 1% RS #'=,1(SP) RO #$SDBLK ,R3 Bl 9730 9731 9732 9733 020200 000020 MOV MOV MOV MOV MOV MOV MOV BPL NEG mMovs CLR MOV il R i 010046 010146 010246 010346 010546 012746 016605 100004 005405 112766 005000 012703 SEQ 0227 SEQ 0226 otk il oA 054512 054514 054516 054520 054522 054524 054530 054534 054536 054540 054546 054550 2 i 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 G MACY11 30A(1052) 27-JuL-78 12:41 PAGE 228 CONVERT BINARY TO DECIMAL AND TYPE ROUTINE S CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JUL-78 10:10 MOVB 000002 60%: 3%: MOV ADD 000011 4%: CMPB 000200 055106 001156 5%: 6%: JSR CMPB 001154 000001 7$: DECB 8%: 9% : MOVB JSR 055106 055152 055152 124036 000002 000015 055154 #HT, (SP) ;sBRANCH IF <HT> #CRLF , (SP) s sBRANCH IF NOT <CRLF> (SP)+ ;:POP $CHARCNT 2% ;sCLEAR CHARACTER COUNT :GET NEXT CHARACTER ::G0 TYPE THIS CHARACTER :;IS IT TIME FOR FILLER CHARS.? s:IF NO GO GET NEXT CHAR. ;:GET # OF FILLER CHARS. NEEDED ..DOES A NULL NEED TO BE TYPED? ;BR IF NO--GO POP THE NULL OFF OF STACK ::GO TYPE A NULL ;:DO NOT COUNT AS A COUNT (RO)+,=(SP) 4% + (SP) (SP)+,RO 8s $FILLC,(SP)+ 2% $NULL ,~(SP) 1(SP) 6% PC,STYPEC $CHARCNT 7$ #' ,(SP) PC.STYPEC #7 ,$CHARCNT 2% $TYPEC: a$TPS $TYPEC 2(SP) ,a$TPB 124030 000002 000002 PC,STYPEC 9% (SP)+ 055152 000012 #2,(SP) ; :SAVE RO :2GET ADDRESS OF ASCIZ STRING ::PUSH CHARACTER TO BE TYPED ONTO STACK J2BR IF IT ISN'T THE TERMINATOR ::IF TERMINATOR POP IT OFF THE STACK :;RESTORE RO ;;ADJUST RETURN PC @2(SP) ,RO 5% 055152 000040 055106 000007 1$: CMPB INCB $CHARCNT : . WORD $TYPEX: RTS #CR,2(SP) 1% $CHARCNI STYPEX #LF ,2(SP) $TYPEX (PC)+ 0 PC 2 :RETURN <CR><LF> EQUIV :;TYPE A CR AND LF ;:LOOP ; ;REPLACE TAB WITH SPACE ::TYPE A SPACE ; ;BRANCH IF NOT AT ::TAB STOP ;;POP SPACE OFF STACK ssGET NEXT CHARACTER ; sWAIT UNTIL PRINTER IS READY ;;LOAD CHAR TO BE TYPED INTO DATA REG. 2. 1S CHARACTER A CARRIAGE RETURN? 2 ,BRANCH IF NO ::EE?;-CLEAR CHARACTER COUNT ;;1S CHARACTER A LINE FEED? s sBRANCH IF YES 2 COUNT THE CHARACTER ;s CHARACTER COUNT STORAGE (alal St Bad Lo s sLEAVE sl - Bownl adh anlh ol 2%: 000002 3% RO,=(SP) il 112046 001005 005726 MOV BR IF YES ..HALT HERE IF NO TERMINAL il 017600 1%: ..IS THERE A TERMINAL? il 010046 $TPFLG 1% el 000407 SEQ 0228 SEQ 0227 PAGE 229 Bl $TYPE: 001157 2 il 054752 054756 054760 054762 105737 100002 000000 TYPE ROUTINE H 12:41 ilcnll 9777 054736 054742 054744 054746 054750 27=JUL-78 il el 9770 9771 9772 9773 9774 9775 MACY11 30A(1052) B il CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10: 10 056235 055176 041444 000007 000176 001140 000011 055156 1%: cMP 3%: cMP 31%: TSTB 32%: INC 4%: MOVB 5%: RTI 001216 000023 123572 123564 123560 177600 000021 000100 123536 055156 000140 000175 000040 177520 055160 055160 055175 055164 055160 000176 001140 123444 $CKSWR: CMP 58 (SP) 423 328 SSER 221S IT A CONTROL-S? 2 :BRANCH IF NO asTKS ;:DISABLE TTY KEYBOARD INTERRUPTS (SP)+ ::CLEAN CHAR OFF STACK asTKS ::WAIT FOR A CHAR 31s :;LO00P UNTIL ITS THERE as$TKB, - (SP) :2GET THE CHARACTER #4C177, (SP) ;:MAKE IT 7-BIT ASCII (SP)+ 421 ;21S IT A CONTROL-Q? 318 ;:BRANCH IF NO #100,38TKS ;;REENABLE TTY KEYBOARD INTERRUPTS 2 JRETURN $TKCNT 22COUNT THIS CHARACTER (iP) M40 :21S IT UPPER CASE? 4 :2BRANCH IF YES (SP) ,M175 ;1S IT A SPECIAL CHAR? 43 :2BRANCH IF YES #40, (SP) ;sMAKE IT UPPER CASE (SP)+ ,a$TKQIN ;2AND PUT IT IN QUEUE $TKQIN :;UPDATE THE POINTER gIKOIN,”TKQEND ;2G0 OFF THE END? ::BRANCH IF NO #STKQSRT ,$TKQIN :2RESET THE POINTER #SWREG, SWR 15% a$TKS 15% : :RETURN 2:1S THE SOFT-SWR SELECTED ::EXIT IF NOT ::1S A CHAR WAITING? IF NOT, EXIT ;o - [alal Bl ndl i il il il il il el ol $TKSRY: MOVB B aal el 123700 ;sNUMBER OF ITEMS IN QUEUE ;s INPUT POINTER :;OUTPUT POINTER :;CLEAR COUNT OF ITEMS IN QUEUE #$TKQSRT ,$TKQIN ;sMOVE THE STARTING ADDRESS OF THE $TKQIN, $TKQOUT ;;QUEUE INTO THE INPUT & OUTPUT POINTERS. #$TKSRV,a#TKVE( ;2INITIALIZE THE KEYBOARD VECTOR #200,a#TKVEC+2 ::"BR"" LEVEL 4 a$TKB 2:CLEAR DONE FLAG #100,3$TKS :2ENABLE TTY KEYBOARD INTERRUPT PC :2RETURN TO CALLER as$TKB,~(SP) ::PICKUP THE CHARACTER #-C177,(SP) ;:STRIP THE JUNK (SP) 43 :2IS IT A CONTROL C? 13 2 JBRANCH IF NO ::TYPE A CONTROL-C (*C) LSCNTLC PC,STKINT ;:INIT THE KEYBOARD (SP)+ ;:CLEAN UP STACK OPERSEL ;sCONTROL C RESTART (SP) 47 ;2IS IT A CONTROL G? 2% ;:BRANCH IF NO #SWREG, SWR :21S SOFT-SWR SELECTED? 6% :2G0 TO SWR CHANGE #9. STKCNT ;:1S THE QUEUE FULL? 33 2 :BRANCH IF NO LSBELL ;2RING THE TTY BELL (SP)+ ::gLi?N CHARACTER OFF OF STACK 0 0 0 S$TKCNT SEQ@ 0229 SEQ 0228 N $TKQOUT: .WORD $TKINT: CLR PAGE 230 R 055160 055162 000060 000062 .WORD .WORD 2 IR $TKCNT: $TKQIN: 1 12:41 G TTY INPUT ROUTINE 055156 055156 27-JUL-78 R MACY11 30A(1052) T CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 27-JUL-78 MACY11 30A(1052) TTY INPUT ROUTINE CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P 26-JUL-78 10:10 123440 177600 000007 001134 055176 123402 00000 056247 056254 000176 000001 6%: 001135 056265 JSR CLR mMov8 TYPE $GTSWR: TYPE MOV TYPOC 19%: 123342 7%: 000100 041444 000025 000001 123274 8%: 9%: 000015 108: 000001 000100 123200 L1 123222 000002 000006 001223 001135 - 000004 000060 000002 2 #1 $AUTOB, PAGE 231 3:V¢S ;:MAKE IT 7-BIT ASCII ;1S IT A CONTROL=G? :2IF NOT, PUT IT IN THE TTY QUEUE ;;ARE WE RUNNING IN AUTO-MODE? ;:BRANCH IF YES ;;CLEAR CONTROL=G OFF STACK :2FLUSH THE TTY INPUT QUEUE ::DISABLE TTY KEYBOARD INTERRUPTS ;2SET INTERRUPT MODE INDICATOR . SMSWR ::TYPE CURRENT CONTENTS .SCNTLG SWREG,=(SP) , SMNEW <(SP) -(SP) asTKS 7$ #6,SP $INTAG,#1 8s #100,3$TKS OPERSEL (SP) 425 108 +SCNTLU #6,SP 19% (SP) ,#15 16% 4(SP) 118 2(SP) ,aSWR #6,SP .SCRLF ?%NTAG.I1 $ #100,3$TKS 16%: 2 + (SP) PC,STKINT a$TKS #1,8INTAG 2% 9 20%: 000067 <§P).a? #°C177, (SP) (SP) 43 056242 000006 055106 000060 as$TKB, = (SP) #°C177, (SP) as$TKB,=(SP) 123336 177600 000003 056235 000006 001135 mMovBe BIC CMP BNE CMPB BEQ TST —_— 117746 042716 021627 — 055502 J 12:41 PC,STYPEC %S:).l60 8 (SP) ,#67 8$ | #60, (SP) + 2(SP) 17% (SP) (SP) (SP) ;:ECHO THE CONTROL-G (*G) s 2SAVE SWREG FOR TYPEOUT 2260 TYPE=--OCTAL ASCIICALL DIGITS) ::PROMPT FOR NEW SWR ;:CLEAR COUNTER ;sTHE NEW SWR ;:CHAR THERE? ;:IF NOT TRY AGAIN ;:PICK UP CHAR ::MAKE IT 7-BIT ASCII 22IS IT A CONTROL=-C? :JBRANCH IF NOT :2YES, ECHO CONTROL-C (*C) ;:CLEAN UP STACK :;REENABLE TTY KEYBOARD INTERRUPTS? :2BRANCH IF NO ;:ALLOW TTY KEYBOARD INTERRUPTS 2 sCONTROL=-C RESTART :21IS IT A CONTROL-U? 2 :BRANCH IF NOT ::YES, ECHO CONTROL-U (*U) ;;IGNORE PREVIOUS INPUT ::LET'S TRY IT AGAIN 2:1S IT A <CR>? ;:BRANCH IF NO :2YES, IS IT THE FIRST CHAR? :2BRANCH IF YES ::SAVE NEW SWR ;:CLEAR UP STACK ::ECHO <CR> AND <LF> ::RE=-ENABLE TTY KBD INTERRUPTS? :BRANCH IF NOT :;RE-ENABLE TTY KBD INTERRUPTS 2 RETURN :2ECHO CHAR ::CHAR < 0? ::BRANCH IF YES :2CHAR > 7? ::BRANCH IF YES ::STRIP-OFF ASCII ::1S THIS THE FIRST CHAR :2BRANCH IF YES :2NO, SHIFT PRESENT CHAR OVER TO MAKE 22 ROOM FOR NEW ONE. ;2 SEQ 0230 SEQ 0229 177072 055162 000004 055162 055175 055164 055162 2%: 1%: 2%: 000177 108: 001222 4%: 056222 . 3%: 056222 000015 R3,-(SP) ; :RETURN :SAVE R3 ”TTYIN,RB ..GET ADDRESS BLOS RDCHR 4% ;:BR IF YES :2G0 READ ONE CHARACTER FROM THE TTY CMP #STTYIN+9. ,R3 (SP)+,(R3) MOvB CMPB #177,(R3) TYPE BR Frly)gg LSQUES 1% (gg).” BNE 33 #15,(R3)+ - MOV MOV MOV RTI ::BUFFER FULL? ;2GET CHARACTER ;1S IT A RUBOUT 2:SKIP IF NOT ;:TYPE A '?° ;:CLEAR THE BUFFER AND LOOP ;2ECHO THE CHARACTER ..CHECK FOR RETURN 2% -1(R3) ;LOOP IF NOT RETURN ..CLEAR RETURN (THE 15) (SP)+ _R3 ::RESTORE R3 ,SLF (SP) ,~(SP) 4(SP) ,2(SP) #STTYIN,4(SP) ;2TYPE A LINE FEED ..ADJUST THE STACK AND PUT ADDRESS OF THE as FIRST ASCII CHARACTER ON IT ::RETURN 000012 000 000012 020122 .BYTE .BYTE SCNTLC: .ASCIZ SCNTLU: .ASCIZ SCNTLG: .ASCIZ $MSWR: L.ASCIZ 0 ..STWGE FOR ASCII CHAR. TO TYPE &TEMINATOR 0 /*C/<15><12> ::CONTROL 'C** /*u/<15><12> :2CONTROL 'V’ /*G/<15><12> ::CONTROL ‘G’ <15><12>/SWR = / 053505 SMNEW: / .ASCIZ NEW = sFROM THE TTY B o _—p_— y_" -\ — NG G GTUN Wy W ] g G W G ;:PUT NEW PS ON STACK ;sPUT NEW PC ON STACK ::POP NEW PC AND PS ::WAIT ON A CHARACTER MOV TYPE 9%: 056272 RTI MoV 000002 000004 *:SIMULATE CONTROL=-U ; :DECREMENT THE COUNTER $TKCNT ;:GET ONE CHARACTER 2$TKQOUT,4 (SP) $TKQOUT ;UPDATE THE POINTER $TKQOUT, ”TKOEND ..DID IT GO OFF OF THE END? 2% : :BRANCH IF NO #$TKQSRT, STKOOUT .,RESET THE POINTER DEC MOvVB INC CMP BNE MoV CMPB BNE CLRB 177777 001224 006503 ?;KCNT $RDLIN: MOV 056224 056235 000004 056224 :2PUSH DOWN THE PC AND 2:THE PS :2GET READY FOR A CHARACTER 20$ N 055156 (SP) ,~(SP) 4(SP) ,2(SP) 4(SP) -(SP) #648,-(SP) BR $RDCHR: MOV MOV CLR CLR MOV RTI 1%: ;gg ;3GET THE NEXT ONE SN W 05515% ::TYPE ?2<CR><LF> W 056052 $QUES 7% GEN W 000002 TYPE BR VY G 000004 000004 ;;KEEP COUNT OF CHAR ;+sSET IN NEW CHAR SR VY WS 18%: 2(SP) -2(SP) , (SP) W 001222 INC BIS PRI 17%: il 005002 177776 SEQ 0231 SEQ 0230 PAGE 232 i 005266 056616 000667 2 il 056006 K 12:41 27-JUL-78 TTY INPUT ROUTINE MACY11 30A(1052) B CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26~JUL-78 10:10 2%: 38 #'0,(SP) 000060 48 #'7,(SP) 000067 :AND SAVE IT ..CLEAR DATA WORD ;;PICKUP THIS CHARACTER ;;1F ZERO GET OUT ;sMAKE SURE THIS CHARACTER ;:IS AN OCTAL DIGIT 000012 056434 A ¥ 001222 2% 3%: 5%: + (SP) R1,12(SP) R2,$HIOCT (SP)+,R2 (SP)+ ,R1 (SP)+,R0O CLRB TYPE .WORD TYPE BR $HIOCT: .WORD (SP)+ (RO) 0 . SQUES 1% 0 ;.%8 ;:STRIP THE ASCII JUNK ;;ADD IN THIS DIGIT : .LOOP ;;CLEAN TERMINATOR FROM STACK ;sSAVE THE RESULT ::POP STACK INTO R2 :2POP STACK INTO R1 ;:POP STACK INTO RO ;JRETURN ;;CLEAN PARTIAL FROM STACK :2SET A TERMINATOR ::TYPE UP THRU THE BAD CHAR. o I”.l D ad il o il sivb 177770 D el s3%d R2 #-C7,(SP) (SP)+ ,R1 . B sl sl el el 056424 ..PUSH RO ON STACK ::PUSH R1 ON STACK ;:PUSH R2 ON STACK ;:READ AN ASCIZ LINE ..GET ADDRESS OF 1ST CHARACTER il (SP)+,RO RO,5% R1 R2 (RO)+,=(SP) ..PROVIDE SPACE FOR THE NPUT NUMBER el il 18: (SP) ,~(SP) 4(SP),2(SP) RO,=(SP) R1,=(SP) R2,=(SP) il 000002 SEQ 0232 SEQ 0231 ‘lch.z ::TRY AGAIN .lF.. ;;HIGH ORDER BITS GO HERE i L 000004 $RDOCT: MOV L 12:41 R 011646 016666 010046 010146 010246 27=JUL=-78 ol 9981 2 PAGE 233 READ AN OCTAL NUMBER FROM THE TTY MACY11 30A(1052) Saalh CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JuL-78 10:10 $LPERR, (SP) $ESCAPE 5% $ESCAPE, (SP) s RETURN ~NN (alal ' — — p— g— N _—p— Y— — W W QS W W W YUY W W W W :BR IF NONE : :FUDGE RETURN ADDRESS FOR ESCAPE W ;:BR IF NO : :FUDGE RETURN FOR LOOPING ..CHECK FOR AN ESCAPE ADDRESS YT NN WO YN VSN YR W #BIT09,aSWR 4% ;sHALT ON ERROR ;;SKIP IF CONTINUE ;sHALT ON ERROR! ;s TEST FOR CHANGE IN SOF T-SWR ..LOOP ON ERROR SWITCH SET? PR 3% ol .SCRLF aSWwR ;;STRIP AND SAVE THE ERROR ITEM CODE ::SKIP TYPEOUT IF SET ::SKIP TYPEOUTS ;.60 TO USER ERROR ROUTINE ol A ¥ 20 PC,SERRTYP ;COUNT THE NUMBER OF ERRORS ::GET ADDRESS OF ERROR INSTRUCTION il 001214 3s: SERTTL (SP) ,$SERRPC #2,SERRPC @$ERRPC ,$1TEMB lBiT13.3$HR SKIP ..RING BELL il 001110 001214 122356 SuB MOvVB BIT BNE JSR TYPE TST BPL HALT CKSWR BIT BEQ MOV TST BEQ MOV RTI L SBELL ..BELL ON ERROR? i 001000 2%: INC MOV 1%IT10.BSUR B 056604 001223 122372 TYPE ..SET THE ERROR FLAG 7% sDON'T LET THE FLAG GO TO ZERO S$TSTNM,aDISPLAY ::DISPLAY TEST NUMBER AND ERROR FLAG i b b b oroc N — — S 122376 020000 1%: NS 001216 001112 001116 000002 INCB BEQ - MOV BIT BEQ ; ;TEST FOR CHANGE IN SOF T=SWR :SET ERROR FLAG it 122460 122450 7%: #-1 ,a¥CRFLGS $ERFLG g 001102 002000 CKSWR MOV R 002006 SEQ 0233 SEQ 0232 T 177777 001103 2 PAGE 234 i CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRIGC.P11 26-JUL-78 10: 10 M MACY11 30A(1052) 27=-JUL-78 12:41 RROR HANDLER ROUTINE CZRJGCO,RP04/5/6 DSKLS CTRLR1 26=JUL-78 10:10 CZRIGC.P11 056604 104401 010046 005000 N 2 MACY11 30A(1052) 27=-JUL-78 12:41 PAGE 235 ERROR MESSAGE TYPEOUT ROUTINE 001223 TYPE MOV .SCRLF RO,=(SP) RO ?:S]TEHB.RO 001114 $ERRPC,~(SP) 001116 R 2%: #SERRTB,RO (RO)+,2% 3s :;FORM TABLE POINTER 0 ;" ERROR MESSAGE'' POINTER GOES HERE ;' 'CARRIAGE RETURN'' & 'LINE FEED" :;PICKUP ‘DATA HEADER'' POINTER :;SKIP TYPEOQUT IF 0 ;;TYPE THE 'DATA HEADER'' ;2" DATA HEADER'' POINTER GOES HERE ..;EO?RI?GE RETURN'' & ‘LINE FEED"' .SCRLF 3s: (RO)+,4% 5% 0 .SCRLF 4%: 5%: R1,=-(SP) (RO)+,R1 9% (RO)+,RO (RO)+ 7$ a(R1)+,-(SP) 6%: 8% a(R1)+,-(SP) 8%: 056754 001223 056754 000 9%: 108: 118 ;IF ITEM NUMBER IS ZERO, JUST ..SAVE $ERRPC FOR TYPEOUT ;:GO TYPE--OCTAL ASCII(CALL DIGITS) ;;ADJUST THE INDEX SO THAT IT WILL WORK FOR THE ERROR TABLE i 001226 056656 001223 ::SAVE RO ;sPICKUP THE ITEM INDEX ;:GET OuUT 1%: 001223 056674 ::"'CARRIAGE RETURN'' & "LINE FEED'' BEQ TYPE BR MOV MOV TYPE RTS » .ASCIZ (R1) 9% 118 6% (SP)+,R1 (SP)+,RO .SCRLF PC fF 7 ;:PICKUP 'ERROR MESSAGE'' POINTER ::SKIP TYPEOUT IF NO POINTER ::TYPE THE 'ERROR MESSAGE'' ;;PICKUP ‘'DATA TABLE'' POINTER :;BR IF NO DATA TO BE TYPED : :P1CKUP DATA FORMAT'* POINTER ..'UCTAL" ‘DECIMAL"’ <BR IF DECIMAL ::SAVE @a(R1)+ FOR TYPEOUT ;:GO TYPE--OCTAL ASCII(ALL DIGITS) ;:SAVE @a(R1)+ FOR TYPEOUT ::G0 TYPE--DECIMAL ASCII WITH SIGN ..IS THERE ANOTHER NUMBER? :BR IF NO ..TYPE TWO(2) SPACES LOOP : :RESTORE R1 : ;RESTORE RO ;.'TARRIAGE METURN'' & "LINE FEED'’ sRETURN ::TWO(2) SPACES SEQ 0234 SEQ 0233 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=-JUL-78 10:10 10090 10091 10092 10093 056760 000000 000001 057205 000002 000001 000006 000005 8 3 MACY11 30A(1052) 27=JUL=78 12:41 PAGE 236 BINARY TO OCTAL (ASCII) AND TYPE 057203 057203 057205 057202 057205 $TYPOS: MOV MOovB MOvB ADD BR $TYPOC: MOVB MOVB $TYPON: MOVB MOV MOV MoV move NEG ADD d d cd s D ed b ed d d b e d e 2%: MOovB MOV CLR ROL BR ROL 3$: MOV ROL 1$: 057204 — 10122 ROL ROL DECB BPL BIC BNE 177770 TST d = ed oD D d d D d —d e MOvB 4%: NN D d D elelelelolelelelelele ]l 10 —ngomwomaum-os 000006 057204 057203 000012 5%: 000040 057200 057200 057202 7%: BEQ INC 000002 8s%: $OCNT: $OFILL: $OMODE: R4 #6 R4 R4 , SOMODE S$OFILL.R4 12(SP) ,RS R3 R5 3% R5 RS RS R5.R3 R3 $OMODE 7$ #177770,R3 48 R4 5% R4 #'0,R3 #' ,R3 R3,8% BGT BLT 2% 6% BR 2% TYPE DECB MOV MOV MOV 000004 1(SP) ,SOF ILL (SP) +,$OMODE +1 #2,(SP) $STYPON #1,80FILL +1 #6,SOMODE #5,8S0CNT R3,-(SP) R4 ,=(SP) R5,=(SP) +1 ,R4 $OMODE BIS BIS MovB INC 6$%: a(SP) ,=(SP) .8% $OCNT R4 (SP)+,RS (SP)+ R4 (SP)+,R3 MOV MOV 2(SP) ,4(SP) (SP)+,(SP) .BYTE BYTE 0 0 RTI .BYTE .BYTE .WORD 0 0 0 ;sPICKUP THE MODE ;;LOAD ZERO FILL SWITCH s :NUMBER OF DIGITS TO TYPE s sADJUST RETURN ADDRESS ::SET THE ZERO FILL SWITCH ::SET FOR SIX(6) DIGITS ;:SET THE ITERATION COUNT ;:SAVE R3 ::SAVE RS :2GET THE NUMBER OF DIGITS TO TYPE s sSUBTRACT IT FOR MAX. ALLOWED ::SAVE IT FOR USE ssGET THE ZERO FILL SWITCH ;sPICKUP THE INPUT NUMBER ::CLEAR THE OUTPUT WORD : sROTATE MSB INTO ‘‘C*’ ::G0 DO MSB ;;FORM THIS DIGIT ;:GET LSB OF THIS DIGIT ;sTYPE THIS DIGIT? ;:BR IF NO ;:GET RID OF JUNK ::TEST FOR 0 ; :SUPPRESS THIS 0? ;:BR IF YES ::DON'T SUPPRESS ANYMORE 0'S ;:MAKE THIS DIGIT ASCII :2MAKE ASCII IF NOT ALREADY ;:SAVE FOR TYPING ;2G0 TYPE THIS DIGIT ;sCOUNT BY 1 ;:BR IF MORE TO DO ::BR IF DONE ;s INSURE LAST DIGIT ISN'T A BLANK ;:G0 DO THE LAST DIGIT ::RESTORE RS ::RESTORE R4 ;sRESTORE R3 :2SET THE STACK FOR RETURNING 2 sRETURN ;:STORAGE FOR ASCII DIGIT ;:TERMINATOR FOR TYPE ROUTINE ;;OCTAL DIGIT COUNTER ;sZERO FILL SWITCH ;sNUMBER OF DIGITS TO TYPE SEQ 0235 SEQ 0234 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 26=JUL-78 10:10 CZRJGC.P1 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 057206 057210 057214 057216 057220 057222 057226 057230 057232 057240 057242 057244 010046 016600 005740 111000 006300 016000 000200 011646 016666 000002 057230 054736 10158 10159 10160 10161 10162 10163 10164 10165 057256 057260 057262 057264 057266 057270 057272 057274 055554 055464 056026 056116 056276 042602 042654 043172 10154 10155 10156 10157 057246 057250 057252 057254 057004 056760 057020 054512 MACY11 30A(1052) 27-JuL-78 TRAP DECODER $TRAP: 000002 057242 000004 000002 MOV MOV TST MOvB ASL MOV RTS $TRAP2: MOV MOV RTI S$TRPAD: .WORD $TYPE $TYPOC $TYPOS $TYPON $TYPDS $GTSWR $CKSWR $RDCHR $RDLIN $RDOCT T.SCOP CHECKT WAIT.T . 12:41 PAGE 237 RO,-(SP) 2(SP) ,RO =(RO) (RO) ,RO RO $TRPAD(RO) ,RO RO (SP) ,=(SP) 4&(SP) ,2(SP) $TRAP2 ;.CALL=TYPE ;;CALL=TYPOC ;;CALL=TYPOS ;;CALL=TYPON ;;CALL=TYPDS ;. CALL=GTSWR ; ;CALL=CKSWR ;;CALL=RDCHR ;. CALL=RDLIN ;;CALL=RDOCT ;;CALL=SCOP1 ;.;CALL=CHECKD ;;CALL=WAT SEQ SEQ 02360235 ::SAVE RO ::GET TRAP ADDRESS : ;BACKUP BY 2 ;:GET RIGHT BYTE OF TRAP ;;POSITION FOR INDEXING ;;INDEX TO TABLE ::GO TO ROUTINE :sMOVE THE PC DOWN :;MOVE THE PSW DOWN ;;RESTORE THE PSW TRAP+1(104401) TRAP+2(104402) TRAP+3(104403) TRAP+4(104404) TRAP+5(104405) TRAP+6(104406) TRAP+7(104407) TRAP+10(104410) TRAP+11(104411) TRAP+12(104412) TRAP+13(104413) TRAP+14(104414) TRAP+15(104415) TTY TYPEOUT ROUTINE TYPE OCTAL NUMBER (WITH LEADING ZEROS) TYPE OCTAL NUMBER (NO LEADING ZEROS) TYPE OCTAL NUMBER (AS PER LAST CALL) TYPE DECIMAL NUMBER (WITH SIGN) GET SOFT-SWR SETTING TEST FOR CHANGE IN SOF T-SWR TTY TYPEIN CHARACTER ROUTINE TTY TYPEIN STRING ROUTINE READ AN OCTAL NUMBER FROM TTY My LOCAL SCOPES CHECK DVA,RDY,DPR,DRY WAIT LOOP 057276 057304 057312 012737 012737 057442 000340 121606 057446 057350 057442 057446 057446 057446 MACY11 30A(1052) 000024 000026 $PWRDN: MOV #SILLUP,a#PWRVEC ;,SET FOR FAST UP MOV MOV MOV MOV MOV MOV MOV R1 .-(SP) R2.=(SP) R3,-(SP) R4 ,-(SP) RS5,-(SP) aSWR,-(SP) SP,$SAVR6 :2PUSH R1 ON STACK ::PUSH R2 ON STACK ;:PUSH R3 ON STACK :2PUSH R4 ON STACK ;:PUSH RS ON STACK :2PUSH aSWR ON STACK s +SAVE SP -2 ; sHANG UP $SAVR6, SP ::GET SP BR RO, -(SP) ;3PUSH RO ON STACK #SPWRUP ,a#PWRVEC ;.SET UP VECTOR 000024 $PWRUP: MOV 000024 000026 CLR INC BNE MOV MOV MOV MOV MOV MOV MOV MOV MOV ;:WAIT LOOP FOR THE TTY $SAVR6 $SAVR6 ::WAIT FOR THE INC 1% ;:0F WORD (SP)+,aSWR :;POP STACK INTO aSWR (SP)+,RS ;:POP STACK INTO RS (SP)+ R4 ;:POP STACK INTO R4 (SP)+ ,R3 ::POP STACK INTO R3 (SP)+,R2 :2POP STACK INTO R2 (SP)+,R1 ;:POP STACK INTO R1 (SP)+ RO ;:POP STACK INTO RO #SPWRDN ,a#PWRVEC ;;SET UP THE POWER DOWN VECTOR #340,a#PWRVEC+2 ;;PRIO:7 .WORD S$POWER MOV 1%: TYPE MOV $PWRAD : R!;I(I)RD 047520 PAGE 238 #340, a#PWRVEC +2 ;:PRIO:7 mh 000024 3 MOV MOV $PWRMG: 057440 057442 057444 057446 057450 057456 12 41 DOWN AND UP ROUTINES 121540 057276 000340 27-JUL-78 0D 042527 $ILLUP: HALT BR $SAVR6: 0 $POWER: .ASCIZ ”ILLlP NPWRVEC’ ..SET FOR FAST DOWN (PC)+,(SP) BEGIN =2 <15><12>'POWER"’ ;REPORT THE POWER FAILURE ;;POWER FAIL MESSAGE POINTER :;RESTART AT BEGIN ; JRESTART ADDRESS ::THE POWER UP SEQUENCE WAS STARTED :; BEFORE THE POWER DOWN WAS COMPLETE :sPUT THE SP HERE SEQ 0237 SEQ 0236 oo CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P11 26=-JuL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 26=JUuL~78 10:10 CZRJGC.P1 MACY11 -2 30A(1052) 27-JUL-78 12:41 POWER DOWN AND UP ROUTINES SEQ 0238 SEQ 0237 PAGE 239 :'tttit't"i.Q*Qt.tti'""Qt'.ttfit"tli'tfi't'ttttt.ttt'ti.'tl'tt'ttl.tt . % s*ERROR AND MESSAGE TABLE CONDIMENTS % ,;fi'tfittttttfittttti.tt‘tittii'*tfittit.fitittt&ttl..lttttt.titfit't.tfi"'tit 051127 040504 020116 0471M 053440 043516 053504 042522 051105 105 047440 020107 044440 042101 051117 044524 051101 020105 052123 EM1: .ASCIZ /WRONG DATA IN READING OR WRITING HARDWARE REGISTER/ 051117 EM2: .ASCIZ /ERROR ON EM6: .ASCIZ /ERROR ON WRITE HEADER AND DATA/ 051124 020122 044522 040524 EM11: .ASCIZ /CONTROLLER OR DRIVE STATUS/ 052123 044501 EM14: .ASCIZ /REGISTER FAILED/ 054105 052116 05151 EM15: _ASCIZ /NON EXISTENT REGISTER, EM16: .ASCIZ /WAIT LOOP FAILED/ EM17: .ASCIZ /WRITE CHECK FAILING/ EM20: .ASCIZ /REGISTER FAILING/ EM21: .ASCIZ /INTERRUPT FAILING/ 052123 044501 000 043516 DATA COMMAND/ PROGRAM ABORTED./ CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26-JuL-78 10:10 051122 020116 047111 051105 032124 MACY11 30A(1052) 27=JUL-78 F 12:41 NE POWER DOWN AND UP ROUTINES 3 PAGE 240 SEQ 0239 LASCII /ERROR ON DRIVES PRESENT =/<15><12> 047125 023517 047125 051440 043516 020123 020107 006461 LASCII /THE UNIT NO'S FOUND BY SETTING RHAS USING RHER1/<15><12> 020051 052117 042505 020110 047125 023517 047125 LASCII /(T4) DO NOT AGREE WITH THE UNIT NO'S FOUND/<15><12> 047514 020107 047047 020075 051040 024040 030443 005015 020072 040525 052122 042524 042040 047440 042510 052122 020114 .ASCII /BY LOOKING FOR "NED' = 0 IN RHCS2 (BIT #12)/<15><12><15><12> LASCII /NOTE: ON DUAL PORT SYSTEM, A DRIVE ON OTHER PORT WILL /<15><12> LASCII /NOT GIVE 'NED', BUT WILL GIVE RHAS RESPONSES/<15><12> .ASCIZ /HENCE THERE WILL BE AN EXTRA DRIVE/ .ASCIZ /LO0OK AHEAD REGISTER AT THE BEGINNING OF SECTOR IS IN ERROR/ 051117 051104 050040 052116 EM22: 023440 051516 020105 020105 041040 042440 042040 000 020113 EM24: SEQ 0238 C CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26=JUL-78 10:10 040505 044507 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 G 27-JUL-78 12:41 POWER DOWN AND UP ROUTINES MACY11 30A( 105 2) 3 PAGE 241 SEQ 0240 SEQ 0239 020104 052123 EM25: LASCIZ /LOOK AHEAD REGISTER IS IN ERROR/ EM30: LASCII /CURRENT CYLINDER DOES NOT MATCH DESIRED CYLINDER REGISTER/<15><12> LASCIZ /AFTER A SEEK AND LASCII /ECC GENERATED IS INCORRECT/<15><12> LASCIZ /EVERY WORD ON THIS SECTOR IS THAT GIVEN IN ‘DATA USED'” LASCII /ON READ COMMAND, AFTER DATA AND ECC HAVE BEEN READ,/<15><12> LASCII /ECC REGISTERS OR RHER1 ARE IN ERROR/<15><12> 051511 051511 051105 051122 054503 051105 020123 040515 042504 020104 042116 043505 EM31: INIT/ 051525 EM32: 051040 047503 026104 042505 042101 105 043505 051522 020122 CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JuL-78 10:10 10371 052101 MACY11 30A(1052) 27-JUL-78 H 12:41 POWER DOWN AND UP ROUTINES 051105 020105 051122 020061 047111 051117 054514 046040 030440 051524 3 PAGE 242 LASCII /ONLY LOWER 11 BITS OF PATTERN REG. CAN BE READ/<15><12> LASCIZ /THIS SHOULD MATCH LOWER 11 BITS OF GOOD ECC1/ SEQ 0241 SEQ 0240 EM33: LASCIZ /HIGH COUNT BIT NOT SET AFTER 38859 CLOCKS/ 032470 041517 020110 020124 047516 020124 020122 020071 051513 051105 020117 EM34: LASCIZ /ZERO DETECT BIT NOT HIGH WHEN 32 BIT ECC REG. HAS 21 ZEROS/ EM35: LASCII /POSITION REGISTER OR 11 BITS OF PATTERN REGISTER INCORRECT/<15><12> LASCII /LOWER 11 BITS OF PATTERN REGISTER SHOULD MATCH LOWER/<15><12> CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 053517 030461 020123 047517 030503 040504 046126 051105 041040 043117 020104 005015 020124 o 005015 05211 043440 041505 PAGE 243 SEQ 0242 SEQ 0241 LASCII /11 BITS OF GOOD ECC1/<15><12> .ASCIZ /DAT ENVLOP GOOD POSITION AND N-CODE ZEROS ARE IN OCTAL/ EM36: .ASCIZ /ON READ COMMAND WITH NON-CORRECTABLE ERROR 'DCK' AND °"ECH' SHOULD BE SE EM37: .ASCII /PROGRAM ERROR BIT #10 IN RHCS2 DID NOT SET/<15><12> .ASCIZ /IF POSITION REGISTER =10040 OR 10041, IT IS GOOD/ .ASCII /RHWC DID NOT = 0 UPON COMPLETION OF READ/<15><12> .ASCIZ /OR WRITE HEADER AND DATA/ 020105 052103 020116 041440 10453 10454 020060 041510 042111 051440 047040 052105 050040 047511 044507 036440 020060 030060 052111 047507 051517 020116 052123 053510 020104 020075 047117 046120 020116 040505 020103 047516 020060 041440 052105 043117 006504 020122 020105 051127 042510 EM40: - 10427 10428 10429 - MACY11 30A(1052) 27-JUL-78 12:41 POWER DOWN AND UP ROUTINES 051105 042040 PAGE 244 SEQ 0243 SEQ 0242 O 042101 042116 000101 POWER DOWN AND UP ROUTINES 3 OOt 040440 052101 062432 062440 062446 26=JuL-78 10:10 d 12:41 O 10483 10484 10485 CZRJGC.P1T 27-JUL=78 TM MACY11 30A(1052) lvilwlevlevlvlvleololvlivivie] CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JuL-78 10:10 K MACY11 30A(1052) 27-JUL-78 12:41 POWER DOWN AND UP ROUTINES 020114 020122 062450 062456 CPHALT: .ASCII 3 SEQ 0244 SEQ 0243 PAGE 245 /FATAL ERROR = SEE DOCUMENT LISTING/<15><12> ASCIT 7 7€155<12><207><377><377><207><377><377><207><377><377> LASCII /THE CONTROLLER OR DEVICE HAS GONE OFFLINE, LOST/<15><12> JASCII /'READY', BECOME UNAVAILABLE, OR HAS STATUS BITS/<15><12> .ASCIZ /WHICH CANNOT BE CLEARED/ 020105 042522 020110 052117 046103 000104 4 020040 000 020040 SPACE8: SPACE2: .ASCII .ASCIZ / /7 020103 020040 051505 DH1: LASCII /PC TEST REG. GOOD RECEIVED/<15><12> ASCIZ 7/ NO ADDR. DATA DATA / LASCII /PC TEST WORD GOOD BAD /<15><12> DH2: / \vlele] 051524 (vl le] vlelvivivivivivivivivivivivivivivivivy, 047111 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.PN 26=JUL-78 10:10 A 27-JUL-78 12:4 g MACY11 30A(1052) POWER DOWN AND UP ROUTINE 3 SEQ 0245 SEQ 0244 PAGE 246 020104 DH11: LASCII /PC LASCIZ NO NO DATA DATA TEST FAILING CONT. CONT. CONT. CONT. NO REG ADR RHCS1 RH(CS2 RHDS1 RHER1/ TEST FAILING CONT. CONT. CONT. CONT. CONT. NO REG ADR BAD REG RHC(CS1 RHCS2 RHDS1 RHER1/ TEST REG ADR / /<15><12> 030522 020040 051505 043040 043516 027124 047117 DH14: LASCII /PC .ASCIZ 0 030523 042510 020040 051505 051040 051104 /<15><1 mmmmMmmMmmm 020103 052040 020040 044514 047117 041440 CODDDDOODDDDDDDDODDDDDDODDDD oo LASCIZ DH15: LASCIZ /PC CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.PN 26-JuUL-78 10:10 020040 042524 M3 27-JUL-78 12:41 PAGE 247 POWE R D OWN AND UP ROUTINES 020040 DH16: ONOWVSWNN=O RRES ZRRBRRREER 10608 p 020103 052040 020040 027124 047117 041440 SEQ 0246 SEQ 0245 MACY11 30A(105 2 ) DH17: /<15><12> LASCII /PC TEST WAIT BIT REG LASCIZ /7 NO PC WANTED ADDRESS CONT. / LASCII /PC TEST CONT. CONT. CONT. CONT. CONT. /<15><12> LASCIZ / NO RHBA RHDB RHW( RHCS1 RHCS2 / LASCII /PC TEST CONT CONT CONT CONT CONT /<15><12> LASCIZ / NO RHER1 RHER2 RHER3 RHAS RHDS1 / REG m "TmTrTTmaTaATAIMMmMmmMmmMmMmmMmMmMmMmmMmMm DH20: [ R e e 3SR EEEEE BRI RS SRR eY 064104 mmMmmmmmmm 0040 = . 020040 020124 047117 041440 020040 0201%4 020040 020061 020040 DH21: /PC TEST CONT CONT CONT LASCIZ /7 NO RHCS1 RHAS RHDS1/ LASCII /PC TEST RHAS RHCS2/<15><12> LASCIZ /7 NO UNITS UNITS/ LASCII /PC TEST RHDST BAD GOO0D SECTOR SECTOR /<15><12> LASCIZ / NO CONT. RHLA RHLA NO CLOCK / LASCII /PC TEST PC OF FAILING CONT. CONT. CONT. CONT. Q 020040 02004 /<15><12> LASCII DH22: I XEKwm DH24: ittt TTIITITIIIIITTITIION 120 020040 051504 000 020103 SEQ 0247 SEQ 0246 — 051501 044122 020040 3 PAGE 248 XK 10654 10655 10656 10657 10658 N 27-JUL-78 12:41 MACY11 30A(1052 ) POWER D OWN AND UP ROUTINES DH26: 044514 047117 /<15><1 KEXXEERERER CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P 26-JUL~78 10:10 DH27: .ASCII /PC NO JSR REG ADD RHCS1 RHCS2 RHDS1 RHER1 TEST PC OF FAILING GOOD RECEIVED/<15><12> NO JSR REG DATA DATA / TEST PC OF REG. GOOD BAD /<15><12> NO JSR ADDRESS DATA DATA / TEST WORD GOOD CONT. CONT. X2 LASCIZ DH30: LASCII /PC .ASCIZ el lelelel i 3 020103 052040 020040 043117 drdrdrdda b LASCIZ TTITITITITT 046111 047507 020040 0531 020040 047516 oo | 020040 027124 047117 020040 042524 020040 el 004 020101 DH31: LASCII /PC BAD CONT /<15><1 el 027124 047117 041440 SEQ 0248 SEQ 0247 r 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 : :AGE 249 MACY11 30A(1052) 27-JUL=-78 12 41 POWER DOWN AND UP ROUTINES 2RBrACCCOCRXRRXRXRXEARXR CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P11 26-JUL-78 10:10 | 10766 10767 10768 065464 065472 065500 10770 10771 020056 052116 020040 020056 10774 065544 020040 020040 020040 10785 065645 120 10798 065757 066044 066052 066060 066066 020040 02004 030523 020040 051040 041520 020040 02004% - s o X 000040 g 020040 N 040 R 020040 o 000 020103 R 8 S 066070 3588 CBVC AR AN =O RRaaRRRRREE i 10808 020040 SEQ 0249 SEQ 0248 DH32: DH33: LASCIZ 7 NO NO DATA DATA RHCS1T RHDS1 RHER1 / .ASCII /PC TEST PC OF WORD GOOD BAD CONT. CONT. CONT. LASCIZ 7/ NO JSR NO DATA DATA RHCST RHDS1 RHER1 .ASCII /PC TEST PC OF WORD GOOD CONT. CONT. CONT. /<151 TN T MMM T T TN O N OO O D DD DO OO OO0 OO OO OODOOTD 020040 020040 020104 PAGE 250 MMM MMM 020040 042117 040502 065514 065522 042122 047507 020040 020040 052116 047503 & VOO0 MACY11 30A(1052) 27-JuUL-78 12:41 POWER DOWN AND UP ROUTINES meo cC CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1i 26-JuL-78 10:10 | 020124 RHER1 NO JSR NO DATA LASCII /PC TEST GOOD GOOD WRITTEN WRITTEN DATA ECC1 ECC2 ECCT TEST GOOD GOOD PATTERN POSITON GOOD NO ECCt ECC2 REG.REG. TEST PC OF RHMR POSITON PATTERN /<15><12> .ASCII /PC LASCIZ DH36: RHDS1T / .ASCIZ DH35: RHCST LASCIZ LASCII /PC ECC2 USED SEQ 0250 SEQ 0249 o DH34: 4 PAGE 251 / YUVUVUVOODUUUOUUOUUODTD 020040 020040 020040 020122 047516 020040 020040 051503 27-JuL-78 /<15><12> ODDODDDDDDDTVTVTTTTO D 12:41 POWER DOWN AND UP ROUTINES MACY11 30A(1052) / RHER1T POSITON REG. /<15><1 / TDODIODIDITOT CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JUL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26~-JUL-78 10:10 020103 051040 043117 046510 27-JUL=78 MACY11 30A(1052) POWER DOWN AND UP ROUTI NE 4 SEQ 0251 SEQ 0250 PAGE 252 020040 020122 051517 CONT. REG. REG./ NO JSR TEST POSITON POSITON GOOD GOOD PATTERN DATA ECC ECC2 ECC .ASCII /PC N-CODE/ 108% GOOD ECCT ENVLOPE ZEROS/ .ASCII /PC TEST CONT./<15><12> NO RHWC/ 0 ocococoo 3%? 2RRR= -: cco © DH40: .ASCIZ T T -1 LASCIZ b ol o] DH37: o B o] DOV OD LASCIZ RaRaRa e e e I S 888888 .EVEN 002032 DT1: .WORD $ERRPC, TSTNM,REGADR, $GDDAT , $BDDAT ,0 002032 000000 002032 001126 DT2: .WORD $ERRPC, TSTNM,ERWORD , $GDDAT 0 DT3: .WORD $ERRPC, TSTNM,ERWORD , SGDDAT , $BDDAT ,0 e o B o ] 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 E 12:4 g 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 b d = o o o PAGE 253 002032 001712 000000 002032 001714 001716 002032 001122 001736 DT11: .WORD $ERRP(C, TSTNM,$BDADR,(S1,(S2,DS1,ER1,0 001122 001712 000000 001200 DT14: .WORD $ERRPC, TSTNM, $BDADR, $8DDAT,(S1,CS2,DS1,ER1,0 DT15: .WORD $ERRPC,TSTNM,$TMP1,0 002032 001176 001204 001126 DT16: .WORD $ERRPC,TSTNM,$TMP3,$TMP1,$TMPO, $BDDAT, 0 002032 001706 000000 001710 001714 DT17: .WORD $ERRPC,TSTNM,BA,DB,W(C,(S1,(S2.0 002032 001730 000000 001716 001732 DT20: $ERRPC,TSTNM,ER1 ,ER2 ,ER3,AS,DS1,0 001714 000000 000000 001720 001202 DT21: $ERRPC,TSTNM,(S1,AS,DS1,0 DT22: DT24: $ERRPC,TSTNM,0 002014 001712 000000 002014 001126 DT26: $ERRPC,TSTNM,PCJSR,$BDADR,(S1,(S2.DS1,ER1,0 DT27: $ERRPC, TSTNM,PCJSR ,REGADR, $GDDAT , $BDDAT, 0 002014 001126 DT30: $ERRPC, TSTNM,PCJSR ,REGADR, $GDDAT , $BDDAT , 0 047624 001714 000000 002014 001126 001716 DT31: $ERRPC, TSTNM,ERWORD , $GDDAT , $8DDAT,CS1,DS1,ER1,0 DT32: .WORD $ERRPC, TSTNM,PCJSR,ERWORD , $GDDAT ,$8BDDAT,CS1,DS1,ER1.,0 002014 001714 000000 045314 052424 DT33: .WORD $ERRPC,TSTNM,PCJSR,ERWORD , $GDDAT,CS1,DS1,ER1,0 045314 001744 000000 002014 001746 DT35: .WORD SERRPC,TSTNM,GECC1,GECC2,EC2,ECT,POSITI ER1,0 DT36: .WORD $ERRPC,TSTNM,PCJSR MR EC1,EC2,0 001744 045316 DT37: .WORD $ERRPC,TSTNM EC1,POSITI,GECCT,GECC2,EC2,DATENV,ZCODE,O $ERRPC,TSTNM,DST,$BDDAT ,$TMP1,$TMP2 ,$TMP3,0 $ERRPC, TSTNM,GECC1,GECC2,WECCT,WECC2,DISK,0 DT34: SEQ 0252 SEQ 0251 VUVDDDODDIDDIIID 10947 & P 270707 07:07:07:37:07:07: 0717172 10945 10946 F 27-JUL-78 12:41 MACY11 30A(1052) POWER DOWN AND UP ROUTINES wrnmwnmuinuninntntnininuainuanuann 10943 10944 067354 067362 067370 067374 067402 067410 067416 067424 067426 067434 067442 067444 067452 067460 M) = 10934 10935 10936 10937 10938 10939 10940 10961 10942 0 ol ) CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26-JUL-78 10:10 CZRJIGCO,RPO4/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26-JUL-78 10:10 000000 001746 045332 045334 070020 070026 001116 000000 002032 001126 DT40: .WORD $ERRPC,TSTNM,$BDDAT,0 000 000 000 000 000 000 000 000 000 000 DF1: .BYTE 0.0,0,0.0 001 DF2: .BYTE 0.0.,1,0 000 000 001 DF3: .BYTE 0.0,1,0,0 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 DF11: .BYTE 0.0.0,0.0,0,0 000 000 000 000 000 000 000 000 000 000 DF14: .BYTE 0.0.0.0,0,0,0,0 000 000 DF15: .BYTE 0.0.0 0.0,0,0.0 000 000 DF17: .BYTE 0.0.0.0oooooo 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 DF20: .BYTE 0.,0.0,0,0,0.0 000 000 000 000 DF21: .BYTE 0.0,0,0.0 000 DF22: .BYTE 0.0.,0,0 000 000 000 000 DF24: .BYTE 0.0,0,0,0.0,0 000 000 000 000 000 000 000 DF26: .BYTE 0.0.0,0,0,0,0,0 000 000 DF27: .BYTE 0.0.0.0.0.0 000 000 000 000 000 000 001 000 000 001 000 000 000 000 000 000 001 000 DF30: .BYTE OIOIOOOJO‘O DF31: .BYTE 0.0,1,0,0,0,0.0 000 000 000 000 000 DF32: .BYTE 0.0.0,1,0,0,0.0.0 DF33: .BYTE 0000001 .0.0.0.0 000 000 DF34: .BYTE 0.0,0,0,0,0.,0 D D D D D e RRRRRR j=lelelelelelelelelele] W WWW SRReSRRRR322223322288 D D d D D D D D D d D D D e e D e D ) ) d ) D D D D ) D e D D ) D e e D D e D ) D ) D ) D D D VB W =200 SIS e ) ) e D e e D el d D — ) — e D & PAGE 254 070010 070016 §8SR8R88 3 10990 10991 10992 10993 10994 10995 10996 }0997 G MACY11 30A(1052) 27-JUL=78 12:41 POWER DOWN AND UP ROUTINES 070100 070103 070104 070107 070112 070113 070116 070120 070123 070124 070146 070151 070154 070157 070162 070165 070167 070172 070216 000 000 000 000 000 000 000 000 000 000 000 000 DF16: SEQ 0253 SEQ 0252 DF35: .BYTE 0,0,0,0,0,0.,0.0 000 000 DF36: .BYTE 0,0.0,0,0,0 000 000 DF37: .BYTE 0,0,0,0,0.,0,0,0,0 DF40: .BYTE 0,0.0 000 000 000001 .EVEN .END R R 000 070252 R 000 B 070246 000 R 11055 000 g 070243 000 g }}ggz 000 g 000 070240 g 000 070235 g 000 g 000 g 000 000 P 070232 D 000 SEQ 0254 SEQ 0253 I DI S 000 000 11051 11056 11057 11058 000 000 000 070227 11052 000 070222 070225 11049 11050 000 PAGE 255 D 070217 4 S 11046 11047 11048 H MACY11 30A(1052) 27-JUL=-78 12:41 POWER DOWN AND UP ROUTINES PR CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1T 26~JuL-78 10:10 5024 5726 5774 5746 10950 10953 7050 7145 7244 1782« 3511 4585 5704 5772 6918 7048 7143 7242 5937 5937 6092 5956 5956 10946 5948 5964 6345 8153 1942 7931 1957 7933 1972 2039 2056 2072 2088 2100 2024 9692 10040 7926 7903 7898 7928 9673 7905 10032 7452 7448 74564 74544 1782 1743« 4588 2988 8607 8602 1881 7896 2024 2024 2024 2025 7910 9684 5845 6920 =] = 5716 10196 10025 9699 7912 7921 7923 74414 ] ] ] f e = o o o o e f o o o o | | o = = o o o o ] o 3338 3270 3124 el e e e e e e e o o e o o o 502# BRuun R e e e S e e T e S P = V& WNV=O0 WW AIITOOD s N §\§gg§§g§§ghg RN BIT13 = 020000 BIT14 = 040000 BIT15 = 100000 BITZ2 = 000004 BIT3 = 000010 BIT4 = 000020 BITS = 000040 BIT6é = 000100 BIT7 = 000200 BIT8 = 000400 BIT9 = 001000 BLT1 042320 042342 BLT2 042352 BLT3 BPTVEC= 000014 -t BA 001710 = 000010 BAI BASECH 046244 004240 BEGIN_ BEGIN2 004230 BITST 042272 BITO = 000001 BITO0 = 000001 BITO1 = 000002 BIT02 = 000004 BITO3 = 000010 BITO4 = 000020 BITO5 = 000040 BITO6 = 000100 BITO7 = 000200 BITO8 = 000400 BITO9 = 001000 BIT1 = 000002 BIT10 = 002000 BIT11 = 004000 BIT12 = 010000 14204 ViV T W v VIVIOWO O R awadaadaan e e e d 2 O 00 — - e N\) =2 NN = 002016 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 SEQ 0255 SEQ 0254 1549 86034 NNN NS vl ATTENT ATO = AT1 = AT2 = AT3 = AT4 = ATS = AT6 = AT7 = A16 = A17 = & PAGE 257 27-JUL-78 CROSS REFERENCE TABLE == USER SYMBOLS MACY11 30A(1052) CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26=-JuL-78 10:10 ABS = 000200 ACL = 000040 ACU = 100000 ADDMOD 000204 ADTIMO 047230 AOE = 001000 AS 001732 ATA = 100000 ATABLE 004220 I 12:41 5087 4777 10039 4815 5521 10159# 6330 042620 6646 1859 COMWHD COUNTD CPHALT 5376 050416 052466 051064 062450 = 000015 044026 CRLF CSF CsUu cs1 = 000200 = 000002 = 000010 001714 cs2 001712 cyL 047504 DAREAD 047560 DATENV 045332 DAWORD 047564 DB 001704 DCK = 100000 = 000100 DCL_ DCLEAR 002050 DDISP = 177570 DENVL = 000200 DE1__ = 000040 DFF20 = 000002 070030 DF1 5453 6015 5465 6035 2678 2736 2793 4627 5933 4646 5999 4746 6172 5950 6771 6886 7750 6819 8196 6576 6853 8618 3721 6388 4608 7066 4720 7161 3905 5102 3949 5177 4043 5251 4778 5689 7746 4804 5843 7845 4890 5946 8011 4918 6181 104874 5088 6331 5152 6673 5163 6767 5927 6169 6257 3344 3668 7826 78814 5140 5214 7984 5283 5013 10976 2698 10946 5207 6650 7563 7567 7573 7615 7622 10935 10938 10946 10959 5215 6658 2746 2803 2828 2848 5498 5619 5621 5740 5826 5920+ 9076+ 10988 8126 8129 5065 87454 5823« 1459 5847 6567 4394 6939 3276 4331 043514 CR CRC 5393 5912 5925+ 6744 6752 5284 5348« 6831« 5356 6834+ 5818« 6844 6167+ 7726% 7823 7983 87995 5276+ 7721« 7729 = COMPAR 5842 7844 6758 8009 CLR = 000040 047344 COMHD COMPA 5688 7745 6544 6263 CLDISK 5372 75608 — = - 4917 4675 6273 CCA=td=dtd CKSWR = 104407 CLAREA 042536 68154 S SeoecccCCCCCCCeec 001726 037004 001752 104414 043044 042654 SEQ 0256 SEQ 0255 e CA CAT CC CHECKD= CHECKE CHECKT 4 4k 109964 = CZRJIGCO,RP0O4/5/6 DSKLS CTRLR1 26-JUL-78 10:10 CZRJGC.PN J PAGE 258 27=JUL-78 12:41 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS DH11 DH14 DH15 DH16 DH17 DH2 DH20 063201 063361 063561 063612 063755 063056 064140 062733 064323 064443 064546 064731 065134 065277 065442 065645 066070 066273 066456 066661 067020 067236 = 000004 051422 DISPLA 001142 DISPRE 000174 DLT = 100000 DL64 = 000020 = 000001 oMD £EE€CE oo | 070246 1 = DH21 DH22 DH24 DH26 DH27 DH30 DH31 DH32 DH33 DH34 DH35 DH36 DH37 DH40 DIGB DISK 110004 110344 110374 £LEC 070217 070227 070235 110034 110234 070151 070157 070167 070200 070210 DF40 DF5 DH1 992 ELELELELELELE DF 35 DF 36 DF 37 SEQ 0257 SEQ 0256 110514 110554 699 984 105714 105944 105994 106174 105374 106374 106574 106724 823 107044 107274 107454 107634 650 108114 105224 105514 x DF 30 DF 31 DF 32 DF 33 DF 34 070046 070055 070065 070070 070075 070035 070104 070113 070120 070124 070133 070143 070041 4 PAPANNN<X DF 11 DF 14 DF15 DF16 DF17 DF2 DF 20 DF 21 DF 22 DF 24 DF 26 DF 27 DF3 K PAGE 259 27=JUL-78 12:41 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 106844 107854 oA CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.PN 26=JuL-78 10:10 108534 108754 4722 5485 2194 5474 6029 7965 1466+ 2208 5478 6036 8078 9713« 10024+ 2803 2878 2881 1991 2012 3743 2289 3803 3690 6037 8521 5198 4826 5486 4939 5592 6153 8536+ 6647 9640 2484 2556 3924 3182 3998 6042 8535+« 3855 5308 5808 6741 6776 3297 4063 4114 5337 5913 3380 4184 8859 8976 9554 036340 = 000400 DST DSWR DS1 001720 = 177570 001736 001740 052426 010000 001000 067312 067354 DT20 DT21 067464 067504 DT22 DT24 D126 D127 DT3 DT30 DT31 D132 DT33 DT34 DT35 D136 D137 DT40 DVA 4418 4456 7144 9006 9235 9385 4465 6989 8720 9388 7589 4023 6802 7634 4071 7586 4146 759, 7589 7594 7629 6730 6413 = 000200 DT DTAGAP DTE = DTSY = DT1 DT11 DT14 DT15 DT16 DT17 DT2 4261 067374 067416 067426 067444 067326 067520 067526 067546 067570 067340 067606 067624 067646 067672 067714 067734 067756 067774 070020 = 004000 ECDATA 045312 ECH = 000100 ECI = 004000 045736 ECORR ECTEST 045350 001744 ECI 001746 EC2 EMTVEC= 000030 057460 EM1 057631 EM11 057664 EM14 057704 EM15 057755 4544+ 1458 5724 10938 10956 8943 8946 109284 710 109354 6703 5780 10953 10959 2575 2645 2657 8527« 5744 10950 6709 10969 6797 10972 6919 8459 PPAAAAPRAA DRY 5007 7049 4236 6361 109564 109324 109694 109724 10982# 109854 2905 7622 8988+ 2907 2915 2917 2939 2941 2949 8529+ 7567 8986+ 9003« 9005+ 9051« 9055+ 9066+ 9070+ 5149 5223 5368 5838 5941 6178 7741 7840 8026 8997 9014 9062 9077 7478 0 10988 10988 1530+ 832 PAPAAAAAN DOG DPR SEQ 0258 SEQ 0257 27=JUL-78 12:41 PAGE 260 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 6137 4587 7000 4 PAAPAAPPAAAANAR CZRJIGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1 26=-JuL-78 10:10 L 102314 7563 1566+ | 4 Em7 EM2 EM20 EM21 EM22 EM24 EM25 EM30 EM31 EM32 EM33 EM34 EM35 EM36 EM37 EM40 EM6 ERCLFC 057776 057543 060022 060043 060065 060545 060640 060700 061021 061144 061433 061505 1 062077 062210 062345 057572 020570 102494 ERCRC ERCS2C ERFLGS 102214 10225# 3474 3482 3490 3506 3515 3523 052662 013434 3466 35824 2359 2367 2375 2383 2399 2408 2418 002006 4681~ 4702 5229+ 5949+ 6784 4716% 5234 4820+ 5316 6189 7028+ 4895+ 4915 6043* 6875* 4783« 5302+« 6101~ 6954 6920 1568+ 7050 9676 7145 9677 9682+ 3730 3791 5315+ 6963 9415+ 10972 10938 3841 5403« 6968+ 9422+ 10976 10950 4766 5166 5941 4784 5207 6178 10021+ ERHDGP 052664 ERHEAD 052660 045734 ERPOS ERR = 040000 ERRVEC= 000004 ERSTAR 047316 ERUNIT 047314 ERWORD 047624 1539« 5310+ 001716 - 00 SR FMT22 = 010000 00 =2 = —d —d = =d = ER2 001722 ER3 001730 EXT1 = 000001 EXT10 = 000010 EXT2 = 000002 EXT20 = 000020 EXT4 = 000004 EXT40 = 000040 FEN = 000200 FER _ = 000020 FILLEC 046110 002034 FIRST WO O = —d e =d b ER1 6368 8902+ 9497« 5790 8906+ 10930 6222 4651 5074 5516 4667 5091 5818 8 * 6947 8948« 10932 6315 10969 10935 4682 4750 5375« 6277 7119% 6285 7210+ 7074 9426% 3958 5871« 7169 9448% 4051 5876+ 7268 9456+ 4097 6290+ 10959 10969 10972 10976 4861 5223 4878 5240 4896 4975 5296 3912 5408« 7783+ 9462+ 6315 1499« 4432 5058 5449 5133 5838 5149 5920 6271 6346 5276 6429 6469 AAAPARAAAAAARAAAANAANAANANAAARPA A 624 AAAAA 6 SEQ 0259 SEQ 0258 PP CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P 26=-JUL-78 10:10 oo M 27=-JUL=78 12:41 PAGE 261 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 6650 FNWORD 052702 772 4656% 7741 4755+ FOUT 52706 93,0 93464 FORMAY 051066 FRMATT 033764 FSYNER FUTABL GCRC GECC1 GECC2 052656 002042 052652 045314 045316 GNS = wxaxss U GO = 000001 GRV = 000010 GTSWR = 104406 HADTMP 045336 HARDER 045330 HCCRCE 044430 HCE = 000200 HCI = 002000 HCRC = 000400 HDESYN 052666 HDWSYN 051420 HEADER 051374 HEDGAP 047520 HEDSYN 047522 051406 HEGAP HT = 000011 IAE = 002000 = 000100 IE = 000001 ILF ILLEGL 002104 = 000002 ILR IOTVEC= 000020 IR = 000100 IXE = 004000 91064 6245# 9125 9280 3084 9451% 503 1482 1485 4659 82584 82614 1621 1794 7383 8596 6744 6764 6831 6834 6859 7840 4980% 7978 93434 1548 1562 1566 1623 1820 7385 8598 1625 1824 7387 8602 1627 1828 7392 8606 1653 1843 739, 9663 1655 1845 8557 10153 1657 1847 8561 10154 1659 1851 8576 10155 1705 3883 8580 10156 1710 7283 8584 10157 1714 7287 8588 10158 1786 7374 8592 10159 1790 7378 85% 10160 3318 4068 7042 3403 4132 7138 3641 4144 7237 3645 4189 8161 3696 4255 8191 3757 4267 8723 3761 4312 9238 3809 4370 6608 80074 1488 1490 5008 5010 5734 2496 3872 3112 3929 3191 4018 10165 1492 1494 1496 101584 8475 6477 8095 3195 8117 93264 6512 8099 6548 8105 6580 8110 8120 9500% 8126 8129 87604 87714 9188# 9782 7046 8909+ 8929 8950« 9818 7141 7240 3114 3095% 3100 1443% 1444+ 047510 S061s SI36r KEY2 047512 5062+ KIPARO= KIPAK1= KIPAR2= KIPAR3= KIPARG= 172340 172342 172344 172346 172350 5054 5254 5254 5254 5254 5254 1517 9475 10988 10988 4457 7820+ 554 5254 1498 9472 10982 10982 3250 4021 6369 * 721 9265H 10979 10979 10164 5496 1168# 7120 6259 8535 8536 10163 1406# 1079# S02# 7102 4983 8519« 8520+ 10162 10634 1505 82834 82704 6437 1085# 1199¢ 1086# 9258+ 91894 9186# 8738+ 8739+ 8900 S04 1088# 10484 1078% 8154 7029 4869 8386+ 8387« 10161 1047# 3869 8026 7011 4758 8300 8301 1915 KIPARS= 172352 KIPARG= 172354 KIPAR7= 172356 7818 4B66* 9256+ 13884 1025# KEY1 6670 5617 11864 * 5137* 7982+ 2573 2635 2665 2681 2696 2826 2846 2881 2972 2978 2988 5210s 5279« 5351« S0 5923% 6165% 6253% 6653% 6747% 6839 7724» 5211% 5280% 5352« 5822« 5924 6166% 6254% 6654% 6748+ 6840% 7725+ 5964 B7484 6053 6903 7483 O | 6572 SEQ 0260 SEQ 0259 AAAAAANANANA MACY11 30A(1052) 27-JUL=78 12:41 PAGE 262 CROSS REFERENCE TABLE == USER SYMBOLS AAANR CZRJIGCO,RP04/5/6 DSKLS CTRLR1 26-JuL-78 10:10 CZRJGC.H11 & B N LAD LERR LF LST 042600 042266 = 000012 = 002000 MAKECY 045172 MASK 042264 MCLK = 000002 MCPE MHS = 020000 = 001000 MID MIDDLE 5254 5254 5254 5254 5254 5254 5254 S25# 13334 76455« 764388 502# 10704 75248 7444% 9813 6705 7528 7485 9818 6708 6799 6802 6920 8486 9063 8487 9388 8494 9398 8495 9581 8861 9583 8862 9584 4419 764378 10984 10544 11664 MINX 045162 045060 = 000004 8156« 3139 MMVEC MOL MPE MR MRD = 000250 = 010000 = 000400 001734 7190 5254 10724 1027# 1327# = 000020 11614 MSE = 000020 MSTCK = 000010 1099% 11014 1100# 4560 9388 MR = 000040 MxF = 001000 NCODE 045322 NCOUNT 045324 NED = 010000 NEM = 004000 NHS = 002000 NOPERA 002042 11024 1028# 82674 82684 10314 10304 11674 1389% NOUNIT 001776 NOWORD 047552 NUNIT 002000 ocyL = 100000 OF 001724 OFREV = 000200 OFSETC 002074 OF100 = 000004 0F200 = 000010 OF25 = 000001 0F400 = 000020 OF50 = 000002 OF800 = 000040 OPERSE 041444 1340 5281* 13428 12384 13234 1198# 14024 11934 11944 11914 11954 11924 11964 73704 NOSYNC 047620 5 6243% SEQ 0261 SEQ 0260 MO ] KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDRS= 172312 KIPDR6= 172314 KIPDR7= 172316 LA 001750 B MACY11 30A(1052) 27-JUL-78 12:41 PAGE 263 CROSS REFERENCE TABLE == USER SYMBOLS s PP CZRJGCO,RP0O4/5/6 DSKLS CTRLRT CZRJGC.P1 26-JuL-78 10:10 4629 T441x 4496 11844 B163# 81454 6414 7465% 4497 3985 3986 1839 1847 8721 10985 8722 6454 7466 4498 6494 76467 4499 6530 7470% 4525 6635 7471 4526 6731 7472+ 4527 6990 81824 4528 4574 8868 9601 4575 8981 9602 4578 4579 4244 4464 7001 7002 7093 7094 7189 4461 8860 9580 4462 8862 9583 4464 8864 9584 4496 8865 9600 4497 8981 9601 4525 9048 9610 4526 9387 9611 6597« 8786 88434 8917 8941 9669 4119 4120 4243 9236 9237 9562 8979 8984 8992 9001 9009 3997 4561 9555 4137 4563 9556 4260 4564 9557 4458 4578 9558 4459 4579 9562 6502+ 6538+ 6564* 9049 3149 B46E* 2143 5964 11854 3241 6422% 1674% 6255« 1727« 9064 9389 9399 8864 9585 - 8865 9586 8867 9600 8998 9603 8621 3309 6462* 1720 6655% 1728% 4008 4009 4069 9836 9902 1727 6749% 3448 1765« 6841x 7302+ 87944 9048 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.PN 26-JUL-78 10:10 OPI = 020000 OR ouT = 000200 047570 PCJSR 002014 PAR PAT = 000010 = 000020 PGE = 002000 PIE1 = 100000 PIE10 = 000100 PIE1? = 000040 PIE12 = 000020 PIE13 = 000010 PIE14 = 000004 PIE1S = 000002 PIE16 = 000001 PIE17 = 100000 PIE18 = 040000 PIE19 = 020000 PIE2 = 040000 PIE20 PIE21 PIE22 PIE23 = = = = 010000 004000 002000 001000 PIE26 PIE27 PIE28 PIE29 = = = = 000100 000040 000020 000010 PIE24 = 000400 PIE2S = 000200 PIE3 = 020000 PIE30 = 000004 PIE31 = 000002 PIE32 = 000001 PIE4 = 010000 PIES = 004000 PIE6 = 002000 PIE7 = 001000 PIE8 = 000400 PIE9 = 000200 PIP = 020000 PIRQ = 177772 PIRQVE= 000240 PKACK 002100 PLU _ = 020000 POSITI 10914 10264 8783 10814 10234 13564 9226 10294 82214 82304 82314 82324 82334 82344 82354 82364 82374 82384 82394 82224 82404 82414 82424 82434 8244k 82454 82464 82474 82484 82494 82234 82504 82514 82524 82244 82254 82264 82274 8228# 8229 10734 2694 8790 1925 1897 7560* 9227+ 5013 8370 7561 10959 7612« 2843 7613« 2859 8007+ 2881 8008« 6053 6902 7483 10962 10966 10972 10976 10985 8184+ 8185+ 8454+ 8455+« 8711+ 8712 4145 4190 4268 4313 8385 B34S 8376 8353 B376 8370 8309 8317 3646 3697 3762 3810 3873 3930 4022 4070 8464 8472« 8473 8475 8518~ 10982 10988 19564 2086+ 1879« 1581 2037« 12344 1970« 2054~ 2098+ 2070« 1928 1915 2744 8801# 8328 1955« PRCA 011726 PRCS1 010774 PRCS2 010730 PRDST 011552 PRE = 000020 PRERT 011320 PRER2 011616 PRER3 011772 PROF 011662 2696 8796 SEQ 0262 SEQ 0261 8337 8370 2485 11874 8269% 011254 3 MACY11 30A(1052) 27-JUL=78 12:41 PAGE 264 CROSS REFERENCE TABLE == USER SYMBOLS 502# 5024 14044 11704 045326 PRBA £ 8410 20874 18804 1863« 20384 19714 20554 20994 20714 18644 D 5 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JuL-78 10:10 MACY11 30A(1052) 27-JUL=78 12:41 PAGE 265 CROSS REFERENCE TABLE == USER SYMBOLS PROG 2415 2585 3123 1471« 7280% 7371« 2636 5497 2656 5618 2682 5715 S02# 82854 1449+« 8339+ 8330« 8598 = 001000 PRWC PRO PR1 PRZ2 PR3 PR4¢ = = = = = PR6 PR7 = 000300 = 000340 PRS 011210 000000 000040 000100 000140 000200 = 000240 PS = 177776 PSU = 000001 PSEL PSW PUTREG = 002000 = 177776 042224 PWRVEC= 000024 P12 045342 P22 P24 1069# 1940« 5024 502# 5024 5024 5024 19414 5024 5024 502# 1052# 502# 7614 8038 054024 96284 9633+ RDCHR = 104410 RDHEAD 047626 9954 8740 101604 88514 1517 7387 = 000020 RCYL 047610 RCOM RDLIN = 104411 RDOCT = 104412 RDY = 000200 READ 050420 READAT READIN RECALI REDATA REFOR 002066 002102 002046 054026 REGSA1 REGADR REINTO 82844 5124 11794 88164 9986 1049# 2951 8875 8347« 8355« 8851~ 101614 5781 6704 6798 7585 2697 5735 2745 5773 2801 6054 2827 6220 2847 6284 3102 6678 3113 6772 3150 6959 5012 74128 5304 7562 1450% 8340+ 10166* 8369 10167+ 10176% 10179+ 10191+ 10192+ 8331~ 8368 8580 101624 2905 6718 8895 2907 6812 8936 2915 7478 8940 2917 7563 89734 2939 7573 9642 2941 7615 9650 2949 7026 B348+ 8356 1909+ 2863% 3226% 4220% 7076% 056446 1530 100224 2490 2581x 3217 3722 3833 4014 4128 4267% 4376+ 4721 5145 8481 8374 8375 7394 8562 5832 5934 5154 1605 2811x 3050« 4174% 16949' 8413 8886 5079 042270 14134 2580 3211 3716 3827 3950 4089 4251 4375« 4714 5104 8407 1908 3325 8887 5362 3180 4246 96324 003154 5745 1905 3257 8879 13994 14054 13914 8798 14004 002070 5725 12314 82864 82874 RAW 3530 5024 045344 045346 045340 000200 P3 RA SEQ 0263 SEQ 0262 2575 5956 8889 2645 5958 8891 2657 6370 8893 1920« 2871+ 3286% 4297% 7171x 5228 1929% 2884* 3354% 4342% 7270% 6183 1996% 2908+ 3582« 4404% 74394 2018+ 2918+ 3678+ 4618x 7443+ 2299 2942+ 3732+« 5738x 8098+ 2470+ 2952% 3793« 5959« 8109« 2527% 2979+ 3843x 5969% 8119+ 2614* 2994+ 3914+ 5977« 8130« 2711x 3015+« 3960* 6397+ 8201+« 2718+ 3023+ 4053+ 6707+ 10928 2763+ 3042+ 4099+ 6801« 10962 2497« 2584 3637 3753 3865 4021% 4144 4268x 4389 4812 5179 2511 2588+ 3645% 3761% 3872« 4022« 4145+ 4269* 4395 4813 5219 2518 2589« 3646* 3762+ 3873« 4023« 4146+ 4282 4439 4816 5253 2562 2590« 3647+ 3763« 3874+ 4037 4159 4288 4584% 4817 5342 2571% 2601 3663 3778 3899 4044 4165 4312« 4585« 4825 5343 2574% 2605 3669 3785 3906 4068+ 64189% 4313~ 4587+ 4926 5364 2575« 3187 3696 3809« 3929+« 4069* 4190% 4314% 4588+ 4927 5601 2576% 3194 3697+ 3810+ 3930+ 4070+ 4191+ 4315+« 4589+ 4930 5448 2577« 3195+ 3698+ 3811+ 3931+ 4071+ 4192« 4327 4603 4931 5454 2578x 3197« 3699+ 3812+« 3932« 4072« 4204 4332 4609 4938 5455 2579+ 3198« 3700+ 3813« 3946 4085 4209 4366 4713 5070 5459 5466 5869 6367« 6510 6902% 7035 ;ggg* 5467 6004 6368+ 6545 6903% 7045« 5823' 1393 5024 14034 4361 1275# 5219+ 1955 5292« 2280% 5364% 2547« 5834« 3033 5936 7836% 12904 4897+ 6671% 2086 5006% 6765« 2287% 5075% 6866* 2554% 5150% 6868+ 3178+ 5224% 7030 12854 3757« 5010 1879 3859% 5734 2151 3869% 6340* 2282« 4008+« 6352 2485% 4018+ 6362« 2071x 2087+ 2099% RHBAE 001700 13044 RHBA RHCA RHCC 001634 001652 001676 RHCS1 001640 RHCS2 001636 RHCS3 001702 RHDB 001630 RHDST 001644 RHDS1 001662 RHDT 001664 RHEC1 RHEC2 001670 001672 RHERT RHER2 RHER3 RHLA RHMR 001642 001646 001654 001674 001660 7009+ 13004 4123 1599 7100 1558 3607 7542 12764 8148+« 1582 5713« 5845 2055« 13054 12734 1534 2763 12874 4LB87% 6763+ 2797« 2037 4996% 6858« 1295# 1802 1681 1804 1294# 3131 3991 8161~ 1629 5948+ 2278% 2807 2284% 5073% 6906 3248 1683 1807 7737« 7418 8189+ 1680 6335« 2294 2811 2551% 5148x 7020 3316 1688 1809 5772+ 2281% 6336 2633 2833 3176% 5222« 7111x 6707 1690 1830 7270 7545 8094 8098 8104 3812 2289 1970 12884 12914 2054 2098 2285« 2288« 3381« 4004 4307% 6730« 7235 3401+ 4063* 4357% 6989+« 8160 3602« 4114% 4371x 7000+ 8190« 3932 2290% 3690% 4119% 4418 7001+ 8458 2286+ 5296 2553% 5368« 1299%# 12934 3699 1985 1289 5149« 2070 5223« RHSN 001666 12964 1790 12744 3204 1940 3226 1829 2279% 3242 2552% 2555« 1831 2489 3244 5694 6174 6443 6881 6919« 7067 7243% 5708 6208 6465 6893 6920+ 7131 7244% 5812 6353 6466 689+ 6934 7141% 7255 5813 6365« 6483 6898+ 6940 7142« 7261 5834 6256+ 6509 6899+ 7008 7143« 7737 3175« 5972 8023+ 3371% 5977 8151+ 4665% 6174x 4764 6269% 4B76% 6343% 4989+ 6666* 5070* 6760 5145~ 6855+ 3378+ 5297% 7121* 3622% 5371x 7216% 3631x 5841x 7219% 3748+ 5944x 7744 3991x 6179% 7843« 4431+ 6272+ 8015« 4683+ 6333 8155+ 4785+ 6347+ 8187+ 2494x 4123% 6376 2549+ 4132% 6397 3181x 4246% 6715 3191x 4255+ 6809 3373« 4361* 7042« 3606% 4370% 7138« 3641% 4457+ 7237% 3747« 5008+ 7476 2548+ 2568x 2691 2840 3305« 3372« 1971+ 5015 2038+ 5712« 8557 1863 8404 1899« 5658 6124 6426 6606 6918+ 7061 7242% 8191+ 1771~ 3312 1632 5586 6092 6425 6605 6916+ 7050% 7241% 8201 3303 12864 5585 6078 6389 6586 6914% 7049+ 7240% 8197 8410 3244 001650 001632 7196* 5703 1297# 12984 RHOF RHWC 1628 5578 6017 6383 6569 6906% 7048+ 7230 6345 2689« 2853 3375% 5295« 7202« 6801 1693 1832 2283% 2550« 3376 3379« 5698 5700 8566 1864~ 7461x 2690% 3369 3605% 5367% 7740+« 7544 1695 2163 3374% 8569 1880 7480 2704 8584 1897+ 8723« 1941+ 7543 8153+ 2705 9238+ 1956+ 3404 4429% 5837« 7839+ 8563 4453 5940% 8020+ 2711 2718 2739« 2753 4473 6177« 8152« 4544 6270% 8188+ 4672« 6344 4775+ £££9+ 1710 2165 1773 2168 1775 2170 1794 2173 1797 2175 1799 7149 [aka 7229 7248 5696 7130 8109 8116 8119 8124 8130 4072 2484% 4192 2556% 4315 2557% 4376 3082+« 4472 3099+ 4542 3182+ 3985+ 4243+ 6453+ 7136 9235« 3240+ 3986+ 4244+ 6493+ 7188« 9236+ 3297« 3997+ 4260+ 6529+ 7189+ 9237+ 3380+ 3998« 4261+ 6634+ 7190+ 9384 3177« 5838% 3377« 5941x 4009* 6178+ 4432+ 6271% 4682+ 6346% 4784+ 6670 4896+ 6764+ 5005+ 6859+ 5074+ 7029+ 2504 3263 2527 3286 2546+ 3302 2561 3303 2 3 3006 3331 3174« 3354 3186 3370+ 3743+ 4120% 4452 7002« 8720« 3803« 4137+ 4628* 7040 8721« 3855+ 4138+ 5007+ 7092+« 8722« 3924+ 4184 6361 7093 8857 3980+ 4236% 6413% 7094x 9124 b 1292¢ 5573 6016 6370+ 6568 6905% 7047% 7162 b 001656 5543 6009 6369« 6546 6904* 7046% ga;g SEQ 0264 SEQ 0263 no &> RHAS 5 W WO RELEAS 002052 RESVEC= 000010 RETCL 002076 E MACY11 30A(1052) 27-JUL=78 12:41 PAGE 266 CROSS REFERENCE TABLE == USER SYMBOLS R CZRJGCO,RP04/5/6 DSKLS CTRLRT CZRJIGC.P1T 26=-JUL-78 10:10 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJGC.P1 26-JUL-78 10:10 3636 3938 4275 £ 3707 3655 3960 4030 4342 4987« 4297 4873« 6173« RH70 002040 RH70CK RKEY1 RKEY2 005364 047614 047616 RMR RNCTR1 RNO RNWAT1 RPVEC RPVECT RPO6 RSETR RSYNC = RTN 006024 RUNCTR RUNWAT SAVDT SAVER SAVSN SC 052464 054022 052544 001626 054136 002036 047612 047606 047342 047422 002010 043312 002012 =1 SCOP1 = 104413 052734 SCRC 052724 SCYL sC1_ = 000100 SC10 sC2_ sC20 SC4 = 001000 = 000200 = 002000 = 00 SEARCH SECGAP SECOTR 053552 051324 047506 053550 SECTR SEECOM 002072 SEGPER 052654 SELECT 002002 SELTST 007530 002054 SERCH SETDSK 044302 SILOTB 051422 052730 SKEY1 SKEY2 052732 = 040000 SKI SN 001742 SND1 005326 3 SEQ 0265 SEQ 0264 MACY11 30A(1052) 27-JUL=78 12:41 PAGE 267 CROSS REFERENCE TABLE == USER SYMBOLS 6268+ 7194 1559 7076 1511« 6068 3732 4053 4365 3752 4078 4382 5082 6665+ 3770 4099 4404 5144% 3793 6127 3820 4152 4596 3843 4174 4618 5231 6926 8150+ 2790 3864 4197 4663+ 5291+ 6949 3892 4220 4697 5363+ 2628 5157 6854 7835+ 2675 6622 6864 6912 7213 8926 8949 9446 9449 9495 9499 3635 3654 7053 3706 4249 7129 4274 7148 5350« 6837« 5819« 6838+ 7722+ 5069+ 6342+ 7416 1577 7418 1856 6759+ 7736 5218+ 6880 8021+ 2727 2820 7007+ 3914 0 4762+ 5833« 7034 2894 8853 8854+ 6366 9240+ 9632+ 8588 1472% 96604 1772% 8852+ 8878 15664 8725« 3537 3185 4012 6351 1832+ 2503 3863 4381 76974 1831« 1905 3262 4126 6925 4151 7033 5958 6904 7045 5277 6652+ 5278« 6745 5349« 6746 6879 3546 4584 3330 4077 3751 3769 4319 7228 9381« 9377 8733 4741 5060« 6163~ 7820« 4477 06 92704 1431« 17314 4433 6463 2751 9379« 9380+ 14994 9249 4851 5134+ 6164* 7979+ 4547 3747 9418« 1433+ 6503 2756 9383 5209+ 6651% 87464 9553 1752 7291 6598 79554 5820+ 5921+ 7723 CZRJGCO,RP04/5/6 DSK..S CTRLR1 CZRJGC.PN 26~Jul ~78 10:10 SPACE2 062730 SPACE8 062722 = 177572 SRO = 177574 SR1 SR2 = 177576 SR3 = 172516 SSECTR 052726 SSYN 047516 STACK = 001000 START 004244 STARTA 004466 STKLMT= 177774 SWR SWREG Sw0 SW00 Sw01 Sw02 Sw03 Swo4¢ Sw05 Swo6 Sw07 SW08 Sw09 Sw1 Sw10 SW11 sw12 Sw13 SW14 Sw15 Sw2 Sw3 Swsé 001140 000176 = 000001 = 000001 = 000002 = 000004 = 000010 = 000020 = 000040 = 000100 = 000200 = 000400 = 001000 = 000002 = 002000 = 004000 = 010000 = 020000 = 040000 = 100000 = 000004 = 000010 = 000020 SWS = 000040 Swé = 000100 Sw7 = 000200 = 000400 Sw8 Sw9 = 001000 TAGDTE 002030 2224 2218 5254 5254 5254 5254 G 5 27=JUL=78 12:41 PAGE 268 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 105194 2219 2227 2228 2229 105184 9378« 87524 1442 2096 3598 5044 6327 6727 14364 8884+ 1527 2119 3851 5119 6410 6738 1575 2479 3976 5193 6420 6817 1861 2539 4110 5270 6450 6986 1877 2626 4232 5333 6460 6995 1891 2673 4353 6490 6500 1440 1458+ 1465« 6306 9699 1503 6696 9839 1509 1543 9684 5322 5425 9686 1460 5893 9692 1465 1503 9839 9870 9886 2778 2778 2779 5324 5427 5895 2214 3878 3093 3095 7456 7526 1509 1543 1616 1645 9672« 5444 7087 9441 7664 TMPILL 002022 7659 9824+ 3083 11804 9825+ 3086 3088+ 7183 2035 3030 6526 6562 1616 2214 7796 10036 6308 6698 6792 3096+ 4638 5685 6975 9912+ 8395 8896 5567 1953 2930 4424 6790 9870 8397 000014 000040 002026 041442 043170 1938 2897 4415 7456 10025 3968 TBITVE= TDF = TESDTE TESTAD TIMCNT TKVEC = SEQ 0266 SEQ 0265 6977 7798 2052 3079 4738 5997 6595 2777 8395 10040 2068 3167 6148 6631 3878 8397 10174 CZRJGCO,RP04/5/6 DSKLS CTRLRI CZRJGC.P1 26=-JUL-78 10:10 TOLGAP TOTALA TPVEC = TRAPVE= TRE = TRK TRK1 = TRK10 = 052430 002020 000064 000034 040000 047456 004000 040000 5274 13594 5024 5024 1055# 8732+ 11454 1152# TRK20 = TRK4 = TRP TRTVEC= TSECC TSECCG TSTNM 100000 020000 005766 000014 002024 045320 002032 11534 11514 1556 502# 13634 82644 13744 TRK2 = 010000 1969+ 6411% 6739+ 10943 TST2 T1ST20 TST21 005500 010752 034576 034632 034754 035010 035132 035166 035266 035322 011016 035422 035550 035670 035724 036340 036374 037004 037632 011166 037666 040220 040544 041074 011232 011276 011342 011530 011574 011640 011704 5 SEQ 0267 SEQ 0266 6247 1638+ 1447« 2645 87354 6742 3386 6822 3510 9120 91954 2654 3152 5956 5958 6904 7045 9635 8982 1576« 2036+ 2893« 4233+ 5271+ 6451« 6987 9645 8994 1597 2053« 2929« 4354+ 5335« 6461 9670 8999 9011 1741« 2085« 3003+ 9059 1837« 2097« 3031« 9074 1855+ 6648 1640* 1448+ 11504 2789 3977« 5194+ TST1 TST1I0 TST100 TST101 TST102 TST103 TST104 TST105 TST106 TSTi107 TST11 TST110 TST111 TST112 TST113 TST114 TST115 TST116 TST117 TST12 TST120 TST121 TST122 TST123 TST13 TST14 TST15 TST16 TST17 H MACY11 30A(1052) 27-JUL-78 12:41 PAGE 269 CROSS REFERENCE TABLE == USER SYMBOLS 10982 1514 1858 64054 64184 644694 64584 64854 64984 65254 65344 18894 65604 65934 66304 66424 67264 67364 68164 69854 19374 69944 7086# 71824 72784 19524 19674 19814 20334 20504 15734 20674 20834 10950 10988 7341 6996+ 10953 10993 1614~ 2069+ 2961+ 4416* 5445% 6491+ 7088+ 10955 4425% 5568+ 6501 7184x 10956 4626* 5686+ 6527« 7374 10959 2120+ 3080+ 4639+ 5805+ 6537 10928 10962 9131« 1862+ 9143+ 9637 9647* 9671+ 4739« 5907« 2540* 3236+ 4849« 2627+ 3364 2674 3599+ 5045+ 6241+ 6645 2726% 3852+ 5120+ 6328+ 6728+ 10972 10976 2480* 3168+ 6563« 10930 10966 1878+« 5998+« 6596+ 10932 10969 1892+« 4963 6150+ 6632* 10935 1939% 10938 1954+ 10941 10979 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P1 26=JuL-78 10:10 1S122 TST23 TST24 TST25 1ST26 TST27 TST3 TST30 TST31 TST32 TST33 TST34 TST35 TST36 TST37 TST4 TST40 TST41 TST42 TST43 TST44 TST45 TST46 TST47 TSTS TST50 011750 012014 012422 013446 013610 014160 006124 014336 014564 015024 015150 015450 015606 015726 016104 006176 016230 016354 016650 017074 017464 020616 021534 022210 007544 022616 TSTS1 023162 TST57 TST6 TST60 025172 010316 025530 TST52 TST53 TST54 TSTSS TST56 TST61 TST62 TST63 TST64 TST65 TST66 TST67 1ST7 TST70 TST71 TST72 TST73 TST74 TST75 TST76 TST77 TTNO 20954 2118# 22714 2467 25384 26254 1579 2630 2677 2729 2792 2822 2896 2916 2964 1603 3021 3048 31664 32354 33624 3580 38504 15944 2667 2715 27884 2810 2879 29274 2923 2993 16104 30284 30774 26724 27254 28174 28914 2950 30014 29594 7300 7310 35974 3970 42314 4703 18364 4802 4726 47374 4830 4943 48474 49614 5108 5183 5257 5325 51184 51924 52664 53324 026070 026334 026720 4916 50434 5086 5161 5235 5306 5387 1840 5547 5663 5792 5896 5910 6129 6190 6316 15284 19834 28194 Q1118 52684 SEQ 0268 SEQ 0267 24L78# 1737# 41094 43524 L4T4H 44234 L624n L6374 = 000122 MACY11 30A(1052) 27-JuL=78 12:41 PAGE 270 CROSS REFERENCE TABLE == USER SYMBOLS 39754 1732 023526 023704 023740 024626 024662 027304 027670 030230 030574 010662 031124 031432 032022 032366 032732 033340 033742 034272 -3 5428 18544 55594 56834 58024 59054 59894 61454 6223 63254 15764 20364 28934 42338 5271 54374 62354 15974 20534 29294 43548 53354 16144 20694 29614 4L4L16K 54454 17414 20854 30034 4425H 55684 18374 20974 30314 4LO26K 56864 18554 21204 30804 4LO39K 58054 18624 24804 31684 4739K 59074 18784 25404 32364 4BLON 59984 18924 26278 33644 49634 61504 19394 2674 35994 50454 62414 1954% 2726 38524 51204 63284 19694 278 39774 51944 64114 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.PT 26=JuL-78 10:10 TUF = 000100 TY 047622 TYPDS = 104405 TYPE = 104401 64214 68184 11634 88454 1707 1480 5 J 27-JUL-78 12:41 PAGE 271 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 64514 69874 64614 69964 1719 1787 1486 1625 1822 11814 64914 7088# 101544 TYPON = 104404 TYPOS = T.SCOP UN UNIT wCUu = 000001 wCYL 052642 WECCT 052422 052424 WECC2 WKEY1 052646 WKEY2 052650 WLE = 004000 050414 WORD WRCHDA WRCHDT 043656 002060 65374 65634 65964 66324 7284 1490 7288 1492 7298 1494 1657 10080 1515 1708 101574 1546 4443 4676 7331 1496 1703 1849 4778 7023 7383 8590 9888 10062 7375 7114 7385 8592 9897 10064 7379 1747 2087 2845 4062 1764* 2099 2880 4183 2309 2977 5495 2193 7305 1655 1843 5299 66454 6728# 67394 996 101534 9663 10193 9887 1560 1717 2224 2218 4918 6181 4804 5843 8011 9661 9961 10125 8599 101554 104403 042602 006114 001774 001754 UNITS UNITSL 002004 UNLOAD 002044 UNS = 040000 UPE = 020000 = 000001 us1 us2 = 000002 usé = 000004 = 000010 UR VUF = 000002 vu30 = 010000 w = 000100 WAIT.T 043172 WAT = 104415 wC 001706 WCE = 040000 WCF = 000040 WCRC 051404 65274 71844 5237 7380 TYPOC = 104402 65014 1653 1841 3591 5163 6767 SEQ 0269 SEQ 0268 15844 1726% 2055 2743 3884 7309 7548 1759 1520% 2572 3305 5963 1941 1956 6052 3438 6336 6799 6802 7585 6659 6753 6845 1914 1786 2634 3859 2984 3124 3197 5725 5745 5782 6705 6708 3251 3311 6053 3254 3345 6057 3319 6071 3322 6085 6716 7417 10946 6810 101654 5285 8894 91874 5357 5827 5929 6171 6566+ 6599+ 4757 91924 91934 4978~ 4979« 4861 10979 10979 4B68 4975+ 4982 6258 92614 8888+ 8890+« 8892+ 8894« 8935+« 8939« 89674 92634 92644 8977+ 9007« CZRJGCO,RP0O4/5/6 DSKLS CTRLR1 CZRJIGC.P1 26-JuL-78 10:10 13954 WRCHEK WRCHHD WRDATA MACY11 30A(1052) 27-JUL=78 5 SEQ 0270 SEQ 0269 PAGE 272 CROSS REFERENCE TABLE == USER SYMBOLS 7847 77214 91084 3211« 2601+ 3670 3939 4204 2505 3338+ 38 WRFROM K 12:41 4611 5292 5637 WRHEAD WRIDAT WRIFOR WRITE 052736 002062 002064 050652 WRL WRU WSECTR WSSYNC WSU = WTRK 004000 000400 052644 051372 000004 052600 050650 6123 6468 6602 6927 7262 6874 6340 9145 9423 9443 9457 9470 9482 9083« 9134 9140 9146 9150 6256* 6656 6750 6842+ 7727+ 5875« 6967+ 8124+ 10928 8126 10932 8197+ 10938 8 10943 10956 92624 8915 9445 5282+ 87494 047514 007172 047554 045334 ZCODE = 000400 ZER XE2 8922 9458 5354~ 8784 8927 9471 5824« 8931 9483 5926« 90344 9494 6168+ Y ZWORDS $AUTOB $BDADR $BDDAT 3547 5082+ $BELL $CHARC $CKSWR 001216 055152 055464 6186« 8094+ 9428+ 10969 9973 9802 10972 10027 9811« 9498« 8908+ CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.PN 26~-JUL-78 10:10 $SCMTAG $CM1 $CM2 $CM3 $CM4 $CNTLC SCNTLG $SCNTLUY $CRLF 5 L 27=JUL-78 12:41 PAGE 273 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS 1438 5 001100 000006 000014 000006 000006 056235 1445 5594 5594 1451 5604 5604 1452 5614 5614 5624 5624 5634 5634 5654 99734 5664 5674 5684 5694 2238 7380 SEQ 0271 SEQ 0270 10035 10047 10064 10069 10932 10969 10935 10972 10938 10976 10941 10979 10943 10982 2209+ 2371= 2762* 3014~ 3470% 3562+ 6802+ 8200+ 2220 2387« 2809 3041« 3486« 5406 2298+ 2396+ 2864* 3049« 3494* 5739« 2301 2397 2872+ 3409+ 3502+ 5874+ 8907+« 10932 8924+ 10962 8926+ 9716 10042 9788 9818 9914 9973 10020 9688 9712% 9690 9717 9696+ 9717 10022+ 10047 10031 10955 10047 10956 10052 10959 10928 10962 10930 10966 10028+ 10043 10047 10045 10047 1918 1928+« 2016+ 97704 73404 73434 73428 7303 9668 9690 100204 10030+ 10953 10993 $SERRTB SERRTY SERTTL SESCAP $FILLC $FILLS $GDADR $GDDAT 7289« 9711+ 9818 73184 1908+ 2339« 2440% 2951« 3450 3527« 6293« 8099« 9463*% 2331« 2423+ 2917% 3439« 3513 5967 7484 9427 10976 $GET42 $GTSWR $HD 2347« 2449% 2977« 3452« 3537« 6687« 8110+ 9475+ 2363« 2716+ 2989« 3462+ 3554+ 6781+ 8129+ 9499+ 10928 2216 2379+ 2808+ 3022+ 3478« 5313« 6966+ 8883« 10930 9714 7395+ 9716 9694 9710+ 7464% 7466% = 000000 SHIOCT SICNT $ILLUP $INTAG $ITEMB SLF $LPADR $SLPERR SMAIL = LA i 243 056265 SMNEW 056254 SMSWR 9704 101984 9899 10047 9965 1739+ 3101+ 9 9885 99784 99764 9709 9706+ 9716 9915 9980 9973 7389+ 32 95 10020 10047 5705« 5770« 10050 9776 7396 10036 9694* 9709+ 7378 7468 10966 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1 26=JUL-78 10:10 SMXCNT 054510 SNULL 001154 SOCNT SOMODE SOVER SPOWER SPWRAD SPWRDN SPWURMG $PWRUP SQUES 97164 5524 979 9818 057202 057204 054474 69854 10097+ 10092+« 9674 6994# 10126* 10096* 9687 0864 10135 10101 9695 057450 057436 057276 057432 057350 10194 101964 1449 101944 10176 102014 SNWTST= 000001 $PASS 9707 M5 MACY11 30A(1052) 27-JUL=78 12:41 PAGE 274 CROSS REFERENCE TABLE == USER SYMBOLS 001100 001222 $RDCHR 056026 SRDDEC= wwwxxx | SROLIN 056116 SRDOCT 056276 $RDSZ = 000011 SREGAD 001160 001162 $REGO $REG1 001164 001166 $REGZ SREG3 001170 001172 SREG4 001174 SREGS SRTNAD 041420 SR2A = wwwxax | $SAVRE= #xaxex | $SAVR6 057446 $SCOPE 054220 $SETUP= 000117 $5S1_ = 000000 $STUP = 177777 SSVLAD 054446 $SVPC = 000200 15254 20334 28174 G109 52668 6448 S27# 5724 15734 20504 28914 42314 53324 64584 3876 101664 10179# 9818 15944 20674 2927# 43528 54374 94890 16104 20834 29594 LL14A 55594 64984 17374 20954 30014 LL23M S6834 65254 18364 21184 30284 LO24LM 58024 6534m 10115+ 97134 7321« 101414 7295« 10104~ 9705 7297 9933 9958 9973 10182« 102004 10160 10180 96684 10181~ 9870 1469# 9980 10020 1443 1445 97084 508 1738 2096 1837 2119 3029 4625 5803 6535 7318 9697 3078 4638 5906 6561 7320 9698 $SWRMK= 000000 502 9668 9686 $TKB S$TKCNT 5494 98184 9818 9821+ 9826 9841 = 167770 4864 3002 4424 5684 6526 7279 18?39 STIMES 001212 001146 055156 S69# 18764 247Br 31664 4737R S9894 65934 18894 2538 32354 4B4L7E 61454 66304 19374 26254 33624 49614 62354 66428 7322« 7330 7342 9701 9717 10017 10020 10047 1449 1451 1452 1454 1501 7319 571 1451 1452 1454 1455 72784 19524 26728 35974 50434 63254 67264 19674 27254 38504 51184 64094 67364 19814 27884 39754 51924 64184 6B16# 9668 9837 9841 10161 10162 14374 9680 5064 $SWR 18544 22714 30774 L637A 59054 65608 10191 9935# 10163 99504 99814 99504 5564 S574 558# 5594 5604 5614 5624 73414 10163 10163 10175« 1443 14378 71824 SEQ 0272 SEQ 0271 502 1451« 569 1855 2272 1526% 1447 10039 570 1877 2479 3167 4738 5990 6594 7335 9699 1574 9829 9858+ 10046 1890 2539 3236 4848 6146 6631 7340 9710 1595« 9852 9941 1938 2626 3363 4962 6236 6643 7342 9713 1611 9874 9943 1953 2673 1968 2726 1982 2789 1526 2034 2818 1574 2051 2892 1595 2068 2928 1611 2084 2960 3598 5044 6326 6727 9668 9716 3851 5119 6410 6737 9673 10020 3976 5193 6419 6817 9683 10025 4110 5267 6450 6986 9684 10032 4232 5333 6459 6995 9685 10036 4353 5438 6490 7087 9688 10040 4415 5560 6499 7183 9689 10047 1738« 7279+ 7320* 9697+« 9704 9707« 9716 9893 CZRJGCO,RPO4/5/6 DSKLS CTRLR1 CZRJGC.P 26-JuL-78 10:10 055176 $TKQEN= 055175 $TKQIN 055160 $TKQOU 055162 $TKQSR 055164 STKINT $TKS $TKSRV $TMPO $TMP1 $TMP2 $TMP3 $TMP4 $TMP5 $TN MACY11 30A(1052) 27-JUL-78 N 12:41 5 SEQ 0273 SEQ 0272 PAGE 275 CROSS REFERENCE TABLE == USER SYMBOLS 9881 7462 8561 98214 9834 9864+ 9945+ 9948 9848+ 9865+ 9946 9866 9948« 9868+ 9850 9856+ 9872 9917 7655% 4474 10943 4547 7660 4541« 10956 4548« 7665 4545 7669 4559+ 7936+ 7656+ 7659+ 7891« 4550 3630« 7662 7893 7893« 7934+ 7665 3631 15744 1741 1802 = 2033 2050M 001152 001157 001150 057206 $TRAP2 057230 $TRP = 000016 $TPB $TPFLG $TPS $TRAP $TRPAD 057242 $TSTNM 001102 STTYIN 056224 $TYPBN= L2 433 $TYPDS 054512 $TYPE $TYPEC $TYPEX $TYPOC $TYPON $TYPOS 101564 101574 101584 101594 101604 9668 99734 9686 9708« 9713 9717 98064 9807 9919 101614 101624 101634 101654 CZRJGCO,RP04/5/6 DSKLS CTRLR1 CZRJIGC.P1 SXTSTR $SGET4= $OF ILL SLOCAT= . = . ABS. 26-JuL-78 10:10 054252 000000 057203 wannnn | 070252 070252 ERRORS DETECTED: 96754 73354 10091« 9673 8 6 PAGE 276 12:41 8 27-JUL-7 MACY11 30A(1052) CROSS REFERENCE TABLE == USER SYMBOLS S03# 10095+ 10034 5064 91934 10178 17144 73924 91944 10199 1454 17104 73834 1455 10105 101404 5074 14824 17864 85764 91954 110564 5084 14854 18204 85924 9716 5254 14944 18284 91844 97704 5274 15624 18434 91854 9818 SEQ 0274 SEQ 0273 575 15664 18454 91864 98214 000 O CZRJGC ,DSKW: CZRIGC . SEQ/SOL/NL : TOC :MC :ME : CND=SYSMAC . SML[400,10661,CZRJGC.P11[400,1424] RUN-TIME: 37 42 2 SECONDS RUN-TIME RATIO: 469/82=5.6 (75 PAGES) 38K CORE USED: DOCUMENT PAGES: 274 13384 16214 18514 91874 99734 164114 16534 38834 91884 9980 14124 16554 72874 91894 10020 14134 16594 7342 91914 10047 1441 17054 7346 9192# 100904
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies