A large commit.
[pdp8.git] / sw / kermit / k12 / k12mit.doc
1 / KERMIT FOR DEC 12-BIT MACHINES
2
3 / LAST EDIT: 06-SEP-1990 11:00:00 CJL
4
5 XLIST OFF
6 IFNDEF OFF <OFF= 1> /TURN LISTING OFF
7 IFNDEF ON <ON= 0> /TURN LISTING ON
8 XLIST ON; IFZERO 1 <
9
10
11
12
13
14
15
16
17 *** **** *********** ********* *** *** *** *********** ***** ****
18 *** **** *********** ********** **** **** *** *********** ***** ******
19 *** **** *** *** **** **** **** *** *** *** *** ***
20 *** **** *** *** *** ***** ***** *** *** *** ** ****
21 *** **** *** *** *** ***** ***** *** *** *** ** ***
22 ******* *** *** **** ************ *** *** *** **
23 ****** ********** ********** *** **** *** *** *** ***** *** **
24 ******* ********** ********* *** **** *** *** *** ***** *** **
25 *** **** *** *** **** *** ** *** *** *** *** **
26 *** **** *** *** **** *** ** *** *** *** *** **
27 *** **** *** *** **** *** *** *** *** *** **
28 *** **** *********** *** **** *** *** *** *** *** *********
29 *** **** *********** *** **** *** *** *** *** *** *********
30 > XLIST ON
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 / COPYRIGHT (C) 1989, 1990 BY THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF
51 / NEW YORK.
52
53
54
55 / PERMISSION IS GRANTED TO ANY INDIVIDUAL OR INSTITUTION TO COPY OR USE THIS
56 / DOCUMENT AND THE PROGRAM(S) DESCRIBED IN IT, EXCEPT FOR EXPLICITLY COMMERCIAL
57 / PURPOSES.
58 \f/ EDIT HISTORY. /014 CJL
59
60 / 052 06-SEP-1990 BUG FIX. CHARLES LASNER (CJL)
61
62 / SENDING A FILE WHICH EXACTLY FILLS THE LAST DATA PACKET AT THE
63 / END OF THE FILE WILL CAUSE THE PACKET TO BE SENT TWICE. THE
64 / ROUTINE DIDN'T CHECK FOR AN EMPTY OUTPUT BUFFER AT EOF.
65
66 / 051 29-AUG-1990 BUG FIX. CJL
67
68 / PDP-8/A NOT IDENTIFIED CORRECTLY IN CPUID ROUTINE. THE UPDATED
69 / PC IS WHAT IS LOADED INTO THE AC WHEN 7016 IS EXECUTED ON THE
70 / KK-8/A CPU. THE ROUTINE WAS CHECKING FOR THE NON-UPDATED VALUE.
71 / ALSO NEW DOCUMENTATION FOR PRE-CLEARING MEMORY FOR BENEFIT OF
72 / ENCODED BINARY FILES.
73 \f/ 050 06-SEP-1989 DECMATE I SUPPORT, ETC. CJL
74
75 / THIS EDIT IMPLEMENTS DECMATE I SUPPORT USING THE DP278-A OR -B.
76 / A NEW CONDITIONAL 'PORT' SELECTS WHICH PORT IS TO BE USED. IF
77 / KERMIT-12 IS RUN ON DECMATE I (WHILE NOT CONFIGURED FOR SERIAL
78 / PRINTER PORT COMMUNICATIONS; SEE EDIT 048.) THEN REMOTE
79 / COMMUNICATIONS TAKES PLACE ON THE PORT SELECTED AT ASSEMBLY TIME
80 / ('PORT=0' OR 'PORT=1'). ADDED BAUD RATE PARAMETER 'BRATE' TO
81 / SELECT REMOTE COMMUNICATIONS BAUD RATE FROM THE STANDARD TABLE;
82 / DEFAULTS TO 1200 BAUD ('BRATE=7').
83
84 / 049 30-AUG-1989 REMOTE FLOW CONTROL, ETC. CJL
85
86 / THIS EDIT IMPLEMENTS FLOW CONTROL SUPPORT (IF FLOW CONTROL IS
87 / ENABLED) FOR THE REMOTE LINE WHILE SENDING PACKETS TO THE REMOTE
88 / KERMIT REGARDLESS OF STATE. PREVIOUSLY, FLOW CONTROL ONLY
89 / APPLIED TO CONNECT MODE. LOCAL FLOW CONTROL (TOWARDS THE REMOTE
90 / KERMIT) IS UNNECESSARY AS LOCAL BUFFERS FOR REMOTE INPUT ARE
91 / ALWAYS AVAILABLE. CERTAIN ROUTINE CHANGES MADE FOR BENEFIT OF
92 / DECMATE I SUPPORT IN A SUBSEQUENT EDIT.
93
94 / 048 24-AUG-1989 DECMATE II, ETC. SUPPORT. CJL
95
96 / ONCE-ONLY CODE ADDED TO IMPLEMENT DECMATE II, ETC. REMOTE LINE
97 / SUPPORT ON SERIAL COMMUNICATIONS PORT. SELECTED PORT IS
98 / INDICATED ON OPENING BANNER IF OPERATING ON DECMATE.
99
100 / THIS EDIT PROVIDES BASIC SUPPORT OF THE DECMATE II COMMUNICATIONS PORT AS AN
101 / AUTOMATIC FEATURE OF THE STANDARD RELEASE OF K12MIT. AUTOMATIC DETECTION OF
102 / DECMATE II, ETC. HARDWARE IS PERFORMED UNLESS THE PDP-8-TYPE REMOTE LINE
103 / SUPPORT IS ASSEMBLED FOR THE SERIAL PRINTER AS THE REMOTE LINE ('SPRINT' IS
104 / SET OR EQUIVALENT).
105
106 / THIS EDIT INCORPORATES ALL OF THE INFORMATION TAKEN FROM VARIOUS SOURCES
107 / REGARDING DECMATE PORT INITIALIZATION, ETC. EVERY ATTEMPT HAS BEEN MADE TO
108 / COMPLETELY SET ALL APPROPRIATE REGISTERS, ETC. FOR DECMATE II, III, III+
109 / OPERATION. NO SUPPORT EXISTS FOR THE DECMATE III BUILT-IN MODEM OPTION, AS
110 / EXPLICIT DOCUMENTATION IS NOT AVAILABLE (SOME OF THE INITIALIZATION CODE IS
111 / APPARENTLY USED TO DISABLE THE MODEM). THESE ROUTINES ARE ONLY KNOWN TO WORK
112 / ON THE DECMATE II, AS THE III (ESPECIALLY WITH OPTIONAL MODEM) AND THE III+
113 / HAVEN'T BEEN AVAILABLE TO THE AUTHOR FOR TESTING. THE INITIALIZATION CODE
114 / WILL BE UPDATED LATER TO INCLUDE PANEL REQUESTS, ETC. TO CORRECT ANY
115 / PROBLEMS, ETC. DECMATE-SPECIFIC FEATURES (SUCH AS SETUP COMMANDS) WILL BE
116 / ADDED LATER AND ENABLED FROM THESE ROUTINES.
117
118 / THIS EDIT INCORPORATES NON-INTERRUPT ROUTINES WHICH HAVE BEEN TESTED AT THE
119 / MAXIMUM COMMUNICATIONS SPEED OF THE DECMATE II (19200 BAUD). THEY WILL
120 / SUFFICE FOR ALL KERMIT IMPROVEMENTS SHORT OF SLIDING WINDOWS AT WHICH TIME
121 / INTERRUPT-DRIVEN I/O WILL BE REQUIRED. (INTERRUPT-DRIVEN I/O IS ILLEGAL ON
122 / CERTAIN OS/8 SYSTEMS WHERE INTERRUPTS ARE HARMFUL TO THE SYSTEM OR NON-SYSTEM
123 / HANDLERS.)
124 \f/ 047 21-AUG-1989 CODE CLEANUP. CJL
125
126 / STREAM-LINED CONNECT MODE ROUTINES FOR MINIMUM USE OF IOTS. THIS
127 / IS IN PREPARATION FOR EVENTUAL DECMATE II OPERATION, AND TO
128 / MINIMIZE K12PCH PATCH FILE SIZE. CERTAIN NON-CONNECT ROUTINES
129 / MOVED TO FACILIATE CONNECT ROUTINE REORGANIZATION.
130
131 / 046 15-AUG-1989 CODE CLEANUP. CJL
132
133 / ADDED NEW (NON-CONNECT) MODE COMMUNICATIONS ROUTINES FOR EVENTUAL
134 / DECMATE USE. ELIMINATION OF 'IREM' AND 'IREMW' ROUTINES IN FAVOR
135 / OF 'COMIN'. ELIMINATION OF 'OREM' IN FAVOR OF 'COMOUT'. ADDED
136 / STATUS UPDATE ROUTINE ('UPSTATUS') FOR EVENTUAL DECMATE II, ETC.
137 / USAGE. ELIMINATED PDP-8, DECMATE I, DECMATE II CONDITIONALS.
138 / REORGANIZED SERIAL LINE CONDITIONALS AND ADDED NEW 'SPRINT'
139 / PARAMETER FOR SERIAL PRINTER PORT USAGE AS COMMUNICATIONS PORT.
140 / ADDED ONCE-ONLY CODE ADDED TO AUTOMATICALLY RECOGNIZE DECMATE I
141 / AND II OPERATION UNLESS ASSEMBLED FOR REMOTE COMMUNICATIONS ON
142 / SERIAL PRINTER PORT ('SPRINT' SET). UPDATED K12PCH.PAL TO
143 / CORRESPOND TO NEW DEFINITIONS. DEFINED EVENTUALLY NEEDED
144 / COMMUNICATIONS PORT INSTRUCTIONS FOR DECMATE II; ACTUAL DECMATE
145 / II OPERATION WILL BE DEFINED IN A SUBSEQUENT EDIT. DOCUMENTED
146 / NEW LOADING AND SAVING INSTRUCTIONS FOR K12MIT TO ALLOW FOR
147 / ONCE-ONLY CODE IN 10000-11777 WITHOUT SWAPPING THE CODE OUT FOR
148 / THE USR. THIS ELIMINATES OVERHEAD WHEN LOADING K12MIT, BUT IS
149 / DIFFERENT FROM THE FORMER INSTRUCTIONS WHICH ASSUMED NO OTHER
150 / USAGE OF 10000-11777 OTHER THAN THE (LOCKED-IN) USR.
151
152 / THIS EDIT PROVIDES THE FRAMEWORK FOR AUTOMATIC DETECTION OF PROGRAM EXECUTION
153 / OF K12MIT ON ANY MEMBER OF THE DECMATE FAMILY (I, II, III, III+). WHEN
154 / 6120-TYPE CPU DETECTION OCCURS, THE DECMATE I OR II-TYPE COMMUNICATIONS PORT
155 / INITIALIZE CODE IS AUTOMATICALLY SELECTED AS NECESSARY UNLESS THE PDP-8-TYPE
156 / ROUTINES ARE ASSEMBLED (WITH 'SPRINT' SET OR EQUIVALENT USER SETTINGS, ETC.)
157 / FOR THE VT-78-TYPE PRINTER PORT (32/33), IN WHICH CASE THE COMMUNICATIONS IS
158 / DONE VIA THE PRINTER PORT ON THE DECMATE (WHICH IS ALMOST PDP-8 COMPATIBLE AND
159 / IS ACCOMODATED AS SUCH).
160
161 / SUBSEQUENT EDITS SHOULD PROVIDE FOR A DECMATE I PARAMETER TO CONTROL THE PORT
162 / SELECTION, AS THERE ARE AT LEAST TWO VARIANT OPTIONS BOARDS (DP-278A AND
163 / DP-278B) EACH CONSISTING OF TWO PORTS.
164 \f/ 045 12-AUG-1989 BUG FIX. CJL
165
166 / FINISH, GET, AND RECEIVE COMMANDS FAIL TO ABORT PROPERLY
167 / (ESPECIALLY AFTER THE SEND COMMAND HAS BEEN USED), AS THE CURRENT
168 / OPERATING MODE ('KMODE') IS NEVER PROPERLY SET, OR IS SET AFTER
169 / SEVERAL PACKETS HAVE BEEN SENT. EACH COMMAND NOW SETS ITS OWN
170 / OPERATING MODE BEFORE INITIATING ANY PACKETS.
171
172 / 044 11-AUG-1989 CODE CLEANUP. CJL
173
174 / CHANGED 'CCMSG' TO 'ABMSG' WITH CLEARER MESSAGE. CHANGED
175 / 'CCFLAG' TO 'ABFLAG' FOR CONSISTENCY. CHANGED ABORT CHARACTER
176 / FROM <^C> TO CHOICE OF <^X> OR <^Z> FOR CONSISTENCY. ELIMINATED
177 / 'ITTY' AND 'ITTYW' ROUTINES BY USING 'CTLCTST' AND 'INPUT'
178 / ROUTINES ALREADY AVAILABLE A/O EDIT 043. ELIMINATED 'TCHAR' IN
179 / FAVOR OF 'INCHAR' AVAILABLE A/O EDIT 043.
180
181 / 043 07-AUG-1989 CODE CLEANUP, ETC. CJL
182
183 / REWRITE OF CONSOLE SUPPORT ROUTINES INCLUDING FORCED-ECHO OUTPUT
184 / AND COLUMN COUNT FOR <HT> SIMULATION IN PREPARATION FOR IMPENDING
185 / USER-INTERFACE REWRITE. 'SCRIBE', 'LININP', AND 'ESCPRNT'
186 / ROUTINES NOW CALL "P7ECHO" ROUTINE TO ENSURE PRINTING OF CRUCIAL
187 / MESSAGES.
188
189 / 042 13-JUN-1989 CODE CLEANUP. CJL
190
191 / FIXED VARIOUS NAK-RELATED BUGS AND SEND-INIT PROBLEMS AS IN K278
192 / (SOME OF THE K278 STUFF IS DEFICIENT!). CALCULATION OF PROPER
193 / SEQUENCE NUMBER FOR NAK CORRECTED OVER FORMER (K08MIT AND K278)
194 / VERSIONS. ADDED ERROR MESSAGE FOR FULL-DISK PROBLEM.
195
196 / 041 12-MAY-1989 BUG FIX. CJL
197
198 / VARIOUS VERSIONS (DECMATE) WON'T FUNCTION REMOTELY WHILE KL-8
199 / VERSIONS WORK FINE. ADDED REMOTE LINE READ IOT TO INITIALIZE
200 / REMOTE LINE AT STARTUP TIME FOR VERSIONS REQUIRING THIS.
201 / CORRESPONDING CHANGES IN PATCH FILE MADE FOR REMOTE LINE READ IOT
202 / IN TWO PLACES.
203 \f/ 040 07-MAR-1989 COSMETIC CLEANUP. CJL
204
205 / CLEANUP OF EDIT HISTORY AND OTHER COMMENTS.
206
207 / 039 21-MAY-1988 CODE CLEANUP. CJL
208
209 / ADDED VARIABLE 'INIECHO' TO ALLOW DEFAULT CONNECT-MODE STATE TO
210 / BE HALF-DUPLEX ("SET LOCAL-ECHO ON"). MODIFIED INPUT SERVICE
211 / ERROR ADDRESSES TO SIMPLIFY ERROR TABLES.
212
213 / 038 19-MAY-1988 CODE CLEANUP. CJL
214
215 / ELIMINATED TRAILER FILES DURING ASSEMBLY BY CREATING VARIABLES
216 / 'GENMSG' AND 'UMSG.' THIS ALLOWS THE HEADER FILE (PARAM.PA) TO
217 / CONTAIN THE LOCAL MESSAGE TEXT WITHOUT SUBSEQUENT OVERLAY (WHICH
218 / WAS WHY THERE FORMERLY WAS A TRAILER FILE CAPABILITY). OVERLAY
219 / BY K12PCH.BN WILL DEFAULT TO CREATION OF A DUMMY USER MESSAGE
220 / (WITHIN K12PCH) ENCOURAGING LOCAL CUSTOMIZATION. K12MIT.BN WILL
221 / CONTAIN A NULL MESSAGE BY DEFAULT UNLESS CUSTOMIZED IN PARAM.PA.
222
223 / 037 21-JAN-1988 BUG FIX. CJL
224
225 / RESET OS/8 DEVICE CONTROL WORD TABLE TO DELETE TENTATIVE FILE IN
226 / CASE OF PRIOR INPUT SERVICE ERROR.
227
228 / 036 20-JAN-1988 BUG FIX. CJL
229
230 / RESET 'OFFLG' WHEN DOING INPUT SERVICE IN CASE PRIOR ERRORS LEAVE
231 / THE FLAG SET.
232
233 / 035 14-JAN-1988 USR RESIDENT CODING. CJL
234
235 / CALLS TO USR NOW USE 10200 INSTEAD OF 17700. NO SWAP OVERHEAD
236 / WHEN OPENING OR CLOSING FILES.
237
238 / 034 13-JAN-1988 CODE CLEANUP. CJL
239
240 / ALL EIGHT-BIT ORIENTED CONSOLE CODE ELIMINATED; NOW IGNORES
241 / PARITY (JUST SEVEN BITS).
242
243 / 033 12-JAN-1988 CODE CLEANUP. CJL
244
245 / 'TTYOUT' AND 'OTTY' ROUTINES ELIMINATED; NOW USES 'P7CH' FOR ALL
246 / CONSOLE OUTPUT (EXCEPT FOR CONNECT MODE).
247
248 / 032 12-JAN-1988 CODE CLEANUP. CJL
249
250 / VARIOUS ROUTINES REWRITTEN TO ELIMINATE DEPENDENCIES ON CPU TYPE
251 / BEYOND THE CLASSIC PDP-8.
252 \f/ 031 11-JAN-1988 CODE CLEANUP. CJL
253
254 / ELIMINATED 'RTDISP' AND CHANGED CALLING CONVENTION FOR DISPATCH
255 / ROUTINE. ALL CALLERS NOW LOCAL OR VIA LOCAL POINTERS. ADDED
256 / SEVERAL CONDITIONAL PARAMETERS AND LABELS FOR BENEFIT OF
257 / K12PCH.PAL.
258
259 / 030 05-JAN-1988 CODE CLEANUP. CJL
260
261 / CHANGED LOWER/UPPER CASE CONDITIONAL ASSEMBLY PARAMETERS AND MORE
262 / EFFICIENT CODE.
263
264 / 029 21-DEC-1987 CODE CLEANUP. CJL
265
266 / CHANGED CALLING CONVENTIONS FOR 'SCRIBE' AND SIMILAR ROUTINES AND
267 / REWROTE 'COMMAND' ROUTINE.
268
269 / 028 15-DEC-1987 CODE CLEANUP. CJL
270
271 / COMPLETE REWRITE OF FILE LOOKUP ROUTINE. 'LUKUP' NOW USES FIELD
272 / ONE BUFFER AND ITS OWN AUTO-INDEX REGISTER CONSERVING PROGRAM
273 / SPACE.
274
275 / 027 05-DEC-1987 CODE CLEANUP. CJL
276
277 / CHANGED DISPATCH ('DISPA0') ROUTINE TO USE 'SRCHTABLE' ROUTINE.
278 / ALL CALLS MADE COMPATIBLE. ELIMINATED 'SCANC' CODE. ELIMINATED
279 / CODE WITHIN 'DPARS' ROUTINE. 'LUKUP' ROUTINE NOW DOES ITS OWN
280 / DISK I/O. ELIMINATED 'BLKIN' ROUTINE.
281
282 / 026 27-NOV-1987 NEW CONNECT MODE CODE. CJL
283
284 / TOTAL REWRITE OF ALL CONNECT MODE CONSOLE AND REMOTE INPUT AND
285 / OUTPUT TERMINAL ROUTINES. CONNECT IS NOW FULLY BUFFERED IN ALL
286 / DIRECTIONS. IF FLOW CONTROL IS OBEYED, ANY BAUD RATE CAN BE
287 / ACCOMODATED BOTH LOCALLY AND REMOTE (UP TO 9600 BAUD TESTED,
288 / SHOULD WORK TO AT LEAST 19200 BAUD BY INSPECTION). TESTED WITH
289 / FAST VT-100 EMULATOR CONSOLE TO PROVE ESCAPE SEQUENCES ARE NOT
290 / DROPPED WHEN LOCAL TERMINAL IS FASTER THAN REMOTE LINE. LIMITED
291 / USE OF SUBROUTINES TO IMPROVE HIGH BAUD RATE OPERATION. ADDED
292 / TABLE-DRIVEN ERROR EXIT ROUTINE FOR SEND ROUTINES.
293
294 / THIS EDIT PROVIDES FULLY BUFFERED INPUT/OUTPUT ROUTINES FOR BOTH LOCAL AND
295 / REMOTE PORTS. NO INTERRUPTS ARE USED FOR MAXIMUM COMPATIBILITY WITH OS/8
296 / DEVICES (SOME OF WHICH ARE INTOLERANT OF INTERRUPTS, SUCH AS TD-8/E). REMOTE
297 / FLOW CONTROL (IF ENABLED) WILL SIGNAL BUFFER FILLING VIA <DC3> WHEN THE BUFFER
298 / IS 3/4 FULL. WHEN THE BUFFER REACHES 1/4 FULL, THE REMOTE WILL BE SENT <DC1>
299 / TO ALLOW FURTHER OUTPUT. REMOTE FLOW CONTROL IS SUPPORTED IN BOTH DIRECTIONS;
300 / LOCAL FLOW CONTROL IS FROM THE KEYBOARD ONLY.
301
302 / WHILE THE CONSOLE OUTPUT IS PAUSED BY <DC3>, THE BUFFER WILL FILL WITH OUTPUT
303 / CHARACTERS. WHEN THE USER RELEASES THE CONSOLE WITH <DC1>, THE BUFFER WILL
304 / RAPIDLY EMPTY (ASSUMING THE CONSOLE IS FASTER THAN THE REMOTE LINE). THIS
305 / ALLOWS THE USER TO PAUSE THE CONSOLE WITHOUT BACKING UP THE REMOTE LINE UP TO
306 / THE LIMITS OF BOTH LOCAL OUTPUT AND REMOTE INPUT BUFFERS.
307 \f/ 025 24-NOV-1987 NEW FEATURES AND CODE CLEANUP. CJL
308
309 / PROPER INTERRUPT SETUP FOR <^C> AND <^P>, ECHO STATE. ALL
310 / MESSAGES IN NEW FORMAT, (SOME NEW ONES HAVE BETTER CONTENT).
311 / ELIMINATED 'PRI6B' AND 'REM6B' ROUTINES. NEW AND IMPROVED INPUT
312 / SERVICE ERROR CODE MOVED TO PROPER PAGE. REWROTE CONNECT
313 / ROUTINES TO ALLOW NON-INTERRUPT BUFFERED I/O LATER. CREATED NEW
314 / VARIABLE 'ESCHAR' AND PARAMETER 'ESCAPE' TO SET DEFAULT ESCAPE
315 / CHARACTER. ESCAPE CHARACTER CAN BE CHANGED IN MEMORY AND WILL BE
316 / USED CORRECTLY BY ALL ROUTINES. ADDED 'ESCPRNT' ROUTINE TO
317 / HANDLE ALL CASES (INCLUDING NON-CONTROL CHARACTERS). DEFAULT
318 / ESCAPE PARAMETER VALUE COMPATIBLE WITH K08V2, BUT IS A USER
319 / PARAMETER, CONFIGURED AS OTHER PARAMETERS DEFINED IN EDIT 017.
320 / CREATED ESCAPE FUNCTION TABLE FOR EXPANSION LATER. NOW SUPPORTS
321 / ESCAPE C(LOSE) IN UPPER OR LOWER CASE, ESCAPE ESCAPE (SEND ONE
322 / ESCAPE CHARACTER). ALL BAD ESCAPE COMMANDS WILL ISSUE <BEL>
323 / CHARACTER TO WARN USER THAT COMMAND IS ILLEGAL AND OTHERWISE WAS
324 / IGNORED. CREATED NEW VARIABLE 'ECHOFLAG' TO ALLOW LOCAL ECHO IN
325 / CONNECT MODE.
326
327 / 024 19-NOV-1987 NEW FEATURES. CJL
328
329 / NEW STARTUP MESSAGES AND HELP METHOD VIA COMMAND. CPU TYPE
330 / IDENTIFICATION TO ALLOW FUTURE VERSIONS TO CHECK FOR QUIRKS AND
331 / MODEL DEPENDENCIES. THE DEFAULT PROMPT REFLECTS THE ACTUAL CPU
332 / TYPE (THUS "KERMIT-12>" ON PDP-12). VERSION, REVISION, AND DATE
333 / NOW EQUATED SYMBOLS.
334
335 / 023 18-NOV-1987 NEW CONSOLE I/O PACKAGE. CJL
336
337 / NEW CONSOLE I/O ROUTINES WITH DC1/DC3 SUPPORT FOR CONSOLE
338 / TERMINAL MESSAGES NOT ASSOCIATED WITH ANY REMOTE ACTIVITY (NOT TO
339 / BE USED DURING CONNECT MODE). USES FIELD ONE FOR MESSAGE TEXT TO
340 / ALLOW FOR MORE PROGRAM SPACE. THE MESSAGES ARE NOW GIVEN IN
341 / UPPER/LOWER SIXBIT FORMAT. SUPPORT FOR <^P> RESTART AND <^O> TO
342 / FLIP ECHO. UPPER-CASE CAN BE FORCED BY CHANGING A VARIABLE
343 / ('UPONLY').
344
345 / 022 17-NOV-1987 BUG FIX. CJL
346
347 / EXTRA-LONG INIT PACKETS CORRUPTING PROGRAM; NOW CHECKS FOR AND
348 / IGNORES EXTRA CAPABILITIES BEYOND 'CAPAS' BYTE.
349 \f/ 021 17-NOV-1987 CODE CLEANUP. CJL
350
351 / REWROTE TENTATIVE OUTPUT FILE LENGTH CODE FOR MORE CONSISTENCY.
352 / RENAMED "FINISH" COMMAND CORRECTLY (FORMERLY "BYE").
353
354 / FORMER CODE REGARDING THE TENTATIVE FILE MAXIMUM LENGTH WAS ACCEPTABLY
355 / ORGANIZED FOR ORIGINAL PS/8, OS/8 CONVENTIONS. WITH THE EVOLUTION OF THE
356 / OPERATING SYSTEM INTO OS/78 (VERSIONS 1-4) AND OS/278 (VERSIONS 1-2), THE
357 / ENTER OPERATION HAS BEEN CHANGED WITH DANGEROUS CONSEQUENCES.
358
359 / THE ORIGINAL DEFINITION OF THE LENGTH RETURNED BY ENTER IS THE ACTUAL LENGTH
360 / OF THE LARGEST EMPTY (IN TWO'S COMPLEMENT FORM). IF RECORD 7777 IS PART OF
361 / THE ACTUAL LARGEST EMPTY (FULL SIZE DEVICE AND THE LARGEST EMPTY IS LAST ON
362 / THE DEVICE), THEN THE LENGTH RETURNED IS ONE LESS (THIS IS A LONG STANDING
363 / BUG). SINCE THERE IS NO STRAIGHT-FORWARD WAY TO DETERMINE THIS, THE LENGTH IS
364 / ASSUMED TO BE CORRECT.
365
366 / TESTS WITH THE DECUS VERSION OF OS/278 (DM-101) REVEAL A DANGEROUS CHANGE:
367 / THE LENGTH RETURNED IS TWO LARGER THAN ACTUALLY EXISTS!
368
369 / TO COUNTERACT THIS, EDIT 010 INSERTED A DECREMENT OF TWO INTO THE LENGTH
370 / BEFORE PASSING IT BACK TO THE KERMIT FILE WRITING ROUTINE. THE FILE WRITING
371 / ROUTINE THEN ADDS ONE TO THE LENGTH TO CREATE A "DANGER COUNT", I.E., IN TWO'S
372 / COMPLEMENT NOTATION, THIS IS THE AMOUNT THAT WILL INDICATE FILE OVERFLOW
373 / SHOULD IT REACH ZERO.
374
375 / THIS HAS NOW BEEN REORGANIZED TO ALLOW THE ENTER ROUTINE TO SET THE DANGER
376 / COUNT DIRECTLY. OS/8 USERS MUST ALLOW FOR THE EXTRA ROOM (WHICH MUST BE
377 / PRESENT BUT WILL NOT BE USED), SINCE NO CHECK FOR SYSTEM VERSION WILL BE
378 / PERFORMED.
379
380 / 020 16-NOV-1987 NEW ROUTINES AND CODE CLEANUP. CJL
381
382 / REWROTE ENTIRE OUTPUT FILE PACK ROUTINE. NOW SUPPORTS
383 / ASCII/BINARY INTERNAL FILE MODE FOR LATER USE. USES OUTPUT
384 / BUFFER IN FIELD ONE (SAME DEFINITIONS AS INPUT BUFFER) TO ALLOW
385 / MORE PROGRAM SPACE. END OF FILE CONVENTION IN ASCII MODE NOW
386 / INCLUDES ENSURING <^Z> CHARACTER PACKED INTO FILE (OR NOT).
387 / REWROTE ENTIRE OUTPUT FILE CLOSE ROUTINE TO IMPLEMENT <^Z>
388 / SCHEME. ELIMINATED SEPARATE OUTPUT FILE INITIALIZE ROUTINE; USE
389 / SPECIAL ROUTINE CALL INSTEAD. FIXED PACKET WRITE BUG.
390
391 / 019 15-NOV-1987 NEW ROUTINES AND CODE CLEANUP. CJL
392
393 / FIXED UNPACK <^Z> BUG. REWROTE ENTIRE INPUT FILE UNPACK ROUTINE.
394 / NOW SUPPORTS ASCII/BINARY INTERNAL FILE MODE FOR LATER USE. USES
395 / INPUT BUFFER IN FIELD ONE TO ALLOW MORE PROGRAM SPACE. BUFFER
396 / FIELD DEFINED VIA SYMBOLS TO ALLOW CHANGES IN THE FUTURE. END OF
397 / FILE CONVENTION IN ASCII MODE NOW INCLUDES SENDING <^Z> CHARACTER
398 / OR NOT. ELIMINATED SEPARATE INPUT FILE INITIALIZE ROUTINE; USE
399 / SPECIAL ROUTINE CALL INSTEAD.
400
401 / 018 09-NOV-1987 BUG FIX AND CODE CLEANUP. CJL
402
403 / FIXED RECEIVE BUG; NOW ALLOW DEV: ON RECEIVE.
404 \f/ 017 05-NOV-1987 NEW FEATURES. CJL
405
406 / CONDITIONAL ASSEMBLY PARAMETERS ADDED FOR MACHINE TYPE (PDP-8,
407 / DECMATE I, DECMATE II/III/III+), REMOTE LINE AND LOCAL TERMINAL
408 / INTERFACE DEFINITIONS.
409
410 / 016 05-NOV-1987 CODE CLEANUP. CJL
411
412 / OPTIMIZATION OF CODE, LITERALS, CONSTANTS.
413
414 / 015 04-NOV-1987 BUG FIX. CJL
415
416 / INPUT SERVICE ROUTINE ERROR DOES JMP INSTEAD OF JMS WHEN CALLING
417 / COMMON ERROR HANDLER.
418
419 / 014 02-NOV-1987 SOURCE FILE CLEANUP. CJL
420
421 / SOURCE FILE COSMETICALLY CLEANED UP AND RENAMED TO K12MIT.PAL
422 / WHICH CONFORMS WITH CUCCA NAMING CONVENTION. NO ACTUAL BINARY
423 / CODE CHANGES BEYOND K08V2. THIS EDIT HISTORY ADDED. ENTRIES
424 / PRIOR TO 014 TRANSCRIBED BY CJL.
425
426 / SINCE THE PDP-12 (AND OTHER 12-BIT DEC MACHINES) IS THE INTENDED ENVIRONMENT
427 / FOR THIS PROGRAM, IT IS NOW KNOWN AS KERMIT-12.
428
429 / ASSEMBLING THE SOURCE FILE PRODUCES BINARY IDENTICAL TO K08V2.PA CONFIRMING
430 / THAT SOURCE CLEANUP DOESN'T DAMAGE THE CODING (K08V2 IS NOW OBSOLETE).
431
432 / 013 01-OCT-1987 CHANGE TO VERSION 2.0. R. SCHLERF (RICH)
433
434 / CHANGED 'RKIOT'/'RTIOT' TO 43/44 REMOTE LINE IOT (LOCAL
435 / PREFERENCE). CHANGED 'ESCAPE' CHARACTER TO ^] ('CONX1') FOR
436 / GENERIC CONFORMITY. ADDED VERSION/COMMAND BANNER AT STARTUP FOR
437 / MINI-HELP. INCORPORATED K278 CHANGES 003-006, 009-010 (NO
438 / INTERRUPTS). DELETED 'ERRMSG.' NOW USES 'STXERR' AT 'CLOOP9'+2
439 / FOR PROGRAM SPACE. TO CONFORM TO GENERIC KERMIT, "BACK ON PDP8"
440 / MESSAGE DELETED AND REPLACED WITH BEEP <^G>. MESSAGE "SENDING
441 / FILE XXXXXX.XX CREATED ON DD-MM-YY" REDUCED TO "SENDING FILE
442 / XXXXXX.XX" TO CONFORM TO GENERIC KERMIT. PARITY BIT IS IGNORED
443 / ON BOTH REMOTE AND TTY LINES. OUTPUT PARITY IS SET TO SPACE.
444
445 / PROGRAM RENAMED TO K08V2.PA AND MADE AVAILABLE TO CUCCA BY:
446
447 / RICHARD SCHLERF (RICH)
448 / AMERICAN CYANAMID COMPANY
449 / MEDICAL RESEARCH DIVISION
450 / LEDERLE LABORATORIES
451 / BUILDING 190 ROOM 115H
452 / PEARL RIVER, NEW YORK 10965
453 / (914) 732-2186 (09:00 TO 16:00)
454
455 / SINCE PRIMARY APPLICATION OF K08V2 IS FOR PDP-8 USAGE, THE MODIFICATIONS NOT
456 / SPECIFIC TO DECMATE II/III FROM K278 WERE MOVED TO THE K08MIT VERSION. FUTURE
457 / VERSIONS WILL INCORPORATE THE DECMATE FEATURES AND THUS OBSOLETE ALL OTHER
458 / VERSIONS AT THAT TIME.
459 \f/ 012 04-JUN-1986 PROGRAM FIX. SEPP STADELMANN (SSTA)
460
461 / RE-INITIALIZE VIA 'V30ST' AS ROM SETUP CLEARS COMPOSETABLE, ETC.
462
463 / 04-JUN-1986 VERSION RELEASED TO CUCCA BY MARTYN HEMMINGS (DEC GERMANY) AND
464 / SEPP STADELMANN (DEC SWITZERLAND) OF:
465
466 / DIGITAL EQUIPMENT CORPORATION (DEC)
467 / 146 MAIN STREET
468 / MAYNARD, MASS 01754
469 / (617) 897-5111
470
471 / CUCCA RENAMED FILES (KERMIT.PA AND KERCOM.PA) TO K278.PA AND K278COM.PA (WHICH
472 / DOESN'T REALLY CONFORM TO THE NAMING CONVENTION).
473
474 / CUCCA VERSION OF K278.PA FOUND TO BE DEFECTIVE. FILE REPAIRED BY:
475
476 / CHARLES LASNER (CJL)
477 / CLA SYSTEMS
478 / 72-55 METROPOLITAN AVENUE
479 / MIDDLE VILLAGE, NEW YORK 11379-2107
480 / (718) 894-6499
481
482 / REPAIRED FILE (K278.PA) NOW AVAILABLE AT CUCCA.
483
484 / PROGRAM IS NOW THE DECMATE II/III (III-PLUS) KERMIT ONLY. HOOKS WERE LEFT IN
485 / FOR PDP-8 VERSION, BUT NOT IMPLEMENTED. K278 DOES WORK WITH ADDITIONAL
486 / IMPLEMENTATIONS OF KERMIT, BUT RECEIVE COMMAND DOES NOT WORK. PROGRAM YIELDS
487 / RECOVERABLE SYSTEM ERROR/HALT WHEN EXITING TO FLOPPY-BASED DECMATE II SYSTEM.
488 / CONNECT MODE IS VT200 8-BIT WHICH CONFUSES EVEN/ODD PARITY SYSTEMS. K278 DOES
489 / NOT SUPPORT SETUP KEY OF DECMATE, BUT IMPLEMENTS SETUP COMMAND.
490
491 / 011 04-JUN-1986 NEW FEATURES. SSTA
492
493 / 'PRQ3' CODE CONDITIONALS. ROM SETUP COMMAND IMPLEMENTED FOR DMII/III.
494 / AUTOMATIC UPPERCASE SELECT ON RETURN FROM CONNECT.
495
496 / 010 13-MAR-1986 BUG FIX. MARTYN HEMMINGS (MART)
497
498 / FULL DISK HANDLED WELL.
499
500 / 009 13-MAR-1986 BUG FIX. MART
501
502 / CLEAN UP BREAK AND GET.
503 \f/ 008 12-MAR-1986 BUG FIX. MART
504
505 / CLEAR INPUT CHARACTERS FROM COMMUNICATIONS PORT WHEN IN IDLE
506 / LOOP.
507
508 / 007 11-MAR-1986 NEW FEATURES AND BUG FIX. MARTYN HEMMINGS AND
509 / SSEP STADELMANN
510 / (MART+SSTA)
511
512 / INTERRUPT DRIVEN AND BUG FIX.
513
514 / 006 10-MAR-1986 NEW FEATURE. MART+SSTA
515
516 / DEVICE PARSE ON GET.
517
518 / 005 10-MAR-1986 BUG FIX. MART+SSTA
519
520 / NO DATE IN FILE WITH <^Z> INTACT.
521
522 / 004 10-MAR-1986 NEW FEATURES AND BUG FIX. MART+SSTA
523
524 / MAXIMUM RECEIVE BUFFER FIXUP ('RTERMI'), 15 SECOND TIME-OUT
525 / DURING CONNECT.
526
527 / 003 10-MAR-1986 BUG FIX. SSTA
528
529 / TWO PAGE HANDLER FIX.
530
531 / K08MIT.PAL COPIED TO DEC ENGINEERING NETWORK (NODE LSMVAX::) ULTIMATELY TO
532 / EUROPE (NODE VIRGIN::) WHERE PROGRAM BECAME KERMIT.PAL AND KERCOM.PAL.
533
534 / KERMIT.PAL AND KERCOM.PAL ARE TWO SOURCE FILES ASSEMBLED TOGETHER TO PRODUCE
535 / THE RUNNING KERMIT-8. *THEY ARE FOR THE DECMATE II/III/III-PLUS ONLY.*
536
537 / 002 18-JUL-1985 ORIGINAL RELEASE. RANDY HIPPE
538
539 / 18-JUL-1985 VERSION RELEASED TO CUCCA BY JERRY SANDS AND RANDY HIPPE OF:
540
541 / BUREAU OF ENGRAVING, INC.
542 / 3311 BROADWAY N.E.
543 / MINNEAPOLIS, MN 55413
544 / (612) 623-0900 X218
545
546 / CUCCA RENAMED FILE (KER8.PAL) TO K08MIT.PAL WHICH CONFORMS TO NAMING
547 / CONVENTION OF KERMIT FILES.
548
549 / K08MIT SUPPORTS CONNECT, BYE (REALLY FIN), EXIT, SEND, GET, RECEIVE ONLY.
550
551 / PROGRAM PRONE TO GETTING "CONFUSED" AND OUTPUTS FILE DATE ATTRIBUTE BOTH AS
552 / 'CAPAS' BYTE FEATURE AND ASCII TEXT INSERTED INTO CONTENTS OF FILE AHEAD OF
553 / FILE DATA. COMMAND PROCESSOR ACCEPTS UPPER-CASE COMPLETE COMMANDS ONLY. <^C>
554 / ABORT FEATURE TAKES VERY LONG TIME TO ACT (IF AT ALL!). MANY KERMITS WILL NOT
555 / WORK WITH K08MIT; HOWEVER, K08MIT WAS TESTED SUCCESSFULLY WITH KERMIT-20.
556
557 / 001 30-JUL-1984 FIRST VERSION (KER8.PAL). JERRY SANDS
558 \f/ HARDWARE HINTS AND KINKS.
559
560
561 / KERMIT-12 REQUIRES THE FOLLOWING STANDARD OS/8 FAMILY CONFIGURATION:
562
563 / PDP-8 FAMILY MEMBER WITH AT LEAST 8K MEMORY.
564
565 / OS/8 SYSTEM DEVICE (WITH OS/8 FAMILY OPERATING SYSTEM RESIDENT).
566
567 / KL8-COMPATIBLE CONSOLE INTERFACE.
568
569 / 7/8-BIT ASCII EXTERNAL CONSOLE TERMINAL DEVICE (TTY:).
570
571 / KL8-COMPATIBLE REMOTE INTERFACE TO OTHER KERMIT.
572
573 / NOTE: ASSEMBLY PARAMETERS OF KERMIT-12 ALLOW FOR LOCAL KERMIT CONTROLLING
574 / TERMINALS TO BE OTHER THAN THE PRIMARY OS/8 CONSOLE DEVICE. THE ACTUAL
575 / HARDWARE MUST STILL CONFORM TO THE SAME REQUIREMENTS (THE DEVICE CODES WOULD
576 / THEN BE USER-SPECIFIED AND DIFFER FROM THE STANDARD 03/04) AS THE STANDARD
577 / CONSOLE INTERFACE AND TERMINAL.
578
579 / SPECIAL DECMATE CONSIDERATIONS:
580
581 / DECMATE USAGE IS USUALLY OBTAINED BY ASSEMBLING FOR THE STANDARD CONSOLE
582 / DEVICE (03/04), AS THE BUILT-IN FIRMWARE/SLUSHWARE OF THE DECMATES IS
583 / SUFFICIENTLY COMPATIBLE WITH THE PDP-8 HARDWARE FOR KERMIT-12'S REQUIREMENTS.
584 / (THE ONLY OTHER ACCEPTABLE CONSOLE DEVICE ON THE DECMATE IS THE PRINTER PORT.)
585
586 / DECMATE REMOTE COMMUNICATIONS PORTS ARE *RADICALLY* DIFFERENT FROM
587 / KL8-COMPATIBLE PORTS. THESE ARE HANDLED AUTOMATICALLY BY ONCE-ONLY CODE WHICH
588 / DETECTS THE USAGE OF KERMIT-12 ON THE SPECIFIC DECMATE SYSTEM, AND
589 / SELF-CONFIGURATION AS APPROPRIATE. THERE IS ONE EXCEPTION TO THIS, NAMELY IF
590 / THE COMMUNICATIONS PORT CODE IS ASSEMBLED FOR THE PRINTER PORT (32/33), THEN
591 / THE PRINTER PORT, *NOT* THE COMMUNICATIONS PORT WILL BE USED. THE STANDARD
592 / ASSEMBLY OF KERMIT-12 IS FOR A PDP-8 WITH DEVICE 40/41 COMMUNICATIONS PORT.
593 / THIS DESIGNATED VERSION WILL SELF-CONFIGURE WHEN EXECUTED ON A DECMATE.
594 \f/ CONFIGURATION RESTRICTIONS:
595
596 / WHEN INTERRUPTS ARE SUPPORTED AGAIN, DEVICES SUCH AS THE TD-8/E WON'T WORK.
597 / THE NON-INTERRUPT VERSION SHOULD WORK TO 19200 BAUD ON THE PDP-8/E CPU, SO
598 / THIS SHOULD NOT BE A PROBLEM. INTERRUPT-DRIVEN VERSIONS OF KERMIT-12 MUST BE
599 / RUN ONLY ON SYSTEMS WHERE *ALL* INTENDED DEVICES CAN HAVE THEIR HANDLERS
600 / INTERRUPTED BY THE CONSOLE AND REMOTE LINE INTERRUPT HANDLERS. WHEN IN DOUBT,
601 / THE NON-INTERRUPT VERSION MUST BE USED (CURRENTLY THE ONLY VERSION).
602
603 / IF FLOW CONTROL IS DISABLED (DUE TO XON/XOFF BEING UNAVAILABLE) THEN THE
604 / CONSOLE BAUD RATE MUST MEET OR EXCEED THE REMOTE LINE RATE. THE USER MUST
605 / TAKE MINIMAL CARE NOT TO OVERLOAD THE INTERNAL BUFFERS OF KERMIT-12, AS THIS
606 / WILL YIELD THE ERROR MESSAGE: KEYBOARD INPUT ERROR!
607
608 / THIS IS NOT LIKELY TO OCCUR UNLESS ONE "PLAYS" WITH A KEYBOARD WHICH CAN
609 / GENERATE NUMEROUS ESCAPE SEQUENCES AS THE BUFFERS ARE QUITE ADEQUATE FOR ALL
610 / REASONABLE TERMINAL APPLICATIONS. SIMILARLY, IF THE REMOTE LINE DOES NOT OBEY
611 / XON/XOFF PROTOCOL (WHILE KERMIT-12 HAS IT ENABLED), THEN INTERNAL BUFFER
612 / OVERFLOW WILL YIELD THE ERROR MESSAGE: REMOTE LINE INPUT ERROR!
613
614 / THESE ERRORS ARE EXTREMELY UNLIKELY AND CAN ONLY BE CREATED BY MISUSE OF FLOW
615 / CONTROL (THE ONLY EXCEPTION TO THIS IS THE ATTEMPT TO USE KERMIT-12 WITH THE
616 / CONSOLE BAUD RATE SLOWER THAN THE REMOTE LINE BAUD RATE WITH FLOW CONTROL
617 / DISABLED). IF FLOW CONTROL IS ENABLED AND OBEYED THEN THE BUFFERING OF REMOTE
618 / LINE INPUT WILL OCCUR WHILE SHORT PAUSES OCCUR ON THE CONSOLE (ASSUMING THE
619 / USER FREEZES/UNFREEZES THE DISPLAY OFTEN AND THE CONSOLE DISPLAY BAUD RATE IS
620 / FASTER THAN THE REMOTE LINE BAUD RATE) WITH PRACTICALLY NO REMOTE LINE DELAY.
621
622 / FLOW CONTROL IS NOT YET SUPPORTED DURING KERMIT TRANSFERS. SINCE KERMIT-12
623 / DOES NOT SUPPORT SLIDING WINDOWS, KERMIT-12 WILL NEVER GENERATE OUTGOING
624 / XON/XOFF SEQUENCES. FUTURE REVISIONS WILL SUPPORT INCOMING XON/XOFF FROM THE
625 / REMOTE KERMIT. XON/XOFF PROTOCOL DURING CONNECT MODE IS COMPLETELY AVAILABLE
626 / AT THE USER'S OPTION.
627
628 / CONSOLE TERMINALS ARE REQUIRED TO SUPPORT "GLASS TTY:" FEATURES, I.E. THE
629 / PRINTING ASCII CHARACTER SET (LOWER-CASE DESIRABLE) AND THE CONTROL CHARACTERS
630 / <CR>, <LF>, AND <BEL> (THE LAST FOR VARIOUS AUDIBLE REPORTS ONLY). TERMINALS
631 / LACKING LOWER-CASE SUPPORT SHOULD "FOLD" LOWER-CASE CHARACTERS TO UPPER-CASE
632 / AUTOMATICALLY. TERMINALS SUCH AS THE VT05 CAN HAVE THE KEYBOARD LOWER-CASE
633 / ENABLED, AS KERMIT-12 SUPPORTS OPTIONAL OUTPUT FOLDING. THE UPPER-CASE ONLY
634 / OPTION SHOULD BE ENABLED FOR TERMINALS WHICH IGNORE LOWER-CASE INPUT FROM THE
635 / HOST, AS KERMIT-12 GENERATES NUMEROUS LOWER-CASE MESSAGE CHARACTERS (WHICH
636 / BECOME UPPER-CASE IF THIS OPTION IS SET). THE <BS> CHARACTER IS REQUIRED FOR
637 / VISUAL RUBOUT (<BS> <SPACE> <BS>) ONLY. FUTURE VERSIONS WILL SUPPORT
638 / HARD-COPY BACKSPACE TO REMOVE THIS REQUIREMENT. ALL TERMINAL FEATURES (SUCH
639 / AS ACTUAL VT-100 FUNCTIONALITY) ARE FREELY PASSED TO THE HOST DURING CONNECT
640 / MODE; THE ONLY CHARACTER ACTUALLY RESERVED IS THE ESCAPE CHARACTER WHICH WILL
641 / BE TREATED AS A SEVEN-BIT CHARACTER ONLY. IF THE USER PRESSES THE ESCAPE
642 / CHARACTER TWICE, THEN THE SEVEN-BIT REPRESENTATION OF THE CHARACTER IS SENT
643 / ONCE; THERE IS NO WAY TO SEND THE ESCAPE CHARACTER WITH THE HIGH-BIT SET.
644 / SINCE THE ESCAPE CHARACTER ITSELF CAN BE SET TO ALMOST ANY SEVEN-BIT VALUE,
645 / THIS SHOULD NOT BE A SERIOUS LIMITATION. TERMINALS THAT DON'T "BEEP" WHEN THE
646 / <BEL> CHARACTER IS SENT SHOULD NOT OUTPUT A PRINTABLE RENDITION OF THE <^G>
647 / CHARACTER, AS THIS WOULD DISRUPT THE TERMINAL OUTPUT AND INTERNAL COLUMN COUNT
648 / DURING VARIOUS MESSAGE SEQUENCES, ETC.
649 \f/ KL-8/E INTERFACES SHOULD BE SETUP WITH THE FOLLOWING STANDARD SETTINGS:
650
651 / 1 STOP BIT ABOVE 110 BAUD WITH 8 BITS DATA.
652
653 / FUNCTIONAL BAUD RATES INCLUDE 110, 150, 300, 600, 1200, 2400, 4800, 9600,
654 / 19200, 38400 AND 76800. 2400 BAUD REQUIRES A REVISION "B" OR BETTER M8650
655 / MODULE (IF ONE USES DEC'S DOCUMENTATION OF AVAILABLE SPLIT-LUG OPTIONS).
656 / ACTUAL BAUD RATES UP TO APPROXIMATELY 100 KBAUD SHOULD WORK WHEN KERMIT-12
657 / BECOMES INTERRUPT-DRIVEN. RATES OTHER THAN 110 BAUD REQUIRE A 19.6608 MHZ
658 / BAUD-RATE OSCILLATOR.
659
660 / THE BAUD RATES STATED ABOVE ARE ACTUALLY AVAILABLE ON THE KL-8/E, BUT REQUIRE
661 / A SINGLE SOLDER JUMPER TO IMPLEMENT THE PROPER BAUD RATE ABOVE 2400 BAUD.
662 / CHANGING BAUD-RATE GENERATOR CRYSTALS WILL PRODUCE OTHER RATES AS NECESSARY.
663 / (SEND INQUIRIES TO CLA SYSTEMS FOR INFORMATION REGARDING KL-8/E MODIFICATIONS
664 / INCLUDING UPGRADED BAUD-RATE OSCILLATORS, ETC.) KERMIT-12 HAS BEEN TESTED TO
665 / 9600 BAUD AND SHOULD WORK TO 19200 BAUD (AS OF THE CURRENT VERSION).
666
667
668 / KL8-J/A INTERFACES SHOULD BE SETUP WITH THE FOLLOWING STANDARD SETTINGS:
669
670 / 1 STOP BIT ABOVE 110 BAUD WITH 8 BITS DATA NO PARITY.
671
672 / FUTURE VERSIONS OF KERMIT-12 WILL SUPPORT VARIOUS SOFTWARE-GENERATED PARITY
673 / OPTIONS. THE FRAMING AND OVERRUN ERRORS CAN BE ENABLED AND WILL EVENTUALLY BE
674 / SUPPORTED (BUT THE PARITY GENERATOR SHOULD BE DISABLED TO PREVENT INTERACTION
675 / WITH THE SOFTWARE USE OF PARITY GENERATION/DETECTION).
676
677 / ALL BAUD RATES ARE SUPPORTABLE:
678
679 / 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.
680
681 / 19200 BAUD IS ACHIEVED BY CUTTING JUMPER "W2" AND ADDING JUMPER "W5" AND THEN
682 / SETTING THE BOARD FOR WHAT IS NORMALLY 9600 BAUD. A WESTERN DIGITAL TR-1602-B
683 / OR EQUIVALENT UART IS REQUIRED TO SUPPORT 19200 BAUD; MOST OF THE RECENT
684 / PRODUCTION DEC M8655 BOARDS USE THE SMC COMM 2017 UART WHICH MEETS OR EXCEEDS
685 / THIS REQUIREMENT. EARLY M8655 BOARDS USE GI UARTS IN CERAMIC PACKAGES WHICH
686 / *CANNOT* BE USED AT 19200 BAUD (MANY ARE FLAKY AT 9600 BAUD!).
687
688 / RECEIVE BAUD RATE SHOULD BE IDENTICAL TO TRANSMIT BAUD RATE. (DO NOT SET THE
689 / RECEIVE=150 BAUD SWITCH!)
690 \f/ OTHER INTERFACES:
691
692 / DKC-8/A (8/A OPTION BOARD #1) INTERFACES SHOULD BE SETUP AS PER THE KL8-J/A
693 / SPECIFICATIONS INCLUDING THE REQUIREMENTS OF THE UART. SOME DEC DOCUMENTATION
694 / INDICATED A PROHIBITION ON THE USE OF 19200 BAUD, BUT THIS IS OBVIATED BY THE
695 / USE OF THE SAME UARTS AS IN THE KL8-J/A.
696
697 / EARLIER DEVICES SUCH AS PT08, DP-12, KL-8/F OR DC02 (CHANNEL ZERO ONLY) SHOULD
698 / WORK CORRECTLY AS FACTORY WIRED (MOST OF THESE DEVICES DO NOT SUPPORT OPTIONS
699 / KERMIT-12 WOULD REQUIRE TO BE DISABLED ANYWAY. THESE INCLUDE PARITY
700 / GENERATION, FRAMING ERROR DETECTION, ETC.). TO UTILIZE THESE DEVICES, THE
701 / ASSEMBLY PARAMETERS FOR USER DEVICES AND THEIR RESPECTIVE DEVICE CODE VALUES
702 / SHOULD BE GIVEN DURING ASSEMBLY (SEE ASSEMBLY INSTRUCTIONS). PROPER DEVICE
703 / CODE VALUES MUST BE OBTAINED FOR THE SELECTED INTERFACE, AS THERE ARE MANY
704 / ACTUAL POSSIBILITIES. (DP-12 DEVICES ARE GENERALLY DEVICE 40/41; PT08/DC02
705 / INTERFACES ARE GENERALLY DEVICE 11/12, ETC.)
706 \f/ ASSEMBLY INSTRUCTIONS.
707
708 / KERMIT-12 CAN BE ASSEMBLED BY EITHER OF TWO METHODS:
709
710
711 / P?S/8 METHOD:
712
713 / ASSUMING THE EXTENDED-LENGTH FILE KERM12 IS THE SOURCE FILE, THE FOLLOWING
714 / COMMAND WILL PRODUCE A FULLY ORNAMENTED LISTING:
715
716 / .PAL KB1,KB2,KB3,KB4<KERM12(ACEJLMNPQSX8)
717
718 / OPTION SWITCH BREAKDOWN:
719
720 / /A ALL SYMBOLS IN SYMBOL PRINTOUT.
721
722 / /C OPTIMIZE CORE DURING ASSEMBLY FOR MORE SYMBOLS, LESS BUFFERS.
723 / THIS OPTION SHOULD BE DELETED IF MORE THAN 8K IS AVAILABLE FOR
724 / ASSEMBLY.
725
726 / /E FORGET LITERAL BOUNDARIES WHEN LEAVING THE CURRENT PAGE.
727
728 / /J *DO NOT* TERMINATE TEXT STRINGS WITH EXTRA ZERO WORD.
729
730 / /L PERFORM SECOND-PASS LISTING.
731
732 / /M CHAIN TO MAP FOR BITMAP OUTPUT AT END OF ASSEMBLY.
733
734 / /N ENABLE NEATNESS ADORNMENTS TO LISTING OUTPUT.
735
736 / /P ENABLE PRINTER-ORIENTED (WIDE MODE) LISTING OUTPUT.
737
738 / /Q ENABLE LITERALS ONLY, GENERATED LINKS ARE ERRORS.
739
740 / /S ENABLE SYMBOL TABLE PRINTOUT.
741
742 / /X ENABLE CROSS-REFERENCE OUTPUT AT END OF ASSEMBLY.
743
744 / /8 ENABLE FULL SYMBOL TABLE INCLUDING LINC MODE CROSS ASSEMBLY.
745
746 / THE NUMBER OF BINARY FILES REQUIRED (KB1, KB2, KB3, ETC.) IS TO BE DETERMINED
747 / AT ASSEMBLY TIME, AS KERMIT-12 WILL TEND TO GROW LARGER AS FEATURES ARE ADDED.
748
749 / P?S/8 PAL IS THE PREFERRED METHOD OF ASSEMBLING K12MIT DURING DEVELOPMENT DUE
750 / TO SUPERIOR ERROR DIAGNOSTICS AND OVERALL SPEED. K12MIT COULD GROW TO A SIZE
751 / BEYOND THE CAPABILITIES OF OS/8 CREF. THIS LIMITATION CANNOT APPLY TO THE
752 / P?S/8 DEVELOPMENT ENVIRONMENT.
753
754 / P?S/8 PAL CAN PRODUCE A LISTING OF K12MIT, BUT THE BINARY FILES CREATED BY THE
755 / ASSEMBLY MUST BE TRANSFERRED TO AN OS/8 ENVIRONMENT FOR USE, SINCE K12MIT (AS
756 / SPECIFICALLY WRITTEN) IS FOR THE OS/8 FAMILY OF SYSTEMS ONLY.
757
758 / NOTE: P?S/8 IS *NOT* A DEC PRODUCT; IT IS SOLD COMMERCIALLY AND IS AVAILABLE
759 / FREE OF CHARGE (EXCEPT FOR MEDIA HANDLING CHARGES, ETC.) *ONLY* TO QUALIFIED
760 / INSTITUTIONS. CONTACT CJL FOR ADDITIONAL INFORMATION ON ACQUIRING P?S/8.
761 \f/ OS/8 FAMILY OF SYSTEMS METHOD:
762
763 / K12MIT.PA CAN BE ASSEMBLED WITH PAL8 VERSION B0 WHICH IS AVAILABLE FROM DECUS
764 / AS PART OF THE OS/278 RELEASE. PAL8 VERSION B0 WILL RUN ON ANY OS/8 FAMILY
765 / SYSTEM, AS IT HAS NO HARDWARE DEPENDENCIES BEYOND THE ORIGINAL PDP-8
766 / REQUIREMENT (NO BSW OR IAC ROTATE OR CAF OR R3L INSTRUCTIONS AS WAS INTENDED).
767 / THIS ALSO APPLIES TO CREF VERSION B0 WHICH IS REQUIRED WHEN A CROSS-REFERENCE
768 / IS REQUESTED. PAL8 VERSION B0 AND CREF VERSION B0 ARE AVAILABLE AS PART OF
769 / THE KERMIT-12 DISTRIBUTION AS K12PL8.ENC AND K12CRF.ENC RESPECTIVELY. SEE THE
770 / DOCUMENTATION OF K12DEC FOR INFORMATION ON PRODUCING PAL8.SV AND CREF.SV FROM
771 / THESE ENCODED FILES.
772
773 / ASSUMING CCL IS ENABLED, THE FOLLOWING COMMAND WILL PRODUCE A BINARY AND FULLY
774 / ORNAMENTED LISTING:
775
776 / .PAL DEV:K12MIT.BN,DEV:K12MIT.LS,DEV:KSCR.TM<DEV:PARAM.PA,DEV:K12MIT.PA(CEFMW)
777
778 / DEV: IS THE APPLICABLE DEVICE WHERE THE FILES RESIDE. STANDARD EXTENSIONS
779 / ARE ASSUMED (.BN FOR BINARY, .LS FOR LISTING, .PA FOR PAL SOURCE). THE
780 / KSCR.TM TEMPORARY OUTPUT FILE SPECIFICATION IS OPTIONAL, BUT IS DEFAULTED TO
781 / SYS:CREFLS.TM IF NOT EXPLICITLY GIVEN. MANY SYSTEM DEVICES ARE TOO SMALL TO
782 / SUPPORT THIS TEMPORARY FILE, THUS THE FILE MAY BE DIRECTED TO ANOTHER
783 / AVAILABLE DEVICE WITH SUFFICIENT SPACE.
784
785 / THE PARAM.PA FILE IS OPTIONAL AND USED TO PASS SHORT USER PARAMETERS, ETC. TO
786 / THE ASSEMBLY.
787
788 / OPTION SWITCH BREAKDOWN:
789
790 / /C CHAIN TO CREF.SV TO PRODUCE A CROSS-REFERENCED LISTING FILE.
791
792 / /E GENERATED LINKS ARE ERRORS.
793
794 / /F *DO NOT* TERMINATE TEXT STRINGS WITH EXTRA ZERO WORD.
795
796 / /M USE MAMMOTH SYMBOL TABLE OPTION FOR CREF.
797
798 / /W FORGET LITERAL BOUNDARIES WHEN LEAVING THE CURRENT PAGE.
799
800 / LOADING INSTRUCTIONS:
801
802 / .LOAD DEV:K12CLR,K12MIT.BN THIS LOADS THE BINARY CLEAR AND KERMIT
803 / .SAVE DEV K12MIT.SV=1 THIS SAVES THE CORE IMAGE
804
805 / THE JOB STATUS WORD (=1) INDICATED THAT K12MIT.SV LOADS INTO 10000-11777, BUT
806 / SHOULD NOT BE SAVED/RESTORED WHEN THE USR IS LOADED OVER THIS AREA OR
807 / DISMISSED (THE USR IS ACTUALLY NEVER DISMISSED IN NORMAL K12MIT OPERATION).
808 / OTHER BITS MAY BE SET AT THE USER'S OPTION, BUT ARE UNNECESSARY; THE BIT
809 / INDICATED SERVES ONLY TO REDUCE SYSTEM OVERHEAD REGARDING THE DISPOSITION OF
810 / 10000-11777. THE BINARY FILE K12CLR.BN (CREATED BY ASSEMBLING K12CLR.PA)
811 / LOADS ZEROES INTO ALL OF MEMORY TO CREATE A "CLEAN" CORE IMAGE FILE, WHICH
812 / MAKES THE ENCODED BINARY FILE SMALLER DUE TO REPEAT COMPRESSION.
813 \f/ PASSING SHORT PARAMETER FILES.
814
815 / WHEN INSERTING A SHORT USER MODIFICATION FILE IN THE INPUT STREAM (PARAM.PAL)
816 / THE FOLLOWING SHOULD BE NOTED:
817
818 / ALWAYS PUT THE SHORT PARAMETER FILE (CONTAINING EQUATED SYMBOLS SUCH AS
819 / USER=1, ETC.) IN FRONT OF K12MIT.PAL.
820
821 / IF TTY: IS USED FOR DIRECT TYPE-IN OF THESE PARAMETERS, THE INFORMATION NEED
822 / ONLY BE TYPED ENDING WITH <^Z> DURING PASS 1. SUBSEQUENT PASSES REQUIRE THE
823 / ENDING <^Z> ONLY. IF THIS METHOD IS USED, A LISTING WITHOUT THE USER INPUT
824 / WHICH DID THE CUSTOMIZING OF KERMIT-12 CAN BE CREATED. NOTE: IF BINARY IS
825 / GENERATED BY THE CONTENTS OF THE PARAMETER FILE (SUCH AS USE OF THE LOCAL TEXT
826 / MESSAGE, ETC.), THE INFORMATION MUST BE TYPED IN DURING PASS 2. THE PASS 3
827 / LISTING MAY CONTAIN THE INFORMATION IF SO DESIRED, REQUIRING A REPETITION OF
828 / THE INPUT. PASS 1 INPUT OF THE INFORMATION IS EFFECTIVELY IGNORED, AS NO
829 / DEFINITIONS ARE CREATED ('LCLMSG' IS DEFINED ELSEWHERE, ETC.).
830
831 / EXPERIENCED PDP-8 USERS NEW TO PAL8 VERSION B0 TAKE SPECIAL NOTICE:
832
833 / DUE TO HARDWARE LIMITATIONS OF THE DECMATES, THE KEYBOARD FLAG WILL BE CLEARED
834 / DURING PDP-8 PAL8 B0 OPERATION. THE KL8E TTY: HANDLER WILL NO LONGER BE ABLE
835 / TO BUFFER <^Z> DURING THE ASSEMBLY; YOU MUST WAIT UNTIL THE HANDLER ACCESSES
836 / THE KEYBOARD ON EACH PASS *THEN* PRESS <^Z> TO CONTINUE THE ASSEMBLY.
837
838
839 / CREATING A CUSTOM MESSAGE FROM THE PARAMETER FILE.
840
841 / IF SO DESIRED, A CUSTOM LOCAL HEADER MESSAGE MAY BE ADDED BY INSERTING THE
842 / FOLLOWING INTO THE PARAMETER FILE:
843
844 / BUFFLD= 10 /THESE PROBABLY
845 / FILBUFF=2000 /WON'T CHANGE!
846
847 / GENMSG= 0 /DON'T GENERATE STANDARD (NULL) MESSAGE
848 / UMSG= 0 /DON'T GENERATE STANDARD (DUMMY) USER MESSAGE
849
850 / FIELD BUFFLD%10 /FIELD FOR TEXT MESSAGE
851
852 / *FILBUFFER /LOCAL MESSAGE LOADS THERE
853
854 /LCLMSG,TEXT "%^I^NSERT ^L^OCAL ^M^ESSAGE ^H^ERE!%"
855
856 / ZBLOCK LCLMSG+40-. /ZERO REST OF MESSAGE AREA
857
858 / TEXT IS IN UPPER/LOWER-CASE SIXBIT WITH '^' MEANING SHIFT CASE (INITIALLY
859 / LOWER-CASE) AND '%' MEANING <CR>, <LF>.
860 \f/ OTHER METHODS:
861
862 / KERMIT-12 *CANNOT* BE ASSEMBLED BY PAL10 (LAST KNOWN VERSION OF PDP-8
863 / CROSS-ASSEMBLER FOR TOPS10 (142)) BECAUSE IT LACKS CERTAIN FEATURES:
864
865 / DOES NOT SUPPORT 'RELOC' PSEUDO-OP.
866
867 / DOES NOT SUPPORT PAGE ZERO REDEFINE (CAUSES "Z" ERROR ON SOURCE FILES WHICH
868 / DON'T HAVE ERRORS WHEN ASSEMBLED BY EITHER P?S/8 PAL OR OS/8 PAL8).
869
870 / INCORRECTLY HANDLES 'ZBLOCK' PSEUDO-OP (LEADS TO "Q" ERROR ON SOURCE FILES
871 / WHICH DON'T HAVE ERRORS WHEN ASSEMBLED BY EITHER P?S/8 PAL OR OS/8 PAL8).
872
873 / DOES NOT SUPPORT LITERAL "FORGETTING" (P?S/8 PAL OPTION /E OR OS/8 PAL8 OPTION
874 / /W) WHICH IS REQUIRED FOR DEFINING OVERLAY AREAS, ETC.
875
876 / DOES NOT SUPPORT TEXT WITHOUT ZERO WORD FILL (P?S/8 PAL OPTION /J OR OS/8 PAL8
877 / OPTION /F FULFILLS THIS REQUIREMENT) WHICH IS REQUIRED FOR TEXT MESSAGES.
878
879
880 / P?S/8 PAL IS AN IMPROPER SUPERSET OF PAL10. PAL10 SUPPORTS MACRO-8 MODE AS AN
881 / OPTION AND AUTOMATIC FIELD DUMP BITMAPS; ALL OTHER KNOWN PAL10 FEATURES EXIST
882 / IN P?S/8 PAL INCLUDING THE SUPPORT OF THE AUTOMATIC FIELD DUMP BITMAP
883 / PSEUDO-OPS ('ENBITS' AND 'NOBITS').
884
885 / OS/8 PAL8 (VERSION B0) IS A SUBSET OF P?S/8 PAL WHICH HAS SEVERAL SYNTACTIC
886 / QUIRKS (WHICH ARE AVOIDABLE, BUT NONETHELESS ARE INCOMPATIBLE WITH BOTH P?S/8
887 / PAL AND PAL10 IN CERTAIN MINOR WAYS); REGARDLESS, PAL8 LACKS THE
888 / COMPATIBILITY PROBLEMS OF PAL10.
889
890 / MAINTAINING SOURCE COMPATIBILITY.
891
892 / KERMIT-12 SOURCE FILE CONVENTIONS DEMAND THE USE OF THE COMMON SUBSET OF P?S/8
893 / PAL AND OS/8 PAL8 (VERSION B0). CERTAIN FORMS OF STATEMENTS SHOULD BE
894 / AVOIDED:
895
896 / TAD /NOT LEGAL IN PAL8
897 / 0+TAD /NOT LEGAL IN PAL10, AND POSSIBLY WRONG IN PAL8
898 / TAD (3)+1 /GENERATES SAME AS "TAD (3+1)" IN PAL8
899 / -A!-B /UNARY OPERATOR HANDLED WRONG IN PAL8
900 / I+N /NOT LEGAL IN PAL8
901 / N+I /NOT LEGAL IN PAL8
902 / I I /NOT LEGAL IN PAL8
903
904 / THIS REQUIREMENT IS EASILY MET BY KERMIT-12 AS MOST OF THESE CASES ARE
905 / ESOTERIC QUIRKS AND NOT NEEDED FOR THIS ASSEMBLY.
906
907 / THE RESTRICTIONS OF PAL10 (EVEN THOUGH IT HAS OTHER DESIRABLE FEATURES, MOST
908 / OF WHICH IT SHARES WITH P?S/8 PAL) ARE TOO SEVERE TO ALLOW USABLE ASSEMBLY OF
909 / THIS PROGRAM. BETTER CROSS-ASSEMBLERS MAY EXIST ELSEWHERE WHICH ARE
910 / SOURCE-COMPATIBLE WITH KERMIT-12.
911 \f/ USE OF P?S/8 LANGUAGE EXTENSIONS.
912
913 / P?S/8 OFFERS SEVERAL USEFUL FEATURES OVER PAL8 (AND PAL10) WHICH MAY BE USEFUL
914 / FOR ASSEMBLY DEVELOPMENT OF KERMIT-12. THESE INCLUDE LANGUAGE ELEMENTS SUCH
915 / AS "TAD (3)+1" HANDLED CORRECTLY, OR PSEUDO-OPS SUCH AS "PAUSE EXPR" WHERE THE
916 / VALUE OF 'EXPR' WILL BE DISPLAYED ON THE SYSTEM CONSOLE DURING THE ASSEMBLY
917 / WHEN THAT POINT IN THE ASSEMBLY IS REACHED. TO ACCESS THESE FEATURES AND
918 / STILL PROVIDE COMPATIBILITY WITH PAL8 (VERSION B0), THE FOLLOWING CODING
919 / TECHNIQUE IS SUGGESTED:
920
921
922 / IFNDEF PQS <PQS=0> /WILL BE 0 ON PAL8, PAL10
923
924
925 / IFZERO PQS < /DO PAL8, ETC. STUFF HERE
926
927 / FOO= (TABLE) /DEFINE POINTER TO ADDRESS OF TABLE
928
929 / TAD FOO-1 /GET (POINTER TO ADDRESS OF TABLE)-1
930 / DCA XR1 /SETUP AUTO-INDEX REGISTER
931
932 / WISH WE HAD PAUSE AND ERROR PSEUDO-OPS IN PAL8.
933
934 / > /END OF PAL8, ETC. VARIANT
935
936
937 / IFNZRO PQS < /DO P?S/8 PAL STUFF HERE
938
939 / TAD (TABLE)-1 /GET (POINTER TO ADDRESS OF TABLE)-1
940 / DCA XR1 /SETUP AUTO-INDEX REGISTER
941
942 / IFNDEF PASS <PASS=0>/DEFINE PASS VARIABLE
943
944 / PASS= PASS+1 /BUMP EVERY ASSEMBLER PASS
945
946 / PAUSE PASS /DISPLAY PASS NUMBER
947
948 / IFNZRO .&4000 <
949
950 / ERROR 1234 /DISPLAY ERROR MESSAGE IF THERE ARE PROBLEMS
951
952 / >
953
954 / > /END OF P?S/8 PAL VARIANT
955
956
957 / THIS ALLOWS TEMPORARY DEVELOPMENT FEATURES OR PERMANENT ELEMENTS WHICH MAY BE
958 / MORE ELEGANTLY EXPRESSED IN P?S/8 PAL VARIANT CODING, WHILE THE PAL8 (VERSION
959 / B0) VERSION CAN STILL BE USED (VIA DIRECT OCTAL, MULTIPLE EQUATE STATEMENTS,
960 / CONDITIONAL FLUSH AS IN THE ABOVE EXAMPLE, ETC. AS NECESSARY) FOR STANDARD
961 / ASSEMBLY OF KERMIT-12.
962 \f/ ASSEMBLY PARAMETERS.
963
964 / SEVERAL PARAMETERS MUST BE CHANGED WITHIN K12MIT.PA (OR PASSED TO THE
965 / ASSEMBLER VIA A SHORT FILE INSERTED INTO THE ASSEMBLY STREAM BEFORE THE MAIN
966 / FILE):
967
968 / SETTING KEY= [RECEIVE IOT CODE FOR CONSOLE KEYBOARD] DEFINES THE CONSOLE
969 / KEYBOARD IOT CODE (DEFAULT IS 03).
970
971 / SETTING TTY= [TRANSMIT IOT CODE FOR CONSOLE OUTPUT] CHANGES THE CONSOLE
972 / PRINTER IOT CODE (DEFAULT IS 04).
973
974 / THE FOLLOWING DEFINITIONS ARE ESSENTIALLY FOR KL8-TYPE DEVICES ONLY, AS THE
975 / CODE DEMANDS KL8 HARDWARE COMPATIBILITY. MODELS OTHER THAN PDP-8 (SUCH AS
976 / DECMATE) GENERALLY EITHER PLACE RESTRICTIONS ON AVAILABLE INTERFACES (OTHER
977 / SOFTWARE DESIGNATES A SERIAL INTERFACE AS A LOGICAL PRINTER PORT; DECMATES
978 / SUPPORT A FIRMWARE "PRINT SCREEN" KEY WHICH ENFORCES THIS.), OR DON'T ALLOW
979 / USABLE PLUG-IN OPTIONS.
980
981 / IGNORING BUILT-IN DECMATE SUPPORT, THE FOLLOWING PARAMETERS ARE ACTIVE:
982
983 / SETTING DEV30= 1 CREATES DEVICE 30/31 REMOTE LINE IOTS.
984
985 / SETTING DEV40= 1 CREATES DEVICE 40/41 REMOTE LINE IOTS.
986
987 / SETTING LEDERLE=1 CREATES DEVICE 43/44 REMOTE LINE IOTS (AND A CUSTOM
988 / HEADER).
989
990 / SETTING ORIGNAL=1 CREATES DEVICE 33/34 REMOTE LINE IOTS (ORIGINAL
991 / SETTINGS).
992
993 / SETTING SPRINT= 1 CREATES DEVICE 32/33 REMOTE LINE IOTS (SERIAL PRINTER
994 / PORT).
995
996 / SETTING USER= 1 CREATES DEVICE XX/XY REMOTE LINE IOTS.
997
998 / IF NONE OF THESE ARE SET, THEN DEV40=1 APPLIES BY DEFAULT.
999
1000
1001
1002 / SETTING USER= 1 REQUIRES THE USER TO DEFINE TWO ADDITIONAL VALUES:
1003
1004 / XX= [RECEIVE IOT DEVICE CODE] (DEFAULT IS 40).
1005
1006 / XY= [TRANSMIT IOT DEVICE CODE] (DEFAULT IS 41).
1007 \f/ SETTING SPRINT= 1 INHIBITS THE BUILT-IN CHECK FOR DECMATE OPERATION AND
1008 / USES THE SERIAL PRINTER PORT FOUND ON ALL
1009 / WPS-8-CONFIGURED PDP-8/E, PDP-8/A CONFIGURATIONS,
1010 / VT-78, AND ALL DECMATES (VT-278, DECMATE II, III,
1011 / III+) FOR REMOTE COMMUNICATIONS.
1012
1013 / THE USE OF THE SERIAL PRINTER PORT FOR REMOTE COMMUNICATIONS PURPOSES MAY BE
1014 / PROBLEMATIC DUE TO CONSIDERATIONS SUCH AS THE RS-232 CONNECTION TO THE PRINTER
1015 / IS A MODEM (DCE), RATHER THAN A TERMINAL (DTE) (DECMATE II, ETC. REQUIRES A
1016 / GENDER CHANGER.), OR THE SOFTWARE DESIGNATION OF THE PORT AS BEING ALLEDGEDLY
1017 / *ONLY* FOR A PRINTER, SUCH AS WHEN CERTAIN SYSTEMS SUPPORT THE "PRINT SCREEN"
1018 / KEY AS A SCREEN DUMP TO THE SERIAL PRINTER PORT, ETC. THESE ISSUES ARE NOT
1019 / RELEVANT TO KERMIT-12 OPERATION, AS THE "PRINT SCREEN" KEY IS NOT SUPPORTED BY
1020 / KERMIT-12 IN THIS CONFIGURATION AS SUCH (FUTURE VERSIONS COULD REDEFINE THE
1021 / "PRINT SCREEN" KEY TO SUCH FUNCTIONS AS DUMP SCREEN TO A FILE, ETC.).
1022
1023 / SETTING BRATE= NN SETS THE DEFAULT BAUD RATE (FOR SYSTEMS THAT SUPPORT
1024 / THIS FEATURE) FROM A TABLE OF VALUES (0-15) AS
1025 / FOLLOWS:
1026
1027 / NN BAUD RATE
1028
1029 / 00 50
1030 / 01 75
1031 / 02 110
1032 / 03 134.5
1033 / 04 150
1034 / 05 300
1035 / 06 600
1036 / 07 1200
1037 / 08 1800
1038 / 09 2000
1039 / 10 2400
1040 / 11 3600
1041 / 12 4800
1042 / 13 7200
1043 / 14 9600
1044 / 15 19200
1045
1046 / SETTING ESCAPE= NNNN SETS THE DEFAULT ESCAPE CHARACTER TO NNNN.
1047
1048 / SETTING FLOW= 1 ENABLES FLOW-CONTROL BY DEFAULT.
1049 / SETTING FLOW= 0 DISABLES FLOW-CONTROL BY DEFAULT.
1050
1051 / SETTING FMODE= 0177 SETS THE DEFAULT FILE MODE TO ASCII.
1052 / SETTING FMODE= 4377 SETS THE DEFAULT FILE MODE TO BINARY.
1053 \f/ SETTING GENMSG= 0 CAUSES NO BINARY TO BE GENERATED WHERE 'LCLMSG' IS
1054 / DEFINED. THIS ALLOWS THE PARAMETER FILE (PARAM.PA) OR
1055 / SUBSEQUENT OVERLAY BY K12PCH.BN TO DEFINE THE LOCAL
1056 / HEADER MESSAGE. THIS PARAMETER SHOULD NOT BE SET
1057 / UNLESS ONE OF THESE METHODS IS USED, ELSE THE HEADER
1058 / MESSAGE WILL BE UNDEFINED. (NOTE: IF K12PCH.BN
1059 / GENERATES A HEADER MESSAGE, THEN THIS PARAMETER IS
1060 / UNIMPORTANT, AS K12PCH.BN OVERLAYS THE BINARY OF
1061 / K12MIT.)
1062 / SETTING GENMSG= 1 CAUSES A HEADER MESSAGE TO BE GENERATED. THE CONTENTS
1063 / OF THE MESSAGE ARE CREATED BY SETTING LEDERLE=1 OR
1064 / UMSG=1. IF EITHER IS ZERO, A DEFAULT (NULL) MESSAGE
1065 / WILL BE GENERATED.
1066
1067 / SETTING ICLOSE= 1 ENSURES A <^Z> AT <EOF> OF ASCII INPUT FILES BY
1068 / DEFAULT.
1069 / SETTING ICLOSE= 0 CLOSES ASCII INPUT FILES AS RECEIVED BY DEFAULT.
1070
1071 / SETTING INIECHO=0 CAUSES A FULL-DUPLEX CONNECT MODE STATE WITH NO LOCAL
1072 / CHARACTER ECHOING BY DEFAULT.
1073 / SETTING INIECHO=1 CAUSES A HALF-DUPLEX CONNECT MODE STATE WITH LOCAL
1074 / ECHO OF ALL CONSOLE CHARACTERS BY DEFAULT.
1075
1076 / SETTING LOWER= 0 ALLOWS LOWER-CASE CONSOLE OUTPUT BY DEFAULT.
1077 / SETTING LOWER= -40 FOLDS LOWER-CASE CONSOLE OUTPUT TO UPPER-CASE BY
1078 / DEFAULT.
1079
1080 / SETTING OCLOSE= 0 PREVENTS DEFAULT SENDING OF <^Z> AT <EOF> OF ASCII
1081 / FILES.
1082 / SETTING OCLOSE= 1 CAUSES <^Z> TO BE SENT AT <EOF> OF ASCII FILES BY
1083 / DEFAULT.
1084
1085 / SETTING PORT= 0 CAUSES THE DP-278 PORT 0 TO BE USED IF KERMIT-12 IS
1086 / RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
1087 / SETTING PORT= 1 CAUSES THE DP-278 PORT 1 TO BE USED IF KERMIT-12 IS
1088 / RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
1089
1090 / SETTING RETCNT= NNNN SETS THE PACKET RETRY COUNT TO NNNN BY DEFAULT.
1091 / SETTING UMSG= 0 PREVENTS THE LOCAL USER HEADER MESSAGE FROM BEING
1092 / GENERATED.
1093 / SETTING UMSG= 1 CAUSES THE LOCAL USER HEADER MESSAGE TO BE GENERATED.
1094 / THE PARAMETER GENMSG=1 IS REQUIRED TO BE SET. THE
1095 / SOURCE MUST BE MODIFIED LOCALLY TO CHANGE THE MESSAGE
1096 / TEXT FROM "INSERT LOCAL USER MESSAGE HERE!," AS THIS
1097 / IS THE DEFAULT CONTENTS.
1098 \f/ KERMIT-12 FOR THE FAMILY OF 12-BIT DEC MACHINES.
1099
1100 / BRIEF USAGE DESCRIPTION.
1101
1102 / KERMIT-12 IS AN IMPLEMENTATION OF THE KERMIT PROTOCOL FOR THE FAMILY OF 12-BIT
1103 / DEC (AND COMPATIBLE) MACHINES GENERALLY KNOWN AS PDP-8 OR DECMATE.
1104
1105 / AS OF THE CURRENT IMPLEMENTATION, THE FOLLOWING COMMANDS ARE EFFECTIVE:
1106
1107 / 1. CONNECT (TO REMOTE SYSTEM AS TERMINAL).
1108
1109 / 2. SEND FILESPEC (TO REMOTE RECEIVER OR SERVER).
1110
1111 / 3. RECEIVE FILESPEC (FROM REMOTE SENDER).
1112
1113 / 4. GET FILESPEC (FROM REMOTE SERVER).
1114
1115 / 5. FINISH (SERVING).
1116
1117 / 6. SETUP (ON DECMATE II/III/III-PLUS ONLY). **** NOT IMPLEMENTED ****
1118
1119 / 7. EXIT (TO OPERATING SYSTEM).
1120
1121 / 8. HELP (DISPLAYS HELP MESSAGE).
1122
1123 / FILESPEC MAY BE ANY LOCAL (OS/8) FILE-STRUCTURED DEVICE:FILENAME.EXTENSION,
1124 / WHERE THE FILENAME AND EXTENSION WILL BE TRUNCATED TO 6 ALPHANUMERICS AND 2
1125 / ALPHANUMERICS RESPECTIVELY, AS NECESSARY (THIS IS REFERRED TO AS 6.2 FILENAME
1126 / FORMAT). THE DEVICE: FIELD IS OPTIONAL; ALL COMMANDS USING THE DEVICE:
1127 / FIELD FOR LOCAL DEVICE SPECIFICATION WILL USE THIS DEVICE AS THE SOURCE OR
1128 / DESTINATION AS NECESSARY FOR THE LOCAL FILES. IF THE DEVICE: FIELD IS
1129 / OMITTED, THE DEFAULT DEVICE DSK: WILL BE USED. THE ACTUAL DEVICE USED MAY BE
1130 / SELECTED BEFORE INVOKING KERMIT-12 BY USING THE OS/8 ASSIGN COMMAND:
1131
1132 / .ASSIGN DEV DSK
1133
1134 / WHERE DEV IS ANY AVAILABLE FILE-STRUCTURED DEVICE.
1135
1136 / KERMIT-12 USES AN UNUSUAL SCHEME FOR ITS PROMPT: THE ACTUAL DEFAULT PROMPT
1137 / TEXT IS PARTIALLY TAKEN FROM THE ACTUAL MACHINE KERMIT-12 IS CURRENTLY
1138 / EXECUTING ON. FOR EXAMPLE, IF KERMIT-12 HAS DETERMINED THE CPU TYPE AS
1139 / PDP-8/E, THE PROMPT WILL BE:
1140
1141 / KERMIT-8/E>
1142
1143 / THIS ALLOWS KERMIT-12 USERS (WITH DIFFERENT CPU-TYPE MACHINES) TO DISTINGUISH
1144 / MESSAGES ORIGINATING FROM THE RESPECTIVE SYSTEMS. FUTURE VERSIONS WILL
1145 / SUPPORT USER PROMPT STRINGS TO ALLOW MORE DISTINCTIVE SYSTEM MESSAGES.
1146
1147 / THE HELP OR CONNECT COMMANDS MAY BE USED TO DETERMINE THE CURRENT CONNECT MODE
1148 / ESCAPE CHARACTER.
1149 \f/ COMMAND RESTRICTIONS.
1150
1151 / THE SEND COMMAND ALLOWS DEVICE:FILENAME.EXTENSION (6.2) WITH WILD-CARD
1152 / SUBSTITUTION. A * MAY BE GIVEN FOR AN ENTIRE FIELD (EITHER FILENAME OR
1153 / EXTENSION OR BOTH) ONLY. A ? WILL MATCH ANY SINGLE CHARACTER WHICH MUST
1154 / EXIST IN THE ACTUAL FILENAME OR EXTENSION, UNLESS RIGHT-MOST IN THE FIELD.
1155 / ALL MATCHING FILES WILL BE SENT. NO OUTBOUND FILENAME (AS-NAME) FACILITY
1156 / EXISTS AT THIS TIME.
1157
1158 / THE RECEIVE COMMAND ALLOWS OPTIONAL DEVICE: ONLY. *THE FILENAME AND
1159 / EXTENSION ARE NOT ALLOWED*. NAMES OF RECEIVED FILES WILL BE MODIFIED IF
1160 / NECESSARY TO CONFORM TO THE 6.2 FORMAT. *IMPLEMENTATION RESTRICTION* :
1161 / CERTAIN REMOTE FILENAMES CONTAINING NON-ALPHANUMERIC CHARACTERS MAY CAUSE
1162 / KERMIT-12 TO HASTILY ABORT THE TRANSMISSION AND RETURN TO COMMAND LEVEL.
1163
1164 / THE GET COMMAND ALLOWS OPTIONAL DEVICE: TO DETERMINE DESTINATION OF THE
1165 / INCOMING FILES. THE OUTBOUND FILESPEC MUST CONFORM TO LOCAL CONVENTIONS
1166 / (FILENAME AND EXTENSION ARE NOT LIMITED TO 6.2 FORMAT; THE DEVICE: FIELD
1167 / WILL NOT BE SENT TO THE REMOTE KERMIT UNLESS IT IS ILLEGAL WITHIN OS/8
1168 / SPECIFICATIONS, SUCH AS TOO MANY DEVICE LETTERS. IN THIS CASE, THE DEFAULT
1169 / DEVICE DSK: APPLIES, AND THE ENTIRE "DEVICE" FIELD IS SENT ALONG WITH ANY
1170 / FILENAME AND EXTENSION). CERTAIN REMOTE SYSTEMS ARE INCOMPATIBLE WITH THIS
1171 / IMPLEMENTATION, AS IMBEDDED SPACES OR NON-ALPHANUMERIC CHARACTERS ARE NOT
1172 / ALLOWED, EVEN THOUGH THEY MAY BE REQUIRED ON THE REMOTE SYSTEM. WILD-CARD
1173 / CHARACTERS ARE ALLOWED, BUT ONLY AS SPECIFIED IN THE SEND COMMAND ABOVE.
1174
1175 / <^X> OR <^Z> CAN BE USED TO ABORT KERMIT TRANSMISSIONS (EVENTUALLY) BUT IS
1176 / NORMALLY A SLOW PROCESS, SINCE THE CHECKING IS DONE BY A SOFTWARE TIMEOUT
1177 / SCHEME. AT THE PRESENT TIME, THERE IS NO DISTINCTION BETWEEN THESE THO
1178 / CHARACTERS, SO IT IS NOT POSSIBLE TO ABORT A SINGLE FILE; THE ENTIRE BATCH OF
1179 / FILES INVOLVED IN THE TRANSFER IS ABORTED.
1180
1181 / DECMATE II/III/III-PLUS CONSIDERATIONS:
1182
1183 / FUNCTION KEYS SEND <ESC> SEQUENCES SPECIFIED BY SLUSHWARE/FIRMWARE. ALL SOFT
1184 / FUNCTION KEYS ARE THEREFORE INEFFECTIVE (EXCEPT FOR HOLD SCREEN WHICH ALWAYS
1185 / WORKS).
1186
1187 / CONNECT MODE RUNS IN 8-BIT MODE.
1188
1189 / THE COMPOSE KEY IS ENABLED FOR USE WITH A LOADED COMPOSE TABLE.
1190
1191 / ANY VALID DECMATE II/III/III-PLUS CHARACTER SET IS ALLOWED WHILE IN CONNECT
1192 / MODE (MCS TCS LINE, ETC.). ALL <ESC> SEQUENCES ARE PASSED TO THE
1193 / SLUSHWARE/FIRMWARE UNMODIFIED.
1194
1195 / KEYBOARD UPPER-CASE LOCK WILL ALWAYS BE AUTOMATICALLY APPLIED UPON RETURN FROM
1196 / CONNECT MODE.
1197 \f/ DEFINITIONS. /017 CJL
1198
1199 *200 /FOR DEFINITIONS /047 CJL
1200
1201 / REMOTE LINE PARAMETERS; SET ONLY ONE AS NECESSARY. /046 CJL
1202
1203 IFNDEF DEV30 <DEV30= 0> /USE DEVICE 30/31 VALUES
1204 IFNDEF DEV40 <DEV40= 0> /USE DEVICE 40/41 VALUES
1205 IFNDEF LEDERLE <LEDERLE=0> /USE LEDERLE LABS VALUES
1206 IFNDEF ORIGNAL <ORIGNAL=0> /USE ORIGINAL VALUES
1207 IFNDEF SPRINT <SPRINT=0> /USE DEVICE 32/33 VALUES
1208 IFNDEF USER <USER= 0> /USE USER-DEFINED VALUES
1209
1210 REMOTE= DEV30+DEV40+LEDERLE+ORIGNAL /SET REMOTE LINE IOT CODE
1211 REMOTE= REMOTE+SPRINT+USER /SET REMOTE LINE IOT CODE
1212
1213 IFZERO REMOTE <DEV40= 1> /DEFAULT TO DEVICE 40/41 VERSION
1214
1215 / DEV30 PARAMETERS.
1216
1217 IFNZRO DEV30 <
1218
1219 IFNDEF REC <REC= 30> /DEVICE 30 INPUT
1220 IFNDEF SEN <SEN= 31> /DEVICE 31 OUTPUT
1221
1222 >
1223
1224 / DEV40 PARAMETERS (DEFAULT).
1225
1226 IFNZRO DEV40 <
1227
1228 IFNDEF REC <REC= 40> /DEVICE 40 INPUT
1229 IFNDEF SEN <SEN= 41> /DEVICE 41 OUTPUT
1230
1231 >
1232
1233 / LEDERLE PARAMETERS. /038 CJL
1234
1235 IFNZRO LEDERLE <
1236
1237 IFNDEF REC <REC= 43> /DEVICE 43 INPUT
1238 IFNDEF SEN <SEN= 44> /DEVICE 44 OUTPUT
1239 IFNDEF GENMSG <GENMSG=1> /GENERATE LOCAL HEADER MESSAGE
1240 IFNDEF UMSG <UMSG= 0> /DON'T GENERATE USER MESSAGE
1241
1242 >
1243
1244 / ORIGNAL PARAMETERS.
1245
1246 IFNZRO ORIGNAL <
1247
1248 IFNDEF REC <REC= 33> /DEVICE 33 INPUT
1249 IFNDEF SEN <SEN= 34> /DEVICE 34 OUTPUT
1250
1251 >
1252 \f/ SPRINT PARAMETERS. /046 CJL
1253
1254 IFNZRO SPRINT <
1255
1256 IFNDEF REC <REC= 32> /DEVICE 32 INPUT
1257 IFNDEF SEN <SEN= 33> /DEVICE 33 OUTPUT
1258
1259 >
1260
1261 / USER PARAMETERS.
1262
1263 IFNZRO USER <
1264
1265 IFNDEF XX <XX= 40> /DEFAULT TO DEVICE 40
1266 IFNDEF XY <XY= 41> /DEFAULT TO DEVICE 41
1267 IFNDEF REC <REC= XX> /DEVICE XX INPUT
1268 IFNDEF SEN <SEN= XY> /DEVICE XY OUTPUT
1269 IFNDEF GENMSG <GENMSG=1> /GENERATE LOCAL HEADER MESSAGE
1270 IFNDEF UMSG <UMSG= 1> /GENERATE USER MESSAGE
1271
1272 >
1273
1274 / REMOTE LINE IOT DEFINITIONS.
1275
1276 / RECEIVE DEFINITIONS.
1277
1278 RKRBIOT=REC^10+6006 /READ REMOTE, CLEAR FLAG
1279 RKSFIOT=REC^10+6001 /SKIP ON REMOTE INPUT FLAG
1280
1281 / TRANSMIT DEFINITIONS.
1282
1283 RSBIOT= SEN^10+6003 /SET BAUD RATE FROM AC[8-11]
1284 RTLSIOT=SEN^10+6006 /TRANSMIT CHARACTER, CLEAR FLAG
1285 RTSFIOT=SEN^10+6001 /SKIP ON TRANSMIT FLAG
1286
1287 / CONSOLE TTY: DEFINITIONS. /017 CJL
1288
1289 / KEYBOARD DEFINITIONS. /017 CJL
1290
1291 IFNDEF KEY <KEY= 03> /KEYBOARD DEVICE CODE
1292
1293 KCCIOT= KEY^10+6002 /CLEAR CONSOLE KEYBOARD FLAG, AC
1294 KRBIOT= KEY^10+6006 /READ CONSOLE KEYBOARD BUFFER, CLEAR FLAG
1295 KRSIOT= KEY^10+6004 /READ CONSOLE KEYBOARD BUFFER STATIC
1296 KSFIOT= KEY^10+6001 /SKIP ON CONSOLE KEYBOARD FLAG
1297
1298 / TELEPRINTER DEFINITIONS. /017 CJL
1299
1300 IFNDEF TTY <TTY= 04> /TELEPRINTER DEVICE CODE
1301
1302 TLSIOT= TTY^10+6006 /PRINT CHARACTER, CLEAR FLAG
1303 TSFIOT= TTY^10+6001 /SKIP ON TELEPRINTER FLAG
1304 \f/ DEFAULT ESCAPE CHARACTER DEFINITION. /025 CJL
1305
1306 IFNDEF ESCAPE <ESCAPE="]&37> /DEFAULT IS CONTROL-]
1307
1308 / DEFAULT LOWER-CASE ENABLE DEFINITION. /030 CJL
1309
1310 IFNDEF LOWER <LOWER= 0/-40> /LOWER-CASE IS ALLOWED AS IS
1311 /CHANGE TO -40 IF LOWER-CASE
1312 /SHOULD BE FOLDED TO UPPER-CASE
1313
1314 / DEFAULT RETRY COUNT DEFINITION. /031 CJL
1315
1316 IFNDEF RETCNT <RETCNT=5> /DEFAULT IS FIVE RETRIES
1317
1318 / DEFAULT FILE MODE DEFINITION. /031 CJL
1319
1320 IFNDEF FMODE <FMODE= 0177> /DEFAULT IS ASCII FILE MODE
1321 /4377 IS BINARY FILE MODE
1322
1323 / DEFAULT FLOW-CONTROL MODE DEFINITION. /031 CJL
1324
1325 IFNDEF FLOW <FLOW= 1> /DEFAULT IS FLOW-CONTROL ENABLED
1326
1327 / DEFAULT ASCII INPUT FILE <^Z> DISPOSITION. /031 CJL
1328
1329 IFNDEF ICLOSE <ICLOSE=1> /ENSURE <^Z> AT ASCII <EOF>
1330
1331 / DEFAULT ASCII OUTPUT FILE <^Z> DISPOSITION. /031 CJL
1332
1333 IFNDEF OCLOSE <OCLOSE=0> /<^Z> NOT SENT AT ASCII <EOF>
1334
1335 / DEFAULT LOCAL MESSAGE GENERATION DEFINITIONS. /038 CJL
1336
1337 IFNDEF GENMSG <GENMSG=1> /DEFAULT IS TO GENERATE A MESSAGE
1338 IFNDEF UMSG <UMSG= 0> /DEFAULT IS NO DUMMY USER MESSAGE
1339 IFNDEF LEDERLE <LEDERLE=0> /DEFAULT IS NO LEDERLE MESSAGE
1340
1341 / THE NULL MESSAGE WILL BE GENERATED BY DEFAULT.
1342
1343 / ECHO DEFINITION. /039 CJL
1344
1345 IFNDEF INIECHO <INIECHO=0> /DEFAULT IS NO LOCAL ECHO
1346
1347 / DEFAULT DECMATE I PORT DEFINITION. /050 CJL
1348
1349 IFNDEF PORT <PORT= 0> /DEFAULT IS PORT ZERO
1350
1351 / DEFAULT BAUD RATE DEFINITION. /050 CJL
1352
1353 IFNDEF BRATE <BRATE= 7> /DEFAULT IS 1200 BAUD
1354 \f/ STATE DEFINITIONS.
1355
1356 STDAT= "D&137 /DATA
1357 STACK= "Y&137 /ACK
1358 STNAK= "N&137 /NAK
1359 STSIN= "S&137 /SEND-INIT
1360 STBRK= "B&137 /BREAK LINK
1361 STFIL= "F&137 /FILENAME HEADER
1362 STEOF= "Z&137 /END OF FILE OR REPLY
1363 STERR= "E&137 /ERROR PACKET
1364 STATT= "A&137 /FILE ATTRIBUTES
1365 STRIN= "R&137 /RECEIVE-INIT
1366 STEOT= "B&137 /BREAK TRANSMISSION
1367 STGEN= "G&137 /KERMIT GENERIC COMMAND
1368
1369 / DEFAULT INIT PARAMETERS.
1370
1371 DEFCK= "1&177 /DEFAULT 1 CHARACTER CHECKSUM /014 CJL
1372 DEFEOL= 15+40 /CR IS DEFAULT <EOL>
1373 DEFQCTL= "#&177 /"#" IS DEFAULT QCTL
1374
1375 / BUFFER DEFINITIONS. /014 CJL
1376
1377 DECIMAL /MAKE IT EASIER /014 CJL
1378
1379 DEFMAXL=94 /DEFAULT MAXIMUM PACKET SIZE
1380
1381 LINSIZ= 32 /KEYBOARD LINE BUFFER SIZE
1382
1383 OCTAL /BACK TO NORMAL /014 CJL
1384
1385 BUFSIZE=200 /128 CHARACTER RING BUFFERS /026 CJL
1386 /FOR NO-INTERRUPT CONNECT MODE
1387 \f/ CONTROL CHARACTER DEFINITIONS. /023 CJL
1388
1389 CNTRLA= "A&37 /<^A> DEFAULT MARK CHARACTER /023 CJL
1390 CNTRLB= "B&37 /<^B> /046 CJL
1391 CNTRLC= "C&37 /<^C> PROGRAM EXIT CHARACTER /023 CJL
1392 CNTRLD= "D&37 /<^D> /046 CJL
1393 CNTRLE= "E&37 /<^E> /046 CJL
1394 CNTRLF= "F&37 /<^F> /046 CJL
1395 CNTRLG= "G&37 /<^G> BELL CHARACTER /023 CJL
1396 CNTRLH= "H&37 /<^H> BACKSPACE CHARACTER /023 CJL
1397 CNTRLI= "I&37 /<^I> HORIZONTAL TAB CHARACTER /043 CJL
1398 CNTRLJ= "J&37 /<^J> LINEFEED CHARACTER /023 CJL
1399 CNTRLK= "K&37 /<^K> VERTICAL TAB CHARACTER /046 CJL
1400 CNTRLL= "L&37 /<^L> FORM FEED CHARACTER /046 CJL
1401 CNTRLM= "M&37 /<^M> CARRIAGE RETURN CHARACTER /023 CJL
1402 CNTRLN= "N&37 /<^N> /046 CJL
1403 CNTRLO= "O&37 /<^O> ECHO FLIP CHARACTER /023 CJL
1404 CNTRLP= "P&37 /<^P> PROGRAM RESTART CHARACTER /023 CJL
1405 CNTRLQ= "Q&37 /<^Q> OUTPUT RESUME CHARACTER /023 CJL
1406 CNTRLR= "R&37 /<^R> /046 CJL
1407 CNTRLS= "S&37 /<^S> OUTPUT WAIT CHARACTER /023 CJL
1408 CNTRLT= "T&37 /<^T> /046 CJL
1409 CNTRLU= "U&37 /<^U> /046 CJL
1410 CNTRLV= "V&37 /<^V> /046 CJL
1411 CNTRLW= "W&37 /<^W> /046 CJL
1412 CNTRLX= "X&37 /<^X> FILE ABORT CHARACTER /044 CJL
1413 CNTRLY= "Y&37 /<^Y> /046 CJL
1414 CNTRLZ= "Z&37 /<^Z> ABORT AND <EOF> CHARACTER /044 CJL
1415 DELETE= 177 /<DEL> DELETE OR <RO> CHARACTER /034 CJL
1416 LOWERC= "C&177+40 /LOWER-CASE C (CLOSE CHARACTER) /025 CJL
1417 UPPERC= "C&177 /UPPER-CASE C (CLOSE CHARACTER) /025 CJL
1418
1419 / I/O AND FIELD DEFINITIONS. /019 CJL
1420
1421 BUFFLD= 10 /I/O BUFFER FIELD /019 CJL
1422 DIRFLD= 10 /DIRECTORY LOOKUP BUFFER FIELD /028 CJL
1423 DMIFLD= 10 /DECMATE ONCE-ONLY CODE FIELD /046 CJL
1424 MSGFLD= 10 /TEXT MESSAGE FIELD /023 CJL
1425 PAGCNT= 2 /I/O BUFFER SIZE IN PAGES /019 CJL
1426 PRGFLD= 00 /PROGRAM FIELD /019 CJL
1427 USRFLD= 10 /USR FIELD /020 CJL
1428
1429 / OS/8 MONITOR DEFINITIONS. /014 CJL
1430
1431 SBOOT= 7600 /MONITOR EXIT LOCATION IS 07600 /014 CJL
1432 USR= 7700 /NON-LOCKED USR ENTRY POINT /035 CJL
1433 \f/ USER SERVICE ROUTINE AND HANDLER DEFINITIONS. /020 CJL
1434
1435 CLOSE= 4 /CLOSE TENTATIVE OUTPUT FILE /020 CJL
1436 ENTER= 3 /ENTER TENTATIVE OUTPUT FILE /020 CJL
1437 FETCH= 1 /FETCH HANDLER /020 CJL
1438 INQUIRE=12 /INQUIRE ABOUT HANDLER /020 CJL
1439 LOOKUP= 2 /LOOKUP FILE /020 CJL
1440 RESET= 13 /RESET DEVICE CONTROL WORD TABLE/037 CJL
1441 USRIN= 10 /LOCK USR IN CORE /020 CJL
1442 WRITE= 4000 /I/O CALL WRITE BIT /020 CJL
1443
1444 / INSTRUCTION DEFINITIONS.
1445
1446 CLCL= 6136 /CLEAR CLOCK FLAG (8/A, ETC.) /046 CJL
1447 CLSK= 6131 /SKIP ON, CLEAR CLOCK FLAG /046 CJL
1448 CLSK8A= 6137 /SKIP ON CLOCK FLAG (8/A, ETC.) /046 CJL
1449 COM= 0017 /COMPLEMENT AC
1450 DCAC= DCA . /CURRENT PAGE DCA INSTRUCTION /047 CJL
1451 IAAC= 6171 /"A" REGISTER TO AC
1452 IACA= 6167 /AC TO "A" REGISTER
1453 ISZC= ISZ . /CURRENT PAGE ISZ INSTRUCTION /050 CJL
1454 JMPC= JMP . /CURRENT PAGE JMP INSTRUCTION /047 CJL
1455 JMPIC= JMP I . /CURRENT PAGE JMP I INSTRUCTION /047 CJL
1456 JMSC= JMS . /CURRENT PAGE JMS INSTRUCTION /047 CJL
1457 JMSIC= JMS I . /CURRENT PAGE JMS I INSTRUCTION /047 CJL
1458 LINC= 6141 /GOTO LINC MODE
1459 PDP= 0002 /GOTO PDP-8 MODE
1460 PRQ3= 6236 /TYPE THREE PANEL REQUEST /046 CJL
1461 TADC= TAD . /CURRENT PAGE TAD INSTRUCTION /047 CJL
1462 R3L= 7014 /ROTATE AC (NOT LINK) LEFT 3 /046 CJL
1463
1464 / NUMERIC LOAD DEFINITIONS. /014 CJL
1465
1466 NL0000= CLA /LOAD AC WITH 0000 /046 CJL
1467 NL0001= CLA IAC /LOAD AC WITH 0001 /014 CJL
1468 NL0002= CLA CLL CML RTL /LOAD AC WITH 0002 /014 CJL
1469 NL0003= CLA STL IAC RAL /LOAD AC WITH 0003 (8/I ON UP) /046 CJL
1470 NL0004= CLA CLL IAC RTL /LOAD AC WITH 0004 (8/I ON UP) /046 CJL
1471 NL0006= CLA STL IAC RTL /LOAD AC WITH 0006 (8/I ON UP) /046 CJL
1472 NL0010= CLA IAC RAL RAR /LOAD AC WITH 0010 (6120) /024 CJL
1473 NL0100= CLA IAC BSW /LOAD AC WITH 0100 (8/E ON UP) /024 CJL
1474 NL3776= CLA CLL CMA RAR RAL /LOAD AC WITH 3776 (8/I OR 8/L) /024 CJL
1475 NL3777= CLA CLL CMA RAR /LOAD AC WITH 3777 /046 CJL
1476 NL4000= CLA CLL CML RAR /LOAD AC WITH 4000 /014 CJL
1477 NL5777= CLA CLL CMA RTR /LOAD AC WITH 5777 /046 CJL
1478 NL6000= CLA STL IAC RTR /LOAD AC WITH 6000 (8/I ON UP) /046 CJL
1479 NL7775= CLA CLL CMA RTL /LOAD AC WITH 7775 /014 CJL
1480 NL7776= CLA CLL CMA RAL /LOAD AC WITH 7776 /014 CJL
1481 NL7777= CLA CMA /LOAD AC WITH 7777 /014 CJL
1482 \f/ DECMATE I COMMUNICATIONS PORT DEFINITIONS. /050 CJL
1483
1484 IPORT0= 30 /COMMUNICATIONS PORT 0 INPUT DEVICE CODE
1485
1486 RKFL0= IPORT0^10+6000 /SET COMMUNICATIONS PORT 0 INPUT FLAG
1487 RKSF0= IPORT0^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT 0 INPUT FLAG
1488 RKCC0= IPORT0^10+6002 /CLEAR AC
1489 RKIE0= IPORT0^10+6005 /PORT 0 INPUT INTERRUPT ENABLE PER AC[11]
1490 RKRB0= IPORT0^10+6006 /READ COMMUNICATIONS PORT 0 INTO AC
1491
1492 OPORT0= 31 /COMMUNICATIONS PORT 0 OUTPUT DEVICE CODE
1493
1494 RTFL0= OPORT0^10+6000 /SET COMMUNICATIONS PORT 0 OUTPUT FLAG
1495 RTSF0= OPORT0^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT 0 OUTPUT FLAG
1496 RTCF0= OPORT0^10+6002 /NOP
1497 RTIE0= OPORT0^10+6005 /PORT 0 OUTPUT INTERRUPT ENABLE PER AC[11]
1498 RTLS0= OPORT0^10+6006 /WRITE COMMUNICATIONS PORT 0 FROM AC
1499
1500 IPORT1= 34 /COMMUNICATIONS PORT 1 INPUT DEVICE CODE
1501
1502 RKFL1= IPORT1^10+6000 /SET COMMUNICATIONS PORT 1 INPUT FLAG
1503 RKSF1= IPORT1^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT 1 INPUT FLAG
1504 RKCC1= IPORT1^10+6002 /CLEAR AC
1505 RKIE1= IPORT1^10+6005 /PORT 1 INPUT INTERRUPT ENABLE PER AC[11]
1506 RKRB1= IPORT1^10+6006 /READ COMMUNICATIONS PORT 1 INTO AC
1507
1508 OPORT1= 35 /COMMUNICATIONS PORT 1 OUTPUT DEVICE CODE
1509
1510 RTFL1= OPORT1^10+6000 /SET COMMUNICATIONS PORT 1 OUTPUT FLAG
1511 RTSF1= OPORT1^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT 1 OUTPUT FLAG
1512 RTCF1= OPORT1^10+6002 /NOP
1513 RTIE1= OPORT1^10+6005 /PORT 1 OUTPUT INTERRUPT ENABLE PER AC[11]
1514 RTLS1= OPORT1^10+6006 /WRITE COMMUNICATIONS PORT 1 FROM AC
1515
1516 PCON= 36 /PORT STATUS AND CONTROL DEVICE CODE
1517
1518 SMFL= PCON^10+6000 /SET MODEM CHANGE FLAG
1519 MFSK= PCON^10+6001 /SKIP ON, CLEAR MODEM CHANGE FLAG
1520 WCON0= PCON^10+6002 /WRITE COMMUNICATIONS PORT 0 CONTROL REGISTER
1521 PSR= PCON^10+6003 /READ PORT STATUS REGISTER
1522 PMR= PCON^10+6004 /READ PORT MODEM REGISTER
1523 MFIE= PCON^10+6005 /LOAD MODEM CHANGE INTERRUPT ENABLE PER AC[11]
1524 WCON1= PCON^10+6006 /WRITE COMMUNICATIONS PORT 1 CONTROL REGISTER
1525 RACD= PCON^10+6007 /RESET ACTIVE COMMUNICATIONS PORT PER AC[0]
1526 \f/ DECMATE II, ETC. COMMUNICATIONS PORT DEFINITIONS. /046 CJL
1527
1528 PORTIN= 30 /COMMUNICATIONS PORT INPUT DEVICE CODE
1529
1530 IFL= PORTIN^10+6000 /SET COMMUNICATIONS PORT INPUT/OUTPUT FLAG
1531 ISF= PORTIN^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT INPUT/OUTPUT FLAG
1532 ICF= PORTIN^10+6002 /NOP (CLEAR THE AC?)
1533 INOP1= PORTIN^10+6003 /(NOP?)
1534 IRS= PORTIN^10+6004 /READ COMMUNICATIONS PORT RECEIVE BUFFER
1535 IIE= PORTIN^10+6005 /COMMUNICATIONS PORT I/O INTERRUPT ENABLE PER AC[11]
1536 IRB= PORTIN^10+6006 /READ COMMUNICATIONS PORT RECEIVE BUFFER
1537 INOP2= PORTIN^10+6007 /(NOP?)
1538
1539 PORTOUT=31 /COMMUNICATIONS PORT OUTPUT DEVICE CODE
1540
1541 DUMBFL= PORTOUT^10+6000 /SET COMMUNICATIONS PORT DUMMY FLAG
1542 DUMBSF= PORTOUT^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT DUMMY FLAG
1543 DUMBCF= PORTOUT^10+6002 /NOP (CLEAR THE AC?)
1544 ONOP1= PORTOUT^10+6003 /(NOP?)
1545 OPC= PORTOUT^10+6004 /LOAD COMMUNICATIONS PORT TRANSMIT BUFFER
1546 DUMBIE= PORTOUT^10+6005 /COMMUNICATIONS PORT DUMMY INTERRUPT ENABLE PER AC[11]
1547 OLS= PORTOUT^10+6006 /LOAD COMMUNICATIONS PORT TRANSMIT BUFFER
1548 ONOP2= PORTOUT^10+6007 /(NOP?)
1549
1550 PORTCON=36 /COMMUNICATIONS PORT CONTROL DEVICE CODE
1551
1552 MFL= PORTCON^10+6000 /SET MODEM CHANGE FLAG
1553 MSF= PORTCON^10+6001 /SKIP ON, CLEAR MODEM CHANGE FLAG
1554 MLC= PORTCON^10+6002 /LOAD MODEM CONTROL REGISTER
1555 MSB= PORTCON^10+6003 /LOAD BAUD RATE REGISTER
1556 MRS= PORTCON^10+6004 /READ MODEM STATUS REGISTER
1557 MIE= PORTCON^10+6005 /MODEM CHANGE INTERRUPT ENABLE PER AC[11]
1558 MPSCC= PORTCON^10+6006 /ACCESS MULTIPROTOCOL SERIAL COMMUNICATIONS CONTROLLER
1559 MPRESET=PORTCON^10+6007 /RESET MULTIPROTOCOL SERIAL COMMUNICATIONS CONTROLLER
1560 \f/ MISCELLANEOUS DEFINITIONS. /014 CJL
1561
1562 / STATIC DATE CALCULATIONS. /024 CJL
1563
1564 / THESE EQUATIONS CAUSE PRINTABLE TEXT OF THE DATE PARTICULARS, WHICH ARE GIVEN
1565 / IN OS/8 INTERNAL FORMAT. PROGRAM MAINTAINENCE REQUIRES THE UPDATE OF VERSION,
1566 / REVISION, REVDATE, AND REVDGRP. REVDATE AND REVDGRP SHOULD BE OBTAINED FROM
1567 / THE SYSTEM WHEN RELEASING A NEW VERSION AFTER FIRST CORRECTLY INVOKING THE
1568 / SYSTEM DATE COMMAND.
1569
1570 / VERSION=[ANY NUMBER IN THE RANGE 00-143 (DECIMAL 00-99)]
1571
1572 / REVISIO=[ANY SIX-BIT ALPHA (A-Z); DO NOT FORGET &77]
1573
1574 / REVDATE=[THE CONTENTS OF 17666 (DATE WORD)]
1575
1576 / REVDGRP=[THE CONTENTS OF 07777 (ONLY BITS[3-4] ARE USED)]
1577
1578
1579
1580 IFNDEF REVDATE <REVDATE=4464> /REVISION DATE (LOCATION 17666)
1581
1582 IFNDEF REVDGRP <REVDGRP=0400> /REVISION 8 YEAR DATE GROUP (LOCATION 07777)
1583
1584 IFNDEF REVISIO <REVISIO="G&77> /REVISION OF KERMIT-12
1585
1586 IFNDEF VERSION <VERSION=12> /VERSION OF KERMIT-12
1587
1588
1589 DAY= REVDATE&370%10 /REVISION DAY
1590
1591 DGROUP= REVDGRP&600%20 /REVISION DATE GROUP (WHICH 8 YEARS)
1592
1593 MONTH= REVDATE&7400%400 /REVISION MONTH
1594
1595 YEAR= REVDATE&7+DGROUP+106 /REVISION YEAR (SINCE 1900)