Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Line 174: An additional command choice to do a disk catalog<br />
has been added, so you can confinn a file name before up<br />
or downloading.<br />
Line 711: This is where the downloading bails out if the<br />
buffer becomes full (Note: there is no advance warning of this<br />
situation).<br />
Lines 726, 740: In DOS, I had to resort to a trick to save<br />
a text me using the much faster BSAVE operation. ProDOS<br />
has the equivalent built in: the "T" parameter designates the<br />
file as type "TXT", and a BSAVE is then used.<br />
Subroutine 2000:<br />
2010: confinns 80 column card is installed<br />
2030: a 6850-type card is in slot 2<br />
2040: an SSC-type card is in slot 2<br />
2060nO: BLOAD the appropriate binary module<br />
2323: for the SSC, a 2400 baud choice has been added<br />
(Note: 2400 baud is apparently too fast for most 80-column<br />
cards, and some character dropping occurs during line scrolls.<br />
Command the sending system to insert some nulls after each<br />
line if possible.)<br />
2510: 6850-type cards should be set to 1200 baud. (The<br />
old <strong>Apple</strong> Comm. card should be modified.) If these cards are<br />
installed with some other baud rate, the menu choices 1200<br />
or 300 will not reflect the actual baud rate. Rather, choosing<br />
"1200" simply sets the card to whatever baud rate its switches<br />
(or wiring) say it is, while "300" puts the card into a baud<br />
rate 1/4 of what the switches say.<br />
Line 2620 and Subroutine 3000: If this is a 40 column<br />
<strong>Apple</strong>, we need to find out whether the user has lower case<br />
display.<br />
4. THE MACHINE LANGUAGE PROGRAMS<br />
SSC.OBJ AND SSM.OBJ<br />
What I have done in the complete Comm-Tenn "package"<br />
is to prepare two separate machine language modules,<br />
SSC.OBJ for the 6551 case, and SSM.OBJ for the 6850 case.<br />
Obviously, any given computer will only have one or the<br />
other card type in slot 2. The BASIC program decides which<br />
one is needed, and loads it. In this article, I have listed only<br />
the SSC.OBJ version. Only a handful of bytes are different in<br />
SSM.OBJ from SSC.OBJ. In retrospect, it would have made<br />
more sense to have only one module, and POKE in the<br />
changes necessary to adapt to the other if necessary. If you<br />
have a 6850 card, I suggest that you nevertheless enter the<br />
SSC.OBJ code, BSAVE it, then use the modification<br />
infonnation in the Appendix to modify what's already in<br />
memory to SSM.OBJ, and BSAVE that.<br />
Another reflection of how this grew like Topsy, rather<br />
than being written anew, is that I have no source code in the<br />
nonnal sense. What I list below is the machine language code<br />
as disassembled by the <strong>Apple</strong> Monitor, and with some<br />
comments added manually after the fact. Actually, the routine<br />
isn't so dreadfully long that entering it directly in hex with the<br />
<strong>Apple</strong> in Monitor is all that difficult, but if you're not that<br />
ambitious, wait for the Disketeria. A highly desirable improvement,<br />
of course, would be to despaghetti-ize the code by<br />
a complete rewrite in Assembly source ... Real soon, maybe...<br />
In addition to the commented code, the following may<br />
help:<br />
1. Cursor management: the old version used a flashing<br />
space for a cursor. This doesn't work with 80 columns, especially<br />
the enhanced MouseText character set. So, NOPs appcm<br />
in S9OO7-9009 and S9015-90l7.<br />
2. Extra code was needed to detect the buffer full condition.<br />
This code is squeezed into S9033-903C.<br />
3. Originally, COMM-TERM made provision for replacing<br />
the back arrow (S88) with the DELete character. Since the<br />
back arrow is now accepted by most systems, and the lie has a<br />
DEL key anyway, this code was eliminated. Thus the NOPs<br />
in $9052-9056.<br />
4. $9077-9079: Old COMM-TERM buffer started at<br />
page $IC (or memory location 7168). This program needed<br />
more room, so the buffer starts at page $20 (location 8192).<br />
5. $90A5-90A9: see note 3 above.<br />
6. S90C5-90D5: The old code simply sent data to be displayed<br />
to good ole' SFDFO (See instructions at 909F, 9012,<br />
and 9072). But many control characters cause 80 column<br />
board difficulties, especially those that switch the computer<br />
back to 40 column mode. Also, the screen clear, Ctrl-L, takes<br />
a long time to process, during which data is lost. So the code<br />
here filters out all control characters except the carriage return<br />
(Ctrl-M). Since this little routine is at the end of the machine<br />
language section, it could be easily modified if you wanted to<br />
only filter out some control characters, or to translate<br />
characters. (One change that I recently realized would be<br />
desirable is to permit Ctrl-H, the backspace, to come through<br />
as well.)<br />
S. CONCLUSION<br />
I encourage readers to try out, improve, and comment<br />
upon this program. I realize it's not terribly elegant, but<br />
perhaps it will give someone the raw materials for something<br />
belter. The <strong>Apple</strong> DOS and now especially ProDOS public<br />
domains need some decent communications software like<br />
those available under CP/M, MS-DOS, and even laptop<br />
computer operating systems.<br />
I am working on ways to use the machine language routines<br />
plus some simple code to perform at least auto-dialing<br />
and other simple "Macro" functions. It's easy to see what's<br />
needed: a series of text files, or file entries, containing the<br />
auto-dial command strings (e.g., AT DT 9868085