T0504 EQU * NO-CONTINUE * * SUBTEST #4 * LDA .4 STA SUBTS SETUP SUBTEST# JSB CLEAR CLEAR CONTROLLER LDB GFM LOAD GAP FILE MARK COMMAND JSB OCMMD OUTPUT COMMAND LDA GAPTM LOAD TAP TIME (MIN) JSB TMRR,I GO WAIT LDA MSKIB MASK FOR UNIT BUSY JSB BITCK IS IT SET? JMP T0505 YES-OK TO CONTINUE JMP T0502 NO-REPORT ERROR T0505 EQU * * * SUBTEST # 5 * LDA .5 STA SUBTS SETUP SUBTEST # JSB FLGWT WAIT FOR FLAG JSB EFCK CHECK EF BIT IS SET JSB CLEAR CLEAR EOF BIT IN STATUS WORD JSB BSRWF BACK SPACE THE RECORD OVER EOF JSB EFCK CHECK FOR END OF FILE BIT T0506 EQU * JMP TST05,I EXIT TEST T0502 EQU * CLB SETUP EXPECTED STATUS JSB ERMS,I REPORT ERROR DEF E051 JMP T0506 EXIT E051 EQU * ASC 10,E051 GAP TOO SHORT/ T0503 EQU * JSB CLEAR CLEAR POSSIBLE RUN-AWAY JSB ERMS,I REPORT ERROR DEF E052 JMP T0506 EXIT E052 EQU * ASC 09,E052 GAP TOO LONG/ * * END OF TEST 05 * * * TEST06 FILE MARK TEST * TST06 NOP JSB .EXEC,I GO SELECT A TAPE UNIT T0601 EQU * LDB SW06 JSB SWRC,I IS SWITCH REG. #6 SET? JMP TST06,I YES-EXIT TEST * * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST # JSB LPREW SETUP TEST AT BOT T0602 EQU * * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # JSB WRTFM WRITE A FILE MARK * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # JSB LPREW * CHECK FSR COMMAND JSB FSRWF GO FORWARD SPACE RECORD JSB EFCK CHECK FOR END OF FILE BIT * * SUBTEST # 4 * LDA .4 STA SUBTS SETUP SUBTEST # * CHECK BSR COMMAND JSB CLEAR CLEAR CONTROLLER JSB BSRWF BACKSPACE RECORD JSB EFCK CHECK EF BIT * CHECK FOR INITIAL GAP LENGTH LDA MSKLP JSB BITCK IS THE UNIT AT BOT? JMP T0608 YES-GO REPORT INITIAL GAP ERROR JMP T0607 NO-CONTINUE T0608 EQU * CLB SETUP EXPECTED STATUS JSB ERMS,I REPORT INITIAL GAP ERROR DEF E055 POINTER TO MESSAGE JMP T0607 E055 EQU * ASC 09,E055 INITIAL GAP/ T0607 EQU * * * * SUBTEST # 5 * LDA .5 STA SUBTS SETUP SUBTEST # * JSB LPREW SETUP TEST AT LP * CHECK FSF COMMAND JSB FSFWF FORWARD SPACE FILE * * SUBTEST # 6 * LDA .6 STA SUBTS SETUP SUBTEST # * CHECK BSF COMMAND JSB CLEAR CLEAR THE CONTROLLER JSB BSFWF OUTPUT BSF COMMAND * * SUBTEST # 7 * LDA .7 STA SUBTS SETUP SUBTEST # JSB LPREW REWIND UNIT TO BOT LDB WCC BEGIN INITIAL GAP CHECK JSB OCMMD OUTPUT A WRITE COMMAND T0603 EQU * STC DATA,C SETUP DATA TRANSFER LDA GAPTM JSB TMRR,I GO WAIT ONE GAP TIME T0604 SFC DATA IS DATA FLAG SET? JMP T0606 YES-GAP SHORT JSB CLEAR NO-OK TO EXIT T0605 EQU * JMP TST06,I EXIT TEST T0606 EQU * JSB CLEAR CLEAR CONTROLLER JSB ERMS,I GO REPORT INITIAL GAP SHORT DEF E055 JMP T0605 EXIT * * * END OF TEST 06 * * * TEST 07 MULTIPLE FILE MARK TEST * TST07 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST NUMBER * ROUTINE WRITES 100 FILE MARKS LDA .N100 STA CNTR SETUP COUNTER FOR 100 FILE MARKS T0701 EQU * JSB WRTFM WRITE A FILE MARK LDB SW09 CHECK SWITCH 9 JSB SWRC,I IS IT SET? JMP TST07,I YES - EXIT ISZ CNTR IS COUNTER ZERO? JMP T0701 NO-DO IT AGAIN JSB EOTCK IS EOT SET? JMP TST07,I YES-EXIT TEST * * ROUTINE BACKSPACES 100 FILE MARKS T0702 EQU * * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # CLA STA COUNT SET FILE MARK COUNTER=0 LDA .N100 STA CNTR SETUP COUNTER T0703 EQU * JSB CLEAR CLEAR EF BIT IN STATUS JSB BSRWF BACKSPACE RECORD JSB EFCK EF BIT SHOULD BE SET LDB SW09 CHECK SWITCH 9 JSB SWRC,I IS IT SET? JMP TST07,I YES-EXIT LDA MSKEF SETUP MASK JSB BITCK IS EF BIT SET? ISZ COUNT INCREMENT FILE COUNT ISZ CNTR INCREMENT COUNTER JMP T0703 GO DO IT AGAIN LDA COUNT LOAD FILE COUNT CPA .100 COMPARE TO 100 JMP T0704 EXIT LDB MSKEF SETUP EXPECTED STATUS JSB ERMS,I REPORT ERROR IN # OF FILES DEF E064 JMP TST07,I ERROR -EXIT TEST T0704 EQU * * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # CLA STA COUNT SETUP COUNTERS LDA .N100 STA CNTR T0705 EQU * JSB CLEAR CLEAR EF BIT JSB SIOR,I READ A RECORD JSB EFCK EF BIT SHOULD BE SET LDA FG183 SZA IS IT A 13181? JMP T0707 NO-SKIP OVER JSB STATS GET STATUS CPA MKEFN IS IT A NRZI EF? JMP T0707 YES-CONTINUE LDB MKEFN NO-REPORT ERROR JSB ERMS,I DEF E053 T0707 EQU * LDB SW09 CHECK SWITCH 9 JSB SWRC,I IS IT SET? JMP TST07,I YES-EXIT LDA MSKEF JSB BITCK IS EF BIT SET? ISZ COUNT YES-INCREMENT FILE COUNT ISZ CNTR DONE? JMP T0705 NO-DO IT AGAIN LDA COUNT GET FILE COUNT CPA .100 COMPARE FILE COUNT TO 100 JMP T0706 OK-EXIT LDB MSKEF SETUP EXPECTED STATUS JSB ERMS,I REPORT ERROR IN # OF FILE MARKS DETECTED DEF E064 JMP T0706 ERROR EXIT E064 EQU * ASC 12,E064 MISSED FILE MARKS/ T0706 EQU * JMP TST07,I EXIT TEST MKEFN OCT 4200 NRZI END OF FILE MARK * * END OF TEST 07 * * * TEST 08(10) INITIAL WRITE-READ TEST * TST08 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST # * WRITE AN ALL 1'S RECORD OF 100 WORDS LDB ALL1 ALL 1'S PATTERN JSB WT00 GO WRITE RECORD * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # JSB BSRWF BACKSPACE THE RECORD * READ AN ALL 1'S RECORD OF 100 WORDS JSB SIOR,I DO A STANDARD READ JSB COMPR COMPARE INPUT AND OUTPUT BUFFERS JMP TST08,I EXIT TEST * * END OF TEST 08 * * * TEST 09(11) 125125 WRITE-READ TEST * TST09 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST #1 * LDA .1 SINGLE PATTERN SEQUENCE STA SUBTS SETUP SUBTEST # LDB HLFRQ PATTERN ADDRESS FOR 1600 FLUX JSB WT00 GO WRITE RECORD * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # JSB BSRWF BACKSPACE ONE RECORD JSB SIOR,I READ IN DATA JSB COMPR COMPARE INPUT+OUTPUT BUFFER JMP TST09,I EXIT TEST * * * * TEST 10(12) FORCE DATA AND TIMING ERROR STATUS * TST10 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST #1 * LDA .1 STA SUBTS SETUP SUBTEST # LDA BFMAX LOAD MAX BUFFER LDB ALL1 LOAD ALL ONES DATA PATTERN JSB WT00 GO WRITE AND READ THE RECORD JSB WRTFM WRITE A FILE MARK JSB EOTCK IS EOT SET? JMP TST10,I YES-EXIT TEST * JSB BSRWF BACKSPACE FILE MARK JSB BSRWF BACKSPACE THE RECORD * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # T1001 EQU * JSB .RDGP,I START A READ FILE COMMAND JMP T1004 ERROR EXIT CLB SETUP TIME OUT COUNTER T1002 EQU * LIA CMMD GET THE STATUS AND MSKOB ISOLATE ODD BYTE BIT SZA IS THE ODD BYTE BIT SET? JMP T1012 YES-GO WAIT FOR END OF RECORD INB,SZB TIME OUT? JMP T1002 NO-CONTINUE T1011 EQU * LDB MSKOB SETUP EXPECTED STATUS JMP T1013 GO REPORT ERROR T1012 EQU * * FORCE DATA AND TIMING ERRORS * NOTE-ROUTINE DOES NOT CHECK FOR EXACT TIMING OF ODD BYTE JSB FLGWT WAIT FOR THE COMMAND FLAG LDA MSKDT JSB BITCK IS DATA AND TIMING ERROR SET? JMP T1004 YES-OK TO CONTINUE T1003 EQU * LDB MSKEF SETUP EXPECTED STATUS T1013 ADB MSKDT JSB ERMS,I REPORT ERROR DEF E100 JMP T1004 E100 EQU * ASC 14,E100 DATA OR ODD BYTE ERROR/ T1004 EQU * JSB CLEAR CLEAR CONTROLLER * FORCE ODD BYTE STATUS BY TAPE OVER WRITE * * SUBTEST # 3 * * LDA .3 STA SUBTS SETUP SUBTEST # JSB BSRWF BACKSPACE RECORD JSB BSRWF BACKSPACE RECORD LDA .100 LOAD WORD COUNTER CMA,INA MAKE IT NEGATIVE STA COUNT SETUP WORD COUNT LDB WCC LOAD WRITE COMMAND JSB OCMMD OUTPUT COMMAND T1005 STC DATA,C START DATA TRANSFER T1006 CLA ZERO OUTPUT WORD CLB LOAD A ZERO IN COUNTER T1007 SFC DATA IS DATA FLAG CLEAR? JMP T1008 NO-GO OUTPUT A WORD INB,SZB IS TIME OUT COUNTER 0? JMP T1007 NO-GO CHECK FLAG JSB DATFG REPORT-DATA FLAG LOST JMP T1010 CONTINUE T1008 EQU * T1009 OTA DATA,C OUTPUT WORD ISZ COUNT INCREMENT WORD COUNTER JMP T1006 JUMP IF COUNTER NOT = 0 T1010 EQU * YES-COUNTER= 0 JSB CLEAR STOP WRITE NOP JSB WRTFM WRITE FILE MARK FOR FFR * * SUBTEST # 4 * LDA .4 STA SUBTS SETUP SUBTEST # JSB BSRWF BACKSPACE THE RECORD JSB BSRWF BACKSPACE THE RECORD LDB RFF GET RFF COMMAND JSB OCMMD OUTPUT THE COMMAND JSB FLGWT WAIT FOR COMMAND FLAG * BEGIN TO CHECK STATUS WORD FOR ERROR JSB EFCK CHECK FOR END OF FILE LDA MSKDT LOAD DATA AND TIMING ERROR MASK JSB BITCK IS IT SET? JMP T1015 YES-CONTINUE LDB MSKDT SETUP EXPECTED STATUS ADB MSKEF JSB ERMS,I NO-REPORT ERROR DEF E100 T1015 EQU * JMP TST10,I EXIT TEST * * END OF TEST 10 * * * TEST 11(13) RECORD SPACING TEST * TST11 NOP JSB .EXEC,I GO SELECT A TAPE UNIT LDA .1 STA SUBTS SETUP SUBTEST # LDA .100D SETUP 100 WORD BUFFER LDB ALL1 SETUP ALL 1'S DATA PATTERN JSB WT00 GO WRITE RECORD LDA .100D SETUP 100 WORD BUFFER LDB HLFRQ SETUP 125252 DATA PATTERN JSB WT00 GO WRITE RECORD * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # * BEGIN CHECK OF COMMAND REJECT DURING A * MOTION COMMAND JSB BSRWO START BACK SPACING THE RECORD LDA UNIT GET CURRENT UNIT # CPA .3 IS IT UNIT 3? CLA,INA YES-GET NEXT UNIT # LDB A ADB ATSEL GET SELECT COMMAND ADDRESS LDA B,I LOAD COMMAND JSB AOTA OUTPUT THE COMMAND LDA T1107 GET COMMAND REJECT MASK JSB BITCK IS IT SET? JMP T1103 YES-CONTINUE LDB T1107 SETUP EXPECTED STATUS JSB ERMS,I NO-REPORT ERROR DEF E041 LDA UNIT JSB UNISL RESELECT CURRENT UNIT NOP OFF-LINE RETURN JMP TST11,I EXIT TEST T1103 EQU * JSB FLGWT WAIT FOR THE COMMAND FLAG * * SUBTEST # 4 * LDA .4 STA SUBTS SETUP SUBTEST # LDB RRF START A READ OPERATION JSB OCMMD T1104 EQU * STC DATA,C SET THE DATA TRANSFER LDA BSR OUTPUT A 2ND MOTION COMMAND JSB AOTA LDA T1107 CHECK COMMAND REJECT JSB BITCK IS IT SET? JMP T1105 YES-CONTINE LDB T1107 SETUP EXPECTED STATUS JSB ERMS,I NO-REPORT ERROR DEF E041 JMP TST11,I ERROR-EXIT T1105 EQU * JSB FLGWT WAIT FOR READ COMMAND TO FINISH LDA MSKDT SETUP MASK FOR DE AND TE JSB BITCK ARE THEY SET? JMP T1106 YES-OK TO CONTINUE LDB MSKDT SETUP EXPECTED STATUS JSB ERMS,I NO-REPORT ERROR DEF E100 T1106 EQU * * * SUBTEST # 5 * LDA .5 STA SUBTS SETUP SUBTEST # JSB BSRWF BACKSPACE RECORD JSB BSRWF BACKSPACE RECORD JSB FSRWF FORWARD SPACE RECORD CLA STA WRERR CLEAR WRITE ERROR FLAG JSB SIOR,I READ A RECORD JSB .CMPQ,I COMPARE FIRST WORD ONLY JMP TST11,I EXIT TEST * T1107 OCT 0410 EXPECTED STATUS * SKP ORG PAG10 * SKIP TO NEXT PAGE OF MEMORY ******************************** * E164 EQU * ASC 08,E164 BUSY ERROR/ * * COMPQ NOP ROUTINE TO COMPARE FIRST WORD ONLY LDA INBUF,I GET FIRST WORD CPA HALFQ IS IT 125125 JMP COPQ1 YES-EXIT CLB SETUP EXPECTED STATUS JSB ERMS,I NO-REPORT ERROR DEF E104 COPQ1 EQU * JMP COMPQ,I EXIT * E104 EQU * ASC 09,E104 WRONG RECORD/ * * * END OF TEST 11 * * * * TEST 12(14) FILE SPACING TEST * TST12 NOP JSB .EXEC,I GO SELECT A TAPE UNIT LDA .1 STA SUBTS SETUP SUBTEST # * WRITE 2 RECORDS WITH FILE MARK * -AT END OF EACH RECORD LDA .100D SETUP 100 WORD BUFFER LDB ALL1 SETUP ALL 1'S DATA PATTERN JSB WT00 GO WRITE RECORD JSB WRTFM WRITE FILE MARK LDA .100D SETUP 100 WORD BUFFER LDB HLFRQ SETUP 125252 DATA PATTERN JSB WT00 GO WRITE RECORD JSB WRTFM WRITE FILE MARK * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # * BSF COMMAND CHECK JSB BSFWF BACK SPACE FILE COMMAND JSB BSRWF BACK SPACE RECORD CLA STA WRERR CLEAR WRITE ERROR FLAG JSB SIOR,I READ RECORD JSB .CMPQ,I COMPARE BUFFER * * * SUBTEST # 4 * LDA .4 STA SUBTS SETUP SUBTEST # * FSF COMMAND CHECK * JSB FSFWF FORWARD SPACE FILE JSB BSFWF BACKSPACE FILE JSB BSFWF BACKSPACE FILE JSB FSRWF FORWARD SPACE RECORD JSB EFCK CHECK FOR END OF FILE CLA STA WRERR CLEAR WRITE ERROR FLAG JSB SIOR,I READ RECORD JSB .CMPQ,I COMPARE BUFFER * JMP TST12,I EXIT TEST * * * END OF TEST 12 * * * * TEST 13(15) CLEAR TIME CHECK DURING A MOTION COMMAND * TST13 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST # LDB ALL1 JSB WT00 WRITE 100 WORD RECORD (ALL 1'S) * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # LDB BSR LOAD A BASKSPACE RECORD COMMAND JSB OCMMD OUTPUT THE COMMAND JSB CLEAR CLEAR THE CONTROLLER NOW JMP TST13,I EXIT TEST * * END OF TEST 13 * * * TEST 14(16) INTERRECORD GAP TEST * TST14 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST # * WRITE 2 RECORDS ONE WORD LONG LDB ALL1 ALL 1'S PATTERN JSB WT00X WRITE 1 WD RECORD OF 1'S LDA .100D RECORD LENGTH LDB ALL2 ALL 2'S PATTERN JSB WT00X WRITE 100 WD RECORD OF 2'S JSB WRTFM WRITE FILE MARK JSB EOTCK IS EOT SET? JMP TST14,I YES-EXIT TEST * SUBTEST # 2 * GCG LDA .2 STA SUBTS SETUP SUBTEST # JSB BSFWF BACKSPACE FILE JSB BSRWF BACKSPACE RECORD JSB BSRWF BACKSPACE RECORD JSB .RDGP,I GO START A RFF READ JMP TST14,I ERROR EXIT * GO CHECK INTERRECORD GAP LDA IGTIM GET IRG TIME CONSTANT JSB TMRR,I WAIT IRG TIME RGP06 SFS DATA IS DATA FLAG SET? JMP T1402 NO - OK TO CONTINUE JSB ERMS,I DEF E112 REPORT GAP TOO SHORT JSB CLEAR JMP TST14,I ERROR EXIT E112 EQU * ASC 10,E112 IRG TOO SHORT/ * * SUBTEST # 3 * LDA .3 STA SUBTS SETUP SUBTEST # T1402 EQU * LDA IGTIM WAIT ANOTHER IRG TIME ADA IGTIM ALLOW 1 1/4 INCH IRG JSB TMRR,I GO WAIT RGP07 SFS DATA IS FLAG SET NOW? JMP T1403 NO-GO REPORT ERROR JSB CLEAR TERMINATE RFF COMMAND JMP TST14,I EXIT TEST T1403 EQU * JSB ERMS,I REPORT ERROR DEF E113 GAP TOO LONG JSB CLEAR JMP TST14,I ERROR EXIT E113 EQU * ASC 09,E113 IRG TOO LONG/ * * WT00X NOP STA WT00Y LDA .1 SINGLE PATTERN IN BUFFER JSB FILL,I FILL THE BUFFER DEF WT00Z NORMAL RETURN WT00Y NOP BUFFER LENGTH DEF WT00Z WT00Z JSB SIOW,I WRITE THE BUFFER JMP WT00X,I RETURN * * * END OF TEST 14 * * * TEST 15(17) INTERRECORD GAP CREEP TEST * TST15 NOP JSB .EXEC,I GO SELECT A TAPE UNIT * * SUBTEST # 1 * LDA .1 STA SUBTS SETUP SUBTEST # JSB WRTFM WRITE A FILE MARK JSB WRTFM WRITE A FILE MARK LDA .1 RECORD LENGTH LDB ALL1 ALL 1'S PATTERN JSB WT00 WRITE A RECORD LDA .100D RECORD LENGTH LDB ALL2 ALL 2'S PATTERN JSB WT00 WRITE A RECORD JSB WRTFM WRITE A FILE MARK JSB EOTCK IS EOT SET? JMP TST15,I YES-EXIT TEST * * * SUBTEST # 2 * LDA .2 STA SUBTS SETUP SUBTEST # JSB BSFWF BACKSPACE FILE JSB BSRWF BACKSPACE RECORD JSB BSRWF BACKSPACE RECORD JSB .RDGP,I ISSUE A RFF COMMAND JMP TST15,I ERROR EXIT LDA .ME3 SETUP 1 SEC. TIME OUT COUNTER STA T1513 CLA STA T1502 CLEAR MILLISEC COUNTER T1503 EQU * SFC DATA IS DATA FLAG SET? JMP T1504 YES-CONTINUE LDA .1 JSB TMRR,I GO WAIT 1 MILLISEC ISZ T1502 INCREMENT COUNTER