A large commit.
[pdp8.git] / sw / kermit / k12 / k12pch.pal
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!