addrarng.zip (16k) (SCEA) (broken link)
addrarng.zip (16k) (SCEE)
Here's a copy of the text file included in the zip.
======================================================================
Address Arranger
(c) 1997 Scott Cartier
======================================================================
Contents of addrarng.zip:
o addrarng.txt - This file
o addrarng.exe - The exectuable
o addrarng.c - Source code
======================================================================
What does it do?
To answer that question we need a bit of background. When
downloading programs to the Yaroze there are two methods for
selecting the addresses for TIMs, RSDs, etc. The static method
picks a fixed address and loads all of the files there every time.
The dynamic method calculates the end of the code space and places
in the memory afterward.
The advantage of the static method is that you don't need to reload
your files every time you recompile "main"; you can just download
"main" and go. On the other hand, you have to figure out each
file's address by hand. If your file ever changes size then you
need to recompute every address from that file onward.
This program eases that burden.
Rather than computing each address by hand, which can be tedious
and error-prone, you simply make a list of files. The Address
Arranger packs them together one right after another, leaving no
space between the files (except for 1-3 bytes to make each begin on
a 32-bit boundary).
The program will also create a ".h" header file which you can
include in your program. It's basically a list of #define
statements which you can reference in your program. You also give
the name for each #define in the input file.
======================================================================
Usage: addrarng
======================================================================
Input file
----------
The first line in the input file must be the starting address for
your files. Typically this is 0x8009000 (you can leave off the "0x"
if you want).
The rest is your list of files, one on each line. Give the file name
first followed by the name you want to output in the #define header
file.
You can include comments by beginning a line with double
forward-slashes "//" (like a normal one-line C comment). Blank lines
will also be ignored.
======================================================================
Output files
------------
In addition to the input file name you must give two output file
names. The first is the name of the header file you wish to create.
You should probably name it with a .h just for clarity.
The last parameter is the name of the auto file you wish created.
You can use this for SIOCONS. The program automatically appends
"load local main" and "go" at the end.
======================================================================
CAUTION: If you specify an output file that already exists it will
be automatically overwritten.
======================================================================
An example file (filelist.txt):
0x8009000
// My graphics
a.tim ADDRESS_A
b.tim ADDRESS_B
// Music stuff
song.seq ADDR_MUSIC
Let's say "a.tim" is 100 bytes and "b.tim" is 233 bytes. Then if you
run the program like this:
C:\> addrarng filelist.txt addr.h auto
The file addr.h would be:
#define ADDRESS_A 0x80090000
#define ADDRESS_B 0x80090064
#define ADDR_MUSIC 0x80090150
And the auto file would be:
local dload a.tim 80090000
local dload b.tim 80090064
local dload music.seq 80090150
local load main
go
Notice how the length of "b.tim" was rounded up to 236 bytes. I've
had trouble when I didn't align each starting address on 32-bit
boundaries.
======================================================================
Feel free to hack up the code to make it do what you want. I'm sure
everyone's needs are a bit different.
======================================================================
addrarng.zip (16k) (SCEA) (broken link)
addrarng.zip (16k) (SCEE)
This web page and all other pages on this site are © 1997 Scott Cartier