1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-04 02:04:53 +00:00

Commit DCMCP transcription as of 2012-11-07.

This commit is contained in:
Paul Kimpel
2012-11-07 14:14:05 +00:00
parent 1321e49d30
commit f0952b1a7a

View File

@@ -15397,3 +15397,105 @@ PROCEDURE SELECTRUN1; 20011200
LINK = LINDX + 1, 20017100
SENSEVAL = LINK + 1, 20017200
SPDVAL = SENSEVAL + 1, 20017300
S2 = SPDVAL + 1, 20017400
FB = S2 + 1, 20017500
FPB = FB + 1; 20017600
20017700
REAL FT1 = NT1, 20017800
TYPEDISK = NT3; 20017900
20018000
COMMENT THE VALUE OF "TYPE" DETERMINES WHICH PORTIONS OF 20018100
THIS PROCEDURE WILL BE EXECUTED. THIS PROCEDURE CAN ALSO 20018200
DETERMINE WHICH PORTIONS OF PROCEDURE "SELECTRUN" WILL BE 20018300
EXECUTED BY ASSIGNING A NEGATIVE VALUE TO "TYPE" BEFORE 20018400
RETURNING TO THAT PROCEDURE. 20018500
END OF COMMENT; 20018600
20018700
DEFINE STARTING = 1#, 20018800
CONTINUEING = 2#, 20018900
QUITTING = 3#, 20019000
RUNING = 4#, 20019100
PASSING = 5#, 20019200
EQUATING = 6#; 20019300
20019400
DEFINE XCLOCKTIME = 20019500
(((NT2:=(XCLOCK DIV 3600)) MOD 60 + (NT2 DIV 60)|100 + 20019600
0.5 ) DIV 1)#; 20019700
20019800
DEFINE ACTUALDISKADDRESS(ACTUALDISKADDRESS1) = 20019900
((JAR[MIX,((NT4:=ACTUALDISKADDRESS1) DIV (NT3:=JAR[MIX,8]))+10] 20020000
+ (NT4 MOD NT3) + 0.5) DIV 1)#; 20020100
20020110
$ SET OMIT = NOT(PACKETS) 20020119
DEFINE UNITNO = S[23].[2:6]#; % ORIGINATING UNIT 20020120
$ POP OMIT 20020121
20020200
LABEL CONTINUE, DLX, EXIT, LEM, RMSG, UNBLK, STOP; 20020300
20020400
SUBROUTINE DELINK; 20020500
% DELINKS THE SHEET ENTRY AND RETURNS SHEET DISK SPACE 20020600
BEGIN 20020700
STREAM(A:=S[3].[8:10],B:=P(.SCHEDULEIDS)); 20020800
BEGIN % MARK SCHEDULE SLOT "OPEN" 20020900
SKIP A DB; DS:=RESET; 20021000
END; 20021100
IF F = 0 THEN % SHEET ENTRY NOT PASSED AS PARAMETER 20021200
BEGIN 20021300
IF NEXTLINK=0 THEN SHEET[LEVEL].[FF]:=PREVLINK; 20021400
IF PREVLINK=0 THEN 20021500
BEGIN 20021600
SHEET[LEVEL].[CF]:=NEXTLINK; DO DLX; 20021700
END; 20021800
IF LBL=0 THEN 20021900
BEGIN 20021910
M[(LBL:=[M[SPACE(30)]]&30[8:38:10]) INX NOT 1].[9:6]:=0; 20021920
END; 20021930
DISKWAIT(-(LBL INX 0), 30, PREVLINK); 20022000
LBL[29]:=NEXTLINK; 20022100
DISKWAIT( (LBL INX 0), 30, PREVLINK); 20022200
DLX: FORGETESPDISK(THISLINK); 20022300
END; % IF SHEET ENTRY NOT A PARAMETER 20022400
END DELINK; 20022500
20022600
P(MYMSCW, STF); 20022700
20022800
P(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); % FOR VARIABLES LOCAL TO THIS 20022900
% PROCEDURE ONLY 20023000
20023100
IF TYPE=CONTINUEING THEN GO TO CONTINUE; 20023200
IF TYPE=STARTING THEN % SEARCH THE SHEET QUEUE TO FIND A CANDIDATE 20023300
% FOR SELECTION 20023400
BEGIN 20023500
PASSLEVEL:=RESTARTING; 20023800
COMMENT "PASSLEVEL" WILL BE NEGATIVE WHEN A JOB IS BEING RE-STARTED.20023900
UNDER THIS CONDITION, THE TEST FOR "LEVEL GEQ PASSLEVEL" WILL 20024000
FAIL AND NO OTHER JOBS WILL BE SELECTED UNTIL THE RE-START JOB 20024100
HAS BEEN INITIATED. 20024200
END OF COMMENT; 20024300
FOR LEVEL:=0 STEP 1 UNTIL SHEETMAX DO % FOR ALL "SHEET PRIORITIES" 20024600
BEGIN 20024700
PREVLINK:=NEXTLINK:=; % RESET FOR EACH "LEVEL" 20024800
% IF THERE IS AN ENTRY IN THE SHEET, SEE IF IT WILL FIT 20024900
IF(THISLINK:=SHEET[LEVEL].[CF]) NEQ 0 THEN GO TO LEM; 20025000
20025100
CONTINUE: 20025200
20025300
% "NEXTLINK" OBTAINED FROM "SHEET[29]" BELOW 20025400
% IF THERE IS ANOTHER ENTRY AT THIS LEVEL, PROCESS IT NOW 20025500
IF(THISLINK:=NEXTLINK) NEQ 0 THEN GO TO LEM; 20025600
END; 20025700
TYPE := -QUITTING; % END OF SHEET SEARCH 20025800
GO TO EXIT; 20025900
20026000
LEM: 20026100
20026200
% AT THIS POINT, THERE IS A CANDIDATE FOR SELECTION 20026300
IF S = 0 THEN % NO SHEET SPACE OBTAINED YET 20026400
BEGIN 20026500
S := [M[TYPEDSPACE(31,SHEETAREAV)]] & 30[SIZE];% %167-20026600
END; 20026700
20026800
% . . . . . . . . . . . . . . . . . . . . . . . 20026900
% READ SHEET ENTRY INTO CORE AT "S" 20027000
% . . . . . . . . . . . . . . . . . . . . . . . 20027100
20027200