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

12722
tools/xem/ALGOLXEM.alg_m Normal file

File diff suppressed because it is too large Load Diff