PCB16 Documentation


PCBoard Version 16 Introduction

PCBoard is a term that conveys the importance in distinguishing the evolution of a specific Bulletin Board Software Package publically known as PCBoard (Professional Computer Board). 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 normal 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 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 redesigned 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.

Why Modern Pascal?

Modern Pascal Solutions, LLC. founder focuses a lot of time and effort on Innovative designs while being a pragmatist when it comes to implementation. Modern Pascal has had two primary development paths, Web Scripting and BBS. Learning to develop in the early 80's by redesigning a BBS package his father purchased for him. A long living passion for BBSing has driven many of his business decisions. Early on as a communications specialist for companies like IBM and Hayse Technologies, and ultimately PR and UPI news parsers for Planet Connect Fidonet service.


Screenshot: Mac OS X

Pascal

As a self-taught programmer in the early 80's, most of my learning was dialects of Basic for different hardware the 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 source 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 be 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.

Modernized

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 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 hire Alexander Baronovski to personally tutor me on developing DXJavaScript for my 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 a high-level language that is very dynamic and currently marketed as the reactionary tool for Web applications and 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. And 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 a contract developer. And 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, 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 to 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 to 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 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 JAM API. At which time, a conversation started between myself (a person who also acquired PCBoard source code along with another company's code (Motor City Software)) and someone 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 PCBoard 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 PCBoard 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 PCBoard is now Open Source, allows PCBoard v16 to work natively with Internet terminals using CodeRunner. CodeRunner also supports different scripts on different ports, allowing PCBoard to offer NNTP access to the message areas. CodeRunner also allows PCBoard to provide FTP access to existing users too.