.ORIGIN START+
MCODESIZE+
BSCOUNT+
PERMANENTDECLARATIONS;
.ARRAY NAMELIST[
PERMANENTDECLARATIONS]
( 0, 0, 0,
'153145, '052711, 9, '753,
& USE UNIT
'16364, 9, '756,
& GET
'157111, '1205, 8, '757,
& WRITE
'144241, 4, 8, '760,
& READ
'105246, '14262, 5, '761,
& BUFFER
'137005, '16, 9, '763,
& OPEN
'164262, '37145, 8, '764,
& ZEROSEEK
'106617, '1145, 8, '765,
& CLOSE
'144241, '233, 8, '766,
& READ 1
'144241, '234, 8, '767,
& READ 2
'110463, '7362, 8, '770,
& DISCWRITE
'114454, '12701, 6, '771,
& FILENAME
'105246, '333, 5, '772,
& BUFF 1
'105246, '334, 5, '773,
& BUFF 2
'105246, '335, 5, '774,
& BUFF 3
'122704, '270, 1, 0, '30, 1, 0 );
.SET MCODE [
MCODESIZE] (
'024660, '002000,
&JMP
'030201, '004000,
&LDA
'010604, '004000,
&DLD
'002701, '006000,
&ANA
'047201, '010000,
&STA
'011164, '010000,
&DST
'013101, '012000,
&ERA
'002204, '014000,
&ADD
'010044, '014000,
&DAD
'047242, '016000,
&SUB
'011142, '016000,
&DSB
'025164, '020000,
&JST
'006063, '022000,
&CAS
'023123, '024000,
&IRS
'022641, '026000,
&IMA
'036160, '030000,
&OCP
'030230, '072000,
&LDX
'047230, '032000,
&STX
'033031, '034000,
&MPY
'010466, '036000,
&DIV
'046563, '070000,
&SKS
'022701, '130000,
&INA
'037201, '170000,
&OTA
'046653, '170000,
&SMK
'031114, '040000,
&LRL
'031123, '040100,
&LRS
'031122, '040200,
&LRR
'030362, '040400,
&LGR
'003123, '040500,
&ARS
'003122, '040600,
&ARR
'030614, '041000,
&LLL
'030623, '041100,
&LLS
'030622, '041200,
&LLR
'030354, '041400,
&LGL
'002623, '041500,
&ALS
'002622, '041600,
&ALR
'020624, '000000,
&HLT
'046354, '000005,
&SGL
'010114, '000007,
&DBL
'011401, '000011,
&DXA
'013401, '000013,
&EXA
'044660, '000021,
&RMP
'046141, '000041,
&SCA
'022713, '000043,
&INK
'035115, '000101,
&NRM
'022042, '000201,
&IAB
'012702, '000401,
&ENB
'022710, '001001,
&INH
'013115, '001401,
&ERM
'046560, '100000,
&SKP
'047103, '100001,
&SRC
'047136, '100002,
&SR4
'047135, '100004,
&SR3
'047134, '100010,
&SR2
'047133, '100020,
&SR1
'047162, '100036,
&SSR
'047505, '100040,
&SZE
'046632, '100100,
&SLZ
'047016, '100200,
&SPN
'047014, '100400,
&SPL
'034760, '101000,
&NOP
'047143, '101001,
&SSC
'047176, '101002,
&SS4
'047175, '101004,
&SS3
'047174, '101010,
&SS2
'047173, '101020,
&SS1
'047163, '101036,
&SSS
'046732, '101040,
&SNZ
'046616, '101100,
&SLN
'047023, '101200,
&SPS
'046651, '101400,
&SMI
'006423, '140024,
&CHS
'007101, '140040,
&CRA
'047160, '140100,
&SSP
'044142, '140200,
&RCB
'007141, '140320,
&CSA
'006641, '140401,
&CMA
'050141, '140407,
&TCA
'047155, '140500,
&SSM
'046142, '140600,
&SCB
'006062, '141044,
&CAR
'006054, '141050,
&CAL
'022154, '141140,
&ICL
'002741, '141206,
&AOA
'002141, '141216,
&ACA
'022162, '141240,
&ICR
'022141, '141340,
&ICA
'037213, '171020
&OTK
);
.SET COMPLIST [
BSCOUNT] (
'146404,'000601, 1,
&SHDLA
'146404,'000603, 2,
&SHDLC
'146404,'000614, 3,
&SHDLL
'146404,'001101, 4,
&SHDRA
'146404,'001103, 5,
&SHDRC
'146404,'001114, 6,
&SHDRL
'146423,'000601, 7,
&SHSLA
'146423,'000603, '10,
&SHSLC
'146423,'000614, '11,
&SHSLL
'146423,'001101, '12,
&SHSRA
'146423,'001103, '13,
&SHSRC
'146423,'001114, '14,
&SHSRL
'134247,'002123,'27,
& NEGABS
'002123, '30,
&ABS
'102204,'000003, '31,
&ADDC
'006423, '32,
&CHS
'106605,'000324, '33,
&CLEFT
'106760,'000031, '34,
©
'107111,'016424, '35,
&CRIGHT
'122154,'012324, '36,
&ICLEFT
'122162,'022350, '37,
&ICRIGHT
'022703, '40,
&INC
'034247, '41,
&NEG
'034764, '42,
&NOT
'047155, '43,
&SSM
'047160, '44,
&SSP
'147357,'000020, '45,
&SWOP
'102125,'000007, '46,
& ABUG
'122703,'000034,'47,
& INC2
'102731,'026271, '60,
&ANYKEY
'107145,'000024, '61,
&CSET
'113305,'000016, '62,
&EVEN
'016272, '63,
&GEZ
'000632, '64,
&LZ
'134753,'000271, '65,
&NOKEY
'134764,'000003, '66,
&NOTC
'000732, '67,
&NZ
'036204, '70,
&ODD
'146256,'046273, '71,
&SENSE1
'146256,'046274, '72,
&SENSE2
'146256,'046275, '73,
&SENSE3
'146256,'046276, '74,
&SENSE4
'000032, '75,
&Z
'146125,'000007, '76,
& SBUG
'036705,'77,
& ONE
'000002,'100,
& B
'106063, '000005, '101,
& CASE
'000746, '102,
& OF
'147205, '000020, '103,
& STEP
'147205, '040217, '104,
& STEPDOWN
'112623, '12043, '105,
& ELSEACC
'103122,'000071, '110,
&ARRAY
'106755,'040157, '111,
&COMPCONST
'106756,'010464, '112,
&CONDITIONAL
'106756,'047201, '113,
&CONSTANT
'114762,'056062, '114,
&FORWARD
'116617,'004054, '115,
&GLOBAL
'122724,'012345, '116,
&INTEGER
'130042,'000254, '117,
&LABEL
'130064,'000262, '120,
&LATER
'130463,'000024, '121,
&LIST
'134270,'051145, '122,
&NEXTSECTOR
'137111,'016456, '123,
&ORIGIN
'141117,'006244, '124,
&PROCEDURE
'046264, '125,
&SET
'147222,'022707, '126,
&STRING
'147351,'050150, '127,
&SWITCH
'150042,'000605,'130,
& TABLE
'151111,'002707,'131,
& TRIANGLE
'110765,'004605,'132,
& DOUBLE
'104617, '000153, '133,
& BLOCK
'112704, '004617, '134,
& ENDBLOCK
'114454, '000005, '135,
& FILE
'1024, '136,
& "PT" FOR PAPERTAPE
& '137 USED FOR :=
'000044,'140,
& AD (SHORT FOR ADDRESS)
'102204,'044263, '140,
&ADDRESS
'104247,'000456, '141,
&BEGIN
'106744,'013357, '142,
&CODEWORD
'000167,'142,
& CW (SHORT FOR CODEWORD)
'000217, '143,
&DO
'112623,'000005, '144,
&ELSE
'012704, '145,
&END
'113411,'050301, '146,
&EXITFALSE
'113411,'051222, '147,
&EXITTRUE
'116764,'000017, '150,
&GOTO
'000446, '151,
&IF
'150405,'000016, '152,
&THEN
'156405,'000016, '153,
&WHEN
'156411,'000605, '154,
&WHILE
'014762,'155,
& FOR
'000255,'156,
& EM
'113411,'000024,'157,
& EXIT
'152724,'000454,'160,
& UNTIL
'152714,'013163,'161,
& UNLESS
'016264, '162,
& GET
'111255,'000020, '163,
& DUMP
'144260,'12064, '164,
& REPEAT
'144056, '000345, '165,
& RANGE
'001217, '166,
& TO
'000762,'167,
& OR
'002704, '170,
&AND
'032744, '171,
&MOD
'034266, '172,
&NEV
'000345, '173,
&GE
'000605, '174,
&LE
'000705, '175,
&NE
'032456, '176,
& MIN
'032070, '177
& MAX
);
.ORIGIN START + '1000;
.PROCEDURE ARRAYVALUES;
.INTEGER FIRST,
SECOND;
.BEGIN
STACK(
POS);
FAILIFNOT(
LSBSYMBOL);
CONSTEXPRESSION;
FIRST :=
.ABS VALUE;
.WHEN ARRTYPE + 2
.Z .THEN
.BEGIN
FAILIFNOT(
COMMASYMBOL);
CONSTEXPRESSION;
.END;
SECOND :=
.ABS VALUE;
FAILIFNOT(
RSBSYMBOL);
POS :=
UNSTACK;
GETADD;
VADD,
VALUE :=
LOCAL +
FIRST + '40000;
SETWORD;
.IF ARRTYPE + 3
.Z .THEN SIZE :=
FIRST
.ELSE
.BEGIN
.WHEN FIRST .NZ .THEN
.FOR FIRST :=
.NEG @
.DO
.BEGIN
VALUE :=
VALUE +
SECOND;
GENWORD(
VALUE);
.WHEN .INC ARRTYPE .Z .THEN SECOND :=
SECOND - 1;
.END;
SIZE :=
VALUE -
VADD;
.END;
.WHEN BASIC(
LRBSYMBOL)
.THEN
.BEGIN
NBS;
K :=
.Z;
MORE :;
.IF BASIC(
DOUBLEQUOTES)
.THEN
.BEGIN
J :=
.Z;
NEWCHAR:
INCHAR;
.WHEN BASIC(
DOUBLEQUOTES)
.THEN
.BEGIN
.WHEN J .ODD .THEN PUTARRAYVALUE(
VALUE +
SPACE);
NBS;
.GOTO CHECKCOMMA;
.END;
.IF J .EVEN .THEN VALUE :=
.SWOP BS
.ELSE PUTARRAYVALUE(
VALUE +
BS);
%
IRS,
J;
.GOTO NEWCHAR;
CHECKCOMMA:
.END
.ELSE
.BEGIN
CONSTEXPRESSION;
PUTARRAYVALUE(
VALUE);
.END;
.WHEN BASIC(
LRBSYMBOL)
.THEN
.BEGIN
TEMPVALUE :=
VALUE;
NBS;
CONSTEXPRESSION;
.WHEN .NEG(
.ABS VALUE - 1)
.LZ .THEN
.FOR J := @
.DO PUTARRAYVALUE(
TEMPVALUE);
FAILIFNOT(
RRBSYMBOL);
.END;
.WHEN BSCOMMA .THEN
.BEGIN
NBS;
.GOTO MORE;
.END;
FAILIFNOT(
RRBSYMBOL);
.END;
LA :=
LA +
SIZE;
.END;