Drive Emulation Type Cleanup: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
Line 44: Line 44:
** create P00 files
** create P00 files
** only show P00 files
** only show P00 files
== Precedence ==
iecbus.c contains this table:
<pre>
iecbus_status_set() sets IEC bus devices according to the following table:
TDE DE ID VD                                      iecbus_device
0  0  0  0  nothing enabled                      IECBUS_DEVICE_NONE
0  0  0  1  trap device enabled                  IECBUS_DEVICE_NONE
0  0  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
0  0  1  1  IEC device enabled+trap dev. enabled  IECBUS_DEVICE_IECDEVICE
0  1  0  0  nothing enabled                      IECBUS_DEVICE_NONE
0  1  0  1  trap device enabled                  IECBUS_DEVICE_NONE
0  1  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
0  1  1  1  IEC device enabled+trap dev. enabled  IECBUS_DEVICE_IECDEVICE
--------------------------------------------------------------------------
1  0  0  0  nothing enabled                      IECBUS_DEVICE_NONE
1  0  0  1  nothing enabled                      IECBUS_DEVICE_NONE
1  0  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
1  0  1  1  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
1  1  0  0  TDE drive enabled                    IECBUS_DEVICE_TRUEDRIVE
1  1  0  1  TDE drive enabled                    IECBUS_DEVICE_TRUEDRIVE
1  1  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
1  1  1  1  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
TDE = true drive emulation (device switch)
DE = device enable (device switch)
ID = IEC devices (device switch)
VD = virtual devices (global switch)
</pre>

Revision as of 14:34, 19 August 2021

goals:

  • get rid of all "global" options, ie it should all be "per device"
  • have a "emulation type" option rather than seperate options for various features
    • prevent non working combinations
  • fix the autostart logic to always work, regardless of options

related options

First we need to collect all related options and how they relate to each other

emulation related options

Drives

  • Virtual Device Traps (TODO: make per drive)
    • Host Filesystem
    • Disk Images
  • True Drive Emulation
    • Disk Images
      • Drive Type
what does "none" mean exactly?
  • IEC Device
    • Host Filesystem
    • Disk Images
    • Real Device (opencbm)

Printer

we need to work out how the Printer stuff is related at all, and perhaps enable traps implicitly in some cases

  • Emulation Type
    • Host Filesystem (does that mean "use device traps"?)
    • IEC Device
    • Real Device (opencbm)

other options

  • handle TDE at autostart
  • warpmode
  • Host Filesystem
    • use long filenames
    • create P00 files
    • only show P00 files

Precedence

iecbus.c contains this table:

iecbus_status_set() sets IEC bus devices according to the following table:

TDE DE ID VD                                       iecbus_device
 0  0  0  0  nothing enabled                       IECBUS_DEVICE_NONE
 0  0  0  1  trap device enabled                   IECBUS_DEVICE_NONE
 0  0  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
 0  0  1  1  IEC device enabled+trap dev. enabled  IECBUS_DEVICE_IECDEVICE
 0  1  0  0  nothing enabled                       IECBUS_DEVICE_NONE
 0  1  0  1  trap device enabled                   IECBUS_DEVICE_NONE
 0  1  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
 0  1  1  1  IEC device enabled+trap dev. enabled  IECBUS_DEVICE_IECDEVICE
--------------------------------------------------------------------------
 1  0  0  0  nothing enabled                       IECBUS_DEVICE_NONE
 1  0  0  1  nothing enabled                       IECBUS_DEVICE_NONE
 1  0  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
 1  0  1  1  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
 1  1  0  0  TDE drive enabled                     IECBUS_DEVICE_TRUEDRIVE
 1  1  0  1  TDE drive enabled                     IECBUS_DEVICE_TRUEDRIVE
 1  1  1  0  IEC device enabled                    IECBUS_DEVICE_IECDEVICE
 1  1  1  1  IEC device enabled                    IECBUS_DEVICE_IECDEVICE

TDE = true drive emulation (device switch)
DE = device enable (device switch)
ID = IEC devices (device switch)
VD = virtual devices (global switch)