Back Home
The Dead Letter Drop
aka Jonathan Hudson's Home Page
Last modified: Sun Jun 24 20:03:29 BST 2001
Perl article
The article here was first
published in Quanta Jan'99. It describes the perl 4 port for QDOS.
Linux and uqlx support packages are now in the Linux Page
-
The project to provide an industry standard TCP/IP
socket library based on Jonathan Dent's SOQL TCP/IP
stack is hosted on sourceforge.net
The current package provides an very alpha socket library,
qlmailer, an SMTP mailer and qpop3, a Pointer Environment
POP3 program. The software on sourceforge.net
provides basic internet access for native QDOS
systems.
-
sox and other sound utilities (492K,
05/01/00). Sound conversion utilities for QDOS. Source,
documentation, binaries. 12.16q0 implements sox 12.16, gsm
1.0-pl10, and a later vcnvt plus some better examples.
-
sound toy (40K, v0.06,
27/01/00). Sound playing utility. Plays all sox supported
sound formats (requires sox).
This article about the Q40 sound system
and sox/soundtoy was first published in Quanta March 2000.
-
qpop3 PE/POP3 client (100K,
20/09/99). Pointer Environment POP3 internet email.
Source, documentation, binary. Now part of
the qdos-inet project.
-
perl4qdos (c.1Mb,
07/12/98) perl 4.036 for qdos (at last). Binary, source,
documentation, test suite, examples etc. 12/10/98 release
fixes broken 4 argument select(). 22/10/98 release add GDBM
database support. See gdbm173.zip for
the QDOS GDBM release.
The 07/11/98 release adds syscall(), providing an interface
to QDOS traps, including most screen I/O and graphics
calls. 14/11/98 (18:00 really) fixes the QL file system
bugs. 07/12/98, supports command line wild card expansion.
And 17/01/99, added the missing lib/qdos.pl.
Useful example Perl Scripts
for QDOS can be found here. So far there are examples for
exploring the file system, printing from QFAX, formatting
HTML, using databases and TCP/IP examples. Last updated
14/11/98.
-
GNU indent 2.2.0 (250K,
11/08/99). GNU indent. Formatting tool for C
programmers. Source, documentation, binary.
-
Pilot-xfer (1.2Mb, 01/03/99)
Comprehensive set of tools to connect the Palm Pilot
PDA (all models) to SMS/QDOS systems. Archive contains
executables, documentation and GPL'd source code. You can
backup and restore your Palm, install new programs and
data, transfer data (memos, expenses, addresses etc).
-
catdoc (200Kb, 02/11/98) catdoc
converts MS Word documents (inc Word 97) to text. Archive
contains executable, source and documentation. Ported from
unix catdoc program of Victor Wagner.
-
wxqt2 0.09 (110Kb,
source and documentation, 15/10/00) a graphical front end
for qltools 2.14 and qxltool 1.14. Provides a graphical
environment to accessing QDOS formatted media under Unix or MS
Windows.
This program uses the
wxwindows C++ class libraries to build binaries for both
Unix/X and Microsoft Windows from the same source code
(neat). Included all source, documentation and binaries
(WIN32). The Windows version is built with the excellent
mingw32 (gcc/g++ for Windows). The picture shows the
program in use (Unix, Windows interface is the same).
Selected files can be copied using the left/right arrow. A
popup menu offers options to view, delete, mkdir, format,
disk info etc. You can view the
documentation on line here.
For the benefit of Unix users, the Microsoft tax has been
removed, and the source and
documentation archive no longer contains a Win32 binary.
For the benefit of Microsoft Windows users, a Win32 binary (90Kb) and required DLL (1.2Mb) are
provided. The binary is known to work on W95OSR2 and NT 4.0
SP6a. Please don't bother me if it doesn't work for you. You
will need the source archive for the documentation. If you
don't have bzip2 for Windows, then go to this site to be
able to unpack the .bz2 files. If you then can't use wxqt2
because you downloaded it with some broken browser on an
incompetent operating system, then that's your problem too
--- please don't bother me about it. wxqt2 is only
supported on Unix operating systems.
-
qlsocket 1.05 (97Kb, 14/08/98) c68
socket library. Provides full BSD socket library
functionality for use with UQLX - TCP/IP. Most Unix TCP/IP
programs will require NO source code changes for IP
functionality. v1.01 adds support for AF_UNIX domain sockets
(requires contemporary uqlx). v1.05 provides integration with
c68 libc.a v4.24
-
qlftp 0.03 (105Kb, 14/08/98) ftp client for
QDOS. Provides full internet ftp capability including 'reget'
and .netrc for uqlx users only. 0.02 fixes .netrc access.
-
QDOS email (103Kb, 14/08/98) Provides
internet email capability (using SMTP to send and POP3 to
receive) for uqlx users.
-
qlynx.zip (2.4Mb, 03/03/00)
SMS/QDOS Port of the Lynx v2.8.2 WWW browser. Provides full
internet/WWW access under uqlx. Can convert HTML to
ASCII. This version requires Gold Card or better (preferably
uqlx). Binary, source, documentation.
-
qxltool 1.14
(150Kb, 30/09/00) Read and write, delete, initialise, format,
mkdir etc QXL.WIN files, copy files to / from QXL.WIN and
Unix, Win95, NT, or even QDOS (on MC680xx).
v1.13 or
later required for wxqt2.
"Honestly, it seems to me one of the most useful
utilities for the Q(X)L/QPC ever done"- a beta
tester.
-
Mtools v3.8-A QL (500Kb,
19/04/98) Read, write, format, rename etc files on MSDOS
disks. Supports DD, HD, and possibly ED. Supports vfat
(long file names), sub-directories etc. Binary, source,
substantial documentation. Issue A fixes a bug reading
terminal input when removing a disk label.
-
QTPI v1.69 (440Kb, 11/11/99)
Consolidates experimental 162x releases. Includes copious
documentation and all XPR protocols. Resize via escape
sequence works now! 1.65 fixes "-i" serial read bug. 1.66
removes the dependency on the signal
extensions 0.3 (40kb). 1.67 fixes a very minor bug parsing
external script names. If you haven't noticed, don't bother
upgrading. 1.68 displays > 9999Kb free memory correctly. Oh
what a past age where this might be an issue! v1.69 is a
documentation update.
An ASCIII text version of the manual is available here
-
QFAX 2.89, Updated QFAX release (700Kb,
25/06/99) Internal improvements, Y2K fixes. Consolidates
all minor releases since 2.80, full documentation (2.83) etc.
Fixes qfax MDM[12], adds user definable print filters.
An ASCII text version of the manual is available here
-
Ghostscript 6.0 SMS/QDOS (3.5Mb,
24/06/01) Aladdin gs 6.0, probably requires a fairly
modern system. Archive includes QDOS binary, source,
documentation, startup files etc etc. If you haven't got
them, you can find tar and bzip2 on ( Thierry
Godefroy's site). This is the second release and adds
drivers for st800 and stcolor devices.
Fonts are also available in the GNU GS font
distribution. If the link's broken, go the the GNU WWW site or FTP sites and look there, for
both gs source and fonts.
Also, Angus Duggan's psutils are
here too!
-
qfm 0.08 (c.55Kb, 03/01/00) Menu driven front end for qfax and
lfax. Binary, source and documentation. Requires
menu_rext and hot_rext. 0.05 Includes workarounds for SMSQ/E
mis-features, fixes the 'seletion key' bug and adds a
"faxprint" example for a more friendly fax print function.
0.08 linked with contemporaneous qmenu. Works on Q40.

-
bruz beta 0.02 (c.300Kb, 25/12/97) HDD
backup and restore with compression, disk spanning
etc. Binary, source and documentation. Uses industry standard
tools (tar and compress or gzip), so bruz archives are
portable across platforms. 0.02 adds more error checking to
protect those who don't / can't / won't RTFM.
-
qascade v1.13 (52Kb, 01/05/98) User
defined menus on the desktop. More cosmetic changes. v1.11 can
have specific config files on the command line
(wow). Documentation update. v1.13 allows single key selection
(like qpac2). Documentation updated (no code changed) 13/03/99.

Now with cute free menu bar clock/freememory
thingy. v1.12+ adds actions to mouse clicks on the
clock. Can it get more bore^H^H^H^Hstunning ? 
-
zflate.zip (32Kb, 01/04/98) zlib
Examples and standalone compress/decompress programs (beta
testers wanted). v0.3, updated documentation (yet again).
-
qmenu.zip (75Kb, 01/01/00) QMENU
(menu_rext) library for c68 (Christopher Cave and Jonathan
Hudson). Lots of examples, documentation, source
etc. Incorporates many bug fixes from Thierry Godefroy, plus
some bugfixes to the bugfixes :-). And yet more (17/12/99)
bugfixes. Any volunteers to make to it work on Q40?
v1.05 of 01/01/00 tidies up some more (TG), and is
anticipated to work on the Q40. Also added a (TG) noqmac
source directory (no binary changes, version unchanged).
And 03/01/00, TG reminds me to include the .a file in the
archive!
-
env.zip (16Kb, 09/11/97) 1.07 release of c68
environment variables (for those who have failed to find it anywhere
else). Binary, source, documentation, etc (Dave Walker et al).
-
qvmB011.zip (249Kb, 30/03/99) Voice
mail beta. Y2K fixes.
-
qlynx237a.zip (220Kb, 17/08/97) SMS/QDOS Port of the
Lynx v2.3.7 WWW browser. As there was no suitable socket
library, this can only browse local files. Can convert HTML to
ASCII. This version will run on Trump Card QLs. Only it's no
longer here ! ( try Thierry
Godefroy's site).
-
unpic006.zip (226Kb, 09/08/97)
Tools to convert _scn and _pic graphics to PNG, PS, GIF,
TIFF, BMP or PCX formats. Also provides binaries of libz and
libpng. Now with a s(l)ick graphical interface.
-
libpng-0.96 PNG (Portable Network
Graphics) library. Binary (.a), source, SMS/QDOS Makefile,
included with unpic006.zip.
-
zlib-1.0.4ZLIB library. Binary
(.a), source and SMS/QDOS Makefile. Provides a callable
interface to the compression/decompression routines used in
InfoZIP and gzip (and PNG), included with unpic006.zip.
-
GIF2PS rel 2 (28Kb,
19/07/97). Fixed version (no longer fails on large GIFs
following c68 fixes).
-
Winexplore.zip, v2 c68 demo to
explore window events (13Kb, 13/02/97), source code and
wm_rptrt (read pointer with timeout) code. Modified for
correct timeout handling in action routine.
-
Qeyes ... xeyes clone for SMS/QDOS
(26 Kb, 03/02/97) Desktop amusement, requires pointer
environment. Eyes follow mouse pointer. Binary, documentation
and c68 source. With Phil Borman's mascara enhancements. As
featured on the QL Today cover disk.
"Perfectly.... nice this one.... finally you are starting
to produce serious software :-))" - a beta tester.
-
MIME
Tools (439 Kb, 01/01/97) Binary, docs, source. Metamail,
mailto, splitmail, mmencode et al.
-
PGP
2.62i for QDOS Binaries, full documentation and
source. (679Kb, 16/11/96).
-
qltools v2.14 -
SMS/QDOS disk reader/writer for Unix,Windows NT &
95,OS2,DOS,VMS is available for all supported platforms
(and as source code). v2.14 is the wxqt2
release.
-
unpic for Windows NT,95 MSDOS or OS/2
(Binary & Docs). Convert SMS/QDOS PIC format to
portable graphics on a Windows/DOS/OS2 PC. Unix binaries (as
well as NT,95,OS2,DOS, QDOS) binaries) may be built from the
source distribution.
-
gdbm 1.73 (c.200Kb, 22/10/98) The GNU database manager. GNU dbm is a
library of routines that manages data files that contain
key/data pairs. The access provided is that of storing,
retrieval, and deletion by key and a non- sorted traversal of
all keys. Source, documentation, c68 library, examples in perl
and 'C'.
-
nroff (c.110Kb, 22/10/98) nroff port
for QDOS. Converts Unix man pages and other nroff format files
to text. Includes man and ms macro packages.
-
Cview v2.6 (c.110Kb, 22/10/98)
Y2K fixes.
-
CSM 1.22 (c.110Kb, ancient)
Client server manager. Interprocess comms made easy. By
popular demand.
-
GetStuffed (c.3kb, ancient)
Retrieve contents of the 'stuffer buffer' (BASIC extension).
By popular demand.
Text manuals
Had a fax recently (September 1998) from a Mr R. G. Wall to say he
couldn't get a QFAX text file from the HTML using QDOS lynx
-dump. How sad ... html to text works fine on (all the usual
suspects, Windows, Unix, VMS, AmigaOS etc).
Anyway, just in case you don't have access to a one of these
capable operating system, here's the text manuals for QFAX and QTPI
Alternatively, just download the wonderful perl for qdos and use this simple 14 line perl script. Wow, isn't it
wonderful having a real scripting language at last!
Then:
ex perl;'html2txt.pl <qtpi.html >qtpi.txt'
For at least an approximate translation.
GPL'ed QDOS source code is available for qtpi, qfax xpr-qdos and qvm.
The qfax source is now at v2.89, which should compile on non-intel
(big endian) Linux systems (e.g. Q40).
Other SMS/QDOS software can be found at
ftp.demon.co.uk:/pub/qdos and
ftp.nvg.unit.no:/pub/sinclair/ql.
Free and portable archiving tools (unzip 5.41 and zip 2.3). Full
source code for numerous operating systems (including SMS/QDOS)
from the Info-ZIP Home
Site . The encrypting version of zip is available from the Info-ZIP Encryption Home
Site. Unzip for SMS/QDOS is here as a self extracting (SFX)
archive.
QDOS binary Info-ZIP Downloads:
If you have an existing version of unzip (or pkunzip, WinZip),
then you can extract the archive using that software. Otherwise,
LRESPR the SFX.
LRESPR unzip541xQ.bin
And following the on screen directions.
Alternately, the following perl script will unpack the archive.
#!/usr/contrib/bin/perl -w
# force perl4, alas
$fn = shift || die "unsfo filename [temp_dir [out_dir]]";
$wdir = shift;
$odir = shift;
if(!$wdir)
{
print "Scratch Directory ? ";
chop ($wdir = <>);
$wdir .= '_' unless $wdir =~ /_$/;
}
if(!$odir)
{
print "Target Directory ? ";
chop ($odir = <>);
$odir .= '_' unless $odir =~ /_$/;
}
open(F,$fn) || die "Can't open ",$fn.' '.$!;
print "opened archive\n";
$buf = '' x 1024;
while ((read(F, $buf,2)))
{
if (unpack("n",$buf) == 0x4afb)
{
last if (read(F, $buf,2), unpack("n",$buf) == 0x4afb);
}
}
$base = tell(F) - 4;
if(read(F,$buf,20))
{
print "Found signature\n";
($offset,$sfxlen,$sfxdsiz,$sfxnam,$ziplen) = unpack("NNNNN",$buf);
$dnam = $wdir."sfx.dat";
$enam = $wdir."sfx.exe";
print "writing extractor program\n";
open(E,">".$enam) || die "Can't open sfx.exe $!";
seek(F,$base+$offset,0);
$buf = '' x $sfxlen;
read(F,$buf,$sfxlen);
substr($buf,$sfxnam,length($dnam)+1) = $dnam."\0";
print E $buf;
$hdr = pack("NccNN",$sfxlen,0,1,$sfxdsiz,0);
$res = syscall(3,0x46,0,0,-1,fileno(E),$hdr);
close E;
print "writing compressed data\n";
open (E,">".$dnam);
$buf = '' x $ziplen;
read(F,$buf,$ziplen);
print E $buf;
close E;
if(!$res)
{
print "uncompressing files\n";
system $enam." -d ".$odir;
unlink $dnam;
unlink $enam;
}
}
else
{
warn "Doesn't look like a QDOS archive to me\n";
}
And here's the perl that processed the previous 5.32 sfx file.
#!/usr/contrib/bin/perl -w
sub setqhead
{
local($f) = shift;
local($magic,$dspc,$res);
$res = -1;
open(F,$f) || die "Can't open your file $f ".$!;
seek(F,-8,2);
read(F,$buf,8);
($magic,$dspc) = unpack("a4N",$buf);
if($magic eq "XTcc")
{
$hdr = pack("NccNN",tell(F),0,1,$dspc,0);
$res = syscall(3,0x46,0,0,-1,fileno(F),$hdr);
}
else
{
die "Bad magic\n";
}
close F;
$res;
}
$fn = shift || "ram2_unz532xQ.exe";
system ($fn) unless &setqhead($fn);
The above setqhead function may be used to set the QDOS
file header for any xtc68 compiled program.
SMS and QDOS are operating systems for 680xx based computers,
originally (popularised ?) by the Sinclair QL. Modern,
debugged, compatible operating systems, supporting more recent,
reliable hardware include SMS/2, SMSQ/E and Minerva.
-
Thierry
Godefroy's home page List of BBSs, WWWs, FTPs, QLCF
BBS. c68 and vast amount of other free software for download.
This site is all you need to know!
-
TFS/QBBS (+44 1442-828255). You'll find out about any others
here too.
If you want to access the maus.computer.ql.intl newgroup,
which is (allegedly) gated to FIDONET INTL.QL BBS area, then
sign up for a free, posting allowed news account at news.cis.dfn.de. No Ads, no
spam, just the news.
Back Home