mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-01-26 19:41:41 +00:00
Okay, really commit the INCL2OMIT and BICTOEBCDIC utilities as stated in the previous commit, r312.
This commit is contained in:
184
tools/BICTOEBCDIC.alg_m
Normal file
184
tools/BICTOEBCDIC.alg_m
Normal file
@@ -0,0 +1,184 @@
|
||||
$ SET LINEINFO 00000100
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00001000
|
||||
%% SRCE/MISC/B5500/BIC2EBCDIC %%00001100
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00001200
|
||||
% CONVERTS 6-BIT BCL-CODED BINARY DATA FILES TO 8-BIT EBCDIC-CODED 00001300
|
||||
% FILES, SPECIFICALLY B5500 CODE FILES GENERATED BY ESPOLXEM. 00001400
|
||||
% BCL INPUT FILE IS "DISK" AND OUTPUT EBCDIC FILE IS "TEXT". 00001500
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00010000
|
||||
% 2013-03-10 P.KIMPEL 00010010
|
||||
% ORIGINAL VERSION, CLONED PARTLY FROM ESPOLXEM SOURCE. 00010020
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00099900
|
||||
00100000
|
||||
BEGIN 00100100
|
||||
00110000
|
||||
INTEGER 00110100
|
||||
BICRECSIZE, 00110200
|
||||
BICRECWORDS, 00110300
|
||||
BICBLOCKFACTOR, 00110400
|
||||
TEXTRECSIZE, 00110500
|
||||
TEXTRECWORDS; 00110600
|
||||
00130000
|
||||
ARRAY 00130100
|
||||
BIC[0:29], 00130200
|
||||
EBC[0:39]; 00130300
|
||||
00160000
|
||||
FILE 00160100
|
||||
DISK(KIND=DISK, DEPENDENTSPECS, FILEUSE=IN), 00160200
|
||||
TEXT(KIND=DISK, MAXRECSIZE=240, BLOCKSIZE=3600, FRAMESIZE=8, 00160300
|
||||
AREAS=10, AREASIZE=1008, FLEXIBLE, FILEKIND=DATA); 00160400
|
||||
00180000
|
||||
TRANSLATETABLE 00180100
|
||||
BICTOEBCDIC ( % 00180200
|
||||
EBCDIC TO "?", 00180300
|
||||
48"00" TO "0", % DIGIT-ZERO 00180400
|
||||
48"01" TO "1", 00180500
|
||||
48"02" TO "2", 00180600
|
||||
48"03" TO "3", 00180700
|
||||
48"04" TO "4", 00180800
|
||||
48"05" TO "5", 00180900
|
||||
48"06" TO "6", 00181000
|
||||
48"07" TO "7", 00181100
|
||||
48"08" TO "8", 00181200
|
||||
48"09" TO "9", 00181300
|
||||
48"0A" TO "#", 00181400
|
||||
48"0B" TO "@", 00181500
|
||||
48"0C" TO "?", 00181600
|
||||
48"0D" TO ":", 00181700
|
||||
48"0E" TO ">", 00181800
|
||||
48"0F" TO "}", % GEQ 00181900
|
||||
48"10" TO "+", 00182000
|
||||
48"11" TO "A", 00182100
|
||||
48"12" TO "B", 00182200
|
||||
48"13" TO "C", 00182300
|
||||
48"14" TO "D", 00182400
|
||||
48"15" TO "E", 00182500
|
||||
48"16" TO "F", 00182600
|
||||
48"17" TO "G", 00182700
|
||||
48"18" TO "H", 00182800
|
||||
48"19" TO "I", 00182900
|
||||
48"1A" TO ".", 00183000
|
||||
48"1B" TO "[", 00183100
|
||||
48"1C" TO "&", 00183200
|
||||
48"1D" TO "(", 00183300
|
||||
48"1E" TO "<", 00183400
|
||||
48"1F" TO "~", % LEFT-ARROW 00183500
|
||||
48"20" TO "|", % TIMES 00183600
|
||||
48"21" TO "J", 00183700
|
||||
48"22" TO "K", 00183800
|
||||
48"23" TO "L", 00183900
|
||||
48"24" TO "M", 00184000
|
||||
48"25" TO "N", 00184100
|
||||
48"26" TO "O", % LETTER-O 00184200
|
||||
48"27" TO "P", 00184300
|
||||
48"28" TO "Q", 00184400
|
||||
48"29" TO "R", 00184500
|
||||
48"2A" TO "$", 00184600
|
||||
48"2B" TO "*", 00184700
|
||||
48"2C" TO "-", 00184800
|
||||
48"2D" TO ")", 00184900
|
||||
48"2E" TO ";", 00185000
|
||||
48"2F" TO "{", % LEQ 00185100
|
||||
48"30" TO " ", % BLANK 00185200
|
||||
48"31" TO "/", 00185300
|
||||
48"32" TO "S", 00185400
|
||||
48"33" TO "T", 00185500
|
||||
48"34" TO "U", 00185600
|
||||
48"35" TO "V", 00185700
|
||||
48"36" TO "W", 00185800
|
||||
48"37" TO "X", 00185900
|
||||
48"38" TO "Y", 00186000
|
||||
48"39" TO "Z", 00186100
|
||||
48"3A" TO ",", 00186200
|
||||
48"3B" TO "%", 00186300
|
||||
48"3C" TO "!", % NEQ 00186400
|
||||
48"3D" TO "=", 00186500
|
||||
48"3E" TO "]", 00186600
|
||||
48"3F" TO """); % QUOTE 00186700
|
||||
00300000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00300100
|
||||
PROCEDURE UNPACKBICTOEBCDIC(S, SX, D, DX, N); 00300200
|
||||
VALUE SX, DX, N; 00300300
|
||||
ARRAY S, D[0]; 00300400
|
||||
REAL SX, DX, N; 00300500
|
||||
BEGIN COMMENT 00300600
|
||||
UNPACKS 6-BIT BIC CHARACTERS TO 8-BIT EBCDIC CHARACTERS FROM 00300700
|
||||
ARRAY S TO ARRAY D. SX IS THE 6-BIT CHARACTER OFFSET INTO S AND 00300800
|
||||
DX IS THE 8-BIT CHARACTER OFFSET INTO D. N IS THE NUMBER OF 00300900
|
||||
CHARACTERS TO UNPACK. UNPACKING PROCEEDS IN A REVERSE DIRECTION 00301000
|
||||
SO THAT SOURCE AND DESTINATION CAN REFER TO THE SAME LOCATION. 00301100
|
||||
; 00301200
|
||||
REAL 00301300
|
||||
NC, % NR CHARS LEFT TO UNPACK 00301400
|
||||
SA, % SOURCE ACCUMULATOR WORD, 00301500
|
||||
SB, % SOURCE BIT NBR 00301600
|
||||
SW, % SOURCE WORD INDEX 00301700
|
||||
DA, % DESTINATION ACCUMULATOR WORD 00301800
|
||||
DB, % DESTINATION BIT NBR 00301900
|
||||
DW; % DESTINATION WORD INDEX 00302000
|
||||
00302100
|
||||
SW:= (SX+N-1) DIV 8; 00302200
|
||||
SB:= 47-((SX+N-1) MOD 8)*6; 00302300
|
||||
DW:= (DX+N-1) DIV 6; 00302400
|
||||
DB:= 47-((DX+N-1) MOD 6)*8; 00302500
|
||||
SA:= S[SW]; 00302600
|
||||
DA:= D[DW]; 00302700
|
||||
NC:= N; 00302800
|
||||
WHILE NC > 0 DO 00302900
|
||||
BEGIN 00303000
|
||||
DA:= * & (SA.[SB:6])[DB:8]; 00303100
|
||||
NC:= *-1; 00303200
|
||||
IF NC > 0 THEN 00303300
|
||||
BEGIN 00303400
|
||||
IF SB < 47 THEN 00303500
|
||||
SB:= *+6 00303600
|
||||
ELSE 00303700
|
||||
BEGIN 00303800
|
||||
SB:= 5; 00303900
|
||||
SA:= S[SW:= *-1]; 00304000
|
||||
END; 00304100
|
||||
00304200
|
||||
IF DB < 47 THEN 00304300
|
||||
DB:= *+8 00304400
|
||||
ELSE 00304500
|
||||
BEGIN 00304600
|
||||
D[DW]:= DA; 00304700
|
||||
DB:= 7; 00304800
|
||||
DA:= D[DW:= *-1]; 00304900
|
||||
END; 00305000
|
||||
END; 00305100
|
||||
END WHILE; 00305200
|
||||
00305300
|
||||
D[DW]:= DA; 00305400
|
||||
REPLACE POINTER(D[DX DIV 6],8)+(DX MOD 6) BY 00305500
|
||||
POINTER(D[DX DIV 6],8)+(DX MOD 6) FOR N WITH BICTOEBCDIC; 00305600
|
||||
END UNPACKBICTOEBCDIC; 00305700
|
||||
00900000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00900100
|
||||
%% OUTER BLOCK 00900200
|
||||
00900300
|
||||
OPEN(DISK); 00900400
|
||||
BICRECSIZE:= DISK.MAXRECSIZE; 00900500
|
||||
BICBLOCKFACTOR:= DISK.BLOCKSIZE DIV BICRECSIZE; 00900600
|
||||
BICRECWORDS:= (DISK.FRAMESIZE*BICRECSIZE + 47) DIV 48; 00900700
|
||||
IF SIZE(BIC) < BICRECWORDS THEN 00900800
|
||||
RESIZE(BIC, BICRECWORDS); 00900900
|
||||
00901000
|
||||
TEXTRECSIZE:= BICRECWORDS*8; 00901100
|
||||
TEXTRECWORDS:= (TEXTRECSIZE + 5) DIV 6; 00901200
|
||||
TEXT.MAXRECSIZE:= TEXTRECSIZE; 00901300
|
||||
TEXT.BLOCKSIZE:= TEXTRECSIZE*BICBLOCKFACTOR; 00901400
|
||||
TEXT.AREASIZE:= (BICBLOCKFACTOR+999) DIV BICBLOCKFACTOR; 00901500
|
||||
IF SIZE(EBC) < TEXTRECWORDS THEN 00901600
|
||||
RESIZE(EBC, TEXTRECWORDS); 00901700
|
||||
00901800
|
||||
WHILE NOT READ(DISK, BICRECSIZE, BIC) DO 00901900
|
||||
BEGIN 00902000
|
||||
UNPACKBICTOEBCDIC(BIC, 0, EBC, 0, TEXTRECSIZE); 00902100
|
||||
WRITE(TEXT, TEXTRECSIZE, EBC); 00902200
|
||||
END READ SOURCE; 00908800
|
||||
00908900
|
||||
CLOSE(TEXT, CRUNCH); 00909000
|
||||
CLOSE(DISK); 00909100
|
||||
00999800
|
||||
END. 00999900
|
||||
260
tools/INCL2OMIT.alg_m
Normal file
260
tools/INCL2OMIT.alg_m
Normal file
@@ -0,0 +1,260 @@
|
||||
$ SET LINEINFO 00000100
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00001000
|
||||
%% SRCE/MISC/B5500/INCL2OMIT %%00001100
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00001200
|
||||
% CONVERTS $INCLUDE AND $OMIT PRAGMAS IN THE B5500 MARK XIII MCP 00001300
|
||||
% SOURCE TO THE NEWER $OMIT SCHEME USED IN LATER RELEASES. READS THE 00001400
|
||||
% MCP SOURCE FROM INTNAME "SOURCE" AND WRITES CHANGED LINES TO 00001500
|
||||
% INTNAME "PATCH". 00001600
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00010000
|
||||
% 2013-03-08 P.KIMPEL 00010010
|
||||
% ORIGINAL VERSION. 00010020
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00099900
|
||||
00100000
|
||||
BEGIN 00100100
|
||||
DEFINE 00100200
|
||||
ALL1 = REAL(NOT FALSE) #; 00100300
|
||||
00100400
|
||||
INTEGER 00100500
|
||||
LASTSEQNR, 00100600
|
||||
LEFT, 00100700
|
||||
OMITDEPTH, 00100750
|
||||
OMITTYPE, 00100800
|
||||
POPCOUNT, 00100900
|
||||
POPSEQNR, 00101000
|
||||
STOPSEQNR, 00101100
|
||||
THISSEQNR, 00101200
|
||||
TOKLEFT, 00101300
|
||||
TOKLENGTH, 00101400
|
||||
TOKOFFSET, 00101500
|
||||
X; 00101600
|
||||
00101700
|
||||
POINTER 00101800
|
||||
P; 00101900
|
||||
00102000
|
||||
ARRAY 00102100
|
||||
POPLIST[0:15]; 00102200
|
||||
00102300
|
||||
EBCDIC ARRAY 00102400
|
||||
PREC[0:89], 00102500
|
||||
REC[0:89], 00102600
|
||||
TOKEN[0:89]; 00102700
|
||||
00102800
|
||||
FILE 00102900
|
||||
SOURCE(KIND=DISK, DEPENDENTSPECS, FILEUSE=IN, 00103000
|
||||
TITLE="SRCE/MISC/B5500/MARKXIII/MCP."), 00103100
|
||||
PATCH(KIND=DISK, MAXRECSIZE=15, BLOCKSIZE=420, FRAMESIZE=48, 00103200
|
||||
AREAS=10, AREASIZE=1008, FLEXIBLE, FILEKIND=ESPOLSYMBOL, 00103300
|
||||
TITLE="PATCH/MISC/B5500/MARKXIII/MCP/INCL2OMIT."); 00103350
|
||||
00103400
|
||||
TRUTHSET 00103500
|
||||
NUMBERS ("0123456789"), 00103600
|
||||
ALPHANUM (NUMBERS OR "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 00103700
|
||||
00300000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00300100
|
||||
INTEGER PROCEDURE SCANNER; 00300200
|
||||
BEGIN 00300300
|
||||
INTEGER 00300400
|
||||
LEFT; 00300500
|
||||
POINTER 00300600
|
||||
P; 00300700
|
||||
00300800
|
||||
SCAN P:REC[TOKOFFSET] FOR LEFT:TOKLEFT WHILE=" "; 00300900
|
||||
IF LEFT = 0 THEN 00301000
|
||||
BEGIN 00301100
|
||||
TOKLENGTH:= TOKLEFT:= 0; 00301200
|
||||
REPLACE TOKEN BY 48"00"; 00301300
|
||||
END 00301400
|
||||
ELSE 00301500
|
||||
BEGIN 00301600
|
||||
TOKOFFSET:= *+TOKLEFT-LEFT; 00301700
|
||||
IF P IN NUMBERS THEN 00301800
|
||||
REPLACE TOKEN[1] BY P FOR TOKLEFT:LEFT WHILE IN NUMBERS 00301900
|
||||
ELSE IF P IN ALPHANUM THEN 00302000
|
||||
REPLACE TOKEN[1] BY P FOR TOKLEFT:LEFT WHILE IN ALPHANUM 00302100
|
||||
ELSE 00302200
|
||||
BEGIN 00302300
|
||||
REPLACE TOKEN[1] BY P FOR 1; 00302400
|
||||
TOKLEFT:= LEFT-1; 00302500
|
||||
END; 00302600
|
||||
00302700
|
||||
TOKLENGTH:= LEFT-TOKLEFT; 00302800
|
||||
TOKOFFSET:= *+TOKLENGTH; 00302900
|
||||
REPLACE TOKEN BY TOKLENGTH.[7:48] FOR 1; 00303000
|
||||
END; 00303100
|
||||
00303200
|
||||
SCANNER:= TOKLENGTH; 00303300
|
||||
END SCANNER; 00303400
|
||||
00303500
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00303600
|
||||
INTEGER PROCEDURE INSERTPOP(STOPSEQNR); 00303700
|
||||
VALUE STOPSEQNR; 00303800
|
||||
INTEGER STOPSEQNR; 00303900
|
||||
BEGIN 00304000
|
||||
INTEGER 00304100
|
||||
X; 00304200
|
||||
00304300
|
||||
X:= POPLIST[0]; 00304400
|
||||
IF X > 0 THEN 00304500
|
||||
X:= MASKSEARCH(0, ALL1, POPLIST[X]); 00304600
|
||||
00304700
|
||||
IF X < 1 THEN 00304800
|
||||
BEGIN 00304850
|
||||
X:= POPLIST[0]:= *+1; 00304900
|
||||
IF SIZE(POPLIST) <= X THEN 00305000
|
||||
RESIZE(POPLIST, X+16, RETAIN); 00305100
|
||||
END; 00305200
|
||||
00305300
|
||||
POPLIST[X]:= STOPSEQNR; 00305400
|
||||
OMITDEPTH:= *+1; 00305450
|
||||
INSERTPOP:= X; 00305500
|
||||
END INSERTPOP; 00305600
|
||||
00305700
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00305800
|
||||
INTEGER PROCEDURE REMOVEPOP(STOPSEQNR); 00305900
|
||||
VALUE STOPSEQNR; 00306000
|
||||
INTEGER STOPSEQNR; 00306100
|
||||
BEGIN 00306200
|
||||
INTEGER 00306300
|
||||
X; 00306400
|
||||
00306500
|
||||
X:= POPLIST[0]; 00306600
|
||||
WHILE X > 0 DO 00306700
|
||||
BEGIN 00306800
|
||||
IF POPLIST[X] > STOPSEQNR THEN 00306900
|
||||
X:= *-1 00307000
|
||||
ELSE 00307100
|
||||
BEGIN 00307200
|
||||
REMOVEPOP:= POPLIST[X]; 00307300
|
||||
POPLIST[X]:= 0; 00307400
|
||||
IF POPLIST[0] = X THEN 00307500
|
||||
POPLIST[0]:= *-1; 00307600
|
||||
00307700
|
||||
X:= 0; % KILL THE LOOP 00307800
|
||||
IF OMITDEPTH > 0 THEN 00307820
|
||||
OMITDEPTH:= *-1; 00307840
|
||||
END; 00307900
|
||||
END; 00308000
|
||||
END REMOVEPOP; 00308100
|
||||
00900000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00900100
|
||||
%% OUTER BLOCK 00900200
|
||||
00900300
|
||||
REPLACE REC BY " " FOR 72, "0" FOR 8, " " FOR 10; 00900500
|
||||
REPLACE REC BY "$# MARKXIII/MCP INCL2OMIT"; 00900600
|
||||
WRITE(PATCH, 15, REC); 00900700
|
||||
00900800
|
||||
WHILE NOT READ(SOURCE, 15, REC) DO 00900900
|
||||
BEGIN 00901000
|
||||
TOKOFFSET:= 0; 00901100
|
||||
TOKLEFT:= 72; 00901200
|
||||
LASTSEQNR:= THISSEQNR; 00901300
|
||||
THISSEQNR:= INTEGER(REC[72], 8); 00901400
|
||||
IF THISSEQNR <= LASTSEQNR THEN 00901500
|
||||
DISPLAY("SEQUENCE ERROR " !! STRING(LASTSEQNR,8) !! " : " !! 00901600
|
||||
STRING(THISSEQNR,8)); 00901700
|
||||
00901800
|
||||
POPCOUNT:= 0; 00901900
|
||||
POPSEQNR:= REMOVEPOP(THISSEQNR); 00901950
|
||||
WHILE POPSEQNR > 0 DO 00902000
|
||||
BEGIN 00902100
|
||||
IF POPSEQNR >= THISSEQNR THEN 00902200
|
||||
BEGIN 00902250
|
||||
POPCOUNT:= *+1; 00902300
|
||||
POPSEQNR:= REMOVEPOP(THISSEQNR); 00902320
|
||||
END 00902340
|
||||
ELSE 00902400
|
||||
BEGIN 00902500
|
||||
REPLACE PREC BY " " FOR 72, POPSEQNR FOR 8 DIGITS, " " FOR 10; 00902600
|
||||
REPLACE P:PREC BY " $POP OMIT"; 00902700
|
||||
LASTSEQNR:= POPSEQNR; 00902710
|
||||
DO BEGIN 00902720
|
||||
POPSEQNR:= REMOVEPOP(THISSEQNR); 00902730
|
||||
IF POPSEQNR = LASTSEQNR THEN 00902740
|
||||
REPLACE P:P BY " OMIT"; 00902750
|
||||
END 00902760
|
||||
UNTIL POPSEQNR ^= LASTSEQNR; 00902770
|
||||
WRITE(PATCH, 15, PREC); 00902800
|
||||
END; 00903000
|
||||
END WHILE; 00903100
|
||||
00903200
|
||||
SCANNER; 00903300
|
||||
IF TOKEN ^= 48"01""$" THEN 00903400
|
||||
IF POPCOUNT > 0 THEN 00903405
|
||||
BEGIN 00903410
|
||||
REPLACE PREC BY " " FOR 72, THISSEQNR-1 FOR 8 DIGITS, " " FOR 10; 00903415
|
||||
REPLACE P:PREC BY " $POP "; 00903420
|
||||
WHILE POPCOUNT > 0 DO 00903425
|
||||
BEGIN 00903430
|
||||
REPLACE P:P BY "OMIT "; 00903435
|
||||
POPCOUNT:= *-1; 00903440
|
||||
END WHILE; 00903445
|
||||
WRITE(PATCH, 15, PREC); 00903450
|
||||
END; 00903455
|
||||
ELSE 00903460
|
||||
BEGIN 00903500
|
||||
SCANNER; 00903600
|
||||
OMITTYPE:= (IF TOKEN=48"07""INCLUDE" THEN 1 ELSE 00903700
|
||||
IF TOKEN=48"04""OMIT" THEN 2 ELSE 0); 00903800
|
||||
IF OMITTYPE > 0 THEN 00903900
|
||||
BEGIN 00904000
|
||||
SCANNER; 00904100
|
||||
IF TOKEN[1] IN NUMBERS FOR TOKLENGTH THEN 00904200
|
||||
BEGIN 00904300
|
||||
STOPSEQNR:= INTEGER(TOKEN[1], TOKLENGTH); 00904400
|
||||
SCANNER; 00904500
|
||||
IF TOKEN = 48"01""," THEN 00904600
|
||||
SCANNER; 00904700
|
||||
00904800
|
||||
IF TOKEN = 48"02""IF" THEN 00904900
|
||||
BEGIN 00905000
|
||||
REPLACE PREC BY " " FOR 90; 00905100
|
||||
REPLACE P:PREC BY " $"; 00905200
|
||||
IF POPCOUNT > 0 THEN 00905300
|
||||
BEGIN 00905400
|
||||
REPLACE P:P BY "POP "; 00905500
|
||||
WHILE POPCOUNT > 0 DO 00905600
|
||||
BEGIN 00905700
|
||||
REPLACE P:P BY "OMIT "; 00905800
|
||||
POPCOUNT:= *-1; 00905900
|
||||
END WHILE; 00906000
|
||||
END; 00906100
|
||||
00906200
|
||||
INSERTPOP(STOPSEQNR); 00906250
|
||||
REPLACE P:P BY "SET OMIT="; 00906300
|
||||
IF OMITTYPE = 1 THEN 00906400
|
||||
REPLACE P:P BY "NOT"; 00906500
|
||||
00906600
|
||||
REPLACE P:P BY "("; 00906700
|
||||
SCANNER; 00906800
|
||||
DO BEGIN 00906900
|
||||
REPLACE P:P BY TOKEN[1] FOR TOKLENGTH, " "; 00907000
|
||||
SCANNER; 00907100
|
||||
END 00907200
|
||||
UNTIL TOKLENGTH = 0 OR TOKEN=48"01"";"; 00907300
|
||||
IF TOKEN = 48"01"";" THEN 00907320
|
||||
SCANNER; 00907340
|
||||
00907360
|
||||
REPLACE P:P-1 BY ") "; 00907400
|
||||
IF OMITDEPTH > 1 THEN 00907420
|
||||
REPLACE P:P BY "OR OMIT "; 00907440
|
||||
00907450
|
||||
WHILE TOKLENGTH > 0 DO 00907500
|
||||
BEGIN 00907600
|
||||
REPLACE P:P BY TOKEN[1] FOR TOKLENGTH, " "; 00907700
|
||||
SCANNER; 00907800
|
||||
END WHILE; 00907900
|
||||
00908000
|
||||
REPLACE PREC[72] BY THISSEQNR FOR 8 DIGITS; 00908100
|
||||
WRITE(PATCH, 15, PREC); 00908200
|
||||
END; 00908300
|
||||
00908400
|
||||
END; 00908500
|
||||
END; 00908600
|
||||
END; 00908700
|
||||
END READ SOURCE; 00908800
|
||||
00908900
|
||||
CLOSE(PATCH, CRUNCH); 00909000
|
||||
CLOSE(SOURCE); 00909100
|
||||
00999800
|
||||
END. 00999900
|
||||
Reference in New Issue
Block a user