Authentic build tools used for large games in the 80s

handy tools that can assist in the development of new software
Post Reply
gfoot
Posts: 11
Joined: Tue Apr 14, 2020 9:05 pm
Contact:

Authentic build tools used for large games in the 80s

Post by gfoot » Fri May 15, 2020 1:53 pm

Hi all

I recently discovered, through these forums, Kevin Edwards's Crazee Rider source bundle on Github, which includes the disk images for building it on the BBC, as well as his recent adaptation to build through Beebasm.

I found it fascinating to see this practical example of how large assembly programs were compiled on the hardware of the day - back then I only ever wrote small enough things that the BASIC program that built them could just coexist in memory with the assembled code. I had just about reached the point of thinking about how a linker would work, and using multipass compilation to produce position-independent code, when I stopped using the BBC.

The build setup for Crazee Rider looks like it's evolved over time - this instance requires a second processor and HiBasic, with a BASIC program at &2800 running the build, and paging in a series of other programs at &800 to progressively run through more of the assembly. I guess earlier iterations used shadow RAM (as there's a reference to that in the "master" program) to work without requiring the second processor.

I've also seen references from Matthew Atkinson on these forums to using some form of block-based system to allow independently-assembled parts of the Repton 3 code to interoperate without much dependence on specific routine addresses within the blocks. It seems to have used jump tables to standardize those entry points to fixed addresses at the start of the blocks - a bit like how the official OS entry points work.

I'd be really interested to hear about any other authentic systems that were used in practice to build and link commercial games back in the day. Were there standard systems that were used off-the-shelf, or did everybody roll their own? Maybe software publishers sometimes provided tools to developers who didn't already have their own? Were there many cases of cross-compiling from a different architecture? I guess the second processor kind of counts here, was the Archimedes or any other architecture also used for this?

I'm not as interested in theory about what we could have used - in hindsight with 30 years of development experience and computer science to lean on I think there are a lot of things we'd probably do differently if we went back in time. I'm more interested historically in what was actually used. Which is why I so appreciated Kevin Edwards including the original disk images on his Github!

User avatar
tricky
Posts: 4245
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Authentic build tools used for large games in the 80s

Post by tricky » Sat May 16, 2020 8:08 am

For Jeltron, we had several BASIC programs that each assembled a couple of K and *SAVEd them before chaining the next.
Routines to be used outside of their module had their addresses hardcoded in the module that used them.
The last program *LOADed all the bits and then *SAVEd the final "exe".
I have converted this to beebasm on RetroSoftware if anyone fancies finishing it ;)

A friend of mine bought ADE and two disk drives to build his excellent millipede clone so that he just had a single .asm file.

For a smaller project, I'm pretty sure I had the multiple basic programs, but used an FNkey to *LOAD, OLD, GOTO 10 to link them keeping the variables.

Post Reply

Return to “development tools”