Compunet BBS v2.0 for the Amiga

This was my 4th out of 4 Bulletin Board Systems that I have written from the ground up.

Requirements:

Specifications:

Comments This system was designed to allow maximum customization. When I began development in October of 1991, I had noticed that the other BBS systems available for the Amiga were hard coded in C and only allowed for limited customization. For example, if you have ever called a CNet system running on the Amiga (or even the old C64/128 versions) you would notice that they all look the same to a large extent. Compunet BBS for the Amiga was unique in the way that the source code for the BBS was provided and it allowed a sysop to change any aspect of the system. This flexibility comes from the fact that the BBS is written in my own BASIC-like language, PTX.

History of PTX
PTX started as a conceptual language on the Apple ][ in 1989 to enable advanced BBS users to imbed a simple program in an email or newsgroup message, similar to how JavaScript and HTML have changed the way we look at messages on the Internet today. While it was on the drawing board to be integrated into the Apple ][ version of Compuet BBS, it never made it past several test programs that I created to figure out how to design a language. PTX was originally named Pentax but was later simplified to avoid legal conflict with the camera manufacturer of the same name.

The basic design of PTX consists of a compiler and an interpreter. The compiler was a quick hack (I think I wrote it in one sitting with minor fixes shortly thereafter) that simply tokenized commands into a single byte (values 128 - 255) and left normal text and variable names in their natural states (values 1 - 127, 0 was reserved to separate the data). The compiler did very limited syntax checking and was rather quick due to its fairly simple design. Source files had .SRC as an extension, and compiled 'executable' files would have .COM as their extension. This design enabled the interpreter to load program files quickly into memory, but the lack of syntax checking on the compiler's part caused bugs and typos to surface only when the interpreter tried to execute them. Naturally, there was syntax checking when a command's turn came about.

The PTX language shares many similarities to modern 'label' BASIC languages (versus line numbered variations) and leaves little to be desired by the most veteran BASIC programmer. While the system was not intended to do complex floating point mathematics, it did feature a rather sophisticated formula evaluator which could handle very demanding calculations; certainly powerful enough for any typical BBS application. The language adequately abstracted the hardware and the remote user from the programmer, and even allowed for the use of 'screen codes', or simple inline 'commands' which enabled changing of text colors, positioning of the cursor, and other features found in most terminal emulations. Additionally, the language simplified the complexities of communicating with the modem, creating random access files, polling user input, using file transfer protocols, and other advanced concepts by implementing them as simple commands.

Overall, the PTX language is fairly easy to learn and even under a slow 7.14MHz 68000 processor the language performed quick enough to satisfy most people. For optimum performance, it is recommended that you run the system using a 2-color screen as the system output is directed through the console.device. The interpreter runs at a priority of -30, and was programmed to minimize overall CPU usage (I believe that 'intense code running' only hit about 8 - 14% of a 68030/25's total resouces.)

And a word about the BBS itself
As for the BBS part of this package (hey! enough about the language already!), it was quite similar to the Apple ][ version of Compunet BBS. The exceptions are in that the Amiga version lacked the networking functionality (it was started but never completed), the Amiga version offered the ability to go beyond Xmodem and ASCII file transfers, the Amiga version did not require a modem to operate (start an instance as Port 0), and that since the Amiga was a multitasking machine, it could run multiple ports on the same CPU whereas the Apple ][ version was limited to one port per CPU.

This system was in development between October 1991 and the fall of 1994. The first usable version was available around the summer of 1993. Unfortunately, I was in college during the development and never really could spare a phone line to operate my own system. Additionally, I never felt that the system was complete enough to allow other sysops to use the system, thus the BBS had never been put into 'production'. When I finally ceased development of the system, the state of the Amiga was in turmoil, and was being slowly killed by the bankruptcy of Commodore Business Machines and the painfully long legal proceedings that followed. The Amiga was becoming an orphan, and the three companies which had owned the technology after CBM's demise never found enough money left in their budgets to market the machine properly or advance the technology enough to keep up with the advancing IBM and Mac worlds. The growing popularity of the Internet also had a great influence, too. The BBS community was leaving the quiet homestead of their local systems to venture forward into the great global expanse; BBSes starting dropping off like flies. Compunet BBS now didn't seem like it would ever bring me enough money to make it worth my while, so instead of making one last valiant effort and porting it to the IBM world, I dropped the project.

The archive provided here is more or less 95% of the complete vision of Compunet BBS. While the system itself is fairly completed, the little things that I would have liked to have finished were never done, nor will they ever be. Off the top of my head, here is a list of what NOT to expect from this release:

Well, thats about it for what I have to say regarding this program. One last note is that a menu of local F-key functions is available by pressing the HELP key on the keyboard. If you are running this program via UAE, I'm not sure of the keyboard equivalent of this key, so please refer to UAE's documentation. I will mention that Shift-F10 quits the interpreter. Also, to start the system, enter (from the root directory of the system)

PTX SEG/RESET P0

Which basically translates into starting the PTX interpreter (PTX), starting execution of the reset program (seg/reset) and using port 0 (local port, thus disabling the use of the modem)

If you download, use, play with, etc. PTX, I would be grateful if you could drop me a note saying that you have done so. I will be glad to help you in any way I can, but I want to reiterate that I have ceased development of this program and that I am providing this program AS IS.


...Return to software page

You are visitor number to this page since July 1, 1997
Page last updated on July 1, 1997


© 1997 Brian J. Bernstein / bernstbj@ix.netcom.com