diff --git a/SYMBOL/DCMCP.esp_m b/SYMBOL/DCMCP.esp_m index 078a8d8..8386847 100644 --- a/SYMBOL/DCMCP.esp_m +++ b/SYMBOL/DCMCP.esp_m @@ -8100,3 +8100,133 @@ DEFINE DATEOUT(DATEOUT1)=GIMEDATE(DATEOUT1,0)#; %CHANGE DATE & SPOUT IT 08342000 CHANGEDATE(BUFF);% 08373000 END ELSE SPOUT(BUFF INX MEMORY[BUFF -1]); 08374000 END;% 08375000 + PROCEDURE CHANGEDATE(BUFF); VALUE BUFF; REAL BUFF;% 08376000 + BEGIN REAL B,C,D,T;% 08377000 + SLEEP([TOGLE],HOLDMASK); 08378000 + LOCKTOG(HOLDMASK); 08379000 + B ~ SPACE(30);% 08380000 + DISKWAIT(-B,-30,DIRECTORYTOP); 08381000 + D:= M[B+1];% 08381100 + M[B+1] ~ DATE;% 08383000 + M[B+18]:=XCLOCK; 08383100 + DISKIO(T,B-1,-30,DIRECTORYTOP); 08384000 + IF BUFF!0 THEN 08384100 + BEGIN% 08384200 + DATEOUT (BUFF);% 08385000 + C := TYPEDSPACE(5,MAINTBUFFAREAV);% %167-08385100 + M[C ]:= M[C+2]:= 0;% 08385200 + M[C+3]:= D;% 08385300 + STREAM(DATE,A:=C+1); BEGIN SI:=LOC DATE; DS:=8 OCT; END;% 08385400 + LINKUP(17,C);% 08385500 + END;% 08385600 + SLEEP([T],IOMASK);% 08386000 + FORGETSPACE(B);% 08387000 + UNLOCKTOG(HOLDMASK); 08388000 + END;% 08389000 + PROCEDURE SETIME(BUFF); VALUE BUFF; REAL BUFF;% 08390000 + BEGIN REAL B=BUFF,T;% 08391000 + REAL I,R;% 08392000 + LABEL EXIT;% 08393000 + REAL CLOCK=XCLOCK;% 08394000 + INTEGER CLCK=CLOCK;;% 08395000 + T ~ -1;% 08396000 + STREAM(B,T~[T]);% 08397000 + BEGIN SI ~ B;% 08398000 + L: IF SC = " " THEN% 08399000 + BEGIN SI ~ SI+1; GO TO L END;% 08400000 + IF SC < "0" THEN GO TO X;% 08401000 + K: IF SC } "0" THEN% 08402000 + BEGIN SI ~ SI+1; TALLY ~ TALLY+1;% 08403000 + GO TO K END;% 08404000 + B ~ TALLY; SI ~ SI-B; DS ~ B OCT;% 08405000 + X:% 08406000 + END;% 08407000 + BUFF ~ BUFF.[15:15]-1;% 08408000 + IF T } 0 AND T DIV 100 < 24 AND T MOD 100 < 60 THEN% 08409000 + BEGIN R := TYPEDSPACE(5,MAINTBUFFAREAV);% %167-08410000 + M[R+2]:= XCLOCK;% 08410100 + CLCK:= (T DIV 100 | 60 + T MOD 100)|3600;% 08410200 + CLOCK ~ (CLOCK OR @77)+1;% 08411000 + TIMEOUT (BUFF);% 08412000 + M[R]:= M[R+3]:= 0;% 08412100 + STREAM(DATE,A:=R+1);% 08412200 + BEGIN SI:=LOC DATE; DS:=8 OCT; END;% 08412300 + LINKUP(17,R);% 08412400 + GO TO EXIT;% 08413000 + END;% 08414000 + SPOUT(BUFF INX MEMORY[BUFF-1]); 08415000 + EXIT:% 08416000 + END;% 08417000 + REAL PROCEDURE FORMESS(BUFF,H1); VALUE BUFF,H1; REAL BUFF,H1; 08418000 + BEGIN REAL B,H,U,M1; 08418500 + INTEGER I; 08418700 + LABEL AGAIN,EXIT,AWAY; 08419000 + M1:=M[BUFF.[15:15]-2]; 08419100 + STREAM(BUFF:); 08419200 + BEGIN SI:=BUFF; 08419300 + L: IF SC=" " THEN BEGIN SI:=SI+1; GO TO L END; 08419400 + BUFF:=SI; 08419500 + END; 08419600 + BUFF:=P; 08419700 +AGAIN: U:=FORMESS:=UNITIN(TINU,BUFF); 08420000 + IF U{31 THEN BEGIN SLEEP([TOGLE],STATUSMASK); 08421000 + IF LABELTABLE[U] < 0 THEN% 08422000 + BEGIN STREAM(A:=TINU[U],B:=B:=SPACE(5)); 08424000 + BEGIN SI ~ LOC A; SI ~ SI + 5; DS ~ 3 CHR;% 08425000 + DS:=24LIT" IN USE(TO BE READIED)~"; 08426000 + END;% 08427000 + SAVEWORD := SAVEWORD AND NOT TWO(U); 08427100 + SPOUT(B); 08428000 + IF H1 THEN GO AWAY ELSE GO TO EXIT; 08429000 + END; 08429500 + LABELTABLE[U]:=@114&H1[1:47:1]; 08430000 + MULTITABLE[U] ~ 0;% 08431000 + I ~ TWO(U);% 08432000 + IF H1 THEN B:=NOT 0 ELSE 08433000 + BEGIN B:=NOT I; H:=I:=0; 08434000 + IF U=23 THEN H:=P(.READERA); 08434100 + IF U=24 THEN H:=P(.READERB); 08434200 + IF H!0 THEN 08434300 + BEGIN UNITCODE[U-23]:=-0; 08434400 + IF (*H).[CF]!0 THEN 08434500 + BEGIN FORGETSPACE(*H-2); 08434600 + M[H]:=0; 08434700 + END; 08434800 + END; 08434900 + END; 08434950 + READY ~ READY AND B OR I;% 08435000 + RRRMECH ~ RRRMECH AND B OR I;% 08436000 + SAVEWORD ~ SAVEWORD AND B OR I;% 08437000 + END; 08437050 +EXIT: IF NOT H1 THEN 08437100 + BEGIN IF U GTR 31 THEN 08437150 + BEGIN STREAM(BUFF,B:=B:=SPACE(5)); 08437200 + BEGIN DS:=10 LIT"INV KBD RY"; 08437250 + SI:=BUFF; DS:=3 CHR; 08437300 + DS:=LIT"~"; 08437350 + END; 08437400 + SPOUT(B INX M1); 08437450 + END; 08437500 + STREAM(OK:=0,BUFF:); 08437550 + BEGIN SI:=BUFF; 08437600 + 3(IF SC=" " THEN JUMP OUT; 08437650 + IF SC="," THEN JUMP OUT; 08437700 + IF SC="~" THEN JUMP OUT TO L3; 08437750 + SI:=SI+1); 08437800 + L1: IF SC=" " THEN 08437850 + L2: BEGIN SI:=SI+1; GO TO L1 END; 08437900 + IF SC="," THEN GO TO L2; 08437950 + BUFF:=SI; 08438000 + IF SC!"~" THEN TALLY:=1; 08438050 + L3: OK:=TALLY; 08438100 + END; 08438150 + BUFF:=P; 08438200 + IF P THEN GO AGAIN; 08438250 +AWAY: FORMESS:=-1; 08438300 + END; 08438350 + I:=SPACE(30); %146-08438400 + DISKWAIT(-I,30,DIRECTORYTOP-SYSNO); %146-08438410 + M[I+29]:=SAVEWORD; %146-08438420 + DISKWAIT( I,30,DIRECTORYTOP-SYSNO); %146-08438430 + FORGETSPACE(I); %146-08438440 + END; 08438500