ASMB,A,B,L,C ORG 2 * * ******************************************************************** * * * VERIFICATION PROGRAM FOR 6140A * * * * * * 14916-80001 TO 80003 REV A EARL L. GABLE JUNE 1974 * * 14916-80001 TO 80003 REV B BOB HARRISON MARCH 1976 * * * * * * THE PROGRAM USES THE TELEPRINTER FOR INPUT/OUTPUT OF * * INFORMATION TO AND FROM THE TEST PROGRAM. THE TTY DRIVER IS * * CONTAINED IN THE PROGRAM. NO EXTERNAL DRIVERS ARE REQUIRED. * * PROGRAM CONFIGURATION IS INITIATED BY RUNNING THE PROGRAM * * STARTING AT ADDRESS 2B WITH THE TTY I/O CHANNEL SET IN BITS * * 5-0 OF THE SWITCH REGISTER. THE CONFIGURATION SECTION OF * * THE PROGRAM THEN REQUESTS ALL NECESSARY INFORMATION FROM THE * * TTY. A CONFIGURED TAPE MAY BE PUNCHED IF DESIRED. * * * * THE TESTING OPERATIONS ARE BEGUN BY STARTING THE TEST * * PROGRAM AT ADDRESS 100B. THE PROGRAM WILL REQUEST ANY ADDITIONAL * * INFORMATION AND DATA. TYPING "S" AS THE ANSWER WILL TERMINATE * * ANY TEST SEQUENCE AND WILL CAUSE A NEW REQUEST FOR "TEST NUMBER?"* * ANY TTY KEY INTERRUPT WILL CAUSE THE PROGRAM TO GO BACK TO THE * * BEGINNING OF THE CURRENT TEST. AN ILLEGAL NUMERIC DATA INPUT * * WILL EITHER CAUSE THE REQUEST FOR THE DATA AGAIN OR TREAT AS "0".* * THE INPUT DATA COULD BE ERASED BY TYPING RUBOUT, ALT MODE, OR * * ESC MODE. RE-ENTER THE DATA RIGHT AFTER THESE CHARACTERS BEFORE * * HITTING CARRIAGE RETURN. * * * * A TEST TABLE WILL BE PRINTED AUTOMATICALY IF ALL SIX TESTS * * WERE REQUESTED, OR BY TYPING "0" AFTER "TEST NUMBER?". SINCE THE * * TEST TABLE IS INITIALIZED ONLY IF IT IS CALLED, IT IS IMPOSSIBLE * * TO START TESTING A NEW UNIT WITHOUT ENTERING THE TEST TABLE * * PRINTING ROUTINE.HOWEVER,A TTY KEY INTERRUPT WILL CAUSE THE REST * * OF THE TABLE TO BE SKIPPED, INITIALIZE THE TABLE, AND RETURN TO * * "UNIT NUMBER?". * * * * HLT 55B WILL OCCUR ON ATTEMPTING TO RUN AN UN-CONFIGURED * * PROGRAM OR ENTERING AN INVALID TTY I/O SELECT CODE IN THE SWITCH * * REGISTER WHEN CONFIGURING THE PROGRAM. ENTER PROPER TTY SELECT * * CODE IN SWITCH REGISTER BITS 5-0 AND PRESS RUN. * * * * AN UNEXPECTED INTERRUPT ON I/O CHANNEL XX WILL CAUSE A * * "HLT XX" TO OCCUR ON THE TRAP CELL OF CHANNEL XX. IN CASE OF * * POWER FAIL,ZERO AMPERES WILL BE PROGRAMMED,AND HLT 4B WILL OCCUR.* * * * * ******************************************************************** * * * * SKP SUP JMP 3,I ENTRY POINT TO DEF START CONFIGURE PROGRAM JMP PFAIL POWER FAIL LINK. HLT 5 MEM PROTECT TRAP. REP 5 OCT 0,0,0,0,0,0,0,0,0,0 OCT 0,0,0,0,0,0,0,0 HED VERIFICATION PROGRAM CONSTANT,STORAGE & LINK SKP ORG 100B JMP ENTA,I ENTRY POINT TO RUN NOP TEST DEF TTY.P LINK TO PRINT DEF PUN LINK TO PUNCH DEF TTY.I LINK TO KEYBOARD FWA3 DEF FWAM3 CLADR DEF .8 CURRENT LATCH CODE ADD. ENTA DEF ENTER LINK TO RUN TEST FWA1 DEF FWAM1 FWA2 DEF FWAM2 BUFA DEF BUFF I/O BUFFER ADDRESS TTBLA DEF TSTBL TEST LINKAGE TABLE CRLFA DEF CRLF ADDR FOR CR/LF TSTA DEF TST.2 A EQU 0 B EQU 1 PSI EQU 0 TTY EQU 0 PNC EQU 0 .2 DEC 2 .4 DEC 32 VOLTAGE LIMIT CODE X10 20V .8 DEC 0 X10 2V DEC 8 X10 5V DEC 16 X10 7V DEC 24 X10 10V .8X1 DEC 64 X1 2V .12X1 DEC 96 X1 20V .5MA DEC 10000 5/50 MA .10MA DEC 20000 10/100 MA .50M DEC 100 .15 DEC 15 .16 DEC 16 B7 OCT 7 B10 OCT 10 LNFD OCT 12 CRTN OCT 15 EMODE OCT 33 NEG OCT 55 POSI OCT 53 B2000 OCT 2000 B4000 OCT 4000 B77 OCT 77 B100 OCT 100 S OCT 123 Y OCT 131 N OCT 116 B177 OCT 177 B377 OCT 377 MS0 OCT 170000 C2116 DEC 2116 C2100 DEC 2100 C2114 DEC 2114 C2115 DEC 2115 T4X1 DEC 0 AMPS BSS 1 MAG BSS 1 A1 BSS 1 B1 BSS 1 A2 BSS 1 B2 BSS 1 M25 DEC -25 P200 OCT 200 M400 OCT -400 MASKH EQU M400 INF1A OCT 77777 INF2 OCT 177776 M1 DEC -1 M3 DEC -3 XSEXP OCT 77600 .100 DEC 100.0 FPN1 BSS 2 .10 DEC 10.0 .5 DEC 5.0 FPN2 BSS 2 SIGN1 BSS 1 FP11 DEC 0.0011 FPN3 BSS 2 .M1 DEC -1.0 RNDOF DEF RNDAF X2 BSS 1 EXPON BSS 1 M2 DEC -2 M4 DEC -4 M6 DEC -6 M8 DEC -8 M11 DEC -11 M15 DEC -15 M48 DEC -48 M45 DEC -45 M56 DEC -56 M64 DEC -64 M70 DEC -70 M1600 DEC -16000 M1639 DEC -1639 PMAX DEC -16383 MMAX DEC 16384 CLEAR OCT 200 P9 DEC 9 P44 DEC 44 P55 DEC 55 OMODE OCT 175 AMODE OCT 176 IMODE OCT 160000 LMODE OCT 120000 PMODE OCT 110000 BUFF BSS 10 I/O BUFFER STORA BSS 1 STORB BSS 1 UNIT BSS 1 BADDR BSS 1 BUFAD BSS 1 CLADD BSS 1 CCNT BSS 1 CNT BSS 1 CHAN BSS 1 COUNT BSS 1 END BSS 1 CRLF OCT 106612 IOINS BSS 1 FAIL1 BSS 1 FAIL2 BSS 1 FAIL3 BSS 1 FAIL4 BSS 1 FAIL5 BSS 1 FAIL6 BSS 1 CTR BSS 1 LSTND BSS 1 MA BSS 1 MSG BSS 1 NEGFL BSS 1 NUMBR BSS 1 RECL BSS 1 SIGN BSS 1 RETAD BSS 1 STATS BSS 1 TEMP BSS 1 DECML OCT 56 RANGE BSS 1 P3277 DEC 3277 .1 DEC 1.0 TTAD1 BSS 1 I/O SLOT OF CONFIGURING TTY TTAD2 BSS 1 I/O SLOT OF TEST SYSTEM TTY PUNAD BSS 1 I/O SLOT OF PUNCH PSA OCT 0 I/O SLOT OF DVS I.1 BSS 1 CLAI CLA HLT10 HLT 10B IORI IOR B200 I.2 JMP CNF1 I.3 JMP INTCR MODEL DEF MD40 MD40 DEC 10000 DEC -2 DEC 3480 DEC 7720 DEC 8700 DEC 14500 DEC 12180 DEC 19020 DEC 17400 DEC 25800 GO BSS 1 B200 OCT 200 AA1 BSS 1 AA2 BSS 1 AA3 BSS 1 TABA BSS 1 TIMA BSS 1 DEF T1 DEF T3 DEF M10 DEF T4 T1 DEC -13 TIMING CONSTANT P5 DEC 5 FOR 2116 DEC -500 DEC 167 M10 DEC -10 TIMING CONSTANT P4 DEC 4 FOR 2114/2115 DEC -400 DEC 134 T3 DEC -11 TIMING CONSTANT DEC 4 FOR 2100 DEC -401 DEC 134 T4 DEC -9 TIMING CONSTANT DEC 4 FOR 21MX DEC -300 DEC 125 HED VERIFICATION PROGRAM TEST EXECUTION SKP * * SET UP * ENTER CLC 00,C ALL I/O OFF JSB CHRIN RETURN ON TTY INTERRUPT LDA I.3 "INCTR" AS ENTRY POINT STA I.1 FROM KEYBOARD INTERRUPT LDA HLT10 SET EACH TRAP CELL LDB B10 "XX" TO ENT1 STA B,I HLT XX INA INB CPB B100 ALL 64 SET? RSS YES JMP ENT1 NO, SET NEXT ONE LDA TTAD2 GET I/O SLOT OF TTY SZA,RSS WAS IT THERE? JMP STRT1 NO, GO TO CONFIGURING SECTION JSB SETIO YES, SET ALL TTY DEF TTYT I/O INSTRUCTIONS LDA PSA GET I/O SLOT OF DCS SZA,RSS WAS IT THERE? JMP STRT1 NO, GO TO CONFIGURING SECTION JSB SETIO YES, SET ALL DCS I/O DEF PSLST INSTRUCTIONS JSB PRINT CARRIAGE RETURN AND DEF MES0 LINE FEED ON TTY. * EXEC JSB PRINT COMPUTER MODEL? DEF MES1 JSB READ READ FROM TTY JMP EXEC NO DATA,TRY AGAIN JSB CONST CONVERT TO BINARY JMP EXEC INVALID DATA,TRY AGAIN LDB TIMA+4 GET PROPER ADDRESS OF CPA C2114 TIMING CONSTANT LDB TIMA+3 CPA C2115 LDB TIMA+3 CPA C2116 LDB TIMA+1 CPA C2100 LDB TIMA+2 STB TIMA NEXT JSB PRINT CONNECT LOAD DEF MES6 JSB PRINT DEF MES78 JSB PRINT Y AND N FOR YES AND NO DEF MES66 * * UNIT NUMBER * UNUM JSB PRINT UNIT NUMBER? DEF MES2 JSB READ READ FORM TTY JMP UNUM NO DATA, TRY AGAIN JSB GETUN CONVERT TO BINARY JMP UNUM ILLEGAL #,TRY AGAIN JSB PRINT ALL SIX TEST? DEF MES65 JSB READ READ FROM TTY JMP *-3 NO DATA,TRY AGAIN JSB YCHEK WAS IT A "Y"? JMP TEST NO,GO TO TEST CLA,INA YES, SET FLAG STA GO LDA TSTBL+1 GO TO TEST 1 JMP A,I TEST CLA CLEAR GO FLAG STA GO JSB PRINT CR/LF DEF MES0 JSB PRINT TEST NUMBER? DEF MES3 JSB READ READ FROM TTY JMP TEST NO DATA, TRY AGAIN JSB CONST CONVERT TO CONSTANT JMP TEST ILLEGAL #,TRY AGAIN ADA TTBLA ADD TEST NUMBER TO TABLE START LDB MXTBL GET ADDRESS OF TABLE END CMB,CCE,INB MAKE NEGATIVE ADB A IS COMPUTED TABLE ENTRY SSB,RSS BEYOND END OF TABLE? JMP TEST YES, TRY AGAIN RAL,ERA SET BIT 15 OF A FOR INDIRECT JMP A,I GO TO INDICATED TEST * * LINK TO TEST ROUTINE * TSTBL DEF TST TEST 0 PRINT TEST TABLE DEF T.01 TEST 1 UNIT RESPONSE DEF T.02 TEST 2 FRONT PANEL DEF T.03 TEST 3 VOLTAGE AMPLIFIER DEF T.04 TEST 4 VOLTAGE RANGE DEF T.05 TEST 5 CURRENT LATCH DEF T.06 TEST 6 INTERRUPT MXTBL DEF * END OF TABLE HED BASE PAGE SUBROUTINE OK NOP JSB PRINT PRINT "TEST OK" DEF MES57 JMP OK,I OUTP NOP OUTPUT B AND A REGISTER CLC PSI,C TO POWER SUPPLY OTB PSI OTA PSI JMP OUTP,I ZERO NOP PROGRAM ZERO AMPS CLB LDA .12X1 X1 20V LIMIT CODE IOR UNIT JSB OUTP LDB M1600 SFS PSI WAIT FOR FLAG INB,SZB,RSS TIMED OUT? JMP ZERO,I RETURN JMP *-3 ZERO1 NOP PROGRAM ZERO AMPS,X10 RANGE LDB TIMA PREPARE FOR RANGE CHANGE FLAG ADB .2 STB TEMP CLB ZERO AMPS LDA .4 X10 RANGE,20V LIMIT IOR UNIT JSB OUTP OUTPUT TO UNIT LDB TEMP LDA B,I SFS PSI WAIT FOR FLAG INA,SZA,RSS TIMEOUT JMP ZERO1,I JMP *-3 YCHEK NOP CHECK WHETHER INPUT JSB GETCR CHARACTER IS "Y" JMP YCHEK,I NO CHARACTER,REJECT CPA Y ISZ YCHEK IF YES EXIT VIA (P+2) JMP YCHEK,I NCHEK NOP CHECK WHETHER INPUT CPA N CHARACTER IS "N" ISZ NCHEK IF YES EXIT VIA (P+2) JMP NCHEK,I GETUN NOP ENTRY POINT. JSB CONST GET CONSTANT FROM INPUT BUFF. JMP GETUN,I NONE FOUND, REJECT CALL. SSA IF NEGATIVE, JMP GETUN,I REJECT CALL. STA UNIT SAVE POSSIBLE UNIT NUMBER. ADA M8 IF GREATER THAN SSA 7,REJECT VIA P+1 ISZ GETUN INCREMENT FOR JMP GETUN,I NORMAL EXIT. * * READ FROM TTY * READ NOP ENTRY POINT. JSB IMOFF TURN OFF KEYBOARD INTERRUPT MODE CLA INITIALIZE CHARACTER COUNT. LDB READ SAVE RETURN ADDRESS STB RETAD IN CASE OF LATER INTERRUPT. READ2 JSB 104B,I GET RECORD FROM TTY. CPA M2 JMP READ+1 RUBOUT IN RECORD, INPUT AGAIN. CMA,SSA,RSS SET A=-1-# CHARS AND CHECK FOR JMP READ1 RECORD TOO LONG. STA CCNT -1-# CHARACTERS < 0, SET CCNT. LDA BUFA LOAD BUFFER ADDRESS. ALS SHIFT LEFT, LEAST BIT USED AS STA BADDR ODD/EVEN FLAG. ISZ READ INCR. FOR NORMAL (P+2) RETURN. READ1 CLA OUTPUT CARRIAGE RETURN JSB 102B,I AND LINE FEED. JSB IMON ENABLE TTY INTERRUPTS. JMP READ,I RETURN. * * CONVERT ASCII NUMBER TO BINARY INTEGER * CONST NOP ENTRY POINT. CLB STB NUMBR INITIALIZE STB STORB STORAGE. STB NEGFL CON1 JSB GETCR GET CHAR. FROM ASCII INPUT BUFF. CLA,SZA JSB DIGCK IS NUMERIC? JMP CON2 NON-NUMERIC CHAR. OR NO CHAR. AND .15 MASK OFF EXTRA BITS. ISZ STORB INDICATE NUMBER FOUND. STA STORA SAVE DIGIT. LDA NUMBR ROOM FOR ADA M1639 ONE MORE DIGIT? SSA,RSS JMP CONST,I NO, RETURN. LDA NUMBR MULTIPLY ALS PARTIAL STA NUMBR CONSTANT ALS,ALS BY ADA NUMBR TEN. ADA STORA ADD ON STA NUMBR NEXT DIGIT. JMP CON1 GO LOOK FOR NEXT DIGIT. CON2 LDB STORB LOAD "NUMBER FOUND" FLAG. CPA NEG WAS CHARACTER "-" ? JMP CON3 YES. CPA POSI + SIGN? JMP CON4 GO TEST IT CPA DECML WAS IT D.P? JMP CON5 CON6 SZB,RSS CHAR. NOT "-" AND NO # FOUND. JMP CONST,I SO EXIT VIA (P+1). LDA NUMBR COMPLETE NUMBER FOUND. LDB NEGFL WAS IT SZB NEGATIVE? CMA,INA YES, COMPLEMENT BINARY INTEGER. ISZ CONST INCREMENT FOR NORMAL JMP CONST,I (P+2) RETURN. CON3 SZB IF "-" IMBEDDED IN NUMBER JMP CONST,I EXIT VIA (P+1). ISZ NEGFL "-" WAS FIRST, SET FLAG TO JMP CON1 INDICATE NUMBER IS NEGATIVE. CON4 SZB IF "+" IMBEDDED IN NUMBER JMP CONST,I EXIT VIA (P+1) JMP CON1 "+" WAS FIRST,IGNORE IT CON5 ISZ STORB INDICATE NUMBER FOUND LDB STORB JMP CON6 * * GET CHARACTER FROM ASCII BUFFER * GETCR NOP ENTRY POINT. ISZ CCNT ANY CHARACTERS LEFT? RSS JMP GETCR,I NO, END OF FILE EXIT. LDB BADDR LOAD BUFFER ADDRESS ISZ BADDR UPDATE FOR NEXT TIME. CLE,ERB SET CHARACTER FLAG. LDA B,I LOAD CURRENT BUFFER WORD. SEZ,RSS FIRST CHARACTER? ALF,ALF YES, POSITION IT. AND B177 MASK EXTRANEOUS BITS. CPA S STOP? JMP TEST ISZ GETCR INCREMENT FOR NORMAL JMP GETCR,I (P+2) RETURN. * * CHECK CONTENTS OF A FOR VALID ASCII DIGIT * DIGCK NOP ENTRY POINT. LDB A ADB M48 ASCII 60B SSB OR GREATER? JMP DIGCK,I NO, RETURN WITH CHARACTER IN A. ADB M10 ASCII 72B SSB OR LESS? ISZ DIGCK YES, SET "SUCCESS" EXIT. JMP DIGCK,I RETURN. * * PRINT RECORD * PRINT NOP ENTRY POINT. JSB IMOFF TURN OFF KEYBOARD INTERRUPT MODE CLA OUTPUT CARRIAGE RETURN JSB 102B,I AND LINE FEED. LDB PRINT,I B CONTAINS ADDR.-1 OF RECORD. LDA B,I GET RECORD LENGTH IN A. INB INCREMENT TO RECORD START. JSB 102B,I OUTPUT RECORD. JSB IMON ENABLE TTY INTERRUPTS. ISZ PRINT SET TO RETURN JMP PRINT,I VIA (P+2). * PRNTT NOP ENTRY POINT JSB IMOFF TURN OFF KEYBOARD INTERRUPT MODE LDA PRNTT,I A CONTAINS ADDR. OF ADDR-1 OF RECORD LDB A,I B CONTAINS ADDR.-1 OF RECORD LDA B,I A CONTAINS RECORD LENGTH INB INCREMENT TO RECORD START JSB 102B,I OUT PUT RECORD JSB IMON ENABLE TTY INTERRUPT ISZ PRNTT SET TO RETURN JMP PRNTT,I VIA (P+2) * * TTY INTERRUPT MODE OFF * IMOFF NOP ENTRY POINT. STA STORA SAVE A REGISTER. CLA PREVENT INTERRUPTS STA TTAD1,I FROM TTY I/O CHANNEL. LDA STORA RESTORE A REGISTER. JMP IMOFF,I RETURN. * * INTERRUPT SYSTEM ON * IMON NOP ENTRY POINT. JSB ION TURN ON TTY INTERRUPT MODE. STF 00 TURN ON INTERRUPT SYSTEM. JMP IMON,I RETURN. * * TTY INTERRUPT MODE ON * ION NOP ENTRY POINT. STA STORA SAVE A REGISTER. LDA I.1 RESTORE TTY STA TTAD1,I INTERRUPT LINK. LDA IMODE OTA TTY SET TTY TO INPUT MODE. STC TTY,C REQUEST CHARACTER. LDA STORA RESTORE A REGISTER. JMP ION,I RETURN. * * SETS RETURN FROM ONE-CHAR. INTERRUPT * CHRIN NOP JMP CHRIN,I * * ONE-CHAR. INTERRUPT ENTRY POINT * INTCR JSB IMOFF TURN OFF TTY INTERRUPT MODE. LIA TTY LOAD WORD FROM TTY. AND B177 MASK UNUSED BITS. CPA S WAS CHARACTER "S". JMP TEST JSB DIGCK WAS IT A NUMBER? JMP CHRIN,I NO, RETURN TO LAST POINT MARKED. ALF,ALF POSITION FIRST CHARACTER STA BUFA,I AND PLACE IN INPUT BUFFER. CLA,INA SET A FOR CHAR. COUNT OF ONE. LDB RETAD RESTORE RETURN ADDRESS STB READ FOR READ SUBROUTINE. JMP READ2 INPUT REST OF RECORD FROM TTY. * * CONFIGURATION ROUTINES * START CLC 00,C INTERRUPT SYSTEM OFF. LDA I.2 SELECT "CNF1" AS ENTRY POINT STA I.1 FROM KEYBOARD INTERRUPT. LIA 1 READ TTY I/O SLOT FROM SW. REG. AND B77 MASK OFF ALL BUT BITS O-5. STA TTAD1 SAVE TTY I/O SLOT. ARS,ARS IS IT ARS GREATER THAN SZA 7B? JMP CONFG YES, GO ON. STRT1 HLT 55B TTY I/O SLOT <10B JMP START TRY AGAIN. * * CONFIGURE I/O INSTRUCTIONS * CONFG LDA TTAD1 GET TTY I/O SLOT. JSB SETIO GO SET I/O INSTRUCTIONS DEF TTYT FOR CONFIGURING TTY. CNF1 JSB PRINT DO CARRIAGE RETURN DEF MES0 AND LINE FEED. JSB PRINT PRINT MESSAGE DEF MES7 "TTY I/O ADDRESS?". JSB GETSL GET TTY SLOT FROM INPUT BUFF. JMP CNF1 NO VALID SLOT FOUND. TRY AGAIN. STA TTAD2 SAVE I/O SLOT # OF TEST TTY. CNF2 JSB PRINT PRINT MESSAGE DEF MES8 DCS I/O SLOT ADDRESS? JSB GETSL GET DCS SLOT FROM INPUT BUFF. JMP CNF2 NO VALID SLOT FOUND. TRY AGAIN. STA PSA SAVE I/O SLOT # OF DCS CNF3 JSB PRINT PRINT MESSAGE DEF MES9 "SYSTEM DUMP I/O ADDRESS?". JSB GETSL GET PUNCH SLOT FROM INPUT BUFF. JMP CNF4 NO VALID SLOT FOUND. TRY AGAIN. STA PUNAD SAVE I/O SLOT # OF PUNCH. JSB SETIO GO SET I/O INSTRUCTIONS DEF PUNT FOR PUNCH. JMP CNF5 CNF4 SZA IF INVALID ENTRY FOR PUNCH JMP CNF3 I/O SLOT, TRY AGAIN. STA PUNAD NO DUMP REQUESTED. JMP ENTA,I GO TO EXECUTE TESTS. CNF5 JSB PRINT PRINT MESSAGE DEF MES10 "TURN ON PUNCH......FOR TAPE." JSB PRINT PRINT MESSAGE DEF MES11 "TO RUN TEST.......PRESS RUN." HLT 11B READY TO DUMP. * * DUMP BINARY TAPE * DUMP LDA PMODE SET TTY INTO DUMP1 OTA PNC PUNCH MODE. CLB PREVENT INTERRUPTS STB PUNAD,I FROM PUNCH. JSB LDR PUNCH LEADER. LDA FWA1 END OF BASE PAGE BLOCK. LDB .2 START OF BLOCK. JSB PNCHA PUNCH ABSOLUTE BLOCK. LDA FWA2 END OF BLOCK. LDB B2000 START OF BLOCK. JSB PNCHA PUNCH ABSOLUTE BLOCK. LDA FWA3 LDB B4000 JSB PNCHA JSB LDR PUNCH LEADER. HLT 77B END OF DUMP. JMP DUMP DUMP ANOTHER TAPE.