home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 1B
/
DATAFILE_PDCD1B.iso
/
_pocketbk
/
pocketbook
/
004
/
oplexamp_z
/
SERIAFAX.TXT
< prev
next >
Wrap
Text File
|
1994-06-21
|
2KB
|
65 lines
==========
psion/comms #470, from dw2, 2160 chars, Jun 20 20:33 94
----------
Running comms programs over 3Fax hardware
I've been asked more than once now what's required to get programs that
open the serial port (eg Comms programs) to work with the 3Fax hardware.
Often, if you try running these programs over the 3Fax hardware, you
just get a "Device does not exist" error. That arises because the
hardware of the 3Fax peripheral is different from that in the 3Link
peripheral.
In fact, before a program can talk down the 3Fax peripheral, a special
device driver, SYS$A550.PDD (or equivalent) needs to be loaded. The
FComms program that comes with the 3Fax software loads this driver
automatically before transferring control to the Comms.app in the S3a
rom.
If you want to do something similar with some alternative Comms program,
you can make use of the following Opl program (run this if you ever get
the "Failed to open comms port: Device does not exist" error):
PROC loada550:
local ax%,bx%,cx%,dx%,si%,di%,fl%
local nm$(30)
nm$="LOC::C:\IMG\SYS$A550.PDD"
bx%=addr(nm$)+1
ax%=$0700 rem for DevLoadPdd
fl%=os($85,addr(ax%))
ax%=ax% or $ff00
if (fl% and 1) and (ax% <> -32)
alert("Failed to load PDD",err$(ax%))
else
print "PDD loaded successfully"
get
endif
ENDP
After running this, try running your comms program again, and you should
find that it will now successfully open the comms port.
As mentioned, the problem is that the "physical device driver" with
filename SYS$A550.PDD has to be loaded before the serial port LDD
(logical device driver) is able to talk to the hardware in the 3Fax
unit. The above Opl code loads this PDD. If you watch your memory
monitor, you'll find that loading it ties up another 2k of system memory.
If you don't want to keep this device driver in memory afterwards, run
the following Opl program:
PROC dela550:
local dn$(8)
dn$="TTY.SRX"
call($0885,addr(dn$)+1,0,$dd21) rem DevDelete
ENDP
Note: the Fax app also loads the a550 PDD before ever talking to the
3Fax hardware. (In fact, it's the fax *process*, SYS$FAXP.IMG, that
does this.) But when it's finished, it unloads the PDD again.
Hope this helps.
Regards, DavidW