1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-01-21 17:54:42 +00:00

Commit DCMCP transcription as of 2012-09-26.

This commit is contained in:
Paul Kimpel 2012-09-26 21:29:41 +00:00
parent 1409f8ccce
commit bab248fefc

View File

@ -12492,3 +12492,100 @@ XXIT: DI:=BUFF; DI:=DI-8; DS:=8LIT"INV KBD "; 16040600
END 16043700
ELSE TYPE:=0; 16043750
END PROCEDURE KEYINSCAN; 16043800
PROCEDURE KEYIN0(B,KTRX); VALUE B,KTRX; REAL B,KTRX; 16044000
16045000
BEGIN 16046000
INTEGER ZZSTA; 16047000
REAL BUFF, KTR, TYPE, MIX, A, I, J, K; 16048000
REAL U = A; 16048100
ARRAY BUFA = BUFF[*]; 16049000
16050000
16051000
16052000
LABEL DSM, CUTY, FORGET, ERROR, EXIT 16053000
,AX ,IL ,QT ,OU ,WY ,RY ,DS ,TF ,RM ,DP 16054000
,DD ,ST ,CM ,SV ,CL ,BK ,TI ,PR ,RO ,IT 16055000
,WI ,RXIT ,RC 16056000
16057000
16058000
16059000
; 16060000
SWITCH S:= ERROR 16061000
,AX ,IL ,IL ,QT ,OU ,WY ,RY ,DS ,DS ,TF 16062000
,TF ,RM ,DP ,DD ,DD ,DD ,ST ,CM ,SV ,CL 16063000
,BK ,RXIT ,RY ,RXIT ,RXIT ,RI ,PR ,RO ,RO ,IT 16064000
,WI ,RXIT ,RC 16065000
16066000
16067000
16068000
; 16069000
SUBROUTINE SPOIT; M[BUFF-1]:=B AND @7570000000000; 16070000
16071000
BUFF :=KTRX.[15:15]; 16072000
MIX :=KTRX.[ 9:6 ]; 16073000
TYPE :=KTRX.[ 2:7 ]; 16074000
KTR :=KTRX.[15:33]; 16075000
ZZSTA :=0 & (M[BUFF-2])[9:9:9]; 16076000
GO TO S[TYPE]; 16077000
AX: 16078000
I := BUFF; 16079000
GO TO RXIT; 16080000
IL: 16081000
IF (I:=ANVIL(TYPE=2,KTR)) GTR PSEUDOMAXT THEN % IL=2, UL=3 16082000
IF I LSS 70 THEN GO TO ERROR; 16083000
TYPE := 2; % IL 16084000
IF I GTR PSEUDOMAXT THE BUFF:=1; 16085000
GO TO RXIT; 16086000
OU: 16087000
STREAM(A:="LP" : B:="MT", C:="DK", D:="CP", KTR); 16088000
BEGIN 16089000
SI := KTR; 16090000
DI := LOC A; DI := DI+6; 16091000
TALLY:=1; IF SC="~" THEN GO TO XT; 16092000
TALLY:=2; IF 2 SC=DC THEN GO TO XT; 16093000
TALLY:=3; SI:=SI-2; DI:=DI+14; IF 2 SC=DC THEN GO TO XT; 16094000
TALLY:=4; SI:=SI-2; DI:=DI+6; IF 2 SC=DC THEN GO TO XT; 16095000
TALLY:=5; SI:=SI-2; DI:=DI+6; IF 2 SC=DC THEN GO TO XT; 16096000
TALLY:=0; 16097000
XT: A := TALLY; 16098000
END; 16099000
IF(I:=P) = 0 THEN GO TO ERROR; 16100000
GO TO RXIT; 16101000
WY: 16102000
IF MIX LSS 63 THEN GO TO RXIT; % <MIX> WY 16103000
SPOIT; 16104000
A:=0; 16105000
FOR I:=1 STEP 1 UNTIL MIXMAX DO 16106000
IF *[JARROW[I]] NEQ 0 THEN 16107000
IF REPLY[I] LSS 0 THEN REPLY[A:=I]:=VWY; 16108000
IF A!0 THEN GO TO FORGET; 16109000
M[BUFF-1]:=FLAG(-"NULL "); 16109500
GO TO ERROR; 16110000
DS: 16111000
IF MIX=63 THEN % "DS A/B" 16112000
BEGIN 16113000
NAMEID(J,KTR); NAMEID(K,KTR); NAMEID(K,KTR); 16114000
FOR MIX:=1 STEP 1 UNTIL MIXMAX DO 16115000
IF *[JARROW[MIX]] NEQ 0 THEN 16116000
IF (J EQV ABS(JAR[MIX,0]))=(NOT 0) THEN 16117000
IF (K EQV ABS(JAR[MIX,1]))=NOT 0 THEN 16118000
BEGIN 16118100
TABCNT[MIX]:=TABCNT[MIX]+1; 16118200
GO TO DSM; 16118300
END; 16118400
GO TO ERROR; % NOT FOUND 16119000
END; % IF MIX NOT GIVEN 16120000
IF JARROW[MIX] NEQ 0 THEN 16121000
BEGIN 16122000
DSM: JAR[MIX,6].[1:1]:=((TYPE=9) OR (TYPE=20)); % DS=8,SD=9,CL=20 16123000
TERMINATE(MIX&(IF B.[9:9] GTR 0 THEN 61 ELSE 3)[CTF]); 16124000
HALT; 16125000
NOPROCESSTOG:= NOPROCESSTOG-1; 16126000
GO TO FORGET; 16127000
END; 16128000
GO TO ERROR; 16129000
TF: 16130000
IF TYPE=11 THEN SPOIT; % SF=11 16131000
CHANGEFACTOR(KTR,TYPE=10); % TF=10,SF=11 16132000
GO TO EXIT; 16133000
RM: 16134000