Ao longo da sua existência, a revista portuguesa RS232 publicou inúmeros type-ins de pequenos programas e jogos. Apresentamos um desses type-ins, enviado por Fernando Preces para RS232 nº14, que demonstra alguns efeitos sonoros obtidos a partir da instrução SOUND. A listagem pode ser inserida no GW-BASIC original, e também no PC-BASIC, um interpretador moderno que emula o GW-BASIC e o BASICA.
Segue a listagem:
5 DEFINT A-Z
10 ' Programa demonstraçao dos Efeitos Sonoros
12 ' PLANETA MS-DOS: Type-in de Fernando Preces na RS232 #14
15 ' GWBASIC/BASICA
20 ' Menu de efeitos de som
25 Q = 2: a$ = "Prima uma tecla para terminar"
30 WHILE Q >= 1
35 CLS
40 PRINT "Efeitos sonoros": PRINT
45 COLOR 15, 0: PRINT " C"; : COLOR 7, 0: PRINT "rescente"
50 COLOR 15, 0: PRINT " D"; : COLOR 7, 0: PRINT "ecrescente"
55 COLOR 15, 0: PRINT " B"; : COLOR 7, 0: PRINT "uzina"
60 COLOR 15, 0: PRINT " S"; : COLOR 7, 0: PRINT "irene"
65 COLOR 15, 0: PRINT " Q"; : COLOR 7, 0: PRINT "uit"
70 PRINT : PRINT "Select: ";
75 Q$ = INPUT$(1): Q = INSTR ("CDBSQcdbsq", Q$) ' Dá uma tecla válida
80 IF Q = 0 GOTO 75
85 CLS ' Mostra a acçao baseada na tecla
90 ON Q GOSUB 100, 200, 300, 400, 500, 100, 200, 300, 400, 500
95 WEND
100 ' Crescente com dois sons decrementando o intervalo de tempo
105 HTONE = 32767: LTONE = 246
110 PRINT "Crescente . . ."
111 PRINT : PRINT a$
112 WHILE INKEY$ = ""
115 FOR COUNT = 60 TO 1 STEP -2
120 SOUND LTONE - COUNT / 2, COUNT / 20
125 SOUND HTONE, COUNT / 15
130 NEXT COUNT
131 FOR n = 1 to 5000: NEXT n
132 WEND
135 RETURN
200 ' Decrescente - de tom agudo para tom baixo
205 HTONE = 2000: LTONE = 550: DELAY = 500
210 PRINT "Decrescente . . ."
211 PRINT: PRINT a$
212 WHILE INKEY$ = ""
215 FOR COUNT = HTONE TO LTONE STEP -10
220 SOUND COUNT, DELAY / COUNT
225 NEXT COUNT
226 FOR n = 1 to 5000: NEXT n
227 WEND
230 RETURN
300 ' Buzina - dois sons alternados até tecla premida
305 HTONE = 987: LTONE = 329
310 PRINT "Buzinando . . ."
315 PRINT: PRINT a$
320 WHILE INKEY$ = ""
325 SOUND HTONE, 5: SOUND LTONE, 5
330 WEND
335 RETURN
400 ' Sirene - dois sons até tecla premida
405 HTONE = 780: RANGE = 650
410 PRINT "Sirenando . . ."
415 PRINT: PRINT a$
420 WHILE INKEY$ = ""
425 FOR COUNT = RANGE TO -RANGE STEP -4
430 SOUND HTONE - ABS(COUNT), .3
435 COUNT = COUNT - 2 / RANGE
440 NEXT COUNT
445 WEND
450 RETURN
500 ' Terminar
505 END