ULoad is a loader system I developed for my Ultima gold cracks. It comes in a few different flavors, to reflect the different needs of the games. It's a IRQ loader, and as such shares traits with the other systems out there such as PlushDOS, DreamLoad, and CovertBitOps Loadersystem. The major feature that sets ULoad apart is the ability to write files, to implement game saves. The system comes in several flavors, to fit the needs of different games.


The loaders share more than a few parts, most notably their ancestry: it all started with an implementation based on Lasse Öörni's rants on IRQ loaders, specifically rants #5, #7, #12, and #13.

They also support writing files, but are limited to overwriting existing files. There is no support for creating new files or changing the file's size.

The drive communication protocol is a 2-bit timed protocol (similar to that in rant #7), which is fairly fast, but there are a few things you have to handle:

They also support the same hardware:

Model 3

This loader is based on the needs of Ultima 3 Gold. It supports reading of sector chains (e.g. PRG/SEQ/USR files), writing of sector chains, and directory reading. To implement file loading, the computer side has to read (and preferably cache) the directory to get the starting track and sector of each file.


Model 4

This loader is based on the needs of Ultima 4 Gold. It's an IFFL system, which means that the individual game files are packed into big archives of up to 256 files each. As U4 has nearly 800 files, the loader support multiple IFFL archives, and the scanner stays resident to support re-scanning after changing disks. It also support reading and writing of normal PRG files, for game saving.

ULoad Model 4 is not yet ready for release, contact me if you have a project you want to use it for.


Email me at magervalp@fastmail.fm.