diff --git a/Mark-XVI/SYMBOL/DCMCP.esp_m b/Mark-XVI/SYMBOL/DCMCP.esp_m index f5df544..1b07aa9 100644 --- a/Mark-XVI/SYMBOL/DCMCP.esp_m +++ b/Mark-XVI/SYMBOL/DCMCP.esp_m @@ -23561,3 +23561,252 @@ EOF: END COOLOFF;% 38376000 HEADER[4].[11:1]~1; END; 38411800 END; IF ACCESS = 4 THEN ACCESS := 2; 38411900 END;% 38412000 + END;% 38412100 + HEADER[4].[43:1]:=FPB[FNUM+3].[15:1]; 38412200 + IF (NOT REW) OR LOCK OR REL OR TIME THEN 38419000 + BEGIN 38420000 + FORMS~HEADER[3]; 38421000 + STREAM(PF~[FIB[4]],D~FPB[FNUM+2].[18:30],H~[HEADER[3]],S~[T]); 38422000 + BEGIN SI~PF;SI~SI+5;DS~3 OCT;SI~LOC D;DI~H;DS~8 OCT END; 38423000 + HEADER[3]~(P(DUP,LOD,SSN))&(P(DUP))[12:30:18]&T[2:38:10]; 38424000 + END; 38425000 + IF LOCK OR HEADER[4].[43:1] THEN 38426000 + BEGIN IF NOT HEADER[4] THEN%FILE IS BEING CREATED 38427000 + BEGIN 38428000 + IF KRUNCH THEN KRUNCHER(HEADER); 38429000 + HEADER[4].[9:3]:=5;% MARK AS NEW FORMAT,ACCESSED 38430000 + IF JAR[P1MIX,0] < 0 AND FIB[4].[29:1] THEN 38431000 +% COMPILER CLOSING CODE FILE WITH LOCK *********************************38432000 + BEGIN 38433000 + SEG0:=[M[TYPEDSPACE(62,SEGZEROAREAV)]]&30[SIZE];38434000 + SKEL ~ 31 INX SEG0; T3 ~ JAR[P1MIX,2].[FF]; 38435000 + % READ IN SEGMENT ZERO 38436000 + DISKWAIT(-SEG0.[CF],30,HEADER[10]]; 38437000 + % READ IN SKELETON SHEET 38438000 + DISKWAIT(-SKEL.[CF],30,T3); 38439000 + IF SKEL[20]<0 THEN SKEL[20] ~ SEG0[7].[FF]; 38440000 + IF JAR[P1MIX,2].[8:10]=1 THEN 38441000 + BEGIN % COMPILE AND GO **********************38442000 + SKEL[6]:=JAR[P1MIX,6]& 38442100 + (PRT[P1MIX,3].[8:10]+20)[CTF]; 38442200 + DISKWAIT(SKEL.[CF],30,T3); 38443000 + COMPGO ~ TRUE; 38444000 + END 38445000 + ELSE 38446000 + BEGIN % COMPILE TO LIBRARY ******************38447000 + FOR T1 ~ 15 STEP 1 UNTIL 22 DO 38448000 + SEG0[T1] ~ SKEL[T1]; 38449000 + IF (T2 ~ SKEL[13]) = 0 THEN GO TO L3; 38450000 + SKEL[13] ~ 0; % IN CASE I CALL TERMINATE 38451000 + DISKWAIT(SKEL.[CF],30,T3); 38452000 + IF(T1:=DISKADDRESS(MID,FID,FPB[FNUM+3],HEADER[7]:= % (SHM)38453000 + (*P(DUP))+1,HEADER,0))=0 THEN 38454000 + FILEMESS(-"DISK ","OVRFLOW",MID,FID,38455000 + R,D,C); 38456000 + SEG0[15] ~ T1 ~ HEADER[7]; 38457000 + L1: DISKWAIT(-SKEL.[CF],30,T2); 38458000 + FORGETESPDISK(T2); 38459000 + IF (T2~SKEL[29]) = 0 THEN GO TO L2; 38460000 + IF(T3:=DISKADDRESS(MID,FID,FPB[FNUM+3],HEADER[7]:= % (SHM)38461000 + (*P(DUP))+1,HEADER,0))=0 THEN 38462000 + FILEMESS(-"DISK ","OVRFLOW",MID,FID,38463000 + R,D,C); 38464000 + SKEL[29] ~ T3 ~ HEADER[7]; 38465000 + DISKWAIT(SKEL.[CF],30, 38466000 + I~HEADER[T1 DIV HEADER[8]+10] + 38467000 + T1 MOD HEADER[8]); 38468000 + T1 ~ T3; 38469000 + GO TO L1; 38470000 + L2: DISKWAIT(SKEL.[CF],30, 38471000 + I~HEADER[T1 DIV HEADER[8]+10] + 38472000 + T1 MOD HEADER[8]); 38473000 + L3: SEG9[6] ~ P(DUP,LOD,SSN); % "NEW FORMAT" 38474000 + HEADER[4].[10:1]~1;%MARK AS PROGRAM FILE 38475000 + DISKWAIT(SEG0.[CF],30,HEADER[10]); 38476000 + END COPY OF LABEL EQUATION CARDS; 38477000 + FORGETSPACE(SEG0); 38478000 + IF HEADER[7]20; % 1=PUD %175-38581910 + R:=M[FIB[14].[3:16]+6]; % PB REEL NO. %175-38581920 + GO TO ZERODKADDR; %175-38581930 + END; 38581940 + IF FIB[17]<0 THEN 38582000 + BEGIN M[ALPHA].[FF]~@60020; IF TYPE<20 THEN CKBKUP; 38583000 + M[ALPHA].[18:1]~0; CKBKUP END% 38584000 + ELSE IF FIB[17]20 THEN M[T+5].[3:1]:=0; 38607100 + R:=M[T+6]; 38607200 + $ SET OMIT = DATACOM AND RJE 38607299 + P(0); 38607300 + $ POP OMIT 38607301 + $ SET OMIT = NOT(DATACOM AND RJE ) 38607399 + M[T+6]:=P(XCH); 38607900 + M[T+5].[2:1]~0; 38607950 + DISKWAIT(T,30,M[T-1]); 38608000 + D:=R&1[TOREELNO]; 38608100 +AGAIN: P(DIRECTORYSEARCH(-(IF I THEN P(PUD) ELSE P(PBD)),D,14), 38608200 + DEL); 38608300 + IF D!R THEN 38608400 + BEGIN STREAM(ONE:=1, D:=[D]); 38608500 + BEGIN SI:=LOC ONE; DS:=8 ADD END; 38608600 + GO AGAIN; 38608700 + END; 38608800 + $ SET OMIT = NOT PACKETS 38608890 + IF (T1:=PSEUDOMIX[P1MIX])=0 THEN P(1) ELSE 38608900 + IF PACKETPAGE[T1-32]=0 THEN P(1) ELSE P(0); 38608910 + IF P OR 1 THEN %105-38608920 + BEGIN PBCOUNT:=PBCOUNT+1; 38609000 + $ POP OMIT 38609010