| 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f |
| 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 | \f/ EQUATED SYMBOLS. |
| 471 | |
| 472 | NL7777= CLA CMA /LOAD AC WITH 7777 |
| 473 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f/ 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 | \f *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! |