Skip to content

Commit

Permalink
Krill's loader support
Browse files Browse the repository at this point in the history
Most productions from CSDb crediting Krill for the loader have
been tested and work.

See the table at the end of doc/krills-loader.txt for details.
  • Loading branch information
thierer committed Sep 15, 2022
1 parent 3257c98 commit 3c2406e
Show file tree
Hide file tree
Showing 21 changed files with 2,242 additions and 6 deletions.
1 change: 1 addition & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- New fastloader: Ultraboot
- New fastloader: Hypra-Load
- create D64 images in the FAT FS with N: if no image is mounted
- Krill's IRQ loader

2012-02-26 - release 0.10.3
- Bugfix: Un-break I2C display communication
Expand Down
36 changes: 36 additions & 0 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -741,6 +741,42 @@ Note: Using sd2iec without an external crystal or similiar precise
Hypra-Load uses the ATN line for handshake, so it only works if no
other device is connected to the IEC bus.

Krill's IRQ Loader
------------------
The sd2iec implementation supports loading both from D41/D71/D81
images and files extracted to the SD card. Extracting the files
in a useable form can be a challenge for some releases, though:
Some use directory entries on a non-standard track, payload might
be read from files marked as deleted in the directory and the
"load next file" functionality of the loader relies on the order
of the files in the directory.

A small number of releases use track/sector addressing to load
files; these only work from a D64 image.

See doc/krills-loader.txt for additional remarks regarding specific
releases.

The loader is captive, but the sd2iec implementation should most
of the time be able to detect a host reset or uninstall and exit
accordingly.

As the ATN line is used as a clock line for transfers, no other
drives might be active on the bus. Starting with revision r164,
the loader tries to silence other devices by installing an "ATN
responder". In the sd2iec implementation this activates "Sleep
Mode" (see below), which has to be ended manually by holding the
disk change button.

On a C128 host the loader uses the burst protocol if connected to
a 1571 or 1581. This is not yet supported by this implementation.
(The only known C128 release using this loader is "Colour Spectrum",
CSDb Release ID 205653).

Only productions released on CSDb which credit Krill for their
loader were tested. Other productions might use configuration
options which are not supported and therefore might not work.

JiffyDOS:
=========
The JiffyDOS protocol has very relaxed timing constraints compared to
Expand Down
1 change: 1 addition & 0 deletions configs/config-arm2iec1
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=n
CONFIG_LOADER_HYPRALOAD=n
CONFIG_LOADER_KRILL=n
3 changes: 3 additions & 0 deletions configs/config-example
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ CONFIG_LOADER_ULTRABOOT=n
# Enable Hypra-Load fastloader
CONFIG_LOADER_HYPRALOAD=n

# Enable Krill's loader
CONFIG_LOADER_KRILL=n

# Enable DolphinDOS parallel speeder
CONFIG_PARALLEL_DOLPHIN=y

Expand Down
3 changes: 2 additions & 1 deletion configs/config-larsp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ CONFIG_MCU_FREQ=8000000
CONFIG_BOOTLOADER=y
CONFIG_BOOT_DEVID=0x5053524c
CONFIG_COMMAND_CHANNEL_DUMP=y
CONFIG_BUS_SILENCE_REQ=n
CONFIG_BUS_SILENCE_REQ=y
# In case someone added a crystal to his board
CONFIG_LOADER_TURBODISK=y
CONFIG_LOADER_FC3=y
Expand Down Expand Up @@ -68,3 +68,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=y
CONFIG_LOADER_HYPRALOAD=y
CONFIG_LOADER_KRILL=y
1 change: 1 addition & 0 deletions configs/config-mbed
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ CONFIG_LOADER_AR6=y
CONFIG_LOADER_ELOAD1=y
CONFIG_LOADER_ULTRABOOT=n
CONFIG_LOADER_HYPRALOAD=n
CONFIG_LOADER_KRILL=n
CONFIG_HARDWARE_VARIANT=100
CONFIG_HARDWARE_NAME=sd2iec-mbed
CONFIG_SD_AUTO_RETRIES=10
Expand Down
3 changes: 2 additions & 1 deletion configs/config-sw1
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ CONFIG_BOOTLOADER=y
CONFIG_BOOT_DEVID=0x49454321
CONFIG_UART_DEBUG=n
CONFIG_COMMAND_CHANNEL_DUMP=n
CONFIG_BUS_SILENCE_REQ=n
CONFIG_BUS_SILENCE_REQ=y
# Turbodisk requires a crystal which is usually only present on 1.8 or later
CONFIG_LOADER_TURBODISK=y
CONFIG_LOADER_FC3=y
Expand Down Expand Up @@ -66,3 +66,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=y
CONFIG_LOADER_HYPRALOAD=y
CONFIG_LOADER_KRILL=y
3 changes: 2 additions & 1 deletion configs/config-sw2
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ CONFIG_MCU_FREQ=8000000
CONFIG_BOOTLOADER=y
CONFIG_BOOT_DEVID=0x31434549
CONFIG_COMMAND_CHANNEL_DUMP=y
CONFIG_BUS_SILENCE_REQ=n
CONFIG_BUS_SILENCE_REQ=y
CONFIG_LOADER_TURBODISK=y
CONFIG_LOADER_FC3=y
CONFIG_LOADER_DREAMLOAD=y
Expand Down Expand Up @@ -68,3 +68,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=y
CONFIG_LOADER_HYPRALOAD=y
CONFIG_LOADER_KRILL=y
3 changes: 2 additions & 1 deletion configs/config-uIEC
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ CONFIG_UART_BAUDRATE=38400
CONFIG_UART_BUF_SHIFT=6
CONFIG_DEADLOCK_ME_HARDER=n
CONFIG_COMMAND_CHANNEL_DUMP=y
CONFIG_BUS_SILENCE_REQ=n
CONFIG_BUS_SILENCE_REQ=y
CONFIG_LOADER_TURBODISK=y
CONFIG_LOADER_FC3=y
CONFIG_LOADER_DREAMLOAD=y
Expand Down Expand Up @@ -70,3 +70,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=y
CONFIG_LOADER_HYPRALOAD=y
CONFIG_LOADER_KRILL=y
3 changes: 2 additions & 1 deletion configs/config-uIEC3
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ CONFIG_UART_BAUDRATE=38400
CONFIG_UART_BUF_SHIFT=6
CONFIG_DEADLOCK_ME_HARDER=n
CONFIG_COMMAND_CHANNEL_DUMP=y
CONFIG_BUS_SILENCE_REQ=n
CONFIG_BUS_SILENCE_REQ=y
CONFIG_LOADER_TURBODISK=y
CONFIG_LOADER_FC3=y
CONFIG_LOADER_DREAMLOAD=y
Expand Down Expand Up @@ -68,3 +68,4 @@ CONFIG_LOADER_N0SDOS=y
CONFIG_LOADER_SAMSJOURNEY=y
CONFIG_LOADER_ULTRABOOT=y
CONFIG_LOADER_HYPRALOAD=y
CONFIG_LOADER_KRILL=y
Loading

0 comments on commit 3c2406e

Please sign in to comment.