home *** CD-ROM | disk | FTP | other *** search
- .fo MXO-PX8 Version 1.0 -#- (C) Copyright 1985 by David B. Kozinn
- .po 0
- This file will serve to document the MXO-PX8 overlay for MEX version
- 1.12. This file is not intended to document MEX itself, but rather some of
- the peculiarities inherent in using this overlay. I'll try not to miss
- anything.
-
- Installation
-
- MXO-PX8 should only be installed in version 1.12 (or higher) of MEX
- since it relies on some variables that were added for that version,
- specifically the MODE byte for determining when we're in terminal mode (so
- we don't try to use XON/XOFF flow control then) and it specifically
- disables the queued I/O mode since this interferes with the PX-8's own
- interrupt driven I/O routines. No special procedures are needed when
- installing the overlay, and you may install any dialing overlay (which will
- only be used if you are using an external modem) that is ORG'd at 0B00H. If
- you are using an external modem dialing overlay (see the section on Dialing
- Overlays for details), you must have it after the main overlay in your
- MLOAD command or it will not be recognized. A typical MLOAD command might
- look like this:
-
- MLOAD MEX.COM=MEX112.COM,MXO-PX8.HEX,MXO-SM14.HEX
-
-
- The SET commands
-
- SET ? will tell you what what the available SET commands are.
- Currently these are SET, SET DELAY, SET OFFHOOK, and SET COMM.
-
- SET by itself will return some information about the current status of
- the RS-232 ports. The information returned is carrier status, whether the
- modem is on or off hook, and what the DELAY value is (see below.) A couple
- of caveats about this information: if you exit MEX then re-enter the on/off
- hook status will be incorrect if the modem is off-hook when you enter. If
- you have something plugged into the external RS-232 port that is providing
- DTR then you will always appear to have carrier no matter whether or not
- there is really carrier present to the modem.
-
- SET DELAY changes the delay value that is used when a comma is
- encountered in a dialing string. (See the section on dialing for more
- information.) The default value is two seconds, but any value from 0 to 9
- may be used.
-
- SET OFFHOOK causes the modem to go off-hook. This probably isn't a
- really useful thing in most cases, except that if you've disconnected when
- using the external port, you'll need to say this to make the port pay
- attention to you.
-
- SET COMM is the most useful of the SET commands. When you type SET
- COMM you'll get a menu that looks pretty much like the menu that you get
- from CONFIG. The only difference is that on the last line you can select
- either the EXTERNAL or INTERNAL modem. In this case EXTERNAL refers to a
- device plugged into the RS-232 plug on the back of the PX-8, which INTERNAL
- refers to an MFU or other direct connect modem connected directly to the
- system bus. (In other words, it's got to be attached to the bottom of your
- PX-8.) The system will not let you select the internal modem if you haven't
- got one. When you first start up the system, the values selected are the
- ones that you have set up to be your default communications parameters
- using CONFIG. The only exception to this is whether to use the internal or
- external modem (since CONFIG doesn't handle that.) If an internal modem is
- present, it will be the default, otherwise external will be assumed. When
- you exit MEX, your overlay parameters will be retained as long as you do
- not do a warm boot (ie. type control-c or do a jump to 0000H.) A warm boot
- will cause the modem to power off, hanging up the phone line in the process
- (if it was connected.) More about this later.
-
- Dialing Overlays
-
- If you don't have an MFU (which I use to mean an actual multi-function
- unit or a system-bus connected modem) then you'll need to include an
- overlay such as MXO-SM14 when you MLOAD to create your MEX. If you do have
- an MFU, you may include such a dialing overlay as well for maximum
- flexibility, as you'll then be able to dial using both the internal and
- external modem. It won't cost you anything else in terms of space since if
- you don't install the dialing overlay that space is still in the program,
- though unused. If you choose to use an external dialing overlay, you may
- also choose how you want the modem to disconnect from the line. If you set
- the DISC equate to FALSE, then the modem will disconnect by dropping DTR.
- If you set it to TRUE, then the character sequence to disconnect the modem
- from the line will be used instead. (If the preceeding few sentences don't
- mean anything to you just forget about it, MEX will do the right thing for
- you.I won't discuss the use of the external modem dialing overlay any more,
- as it is documented elsewhere. The rest of this section will deal
- exclusively with the internal modem dialing routines.
-
- As "delivered", the MXO-PX8 overlay supports dialing via the built in
- modem in a DTMF (tone) mode only. (Future revisions of this overlay may
- support pulse dialing.) The modem itself is capable of generating all
- sixteen DTMF tones, which includes the familiar digits (0-9), #, and *, as
- well as the rarely-seen (or heard) A,B,C, and D tones. (If you don't know
- what the A-D tones are used for, don't worry about it, you're not the only
- one. I've included them since they are supported by the hardware.) The
- comma (,) is also specially supported: A comma in the dialing string causes
- the dialing routine to wait approximately DELAY seconds. DELAY is set with
- the SET DELAY command as previously mentioned, and the default is 2
- seconds. You may include several commas in a row if you need to. All other
- characters are ignored. The current version of the overlay will not allow
- you to send tones on a line that is already active, it will hang up first
- then attempt to dial the tones.
-
- Automatic XON/XOFF flow control
-
- The PX-8 is a wonderful piece of electronics, but one of it's
- drawbacks is a rather slow LCD display screen. Because the screen is slow,
- it's easy to overrun the internal buffer with characters coming in while
- the display is trying valiantly to keep up. (By the way, this is generally
- only a problem at speeds at or above about 1200 baud, but can occur at
- lower speeds if you get a lot of linefeeds in rapid succession. This is
- because the screen scrolls even slower than it writes.) Because of this,
- I've chosen to implement automatic flow control while in terminal mode.
-
- When the internal buffer (which is about 360 bytes) gets about 3/4
- full, an X-OFF (ASCII character 11H) is sent out through the modem port.
- When the buffer becomes nearly empty, an X-ON (ASCII 13H) is sent. Many
- computers (both mainframes and micros) alike will honor this signal and
- will stop sending when told to. If not, then you'll somehow have to insure
- that data is sent in small enough chunks so that the buffer does not get
- overrun. You can tell if this has happened since you'll the data being
- displayed will not look like anything you were expecting. (In other words,
- you're going to get junk on the screen.) The overlay will only do this kind
- of flow control while in terminal mode, since it would interfere with file
- transfers using either file transfer protocol, and because it just plain
- isn't needed then.
-
- File Transfer Speed
-
- A word or two about file transfer speed. MEX is a big, flexible
- program. The PX-8 is a small, powerful, but not-too-fast computer. The
- combination of those two things does have it's price. The price is that it
- is not really possible to get the maximum theoretical speed at any given
- baud rate. The higher the baud rate, the lower the percentage of maximum
- you'll get. What this means is that you should not expect to get the
- transfer time that MEX tells you when you start a file transfer. At higher
- baud rates, you'll probably need to multiply that figure by 3-4 times to
- get the actual transfer time. The good news is that even though you aren't
- getting the theoretical maximum rate, you can still hook up to your
- favorite computer at it's maximum speed without worrying about loosing
- characters during file transfer.
-
- More Speed-related Stuff
-
- It has been reported that if you are using a floppy disk drive with
- your PX-8 that you may have problems with the other end timing out while
- you write (or read) to disk. This is most likely due to the fact that
- normally MEX writes 128 sectors at a time to disk, which is a fairly slow
- process with the battery powered external modem. If you have problems, you
- can try telling MEX to buffer smaller amounts between disk writes. The
- simplest way to do is by using the POKE command then using the CLONE
- command to produce a new working copy of MEX. The procedure is very simple.
- When in MEX, simply type:
- POKE $D23,n
- Replace n with the size of the buffer that you want to use. I recommend 4,
- which will cause MEX to save 32 sectors (ie. 4K bytes) in memory before
- writing to disk. Then simply use the CLONE command to save a new copy of
- MEX.
-
- Since it's impossible to tell when a user of MEX might want to return
- to terminal mode, I've chosen to implement the overlay in a manner such
- that the RS-232 port is always left powered on, even when exiting to CP/M.
- (This is so that you can leave MEX then return and pick up right where you
- left off.) Because of this, there is a constant drain on the batteries. If
- you intend to use your PX-8 for any length of time after using MEX without
- turning it off, then be sure to do a warm boot (by typing a control-C)
- sometime after exiting MEX. This will cause the RS-232 port and the modem
- to power off, and will result in extended battery life.
-
- Miscellaneous
-
- I've found it helpful to do a STAT PAGE 8 then CLONE so that the STAT
- display doesn't roll off my screen before I've had a chance to read it.
- You'll probably want to change the default <ESC> sequence from <LF> since
- there is no LF key on the PX-8 keyboard. (If you don't want to, remember
- that you can always type control-J to send a linefeed.) Some of the timing
- values used for file transfer speed will be less accurate than usual since
- MEX didn't define values for some of the baud rates. See the code for
- specifics. You'll probably want to use CONFIG to set your default baud rate
- to 300 if you're going to be using an MFU. That makes it possible to use
- the mode without having to use the SET COMM menu.
-
- Notes About the Source Code
-
- I've tried to make the source code as readable as possible so that
- others can build upon what I've started. I ask that if you enhance this
- overlay, you let me know so that I can keep my own versions up to date. In
- addition, I'll be glad to answer any questions that I can about how the
- overlay works.
-
- Thanks
-
- Special thanks for the help they've given me in developing this
- overlay must go to Justin Bell, Chuck Freeman, and Mike Morra of Epson for
- their help in getting me the information I needed to access the PX-8 system
- information, to Ron Fowler for tolerating my questions about MEX, to John
- Kinney and Charlie Strom for helping me to beta-test the overlay, and to my
- wife Sharon for putting up with me while I tried to get the overlay put
- together.
-
- David B. Kozinn March 5,1985
-
- Compuserve: [76703,565] (Preferable method)
- CP-MIG (PCS-47), EpsOnline (PCS-19), or Easyplex
-
- MCI Mail: dkozinn