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:
@@ -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
12722
tools/xem/ALGOLXEM.alg_m
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user