home *** CD-ROM | disk | FTP | other *** search
- 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
-