mirror of
https://github.com/Ponce/slackbuilds
synced 2024-12-02 13:04:42 +01:00
5528773b70
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
178 lines
5.4 KiB
Groff
178 lines
5.4 KiB
Groff
.\" 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.
|
|
.
|