devel/exomizer: Add new port

Exomizer is a cruncher for old 8-bit computers, with focus on the MOS
6502 CPU. It can create self-decrunching executables for a variety of
these systems, as well as plain crunched data. Some decrunching code
for the target systems is bundled.

Approved by:		tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D37965
This commit is contained in:
Felix Palmen 2023-01-06 17:02:58 +01:00
parent e032955cd9
commit 9e0e0d7b04
5 changed files with 141 additions and 0 deletions

View File

@ -623,6 +623,7 @@
SUBDIR += evemu
SUBDIR += eventxx
SUBDIR += exercisix
SUBDIR += exomizer
SUBDIR += f18
SUBDIR += f77flow
SUBDIR += fam

43
devel/exomizer/Makefile Normal file
View File

@ -0,0 +1,43 @@
PORTNAME= exomizer
DISTVERSION= 3.1.1
CATEGORIES= devel
MASTER_SITES= https://bitbucket.org/magli143/exomizer/wiki/downloads/
MAINTAINER= zirias@FreeBSD.org
COMMENT= Cruncher for 6502-based systems
WWW= https://bitbucket.org/magli143/exomizer/wiki/Home
LICENSE= ZLIB EXO
LICENSE_COMB= multi
LICENSE_NAME_EXO= exomizer
LICENSE_TEXT_EXO= The names of this software and/or it's copyright\
holders may not be used to endorse or promote products\
derived from this software without specific prior\
written permission.
LICENSE_PERMS_EXO= dist-mirror pkg-mirror auto-accept
USES= gmake zip
MAKE_ARGS= LDFLAGS="${LDFLAGS} -s" \
SHELL="${SH} -x" \
WFLAGS="${CFLAGS}"
ALL_TARGET= build
NO_WRKSUBDIR= yes
BUILD_WRKSRC= ${WRKSRC}/src
OPTIONS_DEFINE= DOCS
do-install:
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/exomizer \
${STAGEDIR}${PREFIX}/bin/exomizer
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/exobasic \
${STAGEDIR}${PREFIX}/bin/exobasic
(cd ${WRKSRC} && ${COPYTREE_SHARE} "exodecrs rawdecrs" \
${STAGEDIR}${DATADIR})
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_MAN} ${WRKSRC}/*.txt ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>

3
devel/exomizer/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1673014159
SHA256 (exomizer-3.1.1.zip) = 2dfc821220d90185e31b5fe0958682e498e1bd8aaca7fe1b122febb863e9fe2d
SIZE (exomizer-3.1.1.zip) = 713134

24
devel/exomizer/pkg-descr Normal file
View File

@ -0,0 +1,24 @@
Exomizer is a program that compresses files in a way that tries to be as
efficient as possible but still allows them to be decompressed in environments
where CPU speed and RAM are limited. For some popular 8-bit computers using
6502 compatible CPUs it can also generate executable files that decompress
themselves in memory when run.
Exomizer operates in two major modes. It has a raw mode that compresses plain
files and produces plain files. This mode is used by the raw subcommand. All
other subcommands use the second mode. It requires all source files to be
targeted to be decrunched at specific addresses in the 16-bit address space of
the target computer. In this mode, no file can be larger than 64kB since all
data must be addressable using 16-bits. The targeted mode has the following
features:
* It reads plain or .prg files to any given address.
* It can produce stand-alone self-decrunching files for the following targets:
- Commodore VIC20, C64, C65, C16/plus4, C128 and PET 4032
- Atari 400/800 XL/XE
- Apple ][+ and //e
- Oric-1 and Oric Atmos
- BBC Micro B
* It can produce files for both "in memory" and "from disk" decrunching.
* It handles RLE-sequences well, no packer is necessary.
* It is able to link/combine more than one source file into the same crunched
target file.

70
devel/exomizer/pkg-plist Normal file
View File

@ -0,0 +1,70 @@
bin/exobasic
bin/exomizer
%%PORTDOCS%%%%DOCSDIR%%/changelog.txt
%%PORTDOCS%%%%DOCSDIR%%/exo20info.txt
%%PORTDOCS%%%%DOCSDIR%%/exo31info.txt
%%PORTDOCS%%%%DOCSDIR%%/exobasic10b2.txt
%%DATADIR%%/exodecrs/Makefile
%%DATADIR%%/exodecrs/README_exo3.txt
%%DATADIR%%/exodecrs/acme/Makefile
%%DATADIR%%/exodecrs/acme/exodecrunch.asm
%%DATADIR%%/exodecrs/acme/main.asm
%%DATADIR%%/exodecrs/acme/split/Makefile
%%DATADIR%%/exodecrs/acme/split/data.asm.template
%%DATADIR%%/exodecrs/acme/split/main.asm
%%DATADIR%%/exodecrs/c64.cfg
%%DATADIR%%/exodecrs/dasm/Makefile
%%DATADIR%%/exodecrs/dasm/exodecrunch.s
%%DATADIR%%/exodecrs/dasm/main.s
%%DATADIR%%/exodecrs/dasm/split/Makefile
%%DATADIR%%/exodecrs/dasm/split/data.s.template
%%DATADIR%%/exodecrs/dasm/split/main.s
%%DATADIR%%/exodecrs/data.bin
%%DATADIR%%/exodecrs/exodecrunch.s
%%DATADIR%%/exodecrs/exostreamdecr1.s
%%DATADIR%%/exodecrs/exostreamdecr2.s
%%DATADIR%%/exodecrs/main.s
%%DATADIR%%/exodecrs/main1.s
%%DATADIR%%/exodecrs/main2.s
%%DATADIR%%/exodecrs/perf/Makefile
%%DATADIR%%/exodecrs/perf/data.raw
%%DATADIR%%/exodecrs/split/Makefile
%%DATADIR%%/exodecrs/split/data.s.template
%%DATADIR%%/exodecrs/split/main.s
%%DATADIR%%/exodecrs/testrun.c
%%DATADIR%%/rawdecrs/6809/README_exo3.txt
%%DATADIR%%/rawdecrs/6809/exo2_final.asm
%%DATADIR%%/rawdecrs/6809/exo2_puls.txt
%%DATADIR%%/rawdecrs/8080/P43/deexo.asm
%%DATADIR%%/rawdecrs/8080/P43E/deexo.asm
%%DATADIR%%/rawdecrs/8080/P47T4/deexo.asm
%%DATADIR%%/rawdecrs/8080/README.txt
%%DATADIR%%/rawdecrs/8086/P47/deexo.asm
%%DATADIR%%/rawdecrs/8086/README.txt
%%DATADIR%%/rawdecrs/Makefile
%%DATADIR%%/rawdecrs/exodecr.c
%%DATADIR%%/rawdecrs/exodecr.h
%%DATADIR%%/rawdecrs/exodecrunch.c
%%DATADIR%%/rawdecrs/exodecrunch.h
%%DATADIR%%/rawdecrs/main.c
%%DATADIR%%/rawdecrs/main2.c
%%DATADIR%%/rawdecrs/test1.bin
%%DATADIR%%/rawdecrs/test2.bin
%%DATADIR%%/rawdecrs/test3.bin
%%DATADIR%%/rawdecrs/test4.bin
%%DATADIR%%/rawdecrs/thumb2/README.txt
%%DATADIR%%/rawdecrs/thumb2/speed.S
%%DATADIR%%/rawdecrs/thumb2/universal.S
%%DATADIR%%/rawdecrs/z80/deexoopt.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_b0.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_b1.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_b2.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_b3.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_b4.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_f0.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_f1.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_f2.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_f3.asm
%%DATADIR%%/rawdecrs/z80/deexoopt_f4.asm
%%DATADIR%%/rawdecrs/z80/lgpl-2.1.txt
%%DATADIR%%/rawdecrs/z80/readme.txt