StackComputers
"Greg the games writer". Well not really, I was just in the right place at the right time.
Stack Computers was a summer placement from my thick sandwich course. This was back in 1983 and so the coding you see below is 'dated' to say the least.
I was in the Research and Development laboratory of a small company making lightpens ( see picture ) and joysticks ( and other things ) for the home computer market. I was working on the tailoring lightpens and memory expansion modules to work on other platforms other than the one for which they were originally designed. There was also a spin off, an opportunity to write some games for specific use with the lightpens. In the evenings I worked on the software for these games and produced two - 'Draughts' and 'Othello' as shown on the company adverts. I have the incuded the listing for the Draughts game, it was on a BBC platform.
 inset :- 
Sleeve for Draughts
Seeing as they were written for the BBC microcomputer, the games were distributed in cassette tape format, the sleeve of which is shown below.
See HERE for the actual coding
Game on Joystick Packaging
With the packaging for the joysticks, we included a little game. It started out as just a test program so that the user could check that the joystick was working correctly. But proved to be quite a hit, especially if you there were two of you each playing with a joystick, the competition element was enthralling. Sometimes the most simple game can be the most rewarding to play. I did manage to get my name on that little program which was included in every joystick sold.
And this is the translation :-
BBC JOYSTICK DEMONSTRATION
How it works
The joystick connects to the ANALOGUE IN port at the back of the BBC, which has the facility to accommodate two joysticks simultaneously. For those who wish to use both joysticks ,an adaptor can be purchased separately. This means that the computer has to detect four directional movements, two for each joystick . For one joystick ADVAL(1) and ADVAL(2) are used to sense the X & Y movements and the values returned then have to be multiplied by a suitable conversion factor, depending on the MODE in which the computer is operating. Both the X and Y co-ordinates have to be inverted when using the TAB command, but if the MOVE command is used, only the X has to be inverted. This inversion is necessary since the STACK joysticks are configured to be compatible with ACORNSOFT programs', the inversion should be clarified by the sample program below, which is not intended to be a serious game but illustrates how the joystick may be used.
The 'FIRE' button is sensed using the ADVAL(O) and requires 'AND'ing with 3 to sense when both buttons are pressed simultaneously. See lines 190 and 200 for individual sensing of joysticks.
10 VDU23,230.255,255,195,195,195,195,255,255, 23.231,24,60,102,195,195,102,60,24
20 MODE l:HIT1=0:HIT2=0:Ylastl=l:Xlastl=0:Ylast2=l:Xlast2=0:TIME=0:VDU 23, 1, 0;0;0,0;
30 X=RND(29) : Y=RND(27)+1
40 COLOUR 3: PRINT TAB 1:0,0) "HITS ";HIT1;" HITS ";HIT2;"" TIME'"' ( Solo ";CHR$230;" )"
50 COLOUR 3:PRINT TAB(X,Y)"+"
60 X1=INT(ADVAL(1)/65520*39)
70 Y1=INT(ADVAL(2)/65520*30)
80 X2=INT(ADVAL(3)/65520*39)
90 Y2=INT(ADVAL(4)/65520*30)
100 X1=39-X1:Y1=30-Y1:X2=39-X2:Y2=-30-Y2
110 IF X1=39 AND Y1=30 X1=38
120 IF X2=39 AND Y2=30 X2=38
130 COLOUR 1:PRINT TAB(X1,Y1)CHR$230
140 COLOUR 2:PRINT TAB(X2, Y2)CHR$231
150 COLOUR 3:PRINT TAB(25,0);INT(TIME/100)
160 IF NOT (Xlast1=Xl AND Ylast1=Yl) PRINT TAB(Xlast1,Ylast1)" "
170 IF NOT (Xlast2=X2 AND Ylast2=Y2) PRINT TAB(XIast2,Ylast2)" "
180 Xlast=Xl:Ylast=Y1:Xlast2=X2;Ylast2=Y2
190 IF(ADVAL(0)AND1)=1 AND X1=X AND Y1=Y SOUND 1,-15,220,10: HIT1=HIT1+1 :G0T030
200 IF(ADVAL(0)AND2)=2 AND X2=X AND Y2=Y SOUND 1.-15,200.10: HIT2=HIT2+1 :G0T030
210 GOTO 50
Version #1 | 23/6/83 | (G McC)
and finally :-
To my brother Justin,
I hope I did give you that £10 that I promised you for doing some of the graphics for the games.
( You were only aged 13 at the time. )
|