Category : Tutorials + Patches
Archive   : B144-MJ1.ZIP
Filename : B144-MJ1.DAT

 
Output of file : B144-MJ1.DAT contained in archive : B144-MJ1.ZIP

"What The Hell Possessed Me To Buy This Boca Modem?"

OR

"Do I REALLY Have A Stump Growing Out Of The Back Of My Head?"


By: Master Joe



The Boca 14,400Kbps Internal Fax/Modem is well worth the $210 that I paid.
As John Arbuckle once said, "You get what you pay for." In this case, I
certainly did. I choose a Boca internal modem because I am VERY frugal and
I am not too bright.

This modem has many shortcomings. It took a lot of experimenting and fine
tuning, but I ended up with a high speed modem that I am now satisfied with.
I can now solidly lock onto a BBS download a ZIP file at 1700 CPS, - that is
exactly why I bought it. I use a BNU Fossil Driver for environment stability,
Telix for my Terminal program, and GSZ ZModem with Moby Turbo to achieve the
speed, and I also installed PROCOMM PLUS For Windows after I had this file
almost completed.

I revised several sections of this file because I feel this PROCOMM PLUS For
Windows does a better job than the fossil driver at controlling the INT 14h
while in the Windows environment. Telix, BNU, and GSZ ZModem with Mobyturbo
combinated are still my best advice for DOS.

The Protocol Y Modem-g is just as fast, but it does not support crash
recovery. I also use Puma which is about as fast, but most BBS's do not
support Puma.

I now have my modem screaming on uploads and downloads, but I did have many
problems setting it up and debugging the parameters to my system. The only
problem that I am still having is with the fax portion. I can send and receive
faxes with "real" fax machines with no problem, but when I attempt to send or
receive a fax with another Boca, most time the result is a page filled with
horizontal noise lines or vertical bars. I have tried different fax programs,
different DOS memory managers, changed BIOS settings, modem parameters, and
used the BNU fossil driver before booting the fax programs. So far nothing has
helped. This problem will only be corrected if Boca decides to update their
ROM Chip.

The Boca owners manual sucks when it comes to fax parameter information. A
Boca technician told me that init strings are used by the modem portion - the
fax portion has its own built in parameters that can not be changed. He was
wrong. I found that entering fax commands in the init string will effect the
fax board. Do not confuse modem commands with fax commands.

The second problem that I had was my terminal program some times "locked up"
when I tried to log off of BBS's. Note that I said "some times," much of the
time it disconnected OK. This problem started when I added the settings
&S1 and %E1 to conform to CCITT industry standards while using Telix. I
solved this problem by using a unique Hang Up string, shutting off the DSR/DTR
Hardware Flow Control and the DSR/DTR Hardware Flow Control in Telix, and I
also installed the BNU Fossil Driver at the same time. These changes seem to
have also solved another problem, my "mysterious disconnects," and my
"log-off lock-ups." I will go into more detail about the BNU Fossil Driver
I am using before I finish this file.

One other little irritating little quirk that some Boca Fax/Modem owners
report is the modems intermittently have a problem recognizing a busy signal.
My modem will recognize the busy signal consistently for a day or two, then
it won't recognize it for a week. The Boca Technicians that I talked to had
no idea as to the cause or cure for this quirk. I know of three Bocas that
are doing this. I have actually removed a Boca Modem that was not recognizing
the Busy signal and placed it into another computer and it did recognize it.
This is a compatibility problem that it is caused by either Rockwell's
El Cheapo chips or the Boca ROM chips.

Every so often something is going to go wrong no matter what parameters you
use. When that happens the only way to cure it is to press the reset switch
and reboot your computer. When you press the reset switch, hold it in for
approximately five seconds. You will hear your modem click and then you will
hear the dial tone. Do not release the reset switch until you hear the dial
tone. I have also found that if you have run a fax program, press the reset
switch before you run a terminal program and visa versa. Use your reset switch
a lot! If you see anything strange while in a terminal mode, press the reset
and try it again. Boca Fax/ Modems do NOT reset their memory banks. You have
to press the reset switch so often that Boca should have included a great big
foot switch!

Don't count on any knowledgeable technical support from Boca. I called Boca
Research three times before I got to speak to a technician. First I was put
on hold and left there until my left arm hurt from holding the receiver to my
ear. I redialed Boca and told the operator that I did not like calling long
distance and waiting so long, so she suggested that a technician call me back.
After waiting for 4 hours of I finally called again and asked for the person
who ran Boca. John told me that he would have a technician call me right back.
A technician did call back within minutes. He gave me a new init string to
cure my Boca to Boca fax blues - unfortunately it did not work. The next day,
to my utter disbelief another Boca technician called me. I do give them a lot
of credit for the follow-up call. He tried like hell to help with the problem.
After over an hour he gave up. I believe that you are better off downloading
files such as this that are related to Boca Fax/Modems then testing the data
and Profile Settings that each person recommends.

Before you continue reading this file, boot your terminal program and type
ATI3 This will tell you your ROM Version. Mine is V1.200 TR14-Jxxx-001 210.
This is the newest version from Boca as of November 14, 1992. Next type AT&V
This will give you your profiles. Print them so you can compare them to mine.

All of the tests I am reporting in this file were done while using TELIX, BNU,
and GSZ Mobyturbo, on a 80386DX 40Mhz machine. There should be no difference
if you use Procomm - that we will address later.

One of the other major shortcomings of the Boca 14,400Kbps Fax/Modem and all
high speed modems is the lack of one standardized protocol. One modem has
MNP5 and another has MNP4 another has V42 and another has V32bis, etc...
The Boca sometimes has a problem adjusting to these other modems, but what
did you expect for $210?

I should also take a moment to comment on how Rockwell did a great job of
short cutting what could have been a nice chip! Rockwell said, "Screw any
industry standards. Let's design our own chip that is not compatible with
anything else in the world and sell it for cheap money." Well it worked.
The hi-speed modem market is now controlled by Rockwell and their marginal
chips. This chip has more bugs in it than a chineese food restaurant!

In order to save a few bucks on the manufacturing of each modem, Boca decided
not to use a 16550AFN FIFO chip on their board. That sucks, but there is
nothing that can be done about it. The chip that they use is a Rockwell 452.
It is not interchangeable with a 16550AFN, so you can not replace the chip.
If you bought an external Boca then you can get a Hayes serial card that has a
16550AFN chip for about $80 more. If you buy a generic serial card, avoid the
ones that use the Western Digital 16550 chip. They suck too.

I have read that Windows does not like Boca Modems - I want to correct that
statement right now. It is just the opposite! Bocas do not like Windows!
If you use a DOS Terminal in Windows such as Telix, and you want to do a file
transfer at 2400 baud, you can do it, but if you want higher speeds, then
you are going to subject yourself to a jerky mouse, freeze-ups, and mysterious
disconnects. My best advice is get ProComm Plus For Windows Terminal. PCP
For Windows will get rid of 99% of your Windows compatibility problems. My
second best advise would be to use a fossil driver with Telix as a Windows
DOS Application. Read the underlined section "PROCOMM PLUS FOR WINDOWS"
near the end of this file for more details about Procomm Plus For Windows.

------------------------------------------------------------------------------

You are probably having a problem connecting to some USR's HST modems. That
is because USR's HST modem uses a proprietary standard. High speed modems
that have Rockwell chips conform to the CCITT V.32 and V.32bis international
standards. The highest speed the HST has in common with CCITT-standard modems
is 2400-bps. It must have another HST modem for a high-speed connection.

------------------------------------------------------------------------------

I am including my current profile for you to compare with yours. Some
of these settings are pure preference like volume loudness (L2), verbose
result codes (X4) and when the volume turns on and off (M3). Others like
&C1 &D2 &S1 are critical and should not be changed. The parameters in the
Init String should not be changed either.

I will not bore you with the variables of each of these settings.
Read your Boca Manual to see why I have chosen each one.


AT&V

ACTIVE PROFILE:
B1 E1 L2 M3 N1 Q0 T V1 W0 X4 Y0 &C1 &D2 &G0 &J0 &K3 &Q5 &R0 &S1 &T4 &X0 &Y0
S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:050 S08:002 S09:006
S10:050 S11:060 S12:050 S18:000 S25:005 S26:001 S36:007 S37:000 S38:020 S44:003
S46:138 S48:128 S49:008 S50:255

STORED PROFILE 0:
B1 E1 L2 M3 N1 Q0 T V1 W0 X4 Y0 &C1 &D2 &G0 &J0 &K3 &Q5 &R0 &S1 &T4 &X0
S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:050 S11:060 S12:050 S18:000
S25:005 S26:001 S36:007 S37:000 S38:020 S44:003 S46:138 S48:128 S49:008 S50:255

STORED PROFILE 1:
B1 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C1 &D2 &G0 &J0 &K3 &Q5 &R0 &S0 &T4 &X0
S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:014 S11:095 S12:050 S18:000
S25:005 S26:001 S36:007 S37:000 S38:020 S44:003 S46:138 S48:007 S49:008 S50:255

TELEPHONE NUMBERS:
0= 1=
2= 3=


First start your terminal program and type AT&W1 - this will save all of your
current parameters into STORED PROFILE 1. Type AT&F then AT&V Compare all of
the parameters shown in your ACTIVE PROFILE. Enter all parameters shown in
my ACTIVE PROFILE into your your setup -
Example: If your settings say N0 &C0 &D0 then type ATN1&C1&D2
Changing S registers example: S10:014 is changed to S10:050 by ATS10=50
You may repeat typing AT&V to watch your changes progress. When you are done
changing the settings, type AT&W0 - that puts them into STORED PROFILE 0

------------------------------------------------------------------------------

INIT STRING:
------------

Some of the commands are not shown, and are NOT stored in the profiles. Any
commands not displayed in your stored profiles are not being saved in the
NVRAM. They must be placed in your init string so they will take affect when
you boot your terminal program; Here is my current init string:
AT&F^M~~ATZ^M~~AT&S1%E1N1S95=47^M

IMPORTANT:
----------
The &S1%E1 set the CCITT control of your modem. If you are using TELIX make
sure that you shut off your DSR/DTR Hardware Flow Control in your parameters
section before you boot this init string. The Procomm data that I have read
also wants the &S1%E1 in the init string.

IMPORTANT:
----------
Set your Auto Detect Speed to OFF in your Terminal Program.
Set your XON/OFF software flow control to OFF in your Terminal Program.
Set your CTS/RTS hardware flow control to OFF in your Terminal Program.
Set your DRS/DTR hardware flow control to OFF in your Terminal Program.

IMPORTANT:
----------
You should change your Hangup String in your terminal program to read:
+++~~AT^[H0^M
(Yes, I'm sending an ESCape as soon as I have the modem's attention. It is
a deliberate reset error.)

-------------------------------------------------------------------------------

I have done extensive testing of various settings and commands to gain
the highest file transfer speed. The result of the first part of this
test is as follows:

TEST DATE: 11/04/92

---------------------------------------------------------
| VARIABLES FOR S46 and S48 COMMANDS DERIVED |
| BY CONNECTING WITH CHANNEL ONE BBS OF BOSTON, MA |
---------------------------------------------------------

---------------
ATS46=138 S48=7
---------------
CARRIER 14400
PROTOCOL: LAP-M
COMPRESSION: V.42BIS

CONNECT 14400/ARQ
CONNECT 14400/ARQ/V32/LAPM/V42BIS
CONNECT 38400 / 11-04-92 (13:23:36)
*Error Correcting Modem Detected*


-----------------
ATS46=138 S48=128
-----------------
CARRIER 14400
PROTOCOL: ALT
COMPRESSION: NONE

CONNECT 14400/ARQ
CONNECT 14400/ARQ/V32/MNP
CONNECT 38400 / 11-04-92 (13:16:51)
*Error Correcting Modem Detected*


----------------
AT S46=136 S48=7
----------------
CARRIER 14400
PROTOCOL: LAP-M
COMPRESSION: NONE

CONNECT 14400/ARQ
CONNECT 14400/ARQ/V32/LAPM
CONNECT 38400 / 11-04-92 (13:15:09)
*Error Correcting Modem Detected*


-----------------
ATS46=136 S48=128
-----------------
CARRIER 14400
PROTOCOL: ALT
COMPRESSION: NONE

CONNECT 14400/ARQ
CONNECT 14400/ARQ/V32/MNP
CONNECT 38400 / 11-04-92 (13:27:39)
*Error Correcting Modem Detected*

The second part of the test involved which settings would file transfer
quicker. I connected to another BBS and downloaded a 500K file four
times. The results showed that S46=138 and S48=128 were the fastest
and most versatile settings. The S46=136 and S48=128 also transfered
just as fast, but S46=138 will compress files if they can. S46=136
will not compress files. This compression is useful for normal text
files, but tested useless with ZIP and ARJ files.

-----------------------------------------------------------------------------

GSZ MODEM PARAMETERS FOR TELIX EXTERNAL PROTOCOL:

The settings that I now use give me a 1700 CPS throughput with ZIP files
using GSZ ZModem MobyTurbo. Next I am going to include the .SLT file that
I use for GSZ as an external protocol in Telix. This .SLT file forces GSZ
to use the file path parameters in the Telix Setup Section.



////////////////////////////////////////////////////////////////
// Telix Salt File For External GSZ Z-MODEM Protocol //
// Enables GSZ to recognize Telix paths for Upload & Download //
// File Created On: August 02, 1991 & Enhanced By: Master Joe //
////////////////////////////////////////////////////////////////

str upload[80] =
"GSZ port 2 pB10240 pG0 pV1 pW1 ha on sz -b -m -rr ";

str download[80] =
"GSZ port 2 pB10240 pG0 pV1 pW1 ha off rz -b -m -rr ";

////////////////////////////////////////////////////////////////

Main ()
{
if (_ext_filespec == "")
{ strcat(download,_down_dir); dos(download,0); }
else
{ strcat(upload,_ext_filespec); dos(upload,0); }
alarm(1);
}
//////////////// END OF TELIX SALT FILE //////////////////


Make sure that you use the CS FILENAME.SLT to compress it into the
FILENAME.SLC that Telix will look for.

-----------------------------------------------------------------------------

DIALING PREFIXES:

Another interesting thing about the Boca Modems is that they have a hard
time connecting to some 2400 baud modems unless you use special parameters.
You can type them in manually before you dial each particular remote modem
or you can utilize the Telix Prefix dialing strings.

The dialing strings prefixes are in the Modem and Dialing parameters setup
section of Telix.

The prefixes I use are:
-----------------------
To connect to 2400 baud modems Dialing Prefix 1: ATN0^M~ATDT
To connect to high speed modems Dialing Prefix 2: ATN1^M~ATDT

If you have call waiting, use:
------------------------------
To connect to 2400 baud modems Dialing Prefix 1: AT*70^M~~ATN0^M~ATDT
To connect to high speed modems Dialing Prefix 2: AT*70^M~~ATN1^M~ATDT
The *70^M~~ will disable your call waiting.

There is no sense in always manually typing in different parameters when
the terminal program will automatically do it for you.

-------------------------------------------------------------------------------

BNU FOSSIL DRIVER:
------------------

OK - This is what you have been waiting for. The Fossil Driver Section -

Strange, but I decided to try a fossil driver and I didn't even understand
what the hell it was. I found a file called BNU170.ZIP and put it into my
TELIX.BAT file. Since I installed BNU fossil driver, 90% of the problems
I have had with mysterious disconnects and the lock-ups when I try to hang
up from a remote modem have gone away.

Here is my TELIX.BAT file: (It boots the BNU fossil driver, then Telix.)

@ECHO OFF
@CLS
@LH BNU /L:1=57600,8N1 /P:1 /F+ /O /D=1+ /M+ /T=2048 /R=5120 /Z0
@TELIX SNOSCREEN.SLC
@LH BNU /U
@CD \

I am loading the BNU fossil driver into high memory - it seems to work
better there. If you prefer not to use EMS, or do not have EMS, eliminate
the LH or change it to what your particular memory manager requires to load
it into high memory.
Be careful to read the BNU Docs! They have a weird way of assigning Comm
ports. ( 0 = Comm 1 ) - ( 1 = Comm 2 ) - ( 2 = Comm 3 ) - ( 3 = Comm 4 )

(The SNOSCREEN.SLC parameter gets rid of the Telix begging screen.)

The "LH BNU /U" line unloads the program from memory when I exit Telix.

The /Z0 parameter gives control of 16550 UART to BNU - The Docs say that
if there is no 16550 present it will ignore the command, but it may have
an affect on the Rockwell 452 UART. It doesn't hurt to leave it in.

Type BNU /? from the DOS command line to see the acceptable parameters
of the fossil driver.

Since I started using the BNU fossil driver my problems with other modems
dumping me are mostly gone. My modem seems to lock onto the remote modems
better now. I am no longer getting garbage when the modems connect. My
Boca modem now thinks that it is an expensive modem and is performing better
now than ever before!

At this point I am unable to fully explain to you exactly what the fossil
driver is doing that corrected all these problems - I do know that takes
control of the INT 14 away from the terminal program. I also know that it
makes my modem work better.

-------------------------------------------------------------------------------
| |
-------------------------------------------------------------------------------
| |
-------------------------------------------------------------------------------

I found this INT 14h reference file in a DOS Doc that I thought I would
include for you to check out. This is a simple and easy to understand
file referencing the INT 14 - and all apsects of it. This section is so
simple, an eight year old child could understand it. HA! HA! HA!

-----------------------------------------------------------------------
| Interrupt 14h Initialize and Access Serial Port For Int 14 |
-----------------------------------------------------------------------

Note: Some IBM PS/2 Model 50Z machines were delivered with serial ports
that did not meet specification. Some cheap clone serial ports may
also be troublesome.

(0:0050h) the following status is defined:

serial status byte:
bits 0 delta clear to send
1 delta data set ready
2 trailing edge ring detector
3 delta receive line signal detect
4 clear to send
5 data set ready
6 ring indicator
7 receive line signal detect

line status byte:
bits 0 data ready
1 overrun error
2 parity error
3 framing error
4 break detect
5 transmit holding register empty
6 transmit shift register empty
7 time out note: if bit 7 set then other bits are invalid

Though present on the IBM PS/2s, COM3 and COM4 are not widely
standardized across the industry. The most common definitions are:

port addr. IRQ interrupt

COM1 3F8 IRQ4 int 0Ch
COM2 2F8 IRQ3 int 0Bh
COM3 3E8 IRQ4 int 0Ch
COM4 2E8 IRQ3 int 0Bh

As you can see, COM1/COM3 and COM2/COM4 are siamesed. Since the ISA
bus does not support shared interrupts, simultaneous access of two of
a pair may cause conflict. For example, a mouse and a modem would not
coexist well on paired ports.


All routines have AH=function number and DX=RS232 card number (0 based).
AL=character to send or received character on exit, unless otherwise noted.

entry AH 00h Initialize And Access Serial Communications Port
bit pattern: BBBPPSLL
BBB = baud rate: 110,150,300,600,1200,2400,4800,9600
PP = parity: 01 = odd, 11 = even
S = stop bits: 0 = 1, 1 = 2
LL = word length: 10 = 7-bits, 11 = 8-bits
AL parms for initialization:
bit pattern:
0 word length
1 word length
2 stop bits
3 parity
4 parity
5 baud rate
6 baud rate
7 baud rate
word length 10 7 bits
11 8 bits
stop bits 0 1 stop bit
1 2 stop bits
parity 00 none
01 odd
11 even
baud rate 000 110 baud
001 150 baud
010 300 baud
011 600 baud
100 1200 baud
101 2400 baud
110 4800 baud
111 9600 baud (4800 on PCjr)
DX port number (0=COM1, 1=COM2, etc.)
return AH line status
AL modem status
note To initialize the serial port to > 9600 baud on PS/2 machines, see
fns 04h and 05h.


Function 01h Send Character in AL to Comm Port
entry AH 01h
AL character
DX port number (0 - 3)
return AH RS232 status code
bit 0 data ready
1 overrun error
2 parity error
3 framing error
4 break detected
5 transmission buffer register empty
6 transmission shift register empty
7 timeout
AL modem status
bit
0 delta clear-to-send
1 delta data-set-ready
2 trailing edge ring detected
3 change, receive line signal detected
4 clear-to-send
5 data-set-ready
6 ring received
7 receive line signal detected


Function 02h Wait For A Character From Comm Port DX
entry AH 02h
DX port number (0-3)
return AL character received
AH error code (see above)(00h for no error)


Function 03h Fetch the Status of Comm Port DX (0 or 1)
entry AH 03h
DX port (0-3)
return AH set bits (01h) indicate comm-line status
bit 7 timeout
bit 6 empty transmit shift register
bit 5 empty transmit holding register
bit 4 break detected ("long-space")
bit 3 framing error
bit 2 parity error
bit 1 overrun error
bit 0 data ready
AL set bits indicate modem status
bit 7 received line signal detect
bit 6 ring indicator
bit 5 data set ready
bit 4 clear to send
bit 3 delta receive line signal detect
bit 2 trailing edge ring detector
bit 1 delta data set ready
bit 0 delta clear to send


Function 04h Extended Initialize (Convertible, PS/2)
entry AH 04h
AL break status
01h if break
00h if no break
BH parity
00h no parity
01h odd parity
02h even parity
03h stick parity odd
04h stick parity even
BL number of stop bits
00h one stop bit
01h 2 stop bits (1« if 5 bit word length)
CH word length
00h 5 bits
01h 6 bits
02h 7 bits
03h 8 bits
CL baud rate
00h 110
01h 150
02h 300
03h 600
04h 1200
05h 2400
06h 4800
07h 9600
08h 19200
DX comm port (0-3)
return AH line control status
AL modem status
note Provides a superset of fn 00h capabilities for PS/2 machines.


Function 05h Extended Communication Port Control (Convertible, PS/2)
entry AH 05h
AL 00h read modem control register
01h write modem control register
BL modem control register
bits 0 DTR data terminal ready
1 RTS request to send
2 out1
3 out2
4 loop
5,6,7 reserved
DX port number (0=COM1, 1=COM2, etc.)
return AH port status (see 00h above)
AL modem status (see 00h above)
BL modem control register (see 01h above)



FOSSIL Drivers ...............................................................

Interrupt 14h FOSSIL (Fido/Opus/Seadog Standard Interface Level) drivers
A FOSSIL is a device driver for handling the IBM PC serial
communications ports in a standard fashion from an application
(communications) program. A FOSSIL chains into the int 14h BIOS
communications vector and replaces many functions with enhanced
routines that may be easily accessed by an application.

For all functions, all registers not specifically containing a
function return value must be preserved across the call.


entry AH 00h Set baud rate and parameters
AL byte
bits 7,6,5 baudrate
000 19200 baud
001 38400 baud
010 300 baud
011 600 baud
100 1200 baud
101 2400 baud
110 4800 baud
111 9600 baud
bits 4,3 parity
00 none
01 odd
10 none
11 even
bit 2 stop bits
0 1 stop bit
1 2 stop bits
bit 1 char length
0 5 bits plus value
other optional
DX port number (NOP if DX=00FFh)
return AX status (see fn 03h)
note Low-order 5 bits are undefined by FOSSIL 1.0 spec.


entry AH 01h Transmit character with wait
AL ASCII value of character to be sent
DX port number (NOP if DX=00FFh)
return AX status bits (see function 03h)
note 1) Character is queued for transmission. If there is room in the
transmitter buffer when this call is made, the character will be stored
and control returned to caller. If the buffer is full, the driver will
wait for room. Use this function with caution when flow control is
enabled.


entry AH 02h FOSSIL: Receive a character with wait
DX port number (0-3) (NOP if DX=00FFh)
return AH RS-232 status code (see AH=00h above)
AL ASCII value of character received from serial port
note Will timeout if DSR is not asserted, even if function 03h returns
data ready.


entry AH 03h FOSSIL: Request status
DX port number (NOP if DX=00FFh)
return AX status bit mask
AH bit 0 set RDA input data is available in buffer
1 set OVRN input buffer overrun
2 N/A
3 N/A
4 N/A
5 set THRE room is available in output buffer
6 set TSRE output buffer is empty
7 N/A
AL bit 0 N/A
1 N/A
2 N/A
3 set this bit is always set
4 N/A
5 N/A
6 N/A
7 set DCD carrier detect
note Bit 3 of AL is always returned set to enable programs to use it as a
carrier detect bit on hardwired (null modem) links.


entry AH 04h Initialize FOSSIL driver
BX 4F50h (optional)
DX port number (DX=00FFh special)
ES:CX pointer to ^C flag address (optional)
return AX 1954h if successful
BL maximum function number supported (excluding 7Eh-0BFh)
BH revision of FOSSIL supported
note 1) DTR is raised when FOSSIL inits.
2) Existing baudrate is preserved.
3) If BX contains 4F50h, the address specified in ES:CX is that of a ^C
flag byte in the application program, to be incremented when ^C is
detected in the keyboard service routines. This is an optional service
and only need be supported on machines where the keyboard service can't
(or won't) perform an int 1Bh or int 23h when a control-C is entered.


entry AH 05h Deinitialize FOSSIL driver
DX port number (DX=00FFh special)
return none
note 1) DTR is not affected.
2) Disengages driver from comm port. Should be done when operations on the
port are complete.
3) If DX=00FFh, the initialization that was performed when FOSSIL function
04h with DX=00FFh should be undone.


entry AH 06h FOSSIL: Raise/lower DTR
AL DTR state to be set
00h lower DTR
01h raise DTR
DX comm port (NOP if DX=00FFh)
return none


entry AH 07h FOSSIL: Return timer tick parameters
return AH ticks per second on interrupt number shown in AL
AL timer tick interrupt number (not vector!)
DX milliseconds per tick (approximate)


entry AH 08h FOSSIL: Flush output buffer
DX port number (NOP if DX=00FFh)
return none
note Waits until all output is done.


entry AH 09h FOSSIL: Purge output buffer
DX port number (NOP if DX=00FFh)
return none
note Returns to caller immediately.


entry AH 0Ah FOSSIL: Purge input buffer
DX port number (NOP if DX=00FFh)
return none
note 1) If any flow control restraint has been employed (dropping RTS or
transmitting XOFF) the port will be "released" by doing the reverse,
raising RTS or sending XON.
2) Returns to caller immediately.


entry AH 0Bh FOSSIL: Transmit no wait
AL ASCII character value to be sent
DX port number (NOP if DX=00FFh)
return AX 0000h character not accepted
0001h character accepted
note This is exactly the same as the "regular" transmit call except that if
there is no space available in the output buffer a value of zero is
returned in AX, if room is available a value 1 (one) is returned.


entry AH 0Ch FOSSIL: Nondestructive Read no Wait
DX port number (NOP if DX=00FFh)
return AH character
0FFFFh character not available
note 1) Reads async buffer.
2) Does not remove keycode from buffer.


entry AH 0Dh FOSSIL: Keyboard read no wait
return AX IBM keyboard scan code or
0FFFFh if no keyboard character available
note 1) Use IBM-style function key mapping in the high order byte.
2) Scan codes for non function keys are not specifically required but may
be included.
3) Does not remove keycode from buffer.


entry AH 0Eh FOSSIL: Keyboard input with wait
return AX IBM keyboard scan code
note Returns the next character from the keyboard or waits if no character
is available.


entry AH 0Fh Enable or Disable flow control
AL bit mask describing requested flow control
bits 0 XON/XOFF on transmit (watch for XOFF while sending)
1 CTS/RTS (CTS on transmit/RTS on receive)
2 reserved
3 XON/XOFF on receive (send XOFF when buffer near full)
4-7 not used, FOSSIL spec calls for setting to 1
DX port number (NOP if DX=00FFh)
return none
note 1) Bit 2 is reserved for DSR/DTR, but is not currently supported in any
implementation.
2) TRANSMIT flow control allows the other end to restrain the transmitter
when you are overrunning it. RECEIVE flow control tells the FOSSIL to
attempt to do just that if it is being overwhelmed.
3) Enabling transmit Xon/Xoff will cause the FOSSIL to stop transmitting
upon receiving an Xoff. The FOSSIL will resume transmitting when an Xon
is received.
4) Enabling CTS/RTS will cause the FOSSIL to cease transmitting when CTS
is lowered. Transmission will resume when CTS is raised. The FOSSIL
will drop RTS when the receive buffer reaches a predetermined
percentage full. The FOSSIL will raise RTS when the receive buffer
empties below the predetermined percentage full. The point(s) at which
this occurs is left to the individual FOSSIL implementor.
5) Enabling receive Xon/Xoff will cause the FOSSIL to send a Xoff when the
receive buffer reaches a pre-determined percentage full. An Xon will be
sent when the receive buffer empties below the predetermined percentage
full. The point(s) at which this occurs is left to the individual
FOSSIL implementor.
6) Applications using this function should set all bits ON in the high
nibble of AL as well. There is a compatible (but not identical) FOSSIL
driver implementation that uses the high nibble as a control mask. If
your application sets the high nibble to all ones, it will always work,
regardless of the method used by any given driver.



entry AH 10h Extended Ctrl-C/Ctrl-K checking and transmit on/off
AL flags bit mask byte (bit set if activated)
bits 0 enable/disable Ctrl-C/Ctrl-K checking
1 disable/enable the transmitter
2-7 not used
DX port number (NOP if DX=00FFh)
return AX status byte
0000h control-C/K has not been received
0001h control-C/K has been received
note This is used primarily for programs that can't trust XON/XOFF at FOSSIL
level (such as BBS software).


entry AH 11h FOSSIL: Set current cursor location.
DH row (line) 0-24
DL column 0-79
return none
note 1) This function looks exactly like the int 10h, fn 02h on the IBM PC.
The cursor location is passed in DX: row in DH and column in DL. This
function treats the screen as a coordinate system whose origin (0,0) is
the upper left hand corner of the screen.
2) Row and column start at 0.


entry AH 12h FOSSIL: Read current cursor location.
return DH row (line)
DL column
note 1) Looks exactly like int 10h/fn 03h in the IBM PC BIOS. The current
cursor location (same coordinate system as function 16h) is passed back
in DX.
2) Row and column start at 0.


entry AH 13h FOSSIL: Single character ANSI write to screen.
AL value of character to display
return none
note This call might not be reentrant since ANSI processing may be through
DOS.


entry AH 14h FOSSIL: Enable or disable watchdog processing
AL 00h to disable watchdog
01h to enable watchdog
DX port number (NOP if DX=00FFh)
return none
note 1) This call will cause the FOSSIL to reboot the system if Carrier Detect
for the specified port drops while watchdog is turned on.
2) The port need not be active for this function to work.


entry AH 15h Write character to screen using BIOS support routines
AL ASCII code of character to display
return none
note 1) This function is reentrant.
2) ANSI processing may not be assumed.


entry AH 16h Insert or Delete a function from the timer tick chain
AL 00h to delete a function
01h to add a function
ES:DX address of function
return AX 0000h successful
0FFFFh unsuccessful


entry AH 17h FOSSIL: Reboot system
AL boot type
00h cold boot
01h warm boot
return none


entry AH 18h FOSSIL: Read block
CX maximum number of characters to transfer
DX port number (NOP if DX=00FFh)
ES:DI pointer to user buffer
return AX number of characters transferred
note 1) This function does not wait for more characters to become available if
the value in CX exceeds the number of characters currently stored.
2) ES:DI are left unchanged by the call; the count of bytes actually
transferred will be returned in AX.


entry AH 19h FOSSIL: Write block
CX maximum number of characters to transfer
DX port number (NOP if DX=00FFh)
ES:DI pointer to user buffer
return AX number of characters transfered
note ES and DI are not modified by this call.


entry AH 1Ah FOSSIL: Break signal begin or end
AL 00h stop sending 'break'
01h start sending 'break'
DX port number (NOP if DX=00FFh)
return none
note 1) Resets all transmit flow control restraints such as an XOFF received
from remote.
2) Init (fn 04h) or UnInit (fn 05h) will stop an in-progress break.
3) The application must determine the "length" of the break.


entry AH 1Bh FOSSIL: Return information about the driver
CX size of user buffer in bytes
DX port number (if DX=00FFh, port data will not be valid)
ES:DI pointer to user buffer
return AX number of characters transferred
ES:DI user buffer structure:
00h word size of structure in bytes
02h byte FOSSIL driver version
03h byte revision level of this specific driver
04h dword FAR pointer to ASCII ID string
08h word size of the input buffer in bytes
0Ah word number of bytes in input buffer
0Ch word size of the output buffer in bytes
0Eh word number of bytes in output buffer
10h byte width of screen in characters
11h byte screen height in characters
12h byte actual baud rate, computer to modem
(see mask in function 00h
note 1) The baud rate byte contains the bits that fn 00h would use to set the
port to that speed.
2) The fields related to a particular port (buffer size, space left in the
buffer, baud rate) will be undefined if port=0FFh or an invalid port is
contained in DX.
3) Additional information will always be passed after these, so that the
fields will never change with FOSSIL revision changes.


entry AH 7Eh FOSSIL: Install an external application function
AL code assigned to external application
ES:DX pointer to entry point
return AX 1954h FOSSIL driver present
not 1954h FOSSIL driver not present
BH 00h failed
01h successful
BL code assigned to application (same as input AL)
note 1) Application codes 80h-0BFh are supported. Codes 80h-83h are reserved.
2) An error code of BH=00h with AX=1954h should mean that another external
application has already been installed with the code specified in AL.
3) Applications are entered via a FAR call and should make a FAR return.


entry AH 7Fh FOSSIL: Remove an external application function
AL code assigned to external application
ES:DX pointer to entry point
return AX 1954h
BH 00h failed
01h successful
BL code assigned to application (same as input AL)

------------------------------

Well, that's REAL simple, huh?

-------------------------------------------------------------------------------
| |
-------------------------------------------------------------------------------
| |
-------------------------------------------------------------------------------



PCBOARD BBS's
-------------
PCBOARD BBS's still sometimes lock-up for a few seconds; they occasionally
still disconnect me. If you get disconnected, immediately type ATS86?
The result code will tell you what happened to your connection. See page
54 of the Boca Manual for the result code definitions. Most likely the code
will tell you that the problem was on the remote modem's end by showing a
004 "Physical Loss of Carrier" result code. If the result code is 000 from
a mystery disconnect then it means the modem has no idea of what happened.
** UNDERSTAND THIS: There is something strange that PCBoard Software does
that we have no control over. You will notice when connected to a PCBoard
that it will just stop running (lock-up) for a few seconds then start again.


PROCOMM PLUS FOR WINDOWS
------------------------
In the midst of writing this file, I just installed ProComm Plus For Windows
(Version 1.01) onto my hard drive. I am VERY impressed with what I have seen
so far! As a generalized test I downloaded a 240K file using the ProComm Plus
ZModem and I did NOT encounter any of the problems that I had in Windows using
Telix as a DOS Shell Application.

Next I switched to a different Window while downloading and it acted perfectly.
Windows performed normally, as if Procomm Plus was not even downloading. The
quick response time of the CPU was VERY surprising. There were other noticable
improvements. The mouse was not intermittant and jerky as it was with Telix
when I was downloading at high speed.

My average CPS for the download was about 1640 - not too shabby for being in
MS Window's environment.


------------------------------

IMPORTANT: During Installation let Procomm Plus have control of the INT 14h.

IMPORTANT: Use the same EXACT Modem Profile AND INIT String for ProComm PLus
that I denoted above for Telix. Procomm Plus tries to change the
Profile on Install. After Procomm has been installed, boot it,
check it, change it, then use the AT&W command to save what you
done.
Also DO NOT FORGET to change the INIT String inside of Procomm Plus
to the same INIT String that I depicted above.

IMPORTANT: If you have Procomm Plus For Windows Version 1.00 - get the 1.01
Upgrade installed before you try setting modem parameters.

I could go on about some FANTASTIC features included in Procomm Plus For
Windows, but this file is about Boca 14,400Kbps Fax Modems, not Procomm Plus.
I will simply say that it takes up about 5 Megs of Hard Drive space, but it
is worth every Meg!

-------------------------------------------------------------------------------

CONCLUSIONS:
------------
If you want your terminal inside of Windows then use Procomm Plus For Windows
AND my Init String AND Profile Settings.

If you want your terminal to run in a DOS environment then use Telix AND my
my Init String AND Profile Settings. (You may also adapt the Profile and Init
string to any other DOS Terminal program.)


Owning a Boca 14,400Kbps Fax/Modem can be a joy rather than a headache.

-------------------------------------------------------------------------------

I have done a lot with the Boca Fax/Modem to adapt it to a PC compatible
environment that I am happy with. It is not perfect, but it is now much
better than anything that I have read in the owner's manual or any other
file concerning Boca Fax/Modems.

I am not done experimenting - as each idiosyncrasy arrises, I will adjust
my parameters to correct it. If I have any other major changes, and after
I do my homework on fossil drivers, I will update and redistribute this file.

This file name is B144-MJ1. Look for B144-MJ2 or higher - these will be the
revision names.

-------------------------------------------------------------------------------

< E.O.F. Date: 11/17/92 - Time: 20:33:50 >


  3 Responses to “Category : Tutorials + Patches
Archive   : B144-MJ1.ZIP
Filename : B144-MJ1.DAT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/