Component Pascal Collection

Helmut Zinn


By Dmitry V. Dagaev

Transparent Architecture - communication SW for distributed systems.

This software is purposed for communication between different programs, written in Oberon and C. It uses SRPS protocol type for LANs via UDP multicast, UDP, TCP, Shared Memory, PING for ICMP and SOAP/HTTP for WANs.

TA is distributed in BlackBox, XDS and C versions both for Windows and Linux compatible with each other at

Ta_ doesn't use any other CPC services.

StdCoded File <=> PacCoded File (641 / 283 kByte - Release 28-March-2014)


By Gérard Meunier

Multiplication tables training.

Have you forgotten your multiplication tables? Or, maybe, have you children? Try this program and adopt it! The program remembers your good and bad answers. It will ask you more often the questions you don't know. There exists a French version, an English and a German one in the same package. There is also a Make.odc file, which uses the new packing feature of the BlackBox 1.4 version, and generates a stand-alone exe file.

Tabmult doesn't use any other CPC services.

StdCoded File <=> PacCoded File (41 / 21 kByte - Release 23-Oct-2004)


By Helmut Zinn

Saving the Spotlight Images from Windows 10 Lock Screen.

On the Windows lock screen the pictures are automatically changing. It's called Windows Spotlight. This module saves the lock screen images in your own directory. You can use the result as desktop wallpaper and for slideshow.

TboxAnmeldebilder doesn't use any other CPC services.

StdCoded File <=> PacCoded File (15 / 7 kByte - Release 12-Jul-2017)


By Helmut Zinn

Birthday reminder.

Did you ever forget the birthday of your friend? Then you need this little program. When some friends have birthday today then it pops up during the start of Blackbox. Further you can generate a 30 days look ahead list.

TboxBirthday uses the services of Ctls.

StdCoded File <=> PacCoded File (77 / 34 kByte - Release 4-May-2022)


By Helmut Zinn

Writing books with BlackBox.

The module TboxBook expands the BlackBox text editor with some useful commands:

That's all you need for writing documents with table of contents and hyperlinks. It makes the life much easier.

TboxBook doesn't use any other CPC services.

StdCoded File <=> PacCoded File (37 / 15 kByte - Release 15-Mar-2019)


By Helmut Zinn

Generate a package list for StdCoded and PacCoded files.

This module generate the list of all source files of one subsystem automatically. You can select all items of this list and use the menu [Tools][Encode File List] to create a StdCoded file of your subsystem.

TboxCoderList uses the services of Ctls, CpcMenus and Pac.

StdCoded File <=> PacCoded File (22 / 11 kByte - Release 7-Oct-2019)


By Gérard Meunier

Binary compare file.

Are you interested by this little module? It asks for two files and tests their equality at a binary level. I use it to test whether Pac works well or not. As it is interesting in a general way, perhaps you'd like to use it.

TboxCompFile doesn't use any other CPC services.

StdCoded File <=> PacCoded File (8 / 4 kByte - Release 1-Apr-2004)


By Helmut Zinn

How many days are left until...?

This module will answer that questions into the Log window.

TboxCountDown doesn't use any other CPC services.

StdCoded File <=> PacCoded File (7 / 4 kByte - Release 6-Jun-2007)


By Helmut Zinn

Read and write hex dump.

This is an extension of Oberon Microsystems hex file importer. It optionally outputs the printable representation in columns or lines in addition to the hex codes. In its default configuration it behaves exactly like the original. The original importer is from the Bernhard Treutwein's More utilities for BlackBox. I add an hex file exporter too. You can save the modified hex-code.

TboxHexConv doesn't use any other CPC services.

StdCoded File <=> PacCoded File (17 / 8 kByte - Release 6-Jul-2001)


By Helmut Zinn

All picture files rename to increasing sequential numbers.

I organize my photo archive in the following way: I create one folder for every year. This folder containing a folder for each month. After downloading the picture (*.jpg) from the camera into one folder, I delete all bad ones and then I rename the other ones with this procedure. It is still possible to download new picture into the same folder and rename them with this procedure again.

TboxPhoto uses the services of Pac, Ctls, Dos, TboxTimer and Info.

StdCoded File <=> PacCoded File (16 / 8 kByte - Release 27-May-2008)


By Helmut Zinn

Tea Time Alarm Clock.

Do you have a bug in your program? Let's have a break. It's tea time now. Is there any tea left? Do you need another cup of tea? Certainly you need the tea time alarm clock. We say in Germany: to wait and see (abwarten und Tee trinken). I'm sure after that break you find your bug immediately.

TboxTeaTime uses the services of Pac, Ctls, Dos, Babel, Util and Media.

StdCoded File <=> PacCoded File (321 / 166 kByte - Release 27-Mar-2003)


By Helmut Zinn

Some Text Editing Commands.

This module extend BlackBox with some basic text editing facilities. What it does:

I wrote this commands during my work on CpcLanguage. I used them with subsystem Omi together for creating and sorting Rsrc/Strings documents.

TboxText doesn't use any other CPC services.

StdCoded File <=> PacCoded File (23 / 10 kByte - Release 12-Jul-2008)


By Helmut Zinn

Measure the runtime of one procedure/module.

You can measure the run time of any module and procedure:
e.g. (!) "TboxTimerStart; MySubsystem.MyCommand; TboxTimer.Stop"
The result is in the Log window.

TboxTimer doesn't use any other CPC services.

StdCoded File <=> PacCoded File (9 / 5 kByte - Release 26-Oct-2000)


By Helmut Zinn

Text Translation by Words.

This module expand the Find and Replace command with a translation table. You can

A existing translation table can also used in the reverse direction.

TboxTranslate uses the services of Pac, Ctls and Dos.

StdCoded File <=> PacCoded File (38 / 18 kByte - Release 12-Jul-2008)


By Juan Antonio Ortega

Add a toolbar to the BlackBox window.

Do you like toolbars? Do you miss toolbars inside BlackBox? Don't wait any longer. Download this subsystem. With this subsystem you can add a toolbar to the BlackBox Component Builder.

Toolbar doesn't use any other CPC services.

StdCoded File <=> PacCoded File (58 / 33 kByte - Release 26-Jan-2007)


By Gérard Meunier and Helmut Zinn

Turbo Pascal to Component Pascal Translator.

This software converts Turbo Pascal source program to Component Pascal (Oberon-2). All exported identifier collected into one symbol table. The symbol table is used for name translation.

It features:

We recommend to format the result with the CpcBeautifier.

Tp2cp uses the services of Babel and Util and optional the service of UnicodeMappings, Pac, Ctls and Dos.

StdCoded File <=> PacCoded File (132 / 53 kByte - Release 26-Jun-2021)


By Rainer Neubauer

Support for Technical Process Control.

Simple finite state machines (FSMs) are applied to implement complex process control algorithms, i.e. long running commands. Additional support is offered for handling of large configuration files, for saving of current process state and for serial communication (RS232 or TCP) to hardware devices (power supplies, measuring instruments, etc.) as well.

The overall concept is explained in an introductory text containing small worked examples. Additional examples have been implemented to play with and try out the supporting modules mentioned above.

TpcGenericFsms offers simple finite state machines for implementing process control algorithms, i.e. "long running commands". Support for debugging includes logging of state switching to StdLog, setting of break points at arbitrary states, single stepping from state to state and logging of state history.

TpcConfigDataControl offers a means for maintaining configuration files by technical stuff without having knowledge to the develop environment of BlackBox (e.g. "when and how to call the compiler"). The configuration data serve for parameterizing the technical process (e.g. hardware configuration).

TpcGenericStatusFiles supports in saving process status data to hard disk. In case of a computer crash followed by a reboot the technical process may be continued in the state like just before the interrupt.

TpcSerialDevices implements serial connections to hardware devices via RS232 or TCP. Commands to devices and answers from devices may be of fixed length or variable length with terminator characters. Master devices for control of hardware devices are available as are slave devices for simulation of hardware devices at an early phase of a project when hardware devices may not yet be available. Outgoing and incoming serial data may be logged to StdLog for debugging.

Tpc uses the services of Basics.

StdCoded File <=> PacCoded File (1633 / 950 kByte - Release 28-May-2021)


By Carl Glassberg

Text reader & formatter filter.

Trf is the abbreviation for Text reader / formatter. The subsystem Trf contains the following modules:

TrfFilter copies from an open text view the printable (ASCII and Latin-1) characters + cr + ht + para to a new text view. Other control code characters and Unicode are converted to a string representation of the equivalent hexadecimal character constant.

TrfUnbeautify converts control characters (except for cr and para) and Unicode characters to space (20X). It deletes leading and trailing space, and squeezes adjacent space within a line to 1 space character (20X). It removes colorization and makes everything a monochrome color (blue). Horizontal formatting is squeezed but vertical formatting is preserved.

TrfCrush is similar to Unbeautify but additionally converts multiple adjacent end-of-line to 1 end-of-line. Vertical formatting is crunched and horizontal formatting is squeezed.

TrfText unfold input paragraphs of multiple lines of text into single-line paragraphs. Repeatedly running this command will turn all input text into a single line.

TrfNrLines number lines in a text file. The first line is numbered 0.

Trf doesn't use any other CPC services.

StdCoded File <=> PacCoded File (44 / 21 kByte - Release 4-Jun-2014)


By Werner Bossert

Ttf Covering (TrueType Fonts, OpenType File Format).

TtfCovering scans TrueType Fonts and OpenType Font respectively, of the file type TTF and TTC. TrueType Collections TTC contain several fonts. The table BlocksAndFontsTab displays Range, Block, number of characters covering a font and the name of the font. The module UnicodeFontsGen can be generated.

Covering fonts are in alphabetical order and ascending order of the number of covering characters unless other priorities are prefered. The table Covering BlocksTab shows all ranges, blocks and number of characters covering a selected font.

Blocks.txt of the Unicode Standard Version 15.0.0 is used for Ranges and Block names.

Ttf uses the services of Pac, Ctls, Dos and UnicodeMappings .

StdCoded File <=> PacCoded File (215 / 98 kByte - Release 13-Sep-2022)


By Werner Bossert

Unicode Generators with Unicode Character Database.

To extend mappings and requests of letters, numbers and symbols to the full Unicode range or to the Basic Multilingual Plane (BMP) or to a part of the Unicode range to handle languages, module generators use information of the UnicodeData.txt.

The Unicode Consortium publishes in the Unicode Character Database (UCD) the text file UnicodeData.txt.

UCD (Unicode Standard Version 15.0.0 released 13-September-2022):
or look for the latest version of the UCD at

UnicodeData.txt is the database for the module generators Unicode­XXXGenerator (Unicode­Case­Generator, Unicode­Case­GeneratorExt, Unicode­IsCase­Generator, Unicode­Letter­Generator, Unicode­Number­Generator, Unicode­Specials­Generator, Unicode­Arabic­Generator, Unicode­Decomposition­Generator, Unicode­Characters­Generator and Unicode­Bidirectional­Generator, Unicode­East­Asian­Width­Generator, Unicode­Math­Class­Generator, Unicode­Emojis­Generator). The generated auxiliary files are simplified by Unicode­NormXXX (Unicode­Norm­Case, Unicode­Norm­IsCase, Unicode­Norm­Letter, Unicode­Norm­Number, Unicode­Norm­Specials, Unicode­Norm­Arabic, Unicode­Norm­Decomposition100H, Unicode­Norm­Decomposition, Unicode­Norm­Decomposition­Iter, Unicode­Norm­Characters and Unicode­Norm­Bidirectional, Unicode­Norm­East­Asian­Width, Unicode­Norm­Math­Class, Unicode­Norm­Emojis.

The result are the modules Unicode­XXX_Mapping (Unicode­Case_MappingGen, Unicode­IsCase_Mapping, Unicode­Letter_Mapping, Unicode­Number_Mapping, Unicode­Specials_Mapping, Unicode­Arabic_Mapping, Unicode­Decomposition100H_Mapping, Unicode­Decomposition_Mapping, Unicode­Decomposition­Iter_Mapping, Unicode­Unassigned_Mapping, Unicode­Characters, Unicode­Bidirectional_Mapping, Unicode­East­Asian­With, Unicode­Math­Class_Mapping, Unicode­Emojis_Mapping). The procedures in the generated modules consist of a CASE statement. The case expression can be of type character or integer.

UnicodeGenerators uses the services of Pac.

StdCoded File <=> PacCoded File (1343 / 465 kByte - Release 13-Sep-2022)


By Werner Bossert

Unicode Mappings with the generated Modules.

UnicodeMappings provide mappers for upper, lower or title case mapping, and also provide converters from Unicode (UTF-8, UTF-16, UTF-32; little or big endian) to other encodings or vice versa. Further examples for mapping and decomposiion of Unicode are shown.

The base for the Unicode Mappings are the published Unicode Character Database (UCD) by the Unicode Consortium in

UCD (Unicode Standard Version 15.0.0 released 13-September-2022):
or look for the latest version of the UCD at

UnicodeMappings contains all modules generated in UnicodeGenerators. Some of the generated mapping modules have been further simplified by hand. The encoding converter UnicodeConverterDlg includes XML-Conversion. To recognize the encoding and the endianness (little-endian order or big-endian order) byte order mark (BOM) is used. For XML files existing encoding-declaration is used. Changing the encoding: The encoding declaration can be optionally adapted or inserted. UnicodeConv provides UTF-8 import and export by file with the uni and XML extension.

In UnicodeConverterTests a few examples for the encoding conversions are shown.

UnicodeMappings uses the services of Pac, Ctls and Dos.

StdCoded File <=> PacCoded File (3385 / 1429 kByte - Release 13-Sep-2022)


By Gérard Meunier

Utility tools.

Util is a set of utility tools.

Util uses the services of Babel and optional the service of UnicodeMappings, Pac, Ctls and Dos.

StdCoded File <=> PacCoded File (1144 / 470 kByte - Release 28-Dec-2019)


By Josef Templ


The W3c subsystem provides parsers for XML (eXtensible Markaup Language), HTML (HyperText Markup Languge), CSS (Cascading Style Sheets), and JSON (JavaScript Object Notation) that follow the respective W3C standard. The input is an arbitray character stream, the output is an abstract syntax tree following the W3C Document Object Model (DOM) or a CSS or JSON syntax tree. In addition, an error handler can be provided. Each parser resides in a separate module and uses a related scanner (module) for tokenizing the input stream.
   In order to avoid excessive string object creation, all parsers optionally support string pooling. String pooling means that string objects use a single shared instance if they occur multiple times. If string pooling is used (default off), string objects should be treated as immutable.

The subsystem W3c also provides an importer for HTML documents and clipboard data (HtmlImporter) based on UTF-8 encoding. Note that it is not possible to import all HTML/CSS constructs exactly as they appear in a modern browser. However, the importer tries its best to handle at least those properties that have a correspondence in BlackBox. The importer does not handle imported or embedded style sheets but it does handle inline style attributes because clipboard HTML data is based excusively on inline styles.

W3c doesn't use any other CPC services.

StdCoded File <=> PacCoded File (266 / 106 kByte - Release 5-May-2018)


By Robert D. Campbell

A collection of general purpose and eclectic tools (Wand: tool used by a magician).

Wands provides a large number of Tools of general use for programming, and for manually accessing some of the facilities provided in subroutine form in Lib. A few examples are:

Wands uses the services of Algebra, Casket, CpcChill, CpcCompressor, Ctls, Filter, Frame, Lib and Multi.

StdCoded File <=> PacCoded File (1.220 / 557 kByte - Release 24-Apr-2017 - Chill 12


By Gérard Meunier

Simulation of waves (Example of bitmap manipulation by WinApi calls).

It's just a little pool. And it may rain upon it.

Water uses the services of Babel and Util.

StdCoded File <=> PacCoded File (59 / 29 kByte - Release 23-Oct-2004)


By Marc Frei

Publishing BlackBox documents on Internet or Intranets.

Some time ago we have actually put together a very rough prototype of a BlackBox subsystem Web. The subsystem "Web" allows you to publish simple BlackBox documents and forms as web pages.

The documentation that is included assumes that the Web subsystem is used together with a CGI-capable web server (e.g. Apache or Microsoft IIS). In order to facilitate experimentation with our subsystem web, you need additionally Stewart Greenhill's lightweight web server "Dbu" which runs directly from within BlackBox.

Web uses the services of CommTCPAsync and Dbu.

StdCoded File <=> PacCoded File (209 / 86 kByte - Release 21-Sep-2007)


By Carl Glassberg, Gérard Meunier and Helmut Zinn

Analysing Web Log Files.

Would you like to know how many users visit your website? How many downloads they have done? Which downloads belong to the top 10? Here you are.

Webstat analyse the web server's log file. It produces usage statistic reports about hits, files, pages, visits, sites and bytes transfered. The result is separated in users, robots and total access. It also reports a top ten list of downloads and countries. Further it is possible to select more than one log file to create one report over a long piriod of time (e.g. one year).

This subsystem contains a nice tool which determine the country by IP address. You enter the IP address and get the country as result. The ip address to country database has about 500,000 records and 240 countries.

Webstat uses the services of Coco, Ctls, Pac and Util.

StdCoded File <=> PacCoded File (5059 / 2225 kByte - Release 6-July-2021)


By Eugene Temirgaleev

List of open windows.

When you are opening more the 9 windows during your work then switching windows via the menu Window becomes inconvenient. I wrote a small program, which will list all open windows inside a dialog box and allows to switch them there. Here is that program. It may be also useful for you.

WorkWindows doesn't use any other CPC services.

StdCoded File <=> PacCoded File (10 / 5 kByte - Release 2-Apr-2008)


By Peter Cushnir

Using Document Object Model and Extensible Markup Language.

The subsystem Xmlcore is an implementation of the DOM Level 2 and a XML-parser, based on DOM.

DOM (Document Object Model) is a W3C definition of generic platform-independent API for presenting hierarchical document structures in computer's memory. You can read more abotut that topic at

XML (Extensible Markup Language) is a general-purpose specification for creating user defined markup languages. It makes it possible to define the content of a document separately from its formatting, making it easy to reuse that content in other applications or for other presentation environments.

Xmlcore purposed to parse, change and generate XML files into DOM stuctures as described in W3C (World Wide Web Consortium) recomendations

Xmlcore doesn't use any other CPC services.

StdCoded File <=> PacCoded File (199 / 92 kByte - Release 15-Apr-2013)


By Koen Desaeger and Helmut Zinn

Xy Games.

Subsystem Xy contains games based on XyColorPlane grafik. We offer something unique: a compromise between the mono-tasking of the original XYplane and the perfect cooperative multitasking of Blackbox. The following games are included: "IFS (Fractale)", "Life", "Lights on", "Minesweeper", "Reversi (Othello)", "Tic Tac Toe", "Vier Gewinnt (Connect Four)", "Pac Man", "Snake", "Tetris" and "Tron".

Xy uses the services of Ctls.

StdCoded File <=> PacCoded File (808 / 273 kByte - Release 20-Nov-2011)


By Vladimir Sidorov

A data compression library.

This is the port of Zlib to Component Pascal and BlackBox. Zlib implements the deflate lossless data compression algorithm. It provides in-memory compression and decompression functions, including integrity checks of the uncompressed data. Compression can be done in a single step if the buffers are large enough, or can be done by repeated calls of the compression function.

You find more information about Zlib at the
   Zlib Homepage:
   Zlib Manual:
   Zlib Technical Details:
   Zlib's Defalte Algorithm:

The data format used by the zlib library is described in
   RFC 1950 ZLIB Compressed Data Format Specification.
   RFC 1951 DEFLATE Compressed Data Format Specification.
   RFC 1952 GZIP file format specification.

The original Zlib is a C library and was written by Jean-loup Gailly (compression) and Mark Adler (decompression).

Zlib doesn't use any other CPC services.

StdCoded File <=> PacCoded File (373 / 129 kByte - Release 30-May-2012)


Introduction | Subsystems | Topics | Authors | Date | Links | FAQ | Downloads
A..C | D..H | I..N | O..S | T..Z

Last Updated 13th September 2022