If you have a terminal app installed on your device, such as the Mac OS X / macOS Terminal, Hermes Terminal, SyncTERM, ZTerm, etc., click on the above image to telnet to the Armageddon BBS. Clicking on the above image should result in your terminal/telnet client being launched/started on your computer, if everything is set up properly on your end. This is normal behavior, so don't be alarmed when your terminal/client runs.


Click or Tap Icons to Share! Thank you!

Hermes II BBS Source Code Compilation Tutorial


Copyright © 2015-2026 Bill Kochman

Published On :
Mar. 14, 2015

Last Updated :
Oct. 11, 2026

Purpose of This Guide

The purpose of this tutorial is to assist you in properly compiling the Hermes II BBS source code -- version 3.5.11 -- on Macintosh computers running recent versions of Mac OS X and/or macOS which no longer support Apple's Classic environment -- that is, the Applications (Mac OS 9) folder -- using the Terminal, the SheepShaver emulator and the THINK Pascal compiler. There are links to obtain all required tools lower on this same page.

Requirements

• A working installation of THINK Pascal 4.0.2 [4.5d4 and 4.5a1 will not work]
• A working installation of SheepShaver
• A copy of the Hermes II BBS source code

Preparation

Note: Some of the following steps may require that you provide your admin password. Simply do so.

• SheepShaver

This tutorial assumes that you already have SheepShaver installed on your Mac OS X or macOS hard drive. If you don't have SheepShaver installed yet, there are links further down on this same page where you can download different versions of SheepShaver which are compatible with your machine.

• THINK Pascal

If you already have THINK Pascal 4.0.2 installed in your Mac Classic environment -- that is, in your SheepShaver setup -- you may use it. However, in order to avoid any potential problems during the build process, it is advisable that you install a fresh copy of the same following these steps:
• Download the four THINK Pascal 4.0.2 disk images from the link that is found lower on this same page. The file is called THINK-Pascal-4.0.2-Disk-Images.sit

• Place the "THINK-Pascal-4.0.2-Disk-Images.sit" file -- via your Mac OS X hared folder -- into your SheepShaver environment where you have Mac OS 9.0.4 installed. You created this shared folder -- which for the purposes of this tutorial, we will assume that you have named Shared -- when you first set up SheepShaver. As you should know, this Shared folder acts as the gateway between SheepShaver's Classic environment, and Mac OS X's Unix environment.

• In your Mac OS 9.0.4 environment -- or whatever version of Classic Mac you are using -- extract the four disk images from the StuffIt archive -- [.sit]

• Simultaneously mount all four disk images on SheepShaver's desktop.

• Open the disk called THINK Pascal 1 and carefully follow the installation instructions which are found in the file called Installation THINK Pascal. You must have TeachText or SimpleText installed in your SheepShaver installation in order to properly see the images in these extracted files.

• When you have completed the installation, you should have the following six folders in the Development folder. You created the Development folder when you followed the instructions in the installation Read Me file:
MacApp 2.0 for THINK Pascal 4.0
TCL 1.1 Pascal Demos
THINK Pascal 4.0 Demos
THINK Pascal 4.0 Folder
THINK Pascal 4.0 Utilities
THINK Reference 1.0 Demo
Important: When you use the installer called THINK Pascal Utilities.sea which is found in the THINK Pascal 1 disk image, it will install a folder called THINK Pascal  4.0 Utilities. This folder name will have TWO SPACES before the 4.0. You must remove the extra space, as otherwise, you will be unable to fully convert and translate the Hermes II project files when you run the shell script in the Mac OS X terminal.

• Rename the enclosing Development folder exactly to THINK Pascal 4.0.2. This is likewise an important step, as otherwise, the shell script will not be able to locate your THINK Pascal installation on the Mac OS X side.

• Drop the renamed THINK Pascal 4.0.2 folder onto the Unix icon on your SheepShaver desktop. This will make the THINK Pascal 4.0.2 folder available in your Shared folder on the Mac OS X side.

• Now go to the top level of your Mac OS X hard drive. This is where you will find the following folders:
Applications
Library
System
Users
In that same location, create a new folder called Applications (Mac OS 9). While you don't really have Apple's Classic environment installed on your computer, nevertheless, the shell script you are going to use needs to be able to find this folder.

IMPORTANT: In more recent versions of macOS, Apple does NOT allow users to create new folders at the top level of their hard drive. As such, you need to do it in a roundabout -- but easy -- way. Please click here for instructions.

• Drag the THINK Pascal 4.0.2 folder which you just placed in SheepShaver's Shared folder, into the newly-created Applications (Mac OS 9) folder.
With this last step, your preparations are now complete, and you are ready to work with the Hermes II source code in the Mac OS X terminal. Congratulations!

Converting and Translating Hermes II GitHub Files

• Download the Hermes-3.5.11-Source-Code.zip archive from the link that is provided lower on this same page. The link is called Hermes 3.5.11 Source.

A word of explanation is in order here. The reason why we are using this copy of the Hermes II source code instead of the one that is located on the GitHub website, is because I discovered that one of the two NodePrefs.p files that is included in the GitHub Hermes II zipped archive is corrupted in some way. As a result, this file will not be translated, or included in the working files which you will be using in THINK Pascal.

In fact, if you were to run the shell script in the Terminal using the zipped archive from GitHub, it would spit out an error, informing you that there is something wrong with the aforementioned file. In short, you will not be able to successfully compile Hermes II 3.5.11 in THINK Pascal, because the compiler will give you an error stating that it cannot find the NodePrefs.p file. It cannot find what does not exist, because the Terminal did not create it due to the error that exists in the file itself.

Please note that I am not a programmer. As such, I have no idea what the actual error is in the NodePrefs.p file. However, once Michael Alyn Miller -- the current owner and last active developer of Hermes II -- fixes the problem, I will gladly change the link at the bottom of this page so that it points directly to the zipped archive that is on the GitHub website. That way, you can be certain that you will always have access to the newest code and commits when using this tutorial to compile the Hermes II source.

At any rate, in order to rectify the problem for the time being, I copied the code for this particular project file from the GitHub Hermes II repository, and I created a new NodePrefs.p file. You will find a link lower on this same page where you can download both NodePrefs files. Installation instructions are included with it. It's easy.

• Once you have downloaded the Hermes-3.5.11-Source-Code.zip file, place it in your Home directory.

• Launch the Terminal app -- it is located in your /Applications/Utilities folder -- and use the following command -- followed by hitting your Return key -- to unzip the archive in your Home folder:

unzip Hermes-3.5.11-Source-Code.zip

• Doing the above will produce a new uncompressed folder in your Home directory called HermesBBS-main.

• The next step is to change directories so that you will be inside the HermesBBS-main folder. This is necessary so that you can run the shell script that is located there. So, type the following command at the Terminal and hit the Return key:

cd HermesBBS-main

• Now it is time to run the shell script. It will do the following things in a matter of a few seconds. Let me tell you what they are before you actually run the script:
It will create a new folder in the HermesBBS-main folder called Working.

It will convert the Hermes.proj.r and Hermes.r files and place them in the Working folder.

It will translate all of the files that are found in the Includes and the Source folders, and place them in the newly-created Working folder.
• Now that you know what the shell script will do, let's do it by typing the following in the Terminal. Don't forget to hit the Return key after typing the command:

./prepare.sh working

• Before continuing, it would be good if you understood why all of these steps are even necessary. I emailed Michael Alyn Miller regarding this issue, and he wrote back to me with the following comments:
"Git doesn’t support Classic Mac OS; it pretty much only works on UNIX and Windows. This means that you have to work with the Git repository (the contents of which you have in that zip file) from a UNIX environment.

The problem with working with the files in a UNIX environment is that they are then formatted entirely differently from what works in a Classic Mac OS environment! UNIX files end in LF (\n), but Classic Mac OS files end in CR (\r). UNIX text files are in UTF-8, but Classic Mac OS is MacRoman. UNIX has no concept of resource forks and so the resource fork data for Hermes on GitHub has to be stored in .r (Rez) text files. UNIX has no concept of file/type creator, but you need the right file type and creator for things to work in Classic Mac OS. 'prepare.sh' basically fixes all of these problems for you, but it only runs in a Mac OS X terminal that has the right stuff setup."

In short, Michael not only had to do a lot of work in order to make the original Hermes II source code files compatible with the GitHub website, so that they would be available to adventurous souls around the world -- such as you and I -- but he also had to provide a way to convert those files back into something that is recognized by and compatible with THINK Pascal, once we downloaded the source to our own computers.

It kind of reminds me of how a modem works. It is a modulator/demodulator device. It converts signals back and forth so that both telephone lines and computers can use the data. So in my understanding, that is more or less what the shell script does as well.

• Now, if you have done everything properly and exactly as I have explained it to you in this tutorial, upon entering the ./prepare.sh working command at the prompt, the Terminal app will then proceed to do everything that I described to you earlier. While all of that is happening, it will display the following information in the Terminal window. If you see anything other than the following, something is probably wrong somewhere, and you are up the creek! :)



Moving the "Working" Folder to SheepShaver

• Assuming that everything has gone well for you, and there is not a single error on your screen, let us proceed. Open the HermesBBS-main folder, and then copy the Working folder within it over to SheepShaver's Shared folder. You can use the original Working folder if you like. However, I prefer to just copy it so that I still have a backup remaining in the HermesBBS-main folder.

• Next, go to your SheepShaver desktop, and open the Unix drive. You will now see the copy of the Working folder that you just placed there via the Shared folder.

• Open SheepShaver's startup drive, and then open your main THINK Pascal 4.0.2 folder. This is where the following six folders are located:
THINK Pascal 4.0.2 <----- Go inside here!
    MacApp 2.0 for THINK Pascal 4.0
    TCL 1.1 Pascal Demos
    THINK Pascal 4.0 Demos
    THINK Pascal 4.0 Folder
    THINK Pascal 4.0 Utilities
    THINK Reference 1.0 Demo
• Next, drag the Working folder from the Unix drive into the now-open THINK Pascal 4.0.2 folder. When you are done, your folder hierarchy should look like this:
THINK Pascal 4.0.2
    MacApp 2.0 for THINK Pascal 4.0
    TCL 1.1 Pascal Demos
    THINK Pascal 4.0 Demos
    THINK Pascal 4.0 Folder
    THINK Pascal 4.0 Utilities
    THINK Reference 1.0 Demo
    Working

Running the THINK Pascal Compiler

• Now you are ready for some serious business! :)

• Open the Working folder and double-click on the Hermes.proj project file. Doing this will immediately launch the THINK Pascal compiler, and will display the Hermes.proj project window, which will be populated with all of the necessary resources and libraries.

• Click on the Build Application option under the Project menu, and when prompted, choose a location for the newly compiled Hermes II application. By default, THINK Pascal will select the top level of SheepShaver's hard drive, which is fine.

• Within seconds, you will have a copy of the latest build of the Hermes II application. Bravo! Well done! No sweat, right? :)

• Let's tidy up a bit now. Select Close Project under the Project menu, and then shut down the THINK Pascal compiler.

• For safe-keeping, make a backup copy of your new Hermes II application, compress it, and then store it in a secure location, either on your Mac OS X hard drive, or even on some external medium.

Replacing Your Hermes II Application

• Assuming that you already have a previous version of the Hermes II BBS package running on your virtual machine -- meaning SheepShaver -- when you are ready, do the following:
1. Shut down Hermes II if it is running.

2. Compress your current version of the Hermes II app -- that is, the one you have been running up until now -- just to avoid any possible confusion. Only compress the app itself, and not any of the folders.

3. Place the new version of Hermes II at the top level of your Hermes II installation where your current Hermes II app is already located.

4. Put your current version of the Hermes II app -- that is, the one you have been running up until now -- in the trash. Don't worry. You've already made a compressed copy of it, right?

5. Launch the new version of the Hermes II application.

6. Log on to your new Hermes II BBS and check for any possible problems.
• Congratulations! Your new version of the Hermes II BBS software package should now be running smoothly without any hiccups. Good for you! :)

Avoid the Headaches!

• Important: Please note that if you decide to change the name of your main Hermes II folder in order to reflect the new version number that you are running, you will break all of the paths to your file transfer directories. Thus, when you reboot Hermes II, you will hear a lot of beeps, and get a window full of error messages. If you only have a few file directories on your Hermes II BBS, it is no problem to fix the paths under the Setup/Transfers menu. However, if you have dozens of areas and directories on your BBS, it will be a major headache to fix them all. So think about this before you decide to change the name of your main Hermes II folder on a whim.

The Hermes II BBS Coding Challenge!

Wouldn't it be great if some THINK Pascal coding genius, or perhaps a group of coding geniuses, who have the time, interest and patience, decided to overhaul the Hermes II BBS code base so that it can run natively on the latest version of Mac OS X? Are you prepared to let Macintosh BBSing die? Are you prepared to let Hermes II wither away, die and go silently into the night without the least bit of a whimper?
It has been two years since Michael Alyn Miller made the Hermes II source code open source, and even took the time to upload it to the GitHub repository. Sadly, there it has languished, untouched, and unused, until now. Do you miss the good old days of Macintosh BBSing? Wouldn't you like to see Hermes II with a modern interface? Will you make a difference?


Tools to Compile Hermes II BBS Source for Mac Classic


Click the blue link on the left side to either go to that page, or to download that particular file.

Hermes II Compilation: Online detailed guide to compile Hermes II BBS source code on a macOS machine with SheepShaver and Mac OS 9.0.4 installed.
Hermes 3.5.11 Source: The source code for compiling the Hermes II 3.5.11 binary.
NodePrefs.p Files: Good copies of the NodePrefs.p and NodePrefs2.p files. You need these to compile Hermes!
Think Pascal 4.0.2: Disk images to install THINK Pascal 4.0.2 in SheepShaver or Basilisk.
ShrinkWrap 2.1: You may need ShrinkWrap 2.1 to extract some files in SheepShaver.
VirtualCD Imager 1.0d0: You may need VirtualCD Imager 1.0d0 to extract some files in SheepShaver.
Floppy Disk Image: You may need this Floppy Disk Image to create images in SheepShaver.
Hermes II BBS: GitHub: Repository for Hermes II BBS source code.
Hermes Externals: Older externals which will only work on pre-Hermes II 3.5.11.
Hermes II 3.5.2 Documentation: Hermes II 3.5.2 documentation in PDF format.
Hermes II FidoNet External: Hermes II FidoNet External to send/receive Fidonet Mail.
Formula 1 1.1.9r5: Formula 1 1.1.9r5 mailer system for Hermes.
Public Address Stripped: Stripped down version of Public Address BBS to preview your ANSI art or to telnet.
MRJ 2.2.6: Lets you run PPC apps in Classic Mac.
MRJ SDK 2.2: Macintosh Runtime for Java SDK for development.
Carbon Library 1.6.1: You need this to launch Carbon apps in Mac Classic.
ASCII TrueType Font: Download this font to properly display PC-ANSI graphics in the Mac OS X or macOS Terminal app. There are other third party terminal apps which may work well too.
256-Color ANSI Palette Part 1: 256-Color ANSI Palette Part 2: 256-Color ANSI Palette Part 3: 256-Color ANSI Palette Part 4: These four .ans files show the exact ANSI color codes you need to write and display ANSI graphics on your BBS. The files will open in any plain text editor or ANSI program and include not only the code to type, but a small sample of each actual color. [.ans]
Complete 256 Color ANSI Codes Table: This page lists all 256 ANSI codes -- including color samples -- and shows you how to add them to your BBS's ANSI files.
Armageddon Files List: Armageddon Current Files List 10-11-26. [TEXT]


Different Versions of the SheepShaver Mac PPC Emulator


Click the blue link on the left side to download that particular file. If you have any questions or problems with installing and using SheepShaver, please refer to the Emaculation SheepShaver Forum. People such as Cat_7, Ronald P. Regensburg and ClockWise will be happy to help you with installing SheepShaver directly on a recent macOS machine, or in a virtual machine on older versions of Mac OS X.

IMPORTANT: Please note that using SheepShaver does require that you have a compatible ROM file, as well as a retail version of a Classic Mac OS install CD, or else an install CD disk image. Due to legal reasons, I am not able to provide them here. However, Google is your friend, and if you search hard enough, you WILL find that which you seek.

SheepShaver 2.5.0 2024-02-28 Universal: Universal version - Will run natively on both Intel Macs and Apple Silicon machines. Recommended for macOS 10.13 (High Sierra) through macOS 14 (Sonoma).
SheepShaver 2.5.0 2023-05-12 Wrapper Version: Wrapper version - This Mac OS X / macOS version of SheepShaver does NOT require that you have VirtualBox or another emulator on your Mac OS X or macOS machine.
SheepShaver 2.5.0 2022-09-13 Universal: Universal version - Will run natively on both Intel Macs and Apple Silicon machines. Recommended for macOS 10.9 (Mavericks) through macOS 12 (Monterey).
SheepShaver 2.5.0 2019-05-04 64-Bit Intel: 64-Bit Intel version - Recommended for Mac OS X 10.7 (Lion) through macOS 10.12 (Sierra).
SheepShaver 2.4.0 2018-07-09 32-Bit Intel: 32-Bit Intel version - Recommended for Mac OS X 10.4 (Tiger) through MacOSX 10.6 (Snow Leopard).
SheepShaver 2.4.0 2014-02-01 Universal Binary: Universal Binary version - Recommended for PPC Macs running OS X 10.4 (Tiger) and later.
SheepShaver 2.3.0 2006-05-14 32-Bit PPC: 32-Bit PPC version - Requires that you have VirtualBox or another emulator on your Mac OS X or macOS machine.


Other Useful Mac Classic Apps


Over time, I may add more useful files to this collection of apps you can use in your Mac Classic environment inside of your SheepShaver installation. Stay tuned!

BBEdit Lite 4.6: For decades now, all my websites have been made with this great text editor.
Black Night 1.0.7: Great Mac Classic telnet client to visit other BBSes.
Classilla 9.3.3: Before there was Safari and Firefox, there was the Classilla web browser.
Mozilla 1.1: Another great pre-Safari, pre-Firefox web browser for Classic Mac.
BatChmod 1.7b5 Leopard+: This gem of an app, which I have used for many years, allows you to easily change ownership and permissions on folders and files on Mac OS X/macOS.
WindowShade 1.3.1: Collapses windows in place on Classic Mac with cute roll-up sound. I still use it!


Assorted Armageddon BBS Images


Logon Sequence Map: This image shows you what happens after you log on to the Armageddon BBS.
More BBS ANSI Screens: These are nine 2015 PC-ANSI graphics logon screens from Armageddon BBS.
VirtualBox-SheepShaver Screenshots: Two 2015 screenshots of my VirtualBox, SheepShaver, Mac OS 9.0.4 setup.
Armageddon BBS Tutorials Header Images: These are four 2015 header images I used on some of my Armageddon BBS tutorial pages.


Other Tools and Resources


Please telnet to my old-school PC-ANSI based BBS called "Armageddon BBS", or use a Hotline client to visit the "Armageddon Server" on Hotline.

Underline HL Client PPC: Version 1.9.5 - Use on Mac Classic to connect to Armageddon Server on Hotline.
PPC Hotline Client: Version 1.9.2 - Use on Mac PPC to connect to Armageddon Server on Hotline.
PPC Hotline Server: Version 1.9.1 - Create your own Hotline server with this Carbon/PPC software.
Underline HL Client: Version 1.9.5 - Use on Windows to connect to Armageddon Server on Hotline.
SheepShaver Forum: Help to set up SheepShaver on Mac OS X, Windows and Linux [very good]
VirtualBox Setup: Detailed guide to set up VirtualBox, Mountain Lion and SheepShaver
Basilisk II Forum: Help to set up Basilisk II on Mac OS X, Windows and Linux [very good]
Telnet on Windows: This images shows how to start telneting on Windows 7 and 8.
Telnet BBS Guide: How To Access Telnet BBS Systems [mainly for Windows]


Armageddon BBS Tutorials


Sadly, I trashed these tutorials years ago after I shut down my board, and left BBSing for good ..... or at least so I thought. Perhaps one of these days I will recreate these tutorials. For now, they are listed here as a placeholder, and as a reminder to me to recreate them one of these days.

Main Menu Tutorial: Step-by-step guide to using Armageddon BBS main menu commands.
Posting & Editing Msgs: Step-by-step guide to posting and editing messages on Armageddon BBS.
Transfer Menu Tutorial: Step-by-step guide to using Armageddon BBS file transfer menu commands.
Files Areas/Directories: Learn how files are organized on the Armageddon BBS.
Download Files Tutorial: Step-by-step guide to downloading files on the Armageddon BBS.
Fix Flipping Screens: Step-by-step guide to fix flipping screens on the Armageddon BBS.
Choose a PC-ANSI Font: Step-by-step guide to choosing a PC-ANSI font for the Armageddon BBS.
OS X Terminal Settings: Step-by-step guide to manually adjust Mac OS X Terminal for BBSing [PDF]
OS X Terminal Settings: Step-by-step guide to manually adjust Mac OS X Terminal for BBSing [HTML]



Click or Tap Icons to Share! Thank you!