STREAMS - TP/BP/TPW unit to supplement TurboVision/ObjectWindows streams
Version 1.5. Copyright D.J. Murdoch (1992,1993).
DESCRIPTION
"Wierd Stream Tricks" might be a good name for this unit. It
contains a miscellaneous collection of objects and procedures, all
on a theme of adding functionality to the streams in Borland's
Turbo Pascal libraries TurboVision and ObjectWindows.
Most of my testing has been in TP 6 and BP 7 real mode; the code
and demos also appear to work in BP 7 protected mode, and compile
under Windows, but use it with care in those "foreign"
environments.
LICENSE
This unit is *not* public domain code. You may use it for
non-profit purposes at no charge if credit is granted, but written
permission must be obtained from me for use of this unit in
commercial products.
A lot of the code in this unit is code that's been made freely
available by others, some of it under their copyright, other parts
public domain. As far as I know, all code included here may be
used non-commercially for free. See the list of credits at the end
for all the (known) authors.
This is the third release of the STREAMS unit. There are probably
still bugs; I would really appreciate reports of any, or other
suggestions for improvement. Please send either one to me at one
of the following addresses:
dmurdoch@mast.queensu.ca (Internet)
71631,122 (Compuserve)
DJ Murdoch at 1:249/99.5 (Fidonet)
D. J. Murdoch
337 Willingdon Ave.
Kingston, Ontario, Canada
K7L 4J3
FILES IN ARCHIVE
Streams.doc - this file
Streams.pas - main source file for unit
Lzwstrea.asm - source for LZW compression
StDefine.inc - a few conditional compiler defines
Xmsstrm.inc - source for XMS stream
Crc16.asm - source for 16 bit CRC
Crc32.asm - source for 32 bit CRC
Crcarc.asm - source for ARC-style 16 bit CRC
Lzwstrea.obj - assembled code for external linking
Crc16.obj - " " " " "
Crcarc.obj - " " " " "
Crc32.obj - " " " " "
Demo programs:
Encrypt.pas - encryption program, using TEncryptFilter
Compress.pas - file compressor, using TLZWFilter
Huffman.pas - defines a Huffman encoding filter, using TBitFilter
HuffComp.pas - file compressor using THuffmanFilter
Logdemo.pas - simple demo of TLogFilter
Ovrdemo.pas - simple demo of multiple overlay files
ovr1.pas - one overlaid unit
ovr2.pas - a second overlaid unit
Textdemo.pas - simple demo of TTextFilter
Release history and credits
1.0 - First release, missing LZW. Immediately replaced by
1.1 - First correct release: TFilter, TEncryptFilter, TTextFilter,
TLogFilter, TRAMStream, TNamedBufStream, TTempBufStream,
TempStream, overlay procedures (my ideas), TLZWFilter
(from code by Wilbert van Leijen)
1.2 - TNulStream, TXMSStream added (from Stefan Boether)
TBitFilter added (suggestion of Rene Seguin)
TFilter.Done calls Flush
TRAMStream.UseBuf and OwnMem added.
1.3 - TDupFilter, TSequential, TChksumFilter added (my ideas),
TCRC16Filter, TCRCARCFilter, TCRC32Filter and related procedures
added (from code by Edwin T. Floyd, Stephen Satchell, Chuck
Forsberg, Mark G. Mendel, R. P. Byrne, J. R. Louvau and
probably others); TFilter.Flush added; HUFFMAN demo added.
1.4 - Recoded several of the TRAMStream methods in assembler for
more speed; fixed numerous TTextFilter bugs and added
TTextFilter.AssignStream and TextDemo.pas; fixed
TXMSStream.Seek bug. Changed xms_Memavail and xms_Maxavail
to report in bytes, and added ems_Memavail and ems_Maxavail
(based on code sent to me by Eyal Doron) and disk_Memavail
and disk_Maxavail. Changed TXMSStream.Init to match
TEMSStream.Init. Added TConcatFilter, TLimitFilter,
TLoopFilter, TReverseFilter and TWorkStream. Added OwnsBase
field to TFilter. Did some testing to assure that the unit
works in BP 7 protected mode. Thanks to Max Maschein, Eyal
Doron, and others for bug fix help.
1.5 - The first public release of the 1.4 enhancements.
|