summaryrefslogtreecommitdiff
path: root/packages/libndsfpc
diff options
context:
space:
mode:
authorLegolas <Legolas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-03-02 21:56:41 +0000
committerLegolas <Legolas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-03-02 21:56:41 +0000
commitce9ef74af67cd88e00a4f7ad6cf66e30aa4eb614 (patch)
tree2b48cabb0c8fe2fb13f2c5c10aaadede74f19c90 /packages/libndsfpc
parent632796e5e32cb8b33d78a11dac44dfc28639fffd (diff)
downloadfpc-ce9ef74af67cd88e00a4f7ad6cf66e30aa4eb614.tar.gz
* Updated NDS and GBA to devkitARM r28
* Updated libnds to 1.4.1 * Fixed NDS rtl according with last string handling changes * Fixed nds audio examples git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14967 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/libndsfpc')
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile48
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc2
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp5
-rw-r--r--packages/libndsfpc/src/dswifi/inc/dswifi_version.inc4
-rw-r--r--packages/libndsfpc/src/nds/arm9/exceptions.inc6
-rw-r--r--packages/libndsfpc/src/nds/arm9/input.inc20
-rw-r--r--packages/libndsfpc/src/nds/arm9/sprite.inc2
-rw-r--r--packages/libndsfpc/src/nds/arm9/video.inc63
-rw-r--r--packages/libndsfpc/src/nds/interrupts.inc39
-rw-r--r--packages/libndsfpc/src/nds/nds.inc9
-rw-r--r--packages/libndsfpc/src/nds/ndsinclude.inc4
-rw-r--r--packages/libndsfpc/src/nds/ndstypes.inc2
-rw-r--r--packages/libndsfpc/src/nds/system.inc16
13 files changed, 151 insertions, 69 deletions
diff --git a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
index 0ca6781bbf..70101c7eb5 100644
--- a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
@@ -1,11 +1,10 @@
#
-<<<<<<< .mine# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/04/02]
-=======# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/09/29]
->>>>>>> .theirs#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/12/24]
+#
default: all
MAKEFILETARGETS=arm-nds
BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
+UNIXs = linux $(BSDs) solaris qnx haiku
LIMIT83fs = go32v2 os2 emx watcom
OSNeedsComspecToRunBatch = go32v2 watcom
FORCE:
@@ -60,9 +59,11 @@ endif
endif
ifdef COMSPEC
ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+ifndef RUNBATCH
RUNBATCH=$(COMSPEC) /C
endif
endif
+endif
ifdef inUnix
PATHSEP=/
else
@@ -174,6 +175,17 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(CPU_TARGET),armeb)
+ARCH=arm
+override FPCOPT+=-Cb
+else
+ifeq ($(CPU_TARGET),armel)
+ARCH=arm
+override FPCOPT+=-CaEABI
+else
+ARCH=$(CPU_TARGET)
+endif
+endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -195,7 +207,7 @@ endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
@@ -267,7 +279,7 @@ ifeq ($(FULL_TARGET),arm-nds)
override CLEAN_UNITS+=*
endif
ifeq ($(FULL_TARGET),arm-nds)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
@@ -488,6 +500,7 @@ endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
@@ -495,6 +508,7 @@ OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
SHORTSUFFIX=wat
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@@ -531,6 +545,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
@@ -539,6 +554,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=emx
ECHO=echo
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@@ -559,6 +575,11 @@ BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=be
endif
+ifeq ($(OS_TARGET),haiku)
+BATCHEXT=.sh
+EXEEXT=
+SHORTSUFFIX=hai
+endif
ifeq ($(OS_TARGET),solaris)
BATCHEXT=.sh
EXEEXT=
@@ -573,17 +594,20 @@ ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nw
+IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nwl
+IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
+IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
@@ -610,14 +634,17 @@ STATICLIBEXT=.a1
SHAREDLIBEXT=.so1
STATICLIBPREFIX=
SHORTSUFFIX=v1
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
SHORTSUFFIX=wat
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@@ -664,6 +691,7 @@ STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
+IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@@ -724,6 +752,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nw
+IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
STATICLIBPREFIX=
@@ -735,6 +764,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nwl
+IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
@@ -746,6 +776,7 @@ STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
+IMPORTLIBPREFIX=imp
endif
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
@@ -1048,13 +1079,13 @@ override COMPILER_UNITDIR+=$(UNITDIR_LIBNDSFPC)
endif
endif
ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
+override FPCOPTDEF=$(ARCH)
endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET)
endif
ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
+override FPCOPT+=-P$(ARCH)
endif
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
@@ -1617,7 +1648,6 @@ include fpcmake.loc
endif
.NOTPARALLEL:
all: direc fpc_all
-direc:
ifneq ($(BUILD), $(CURDIR))
$(MKDIR) $(BUILD)
endif
diff --git a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
index 497065f320..24eb0016a1 100644
--- a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
@@ -32,8 +32,6 @@ GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
[rules]
.NOTPARALLEL:
all: direc fpc_all
-<<<<<<< .mine=======
->>>>>>> .theirsdirec:
ifneq ($(BUILD), $(CURDIR))
$(MKDIR) $(BUILD)
endif
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp
index fa1db5dd14..293cdc04d4 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp
@@ -37,9 +37,8 @@ var
sprites: array[0..4] of MySprite;
-<<<<<<< .minefunction myEventHandler(msg, param: mm_word): mm_word;
-=======function myEventHandler(msg, param: mm_word): pmm_word;
->>>>>>> .theirsbegin
+function myEventHandler(msg, param: mm_word): mm_word;
+begin
case msg of
MMCB_SONGMESSAGE: // process song messages
begin
diff --git a/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc b/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
index feed113dee..1c054c0f0c 100644
--- a/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
+++ b/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
@@ -2,6 +2,6 @@
const
DSWIFI_MAJOR = 0;
DSWIFI_MINOR = 3;
- DSWIFI_REVISION = 11;
- DSWIFI_VERSION = '0.3.11';
+ DSWIFI_REVISION = 12;
+ DSWIFI_VERSION = '0.3.12';
{$endif NDS_INTERFACE}
diff --git a/packages/libndsfpc/src/nds/arm9/exceptions.inc b/packages/libndsfpc/src/nds/arm9/exceptions.inc
index 3bd8f4d2e2..40d5517c5a 100644
--- a/packages/libndsfpc/src/nds/arm9/exceptions.inc
+++ b/packages/libndsfpc/src/nds/arm9/exceptions.inc
@@ -40,15 +40,15 @@
{$ifdef NDS_INTERFACE}
const
- EXCEPTION_VECTOR : ^VoidFunctionPointer = pointer($2FFFD9C);
+ EXCEPTION_VECTOR : ^VoidFn = pointer($2FFFD9C);
var
- exceptionC: ^VoidFunctionPointer; cvar; external;
+ exceptionC: ^VoidFn; cvar; external;
exceptionStack: cuint32; cvar; external;
exceptionRegisters: pcint32; cvar; external;
procedure enterException(); cdecl; external;
-procedure setExceptionHandler(handler: VoidFunctionPointer); cdecl; external;
+procedure setExceptionHandler(handler: VoidFn); cdecl; external;
procedure defaultExceptionHandler(); cdecl; external;
function getCPSR(): cuint32; cdecl; external;
diff --git a/packages/libndsfpc/src/nds/arm9/input.inc b/packages/libndsfpc/src/nds/arm9/input.inc
index 5a35b8c010..3b224c7ef9 100644
--- a/packages/libndsfpc/src/nds/arm9/input.inc
+++ b/packages/libndsfpc/src/nds/arm9/input.inc
@@ -39,26 +39,6 @@
*)
{$ifdef NDS_INTERFACE}
-// Keyboard
-type
- KEYPAD_BITS = cint;
-const
-//! Bit values for the keypad buttons.
- KEY_A : KEYPAD_BITS = (1 shl 0); // Keypad A button.
- KEY_B : KEYPAD_BITS = (1 shl 1); // Keypad B button.
- KEY_SELECT : KEYPAD_BITS = (1 shl 2); // Keypad SELECT button.
- KEY_START : KEYPAD_BITS = (1 shl 3); // Keypad START button.
- KEY_RIGHT : KEYPAD_BITS = (1 shl 4); // Keypad RIGHT button.
- KEY_LEFT : KEYPAD_BITS = (1 shl 5); // Keypad LEFT button.
- KEY_UP : KEYPAD_BITS = (1 shl 6); // Keypad UP button.
- KEY_DOWN : KEYPAD_BITS = (1 shl 7); // Keypad DOWN button.
- KEY_R : KEYPAD_BITS = (1 shl 8); // Right shoulder button.
- KEY_L : KEYPAD_BITS = (1 shl 9); // Left shoulder button.
- KEY_X : KEYPAD_BITS = (1 shl 10); // Keypad X button.
- KEY_Y : KEYPAD_BITS = (1 shl 11); // Keypad Y button.
- KEY_TOUCH : KEYPAD_BITS = (1 shl 12); // Touchscreen pendown.
- KEY_LID : KEYPAD_BITS = (1 shl 13); // Lid state.
-
procedure scanKeys(); cdecl; external;
diff --git a/packages/libndsfpc/src/nds/arm9/sprite.inc b/packages/libndsfpc/src/nds/arm9/sprite.inc
index 79eb8df2a9..dcd6ccec60 100644
--- a/packages/libndsfpc/src/nds/arm9/sprite.inc
+++ b/packages/libndsfpc/src/nds/arm9/sprite.inc
@@ -315,7 +315,7 @@ procedure oamAffineTransformation(var oam: OamState; rotId, hdx, hdy, vdx, vdy:
function oamCountFragments(var oam: OamState): cint; cdecl; external;
procedure oamAllocReset(var oam: OamState); cdecl; external;
-function oamGfxPtrToOffset(const offset: pointer): cuint; cdecl; external;
+function oamGfxPtrToOffset(var oam: OamState; const offset: pointer): cuint; cdecl; external;
{$endif NDS_INTERFACE}
{$ifdef NDS_IMPLEMENTATION}
diff --git a/packages/libndsfpc/src/nds/arm9/video.inc b/packages/libndsfpc/src/nds/arm9/video.inc
index f8ff9565dc..8850c7cacd 100644
--- a/packages/libndsfpc/src/nds/arm9/video.inc
+++ b/packages/libndsfpc/src/nds/arm9/video.inc
@@ -256,15 +256,15 @@ var
function vramSetMainBanks(a: VRAM_A_TYPE; b: VRAM_B_TYPE; c: VRAM_C_TYPE; d: VRAM_D_TYPE): cuint32; cdecl; external;
procedure vramRestoreMainBanks(vramTemp: cuint32); cdecl; external;
-procedure vramSetBankA(a: VRAM_A_TYPE); cdecl; external;
-procedure vramSetBankB(b: VRAM_B_TYPE); cdecl; external;
-procedure vramSetBankC(c: VRAM_C_TYPE); cdecl; external;
-procedure vramSetBankD(d: VRAM_D_TYPE); cdecl; external;
-procedure vramSetBankE(e: VRAM_E_TYPE); cdecl; external;
-procedure vramSetBankF(f: VRAM_F_TYPE); cdecl; external;
-procedure vramSetBankG(g: VRAM_G_TYPE); cdecl; external;
-procedure vramSetBankH(h: VRAM_H_TYPE); cdecl; external;
-procedure vramSetBankI(i: VRAM_I_TYPE); cdecl; external;
+procedure vramSetBankA(a: VRAM_A_TYPE); inline;
+procedure vramSetBankB(b: VRAM_B_TYPE); inline;
+procedure vramSetBankC(c: VRAM_C_TYPE); inline;
+procedure vramSetBankD(d: VRAM_D_TYPE); inline;
+procedure vramSetBankE(e: VRAM_E_TYPE); inline;
+procedure vramSetBankF(f: VRAM_F_TYPE); inline;
+procedure vramSetBankG(g: VRAM_G_TYPE); inline;
+procedure vramSetBankH(h: VRAM_H_TYPE); inline;
+procedure vramSetBankI(i: VRAM_I_TYPE); inline;
const
REG_DISPCNT : pcuint32 = pointer($04000000);
@@ -628,4 +628,49 @@ begin
GFX_BUSY := GFX_STATUS^ and (1 shl 27) <> 0;
end;
+procedure vramSetBankA(a: VRAM_A_TYPE); inline;
+begin
+ VRAM_A_CR^ := VRAM_ENABLE or a;
+end;
+
+procedure vramSetBankB(b: VRAM_B_TYPE); inline;
+begin
+ VRAM_B_CR^ := VRAM_ENABLE or b;
+end;
+
+procedure vramSetBankC(c: VRAM_C_TYPE); inline;
+begin
+ VRAM_C_CR^ := VRAM_ENABLE or c;
+end;
+
+procedure vramSetBankD(d: VRAM_D_TYPE); inline;
+begin
+ VRAM_D_CR^ := VRAM_ENABLE or d;
+end;
+
+procedure vramSetBankE(e: VRAM_E_TYPE); inline;
+begin
+ VRAM_E_CR^ := VRAM_ENABLE or e;
+end;
+
+procedure vramSetBankF(f: VRAM_F_TYPE); inline;
+begin
+ VRAM_F_CR^ := VRAM_ENABLE or f;
+end;
+
+procedure vramSetBankG(g: VRAM_G_TYPE); inline;
+begin
+ VRAM_G_CR^ := VRAM_ENABLE or g;
+end;
+
+procedure vramSetBankH(h: VRAM_H_TYPE); inline;
+begin
+ VRAM_H_CR^ := VRAM_ENABLE or h;
+end;
+
+procedure vramSetBankI(i: VRAM_I_TYPE); inline;
+begin
+ VRAM_I_CR^ := VRAM_ENABLE or i;
+end;
+
{$endif NDS_IMPLEMENTATION}
diff --git a/packages/libndsfpc/src/nds/interrupts.inc b/packages/libndsfpc/src/nds/interrupts.inc
index 4863929f1c..3f969f6e99 100644
--- a/packages/libndsfpc/src/nds/interrupts.inc
+++ b/packages/libndsfpc/src/nds/interrupts.inc
@@ -60,15 +60,20 @@ const
IRQ_IPC_SYNC : IRQ_MASK = (1 shl 16); (* IPC sync interrupt mask *)
IRQ_FIFO_EMPTY : IRQ_MASK = (1 shl 17); (* Send FIFO empty interrupt mask *)
IRQ_FIFO_NOT_EMPTY : IRQ_MASK = (1 shl 18); (* Receive FIFO empty interrupt mask *)
- IRQ_CARD : IRQ_MASK = (1 shl 19); (* interrupt mask *)
+ IRQ_CARD : IRQ_MASK = (1 shl 19); (* interrupt mask DS Card Slot *)
IRQ_CARD_LINE : IRQ_MASK = (1 shl 20); (* interrupt mask *)
IRQ_GEOMETRY_FIFO : IRQ_MASK = (1 shl 21); (* geometry FIFO interrupt mask *)
- IRQ_LID : IRQ_MASK = (1 shl 22); (* interrupt mask *)
+ IRQ_LID : IRQ_MASK = (1 shl 22); (* interrupt mask hinge *)
IRQ_SPI : IRQ_MASK = (1 shl 23); (* SPI interrupt mask *)
IRQ_WIFI : IRQ_MASK = (1 shl 24); (* WIFI interrupt mask (ARM7)*)
IRQ_ALL : IRQ_MASK = (not 0); //$FFFFFF ?
+type
+ IRQ_MASKSAUX = cuint;
+const
+ IRQ_POWER: IRQ_MASKSAUX = (1 shl 6); (* Power Button interrupt mask (DSi ARM7) *)
+
function IRQ_TIMER(n: cint): cint; inline;
const
@@ -77,9 +82,11 @@ const
const
- REG_IE : pcuint32 = pointer($04000210);
- REG_IF : pcuint32 = pointer($04000214);
- REG_IME : pcuint16 = pointer($04000208);
+ REG_IE : pcuint32 = pointer($04000210);
+ REG_AUXIE: pcuint32 = pointer($04000218);
+ REG_IF : pcuint32 = pointer($04000214);
+ REG_AUXIF: pcuint32 = pointer($0400021C);
+ REG_IME : pcuint32 = pointer($04000208);
type
IME_VALUE = integer;
@@ -89,7 +96,7 @@ const
type
- TVoidFunctionPointer = procedure of object;
+ TVoidFn = procedure of object;
var
// __irq_vector: array [0..0] of VoidFunctionPointer; cvar; external;
@@ -102,10 +109,11 @@ var
/// __irq_flags: pcuint32; cvar; external;
__irq_vector: Pointer; external name '__irq_vector';
__irq_flags: pcuint32; external name '__irq_flags';
+ __irq_flagsaux: pcuint32; external name '__irq_flagsaux';
-
-{$define VBLANK_INTR_WAIT_FLAGS := __irq_flags}
+{$define INTR_WAIT_FLAGS := __irq_flags}
+{$define INTR_WAIT_FLAGSAUX := __irq_flagsaux}
{$define IRQ_HANDLER := __irq_vector}
type
@@ -115,15 +123,20 @@ type
end;
procedure irqInit(); cdecl; external;
-procedure irqSet(irq: IRQ_MASK; handler: TVoidFunctionPointer); cdecl; external;
-procedure irqSet(irq: IRQ_MASK; handler: pointer); cdecl; external;
-procedure irqClear(irq: IRQ_MASK); cdecl; external;
-procedure irqInitHandler(handler: TVoidFunctionPointer); cdecl; external;
+procedure irqSet(irq: cuint32; handler: TVoidFn); cdecl; external;
+procedure irqSet(irq: cuint32; handler: pointer); cdecl; external;
+procedure irqSetAUX(irq: cuint32; handler: TVoidFn); cdecl; external;
+procedure irqSetAUX(irq: cuint32; handler: pointer); cdecl; external;
+procedure irqClear(irq: cuint32); cdecl; external;
+procedure irqClearAUX(irq: cuint32); cdecl; external;
+procedure irqInitHandler(handler: TVoidFn); cdecl; external;
procedure irqInitHandler(handler: pointer); cdecl; external;
procedure irqEnable(irq: cuint32); cdecl; external;
+procedure irqEnableAUX(irq: cuint32); cdecl; external;
procedure irqDisable(irq: cuint32); cdecl; external;
+procedure irqDisableAUX(irq: cuint32); cdecl; external;
-procedure swiIntrWait(waitForSet: cint; flags: cuint32); cdecl; external;
+procedure swiIntrWait(waitForSet: cuint32; flags: cuint32); cdecl; external;
procedure swiWaitForVBlank(); cdecl; external;
function enterCriticalSection(): cint; inline;
procedure leaveCriticalSection(oldIME: cint); inline;
diff --git a/packages/libndsfpc/src/nds/nds.inc b/packages/libndsfpc/src/nds/nds.inc
index 61ace700b0..a336420c10 100644
--- a/packages/libndsfpc/src/nds/nds.inc
+++ b/packages/libndsfpc/src/nds/nds.inc
@@ -78,31 +78,35 @@
{$include jtypes.inc}
{$include bios.inc}
{$include card.inc}
+{$include debug.inc} // testing...
{$include dma.inc}
{$include interrupts.inc}
{$include ipc.inc}
{$include memory.inc}
{$include system.inc}
{$include timers.inc}
+{$include fifocommon.inc} // testing...
+{$include touch.inc} // testing...
+{$include input.inc} // testing...
{$ifdef ARM9}
{$include arm9/background.inc}
{$include arm9/boxtest.inc}
{$include arm9/cache.inc}
{$include arm9/console.inc}
+ {$include arm9/keyboard.inc} // testing...
{$include arm9/exceptions.inc}
{$include arm9/image.inc}
{$include arm9/input.inc}
{$include arm9/math.inc}
{$include arm9/pcx.inc}
- { $include nds/arm9/postest.inc} // da rimuovere
{$include arm9/rumble.inc}
{$include arm9/sound.inc}
{$include arm9/trig_lut.inc}
- {$include arm9/ndsmotion.inc}
{$include arm9/video.inc}
{$include arm9/videoGL.inc}
{$include arm9/sprite.inc}
+ {$include arm9/decompress.inc} // testing...
{$endif ARM9}
{$ifdef ARM7}
@@ -110,6 +114,7 @@
{$include arm7/clock.inc}
{$include arm7/serial.inc}
{$include arm7/touch.inc}
+ {$include arm7/input.inc} // testing...
{$endif ARM7}
{$ifdef ARM7}
diff --git a/packages/libndsfpc/src/nds/ndsinclude.inc b/packages/libndsfpc/src/nds/ndsinclude.inc
index 2a244917c2..5ea21f476a 100644
--- a/packages/libndsfpc/src/nds/ndsinclude.inc
+++ b/packages/libndsfpc/src/nds/ndsinclude.inc
@@ -13,7 +13,8 @@
{$include fifocommon.inc}
{$include system.inc}
{$include timers.inc}
-{$include fifomessages.inc}
+{$include fifomessages.inc}
+{$include input.inc} // testing...
{$include linkedlist.inc}
{$include dynamicArray.inc}
@@ -46,6 +47,5 @@
{$include arm7/clock.inc}
{$include arm7/input.inc}
{$include arm7/serial.inc}
- { $include arm7/system.inc}
{$include arm7/touch.inc}
{$endif ARM7}
diff --git a/packages/libndsfpc/src/nds/ndstypes.inc b/packages/libndsfpc/src/nds/ndstypes.inc
index 7543381245..1d0365014c 100644
--- a/packages/libndsfpc/src/nds/ndstypes.inc
+++ b/packages/libndsfpc/src/nds/ndstypes.inc
@@ -139,7 +139,7 @@ typedef volatile s64 vs64;
//IntFn = function: pointer;
- VoidFunctionPointer = function: pointer; cdecl;
+ VoidFn = function: pointer; cdecl;
//fp = function: pointer;
IntFn = procedure;
diff --git a/packages/libndsfpc/src/nds/system.inc b/packages/libndsfpc/src/nds/system.inc
index 3ba1e11c37..9bcde59b59 100644
--- a/packages/libndsfpc/src/nds/system.inc
+++ b/packages/libndsfpc/src/nds/system.inc
@@ -198,8 +198,6 @@ type
PPERSONAL_DATA = ^tPERSONAL_DATA;
const
- REG_KEYINPUT : pcuint16 = pointer($04000130);
- REG_KEYCNT : pcuint16 = pointer($04000132);
PersonalData : PPERSONAL_DATA = pointer($2FFFC80);
@@ -218,6 +216,15 @@ type
const
__system_argv: Pargv = pointer($02FFFE70);
ARGV_MAGIC = $5f617267;
+ BOOTSIG = $62757473746F6F62; // ULL?
+
+type
+ __bootstub = packed record // packed ?
+ bootsig: cuint64;
+ arm9reboot: VoidFn;
+ arm7reboot: VoidFn;
+ bootsize: cuint32;
+ end;
type
@@ -236,8 +243,13 @@ type
{$ifdef ARM9}
procedure memCached(address: pointer); cdecl; external;
procedure memUncached(address: pointer); cdecl; external;
+procedure resetARM7(address: cuint32); cdecl; external;
{$endif ARM9}
+{$ifdef ARM7}
+procedure resetARM9(address: cuint32); cdecl; external;
+{$endif ARM7}
+
{$endif NDS_INTERFACE}