diff options
author | B. Watson <urchlay@slackware.uk> | 2022-08-29 16:11:13 -0400 |
---|---|---|
committer | B. Watson <urchlay@slackware.uk> | 2022-08-29 16:11:13 -0400 |
commit | e2ba8458a5cfdfacfaf103e7ba97d610afa6c970 (patch) | |
tree | cd665e602e6e2b636578a7d3d7894380605dafcc /fenders.rst | |
download | bw-atari8-tools-e2ba8458a5cfdfacfaf103e7ba97d610afa6c970.tar.gz |
initial commit
Diffstat (limited to 'fenders.rst')
-rw-r--r-- | fenders.rst | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/fenders.rst b/fenders.rst new file mode 100644 index 0000000..9c4f1c7 --- /dev/null +++ b/fenders.rst @@ -0,0 +1,239 @@ +.. RST source for fenders(1) man page. Convert with: +.. rst2man.py fenders.rst > fenders.1 +.. rst2man.py comes from the SBo development/docutils package. + +======= +fenders +======= + +--------------------------------------------------------------- +Install Fenders 3-sector loader in boot sectors of an ATR image +--------------------------------------------------------------- + +.. include:: manhdr.rst + +SYNOPSIS +======== + +*fenders* [*-hrcsiv*] [-t *title*] *infile.atr* [*outfile.atr*] + +DESCRIPTION +=========== + +**fenders** replaces the boot sectors of an ATR image with a menu-driven +"game dos" binary loader. + +When the disk is booted, a disk directory menu is displayed on the +screen. To load a binary (XEX/COM/BIN/etc) file, press the letter +shown for that file. Other file types may not be loaded (and will cause +the Atari to crash). + +The installed bootloader overwrites sectors 1-3 of the image +(and sector 720, for double-density images). This is the same code +installed by the Atari-based **Fenders 3-sector** loader installer +utility. + + +OPTIONS +======= + +-h + Print this help message. + +-r + DON'T reboot (coldstart) the Atari if Reset is pressed. The default is to coldstart. + +-c + Rotate colors during load. May cause problems with some games. + +-s + Screen off after load. May cause problems with some games, but + may fix graphics corruption for other games. YMMV. + +-i + In-place update. The input file is renamed to end in **~** (tilde), + and the output is written to the original filename. May not be + used when reading from standard input. + +-v + Set inverse video bit in title. This causes the title text to + appear in red and/or blue on the Atari, instead of the default + orange and green colors. + +-t + Set the menu title. May up to 20 characters; default is *atari + arcade*. Will be truncated to 20 characters if a longer title is + given. See MENU TITLE, below. Note that you'll have to quote the + title if it contains spaces or other characters that have meaning to your shell. + +infile + The ATR image to read from. It must be either single-density + and at least 368 sectors long, or double-density and at least + 720 sectors long. You may use **-** for *infile* to read from + standard input (unless **-i** is used). + +outfile + The ATR image to create, which will contain all the files + from the input image, plus the Fenders boot loader. You may + omit *outfile* or use **-** to write to standard output. *outfile* is + ignored when the **-i** option is used. + +If both *infile* and *outfile* are omitted, the default is to read from +standard input and write to standard output. + +NOTES +===== + +**fenders** will abort, if asked to write to standard output when standard +output is a terminal. This is to avoid spewing binary garbage to your +terminal. + +The **-r**, **-c**, **-s**, and **-t** options actually modify the **fenders** 6502 object +code before writing it to the ATR image. + +The Atari **fenders** installer's default is to not coldstart, which +tends to cause the Atari to lock up when Reset is pressed. The +author believes that rebooting the Atari is more useful than locking +it up, so **fenders** causes the coldstart by default. + +The Atari **fenders** installer contains a bug: the meanings of the "Rotate +color" and "Screen off after load" options are reversed. **fenders** does +not duplicate this bug. + +The disk density doesn't have to be specified, because **fenders** reads it +from the ATR header. The loader's 6502 object code is different, for +single- and double-density disks. + +The double-density version of the loader isn't actually a 3-sector +loader. The first 384 bytes of its code are stored in the 3 boot sectors, and the last 256 bytes of code are actually read from sector 720. +When installing the boot loader on a double-density disk, sector 720 is +**overwritten**. Any data that may have been there is lost. On most disks, +sector 720 is either unusable by DOS, or not used unless the disk is +completely full, so this is less of a problem than you might think. + +**fenders** and the **fenders** boot-loader code will work with DOS +2.5 "enhanced density" formatted floppies, but only partially: files +that use sectors above 720 will not appear in the menu (these are the +same files that DOS 2.5 lists with <> around the filename). + +**fenders** only works on Atari DOS 2.x and compatible (MyDOS, DOS XL, et +al) single-sided disk images, either single-density (720 sectors, 90K), +double-density (720 sectors, 180K), or "1050 enhanced" density (1040 +sectors, 130K, although 1050 enhanced density images must be in DOS 2.5 +format, *not* MyDOS, and see **LIMITATIONS** below). Other non-standard DOS +formats such as SpartaDOS or Atari DOS 3.0 and 4.0 are not supported. +Atari DOS 1.0 may or may not work (untested). + +The **fenders** boot loader source code distributed with **fenders** +is not the original source code (which has never been +released). The author of **fenders** spent a couple of days with a +disassembly of the object code and reverse engineered (labelled, +commented) it so that humans can read it, provided they are humans who +speak 6502 assembly. The *fenders.dasm* and *fendersdbl.dasm* files +can be assembled with the DASM cross assembler. The resulting object +code is identical with the original **fenders** object code (which +the author read from a disk image in the first place). + +Contrary to what you may have read, the Fenders boot loader code +doesn't have to be rewritten to a disk if you add/delete files. It +reads the disk directory, and can cope with changes just fine. Even a +heavily fragmented filesystem won't cause any problems. + +MENU TITLE +========== + +The menu title (set with **-t**) is stored in sector 3 for a +single-density disk or sector 720 of a double-density disk, in Atari +internal screen codes (which are not the same as either ASCII or +ATASCII). fenders converts the title into internal codes, so the user +doesn't have to worry about this. + +The menu title is displayed in "GRAPHICS 2" mode, which can only +display 64 different characters, including uppercase, numbers, and +(most) punctuation, but NOT including lowercase or inverse video. + +However, lowercase letters are displayed as different-colored +uppercase letters, and inverse characters are also displayed with +different colors. The boot loader uses the default Atari +colors, as set by the Atari OS. + +The title is limited to 20 characters because that's the width of a +GRAPHICS 2 line of text on the Atari. + +The character set used by GRAPHICS 2 consists of: + +- The space character. + +- The letters **A-Z**. + +- The numbers **0-9**. + +- Punctuation: **!** **"** **#** **$** **%** **&** **'** **(** **)** **\*** **+** **,** **-** **.** **/** **:** **;** **<** **=** **>** **?** **@** **[** **\\** **]** **^** **_** + +Uppercase letters, numbers, and punctuation are displayed in orange (or +blue, if **-v** is used). + +Lowercase letters are displayed in green (or red, with **-v**). + +The characters ` { | } ~ are displayed as green (or red) versions of +@ [ \ ] ^, respectively. + +Currently, it's not possible to mix normal (orange/green) characters +with inverse (blue/red) with fenders, unless your terminal provides a +way for you to enter ASCII characters with their high bits set. Some +versions of xterm(1x) allow this with the Alt or Meta key. + +LIMITATIONS +=========== + +**fenders** should warn if the disk image contains more than 20 files, +since they won't all be displayed in the menu. + +Double-density images less than 720 sectors long are not handled, +although they could be with a little more work. + +For double-density disks, the VTOC and sector link bytes should +be checked to see if sector 720 is in use, rather than just blindly +overwriting it. On a single-density DOS 2.0S disk, sector 720 is +marked "in use" in the VTOC when the disk is formatted, but will never +be used for file storage. + +No checking for non-standard formats (SpartaDOS, DOS 3, MyDOS with +subdirectories, dedicated bootdisks, etc) is done. + +If an "enhanced" 1050 density disk image has the bootloader installed, +it won't display the files using sectors above 720 (the ones which +would appear as *<filename.ext>* in the DOS 2.5 directory). + +Actually, the above limitations are a direct result of the fact that +**fenders** deals with the disk image at the "sector" level, and contains +no code that understands the files, directory, or VTOC on the image. +The original Atari-based Fenders installer shares the same limitations, +so the author doesn't really consider them to be bugs, although they +may be addressed in a future version of **fenders**. + +Note that the bootloader only displays up to 20 files on the screen. +This shouldn't be a real problem (how many games can you fit on a 180K +floppy?), but no warning or error is given if there are too many files. + +The bootloader only supports standard SIO disk speed (19200bps). The +only way to make it support high-speed SIO is to use the APE Warp OS +(or some other high-speed patched OS) on the Atari. + +BUGS +==== + +There should be an option to delete DOS.SYS and DUP.SYS from the image, +but there isn't. The original Fenders installer has this option. + +When used with an image whose size according to the ATR header +doesn't match the actual image file size, **fenders** may produce +a broken or zero-length output file. If in doubt, use **atrcheck** to +validate the image before use. + +There should be a way to install an arbitrary 3-sector (384-byte) +binary file in the boot sectors of an image. This can be done with +**dd**, of course, but its syntax is difficult to remember, and typos are +prone to wipe out the file you're working with. + +.. include:: manftr.rst |