home *** CD-ROM | disk | FTP | other *** search
File List | 1985-02-10 | 42.8 KB | 990 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Implementation Manual for
- YAM (Yet Another Modem)
- by Chuck Forsberg
-
-
- Distributed with YAMC86
- (Converted for CI C86 and CP/M-86)
- by Paul Homchick
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Yam Implementation Manual Revised 9-10-83 Page 1
-
-
-
-
-
-
- 1 FILE TRANSFER PROTOCOL
- 1. FILE TRANSFER PROTOCOL
-
- The transmission of pathnames in batch mode differs from
- that used in MODEM7. Yam sends the pathname as a null
- terminated string in a standard Ward Christensen type packet
- with a sector number of 0.
-
- The sender may append the following additional information
- starting one byte after the null that terminates the
- pathname:
-
- sprintf(p, "%lu %lo %o", f.st_size, f.st_mtime, f.st_mode);
-
- where st_size is the exact length of the file in bytes,
- st_mtime is the modification date in seconds since 1970, and
- st_mode is the file mode, as defined for Unix V7/Sys3. If
- the mod time is unavailable, a 0 value will cause the
- receiver to ignore it. If the file mode is unavailable, a 0
- value will cause the receiver to ignore it and use a dafault
- file mode.
-
- Disk specifiers (B:) are not sent. Directory names of full
- pathnames are not (generally) sent. If this information
- (including the trailing null provided by sprintf) exceeds
- the 128 byte standard sector length, a long sector must be
- sent.
-
- The sender waits for an initial NAK before sending the
- pathname. An explicit NAK is sent by the receiver at
- intervals when is ready to receive a pathname. Upon
- receiving and acknowledging the pathname packet, the
- receiver opens the file and then sends the initial NAK for
- the data in the file. A null pathname terminates batch
- transmission.
-
- The remainder of the pathname sector is set to nulls.
-
-
-
- 2 Installing Yam
- 2. Installing Yam
-
-
- Yam consists of yam.h, yamsys.h, yam8.asm, and
- yam[1235710].c. Yam currently supports the Z89 (with aux
- board), Cromemco TUART, TRS-80 II, and Apple (currently with
- Z19 console).
-
- Yamsys.h is not part of the distribution; one of the
- configuration dependent header files is copied to yamsys.h.
- SOME of these files are: Yamz89.h is used for Z89 computers
- (check the port definitions to be sure they agree with your
- usage.) Yamtuart.h is setup for a TUART board at 60H.
- Yamz89xm.h describes an XMODEM configuration with the Z89.
- Yamtrsii.h describes a TRS-80 Mod II. One of these (Or one
-
-
- YAM/XYAM Version 4.24 Page 1
-
-
- Yam Implementation Manual Revised 9-10-83 Page 2
-
-
- you write for your system) should be copied to yamsys.h
- before compiling the files.
-
- YAM also references some of the definitions in BDSCIO.H.
- When cross-compiling a version of yam for a different
- system, be sure to reference a bdscio.h file suitable for
- the target system. Alternatively, one might #undef CDATA
- and any other definitions which otherwise would speak with
- forked tongue; YAMLYLE.Hwill be an example of this trick.
-
- Starting with Version 3.08 there will be multiple versions
- of yam5.c depending on the target system. There have been
- few changes to yam5.c (except for porting to new systems),
- so you should be fairly safe hanging on to your current
- version. If you do have a special version of yam5, please
- edit out ALL code and comments not directly relevant to your
- application (including the unused versions of readline) to
- minimize storage space and transmission time for RCP/M's
- archiving yam.
-
- Compilation should be with -e ???? for all files and -o for
- yam[235] and yam10 for best runtime performance. Note that
- yam[147] are NOT compiles with -o; the execution speed of
- the functions in these files is unimportant, and it is
- better to save code space by not using -o. Consult the .sub
- files for examples. If the externals start below the end of
- code, YAM will say "urk" and exit, hopefully before doing
- anything REALLY nasty.
-
- Yam should be linked with the object module with the largest
- set of "local globals" first. Currently, this is in yam10.
- These variables overlay similar variables in some other
- files. They are not required simultaneously, but the linker
- must see the largest common area first to allocate
- sufficient room for them. (N.B.: I do not recommend this
- hack as a general method!)
-
- Care should be taken to ensure that all .crl files are
- compiled or assembled with compatible versions of cc1 and
- bds.lib.
-
- Yam can be made somewhat smaller if the -o is left out and
- the external address is downsized accordingly. To make the
- smallest YAM possible, define CDOS and RESTRICTED and then
- leave off as many optional #defines as possible. The bdsnew
- library (assembly language versions of some standard
- functions) may be used with slight improvments in code size
- and speed. (Bdsnew library is named bn.crl in the .SUB
- files used for yam.)
-
- YAM is handy for transferring files between directly
- connected machines; hence all the attention to high speed
- operation.
-
- If your machine uses a different type of UART chip, or a
- built-in modem card, then the yamsys.h and yam5.c files will
- need work.
-
-
-
- YAM/XYAM Version 4.24 Page 2
-
-
- Yam Implementation Manual Revised 9-10-83 Page 3
-
-
- Compilation and proper operation of YAM cannot be guaranteed
- with BDS C versions prior to 1.50a. If you don't have that
- version, send 8 (maybe more now!) bucks and a copy of your
- software license (a Xerox of your distribution disk showing
- its label should do) to:
- BDS C Users Group
- Robert Ward
- Dedicated Microsystems Inc
- 409 E Kansas ST
- Yates Center, Kansas 66783
- Versions before 1.46 are a no-no.
-
-
-
- 3 PROPAGATING YAM
- 3. PROPAGATING YAM
-
-
- Often the question arises, "How do I get YAM (or whatever)
- into this neat new machine with the *%!@$@ format disks?
-
-
- 3 1 Binary Serial File Transfer
- 3.1 Binary Serial File Transfer
- The b mode was put in just for you! First, cross-compile a
- version of YAM with a yamsys.h file appropriate for the
- target machine. Then, connect the two machines RS232 ports
- together, and initialize those ports so they talk to each
- other. Presumably, YAM is running on the host machine. Now
- run ddt, sid, zsid, dcon, or whatever and write a tiny
- program up in fairly high memory (above the highest address
- used by YAM, say 7000h).
-
- This program will:
-
-
- Set HL to 100h
- Set HL to 100h
-
- Wait for UART for data available
- Wait for UART for data available
-
- Input data from UART Note UART must be in 8 bit no
- Input data from UART (Note: UART must be in 8 bit, no
- parity mode
- parity mode)
-
- Store data to memory mov m a
- Store data to memory (mov m,a)
-
- Increment HL
- Increment HL
-
- Jump to 2 above
- Jump to 2 above.
-
- When the file is all sent, interrupt the program, jump to
- location 0. Then you can save YAM.COM. If you can't
- interrupt this program without blowing it away, you'll have
- to change it to detect the end of data (perhaps count the
- number of bytes received in the DE register) and make the
- program jump to location 0.
-
-
- 3 2 Hex File Transfer
- 3.2 Hex File Transfer
- Another possibility would be to unload the yam-target.com
- image into a hex file ( UNLOAD2.ASM works fine ). Then run
-
-
- YAM/XYAM Version 4.24 Page 3
-
-
- Yam Implementation Manual Revised 9-10-83 Page 4
-
-
- pip in the target machine with input from the serial port
- and output to a file using pip's B parameter. With the B
- parameter, pip buffers incoming data in memory until an XOFF
- (Control-S) is received. To get that, send the file from
- the host with "yam f file.hex" and from time to time hit two
- ^S's on the host keyboard. The first ^S stops the transfer,
- the second will be passed to the other machine where pip
- will see it. When pip has written out the buffer, type ^Q
- on the host to resume. (Be sure to stop often enough so
- pip's buffer doesn't overflow.) (With pip, go slow -300 baud
- is much better then typing it in by hand!) Finally, load the
- file with the target system's load command. Also, if the
- target system is echoing characters (TTY: input device) the
- FE file command may be easier to use.
-
- If the target system echos characters, use the ``fe
- filename'' command which waits for an answering echo before
- sending the next character. If that doesn't work properly,
- try ``ft'', slowing down the transfer with the t mode.
-
- Once you have a working yam running on target machine, other
- files come across effortlessly with the batch file transfer
- option.
-
- Happy propagation and may your machines trap fertile YAM's.
-
-
-
- 4 Important define s
- 4. Important #define's
-
-
-
-
- MODOUT c
- MODOUT(c) This outputs the character c to the modem. This
- macro need not check whether the modem is ready for a
- character as that has already been done. MODOUT(c)
- must return immeadiately regardless of what is in c.
-
-
- LPOUT c
- LPOUT(c) Likewise, unadorned output of c to the printer.
- LPOUT(c) must return immeadiately regardless of what
- is in c.
-
-
- POREADY
- POREADY This define returns non zero if the line printer
- is ready to accept a character. It must always return
- 0 if LPOUT(c) would not return immeadiately. If
- POREADY is slow, enabling the printer at high baud
- rates may cause characters to be lost.
-
-
- TTYOUT c
- TTYOUT(c) Unadorned output of c to the local display. YAM
- checks that the local display is ready before
- executing TTYOUT(c). TTYOUT(c) must return
- immeadiately regardless of what is in c. Caution:
- don't use bdos function 6 which has special cases for
- 0xFE and 0xFF.
-
-
-
- YAM/XYAM Version 4.24 Page 4
-
-
- Yam Implementation Manual Revised 9-10-83 Page 5
-
-
- CICHAR
- CICHAR Unadorned unconditional console input. This must
- not trap on any control characters needed for host
- communications.
-
-
- MYSYSTEM
- MYSYSTEM Defining this causes yam2 to be compiled with a
- call to yam4.c for handling the Compuserve A protocol
- for file transfer (see 2 mode). Unless you know what
- you are doing, you should use the following even if it
- is a bloody lie as xftran may not accept something
- original. If this is included, you will need yam4.c,
- otherwise not.
-
- #define MYSYSTEM "#CPMHeath/Zenith,CC,HC,PA,PL\015"
-
-
-
- KBDBRK
- KBDBRK This defines the keyboard character that translates
- to a break in yam3. It should not be a normally used
- character.
-
-
- FNXEXT
- FNXEXT This character unconditionally exits term
- function. Normally, this is defined only if a special
- function key is available as that code cannot be
- transmitted. If FNXEXT is defined, FNXREP (replot)
- must also be defined.
-
-
- ANSWERBACK
- ANSWERBACK This string is transmitted from term function
- in Q mode in response to keyboard ^F or ^E received
- from remote. Conventionally, ANSWERBACK consists of
- "\\r\\n<phone-number> <user name> <city>\\r\\n\\021"
- where city is a three or four letter abbreviation
- specified by Western Union Telegraph company.
- Teletype answerbacks are limited to 20 characters, a
- limitation which needn't concern us.
-
-
- PHONES
- PHONES This file (usually "A:YAMPHONE.T") contains a list
- of names, phone numbers, and baudrates. The names
- must be in lower case.
-
-
- HELPFILE
- HELPFILE Contains a short summary of commands and other
- useful information about YAM suitable for use as an
- online cribsheet. Currently a helpfile exists only
- for XYAM.
-
-
- CDOS
- CDOS Makes YAM work on CDOS operating system by deleting
- CP/M 2.2 operations such as user number, calculate
- file length, etc. If you have CP/M 1.4, CDOS just
- might do the trick for you. Since my Cromenco system
- has refused to work for the batter part of a year now,
- there is an excellent chance yam won't compile with
- CDOS defined. In addition, newer versions of BDS C
- require the CP/M 2 features, and yam won't compile
-
-
- YAM/XYAM Version 4.24 Page 5
-
-
- Yam Implementation Manual Revised 9-10-83 Page 6
-
-
- with earlier versions. So there.
-
-
- KBMASK
- KBMASK This is normally 0177 to strip parity from
- keyboarded characters, but may be 0377 if a full 8 bit
- keyboard is used.
-
-
- USERINIT
- USERINIT Causes init() to call a user supplied function
- userinit(). This may be used to set up interrupt
- vectors, global variables, etc. Note that userinit is
- called in response to the init command.
-
-
- USEREXIT
- USEREXIT Defining this causes a call to userexit() before
- any normal exit() call. If userinit() has ``stolen''
- something from the operating system, (such as an
- interrupt vector) userexit should ``return'' it.
- Since yam is often exited with control C, that should
- be trapped also.
-
-
- TERMREPLOT
- TERMREPLOT A string enclosed in quotes which clears the
- screen and sets the terminal to the mode desireable
- for replot. Replot assumes that TERMREPLOT turns off
- line wraparound.
-
-
- TERMRESET
- TERMRESET A string enclosed in quotes which sets the
- terminal to the mode desireable for the term function
- and clears the status line (if any). This string
- should not clear the screen. It should set the
- terminal in the mode(s) expected by vi or other host
- based screen editors with which YAM is to be used. In
- particular, special effects (if any) of TERMREPLOT
- should be negated.
-
-
- TERMINIT
- TERMINIT This string should unconditionally initialize and
- clear the screen.
-
-
- CLEARS
- CLEARS String to clear the screen and home cursor without
- changing modes.
-
-
- CLEARL
- CLEARL String to return cursor to left margin and clear
- the current line. If the "clear line" command does
- not return the cursor, a carriage return must be
- included in this string.
-
-
- INTOREV
- INTOREV String to turn on reverse video.
-
-
- OUTAREV
- OUTAREV String to turn off reverse video.
-
-
-
-
- YAM/XYAM Version 4.24 Page 6
-
-
- Yam Implementation Manual Revised 9-10-83 Page 7
-
-
- RXNONO
- RXNONO Define this as a string of characters, any of which
- would cause your terminal and/or cbios grief if not
- suppressed by term function.
-
-
- STATLINE
- STATLINE Define this if your terminal has an extra (viz.,
- 25th) line usable for status information which does
- not scroll up nor interfere with scrolling. lpstat()
- writes to the entire status line, clearing out any
- previous contents. pstat() writes starting at the
- 48th position, not disturbing any information written
- by lpstat().
-
-
- T4014
- T4014 Special code for storage tube terminals.
-
-
- NOSCROLL
- NOSCROLL Special considerations for terminals which do not
- scroll, such as storage tube terminals.
-
-
- MODEMSTUFF
- MODEMSTUFF If you provide routines setbaud(), readbaud(),
- bye(), and onhook(), define MODEMSTUFF to exclude the
- default dummy routines.
-
-
- AUTODIAL
- AUTODIAL If your modem supports autodial, write your own
- version of dial() and define AUTODIAL to suppress the
- default routine.
-
-
- FLIP
- FLIP If you have a flip() subroutine in your yam5, this
- causes flip to be included as a command. See
- yam5pmmi.c for an example of a flip routine.
-
-
- MIERROR
- MIERROR If your uart has a separate register for error
- bits (not the register that holds receive data
- available), mierror should be an expression which
- returns non zero in case of overrun, framing, or other
- error, but not carrier dropout. This version of
- readline has not been tested.
-
-
- MIREADYERROR
- MIREADYERROR Define this if data available and the error
- bits are in the same register, especially if reading
- that register clears some error bits, or if the error
- bits are valid only if data available.
-
-
- IOTYPE
- IOTYPE This defaults to char for i/o mapped systems with
- 256 ports. This may be defined to unsigned or long
- for systems with more ports (8086 or memory mapped
- i/o).
-
-
- Z19
- Z19 Generates output for Z19 functions, especially status
- (25th) line.
-
-
- YAM/XYAM Version 4.24 Page 7
-
-
- Yam Implementation Manual Revised 9-10-83 Page 8
-
-
-
-
- USQ
- USQ Allows the type command to automatically recognize
- squeezed files and display them in ASCII form. Adds
- 1000 hex to program size.
-
-
- RXLOG
- RXLOG Log all files received from remote systems in
- RXLOG. Information stored includes user number, disk,
- filename, baudrate, and the name of the remote system
- given in the last call command (LASTCALR in xyam).
-
-
- TXLOG
- TXLOG Log all files transmitted to remote systems in
- TXLOG. Information same as above.
-
-
- LOGFILE
- LOGFILE Must be defined if either of the above are.
-
-
- NATHAN
- NATHAN Students of American History will recall the famous
- patriot Nathan Hale who said "I regret that I have but
- one asterisk for my country." Octal code 052.
-
-
-
- 5 Tuning Parameters
- 5. Tuning Parameters
-
- Yam uses a number of tuneable parameters for portability.
- The values used depend strongly on the speed of functions
- and operating system calls used to interrogate the keyboard
- and modem port. They are also affected by the clock speed
- and code quality of the compilier used. These parameters
- have been added on a somewhat ad hoc basis, so one should
- grep the source files to determine the extent of their
- effects.
-
-
-
-
- CLKMHZ
- CLKMHZ This is a ``master'' parameter. Use it to
- calibrate the timeout in readline (see yam5 or
- equivalent).
-
-
- MOMCAL
- MOMCAL Should give a delay (see yam3) as short as possible
- while still allowing the user to comfortably
- double-stroke control-E or control-V.
-
-
- SCREAMER n
- SCREAMER n Compiles a call to yterm() instead of term() if
- baudrate > n and no special modes have been set which
- would be rendered useless. Without yterm, maximum
- baudrate may be limited to much less than 9600. Yterm
- is written in assmebly language and must be modified
- slightly according to the local hardware
- configuration. The yterm function is in yam9.csm.
-
-
-
- YAM/XYAM Version 4.24 Page 8
-
-
- Yam Implementation Manual Revised 9-10-83 Page 9
-
-
-
- Note: if you miss only the first few characters in a
- line, and if your system has memory mapped video,
- screamer won't help you much; you need to speed up the
- scrolling process! Note that yterm lacks much of
- term's functionality. On a Z89 with direct bios
- keyboard input, yterm functions at 19200 baud
- (assuming 19kb crt port!).
-
-
- KBDNOW !
- KBDNOW This forces term function to interrogate the
- keyboard each time a character is displayed to the
- console rather than when there are no modem characters
- waiting to be displayed. With computers with
- interrupt-buffered modem ports, this #define will
- allow the keyboard to always get a word in edgewise.
- It is not recommended otherwise.
-
-
- ESCCAL
- ESCCAL Many terminals send escape sequences for certain
- keys. In some configurations, these sequences will
- fail to transmit properly because the modem (300 or
- 1200 baud) cannot transmit the characters as fast as
- the terminal generates them. I ESCCAL is defined, yam
- will check for rapid escape sequences and buffer the
- following characters. ESCCAL should be set to the
- lowest number (shortest delay) that will recognize the
- sequences. This logic is not needed if the keyboard
- is interrupt driven. This feature may not work if the
- remote is sending data at maximum speed the instant
- the function key is used. For more information, study
- the functions on yam3.c that reference abptr and/or
- abend.
-
-
- LOWWATER
- LOWWATER When receiving text from the host in term
- function, term transmits XOFF (DC3) when the free
- buffer space gets down to LOWATER, unless Jovemode is
- set.
-
-
- LINKPORT
- LINKPORT Causes compilation of code to implement the
- ``link'' command. See ``ymlink.h'' for typical link
- parameters.
-
- LHPORT
- LHPORT Local Host port to use for local host during link
- command.
-
- LIDPORT
- LIDPORT Modem data port for link command.
-
- LISPORT
- LISPORT Modem status port for link command.
-
- LIREADY
- LIREADY Defines a function which tests for a character
- available from modem when in link command.
-
- LCDO
- LCDO Test for carrier drop-out in link command.
-
- LICHAR
- LICHAR Returns next character from modem when in link
-
-
- YAM/XYAM Version 4.24 Page 9
-
-
- Yam Implementation Manual Revised 9-10-83 Page 10
-
-
- command.
-
- LOREADY
- LOREADY Test for link modem ready to accept another
- character.
-
- LOUT x
- LOUT(x) Macro outputs a character to modem port during
- link command.
-
- LIBREAK
- LIBREAK Test for break from modem when in link command.
-
- CLRLIBREAK
- CLRLIBREAK Function to clear LIBREAK indication.
-
-
-
-
- 6 XYAM Differences
- 6. XYAM Differences
-
-
-
- XYAM is produced by defining XMODEM in the file
- 'yamsys.h'. Consult 'yamz89xm.h' and 'yamx.sub' for
- an example. Certain #defines are especially
- applicable to XYAM:
-
-
- RESTRICTED
- RESTRICTED Certain commands and options are disabled.
- Filenames with '.BAD' extensions and files with $SYS
- or TAG2 bits set cannot be opened. They will not
- appear with DIR or DIRR commands.
-
- A file with extension of '.COM' will be uploaded with
- a '.OBJ' extension. Existing files cannot be
- overwritten. If a file is received (r command) in
- error, it will be unlinked.
-
-
- CDO
- CDO Define a test for carrier drop out so that XYAM will
- automatically exit T(erm) function when the connection
- is broken.
-
-
- BYEPROG
- BYEPROG Bye, O and OFF commands chain to BYEPROG.COM if
- BYEPROG is defined (as a string). For systems wishing
- to use a BYE.COM to request comments.
-
-
-
- 7 Recent Revisions Enhancements to YAM
- 7. Recent Revisions/Enhancements to YAM
-
- 4.26x Converted to CI C86 syntax for CP/M 86 12-19-83 (Paul Homchick).
- 4.26
- 4.25
- 4.24 Added chek command to Lattice and CC86 16 bit versions 8-25-83.
- 4.22 Minor changes to Jovemode 7-21-83.
- 4.21 Added Jovemode 7-18-83.
- 4.20 Changed uses of certain macros to function calls to conserve
- memory.
-
-
-
- YAM/XYAM Version 4.24 Page 10
-
-
- Yam Implementation Manual Revised 9-10-83 Page 11
-
-
- 4.13 Changed crck command printout format. Function init() now calls
- chngport rather than setting port values directly. Hp125
- version checks for proper port number. 6-25-83
- 4.12 6-12-83 yam1.c default term file xmit mode name (as printed in
- ``s'' command) changed from ``IMAGE'' (misleading) to
- ``normal''.
- 4.11 6-9-83 chngport() in yam5.c return value now checked for ERROR.
- (Seiko version checks for valid port number.) Bug in CPM-86
- getfree() corrected.
- 4.08 5-30-83 Changes in yam7.c: BDS C 1.50a broke fopenaa code.
- Fopenaa code removed and refrences changed to fappend in BDS
- lib.
- 4.08 Changed replot so screen is cleared whenever buffer pointer is
- backed up. ESC characters are counted in replot line
- counting.
- 4.06 Corrected yam3 and user manual re operation of w and p modes.
- The off command now dumps and closes any open files. The m
- command closes any send file before changing ports.
- 4.04 Fixed yam3 so Ctlview would indicate paritied characters. Added
- 7-bit mode to enable file transfers with Regulus and/or
- other brain damaged operating systems. This latest frob
- requires changes to readline() and sendline() to work; see
- yam5.c (8 bit version). Removed archive bit (Nof3) stuff to
- conserve space on 8 bit versions. Fixed view option problem
- with 16 bit yam2.c. Batch send now skips over files that
- can't be opened, except for the first.
- 4.03 Fixed yam3 so CPMEOF is not sent in normal mode.
- 4.02 Added dump, sum, and wc commands to 16 bit versions.
- 4.01 Added extended file information to 16 bit versions.
- 3.53 Some changes in yam3.c for better replot displays with terminals
- lacking STATLINE.
- 3.52 Added br (break) command and KBDBRK. Yterm() now updates Lskcnt
- so the replot will pgae back the same way whether yterm is
- in use. This was accomplished by a change in the calling
- sequence for yterm.
- 3.51 Added userexit code.
- 3.50 Added replot buffer search commands.
- 3.47 KBDNOW define added to force keyboard interrogation after
- displaying data (yam3). Should only be used if input from
- modem is buffered or if high baud rates are not needed.
- 3.46 Clear status line after type/list command.
- 3.45 Removed spurious dumprxbuff in yam1 that caused loss of data if
- capture file was opened with partially full buffer. Also
- clear status line after s and r commands if file transfers
- successful. VERSION now lives in yam1.
- 3.44 Name changes and typo corrections for portability.
- 3.43 Nlmode and crmode now affect file xmsn with the sendecho
- function as well as term.
- 3.42 inp() and outp() calls in yam3.c changed to equivalent macros
- for portability. Disk block calculation fixed re Paul
- Homchick.
- 3.41 Keyboard excape sequences buffered (see ESCCAL). LOOPBACKNONO
- and u command removed.
- 3.39 Modem port selection has been moved from yam1 to yam5. CISlen
- is no longer a settable parameter. Low is no longer a
- settable parameter. All parameter commands now take a
- decimal number; this avoids problems encountered in previous
- versions when attempting to set GOchar to colon. FE sends
-
-
- YAM/XYAM Version 4.24 Page 11
-
-
- Yam Implementation Manual Revised 9-10-83 Page 12
-
-
- an ascii file to computers with character echo (pip
- file=tty:). A bug which caused spurious XOFF to be sent
- when sending file in term mode has been fixed. Z100
- version. 9-16-82
- 3.37 Increased some timeouts in yam2.c for better operations with
- sluggish remotes. 9-1-82
- 3.35 NULL sends break in yam3 (was ^B^B). 8-28-82
- 3.34 Changed starting point of replot command and also speeded it up
- by using externs. 8-1-82
- 3.33 Changed yterm() to assembly subroutine, p/o yam9.csm. Changed
- yam8 to .csm format also. Removed y command (selection is
- automatic). 7-31-82
- 3.31 Added A prefix, LINKPORT, and completed Micro-Com autodial
- routine. 7-23-82
- 3.30 Added k flag for 1024 byte block FTP, as well as other
- improvements to yam2.c 7-11-82 Added y command, a faster
- subset of the t command. Capture to file now ignores CR,
- trnaslates LF into CR-LF unless image mode. Moved
- time-sensitive functions from yam7 to yam10, allowing memory
- savings by not using -o on yam7.c.
- 3.29 Removed Join mode. Added x command. "Added" TTYOUT, MODOUT,
- and LPOUT macros (with argument) to reduce conditionals in
- YAM3.C and YAM7.C 6-26
- 3.28 Added FLIP for PMMI type modems. The memory usage change made
- in 3.26 has been cleaned up by use of a union to assure
- correct memory layout regardless of the compiler used. A
- yam5pmmi.c file for the pmmi modem now exists. 6-12-82
- 3.27 Changed autodial() function for CAFPERS. 6-11-82
- 3.26 Further changes to aid maintenance of different versions of
- yam. Needs BDS C 1.46 to compile due to nested
- conditionals. init() moved to yam7.c. Memory usage changed
- allowing larger buffer area.
- 3.25 NATHAN defined. CIS protocol entry changed to help error
- recovery. 5-31-82
- 3.24 Corrected usage of CLKMHZ
- 3.23 Official 8-bit version. Added -, o mode (Onetrip), and Cislen
- parameter. Jeff Martin's corrections added to manual.
- 3.22 Unofficial Version. Includes CIS/MNET A file transfer protocol
- optional with yam4.c (see MYSYSTEM). Changed Cis02
- handling. Changed statline in yam2 to display number of
- characters received in kilobytes. Some coding changes
- reflecting awkward sequences discovered while porting to
- CP/M-86 on IBM PC version.
- 3.20 New Base Version (for dif's). Changed error printouts in yam2.
- Documentation update.
- 3.19 J mode joins short lines when at less than column 40.
- 3.18 N mode now prepends \\r to \\n when the term function is
- receiving a file. 1-1-82.
- 3.17 Added E parameter 12-19-81.
- 3.16 Setting Squelch (TS ES FS or DS) automatically sets Dumping to
- not Squelch. In Twxmode half duplex, transmitted file is
- copied to receive file (if open), and is printed if print
- mode is on. 12-16-81.
- 3.15 Added term Q mode for TWX operations with ANSWERBACK. Changed
- wcgetsec() logic so noise hits on the line before the first
- sector do not cause a speedup in the timeout parameter.
- 12-14-81.
-
-
-
- YAM/XYAM Version 4.24 Page 12
-
-
- Yam Implementation Manual Revised 9-10-83 Page 13
-
-
- 3.14 Added append option for receiving files, replot K subcommand,
- changed previous K subcommand to Z. In N mode, keyboard CR
- is transmitted as NL. 12-11-81.
- 3.13 For non STATLINE, changed "Awaiting Pathname NAK" to "+" and
- "Awaiting initial NAK" "^".
- 3.12 Added replot X and K subcommands, changed type unsqueeze to
- avoid array overflow problems on long pathnames. Added term
- function break subcommand (requires sendbrk() function in
- yam5.c). 11-5-81.
- 3.11 Added Cis02 mode for Compuserve access, fixed logfile problem
- (first few files didn't show). Tab expansion fix courtesy
- Jeff Martin (I thought it was the Z89!) 11-28-81.
- 3.10 Changed yam10.c to stop printout on ^Z in file 11-22-81.
- 3.09 Cosmetic change to type command in xyam. 11-17-81.
- 3.08 Added USERINIT option useful for some implementations.
- 11-14-81.
- 3.07 Minor change to yam1.c for benefit of memory-mapped systems
- 11-11-81.
- 3.06 IOTYPE added for memory mapped systems List command now distinct
- from type. Cosmetic changes to opentx(). 11-8-81.
- 3.05 Added automatic recognition and display of squeezed files.
- Inclusion of the unsqueeze feature (#define USQ) may require
- clink -r 800 11-7-81.
- 3.04 Added GOchar parameter, enhanced view mode 11-6-81.
- 3.03 Number of sectors and xmsn time printed when opening files
- 11-5-81.
- 3.02 Xyam resets user number when exec'ing BYEPROG. 11-01-81.
- 3.01 Added INITBAUD. Your yam?????.h may need revision. 10-31-81.
- 3.00 Nomenclature changed to facilitate differential file updates
- 10-25-81.
- 2.34 Added era and NATHAN commands, O mode. 10-24-81.
- 2.33 Changed Unixish "FILE" to struct _buf in yam.h. 10-21-81.
- 2.32 Added BYEPROG define, deleted T, U, and W commands from XYAM.
- 10-18-81.
- 2.31 Corrected tab expansion and kbd XON XOFF handling in yam3.c
- 10-17-81.
- 2.30 Supports CRC error checking option compatible with XMODEM45
- 10-15-81. Chat function now in both yam/xyam.
- 2.24 Added free disk space report on a: etc. command, Upchuck
- function.
- 2.23 Added "crck" command.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- YAM/XYAM Version 4.24 Page 13
-