mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-01-23 18:46:29 +00:00
Commit ESPOLXEM source after first successful compile of SYMBOL/KERNAL bootstrap program; commit accumulated corrections to ESPOL and ALGOLXEM sources from ESPOLXEM debugging; commit original transcription of SYMBOL/KERNAL.
This commit is contained in:
parent
fdde252351
commit
60acd1318e
@ -731,7 +731,7 @@ COMMENT INFO FORMAT 01028000
|
||||
OROP =93#, COMMENT 135; 01275000
|
||||
ANDOP =94#, COMMENT 136; 01276000
|
||||
RELOP =95#, COMMENT 137; 01277000
|
||||
ADDOP =96#, COMMENT 140; 01278000
|
||||
ADOP =96#, COMMENT 140; 01278000
|
||||
MULOP =97#, COMMENT 141; 01278500
|
||||
% STRING =99#, COMMENT 143; 01278600
|
||||
COMMENT SUBCLASSES FOR DECLARATORS (KEPT IN ADDRESS); 01279000
|
||||
@ -753,7 +753,7 @@ COMMENT INFO FORMAT 01028000
|
||||
NAMEV =16#, COMMENT 20; 01295000
|
||||
FILEV =17#, COMMENT 21; 01296000
|
||||
STREAMV =18#, COMMENT 22; 01297000
|
||||
DEFINEV =19#, COMMENT 23; 01298000
|
||||
DEFINEV =19#; COMMENT 23; 01298000
|
||||
DEFINE DDES = 8#, 01299000
|
||||
ADES = 28#, 01299010
|
||||
PDES = 29#, 01299020
|
||||
@ -1101,8 +1101,8 @@ DEFINE PURPT=[4:8]#,SECRET=2#; 01628000
|
||||
XIT = 71#, COMMENT (0435) 7.4.8.2 EXIT; 01676000
|
||||
ZP1 = 322#, COMMENT (2411) 7.4.10.8 CONDITIONAL HALT; 01677000
|
||||
SCI =1003#, COMMENT (7655) SCAN OUT INITIALIZE; 01677050
|
||||
SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED 01677100
|
||||
SCS =1019#, COMMENT (7755) SCAN OUT STOP; 01677150
|
||||
SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED; 01677100
|
||||
SCS =1019#; COMMENT (7755) SCAN OUT STOP; 01677150
|
||||
COMMENT THESE DEFINES ARE USED BY EMITD; 01678000
|
||||
DEFINE 01679000
|
||||
DIA = 45#, COMMENT (XX55) 7.4.7.1 DIAL A; 01680000
|
||||
@ -2681,7 +2681,7 @@ PROCEDURE DEBUG(S); VALUE S; REAL S; 04277500
|
||||
IF DEBUGTOG THEN DEBUG(S); 04297000
|
||||
L~L+1; 04298000
|
||||
END ELSE 04299000
|
||||
BEGIN ERROR(200); L~1; END; 04300000
|
||||
BEGIN ERR(200); L~1; END; 04300000
|
||||
COMMENT 200 EMIT - SEGMENT GREATER THAN 4093 SYLLABLES *; 04301000
|
||||
END EMIT ; 04302000
|
||||
COMMENT EMITD EMITS THE DIA,DIB,TRB SEQUENCE OF CODE. THE 04305000
|
||||
@ -3106,7 +3106,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400
|
||||
IF ELCLASS=ADOP 05344550
|
||||
THEN 05344560
|
||||
IF ELBAT[I].ADDRESS=SUBOP 05344570
|
||||
THEN GS~FZERO ELSE GS~512; 05344580
|
||||
THEN GS~FZERO ELSE GS~512 05344580
|
||||
ELSE 05344590
|
||||
BEGIN GS~0;I~I-1 END; 05344600
|
||||
IF STEPI!LITNO THEN FLAG(51); 05344610
|
||||
@ -3212,7 +3212,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400
|
||||
BEGIN M~ (U+L) DIV 2; 05441000
|
||||
NESTSORT(L,M); 05442000
|
||||
NESTSORT(M+1,U); 05443000
|
||||
I~K~L; J~M+1 05444000
|
||||
I~K~L; J~M+1; 05444000
|
||||
AGAIN: IF I>M THEN GO TO TOP; 05445000
|
||||
IF J>U THEN GO TO BOTTOM; 05446000
|
||||
GT1~NESTPRT[SORTPRT[I].[33:15]].LINK; 05447000
|
||||
@ -3307,7 +3307,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400
|
||||
S ~ S OR COUNT - T2.[11:3] < 0; 06074000
|
||||
COUNT ~ T2.[14:2]+COUNT-2; 06075000
|
||||
IF ELCLASS } OPERATOR THEN 06076000
|
||||
BEGIN IF T1 ! 0 THEN EMITO(T1); 06077000
|
||||
BEGIN IF T1 ! 0 THEN EMITO(T1) 06077000
|
||||
ELSE BEGIN 06078000
|
||||
T1 ~ T2.LINK+2; 06079000
|
||||
T2 ~ T2.INCR+T1; 06080000
|
||||
@ -3323,7 +3323,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400
|
||||
(T2~C DIV 6)[36:45:3]&(C-T2|6) 06090000
|
||||
[39:45:3]) ELSE 06091000
|
||||
IF T2 = ISOLATE THEN 06092000
|
||||
BEGIN T2 + C; 06093000
|
||||
BEGIN T2 ~ C; 06093000
|
||||
IF STEPI ! LITNO 06094000
|
||||
THEN BEGIN ERR(500); 06095000
|
||||
GO TO EXIT END; 06096000
|
||||
@ -3440,7 +3440,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400
|
||||
BEGIN REAL T1,T2; 06184000
|
||||
T1 ~ (T2 ~ ELBAT[I]).ADDRESS; 06185000
|
||||
PANA; 06186000
|
||||
IF T1 ! 0 THEN EMITO(T1); 06187000
|
||||
IF T1 ! 0 THEN EMITO(T1) 06187000
|
||||
ELSE BEGIN 06188000
|
||||
T1 ~ T2.LINK+T2.INCR+1; 06189000
|
||||
T2 ~ T2.LINK+2; 06190000
|
||||
@ -3619,12 +3619,12 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; 07025030
|
||||
BEGIN IF ACLASS = REALID AND 07069000
|
||||
BOOLEAN(ELBAT[I].FORMAL)THEN BEGIN 07070000
|
||||
CHECKER (ELBAT[I]); 07070500
|
||||
EMITPAIR(ELBAT[I],ADDRESS,LOD); 07071000
|
||||
EMITPAIR(ELBAT[I].ADDRESS,LOD); 07071000
|
||||
STEPIT; END 07072000
|
||||
ELSE VARIABLE(FL); 07073000
|
||||
GO TO COMMON END; 07074000
|
||||
IF ELCLASS { STRNGCON AND ELCLASS > LABELID 07075000
|
||||
THEN BEGIN PRIMARY; GOTO COMMON END; 07076000
|
||||
THEN BEGIN PRIMARY; GO TO COMMON END; 07076000
|
||||
END; 07077000
|
||||
EMITO(NOP); EMITO(NOP); 07078000
|
||||
SCLASS ~ L; 07079000
|
||||
@ -3689,7 +3689,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; 07025030
|
||||
EMITO(MKS); 07408000
|
||||
IF ELCLASS = LEFTPAREN 07409000
|
||||
THEN ACTUALPARAPART(FALSE,GIT(HOLE)) 07410000
|
||||
ELSE IF FORMALF THEN L ~ L-1; 07411000
|
||||
ELSE IF FORMALF THEN L ~ L-1 07411000
|
||||
ELSE IF TAKE(GIT(HOLE)).NODIMPART!0 THEN ERR(128); 07412000
|
||||
EMITV(ADDRESS); 07413000
|
||||
EXIT: END PROCSTMT; 07425000
|
||||
@ -4037,7 +4037,7 @@ L33:L34:L35:L36:L37:L39: 07730000
|
||||
EXIT: END STMT; 07771000
|
||||
07991000
|
||||
PROCEDURE IOSTMT; 07993000
|
||||
IF STEPI ! LITNO OR (GT1~ELBAT[I].ADDRESS>15 THEN ERR(98)ELSE 07994000
|
||||
IF STEPI ! LITNO OR (GT1~ELBAT[I].ADDRESS>15) THEN ERR(98)ELSE 07994000
|
||||
BEGIN EMIT(ELBAT[I-1].ADDRESS>1[41:47:1]>1[36:44:3]); 07995000
|
||||
STEPIT 07996000
|
||||
END SCOPE STATEMENT; 07997000
|
||||
@ -4496,12 +4496,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 09081000
|
||||
OCT1310441000000002, "3MUL00", %503 09121300
|
||||
OCT1310441050000002, "3NEQ00", %505 09121400
|
||||
OCT1310100130000002, "3NOP00", %507 09121500
|
||||
OCT0650006550000002, "6SCOPO", "N......."; %509 09121600
|
||||
OCT0650006550000003, "6SCOPO", "N......."; %509 09121600
|
||||
FILL INFO[2,*] WITH 09121650
|
||||
OCT131030000020004, "3RDF00", %512 09121700
|
||||
OCT1310300000020004, "3RDF00", %512 09121700
|
||||
OCT0000, COMMENT LITC 0; 09121800
|
||||
OCT2141, COMMENT FXS ; 09121900
|
||||
OCT131030000020004, "3RDS00", %516 09122000
|
||||
OCT1310300000020004, "3RDS00", %516 09122000
|
||||
OCT0004, COMMENT LITC 1; 09122100
|
||||
OCT2141, COMMENT FXS ; 09122200
|
||||
OCT1310456000000002, "3RDV00", %520 09122300
|
||||
@ -4821,7 +4821,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700
|
||||
OCT0051000000000000, 09395400
|
||||
OCT0441070001000062; 09395500
|
||||
Q ~ -1; 09395700
|
||||
PUSHEE(SAVEINFO,L,4,5); 09396000
|
||||
PUSHEE(SAVINFO,L,4,5); 09396000
|
||||
SAVNDX:=L; 09397000
|
||||
END; 09397100
|
||||
REWIND(CODISK); 09398000
|
||||
@ -4863,7 +4863,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700
|
||||
END; 09417500
|
||||
MDESC(GT1,SAVINFO[I.LINKR,I.LINKC]); 09418000
|
||||
END ELSE SAVINFO[I.LINKR,I.LINKC]:=0 UNTIL I:=I+1}PRTIMAX;09419000
|
||||
MDESC(0&1[2:47:1],SAVINFO[D,PRTBASE-1]); 09419100
|
||||
MDESC(0&1[2:47:1],SAVINFO[0,PRTBASE-1]); 09419100
|
||||
SAVNDX ~ 30 | N; 09420000
|
||||
END; 09420010
|
||||
I ~ 0; J ~ -1; 09420020
|
||||
@ -5083,7 +5083,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700
|
||||
EL~TABLE(NXTELBT); 12112000
|
||||
NXTELBT~NXTELBT-1; 12113000
|
||||
IF EL!LEFTPAREN AND EL!LFTBRKET THEN 12114000
|
||||
FLAG(141); 12115000
|
||||
FLAG(141) 12115000
|
||||
ELSE DO BEGIN J~J+1; 12116000
|
||||
SET(INFO[T.LINKR,T.LINKC],ACCUM[1],K,64|J+12); 12117000
|
||||
ACCUM[1].[12:6]~K+2; 12118000
|
||||
@ -5561,7 +5561,7 @@ INTEGER SGNOO,LOLD,SAVELO,PRTIO,NINFOO; 14030000
|
||||
BOOLEAN FUNCTOGO,AJUMPO; 14034000
|
||||
BEGINCTR~BEGINCTR+1; 14035000
|
||||
IF SOP 14036000
|
||||
THEN BEGIN BLKAD~PROADD; 14037000
|
||||
THEN BEGIN BLKAD~PROADO; 14037000
|
||||
IF LASTENTRY ! 0 14038000
|
||||
THEN BEGIN GT1~BUMPL; 14039000
|
||||
CONSTANTCLEAN; 14040000
|
||||
@ -5735,8 +5735,8 @@ SWITCHDEC: 14200000
|
||||
DO 14218000
|
||||
BEGIN 14219000
|
||||
IF STEPI!LABELID OR ELBAT[I].LVL!LEVEL THEN FLAG(63); 14220000
|
||||
PUTNBUMP(ELBAT[I]);GT1~GT1+1; 14221000
|
||||
END; 14222000
|
||||
PUTNBUMP(ELBAT[I]);GT1~GT1+1 14221000
|
||||
END 14222000
|
||||
COMMENT 14222500
|
||||
UNTIL STEPI!COMMA; 14223000
|
||||
14223500
|
||||
@ -6014,8 +6014,8 @@ PUT(TAKE(MARK)&NLOC[1:42:6]&L[16:36:12]&P[40:40:8],MARK); 14451200
|
||||
IF ELCLASS = BEGINV THEN 14479000
|
||||
BEGIN 14481000
|
||||
CALLINFO~(CALLX~CALLX+1)+1; 14481100
|
||||
NEXTCTR~STACKCTR; 14481200
|
||||
BLOCK(TRUE); 14482000
|
||||
NESTCTR~STACKCTR; 14481200
|
||||
BLOCK(TRUE) 14482000
|
||||
; PURGE(PINFOO); 14483000
|
||||
IF NESTOG THEN 14483100
|
||||
BEGIN GT1~TAKE(PROINFO).ADDRESS; 14483200
|
||||
@ -6071,7 +6071,7 @@ START:END; 14503000
|
||||
FUNCTOG~FUNCTOGO; 14599000
|
||||
IF SOP THEN HTTEOAP(FALSE,FIRSTX,NINFOO,BLKAD) 14600000
|
||||
ELSE BEGIN IF NESTOG THEN SORTNEST; PURGE(NINFOO); END; 14601000
|
||||
SEGMENT((L+3)DIV 4,PROADD); 14602000
|
||||
SEGMENT((L+3)DIV 4,PROADO); 14602000
|
||||
IF LEVEL>1 THEN RIGHT(L); 14603000
|
||||
IF LEVEL ~ LEVEL-1 = 0 THEN CONSTANTCLEAN; 14604000
|
||||
14605000
|
||||
@ -6382,7 +6382,7 @@ COMMENT 208 VARIABLE- NUMBER OF SUBSCRIPTS DOES NOT MATCH WITH * 15298000
|
||||
AEXP; 15307000
|
||||
EMITD(48-T2,T1,T2) ; 15308000
|
||||
EMITO(XCH); 15309000
|
||||
IF TALL.ADDRESS>1023 THEN EMITI(PRTE); 15310000
|
||||
IF TALL.ADDRESS>1023 THEN EMITO(PRTE); 15310000
|
||||
EMITO(IF TALL.CLASS MOD 2 = INTARRAYID MOD 2 THEN 15333000
|
||||
IF P1 = FS THEN ISD ELSE ISN ELSE 15334000
|
||||
IF P1=FS THEN STD ELSE SND); 15335000
|
||||
@ -6660,7 +6660,7 @@ PROCEDURE LABELS; 16156000
|
||||
BEGIN 16250000
|
||||
LABEL EXIT; 16251000
|
||||
IF STEPI !TOV THEN I~I-1 ; 16252000
|
||||
IF STEPI ! STLABID THEN ELCLASS { IDMAX THEN 16253000
|
||||
IF STEPI ! STLABID THEN IF ELCLASS { IDMAX THEN 16253000
|
||||
DECLARELABEL ELSE BEGIN ERR(260); GO TO EXIT END; 16253100
|
||||
IF(GT2~TAKE(GIT(GT1~ELBAT[I]))).MON=1 16254000
|
||||
OR GT2.LOC!0 THEN EMITJUMP(GT1) 16255000
|
||||
@ -6788,7 +6788,7 @@ PROCEDURE DSS; 16362000
|
||||
END 16377000
|
||||
ELSE ADDR ~ 1 ; 16378000
|
||||
IF Q = "4FILL0" THEN EMITC(ADDR,10) ELSE %E 16378500
|
||||
IF ELCLASS = TRNSFER THEN EMITC(ADDR,ELBAT[1].OPCODE) 16379000
|
||||
IF ELCLASS = TRNSFER THEN EMITC(ADDR,ELBAT[I].OPCODE) 16379000
|
||||
ELSE 16380000
|
||||
IF ELCLASS = LITV THEN 16381000
|
||||
BEGIN 16382000
|
||||
@ -6854,7 +6854,7 @@ PROCEDURE JUMPS; 16431000
|
||||
IF JOINFO = 0 THEN 16440000
|
||||
BEGIN 16441000
|
||||
JOINFO ~ NEXTINFO ; 16442000
|
||||
PUTNBUMP(STACKHEAD[0],LINK&(STLABID|2+1) 16443000
|
||||
PUTNBUMP(STACKHEAD[0].LINK&(STLABID|2+1) 16443000
|
||||
[2:40:8]&2[27:40:8 ]); 16444000
|
||||
PUTNBUMP(0&(JOINFO-LASTINFO )[ 4:40:8]); 16445000
|
||||
PUTNBUMP (0); 16446000
|
||||
|
||||
113
SYMBOL/KERNAL.esp_m
Normal file
113
SYMBOL/KERNAL.esp_m
Normal file
@ -0,0 +1,113 @@
|
||||
$ SET LIST MCP PRT DEBUG DEBUGN 00000011
|
||||
B-5500 ESSENCE OF MCP : NOV,1968 P.E.G. 00020000
|
||||
COMMENT: * TITLE: B5500/B5700 MARK XVI SYSTEM RELEASE * 00020110
|
||||
* FILE ID: SYMBOL/KERNAL TAPE ID: SYMBOL2/FILE000 * 00020111
|
||||
* THIS MATERIAL IS PROPRIETARY TO BURROUGHS CORPORATION * 00020112
|
||||
* AND IS NOT TO BE REPRODUCED, USED, OR DISCLOSED * 00020113
|
||||
* EXCEPT IN ACCORDANCE WITH PROGRAM LICENSE OR UPON * 00020114
|
||||
* WRITTEN AUTHORIZATION OF THE PATENT DIVISION OF * 00020115
|
||||
* BURROUGHS CORPORATION, DETROIT, MICHIGAN 48232 * 00020116
|
||||
* * 00020117
|
||||
* COPYRIGHT (C) 1971, 1972, 1974 * 00020118
|
||||
* BURROUGHS CORPORATION * 00020119
|
||||
* AA320206 AA386657 AA332366 *; 00020120
|
||||
BEGIN 00030000
|
||||
DEFINE M=MEMORY #, P=POLISH #; 00040000
|
||||
ARRAY DATA [*]; 00050000
|
||||
DEFINE ADDRESS = M[@40] #; 00060000
|
||||
DEFINE BASE = M[0] #; 00070000
|
||||
DEFINE DIRECTOP= M[1] #; 00080000
|
||||
DEFINE DISK = M[@41] #; 00090000
|
||||
DEFINE INDX = M[@42] #; 00100000
|
||||
DEFINE MODS = M[@46] #; 00110000
|
||||
DEFINE NOSYS = M[@43] #; 00120000
|
||||
DEFINE R = M[@44] #; 00130000
|
||||
DEFINE SYSTEM = M[@45] #; 00140000
|
||||
INTEGER PROCVAL = +1; 00150000
|
||||
INTEGER FINDMEM; 00160000
|
||||
LABEL TIMER,START,TOPOCODE; 00170000
|
||||
SAVE REAL PROCEDURE EOM; 00180000
|
||||
BEGIN GO TO TIMER END; 00190000
|
||||
SAVE REAL PROCEDURE IO (DESC); %THIS FIRES OFF THE IO 00200000
|
||||
VALUE DESC; 00210000
|
||||
REAL DESC; 00220000
|
||||
BEGIN 00230000
|
||||
DO BEGIN 00240000
|
||||
P([DESC],IIO); 00250000
|
||||
R ~ EOM; 00260000
|
||||
IO ~ R.[25:8] 00270000
|
||||
END UNTIL (PROCVAL AND 5)=0; 00280000
|
||||
END; 00290000
|
||||
SAVE PROCEDURE DISKREED (DESC); 00300000
|
||||
VALUE DESC; 00310000
|
||||
REAL DESC; 00320000
|
||||
BEGIN STREAM(A ~ BASE + ADDRESS,B:=DESC.[33:15]); 00330000
|
||||
BEGIN SI:=LOC A;DI:=B;DS:=8 DEC; END; 00340000
|
||||
IF M[DESC].[5:1] THEN DESC.[3:5]~12;% 00345000
|
||||
DO R~ IO(DESC) UNTIL R=0; 00350000
|
||||
END; 00360000
|
||||
TOPOCODE :@20: GO TO START; % FIRST CODE 00380000
|
||||
TIMER :@22: P(INI);IF NOT FINDMEM THEN % TIMER 00390000
|
||||
GO TO START; % SET UP FOR INVD ADDR 00400000
|
||||
: : GO TO TIMER; % SPO 00410000
|
||||
:@25: GO TO TIMER; % LPA 00420000
|
||||
:@26: GO TO TIMER; % LPB 00430000
|
||||
:@27: P(@14,LOD,RTN); % I-O 1 COMPLETE 00440000
|
||||
:@30: P(@15,LOD,RTN); % I-O 2 COMPLETE 00450000
|
||||
:@31: P(@16,LOD,RTN); % I-O 3 COMPLETE 00460000
|
||||
:@32: P(@17,LOD,RTN); % I-O 4 COMPLETE 00470000
|
||||
:@34: GO TO TIMER; % DATA COMM 00480000
|
||||
:@36: GO TO TIMER; % DF #1 USED ON FREE ADDRESS00490000
|
||||
:@37: GO TO TIMER; % DF #2 RETURN 00500000
|
||||
:@61: GO TO START; % P1 INVD ADDRESS 00510000
|
||||
START :*: P(@100,STS); % SET STACK TO OCT 100 00530000
|
||||
M[MODS := MODS + @10000] := 0; % FIND MOD TO LOAD MCP 00540000
|
||||
P(INI); % CHECK FOR INVD ADDRESS 00550000
|
||||
IF MODS GTR @70000 THEN 00560000
|
||||
BEGIN MODS := 0; 00570000
|
||||
GO TO START; 00580000
|
||||
END; 00590000
|
||||
FINDMEM := TRUE; 00600000
|
||||
DATA ~[M[ (*P(.EOM))INX 100]] & 1023[8:38:10]; 00610000
|
||||
DISK ~ DATA.[33:15]; 00620000
|
||||
M[DISK] ~ @40; 00630000
|
||||
INDX ~ 13; 00640000
|
||||
IF IO (@140004000000000& DISK [33:33:15]) = 0 THEN 00650000
|
||||
BEGIN 00660000
|
||||
SYSTEM ~ DATA[1].[4:2]; 00670000
|
||||
M[DISK]~ @4060&SYSTEM [30:46:2]; %CLEAR CONTENTION 00680000
|
||||
P(IO(@140000100000000 & DISK[33:33:15]),DEL); %BITS 00690000
|
||||
M[DISK]~ @6060&SYSTEM[30:46:2]; % UNLOCK ADDRESSES 00700000
|
||||
P(IO(@140000100000000 & DISK [33:33:15]),DEL); 00710000
|
||||
INDX ~ INDX + (SYSTEM | 5); 00720000
|
||||
END; 00730000
|
||||
M[DISK] := 0; %SET ADDRESS TO ZERO 00740000
|
||||
DO R~IO(DISK INX @140000040100000 ) UNTIL R=0; 00750000
|
||||
DIRECTOP := DATA [2]; 00760000
|
||||
NOSYS := DATA [1]; 00770000
|
||||
BASE := DATA [INDX]; 00780000
|
||||
IF BASE LEQ DIRECTOP THEN 00790000
|
||||
BEGIN M[@46] := @3145652143312460; %INVALID 00800000
|
||||
M[@47] := @2124245125626260; %ADDRESS 00810000
|
||||
M[@50] := @2646516044234737; %FOR MCP 00820000
|
||||
P(IO(@740000000000046),DEL); 00830000
|
||||
DO UNTIL FALSE; 00840000
|
||||
END; 00850000
|
||||
% BEGIN LOADING MCP (MAX SIZE IS 4080) 00860000
|
||||
ADDRESS ~ 73; 00870000
|
||||
DISKREED (@140000047704235 OR MODS); 00880000
|
||||
ADDRESS ~ 10; 00890000
|
||||
DISKREED (@140000047700473 OR MODS); 00900000
|
||||
ADDRESS ~ 0; 00910000
|
||||
DISKREED (@140000041200017 OR MODS); 00920000
|
||||
% END MCP LOAD 00930000
|
||||
MODS := MODS + @40; 00940000
|
||||
M[@15] ~ @0441023201004441; %CODE TO PULL MCP DOWN 00950000
|
||||
M[@16] ~ @0253010453527705; %THIS MOVES 4042 WDS 00960000
|
||||
M[@17] ~ @3705005101002411; 00970000
|
||||
BASE ~ BASE - 2; 00980000
|
||||
M[0]:=BASE&SYSTEM[16:46:2]&(NOSYS)[14:46:2]; 00990000
|
||||
P(1,STS,0,STF); 01000000
|
||||
GO TO P([M[@15]]); 01010000
|
||||
WHILE TRUE DO; 01020000
|
||||
END OF HALT LOAD CARD..... 01030000
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
||||
$ RESET LIST 00000009120821PK
|
||||
%#######################################################################00005000=00001000=
|
||||
% 00010000=00001010=
|
||||
% B-5700 ESPOL COMPILER 00015000=00001020=
|
||||
% B-5700 ESPOLXEM COMPILER 00015000
|
||||
% MARK XVI.0.00 00020000=00001030=
|
||||
% OCT 1, 1974 00025000=00001040=
|
||||
% 00030000=00001050=
|
||||
@ -409,7 +410,7 @@ BOOLEAN 02017100
|
||||
ARRAY 02018100
|
||||
STREAMTEMPS[0:15], % STREAM TEMP SOURCE 02018200
|
||||
STREAMTEMPD[0:15], % STREAM TEMP DESTINATION 02018300
|
||||
EBCDICBUFF[0:21]; % EBCDIC I/O BUFFER 02018400
|
||||
EBCDICBUFF[0:29]; % EBCDIC I/O & TEMP BUFFER 02018400
|
||||
02030000
|
||||
VALUE ARRAY 02030100
|
||||
BICCOLLATE ( % INDEX BY INTERNAL CODE TO GET COLLATION VALUE 02030200
|
||||
@ -1298,6 +1299,43 @@ BOOLEAN PROCEDURE STREAMCOMPARELSSQQ(MBASE, SBASE, N); 02150400
|
||||
02153400
|
||||
STREAMCOMPARELSSQQ:= TFFF; 02153500
|
||||
END STREAMCOMPARELSS; 02153600
|
||||
02153700
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02153800
|
||||
DEFINE STREAMCOMPARELEQ(N) = 02153900
|
||||
STREAMCOMPARELEQQQ(MBASE, SBASE, N) #; 02154000
|
||||
BOOLEAN PROCEDURE STREAMCOMPARELEQQQ(MBASE, SBASE, N); 02154100
|
||||
VALUE N; 02154200
|
||||
ARRAY MBASE, SBASE[0]; 02154300
|
||||
REAL N; 02154400
|
||||
BEGIN COMMENT 02154500
|
||||
COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 02154600
|
||||
LESS-THAN-OR-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 02154700
|
||||
EMULATES CEL. 02154800
|
||||
; 02154900
|
||||
STREAMADJUSTSICHAR; 02155000
|
||||
STREAMADJUSTDICHAR; 02155100
|
||||
TFFF:= TRUE; 02155200
|
||||
WHILE N > 0 DO 02155300
|
||||
BEGIN 02155400
|
||||
IF STREAMGETSC = STREAMGETDC THEN 02155500
|
||||
BEGIN 02155600
|
||||
STREAMSKIPSI(+1); 02155700
|
||||
STREAMSKIPDI(+1); 02155800
|
||||
N:= *-1; 02155900
|
||||
END 02156000
|
||||
ELSE 02156100
|
||||
BEGIN 02156200
|
||||
IF BICCOLLATE[STREAMGETSC] > BICCOLLATE[STREAMGETDC] THEN 02156300
|
||||
TFFF:= FALSE; 02156400
|
||||
02156500
|
||||
STREAMSKIPSI(+N); 02156600
|
||||
STREAMSKIPDI(+N); 02156700
|
||||
N:= 0; 02156800
|
||||
END; 02156900
|
||||
END WHILE; 02157000
|
||||
02157100
|
||||
STREAMCOMPARELEQQQ:= TFFF; 02157200
|
||||
END STREAMCOMPARELEQ; 02157300
|
||||
02160000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02160100
|
||||
DEFINE STREAMCOMPAREEQL(N) = 02160200
|
||||
@ -1333,6 +1371,41 @@ BOOLEAN PROCEDURE STREAMCOMPAREEQLQQ(MBASE, SBASE, N); 02160400
|
||||
02163200
|
||||
STREAMCOMPAREEQLQQ:= TFFF; 02163300
|
||||
END STREAMCOMPAREEQL; 02163400
|
||||
02163500
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02163600
|
||||
DEFINE STREAMCOMPARENEQ(N) = 02163700
|
||||
STREAMCOMPARENEQQQ(MBASE, SBASE, N) #; 02163800
|
||||
BOOLEAN PROCEDURE STREAMCOMPARENEQQQ(MBASE, SBASE, N); 02163900
|
||||
VALUE N; 02164000
|
||||
ARRAY MBASE, SBASE[0]; 02164100
|
||||
REAL N; 02164200
|
||||
BEGIN COMMENT 02164300
|
||||
COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 02164400
|
||||
NOT-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 02164500
|
||||
EMULATES CNE. 02164600
|
||||
; 02164700
|
||||
STREAMADJUSTSICHAR; 02164800
|
||||
STREAMADJUSTDICHAR; 02164900
|
||||
TFFF:= TRUE; 02165000
|
||||
WHILE N > 0 DO 02165100
|
||||
BEGIN 02165200
|
||||
IF STREAMGETSC ^= STREAMGETDC THEN % COLLATING SEQ IS IMMATERIAL 02165300
|
||||
BEGIN 02165400
|
||||
STREAMSKIPSI(+1); 02165500
|
||||
STREAMSKIPDI(+1); 02165600
|
||||
N:= *-1; 02165700
|
||||
END 02165800
|
||||
ELSE 02165900
|
||||
BEGIN 02166000
|
||||
TFFF:= FALSE; 02166100
|
||||
STREAMSKIPSI(+N); 02166200
|
||||
STREAMSKIPDI(+N); 02166300
|
||||
N:= 0; 02166400
|
||||
END; 02166500
|
||||
END WHILE; 02166600
|
||||
02166700
|
||||
STREAMCOMPARENEQQQ:= TFFF; 02166800
|
||||
END STREAMCOMPARENEQ; 02166900
|
||||
02175000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02175100
|
||||
DEFINE STREAMCOMPAREGEQ(N) = 02175200
|
||||
@ -1697,7 +1770,7 @@ COMMENT IF A NEW COMPILER-DEFINED OPTION IS ADDED, CHANGE USEROPINX 02495000
|
||||
LISTPTOG = OPTIONWORD.[LISTPBIT:1] #, 02550000=01001290=
|
||||
MCPTOG = OPTIONWORD.[MCPBIT:1] #, 02555000=01001300=
|
||||
MERGETOG = OPTIONWORD.[MERGEBIT:1] #, 02560000=01001310=
|
||||
NESTOG = OPTIONWORD.[NESTBIT:1] #, 02565000=01001320=
|
||||
%% NESTOG = OPTIONWORD.[NESTBIT:1] #, % DUP DECL, NOT USED 02565000=01001320=
|
||||
NEWTOG = OPTIONWORD.[NEWBIT:1] #, 02570000=01001330=
|
||||
NEWINCL = OPTIONWORD.[NEWINCLBIT:1] #, 02575000=01001340=
|
||||
OMITTING = OPTIONWORD.[OMITBIT:1] #, 02580000=01001350=
|
||||
@ -2021,7 +2094,7 @@ COMMENT INFO FORMAT 02910000
|
||||
OROP = 93 #, COMMENT 135; 04190000=01275000=
|
||||
ANDOP = 94 #, COMMENT 136; 04195000=01276000=
|
||||
RELOP = 95 #, COMMENT 137; 04200000=01277000=
|
||||
ADDOP = 96 #, COMMENT 140; 04205000=01278000=
|
||||
ADOP = 96 #, COMMENT 140; 04205000=01278000=
|
||||
MULOP = 97 #, COMMENT 141; 04210000=01278500=
|
||||
% STRING =99#, COMMENT 143; 04215000=01278600=
|
||||
COMMENT SUBCLASSES FOR DECLARATORS (KEPT IN ADDRESS); 04220000=01279000=
|
||||
@ -2043,8 +2116,9 @@ COMMENT INFO FORMAT 02910000
|
||||
NAMEV = 16 #, COMMENT 20; 04300000=01295000=
|
||||
FILEV = 17 #, COMMENT 21; 04305000=01296000=
|
||||
STREAMV = 18 #, COMMENT 22; 04310000=01297000=
|
||||
DEFINEV = 19 #, COMMENT 23; 04315000=01298000=
|
||||
DEFINEDDES = 8 #, 04320000=01299010=
|
||||
DEFINEV = 19 #; COMMENT 23; 04315000=01298000=
|
||||
DEFINE 04320000=01299010=
|
||||
DDES = 8 #, 04322000
|
||||
ADES = 28 #, 04325000=01299020=
|
||||
PDES = 29 #, 04330000=01299030=
|
||||
LDES = 30 #, 04335000=01299040=
|
||||
@ -2052,8 +2126,7 @@ COMMENT INFO FORMAT 02910000
|
||||
FACTOP = ASTRISK #, 04345000=01299200=
|
||||
OPERATORS = HEXOP #, 04350000=01299300=
|
||||
FILEID = 0 #, 04355000=01299400=
|
||||
MAXINTRINSIC = 150 #, 04360000=01299400=
|
||||
% USED IN BUILDING INTABLE @ 09414120 04365000=01299400=
|
||||
MAXINTRINSIC = 150 #, % USED IN BUILDING INTABLE @ 09414120 04360000=01299400=
|
||||
INTRINSICADR = (MAXINTRINSIC DIV 30) #; % RESERVES SEG FOR INTABLE04370000=01299500=
|
||||
REAL 04375000=01300000=
|
||||
TIME1; 04380000=01300000=
|
||||
@ -2334,7 +2407,7 @@ COMMENT INFO FORMAT 02910000
|
||||
DEFINE 05845000=01556500=
|
||||
SUBOP = 48 #; 05850000=01556500=
|
||||
ARRAY 05855000=01556900=
|
||||
CODEBUFF[0:1023]; % CODE BUFFER (WAS A FILE) 05860000=01556900=
|
||||
CODE[0:1023]; % CODE BUFFER (WAS A FILE) 05860000=01556900=
|
||||
FILE 05865000=01557000=
|
||||
CARD(KIND=DISK, DEPENDENTSPECS, FILEUSE=IN); 05870000=01557000=
|
||||
FILE 05875000=01558000=
|
||||
@ -2491,8 +2564,8 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000
|
||||
XIT = 71#, COMMENT (0435) 7.4.8.2 EXIT; 06625000=01676000=
|
||||
ZP1 = 322#, COMMENT (2411) 7.4.10.8 CONDITIONAL HALT; 06630000=01677000=
|
||||
SCI =1003#, COMMENT (7655) SCAN OUT INITIALIZE; 06635000=01677050=
|
||||
SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED 06640000=01677100=
|
||||
SCS =1019#, COMMENT (7755) SCAN OUT STOP; 06645000=01677150=
|
||||
SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED; 06640000=01677100=
|
||||
SCS =1019#; COMMENT (7755) SCAN OUT STOP; 06645000=01677150=
|
||||
COMMENT THESE DEFINES ARE USED BY EMITD; 06650000=01678000=
|
||||
DEFINE 06655000=01679000=
|
||||
DIA = 45#, COMMENT (XX55) 7.4.7.1 DIAL A; 06660000=01680000=
|
||||
@ -2563,10 +2636,11 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000
|
||||
CPLUS2 = 770 #; 07000000=01714000=
|
||||
COMMENT CPLUS1 AND CPLUS2 ARE EXPLICIT CONSTANTS 07005000=01714000=
|
||||
USED IN THE GENERATION OF C-RELATIVE CODE; 07010000=01715000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07012000
|
||||
PROCEDURE FLAG(ERRNUM); 07015000=01716000=
|
||||
VALUE 07020000=01716000=
|
||||
ERRNUM; 07025000=01716000=
|
||||
INTEGER 07030000=01716000=
|
||||
REAL 07030000=01716000=
|
||||
ERRNUM; 07035000=01716000=
|
||||
FORWARD; 07040000=01716000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07045000=01716000=
|
||||
@ -2580,7 +2654,7 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000
|
||||
REAL PROCEDURE TAKE(W); 07085000=01717700=
|
||||
VALUE 07090000=01717700=
|
||||
W; 07095000=01717700=
|
||||
INTEGER 07100000=01717700=
|
||||
REAL 07100000=01717700=
|
||||
W; 07105000=01717700=
|
||||
FORWARD; 07110000=01717700=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07115000=01717700=
|
||||
@ -2668,7 +2742,7 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 07315000
|
||||
REPLACE P:POINTER(EBCDICBUFF,8) BY DISK.TITLE; 07790000=01828500=
|
||||
N2:= MIN(OFFSET(P)-1, 118); 07795000=01828500=
|
||||
WRITE(LINE, 07800000=01835500=
|
||||
<X18, 6"BURROUGHS B-5700 ESPOLXEM COMPILER MARK ", 07802000
|
||||
<X18, "BURROUGHS B-5700 ESPOLXEM COMPILER MARK ", 07802000
|
||||
"XVI.0.00" 07805000=01835500=
|
||||
," ",A6,"DAY, ",I4,"-",A2,"-",A2,", ",I2,":",A2,X1,A3, 07806000=01832000=
|
||||
////X*,A*,/X*,*("=")//>, 07808000
|
||||
@ -2680,6 +2754,10 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 07315000
|
||||
IF H >= 12 THEN "PM." ELSE "AM.", 07820000=01835000=
|
||||
(120-N2) DIV 2, N2, POINTER(EBCDICBUFF,8), 07825000=01835550=
|
||||
(120-N2) DIV 2, N2); 07826000
|
||||
REPLACE P:POINTER(EBCDICBUFF,8) BY CARD.TITLE; 07826100
|
||||
N2:= MIN(OFFSET(P)-1, 106); 07826200
|
||||
WRITE(LINE, <X*,"SOURCE FILE: ",A*,//>, 07826300
|
||||
(107-N2) DIV 2, N2, POINTER(EBCDICBUFF,8)); 07826400
|
||||
NOHEADING:= FALSE; 07830000=01836000=
|
||||
END OF DATIME; 07835000=01837000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07840000=01837000=
|
||||
@ -2700,7 +2778,7 @@ COMMENT OCTIZE REFORMATS ACCUM FOR OCTAL CONSTANTS; 07865000
|
||||
STREAMLOCALS; 07886000
|
||||
TALLY:= 0; 07888000
|
||||
STREAMSETSI(S, SX); 07890000=02001842=
|
||||
STREAMSKIPSI(+3); 07892000=02001842=
|
||||
STREAMSKIPSI(+4); 07892000=02001842=
|
||||
STREAMSETDI(D, DX); 07894000=02001842=
|
||||
THRU SKP DO 07896000=02001842=
|
||||
STREAMSETDB(3, 0); % RIGHT JUSTIFY. 07898000
|
||||
@ -2724,9 +2802,17 @@ COMMENT OCTIZE REFORMATS ACCUM FOR OCTAL CONSTANTS; 07865000
|
||||
STREAMSKIPSB(1); 07934000
|
||||
END; 07936000
|
||||
END THRU; 07938000
|
||||
07940000=02001850=
|
||||
OCTIZE:= BOOLEAN(TALLY); % "1" = NON OCTAL CHARACTER. 07942000=02001852=
|
||||
END OCTIZE; 07970000=02001854=
|
||||
07940000
|
||||
STREAMSETSI(D, DX); 07942000=02001848=
|
||||
IF STREAMTESTSB THEN 07944000=02001848=
|
||||
BEGIN 07946000=02001850=
|
||||
TALLY:= 1; 07948000=02001850=
|
||||
STREAMSETDI(D, DX); 07950000=02001850=
|
||||
STREAMSETDB(1, 0) 07952000=02001850=
|
||||
END; % PREVENT FLAG BIT 07954000=02001850=
|
||||
07965000=02001850=
|
||||
OCTIZE:= BOOLEAN(TALLY); % "1" = NON OCTAL CHARACTER OR FLAG BIT. 07970000=02001852=
|
||||
END OCTIZE; 07975000=02001854=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07976000
|
||||
COMMENT HEXIZE REFORMATS ACCUM FOR HEXADECIMAL CONSTANTS; 07980000=02001856=
|
||||
BOOLEAN PROCEDURE HEXIZE(S, SX, D, DX, SKP, CNT); 07985000=02001858=
|
||||
@ -3153,7 +3239,7 @@ L: SCNN(SBUFF, NCR, COUNT, ACCUM, 1, 63-COUNT, RESULT, RESULT, COUNT, 09710000
|
||||
STREAMSMEARLIT(1, 6":"); 09930000=02185750=
|
||||
STREAMSETLOCSI(L); 09935000=02186000=
|
||||
STREAMTRANSFERDEC(1); 09940000=02186000=
|
||||
STREAMSMEARLIT(1, 6" "); 09945000=02186250=
|
||||
STREAMSMEARLIT(6, 6" "); 09945000=02186250=
|
||||
THRU REAL(OMIT) DO 09950000=02186750=
|
||||
BEGIN 09951000
|
||||
STREAMSKIPDI(-12); 09952000
|
||||
@ -3833,7 +3919,7 @@ LENGTH6: 13625000
|
||||
IF DEBUGTOG THEN 13730000=02533000=
|
||||
IF WOP[0] = 0 THEN 13735000=02534000=
|
||||
BEGIN 13740000=02535000=
|
||||
FILL WOP[*] WITH "LITC", 6" ", "OPDC", 6"DESC", 13745000=02536100=
|
||||
FILL WOP[*] WITH 6"LITC", 6" ", 6"OPDC", 6"DESC", 13745000
|
||||
11,6"NOP ", 12,6"PRT ", 13,6"DEL ", 16,6"ADD ", 18,6"PRL ", 19,6"LNG ",13760000=02539000=
|
||||
21,6"GEQ ", 22,6"BBC ", 24,6"INX ", 35,6"LOR ", 37,6"GTR ", 38,6"BFC ",13765000=02540000=
|
||||
39,6"RTN ", 40,6"COC ", 48,6"SUB ", 64,6"MUL ", 67,6"LND ", 68,6"STD ",13770000=02541000=
|
||||
@ -4038,12 +4124,14 @@ COMMENT INCR FIELD OF SPECIAL CHARACTER IS NON-ZERO FOR SPECIAL 14655000
|
||||
SCANNER; % SCAN PAST "@". 14775000=02684000=
|
||||
IF COUNT > 17 THEN 14780000=02685000=
|
||||
GO ARGH; % 16 CHARS, + "@". 14785000=02685000=
|
||||
IF OCTIZE(ACCUM, 1, C, 17-COUNT, COUNT-1) THEN 14790000=02686000=
|
||||
EBCDICBUFF[0]:= C; 14789000
|
||||
IF OCTIZE(ACCUM, 1, EBCDICBUFF, 0, 17-COUNT, COUNT-1) THEN 14790000=02686000=
|
||||
BEGIN 14795000=02686500=
|
||||
Q:= ACCUM[1]; 14800000=02686500=
|
||||
FLAG(521); 14805000=02686500=
|
||||
GO SCANAGAIN 14810000=02686500=
|
||||
END; 14815000=02686500=
|
||||
C:= EBCDICBUFF[0]; 14816000
|
||||
GO NUMBEREND; 14820000=02687000=
|
||||
14825000=02689000=
|
||||
COMMENT DOT AND ATSIGN ENTER NUMBER CONVERSION AT CORRECT SPOT; 14830000=02689000=
|
||||
@ -4108,6 +4196,8 @@ COMMENT CROSSHATCH HANDLES TWO SITUATIONS: 15020000
|
||||
GT2:= 0 & (T:= DEFINEARRAY[DEFINEINDEX:= DEFINEINDEX-3])[14:29:15]15100000=02721000=
|
||||
; 15105000=02721000=
|
||||
LASTUSED:= T.[14:15]; 15110000=02722000=
|
||||
IF DEFINEINDEX <= 0 THEN 15110100
|
||||
SBUFF:= CBUFF; % REVERT BACK TO CARD BUFFER 15110200
|
||||
FOR GT1:= 1 STEP 1 UNTIL GT2 DO 15115000=02723000=
|
||||
BEGIN 15120000=02723500=
|
||||
STACKHEAD[(T:= TAKE(LASTINFO+1)).[35:36] MOD 125]:= 15125000=02725000=
|
||||
@ -4161,7 +4251,8 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 15225000
|
||||
C:= CONVERT; 15365000=02758000=
|
||||
% RESULT:=7; SCANNER; % DEBLANK. 15370000=02759000=
|
||||
% IF DEFINECTR=0 THEN 15375000=02760000=
|
||||
% IF (C=3 OR C=4) AND EXAMIN(NCR)=""" THEN %OCTAL OR HEX STRING.15380000=02761000=
|
||||
% IF (C=3 OR C=4) AND EXAMIN(SUBFF, NCR)=""" THEN 15380000=02761000=
|
||||
% %OCTAL OR HEX STRING.15380100
|
||||
% BEGIN INTEGER SIZ; 15385000=02762000=
|
||||
% RESULT:=5; SCANNER; % SKIP QUOTE. 15390000=02763000=
|
||||
% COUNT:=0; 15395000=02764000=
|
||||
@ -4169,19 +4260,19 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 15225000
|
||||
% RESULT:=5; SCANNER; 15405000=02766000=
|
||||
% IF COUNT > SIZ:=48 DIV C THEN % > 1 WORD LONG. 15410000=02767000=
|
||||
% BEGIN ERR(520); GO SCANAGAIN END; 15415000=02768000=
|
||||
% END UNTIL EXAMIN(NCR)="""; 15420000=02769000=
|
||||
% END UNTIL EXAMIN(SBUFF, NCR)="""; 15420000=02769000=
|
||||
% Q:=ACCUM[1]; RESULT:=5; SCANNER; COUNT:=COUNT-1; 15425000=02770000=
|
||||
% IF C=3 THEN % OCTAL STRING. 15430000=02771000=
|
||||
% IF OCTIZE(ACCUM[1],ACCUM[4],16-COUNT,COUNT) THEN 15435000=02772000=
|
||||
% IF OCTIZE(ACCUM,1,ACCUM,4,16-COUNT,COUNT) THEN 15435000=02772000=
|
||||
% FLAG(521) % NON OCTAL CHARACTER IN STRING. 15440000=02773000=
|
||||
% ELSE ELSE IF HEXIZE(ACCUM[1],ACCUM[4],12-COUNT,COUNT) THEN 15445000=02774000=
|
||||
% ELSE ELSE IF HEXIZE(ACCUM,1,ACCUM,4,12-COUNT,COUNT) THEN 15445000=02774000=
|
||||
% FLAG(521); % NON CHARACTER IN HEX STRING. 15450000=02775000=
|
||||
% IF COUNT < SIZ THEN 15455000=02776000=
|
||||
% BEGIN 15460000=02777000=
|
||||
% C:=ACCUM[4]; GO FINISHNUMBER; 15465000=02778000=
|
||||
% END; 15470000=02779000=
|
||||
% T.INCR:=COUNT:=8; T.CLASS:=STRING; 15475000=02780000=
|
||||
% MOVECHARACTERS(8,ACCUM[4],0,ACCUM[1],3); 15480000=02781000=
|
||||
% MOVECHARACTERS(8,ACCUM,4,0,ACCUM,1,3); 15480000=02781000=
|
||||
% GO COMPLETE; 15485000=02782000=
|
||||
% END OCTAL OR HEX STRING; 15490000=02783000=
|
||||
IF DPTOG THEN 15495000=02784000=
|
||||
@ -4618,7 +4709,7 @@ COMMENT#################################################################17045000
|
||||
FORWARD; 17660000=03037000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17665000=03037000=
|
||||
PROCEDURE VARIABLE(FROM); 17670000=03038000=
|
||||
INTEGER 17675000=03038000=
|
||||
REAL 17675000=03038000=
|
||||
FROM; 17680000=03038000=
|
||||
FORWARD; 17685000=03038000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17690000=03038000=
|
||||
@ -4701,13 +4792,6 @@ COMMENT#################################################################17045000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18075000=03051001=
|
||||
PROCEDURE FORSTMT; 18080000=03052000=
|
||||
FORWARD; 18085000=03052000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18090000=03052000=
|
||||
REAL PROCEDURE TAKE(INDEX); 18095000=03053000=
|
||||
VALUE 18100000=03053000=
|
||||
INDEX; 18105000=03053000=
|
||||
INTEGER 18110000=03053000=
|
||||
INDEX; 18115000=03053000=
|
||||
FORWARD; 18120000=03053000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18125000=03053000=
|
||||
PROCEDURE E; 18130000=03054000=
|
||||
FORWARD; 18135000=03054000=
|
||||
@ -5174,7 +5258,7 @@ COMMENT DEBUG PRINTS OUT OBJECT CODE IF "DEBUGN" IS SET; 20165000
|
||||
END 20360000=04300000=
|
||||
ELSE 20365000=04300000=
|
||||
BEGIN 20370000=04300000=
|
||||
ERROR(200); 20375000=04300000=
|
||||
ERR(200); 20375000=04300000=
|
||||
L:= 1; 20380000=04300000=
|
||||
END; 20385000=04300000=
|
||||
COMMENT 200 EMIT - SEGMENT GREATER THAN 4093 SYLLABLES *; 20390000=04301000=
|
||||
@ -5331,7 +5415,7 @@ EXIT: 21070000
|
||||
REAL PROCEDURE TAKE(INDEX); 21145000=05005000=
|
||||
VALUE 21150000=05005000=
|
||||
INDEX; 21155000=05005000=
|
||||
INTEGER 21160000=05005000=
|
||||
REAL % B5500 DIDN'T INTEGERIZE PARAM ON CALL? 21160000=05005000=
|
||||
INDEX; 21165000=05005000=
|
||||
TAKE:= INFO[INDEX.LINKR, INDEX.LINKC]; 21170000=05006000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21175000=05006000=
|
||||
@ -5373,7 +5457,7 @@ EXIT: 21070000
|
||||
STREAMSETSI(LSTSEQ, QX); 21330000=05020000=
|
||||
STREAMSKIPSI(-8); 21335000=05020000=
|
||||
STREAMTRANSFERWDS(1); 21340000=05020000=
|
||||
STREAMSETSILINE, 0); 21345000=05021000=
|
||||
STREAMSETSI(LINE, 0); 21345000=05021000=
|
||||
STREAMTRANSFERWDS(2); 21350000=05021000=
|
||||
STREAMSMEARLIT(4*2, 6"X"); COMMENT SET RIGHT MARGIN FLAG; 21355000=05022000=
|
||||
STREAMSETSI(LSTSEQ, QX); 21365000=05023000=
|
||||
@ -5383,7 +5467,7 @@ EXIT: 21070000
|
||||
STREAMSETDI(LINE, 0); 21385000=05024000=
|
||||
STREAMSKIPDI(+8); COMMENT INDENT MESSAGE; 21390000=05024000=
|
||||
STREAMTRANSFERLIT(6, 6"ERROR "); 21400000=05025000=
|
||||
STREAMTRANSFERLIT(6, 6"NUMBER "); 21402000
|
||||
STREAMTRANSFERLIT(7, 6"NUMBER "); 21402000
|
||||
STREAMSETLOCSI(ERRNUM); 21405000=05026000=
|
||||
STREAMTRANSFERDEC(3); COMMENT CONVERT ERRNUM; 21410000=05026000=
|
||||
STREAMTRANSFERLIT(4, 6" -- "); 21420000=05027000=
|
||||
@ -5400,7 +5484,7 @@ EXIT: 21070000
|
||||
ERRORCOUNT:= ERRORCOUNT+1; COMMENT COUNT ERRORS; 21470000=05035000=
|
||||
IF NOT LISTER THEN 21480000=05036000=
|
||||
BEGIN 21485000=05037000=
|
||||
EDITLINE(LIN, SBUFF, FCR, L DIV 4, L.[1:2], MEDIUM, 0); 21490000=05038000=
|
||||
EDITLINE(LIN, SBUFF, FCR, L DIV 4, L.[1:2], MEDIUM, FALSE); 21490000=05038000=
|
||||
MOVE(1, INFO[LASTSEQROW,*], LASTSEQUENCE, LIN, 12); 21495000=05039500=
|
||||
IF NOHEADING THEN 21500000=05039600=
|
||||
DATIME; 21505000=05039600=
|
||||
@ -5698,6 +5782,7 @@ EXIT: 23235000
|
||||
XIT, 23645000=05325080=
|
||||
JUMPOUT; 23646000
|
||||
23648000
|
||||
TALLY:= 0; 23649000
|
||||
STREAMSETLOCSI(PORS); 23650000=05325090=
|
||||
STREAMSKIPSI(+3); 23655000=05325090=
|
||||
STREAMSETDI(LIN, 0); % "PRT" OR "STACK". 23660000=05325090=
|
||||
@ -5885,7 +5970,8 @@ EXIT: 23235000
|
||||
IF ELBAT[I].ADDRESS = SUBOP THEN 24365000=05344580=
|
||||
GS:= FZERO 24370000=05344580=
|
||||
ELSE 24375000=05344580=
|
||||
GS:= 512; 24380000=05344580=
|
||||
GS:= 512 24380000
|
||||
ELSE 24381000
|
||||
BEGIN 24385000=05344600=
|
||||
GS:= 0; 24390000=05344600=
|
||||
I:= I-1 24395000=05344600=
|
||||
@ -6112,9 +6198,10 @@ EXIT: 24705000
|
||||
NESTSORT(L, M); 25425000=05442000=
|
||||
NESTSORT(M+1, U); 25430000=05443000=
|
||||
I:= K:= L; 25435000=05444000=
|
||||
J:= M+1 AGAIN: 25440000=05445000=
|
||||
IF I > M THEN 25445000=05445000=
|
||||
GO TO TOP; 25450000=05445000=
|
||||
J:= M+1; 25440000=05445000=
|
||||
AGAIN: 25442000
|
||||
IF I > M THEN 25445000=05445000=
|
||||
GO TO TOP; 25450000=05445000=
|
||||
IF J > U THEN 25455000=05446000=
|
||||
GO TO BOTTOM; 25460000=05446000=
|
||||
GT1:= NESTPRT[SORTPRT[I].[14:15]].LINK; 25465000=05447000=
|
||||
@ -6295,7 +6382,8 @@ EXIT: 24705000
|
||||
IF ELCLASS >= OPERATOR THEN 26310000=06076000=
|
||||
BEGIN 26315000=06077000=
|
||||
IF T1 ^= 0 THEN 26320000=06077000=
|
||||
EMITO(T1); 26325000=06077000=
|
||||
EMITO(T1) 26325000=06077000=
|
||||
ELSE 26327000
|
||||
BEGIN 26330000=06078000=
|
||||
T1:= T2.LINK+2; 26335000=06079000=
|
||||
T2:= T2.INCR+T1; 26340000=06080000=
|
||||
@ -6319,7 +6407,7 @@ EXIT: 24705000
|
||||
ELSE 26430000=06091000=
|
||||
IF T2 = ISOLATE THEN 26435000=06092000=
|
||||
BEGIN 26440000=06093000=
|
||||
T2+C; 26445000=06093000=
|
||||
T2:= C; 26445000=06093000=
|
||||
IF STEPI ^= LITNO THEN 26450000=06095000=
|
||||
BEGIN 26455000=06095000=
|
||||
ERR(500); 26460000=06095000=
|
||||
@ -6613,7 +6701,7 @@ EXIT: 27805000
|
||||
T1:= (T2:= ELBAT[I]).ADDRESS; 27845000=06185000=
|
||||
PANA; 27850000=06186000=
|
||||
IF T1 ^= 0 THEN 27855000=06187000=
|
||||
EMITO(T1); 27860000=06187000=
|
||||
EMITO(T1) 27860000=06187000=
|
||||
ELSE 27865000=06188000=
|
||||
BEGIN 27870000=06188000=
|
||||
T1:= T2.LINK+T2.INCR+1; 27875000=06189000=
|
||||
@ -6948,7 +7036,7 @@ ANOTHER: 29240000
|
||||
IF ACLASS = REALID AND BOOLEAN(ELBAT[I].FORMAL) THEN 29465000=07070000=
|
||||
BEGIN 29470000=07070000=
|
||||
CHECKER(ELBAT[I]); 29475000=07070500=
|
||||
EMITPAIR(ELBAT[I], ADDRESS, LOD); 29480000=07071000=
|
||||
EMITPAIR(ELBAT[I].ADDRESS, LOD); 29480000=07071000=
|
||||
STEPIT; 29485000=07072000=
|
||||
END 29490000=07073000=
|
||||
ELSE 29495000=07073000=
|
||||
@ -6961,7 +7049,7 @@ ANOTHER: 29240000
|
||||
IF ELCLASS <= STRNGCON AND ELCLASS > LABELID THEN 29515000=07076000=
|
||||
BEGIN 29520000=07076000=
|
||||
PRIMARY; 29525000=07076000=
|
||||
GOTO COMMON 29530000=07076000=
|
||||
GO TO COMMON 29530000=07076000=
|
||||
END; 29535000=07076000=
|
||||
END; 29540000=07077000=
|
||||
EMITO(NOP); 29545000=07078000=
|
||||
@ -7066,10 +7154,10 @@ EXIT: 29785000
|
||||
ACTUALPARAPART(FALSE, GIT(HOLE)) 30030000=07411000=
|
||||
ELSE 30035000=07411000=
|
||||
IF FORMALF THEN 30040000=07411000=
|
||||
L:= L-1; 30045000=07411000=
|
||||
ELSE 30050000=07412000=
|
||||
IF TAKE(GIT(HOLE)).NODIMPART ^= 0 THEN 30055000=07412000=
|
||||
ERR(128); 30060000=07412000=
|
||||
L:= L-1 30045000=07411000=
|
||||
ELSE 30050000=07412000=
|
||||
IF TAKE(GIT(HOLE)).NODIMPART ^= 0 THEN 30055000=07412000=
|
||||
ERR(128); 30060000=07412000=
|
||||
EMITV(ADDRESS); 30065000=07413000=
|
||||
EXIT: 30070000=07425000=
|
||||
END PROCSTMT; 30075000=07425000=
|
||||
@ -7176,7 +7264,7 @@ EXIT: 30070000
|
||||
ELBW; 30580000=07503000=
|
||||
LABEL 30585000=07504000=
|
||||
GOMCP, 30590000=07504000=
|
||||
EXIT; 30595000=07504000=
|
||||
EXIT; 30595000=07504000=
|
||||
IF STEPI = TOV THEN 30600000=07505000=
|
||||
STEPIT; 30605000=07505000=
|
||||
IF ELCLASS = LABELID THEN 30610000=07506000=
|
||||
@ -7282,7 +7370,7 @@ EXIT: 31070000
|
||||
BEGIN 31110000=07562000=
|
||||
REAL 31115000=07562000=
|
||||
T1, 31120000=07562000=
|
||||
T2; 31125000=07562000=
|
||||
T2; 31125000=07562000=
|
||||
LABEL 31130000=07562000=
|
||||
EXIT; 31135000=07562000=
|
||||
IFCLAUSE; 31140000=07563000=
|
||||
@ -7483,6 +7571,7 @@ COMMENT "COCT" PERFORMS THE OCTAL CONVERT FOR THE FILL STATEMENT. 32030000
|
||||
ACC, CD[0]; 32108000
|
||||
BEGIN 32110000=07654000=
|
||||
STREAMLOCALS; 32112000
|
||||
TALLY:= 0; 32114000
|
||||
STREAMSETSI(ACC, AX); 32115000=07654500=
|
||||
STREAMSKIPSI(+6); 32120000=07654500=
|
||||
STREAMSETDI(CD, CX); 32125000=07654500=
|
||||
@ -7498,7 +7587,7 @@ COMMENT "COCT" PERFORMS THE OCTAL CONVERT FOR THE FILL STATEMENT. 32030000
|
||||
THRU 3 DO 32155000=07656000=
|
||||
BEGIN 32155500
|
||||
IF STREAMTESTSB THEN 32156000
|
||||
STREAMSETDB(1) 32156500
|
||||
STREAMSETDB(1, 1) 32156500
|
||||
ELSE 32157000
|
||||
STREAMSKIPDB(1); 32157500
|
||||
STREAMSKIPSB(1); 32158000
|
||||
@ -7830,7 +7919,7 @@ EXIT: 33765000
|
||||
END STMT; 33770000=07771000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33775000=07771000=
|
||||
PROCEDURE IOSTMT; 33780000=07993000=
|
||||
IF(GT1:= ELBAT[I].ADDRESS > 15 THEN ERR(98) 33785000=07994000=
|
||||
IF(GT1:= ELBAT[I].ADDRESS) > 15 THEN ERR(98) 33785000=07994000=
|
||||
ELSE 33790000=07994000=
|
||||
BEGIN 33795000=07995000=
|
||||
EMIT(ELBAT[I-1].ADDRESS & GT1[6:0:1] & GT1[11:3:3]); 33800000=07995000=
|
||||
@ -8318,7 +8407,7 @@ EOF: 36210000
|
||||
I, 36260000=08999500=
|
||||
J; 36265000=08999500=
|
||||
I:= (L+7) DIV 4; 36270000=08999525=
|
||||
EBCDICBUF[0]:= I; 36275000=08999550=
|
||||
EBCDICBUFF[0]:= I; 36275000=08999550=
|
||||
REPLACE POINTER(EBCDICBUFF[1],0) BY POINTER(CODE[0],0) 36280000=08999575=
|
||||
FOR (J:=29) WORDS; 36280100
|
||||
WRITE(CODISK, 30, EBCDICBUFF); 36285000=08999600=
|
||||
@ -8543,12 +8632,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
3"1310441000000002", 6"3MUL00", %503 37410000=09121300=
|
||||
3"1310441050000002", 6"3NEQ00", %505 37415000=09121400=
|
||||
3"1310100130000002", 6"3NOP00", %507 37420000=09121500=
|
||||
3"0650006550000002", 6"6SCOPO", 6"N......."; %509 37425000=09121600=
|
||||
3"0650006550000003", 6"6SCOPO", 6"N......."; %509 37425000=09121600=
|
||||
FILL INFO[2, *] WITH 37430000=09121700=
|
||||
3"131030000020004", 6"3RDF00", %512 37432000
|
||||
3"1310300000020004", 6"3RDF00", %512 37432000
|
||||
3"0000", COMMENT LITC 0; 37435000=09121800=
|
||||
3"2141", COMMENT FXS ; 37440000=09121900=
|
||||
3"131030000020004", 6"3RDS00", %516 37450000=09122000=
|
||||
3"1310300000020004", 6"3RDS00", %516 37450000=09122000=
|
||||
3"0004", COMMENT LITC 1; 37455000=09122100=
|
||||
3"2141", COMMENT FXS ; 37460000=09122200=
|
||||
3"1310456000000002", 6"3RDV00", %520 37470000=09122300=
|
||||
@ -8607,12 +8696,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
3"0030000000040003", 6"2LB000", 6"[# ", %621 37755000=09127500=
|
||||
3"0030000000040003", 6"2RB000", 6"]# ", %624 37760000=09127600=
|
||||
3"0030000000040003", 6"3GTR00", 6"># ", %627 37765000=09127700=
|
||||
3"0030000000040003", 6"3GEQ00", 6"}# ", %630 37770000=09127800=
|
||||
3"0030000000040003", 6"3GEQ00", 3"17"6"# ", %630 37770000=09127800=
|
||||
3"0030000000040003", 6"3EQL00", 6"=# ", %633 37775000=09127900=
|
||||
3"0030000000040003", 6"3NEQ00", 6"!# ", %636 37780000=09128000=
|
||||
3"0030000000040003", 6"3LEQ00", 6"{# ", %639 37785000=09128100=
|
||||
3"0030000000040003", 6"3NEQ00", 3"74"6"# ", %636 37780000=09128000=
|
||||
3"0030000000040003", 6"3LEQ00", 3"57"6"# ", %639 37785000=09128100=
|
||||
3"0030000000040003", 6"3LSS00", 6"<# ", %642 37790000=09128200=
|
||||
3"0030000000040003", 6"5TIMES", 6"|# ", %645 37795000=09128300=
|
||||
3"0030000000040003", 6"5TIMES", 3"40"6"# ", %645 37795000=09128300=
|
||||
3"1310117530000002", 6"3SCI00", %688 37800000=09128400=
|
||||
3"1310117540000002", 6"3SAN00", %650 37805000=09128500=
|
||||
3"1310157730000002", 6"3SCS00", %652 37810000=09128600=
|
||||
@ -8789,7 +8878,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
VALUE 38590000=09378000=
|
||||
LX, N, SX; 38595000=09378000=
|
||||
ARRAY 38596000
|
||||
LINE[0]; 38597000
|
||||
LINE, SEQ[0]; 38597000
|
||||
REAL 38598000
|
||||
LX, N, SX; 38599000
|
||||
BEGIN 38600000=09379000=
|
||||
@ -8949,7 +9038,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
3"0051000000000000", 39302000=09395500=
|
||||
3"0441070001000062"; 39305000=09395500=
|
||||
Q:= -1; 39310000=09395700=
|
||||
PUSHEE(SAVEINFO, L, 4, 5); 39315000=09396000=
|
||||
PUSHEE(SAVINFO, L, 4, 5); 39315000=09396000=
|
||||
SAVNDX:= L; 39320000=09397000=
|
||||
END; 39325000=09397100=
|
||||
REWIND(CODISK); 39330000=09398000=
|
||||
@ -9011,7 +9100,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
ELSE 39615000=09419000=
|
||||
SAVINFO[I.LINKR, I.LINKC]:= 0 39620000=09419000=
|
||||
UNTIL I:= I+1 >= PRTIMAX; 39625000=09419000=
|
||||
MDESC(0 & 1[45:0:1], SAVINFO[D, PRTBASE-1]); 39630000=09419100=
|
||||
MDESC(0 & 1[45:0:1], SAVINFO[0, PRTBASE-1]); 39630000=09419100=
|
||||
SAVNDX:= 30*N; 39635000=09420000=
|
||||
END; 39640000=09420010=
|
||||
I:= 0; 39645000=09420020=
|
||||
@ -9153,10 +9242,11 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000
|
||||
VALUE 40255000=10257100=
|
||||
DX, SX, Q, N, J; 40260000=10257100=
|
||||
ARRAY 40262000
|
||||
D, A[0]; 40264000
|
||||
D, S[0]; 40264000
|
||||
REAL 40266000
|
||||
DX, SX, Q, N, J; 40268000
|
||||
BEGIN 40275000=10257200=
|
||||
STREAMLOCALS; 40277000
|
||||
STREAMSETDI(D, DX); 40280000=10257200=
|
||||
STREAMSKIPDI(+11); 40285000=10257200=
|
||||
STREAMSETSI(S, SX); 40290000=10257200=
|
||||
@ -9427,7 +9517,7 @@ EXIT: 40870000
|
||||
EL:= TABLE(NXTELBT); 41535000=12112000=
|
||||
NXTELBT:= NXTELBT-1; 41540000=12113000=
|
||||
IF EL ^= LEFTPAREN AND EL ^= LFTBRKET THEN 41545000=12114000=
|
||||
FLAG(141); 41550000=12115000=
|
||||
FLAG(141) 41550000=12115000=
|
||||
ELSE 41555000=12116000=
|
||||
DO BEGIN 41560000=12116000=
|
||||
J:= J+1; 41565000=12116000=
|
||||
@ -9856,7 +9946,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000
|
||||
STREAMTRANSFERDEC(5); 43605000=13642000=
|
||||
END PRINT; 43610000=13643000=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%43612000
|
||||
CODE[0]:= SAVECODE; 43615000=13651000=
|
||||
CODE[0]:= REAL(SAVECODE); 43615000=13651000=
|
||||
IF SAVECODE AND INTOG AND NOT DECKTOG THEN 43620000=13651100=
|
||||
FLAG(57); 43625000=13651100=
|
||||
IF LISTER OR SEGSTOG THEN 43630000=13652000=
|
||||
@ -9887,7 +9977,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000
|
||||
BEGIN 43730000=13663000=
|
||||
STREAMLOCALS; 43732000
|
||||
STREAMSETDI(FIEL, 0); 43735000=13665000=
|
||||
STREAMTRANSFERLIT(8, 6" "); 43740000=13665000=
|
||||
STREAMSMEARLIT(8, 6" "); 43740000=13665000=
|
||||
STREAMSETSI(FIEL, 0); 43745000=13667000=
|
||||
STREAMTRANSFERWDS(14); 43750000=13667000=
|
||||
STREAMSKIPDI(-16); 43755000=13668000=
|
||||
@ -9923,7 +10013,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000
|
||||
N:= STREAMTEMPD[0]; 43882000
|
||||
STREAMSETDI(S, SX); 43885000=13673350=
|
||||
STREAMSETLOCSI(F); 43890000=13673350=
|
||||
STREAMKIPSI(+7); 43895000=13673350=
|
||||
STREAMSKIPSI(+7); 43895000=13673350=
|
||||
STREAMTRANSFERCHR(1); 43900000=13673350=
|
||||
STREAMSETLOCSI(C); 43905000=13673350=
|
||||
STREAMTRANSFERDEC(3); 43910000=13673400=
|
||||
@ -9948,7 +10038,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000
|
||||
IF FR > 1024 THEN 44000000=13677250=
|
||||
FR:= FR-1024; 44005000=13677250=
|
||||
DOIT(KLASSF, FR, INFO[PROINFO.LINKR,*], PROINFO.LINKC, 44010000=13677400=
|
||||
TWXA, 0, SAF, SIZE); 44015000=13677400=
|
||||
TWXA, 0, REAL(SAF), SIZE); 44015000=13677400=
|
||||
WRITE(STUFF, 10, TWXA[*]); 44020000=13677500=
|
||||
END; 44025000=13677600=
|
||||
IF SIZE > SEGSIZEMAX THEN 44030000=13678000=
|
||||
@ -10212,7 +10302,7 @@ COMMENT SOP IS TRUE IF THE BLOCK WAS CALLED BY ITSELF THROUGH THE 45040000
|
||||
BEGINCTR:= BEGINCTR+1; 45490000=14035000=
|
||||
IF SOP THEN 45495000=14037000=
|
||||
BEGIN 45500000=14037000=
|
||||
BLKAD:= PROADD; 45505000=14037000=
|
||||
BLKAD:= PROADO; 45505000=14037000=
|
||||
IF LASTENTRY ^= 0 THEN 45510000=14039000=
|
||||
BEGIN 45515000=14039000=
|
||||
GT1:= BUMPL; 45520000=14039000=
|
||||
@ -10433,11 +10523,10 @@ SWITCHDEC: 46505000
|
||||
IF STEPI ^= LABELID OR ELBAT[I].LVL ^= LEVEL THEN 46605000=14220000=
|
||||
FLAG(63); 46610000=14220000=
|
||||
PUTNBUMP(ELBAT[I]); 46615000=14221000=
|
||||
GT1:= GT1+1; 46620000=14221000=
|
||||
END; 46625000=14222000=
|
||||
; COMMENT 46630000=14222500=
|
||||
UNTIL STEPI^=COMMA; 46635000=14223000=
|
||||
PUT(GT1, GT2); 46640000=14224000=
|
||||
GT1:= GT1+1 46620000=14221000=
|
||||
END COMMENT 46625000=14222000=
|
||||
UNTIL STEPI^=COMMA; 46635000=14223000=
|
||||
PUT(GT1, GT2); 46640000=14224000=
|
||||
STOPENTRY:= STOPGSP:= FALSE; 46645000=14251000=
|
||||
END SWITCHDEC; 46650000=14252000=
|
||||
GO TO START; 46655000=14253000=
|
||||
@ -10458,6 +10547,7 @@ DEFINEDEC: 46660000
|
||||
SX, K, J; 46718000
|
||||
BEGIN 46720000=14254300=
|
||||
STREAMLOCALS; 46722000
|
||||
TALLY:= 0; 46724000
|
||||
STREAMSETSI(S, SX); 46725000=14254300=
|
||||
STREAMSKIPSI(+2); 46730000=14254300=
|
||||
STREAMSETDI(D, 0); 46735000=14254300=
|
||||
@ -10468,7 +10558,7 @@ DEFINEDEC: 46660000
|
||||
STREAMSKIPDI(+7); 46755000=14254500=
|
||||
IF STREAMCOMPARENEQ(1) THEN 46760000=14254600=
|
||||
TALLY:= 1; 46765000=14254600=
|
||||
PARM:= TALLY; 46770000=14254700=
|
||||
PARM:= BOOLEAN(TALLY); 46770000=14254700=
|
||||
END; 46775000=14254800=
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46776000
|
||||
STOPENTRY:= STOPGSP:= TRUE; 46780000=14255000=
|
||||
@ -10814,9 +10904,8 @@ HF: BEGIN 47785000
|
||||
IF ELCLASS = BEGINV THEN 48485000=14479000=
|
||||
BEGIN 48490000=14481000=
|
||||
CALLINFO:= (CALLX:= CALLX+1)+1; 48495000=14481100=
|
||||
NEXTCTR:= STACKCTR; 48500000=14481200=
|
||||
NESTCTR:= STACKCTR; 48500000=14481200=
|
||||
BLOCK(TRUE); 48505000=14482000=
|
||||
; 48510000=14483000=
|
||||
PURGE(PINFOO); 48515000=14483000=
|
||||
IF NESTOG THEN 48520000=14483100=
|
||||
BEGIN 48525000=14483200=
|
||||
@ -10888,7 +10977,7 @@ CALLSTATEMENT: 48680000
|
||||
SORTNEST; 48855000=14601000=
|
||||
PURGE(NINFOO); 48860000=14601000=
|
||||
END; 48865000=14601000=
|
||||
SEGMENT((L+3) DIV 4, PROADD); 48870000=14602000=
|
||||
SEGMENT((L+3) DIV 4, PROADO); 48870000=14602000=
|
||||
IF LEVEL > 1 THEN 48875000=14603000=
|
||||
RIGHT(L); 48880000=14603000=
|
||||
IF LEVEL:= LEVEL-1 = 0 THEN 48885000=14604000=
|
||||
@ -11275,7 +11364,7 @@ COMMENT 208 VARIABLE- NUMBER OF SUBSCRIPTS DOES NOT MATCH WITH * 50680000
|
||||
EMITD(48-T2, T1, T2); 50795000=15308000=
|
||||
EMITO(XCH); 50800000=15309000=
|
||||
IF TALL.ADDRESS > 1023 THEN 50805000=15310000=
|
||||
EMITI(PRTE); 50810000=15310000=
|
||||
EMITO(PRTE); 50810000=15310000=
|
||||
EMITO(IF TALL.CLASS MOD 2 = INTARRAYID MOD 2 THEN IF P1 = FS 50815000=15335000=
|
||||
THEN ISD ELSE ISN ELSE IF P1 = FS THEN STD ELSE SND); 50820000=15335000=
|
||||
STACKCT:= 0; 50825000=15335500=
|
||||
@ -11700,12 +11789,13 @@ EXIT: 52305000
|
||||
IF STEPI ^= TOV THEN 52385000=16252000=
|
||||
I:= I-1; 52390000=16252000=
|
||||
IF STEPI ^= STLABID THEN 52395000=16253000=
|
||||
ELCLASS <= IDMAX 52400000=16253000=
|
||||
DECLARELABEL ELSE 52405000=16253100=
|
||||
BEGIN 52410000=16253100=
|
||||
ERR(260); 52415000=16253100=
|
||||
GO TO EXIT 52420000=16253100=
|
||||
END; 52425000=16253100=
|
||||
IF ELCLASS <= IDMAX THEN 52400000=16253000=
|
||||
DECLARELABEL 52405000=16253100=
|
||||
ELSE 52407000
|
||||
BEGIN 52410000=16253100=
|
||||
ERR(260); 52415000=16253100=
|
||||
GO TO EXIT 52420000=16253100=
|
||||
END; 52425000=16253100=
|
||||
IF (GT2:= TAKE(GIT(GT1:= ELBAT[I]))).MON = 1 OR GT2.LOC ^= 0 THEN 52430000=16255000=
|
||||
EMITJUMP(GT1) 52435000=16256000=
|
||||
ELSE 52440000=16256000=
|
||||
@ -11869,7 +11959,7 @@ EXIT: 53005000
|
||||
EMITC(ADDR, 10) 53220000=16378500=
|
||||
ELSE %E 53225000=16378500=
|
||||
IF ELCLASS = TRNSFER THEN 53230000=16379000=
|
||||
EMITC(ADDR, ELBAT[1].OPCODE) 53235000=16380000=
|
||||
EMITC(ADDR, ELBAT[I].OPCODE) 53235000=16380000=
|
||||
ELSE 53240000=16380000=
|
||||
IF ELCLASS = LITV THEN 53245000=16381000=
|
||||
BEGIN 53250000=16382000=
|
||||
@ -11961,7 +12051,7 @@ EXIT: 53360000
|
||||
BEGIN 53655000=16441000=
|
||||
JOINFO:= NEXTINFO; 53660000=16442000=
|
||||
PUTNBUMP 53665000=16444000=
|
||||
(STACKHEAD[0], LINK & (STLABID*2+1)[45:7:8] & 2[20:7:8]); 53670000=16444000=
|
||||
(STACKHEAD[0].LINK & (STLABID*2+1)[45:7:8] & 2[20:7:8]); 53670000=16444000=
|
||||
PUTNBUMP(0 & (JOINFO-LASTINFO)[43:7:8]); 53675000=16445000=
|
||||
PUTNBUMP(0); 53680000=16446000=
|
||||
LASTINFO:= JOINFO; 53685000=16447000=
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user