ibm:vm370-lib:macro:rctlunit.macro_src
Table of Contents
RCTLUNIT Source
References
- Fixes Applied : 2
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [HRC101DK]
Source Listing
- RCTLUNIT.MACRO.txt
- MACRO 00001000
- RCTLUNIT &ADDRESS=,&CUTYPE=,&FEATURE=,&ALTCH= 00002000
- .* THIS MACRO GENERATES A REAL CONTROL UNIT BLOCK 00003000
- GBLA &CHADDR,&CUADDR,&DVADDR,&DEC,&RCUCNT 00004000
- GBLA &RDVCNT,&RCHCNT 00005000
- GBLB &RCODE 00006000
- GBLC &HEX,&CUTBL(512),&DVTBL(8) 00007000
- LCLA &COUNT,&INDEXA,&INDEXB,&RCHNOA(4) 00008000
- LCLC &NAMEX,&RCUADD,&RCUTYPE,&RCUSUB,&PRIME,&DUMMY 00008500
- LCLC &RCUNAM(4),&RCHNAM(4),&RCHNOC(4) 00009000
- LCLA &DEVCNT,&SUBCNT 00010000
- AIF (&RDVCNT EQ 0 OR &RCHCNT NE 0).ERR15 00011000
- &RCUSUB SETC '0' 00012000
- &RCUTYPE SETC '0' @VA03583 00012500
- &RCUADD SETC '&ADDRESS'(2,1) 00013000
- &SUBCNT SETA 0 00014000
- AIF (K'&ADDRESS NE 3).ERR1 00015000
- &RCHNOC(1) SETC '&ADDRESS'(1,1) 00015500
- &HEX SETC '&ADDRESS'(1,1) 00016000
- HEXDEC 00017000
- AIF (&RCODE).ERR1 00017100
- &RCHNOA(1) SETA &DEC 00017200
- AIF (T'&ALTCH EQ 'O').NOALT 00017300
- AIF ('&CUTYPE' EQ '2314' OR '&CUTYPE' EQ '2403').ALTOK 00017400
- AIF ('&CUTYPE' EQ '2404' OR '&CUTYPE' EQ '2803').ALTOK 00017500
- AIF ('&CUTYPE' EQ '2804' OR '&CUTYPE' EQ '2835').ALTOK 00017600
- AIF ('&CUTYPE' EQ '2841' OR '&CUTYPE' EQ '3803').ALTOK 00017700
- AIF ('&CUTYPE' EQ '3830').ALTOK 00017800
- AIF ('&CUTYPE' EQ '3880').ALTOK HRC011DK 00017850
- AIF ('&CUTYPE' EQ 'ISC').ALTOK 00017900
- AGO .ERR2 00018000
- .ALTOK AIF (N'&ALTCH GT 3).ERR3 00018100
- &COUNT SETA 0 00018200
- .LOOPALT ANOP 00018300
- &COUNT SETA &COUNT+1 00018400
- AIF (K'&ALTCH(&COUNT) NE 1).ERR3 00018500
- &RCHNOC(&COUNT+1) SETC '&ALTCH(&COUNT)' 00018600
- &HEX SETC '&ALTCH(&COUNT)' 00018700
- HEXDEC 00018800
- AIF (&RCODE).ERR3 00018900
- &RCHNOA(&COUNT+1) SETA &DEC 00019000
- AIF (&COUNT LT N'&ALTCH).LOOPALT 00019100
- .NOALT ANOP 00019200
- &HEX SETC '&ADDRESS'(2,1) 00020000
- HEXDEC 00021000
- AIF (&RCODE).ERR1 00022000
- &CUADDR SETA &DEC 00023000
- &HEX SETC '&ADDRESS'(3,1) 00024000
- HEXDEC 00025000
- AIF (&RCODE).ERR1 00026000
- &DVADDR SETA &DEC 00027000
- AIF (&DVADDR NE 0 AND &DVADDR NE 8).ERR1 00028000
- AIF ('&FEATURE' EQ '').NO16D 00030000
- AIF ('&DVADDR' NE '0').ERR4 00031000
- AIF ('&FEATURE' EQ '16-DEVICE').OK16 00032000
- .TST32 AIF ('&FEATURE' NE '32-DEVICE').TST48 00033000
- &SUBCNT SETA 1 00034000
- .* TABLE OF SUPPORTED 32-DEVICE FEATURE DEVICES 00035000
- AIF ('&CUTYPE' EQ '3880').OK16 HRC011DK 00036190
- AIF ('&CUTYPE' EQ '3830').OK16 HRC011DK 00036380
- AIF ('&CUTYPE' EQ '3272').OK16 HRC011DK 00036570
- AIF ('&CUTYPE' EQ '3274').OK16 HRC101DK 00036670
- AIF ('&CUTYPE' EQ '3174').OK16 HRC101DK 00036770
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00037000
- AIF ('&CUTYPE' EQ '2702' OR '&CUTYPE' EQ 'ISC').OK16 @VA2050 00038100
- AIF ('&CUTYPE' EQ '2848' OR '&CUTYPE' EQ 'IFA').OK16 00038110
- AGO .ERR5 00039000
- .TST48 AIF ('&FEATURE' NE '48-DEVICE').TST64 00040000
- &SUBCNT SETA 2 00041000
- .* TABLE OF SUPPORTED 48-DEVICE FEATURE DEVICES 00042000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00043000
- AIF ('&CUTYPE' EQ '3830').OK16 00043050
- AIF ('&CUTYPE' EQ 'ISC' OR '&CUTYPE' EQ 'IFA').OK16 00043100
- AGO .ERR5 00044000
- .TST64 AIF ('&FEATURE' NE '64-DEVICE').TST80 00045000
- &SUBCNT SETA 3 00046000
- .* TABLE OF SUPPORTED 64-DEVICE FEATURE DEVICES 00047000
- AIF ('&CUTYPE' EQ '3174').OK16 HRC101DK 00047200
- AIF ('&CUTYPE' EQ '3880').OK16 HRC011DK 00047500
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00048000
- AIF ('&CUTYPE' EQ '3830').OK16 00048050
- AIF ('&CUTYPE' EQ 'ISC').OK16 @VA02050 00048100
- AGO .ERR5 00049000
- .TST80 AIF ('&FEATURE' NE '80-DEVICE').TST96 00050000
- &SUBCNT SETA 4 00051000
- .* TABLE OF SUPPORTED 80-DEVICE FEATURE DEVICES 00052000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00053000
- AGO .ERR5 00054000
- .TST96 AIF ('&FEATURE' NE '96-DEVICE').TST112 00055000
- &SUBCNT SETA 5 00056000
- .* TABLE OF SUPPORTED 96-DEVICE FEATURE DEVICES 00057000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00058000
- AGO .ERR5 00059000
- .TST112 AIF ('&FEATURE' NE '112-DEVICE').TST128 00060000
- &SUBCNT SETA 6 00061000
- .* TABLE OF SUPPORTED 112-DEVICE FEATURE DEVICES 00062000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00063000
- AGO .ERR5 00064000
- .TST128 AIF ('&FEATURE' NE '128-DEVICE').TST144 00065000
- &SUBCNT SETA 7 00066000
- .* TABLE OF SUPPORTED 128-DEVICE FEATURE DEVICES 00067000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00068000
- AGO .ERR5 00069000
- .TST144 AIF ('&FEATURE' NE '144-DEVICE').TST160 00070000
- &SUBCNT SETA 8 00071000
- .* TABLE OF SUPPORTED 144-DEVICE FEATURE DEVICES 00072000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00073000
- AGO .ERR5 00074000
- .TST160 AIF ('&FEATURE' NE '160-DEVICE').TST176 00075000
- &SUBCNT SETA 9 00076000
- .* TABLE OF SUPPORTED 160-DEVICE FEATURE DEVICES 00077000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00078000
- AGO .ERR5 00079000
- .TST176 AIF ('&FEATURE' NE '176-DEVICE').TST192 00080000
- &SUBCNT SETA 10 00081000
- .* TABLE OF SUPPORTED 176-DEVICE FEATURE DEVICES 00082000
- AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00083000
- AGO .ERR5 00084000
- .TST192 AIF ('&FEATURE' NE '192-DEVICE').TST208 00085000
- &SUBCNT SETA 11 00086000
- .* TABLE OF SUPPORTED 192-DEVICE FEATURE DEVICES 00087000
- AIF ('&CUTYPE' EQ '3705').OK16 00088000
- AGO .ERR5 00089000
- .TST208 AIF ('&FEATURE' NE '208-DEVICE').TST224 00090000
- &SUBCNT SETA 12 00091000
- .* TABLE OF SUPPORTED 208-DEVICE FEATURE DEVICES 00092000
- AIF ('&CUTYPE' EQ '3705').OK16 00093000
- AGO .ERR5 00094000
- .TST224 AIF ('&FEATURE' NE '224-DEVICE').TST240 00095000
- &SUBCNT SETA 13 00096000
- .* TABLE OF SUPPORTED 224-DEVICE FEATURE DEVICES 00097000
- AIF ('&CUTYPE' EQ '3705').OK16 00098000
- AGO .ERR5 00099000
- .TST240 AIF ('&FEATURE' NE '240-DEVICE').TST256 00100000
- &SUBCNT SETA 14 00101000
- .* TABLE OF SUPPORTED 240-DEVICE FEATURE DEVICES 00102000
- AIF ('&CUTYPE' EQ '3705').OK16 00103000
- AGO .ERR5 00104000
- .TST256 AIF ('&FEATURE' NE '256-DEVICE').ERR6 00105000
- &SUBCNT SETA 15 00106000
- .* TABLE OF SUPPORTED 256-DEVICE FEATURE DEVICES 00107000
- AIF ('&CUTYPE' EQ '3705').OK16 00108000
- AGO .ERR5 00109000
- .OK16 ANOP 00110000
- &NAMEX SETC 'RCU'.'&ADDRESS'(1,1).'&RCUADD'.'8' 00111000
- .NO16D ANOP 00112000
- &COUNT SETA 1 00113000
- .CUTAB ANOP 00113100
- &RCUNAM(&COUNT) SETC 'RCU'.'&RCHNOC(&COUNT)'.'&RCUADD'.'&ADDRESS'(3,1) 00113200
- &RCHNAM(&COUNT) SETC 'RCHAN'.'&RCHNOC(&COUNT)' 00113300
- &INDEXA SETA &RCHNOA(&COUNT)*32+&CUADDR*2+&DVADDR/8+1 00113400
- &DUMMY SETC '&CUTBL(&INDEXA)' 00113410
- AIF ('&CUTBL(&INDEXA)' NE '').ERR8 00113420
- &CUTBL(&INDEXA) SETC '&RCUNAM(1)' 00113500
- .CUTBFIL ANOP 00113600
- &COUNT SETA &COUNT+1 00113700
- AIF (&COUNT LE N'&ALTCH+1).CUTAB 00113800
- AIF (&COUNT GT 4).CUTABND 00113900
- &RCHNAM(&COUNT) SETC '0' 00114000
- AGO .CUTBFIL 00114100
- .CUTABND ANOP 00114200
- AIF (&RCUCNT NE 0).N1ST 00116000
- ENTRY DMKRIOCU 00117000
- DMKRIOCU DS 0D 00118000
- .N1ST ANOP 00119000
- &RCUNAM(1) DS 0D 00120000
- AIF ('&FEATURE' EQ '').N16D 00121000
- &NAMEX EQU &RCUNAM(1) 00122000
- .N16D AIF ('&RCUSUB' NE '0').SUB 00123000
- &PRIME SETC '&RCUNAM(1)' 00124000
- .SUB ANOP 00125000
- &RCUADD SETC '&RCUADD'.'&ADDRESS'(3,1) 00126000
- DC XL2'0&RCUADD' -RCUADD 00127000
- DC H'0' - RCULOCK 00128000
- DC AL1(RCUDISA+RCUCHAOF+RCUCHBOF+RCUCHCOF+RCUCHDOF) RCUSTAT 00129000
- AIF ('&CUTYPE' EQ '2314' OR '&CUTYPE' EQ '2844').SSUB 00130000
- AIF ('&CUTYPE' EQ '2403' OR '&CUTYPE' EQ '2803').SSUB 00131000
- AIF ('&CUTYPE' EQ '2404' OR '&CUTYPE' EQ '2804').SSUB 00132000
- AIF ('&CUTYPE' EQ '2415' OR '&CUTYPE' EQ '3411').SSUB 00133000
- AIF ('&CUTYPE' EQ '3345').SSUB @VA05692 00134100
- AIF ('&CUTYPE' EQ '2820' OR '&CUTYPE' EQ '2841').SSUB 00135000
- AIF ('&CUTYPE' EQ '2840' OR '&CUTYPE' EQ '2848').SSUB 00136000
- AIF ('&CUTYPE' EQ '3272').SSUB 00137000
- AIF ('&CUTYPE' EQ '3274').SSUB HRC101DK 00137500
- AIF ('&CUTYPE' EQ '3803' OR '&CUTYPE' EQ '2319').SSUB 00138000
- AIF ('&CUTYPE' EQ 'CTCA').SSUB 00139000
- AIF ('&CUTYPE' EQ '3174').TYPE HRC101DK 00141000
- AIF ('&CUTYPE' NE '2701' AND '&CUTYPE' NE '2702' *00143000
- AND '&CUTYPE' NE '2703' *00144090
- AND '&CUTYPE' NE '3880').TYPE HRC011DK 00144180
- .* IF CUTYPE IS 3066, 3138, 3148, 3158, 3036, 3830, 3851, 00144500
- .* ISC OR IFA, THEN RCUTYPE HAS BEEN SET TO 0 AND WE NOW 00144700
- .* BRANCH TO LABEL .TYPE 00144800
- &RCUTYPE SETC 'RCU&CUTYPE' 2701, 2702, 2703 OR 3880 HRC011DK 00145490
- AGO .TYPE 00146000
- .SSUB ANOP 00147000
- &RCUTYPE SETC 'RCUSHRD' 00148000
- .TYPE ANOP 00149000
- DC AL1(&RCUTYPE+&RCUSUB) RCUTYPE 00150000
- DC H'0' - RESERVED 00151000
- DC A(&RCUNAM(1)) - RCUFIOB 00152000
- DC A(&RCUNAM(1)) - RCULIOB 00153000
- AIF ('&RCUSUB' EQ '0').PRIME 00154000
- DC A(&PRIME) - POINTER TO PRIMARY CONTROL UNIT 00155000
- DC 3A(0) - RESERVED 00156000
- AGO .NTPRIME 00157000
- .PRIME ANOP 00158000
- DC A(&RCHNAM(1)) - RCUCHA 00159000
- DC A(&RCHNAM(2)) - RCUCHB 00159500
- DC A(&RCHNAM(3)) - RCUCHC 00160000
- DC A(&RCHNAM(4)) - RCUCHD 00160500
- .NTPRIME ANOP 00162000
- DC A(&RCUNAM(1)) - RCURSTQ 00163000
- DC F'0' - RCUOPER 00164000
- DS 0D RCUDVTBL 00165000
- &COUNT SETA 1 00166000
- .ZERO1 ANOP 00167000
- &DVTBL(&COUNT) SETC '0' 00168000
- &COUNT SETA &COUNT+1 00169000
- AIF (&COUNT LE 8).ZERO1 00170000
- &CHADDR SETA &RCHNOA(1) 00171000
- RDVTBL GEN 00172000
- AIF (&DVADDR LT 8).LOWR 00173000
- DC 8H'-1' - 00174000
- .LOWR ANOP 00175000
- &DEVCNT SETA 0 00176000
- &COUNT SETA 1 00177000
- .LOOP1 ANOP 00178000
- AIF ('&DVTBL(&COUNT)' EQ '0').NDEV1 00179000
- DC AL2((&DVTBL(&COUNT)-DMKRIODV)/8) 00180000
- &DEVCNT SETA &DEVCNT+1 00181000
- AGO .CONT1 00182000
- .NDEV1 ANOP 00183000
- DC H'-1' - 00184000
- .CONT1 ANOP 00185000
- &COUNT SETA &COUNT+1 00186000
- AIF (&COUNT LE 8).LOOP1 00187000
- AIF (&DVADDR GE 8).END 00188000
- AIF ('&FEATURE' EQ '').HIGHR 00189000
- &COUNT SETA 1 00190000
- .ZERO2 ANOP 00191000
- &DVTBL(&COUNT) SETC '0' 00192000
- &COUNT SETA &COUNT+1 00193000
- AIF (&COUNT LE 8).ZERO2 00194000
- &DVADDR SETA 8 00195000
- &CHADDR SETA &RCHNOA(1) 00196000
- RDVTBL GEN 00197000
- &COUNT SETA 1 00198000
- .LOOP2 ANOP 00199000
- AIF ('&DVTBL(&COUNT)' EQ '0').NDEV2 00200000
- DC AL2((&DVTBL(&COUNT)-DMKRIODV)/8) 00201000
- AGO .CONT2 00202000
- .NDEV2 ANOP 00203000
- DC H'-1' - 00204000
- .CONT2 ANOP 00205000
- &COUNT SETA &COUNT+1 00206000
- AIF (&COUNT LE 8).LOOP2 00207000
- AGO .END 00208000
- .HIGHR ANOP 00209000
- DC 8H'-1' - 00210000
- .END ANOP 00211000
- AIF ('&CUTYPE' EQ 'CTCA' AND &DEVCNT NE 1).ERR7 00212000
- &RCUCNT SETA &RCUCNT+1 00213000
- SPACE 3 00214000
- AIF ('&SUBCNT' EQ '0').MEND 00215000
- &SUBCNT SETA &SUBCNT-1 00216000
- &RCUSUB SETC 'RCUSUB' 00217000
- &CUADDR SETA &CUADDR+1 00218000
- &DEC SETA &CUADDR 00219000
- DECHEX 00220000
- AIF (&RCODE).ERR1 00221000
- &RCUADD SETC '&HEX' 00222000
- &DVADDR SETA 0 00223000
- AGO .OK16 00224000
- .MEND MEXIT 00225000
- .ERR1 MNOTE 8,'INVALID CONTROL UNIT ADDRESS' 00226000
- MEXIT 00227000
- .ERR2 MNOTE 8,'''ALTCH'' IS INVALID FOR CUTYPE ''&CUTYPE''' 00227200
- MEXIT 00227400
- .ERR3 MNOTE 8,'INVALID ALTCH SPECIFICATION' 00227600
- MEXIT 00227800
- .ERR4 MNOTE 8,'INVALID CONTROL UNIT ADDRESS FOR SPECIFIED FEATURE' 00228000
- MEXIT 00229000
- .ERR5 MNOTE 8,'INVALID CONTROL UNIT TYPE FOR SPECIFIED FEATURE' 00230000
- MEXIT 00231000
- .ERR6 MNOTE 8,'INVALID FEATURE SPECIFIED' 00232000
- MEXIT 00233000
- .ERR7 MNOTE 8,'INVALID DEVICE CONFIGURATION' 00234000
- MEXIT 00235000
- .ERR8 MNOTE 8,'CHANNEL TABLE FOR &RCUNAM(1) IN USE BY &DUMMY' 00235100
- MEXIT 00235200
- .ERR15 MNOTE 12,'RCTLUNIT MACRO OUT OF SEQUENCE' 00236000
- MEND 00237000
ibm/vm370-lib/macro/rctlunit.macro_src.txt ยท Last modified: 2023/08/06 13:38 by Site Administrator