Closed atsampson closed 2 years ago
And if anyone needs XMODEM for a different PDP-10 OS...
Date: 05 Oct 1982 1133-PDT From: Max Diaz MMD@Su-Ai Subject: XMODEM for TENEX... To: info-cpm at BRL [...]
New version in AR60:CPM; XMODEM SAI has a few bugs corrected (^C capability...), and slightly better doc.
This version is for TENEX/TOPS20/WAITS, but has no TAC functions yet; it is primarily for transfers to/from a hard-wired or dial-in micro.
ITS can run WAITS programs...
XMODEM.SAI[SUB,SYS] on SAILDART.
Split off MMODEM to #2020.
The LMODEM code loads UMLMAC, IOTA, LOOP, GCDEMN, FORMAT, SHARPM, YESNOP, DEFMAX, MACAID, which are already present in this repository. It also loads SIGNAL and ERRMAC which aren't. But there are copies in the EJS directory, so that may be fixable. The one missing file is DSK8.
Date: 5 Jun 1982 1726-PDT
Sender: BILLW at SRI-KL
Subject: Re: LMODEM
From: BILLW at SRI-KL
There is a TWENEX version of MODEM in SRI-KL::<BillW>MODEM.MAC
It supports the standard MODEM2 user interface (such as it is)
and includes hacks and hooks to enable it to be the initiating
programs, given an autodialer or TTY line connected to a "remote
host". It does not, however, attempt to do anything fancy to be
able to talk over the arpanet...
@WestfW's MODEM.MAC: https://www.oocities.org/westfw/modem.mac.txt
This was in use on SIMTEL-20.
We have located copies of all necessary LMODEM files, but there is a problem compiling them. The condition-handlers
macro (from SIGNAL) generates a bad call to CASEQ
. @eswenson1 tracked down the problem to the version of LOOP; it works with 809 and older, but not 818 (latest from MIT) or 819 (current on GitHub).
The macro condition-handlers
in SIGNAL uses the LOOP macro in a way that's no longer allowed. The collect
clause is followed by two forms: the first is a check, and the second is actual data for the list. This was allowed up until LOOP version 809, but no longer in 818. Moving the check do a do
clause fixes the problem.
LMODEM checks the TTY line parameters. First it examines the %TYDIL bit in TTYTYP, to see if it's a dial-up line. If not, it must be an STY or else LMODEM will balk.
Second, it checks what type of TTY controller it is. Only TK-10, Morton, or DTE-20 are recognized but an unknown type will be accepted. Only DTE-20 works with full 8-bit transfers, the others get 7-bit. The help file says:
LMODEM cannot be used through the AI or ML dialups without modifying
the program that runs on the CP/M end. When LMODEM starts up it will
tell you whether it intends to use "7-bit" or "8-bit" protocol; 7-bit
protocol CANNOT be used without a modified CP/M MODEM program.
That text in the ZCPR3 manual is a bit mangled, but it's copied from The Great SIMTEL20 Archive Blurb which was periodically posted to Usenet. It's meant to say:
On ITS machines, file transfer using the Christensen protocol can be done using MMODEM (type :MMODEM for instructions), or LMODEM. Documentation for LMODEM is in file .INFO.;LMODEM HELP. Other useful ITS utilities include TYPE8, which types an ASCII file stored in ITS binary format; TYPESQ, which types an ITS binary format "squeezed" file (see the first paragraph under FILE TYPES); USQ, which creates an unsqueezed version of a squeezed file; HEXIFY, which creates an Intel hex format file from an ITS binary format COM file; COMIFY which creates a COM file from an Intel hex file; and CRC, which computes the Cyclic Redundancy Check value for a file, using the same algorithm that is used by the CP/M program CRCK. Brief instructions for any of these utilities except LMODEM can be obtained by typing ":utility_name" (for example, :CRC).
TWENEX version of MODEM ... does not, however, attempt to do anything fancy to be able to talk over the arpanet...
Actually, it did. There were essentially two broken versions of tops20 floating around at the time; one of which did Telnet Binary Mode wrong, and one of which did not negotiate Binary Mode when the TTY (VTY) was set that way. Or something like that. The Tops20 modem code has hacks to try to get things to work in either case.
The oocities copy seems truncated. I've uploaded a fresh copy of the tops20 code to https://github.com/WestfW/TOPS20-MODEM/tree/master (along with a bit of historical exposition.)
Closing this because LMODEM is now installed and working, see #2090.
Checked with KL10 DTE20 TTY line that has %TYDIL set. It's available on port 10015. I have not tested this with an (X)MODEM program on the other side though.
*lmodem^K!
Opened log file #FILE-OUT-|DSK:LARS;LARS LMDLOG|-72750.
Setting up for 8-bit protocol.
T
CPM; TS LMODEM .INFO.; LMODEM HELP CPM; HELP LMODEM
GUMBY; LMODEM INFO
FJW; LMODEM > (also PLUKEL; and EB;) MC: CPM; MODEM2 PROTO
GZ in news:2539@sri-arpa.UUCP:
So LMODEM implements the XMODEM protocol, and MMODEM implements either XMODEM-CRC or YMODEM...