.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "ATR2XFD" 1 "2025-02-25" "0.2.1" "Urchlay's Atari 8-bit Tools"
.SH NAME
atr2xfd \- Convert an Atari 8-bit ATR disk image to a raw (XFD) image
.\" RST source for atr2xfd(1) man page. Convert with:
.
.\" rst2man.py atr2xfd.rst > atr2xfd.1
.
.\" rst2man.py comes from the SBo development/docutils package.
.
.SH SYNOPSIS
.sp
\fBatr2xfd\fP \fIinfile.atr\fP [\fIoutfile.xfd\fP]
.sp
\fBatrcheck\fP \fIinfile.atr\fP
.SH DESCRIPTION
.sp
\fBatr2xfd\fP strips the 16\-byte ATR header from an ATR image. While this
could be done with a command like:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
dd if=infile.atr outfile.xfd bs=16 skip=1
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\&...**atr2xfd** first checks that its input is in fact an ATR file, then
checks the ATR header and reports any problems it may find.
.sp
\fBatrcheck\fP performs the same checks as \fBatr2xfd\fP, but doesn\(aqt actually
write an XFD image. In fact, \fBatrcheck\fP is a symbolic link to \fBatr2xfd\fP,
which changes its behaviour (simply doesn\(aqt write any output) when
called via the link. \fBatrcheck\fP also examines the boot sector of the ATR,
and attempts to detect which Atari DOS is on the image (if any).
.sp
Neither \fBatr2xfd\fP nor \fBatrcheck\fP take any options.
.SH NOTES
.sp
For both commands, you may use \fB\-\fP for \fBinfile\fP to read from
standard input. For \fBatr2xfd\fP, use \fB\-\fP for \fBoutfile\fP to write
to standard output. If a filename is supplied for \fBoutfile\fP, it will
always be used as\-is (no \fI\&.xfd\fP  extension will be appended).
.sp
If outfile is omitted, it is constructed like so:
.INDENT 0.0
.IP \(bu 2
If reading from standard input, write to standard output.
.IP \(bu 2
If reading from a file whose name ends with an \fI\&.atr\fP or \fI\&.ATR\fP extension,
replace the extension with \fI\&.xfd\fP\&.
.IP \(bu 2
Otherwise, append \fI\&.xfd\fP to the input filename.
.UNINDENT
.SH EXAMPLES
.sp
Check an image:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ atrcheck dos_20s.atr
atrcheck: size is 5760 16\-byte paragraphs
atrcheck: sectors: 720, sector size: 128 bytes
atrcheck: dos_20s.atr is a standard SS/SD image, 90K
atrcheck: ATR image OK (no fatal errors).
[ exit status is 0 ]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Check an image and convert to XFD:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ atr2xfd dos_20s.atr
atr2xfd: input \(aqdos_20s.atr\(aq, output \(aqdos_20s.xfd\(aq
atr2xfd: size is 5760 16\-byte paragraphs
atr2xfd: sectors: 720, sector size: 128 bytes
atr2xfd: dos_20s.atr is a standard SS/SD image, 90K
atr2xfd: ATR image OK (no fatal errors).
atr2xfd: XFD image OK, wrote 92160 bytes
[ exit status is 0 ]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Attempt to use atrcheck with an XFD image:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ atrcheck dos_20s.xfd
atrcheck: (fatal) dos_20s.xfd looks like an XFD image, not an ATR
[ exit status is 2 ]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Here, games001.atr is one of the old Yogi/Jellystone 1 meg images:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ atrcheck games001.atr
atrcheck: size is 65536 16\-byte paragraphs
atrcheck: sectors: 8192, sector size: 128 bytes
atrcheck: games001.atr is a high\-capacity floppy or hard disk image, SD
atrcheck: ATR image OK (no fatal errors).
[ exit status is 0 ]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Here is an attempt to treat a non\-image file as an image:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ atrcheck /bin/ls
atrcheck: size is 5120 16\-byte paragraphs
atrcheck: (fatal) /bin/ls not an ATR file (no NICKATARI signature)!
[ exit status is 2 ]
.ft P
.fi
.UNINDENT
.UNINDENT
.SH EXIT STATUS
.sp
Exit status is zero for success, non\-zero for  failure.  Further,
exit status will be 1 for errors involving file I/O (file not found,
permissions, etc), and 2 for structural errors in the ATR file.
.SH COPYRIGHT
.sp
WTFPL. See \fI\%http://www.wtfpl.net/txt/copying/\fP for details.
.SH AUTHOR
.INDENT 0.0
.IP B. 3
Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\&.
.UNINDENT
.SH SEE ALSO
.sp
\fBa8cat\fP(1),
\fBa8eol\fP(1),
\fBa8xd\fP(1),
\fBatr2xfd\fP(1),
\fBatrsize\fP(1),
\fBaxe\fP(1),
\fBbas2aplus\fP(1),
\fBblob2c\fP(1),
\fBblob2xex\fP(1),
\fBcart2xex\fP(1),
\fBcxrefbas\fP(1),
\fBdasm2atasm\fP(1),
\fBdiffbas\fP(1),
\fBdumpbas\fP(1),
\fBf2toxex\fP(1),
\fBfenders\fP(1),
\fBlistbas\fP(1),
\fBlistamsb\fP(1),
\fBprotbas\fP(1),
\fBrenumbas\fP(1),
\fBrom2cart\fP(1),
\fBunmac65\fP(1),
\fBunprotbas\fP(1),
\fBvxrefbas\fP(1),
\fBwhichbas\fP(1),
\fBxex1to2\fP(1),
\fBxexamine\fP(1),
\fBxexcat\fP(1),
\fBxexsplit\fP(1),
\fBxfd2atr\fP(1),
\fBxex\fP(5),
\fBatascii\fP(7),
\fBfauxtari\fP(7).
.sp
Any good Atari 8\-bit book: \fIDe Re Atari\fP, \fIThe Atari BASIC  Reference
Manual\fP,  the  \fIOS Users\(aq Guide\fP, \fIMapping the Atari\fP, etc.
.\" Generated by docutils manpage writer.
.