* /* */ 00650002 * /* MACCOMP Y-2 SC1DE/SJD61 */ 00700002 * /* MACSTAT Y-2 73103/Y02113 */ 00750002 * /* */ 00800002 */* CHANGE LEVEL=00 */ 01200000 */* DATE OF LAST CHANGE = 20 SEPT 71 ( 71*265 ) */ 01800000 */* IDACPDEF, CHANNEL PROGRAM DEFINITION */ 02400000 */* */ 03000000 * DCL 1 IDACP BASED, /* CHAN PGM DEFINITION */ 04200000 * 2 IDACCW1, /* SEEK HEAD */ 04800000 * 3 IDACC1CC BIT(8), /* COMMAND CODE */ 05400000 * 3 IDACC1AD PTR(24), /* COMMAND ADDRESS */ 06000000 * 3 IDACC1ST BIT(16), /* STATUS */ 06600000 * 3 IDACC1NO FIXED(15), /* RESIDUAL BYTE COUNT */ 07200000 * 2 IDACCW2, /* SET SECTOR/NOP */ 07800000 * 3 IDACC2CC BIT(8), /* COMMAND CODE */ 08400000 * 3 IDACC2AD PTR(24), /* COMMAND ADDRESS */ 09000000 * 3 IDACC2ST BIT(16), /* STATUS */ 09600000 * 3 IDACC2NO FIXED(15), /* RESIDUAL BYTE COUNT */ 10200000 * 2 IDACCW3, /* SEARCH ID */ 10800000 * 3 IDACC3CC BIT(8), /* COMMAND CODE */ 11400000 * 3 IDACC3AD PTR(24), /* COMMAND ADDRESS */ 12000000 * 3 IDACC3ST BIT(16), /* STATUS */ 12600000 * 3 IDACC3NO FIXED(15), /* RESIDUAL BYTE COUNT */ 13200000 * 2 IDACCW4, /* TIC */ 13800000 * 3 IDACC4CC BIT(8), /* COMMAND CODE */ 14400000 * 3 IDACC4AD PTR(24), /* COMMAND ADDRESS */ 15000000 * 3 IDACCIOB PTR(31); /* ADDRESS OF IOB */ 15600000 * DCL 1 IDACCW5 BASED, /* DATA TRANSFER DEFINED*/ 16200000 * 2 IDACC5CC BIT(8), /* COMMAND CODE */ 16800000 * 2 IDACC5AD PTR(24), /* COMMAND ADDRESS */ 17400000 * 2 IDACC5ST BIT(16), /* STATUS */ 18000000 * 2 IDACC5NO FIXED(15); /* RESIDUAL BYTE COUNT */ 18600000 * DCL 1 IDACCW6 BASED, /* TIC/NOP SWITCH */ 19200000 * 2 IDACC6CC BIT(8), /* COMMAND CODE */ 19800000 * 2 IDACC6AD PTR(24), /* COMMAND ADDRESS */ 20400000 * 2 IDACC6ST BIT(16), /* STATUS */ 21000000 * 2 IDACC6NO FIXED(15); /* RESIDUAL BYTE COUNT */ 21600000 *% DCL SEEKHH CHAR; /* DEFINE HEAD SEEK */ 22200000 *% DCL SETSECT CHAR; /* SET SECTOR */ 22800000 *% DCL SIDEQ CHAR; /* SEARCH ID EQUAL */ 23400000 *% DCL TIC CHAR; /* TRANSFER IN CHANNEL */ 24000000 *% DCL NOP CHAR; /* NO OPERATION */ 24600000 *% DCL RDATA CHAR; /* READ DATA */ 25200000 *% DCL RCKD CHAR; /* RD COUNT, KEY, DATA */ 25800000 *% DCL WCKD CHAR; /* WRT COUNT, KEY, DATA */ 26400000 *% DCL WD CHAR; /* WRITE DATA */ 27000000 *% DCL MT CHAR; /* MULTI-TRACK */ 27600000 *% DCL PCI CHAR; /* PROGRAMMED INTERRUPT */ 28200000 *% DCL CC CHAR; /* COMMAND CHAINING */ 28800000 *% DCL DC CHAR; /* DATA CHAINING */ 29400000 *% DCL SILI CHAR; /* SUPPRESS INCORR LEN */ 30000000 *% DCL SKIP CHAR; /* SKIP DATA TRANSFER */ 30600000 *% SEEKHH = '''1B''X'; /* SEEK HEAD */ 31200000 *% SETSECT = '''23''X'; /* SET SECTOR */ 31800000 *% SIDEQ = '''31''X'; /* SEARCH ID EQUAL */ 32400000 *% TIC = '''08''X'; /* TRANSFER IN CHANNEL */ 33000000 *% NOP = '''03''X'; /* NO OPERATION */ 33600000 *% RDATA = '''06''X'; /* READ DATA */ 34200000 *% RCKD = '''1E''X'; /* RD COUNT, KEY, DATA */ 34800000 *% WCKD = '''1D''X'; /* WRT COUNT, KEY, DATA */ 35400000 *% WD = '''05''X'; /* WRITE DATA */ 36000000 *% MT = '''80''X'; /* MULTI-TRACK */ 36600000 *% PCI = '''08''X'; /* PROGRAMMED INTERRUPT */ 37200000 *% CC = '''40''X'; /* COMMAND CHAINING */ 37800000 *% DC = '''80''X'; /* DATA CHAINING */ 38400000 *% SILI = '''20''X'; /* SUPPRESS INCORR LEN */ 39000000 *% SKIP = '''10''X'; /* SKIP DATA TRANSFER */ 39600000 *%GOTO IDACPSL2 ; 40200000 */* */ 40800000 */* ASSEMBLER DSECT FOR IDACPDEF */ 41400000 */* */ 42000000 MACRO 42600000 IDACPDEF &DSECT=YES 43200000 .* RELEASE 22 DELETIONS/CHANGES 43800000 .* RELEASE 21 DELETIONS/CHANGES 44400000 .* RELEASE 20 DELETIONS/CHANGES 45000000 * CONTROL 45600000 NOP EQU X'03' 46200000 SEEK EQU X'07' 46800000 SEEKCC EQU X'0B' 47400000 SEEKHH EQU X'1B' 48000000 SFM EQU X'1F' 48600000 SPACE EQU X'0F' 49200000 TIC EQU X'08' 49800000 *SEARCH OPS 50400000 MT EQU X'80' 51000000 SHAEQ EQU X'39' 51600000 SIDEQ EQU X'31' 52200000 SIDHI EQU X'51' 52800000 SIDEQHI EQU X'71' 53400000 SKEQ EQU X'29' 54000000 SKHI EQU X'49' 54600000 SKEQHI EQU X'69' 55200000 SETSECT EQU X'23' 55800000 * READ OPS 56400000 RHA EQU X'1A' 57000000 RDCNT EQU X'12' 57600000 RR0 EQU X'16' 58200000 RDATA EQU X'06' 58800000 RKD EQU X'0E' 59400000 RCKD EQU X'1E' 60000000 RDSECT EQU X'22' 60600000 * WRITE OPS 61200000 WCKD EQU X'1D' 61800000 WSCKD EQU X'01' 62400000 WD EQU X'05' 63000000 WKD EQU X'0D' 63600000 WR0 EQU X'15' 64200000 * FLAGS 64800000 DC EQU X'80' 65400000 CC EQU X'40' 66000000 SILI EQU X'20' 66600000 SKIP EQU X'10' 67200000 PCI EQU X'08' 67800000 * CP OFFSETS 68400000 IDACPC4 EQU 4 OFFSET TO SECOND HALF OF CCW 69000000 IDACPC6 EQU 6 OFFSET TO FIRST BYTE OF COUNT 69600000 IDACPC7 EQU 7 OFFSET TO SECOND BYTE OF COUNT 70200000 * 70800000 AIF ('&DSECT' EQ 'NO').IDACPM1 71400000 IDACP DSECT AM/0 CHANNEL PROGRAM DEFINITION 72000000 AGO .IDACPM2 72600000 .IDACPM1 ANOP 73200000 IDACP DS 0D AM/0 CHANNEL PROGRAM DEFINITION 73800000 .IDACPM2 ANOP 74400000 IDACCW1 CCW SEEKHH,0,CC,6 SEEK TO CORRECT TRACK 75000000 IDACCW2 CCW SETSECT,0,CC+SILI,1 SET SECTOR (NO OP FOR NON RPS) 75600000 IDACCW3 CCW SIDEQ,0,CC,5 SEARCH ID (SILI AND COUNT OF 4 76200000 * FOR REPLICATED INDEX READS) 76800000 IDACCW4 CCW TIC,IDACCW3-IDACCW1,0,0 REPEAT UNTIL FOUND 77400000 IDACCIOB EQU IDACCW4+IDACPC4 SECOND WORD USED FOR IOB PTR 78000000 * THE VARIABLE SEGMENT OF THE CHANNEL PROGRAM FOLLOWS. 78600000 IDACCW5A CCW RDATA+MT,0,CC,0 READ DATA/WRITE DATA--REPEATED 79200000 * ONCE FOR EACH PHYSICAL BLOCK IN CONTROL INTERVAL OR ONCE FOR 79800000 * EACH REPLICATED INDEX BLOCK. IN NON-FIRST CHANNEL PROGRAM 80400000 * SEGMENTS, THE PCI BIT MAY BE SET ALSO. FOR FORMAT OR UPDATE 81000000 * WRITE, CCW3 AND CCW4 ARE REPEATED FOR EACH CCW5 AND MT IS OFF. 81600000 IDACCW5B CCW WD,0,CC,0 UPDATE WRITE VERSION 82200000 IDACCW5C CCW WCKD,0,DC,8 FMT WRITE VERSION--WRITE COUNT 82800000 IDACCW5D CCW WCKD,0,CC,0 FMT WRITE VERSION--WRITE DATA 83400000 IDACCW6 CCW NOP,0,SILI,1 CC ON AND SET TO TIC IF CHANNEL 84000000 * PROGRAM SEGMENTS ARE LINKED TOGETHER. 84600000 MEND 85200000 * END OF ASSEMBLER DSECT 85800000 *%IDACPSL2: ; 86400000