"FOREM using BASIC XE.
This version of FOREM BBS requires the commercial BASIC XE
cartridge in order to run. It is in the public domain and can import and
export messages from the Atari PRO! BBS EXPRESS-NET (7-bit text only,
control ATASCII graphics are reserved for message data-structure bytes).
FOREM-XE BBS is still currently in use as we speak, and may be reached via
the PRO! EXPRESS-NET as long as the cross-networking "transnet" is still in
effect." - Atari FAQ
Forem-XE Pro is a public domain BBS program, being a rewrite of Matt Singer's original FoReM XE BBS. My first experience with it was late 1989, when version 4.5 had just been released. When I finally purchased a Basic XE cartridge and upgraded my 800XL to 256k, I was finally able to switch over from the old Oasis Jr. program to FXEP. What impressed me about it was the ability to run external programs and then return right where it left off, plus the message networking on this system was second to none, with information stored in the message data that allowed complete threading of messages and replies across different systems. There were also several excellent online games written for it, incuding Darel Schartman's 'Horror Castle', probably the best 'haunted house' game ever written for an Atari 8-bit BBS.
The core of the BBS was the Automatic Modem Processor (AMP). This machine language core handled the sysop display screen, X/Ymodem block transfers, word-wraps and page-breaks on text files and messages, and was the main "traffic cop" for all I/O, automatically opening and closing the modem channel as needed, as well as watchdogging the carrier.
By version 4.8, the program had outgrown even the extended memory capability of Basic XE, and the file transfer section was spun off into its own module. Version 5.0 saw AMP rewritten, tightening some of the code, especially the modem output. The last released version, 5.4, saw TWO versions of AMP, one for the SIO modem interfaces, the other for the PBI interfaces. The PBI version especially was optimized for 19.2k port speed. In the main program, some Basic routines were replaced with machine code, which speeded some functions up considerably. - Len