Emulation vs. "the real thing" was: Re: Minimal CP-M SBC design

Ray Arachelian ray at arachelian.com
Tue May 20 05:54:20 CDT 2008


Allison wrote:
> ;)  Having had noisy crash prone drives ( and still having many) 
> if I want to build to explore some part/hack of CP/M it's usually 
> not writing yafd (yet another floppy driver).  CF allows me to 
> build and pay attention to other things that might be more hardware
> and software intensive.  Examples over the years is low DC power 
> systems, page mappers and the memory management software.  Both 
> hard to do in a sim but the sim can help in creating the code.
>
>   
Besides, if you want noise, you could always add sounds.  That's what I 
did with LisaEm.  Whenever there's floppy reads, you hear the sounds of 
an actual 400K floppy drive spinning.  I didn't add the sounds of the 
head seeks, mainly because they're inaudible except if you're really 
close to the drive, but certainly if you're going all out and emulating 
5.25" or 8" floppy drives, where you can hear the head, you can always 
add those in too. 

Will cost you more in hardware as now you'll need a sound chip that's 
able to play back samples on your single board computer, but if you're 
willing to give up a parallel port, you could wire up a simple D/A 
converter via a resistor network.

If you want more realism than that, you could always add some sort of 
optional failure mode where there's a 1/10000 chance of disk failure 
whenever you insert a disk, and have it wipe out an entire track or 
whatever, and make the appropriate noises.  Wouldn't that be fun when 
you're trying do some work, or perhaps are trying to show how cool CP/M 
was to a group of kids you were trying to impress into looking at 
vintage hardware. :-)

Even better, since you are on an emulator you could do something that 
was impossible - you could make a backup of the 
about-to-emulate-a-failure floppy for the user in the background, so 
once the fireworks are over, they can undo the damage.  In real life, 
back in the day, you couldn't do that.

Personally, that's one of the charms of emulators, you get away from the 
unreliability of the original hardware.  (I'm not about to debate 
reliability of modern hardware, however, CF cards are certainly more 
robust than single floppies precisely because you can't harm them with a 
magnet, nor do they bend easily.)

Sure, there are a lot of things in the experience you can't really 
emulate.  These include the physical aspects of the hardware itself, you 
just can't touch the original machine in an emulator, nor its keyboard, 
nor feel the heat it gave off, nor the barely perceptible flicker, the 
curvature of the CRT, but sounds, failures, fonts, behavior can be 
easily emulated, if that's part of your goal. 

Most of the emulators I've seen don't care about those things, and they 
just barely give you the display output, and beeps, and not much more 
from the experience. Ok, sure, they emulate some devices too, but not 
the experience of actually using the original machine.   I think the 
goal of most emulator writers, myself excluded, is a) to say they've 
managed to build an emulator - this feeds into the whole emu-scene 
thing, and b) to get it going for software compatibility.  Few actually 
have the goal of allowing the end user to experience the original machine.

I do care about those things, so I took the trouble to add in sounds, 
and even simulate the blueish tint of so called black and white CRT 
phosphor.  I would have simulated the curvature of the CRT, only after 
doing some experiments, it was horribly ugly and slow that it wasn't 
worth it.

There are a lot of things I've skipped over, for example, when printing, 
I do simulate the output of an ImageWriter and it does look like 
dot-matrix output.  I would eventually add some sort of animation of an 
actual imagewriter printer spitting stuff out and having playing 
realistic sounds (based on the data printed), but haven't do so yet.

Yes, if we had holodeck like techonology where you could touch and feel 
old hardware and take it apart and mess with it virtually, I'm sure I'd 
be the first in line to build emulators in that environment, but you 
work with what you have available.


Some folks here are against emulators because they feel it takes away 
from the actual hardware.  I disagree with that. 

Sure, if you're a vintage computing enthusiast, you want the real 
hardware, and you want it to work, but not everyone has the ability to 
keep big iron in their house, some even live in small apartments, and 
some of that hardware would cost a fortune in electricity to keep 
running - if you were to keep it running 24/7.  I don't think these 
folks should be excluded from the fun and enjoyment of vintage computers 
just because they can't afford to obtain, maintain, repair, or store 
actual machines.

While most of us would wish ebay prices weren't as insane as they are, 
they do tell an interesting truth: vintage hardware has a very finite 
supply.  When there is a demand for it, the prices get insanely out of 
hand.  Yes, there are crazy sellers out there selling machines for 
10-100x what we think they should cost, however, what's crazy is that 
there are buyers at those prices, and that makes our hobby more 
expensive.  Emulators are essentially free.

While I do live in a house, I don't have the space to collect big iron.  
So I've artificially limited my collecting to mostly 8 bit home 
computers, and small workstations, and these live on shelving, most of 
the machines are plugged in and ready for me to work on whenever I want 
to.  However, I do find myself firing up an emulator more often when one 
exists than the actual hardware.  This is mostly so I don't 
unnecessarily wear it out old mechanical components such as floppy drives.

As much as I hate to say it, eventually old machines will wear out and 
some of the custom parts will become unobtainable.  In the Lisa, there 
are a lot of parts that can't be easily replaced.  There are modern 
replacements for some of these, such as the X/Profile, or IDE:File, but 
for example the COP421 chip is really hard to get - the only source is 
from another Lisa I/O board, and if you've had the batteries in your 
Lisa leak all over your I/O board, this is likely one of the components 
that will fail.  Yes, you can buy parts from VintageMicros, yes, you can 
get parts from another Lisa, for now.  How about 5 years from now?  10? 
20? 30? at what point will that last working Lisa fail and become 
irreparable?  Replace Lisa with your specific favorite machine and 
reread this paragraph.

I do have some, although limited electronics experience, so I can repair 
damage boards here and there, but I'm certainly not great at it, and I 
appreciate that this is a huge part of the enjoyment of old hardware.  
But, there's still a lot of enjoyment to be had from playing around with 
the software from these machine, and that's where emulators come in.

So if you're just starting out, you could still experience a huge 
variety of vintage systems, at no cost, and no physical storage cost by 
downloading hundreds of emulators.  Point in case, if you had the money, 
time and space, you could fill quite a large space with hundreds of 
arcade machines, repair the damaged ones, and clean up and restore them 
all, or for very little effort, you could download MAME, purchase some 
legal ROMs (or not) and perhaps for added realism build an arcade 
cabinet with real controls.

Emulators also allow you to do something else too, they allow you to 
ask, "what if" - if you have the ability to add your own code in them.  
If you want to explore what might have been had a certain company not 
gone out of business, or if they had expanded on your favorite machine.  
You can add extra features to the machine that it never originally had.

The simplest of these is unthrottling the CPU speed.  But if you're so 
inclined, you can add color displays, or other hardware and explore it 
further provided you're willing to rewrite some of the underlying 
operating system, or you could even just look deep inside undocumented 
proprietary land and figure out how it actually works.  This in itself 
is a hell of a lot of fun.

(I prefer the term emulator over simulator.  Simulator to me has a very 
specific meaning, and since emulators don't simulate the whole board at 
the transistor level, but rather emulate the behavior of the machine, to 
me, it's a better term.)



More information about the cctech mailing list