mirror of
https://github.com/pfusik/xasm.git
synced 2024-12-22 00:29:15 +00:00
85 lines
3.4 KiB
HTML
85 lines
3.4 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>X-LOAD 1.1</TITLE>
|
|
</HEAD>
|
|
<BODY BACKGROUND="6502proc.gif">
|
|
<CENTER>
|
|
<H1>X-LOAD version 1.1</H1>
|
|
<HR>
|
|
</CENTER>
|
|
|
|
<H2>INTRODUCTION</H2>
|
|
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.<P>
|
|
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).<P>
|
|
<H3>CHANGES</H3>
|
|
<H4>Version 1.1</H4>
|
|
<UL>
|
|
<LI> files with no explicit run address are started from the beginning
|
|
of the first block
|
|
</UL>
|
|
<H4>Version 1.0</H4>
|
|
<UL>
|
|
<LI> first release
|
|
</UL>
|
|
|
|
<HR>
|
|
<H2>USAGE</H2>
|
|
You should pass as the parameters the executable file name and optionally
|
|
the options:<P>
|
|
<DL>
|
|
<DT><TT>/1</TT> - <TT>/4</TT>
|
|
<DD>Serial port number. Default is 2.<P>
|
|
<DT><TT>/p</TT>
|
|
<DD>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.<P>
|
|
</DL>
|
|
After you run X-LOAD, you only have to boot your Atari and the program
|
|
will be loaded and run.<P>
|
|
While loading, PC prints memory locations, which the program loads into.<P>
|
|
After the program is loaded and run, X-LOAD terminates. You may exit it
|
|
earlier at any time by pressing the ESC key.<P>
|
|
|
|
<HR>
|
|
<H2>DETAILS</H2>
|
|
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.<P>
|
|
While booting, X-LOAD accepts two commands for disk drive 1:<P>
|
|
<UL>
|
|
<LI> <TT>'S'</TT> - read status. Used by the Atari OS to check presence
|
|
of a disk drive.
|
|
<LI> <TT>'R'</TT> - read sector (only first). Used to transfer the loader.
|
|
</UL>
|
|
After the Atari receives and runs the loader, the transmission runs at 57600
|
|
bits/sec.<P>
|
|
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:
|
|
<UL>
|
|
<LI>Standard: <A HREF="xloadstd.asx">XLOADSTD.ASX</A>
|
|
<LI>Professional: <A HREF="xloadpro.asx">XLOADPRO.ASX</A>
|
|
</UL>
|
|
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.
|
|
<P><HR><P><A HREF="index.htm">Back</A>
|
|
</BODY>
|
|
</HTML> |