5.3x versus 5.5x system programs

Most people on the forum know that Version 6 is almost entirely an update to the TrueBasic editor, but there continues to be the issue of which system version to use--the more stable 5.31 or the newer 5.5b19. I'd like this thread to focus on the pros and cons of each. I know Big John, through necessity, has fallen back to 5.31 for the Editor, but the default system that loads with Version 6 is the 5.5b19 (the 'b' here is for BETA) and there lies the problem. The 5.5 system upgrade of many years ago was a work in progress. Chris Sweeny was the system programmer working on this and it was an ongoing process for which I was a tester. For a number of reasons that can be deduced but have not been publicly addressed, True Basic no longer has anyone formally working on the system software and consequently the most recent released version (there is a 5.5b22 with a few minor tweaks) is the b19 one that is included with a version 6 purchase. What I will do here is list the advantages that I know of for using the 5.5 version versus the 5.3 version. I would hope that Big John would chime in with the known bugs in 5.5 and what limitations they impose. Others could add to the list on either side. This might help other users decide between systems--you can use either (or any other older system) with the Version 6 editor.

My list is short:

Version 5.5 advantages--these mostly come into play if you are distributing your software to others.

1) No .dll files. This means you don't have to insure that other users have and install the .dll files that are needed for the 5.3x and earlier True Basic version.

2) 256 character path names. This one is really important if you distribute your programs. Earlier versions of True Basic have a 128 character limit. If your programs load files and you want to allow your users to install your programs anywhere they want, it is very easy for the path name to exceed the 128 character limit. Just placing a folder on the Desktop can produce some long path names.

3) There are a few additional pixel manipulation commands (mostly requested by me) that I'm not sure are even well documented, but are useful for animation and/or game design.

The first two here are very important to me as I distribute software internationally. There were many other minor changes--some leading to the bugs in the 5.5 system, but I have not personally found any that outweigh the advantages above. However, it would be nice to have a full list here. I will research my archives and look for other differences between 5.3x and 5.5x versions, but everyone else is encouraged to add their experiences here.



5.5b19 versus 5.31

Hi Rick,

I fully endorse your attempt to clarify the situation with respect to the way the editor works, and which is the best version of TBsystem.exe to use with it.

When I originally took on the task of up-dating the editor, I mistakenly assumed that the existing editors (5.42 and 5.5b19) were written entirely in TrueBASIC, so it would be a simple matter to address the known bugs at that time. I was unaware that the source code for neither of these versions was available. The only source code version that was available to me was 5.1x or something like it. This was so out of date that I had to start from scratch. The second problem was that the existing editors were not entirely written in TrueBASIC, but had a large portion written in some other language ("C" I believe). This was the part that performed RUN, COMPILE and BIND as well as passing back error messages to the editor. This part is essentially equivalent to a large part of the guts of the TBsystem file. Again there is no source code available. The existing editor source code was joined to this second part during the binding process. This meant that the editor source could not be run and tested in the normal way without first binding it into an executable version. Testing the source code in this form was a nightmare, and it is not surprising that there were long standing bugs in all versions.

I felt that it was important to create a pure TrueBASIC editor that could be run and tested as you would any program. This in turn meant that I had to find an alternative way to RUN, COMPILE and BIND. Fortunately the TBsystem file does exactly this. In practice the new editor CHAINS to TBsystem.exe.

The next problem I encountered was that the TrueCTRL TextEdit control object had a number of bugs (mainly CTRL characters and using vertical and horizontal scroll bars) in both version 5.31 and 5.5b19. It was my intention to use this object as the main core of the editor, simply because that is what the editor is - a fancy text editor. Once again I had t start from scratch and create a version of the TextEdit control object just using TrueBASIC. Currently the new editor is bound into an executable file using version 5.31 not version 5.5b19. The reason for this is that version 5.5b19 has problems with CTRL keys and has numerous problems with other TrueCTRL objects such as PushButtons and dialog boxes.

In earlier versions where RUN, COMPILE and BIND functions were in an integrated part of the editor, any errors that were detected were automatically passed to an integrated error window. Version 5.5b19 worked in a slightly different way and passed the error messages back to the editor. As a result the new editor essentially does a pre-processing check on source code inside a program called TBedCOMPILE.exe. If there are errors then these are passed back and displayed by the editor. If there are no errors then the editor CHAINS to TBsystem.exe. The important point to note here is that TBedCOMPILE had to be bound with version 5.5b19 in order to be able to pass back error messages because version 5.31 doesn't work his way. Fortunately TBedCOMPILE doesn't display anything on screen and doesn't use TrueCTRLs.

So we now have an editor that is written entirely in TrueBASIC and can be run and tested from the editor just like any other program. The functions of RUN, COMPILE and BIND are carried out by the TBsystem file. Either 5.31 or 5.5b19 TBsystem files can be used. As Rick observed - both have advantages and disadvantages. I will look up my files and report back on what each version can and cannot do.

More details about 5.31 and 5.5b19


I have listed here the features available with the new editor, merely to indicate that it more or less matches or exceeds what was previously available with earlier versions. I have marked this list with asterisks to indicate which features don't work correctly with version 5.5b19 but do work with version 5.31. I have also marked those features that are now available but were not previously offered by 5.31 or by 5.5b19.

The following is a list of features included in the New Editor:

(1) Drag and drop files into the editor icon
(2) Hot-start i.e. starts where user left off *
(3) Multiple files open at the same time (up to 10)
(4) Listed open files accessed by name or back/forward buttons #
(5) 10 most recently used files listed. #
(6) Right click short cut menu. #
(7) Paper and ink colors can be defined.
(8) Fonts can be defined.
(9) Confirmation at quit
(10) Save file confirmation
(11) Cut/copy/paste by control keys
(12) Cut/copy paste by function keys (as DOS editor) #
(13) Multiple line comments (!) when highlighted.
(14) Conversion to wrapped text. #
(15) Direct access to WORD and EXCEL #
(16) Direct access to any executable file #
(17) Direct access to FORMS program #
(18) Use of ALIAS commands in STARTUP.TRU
(19) Workspace, load and forget commands accepted
(20) Stop RUN from command window. *
(21) Breakpoints and Trace allowed.
(22) Renaming files allowed.
(23) COMPILE (direct or indirect)
(24) RUN (direct or indirect)
(25) BIND (direct or indirect)
(26) Multiple HELP files in separate window.
(27) FIND and REPLACE dialog boxes *
(28) Text highlighting by dragging mouse *
(29) Right click menu #
(30) ColorText available #.
(31) Access to OBJECT sub-routine through TrueCTRL or CTX*
(32) Up to ten levels of UNDO and REDO #.
(33) Auto line numbering available.
(34) Demos can be run from the HELP window #.

* Denotes features that exist but don’t work properly with version 5.5b19
# Denotes features not available in version 5.5b19 or 5.31

There is only one person that might have the original source code for both 5.31 and 5.5b19. I certainly don't have it. Chris Sweeney might also have the code for the TBsystem file.

From my testing, only 5.5b19

From my testing, only 5.5b19 supports calling external DLLs, at least as described in the Gold manual.

I always wondered, did really nothing of the 5.5b-series system files C code survive, that you know of?
I'd guess that for the Windows version it was compiled with MS Visual C++ 6.0 or so.

Also I always wondered, does any (detailed) internal documentation exist describing the TRC format?
Of course I fully understand you wouldn't want to hand it to over to a user, but was just wondering.