Autostart
goals:
- fix the Autostart logic to always work, regardless of options
files
src/kbdbuf.c src/autostart.c src/autostart-prg.c
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