added NDK libnix

This commit is contained in:
Stefan Franke 2018-01-09 07:17:50 +01:00
parent 9c692a61be
commit 2c839184b7
6 changed files with 509 additions and 15 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
build
projects
download

165
Makefile
View File

@ -14,6 +14,9 @@ CPPFLAGS=-Os
CXXFLAGS=-Os
E=CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS)"
# cross compile:
A=CFLAGS="-Os" CPPFLAGS="-Os" CXXFLAGS="-Os"
PREFIX=/opt/amiga
PATH := $(PREFIX)/bin:$(PATH)
SHELL = /bin/bash
@ -32,7 +35,7 @@ EXEEXT=$(MYMAKEEXE:%=.exe)
help:
@echo "make help display this help"
@echo "make all build and install all"
@echo "make <target> builds a target: binutils, gcc, fd2sfd, fd2pragma, ira, sfdc, vbcc, vlink"
@echo "make <target> builds a target: binutils, gcc, fd2sfd, fd2pragma, ira, sfdc, vbcc, vlink, libnix, ixemul"
@echo "make clean remove the build folder"
@echo "make clean-<target> remove the target's build folder"
@echo "make clean-prefix remove all content from the prefix folder"
@ -42,15 +45,15 @@ help:
# =================================================
# all
# =================================================
.PHONY: all gcc binutils fd2sfd fd2pragma ira sfdc vbcc vlink
all: gcc binutils fd2sfd fd2pragma ira sfdc vbcc vlink
.PHONY: all gcc binutils fd2sfd fd2pragma ira sfdc vbcc vlink libnix ixemul
all: gcc binutils fd2sfd fd2pragma ira sfdc vbcc vlink libnix ixemul
@echo "built all"
# =================================================
# clean
# =================================================
.PHONY: clean-prefix clean clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vbcc clean-vlink
clean: clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vbcc clean-vlink
.PHONY: clean-prefix clean clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vbcc clean-vlink clean-libnix clean-ixemul
clean: clean-gcc clean-binutils clean-fd2sfd clean-fd2pragma clean-ira clean-sfdc clean-vbcc clean-vlink clean-libnix clean-ixemul
rm -rf build
clean-gcc:
@ -77,6 +80,12 @@ clean-vbcc:
clean-vlink:
rm -rf build/vlink
clean-libnix:
rm -rf build/libnix
clean-ixemul:
rm -rf build/ixemul
# clean-prefix drops the files from prefix folder
clean-prefix:
rm -rf $(PREFIX)/*
@ -85,8 +94,8 @@ clean-prefix:
# =================================================
# update all projects
# =================================================
.PHONY: update update-gcc update-binutils update-fd2sfd update-fd2pragma update-ira update-sfdc update-vbcc update-vlink
update: update-gcc update-binutils update-fd2sfd update-fd2pragma update-ira update-sfdc update-vbcc update-vlink
.PHONY: update update-gcc update-binutils update-fd2sfd update-fd2pragma update-ira update-sfdc update-vbcc update-vlink update-libnix update-ixemul
update: update-gcc update-binutils update-fd2sfd update-fd2pragma update-ira update-sfdc update-vbcc update-vlink update-libnix update-ixemul
update-gcc: projects/gcc/configure
pushd projects/gcc; git pull; popd
@ -112,6 +121,16 @@ update-vbcc: projects/vbcc/Makefile
update-vlink: projects/vlink/Makefile
pushd projects/vlink; git pull; popd
update-libnix:
pushd projects/libnix; git pull; popd
update-ixemul:
pushd projects/ixemul; git pull; popd
# =================================================
# B I N
# =================================================
# =================================================
# gcc
# =================================================
@ -204,7 +223,7 @@ $(PREFIX)/bin/fd2pragma: build/fd2pragma/fd2pragma
build/fd2pragma/fd2pragma: projects/fd2pragma/makefile $(shell find projects/fd2pragma -not \( -path projects/fd2pragma/.git -prune \) -type f)
@mkdir -p build/fd2pragma
+pushd projects/fd2pragma; $(CC) -o $(PWD)/$@ $(CFLAGS) fd2pragma.c; popd
pushd projects/fd2pragma; $(CC) -o $(PWD)/$@ $(CFLAGS) fd2pragma.c; popd
projects/fd2pragma/makefile:
@mkdir -p projects
@ -221,7 +240,7 @@ $(PREFIX)/bin/ira: build/ira/ira
build/ira/ira: projects/ira/Makefile $(shell find projects/ira -not \( -path projects/ira/.git -prune \) -type f)
@mkdir -p build/ira
+pushd projects/ira; $(CC) -o $(PWD)/$@ $(CFLAGS) ira.c ira_2.c supp.c; popd
pushd projects/ira; $(CC) -o $(PWD)/$@ $(CFLAGS) ira.c ira_2.c supp.c; popd
projects/ira/Makefile:
@mkdir -p projects
@ -240,7 +259,7 @@ $(PREFIX)/bin/sfdc: build/sfdc/Makefile $(shell find projects/sfdc -not \( -path
install build/sfdc/sfdc $(PREFIX)/bin
build/sfdc/Makefile: projects/sfdc/configure
rsync -aq --progress projects/sfdc build --exclude .git
rsync -a projects/sfdc build --exclude .git
pushd build/sfdc; $(E) $(PWD)/build/sfdc/configure $(CONFIG_SFDC); popd
projects/sfdc/configure:
@ -261,10 +280,10 @@ $(VBCCP): build/vbcc/Makefile $(shell find projects/vbcc -not \( -path projects/
+pushd build/vbcc; TARGET=m68k make bin/dtgen; popd
+pushd build/vbcc; echo -e "y\\ny\\nsigned char\\ny\\nunsigned char\\nn\\ny\\nsigned short\\nn\\ny\\nunsigned short\\nn\\ny\\nsigned int\\nn\\ny\\nunsigned int\\nn\\ny\\nsigned long long\\nn\\ny\\nunsigned long long\\nn\\ny\\nfloat\\nn\\ny\\ndouble\\n" >c.txt; bin/dtgen machines/m68k/machine.dt machines/m68k/dt.h machines/m68k/dt.c <c.txt; popd
+pushd build/vbcc; TARGET=m68k make; popd
+install build/vbcc/bin/v* $(PREFIX)/bin/
install build/vbcc/bin/v* $(PREFIX)/bin/
build/vbcc/Makefile: projects/vbcc/Makefile
rsync -aq --progress projects/vbcc build --exclude .git
rsync -a projects/vbcc build --exclude .git
mkdir -p build/vbcc/bin
projects/vbcc/Makefile:
@ -283,11 +302,129 @@ vlink: $(VLINK)
$(VLINKP): build/vlink/Makefile $(shell find projects/vlink -not \( -path projects/vlink/.git -prune \) -type f)
+pushd build/vlink; TARGET=m68k make; popd
+install build/vlink/vlink $(PREFIX)/bin/
install build/vlink/vlink $(PREFIX)/bin/
build/vlink/Makefile: projects/vlink/Makefile
rsync -aq --progress projects/vlink build --exclude .git
rsync -a projects/vlink build --exclude .git
projects/vlink/Makefile:
@mkdir -p projects
pushd projects; git clone -b master --depth 1 https://github.com/leffmann/vlink; popd
# =================================================
# L I B R A R I E S
# =================================================
$(eval GCCVERSION = $(shell ls $(PREFIX)/lib/gcc/m68k-amigaos/))
LIBGCCA=$(PREFIX)/lib/gcc/m68k-amigaos/$(GCCVERSION)/libgcc.a
$(LIBGCCA):
echo "creating dummy libgcc.a as $(LIBGCCA)"
$(shell [ -e $(LIBGCCA) ] || m68k-amigaos-ar r $(LIBGCCA) )
# =================================================
# NDK - no git
# =================================================
NDK_INCLUDE = $(shell find projects/NDK_3.9/Include/include_h -type f)
SYS_INCLUDE2 = $(patsubst projects/NDK_3.9/Include/include_h/%,$(PREFIX)/m68k-amigaos/sys-include/%, $(NDK_INCLUDE))
NDK_INCLUDE_SFD = $(shell find projects/NDK_3.9/Include/sfd -type f -name *.sfd)
SYS_INCLUDE_INLINE = $(patsubst projects/NDK_3.9/Include/sfd/%.sfd,$(PREFIX)/m68k-amigaos/sys-include/inline/%.h,$(NDK_INCLUDE_SFD))
SYS_INCLUDE_LVO = $(patsubst projects/NDK_3.9/Include/sfd/%.sfd,$(PREFIX)/m68k-amigaos/sys-include/lvo/%.h,$(NDK_INCLUDE_SFD))
SYS_INCLUDE_PROTO = $(patsubst projects/NDK_3.9/Include/sfd/%.sfd,$(PREFIX)/m68k-amigaos/sys-include/proto/%.h,$(NDK_INCLUDE_SFD))
x:
@echo $(NDK_INCLUDE_SFD)
@echo $(SYS_INCLUDE_INLINE)
@echo $(SYS_INCLUDE_LVO)
@echo $(SYS_INCLUDE_PROTO)
$(SYS_INCLUDE2): sys-include2
.PHONY: sys-include2 sys-include-dir
sys-include2: sys-include-dir projects/NDK_3.9.info $(NDK_INCLUDE) $(SYS_INCLUDE_INLINE) $(SYS_INCLUDE_PRAGMA) $(SYS_INCLUDE_PROTO) projects/fd2sfd/configure projects/fd2pragma/makefile
rsync -a $(PWD)/projects/NDK_3.9/Include/include_h/* $(PREFIX)/m68k-amigaos/sys-include
rsync -a $(PWD)/projects/NDK_3.9/Include/include_i/* $(PREFIX)/m68k-amigaos/sys-include
rsync -a $(PWD)/projects/NDK_3.9/Include/fd $(PREFIX)/m68k-amigaos/ndk/lib
rsync -a $(PWD)/projects/NDK_3.9/Include/sfd $(PREFIX)/m68k-amigaos/ndk/lib
rsync -a $(PWD)/projects/NDK_3.9/Include/linker_libs $(PREFIX)/m68k-amigaos/ndk/lib
mkdir -p $(PREFIX)/m68k-amigaos/ndk/lib
cp projects/fd2sfd/cross/share/m68k-amigaos/alib.h $(PREFIX)/m68k-amigaos/sys-include/inline
cp projects/fd2pragma/Include/inline/stubs.h $(PREFIX)/m68k-amigaos/sys-include/inline
cp projects/fd2pragma/Include/inline/macros.h $(PREFIX)/m68k-amigaos/sys-include/inline
$(SYS_INCLUDE_INLINE): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD)
sfdc --target=m68k-amigaos --mode=macros --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/sys-include/inline/%.h,projects/NDK_3.9/Include/sfd/%.sfd,$@)
$(SYS_INCLUDE_LVO): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD)
sfdc --target=m68k-amigaos --mode=lvo --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/sys-include/lvo/%.h,projects/NDK_3.9/Include/sfd/%.sfd,$@)
$(SYS_INCLUDE_PROTO): $(PREFIX)/bin/sfdc $(NDK_INCLUDE_SFD)
sfdc --target=m68k-amigaos --mode=proto --output=$@ $(patsubst $(PREFIX)/m68k-amigaos/sys-include/proto/%.h,projects/NDK_3.9/Include/sfd/%.sfd,$@)
sys-include-dir:
mkdir -p $(PREFIX)/m68k-amigaos/sys-include/inline
mkdir -p $(PREFIX)/m68k-amigaos/sys-include/lvo
mkdir -p $(PREFIX)/m68k-amigaos/sys-include/proto
projects/NDK_3.9.info: download/NDK39.lha
mkdir -p projects
pushd projects; lha x ../download/NDK39.lha; popd
for i in $$(find patches/NDK_3.9/ -type f); \
do if [[ "$$i" == *.diff ]] ; \
then j=$${i:8}; patch -N "projects/$${j%.diff}" "$$i"; \
else cp -v "$$i" "projects/$${i:8}"; fi ; done
download/NDK39.lha:
mkdir -p download
pushd download; wget http://www.haage-partner.de/download/AmigaOS/NDK39.lha; popd
# =================================================
# ixemul
# =================================================
CONFIG_IXEMUL = --prefix=$(PREFIX) --target=m68k-amigaos --host=m68k-amigaos --disable-cat
IXEMUL_INCLUDE = $(shell find projects/ixemul/include -type f)
SYS_INCLUDE = $(patsubst projects/ixemul/include/%,$(PREFIX)/m68k-amigaos/sys-include/%, $(IXEMUL_INCLUDE))
build/ixemul/Makefile: $(LIBGCCA) projects/ixemul/configure $(shell find projects/ixemul -not \( -path projects/ixemul/.git -prune \) -type f)
mkdir -p build/ixemul
+pushd build/ixemul; $(A) $(PWD)/projects/ixemul/configure $(CONFIG_IXEMUL); popd
$(SYS_INCLUDE): sys-include
.PHONY: sys-include
sys-include: $(IXEMUL_INCLUDE) projects/ixemul/configure
mkdir -p $(PREFIX)/m68k-amigaos/sys-include
rsync -a projects/ixemul/include/* $(PREFIX)/m68k-amigaos/sys-include
projects/ixemul/configure:
@mkdir -p projects
pushd projects; git clone -b master --depth 1 https://github.com/bebbo/ixemul; popd
# =================================================
# libnix
# =================================================
CONFIG_LIBNIX = --prefix=$(PREFIX) --target=m68k-amigaos --host=m68k-amigaos
LIBNIX_LIBS = libnix.a
LIBNIX = $(patsubst %,$(PREFIX)/m68k-amigaos/libnix/lib/libnix/%, $(LIBNIX_LIBS))
LIBNIXP = $(patsubst lib%,$(PREFIX)/m68k-amigaos/libnix/lib/libnix/\%%, $(LIBNIX_LIBS))
libnix: $(LIBNIX)
@echo "built $(LIBNIX)"
$(LIBNIX): binutils gcc build/libnix/Makefile
mkdir -p $(PREFIX)/m68k-amigaos/libnix/lib/libnix
+pushd build/libnix; make; popd
build/libnix/Makefile: $(SYS_INCLUDE) $(SYS_INCLUDE2) $(LIBGCCA) projects/libnix/configure \
$(shell find projects/libnix -not \( -path projects/libnix/.git -prune \) \
-not \( -path projects/libnix/sources/stubs/libbases -prune \) \
-not \( -path projects/libnix/sources/stubs/libnames -prune \) -type f)
mkdir -p build/libnix
+pushd build/libnix; AR=m68k-amigaos-ar AS=m68k-amigaos-as CC=m68k-amigaos-gcc $(A) $(PWD)/projects/libnix/configure $(CONFIG_LIBNIX); popd
projects/libnix/configure:
@mkdir -p projects
pushd projects; git clone -b master --depth 1 https://github.com/bebbo/libnix; popd

View File

@ -0,0 +1,20 @@
--- NDK_3.9/Include/include_h/devices/timer.h Wed Aug 30 16:13:01 1995
+++ NDK_3.9/Include/include_h/devices/timer.h Sat Aug 10 15:53:59 1996
@@ -27,10 +27,17 @@
#define TIMERNAME "timer.device"
+#ifndef _SYS_TIME_H_
+/* Use whatever was included first, standard (sys/time.h) or Amiga
+ * includes (jch). */
struct timeval {
ULONG tv_secs;
ULONG tv_micro;
};
+#else
+#define tv_secs tv_sec
+#define tv_micro tv_usec
+#endif
struct EClockVal {
ULONG ev_hi;

View File

@ -0,0 +1,20 @@
--- NDK_3.9/Include/include_h/graphics/gfxmacros.h.orig 2017-01-09 22:05:16.180477595 +0100
+++ NDK_3.9/Include/include_h/graphics/gfxmacros.h 2017-01-09 22:06:45.054452637 +0100
@@ -56,7 +56,7 @@
#define SafeSetWriteMask(w,m) {if (GfxBase->LibNode.lib_Version<39) { (w)->Mask = (m);} else SetWriteMask(w,m); }
/* synonym for GetOPen for consistency with SetOutlinePen */
-#define GetOutlinePen(rp) GetOPen(rp)
+#define GetOPen(rp) GetOutlinePen(rp)
#define BNDRYOFF(w) {(w)->Flags &= ~AREAOUTLINE;}
@@ -117,7 +117,7 @@
} while (0)
/* synonym for GetOPen for consistency with SetOutlinePen */
-#define GetOutlinePen(rp) GetOPen(rp)
+#define GetOPen(rp) GetOutlinePen(rp)
#define BNDRYOFF(w) do { \

View File

@ -0,0 +1,10 @@
#ifndef PROTO_ALIB_H
#define PROTO_ALIB_H
#include <clib/alib_protos.h>
#ifdef __GNUC__
#include <inline/alib.h>
#endif /* __GNUC__ */
#endif /* PROTO_ALIB_H */

View File

@ -0,0 +1,307 @@
--- NDK_3.9/Include/sfd/graphics_lib.sfd.orig 2017-01-11 08:58:25.000000000 +0100
+++ NDK_3.9/Include/sfd/graphics_lib.sfd 2017-01-11 09:00:20.000000000 +0100
@@ -16,16 +16,15 @@
==include <graphics/text.h>
==include <graphics/scale.h>
==include <hardware/blit.h>
-LONG BltBitMap(const struct BitMap * srcBitMap, WORD xSrc, WORD ySrc,
- struct BitMap * destBitMap, WORD xDest, WORD yDest, WORD xSize,
- WORD ySize, UBYTE minterm, UBYTE mask, PLANEPTR tempA) (a0,d0,d1,a1,d2,d3,d4,d5,d6,d7,a2)
-VOID BltTemplate(const PLANEPTR source, WORD xSrc, WORD srcMod, struct RastPort * destRP,
- WORD xDest, WORD yDest, WORD xSize, WORD ySize) (a0,d0,d1,a1,d2,d3,d4,d5)
+==include <exec/types.h>
+==include <utility/tagitem.h>
+LONG BltBitMap(CONST struct BitMap * srcBitMap, LONG xSrc, LONG ySrc, struct BitMap * destBitMap, LONG xDest, LONG yDest, LONG xSize, LONG ySize, ULONG minterm, ULONG mask, PLANEPTR tempA) (a0,d0,d1,a1,d2,d3,d4,d5,d6,d7,a2)
+VOID BltTemplate(CONST PLANEPTR source, LONG xSrc, LONG srcMod, struct RastPort * destRP, LONG xDest, LONG yDest, LONG xSize, LONG ySize) (a0,d0,d1,a1,d2,d3,d4,d5)
VOID ClearEOL(struct RastPort * rp) (a1)
VOID ClearScreen(struct RastPort * rp) (a1)
-WORD TextLength(struct RastPort * rp, CONST_STRPTR string, UWORD count) (a1,a0,d0)
-LONG Text(struct RastPort * rp, CONST_STRPTR string, UWORD count) (a1,a0,d0)
-LONG SetFont(struct RastPort * rp, const struct TextFont * textFont) (a1,a0)
+WORD TextLength(struct RastPort * rp, CONST_STRPTR string, ULONG count) (a1,a0,d0)
+LONG Text(struct RastPort * rp, CONST_STRPTR string, ULONG count) (a1,a0,d0)
+LONG SetFont(struct RastPort * rp, CONST struct TextFont * textFont) (a1,a0)
struct TextFont * OpenFont(struct TextAttr * textAttr) (a0)
VOID CloseFont(struct TextFont * textFont) (a1)
ULONG AskSoftStyle(struct RastPort * rp) (a1)
@@ -34,62 +33,58 @@
VOID AddVSprite(struct VSprite * vSprite, struct RastPort * rp) (a0,a1)
VOID DoCollision(struct RastPort * rp) (a1)
VOID DrawGList(struct RastPort * rp, struct ViewPort * vp) (a1,a0)
-VOID InitGels(struct VSprite * head, struct VSprite * tail,
- struct GelsInfo * gelsInfo) (a0,a1,a2)
+VOID InitGels(struct VSprite * head, struct VSprite * tail, struct GelsInfo * gelsInfo) (a0,a1,a2)
VOID InitMasks(struct VSprite * vSprite) (a0)
VOID RemIBob(struct Bob * bob, struct RastPort * rp, struct ViewPort * vp) (a0,a1,a2)
VOID RemVSprite(struct VSprite * vSprite) (a0)
-VOID SetCollision(ULONG num, VOID (*routine)(struct VSprite *gelA, struct VSprite *gelB),
- struct GelsInfo * gelsInfo) (d0,a0,a1)
+VOID SetCollision(ULONG num, VOID (*routine)(struct VSprite *gelA, struct VSprite *gelB), struct GelsInfo * gelsInfo) (d0,a0,a1)
VOID SortGList(struct RastPort * rp) (a1)
VOID AddAnimOb(struct AnimOb * anOb, struct AnimOb ** anKey, struct RastPort * rp) (a0,a1,a2)
VOID Animate(struct AnimOb ** anKey, struct RastPort * rp) (a0,a1)
-BOOL GetGBuffers(struct AnimOb * anOb, struct RastPort * rp, BOOL flag) (a0,a1,d0)
+BOOL GetGBuffers(struct AnimOb * anOb, struct RastPort * rp, LONG flag) (a0,a1,d0)
VOID InitGMasks(struct AnimOb * anOb) (a0)
-VOID DrawEllipse(struct RastPort * rp, WORD xCenter, WORD yCenter, WORD a, WORD b) (a1,d0,d1,d2,d3)
-LONG AreaEllipse(struct RastPort * rp, WORD xCenter, WORD yCenter, WORD a, WORD b) (a1,d0,d1,d2,d3)
-VOID LoadRGB4(struct ViewPort * vp, const UWORD * colors, WORD count) (a0,a1,d0)
+VOID DrawEllipse(struct RastPort * rp, LONG xCenter, LONG yCenter, LONG a, LONG b) (a1,d0,d1,d2,d3)
+LONG AreaEllipse(struct RastPort * rp, LONG xCenter, LONG yCenter, LONG a, LONG b) (a1,d0,d1,d2,d3)
+VOID LoadRGB4(struct ViewPort * vp, CONST UWORD * colors, LONG count) (a0,a1,d0)
VOID InitRastPort(struct RastPort * rp) (a1)
VOID InitVPort(struct ViewPort * vp) (a0)
ULONG MrgCop(struct View * view) (a1)
ULONG MakeVPort(struct View * view, struct ViewPort * vp) (a0,a1)
VOID LoadView(struct View * view) (a1)
VOID WaitBlit() ()
-VOID SetRast(struct RastPort * rp, UBYTE pen) (a1,d0)
-VOID Move(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
-VOID Draw(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
-LONG AreaMove(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
-LONG AreaDraw(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
+VOID SetRast(struct RastPort * rp, ULONG pen) (a1,d0)
+VOID Move(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
+VOID Draw(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
+LONG AreaMove(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
+LONG AreaDraw(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
LONG AreaEnd(struct RastPort * rp) (a1)
VOID WaitTOF() ()
VOID QBlit(struct bltnode * blit) (a1)
-VOID InitArea(struct AreaInfo * areaInfo, APTR vectorBuffer, WORD maxVectors) (a0,a1,d0)
-VOID SetRGB4(struct ViewPort * vp, WORD index, UBYTE red, UBYTE green, UBYTE blue) (a0,d0,d1,d2,d3)
+VOID InitArea(struct AreaInfo * areaInfo, APTR vectorBuffer, LONG maxVectors) (a0,a1,d0)
+VOID SetRGB4(struct ViewPort * vp, LONG index, ULONG red, ULONG green, ULONG blue) (a0,d0,d1,d2,d3)
VOID QBSBlit(struct bltnode * blit) (a1)
VOID BltClear(PLANEPTR memBlock, ULONG byteCount, ULONG flags) (a1,d0,d1)
-VOID RectFill(struct RastPort * rp, WORD xMin, WORD yMin, WORD xMax, WORD yMax) (a1,d0,d1,d2,d3)
-VOID BltPattern(struct RastPort * rp, const PLANEPTR mask, WORD xMin, WORD yMin,
- WORD xMax, WORD yMax, UWORD maskBPR) (a1,a0,d0,d1,d2,d3,d4)
-ULONG ReadPixel(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
-LONG WritePixel(struct RastPort * rp, WORD x, WORD y) (a1,d0,d1)
-BOOL Flood(struct RastPort * rp, ULONG mode, WORD x, WORD y) (a1,d2,d0,d1)
-VOID PolyDraw(struct RastPort * rp, WORD count, const WORD * polyTable) (a1,d0,a0)
-VOID SetAPen(struct RastPort * rp, UBYTE pen) (a1,d0)
-VOID SetBPen(struct RastPort * rp, UBYTE pen) (a1,d0)
-VOID SetDrMd(struct RastPort * rp, UBYTE drawMode) (a1,d0)
+VOID RectFill(struct RastPort * rp, LONG xMin, LONG yMin, LONG xMax, LONG yMax) (a1,d0,d1,d2,d3)
+VOID BltPattern(struct RastPort * rp, CONST PLANEPTR mask, LONG xMin, LONG yMin, LONG xMax, LONG yMax, ULONG maskBPR) (a1,a0,d0,d1,d2,d3,d4)
+ULONG ReadPixel(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
+LONG WritePixel(struct RastPort * rp, LONG x, LONG y) (a1,d0,d1)
+BOOL Flood(struct RastPort * rp, ULONG mode, LONG x, LONG y) (a1,d2,d0,d1)
+VOID PolyDraw(struct RastPort * rp, LONG count, CONST WORD * polyTable) (a1,d0,a0)
+VOID SetAPen(struct RastPort * rp, ULONG pen) (a1,d0)
+VOID SetBPen(struct RastPort * rp, ULONG pen) (a1,d0)
+VOID SetDrMd(struct RastPort * rp, ULONG drawMode) (a1,d0)
VOID InitView(struct View * view) (a1)
VOID CBump(struct UCopList * copList) (a1)
-VOID CMove(struct UCopList * copList, APTR destination, WORD data) (a1,d0,d1)
-VOID CWait(struct UCopList * copList, WORD v, WORD h) (a1,d0,d1)
+VOID CMove(struct UCopList * copList, APTR destination, LONG data) (a1,d0,d1)
+VOID CWait(struct UCopList * copList, LONG v, LONG h) (a1,d0,d1)
LONG VBeamPos() ()
-VOID InitBitMap(struct BitMap * bitMap, BYTE depth, WORD width, WORD height) (a0,d0,d1,d2)
-VOID ScrollRaster(struct RastPort * rp, WORD dx, WORD dy, WORD xMin, WORD yMin, WORD xMax,
- WORD yMax) (a1,d0,d1,d2,d3,d4,d5)
+VOID InitBitMap(struct BitMap * bitMap, LONG depth, LONG width, LONG height) (a0,d0,d1,d2)
+VOID ScrollRaster(struct RastPort * rp, LONG dx, LONG dy, LONG xMin, LONG yMin, LONG xMax, LONG yMax) (a1,d0,d1,d2,d3,d4,d5)
VOID WaitBOVP(struct ViewPort * vp) (a0)
-WORD GetSprite(struct SimpleSprite * sprite, WORD num) (a0,d0)
-VOID FreeSprite(WORD num) (d0)
+WORD GetSprite(struct SimpleSprite * sprite, LONG num) (a0,d0)
+VOID FreeSprite(LONG num) (d0)
VOID ChangeSprite(struct ViewPort * vp, struct SimpleSprite * sprite, UWORD * newData) (a0,a1,a2)
-VOID MoveSprite(struct ViewPort * vp, struct SimpleSprite * sprite, WORD x, WORD y) (a0,a1,d0,d1)
+VOID MoveSprite(struct ViewPort * vp, struct SimpleSprite * sprite, LONG x, LONG y) (a0,a1,d0,d1)
VOID LockLayerRom(struct Layer * layer) (a5)
VOID UnlockLayerRom(struct Layer * layer) (a5)
VOID SyncSBitMap(struct Layer * layer) (a0)
@@ -100,138 +95,117 @@
VOID AskFont(struct RastPort * rp, struct TextAttr * textAttr) (a1,a0)
VOID AddFont(struct TextFont * textFont) (a1)
VOID RemFont(struct TextFont * textFont) (a1)
-PLANEPTR AllocRaster(UWORD width, UWORD height) (d0,d1)
-VOID FreeRaster(PLANEPTR p, UWORD width, UWORD height) (a0,d0,d1)
-VOID AndRectRegion(struct Region * region, const struct Rectangle * rectangle) (a0,a1)
-BOOL OrRectRegion(struct Region * region, const struct Rectangle * rectangle) (a0,a1)
+PLANEPTR AllocRaster(ULONG width, ULONG height) (d0,d1)
+VOID FreeRaster(PLANEPTR p, ULONG width, ULONG height) (a0,d0,d1)
+VOID AndRectRegion(struct Region * region, CONST struct Rectangle * rectangle) (a0,a1)
+BOOL OrRectRegion(struct Region * region, CONST struct Rectangle * rectangle) (a0,a1)
struct Region * NewRegion() ()
-BOOL ClearRectRegion(struct Region * region, const struct Rectangle * rectangle) (a0,a1)
+BOOL ClearRectRegion(struct Region * region, CONST struct Rectangle * rectangle) (a0,a1)
VOID ClearRegion(struct Region * region) (a0)
VOID DisposeRegion(struct Region * region) (a0)
VOID FreeVPortCopLists(struct ViewPort * vp) (a0)
VOID FreeCopList(struct CopList * copList) (a0)
-VOID ClipBlit(struct RastPort * srcRP, WORD xSrc, WORD ySrc, struct RastPort * destRP,
- WORD xDest, WORD yDest, WORD xSize, WORD ySize, UBYTE minterm) (a0,d0,d1,a1,d2,d3,d4,d5,d6)
-BOOL XorRectRegion(struct Region * region, const struct Rectangle * rectangle) (a0,a1)
+VOID ClipBlit(struct RastPort * srcRP, LONG xSrc, LONG ySrc, struct RastPort * destRP, LONG xDest, LONG yDest, LONG xSize, LONG ySize, ULONG minterm) (a0,d0,d1,a1,d2,d3,d4,d5,d6)
+BOOL XorRectRegion(struct Region * region, CONST struct Rectangle * rectangle) (a0,a1)
VOID FreeCprList(struct cprlist * cprList) (a0)
struct ColorMap * GetColorMap(LONG entries) (d0)
VOID FreeColorMap(struct ColorMap * colorMap) (a0)
ULONG GetRGB4(struct ColorMap * colorMap, LONG entry) (a0,d0)
VOID ScrollVPort(struct ViewPort * vp) (a0)
-struct CopList * UCopperListInit(struct UCopList * uCopList, WORD n) (a0,d0)
-VOID FreeGBuffers(struct AnimOb * anOb, struct RastPort * rp, BOOL flag) (a0,a1,d0)
-VOID BltBitMapRastPort(const struct BitMap * srcBitMap, WORD xSrc, WORD ySrc,
- struct RastPort * destRP, WORD xDest, WORD yDest, WORD xSize,
- WORD ySize, UBYTE minterm) (a0,d0,d1,a1,d2,d3,d4,d5,d6)
-BOOL OrRegionRegion(const struct Region * srcRegion, struct Region * destRegion) (a0,a1)
-BOOL XorRegionRegion(const struct Region * srcRegion, struct Region * destRegion) (a0,a1)
-BOOL AndRegionRegion(const struct Region * srcRegion, struct Region * destRegion) (a0,a1)
-VOID SetRGB4CM(struct ColorMap * colorMap, WORD index, UBYTE red, UBYTE green,
- UBYTE blue) (a0,d0,d1,d2,d3)
-VOID BltMaskBitMapRastPort(const struct BitMap * srcBitMap, WORD xSrc, WORD ySrc,
- struct RastPort * destRP, WORD xDest, WORD yDest, WORD xSize,
- WORD ySize, UBYTE minterm, const PLANEPTR bltMask) (a0,d0,d1,a1,d2,d3,d4,d5,d6,a2)
+struct CopList * UCopperListInit(struct UCopList * uCopList, LONG n) (a0,d0)
+VOID FreeGBuffers(struct AnimOb * anOb, struct RastPort * rp, LONG flag) (a0,a1,d0)
+VOID BltBitMapRastPort(CONST struct BitMap * srcBitMap, LONG xSrc, LONG ySrc, struct RastPort * destRP, LONG xDest, LONG yDest, LONG xSize, LONG ySize, ULONG minterm) (a0,d0,d1,a1,d2,d3,d4,d5,d6)
+BOOL OrRegionRegion(CONST struct Region * srcRegion, struct Region * destRegion) (a0,a1)
+BOOL XorRegionRegion(CONST struct Region * srcRegion, struct Region * destRegion) (a0,a1)
+BOOL AndRegionRegion(CONST struct Region * srcRegion, struct Region * destRegion) (a0,a1)
+VOID SetRGB4CM(struct ColorMap * colorMap, LONG index, ULONG red, ULONG green, ULONG blue) (a0,d0,d1,d2,d3)
+VOID BltMaskBitMapRastPort(CONST struct BitMap * srcBitMap, LONG xSrc, LONG ySrc, struct RastPort * destRP, LONG xDest, LONG yDest, LONG xSize, LONG ySize, ULONG minterm, CONST PLANEPTR bltMask) (a0,d0,d1,a1,d2,d3,d4,d5,d6,a2)
==reserve 2
BOOL AttemptLockLayerRom(struct Layer * layer) (a5)
==version 36
APTR GfxNew(ULONG gfxNodeType) (d0)
VOID GfxFree(APTR gfxNodePtr) (a0)
-VOID GfxAssociate(const APTR associateNode, APTR gfxNodePtr) (a0,a1)
+VOID GfxAssociate(CONST APTR associateNode, APTR gfxNodePtr) (a0,a1)
VOID BitMapScale(struct BitScaleArgs * bitScaleArgs) (a0)
-UWORD ScalerDiv(UWORD factor, UWORD numerator, UWORD denominator) (d0,d1,d2)
-WORD TextExtent(struct RastPort * rp, CONST_STRPTR string, WORD count,
- struct TextExtent * textExtent) (a1,a0,d0,a2)
-ULONG TextFit(struct RastPort * rp, CONST_STRPTR string, UWORD strLen,
- const struct TextExtent * textExtent,
- const struct TextExtent * constrainingExtent, WORD strDirection,
- UWORD constrainingBitWidth, UWORD constrainingBitHeight) (a1,a0,d0,a2,a3,d1,d2,d3)
-APTR GfxLookUp(const APTR associateNode) (a0)
+UWORD ScalerDiv(ULONG factor, ULONG numerator, ULONG denominator) (d0,d1,d2)
+WORD TextExtent(struct RastPort * rp, CONST_STRPTR string, LONG count, struct TextExtent * textExtent) (a1,a0,d0,a2)
+ULONG TextFit(struct RastPort * rp, CONST_STRPTR string, ULONG strLen, CONST struct TextExtent * textExtent, CONST struct TextExtent * constrainingExtent, LONG strDirection, ULONG constrainingBitWidth, ULONG constrainingBitHeight) (a1,a0,d0,a2,a3,d1,d2,d3)
+APTR GfxLookUp(CONST APTR associateNode) (a0)
BOOL VideoControl(struct ColorMap * colorMap, struct TagItem * tagarray) (a0,a1)
==varargs
-BOOL VideoControlTags(struct ColorMap * colorMap, ULONG tagarray, ...) (a0,a1)
+BOOL VideoControlTags(struct ColorMap * colorMap, Tag tagarray, ...) (a0,a1)
struct MonitorSpec * OpenMonitor(CONST_STRPTR monitorName, ULONG displayID) (a1,d0)
BOOL CloseMonitor(struct MonitorSpec * monitorSpec) (a0)
DisplayInfoHandle FindDisplayInfo(ULONG displayID) (d0)
ULONG NextDisplayInfo(ULONG displayID) (d0)
==reserve 3
-ULONG GetDisplayInfoData(const DisplayInfoHandle handle, APTR buf, ULONG size, ULONG tagID,
- ULONG displayID) (a0,a1,d0,d1,d2)
-VOID FontExtent(const struct TextFont * font, struct TextExtent * fontExtent) (a0,a1)
-LONG ReadPixelLine8(struct RastPort * rp, UWORD xstart, UWORD ystart, UWORD width,
- UBYTE * array, struct RastPort * tempRP) (a0,d0,d1,d2,a2,a1)
-LONG WritePixelLine8(struct RastPort * rp, UWORD xstart, UWORD ystart, UWORD width,
- UBYTE * array, struct RastPort * tempRP) (a0,d0,d1,d2,a2,a1)
-LONG ReadPixelArray8(struct RastPort * rp, UWORD xstart, UWORD ystart, UWORD xstop,
- UWORD ystop, UBYTE * array, struct RastPort * temprp) (a0,d0,d1,d2,d3,a2,a1)
-LONG WritePixelArray8(struct RastPort * rp, UWORD xstart, UWORD ystart, UWORD xstop,
- UWORD ystop, UBYTE * array, struct RastPort * temprp) (a0,d0,d1,d2,d3,a2,a1)
-LONG GetVPModeID(const struct ViewPort * vp) (a0)
+ULONG GetDisplayInfoData(CONST DisplayInfoHandle handle, APTR buf, ULONG size, ULONG tagID, ULONG displayID) (a0,a1,d0,d1,d2)
+VOID FontExtent(CONST struct TextFont * font, struct TextExtent * fontExtent) (a0,a1)
+LONG ReadPixelLine8(struct RastPort * rp, ULONG xstart, ULONG ystart, ULONG width, UBYTE * array, struct RastPort * tempRP) (a0,d0,d1,d2,a2,a1)
+LONG WritePixelLine8(struct RastPort * rp, ULONG xstart, ULONG ystart, ULONG width, UBYTE * array, struct RastPort * tempRP) (a0,d0,d1,d2,a2,a1)
+LONG ReadPixelArray8(struct RastPort * rp, ULONG xstart, ULONG ystart, ULONG xstop, ULONG ystop, UBYTE * array, struct RastPort * temprp) (a0,d0,d1,d2,d3,a2,a1)
+LONG WritePixelArray8(struct RastPort * rp, ULONG xstart, ULONG ystart, ULONG xstop, ULONG ystop, UBYTE * array, struct RastPort * temprp) (a0,d0,d1,d2,d3,a2,a1)
+LONG GetVPModeID(CONST struct ViewPort * vp) (a0)
LONG ModeNotAvailable(ULONG modeID) (d0)
==reserve 1
-VOID EraseRect(struct RastPort * rp, WORD xMin, WORD yMin, WORD xMax, WORD yMax) (a1,d0,d1,d2,d3)
-ULONG ExtendFont(struct TextFont * font, const struct TagItem * fontTags) (a0,a1)
+VOID EraseRect(struct RastPort * rp, LONG xMin, LONG yMin, LONG xMax, LONG yMax) (a1,d0,d1,d2,d3)
+ULONG ExtendFont(struct TextFont * font, CONST struct TagItem * fontTags) (a0,a1)
==varargs
-ULONG ExtendFontTags(struct TextFont * font, ULONG fontTags, ...) (a0,a1)
+ULONG ExtendFontTags(struct TextFont * font, Tag fontTags, ...) (a0,a1)
VOID StripFont(struct TextFont * font) (a0)
==version 39
UWORD CalcIVG(struct View * v, struct ViewPort * vp) (a0,a1)
LONG AttachPalExtra(struct ColorMap * cm, struct ViewPort * vp) (a0,a1)
-LONG ObtainBestPenA(struct ColorMap * cm, ULONG r, ULONG g, ULONG b,
- const struct TagItem * tags) (a0,d1,d2,d3,a1)
+LONG ObtainBestPenA(struct ColorMap * cm, ULONG r, ULONG g, ULONG b, CONST struct TagItem * tags) (a0,d1,d2,d3,a1)
==varargs
-LONG ObtainBestPen(struct ColorMap * cm, ULONG r, ULONG g, ULONG b, ULONG tags, ...) (a0,d1,d2,d3,a1)
+LONG ObtainBestPen(struct ColorMap * cm, ULONG r, ULONG g, ULONG b, Tag tags, ...) (a0,d1,d2,d3,a1)
==reserve 1
VOID SetRGB32(struct ViewPort * vp, ULONG n, ULONG r, ULONG g, ULONG b) (a0,d0,d1,d2,d3)
ULONG GetAPen(struct RastPort * rp) (a0)
ULONG GetBPen(struct RastPort * rp) (a0)
ULONG GetDrMd(struct RastPort * rp) (a0)
ULONG GetOutlinePen(struct RastPort * rp) (a0)
-VOID LoadRGB32(struct ViewPort * vp, const ULONG * table) (a0,a1)
+VOID LoadRGB32(struct ViewPort * vp, CONST ULONG * table) (a0,a1)
ULONG SetChipRev(ULONG want) (d0)
VOID SetABPenDrMd(struct RastPort * rp, ULONG apen, ULONG bpen, ULONG drawmode) (a1,d0,d1,d2)
-VOID GetRGB32(const struct ColorMap * cm, ULONG firstcolor, ULONG ncolors,
- ULONG * table) (a0,d0,d1,a1)
+VOID GetRGB32(CONST struct ColorMap * cm, ULONG firstcolor, ULONG ncolors, ULONG * table) (a0,d0,d1,a1)
==reserve 2
struct BitMap * AllocBitMap(ULONG sizex, ULONG sizey, ULONG depth, ULONG flags,
const struct BitMap * friend_bitmap) (d0,d1,d2,d3,a0)
VOID FreeBitMap(struct BitMap * bm) (a0)
-LONG GetExtSpriteA(struct ExtSprite * ss, const struct TagItem * tags) (a2,a1)
+LONG GetExtSpriteA(struct ExtSprite * ss, CONST struct TagItem * tags) (a2,a1)
==varargs
-LONG GetExtSprite(struct ExtSprite * ss, ULONG tags, ...) (a2,a1)
+LONG GetExtSprite(struct ExtSprite * ss, Tag tags, ...) (a2,a1)
ULONG CoerceMode(struct ViewPort * vp, ULONG monitorid, ULONG flags) (a0,d0,d1)
VOID ChangeVPBitMap(struct ViewPort * vp, struct BitMap * bm, struct DBufInfo * db) (a0,a1,a2)
VOID ReleasePen(struct ColorMap * cm, ULONG n) (a0,d0)
ULONG ObtainPen(struct ColorMap * cm, ULONG n, ULONG r, ULONG g, ULONG b, LONG f) (a0,d0,d1,d2,d3,d4)
-ULONG GetBitMapAttr(const struct BitMap * bm, ULONG attrnum) (a0,d1)
+ULONG GetBitMapAttr(CONST struct BitMap * bm, ULONG attrnum) (a0,d1)
struct DBufInfo * AllocDBufInfo(struct ViewPort * vp) (a0)
VOID FreeDBufInfo(struct DBufInfo * dbi) (a1)
ULONG SetOutlinePen(struct RastPort * rp, ULONG pen) (a0,d0)
ULONG SetWriteMask(struct RastPort * rp, ULONG msk) (a0,d0)
VOID SetMaxPen(struct RastPort * rp, ULONG maxpen) (a0,d0)
VOID SetRGB32CM(struct ColorMap * cm, ULONG n, ULONG r, ULONG g, ULONG b) (a0,d0,d1,d2,d3)
-VOID ScrollRasterBF(struct RastPort * rp, WORD dx, WORD dy, WORD xMin, WORD yMin, WORD xMax,
- WORD yMax) (a1,d0,d1,d2,d3,d4,d5)
+VOID ScrollRasterBF(struct RastPort * rp, LONG dx, LONG dy, LONG xMin, LONG yMin, LONG xMax, LONG yMax) (a1,d0,d1,d2,d3,d4,d5)
LONG FindColor(struct ColorMap * cm, ULONG r, ULONG g, ULONG b, LONG maxcolor) (a3,d1,d2,d3,d4)
==reserve 1
-struct ExtSprite * AllocSpriteDataA(const struct BitMap * bm, const struct TagItem * tags) (a2,a1)
+struct ExtSprite * AllocSpriteDataA(CONST struct BitMap * bm, CONST struct TagItem * tags) (a2,a1)
==varargs
-struct ExtSprite * AllocSpriteData(const struct BitMap * bm, ULONG tags, ...) (a2,a1)
-LONG ChangeExtSpriteA(struct ViewPort * vp, struct ExtSprite * oldsprite,
- struct ExtSprite * newsprite, const struct TagItem * tags) (a0,a1,a2,a3)
+struct ExtSprite * AllocSpriteData(CONST struct BitMap * bm, Tag tags, ...) (a2,a1)
+LONG ChangeExtSpriteA(struct ViewPort * vp, struct ExtSprite * oldsprite, struct ExtSprite * newsprite, CONST struct TagItem * tags) (a0,a1,a2,a3)
==varargs
-LONG ChangeExtSprite(struct ViewPort * vp, struct ExtSprite * oldsprite,
- struct ExtSprite * newsprite, ULONG tags, ...) (a0,a1,a2,a3)
+LONG ChangeExtSprite(struct ViewPort * vp, struct ExtSprite * oldsprite, struct ExtSprite * newsprite, Tag tags, ...) (a0,a1,a2,a3)
VOID FreeSpriteData(struct ExtSprite * sp) (a2)
-VOID SetRPAttrsA(struct RastPort * rp, const struct TagItem * tags) (a0,a1)
+VOID SetRPAttrsA(struct RastPort * rp, CONST struct TagItem * tags) (a0,a1)
==varargs
-VOID SetRPAttrs(struct RastPort * rp, ULONG tags, ...) (a0,a1)
-VOID GetRPAttrsA(const struct RastPort * rp, const struct TagItem * tags) (a0,a1)
+VOID SetRPAttrs(struct RastPort * rp, Tag tags, ...) (a0,a1)
+VOID GetRPAttrsA(CONST struct RastPort * rp, CONST struct TagItem * tags) (a0,a1)
==varargs
-VOID GetRPAttrs(const struct RastPort * rp, ULONG tags, ...) (a0,a1)
-ULONG BestModeIDA(const struct TagItem * tags) (a0)
+VOID GetRPAttrs(CONST struct RastPort * rp, Tag tags, ...) (a0,a1)
+ULONG BestModeIDA(CONST struct TagItem * tags) (a0)
==varargs
-ULONG BestModeID(ULONG tags, ...) (a0)
+ULONG BestModeID(Tag tags, ...) (a0)
==version 40
-VOID WriteChunkyPixels(struct RastPort * rp, UWORD xstart, UWORD ystart, UWORD xstop,
- UWORD ystop, const UBYTE * array, LONG bytesperrow) (a0,d0,d1,d2,d3,a2,d4)
+VOID WriteChunkyPixels(struct RastPort * rp, ULONG xstart, ULONG ystart, ULONG xstop, ULONG ystop, CONST UBYTE * array, LONG bytesperrow) (a0,d0,d1,d2,d3,a2,d4)
==end