home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / d / k12pch.pal < prev    next >
Text File  |  2020-01-01  |  24KB  |  786 lines

  1. /    KERMIT-12 PATCH FILE
  2.     XLIST    OFF
  3.     IFNDEF    OFF    <OFF=    1>
  4.     IFNDEF    ON    <ON=    0>
  5.     XLIST    ON
  6.  
  7. /    INDEPENDENT SOURCE FILE TO ALLOW CUSTOMIZATION OF KERMIT-12.
  8.  
  9. /    LAST EDIT:    06-SEP-1990    11:00:00    CJL
  10.  
  11. /    THIS FILE IS PROVIDED TO USERS OF KERMIT-12 TO ALLOW CUSTOMIZED VERSIONS TO BE
  12. /    LOCALLY CREATED WITHOUT MODIFYING THE MAIN SOURCE (K12MIT.PAL).
  13.  
  14. /    CREATING KERMIT-12 FROM THE STANDARD DISTRIBUTION (AND THIS FILE).
  15.  
  16. /    KERMIT-12 IS DISTRIBUTED IN SEVERAL  FILES  WHICH  CAN  BE  USED  TO  CREATE A
  17. /    RUNNING KERMIT-12 VIA SEVERAL METHODS.   THE  MOST  DIRECT  METHOD  IS TO JUST
  18. /    ASSEMBLE  THE MAIN SOURCE (K12MIT.PAL) POSSIBLY AUGMENTED  BY  A  HEADER  FILE
  19. /    CONTAINING  CUSTOMIZING PARAMETERS (PARAM.PAL), OR TO MODIFY AND  ASSEMBLE THE
  20. /    MAIN SOURCE FILE TO PRODUCE A CUSTOMIZED RESULT.   THIS  ALSO ALLOWS FOR LOCAL
  21. /    CHANGES TO THE SOURCE ITSELF IF NECESSARY.  THE MAIN  SOURCE  FILE  IS  RATHER
  22. /    LARGE AND MIGHT BE DIFFICULT TO ASSEMBLE, ETC.  ON SMALL  SYSTEMS.  MOST USERS
  23. /    OF  KERMIT-12  WILL  FIND THE STANDARD ASSEMBLY PARAMETERS SUITING THEIR LOCAL
  24. /    REQUIREMENTS, AS  MOST USER-PREFERENCE ITEMS ARE CUSTOMIZABLE VIA THIS METHOD.
  25. /    THE USER OF  A SMALLER SYSTEM IS ENCOURAGED TO ACQUIRE KERMIT-12 FROM A LARGER
  26. /    SYSTEM VIA DIRECT MEDIA  COPY;    AN  ACCURATE LISTING OF KERMIT-12 WITH LOCAL
  27. /    CUSTOMIZATION COULD THEN BE AVAILABLE.
  28.  
  29. /    SINCE IT IS NOT ALWAYS  POSSIBLE  FOR  SMALLER  INDEPENDENT  USERS  TO ACQUIRE
  30. /    KERMIT-12  FROM OTHER INSTALLATIONS, THIS FILE  (K12PCH.PAL)  WAS  CREATED  TO
  31. /    HANDLE  MOST  PARAMETER  SETTINGS.    VIRTUALLY  ALL  OF  THE  USER-PREFERENCE
  32. /    PARAMETERS, ETC.  HAVE BEEN DUPLICATED HERE TO  ALLOW  INDEPENDENT ASSEMBLY OF
  33. /    THIS FILE WHICH IS SMALL ENOUGH TO ALLOW ASSEMBLY ON MODEST SYSTEMS.
  34.  
  35. /    NOTE:  USING THE METHOD DESCRIBED BELOW ASSUMES THAT  ALL  CHANGES REQUIRED BY
  36. /    THE USER HAVE  BEEN  UPDATED  WITHIN  K12PCH.PAL  (THIS  FILE), OR PLACED IN A
  37. /    SEPARATE FILE (PARAM.PAL).   SEE  THE  ASSEMBLY  PARAMETERS  SECTION  FOR  ANY
  38. /    CUSTOMIZING INFORMATION.
  39.  
  40. /    THE STANDARD DISTRIBUTION OF KERMIT-12 INCLUDES A CORE-IMAGE COPY OF K12MIT.SV
  41. /    WITH ALL STANDARD  DEFAULT VALUES SET.  IT IS AVAILABLE AS K12MIT.ENC WHICH IS
  42. /    A "PRINTABLE" ENCODED VERSION  OF  THE SAVE IMAGE.  ASSEMBLING AND RUNNING THE
  43. /    DECODING PROGRAM K12DEC.PAL CAN PRODUCE K12MIT.SV FROM K12MIT.ENC.
  44.  
  45. /    ASSUMING THE AVAILABILITY OF K12MIT.SV  AND  K12PCH.PAL  ON THE DEFAULT DEVICE
  46. /    DSK:, THE FOLLLOWING CAN BE USED TO CREATE THE RUNNING KERMIT-12:
  47.  
  48. /    .PAL K12PCH<PARAM,K12PCH/E/F/W    ASSEMBLE CUSTOMIZED PATCH FILE.
  49.  
  50. /    .LOAD K12MIT.SV/I$K12PCH$    LOAD  IMAGE FILE K12MIT.SV WITH /I SWITCH SET.
  51. /                    $ INDICATES  USING  <ESC>  TO  TERMINATE LINE.
  52. /                    K12PCH.BN IS LOADED  OVER  K12MIT TO PATCH THE
  53. /                    BINARY TO THE DESIRED LOCAL VERSION.
  54.  
  55. /    .SAVE DEV KERMIT=1        SAVE RUNNING VERSION ON  ANY  AVAILABLE DEVICE
  56. /                    DEV (PREFERABLY SYS).
  57.  
  58. /    .R KERMIT  OR  RUN DEV KERMIT    RUNNING VERSION NOW CAN BE INVOKED.
  59. /    ASSEMBLY PARAMETERS.
  60.  
  61. /    NOTE:  EDIT NUMBERS PLACED  ON  VARIOUS  SECTIONS  OF  THIS  FILE REFER TO THE
  62. /    CORRESPONDING EDIT NUMBERS WITHIN K12MIT.PAL.  SEE THE K12MIT.PAL EDIT HISTORY
  63. /    FOR FURTHER INFORMATION.
  64.  
  65. /    SEVERAL PARAMETERS MUST BE CHANGED WITHIN THIS FILE (K12PCH.PAL) (OR PASSED TO
  66. /    THE ASSEMBLER VIA A SHORT FILE INSERTED  INTO  THE  ASSEMBLY STREAM BEFORE THE
  67. /    MAIN FILE):
  68.  
  69. /    SETTING  KEY= [RECEIVE IOT CODE FOR  CONSOLE  KEYBOARD]  DEFINES  THE  CONSOLE
  70. /    KEYBOARD IOT CODE (DEFAULT IS 03).
  71.  
  72. /    SETTING  TTY=  [TRANSMIT  IOT CODE FOR CONSOLE  OUTPUT]  CHANGES  THE  CONSOLE
  73. /    PRINTER IOT CODE (DEFAULT IS 04).
  74.  
  75. /    THE FOLLOWING DEFINITIONS ARE  ESSENTIALLY  FOR  KL8-TYPE DEVICES ONLY, AS THE
  76. /    CODE DEMANDS KL8 HARDWARE COMPATIBILITY.    MODELS  OTHER  THAN PDP-8 (SUCH AS
  77. /    DECMATE) GENERALLY EITHER PLACE RESTRICTIONS ON  AVAILABLE  INTERFACES  (OTHER
  78. /    SOFTWARE DESIGNATES A SERIAL INTERFACE AS A  LOGICAL  PRINTER  PORT;  DECMATES
  79. /    SUPPORT A FIRMWARE "PRINT SCREEN" KEY WHICH ENFORCES  THIS.),  OR  DON'T ALLOW
  80. /    USABLE PLUG-IN OPTIONS.
  81.  
  82. /    IGNORING BUILT-IN DECMATE SUPPORT, THE FOLLOWING PARAMETERS ARE ACTIVE:
  83.  
  84. /    SETTING DEV30=    1    CREATES DEVICE 30/31 REMOTE LINE IOTS.
  85.  
  86. /    SETTING DEV40=    1    CREATES DEVICE 40/41 REMOTE LINE IOTS.
  87.  
  88. /    SETTING LEDERLE=1    CREATES DEVICE 43/44 REMOTE LINE  IOTS  (AND  A CUSTOM
  89. /                HEADER).
  90.  
  91. /    SETTING ORIGNAL=1    CREATES  DEVICE  33/34  REMOTE  LINE  IOTS   (ORIGINAL
  92. /                SETTINGS).
  93.  
  94. /    SETTING SPRINT= 1    CREATES DEVICE 32/33 REMOTE LINE IOTS (SERIAL  PRINTER
  95. /                PORT).
  96.  
  97. /    SETTING USER=    1    CREATES DEVICE XX/XY REMOTE LINE IOTS.
  98.  
  99. /    IF NONE OF THESE ARE SET, THEN DEV40=1 APPLIES BY DEFAULT.
  100.  
  101.  
  102.  
  103. /    SETTING USER=    1    REQUIRES THE USER TO DEFINE TWO ADDITIONAL VALUES:
  104.  
  105. /        XX=    [RECEIVE IOT DEVICE CODE] (DEFAULT IS 40).
  106.  
  107. /        XY=    [TRANSMIT IOT DEVICE CODE] (DEFAULT IS 41).
  108. /    SETTING SPRINT= 1    INHIBITS THE BUILT-IN CHECK FOR DECMATE  OPERATION AND
  109. /                USES    THE    SERIAL  PRINTER  PORT  FOUND  ON    ALL
  110. /                WPS-8-CONFIGURED    PDP-8/E,  PDP-8/A  CONFIGURATIONS,
  111. /                VT-78,  AND  ALL DECMATES (VT-278,  DECMATE  II,  III,
  112. /                III+) FOR REMOTE COMMUNICATIONS.
  113.  
  114. /    THE  USE OF THE SERIAL PRINTER PORT FOR REMOTE COMMUNICATIONS PURPOSES MAY  BE
  115. /    PROBLEMATIC DUE TO CONSIDERATIONS SUCH AS THE RS-232 CONNECTION TO THE PRINTER
  116. /    IS A  MODEM  (DCE), RATHER THAN A TERMINAL (DTE) (DECMATE II, ETC.  REQUIRES A
  117. /    GENDER CHANGER.), OR  THE SOFTWARE DESIGNATION OF THE PORT AS BEING ALLEDGEDLY
  118. /    *ONLY* FOR A PRINTER,  SUCH AS WHEN CERTAIN SYSTEMS SUPPORT THE "PRINT SCREEN"
  119. /    KEY AS A SCREEN DUMP  TO  THE  SERIAL PRINTER PORT, ETC.  THESE ISSUES ARE NOT
  120. /    RELEVANT TO KERMIT-12 OPERATION, AS THE "PRINT SCREEN" KEY IS NOT SUPPORTED BY
  121. /    KERMIT-12 IN THIS CONFIGURATION AS SUCH (FUTURE  VERSIONS  COULD  REDEFINE THE
  122. /    "PRINT SCREEN" KEY TO SUCH FUNCTIONS AS DUMP SCREEN TO A FILE, ETC.).
  123.  
  124. /    SETTING BRATE= NN    SETS THE DEFAULT BAUD RATE (FOR  SYSTEMS  THAT SUPPORT
  125. /                THIS  FEATURE)  FROM  A  TABLE  OF  VALUES  (0-15)  AS
  126. /                FOLLOWS:
  127.  
  128. /                NN        BAUD RATE
  129.  
  130. /                00        50
  131. /                01        75
  132. /                02        110
  133. /                03        134.5
  134. /                04        150
  135. /                05        300
  136. /                06        600
  137. /                07        1200
  138. /                08        1800
  139. /                09        2000
  140. /                10        2400
  141. /                11        3600
  142. /                12        4800
  143. /                13        7200
  144. /                14        9600
  145. /                15        19200
  146.  
  147. /    SETTING ESCAPE=    NNNN    SETS THE DEFAULT ESCAPE CHARACTER TO NNNN.
  148.  
  149. /    SETTING FLOW=    1    ENABLES FLOW-CONTROL BY DEFAULT.
  150. /    SETTING FLOW=    0    DISABLES FLOW-CONTROL BY DEFAULT.
  151.  
  152. /    SETTING FMODE=    0177    SETS THE DEFAULT FILE MODE TO ASCII.
  153. /    SETTING FMODE=    4377    SETS THE DEFAULT FILE MODE TO BINARY.
  154. /    SETTING GENMSG=    0    CAUSES  NO  BINARY  TO BE GENERATED WHERE 'LCLMSG'  IS
  155. /                DEFINED.  THIS ALLOWS THE PARAMETER FILE (PARAM.PA) OR
  156. /                SUBSEQUENT OVERLAY  BY  K12PCH.BN  TO DEFINE THE LOCAL
  157. /                HEADER MESSAGE.   THIS  PARAMETER  SHOULD  NOT  BE SET
  158. /                UNLESS ONE OF THESE  METHODS  IS USED, ELSE THE HEADER
  159. /                MESSAGE  WILL  BE UNDEFINED.   (NOTE:    IF  K12PCH.BN
  160. /                GENERATES  A  HEADER MESSAGE, THEN THIS  PARAMETER  IS
  161. /                UNIMPORTANT,  AS  K12PCH.BN  OVERLAYS  THE  BINARY  OF
  162. /                K12MIT.)
  163. /    SETTING GENMSG=    1    CAUSES A HEADER MESSAGE TO BE GENERATED.  THE CONTENTS
  164. /                OF  THE  MESSAGE  ARE  CREATED BY SETTING LEDERLE=1 OR
  165. /                UMSG=1.    IF EITHER IS ZERO, A DEFAULT (NULL) MESSAGE
  166. /                WILL BE GENERATED.
  167.  
  168. /    SETTING ICLOSE=    1    ENSURES A  <^Z>  AT  <EOF>  OF  ASCII  INPUT  FILES BY
  169. /                DEFAULT.
  170. /    SETTING ICLOSE=    0    CLOSES ASCII INPUT FILES AS RECEIVED BY DEFAULT.
  171.  
  172. /    SETTING INIECHO=0    CAUSES A FULL-DUPLEX  CONNECT MODE STATE WITH NO LOCAL
  173. /                CHARACTER ECHOING BY DEFAULT.
  174. /    SETTING INIECHO=1    CAUSES A HALF-DUPLEX CONNECT  MODE  STATE  WITH  LOCAL
  175. /                ECHO OF ALL CONSOLE CHARACTERS BY DEFAULT.
  176.  
  177. /    SETTING LOWER=    0    ALLOWS LOWER-CASE CONSOLE OUTPUT BY DEFAULT.
  178. /    SETTING LOWER=    -40    FOLDS  LOWER-CASE  CONSOLE  OUTPUT  TO  UPPER-CASE  BY
  179. /                DEFAULT.
  180.  
  181. /    SETTING OCLOSE=    0    PREVENTS  DEFAULT SENDING OF <^Z> AT  <EOF>  OF  ASCII
  182. /                FILES.
  183. /    SETTING OCLOSE=    1    CAUSES  <^Z> TO BE SENT AT <EOF>  OF  ASCII  FILES  BY
  184. /                DEFAULT.
  185.  
  186. /    SETTING PORT=    0    CAUSES THE DP-278 PORT 0 TO BE USED  IF  KERMIT-12  IS
  187. /                RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
  188. /    SETTING PORT=    1    CAUSES  THE DP-278 PORT 1 TO BE USED IF  KERMIT-12  IS
  189. /                RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
  190.  
  191. /    SETTING RETCNT=    NNNN    SETS THE PACKET RETRY COUNT TO NNNN BY DEFAULT.
  192.  
  193. /    SETTING UMSG=    0    PREVENTS THE  LOCAL  USER  HEADER  MESSAGE  FROM BEING
  194. /                GENERATED.
  195. /    SETTING UMSG=    1    CAUSES THE LOCAL  USER HEADER MESSAGE TO BE GENERATED.
  196. /                THE PARAMETER GENMSG=1 IS  REQUIRED  TO  BE  SET.  THE
  197. /                SOURCE MUST BE MODIFIED LOCALLY  TO CHANGE THE MESSAGE
  198. /                TEXT FROM "INSERT LOCAL USER MESSAGE  HERE!,"  AS THIS
  199. /                IS THE DEFAULT CONTENTS.
  200. /    PASSING SHORT PARAMETER FILES.
  201.  
  202. /    WHEN INSERTING A SHORT USER MODIFICATION FILE IN THE INPUT STREAM  (PARAM.PAL)
  203. /    THE FOLLOWING SHOULD BE NOTED:
  204.  
  205. /    ALWAYS  PUT  THE  SHORT  PARAMETER  FILE  (CONTAINING EQUATED SYMBOLS SUCH  AS
  206. /    USER=1, ETC.) IN FRONT OF K12PCH.PAL.
  207.  
  208. /    IF TTY:  IS USED FOR DIRECT TYPE-IN OF THESE  PARAMETERS, THE INFORMATION NEED
  209. /    ONLY BE TYPED ENDING WITH <^Z> DURING PASS 1.  SUBSEQUENT  PASSES  REQUIRE THE
  210. /    ENDING <^Z> ONLY.  IF THIS METHOD IS USED, A LISTING WITHOUT  THE  USER  INPUT
  211. /    WHICH  DID THE CUSTOMIZING OF KERMIT-12 CAN BE CREATED.  NOTE:  IF  BINARY  IS
  212. /    GENERATED BY THE CONTENTS OF THE PARAMETER FILE (SUCH AS USE OF THE LOCAL TEXT
  213. /    MESSAGE,  ETC.),  THE  INFORMATION MUST BE TYPED IN DURING PASS 2.  THE PASS 3
  214. /    LISTING MAY  CONTAIN  THE INFORMATION IF SO DESIRED, REQUIRING A REPETITION OF
  215. /    THE INPUT.   PASS  1  INPUT  OF  THE INFORMATION IS EFFECTIVELY IGNORED, AS NO
  216. /    DEFINITIONS ARE CREATED ('LCLMSG' IS DEFINED ELSEWHERE, ETC.).
  217.  
  218. /    EXPERIENCED PDP-8 USERS NEW TO PAL8 VERSION B0 TAKE SPECIAL NOTICE:
  219.  
  220. /    DUE TO HARDWARE LIMITATIONS OF THE DECMATES, THE KEYBOARD FLAG WILL BE CLEARED
  221. /    DURING PDP-8 PAL8 B0 OPERATION.  THE KL8E TTY:  HANDLER WILL NO LONGER BE ABLE
  222. /    TO BUFFER <^Z> DURING THE ASSEMBLY;  YOU MUST  WAIT UNTIL THE HANDLER ACCESSES
  223. /    THE KEYBOARD ON EACH PASS *THEN* PRESS <^Z> TO CONTINUE THE ASSEMBLY.
  224.  
  225.  
  226. /    CREATING A CUSTOM MESSAGE FROM THE PARAMETER FILE.
  227.  
  228. /    IF  SO  DESIRED,  A CUSTOM LOCAL HEADER MESSAGE MAY BE ADDED BY INSERTING  THE
  229. /    FOLLOWING INTO THE PARAMETER FILE:
  230.  
  231. /    BUFFLD=    10        /THESE PROBABLY
  232. /    FILBUFF=2000        /WON'T CHANGE!
  233.  
  234. /    GENMSG=    0        /DON'T GENERATE STANDARD (NULL) MESSAGE
  235. /    UMSG=    0        /DON'T GENERATE STANDARD (DUMMY) USER MESSAGE
  236.  
  237. /    FIELD    BUFFLD%10    /FIELD FOR TEXT MESSAGE
  238.  
  239. /    *FILBUFFER        /LOCAL MESSAGE LOADS THERE
  240.  
  241. /LCLMSG,TEXT    "%^I^NSERT ^L^OCAL ^M^ESSAGE ^H^ERE!%"
  242.  
  243. /    ZBLOCK    LCLMSG+40-.    /ZERO REST OF MESSAGE AREA
  244.  
  245. /    TEXT IS IN  UPPER/LOWER-CASE  SIXBIT  WITH  '^'  MEANING SHIFT CASE (INITIALLY
  246. /    LOWER-CASE) AND '%' MEANING <CR>, <LF>.
  247. /    MAINTAINING THIS PATCH FILE.
  248.  
  249. /    IF ANY CHANGES ARE MADE TO K12MIT.PAL ITSELF WHICH MIGHT AFFECT THIS FILE, THE
  250. /    GLOBAL  TECO MACRO (K12GLB.TEC AKA GLOBAL.TEC) SHOULD BE USED TO  RESOLVE  ALL
  251. /    EXTERNAL  REFERENCES  TO ROUTINES, ETC.  IN K12MIT.PAL.  TO UPDATE  THIS  FILE
  252. /    (K12PCH.PAL), THE FOLLOWING METHOD IS REQUIRED:
  253.  
  254. /    .PAL ,K12MIT<DEV:K12MIT/E/F/N/W        CREATE "SYMBOLS" LISTING FILE ON DSK:
  255. /    .MUNG K12GLB.TEC,K12PCH            UPDATE THIS FILE ON DSK:
  256.  
  257. /    N.B., DSK:K12PCH.PAL WILL BE UPDATED *WITH NO BACKUP*.  DSK:EQUATE.TMP WILL BE
  258. /    CREATED AS  AN  ARTIFACT.  IT CONTAINS THE ACTUAL EQUATE STATEMENTS WHICH WERE
  259. /    UPDATED IN K12PCH.PAL.
  260.  
  261. /    THIS  WILL  MODIFY  THE EQUATED SYMBOLS BELOW IN THE SPECIALLY DELIMITED AREA.
  262. /    ONLY EQUATED SYMBOLS (AND ANY WHITESPACE) SHOULD BE PLACED BETWEEN THE SPECIAL
  263. /    DELIMITERS:  "<CR><LF>//"  WHICH  ARE  USED  BY THE MACRO TO LOCATE THE GLOBAL
  264. /    EQUATES TO UPDATE.
  265.  
  266. /    AS NEW FEATURES ARE ADDED/(DELETED) IN K12MIT.PAL, THE APPROPRIATE DEFINITIONS
  267. /    AND CONDITIONAL ASSEMBLY PARAMETERS SHOULD  BE  ADDED  TO  BOTH K12MIT.PAL AND
  268. /    K12PCH.PAL FOR CONSISTENCY AND USER FLEXIBILITY.
  269. /    DEFINITIONS.                            /017 CJL
  270.  
  271. /    REMOTE LINE PARAMETERS; SET ONLY ONE AS NECESSARY.        /046 CJL
  272.  
  273.     IFNDEF    DEV30    <DEV30=    0>        /USE DEVICE 30/31 VALUES
  274.     IFNDEF    DEV40    <DEV40=    0>        /USE DEVICE 40/41 VALUES
  275.     IFNDEF    LEDERLE    <LEDERLE=0>        /USE LEDERLE LABS VALUES
  276.     IFNDEF    ORIGNAL    <ORIGNAL=0>        /USE ORIGINAL VALUES
  277.     IFNDEF    SPRINT    <SPRINT=0>        /USE DEVICE 32/33 VALUES
  278.     IFNDEF    USER    <USER=    0>        /USE USER-DEFINED VALUES
  279.  
  280.     REMOTE=    DEV30+DEV40+LEDERLE+ORIGNAL    /SET REMOTE LINE IOT CODE
  281.     REMOTE=    REMOTE+SPRINT+USER        /SET REMOTE LINE IOT CODE
  282.  
  283.     IFZERO    REMOTE    <DEV40=    1>        /DEFAULT TO DEVICE 40/41 VERSION
  284.  
  285. /    DEV30 PARAMETERS.
  286.  
  287.     IFNZRO    DEV30            <
  288.  
  289.     IFNDEF    REC    <REC=    30>        /DEVICE 30 INPUT
  290.     IFNDEF    SEN    <SEN=    31>        /DEVICE 31 OUTPUT
  291.  
  292.                     >
  293.  
  294. /    DEV40 PARAMETERS (DEFAULT).
  295.  
  296.     IFNZRO    DEV40            <
  297.  
  298.     IFNDEF    REC    <REC=    40>        /DEVICE 40 INPUT
  299.     IFNDEF    SEN    <SEN=    41>        /DEVICE 41 OUTPUT
  300.  
  301.                     >
  302.  
  303. /    LEDERLE PARAMETERS.                        /038 CJL
  304.  
  305.     IFNZRO    LEDERLE            <
  306.  
  307.     IFNDEF    REC    <REC=    43>        /DEVICE 43 INPUT
  308.     IFNDEF    SEN    <SEN=    44>        /DEVICE 44 OUTPUT
  309.     IFNDEF    GENMSG    <GENMSG=1>        /GENERATE LOCAL HEADER MESSAGE
  310.     IFNDEF    UMSG    <UMSG=    0>        /DON'T GENERATE USER MESSAGE
  311.  
  312.                     >
  313.  
  314. /    ORIGNAL PARAMETERS.
  315.  
  316.     IFNZRO    ORIGNAL            <
  317.  
  318.     IFNDEF    REC    <REC=    33>        /DEVICE 33 INPUT
  319.     IFNDEF    SEN    <SEN=    34>        /DEVICE 34 OUTPUT
  320.  
  321.                     >
  322. /    SPRINT PARAMETERS.                        /046 CJL
  323.  
  324.     IFNZRO    SPRINT            <
  325.  
  326.     IFNDEF    REC    <REC=    32>        /DEVICE 32 INPUT
  327.     IFNDEF    SEN    <SEN=    33>        /DEVICE 33 OUTPUT
  328.  
  329.                     >
  330.  
  331. /    USER PARAMETERS.
  332.  
  333.     IFNZRO    USER            <
  334.  
  335.     IFNDEF    XX    <XX=    40>        /DEFAULT TO DEVICE 40
  336.     IFNDEF    XY    <XY=    41>        /DEFAULT TO DEVICE 41
  337.     IFNDEF    REC    <REC=    XX>        /DEVICE XX INPUT
  338.     IFNDEF    SEN    <SEN=    XY>        /DEVICE XY OUTPUT
  339.     IFNDEF    GENMSG    <GENMSG=1>        /GENERATE LOCAL HEADER MESSAGE
  340.     IFNDEF    UMSG    <UMSG=    1>        /GENERATE USER MESSAGE
  341.  
  342.                     >
  343.  
  344. /    REMOTE LINE IOT DEFINITIONS.
  345.  
  346. /    RECEIVE DEFINITIONS.
  347.  
  348.     RKRBIOT=REC^10+6006            /READ REMOTE, CLEAR FLAG
  349.     RKSFIOT=REC^10+6001            /SKIP ON REMOTE INPUT FLAG
  350.  
  351. /    TRANSMIT DEFINITIONS.
  352.  
  353.     RSBIOT=    SEN^10+6003            /SET BAUD RATE FROM AC[8-11]
  354.     RTLSIOT=SEN^10+6006            /TRANSMIT CHARACTER, CLEAR FLAG
  355.     RTSFIOT=SEN^10+6001            /SKIP ON TRANSMIT FLAG
  356.  
  357. /    CONSOLE TTY: DEFINITIONS.                    /017 CJL
  358.  
  359. /    KEYBOARD DEFINITIONS.                        /017 CJL
  360.  
  361.     IFNDEF    KEY    <KEY=    03>    /KEYBOARD DEVICE CODE
  362.  
  363.     KCCIOT=    KEY^10+6002        /CLEAR CONSOLE KEYBOARD FLAG, AC
  364.     KRBIOT=    KEY^10+6006        /READ CONSOLE KEYBOARD BUFFER, CLEAR FLAG
  365.     KRSIOT=    KEY^10+6004        /READ CONSOLE KEYBOARD BUFFER STATIC
  366.     KSFIOT=    KEY^10+6001        /SKIP ON CONSOLE KEYBOARD FLAG
  367.  
  368. /    TELEPRINTER DEFINITIONS.                    /017 CJL
  369.  
  370.     IFNDEF    TTY    <TTY=    04>    /TELEPRINTER DEVICE CODE
  371.  
  372.     TLSIOT=    TTY^10+6006        /PRINT CHARACTER, CLEAR FLAG
  373.     TSFIOT=    TTY^10+6001        /SKIP ON TELEPRINTER FLAG
  374. /    DEFAULT ESCAPE CHARACTER DEFINITION.                /025 CJL
  375.  
  376.     IFNDEF    ESCAPE    <ESCAPE="]&37>    /DEFAULT IS CONTROL-]
  377.  
  378. /    DEFAULT LOWER-CASE ENABLE DEFINITION.                /030 CJL
  379.  
  380.     IFNDEF    LOWER    <LOWER=    0/-40>    /LOWER-CASE IS ALLOWED AS IS
  381.                     /CHANGE TO -40 IF LOWER-CASE
  382.                     /SHOULD BE FOLDED TO UPPER-CASE
  383.  
  384. /    DEFAULT RETRY COUNT DEFINITION.                    /031 CJL
  385.  
  386.     IFNDEF    RETCNT    <RETCNT=5>    /DEFAULT IS FIVE RETRIES
  387.  
  388. /    DEFAULT FILE MODE DEFINITION.                    /031 CJL
  389.  
  390.     IFNDEF    FMODE    <FMODE=    0177>    /DEFAULT IS ASCII FILE MODE
  391.                     /4377 IS BINARY FILE MODE
  392.  
  393. /    DEFAULT FLOW-CONTROL MODE DEFINITION.                /031 CJL
  394.  
  395.     IFNDEF    FLOW    <FLOW=    1>    /DEFAULT IS FLOW-CONTROL ENABLED
  396.  
  397. /    DEFAULT ASCII INPUT FILE <^Z> DISPOSITION.            /031 CJL
  398.  
  399.     IFNDEF    ICLOSE    <ICLOSE=1>    /ENSURE <^Z> AT ASCII <EOF>
  400.  
  401. /    DEFAULT ASCII OUTPUT FILE <^Z> DISPOSITION.            /031 CJL
  402.  
  403.     IFNDEF    OCLOSE    <OCLOSE=0>    /<^Z> NOT SENT AT ASCII <EOF>
  404.  
  405. /    DEFAULT LOCAL MESSAGE GENERATION DEFINITIONS.            /038 CJL
  406.  
  407.     IFNDEF    GENMSG    <GENMSG=1>    /DEFAULT IS TO GENERATE A MESSAGE
  408.     IFNDEF    UMSG    <UMSG=    0>    /DEFAULT IS NO DUMMY USER MESSAGE
  409.     IFNDEF    LEDERLE    <LEDERLE=0>    /DEFAULT IS NO LEDERLE MESSAGE
  410.  
  411. /    THE NULL MESSAGE WILL BE GENERATED BY DEFAULT.
  412.  
  413. /    ECHO DEFINITION.                        /039 CJL
  414.  
  415.     IFNDEF    INIECHO    <INIECHO=0>    /DEFUALT IS NO LOCAL ECHO
  416.  
  417. /    DEFAULT DECMATE I PORT DEFINITION.                /050 CJL
  418.  
  419.     IFNDEF    PORT    <PORT=    0>    /DEFAULT IS PORT ZERO 
  420.  
  421. /    DEFAULT BAUD RATE DEFINITION.                    /050 CJL
  422.  
  423.     IFNDEF    BRATE    <BRATE=    7>    /DEFAULT IS 1200 BAUD
  424.  
  425. //    GLOBAL EQUATED SYMBOLS FROM K12MIT.PAL.
  426.  
  427.     BUFFLD=    0010        /I/O BUFFER FIELD
  428.     CMOUT4=    0712        /REMOTE OUTPUT WRITE
  429.     CONTLS=    5701        /CONSOLE OUTPUT WRITE
  430.     CONTSF=    5677        /CONSOLE OUTPUT TEST
  431.     COUTINI=6601        /CONSOLE OUTPUT WRITE
  432.     DAYMSG=    2145        /DAY MESSAGE
  433.     DIRXR=    0012        /DIRECTORY AUTO-INDEX
  434.     ECHOFLA=5153        /ECHO FLAG
  435.     ESCHAR=    0101        /ESCAPE CHARACTER
  436.     FILBUFF=2000        /FILE BUFFER
  437.     FILMODE=0075        /INTERNAL FILE MODE FLAG
  438.     FLOWFLA=0102        /FLOW CONTROL FLAG
  439.     ICTLZFL=4033        /INPUT <^Z> FLAG
  440.     INMSG2=    2242        /INITIAL MESSAGE
  441.     INMSG3=    2243        /INITIAL MESSAGE
  442.     INREAD=    0640        /REMOTE INPUT READ
  443.     INSKIP=    0636        /REMOTE INPUT SKIP
  444.     KCCZAP=    6501        /CONSOLE INPUT CLEAR
  445.     KCCZP2=    6546        /CONSOLE INPUT CLEAR
  446.     KGTEST=    5250        /CONSOLE INPUT TEST
  447.     KGREAD=    5252        /CONSOLE INPUT READ
  448.     KRSZAP=    6472        /CONSOLE KEYBOARD READ
  449.     KSFLOC=    6470        /CONSOLE KEYBOARD SKIP
  450.     LCLMSG=    2000        /LOCAL USER MESSAGE
  451.     MONMSG=    2246        /MONTH MESSAGE
  452.     MSGFLD=    0010        /TEXT MESSAGE FIELD
  453.     NOWAIT=    0705        /REMOTE OUTPUT SKIP
  454.     OCTLZFL=3762        /OUTPUT <^Z> FLAG
  455.     PRGFLD=    0000        /PROGRAM FIELD
  456.     P7TLS=    6540        /CONSOLE OUTPUT WRITE
  457.     P7TSF=    6536        /CONSOLE OUTPUT TEST
  458.     RATE=    0007        /BAUD RATE
  459.     REMTLS=    5726        /REMOTE OUTPUT WRITE
  460.     REMTSF=    5724        /REMOTE OUTPUT TEST
  461.     RETRY=    0033        /RETRY COUNT
  462.     RININIT=6613        /REMOTE INPUT READ
  463.     RINREAD=5505        /REMOTE INPUT READ
  464.     RINTEST=5503        /REMOTE INPUT TEST
  465.     ROUTINI=6612        /REMOTE OUTPUT WRITE
  466.     UPONLY=    0076        /UPPER-CASE ONLY FLAG
  467.     YEARMSG=2274        /YEAR MESSAGE
  468.  
  469. //    END OF GLOBAL SYMBOLS FROM K12MIT.PAL
  470. /    EQUATED SYMBOLS.
  471.  
  472.     NL7777=    CLA CMA        /LOAD AC WITH 7777
  473. /    STATIC DATE CALCULATIONS.                    /024 CJL
  474.  
  475. /    THESE EQUATIONS CAUSE PRINTABLE  TEXT OF THE DATE PARTICULARS, WHICH ARE GIVEN
  476. /    IN OS/8 INTERNAL FORMAT.  PROGRAM MAINTAINENCE REQUIRES THE UPDATE OF VERSION,
  477. /    REVISION, REVDATE, AND REVDGRP.  REVDATE  AND  REVDGRP SHOULD BE OBTAINED FROM
  478. /    THE SYSTEM WHEN RELEASING A NEW VERSION  AFTER  FIRST  CORRECTLY  INVOKING THE
  479. /    SYSTEM DATE COMMAND.
  480.  
  481. /    VERSION=[ANY NUMBER IN THE RANGE 00-143 (DECIMAL 00-99)]
  482.  
  483. /    REVISIO=[ANY SIX-BIT ALPHA (A-Z); DO NOT FORGET &77]
  484.  
  485. /    REVDATE=[THE CONTENTS OF 17666 (DATE WORD)]
  486.  
  487. /    REVDGRP=[THE CONTENTS OF 07777 (ONLY BITS[3-4] ARE USED)]
  488.  
  489.  
  490.  
  491.     IFNDEF    REVDATE    <REVDATE=4464>    /REVISION DATE (LOCATION 17666)
  492.  
  493.     IFNDEF    REVDGRP    <REVDGRP=0400>    /REVISION 8 YEAR DATE GROUP (LOCATION 07777)
  494.  
  495.     IFNDEF    REVISIO    <REVISIO="G&77>    /REVISION OF KERMIT-12
  496.  
  497.     IFNDEF    VERSION    <VERSION=12>    /VERSION OF KERMIT-12
  498.  
  499.  
  500.     DAY=    REVDATE&370%10        /REVISION DAY
  501.  
  502.     DGROUP=    REVDGRP&600%20        /REVISION DATE GROUP (WHICH 8 YEARS)
  503.  
  504.     MONTH=    REVDATE&7400%400    /REVISION MONTH
  505.  
  506.     YEAR=    REVDATE&7+DGROUP+106    /REVISION YEAR (SINCE 1900)
  507. /    PATCHED LOCATIONS.
  508.  
  509.     FIELD    PRGFLD%10    /OVER MAIN PROGRAM CODE
  510.  
  511.     *RATE            /OVER BAUD RATE VALUE
  512.  
  513. RATE,    BRATE            /BAUD RATE VALUE            /050 CJL
  514.  
  515.     *RETRY            /OVER PACKET ERROR RETRY COUNTER
  516.  
  517. RETRY,    -RETCNT            /PACKET ERROR RETRY COUNTER        /031 CJL
  518.  
  519.     *FILMODE        /OVER INTERNAL FILE MODE FLAG
  520.  
  521. FILMODE,FMODE            /ASCII=0177, BINARY=4377        /019 CJL
  522.  
  523.     *UPONLY            /OVER UPPER-CASE ONLY FLAG
  524.  
  525. /    UPPER-CASE ONLY FLAG.                        /023 CJL
  526.  
  527. UPONLY,    LOWER            /0=UPPER/LOWER CASE, -40=UPPER-CASE ONLY/030 CJL
  528.  
  529.     *ESCHAR            /OVER ESCAPE CHARACTER FOR CONNECT MODE
  530.  
  531. /    ESCAPE CHARACTER FOR CONNECT MODE.                /025 CJL
  532.  
  533. ESCHAR,    ESCAPE            /ESCAPE CHARACTER FOR CONNECT MODE    /025 CJL
  534.  
  535.     *FLOWFLAG        /OVER FLOW CONTROL FLAG
  536.  
  537. /    FLOW CONTROL FLAG.                        /026 CJL
  538.  
  539. FLOWFLA,FLOW            /0=NO FLOW CONTROL, NON-ZERO=FLOW    /026 CJL
  540.                 /CONTROL VIA <^S>/<^Q>
  541. /    I/O PATCHES.
  542.  
  543. /    REMOTE LINE (NON-CONNECT) PATCHES.
  544.  
  545. /    INPUT ROUTINE PATCHES.
  546.  
  547.     *INSKIP            /OVER REMOTE INPUT SKIP
  548.  
  549. INSKIP,    RKSFIOT            /FLAG UP YET?                /049 CJL
  550.  
  551.     *INREAD            /OVER REMOTE INPUT READ
  552.  
  553. INREAD,    RKRBIOT            /GET THE CHARACTER            /049 CJL
  554.  
  555. /    OUTPUT ROUTINE PATCHES.
  556.  
  557.     *NOWAIT            /OVER REMOTE OUTPUT SKIP
  558.  
  559. NOWAIT,    RTSFIOT            /OUTPUT FLAG UP?            /049 CJL
  560.  
  561.     *CMOUT4            /OVER REMOTE OUTPUT WRITE
  562.  
  563. CMOUT4,    RTLSIOT            /YES, OUTPUT THE CHARACTER NOW        /049 CJL
  564.  
  565. /    INITIALIZATION PATCHES.
  566.  
  567.     *DIRXR            /OVER DECMATE I PORT SELECT
  568.  
  569. DIRXR,    PORT            /DECMATE I PORT SELECT VALUE        /050 CJL
  570.  
  571.     *ROUTINITIALIZE        /OVER REMOTE OUTPUT WRITE
  572.  
  573. ROUTINI,RTLSIOT            /INITIALIZE REMOTE OUTPUT        /046 CJL
  574.  
  575.     *RININITIALIZE        /OVER REMOTE INPUT READ
  576.  
  577. RININIT,RKRBIOT            /INITIALIZE REMOTE INPUT        /046 CJL
  578. /    CONSOLE (NON-CONNECT) PATCHES.
  579.  
  580. /    INPUT ROUTINE PATCHES.
  581.  
  582.     *KSFLOC            /OVER CONSOLE INPUT ROUTINE
  583.  
  584. KSFLOC,    KSFIOT            /SKIP ON KEYBOARD FLAG            /023 CJL
  585.  
  586.     *KRSZAP            /OVER CONSOLE INPUT ROUTINE
  587.  
  588. KRSZAP,    KRSIOT            /READ KEYBOARD BUFFER            /023 CJL
  589.  
  590.     *KCCZAP            /OVER CONSOLE INPUT ROUTINE
  591.  
  592. KCCZAP,    KCCIOT            /CLEAR KEYBOARD FLAG            /023 CJL
  593.  
  594.     *KCCZP2            /OVER CONSOLE INPUT ROUTINE
  595.  
  596. KCCZP2,    KCCIOT            /CLEAR KEYBOARD FLAG, AC        /023 CJL
  597.  
  598. /    OUTPUT ROUTINE PATCHES.
  599.  
  600.     *P7TSF            /OVER CONSOLE OUTPUT ROUTINE
  601.  
  602. P7TSF,    TSFIOT            /TEST IF OUTPUT READY            /023 CJL
  603.  
  604.     *P7TLS            /OVER CONSOLE OUTPUT ROUTINE
  605.  
  606. P7TLS,    TLSIOT            /OUTPUT THE CHARACTER            /023 CJL
  607.  
  608. /    INITIALIZATION PATCH.
  609.  
  610.     *COUTINIALIZE        /OVER CONSOLE INITIALIZE
  611.  
  612. COUTINI,TLSIOT            /INITIALIZE CONSOLE OUTPUT FLAG        /046 CJL
  613. /    CONNECT ROUTINE PATCHES.
  614.  
  615.     *KGTEST            /OVER KEYBOARD TEST
  616.  
  617. KGTEST,    KSFIOT            /SKIP ON KEYBOARD FLAG            /047 CJL
  618.  
  619.     *KGREAD            /OVER KEYBOARD READ
  620.  
  621. KGREAD,    KRBIOT            /READ KEYBOARD BUFFER, CLEAR FLAG    /047 CJL
  622.  
  623.     *CONTSF            /OVER CONSOLE OUTPUT TEST
  624.  
  625. CONTSF,    TSFIOT            /SKIP ON CONSOLE OUTPUT FLAG        /047 CJL
  626.  
  627.     *CONTLS            /OVER CONSOLE OUTPUT WRITE
  628.  
  629. CONTLS,    TLSIOT            /OUTPUT TO CONSOLE            /047 CJL
  630.  
  631.     *RINTEST        /OVER REMOTE TEST
  632.  
  633. RINTEST,RKSFIOT            /SKIP ON REMOTE INPUT FLAG        /047 CJL
  634.  
  635.     *RINREAD        /OVER REMOTE READ
  636.  
  637. RINREAD,RKRBIOT            /READ REMOTE CHARACTER            /047 CJL
  638.  
  639.     *REMTSF            /OVER REMOTE OUTPUT TEST
  640.  
  641. REMTSF,    RTSFIOT            /SKIP ON REMOTE OUTPUT FLAG        /047 CJL
  642.  
  643.     *REMTLS            /OVER REMOTE OUTPUT WRITE
  644.  
  645. REMTLS,    RTLSIOT            /OUTPUT TO REMOTE            /047 CJL
  646.  
  647. /    ADDITIONAL PATCHES.
  648.  
  649.     *OCTLZFLAG        /OVER ASCII OUTPUT FILE <^Z> FLAG
  650.  
  651. /    ASCII FILE MODE <^Z> OUTPUT DISPOSITION FLAG.
  652.  
  653. OCTLZFL,OCLOSE            /ZERO=DON'T SEND <^Z> AT <EOF>,
  654.                 /NON-ZERO=SEND <^Z> AT <EOF>
  655.  
  656.     *ICTLZFLAG        /OVER ASCII INPUT FILE <^Z> FLAG
  657.  
  658. /    ASCII FILE MODE <^Z> INPUT DISPOSITION FLAG.
  659.  
  660. ICTLZFL,ICLOSE            /ZERO=DON'T ENSURE <^Z> IN FILE, NON-ZERO=PACK <^Z>
  661.                 /IF LAST CHARACTER WASN'T <^Z>
  662.  
  663.     *ECHOFLAG        /OVER ECHO FLAG
  664.  
  665. ECHOFLA,INIECHO            /0=DON'T ECHO, NON-ZERO=ECHO
  666. /    ONCE-ONLY TEXT MESSAGES.                    /024 CJL
  667.  
  668.     FIELD    BUFFLD%10        /FILE I/O BUFFER FIELD
  669.  
  670.     *FILBUFFER            /OVER FILE I/O BUFFER
  671.  
  672. /    LOCAL PREFERENCE MESSAGE.                    /024 CJL
  673.  
  674. /    USE SOMETHING APPROPRIATE HERE TO CUSTOMIZE KERMIT-12 TO YOUR MACHINE.
  675.  
  676. /    THIS LOCATION SHOULD BE MAINTAINED SINCE IT IS DOCUMENTED TO BE HERE.
  677.  
  678.     XLIST    OFF
  679.     IFZERO    GENMSG            <
  680.     XLIST    ON
  681. LCLMSG,    *LCLMSG+40            /EMPTY HOLE FOR USER MESSAGE    /039 CJL
  682.  
  683.     XLIST    OFF            >
  684.     IFNZRO    GENMSG            <
  685.     IFNZRO    LEDERLE        <
  686.     XLIST    ON
  687. LCLMSG,    TEXT    "%^T^HANKS TO: ^B^ILL ^S^MITH AND ^D^INGER ^M^ILLER%"
  688.  
  689.     XLIST    OFF        >
  690.     IFNZRO    UMSG        <
  691.     XLIST    ON
  692. LCLMSG,    TEXT    "%^I^NSERT LOCAL USER MESSAGE HERE!%^"
  693.  
  694.     XLIST    OFF        >
  695.     IFZERO    LEDERLE!UMSG    <
  696.     XLIST    ON
  697. LCLMSG,    TEXT    "^^^^^^^^^^^^^^^^^^^^^^"/DEFAULT IS NO MESSAGE
  698.  
  699.     XLIST    OFF        >
  700.     IFNZRO    LCLMSG+40-.    <
  701.     XLIST    ON
  702.     ZBLOCK    LCLMSG+40-.        /LEAVE PATCHING SPACE
  703.  
  704.     XLIST    OFF        >
  705.                     >
  706.     XLIST    ON
  707.     *DAYMSG                /OVER DAY OF THE MONTH MESSAGE
  708.  
  709. DAYMSG,    DAY%12^66+DAY+6060        /DAY MESSAGE
  710.  
  711.     *INMSG2                /OVER INITIAL MESSAGE
  712.  
  713. INMSG2,    VERSION%12^66+VERSION+6060    /VERSION DIGITS
  714.  
  715.     *INMSG3                /OVER INITIAL MESSAGE
  716.  
  717. INMSG3,    "^^100+REVISION            /REVISION
  718.  
  719.     *MONMSG                /OVER MONTH MESSAGE
  720.  
  721.     XLIST    OFF
  722.     IFZERO    MONTH-1        <
  723.     XLIST    ON
  724. MONMSG,    TEXT    "^J^ANUARY ^"        /MONTH MESSAGE
  725.     XLIST    OFF        >
  726.     IFZERO    MONTH-2        <
  727.     XLIST    ON
  728. MONMSG,    TEXT    "^F^EBRUARY "        /MONTH MESSAGE
  729.     XLIST    OFF        >
  730.     IFZERO    MONTH-3        <
  731.     XLIST    ON
  732. MONMSG,    TEXT    "^M^ARCH ^"        /MONTH MESSAGE
  733.     XLIST    OFF        >
  734.     IFZERO    MONTH-4        <
  735.     XLIST    ON
  736. MONMSG,    TEXT    "^A^PRIL ^"        /MONTH MESSAGE
  737.     XLIST    OFF        >
  738.     IFZERO    MONTH-5        <
  739.     XLIST    ON
  740. MONMSG,    TEXT    "^M^AY ^"        /MONTH MESSAGE
  741.     XLIST    OFF        >
  742.     IFZERO    MONTH-6        <
  743.     XLIST    ON
  744. MONMSG,    TEXT    "^J^UNE "        /MONTH MESSAGE
  745.     XLIST    OFF        >
  746.     IFZERO    MONTH-7        <
  747.     XLIST    ON
  748. MONMSG,    TEXT    "^J^ULY "        /MONTH MESSAGE
  749.     XLIST    OFF        >
  750.     IFZERO    MONTH-10    <
  751.     XLIST    ON
  752. MONMSG,    TEXT    "^A^UGUST "        /MONTH MESSAGE
  753.     XLIST    OFF        >
  754.     IFZERO    MONTH-11    <
  755.     XLIST    ON
  756. MONMSG,    TEXT    "^S^EPTEMBER ^"        /MONTH MESSAGE
  757.     XLIST    OFF        >
  758.     IFZERO    MONTH-12    <
  759.     XLIST    ON
  760. MONMSG,    TEXT    "^O^CTOBER ^"        /MONTH MESSAGE
  761.     XLIST    OFF        >
  762.     IFZERO    MONTH-13    <
  763.     XLIST    ON
  764. MONMSG,    TEXT    "^N^OVEMBER "        /MONTH MESSAGE
  765.     XLIST    OFF        >
  766.     IFZERO    MONTH-14    <
  767.     XLIST    ON
  768. MONMSG,    TEXT    "^D^ECEMBER "        /MONTH MESSAGE
  769.     XLIST    OFF        >
  770.     IFNZRO    MONMSG+7-.    <
  771.     XLIST    ON
  772.  
  773.     ZBLOCK    MONMSG+7-.        /EMPTY SPACE FOR ALIGNMENT
  774.  
  775.     XLIST    OFF        >
  776.     XLIST    ON
  777.  
  778.     *YEARMSG            /OVER YEAR MESSAGE
  779.  
  780. YEARMSG,TEXT    "19"            /YEAR MESSAGE
  781.     YEAR%12^66+YEAR+6060        /YEAR DIGITS
  782.  
  783. /    END OF PATCH FILE.
  784.  
  785.     $                /THAT'S ALL FOLK!
  786.