One note after a shot at implementing eload: doing the setup for file load using IEC protocol will be murder for your interrupts, if you use Kernal (and it takes several frames.) However, as the device is known at this point, you could take a happycase approach, and implement your own simplified IEC send byte routine that can coexist with your interrupts. Also has the advantage that you can clobber whatever memory you like.
I think Burst while not faster than 2bit in a tight coupled loop,if I'm pulling in a byte around other things, such as irqs, sprites, game logic, having 8 bits being transferred without a CPU having to be involved will make it a lot easier. As I can't miss the byte, and it will wait for me without needing to be sent again. However does your code use Burst + 2Bit bang, because that would get you faster again right, as the Burst byte won't occupy CPU time while you transfer the 2bits and hence be almost for "free"?
*= $b00 .text "cbm" ; Autoboot signature. .word $0000 ; Load address for additional sectors. (T1, S1) .byte $00 ; Bank number for additional sectors. .byte $00 ; Number of sectors to load. .text "dropzone", $00 ; Boot message: "BOOTING..." .text "boot", $00 ; Program to load on boot. jmp $1c0e .align $100,0
the 512K cart will already be compressed. It will have some code uncompressed to do the initial boot etc, but all the data will be compressed.