From c25f6a44a6e2266617af2f326fa5dc0c4864035f Mon Sep 17 00:00:00 2001 From: Leo C Date: Fri, 4 Dec 2015 20:51:23 +0100 Subject: [PATCH] Import of "Kermit 80 for CP/M-80 and CP/M-85" from http://www.columbia.edu/kermit/ftp/archives/cpm80.tar.gz --- cpaaaa.txt | 195 ++ cpk409.ann | 354 +++ cpk411.ann | 90 + cpkerm.bw2 | 131 + cpkerm.bw3 | Bin 0 -> 2860 bytes cpkerm.bw4 | 50 + cpkerm.bwr | 565 +++++ cpkerm.mss | 2616 ++++++++++++++++++++ cpkerm.pdf | Bin 0 -> 88043 bytes cpkerm.ps | 6971 ++++++++++++++++++++++++++++++++++++++++++++++++++++ cpkerm.txt | 2463 +++++++++++++++++++ cpkfet.ddt | 61 + cpkfet.msg | 24 + cpkhdr.mss | 156 ++ cpkhex.bas | 88 + cpscmd.asm | 1140 +++++++++ cpscom.asm | 1371 +++++++++++ cpscpm.asm | 932 +++++++ cpsdat.asm | 648 +++++ cpsdef.asm | 287 +++ cpsker.asm | 315 +++ cpsker.hex | 1589 ++++++++++++ cpsmit.asm | 834 +++++++ cpspk1.asm | 1904 ++++++++++++++ cpspk2.asm | 1336 ++++++++++ cpsrem.asm | 1149 +++++++++ cpsser.asm | 44 + cpstt.asm | 862 +++++++ cpsutl.asm | 1227 +++++++++ cpswld.asm | 222 ++ cpva65.hex | 65 + cpvacc.hex | 64 + cpvadv.hex | 71 + cpvamp.hex | 72 + cpvapl.hex | 75 + cpvapm.hex | 79 + cpvbb2.hex | 71 + cpvbbc.hex | 83 + cpvbee.hex | 134 + cpvbns.hex | 53 + cpvbra.hex | 81 + cpvbrm.hex | 82 + cpvca2.hex | 86 + cpvca3.hex | 84 + cpvci3.hex | 86 + cpvcif.hex | 88 + cpvcom.hex | 57 + cpvcp3.hex | 52 + cpvcpc.hex | 134 + cpvcps.hex | 82 + cpvcpt.hex | 87 + cpvcro.hex | 59 + cpvdel.hex | 68 + cpvdis.hex | 73 + cpvdm2.hex | 70 + cpvdmv.hex | 72 + cpvgen.hex | 62 + cpvgni.hex | 82 + cpvh89.hex | 90 + cpvh8q.hex | 69 + cpvhor.hex | 57 + cpvhp1.hex | 80 + cpvhp1.txt | 99 + cpvkpr.hex | 86 + cpvlbo.hex | 90 + cpvmdi.hex | 68 + cpvmik.hex | 78 + cpvmm.hex | 72 + cpvmrl.hex | 58 + cpvns.hex | 60 + cpvosb.hex | 69 + cpvosi.hex | 48 + cpvpci.hex | 73 + cpvpcw.hex | 137 ++ cpvpro.hex | 80 + cpvpx8.hex | 82 + cpvpx8.hlp | 23 + cpvrmf.hex | 71 + cpvrmm.hex | 71 + cpvrob.hex | 77 + cpvsan.hex | 62 + cpvsb6.hex | 96 + cpvsb9.hex | 94 + cpvscn.hex | 86 + cpvtel.hex | 82 + cpvtet.hex | 61 + cpvtlb.hex | 65 + cpvtm4.hex | 81 + cpvtpt.hex | 65 + cpvtrc.hex | 103 + cpvud.hex | 52 + cpvusm.hex | 53 + cpvvec.hex | 60 + cpvxer.hex | 86 + cpvz00.hex | 61 + cpvz80.hex | 52 + cpxapp.asm | 749 ++++++ cpxbbi.asm | 618 +++++ cpxbee.asm | 996 ++++++++ cpxcif.asm | 746 ++++++ cpxcom.asm | 486 ++++ cpxgni.asm | 440 ++++ cpxhea.asm | 921 +++++++ cpxlnk.asm | 206 ++ cpxmrl.asm | 454 ++++ cpxnor.asm | 587 +++++ cpxpcw.asm | 912 +++++++ cpxpro.asm | 561 +++++ cpxsb.asm | 696 ++++++ cpxswt.asm | 294 +++ cpxsy2.asm | 1364 ++++++++++ cpxsyo.asm | 389 +++ cpxsys.asm | 1386 +++++++++++ cpxtm4.asm | 490 ++++ cpxtor.asm | 1229 +++++++++ cpxtyp.asm | 722 ++++++ cpxvdu.asm | 462 ++++ cpxz80.asm | 350 +++ cpzspa.txt | 92 + lasm.hex | 353 +++ lasm.txt | 149 ++ m80unv.mac | Bin 0 -> 5177 bytes m80v6.doc | Bin 0 -> 374 bytes m80v7.doc | Bin 0 -> 1521 bytes m80v7.msg | Bin 0 -> 2314 bytes mac80.cmd | Bin 0 -> 24 bytes mac80.doc | Bin 0 -> 878 bytes mac80.mac | 412 ++++ mac80a.mac | 2731 ++++++++++++++++++++ mload.asm | 1493 +++++++++++ mload.hex | 173 ++ mload.txt | 138 ++ 132 files changed, 53192 insertions(+) create mode 100644 cpaaaa.txt create mode 100644 cpk409.ann create mode 100644 cpk411.ann create mode 100644 cpkerm.bw2 create mode 100644 cpkerm.bw3 create mode 100644 cpkerm.bw4 create mode 100644 cpkerm.bwr create mode 100644 cpkerm.mss create mode 100644 cpkerm.pdf create mode 100644 cpkerm.ps create mode 100644 cpkerm.txt create mode 100644 cpkfet.ddt create mode 100644 cpkfet.msg create mode 100644 cpkhdr.mss create mode 100644 cpkhex.bas create mode 100644 cpscmd.asm create mode 100644 cpscom.asm create mode 100644 cpscpm.asm create mode 100644 cpsdat.asm create mode 100644 cpsdef.asm create mode 100644 cpsker.asm create mode 100644 cpsker.hex create mode 100644 cpsmit.asm create mode 100644 cpspk1.asm create mode 100644 cpspk2.asm create mode 100644 cpsrem.asm create mode 100644 cpsser.asm create mode 100644 cpstt.asm create mode 100644 cpsutl.asm create mode 100644 cpswld.asm create mode 100644 cpva65.hex create mode 100644 cpvacc.hex create mode 100644 cpvadv.hex create mode 100644 cpvamp.hex create mode 100644 cpvapl.hex create mode 100644 cpvapm.hex create mode 100644 cpvbb2.hex create mode 100644 cpvbbc.hex create mode 100644 cpvbee.hex create mode 100644 cpvbns.hex create mode 100644 cpvbra.hex create mode 100644 cpvbrm.hex create mode 100644 cpvca2.hex create mode 100644 cpvca3.hex create mode 100644 cpvci3.hex create mode 100644 cpvcif.hex create mode 100644 cpvcom.hex create mode 100644 cpvcp3.hex create mode 100644 cpvcpc.hex create mode 100644 cpvcps.hex create mode 100644 cpvcpt.hex create mode 100644 cpvcro.hex create mode 100644 cpvdel.hex create mode 100644 cpvdis.hex create mode 100644 cpvdm2.hex create mode 100644 cpvdmv.hex create mode 100644 cpvgen.hex create mode 100644 cpvgni.hex create mode 100644 cpvh89.hex create mode 100644 cpvh8q.hex create mode 100644 cpvhor.hex create mode 100644 cpvhp1.hex create mode 100644 cpvhp1.txt create mode 100644 cpvkpr.hex create mode 100644 cpvlbo.hex create mode 100644 cpvmdi.hex create mode 100644 cpvmik.hex create mode 100644 cpvmm.hex create mode 100644 cpvmrl.hex create mode 100644 cpvns.hex create mode 100644 cpvosb.hex create mode 100644 cpvosi.hex create mode 100644 cpvpci.hex create mode 100644 cpvpcw.hex create mode 100644 cpvpro.hex create mode 100644 cpvpx8.hex create mode 100644 cpvpx8.hlp create mode 100644 cpvrmf.hex create mode 100644 cpvrmm.hex create mode 100644 cpvrob.hex create mode 100644 cpvsan.hex create mode 100644 cpvsb6.hex create mode 100644 cpvsb9.hex create mode 100644 cpvscn.hex create mode 100644 cpvtel.hex create mode 100644 cpvtet.hex create mode 100644 cpvtlb.hex create mode 100644 cpvtm4.hex create mode 100644 cpvtpt.hex create mode 100644 cpvtrc.hex create mode 100644 cpvud.hex create mode 100644 cpvusm.hex create mode 100644 cpvvec.hex create mode 100644 cpvxer.hex create mode 100644 cpvz00.hex create mode 100644 cpvz80.hex create mode 100644 cpxapp.asm create mode 100644 cpxbbi.asm create mode 100644 cpxbee.asm create mode 100644 cpxcif.asm create mode 100644 cpxcom.asm create mode 100644 cpxgni.asm create mode 100644 cpxhea.asm create mode 100644 cpxlnk.asm create mode 100644 cpxmrl.asm create mode 100644 cpxnor.asm create mode 100644 cpxpcw.asm create mode 100644 cpxpro.asm create mode 100644 cpxsb.asm create mode 100644 cpxswt.asm create mode 100644 cpxsy2.asm create mode 100644 cpxsyo.asm create mode 100644 cpxsys.asm create mode 100644 cpxtm4.asm create mode 100644 cpxtor.asm create mode 100644 cpxtyp.asm create mode 100644 cpxvdu.asm create mode 100644 cpxz80.asm create mode 100644 cpzspa.txt create mode 100644 lasm.hex create mode 100644 lasm.txt create mode 100644 m80unv.mac create mode 100644 m80v6.doc create mode 100644 m80v7.doc create mode 100644 m80v7.msg create mode 100644 mac80.cmd create mode 100644 mac80.doc create mode 100644 mac80.mac create mode 100644 mac80a.mac create mode 100644 mload.asm create mode 100644 mload.hex create mode 100644 mload.txt diff --git a/cpaaaa.txt b/cpaaaa.txt new file mode 100644 index 0000000..2d48bc4 --- /dev/null +++ b/cpaaaa.txt @@ -0,0 +1,195 @@ +CPAAAA.HLP 23 April 1991 + + +Version 4.11 of Kermit-80 is a development of the previous release 4.09, +changed to add more features. Much of the system-dependent code is as it +was in Version 4.09. The names of the files for Version 4.11 follow a fixed +convention. They all have the form + + CPaxxx.bbb + +In these names: + + "a" is one of + + A for general information + K for documentation and beware files + S for system independent files + X for system-dependent source files + V for system-dependent hex files + + "xxx" is used to identify unique files used + + "bbb" is the file extention, usually one of: + + ASM for source files + HEX for pre-assembled modules or completeprograms (eg + LASM.HEX is the assembler) + HLP for help files + BWR for beware files + ANN for notes + TXT for pure text files + DOC as for TXT + MSS SCRIBE sources files (for document files.) + +CPKFET.* is a bootstrapping procedure that can be used if you have no other +way to download the new files. + +Version 4.11 may be assembled and linked with LASM and MLOAD, respectively, +or it may be assembled with the M80 assembler. + +It is also possible to assemble the source files on an IBM PC or clone using +the Z80MU CP/M V2.2 and Z80 emulator, itself running the LASM or M80 +assembler. (Using Z80MU is very useful if your target systems does not have +enough disk space for all the source files.) + +CP/M Kermit Version 4.11 is built from the sources in the same manner as was +CP/M Kermit Version 4.09. LASM and MLOAD may be found in the Kermit +distribution. + +The M80 assembler is a Microsoft product, and you have to pay good money for +it. + +**Note** The overlay address has been moved to 7000H to make room for the +added code in this version of CP/M Kermit. + +Currently, the code for a number of systems has been upgraded from version +4.09. The particular system is indicated in filenames by the "xxx" part: +codes currently in use are: + +APP Apple II with Z80 card + - with Micromodem in slot 2 + - with 6551 and 6850 UARTs + - with CP Multifunction card + +BBI Kaypro, Bigboard, Xerox 820 and Ampro Little Board systems + +CIF Cifer 1886 using the VL: or AL ports as TTY:Line. (Use &set + to set ttyi: and ttyo: to the VL: or AL:port) Choice of + CP/M V2.2 or 3.0 ("PLUS") + +HEA Heath systms (Heath 8 with quad IO interface board) + Telcon ZORBA + +PCW Amstrad PCW 8256 and 8152 as well as CP/M-plus on CPC 6128 + +NOR Northstar Advantage + Northstar Horizon (Several: labels in CPXTYP are: + BASICNS + NORTHS + HORIZON + Comart Communicator. This is included as it is somewhat + similar to the Northstar Horizon. + +TOR Superbrain (Main and Aux port versions.. assumes MicroMods + add-ons) + Torch systems (runs ok on Unicorn-5 under CP/M) + Ithaca Intersystems series machines using the VIO card. (PCI + 2651 USARTS) + NCR DecisionMate V systems + +as well as another half dozen single system only family files. The total +list of systems supported so far is: + + +System supported in CP/M-80 Kermit V4.11 (and growing!) +Label .HEX File For system +============================================================================ +ACCESS CPVACC Access Matrix +ADVANT CPVADV Northstar Advantage +AMPRO CPVAMP Ampro Little Board (terminal required) +AP6551 CPVAPL Apple II, Z80 Softcard, 6551 ACIA in serial Interface +AP6850 CPVA65 Apple II, Z80 Softcard, 6850 ACIA in Serial Interface +APMMDM CPVAPM Apple II, Z80 Softcard, Micromodem II in slot 2 +APCPS CPVCPS Apple II, Z80 Softcard, with CPS multifunction card +BASICNS CPVBNS Northstar Horizon (terminal required) +BBC CPVBBC Acorn "BBC" computer with Acorn Z80 second processor +BBII CPVBB2 BigBoard II (terminal required) +MBEE CPVBEE Microbee Systems Ltd Microbee (56K, 64K, 128K & 256K) +BRAINM CPVBRM Intertec Superbrain using the main port +BRAINA CPVBRA Intertec Superbrain using the Aux port +CIFER2 CPVCIF Cifer 1886 using the VL: Serial port and CP/M V2.2 +CIFER3 CPVCI3 Cifer 1886 using the VL: Serial port and CP/M V3.0 +CIFER2 CPVCA2 Cifer 1886 using the AUX: Serial port and CP/M V2.2 +CIFER3 CPVCA3 Cifer 1886 using the AUX: Serial port and CP/M V3.0 +CMEMCO CPVCRO Cromemco with TU-ART card. Terminal required) +COMART CPVCOM Comart Communicator (terminal required) +COMPRO CPVPRO Compupro with Interfacer 4 (or 3). Terminal required. +CPC CPVCPC Amstrad CPC 664 and 6128 and CP/M 3 +CPM3 CPVCP3 "Generic": CP/M 3.0 (CP/M Plus) systems (terminal req'd) +CPT85XX CPVCPT CPT-85xx wordprocessor with CP/M +DELPHI CPVDEL Digicomp Delphi 100 (terminal required) +DISC CPVDIS Action Computer Enterprises "Discovery" (terminal req'd) +DMII CPVDM2 DECmate II with CP/M option +GENER CPVGEN "Generic": CPM 2.2 systems with IOBYTE (terminal req'd) +GENIE CPVGNI Video Genie +H8QUAD CPVH8Q Heath-8 with Quad 8 i/o board +HEATH CPVH89 Heath/Zenith H89 +HORIZON CPVHOR Northstar Horizon (terminal required) +HP125 CPVHP1 Hewlett-Packard HP-125 Business Assistant +KPII CPVKPR Kaypro-II (and 4; probably supports all Kaypro systems) +LOBO CPVLBO Lobo Max-80 +M2215 CPVMRL British Telecom Merlin/Rair Black Box (terminal required) +MDI CPVMDI Morrow Decision I (terminal required) +MIKKO CPVMIK MikroMikko +MMATE CPVMM PMC 101 Micromate (terminal required) +MMDI CPVUD Morrow Micro Decision I (terminal required) +NCRDMV CPVDMV NCR Decision Mate V. (Terminal required?) +NORTHS CPVNS Northstar Horizon with HSIO-4 card (terminal req'd) +OSBRN1 CPVOSB Osborne 1 +OSI CPVOSI Ohio Scientific +PCI2651 CPVPCI Ithaca Intersystems with VI0 card (terminal required) +PCW CPVPCW Amstrad PCW 8256/8512 with serial interface +PX8 CPVPX8 Epson PX-8 +RM380ZM CPVRMM Research Machines 380Z with MDS (5.25" discs) +RM380ZF CPVRMF Research Machines 380Z with FDS (8" discs) +ROBIN CPVROB DEC VT180 +S1008 CPVUSM US Microsales S-100-8 (terminal required) +SANYO CPVSAN Sanyo MBC-1100 +SB6 CPVSB6 Micromint SB-180 with 6Mhz CPU (terminal required) +SB9 CPVSB9 Micromint SB-180 with 9Mhz CPU (terminal required) +SCNTPR CPVSCN Screentyper +TELCON CPVTEL TELCON Zorba portable +TELETEK CPVTET Teletek Systemaster (terminal required) +TORCH CPVTRC Torch computers BBC-B with Z80 second processors +TRS80LB CPVTLB TRS-80 model II with Lifeboat 2.25C CP/M Display +TRS80PT CPVTPT TRS-80 model II with Pickles + Trout CP/M Display +TRSM4 CPVTM4 TRS-80 model IV +VECTOR CPVVEC Vector Graphics +XER820 CPVXER Xerox 820 +Z100 CPVZ00 Z-100 under CP/M-85 +Z80MU CPVZ80 Z80MU development system on a PC + + +Terminals supported in CP/M-80 Kermit V4.11 (and growing!) +Label Terminal +======================================================================== +CRT Does not do cursor addressing +ADM3A Lear Seigler ADM 3A +ADM22 Lear Seigler ADM 22 +AM230 Ampro 230 +H1500 Hazeltine 1500 +SMRTVD Netronics Smartvid +SOROQ Soroq IQ-120 +TVI912 Televideo 912 +TVI925 Televideo 925 or Freedom 100 +VT52 Dec VT52 or equivalent (H19) +VT100 Dec VT100 or equivalent +WYSE Wyse 100 + +More systems and families are always coming in, so this list and the source +files are all likely to change sometime in the near future. + +Any comment, suggestions etc send them in. I will not guarentee that your +suggestions will be implemented, but maybe.... + +Cheers ES 73's/88's, Mike Freeman K7UIJ +Bonneville Power Administration +P.O. Box 491 +Vancouver, WA 98666 +(206)690-2307 +301 N.E. 107th Street +Vancouver, WA 98685 USA +(206)574-8221 + +E-Mail: freeman@watsun.cc.columbia.edu on Internet diff --git a/cpk409.ann b/cpk409.ann new file mode 100644 index 0000000..4c9def0 --- /dev/null +++ b/cpk409.ann @@ -0,0 +1,354 @@ +Following is the announcement of CP/M-80 Kermit version 4.09, the first +new release of CP/M Kermit since 4.05 since February 1985. + +Kermit files may be obtained over networks and by mail order. On the +Internetwork, use FTP to log in to host CU20B, CU20B.COLUMBIA.EDU, or +CU20B.CC.COLUMBIA.EDU (a DECSYSTEM-20), as user ANONYMOUS, using any password, +and GET (or MULTIPLE GET, or MGET) the desired files from logical device KER:, +e.g. MGET KER:CP*.* for the new CP/M files. You can also get Kermit files over +BITNET/EARN; to get started send a message with text HELP to KERMSRV, the +Kermit file server, at host CUVMA. For detailed instructions, read the file +KER:AANETW.HLP (AANETW HLP on KERMSRV). To order by mail, request a complete +list of Kermit versions and an order form from Kermit Distribution, Columbia +University Center for Computing Activities, 612 West 115th Street, New York, NY +10025 USA. + +Date: 8 Jan 88 0:00:00 +From: Bertil Schou, Loughborough University, UK +Via: SYSKERMIT%vax1.central.lancaster.ac.uk@NSS.Cs.Ucl.AC.UK +Subject: Announcing Version 4.09 of Kermit-80 for CP/M-80 +Keywords: CP/M-80 Kermit 4.09 + +After an incredibly long gestation period, here is hopefully an updated +version of Kermit-80 V4.05. Kermit-80 V4.08 is issued for testing purposes +only. Version 4.09 is the release issue of version 4.08. I still, however, +want any feedback about problems generated in this revision, or others +desperately want fixing. + +Superficially, there is little real change in operation of Kermit-80, version +4.05, but there have been some major jobs tackled like trapping BDOS calls and +multiple FCB buffering... + +New bits for this version include: + SET {SEND/RECEIVE} START-OF-PACKET character + SET DIRECTORY-FILE-SIZE (Shows or hides file sizes on + DIRectory displays) + SET TERMINAL to OFF, VT52, DUMB, EXTERNAL, QUIET, REGULAR. + SET USER to set other user spaces + RECEIVE to collect a file from a remote SENDer + GET to collect a file from a remote SERVER + SEND {local filename} {remote filename} + TAKE to take command files from disk (including other take files!) + FCOPY Copy CP/M files from within Kermit (no wildcard) + TYPE Type a file to the console from within Kermit + PRINT Print a file to the printer from within Kermit + - Updated TRANSMIT command that waits for a string of characters + from the host (default is CR). + - Command line commands, eg: + KERMIT ;SET FILE BINARY;SEND FOO.BAR + - Automatic TAKE KERMIT.INI on default disk on + loading KERMIT-80 (useful for SET BAUD etc.) + - Much improved speed on DIRECTORY + - Automatic CLOSE-ing of a terminal connection if the line is + DROP-ped (currently only for an Apple, and Torch has a dummy + test for cntrl-] D in connect state) + - Improved printer handling. + +On the negative side, only LASM and Microsoft M80 assemblers can be used to +assemble the source files. I personally see no point in being able to support +several assemblers if LASM can do the job, but then again, I have not used the +MAC80 cross assembler... Comments on assembler compatabilities, please! + +All source files have been renamed, and there are a few additions. All source +files are named in the form CPaxxx.ASM, where: + + a=A for general information + a=S for system independent source files and hex file + a=X for system dependent source files + a=V for system-dependent hex files + +The system dependent code has changed a litle too, hopefully bringing the +CPXSYS.ASM (formerly CP4SYS.ASM) file a bit more toward a manageable size. +There is now the possibility for FAMILIES of systems, like APPLE and NorthStar +(also Comart), which contains code for computers of a single type. I have +immediately gone against all this by creating a family with the code for +Torches, Cifers, Ithacas and Superbrains (this because we have these systems +here at Loughborough.) + +Bertil Schou. + +[Ed. - Many thanks, Bertil! And also to Alan Phillips and Steve Jenkins at +Lancaster University for sending this new version to us via transoceanic +magnetic tape, and to the many others in the UK who contributed to this new +release. This version supports all the systems supported by version 4.05, +with the exception of the HP-125, and with the addition of many more, for a +total of something like 52 systems. The new files have been installed in +KER:CP*.*, and the old ones moved (on CU20B, anyway) to KO:CP*.*. CP/M +users, please get this new version and try it out, so we can make sure it's +safe to distribute. And this is also the time to plead ONCE AGAIN for +volunteers to distribute CP/M Kermit on 5.25-inch diskette for different +kinds of systems, and also in "universal" 8-inch diskette format. Please +come forward if you can do it, or know of a user group that can!] + + +CPKERM.MSG 08 Jan 1988 +********** + +After an incredibly long gestation peroid, here is hopefully an +updated version of Kermit-80 V4.05. Kermit-80 V4.08 is issued for +testing purposes only. Version 4.09 is the release issue of +version 4.08. I still, however, want any feedback about problems +generated in this revision, or others desperately want fixing. + +Superficially, there is little real change in operation of +Kermit-80, version 4.05, but there have been some major jobs +tackled like trapping BDOS calls and multiple FCB buffering... + +New bits for this version include: + SET {SEND/RECEIVE} START-OF-PACKET character + SET DIRECTORY-FILE-SIZE (Shows or hides file sizes on + DIRectory displays) + SET TERMINAL to OFF, VT52, DUMB, EXTERNAL, QUIET, + REGULAR. External is for those wanting to write + their own drivers, DUMB passes only printing + characters and sone control characters (eg CR/LF). + QUIET/REGULAR permits brief/verbose screen + displays during transfers. + SET USER to set other user spaces + RECEIVE to collect a file from a remote SENDer + GET to collect a file from a remote SERVER + SEND {local filename} {remote filename} + TAKE to take command files from disk (including other + takes files!) + FCOPY Copy CP/M files from within Kermit (no wildcard) + TYPE Type a file to the console from within Kermit + PRINT Print a file to the printer from within Kermit + - updated TRANSMIT command that waits for a string + of characters from the host (default is CR) + - Command line commands, eg: + KERMIT ;SET FILE BINARY;SEND FOO.BAR + - automatic TAKE KERMIT.INI on default disk on + loading KERMIT-80 (useful for SET BAUD etc.) + - much improved speed on DIRECTORY + - automatic CLOSE-ing of a terminal connection if + the line is DROP-ped (currently only for an Apple, + and Torch has a dummy test for cntrl-] D in + connect state) + - improved printer handling. (Kermit-80 sends an + XOFF to the host if the characters are comming in + faster than they are printed. This does not work + in this version, as another option, SET FLOW- + CONTROL has not been fully implemented - also, I + did not have a printer to test this out on a + Torch...) + +On the negative side, only LASM and Microsoft M80 assemblers can +be used to assemble the source files. I personally see no pont in +being able to support several assemblers if LASM can do the job, +but then again, I have not used the MAC80 cross assembler... +Comments on assembler compatabilities, please! + +All source files have been renamed, and there are a few +additions. All source files are named in the form: + + + + + + + +CPaxxx.ASM + +where: + + a=A for general information + a=S for system independent source files and hex file + a=X for system dependent source files + a=V for system-dependent hex files + +The system dependent code has changed a litle too, hopefully +bringing the CPXSYS.ASM (formerly CP4SYS.ASM) file a bit more +toward a manageable size. There is now the possibility for +FAMILIES of systems, like APPLE and NorthStar (also Comart), +which contains code for computers of a single type. I have +immediately gone against all this by creating a family with the +code for Torches, Cifers, Ithacas and Superbrains. (This because +we have these systems here at Loughborough) + +CPXSYS.ASM is the "left over" systems not having a family to go +to (poor things), but is very much smaller than the original +CP4SYS.ASM. + +All VDU and terminal information is now held in CPXVDU.ASM. This +is really the last section in the older CP4SYS.ASM file. + +A quick "schematic" of what happens at assembly time... (assuming +LASM is being used) + +LASM CPXTYP... this then assembles the following: + +CPXTYP + | + v +CPSDEF + | + v +CPXLNK + | + v +CPXCOM (Common code for most systems) + | + v +CPXSWT-------+----------+-----------+-----------+---- File selector + | | | | | + v v v v CPXTOR CPXAPP CPXNOR CPX??? one of + | | | | | several + | | | | | Families + +<----------+----------+-----------+-----------+---- + | + v +CPXVDU (if a terminal is required) + | + | + v + + + + +Users should be aware of the change both to the linking + + + + + + +information and start of the overlay address. Since Version 4.05, +four new entries have been added to the overlay table. First of +all, family (offset +6), which is a two byte poiter to a text +string in the family file. The remainder are two byte pointers +(in the usual JMP 0 format) to a print status routne, (lptstat +offset 20h), an optional VDU driver, and a reverse entry back to +the system independent BDOS routines (which does a lot more than +simply pass on the BDOS request to BDOS) + +There have also been some bugs fixed in some of the system +dependent code, so you would be wise pulling all the source files +across. + +The overlay address is now 6000h, and will probably change before +this revision is complete. The speeding up of multiple file +handling takes its toll on memory, as there are now 64-ish FCBs +buffered. This speeds up the DIRECTORY command no end. + +With the overlay address at 6000h there is still a lot of space +free for more things to be added, so unless there is a big hash +made to Kermit, this will not change. + +Most of the Version 4.05 documentation still holds for this +version of kermit-80. Note however the changes in the number of +system dependent files used, and the use of FAMILY files. + +The new commands are (hopefully) self-explanatory. The TAKE +command requires files TAKE-n to be pure ASCII text, with a +control-z as the end of file marker. Most editors will probably +do this for you. + +LASM and Microsoft M80 assembles are the only ones supported. I +suggest LASM be used by default for all further development work, +though I DO know that there are others requestin M80 +comaptability. + +How to get V4.09 onto your system. +********************************** +If you alread have a Kermit running on your system, you should be +able to pull the CPSKER.HEX and suitable system file to yopur +system, then MLOAD the two together. If you dont have kermit, +see if you cannot get a copy from somewhere - it saves a lot of +frustrating work. Failing that, refer to the REAL manuals! + +If you want to assemble the sources from scratch, pull all +CPS*.ASM files, and CPX(TYP LNK COM SWT).ASM files, and +CPXVDU.ASM if you use a terminal. You will have to pluck +either CPXSYS./ASM or another family file. You will also need +loads of disk space. If you run short, but have a handy IBM PC +or clone with a Mbyte or two free, use the public domain Z80 +emulator Z80MU to develop the .HEX files required. Also aquire a +copy of LASM. Use LASM it to assemble CPSKER and CPXTYP after +editing CPXTYP and selecting a suitable system. This generates +CPSKER.HEX and CPXTYP.HEX. + +MLOAD the two .HEX files together, eg: + +MLOAD NEWKER=CPSKER,CPXTYP + +After this, you will hopefully have a runnable copy of KERMIT-80 + + + + + + +Version 4.09 on your system. + +Disclaimer: No responsibilty can be assumed by anyone as to the +suitabilty etc.etc. In otherwords, you are the one responsible +for your implentation of Kermit-80, any version. I will give help +where I can, but no guaranttes will be given. Note that not all +systems and facilities have been tested (thats why you are +getting involved!) so make sure you have a copy of 4.05 Kermit +before trying this one! + +Things yet to be done - lots! + +There have been moves trying to add other independent modules for +other terminal emulators other than the VT52. Demands for SERVER, +REMOTE HOST..., file compression, better TRANSMIT, % of file sent +and/or Kbytes sent/received as part of the display diring +transfers, a lot of cosmetic tidying up as well as even more +systems to be added. CP/M-80 is a slowly dying DOS, and I feel +inclined to leave some bits out, like SERVER (how many use really +large Winchesters in CP/M-80 systems, and want true servers?). +Does anyone have a burning desire for these facilities? And if +so, will YOU be willing to take on the job of implementing them? + +If you have any comments, please E-mail them to OBSchou (me) at +Loughborough. If you really must, try (0509) 222313, but I share +a phone, so use the phone only if you cannot mail me. + +Best of luck, + +Bertil Schou. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cpk411.ann b/cpk411.ann new file mode 100644 index 0000000..92df86e --- /dev/null +++ b/cpk411.ann @@ -0,0 +1,90 @@ +Date: 24-May-1991 + +Announcing: CP/M Kermit Version 4.11 + +Just to prove that the CP/M world still exists, here is CP/M Kermit -80 +Version 4.11. + +Features added since version 4.09 include: + +o SET COLLISION {BACKUP/DISCARD/OVERWRITE/RENAME} +o SET INCOMPLETE-FILES {DISCARD/KEEP} +O Many REMOTE commands, including some REMOTE SET commands +o RENAME command to rename CP/M files from within Kermit-80 +o SET RECEIVE/SEND PACKET-LENGTH nn (nn <= 94) +o SET AUTORECEIVE ON now implies that Kermit-80 ALWAYS tries to + receive more files when a RECEIVE transaction has completed. The + user can abort with ^C. +o QUIT is now a synonym for EXIT. +o STAY is now a synonym for SET NO-EXIT. +o CONNECT, RECEIVE and SEND may be abbreviated to C, R and S, + respectively. +o Processing of commands from a file via a TAKE command may now be + aborted by entering a Control-C at the console. +o The TYPE and PRINT commands are now immediately aborted if a + Control-C is entered at the console. If a Control-X is entered at + the console, typeout/printout of the current file is aborted and + typeout/printout of the next file, if any, begins. These actions + also occur if any other key has been pressed to halt typeout/printout + and Control-C or Control-X is pressed. Pressing any other key resumes + the typeout/printout. +o Many bug fixes +o Kermit-80 Version 4.11 now supports the Microbee family of + computers (56K, 64K, 128K and 256K) manufactured by + Microbee Systems, Ltd, of Australia. +o Kermit-80 now supports the Ampro Little Board system. + +Technical changes: + +o An "I" packet is now tried before the request for files is sent + in a GET command +o The overlay address is now 7000H +o The overlay (CPXLNK.ASM) has an added INCFLG variable to handle + INCOMPLETE-FILES status +o The COPY, TYPE and PRINT commands now use the large buffer + (8K bytes default size) for file I/O + +Syntax hints: + +In REMOTE commands such as REMOTE COPY, REMOTE MESSAGE, REMOTE RENAME, +REMOTE WHO etc., where two arguments are required, the syntax is as for Vax +VMS Kermit, i.e., +REMOTE +Prompt: +For example: +REMOTE COPY +New file: + +The REMOTE LOGIN command has three arguments, of which the last two are +prompted for an entered on new lines. Arguments are optional. + +In commands such as REMOTE SET FILE BLOCK-SIZE which take a numeric +argument, Kermit-80 does not check the argument for validity. Whatever is +typed is what the host sees. + +The FCOPY command has been renamed to COPY. + +The syntax for the RENAME command is as for the COPY command, that is: +RENAME + +More rigorous checking for wildcards is now done by both of these +commands. + +The STRING command has been renamed to OUTPUT. + +SET BAUD-RATE is now SET SPEED. + +The option SET FILE DEFAULT has ben re-enabled. Use a TAKE-file to set the +initial file-mode to ASCII or BINARY. + +Building Kermit-80 ver. 4.11: + +Kermit-80 ver. 4.11 is built using the same procedure as for ver. 4.09. + + +Many thanks to those who have contributed bug fixes, and, in particular, +to Mr. Russell Lang of Monash University, Australia, for contributing +a bug-fix and the family file for the Microbee systems and to Mr. +Jay S. Rouman of Mt. Pleasant, MI for contributing the code for the Ampro +Little Board. Thanks are also due to Lance Tagliapietra of the University +of Wisconsin at Platteville for finding several bugs. diff --git a/cpkerm.bw2 b/cpkerm.bw2 new file mode 100644 index 0000000..ae3d6de --- /dev/null +++ b/cpkerm.bw2 @@ -0,0 +1,131 @@ +Re: Problems with CP/M Kermit Version 4.09 + +Following is a list of problems and their solutions for CP/M Kermit +Version 4.09. Bear in mind that the latest version of CPSPK1.ASM I have is +edit (11) and of CPSPK2.ASM is edit (4). + +Problem: When the terminal is in "quiet" mode, initiation of file-transfers + causes lots of garbage to appear on the screen which is distracting + and which raises havoc with voice output devices. +Diagnosis: In the module CPXCOM.ASM, the routine "prtstr" has two flavors: + one for machines which cannot display control-characters via BDOS + function 9 and one which can display such characters via function 9. + In this latter case, only register pair BC is saved around the BDOS + call. This is insufficient as BDOS also clobbers register pairs + DE and HL during the call. In "quiet" mode, at least one of these + pairs is expected to remain constant. +Solution: Save register pairs DE and HL around the function 9 BDOS call. + +Problem: When GETting a file, the initialization routine "init" is executed + twice. This doesn't harm anything and may not be noticeeable in + print but is most annoying when using voice output as "init" types + out the Kermit version and screen initialization strings and thus + one hears them twice. +Solution: In the module CPSPK1.ASM, move the label "read0a" down one line + so that the common code for the "receive" and "get" commands starts + just *after* the call to "init" is made in "receive" mode. + +Problem: With "auto-receive" set to "off", after a RECEIVE has completed, + Kermit waits for Console input; then looks for more data to receive + when there is none. +Diagnosis: In the module CPSPK1.ASM, when the status of "auto-receive" is + checked, the wrong label is branched to if "auto-receive" is OFF. +Solution: Change the instruction "jz read5c" to "jz read5b". + +Problem: Files whose filenames are less then 8 characters in length have + ASCII zeros ("0") appended to them. +Diagnosis: In the module CPSPK2.ASM, after label "gofi7b", where the status + of "file-warning" is checked, the code for the appending of "&" + characters to filenames if the file already exists on disk has been + commented out and new code putting numeric suffixes on filenames + in this case has been substituted. In the process, the code for + checking for a file's existence has been accidentally commented out. + Thus, if "file-warning" is "on", *every* file is assumed to have + a duplicate and a numeric suffix is added to each filename. In + addition, no warning of this is given on-screen. +Solution: (1) Uncomment the code which checks for the existence of each file. + (2) Uncomment the code which prints the file-warning error message + and put a "lxi d,fnbuf" instruction between the "stax d" shown in + CPKERM.BWR and the call to "prtstr" so that routine can print the + filename of any file whose existence has been detected. + + +With these changes, Kermit-80 performs like a champ. +Following are file comparisons showing the changes noted above. + +************ +File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1 + 418 push b +****** +File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + 418 PUSH H + 419 PUSH D + 420 push b +************ +************ +File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1 + 422 ret ; all done for good machines +****** +File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + 424 POP D + 425 POP H + 426 ret ; all done for good machines +************ + +Number of difference sections found: 2 +Number of difference records found: 4 + +DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.DIF;1- + DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1- + DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + +File 1) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM] created: 1940 26-Aug-89 +File 2) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM,HP125] created: 2247 27-Aug-89 + +1)1 read0a: call init ;clear line, initialise buffers +1) lxi d,remnam ;[gnn] save local name here +1) mvi a,cmtxt ;[gnn] +**** +2)1 call init ;clear line, initialise buffers +2) read0a: lxi d,remnam ;[gnn] save local name here +2) mvi a,cmtxt ;[gnn] +************** +1)2 jz read5c ; no autoreceives, so drop out +1) lxi d,anymes ; load up Press any key to continue +**** +2)2 jz read5b ; no autoreceives, so drop out +2) lxi d,anymes ; load up Press any key to continue +************** + +File 1) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM] created: 0829 28-Aug-89 +File 2) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM,HP125] created: 2259 27-Aug-89 + +1)1 ; mvi c,openf ;See if the file exists. +1) ; lxi d,fcb +1) ; call bdos +1) ; cpi 0FFH ;Does it exist? +1) ; jz gofil9 ;If not create it. +1) ; lxi d,infms5 +1) ; call error3 +1) ; lda temp2 ;Get the number of chars in the file name. +**** +2)1 mvi c,openf ;See if the file exists. +2) lxi d,fcb +2) call bdos +2) cpi 0FFH ;Does it exist? +2) jz gofil9 ;If not create it. +2) lxi d,infms5 +2) call error3 +2) ; lda temp2 ;Get the number of chars in the file name. +************** +1)1 call prtstr ; write string to console +**** +2)1 lxi d,fnbuf ;[MF]Point to string +2) call prtstr ; write string to console +************** + + +I may be reached on BITNET by E-mail to mailer@uwalocke with the subject-line +containing the phrase . +-- Mike Freeman; Bonneville Power Administration; Vancouver, Wa; +Telephone (206)690-2307 -- diff --git a/cpkerm.bw3 b/cpkerm.bw3 new file mode 100644 index 0000000000000000000000000000000000000000..dc144e229abde36b564b7c3035ed6ee06db5b892 GIT binary patch literal 2860 zcmbtW+iu%N5X~$36$2p!q*i1l+L3QXQC|_mRwGzJnj-MSid>0ING`Fvw4%T7nWZSn zX&fXDUnni-dgjc`-pOO4>oQiQ$&8g{yrQh6^U3dHx{s zETD9*ib9swu)Iwr8CC082JJEEU)s_TxKF8^TGci`zF-wt{bC521lje!bq~m+LB1n7#0wAG6CE0vMBF~+4 z0CWK9g4TJM7F+qbl5vB&!>1Bj6q4P+;_KT!$#4;Jf+$Ucjxwm9!^co<;p0$Vnn_|fi)W> zxQUq`8%6iQR0^3|)s%NBR?gc@)JdShr!RA+6u>ayV5eM|9x3g6-Ka+~J}lV0bc||= zdOn$6oW5lu5hHp&d4K!&jr)t-OsbZw!KG!6?IyV?goDs2uglStaAiQ(&ZZQ;=Xg$E zmSRIyfVM^xE#_c+eaq}a;9Lxb#rH%7UWzy+fsO)?s!9qJ1YccKZIH{#2bDia0uTo2 zCdk>P4-=@2Bvk_UroQlC#FESCsI%=K(?o%|mhi?}w`!((q3@l^9Js(SU0vUz4GpQe z6L8^GI^#ZX+MW?)MnWA)tb+)B{|ZBahCT0MdUJWat-*)kp#N&nzqz~{U%&02PsaCN ztR>7P$22^OUQsj(PU}T*c+^;kp0IFF+h@l@G>B+#*jn(1y?qbQ2{8|W;u2lDTVg9P z*|bkLys!wycRaKec2wl_sNGez26MvL|C!A z4tcy8tI)N=GM!sh12KNEj*DdPw_$tUSmVC8OYFm3U_H}PVjajZ41Gq(k-L@OMwPcm z?)?K%0iss*C!*S^9d~$ZaT{OK9__?eVxqOHjF$`Xa@m3JYluO9mTUo|CesFEOlJ&^ z=b)E9C%Ug7_mk1>py*!)g~)QO{wmKvf&xo;hWi0_DDSKS%Rduzme~?_0W2aGmin)H zDRLEmlA%AzrNH=i9K!B#u$X%Gk+*)%cRhFxqjGT;j5GniN@yyC6!7 z+sg?}!Z#tLKKuJe!xMTZaOtfdr0&x{f{qSHqtOYymAR}^g%G>ZVALBO4T5NIa6m!e Izj)#Q2l5wY_5c6? literal 0 HcmV?d00001 diff --git a/cpkerm.bw4 b/cpkerm.bw4 new file mode 100644 index 0000000..9d7c7ff --- /dev/null +++ b/cpkerm.bw4 @@ -0,0 +1,50 @@ +Date: Tue, 14 May 91 11:46:47 EDT +From: Mike Freeman +To: info-cpm@wsmr-simtel20.army.mil, fdc +Subject: Kermit-80 Version 4.11 + +Dear Mr. Mills: + In a recent Info-cpm digest, in article <26697@hydra.gatech.EDU>, +you asked how to get Kermit-80 version 4.11. going. Lance +Tagliapietra's answer was a good one. You also might want to get +cpaaaa.hlp from watsun's ~kermit/a/ directory; this gives the machines +that Kermit-80 currently supports along with the filenames of the Intel +hex files for those machines. As Mr. Tagliapietra says, you probably +won't have to rebuild the system-independent part of Kermit-80. If your +CP/M machine is one of those currently supported by Kermit-80, you need +only get the system-dependent hex file and combine them with MLOAD, DDT, +DDTZ or whatever (MLOAD and DDTZ are my preferences since they don't +require you to calculate image length for a CP/M SAVE). If your system +is not supported, pick up cpxtyp.asm, cpxcom.asm, cpxlnk.asm and +cpxswt.asm. Currently, systems are organized into "families", as, for +example, Amstrad machines. If you were going to recompile Amstrad +Kermit's system-dependent file, you'd also get cpxpcw.asm. Some systems +(as, for example, the HP-125) are in the files cpxsys.asm and +cpxsy2.asm, which you'd get. In any case, if your system isn't +supported, get a "family" file that's close or create one yourself. If +your system doesn't have a built-in terminal, you'll also need +cpxvdu.asm (which contains terminal drivers). Set the appropriate +switch in cpxtyp.asm to true (or put one in for your system if it isn't +supported), set a terminal-switch to TRUE (or select Generic CRT if +nothing's listed for your terminal or put your terminal's codes into a +family file or cpxvdu.asm), get LASM or M80 and compile away. L80 can be +used to link the system-dependent file but you must be sure to do a +/P:7000 as the first part of the L80 command tail so the REL-file has +the proper absolute address. You still need MLOAD, DDT, DDTZ or +whatever to combine the files, so why not get LASM and use it, too. +Hope this message along with Mr. Tagliapietra's message helps you. Feel +free to ask either him or me any Kermit-80 queries you'd like. + By the way, I think you'll like Kermit-80 4.11. It's got support +for many REMOTE commands (advanced server commands). It's only drawback +is that it doesn't support repeat-prefixing or extended-length packets +yet -- get QTERM version 43E (along with my bug fix for it) to get those +features. + Cheers! + -- Mike Freeman K7UIJ -- + 301 N.E. 107th Street + Vancouver, WA 98685 + (206)574-8221 (home) + (206)690-2307 (work) +P.S. If your system isn't supported, you'll also need to (a) create a +family switch in cpxtyp.asm or (b) set sysfam TRUE and put your code in +cpxsys.asm/cpxsy2.asm. Then compile and link. -- Mike Freeman K7UIJ -- diff --git a/cpkerm.bwr b/cpkerm.bwr new file mode 100644 index 0000000..538cea4 --- /dev/null +++ b/cpkerm.bwr @@ -0,0 +1,565 @@ +From: Vace Kundakci +To: Frank da Cruz +Subject: Something in my rdr + +Dear VVVCU AT CUVMBA + +Yesterday I tried to contact OBSchou@Loughborough.Multics +on JANET, for this was the address I found in the file +CPAAA TXT on KERMSRV AT CUVMBA. I wanted to report a bug +in CP/M kermit and to ask him a question about two source +files on KERMSRV. Would you please be so kind to forward +this message below to the one who is responsible for the +files CP???? ASM on KERMSRV AT CUVMBA. Thanks a lot. + +While assembling a new KERMIT 4.09 for my good old CP/M 3 +computer I found a bug in the system independent part of +the KERMIT source. The routine PAUSIT in the file +CPSUTL.ASM doesn't end with a ret. As a result of this the +program enters the routine GETFIL and falls trough it every +time PAUSIT is executed: the disk drive is activated. +This ends in an error when PAUSIT is executed after a +wildcard operation. +The bug is fixed by placing a ret instruction at the end of +the PAUSIT routine. + +After creating a new CPSKER.HEX it appeared, that the file +CPSKER.HEX on KERMSRV AT CUVMA used the files CPSPK1.ASM +update 12 of 1-feb-88 and CPSPK2.ASM update 5 of 1-feb-88. +The file CPSPK1.ASM on KERMSRV AT CUVMA is update 11 of +28-jul-87, whereas CPSPK2.ASM is update 4 of 27-oct-87. +Would you please be so kind to get the two files updated +on KERMSRV ON CUVMA, so I can build an updated version of +my KERMIT without the bug in CPSUTL.ASM. + +Thank you in advance! Hans Petri + +WINFPET AT HDETUD1 on EARN +/Vace +------ + +Date: Sun, 12 Mar 89 03:22:57 EST +From: Mark W. Eichin +Subject: Bug report, CP/M kermit (and other notes) +Keywords: CP/M Kermit + +The latest kermit from ~ftp/kermit/a/cp[sx]*.asm has a minor (but +visible) bug. In cpspk2.asm, line 341 is + + mvi a,'$' ; dollar terminate string + call prtstr + +(these are after the label gofi7g.) + +The problem is that the '$' has to be actually moved into the string +to terminate it. Adding the line + + stax d + +between the above two solves the problem. + +The bug manifests itself when doing a "receive": as soon as the remote host +sends the filename, it gets displayed on the local screen, followed by +arbitrarily large amounts of garbage (whatever code followed the filename +buffer up to the first '$', which for me tended to be about 4-5 lines of +garbage...) + +On a related note: I have successfully ported kermit to TurboDOS (a CP/M-like +operating system written by Software 2000) so that it uses the "T-functions", +a set of standard extensions to CP/M, particularly a set of generic serial +routines. I have only tested it on my personal system, a custom port of +TurboDOS to the Radio Shack Model 4P, but it is likely to work on any TurboDOS +system. Are you interested in adding this to your collection? Are there any +stylistic constraints you require on submitted code? (I would like to see it +included, if only because there have been "people working on" TurboDOS +versions, according to your list, for at least 4 years now.) + +Also, I have patches to the Simtel20 PD2:XASM.SHAR[12], an 8080 +assembler which runs under UNIX, which add a LINK command, that enables it to +assemble the entire CP/M Kermit release. I will be submitting them to the +Simtel20 people, but I can send them to you as well if you are interested. + +Thanks for providing such a good *FREE* system! + + Mark Eichin + + + +------------------------------ + +. From BPA +. Postmark:30-Aug-89:09:32:15 +. To MAILER +. Expires:29-Sep-89:09:31:49 +. Subject: bitnet%"fdccu@cuvma" +Re: Problems with CP/M Kermit Version 4.09 + +Following is a list of problems and their solutions for CP/M Kermit +Version 4.09. Bear in mind that the latest version of CPSPK1.ASM I have is +edit (4) and of CPSPK2.ASM is edit (11). + +Problem: When the terminal is in "quiet" mode, initiation of file-transfers + causes lots of garbage to appear on the screen which is distracting + and which raises havoc with voice output devices. +Diagnosis: In the module CPXCOM.ASM, the routine "prtstr" has two flavors: + one for machines which cannot display control-characters via BDOS + function 9 and one which can display such characters via function 9. + In this latter case, only register pair BC is saved around the BDOS + call. This is insufficient as BDOS also clobbers register pairs + DE and HL during the call. In "quiet" mode, at least one of these + pairs is expected to remain constant. +Solution: Save register pairs DE and HL around the function 9 BDOS call. + +Problem: When GETting a file, the initialization routine "init" is executed + twice. This doesn't harm anything and may not be noticeeable in + print but is most annoying when using voice output as "init" types + out the Kermit version and screen initialization strings and thus + one hears them twice. +Solution: In the module CPSPK1.ASM, move the label "read0a" down one line + so that the common code for the "receive" and "get" commands starts + just *after* the call to "init" is made in "receive" mode. + +Problem: With "auto-receive" set to "off", after a RECEIVE has completed, + Kermit waits for Console input; then looks for more data to receive + when there is none. +Diagnosis: In the module CPSPK1.ASM, when the status of "auto-receive" is + checked, the wrong label is branched to if "auto-receive" is OFF. +Solution: Change the instruction "jz read5c" to "jz read5b". + +Problem: Files whose filenames are less then 8 characters in length have + ASCII zeros ("0") appended to them. +Diagnosis: In the module CPSPK2.ASM, after label "gofi7b", where the status + of "file-warning" is checked, the code for the appending of "&" + characters to filenames if the file already exists on disk has been + commented out and new code putting numeric suffixes on filenames + in this case has been substituted. In the process, the code for + checking for a file's existence has been accidentally commented out. + Thus, if "file-warning" is "on", *every* file is assumed to have + a duplicate and a numeric suffix is added to each filename. In + addition, no warning of this is given on-screen. +Solution: (1) Uncomment the code which checks for the existence of each file. + (2) Uncomment the code which prints the file-warning error message + and put a "lxi d,fnbuf" instruction between the "stax d" shown in + CPKERM.BWR and the call to "prtstr" so that routine can print the + filename of any file whose existence has been detected. + +Problem: In the files CPXSY2.ASM and CPXSYS.ASM, various conditionals are + ignored. +Diagnosis: In many places, a semicolon is followed by a form-feed which is + immediately followed by an "IF" conditional. My copy of LASM in- + terprets the "IF" as a comment. +Solution: Make the "IF" into ";IF". + +With these changes, Kermit-80 performs like a champ. +Following are file comparisons showing the changes noted above. + +************ +File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1 + 418 push b +****** +File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + 418 PUSH H + 419 PUSH D + 420 push b +************ +************ +File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1 + 422 ret ; all done for good machines +****** +File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + 424 POP D + 425 POP H + 426 ret ; all done for good machines +************ + +Number of difference sections found: 2 +Number of difference records found: 4 + +DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCO +M.DIF;1- + DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1- + DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1 + +File 1) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM] created: 1940 26-Aug-89 +File 2) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM,HP125] created: 2247 27-Aug-89 + +1)1 read0a: call init ;clear line, initialise buffers +1) lxi d,remnam ;[gnn] save local name here +1) mvi a,cmtxt ;[gnn] +**** +2)1 call init ;clear line, initialise buffers +2) read0a: lxi d,remnam ;[gnn] save local name here +2) mvi a,cmtxt ;[gnn] +************** +1)2 jz read5c ; no autoreceives, so drop out +1) lxi d,anymes ; load up Press any key to continue +**** +2)2 jz read5b ; no autoreceives, so drop out +2) lxi d,anymes ; load up Press any key to continue +************** + +File 1) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM] created: 0829 28-Aug-89 +File 2) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM,HP125] created: 2259 27-Aug-89 + +1)1 ; mvi c,openf ;See if the file exists. +1) ; lxi d,fcb +1) ; call bdos +1) ; cpi 0FFH ;Does it exist? +1) ; jz gofil9 ;If not create it. +1) ; lxi d,infms5 +1) ; call error3 +1) ; lda temp2 ;Get the number of chars in the file nam +e. +**** +2)1 mvi c,openf ;See if the file exists. +2) lxi d,fcb +2) call bdos +2) cpi 0FFH ;Does it exist? +2) jz gofil9 ;If not create it. +2) lxi d,infms5 +2) call error3 +2) ; lda temp2 ;Get the number of chars in the file nam +e. +************** +1)1 call prtstr ; write string to console +**** +2)1 lxi d,fnbuf ;[MF]Point to string +2) call prtstr ; write string to console +************** + + + + + + + + + + +I may be reached on BITNET by E-mail to mailer@uwalocke with the subject-line +containing the phrase . +-- Mike Freeman; Bonneville Power Administration; Vancouver, Wa; +Telephone (206)690-2307 -- + +------------------------------ + +Date: Thu, 31 Aug 89 13:07 PST +From: +Subject: Re: Inconsistency in CP/M Kermit Version 4.09 + +Problem: Comments in the source-files indicate that the routine which + processes the "Set Port" command, "prtset" in CPSCOM.ASM, returns + the port value in the register pair DE for the system-dependent + routine to process. In fact, the value is returned in the HL + register pair. +Solution: Either (1) put a "xchg" instruction after the "shld port" + instruction in "prtset" and modify all port-setting routines which + expect the port parameter in HL, e.g., that for those systems using + iobyte redirection, to get the value from DE (this would be, I + suppose, philosophically correct since this would correspond to + the way the baud-rate-setting routine handles things) or + (2) change the comments in CPSDAT.ASM and CPXLNK.ASM to show the + return value from "prtset" in HL and modify the "sysprt" routines + which expect the port value in DE to get it from HL. I chose this + approach as it appeared that this would involve less code changes + (the only system I saw getting port values from DE was the Lobo). + Below are FILCOMs of the appropriate files showing these changes. + +File 1) DSKE:CPSDAT.ASM[10,50,KERMIT,CPM] created: 1925 26-Aug-89 +File 2) DSKE:CPSDAT.ASM[10,50] created: 1202 31-Aug-89 + +1)4 ; called with value from table in DE +1) sysscr: jmp $-$ ; screen setup for file transfer +**** +2)4 ; called with value from table in HL +2) sysscr: jmp $-$ ; screen setup for file transfer +************** + +File 1) DSKE:CPXLNK.ASM[10,50,KERMIT,CPM] created: 1826 26-Aug-89 +File 2) DSKE:CPXLNK.ASM[10,50] created: 1157 31-Aug-89 + +1)1 ; called with value from table in DE +1) jmp sysscr ; screen setup for file transfer +**** +2)1 ; called with value from table in HL +2) jmp sysscr ; screen setup for file transfer +************** + +File 1) DSKE:CPXSY2.ASM[10,50,KERMIT,CPM] created: 0743 28-Aug-89 +File 2) DSKE:CPXSY2.ASM[10,50] created: 1210 31-Aug-89 + +1)4 mov a,e ;[hh] get the data port value and store +at +1) sta outmd3+1 ;[hh] the two places we use... +**** +2)4 mov a,l ;[hh] get the data port value and store +at +2) sta outmd3+1 ;[hh] the two places we use... +************** +1)4 mov a,d ;[hh] now get the baud rate port value +1) sta getbd+1 ;[hh] store it in the two places we use. +.. +**** +2)4 mov a,h ;[hh] now get the baud rate port value +2) sta getbd+1 ;[hh] store it in the two places we use. +.. +************** + +E-mail replies may be sent to me via Bitnet at mailer@uwalocke. +Please place on the subject line the phrase (less the angle- +brackets). +-- Mike Freeman (routing MORF); Bonneville Power Administration; P.O. Box +491; Vancouver, Wa 98666; Telephone (206)690-2307 -- + +------------------------------ + +Date: Sat, 25 Nov 89 08:16:41 pst +From: holmes@well.sf.ca.us (Tim Holmes) +To: jrd@watsun.cc.columbia.edu +Subject: Re: Kermit for Epson + +The Epson PX-8, also known as the Geneva, is a CP/M 2.2 machine. It is +a portable. It is listed on the list of Kermit versions by machine as +Epson Px-8; program version 4.09. This version I have never been able +to do anything but get the machine to freeze up. An earlier version, +4.05, basically works, but with some problems, such as handshaking +and flow control (I think). The PX-4, better known as the HX-40, is +a similar computer with an even smaller screen. + +The PX-8 version comes on the "A" tape. By the way, I cannot get the +"Generic" kermit versions to work on the HX-40, whereas they basically +work on the PX-8. + +Thanks again. + +------------------------------ + +Date: Thu, 1 Mar 90 16:48 PST +From: +Subject: dec10%"BPA" originated mail follows:- +To: fdccu@cuvma +Original_To: JNET%"fdccu@cuvma" + +. From BPA +. Postmark:26-Feb-90:09:36:20 +. To MAILER +. Expires:28-Mar-90:09:35:00 +. Subject: bitnet%"fdccu@cuvma" +Re: Problem with CP/M-80 Kermit + + I have come up with a better, more general solution to the problem +involving Kermit's interpretation of characters at the beggining of the CP/M +command-line than the one I sent you a few days ago. This more general +solution and the description of the problem/diagnosis appear below: + + PROBLEM + +B>A:KERMIT ;SET FI B;SET BL 3;SET TER Q +Kermit-80 v4.09 configured for HP-125 Series 100 + +For help, type ? at any point in a command +Kermit-80 0B:> +?Ambiguous +Kermit-80 0B:>SET FI B +Kermit-80 0B:>SET BL 3 +Kermit-80 0B:>SET TER Q +B> + + DIAGNOSIS + + + CP/M begins the buffer containing the tail to the command-line with +the count of characters in the buffer, followed by the characters in the +command- tail, beginning with the space(s) immediately following the +transient program name (in this case, Kermit). Kermit does not ignore +leading spaces when reading command input from the CP/M command-line. +Kermit therefore interprets the leading space(s) as part of the first +command to be executed, leading to the "?Ambiguous" message. + + + SOLUTION + + + Rewrite Kermit so that leading spaces in input from the CP/M +command-line are ignored. This is done by adding code just prior to +label CMINB1 in the module CPSCMD.ASM and adding a label a few lines +following the label CMINB1 in the same module. This gives, as a +side-effect, the advantage that a leading semicolon is not required +before the commands Kermit is to execute from the command-line, so that +a command-line like: +A>KERMIT SET FILE-MODE ASCII;SET TERMINAL QUIET;SET NO-EXIT +executes without errors. A Vax DIFFERENCES output showing the changes +in CPSCMD.ASM follows: + + +************ +File DISK$USER:[OGRFJMF]CPSCMD.ASM;1 + 981 cminb1: lxi h,cmccnt ;Increment the char count. +****** +File DISK$USER:[OGRFJMF]CPSCMD.ASM;2 + 981 lda takflg ;[JMF]See if chars from file or command- +line + 982 ora a ;[JMF]... + 983 jz cminb1 ;[JMF]No + 984 ani 1 ;[JMF]Yes, char from command-line? + 985 jnz cminb1 ;[JMF]No + 986 cminb0: mvi c,conin ;[JMF]Yes, get a character + 987 call bdos ;[JMF]... + 988 cpi 40o ;[JMF]If leading characters are spaces + 989 jz cminb0 ;[JMF]Ignore them, else + 990 lxi h,cmccnt ;Increment the char count. + 991 inr m + 992 jmp cmin1a ;[JMF]and proceed with command buffer + 993 cminb1: lxi h,cmccnt ;Increment the char count. +************ +************ +File DISK$USER:[OGRFJMF]CPSCMD.ASM;1 + 985 lhld cmcptr ;Get the pointer into the buffer. + 986 mov m,a ;Put it in the buffer. +****** +File DISK$USER:[OGRFJMF]CPSCMD.ASM;2 + 997 cmin1a: lhld cmcptr ;Get the pointer into the buffer. + 998 mov m,a ;Put it in the buffer. +************ + +Number of difference sections found: 2 +Number of difference records found: 13 + +DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DISK$USER:[OGRFJMF]CPSCMD.DIF;1- + DISK$USER:[OGRFJMF]CPSCMD.ASM;1- + DISK$USER:[OGRFJMF]CPSCMD.ASM;2 + + + I can be addressed via E-mail on Bitnet at address +MAILER@UWALOCKE. Place the following as the subject of the message: + (less the angle-brackets). Thanks. +Michael Freeman (Routing MORF) +Bonneville Power Administration +P.O. Box 491 +Vancouver, WA 98666 +Telephone (206)690-2307 + +------------------------------ + +Date: Mon, 14 May 90 10:26:54 EDT +From: rochester!ames!claris!voder!nsc!thoreau.nsc.com!rtodd@columbia.edu + (Ron Todd) +To: fdc@watsun.cc.columbia.edu +Subject: My kermit problem( Kermit-80 to Kermit-32) + +Frank, + + I finally got my Kermit-80 (v4.09) on the Kaypro II to work with our +Kermit-32 (v3.1.066) (the problem had to do with the protocol timing out +during disk sector writes on the Kaypro). The fix is some where in the +combination of sets I am using, I tried your suggestion of turning off the +timeouts on the mainframe. The significant sets I am using are: + +Kermit-80 + set flow on + +Kermit-32 + set server_time 0 + set send time 0 + +VMS + set term/readsync/ttsync + +DEC-Server + set session pasthru + + So far I have only tried ascii file transfer but will be testing binary +soon, I have a feeling that that should work also. I am mostly using the +GET command with Kermit-32 running in server so I may not need to do the +"set send time". I am sure I need to use the "set session pasthru" on the +server and probably atleast one of the "sync" options on the "set term" +of the VMS side. + + Thanks for your help, I'll e-mail the final minimum set to you and also +post it to the net as a followup to help anyone else who may be running +into the same or similar problems. + +Regards, + Ron Todd, K3FR + +------------------------------ + +Subject: Kermit-80 4.09 ported to new system, bug report +From: Russell Lang +Date: Tue, 19 Jun 90 11:04:47 +1000 +Sender: eln272v@monu1.cc.monash.edu.au + +Frank, + I have ported Kermit-80 4.09 to an Australian CP/M computer, + the Microbee. I have created a new system dependent file + CPXBEE.ASM for this computer. + I sent some mail to Bertil Schou, but he informs me that he is + no longer maintaining CP/M kermit. + Could you please tell me who is currently working on CP/M Kermit? + + + During the testing of kermit-80 on the Microbee, I found a bug + in the system independent part of kermit. + +Bug report for Kermit-80 4.09. + +Problem: When receiving a file with WARNING ON, kermit-80 will avoid + overwriting an existing file by creating a unique file name. + This unique file will have the attributes of the file being avoided. + If the created file is opened with Read-Only attribute, kermit-80 is + unable to write to the file, and crashes with the message: + BDOS Err on A: File R/O + +Diagnosis: Kermit checks for the existence of a file by attempting + to open it. If the file exists, its directory entry is copied + into the FCB. Kermit then modifies the file name in the FCB + in an attempt to find a unique name. The name in the FCB has + the attributes of the previously existing file, so when kermit + eventually finds a unique name, it creates a file with the + attributes of the most recently opened file! + +Solution: + Clear bit 7 (attribute bit) of all file name and type characters + before opening/creating file. + A Unix context diff for CPSPK2.ASM (4) 27-Oct-87 is at the + end of this mail. + + +-- +Russell Lang Email: rjl@monu1.cc.monash.edu.au Phone: (03) 565 3460 +Department of Electrical and Computer Systems Engineering +Monash University, Australia + +diff -c cpspk2.asm cpxpk2.asm.new +*** cpspk2.asm Tue Jun 19 10:48:54 1990 +--- cpspk2.asm.new Tue Jun 19 10:52:30 1990 +*************** +*** 299,305 + ; + ; Part 2) open the file (if success, then it exists) + +! gofi7d: lxi d,fcb + mvi c,openf + call BDOS + inr a ; if 0ffh returned, error (ie does not exist) + +--- 299,315 ----- + ; + ; Part 2) open the file (if success, then it exists) + +! gofi7d: +! ;zero the attribute bits. [rjl@monu1.cc.monash.edu.au] +! lxi h,fcb+1 ;[rjl] +! mvi c,11 ;[rjl] +! gofi7z: mov a,m ;[rjl] +! ani 07fh ;[rjl] +! mov m,a ;[rjl] +! inx h ;[rjl] +! dcr c ;[rjl] +! jnz gofi7z ;[rjl] +! lxi d,fcb + mvi c,openf + call BDOS + inr a ; if 0ffh returned, error (ie does not exist) + +------------------------------ diff --git a/cpkerm.mss b/cpkerm.mss new file mode 100644 index 0000000..2318208 --- /dev/null +++ b/cpkerm.mss @@ -0,0 +1,2616 @@ +@Part(CPKERM,root="kuser") +@string(-cpmversion="@q<4.11>") +@Chapter +@index + +@case(device,file="********@* +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.@*********") + +@Begin +@i(Program:)@\Mike Freeman, Bonneville Power Administration, Vancouver, WA, +USA, with contributions from many others. + +@i(Language:)@\8080 Assembler, LASM, M80, or MAC80 + +@i(Version:)@\@value(-cpmversion) + +@i(Date:)@\April 1, 1991 + +@i(Documentation:)@ @ Christine Gianone, Columbia University, with +contributions from many others. + +@end +@label<-k80> + +@i +@begin +@tabclear()@tabset(3.5inches,4.0inches) +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 +@end + +@Section + +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), +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. + +@section + +Features added since version 4.09 include: +@begin +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. +@end + +@section + +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 @i (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 @i +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. + +@Section + +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@q<.>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@q<.>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@q<.>2, with +lots of added features. Kermit-80 uses very few additional version +3@q<.>0 features, and only where absolutely necessary. + +CP/M file specifications are of +the form @q(DEV:XXXXXXXX.YYY), where +@begin + @q(DEV:)@\is a @i, +normally the A:@ or B:@ floppy. If omitted, the device name defaults +to your connected diskette. + +@q(XXXXXXXX)@\is a @i of up to 8 characters. + +@q(YYY)@\is the @i, up to 3 characters. + @end + 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 "@q(*)" +matches a whole field, a "@q(?)" matches a single character, including +space. Examples: "@q(*.F??)" specifies all files whose @i start +with F and are 1, 2, or 3 characters long; "@q(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: + @Begin +DIR @i@\Lists the the names of the specified files. The +default file specification is "*.*". Example: @w<"@q(DIR B:*.FOR)">. + +ERA @i@\Erases (deletes) the specified file(s); wildcards allowed. + +REN @i @i@\Changes the name of a file from @i to +@i, e.g.@* +@w<"@q(REN NEW.FOR=OLD.FOR)">. + +SAVE@\Saves the specified number of memory blocks into a file. +(Not on CP/M Plus systems) + +TYPE @i@\Types the specified file on the screen, e.g. +@w<"@q(TYPE FOO.TXT)">. + @End +The most important programs are: + @Begin +STAT@\Gives statistics on disk usage; sets and displays IOBYTE. +(Not on CP/M Plus systems) + +PIP@\@u

eripheral @unterchange @u

rogram. Copies files. In +response to the "@q(*)" prompt, give a command of the form + @example + Wildcards ("@q(*)" for a whole field or "@q(?)" for a letter) can be used. +Examples: "@q(A:=B:*.*)" to copy a whole disk, "@q(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. "@q(PIP A:=B:*.*)". + +@End + +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. + +@Section + +Since Kermit-80 runs on a standalone micro, it is always in control of the +screen -- it is always in "@i@index 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. + +@index 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 +@Index[Timeout] timeout, namely NAK@Index[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. +@begin +@Index[Control-C] +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. + +@Index[Control-X] +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. + +@Index[Control-Z] +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. + +@Index[Carriage Return] +@Index[CR] +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. +@end + +@heading + +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: +@begin +@Index[Break] +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. + +@Index[Bye] +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. + +@Index[Virtual Terminal]@Index[Escape Character]@Index[Connect] +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": +@begin +C@\Close Connection, return to @q(Kermit-80>) command level. + +S@\Display Status of connection, but maintain remote connection. + +@q@\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 + +@q<^]>@\(or whatever - a second copy of the escape character) Send the +escape character itself to the remote host. + @end + +@Index[Copy] +@Index[File Copying] +COPY @i @i +@\Copy a named file to another file, either on the same drive or another +drive. + +@Index[Directory] +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. + +@Index[Erase] +ERASE @i@\This executes the CP/M ERA command on the specified +file(s). The names of the files being erased are not displayed. + +@Index[Exit] +EXIT@\Quit back to CP/M. The return is made by a JMP 0 (Warmstart). QUIT +is a synonym for EXIT. + +@Index[FINISH]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. + +@Index[GET]GET @i [@i] +@\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: +@example +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. + +@Index[Help]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. + +@Index[Input]INPUT @i @i@\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. + +@Index[LOG]LOG @i@\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 +@Index[XON/XOFF]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". + +@Index[Append] +@\It is possible to temporarily suspend logging during connect +state. Typing an escape sequence can turn file logging on +( R for Resume) or off ( Q for quiet). + +@\Re-entering connect state will re-open the previously opened +log file and append to that file. + +@Index[LOGOUT]LOGOUT@\Like BYE, but leaves you at Kermit-80 command level. + +@indexOUTPUT @i@\Send the text to the remote computer as if +you had typed it. + +@Index[Pause]PAUSE @i@\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. + +@Index[Print]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. + +@Index[RECEIVE]@Index[File-Warning] +RECEIVE @i@\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 "@q<&>" characters to the name. RECEIVE +can be abbreviated to the single letter R. + +@indexREMOTE @i@\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: +@begin +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. +@end + +RENAME file1 file2@\Rename local CP/M file1 to file2. + +@Index[SEND]SEND @i@\Send file(s) specified by @i to +the remote Kermit. The @i may contain CP/M wildcards. SEND may +be abbreviated to the single letter S. + +@Index[SET]SET @i [@i]@\Set the specified parameter to +the specified value. Possible parameter settings: + +@begin + +@Index[Autoreceive]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. + +@Index[Block Check]BLOCK-CHECK-TYPE @i