O N E   C R A Z Y   M U L T I   T A L E N T Today its Friday, February 26, 2021 @
23:19:35


Type-in fun (C64) - Part #3
in Nostalgia | Saturday, September 07, 2019 | 10:53


Back in the days, I always enjoyed reading magazines and almost everytime a piece of code appeared in the magazines for C64 or Amiga, I couldn't resist typing it in and see what happened!


Here's another batch of Type-Ins I personally find interresting. I have referenced the issue and page number the original type-in was published in, so if you have the magazine available, read on for more details there!

I have also created fully runable .PRG out of these, so either copy the code yourselves or simply download the .PRG if you are very lazy.

The sources was typed-in, cleaned and compiled/tested by me using the excellent "CBM prg Studio" suite. As this supports special C64 keys by for instance "{down}" to produce a arrow key down just like on real C64.


Digi-Sound 64

This one will enable you to record, play, save and load samples that you can record from tapes/datasette into the Commodore 64, basically a "sampler suite". You can also listen to real-time playback from tape too.

1 rem volume 6,no 12, 1988-12, page 70 (info) & 89 (source)
2 rem source cleaned/normalized/fixed by stone oakvalley september 2019
3 rem source compatible with cbm prg studio
4 rem when recording: anywhere from 10 to 20 seconds.
5 rem no keys can be pressed to abort once recording/playback
6 rem if playback of saved file, load the file and start with sys49152 later
10 rem copyright 1988 compute! publications, inc. - all rights reserved
20 print chr$(14)chr$(8)chr$(147):poke53280,0:poke53281,0
30 print tab(12)"{blue}copyright 1988"
31 print tab(7)"compute! publications, inc."
40 print tab(10)"all rights reserved" : for i=1 to 100 : next :rem adjusted
50 for i=49152 to 49333 : read a : poke i,a : x=x+a : next
60 if x<>27127 then print "{down]error in data statements." : stop
70 print"{clear}{yellow}{down}{down}{down}";tab(12);"digi-sound 64{down}{down}"
80 print"{right}{right}{right}{right}{yellow}{reverse on} 1 {reverse off}{blue} record{down}"
85 print"{right}{right}{right}{right}{yellow}{reverse on} 2 {reverse off}{blue} playback{down}"
90 print"{right}{right}{right}{right}{yellow}{reverse on} 3 {reverse off}{blue} save sample to disk{down}"
100 print"{right}{right}{right}{right}{yellow}{reverse on} 4 {reverse off}{blue} load sample to disk{down}"
110 print"{right}{right}{right}{right}{yellow}{reverse on} 5 {reverse off}{blue} sample continuously from tape{down}"
115 print"{right}{right}{right}{right}{yellow}{reverse on} 6 {reverse off}{blue} quit"
120 print tab(13)"{down}{down}enter (1-6)"
130 get a$ : if a$="" then 130
140 a=val(a$) : on a gosub 150,180,190,230,260,320 : goto 70
150 print"{down}{down}{yellow} press play on datasette."
160 if peek(1)=55 then 160
170 sys 49223 : return
180 sys 49152 : return
190 gosub 330
200 poke 187,peek(71) : poke 188,peek(72) : p=peek(187)+256*peek(188)
201 poke 183,peek(p)
210 poke 187,peek(p+1) : poke 188,peek(p+2) : poke 251,0 : poke 252,16
211 poke 185,1
220 poke 186,d : poke 780,251 : poke 781,69 : poke 782,192 : sys65496 : return
230 gosub 330
240 load f$,d,1
250 return
260 print "{down}{yellow}{reverse on}note:{reverse off} you must re-run the program when"
270 print "finished. press play on datasette when"
280 print "ready or press any key to cancel."
285 for i=1 to 5000 : next : rem added by stone oakvalley
290 get a$ : if a$<>"" then 70
300 if peek(1)=119 then 290
310 sys 49296
320 print chr$(9) : poke 53280,14 : poke 53281,6 : print "{light blue}{clear}" : end
330 input "{yellow}{down}{down}enter device number: ";d
340 input "{yellow}{down}{down}enter filename: ";f$ : f$=left$(f$,14) : return
350 data 169,11,141,17,208,234,234,234,120,160,0,169,16,132,63,133,64,234,177
360 data 63,170,202,234,234,234,224,0,208,248,201,0,240,15,169,15,141,24,212
370 data 234,234,234,234,234,169,0,141,24,212,200,208,223,230,64,165,64,201
380 data 160,144,215,88,169,27,141,17,208,234,234,234,96,234,234,169,11,141,17
390 data 208,234,234,234,120,160,0,169,16,132,63,133,64,234,173,13,220,201,16
400 data 208,19,138,145,63,162,0,200,208,241,230,64,165,64,201,160,144,233,76
410 data 132,192,232,208,227,138,145,63,200,208,221,230,64,165,64,201,160,144
420 data 213,88,169,27,141,17,208,234,234,234,96,234,234,169,11,141,17,208,234
430 data 234,234,120,173,13,220,197,236,240,249,201,16,208,10,169,15,141
440 data 24,212,133,236,76,153,192,169,0,141,24,212,76,169,192,200





Tape Sampler

Another in the "realtime audio playback from datasette tapes" category. This one just plays audio from tapes.

5 rem australian commodore and amiga review 
6 rem volume 8, issue 10, page 52
7 rem original code by adam wade, ridleyton, sa
8 rem re-typed by stone oakvalley september 2019
10 print "insert a tape and press play. hit a key."
20 get a$ : if a$="" then 20
30 c=0 : for l=49152 to 49198
40 read a : poke l,a : c=c+a : next
50 if c<>5424 then print "error in data" : end
60 sys 49152
70 data 120,165,1,41,159,133,1,162,0,142,17,208,138,157,0,212
80 data 232,224,24,208,248,160,15,162,0,173,13,220,41,16,208,6
90 data 140,24,212,76,25,192,142,24,212,238,32,208,76,25,192




Bånd Salat

In english "tape salad", which is another real-time audio of tape playing. This one is different though, you start with SYS 53000 and use space to stop at any time. It also does not blank the screen.

1 rem list (danish) issue #1 1988 page 25 "baand salat"
2 rem cleaned/re-typed by stone oakvalley september 2019
3 rem in english: "tape salad" :-)
10 adr=53000
20 read a : if a=-1 then 40
30 poke adr+t,a : t=t+1 : chk=chk+a : print chk : goto 20
40 if chk<>3865 then print "der er en datafejl!" : end
50 print chr$(47)chr$(18) " baand salat ": print : print "lavet af crep i 1987"
60 print : print "aktiveres med: sys 53000"
70 print : print "deaktiveres med tryk paa space" : end
100 data 173,1,220,201,239,208,1,96,173,13,220,41,16,240,7
110 data 169,15,141,24,212,208,234,169,0,141,24,212,240,227,-1




Speech-Synth 64

Another tape-playback audio sampler and playback snippet. It also has an GUI interface with f1,f3,f5 and f7. It apparently have a "mix" function too. The code required to work at all that you enter some pokes BEFORE you enter program, then run it and follow instructions. If done correctly, you can now either save it or run it. I must admit that "speech" wording has nothing todo with actual synthesis of speech, its just a bad choice of word of whoever write this title really, as its basically just a sampler/playback snippet.

1 rem computer (danish), issue 6 - 1986, page 42
2 rem typed/cleaned by stone oakvalley september 2019
3 rem ** important: before entering this program **
4 rem ** type: poke44,10:poke2560,0:new
5 rem ** enter program as below into memory and run!
6 rem ****************************
7 rem * speech-synth 64 e-soft *
8 rem ****************************
9 rem
10 for a=2049 to 2501 : read b : poke a,b : c=c+b : next
20 if c <> 53727 then print "data-fejl" : end
30 print " indtast nu:":print:print"poke 44,8:poke 45,197:poke 46,9":print
40 print"og save programmet":end
32000 data11,8,193,7,158,50,48,54,49,0,0,0,169,44,160,8,133,95,132,96,169,198
32001 data160,9,133,90,132,91,169,154,160,193,133,88,132,89,32,191,163,76,0,192
32002 data0,162,0,189,46,192,232,32,210,255,201,0,208,245,165,197,201,4,240,15
32003 data201,5,240,14,201,6,240,13,201,3,240,12,76,13,192,76,222,192,76,77,193
32004 data76,248,192,76,226,252,147,176,192,192,192,192,192,192,192,192,192,192
32005 data192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192
32006 data192,192,192,192,192,192,192,192,192,192,192,174,221,32,32,67,45,54
32007 data52,32,83,80,69,69,67,72,45,83,89,78,84,72,32,32,40,67,41,32,49,57,56
32008 data54,32,69,45,83,79,70,84,32,32,221,173,192,192,192,192,192,192,192,192
32009 data192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192
32010 data192,192,192,192,192,192,192,192,192,192,192,192,192,189,13,13,13,13
32011 data40,70,49,41,32,32,79,80,84,65,71,69,13,13,40,70,51,41,32,32,71,69,78
32012 data84,65,71,69,13,13,40,70,53,41,32,32,77,73,88,13,13,40,70,55,41,32,32
32013 data83,76,85,84,0,162,0,169,0,157,0,8,232,208,248,238,228,192,173,228,192
32014 data201,160,208,238,169,8,141,228,192,234,32,23,248,169,0,133,0,169,1,141
32015 data60,3,169,11,141,17,208,162,0,160,0,165,1,41,8,208,9,173,60,3,29,0,8
32016 data157,0,8,14,60,3,208,3,238,60,3,200,192,8,208,228,232,208,223,238,24
32017 data193,238,27,193,173,24,193,201,160,208,208,169,8,141,24,193,141,27,193
32018 data169,27,141,17,208,169,47,133,0,76,0,192,169,11,141,17,208,169,1,141
32019 data60,3,120,162,0,160,0,189,0,8,44,60,3,208,8,169,255,141,24,212,76,113
32020 data193,169,0,141,24,212,14,60,3,208,3,238,60,3,200,192,8,208,222,232,208
32021 data217,238,94,193,173,94,193,201,160,208,205,169,8,141,94,193,169,27,141
32022 data17,208,88,76,0,192,255



Digi-Sound 64



Tape Sampler




Bånd Salat



Speech-Synth 64




Please review these related article links:
Click to open prgDigi-Sound 64 (.prg)
Click to open prgTape Playback (.prg)
Click to open prgBånd Salat (.prg)
Click to open prgSpeech-Synth 64 (.prg)


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Posted by: Old-schooler, Stone Oakvalley | Publisher: Website Designer, Stone Oakvalley
Last revised: September 21, 2019 - 21:36 | Page views: 357


Website Design by post@stone-oakvalley-studios.com - Copyright © 2021 www.stone-oakvalley-studios.com