Skip to content

Commit

Permalink
Revamped parameters a bit, added -b and -f to set BSS start and flags…
Browse files Browse the repository at this point in the history
…, globally and per file. Added diagnostic cart support
  • Loading branch information
ggnkua committed Oct 29, 2023
1 parent 8faa8a8 commit 0340701
Show file tree
Hide file tree
Showing 2 changed files with 226 additions and 63 deletions.
33 changes: 25 additions & 8 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,42 @@
USM
---
===

Small tool to ease the creation of Atari ST cart images.

Usage
=====
-----

From the command line:

`usm [s] image_filename <list_of_programs_to_add>`
`usm [-s] [-d] [-bX] [-fY] image_filename <list of programs to add with optional -b and -f>`

where *s* is optional and allows creation of STEem Engine compatible carts, *image_filename* is the filename of the cart image and *list_of_programs_to_add* is a list of ST PRG programs to add to the image.
where:

- *-s* is optional and allows creation of STEem Engine compatible carts
- *-d* enables creation of diagnostic cartridges (only one program allowed, which will relocate to $fa0004)
- *-bX* allows setting the BSS address to an address other than the default ($20000)
- *-fY* allows setint the INIT flag. y can be
- 0 Execute prior to display memory and interrupt vector initialization
- 1 Execute just before GEMDOS is initialized
- 3 Execute prior to boot disk
- 5 Application is a Desk Accessory
- 6 Application is not a GEM application
- 7 Application needs parameters
- *image_filename* is the filename of the cart image
- *list of programs to add with optional -b and -f* is a list of ST PRG programs to add to the image, optionally postfixed by a *-b* and/or *-f* to set the parameters for the current file only

More on defaults: The default value for *-b* is $20000, and the default value for *-f* is nothing. Passing *-b* and/or *-f* at the start of the parameter list will override the default values. Passing *-b* and/or *-f* after each program in the list, will override the defaults for that file only.

Caveats (boy, here we go)
=========================
-------------------------

- Only use single file PRG programs. Programs that try to load external files will not work.
- Only use single file PRG programs. Programs that try to load external files will not work
- TODO: Some sanity checks are performed, but the program is far from bullet proof
- TODO: Programs that contain BSS should normally not work. For now, we point the bss to the hardcoded address of $20000. This will be user definable in the future. (Unfotunately it doesn't seem possible to do this automatically. If anyone has an idea on how to do this, happy to discuss!)
- TODO: The BSS start address has to be supplied by user (or accept the default value of $20000). Unfotunately it doesn't seem possible to do this automatically. If anyone has an idea on how to do this, happy to discuss!
- On BSS: programs that access the BSS using PC relative code will most likely fail
- TODO: CA_INIT bitfields are not yet available to the user, so we simply add the programs as if they're meant to be run from desktop as GEM applications
- TODO: Date and Time are still set to bogus vaules

Building
--------

Use the provided scripts. Or Visual Studio.
Loading

0 comments on commit 0340701

Please sign in to comment.