Autostart: Difference between revisions
m (→device traps) |
mNo edit summary |
||
(15 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 10: | Line 24: | ||
</pre> | </pre> | ||
== binaries == | |||
* prg | * prg | ||
* p00 | |||
== tape == | |||
* tap | |||
* t64 | * t64 | ||
== cartridge == | |||
* crt | * crt | ||
== 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 39: | Line 65: | ||
|yes | |yes | ||
|yes | |yes | ||
|? | |? | ||
|? | |? | ||
Line 59: | Line 82: | ||
|yes | |yes | ||
|yes | |yes | ||
|? | |? | ||
|? | |? | ||
Line 82: | Line 102: | ||
|d71 | |d71 | ||
|d81 | |d81 | ||
|? | |? | ||
|? | |? | ||
Line 98: | Line 115: | ||
(*1) "True Drive Emulation" is available and works with the given drive. | (*1) "True Drive Emulation" is available and works with the given drive. | ||
(*2) The | (*2) The images for this drive work in vdrive (ie without TDE) | ||
== device traps == | == 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 | |||
{| class="wikitable" | |||
!x64 | !x64 | ||
!x64sc | !x64sc | ||
Line 119: | Line 139: | ||
|yes | |yes | ||
|yes | |yes | ||
|? | |yes? | ||
|? | |yes? | ||
|? | |yes? | ||
|? | |yes? | ||
| | |yes? | ||
|yes (incomplete) | |||
|yes | |||
|} | |} | ||
== TODO == | == 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 === | === unexpected failures === | ||
<pre> | <pre> | ||
xplus4 | 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 | ||
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 | ||
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 | ||
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 | ||
</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
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