mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-01-23 02:27:37 +00:00
Commit DCMCP transcription as of 2012-08-08; finish ESPOL/ALGOL
proofreading and comparison pass.
This commit is contained in:
parent
9fee3e79e0
commit
528ca70e70
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user