1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-01-26 19:41:41 +00:00

Commit clone of B5500 Algol compiler source as ALGOLXEM.alg_m. This has been slightly cleaned up to prepare it for later processing the by NEATUP55 program, which in turn will prepare the source for eventual implementation as an MCP E-mode cross-compiler for the B5500.

Also commit corrections to the B5500 Algol compiler source discovered during preparation and testing of the NEATUP55 program.
This commit is contained in:
Paul Kimpel
2012-03-25 02:22:30 +00:00
parent 6065883159
commit 919f70d58c
2 changed files with 12733 additions and 10 deletions

View File

@@ -552,7 +552,7 @@ DEFINE CHECKBIT = 1#, 01000920
XREFBIT = 26#, 01001170
BENDBIT = 27#, 01001171
CODEFILEBIT = 29#, %106-01001172
USEROPINX = 30#, %106-01001173
USEROPINX = 30#; %106-01001173
COMMENT IF A NEW COMPILER-DEFINED OPTION IS ADDED, CHANGE USEROPINX 01001180
AND ADD OPTION IN DEFINES BELOW, IN DOLLARCARD, AND IN 01001190
FILL STATEMENT IN INITIALIZATION OF COMPILER; 01001200
@@ -708,7 +708,7 @@ DEFINE % %116-01007400
LBLREF = 1#, % %116-01007486
DECLREF = 2#, % %116-01007490
NORMALREF = 4#, % %116-01007495
ASSIGNREF = 5#, % %116-01007500
ASSIGNREF = 5#; % %116-01007500
ARRAY BEGINSTACK[0:255]; INTEGER BSPOINT; 01007600
BOOLEAN DEFINING; 01007650
COMMENT INFO CONTAINS ALL THE INFORMATION ABOUT A GIVEN IDENTIFIER 01008000
@@ -930,7 +930,7 @@ COMMENT INFO FORMAT 01028000
LEFTPAREN =34#, COMMENT 042; 01212000
COMMENT CLASSES FOR ALL DECLARATORS; 01213000
DECLARATORS =35#, COMMENT 043; 01214000
COMMENT CLASSES FOR STATEMENT BEGINNERS 01215000
COMMENT CLASSES FOR STATEMENT BEGINNERS; 01215000
READV =36#, COMMENT 044; 01216000
WRITEV =37#, COMMENT 045; 01217000
SPACEV =38#, COMMENT 046; 01218000
@@ -1436,7 +1436,7 @@ DEFINE %107-01561500
INSERTMID = INSERTINFO[INSERTDEPTH,0]#, % MFID OF THE LIBRARY FILE 01561530
INSERTFID = INSERTINFO[INSERTDEPTH,1]#, % FID OF THE LIBRARY FILE 01561540
INSERTINX = INSERTINFO[INSERTDEPTH,2]#, % POINTER TO THE RECORD%107-01561550
INSERTSEQ = INSERTINFO[INSERTDEPTH,3]#, % LAST SEQUENCE TO BE INCLUD01561560
INSERTSEQ = INSERTINFO[INSERTDEPTH,3]#; % LAST SEQUENCE TO BE INCLUD01561560
INTEGER SAVECARD, INSERTDEPTH; %107-01561570
ARRAY INSERTINFO[0:INSERTMAX,0:4]; %107-01561580
FILE LIBRARYFIL DISK RANDOM(2,10,30); %107-01561590
@@ -1478,7 +1478,7 @@ REAL STREAM PROCEDURE CMPD(A,B); %107-01561620
FILEATTINT =563#, 01579300
POWERALL =567#, 01579350
SPECIALMATH =570#, 01579355
SORTA =673#, %117-01580000
SORTA =673#; %117-01580000
COMMENT THESE DEFINES ARE USED TO TALK TO GNAT. THEY GIVE THE INDEX01581000
IN INFO OF THE CORRESPONDING ROUTINE; 01582000
INTEGER KOUNT,BUFFACCUM; 01583000
@@ -1487,7 +1487,7 @@ INTEGER FILENO; 01584000
FUNCTOG, COMMENT TELLS WHETHER PROCEDURE BEING DECLARED IS A 01586000
FUNCTION; 01587000
P2, COMMENT GENERALY TELLS WHETHER OWN WAS SEEN; 01588000
P3, COMMENT TELSS WHETHER SAVE WAS SEEN; 01589000
P3, COMMENT TELLS WHETHER SAVE WAS SEEN; 01589000
P4, COMMENT TELLS WHETHER AUXMEM WAS SEEN; 01589500
VONF, COMMENT VALUE OR OWN FIELD OF ELBAT WORD; 01590000
FORMALF, COMMENT FORMAL FIELD OF ELBAT WORD; 01591000
@@ -2716,7 +2716,7 @@ DEFINE SKAN = BEGIN 02277000
COMMENT DOLLARCARD HANDLES THE COMPILER CONTROL CARDS. 02282000
ALL COMPILER- AND USER-DEFINED OPTIONS ARE KEPT 02283000
IN THE ARRAY "OPTIONS". 02284000
EACH OPTION HAS A TWO-WORD ENTRY; 02285000
EACH OPTION HAS A TWO-WORD ENTRY: 02285000
02286000
WORD CONTAINS 02287000
---- -------- 02288000
@@ -4437,7 +4437,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000
BOOLEAN PERMANENT; INTEGER L; 05333000
BEGIN LABEL L1,L2,EXIT; 05334000
BOOLEAN STREAM PROCEDURE MASK(K); VALUE K; 05341000
DI~LOC MASK; DI~DI+2; SKIP K DB; DS~SET END MASK; 05342000
BEGIN DI~LOC MASK; DI~DI+2; SKIP K DB; DS~SET END MASK; 05342000
BOOLEAN M,Q; 05343000
INTEGER ROW,COL,GS; 05344000
IF PERMANENT 05345000
@@ -6386,6 +6386,7 @@ PROCEDURE KLUDGE(T); VALUE T; INTEGER T; 07930000
ELSE BEGIN 08036000
B ~ FALSE; A ~ ELBAT[I]; 08037000
SIMPLE ~ REALID { ELCLASS AND ELCLASS { INTID END; 08038000
END SIMPLE; 08038100
COMMENT TEST EMITS THE STEP-UNTIL ELEMENT TEST; 08040000
PROCEDURE TEST; 08041000
BEGIN 08042000
@@ -9736,7 +9737,7 @@ END DEFINEPARAM; 12166000
TYPE:=TYPE-2 ELSE IF ACCUM1 = "6UPDAT" THEN 13088075
TYPE:=TYPE+1 ELSE 13088080
IF ACCUM1="7PROTE" THEN TYPE~26 ELSE 13088082
FLAG(43);STEPIT; END; IF ELCLASS=LFTBRKET THEN 13088085
FLAG(43);END;STEPIT; END; IF ELCLASS=LFTBRKET THEN 13088085
BEGIN STEPIT;L~L-2;AEXP;IF ELCLASS=COLON THEN BEGIN 13088090
STEPIT; AEXP END ELSE FLAG(30); 13088100
IF ELCLASS!RTBRKET THEN FLAG(44);END ELSE I~I-1; 13088105
@@ -10182,7 +10183,7 @@ REAL ADDCON; 13451000
IF T1~GTA1[J~J-1]=0 THEN J~J+1 13454000
ELSE 13455000
IF T1=OWNV THEN 13456000
BEGIN P2:=TRUE;IF SPECTOG THE FLAG(13) END 13457000
BEGIN P2:=TRUE;IF SPECTOG THEN FLAG(13) END 13457000
ELSE 13458000
IF T1= SAVEV THEN 13459000
BEGIN 13460000