mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-01-17 16:33:09 +00:00
Commit DCMCP transcription as of 2012-09-08.
This commit is contained in:
parent
c72efc1044
commit
afc80058eb
@ -10790,3 +10790,182 @@ TAPERD: IF (IOD:=WAITIO(B,@2000040,UNIT)).[43:1] THEN 13062000
|
||||
IF T THEN GO TO NOGET; % DSED OR QTED 13064000
|
||||
END; 13065000
|
||||
IF IOD.[42:1] OR X THEN 13066000
|
||||
BEGIN 13067000
|
||||
IF (X:=NOT X) THEN GO TO TAPERD; 13068000
|
||||
IF M[B INX 3] THEN 13069000
|
||||
IF LOOKFORTAPE THEN GO TO TAPERDR ELSE GO NOGET; 13070000
|
||||
END; 13071000
|
||||
IF (X:=M[B INX NOT 0])!90 THEN 13072000
|
||||
IF (X AND @7775)=16 THEN % OLD FORMAT TAPE 13073000
|
||||
BEGIN 13074000
|
||||
INREC.[CF]:=B INX 1; 13075000
|
||||
INREC[17]:=M[B]&0[20:20:7]; 13076000
|
||||
END ELSE GO TO NOGET 13077000
|
||||
ELSE 13078000
|
||||
BEGIN 13079000
|
||||
INREC:=90 INX INREC; 13080000
|
||||
IF RECOUNT=@77777 THEN RECOUNT~INREC[17].[CF] ELSE 13080100
|
||||
TAPECHK: IF (RECOUNT:=RECOUNT INX 1) ! INREC[17].[CF] THEN 13081000
|
||||
BEGIN 13082000
|
||||
ABORT: ABORTMSG; 13083000
|
||||
NOGET: P(0); 13084000
|
||||
GO TO GOTTEN; 13085000
|
||||
END; 13086000
|
||||
END; 13087000
|
||||
END; 13088000
|
||||
P(1); 13089000
|
||||
GOTTEN: GET:=P; 13090000
|
||||
END; 13091000
|
||||
% -13091500
|
||||
%%%%% START OF CODE %%%%% -13091600
|
||||
% 13092000
|
||||
% START IS USED FOR A NEW FILE (OR NEW PACKET), RESTART ISUSED FOR 13092010
|
||||
% A COPY (OR A NEW FILE WITHIN A PACKET). 13092020
|
||||
13092030
|
||||
START: 13093000
|
||||
IF COMMON=0 THEN GO TO INITIATE; 13094000
|
||||
IF INITIALIZE THEN 13095000
|
||||
BEGIN 13096000
|
||||
RESTART: IF GET THEN 13097000
|
||||
BEGIN 13098000
|
||||
IF INREC[17].[1:11]=0 THEN SIGNIN ELSE GO GOTIT; 13099000
|
||||
IF UNIT!18 THEN RECOUNT:=INREC[17].[CF]; 13101000
|
||||
END ELSE % BAD FIRST BLOCK, USUALLY EOT. 13102000
|
||||
BEGIN P(1); 13103000
|
||||
GO TO TESTEND; 13104000
|
||||
END; 13105000
|
||||
MAINLOOP: 13106000
|
||||
IF STOPSET(P1MIX) THEN STOPM(0); 13107000
|
||||
IF (T:=PRT[P1MIX,@25])!0 OR DSED THEN 13108000
|
||||
BEGIN 13109000
|
||||
IF T<0 THEN % + OR - SPECIFIED. 13110000
|
||||
BEGIN 13111000
|
||||
QTSPEC; 13112000
|
||||
GO TO MAINLOOP; 13113000
|
||||
END; 13114000
|
||||
ABORTMSG; % DSED OR QTED 13115000
|
||||
GO TO QUIT; 13116000
|
||||
END; 13117000
|
||||
IF GET THEN % VALID REC. WRITE IT & CONTINUE 13118000
|
||||
BEGIN 13119000
|
||||
GOTIT: 13119100
|
||||
$ SET OMIT = NOT RJE 13120000
|
||||
IF V EQL 22 AND INREC[17].[18:1] THEN ELSE %206-13127899
|
||||
BEGIN % %750-13127990
|
||||
P(WAITIO(INREC[17]&(INREC)[CTC]&8[21:42:6],0,V),DEL); 13128000
|
||||
LINECT~*P(DUP) + 1; % %750-13128010
|
||||
END; % %750-13128020
|
||||
GO TO MAINLOOP; 13129000
|
||||
END; 13130000
|
||||
END; 13131000
|
||||
QUIT: 13132000
|
||||
P(0); 13133000
|
||||
TESTEND: 13134000
|
||||
P:=P; % I=1 IF FIRST GET FAILS, ELSE 0.13135000
|
||||
IF STARTANEWFILE THEN GO TO START ELSE GO TO RESTART; 13136000
|
||||
END OF PRINTING BACKUP TAPE AND DISK FILES; 13137000
|
||||
$ SET OMIT = NOT(DATACOM ) 13198999
|
||||
$ SET OMIT = NOT(DATACOM AND RJE ) 13299999
|
||||
REAL PROCEDURE ANALYSIS;% 14000000
|
||||
BEGIN% 14001000
|
||||
REAL ICW,IRCW,INCW,CL,T1,C,T2=SYLLABLE ;% 14002000
|
||||
$ SET OMIT = NOT(NEWLOGGING) 14002099
|
||||
LABEL GETOUT;% 14003000
|
||||
COMMENT ANALYSIS EXAMINS THE SYLLABLE WHICH CAUSED THE INTURRUPT AND% 14004000
|
||||
FROM THE RELATIVE ADDRESS OF THE SYLLABLE (INCLUDING% 14005000
|
||||
VARIENT OPERATOR CONSIDERATIONS) COMPUTES THE LOCATION,C, 14006000
|
||||
OF A COPY OF THE DESCRIPTOR ON THE TOP OF THE STACK.% 14007000
|
||||
THE PREVIOUS TWO SYLLABLES ARE FETCHED BY THE STREAM% 14008000
|
||||
STATEMENT GETSYLLABLES WHICH ALSO ADJUSTS THE C-L REGIST- 14009000
|
||||
ERS PROPERLY.% 14010000
|
||||
FINALLY THE STACK IS ADJUSTED AS FOLLOWS:% 14011000
|
||||
DECREASE S BY 1,IF OPDC OR DESC% 14012000
|
||||
XCH A AND B REGISTERS,IF COC OR CDC% 14013000
|
||||
OTHERWISE LEAVE THE SAME. ;14014000
|
||||
CHECKSTACKSPACE;% %WF 14014100
|
||||
$ SET OMIT = NOT(NEWLOGGING) 14014199
|
||||
INCW = PRT[P1MIX,8];% 14015000
|
||||
IF INCW.[CF]<@1777 THEN % SOMETHING VERY WRONG %602-14015200
|
||||
BEGIN JAR[P1MIX,6].[1:1]~1; % SD BIT %602-14015210
|
||||
FILEMESS(-"SEE MCP"," PATCH ",0,0,0,0,602)%KLUGE MSG&DS14015220
|
||||
END; 14015240
|
||||
POLISH(.INCW,IOR);% 14016000
|
||||
IRCW ~ * INCW ;% 14017000
|
||||
ICW ~ *( (NOT 0) INX INCW);% 14018000
|
||||
CL ~ (IRCW INX 0) & IRCW[30:10:2];% 14019000
|
||||
STREAM (T1~0,T2~0,CL:X~0);% 14020000
|
||||
BEGIN% 14021000
|
||||
SI~CL; SI~SI-2 ; CL ~ SI; DI ~ LOC T2; DI~DI+6;% 14022000
|
||||
DS ~ 2 CHR; SI ~ SI-3;% 14023000
|
||||
IF SC = "/" THEN% 14024000
|
||||
BEGIN% 14025000
|
||||
SI~SI-1; IF SC ="0" THEN% 14026000
|
||||
BEGIN TALLY~1; T1~TALLY ;CL ~ SI END;% 14027000
|
||||
END;% 14028000
|
||||
END GETSYLLABLE ;% 14029000
|
||||
POLISH(.CL,~,.T2,~,.T1,~);% 14030000
|
||||
IF INCW.[32:1] THEN% 14031000
|
||||
BEGIN COMMENT P-BIT IN CHARACTER MODE ;% 14032000
|
||||
IF T2 = @4441 THEN% 14033000
|
||||
BEGIN COMMENT ENTER CHARACTER MODE;% 14034000
|
||||
P(M[(IRCW ~ *(NOT 0 INX INCW ~ PRT[P1MIX,8] ~% 14035000
|
||||
(NOT 1 INX INCW)&0[32:1:1])).[18:15]]&% 14036000
|
||||
1[16:47:1]&0[18:18:15],(NOT 0)INX INCW,~); 14037000
|
||||
C ~ INCW INX 0 -2;% 14038000
|
||||
END ELSE BEGIN% 14039000
|
||||
IF MEMORY[ C ~ IRCW.[18:15]-T2.[36:6]].[1:3] = 4% 14040000
|
||||
THEN% 14041000
|
||||
BEGIN% 14042000
|
||||
IF T2.[42:6]= @53 THEN BEGIN% 14043000
|
||||
COMMENT CONTROL WORD MEANS CHARACTER MODE RELEASE;% 14044000
|
||||
T1~PRT[P1MIX,9]~M[(*((NOT 1)INX INCW)).[18:15]].[33:15];% 14045000
|
||||
POLISH(M[T1],0,0);% 14046000
|
||||
IF M[T1].[20:1] THEN CONTINUITYBIT;% 14047000
|
||||
PROGRAMRELEASE;% 14048000
|
||||
END% 14049000
|
||||
END;% 14050000
|
||||
IF T2 = 0 THEN GO TO GETOUT;% 14051000
|
||||
END% 14052000
|
||||
END% 14053000
|
||||
ELSE% 14054000
|
||||
BEGIN% 14055000
|
||||
IF T2.[46:1] THEN% 14056000
|
||||
BEGIN% 14057000
|
||||
C ~ ICW.[33:15];% 14058000
|
||||
POLISH(ICW, (NOT 1)INX INCW, ~,IRCW,% 14059000
|
||||
PRT[P1MIX,8]~INCW ~ (NOT 0)INX INCW ,~);% 14060000
|
||||
END OPDC DESC PART% 14061000
|
||||
ELSE% 14062000
|
||||
BEGIN% 14063000
|
||||
C ~ INCW INX 0 -2;% 14064000
|
||||
IF (NT1 ~ T2 AND @77) = @41 THEN% 14065000
|
||||
BEGIN C ~C-1 ;% 14066000
|
||||
POLISH(MEMORY[C],MEMORY[C+1],[MEMORY[C]], ~ ,[MEMORY[C+1] 14067000
|
||||
],~);% 14068000
|
||||
END COC CDC PART% 14069000
|
||||
ELSE IF NT1 = @31 THEN% 14070000
|
||||
BEGIN COMMENT THIS IS A BRANCH;% 14071000
|
||||
GETOUT: CL ~ P([PRT[P1MIX,1]],DUP,T2,XCH,~) INX @600000;14072000
|
||||
END BRANCH PART% 14073000
|
||||
ELSE IF NT1 = @35 THEN GO TO GETOUT; COMMENT RETURN;% 14074000
|
||||
END ALL SYLLABLES BUT OPDC DESC ;% 14075000
|
||||
END WORD MODE INTERRUPT ;% 14076000
|
||||
POLISH(IRCW & CL[33:33:15]&CL[10:30:2],INCW,~) ;% 14077000
|
||||
ANALYSIS ~ C ;% 14078000
|
||||
$ SET OMIT = NOT(NEWLOGGING) 14078099
|
||||
END ANALYSIS OF P BIT ;% 14079000
|
||||
SAVE INTEGER PROCEDURE ACTUALOVERLAYADDRESS(TYPE, MIX, LOC); 14105000
|
||||
VALUE TYPE, MIX, LOC; 14106000
|
||||
INTEGER TYPE, MIX, LOC; 14107000
|
||||
BEGIN INTEGER T = +1; 14108000
|
||||
$ SET OMIT = NOT(AUXMEM) 14108999
|
||||
IF TYPE THEN % CODE... 14110000
|
||||
BEGIN 14110100
|
||||
$ SET OMIT = NOT(AUXMEM) 14110999
|
||||
LOC := LOC INX 0; 14112000
|
||||
T := JAR[MIX,LOC DIV (T:=JAR[MIX,8])+10]+LOC MOD T; 14113000
|
||||
END ELSE % BETTER BE DATA... 14114000
|
||||
$ SET OMIT = NOT(AUXMEM) 14114999
|
||||
T~DALOC[MIX,LOC.[33:6]+P(DUP)-1]+LOC.[39:9] 14117000
|
||||
$ SET OMIT = NOT(AUXMEM) 14117999
|
||||
END; 14119000
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user