ALTMESS

(GIN Macro)

Defined in: MACROS MSYS

Used in:

ALTMESS.mac.txt
 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  %A&#777-26?,21?         [GET RELATIVE ADDRESS OF MESSAGE 
 66#B ...      MFLOCAL  %A&#777+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?&#40000000 
 6FHQ          MFERROR  2                   [MESSAGE TOO BIG 
 6G3B    (   
 6G?8 ...#DEF  MHLS=34?+0?]&#4000
 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?]&#4000
 6PGY ...#DEF  21?=34?+0?]&#777            [EXISTING CHAR COUNT  
 6PTB    #HAL  25?,21?                      [MESSNO/CHAR COUNT   
 6Q*2    #DEF  22?=34?+0?]&#04000000        [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?&#04000000-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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1