401
404
The other alternative is a <EM>true drive</EM> emulation. The
402
405
Commodore disk drives are provided with their own CPU (a 6502 as the
403
406
VIC20 and the PETs) and their own RAM and ROM. So, in order to more
404
closely emulate its features, a complete emulation of this hardware must
405
be provided and that is what the <EM>hardware level</EM> emulation does.
406
When the <EM>hardware level</EM> emulation is used, the kernal routines are
407
remain unpatched and the serial line is fully emulated. The problem
408
with this emulation is that it needs a lot of processing power, mainly
409
because the emulator has to emulate two CPUs instead of one.
413
As of 0.14.0 the <EM>hardware level</EM> emulation is available on all
414
emulators. It can only be used to emulate drive unit #8 or #9. Other
415
units are disabled if <EM>hardware level</EM> drive emulation is enabled.
419
The PETs do not use a serial IEC bus to communicate with the
420
floppy drive but instead use the parallel IEEE488 bus. This does
407
closely emulate its features, a complete emulation of this hardware
408
must be provided and that is what the <EM>hardware level</EM> emulation
409
does. When the <EM>hardware level</EM> emulation is used, the kernal
410
routines are remain unpatched and the serial line is fully emulated.
411
The problem with this emulation is that it needs a lot of processing
412
power, mainly because the emulator has to emulate two CPUs instead of
417
The PETs do not use a serial IEC bus to communicate with the floppy
418
drive but instead use the parallel IEEE488 bus. This does
421
419
<EM>byte by byte</EM> transfers, as opposed to the <EM>bit by bit</EM>
422
420
transfers of the C64 and VIC20, so making it feasible to emulate the
423
421
parallel line completely while emulating the drive at DOS level only.
424
The IEEE488 line interpreter maps the drives 8-11 (as described above)
425
to the IEEE488 disk units, and no kernal traps are needed. The same
426
emulation of the Commodore IEEE488 bus interface is available for the
427
C64 and the VIC20. With IEEE488 drives you can have true 2031 emulation
428
at unit #8, and still have filesystem access at units #10 or #11, because
429
monitoring the IEEE488 lines does not interfere with the true drive
434
The IEEE488 disk drives 3040, 4040, 8050 and 8250 are Dual Drive Floppy Disks.
435
This means that these drives handle two disks. To Accomplish the
436
emulation, only one disk can be emulated, namely unit #8. The
437
attached image, track display and LED display of unit #9 are used
438
for the second drive of the dual disk drives. On unix the unit number
439
display (8 or 9) in the emulation window changes to the drive number
444
The Commodore 3040, 4040, 1001, 8050 and 8250 disk drives are
445
so-called "old-style"
446
disk drives. Their architecture includes not one, but two processors
447
of the 6502 type, namely a 6502 for the file handling and communication
448
with the PET (IP), and a 6504 (which is a 6502 with reduced address space) for
449
the drive handling (FDC). Both processors communicate over a shared memory
450
area. The IP writes commands to read/write blocks to this area and
451
the FDC executes them. To make the emulation feasible, the FDC processor
452
is not emulated cycle-exactly as a 6504, but simply by checking
453
the commands and executing them on the host. This provides a fast
454
FDC emulation, but disallows the sending the FDC processor commands
455
to execute code. Applications where this is necessary are believed
456
to be rather seldom. Only the format command uses this feature, but
461
The dual disk drive 2040 emulates one of the very first CBM disk drives.
462
This drive has DOS version 1. DOS1 uses an own disk type, that is closely
463
related to the 1541 disk image. Only on tracks 18-24 DOS1 disks have
464
a sector more than 1541 disks. DOS1 disk images have the extension .d67.
468
The dual disk drives 3040 and 4040 use the same logical disk format as
469
the VC1541 and the 2031. In fact, the 4040 was the first disk with
470
DOS version 2. The 3040 emulated here originally was the same as 2040, only
471
for the european 30xx PET series. As many of the original DOS1 disk drives
472
were upgraded (a simple ROM upgrade!) to DOS2, I use the 3040 number for
473
a DOS 2.0 disk drive, and 4040 for a revised DOS 2 disk drive.
474
It is, however, not yet clear whether the disks here
475
are write compatible to the 1541, as rumors exist that the write gap between
476
sectors is different. But read compatible they are. As VICE emulates
477
the FDC processor in C and not as 6504 emulation, this does not matter
482
The drives 1001, 8050 and 8250 do actually have the very same DOS ROM.
483
Only the code in the FDC is different, which is taken care of by VICE.
484
So for all three of those disk drives, only <CODE>dos1001</CODE> is needed.
485
The DOS version used is 2.7.
422
The IEEE488 line interpreter maps the drives 8-11 (as described
423
above) to the IEEE488 disk units, and no kernal traps are needed.
424
The same emulation of the Commodore IEEE488 bus interface is
425
available for the C64 and the VIC20. With IEEE488 drives you can have
426
true 2031 emulation at unit #8, and still have filesystem access at
427
units #10 or #11, because monitoring the IEEE488 lines does not
428
interfere with the true drive emulation.
432
The IEEE488 disk drives 3040, 4040, 8050 and 8250 are Dual Drive
433
Floppy Disks. This means that these drives handle two disks. To
434
Accomplish the emulation, only one disk can be emulated, namely unit
435
#8. The attached image, track display and LED display of unit #9 are
436
used for the second drive of the dual disk drives. On unix the unit
437
number display (8 or 9) in the emulation window changes to the drive
438
number display (0 or 1).
442
The Commodore 3040, 4040, 1001, 8050 and 8250 disk drives are
443
so-called "old-style" disk drives. Their architecture includes not
444
one, but two processors of the 6502 type, namely a 6502 for the file
445
handling and communication with the PET (IP), and a 6504 (which is a
446
6502 with reduced address space) for the drive handling (FDC). Both
447
processors communicate over a shared memory area. The IP writes
448
commands to read/write blocks to this area and the FDC executes them.
449
To make the emulation feasible, the FDC processor is not emulated
450
cycle-exactly as a 6504, but simply by checking the commands and
451
executing them on the host. This provides a fast FDC emulation, but
452
disallows the sending the FDC processor commands to execute code.
453
Applications where this is necessary are believed to be rather
454
seldom. Only the format command uses this feature, but this is
459
The dual disk drive 2040 emulates one of the very first CBM disk
460
drives. This drive has DOS version 1. DOS1 uses an own disk type,
461
that is closely related to the 1541 disk image. Only on tracks 18-24
462
DOS1 disks have a sector more than 1541 disks. DOS1 disk images have
467
The dual disk drives 3040 and 4040 use the same logical disk format
468
as the VC1541 and the 2031. In fact, the 4040 was the first disk with
469
DOS version 2. The 3040 emulated here originally was the same as
470
2040, only for the european 30xx PET series. As many of the original
471
DOS1 disk drives were upgraded (a simple ROM upgrade!) to DOS2, I use
472
the 3040 number for a DOS 2.0 disk drive, and 4040 for a revised DOS
473
2 disk drive. It is, however, not yet clear whether the disks here
474
are write compatible to the 1541, as rumors exist that the write gap
475
between sectors is different. But read compatible they are. As VICE
476
emulates the FDC processor in C and not as 6504 emulation, this does
481
The drives 1001, 8050 and 8250 do actually have the very same DOS
482
ROM. Only the code in the FDC is different, which is taken care of by
483
VICE. So for all three of those disk drives, only <CODE>dos1001</CODE> is
484
needed. The DOS version used is 2.7.