Full Description of File
JMODEM 3.11y(f) an excellent DOS protocol
driver w/C source(tcc,bcc,msc). This
effort based on PD work by Richard B.
Johnson. Support invited for ongoing
development. ASM version is compatable.
Contents of the CURRENT.DOC file
June 27, 1994 Jmodem 3.11x
NOTE: The files in this ZIP are tagged as 3:11 for identification and
do not reflect the actual dates of origin. The files as found
were dated: "2-2-92 9:03pm". (later versions from author would
1. This file represents some "mods" to the last found copy of JMODEM.
Richard B. Johnson is to be commended for his efforts to creat a
public domain protocol driver for DOS systems. Many hours of his
personal time went into this program w/o request for "$'s". JMODEM
works flawlessly when used in a valid and appropriate manner in a
BBS or with a comm program.
2. I intend to continue the effort and determine the "problems" with
the TC/BCC compiles.
3. JMODEM was and still is an excellent protocol driver that should NOT
"fall off the earth" from lack of support by the original author.
NOTE: I still feel the jmodem.asm effort was and is still a valid
approach. The 'C' version requires too much attention to
construct and compiler to produce a reasonably efficient jmodem.exe.
BTW: I invite and encourage criticism, support and feedback on this
protocol driver effort.
NEEDED: BBS to support 9600 - 14400 file transfer rates using version(s)
of JMODEM to allow interface test efforts. (if I currently had
a BBS it would support JMODEM as it did before).
July 1, 1994 Jmodem 3.11y
1. OOPS! The provided makefile.msc was faulty. (Fixed).
2. Added makefile.bcc and jmodmbcc.rsp.
3. The TC 2.01 version is still better than BCC 3.1, but neither is OK since
the "null pointer assignment" message is present in both.
- A difference in string handling between Borland and MicroSoft seems
to be the primary problem.
July 2, 1994 Jmodem 3.11y(a)
1. One null pointer assignment was caused by the misplacement of C0S.OBJ
in the xxx.rsp files for TC and BCC. C0s.obj MUST be the first file
2. Item #1 also cures other strange behavior.
3. Killed null pointer assignment caused by incorrect call to screen() on
exit. i.e. screen(SCR_END) now screen(SCR_END,NULL);
4. Added/changed #defines to allow TC 2.01, BCC 3.1 and MSC 6/7 compiles.
Added some "#ifdef __TSC__" to allow test compiles with TopSpeed 3.02
for code checks.
5. Renamed puts() to jputs() to avoid compiler confusion. Exe size
was NOT effected.
July 3, 1994 3.11y(b)
1. Added "FAST_AND_DIRTY" with DOIT_IN_C for interrupt. If defined
then the buffer overflow test is eliminated.
NOTE: If DOIT_IN_C is defined the jmodem.res or xxx.rsp must be changed
to NOT link jmodem_g.obj! Use DOIT_IN_C and/or FAST_AND_DIRTY
with care only on faaaast CPUs and 9600/14400 or slower bps
2. Killed attempts to encode() (compress) file being sent. Seldom effective
and adds overhead.
3. Reduced max send block size to 4096 bytes. Recieve still supports
blocks up to 8096 bytes.
4. Tuned some pragma to reduce size where speed not really needed.
5. Optimized calc_crc() a bit.
July 20, 1994 3.11y(c)
1. Further fine tuning for speed ( added static(s) ).
2. Minor change to makefile added -f- to compiler switches for BCC.
3. Adjusted show.c, show and showtc. Added showbcc.
4. Adjusted test.c, test and testtc. Added testbcc.
July 21, 1994 3.11y(d)
1. Corrected jmodem_e.c _enable/_disable definition test.
-Compiles with TC 2.01, BCC 3.1 or MSC 6/7 now ok.
2. Added -O2 to makefile.bcc.
3. Makefile.tc now uses MASM instead of TASM to preclude differences
4. Changed jmodem_g.asm: added a "STI" to _com_int.
NOTE: Tasm does produce different output than Masm, which may not
matter in this case, but could cause side effects. Be careful
if using Tasm even with /jMASM51!
August 4, 1994 3.11y(e)
1. Display now reflects compiler used to make the running version.
-TCC, BCC or MSC.
2. Changes in makefile(s) for jmodem, test and show.
3. Added new cps calc scheme, uses jtime.h.
4. Files tagged 3:12 for id.
August 7, 1994 3.11y(f)
1. Improved display of bps. Since float NOT used the count is not
as accurate as possible, but much better than using a 1 second count.
2. Corrected problem when aborted receive via ^C or ^Break. (jmodem_c.c)
The target drive was currupted since file was not closed prior to
3. Files tagged 3:13 for id.
NOTE: Hacker Heaven supports JMODEM and has current versions with
source available for download!
Hacker Heaven has a wealth of programs w/source for download!!
includes IBM emulators for Commodore 64,etc.... worth a look!!
L.B. Neal (dba: Cactus Software Systems)
Cricket BBS (408)373-3773 lb neal
Hacker Heaven (408)375-5455 lb neal