diff options
Diffstat (limited to 'system/pucrunch/cbmcombine.1')
-rw-r--r-- | system/pucrunch/cbmcombine.1 | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/system/pucrunch/cbmcombine.1 b/system/pucrunch/cbmcombine.1 new file mode 100644 index 0000000000..f7f749d1d7 --- /dev/null +++ b/system/pucrunch/cbmcombine.1 @@ -0,0 +1,178 @@ +.\" Man page generated from reStructuredText. +. +.TH CBMCOMBINE 1 "2017-09-06" "20081122" "SlackBuilds.org" +.SH NAME +cbmcombine \- combines Commodore 8-bit executables +. +.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 +.. +.\" RST source for cbmcombine(1) man page. Convert with: +. +.\" rst2man.py cbmcombine.rst > cbmcombine.1 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.\" converting from pod: +. +.\" s/B<\([^>]*\)>/**\1**/g +. +.\" s/I<\([^>]*\)>/*\1*/g +. +.SH SYNOPSIS +.sp +cbmcombine [\fIinput\-file[,load\-address]\fP] [[[\fIinput\-file[,load\-address]\fP]] ...] +.SH DESCRIPTION +.sp +cbmcombine combines several Commodore executables into one. All Commodore +8\-bit machines (64, 128, VIC\-20, Plus4, 16, PET, etc) are supported, +since they all use the same executable file format. +.sp +Files are read in the order listed on the command line. The combined +executable is written to standard output. Each file\(aqs load address can +be forced by adding a comma and the new address (in decimal, or in hex +with 0x prefix), in which case the load address in the file will be read +and ignored. +.sp +If any of the input files overlap the same area of memory, the overlap +area will contain only data from the file(s) listed later in the command +line. The output file\(aqs load address will be that of the input file with +the lowest address, and it will extend to the highest address contained +in any of the files. If there are gaps in the address space (areas where +no file was loaded), the output will contain 0x00 bytes to fill the gap. +.sp +Load address overrides do NOT relocate code. +.sp +There are no switches (options) for cbmcombine. +.SH EXAMPLES +.sp +The examples use 1024 byte input files, named after their load addresses +in hex: +.sp +x1000.prg Load address \fB$1000\fP, last address \fB$13FF\fP +.sp +x1400.prg Load address \fB$1400\fP, last address \fB$17FF\fP +.sp +x1600.prg Load address \fB$1600\fP, last address \fB$19FF\fP +.sp +cmbcombine x1000.prg x1400.prg > new.prg +.INDENT 0.0 +.INDENT 3.5 +new.prg will have a load address of 0x1000, and contain data from +0x1000 to 0x17ff. Since x1000.prg ends at address 0x13ff, there is +no overlap. If the order of arguments were swapped, the result would +be the same. +.UNINDENT +.UNINDENT +.sp +cmbcombine x1000.prg x1600.prg > new.prg +.INDENT 0.0 +.INDENT 3.5 +new.prg\(aqs load address will be \fB$1000\fP, and its end address will be \fB$19FF\fP\&. +From \fB$1400\fP to \fB$15FF\fP, it will contain 512 bytes of zeroes, since none +of the input files had any data at these addresses. If the order were +swapped, the result would be the same. +.UNINDENT +.UNINDENT +.sp +cmbcombine x1400.prg x1600.prg > new.prg +.INDENT 0.0 +.INDENT 3.5 +new.prg\(aqs load address will be \fB$1400\fP and it will end at \fB$19FF\fP\&. The +data from \fB$1400\fP to \fB$15FF\fP comes from x1400.prg, and the rest from x1600.prg. +.UNINDENT +.UNINDENT +.sp +cmbcombine x1600.prg x1400.prg > new.prg +.INDENT 0.0 +.INDENT 3.5 +As above, but data at \fB$1400\fP to \fB$15FF\fP comes from x1400.prg. +.UNINDENT +.UNINDENT +.sp +cmbcombine x1400.prg x1600.prg,0x1800 > new.prg +.INDENT 0.0 +.INDENT 3.5 +new.prg loads at \fB$1400\fP and extends to \fB$1BFF\fP\&. Data at \fB$1400\fP to +\fB$17FF\fP comes from x1400.prg, data at \fB$1800\fP to \fB$1BFF\fP comes from +x1600.prg. If x1600.prg contains non\-relocatable code org\(aqed at \fB$1600\fP, +it will fail to run when loaded at \fB$1800\fP\&. +.UNINDENT +.UNINDENT +.SH EXIT STATUS +.sp +0 for success, non\-zero for failure. If any of the input files can\(aqt be +read, the process exits with failure status, without writing anything +to standard output. +.SH BUGS +.sp +There is very little error\-checking. It may be possible to crash +cbmcombine by feeding it bogus input. +.sp +There\(aqs no way to give cbmcombine a filename containing a comma. +.sp +Not exactly bugs, per se, but missing features: +.INDENT 0.0 +.INDENT 3.5 +The user should be notified if files overlap and/or there are gaps in +the output. +.sp +There should be warnings if a file wraps around the top of the 64K address +space, or loads into dangerous or invalid areas such as ROM or page zero. +Odds are, the file isn\(aqt really a valid CBM executable. +.sp +There should be a cbmsplit utility that does the opposite of cbmcombine. +.UNINDENT +.UNINDENT +.SH COPYRIGHT +.sp +As of 21.12.2005 Pucrunch is under GNU LGPL. See: +.INDENT 0.0 +.INDENT 3.5 +\fI\%http://creativecommons.org/licenses/LGPL/2.1/\fP +\fI\%http://www.gnu.org/copyleft/lesser.html\fP +.UNINDENT +.UNINDENT +.SH AUTHORS +.sp +cbmcombine was written by Pasi Ojala <\fI\%a1bert@iki.fi\fP>. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.SH SEE ALSO +.sp +pucrunch(1), exomizer(1), vice(1) +.sp +The pucrunch homepage: \fI\%http://a1bert.kapsi.fi/Dev/pucrunch/\fP +.sp +The full documentation and sample decompressor code: +.INDENT 0.0 +.INDENT 3.5 +/usr/doc/pucrunch\-20081122/ +.UNINDENT +.UNINDENT +.\" Generated by docutils manpage writer. +. |