home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
ATUPDATE
/
ATUPDT01.MSA
/
SPRINT
/
SPRINT.DOC
< prev
next >
Wrap
Text File
|
2010-04-22
|
8KB
|
171 lines
Sprint V1.2
(c) Unicorn Publications 25-8-1993
By Kelvin Unsworth
There should be 4 files.
SPRINT.PRG Printer spooler
SPRINT.DOC This file
SPCFG.ACC Accessary to configure Sprint temporarily
SPCFG.PRG Configure Sprint Permanently
*********WARNING**********
Do not mix Sprint V1.1 files with Sprint V1.2 files as they will
not recognise each other correctly
**************************
Getting started.
If you want Sprint to load at boot up place SPRINT.PRG in your
AUTO folder else run it from the desktop when you need it. If you
run the program from a shell of some type you will fragment your
memory so run it from the desktop by double clicking on it. If you
think you might want to alter the configuration while running then
put SPCFG.ACC in your root directory. It is a good idea to have
this installed to start with until you have worked out the best
configuration for your system. SPCFG.PRG can be called at any time
from any place.
Brief overview.
Sprint is a configurable printer spooler. It is configurable in
three ways:-
Buffer size.
This can be from 2 bytes to 4 Giga bytes (alas the ST only allows
up to approximately 3.7 meg). The pre-configured size is 32K.
Batch size.
All the spoolers I have come across only send one byte per
interupt, thus the maximum through put is 50, 60 or 72 bytes per
second. If your printer can print faster than this then you are
holding your printer up. Sprint can be configured to send up to
1000 bytes per interupt. This works out at a maximum of 72,000
bytes per second. The centronics port of your printer probably
doesn't work this fast though. The pre-configured size is 32.
Time out.
This allows printing to the buffer even when the printer is off
line and maximises the performance when the printer has a buffer
of it's own. The pre-configured time is 4mS per interupt.
Clear.
This clears the buffer. ie. it clears out the spool buffer and
does not transmit what is left in there. This is for when the
printer throws a wobbly and you don't want to continue printing
what's left but would like to start again.
Off.
This will turn the spooler and faster through put off. This is
for the odd program clash. Programs with their own spoolers are
the biggest culprits.
More detail.
Sprint is only of use if the program you are running can produce
output faster than your printer can print (ignore the printers
buffer it may fill). The spool buffer may be any size you like so
you can tailor it to your system, it can only be configured by
SPCFG.PRG and not by SPCFG.ACC though. If you set a large buffer
and your program only produces output marginally faster than your
printer then you will use hardly any buffer and just waste
memory.
The first part of Sprint links into the vector for sending data
to the printer port and redirects it to the buffer instead. The
second part links into the VBI system and sends the data to the
printer 50 to 72 times a second.
This is where things get a bit complicated. Both halves are
running apparently at the same time, the first part fills the
buffer while the second empties it. When an interupt occurs the
second part gets a byte to send and then checks to see if the
printer is ready. If the printer is, it sends it and then get
another byte to send and so on until the batch size is reached or
the buffer is empty then returns from the interupt. If the printer
is NOT ready then if there wasn't a time out the computer would
just sit there waiting for the printer stopping all operations ie.
the application you are running. Also if the printer has a buffer
this would allow a through put of say 10,000 bytes a second but
once it filled this would drop to say 200 bytes a second. If the
batch size was set to 4 then the printer buffer would never be
used and you would have to increase the spool buffer to get the
same results. If the batch size was 200 the data would transfer
fast until the printer buffer filled and then stop ALL computer
activity until all 200 bytes were sent at say 200 bytes a second
(printer speed) and then return from the interupt for a maximum of
20 mS. Thus the activity you are trying to perform while printing
will have a maximum of 2% of the processor time (average 1%).
The Time out facility gets around this allowing the maximum
through put to the printer at all times and maximum processor time
for you. The second part only checks the printer to see if it is
ready for a limited time and if it is not then it abandons the
rest of that batch to be transmitted (the effective batch size is
dropped to the most efficient for the printer). With a setting of
4mS and the printer off line you get 80% of the processor time for
your application. When the spooler is not sending or receiving
data it takes about 0.05% of the processor time in checking the
buffer (accessories take about 1% each).
If you are to send graphics data then the printer can receive
this much faster. ie. an Epson 24pin receives ascii at 200 cps but
graphics at about 1400 bytes per second, thus a batch size of 4
will send text ok but will be very slow for graphics. A value of
28 would be better as the time out facility would compensate when
sending text if the printer buffer filled. If your printer has a
large buffer (mine has 71K) then a value higher than 28 may be of
benefit.
If you have Sprint set up with a batch of say 4 and you start to
print graphics then you can call the accessary and up the batch
size to say 30 even while you are printing. Leaving the entry in
the dialog empty will leave the setting as it is.
If when the printer buffer is full, the mouse is juddery, either
the set the batch size smaller or reduce the timeout (or both).
If this happens the second part of the program is holding the
interupt too long and preventing the mouse driver software from
operating all the time. The code has been written to minimise this
but it can still happen if the batch size is too large or timeout
too long.
IMPORTANT NOTES
If you use Fpprnt to speed up output to the printer you DON'T
need it with Sprint. Sprint also speeds up output. The TOS out put
code is very slow, I can't imagine how they managed to get it so
bad! The theoretical output of Sprint is not as high as Fpprnt due
to spooler overheads but the actual output is the same (if you are
configured correct). Fpprnt will stop all activity if the
printer is off line where as Sprint will continue and just save
the data. If you want Fpprnt installed all the time and Sprint
only once in a while, say if you are short of memory. Then run
Fpprnt as normal, when you run Sprint later it will grab the
vectors off Fpprnt thus disabling it. If you run Fpprnt after
Sprint it will grab the vectors off Sprint disabling it (although
the buffer will still empty it just won't fill!).
If there are any comment or problems you can contact me at:-
Unicorn Publications,
152,Palmerston Road,
South Stifford,
Grays,
Essex.
RM16-1YP
or as PI_RAT@CIX.compulink.co.uk