Autostart: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__TOC__
__TOC__
goals:
* fix the [[Autostart]] logic to always work, regardless of options
== files ==
src/kbdbuf.c
src/autostart.c
src/autostart-prg.c
== related options ==
First we need to collect all related options and how they relate to each other. For drive-emulation related details, see [[Drive Emulation Type Cleanup]]


In the following configurations autostarting will not work - "TDE" enabled, "handle TDE" disabled and "autostartmode 0" can not work.
In the following configurations autostarting will not work - "TDE" enabled, "handle TDE" disabled and "autostartmode 0" can not work.
Line 22: Line 36:


== tapecart image ==
== tapecart image ==
* .tcrt


== disk images ==
== disk images ==


{|
Disk images seem to be the most tricky thing, since different drives have different levels of supported emulation
 
{| class="wikitable"
!
!
!1540
!1540
Line 103: Line 121:
Device traps are needed to make the "virtual drive" (access host directory) work. Also for vdrive, ie using disk images without TDE.
Device traps are needed to make the "virtual drive" (access host directory) work. Also for vdrive, ie using disk images without TDE.


{|
Note: the IEEE machines do not use kernal patches for the "virtual drive", instead they implement an actual IEEE device
 
{| class="wikitable"
!x64
!x64
!x64sc
!x64sc
Line 154: Line 174:
xcbm5x0 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp
xcbm5x0 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp
</pre>
</pre>
[[Category:Developer]]
[[Category:TODO]]

Latest revision as of 21:05, 23 March 2023

goals:

  • fix the Autostart logic to always work, regardless of options

files

src/kbdbuf.c
src/autostart.c
src/autostart-prg.c

related options

First we need to collect all related options and how they relate to each other. For drive-emulation related details, see Drive Emulation Type Cleanup

In the following configurations autostarting will not work - "TDE" enabled, "handle TDE" disabled and "autostartmode 0" can not work.

-truedrive +virtualdev -autostartprgmode 0 +autostart-handle-tde -autostart-warp
-truedrive +virtualdev -autostartprgmode 0 +autostart-handle-tde +autostart-warp
-truedrive -virtualdev -autostartprgmode 0 +autostart-handle-tde -autostart-warp
-truedrive -virtualdev -autostartprgmode 0 +autostart-handle-tde +autostart-warp

binaries

  • prg
  • p00

tape

  • tap
  • t64

cartridge

  • crt

tapecart image

  • .tcrt

disk images

Disk images seem to be the most tricky thing, since different drives have different levels of supported emulation

1540 1541 1541-II 1570 1571 1581 FD 2000 FD 4000 2031 2040 3040 4040 SFD 1001 8050 8250
has TDE (*1) yes yes yes ? ? ? ? ? ? ? ? ? ? ? ?
has vdrive (*2) yes yes yes ? ? ? ? ? ? ? ? ? ? ? ?
image d64 d64 d64 d64 d71 d81 ? ? ? ? ? ? ? ? ?

(*1) "True Drive Emulation" is available and works with the given drive.

(*2) The images for this drive work in vdrive (ie without TDE)

device traps

Device traps are needed to make the "virtual drive" (access host directory) work. Also for vdrive, ie using disk images without TDE.

Note: the IEEE machines do not use kernal patches for the "virtual drive", instead they implement an actual IEEE device

x64 x64sc x128 xvic xplus4 xpet xcbm2 xcbm5x0 x64dtv xscpu64
yes yes yes yes yes? yes? yes? yes? yes? yes (incomplete)

TODO

  • fix automatically selecting the drive type by looking at the image type
    • do not change the drive type when the selected image works on the respective drive (if 1571 is active and d64 is selected, it should NOT switch to 1541)
  • perhaps have an option to automatically remove cartridges before autostarting

unexpected failures

xplus4 seems a bit unstable (some tests fail randomly)

xpet -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xpet -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp
xpet -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xpet -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp

xcbm2 -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xcbm2 -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp
xcbm2 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xcbm2 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp

xcbm5x0 -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xcbm5x0 -drive8type 8250 -truedrive +virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp
xcbm5x0 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde -autostart-warp
xcbm5x0 -drive8type 8250 -truedrive -virtualdev -autostartprgmode 0 -autostart-handle-tde +autostart-warp