mirror of
https://github.com/moshix/mvs.git
synced 2026-01-11 23:43:00 +00:00
what dasds are online from ASM program
This commit is contained in:
parent
5ce8bfb008
commit
cfb8805101
358
onlinedasd.txt
Normal file
358
onlinedasd.txt
Normal file
@ -0,0 +1,358 @@
|
||||
***********************************************************************
|
||||
ONLNDASD CSECT
|
||||
ONLNDASD AMODE 31
|
||||
ONLNDASD RMODE 24
|
||||
BAKR R14,Ø SAVE CALLER DATA ON STACK
|
||||
LR R12,R15 GET ENTRY POINT
|
||||
LA R11,2Ø48(R12) LOAD SECOND BASE
|
||||
LA R11,2Ø48(R11) LOAD SECOND BASE
|
||||
USING ONLNDASD,R12,R11 ADDRESSABILITY
|
||||
L R2,Ø(R1) GET ADDR OF PARM
|
||||
OPEN (REPORT,(OUTPUT))
|
||||
***********************************************************************
|
||||
* SCAN THROUGH THE UCB'S, LOOKING FOR THE TYPE WE WANT... *
|
||||
***********************************************************************
|
||||
SCANUCBS DS ØH
|
||||
USING UCBOB,R4 ADDRESSABILITY TO UCB
|
||||
LA R4,UCBAREA +POINT TO UCB STORAGE AREA
|
||||
LA R3,MSG3+1 POINT TO FIRST MSG FIELD
|
||||
XC UCBWORK,UCBWORK +INITIALIZE UCBSCAN WORKAREA
|
||||
*
|
||||
UCBSCAN COPY, X
|
||||
WORKAREA=UCBWORK, X
|
||||
UCBAREA=UCBAREA, X
|
||||
DCEAREA=NONE, X
|
||||
DCELEN=Ø, X
|
||||
VOLSER=NONE, DON'T SELECT BY VOLSER X
|
||||
DEVN=Ø, START WITH FIRST UCB X
|
||||
DYNAMIC=YES, INCLUDE DYNAMICALLY ADDED UCBS X
|
||||
RANGE=ALL, 4 AND 3-DIGIT UCBS X
|
||||
NONBASE=NO, NOT SURE WHAT THIS DOES X
|
||||
DEVCLASS=DASD, SELECT DASD UCBS ONLY X
|
||||
DEVCID=Ø, DON'T SELECT BY DEVICE CHAR. X
|
||||
IOCTOKEN=NONE, NO IODEVICE TABLE TOKEN X
|
||||
LINKAGE=SYSTEM, USE PC CALL X
|
||||
PLISTVER=MAX
|
||||
*
|
||||
LTR R15,R15 GOT UCB OK?
|
||||
BZ UCBCHECK YES..CHECK IT
|
||||
C R15,=F'4' END OF UCBS?
|
||||
BE ENDUCBS YES..CLEAN UP, ETC
|
||||
B BADCALL NO...SHOW RETURN/REASON CODES
|
||||
UCBCHECK DS ØH
|
||||
TM UCBSTAT,UCBONLI IS THIS ONE ONLINE?
|
||||
BO GETINFO YES..
|
||||
B UCBLOOP NO...IGNORE IT
|
||||
***********************************************************************
|
||||
* NB AS WE GET THE FORMAT4 FROM THE VTOC THERE IS SOMETIMES AN *
|
||||
* EXTRA (CE?) CYLINDER ADDED ON- WE WILL TAKE THIS OFF IF WE CAN *
|
||||
* RECOGNIZE THAT IT IS THERE (EG 886 ON A 338Ø 'D'). *
|
||||
**********************************************************************
|
||||
***********************************************************************
|
||||
GETINFO DS ØH
|
||||
MVC 27(8,R3),=C'(?????) ' SET UP DEFAULT SIZE
|
||||
*
|
||||
LSPACE UCB=(R4), GET THE FORMAT4 DSCB... X
|
||||
F4DSCB=F4DSCB, X
|
||||
MSG=F4ERRMSG PLACE POSSIBLE ERRMSG IN HERE
|
||||
*
|
||||
LTR R15,R15 LSPACE WORKED OK?
|
||||
BZ CHKCYLS YES..
|
||||
ST R15,FWORD NO...SAVE RETURN CODE
|
||||
TM SWITCH,MSGSENT ALREADY DISPLAYED ERROR TEXT?
|
||||
BO SHOWRC YES..
|
||||
OI SWITCH,MSGSENT NO...SET SO WE DON'T REPEAT IT
|
||||
PUT REPORT,F4ERRMSG DISPLAY ERROR TEXT
|
||||
SHOWRC DS ØH
|
||||
UNPK DWORD(3),FWORD+3(2) UNPACK RETURN CODE + 1 BYTE
|
||||
TR DWORD(2),HEXTAB-24Ø XLATE TO PRINTABLE HEX
|
||||
MVC 26(5,R3),=C'RC=X"' SET UP CONSTANT
|
||||
MVC 31(2,R3),DWORD MOVE IN RC
|
||||
MVI 33(R3),C'"'
|
||||
B CARRYON IGNORE REST OF THIS BIT
|
||||
CHKCYLS DS ØH
|
||||
MVC 27(7,R3),=X'4Ø2Ø2Ø6B2Ø212Ø' YES..MOVE IN EDIT PATTERN
|
||||
LH R1,F4DSCB+18 GET NUMBER OF CYLINDERS
|
||||
CH R1,=H'886' 886 CYLS (338Ø 'D')?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'1771' 1771 CYLS (338Ø 'E')?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'2656' 2656 CYLS (338Ø 'K')?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'1114' 1114 CYLS (339Ø M1)?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'2227' 2227 CYLS (339Ø M2)?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'334Ø' 334Ø CYLS (339Ø M3)?
|
||||
BE TAKE1OFF YES..
|
||||
CH R1,=H'1ØØ18' 1ØØ18 CYLS (339Ø M9)?
|
||||
BE TAKE1OFF YES..
|
||||
B GETCYLS NO...
|
||||
TAKE1OFF DS ØH
|
||||
BCTR R1,Ø THERE IT GOES...
|
||||
GETCYLS DS ØH
|
||||
CVD R1,DWORD CONVERT TO DECIMAL
|
||||
ED 27(7,R3),DWORD+5 EDIT IN NUMBER OF CYLINDERS
|
||||
MVI 27(R3),C'(' MAKE IT LOOK PRETTY
|
||||
MVI 34(R3),C')'
|
||||
CARRYON DS ØH
|
||||
TM UCBFL1,UCBBOX BOXED?
|
||||
BO ITSBOXED YES..
|
||||
TM UCBSTAT,UCBALOC ALLOCATED?
|
||||
BO ITSALLOC YES..
|
||||
TM UCBSTAT,UCBONLI ONLINE?
|
||||
BO ITSONLIN YES..
|
||||
B ITSOFLIN NO...LET'S CALL IT OFFLINE
|
||||
ITSONLIN DS ØH
|
||||
MVC 1Ø(7,R3),ONLINE SET UP MSG
|
||||
B GETVOLID GO AND GET VOLID
|
||||
ITSOFLIN DS ØH
|
||||
MVC 1Ø(7,R3),OFFLINE SET UP MSG
|
||||
B GETVOLID GO AND GET VOLID
|
||||
ITSBOXED DS ØH
|
||||
MVC 1Ø(7,R3),BOXED SET UP MSG
|
||||
B GETDEVTP GO AND GET DEVICE TYPE
|
||||
ITSALLOC DS ØH
|
||||
MVC 1Ø(7,R3),ALLOC SET UP MSG
|
||||
B GETVOLID GO AND GET THE VOLID
|
||||
GETVOLID DS ØH
|
||||
MVC 18(6,R3),UCBVOLI MOVE VOLID TO MSG LINE
|
||||
GETDEVTP DS ØH
|
||||
MVC 5(4,R3),QUERIES SET UP UNKNOWN DEVTYPE
|
||||
CLI UCBTBYT4,X'ØE' 338Ø? DASD
|
||||
BE SET338Ø YES..
|
||||
CLI UCBTBYT4,X'ØF' 339Ø? DASD
|
||||
BE SET339Ø YES..
|
||||
B CHKUCBS NO...LEAVE AS '????'
|
||||
SET338Ø DS ØH
|
||||
MVC 5(4,R3),=C'338Ø'
|
||||
B CHKUCBS YES..
|
||||
SET339Ø DS ØH
|
||||
MVC 5(4,R3),=C'339Ø'
|
||||
CHKUCBS DS ØH YES..
|
||||
MVC 52(13,R3),NONSHARE DEFAULT TO NON-SHAREABLE
|
||||
TM UCBTBYT2,UCBRR SHAREABLE?
|
||||
BNO CHECKPRI NO...
|
||||
MVC 52(13,R3),SHARE YES..SET TO SHAREABLE
|
||||
CHECKPRI DS ØH
|
||||
TM UCBSTAB,UCBBPRV PRIVATE?
|
||||
BNO CHECKPUB NO...
|
||||
MVC 37(7,R3),PRIVATE YES..SHOW THAT IN MSG
|
||||
BAL R9,LOCUCB SEE WHERE UCB IS...
|
||||
B CHECKCTL
|
||||
CHECKPUB DS ØH
|
||||
TM UCBSTAB,UCBBPUB PUBLIC?
|
||||
BNO CHECKSTR NO...
|
||||
MVC 37(7,R3),PUBLIC YES..SHOW THAT IN MSG
|
||||
BAL R9,LOCUCB SEE WHERE UCB IS...
|
||||
B CHECKCTL
|
||||
CHECKSTR DS ØH
|
||||
TM UCBSTAB,UCBBSTR STORAGE?
|
||||
BNO CHECKCTL
|
||||
MVC 37(7,R3),STORAGE YES..SHOW THAT IN MSG
|
||||
BAL R9,LOCUCB SEE WHERE UCB IS...
|
||||
CHECKCTL DS ØH
|
||||
XC FWORD2,FWORD2 CLEAR WORK REG
|
||||
MVC FWORD2+2(2),UCBCHAN DEVICE ADDRESS TO LOOK FOR
|
||||
MVC CTLUNIT,CTLNFND SET DEFAULT CTLUNIT
|
||||
BAL R9,FINDCTL GO AND FIND CTLUNIT
|
||||
MVC 67(8,R3),CTLUNIT SET CTLUNIT
|
||||
UNPK UNPKFLD(5),UCBCHAN(3) UNPACK HEX CUU + 1 CHAR
|
||||
TR UNPKFLD(4),TRTAB2-24Ø MAKE PRINTABLE HEX
|
||||
CLI UNPKFLD,C'Ø' LEADING ZERO?
|
||||
BNE DISPLAY2 NO...
|
||||
MVI UNPKFLD,C' ' YES..BLANK OUT
|
||||
DISPLAY2 DS ØH
|
||||
MVC Ø(4,R3),UNPKFLD MOVE CUU TO MSG LINE
|
||||
PUT REPORT,MSG3 DISPLAY INFO
|
||||
MVI MSG3,C' ' YES..CLEAR OUT LINE
|
||||
MVC MSG3+1(MSG3L-1),MSG3
|
||||
LA R3,MSG3+1
|
||||
B UCBLOOP AND GET NEXT UCB
|
||||
ENDUCBS DS ØH
|
||||
***********************************************************************
|
||||
* RETURN TO CALLER WITH RELEVANT RETURN CODE... *
|
||||
***********************************************************************
|
||||
RETURN DS ØH
|
||||
L R15,RETC LOAD RETURN CODE
|
||||
PR , RESTORE CALLER DATA, RETURN
|
||||
***********************************************************************
|
||||
* BAD RETURN CODE FROM CALL TO 'UCBSCAN'... *
|
||||
***********************************************************************
|
||||
BADCALL DS ØH
|
||||
ST R15,RETCD SAVE RETURN CODE FROM UCBSCAN
|
||||
ST RØ,REASN SAVE REASON CODE FROM UCBSCAN
|
||||
UNPK UNPKFLD(3),RETCD+3(2) UNPK RETURN CODE + 1 BYTE
|
||||
TR UNPKFLD(2),TRTAB2-24Ø XLATE TO PRINTABLE HEX
|
||||
MVC MSGBTXT1,UNPKFLD MOVE RETURN CODE TO MSG AREA
|
||||
UNPK UNPKFLD(3),REASN+3(2) UNPK REASON CODE + 1 BYTE
|
||||
TR UNPKFLD(2),TRTAB2-24Ø XLATE TO PRINTABLE HEX
|
||||
MVC MSGBTXT2,UNPKFLD MOVE REASON CODE TO MSG AREA
|
||||
PUT REPORT,MSGB SHOW CODES...
|
||||
MVC RETC,=F'8' SET RC=8
|
||||
B RETURN
|
||||
***********************************************************************
|
||||
* + + S U B R O U T I N E + + + *
|
||||
* CONVERT CHARACTER CUU (EG 'Ø94F') INTO ITS BINARY EQUIVALENT. THIS *
|
||||
* IS SO THAT VALID RANGE COMPARISONS CAN BE MADE IF A RANGE OF CUUS *
|
||||
* HAS BEEN REQUESTED. THE ROUTINE USES 4-DIGIT ADDRESSES, PADDED WITH *
|
||||
* A LEADING 'Ø', IF REQUIRED. *
|
||||
***********************************************************************
|
||||
CONVCUU DS ØH
|
||||
TR FWORD(4),TRTAB CONV. C'A->F' INTO X'A->F'
|
||||
XC DWORD,DWORD CLEAR OUT WORKAREA
|
||||
PACK DWORD+4(4),FWORD(5) REMOVE ZONES
|
||||
L R8,DWORD+4 LOAD 'ØØCCUUØØ'
|
||||
SRL R8,8 SHIFT OUT TRAILING 'ØØ'
|
||||
ST R8,FWORD SAVE BINARY CUU VALUE
|
||||
BR R9 RETURN FROM SUBROUTINE
|
||||
***********************************************************************
|
||||
* + + S U B R O U T I N E + + + *
|
||||
* SEE IF UCB IS ABOVE ('A') OR BELOW ('B') THE 16MEG LINE. NOTE THAT *
|
||||
* THERE IS ONLY AN EXTENSION FOR UCBS IF THEY ARE 'BELOW THE LINE'. *
|
||||
***********************************************************************
|
||||
LOCUCB DS ØH
|
||||
MVI 48(R3),C'?' DEFAULT IS "DON'T KNOW"
|
||||
MODESET MF=(E,SUPMODE) ENTER SUPERVISOR MODE
|
||||
*
|
||||
UCBLOOK DEVN=UCBCHAN, LOOK BY DEVICE ADDRESS X
|
||||
UCBPTR=FWORD, TO HOLD A(UCB COMMON SEGMENT) X
|
||||
DYNAMIC=YES, INCLUDE DYNAMIC UCBS X
|
||||
RANGE=ALL, 3 AND 4 DIGIT UCBS X
|
||||
NOPIN, DON'T PIN UCB X
|
||||
LOC=ANY ABOVE AND BELOW THE LINE
|
||||
*
|
||||
LTR R15,R15 SUCCESSFUL?
|
||||
BNZ RESET NO...LEAVE AS DEFAULT
|
||||
MODESET MF=(E,PROBMODE) RETURN TO PROBLEM MODE
|
||||
MVI 48(R3),C'A' DEFAULT IS 'A'BOVE
|
||||
L R1,FWORD GET UCB ADDRESS
|
||||
C R1,=F'16777216' ABOVE 16M?
|
||||
BHR R9 YES..RETURN
|
||||
MVI 48(R3),C'B' NO...MAKE IT 'B'ELOW
|
||||
BR R9 RETURN FROM ROUTINE
|
||||
RESET DS ØH
|
||||
MODESET MF=(E,PROBMODE) RETURN TO PROBLEM MODE
|
||||
BR R9 RETURN FROM ROUTINE
|
||||
***********************************************************************
|
||||
* + + S U B R O U T I N E + + + *
|
||||
* FIND WHICH CTLUNIT THE ADDRESS IS ON: HDS, SVA, ESS, ETC... *
|
||||
***********************************************************************
|
||||
FINDCTL DS ØH
|
||||
LA R1,CTLRTAB LOCATE CTLUNIT TABLE
|
||||
LA R2,CTLENTS NUMBER OF ENTRIES
|
||||
L R1Ø,FWORD2 GET BINARY CUU VALUE
|
||||
FINDLOOP DS ØH
|
||||
L R6,Ø(R1) GET LOW RANGE ADDRESS
|
||||
CR R1Ø,R6 CUU EQUAL?
|
||||
BL FINDBUMP LOW - NOT IN RANGE, TRY NEXT
|
||||
L R6,4(R1) GET HIGH RANGE ADDRESS
|
||||
CR R1Ø,R6 CUU EQUAL?
|
||||
BH FINDBUMP HIGH - NOT IN RANGE, TRY NEXT
|
||||
MVC CTLUNIT,8(R1) IN RANGE - SAVE CTLUNIT NAME
|
||||
BR R9 RETURN FROM ROUTINE
|
||||
FINDBUMP DS ØH
|
||||
LA R1,16(R1) BUMP TO NEXT ENTRY
|
||||
BCT R2,FINDLOOP KEEP LOOKING
|
||||
BR R9 RETURN FROM ROUTINE
|
||||
EJECT
|
||||
*--------------------------------------------------------------------*
|
||||
*
|
||||
LTORG LITERAL POOL
|
||||
*
|
||||
OFFLINE DC CL7'OFFLINE'
|
||||
ONLINE DC CL7'ONLINE '
|
||||
BOXED DC CL7'BOXED '
|
||||
ALLOC DC CL7'ALLOC '
|
||||
PRIVATE DC CL7'PRIVATE'
|
||||
PUBLIC DC CL7'PUBLIC '
|
||||
STORAGE DC CL7'STORAGE'
|
||||
SHARE DC CL13'SHAREABLE'
|
||||
NONSHARE DC CL13'NON-SHAREABLE'
|
||||
HEXTAB DC C'Ø123456789ABCDEF'
|
||||
LETTERS DC X'ØAØBØCØDØEØF'
|
||||
NUMBERS DC X'ØØØ1Ø2Ø3Ø4Ø5Ø6Ø7Ø8Ø9'
|
||||
FWORD DS F
|
||||
FWORD2 DS F
|
||||
DWORD DS D
|
||||
F4DSCB DS CL96
|
||||
F4ERRMSG DS CL3Ø
|
||||
QUERIES DC CL4'????'
|
||||
CUU DS CL4
|
||||
VOLID DS CL6
|
||||
SWITCH DC X'ØØ' SWITCH FIELD
|
||||
FOUND1 EQU X'Ø1'
|
||||
GENERIC EQU X'Ø2'
|
||||
RANGE EQU X'Ø4'
|
||||
GETDASD EQU X'Ø8'
|
||||
MSGSENT EQU X'Ø4'
|
||||
ALLUCBS EQU X'1Ø'
|
||||
ONECUU EQU X'2Ø'
|
||||
ONEVOLID EQU X'4Ø'
|
||||
ONLIN EQU X'8Ø'
|
||||
RETC DS F
|
||||
UCBAREA DS XL48 HOLDS UCB COMMON & DEV SEGS
|
||||
UCBWORK DS XL1ØØ UCBSCAN WORKAREA
|
||||
UNPKFLD DS CL5
|
||||
RETCD DS F
|
||||
REASN DS F
|
||||
SUPMODE MODESET KEY=ZERO,MODE=SUP,MF=L
|
||||
PROBMODE MODESET KEY=NZERO,MODE=PROB,MF=L
|
||||
*
|
||||
* Ø 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
TRTAB DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' Ø
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 1
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 2
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 3
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 4
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 5
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 6
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 7
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 8
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' 9
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' A
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' B
|
||||
DC X'FFØØØØØØØØØØØØFFFFFFFFFFFFFFFFFF' C (ABCDEF)
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' D
|
||||
DC X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' E
|
||||
DC X'ØØØØØØØØØØØØØØØØØØØØFFFFFFFFFFFF' F (Ø123456789)
|
||||
*
|
||||
* THIS TABLE HOLDS THE RANGE OF ADDRESSES FOR EACH CONTROL UNIT (IN
|
||||
* ITS DECIMAL EQUIVALENT).
|
||||
*
|
||||
TRTAB2 DC CL16'Ø123456789ABCDEF'
|
||||
*
|
||||
CTLRTAB DS ØF
|
||||
DC F'Ø1Ø24',F'Ø1279',C' H.D.S. ' Ø4ØØ-Ø4FF HDS
|
||||
DC F'Ø1792',F'Ø2Ø47',C' RVA1 ' Ø7ØØ-Ø7FF RVA1
|
||||
DC F'Ø4Ø96',F'Ø8191',C' SVA1 ' 1ØØØ-13FF SVA1
|
||||
DC F'Ø8192',F'12287',C' SVA2 ' 2ØØØ-23FF SVA2
|
||||
DC F'12288',F'13311',C' SVA3 ' 3ØØØ-33FF SVA3
|
||||
DC F'16384',F'174Ø7',C' SVA4 ' 4ØØØ-43FF SVA4
|
||||
CTLENTS EQU (*-CTLRTAB)/16 NUMBER OF TABLE ENTRIES
|
||||
CTLNFND DC CL8'????????'
|
||||
CTLUNIT DC CL8' '
|
||||
*
|
||||
MSG3 DC CL8Ø' '
|
||||
MSG3L EQU *-MSG3
|
||||
*
|
||||
MSGB DC C'>>> ERROR IN CALL TO "UCBSCAN"...RC=X''..'', RS=X''..'X
|
||||
'.'
|
||||
MSGBTXT1 EQU MSGB+38,2
|
||||
MSGBTXT2 EQU MSGB+48,2
|
||||
MSGBL EQU *-MSGB
|
||||
*---------------------------------------------------------------------*
|
||||
* REPORT DCB... *
|
||||
*---------------------------------------------------------------------*
|
||||
REPORT DCB DDNAME=REPORT,DSORG=PS,LRECL=8Ø,MACRF=PM,BLKSIZE=8Ø
|
||||
*---------------------------------------------------------------------*
|
||||
* REGISTERS EQUATES, ETC... *
|
||||
*---------------------------------------------------------------------*
|
||||
YREGS
|
||||
PRINT ON,GEN
|
||||
UCBDEF DSECT
|
||||
IEFUCBOB
|
||||
PRINT NOGEN
|
||||
CVT DSECT=YES
|
||||
*
|
||||
END , END OF PROGRAM
|
||||
Loading…
x
Reference in New Issue
Block a user