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