home *** CD-ROM | disk | FTP | other *** search
- 07/25/82: Created file BYE79.DOC mostly from old versions of BYE
- documentation: BYE67.DOC, BYE77.DOC, BYE78DIF.DOC, and
- BYEWARN.DOC. Many comments are by Thom Quick.
- Jim Mills, CP/M UG Reviewer
-
-
- NOTE: The major enhancement of version 6.7 of BYE is that a single
- source file now contains conditional assemblies to control
- either PMMI or D C Hayes modem cards. Otherwise, this doc-
- umentation is essentially the same as that for version 6.3,
- with the addition of some minor fixes and improvements.
-
-
- BYE67.ASM DOCUMENTATION
-
-
-
- The BYE program for PMMI and D C Hayes modems has undergone three
- significant revisions in recent months, and many features and options
- have been added. This documentation is intended as a guide for sorting
- through the many additional items.
- Most of the new features have been added via conditional assembly,
- thereby allowing the program to accomodate users with varying memory re-
- quirements.
- Note that not all combinations of conditional assembly have been
- tested, so be careful!
-
-
-
-
- DOCUMENTATION OF REVISION 6
- ===========================
-
- The following features have been added to revision 6:
-
- 1) Timed logout- This feature allows your system to disconnect
- after a pre-specified time when there is no input from the remote
- user.
- ==> Set "TIMEOUT" to "true".
- ==> Set "TOVALUE" to the number of minutes to wait before
- disconnecting.
-
- This feature requires that timing now be done in software, instead of
- using the PMMI timing circuitry, which is tied up with baud rate gen-
- eration when the system is in use. Therefore, you must set the equate
- "FASTCLK" to true if you are running a 4mhz system, and to false if
- you are using 2Mhz. You must do this even if you don't use the timed
- logout feature.
-
- 2) Autoload- Setting "COMFILE" to true causes the bye program to auto-
- matically load and execute a machine language program from the disk.
- This is useful for remote bulletin-board systems, remote query and
- data entry, etc. If you are using cp/m 2.x (equate "CPM2" set true),
- you must specify which user number to load this file from. This is
- done by setting the equate "COMUSR". Note that this user number will
- also be the one under which the autoload program is executed.
-
- The loaded program can prevent the remote user from re-booting the
- system by changing the byte at 0 (jmp instruction) to a call. When
- this is done, the system will trap control-c from the remote user
- (changing the character to a null), and a branch to location 0 (warm-
- boot) will terminate the session, as if "bye" had been typed by the
- user at cp/m command level. This allows the autoload program to end
- the session by merely branching to location 0.
-
- If it is necessary to give the user full control of cp/m, the auto-
- load program must replace the call at zero with a jump. In this case,
- control-c will no longer be trapped, and "jmp 0" will warm-boot the
- system.
-
- NOTE: The system operator can answer an incoming phone call in
- either of two ways:
-
- A>BYE /C ;this form causes the bye program to answer the
- phone, prompt the user for nulls, then load
- and run the autoload program.
-
- A>BYE /A ;this form causes the program to answer the
- phone, then boot to cp/m command level.
-
- Note that either method will, upon termination of the session,
- re-load the autoload program before accepting another call.
-
- 3) User and drive number verification- The bye program will now
- validate the logged-in drive, and, if it exceeds the value set
- by the equate, "MAX$DRIVE", the system will reset the logged-in
- drive to 0 and perform a warm-boot.
-
- If you are using cp/m 2.x ("CPM2" equate set to true), the same
- verification will be done for the logged-in user number. The
- equate in this case is the variable "MAX$USER", which should be
- set to 0 for cpm 1.x.
-
- 4) Special function keys- You can assign any three key-codes on the local
- keyboard for the following special functions (Note that you should also
- select the DUAL$IO mode along with these options):
-
- "TWITKEY" - This key immediately logs out a user. This can
- be useful to remove system crashers, "explorers",
- etc. from the system.
-
- "MSGKEY" - This key prints the message: "MESSAGE FROM OPERATOR:",
- which can be used to announce operator presence, prior
- to typing a message to the remote user.
-
- "SYSDKEY" - This key prints the message: "SYSTEM DOWN IN 5
- MINUTES", which is handy when you want to drop a hint
- to a caller who has worn out his welcome. (or just
- when you want to politely get the system back for
- yourself).
-
- Note that the conditional assembly for these keys is set by the
- equate "FKEYS". The key-codes can be individually changed.
-
- 5) Decimal user logs - If you use the USRLOG functions (see revision 5
- section of this documentation file), setting the "DECIMAL" equate to
- true provides a decimal printout of the user log values, instead of the
- default hexadecimal printout.
-
- 6) Lower case checking - By setting the "CK$LWC" equate to true, the user
- will be asked at sign-on if his terminal can display lower case. If
- the user responds with "N", all output will be converted to upper case
- before transmission.
-
- 7) If you have an IMSAI (or any computer with an input port set by
- switches), setting the "IMSAI" equate to true provides the following
- capablities:
-
- switch function
- 0 turns on the hardcopy log ... this echoes remote
- input (not output!) onto the printer. This provides
- a hardcopy logging function with minimal amount
- of printout..i.e., only the users' input is echoed.
-
- 1 sets up "password mode"...when this switch is up, any-
- one trying to log onto the system must provide a pass-
- word. This allows you to reserve the system at times
- for special callers. Note that the "PWRQD" equate
- must be set to true for this key to have any affect.
-
- 2 blacks out the remote user...this is useful when
- you need to enter a password into the machine that
- you'd rather the remote user not see. Characters
- echo onto the local terminal, but are not sent to
- the remote user. Note that the equate "DUAL$IO", which
- allows the local terminal to be functional, must be
- set to true for this key to have any effect.
-
- 3 enables the FKEY's, when the "FKEY" equate is set to
- true. Using this switch, the special function keys
- can be used normally when the switch is off, and
- as function keys when the switch is up.
-
- Also: the user log (if USRLOG is set to true) will be displayed
- on the front panel LED display.
-
- The port address of the front panel I/O port can be changed using the
- "SENSE" equate. It is initially set up for the IMSAI addressing, which
- is port 0FFH.
-
- 8) The console status routine now checks the overrun and framing error
- bits of the PMMI modem chip, and if either of these bits is set, the
- character in the modem is cleared. Thanks to Bruce Ratoff who used
- this idea in his DC Hayes version of the bye program.
-
- 9) Since the WELCOME file may reside on a different user number than the
- autoload program (if any), the WELUSR equate has been added to indicate
- the user number under which WELCOME may be found. Note that if the
- COMFILE option is not also used, the caller will receive control of the
- system under user number WELUSR.
-
- Credits: (version 6.3)
-
- Dave Hardy, who implemented the special function keys, and IMSAI functions
- for the Technical CBBS, Dearborn, Mich (313-846-6127 24Hr).
-
- Bruce Ratoff, who provided a lot of this stuff in his DCHBYE54, which I
- lifted and added to the PMMI version.
-
- Keith Petersen, who provided the ideas and suggestions.
-
- ====>Ron Fowler
- Sept 24, 1980
-
- Credits: (version 6.7)
-
- Dave Kozinn, who had the time and patience to merge the D C Hayes code
- into PMMIBY63, creating (at long last) an "universal" BYE.
-
- ====>Bruce Ratoff
- Feb 17, 1981
-
-
- DOCUMENTATION OF REVISION 5
- ===========================
- PMMIBYE5.DOC (as of 7/20/80)
-
- The PMMIBYE5.ASM program is out for distribution, but it has not been
- thoroughly tested in all of the possible modes of operation.
- (Please note that version 5.4 is substantially longer than previous
- PMMIBYE versions. Because of the great number of conditional switches, the
- program could require as many as 1060 bytes of RAM, or it could be smaller
- than the 900 bytes used by the original PMMIBYE. It all depends on the way
- you set it up.)
-
- Basically, several new conditional assembly routines have been added to
- allow user selection at time of assembly of the following:
- 1. Password access
- 2. User log (counts number of system callers)
- 3. Memory-mapped console I/O
- Also added to V5.4:
- 1. 710 Baud option for PMMI modem
- 2. Modifications to AUTO-ANSWER routines
- 3. "/R" option to allow reset of user log counters
-
- Password access was made conditional to allow use with systems that offer
- unrestricted access.
- The user log was added to allow the system operators to keep track of the
- number of people who called the system. In addition, it can also count the
- number of unsuccessful log-ons (i.e. didn't know password) and the number of
- voice calls, and conditionally display both numbers on the system console
- when the program is exited with a control-C from the system console. The
- counters can be initialized with the "/R" option to all zeroes, or preset by
- using DDT, or SID. The number of successful log-ons is also conditionally
- output to port 255 (0FFH) for display on the computer's front panel.
- The memory-mapped I/O conditionals have been added to allow use of the
- serial I/O port on the Morrow's 2D controller board as the system console;
- however, the routines can be used with any memory-mapped system.
- The 710 Baud option was added for "short-haul" callers, and because
- operation at 710 Baud with the PMMI modem is "iffy" at best, it will
- probably be of very little use.
- The AUTO-ANSWER routines were modified to allow more dependable ringback
- operation. Unfortunately, the ringing signal at the caller's end of the
- phone line does not always correspond exactly with the ringing signal at the
- system's end. Although a system-end ring does occur sometime during the
- caller's ring cycle (ring-no ring), it is possible for the system to receive
- no or 2 rings in the time that the caller thinks just one ring has occurred
- (The DIAL program is notorious for this). The solution chosen for this
- problem was to check for one or two rings before call-back. This would
- allow for the "phase" difference of the caller-system ring signals. This
- solution also means that the phone must ring at least three times before the
- system will assume that the call is voice, and is not to be answered. The
- advantage of this arrangement is that it is virtually impossible for the
- computer to "miss" a call that is intended for it.
-
- Dave Hardy
-
-
-
-
-
- BYE77.ASM DOC
-
- BYE77.ASM incorporate into one version the features made available
- in Vers 76,76B and adds equates for the Western Digital 8250 Async
- Comm Element. This should make the BYE program compatible with
- most Z80, 8080A, and 8085 systems that use INTEL 8251 or WD8250
- USART/ACE programable communications devices.
-
- CRC'S for the files are:
-
- BYE76.ASM ORIGINAL INPUT 80 E2
- BYE77.ASM ORIGINAL 4D 52
- BYE77.AQM ORIGINAL SQ CE BA
- BYE77.DIF 1E 00
- BYE77.DQF 31 4B
- BYE77.ASM SSED OUTPUT 74 C8
-
- Thom Quick, 312-887-5406(w)
-
-
-
- BYE78DIF.DOC
-
- Paul Traina has provided us with BYE78.ASM. In order to take advantage
- of DIF/SSED I have created two dif files that should make conversion
- or upgrade to this SUPER version easier. The two dif files are:
-
-
- 1) BYE76/78.DIF
-
- 2) BYE77/78.DIF
-
- It should be noted that if the base input file was created with DIF.com;
- then to arrive at an original equivilent (crck's equal) of bye78.asm,
- you will have to use DU.COM to locate the last block of the last extent,
- and pad/fill it with " 1A1A1A1A1A1A.... " .
-
- I have tried this and it works. Relevant crck'c are:
-
- BYE76.ASM ORIGINAL INPUT 80 E2
- BYE77.ASM ORIGINAL INPUT 4D 52
-
- BYE77.DIF 1E 00
- BYE76/78.DIF 8A A6
- BYE77/78.DIF 80 45
-
- BYE78.AQM ORIGINAL 5B DB
- BYE78.ASM ORIGINAL E6 56
-
- BYE78.ASD BYE76/78 & BYE77/78.DIF
- SSED DERIVED A9 F5
-
-
- (Note the use of the "D" in the extent of the derived .ASM file
- it would be nice if we could have an exchange standard to
- identify original vs derived files.)
-
- Thom Quick 312-887-2334 (w) 0800-1730 CST
-
-
-
-
- The Bye programs have a note that I included on the polarity
- of the jump instructions after an IN from a port. IF problems
- exist in the execution of the program, you should confirm that
- the logic for your particular UART/USART/ACE is correctly
- reflected. For example in the ringwt routine:
-
-
-
- RINGW2 EQU $+OFFSET
- IN RPORT ;GET THE STATUS
- ANI P2RDET ;RINGING?
- JZ RINGWT ;NO, WAIT
-
- THE 'JZ' MAY BE REPLACED WITH A 'JNZ' TO REFLECT THE USART/ACE
- IMPLEMENTATION.
-
- Check your system documentation to determine the correct
- logic. Again this applies only to conditional jumps or
- calls after an ' IN ' from a port...
-
- Thom Quick
-
-
-
-
- BYE79.ASM notes,CP/M UG Vol. 85 (07/25/82):
-
- Various files referred to in the above documentation do not appear
- on CP/M UG volume 85. These are mostly older versions -- or .DIF
- (difference) files meant for use with the DIF and SSED utilities
- which allow upgrading to a new version from an old "known" version
- of the file. Studying the comments and equates at the beginning of
- the BYE79.ASM file, and after the beginning of the "relocated code"
- will be of great benefit in understanding this program, and how it may
- be made to interact with other programs.
-
- Jim Mills, CP/M UG Reviewer
-
-
-