home *** CD-ROM | disk | FTP | other *** search
- NMODEM 1.67 DOCUMENTATION
- -------------------------
-
- NMODEM is a file transfer protocol written in Turbo Pascal 5.5 for the
- "IBM" family of computers.
-
- This protocol sends data in 2048k blocks. The last block will be the size
- of the final bytes in the file, thus the original file size will be
- retained. Each block has an overhead of 6 bytes.
-
- 2048 was chosen for block size as it seems to be the optimum size for CPS
- and minimal inpact on efficiency if an error should occur. It also happens
- to be the normal size of a Hard Drive sector, 2 times a Floppy sector and
- 1/2 of a oversize Hard drive sector thus improving disk read/write
- efficiency.
-
- NMODEM uses the 16-bit CRC error checking system for a very high reliability
- of successful transfer in rough conditions with minimal transfer overhead.
-
- LEGAL STUFF
- -----------
-
- NMODEM is (c)Copyright 1990,1991 by L.B. Neal. All Rights Reserved.
-
- Anyone may distribute the NMODEM cheapware version as long it is unmodified,
- complete and any distribution fee is less than $5.00.
-
- -----------------------------------------------------------------------
- NOTE: The registered version of NMODEM may NOT be distributed excepting
- to SYSOPs of "NOT-for-Profit" BBS systems. See Caution.TXT.
- -----------------------------------------------------------------------
-
- NMODEM is distributed as "cheapware". You may try this program to see
- if it is of value to you before registering. If you find the product
- to be of value you MUST pay the registration fee or stop using the program.
- SYSOPS of non-profit BBS's may use NMODEM without registration.
-
- If you paid a fee for NMODEM to anyone but L. B. Neal you did NOT register
- NMODEM you paid for media and handling costs.
-
- Registration schedule is as follows:
-
- 1. Register NMODEM but w/o disk $ 5.00
-
- 2. Register NMODEM w/returned registered version - $10.00
- * Has DirectVideo/FIFO/MNP options enabled.
- * Latest Version plus latest NMTERM program.
- * Misc items that will also fit on disk.
-
- 3. Update registered version by mail. $ 2.00
-
- 4. Update registered source by mail. $ 5.00
-
- --------------------------------------------------------------------
- NOTICE: Registered users will be able to download the latest registered
- version from PYSMATIC or THE COMM CENTER for free!!
-
- I will need your user#, Password and which BBS you use
- to set up access!
- --------------------------------------------------------------------
-
- NOTE: Items 2,3 & 4 include media, handling, postage and Tax!
-
- My mailing address is currently:
-
- L.B. Neal
- 415-112 N. Mary Ave #111
- Sunnyvale, CA 94086
-
- --------------------------------------------------------------------------
- NMODEM is provided AS-IS without warranty!
-
- I am NOT and will NOT be responsible for the use or misuse of this program.
-
- It is my belief that this program will function essentially as described
- in this document but I cannot test for every possible software/hardware
- configuration.
-
- If you use this program then you have agreed to the previous statements.
- --------------------------------------------------------------------------
-
- The source code for NMODEM is available for $60. If you purchase the
- source you will be required to sign a Non-Disclosure agreement and will
- NOT be allowed to distribute any modified form of NMODEM or the source
- code. You will be able to utilize modified versions for your own use.
- This provision is for the protection of myself and other users and is NOT
- intended to prohibit individuals or organizations from adjusting the program
- for specific needs. Individuals or organizations wishing to incorporate
- NMODEM into a communications program should contact me directly for very
- nominal licensing fees.
-
- NOTE: Due to the low registration cost of NMODEM - Registration or
- purchase of the source does NOT in anyway require any support for
- the program by L.B. Neal. However, I will address problems reported
- in a prompt manner.
-
-
- USAGE NOTES
- -----------
-
- 1. NMODEM assumes the comport called for is already initialized.
- Therefore using NMODEM directly from DOS will probably NOT work!
-
- 2. A minimum of 45k of free memory is needed to sucessfully operate.
-
- 3. COM1 thru COM4 are supported with 3 & 4 setup for the "unofficial"
- standard as used by Everex and other manufactures.
-
- 4. NMODEM will exit with a DOS error level of 1 if anything goes wrong.
- Otherwise the value will be 0.
-
- 5. Please report "in detail" any problems experienced in using the program.
-
- 6. Call NMODEM w/o parameters ie C:\>NMODEM<cr> or such to see the needed
- info for using.
-
- NMODEM needs:
-
- a. S for Send or R for Receive.
-
- b. port# (COM1 thru COM4)
-
- c. FileName to transfer.
- optional drive and/or directory.
-
- d. If you add the /D behind the filename Directvideo will be used.
- * [registered versions]
-
- e. If you have a 16550 UART a /F behind the file name will enable
- the UART FIFO Buffer.
- * [registered versions]
-
- f. MNP is enabled with /M - NMODEM will NOT do CRC check!
- *[registered versions]
-
- f. NMODEM.LOG is disabled with /L - NMODEM will NOT write to
- nmodem.log.
- *[registered versions]
-
-
- Examples:
-
- "cheapware" version:
-
- NMODEM S2 Myfile.zip { Send via COM2: myfile.zip }
- NMODEM S1 c:\uploads\Myfile.zip { Send via COM1: myfile.zip }
- NMODEM R2 c:\download\Hisfile.zip { Recv via COM2: hisfile.zip }
- NMODEM R1 Hisfile.zip { Recv via COM1: hisfile.zip }
-
- Registered version:
-
- NMODEM S2 C:\UPLOADS\Myfile.zip /D { Send via COM2: myfile.zip }
- NMODEM S1 C:\UPLOADS\Myfile.zip /DF { Send via COM1: myfile.zip }
- NMODEM R2 C:\DOWNLOAD\Hisfile.zip /D { Recv via COM2: hisfile.zip }
- NMODEM R1 C:\DOWNLOAD\Hisfile.zip /F { Recv via COM1: hisfile.zip }
-
-
- NOTE: I have set up NMODEM to use the same basic parameter string as
- JMODEM to make it easier to install. If you have a JMODEM batch
- file just rename it and change JMODEM to NMODEM inside the batch
- file.
-
- Combined switches are just added behind a single '/'!
-
-
- 7. I have taken great care to try to make sure the CPS rate reported is
- accurate (Unlike many other protocol drivers!). Please advise if you
- find my efforts in vain. I recently performed stopwatch tests with
- large file transfers and the indicated CPS did infact match the size
- vs time.
-
- NOTE: The CPS calculation does NOT include receive file I/O time. It
- does include resend times if necessary. It is not unusual to see
- a low CPS for the first block depending on the interface timing.
- The receive IO is in the background and thus does NOT normally
- effect the actual CPS.
-
- 8. NMODEM will resend a block 6 times before aborting the effort.
-
- 9. This program plays no tricks and assumes the calling program is nice
- as well. Tricky programs will probably cause NMODEM to fail.
-
- 10. The file Nmodem.err will be generated if a runtime error occurs!
- NMODEM version and error # + error address will be give! This
- info will be what I need to address problems. Informative messages
- will also go to NMODEM.LOG.
-
- 11. NMODEM uses BIOS screenwrites for maximum compatability with DesqView
- and other Multi-Tasking situations. The registered version has an option
- for enabling DirectVideo. IF you use the BIOS method I suggest you
- investigate QCRT11.ZIP for much faster screenwrites!
-
- 12. I have provided NMR.BAT and NMS.BAT as sample batch files which are setup
- for parameters as passed by TELIX.
-
- 12. If you attempt to receive an existing file NMODEM will abort!
-
- 14. If NMODEM aborts during a receive operation the file will be deleted.
-
- 15. NMODEM has been tested with TELIX 3.12 and QMODEM 4.2 they seem to work
- fine. I also tested with GT-1550 and was unable to duplicate problems
- reported by some GT users.
-
- 16. Remember TSR's can have strange side effects. If NMODEM fails please
- address any TSR's in your system as a possible cause of the problem.
-
- 17. NMODEM has been tested with MS-DOS 4.01 (later version or w/patch),
- OS/2, DR-DOS 5.0, PC-MOS 4.1, DOS-XM 6.2 and Concurrent DOS-386 3.0.
-
- 18. NMODEM will NOT work below 1200 Baud!
-
- 19. Computers which do NOT have DMA such as PCJr and some versions of the
- TANDY 1000 will NOT work with NMODEM.
-
- 20. Special thanks to Ted Chan, Dennis King, Ron Pierce and
- Dave Halliday for their help with BETA testing of NMODEM.
-
- 21. I can be contacted at:
-
- THE COMM CENTER
- (408)737-7245
-
- PYSMATIC BBS
- (408)-992-0372
-
- Both in Sunnyvale, CA
-
-
- TECHNICAL NOTES
- ---------------
-
-
- 1. NMODEM does NOT use assembly language to improve transfer speed.
- Standard Turbo Pascal library routines are used for IO.
-
- 2. The port initialization routines use some assembly.
-
- 3. An interrupt driven receive buffer is utilized to allow high speed
- transfer without dropping bytes. The buffer is NOT written in
- assembly language or inline.
-
- 4. Output is directly via the port and a buffer is not used.
-
- 5. The program is constructed to avoid Procedure and Function calls
- in the transfer routines for efficiency. All transfer variables are
- global to avoid stack manipulation overhead.
-
- 6. Great care has been taken to use only standard DOS and BIOS interface
- calls to avoid wierd side effects in using NMODEM. The program is
- being used under FALCON BBS, WILDCAT! BBS, FEATHERNET BBS, TMODEM,
- TELIX 3.12 and QMODEM 4.2 on XT, AT & 386 class machines of various
- manufacture and working well. Some users have experienced problems
- with lockups, inability to synchup, etc. At this point I must suspect
- TSR type interference though it is possible I have overlooked a step in
- the interrupt interface. This aspect is under constant review to attempt
- to uncover any oversights on my part.
-
- 7. As of version 1.20 the file lookahead scheme was removed since it was
- faulty and did NOT work when an error was encountered. I will try to
- come up with a new scheme that will work.
-
- 8. Version 1.30 fixes a bug introduced by me and considerable change in
- the main Send and Receive procedures.
-
- 9. Version 1.31 uses a new status screen scheme and improves on handling
- of NMODEM.ERR and NMODEM.LOG files.
-
- 10. Version 1.32 eliminates redundant ClearScreen.
-
- 11. Version 1.40 changes the modem interface hopefully for the better!
- NMODEM now uses Turbo Pascal 5.5, TPCRT from Turbo Power Software,
- and SYST55C2 from Eagle Performance Software! Each of these items
- increase the speed of NMODEM!
-
- 12. Version 1.41 introduces a 1 sec delay after setting up the UART to
- allow slow UARTS to process the information.
-
- 13. Version 1.50 introduces yet another major revision of the modem
- interface to try to improve reliabilty with various modems.
-
- 14. Version 1.60 eliminates the restiction on path names in the shareware
- package. I also optimized send and receive loops. NMODEM will now
- inform DOS of COM3: and COM4: while operating and restore the initial
- status on exit.
-
- 16. Version 1.61 introduces an option to disable the generation of the
- Nmodem.log file. This option works on registered versions only!
-
- 17. Version 1.62 adds these features:
-
- A. Added statusline that shows the various options.
-
- B. Optimized the status screen.
-
- C. Cleared full status screen on exit.
-
- 18. Version 1.63 addresses some code typo errors on my part and adds
- some code to handle interrupts better.
-
- 19. Version 1.64 tweaks the interrupt interface and reduces memory needs
- by 4k.
-
- 20. Version 1.65 will place date and time stamp in all NMODEM.LOG and
- NMODEM.ERR entries. Also reduced lines entered into NMODEM.LOG.
-
- 21. Version 1.66 corrects a goof in the new status window drawing
- scheme.
-
-