X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fkermit%2Fk12%2Fk12mit.doc;fp=sw%2Fkermit%2Fk12%2Fk12mit.doc;h=2eef848553e509b77915027959df2126054da6cb;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/kermit/k12/k12mit.doc b/sw/kermit/k12/k12mit.doc new file mode 100644 index 0000000..2eef848 --- /dev/null +++ b/sw/kermit/k12/k12mit.doc @@ -0,0 +1,1595 @@ +/ KERMIT FOR DEC 12-BIT MACHINES + +/ LAST EDIT: 06-SEP-1990 11:00:00 CJL + + XLIST OFF + IFNDEF OFF /TURN LISTING OFF + IFNDEF ON /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. + / 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. + / 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.) + / 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. + / 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 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. + / 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. + / 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 WHEN THE BUFFER +/ IS 3/4 FULL. WHEN THE BUFFER REACHES 1/4 FULL, THE REMOTE WILL BE SENT +/ 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 , THE BUFFER WILL FILL WITH OUTPUT +/ CHARACTERS. WHEN THE USER RELEASES THE CONSOLE WITH , 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. + / 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 +/ 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. + / 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. + / 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. + / 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. + / 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 + / 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. + / 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 +/ , , AND (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 CHARACTER IS REQUIRED FOR +/ VISUAL RUBOUT ( ) 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 +/ 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. + / 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!) + / 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.) + / 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 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 , . + / 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. + / 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 /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 /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. + / 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). + / 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. + / 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 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 OF ASCII +/ FILES. +/ SETTING OCLOSE= 1 CAUSES <^Z> TO BE SENT AT 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. + / 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. + / 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 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 SEQUENCES ARE PASSED TO THE +/ SLUSHWARE/FIRMWARE UNMODIFIED. + +/ KEYBOARD UPPER-CASE LOCK WILL ALWAYS BE AUTOMATICALLY APPLIED UPON RETURN FROM +/ CONNECT MODE. + / DEFINITIONS. /017 CJL + + *200 /FOR DEFINITIONS /047 CJL + +/ REMOTE LINE PARAMETERS; SET ONLY ONE AS NECESSARY. /046 CJL + + IFNDEF DEV30 /USE DEVICE 30/31 VALUES + IFNDEF DEV40 /USE DEVICE 40/41 VALUES + IFNDEF LEDERLE /USE LEDERLE LABS VALUES + IFNDEF ORIGNAL /USE ORIGINAL VALUES + IFNDEF SPRINT /USE DEVICE 32/33 VALUES + IFNDEF USER /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 /DEFAULT TO DEVICE 40/41 VERSION + +/ DEV30 PARAMETERS. + + IFNZRO DEV30 < + + IFNDEF REC /DEVICE 30 INPUT + IFNDEF SEN /DEVICE 31 OUTPUT + + > + +/ DEV40 PARAMETERS (DEFAULT). + + IFNZRO DEV40 < + + IFNDEF REC /DEVICE 40 INPUT + IFNDEF SEN /DEVICE 41 OUTPUT + + > + +/ LEDERLE PARAMETERS. /038 CJL + + IFNZRO LEDERLE < + + IFNDEF REC /DEVICE 43 INPUT + IFNDEF SEN /DEVICE 44 OUTPUT + IFNDEF GENMSG /GENERATE LOCAL HEADER MESSAGE + IFNDEF UMSG /DON'T GENERATE USER MESSAGE + + > + +/ ORIGNAL PARAMETERS. + + IFNZRO ORIGNAL < + + IFNDEF REC /DEVICE 33 INPUT + IFNDEF SEN /DEVICE 34 OUTPUT + + > + / SPRINT PARAMETERS. /046 CJL + + IFNZRO SPRINT < + + IFNDEF REC /DEVICE 32 INPUT + IFNDEF SEN /DEVICE 33 OUTPUT + + > + +/ USER PARAMETERS. + + IFNZRO USER < + + IFNDEF XX /DEFAULT TO DEVICE 40 + IFNDEF XY /DEFAULT TO DEVICE 41 + IFNDEF REC /DEVICE XX INPUT + IFNDEF SEN /DEVICE XY OUTPUT + IFNDEF GENMSG /GENERATE LOCAL HEADER MESSAGE + IFNDEF UMSG /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 /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 /TELEPRINTER DEVICE CODE + + TLSIOT= TTY^10+6006 /PRINT CHARACTER, CLEAR FLAG + TSFIOT= TTY^10+6001 /SKIP ON TELEPRINTER FLAG + / DEFAULT ESCAPE CHARACTER DEFINITION. /025 CJL + + IFNDEF ESCAPE /DEFAULT IS CONTROL-] + +/ DEFAULT LOWER-CASE ENABLE DEFINITION. /030 CJL + + IFNDEF LOWER /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 /DEFAULT IS FIVE RETRIES + +/ DEFAULT FILE MODE DEFINITION. /031 CJL + + IFNDEF FMODE /DEFAULT IS ASCII FILE MODE + /4377 IS BINARY FILE MODE + +/ DEFAULT FLOW-CONTROL MODE DEFINITION. /031 CJL + + IFNDEF FLOW /DEFAULT IS FLOW-CONTROL ENABLED + +/ DEFAULT ASCII INPUT FILE <^Z> DISPOSITION. /031 CJL + + IFNDEF ICLOSE /ENSURE <^Z> AT ASCII + +/ DEFAULT ASCII OUTPUT FILE <^Z> DISPOSITION. /031 CJL + + IFNDEF OCLOSE /<^Z> NOT SENT AT ASCII + +/ DEFAULT LOCAL MESSAGE GENERATION DEFINITIONS. /038 CJL + + IFNDEF GENMSG /DEFAULT IS TO GENERATE A MESSAGE + IFNDEF UMSG /DEFAULT IS NO DUMMY USER MESSAGE + IFNDEF LEDERLE /DEFAULT IS NO LEDERLE MESSAGE + +/ THE NULL MESSAGE WILL BE GENERATED BY DEFAULT. + +/ ECHO DEFINITION. /039 CJL + + IFNDEF INIECHO /DEFAULT IS NO LOCAL ECHO + +/ DEFAULT DECMATE I PORT DEFINITION. /050 CJL + + IFNDEF PORT /DEFAULT IS PORT ZERO + +/ DEFAULT BAUD RATE DEFINITION. /050 CJL + + IFNDEF BRATE /DEFAULT IS 1200 BAUD + / 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 + 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 + / 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 CHARACTER /044 CJL + DELETE= 177 / DELETE OR 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 + / 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 + / 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] + / 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 + / 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 /REVISION DATE (LOCATION 17666) + + IFNDEF REVDGRP /REVISION 8 YEAR DATE GROUP (LOCATION 07777) + + IFNDEF REVISIO /REVISION OF KERMIT-12 + + IFNDEF VERSION /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)