summaryrefslogtreecommitdiffstats
path: root/system/pucrunch/cbmcombine.1
diff options
context:
space:
mode:
Diffstat (limited to 'system/pucrunch/cbmcombine.1')
-rw-r--r--system/pucrunch/cbmcombine.1178
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.
+.