X-LOAD version 1.0
by Fox/Taquart
INTRODUCTION
This tool can be used for loading executable files from PC into real
Atari computer via SIO2PC interface. Only input and output lines are
used, so that X-LOAD should work with all types of interface.
However, 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.0
USAGE
You run X-LOAD from DOS prompt with executable filename and optional
options:
- /1 - /4
- Specify COM port number, which interface is attached to.
Default is COM2.
- /p
- Force using 'professional loader', which allows you to load
code/data under ROM and disables ROM and interrupts while starting program.
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, you can watch on your PC memory locations, which program
loads to.
After program was loaded and run, X-LOAD terminates. You may exit it
earlier at any time by pressing ESC key.
DETAILS
First X-LOAD sends a byte to Atari and then waits until Atari is booted.
That 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 that you needn't touch your Atari to run program on it.
While booting, X-LOAD accepts two commands for disk drive 1:
- 'S' - read status. Used for checking presence of disk drive.
- 'R' - read sector (only first). Used for reading boot program.
After Atari receives and runs its loader, the transmission runs at 57600
bits/sec. You can not hear any transmission sound, because the frequency
is too high for a human.
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 header are high and low byte of address
of last block byte minus $ff. Third byte equals low byte of
($100-block_length). Then come block data, which are loaded directly
into their memory location.
For more details, view sources of 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 changed
because of operating system. In this respect X-LOAD loaders are better, because
allow loading into whole memory except for loader code.