cdc:nos2.source:opl.opl871:deck:exdrvr.003
Deck EXDRVR Part 003
7 Modifications
Listing Sections
- Deck EXDRVR Start
- Deck EXDRVR Part 1 (Line 1820)
- Deck EXDRVR Part 2 (Line 3771)
- Deck EXDRVR Part 3 (Line 5740)
Source
Seq # *Modification Id* Act ----------------------------+ 05740 M00S05459.exdrvr +++| GOTO STRLBL[LLR$RS[0]]; 05741 M00S05460.exdrvr +++| 05742 M00S05461.exdrvr +++|# 05743 M00S05462.exdrvr +++|* INITIAL DRIVER REQUEST STATE. 05744 M00S05463.exdrvr +++|# 05745 M00S05464.exdrvr +++| 05746 M00S05465.exdrvr +++|STRINIT: 05747 M00S05466.exdrvr +++| IF LLR$MBH[0] EQ 0 05748 M00S05467.exdrvr +++| THEN # ** PATCH # 05749 M00S05468.exdrvr +++| BEGIN 05750 M00S05469.exdrvr +++| FE$RTN[0] = "STRCART0."; 05751 M00S05470.exdrvr +++| GOTO STRCART2; 05752 M00S05471.exdrvr +++| END 05753 M00S05472.exdrvr +++| 05754 M00S05473.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05755 M00S05474.exdrvr +++| IF LLR$UCPABT[0] ## 05756 M00S05475.exdrvr +++| AND NOT KW$COMP[0] # K-DISPLAY MSG PENDING # 05757 M00S05476.exdrvr +++| THEN # IGNORE UCP ABORT # 05758 M00S05477.exdrvr +++| BEGIN # EXIT # 05759 M00S05478.exdrvr +++| RETURN; # AVOID ISSUING INFINITE STORES # 05760 M00S05479.exdrvr +++| END # EXIT # 05761 M00S05480.exdrvr +++|
Line S00068 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05762 M01S00068.mse1 +++| IF LLR$SCU[0] EQ 0 # NO CHANNEL/CU SAVED # 05763 M01S00069.mse1 +++| AND LLR$DRFUL[0] # ERROR OCCURRED # 05764 M01S00070.mse1 +++| THEN # DATA ERROR AFTER GOOD REW/UNL # 05765 M01S00071.mse1 +++| BEGIN # SAVE # 05766 M01S00072.mse1 +++| LLR$SCIF[0] = LLR$CIF[0]; # SAVE TO DECIDE ON RETRY # 05767 M01S00073.mse1 +++| LLR$SCU[0] = LLR$CU[0]; 05768 M01S00074.mse1 +++| END # SAVE # 05769 M01S00075.mse1 +++| 05770 M00S05481.exdrvr +++| LLR$SDR[0] = LLR$DR[0]; # IN CASE EJECTING CARTRIDGE # 05771 M00S05482.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05772 M00S05483.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 05773 M00S05484.exdrvr +++| IF MBF$WORD[0] NQ 0 05774 M00S05485.exdrvr +++| THEN # LAST MESSAGE NOT PROCESSED # 05775 M00S05486.exdrvr +++| BEGIN # CHECK # 05776 M00S05487.exdrvr +++| IF MS$MSG[0] GQ HFC$MVLMVR # MOUNT-VOLUME # 05777 M00S05488.exdrvr +++| AND MS$MSG[0] LQ HFC$MVLMNW 05778 M00S05489.exdrvr +++| THEN # FORCED STORE ON DATA TRANSFER # 05779 M00S05490.exdrvr +++| BEGIN # OK # 05780 M00S05491.exdrvr +++| MBF$WORD[0] = 0; # PRESET HEADER # 05781 M00S05492.exdrvr +++| MS$MSG[0] = HFC$STCRNF; # FORCE REWIND/UNLOAD # 05782 M00S05493.exdrvr +++| END # OK # 05783 M00S05494.exdrvr +++| 05784 M00S05495.exdrvr +++| ELSE # SOFTWARE ERROR # 05785 M00S05496.exdrvr +++| BEGIN # ABORT # 05786 M00S05497.exdrvr +++| FE$RTN[0] = "STRCART1."; 05787 M00S05498.exdrvr +++| GOTO STRCART2; 05788 M00S05499.exdrvr +++| END # ABORT # 05789 M00S05500.exdrvr +++| 05790 M00S05501.exdrvr +++| END # CHECK # 05791 M00S05502.exdrvr +++| 05792 M00S05503.exdrvr +++| ELSE # ISSUE NORMAL STORE # 05793 M00S05504.exdrvr +++| BEGIN # OK #
Line S05505 Modification History | |
---|---|
M01 (Removed by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05794 M01S05505.mse1 ---| IF LLR$LDERR[0] # DDE ON LOAD # 05795 M01S05506.mse1 ---| THEN # TURN OFF DRD ONLY # 05796 M01S05507.mse1 ---| BEGIN # OFF # 05797 M01S05508.mse1 ---| GOTO STRCART5; 05798 M01S05509.mse1 ---| END # OFF # 05799 M01S05510.mse1 ---| 05800 M00S05511.exdrvr +++| MS$MSG[0] = HFC$STCRNV; 05801 M00S05512.exdrvr +++| END # OK # 05802 M00S05513.exdrvr +++| 05803 M00S05514.exdrvr +++| MBF$SAVE[0] = SAVEMOST; 05804 M00S05515.exdrvr +++| LLR$RS[0] = PROCST"CONT1"; 05805 M00S05516.exdrvr +++| 05806 M00S05517.exdrvr +++|# 05807 M00S05518.exdrvr +++|* ISSUE M860 MESSAGE TO STORE CARTRIDGE. 05808 M00S05519.exdrvr +++|# 05809 M00S05520.exdrvr +++| 05810 M00S05521.exdrvr +++|STRCUBE: 05811 M00S05522.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05812 M00S05523.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 05813 M00S05524.exdrvr +++| IF MBF$SBADDR[0] EQ 0 ## 05814 M00S05525.exdrvr +++| AND LLR$DR[0] EQ RESPTYP4"OK4" # GOOD HARDWARE # 05815 M00S05526.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 05816 M00S05527.exdrvr +++| BEGIN # RETRY # 05817 M00S05528.exdrvr +++| RETURN; 05818 M00S05529.exdrvr +++| END # RETRY # 05819 M00S05530.exdrvr +++|
Line S00076 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05820 M01S00076.mse1 +++| IF MS$RETCODE[0] EQ HRC$CSNERR # CSN/DRD IN USE # 05821 M01S00077.mse1 +++| AND MS$MSG[0] EQ HFC$STCRNV # NORMAL STORE # 05822 M01S00078.mse1 +++| THEN # MAY BE *ACQUIRE* ERROR RCVY # 05823 M01S00079.mse1 +++| BEGIN # CHECK # 05824 M01S00080.mse1 +++| IF NOT LLR$LDERR[0] 05825 M01S00081.mse1 +++| THEN # DRIVER ERROR # 05826 M01S00082.mse1 +++| BEGIN # ABORT # 05827 M01S00083.mse1 +++| FE$RTN[0] = "STRCART2."; 05828 M01S00084.mse1 +++| GOTO STRCART2; 05829 M01S00085.mse1 +++| END # ABORT # 05830 M01S00086.mse1 +++| 05831 M01S00087.mse1 +++| ELSE # CARTRIDGE HAD LOADED OK # 05832 M01S00088.mse1 +++| BEGIN # IGNORE # 05833 M01S00089.mse1 +++| MS$RETCODE[0] = 0; # DRD IN USE BY THIS LLRQ # 05834 M01S00090.mse1 +++| END # IGNORE # 05835 M01S00091.mse1 +++| 05836 M01S00092.mse1 +++| END # CHECK # 05837 M01S00093.mse1 +++| 05838 M00S05531.exdrvr +++| SM$ACCBUSY[LLR$SMO[0]] = FALSE;# SM ARM NOT IN USE # 05839 M00S05532.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 05840 M00S05533.exdrvr +++| THEN # HARDWARE PROBLEM # 05841 M00S05534.exdrvr +++| BEGIN # EXIT # 05842 M00S05535.exdrvr +++| IF LLR$SDR[0] EQ 0 05843 M00S05536.exdrvr +++| THEN # SAVE THIS ERROR FOR EXEC # 05844 M00S05537.exdrvr +++| BEGIN # SAVE # 05845 M00S05538.exdrvr +++| LLR$SDR[0] = LLR$DR[0]; 05846 M00S05539.exdrvr +++| END # SAVE # 05847 M00S05540.exdrvr +++| 05848 M00S05541.exdrvr +++| GOTO STRCART3; # ASSUME CARTRIDGE NOT STORED # 05849 M00S05542.exdrvr +++| END # EXIT # 05850 M00S05543.exdrvr +++| 05851 M00S05544.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # FORCED STORE VOLUME UNLOADED # 05852 M00S05545.exdrvr +++| OR (MS$RETCODE[0] EQ 0 # NO M860 ERROR #
Line S05546 Modification History | |
---|---|
M01 (Removed by) | exdrvr3 |
Seq # *Modification Id* Act ----------------------------+ 05853 M01S05546.exdrvr3 ---| AND (LLR$RQI[0] EQ REQNAME"RQILABL" # SSLABEL HANDLES EJECTS #
Line S00018 Modification History | |
---|---|
M01 (Added by) | exdrvr3 |
Seq # *Modification Id* Act ----------------------------+ 05854 M01S00018.exdrvr3 +++| AND ((LLR$RQI[0] EQ REQNAME"RQILABL" # SSLABEL HANDLES EJECTS # 05855 M01S00019.exdrvr3 +++| AND NOT LLR$UCPABT[0]) # SSLABEL MUST BE UP # 05856 M00S05547.exdrvr +++| OR LLR$Y[0] NQ SM$EXIT$TY # CARTRIDGE NOT EJECTED # 05857 M00S05548.exdrvr +++| OR LLR$Z[0] NQ SM$TY$Z)) 05858 M00S05549.exdrvr +++| THEN # DO NOT ISSUE K-DISPLAY MSG # 05859 M00S05550.exdrvr +++| BEGIN # MATRIX # 05860 M00S05551.exdrvr +++| GOTO STRCART3; 05861 M00S05552.exdrvr +++| END # MATRIX # 05862 M00S05553.exdrvr +++| 05863 M00S05554.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CELEMP # CELL FULL # 05864 M00S05555.exdrvr +++| AND NOT (LLR$Y[0] EQ SM$EXIT$TY # NOT OUTPUT TRAY FULL # 05865 M00S05556.exdrvr +++| AND LLR$Z[0] EQ SM$TY$Z) 05866 M00S05557.exdrvr +++| THEN # TURN SM OFF IN UDT # 05867 M00S05558.exdrvr +++| BEGIN # OFF # 05868 M00S05559.exdrvr +++| P<PTHSTAT> = LOC(SM$STS[LLR$SMO[0]]); 05869 M00S05560.exdrvr +++| SMST = SMST1; # ASSUME 2ND CU # 05870 M00S05561.exdrvr +++| IF LLR$CU[0] EQ SM$CUO0[LLR$SMO[0]] 05871 M00S05562.exdrvr +++| THEN # RESET INDEX TO 1ST CU # 05872 M00S05563.exdrvr +++| BEGIN # RESET # 05873 M00S05564.exdrvr +++| SMST = SMST0; 05874 M00S05565.exdrvr +++| END # RESET # 05875 M00S05566.exdrvr +++| 05876 M00S05567.exdrvr +++| PATHBIT(SMST,PATH$DF"U$ON") = OFF;
Line S05568 Modification History | |
---|---|
M01 (Removed by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05877 M01S05568.exdrvr2 ---| GOTO STRCARTA; # FIXES COMPILER BUG # 05878 M01S05569.exdrvr2 ---| 05879 M01S05570.exdrvr2 ---|STRCARTA: 05880 M01S05571.exdrvr2 ---| STSP = SM$STS0[LLR$SMO[0]]; # RESET GLOBAL FLAGS # 05881 M01S05572.exdrvr2 ---| STSS = SM$STS1[LLR$SMO[0]]; 05882 M01S05573.exdrvr2 ---| SM$FLAG[LLR$SMO[0]] = STSP LOR STSS;
Line S00157 Modification History | |
---|---|
M01 (Added by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05883 M01S00157.exdrvr2 +++| 05884 M01S00158.exdrvr2 +++| CONTROL REACTIVE; 05885 M01S00159.exdrvr2 +++| 05886 M01S00160.exdrvr2 +++| SM$FLAG[LLR$SMO[0]] = SM$STS0[LLR$SMO[0]] LOR # RESET GLOBALS # 05887 M01S00161.exdrvr2 +++| SM$STS1[LLR$SMO[0]]; 05888 M01S00162.exdrvr2 +++| 05889 M01S00163.exdrvr2 +++| CONTROL INERT; 05890 M01S00164.exdrvr2 +++| 05891 M00S05574.exdrvr +++| END # OFF # 05892 M00S05575.exdrvr +++| 05893 M00S05576.exdrvr +++|# 05894 M00S05577.exdrvr +++|* ISSUE A K-DISPLAY MESSAGE INFORMING THE OPERATOR THAT 05895 M00S05578.exdrvr +++|* EITHER A CARTRIDGE WAS EJECTED, THE OUTPUT TRAY WAS 05896 M00S05579.exdrvr +++|* FULL, OR A MATRIX CELL WAS FULL. 05897 M00S05580.exdrvr +++|# 05898 M00S05581.exdrvr +++| 05899 M00S05582.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05900 M00S05583.exdrvr +++| KW$WORD[0] = 0; 05901 M00S05584.exdrvr +++| KW$LINE1[0] = KM"KM2"; # PRESET MESSAGE ORDINALS # 05902 M00S05585.exdrvr +++| KW$LINE2[0] = KM"KM9"; # ASSUME CARTRIDGE EJECTED # 05903 M00S05586.exdrvr +++| KW$IC[0] = TRUE; # SET IMMEDIATE COMPLETION # 05904 M00S05587.exdrvr +++| KW$DF[0] = TRUE; # ISSUE TO JOB DAYFILE # 05905 M00S05588.exdrvr +++| IF LLR$CSNT[0] NQ 0 # *TDAM* REQUEST # 05906 M00S05589.exdrvr +++| AND (LLR$SDR[0] EQ RESPTYP4"UNK$CART" # UNEXPECTED LABEL # 05907 M00S05590.exdrvr +++| OR LLR$SDR[0] EQ RESPTYP4"CART$LB$ERR") 05908 M00S05591.exdrvr +++| THEN # INDICATE LABEL ERROR IN MESSAGE # 05909 M00S05592.exdrvr +++| BEGIN # RESET # 05910 M00S05593.exdrvr +++| KW$LINE2[0] = KM"KM8"; 05911 M00S05594.exdrvr +++| KW$LINE3[0] = KM"KM9"; # CARTRIDGE EJECTED # 05912 M00S05595.exdrvr +++| END # RESET # 05913 M00S05596.exdrvr +++| 05914 M00S05597.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CELEMP 05915 M00S05598.exdrvr +++| THEN # CELL WAS FULL # 05916 M00S05599.exdrvr +++| BEGIN # FULL # 05917 M00S05600.exdrvr +++| KW$LINE2[0] = KM"KM11"; # ASSUME MATRIX CELL FULL # 05918 M00S05601.exdrvr +++| KW$LINE3[0] = KM"KM16"; # SM TURNED OFF # 05919 M00S05602.exdrvr +++| IF LLR$Y[0] EQ SM$EXIT$TY ## 05920 M00S05603.exdrvr +++| AND LLR$Z[0] EQ SM$TY$Z 05921 M00S05604.exdrvr +++| THEN # OUTPUT TRAY IS FULL # 05922 M00S05605.exdrvr +++| BEGIN # TRAY # 05923 M00S05606.exdrvr +++| KW$LINE2[0] = KM"KM19"; 05924 M00S05607.exdrvr +++| KW$LINE3[0] = 0; # SM LEFT ON # 05925 M00S05608.exdrvr +++| KW$IC[0] = FALSE; # WAIT FOR OPERATOR RESPONSE # 05926 M00S05609.exdrvr +++| KW$DF[0] = FALSE; 05927 M00S05610.exdrvr +++| END # TRAY # 05928 M00S05611.exdrvr +++| 05929 M00S05612.exdrvr +++| END # FULL # 05930 M00S05613.exdrvr +++| 05931 M00S05614.exdrvr +++| KW$RPGO[0] = TRUE; # ALLOW GO RESPONSE # 05932 M00S05615.exdrvr +++| KP$EQ = UD$ESTO[LLR$CU[0]]; # PRESET MESSAGE PARAMETERS # 05933 M00S05616.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); # LOCATE READ FET # 05934 M00S05617.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 05935 M00S05618.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 05936 M00S05619.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 05937 M00S05620.exdrvr +++| KP$CN = FMR$CHAN[0]; 05938 M00S05621.exdrvr +++| KP$DT = SM$ID[LLR$SMO[0]]; 05939 M00S05622.exdrvr +++| KP$YA = LLR$Y[0]; # SET FULL CELL # 05940 M00S05623.exdrvr +++| KP$ZA = LLR$Z[0]; 05941 M00S05624.exdrvr +++| KREQ(LOC(KWORD),KLINK); # SEND K-DISPLAY REQUEST # 05942 M00S05625.exdrvr +++| 05943 M00S05626.exdrvr +++|STRCART3:
Line S05627 Modification History | |
---|---|
M01 (Removed by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05944 M01S05627.mse1 ---| IF MS$RETCODE[0] EQ HRC$CSNERR 05945 M01S05628.mse1 ---| THEN # RETRY FORCED AS NORMAL STORE #
Line S00094 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05946 M01S00094.mse1 +++| IF MS$RETCODE[0] EQ HRC$CSNERR # RETRY FORCED AS NORMAL STORE # 05947 M01S00095.mse1 +++| OR LLR$LDERR[0] # RCVY FROM *ACQ* ERROR # 05948 M01S00096.mse1 +++| OR LLR$CSNT[0] EQ 0 # ERROR RELATED TO UTILITY # 05949 M01S00097.mse1 +++| THEN # BUFFERED LOG NOT NEEDED # 05950 M00S05629.exdrvr +++| BEGIN # SKIP # 05951 M00S05630.exdrvr +++| GOTO STRCART5; 05952 M00S05631.exdrvr +++| END # SKIP # 05953 M00S05632.exdrvr +++|
Line S05633 Modification History | |
---|---|
M01 (Removed by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05954 M01S05633.mse1 ---| IF LLR$CSNT[0] EQ 0 # BUFFERED LOG NOT NEEDED # 05955 M01S05634.mse1 ---| THEN # PROCESSING COMPLETE # 05956 M01S05635.mse1 ---| BEGIN # SKIP # 05957 M01S05636.mse1 ---| GOTO STRCART5; 05958 M01S05637.mse1 ---| END # SKIP # 05959 M01S05638.mse1 ---| 05960 M00S05639.exdrvr +++| IF KW$LINE2[0] EQ KM"KM19" # OUTPUT TRAY FULL # 05961 M00S05640.exdrvr +++| AND NOT KW$COMP[0] 05962 M00S05641.exdrvr +++| THEN # RETRY STORE REQUEST # 05963 M00S05642.exdrvr +++| BEGIN # EXIT # 05964 M00S05643.exdrvr +++| GOTO STRCART4; 05965 M00S05644.exdrvr +++| END # EXIT # 05966 M00S05645.exdrvr +++| 05967 M00S05646.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 05968 M00S05647.exdrvr +++| THEN # BUFFERED LOG NOT NEEDED # 05969 M00S05648.exdrvr +++| BEGIN # SKIP # 05970 M00S05649.exdrvr +++| GOTO STRCART5; # TREAT DRD AS FULL # 05971 M00S05650.exdrvr +++| END # SKIP # 05972 M00S05651.exdrvr +++| 05973 M00S05652.exdrvr +++| IF MBF$SBADDR[0] NQ 0 05974 M00S05653.exdrvr +++| THEN # CLEAR SBT ENTRY # 05975 M00S05654.exdrvr +++| BEGIN # CLEAR # 05976 M00S05655.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 05977 M00S05656.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 05978 M00S05657.exdrvr +++| END # CLEAR # 05979 M00S05658.exdrvr +++| 05980 M00S05659.exdrvr +++| MBF$WORD[0] = 0; # CLEAR MESSAGE STATUS # 05981 M00S05660.exdrvr +++| MBF$SAVE[0] = SAVEPART; 05982 M00S05661.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 05983 M00S05662.exdrvr +++| MS$MSG[0] = HFC$DBLD0; # SET *DUMP BUF LOG* FUNCTION # 05984 M00S05663.exdrvr +++| LLR$RS[0] = PROCST"CONT2"; 05985 M00S05664.exdrvr +++| 05986 M00S05665.exdrvr +++|# 05987 M00S05666.exdrvr +++|* ISSUE M860 MESSAGE TO DUMP BUFFERED LOG. 05988 M00S05667.exdrvr +++|# 05989 M00S05668.exdrvr +++| 05990 M00S05669.exdrvr +++|STRBUFL: 05991 M00S05670.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05992 M00S05671.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 05993 M00S05672.exdrvr +++| IF MBF$SBADDR[0] EQ 0 ## 05994 M00S05673.exdrvr +++| AND LLR$DR[0] EQ RESPTYP4"OK4" 05995 M00S05674.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 05996 M00S05675.exdrvr +++| BEGIN # RETRY # 05997 M00S05676.exdrvr +++| RETURN; 05998 M00S05677.exdrvr +++| END # RETRY # 05999 M00S05678.exdrvr +++| 06000 M00S05679.exdrvr +++| LLR$DR[0] = RESPTYP4"OK4"; # DO NOT RETURN ERRORS # 06001 M00S05680.exdrvr +++| 06002 M00S05681.exdrvr +++|# 06003 M00S05682.exdrvr +++|* TURN OFF THE DRD IF AN M860 RESPONSE TO 06004 M00S05683.exdrvr +++|* A DRD MESSAGE WAS A DEVICE DRIVER ERROR, OR THE RESPONSE 06005 M00S05684.exdrvr +++|* TIMED OUT. 06006 M00S05685.exdrvr +++|# 06007 M00S05686.exdrvr +++| 06008 M00S05687.exdrvr +++|STRCART5: 06009 M00S05688.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # RETRY AS NORMAL STORE FIRST # 06010 M00S05689.exdrvr +++| OR NOT LLR$DRFUL[0] 06011 M00S05690.exdrvr +++| THEN # DO NOT TURN OFF DRD # 06012 M00S05691.exdrvr +++| BEGIN # OK # 06013 M00S05692.exdrvr +++| GOTO STRCART4; 06014 M00S05693.exdrvr +++| END # OK # 06015 M00S05694.exdrvr +++|
Line S00098 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 06016 M01S00098.mse1 +++|# 06017 M01S00099.mse1 +++|* DECIDE IF RETRY COUNT AND RETRY TIME JUSTIFY TURNING DRD OFF. 06018 M01S00100.mse1 +++|# 06019 M01S00101.mse1 +++| 06020 M01S00102.mse1 +++| P<MWBTMP> = LOC(UD$CAMF[LLR$SCU[0]]); # LOCATE BAD CHAN FETS # 06021 M01S00103.mse1 +++| P<FETMWB> = MWB$ADDR[LLR$SCIF[0]]; 06022 M01S00104.mse1 +++| P<FETMRA> = P<FETMWB> - 1; 06023 M01S00105.mse1 +++| P<FETMRB> = FRA$MRBADR[0]; 06024 M01S00106.mse1 +++| IF FMW$ERROR[0] # ORIGINALLY A CHANNEL ERROR # 06025 M01S00107.mse1 +++| THEN # RETRY CNT ALREADY INCREMENTED # 06026 M01S00108.mse1 +++| BEGIN # CLEAR # 06027 M01S00109.mse1 +++| FMW$ERROR[0] = FALSE; # IN CASE OF ANOTHER CHAN ERR # 06028 M01S00110.mse1 +++| END # CLEAR # 06029 M01S00111.mse1 +++| 06030 M01S00112.mse1 +++| ELSE # ONLY A DRD ERROR # 06031 M01S00113.mse1 +++| BEGIN # BUMP # 06032 M01S00114.mse1 +++| FMW$RCNT[0] = FMW$RCNT[0] + 1; # RECORD ERROR # 06033 M01S00115.mse1 +++| END # BUMP # 06034 M01S00116.mse1 +++| 06035 M01S00117.mse1 +++| RTIME(RTIMESTAT); 06036 M01S00118.mse1 +++| IF (FMW$RCNT[0] EQ 1 # START OF ERROR SEQUENCE # 06037 M01S00119.mse1 +++| AND FMW$RCNT[0] LS MAXCHERR) ## 06038 M01S00120.mse1 +++| OR (FMW$RCNT[0] GR 1 # RETRY TIME EXPIRED # 06039 M01S00121.mse1 +++| AND RTIMSECS[0] GQ FMW$RTIME[0]) 06040 M01S00122.mse1 +++| THEN # RESET CHAN FOR NEW INTERVAL # 06041 M01S00123.mse1 +++| BEGIN # RESET # 06042 M01S00124.mse1 +++| FMW$RCNT[0] = 1; # IN CASE INTERVAL EXPIRED # 06043 M01S00125.mse1 +++| FMW$RTIME[0] = RTIMSECS[0] + MAXCHERRTM; # RESET RETRY TIME # 06044 M01S00126.mse1 +++| END # RESET # 06045 M01S00127.mse1 +++|
Line S00165 Modification History | |
---|---|
M01 (Added by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 06046 M01S00165.exdrvr2 +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06047 M01S00166.exdrvr2 +++| THEN # DRD CANNOT BE REUSED # 06048 M01S00167.exdrvr2 +++| BEGIN # OFF # 06049 M01S00168.exdrvr2 +++| FMW$RCNT[0] = MAXCHERR; # 7990 WOULD ABORT A RE-ACQUIRE # 06050 M01S00169.exdrvr2 +++| END # OFF # 06051 M01S00170.exdrvr2 +++|
Line S00128 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 06052 M01S00128.mse1 +++| IF (FMW$RCNT[0] GR 1 ## 06053 M01S00129.mse1 +++| AND FMW$RCNT[0] GQ MAXCHERR ## 06054 M01S00130.mse1 +++| AND RTIMSECS[0] GQ FMW$RTIME[0]) # ERROR SEQUENCE EXPIRED # 06055 M01S00131.mse1 +++| OR FMW$RCNT[0] LS MAXCHERR # SEQUENCE NOT COMPLETE # 06056 M01S00132.mse1 +++| THEN # DRD NOT READY TO BE TURNED OFF # 06057 M01S00133.mse1 +++| BEGIN # ON # 06058 M01S00134.mse1 +++| GOTO STRCART4; # SKIP TURNING OFF DRD # 06059 M01S00135.mse1 +++| END # ON # 06060 M01S00136.mse1 +++| 06061 M01S00137.mse1 +++| FMW$RCNT[0] = 0; # PRESET IN CASE OF MORE ERRORS # 06062 M01S00138.mse1 +++| 06063 M01S00139.mse1 +++|# 06064 M01S00140.mse1 +++|* PRESET UDT TO TURN OFF DRD. 06065 M01S00141.mse1 +++|# 06066 M01S00142.mse1 +++| 06067 M00S05695.exdrvr +++| DRVRACTIVE = TRUE; # IN CASE DRD MSG TIMED OUT # 06068 M00S05696.exdrvr +++| P<PTHSTAT> = LOC(D1$ST[LLR$SMO[0]]); # ASSUME LOWER DRD # 06069 M00S05697.exdrvr +++| IF LLR$DRD[0] EQ 0 06070 M00S05698.exdrvr +++| THEN # UPPER DRD GOING OFF # 06071 M00S05699.exdrvr +++| BEGIN # RESET # 06072 M00S05700.exdrvr +++| P<PTHSTAT> = LOC(D0$ST[LLR$SMO[0]]); 06073 M00S05701.exdrvr +++| END # RESET # 06074 M00S05702.exdrvr +++| 06075 M00S05703.exdrvr +++| DRST = DRST1; # ASSUME 2ND CU # 06076 M00S05704.exdrvr +++| IF LLR$CU[0] EQ SM$CUO0[LLR$SMO[0]] 06077 M00S05705.exdrvr +++| THEN # RESET DRD INDEX TO 1ST CU # 06078 M00S05706.exdrvr +++| BEGIN # RESET # 06079 M00S05707.exdrvr +++| DRST = DRST0; 06080 M00S05708.exdrvr +++| END # RESET # 06081 M00S05709.exdrvr +++| 06082 M00S05710.exdrvr +++| PATHBIT(DRST,PATH$DF"U$ON") = OFF; 06083 M00S05711.exdrvr +++| PATHBIT(DRST,PATH$DF"U$CU$ACK") = ON; 06084 M00S05712.exdrvr +++| PATHBIT(DRST,PATH$DF"U$DONE") = OFF; 06085 M00S05713.exdrvr +++| 06086 M00S05714.exdrvr +++| CONTROL REACTIVE; 06087 M00S05715.exdrvr +++| 06088 M00S05716.exdrvr +++| IF LLR$DRD[0] EQ 0 06089 M00S05717.exdrvr +++| THEN # STOP LOADS TO UPPER DRD # 06090 M00S05718.exdrvr +++| BEGIN # DRD 0 # 06091 M00S05719.exdrvr +++| D0$FLAG[LLR$SMO[0]] = D0$STSP[LLR$SMO[0]] LOR 06092 M00S05720.exdrvr +++| D0$STSS[LLR$SMO[0]]; 06093 M00S05721.exdrvr +++| END # DRD 0 # 06094 M00S05722.exdrvr +++| 06095 M00S05723.exdrvr +++| ELSE # STOP LOADS TO LOWER DRD # 06096 M00S05724.exdrvr +++| BEGIN # DRD 1 # 06097 M00S05725.exdrvr +++| D1$FLAG[LLR$SMO[0]] = D1$STSP[LLR$SMO[0]] LOR 06098 M00S05726.exdrvr +++| D1$STSS[LLR$SMO[0]]; 06099 M00S05727.exdrvr +++| END # DRD 1 # 06100 M00S05728.exdrvr +++| 06101 M00S05729.exdrvr +++| CONTROL INERT; 06102 M00S05730.exdrvr +++| 06103 M00S05731.exdrvr +++| LLR$SSD[0] = LLR$D$SMO[0]; # SAVE SM/DRD ORDINALS # 06104 M00S05732.exdrvr +++| LLR$RS[0] = PROCST"CONT3"; 06105 M00S05733.exdrvr +++| RETURN; 06106 M00S05734.exdrvr +++| 06107 M00S05735.exdrvr +++|# 06108 M00S05736.exdrvr +++|* ISSUE A K-DISPLAY MESSAGE STATING THAT THE DRD WAS 06109 M00S05737.exdrvr +++|* TURNED OFF. 06110 M00S05738.exdrvr +++|# 06111 M00S05739.exdrvr +++| 06112 M00S05740.exdrvr +++|STRDRDO: 06113 M00S05741.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06114 M00S05742.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06115 M00S05743.exdrvr +++| LLR$D$SMO[0] = LLR$SSD[0]; # RESTORE SM/DRD ORDINALS # 06116 M00S05744.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 06117 M00S05745.exdrvr +++| KW$WORD[0] = 0; 06118 M00S05746.exdrvr +++| KW$LINE1[0] = KM"KM3"; # PRESET MESSAGE ORDINALS # 06119 M00S05747.exdrvr +++| KW$LINE2[0] = KM"KM16"; 06120 M00S05748.exdrvr +++| KW$IC[0] = TRUE; # SET IMMEDIATE COMPLETION # 06121 M00S05749.exdrvr +++| KW$DF[0] = TRUE; # SEND TO JOB DAYFILE # 06122 M00S05750.exdrvr +++| KW$RPGO[0] = TRUE; # ALLOW GO RESPONSE # 06123 M00S05751.exdrvr +++| KP$EQ = UD$ESTO[LLR$CU[0]]; # PRESET MESSAGE PARAMETERS # 06124 M00S05752.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); # LOCATE READ FET # 06125 M00S05753.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 06126 M00S05754.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 06127 M00S05755.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 06128 M00S05756.exdrvr +++| KP$CN = FMR$CHAN[0]; 06129 M00S05757.exdrvr +++| KP$DT = SM$ID[LLR$SMO[0]]; 06130 M00S05758.exdrvr +++| KP$ID = D1$SUN[LLR$SMO[0]]; # ASSUME LOWER DRD # 06131 M00S05759.exdrvr +++| IF LLR$DRD[0] EQ 0 06132 M00S05760.exdrvr +++| THEN # LOWER DRD HAD ERROR # 06133 M00S05761.exdrvr +++| BEGIN # RESET # 06134 M00S05762.exdrvr +++| KP$ID = D0$SUN[LLR$SMO[0]]; 06135 M00S05763.exdrvr +++| END # RESET # 06136 M00S05764.exdrvr +++| 06137 M00S05765.exdrvr +++| KREQ(LOC(KWORD),KLINK); # SEND K-DISPLAY REQUEST # 06138 M00S05766.exdrvr +++| 06139 M00S05767.exdrvr +++|STRCART4: 06140 M00S05768.exdrvr +++| IF LLR$DRD[0] EQ 0 06141 M00S05769.exdrvr +++| THEN # UPPER DRD EMPTY # 06142 M00S05770.exdrvr +++| BEGIN # CLEAR # 06143 M00S05771.exdrvr +++| D0$FULL[LLR$SMO[0]] = FALSE; 06144 M00S05772.exdrvr +++| END # CLEAR # 06145 M00S05773.exdrvr +++| 06146 M00S05774.exdrvr +++| ELSE # LOWER DRD EMPTY # 06147 M00S05775.exdrvr +++| BEGIN # CLEAR # 06148 M00S05776.exdrvr +++| D1$FULL[LLR$SMO[0]] = FALSE; 06149 M00S05777.exdrvr +++| END # CLEAR # 06150 M00S05778.exdrvr +++| 06151 M00S05779.exdrvr +++| IF LLR$SDR[0] NQ 0 06152 M00S05780.exdrvr +++| THEN # RESTORE ORIGINAL ERROR FOR EXEC # 06153 M00S05781.exdrvr +++| BEGIN # RESET # 06154 M00S05782.exdrvr +++| LLR$DR[0] = LLR$SDR[0]; 06155 M00S05783.exdrvr +++| END # RESET # 06156 M00S05784.exdrvr +++| 06157 M00S05785.exdrvr +++| IF LLR$PRCNME[0] EQ REQTYP4"INITHW" 06158 M00S05786.exdrvr +++| THEN # CLEAR SO UDT SCAN CAN FINISH # 06159 M00S05787.exdrvr +++| BEGIN # CLEAR # 06160 M00S05788.exdrvr +++| IF MS$RETCODE[0] NQ HRC$CSNERR # DRD NOT YET OFF # 06161 M00S05789.exdrvr +++| THEN # NOT RETRYING AS NORMAL STORE # 06162 M00S05790.exdrvr +++| BEGIN # OFF # 06163 M00S05791.exdrvr +++| LLR$DRFUL[0] = FALSE; 06164 M00S05792.exdrvr +++| END # OFF # 06165 M00S05793.exdrvr +++| 06166 M00S05794.exdrvr +++| LLR$DRDOFF[0] = FALSE; 06167 M00S05795.exdrvr +++| LLR$LDERR[0] = FALSE; # IN CASE LOAD ERROR OCCURRED # 06168 M00S05796.exdrvr +++| END # CLEAR # 06169 M00S05797.exdrvr +++| 06170 M00S05798.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 06171 M00S05799.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # RETRY AS NORMAL STORE # 06172 M00S05800.exdrvr +++| OR (KW$LINE2[0] EQ KM"KM19" # RETRY STORE TO OUTPUT TRAY # 06173 M00S05801.exdrvr +++| AND NOT KW$COMP[0]) 06174 M00S05802.exdrvr +++| THEN # RETRY STORING CARTRIDGE # 06175 M00S05803.exdrvr +++| BEGIN # RETRY # 06176 M00S05804.exdrvr +++| LLR$RS[0] = PROCST"INITIAL"; 06177 M00S05805.exdrvr +++| END # RETRY # 06178 M00S05806.exdrvr +++| 06179 M00S05807.exdrvr +++| IF MBF$SBADDR[0] NQ 0 06180 M00S05808.exdrvr +++| THEN # CLEAR SBT ENTRY # 06181 M00S05809.exdrvr +++| BEGIN # CLEAR # 06182 M00S05810.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 06183 M00S05811.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 06184 M00S05812.exdrvr +++| END # CLEAR # 06185 M00S05813.exdrvr +++| 06186 M00S05814.exdrvr +++| MBF$WORD[0] = 0; # CLEAR MESSAGE STATUS # 06187 M00S05815.exdrvr +++| RETURN; 06188 M00S05816.exdrvr +++| 06189 M00S05817.exdrvr +++|STRCART2: 06190 M00S05818.exdrvr +++| MESSAGE(FEMSG,UDFL1); 06191 M00S05819.exdrvr +++| ABORT; 06192 M00S05820.exdrvr +++| END # STRCART # 06193 M00S05821.exdrvr +++| 06194 M00S05822.exdrvr +++| TERM 06195 M00S05823.exdrvr +++|PROC XFRDATA; 06196 M00S05824.exdrvr +++|# TITLE XFRDATA - TRANSFER DATA TO/FROM M860. # 06197 M00S05825.exdrvr +++| 06198 M00S05826.exdrvr +++| BEGIN # XFRDATA # 06199 M00S05827.exdrvr +++| 06200 M00S05828.exdrvr +++|# 06201 M00S05829.exdrvr +++|** XFRDATA - TRANSFER DATA TO/FROM M860. 06202 M00S05830.exdrvr +++|* 06203 M00S05831.exdrvr +++|* *XFRDATA* PROCESSES *DRQUEUE* REQUESTS TO MOUNT AND UNLOAD 06204 M00S05832.exdrvr +++|* VOLUMES, AND INITIATES DATA TRANSFERS BETWEEN *SSEXEC* AND THE 06205 M00S05833.exdrvr +++|* M860 HARDWARE. 06206 M00S05834.exdrvr +++|* 06207 M00S05835.exdrvr +++|* PROC XFRDATA 06208 M00S05836.exdrvr +++|* 06209 M00S05837.exdrvr +++|* ENTRY P<LLRQ> = *DRQUEUE* ENTRY ADDRESS. 06210 M00S05838.exdrvr +++|* 06211 M00S05839.exdrvr +++|* EXIT THE *DRQUEUE* ENTRY REQUEST STATE FIELD HAS BEEN 06212 M00S05840.exdrvr +++|* UPDATED TO INDICATE WHERE SUBSEQUENT PROCESSING OF 06213 M00S05841.exdrvr +++|* THIS REQUEST IS TO CONTINUE. 06214 M00S05842.exdrvr +++|* 06215 M00S05843.exdrvr +++|* MESSAGES *EXEC ABNORMAL, XFRDATA1.* - UDT MESSAGE BUFFER STILL 06216 M00S05844.exdrvr +++|* IN USE. 06217 M00S05845.exdrvr +++|* 06218 M00S05846.exdrvr +++|* *EXEC ABNORMAL, XFRDATA2.* - FATAL ERROR RECEIVED IN 06219 M00S05847.exdrvr +++|* M860 *MOUNT VOLUME* 06220 M00S05848.exdrvr +++|* RESPONSE. 06221 M00S05849.exdrvr +++|* 06222 M00S05850.exdrvr +++|* NOTES THIS IS A PSEUDO-REENTRANT PROCEDURE. 06223 M00S05851.exdrvr +++|# 06224 M00S05852.exdrvr +++| 06225 M00S05853.exdrvr +++| 06226 M00S05854.exdrvr +++|# 06227 M00S05855.exdrvr +++|**** PROC XFRDATA - XREF LIST BEGIN. 06228 M00S05856.exdrvr +++|# 06229 M00S05857.exdrvr +++| 06230 M00S05858.exdrvr +++| XREF 06231 M00S05859.exdrvr +++| BEGIN 06232 M00S05860.exdrvr +++| PROC ABORT; # ABORT # 06233 M00S05861.exdrvr +++| PROC CALLPP; # PASS MESSAGES/DATA TO PP # 06234 M00S05862.exdrvr +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 06235 M00S05863.exdrvr +++| PROC RTIME; # GET TIME SINCE DEADSTART # 06236 M00S05864.exdrvr +++| PROC SENDMSG; # SEND M860 MESSAGE # 06237 M00S05865.exdrvr +++| PROC ZFILL; # ZERO-FILL BUFFER # 06238 M00S05866.exdrvr +++| END 06239 M00S05867.exdrvr +++| 06240 M00S05868.exdrvr +++|# 06241 M00S05869.exdrvr +++|**** PROC XFRDATA - XREF LIST END. 06242 M00S05870.exdrvr +++|# 06243 M00S05871.exdrvr +++| 06244 M00S05872.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 06245 M00S05873.exdrvr +++|*CALL,COMBFAS 06246 M00S05874.exdrvr +++|*CALL,COMBCDD 06247 M00S05875.exdrvr +++|*CALL COMBCPR 06248 M00S05876.exdrvr +++|*CALL,COMBFET 06249 M00S05877.exdrvr +++|*CALL,COMBHFC 06250 M00S05878.exdrvr +++|*CALL,COMBLRQ 06251 M00S05879.exdrvr +++|*CALL,COMBUDT 06252 M00S05880.exdrvr +++|*CALL,COMXMSC 06253 M00S05881.exdrvr +++| 06254 M00S05882.exdrvr +++| ITEM I I; # INDEX # 06255 M00S05883.exdrvr +++| 06256 M00S05884.exdrvr +++| SWITCH XFRLBL:PROCST # DRIVER REQUEST STATE # 06257 M00S05885.exdrvr +++| XFRINIT:INITIAL, # INITIAL STATE # 06258 M00S05886.exdrvr +++| XFRMNVL:CONT1, # CONTINUATION 1 # 06259 M00S05887.exdrvr +++| XFRPDAT:CONT2, # CONTINUATION 2 # 06260 M00S05888.exdrvr +++| XFRINCR:CONT3, # CONTINUATION 3 # 06261 M00S05889.exdrvr +++| XFRUNLD:CONT4, # CONTINUATION 4 # 06262 M00S05890.exdrvr +++| XFRRESP:CONT5; # CONTINUATION 5 # 06263 M00S05891.exdrvr +++| CONTROL EJECT; 06264 M00S05892.exdrvr +++| 06265 M00S05893.exdrvr +++| GOTO XFRLBL[LLR$RS[0]]; 06266 M00S05894.exdrvr +++| 06267 M00S05895.exdrvr +++|# 06268 M00S05896.exdrvr +++|* INITIAL DRIVER REQUEST STATE. 06269 M00S05897.exdrvr +++|# 06270 M00S05898.exdrvr +++| 06271 M00S05899.exdrvr +++|XFRINIT: 06272 M00S05900.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06273 M00S05901.exdrvr +++| IF MBF$WORD[0] NQ 0 06274 M00S05902.exdrvr +++| THEN # DRD STILL IN USE # 06275 M00S05903.exdrvr +++| BEGIN # ABORT # 06276 M00S05904.exdrvr +++| FE$RTN[0] = "XFRDATA1."; 06277 M00S05905.exdrvr +++| GOTO XFRDATA1; 06278 M00S05906.exdrvr +++| END # ABORT # 06279 M00S05907.exdrvr +++| 06280 M00S05908.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06281 M00S05909.exdrvr +++| MBF$SAVE[0] = SAVEMOST; 06282 M00S05910.exdrvr +++| MS$MSG[0] = HFC$MVLMVR; # ASSUME READING DATA # 06283 M00S05911.exdrvr +++| LLR$RS[0] = PROCST"CONT1"; 06284 M00S05912.exdrvr +++| 06285 M00S05913.exdrvr +++|# 06286 M00S05914.exdrvr +++|* ISSUE M860 MESSAGE TO MOUNT VOLUME. 06287 M00S05915.exdrvr +++|# 06288 M00S05916.exdrvr +++| 06289 M00S05917.exdrvr +++|XFRMNVL: 06290 M00S05918.exdrvr +++| P<FETFHB> = LLR$MSFET[0]; 06291 M00S05919.exdrvr +++| FHB$UNIT[0] = D1$SUN[LLR$SMO[0]]; 06292 M00S05920.exdrvr +++| IF LLR$DRD[0] EQ 0 06293 M00S05921.exdrvr +++| THEN # UPPER DRD BEING USED # 06294 M00S05922.exdrvr +++| BEGIN # RESET # 06295 M00S05923.exdrvr +++| FHB$UNIT[0] = D0$SUN[LLR$SMO[0]]; 06296 M00S05924.exdrvr +++| END # RESET # 06297 M00S05925.exdrvr +++| 06298 M00S05926.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06299 M00S05927.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 06300 M00S05928.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06301 M00S05929.exdrvr +++| THEN # HARDWARE PROBLEM # 06302 M00S05930.exdrvr +++| BEGIN # EXIT # 06303 M00S05931.exdrvr +++| IF MS$INTER[0] NQ 0 # CIF SELECTED # 06304 M00S05932.exdrvr +++| THEN # DATA TRANSFER STOPPED # 06305 M00S05933.exdrvr +++| BEGIN # NO DATA # 06306 M00S05934.exdrvr +++| B<LLR$CIF[0],1>UD$DBACT[LLR$CU[0]] = OFF; 06307 M00S05935.exdrvr +++| END # NO DATA # 06308 M00S05936.exdrvr +++| 06309 M00S05937.exdrvr +++| IF MBF$SENT[0] 06310 M00S05938.exdrvr +++| THEN # IGNORE RESPONSES # 06311 M00S05939.exdrvr +++| BEGIN # IGNORE # 06312 M00S05940.exdrvr +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0])-1; 06313 M00S05941.exdrvr +++| # COUNT INCLUDED REWIND/UNLOAD # 06314 M00S05942.exdrvr +++| END # IGNORE # 06315 M00S05943.exdrvr +++| 06316 M00S05944.exdrvr +++| GOTO XFRDATA2; 06317 M00S05945.exdrvr +++| END # EXIT # 06318 M00S05946.exdrvr +++| 06319 M00S05947.exdrvr +++| IF MBF$SBADDR[0] EQ 0 06320 M00S05948.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 06321 M00S05949.exdrvr +++| BEGIN # RETRY # 06322 M00S05950.exdrvr +++| RETURN; 06323 M00S05951.exdrvr +++| END # RETRY # 06324 M00S05952.exdrvr +++| 06325 M00S05953.exdrvr +++| IF MS$RETCODE[0] NQ 0 06326 M00S05954.exdrvr +++| THEN # SOFTWARE ERROR # 06327 M00S05955.exdrvr +++| BEGIN # ABORT # 06328 M00S05956.exdrvr +++| FE$RTN[0] = "XFRDATA2."; 06329 M00S05957.exdrvr +++| GOTO XFRDATA1; 06330 M00S05958.exdrvr +++| END # ABORT # 06331 M00S05959.exdrvr +++| 06332 M00S05960.exdrvr +++| ZFILL(UDT$MSG,MSGLT); # CLEAR STORAGE BUFFER # 06333 M00S05961.exdrvr +++| MBF$SBADDR[0] = 0; # CLEAR SBT ENTRY ADDRESS # 06334 M00S05962.exdrvr +++| MBF$TMOUT[0] = 0; # CLEAR MESSAGE TIMEOUT # 06335 M00S05963.exdrvr +++| LLR$RS[0] = PROCST"CONT2"; 06336 M00S05964.exdrvr +++| 06337 M00S05965.exdrvr +++|# 06338 M00S05966.exdrvr +++|* PASS DATA BUFFER ADDRESS TO PP TO START DATA TRANSFER. 06339 M00S05967.exdrvr +++|# 06340 M00S05968.exdrvr +++| 06341 M00S05969.exdrvr +++|XFRPDAT: 06342 M00S05970.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06343 M00S05971.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06344 M00S05972.exdrvr +++| CALLPP(IRMDAT); 06345 M00S05973.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06346 M00S05974.exdrvr +++| THEN # HARDWARE PROBLEM # 06347 M00S05975.exdrvr +++| BEGIN # EXIT # 06348 M00S05976.exdrvr +++| GOTO XFRDATA2; 06349 M00S05977.exdrvr +++| END # EXIT # 06350 M00S05978.exdrvr +++| 06351 M00S05979.exdrvr +++| IF B<FMR$CIF[0],1>UD$DBACT[LLR$CU[0]] EQ ON ## 06352 M00S05980.exdrvr +++| AND P<FETMWB> NQ 0 # CHANNEL WAS ALLOCATED # 06353 M00S05981.exdrvr +++| THEN # DATA TRANSFER STARTED # 06354 M00S05982.exdrvr +++| BEGIN # RETRY # 06355 M00S05983.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE";# RETURN WHEN COPY COMPLETE # 06356 M00S05984.exdrvr +++| END # RETRY # 06357 M00S05985.exdrvr +++| 06358 M00S05986.exdrvr +++| RETURN; 06359 M00S05987.exdrvr +++| 06360 M00S05988.exdrvr +++|# 06361 M00S05989.exdrvr +++|* AWAIT M860-INITIATED UNLOAD MESSAGE. 06362 M00S05990.exdrvr +++|# 06363 M00S05991.exdrvr +++| 06364 M00S05992.exdrvr +++|XFRINCR: 06365 M00S05993.exdrvr +++| SLOWFOR I = 1 STEP 1 UNTIL PPCBTSIZE 06366 M00S05994.exdrvr +++| DO # NOTE DATA TRANSFER COMPLETE # 06367 M00S05995.exdrvr +++| BEGIN # SCAN # 06368 M00S05996.exdrvr +++| IF LLR$MSFET[0] EQ PPU$DBADDR[I] 06369 M00S05997.exdrvr +++| THEN # REMOVE ADDRESS # 06370 M00S05998.exdrvr +++| BEGIN # CLEAR # 06371 M00S05999.exdrvr +++| PPU$DBADDR[I] = 0; 06372 M00S06000.exdrvr +++| B<LLR$CIF[0],1>UD$DBACT[LLR$CU[0]] = OFF; 06373 M00S06001.exdrvr +++| # FREE PP FOR NEXT DATA XFER # 06374 M00S06002.exdrvr +++| END # CLEAR # 06375 M00S06003.exdrvr +++| 06376 M00S06004.exdrvr +++| END # SCAN # 06377 M00S06005.exdrvr +++| 06378 M00S06006.exdrvr +++| IF LLR$DRFUL[0] 06379 M00S06007.exdrvr +++| THEN # DATA TRANSFER ERROR # 06380 M00S06008.exdrvr +++| BEGIN # EXIT #
Line S00143 Modification History | |
---|---|
M01 (Added by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 06381 M01S00143.mse1 +++| LLR$SCIF[0] = LLR$CIF[0]; # SAVE TO DECIDE IF DRD GOES OFF # 06382 M01S00144.mse1 +++| LLR$SCU[0] = LLR$CU[0]; 06383 M00S06009.exdrvr +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0])-1; 06384 M00S06010.exdrvr +++| GOTO XFRDATA2; # DO NOT EXPECT REWIND/UNLOAD # 06385 M00S06011.exdrvr +++| END # EXIT # 06386 M00S06012.exdrvr +++| 06387 M00S06013.exdrvr +++| RTIME(RTIMESTAT); # RESET MESSAGE TIMEOUT # 06388 M00S06014.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06389 M00S06015.exdrvr +++| MBF$TMOUT[0] = RTIMSECS[0]; 06390 M00S06016.exdrvr +++| LLR$RS[0] = PROCST"CONT4"; 06391 M00S06017.exdrvr +++| 06392 M00S06018.exdrvr +++|XFRUNLD: 06393 M00S06019.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06394 M00S06020.exdrvr +++| SENDMSG; # AWAIT UNLOAD MESSAGE # 06395 M00S06021.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06396 M00S06022.exdrvr +++| THEN # RESPONSE TIMED OUT # 06397 M00S06023.exdrvr +++| BEGIN # EXIT # 06398 M00S06024.exdrvr +++| GOTO XFRDATA2; 06399 M00S06025.exdrvr +++| END # EXIT # 06400 M00S06026.exdrvr +++| 06401 M00S06027.exdrvr +++| IF MBF$SBADDR[0] EQ 0 06402 M00S06028.exdrvr +++| THEN # MESSAGE NOT YET RECEIVED # 06403 M00S06029.exdrvr +++| BEGIN # RETRY # 06404 M00S06030.exdrvr +++| RETURN; 06405 M00S06031.exdrvr +++| END # RETRY # 06406 M00S06032.exdrvr +++| 06407 M00S06033.exdrvr +++| IF LLR$PRCNME[0] EQ REQTYP4"CPY$DA" # VOLUME DESTAGE # 06408 M00S06034.exdrvr +++| THEN # RETURN STATISTICS # 06409 M00S06035.exdrvr +++| BEGIN # STATS # 06410 M00S06036.exdrvr +++| LLR$LT$ST[0] = MS$PARM1A[0]; # LAST STRIPE WRITTEN # 06411 M00S06037.exdrvr +++| LLR$LOG$ST[0] = MS$PARM2[0]; # LOGICAL STRIPE POSITION # 06412 M00S06038.exdrvr +++| END # STATS # 06413 M00S06039.exdrvr +++| 06414 M00S06040.exdrvr +++| MBF$SENT[0] = FALSE; 06415 M00S06041.exdrvr +++| MS$MSG$R[0] = TRUE; # SET AS UNLOAD RESPONSE # 06416 M00S06042.exdrvr +++| LLR$RS[0] = PROCST"CONT5"; 06417 M00S06043.exdrvr +++| 06418 M00S06044.exdrvr +++|# 06419 M00S06045.exdrvr +++|* ISSUE RESPONSE TO M860-INITIATED UNLOAD MESSAGE. 06420 M00S06046.exdrvr +++|# 06421 M00S06047.exdrvr +++| 06422 M00S06048.exdrvr +++|XFRRESP: 06423 M00S06049.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06424 M00S06050.exdrvr +++| SENDMSG; # SEND UNLOAD RESPONSE # 06425 M00S06051.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"OK4" # HARDWARE GOOD # 06426 M00S06052.exdrvr +++| AND NOT MBF$SENT[0] 06427 M00S06053.exdrvr +++| THEN # RESPONSE NOT YET SENT # 06428 M00S06054.exdrvr +++| BEGIN # RETRY # 06429 M00S06055.exdrvr +++| RETURN; 06430 M00S06056.exdrvr +++| END # RETRY # 06431 M00S06057.exdrvr +++| 06432 M00S06058.exdrvr +++|XFRDATA2: 06433 M00S06059.exdrvr +++| IF MBF$SBADDR[0] NQ 0 06434 M00S06060.exdrvr +++| THEN # CLEAR SBT ENTRY # 06435 M00S06061.exdrvr +++| BEGIN # CLEAR # 06436 M00S06062.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 06437 M00S06063.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 06438 M00S06064.exdrvr +++| END # CLEAR # 06439 M00S06065.exdrvr +++| 06440 M00S06066.exdrvr +++| IF NOT LLR$DRFUL[0] 06441 M00S06067.exdrvr +++| THEN # DO NOT ISSUE FORCED-STORE # 06442 M00S06068.exdrvr +++| BEGIN # NORMAL # 06443 M00S06069.exdrvr +++| MBF$WORD[0] = 0; # STOP *STRCART* FROM FORCING # 06444 M00S06070.exdrvr +++| END # NORMAL # 06445 M00S06071.exdrvr +++| 06446 M00S06072.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 06447 M00S06073.exdrvr +++| RETURN; 06448 M00S06074.exdrvr +++| 06449 M00S06075.exdrvr +++|XFRDATA1: 06450 M00S06076.exdrvr +++| MESSAGE(FEMSG,UDFL1); 06451 M00S06077.exdrvr +++| ABORT; 06452 M00S06078.exdrvr +++| END # XFRDATA # 06453 M00S06079.exdrvr +++| 06454 M00S06080.exdrvr +++| TERM
cdc/nos2.source/opl.opl871/deck/exdrvr.003.txt ยท Last modified: by 127.0.0.1