"PC-synthe" for Sharp PC-1500
 L'Ordinateur de Poche.
Adapted from 2 programs published in "L'Ordinateur de Poche":
"Mini-synthe" by Elie ZAGURY, l'OP #14, June 1983
"Piano" by Franois JEANVOINE, l'OP #17, October 1983

BASIC program - 1749 bytes.

CLOAD "PC-SYNTHE"
RUN

----- BASIC program -----------------------------------------
1 "PC-SYNTHE"
2 "L/ordin.de poche 14-17
10 WAIT 0:CLS :PRINT "(1)Clavier  (2)Mini-synthe"
20 ON VAL INKEY$ +1GOTO 20,100,200
100 "PIANO":PRINT "On patiente 5 secondes..."
101 DATA 215,203,191,180,170,160,151,142,134,126,119,112
102 DATA 105,99,93,87,81,76,72,67,63,59,55,52
103 DATA 49,45,42,39,37,34,32,30,27,26,24,22
104 DATA 90,83,88,68,67,86,71,66,72,78,74,77
105 DATA &5A,&36,&BE,&E4,&2C,&B7,&31,&89,4,&5A,36,&9E,11,&B7,&32,&89,4,&5A,24,&9E,1
106 DATA &B7,&33,&89,4,&5A,12,&9E,27,&B7,&20,&89,1,&9A,&18,&48,&71
107 DATA &4A,&74,5,&96,&8B,9,&40,&4E,&80,&8B,2,&9E,11,&9E,50,4,&10,10,5,&68,0,&2A
108 DATA &48,1,&4A,5,&FD,&A8,&FD,&88,&BE,&E6,&6F,&FD,10,&FD,&2A,&9E,74
110 RESTORE :FOR Z=0TO 123:READ A:POKE &7150+Z,A:NEXT Z:BEEP 1
115 PAUSE "Choix de l"+CHR$ 34+"octave: 1/2/3"
120 INPUT "DUREE ? ";D:IF D<=0GOTO 20
130 CLS :POKE &71BE,D:CALL &7180:END
200 "SYNTHE"CLS 
210 POKE &7150,&68,0,&6A,0,&48,1,&4A,0,&BE,&71,&6F,&62,&6E,0,&99,8,&BE,&71,&6F,&60
215 POKE &7164,&6E,0,&99,8,&FD,&62,&6C,0,&99,&1C,&9A,&FD,&A8,&FD,&88,&BE,&E6,&6F
220 POKE &7176,&FD,&A,&FD,&2A,&9A,&B5,0,&BE,&71,&8E,&DF,&B7,0,&99,8,&BE,&71,&8E,&DD
225 POKE &7189,&B7,0,&99,8,&9A,&AE,&71,&53,&AE,&71,&65,&BE,&71,&50,&A5,&71,&53,&9A
230 WAIT 15:PRINT "1:Type.A  2:Type.B  3:Piaf"
240 ON VAL INKEY$ +1GOTO 240,"SON A","SON B","PIAF"
250 "SON A"INPUT "Nb repetitions (<255):";N:POKE &7151,N
260 INPUT "Freq.1 (0-255) : ";A,"Freq.2 (0-255) : ";B,"Freq.3 (0-255) : ";C
270 POKE &717C,A:POKE &7182,B:POKE &718A,C
280 INPUT "Duree (0-255) : ";D,"Freq.min (0-255) : ";E
290 POKE &7157,D:POKE &715D,E
300 CALL &717B:GOTO "SON A"
400 "SON B"INPUT "Nb repetitions (<255):";N:POKE &7151,N
410 INPUT "Fmax.1 (0-255) : ";A,"Fmax.2 (0-255) : ";B,"Fmin (0-255) : ";C
420 POKE &7153,A:POKE &7165,B:POKE &715D,C
430 INPUT "Duree (<255) : ";D
440 POKE &7157,D
450 CALL &7150:GOTO "SON B"
500 "PIAF"POKE &715D,0
510 POKE &7151,1
520 POKE &7153,RND 10
530 POKE &7165,RND 20
540 POKE &7157,RND 30+10
550 CALL &7150:IF RND 3=1GOTO 550
560 IF RND 15<10GOTO 560
570 GOTO 520
