cdc:nos2.source:opl.opl871:deck:exdrvr.003
Deck EXDRVR Part 003
7 Modifications
Listing Sections
- Deck EXDRVR Start
- Deck EXDRVR Part 1 (Line 1628)
- Deck EXDRVR Part 2 (Line 2758)
- Deck EXDRVR Part 3 (Line 4749)
Source
Seq # *Modification Id* Act ----------------------------+ 04749 M01S04523.exdrvr +++| MS$MSG$R[0] = TRUE; # SET AS RESPONSE # 04750 M01S04524.exdrvr +++| MS$ASS$DT[0] = 0; # SEND BACK MESSAGE ONLY # 04751 M01S04525.exdrvr +++| MS$CU[0] = FMR$CU[0]; # SAVE CU ORDINAL # 04752 M01S04526.exdrvr +++| FMR$ELCNT[0] = FMR$ELCNT[0] + 1; # COUNT ERROR LOG RESPONSES # 04753 M01S04527.exdrvr +++| RETURN; 04754 M01S04528.exdrvr +++| END # BML # 04755 M01S04529.exdrvr +++| 04756 M01S04530.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # CSN/DRD IN USE # 04757 M01S04531.exdrvr +++| AND MS$MSG[0] NQ HFC$STCRNF # RETRY AS NORMAL STORE # 04758 M01S00042.mse1 +++| AND MS$MSG[0] NQ HFC$STCRNV # IN CASE RCVY FROM *ACQ* ERROR # 04759 M01S04532.exdrvr +++| THEN # SOFTWARE ERROR # 04760 M01S04533.exdrvr +++| BEGIN # ABORT # 04761 M01S04534.exdrvr +++| FE$RTN[0] = "PROCMRB4."; 04762 M01S04535.exdrvr +++| GOTO PROCMRB1; 04763 M01S04536.exdrvr +++| END # ABORT # 04764 M01S04537.exdrvr +++| 04765 M01S04538.exdrvr +++| IF MSGCNT(FMR$CIF[0],FMR$CU[0]) EQ 0 04766 M01S04539.exdrvr +++| THEN # THIS RESPONSE TIMED OUT # 04767 M01S04540.exdrvr +++| BEGIN # THROW # 04768 M01S04541.exdrvr +++| GOTO PROCMRB2; # ORIGINAL MESSAGE TIMED OUT # 04769 M01S04542.exdrvr +++| END # THROW # 04770 M01S04543.exdrvr +++| 04771 M01S04544.exdrvr +++|# 04772 M01S04545.exdrvr +++|* LOCATE THE UDT MESSAGE BUFFER ASSOCIATED WITH THE 04773 M01S04546.exdrvr +++|* INCOMING RESPONSE. 04774 M01S04547.exdrvr +++|# 04775 M01S04548.exdrvr +++| 04776 M01S04549.exdrvr +++| P<MBFHDR> = LOC(UD$MSG[MS$MSQN$CN[0]]) - 1; # ASSUME CU MSG # 04777 M01S04550.exdrvr +++| IF MS$MSQN$D0[0] 04778 M01S04551.exdrvr +++| THEN # DRD 0 MESSAGE # 04779 M01S04552.exdrvr +++| BEGIN # DRD 0 # 04780 M01S04553.exdrvr +++| P<MBFHDR> = LOC(D0$MSG[MS$MSQN$CN[0]]) - 1; 04781 M01S04554.exdrvr +++| END # DRD 0 # 04782 M01S04555.exdrvr +++| 04783 M01S04556.exdrvr +++| IF MS$MSQN$D1[0] 04784 M01S04557.exdrvr +++| THEN # DRD 1 MESSAGE # 04785 M01S04558.exdrvr +++| BEGIN # DRD 1 # 04786 M01S04559.exdrvr +++| P<MBFHDR> = LOC(D1$MSG[MS$MSQN$CN[0]]) - 1; 04787 M01S04560.exdrvr +++| END # DRD 1 # 04788 M01S04561.exdrvr +++| 04789 M01S04562.exdrvr +++| IF MS$MSG[0] EQ HRF$CONRES 04790 M01S04563.exdrvr +++| THEN # *CURESTART* MESSAGE # 04791 M01S04564.exdrvr +++| BEGIN # LOCATE ADDRESS # 04792 M01S04565.exdrvr +++| P<MBFHDR> = LOC(UD$MSG[FMR$CU[0]]) - 1; # USE PASSED CU ORD # 04793 M01S04566.exdrvr +++| END # LOCATE ADDRESS # 04794 M01S04567.exdrvr +++| 04795 M01S04568.exdrvr +++| IF MS$MSG[0] EQ HRF$UNITRW ## 04796 M01S04569.exdrvr +++| OR MS$MSG[0] EQ HRF$FORCRW 04797 M01S04570.exdrvr +++| THEN # *UNLOAD* MESSAGE # 04798 M01S04571.exdrvr +++| BEGIN # LOCATE ADDRESS # 04799 M01S04572.exdrvr +++| P<MBFHDR> = LOC(D1$MSG[MS$DEV$SM[0]+1]) - 1; # ASSUME LOWER # 04800 M01S04573.exdrvr +++| IF NOT MS$DEV$ODD[0] 04801 M01S04574.exdrvr +++| THEN # UPPER DRD IN USE # 04802 M01S04575.exdrvr +++| BEGIN # RESET # 04803 M01S04576.exdrvr +++| P<MBFHDR> = LOC(D0$MSG[MS$DEV$SM[0]+1]) - 1; 04804 M01S04577.exdrvr +++| END # RESET # 04805 M01S04578.exdrvr +++| 04806 M01S04579.exdrvr +++| END # LOCATE ADDRESS # 04807 M01S04580.exdrvr +++| 04808 M01S04581.exdrvr +++| IF (NOT MBF$ACTIVE[0]) # NO ACTIVE MESSAGE BUFFER # 04809 M01S04582.exdrvr +++| OR MBF$SBADDR[0] NQ 0 # STILL PROCESSING LAST RESPONSE # 04810 M01S04583.exdrvr +++| THEN # MSG BUFFER FIELDS NOT READY # 04811 M01S04584.exdrvr +++| BEGIN # ABORT # 04812 M01S04585.exdrvr +++| GOTO PROCMRB2; 04813 M01S04586.exdrvr +++| END # ABORT # 04814 M01S04587.exdrvr +++| 04815 M01S04588.exdrvr +++| MBF$SBADDR[0] = P<UDT$MSG>; # SET STORAGE BUF ADDR #
Line S04589 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 04816 M02S04589.mse1 ---| MSGCNT(FMR$CIF[0],FMR$CU[0]) = MSGCNT(FMR$CIF[0],FMR$CU[0]) - 1;
Line S04590 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 04817 M02S04590.mse1 ---| # DECREMENT CHANNEL MSG COUNT # 04818 M01S04591.exdrvr +++| IF MS$MSG[0] GQ HFC$RCLBP0 # *READCRTLBL* MESSAGE # 04819 M01S04592.exdrvr +++| AND MS$MSG[0] LQ HFC$RCLBP9 ## 04820 M01S04593.exdrvr +++| AND MS$ASS$DT[0] NQ 0 04821 M01S04594.exdrvr +++| THEN # CARTRIDGE LABEL FOLLOWS MSG # 04822 M01S04595.exdrvr +++| BEGIN # GET LABEL # 04823 M01S04596.exdrvr +++| ASSOCDATA = ((MS$ASS$DT[0]*2)+14)/15; 04824 M01S04597.exdrvr +++| IF ASSOCDATA GR LABLEN 04825 M01S04598.exdrvr +++| THEN # COULD BE CE LABEL # 04826 M01S04599.exdrvr +++| BEGIN # CLEAR # 04827 M01S04600.exdrvr +++| MS$ASS$DT[0] = 0; # TREAT LIKE NO-LABEL # 04828 M01S04601.exdrvr +++| MS$RETCODE[0] = HRC$NOLAB; 04829 M01S04602.exdrvr +++| RETURN; 04830 M01S04603.exdrvr +++| END # CLEAR # 04831 M01S04604.exdrvr +++| 04832 M01S04605.exdrvr +++| GDATA(FETMRB,LABEL$CART,ASSOCDATA,STAT); 04833 M01S04606.exdrvr +++| IF STAT NQ 0 04834 M01S04607.exdrvr +++| THEN # ERROR IN READING LABEL # 04835 M01S04608.exdrvr +++| BEGIN # ABORT # 04836 M01S04609.exdrvr +++| FE$RTN[0] = "PROCMRB7."; 04837 M01S04610.exdrvr +++| GOTO PROCMRB1; 04838 M01S04611.exdrvr +++| END # ABORT # 04839 M01S04612.exdrvr +++| 04840 M01S04613.exdrvr +++| END # GET LABEL # 04841 M01S04614.exdrvr +++| 04842 M01S04615.exdrvr +++| IF MS$MSG[0] GQ HFC$DBLD0 ## 04843 M01S04616.exdrvr +++| AND MS$MSG[0] LQ HFC$DBLD7 04844 M01S04617.exdrvr +++| THEN # SEND BUFFERED LOG TO BML # 04845 M01S04618.exdrvr +++| BEGIN # BML # 04846 M01S04619.exdrvr +++| BMLOG; 04847 M01S04620.exdrvr +++| END # BML # 04848 M01S04621.exdrvr +++| 04849 M01S04622.exdrvr +++| IF MS$MSG[0] EQ HFC$RDRAW 04850 M01S04623.exdrvr +++| THEN # FINISH RAW DATA BUF PROCESSING # 04851 M01S04624.exdrvr +++| BEGIN # FINISH RAW # 04852 M01S04625.exdrvr +++| P<FETFHB> = FMR$RDBA[0] - MSGLT - RFHBL; # GET DATA BUF ADDR # 04853 M01S04626.exdrvr +++| FMR$RDBA[0] = 0; # NO RAW DATA EXPECTED # 04854 M01S04627.exdrvr +++| IF MS$ASS$DT[0] NQ 0 04855 M01S04628.exdrvr +++| THEN # RAW DATA READ OK # 04856 M01S04629.exdrvr +++| BEGIN # OK # 04857 M01S04630.exdrvr +++| FHB$IN[0] = FHB$FRST[0] + MSGLT + RWDATA; 04858 M01S04631.exdrvr +++| END # OK # 04859 M01S04632.exdrvr +++| 04860 M01S04633.exdrvr +++| ELSE # STRIPE HAS NO DATA # 04861 M01S04634.exdrvr +++| BEGIN # NONE # 04862 M01S04635.exdrvr +++| FHB$IN[0] = FHB$FRST[0] + MSGLT; # COUNT MSG ONLY # 04863 M01S04636.exdrvr +++| END # NONE # 04864 M01S04637.exdrvr +++| 04865 M01S04638.exdrvr +++| FHB$LOCK[0] = TRUE; # SET DATA TRANSFER COMPLETE # 04866 M01S04639.exdrvr +++| END # FINISH RAW # 04867 M01S04640.exdrvr +++| 04868 M01S04641.exdrvr +++| RETURN; 04869 M01S04642.exdrvr +++| 04870 M01S04643.exdrvr +++|PROCMRB1: 04871 M01S04644.exdrvr +++| MESSAGE(FEMSG,UDFL1); # ABORT PROCESSING # 04872 M01S04645.exdrvr +++| ABORT; 04873 M01S04646.exdrvr +++| 04874 M01S04647.exdrvr +++|PROCMRB2: 04875 M01S04648.exdrvr +++| IF ASSOCDATA NQ 0 ## 04876 M01S04649.exdrvr +++| AND MS$MSG[0] NQ HFC$RDRAW # RAW DATA ALREADY SENT # 04877 M01S04650.exdrvr +++| THEN # THROW ASSOCIATED DATA # 04878 M01S04651.exdrvr +++| BEGIN # THROW # 04879 M01S04652.exdrvr +++| DATASIZE = DBLEN; 04880 M01S04653.exdrvr +++| REPEAT WHILE ASSOCDATA GR 0 04881 M01S04654.exdrvr +++| DO # READ DATA FROM FET BUFFER # 04882 M01S04655.exdrvr +++| BEGIN # READ # 04883 M01S04656.exdrvr +++| IF ASSOCDATA LS DBLEN 04884 M01S04657.exdrvr +++| THEN # LAST DATA PORTION # 04885 M01S04658.exdrvr +++| BEGIN # RESET # 04886 M01S04659.exdrvr +++| DATASIZE = ASSOCDATA; # READ SMALL BLOCK # 04887 M01S04660.exdrvr +++| END # RESET # 04888 M01S04661.exdrvr +++| 04889 M01S04662.exdrvr +++| GDATA(FETMRB,DBUF,DATASIZE,STAT); 04890 M01S04663.exdrvr +++| IF STAT NQ 0 04891 M01S04664.exdrvr +++| THEN # DATA READ ERROR # 04892 M01S04665.exdrvr +++| BEGIN # ABORT # 04893 M01S04666.exdrvr +++| FE$RTN[0] = "PROCMRB8."; 04894 M01S04667.exdrvr +++| GOTO PROCMRB1; 04895 M01S04668.exdrvr +++| END # ABORT # 04896 M01S04669.exdrvr +++| 04897 M01S04670.exdrvr +++| ASSOCDATA = ASSOCDATA - DATASIZE; # COUNT DATA REMOVED # 04898 M01S04671.exdrvr +++| END # READ # 04899 M01S04672.exdrvr +++| 04900 M01S04673.exdrvr +++| END # THROW # 04901 M01S04674.exdrvr +++| 04902 M01S04675.exdrvr +++| ZFILL(UDT$MSG,MSGLT); # THROW AWAY MESSAGE # 04903 M01S04676.exdrvr +++| RETURN; 04904 M01S04677.exdrvr +++| END # PROCMRB # 04905 M01S04678.exdrvr +++| 04906 M01S04679.exdrvr +++| TERM 04907 M01S04680.exdrvr +++|PROC RESTCU; 04908 M01S04681.exdrvr +++|# TITLE RESTCU - PERFORM CONTROLLER RESTART PROCESSING. # 04909 M01S04682.exdrvr +++| 04910 M01S04683.exdrvr +++| BEGIN # RESTCU # 04911 M01S04684.exdrvr +++| 04912 M01S04685.exdrvr +++|# 04913 M01S04686.exdrvr +++|** RESTCU - PERFORM CONTROLLER RESTART PROCESSING. 04914 M01S04687.exdrvr +++|*
Line S04688 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 04915 M02S04688.exdrvr2 ---|* *RESTCU* PROCESSES M860 CONTROLLER STATUS CHANGES. IF A
Line S04689 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 04916 M02S04689.exdrvr2 ---|* CONTROLLER IS BEING TURNED ON, ALL M860 MESSAGES NEEDED TO
Line S04690 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 04917 M02S04690.exdrvr2 ---|* INITIALIZE IT ARE SENT TO IT. 04918 M01S00131.exdrvr2 +++|* *RESTCU* PROCESSES M860 CONTROLLER STATUS CHANGES. ALL M860 04919 M01S00132.exdrvr2 +++|* MESSAGES NEEDED FOR CONTROLLER INITIALIZATION ARE SENT. 04920 M01S04691.exdrvr +++|* 04921 M01S04692.exdrvr +++|* PROC RESTCU 04922 M01S04693.exdrvr +++|* 04923 M01S04694.exdrvr +++|* ENTRY P<LLRQ> = *DRQUEUE* ENTRY ADDRESS. 04924 M01S04695.exdrvr +++|* 04925 M01S04696.exdrvr +++|* EXIT THE *DRQUEUE* ENTRY REQUEST STATE FIELD HAS BEEN 04926 M01S04697.exdrvr +++|* UPDATED TO INDICATE WHERE SUBSEQUENT PROCESSING OF 04927 M01S04698.exdrvr +++|* THIS REQUEST IS TO CONTINUE. 04928 M01S04699.exdrvr +++|* 04929 M01S04700.exdrvr +++|* MESSAGES *EXEC ABNORMAL, RESTCU1.* - UDT MESSAGE BUFFER STILL 04930 M01S04701.exdrvr +++|* IN USE. 04931 M01S04702.exdrvr +++|* 04932 M01S04703.exdrvr +++|* *EXEC ABNORMAL, RESTCU2.* - THE NEXT M860 CONTROLLER 04933 M01S04704.exdrvr +++|* INITIALIZATION FUNCTION 04934 M01S04705.exdrvr +++|* WAS NOT FOUND IN THE 04935 M01S04706.exdrvr +++|* FUNCTION LIST. 04936 M01S04707.exdrvr +++|* 04937 M01S04708.exdrvr +++|* NOTES THIS IS A PSEUDO-REENTRANT PROCEDURE. 04938 M01S04709.exdrvr +++|# 04939 M01S04710.exdrvr +++| 04940 M01S04711.exdrvr +++| 04941 M01S04712.exdrvr +++|# 04942 M01S04713.exdrvr +++|**** PROC RESTCU - XREF LIST BEGIN. 04943 M01S04714.exdrvr +++|# 04944 M01S04715.exdrvr +++| 04945 M01S04716.exdrvr +++| XREF 04946 M01S04717.exdrvr +++| BEGIN 04947 M01S04718.exdrvr +++| PROC ABORT; # ABORT # 04948 M01S04719.exdrvr +++| PROC DOWNCU; # DOWN CONTROLLER # 04949 M01S04720.exdrvr +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 04950 M01S04721.exdrvr +++| PROC SENDMSG; # SEND M860 MESSAGE # 04951 M01S04722.exdrvr +++| FUNC XCOD C(10); # CONVERT OCTAL TO DISPLAY-CODE # 04952 M01S04723.exdrvr +++| PROC ZFILL; # ZERO-FILL BUFFER # 04953 M01S04724.exdrvr +++| END 04954 M01S04725.exdrvr +++| 04955 M01S04726.exdrvr +++|# 04956 M01S04727.exdrvr +++|**** PROC RESTCU - XREF LIST END. 04957 M01S04728.exdrvr +++|# 04958 M01S04729.exdrvr +++| 04959 M01S04730.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 04960 M01S04731.exdrvr +++|*CALL,COMBFAS 04961 M01S04732.exdrvr +++|*CALL,COMBCPR 04962 M01S04733.exdrvr +++|*CALL,COMBFET 04963 M01S04734.exdrvr +++|*CALL,COMBHFC 04964 M01S04735.exdrvr +++|*CALL,COMBLRQ 04965 M01S04736.exdrvr +++|*CALL,COMBUDT 04966 M01S04737.exdrvr +++|*CALL,COMXCTF 04967 M01S04738.exdrvr +++|*CALL,COMXMSC 04968 M01S04739.exdrvr +++| 04969 M01S04740.exdrvr +++| DEF MSGNUMM1 #7#; # NUMBER OF CU MSGS TO SEND - 1 # 04970 M01S04741.exdrvr +++| 04971 M01S04742.exdrvr +++| ITEM CORD U; # TEMP CU ORDINAL # 04972 M01S04743.exdrvr +++| ITEM I I; # INDEX # 04973 M01S04744.exdrvr +++| 04974 M01S04745.exdrvr +++|# 04975 M01S04746.exdrvr +++|* THIS ARRAY DEFINES THE ORDER TO ISSUE CONTROLLER MESSAGES. 04976 M01S04747.exdrvr +++|# 04977 M01S04748.exdrvr +++| 04978 M01S04749.exdrvr +++| ARRAY NEXTMSG [0:MSGNUMM1] S(1); # NEXT MESSAGE TO ISSUE # 04979 M01S04750.exdrvr +++| BEGIN 04980 M01S04751.exdrvr +++| ITEM NEXTFTN U(00,00,60) = [HFC$RESCON, ## 04981 M01S04752.exdrvr +++| HFC$SETMAS, ## 04982 M01S04753.exdrvr +++| HFC$STDATM, ## 04983 M01S04754.exdrvr +++| HFC$STERLN]; 04984 M01S04755.exdrvr +++| END 04985 M01S04756.exdrvr +++| 04986 M01S04757.exdrvr +++| SWITCH RESTARTLBL:PROCST # DRIVER REQUEST STATE # 04987 M01S04758.exdrvr +++| RESINIT:INITIAL, # INITIAL STATE # 04988 M01S04759.exdrvr +++| RESMSGE:CONT1; # CONTINUATION 1 # 04989 M01S04760.exdrvr +++| CONTROL EJECT; 04990 M01S04761.exdrvr +++| 04991 M01S04762.exdrvr +++| GOTO RESTARTLBL[LLR$RS[0]]; 04992 M01S04763.exdrvr +++| 04993 M01S04764.exdrvr +++|# 04994 M01S04765.exdrvr +++|* INITIAL DRIVER REQUEST STATE. 04995 M01S04766.exdrvr +++|# 04996 M01S04767.exdrvr +++| 04997 M01S04768.exdrvr +++|RESINIT:
Line S04769 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 04998 M02S04769.exdrvr2 ---| IF NOT UD$CUON[LLR$CU[0]]
Line S04770 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 04999 M02S04770.exdrvr2 ---| THEN # CONTROLLER GOING OFF #
Line S04771 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05000 M02S04771.exdrvr2 ---| BEGIN # OFF #
Line S04772 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05001 M02S04772.exdrvr2 ---| P<FETMWB> = 0; # DO NOT DISPLAY A CHANNEL #
Line S04773 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05002 M02S04773.exdrvr2 ---| DOWNCU(LLR$CU[0]); # DOWN CONTROLLER #
Line S04774 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05003 M02S04774.exdrvr2 ---| DRVRACTIVE = TRUE;
Line S04775 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05004 M02S04775.exdrvr2 ---| LLR$RS[0] = PROCST"COMPLETE";
Line S04776 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05005 M02S04776.exdrvr2 ---| RETURN;
Line S04777 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05006 M02S04777.exdrvr2 ---| END # OFF #
Line S04778 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05007 M02S04778.exdrvr2 ---| 05008 M01S04779.exdrvr +++| P<MBFHDR> = LOC(UD$MSG[LLR$CU[0]]) - 1; 05009 M01S04780.exdrvr +++| IF MBF$WORD[0] NQ 0 05010 M01S04781.exdrvr +++| THEN # LAST MESSAGE NOT PROCESSED # 05011 M01S04782.exdrvr +++| BEGIN # ABORT # 05012 M01S04783.exdrvr +++| FE$RTN[0] = "RESTCU1."; 05013 M01S04784.exdrvr +++| GOTO RESTCU1; 05014 M01S04785.exdrvr +++| END # ABORT # 05015 M01S04786.exdrvr +++| 05016 M01S04787.exdrvr +++| IF CURESERVED 05017 M01S04788.exdrvr +++| THEN # ANOTHER CU INITIALIZING # 05018 M01S04789.exdrvr +++| BEGIN # WAIT # 05019 M01S04790.exdrvr +++| RETURN; # INITIALIZE CU-S ONE AT A TIME # 05020 M01S04791.exdrvr +++| END # WAIT # 05021 M01S04792.exdrvr +++| 05022 M01S04793.exdrvr +++| CURESERVED = TRUE; # ONLY THIS CU INITIALIZING # 05023 M01S04794.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 05024 M01S04795.exdrvr +++| MS$MSG[0] = HFC$RESCON; # *RESTART* FUNCTION # 05025 M01S04796.exdrvr +++| UD$SAVE[LLR$CU[0]] = SAVEPART; 05026 M01S04797.exdrvr +++| LLR$RS[0] = PROCST"CONT1"; # SET NEW REQUEST STATE # 05027 M01S04798.exdrvr +++| 05028 M01S04799.exdrvr +++|# 05029 M01S04800.exdrvr +++|* ISSUE MESSAGES TO INITIALIZE CONTROLLER. 05030 M01S04801.exdrvr +++|# 05031 M01S04802.exdrvr +++| 05032 M01S04803.exdrvr +++|RESMSGE: 05033 M01S04804.exdrvr +++| IF INITIALIZE ## 05034 M01S04805.exdrvr +++| AND DRYUP 05035 M01S04806.exdrvr +++| THEN # FORCE QUICK EXIT # 05036 M01S04807.exdrvr +++| BEGIN # EXIT # 05037 M01S04808.exdrvr +++| RETURN; 05038 M01S04809.exdrvr +++| END # EXIT # 05039 M01S04810.exdrvr +++| 05040 M01S04811.exdrvr +++| P<MBFHDR> = LOC(UD$MSG[LLR$CU[0]]) - 1;
Line S04812 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05041 M02S04812.exdrvr2 ---| IF NOT UD$CUON[LLR$CU[0]]
Line S04813 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05042 M02S04813.exdrvr2 ---| THEN # THROW OUT REQUEST #
Line S04814 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05043 M02S04814.exdrvr2 ---| BEGIN # THROW #
Line S04815 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05044 M02S04815.exdrvr2 ---| MBF$TMOUT[0] = 1; # FORCE RELEASE BY TIMEOUT FAKE #
Line S04816 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05045 M02S04816.exdrvr2 ---| END # THROW #
Line S04817 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05046 M02S04817.exdrvr2 ---| 05047 M01S04818.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 05048 M01S04819.exdrvr +++| IF (UD$SBADDR[LLR$CU[0]] EQ 0 # RESPONSE NOT YET RECEIVED # 05049 M01S04820.exdrvr +++| OR NOT UD$MSGSENT[LLR$CU[0]])# CURESTART RESPONSE NOT SENT # 05050 M01S04821.exdrvr +++| AND UD$MBACT[LLR$CU[0]] # *START ERROR LOG* NOT DONE # 05051 M01S04822.exdrvr +++| AND LLR$DR[0] EQ RESPTYP4"OK4" # GOOD HARDWARE # 05052 M01S04823.exdrvr +++| THEN # MESSAGE TRANSFER NOT COMPLETE # 05053 M01S04824.exdrvr +++| BEGIN # TRY LATER # 05054 M01S04825.exdrvr +++| RETURN; 05055 M01S04826.exdrvr +++| END # TRY LATER # 05056 M01S04827.exdrvr +++| 05057 M01S04828.exdrvr +++| IF MS$MSG[0] EQ HRF$CONRES # RESPONSE BIT NOT YET SET # 05058 M01S04829.exdrvr +++| THEN # SEND CURESTART RESPONSE TO CU # 05059 M01S04830.exdrvr +++| BEGIN # PRESET # 05060 M01S04831.exdrvr +++| MBF$TMOUT[0] = 0; # RESET TIMEOUT # 05061 M01S04832.exdrvr +++| MS$MSG$R[0] = TRUE; # SET RESPONSE FLAG # 05062 M01S04833.exdrvr +++| MBF$SENT[0] = FALSE; # FORCE RESPONSE TO BE SENT # 05063 M01S04834.exdrvr +++| RETURN; 05064 M01S04835.exdrvr +++| END # PRESET # 05065 M01S04836.exdrvr +++| 05066 M01S04837.exdrvr +++| IF UD$SBADDR[LLR$CU[0]] NQ 0 # RESPONSE RECEIVED # 05067 M01S04838.exdrvr +++| OR LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" # BAD HARDWARE # 05068 M01S04839.exdrvr +++| THEN # PRESET FOR NEXT MESSAGE # 05069 M01S04840.exdrvr +++| BEGIN # CLEAR # 05070 M01S04841.exdrvr +++| IF MBF$SBADDR[0] NQ 0 05071 M01S04842.exdrvr +++| THEN # CURESTART RESPONSE NOT SENT # 05072 M01S04843.exdrvr +++| BEGIN # THROW # 05073 M01S04844.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0];# CLEAR SBT ENTRY # 05074 M01S04845.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 05075 M01S04846.exdrvr +++| END # THROW # 05076 M01S04847.exdrvr +++| 05077 M01S04848.exdrvr +++| MBF$WORD[0] = 0; # CLEAR MESSAGE STATUS # 05078 M01S04849.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 05079 M01S04850.exdrvr +++| THEN # RETURN LLRQ # 05080 M01S04851.exdrvr +++| BEGIN # EXIT # 05081 M01S04852.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); # LOCATE WRITE FET # 05082 M01S04853.exdrvr +++| IF MWB$ADDR[LLR$CIF[0]] NQ 0 05083 M01S04854.exdrvr +++| THEN # CHANNEL WAS ALLOCATED # 05084 M01S04855.exdrvr +++| BEGIN # EXISTS # 05085 M01S04856.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 05086 M01S04857.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; # KEEP FET PAIRS TOGETHER # 05087 M01S04858.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 05088 M01S04859.exdrvr +++| IF UD$CUON[LLR$CU[0]] AND FMW$CHON[0] 05089 M01S04860.exdrvr +++| THEN # NOT DUE TO DEVICE DRIVER ERROR # 05090 M01S04861.exdrvr +++| BEGIN # OFF # 05091 M01S04862.exdrvr +++| DOWNCU(LLR$CU[0]); # DOWN CONTROLLER # 05092 M01S04863.exdrvr +++| END # OFF # 05093 M01S04864.exdrvr +++| 05094 M01S04865.exdrvr +++| END # EXISTS # 05095 M01S04866.exdrvr +++| 05096 M01S04867.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 05097 M01S04868.exdrvr +++| RETURN; 05098 M01S04869.exdrvr +++| END # EXIT # 05099 M01S04870.exdrvr +++| 05100 M01S04871.exdrvr +++| P<UDT$MSG> = LOC(UD$MSG[LLR$CU[0]]); 05101 M01S04872.exdrvr +++| IF MS$MSG[0] EQ HFC$STERLG ## 05102 M01S04873.exdrvr +++| OR MS$MSG[0] EQ HFC$STERDR 05103 M01S04874.exdrvr +++| THEN # MULTIPLE MESSAGE NOT COMPLETED # 05104 M01S04875.exdrvr +++| BEGIN # CONTINUE # 05105 M01S04876.exdrvr +++| MBF$SAVE[0] = SAVENONE; 05106 M01S04877.exdrvr +++| MS$DRDN[0] = MS$DRDN[0] + 1; # CHECK NEXT CIF/DRD # 05107 M01S04878.exdrvr +++| RETURN; 05108 M01S04879.exdrvr +++| END # CONTINUE # 05109 M01S04880.exdrvr +++| 05110 M01S04881.exdrvr +++| END # CLEAR # 05111 M01S04882.exdrvr +++| 05112 M01S04883.exdrvr +++| P<UDT$MSG> = LOC(UD$MSG[LLR$CU[0]]); # RESET BASED ARRAY # 05113 M01S04884.exdrvr +++| IF MS$MSG[0] EQ HFC$STERLN 05114 M01S04885.exdrvr +++| THEN # *SET ERROR LOG LENGTH* ISSUED # 05115 M01S04886.exdrvr +++| BEGIN # EXIT # 05116 M01S04887.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 05117 M01S04888.exdrvr +++| CORD = XCOD(UD$ESTO[LLR$CU[0]]); # SET EST ORDINAL # 05118 M01S04889.exdrvr +++| CU$ORD[0] = C<6,4>CORD; 05119 M01S04890.exdrvr +++| CU$STAT[0] = CUON; 05120 M01S04891.exdrvr +++| MESSAGE(CUMSG,SYSUDF1); # SEND CU ON MESSAGE # 05121 M01S04892.exdrvr +++| RETURN; 05122 M01S04893.exdrvr +++| END # EXIT # 05123 M01S04894.exdrvr +++| 05124 M01S04895.exdrvr +++| MBF$SAVE[0] = SAVEPART; # SET FOR MOST SINGLE MESSAGES # 05125 M01S04896.exdrvr +++| IF MS$MSG[0] EQ HFC$RESCON 05126 M01S04897.exdrvr +++| THEN # RESET FOR *SETMASCHAN* # 05127 M01S04898.exdrvr +++| BEGIN # RESET # 05128 M01S04899.exdrvr +++| MBF$SAVE[0] = SAVENONE; 05129 M01S04900.exdrvr +++| END # RESET # 05130 M01S04901.exdrvr +++| 05131 M01S04902.exdrvr +++| SLOWFOR I = 0 STEP 1 UNTIL MSGNUMM1 05132 M01S04903.exdrvr +++| DO # SET UP NEXT CU MESSAGE # 05133 M01S04904.exdrvr +++| BEGIN # NEXT # 05134 M01S04905.exdrvr +++| IF NEXTFTN[I] EQ MS$MSG[0] 05135 M01S04906.exdrvr +++| THEN # MESSAGE FOUND # 05136 M01S04907.exdrvr +++| BEGIN # RESET # 05137 M01S04908.exdrvr +++| MS$MSG[0] = NEXTFTN[I+1]; # GET NEXT FUNCTION # 05138 M01S04909.exdrvr +++| RETURN; 05139 M01S04910.exdrvr +++| END # RESET # 05140 M01S04911.exdrvr +++| 05141 M01S04912.exdrvr +++| END # NEXT # 05142 M01S04913.exdrvr +++| 05143 M01S04914.exdrvr +++| FE$RTN[0] = "RESTCU2."; # NEXT MESSAGE NOT FOUND # 05144 M01S04915.exdrvr +++| 05145 M01S04916.exdrvr +++|RESTCU1: 05146 M01S04917.exdrvr +++| MESSAGE(FEMSG,UDFL1); 05147 M01S04918.exdrvr +++| ABORT; 05148 M01S04919.exdrvr +++| END # RESTCU # 05149 M01S04920.exdrvr +++| 05150 M01S04921.exdrvr +++| TERM 05151 M01S04922.exdrvr +++|PROC SENDMSG; 05152 M01S04923.exdrvr +++|# TITLE SENDMSG - SEND M860 MESSAGE. # 05153 M01S04924.exdrvr +++| 05154 M01S04925.exdrvr +++| BEGIN # SENDMSG # 05155 M01S04926.exdrvr +++| 05156 M01S04927.exdrvr +++|# 05157 M01S04928.exdrvr +++|** SENDMSG - SEND M860 MESSAGE. 05158 M01S04929.exdrvr +++|* 05159 M01S04930.exdrvr +++|* *SENDMSG* MONITORS M860 MESSAGE PROCESSING. IT CONTROLS THE 05160 M01S04931.exdrvr +++|* PROGRESS OF AN M860 MESSAGE FROM ITS CREATION TO THE VERIFICATION 05161 M01S04932.exdrvr +++|* OF ITS INCOMING M860 RESPONSE. 05162 M01S04933.exdrvr +++|* 05163 M01S04934.exdrvr +++|* PROC SENDMSG 05164 M01S04935.exdrvr +++|* 05165 M01S04936.exdrvr +++|* ENTRY P<LLRQ> = *DRQUEUE* ENTRY ADDRESS. 05166 M01S04937.exdrvr +++|* 05167 M01S04938.exdrvr +++|* P<MBFHDR> = UDT MESSAGE BUFFER HEADER ADDRESS. 05168 M01S04939.exdrvr +++|* 05169 M01S04940.exdrvr +++|* EXIT THE M860 RESPONSE TO THE ORIGINAL M860 MESSAGE IS 05170 M01S04941.exdrvr +++|* STORED IN THE STORAGE BUFFER TABLE, AND HAS BEEN 05171 M01S04942.exdrvr +++|* VERIFIED. 05172 M01S04943.exdrvr +++|* 05173 M01S04944.exdrvr +++|* MESSAGES *EXEC ABNORMAL, SENDMSG0.* - CHANNEL MESSAGE COUNT WAS 05174 M01S04945.exdrvr +++|* ZERO WHEN AN M860 MESSAGE 05175 M01S04946.exdrvr +++|* TIMED OUT. 05176 M01S04947.exdrvr +++|* 05177 M01S04948.exdrvr +++|* *EXEC ABNORMAL, SENDMSG2.* - FATAL RETURN CODE ERROR 05178 M01S04949.exdrvr +++|* FOUND IN M860 RESPONSE. 05179 M01S04950.exdrvr +++|* 05180 M01S00043.mse1 +++|* *EXEC ABNORMAL, SENDMSG3.* - CHANNEL MESSAGE COUNT WAS 05181 M01S00044.mse1 +++|* ZERO WHEN AN M860 05182 M01S00045.mse1 +++|* RESPONSE WAS RECEIVED. 05183 M01S00046.mse1 +++|* 05184 M01S04951.exdrvr +++|* NOTES IF AN M860 RESPONSE TIMES OUT, *HARDWARE PROBLEM* 05185 M01S04952.exdrvr +++|* STATUS IS RETURNED IN THE *DRQUEUE* ENTRY, AND THE 05186 M01S04953.exdrvr +++|* CHANNEL MESSAGE COUNT IS DECREMENTED. 05187 M01S04954.exdrvr +++|# 05188 M01S04955.exdrvr +++| 05189 M01S04956.exdrvr +++| 05190 M01S04957.exdrvr +++|# 05191 M01S04958.exdrvr +++|**** PROC SENDMSG - XREF LIST BEGIN. 05192 M01S04959.exdrvr +++|# 05193 M01S04960.exdrvr +++| 05194 M01S04961.exdrvr +++| XREF 05195 M01S04962.exdrvr +++| BEGIN 05196 M01S04963.exdrvr +++| PROC ABORT; # ABORT # 05197 M01S04964.exdrvr +++| PROC CALLPP; # PASS MESSAGES/DATA TO PP # 05198 M01S04965.exdrvr +++| PROC CRMSG; # CREATE M860 MESSAGE # 05199 M01S04966.exdrvr +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 05200 M01S04967.exdrvr +++| PROC RTIME; # GET TIME SINCE DEADSTART # 05201 M01S04968.exdrvr +++| PROC ZFILL; # ZERO-FILL BUFFER # 05202 M01S04969.exdrvr +++| END 05203 M01S04970.exdrvr +++| 05204 M01S04971.exdrvr +++|# 05205 M01S04972.exdrvr +++|**** PROC SENDMSG - XREF LIST END. 05206 M01S04973.exdrvr +++|# 05207 M01S04974.exdrvr +++| 05208 M01S04975.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 05209 M01S04976.exdrvr +++|*CALL,COMBFAS 05210 M01S04977.exdrvr +++|*CALL,COMBCDD 05211 M01S04978.exdrvr +++|*CALL,COMBCPR 05212 M01S04979.exdrvr +++|*CALL,COMBFET 05213 M01S04980.exdrvr +++|*CALL,COMBHFC 05214 M01S04981.exdrvr +++|*CALL,COMBKDD 05215 M01S04982.exdrvr +++|*CALL,COMBLRQ 05216 M01S04983.exdrvr +++|*CALL,COMBUDT 05217 M01S04984.exdrvr +++|*CALL,COMXCTF 05218 M01S04985.exdrvr +++|*CALL,COMXMSC 05219 M01S04986.exdrvr +++| 05220 M01S04987.exdrvr +++| ITEM MBFTN U; # SAVE MSG BUFFER M860 FUNCTION # 05221 M01S04988.exdrvr +++| CONTROL EJECT; 05222 M01S04989.exdrvr +++| 05223 M01S04990.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; # ASSUME MESSAGE IN UDT # 05224 M01S04991.exdrvr +++| MBFTN = MS$MSG[0]; # SAVE FOR LATER COMPARE # 05225 M01S04992.exdrvr +++| IF MBF$SBADDR[0] NQ 0 05226 M01S04993.exdrvr +++| THEN # PROCESS MESSAGE IN SBT # 05227 M01S04994.exdrvr +++| BEGIN # SBT # 05228 M01S04995.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 05229 M01S04996.exdrvr +++| END # SBT # 05230 M01S04997.exdrvr +++| 05231 M01S04998.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05232 M01S04999.exdrvr +++| IF MBF$TMOUT[0] NQ 0 # AWAITING M860 RESPONSE # 05233 M01S05000.exdrvr +++| THEN # CHECK FOR CU OR CHANNEL OFF # 05234 M01S05001.exdrvr +++| BEGIN # PRESET # 05235 M01S05002.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); 05236 M01S05003.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 05237 M01S05004.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 05238 M01S05005.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 05239 M01S05006.exdrvr +++| END # PRESET # 05240 M01S05007.exdrvr +++| 05241 M01S05008.exdrvr +++| IF MBF$TMOUT[0] NQ 0 # MESSAGE EXISTS # 05242 M01S05009.exdrvr +++| AND (RTIMSECS[0] - MBF$TMOUT[0] GQ MAX$MSTO # MSG TIMED OUT # 05243 M01S05010.exdrvr +++| OR (NOT UD$CUON[LLR$CU[0]]) # CU TURNED OFF # 05244 M01S05011.exdrvr +++| OR NOT FMW$CHON[0]) # CHANNEL TURNED OFF # 05245 M01S05012.exdrvr +++| AND MBF$SBADDR[0] EQ 0 # RESPONSE NOT RECEIVED # 05246 M01S05013.exdrvr +++| AND KW$COMP[0] # SKIP IF GO NOT YET RECEIVED # 05247 M01S05014.exdrvr +++| THEN # CLEAN UP BEFORE RETURNING LLRQ # 05248 M01S05015.exdrvr +++| BEGIN # CLEAN UP # 05249 M01S05016.exdrvr +++| IF MSGCNT(LLR$CIF[0],LLR$CU[0]) EQ 0 05250 M01S05017.exdrvr +++| THEN # MESSAGE COUNT INCORRECT # 05251 M01S05018.exdrvr +++| BEGIN # ABORT # 05252 M01S05019.exdrvr +++| FE$RTN[0] = "SENDMSG0."; 05253 M01S05020.exdrvr +++| GOTO SENDMSG1; 05254 M01S05021.exdrvr +++| END # ABORT # 05255 M01S05022.exdrvr +++| 05256 M01S05023.exdrvr +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0])-1; 05257 M01S05024.exdrvr +++| # DECREMENT CHANNEL MSG COUNT # 05258 M01S05025.exdrvr +++| IF MS$MSG[0] EQ HFC$RDRAW # READING RAW DATA # 05259 M01S05026.exdrvr +++| THEN # RESET READ FET # 05260 M01S05027.exdrvr +++| BEGIN # RESET # 05261 M01S05028.exdrvr +++| FMR$RDBA[0] = 0; # REMOVE RAW DATA BUFFER ADDR # 05262 M01S05029.exdrvr +++| END # RESET # 05263 M01S05030.exdrvr +++| 05264 M01S05031.exdrvr +++| LLR$DR[0] = RESPTYP4"M86$HDW$PR"; # INDICATE HARDWARE PROBLEM # 05265 M01S05032.exdrvr +++| IF MS$MSQN$DI[0] NQ 0 # DRD MESSAGE # 05266 M01S05033.exdrvr +++| THEN # TURN DRD OFF # 05267 M01S05034.exdrvr +++| BEGIN # OFF # 05268 M01S05035.exdrvr +++| LLR$DRFUL[0] = TRUE; # FORCE STORE, IF POSSIBLE # 05269 M01S00047.mse1 +++| LLR$SCIF[0] = LLR$CIF[0]; # SAVE TO DECIDE IF DRD GOES OFF # 05270 M01S00048.mse1 +++| LLR$SCU[0] = LLR$CU[0]; 05271 M01S05036.exdrvr +++| END # OFF # 05272 M01S05037.exdrvr +++| 05273 M01S05038.exdrvr +++| RETURN; 05274 M01S05039.exdrvr +++| END # CLEAN UP # 05275 M01S05040.exdrvr +++| 05276 M01S05041.exdrvr +++| IF NOT MBF$SENT[0] 05277 M01S05042.exdrvr +++| THEN # MSG NOT ISSUED TO WRITE BUFFER # 05278 M01S05043.exdrvr +++| BEGIN # SEND # 05279 M01S05044.exdrvr +++| IF NOT MBF$ACTIVE[0] 05280 M01S05045.exdrvr +++| THEN # MESSAGE NOT CREATED # 05281 M01S05046.exdrvr +++| BEGIN # CREATE # 05282 M01S05047.exdrvr +++| CRMSG; # CREATE M860 MESSAGE # 05283 M01S05048.exdrvr +++| LLR$DR[0] = RESPTYP4"OK4"; # ASSUME RESPONSE OK # 05284 M01S05049.exdrvr +++| END # CREATE # 05285 M01S05050.exdrvr +++| 05286 M01S05051.exdrvr +++| IF NOT MBF$ACTIVE[0] ## 05287 M01S05052.exdrvr +++| AND ((MS$MSG[0] GQ HFC$CHSCIF ## 05288 M01S05053.exdrvr +++| AND MS$MSG[0] LQ HFC$CHSAIF) ## 05289 M01S05054.exdrvr +++| OR MS$MSG[0] EQ HFC$SETMAS ## 05290 M01S05055.exdrvr +++| OR MS$MSG[0] EQ HFC$STERLG ## 05291 M01S05056.exdrvr +++| OR MS$MSG[0] EQ HFC$STERDR) 05292 M01S05057.exdrvr +++| THEN # ALL SPECIAL MSGS COMPLETED # 05293 M01S05058.exdrvr +++| BEGIN # EXIT # 05294 M01S05059.exdrvr +++| RETURN; 05295 M01S05060.exdrvr +++| END # EXIT # 05296 M01S05061.exdrvr +++| 05297 M01S05062.exdrvr +++| CALLPP(IRPMSG); # SEND MSG TO WRITE BUFFER # 05298 M01S05063.exdrvr +++| IF NOT MBF$SENT[0] 05299 M01S05064.exdrvr +++| THEN # MESSAGE NOT YET SENT # 05300 M01S05065.exdrvr +++| BEGIN # TRY LATER # 05301 M01S05066.exdrvr +++| RETURN; 05302 M01S05067.exdrvr +++| END # TRY LATER # 05303 M01S05068.exdrvr +++| 05304 M01S05069.exdrvr +++| RTIME(RTIMESTAT); # PRESET MESSAGE TIMEOUT # 05305 M01S05070.exdrvr +++| MBF$TMOUT[0] = RTIMSECS[0]; 05306 M01S05071.exdrvr +++| END # SEND # 05307 M01S05072.exdrvr +++|
Line S05073 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05308 M02S05073.mse1 ---| IF MBF$SBADDR[0] EQ 0
Line S05074 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05309 M02S05074.mse1 ---| THEN # RESPONSE NOT YET RECEIVED #
Line S05075 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05310 M02S05075.mse1 ---| BEGIN # TRY LATER # 05311 M01S00049.mse1 +++| IF MBF$SBADDR[0] EQ 0 # STILL AWAITING RESPONSE # 05312 M01S00050.mse1 +++| OR MS$MSG$R[0] # NO RESPONSE EXPECTED # 05313 M01S00051.mse1 +++| THEN # NO RESPONSE TO BE CHECKED # 05314 M01S00052.mse1 +++| BEGIN # EXIT # 05315 M01S05076.exdrvr +++| RETURN;
Line S05077 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05316 M02S05077.mse1 ---| END # TRY LATER # 05317 M01S00053.mse1 +++| END # EXIT # 05318 M01S05078.exdrvr +++| 05319 M01S05079.exdrvr +++| DRVRACTIVE = TRUE; # NOTE DRIVER HAD ACTIVITY # 05320 M01S05080.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 05321 M01S05081.exdrvr +++| IF MS$MSG[0] NQ MBFTN ## 05322 M01S05082.exdrvr +++| AND (NOT MS$MSG$R[0]) # M860 RESPONSES ALREADY CHECKED # 05323 M01S05083.exdrvr +++| AND (NOT (MBFTN GQ HFC$MVLMVR # MOUNT VOLUME - UNLOAD PAIR # 05324 M01S05084.exdrvr +++| AND MBFTN LQ HFC$MVLMNW ## 05325 M01S05085.exdrvr +++| AND (MS$MSG[0] EQ HRF$UNITRW ## 05326 M01S05086.exdrvr +++| OR MS$MSG[0] EQ HRF$FORCRW))) ## 05327 M01S05087.exdrvr +++| AND NOT (MBFTN EQ HFC$RESCON # RESTART - CURESTART PAIR # 05328 M01S05088.exdrvr +++| AND MS$MSG[0] EQ HRF$CONRES) 05329 M01S05089.exdrvr +++| THEN # MESSAGE TYPE MISMATCH # 05330 M01S05090.exdrvr +++| BEGIN # THROW # 05331 M01S05091.exdrvr +++| ZFILL(UDT$MSG,MSGLT); # ASSUME THIS RESPONSE TIMED OUT # 05332 M01S05092.exdrvr +++| MBF$SBADDR[0] = 0; 05333 M01S05093.exdrvr +++| RETURN; 05334 M01S05094.exdrvr +++| END # THROW # 05335 M01S05095.exdrvr +++| 05336 M01S05096.exdrvr +++| IF ((MS$RETCODE[0] EQ HRC$CSNMIS # CSN MISMATCH #
Line S05097 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | msea023 |
Seq # *Modification Id* Act ----------------------------+ 05337 M02S05097.msea023 ---| AND MS$MSG[0] NQ HFC$ACCR) # EXPECTED ON LOAD # 05338 M01S00021.msea023 +++| AND MS$MSG[0] NQ HFC$ACCR) # POSSIBLE MAP ERROR # 05339 M01S05098.exdrvr +++| OR MS$RETCODE[0] EQ HRC$DLERR# DATA LENGTH ERROR # 05340 M01S05099.exdrvr +++| OR MS$RETCODE[0] EQ HRC$UNITAS) # UNIT ALREADY ASSIGNED # 05341 M01S05100.exdrvr +++| AND MS$MSG[0] NQ HFC$RDRAW # HANDLE THESE OUT OF EXEC # 05342 M01S05101.exdrvr +++| THEN # FATAL ERROR # 05343 M01S05102.exdrvr +++| BEGIN # ABORT # 05344 M01S05103.exdrvr +++| FE$RTN[0] = "SENDMSG2."; 05345 M01S05104.exdrvr +++| GOTO SENDMSG1; 05346 M01S05105.exdrvr +++| END # ABORT # 05347 M01S05106.exdrvr +++| 05348 M01S00054.mse1 +++| IF MSGCNT(LLR$CIF[0],LLR$CU[0]) EQ 0 05349 M01S00055.mse1 +++| THEN # MESSAGE COUNT INCORRECT # 05350 M01S00056.mse1 +++| BEGIN # ABORT # 05351 M01S00057.mse1 +++| FE$RTN[0] = "SENDMSG3."; 05352 M01S00058.mse1 +++| GOTO SENDMSG1; 05353 M01S00059.mse1 +++| END # ABORT # 05354 M01S00060.mse1 +++| 05355 M01S00061.mse1 +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0]) - 1; 05356 M01S00062.mse1 +++| # DECREMENT CHANNEL MSG COUNT # 05357 M01S05107.exdrvr +++| IF MS$RETCODE[0] EQ HRC$DRVERR # DEVICE DRIVER ERROR # 05358 M01S05108.exdrvr +++| OR MS$RETCODE[0] EQ HRC$DRVHO ## 05359 M01S05109.exdrvr +++| OR MS$RETCODE[0] EQ HRC$DRVHW ##
Line S05110 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | msea023 |
Seq # *Modification Id* Act ----------------------------+ 05360 M02S05110.msea023 ---| OR MS$RETCODE[0] EQ HRC$DRVNA 05361 M01S00022.msea023 +++| OR MS$RETCODE[0] EQ HRC$DRVNA ## 05362 M01S00023.msea023 +++| OR MS$RETCODE[0] EQ HRC$THRERR # CARTRIDGE THREADING ERRFOR # 05363 M01S05111.exdrvr +++| THEN # DRD MESSAGE ERROR # 05364 M01S05112.exdrvr +++| BEGIN # DRD # 05365 M01S05113.exdrvr +++| LLR$DR[0] = RESPTYP4"M86$HDW$PR"; 05366 M01S05114.exdrvr +++| IF MS$MSG[0] EQ HFC$WVLBUT # ASSUME WRITE ERROR INSTEAD # 05367 M01S05115.exdrvr +++| AND MS$RETCODE[0] EQ HRC$DRVERR 05368 M01S05116.exdrvr +++| THEN # LET DESTAGING TO SM CONTINUE # 05369 M01S05117.exdrvr +++| BEGIN # RESET # 05370 M01S05118.exdrvr +++| LLR$DR[0] = RESPTYP4"UN$WRT$ERR"; 05371 M01S05119.exdrvr +++| END # RESET # 05372 M01S05120.exdrvr +++| 05373 M01S05121.exdrvr +++| IF (MS$MSG[0] LS HFC$CHSCIF # NOT STATUS CHANGES # 05374 M01S05122.exdrvr +++| OR MS$MSG[0] GR HFC$CHSAIF) ## 05375 M01S05123.exdrvr +++| AND (MS$MSG[0] NQ HFC$WVLBUT # ASSUME WRITE ERROR INSTEAD # 05376 M01S05124.exdrvr +++| OR MS$RETCODE[0] NQ HRC$DRVERR) 05377 M01S05125.exdrvr +++| THEN # TRY TO REMOVE CARTRIDGE # 05378 M01S05126.exdrvr +++| BEGIN # REMOVE # 05379 M01S05127.exdrvr +++| LLR$DRFUL[0] = TRUE; # FORCE STORE, IF NOT ACQUIRE # 05380 M01S00063.mse1 +++| LLR$SCIF[0] = LLR$CIF[0]; # SAVE IN CASE OVERWRITTEN # 05381 M01S00064.mse1 +++| LLR$SCU[0] = LLR$CU[0]; 05382 M01S05128.exdrvr +++| END # REMOVE # 05383 M01S05129.exdrvr +++| 05384 M01S05130.exdrvr +++| END # DRD # 05385 M01S05131.exdrvr +++| 05386 M01S05132.exdrvr +++| RETURN; 05387 M01S05133.exdrvr +++| 05388 M01S05134.exdrvr +++|SENDMSG1: 05389 M01S05135.exdrvr +++| MESSAGE(FEMSG,UDFL1); # ABORT PROCESSING # 05390 M01S05136.exdrvr +++| ABORT; 05391 M01S05137.exdrvr +++| END # SENDMSG # 05392 M01S05138.exdrvr +++| 05393 M01S05139.exdrvr +++| TERM 05394 M01S05140.exdrvr +++|PROC SSDRVR; 05395 M01S05141.exdrvr +++|# TITLE SSDRVR - MSAS DRIVER MAIN ROUTINE. # 05396 M01S05142.exdrvr +++| 05397 M01S05143.exdrvr +++| BEGIN # SSDRVR # 05398 M01S05144.exdrvr +++| 05399 M01S05145.exdrvr +++|# 05400 M01S05146.exdrvr +++|** SSDRVR - MSAS DRIVER MAIN ROUTINE. 05401 M01S05147.exdrvr +++|* 05402 M01S05148.exdrvr +++|* *SSDRVR* IS THE INTERFACE BETWEEN *SSEXEC* AND 05403 M01S05149.exdrvr +++|* THE PRIMARY FUNCTIONS OF THE MSAS DRIVER. IT IS 05404 M01S05150.exdrvr +++|* CALLED TO BOTH PROCESS NEW REQUESTS FROM *SSEXEC*, 05405 M01S05151.exdrvr +++|* AND TO CONTINUE PROCESSING FOR THOSE REQUESTS 05406 M01S05152.exdrvr +++|* ALREADY STARTED. 05407 M01S05153.exdrvr +++|* 05408 M01S05154.exdrvr +++|* PROC SSDRVR 05409 M01S05155.exdrvr +++|* 05410 M01S05156.exdrvr +++|* ENTRY THE *DRQUEUE* CONTAINS A QUEUE OF *LLRQ* ENTRIES 05411 M01S05157.exdrvr +++|* WHICH DEFINE THE SET OF NEW REQUESTS BEING PASSED 05412 M01S05158.exdrvr +++|* FROM *SSEXEC* TO THE DRIVER. THIS QUEUE MAY 05413 M01S05159.exdrvr +++|* BE EMPTY. 05414 M01S05160.exdrvr +++|* 05415 M01S05161.exdrvr +++|* EXIT ALL DRIVER REQUESTS HAVE BEEN PROCESSED AS FAR AS 05416 M01S05162.exdrvr +++|* POSSIBLE, AND ALL COMPLETED DRIVER REQUESTS HAVE 05417 M01S05163.exdrvr +++|* BEEN RETURNED TO THE *LLRQ* READY CHAIN. AN OPERATOR 05418 M01S05164.exdrvr +++|* *N.IDLE* COMMAND DURING FULL INITIALIZATION FORCES 05419 M01S05165.exdrvr +++|* AN IMMEDIATE RETURN TO *SSEXEC*. 05420 M01S05166.exdrvr +++|* 05421 M01S05167.exdrvr +++|# 05422 M01S05168.exdrvr +++| 05423 M01S05169.exdrvr +++| 05424 M01S05170.exdrvr +++|# 05425 M01S05171.exdrvr +++|**** PROC SSDRVR - XREF LIST BEGIN. 05426 M01S05172.exdrvr +++|# 05427 M01S05173.exdrvr +++| 05428 M01S05174.exdrvr +++| XREF 05429 M01S05175.exdrvr +++| BEGIN
Line S05176 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05430 M02S05176.exdrvr2 ---| PROC ABORT; # ABORT # 05431 M01S05177.exdrvr +++| PROC ADD$LNK; # ADD ENTRY TO END OF CHAIN # 05432 M01S05178.exdrvr +++| PROC DEL$LNK; # DELETE ENTRY FROM CHAIN #
Line S05179 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05433 M02S05179.exdrvr2 ---| PROC MESSAGE; # SEND MESSAGE FROM ARRAY #
Line S05180 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05434 M02S05180.exdrvr2 ---| PROC MSG; # SEND DAYFILE MESSAGE # 05435 M01S00133.exdrvr2 +++| PROC MESSAGE; # SEND DAYFILE MESSAGE # 05436 M01S05181.exdrvr +++| PROC PPDONE; # PROCESS COMPLETED PP CALLS # 05437 M01S05182.exdrvr +++| PROC PROCDRQ; # PROCESS DRIVER REQUESTS # 05438 M01S05183.exdrvr +++| PROC PROCMRB; # PROCESS MESSAGE READ BUFFERS # 05439 M01S05184.exdrvr +++| PROC RECALL; # SUSPEND PROCESSING # 05440 M01S05185.exdrvr +++| END 05441 M01S05186.exdrvr +++| 05442 M01S05187.exdrvr +++|# 05443 M01S05188.exdrvr +++|**** PROC SSDRVR - XREF LIST END. 05444 M01S05189.exdrvr +++|# 05445 M01S05190.exdrvr +++| 05446 M01S05191.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 05447 M01S05192.exdrvr +++|*CALL COMBFAS 05448 M01S05193.exdrvr +++|*CALL COMBCHN
Line S05194 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05449 M02S05194.exdrvr2 ---|*CALL,COMBCPR 05450 M01S00134.exdrvr2 +++|*CALL,COMBKDA 05451 M01S05195.exdrvr +++|*CALL,COMBFET 05452 M01S05196.exdrvr +++|*CALL,COMBKDD 05453 M01S05197.exdrvr +++|*CALL COMBLRQ 05454 M01S05198.exdrvr +++|*CALL COMBUDT 05455 M01S05199.exdrvr +++|*CALL COMXCTF 05456 M01S05200.exdrvr +++|*CALL,COMXJCA 05457 M01S05201.exdrvr +++|*CALL COMXMSC 05458 M01S05202.exdrvr +++| 05459 M01S05203.exdrvr +++| ITEM I I; # INDEX # 05460 M01S05204.exdrvr +++| ITEM J I; # INDEX # 05461 M01S05205.exdrvr +++| ITEM MRBACTIVE B; # MSG READ BUFFER ACTIVITY FLAG # 05462 M01S05206.exdrvr +++| ITEM MRBSTAT B; # SET IF MSG READ BUF PROCESSED # 05463 M01S05207.exdrvr +++| ITEM NEXTREQ U; # ADDRESS OF NEXT DRIVER REQUEST # 05464 M01S05208.exdrvr +++| CONTROL EJECT; 05465 M01S05209.exdrvr +++| 05466 M01S05210.exdrvr +++| DRVRRECALL = FALSE; # INDICATE NO DRIVER RECALL # 05467 M01S05211.exdrvr +++| DRVRACTIVE = TRUE; 05468 M01S05212.exdrvr +++| REPEAT WHILE DRVRACTIVE 05469 M01S05213.exdrvr +++| DO # DRIVER MAIN LOOP # 05470 M01S05214.exdrvr +++| BEGIN # MAIN LOOP # 05471 M01S05215.exdrvr +++| DRVRACTIVE = FALSE; # INDICATE NO ACTIVITY # 05472 M01S05216.exdrvr +++| 05473 M01S05217.exdrvr +++|# 05474 M01S05218.exdrvr +++|* PROCESS ALL DRIVER QUEUE ENTRIES. 05475 M01S05219.exdrvr +++|# 05476 M01S05220.exdrvr +++| 05477 M01S05221.exdrvr +++| P<LLRQ> = CHN$BOC[LCHN"DRQUEUE"]; # POINT TO FIRST REQUEST # 05478 M01S05222.exdrvr +++| SLOWFOR I = 0 WHILE P<LLRQ> NQ 0 05479 M01S05223.exdrvr +++| DO # PROCESS DRIVER QUEUE # 05480 M01S05224.exdrvr +++| BEGIN # PROCESS # 05481 M01S05225.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05482 M01S05226.exdrvr +++| IF NOT (KW$COMP[0] # K-DISPLAY ACTIVE # 05483 M01S05227.exdrvr +++| OR LLR$UCPABT[0]) # UCP ABORTED # 05484 M01S05228.exdrvr +++| THEN # RECALL DRIVER UNTIL COMPLETE # 05485 M01S05229.exdrvr +++| BEGIN # RECALL # 05486 M01S05230.exdrvr +++| DRVRRECALL = TRUE; 05487 M01S05231.exdrvr +++| P<LLRQ> = LLR$LINK1[0]; # POINT TO NEXT REQUEST # 05488 M01S05232.exdrvr +++| TEST I; 05489 M01S05233.exdrvr +++| END # RECALL # 05490 M01S05234.exdrvr +++|
Line S05235 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05491 M02S05235.exdrvr2 ---| IF LLR$PRCNME[0] NQ REQTYP4"LOAD$CART" ##
Line S05236 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05492 M02S05236.exdrvr2 ---| AND LLR$PRCNME[0] NQ REQTYP4"INITHW"
Line S05237 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05493 M02S05237.exdrvr2 ---| AND LLR$MBH[0] EQ 0
Line S05238 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05494 M02S05238.exdrvr2 ---| THEN # EXEC ERROR #
Line S05239 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05495 M02S05239.exdrvr2 ---| BEGIN
Line S05240 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05496 M02S05240.exdrvr2 ---| FE$RTN[0] = "SSDRVRA.";
Line S05241 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05497 M02S05241.exdrvr2 ---| MESSAGE(FEMSG,UDFL1);
Line S05242 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05498 M02S05242.exdrvr2 ---| ABORT;
Line S05243 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05499 M02S05243.exdrvr2 ---| END
Line S05244 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05500 M02S05244.exdrvr2 ---| 05501 M01S05245.exdrvr +++| IF LLR$RS[0] NQ PROCST"COMPLETE" 05502 M01S05246.exdrvr +++| THEN # MORE PROCESSING REQUIRED # 05503 M01S05247.exdrvr +++| BEGIN # CONTINUE # 05504 M01S05248.exdrvr +++| PROCDRQ; # PROCESS DRIVER REQUEST # 05505 M01S05249.exdrvr +++| END # CONTINUE # 05506 M01S05250.exdrvr +++|
Line S05251 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05507 M02S05251.exdrvr2 ---| IF LLR$PRCNME[0] NQ REQTYP4"LOAD$CART"
Line S05252 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05508 M02S05252.exdrvr2 ---| AND LLR$PRCNME[0] NQ REQTYP4"INITHW"
Line S05253 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05509 M02S05253.exdrvr2 ---| AND LLR$MBH[0] EQ 0
Line S05254 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05510 M02S05254.exdrvr2 ---| THEN # DRIVER ERROR #
Line S05255 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05511 M02S05255.exdrvr2 ---| BEGIN
Line S05256 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05512 M02S05256.exdrvr2 ---| FE$RTN[0] = "SSDRVRB.";
Line S05257 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05513 M02S05257.exdrvr2 ---| MESSAGE(FEMSG,UDFL1);
Line S05258 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05514 M02S05258.exdrvr2 ---| ABORT;
Line S05259 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05515 M02S05259.exdrvr2 ---| END
Line S05260 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05516 M02S05260.exdrvr2 ---| 05517 M01S05261.exdrvr +++| NEXTREQ = LLR$LINK1[0]; # SAVE NEXT REQUEST ADDRESS # 05518 M01S05262.exdrvr +++| IF LLR$RS[0] EQ PROCST"COMPLETE" ## 05519 M01S05263.exdrvr +++| AND KW$COMP[0] # REQUEST NOT PENDING # 05520 M01S05264.exdrvr +++| THEN # PUT REQUEST BACK ON READY QUEUE # 05521 M01S05265.exdrvr +++| BEGIN # BACK # 05522 M01S05266.exdrvr +++| IF LLR$CU[0] NQ 0 05523 M01S05267.exdrvr +++| THEN # CHECK FOR CU/CHANNEL OFF # 05524 M01S05268.exdrvr +++| BEGIN # OFF # 05525 M01S05269.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); 05526 M01S05270.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 05527 M01S05271.exdrvr +++| IF P<FETMWB> EQ 0 05528 M01S05272.exdrvr +++| THEN # NO CHANNEL ALLOCATED # 05529 M01S05273.exdrvr +++| BEGIN # SKIP # 05530 M01S05274.exdrvr +++| GOTO SSDRVR1; # NO HARDWARE TO CHECK # 05531 M01S05275.exdrvr +++| END # SKIP # 05532 M01S05276.exdrvr +++| 05533 M01S05277.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 05534 M01S05278.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 05535 M01S05279.exdrvr +++| IF NOT (FMW$CHON[0] # CHANNEL TURNED OFF # 05536 M01S05280.exdrvr +++| AND UD$CUON[LLR$CU[0]]) # CU TURNED OFF # 05537 M01S05281.exdrvr +++| THEN # CHECK IF SM STILL ACCESSIBLE # 05538 M01S05282.exdrvr +++| BEGIN # STOP # 05539 M01S05283.exdrvr +++| IF LLR$CU[0] EQ SM$CUO0[LLR$SMO[0]] 05540 M01S05284.exdrvr +++| THEN # 1ST CU/CHAN BAD # 05541 M01S05285.exdrvr +++| BEGIN # 1ST # 05542 M01S05286.exdrvr +++| SM$HWOFF1[LLR$SMO[0]] = TRUE; 05543 M01S05287.exdrvr +++| END # 1ST # 05544 M01S05288.exdrvr +++| 05545 M01S05289.exdrvr +++| IF LLR$CU[0] EQ SM$CUO1[LLR$SMO[0]] 05546 M01S05290.exdrvr +++| THEN # 2ND CU/CHAN BAD # 05547 M01S05291.exdrvr +++| BEGIN # 2ND # 05548 M01S05292.exdrvr +++| SM$HWOFF2[LLR$SMO[0]] = TRUE; 05549 M01S05293.exdrvr +++| END # 2ND # 05550 M01S05294.exdrvr +++| 05551 M01S05295.exdrvr +++| IF (SM$HWOFF1[LLR$SMO[0]] # 1ST HW BAD # 05552 M01S05296.exdrvr +++| OR NOT UD$EXIST[SM$CUO0[LLR$SMO[0]]]) ## 05553 M01S05297.exdrvr +++| AND (SM$HWOFF2[LLR$SMO[0]] # 2ND HW BAD # 05554 M01S05298.exdrvr +++| OR NOT UD$EXIST[SM$CUO1[LLR$SMO[0]]]) 05555 M01S05299.exdrvr +++| THEN # ALL HW TO THIS SM BAD # 05556 M01S05300.exdrvr +++| BEGIN # BAD # 05557 M01S05301.exdrvr +++| SM$HWOFF[LLR$SMO[0]] = TRUE; # STOP ALL SM ACCESS # 05558 M01S05302.exdrvr +++| END # BAD # 05559 M01S05303.exdrvr +++| 05560 M01S05304.exdrvr +++| END # STOP # 05561 M01S05305.exdrvr +++| 05562 M01S05306.exdrvr +++| END # OFF # 05563 M01S05307.exdrvr +++| 05564 M01S05308.exdrvr +++|SSDRVR1: 05565 M01S05309.exdrvr +++| DEL$LNK(LOC(LLRQ),LCHN"DRQUEUE",0); 05566 M01S05310.exdrvr +++| ADD$LNK(LOC(LLRQ),LCHN"LL$READY",0); 05567 M01S05311.exdrvr +++| END # BACK # 05568 M01S05312.exdrvr +++| 05569 M01S05313.exdrvr +++| P<LLRQ> = NEXTREQ; # POINT TO NEXT REQUEST # 05570 M01S05314.exdrvr +++| END # PROCESS # 05571 M01S05315.exdrvr +++| 05572 M01S05316.exdrvr +++|# 05573 M01S05317.exdrvr +++|* PROCESS ALL MESSAGE READ BUFFERS. 05574 M01S05318.exdrvr +++|# 05575 M01S05319.exdrvr +++| 05576 M01S05320.exdrvr +++| MRBACTIVE = TRUE; # SET MESSAGE PROCESSED # 05577 M01S05321.exdrvr +++| REPEAT WHILE MRBACTIVE 05578 M01S05322.exdrvr +++| DO # SCAN WHILE MESSAGES TO PROCESS # 05579 M01S05323.exdrvr +++| BEGIN # SCAN # 05580 M01S05324.exdrvr +++| MRBACTIVE = FALSE; # PRESET TO INDICATE NO ACTIVITY # 05581 M01S05325.exdrvr +++| SLOWFOR I = 1 STEP 1 WHILE UD$EXIST[I] AND (I LQ MAXCTN) 05582 M01S05326.exdrvr +++| DO # SCAN CONTROLLERS # 05583 M01S05327.exdrvr +++| BEGIN # CHECK # 05584 M01S05328.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[I]); 05585 M01S05329.exdrvr +++| SLOWFOR J = 0 STEP 1 UNTIL MAX$CIF 05586 M01S05330.exdrvr +++| DO # CHECK READ BUFFERS # 05587 M01S05331.exdrvr +++| BEGIN # EXISTS # 05588 M01S05332.exdrvr +++| IF MWB$ADDR[J] NQ 0 05589 M01S05333.exdrvr +++| THEN # READ BUFFER EXISTS # 05590 M01S05334.exdrvr +++| BEGIN # PROCESS INCOMING MESSAGES # 05591 M01S05335.exdrvr +++| P<FETMWB> = MWB$ADDR[J]; 05592 M01S05336.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 05593 M01S05337.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; # READ BUFFER ADDRESS # 05594 M01S05338.exdrvr +++| PROCMRB(MRBSTAT); 05595 M01S05339.exdrvr +++| MRBACTIVE = MRBACTIVE OR MRBSTAT; 05596 M01S05340.exdrvr +++| END # PROCESS INCOMING MESSAGES # 05597 M01S05341.exdrvr +++| 05598 M01S05342.exdrvr +++| END # EXISTS # 05599 M01S05343.exdrvr +++| 05600 M01S05344.exdrvr +++| END # CHECK # 05601 M01S05345.exdrvr +++| 05602 M01S05346.exdrvr +++| END # SCAN # 05603 M01S05347.exdrvr +++| 05604 M01S05348.exdrvr +++|# 05605 M01S05349.exdrvr +++|* PROCESS ALL COMPLETED PP CALL BLOCK ENTRIES. 05606 M01S05350.exdrvr +++|# 05607 M01S05351.exdrvr +++| 05608 M01S05352.exdrvr +++| SLOWFOR I = 1 STEP 1 UNTIL PPCBTSIZE 05609 M01S05353.exdrvr +++| DO # PROCESS CALL BLOCK # 05610 M01S05354.exdrvr +++| BEGIN # PROCESS # 05611 M01S05355.exdrvr +++| IF PPU$FC[I] EQ 0 05612 M01S05356.exdrvr +++| THEN # TRY NEXT ENTRY # 05613 M01S05357.exdrvr +++| BEGIN # NEXT # 05614 M01S05358.exdrvr +++| TEST I; 05615 M01S05359.exdrvr +++| END # NEXT # 05616 M01S05360.exdrvr +++| 05617 M01S05361.exdrvr +++| IF DRYUP ## 05618 M01S05362.exdrvr +++| AND INITIALIZE # ACTIVE LLRQ-S WONT BE FINISHED # 05619 M01S05363.exdrvr +++| AND PPU$ACTIVE[I] 05620 M01S05364.exdrvr +++| THEN # RECALL DRIVER UNTIL PP DROPS # 05621 M01S05365.exdrvr +++| BEGIN # RECALL # 05622 M01S05366.exdrvr +++| DRVRRECALL = TRUE; 05623 M01S05367.exdrvr +++| TEST I; 05624 M01S05368.exdrvr +++| END # RECALL # 05625 M01S05369.exdrvr +++| 05626 M01S05370.exdrvr +++| IF (NOT (DRYUP AND INITIALIZE)) # LET LLRQ-S END FIRST # 05627 M01S05371.exdrvr +++| AND NOT PPU$ACTIVE[I] 05628 M01S05372.exdrvr +++| THEN # PP COMPLETED # 05629 M01S05373.exdrvr +++| BEGIN # REMOVE # 05630 M01S05374.exdrvr +++| PPDONE(I); # PROCESS COMPLETED ENTRY # 05631 M01S05375.exdrvr +++| END # REMOVE # 05632 M01S05376.exdrvr +++| 05633 M01S05377.exdrvr +++| END # PROCESS # 05634 M01S05378.exdrvr +++| 05635 M01S05379.exdrvr +++| END # MAIN LOOP # 05636 M01S05380.exdrvr +++| 05637 M01S00135.exdrvr2 +++|# 05638 M01S00136.exdrvr2 +++|* INFORM OPERATOR IF THE 7990 HARDWARE CAN NO LONGER BE ACCESSED. 05639 M01S00137.exdrvr2 +++|# 05640 M01S00138.exdrvr2 +++| 05641 M01S00139.exdrvr2 +++| IF UDT$HWOFF[0] NQ 0 # EXEC TO BE SHUT DOWN # 05642 M01S00140.exdrvr2 +++| AND KREQCLEAR # B-DISPLAY AVAILABLE FOR MSG # 05643 M01S00141.exdrvr2 +++| AND NOT INITIALIZE # *HALT* MSG TO BE SHOWN INSTEAD # 05644 M01S00142.exdrvr2 +++| THEN # INFORM OPERATOR OF PROBLEM # 05645 M01S00143.exdrvr2 +++| BEGIN # MSG # 05646 M01S00144.exdrvr2 +++| IF UDT$CUS$O[0] 05647 M01S00145.exdrvr2 +++| THEN # FLASH CONTROLLER MESSAGE # 05648 M01S00146.exdrvr2 +++| BEGIN # CU # 05649 M01S00147.exdrvr2 +++| MESSAGE("$ALL CONTROLLERS OFF.",LINE2); 05650 M01S00148.exdrvr2 +++| END # CU # 05651 M01S00149.exdrvr2 +++| 05652 M01S00150.exdrvr2 +++| ELSE # FLASH CHANNEL MESSAGE # 05653 M01S00151.exdrvr2 +++| BEGIN # CHAN # 05654 M01S00152.exdrvr2 +++| MESSAGE("$ALL CHANNELS OFF.",LINE2); 05655 M01S00153.exdrvr2 +++| END # CHAN # 05656 M01S00154.exdrvr2 +++| 05657 M01S00155.exdrvr2 +++| END # MSG # 05658 M01S00156.exdrvr2 +++| 05659 M01S05381.exdrvr +++| RECALL(0); # KEEP CPU TIME DOWN # 05660 M01S05382.exdrvr +++| RETURN; 05661 M01S05383.exdrvr +++| END # SSDRVR # 05662 M01S05384.exdrvr +++| 05663 M01S05385.exdrvr +++| TERM 05664 M01S05386.exdrvr +++|PROC STRCART; 05665 M01S05387.exdrvr +++|# TITLE STRCART - STORE CARTRIDGE. # 05666 M01S05388.exdrvr +++| 05667 M01S05389.exdrvr +++| BEGIN # STRCART # 05668 M01S05390.exdrvr +++| 05669 M01S05391.exdrvr +++|# 05670 M01S05392.exdrvr +++|** STRCART - STORE CARTRIDGE. 05671 M01S05393.exdrvr +++|* 05672 M01S05394.exdrvr +++|* *STRCART* PROCESSES *DRQUEUE* REQUESTS TO STORE CARTRIDGES. IF 05673 M01S05395.exdrvr +++|* THE STORE WAS INITIATED BY A *TDAM* REQUEST, THE DRD BUFFERED LOG 05674 M01S05396.exdrvr +++|* IS FORMATTED AND SENT TO THE BML, AND PART OF THE LOG IS SENT TO 05675 M01S05397.exdrvr +++|* THE ASSOCIATED *HLRQ* ENTRY. 05676 M01S05398.exdrvr +++|* 05677 M01S05399.exdrvr +++|* PROC STRCART 05678 M01S05400.exdrvr +++|* 05679 M01S05401.exdrvr +++|* ENTRY P<LLRQ> = *DRQUEUE* ENTRY ADDRESS. 05680 M01S05402.exdrvr +++|* 05681 M01S05403.exdrvr +++|* EXIT THE *DRQUEUE* ENTRY REQUEST STATE FIELD HAS BEEN 05682 M01S05404.exdrvr +++|* UPDATED TO INDICATE WHERE SUBSEQUENT PROCESSING OF 05683 M01S05405.exdrvr +++|* THIS REQUEST IS TO CONTINUE. 05684 M01S05406.exdrvr +++|* 05685 M01S05407.exdrvr +++|* MESSAGES *EXEC ABNORMAL, STRCART1.* - UDT MESSAGE BUFFER STILL 05686 M01S05408.exdrvr +++|* IN USE. 05687 M01S05409.exdrvr +++|* 05688 M01S00065.mse1 +++|* *EXEC ABNORMAL, STRCART2.* - CSN OR DRD IN USE. 05689 M01S00066.mse1 +++|* 05690 M01S05410.exdrvr +++|* A K-DISPLAY MESSAGE IS ISSUED IF THE CARTRIDGE WAS 05691 M01S05411.exdrvr +++|* EJECTED, THE OUTPUT TRAY OR MATRIX CELL WAS FULL, OR 05692 M01S05412.exdrvr +++|* THE ASSOCIATED DRD WAS TURNED OFF DUE TO AN ERROR 05693 M01S05413.exdrvr +++|* FOUND BY THE M860 HARDWARE. 05694 M01S05414.exdrvr +++|* 05695 M01S05415.exdrvr +++|* NOTES THIS IS A PSEUDO-REENTRANT PROCEDURE. 05696 M01S05416.exdrvr +++|# 05697 M01S05417.exdrvr +++| 05698 M01S05418.exdrvr +++| 05699 M01S05419.exdrvr +++|# 05700 M01S05420.exdrvr +++|**** PROC STRCART - XREF LIST BEGIN. 05701 M01S05421.exdrvr +++|# 05702 M01S05422.exdrvr +++| 05703 M01S05423.exdrvr +++| XREF 05704 M01S05424.exdrvr +++| BEGIN 05705 M01S05425.exdrvr +++| PROC ABORT; # ABORT # 05706 M01S05426.exdrvr +++| PROC KREQ; # SEND K-DISPLAY REQUEST # 05707 M01S05427.exdrvr +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 05708 M01S00067.mse1 +++| PROC RTIME; # GET TIME SINCE DEADSTART # 05709 M01S05428.exdrvr +++| PROC SENDMSG; # SEND M860 MESSAGE # 05710 M01S05429.exdrvr +++| PROC ZFILL; # ZERO-FILL BUFFER # 05711 M01S05430.exdrvr +++| END 05712 M01S05431.exdrvr +++| 05713 M01S05432.exdrvr +++|# 05714 M01S05433.exdrvr +++|**** PROC STRCART - XREF LIST END. 05715 M01S05434.exdrvr +++|# 05716 M01S05435.exdrvr +++| 05717 M01S05436.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 05718 M01S05437.exdrvr +++|*CALL,COMBFAS 05719 M01S05438.exdrvr +++|*CALL,COMBCPR 05720 M01S05439.exdrvr +++|*CALL,COMBFET 05721 M01S05440.exdrvr +++|*CALL,COMBHFC 05722 M01S05441.exdrvr +++|*CALL,COMBKDD 05723 M01S05442.exdrvr +++|*CALL,COMBLRQ 05724 M01S05443.exdrvr +++|*CALL,COMBUCR 05725 M01S05444.exdrvr +++|*CALL,COMBUDT 05726 M01S05445.exdrvr +++|*CALL,COMXCTF 05727 M01S05446.exdrvr +++|*CALL,COMXMSC 05728 M01S05447.exdrvr +++|
Line S05448 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05729 M02S05448.exdrvr2 ---| ITEM STSP U; # SM STATUS FROM 1ST CU #
Line S05449 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05730 M02S05449.exdrvr2 ---| ITEM STSS U; # SM STATUS FROM 2ND CU #
Line S05450 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05731 M02S05450.exdrvr2 ---| 05732 M01S05451.exdrvr +++| SWITCH STRLBL:PROCST # DRIVER REQUEST STATE # 05733 M01S05452.exdrvr +++| STRINIT:INITIAL, # INITIAL STATE # 05734 M01S05453.exdrvr +++| STRCUBE:CONT1, # CONTINUATION 1 # 05735 M01S05454.exdrvr +++| STRBUFL:CONT2, # CONTINUATION 2 # 05736 M01S05455.exdrvr +++| STRDRDO:CONT3; # CONTINUATION 3 # 05737 M01S05456.exdrvr +++| CONTROL EJECT; 05738 M01S05457.exdrvr +++| CONTROL INERT; 05739 M01S05458.exdrvr +++| 05740 M01S05459.exdrvr +++| GOTO STRLBL[LLR$RS[0]]; 05741 M01S05460.exdrvr +++| 05742 M01S05461.exdrvr +++|# 05743 M01S05462.exdrvr +++|* INITIAL DRIVER REQUEST STATE. 05744 M01S05463.exdrvr +++|# 05745 M01S05464.exdrvr +++| 05746 M01S05465.exdrvr +++|STRINIT: 05747 M01S05466.exdrvr +++| IF LLR$MBH[0] EQ 0 05748 M01S05467.exdrvr +++| THEN # ** PATCH # 05749 M01S05468.exdrvr +++| BEGIN 05750 M01S05469.exdrvr +++| FE$RTN[0] = "STRCART0."; 05751 M01S05470.exdrvr +++| GOTO STRCART2; 05752 M01S05471.exdrvr +++| END 05753 M01S05472.exdrvr +++| 05754 M01S05473.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05755 M01S05474.exdrvr +++| IF LLR$UCPABT[0] ## 05756 M01S05475.exdrvr +++| AND NOT KW$COMP[0] # K-DISPLAY MSG PENDING # 05757 M01S05476.exdrvr +++| THEN # IGNORE UCP ABORT # 05758 M01S05477.exdrvr +++| BEGIN # EXIT # 05759 M01S05478.exdrvr +++| RETURN; # AVOID ISSUING INFINITE STORES # 05760 M01S05479.exdrvr +++| END # EXIT # 05761 M01S05480.exdrvr +++| 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 M01S05481.exdrvr +++| LLR$SDR[0] = LLR$DR[0]; # IN CASE EJECTING CARTRIDGE # 05771 M01S05482.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05772 M01S05483.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 05773 M01S05484.exdrvr +++| IF MBF$WORD[0] NQ 0 05774 M01S05485.exdrvr +++| THEN # LAST MESSAGE NOT PROCESSED # 05775 M01S05486.exdrvr +++| BEGIN # CHECK # 05776 M01S05487.exdrvr +++| IF MS$MSG[0] GQ HFC$MVLMVR # MOUNT-VOLUME # 05777 M01S05488.exdrvr +++| AND MS$MSG[0] LQ HFC$MVLMNW 05778 M01S05489.exdrvr +++| THEN # FORCED STORE ON DATA TRANSFER # 05779 M01S05490.exdrvr +++| BEGIN # OK # 05780 M01S05491.exdrvr +++| MBF$WORD[0] = 0; # PRESET HEADER # 05781 M01S05492.exdrvr +++| MS$MSG[0] = HFC$STCRNF; # FORCE REWIND/UNLOAD # 05782 M01S05493.exdrvr +++| END # OK # 05783 M01S05494.exdrvr +++| 05784 M01S05495.exdrvr +++| ELSE # SOFTWARE ERROR # 05785 M01S05496.exdrvr +++| BEGIN # ABORT # 05786 M01S05497.exdrvr +++| FE$RTN[0] = "STRCART1."; 05787 M01S05498.exdrvr +++| GOTO STRCART2; 05788 M01S05499.exdrvr +++| END # ABORT # 05789 M01S05500.exdrvr +++| 05790 M01S05501.exdrvr +++| END # CHECK # 05791 M01S05502.exdrvr +++| 05792 M01S05503.exdrvr +++| ELSE # ISSUE NORMAL STORE # 05793 M01S05504.exdrvr +++| BEGIN # OK #
Line S05505 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05794 M02S05505.mse1 ---| IF LLR$LDERR[0] # DDE ON LOAD #
Line S05506 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05795 M02S05506.mse1 ---| THEN # TURN OFF DRD ONLY #
Line S05507 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05796 M02S05507.mse1 ---| BEGIN # OFF #
Line S05508 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05797 M02S05508.mse1 ---| GOTO STRCART5;
Line S05509 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05798 M02S05509.mse1 ---| END # OFF #
Line S05510 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05799 M02S05510.mse1 ---| 05800 M01S05511.exdrvr +++| MS$MSG[0] = HFC$STCRNV; 05801 M01S05512.exdrvr +++| END # OK # 05802 M01S05513.exdrvr +++| 05803 M01S05514.exdrvr +++| MBF$SAVE[0] = SAVEMOST; 05804 M01S05515.exdrvr +++| LLR$RS[0] = PROCST"CONT1"; 05805 M01S05516.exdrvr +++| 05806 M01S05517.exdrvr +++|# 05807 M01S05518.exdrvr +++|* ISSUE M860 MESSAGE TO STORE CARTRIDGE. 05808 M01S05519.exdrvr +++|# 05809 M01S05520.exdrvr +++| 05810 M01S05521.exdrvr +++|STRCUBE: 05811 M01S05522.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05812 M01S05523.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 05813 M01S05524.exdrvr +++| IF MBF$SBADDR[0] EQ 0 ## 05814 M01S05525.exdrvr +++| AND LLR$DR[0] EQ RESPTYP4"OK4" # GOOD HARDWARE # 05815 M01S05526.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 05816 M01S05527.exdrvr +++| BEGIN # RETRY # 05817 M01S05528.exdrvr +++| RETURN; 05818 M01S05529.exdrvr +++| END # RETRY # 05819 M01S05530.exdrvr +++| 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 M01S05531.exdrvr +++| SM$ACCBUSY[LLR$SMO[0]] = FALSE;# SM ARM NOT IN USE # 05839 M01S05532.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 05840 M01S05533.exdrvr +++| THEN # HARDWARE PROBLEM # 05841 M01S05534.exdrvr +++| BEGIN # EXIT # 05842 M01S05535.exdrvr +++| IF LLR$SDR[0] EQ 0 05843 M01S05536.exdrvr +++| THEN # SAVE THIS ERROR FOR EXEC # 05844 M01S05537.exdrvr +++| BEGIN # SAVE # 05845 M01S05538.exdrvr +++| LLR$SDR[0] = LLR$DR[0]; 05846 M01S05539.exdrvr +++| END # SAVE # 05847 M01S05540.exdrvr +++| 05848 M01S05541.exdrvr +++| GOTO STRCART3; # ASSUME CARTRIDGE NOT STORED # 05849 M01S05542.exdrvr +++| END # EXIT # 05850 M01S05543.exdrvr +++| 05851 M01S05544.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # FORCED STORE VOLUME UNLOADED # 05852 M01S05545.exdrvr +++| OR (MS$RETCODE[0] EQ 0 # NO M860 ERROR #
Line S05546 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr3 |
Seq # *Modification Id* Act ----------------------------+ 05853 M02S05546.exdrvr3 ---| AND (LLR$RQI[0] EQ REQNAME"RQILABL" # SSLABEL HANDLES EJECTS # 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 M01S05547.exdrvr +++| OR LLR$Y[0] NQ SM$EXIT$TY # CARTRIDGE NOT EJECTED # 05857 M01S05548.exdrvr +++| OR LLR$Z[0] NQ SM$TY$Z)) 05858 M01S05549.exdrvr +++| THEN # DO NOT ISSUE K-DISPLAY MSG # 05859 M01S05550.exdrvr +++| BEGIN # MATRIX # 05860 M01S05551.exdrvr +++| GOTO STRCART3; 05861 M01S05552.exdrvr +++| END # MATRIX # 05862 M01S05553.exdrvr +++| 05863 M01S05554.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CELEMP # CELL FULL # 05864 M01S05555.exdrvr +++| AND NOT (LLR$Y[0] EQ SM$EXIT$TY # NOT OUTPUT TRAY FULL # 05865 M01S05556.exdrvr +++| AND LLR$Z[0] EQ SM$TY$Z) 05866 M01S05557.exdrvr +++| THEN # TURN SM OFF IN UDT # 05867 M01S05558.exdrvr +++| BEGIN # OFF # 05868 M01S05559.exdrvr +++| P<PTHSTAT> = LOC(SM$STS[LLR$SMO[0]]); 05869 M01S05560.exdrvr +++| SMST = SMST1; # ASSUME 2ND CU # 05870 M01S05561.exdrvr +++| IF LLR$CU[0] EQ SM$CUO0[LLR$SMO[0]] 05871 M01S05562.exdrvr +++| THEN # RESET INDEX TO 1ST CU # 05872 M01S05563.exdrvr +++| BEGIN # RESET # 05873 M01S05564.exdrvr +++| SMST = SMST0; 05874 M01S05565.exdrvr +++| END # RESET # 05875 M01S05566.exdrvr +++| 05876 M01S05567.exdrvr +++| PATHBIT(SMST,PATH$DF"U$ON") = OFF;
Line S05568 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05877 M02S05568.exdrvr2 ---| GOTO STRCARTA; # FIXES COMPILER BUG #
Line S05569 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05878 M02S05569.exdrvr2 ---|
Line S05570 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05879 M02S05570.exdrvr2 ---|STRCARTA:
Line S05571 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05880 M02S05571.exdrvr2 ---| STSP = SM$STS0[LLR$SMO[0]]; # RESET GLOBAL FLAGS #
Line S05572 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05881 M02S05572.exdrvr2 ---| STSS = SM$STS1[LLR$SMO[0]];
Line S05573 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | exdrvr2 |
Seq # *Modification Id* Act ----------------------------+ 05882 M02S05573.exdrvr2 ---| SM$FLAG[LLR$SMO[0]] = STSP LOR STSS; 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 M01S05574.exdrvr +++| END # OFF # 05892 M01S05575.exdrvr +++| 05893 M01S05576.exdrvr +++|# 05894 M01S05577.exdrvr +++|* ISSUE A K-DISPLAY MESSAGE INFORMING THE OPERATOR THAT 05895 M01S05578.exdrvr +++|* EITHER A CARTRIDGE WAS EJECTED, THE OUTPUT TRAY WAS 05896 M01S05579.exdrvr +++|* FULL, OR A MATRIX CELL WAS FULL. 05897 M01S05580.exdrvr +++|# 05898 M01S05581.exdrvr +++| 05899 M01S05582.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 05900 M01S05583.exdrvr +++| KW$WORD[0] = 0; 05901 M01S05584.exdrvr +++| KW$LINE1[0] = KM"KM2"; # PRESET MESSAGE ORDINALS # 05902 M01S05585.exdrvr +++| KW$LINE2[0] = KM"KM9"; # ASSUME CARTRIDGE EJECTED # 05903 M01S05586.exdrvr +++| KW$IC[0] = TRUE; # SET IMMEDIATE COMPLETION # 05904 M01S05587.exdrvr +++| KW$DF[0] = TRUE; # ISSUE TO JOB DAYFILE # 05905 M01S05588.exdrvr +++| IF LLR$CSNT[0] NQ 0 # *TDAM* REQUEST # 05906 M01S05589.exdrvr +++| AND (LLR$SDR[0] EQ RESPTYP4"UNK$CART" # UNEXPECTED LABEL # 05907 M01S05590.exdrvr +++| OR LLR$SDR[0] EQ RESPTYP4"CART$LB$ERR") 05908 M01S05591.exdrvr +++| THEN # INDICATE LABEL ERROR IN MESSAGE # 05909 M01S05592.exdrvr +++| BEGIN # RESET # 05910 M01S05593.exdrvr +++| KW$LINE2[0] = KM"KM8"; 05911 M01S05594.exdrvr +++| KW$LINE3[0] = KM"KM9"; # CARTRIDGE EJECTED # 05912 M01S05595.exdrvr +++| END # RESET # 05913 M01S05596.exdrvr +++| 05914 M01S05597.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CELEMP 05915 M01S05598.exdrvr +++| THEN # CELL WAS FULL # 05916 M01S05599.exdrvr +++| BEGIN # FULL # 05917 M01S05600.exdrvr +++| KW$LINE2[0] = KM"KM11"; # ASSUME MATRIX CELL FULL # 05918 M01S05601.exdrvr +++| KW$LINE3[0] = KM"KM16"; # SM TURNED OFF # 05919 M01S05602.exdrvr +++| IF LLR$Y[0] EQ SM$EXIT$TY ## 05920 M01S05603.exdrvr +++| AND LLR$Z[0] EQ SM$TY$Z 05921 M01S05604.exdrvr +++| THEN # OUTPUT TRAY IS FULL # 05922 M01S05605.exdrvr +++| BEGIN # TRAY # 05923 M01S05606.exdrvr +++| KW$LINE2[0] = KM"KM19"; 05924 M01S05607.exdrvr +++| KW$LINE3[0] = 0; # SM LEFT ON # 05925 M01S05608.exdrvr +++| KW$IC[0] = FALSE; # WAIT FOR OPERATOR RESPONSE # 05926 M01S05609.exdrvr +++| KW$DF[0] = FALSE; 05927 M01S05610.exdrvr +++| END # TRAY # 05928 M01S05611.exdrvr +++| 05929 M01S05612.exdrvr +++| END # FULL # 05930 M01S05613.exdrvr +++| 05931 M01S05614.exdrvr +++| KW$RPGO[0] = TRUE; # ALLOW GO RESPONSE # 05932 M01S05615.exdrvr +++| KP$EQ = UD$ESTO[LLR$CU[0]]; # PRESET MESSAGE PARAMETERS # 05933 M01S05616.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); # LOCATE READ FET # 05934 M01S05617.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 05935 M01S05618.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 05936 M01S05619.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 05937 M01S05620.exdrvr +++| KP$CN = FMR$CHAN[0]; 05938 M01S05621.exdrvr +++| KP$DT = SM$ID[LLR$SMO[0]]; 05939 M01S05622.exdrvr +++| KP$YA = LLR$Y[0]; # SET FULL CELL # 05940 M01S05623.exdrvr +++| KP$ZA = LLR$Z[0]; 05941 M01S05624.exdrvr +++| KREQ(LOC(KWORD),KLINK); # SEND K-DISPLAY REQUEST # 05942 M01S05625.exdrvr +++| 05943 M01S05626.exdrvr +++|STRCART3:
Line S05627 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05944 M02S05627.mse1 ---| IF MS$RETCODE[0] EQ HRC$CSNERR
Line S05628 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05945 M02S05628.mse1 ---| THEN # RETRY FORCED AS NORMAL STORE # 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 M01S05629.exdrvr +++| BEGIN # SKIP # 05951 M01S05630.exdrvr +++| GOTO STRCART5; 05952 M01S05631.exdrvr +++| END # SKIP # 05953 M01S05632.exdrvr +++|
Line S05633 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05954 M02S05633.mse1 ---| IF LLR$CSNT[0] EQ 0 # BUFFERED LOG NOT NEEDED #
Line S05634 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05955 M02S05634.mse1 ---| THEN # PROCESSING COMPLETE #
Line S05635 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05956 M02S05635.mse1 ---| BEGIN # SKIP #
Line S05636 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05957 M02S05636.mse1 ---| GOTO STRCART5;
Line S05637 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05958 M02S05637.mse1 ---| END # SKIP #
Line S05638 Modification History | |
---|---|
M01 (Added by) | exdrvr |
M02 (Updated by) | mse1 |
Seq # *Modification Id* Act ----------------------------+ 05959 M02S05638.mse1 ---| 05960 M01S05639.exdrvr +++| IF KW$LINE2[0] EQ KM"KM19" # OUTPUT TRAY FULL # 05961 M01S05640.exdrvr +++| AND NOT KW$COMP[0] 05962 M01S05641.exdrvr +++| THEN # RETRY STORE REQUEST # 05963 M01S05642.exdrvr +++| BEGIN # EXIT # 05964 M01S05643.exdrvr +++| GOTO STRCART4; 05965 M01S05644.exdrvr +++| END # EXIT # 05966 M01S05645.exdrvr +++| 05967 M01S05646.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 05968 M01S05647.exdrvr +++| THEN # BUFFERED LOG NOT NEEDED # 05969 M01S05648.exdrvr +++| BEGIN # SKIP # 05970 M01S05649.exdrvr +++| GOTO STRCART5; # TREAT DRD AS FULL # 05971 M01S05650.exdrvr +++| END # SKIP # 05972 M01S05651.exdrvr +++| 05973 M01S05652.exdrvr +++| IF MBF$SBADDR[0] NQ 0 05974 M01S05653.exdrvr +++| THEN # CLEAR SBT ENTRY # 05975 M01S05654.exdrvr +++| BEGIN # CLEAR # 05976 M01S05655.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 05977 M01S05656.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 05978 M01S05657.exdrvr +++| END # CLEAR # 05979 M01S05658.exdrvr +++| 05980 M01S05659.exdrvr +++| MBF$WORD[0] = 0; # CLEAR MESSAGE STATUS # 05981 M01S05660.exdrvr +++| MBF$SAVE[0] = SAVEPART; 05982 M01S05661.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 05983 M01S05662.exdrvr +++| MS$MSG[0] = HFC$DBLD0; # SET *DUMP BUF LOG* FUNCTION # 05984 M01S05663.exdrvr +++| LLR$RS[0] = PROCST"CONT2"; 05985 M01S05664.exdrvr +++| 05986 M01S05665.exdrvr +++|# 05987 M01S05666.exdrvr +++|* ISSUE M860 MESSAGE TO DUMP BUFFERED LOG. 05988 M01S05667.exdrvr +++|# 05989 M01S05668.exdrvr +++| 05990 M01S05669.exdrvr +++|STRBUFL: 05991 M01S05670.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 05992 M01S05671.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 05993 M01S05672.exdrvr +++| IF MBF$SBADDR[0] EQ 0 ## 05994 M01S05673.exdrvr +++| AND LLR$DR[0] EQ RESPTYP4"OK4" 05995 M01S05674.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 05996 M01S05675.exdrvr +++| BEGIN # RETRY # 05997 M01S05676.exdrvr +++| RETURN; 05998 M01S05677.exdrvr +++| END # RETRY # 05999 M01S05678.exdrvr +++| 06000 M01S05679.exdrvr +++| LLR$DR[0] = RESPTYP4"OK4"; # DO NOT RETURN ERRORS # 06001 M01S05680.exdrvr +++| 06002 M01S05681.exdrvr +++|# 06003 M01S05682.exdrvr +++|* TURN OFF THE DRD IF AN M860 RESPONSE TO 06004 M01S05683.exdrvr +++|* A DRD MESSAGE WAS A DEVICE DRIVER ERROR, OR THE RESPONSE 06005 M01S05684.exdrvr +++|* TIMED OUT. 06006 M01S05685.exdrvr +++|# 06007 M01S05686.exdrvr +++| 06008 M01S05687.exdrvr +++|STRCART5: 06009 M01S05688.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # RETRY AS NORMAL STORE FIRST # 06010 M01S05689.exdrvr +++| OR NOT LLR$DRFUL[0] 06011 M01S05690.exdrvr +++| THEN # DO NOT TURN OFF DRD # 06012 M01S05691.exdrvr +++| BEGIN # OK # 06013 M01S05692.exdrvr +++| GOTO STRCART4; 06014 M01S05693.exdrvr +++| END # OK # 06015 M01S05694.exdrvr +++| 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 +++| 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 +++| 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 M01S05695.exdrvr +++| DRVRACTIVE = TRUE; # IN CASE DRD MSG TIMED OUT # 06068 M01S05696.exdrvr +++| P<PTHSTAT> = LOC(D1$ST[LLR$SMO[0]]); # ASSUME LOWER DRD # 06069 M01S05697.exdrvr +++| IF LLR$DRD[0] EQ 0 06070 M01S05698.exdrvr +++| THEN # UPPER DRD GOING OFF # 06071 M01S05699.exdrvr +++| BEGIN # RESET # 06072 M01S05700.exdrvr +++| P<PTHSTAT> = LOC(D0$ST[LLR$SMO[0]]); 06073 M01S05701.exdrvr +++| END # RESET # 06074 M01S05702.exdrvr +++| 06075 M01S05703.exdrvr +++| DRST = DRST1; # ASSUME 2ND CU # 06076 M01S05704.exdrvr +++| IF LLR$CU[0] EQ SM$CUO0[LLR$SMO[0]] 06077 M01S05705.exdrvr +++| THEN # RESET DRD INDEX TO 1ST CU # 06078 M01S05706.exdrvr +++| BEGIN # RESET # 06079 M01S05707.exdrvr +++| DRST = DRST0; 06080 M01S05708.exdrvr +++| END # RESET # 06081 M01S05709.exdrvr +++| 06082 M01S05710.exdrvr +++| PATHBIT(DRST,PATH$DF"U$ON") = OFF; 06083 M01S05711.exdrvr +++| PATHBIT(DRST,PATH$DF"U$CU$ACK") = ON; 06084 M01S05712.exdrvr +++| PATHBIT(DRST,PATH$DF"U$DONE") = OFF; 06085 M01S05713.exdrvr +++| 06086 M01S05714.exdrvr +++| CONTROL REACTIVE; 06087 M01S05715.exdrvr +++| 06088 M01S05716.exdrvr +++| IF LLR$DRD[0] EQ 0 06089 M01S05717.exdrvr +++| THEN # STOP LOADS TO UPPER DRD # 06090 M01S05718.exdrvr +++| BEGIN # DRD 0 # 06091 M01S05719.exdrvr +++| D0$FLAG[LLR$SMO[0]] = D0$STSP[LLR$SMO[0]] LOR 06092 M01S05720.exdrvr +++| D0$STSS[LLR$SMO[0]]; 06093 M01S05721.exdrvr +++| END # DRD 0 # 06094 M01S05722.exdrvr +++| 06095 M01S05723.exdrvr +++| ELSE # STOP LOADS TO LOWER DRD # 06096 M01S05724.exdrvr +++| BEGIN # DRD 1 # 06097 M01S05725.exdrvr +++| D1$FLAG[LLR$SMO[0]] = D1$STSP[LLR$SMO[0]] LOR 06098 M01S05726.exdrvr +++| D1$STSS[LLR$SMO[0]]; 06099 M01S05727.exdrvr +++| END # DRD 1 # 06100 M01S05728.exdrvr +++| 06101 M01S05729.exdrvr +++| CONTROL INERT; 06102 M01S05730.exdrvr +++| 06103 M01S05731.exdrvr +++| LLR$SSD[0] = LLR$D$SMO[0]; # SAVE SM/DRD ORDINALS # 06104 M01S05732.exdrvr +++| LLR$RS[0] = PROCST"CONT3"; 06105 M01S05733.exdrvr +++| RETURN; 06106 M01S05734.exdrvr +++| 06107 M01S05735.exdrvr +++|# 06108 M01S05736.exdrvr +++|* ISSUE A K-DISPLAY MESSAGE STATING THAT THE DRD WAS 06109 M01S05737.exdrvr +++|* TURNED OFF. 06110 M01S05738.exdrvr +++|# 06111 M01S05739.exdrvr +++| 06112 M01S05740.exdrvr +++|STRDRDO: 06113 M01S05741.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06114 M01S05742.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06115 M01S05743.exdrvr +++| LLR$D$SMO[0] = LLR$SSD[0]; # RESTORE SM/DRD ORDINALS # 06116 M01S05744.exdrvr +++| P<KWORD> = LOC(LLR$KWORDS[0]); 06117 M01S05745.exdrvr +++| KW$WORD[0] = 0; 06118 M01S05746.exdrvr +++| KW$LINE1[0] = KM"KM3"; # PRESET MESSAGE ORDINALS # 06119 M01S05747.exdrvr +++| KW$LINE2[0] = KM"KM16"; 06120 M01S05748.exdrvr +++| KW$IC[0] = TRUE; # SET IMMEDIATE COMPLETION # 06121 M01S05749.exdrvr +++| KW$DF[0] = TRUE; # SEND TO JOB DAYFILE # 06122 M01S05750.exdrvr +++| KW$RPGO[0] = TRUE; # ALLOW GO RESPONSE # 06123 M01S05751.exdrvr +++| KP$EQ = UD$ESTO[LLR$CU[0]]; # PRESET MESSAGE PARAMETERS # 06124 M01S05752.exdrvr +++| P<MWBTMP> = LOC(UD$CAMF[LLR$CU[0]]); # LOCATE READ FET # 06125 M01S05753.exdrvr +++| P<FETMWB> = MWB$ADDR[LLR$CIF[0]]; 06126 M01S05754.exdrvr +++| P<FETMRA> = P<FETMWB> - 1; 06127 M01S05755.exdrvr +++| P<FETMRB> = FRA$MRBADR[0]; 06128 M01S05756.exdrvr +++| KP$CN = FMR$CHAN[0]; 06129 M01S05757.exdrvr +++| KP$DT = SM$ID[LLR$SMO[0]]; 06130 M01S05758.exdrvr +++| KP$ID = D1$SUN[LLR$SMO[0]]; # ASSUME LOWER DRD # 06131 M01S05759.exdrvr +++| IF LLR$DRD[0] EQ 0 06132 M01S05760.exdrvr +++| THEN # LOWER DRD HAD ERROR # 06133 M01S05761.exdrvr +++| BEGIN # RESET # 06134 M01S05762.exdrvr +++| KP$ID = D0$SUN[LLR$SMO[0]]; 06135 M01S05763.exdrvr +++| END # RESET # 06136 M01S05764.exdrvr +++| 06137 M01S05765.exdrvr +++| KREQ(LOC(KWORD),KLINK); # SEND K-DISPLAY REQUEST # 06138 M01S05766.exdrvr +++| 06139 M01S05767.exdrvr +++|STRCART4: 06140 M01S05768.exdrvr +++| IF LLR$DRD[0] EQ 0 06141 M01S05769.exdrvr +++| THEN # UPPER DRD EMPTY # 06142 M01S05770.exdrvr +++| BEGIN # CLEAR # 06143 M01S05771.exdrvr +++| D0$FULL[LLR$SMO[0]] = FALSE; 06144 M01S05772.exdrvr +++| END # CLEAR # 06145 M01S05773.exdrvr +++| 06146 M01S05774.exdrvr +++| ELSE # LOWER DRD EMPTY # 06147 M01S05775.exdrvr +++| BEGIN # CLEAR # 06148 M01S05776.exdrvr +++| D1$FULL[LLR$SMO[0]] = FALSE; 06149 M01S05777.exdrvr +++| END # CLEAR # 06150 M01S05778.exdrvr +++| 06151 M01S05779.exdrvr +++| IF LLR$SDR[0] NQ 0 06152 M01S05780.exdrvr +++| THEN # RESTORE ORIGINAL ERROR FOR EXEC # 06153 M01S05781.exdrvr +++| BEGIN # RESET # 06154 M01S05782.exdrvr +++| LLR$DR[0] = LLR$SDR[0]; 06155 M01S05783.exdrvr +++| END # RESET # 06156 M01S05784.exdrvr +++| 06157 M01S05785.exdrvr +++| IF LLR$PRCNME[0] EQ REQTYP4"INITHW" 06158 M01S05786.exdrvr +++| THEN # CLEAR SO UDT SCAN CAN FINISH # 06159 M01S05787.exdrvr +++| BEGIN # CLEAR # 06160 M01S05788.exdrvr +++| IF MS$RETCODE[0] NQ HRC$CSNERR # DRD NOT YET OFF # 06161 M01S05789.exdrvr +++| THEN # NOT RETRYING AS NORMAL STORE # 06162 M01S05790.exdrvr +++| BEGIN # OFF # 06163 M01S05791.exdrvr +++| LLR$DRFUL[0] = FALSE; 06164 M01S05792.exdrvr +++| END # OFF # 06165 M01S05793.exdrvr +++| 06166 M01S05794.exdrvr +++| LLR$DRDOFF[0] = FALSE; 06167 M01S05795.exdrvr +++| LLR$LDERR[0] = FALSE; # IN CASE LOAD ERROR OCCURRED # 06168 M01S05796.exdrvr +++| END # CLEAR # 06169 M01S05797.exdrvr +++| 06170 M01S05798.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 06171 M01S05799.exdrvr +++| IF MS$RETCODE[0] EQ HRC$CSNERR # RETRY AS NORMAL STORE # 06172 M01S05800.exdrvr +++| OR (KW$LINE2[0] EQ KM"KM19" # RETRY STORE TO OUTPUT TRAY # 06173 M01S05801.exdrvr +++| AND NOT KW$COMP[0]) 06174 M01S05802.exdrvr +++| THEN # RETRY STORING CARTRIDGE # 06175 M01S05803.exdrvr +++| BEGIN # RETRY # 06176 M01S05804.exdrvr +++| LLR$RS[0] = PROCST"INITIAL"; 06177 M01S05805.exdrvr +++| END # RETRY # 06178 M01S05806.exdrvr +++| 06179 M01S05807.exdrvr +++| IF MBF$SBADDR[0] NQ 0 06180 M01S05808.exdrvr +++| THEN # CLEAR SBT ENTRY # 06181 M01S05809.exdrvr +++| BEGIN # CLEAR # 06182 M01S05810.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 06183 M01S05811.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 06184 M01S05812.exdrvr +++| END # CLEAR # 06185 M01S05813.exdrvr +++| 06186 M01S05814.exdrvr +++| MBF$WORD[0] = 0; # CLEAR MESSAGE STATUS # 06187 M01S05815.exdrvr +++| RETURN; 06188 M01S05816.exdrvr +++| 06189 M01S05817.exdrvr +++|STRCART2: 06190 M01S05818.exdrvr +++| MESSAGE(FEMSG,UDFL1); 06191 M01S05819.exdrvr +++| ABORT; 06192 M01S05820.exdrvr +++| END # STRCART # 06193 M01S05821.exdrvr +++| 06194 M01S05822.exdrvr +++| TERM 06195 M01S05823.exdrvr +++|PROC XFRDATA; 06196 M01S05824.exdrvr +++|# TITLE XFRDATA - TRANSFER DATA TO/FROM M860. # 06197 M01S05825.exdrvr +++| 06198 M01S05826.exdrvr +++| BEGIN # XFRDATA # 06199 M01S05827.exdrvr +++| 06200 M01S05828.exdrvr +++|# 06201 M01S05829.exdrvr +++|** XFRDATA - TRANSFER DATA TO/FROM M860. 06202 M01S05830.exdrvr +++|* 06203 M01S05831.exdrvr +++|* *XFRDATA* PROCESSES *DRQUEUE* REQUESTS TO MOUNT AND UNLOAD 06204 M01S05832.exdrvr +++|* VOLUMES, AND INITIATES DATA TRANSFERS BETWEEN *SSEXEC* AND THE 06205 M01S05833.exdrvr +++|* M860 HARDWARE. 06206 M01S05834.exdrvr +++|* 06207 M01S05835.exdrvr +++|* PROC XFRDATA 06208 M01S05836.exdrvr +++|* 06209 M01S05837.exdrvr +++|* ENTRY P<LLRQ> = *DRQUEUE* ENTRY ADDRESS. 06210 M01S05838.exdrvr +++|* 06211 M01S05839.exdrvr +++|* EXIT THE *DRQUEUE* ENTRY REQUEST STATE FIELD HAS BEEN 06212 M01S05840.exdrvr +++|* UPDATED TO INDICATE WHERE SUBSEQUENT PROCESSING OF 06213 M01S05841.exdrvr +++|* THIS REQUEST IS TO CONTINUE. 06214 M01S05842.exdrvr +++|* 06215 M01S05843.exdrvr +++|* MESSAGES *EXEC ABNORMAL, XFRDATA1.* - UDT MESSAGE BUFFER STILL 06216 M01S05844.exdrvr +++|* IN USE. 06217 M01S05845.exdrvr +++|* 06218 M01S05846.exdrvr +++|* *EXEC ABNORMAL, XFRDATA2.* - FATAL ERROR RECEIVED IN 06219 M01S05847.exdrvr +++|* M860 *MOUNT VOLUME* 06220 M01S05848.exdrvr +++|* RESPONSE. 06221 M01S05849.exdrvr +++|* 06222 M01S05850.exdrvr +++|* NOTES THIS IS A PSEUDO-REENTRANT PROCEDURE. 06223 M01S05851.exdrvr +++|# 06224 M01S05852.exdrvr +++| 06225 M01S05853.exdrvr +++| 06226 M01S05854.exdrvr +++|# 06227 M01S05855.exdrvr +++|**** PROC XFRDATA - XREF LIST BEGIN. 06228 M01S05856.exdrvr +++|# 06229 M01S05857.exdrvr +++| 06230 M01S05858.exdrvr +++| XREF 06231 M01S05859.exdrvr +++| BEGIN 06232 M01S05860.exdrvr +++| PROC ABORT; # ABORT # 06233 M01S05861.exdrvr +++| PROC CALLPP; # PASS MESSAGES/DATA TO PP # 06234 M01S05862.exdrvr +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 06235 M01S05863.exdrvr +++| PROC RTIME; # GET TIME SINCE DEADSTART # 06236 M01S05864.exdrvr +++| PROC SENDMSG; # SEND M860 MESSAGE # 06237 M01S05865.exdrvr +++| PROC ZFILL; # ZERO-FILL BUFFER # 06238 M01S05866.exdrvr +++| END 06239 M01S05867.exdrvr +++| 06240 M01S05868.exdrvr +++|# 06241 M01S05869.exdrvr +++|**** PROC XFRDATA - XREF LIST END. 06242 M01S05870.exdrvr +++|# 06243 M01S05871.exdrvr +++| 06244 M01S05872.exdrvr +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 06245 M01S05873.exdrvr +++|*CALL,COMBFAS 06246 M01S05874.exdrvr +++|*CALL,COMBCDD 06247 M01S05875.exdrvr +++|*CALL COMBCPR 06248 M01S05876.exdrvr +++|*CALL,COMBFET 06249 M01S05877.exdrvr +++|*CALL,COMBHFC 06250 M01S05878.exdrvr +++|*CALL,COMBLRQ 06251 M01S05879.exdrvr +++|*CALL,COMBUDT 06252 M01S05880.exdrvr +++|*CALL,COMXMSC 06253 M01S05881.exdrvr +++| 06254 M01S05882.exdrvr +++| ITEM I I; # INDEX # 06255 M01S05883.exdrvr +++| 06256 M01S05884.exdrvr +++| SWITCH XFRLBL:PROCST # DRIVER REQUEST STATE # 06257 M01S05885.exdrvr +++| XFRINIT:INITIAL, # INITIAL STATE # 06258 M01S05886.exdrvr +++| XFRMNVL:CONT1, # CONTINUATION 1 # 06259 M01S05887.exdrvr +++| XFRPDAT:CONT2, # CONTINUATION 2 # 06260 M01S05888.exdrvr +++| XFRINCR:CONT3, # CONTINUATION 3 # 06261 M01S05889.exdrvr +++| XFRUNLD:CONT4, # CONTINUATION 4 # 06262 M01S05890.exdrvr +++| XFRRESP:CONT5; # CONTINUATION 5 # 06263 M01S05891.exdrvr +++| CONTROL EJECT; 06264 M01S05892.exdrvr +++| 06265 M01S05893.exdrvr +++| GOTO XFRLBL[LLR$RS[0]]; 06266 M01S05894.exdrvr +++| 06267 M01S05895.exdrvr +++|# 06268 M01S05896.exdrvr +++|* INITIAL DRIVER REQUEST STATE. 06269 M01S05897.exdrvr +++|# 06270 M01S05898.exdrvr +++| 06271 M01S05899.exdrvr +++|XFRINIT: 06272 M01S05900.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06273 M01S05901.exdrvr +++| IF MBF$WORD[0] NQ 0 06274 M01S05902.exdrvr +++| THEN # DRD STILL IN USE # 06275 M01S05903.exdrvr +++| BEGIN # ABORT # 06276 M01S05904.exdrvr +++| FE$RTN[0] = "XFRDATA1."; 06277 M01S05905.exdrvr +++| GOTO XFRDATA1; 06278 M01S05906.exdrvr +++| END # ABORT # 06279 M01S05907.exdrvr +++| 06280 M01S05908.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06281 M01S05909.exdrvr +++| MBF$SAVE[0] = SAVEMOST; 06282 M01S05910.exdrvr +++| MS$MSG[0] = HFC$MVLMVR; # ASSUME READING DATA # 06283 M01S05911.exdrvr +++| LLR$RS[0] = PROCST"CONT1"; 06284 M01S05912.exdrvr +++| 06285 M01S05913.exdrvr +++|# 06286 M01S05914.exdrvr +++|* ISSUE M860 MESSAGE TO MOUNT VOLUME. 06287 M01S05915.exdrvr +++|# 06288 M01S05916.exdrvr +++| 06289 M01S05917.exdrvr +++|XFRMNVL: 06290 M01S05918.exdrvr +++| P<FETFHB> = LLR$MSFET[0]; 06291 M01S05919.exdrvr +++| FHB$UNIT[0] = D1$SUN[LLR$SMO[0]]; 06292 M01S05920.exdrvr +++| IF LLR$DRD[0] EQ 0 06293 M01S05921.exdrvr +++| THEN # UPPER DRD BEING USED # 06294 M01S05922.exdrvr +++| BEGIN # RESET # 06295 M01S05923.exdrvr +++| FHB$UNIT[0] = D0$SUN[LLR$SMO[0]]; 06296 M01S05924.exdrvr +++| END # RESET # 06297 M01S05925.exdrvr +++| 06298 M01S05926.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06299 M01S05927.exdrvr +++| SENDMSG; # SEND M860 MESSAGE # 06300 M01S05928.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06301 M01S05929.exdrvr +++| THEN # HARDWARE PROBLEM # 06302 M01S05930.exdrvr +++| BEGIN # EXIT # 06303 M01S05931.exdrvr +++| IF MS$INTER[0] NQ 0 # CIF SELECTED # 06304 M01S05932.exdrvr +++| THEN # DATA TRANSFER STOPPED # 06305 M01S05933.exdrvr +++| BEGIN # NO DATA # 06306 M01S05934.exdrvr +++| B<LLR$CIF[0],1>UD$DBACT[LLR$CU[0]] = OFF; 06307 M01S05935.exdrvr +++| END # NO DATA # 06308 M01S05936.exdrvr +++| 06309 M01S05937.exdrvr +++| IF MBF$SENT[0] 06310 M01S05938.exdrvr +++| THEN # IGNORE RESPONSES # 06311 M01S05939.exdrvr +++| BEGIN # IGNORE # 06312 M01S05940.exdrvr +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0])-1; 06313 M01S05941.exdrvr +++| # COUNT INCLUDED REWIND/UNLOAD # 06314 M01S05942.exdrvr +++| END # IGNORE # 06315 M01S05943.exdrvr +++| 06316 M01S05944.exdrvr +++| GOTO XFRDATA2; 06317 M01S05945.exdrvr +++| END # EXIT # 06318 M01S05946.exdrvr +++| 06319 M01S05947.exdrvr +++| IF MBF$SBADDR[0] EQ 0 06320 M01S05948.exdrvr +++| THEN # RESPONSE NOT YET RECEIVED # 06321 M01S05949.exdrvr +++| BEGIN # RETRY # 06322 M01S05950.exdrvr +++| RETURN; 06323 M01S05951.exdrvr +++| END # RETRY # 06324 M01S05952.exdrvr +++| 06325 M01S05953.exdrvr +++| IF MS$RETCODE[0] NQ 0 06326 M01S05954.exdrvr +++| THEN # SOFTWARE ERROR # 06327 M01S05955.exdrvr +++| BEGIN # ABORT # 06328 M01S05956.exdrvr +++| FE$RTN[0] = "XFRDATA2."; 06329 M01S05957.exdrvr +++| GOTO XFRDATA1; 06330 M01S05958.exdrvr +++| END # ABORT # 06331 M01S05959.exdrvr +++| 06332 M01S05960.exdrvr +++| ZFILL(UDT$MSG,MSGLT); # CLEAR STORAGE BUFFER # 06333 M01S05961.exdrvr +++| MBF$SBADDR[0] = 0; # CLEAR SBT ENTRY ADDRESS # 06334 M01S05962.exdrvr +++| MBF$TMOUT[0] = 0; # CLEAR MESSAGE TIMEOUT # 06335 M01S05963.exdrvr +++| LLR$RS[0] = PROCST"CONT2"; 06336 M01S05964.exdrvr +++| 06337 M01S05965.exdrvr +++|# 06338 M01S05966.exdrvr +++|* PASS DATA BUFFER ADDRESS TO PP TO START DATA TRANSFER. 06339 M01S05967.exdrvr +++|# 06340 M01S05968.exdrvr +++| 06341 M01S05969.exdrvr +++|XFRPDAT: 06342 M01S05970.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06343 M01S05971.exdrvr +++| P<UDT$MSG> = P<MBFHDR> + 1; 06344 M01S05972.exdrvr +++| CALLPP(IRMDAT); 06345 M01S05973.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06346 M01S05974.exdrvr +++| THEN # HARDWARE PROBLEM # 06347 M01S05975.exdrvr +++| BEGIN # EXIT # 06348 M01S05976.exdrvr +++| GOTO XFRDATA2; 06349 M01S05977.exdrvr +++| END # EXIT # 06350 M01S05978.exdrvr +++| 06351 M01S05979.exdrvr +++| IF B<FMR$CIF[0],1>UD$DBACT[LLR$CU[0]] EQ ON ## 06352 M01S05980.exdrvr +++| AND P<FETMWB> NQ 0 # CHANNEL WAS ALLOCATED # 06353 M01S05981.exdrvr +++| THEN # DATA TRANSFER STARTED # 06354 M01S05982.exdrvr +++| BEGIN # RETRY # 06355 M01S05983.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE";# RETURN WHEN COPY COMPLETE # 06356 M01S05984.exdrvr +++| END # RETRY # 06357 M01S05985.exdrvr +++| 06358 M01S05986.exdrvr +++| RETURN; 06359 M01S05987.exdrvr +++| 06360 M01S05988.exdrvr +++|# 06361 M01S05989.exdrvr +++|* AWAIT M860-INITIATED UNLOAD MESSAGE. 06362 M01S05990.exdrvr +++|# 06363 M01S05991.exdrvr +++| 06364 M01S05992.exdrvr +++|XFRINCR: 06365 M01S05993.exdrvr +++| SLOWFOR I = 1 STEP 1 UNTIL PPCBTSIZE 06366 M01S05994.exdrvr +++| DO # NOTE DATA TRANSFER COMPLETE # 06367 M01S05995.exdrvr +++| BEGIN # SCAN # 06368 M01S05996.exdrvr +++| IF LLR$MSFET[0] EQ PPU$DBADDR[I] 06369 M01S05997.exdrvr +++| THEN # REMOVE ADDRESS # 06370 M01S05998.exdrvr +++| BEGIN # CLEAR # 06371 M01S05999.exdrvr +++| PPU$DBADDR[I] = 0; 06372 M01S06000.exdrvr +++| B<LLR$CIF[0],1>UD$DBACT[LLR$CU[0]] = OFF; 06373 M01S06001.exdrvr +++| # FREE PP FOR NEXT DATA XFER # 06374 M01S06002.exdrvr +++| END # CLEAR # 06375 M01S06003.exdrvr +++| 06376 M01S06004.exdrvr +++| END # SCAN # 06377 M01S06005.exdrvr +++| 06378 M01S06006.exdrvr +++| IF LLR$DRFUL[0] 06379 M01S06007.exdrvr +++| THEN # DATA TRANSFER ERROR # 06380 M01S06008.exdrvr +++| BEGIN # EXIT # 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 M01S06009.exdrvr +++| MSGCNT(LLR$CIF[0],LLR$CU[0]) = MSGCNT(LLR$CIF[0],LLR$CU[0])-1; 06384 M01S06010.exdrvr +++| GOTO XFRDATA2; # DO NOT EXPECT REWIND/UNLOAD # 06385 M01S06011.exdrvr +++| END # EXIT # 06386 M01S06012.exdrvr +++| 06387 M01S06013.exdrvr +++| RTIME(RTIMESTAT); # RESET MESSAGE TIMEOUT # 06388 M01S06014.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06389 M01S06015.exdrvr +++| MBF$TMOUT[0] = RTIMSECS[0]; 06390 M01S06016.exdrvr +++| LLR$RS[0] = PROCST"CONT4"; 06391 M01S06017.exdrvr +++| 06392 M01S06018.exdrvr +++|XFRUNLD: 06393 M01S06019.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06394 M01S06020.exdrvr +++| SENDMSG; # AWAIT UNLOAD MESSAGE # 06395 M01S06021.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"M86$HDW$PR" 06396 M01S06022.exdrvr +++| THEN # RESPONSE TIMED OUT # 06397 M01S06023.exdrvr +++| BEGIN # EXIT # 06398 M01S06024.exdrvr +++| GOTO XFRDATA2; 06399 M01S06025.exdrvr +++| END # EXIT # 06400 M01S06026.exdrvr +++| 06401 M01S06027.exdrvr +++| IF MBF$SBADDR[0] EQ 0 06402 M01S06028.exdrvr +++| THEN # MESSAGE NOT YET RECEIVED # 06403 M01S06029.exdrvr +++| BEGIN # RETRY # 06404 M01S06030.exdrvr +++| RETURN; 06405 M01S06031.exdrvr +++| END # RETRY # 06406 M01S06032.exdrvr +++| 06407 M01S06033.exdrvr +++| IF LLR$PRCNME[0] EQ REQTYP4"CPY$DA" # VOLUME DESTAGE # 06408 M01S06034.exdrvr +++| THEN # RETURN STATISTICS # 06409 M01S06035.exdrvr +++| BEGIN # STATS # 06410 M01S06036.exdrvr +++| LLR$LT$ST[0] = MS$PARM1A[0]; # LAST STRIPE WRITTEN # 06411 M01S06037.exdrvr +++| LLR$LOG$ST[0] = MS$PARM2[0]; # LOGICAL STRIPE POSITION # 06412 M01S06038.exdrvr +++| END # STATS # 06413 M01S06039.exdrvr +++| 06414 M01S06040.exdrvr +++| MBF$SENT[0] = FALSE; 06415 M01S06041.exdrvr +++| MS$MSG$R[0] = TRUE; # SET AS UNLOAD RESPONSE # 06416 M01S06042.exdrvr +++| LLR$RS[0] = PROCST"CONT5"; 06417 M01S06043.exdrvr +++| 06418 M01S06044.exdrvr +++|# 06419 M01S06045.exdrvr +++|* ISSUE RESPONSE TO M860-INITIATED UNLOAD MESSAGE. 06420 M01S06046.exdrvr +++|# 06421 M01S06047.exdrvr +++| 06422 M01S06048.exdrvr +++|XFRRESP: 06423 M01S06049.exdrvr +++| P<MBFHDR> = LLR$MBH[0]; 06424 M01S06050.exdrvr +++| SENDMSG; # SEND UNLOAD RESPONSE # 06425 M01S06051.exdrvr +++| IF LLR$DR[0] EQ RESPTYP4"OK4" # HARDWARE GOOD # 06426 M01S06052.exdrvr +++| AND NOT MBF$SENT[0] 06427 M01S06053.exdrvr +++| THEN # RESPONSE NOT YET SENT # 06428 M01S06054.exdrvr +++| BEGIN # RETRY # 06429 M01S06055.exdrvr +++| RETURN; 06430 M01S06056.exdrvr +++| END # RETRY # 06431 M01S06057.exdrvr +++| 06432 M01S06058.exdrvr +++|XFRDATA2: 06433 M01S06059.exdrvr +++| IF MBF$SBADDR[0] NQ 0 06434 M01S06060.exdrvr +++| THEN # CLEAR SBT ENTRY # 06435 M01S06061.exdrvr +++| BEGIN # CLEAR # 06436 M01S06062.exdrvr +++| P<UDT$MSG> = MBF$SBADDR[0]; 06437 M01S06063.exdrvr +++| ZFILL(UDT$MSG,MSGLT); 06438 M01S06064.exdrvr +++| END # CLEAR # 06439 M01S06065.exdrvr +++| 06440 M01S06066.exdrvr +++| IF NOT LLR$DRFUL[0] 06441 M01S06067.exdrvr +++| THEN # DO NOT ISSUE FORCED-STORE # 06442 M01S06068.exdrvr +++| BEGIN # NORMAL # 06443 M01S06069.exdrvr +++| MBF$WORD[0] = 0; # STOP *STRCART* FROM FORCING # 06444 M01S06070.exdrvr +++| END # NORMAL # 06445 M01S06071.exdrvr +++| 06446 M01S06072.exdrvr +++| LLR$RS[0] = PROCST"COMPLETE"; 06447 M01S06073.exdrvr +++| RETURN; 06448 M01S06074.exdrvr +++| 06449 M01S06075.exdrvr +++|XFRDATA1: 06450 M01S06076.exdrvr +++| MESSAGE(FEMSG,UDFL1); 06451 M01S06077.exdrvr +++| ABORT; 06452 M01S06078.exdrvr +++| END # XFRDATA # 06453 M01S06079.exdrvr +++| 06454 M01S06080.exdrvr +++| TERM
cdc/nos2.source/opl.opl871/deck/exdrvr.003.txt ยท Last modified: by 127.0.0.1