Programming a Demo in STOS

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.

 

Updated: March 26, 2023 — 9:11 pm
Deanoworld © 2021 Frontier Theme