cdc:nos2.source:opl.opl871:deck:sxkd.001
Deck SXKD Part 001
2 Modifications
Listing Sections
- Deck SXKD Start
- Deck SXKD Part 1 (Line 1825)
Source
Seq # *Modification Id* Act ----------------------------+ 01825 M01S01296.sxkd +++|# 01826 M01S01297.sxkd +++| 01827 M01S01298.sxkd +++| I = PAR$FWD[PI]; # WORD OFFSET # 01828 M01S01299.sxkd +++| PFIELDI[0] = B<PAR$FBIT[PI],PAR$FLEN[PI]>PARAM$WD[I];
Line S01300 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01829 M02S01300.sxkd2 ---| PRESULT = PFIELDC[0]; 01830 M01S00529.sxkd2 +++|# 01831 M01S00530.sxkd2 +++|* CONVERT TO CHARACTER DISPLAY IF SPECIFIED. 01832 M01S00531.sxkd2 +++|# 01833 M01S00532.sxkd2 +++| 01834 M01S00533.sxkd2 +++| IF PAR$CONV[PI] EQ ALF 01835 M01S00534.sxkd2 +++| THEN 01836 M01S00535.sxkd2 +++| BEGIN # ALF # 01837 M01S00536.sxkd2 +++| PRESULT = PFIELDC[0]; 01838 M01S00537.sxkd2 +++| BZFILL(PRESULT,TYPFILL"BFILL",10); # BLANK FILL PARAM # 01839 M01S00538.sxkd2 +++| END # ALF # 01840 M01S01301.sxkd +++| 01841 M01S01302.sxkd +++|# 01842 M01S01303.sxkd +++|* CONVERT TO DECIMAL DISPLAY IF SPECIFIED. 01843 M01S01304.sxkd +++|# 01844 M01S01305.sxkd +++| 01845 M01S01306.sxkd +++| IF PAR$CONV[PI] EQ DEC 01846 M01S01307.sxkd +++| THEN 01847 M01S01308.sxkd +++| BEGIN 01848 M01S01309.sxkd +++| PRESULT = XCDD(PFIELDI[0]); 01849 M01S01310.sxkd +++| END 01850 M01S01311.sxkd +++| 01851 M01S01312.sxkd +++|# 01852 M01S01313.sxkd +++|* CONVERT TO OCTAL DISPLAY IF SPECIFIED. 01853 M01S01314.sxkd +++|# 01854 M01S01315.sxkd +++| 01855 M01S01316.sxkd +++| IF PAR$CONV[PI] EQ OCTL 01856 M01S01317.sxkd +++| THEN 01857 M01S01318.sxkd +++| BEGIN 01858 M01S01319.sxkd +++| PRESULT = XCOD(PFIELDI[0]); 01859 M01S01320.sxkd +++| END 01860 M01S01321.sxkd +++| 01861 M01S01322.sxkd +++| 01862 M01S01323.sxkd +++|# 01863 M01S01324.sxkd +++|* MOVE PARAMETER VALUE INTO TEXT. 01864 M01S01325.sxkd +++|# 01865 M01S01326.sxkd +++| 01866 M01S01327.sxkd +++| C<TO,PAR$TSIZ[PI]>TCOPY = ## 01867 M01S01328.sxkd +++| C<10-PAR$TSIZ[PI],PAR$TSIZ[PI]>PRESULT; 01868 M01S01329.sxkd +++| TO = TO + PAR$TSIZ[PI]; 01869 M01S01330.sxkd +++| 01870 M01S01331.sxkd +++| FR = FR + 3; # ADVANCE PAST PARAMETER CODE # 01871 M01S01332.sxkd +++| TEST DUMMY; 01872 M01S01333.sxkd +++| END # PROCESS PARAMETER # 01873 M01S01334.sxkd +++| 01874 M01S01335.sxkd +++| END # TRANSFER *K* DISPLAY TEXT # 01875 M01S01336.sxkd +++| 01876 M01S01337.sxkd +++| TEXT = TCOPY; # RETURN NEW TEXT # 01877 M01S01338.sxkd +++| 01878 M01S01339.sxkd +++| END # KPFILL # 01879 M01S01340.sxkd +++| 01880 M01S01341.sxkd +++| TERM 01881 M01S01342.sxkd +++|PROC KPROC; 01882 M01S01343.sxkd +++| 01883 M01S01344.sxkd +++|# TITLE KPROC - *K* DISPLAY PROCESSOR. # 01884 M01S01345.sxkd +++| 01885 M01S01346.sxkd +++| BEGIN # KPROC # 01886 M01S01347.sxkd +++| 01887 M01S01348.sxkd +++|# 01888 M01S01349.sxkd +++|** KPROC - *K* DISPLAY PROCESSOR. 01889 M01S01350.sxkd +++|* 01890 M01S01351.sxkd +++|* *KPROC* DETERMINES IF THERE IS ANY WORK TO DO FOR THE 01891 M01S01352.sxkd +++|* *K* DISPLAY AND IF SO, CALLS THE *K* DISPLAY OVERLAY. 01892 M01S01353.sxkd +++|* IT ALSO UPDATES THE *B* DISPLAY REQUEST-K MESSAGE 01893 M01S01354.sxkd +++|* AS NECESSARY. 01894 M01S01355.sxkd +++|* 01895 M01S01356.sxkd +++|* PROC KPROC. 01896 M01S01357.sxkd +++|* 01897 M01S01358.sxkd +++|* ENTRY (KACTCOUNT) - NUMBER OF REQUESTS CURRENTLY 01898 M01S01359.sxkd +++|* IN THE BODY OF THE LEFT SCREEN. 01899 M01S01360.sxkd +++|* (KLINKQ) - HEAD OF K-QUEUE. 01900 M01S01361.sxkd +++|* = 0 IF EMPTY. 01901 M01S01362.sxkd +++|* (KNEWREQ) - FLAG INDICATES NEW REQUESTS EXIST. 01902 M01S01363.sxkd +++|* (KREQCLEAR) - FLAG TO INDICATE THE REQUEST-K 01903 M01S01364.sxkd +++|* MESSAGE IS NOT ON THE *B* DISPLAY. 01904 M01S01365.sxkd +++|* ARRAY KBINPUT - KEYBOARD INPUT BUFFER. 01905 M01S01366.sxkd +++|* ARRAY KLEFTSCRN - LEFT SCREEN BUFFER. 01906 M01S01367.sxkd +++|* (KL$COMP) - COMPLETE FLAG IN LEFT SCREEN BUFFER. 01907 M01S01368.sxkd +++|* = 0 IF *DSD* IS NOT PROCESSING *K*. 01908 M01S01369.sxkd +++|* = 1 IF *DSD* IS PROCESSING *K*. 01909 M01S01370.sxkd +++|* 01910 M01S01371.sxkd +++|* EXIT (KREQCLEAR) - REQUEST-K FLAG. 01911 M01S01372.sxkd +++|* (KTIMER) - COUNTER TO REFRESH REQUEST-K MESSAGE. 01912 M01S01373.sxkd +++|* 01913 M01S01374.sxkd +++|* MESSAGES * REQUEST *K* DISPLAY *. 01914 M01S01375.sxkd +++|* 01915 M01S01376.sxkd +++|* NOTES CALLS *K* DISPLAY OVERLAY ONLY IF THERE IS 01916 M01S01377.sxkd +++|* WORK TO PROCESS. 01917 M01S01378.sxkd +++|* 01918 M01S01379.sxkd +++|* REFRESHES THE REQUEST-K MESSAGE ON THE *B* DISPLAY 01919 M01S01380.sxkd +++|* AS NECESSARY. 01920 M01S01381.sxkd +++|* 01921 M01S01382.sxkd +++|* CLEARS THE REQUEST-K MESSAGE AS NECESSARY. 01922 M01S01383.sxkd +++|* 01923 M01S01384.sxkd +++|* *DSD* SETS THE *KL$COMP* FLAG IN THE LEFT SCREEN 01924 M01S01385.sxkd +++|* BUFFER WHILE IT IS PROCESSING THE *K* DISPLAY. 01925 M01S01386.sxkd +++|# 01926 M01S01387.sxkd +++| 01927 M01S01388.sxkd +++|# 01928 M01S01389.sxkd +++|**** PROC KPROC - XREF LIST BEGIN. 01929 M01S01390.sxkd +++|# 01930 M01S01391.sxkd +++| 01931 M01S01392.sxkd +++| XREF 01932 M01S01393.sxkd +++| BEGIN 01933 M01S01394.sxkd +++| FUNC XCDD C(10); # BINARY TO DISPLAY (DECIMAL) # 01934 M01S01395.sxkd +++| PROC SSOVL; # LOAD OVERLAY # 01935 M01S01396.sxkd +++| PROC MESSAGE; # ISSUE *MESSAGE* MACRO # 01936 M01S01397.sxkd +++| PROC RTIME; # GET TIME SINCE LAST DEAD START # 01937 M01S01398.sxkd +++| END 01938 M01S01399.sxkd +++| 01939 M01S01400.sxkd +++|# 01940 M01S01401.sxkd +++|**** PROC KPROC - XREF LIST END. 01941 M01S01402.sxkd +++|# 01942 M01S01403.sxkd +++| 01943 M01S01404.sxkd +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01944 M01S01405.sxkd +++|*CALL COMBFAS 01945 M01S01406.sxkd +++|*CALL COMXCTF 01946 M01S01407.sxkd +++|*CALL COMXIPR 01947 M01S01408.sxkd +++|*CALL COMBKDA 01948 M01S01409.sxkd +++|*CALL COMBKDD 01949 M01S01410.sxkd +++|*CALL COMXMSC 01950 M01S01411.sxkd +++|*CALL COMBOVL 01951 M01S01412.sxkd +++| 01952 M01S01413.sxkd +++| CONTROL EJECT; 01953 M01S01414.sxkd +++| 01954 M01S01415.sxkd +++|# 01955 M01S01416.sxkd +++|* DETERMINE IF THERE IS WORK TO DO. 01956 M01S01417.sxkd +++|# 01957 M01S01418.sxkd +++| P<DISPOS> = LOC(KL$LINE[LF$TITLE + 1]); 01958 M01S01419.sxkd +++| CH$10[0] = XCDD(RTRQ$CT); 01959 M01S01420.sxkd +++| DISPOS$RTRQ[0] = CH$04[0];
Line S01421 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01960 M02S01421.sxkd2 ---|
Line S01422 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01961 M02S01422.sxkd2 ---| IF KB$CLEAR[0] NQ 0 OR (KACTCOUNT LS KORD AND KNEWREQ) 01962 M01S00539.sxkd2 +++| IF KB$CLEAR[0] NQ 0 # CONSOLE INPUT # 01963 M01S00540.sxkd2 +++| OR (KACTCOUNT LS KORD AND KNEWREQ) # NEW REQUEST # 01964 M01S00541.sxkd2 +++| OR (KSMDISP AND KL$COMP[0]) # SM DISPLAY UP # 01965 M01S01423.sxkd +++| THEN 01966 M01S01424.sxkd +++| BEGIN 01967 M01S01425.sxkd +++| SSOVL(LKDISPLY,0); # LOAD *KDISPLAY* OVERLAY # 01968 M01S01426.sxkd +++| END 01969 M01S01427.sxkd +++| 01970 M01S01428.sxkd +++|# 01971 M01S01429.sxkd +++|* CLEAR REQUEST-K IF NO ACTIVE DISPLAYS. 01972 M01S01430.sxkd +++|# 01973 M01S01431.sxkd +++|
Line S01432 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01974 M02S01432.sxkd2 ---| IF KACTCOUNT EQ 0 AND NOT KREQCLEAR
Line S01433 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01975 M02S01433.sxkd2 ---| THEN 01976 M01S00542.sxkd2 +++| IF (KACTCOUNT EQ 0 # NO MESSAGES TO DISPLAY # 01977 M01S00543.sxkd2 +++| OR KL$COMP[0]) # MESSAGES BEING DISPLAYED # 01978 M01S00544.sxkd2 +++| AND NOT KREQCLEAR # *REQUEST-K* MESSAGE UP # 01979 M01S00545.sxkd2 +++| THEN # *REQUEST-K* NO LONGER NEEDED # 01980 M01S01434.sxkd +++| BEGIN 01981 M01S01435.sxkd +++| MESSAGE(BZEROES,LINE2); 01982 M01S01436.sxkd +++| KREQCLEAR = TRUE; # FLAG IT IS CLEAR #
Line S01437 Modification History | |
---|---|
M01 (Added by) | sxkd |
M02 (Updated by) | sxkd2 |
Seq # *Modification Id* Act ----------------------------+ 01983 M02S01437.sxkd2 ---| KDIS$EXPIR = 0; 01984 M01S01438.sxkd +++| END 01985 M01S01439.sxkd +++| 01986 M01S01440.sxkd +++|# 01987 M01S01441.sxkd +++|* REFRESH REQUEST-K MESSAGE ON *B* DISPLAY IF THERE ARE 01988 M01S01442.sxkd +++|* REQUESTS TO PROCESS BUT THE *K* DISPLAY IS NOT ACTIVE. 01989 M01S01443.sxkd +++|# 01990 M01S01444.sxkd +++| 01991 M01S01445.sxkd +++| IF KACTCOUNT NQ 0 01992 M01S01446.sxkd +++| THEN 01993 M01S01447.sxkd +++| BEGIN # REFRESH (REQUEST *K* DISPLAY) MESSAGE # 01994 M01S01448.sxkd +++| RTIME(RTIMESTAT[0]); 01995 M01S01449.sxkd +++| KDIS$EXPIR = RTIMSECS[0] + KDIS$INTV; 01996 M01S01450.sxkd +++| KTIMER = KTIMER - 1; 01997 M01S01451.sxkd +++| IF KTIMER LS 0 01998 M01S01452.sxkd +++| THEN # TIMER EXPIRED # 01999 M01S01453.sxkd +++| BEGIN 02000 M01S01454.sxkd +++| IF NOT KL$COMP[0] 02001 M01S01455.sxkd +++| THEN # *K* DISPLAY MUST NOT BE ACTIVE # 02002 M01S01456.sxkd +++| BEGIN 02003 M01S01457.sxkd +++| MESSAGE("$ REQUEST *K* DISPLAY ",LINE2); 02004 M01S01458.sxkd +++| KREQCLEAR = FALSE; 02005 M01S01459.sxkd +++| END 02006 M01S01460.sxkd +++| 02007 M01S01461.sxkd +++| KTIMER = KRESET; # RESET TIMER # 02008 M01S01462.sxkd +++| KL$COMP[0] = FALSE; # SET TOGGLE OFF ( ON BY *DSD* ) # 02009 M01S01463.sxkd +++| END 02010 M01S01464.sxkd +++| 02011 M01S01465.sxkd +++| END # REFRESH (REQUEST *K* DISPLAY) MESSAGE # 02012 M01S01466.sxkd +++| 02013 M01S00546.sxkd2 +++| ELSE # DO NOT KEEP EXEC FROM IDLING # 02014 M01S00547.sxkd2 +++| BEGIN # IDLE # 02015 M01S00548.sxkd2 +++| KDIS$EXPIR = 0; 02016 M01S00549.sxkd2 +++| END # IDLE # 02017 M01S00550.sxkd2 +++| 02018 M01S00551.sxkd2 +++|# 02019 M01S00552.sxkd2 +++|* KEEP EXEC ACTIVE TO REFRESH THE SM DISPLAY 02020 M01S00553.sxkd2 +++|* IF IT IS ON THE SCREEN. 02021 M01S00554.sxkd2 +++|# 02022 M01S00555.sxkd2 +++| 02023 M01S00556.sxkd2 +++| IF KSMDISP AND KL$COMP[0] # SM DISPLAY ON SCREEN # 02024 M01S00557.sxkd2 +++| THEN # KEEP EXEC ACTIVE # 02025 M01S00558.sxkd2 +++| BEGIN # ACTIVE # 02026 M01S00559.sxkd2 +++| RTIME(RTIMESTAT[0]); 02027 M01S00560.sxkd2 +++| KSM$EXPIR = RTIMSECS[0] + KSM$INTV; 02028 M01S00561.sxkd2 +++| KL$COMP[0] = FALSE; # DONE PROCESSING SM DISPLAY # 02029 M01S00562.sxkd2 +++| KTIMER = KRESET; # RESET *DSD* TIMER # 02030 M01S00563.sxkd2 +++| END # ACTIVE # 02031 M01S00564.sxkd2 +++| 02032 M01S00565.sxkd2 +++| ELSE # NOTHING UP TO REFRESH # 02033 M01S00566.sxkd2 +++| BEGIN # TIMEOUT # 02034 M01S00567.sxkd2 +++| KTIMER = KTIMER - 1; # TIMEOUT IN CASE *DSD* SLOW # 02035 M01S00568.sxkd2 +++| IF KTIMER LS 0 02036 M01S00569.sxkd2 +++| THEN # DSD NOT PROCESSING SM DISPLAY # 02037 M01S00570.sxkd2 +++| BEGIN # IDLE # 02038 M01S00571.sxkd2 +++| KSM$EXPIR = 0; # DO NOT FORCE EXEC ACTIVE # 02039 M01S00572.sxkd2 +++| END # IDLE # 02040 M01S00573.sxkd2 +++| 02041 M01S00574.sxkd2 +++| END # TIMEOUT # 02042 M01S00575.sxkd2 +++| 02043 M01S01467.sxkd +++| END # KPROC # 02044 M01S01468.sxkd +++| 02045 M01S01469.sxkd +++| TERM 02046 M01S01470.sxkd +++|PROC KREQ((KWADDR),(RTYP)); 02047 M01S01471.sxkd +++| 02048 M01S01472.sxkd +++|# TITLE KREQ - *K* DISPLAY REQUEST. # 02049 M01S01473.sxkd +++| 02050 M01S01474.sxkd +++| BEGIN # KREQ # 02051 M01S01475.sxkd +++| 02052 M01S01476.sxkd +++|# 02053 M01S01477.sxkd +++|** KREQ - *K* DISPLAY REQUEST. 02054 M01S01478.sxkd +++|* 02055 M01S01479.sxkd +++|* *KREQ* LINKS A NEW REQUEST TO THE *K* DISPLAY QUEUE 02056 M01S01480.sxkd +++|* OR DELINKS AN OLD REQUEST FROM THE *K* DISPLAY QUEUE. 02057 M01S01481.sxkd +++|* 02058 M01S01482.sxkd +++|* PROC KREQ((KWADDR),(RTYP)) 02059 M01S01483.sxkd +++|* 02060 M01S01484.sxkd +++|* ENTRY (KWADDR) - ADDRESS OF *KWORD* ARRAY. 02061 M01S01485.sxkd +++|* (RTYP) - REQUEST TYPE. 02062 M01S01486.sxkd +++|* = *KLINK* TO ADD THE REQUEST TO THE QUEUE. 02063 M01S01487.sxkd +++|* = *KDELINK* TO DELINK THE REQUEST FROM 02064 M01S01488.sxkd +++|* THE QUEUE. 02065 M01S01489.sxkd +++|* (KLINKQ) - THE HEAD OF THE K-QUEUE. 02066 M01S01490.sxkd +++|* 02067 M01S01491.sxkd +++|* EXIT THE *KWORD* HAS BEEN LINKED/DELINKED. 02068 M01S01492.sxkd +++|* 02069 M01S01493.sxkd +++|* FOR A *KLINK*, THE REQUEST-K MESSAGE IS ISSUED AND 02070 M01S01494.sxkd +++|* (KREQCLEAR) = FALSE, REQUEST-K MESSAGE IS UP. 02071 M01S01495.sxkd +++|* (KNEWREQ) - IS SET TRUE IF A NEW REQUEST 02072 M01S01496.sxkd +++|* WAS ADDED. 02073 M01S01497.sxkd +++|* 02074 M01S01498.sxkd +++|* FOR A *KDELINK*, THE LEFT SCREEN AREA IS BLANKED 02075 M01S01499.sxkd +++|* IF THE *KWORD* ENTRY IS CURRENTLY ON THE SCREEN. 02076 M01S01500.sxkd +++|* 02077 M01S01501.sxkd +++|* MESSAGES * REQUEST *K* DISPLAY * (IF *KLINK* REQUEST). 02078 M01S01502.sxkd +++|* 02079 M01S01503.sxkd +++|* NOTES FOR *KLINK* PROCESSING - 02080 M01S01504.sxkd +++|* . SKIP THE REQUEST IF IT IS ALREADY IN QUEUE. 02081 M01S01505.sxkd +++|* . ADD TO END OF K-QUEUE. 02082 M01S01506.sxkd +++|* . ISSUE THE REQUEST-K MESSAGE. 02083 M01S01507.sxkd +++|* 02084 M01S01508.sxkd +++|* FOR *KDELINK* PROCESSING - 02085 M01S01509.sxkd +++|* . SKIP THIS REQUEST IF IT IS NOT IN THE QUEUE. 02086 M01S01510.sxkd +++|* . CLEAR THE SCREEN LINES FOR THIS REQUEST IF IT IS 02087 M01S01511.sxkd +++|* CURRENTLY ACTIVE ON THE LEFT SCREEN. 02088 M01S01512.sxkd +++|* . SET COMPLETE IN *KWORD* ARRAY. 02089 M01S01513.sxkd +++|* . DELINK THE REQUEST FROM THE QUEUE. 02090 M01S01514.sxkd +++|# 02091 M01S01515.sxkd +++| 02092 M01S01516.sxkd +++| ITEM KWADDR I; # ADDRESS OF *KWORD* ARRAY # 02093 M01S01517.sxkd +++| ITEM RTYP I; # REQUEST TYPE # 02094 M01S01518.sxkd +++| 02095 M01S01519.sxkd +++|# 02096 M01S01520.sxkd +++|**** PROC KREQ - XREF LIST BEGIN. 02097 M01S01521.sxkd +++|# 02098 M01S01522.sxkd +++| 02099 M01S01523.sxkd +++| XREF 02100 M01S01524.sxkd +++| BEGIN 02101 M01S01525.sxkd +++| PROC KCLR; # CLEAR CURRENT ON *K* DISPLAY # 02102 M01S01526.sxkd +++| PROC MESSAGE; # ISSUE *MESSAGE* MACRO # 02103 M01S01527.sxkd +++| END 02104 M01S01528.sxkd +++| 02105 M01S01529.sxkd +++|# 02106 M01S01530.sxkd +++|**** PROC KREQ - XREF LIST END. 02107 M01S01531.sxkd +++|# 02108 M01S01532.sxkd +++| 02109 M01S01533.sxkd +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02110 M01S01534.sxkd +++|*CALL COMBFAS 02111 M01S01535.sxkd +++|*CALL COMBKDA 02112 M01S01536.sxkd +++|*CALL COMBKDD 02113 M01S01537.sxkd +++|*CALL COMXCTF 02114 M01S01538.sxkd +++| 02115 M01S01539.sxkd +++| ITEM CURRKW I; # CURRENT *KWORD* ADDRESS # 02116 M01S01540.sxkd +++| ITEM ORD I; # AN ORDINAL # 02117 M01S01541.sxkd +++| ITEM PREVKW I; # PREVIOUS *KWORD* ADDRESS # 02118 M01S01542.sxkd +++| 02119 M01S01543.sxkd +++| 02120 M01S01544.sxkd +++| CONTROL EJECT; 02121 M01S01545.sxkd +++| 02122 M01S01546.sxkd +++|# 02123 M01S01547.sxkd +++|* SEARCH K-QUEUE UNTIL END (ZERO) OR A MATCH ON *KWADDR*. 02124 M01S01548.sxkd +++|* SETS - *PREVKW* = ADDRESS OF PREVIOUS *KWORD* IN QUEUE. 02125 M01S01549.sxkd +++|* - *CURRKW* = ADDRESS OF CURRENT *KWORD* OR ZERO(END). 02126 M01S01550.sxkd +++|# 02127 M01S01551.sxkd +++| 02128 M01S01552.sxkd +++| CURRKW = LOC(KLINKQ); # START AT HEAD # 02129 M01S01553.sxkd +++| REPEAT WHILE CURRKW NQ 0 AND CURRKW NQ KWADDR 02130 M01S01554.sxkd +++| DO 02131 M01S01555.sxkd +++| BEGIN 02132 M01S01556.sxkd +++| PREVKW = CURRKW; # SET PREVIOUS # 02133 M01S01557.sxkd +++| P<KWORD> = CURRKW; 02134 M01S01558.sxkd +++| CURRKW = KW$LINK[0]; # GET NEXT IN QUEUE # 02135 M01S01559.sxkd +++| END 02136 M01S01560.sxkd +++| 02137 M01S01561.sxkd +++|# 02138 M01S01562.sxkd +++|* PROCESS THE LINK REQUEST. 02139 M01S01563.sxkd +++|# 02140 M01S01564.sxkd +++| 02141 M01S01565.sxkd +++| IF RTYP EQ KLINK 02142 M01S01566.sxkd +++| THEN # LINK TO QUEUE # 02143 M01S01567.sxkd +++| BEGIN # LINK # 02144 M01S01568.sxkd +++| IF CURRKW NQ 0 02145 M01S01569.sxkd +++| THEN # FOUND MATCH IN QUEUE # 02146 M01S01570.sxkd +++| BEGIN 02147 M01S01571.sxkd +++| RETURN; # IGNORE THIS REQUEST # 02148 M01S01572.sxkd +++| END 02149 M01S01573.sxkd +++| 02150 M01S01574.sxkd +++|# 02151 M01S01575.sxkd +++|* INITIALIZE *KWORD* ARRAY FIELDS. 02152 M01S01576.sxkd +++|# 02153 M01S01577.sxkd +++| 02154 M01S01578.sxkd +++| P<KWORD> = KWADDR; 02155 M01S01579.sxkd +++| KW$KCTL[0] = 0; # CLEAR K-CONTROLLED AREA # 02156 M01S01580.sxkd +++| KW$LINK[0] = 0; # SET LINK AT END # 02157 M01S01581.sxkd +++| 02158 M01S01582.sxkd +++|# 02159 M01S01583.sxkd +++|* LINK *KWORD* TO END OF QUEUE. 02160 M01S01584.sxkd +++|# 02161 M01S01585.sxkd +++| 02162 M01S01586.sxkd +++| P<KWORD> = PREVKW; 02163 M01S01587.sxkd +++| KW$LINK[0] = KWADDR; # PREVIOUS POINTS TO NEW # 02164 M01S01588.sxkd +++| KNEWREQ = TRUE; 02165 M01S01589.sxkd +++| 02166 M01S01590.sxkd +++|# 02167 M01S01591.sxkd +++|* ISSUE THE REQUEST-K MESSAGE. 02168 M01S01592.sxkd +++|# 02169 M01S01593.sxkd +++| 02170 M01S01594.sxkd +++| MESSAGE("$ REQUEST *K* DISPLAY ",LINE2); 02171 M01S01595.sxkd +++| KREQCLEAR = FALSE; 02172 M01S01596.sxkd +++| RETURN; # EXIT # 02173 M01S01597.sxkd +++| END # LINK # 02174 M01S01598.sxkd +++| 02175 M01S01599.sxkd +++| 02176 M01S01600.sxkd +++| 02177 M01S01601.sxkd +++|# 02178 M01S01602.sxkd +++|* PROCESS THE DELINK REQUEST. 02179 M01S01603.sxkd +++|# 02180 M01S01604.sxkd +++| 02181 M01S01605.sxkd +++| IF RTYP EQ KDELINK 02182 M01S01606.sxkd +++| THEN # DELINK FROM QUEUE # 02183 M01S01607.sxkd +++| BEGIN # DELINK # 02184 M01S01608.sxkd +++| IF CURRKW EQ 0 02185 M01S01609.sxkd +++| THEN # NO MATCH IN QUEUE # 02186 M01S01610.sxkd +++| BEGIN 02187 M01S01611.sxkd +++| RETURN; # IGNORE THIS REQUEST # 02188 M01S01612.sxkd +++| END 02189 M01S01613.sxkd +++| 02190 M01S01614.sxkd +++|# 02191 M01S01615.sxkd +++|* IF REQUEST IS CURRENTLY ACTIVE ON *K* DISPLAY, CLEAR IT. 02192 M01S01616.sxkd +++|# 02193 M01S01617.sxkd +++| 02194 M01S01618.sxkd +++| P<KWORD> = CURRKW; 02195 M01S01619.sxkd +++| IF KW$ACT[0] 02196 M01S01620.sxkd +++| THEN # CURRENTLY ON *K* # 02197 M01S01621.sxkd +++| BEGIN # CLEAR K DISPLAY ENTRY # 02198 M01S01622.sxkd +++| 02199 M01S01623.sxkd +++|# 02200 M01S01624.sxkd +++|* LOOK FOR *KWORD* ENTRY IN *KCURRENT*. 02201 M01S01625.sxkd +++|# 02202 M01S01626.sxkd +++| 02203 M01S01627.sxkd +++| FOR ORD = 1 STEP 1 WHILE ORD LQ KORD 02204 M01S01628.sxkd +++| DO 02205 M01S01629.sxkd +++| BEGIN 02206 M01S01630.sxkd +++| IF KCUR$ADDR[ORD] EQ KWADDR 02207 M01S01631.sxkd +++| THEN # FOUND MATCH # 02208 M01S01632.sxkd +++| BEGIN 02209 M01S01633.sxkd +++| KCLR(ORD); # CLEAR FROM *K* DISPLAY # 02210 M01S01634.sxkd +++| END 02211 M01S01635.sxkd +++| 02212 M01S01636.sxkd +++| END 02213 M01S01637.sxkd +++| 02214 M01S01638.sxkd +++| END # CLEAR K DISPLAY ENTRY # 02215 M01S01639.sxkd +++| 02216 M01S01640.sxkd +++|# 02217 M01S01641.sxkd +++|* SET COMPLETE ON THIS REQUEST. 02218 M01S01642.sxkd +++|# 02219 M01S01643.sxkd +++| 02220 M01S01644.sxkd +++| P<KWORD> = KWADDR; 02221 M01S01645.sxkd +++| KW$COMP[0] = TRUE; 02222 M01S01646.sxkd +++| DRVRRECALL = TRUE; # SET TO RECALL THE DRIVER # 02223 M01S01647.sxkd +++| 02224 M01S01648.sxkd +++|# 02225 M01S01649.sxkd +++|* DELINK IT FROM QUEUE. 02226 M01S01650.sxkd +++|# 02227 M01S01651.sxkd +++| 02228 M01S01652.sxkd +++| CURRKW = KW$LINK[0]; # NEXT IN QUEUE # 02229 M01S01653.sxkd +++| P<KWORD> = PREVKW; 02230 M01S01654.sxkd +++| KW$LINK[0] = CURRKW; # LINK PREVIOUS TO NEXT # 02231 M01S01655.sxkd +++| RETURN; 02232 M01S01656.sxkd +++| 02233 M01S01657.sxkd +++| END # DELINK # 02234 M01S01658.sxkd +++| 02235 M01S01659.sxkd +++| END # KREQ # 02236 M01S01660.sxkd +++| 02237 M01S01661.sxkd +++| TERM 02238 M01S00576.sxkd2 +++|PROC KSM(REJECT); 02239 M01S00577.sxkd2 +++| 02240 M01S00578.sxkd2 +++|# TITLE KSM - PROCESS *SMI* COMMAND. # 02241 M01S00579.sxkd2 +++| 02242 M01S00580.sxkd2 +++| BEGIN # KSM # 02243 M01S00581.sxkd2 +++| 02244 M01S00582.sxkd2 +++|# 02245 M01S00583.sxkd2 +++|** KSM - PROCESS *SMI* COMMAND. 02246 M01S00584.sxkd2 +++|* 02247 M01S00585.sxkd2 +++|* *KSM* PROCESSES BOTH FORMS OF THE *SM* OPERATOR COMMAND. 02248 M01S00586.sxkd2 +++|* THE TWO FORMS OF THE COMMAND ARE: 02249 M01S00587.sxkd2 +++|* 1. *SMI*, WHERE *I* IS THE SM IDENTIFIER 02250 M01S00588.sxkd2 +++|* 02251 M01S00589.sxkd2 +++|* THIS FORM OF THE COMMAND CAUSES INFORMATION FOR THE 02252 M01S00590.sxkd2 +++|* SPECIFIED *SM* TO BE DISPLAYED. 02253 M01S00591.sxkd2 +++|* 02254 M01S00592.sxkd2 +++|* 2. *SMI,DRD=XX=N* 02255 M01S00593.sxkd2 +++|* WHERE *I* IS THE *SM* IDENTIFIER 02256 M01S00594.sxkd2 +++|* *XX* IS THE LITERAL *ST* (STAGE) OR *DS* (DESTAGE) 02257 M01S00595.sxkd2 +++|* *N* IS MAXIMUM NUMBER OF DRDS (0, 1, OR 2) 02258 M01S00596.sxkd2 +++|* 02259 M01S00597.sxkd2 +++|* THIS FORM OF THE COMMAND CAUSES THE MAXIMUM NUMBER OF 02260 M01S00598.sxkd2 +++|* DRDS PERMITTED FOR STAGING (*ST*) OR DESTAGING (*DS*) 02261 M01S00599.sxkd2 +++|* TO BE REDEFINED WITH THE SPECIFIED VALUE OF *N* (0, 1, 02262 M01S00600.sxkd2 +++|* OR 2). 02263 M01S00601.sxkd2 +++|* 02264 M01S00602.sxkd2 +++|* PROC KSM(REJECT). 02265 M01S00603.sxkd2 +++|* 02266 M01S00604.sxkd2 +++|* ENTRY ARRAY KBINPUT (DEFINED IN *COMBKDD*) CONTAINS THE 02267 M01S00605.sxkd2 +++|* IMAGE OF THE *SMI* COMMAND. 02268 M01S00606.sxkd2 +++|* 02269 M01S00607.sxkd2 +++|* EXIT *SM* PORTION OF *K* DISPLAY HAS BEEN UPDATED. 02270 M01S00608.sxkd2 +++|* 02271 M01S00609.sxkd2 +++|* MESSAGES 02272 M01S00610.sxkd2 +++|* 02273 M01S00611.sxkd2 +++|* 02274 M01S00612.sxkd2 +++|* 02275 M01S00613.sxkd2 +++|* 02276 M01S00614.sxkd2 +++|# 02277 M01S00615.sxkd2 +++| 02278 M01S00616.sxkd2 +++| 02279 M01S00617.sxkd2 +++|# 02280 M01S00618.sxkd2 +++|**** PROC KSM - XREF LIST BEGIN. 02281 M01S00619.sxkd2 +++|# 02282 M01S00620.sxkd2 +++| 02283 M01S00621.sxkd2 +++| XREF 02284 M01S00622.sxkd2 +++| BEGIN 02285 M01S00623.sxkd2 +++| PROC KDSM; # PAINT *SM* PORTION OF K-DISPLAY # 02286 M01S00624.sxkd2 +++| FUNC XDXB I; # CONVERT DISPLAY TO INTEGER # 02287 M01S00625.sxkd2 +++| END 02288 M01S00626.sxkd2 +++| 02289 M01S00627.sxkd2 +++|# 02290 M01S00628.sxkd2 +++|**** PROC KSM - XREF LIST END. 02291 M01S00629.sxkd2 +++|# 02292 M01S00630.sxkd2 +++| 02293 M01S00631.sxkd2 +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02294 M01S00632.sxkd2 +++|*CALL COMBFAS 02295 M01S00633.sxkd2 +++|*CALL COMBKDA 02296 M01S00634.sxkd2 +++|*CALL COMBKDD 02297 M01S00635.sxkd2 +++|*CALL COMBUDT 02298 M01S00636.sxkd2 +++| 02299 M01S00637.sxkd2 +++| ITEM CHDRD C(1); # CHARACTER VALUE FOR DRDS # 02300 M01S00002.mse0011 +++| ITEM FINDSM B; # STORAGE MODULE FOUND IN UDT # 02301 M01S00638.sxkd2 +++| ITEM I I; # INTEGER VALUE FOR DRDS # 02302 M01S00639.sxkd2 +++| ITEM NUMDRD I; # NUMBER OF DRDS FOR ST OR DS # 02303 M01S00640.sxkd2 +++| ITEM REJECT B; # REJECT OPERATOR RESPONSE FLAG # 02304 M01S00641.sxkd2 +++| ITEM TEMPSM C(1); # *SM* ID FROM INPUT COMMAND # 02305 M01S00642.sxkd2 +++| CONTROL EJECT; 02306 M01S00643.sxkd2 +++| 02307 M01S00644.sxkd2 +++|# 02308 M01S00645.sxkd2 +++|* CHECK FOR VALID *SM* COMMAND. 02309 M01S00646.sxkd2 +++|# 02310 M01S00647.sxkd2 +++| 02311 M01S00648.sxkd2 +++| REJECT = FALSE; # ASSUME VALID COMMAND # 02312 M01S00649.sxkd2 +++| TEMPSM = C<2,1>KB$SCAN[0];
Line S00650 Modification History | |
---|---|
M01 (Added by) | sxkd2 |
M02 (Updated by) | mse0011 |
Seq # *Modification Id* Act ----------------------------+ 02313 M02S00650.mse0011 ---| IF TEMPSM GR MAXSMUNIT # SM ORDINAL LARGER THAN MAX # 02314 M01S00003.mse0011 +++| FINDSM = FALSE; # LOCATED SM IN UDT FLAG # 02315 M01S00004.mse0011 +++| SLOWFOR I = 1 STEP 1 UNTIL MAXSMUNIT 02316 M01S00005.mse0011 +++| DO 02317 M01S00006.mse0011 +++| BEGIN # CHECK FOR SM ID IN EACH UDT # 02318 M01S00007.mse0011 +++| IF SM$ID[I] EQ TEMPSM 02319 M01S00008.mse0011 +++| THEN 02320 M01S00009.mse0011 +++| BEGIN # SM LOCATED IN UDT # 02321 M01S00010.mse0011 +++| FINDSM = TRUE; 02322 M01S00011.mse0011 +++| KUDTIND = I; 02323 M01S00012.mse0011 +++| TEST I; 02324 M01S00013.mse0011 +++| END 02325 M01S00014.mse0011 +++| 02326 M01S00015.mse0011 +++| END # CHECK FOR SM ID IN EACH UDT # 02327 M01S00016.mse0011 +++| 02328 M01S00017.mse0011 +++| 02329 M01S00018.mse0011 +++| 02330 M01S00019.mse0011 +++| IF NOT FINDSM # SM NOT DEFINED IN THE UDT # 02331 M01S00651.sxkd2 +++| OR TEMPSM EQ 0 ## 02332 M01S00652.sxkd2 +++| OR KACTCOUNT NQ 0 # MESSAGE(S) AWAITING "GO" # 02333 M01S00653.sxkd2 +++| OR (C<3,1>KB$SCAN[0] NQ " " # NOT VALID POST-CHARACTERS # 02334 M01S00654.sxkd2 +++| AND C<3,1>KB$SCAN[0] NQ 0 02335 M01S00655.sxkd2 +++| AND C<3,5>KB$SCAN[0] NQ ",DRD=") 02336 M01S00656.sxkd2 +++| THEN 02337 M01S00657.sxkd2 +++| BEGIN # INVALID # 02338 M01S00658.sxkd2 +++| REJECT = TRUE; 02339 M01S00659.sxkd2 +++| RETURN; 02340 M01S00660.sxkd2 +++| END # INVALID # 02341 M01S00661.sxkd2 +++| 02342 M01S00662.sxkd2 +++| 02343 M01S00663.sxkd2 +++| 02344 M01S00664.sxkd2 +++| IF C<3,5>KB$SCAN[0] EQ ",DRD=" 02345 M01S00665.sxkd2 +++| THEN 02346 M01S00666.sxkd2 +++| BEGIN # COMMAND FORM *SMI,DRD=.....* # 02347 M01S00667.sxkd2 +++| 02348 M01S00668.sxkd2 +++|# 02349 M01S00669.sxkd2 +++|* COMMAND FORM IS *SMI,DRD=ST=N* 02350 M01S00670.sxkd2 +++|* OR *SMI,DRD=DS=N* 02351 M01S00671.sxkd2 +++|# 02352 M01S00672.sxkd2 +++| 02353 M01S00673.sxkd2 +++| 02354 M01S00674.sxkd2 +++| CHDRD = C<11,1>KB$SCAN[0]; # NUMBER DRDS FOR ST OR DS # 02355 M01S00675.sxkd2 +++| I = XDXB(CHDRD,0,NUMDRD); 02356 M01S00676.sxkd2 +++| 02357 M01S00677.sxkd2 +++| IF NOT (I EQ 0 AND NUMDRD GQ 0 02358 M01S00678.sxkd2 +++| AND NUMDRD LQ MAX$SMDRD) 02359 M01S00679.sxkd2 +++| THEN # INVALID NUMBER OF DRDS SPECIFIED # 02360 M01S00680.sxkd2 +++| BEGIN # DO NOT ALTER *UDT* # 02361 M01S00681.sxkd2 +++| REJECT = TRUE; 02362 M01S00682.sxkd2 +++| RETURN; 02363 M01S00683.sxkd2 +++| END 02364 M01S00684.sxkd2 +++| 02365 M01S00685.sxkd2 +++|# 02366 M01S00686.sxkd2 +++|* COMMAND FORM *SMI,DRD=ST=N* OR *SMI,DRD=DS=N* IS VALID. 02367 M01S00687.sxkd2 +++|# 02368 M01S00688.sxkd2 +++| 02369 M01S00689.sxkd2 +++| 02370 M01S00690.sxkd2 +++| IF C<8,3>KB$SCAN[0] EQ "ST=" 02371 M01S00691.sxkd2 +++| THEN # PARAMETER IS *ST* # 02372 M01S00692.sxkd2 +++| BEGIN # SET MAX DRDS FOR STAGING #
Line S00693 Modification History | |
---|---|
M01 (Added by) | sxkd2 |
M02 (Updated by) | mse0011 |
Seq # *Modification Id* Act ----------------------------+ 02373 M02S00693.mse0011 ---| SM$STNUM[TEMPSM] = NUMDRD; 02374 M01S00020.mse0011 +++| SM$STNUM[KUDTIND] = NUMDRD; 02375 M01S00694.sxkd2 +++| END 02376 M01S00695.sxkd2 +++| 02377 M01S00696.sxkd2 +++| ELSE 02378 M01S00697.sxkd2 +++| BEGIN # PARAM MUST BE *DS* # 02379 M01S00698.sxkd2 +++| IF C<8,3>KB$SCAN[0] EQ "DS=" 02380 M01S00699.sxkd2 +++| THEN 02381 M01S00700.sxkd2 +++| BEGIN # SET MAX DRDS FOR DESTAGING #
Line S00701 Modification History | |
---|---|
M01 (Added by) | sxkd2 |
M02 (Updated by) | mse0011 |
Seq # *Modification Id* Act ----------------------------+ 02382 M02S00701.mse0011 ---| SM$DSNUM[TEMPSM] = NUMDRD; 02383 M01S00021.mse0011 +++| SM$DSNUM[KUDTIND] = NUMDRD; 02384 M01S00702.sxkd2 +++| END 02385 M01S00703.sxkd2 +++| 02386 M01S00704.sxkd2 +++| ELSE 02387 M01S00705.sxkd2 +++| BEGIN # ST/DS PARAMETER IS INVALID # 02388 M01S00706.sxkd2 +++| REJECT = TRUE; 02389 M01S00707.sxkd2 +++| RETURN; 02390 M01S00708.sxkd2 +++| END 02391 M01S00709.sxkd2 +++| END # *DS* PARAM # 02392 M01S00710.sxkd2 +++| 02393 M01S00711.sxkd2 +++| END # COMMAND FORM *SMI,DRD=.....* # 02394 M01S00712.sxkd2 +++| 02395 M01S00713.sxkd2 +++|# 02396 M01S00714.sxkd2 +++|* AT THIS POINT, THE COMMAND HAS BEEN VALIDATED WHETHER IT IS THE 02397 M01S00715.sxkd2 +++|* *K.SMI* FORM OR THE *K.SMI,DRD.....* FORM. IF THE LATTER FORM, 02398 M01S00716.sxkd2 +++|* THE *UDT* HAS ALREADY BEEN UPDATED TO REFLECT THE NEW MAXIMUM 02399 M01S00717.sxkd2 +++|* NUMBER OF DRD-S FOR STAGING (*ST*) OR DESTAGING (*DS*). IT IS 02400 M01S00718.sxkd2 +++|* NOW TIME TO REPAINT THE K-DISPLAY TO REFLECT THE *SM* SELECTED. 02401 M01S00719.sxkd2 +++|# 02402 M01S00720.sxkd2 +++| 02403 M01S00721.sxkd2 +++| KSMID = TEMPSM; 02404 M01S00722.sxkd2 +++| KDSM; # DISPLAY *SM* INFORMATION # 02405 M01S00723.sxkd2 +++| RETURN; 02406 M01S00724.sxkd2 +++| 02407 M01S00725.sxkd2 +++| END # KSM # 02408 M01S00726.sxkd2 +++| 02409 M01S00727.sxkd2 +++| 02410 M01S00728.sxkd2 +++| 02411 M01S00729.sxkd2 +++| TERM
cdc/nos2.source/opl.opl871/deck/sxkd.001.txt ยท Last modified: by 127.0.0.1