X-LOAD version 1.1


INTRODUCTION

This tool may be used to load an Atari executable file, stored on the PC, into a real Atari computer, via the SIO2PC interface. Only data input and data output lines are used, so X-LOAD should work with all types of the interface.

It is experimental version. I'm not sure if it will work with every hardware. I've noticed it is not stable and sometimes transmission can hang or distortions in loaded data may appear. The reason is that there is no error-checking, while transmission is fast (57.6 kbits/sec).

CHANGES

Version 1.1

Version 1.0


USAGE

You should pass as the parameters the executable file name and optionally the options:

/1 - /4
Serial port number. Default is 2.

/p
Force using 'professional loader', which allows you to load code/data into the RAM under ROM ($c000-$ffff) and starts the program with disabled ROM and interrupts. By default, standard loader is used, which can load any Atari executable not demanding DOS or any special loader.

After you run X-LOAD, you only have to boot your Atari and the program will be loaded and run.

While loading, PC prints memory locations, which the program loads into.

After the program is loaded and run, X-LOAD terminates. You may exit it earlier at any time by pressing the ESC key.


DETAILS

First, X-LOAD sends a byte to Atari and then waits until the Atari is booted. The byte can be used to detect from Atari, that PC is ready for transmission. When you are testing your program, you may code periodic checking if a byte was received, and performing cold reset in that case. So you don't need to touch your Atari to run your program on it.

While booting, X-LOAD accepts two commands for disk drive 1:

After the Atari receives and runs the loader, the transmission runs at 57600 bits/sec.

The transmission protocol is very simple: Atari sends a byte to inform that it is ready for receiving data. Then PC sends a 3-byte header and a block of data. First two bytes of the header are the high and the low byte of the address of the last byte in the block minus $ff. Third byte equals low byte of ($100-block_length). Then come block data, which are loaded directly into their memory locations. For more details, view source files of the loaders:

You may have noticed that X-LOAD is somehow similar to X-BOOT, which also has two loaders. The main difference is that X-BOOT loaders use system routines to get sectors at regular speed of 19200 bits/sec. They use sector buffer and require some low memory locations not to be altered because of Atari operating system. In this respect X-LOAD loaders are better, because they allow loading into whole memory except for the loader code.


Back