ZX-80 Shop Steward
Shop Steward is a satirical game - a simulation of 1970s UK industrial relations written for early home computers. The original Integer BASIC version was written on a 24K Apple ][ in 1979, subsequently printed in the June 1980 issue of Computing Today magazine, soon republished in the June 1981 news-stand quarterly Hobby Computing (Games Programs) and the Atari Computing tape-zine, and much later ported to Sinclair ZX BASIC for the Science Of Cambridge ZX-80 micro.
The ground-breaking ZX-80 computer was reviewed in the same issue of the magazine that first published the game, and I used the magazine publishers' review copy of the ZX-80 manual (retrieved from Argus Press years later when it would otherwise have been thrown out) in the course of the conversion.
I wrote the program at school while studying for my A-level exams at the age of 16; it was the first of many games published under my name, and crucial to my subsequent career though I had little thought of publication at the time.
These days I port much larger programs - a million lines of source, or more - between modern game platforms as part of my day-job. It takes a lot longer!
Please click on the accompanying images to read a scan of the original three-page article in Computing Today magazine. The background photos are stills from the British film 'I'm all right Jack' which was released in 1959 starring Peter Sellers, Irene Handl, Ian Carmichael, Richard Attenborough and Terry Thomas.
The first page sets the scene and includes an explanation of the program and conversion notes. The second spread consists of a flow-chart on the left and BASIC program listing on the right. At the time I was paid £30 per page - not much less than my weekly take-home wage as an apprentice CAD programmer a few months later - so the extra space taken up by the flow-chart was much to my benefit, as well as making the spaghetti-style BASIC program a little easier to follow.
The ZX-80 version of the game requires at least 3K RAM expansion. It can be downloaded from here
in .O format which can be loaded into a real ZX-80 via hardware such as ZXpand
or into emulators such as SX81
, xz80 or z81; follow the link for information about all three - I tested the code with SZ81 on an Asus Eee PC netbook running Debian GNU Linux, and an original ZX-80 with modern ZXpand add-on hardware. Type RUN (press R, then new line) to start the program after loading it.
The original Apple ][ version is on a 1979-vintage Apple DOS 3.2 5.25" floppy disk which I am no longer able to read. I shall add that file if I find someone with the necessary equipment to help me recover it; unfortunately I have not seen the hardware in more than 30 years and my later computers cannot read the software-encoded GCR format Steve Wozniak boiled up for early Apple disks. Please contact me if you might be able to help.
The ZX-80 version was re-typed from the original listing, slightly modified to cope with the inability of the ZX-80 to scroll the screen, or compute and display at the same time - by adding INPUT lines to wait for the user to read fresh text, continuing only after New Line is pressed - and to make it a bit easier to play.
The ZX-80 had a minimal and non-standard character set, which is why block graphics are used to approximate a per-cent sign and CAPITAL LETTERS are used throughout. Like the Apple ][ and my own first computer, the 16K Video Genie, lower-case characters are a luxury unsupported by the ZX-80 hardware!
The game now displays very simple block graphics on the title screen and labels each report with the year and quarter-year being simulated, starting in Q2 1980 when the game was first published. If you survive to the current date without being kicked out by employees or management you're doing very well.
You should not expect a serious simulation in 4K, and indeed you won't get one! It's a very simple game designed to be easy to type in and convert for other early home computers, which is why only whole number (integer) arithmetic is used (in the range +/-32767), and text handling is minimal - a single string variable is used for input, and only the first character of the reply is used in making decisions. You have the source, and documentation, so you are free to make whatever changes you see fit - and this time you don't need to retype and debug the listing first :-).
Your main options as 'shop steward' of your union branch are to chose the amount of industrial action your members will take each quarter, ranging from 0
- none - via 1
, informal pressure on management, through 2
, a 'work to rule' (no overtime or flexible working beyond their official contracts) to 3
, short 'wild-cat' strikes (still legal before Thatcher's 1980s trade union law reforms) or 4
, a formal all-out strike.
In the role of management the computer may respond with anything from a pay offer to a lock-out, calling your bluff by shutting the factory gates. This in turn affects production and the profitability of the company, leading to job offers (in good times), voluntary or compulsory redundancies (your choice) and the possibility of investment in new technology replacing some staff with machinery, boosting the company's productivity but not the workforce. Meanwhile prices rise, shown in relation to pay by two percentage indices, starting at 100 and rising with wage and price inflation.
Your aim is to balance the competing demands of your membership, their bosses and the market, to stay in office as long as possible. Failure can stem from the bankrupcy of the firm, erosion of staff numbers, or union unpopularity - if fewer than 20 per cent of the workers support the union, it's your job that gets lost. Not all may support a strike - the number of 'blacklegs' who fail to heed a strike call is also computed and displayed, and varies depending upon the extent to which the simulated staff feel the action is justified.
To quit press 5
in response to the main menu, or type anything that cannot be evaluated - ZX
will do the trick. In the former case your score to date will be shown, otherwise the program will stop with an 'unknown variable' error code. When the display pauses waiting for you to read something, string input is used - don't delete the quotemarks or your response will not be accepted. Press New Line
(in quotes) to continue or type A
followed by New Line
to accept the prompted offer (new hires, a pay rise, redundancies, or whatever). Any other input will be interpreted as non-acceptance.
I wrote a similar turn-based political game at the time; Whitehall put you in the role of a politician seeking to balance the needs of electors, parliamentary and ministerial duties, and your own family. That game was published in Practical Compμting Magazine in 1982, and may yet be added here if Shop Steward elicits a favourable response...
Copyright © Simon N Goodwin 1980, 2012.