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