BTOS Basic Program Port?

Ugh!! I just got handed a 35 year old 12,000 line BASIC program from a BTOS system… has anyone tried porting that particular variant to RealBasic / XoJo before?

I have not had an active BTOS system in about 20 years to run it on and check the behavior, etc. - so that sounds like decode the logic and rewrite more than just port it. Unless someone knows of a BTOS emulator?

Porting anything from a 35yr old BASIC to XOJO will be a challenge… unless it has no user interface.

The INPUT and PRINT statments of times past were fine for procedural languages , but don’t find the requirements of a modern day OOP environment.

so all I can offer is… .“Good Luck with that!” :smiley:

No sign of an emulator. I did find a Burroughs B20 BASIC ( assuming that is a BTOS BASIC variant ) manual at:

https://ia802707.us.archive.org/27/items/bitsavers_convergent55B20BASICInterpreterR4.0Apr85_5973041/1180155_B20_BASIC_Interpreter_R4.0_Apr85.pdf

It does not seem to be a relative of any MS BASIC ( presumably pre-dates MS BASIC ).

I would strongly recommend your decode/rewrite option - a port or direct conversion is going to be a nightmare and leave the program reliant on some old ways of doing things.

I am pretty sure it is a derivative of the MS basic compiler that i owned in about 1980. That basic compiler was running on my CPM OS system, an Exidi Sorcerer with S100 unit and a double 5.25 inch hardsectored floppydrive.
Even the manual looks identical except that the one in the link you show has the Burroughs brand on it and was dated april 1985.

I haven’t ported that particular variant of BASIC but I’ve done some really old ones. The key is finding a manual to help you decipher some of the unique commands. After that it’s usually not so bad.

[quote=195420:@Andre Kuiper]I am pretty sure it is a derivative of the MS basic compiler that i owned in about 1980. That basic compiler was running on my CPM OS system, an Exidi Sorcerer with S100 unit and a double 5.25 inch hardsectored floppydrive.
Even the manual looks identical except that the one in the link you show has the Burroughs brand on it and was dated april 1985.[/quote]

Interesting. I’ll take your word for it. It is just that every other MS-based BASIC I have seen says things like “Portions copyright by Microsoft”. But I speak without ever having used such a Burroughs. If it IS MS BASIC based, emulation might work.

CP/M, Andre? BASCOM?

PIP B:=A:*.*

I had a NCR DMV that ran CP/M and MS-DOS ( dual CPU ), thankfully on soft-sectored disks. We show our age, I think. :wink:

My only experience of porting an aged Basic to Real Basic was the version of the natural language processing program Eliza published in Creative Computing 1977. https://en.wikipedia.org/wiki/ELIZA It was not MSBasic or AppleSoft Basic. It became kind of a pet program I ported to AppleSoft Basic and then GWBasic. So it made sense to do that much later in Real Basic. That said, the program was only 250 lines or so. I have no idea of the challenge of a 12000 lines program.

Beyond using a Modal window to simulate input, and a TextArea to displays the Prints, what I remember is the flurry of GOTOs :wink:

I recently ported a 1974 version of StarTrek to Swift… had to create my own “Terminal Emulator”, but it worked out quite well
But it was a pain converting the inline “INPUT” to events

CTOS/BTOS was a fantastic OS and system environment. I was one of the leads in the Coast Guard’s move from tons of different systems to a standardized platform based on the Convergent Technologies CTOS/CTIX platforms (Convergent was that actual manufacturer of the Burroughs / NCR versions).

I’d start by simply importing the top-down code into a new Console project. The first thing that you’ll uncover are the system-specific calls and the weird path syntax for dealing with files. The core of the BASIC is pretty generic, but depending on the database access and file access, it can get pretty “proprietary”. I wrote a Wang OIS Word Processor to CTOS Word Processor document convertor in CTOS Basic among other little time wasters.

Remember, GOSUBs should be turned into Methods. GOTOs can pretty much remain unchanged until you’re ready to refactor them.

Otherwise, as @Dave S said so eloquently above - “Good luck with that.” :slight_smile: