* * THIS PROGRAM READS DOWN A TAPE SUPERVISOR. IT OPERATES IN P3 IDLING * IN P2 WHEN IN THE WAIT STATE * START X'40000' HEADER DC A(ENDFIL-HEADER) DC A(PROGRAM-HEADER) DC A(GLAP-HEADER) DC A(LINKDA-HEADER) PROGRAM BALR 7,0 USING *,7 * * ENTER HERE IN P3 UNINTERUUPTABLE. SET UP SCRATCHPAD AND MASKS * LSP 0(16,0),AREA CLEAR P4 REGISTERS LSP 64(16,0),AREA CLEAR P2 REGISTERS LSP 96(16,0),AREA CLEAR P1 REGISTERS LSP 14(1,0),AIDLE SET P4 P-COUNTER LSP 13(1,0),SUPISR P4ISR L 1,SUPISR P1ISR L 5,SUPISR P2ISR L 9,SUPISR P3ISR LH 13,2 GET IPL DEVICE STH 13,IPLDEV SRL 13,8 IPL CHANNEL NO LA 14,1 SET UP IMR FOR P2 SLL 14,2(13) ALLOWING INTS ON IPLDEV& MC CHK LA 8,3 P3 IMR ALLOWS MC CHK ONLY L 2,AIDLE P1 PC TO IDLE LR 6,2 P2 PC TO IDLE LA 4,3(14) P2 IMR SR 0,0 BCTR 0,0 P1 PC TO'-1' ALLOWS EVERYTHING * * CLEAR THE SUPERVISOR AREA IE FROM THE END OF SHADED MEMORY TO THIS * IPL PROGRAM * LA 12,4 L 13,SUPTOP TOP OF SUP AREA L 11,SHADEND END OF SHADED MEMORY SR 14,14 ST 14,0(11) BXLE 11,12,*-4 LA 11,ENDFIL LA 13,256 SLL 13,12 ST 14,0(11) BXLE 11,12,*-4 CLEAR REST OF STORE L 3,AREA CLEAR IFR * * OLD FORMAT TAPES CONSIST OF VOL LAB,24BYTE IPL BLK,THIS PROG,TM * 26BYTE CHAPTER HEADER AND N 4120 BYTE BLOCKS * NEW FORMAT TAPES OMIT THE CHAPTER HEADER AND USE 4K BLOCKS * THIS PROGRAM CAN HANDLE EITHER FORMAT * LA 14,SKIPTM SKIP PAST THE TM ST 14,72(0) LH 12,IPLDEV TAPE CH/DEV NUMBER SDV 0(12) BC 7,IDLE ALL FAILURES TO P3 IDLE * * FOR ALL TAPE TRANSFERS EXIT TO P2IDLE . THE TERMINATION INT TAKES * CONTROL TO THE NEXT INSTRUCTION * PC *+4,4 BAL 13,SENSE SENSE TO CLEAR DEVICE * * READ CHAPTER HEADER TO CHECK FOR OLD FORMAT * LA 14,CHHDREAD ST 14,72(0) LH 12,IPLDEV SDV 0(12) BC 7,IDLE PC *+4,4 BAL 13,SENSE CLC AREA(4),=X'001A0000' BC 8,OLDFORM * * ALTER THE SKIP TO ONE LESS BLOCK FOR NEW FORMAT TAPES * LA 14,25 ST 14,BLKS * * ALSO ALTER THE CHAINED READS TO 4096 * MVC MAINREAD(8),MAINREAD+8 OLDFORM LA 14,SKIPBLK ST 14,CAW L 14,BLKS BAL 13,EXECUTE BCT 14,*-4 * * THE MAGTAPE SUP STARTS AT PAGE 2 OF CYL 4. READ DOWN THE FIRST PAGE * TO ITS LOAD ADDRESS(PAGE 3 OF REAL CORE). ITS HEADER THEN SAYS * HOW MANY MORE PAGES TO READ * LA 14,MAINREAD ST 14,CAW BAL 13,EXECUTE L 14,PAGE3 MVC HDDR(16),0(14) COPY THE HEADER TO HDDR L 14,HDDR SRL 14,12 * * SET UP A LOOP TO READ DOWN R14 MORE PAGES * LOOP L 13,F4096 A 13,MAINREAD ST 13,MAINREAD ST 13,MAINREAD+8 BAL 13,EXECUTE BCT 14,LOOP * * SET UP REGISTERS 11,12,13,14 OF P2 AND THE PC FOR ENTRY * L 13,HDDR L 14,PAGE3 AR 13,14 ST 13,HDDR L 13,HDDR+4 AR 13,14 ST 13,HDDR+4 L 13,HDDR+8 AR 13,14 ST 13,HDDR+8 LSP 75(3,0),HDDR P2 GRS 11-13 LSP 78(1,0),HDDR+4 PR GR 14 L 6,HDDR+4 P2 PC * * MOVE IN THE ISO &EBCDIC TRANSLATE TABLES * L 14,TRTABS MVC 0(256,14),EOIPL MVC 256(128,14),EOIPL+256 LM 4,5,SUPIMR PC IDLE,4 ENTER MAIN SENSE LA 14,SENSCCW ST 14,CAW EXECUTE MVC 72(4,0),CAW LH 12,IPLDEV SDV 0(12) BC 7,IDLE PC *+4,4 L 12,92(0) N 12,OKMASK BCR 8,13 MVC CSWS(8),88(0) SAVE CSWS FOR DUMP IDLE IDL 0 AIDLE DC A(IDLE) F4096 DC F'4096' SHADEND DC F'4096' SUPTOP DC A(HEADER-4) SUPIMR DC X'00F00003' SVC,OPCODE,PRIV,ADDR ERROR SUPISR DC X'00000900' PAGE3 DC F'12288' OKMASK DC X'067CFFFF' EOIPL DC X'00000000' DC X'00090000' DC X'00000000' DC X'00000000' DC X'00000000' DC X'000A0800' DC X'00111213' DC X'14000000' DC X'00000000' DC X'00000000' DC X'0000000B' DC X'0C0D0E0F' DC X'00000000' DC X'00000000' DC X'00191A1B' DC X'1C1D1E1F' DC X'20605B5D' DC X'7B7D0000' DC X'0000232E' DC X'3C282B21' DC X'26000000' DC X'00000000' DC X'00002124' DC X'2A293B5C' DC X'2D2F0000' DC X'00000000' DC X'00005E2C' DC X'255F3E3F' DC X'00000000' DC X'00000000' DC X'00003A23' DC X'60273D22' DC X'00616263' DC X'64656667' DC X'68690000' DC X'00000000' DC X'006A6B6C' DC X'6C6E6F70' DC X'71720000' DC X'00000000' DC X'00007374' DC X'75767778' DC X'797A0110' DC X'18151617' DC X'00000000' DC X'00000000' DC X'00000203' DC X'04050607' DC X'00414243' DC X'44454647' DC X'48490000' DC X'00000000' DC X'004A4B4C' DC X'4D4E4F50' DC X'51520000' DC X'00000000' DC X'00005354' DC X'55565758' DC X'595A0000' DC X'00000000' DC X'30313233' DC X'34353637' DC X'38390000' DC X'00000000' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'FFFFFFFF' DC X'405A7F7B' DC X'5B6C507D' DC X'4D5D5C4E' DC X'6B604B61' DC X'F0F1F2F3' DC X'F4F5F6F7' DC X'F8F97A5E' DC X'4C7E6E6F' DC X'7CC1C2C3' DC X'C4C5C6C7' DC X'C8C9D1D2' DC X'D3D4D5D6' DC X'D7D8D9E2' DC X'E3E4E5E6' DC X'E7E8E94D' DC X'5F5D6A6D' DC X'7CC1C2C3' DC X'C4C5C6C7' DC X'C8C9D1D2' DC X'D3D4D5D6' DC X'D7D8D9E2' DC X'E3E4E5E6' DC X'E7E8E940' DC X'404040FF' LTORG CNOP 0,8 GLAP DC F'0' DC X'40000000' DC A(LINKDA-GLAP) DC A(GLAP-EOIPL) DC 2F'0' DS 0D AREA DC 16F'0' CAW DS F IPLDEV DS H SENSDAT DS H SKIPTM CCW 7,WCBYTES,0,1 WRITE CONTROL TO SKIP 1 TM WCBYTES DC X'01080000' SKIPBLK CCW 7,WCBYTES+1,0,1 CHHDREAD CCW 5,AREA,0,26 MAINREAD CCW 5,12288,128,24 READ PAGE HEADER OF 24 GYTE CCW 5,12288,0,4096 AND OVERWRITE IT WITH PAGE BLKS DC F'26' 3 CYLS AND 2 PAGES HDDR DC 4F'0' TRTABS DC X'00001600' DEPOSIT ADDRESS OF TR TABLES SENSCCW CCW 1,SENSDAT,0,2 CSWS DS D LINKDA DC F'6' DC 5F'0' DC F'16' DC F'0' DS 0D ENDFIL END