A large commit.
[pdp8.git] / sw / kermit / k12 / k12mit.doc
diff --git a/sw/kermit/k12/k12mit.doc b/sw/kermit/k12/k12mit.doc
new file mode 100644 (file)
index 0000000..2eef848
--- /dev/null
@@ -0,0 +1,1595 @@
+/      KERMIT FOR DEC 12-BIT MACHINES
+
+/      LAST EDIT:      06-SEP-1990     11:00:00        CJL
+
+       XLIST   OFF
+       IFNDEF  OFF     <OFF=   1>      /TURN LISTING OFF
+       IFNDEF  ON      <ON=    0>      /TURN LISTING ON
+       XLIST   ON;     IFZERO  1       <
+
+
+
+
+
+
+
+
+***     **** *********** *********    ***      *** *** *********** *****   ****
+***    ****  *********** **********   ****    **** *** *********** *****  ******
+***   ****    ***        ***    ****  ****    **** ***     ***       *** ***  ***
+***  ****     ***        ***     ***  *****  ***** ***     ***       *** **   ****
+*** ****      ***        ***     ***  *****  ***** ***     ***       *** **    ***
+*******       ***        ***    ****  ************ ***     ***       ***       **
+******       **********  **********   *** **** *** ***     *** ***** ***      **
+*******              **********  *********    *** **** *** ***     *** ***** ***     **
+*** ****      ***        *** ****     ***  **  *** ***     ***       ***    **
+***  ****     ***        ***  ****    ***  **  *** ***     ***       ***   **
+***   ****    ***        ***   ****   ***      *** ***     ***       ***  **
+***    ****   *********** ***   ****  ***      *** ***     ***       *** *********
+***     **** *********** ***     **** ***      *** ***     ***       *** *********
+                                       >       XLIST   ON
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/      COPYRIGHT (C) 1989, 1990 BY THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF
+/      NEW YORK.
+
+
+
+/      PERMISSION IS  GRANTED  TO  ANY  INDIVIDUAL OR INSTITUTION TO COPY OR USE THIS
+/      DOCUMENT AND THE  PROGRAM(S) DESCRIBED IN IT, EXCEPT FOR EXPLICITLY COMMERCIAL
+/      PURPOSES.
+\f/     EDIT HISTORY.                                                   /014 CJL
+
+/      052     06-SEP-1990     BUG FIX.                        CHARLES LASNER (CJL)
+
+/              SENDING A FILE WHICH  EXACTLY  FILLS  THE LAST DATA PACKET AT THE
+/              END OF THE FILE WILL  CAUSE  THE  PACKET  TO  BE SENT TWICE.  THE
+/              ROUTINE DIDN'T CHECK FOR AN EMPTY OUTPUT BUFFER AT EOF.
+
+/      051     29-AUG-1990     BUG FIX.                        CJL
+
+/              PDP-8/A NOT IDENTIFIED CORRECTLY  IN  CPUID ROUTINE.  THE UPDATED
+/              PC IS WHAT IS LOADED  INTO  THE  AC  WHEN 7016 IS EXECUTED ON THE
+/              KK-8/A CPU.  THE ROUTINE WAS  CHECKING FOR THE NON-UPDATED VALUE.
+/              ALSO  NEW  DOCUMENTATION FOR PRE-CLEARING MEMORY FOR  BENEFIT  OF
+/              ENCODED BINARY FILES.
+\f/     050     06-SEP-1989     DECMATE I SUPPORT, ETC.         CJL
+
+/              THIS EDIT IMPLEMENTS DECMATE  I  SUPPORT USING THE DP278-A OR -B.
+/              A NEW CONDITIONAL 'PORT' SELECTS  WHICH  PORT  IS TO BE USED.  IF
+/              KERMIT-12 IS RUN ON DECMATE I  (WHILE  NOT  CONFIGURED FOR SERIAL
+/              PRINTER  PORT  COMMUNICATIONS;    SEE  EDIT  048.)   THEN  REMOTE
+/              COMMUNICATIONS TAKES PLACE ON THE PORT SELECTED AT  ASSEMBLY TIME
+/              ('PORT=0' OR 'PORT=1').    ADDED  BAUD  RATE PARAMETER 'BRATE' TO
+/              SELECT REMOTE COMMUNICATIONS BAUD  RATE  FROM THE STANDARD TABLE;
+/              DEFAULTS TO 1200 BAUD ('BRATE=7').
+/      049     30-AUG-1989     REMOTE FLOW CONTROL, ETC.       CJL
+
+/              THIS  EDIT  IMPLEMENTS FLOW CONTROL SUPPORT (IF FLOW  CONTROL  IS
+/              ENABLED) FOR THE REMOTE LINE WHILE SENDING PACKETS TO  THE REMOTE
+/              KERMIT REGARDLESS  OF  STATE.    PREVIOUSLY,  FLOW  CONTROL  ONLY
+/              APPLIED TO CONNECT  MODE.  LOCAL FLOW CONTROL (TOWARDS THE REMOTE
+/              KERMIT) IS UNNECESSARY AS  LOCAL  BUFFERS  FOR  REMOTE  INPUT ARE
+/              ALWAYS AVAILABLE.  CERTAIN ROUTINE  CHANGES  MADE  FOR BENEFIT OF
+/              DECMATE I SUPPORT IN A SUBSEQUENT EDIT.
+
+/      048     24-AUG-1989     DECMATE II, ETC. SUPPORT.       CJL
+
+/              ONCE-ONLY CODE ADDED  TO  IMPLEMENT DECMATE II, ETC.  REMOTE LINE
+/              SUPPORT  ON  SERIAL  COMMUNICATIONS   PORT.    SELECTED  PORT  IS
+/              INDICATED ON OPENING BANNER IF OPERATING ON DECMATE.
+
+/      THIS EDIT PROVIDES BASIC SUPPORT  OF  THE DECMATE II COMMUNICATIONS PORT AS AN
+/      AUTOMATIC FEATURE OF THE STANDARD RELEASE  OF  K12MIT.  AUTOMATIC DETECTION OF
+/      DECMATE II, ETC.  HARDWARE IS PERFORMED  UNLESS  THE  PDP-8-TYPE  REMOTE  LINE
+/      SUPPORT IS ASSEMBLED FOR THE SERIAL PRINTER AS  THE  REMOTE  LINE ('SPRINT' IS
+/      SET OR EQUIVALENT).
+
+/      THIS  EDIT INCORPORATES ALL OF THE  INFORMATION  TAKEN  FROM  VARIOUS  SOURCES
+/      REGARDING DECMATE PORT INITIALIZATION, ETC.  EVERY  ATTEMPT  HAS  BEEN MADE TO
+/      COMPLETELY  SET ALL APPROPRIATE REGISTERS, ETC.  FOR  DECMATE  II,  III,  III+
+/      OPERATION.  NO SUPPORT EXISTS FOR THE DECMATE III  BUILT-IN  MODEM  OPTION, AS
+/      EXPLICIT  DOCUMENTATION  IS NOT AVAILABLE (SOME OF THE INITIALIZATION CODE  IS
+/      APPARENTLY USED TO DISABLE THE MODEM).  THESE ROUTINES ARE ONLY  KNOWN TO WORK
+/      ON  THE DECMATE II, AS THE III (ESPECIALLY WITH OPTIONAL MODEM) AND  THE  III+
+/      HAVEN'T BEEN  AVAILABLE  TO  THE  AUTHOR FOR TESTING.  THE INITIALIZATION CODE
+/      WILL BE UPDATED  LATER  TO  INCLUDE  PANEL  REQUESTS,  ETC.    TO  CORRECT ANY
+/      PROBLEMS, ETC.  DECMATE-SPECIFIC  FEATURES  (SUCH  AS  SETUP COMMANDS) WILL BE
+/      ADDED LATER AND ENABLED FROM THESE ROUTINES.
+
+/      THIS EDIT INCORPORATES  NON-INTERRUPT  ROUTINES  WHICH HAVE BEEN TESTED AT THE
+/      MAXIMUM COMMUNICATIONS SPEED OF  THE  DECMATE  II  (19200  BAUD).    THEY WILL
+/      SUFFICE FOR ALL KERMIT IMPROVEMENTS  SHORT  OF  SLIDING  WINDOWS AT WHICH TIME
+/      INTERRUPT-DRIVEN I/O WILL BE REQUIRED.   (INTERRUPT-DRIVEN  I/O  IS ILLEGAL ON
+/      CERTAIN OS/8 SYSTEMS WHERE INTERRUPTS ARE HARMFUL  TO THE SYSTEM OR NON-SYSTEM
+/      HANDLERS.) 
+\f/     047     21-AUG-1989     CODE CLEANUP.                   CJL
+
+/              STREAM-LINED CONNECT MODE ROUTINES FOR MINIMUM USE OF IOTS.  THIS
+/              IS  IN  PREPARATION  FOR  EVENTUAL DECMATE II OPERATION,  AND  TO
+/              MINIMIZE  K12PCH  PATCH  FILE SIZE.  CERTAIN NON-CONNECT ROUTINES
+/              MOVED TO FACILIATE CONNECT ROUTINE REORGANIZATION. 
+
+/      046     15-AUG-1989     CODE CLEANUP.                   CJL
+
+/              ADDED NEW (NON-CONNECT) MODE COMMUNICATIONS ROUTINES FOR EVENTUAL
+/              DECMATE USE.  ELIMINATION OF 'IREM' AND 'IREMW' ROUTINES IN FAVOR
+/              OF 'COMIN'.   ELIMINATION  OF 'OREM' IN FAVOR OF 'COMOUT'.  ADDED
+/              STATUS UPDATE ROUTINE ('UPSTATUS')  FOR EVENTUAL DECMATE II, ETC.
+/              USAGE.  ELIMINATED PDP-8, DECMATE  I,  DECMATE  II  CONDITIONALS.
+/              REORGANIZED  SERIAL  LINE  CONDITIONALS  AND ADDED  NEW  'SPRINT'
+/              PARAMETER FOR SERIAL PRINTER  PORT  USAGE AS COMMUNICATIONS PORT.
+/              ADDED ONCE-ONLY CODE ADDED TO  AUTOMATICALLY  RECOGNIZE DECMATE I
+/              AND II OPERATION UNLESS ASSEMBLED FOR  REMOTE  COMMUNICATIONS  ON
+/              SERIAL  PRINTER  PORT  ('SPRINT'  SET).   UPDATED  K12PCH.PAL  TO
+/              CORRESPOND   TO  NEW  DEFINITIONS.    DEFINED  EVENTUALLY  NEEDED
+/              COMMUNICATIONS PORT  INSTRUCTIONS FOR DECMATE II;  ACTUAL DECMATE
+/              II OPERATION WILL  BE  DEFINED  IN A SUBSEQUENT EDIT.  DOCUMENTED
+/              NEW LOADING AND SAVING  INSTRUCTIONS  FOR  K12MIT  TO  ALLOW  FOR
+/              ONCE-ONLY CODE IN 10000-11777 WITHOUT  SWAPPING  THE CODE OUT FOR
+/              THE USR.  THIS ELIMINATES OVERHEAD  WHEN  LOADING  K12MIT, BUT IS
+/              DIFFERENT  FROM  THE FORMER INSTRUCTIONS WHICH ASSUMED  NO  OTHER
+/              USAGE OF 10000-11777 OTHER THAN THE (LOCKED-IN) USR.
+
+/      THIS EDIT  PROVIDES THE FRAMEWORK FOR AUTOMATIC DETECTION OF PROGRAM EXECUTION
+/      OF K12MIT ON  ANY  MEMBER  OF  THE  DECMATE  FAMILY  (I, II, III, III+).  WHEN
+/      6120-TYPE CPU DETECTION OCCURS,  THE  DECMATE I OR II-TYPE COMMUNICATIONS PORT
+/      INITIALIZE CODE IS AUTOMATICALLY SELECTED  AS  NECESSARY UNLESS THE PDP-8-TYPE
+/      ROUTINES ARE ASSEMBLED (WITH 'SPRINT' SET  OR  EQUIVALENT USER SETTINGS, ETC.)
+/      FOR THE VT-78-TYPE PRINTER PORT (32/33), IN  WHICH  CASE THE COMMUNICATIONS IS
+/      DONE VIA THE PRINTER PORT ON THE DECMATE (WHICH IS ALMOST PDP-8 COMPATIBLE AND
+/      IS ACCOMODATED AS SUCH).
+
+/      SUBSEQUENT EDITS SHOULD PROVIDE FOR A DECMATE I PARAMETER TO CONTROL  THE PORT
+/      SELECTION,  AS  THERE  ARE  AT  LEAST  TWO VARIANT OPTIONS BOARDS (DP-278A AND
+/      DP-278B) EACH CONSISTING OF TWO PORTS.
+\f/     045     12-AUG-1989     BUG FIX.                        CJL
+
+/              FINISH,  GET,  AND  RECEIVE  COMMANDS   FAIL  TO  ABORT  PROPERLY
+/              (ESPECIALLY AFTER THE SEND COMMAND HAS BEEN USED), AS THE CURRENT
+/              OPERATING MODE ('KMODE') IS NEVER PROPERLY SET,  OR  IS SET AFTER
+/              SEVERAL PACKETS HAVE BEEN SENT.  EACH COMMAND  NOW  SETS  ITS OWN
+/              OPERATING MODE BEFORE INITIATING ANY PACKETS.
+
+/      044     11-AUG-1989     CODE CLEANUP.                   CJL
+
+/              CHANGED  'CCMSG'  TO  'ABMSG'  WITH  CLEARER  MESSAGE.    CHANGED
+/              'CCFLAG'  TO  'ABFLAG' FOR CONSISTENCY.  CHANGED ABORT  CHARACTER
+/              FROM <^C> TO CHOICE OF <^X> OR <^Z> FOR  CONSISTENCY.  ELIMINATED
+/              'ITTY'  AND  'ITTYW'  ROUTINES  BY  USING  'CTLCTST'  AND 'INPUT'
+/              ROUTINES ALREADY  AVAILABLE  A/O EDIT 043.  ELIMINATED 'TCHAR' IN
+/              FAVOR OF 'INCHAR' AVAILABLE A/O EDIT 043.
+
+/      043     07-AUG-1989     CODE CLEANUP, ETC.              CJL
+
+/              REWRITE OF  CONSOLE SUPPORT ROUTINES INCLUDING FORCED-ECHO OUTPUT
+/              AND COLUMN COUNT FOR <HT> SIMULATION IN PREPARATION FOR IMPENDING
+/              USER-INTERFACE  REWRITE.     'SCRIBE',  'LININP',  AND  'ESCPRNT'
+/              ROUTINES NOW CALL  "P7ECHO" ROUTINE TO ENSURE PRINTING OF CRUCIAL
+/              MESSAGES.
+
+/      042     13-JUN-1989     CODE CLEANUP.                   CJL
+
+/              FIXED VARIOUS NAK-RELATED BUGS AND SEND-INIT PROBLEMS AS IN  K278
+/              (SOME  OF  THE K278 STUFF IS DEFICIENT!).  CALCULATION OF  PROPER
+/              SEQUENCE  NUMBER  FOR NAK CORRECTED OVER FORMER (K08MIT AND K278)
+/              VERSIONS.  ADDED ERROR MESSAGE FOR FULL-DISK PROBLEM.
+
+/      041     12-MAY-1989     BUG FIX.                        CJL
+
+/              VARIOUS  VERSIONS  (DECMATE)  WON'T  FUNCTION REMOTELY WHILE KL-8
+/              VERSIONS WORK  FINE.    ADDED  REMOTE LINE READ IOT TO INITIALIZE
+/              REMOTE  LINE  AT   STARTUP  TIME  FOR  VERSIONS  REQUIRING  THIS.
+/              CORRESPONDING CHANGES IN PATCH FILE MADE FOR REMOTE LINE READ IOT
+/              IN TWO PLACES.
+\f/     040     07-MAR-1989     COSMETIC CLEANUP.               CJL
+
+/              CLEANUP OF EDIT HISTORY AND OTHER COMMENTS.
+
+/      039     21-MAY-1988     CODE CLEANUP.                   CJL
+
+/              ADDED VARIABLE 'INIECHO' TO  ALLOW  DEFAULT CONNECT-MODE STATE TO
+/              BE HALF-DUPLEX ("SET LOCAL-ECHO ON").    MODIFIED  INPUT  SERVICE
+/              ERROR ADDRESSES TO SIMPLIFY ERROR TABLES.
+
+/      038     19-MAY-1988     CODE CLEANUP.                   CJL
+
+/              ELIMINATED  TRAILER FILES DURING ASSEMBLY BY  CREATING  VARIABLES
+/              'GENMSG' AND 'UMSG.' THIS ALLOWS THE HEADER  FILE  (PARAM.PA)  TO
+/              CONTAIN THE LOCAL MESSAGE TEXT WITHOUT SUBSEQUENT OVERLAY  (WHICH
+/              WAS WHY THERE FORMERLY WAS A TRAILER FILE CAPABILITY).    OVERLAY
+/              BY  K12PCH.BN  WILL  DEFAULT TO CREATION OF A DUMMY USER  MESSAGE
+/              (WITHIN K12PCH) ENCOURAGING LOCAL  CUSTOMIZATION.  K12MIT.BN WILL
+/              CONTAIN A NULL MESSAGE BY DEFAULT UNLESS CUSTOMIZED IN PARAM.PA.
+
+/      037     21-JAN-1988     BUG FIX.                        CJL
+
+/              RESET OS/8 DEVICE CONTROL WORD  TABLE TO DELETE TENTATIVE FILE IN
+/              CASE OF PRIOR INPUT SERVICE ERROR.
+
+/      036     20-JAN-1988     BUG FIX.                        CJL
+
+/              RESET 'OFFLG' WHEN DOING INPUT SERVICE IN CASE PRIOR ERRORS LEAVE
+/              THE FLAG SET.
+
+/      035     14-JAN-1988     USR RESIDENT CODING.            CJL
+
+/              CALLS TO USR NOW USE 10200 INSTEAD  OF  17700.   NO SWAP OVERHEAD
+/              WHEN OPENING OR CLOSING FILES.
+
+/      034     13-JAN-1988     CODE CLEANUP.                   CJL
+
+/              ALL  EIGHT-BIT  ORIENTED  CONSOLE  CODE ELIMINATED;  NOW  IGNORES
+/              PARITY (JUST SEVEN BITS).
+
+/      033     12-JAN-1988     CODE CLEANUP.                   CJL
+
+/              'TTYOUT' AND 'OTTY' ROUTINES ELIMINATED;  NOW USES 'P7CH' FOR ALL
+/              CONSOLE OUTPUT (EXCEPT FOR CONNECT MODE).
+
+/      032     12-JAN-1988     CODE CLEANUP.                   CJL
+
+/              VARIOUS  ROUTINES REWRITTEN TO ELIMINATE DEPENDENCIES ON CPU TYPE
+/              BEYOND THE CLASSIC PDP-8.
+\f/     031     11-JAN-1988     CODE CLEANUP.                   CJL
+
+/              ELIMINATED 'RTDISP'  AND  CHANGED CALLING CONVENTION FOR DISPATCH
+/              ROUTINE.  ALL  CALLERS  NOW  LOCAL  OR VIA LOCAL POINTERS.  ADDED
+/              SEVERAL  CONDITIONAL  PARAMETERS  AND    LABELS  FOR  BENEFIT  OF
+/              K12PCH.PAL.
+
+/      030     05-JAN-1988     CODE CLEANUP.                   CJL
+
+/              CHANGED LOWER/UPPER CASE CONDITIONAL ASSEMBLY PARAMETERS AND MORE
+/              EFFICIENT CODE.
+
+/      029     21-DEC-1987     CODE CLEANUP.                   CJL
+
+/              CHANGED CALLING CONVENTIONS FOR 'SCRIBE' AND SIMILAR ROUTINES AND
+/              REWROTE 'COMMAND' ROUTINE.
+
+/      028     15-DEC-1987     CODE CLEANUP.                   CJL
+
+/              COMPLETE REWRITE OF FILE LOOKUP ROUTINE.   'LUKUP' NOW USES FIELD
+/              ONE  BUFFER  AND  ITS OWN AUTO-INDEX REGISTER CONSERVING  PROGRAM
+/              SPACE.
+
+/      027     05-DEC-1987     CODE CLEANUP.                   CJL
+
+/              CHANGED  DISPATCH  ('DISPA0') ROUTINE TO USE 'SRCHTABLE' ROUTINE.
+/              ALL CALLS  MADE COMPATIBLE.  ELIMINATED 'SCANC' CODE.  ELIMINATED
+/              CODE WITHIN 'DPARS'  ROUTINE.    'LUKUP' ROUTINE NOW DOES ITS OWN
+/              DISK I/O.  ELIMINATED 'BLKIN' ROUTINE.
+
+/      026     27-NOV-1987     NEW CONNECT MODE CODE.          CJL
+
+/              TOTAL  REWRITE  OF ALL CONNECT MODE CONSOLE AND REMOTE INPUT  AND
+/              OUTPUT  TERMINAL  ROUTINES.  CONNECT IS NOW FULLY BUFFERED IN ALL
+/              DIRECTIONS.   IF  FLOW  CONTROL  IS  OBEYED, ANY BAUD RATE CAN BE
+/              ACCOMODATED BOTH LOCALLY  AND  REMOTE  (UP  TO  9600 BAUD TESTED,
+/              SHOULD WORK TO AT  LEAST  19200 BAUD BY INSPECTION).  TESTED WITH
+/              FAST VT-100 EMULATOR CONSOLE TO  PROVE  ESCAPE  SEQUENCES ARE NOT
+/              DROPPED WHEN LOCAL TERMINAL IS FASTER  THAN REMOTE LINE.  LIMITED
+/              USE OF SUBROUTINES TO IMPROVE HIGH BAUD  RATE  OPERATION.   ADDED
+/              TABLE-DRIVEN ERROR EXIT ROUTINE FOR SEND ROUTINES.
+
+/      THIS EDIT PROVIDES  FULLY  BUFFERED  INPUT/OUTPUT  ROUTINES FOR BOTH LOCAL AND
+/      REMOTE PORTS.  NO  INTERRUPTS  ARE  USED  FOR  MAXIMUM COMPATIBILITY WITH OS/8
+/      DEVICES (SOME OF WHICH ARE  INTOLERANT OF INTERRUPTS, SUCH AS TD-8/E).  REMOTE
+/      FLOW CONTROL (IF ENABLED) WILL SIGNAL BUFFER FILLING VIA <DC3> WHEN THE BUFFER
+/      IS 3/4 FULL.  WHEN THE BUFFER  REACHES 1/4 FULL, THE REMOTE WILL BE SENT <DC1>
+/      TO ALLOW FURTHER OUTPUT.  REMOTE FLOW CONTROL IS SUPPORTED IN BOTH DIRECTIONS;
+/      LOCAL FLOW CONTROL IS FROM THE KEYBOARD ONLY.
+
+/      WHILE THE CONSOLE OUTPUT IS PAUSED BY <DC3>, THE  BUFFER WILL FILL WITH OUTPUT
+/      CHARACTERS.  WHEN THE USER RELEASES THE CONSOLE WITH <DC1>,  THE  BUFFER  WILL
+/      RAPIDLY  EMPTY  (ASSUMING THE CONSOLE IS FASTER THAN THE REMOTE LINE).    THIS
+/      ALLOWS THE USER TO PAUSE THE CONSOLE WITHOUT BACKING UP THE REMOTE  LINE UP TO
+/      THE LIMITS OF BOTH LOCAL OUTPUT AND REMOTE INPUT BUFFERS.
+\f/     025     24-NOV-1987     NEW FEATURES AND CODE CLEANUP.  CJL
+
+/              PROPER  INTERRUPT  SETUP  FOR  <^C> AND <^P>, ECHO  STATE.    ALL
+/              MESSAGES  IN  NEW  FORMAT,  (SOME NEW ONES HAVE BETTER  CONTENT).
+/              ELIMINATED  'PRI6B' AND 'REM6B' ROUTINES.  NEW AND IMPROVED INPUT
+/              SERVICE ERROR  CODE  MOVED  TO  PROPER  PAGE.    REWROTE  CONNECT
+/              ROUTINES TO ALLOW  NON-INTERRUPT BUFFERED I/O LATER.  CREATED NEW
+/              VARIABLE 'ESCHAR' AND PARAMETER  'ESCAPE'  TO  SET DEFAULT ESCAPE
+/              CHARACTER.  ESCAPE CHARACTER CAN BE CHANGED IN MEMORY AND WILL BE
+/              USED  CORRECTLY  BY ALL ROUTINES.   ADDED  'ESCPRNT'  ROUTINE  TO
+/              HANDLE  ALL  CASES  (INCLUDING NON-CONTROL CHARACTERS).   DEFAULT
+/              ESCAPE  PARAMETER  VALUE  COMPATIBLE  WITH K08V2, BUT IS  A  USER
+/              PARAMETER,  CONFIGURED  AS  OTHER PARAMETERS DEFINED IN EDIT 017.
+/              CREATED  ESCAPE FUNCTION TABLE FOR EXPANSION LATER.  NOW SUPPORTS
+/              ESCAPE C(LOSE)  IN  UPPER  OR LOWER CASE, ESCAPE ESCAPE (SEND ONE
+/              ESCAPE CHARACTER).   ALL  BAD  ESCAPE  COMMANDS  WILL ISSUE <BEL>
+/              CHARACTER TO WARN USER  THAT COMMAND IS ILLEGAL AND OTHERWISE WAS
+/              IGNORED.  CREATED NEW VARIABLE  'ECHOFLAG' TO ALLOW LOCAL ECHO IN
+/              CONNECT MODE.
+
+/      024     19-NOV-1987     NEW FEATURES.                   CJL
+
+/              NEW  STARTUP MESSAGES AND HELP METHOD  VIA  COMMAND.    CPU  TYPE
+/              IDENTIFICATION TO ALLOW FUTURE VERSIONS TO CHECK  FOR  QUIRKS AND
+/              MODEL DEPENDENCIES.  THE DEFAULT PROMPT REFLECTS THE  ACTUAL  CPU
+/              TYPE (THUS "KERMIT-12>" ON PDP-12).  VERSION, REVISION, AND  DATE
+/              NOW EQUATED SYMBOLS.
+
+/      023     18-NOV-1987     NEW CONSOLE I/O PACKAGE.        CJL
+
+/              NEW  CONSOLE  I/O  ROUTINES  WITH  DC1/DC3  SUPPORT  FOR  CONSOLE
+/              TERMINAL MESSAGES NOT ASSOCIATED WITH ANY REMOTE ACTIVITY (NOT TO
+/              BE USED DURING CONNECT MODE).  USES FIELD ONE FOR MESSAGE TEXT TO
+/              ALLOW FOR MORE PROGRAM  SPACE.    THE  MESSAGES  ARE NOW GIVEN IN
+/              UPPER/LOWER SIXBIT FORMAT.  SUPPORT  FOR <^P> RESTART AND <^O> TO
+/              FLIP  ECHO.  UPPER-CASE CAN BE  FORCED  BY  CHANGING  A  VARIABLE
+/              ('UPONLY').
+
+/      022     17-NOV-1987     BUG FIX.                        CJL
+
+/              EXTRA-LONG INIT PACKETS CORRUPTING PROGRAM;  NOW  CHECKS  FOR AND
+/              IGNORES EXTRA CAPABILITIES BEYOND 'CAPAS' BYTE.
+\f/     021     17-NOV-1987     CODE CLEANUP.                   CJL
+
+/              REWROTE  TENTATIVE OUTPUT FILE LENGTH CODE FOR MORE  CONSISTENCY.
+/              RENAMED "FINISH" COMMAND CORRECTLY (FORMERLY "BYE").
+
+/      FORMER  CODE  REGARDING  THE  TENTATIVE  FILE  MAXIMUM  LENGTH WAS  ACCEPTABLY
+/      ORGANIZED  FOR  ORIGINAL  PS/8, OS/8 CONVENTIONS.  WITH THE EVOLUTION  OF  THE
+/      OPERATING  SYSTEM  INTO  OS/78  (VERSIONS  1-4) AND OS/278 (VERSIONS 1-2), THE
+/      ENTER OPERATION HAS BEEN CHANGED WITH DANGEROUS CONSEQUENCES.
+
+/      THE  ORIGINAL DEFINITION OF THE LENGTH RETURNED BY ENTER IS THE ACTUAL  LENGTH
+/      OF  THE LARGEST EMPTY (IN TWO'S COMPLEMENT FORM).  IF RECORD 7777 IS  PART  OF
+/      THE  ACTUAL  LARGEST  EMPTY (FULL SIZE DEVICE AND THE LARGEST EMPTY IS LAST ON
+/      THE  DEVICE),  THEN  THE  LENGTH RETURNED IS ONE LESS (THIS IS A LONG STANDING
+/      BUG).  SINCE THERE IS NO STRAIGHT-FORWARD WAY TO DETERMINE THIS, THE LENGTH IS
+/      ASSUMED TO BE CORRECT.
+
+/      TESTS WITH THE  DECUS  VERSION  OF  OS/278 (DM-101) REVEAL A DANGEROUS CHANGE:
+/      THE LENGTH RETURNED IS TWO LARGER THAN ACTUALLY EXISTS!
+
+/      TO COUNTERACT THIS, EDIT  010  INSERTED  A  DECREMENT  OF  TWO INTO THE LENGTH
+/      BEFORE PASSING IT BACK TO  THE  KERMIT FILE WRITING ROUTINE.  THE FILE WRITING
+/      ROUTINE THEN ADDS ONE TO THE LENGTH TO CREATE A "DANGER COUNT", I.E., IN TWO'S
+/      COMPLEMENT  NOTATION,  THIS IS THE AMOUNT THAT  WILL  INDICATE  FILE  OVERFLOW
+/      SHOULD IT REACH ZERO.
+
+/      THIS HAS NOW BEEN REORGANIZED TO ALLOW THE  ENTER  ROUTINE  TO  SET THE DANGER
+/      COUNT  DIRECTLY.  OS/8 USERS MUST ALLOW FOR THE  EXTRA  ROOM  (WHICH  MUST  BE
+/      PRESENT  BUT  WILL NOT BE USED), SINCE NO CHECK FOR  SYSTEM  VERSION  WILL  BE
+/      PERFORMED.
+
+/      020     16-NOV-1987     NEW ROUTINES AND CODE CLEANUP.  CJL
+
+/              REWROTE  ENTIRE  OUTPUT  FILE    PACK   ROUTINE.    NOW  SUPPORTS
+/              ASCII/BINARY  INTERNAL FILE MODE FOR  LATER  USE.    USES  OUTPUT
+/              BUFFER IN FIELD ONE (SAME DEFINITIONS  AS  INPUT BUFFER) TO ALLOW
+/              MORE PROGRAM SPACE.  END OF FILE  CONVENTION  IN  ASCII  MODE NOW
+/              INCLUDES  ENSURING  <^Z>  CHARACTER  PACKED  INTO FILE (OR  NOT).
+/              REWROTE  ENTIRE  OUTPUT  FILE  CLOSE  ROUTINE  TO  IMPLEMENT <^Z>
+/              SCHEME.  ELIMINATED SEPARATE OUTPUT FILE INITIALIZE ROUTINE;  USE
+/              SPECIAL ROUTINE CALL INSTEAD.  FIXED PACKET WRITE BUG.
+
+/      019     15-NOV-1987     NEW ROUTINES AND CODE CLEANUP.  CJL
+
+/              FIXED UNPACK <^Z> BUG.  REWROTE ENTIRE INPUT FILE UNPACK ROUTINE.
+/              NOW SUPPORTS ASCII/BINARY INTERNAL FILE MODE FOR LATER USE.  USES
+/              INPUT BUFFER IN FIELD ONE TO ALLOW  MORE  PROGRAM  SPACE.  BUFFER
+/              FIELD DEFINED VIA SYMBOLS TO ALLOW CHANGES IN THE FUTURE.  END OF
+/              FILE CONVENTION IN ASCII MODE NOW INCLUDES SENDING <^Z> CHARACTER
+/              OR  NOT.  ELIMINATED SEPARATE INPUT FILE INITIALIZE ROUTINE;  USE
+/              SPECIAL ROUTINE CALL INSTEAD.
+
+/      018     09-NOV-1987     BUG FIX AND CODE CLEANUP.       CJL
+
+/              FIXED RECEIVE BUG; NOW ALLOW DEV: ON RECEIVE.
+\f/     017     05-NOV-1987     NEW FEATURES.                   CJL
+
+/              CONDITIONAL ASSEMBLY  PARAMETERS  ADDED  FOR MACHINE TYPE (PDP-8,
+/              DECMATE I, DECMATE  II/III/III+),  REMOTE LINE AND LOCAL TERMINAL
+/              INTERFACE DEFINITIONS.
+
+/      016     05-NOV-1987     CODE CLEANUP.                   CJL
+
+/              OPTIMIZATION OF CODE, LITERALS, CONSTANTS.
+
+/      015     04-NOV-1987     BUG FIX.                        CJL
+
+/              INPUT SERVICE ROUTINE ERROR  DOES JMP INSTEAD OF JMS WHEN CALLING
+/              COMMON ERROR HANDLER.
+
+/      014     02-NOV-1987     SOURCE FILE CLEANUP.            CJL
+
+/              SOURCE FILE COSMETICALLY CLEANED UP  AND  RENAMED  TO  K12MIT.PAL
+/              WHICH CONFORMS WITH CUCCA NAMING CONVENTION.    NO  ACTUAL BINARY
+/              CODE CHANGES BEYOND K08V2.  THIS EDIT  HISTORY  ADDED.    ENTRIES
+/              PRIOR TO 014 TRANSCRIBED BY CJL.
+
+/      SINCE THE PDP-12 (AND OTHER 12-BIT DEC MACHINES)  IS  THE INTENDED ENVIRONMENT
+/      FOR THIS PROGRAM, IT IS NOW KNOWN AS KERMIT-12.
+
+/      ASSEMBLING  THE  SOURCE FILE PRODUCES BINARY IDENTICAL TO K08V2.PA  CONFIRMING
+/      THAT SOURCE CLEANUP DOESN'T DAMAGE THE CODING (K08V2 IS NOW OBSOLETE).
+
+/      013     01-OCT-1987     CHANGE TO VERSION 2.0.          R. SCHLERF (RICH)
+
+/              CHANGED  'RKIOT'/'RTIOT'    TO   43/44  REMOTE  LINE  IOT  (LOCAL
+/              PREFERENCE).  CHANGED  'ESCAPE'  CHARACTER  TO  ^]  ('CONX1') FOR
+/              GENERIC CONFORMITY.  ADDED  VERSION/COMMAND BANNER AT STARTUP FOR
+/              MINI-HELP.    INCORPORATED  K278  CHANGES  003-006,  009-010  (NO
+/              INTERRUPTS).  DELETED 'ERRMSG.' NOW USES  'STXERR'  AT 'CLOOP9'+2
+/              FOR PROGRAM SPACE.  TO CONFORM TO  GENERIC KERMIT, "BACK ON PDP8"
+/              MESSAGE  DELETED AND REPLACED WITH BEEP <^G>.   MESSAGE  "SENDING
+/              FILE  XXXXXX.XX  CREATED  ON  DD-MM-YY"  REDUCED TO "SENDING FILE
+/              XXXXXX.XX"  TO CONFORM TO GENERIC KERMIT.  PARITY BIT IS  IGNORED
+/              ON BOTH REMOTE AND TTY LINES.  OUTPUT PARITY IS SET TO SPACE.
+
+/      PROGRAM RENAMED TO K08V2.PA AND MADE AVAILABLE TO CUCCA BY:
+
+/      RICHARD SCHLERF (RICH)
+/      AMERICAN CYANAMID COMPANY
+/      MEDICAL RESEARCH DIVISION
+/      LEDERLE LABORATORIES
+/      BUILDING 190 ROOM 115H
+/      PEARL RIVER, NEW YORK  10965
+/      (914) 732-2186 (09:00 TO 16:00)
+
+/      SINCE  PRIMARY APPLICATION OF K08V2 IS FOR PDP-8 USAGE, THE MODIFICATIONS  NOT
+/      SPECIFIC TO DECMATE II/III FROM K278 WERE MOVED TO THE K08MIT VERSION.  FUTURE
+/      VERSIONS WILL  INCORPORATE  THE  DECMATE  FEATURES AND THUS OBSOLETE ALL OTHER
+/      VERSIONS AT THAT TIME.
+\f/     012     04-JUN-1986     PROGRAM FIX.                    SEPP STADELMANN (SSTA)
+
+/              RE-INITIALIZE VIA 'V30ST' AS ROM SETUP CLEARS COMPOSETABLE, ETC.
+
+/      04-JUN-1986 VERSION RELEASED  TO  CUCCA  BY  MARTYN HEMMINGS (DEC GERMANY) AND
+/      SEPP STADELMANN (DEC SWITZERLAND) OF:
+
+/      DIGITAL EQUIPMENT CORPORATION (DEC)
+/      146 MAIN STREET
+/      MAYNARD, MASS  01754
+/      (617) 897-5111
+
+/      CUCCA RENAMED FILES (KERMIT.PA AND KERCOM.PA) TO K278.PA AND K278COM.PA (WHICH
+/      DOESN'T REALLY CONFORM TO THE NAMING CONVENTION).
+
+/      CUCCA VERSION OF K278.PA FOUND TO BE DEFECTIVE.  FILE REPAIRED BY:
+
+/      CHARLES LASNER (CJL)
+/      CLA SYSTEMS
+/      72-55 METROPOLITAN AVENUE
+/      MIDDLE VILLAGE, NEW YORK  11379-2107
+/      (718) 894-6499
+
+/      REPAIRED FILE (K278.PA) NOW AVAILABLE AT CUCCA.
+
+/      PROGRAM IS NOW  THE DECMATE II/III (III-PLUS) KERMIT ONLY.  HOOKS WERE LEFT IN
+/      FOR PDP-8 VERSION, BUT  NOT  IMPLEMENTED.    K278  DOES  WORK  WITH ADDITIONAL
+/      IMPLEMENTATIONS OF KERMIT, BUT RECEIVE  COMMAND DOES NOT WORK.  PROGRAM YIELDS
+/      RECOVERABLE SYSTEM ERROR/HALT WHEN EXITING TO  FLOPPY-BASED DECMATE II SYSTEM.
+/      CONNECT MODE IS VT200 8-BIT WHICH CONFUSES EVEN/ODD PARITY SYSTEMS.  K278 DOES
+/      NOT SUPPORT SETUP KEY OF DECMATE, BUT IMPLEMENTS SETUP COMMAND.
+
+/      011     04-JUN-1986     NEW FEATURES.                   SSTA
+
+/              'PRQ3' CODE CONDITIONALS.  ROM SETUP COMMAND IMPLEMENTED FOR DMII/III.
+/              AUTOMATIC UPPERCASE SELECT ON RETURN FROM CONNECT.
+
+/      010     13-MAR-1986     BUG FIX.                        MARTYN HEMMINGS (MART)
+
+/              FULL DISK HANDLED WELL.
+
+/      009     13-MAR-1986     BUG FIX.                        MART
+
+/              CLEAN UP BREAK AND GET.
+\f/     008     12-MAR-1986     BUG FIX.                        MART
+
+/              CLEAR  INPUT  CHARACTERS  FROM  COMMUNICATIONS PORT WHEN IN  IDLE
+/              LOOP.
+
+/      007     11-MAR-1986     NEW FEATURES AND BUG FIX.       MARTYN HEMMINGS AND
+/                                                              SSEP STADELMANN
+/                                                              (MART+SSTA)
+
+/              INTERRUPT DRIVEN AND BUG FIX.
+
+/      006     10-MAR-1986     NEW FEATURE.                    MART+SSTA
+
+/              DEVICE PARSE ON GET.
+
+/      005     10-MAR-1986     BUG FIX.                        MART+SSTA
+
+/              NO DATE IN FILE WITH <^Z> INTACT.
+
+/      004     10-MAR-1986     NEW FEATURES AND BUG FIX.       MART+SSTA
+
+/              MAXIMUM  RECEIVE  BUFFER  FIXUP  ('RTERMI'),  15  SECOND TIME-OUT
+/              DURING CONNECT.
+
+/      003     10-MAR-1986     BUG FIX.                        SSTA
+
+/              TWO PAGE HANDLER FIX.
+
+/      K08MIT.PAL  COPIED  TO  DEC  ENGINEERING NETWORK (NODE LSMVAX::) ULTIMATELY TO
+/      EUROPE (NODE VIRGIN::) WHERE PROGRAM BECAME KERMIT.PAL AND KERCOM.PAL.
+
+/      KERMIT.PAL  AND KERCOM.PAL ARE TWO SOURCE FILES ASSEMBLED TOGETHER TO  PRODUCE
+/      THE RUNNING KERMIT-8.  *THEY ARE FOR THE DECMATE II/III/III-PLUS ONLY.*
+
+/      002     18-JUL-1985     ORIGINAL RELEASE.               RANDY HIPPE
+
+/      18-JUL-1985 VERSION RELEASED TO CUCCA BY JERRY SANDS AND RANDY HIPPE OF:
+
+/      BUREAU OF ENGRAVING, INC.
+/      3311 BROADWAY N.E.
+/      MINNEAPOLIS, MN  55413
+/      (612) 623-0900 X218
+
+/      CUCCA  RENAMED  FILE  (KER8.PAL)  TO  K08MIT.PAL  WHICH  CONFORMS  TO   NAMING
+/      CONVENTION OF KERMIT FILES.
+
+/      K08MIT SUPPORTS CONNECT, BYE (REALLY FIN), EXIT, SEND, GET, RECEIVE ONLY.
+
+/      PROGRAM PRONE  TO  GETTING  "CONFUSED" AND OUTPUTS FILE DATE ATTRIBUTE BOTH AS
+/      'CAPAS' BYTE FEATURE  AND  ASCII  TEXT INSERTED INTO CONTENTS OF FILE AHEAD OF
+/      FILE DATA.  COMMAND PROCESSOR ACCEPTS UPPER-CASE COMPLETE COMMANDS ONLY.  <^C>
+/      ABORT FEATURE TAKES VERY LONG TIME TO ACT (IF AT ALL!).  MANY KERMITS WILL NOT
+/      WORK WITH K08MIT;  HOWEVER, K08MIT WAS TESTED SUCCESSFULLY WITH KERMIT-20.
+
+/      001     30-JUL-1984     FIRST VERSION (KER8.PAL).       JERRY SANDS
+\f/     HARDWARE HINTS AND KINKS.
+
+
+/      KERMIT-12 REQUIRES THE FOLLOWING STANDARD OS/8 FAMILY CONFIGURATION:
+
+/      PDP-8 FAMILY MEMBER WITH AT LEAST 8K MEMORY.
+
+/      OS/8 SYSTEM DEVICE (WITH OS/8 FAMILY OPERATING SYSTEM RESIDENT).
+
+/      KL8-COMPATIBLE CONSOLE INTERFACE.
+
+/      7/8-BIT ASCII EXTERNAL CONSOLE TERMINAL DEVICE (TTY:).
+
+/      KL8-COMPATIBLE REMOTE INTERFACE TO OTHER KERMIT.
+
+/      NOTE:  ASSEMBLY  PARAMETERS  OF  KERMIT-12  ALLOW FOR LOCAL KERMIT CONTROLLING
+/      TERMINALS TO BE OTHER  THAN  THE  PRIMARY  OS/8  CONSOLE  DEVICE.   THE ACTUAL
+/      HARDWARE MUST STILL CONFORM TO  THE  SAME REQUIREMENTS (THE DEVICE CODES WOULD
+/      THEN BE USER-SPECIFIED AND DIFFER FROM  THE  STANDARD  03/04)  AS THE STANDARD
+/      CONSOLE INTERFACE AND TERMINAL.
+
+/      SPECIAL DECMATE CONSIDERATIONS:
+
+/      DECMATE  USAGE IS USUALLY OBTAINED BY  ASSEMBLING  FOR  THE  STANDARD  CONSOLE
+/      DEVICE  (03/04),  AS  THE  BUILT-IN  FIRMWARE/SLUSHWARE  OF  THE  DECMATES  IS
+/      SUFFICIENTLY COMPATIBLE WITH THE PDP-8 HARDWARE FOR KERMIT-12'S  REQUIREMENTS.
+/      (THE ONLY OTHER ACCEPTABLE CONSOLE DEVICE ON THE DECMATE IS THE PRINTER PORT.)
+
+/      DECMATE  REMOTE  COMMUNICATIONS  PORTS  ARE    *RADICALLY*    DIFFERENT   FROM
+/      KL8-COMPATIBLE PORTS.  THESE ARE HANDLED AUTOMATICALLY BY ONCE-ONLY CODE WHICH
+/      DETECTS  THE  USAGE  OF  KERMIT-12  ON  THE    SPECIFIC  DECMATE  SYSTEM,  AND
+/      SELF-CONFIGURATION AS APPROPRIATE.  THERE IS ONE EXCEPTION  TO THIS, NAMELY IF
+/      THE COMMUNICATIONS PORT CODE IS ASSEMBLED FOR THE PRINTER  PORT  (32/33), THEN
+/      THE PRINTER PORT, *NOT* THE COMMUNICATIONS PORT WILL BE USED.    THE  STANDARD
+/      ASSEMBLY  OF  KERMIT-12 IS FOR A PDP-8 WITH DEVICE 40/41 COMMUNICATIONS  PORT.
+/      THIS DESIGNATED VERSION WILL SELF-CONFIGURE WHEN EXECUTED ON A DECMATE.
+\f/     CONFIGURATION RESTRICTIONS:
+
+/      WHEN  INTERRUPTS  ARE SUPPORTED AGAIN, DEVICES SUCH AS THE TD-8/E WON'T  WORK.
+/      THE  NON-INTERRUPT  VERSION  SHOULD WORK TO 19200 BAUD ON THE PDP-8/E CPU,  SO
+/      THIS  SHOULD NOT BE A PROBLEM.  INTERRUPT-DRIVEN VERSIONS OF KERMIT-12 MUST BE
+/      RUN ONLY  ON  SYSTEMS  WHERE  *ALL*  INTENDED  DEVICES CAN HAVE THEIR HANDLERS
+/      INTERRUPTED BY THE CONSOLE AND REMOTE LINE INTERRUPT HANDLERS.  WHEN IN DOUBT,
+/      THE NON-INTERRUPT VERSION MUST BE USED (CURRENTLY THE ONLY VERSION).
+
+/      IF FLOW CONTROL IS  DISABLED  (DUE  TO  XON/XOFF  BEING  UNAVAILABLE) THEN THE
+/      CONSOLE BAUD RATE MUST MEET  OR  EXCEED  THE  REMOTE LINE RATE.  THE USER MUST
+/      TAKE MINIMAL CARE NOT TO OVERLOAD  THE  INTERNAL BUFFERS OF KERMIT-12, AS THIS
+/      WILL YIELD THE ERROR MESSAGE:  KEYBOARD INPUT ERROR!
+
+/      THIS IS NOT LIKELY TO OCCUR UNLESS  ONE  "PLAYS"  WITH  A  KEYBOARD  WHICH CAN
+/      GENERATE NUMEROUS ESCAPE SEQUENCES AS THE BUFFERS ARE  QUITE  ADEQUATE FOR ALL
+/      REASONABLE TERMINAL APPLICATIONS.  SIMILARLY, IF THE REMOTE LINE DOES NOT OBEY
+/      XON/XOFF  PROTOCOL  (WHILE  KERMIT-12  HAS  IT  ENABLED), THEN INTERNAL BUFFER
+/      OVERFLOW WILL YIELD THE ERROR MESSAGE:  REMOTE LINE INPUT ERROR!
+
+/      THESE ERRORS ARE EXTREMELY UNLIKELY AND CAN ONLY BE CREATED BY  MISUSE OF FLOW
+/      CONTROL (THE ONLY EXCEPTION TO THIS IS THE ATTEMPT TO USE KERMIT-12  WITH  THE
+/      CONSOLE  BAUD  RATE  SLOWER  THAN  THE REMOTE LINE BAUD RATE WITH FLOW CONTROL
+/      DISABLED).  IF FLOW CONTROL IS ENABLED AND OBEYED THEN THE BUFFERING OF REMOTE
+/      LINE INPUT  WILL  OCCUR  WHILE SHORT PAUSES OCCUR ON THE CONSOLE (ASSUMING THE
+/      USER FREEZES/UNFREEZES THE  DISPLAY OFTEN AND THE CONSOLE DISPLAY BAUD RATE IS
+/      FASTER THAN THE REMOTE LINE BAUD RATE) WITH PRACTICALLY NO REMOTE LINE DELAY.
+
+/      FLOW CONTROL IS NOT  YET  SUPPORTED  DURING KERMIT TRANSFERS.  SINCE KERMIT-12
+/      DOES  NOT SUPPORT SLIDING WINDOWS,  KERMIT-12  WILL  NEVER  GENERATE  OUTGOING
+/      XON/XOFF SEQUENCES.  FUTURE REVISIONS WILL  SUPPORT INCOMING XON/XOFF FROM THE
+/      REMOTE KERMIT.  XON/XOFF PROTOCOL DURING CONNECT  MODE IS COMPLETELY AVAILABLE
+/      AT THE USER'S OPTION.
+
+/      CONSOLE TERMINALS ARE REQUIRED TO SUPPORT "GLASS TTY:"  FEATURES,  I.E.    THE
+/      PRINTING ASCII CHARACTER SET (LOWER-CASE DESIRABLE) AND THE CONTROL CHARACTERS
+/      <CR>, <LF>, AND <BEL> (THE LAST FOR VARIOUS AUDIBLE REPORTS  ONLY).  TERMINALS
+/      LACKING LOWER-CASE  SUPPORT  SHOULD "FOLD" LOWER-CASE CHARACTERS TO UPPER-CASE
+/      AUTOMATICALLY.  TERMINALS  SUCH  AS  THE VT05 CAN HAVE THE KEYBOARD LOWER-CASE
+/      ENABLED, AS KERMIT-12 SUPPORTS  OPTIONAL  OUTPUT FOLDING.  THE UPPER-CASE ONLY
+/      OPTION SHOULD BE ENABLED FOR  TERMINALS WHICH IGNORE LOWER-CASE INPUT FROM THE
+/      HOST,  AS KERMIT-12 GENERATES NUMEROUS LOWER-CASE  MESSAGE  CHARACTERS  (WHICH
+/      BECOME UPPER-CASE IF THIS OPTION IS SET).   THE <BS> CHARACTER IS REQUIRED FOR
+/      VISUAL  RUBOUT  (<BS>  <SPACE>  <BS>)  ONLY.   FUTURE  VERSIONS  WILL  SUPPORT
+/      HARD-COPY BACKSPACE TO REMOVE THIS REQUIREMENT.  ALL TERMINAL  FEATURES  (SUCH
+/      AS ACTUAL VT-100 FUNCTIONALITY) ARE FREELY PASSED TO THE HOST  DURING  CONNECT
+/      MODE;  THE ONLY CHARACTER ACTUALLY RESERVED IS THE ESCAPE CHARACTER WHICH WILL
+/      BE  TREATED  AS  A SEVEN-BIT CHARACTER ONLY.  IF THE USER PRESSES  THE  ESCAPE
+/      CHARACTER TWICE,  THEN  THE  SEVEN-BIT REPRESENTATION OF THE CHARACTER IS SENT
+/      ONCE;  THERE  IS  NO  WAY  TO SEND THE ESCAPE CHARACTER WITH THE HIGH-BIT SET.
+/      SINCE THE ESCAPE CHARACTER  ITSELF  CAN  BE SET TO ALMOST ANY SEVEN-BIT VALUE,
+/      THIS SHOULD NOT BE A SERIOUS LIMITATION.  TERMINALS THAT DON'T "BEEP" WHEN THE
+/      <BEL> CHARACTER IS SENT SHOULD NOT  OUTPUT  A  PRINTABLE RENDITION OF THE <^G>
+/      CHARACTER, AS THIS WOULD DISRUPT THE TERMINAL OUTPUT AND INTERNAL COLUMN COUNT
+/      DURING VARIOUS MESSAGE SEQUENCES, ETC.
+\f/     KL-8/E INTERFACES SHOULD BE SETUP WITH THE FOLLOWING STANDARD SETTINGS:
+
+/      1 STOP BIT ABOVE 110 BAUD WITH 8 BITS DATA.
+
+/      FUNCTIONAL  BAUD RATES INCLUDE 110, 150, 300, 600,  1200,  2400,  4800,  9600,
+/      19200, 38400 AND 76800.  2400 BAUD REQUIRES A  REVISION  "B"  OR  BETTER M8650
+/      MODULE  (IF  ONE  USES  DEC'S  DOCUMENTATION  OF AVAILABLE SPLIT-LUG OPTIONS).
+/      ACTUAL  BAUD  RATES  UP TO APPROXIMATELY 100 KBAUD SHOULD WORK WHEN  KERMIT-12
+/      BECOMES  INTERRUPT-DRIVEN.    RATES  OTHER THAN 110 BAUD REQUIRE A 19.6608 MHZ
+/      BAUD-RATE OSCILLATOR.
+
+/      THE BAUD  RATES STATED ABOVE ARE ACTUALLY AVAILABLE ON THE KL-8/E, BUT REQUIRE
+/      A SINGLE SOLDER  JUMPER  TO  IMPLEMENT  THE  PROPER BAUD RATE ABOVE 2400 BAUD.
+/      CHANGING BAUD-RATE GENERATOR CRYSTALS  WILL  PRODUCE OTHER RATES AS NECESSARY.
+/      (SEND INQUIRIES  TO CLA SYSTEMS FOR INFORMATION REGARDING KL-8/E MODIFICATIONS
+/      INCLUDING UPGRADED BAUD-RATE  OSCILLATORS,  ETC.) KERMIT-12 HAS BEEN TESTED TO
+/      9600 BAUD AND SHOULD WORK TO 19200 BAUD (AS OF THE CURRENT VERSION).
+
+
+/      KL8-J/A INTERFACES SHOULD BE SETUP WITH THE FOLLOWING STANDARD SETTINGS:
+
+/      1 STOP BIT ABOVE 110 BAUD WITH 8 BITS DATA NO PARITY.
+
+/      FUTURE  VERSIONS  OF KERMIT-12 WILL SUPPORT VARIOUS SOFTWARE-GENERATED  PARITY
+/      OPTIONS.  THE FRAMING AND OVERRUN ERRORS CAN BE ENABLED AND WILL EVENTUALLY BE
+/      SUPPORTED (BUT THE PARITY GENERATOR SHOULD BE DISABLED TO PREVENT  INTERACTION
+/      WITH THE SOFTWARE USE OF PARITY GENERATION/DETECTION).
+
+/      ALL BAUD RATES ARE SUPPORTABLE:
+
+/      110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.
+
+/      19200 BAUD IS ACHIEVED BY CUTTING JUMPER "W2" AND ADDING JUMPER  "W5" AND THEN
+/      SETTING THE BOARD FOR WHAT IS NORMALLY 9600 BAUD.  A WESTERN DIGITAL TR-1602-B
+/      OR  EQUIVALENT  UART  IS  REQUIRED TO SUPPORT 19200 BAUD;  MOST OF THE  RECENT
+/      PRODUCTION  DEC M8655 BOARDS USE THE SMC COMM 2017 UART WHICH MEETS OR EXCEEDS
+/      THIS REQUIREMENT.   EARLY  M8655 BOARDS USE GI UARTS IN CERAMIC PACKAGES WHICH
+/      *CANNOT* BE USED AT 19200 BAUD (MANY ARE FLAKY AT 9600 BAUD!).
+
+/      RECEIVE BAUD RATE SHOULD  BE IDENTICAL TO TRANSMIT BAUD RATE.  (DO NOT SET THE
+/      RECEIVE=150 BAUD SWITCH!)
+\f/     OTHER INTERFACES:
+
+/      DKC-8/A (8/A OPTION BOARD #1)  INTERFACES  SHOULD  BE SETUP AS PER THE KL8-J/A
+/      SPECIFICATIONS INCLUDING THE REQUIREMENTS OF THE UART.  SOME DEC DOCUMENTATION
+/      INDICATED A PROHIBITION ON THE USE OF  19200 BAUD, BUT THIS IS OBVIATED BY THE
+/      USE OF THE SAME UARTS AS IN THE KL8-J/A.
+
+/      EARLIER DEVICES SUCH AS PT08, DP-12, KL-8/F OR DC02 (CHANNEL ZERO ONLY) SHOULD
+/      WORK CORRECTLY AS FACTORY WIRED (MOST OF THESE DEVICES  DO NOT SUPPORT OPTIONS
+/      KERMIT-12  WOULD  REQUIRE  TO  BE  DISABLED  ANYWAY.    THESE  INCLUDE  PARITY
+/      GENERATION,  FRAMING  ERROR  DETECTION,  ETC.).  TO UTILIZE THESE DEVICES, THE
+/      ASSEMBLY PARAMETERS  FOR  USER DEVICES AND THEIR RESPECTIVE DEVICE CODE VALUES
+/      SHOULD BE GIVEN  DURING  ASSEMBLY  (SEE ASSEMBLY INSTRUCTIONS).  PROPER DEVICE
+/      CODE VALUES MUST BE  OBTAINED  FOR  THE  SELECTED INTERFACE, AS THERE ARE MANY
+/      ACTUAL POSSIBILITIES.  (DP-12 DEVICES  ARE  GENERALLY DEVICE 40/41;  PT08/DC02
+/      INTERFACES ARE GENERALLY DEVICE 11/12, ETC.)
+\f/     ASSEMBLY INSTRUCTIONS.
+
+/      KERMIT-12 CAN BE ASSEMBLED BY EITHER OF TWO METHODS:
+
+
+/      P?S/8 METHOD:
+
+/      ASSUMING THE EXTENDED-LENGTH FILE KERM12 IS  THE  SOURCE  FILE,  THE FOLLOWING
+/      COMMAND WILL PRODUCE A FULLY ORNAMENTED LISTING:
+
+/      .PAL KB1,KB2,KB3,KB4<KERM12(ACEJLMNPQSX8)
+
+/      OPTION SWITCH BREAKDOWN:
+
+/      /A      ALL SYMBOLS IN SYMBOL PRINTOUT.
+
+/      /C      OPTIMIZE  CORE  DURING ASSEMBLY FOR MORE SYMBOLS,  LESS  BUFFERS.
+/              THIS OPTION SHOULD BE DELETED IF MORE THAN  8K  IS  AVAILABLE FOR
+/              ASSEMBLY.
+
+/      /E      FORGET LITERAL BOUNDARIES WHEN LEAVING THE CURRENT PAGE.
+
+/      /J      *DO NOT* TERMINATE TEXT STRINGS WITH EXTRA ZERO WORD.
+
+/      /L      PERFORM SECOND-PASS LISTING.
+
+/      /M      CHAIN TO MAP FOR BITMAP OUTPUT AT END OF ASSEMBLY.
+
+/      /N      ENABLE NEATNESS ADORNMENTS TO LISTING OUTPUT.
+
+/      /P      ENABLE PRINTER-ORIENTED (WIDE MODE) LISTING OUTPUT.
+
+/      /Q      ENABLE LITERALS ONLY, GENERATED LINKS ARE ERRORS.
+
+/      /S      ENABLE SYMBOL TABLE PRINTOUT.
+
+/      /X      ENABLE CROSS-REFERENCE OUTPUT AT END OF ASSEMBLY.
+
+/      /8      ENABLE FULL SYMBOL TABLE INCLUDING LINC MODE CROSS ASSEMBLY.
+
+/      THE NUMBER OF BINARY FILES REQUIRED (KB1, KB2, KB3, ETC.) IS  TO BE DETERMINED
+/      AT ASSEMBLY TIME, AS KERMIT-12 WILL TEND TO GROW LARGER AS FEATURES ARE ADDED.
+
+/      P?S/8 PAL IS THE PREFERRED METHOD  OF ASSEMBLING K12MIT DURING DEVELOPMENT DUE
+/      TO SUPERIOR ERROR DIAGNOSTICS AND OVERALL SPEED.   K12MIT COULD GROW TO A SIZE
+/      BEYOND THE CAPABILITIES OF OS/8 CREF.  THIS  LIMITATION  CANNOT  APPLY  TO THE
+/      P?S/8 DEVELOPMENT ENVIRONMENT.
+
+/      P?S/8 PAL CAN PRODUCE A LISTING OF K12MIT, BUT THE BINARY FILES CREATED BY THE
+/      ASSEMBLY  MUST BE TRANSFERRED TO AN OS/8 ENVIRONMENT FOR USE, SINCE K12MIT (AS
+/      SPECIFICALLY WRITTEN) IS FOR THE OS/8 FAMILY OF SYSTEMS ONLY.
+
+/      NOTE:  P?S/8 IS *NOT* A DEC PRODUCT;  IT IS SOLD COMMERCIALLY AND IS AVAILABLE
+/      FREE  OF  CHARGE (EXCEPT FOR MEDIA HANDLING CHARGES, ETC.) *ONLY* TO QUALIFIED
+/      INSTITUTIONS.  CONTACT CJL FOR ADDITIONAL INFORMATION ON ACQUIRING P?S/8.
+\f/     OS/8 FAMILY OF SYSTEMS METHOD:
+
+/      K12MIT.PA CAN BE ASSEMBLED WITH PAL8 VERSION B0 WHICH IS AVAILABLE FROM  DECUS
+/      AS PART OF THE OS/278 RELEASE.  PAL8 VERSION B0 WILL RUN ON  ANY  OS/8  FAMILY
+/      SYSTEM,  AS  IT  HAS  NO  HARDWARE  DEPENDENCIES  BEYOND  THE  ORIGINAL  PDP-8
+/      REQUIREMENT (NO BSW OR IAC ROTATE OR CAF OR R3L INSTRUCTIONS AS WAS INTENDED).
+/      THIS ALSO APPLIES TO CREF  VERSION B0 WHICH IS REQUIRED WHEN A CROSS-REFERENCE
+/      IS REQUESTED.  PAL8 VERSION B0  AND  CREF  VERSION B0 ARE AVAILABLE AS PART OF
+/      THE KERMIT-12 DISTRIBUTION AS K12PL8.ENC AND K12CRF.ENC RESPECTIVELY.  SEE THE
+/      DOCUMENTATION OF K12DEC FOR INFORMATION ON PRODUCING PAL8.SV  AND CREF.SV FROM
+/      THESE ENCODED FILES.
+
+/      ASSUMING CCL IS ENABLED, THE FOLLOWING COMMAND WILL PRODUCE A BINARY AND FULLY
+/      ORNAMENTED LISTING:
+
+/      .PAL DEV:K12MIT.BN,DEV:K12MIT.LS,DEV:KSCR.TM<DEV:PARAM.PA,DEV:K12MIT.PA(CEFMW)
+
+/      DEV:  IS THE APPLICABLE DEVICE WHERE THE FILES RESIDE.    STANDARD  EXTENSIONS
+/      ARE  ASSUMED  (.BN  FOR  BINARY, .LS FOR LISTING, .PA FOR PAL  SOURCE).    THE
+/      KSCR.TM  TEMPORARY  OUTPUT FILE SPECIFICATION IS OPTIONAL, BUT IS DEFAULTED TO
+/      SYS:CREFLS.TM IF  NOT  EXPLICITLY GIVEN.  MANY SYSTEM DEVICES ARE TOO SMALL TO
+/      SUPPORT THIS TEMPORARY  FILE,  THUS  THE  FILE  MAY  BE  DIRECTED  TO  ANOTHER
+/      AVAILABLE DEVICE WITH SUFFICIENT SPACE.
+
+/      THE PARAM.PA FILE IS OPTIONAL AND USED TO PASS SHORT USER PARAMETERS, ETC.  TO
+/      THE ASSEMBLY.
+
+/      OPTION SWITCH BREAKDOWN:
+
+/      /C      CHAIN TO CREF.SV TO PRODUCE A CROSS-REFERENCED LISTING FILE.
+
+/      /E      GENERATED LINKS ARE ERRORS.
+
+/      /F      *DO NOT* TERMINATE TEXT STRINGS WITH EXTRA ZERO WORD.
+
+/      /M      USE MAMMOTH SYMBOL TABLE OPTION FOR CREF.
+
+/      /W      FORGET LITERAL BOUNDARIES WHEN LEAVING THE CURRENT PAGE.
+
+/      LOADING INSTRUCTIONS:
+
+/      .LOAD DEV:K12CLR,K12MIT.BN      THIS LOADS THE BINARY CLEAR AND KERMIT
+/      .SAVE DEV K12MIT.SV=1           THIS SAVES THE CORE IMAGE
+
+/      THE  JOB STATUS WORD (=1) INDICATED THAT K12MIT.SV LOADS INTO 10000-11777, BUT
+/      SHOULD NOT BE SAVED/RESTORED  WHEN  THE  USR  IS  LOADED  OVER  THIS  AREA  OR
+/      DISMISSED (THE USR IS ACTUALLY  NEVER  DISMISSED  IN NORMAL K12MIT OPERATION).
+/      OTHER BITS MAY BE SET AT  THE  USER'S  OPTION,  BUT  ARE UNNECESSARY;  THE BIT
+/      INDICATED SERVES ONLY TO REDUCE SYSTEM OVERHEAD  REGARDING  THE DISPOSITION OF
+/      10000-11777.  THE  BINARY  FILE  K12CLR.BN  (CREATED  BY ASSEMBLING K12CLR.PA)
+/      LOADS ZEROES INTO ALL  OF  MEMORY  TO  CREATE A "CLEAN" CORE IMAGE FILE, WHICH
+/      MAKES THE ENCODED BINARY FILE SMALLER DUE TO REPEAT COMPRESSION.
+\f/     PASSING SHORT PARAMETER FILES.
+
+/      WHEN INSERTING A SHORT USER MODIFICATION FILE IN THE INPUT STREAM  (PARAM.PAL)
+/      THE FOLLOWING SHOULD BE NOTED:
+
+/      ALWAYS  PUT  THE  SHORT  PARAMETER  FILE  (CONTAINING EQUATED SYMBOLS SUCH  AS
+/      USER=1, ETC.) IN FRONT OF K12MIT.PAL.
+
+/      IF TTY:  IS USED FOR DIRECT TYPE-IN OF THESE  PARAMETERS, THE INFORMATION NEED
+/      ONLY BE TYPED ENDING WITH <^Z> DURING PASS 1.  SUBSEQUENT  PASSES  REQUIRE THE
+/      ENDING <^Z> ONLY.  IF THIS METHOD IS USED, A LISTING WITHOUT  THE  USER  INPUT
+/      WHICH  DID THE CUSTOMIZING OF KERMIT-12 CAN BE CREATED.  NOTE:  IF  BINARY  IS
+/      GENERATED BY THE CONTENTS OF THE PARAMETER FILE (SUCH AS USE OF THE LOCAL TEXT
+/      MESSAGE,  ETC.),  THE  INFORMATION MUST BE TYPED IN DURING PASS 2.  THE PASS 3
+/      LISTING MAY  CONTAIN  THE INFORMATION IF SO DESIRED, REQUIRING A REPETITION OF
+/      THE INPUT.   PASS  1  INPUT  OF  THE INFORMATION IS EFFECTIVELY IGNORED, AS NO
+/      DEFINITIONS ARE CREATED ('LCLMSG' IS DEFINED ELSEWHERE, ETC.).
+
+/      EXPERIENCED PDP-8 USERS NEW TO PAL8 VERSION B0 TAKE SPECIAL NOTICE:
+
+/      DUE TO HARDWARE LIMITATIONS OF THE DECMATES, THE KEYBOARD FLAG WILL BE CLEARED
+/      DURING PDP-8 PAL8 B0 OPERATION.  THE KL8E TTY:  HANDLER WILL NO LONGER BE ABLE
+/      TO BUFFER <^Z> DURING THE ASSEMBLY;  YOU MUST  WAIT UNTIL THE HANDLER ACCESSES
+/      THE KEYBOARD ON EACH PASS *THEN* PRESS <^Z> TO CONTINUE THE ASSEMBLY.
+
+
+/      CREATING A CUSTOM MESSAGE FROM THE PARAMETER FILE.
+
+/      IF  SO  DESIRED,  A CUSTOM LOCAL HEADER MESSAGE MAY BE ADDED BY INSERTING  THE
+/      FOLLOWING INTO THE PARAMETER FILE:
+
+/      BUFFLD= 10              /THESE PROBABLY
+/      FILBUFF=2000            /WON'T CHANGE!
+
+/      GENMSG= 0               /DON'T GENERATE STANDARD (NULL) MESSAGE
+/      UMSG=   0               /DON'T GENERATE STANDARD (DUMMY) USER MESSAGE
+
+/      FIELD   BUFFLD%10       /FIELD FOR TEXT MESSAGE
+
+/      *FILBUFFER              /LOCAL MESSAGE LOADS THERE
+
+/LCLMSG,TEXT   "%^I^NSERT ^L^OCAL ^M^ESSAGE ^H^ERE!%"
+
+/      ZBLOCK  LCLMSG+40-.     /ZERO REST OF MESSAGE AREA
+
+/      TEXT IS IN  UPPER/LOWER-CASE  SIXBIT  WITH  '^'  MEANING SHIFT CASE (INITIALLY
+/      LOWER-CASE) AND '%' MEANING <CR>, <LF>.
+\f/     OTHER METHODS:
+
+/      KERMIT-12  *CANNOT*  BE ASSEMBLED  BY  PAL10  (LAST  KNOWN  VERSION  OF  PDP-8
+/      CROSS-ASSEMBLER FOR TOPS10 (142)) BECAUSE IT LACKS CERTAIN FEATURES:
+
+/      DOES NOT SUPPORT 'RELOC' PSEUDO-OP.
+
+/      DOES NOT SUPPORT PAGE ZERO  REDEFINE  (CAUSES  "Z" ERROR ON SOURCE FILES WHICH
+/      DON'T HAVE ERRORS WHEN ASSEMBLED BY EITHER P?S/8 PAL OR OS/8 PAL8).
+
+/      INCORRECTLY HANDLES 'ZBLOCK' PSEUDO-OP (LEADS TO  "Q"  ERROR  ON  SOURCE FILES
+/      WHICH DON'T HAVE ERRORS WHEN ASSEMBLED BY EITHER P?S/8 PAL OR OS/8 PAL8).
+
+/      DOES NOT SUPPORT LITERAL "FORGETTING" (P?S/8 PAL OPTION /E OR OS/8 PAL8 OPTION
+/      /W) WHICH IS REQUIRED FOR DEFINING OVERLAY AREAS, ETC.
+
+/      DOES NOT SUPPORT TEXT WITHOUT ZERO WORD FILL (P?S/8 PAL OPTION /J OR OS/8 PAL8
+/      OPTION /F FULFILLS THIS REQUIREMENT) WHICH IS REQUIRED FOR TEXT MESSAGES.
+
+
+/      P?S/8 PAL IS AN IMPROPER SUPERSET OF PAL10.  PAL10 SUPPORTS MACRO-8 MODE AS AN
+/      OPTION AND AUTOMATIC FIELD DUMP BITMAPS;  ALL OTHER KNOWN PAL10 FEATURES EXIST
+/      IN  P?S/8  PAL  INCLUDING  THE  SUPPORT  OF  THE  AUTOMATIC FIELD DUMP  BITMAP
+/      PSEUDO-OPS ('ENBITS' AND 'NOBITS').
+
+/      OS/8  PAL8 (VERSION B0) IS A SUBSET OF P?S/8 PAL WHICH HAS  SEVERAL  SYNTACTIC
+/      QUIRKS (WHICH  ARE AVOIDABLE, BUT NONETHELESS ARE INCOMPATIBLE WITH BOTH P?S/8
+/      PAL  AND  PAL10    IN  CERTAIN  MINOR  WAYS);    REGARDLESS,  PAL8  LACKS  THE
+/      COMPATIBILITY PROBLEMS OF PAL10.
+
+/      MAINTAINING SOURCE COMPATIBILITY.
+
+/      KERMIT-12 SOURCE FILE CONVENTIONS DEMAND THE USE OF THE COMMON SUBSET OF P?S/8
+/      PAL AND OS/8 PAL8 (VERSION  B0).    CERTAIN  FORMS  OF  STATEMENTS  SHOULD  BE
+/      AVOIDED:
+
+/      TAD                     /NOT LEGAL IN PAL8
+/      0+TAD                   /NOT LEGAL IN PAL10, AND POSSIBLY WRONG IN PAL8
+/      TAD     (3)+1           /GENERATES SAME AS "TAD (3+1)" IN PAL8
+/      -A!-B                   /UNARY OPERATOR HANDLED WRONG IN PAL8
+/      I+N                     /NOT LEGAL IN PAL8
+/      N+I                     /NOT LEGAL IN PAL8
+/      I I                     /NOT LEGAL IN PAL8
+
+/      THIS  REQUIREMENT IS EASILY MET BY  KERMIT-12  AS  MOST  OF  THESE  CASES  ARE
+/      ESOTERIC QUIRKS AND NOT NEEDED FOR THIS ASSEMBLY.
+
+/      THE RESTRICTIONS OF PAL10 (EVEN THOUGH IT  HAS  OTHER DESIRABLE FEATURES, MOST
+/      OF WHICH IT SHARES WITH P?S/8 PAL) ARE  TOO SEVERE TO ALLOW USABLE ASSEMBLY OF
+/      THIS  PROGRAM.    BETTER  CROSS-ASSEMBLERS  MAY  EXIST  ELSEWHERE  WHICH   ARE
+/      SOURCE-COMPATIBLE WITH KERMIT-12.
+\f/     USE OF P?S/8 LANGUAGE EXTENSIONS.
+
+/      P?S/8 OFFERS SEVERAL USEFUL FEATURES OVER PAL8 (AND PAL10) WHICH MAY BE USEFUL
+/      FOR  ASSEMBLY  DEVELOPMENT OF KERMIT-12.  THESE INCLUDE LANGUAGE ELEMENTS SUCH
+/      AS "TAD (3)+1" HANDLED CORRECTLY, OR PSEUDO-OPS SUCH AS "PAUSE EXPR" WHERE THE
+/      VALUE OF 'EXPR'  WILL  BE  DISPLAYED ON THE SYSTEM CONSOLE DURING THE ASSEMBLY
+/      WHEN THAT POINT IN  THE  ASSEMBLY  IS  REACHED.   TO ACCESS THESE FEATURES AND
+/      STILL  PROVIDE COMPATIBILITY WITH PAL8  (VERSION  B0),  THE  FOLLOWING  CODING
+/      TECHNIQUE IS SUGGESTED:
+
+
+/      IFNDEF  PQS     <PQS=0> /WILL BE 0 ON PAL8, PAL10
+
+
+/      IFZERO  PQS     <       /DO PAL8, ETC. STUFF HERE
+
+/      FOO=    (TABLE)         /DEFINE POINTER TO ADDRESS OF TABLE
+
+/      TAD     FOO-1           /GET (POINTER TO ADDRESS OF TABLE)-1
+/      DCA     XR1             /SETUP AUTO-INDEX REGISTER
+
+/      WISH WE HAD PAUSE AND ERROR PSEUDO-OPS IN PAL8.
+
+/                      >       /END OF PAL8, ETC. VARIANT
+
+
+/      IFNZRO  PQS     <       /DO P?S/8 PAL STUFF HERE
+
+/      TAD     (TABLE)-1       /GET (POINTER TO ADDRESS OF TABLE)-1
+/      DCA     XR1             /SETUP AUTO-INDEX REGISTER
+
+/      IFNDEF  PASS    <PASS=0>/DEFINE PASS VARIABLE
+
+/      PASS=   PASS+1          /BUMP EVERY ASSEMBLER PASS
+
+/      PAUSE   PASS            /DISPLAY PASS NUMBER
+
+/      IFNZRO  .&4000  <
+
+/      ERROR   1234            /DISPLAY ERROR MESSAGE IF THERE ARE PROBLEMS
+
+/                      >
+
+/                      >       /END OF P?S/8 PAL VARIANT
+
+
+/      THIS ALLOWS TEMPORARY DEVELOPMENT FEATURES OR  PERMANENT ELEMENTS WHICH MAY BE
+/      MORE ELEGANTLY EXPRESSED IN P?S/8 PAL VARIANT  CODING, WHILE THE PAL8 (VERSION
+/      B0) VERSION CAN STILL BE USED (VIA DIRECT  OCTAL,  MULTIPLE EQUATE STATEMENTS,
+/      CONDITIONAL FLUSH AS IN THE ABOVE EXAMPLE, ETC.   AS  NECESSARY)  FOR STANDARD
+/      ASSEMBLY OF KERMIT-12.
+\f/     ASSEMBLY PARAMETERS.
+
+/      SEVERAL  PARAMETERS  MUST  BE  CHANGED  WITHIN  K12MIT.PA  (OR  PASSED TO  THE
+/      ASSEMBLER VIA A SHORT FILE INSERTED INTO THE ASSEMBLY STREAM BEFORE  THE  MAIN
+/      FILE):
+
+/      SETTING  KEY= [RECEIVE IOT CODE FOR  CONSOLE  KEYBOARD]  DEFINES  THE  CONSOLE
+/      KEYBOARD IOT CODE (DEFAULT IS 03).
+
+/      SETTING  TTY=  [TRANSMIT  IOT CODE FOR CONSOLE  OUTPUT]  CHANGES  THE  CONSOLE
+/      PRINTER IOT CODE (DEFAULT IS 04).
+
+/      THE FOLLOWING DEFINITIONS ARE  ESSENTIALLY  FOR  KL8-TYPE DEVICES ONLY, AS THE
+/      CODE DEMANDS KL8 HARDWARE COMPATIBILITY.    MODELS  OTHER  THAN PDP-8 (SUCH AS
+/      DECMATE) GENERALLY EITHER PLACE RESTRICTIONS ON  AVAILABLE  INTERFACES  (OTHER
+/      SOFTWARE DESIGNATES A SERIAL INTERFACE AS A  LOGICAL  PRINTER  PORT;  DECMATES
+/      SUPPORT A FIRMWARE "PRINT SCREEN" KEY WHICH ENFORCES  THIS.),  OR  DON'T ALLOW
+/      USABLE PLUG-IN OPTIONS.
+
+/      IGNORING BUILT-IN DECMATE SUPPORT, THE FOLLOWING PARAMETERS ARE ACTIVE:
+
+/      SETTING DEV30=  1       CREATES DEVICE 30/31 REMOTE LINE IOTS.
+
+/      SETTING DEV40=  1       CREATES DEVICE 40/41 REMOTE LINE IOTS.
+
+/      SETTING LEDERLE=1       CREATES DEVICE 43/44  REMOTE  LINE  IOTS (AND A CUSTOM
+/                              HEADER).
+
+/      SETTING ORIGNAL=1       CREATES  DEVICE  33/34  REMOTE   LINE  IOTS  (ORIGINAL
+/                              SETTINGS).
+
+/      SETTING SPRINT= 1       CREATES DEVICE 32/33 REMOTE LINE  IOTS (SERIAL PRINTER
+/                              PORT).
+
+/      SETTING USER=   1       CREATES DEVICE XX/XY REMOTE LINE IOTS.
+
+/      IF NONE OF THESE ARE SET, THEN DEV40=1 APPLIES BY DEFAULT.
+
+
+
+/      SETTING USER=   1       REQUIRES THE USER TO DEFINE TWO ADDITIONAL VALUES:
+
+/              XX=     [RECEIVE IOT DEVICE CODE] (DEFAULT IS 40).
+
+/              XY=     [TRANSMIT IOT DEVICE CODE] (DEFAULT IS 41).
+\f/     SETTING SPRINT= 1       INHIBITS THE BUILT-IN CHECK FOR DECMATE  OPERATION AND
+/                              USES    THE    SERIAL  PRINTER  PORT  FOUND  ON    ALL
+/                              WPS-8-CONFIGURED    PDP-8/E,  PDP-8/A  CONFIGURATIONS,
+/                              VT-78,  AND  ALL DECMATES (VT-278,  DECMATE  II,  III,
+/                              III+) FOR REMOTE COMMUNICATIONS.
+
+/      THE  USE OF THE SERIAL PRINTER PORT FOR REMOTE COMMUNICATIONS PURPOSES MAY  BE
+/      PROBLEMATIC DUE TO CONSIDERATIONS SUCH AS THE RS-232 CONNECTION TO THE PRINTER
+/      IS A  MODEM  (DCE), RATHER THAN A TERMINAL (DTE) (DECMATE II, ETC.  REQUIRES A
+/      GENDER CHANGER.), OR  THE SOFTWARE DESIGNATION OF THE PORT AS BEING ALLEDGEDLY
+/      *ONLY* FOR A PRINTER,  SUCH AS WHEN CERTAIN SYSTEMS SUPPORT THE "PRINT SCREEN"
+/      KEY AS A SCREEN DUMP  TO  THE  SERIAL PRINTER PORT, ETC.  THESE ISSUES ARE NOT
+/      RELEVANT TO KERMIT-12 OPERATION, AS THE "PRINT SCREEN" KEY IS NOT SUPPORTED BY
+/      KERMIT-12 IN THIS CONFIGURATION AS SUCH (FUTURE  VERSIONS  COULD  REDEFINE THE
+/      "PRINT SCREEN" KEY TO SUCH FUNCTIONS AS DUMP SCREEN TO A FILE, ETC.).
+
+/      SETTING BRATE= NN       SETS THE DEFAULT BAUD RATE (FOR  SYSTEMS  THAT SUPPORT
+/                              THIS  FEATURE)  FROM  A  TABLE  OF  VALUES  (0-15)  AS
+/                              FOLLOWS:
+
+/                              NN              BAUD RATE
+
+/                              00              50
+/                              01              75
+/                              02              110
+/                              03              134.5
+/                              04              150
+/                              05              300
+/                              06              600
+/                              07              1200
+/                              08              1800
+/                              09              2000
+/                              10              2400
+/                              11              3600
+/                              12              4800
+/                              13              7200
+/                              14              9600
+/                              15              19200
+
+/      SETTING ESCAPE= NNNN    SETS THE DEFAULT ESCAPE CHARACTER TO NNNN.
+
+/      SETTING FLOW=   1       ENABLES FLOW-CONTROL BY DEFAULT.
+/      SETTING FLOW=   0       DISABLES FLOW-CONTROL BY DEFAULT.
+
+/      SETTING FMODE=  0177    SETS THE DEFAULT FILE MODE TO ASCII.
+/      SETTING FMODE=  4377    SETS THE DEFAULT FILE MODE TO BINARY.
+\f/     SETTING GENMSG= 0       CAUSES  NO  BINARY TO BE GENERATED WHERE  'LCLMSG'  IS
+/                              DEFINED.  THIS ALLOWS THE PARAMETER FILE (PARAM.PA) OR
+/                              SUBSEQUENT  OVERLAY  BY  K12PCH.BN TO DEFINE THE LOCAL
+/                              HEADER MESSAGE.    THIS  PARAMETER  SHOULD  NOT BE SET
+/                              UNLESS ONE OF  THESE  METHODS IS USED, ELSE THE HEADER
+/                              MESSAGE  WILL BE UNDEFINED.    (NOTE:    IF  K12PCH.BN
+/                              GENERATES  A HEADER MESSAGE, THEN  THIS  PARAMETER  IS
+/                              UNIMPORTANT,  AS  K12PCH.BN  OVERLAYS  THE  BINARY  OF
+/                              K12MIT.)
+/      SETTING GENMSG= 1       CAUSES A HEADER MESSAGE TO BE GENERATED.  THE CONTENTS
+/                              OF  THE  MESSAGE  ARE CREATED BY SETTING LEDERLE=1  OR
+/                              UMSG=1.   IF EITHER IS ZERO, A DEFAULT (NULL)  MESSAGE
+/                              WILL BE GENERATED.
+
+/      SETTING ICLOSE= 1       ENSURES  A  <^Z>  AT  <EOF>  OF  ASCII  INPUT FILES BY
+/                              DEFAULT.
+/      SETTING ICLOSE= 0       CLOSES ASCII INPUT FILES AS RECEIVED BY DEFAULT.
+
+/      SETTING INIECHO=0       CAUSES A  FULL-DUPLEX CONNECT MODE STATE WITH NO LOCAL
+/                              CHARACTER ECHOING BY DEFAULT.
+/      SETTING INIECHO=1       CAUSES A HALF-DUPLEX  CONNECT  MODE  STATE  WITH LOCAL
+/                              ECHO OF ALL CONSOLE CHARACTERS BY DEFAULT.
+
+/      SETTING LOWER=  0       ALLOWS LOWER-CASE CONSOLE OUTPUT BY DEFAULT.
+/      SETTING LOWER=  -40     FOLDS  LOWER-CASE  CONSOLE  OUTPUT  TO  UPPER-CASE  BY
+/                              DEFAULT.
+
+/      SETTING OCLOSE= 0       PREVENTS DEFAULT SENDING OF <^Z>  AT  <EOF>  OF  ASCII
+/                              FILES.
+/      SETTING OCLOSE= 1       CAUSES  <^Z> TO BE SENT AT <EOF>  OF  ASCII  FILES  BY
+/                              DEFAULT.
+
+/      SETTING PORT=   0       CAUSES THE DP-278 PORT 0 TO BE USED  IF  KERMIT-12  IS
+/                              RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
+/      SETTING PORT=   1       CAUSES  THE DP-278 PORT 1 TO BE USED IF  KERMIT-12  IS
+/                              RUN ON A DECMATE 1 (ASSUMING SPRINT=0).
+
+/      SETTING RETCNT= NNNN    SETS THE PACKET RETRY COUNT TO NNNN BY DEFAULT.
+/      SETTING UMSG=   0       PREVENTS THE  LOCAL  USER  HEADER  MESSAGE  FROM BEING
+/                              GENERATED.
+/      SETTING UMSG=   1       CAUSES THE LOCAL  USER HEADER MESSAGE TO BE GENERATED.
+/                              THE PARAMETER GENMSG=1 IS  REQUIRED  TO  BE  SET.  THE
+/                              SOURCE MUST BE MODIFIED LOCALLY  TO CHANGE THE MESSAGE
+/                              TEXT FROM "INSERT LOCAL USER MESSAGE  HERE!,"  AS THIS
+/                              IS THE DEFAULT CONTENTS.
+\f/     KERMIT-12 FOR THE FAMILY OF 12-BIT DEC MACHINES.
+
+/      BRIEF USAGE DESCRIPTION.
+
+/      KERMIT-12 IS AN IMPLEMENTATION OF THE KERMIT PROTOCOL FOR THE FAMILY OF 12-BIT
+/      DEC (AND COMPATIBLE) MACHINES GENERALLY KNOWN AS PDP-8 OR DECMATE.
+
+/      AS OF THE CURRENT IMPLEMENTATION, THE FOLLOWING COMMANDS ARE EFFECTIVE:
+
+/      1.      CONNECT (TO REMOTE SYSTEM AS TERMINAL).
+
+/      2.      SEND FILESPEC (TO REMOTE RECEIVER OR SERVER).
+
+/      3.      RECEIVE FILESPEC (FROM REMOTE SENDER).
+
+/      4.      GET FILESPEC (FROM REMOTE SERVER).
+
+/      5.      FINISH (SERVING).
+
+/      6.      SETUP (ON DECMATE II/III/III-PLUS ONLY). **** NOT IMPLEMENTED ****
+
+/      7.      EXIT (TO OPERATING SYSTEM).
+
+/      8.      HELP (DISPLAYS HELP MESSAGE).
+
+/      FILESPEC  MAY  BE  ANY LOCAL (OS/8) FILE-STRUCTURED DEVICE:FILENAME.EXTENSION,
+/      WHERE THE  FILENAME  AND  EXTENSION WILL BE TRUNCATED TO 6 ALPHANUMERICS AND 2
+/      ALPHANUMERICS RESPECTIVELY, AS  NECESSARY (THIS IS REFERRED TO AS 6.2 FILENAME
+/      FORMAT).  THE DEVICE:    FIELD  IS  OPTIONAL;   ALL COMMANDS USING THE DEVICE:
+/      FIELD FOR LOCAL DEVICE SPECIFICATION  WILL  USE  THIS  DEVICE AS THE SOURCE OR
+/      DESTINATION AS NECESSARY FOR THE LOCAL  FILES.    IF  THE  DEVICE:    FIELD IS
+/      OMITTED, THE DEFAULT DEVICE DSK:  WILL BE USED.  THE ACTUAL DEVICE USED MAY BE
+/      SELECTED BEFORE INVOKING KERMIT-12 BY USING THE OS/8 ASSIGN COMMAND:
+
+/      .ASSIGN DEV DSK
+
+/      WHERE DEV IS ANY AVAILABLE FILE-STRUCTURED DEVICE.
+
+/      KERMIT-12 USES AN UNUSUAL SCHEME FOR ITS PROMPT:    THE  ACTUAL DEFAULT PROMPT
+/      TEXT  IS  PARTIALLY  TAKEN  FROM  THE  ACTUAL MACHINE KERMIT-12  IS  CURRENTLY
+/      EXECUTING  ON.    FOR  EXAMPLE, IF KERMIT-12 HAS DETERMINED THE  CPU  TYPE  AS
+/      PDP-8/E, THE PROMPT WILL BE:
+
+/      KERMIT-8/E>
+
+/      THIS  ALLOWS KERMIT-12 USERS (WITH DIFFERENT CPU-TYPE MACHINES) TO DISTINGUISH
+/      MESSAGES ORIGINATING  FROM  THE  RESPECTIVE  SYSTEMS.    FUTURE  VERSIONS WILL
+/      SUPPORT USER PROMPT STRINGS TO ALLOW MORE DISTINCTIVE SYSTEM MESSAGES.
+
+/      THE HELP OR CONNECT COMMANDS MAY BE USED TO DETERMINE THE CURRENT CONNECT MODE
+/      ESCAPE CHARACTER.
+\f/     COMMAND RESTRICTIONS.
+
+/      THE  SEND  COMMAND  ALLOWS   DEVICE:FILENAME.EXTENSION  (6.2)  WITH  WILD-CARD
+/      SUBSTITUTION.  A * MAY  BE  GIVEN  FOR  AN  ENTIRE  FIELD  (EITHER FILENAME OR
+/      EXTENSION OR BOTH) ONLY.  A  ?    WILL  MATCH  ANY SINGLE CHARACTER WHICH MUST
+/      EXIST IN THE ACTUAL FILENAME OR EXTENSION,  UNLESS  RIGHT-MOST  IN  THE FIELD.
+/      ALL  MATCHING FILES WILL BE SENT.  NO  OUTBOUND  FILENAME  (AS-NAME)  FACILITY
+/      EXISTS AT THIS TIME.
+
+/      THE  RECEIVE  COMMAND  ALLOWS  OPTIONAL  DEVICE:   ONLY.   *THE  FILENAME  AND
+/      EXTENSION  ARE  NOT  ALLOWED*.  NAMES OF RECEIVED FILES WILL  BE  MODIFIED  IF
+/      NECESSARY  TO  CONFORM  TO  THE  6.2  FORMAT.   *IMPLEMENTATION RESTRICTION* :
+/      CERTAIN REMOTE  FILENAMES  CONTAINING  NON-ALPHANUMERIC  CHARACTERS  MAY CAUSE
+/      KERMIT-12 TO HASTILY ABORT THE TRANSMISSION AND RETURN TO COMMAND LEVEL.
+
+/      THE GET COMMAND  ALLOWS  OPTIONAL  DEVICE:    TO  DETERMINE DESTINATION OF THE
+/      INCOMING FILES.  THE  OUTBOUND  FILESPEC  MUST  CONFORM  TO  LOCAL CONVENTIONS
+/      (FILENAME AND EXTENSION ARE NOT  LIMITED  TO  6.2  FORMAT;  THE DEVICE:  FIELD
+/      WILL NOT BE SENT TO THE  REMOTE  KERMIT  UNLESS  IT  IS  ILLEGAL  WITHIN  OS/8
+/      SPECIFICATIONS, SUCH AS TOO MANY DEVICE LETTERS.    IN  THIS CASE, THE DEFAULT
+/      DEVICE DSK:  APPLIES, AND THE ENTIRE "DEVICE"  FIELD  IS  SENT  ALONG WITH ANY
+/      FILENAME  AND EXTENSION).  CERTAIN REMOTE SYSTEMS ARE INCOMPATIBLE  WITH  THIS
+/      IMPLEMENTATION,  AS  IMBEDDED  SPACES  OR  NON-ALPHANUMERIC CHARACTERS ARE NOT
+/      ALLOWED, EVEN  THOUGH  THEY  MAY  BE REQUIRED ON THE REMOTE SYSTEM.  WILD-CARD
+/      CHARACTERS ARE ALLOWED, BUT ONLY AS SPECIFIED IN THE SEND COMMAND ABOVE.
+
+/      <^X>  OR  <^Z>  CAN BE USED TO ABORT KERMIT TRANSMISSIONS (EVENTUALLY) BUT  IS
+/      NORMALLY  A  SLOW  PROCESS,  SINCE  THE CHECKING IS DONE BY A SOFTWARE TIMEOUT
+/      SCHEME.   AT  THE  PRESENT  TIME,  THERE  IS  NO DISTINCTION BETWEEN THESE THO
+/      CHARACTERS, SO IT  IS NOT POSSIBLE TO ABORT A SINGLE FILE; THE ENTIRE BATCH OF
+/      FILES INVOLVED IN THE TRANSFER IS ABORTED.
+
+/      DECMATE II/III/III-PLUS CONSIDERATIONS:
+
+/      FUNCTION KEYS SEND <ESC>  SEQUENCES SPECIFIED BY SLUSHWARE/FIRMWARE.  ALL SOFT
+/      FUNCTION KEYS ARE THEREFORE INEFFECTIVE  (EXCEPT  FOR HOLD SCREEN WHICH ALWAYS
+/      WORKS).
+
+/      CONNECT MODE RUNS IN 8-BIT MODE.
+
+/      THE COMPOSE KEY IS ENABLED FOR USE WITH A LOADED COMPOSE TABLE.
+
+/      ANY VALID DECMATE II/III/III-PLUS CHARACTER SET  IS  ALLOWED  WHILE IN CONNECT
+/      MODE  (MCS  TCS  LINE,  ETC.).    ALL   <ESC>  SEQUENCES  ARE  PASSED  TO  THE
+/      SLUSHWARE/FIRMWARE UNMODIFIED.
+
+/      KEYBOARD UPPER-CASE LOCK WILL ALWAYS BE AUTOMATICALLY APPLIED UPON RETURN FROM
+/      CONNECT MODE.
+\f/     DEFINITIONS.                                                    /017 CJL
+
+       *200                                    /FOR DEFINITIONS        /047 CJL
+
+/      REMOTE LINE PARAMETERS; SET ONLY ONE AS NECESSARY.              /046 CJL
+
+       IFNDEF  DEV30   <DEV30= 0>              /USE DEVICE 30/31 VALUES
+       IFNDEF  DEV40   <DEV40= 0>              /USE DEVICE 40/41 VALUES
+       IFNDEF  LEDERLE <LEDERLE=0>             /USE LEDERLE LABS VALUES
+       IFNDEF  ORIGNAL <ORIGNAL=0>             /USE ORIGINAL VALUES
+       IFNDEF  SPRINT  <SPRINT=0>              /USE DEVICE 32/33 VALUES
+       IFNDEF  USER    <USER=  0>              /USE USER-DEFINED VALUES
+
+       REMOTE= DEV30+DEV40+LEDERLE+ORIGNAL     /SET REMOTE LINE IOT CODE
+       REMOTE= REMOTE+SPRINT+USER              /SET REMOTE LINE IOT CODE
+
+       IFZERO  REMOTE  <DEV40= 1>              /DEFAULT TO DEVICE 40/41 VERSION
+
+/      DEV30 PARAMETERS.
+
+       IFNZRO  DEV30                   <
+
+       IFNDEF  REC     <REC=   30>             /DEVICE 30 INPUT
+       IFNDEF  SEN     <SEN=   31>             /DEVICE 31 OUTPUT
+
+                                       >
+
+/      DEV40 PARAMETERS (DEFAULT).
+
+       IFNZRO  DEV40                   <
+
+       IFNDEF  REC     <REC=   40>             /DEVICE 40 INPUT
+       IFNDEF  SEN     <SEN=   41>             /DEVICE 41 OUTPUT
+
+                                       >
+
+/      LEDERLE PARAMETERS.                                             /038 CJL
+
+       IFNZRO  LEDERLE                 <
+
+       IFNDEF  REC     <REC=   43>             /DEVICE 43 INPUT
+       IFNDEF  SEN     <SEN=   44>             /DEVICE 44 OUTPUT
+       IFNDEF  GENMSG  <GENMSG=1>              /GENERATE LOCAL HEADER MESSAGE
+       IFNDEF  UMSG    <UMSG=  0>              /DON'T GENERATE USER MESSAGE
+
+                                       >
+
+/      ORIGNAL PARAMETERS.
+
+       IFNZRO  ORIGNAL                 <
+
+       IFNDEF  REC     <REC=   33>             /DEVICE 33 INPUT
+       IFNDEF  SEN     <SEN=   34>             /DEVICE 34 OUTPUT
+
+                                       >
+\f/     SPRINT PARAMETERS.                                              /046 CJL
+
+       IFNZRO  SPRINT                  <
+
+       IFNDEF  REC     <REC=   32>             /DEVICE 32 INPUT
+       IFNDEF  SEN     <SEN=   33>             /DEVICE 33 OUTPUT
+
+                                       >
+
+/      USER PARAMETERS.
+
+       IFNZRO  USER                    <
+
+       IFNDEF  XX      <XX=    40>             /DEFAULT TO DEVICE 40
+       IFNDEF  XY      <XY=    41>             /DEFAULT TO DEVICE 41
+       IFNDEF  REC     <REC=   XX>             /DEVICE XX INPUT
+       IFNDEF  SEN     <SEN=   XY>             /DEVICE XY OUTPUT
+       IFNDEF  GENMSG  <GENMSG=1>              /GENERATE LOCAL HEADER MESSAGE
+       IFNDEF  UMSG    <UMSG=  1>              /GENERATE USER MESSAGE
+
+                                       >
+
+/      REMOTE LINE IOT DEFINITIONS.
+
+/      RECEIVE DEFINITIONS.
+
+       RKRBIOT=REC^10+6006                     /READ REMOTE, CLEAR FLAG
+       RKSFIOT=REC^10+6001                     /SKIP ON REMOTE INPUT FLAG
+
+/      TRANSMIT DEFINITIONS.
+
+       RSBIOT= SEN^10+6003                     /SET BAUD RATE FROM AC[8-11]
+       RTLSIOT=SEN^10+6006                     /TRANSMIT CHARACTER, CLEAR FLAG
+       RTSFIOT=SEN^10+6001                     /SKIP ON TRANSMIT FLAG
+
+/      CONSOLE TTY: DEFINITIONS.                                       /017 CJL
+
+/      KEYBOARD DEFINITIONS.                                           /017 CJL
+
+       IFNDEF  KEY     <KEY=   03>     /KEYBOARD DEVICE CODE
+
+       KCCIOT= KEY^10+6002             /CLEAR CONSOLE KEYBOARD FLAG, AC
+       KRBIOT= KEY^10+6006             /READ CONSOLE KEYBOARD BUFFER, CLEAR FLAG
+       KRSIOT= KEY^10+6004             /READ CONSOLE KEYBOARD BUFFER STATIC
+       KSFIOT= KEY^10+6001             /SKIP ON CONSOLE KEYBOARD FLAG
+
+/      TELEPRINTER DEFINITIONS.                                        /017 CJL
+
+       IFNDEF  TTY     <TTY=   04>     /TELEPRINTER DEVICE CODE
+
+       TLSIOT= TTY^10+6006             /PRINT CHARACTER, CLEAR FLAG
+       TSFIOT= TTY^10+6001             /SKIP ON TELEPRINTER FLAG
+\f/     DEFAULT ESCAPE CHARACTER DEFINITION.                            /025 CJL
+
+       IFNDEF  ESCAPE  <ESCAPE="]&37>  /DEFAULT IS CONTROL-]
+
+/      DEFAULT LOWER-CASE ENABLE DEFINITION.                           /030 CJL
+
+       IFNDEF  LOWER   <LOWER= 0/-40>  /LOWER-CASE IS ALLOWED AS IS
+                                       /CHANGE TO -40 IF LOWER-CASE
+                                       /SHOULD BE FOLDED TO UPPER-CASE
+
+/      DEFAULT RETRY COUNT DEFINITION.                                 /031 CJL
+
+       IFNDEF  RETCNT  <RETCNT=5>      /DEFAULT IS FIVE RETRIES
+
+/      DEFAULT FILE MODE DEFINITION.                                   /031 CJL
+
+       IFNDEF  FMODE   <FMODE= 0177>   /DEFAULT IS ASCII FILE MODE
+                                       /4377 IS BINARY FILE MODE
+
+/      DEFAULT FLOW-CONTROL MODE DEFINITION.                           /031 CJL
+
+       IFNDEF  FLOW    <FLOW=  1>      /DEFAULT IS FLOW-CONTROL ENABLED
+
+/      DEFAULT ASCII INPUT FILE <^Z> DISPOSITION.                      /031 CJL
+
+       IFNDEF  ICLOSE  <ICLOSE=1>      /ENSURE <^Z> AT ASCII <EOF>
+
+/      DEFAULT ASCII OUTPUT FILE <^Z> DISPOSITION.                     /031 CJL
+
+       IFNDEF  OCLOSE  <OCLOSE=0>      /<^Z> NOT SENT AT ASCII <EOF>
+
+/      DEFAULT LOCAL MESSAGE GENERATION DEFINITIONS.                   /038 CJL
+
+       IFNDEF  GENMSG  <GENMSG=1>      /DEFAULT IS TO GENERATE A MESSAGE
+       IFNDEF  UMSG    <UMSG=  0>      /DEFAULT IS NO DUMMY USER MESSAGE
+       IFNDEF  LEDERLE <LEDERLE=0>     /DEFAULT IS NO LEDERLE MESSAGE
+
+/      THE NULL MESSAGE WILL BE GENERATED BY DEFAULT.
+
+/      ECHO DEFINITION.                                                /039 CJL
+
+       IFNDEF  INIECHO <INIECHO=0>     /DEFAULT IS NO LOCAL ECHO
+
+/      DEFAULT DECMATE I PORT DEFINITION.                              /050 CJL
+
+       IFNDEF  PORT    <PORT=  0>      /DEFAULT IS PORT ZERO 
+
+/      DEFAULT BAUD RATE DEFINITION.                                   /050 CJL
+
+       IFNDEF  BRATE   <BRATE= 7>      /DEFAULT IS 1200 BAUD
+\f/     STATE DEFINITIONS.
+
+       STDAT=  "D&137                  /DATA
+       STACK=  "Y&137                  /ACK
+       STNAK=  "N&137                  /NAK
+       STSIN=  "S&137                  /SEND-INIT
+       STBRK=  "B&137                  /BREAK LINK
+       STFIL=  "F&137                  /FILENAME HEADER
+       STEOF=  "Z&137                  /END OF FILE OR REPLY
+       STERR=  "E&137                  /ERROR PACKET
+       STATT=  "A&137                  /FILE ATTRIBUTES
+       STRIN=  "R&137                  /RECEIVE-INIT
+       STEOT=  "B&137                  /BREAK TRANSMISSION
+       STGEN=  "G&137                  /KERMIT GENERIC COMMAND
+
+/      DEFAULT INIT PARAMETERS.
+
+       DEFCK=  "1&177                  /DEFAULT 1 CHARACTER CHECKSUM   /014 CJL
+       DEFEOL= 15+40                   /CR IS DEFAULT <EOL>
+       DEFQCTL= "#&177                 /"#" IS DEFAULT QCTL
+
+/      BUFFER DEFINITIONS.                                             /014 CJL
+
+       DECIMAL                         /MAKE IT EASIER                 /014 CJL
+
+       DEFMAXL=94                      /DEFAULT MAXIMUM PACKET SIZE
+
+       LINSIZ= 32                      /KEYBOARD LINE BUFFER SIZE
+
+       OCTAL                           /BACK TO NORMAL                 /014 CJL
+
+       BUFSIZE=200                     /128 CHARACTER RING BUFFERS     /026 CJL
+                                       /FOR NO-INTERRUPT CONNECT MODE
+\f/     CONTROL CHARACTER DEFINITIONS.                                  /023 CJL
+
+       CNTRLA= "A&37                   /<^A> DEFAULT MARK CHARACTER    /023 CJL
+       CNTRLB= "B&37                   /<^B>                           /046 CJL
+       CNTRLC= "C&37                   /<^C> PROGRAM EXIT CHARACTER    /023 CJL
+       CNTRLD= "D&37                   /<^D>                           /046 CJL
+       CNTRLE= "E&37                   /<^E>                           /046 CJL
+       CNTRLF= "F&37                   /<^F>                           /046 CJL
+       CNTRLG= "G&37                   /<^G> BELL CHARACTER            /023 CJL
+       CNTRLH= "H&37                   /<^H> BACKSPACE CHARACTER       /023 CJL
+       CNTRLI= "I&37                   /<^I> HORIZONTAL TAB CHARACTER  /043 CJL
+       CNTRLJ= "J&37                   /<^J> LINEFEED CHARACTER        /023 CJL
+       CNTRLK= "K&37                   /<^K> VERTICAL TAB CHARACTER    /046 CJL
+       CNTRLL= "L&37                   /<^L> FORM FEED CHARACTER       /046 CJL
+       CNTRLM= "M&37                   /<^M> CARRIAGE RETURN CHARACTER /023 CJL
+       CNTRLN= "N&37                   /<^N>                           /046 CJL
+       CNTRLO= "O&37                   /<^O> ECHO FLIP CHARACTER       /023 CJL
+       CNTRLP= "P&37                   /<^P> PROGRAM RESTART CHARACTER /023 CJL
+       CNTRLQ= "Q&37                   /<^Q> OUTPUT RESUME CHARACTER   /023 CJL
+       CNTRLR= "R&37                   /<^R>                           /046 CJL
+       CNTRLS= "S&37                   /<^S> OUTPUT WAIT CHARACTER     /023 CJL
+       CNTRLT= "T&37                   /<^T>                           /046 CJL
+       CNTRLU= "U&37                   /<^U>                           /046 CJL
+       CNTRLV= "V&37                   /<^V>                           /046 CJL
+       CNTRLW= "W&37                   /<^W>                           /046 CJL
+       CNTRLX= "X&37                   /<^X> FILE ABORT CHARACTER      /044 CJL
+       CNTRLY= "Y&37                   /<^Y>                           /046 CJL
+       CNTRLZ= "Z&37                   /<^Z> ABORT AND <EOF> CHARACTER /044 CJL
+       DELETE= 177                     /<DEL> DELETE OR <RO> CHARACTER /034 CJL
+       LOWERC= "C&177+40               /LOWER-CASE C (CLOSE CHARACTER) /025 CJL
+       UPPERC= "C&177                  /UPPER-CASE C (CLOSE CHARACTER) /025 CJL
+
+/      I/O AND FIELD DEFINITIONS.                                      /019 CJL
+
+       BUFFLD= 10                      /I/O BUFFER FIELD               /019 CJL
+       DIRFLD= 10                      /DIRECTORY LOOKUP BUFFER FIELD  /028 CJL
+       DMIFLD= 10                      /DECMATE ONCE-ONLY CODE FIELD   /046 CJL
+       MSGFLD= 10                      /TEXT MESSAGE FIELD             /023 CJL
+       PAGCNT= 2                       /I/O BUFFER SIZE IN PAGES       /019 CJL
+       PRGFLD= 00                      /PROGRAM FIELD                  /019 CJL
+       USRFLD= 10                      /USR FIELD                      /020 CJL
+
+/      OS/8 MONITOR DEFINITIONS.                                       /014 CJL
+
+       SBOOT=  7600                    /MONITOR EXIT LOCATION IS 07600 /014 CJL
+       USR=    7700                    /NON-LOCKED USR ENTRY POINT     /035 CJL
+\f/     USER SERVICE ROUTINE AND HANDLER DEFINITIONS.                   /020 CJL
+
+       CLOSE=  4                       /CLOSE TENTATIVE OUTPUT FILE    /020 CJL
+       ENTER=  3                       /ENTER TENTATIVE OUTPUT FILE    /020 CJL
+       FETCH=  1                       /FETCH HANDLER                  /020 CJL
+       INQUIRE=12                      /INQUIRE ABOUT HANDLER          /020 CJL
+       LOOKUP= 2                       /LOOKUP FILE                    /020 CJL
+       RESET=  13                      /RESET DEVICE CONTROL WORD TABLE/037 CJL
+       USRIN=  10                      /LOCK USR IN CORE               /020 CJL
+       WRITE=  4000                    /I/O CALL WRITE BIT             /020 CJL
+
+/      INSTRUCTION DEFINITIONS.
+
+       CLCL=   6136                    /CLEAR CLOCK FLAG (8/A, ETC.)   /046 CJL
+       CLSK=   6131                    /SKIP ON, CLEAR CLOCK FLAG      /046 CJL
+       CLSK8A= 6137                    /SKIP ON CLOCK FLAG (8/A, ETC.) /046 CJL
+       COM=    0017                    /COMPLEMENT AC
+       DCAC=   DCA     .               /CURRENT PAGE DCA INSTRUCTION   /047 CJL
+       IAAC=   6171                    /"A" REGISTER TO AC
+       IACA=   6167                    /AC TO "A" REGISTER
+       ISZC=   ISZ     .               /CURRENT PAGE ISZ INSTRUCTION   /050 CJL
+       JMPC=   JMP     .               /CURRENT PAGE JMP INSTRUCTION   /047 CJL
+       JMPIC=  JMP I   .               /CURRENT PAGE JMP I INSTRUCTION /047 CJL
+       JMSC=   JMS     .               /CURRENT PAGE JMS INSTRUCTION   /047 CJL
+       JMSIC=  JMS I   .               /CURRENT PAGE JMS I INSTRUCTION /047 CJL
+       LINC=   6141                    /GOTO LINC MODE
+       PDP=    0002                    /GOTO PDP-8 MODE
+       PRQ3=   6236                    /TYPE THREE PANEL REQUEST       /046 CJL
+       TADC=   TAD     .               /CURRENT PAGE TAD INSTRUCTION   /047 CJL
+       R3L=    7014                    /ROTATE AC (NOT LINK) LEFT 3    /046 CJL
+
+/      NUMERIC LOAD DEFINITIONS.                                       /014 CJL
+
+       NL0000= CLA                     /LOAD AC WITH 0000              /046 CJL
+       NL0001= CLA IAC                 /LOAD AC WITH 0001              /014 CJL
+       NL0002= CLA CLL CML RTL         /LOAD AC WITH 0002              /014 CJL
+       NL0003= CLA STL IAC RAL         /LOAD AC WITH 0003 (8/I ON UP)  /046 CJL
+       NL0004= CLA CLL IAC RTL         /LOAD AC WITH 0004 (8/I ON UP)  /046 CJL
+       NL0006= CLA STL IAC RTL         /LOAD AC WITH 0006 (8/I ON UP)  /046 CJL
+       NL0010= CLA IAC RAL RAR         /LOAD AC WITH 0010 (6120)       /024 CJL
+       NL0100= CLA IAC BSW             /LOAD AC WITH 0100 (8/E ON UP)  /024 CJL
+       NL3776= CLA CLL CMA RAR RAL     /LOAD AC WITH 3776 (8/I OR 8/L) /024 CJL
+       NL3777= CLA CLL CMA RAR         /LOAD AC WITH 3777              /046 CJL
+       NL4000= CLA CLL CML RAR         /LOAD AC WITH 4000              /014 CJL
+       NL5777= CLA CLL CMA RTR         /LOAD AC WITH 5777              /046 CJL
+       NL6000= CLA STL IAC RTR         /LOAD AC WITH 6000 (8/I ON UP)  /046 CJL
+       NL7775= CLA CLL CMA RTL         /LOAD AC WITH 7775              /014 CJL
+       NL7776= CLA CLL CMA RAL         /LOAD AC WITH 7776              /014 CJL
+       NL7777= CLA CMA                 /LOAD AC WITH 7777              /014 CJL
+\f/     DECMATE I COMMUNICATIONS PORT DEFINITIONS.                      /050 CJL
+
+       IPORT0= 30              /COMMUNICATIONS PORT 0 INPUT DEVICE CODE
+
+       RKFL0=  IPORT0^10+6000  /SET COMMUNICATIONS PORT 0 INPUT FLAG
+       RKSF0=  IPORT0^10+6001  /SKIP ON, CLEAR COMMUNICATIONS PORT 0 INPUT FLAG
+       RKCC0=  IPORT0^10+6002  /CLEAR AC
+       RKIE0=  IPORT0^10+6005  /PORT 0 INPUT INTERRUPT ENABLE PER AC[11]
+       RKRB0=  IPORT0^10+6006  /READ COMMUNICATIONS PORT 0 INTO AC
+
+       OPORT0= 31              /COMMUNICATIONS PORT 0 OUTPUT DEVICE CODE
+
+       RTFL0=  OPORT0^10+6000  /SET COMMUNICATIONS PORT 0 OUTPUT FLAG
+       RTSF0=  OPORT0^10+6001  /SKIP ON, CLEAR COMMUNICATIONS PORT 0 OUTPUT FLAG
+       RTCF0=  OPORT0^10+6002  /NOP
+       RTIE0=  OPORT0^10+6005  /PORT 0 OUTPUT INTERRUPT ENABLE PER AC[11]
+       RTLS0=  OPORT0^10+6006  /WRITE COMMUNICATIONS PORT 0 FROM AC
+
+       IPORT1= 34              /COMMUNICATIONS PORT 1 INPUT DEVICE CODE
+
+       RKFL1=  IPORT1^10+6000  /SET COMMUNICATIONS PORT 1 INPUT FLAG
+       RKSF1=  IPORT1^10+6001  /SKIP ON, CLEAR COMMUNICATIONS PORT 1 INPUT FLAG
+       RKCC1=  IPORT1^10+6002  /CLEAR AC
+       RKIE1=  IPORT1^10+6005  /PORT 1 INPUT INTERRUPT ENABLE PER AC[11]
+       RKRB1=  IPORT1^10+6006  /READ COMMUNICATIONS PORT 1 INTO AC
+
+       OPORT1= 35              /COMMUNICATIONS PORT 1 OUTPUT DEVICE CODE
+
+       RTFL1=  OPORT1^10+6000  /SET COMMUNICATIONS PORT 1 OUTPUT FLAG
+       RTSF1=  OPORT1^10+6001  /SKIP ON, CLEAR COMMUNICATIONS PORT 1 OUTPUT FLAG
+       RTCF1=  OPORT1^10+6002  /NOP
+       RTIE1=  OPORT1^10+6005  /PORT 1 OUTPUT INTERRUPT ENABLE PER AC[11]
+       RTLS1=  OPORT1^10+6006  /WRITE COMMUNICATIONS PORT 1 FROM AC
+
+       PCON=   36              /PORT STATUS AND CONTROL DEVICE CODE
+
+       SMFL=   PCON^10+6000    /SET MODEM CHANGE FLAG
+       MFSK=   PCON^10+6001    /SKIP ON, CLEAR MODEM CHANGE FLAG
+       WCON0=  PCON^10+6002    /WRITE COMMUNICATIONS PORT 0 CONTROL REGISTER
+       PSR=    PCON^10+6003    /READ PORT STATUS REGISTER
+       PMR=    PCON^10+6004    /READ PORT MODEM REGISTER
+       MFIE=   PCON^10+6005    /LOAD MODEM CHANGE INTERRUPT ENABLE PER AC[11]
+       WCON1=  PCON^10+6006    /WRITE COMMUNICATIONS PORT 1 CONTROL REGISTER
+       RACD=   PCON^10+6007    /RESET ACTIVE COMMUNICATIONS PORT PER AC[0]
+\f/     DECMATE II, ETC. COMMUNICATIONS PORT DEFINITIONS.               /046 CJL
+
+       PORTIN= 30              /COMMUNICATIONS PORT INPUT DEVICE CODE
+
+       IFL=    PORTIN^10+6000  /SET COMMUNICATIONS PORT INPUT/OUTPUT FLAG
+       ISF=    PORTIN^10+6001  /SKIP ON, CLEAR COMMUNICATIONS PORT INPUT/OUTPUT FLAG
+       ICF=    PORTIN^10+6002  /NOP (CLEAR THE AC?)
+       INOP1=  PORTIN^10+6003  /(NOP?)
+       IRS=    PORTIN^10+6004  /READ COMMUNICATIONS PORT RECEIVE BUFFER
+       IIE=    PORTIN^10+6005  /COMMUNICATIONS PORT I/O INTERRUPT ENABLE PER AC[11]
+       IRB=    PORTIN^10+6006  /READ COMMUNICATIONS PORT RECEIVE BUFFER
+       INOP2=  PORTIN^10+6007  /(NOP?)
+
+       PORTOUT=31              /COMMUNICATIONS PORT OUTPUT DEVICE CODE
+
+       DUMBFL= PORTOUT^10+6000 /SET COMMUNICATIONS PORT DUMMY FLAG
+       DUMBSF= PORTOUT^10+6001 /SKIP ON, CLEAR COMMUNICATIONS PORT DUMMY FLAG
+       DUMBCF= PORTOUT^10+6002 /NOP (CLEAR THE AC?)
+       ONOP1=  PORTOUT^10+6003 /(NOP?)
+       OPC=    PORTOUT^10+6004 /LOAD COMMUNICATIONS PORT TRANSMIT BUFFER
+       DUMBIE= PORTOUT^10+6005 /COMMUNICATIONS PORT DUMMY INTERRUPT ENABLE PER AC[11]
+       OLS=    PORTOUT^10+6006 /LOAD COMMUNICATIONS PORT TRANSMIT BUFFER
+       ONOP2=  PORTOUT^10+6007 /(NOP?)
+
+       PORTCON=36              /COMMUNICATIONS PORT CONTROL DEVICE CODE
+
+       MFL=    PORTCON^10+6000 /SET MODEM CHANGE FLAG
+       MSF=    PORTCON^10+6001 /SKIP ON, CLEAR MODEM CHANGE FLAG
+       MLC=    PORTCON^10+6002 /LOAD MODEM CONTROL REGISTER
+       MSB=    PORTCON^10+6003 /LOAD BAUD RATE REGISTER
+       MRS=    PORTCON^10+6004 /READ MODEM STATUS REGISTER
+       MIE=    PORTCON^10+6005 /MODEM CHANGE INTERRUPT ENABLE PER AC[11]
+       MPSCC=  PORTCON^10+6006 /ACCESS MULTIPROTOCOL SERIAL COMMUNICATIONS CONTROLLER
+       MPRESET=PORTCON^10+6007 /RESET MULTIPROTOCOL SERIAL COMMUNICATIONS CONTROLLER
+\f/     MISCELLANEOUS DEFINITIONS.                                      /014 CJL
+
+/      STATIC DATE CALCULATIONS.                                       /024 CJL
+
+/      THESE EQUATIONS CAUSE PRINTABLE  TEXT OF THE DATE PARTICULARS, WHICH ARE GIVEN
+/      IN OS/8 INTERNAL FORMAT.  PROGRAM MAINTAINENCE REQUIRES THE UPDATE OF VERSION,
+/      REVISION, REVDATE, AND REVDGRP.  REVDATE  AND  REVDGRP SHOULD BE OBTAINED FROM
+/      THE SYSTEM WHEN RELEASING A NEW VERSION  AFTER  FIRST  CORRECTLY  INVOKING THE
+/      SYSTEM DATE COMMAND.
+
+/      VERSION=[ANY NUMBER IN THE RANGE 00-143 (DECIMAL 00-99)]
+
+/      REVISIO=[ANY SIX-BIT ALPHA (A-Z); DO NOT FORGET &77]
+
+/      REVDATE=[THE CONTENTS OF 17666 (DATE WORD)]
+
+/      REVDGRP=[THE CONTENTS OF 07777 (ONLY BITS[3-4] ARE USED)]
+
+
+
+       IFNDEF  REVDATE <REVDATE=4464>  /REVISION DATE (LOCATION 17666)
+
+       IFNDEF  REVDGRP <REVDGRP=0400>  /REVISION 8 YEAR DATE GROUP (LOCATION 07777)
+
+       IFNDEF  REVISIO <REVISIO="G&77> /REVISION OF KERMIT-12
+
+       IFNDEF  VERSION <VERSION=12>    /VERSION OF KERMIT-12
+
+
+       DAY=    REVDATE&370%10          /REVISION DAY
+
+       DGROUP= REVDGRP&600%20          /REVISION DATE GROUP (WHICH 8 YEARS)
+
+       MONTH=  REVDATE&7400%400        /REVISION MONTH
+
+       YEAR=   REVDATE&7+DGROUP+106    /REVISION YEAR (SINCE 1900)