{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MACROS MSYS)}}
====== MACROS MSYS ======
(George Source)
22FL #
22^= #
23DW # HEREIN LIE MACROS USED BY THE MESSAGE SYSTEM.
24D6 #
24XQ ...[??? MESSAGES SECT CENT FGN 56 DOC
2*P2 #
2B8L # HERE FOLLOWS MESSAGES **** MESSAGES
2BN= # IT IS USED TO SET SEGNO AND TO SET UP THE SEGENTRIES.
2C7W # %A=SEGMENT NUMBER
2CMG #
2D76 #MAC MESSAGES
2DLQ #STR %B
2F6B #SKI
2FL2 (
2G5L #DEF 21?=%A*512
2GK= #DEF 20?=%A
2GNB ...#UNS ADDMESS
2GRG ... MESSAGES XX,A,B,C,D,E,F,G,H,I,J,A,B,C,D,E,F,G,H,I
2GWL ...#UNS ADDMESS
2G^Q ...#SKI
2H4W MESSAGES X,A,B,C,D,E,F,G,H,I,J,A,B,C,D,E,F,G,H,I
2HJG #EXI
2J46 )
2JHQ #SKI 20?
2K3B (
2KH2 #DEF 20?=20?-1
2L2L #STR %B,J
2LG= MESSAGES %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T
2L^W #STR %B,J
2MFG #SKI
2M^6 MESSAGES %CJ,%CA,%CB,%CC,%CD,%CE,%CF,%CG,%CH,%CI,J,%D,%E,%F,%G,%H-
2NDQ ,%I,%J,%K
2NYB #EXI
2PD2 )
2PXL #INC MESS%A
2QC= #SEG MESS%A
2QWW #OPT K0MESS%A=0
2RBG ...#STR X,%A
2RW6 #LIS K0MESS%A
2S*Q 8HMESS%A
2STB SEGENTRY K1MESS%A,XK1
2T*2 SEGENTRY K2MESS%A,XK2
2TSL SEGENTRY K3MESS%A,XK3
2W#= SEGENTRY K4MESS%A,XK4
2WRW SEGENTRY K5MESS%A,XK5
2X?G SEGENTRY K11MESS%A,XK11
2XR6 SEGENTRY K12MESS%A,XK12
2Y=Q SEGENTRY K90MESS%A
2YQB +TAB
2^=2 #DEF SEGNO=21?
2^C8 ...#UNS ADDMESS*(SEGNO<1$1)
2^JB ...#ALT SEGNO=128
2^PL #DEF 20?=0
329= #DEF 22?=1
32F4 ...#DEF MESSSTART=0?
32J^ ...#DEF 21?=0?
32NW #NOR
32YN ...[??? MFTAB SECT CENT FGN 56 DOC
338G #
33N6 #
347Q # HERE FOLLOWS MFTAB **** MFTAB
34MB # IT IS USED IN AUXILMF TO SET UP BY RECURSIVELY
3572 # CALLING ITSELF A TABLE OF HALF-WORD ENTRIES.
35LL # %A=NUMBER OF ENTRIES LEFT TO SET UP
35P9 ...# %B=SEGMENT ADDRESS SCANNED TO SO FAR
35RS ...#
35WC ...# OR IT IS USED WITH %A NULL TO SCAN THE SEGMENT BUFFER
35^2 ...# %B=START ADDRESS
363K ...# %C=COMPILER VARIABLE TO STORE RESULT IN
366= #
36KW #MAC MFTAB
36R4 ...#STR %A
36Y= ...(
375G #SKI %A<1$1
37K6 (
384Q #HAL TAB,0
38JB #EXI
3942 )
39HL #SKI %A-1<1$1
3=3= (
3=GW ...#HAL %B,TAB
3?2G 0
3?G6 #EXI
3?^Q )
3#?* ...#DEF 21?=%B
3#JY ... MFTAB ,21?,22?
3#WH ...#HAL 21?,22?
3*86 ...#DEF 20?=%A-2
3*FP ... MFTAB ,22?,21?
3*R# ... MFTAB 20?,21?
3B4X ...#EXI
3BBG ...)
3BN5 ...#DEF 23?=34?+%B+1]
3B^N ...#DEF %C=34?+%B]̉+11/4+%B
3C?? ...#EXI 23?
3CJW ... MFTAB ,%C,%C
3CWQ #NOR
3D6J ...[??? MESSMON SECT CENT FGN 56 DOC
3DBB #
3DW2 #
3F*L # HERE FOLLOWS MESSMON **** MESSMON
3FT= # IT IS USED TO INTRODUCE A MESSAGE PART AND
3G#W # DEFINE A UNIVERSAL TO REFER TO THE MESSAGE.
3GSG # %A=NUMBER OF CHARS IN FOLLOWING MESSAGE PART
3H#6 # %B=CATEGORIES AS AN OCTAL NUMBER
3HRQ # %C=UNIVERSAL IDENTIFIER OF THE MESSAGE
3J?B # %D=SEGMENT NUMBER CONTAINING THE MESSAGE
3JR2 # %E=MESSAGE NUMBER (IF PRESENT)
3K=L #
3KQ= #MAC MESSMON
3KSL ...#SKI 21?-0?
3KX2 ...(
3K^B ...! WRONG LENGTH (PREVIOUS PART)
3L3Q ...#DEF 0?=21?
3L66 ...)
3L8G ...#DEF 21?=%A
3L=W ...#SKI 21?>1000-1000
3L*= ...(
3LCL ...! WRONG LENGTH
3LG2 ...#DEF 21?=0
3LJB ...)
3LLQ ...#HAL %E+0,21?
3LPG %B
3M96 #STR %C
3MNQ #DEF %C=SEGNO+20?
3N8B #SKI 22?
3PM= #DEF 20?=20?+1
3QLG #DEF 22?=%B<1$1
3QW# ...#DEF 21?=21?+3/4+0?
3R66 #SKI 0?>AMFLIMIT-AMFLIMIT
3RKQ ! SEGMENT !
3S5B #NOR
3S*8 ...[??? MESSMONA SECT CENT FGN 56 DOC
3SK2 #
3T4L #
3TJ= # HERE FOLLOWS MESSMONA **** MESSMONA
3W3W # IT HAS THE SAME FUNCTION AS MESSMON
3WHG # %A=CHAR COUNT OF MESSAGE PART
3X36 # %B=UNIVERSAL IDENTIFIER
3XGQ # %C=MESSAGE NUMBER (IF PRESENT)
3Y2B # %D ETC. =CATEGORY NAMES
3YG2 #
3Y^L #MAC MESSMONA
3^42 ...#SKI 21?-0?
3^6B ...(
3^8Q ...! WRONG LENGTH (PREVIOUS PART)
3^?6 ...#DEF 0?=21?
3^*G ...)
3^CW ...#DEF 21?=%A
3^G= ...#SKI 21?>1000-1000
3^JL ...(
3^M2 ...! WRONG LENGTH
3^PB ...#DEF 21?=0
3^RQ ...)
3^W6 ...#HAL %C+0,21?
3^YW #STR %B
42DG #DEF %B=SEGNO+20?
42Y6 CATMASK %D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V-
43CQ ,%W,%X
43XB #SKI 22?
45B= #DEF 20?=20?+1
46*G #DEF 22?=34?+0?-1]<1$1
46K# ...#DEF 21?=21?+3/4+0?
46T6 #SKI 0?>AMFLIMIT-AMFLIMIT
47#Q ! SEGMENT !
47SB #NOR
48#2 ...[??? AUXILMF SECT CENT FGN 56 DOC
4J32 #
4JGL #
4K2= # HERE FOLLOWS AUXILMF **** AUXILMF
4KFW # IT IS USED TO GENERATE THE EXECUTABLE
4K^G # CODE AT THE END OF EACH MESSAGE SEGMENT.
4LF6 # IT HAS NO PARAMETERS
4LYQ #
4MDB #MAC AUXILMF
4MFF ...#SKI SEGNO/512
4MGJ ...(
4MHM ...#SKI 21?-0?
4MJQ ...(
4MKT ...! WRONG LENGTH (PREVIOUS PART)
4MLY ...#DEF 0?=21?
4MN3 ...)
4MP6 ...#SKI 22?<1$1
4MQ9 ...(
4MR# ... MESSMONA 22,,,CT
4MSC ... 22HLAST PART NOT SUPPLIED
4MTG ...)
4MWK ...)
4MY2 #OPT TAB=0?
4N3X ... MFTAB 20?,MESSSTART
4N7S ...#SKI SEGNO<1$1
4N?P ...(
4N*2 ...#UNS AKMESSXX
4NB? ...(
4NCL ...MESSYK
4NHH ...#HAL +KMESSXX,+0
4NMD ...X128 +128
4NPB ...)
4NR* ...)
4NX= XK5 LDX 0 JOBNO(2)
4PBW STO 0 ACOMMUNE2(2)
4PWG XK3 STOZ GDESTINY(2)
4QB6 NGN 6 1
4QTQ XK1 LDEX 3 HMON1(2) [MESSAGE NUMBER WITHIN SEGMENT
4QX^ ...MF1
4R28 ...#SKI SEGNO<1$1
4R4C ...(
4R56 ...#UNS AKMESSXX
4R5T ...(
4R6L ... BXL 3 X128(1),MESSX
4R8T ... LDX 0 ALINK1(2)
4R?4 ... ANDN 0 #7777
4R*? ... ORX 0 MESSYK(1)
4RCG ... ACROSSVAR 0
4RFP ...MESSX
4RGS ...)
4RHY ...)
4RL7 ...#SKI SEGNOÈ
4RNB ... SBN 3 128
4RQK ... SRC 23 1
4RT2 SMO FX1
4S#L LDX 4 TAB(3)
4SS= BNG 2 MF3
4T?W SRL 4 12
4TRG MF3 ANDN 4 #7777 [ADDRESS OF MESSAGE IN SEGMENT
4W?6 ADX 1 4 [X1->MESSAGE
4WQQ LDX 3 1
4X=B LDCT 0 #100 [CONT'D BIT
4XQ2 MF2 ANDX 0 1(3)
4Y9L LDEX 5 0(3) [CHAR LENGTH OF THIS PART
4YP= ADN 5 11
4^8W SRL 5 2 [WORDS IN THIS MESSAGE PART +RED TAPE
4^NG ADX 3 5
5286 BNZ 0 MF2 [J IF CONT'D
52MQ SBX 3 1 [X3=LENGTH OF WHOLE MESSAGE+RED TAPE
537B SBN 3 512
53M2 BPZ 3 (GEOERR)
546L ADN 3 512
54L= SETUPCOR 3,2,GMON,ATEMP
555W ADN 2 A1
55KG LDX 5 2
5656 ADX 1 4
56JQ MOVE 1 0(3) [MOVE MESSAGE
574B PHOTO 7
57J2 BZE 6 OUTMESS [J IF 'OUTMESS'
583L ACROSS MONFILE,3
58H= OUTMESS
592W ACROSS SETMON,7
59GG XK4 LDN 6 0
5=26 BRN XK1
5=FQ XK2 LDX 3 4
5=^B LDN 6 0
5?F2 BRN MF1
5?YL XK12 LDX 0 JOBNO(2)
5#D= STO 0 ACOMMUNE2(2)
5#XW XK11 LDN 6 1 [INFORM
5*CG BRN XK1
5*X6 #NOR
5B6Y ...[??? ALTMESS SECT CENT FGN 56 DOC
5BBQ #
5BWB #
5CB2 #
5CTL # HERE FOLLOWS ALTMESS **** ALTMESS
5D*= # IT IS USED TO ALTER (BY MEND) AN EXISTING MESSAGE.
5DSW # AN ALTMESS IS GIVEN FOR EACH PART (OPTIONALLY
5F#G # FOLLOWED ON THE NEXT LINE BY THE NEW TEXT OF THE
5FS6 # PART). THE SERIES OF ALTMESS'S IS TERMINATED BY
5G?Q # ALTEND.
5GRB # THE UNIVERSAL ALTMESS IS SET TO INDICATE THE
5H?2 # FOLLOWING :-
5HQL #
5J== # 0 => ALTMESS NOT YET USED (OUTSIDE).
5JPW # -1 => INSIDE AN ALTMESS SERIES BUT NO PARTS YET
5K9G # ALTERED.
5KP6 # -1 => ERROR ENCOUNTERED
5L8Q # +VE => INSIDE AN ALTMESS SERIES AND VALUE= ADDRESS
5LNB # OF LAST PART SUCCESSFULLY ALTERED.
5M82 #
5MML # PARAMETERS FOR THE FIRST ALTMESS ARE :-
5N7= #
5NLW # %A=MESSAGE IDENTIFIER
5P6G # %B=MESSAGE NO. (OPTIONAL)
5PL6 # %C=CHAR. COUNT OF NEW TEXT (OPTIONAL)
5Q5Q # %D ONWARDS=CATEGORIES FOR NEW PART.
5QKB #
5R52 # PARAMETERS FOR SUBSEQUENT ALTMESS'S (%A,%B ETC)
5RJL # ARE AS %C,%D ETC. IN THE FIRST PART.
5S4= #
5SHW # THE COMPILER VARIABLES ARE USED AS FOLLOWS:-
5T3G #
5TH6 # 20? - WORK VARIABLE
5W2Q # 21? - THE EXPECTED 0? ON ENTRY TO A SUBSEQUENT
5WGB # ALTMESS
5X22 # 22? - WORK VARIABLE
5XFL # 23? - 0=>NO TEXT YET ALTERED. 1=>TEXT ALTERED
5X^= # 24? - HOLDS THE 'MANDATORY' CATEGORY BITS
5YDW # 25? - MESSAGE NO.
5YYG # 26? - ROOM LEFT IN MESSAGE SPACE
5^D6 #
5^XQ #MAC ALTMESS
62CB #OPT ALTMESS=0 [OUTSIDE
62X2 #EXI ALTMESS+2 [NULL EXPANSION IF ERROR PREVIOUSLY
63BL #SKI ALTMESS<1$1 [SKIP IF SUBSEQUENT ALTMESS
63W= (
64*W ... MONMEND %A [MEND APPROPRIATE SEGMENT
65*6 (
65SQ ... MFLOCAL %Ả-26?,21? [GET RELATIVE ADDRESS OF MESSAGE
66#B ... MFLOCAL %Ả+1-26?,22? [DITTO FOR NEXT MESSAGE IN SEGM
66S2 #DEF 26?=22?-21? [ROOM FOR NEW SKELETON
67?L #DEF 0?=21?
67R= #DEF 25?=34?+0?]/4096 [EXISTING MESSAGE NO.
68=W #STR %B
68QG #DEF 25?=%B [NEW MESSAGE NO.
69=6 #DEF 24?=0
69PQ #DEF 23?=0
6=9B #ALT ALTMESS=-1
6=P2 ALTMESS %C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U-
6?8L ,%V,%W,%X,%Y,%Z
6?N= #EXI
6#7W )
6#MG #ALT ALTMESS=-2
6*76 #EXI
6*LQ )
6B6B #SKI 21?-0?
6BL2 MFERROR 1 [TEXT GIVEN NOT RIGHT LENGTH
6C5L (
6CK= #STR %A [SKIP IF NO NEW TEXT
6D4W (
6DJG #DEF 26?=26?-(%A+11/4) [ROOM LEFT AFTER THIS PART
6F46 #SKI 26?
6FHQ MFERROR 2 [MESSAGE TOO BIG
6G3B (
6G?8 ...#DEF MHLS=34?+0?]ྠ
6GH2 #HAL 25?,%A [MESSNO/CHAR COUNT
6H2L MFCATS %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T-
6HG= ,%U,%V,%W,%X,%Y,%Z
6H^W (
6JFG #DEF 23?=1
6J^6 #DEF 21?=%A+3/4+0?
6KDQ #ALT ALTMESS=0?-2
6KYB )
6L88 ...#FRE MHLS
6LD2 )
6LXL #EXI
6MC= )
6MWW #SKI 23?
6NBG MFERROR 3 [ERROR IF NO TEXT AFTER REDEFINED...
6NW6 ( [...TEXT IN A PREVIOUS PART.
6P8H ...#DEF MHLS=34?+0?]ྠ
6PGY ...#DEF 21?=34?+0?]̉ [EXISTING CHAR COUNT
6PTB #HAL 25?,21? [MESSNO/CHAR COUNT
6Q*2 #DEF 22?=34?+0?] [ISOLATE PACKED BIT
6QSL ... MFCATS %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T-
6R#= ,%U,%V,%W,%X,%Y,%Z
6RRW (
6S?G #SKI 24?-22?
6SR6 MFERROR 4 [ATTEMPT TO CHANGE PACKED BIT...
6T=Q ( [...WITH NO NEW TEXT.
6TQB #ALT ALTMESS=0?-2
6W=2 #DEF 0?=21?+3/4+0? [UPDATE 0? FOR NEXT PART.
6WPL #DEF 21?=0?
6X9= )
6XNW )
6XYN ...#FRE MHLS
6Y8G )
6YN6 #EXI
6^7Q #NOR
6^CJ ...[??? ALTEND SECT CENT FGN 56 DOC
6^MB #
7272 #
72LL # HERE FOLLOWS ALTEND **** ALTEND
736= # IT IS USED TO TERMINATE A SERIES OF ALTMESS'S.
73KW # IT HAS NO PARAMETERS.
745G #
74K6 #MAC ALTEND
754Q #SKI ALTMESS+2 [SKIP IF PREVIOUS ERROR
75JB (
7642 #SKI 21?-0?
76HL MFERROR 1 [WRONG LENGTH TEXT IN PREVIOUS MACRO
773= (
77GW #DEF 0?=ALTMESS+1
782G #DEF 20?=34?+0?]
78G6 +20? [CLEAR CONT BIT IN LAST PART.
78^Q #END %A
79FB )
79^2 )
7=DL #ALT ALTMESS=0
7=Y= #NOR
7?84 ...[??? MFLOCAL SECT CENT FGN 56 DOC
7?CW #
7?XG #
7#C6 # HERE FOLLOWS MFLOCAL **** MFLOCAL
7#WQ # GIVEN A TABENTRY NUMBER IT FINDS THE VALUE OF
7*BB # THE LOCAL HELD IN THAT TABENTRY
7*W2 # PARAMETERS:-
7B*L #
7BT= # %A=TABENTRY NUMBER
7C#W # %B=A COMPILER VARIABLE WHICH WILL BE SET TO
7CSG # THE VALUE OF THE LOCAL
7D#6 #
7DRQ #MAC MFLOCAL
7F?B #DEF 20?=34?+K90MESSA]
7FR2 #DEF 20?=%A/2+20?+34?]
7G=L #SKI %A&1<1$1
7GQ= #DEF 20?=20?/4096
7H9W #DEF %B=20?ṡ
7HPG #NOR
7H^# ...[??? MFCATS SECT CENT FGN 56 DOC
7J96 #
7JNQ #
7K8B # HERE FOLLOWS MFCATS **** MFCATS
7KN2 # IT IS USED TO SET AND CHECK THE CATEGORY
7L7L # WORD OF A MESSAGE PART.
7LM= # PARAMETERS ARE CATEGORY NAMES
7M6W #
7MLG #MAC MFCATS
7N66 #SKI 24?<1$1 [SKIP IF NOT FIRST TIME THROUGH
7NKQ (
7P5B #DEF 24?=34?+0?]^#10000000
7PK2 #DEF 20?=33? [CURRENT ERROR COUNT
7Q4L #STR %A
7QJ= CATMASK %A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S-
7R3W ,%T,%U,%V,%W,%X,%Y,%Z
7RHG #SKI 33?-20? [SKIP UNLESS ERROR IN CATMASK
7S36 MFERROR 5
7SGQ (
7TG2 #DEF 0?=0?-1
7TKX ...#STR %A
7TPS ...#SKI
7TTP ... 34?+0?]^MHLS
7T^L #DEF 20?=34?+0?]
7WF= #DEF 24?=20?^24? [ADD PA IF NECESSARY
7WYW #DEF 20?=24?𘚠^#77677777&20? [SUPPRESS SYSREQ IF CLEAR IN OLD
7XDG #DEF 20?=20?
7XY6 +24?^20? [RESET CATS APPLYING CONSTRAINTS
7YCQ #EXI
7YXB )
7^C2 )
7^WL #SKI ALTMESS+2 [SKIP IF ERROR DETECTED
82B= (
82TW #DEF 20?=33? [CURRENT ERROR COUNT
83*G #SKI 23?<1$1
83T6 #STR %A
84#Q CATMASK %A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S-
84SB ,%T,%U,%V,%W,%X,%Y,%Z
85#2 #SKI 33?-20? [SKIP UNLESS ERROR IN CATMASK
85RL MFERROR 5
86?= (
87Q6 #DEF 0?=0?-1
87T= ...#SKI 23?<1$1
87YB ...#STR %A
883G ...#SKI
886L ... 34?+0?]^MHLS
889Q #DEF 20?=34?+0?]
88PB #SKI 20?𘚠
8992 MFERROR 6 [SYSREQ NOT ALLOWED IN MULTI-PART
89NL (
8=8= +20?^24? [ADD MANDATORY BITS
8=MW #EXI
8?7G )
8?M6 )
8#6Q )
8#LB #SKI [SKIP FOLLOWING CODE IF ERROR FOUND
8*62 #NOR
8**S ...[??? MFERROR SECT CENT FGN 56 DOC
8*KL #
8B5= #
8BJW # HERE FOLLOWS MFERROR **** MFERROR
8C4G # IT IS USED BY ALTMESS ETC. WHEN AN ERROR IS
8CJ6 # DETECTED. IT CLEANS UP,SETS THE ERROR IDENTIFIER,
8D3Q # AND OUTPUTS A MEANINGFUL MESSAGE. IT THEN SKIPS
8DHB # THE REMAINING EXPENSION OF THE CALLING MACRO.
8F32 # IT HAS ONE PARAMETER - THE ERROR NUMBER.
8FGL #
8G2= #MAC MFERROR
8GFW #SKI %A-1<1$1
8G^G ! WRONG LENGTH TEXT !
8HF6 #SKI %A-2<1$1
8HYQ ! MESSAGE TOO LONG !
8JDB #SKI %A-3<1$1
8JLL (
8JSW ! TEXT OMITTED AFTER PRESENT IN !
8K36 ! PREVIOUS PART !
8K9B )
8KCL #SKI %A-4<1$1
8KKW (
8KS6 ! ATTEMPT TO CHANGED PACKED BIT !
8L2B ! WITH NO NEW TEXT !
8L8L )
8LBW #SKI %A-5<1$1
8LWG ! UNKNOWN CATEGORIES REQUESTED !
8MB6 #SKI %A-6<1$1
8MKY (
8MTQ ! SYSREQ NOT ALLOWED IN MULTI-PART !
8N5J ! MESSAGE !
8N9F )
8N*B #SKI ALTMESS<1$1 [SKIP IF NO PARTS YET COMPILED
8NT2 (
8P#L #DEF 0?=ALTMESS+1
8PS= #DEF 20?=34?+0?] [LOSE CONT. BIT
8Q?W +20?
8QRG )
8R?6 #END
8RQQ #ALT ALTMESS=-2 [SET ERROR FLAG
8S=B #SKI
8SQ2 #NOR
8S^S ...[??? ADDMESS SECT CENT FGN 56 DOC
8T9L #
8TP= # HERE FOLLOWS ADDMESS **** ADDMESS
8W8W # IT IS USED TO INTRODUCE (BY MEND) A SERIES OF
8WNG # MESSMON(A)'S FOR ADDITIONAL MESSAGES.
8X86 # IT HAS NO PARAMETERS
8XMQ #
8Y7B #MAC ADDMESS
8YM2 #OPT ADDMESS=0
8^6L ...#SKI ADDMESS<1$1
8^L= (
925W MESSAGES 0
92KG #EXI
9356 )
939X ...#STR %A
93BN ...#SKI
93HF ...(
93N= ...#SKI ADDMESS
93T3 ...(
93^S ... ADDMESS X
946K ...#EXI
94?B ...)
94D7 ...)
94JY ...#ALT LMESSX%A=ADDMESS
94PP ...#MEN MESSX%A
94WG ...#DEF 23?=34?+K90MESSX%A]
953L #TRA 2
95H= ... SEGENTRY K1MESSX%A,XK1
962W ... SEGENTRY K2MESSX%A,XK2
96GG ... SEGENTRY K3MESSX%A,XK3
9726 ... SEGENTRY K4MESSX%A,XK4
97FQ ... SEGENTRY K5MESSX%A,XK5
97^B ... SEGENTRY K11MESSX%A,XK11
98F2 ... SEGENTRY K12MESSX%A,XK12
98YL ... SEGENTRY K90MESSX%A
99XW +TAB
9==? ...#DEF MESSSTART=0?
9=JN ...#DEF SEGNO=ADDMESS<1*128
9=X6 #DEF 22?=1
9?BQ #TRA 23?-1
9?WB #DEF 20?=34?+0?]
9?XF ...#DEF 21?=0?
9?^6 ...#SKI (0?<900-0?)^(20?<65-20?)
9#2S ...(
9#3X ...#ALT AKMESSXX=1
9#53 ... ADDEND
9#7= ...#ALT ADDMESS=#40000000
9#9F ... ADDMESS X
9#?N ...)
9#B2 #NOR
9#KS ...[??? ADDEND SECT CENT FGN 56 DOC
9#TL #
9**= #
9*SW # HERE FOLLOWS ADDEND. **** ADDEND
9B#G # IT IS USED TO TERMINATE A SERIES OF MESSMON(A)'S.
9BS6 # INTRODUCED BY ADDMESS.
9C?Q # IT HAS NO PARAMETERS.
9CRB #
9D?2 #MAC ADDEND
9D#C ...#SKI 21?-0?
9D*S ...(
9DC9 ...! WRONG LENGTH (PREVIOUS PART)
9DDL ...#DEF 0?=21?
9DG3 ...)
9DHD ...#SKI 22?<1$1
9DJT ...(
9DL= ... MESSMONA 22,,,CT
9DMM ... 22HLAST PART NOT SUPPLIED
9DP4 ...)
9DQL +20?
9F== AUXILMF
9FPW #REP 4-(0?&3)
9G9G +0
9QH6 #DEF 20?=0?
9R2Q ...#SKI ADDMESS<1$1
9RGB #GAP 950-0?
9S22 #END %A
9S7* ...#DEF 22?=ADDMESS
9S#N ...#ALT ADDMESS=952^22?
9SG3 ...#SKI 22?
9SMB ...(
9SSP ...#ALT LMESSXX=20?+3
9T24 ...#MEN MESSXX
9T7C ... 8HMESSXX
9T#^ ...#END
9T*B ... NEWCHENT MESSXX
9T*R ...)
9TB8 ...#SKI 22?<1$1
9TBK ...(
9TC2 ...#ALT LMESSX=20?+3
9TCC ...#MEN MESSX
9TCS ... 8HMESSX
9TD9 ...#END
9TDW NEWCHENT MESSX
9TNN ...)
9TYG #NOR
9WD6 ...[??? CATEGORI SECT CENT FGN 56 DOC
=9MG #
==76 #
==LQ # HERE FOLLOWS CATEGORISE. **** CATEGORI
=?6B # IT IS USED TO 'OR' SPECIFIED BITS (%B) INTO ALL
=?L2 # MESSAGES THAT HAVE CATERORIES AS IN %A.
=#5L #
=#K= #MAC CATEGORISE
=*4W #DEF 24?=%A𒿑
=*JG #DEF 23?=%B𒿑
=B46 #OPT ADDMESS=0
=BHQ #DEF 21?=AMFNUMBER+1
=C3B CAT X,A,B,C,D,E,F,G,H,I,J,A,B,C,D,E,F,G,H,I
=CH2 #NOR
=CQS ...[??? CAT SECT CENT FGN 56 DOC
=D2L #
=DG= #
=D^W # HERE FOLLOWS CAT. **** CAT
=FFG # IT IS USED BY CATEGORISE
=F^6 #
=GDQ #MAC CAT
=GYB #STR %A,X
=HD2 #SKI
=HXL #SKI ADDMESS
=JC= (
=JWW #MEN MESS%A
=KBG #DEF 22?=0
=KW6 MFLOCAL 22?,25?
=L*Q MOUSE
=LTB #END
=M*2 )
=MSL #DEF 21?=21?-1
=N#= #EXI 21?
=NRW #STR %B,J
=P?G CAT %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T
=PR6 #STR %B,J
=Q=Q #SKI
=QQB CAT %CJ,%CA,%CB,%CC,%CD,%CE,%CF,%CG,%CH,%CI,J,%D,%E,%F,%G,%H-
=R=2 ,%I,%J,%K
=RPL #NOR
=R^D ...[??? MOUSE SECT CENT FGN 56 DOC
=S9= #
=SNW #
=T8G # HERE FOLLOWS MOUSE. **** MOUSE
=TN6 # IT IS USED (?) BY CAT.
=W7Q #
=WMB #MAC MOUSE
=X72 MFLOCAL 22?+1,26?
=XLL #EXI 26?
=Y6= #DEF 0?=25?+1
=YKW #DEF 25?=34?+0?]
=^5G #SKI 25?𒿑-23?<1$1
=^K6 +24?^25?
?24Q #DEF 25?=26?
?2JB #DEF 22?=22?+1
?342 MOUSE
?3HL #NOR
?3RD ...[??? SENDPARS SECT CENT FGN 56 DOC
?43= #
?43Q ...#
?44= ...#
?44Q ...# HERE FOLLOWS SENDPARS **** SENDPARS
?45= ...# IT IS USED TO CONVEY PARAMETERS FROM
?45Q ...# ONE ACTIVITY TO ANOTHER
?46= ...#
?46Q ...#MAC SENDPARS
?47= ... UNSETBIT 2,CLONG1(%A)
?47Q ... LDX 2 ACTRING(%B)
?48= ... SBN 2 ACTRING
?48Q ... MHUNTW 1,GMON,ASET
?49= ... NAME 1,%C,%D
?49Q ... CHAIN 1,BPTR(2)
?4== ...#NOR
?4=G ...[??? FINDPARS SECT CENT FGN 56 DOC
?4=Q ...#
?4?= ...#
?4?Q ...# HERE FOLLOWS FINDPARS **** FINDPARS
?4#= ...# IT IS USED BY AN ACTIVITY TO PICK UP A
?4#Q ...# PARAMETER BLOCK TRANSFERRED FROM ANOTHER ACTIVITY
?4*= ...#
?4*Q ...#MAC FINDPARS
?4B= ...#STR %C
?4BQ ... LDX 2 FX2
?4C= ... SETBIT 2,CLONG1(2)
?4CQ ... MHUNTW 1,%A,%B
?4D= ... NAME 1,GMON,ASET
?4DQ ... LDX 1 FX1
?4F= ...#NOR
?4FG ...[??? MFPDCTAB SECT CENT FGN 56 DOC
?4FQ ...#
?4F^ ...# PDC TABLE
?4G8 ...# TOP 9 BITS GIVE MAX LENGTH AFTER CONV(CHARS)
?4GC ...# BOTTOM 15 BITS RELATIVE ADDRESS OF CONVERSION ROUTINE
?4GL ...# B0 SET->A WELL KNOWN PDC (EG TIME)
?4GT ...# B1 SET->VARIABLE LENGTH (EG PROPERTIES)
?4H4 ...#MAC MFPDCTAB
?4H? ...#DEF PDCTAB=0?
?4HG ... +0 [0 NOTJOURN
?4HP ... PDCSET DATENOW,8,KNOWN
?4HY ... PDCSET TIMENOW,8,KNOWN
?4J7 ... PDCSET USERNAME,13,KNOWN
?4JB ... PDCSET LOCNAME,12
?4JK ... PDCSET GENNUM,4
?4JS ... PDCSET LANGUAGE,4
?4K3 ... PDCSET JOBNAME,12,KNOWN
?4K= ... PDCSET JOBTYPE,7
?4KF ... PDCSET PROGNAME,5
?4KN ... PDCSET URGENCY,1
?4KX ... PDCSET PROGCORE,7,KNOWN
?4L6 ... PDCSET [<
?4L* ... PDCSET PROGMILL,7,KNOWN
?4LJ ... PDCSET PERITYPE,2
?4LR ... PDCSET PERINAME,5
?4M2 ... PDCSET [SPACE -NOT USED
?4M9 ... PDCSET TSNCSN,9
?4MD ... PDCSET TRANSCT,7
?4MM ... PDCSET PROPS,13,,V
?4MW ... PDCSET BUDGTYPE,8
?4N5 ... PDCSET [%
?4N# ... PDCSET BUDGQUAN,8
?4NH ... PDCSET INCNUM,7
?4NQ ... PDCSET SKIP,0,KNOWN
?4N^ ... PDCSET NULL,0,KNOWN
?4P8 ... PDCSET BLOCKCT,7
?4PC ... PDCSET JOBMILL,14,KNOWN
?4PL ... PDCSET [COMMA
?4PT ... PDCSET GEOPER,6,KNOWN
?4Q4 ... PDCSET FAILCT,7
?4Q? ... PDCSET REPEATS,7
?4QG ... PDCSET ERRMESS,4,,V [ERROR MESSAGE
?4QP ... PDCSET NUMA,8
?4QY ... PDCSET NUMB,8
?4R7 ... PDCSET NUMC,8
?4RB ... PDCSET NUMD,8
?4RK ... PDCSET VARCHAR,4,,V
?4RS ... PDCSET PAGETURN,4
?4S3 ... PDCSET QUOTA,4
?4S= ... PDCSET DATETHEN,8
?4SF ... PDCSET TIMETHEN,8
?4SN ... PDCSET OCTA,9
?4SX ... PDCSET OCTB,9
?4T6 ... PDCSET VAROCT,10,,V
?4T* ... PDCSET VARDEC,9,,V
?4TJ ... PDCSET ENTRANT,4,,V
?4TR ... PDCSET SWITCH,3
?4W2 ... PDCSET GEOMILL,14
?4W9 ... PDCSET
?4WD ... PDCSET REELNUM,4
?4WM ...#DEF 20?=64-0?+PDCTAB
?4WW ...#SKI 20?
?4X5 ...(
?4X# ...#REP 20? [ZEROFILL TABLE
?4XH ... +0
?4XQ ...)
?4X^ ... MFDEFS
?4Y8 ...#NOR
?4Y? ...[??? MFSAVE SECT CENT FGN 56 DOC
?4YC ...#
?4YJ ...#MAC MFSAVE
?4YP ... SMO FX2
?4YW ... STO 3 OUTCHAR
?4^3 ... CALL 6 SET
?4^8 ...#STR %A
?4^* ... CALL 6 SAVEB
?4^G ...#NOR
?4^J ...[??? MFUNSAVE SECT CENT FGN 56 DOC
?4^M ...#MAC MFUNSAVE
?4^S ...#STR %A
?4^^ ... CALL 6 UNSVB
?526 ... CALL 6 RESET
?52? ...#NOR
?52B ...[??? NEWMESS SECT CENT FGN 56 DOC
?52G # THE FOLLOWING BORING MACROS ARE TO PROVIDE 'NEWMESS' IN
?5G6 # THE EARLY VERSION(S) OF MARK 8. I HOPE THEY CAN BE REMOVED SOON.
?5^Q #
?6FB #
?6^2 #MAC NEWMESS
?7DL VALIDATE 2,%A,%B
?7Y= (
?8CW #DEF 20?=0
?8XG VALIDNEW %C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
?9C6 #EXI 20?+1
?9WQ ... MONMEND %A
?=W2 (
??*L ... MFLOCAL %Ả-26?,0?
??T= #DEF 20?=0
?##W NEWLEN %C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
?#SG #SKI 20?
?*#6 (
?*RQ ! YOU HAVE NOT ENOUGH SPACE
?B?B #END
?BR2 #EXIT
?C=L )
?CGD #DEF 24?=20?
?CW7 ... MFLOCAL %Ả-26?,0?
?D9W #STR %B
?DPG #STR
?F96 #DEF 23?=0?+34?+0]+0/4096
?FNQ NEWORKS %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
?G8B ... MFLOCAL %Ả-26?,0?
?GN2 #STR %B
?H7L MESSNO %B
?HM= #STR %B
?J6W #STR
?JLG MESSNO 23?
?K66 [0?->CATWORD OF LAST PART
?KKQ [20? = EXCESS OF WORDS
?L5B SPACEND 0?-1,24?
?LK2 #END
?M4L )
?MJ= )
?N3W #NOR
?N?N ...[??? VALIDNEW SECT CENT FGN 56 DOC
?NHG #MAC VALIDNEW
?P36 #STR %A
?PGQ (
?Q2B #STR #,%A
?QG2 (
?Q^L #DEF 20?=-1
?RF= ! CATEGORY WORD NOT OCTAL
?RYW #EXIT
?SDG )
?SY6 )
?TCQ #SKI 20?
?TXB (
?WC2 #STR %B
?WWL #STR
?XB= #DEF 20?=-1
?XTW #STR %A
?Y*G #STR
?YT6 #DEF 20?=-1
?^#Q #SKI 20?+1<1$1
?^SB ! YOU MAY NOT 'SKIP' PARTS AFTER A NEW TEXT
#2#2 )
#2RL #STR %C
#3?= (
#3QW #SKI 20?<1$1
#4=G #DEF 20?=1
#4Q6 )
#59Q #STR %D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z
#5PB VALIDNEW %D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
#692 #NOR
#6DS ...[??? NEWLEN SECT CENT FGN 56 DOC
#6NL # NEWLEN : FIND EXCESS OF WORDS IN 20?
#78= #MAC NEWLEN
#7MW #STR %B
#87G (
#8M6 #DEF 21?=%B+11/4
#96Q #DEF 20?=20?-21?
#9LB )
#=62 #SKI 0?
#=KL (
#?5= #STR %B
#?JW ...#DEF 20?=0?+34?+0]̉+11/4+20?
##4G #DEF 21?=0?+34?+1]
##J6 #SKI 21?
#*3Q ...#DEF 0?=0?+34?+0]̉+11/4+0?
#*HB #SKI 21?<1$1
#B32 #DEF 0?=0
#BGL )
#C2= #SKI 0?<1$1
#CFW #STR %D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z
#C^G NEWLEN %D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
#DF6 #NOR
#DNY ...[??? NEWORKS SECT CENT FGN 56 DOC
#DYQ #MAC NEWORKS
#FDB #STR %D
#FY2 #STR
#GCL (
#GX= ... +0?+34?+0]̉
#HBW #STR %B
#HWG (
#JB6 +0?+34?+0]^%B
#JTQ #DEF 0?=0?-1
#K*B )
#KT2 #DEF 22?=0?+34?
#L#L #DEF 22?=22?-1
#LS= #DEF 22?=22?+0]
#M?W ...#DEF 22?=22?̉
#MRG #DEF 22?=22?+11
#N?6 #DEF 22?=22?/4
#NQQ #DEF 0?=22?+0?-1
#P=B )
#PQ2 #STR %D
#Q9L (
#QP= +%C
#R8W %B
#RNG #STR %E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z
#S86 (
#SMQ #DEF 0?=0?-1
#T7B +0?+34?+0]^#10000000
#TM2 )
#W6L %CH%D
#WL= )
#X5W #STR %E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z
#XKG NEWORKS %A,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V
#Y56 #NOR
#Y#Y ...[??? MESSNO SECT CENT FGN 56 DOC
#YJQ #
#^4B #
#^J2 #MAC MESSNO
*23L ... +0?+34?+0]̉
*2H= #FID 0 11 %A
*32W #SKI 0?+34?+0]
*3GG (
*426 #DEF 0?=0?-1
*4FQ ...#DEF 0?=0?+34?+0]̉+11/4+0?
*4^B MESSNO %A
*5F2 )
*5YL #NOR
*68D ...[??? SPACEND SECT CENT FGN 56 DOC
*6D= # SPACEFILL LAST PART : SPACEND
*6XW #MAC SPACEND
*7CG #SKI %B
*7X6 (
*8BQ #DEF 0?=%A [PTR TO LAST PART
*8WB #DEF 21?=4*%B
*9B2 +0?+34?+0]+21?
*9TL #DEF 0?=0?-1
*=*= ...#DEF 0?=0?+34?+0]̉-21?+11/4+0?
*=SW #REP %B
*?#G 4H
*?S6 )
*#?Q #NOR
*#RB #
^^^^ ...24423073006100000000