mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-21 02:32:06 +00:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
305512a2b7 | ||
|
|
a6b244b12e | ||
|
|
ceabbeaa2f | ||
|
|
3995852cc5 | ||
|
|
9793bcba6f | ||
|
|
0727eb4374 | ||
|
|
f8f67fcbce | ||
|
|
abeca2d305 | ||
|
|
a7dc86001c | ||
|
|
c071586ae5 | ||
|
|
c6187be210 | ||
|
|
f9f3bb7761 | ||
|
|
1a5c423984 | ||
|
|
b382dffdec | ||
|
|
33e9eb098c | ||
|
|
e77ebfe38a | ||
|
|
698ed9d5fc | ||
|
|
b07a8501d6 | ||
|
|
f779e724e2 | ||
|
|
494b98e46a | ||
|
|
d1ff057889 | ||
|
|
292302c6d1 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,5 +4,4 @@ rgbfix
|
|||||||
rgbgfx
|
rgbgfx
|
||||||
*.o
|
*.o
|
||||||
*.exe
|
*.exe
|
||||||
*.html
|
|
||||||
.checkpatch-camelcase.*
|
.checkpatch-camelcase.*
|
||||||
|
|||||||
10
.travis.yml
10
.travis.yml
@@ -2,15 +2,13 @@ language: c
|
|||||||
sudo: required
|
sudo: required
|
||||||
install:
|
install:
|
||||||
- ./.travis-deps.sh
|
- ./.travis-deps.sh
|
||||||
|
- make
|
||||||
|
- sudo make install
|
||||||
os:
|
os:
|
||||||
- linux
|
- linux
|
||||||
- osx
|
|
||||||
compiler:
|
compiler:
|
||||||
- clang
|
- clang
|
||||||
- gcc
|
- gcc
|
||||||
script:
|
script:
|
||||||
- make
|
- cd test
|
||||||
- sudo make install
|
- ./run-tests.sh
|
||||||
after_success:
|
|
||||||
- pushd test/asm/ && ./test.sh && popd
|
|
||||||
- pushd test/link/ && ./test.sh && popd
|
|
||||||
|
|||||||
@@ -58,6 +58,11 @@ If you are going to work on a specific issue that involves a lot of work, it is
|
|||||||
always a good idea to leave a message, just in case someone else is interested
|
always a good idea to leave a message, just in case someone else is interested
|
||||||
but doesn't know that there's someone working on it.
|
but doesn't know that there's someone working on it.
|
||||||
|
|
||||||
|
Note that you must contribute all your changes under the MIT License. If you are
|
||||||
|
just modifying a file, you don't need to do anything (maybe update the copyright
|
||||||
|
years). If you are adding new files, you need to use the correct header with the
|
||||||
|
copyright and the reference to the MIT License.
|
||||||
|
|
||||||
1. Fork this repository.
|
1. Fork this repository.
|
||||||
|
|
||||||
2. Checkout the ``develop`` branch.
|
2. Checkout the ``develop`` branch.
|
||||||
|
|||||||
39
CONTRIBUTORS.rst
Normal file
39
CONTRIBUTORS.rst
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
Contributors to RGBDS
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Original author
|
||||||
|
---------------
|
||||||
|
|
||||||
|
- Carsten Elton Sørensen <csoren@gmail.com>
|
||||||
|
|
||||||
|
Main contributors
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
- Justin Lloyd <jlloyd@imf.la>
|
||||||
|
|
||||||
|
- Vegard Nossum <vegard.nossum@gmail.com>
|
||||||
|
|
||||||
|
- Anthony J. Bentley <anthony@anjbe.name>
|
||||||
|
|
||||||
|
- stag019 <stag019@gmail.com>
|
||||||
|
|
||||||
|
- Antonio Niño Díaz <antonio_nd@outlook.com>
|
||||||
|
|
||||||
|
Other contributors
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- Ben10do
|
||||||
|
|
||||||
|
- Björn Höhrmann <bjoern@hoehrmann.de>
|
||||||
|
|
||||||
|
- Christophe Staïesse <chastai@skynet.be>
|
||||||
|
|
||||||
|
- The Musl C library <http://www.musl-libc.org>
|
||||||
|
|
||||||
|
- The OpenBSD Project <http://www.openbsd.org>
|
||||||
|
|
||||||
|
- Sanqui <gsanky@gmail.com>
|
||||||
|
|
||||||
|
- YamaArashi <shadow962@live.com>
|
||||||
|
|
||||||
|
- yenatch <yenatch@gmail.com>
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
IN THE SOFTWARE.
|
||||||
81
LICENSE.rst
81
LICENSE.rst
@@ -1,81 +0,0 @@
|
|||||||
LICENSE
|
|
||||||
=======
|
|
||||||
|
|
||||||
Original code
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Copyright (C) 1997 Carsten Sorensen <surfsmurf@matilde.demon.co.uk>
|
|
||||||
|
|
||||||
The ASMotor package (xAsm, xLink, RGBFix, examples and documentation) is
|
|
||||||
freeware and distributed as is. The author retains his copyright and right to
|
|
||||||
modify the specifications and operation of the software without notice.
|
|
||||||
|
|
||||||
In other words this means I encourage you to...
|
|
||||||
|
|
||||||
- use it for whatever purpose even professional work without me charging you a
|
|
||||||
penny
|
|
||||||
- copy it to another person (wholly or in part, though I'm sure he'd appreciate
|
|
||||||
the whole package) in whatever form you find suitable
|
|
||||||
- mass-distribute the ASMotor package if it is complete (xAsm, xLink, RGBFix and
|
|
||||||
documentation).
|
|
||||||
- contact me if you have any problems
|
|
||||||
|
|
||||||
This also means you can't...
|
|
||||||
|
|
||||||
- blame me for loss of profit, data, sleep, food or other nasty things through
|
|
||||||
the use or distribution of ASMotor. If you choose to use ASMotor you do so at
|
|
||||||
your own risk.
|
|
||||||
- expect me to be able to help you should you have a problem related or not to
|
|
||||||
ASMotor.
|
|
||||||
|
|
||||||
Otaku no Zoku's modifications
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Copyright (C) 1999 Justin Lloyd <jlloyd@imf.la> (?)
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
DO WHATEVER PUBLIC LICENSE*
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. You can do whatever you want to with the work.
|
|
||||||
1. You cannot stop anybody from doing whatever they want to with the work.
|
|
||||||
2. You cannot revoke anybody elses DO WHATEVER PUBLIC LICENSE in the work.
|
|
||||||
|
|
||||||
This program is free software. It comes without any warranty, to
|
|
||||||
the extent permitted by applicable law. You can redistribute it
|
|
||||||
and/or modify it under the terms of the DO WHATEVER PUBLIC LICENSE
|
|
||||||
|
|
||||||
Software originally created by Justin Lloyd @ http://otakunozoku.com/
|
|
||||||
|
|
||||||
rgbds-linux
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Copyright (C) 2009 Vegard Nossum <vegard.nossum@gmail.com>
|
|
||||||
|
|
||||||
Current
|
|
||||||
-------
|
|
||||||
|
|
||||||
rgbasm and rgblink are derived from Justin Lloyd's RGBDS.
|
|
||||||
|
|
||||||
rgbfix was rewritten from scratch by Anthony J. Bentley, and is released under
|
|
||||||
the ISC license; see the source file for the text of the license.
|
|
||||||
|
|
||||||
rgbgfx was written by stag019, and is released under the ISC license.
|
|
||||||
|
|
||||||
Some files of rgblink were written by Antonio Niño Díaz, and they are relased
|
|
||||||
under the ISC license. The affected files have the appropriate license in the
|
|
||||||
header of the file.
|
|
||||||
|
|
||||||
The UTF-8 decoder in src/asm/charmap.c was written by Björn Höhrmann and is
|
|
||||||
released under the MIT license. The remainder of charmap.c was written by
|
|
||||||
stag019, and is released under the ISC license.
|
|
||||||
|
|
||||||
extern/err.c is derived from the Musl C library, http://www.musl-libc.org, and
|
|
||||||
is released under the MIT license.
|
|
||||||
|
|
||||||
extern/reallocarray.c is derived from the OpenBSD Project,
|
|
||||||
http://www.openbsd.org, and is released under the ISC license.
|
|
||||||
|
|
||||||
extern/strl.c is derived from the OpenBSD Project, http://www.openbsd.org, and
|
|
||||||
is released under the BSD license.
|
|
||||||
64
Makefile
64
Makefile
@@ -1,3 +1,11 @@
|
|||||||
|
#
|
||||||
|
# This file is part of RGBDS.
|
||||||
|
#
|
||||||
|
# Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
# User-defined variables
|
# User-defined variables
|
||||||
|
|
||||||
Q := @
|
Q := @
|
||||||
@@ -49,11 +57,8 @@ rgbasm_obj := \
|
|||||||
src/asm/rpn.o \
|
src/asm/rpn.o \
|
||||||
src/asm/symbol.o \
|
src/asm/symbol.o \
|
||||||
src/extern/err.o \
|
src/extern/err.o \
|
||||||
src/extern/reallocarray.o \
|
src/extern/utf8decoder.o \
|
||||||
src/extern/strlcpy.o \
|
src/version.o
|
||||||
src/extern/strlcat.o \
|
|
||||||
src/extern/version.o
|
|
||||||
|
|
||||||
|
|
||||||
src/asm/asmy.h: src/asm/asmy.c
|
src/asm/asmy.h: src/asm/asmy.c
|
||||||
src/asm/locallex.o src/asm/globlex.o src/asm/lexer.o: src/asm/asmy.h
|
src/asm/locallex.o src/asm/globlex.o src/asm/lexer.o: src/asm/asmy.h
|
||||||
@@ -71,7 +76,7 @@ rgblink_obj := \
|
|||||||
src/link/script.o \
|
src/link/script.o \
|
||||||
src/link/symbol.o \
|
src/link/symbol.o \
|
||||||
src/extern/err.o \
|
src/extern/err.o \
|
||||||
src/extern/version.o
|
src/version.o
|
||||||
|
|
||||||
src/link/parser.h: src/link/parser.c
|
src/link/parser.h: src/link/parser.c
|
||||||
src/link/lexer.o: src/link/parser.h
|
src/link/lexer.o: src/link/parser.h
|
||||||
@@ -79,14 +84,14 @@ src/link/lexer.o: src/link/parser.h
|
|||||||
rgbfix_obj := \
|
rgbfix_obj := \
|
||||||
src/fix/main.o \
|
src/fix/main.o \
|
||||||
src/extern/err.o \
|
src/extern/err.o \
|
||||||
src/extern/version.o
|
src/version.o
|
||||||
|
|
||||||
rgbgfx_obj := \
|
rgbgfx_obj := \
|
||||||
src/gfx/gb.o \
|
src/gfx/gb.o \
|
||||||
src/gfx/main.o \
|
src/gfx/main.o \
|
||||||
src/gfx/makepng.o \
|
src/gfx/makepng.o \
|
||||||
src/extern/err.o \
|
src/extern/err.o \
|
||||||
src/extern/version.o
|
src/version.o
|
||||||
|
|
||||||
rgbasm: ${rgbasm_obj}
|
rgbasm: ${rgbasm_obj}
|
||||||
$Q${CC} ${REALCFLAGS} -o $@ ${rgbasm_obj} -lm
|
$Q${CC} ${REALCFLAGS} -o $@ ${rgbasm_obj} -lm
|
||||||
@@ -114,17 +119,26 @@ rgbgfx: ${rgbgfx_obj}
|
|||||||
.c.o:
|
.c.o:
|
||||||
$Q${CC} ${REALCFLAGS} ${PNGCFLAGS} -c -o $@ $<
|
$Q${CC} ${REALCFLAGS} ${PNGCFLAGS} -c -o $@ $<
|
||||||
|
|
||||||
# Target used to remove all files generated by other Makefile targets.
|
# Target used to remove all files generated by other Makefile targets, except
|
||||||
|
# for the html documentation.
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$Q${RM} rgbds.7.html gbz80.7.html rgbds.5.html
|
$Q${RM} rgbasm rgbasm.exe ${rgbasm_obj}
|
||||||
$Q${RM} rgbasm rgbasm.exe ${rgbasm_obj} rgbasm.1.html rgbasm.5.html
|
$Q${RM} rgblink rgblink.exe ${rgblink_obj}
|
||||||
$Q${RM} rgblink rgblink.exe ${rgblink_obj} rgblink.1.html rgblink.5.html
|
$Q${RM} rgbfix rgbfix.exe ${rgbfix_obj}
|
||||||
$Q${RM} rgbfix rgbfix.exe ${rgbfix_obj} rgbfix.1.html
|
$Q${RM} rgbgfx rgbgfx.exe ${rgbgfx_obj}
|
||||||
$Q${RM} rgbgfx rgbgfx.exe ${rgbgfx_obj} rgbgfx.1.html
|
|
||||||
$Q${RM} src/asm/asmy.c src/asm/asmy.h
|
$Q${RM} src/asm/asmy.c src/asm/asmy.h
|
||||||
$Q${RM} src/link/lexer.c src/link/parser.c src/link/parser.h
|
$Q${RM} src/link/lexer.c src/link/parser.c src/link/parser.h
|
||||||
|
|
||||||
|
# Target used to remove all html files generated by the wwwman target
|
||||||
|
|
||||||
|
cleanwwwman:
|
||||||
|
$Q${RM} docs/rgbds.7.html docs/gbz80.7.html docs/rgbds.5.html
|
||||||
|
$Q${RM} docs/rgbasm.1.html docs/rgbasm.5.html
|
||||||
|
$Q${RM} docs/rgblink.1.html docs/rgblink.5.html
|
||||||
|
$Q${RM} docs/rgbfix.1.html
|
||||||
|
$Q${RM} docs/rgbgfx.1.html
|
||||||
|
|
||||||
# Target used to install the binaries and man pages.
|
# Target used to install the binaries and man pages.
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
@@ -147,8 +161,8 @@ install: all
|
|||||||
# Target used to check the coding style of the whole codebase. '.y' and '.l'
|
# Target used to check the coding style of the whole codebase. '.y' and '.l'
|
||||||
# files aren't checked, unfortunately...
|
# files aren't checked, unfortunately...
|
||||||
checkcodebase:
|
checkcodebase:
|
||||||
$Qfor file in `git ls-files | grep -E '\.c|\.h'`; do \
|
$Qfor file in `git ls-files | grep -E '\.c|\.h' | grep -v '\.html'`; do \
|
||||||
${CHECKPATCH} -f "$$file"; \
|
${CHECKPATCH} -f "$$file"; \
|
||||||
done
|
done
|
||||||
|
|
||||||
# Target used to check the coding style of the patches from the upstream branch
|
# Target used to check the coding style of the patches from the upstream branch
|
||||||
@@ -169,15 +183,15 @@ checkpatch:
|
|||||||
MANDOC := -Thtml -Ios=General -Oman=%N.%S.html -Ostyle=manual.css
|
MANDOC := -Thtml -Ios=General -Oman=%N.%S.html -Ostyle=manual.css
|
||||||
|
|
||||||
wwwman:
|
wwwman:
|
||||||
$Qmandoc ${MANDOC} src/rgbds.7 > rgbds.7.html
|
$Qmandoc ${MANDOC} src/rgbds.7 > docs/rgbds.7.html
|
||||||
$Qmandoc ${MANDOC} src/gbz80.7 > gbz80.7.html
|
$Qmandoc ${MANDOC} src/gbz80.7 > docs/gbz80.7.html
|
||||||
$Qmandoc ${MANDOC} src/rgbds.5 > rgbds.5.html
|
$Qmandoc ${MANDOC} src/rgbds.5 > docs/rgbds.5.html
|
||||||
$Qmandoc ${MANDOC} src/asm/rgbasm.1 > rgbasm.1.html
|
$Qmandoc ${MANDOC} src/asm/rgbasm.1 > docs/rgbasm.1.html
|
||||||
$Qmandoc ${MANDOC} src/asm/rgbasm.5 > rgbasm.5.html
|
$Qmandoc ${MANDOC} src/asm/rgbasm.5 > docs/rgbasm.5.html
|
||||||
$Qmandoc ${MANDOC} src/fix/rgbfix.1 > rgbfix.1.html
|
$Qmandoc ${MANDOC} src/fix/rgbfix.1 > docs/rgbfix.1.html
|
||||||
$Qmandoc ${MANDOC} src/link/rgblink.1 > rgblink.1.html
|
$Qmandoc ${MANDOC} src/link/rgblink.1 > docs/rgblink.1.html
|
||||||
$Qmandoc ${MANDOC} src/link/rgblink.5 > rgblink.5.html
|
$Qmandoc ${MANDOC} src/link/rgblink.5 > docs/rgblink.5.html
|
||||||
$Qmandoc ${MANDOC} src/gfx/rgbgfx.1 > rgbgfx.1.html
|
$Qmandoc ${MANDOC} src/gfx/rgbgfx.1 > docs/rgbgfx.1.html
|
||||||
|
|
||||||
# Targets for the project maintainer to easily create Windows exes.
|
# Targets for the project maintainer to easily create Windows exes.
|
||||||
# This is not for Windows users!
|
# This is not for Windows users!
|
||||||
|
|||||||
@@ -12,12 +12,11 @@ for the Game Boy and Game Boy Color. It consists of:
|
|||||||
This is a fork of the original RGBDS which aims to make the programs more like
|
This is a fork of the original RGBDS which aims to make the programs more like
|
||||||
other UNIX tools.
|
other UNIX tools.
|
||||||
|
|
||||||
This toolchain is maintained on `GitHub <https://github.com/rednex/rgbds>`__, as
|
This toolchain is maintained on `GitHub <https://github.com/rednex/rgbds>`__.
|
||||||
well as its `documentation <https://github.com/rednex/rednex.github.io>`__.
|
|
||||||
|
|
||||||
The documentation of this toolchain can be viewed online
|
The documentation of this toolchain can be viewed online
|
||||||
`here <https://rednex.github.io/>`__, it is generated from the man pages found
|
`here <https://rednex.github.io/rgbds/>`__, it is generated from the man pages
|
||||||
in this repository.
|
found in this repository.
|
||||||
|
|
||||||
1. Installing RGBDS
|
1. Installing RGBDS
|
||||||
-------------------
|
-------------------
|
||||||
@@ -171,3 +170,5 @@ This is the complete list of user-defined variables:
|
|||||||
implementation of rgbds.
|
implementation of rgbds.
|
||||||
|
|
||||||
- 2017, Bentley's repository is moved to a neutral name.
|
- 2017, Bentley's repository is moved to a neutral name.
|
||||||
|
|
||||||
|
- 2018, codebase relicensed under the MIT license.
|
||||||
|
|||||||
1697
docs/gbz80.7.html
Normal file
1697
docs/gbz80.7.html
Normal file
File diff suppressed because it is too large
Load Diff
32
docs/index.html
Normal file
32
docs/index.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||||
|
<title>General Information</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="./style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>RGBDS — Rednex Game Boy Development System</h1>
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="rgbds.7.html">RGBDS general information</a>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li><a href="rgbasm.5.html">RGBASM language description</a>
|
||||||
|
<li><a href="rgblink.5.html">RGBLINK linkerscript language description</a>
|
||||||
|
<li><a href="gbz80.7.html">GBZ80 CPU instruction set description</a>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li><a href="rgbasm.1.html">RGBASM command-line usage</a>
|
||||||
|
<li><a href="rgblink.1.html">RGBLINK command-line usage</a>
|
||||||
|
<li><a href="rgbfix.1.html">RGBFIX command-line usage</a>
|
||||||
|
<li><a href="rgbgfx.1.html">RGBGFX command-line usage</a>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li><a href="rgbds.5.html">RGBDS object file format</a>
|
||||||
|
</ul>
|
||||||
|
<h3 id="GitHub Repository">GitHub Repository:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
146
docs/rgbasm.1.html
Normal file
146
docs/rgbasm.1.html
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBASM(1)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBASM(1)</td>
|
||||||
|
<td class="head-vol">General Commands Manual</td>
|
||||||
|
<td class="head-rtitle">RGBASM(1)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbasm</b> — <span class="Nd" title="Nd">Game
|
||||||
|
Boy assembler</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<table class="Nm">
|
||||||
|
<tr>
|
||||||
|
<td><b class="Nm" title="Nm">rgbasm</b></td>
|
||||||
|
<td>[<span class="Op"><b class="Fl" title="Fl">-EhVvw</b></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-b</b>
|
||||||
|
<var class="Ar" title="Ar">chars</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-D</b>
|
||||||
|
<var class="Ar" title="Ar">name</var>[<span class="Op">=<var class="Ar" title="Ar">value</var></span>]</span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-g</b>
|
||||||
|
<var class="Ar" title="Ar">chars</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-i</b>
|
||||||
|
<var class="Ar" title="Ar">path</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-M</b>
|
||||||
|
<var class="Ar" title="Ar">dependfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-o</b>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-p</b>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></span>]
|
||||||
|
<var class="Ar" title="Ar">file</var></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
The <b class="Nm" title="Nm">rgbasm</b> program creates an object file from an
|
||||||
|
assembly source file. Its arguments are as follows:
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#b"><b class="Fl" title="Fl" id="b">-b</b></a>
|
||||||
|
<var class="Ar" title="Ar">chars</var></dt>
|
||||||
|
<dd class="It-tag">Change the two characters used for binary constants. The
|
||||||
|
defaults are 01.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#D"><b class="Fl" title="Fl" id="D">-D</b></a>
|
||||||
|
<var class="Ar" title="Ar">name</var>[<span class="Op">=<var class="Ar" title="Ar">value</var></span>]</dt>
|
||||||
|
<dd class="It-tag">Add string symbol to the compiled source code. This is
|
||||||
|
equivalent to <var class="Ar" title="Ar">name</var>
|
||||||
|
<b class="Cm" title="Cm">EQUS</b>
|
||||||
|
“<var class="Ar" title="Ar">value</var>” in code. If a value
|
||||||
|
is not specified, a value of 1 is given.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#E"><b class="Fl" title="Fl" id="E">-E</b></a></dt>
|
||||||
|
<dd class="It-tag">Export all labels, including unreferenced and local
|
||||||
|
labels.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#g"><b class="Fl" title="Fl" id="g">-g</b></a>
|
||||||
|
<var class="Ar" title="Ar">chars</var></dt>
|
||||||
|
<dd class="It-tag">Change the four characters used for binary constants. The
|
||||||
|
defaults are 0123.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#h"><b class="Fl" title="Fl" id="h">-h</b></a></dt>
|
||||||
|
<dd class="It-tag">By default, <b class="Nm" title="Nm">rgbasm</b> inserts a
|
||||||
|
‘nop’ instruction immediately after any ‘halt’
|
||||||
|
instruction. The <b class="Fl" title="Fl">-h</b> option disables this
|
||||||
|
behavior.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#i"><b class="Fl" title="Fl" id="i">-i</b></a>
|
||||||
|
<var class="Ar" title="Ar">path</var></dt>
|
||||||
|
<dd class="It-tag">Add an include path.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#M"><b class="Fl" title="Fl" id="M">-M</b></a>
|
||||||
|
<var class="Ar" title="Ar">dependfile</var></dt>
|
||||||
|
<dd class="It-tag">Print <a class="Xr" title="Xr">make(1)</a> dependencies to
|
||||||
|
<var class="Ar" title="Ar">dependfile</var>.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#o"><b class="Fl" title="Fl" id="o">-o</b></a>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></dt>
|
||||||
|
<dd class="It-tag">Write an object file to the given filename.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#p"><b class="Fl" title="Fl" id="p">-p</b></a>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></dt>
|
||||||
|
<dd class="It-tag">When padding an image, pad with this value. The default is
|
||||||
|
0x00.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#V"><b class="Fl" title="Fl" id="V">-V</b></a></dt>
|
||||||
|
<dd class="It-tag">Print the version of the program and exit.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#v"><b class="Fl" title="Fl" id="v">-v</b></a></dt>
|
||||||
|
<dd class="It-tag">Be verbose.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#w"><b class="Fl" title="Fl" id="w">-w</b></a></dt>
|
||||||
|
<dd class="It-tag">Disable warning output.</dd>
|
||||||
|
</dl>
|
||||||
|
<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="selflink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
Assembling a basic source file is simple:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbasm -o bar.o foo.asm</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The resulting object file is not yet a usable ROM image — it must first
|
||||||
|
be run through <a class="Xr" title="Xr">rgblink(1)</a> and
|
||||||
|
<a class="Xr" title="Xr">rgbfix(1)</a>.
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(5)</a>, <a class="Xr" title="Xr">rgbfix(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(5)</a>, <a class="Xr" title="Xr">rgbds(7)</a>,
|
||||||
|
<a class="Xr" title="Xr">gbz80(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbasm</b> was originally written by Carsten
|
||||||
|
Sørensen as part of the ASMotor package, and was later packaged in
|
||||||
|
RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1459
docs/rgbasm.5.html
Normal file
1459
docs/rgbasm.5.html
Normal file
File diff suppressed because it is too large
Load Diff
306
docs/rgbds.5.html
Normal file
306
docs/rgbds.5.html
Normal file
@@ -0,0 +1,306 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBDS(5)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBDS(5)</td>
|
||||||
|
<td class="head-vol">File Formats Manual</td>
|
||||||
|
<td class="head-rtitle">RGBDS(5)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbds</b> — <span class="Nd" title="Nd">object
|
||||||
|
file format documentation</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
This is the description of the object files used by
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a> and
|
||||||
|
<a class="Xr" title="Xr">rgblink(1)</a>. Please, note that the specifications
|
||||||
|
may change. This toolchain is in development and new features may require
|
||||||
|
adding more information to the current format, or modifying some fields, which
|
||||||
|
would break compatibility with older versions.
|
||||||
|
<h1 class="Sh" title="Sh" id="FILE_STRUCTURE"><a class="selflink" href="#FILE_STRUCTURE">FILE
|
||||||
|
STRUCTURE</a></h1>
|
||||||
|
The following types are used:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<var class="Ar" title="Ar">LONG</var> is a 32‐bit integer stored in
|
||||||
|
little‐endian format (Intel). <var class="Ar" title="Ar">BYTE</var> is
|
||||||
|
an 8‐bit integer. <var class="Ar" title="Ar">STRING</var> is a
|
||||||
|
0‐terminated string of <var class="Ar" title="Ar">BYTE</var>.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="Bd" style="margin-left: 0.00ex;">
|
||||||
|
<pre class="Li">
|
||||||
|
; Header
|
||||||
|
|
||||||
|
BYTE ID[4] ; "RGB6"
|
||||||
|
LONG NumberOfSymbols ; The number of symbols used in this file
|
||||||
|
LONG NumberOfSections ; The number of sections used in this file
|
||||||
|
|
||||||
|
; Symbols
|
||||||
|
|
||||||
|
REPT NumberOfSymbols ; Number of symbols defined in this object file.
|
||||||
|
|
||||||
|
STRING Name ; The name of this symbol. Local symbols are stored
|
||||||
|
; as "Scope.Symbol".
|
||||||
|
|
||||||
|
BYTE Type ; 0 = LOCAL symbol only used in this file.
|
||||||
|
; 1 = IMPORT this symbol from elsewhere (unused).
|
||||||
|
; 2 = EXPORT this symbol to other objects.
|
||||||
|
|
||||||
|
IF Type != 1 ; If symbol is defined in this object file.
|
||||||
|
|
||||||
|
STRING FileName ; File where the symbol is defined.
|
||||||
|
|
||||||
|
LONG LineNum ; Line number in the file where the symbol is defined.
|
||||||
|
|
||||||
|
LONG SectionID ; The section number (of this object file) in which
|
||||||
|
; this symbol is defined.
|
||||||
|
|
||||||
|
LONG Value ; The symbols value. It's the offset into that
|
||||||
|
; symbol's section.
|
||||||
|
|
||||||
|
ENDC
|
||||||
|
|
||||||
|
ENDR
|
||||||
|
|
||||||
|
; Sections
|
||||||
|
|
||||||
|
REPT NumberOfSections
|
||||||
|
STRING Name ; Name of the section
|
||||||
|
|
||||||
|
LONG Size ; Size in bytes of this section
|
||||||
|
|
||||||
|
BYTE Type ; 0 = WRAM0
|
||||||
|
; 1 = VRAM
|
||||||
|
; 2 = ROMX
|
||||||
|
; 3 = ROM0
|
||||||
|
; 4 = HRAM
|
||||||
|
; 5 = WRAMX
|
||||||
|
; 6 = SRAM
|
||||||
|
; 7 = OAM
|
||||||
|
|
||||||
|
LONG Org ; Address to fix this section at. -1 if the linker should
|
||||||
|
; decide (floating address).
|
||||||
|
|
||||||
|
LONG Bank ; Bank to load this section into. -1 if the linker should
|
||||||
|
; decide (floating bank). This field is only valid for ROMX,
|
||||||
|
; VRAM, WRAMX and SRAM sections.
|
||||||
|
|
||||||
|
LONG Align ; Alignment of this section (expressed as number of low bits
|
||||||
|
; to leave as 0). -1 if not defined.
|
||||||
|
|
||||||
|
IF (Type == ROMX) || (Type == ROM0) ; Sections that can contain data.
|
||||||
|
|
||||||
|
BYTE Data[Size] ; Raw data of the section.
|
||||||
|
|
||||||
|
LONG NumberOfPatches ; Number of patches to apply.
|
||||||
|
|
||||||
|
; These types of sections may have patches
|
||||||
|
|
||||||
|
REPT NumberOfPatches
|
||||||
|
|
||||||
|
STRING SourceFile ; Name of the source file (for printing error
|
||||||
|
; messages).
|
||||||
|
|
||||||
|
LONG Line ; The line of the source file.
|
||||||
|
|
||||||
|
LONG Offset ; Offset into the section where patch should
|
||||||
|
; be applied (in bytes).
|
||||||
|
|
||||||
|
BYTE Type ; 0 = BYTE patch.
|
||||||
|
; 1 = little endian WORD patch.
|
||||||
|
; 2 = little endian LONG patch.
|
||||||
|
|
||||||
|
LONG RPNSize ; Size of the buffer with the RPN.
|
||||||
|
; expression.
|
||||||
|
|
||||||
|
BYTE RPN[RPNSize] ; RPN expression. Definition below.
|
||||||
|
|
||||||
|
ENDR
|
||||||
|
|
||||||
|
ENDC
|
||||||
|
|
||||||
|
ENDR
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
<h2 class="Ss" title="Ss" id="RPN_DATA"><a class="selflink" href="#RPN_DATA">RPN
|
||||||
|
DATA</a></h2>
|
||||||
|
Expressions in the object file are stored as RPN. This is an expression of the
|
||||||
|
form “2 5 +”. This will first push the value “2”
|
||||||
|
to the stack. Then “5”. The “+” operator pops two
|
||||||
|
arguments from the stack, adds them, and then pushes the result on the stack,
|
||||||
|
effectively replacing the two top arguments with their sum. In the RGB format,
|
||||||
|
RPN expressions are stored as BYTEs with some bytes being special prefixes for
|
||||||
|
integers and symbols.
|
||||||
|
<table class="Bl-column" style="margin-left: 6.00ex;">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15.00ex;"/>
|
||||||
|
<col style="min-width: 10.00ex;"/>
|
||||||
|
</colgroup>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><b class="Sy" title="Sy">Value</b></td>
|
||||||
|
<td class="It-column"><b class="Sy" title="Sy">Meaning</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$00"><code class="Li" id="$00">$00</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#+_operator"><code class="Li" id="+_operator">+
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$01"><code class="Li" id="$01">$01</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#-_operator"><code class="Li" id="-_operator">-
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$02"><code class="Li" id="$02">$02</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#*_operator"><code class="Li" id="*_operator">*
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$03"><code class="Li" id="$03">$03</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#/_operator"><code class="Li" id="/_operator">/
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$04"><code class="Li" id="$04">$04</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#%_operator"><code class="Li" id="%_operator">%
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$05"><code class="Li" id="$05">$05</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#unary_-"><code class="Li" id="unary_-">unary
|
||||||
|
-</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$10"><code class="Li" id="$10">$10</code></a></td>
|
||||||
|
<td class="It-column">|
|
||||||
|
<a class="selflink" href="#operator"><code class="Li" id="operator">operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$11"><code class="Li" id="$11">$11</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#&_operator"><code class="Li" id="&_operator">&
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$12"><code class="Li" id="$12">$12</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#^_operator"><code class="Li" id="^_operator">^
|
||||||
|
operator</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$13"><code class="Li" id="$13">$13</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#unary_~"><code class="Li" id="unary_~">unary
|
||||||
|
~</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$21"><code class="Li" id="$21">$21</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#&&_comparison"><code class="Li" id="&&_comparison">&&
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$22"><code class="Li" id="$22">$22</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#||_comparison"><code class="Li" id="||_comparison">||
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$23"><code class="Li" id="$23">$23</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#unary"><code class="Li" id="unary">unary</code></a>!</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$30"><code class="Li" id="$30">$30</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#==_comparison"><code class="Li" id="==_comparison">==
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$31"><code class="Li" id="$31">$31</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#!=_comparison"><code class="Li" id="!=_comparison">!=
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$32"><code class="Li" id="$32">$32</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#>_comparison"><code class="Li" id=">_comparison">>
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$33"><code class="Li" id="$33">$33</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#<_comparison"><code class="Li" id="<_comparison"><
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$34"><code class="Li" id="$34">$34</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#>=_comparison"><code class="Li" id=">=_comparison">>=
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$35"><code class="Li" id="$35">$35</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#<=_comparison"><code class="Li" id="<=_comparison"><=
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$40"><code class="Li" id="$40">$40</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#<<_comparison"><code class="Li" id="<<_comparison"><<
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$41"><code class="Li" id="$41">$41</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#>>_comparison"><code class="Li" id=">>_comparison">>>
|
||||||
|
comparison</code></a></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$50"><code class="Li" id="$50">$50</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#BANK(symbol),"><code class="Li" id="BANK(symbol),">BANK(symbol),</code></a>
|
||||||
|
a <var class="Ar" title="Ar">LONG</var> Symbol ID follows.</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$51"><code class="Li" id="$51">$51</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#BANK(section_name),"><code class="Li" id="BANK(section_name),">BANK(section_name),</code></a>
|
||||||
|
a null-terminated string follows.</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$52"><code class="Li" id="$52">$52</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#Current_BANK()"><code class="Li" id="Current_BANK()">Current
|
||||||
|
BANK()</code></a>.</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$60"><code class="Li" id="$60">$60</code></a></td>
|
||||||
|
<td class="It-column"><a class="selflink" href="#HRAMCheck."><code class="Li" id="HRAMCheck.">HRAMCheck.</code></a>
|
||||||
|
Check if the value is in HRAM, AND it with 0xFF.</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$80"><code class="Li" id="$80">$80</code></a></td>
|
||||||
|
<td class="It-column"><var class="Ar" title="Ar">LONG</var> integer
|
||||||
|
follows.</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="It-column">
|
||||||
|
<td class="It-column"><a class="selflink" href="#$81"><code class="Li" id="$81">$81</code></a></td>
|
||||||
|
<td class="It-column"><var class="Ar" title="Ar">LONG</var> Symbol ID
|
||||||
|
follows.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a>, <a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(7)</a>, <a class="Xr" title="Xr">gbz80(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbds</b> was originally written by Carsten
|
||||||
|
Sørensen as part of the ASMotor package, and was later packaged in
|
||||||
|
RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
66
docs/rgbds.7.html
Normal file
66
docs/rgbds.7.html
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBDS(7)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBDS(7)</td>
|
||||||
|
<td class="head-vol">Miscellaneous Information Manual</td>
|
||||||
|
<td class="head-rtitle">RGBDS(7)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbds</b> — <span class="Nd" title="Nd">Rednex
|
||||||
|
Game Boy Development System</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="selflink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
To get a working ROM image from a single assembly source file:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbasm -o bar.o foo.asm</div>
|
||||||
|
<div class="D1">$ rgblink -o baz.gb bar.o</div>
|
||||||
|
<div class="D1">$ rgbfix -v -p 0 baz.gb</div>
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a>, <a class="Xr" title="Xr">rgbfix(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(5)</a>, <a class="Xr" title="Xr">gbz80(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<dl class="Bl-ohang">
|
||||||
|
<dt class="It-ohang"></dt>
|
||||||
|
<dd class="It-ohang">1997, Carsten Sørensen (AKA SurfSmurf) writes
|
||||||
|
ASMotor as a general-purpose assembler/linker system for DOS/Win32.</dd>
|
||||||
|
<dt class="It-ohang"></dt>
|
||||||
|
<dd class="It-ohang">1999, Justin Lloyd (AKA Otaku no Zoku) adapts ASMotor to
|
||||||
|
read and produce GBZ80 assembly/machine code, and releases this version as
|
||||||
|
RGBDS.</dd>
|
||||||
|
<dt class="It-ohang"></dt>
|
||||||
|
<dd class="It-ohang">2009, Vegard Nossum adapts the code to be more UNIX-like
|
||||||
|
and releases this version as rgbds-linux on GitHub.</dd>
|
||||||
|
<dt class="It-ohang"></dt>
|
||||||
|
<dd class="It-ohang">2010, Anthony J. Bentley forks that repository. The fork
|
||||||
|
becomes the reference implementation of rgbds.</dd>
|
||||||
|
<dt class="It-ohang"></dt>
|
||||||
|
<dd class="It-ohang">2017, Bentley's repository is moved to a neutral name. It
|
||||||
|
is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
|
||||||
|
2018, codebase relicensed under the MIT license.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
187
docs/rgbfix.1.html
Normal file
187
docs/rgbfix.1.html
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBFIX(1)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBFIX(1)</td>
|
||||||
|
<td class="head-vol">General Commands Manual</td>
|
||||||
|
<td class="head-rtitle">RGBFIX(1)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbfix</b> — <span class="Nd" title="Nd">Game
|
||||||
|
Boy checksum fixer</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<table class="Nm">
|
||||||
|
<tr>
|
||||||
|
<td><b class="Nm" title="Nm">rgbfix</b></td>
|
||||||
|
<td>[<span class="Op"><b class="Fl" title="Fl">-CcjsVv</b></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-i</b>
|
||||||
|
<var class="Ar" title="Ar">game_id</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-k</b>
|
||||||
|
<var class="Ar" title="Ar">licensee_str</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-l</b>
|
||||||
|
<var class="Ar" title="Ar">licensee_id</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-m</b>
|
||||||
|
<var class="Ar" title="Ar">mbc_type</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-n</b>
|
||||||
|
<var class="Ar" title="Ar">rom_version</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-p</b>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-r</b>
|
||||||
|
<var class="Ar" title="Ar">ram_size</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-t</b>
|
||||||
|
<var class="Ar" title="Ar">title_str</var></span>]
|
||||||
|
<var class="Ar" title="Ar">file</var></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
The <b class="Nm" title="Nm">rgbfix</b> program changes headers of Game Boy ROM
|
||||||
|
images. It also performs other filetype operations, such as truncation. The
|
||||||
|
arguments are as follows:
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#C"><b class="Fl" title="Fl" id="C">-C</b></a></dt>
|
||||||
|
<dd class="It-tag">Set the Game Boy Color–only flag:
|
||||||
|
<i class="Ad">0x143</i> = 0xC0. If both this and the
|
||||||
|
<b class="Fl" title="Fl">-c</b> flag are set, this takes precedence.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#c"><b class="Fl" title="Fl" id="c">-c</b></a></dt>
|
||||||
|
<dd class="It-tag">Set the Game Boy Color–compatible flag:
|
||||||
|
<i class="Ad">0x143</i> = 0x80. If both this and the
|
||||||
|
<b class="Fl" title="Fl">-C</b> flag are set,
|
||||||
|
<b class="Fl" title="Fl">-C</b> takes precedence.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#i"><b class="Fl" title="Fl" id="i">-i</b></a>
|
||||||
|
<var class="Ar" title="Ar">game_id</var></dt>
|
||||||
|
<dd class="It-tag">Set the game ID string
|
||||||
|
(<i class="Ad">0x13F</i>–<i class="Ad">0x142</i>) to a given string
|
||||||
|
of exactly 4 characters. If both this and the title are set, the game ID
|
||||||
|
will overwrite the overlapping portion of the title.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#j"><b class="Fl" title="Fl" id="j">-j</b></a></dt>
|
||||||
|
<dd class="It-tag">Set the non-Japanese region flag: <i class="Ad">0x14A</i> =
|
||||||
|
1.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#k"><b class="Fl" title="Fl" id="k">-k</b></a>
|
||||||
|
<var class="Ar" title="Ar">licensee_str</var></dt>
|
||||||
|
<dd class="It-tag">Set the new licensee string
|
||||||
|
(<i class="Ad">0x144</i>–<i class="Ad">0x145</i>) to a given
|
||||||
|
string, truncated to at most two characters.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#l"><b class="Fl" title="Fl" id="l">-l</b></a>
|
||||||
|
<var class="Ar" title="Ar">licensee_id</var></dt>
|
||||||
|
<dd class="It-tag">Set the old licensee code, <i class="Ad">0x14B</i>, to a
|
||||||
|
given value from 0 to 0xFF. This value is deprecated and should be set to
|
||||||
|
0x33 in all new software.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#m"><b class="Fl" title="Fl" id="m">-m</b></a>
|
||||||
|
<var class="Ar" title="Ar">mbc_type</var></dt>
|
||||||
|
<dd class="It-tag">Set the MBC type, <i class="Ad">0x147</i>, to a given value
|
||||||
|
from 0 to 0xFF.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#n"><b class="Fl" title="Fl" id="n">-n</b></a>
|
||||||
|
<var class="Ar" title="Ar">rom_version</var></dt>
|
||||||
|
<dd class="It-tag">Set the ROM version, <i class="Ad">0x14C</i>, to a given
|
||||||
|
value from 0 to 0xFF.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#p"><b class="Fl" title="Fl" id="p">-p</b></a>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></dt>
|
||||||
|
<dd class="It-tag">Pad the image to a valid size with a given pad value from 0
|
||||||
|
to 0xFF. <b class="Nm" title="Nm">rgbfix</b> will automatically pick a
|
||||||
|
size from 32KiB, 64KiB, 128KiB, ..., 8192KiB and give a warning
|
||||||
|
thereafter. The cartridge size byte (<i class="Ad">0x148</i>) will be
|
||||||
|
changed to reflect this new size.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#r"><b class="Fl" title="Fl" id="r">-r</b></a>
|
||||||
|
<var class="Ar" title="Ar">ram_size</var></dt>
|
||||||
|
<dd class="It-tag">Set the RAM size, <i class="Ad">0x149</i>, to a given value
|
||||||
|
from 0 to 0xFF.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#s"><b class="Fl" title="Fl" id="s">-s</b></a></dt>
|
||||||
|
<dd class="It-tag">Set the SGB flag: <i class="Ad">0x146</i> = 3.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#t"><b class="Fl" title="Fl" id="t">-t</b></a>
|
||||||
|
<var class="Ar" title="Ar">title</var></dt>
|
||||||
|
<dd class="It-tag">Set the title string
|
||||||
|
(<i class="Ad">0x134</i>–<i class="Ad">0x143</i>) to a given
|
||||||
|
string, truncated to at most 16 characters. It is recommended to use 15
|
||||||
|
characters instead, to avoid clashing with the CGB flag
|
||||||
|
(<b class="Fl" title="Fl">-c</b> or <b class="Fl" title="Fl">-C</b>). If
|
||||||
|
both this and the game ID are set, the game ID will overwrite the
|
||||||
|
overlapping portion of the title.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#V"><b class="Fl" title="Fl" id="V">-V</b></a></dt>
|
||||||
|
<dd class="It-tag">Print the version of the program and exit.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#v"><b class="Fl" title="Fl" id="v">-v</b></a></dt>
|
||||||
|
<dd class="It-tag">Validate the header and fix checksums: the Nintendo
|
||||||
|
character area (<i class="Ad">0x104</i>–<i class="Ad">0x133</i>),
|
||||||
|
the header checksum (<i class="Ad">0x14D</i>), and the global checksum
|
||||||
|
(<i class="Ad">0x14E</i>–<i class="Ad">0x14F</i>).</dd>
|
||||||
|
</dl>
|
||||||
|
<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="selflink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
Most values in the ROM header are only cosmetic. The bare minimum requirements
|
||||||
|
for a workable image are checksums, the Nintendo logo, and (if needed) the
|
||||||
|
CGB/SGB flags. It is a good idea to pad the image to a valid size as well
|
||||||
|
(“valid” meaning a multiple of 32KiB).
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The following will make a plain, no-color Game Boy game without checking for a
|
||||||
|
valid size:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbfix -v foo.gb</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The following will make a SGB-enabled, color-enabled game with a title of
|
||||||
|
“foobar”, and pad it to a multiple of 32KiB. (The Game Boy
|
||||||
|
itself does not use the title, but some emulators or ROM managers might.)
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbfix -vcs -l 0x33 -p 0 -t foobar baz.gb</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The following will duplicate the header (sans global checksum) of the game
|
||||||
|
“Survival Kids”:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbfix -cjsv -k A4 -l 0x33 -m 0x1B -p 0xFF -r 3 -t
|
||||||
|
SURVIVALKIDAVKE SurvivalKids.gbc</div>
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a>, <a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbfix</b> was originally released by Carsten
|
||||||
|
Sørensen as a standalone program called gbfix, and was later packaged
|
||||||
|
in RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
153
docs/rgbgfx.1.html
Normal file
153
docs/rgbgfx.1.html
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBGFX(1)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBGFX(1)</td>
|
||||||
|
<td class="head-vol">General Commands Manual</td>
|
||||||
|
<td class="head-rtitle">RGBGFX(1)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbgfx</b> — <span class="Nd" title="Nd">Game
|
||||||
|
Boy graphics converter</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<table class="Nm">
|
||||||
|
<tr>
|
||||||
|
<td><b class="Nm" title="Nm">rgbgfx</b></td>
|
||||||
|
<td>[<span class="Op"><b class="Fl" title="Fl">-DfFhPTVv</b></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-o</b>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-d</b>
|
||||||
|
<var class="Ar" title="Ar">depth</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-p</b>
|
||||||
|
<var class="Ar" title="Ar">palfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-t</b>
|
||||||
|
<var class="Ar" title="Ar">mapfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-x</b>
|
||||||
|
<var class="Ar" title="Ar">tiles</var></span>]
|
||||||
|
<var class="Ar" title="Ar">file</var></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
The <b class="Nm" title="Nm">rgbgfx</b> program converts PNG images into the
|
||||||
|
Nintendo Game Boy's planar tile format. The arguments are as follows:
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#D"><b class="Fl" title="Fl" id="D">-D</b></a></dt>
|
||||||
|
<dd class="It-tag">Debug features are enabled.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#f"><b class="Fl" title="Fl" id="f">-f</b></a></dt>
|
||||||
|
<dd class="It-tag">Fix the input PNG file to be a correctly indexed
|
||||||
|
image.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#F"><b class="Fl" title="Fl" id="F">-F</b></a></dt>
|
||||||
|
<dd class="It-tag">Same as <b class="Fl" title="Fl">-f</b>, but additionally,
|
||||||
|
the input PNG file is fixed to have its parameters match the command
|
||||||
|
line's parameters.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#d"><b class="Fl" title="Fl" id="d">-d</b></a>
|
||||||
|
<var class="Ar" title="Ar">depth</var></dt>
|
||||||
|
<dd class="It-tag">The bitdepth of the output image (either 1 or 2). By
|
||||||
|
default, the bitdepth is 2 (two bits per pixel).</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#h"><b class="Fl" title="Fl" id="h">-h</b></a></dt>
|
||||||
|
<dd class="It-tag">Lay out tiles horizontally rather than vertically.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#o"><b class="Fl" title="Fl" id="o">-o</b></a>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></dt>
|
||||||
|
<dd class="It-tag">The name of the output file.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#p"><b class="Fl" title="Fl" id="p">-p</b></a>
|
||||||
|
<var class="Ar" title="Ar">palfile</var></dt>
|
||||||
|
<dd class="It-tag">Raw bytes (8 bytes for two bits per pixel, 4 bytes for one
|
||||||
|
bit per pixel) containing the RGB15 values in the little-endian byte order
|
||||||
|
and then ordered from lightest to darkest.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#P"><b class="Fl" title="Fl" id="P">-P</b></a></dt>
|
||||||
|
<dd class="It-tag">Same as <b class="Fl" title="Fl">-p</b>, but the pallete
|
||||||
|
file output name is made by taking the input filename, removing the file
|
||||||
|
extension, and appending <i class="Pa" title="Pa">.pal</i>.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#t"><b class="Fl" title="Fl" id="t">-t</b></a>
|
||||||
|
<var class="Ar" title="Ar">mapfile</var></dt>
|
||||||
|
<dd class="It-tag">If any tiles are the same, don't place the repeat tiles in
|
||||||
|
the output file, and make a tilemap file.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#T"><b class="Fl" title="Fl" id="T">-T</b></a></dt>
|
||||||
|
<dd class="It-tag">Same as <b class="Fl" title="Fl">-t</b>, but the tilemap
|
||||||
|
file output name is made by taking the input filename, removing the file
|
||||||
|
extension, and appending <i class="Pa" title="Pa">.tilemap</i>.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#u"><b class="Fl" title="Fl" id="u">-u</b></a></dt>
|
||||||
|
<dd class="It-tag">Truncate repeated tiles. Useful with tilemaps.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#V"><b class="Fl" title="Fl" id="V">-V</b></a></dt>
|
||||||
|
<dd class="It-tag">Print the version of the program and exit.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#v"><b class="Fl" title="Fl" id="v">-v</b></a></dt>
|
||||||
|
<dd class="It-tag">Verbose. Print errors when the command line parameters and
|
||||||
|
the parameters in the PNG file don't match.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#x"><b class="Fl" title="Fl" id="x">-x</b></a>
|
||||||
|
<var class="Ar" title="Ar">tiles</var></dt>
|
||||||
|
<dd class="It-tag">Trim the end of the output file by this many tiles.</dd>
|
||||||
|
</dl>
|
||||||
|
<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="selflink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
The following will take a PNG file with a bitdepth of 1, 2, or 8, and output
|
||||||
|
planar 2bpp data:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbgfx -o out.2bpp in.png</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The following creates a planar 2bpp file with only unique tiles, and its tilemap
|
||||||
|
<i class="Pa" title="Pa">out.tilemap</i>:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbgfx -T -u -o out.2bpp in.png</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The following will do nothing:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbgfx in.png</div>
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbds(7)</a>, <a class="Xr" title="Xr">rgbasm(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbfix(1)</a>, <a class="Xr" title="Xr">gbz80(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgbgfx</b> was created by
|
||||||
|
<span class="An" title="An">stag019</span> to be included in RGBDS. It is now
|
||||||
|
maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
161
docs/rgblink.1.html
Normal file
161
docs/rgblink.1.html
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBLINK(1)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBLINK(1)</td>
|
||||||
|
<td class="head-vol">General Commands Manual</td>
|
||||||
|
<td class="head-rtitle">RGBLINK(1)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgblink</b> — <span class="Nd" title="Nd">Game
|
||||||
|
Boy linker</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<table class="Nm">
|
||||||
|
<tr>
|
||||||
|
<td><b class="Nm" title="Nm">rgblink</b></td>
|
||||||
|
<td>[<span class="Op"><b class="Fl" title="Fl">-dtVw</b></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-m</b>
|
||||||
|
<var class="Ar" title="Ar">mapfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-n</b>
|
||||||
|
<var class="Ar" title="Ar">symfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-O</b>
|
||||||
|
<var class="Ar" title="Ar">overlayfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-o</b>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-p</b>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-s</b>
|
||||||
|
<var class="Ar" title="Ar">symbol</var></span>]
|
||||||
|
[<span class="Op"><b class="Fl" title="Fl">-l</b>
|
||||||
|
<var class="Ar" title="Ar">linkerscript</var></span>]
|
||||||
|
<var class="Ar" title="Ar">file ...</var></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
The <b class="Nm" title="Nm">rgblink</b> program links objects created by
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a> into a single Game Boy ROM file.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
By default, ROM0 sections created by the assembler are placed in the 16KiB bank
|
||||||
|
0, and ROMX sections are placed in any bank except bank 0. If your ROM will
|
||||||
|
only be 32KiB, you can use the <b class="Fl" title="Fl">-t</b> option to
|
||||||
|
override this.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
Similarly, WRAM0 sections are placed in the first 4KiB of WRAM bank 0 and WRAMX
|
||||||
|
sections are placed in any bank except bank 0. If your ROM doesn't use banked
|
||||||
|
WRAM you can use option <b class="Fl" title="Fl">-w</b> option to override
|
||||||
|
this.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
Also, if your ROM is designed for DMG, you can make sure that you don't use any
|
||||||
|
prohibited section by using the option <b class="Fl" title="Fl">-d</b>, which
|
||||||
|
implies <b class="Fl" title="Fl">-w</b> but also prohibits the use of VRAM
|
||||||
|
bank 1.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The arguments are as follows:
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#m"><b class="Fl" title="Fl" id="m">-m</b></a>
|
||||||
|
<var class="Ar" title="Ar">mapfile</var></dt>
|
||||||
|
<dd class="It-tag">Write a mapfile to the given filename.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#n"><b class="Fl" title="Fl" id="n">-n</b></a>
|
||||||
|
<var class="Ar" title="Ar">symfile</var></dt>
|
||||||
|
<dd class="It-tag">Write a symbol file to the given filename.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#O"><b class="Fl" title="Fl" id="O">-O</b></a>
|
||||||
|
<var class="Ar" title="Ar">overlayfile</var></dt>
|
||||||
|
<dd class="It-tag">The ROM image to overlay sections over. When an overlay ROM
|
||||||
|
is provided, all sections must be fixed. This may be used to patch an
|
||||||
|
existing binray.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#o"><b class="Fl" title="Fl" id="o">-o</b></a>
|
||||||
|
<var class="Ar" title="Ar">outfile</var></dt>
|
||||||
|
<dd class="It-tag">Write ROM image to the given filename.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#p"><b class="Fl" title="Fl" id="p">-p</b></a>
|
||||||
|
<var class="Ar" title="Ar">pad_value</var></dt>
|
||||||
|
<dd class="It-tag">When padding an image, pad with this value. The default is
|
||||||
|
0x00.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#s"><b class="Fl" title="Fl" id="s">-s</b></a>
|
||||||
|
<var class="Ar" title="Ar">symbol</var></dt>
|
||||||
|
<dd class="It-tag">???</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#w"><b class="Fl" title="Fl" id="w">-w</b></a></dt>
|
||||||
|
<dd class="It-tag">Expand the WRAM0 section size from 4KiB to the full 8KiB
|
||||||
|
assigned to WRAM and prohibit the use of WRAMX sections.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#d"><b class="Fl" title="Fl" id="d">-d</b></a></dt>
|
||||||
|
<dd class="It-tag">Enable DMG mode. Prohibit the use of sections that doesn't
|
||||||
|
exist on a DMG, such as WRAMX and VRAM bank 1. This option automatically
|
||||||
|
enables <b class="Fl" title="Fl">-w</b>.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#t"><b class="Fl" title="Fl" id="t">-t</b></a></dt>
|
||||||
|
<dd class="It-tag">Expand the ROM0 section size from 16KiB to the full 32KiB
|
||||||
|
assigned to ROM and prohibit the use of ROMX sections. Useful for ROMs
|
||||||
|
that fit in 32 KiB.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#l"><b class="Fl" title="Fl" id="l">-l</b></a>
|
||||||
|
<var class="Ar" title="Ar">linkerscript</var></dt>
|
||||||
|
<dd class="It-tag">Specify a linkerscript file that tells the linker how
|
||||||
|
sections must be placed in the ROM. This file has priority over the
|
||||||
|
attributes assigned in the source code, but they have to be consistent.
|
||||||
|
See <a class="Xr" title="Xr">rgblink(5)</a> for more information about its
|
||||||
|
format.</dd>
|
||||||
|
<dt class="It-tag"> </dt>
|
||||||
|
<dd class="It-tag"> </dd>
|
||||||
|
<dt class="It-tag"><a class="selflink" href="#V"><b class="Fl" title="Fl" id="V">-V</b></a></dt>
|
||||||
|
<dd class="It-tag">Print the version of the program and exit.</dd>
|
||||||
|
</dl>
|
||||||
|
<h1 class="Sh" title="Sh" id="EXAMPLES"><a class="selflink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
All you need for a basic ROM is an object file, which can be made into a ROM
|
||||||
|
image like so:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgblink -o bar.gb foo.o</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The resulting bar.gb will not have correct checksums (unless you put them in the
|
||||||
|
assembly source). You should use <a class="Xr" title="Xr">rgbfix(1)</a> to fix
|
||||||
|
these so that the program will actually run in a Game Boy:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="D1">$ rgbfix -v bar.gb</div>
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a>, <a class="Xr" title="Xr">rgblink(5)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbfix(1)</a>, <a class="Xr" title="Xr">rgbds(5)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgblink</b> was originally written by Carsten
|
||||||
|
Sørensen as part of the ASMotor package, and was later packaged in
|
||||||
|
RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 26, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
105
docs/rgblink.5.html
Normal file
105
docs/rgblink.5.html
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
div.Pp { margin: 1ex 0ex; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="manual.css" type="text/css" media="all"/>
|
||||||
|
<title>RGBLINK(5)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">RGBLINK(5)</td>
|
||||||
|
<td class="head-vol">File Formats Manual</td>
|
||||||
|
<td class="head-rtitle">RGBLINK(5)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgblink</b> —
|
||||||
|
<span class="Nd" title="Nd">linkerscript file format</span>
|
||||||
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
The linkerscript is an external file that allows the user to specify the order
|
||||||
|
of sections without the need for doing so before assembling each object file.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The placement of sections specified in the linkerscript is done before the
|
||||||
|
sections whose placement is defined in the source code.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
A linkerscript consists on a series of banks followed by a list of sections and,
|
||||||
|
optionally, commands. They can be lowercase or uppercase, it is ignored. Any
|
||||||
|
line can contain a comment starting with
|
||||||
|
‘<code class="Li">;</code>’ that ends at the end of the line:
|
||||||
|
<div class="Pp"></div>
|
||||||
|
<div class="Bd" style="margin-left: 5.00ex;">
|
||||||
|
<pre class="Li">
|
||||||
|
ROMX $F ; This is a comment
|
||||||
|
"Functions to read array"
|
||||||
|
ALIGN 8
|
||||||
|
"Array aligned to 256 bytes"
|
||||||
|
|
||||||
|
WRAMX 2
|
||||||
|
"Some variables"
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
Numbers can be in decimal or hexadecimal format (the prefix is
|
||||||
|
‘<code class="Li">$</code>’). It is an error if any section name
|
||||||
|
or command are found before setting a bank.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
Files can be included by using the <var class="Ar" title="Ar">INCLUDE</var>
|
||||||
|
keyword followed by a string with the path of the file that has to be
|
||||||
|
included.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The possible bank types are: <b class="Sy" title="Sy">ROM0</b>,
|
||||||
|
<b class="Sy" title="Sy">ROMX</b>, <b class="Sy" title="Sy">VRAM</b>,
|
||||||
|
<b class="Sy" title="Sy">WRAM0</b>, <b class="Sy" title="Sy">WRAMX</b>,
|
||||||
|
<b class="Sy" title="Sy">OAM</b> and <b class="Sy" title="Sy">HRAM</b>. Types
|
||||||
|
<b class="Sy" title="Sy">ROMX</b>, <b class="Sy" title="Sy">VRAM</b>,
|
||||||
|
<b class="Sy" title="Sy">WRAMX</b> and <b class="Sy" title="Sy">SRAM</b> are
|
||||||
|
banked, which means that it is needed to specify a bank after the type.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
When a new bank statement is found, sections found after it will be placed right
|
||||||
|
from the beginning of that bank. If the linkerscript switches to a different
|
||||||
|
bank and then it comes back to the previous one it will continue from the last
|
||||||
|
address that was used.
|
||||||
|
<div class="Pp"></div>
|
||||||
|
The only two commands are <var class="Ar" title="Ar">ORG</var> and
|
||||||
|
<var class="Ar" title="Ar">ALIGN</var>:
|
||||||
|
<ul class="Bl-bullet">
|
||||||
|
<li class="It-bullet"><var class="Ar" title="Ar">ORG</var> sets the address in
|
||||||
|
which new sections will be placed. It can not be lower than the current
|
||||||
|
address.</li>
|
||||||
|
<li class="It-bullet"><var class="Ar" title="Ar">ALIGN</var> will increase the
|
||||||
|
address until it is aligned to the specified boundary (it tries to set to
|
||||||
|
0 the number of bits specified after the command:
|
||||||
|
<b class="Sy" title="Sy">ALIGN 8</b> will align to $100).</li>
|
||||||
|
</ul>
|
||||||
|
<div class="Pp"></div>
|
||||||
|
Note: The bank, alignment, address and type of sections can be specified both in
|
||||||
|
the source code and in the linkerscript. For a section to be able to be placed
|
||||||
|
with the linkerscript the bank must be left unassigned in the source code or
|
||||||
|
be the same as the one specified in the linkerscript. The address and
|
||||||
|
alignment musn't be set.
|
||||||
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<a class="Xr" title="Xr">rgbasm(1)</a>, <a class="Xr" title="Xr">rgblink(1)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbfix(1)</a>, <a class="Xr" title="Xr">rgbds(5)</a>,
|
||||||
|
<a class="Xr" title="Xr">rgbds(7)</a>
|
||||||
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
||||||
|
<b class="Nm" title="Nm">rgblink</b> was originally written by Carsten
|
||||||
|
Sørensen as part of the ASMotor package, and was later packaged in
|
||||||
|
RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
||||||
|
<a class="Lk" title="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">January 27, 2018</td>
|
||||||
|
<td class="foot-os">RGBDS Manual</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
/*
|
/*
|
||||||
* asm.h
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
* Contains some assembler-wide defines and externs
|
* Contains some assembler-wide defines and externs
|
||||||
*
|
|
||||||
* Copyright 1997 Carsten Sorensen
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_ASM_H
|
#ifndef RGBDS_ASM_ASM_H
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_CHARMAP_H
|
#ifndef RGBDS_ASM_CHARMAP_H
|
||||||
#define RGBDS_ASM_CHARMAP_H
|
#define RGBDS_ASM_CHARMAP_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
/* fstack.h
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Contains some assembler-wide defines and externs
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
*
|
|
||||||
* Copyright 1997 Carsten Sorensen
|
|
||||||
*
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Contains some assembler-wide defines and externs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_FSTACK_H
|
#ifndef RGBDS_ASM_FSTACK_H
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_LEXER_H
|
#ifndef RGBDS_ASM_LEXER_H
|
||||||
#define RGBDS_ASM_LEXER_H
|
#define RGBDS_ASM_LEXER_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_LOCALASM_H
|
#ifndef RGBDS_ASM_LOCALASM_H
|
||||||
#define RGBDS_ASM_LOCALASM_H
|
#define RGBDS_ASM_LOCALASM_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_MAIN_H
|
#ifndef RGBDS_MAIN_H
|
||||||
#define RGBDS_MAIN_H
|
#define RGBDS_MAIN_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_MATH_H
|
#ifndef RGBDS_ASM_MATH_H
|
||||||
#define RGBDS_ASM_MATH_H
|
#define RGBDS_ASM_MATH_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_OUTPUT_H
|
#ifndef RGBDS_ASM_OUTPUT_H
|
||||||
#define RGBDS_ASM_OUTPUT_H
|
#define RGBDS_ASM_OUTPUT_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_ASM_RPN_H
|
#ifndef RGBDS_ASM_RPN_H
|
||||||
#define RGBDS_ASM_RPN_H
|
#define RGBDS_ASM_RPN_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_SYMBOL_H
|
#ifndef RGBDS_SYMBOL_H
|
||||||
#define RGBDS_SYMBOL_H
|
#define RGBDS_SYMBOL_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_COMMON_H
|
#ifndef RGBDS_COMMON_H
|
||||||
#define RGBDS_COMMON_H
|
#define RGBDS_COMMON_H
|
||||||
|
|
||||||
|
|||||||
8
include/extern/err.h
vendored
8
include/extern/err.h
vendored
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef EXTERN_ERR_H
|
#ifndef EXTERN_ERR_H
|
||||||
#define EXTERN_ERR_H
|
#define EXTERN_ERR_H
|
||||||
|
|
||||||
|
|||||||
15
include/extern/reallocarray.h
vendored
15
include/extern/reallocarray.h
vendored
@@ -1,15 +0,0 @@
|
|||||||
#ifndef EXTERN_REALLOCARRAY_H
|
|
||||||
#define EXTERN_REALLOCARRAY_H
|
|
||||||
|
|
||||||
#ifdef REALLOCARRAY_IN_LIBC
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#else /* REALLOCARRAY_IN_LIBC */
|
|
||||||
|
|
||||||
#define reallocarray rgbds_reallocarray
|
|
||||||
void *reallocarray(void *, size_t, size_t);
|
|
||||||
|
|
||||||
#endif /* REALLOCARRAY_IN_LIBC */
|
|
||||||
|
|
||||||
#endif /* EXTERN_REALLOCARRAY_H */
|
|
||||||
8
include/extern/stdnoreturn.h
vendored
8
include/extern/stdnoreturn.h
vendored
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2014-2018, RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef EXTERN_STDNORETURN_H
|
#ifndef EXTERN_STDNORETURN_H
|
||||||
#define EXTERN_STDNORETURN_H
|
#define EXTERN_STDNORETURN_H
|
||||||
|
|
||||||
|
|||||||
17
include/extern/strl.h
vendored
17
include/extern/strl.h
vendored
@@ -1,17 +0,0 @@
|
|||||||
#ifndef EXTERN_STRL_H
|
|
||||||
#define EXTERN_STRL_H
|
|
||||||
|
|
||||||
#ifdef STRL_IN_LIBC
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#else /* STRL_IN_LIBC */
|
|
||||||
|
|
||||||
#define strlcpy rgbds_strlcpy
|
|
||||||
#define strlcat rgbds_strlcat
|
|
||||||
size_t strlcpy(char *dst, const char *src, size_t dsize);
|
|
||||||
size_t strlcat(char *dst, const char *src, size_t dsize);
|
|
||||||
|
|
||||||
#endif /* STRL_IN_LIBC */
|
|
||||||
|
|
||||||
#endif /* EXTERN_STRL_H */
|
|
||||||
14
include/extern/utf8decoder.h
vendored
Normal file
14
include/extern/utf8decoder.h
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EXTERN_UTF8DECODER_H
|
||||||
|
#define EXTERN_UTF8DECODER_H
|
||||||
|
|
||||||
|
uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte);
|
||||||
|
|
||||||
|
#endif /* EXTERN_UTF8DECODER_H */
|
||||||
26
include/extern/version.h
vendored
26
include/extern/version.h
vendored
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef EXTERN_VERSION_H
|
|
||||||
#define EXTERN_VERSION_H
|
|
||||||
|
|
||||||
#define PACKAGE_VERSION_MAJOR (0)
|
|
||||||
#define PACKAGE_VERSION_MINOR (3)
|
|
||||||
#define PACKAGE_VERSION_PATCH (4)
|
|
||||||
|
|
||||||
const char *get_package_version_string(void);
|
|
||||||
|
|
||||||
#endif /* EXTERN_VERSION_H */
|
|
||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_GFX_GB_H
|
#ifndef RGBDS_GFX_GB_H
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_GFX_MAIN_H
|
#ifndef RGBDS_GFX_MAIN_H
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_GFX_PNG_H
|
#ifndef RGBDS_GFX_PNG_H
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_ASSIGN_H
|
#ifndef RGBDS_LINK_ASSIGN_H
|
||||||
#define RGBDS_LINK_ASSIGN_H
|
#define RGBDS_LINK_ASSIGN_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_LIBRARY_H
|
#ifndef RGBDS_LINK_LIBRARY_H
|
||||||
#define RGBDS_LINK_LIBRARY_H
|
#define RGBDS_LINK_LIBRARY_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_MAIN_H
|
#ifndef RGBDS_LINK_MAIN_H
|
||||||
#define RGBDS_LINK_MAIN_H
|
#define RGBDS_LINK_MAIN_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_MAPFILE_H
|
#ifndef RGBDS_LINK_MAPFILE_H
|
||||||
#define RGBDS_LINK_MAPFILE_H
|
#define RGBDS_LINK_MAPFILE_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_LINK_H
|
#ifndef RGBDS_LINK_LINK_H
|
||||||
#define RGBDS_LINK_LINK_H
|
#define RGBDS_LINK_LINK_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_OBJECT_H
|
#ifndef RGBDS_LINK_OBJECT_H
|
||||||
#define RGBDS_LINK_OBJECT_H
|
#define RGBDS_LINK_OBJECT_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_OUTPUT_H
|
#ifndef RGBDS_LINK_OUTPUT_H
|
||||||
#define RGBDS_LINK_OUTPUT_H
|
#define RGBDS_LINK_OUTPUT_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_PATCH_H
|
#ifndef RGBDS_LINK_PATCH_H
|
||||||
#define RGBDS_LINK_PATCH_H
|
#define RGBDS_LINK_PATCH_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_SCRIPT_H
|
#ifndef RGBDS_LINK_SCRIPT_H
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINK_SYMBOL_H
|
#ifndef RGBDS_LINK_SYMBOL_H
|
||||||
#define RGBDS_LINK_SYMBOL_H
|
#define RGBDS_LINK_SYMBOL_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_LINKDEFS_H
|
#ifndef RGBDS_LINKDEFS_H
|
||||||
#define RGBDS_LINKDEFS_H
|
#define RGBDS_LINKDEFS_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef RGBDS_TYPES_H
|
#ifndef RGBDS_TYPES_H
|
||||||
#define RGBDS_TYPES_H
|
#define RGBDS_TYPES_H
|
||||||
|
|
||||||
|
|||||||
18
include/version.h
Normal file
18
include/version.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EXTERN_VERSION_H
|
||||||
|
#define EXTERN_VERSION_H
|
||||||
|
|
||||||
|
#define PACKAGE_VERSION_MAJOR (0)
|
||||||
|
#define PACKAGE_VERSION_MINOR (3)
|
||||||
|
#define PACKAGE_VERSION_PATCH (5)
|
||||||
|
|
||||||
|
const char *get_package_version_string(void);
|
||||||
|
|
||||||
|
#endif /* EXTERN_VERSION_H */
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|||||||
@@ -1,87 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* UTF-8 decoder copyright © 2008–2009 Björn Höhrmann <bjoern@hoehrmann.de>
|
* This file is part of RGBDS.
|
||||||
* http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
|
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* of this software and associated documentation files (the "Software"), to
|
|
||||||
* deal in the Software without restriction, including without limitation the
|
|
||||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
* sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included in
|
* SPDX-License-Identifier: MIT
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
||||||
* IN THE SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
static const uint8_t utf8d[] = {
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00..0f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10..1f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20..2f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30..3f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40..4f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50..5f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60..6f */
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70..7f */
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 80..8f */
|
|
||||||
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, /* 90..9f */
|
|
||||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* a0..af */
|
|
||||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* b0..bf */
|
|
||||||
8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* c0..cf */
|
|
||||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* d0..df */
|
|
||||||
0xa, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, /* e0..e7 */
|
|
||||||
0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, /* e8..ef */
|
|
||||||
0xb, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, /* f0..f7 */
|
|
||||||
0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, /* f8..ff */
|
|
||||||
0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, /* s0.. */
|
|
||||||
0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, /* ..s0 */
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s1 */
|
|
||||||
1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, /* s1 */
|
|
||||||
1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, /* s3 */
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, /* s4 */
|
|
||||||
1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, /* s5 */
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s6 */
|
|
||||||
1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s7 */
|
|
||||||
1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s8 */
|
|
||||||
};
|
|
||||||
|
|
||||||
uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte)
|
|
||||||
{
|
|
||||||
uint32_t type = utf8d[byte];
|
|
||||||
|
|
||||||
*codep = (*state != 0) ?
|
|
||||||
(byte & 0x3fu) | (*codep << 6) :
|
|
||||||
(0xff >> type) & (byte);
|
|
||||||
|
|
||||||
*state = utf8d[256 + *state * 16 + type];
|
|
||||||
return *state;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -91,6 +16,8 @@ uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte)
|
|||||||
#include "asm/main.h"
|
#include "asm/main.h"
|
||||||
#include "asm/output.h"
|
#include "asm/output.h"
|
||||||
|
|
||||||
|
#include "extern/utf8decoder.h"
|
||||||
|
|
||||||
struct Charmap globalCharmap = {0};
|
struct Charmap globalCharmap = {0};
|
||||||
|
|
||||||
int32_t readUTF8Char(char *dest, char *src)
|
int32_t readUTF8Char(char *dest, char *src)
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FileStack routines
|
* FileStack routines
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +24,6 @@
|
|||||||
#include "asm/symbol.h"
|
#include "asm/symbol.h"
|
||||||
|
|
||||||
#include "extern/err.h"
|
#include "extern/err.h"
|
||||||
#include "extern/strl.h"
|
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
@@ -218,7 +225,7 @@ void fstk_AddIncludePath(char *s)
|
|||||||
if (NextIncPath == MAXINCPATHS)
|
if (NextIncPath == MAXINCPATHS)
|
||||||
fatalerror("Too many include directories passed from command line");
|
fatalerror("Too many include directories passed from command line");
|
||||||
|
|
||||||
if (strlcpy(IncludePaths[NextIncPath++], s, _MAX_PATH) >= _MAX_PATH)
|
if (snprintf(IncludePaths[NextIncPath++], _MAX_PATH, "%s", s) >= _MAX_PATH)
|
||||||
fatalerror("Include path too long '%s'", s);
|
fatalerror("Include path too long '%s'", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,6 +235,9 @@ FILE *fstk_FindFile(char *fname)
|
|||||||
int32_t i;
|
int32_t i;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
|
if (fname == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
f = fopen(fname, "rb");
|
f = fopen(fname, "rb");
|
||||||
|
|
||||||
if (f != NULL || errno != ENOENT) {
|
if (f != NULL || errno != ENOENT) {
|
||||||
@@ -238,13 +248,19 @@ FILE *fstk_FindFile(char *fname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NextIncPath; ++i) {
|
for (i = 0; i < NextIncPath; ++i) {
|
||||||
if (strlcpy(path, IncludePaths[i], sizeof(path))
|
/*
|
||||||
|
* The function snprintf() does not write more than `size` bytes
|
||||||
|
* (including the terminating null byte ('\0')). If the output
|
||||||
|
* was truncated due to this limit, the return value is the
|
||||||
|
* number of characters (excluding the terminating null byte)
|
||||||
|
* which would have been written to the final string if enough
|
||||||
|
* space had been available. Thus, a return value of `size` or
|
||||||
|
* more means that the output was truncated.
|
||||||
|
*/
|
||||||
|
if (snprintf(path, sizeof(path), "%s%s", IncludePaths[i], fname)
|
||||||
>= sizeof(path))
|
>= sizeof(path))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (strlcat(path, fname, sizeof(path)) >= sizeof(path))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
f = fopen(path, "rb");
|
f = fopen(path, "rb");
|
||||||
|
|
||||||
if (f != NULL || errno != ENOENT) {
|
if (f != NULL || errno != ENOENT) {
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -14,13 +22,15 @@
|
|||||||
#include "asm/main.h"
|
#include "asm/main.h"
|
||||||
|
|
||||||
#include "extern/err.h"
|
#include "extern/err.h"
|
||||||
#include "extern/reallocarray.h"
|
|
||||||
#include "extern/version.h"
|
#include "version.h"
|
||||||
|
|
||||||
extern int yyparse(void);
|
extern int yyparse(void);
|
||||||
|
|
||||||
int32_t cldefines_index;
|
size_t cldefines_index;
|
||||||
int32_t cldefines_size;
|
size_t cldefines_numindices;
|
||||||
|
size_t cldefines_bufsize;
|
||||||
|
const size_t cldefine_entrysize = 2 * sizeof(void *);
|
||||||
char **cldefines;
|
char **cldefines;
|
||||||
|
|
||||||
clock_t nStartClock, nEndClock;
|
clock_t nStartClock, nEndClock;
|
||||||
@@ -184,10 +194,18 @@ void opt_AddDefine(char *s)
|
|||||||
{
|
{
|
||||||
char *value, *equals;
|
char *value, *equals;
|
||||||
|
|
||||||
if (cldefines_index >= cldefines_size) {
|
if (cldefines_index >= cldefines_numindices) {
|
||||||
cldefines_size *= 2;
|
/* Check for overflows */
|
||||||
cldefines = reallocarray(cldefines, cldefines_size,
|
if ((cldefines_numindices * 2) < cldefines_numindices)
|
||||||
2 * sizeof(void *));
|
fatalerror("No memory for command line defines");
|
||||||
|
|
||||||
|
if ((cldefines_bufsize * 2) < cldefines_bufsize)
|
||||||
|
fatalerror("No memory for command line defines");
|
||||||
|
|
||||||
|
cldefines_numindices *= 2;
|
||||||
|
cldefines_bufsize *= 2;
|
||||||
|
|
||||||
|
cldefines = realloc(cldefines, cldefines_bufsize);
|
||||||
if (!cldefines)
|
if (!cldefines)
|
||||||
fatalerror("No memory for command line defines");
|
fatalerror("No memory for command line defines");
|
||||||
}
|
}
|
||||||
@@ -280,8 +298,10 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
dependfile = NULL;
|
dependfile = NULL;
|
||||||
|
|
||||||
cldefines_size = 32;
|
/* Initial number of allocated elements in array */
|
||||||
cldefines = reallocarray(cldefines, cldefines_size, 2 * sizeof(void *));
|
cldefines_numindices = 32;
|
||||||
|
cldefines_bufsize = cldefines_numindices * cldefine_entrysize;
|
||||||
|
cldefines = malloc(cldefines_bufsize);
|
||||||
if (!cldefines)
|
if (!cldefines)
|
||||||
fatalerror("No memory for command line defines");
|
fatalerror("No memory for command line defines");
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fixedpoint math routines
|
* Fixedpoint math routines
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Outputs an objectfile
|
* Outputs an objectfile
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright © 2010 Anthony J. Bentley <anthony@anjbe.name>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2010-2018, Anthony J. Bentley and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBASM 1
|
.Dt RGBASM 1
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright (c) 2017-2018 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd January 7, 2018
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 27, 2018
|
||||||
.Dt RGBASM 5
|
.Dt RGBASM 5
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -300,7 +293,7 @@ There are four commands in the RS group of commands:
|
|||||||
.Pp
|
.Pp
|
||||||
.Bl -column ".Sy String" ".Sy String"
|
.Bl -column ".Sy String" ".Sy String"
|
||||||
.It Sy Command Ta Ta Ta Sy Meaning
|
.It Sy Command Ta Ta Ta Sy Meaning
|
||||||
.It Ic RSRESET No Ta Ta Resets the _RS counter to zero.
|
.It Ic RSRESET Ta Ta Resets the _RS counter to zero.
|
||||||
.It Ic RSSET Ar constexpr Ta Sets the
|
.It Ic RSSET Ar constexpr Ta Sets the
|
||||||
.Ic _RS No counter to Ar constexpr .
|
.Ic _RS No counter to Ar constexpr .
|
||||||
.It Ic RB Ar constexpr Ta Sets the preceding symbol to
|
.It Ic RB Ar constexpr Ta Sets the preceding symbol to
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Controls RPN expressions for objectfiles
|
* Controls RPN expressions for objectfiles
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Symboltable and macroargs stuff
|
* Symboltable and macroargs stuff
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +24,8 @@
|
|||||||
#include "asm/output.h"
|
#include "asm/output.h"
|
||||||
|
|
||||||
#include "extern/err.h"
|
#include "extern/err.h"
|
||||||
#include "extern/version.h"
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
struct sSymbol *tHashedSymbols[HASHSIZE];
|
struct sSymbol *tHashedSymbols[HASHSIZE];
|
||||||
static struct sSymbol *pScope; /* Current section symbol scope */
|
static struct sSymbol *pScope; /* Current section symbol scope */
|
||||||
|
|||||||
21
src/extern/err.c
vendored
21
src/extern/err.c
vendored
@@ -1,24 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2005-2013 Rich Felker, et al.
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Copyright (c) 2005-2018, Rich Felker and RGBDS contributors.
|
||||||
* a copy of this software and associated documentation files (the
|
|
||||||
* "Software"), to deal in the Software without restriction, including
|
|
||||||
* without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
* permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
* the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* SPDX-License-Identifier: MIT
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|||||||
37
src/extern/reallocarray.c
vendored
37
src/extern/reallocarray.c
vendored
@@ -1,37 +0,0 @@
|
|||||||
/* $OpenBSD: reallocarray.c,v 1.2 2014/12/08 03:45:00 bcook Exp $ */
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2008 Otto Moerbeek <otto@drijf.net>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX
|
|
||||||
* if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW
|
|
||||||
*/
|
|
||||||
#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4))
|
|
||||||
|
|
||||||
void *rgbds_reallocarray(void *optr, size_t nmemb, size_t size)
|
|
||||||
{
|
|
||||||
if (((nmemb >= MUL_NO_OVERFLOW) || (size >= MUL_NO_OVERFLOW)) &&
|
|
||||||
(nmemb > 0) && (SIZE_MAX / nmemb < size)) {
|
|
||||||
errno = ENOMEM;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return realloc(optr, size * nmemb);
|
|
||||||
}
|
|
||||||
54
src/extern/strlcat.c
vendored
54
src/extern/strlcat.c
vendored
@@ -1,54 +0,0 @@
|
|||||||
/* $OpenBSD: strlcat.c,v 1.14 2015/01/15 03:54:12 millert Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (c) 1998, 2015 Todd C. Miller <Todd.Miller@courtesan.com>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Appends src to string dst of size dsize (unlike strncat, dsize is the
|
|
||||||
* full size of dst, not space left). At most dsize-1 characters
|
|
||||||
* will be copied. Always NUL terminates (unless dsize <= strlen(dst)).
|
|
||||||
* Returns strlen(src) + MIN(dsize, strlen(initial dst)).
|
|
||||||
* If retval >= dsize, truncation occurred.
|
|
||||||
*/
|
|
||||||
size_t rgbds_strlcat(char *dst, const char *src, size_t dsize)
|
|
||||||
{
|
|
||||||
const char *odst = dst;
|
|
||||||
const char *osrc = src;
|
|
||||||
size_t n = dsize;
|
|
||||||
size_t dlen;
|
|
||||||
|
|
||||||
/* Find the end of dst and adjust bytes left but don't go past end. */
|
|
||||||
while (n-- != 0 && *dst != '\0')
|
|
||||||
dst++;
|
|
||||||
dlen = dst - odst;
|
|
||||||
n = dsize - dlen;
|
|
||||||
|
|
||||||
if (n-- == 0)
|
|
||||||
return(dlen + strlen(src));
|
|
||||||
while (*src != '\0') {
|
|
||||||
if (n != 0) {
|
|
||||||
*dst++ = *src;
|
|
||||||
n--;
|
|
||||||
}
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
*dst = '\0';
|
|
||||||
|
|
||||||
return dlen + (src - osrc); /* count does not include NUL */
|
|
||||||
}
|
|
||||||
52
src/extern/strlcpy.c
vendored
52
src/extern/strlcpy.c
vendored
@@ -1,52 +0,0 @@
|
|||||||
/* $OpenBSD: strlcpy.c,v 1.12 2015/01/15 03:54:12 millert Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (c) 1998, 2015 Todd C. Miller <Todd.Miller@courtesan.com>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copy string src to buffer dst of size dsize. At most dsize-1
|
|
||||||
* chars will be copied. Always NUL terminates (unless dsize == 0).
|
|
||||||
* Returns strlen(src); if retval >= dsize, truncation occurred.
|
|
||||||
*/
|
|
||||||
size_t rgbds_strlcpy(char *dst, const char *src, size_t dsize)
|
|
||||||
{
|
|
||||||
const char *osrc = src;
|
|
||||||
size_t nleft = dsize;
|
|
||||||
|
|
||||||
/* Copy as many bytes as will fit. */
|
|
||||||
if (nleft != 0) {
|
|
||||||
while (--nleft != 0) {
|
|
||||||
char n = *src++;
|
|
||||||
*dst++ = n;
|
|
||||||
|
|
||||||
if (n == '\0')
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Not enough room in dst, add NUL and traverse rest of src. */
|
|
||||||
if (nleft == 0) {
|
|
||||||
if (dsize != 0)
|
|
||||||
*dst = '\0'; /* NUL-terminate dst */
|
|
||||||
while (*src++)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (src - osrc - 1); /* count does not include NUL */
|
|
||||||
}
|
|
||||||
54
src/extern/utf8decoder.c
vendored
Normal file
54
src/extern/utf8decoder.c
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2008-2009, Björn Höhrmann <bjoern@hoehrmann.de>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UTF-8 decoder: http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static const uint8_t utf8d[] = {
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00..0f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10..1f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20..2f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30..3f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40..4f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50..5f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60..6f */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70..7f */
|
||||||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 80..8f */
|
||||||
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, /* 90..9f */
|
||||||
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* a0..af */
|
||||||
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* b0..bf */
|
||||||
|
8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* c0..cf */
|
||||||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* d0..df */
|
||||||
|
0xa, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, /* e0..e7 */
|
||||||
|
0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, /* e8..ef */
|
||||||
|
0xb, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, /* f0..f7 */
|
||||||
|
0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, /* f8..ff */
|
||||||
|
0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, /* s0.. */
|
||||||
|
0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, /* ..s0 */
|
||||||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s1 */
|
||||||
|
1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, /* s1 */
|
||||||
|
1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, /* s3 */
|
||||||
|
1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, /* s4 */
|
||||||
|
1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, /* s5 */
|
||||||
|
1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s6 */
|
||||||
|
1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s7 */
|
||||||
|
1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s8 */
|
||||||
|
};
|
||||||
|
|
||||||
|
uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte)
|
||||||
|
{
|
||||||
|
uint32_t type = utf8d[byte];
|
||||||
|
|
||||||
|
*codep = (*state != 0) ?
|
||||||
|
(byte & 0x3fu) | (*codep << 6) :
|
||||||
|
(0xff >> type) & (byte);
|
||||||
|
|
||||||
|
*state = utf8d[256 + *state * 16 + type];
|
||||||
|
return *state;
|
||||||
|
}
|
||||||
34
src/extern/version.c
vendored
34
src/extern/version.c
vendored
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "extern/version.h"
|
|
||||||
|
|
||||||
const char *get_package_version_string(void)
|
|
||||||
{
|
|
||||||
static char s[50];
|
|
||||||
|
|
||||||
/* The following conditional should be simplified by the compiler. */
|
|
||||||
if (strlen(BUILD_VERSION_STRING) == 0) {
|
|
||||||
snprintf(s, sizeof(s), "v%d.%d.%d", PACKAGE_VERSION_MAJOR,
|
|
||||||
PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCH);
|
|
||||||
return s;
|
|
||||||
} else {
|
|
||||||
return BUILD_VERSION_STRING;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2010 Anthony J. Bentley <anthonyjbentley@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2010-2018, Anthony J. Bentley and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
@@ -22,7 +14,8 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "extern/err.h"
|
#include "extern/err.h"
|
||||||
#include "extern/version.h"
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
static void print_usage(void)
|
static void print_usage(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright © 2010 Anthony J. Bentley <anthony@anjbe.name>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2010-2017, Anthony J. Bentley and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBFIX 1
|
.Dt RGBFIX 1
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
|||||||
19
src/gbz80.7
19
src/gbz80.7
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright (c) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt GBZ80 7
|
.Dt GBZ80 7
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -1669,7 +1662,7 @@ Flags: See
|
|||||||
.Sx SRA r8
|
.Sx SRA r8
|
||||||
.Ss STOP
|
.Ss STOP
|
||||||
Enter CPU very low power mode.
|
Enter CPU very low power mode.
|
||||||
Also used to switch between doube speed and normal CPU modes in GBC.
|
Also used to switch between double and normal speed CPU modes in GBC.
|
||||||
.Pp
|
.Pp
|
||||||
Cycles: -
|
Cycles: -
|
||||||
.Pp
|
.Pp
|
||||||
|
|||||||
14
src/gfx/gb.c
14
src/gfx/gb.c
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|||||||
@@ -1,27 +1,19 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "extern/version.h"
|
|
||||||
|
|
||||||
#include "gfx/main.h"
|
#include "gfx/main.h"
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
static void print_usage(void)
|
static void print_usage(void)
|
||||||
{
|
{
|
||||||
printf(
|
printf(
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013 stag019 <stag019@gmail.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright © 2013 stag019 <stag019@gmail.com>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2013-2018, stag019 and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBGFX 1
|
.Dt RGBGFX 1
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
%option noinput
|
%option noinput
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -5,7 +13,6 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "extern/err.h"
|
#include "extern/err.h"
|
||||||
#include "extern/version.h"
|
|
||||||
|
|
||||||
#include "link/object.h"
|
#include "link/object.h"
|
||||||
#include "link/output.h"
|
#include "link/output.h"
|
||||||
@@ -16,6 +23,8 @@
|
|||||||
#include "link/main.h"
|
#include "link/main.h"
|
||||||
#include "link/library.h"
|
#include "link/library.h"
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
enum eBlockType {
|
enum eBlockType {
|
||||||
BLOCK_COMMENT,
|
BLOCK_COMMENT,
|
||||||
BLOCK_OBJECTS,
|
BLOCK_OBJECTS,
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Here we have the routines that read an objectfile
|
* Here we have the routines that read an objectfile
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -49,7 +57,6 @@ static int32_t getsymvalue(int32_t symid)
|
|||||||
errx(1, "%s: Unknown symbol type", __func__);
|
errx(1, "%s: Unknown symbol type", __func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int32_t getrealbankfrominternalbank(int32_t n)
|
static int32_t getrealbankfrominternalbank(int32_t n)
|
||||||
{
|
{
|
||||||
if (BankIndexIsWRAM0(n) || BankIndexIsROM0(n) ||
|
if (BankIndexIsWRAM0(n) || BankIndexIsROM0(n) ||
|
||||||
@@ -65,8 +72,6 @@ static int32_t getrealbankfrominternalbank(int32_t n)
|
|||||||
return n - BANK_INDEX_SRAM;
|
return n - BANK_INDEX_SRAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
errx(1, "%s: Unknown bank %d", __func__, n);
|
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright © 2010 Anthony J. Bentley <anthony@anjbe.name>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2010-2018, Anthony J. Bentley and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBLINK 1
|
.Dt RGBLINK 1
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 27, 2018
|
||||||
.Dt RGBLINK 5
|
.Dt RGBLINK 5
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -45,7 +38,7 @@ WRAMX 2
|
|||||||
.Pp
|
.Pp
|
||||||
Numbers can be in decimal or hexadecimal format (the prefix is
|
Numbers can be in decimal or hexadecimal format (the prefix is
|
||||||
.Ql $ ) .
|
.Ql $ ) .
|
||||||
It is an error if any bank or command is found before setting a bank.
|
It is an error if any section name or command are found before setting a bank.
|
||||||
.Pp
|
.Pp
|
||||||
Files can be included by using the
|
Files can be included by using the
|
||||||
.Ar INCLUDE
|
.Ar INCLUDE
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Antonio Nino Diaz <antonio_nd@outlook.com>
|
* This file is part of RGBDS.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
* SPDX-License-Identifier: MIT
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@@ -120,9 +112,9 @@ void script_SetCurrentSectionType(const char *type, uint32_t bank)
|
|||||||
current_real_bank = bank;
|
current_real_bank = bank;
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(type, "WRAM0") == 0) {
|
} else if (strcmp(type, "WRAM0") == 0) {
|
||||||
if (bank != 0) {
|
if (bank != 0)
|
||||||
errx(1, "Trying to assign a bank number to WRAM0.\n");
|
errx(1, "Trying to assign a bank number to WRAM0.\n");
|
||||||
}
|
|
||||||
current_bank = BANK_INDEX_WRAM0;
|
current_bank = BANK_INDEX_WRAM0;
|
||||||
current_real_bank = 0;
|
current_real_bank = 0;
|
||||||
return;
|
return;
|
||||||
@@ -134,7 +126,7 @@ void script_SetCurrentSectionType(const char *type, uint32_t bank)
|
|||||||
BANK_COUNT_WRAMX);
|
BANK_COUNT_WRAMX);
|
||||||
}
|
}
|
||||||
current_bank = BANK_INDEX_WRAMX + bank - 1;
|
current_bank = BANK_INDEX_WRAMX + bank - 1;
|
||||||
current_real_bank = bank - 1;
|
current_real_bank = bank;
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(type, "SRAM") == 0) {
|
} else if (strcmp(type, "SRAM") == 0) {
|
||||||
if (bank >= BANK_COUNT_SRAM) {
|
if (bank >= BANK_COUNT_SRAM) {
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997-2018, Carsten Sorensen and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
17
src/rgbds.5
17
src/rgbds.5
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright (c) 2017-2018 Antonio Nino Diaz <antonio_nd@outlook.com>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd January 7, 2018
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBDS 5
|
.Dt RGBDS 5
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
|||||||
18
src/rgbds.7
18
src/rgbds.7
@@ -1,18 +1,11 @@
|
|||||||
.\" Copyright © 2010 Anthony J. Bentley <anthony@anjbe.name>
|
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" This file is part of RGBDS.
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
.\"
|
||||||
.\" THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
.\" Copyright (c) 2010-2018, Anthony J. Bentley and RGBDS contributors.
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
.\"
|
||||||
.Dd April 17, 2017
|
.\" SPDX-License-Identifier: MIT
|
||||||
|
.\"
|
||||||
|
.Dd January 26, 2018
|
||||||
.Dt RGBDS 7
|
.Dt RGBDS 7
|
||||||
.Os RGBDS Manual
|
.Os RGBDS Manual
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -48,4 +41,5 @@ implementation of rgbds.
|
|||||||
2017, Bentley's repository is moved to a neutral name.
|
2017, Bentley's repository is moved to a neutral name.
|
||||||
It is now maintained by a number of contributors at
|
It is now maintained by a number of contributors at
|
||||||
.Lk https://github.com/rednex/rgbds .
|
.Lk https://github.com/rednex/rgbds .
|
||||||
|
2018, codebase relicensed under the MIT license.
|
||||||
.El
|
.El
|
||||||
|
|||||||
26
src/version.c
Normal file
26
src/version.c
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of RGBDS.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
|
const char *get_package_version_string(void)
|
||||||
|
{
|
||||||
|
static char s[50];
|
||||||
|
|
||||||
|
/* The following conditional should be simplified by the compiler. */
|
||||||
|
if (strlen(BUILD_VERSION_STRING) == 0) {
|
||||||
|
snprintf(s, sizeof(s), "v%d.%d.%d", PACKAGE_VERSION_MAJOR,
|
||||||
|
PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCH);
|
||||||
|
return s;
|
||||||
|
} else {
|
||||||
|
return BUILD_VERSION_STRING;
|
||||||
|
}
|
||||||
|
}
|
||||||
237
test/link/all-instructions.asm
Normal file
237
test/link/all-instructions.asm
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
SECTION "All instructions", ROM0
|
||||||
|
|
||||||
|
; 8-bit Arithmetic and Logic Instructions
|
||||||
|
|
||||||
|
alu_instruction_list : MACRO
|
||||||
|
\1 a,a
|
||||||
|
\1 a,b
|
||||||
|
\1 a,c
|
||||||
|
\1 a,d
|
||||||
|
\1 a,$DB
|
||||||
|
\1 a,e
|
||||||
|
\1 a,h
|
||||||
|
\1 a,[hl]
|
||||||
|
\1 a,l
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
alu_instruction_list adc
|
||||||
|
alu_instruction_list add
|
||||||
|
alu_instruction_list and
|
||||||
|
alu_instruction_list cp
|
||||||
|
alu_instruction_list or
|
||||||
|
alu_instruction_list sbc
|
||||||
|
alu_instruction_list sub
|
||||||
|
alu_instruction_list xor
|
||||||
|
|
||||||
|
incdec_8bit_instruction_list : MACRO
|
||||||
|
\1 a
|
||||||
|
\1 b
|
||||||
|
\1 c
|
||||||
|
\1 d
|
||||||
|
\1 e
|
||||||
|
\1 h
|
||||||
|
\1 [hl]
|
||||||
|
\1 l
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
incdec_8bit_instruction_list inc
|
||||||
|
incdec_8bit_instruction_list dec
|
||||||
|
|
||||||
|
; 16-bit Arithmetic Instructions
|
||||||
|
|
||||||
|
add hl,bc
|
||||||
|
add hl,de
|
||||||
|
add hl,hl
|
||||||
|
add hl,sp
|
||||||
|
|
||||||
|
inc bc
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
inc sp
|
||||||
|
|
||||||
|
dec bc
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec sp
|
||||||
|
|
||||||
|
; Bit Operations Instructions
|
||||||
|
|
||||||
|
bitop_u3_instruction_list : MACRO
|
||||||
|
NBIT SET 0
|
||||||
|
REPT 8
|
||||||
|
\1 NBIT,a
|
||||||
|
\1 NBIT,b
|
||||||
|
\1 NBIT,c
|
||||||
|
\1 NBIT,d
|
||||||
|
\1 NBIT,e
|
||||||
|
\1 NBIT,h
|
||||||
|
\1 NBIT,[hl]
|
||||||
|
\1 NBIT,l
|
||||||
|
NBIT SET NBIT + 1
|
||||||
|
ENDR
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
bitop_u3_instruction_list bit
|
||||||
|
bitop_u3_instruction_list res
|
||||||
|
bitop_u3_instruction_list set
|
||||||
|
|
||||||
|
bitop_noarg_instruction_list : MACRO
|
||||||
|
\1 a
|
||||||
|
\1 b
|
||||||
|
\1 c
|
||||||
|
\1 d
|
||||||
|
\1 e
|
||||||
|
\1 h
|
||||||
|
\1 [hl]
|
||||||
|
\1 l
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
bitop_noarg_instruction_list swap
|
||||||
|
|
||||||
|
; Bit Shift Instructions
|
||||||
|
|
||||||
|
rla
|
||||||
|
rlca
|
||||||
|
rra
|
||||||
|
rrca
|
||||||
|
|
||||||
|
bitop_noarg_instruction_list rl
|
||||||
|
bitop_noarg_instruction_list rlc
|
||||||
|
bitop_noarg_instruction_list rr
|
||||||
|
bitop_noarg_instruction_list rrc
|
||||||
|
bitop_noarg_instruction_list sla
|
||||||
|
bitop_noarg_instruction_list sra
|
||||||
|
bitop_noarg_instruction_list srl
|
||||||
|
|
||||||
|
; Load Instructions
|
||||||
|
|
||||||
|
ld_r8_x_instruction_list : MACRO
|
||||||
|
ld \1,a
|
||||||
|
ld \1,b
|
||||||
|
ld \1,c
|
||||||
|
ld \1,d
|
||||||
|
ld \1,$DB
|
||||||
|
ld \1,e
|
||||||
|
ld \1,h
|
||||||
|
ld \1,l
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
ld_r8_x_instruction_list a
|
||||||
|
ld_r8_x_instruction_list b
|
||||||
|
ld_r8_x_instruction_list c
|
||||||
|
ld_r8_x_instruction_list d
|
||||||
|
ld_r8_x_instruction_list e
|
||||||
|
ld_r8_x_instruction_list h
|
||||||
|
ld_r8_x_instruction_list [hl]
|
||||||
|
ld_r8_x_instruction_list l
|
||||||
|
|
||||||
|
ld_x_r8_instruction_list : MACRO
|
||||||
|
ld a,\1
|
||||||
|
ld b,\1
|
||||||
|
ld c,\1
|
||||||
|
ld d,\1
|
||||||
|
ld e,\1
|
||||||
|
ld h,\1
|
||||||
|
ld l,\1
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
ld_x_r8_instruction_list a
|
||||||
|
ld_x_r8_instruction_list b
|
||||||
|
ld_x_r8_instruction_list c
|
||||||
|
ld_x_r8_instruction_list d
|
||||||
|
ld_x_r8_instruction_list e
|
||||||
|
ld_x_r8_instruction_list h
|
||||||
|
ld_x_r8_instruction_list [hl]
|
||||||
|
ld_x_r8_instruction_list l
|
||||||
|
|
||||||
|
ld bc,$ABCD
|
||||||
|
ld de,$ABCD
|
||||||
|
ld hl,$ABCD
|
||||||
|
ld sp,$ABCD
|
||||||
|
|
||||||
|
ld [bc],a
|
||||||
|
ld [de],a
|
||||||
|
ld [hl],a
|
||||||
|
ld [$ABCD],a
|
||||||
|
ldh [$ff00+$DB],a
|
||||||
|
ld [$ff00+c],a
|
||||||
|
|
||||||
|
ld a,[bc]
|
||||||
|
ld a,[de]
|
||||||
|
ld a,[hl]
|
||||||
|
ld a,[$ABCD]
|
||||||
|
ldh a,[$ff00+$DB]
|
||||||
|
ld a,[$ff00+c]
|
||||||
|
|
||||||
|
ld [hl+],a
|
||||||
|
ld [hl-],a
|
||||||
|
ld a,[hl+]
|
||||||
|
ld a,[hl-]
|
||||||
|
|
||||||
|
; Jumps and Subroutines
|
||||||
|
|
||||||
|
call $ABCD
|
||||||
|
call z,$ABCD
|
||||||
|
call nz,$ABCD
|
||||||
|
call c,$ABCD
|
||||||
|
call nc,$ABCD
|
||||||
|
|
||||||
|
jp hl
|
||||||
|
|
||||||
|
jp $ABCD
|
||||||
|
jp z,$ABCD
|
||||||
|
jp nz,$ABCD
|
||||||
|
jp c,$ABCD
|
||||||
|
jp nc,$ABCD
|
||||||
|
|
||||||
|
jrlabel:
|
||||||
|
jr jrlabel
|
||||||
|
jr z,jrlabel
|
||||||
|
jr nz,jrlabel
|
||||||
|
jr c,jrlabel
|
||||||
|
jr nc,jrlabel
|
||||||
|
|
||||||
|
ret
|
||||||
|
ret z
|
||||||
|
ret nz
|
||||||
|
ret c
|
||||||
|
ret nc
|
||||||
|
reti
|
||||||
|
|
||||||
|
rst $00
|
||||||
|
rst $08
|
||||||
|
rst $10
|
||||||
|
rst $18
|
||||||
|
rst $20
|
||||||
|
rst $28
|
||||||
|
rst $30
|
||||||
|
rst $38
|
||||||
|
|
||||||
|
; Stack Operations Instructions
|
||||||
|
|
||||||
|
add sp,$DB
|
||||||
|
ld [$ABCD],sp
|
||||||
|
ld hl,sp+$DB
|
||||||
|
ld sp,hl
|
||||||
|
|
||||||
|
pop af
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
push af
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
push hl
|
||||||
|
|
||||||
|
; Miscellaneous Instructions
|
||||||
|
|
||||||
|
ccf
|
||||||
|
cpl
|
||||||
|
daa
|
||||||
|
di
|
||||||
|
ei
|
||||||
|
halt
|
||||||
|
nop
|
||||||
|
scf
|
||||||
|
stop
|
||||||
BIN
test/link/all-instructions.out.bin
Normal file
BIN
test/link/all-instructions.out.bin
Normal file
Binary file not shown.
@@ -55,4 +55,9 @@ $RGBLINK -o $gbtemp2 $otemp
|
|||||||
diff $gbtemp $gbtemp2
|
diff $gbtemp $gbtemp2
|
||||||
rc=$(($? || $rc))
|
rc=$(($? || $rc))
|
||||||
|
|
||||||
|
$RGBASM -o $otemp all-instructions.asm
|
||||||
|
$RGBLINK -o $gbtemp $otemp
|
||||||
|
diff all-instructions.out.bin $gbtemp
|
||||||
|
rc=$(($? || $rc))
|
||||||
|
|
||||||
exit $rc
|
exit $rc
|
||||||
|
|||||||
@@ -25,4 +25,7 @@ $RGBASM -o $otemp romx-tiny.asm
|
|||||||
$RGBLINK -o $gbtemp $otemp > romx-tiny-no-t.out 2>&1
|
$RGBLINK -o $gbtemp $otemp > romx-tiny-no-t.out 2>&1
|
||||||
$RGBLINK -t -o $gbtemp $otemp > romx-tiny-t.out 2>&1
|
$RGBLINK -t -o $gbtemp $otemp > romx-tiny-t.out 2>&1
|
||||||
|
|
||||||
|
$RGBASM -o $otemp all-instructions.asm
|
||||||
|
$RGBLINK -o all-instructions.out.bin $otemp 2>&1
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
34
test/run-tests.sh
Executable file
34
test/run-tests.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Return failure as soon as a command fails to execute
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Tests included with the repository
|
||||||
|
|
||||||
|
pushd asm
|
||||||
|
./test.sh
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd link
|
||||||
|
./test.sh
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Test some significant external projects that use RGBDS
|
||||||
|
|
||||||
|
git clone https://github.com/pret/pokecrystal.git --depth=1
|
||||||
|
pushd pokecrystal
|
||||||
|
make -j
|
||||||
|
make compare
|
||||||
|
popd
|
||||||
|
|
||||||
|
git clone --recursive https://github.com/pret/pokered.git --depth=1
|
||||||
|
pushd pokered
|
||||||
|
make -j
|
||||||
|
make compare
|
||||||
|
popd
|
||||||
|
|
||||||
|
git clone https://github.com/AntonioND/ucity.git --depth=1
|
||||||
|
pushd ucity
|
||||||
|
make -j
|
||||||
|
popd
|
||||||
Reference in New Issue
Block a user