So while I
wish the hardware addicts well, viva the software addicts!!!!
Personally, I like the real hardware and enjoy constructing new hacks and
keeping the original gear working both. I also write code, but far more
system-level code than application code. To me, at the level I write at,
I need a 100% faithful hardware emulation from my simulators. It's not
good enough that a FORTRAN or BASIC program will run, pull in text
Agreed. If you want to run BASIC programs there are many easier ways to
do it :-). I find it curious that people will write programs in a high
level language for some long-lost machine and run them under an emualtor
of said machine when they probably could get the same language for the PC
they were running the emulator on. For supporing exisitng software, sure
I can understnad the use of emulators there. But writing a program in,
say, C64 BASIC under an emualtor on a PC when there are better BASICs that
are native to said PC?
from a disk or tape file and smash together the data
and spit out the
right characters for output. I care if bits in I/O registers flip and clear
in the right combination (though I care less if it takes 1us or 0.001us
as long as it's perceived by my code to be in the right sequence with
no atomic operations broken).
In general, most emulators do a fine job of this or the OS would never
load in the first place, but there are edge cases, which is why, for
example, in VICE, you can select logical emulation of the model
1541 floppy drive or exact emulation. Logical emulation presents
far less load on the host and if all you do is load and save files
and send non-exotic commands to read and write data, it all works
fine. If your program needs to manipulate data structures and buffers
behind the scenes (CBM DOS allows the main CPU to read and write
arbitrary bytes in the disk drive CPU's memory space using simple
textual commands that are syntactically the same as the commands
to load and save and review the directory, so it's not out of the question
to emulate it all).
There is a similar issue in writing a PERQ emulator. The PERQ 2 family
have a Z80 processor for low speed I/O (seiral prots, keyboard, mouse,
HPIB, floppy disk IIRC). The ROM hung off said Z80 contains just enough
code ot boot the machine (handle keyboard and floppy), the main program
is ethen loaded into the Z80's RAM by the main PERQ processor. Most the
time you run the Z80 code that came with the OS and never bother about
it. But in theory, although it's almost entriely undocuemtned, it's
possible to run your own code there. DO you emulate that or not?
Incidentally,m the Z80 code, at least the ROM, is a rather nice
cooperative multitasking system.
So this is not a condemnation of emulation, but it is
a
cautionary tale that sometimes, it's not as easy as it
appears to "get it right", and that's where having real
working hardware can help. You say, "almost all
The real test for an emulator is 'does the real machien do exactly the
same thing?'
-tony