Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MACROS MSYS)}} ====== MACROS MSYS ====== (George Source) <code - MACROS MSYS.txt>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 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In