Welcome, Guest. Please login or register.

Author Topic: Story of VD0 - the invention of the recoverable ram disk  (Read 12733 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline pkivolowitzTopic starter

Story of VD0 - the invention of the recoverable ram disk
« on: March 14, 2010, 06:52:19 PM »
My name is Perry Kivolowitz. I wrote the first recoverable ram disk.
 
At that time, ASDG (the company I founded with Dan Esenther and a third partner almost no one has ever heard about) made only hardware products - specifically a memory board. And the box the memory board went into since there was no expansion capacity in an Amiga (other than chip ram).
 
I heard that a competitor, I don't remember who - maybe it was the great guys over at Microbotics or the sleazebags over at C Ltd, were going to release a ram disk that would survive reboots. Incredible. Wow would that be killer - it would mean an incredible competitive advantage for them - a compelling reason to buy their memory boards.
 
I have to beat them to it, I thought.
 
The key to the RRD (recoverable ram disk) was that the Amiga OS memory allocation call allowed you to specify where the newly allocated memory should come from. The basic call always allocated memory from low memory upwards. But there was this other call (or maybe it was the same call) that would allocate memory from the top down.
 
I pulled out one of the lesser known Amiga manuals, I'm pretty sure it was a printed manual, which described Amiga device drivers. The example disk driver was enormously complex and written in BCPL or was it B. What was the name of the language those wierdos nobody ever heard from again were writing in? I don't remember.
 
I got home from work at AT&T on Friday afternoon and started coding. I coded straight through to Sunday night. Non-stop. Somewhere I have a picture or me at my A1000 wrapped in a blanket (couldn't really afford heat) at the end of that weekend. I did not look good.
 
The RRD was written in assembly language. I loved 68K assembly language. I had been among the first C programmers in academia (when Unix first left Bell Labs) and coded in 68K assembly language at pretty much the same speed as the two were so close.
 
A significant challenge was deciding when the RRD could be trusted after a reboot. There was no memory isolation - any process could nail any byte in memory. The first thing the code did was attempt to find the first bytes allocated to the RRD in memory starting at the top of memory and working its way backwards looking for a sentinel. When / if that was found it then followed a data structure backwards to determine if all the blocks allocated to the RRD were still there.
 
I don't remember - was it my RRD that dynamically grew or was it the one that came later? It might have been mine that dynamically grew. If all of the memory allocated to the RRD was still there it was REallocated (another cool thing about the Amiga memory manager) and then checked with a simple CRC. This is the main thing that slowed down the RRD - computing and checking CRCs to make sure nobody else had blasted the memory without us knowing.
 
There was a rediculous amount of code in there to mimic the crap I found in the example disk driver I was working from. The RRDs that came later didn't have any of that crap as other ways were worked out to write Amiga drivers. I had nothing else to work from but the crappy example.
 
It turns out the other guys RRD never came out. It never existed. Just a rumor. Mine was a huge hit on the other hand and sold us a lot of memory boards. People thought it was magic.
 
For a long time it was available only with ASDG memory boards and it did check for ASDG hardware. At some point down the line I removed the check for ASDG hardware but it was still only provided "legally" by us.
 
At some point after that I made it shareware for $10. I believe it was one of the most successful shareware products ever made on the Amiga. I can tell you that I survived on those ten dollar checks and bills sent through the mail.
 
It has never been told but I worked for years for no pay while building ASDG. I lived off of savings from my consulting days at AT&T - god bless 'em. It was several years (3?) into ASDG's existance that I got my first check. I made $6 an hour. And I was so damn proud.
 
Some time later a German kid reverse engineered my RRD and came out with a much better one. Years later we talked about it and I congratulated him on it. It really was better.
 
Finally, there came a day when Amiga hard disk drives didn't suck so much. Amiga hard drives were INCREDIBLY slow due to badly designed architecture. The first hard drives were slower than floppies. Especially compared to floppies augmented by Facc and Facc II - other early ASDG software products I wrote. Facc II floppies ran at ram speed as they were memory-based clones of the floppy that happened to be loaded at the time.
 
VD0 by the way stood for Virtual Disk 0.
 
EDIT: I should have had a date in here. The original VD0 was written sometime in 1985 or maybe early 1986 as I still lived in New Jersey.
 
p
« Last Edit: March 14, 2010, 07:49:03 PM by pkivolowitz »
 

Offline save2600

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 3261
  • Country: us
    • Show only replies by save2600
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #1 on: March 14, 2010, 06:58:51 PM »
Fun read, thanks for that! If you ever find that picture of you huddling over your A1000, you should post it for sake of nostalgia  :)
 

Offline Pyromania

  • Sent from my Quantum Computer
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 1819
  • Country: 00
  • Thanked: 6 times
    • Show only replies by Pyromania
    • http://www.discreetfx.com
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #2 on: March 14, 2010, 07:06:25 PM »
Very cool piece of Amiga history, thanx so much for sharing it.
 

Offline pkivolowitzTopic starter

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #3 on: March 14, 2010, 07:09:40 PM »
I have a lot of stories I've never told. Maybe enough of us are dead now that I can start telling them :)
 
Actually, I'm not joking as much as I thought I was. I count my birthdays in terms of how much longer I've lived than Paul Montgomery. Man I am morbid.
 

Offline Pyromania

  • Sent from my Quantum Computer
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 1819
  • Country: 00
  • Thanked: 6 times
    • Show only replies by Pyromania
    • http://www.discreetfx.com
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #4 on: March 14, 2010, 07:25:41 PM »
Paul did die way to young, only 38 years old.
 

Offline pkivolowitzTopic starter

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #5 on: March 14, 2010, 07:31:27 PM »
Quote from: Pyromania;547552
Paul did die way to young, only 38 years old.

In fact I just updated his Wikipedia page to reflect one of his other contributions to the Amiga - the founding of FAUG.
 
I believe it is reasonable to say that had he lived longer he would have been Don King and P.T. Barnum and a dozen of the most well known promoters rolled into one and probably would be governer of California or president of Enron.
 
He was a force of nature. Not all positive, nobody is. But a force of nature non-the-less.
 

Offline Zac67

  • Hero Member
  • *****
  • Join Date: Nov 2004
  • Posts: 2890
    • Show only replies by Zac67
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #6 on: March 14, 2010, 08:25:50 PM »
Very cool story - thank you!

And welcome to a.org, the best Amiga place around! :afro:
 

Offline kolla

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #7 on: March 14, 2010, 08:30:59 PM »
How does VD0 relate to the RAD disk that came with AmigaOS eventually?
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline pkivolowitzTopic starter

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #8 on: March 14, 2010, 08:54:13 PM »
Quote from: kolla;547575
How does VD0 relate to the RAD disk that came with AmigaOS eventually?

VD0 might be a great-grandfather of RAD. Probably grandfather. The German kid's version would be Son-Of-VD0.
 
Oh, I remember now. My disk didn't resize dynamically - it ALLOCATED dynamically. At least some of the other recoverable ram disks that came later allocated all of their space in one go. I think there was one that finally allocated dynamically and resized dynamically but that wasn't mine. Actually, to be honest, I don't remember for sure if mine allocated dynamically or not, I know I did something that was better than the next RRD that came out. I have backup tapes that have the source code for everything ASDG did but no way to read them (assuming they are still readable).
 
Apart from this distinction there was little functional difference between them. In practical terms, however, the newer RRDs were faster and smaller. The smaller wasn't by much - we're only talking a few kilobytes at most.
 
I think the main things that make VD0 important are:
 
a) How early it was in the commercial life of the Amiga - it was 1985 or 1986.
 
b) How big a problem it remedied - I know for sure that several major software products would have been much more difficult to write had the authors had to rely purely on floppy disk development. Roman Ormandy for example was very enthusiastic during the development of Caligari.
 
c) The fact that it hadn't been done before. It was PFM at the time. Pure Magic.
 
d) It altered the direction of ASDG. We were a hardware company through and through. The RRD was our first software product and started us towards making software. Almost has fateful as the cab ride I took which completely altered ASDG. But that's a story for another day
:)
 
Bottom line is that it wasn't so much how well the bear danced, it was that the bear was dancing at all.
« Last Edit: March 14, 2010, 09:00:34 PM by pkivolowitz »
 

Offline Matt_H

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #9 on: March 14, 2010, 08:54:14 PM »
Ah, VD0/ASDG-RAM. Used it for many years on my 500. Thanks for the story :)

It's still on Aminet, by the way. I'm not sure this is the same version I used, though.
 

Offline Tension

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #10 on: March 14, 2010, 09:16:00 PM »
Quote from: pkivolowitz;547582
Almost has fateful as the cab ride I took which completely altered ASDG. But that's a story for another day
:)


Do tell!!

And welcome to Amiga.org -- You'll never leave!!

Offline JimS

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1155
    • Show only replies by JimS
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #11 on: March 15, 2010, 12:35:48 AM »
Perry: Welcome to A.org... It's beginning to look like a familt reunion around here... Dave Haynie was here a little while back. Hedley Davis stopped by to tell the tale of the Memorial Disk Drive. ;-)

Re: RRD. I used to copy my workbench and favorite utilites into it back before I could afford that whopping huge 40MB hard drive.
Obsolescence is futile. You will be emulated. - Amigus of Borg
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #12 on: March 15, 2010, 04:30:45 AM »
Quote from: pkivolowitz;547541
The key to the RRD (recoverable ram disk) was that the Amiga OS memory allocation call allowed you to specify where the newly allocated memory should come from. The basic call always allocated memory from low memory upwards. But there was this other call (or maybe it was the same call) that would allocate memory from the top down.

MEMF_REVERSE ;AllocMem: allocate from the top down

There is some new AllocMem() flags that would have made your life much easier back then...

MEMF_LOCAL ;Memory that does not go away at RESET
MEMF_24BITDMA ;DMAable memory within 24 bits of address
MEMF_KICK ;Memory that can be used for KickTag stuff

Some of us are still programming you know. The Amiga is too good to let disappear ;). A lot of people have come back and are having fun with it. There are lots of good forums and enough new hardware being worked on that it can't all be vapor ware. I love 68k assembler programming as well. You should check out http://www.Natami.net/ and http://eab.abime.net/.

What format is the ASDG software tape backups in? Maybe someone here has the right tape drive. You should release the code and programs to Aminet. ADPRO at the least, had some features like a large variety of dithering types that would be very handy in other projects.
 

Offline pkivolowitzTopic starter

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #13 on: March 15, 2010, 05:38:36 AM »
Quote from: matthey;547631
What format is the ASDG software tape backups in? Maybe someone here has the right tape drive. You should release the code and programs to Aminet. ADPRO at the least, had some features like a large variety of dithering types that would be very handy in other projects.

The would be 1/4 inch Exabyte tapes written probably on an A4000 running Unix with tar. This is just a guess.

I'd have to have a pretty solid understanding with someone to send away the tapes as there would be stuff on there which should not see light of day.

Maybe I should visit eBay and see if there's a drive available. I'd be happy to give away some of the source code.
 

Offline pkivolowitzTopic starter

Re: Story of VD0 - the invention of the recoverable ram disk
« Reply #14 on: March 15, 2010, 05:42:30 AM »
Yeah, I have a tape labeled "Whole Company 1/23/94" - it's an 8mm I think.

Interesting.