ZX Spectrum – BASIC Listings – Games by CCS

Games by CCS

This company released a lot of titles, mostly strategy and war based, but there are a few adventures on here too. They were prevalent in the early days of the ZX Spectrum (quite a few of their titles were ZX81 ports) and I’ve found as many as I can that I could break into.

I have not included every game though. Some were written using The Quill and others, like their war games, were a mixture of BASIC and Z80. Some of the early ones were compiled using the Wye Valley Compiler or MCoder II by PSS.

A lot of the older titles used the same routine to display the CCS logo on a copyright introduction screen. It pops up in a lot of the BASIC listings below. The logo is displayed via a set of UDGs which, if the game needed to re-use them it overwrote the CCS ones once the copyright intro screen was bypassed.


What’s in each download

Each download will contain the tape image/snapshot of the title plus a number of text files depending on how many parts there were for the title.

Sometimes the .TXT files included were the equivalent of MERGE “” to get at the code, others were a lot harder. For every one, I’ve used ZX Preview to get at the BASIC.

Not all of the titles on this, and the other pages, will use all the possibilities listed in the legend below. The easier ones to port to another language/system will be the ones that used the least of the ZX Spectrum’s functionality.

The majority of the TXT files with the source code will have one command per line – aka ‘Structured mode’ as ZX Preview calls it. This, to my mind, makes it easier to understand and read through if you’ve never seen a ZX BASIC code listing before. There might be some still using a normal list, but I’ll replace those as and when I find them.

Table Legend:

UDGs = Code uses UDGs within the Print statements. UDGs are either POKEd via BASIC, or loaded from tape.
Font = Uses a new font to replace the standard Sinclair font. BASIC will poke 23606 & 23607 with the new address.
Z80 = Uses Z80 machine code, either in separate files or in REM statements within the BASIC code.
MS = Uses Memory Savings (see this page) to save precious bytes for the target machine(s).
EC = Uses Embedded Colours (as well as, or instead of BORDER, PAPER & INK commands)
EG = Uses Extended Graphics (The little square shapes available in Extended Mode)


Strategy Games

Game Title/YearDownloadUDGs?Font?Z80?CS?EC?EG?Notes
1984DownloadNNN??YWas originally saved as CODE with SCREEN$ as a “protection”.
AirlineDownloadYNNY?YCode savings also used, including a GO TO CODE “Y”^2 (which is 7921) near the start.
AutoChefDownloadNNNY??100% BASIC. Plus a lot of GOSUBs to routines calculated based on the value of ‘m’.
BaronDownloadNNN??Y100% BASIC. Although a game about being a Baron with weapons to hand such as Spears, Swords, Bows, Crossbows, Muskets and .. erm .. Lasers sounds interesting :)
BreweryDownloadYNY??YNice, long, and easy to understand variable names :)
Small Z80 routine stored at 65000 needs to be extracted from the TAP. Not called very often.
British LowlandDownloadYNN?YNNot a mickey take on British Leyland at all … :)

100% BASIC. Uses an odd RANDOMIZE USR 4317 in the code – not quite sure what that does as nothing happens in ZX Spin when I try it.
Corn CropperDownloadYNNY?YCode savings also used, including a GO TO CODE “Y”^2 (which is line 7921) near the start and a GOTO CODE “<“- CODE “6” (which is line 6) shortly after that initial weird GOTO code.
Games of Strategy IDownloadYNN?YYContains five separate games: Exasperation, Match Maker, Network, Snake Bytes and Trespass.

All are 100% BASIC, but Snake Bytes uses an extra file for the UDGs, the others don’t.
Games of Strategy IIDownloadYNN?YYContains three separate games: Blocked, Dominoes and Magic Jokers.

Dominoes uses a 30 byte routine stored at 65000 which is POKEd in during the set up of the program.

Note: The downloads from Spectrum Computing indicate there’s a separate Side 2 of the tape you can download, but it’s a perfect copy of Side 1.
Magic JokersDownloadYNN?YYExactly the same game that was included on Games of Strategy II (see above). No changes have been made.
OligopolyDownloadYNN???This isn’t a rip off of a certain capitalist house building game in any way at all .. *cough* Monopoly *cough*.
PlunderDownloadYNY???A mixture of BASIC and Z80 code in this one.

Uses ~6K of Z80 code stored at 58422. Game pokes into this area and calls it a lot for when the ship sprites are displayed?
PolarisDownloadYNY???Submarine simulator. Mostly BASIC but there are three separate routines called from the Z80 code hidden in the REM statement.
Print ShopDownloadNNN?YY100% BASIC.
SmugglerDownloadYNN?YYCountries to visit stored in a$, stuff you can smuggle stored in b$. In case you want to add more :)
Stock MarketDownloadYNY?Y?Extra Z80 loaded (at 65122) but isn’t called in loader, before main program. This Z80 will need disassembling to see what it does and where.
The BizDownloadYNN?YYIncludes some classic singles from the 1980s for its band/record data. Easily add more or update as you see fit.
The Byte v1 & v2DownloadYNN???Both versions of the game are included.

Version 1: Loader (with information), then SCREEN$, then a program with the full instructions and then finally the game.

Version 2: Main program loaded, then the UDGs and finally the SCREEN$.
UnitedDownloadNNN???Mostly single letter variables but there is a “cash$” you can alter :)

Also a few system variables are POKEd (23561, 23562 and 23609)
Whodunnit?DownloadYNN?YYIt’s not a Cluedo rip-off (or Clue for USA vistors) but it’s very similar.

Also includes printer support via LPRINT command.

Adventures released by CCS are on the Adventures page.


This is the (old) standard of copyright message that’s used in a lot of the earlier CCS titles. It creates the CCS logo by way of three separate UDGs (‘s’,’t’ & ‘u’) and then displays the copyright text with the name of the game. In this instance it’s their text adventure Diamond Quest. (The full BASIC code for it is on the Text Adventures page).

9900 REM \#020\#000\#020\#001COPYRIGHT\#020\#000
9905 POKE USR "T",31: POKE USR "T"+1,63: POKE USR "T"+2,112: POKE USR "T"+3,224
9910 POKE USR "T"+4,224: POKE USR "T"+5,112: POKE USR "T"+6,63: POKE USR "T"+7,31
9915 POKE USR "U",0: POKE USR "U"+1,15: POKE USR "U"+2,15: POKE USR "U"+3,3
9920 POKE USR "U"+4,1: POKE USR "U"+5,0: POKE USR "U"+6,127: POKE USR "U"+7,127
9925 POKE USR "S",0: POKE USR "S"+1,254: POKE USR "S"+2,254: POKE USR "S"+3,128
9930 POKE USR "S"+4,192: POKE USR "S"+5,224: POKE USR "S"+6,240: POKE USR "S"+7,240
9940 BORDER 0: PAPER 0: INK 7: CLS 
9945 PRINT AT 2,7;"PUBLISHED BY   "; FLASH 1;"\t\t"
9946 PRINT AT 3,22; FLASH 1;"\u\s"
9950 PRINT AT 9,7;"COPYRIGHT WARNING"
9955 PRINT ,,,,"CASES COMPUTER  SIMULATIONS LTD ": PRINT "will  rigorously  protect  the": PRINT "copyright, of DIAMOND QUEST": PRINT "Please note unauthorised copying": PRINT "hiring,  and lending  of this": PRINT "software is strictly prohibited."
9960 PRINT AT 21,3; INK 6; FLASH 1;"Press any key to continue"
9965 IF INKEY$="" THEN GO TO 9965

Back to ZX Spectrum – BASIC Listings