Скачать Wierd Stream Tricks 1.5 - Streams Support for TV

Скачать файл (68,42 Кб)

STREAMS - TP/BP/TPW unit to supplement TurboVision/ObjectWindows streams

Version 1.5. Copyright D.J. Murdoch (1992,1993).


"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.


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.


  • 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. - First release, missing LZW. Immediately replaced by
  2. - First correct release: TFilter, TEncryptFilter, TTextFilter, TLogFilter, TRAMStream, TNamedBufStream, TTempBufStream, TempStream, overlay procedures (my ideas), TLZWFilter (from code by Wilbert van Leijen)
  3. - TNulStream, TXMSStream added (from Stefan Boether)
    TBitFilter added (suggestion of Rene Seguin)
    TFilter.Done calls Flush
    TRAMStream.UseBuf and OwnMem added.
  4. - 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.
  5. - 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.
  6. - The first public release of the 1.4 enhancements.