1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-10 12:18:49 +00:00

Commit DCMCP transcription as of 2013-02-08; improve injected-syllable handling in SyllableDebugger.

This commit is contained in:
Paul Kimpel
2013-02-08 15:59:20 +00:00
parent c40f304527
commit ddd3fc5168

View File

@@ -21019,4 +21019,102 @@ UP: COPYING:=TRUE; 28258600
IF (NOT B6500) AND (M[AROW[0] INX NOT 0] NEQ 30) 28276000
THEN P(1) 28276200
ELSE 28276400
BEGIN STREAM(A:=0;D:=H); 28276600
BEGIN STREAM(A:=0:D:=H); 28276600
BEGIN SI:=D; 30(IF SB THEN BEGIN TALLY:=1; JUMP OUT END28276800
ELSE SI:=SI+8); A:=TALLY; 28277000
END; 28277200
IF P THEN P(1) 28277400
ELSE IF (NT1:=H[9].[43:5]) GTR 20 OR NT1=0 28277600
THEN P(1) 28277800
ELSE 28278000
BEGIN SV:=0; 28278200
FOR W:=10 STEP 1 UNTIL 29 DO 28278400
BEGIN SV:=SV+(NT2:=(H[W] NEQ 0)); 28278600
IF W GEQ NT1+10 THEN IF NT2 THEN W:=31; 28278800
END; 28279000
IF ((W=31) OR (SV GTR NT1) OR ((SV NEQ 0) AND 28279200
(H[8]=0))) 28279400
THEN P(1) 28279600
ELSE P(0); 28279800
END; 28280000
END; 28280200
BH: BHS:=P(XCH); 28280400
IF BHS THEN 28280600
IF DESTIN.UNITNUM = 19 THEN GO BADHDR ELSE GO TTPE; %148-28280800
IF DESTIN.UNITNUM = 19 %148-28281000
THEN 28281200
BEGIN % TAPE TO DISK (LOAD) 28281400
% 28281401
%******************************************* 28281402
% OUTPUT TO DISK 28281403
%******************************************* 28281404
% 28281405
IF MUSTADD THEN T:=0 ELSE% ADD FILE NOT ON DISK %160-28281550
IF (T:=DIRECTORYSEARCH(MFID&(3+4|(ADDV))[1:45:3], 28281600
FID,4+ADDV)) GEQ 2 28281800
THEN 28282000
IF T=2 THEN NOTCOPIED(25) 28282200
ELSE BEGIN 28282400
IF (SV:=NOT ADDV AND M[T+2] NEQ 0 AND 28282600
((USERCODE[P1MIX] EQV ABS(MCP)) NEQ NOT 0) AND 28282800
((USERCODE[P1MIX] EQV ABS(M[T+2])) NEQ NOT 0)) OR 28283000
(LATEST AND M[T+3].[30:18] GTR H[3].[30:18]) THEN 28283200
BEGIN 28283400
HEADERUNLOCK(ABS(MFID),FID,T); 28283600
T:=-1; 28283800
NOTCOPIED(64-SV|23); 28284000
END; 28284200
END 28284400
ELSE 28284600
IF T=1 THEN % IT WAS "IF-ED" 28284800
BEGIN T:=-1; 28285000
NOTCOPIED(45); 28285200
END ELSE IF DSED THEN ABORT; 28285400
OE:=(T GEQ 64); 28285600
IF T=0 OR (T GEQ 64 AND NOT ADDV) THEN 28285800
BEGIN % LOAD IT 28286000
IF T GEQ 64 THEN 28286200
IF M[T+8]!H[8] THEN 28286400
BEGIN 28286600
FORGETSPACE(T); 28286800
P(DIRECTORYSEARCH(MFID,FID,6),DEL); 28287000
T:=0; 28287200
END; 28287400
IF T=0 THEN 28287600
BEGIN 28287800
T:=GETSPACE(30,DISKHEADERAREAV,1)+2;% %167-28288000
MOVE(30,T-1,T); 28288200
M[T+4]:=-0&SYSNO[4:46:2]&1[2:47:1]; 28288400
END ELSE 28288600
TMP:=T.[18:15]; 28288800
HDR := [M[T]] & 30[8:38:10]; 28289000
FOR W:=H[9].[43:5]+10 STEP 1 UNTIL 29 DO H[W]:=0; 28289200
IF (HDR[9]:=(*P(DUP)) AND 31) = 0 THEN HDR[7]:=-1; 28289400
FOR W:=HDR[9]+10 STEP 1 UNTIL 29 DO HDR[W]:=0; 28289600
W:=0; 28289800
WHILE (W:=W+1) LEQ H[9].[43:5] DO 28290000
IF H[9+W]!0 THEN 28290200
IF (H[9+W]:=HDR[9+W]) LEQ 0 THEN 28290400
OK: IF(H[9+W]:=PETUSERDISK(H[8] OR M,COMMON)) LSS 1 THEN 28290600
BEGIN 28290800
WY: TEMP:=SPACE(10); 28291000
STREAM(J:=JARROW[P1MIX],P1MIX,H:=H[8],M:=MFID,F:=FID,28291200
TEMP); 28291400
BEGIN DS:=14 LIT "#NO USER DISK:"; SI:=J;SI:=SI+1; 28291600
DS:=7CHR;DS:=LIT"/";SI:=SI+1;DS:=7CHR;DS:=LIT"="; 28291800
SI:=LOC P1MIX;DS:=2DEC;J:=DI;DI:=DI-2;DS:=FILL;DI:=J;28292000
DS:=LIT"(";SI:=LOC M;SI:=SI+1;DS:=7CHR;SI:=SI+1; 28292200
DS:=LIT"/";DS:=7CHR;DS:=2LIT")-";SI:=LOC H;DS:=8 DEC;28292400
DS:=7LIT" SEGS.~"; DI:=DI-15; DS:=7FILL; 28292600
END; 28292800
SPOUT(TEMP); 28293000
REPLY[P1MIX] := -(TEMP:=VIF&VWY[36:42:6]& 28293200
VOF[30:42:6]&VOK[24:42:6]); 28293400
COMPLEXSLEEP(REPLY[P1MIX]}0 OR DSED 28293600
OR PRT(P1MIX,@25]=5); 28293800
IF NOT WHYSLEEP(TEMP) THEN GO TO WY; 28294000
IF REPLY[P1MIX]=VOK THEN GO TO OK; 28294200
IF REPLY[P1MIX]=VOF THEN 28294400
BEGIN COMMON := COMMON AND NOT M; GO TO OK; END; 28294600
FOR W:=W STEP -1 UNTIL 1 DO 28294800
IF H[9+W]!0 THEN 28295000