O N E   C R A Z Y   M U L T I   T A L E N T Today its Monday, November 29, 2021 @
12:47:56


Type-in fun (C64) - Part #1
in Nostalgia | Monday, October 23, 2017 | 20:19


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!


Well, fast forward 30 years later I still can't shake that feeling and urge to do exactly that again. For the past 3months or so I have started reading my huge collection of almost 5000 computer magazines from the early 80's and into the 90's. Starting of A through Z. At this point in time, I'm still at letter A :-)

Anyways, I picked out some of the type-ins that appeared very interresting for me, either based on the fact of stuff I wanted to try back in the days, or actual code snippets that can help me in whatever projects I'm doing on C64 or Amiga these days.

Enjoy a trip into the world of typing matters. Only this time, naturally everything is simply copied as OCR'd text from PDF, double-checked, notes added and code presented below.

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.


Audible Tape

This one will "listen" on the tape played back and send its data out as sound. So, yes, now you can listen to regular music tapes on the C64. Heck, should be possible to even capture the data and create a simple sampler out of it, no?


The magazine mentions that the sound quality isn't great, but that does not help alot?! What kind of sound quality are we speaking of here, samplerate or what? Well, if the people who made this understand sound, they should have said, "severly distorted" sound, because that's what's really coming out. But, what if the values played back are to be halfed by 4, what would happen?

1 rem ahoy issue 32/1986, page 62
2 rem typed by stone oakvalley october 2017
10 for k=49152 to 49176
20 read b
30 poke k,b
40 next k
50 sys 49152
60 data 120,169,0,141,17,208,169,7,133
70 data 1,173,13,220,41,16,240,2,169,15
80 data 141,24,212,76,10,192




Auto-Run Loader Creator

This one will create a loader that loads another program and auto-runs it. Might come in handy someday for my recording projects (SOASC=).

1 rem ahoy issue 17/1985, page 78
2 rem typed/cleaned by stone oakvalley october 2017
5 rem - create auto-run loader -
10 rem courtesy of hacker's hardware
20 input "loader name to create";ln$
30 input "name of program to load";b$
40 if len(b$)>16 then end
50 if len(b$)=16 then 70
60 b$=b$+chr$(160) : goto 50
70 open 1,8,2,ln$+",p,w"
80 read x% : if x%=256 then 100
90 print#1, chr$(x%); : goto 80
100 print#1,b$; : if b$="" then close 1 : end
110 b$="" : goto 80
120 data 187,2,169,15,166,186
130 data 160,0,32,186,255,32
140 data 192,255,169,16,162,240
150 data 160,2,32,189,255,169
160 data 0,32,144,255,32,213
170 data 255,134,45,132,46,169
180 data 15,32,195,255,32,83
190 data 228,32,89,166,32,51
200 data 165,32,142,166,76,174
210 data 167,256,139,227,187,2,256




Free Ram Check

This one will check ram, possibly would work for detecting faulty ram chips?

1 rem ahoy issue 29/1986 page 35,111
2 rem typed/cleaned up by stone oakvalley october 2017
10 rem *** free ram check *** buck childress (01/27/86) ***
20 rem *** p.o. box 13575 salem, or 97309 *#*
30 poke 56,peek(56)-4 : clr
40 print chr$(147)"loading and checking data"
41 print : j=40000 : l=100 : c=11
50 for b=0 to c : read a : poke j+b,a : x=x+a : next b : read a
60 if x<>a then print "error in data line"l : end
70 x=0 : j=j+12 : l=l+10 : if l<260 then 50
80 if l=260 then c=7 : goto 50
90 print "data ok and loaded!" : print :
91 print "sys 40000 to activate" : end
100 data 32,68,229,169,167,162,2,133,251,134,252,134,1733
110 data 253,162,0,142,219,216,232,32,186,156,230,253,2081
120 data 162,0,160,0,138,141,219,4,145,251,209,251,1680
130 data 208,66,232,208,243,230,251,208,239,230,252,165,2532
140 data 252,197,253,144,231,201,208,176,37,32,158,156,2045
150 data 165,253,201,4,176,12,169,60,133,251,162,2,1588
160 data 32,186,156,76,86,156,169,192,162,207,133,252,1807
170 data 134,253,162,3,32,186,156,76,86,156,160,13,1417
180 data 32,194,156,160,30,76,194,156,160,20,32,194,1404
190 data 156,165,253,201,208,176,240,169,0,133,251,76,2028
200 data 124,156,160,6,24,32,240,255,160,0,185,230,1572
210 data 156,240,7,32,210,255,200,76,194,156,192,13,1731
220 data 144,1,96,166,251,165,252,32,205,189,169,45,1715
230 data 32,210,255,162,255,165,253,76,205,189,67,72,1941
240 data 69,67,75,73,78,71,32,42,42,32,0,32,613
250 data 42,42,32,79,75,0,32,42,42,32,69,82,569
260 data 82,79,82,0,17,17,17,0,294





Machine Language Tracer

This one will trace the CPU and whats going on currently in the running code. It appears to work with both basic and ML code running.

1 rem ahoy issue 57/1988, page 48
2 rem typed/cleaned by stone oakvalley october 2017
10 for i=828 to 1013 : read a : poke i,a : ck=ck+a : next i
20 if ck<>22127 then print "data error" : end
30 sys828 : end
40 data 120,169,78,160,3,141,20,3,140,21
50 data 3,88,169,1,141,245,3,96,186,189
60 data 5,1,133,253,189,6,1,133,254,165
70 data 254,168,201,16,176,14,169,176
80 data 141,0,4,185,229,3,141,1,4,76,137
90 data 3,162,0,56,233,16,201,16,144,4
100 data 232,76,112,3,168,232,189,229,3
110 data 141,0,4,185,229,3,141,1,4,165
120 data 253,168,201,16,176,14,169,176
130 data 141,2,4,185,229,3,141,3,4,76
140 data 184,3,162,0,56,233,16,232,201
150 data 16,144,3,76,160,3,168,189,229,3
160 data 141,2,4,185,229,3,141,3,4,32
170 data 159,255,172,141,2,192,1,240,246
180 data 192,2,208,17,32,218,3,32,159
190 data 255,172,141,2,192,2,240,4,192,4
200 data 208,242,76,49,234,160,120,162
210 data 255,202,208,253,136,208,248,96
220 data 176,177,178,179,180,181,182,183
230 data 184,185,129,130,131,132,133,134
240 data 255





1541 Spying Snoopdos

This one will snoop on what the floppy drive 1541 are doing apparently. I couldn't get it to work in emulator, so maybe it would work on a real Commodore 64. I have yet to test it, but here's the code anyway!

1 rem ahoy issue 26/1986, page 87
2 rem typed/cleaned by stone oakvalley october 2017
10 rem disk status
20 rem by shawn k smith
30 r$=chr$(18) : print,r$"disk status"
100 data 234,120,169,075,162,003,141,020
110 data 003,142,021,003,088,096,173,141
120 data 002,201,004,208,006,032,091,003
130 data 032,062,003,076,049,234,169,088
140 data 162,003,120,141,020,003,142,021
150 data 003,088,165,203,201,018,240,001
160 data 096,169,008,032,180,255,169,111
170 data 133,185,032,150,255,169,000,133
180 data 144,032,165,255,032,210,255,165
190 data 144,240,246,076,171,255
200 for m=829 to m+77 : read y : poke m,y
210 t=t+y : next : t=t-8849
220 if t then print r$"**data error**" : stop
230 poke 857,peek(788) : poke 858,peek(789)
240 sys 830
250 print : print r$"cntrl-d displays status"
260 print : print r$"run/stop-restore deactivates"
270 print : print r$"sys(830) will reactivate"





"Audible Tape"

Yep, blanks while playing back tape audio realtime.



Auto-Run Loader Creator



Free RAM Check



Machine Language Tracer / ML-Tracer



1541 Spying Snoopdos




Please review these related article links:
Click to open prgAudible Tape
Click to open prgAuto-Run Loader Creator
Click to open prgFree Ram Check
Click to open prgMachine Language Tracer
Click to open prg1541 Spying Snoopdos


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


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