I've never figured out exactly how it works, but you may need to use something called initrd. This stands for initial ram disk. The idea is that you create a RAM disk that contains the modules you need, load it and the modules, then transfer to the root filesystem with the modules loaded. Redhat does this all the time. You'd need a Linux system to do the RAM disk creation, I think unless there are pre-configured ones. If you have an existing Slackware system, what you could do to make a custom kernel is to unpack the kernel source in your home directory and build like normal. Copy the resulting bzImage to vmlinuz on the Zip disk and go from there. I don't own a parallel port Zip drive myself, but I think either the initrd or custom kernel are your only options. I'm actually surprised that Zipslack doesn't offer a kernel with both Speakup and parallel zip support.