KIM-Venture

223 views
Skip to first unread message

Hans Otten

unread,
Oct 27, 2021, 2:28:33 AM10/27/21
to PAL 6502 computer
Triggered by Dave Williams I found this:


 

Hendrik-Jan Megens

unread,
Oct 27, 2021, 5:20:42 AM10/27/21
to PAL 6502 computer
Seems several in this forum (Nils, Hans) are hunting for the code? Hope it can be retrieved.

Nils you had a remark via Twitter the code was in three pieces, could that be because it is spanning some reserved areas? (end of page 0 some bytes reserved for reporting registers, and end of page 1 is the stack). I noted this when I was loading Wumpus but could never get a proper checksum on the code - that example is also in three parts but I loaded from audio with gaps filled with '0'. 

Cheers,
Hendrik-Jan

Neil Andretti

unread,
Oct 27, 2021, 8:18:13 AM10/27/21
to PAL 6502 computer
I could not use the *.wav that is preserved  on archive.org
If you have more luck, let me know :D

Nils

Hans Otten

unread,
Oct 27, 2021, 2:17:06 PM10/27/21
to PAL 6502 computer
The wave file is unreadable indeed. Analyzed it, no idea what to make of it. 
Either archive.org corrupted it, though the wav file seems to be the oldest and possibly original file.
Converted it to 8 bit mono 22k but Ed's KIMtape also refuses to even see syncs.

But we have the manual and listing on archive.org, uploaded by Bob Leedom,  the original author, Aresco, so it can be typed in again ..

Hendrik-Jan Megens

unread,
Oct 27, 2021, 3:33:19 PM10/27/21
to PAL 6502 computer
This WAV file of the KIM-venture audio tape found at archive.org seems seriously distorted (but DOES show three parts, interestingly; time in seconds at horizontal axis)
KIMventure1.png
But zooming in it is clear that this is not a good signal probably:
KIMventure2.png
And zooming in further, into the high-volume part around 72 sec:


KIMventure3.png

As a reminder of how the signal SHOULD look like (this is created by my PAL-1 and recorded through the cassette interface using a 5-euro audio dongle; it shows the start of the very first SYN character):

syn2.png
And zoomed in a bit:
syn1.png

Hans Otten

unread,
Oct 28, 2021, 2:49:26 AM10/28/21
to PAL 6502 computer
I have email contact with Bob Leedom, he wants to help me with scans, OCR etc. Also metions Dave Williams (we know him from twitter) and the guy form the youtube video have working software. 
Next step is to get Dave and  Dominic Bumbaca to make their dumps available!

Neil Andretti

unread,
Oct 28, 2021, 3:42:35 AM10/28/21
to PAL 6502 computer
Bob has written even more games:

If you are in contact with him, please ask if he has some infos on that, too ;)

Hans Otten

unread,
Oct 29, 2021, 3:29:16 AM10/29/21
to PAL 6502 computer
Got it!

KIM Venture – Retro Computing (hansotten.nl)

Been talking to Bob Leedom, Dave Williams and   Dominic Bumbaca. More background information may come available, but the papertape and audio cassette file will get the playing started.

Liu GN

unread,
Oct 29, 2021, 3:33:57 AM10/29/21
to pal...@googlegroups.com

Woo!!

A new game to try~ Thanks Hans!

--
You received this message because you are subscribed to the Google Groups "PAL 6502 computer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pal6502+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pal6502/a566a754-0fa0-4133-b851-c22b40ae3801n%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Liu GN

unread,
Oct 29, 2021, 4:47:21 AM10/29/21
to pal...@googlegroups.com



On 10/29/21 3:29 PM, Hans Otten wrote:
--

Hendrik-Jan Megens

unread,
Oct 29, 2021, 5:50:35 AM10/29/21
to PAL 6502 computer
Hans, nice digging for the KIM-Venture source!

I'm hoping to use the audio (you have that?) to test my new script that can recode a .wav file to binary (I want to throw different wave forms at it). 

But: the link from your site doesn't seem to work for me (or I'm doing something wrong).

Neil Andretti

unread,
Oct 29, 2021, 6:45:02 AM10/29/21
to PAL 6502 computer
Another recovery.
Good Job Hans!

But as HJM says: the link on the page is not activated yet ...

Nils

Neil Andretti

unread,
Oct 29, 2021, 6:51:02 AM10/29/21
to PAL 6502 computer

John Kennedy

unread,
Oct 29, 2021, 3:08:11 PM10/29/21
to PAL 6502 computer
Amazing. I must try this on my ios emulator and see if it works.

Neil Andretti

unread,
Oct 30, 2021, 9:12:57 AM10/30/21
to PAL 6502 computer
Hey John,
I have no luck when loading the files with VirtualKIM. It resets after each load, and since it is three parts, no chance.
Maybe if you combie all 3 papertape files into 1 and recalculate the checksum ....

I've found the Mame forum thread, where KI'MVENTURE was recunstructed at:
and the Github link to the sauces:

Neil Andretti

unread,
Oct 30, 2021, 9:26:26 AM10/30/21
to PAL 6502 computer
On the Github page of Mark Bush you also find a onefiled version starting at $0200
But sadly it won't run in VirtualKim either :(

Nils

Hendrik-Jan Megens

unread,
Oct 30, 2021, 11:39:56 AM10/30/21
to Neil Andretti, PAL 6502 computer
Hi, 

I'm analyzing the audio tape format - it seems it has a bich chunk with just 'SYN' characters in the first block. 

kimventure_specgram.png
The audio tape is readable, and I'm currently using it as a 'test' for my KIMaudiotape translation tool, which at first it failed miserably. Even though the FFT looks very promising:

kimventure_fft.png
But it turned out there is this large block with only SYN chars and no message, which started like this:
kimventure8.9519_start_waves_bewaren.png
Because of this mangled first bit my KIMaudiotape reader skipped one bit, so I had a frameshift. My script is now robust for this, it keeps reading bits until it can sync with the 'SYN' leader, which, I guess, is exactly the purpose of the thing.

In addition there appear to be 4 blocks that have actual code, but I'm still analyzing those. 

More later.

Cheers,
Hendrik-Jan

Hendrik-Jan Megens

unread,
Oct 30, 2021, 1:59:06 PM10/30/21
to PAL 6502 computer
Hi Nils,

there is one inconsistency I've found between the audio tape, and the papertape.

At location 0x28F the papertape has 0x1C, and the audio tape has 0x10.

Hans, is the audio tape an original? 

I've read out the audio tape and my reading matches the checksums, so I'm confident that they should be ok. I've converted the binaries back to papertape and noted that there is this little inconsistency (using the 'diff' command in Linux after noting that md5sums are not the same).

If I go to the  pdf, this is what I see at 0x028F: could be 1C, could be 10 (?). But looking at other 'C' I think '0' is more likely. 

Screenshot from 2021-10-30 19-53-49.png

My raw readings of the audio tape:

bytes in the .wav file:
    |---------|---------|---------|---------|---------|---------|
   0 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖
  60 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖*A1000084EFA000A97F8
 120 D4117A20984FCB9F000204E1FC8C00690F3203D1F206A1FA4EF6077395E7
 180 9760638545C506D781C00407C713D1E37733E6E53085B0000000000FFEC0
 240 000000BFF0000000003000204081020408034002BBEDC43E425221C468C8
 300 9B5E7D7AE06091118D33C4F387BABDB705293EF6A28739BEB565D82F3883
 360 F4E434C4D52500094114A450395054B4596024B8F1044068050490502048
 420 10A4A438252475207837041488461464F852155548600870C4E42892E574
 480 B56408A0C5441018B0F495755568C3052538D2A5150468E0D434D4797094
 540 94B90204C91354D534C4692204893334D5152449F009F7318/E94F␄␄
    -------------------------------------------------------------
computed checksum: 4FE9

bytes in the .wav file:
    |---------|---------|---------|---------|---------|---------|
   0 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖
  60 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖*A20001D8A5458545A27
 120 BE8E8B50010FB8642291FC545D0F209A09500B4012901AA843BB45F20B30
 180 2A645B46520B302A645CAD012AD0617290FAA8546BDE71F853CA08F20B30
 240 2A90B4C0002A641E64CD002F601A0FC20B302C906B0034CA517C90B90E8F
 300 09EC90F90DFD0E8A953853CA09E20B302A0E1C546D0D1A903A645F02AA90
 360 0E005B03BCAF0DAEE3D00D01CA642B501A0FFC84A9005E8C4F7F009C005D
 420 0F3A0F74C2202B501291F4C0301A449A54588F01188F021A20788F024A20
 480 588F01FA085D0DEC908D0F8A540F0F4C88440A0BD20B3024C7F02C906D0E
 540 5A90D10CAE445D0DDB54FD565F0D795658A10BBA63FB5019500E8E0EFD0F
 600 760700093196C19671838E90DAA4A2901A849018543E886552080178448F
 660 00FA655D00EA547C904D008A0FA20B3024C4801B46220B302C64830F4A44
 720 4843FB6008649B45720B302A4553004C915D004C644D0E3883005F0294CA
 780 A01A0F7A649CAD008A53E2928C920D0BF8A30BEE647A53E154D853E20901
 840 7C64120EC01A04CD0AAE641209017E63FC647A649A53E38F54C853E20EC0
 900 1A54010E3A649CAD0DEA545C908D0D8A985853F8640A9058DBD03A0BD20B
 960 302F0C1188A654AA8844AA200A00086FE86FD18B14A486A4A4A4AF032C90
1020 1F034AAB51FA6FD95F068E886FD290FC901F026AAB51FA6FD95F0C8E8E00
1080 690D2A0C020000020000088D0F7A6FED0B6606885FEC810BC6810DAC838B
1140 0B835882B0516EB1685AB238503FB54FFBAA15F07CDA95F1652B8CD516CF
1200 32135F12785F36ED50511B741350823BACC0CFA1659F13E881804CD558F1
1260 3B2D5FBA165F13A84F32135F4A95F2F6A8507FD7136DE9958FC6212DF051
1320 B10793604FC87DF0979FD650DA18CD5BF08CDB52151AF167DF101154F04B
1380 A1828F6288F2F13859AF14A18EFBF2DEFBF79082FC71391AF167D07FC218
1440 CF2DD73051521373F0511EDDA9FF7CF1DF6AEC5FEC5F107628D547FC5510
1500 61118FD650E4B213A9F04C32B5409AEDF111804F52DCF0D87DD850FF118E
1560 5F4BA161004F117B4FBAA15F459FFBA4F32BB1810C1AF167D13BADDAF12A
1620 B5CDF3299AD6A17F19FFF1C/E569␄␄
    -------------------------------------------------------------
computed checksum: 169E5

bytes in the .wav file:
    |---------|---------|---------|---------|---------|---------|
   0 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖
  60 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖*A38017B641A0FFE8864
 120 4B5010A30F8C890F560A443208017A2EEB5009501CAE444D0F7A54995016
 180 0A884F7A645B565D54FF008E005F024E007F022E00CD004A547D018E003D
 240 004A53E3011E008D015A540F01188F00EA0B14C22028888C003D0034C200
 300 24C8B01000000/152F␄␄
    -------------------------------------------------------------
computed checksum: 2F15

bytes in the .wav file:
    |---------|---------|---------|---------|---------|---------|
   0 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖
  60 ␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖␖*0600014C24018545A27
 120 BE8E8B50010FB8642291FC545D0F260200301B5000A0A606D585C507900A
 180 206BD1D0195EFCAD0F886FE20E90218F8A90085618562A54CF010A561690
 240 18561A56269008562C64CD0F0A641B5018560F010A56169568561A562690
 300 28562D601D0F0D8A561290FAABDE71F85F5A5614A4A4A4AAABDE71F85F4A
 360 5624A4A4A4AA8F004AABDE71F85F2A562290FAA98D0038AF003BDE71F85F
 420 3A271A545C906D006A53E2904F028A9008563200301A0012080178448F01
 480 5B400A563194C008563CAC648D0F2A2390A3008B0034C12024C64024C000
 540 2A90D10CAE445D0DDB54FD565F0D795658A10BBA63FB5019500E8E0EFD0F
 600 760700093196C19671890D1A27CA562D0CBA940C56190C5A277D0C1A9022
 660 01601101AA90F2016011013A012982016013004A279D0A78810F3A25ED0A
 720 0A23DA540F09AA53DD096A914201601A276A8308CA900201601A206A8308
 780 2A004B970022016013004A23FD0058810F1A21E86F0A94085F12000004C6
 840 A020509151617/739E␄␄
    -------------------------------------------------------------
computed checksum: 9E73

Hendrik-Jan Megens

unread,
Oct 30, 2021, 2:22:47 PM10/30/21
to PAL 6502 computer
and, for completeness, the source that I distilled from the audio tape.

I've loaded the papertape, and it seems to work, although for now no clue how this program is supposed to work....

kimventure_source.zip

Jim McClanahan

unread,
Oct 30, 2021, 3:16:11 PM10/30/21
to Hendrik-Jan Megens, PAL 6502 computer
The BPL opcode should assemble to $10, not $1C. It sounds like the papertape matches the source listing (where the 0 does look like a C--I would have misread it), but that has been corrected on the audio tape.

$1C is an undocumented opcode that would have acted like a 3 byte NOP (a NOP with and absolute address that got thrown away). On the 65C02 it would be a TBR instruction.

Thanks,
Jim W4JBM

Neil Andretti

unread,
Oct 31, 2021, 3:04:33 AM10/31/21
to PAL 6502 computer
(According to the Mame Forum)

Robert Leedom postet a HEX Document here:

Mark Bush, the one who typed it in, found this 2 errors:

I noticed two issues in the word doc, both in the "game" segment (A2).

The first is that the instruction at $028F is "1C" in the file but should be "10" since it is a BPL instruction. The PDF copy of the manual that is circulating is not perfect and the byte at this point looks like "1C" in the text, but is not.

The second is that the file should have 8 bytes of space between "E8 E0 EF D0 F7 60" and "38 E9 0D AA 4A". The first of these sets of bytes is the following at the end of page 1:

01F2 E8 INX ; obj is overwritten.
01F3 E0 EF CPX #EOCM+1 ; Done yet?
01F5 D0 F7 BNE DOBLP ; No, continue.
01F7 60 RTS ; Yes, return.

and the next is at the start of page 2:

0200 38 OBHNDL: SEC ; Change B,C,D, or E to
0201 E9 0D SBC #$D ; -2,-1,0, or 1.
0203 AA TAX
0204 4A LSR ; Set up Y-reg for LOBSCH:

Without those 8 bytes of space, the code that should be at location $0200 will be loaded from $01F8.


And Robert Leedom replied:

Thanks very much for finding the errors (pretty sure I'd found and posted the "1C should be 10" instance, but I don't remember where!). And yes, there should be 8 bytes filled in from 1F8 to 1FF; they are part of the stack that cannot be reliably used by the program. (The cassette tape that shipped with the commercial version of KIM-Venture took care of that.)

I appreciate any effort made on behalf of preserving this program!

Bob
b...@bobKIMleedom.com (remove KIM for my actual address)


But ain't it interesting, that 2 people independetly reconstructed the code after 40 years nearly at the same time.
Funny incident or a retro wave triggered by Liu, Bob Applegate and Vince Briel?

Hendrik-Jan Megens

unread,
Oct 31, 2021, 6:35:18 AM10/31/21
to PAL 6502 computer
Hi,

just for my personal interest, I've used the KIM-Venture audio tape to optimize my script to convert from WAV to byte code. It was quite an adventure actually, pun intended. 

Anyway, for those interested, an analysis of the audio tape and differences to the papertape can be found here.

Now I 'only' have to work out how to play the game :D

Cheers,
Hendrik-Jan

Hans Otten

unread,
Oct 31, 2021, 2:54:38 PM10/31/21
to PAL 6502 computer
does the script work with hypertape?

Hendrik-Jan Megens

unread,
Oct 31, 2021, 5:09:04 PM10/31/21
to PAL 6502 computer
Hi Hans,

no, it certainly can not! I just tried based on output from KIMposer, which can generate 'standard' and 'hyper'. Reading the standard is easy-peasy but no luck with the hyper. Dismal failure. At first I thought it was the fact that you have these very short pulses of either 3700 or 2400 hz, essentially as little as one or two of each. But my script requires at least two waves for a good estimate of frequency. I'll need to think this through. I can probably adapt my script, but not sure how robust that is going to be on 'real world audiofiles' - in fact I'm trying to work that out for 'real world' standard audio files for the current version of the script (difficult to find suitable audio though - and come to think of it I suspect the BASIC audiotape on your site is hyptertape too, now that I compare the FFTs.). 

KIMposer standard output:

kimposer_standard0.0602_start_waves.png
 
With FFT of the standard file:
kimposer_standard_fft.png

KIMposer hypertape:
kimposer_hyper0.2342_start_waves.png
And the FFT:
kimposer_hyper_fft.png
If I then look at the BASIC audiotape, I now believe that is hypertape (?)
basic_fft.png

Bob Leedom

unread,
Nov 1, 2021, 12:06:17 AM11/1/21
to PAL 6502 computer
Monday
1 Nov 2021
00:06 EDT

Just recently, I was told about the existence of this group, and I am pleased to see how many people are keeping alive this game that I had such fun creating back in the late 1970s. 

I had seen Colossal Cave Adventure running on an IBM mainframe, so I decided to see how much of a similar game I could cram into 1188 bytes--I think that's the total on a virgin KIM-1, which was the only computer I had access to. I had no I/O capabilities other than the KIM-1 display and keyboard, plus a cassette tape recorder. Therefore, the program was assembled by hand, and then I typed (on a typewriter, of course) the "listing" of the source code.

Glad that Hans Otten has made his website welcoming to everyone involved, so that this material can be archived.

Hope you all get a chance to play KIM-Venture and are able to retrieve the treasures and get out of the cave! 

Bob  (at) BobLeedom.com

Hendrik-Jan Megens

unread,
Nov 1, 2021, 8:53:05 AM11/1/21
to PAL 6502 computer
Hi Bob, 

thanks for sharing this message, and thanks for making that adventure game back in 1979 - I was running around - well, not with a snotty nose anymore, but too early for me to have enjoyed it back then, my first computer in fact was the Commodore 64, the KIM-1 I guess can be thought of as it's great-grandparent (KIM-1 - PET - VIC20 - C64). So, I was already spoiled with more memory than anybody ever would want (64K!) and color computer graphics.

For me the beauty of your game really is about how to cram something conceptually complex into such a limited memory space. And, as you say, the only thing available to you was the KIM-1 without any extensions! And so I guess even those extra bytes offered by the RRIOTS ended up being significant.

And assembling all of this by hand. That means you as programmer really had to understand the machine on a very deep level.  Hat off to you! I intend to study the code to learn, at least just a little bit, how this was done 'back in the day'.

Finally, a question: the game was published as a commercial product in tape form? The tape recording found on Hans' site, is that taken directly from that early tape or is this a later recording (copied through somebody's KIM)?

Thanks!
Hendrik-Jan
(ps this message has 1473 characters, including newlines, which is more bytes even as ASCII than bytes in your program! Although, I'm afraid this message is nothing near as dense in meaning as your program obviously. :D)

Liu GN

unread,
Nov 1, 2021, 9:54:42 AM11/1/21
to Bob Leedom, PAL 6502 computer

Hi Bob,

Thank you for visit this group.

Your game is very impressive to me! and I'm still study on it present~ a lot of thing to study with KIM-1 platform.

Best,

Liu

--
You received this message because you are subscribed to the Google Groups "PAL 6502 computer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pal6502+u...@googlegroups.com.

Liu GN

unread,
Nov 1, 2021, 10:00:01 AM11/1/21
to Hendrik-Jan Megens, PAL 6502 computer

The ps is highlight ;)

--
You received this message because you are subscribed to the Google Groups "PAL 6502 computer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pal6502+u...@googlegroups.com.

Bob Leedom

unread,
Nov 1, 2021, 5:41:19 PM11/1/21
to PAL 6502 computer
Soon after I finished the KIM-Venture program, when I thought maybe I could make some money by selling the game, I found a local company that would mass-reproduce my Hypertape cassette, print up the manuals, and package the whole thing for sale. I think I sold six or seven copies.*

When Dominic Bumbaca first asked me about KIM-Venture in July of this year, he didn't have the capability of reading my ancient cassettes (although I sent him one), so the closest to a usable version that I could offer was a photocopy of a typed listing, from which I tried to generate a hex dump for him. I'm not sure of all the steps he took before he got it working.

The audio file on Hans' site was created just recently by him, once he finally got the program installed and running.

Bob

* I sold one copy to someone at a local KIM-1 computer user group meeting. [Remember those days!?]. The next time I visited, everyone commented on how much fun the game was -- they'd simply made multiple copies of the one I sold the guy, and passed them around.

Bob Leedom

unread,
Nov 1, 2021, 5:44:56 PM11/1/21
to PAL 6502 computer
I wrote: "The audio file on Hans' site was created just recently by him".  By "him", I meant Dominic Bumbaca, not Hans.

John Kennedy

unread,
Nov 6, 2021, 3:53:56 PM11/6/21
to PAL 6502 computer
Thanks for trying. I will maybe do it the 'brute force' way and virtually fill the ram.

John Kennedy

unread,
Nov 6, 2021, 3:55:47 PM11/6/21
to PAL 6502 computer
I will have to compare this against a "real" device, and see how my simulation is failing.
Reply all
Reply to author
Forward
0 new messages