A team of programmers (myself included) got together to create what is known as the STOSSER Demo. In this article I will show you how you can write a demo without the complicated stuff the big boys can do. All you need is to produce something that looks nice. The examples below are my contributions to the STOSSER demo and while they are simple programming, they actually look quite good.
This first Routine has the words SILLY SOFTWARE dancing in the background along with some VU bars moving in time with the music. It also has a star background and the words SILLY SOFTWARE shimmering underneath the VU bars. Looks like a lot of hard work but in fact it isn’t. Here’s the routine.
10 key off : hide on : click off : flash off : curs off : mode 0
15 LE=12800 : F$=”circus.MUS”
16 remreserve as work 2,LE : bload F$,2
20 P=palt(start(3)) : logic=back : wipe stars on : set stars 200,2,0,0,330,200,1,15
50 I=depack(start(2)) : A=musauto(start(2),1,LE) : S4=start(4) : S3=start(3)
60 rem START
70 go stars 0,1,logic
80 A=psg(8) : B=psg(9) : C=psg(10)
90 bob logic,S4,A,128,80,0 : bob logic,S4,B,152,80,0 : bob logic,S4,C,176,80,0
95 bob logic,S3,0,48,40-A,0 : bob logic,S3,1,64,40-B,0 : bob logic,S3,2,80,40-C,0 : bob logic,S3,2,96,40-A,0 : bob logic,S3,3,112,40-B,0 96 bob logic,S3,0,144,40-A,0 : bob logic,S3,4,160,40-B,0 : bob logic,S3,5,176,40-C,0 : bob logic,S3,6,192,40-A,0 : bob logic,S3,7,208,40-B,0 97 bob logic,S3,8,224,40-A,0 : bob logic,S3,9,240,40-B,0 : bob logic,S3,10,256,40-C,0
105 Z$=inkey$ : if Z$=” ” then A=musauto(0,0,0) : fade 3 : wait 40 : default : end
106 reflect logic,20,70,logic,150
110 screen swap : wait vbl : goto 60
That’s all it is – the words SILLY SOFTWARE are put on screen as bobs letter by letter and the STOS “psg” command moves the letters up and down in time with the chip tune playing. Creating the shimmering affect is used with just one command, ”reflect” from the ML extension.
The routine below simply moves a multicoloured box around the screen whilst using VU bars to move in time with the music. Then I just add some sentences in data statements that appear at the bottom of the screen.
10 curs off : palette 0,0,0,0,0,0,0,0,0,0,0 : hide on : key off : mode 0 : click off : disable mouse : break off 15 reserve as screen 4 : S4=start(4) : wipe S4
20 palette $0,$777,$577,$377,$177,$375,$573,$771,$750,$730,$700,$702,$703,$705,$727,$747
40 logic=back : A=0 : C=1 : dreg(0)=1 : call start(5) : loke $4DA,start(5)+8 : timer=0
50 X1=160+sin(A/21.6)*45
60 X2=160+sin(A/16.6)*45
70 Y1=58+cos(A/22.6)*40
80 Y2=58+cos(A/22.6)*40
90 ink C : C=(C mod 14)+2
95 CH1=psg(8) : CH2=psg(9) : CH3=psg(10)
100 fastcopy S4,back : bar X1,Y1 to X2,Y2-CH1
101 ink C : C=(C mod 14)+2
102 bar X1,Y1+40 to X2,Y2+40-CH2
103 ink C : C=(C mod 14)+2
104 bar X1,Y1+80 to X2,Y2+80-CH3
105 if TT=72 then TT=0 : restore 140
106 if timer>150 then read T$ : wipe S4 : logic=4 : locate 0,23 : centre T$ : logic=back : timer=0 : inc TT
110 screen swap
120 wait vbl : inc A
125 if inkey$=” ” then loke $4DA,0 : call start(5)+4 : goto 65000
130 goto 50
140 data “Hello, this is Deano. Welcome to my Demo for the Stosser Demo”
150 data “Blah Blah Blah”
And finally, here is a similar routine that moves and draws some colourful lines along a sin wave.
10 curs off : hide on : key off : mode 0
20 palette $0,$11,$577,$377,$177,$375,$573,$771,$750,$730,$700,$702,$703,$705,$727,$747
30 def scroll 1,64,16 to 256,200,0,8
40 logic=back : A=0 : C=1
50 X1=160+sin(A/21.6)*95
60 X2=160+sin(A/16.6)*95
70 Y1=58+cos(A/22.6)*40
80 Y2=58+cos(A/12.6)*40
90 ink C : C=(C mod 14)+2
100 draw X1,Y1 to X2,Y2
110 scroll 1 : screen swap
120 wait vbl : inc A
130 goto 50
So, this is the source for my two contributions. You can download the Stosser Demo and other STOS demos from this website.