X TITLE 'SAVEDISK - äAMðéPOBAHéE OþEHø CâOêHùX äéCKOB' DISK0001 * * * ðOCìEäHññ KOPPEKTéPOBKA: äATA 29.01.90 BPEMñ 21.48 * æOKõC DISK0002 * ìEHéHçPAä éBã çõT OTä. 23 ìATùûKO T: 219-07-07 * DISK0003 SPACE 2 DISK0004 MACRO DISK0005 &L NEXTPARM &A DISK0006 &L LA 0,L'&A DISK0007 LA 1,&A DISK0008 BAL 14,NEXTPARM DISK0009 MEND DISK0010 SPACE DISK0011 MACRO DISK0012 &NAME #ERROR &C,&N DISK0013 &NAME LA 0,&N DISK0014 B&C #ERROR DISK0015 MEND DISK0016 SPACE DISK0017 MACRO DISK0018 &NAME #PR &N DISK0019 &NAME LA 0,&N DISK0020 BAL 14,#PRINT DISK0021 MEND DISK0022 SPACE 2 DISK0023 COPY CCWEQU DISK0024 REQU WR1,1,WR2,2,WR3,3,WR4,4,RUCB,9,ROUCB,8,RMAP,7 DISK0025 SPACE 2 DISK0026 DSA PRINT=NOGEN DISK0027 WSAV14#2 DS F DISK0028 SAVEPARM DS 2F DISK0029 TIMEDATE DS 2F DISK0030 NUMCCW DS F DISK0031 DOMNUMB DS F DISK0032 NUMERRS DS F DISK0033 MAPADR DS F AäPEC TAâìéãù äOPOöEK DISK0034 ENDMAP DS F KOHEã TAâìéãù äOPOöEK DISK0035 TODDADR DS F AäPEC DD TO DISK0036 FROMUCB DS F AäPEC UCB äìñ DD FROM DISK0037 VTOCCCHH DS F AäPEC HAþAìA VTOC DISK0038 DATAL1 DS H äìéHA 1-çO âìOKA HA ìEHTE DISK0039 DATAL2 DS H -"- 2 -"- DISK0040 ERCNT DS H CþETþéK OûéâOK DISK0041 CUU DS CL3 AäPEC äAMðéPõEMOçO äéCKA DISK0042 OCUU DS CL3 AäPEC BùXOäHOçO õCTPOêCTBA DISK0043 VOLUME DS CL6 éMñ äAMðéPõEMOçO TOMA DISK0044 OVOLSER DS CL6 éMñ BùXOäHOçO TOMA DISK0045 J DS CL8 DISK0046 DSCB4KEY DS CL44 DISK0047 SPACE 2 DISK0048 CCW1AREA DS 0D DISK0049 CCW1RR0 DS D DISK0050 DS 130CL8 DISK0051 * DISK0052 CNTAREA DS 0D DISK0053 CNTR0 DS D DISK0054 DS 130D DISK0055 * DISK0056 CCW2AREA DS 0D DISK0057 CCW2RR0 DS D DISK0058 DS 133D DISK0059 * DISK0060 DS F DISK0061 OUTBUF2 DS CL8000 âõæEP äìñ äAHHùX CO BCEê äOPOçé DISK0062 * DISK0063 BUF EQU OUTBUF2 DISK0064 JFCB EQU OUTBUF2 DISK0065 GENDSECT (TRKMAP,TRKC,X),USING=RMAP DISK0066 TRKDMPED EQU X'80' äOPOöKA CäAMðéPOBAHA DISK0067 TRKDMPCT EQU X'40' C äOPOöKé ðPOþéTAHù CþETþéKé DISK0068 TRKVTOC EQU X'01' äOPOöKA COäEPöéT VTOC DISK0069 EJECT DISK0070 *********************************************************************** DISK0071 * ðPOìOç, ðPOBEPKA ðAPAMETPOB é HAìéþéñ DD * DISK0072 *********************************************************************** DISK0073 SAVEDISK @START BASE=(11,12),RPARM=2,PRINT=,ID=*,DATE=Y DISK0074 * DISK0075 L 2,0(2) DISK0076 LH 3,0(2) DISK0077 LA 2,2(2) DISK0078 STM 2,3,SAVEPARM DISK0079 @LOAD SLBLDMSG DISK0080 * DISK0081 L 1,16 DISK0082 L 1,0(1) DISK0083 L 1,4(1) DISK0084 L 15,12(1) DISK0085 MVC J,0(15) DISK0086 L 1,180(1) DISK0087 L 1,256(1) DISK0088 MVC IDCONS+1(1),29(1) DISK0089 * DISK0090 @PUTMSG ('1 ') DISK0091 IFREG 15,Z,*+12 SYSPRINT B ðOPñäKE ? DISK0092 MVI RC+1,12 DISK0093 B @DELETE DISK0094 @PUTMSG (' SAVEDISK 1.1 (&SYSDATE) - ERRORFUL DISKS DUMPING') DISK0095 @PUTMSG ('0 ') DISK0096 * DISK0097 @GETDD INDCB+40 DISK0098 LTR 15,15 DISK0099 #ERROR Z,101 DISK0100 L RUCB,16(15) DISK0101 LA RUCB,0(RUCB) DISK0102 ST RUCB,FROMUCB DISK0103 TM 18(RUCB),X'20' DISK0104 #ERROR Z,103 DISK0105 NEXTPARM CUU DISK0106 BNE TESTCUU1 DISK0107 @CALL GETCUU DISK0108 LR RUCB,1 DISK0109 TESTCUU1 LTR 15,15 DISK0110 #ERROR NZ,102 DISK0111 MVC CUU,13(RUCB) DISK0112 TM 18(RUCB),X'20' DASD ? DISK0113 #ERROR Z,104 DISK0114 CLI 19(RUCB),X'08' 5061 ? DISK0115 #ERROR NE,110 ðOKA ! DISK0116 * DISK0117 @GETDD OUTDCB+40 DISK0118 LTR 15,15 DISK0119 #ERROR Z,101 DISK0120 ST 15,TODDADR DISK0121 L ROUCB,16(15) DISK0122 LA ROUCB,0(ROUCB) DISK0123 MVC OCUU,13(ROUCB) DISK0124 MVC OVOLSER,28(ROUCB) DISK0125 CR ROUCB,RUCB DISK0126 #ERROR E,106 DISK0127 * DISK0128 IFREG ROUCB,NZ,TESTTAPE DISK0129 MVC OCUU,=C'NUL' DUMMY ! DISK0130 OI WFLAG,FLGDUMMY+FLGTAPE PAâOTAEM KAK C ìEHTOê DISK0131 B FORMWKA DISK0132 * DISK0133 TESTTAPE TMB 18(ROUCB),X'80',Z,TESTDASD TAPE ? DISK0134 OI WFLAG,FLGTAPE DISK0135 B FORMWKA DISK0136 * DISK0137 TESTDASD TM 18(ROUCB),X'20' DASD ? DISK0138 #ERROR Z,105 DISK0139 CLC 16(4,ROUCB),16(RUCB) DISK0140 #ERROR NE,107 DISK0141 CLI 56(ROUCB),1 DISK0142 #ERROR NE,108 DISK0143 EJECT DISK0144 *********************************************************************** DISK0145 * æOPMéPOBAHéE HõöHùX KOHCTAHT B PAâOþEê OâìACTé * DISK0146 *********************************************************************** DISK0147 FORMWKA DS 0H DISK0148 LH 0,NUMCYL DISK0149 MH 0,NUMTRK DISK0150 GETMAIN R,LV=(0) * ðOìõþEHéE ðAMñTé ðOä TAâìéãõ äOPOöEK * DISK0151 ST 1,MAPADR DISK0152 AR 1,0 DISK0153 ST 1,ENDMAP DISK0154 * DISK0155 L 1,MAPADR DISK0156 MVI 0(1),0 OâHõìEHéE TAâìéãù äOPOöEK DISK0157 LA 1,1(1) DISK0158 BCT 0,*-8 DISK0159 SPACE DISK0160 LA 0,131 * ðOCTPOEHéE CCW äìñ þTEHéñ CþETþéKOB * DISK0161 LA 1,CCW1AREA DISK0162 LA 14,CNTAREA DISK0163 L 15,=X'40000008' ãEðOþKA KOMAHä, 8 âAêT DISK0164 INITCCW1 STM 14,15,0(1) DISK0165 MVI 0(1),X'12' 'CþéTATø CþET' DISK0166 LA 1,8(1) DISK0167 LA 14,8(14) DISK0168 BCT 0,INITCCW1 DISK0169 MVI CCW1AREA,X'16' 'CþéTATø R0' DISK0170 MVI CCW1AREA+4,CC+SLI DISK0171 SPACE DISK0172 STADR JFCB,IEXLST,X'87' DISK0173 FILL DSCB4KEY,X'04' DISK0174 SPACE 2 DISK0175 *********************************************************************** DISK0176 * OPEN FROM & TO * DISK0177 *********************************************************************** DISK0178 RDJFCB MF=(E,OPENIN) DISK0179 LTR 15,15 DISK0180 #ERROR NZ,109 DISK0181 FILL JFCB,X'04',44 DISK0182 OI JFCB+52,X'08' - JFCB HAúAä HE ðéCATø DISK0183 OPEN MF=(E,OPENIN),TYPE=J DISK0184 * DISK0185 BAL 14,ZERO DISK0186 L 1,INDCB+44 DEB DISK0187 ST RUCB,32(1) HOBùê AäPEC UCB DISK0188 OI 32(1),X'C0' MACKA DISK0189 MVC 38(4,1),=F'0' HAþAìO üKCTEHTA DISK0190 MVC 42(4,1),=X'7FFF7FFF' KOHEã üKCTEHTA DISK0191 BAL 14,NZERO DISK0192 SPACE 2 DISK0193 * TMB WFLAG,FLGDUMMY,O,LSKPOPEN DISK0194 TMB WFLAG,FLGTAPE,O,OPENTAPE DISK0195 * DISK0196 BAL 14,ZERO DISK0197 L 15,TODDADR DISK0198 MVC 17(3,15),FROMUCB+1 ðOäMEHéTø AäPEC UCB äìñ OPEN DISK0199 BAL 14,NZERO DISK0200 * DISK0201 OPEN MF=(E,OPENOUT),TYPE=J DISK0202 * DISK0203 BAL 14,ZERO DISK0204 L 15,TODDADR DISK0205 STH ROUCB,18(15) BOCCTAHOBéTø AäPEC UCB DISK0206 L 1,OUTDCB+44 DEB DISK0207 ST ROUCB,32(1) BOCCT. AäPEC UCB B DEB DISK0208 MVI 32(1),X'C0' MACKA DISK0209 MVC 38(4,1),=F'0' HAþAìO üKCTEHTA DISK0210 MVC 42(4,1),=X'7FFF7FFF' KOHEã üKCTEHTA DISK0211 BAL 14,NZERO DISK0212 * DISK0213 LSKPOPEN STADR OUTBUF2+8,DCCWHEAD,X'31' DISK0214 STADR CCW2AREA-8,DCCWHEAD+8,X'08' DISK0215 MVI OECB,X'7F' DISK0216 B START DISK0217 SPACE 2 DISK0218 *********************************************************************** DISK0219 * HAþAìO äAMðéPOBAHéñ * DISK0220 *********************************************************************** DISK0221 START DS 0H DISK0222 STARTMSG BC 0,START1 * ðEþATø COOâýEHéñ 'STARTED' * DISK0223 SWON STARTMSG DISK0224 #PR 1 DISK0225 @WTOMSG (,) DISK0226 SPACE DISK0227 START1 BC 0,START2 * þTEHéE METKé TOMA * DISK0228 OI WFLAG,FLGVTOCA DISK0229 L RMAP,MAPADR DISK0230 CLEAR CCHH DISK0231 STADR BUF,RVOL1CCW+16,6 DISK0232 STADR RVOL1CCW,IOBSTART DISK0233 MVI OPFLAG,0 DISK0234 BAL 14,EXCP#I DISK0235 CLIB ECB,X'7F',NE,START1#2 DISK0236 SWON START1 DISK0237 CLCB BUF(4),VOL1,NE,START1#3 DISK0238 CLCB BUF+11(2),NUMCYL,NL,START1#3 DISK0239 CLCB BUF+13(2),NUMTRK,NL,START1#3 DISK0240 MVC VOLUME,BUF+4 DISK0241 MVC VTOCCCHH,BUF+11 DISK0242 #PR 3 DISK0243 NI WFLAG,255 FLGVTOCA <- OTìAäKA .? DISK0244 B START2 DISK0245 * DISK0246 START1#2 BC 0,START2 DISK0247 SWON START1#2 DISK0248 #PR 23 DISK0249 B START2 DISK0250 START1#3 #PR 24 DISK0251 SPACE DISK0252 START2 DS 0H DISK0253 SPACE DISK0254 STARTXX DS 0H DISK0255 CLEAR NUMERRS DISK0256 L RMAP,MAPADR DISK0257 BCTR RMAP,0 DISK0258 B NEXTTRK .? DISK0259 EJECT DISK0260 *********************************************************************** DISK0261 * þTEHéE CþETþéKOB * DISK0262 *********************************************************************** DISK0263 EXCP1 STADR CCW1AREA,IOBSTART DISK0264 MVI OPFLAG,OPFRKEY DISK0265 BAL 14,EXCP#I DISK0266 OI TRKC,TRKDMPCT DISK0267 * DISK0268 L 1,IOBCSW-1 DISK0269 LA 1,0(1) DISK0270 LA 0,CCW1AREA DISK0271 SR 1,0 DISK0272 * DISK0273 XR 0,0 DISK0274 D 0,=F'8' DISK0275 BCTR 1,0 B R1 - þéCìO úAðéCEê (BKì. R0) DISK0276 ST 1,NUMCCW .? DISK0277 SPACE DISK0278 BCT 1,*+8 ECìé 1 úAðéCø - HAM HE HAäO ! DISK0279 B BCCWRDAT DISK0280 TMB WFLAG,FLGVTOCA,Z,BCCWRDAT DISK0281 CLCB CNTAREA+12(4),=X'012C0060',NE,BCCWRDAT 44,96 ? DISK0282 OI TRKC,TRKVTOC BOúMOöHO, üTO VTOC DISK0283 SPACE 2 DISK0284 *********************************************************************** DISK0285 * ðOäçOTOBKA CCW äìñ þTEHéñ äAHHùX * DISK0286 *********************************************************************** DISK0287 BCCWRDAT BAL 14,CHECK#O DISK0288 L 0,NUMCCW þéCìO CCW DISK0289 IFREG 0,NP,NEXTTRK .?? DISK0290 * DISK0291 LA WR1,OUTBUF2+8 HAþAìO äAHHùX DISK0292 LA WR2,CCW2AREA HAþAìO 2 KAHAìKé DISK0293 LA WR3,CNTAREA HAþAìO CþéTAHHùX CþETþéKOB DISK0294 * DISK0295 INITCCW2 DS 0H DISK0296 MVC 0(8,WR1),0(WR3) ðEPEHOC CþETþéKA DISK0297 ST WR1,0(WR2) DISK0298 XR WR4,WR4 DISK0299 IC WR4,5(WR3) KL DISK0300 AH WR4,6(WR3) +DL DISK0301 AH WR4,=H'8' +CL DISK0302 ST WR4,4(WR2) äìéHA B CCW DISK0303 AR WR1,WR4 WR1 - äìñ CìEä. äAHHùX DISK0304 MVI 0(WR2),X'1E' CþéTATø CþET-Kìàþ-äAHHùE DISK0305 CHB WR4,=H'8',NE,*+8 TOìøKO CþET ? DISK0306 MVI 0(WR2),X'12' CþéTATø CþET DISK0307 * DISK0308 BCT 0,*+8 KOHEã ? DISK0309 B ICCW2RR0 .? DISK0310 CLCB 12(1,WR3),4(WR3),NH,ICCW2RR0 .?????? DISK0311 * DISK0312 OI 4(WR2),CC ãEðOþKA KOMAHä DISK0313 LA WR2,8(WR2) DISK0314 LA WR3,8(WR3) DISK0315 B INITCCW2 DISK0316 * DISK0317 ICCW2RR0 MVI CCW2RR0,X'16' READ R0 DISK0318 * DISK0319 LA 15,OUTBUF2 DISK0320 SR WR1,15 äìéHA äAHHùX - DISK0321 STH WR1,DATAL2 B CCW äìñ ìEHTù DISK0322 * DISK0323 LR WR3,WR2 DISK0324 LA 15,CCW2AREA-8 DISK0325 SR WR2,15 DISK0326 LR 1,WR2 DISK0327 XR 0,0 DISK0328 D 0,=F'8' DISK0329 CLC NUMCCW,=F'1' TOìøKO R0 ? DISK0330 ST 1,NUMCCW DISK0331 BE NOTEDMPD äA - OâXOä 2 EXCP DISK0332 EJECT DISK0333 *********************************************************************** DISK0334 * þTEHéE äAHHùX C äOPOöKé * DISK0335 *********************************************************************** DISK0336 EXCP2 STADR CCW2AREA,IOBSTART DISK0337 MVI OPFLAG,OPFRDATA DISK0338 BAL 14,EXCP#I DISK0339 NOTEDMPD OI TRKC,TRKDMPED æìAöOK - CäAMðéPOBAìé DISK0340 SPACE 2 DISK0341 TMB TRKC,TRKVTOC,Z,PREPWRTE DISK0342 L WR2,CCW2AREA+8 DISK0343 CLCB DSCB4KEY,8(WR2),NE,PREPWRTE DISK0344 CLIB 52(WR2),C'4',NE,PREPWRTE DISK0345 LA WR2,8(WR2) DISK0346 #PR 15 DISK0347 INCRCNT NUMDSCB4,INIT=0 DISK0348 * DISK0349 TMB WFLAG,FLGTAPE,O,PREPWRTE DISK0350 XC 56(2,WR2),56(WR2) þéCìO CBOâ. AìøTEPH. äOPOöEK DISK0351 SPACE 2 DISK0352 *********************************************************************** DISK0353 * ðOäçOTOBKA úAðéCé HA ìEHTõ é HA äéCK * DISK0354 *********************************************************************** DISK0355 PREPWRTE OI 4(WR3),CC .? DISK0356 * DISK0357 L 14,NUMCCW DISK0358 MH 14,=H'8' DISK0359 LA 14,CCW2AREA(14) CBOâOäHOE MECTO ðOCìE KAHAìKé DISK0360 * - ðOäãEðìñEM TõäA 3 CCW DISK0361 MVC 0(16,14),DCCWHEAD 1 B ðOPñäKE DISK0362 ST 14,8(14) DISK0363 MVI 8(14),8 2 O'KEY DISK0364 LH 0,CCW2AREA+6 äìéHA R0 DISK0365 SH 0,=H'8' - äìéHA CþETA DISK0366 ST 0,20(14) DISK0367 STADR OUTBUF2+16,16(14),X'05' 3 O'KEY DISK0368 * DISK0369 MVC CCW2AREA(8),LHEADCCW DISK0370 * DISK0371 TMB WFLAG,FLGTAPE,Z,WRTDISK HõöHA ìé ðEPEHACTPOêKA äìñ Mì ? DISK0372 SPACE DISK0373 WRTTAPE DS 0H DISK0374 LH WR2,DATAL2 DISK0375 SH WR2,=H'4' DISK0376 STH WR2,OUTBUF2+4 DISK0377 STH WR2,OUTBUF2+6 DISK0378 * DISK0379 WRITE WRDECB2,SF,,OUTBUF2+4,(WR2),MF=E DISK0380 B NEXTTRK DISK0381 SPACE 2 DISK0382 WRTDISK DS 0H DISK0383 MVC CCW2AREA-8(16),DCCWHEAD DISK0384 STADR CCW2AREA-8,OIOB+16 DISK0385 MVC OIOB+35(4),FCCHH DISK0386 * DISK0387 OC FCCHH,FCCHH TRACK ZERO ? DISK0388 BNZ WRTDISK1 DISK0389 L 1,CCW2AREA+24 éú CCW äìñ VOL1 - AäPEC VOL1 DISK0390 CLCB VOL1,8(1),NE,WRTDISK1 TAM ECTø VOL1 ? DISK0391 MVC 16(6,1),OVOLSER COXPAHéTø éMñ BùX. TOMA DISK0392 * DISK0393 WRTDISK1 L 0,NUMCCW DISK0394 BCT 0,WCCWUPDT DISK0395 MVC CCW2AREA+8(8),CCW2AREA+24 DISK0396 B WRITEOUT DISK0397 * DISK0398 WCCWUPDT LA 1,CCW2AREA+8 DISK0399 WCCWLOOP CLI 0(1),X'01' CàäA úAHECìé CðEã. KOMAHäõ ? DISK0400 BE *+8 DISK0401 MVI 0(1),X'1D' BCE CCW - 'ðéCATø CþET-Kì.-ä.' DISK0402 LA 1,8(1) DISK0403 BCT 0,WCCWLOOP DISK0404 SPACE DISK0405 WRITEOUT DS 0H DISK0406 * INCR OUTDCB+12,F,2 DISK0407 TMB WFLAG,FLGDUMMY,O,LSKPEXCP DISK0408 EXCP OIOB DISK0409 LSKPEXCP TMB WFLAG,FLG2RUN,Z,*+8 DISK0410 OI WFLAG,FLGERSEQ ðOCìEäOBATEìøHOCTø HAPõûEHA ! DISK0411 SPACE 2 DISK0412 *********************************************************************** DISK0413 * KOHEã ãéKìA * DISK0414 *********************************************************************** DISK0415 NEXTTRK BAL 14,NEXTCCHH DISK0416 B *+8 >--! DISK0417 B *+12 ! >-! KOHEã TAâìéãù DISK0418 BZ EXCP1 <--! ! DISK0419 B NEXTTRK ! DISK0420 * * BCE äOPOöKé ðPOþéTAHù * DISK0421 OC NUMERRS,NUMERRS âùìé ìé OûéâKé ðPé þTEHéé ? DISK0422 BZ EOJ HET - KOHþAEMCñ DISK0423 SPACE DISK0424 OI WFLAG,FLG2RUN ON - æìAç 2 ðPOXOäA DISK0425 @WTOMSG (,(NUMERRS,5,D,E),+S,'TRACKS NOT DUMPED') DISK0426 LA 14,START DISK0427 EJECT DISK0428 *********************************************************************** DISK0429 * ðð SWAP * DISK0430 *********************************************************************** DISK0431 SWAP ST 14,WSAV14#3 DISK0432 MVC SWAPWTOR+21(3),CUU DISK0433 MVC NCUU,=C' ' DISK0434 MVI RECB,0 DISK0435 LH 0,IDCONS DISK0436 SWAPWTOR WTOR 'SWAP CUU TO CONTINUE; - REPLY CUU OR ''*'' OR ''NO''', +DISK0437 NCUU,3,RECB,DESC=2,MCSFLAG=REG0 DISK0438 WAIT ECB=RECB DISK0439 CLIB NCUU,C'*',E,SWAPRET DISK0440 CLCB NCUU,=C'NO ',E,EOJ DISK0441 * DISK0442 BAL 14,ZERO DISK0443 @CALL SWAPUCB,CUU,NCUU DISK0444 LR 10,15 DISK0445 BAL 14,NZERO DISK0446 BRC EXSWAP,NOSWAP,INVSWAP,INVSWAP,INVSWAP,RC=10 DISK0447 * DISK0448 EXSWAP DS 0H DISK0449 #PR 11 DISK0450 @WTOMSG (,) DISK0451 MVC CUU,NCUU DISK0452 SWAPRET L 14,WSAV14#3 DISK0453 BR 14 DISK0454 * DISK0455 INVSWAP @WTOMSG (,NCUU,+S,'INVALID FOR SWAP') DISK0456 B SWAP+4 .? DISK0457 * DISK0458 NOSWAP @WTOMSG (,CUU,+S,'CANNOT BE SWAPED') DISK0459 B EOJ DISK0460 * DISK0461 DS$C WSAV14#3,F DISK0462 EJECT DISK0463 *********************************************************************** DISK0464 * CLOSE FROM & TO * DISK0465 *********************************************************************** DISK0466 EOJ BAL 14,CHECK#O DISK0467 TMB WFLAG,FLGDUMMY,O,CLOSEOUT DISK0468 TMB WFLAG,FLGTAPE,Z,CLOSE DISK0469 * DISK0470 WRITE WDECB1,SF,MF=E DISK0471 CHECK WDECB1 DISK0472 * DISK0473 CLOSE DS 0H DISK0474 TMB WFLAG,FLGTAPE,O,CLOSEOUT DISK0475 BAL 14,ZERO * TOìøKO äìñ BùX. äéCKA * DISK0476 L 1,OUTDCB+44 * DISK0477 MVC 34(2,1),FROMUCB+2 B DEB UCB=FROMUCB * DISK0478 L WR2,TODDADR * DISK0479 MVC 18(2,WR2),FROMUCB+2 B TIOT UCB=FROMUCB * DISK0480 BAL 14,NZERO * DISK0481 CLOSEOUT CLOSE MF=(E,OPENOUT) DISK0482 * DISK0483 BAL 14,ZERO DISK0484 TMB WFLAG,FLGTAPE,O,*+8 DISK0485 STH ROUCB,18(WR2) BOCCT. AäP. UCB B TO DD * DISK0486 L 1,INDCB+44 DISK0487 MVC 34(2,1),FROMUCB+2 DISK0488 BAL 14,NZERO DISK0489 CLOSEIN CLOSE MF=(E,OPENIN) DISK0490 SPACE 2 DISK0491 *********************************************************************** DISK0492 * ðEþATø éTOçOB * DISK0493 *********************************************************************** DISK0494 #PR 2 DISK0495 @WTOMSG (,) DISK0496 L 0,NUMERRS DISK0497 IFREG 0,Z,MSGERSEQ DISK0498 SPACE DISK0499 #PR 12 * ðEþATø CðéCKA HACäAMð. äOPOöEK * DISK0500 @PUTMSG (+S,' ') úAçOìOBOK .? DISK0501 L RMAP,MAPADR DISK0502 BCT RMAP,PRNDL1 DISK0503 * DISK0504 PRNDLOOP @PUTMSG (+S,(CCHH,,X)) DISK0505 PRNDL1 BAL 14,NEXTCCHH DISK0506 B *+8 >-! DISK0507 B *+12 ! >-! KOHEã DISK0508 BO NEXTCCHH <-! ! DISK0509 B PRNDLOOP ! DISK0510 @PUTMSG (+S,' ') <-! DISK0511 SPACE DISK0512 TMB WFLAG,FLGVTOCA,Z,STRC4#1 DISK0513 #PR 13 * ðEþATø CðéCKA äOPOöEK, COä. VTOC * DISK0514 @PUTMSG (+S,' ') úAçOìOBOK .? DISK0515 B PRVTTRL1 DISK0516 * DISK0517 PRVTTRLP @PUTMSG (+S,(CCHH,,X)) DISK0518 PRVTTRL1 BAL 14,NEXTCCHH DISK0519 B *+8 >-----! DISK0520 B *+16 ! >-! KOHEã DISK0521 TM TRKC,TRKVTOC <-! ! DISK0522 BZ NEXTCCHH ! DISK0523 B PRVTTRLP ! DISK0524 @PUTMSG (+S,' ') <-----! DISK0525 SPACE DISK0526 STRC4#1 CLIB RC+1,4,H,*+8 DISK0527 MVI RC+1,4 DISK0528 SPACE DISK0529 MSGERSEQ TMB WFLAG,FLGTAPE+FLGERSEQ,NO,@DELETE DISK0530 #PR 14 DISK0531 CLIB RC+1,4,H,*+8 DISK0532 MVI RC+1,4 DISK0533 SPACE 2 DISK0534 @DELETE @DELETE SLBLDMSG DISK0535 * DISK0536 TMB WFLAG,FLGDUMMY,Z,CLOSEPRT DISK0537 LH 0,NUMCYL DISK0538 MH 0,NUMTRK DISK0539 L 1,MAPADR DISK0540 @CALL PRTDUMP <- OTìAäKA DISK0541 * DISK0542 CLOSEPRT @PRINT 0 - CLOSE SYSPRINT DISK0543 * DISK0544 END @RETURN RC=RC DISK0545 EJECT DISK0546 *********************************************************************** DISK0547 * ðð ðEþATé, WTO * DISK0548 *********************************************************************** DISK0549 #PRINT DS 0H DISK0550 ST 14,WSAVE14 DISK0551 LR 14,0 DISK0552 TIME DEC DISK0553 STM 0,1,TIMEDATE DISK0554 BUILDMSG NUM=(14),TAB=MSG,BUF=@MSGBUF DISK0555 @PRINT @MSGBUF+4 DISK0556 L 14,WSAVE14 DISK0557 BR 14 DISK0558 SPACE DISK0559 #ERROR DS 0H DISK0560 LR WR2,1 DISK0561 BUILDMSG NUM=(0),TAB=ERMSGTAB,BUF=@MSGBUF DISK0562 @PRINT @MSGBUF+4 DISK0563 MVI @MSGBUF+6,X'40' DISK0564 LH 0,IDCONS DISK0565 WTO MF=(E,@MSGBUF+4) DISK0566 MVI RC+1,8 DISK0567 B @DELETE DISK0568 SPACE 2 DISK0569 *********************************************************************** DISK0570 * ðð æOPMéPOBAHéñ AäPECA CìEäõàýEê äOPOöKé * DISK0571 *********************************************************************** DISK0572 NEXTCCHH DS 0H DISK0573 LA RMAP,1(RMAP) DISK0574 CB RMAP,ENDMAP,NL,NXTCCHHE DISK0575 * DISK0576 LR 1,RMAP * ðPEOâPAúOBAHéE N âAêTA B CCHH * DISK0577 S 1,MAPADR R1 - CMEýEHéE B TAâìéãE DISK0578 XR 0,0 DISK0579 LH 15,NUMTRK DISK0580 DR 0,15 DISK0581 STH 0,FCCHH+2 HH DISK0582 STH 1,FCCHH CC DISK0583 MVC CCHH,FCCHH DISK0584 TM TRKC,TRKDMPED õCTAHOBéTø KOä õCìOBéñ DISK0585 BR 14 DISK0586 * DISK0587 NXTCCHHE L RMAP,MAPADR DISK0588 BCTR RMAP,0 DISK0589 B 4(14) DISK0590 * DISK0591 NUMCYL DC H'200' .? DISK0592 NUMTRK DC H'20' .? DISK0593 EJECT DISK0594 *********************************************************************** DISK0595 * ðð EXCP äìñ FROM * DISK0596 *********************************************************************** DISK0597 EXCP#I DS 0H DISK0598 CLEAR ERCNT,ERCNT2 DISK0599 ST 14,WSAV14#2 DISK0600 * DISK0601 EXCP#I1 EXCP IOB DISK0602 WAIT ECB=ECB DISK0603 EXCP#I#R L 14,WSAV14#2 DISK0604 CLIB ECB,X'7F',E,(14) DISK0605 SPACE 2 DISK0606 * * CTAHäAPTHùE OûéâKé * * DISK0607 CLCB IOBCSW+3(2),=X'0E40',NE,IOERR2 KK,Kõ,CâOê Bõ,HEðP. äì.? DISK0608 * DISK0609 CLCB IOBSENS0(2),=X'0200',NE,IOERR1 äEæEKTHAñ äOPOöKA ? DISK0610 MVC CCHH,CNTR0 AäPEC AìøTEPHATéBHOê äOPOöKé DISK0611 B EXCP#I1 DISK0612 SPACE DISK0613 IOERR1 TMB OPFLAG,1,NO,IOERR2 þTEHéE CþETþéKOB ? DISK0614 CLCB IOBSENS0(2),=X'0008',E,(14) úAðéCø HE HAêäEHA - HOPMA DISK0615 SPACE 2 DISK0616 IOERR2 DS 0H DISK0617 * DISK0618 INCR ERCNT DISK0619 CHB 0,=H'5',NH,EXCP#I1 5-KPATHOE ðOBTOPEHéE DISK0620 * DISK0621 L WR2,IOBCSW-1 DISK0622 LA WR2,0(WR2) DISK0623 SH WR2,=H'8' WR2 -> ERROR CCW DISK0624 * DISK0625 TMB IOBCSW+4,X'0F',NZ,IOERHRD DISK0626 TMB IOBSENS0,X'34',NZ,IOERHRD DISK0627 * DISK0628 TMB IOBCSW+4,X'B0',NZ,IOERR3 DISK0629 TMB IOBSENS0,X'85',NZ,IOERR3 DISK0630 TMB IOBSENS1,X'75',NZ,IOERR3 DISK0631 * DISK0632 TMB IOBSENS0,X'40',NZ,INTREQ DISK0633 TMB IOBSENS0,X'08',NZ,IOERRDCK DCK DISK0634 TMB IOBSENS1,X'82',NZ,IOERRDCK MAM O.? DISK0635 * DISK0636 CLCB IOBSENS0(2),=X'0000',NE,IOERR3 DISK0637 CLCB IOBCSW+3(2),=X'0C40',NE,IOEKNDAT ...???? ðEPEX. úAðéCø ? DISK0638 TMB WFLAG,FLGTAPE,O,IOETRECT DISK0639 MVI 0(WR2),X'01' KOMAHäA äìñ ðEPEX. úAð. DISK0640 BR 14 DISK0641 IOETRECT L 1,0(WR2) DISK0642 OI 0(1),X'80' äìñ FDR DISK0643 BR 14 DISK0644 * DISK0645 IOEKNDAT CLCB IOBCSW+3(2),=X'0D00',NE,IOERR3 - OC.CìõþAê -Kìàþ âEú ä. DISK0646 CLIB 0(WR2),X'12',E,IOERR3 DISK0647 MVI 0(WR2),X'12' MEHñEM KOMAHäõ HA 'CþéTATø Cþ.' DISK0648 MVC 6(2,WR2),=H'8' DISK0649 B EXCP#I1 DISK0650 * DISK0651 B IOERR3 DISK0652 SPACE DISK0653 IOERHRD DS 0H DISK0654 @WTOMSG (,'HARDWARE',) DISK0655 B IOERR#X DISK0656 * DISK0657 IOERR3 DS 0H DISK0658 @WTOMSG (,'UNKNOWN',) DISK0659 SPACE 2 DISK0660 IOERR#X DS 0H DISK0661 #PR 21 DISK0662 @IODUMP IOB,CCW,IOB=IOB DISK0663 TMB OPFLAG,OPSWAP,O,NORETRY SWAP õöE âùì ? (BùûE.?) DISK0664 OI OPFLAG,OPSWAP DISK0665 LA 14,EXCP#I1 DISK0666 B SWAP DISK0667 SPACE DISK0668 NORETRY INCR NUMERRS DISK0669 TMB OPFLAG,X'0F',NZ,NEXTTRK BOúBPAT ðO R14 OâñúATEìEH ? DISK0670 L 14,WSAV14#2 DISK0671 BR 14 DISK0672 SPACE DISK0673 IOERRDCK DS 0H DISK0674 INCR ERCNT2,H DISK0675 CHB 0,=H'5',H,NORETRY DISK0676 CLEAR ERCNT DISK0677 * DISK0678 L WR2,IOBSTART DISK0679 STADR CCWST0,IOBSTART DISK0680 EXCP IOB õCTAHOBéTø 0-0 DISK0681 WAIT ECB=ECB DISK0682 ST WR2,IOBSTART DISK0683 B EXCP#I1 DISK0684 * DISK0685 DS$C ERCNT2,H DISK0686 SPACE 2 DISK0687 INTREQ DS 0H DISK0688 @BLDMSG (,CUU,+S,'INT REQ',-S,D2MR0) DISK0689 STH 0,@MSGBUF+4 DISK0690 MVI @MSGBUF+6,X'C0' DISK0691 LH 0,IDCONS DISK0692 WTO MF=(E,@MSGBUF+4) DISK0693 ST 1,DOMNUMB DISK0694 BAL 14,ZERO DISK0695 OI 6(RUCB),X'40' DISK0696 BAL 14,NZERO DISK0697 EXCP IOB DISK0698 WAIT ECB=ECB DISK0699 L 1,DOMNUMB DISK0700 DOM MSG=(1) DISK0701 B EXCP#I#R DISK0702 * DISK0703 D2MR0 DC X'40000000' DISK0704 SPACE 2 DISK0705 *********************************************************************** DISK0706 * ðPOBEPKA úABEPûEHéñ B/B HA BùXOäE * DISK0707 *********************************************************************** DISK0708 CHECK#O DS 0H DISK0709 TMB WFLAG,FLGDUMMY,O,(14) DISK0710 TMB WFLAG,FLGTAPE,O,CHECKOTP DISK0711 WAIT ECB=OECB DISK0712 CLIB OECB,X'7F',E,(14) DISK0713 B CHECK#OX DISK0714 * DISK0715 * TMB WFLAG,FLGTAPE,Z,CHECK#OX DISK0716 * CLCB OIOB+12(2),=X'0D00',NE,CHECK#OX KOHEã TOMA Mì ? DISK0717 * DISK0718 CHECKOTP DS 0H DISK0719 ST 14,WSAV14#2 DISK0720 CHECK WRDECB2 DISK0721 L 14,WSAV14#2 DISK0722 BR 14 DISK0723 * EOV OUTTAPE DISK0724 * * DISK0725 CHECK#OX ST 14,WSAV14#2 DISK0726 #PR 22 DISK0727 @IODUMP IOB,CCW,IOB=OIOB DISK0728 MVI RC+1,8 DISK0729 * TMB WFLAG,FLGTAPE,O,EOVOTAPE DISK0730 L 14,WSAV14#2 DISK0731 BR 14 DISK0732 SPACE 2 DISK0733 *********************************************************************** DISK0734 * HAþAìO ìEHTù * DISK0735 *********************************************************************** DISK0736 OPENTAPE DS 0H DISK0737 STADR START,WSAV14#2 DISK0738 RDJFCB MF=(E,OPENOUT) DISK0739 LTR 15,15 DISK0740 #ERROR NZ,109 DISK0741 TMB JFCB+66,X'11',Z,*+8 NL/BLP ? DISK0742 OI WFLAG,FLGNL DISK0743 OI JFCB+52,X'08' JFCB HE BOúBPAýATø B SYSJOBQE DISK0744 OPEN (OUTTAPE,(OUTPUT)),TYPE=J DISK0745 CLEAR (OUTBUF2,8) DISK0746 * DISK0747 INITTAPE WRITE WDECB1,SF,OUTTAPE,FDRIDREC,24 DISK0748 CHECK WDECB1 DISK0749 * DISK0750 MVI WRDECB2,X'7F' DISK0751 L 14,WSAV14#2 DISK0752 BR 14 DISK0753 EJECT DISK0754 *********************************************************************** DISK0755 * ðð BùâOPA CìEäõàýEçO ðAPAMETPA * DISK0756 *********************************************************************** DISK0757 NEXTPARM STM 2,5,12(13) ** BXOä: R1-AäPEC, R0-MAKC.äìéHA ** DISK0758 * ** BùXOä: R15-äEêCT. äìéHA ** DISK0759 * DISK0760 LM 2,3,SAVEPARM AäPEC TEK. âAêTA, OCT. äìéHA DISK0761 LR 4,2 COXPAHEHéE AäPECA 'FROM' DISK0762 * DISK0763 XR 15,15 ðPEäBAPéT. OâHõìEHéE äìéHù DISK0764 XR 5,5 DISK0765 IFREG 3,NP,NEXTPARE EýE OCTAìéCø âAêTù B BùX. CTPOKE ? DISK0766 * DISK0767 LR 5,0 R5 <- äìéHA ðOìñ DISK0768 LR 15,1 R15 <- AäPEC 'TO' DISK0769 MVI 0(15),C' ' úAðOìHEHéE DISK0770 LA 15,1(15) BùXOäHOçO ðOìñ DISK0771 BCT 5,*-8 ðPOâEìAMé DISK0772 * DISK0773 XR 15,15 ðPEäBAPéT. OâHõìEHéE äìéHù DISK0774 XR 5,5 DISK0775 * DISK0776 NEXTPARC CLIB 0(2),C',',E,NEXTPARS úAðñTAñ ? DISK0777 LA 2,1(2) AäPEC CìEäõàýEçO âAêTA DISK0778 LA 5,1(5) äìéHA ðAPAMETPA DISK0779 BCT 3,NEXTPARC CìEä. âAêT, ECìé ECTø DISK0780 * DISK0781 NEXTPARS LA 2,1(2) AäPEC -> úA úAðñTõà, DISK0782 BCTR 3,0 OCT. äìéHA -1 DISK0783 STM 2,3,SAVEPARM COXPAHéM äìñ ðOTOMCTBA DISK0784 * DISK0785 LR 15,5 R15 <- R5 - PEAìøHAñ äìéHA DISK0786 CRB 5,0,NH,*+6 CPABHéM C äìéHOê ðOìñ DISK0787 LR 5,0 R5 <- äìéHõ ðOìñ DISK0788 * DISK0789 IFREG 5,NP,NEXTPARE äìéHõ 0 HéKTO HE ðOäCõHõì ? DISK0790 BCTR 5,0 KOä äìéHù äìñ MVC DISK0791 EX 5,MVCPARM ðEPEHECìé ! DISK0792 * DISK0793 NEXTPARE LM 2,5,12(13) BOCCT. PEçéCTPù DISK0794 CR 15,0 õCT. KOä õCìOBéñ DISK0795 BR 14 BOúBPAT DISK0796 * DISK0797 MVCPARM MVC 0(1,1),0(4) DISK0798 SPACE 2 DISK0799 *********************************************************************** DISK0800 * ZERO, NZERO * DISK0801 *********************************************************************** DISK0802 ZERO MODESET KEY=ZERO DISK0803 BR 14 DISK0804 * DISK0805 NZERO MODESET KEY=NZERO DISK0806 BR 14 DISK0807 SPACE 2 DISK0808 *********************************************************************** DISK0809 * KOHCTAHTù * DISK0810 *********************************************************************** DISK0811 INDCB DCB DDNAME=FROM,MACRF=E,IOBAD=IOB,IMSK=X,EXLST=IEXLST DISK0812 OPENIN OPEN INDCB,MF=L DISK0813 OPENOUT OPEN (OUTDCB,(OUTPUT)),MF=L DISK0814 IEXLST DC X'80',AL3(0) DISK0815 * DISK0816 IOB DS 0F DISK0817 DC X'42,0' DISK0818 IOBSENS0 DS X DISK0819 IOBSENS1 DS X DISK0820 DC A(ECB) DISK0821 DS X DISK0822 IOBCSW DS XL7 DISK0823 IOBSIOCC DS 0X DISK0824 IOBSTART DS F DISK0825 DC A(INDCB) DISK0826 DC XL8'0' DISK0827 IOBSEEK DC XL8'0' MBBCCHHR DISK0828 CCHH EQU IOBSEEK+3,4 DISK0829 ECB DS F DISK0830 SPACE 2 DISK0831 OUTDCB DCB DDNAME=TO,MACRF=E,EXLST=IEXLST,IOBAD=OIOB DISK0832 OIOB IOB DCB=OUTDCB,ECB=OECB,SEEK=0 DISK0833 OECB DS F DISK0834 * DISK0835 OUTTAPE DCB DDNAME=TO,MACRF=W,EXLST=IEXLST,DSORG=PS, +DISK0836 RECFM=U,BLKSIZE=7328 .? DISK0837 * DISK0838 WRITE WRDECB2,SF,OUTTAPE,MF=L DISK0839 * DISK0840 FDRIDREC DC F'24' DISK0841 DC C'T' 2314 ONLY ! .? DISK0842 DC C'THATS ALL FOLKS' DISK0843 DC F'0' DISK0844 * DISK0845 RVOL1CCW CCW X'29',VOL1,CC+SLI,4 DISK0846 CCW X'08',*-8,0,0 DISK0847 CCW X'06',0,0,80 DISK0848 * DISK0849 CCWST0 CCW X'13',0,SLI,1 DISK0850 * DISK0851 DCCWHEAD CCW X'31',0,CC+SLI,5 DISK0852 LHEADCCW CCW X'08',0,0,0 DISK0853 * DISK0854 FCCHH DC F'0' DISK0855 RECB DS F DISK0856 IDCONS DC H'0' DISK0857 RC DC H'0' DISK0858 VOL1 DC C'VOL1' DISK0859 NCUU DS CL3 DISK0860 * DISK0861 WFLAG DC X'0' DISK0862 FLGDUMMY EQU X'80' OUTPUT IS DUMMY DISK0863 FLGTAPE EQU X'40' OUTPUT IS TAPE DISK0864 FLGNL EQU X'20' TAPE IS NL DISK0865 FLGVTOCA EQU X'10' VTOC ADRESS IS WRONG DISK0866 FLG2RUN EQU X'08' SECOND RUN DISK0867 FLGERSEQ EQU X'04' SEQ OF BLOCKS WRONG DISK0868 * DISK0869 OPFLAG DC X'0' DISK0870 OPFRKEY EQU X'01' DISK0871 OPFRDATA EQU X'02' DISK0872 OPSWAP EQU X'40' DISK0873 EJECT DISK0874 *********************************************************************** DISK0875 * COOâýEHéñ * DISK0876 *********************************************************************** DISK0877 TIME MESSAGE$ ((' ',30,*),=40,'TIME=',(TIMEDATE,2,X),'.', +DISK0878 (TIMEDATE+1,2,X),'.',(TIMEDATE+2,2,X)) DISK0879 JOB MESSAGE$ (J,+L,': ') DISK0880 ERRWTO MESSAGE$ (+S,'ERR ON',CUU,': CMD=',(0(WR2),2,X),+S,'CSW=',-S, +DISK0881 (IOBCSW,,X),+S,'SENS=',-S,(IOBSENS0,4,X)) DISK0882 * DISK0883 ERMSGTAB MSGTAB (+S,(0(WR2),8),+L,'DD STATEMENT MISSING'), 101+DISK0884 (+S,'INVALID ADRESS -',CUU), 102+DISK0885 (+S,(INDCB+40,8),'DD M.B. ALLOCATED TO DASD'), 103+DISK0886 (+S,'INPUT DEVICE',CUU,'IS NOT DASD'), 104+DISK0887 (+S,'OUTPUT DEVICE',OCUU,'IS NOT DASD','OR TAPE'), 105+DISK0888 (+S,'OUTPUT DEVICE','= INPUT'), 106+DISK0889 (+S,'OUTPUT DEVICE','TYPE INVALID'), 107+DISK0890 (+S,'OUTPUT DEVICE',OCUU,'IS ALLOCATED'), 108+DISK0891 (+S,'I/O ERROR','READING JFCB'), 109+DISK0892 (+S,'DEVICE NOT SUPPORTED'), 110+DISK0893 PREFIX=(' DMP',*,'I'),FIRST=101 DISK0894 SPACE DISK0895 MSG MSGTAB ('DUMP',+S,CUU,'TO',OCUU,'STARTED',