THEOS ACCESS. The story of THB_WIN This page contains the history of THB_WIN. THB_WIN is a window system for the THEOS family of operating systems. It supports 16 bit version 2.2 as well as the 32 bit versions 3.1/3.2, 4.x and even the newest version 5.0.

You can always download the latest version of this package from

http://www.phaseonesystems.com/ftp/cet/theos/windows/

The following time frame wants to give you an overview of the development cycle of THB_WIN. If you want further information, please send me an e-mail to thb@net-bembel.de. Besides a verbal description, I include some comments that me and some other people made during development of the software. Some of them are recorded in the source code, others in README files.

8/1989 The 25th was the day when I read an article in a computer science magazine and somebody explained how he implemented a tiny windows system using Turbo-C under MS-DOS. Once I was through reading the article, I thought it would be nice to have a window system for the THEOS operating system. I remembered using a window system under UNIX called curses in early 1984 and studied the documentation.

I liked the way, screen output was optimized using curses' refresh() function and sat down to design my own set of functions for a window system. Since I was using C as a primary programming language by the time, the functions were only available for C applications and they were linked statically to each application. After a few days it was easy to get some eye-catchers into my applications.

12/1989 After a while, I had a whole set of programs forming a nice little system to track the results of track & field contests. They all used the window system and when I tried to package them, I noticed that not all programs would fit onto a single floppy. The reason for that was obvious: all window functions were linked into each and every program.

Around christmas I sat down and designed a mechanism that is today known as DLL (dynamic link library) for my window system. Using this new overlay method, I could save a lot of disk space. Programs' startup time was even shorter, because the window functions were already loaded into memory. I called this system THWINDOW and the files were named SYSTEM.THEOS#86.THWINDOW.

7/1990 In July of 1990 I left Germany to start working at the THEOS headquarters in Walnut Creek, CA. Two earlier trips (in 1987 and 1988) to California gave me the impression that it would be a good step in my career to stay for a couple of years in the U.S. and gain some work experience there.

Still working on the window system from time to time, I offered it to THEOS, but they did not want to buy it. So I stopped development and went on to new areas.

Shortly before the 1990 fall COMDEX held in Las Vegas, NV, I got the job to setup the famous 'THEOS terminal wall' and collect some applications that could be shown. I thought it would be nice to show the windowized track & field application among all the other programs running on this wall. Here's a picture of that setup:

This was when Susie Khaleeli of Phase One Systems came up to me and started asking questions about the window system. It turned out that she was not interested, because it did not support THEOS BASIC and I told her that it would be too hard to adapt THWINDOW to THEOS BASIC.

1/1991 A while after that COMDEX show, I met Ron Gibbs and Suzie again and we were talking about the developments I had made for the THEOS operating system. During this conversation, I showed them an early version of PACK that only supported the 16 bit version of THEOS. They both told me it would be a great tool to have. PACK is a disk reorganization tool for the THEOS operating system.

Again, I asked THEOS if they have any interest in buying PACK, but they did not want to do so. Thereafter, I offered PACK to Phase One Systems, and they bought it under the conditions, that I would integrate the window system into it and make it work under 32 bit.

During the development of the 32-bit version of PACK, I improved the functionality of the window system a lot. I added a complete new set of functions that I needed for PACK.

PACK was released later this year and a lot of feedback came from the people who bought it. They all liked the windowing mechanism and were asking if they could get it for their THEOS BASIC applications.

7/1991 In July of 1991 I quit my job at THEOS and returned to Germany. A while after, I got a call from Suzie and she asked if it would be possible to get the windows working for THEOS BASIC.

Since I was unemployed by the time, I started on 9/24/91 to design a new interface of the window mechanism to THEOS that would allow to use it from within any application, even written in THEOS BASIC. Most of the functions had to be rewritten because the new window system (I named it THB_WIN) was not only a DLL type program, but it was an extension to the THEOS NUCLEUS and had to follow certain rules.

10/1991 After only four tough weeks of programming, I released a first version on 10/17/91 that went into testing at Phase One and a few selected sites. A time of testing and debugging followed. Suzie started writing the first version of the documentation. It was very funny to get things straight and we spent lots of time on the phone. Here's what she wrote in a recent e-mail while she must have been thinking about good-ol' times:

I still think we can both pat ourselves on the back for one of the SMOOTHEST implementations ever - the THB/Susie Window System - that was totally done long distance - over a 9-hr time difference. Just about now, I would be sitting on the sofa reading and checking the clock to see if it was time to give you a call before going to sleep... If needed, I'd call the next morning to touch base. Did I ever tell you how astonished Jack (Dyer) got when he learned that we went from start to finish (with doc and production in place) in only six weeks. Pretty incredible, what!?

In January '92 I started working for S.E.S.A. in Germany. The new job left me only limited time to support further development of THB_WIN.

5/1992 Suzie called me one day and told me about some ideas she had in mind. She went back to the original version of the window system (the one that was included in PACK) and came across the functionality of 'choice lists'. She insisted that I would have to implement them into THB_WIN. I did not have any choice and started developing them. THB_WIN version 1.5 was born.

It was about that time, when CET out of Boulder, CO started thinking about implementing the THB_WIN calls into their BASIC compiler. CET BASIC is a source code compatible BASIC compiler that is available for MS-DOS, UNIX, Windows-95 and Windows-NT. The alternative would have been to include the THEOS Window Manager functions, but they decided to stick with my interface and started implementing the exact calls into their library making the BASIC applications that were using THB_WIN available under more mainstream platforms.

12/1992 In December of the same year, I packaged the last release of version 1.5. Once done, I had the idea of implementing a message system. This would allow applications to popup windows with messages on different terminals. We, Phase One and I, decided that this would be the start of a new version, called THB_WIN version 2.0.
3/1993 It was in early March that I finished the work on the message system. Besides that, I fixed a few minor glitches in the code and added some performance to the system.
9/1995 Phase One decided to bring out a new, windowized, version of ACCESS. Ron and Suzie asked me to modify ACCESS, so that based on a common source, one would be able to produce a windowized and a non-windowized version of it. A few weeks later, Phase One shipped a first version of the windowized ACCESS to selected sites.
2/1996 Three years after the last major release of THB_WIN, THEOS decided to come out with a complete new version of the operating system, called THEOS 4.0. The versions 3.2 and 3.1 were very similar and THB_WIN could deal with the differences. Version 4.0 was very different and has it's own windowing system built in. Since it made no sense to have two window systems working in the same environment, we decided to adapt THB_WIN in such a way that it will use THEOS Session Manager for the window management instead of having it's own set of functions.

This sounded like a very brilliant idea, except that the idea behind the THEOS Session Manager is different from the approach of THB_WIN. The differences between the two systems makes it impossible to support all features that were implemented into the original version of THB_WIN. So some of them had to be dropped. But still I think, it is easier to use THB_WIN functions than using THEOS Session Manager functions. A lot of other developers do too, especially those whose applications run under multiple platforms using CET Basic.

5/1996 Only three months later, I had the first version for THEOS 4.0 ready. I had to change a lot more source than I thought. Some of the features available on THB_WIN could only be ported with the support of the people at THEOS, who were so kind to implement a set of new functions to their Session Manager.
1/1997 Everybody is using the INTERNET as the standard medium to transport data nowadays. As of 1/13/97 THB_WIN is available through internet download. An announcement list has been established which I send an e-mail to whenever I release a new version of THB_WIN. If you want to be notifed of these events, please send an empty mail to thb@net-bembel.de with a subject of "SUBSCRIBE thb_win-request".
2/2001 It has been quite for a while around my window system. THEOS recently announced a new version of the operating system. THEOS now comes as version 4.2. They completely revised their window management software which required some changes to the THB_WIN adaption layer as well.

These changes are now available with version 4.2 of THB_WIN. New serialization keys will be required to run this version. Please contact Ron Gibbs at Phase One Systems to get those keys for your system.

Note: Some of the files that are shipped with the OS including up to Patch Level 42009 have to be replaced. These replacement-files can be downloaded from http://www.phaseonesystems.com/ftp/cet/theos/windows/os42.cmp. Replacement is done with the THEOS EXPAND utility. Contained files are:

  • SYSTEM.THEOS32.WM
  • SYSTEM.THEOS32.SESSMAN
  • SYSTEM.THEOS32.DEV3
Newer patch levels of THEOS 4.2 should have these files included.

The same changes apply to the newest version of the operating system, THEOS 5.0, which is currently in the beta process. Please see the THEOS web-site for more details and information about this product. As it becomes available, THB_WIN will be made available in version it's own version 5.0.

12/2001 Fixed another nasty bug that has been around for some time. Using the BL.OPEN function did not correctly reselect the previously selected window. The same applied for the BW.CRIGHT function. Thanks to Yves Hutsebaut to nail this one down. The latest version 4.2.02 can be downloaded as usual from the FTP-site.
3/2002 Made a few changes to get things working with the new THEOS Corona operating system. This had some influence on the 4.2 version as well. Developers will need a THB_WIN.OBJ*.BW_INIT file dated 19 Oct 2000 or newer linked to their program in order to use their applications with THEOS Corona. It is included in the THB_WIN package for THEOS 4.2.

The new version is available on the FTP site for THEOS 4.2 and THEOS Corona.

For the THEOS Corona version you will need new authorization codes for THB_WIN!

Please contact Ron Gibbs at Phase One Systems.

3/2002 Added a fix to support legacy 16 bit programs like THEOS ACCESS.
9/2002 Added a fix to support THEOS patch level > 100 on the THEOS Corona operating system.
Added a fix to support applications using the THEOS window system to call applications using the THB_WIN window system. The THB_WIN window system used to close all windows (even those that were opened through the THEOS window system directly) when the last application using the THB_WIN window system exited.

I hope, you enjoyed reading the above. If you want to add something to this list that I should have forgotten or just comment on it, please send me an e-mail to thb@net-bembel.de. I really appreciate your feedback.