Commit | Line | Data |
---|---|---|
81e70d48 PH |
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) |