-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcpkerm.txt
More file actions
executable file
·2463 lines (1919 loc) · 104 KB
/
Copy pathcpkerm.txt
File metadata and controls
executable file
·2463 lines (1919 loc) · 104 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
CP/M-80 KERMIT VERSION 4.11 USER GUIDE
C. Gianone
Columbia University Center for Computing Activities
New York, New York 10027
April 23, 1991
Copyright (C) 1981,1991
Trustees of Columbia University in the City of New York
Permission is granted to any individual or institution to use, copy,
or redistribute this document so long as it is not sold for profit, and
provided this copyright notice is retained.
1. CP/M-80 KERMIT
********
This document is formatted as an ordinary, plain text ASCII disk file. Typeset
copies are available in the Kermit User Guide from Columbia University.
Changes should be made to CPKERM.MSS.
********
Program: Mike Freeman, Bonneville Power Administration, Vancouver, WA, USA,
with contributions from many others.
Language: 8080 Assembler, LASM, M80, or MAC80
Version: 4.11
Date: April 1, 1991
Documentation: Christine Gianone, Columbia University, with contributions from
many others.
KERMIT-80 Capabilities At A Glance:
Local operation: Yes
Remote operation: Partial, Auto-receive only
Login scipts: Yes, limited
Transfer text files: Yes
Transfer binary files: Yes
Wildcard send: Yes
File transfer interruption: Yes
Filename collision avoidance: Yes
Can time out: Yes
8th-bit prefixing: Yes
Repeat count prefixing: No
Alternate block checks: Yes
Terminal emulation: Yes, VT52 and others
Communication settings: Yes
Support for dial-out modems: No
Transmit BREAK: Yes; most versions
IBM communication: Yes
Transaction logging: No
Debug logging: No
Session logging: Yes
Raw file transmit: Yes
Act as server: No
Talk to server: Yes
Advanced commands for servers: Yes
Command/init files: Yes
Command macros: No
Local file management: Yes
Handle file attributes: No
Long packets: No
International Character Sets: No
Sliding Windows: No
Printer control: Yes, limited
1.1. Credits
CP/M Kermit is the first of all the Kermit programs. It was originally written
by Bill Catchings of Columbia University in 1981. Over the years,
contributions have been added by many people, including Charles Carvalho (ACC),
Bernie Eiben (DEC), Nick Bush (Stevens Institute of Technology), John Bray
(University of Tennessee), Bruce Tanner (Cerritos College), Greg Small
(University of California at Berkeley), Kimmo Laaksonen (Helskini University of
Technology), Bertil Schou (Loughborough University), Jon Warbrick (Plymouth
Polytechnic University), Brian Robertson (Aberdeen University), A.J. Cole
(Leeds University), John Shearwood (Birmingham University), Tony Addyman
(Salford University), Godfrey Nix and Martin Carter (Nottingham University),
Ian Young (Edinburgh University), Chris Miles (Manchester University), Richard
Russell, Dave Roberts, and many, many others.
Version 4.11 is the work of Mike Freeman of the Bonneville Power Administration
in Vancouver, WA, USA, with assistance from Russell Lang of Monash University
in Australia, Jay S Rouman of Mt Pleasant MI, and others.
1.2. What's New
Features added since version 4.09 include:
- SET COLLISION {BACKUP/DISCARD/OVERWRITE/RENAME}
- SET INCOMPLETE-FILES {DISCARD/KEEP}
- Many REMOTE commands, including some REMOTE SET commands
- RENAME command to rename CP/M files from within Kermit-80
- SET RECEIVE/SEND PACKET-LENGTH nn (nn <= 94)
- SET AUTORECEIVE ON now implies that Kermit-80 ALWAYS tries to receive
more files when a RECEIVE transaction has completed. The user can
cancel with ^C.
- QUIT is now a synonym for EXIT.
- STAY is now a synonym for SET NO-EXIT.
- CONNECT, RECEIVE and SEND may be abbreviated to C, R and S,
respectively.
- Cancellation of TAKE, TYPE, and PRINT commands from the keyboard.
- Many bug fixes.
- Kermit-80 Version 4.11 now supports the Microbee family of computers
(56K, 64K, 128K and 256K) manufactured by Microbee Systems, Ltd, of
Australia.
- Kermit-80 now supports the Ampro Little Board system.
1.3. Overview of Kermit Operation
Use the SET command to establish necessary communication parameters like SPEED
and PARITY. Use the CONNECT to establish a terminal connection to the remote
computer. If you are dialing out with a modem, type the necessary dialing
commands to the modem first. The dialing process can be automated to some
extent using a TAKE command file containing INPUT, OUTPUT, and PAUSE commands.
Then log in to the remote computer or service and conduct a session.
To transfer a text file, start the Kermit program on the remote computer and
tell it to SEND the desired file (if uploading) or to RECEIVE (if downloading).
"Escape back" to CP/M Kermit, usually by typing Ctrl-] (hold down the Control
key and press the right bracket key) and then type the letter C. At the CP/M
Kermit prompt type RECEIVE (if you gave a SEND command to the remote Kermit) or
SEND filename (if you gave a receive command to the remote Kermit).
To transfer a binary file, give the command SET FILE TYPE BINARY to the remote
Kermit and SET FILE-MODE BINARY to CP/M Kermit before issuing any SEND or
RECEIVE commands.
Multiple files of the same type (text or binary) can be transferred in a single
operation using "wildcard notation" (including special characters like asterisk
in the filename).
When file transfer is complete, CONNECT back to the remote computer, use the
EXIT command to exit from the remote Kermit program, finish your work on the
remote computer, log out from it, escape back to CP/M Kermit again, and EXIT
from CP/M Kermit.
The remote Kermit may also be put into "server mode" to simplify these
operations. Give the SERVER command to the remote Kermit, escape back to CP/M
Kermit, and then issue SEND commands to send files (upload), GET filename
commands to receive (download) files, REMOTE commands to request various other
services (like directory listings) from the remote Kermit. When you are done,
give a BYE command to terminate your remote session, or a FINISH command to
tell the remote Kermit to return to its prompt so you can CONNECT back and
conduct further business.
That's all there is to it.
1.4. Summary of CP/M
There are essentially two versions of CP/M - Versions 2.2 and 3.0 (sometimes
also called CP/M PLUS.)
CP/M-80 Version 2.2 is run in a single 64 Kbyte "page", usually the largest
amount of memory on Z80 or 8080 systems. The BIOS (Basic input/output system),
BDOS (Basic Disk Operating System) and CCP (Command console processor) all
share memory with any transient program the user may wish to run. Some basic
commands are available through the CCP, like DIR, ERA etc,while others are
loaded from disk into the transient program area and run as a program, like PIP
or STAT.
CP/M Version 3.0 (or CP/M PLUS) effectively removes the requirement of having
the CCP and BDOS along with a chunk of the BIOS code being resident in the
single 64k byte page of memory. This allows even more space for programs in
the TPA, but still a little less than the maximum of 64k. It is substantially
different from CP/M version 2.2, with lots of added features. Kermit-80 uses
very few additional version 3.0 features, and only where absolutely necessary.
CP/M file specifications are of the form DEV:XXXXXXXX.YYY, where
DEV: is a device name, normally the A: or B: floppy. If omitted,
the device name defaults to your connected diskette.
XXXXXXXX is a filename of up to 8 characters.
YYY is the file type, up to 3 characters.
File names and file types may contain letters, digits, and some special
characters, including dash, dollar sign, and underscore, but no imbedded
spaces. Upper and lower case letters are equivalent.
"Wildcard" file-group specifications are permitted in file names and file types
(but not device names) within certain contexts; a "*" matches a whole field, a
"?" matches a single character, including space. Examples: "*.F??" specifies
all files whose types start with F and are 1, 2, or 3 characters long; "F?.*"
specifies all files whose names start with F and are no more than two
characters long (before the trailing spaces).
The five CP/M commands are:
DIR file Lists the the names of the specified files. The default file
specification is "*.*". Example: "DIR B:*.FOR".
ERA file Erases (deletes) the specified file(s); wildcards allowed.
REN new old Changes the name of a file from old to new, e.g.
"REN NEW.FOR=OLD.FOR".
SAVE Saves the specified number of memory blocks into a file. (Not
on CP/M Plus systems)
TYPE file Types the specified file on the screen, e.g. "TYPE FOO.TXT".
The most important programs are:
STAT Gives statistics on disk usage; sets and displays IOBYTE. (Not
on CP/M Plus systems)
PIP Peripheral Interchange Program. Copies files. In response to
the "*" prompt, give a command of the form
disk:outfile=disk:infile
Wildcards ("*" for a whole field or "?" for a letter) can be
used. Examples: "A:=B:*.*" to copy a whole disk, "A:=B:*.FOR"
to copy all the Fortran programs from disk B to disk A. If the
disk specification is omitted, your "connected" disk is
assumed. Command line arguments are also accepted, e.g. "PIP
A:=B:*.*".
There are equivalent commands for CP/M Version 3.0, but are not loaded into
memory in the same way as for CP/M Version 2.2. For further information on
CP/M, consult your microcomputer manual or a CP/M handbook.
1.5. Kermit-80 Description
Since Kermit-80 runs on a standalone micro, it is always in control of the
screen -- it is always in "local mode". It includes a terminal emulator for
establishing a connection to a remote computer or service, and during file
transfer, it keeps the screen updated with the file name and the packet number,
whether sending or receiving.
Kermit-80 is capable of an imprecise or "fuzzy" timeout on an input request,
and can break deadlocks automatically. In most cases, this is not important,
because the Kermit program on the other side is most likely able to handle the
timeouts. The timeouts done by Kermit-80 are fuzzy because they depend on the
speed of the processor and other factors that can vary from system to system.
If, despite the timeout capability, the transmission appears to be stuck (and
you can tell that this has happened if the screen fails to change for a while)
you can type carriage return to have the micro do what it would have done on a
timeout, namely NAK the expected packet to cause theforeign host to send it
again (or, if the micro is sending, to retransmit the last packet). Micro/
micro or micro/IBM-mainframe transfers could require this kind of manual
intervention.
File transfers may be interrupted in several ways.
Control-C This will return you to Kermit-80 command level immediately, so
that you can connect back to the remote system, or take any
other desired action.
Control-X When sending a file, this will terminate the sending of the
current file with a signal to the KERMIT on the other side to
discard what it got so far. If there are more files to be
sent, KERMIT-80 will go on to the next one. When receiving a
file, KERMIT-80 will send a signal to the remote KERMIT to stop
sending this file. If the remote KERMIT understands this
signal (not all implementations of KERMIT do), it will comply,
otherwise the file will keep coming. In any case, the remote
KERMIT will go on to the next file in the group, if any.
Control-Z Like Control-X, except if a file group is being transmitted,
this will stop the transmission of the entire group. If only a
single file is being transmitted, it works exactly like
Control-X.
Carriage Return If you type a carriage return Kermit-80 will resend the current
packet. You may do this repeatedly, up to the packet retry
limit (somewhere between 5 and 16 times) for a particular
packet.
KERMIT-80 COMMANDS
Kermit-80 is an interactive program. It issues a prompt, you type a command.
The process repeats until you give the EXIT command to leave the program.
Commands consist of keywords, filenames, and numbers. Keywords may be
abbreviated to minumum unique length. "?" may be typed to request a menu of
the available options for the current field at any point in a command. ESC may
be typed at any point in a command to fill out the current keyword or filename;
if sufficient characters have not been typed to identify the current field
uniquely, Kermit-80 will sound a beep and allow you to continue from that
point. Here are Kermit-80's commands:
BREAK Send a BREAK condition to the remote computer. This is only possible
if your system is capable of sending breaks. It is intended to be used
with PAUSE, OUTPUT, etc and the TAKE command to do wierd and wonderful
things, like automatic logging on to a remote host.
BYE When talking to a remote Kermit Server, this command shuts down the
server and logs it out, and also exits from Kermit-80 to CP/M command
level.
CONNECT Establish a terminal connection to the computer, service, or device
that is connected to the serial port, i.e. pass all typein to the
serial port and display all input from the serial port on the screen.
Also, emulate a DEC VT52 to allow cursor control, screen clearing,
etc., if VT52-EMULATION is ON (see below), in which case you should
also set your terminal type on the remote host to VT52. (Some versions
emulate other terminals.) The CONNECT command may be abbreviated by
the single letter C.
Warning: VT52 emulation is only successful if your system or its
attached terminal can do the same sort of functions as a genuine VT52.
Things to beware of are cursor addressing, clear to end of page and end
of line, clear screen, home cursor, and clear-and-home functions. The
useability of VT52 emulation depends entirely on how many of the VT52
functions can be emulated by your micro or terminal.
The escape character differs from micro to micro; when you issue the
CONNECT command, the micro will print a message telling you how to get
back. The escape sequence is generally an uncommonly-used control
character, like CTRL-backslash or CTRL-rightbracket, followed by a
single letter "command":
C Close Connection, return to Kermit-80> command level.
S Display Status of connection, but maintain remote connection.
? List available single-character commands.
0 (zero) Send a null (0) character.
B Send a BREAK signal. Most systems provide this function.
D Drop the line. Used on the Apple with modem. Automatically closes
the connection after dropping the line. The TORCH system
acknowledges this command but does nothing.
P Toggle printer on or off. Allows you to copy whatever goes to the
screen to the printer.
S Temporarily suspend logging to the log file.
Q Restart logging to the log file
^] (or whatever - a second copy of the escape character) Send the
escape character itself to the remote host.
COPY source destination
Copy a named file to another file, either on the same drive or another
drive.
DIRECTORY
This provides a directory listing of the specified files. If no files
are specified, all files on the default disk are listed. File sizes,
in K, are included. You may interrupt the listing at any time by
typing any character. The listing (even if interrupted) concludes with
a display of the amount of free storage left on the disk. You can
inhibit the display of file sizes by SET DIRECTORY OFF.
ERASE filespec
This executes the CP/M ERA command on the specified file(s). The names
of the files being erased are not displayed.
EXIT Quit back to CP/M. The return is made by a JMP 0 (Warmstart). QUIT is
a synonym for EXIT.
FINISH Like LOGOUT, but shuts down the remote server without logging it out.
Leaves you at Kermit-80 command level; subsequent CONNECT commands will
put you back at host system command level.
GET filespec [local_filespec]
When Kermit-80 is talking to a Kermit Server on the host, you should
use the GET command to request the server to send files to you, for
example:
get hlp:k*.hlp
You may specify a local filename if you want to save the remote file
under a different filename. Limitation: If you request an alternate
block check type using the SET BLOCK command, the GET command will not
communicate it to the remote server. If you want to have type 2 or 3
block checks done when getting files from the server, you have to issue
the appropriate SET BLOCK command to the remote KERMIT before putting
it in server mode.
HELP List all these commands, with a short description on what the commands
do. A question mark will do the same. If you have already typed a
command but do not know what the parameters are, type a space (to
indicate the end of the command) and a question mark. You will be
informed of what Kermit can expect at that stage.
INPUT seconds text
Setup a text line and time delay for your CP/M system to expect from
the host, then wait up to the given number of seconds (approximately)
for text to be sent to your CP/M-80 system.
LOG filespec
When CONNECTed to a foreign host as a terminal, log the terminal
session to the specified diskette file. This functionality depends to
some extent on the remote host's ability to do XON/XOFF flow control,
and does not guarantee a complete transcript (after all, that's what
the KERMIT protocol is for). The log file is closed when the
connection is closed by typing the escape character followed by the
single-character command "C".
It is possible to temporarily suspend logging during connect state.
Typing an escape sequence can turn file logging on (<escape-character>
R for Resume) or off (<escape-character> Q for quiet).
Re-entering connect state will re-open the previously opened log file
and append to that file.
LOGOUT Like BYE, but leaves you at Kermit-80 command level.
OUTPUT text
Send the text to the remote computer as if you had typed it.
PAUSE seconds
If this command is issued your CP/M system will wait a while before
proceeding with another command. This is intended for use in TAKE
commands, where you may want to pause for a while before proceeding
with the rest of the TAKE file. The actual delay is very variable
between systems, and values should be determined on a trial and error
basis.
PRINT Print a file to the console and printer. Output to the printer is
buffered by the Kermit-maintained printer buffer. This routine is
identical to TYPE but characters are echoed to the printer as well as
to the screen. Suspending and canceling output is as described in
TYPE.
QUIT Synonym for EXIT.
RECEIVE filespec
Receive file(s) from the remote Kermit, and save them under the names
provided in the file headers supplied by the remote host. If a local
filespec is given, the file is saved under the given filename. If the
names aren't legal, use as many legal characters from the name as
possible (see the description of SET FILE-WARNING below). If there's a
conflict, and FILE-WARNING is ON, warn the user and try to build a
unique name for the file by adding "&" characters to the name. RECEIVE
can be abbreviated to the single letter R.
REMOTE command
Send a command to a remote Kermit server. The results are sent back to
your CP/M screen. When two arguments are required and specify less
than two in the command, you will be prompted for the missing
arguments. REMOTE commands include:
REMOTE CD [directory]
Ask the remote server to change its default directory. If no
directory is specified, the server changes to its login directory.
REMOTE COPY file1 file2
Ask the remote server to copy file1 to file2.
REMOTE RENAME file1 file2
Ask the remote server to rename file1 to file2.
REMOTE DELETE filespec
Ask the remote server to delete the named file or files.
REMOTE DIRECTORY [filespec]
Ask the remote server to display a directory listing of the given
files or, if the filespec is omitted, all the files in the current
device or directory.
REMOTE DISK-USAGE
Ask the remote server to display information about its disk usage
(such as free or used space).
REMOTE ERASE filespec
Same as REMOTE DELETE.
REMOTE FINISH
Same as FINISH.
REMOTE HELP
Ask the remote server to display a list of the commands it can
respond to.
REMOTE HOST command
Ask the remote server to have its operating system execute the
given command.
REMOTE KERMIT command
Ask the remote server to execute the given Kermit command, given in
the server Kermit's command syntax.
REMOTE LOGIN user password
Log in to a remote Kermit server which has been set up to require a
username and password.
REMOTE MESSAGE text
Send the text to the remote server for display on its screen
(useful with MS-DOS Kermit servers).
REMOTE SET parameter value
Ask the remote server to set the given parameter to the given
value, for example REMOTE SET FILE TYPE BINARY. Type REMOTE SET ?
to see a list of the REMOTE SET options.
REMOTE SPACE
Same as REMOTE DISK-USAGE.
REMOTE STATUS
Ask the remote server to provide a status report.
REMOTE TYPE file
Ask the remote server to display the named file on the micro's
screen.
REMOTE WHO [user]
Ask the remote server for a list of users who are logged in, or if
a user is specified, for a report on the named user.
RENAME file1 file2
Rename local CP/M file1 to file2.
SEND filespec
Send file(s) specified by filespec to the remote Kermit. The filespec
may contain CP/M wildcards. SEND may be abbreviated to the single
letter S.
SET parameter [value]
Set the specified parameter to the specified value. Possible parameter
settings:
AUTORECEIVE
ON (or OFF). Allows several files to be received without
having to type RECEIVE on the receiving machine. The routine
simply looks for activity on the serial line, and if so fudges
a RECEIVE command. The packet sent by the sender will be lost.
BLOCK-CHECK-TYPE option
The options are:
1-CHARACTER-CHECKSUM
Normal, default, standard 6-bit checksum.
2-CHARACTER-CHECKSUM
A 12-bit checksum encoded as two characters.
3-CHARACTER-CRC-CCITT
A 16-bit CCITT-format Cyclic Redundancy Check, encoded
as 3 characters.
BUFFER-SIZE value
This allows you to set a buffer size during transfer of data.
On some systems it takes so long that the remote end times out
while the local system is reading or writing to disk. The size
is the number of 128 disk sectors (nominal) and can be from 1
(128 bytes) to 64 (8 kbytes).
CP/M-80 filenames will still be mapped to uppercase characters.
COLLISION value
What to do when a file arrives that has the same name as an
existing file. BACKUP means to rename the existing file.
DISCARD means to discard and reject the incoming file.
OVERWRITE means to overwrite the existing file. RENAME means
to rename the existing file.
DEBUG ON (or OFF). Enables/disables displaying of packets on the
screen during file transfer. Not performed if the QUIET option
has been set for the terminal (SET TERMINAL QUIET)
DEFAULT-DISK drive letter
This allows you to set the default disk as source and
destination of file transfers. In addition, issuing this
command causes you to switch to the specified disk and log it
in, write-enabled. The colon must be included in the disk name
(A:). The selected disk appears in your KERMIT-80 prompt, for
instance
Kermit-80 14A:>
DIRECTORY-FILE-SIZE ON (or OFF).
By setting DIRECTORY-FILE-SIZE OFF you can get an abreviated
listing of your disk drive. File sizes are not calculated, and
five files are shown on a line. Setting this option ON will
show file sizes of each file.
Both options will list the free space remaining.
ESCAPE Change the escape character for virtual terminal connections.
Kermit-80 will prompt you for the new escape character, which
you enter literally.
FILE-MODE option
Tells KERMIT-80 what kind of file it is sending, so that KERMIT
can correctly determine the end of the file. SET FILE BINARY
means to send all the 128-byte blocks (ie logical CP/M sectors)
of the file, including the last block in its entirety; SET FILE
ASCII is used for text files, and transmission stops when the
first Control-Z is encountered anywhere in the file (this is
the CP/M convention for marking the end of a text file).
SET FILE-MODE DEFAULT tells Kermit to attempt to determine the
file type by examining the file being transmitted. If a
Control-Z appears before the last block of the file, it is
assumed to be BINARY; if, when the first Control-Z is
encountered, the remainder of the file contains only
control-Z's, it is assumed to be a text file. Unfortunately,
not all programs fill the remainder of the last record of a
text file with Control-Z's, so this algorithm is not always
successful.
If binary transmission is used on a text file, or a compressed
file (eg a .DQC file) some extraneous characters (up to 127 of
them) may appear at the end of the file on the target system.
If ASCII transmission is used on a binary file, any 8th bits
set will be stripped and a warning sent to the console. When
the first control-Z is encountered, the file is assumed to be
at the end, even if it is not.
FLOW-CONTROL ON (or OFF)
Sets XON/XOFF flow control on or off. If set ON the host is
expected to respond to an XOFF or XON sent by Kermit-80. If
set off, no flow control is assumed and any XON/XOFF is
ignored.
IBM ON (or OFF)
Allow the transfer of files to and from an IBM mainframe
computer. This makes Kermit-80 wait for the IBM turnaround
character (XON), ignore parity on input, add appropriate parity
to output, and use local echoing during CONNECT. As
distributed, KERMIT-80 uses MARK parity for IBM communication.
If you don't give this command, IBM mode is OFF. Since IBM
VM/CMS KERMIT does not have timeout capability, SET IBM ON also
turns on the "fuzzy timer" automatically.
LOCAL-ECHO ON (or OFF)
When you CONNECT to a remote host, you must set LOCAL-ECHO ON
if the host is half duplex, OFF if full duplex. OFF by
default.
LOGGING ON (or OFF)
Cease or resume logging whenever connect mode is entered. This
is really only applicable after a LOG command is no longer
required.
NO-EXIT This command is applicable only for Kermit initiated with a
command tail. For example, if Kermit was initiated by:
KERMIT ;SEND HELLO;NO-EXIT
Kermit would first seek out and execute the KERMIT.INI file (if
present), then send file HELLO to a remote system. Usually
Kermit would exit back to CP/M, but NO-EXIT over-rides this.
STAY is a synonym for NO-EXIT.
Note the leading semicolon. This clears leading spaces from
the first command.
OUTPUT text-line
Send a line of text to the remote computer (or modem). This
simply copies the string to the correct line, and assumes all
appropriate parameters have been set to be used, e.g. speed,
parity etc. It is intended for use in TAKE command files.
PARITY option
Sets parity for outgoing characters to one of the following:
NONE, SPACE, MARK, EVEN, or ODD. On input, if parity is NONE,
then the 8th bit is kept (as data), otherwise it is stripped
and ignored. The parity setting applies to both terminal
connection and file transfer. If you set parity to anything
other than none, KERMIT-80 will attempt to use "8th bit
prefixing" to transfer binary files. If the other KERMIT is
also capable of 8th bit prefixing, then binary files can be
transferred successfully; if not, the 8th bit of each data byte
will be lost (you will see a warning on your screen if this
happens).
PORT port name
Allows you to switch between different communication ports.
This command is not available on all systems. Type SET PORT ?
for a list of valid options for your system. (Note: If your
system does not support several ports, this command will return
a "Not implemented" error if you try to set a port.)
PRINTER ON (or OFF)
Turns copying of CONNECT session to printer on and off. It is
also possible to toggle the printer on/off from the connect
state, by typing <escape character> followed by P.
RECEIVE parameter [value]
Set a RECEIVE parameter.
PAD-CHAR
Set the PAD character to use while receiving files.
Currently a dummy, as for SET SEND PAD-CHAR.
PADDING [value]
Set the number of PAD characters to use while receiving
files. Same as SET SEND PADDING.
START-OF-PACKET [value]
Set the default start of Packet character for receiving
files. Apply the same rules and considerations as for
SET SEND START-OF-PACKET.
PACKET-LENGTH number
Tell the other Kermit the longest packet length CP/M
Kermit is willing to receive during file transfer. The
maximum length is 94, which is also the default length.
SEND parameter [value]
Set a SEND parameter.
PAD-CHAR
Set the Pad character to be used while sending files.
It is currently a dummy entry, and does not do
anything.
PADDING [value]
Set the number of PAD-CHARS to be used while sending
files. This too does nothing.
START-OF-PACKET
Set the default start of packet character to another
character than control-A. This may be necessary on
systems (including intervening networks) that trap
control-A characters. Choose a control character not
otherwise used, ie not carriage return (13D, ODH), line
feed (10D, OAN), tabs (09D, 09H), backspace (08H), and
bell (07H) or any other used between you and your
remote system.
SPEED value
Change the baud rate of the communications port. This command
only works on some systems. value is the numeric baud rate
(300, 9600, etc.) desired. Type SET SPEED followed by a
question mark for a list of supported baud rates. On systems
that do not support this command, you must set the port baud
rate from CP/M or other setup mechanism outside of KERMIT-80.
TACTRAP Set the TAC intercept character. If you are attached to a TAC
it will swallow the intercept character (commercial AT sign by
default) so Kermit sends it twice. With this command you can
set the intercept character (ie the one to send twice) to
another character.
TERMINAL option
Select one of the following terminal characteristics:
OFF sets emulation off, and its up to the attached terminal
to respond to escape sequences sent from the remote
host system.
DUMB Like off, but carriage return and line feed characters
are the only control characters accepted. All other
control characters are simply ignored. (Really a "Glass
TTY").
EXTERNAL
Emulation is provided for by a routine in the system
dependent part of Kermit. Attempting to set this
option without having and externally supplied routine
will returna "Not Implemented" error.
OFF All characters are passed directly to the terminal
without any interpretation by Kermit.
VT52 When connected as a terminal to a foreign host, the
micro emulates a VT52. VT52 emulation is set by
default, except on micros that already have terminal
functionality built in, such as the DEC VT180 and
DECmate (these act as VT100-series terminals). Some
systems emulate other terminals, like the ADM3A; see
table 1-5.
QUIET Do not display any file transfer information onto the
console. This mode is useful if you console takes a
long time to update the display. Only the file name is
displayed. DEBUGging information is not displayed even
if selected.
REGULAR Inverse of QUIET. All packets etc displayed, as
ususal.
TIMER ON (or OFF)
Enable or disable the "fuzzy timer". The timer is off by
default, because in the normal case KERMIT-80 is communicating
with a mainframe KERMIT that has its own timer. Mainframe
KERMIT timers tend to be more precise or adaptable to changing
conditions. You should SET TIMER ON if you are communicating
with a KERMIT that does not have a timer. You should SET TIMER
OFF if you are communicating over a network with long delays.
USER user-number
Sets another user number to be active. Acceptable user numbers
are 0 to 31, though it is recommended to use user numbers 0 to
15 only. This is really only useful for Winchester Systems
with high disk capacities.
WARNING ON (or OFF)
Warn user of filename conflicts when receiving files from
remote host, and attempt to generate a unique name by adding
"&" characters to the given name. ON by default, which is
equivalent to SET COLLISION RENAME.
SHOW Display all settable parameters. You will get a page or so of the
status af all parameters that can be set using the SET command.
STATUS The same function as Show.
STAY Equivalent to SET NO-EXIT.
TAKE filespec
Take characters and commands from the specified file as if they were
entered from the keyboard. This is useful if you want to set up a
batch job. A command file can send, get, receive, set functions etc
automatically. A TAKE command can be interrupted with ^C.
An automatic "TAKE KERMIT.INI" is executed from the default drive when
Kermit-80 is loaded. This can be used to set defaults of band rate,
parity, filetype, default drive etc.
If KERMIT.INI does not exist, control is given directly to the user.
TRANSMIT filespec turnaround
Send the specified file to the system on the other end of the
connection as though it were being typed at the terminal, one line at a
time. Each line sent is terminated with a carriage return, and any
line feeds are stripped from the file sent. After each line has been
sent Kermit waits for a character string from the host (eg a acrriage
return). If not specified, a carriage return is assumed. No KERMIT
protocol is involved. An asterisk (star) is sent to the console for
every line sent, to indicate how the transfer is progressing. This is
useful for sending files to systems that don't have a KERMIT program.
During transmission, you may type one of these single-character
commands:
Control-C
Cease transmission, and drop into terminal emulation mode.
CR (carriage return) Re-transmit the previous line.
TYPE filespec
Type a local CP/M file or files on the CP/M screen. A Control-C will
cancel the command and return to the Kermit prompt. A Ctrl-X will
cancel the current file and go on to the next one, if any. Typing any
other character while the file is being displayed will suspend the
output. Another character will resume output.
VERSION Show the name, edit number, and edit date of several of the modules
that make up Kermit-80.
1.6. Kermit-80 Flavors
Many of the systems supported use an external terminal, rather than a built-in
console. Kermit may be further customized for these systems by defining (at
assembly time) the terminal type to be used. If the terminal type is unknown
or does not match any of the existing terminal options, the generic "CRT"
option may be selected. In this case, Kermit cannot do fancy screen control
during file transfer; it simply types the file names, packet numbers, and
messages in sequence across and down the screen. This works best if you can
put your micro or terminal in "autowrap" mode; otherwise the packet numbers
will pile up in the rightmost column; the filenames and messages will always
appear on a new line, however. If no specific terminal has been selected,
Kermit cannot do VT52 emulation; it can act as a "dumb terminal" (sometimes
called a "glass TTY"), or else its own built in terminal firmware provides
cursor control functions independent of the Kermit program.
1.6.1. Generic Kermit-80
"Generic Kermit-80" is an implementation of Kermit that should run on any 8080-
compatible CP/M 2.2 system with no modification at all, or perhaps only a minor
one. Unlike other Kermit-80 implementations, it contains no system-dependent
manipulation of the serial port. All I/O is done with standard CP/M BIOS
calls, and I/O redirection is done using the CP/M IOBYTE function, which,
according to the Digital Research CP/M Operating System Manual, is an optional
feature of any particular CP/M implementation. If your system does not provide
the IOBYTE function, Generic Kermit-80 will not work; furthermore, not all
systems that implement IOBYTE do so in the same way. The SET PORT command may
be used to select the devices to be used for input and output. Table 1-1 lists
the options to the SET PORT command and their effects.
-----------------------------------------------------------------------
SET PORT xxx input from output to
CRT CRT: CRT:
PTR PTR: PTP:
TTY TTY: TTY:
UC1 UC1: UC1:
UR1 UR1: UP1:
UR2 UR2: UP2:
Table 1-1: Kermit-80 SET PORT Options
-----------------------------------------------------------------------
The default is SET PORT PTR. In all cases, the console (CON:) and list (LST:)
devices used are those selected when Kermit is started.
The reason all Kermit-80 implementations aren't generic is that a good deal of
speed is sacrificed by getting all services from the operating system. While a
specific implementation of Kermit-80 may be able to operate at 4800, 9600, or
even 56 Kilo baud, generic Kermit will fail to work on some systems at speeds
in excess of 1200 baud. In addition, many features of Kermit require more
specific knowledge of the hardware involved. Generic Kermit cannot send a
BREAK signal, or change the baud rate, for example.
1.6.2. CP/M 3 Kermit
CP/M-3 Kermit (also known as CP/M-Plus Kermit) is a version of generic
Kermit-80, and should run on most CP/M-3 (CP/M-Plus) systems. It uses the
auxilliary port (AUX:) to communicate to the remote Kermit. The SET BAUD and
SET PORT commands are not supported; nor can a BREAK be sent. Like generic
Kermit-80, a terminal may be selected at assembly time.
1.6.3. System-Specific Versions
There are also many versions of Kermit-80 tailored to specific systems. Most
of these operate uniformly, but some of them take advantage (or suffer
limitations) of the specific system. Here are some of the special features for
particular systems:
Amstrad: -- Two versions:
PCW 8256
The PCW 8256/8512 with the serial inerafce attached.
CPC 6128
The 664 with add on memory and 6128 are both supported. Both systems
must run CP/M Plus, so the 664 will need an add on RAM pack and CP/M
upgrade. A high speed transfer rate of 38k baud can be used between
Amstrad computers.
ACCESS:
Access Matrix computer using port J5. Supports SET BAUD-RATE for rates of
300-9600 baud.
Apple II -- four variations:
APMMDM:
Apple with Z80 Softcard and Micromodem II in slot 2 Dialout capability
provided in connect command; user is prompted for phone number if
carrier is not present. During connect mode, ^]D drops carrier. BYE
command also causes carrier to be dropped.
AP6551:
Apple with Z80 Softcard, and one of several 6551-based communication
cards; the slot number is a compile-time parameter (default is slot 2).
SET BAUD-RATE supported; speeds are 110-19200 baud.
APCPS:
Apple with Z80 Softcard and CP Multi-Function Card. The slot number is
again a compile-time parameter. SET BAUD-RATE is supported for baud
rates from 50 baud to 19200 baud.
AP6850:
Apple II with Z80 Softcard and a 6850-based USART in slot 2-the slot
being a compile-time parameter. SET BAUD-RATE is not supported.
BBC:
Acorn Computers BBC Computer with Acorn Z80 second processor running
CP/M-80. Supports SET BAUD-RATE and can send breaks.
BigBoard II:
Uses serial port A. To use port B, change mnport, mnprts, and baudrt and
reassemble. Can generate BREAK. SET SPEED supported; speeds are 300-38400
baud.
Cifer:
Originally coded for Cifer 1886 using the VL: port set as TTYI: and TTYO:
but works successfully on 18xx and 28xx series machines.
There are now two versions, each with two variations: Either running CP/M
Version 2.2 or 3.0, and either using the VL: or AUX: ports. The VL: port
version can only use seven bits of data, so parity prefixing is required
for binary file transfers. This restriction is removed by using the AUX:
port. For those interested, the problem is due to the interprocessor link
between the video and CPU (!) boards. The VL: port is on the video board,
and the AUX: port on the CPU board, and the inter processor link can only
transfer seven bits of data.
Supports SET SPEED, and can generate breaks on some models with a BREAK
key.
Comart:
Comart Communicator-Similar to Northstar equipment. Can generate BREAK.
Compupro:
Based on Kermit 3.x, and has been merged into V4.09
CPT-85xx word processors:
Can generate BREAK. SET SPEED supported; speeds are 50-9600 baud.
Cromemco:
Cromemco computers with TU-ART card. Supports SET BAUD-RATE (110-9600
baud).