PBBS16 Documentation

PBBS Version 16 Introduction

Professional BBS (PBBS) is a term that conveys the importance of distinguishing the evolution of Bulletin Board Software Packages publically known as BBS Systems. I had starred developing a PCBoard Clone, based upon the look and feel of PCBoard, not the source code. I decided to change course due to envious developers thinking somehow I was riding on the coattails of a failed business and product by calling my product PCBoard. So, keeping true to my word, I have released "Professional BBS v16" as an open-source product.


Originally in 1983, Fred Clark formed (CDC) Clark Development Company and released a heavily modified version of RBBS-PC which was more professional (compared to original RBBS-PC), and PCBoard was being marketed as a commercial BBS software package. PCBoard was considered one of the "high end" BBS packages during the explosion of home and business Bulletin Board Software systems. Ultimately, Clark Development Company went bankrupt in 1997 due to the market transition to the Internet.

By the mid' 1990s, PCBoard had gone through 15 major design revisions. With each revision the PCBoard product defined itself as a professional software product, with professional technical support and an obvious focus on business and stability. One common topic when asked, "Why do you run PCBoard BBS?" was the stability and over time the flexibility offered by the BBS script language (PPE Professional Programming Engine). The flexibility allowed the system operator (Sysop) to customize every aspect of their own PCBoard BBS without the requirement to release PCBoard source code into the wild.

PCBoard was originally developed using Microsoft's Quick Basic programming language. However, PCBoard functionality was becoming limited in growth by the actual limitations of Microsoft's Quick Basic Language and Compiler. Thus, PCBoard was carefully rewritten to Microsoft's Quick C and pieces were developed using MASM. This new redesign proved to the BBS and Modem community the commitment CDC was willing to put into what most considered a hobbyist market.

Before the collapse of CDC and ultimately PCBoard BBS Software, Clark Technologies, a division of Clark Development Company announced on July 29, 1996, the availability of source code and OEM licenses for the PCBoard BBS software.

Back to the project...

I have been developing BBS software since 1983 in high school. I was a self-taught programmer, with the ability to absorb what others were willing to show me. We didn't have the Internet, your education truly was limited by what resources you had access to. I was fortunate enough to graduate on a Thursday and start at IBM on Monday in the Custom Micro Solutions division in North Florida. Where I was mentored on tight code, hand optimization for footprint and performance.

Why Modern Pascal?

I am the founder of Modern Pascal Solutions, LLC. which focuses a lot of time and effort on Innovative designs while being a pragmatist when it comes to implementation. Modern Pascal (the language) has had two primary development paths, Web Scripting, and BBSing. Learning to develop in the early 80's by redesigning a BBS package my father purchased. A long-living passion for BBSing has driven many of my business decisions. Early on as a communications specialist for companies like IBM and Hayse Technologies, and developing the PR and UPI news parsers for Planet Connect Fidonet service. I found when developing e911 packages for law enforcement, that scripting is much more flexible than constantly recompiling a product for minor variances.

Screenshot: Mac OS X


As a self-taught programmer in the early 80's, most of my learning was dialects of Basic for different hardware our family computers could support. In 1988, I was introduced to Turbo Pascal for CP/M at my day job, where I spent the holiday season mastering the language and truly enjoying the structured design of Pascal Programming. The ability to jump from method to method, and no longer writing top-down numbered source was brilliant. By the time Borland released its Borland Pascal 5.5, I had already started migrating our commercial accounting package from CB86 and MB86 languages to native OOP (Object Oriented Pascal).

My usage of objects has always been an "As Needed" approach. When developing socket libraries, disk storage, and message engines, I would rely on the abstraction benefits of OOP. However, the rest of my applications were and still are procedural in design. I feel this allowed novice developers the ability to pick-up my code without the requirement of comments or detailed design documents - simply read the code.


As an active professional developer and serial entrepreneur, I have had the luxury of developing systems in many different markets and for many different businesses and individuals. One such project in early 2000, was to port a desktop client/server law enforcement application to a light-weight web browser clone. In 2000, we did not have jQuery, Angular, or any other framework - instead, you had to develop both the server-side framework and the desktop web browser framework. One of the critical changes in my knowledge of programming languages (30+ under my belt by this time), was the amazing fluidity of JavaScript.

JavaScript ushered in my desire to develop my own script engine. Seeing how it allowed basic modification of a web screen, pressed me to personally hire Alexander Baronovski to personally tutor me on developing DXJavaScript for my software company Brain Patchwork DX, LLC. (a socket and server development company I ran out of my basement at the time).

Putting it together

Pascal is a general-purpose, high-level language that was developed for teaching programming as a systematic discipline and to develop reliable and efficient programs. Pascal offers several data types and programming structures. It is easy to understand and maintain Pascal programs. While JavaScript is also a high-level language, however, it is very dynamic and currently marketed as the reactionary tool for Web applications and generally interactive web pages.

Modern Pascal was named "Modern" because I started incorporating syntax from C and JavaScript into my Pascal Interpreter and p-code Compiler. Keeping with the fact Pascal is a strongly typed language, and it offers extensive error checking, and it offers several data types like arrays, records, files, and sets. As someone who teaches (hired tutor) programming to college students, I had to be able to express procedural syntax in a fashion that fits college programming methods. Modern Pascal became my personal tool to back my theories while allowing students to focus on their book theories.

Late 2018

I had the opportunity to develop for myself - instead of being a day time employee or continuing as a contract developer. Over the past 35 years, parts of my career had opened up a need for me to focus once again on "DOS Development" and "Web Development". I was porting code from CB86 (C Basic from Digital Research, which died around 1986) to Pascal Web Script. I had acquired the rights to DOMAPI source around 2009/2010, that I market as Premier WCL (Web Component Library) and started making a "Windows Looking" Web Browser-Based Accounting Application. I had just finished a large web project which used Modern Pascal's Celerity (Apache Module) engine, where I realized there were things from my BBS days I needed which would improve my go-to-market timelines, so I started developing the pieces and incorporated them into Modern Pascal's RTL (Run-Time Library). I started by porting  JAMmb Turbo Pascal source (coded by Joaquim Homrighausen) to my Modern Pascal (I personally rewrite all source I use, allowing me to have a complete grasp of the code and its functionality). I found a couple of bugs in the design/implementation, and by Jan 2019, I had a fully functional JAM Message Base.

Of course, to test the full aspects of something this critical to my projects, I needed a way to truly push the code to its limits. Jan 2017, I had rejoined the global message network called Fidonet. I had written my own Mailer (front-end) using Modern Pascal and an acquisition called Halcyon (xBase Framework) and my Fidonet message "tosser" to import the messages from Fidonet PKT to xBase .DBF files. Jan 2019, I successfully ported my mailtoss.p script from using xBase to using my DXJAM API. At which time, a conversation started between me (a person who also acquired PCBoard source code along with another company's code (Motor City Software DOOR Games, and QuickBBS 2.8.0)) and someone currently running a large PCBoard system in Canada. This ultimately sparked my desire to rewrite one of my favorite BBS packages (PCBoard) using my programming language (Modern Pascal).

August 2019

I had projected it would take me 6 months to develop a PCBoard Clone calls PBBS v16.0 from scratch using my framework, and 2 months of bug fixes. Placing me to release the product during the month of August. Even losing 6 weeks moving from Richmond Virginia to my new place in Florida, I still hit a Pre-Alpha Experience release just before August 1st. Now, I am 3 weeks into the month, I am focusing on developing the documentation for Professional BBS v16.0 - an Open Source demonstration of Modern Pascal.

Using CodeRunner

As the author of DXSock Server Socket Suite, it just made sense to develop a socket server dedicated to running Modern Pascal scripts. This coupled with the fact that PBBS is Open Source, allows PBBS v16 to work natively with Internet terminals using CodeRunner. CodeRunner also supports different scripts on different ports, allowing PBBS to offer NNTP access to the message areas. CodeRunner also allows PBBS to provide FTP access to existing users too.