cdc:nos2.source:opl871:getmst
Table of Contents
GETMST
Table Of Contents
- [00005] GET FIELDS FOR A DEVICE FROM THE *MST*.
- [00160] RLC - READ LOW CORE.
Source Code
- GETMST.txt
- IDENT GETMST
- ENTRY GETMST
- SST
- SPACE 4
- *** GETMST - GET FIELDS FOR A DEVICE FROM THE *MST*.
- *
- * GETMST(EO,STAT,TYPE,FAM,DN,NUM,TPRU,SECT,MSKP,MSKS).
- * (*SYMPL* CALL)
- *
- * ENTRY (EO) = *EST* ORDINAL.
- *
- * EXIT (STAT) = -2, INVALID ORDINAL.
- * -1, NO MORE DISK ENTRIES.
- * 1, EQUIPMENT (EO) IS NOT A DISK.
- * 0, EQUIPMENT (EO) IS A DISK.
- *
- * IF (STAT) = 0, THE FOLLOWING PARAMETERS
- * ARE MEANINGFUL.
- * (TYPE) = DEVICE TYPE, FROM *EST* ENTRY (12/DT,48/0).
- * (FAM) = FAMILY, FROM *MST* ENTRY (42/FAM,18/0).
- * (DN) = DEVICE NUMBER, FROM *MST* ENTRY.
- * (NUM) = NUMBER OF PHYSICAL DEVICES.
- * (TPRU) = TOTAL *PRU* ON THIS DEVICE.
- * (SECT) = NUMBER OF SECTORS PER TRACK.
- * (MSKP) = PRIMARY DEVICE MASK.
- * (MSKS) = SECONDARY DEVICE MASK.
- *
- * USES X - ALL.
- * A - 1,2,3,4,5,6.
- * B - 1.
- SPACE 2
- GETMST BSS 1
- SB1 1
- SX6 A1
- MX0 60-24
- SA6 PARM SAVE PARAMETER LIST ADDRESS.
- * IF FIRST CALL, FETCH *EST* POINTER FROM LOW CORE.
- SA2 ESTFWA
- NZ X2,GM1 IF NOT FIRST CALL
- SX3 ESTP
- SX4 ESTWORD
- SX5 B1
- RJ RLC READ POINTER TO *EST*
- SA2 ESTWORD
- LX2 24-0
- BX6 -X0*X2 EXTRACT FWA OF *EST*
- SA6 ESTFWA
- LX2 36-12
- MX4 60-12
- BX7 -X4*X2 EXTRACT ORDINAL OF LAST RMS
- SX7 X7-1
- SX3 ESTE GET *EST* ENTRY SIZE
- IX7 X3*X7
- IX7 X6+X7
- SX7 X7+B1 DETERMINE LWA OF *EST*
- SA7 LWARMS
- BX2 X6
- * VERIFY DESIRED ORDINAL IS VALID AND READ ITS *EST* ENTRY.
- GM1 BSS 0
- SA1 PARM
- SA1 X1
- SA1 X1 FETCH *EST* ORDINAL
- SX6 -2
- SB2 X1
- LT B2,B1,GM2
- SX3 ESTE
- IX4 X1*X3
- SB2 X4
- SA5 LWARMS
- SX3 X2+B2 ADDRESS OF DESIRED *EST* ENTRY
- IX5 X3-X5
- SX6 -B1
- PL X5,GM2 IF ORDINAL TOO BIG
- SX4 ESTENT
- SX5 B1
- RJ RLC READ *EST* ENTRY FOR SUPPLIED ORDINAL
- SA1 ESTENT
- SX6 B1
- PL X1,GM2 IF NOT A DISK
- SX6 B0
- * X6 .NE. 0 IF ORDINAL IS NOT OK.
- * X1 = CONTENT OF *EST* ENTRY.
- * X0 = MASK FROM MX0 48.
- GM2 BSS 0
- SA5 PARM
- SA2 X5+B1 FETCH ADD(STAT)
- SA6 X2 (STAT) = REQUEST STATUS
- NZ X6,GETMST RETURN IF NOT A DISK
- MX0 48
- BX3 -X0*X1
- LX1 60-12
- BX6 -X0*X1 EXTRACT DEVICE TYPE
- LX6 60-12
- SA2 A2+B1
- SA6 X2 (TYPE) = DEVICE TYPE
- SX4 MST
- LX3 3 CONVERT TO *MST* ADDRESS
- SX5 ISGL
- SX3 X3+TDGL
- RJ RLC READ *MST* ENTRY
- SPACE 2
- * EXTRACT NEEDED DATA FROM THE *MST* ENTRY TO
- * PROVIDE THE REPLY PARAMETERS.
- SA5 MST+PFGL-TDGL
- SA2 A2+B1
- MX7 42
- BX6 X7*X5
- SA6 X2 (FAM) = FAMILY
- BX6 -X7*X5 DN*2**12
- AX6 12
- SA2 A2+B1
- SA6 X2 (DN) = DEVICE NUMBER
- MX7 60-3
- BX6 -X7*X5 EXTRACT NUMBER OF DEVICES -1
- SX6 X6+B1
- SA2 A2+B1
- SA6 X2 (NUM) = NUMBER OF DEVICES
- * CALCULATE TOTAL SECTORS.
- * = NUMBER OF TRACKS ON EACH DEVICE.
- * * SECTORS PER TRACK (SECTOR LIMIT)
- SA3 MST+TDGL-TDGL
- LX3 12
- BX4 -X0*X3 NUMBER OF TRACKS OF EACH PHYSICAL DEVICE
- SA3 MST+MDGL-TDGL
- BX3 -X0*X3
- IX6 X4*X3
- SA2 A2+B1
- BX7 X3
- SA6 X2 (TPRU) = TOTAL SECTORS
- SA2 A2+B1
- SA7 X2 (SECT) = NUMBER OF SECTORS PER TRACK
- SPACE 2
- SA5 MST+PUGL-TDGL FETCH DEVICE MASKS
- MX7 60-8
- BX6 -X7*X5
- SA2 A2+B1
- SA6 X2 (MSKP) = PRIMARY DEVICE MASK
- LX5 60-8
- BX6 -X7*X5
- SA2 A2+B1
- SA6 X2 (MSKS) = SECONDARY DEVICE MASK
- EQ GETMST
- SPACE 4
- ** RLC - READ LOW CORE.
- *
- * ENTRY (X3) = ADDRESS TO BE READ FROM LOW CORE.
- * (X4) = ADDRESS OF BUFFER TO HOLD RESULTS OF READ.
- * (X5) = WORD COUNT.
- SPACE 2
- RLC BSS 1
- MX6 1
- SA6 X4
- LX5 36
- LX3 18
- BX6 X3+X4
- BX6 X6+X5
- SA6 RSBA
- SYSTEM RSB,R,RSBA
- EQ RLC
- SPACE 4
- PARM BSS 1
- ESTES BSS 1
- ESTFWA DATA 0
- ESTWORD BSS 1
- LWARMS BSS 1
- ESTENT BSS 1
- MST BSS ISGL
- RSBA BSS 1
- END
cdc/nos2.source/opl871/getmst.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator