* Updated to devkitARM r27 and libnds 1.4.0

git-svn-id: trunk@14344 -
This commit is contained in:
Legolas 2009-12-06 19:37:58 +00:00
parent 7547bbb59c
commit ec841a86f5
25 changed files with 430 additions and 2454 deletions

2
.gitattributes vendored
View File

@ -6269,6 +6269,8 @@ rtl/gba/cprt0.as svneol=native#text/plain
rtl/gba/dos.pp svneol=native#text/plain rtl/gba/dos.pp svneol=native#text/plain
rtl/gba/gbabios.inc svneol=native#text/plain rtl/gba/gbabios.inc svneol=native#text/plain
rtl/gba/gbabiosh.inc svneol=native#text/plain rtl/gba/gbabiosh.inc svneol=native#text/plain
rtl/gba/libc.inc svneol=native#text/plain
rtl/gba/libch.inc svneol=native#text/plain
rtl/gba/prt0.as svneol=native#text/plain rtl/gba/prt0.as svneol=native#text/plain
rtl/gba/sysdir.inc svneol=native#text/plain rtl/gba/sysdir.inc svneol=native#text/plain
rtl/gba/sysfile.inc svneol=native#text/plain rtl/gba/sysfile.inc svneol=native#text/plain

View File

@ -3,13 +3,12 @@
# #
[package] [package]
name=libgbafpc version=2.4.0
version=2.5.1
[target] [target]
loaders=core_asm loaders=core_asm
units=gba maxmod units=gba maxmod
exampledirs=examples #exampledirs=examples
[compiler] [compiler]

View File

@ -48,7 +48,7 @@
{$ifdef GBA_INTERFACE} {$ifdef GBA_INTERFACE}
{$H+} {$H+}
(*
procedure memset16(dest: pointer; hw: word; hwcount: dword); cdecl; external; procedure memset16(dest: pointer; hw: word; hwcount: dword); cdecl; external;
procedure memcpy16(dest: pointer; const src: pointer; hwcount: dword); cdecl; external; procedure memcpy16(dest: pointer; const src: pointer; hwcount: dword); cdecl; external;
@ -71,7 +71,7 @@ function realloc(ptr: pointer; size: integer): pointer; cdecl; external;
procedure free(ptr: pointer); cdecl; external; procedure free(ptr: pointer); cdecl; external;
function memcpy(dest: pointer; src: pointer; n: integer): pointer; cdecl; external; function memcpy(dest: pointer; src: pointer; n: integer): pointer; cdecl; external;
(* libc file handling types and routines *)
type type
_FILE = record _FILE = record
firstCluster: cuint; firstCluster: cuint;
@ -105,7 +105,6 @@ function ftell(stream: P_FILE): longint; cdecl; external;
function fseek(stream: P_FILE; off: longint; whence: longint): longint; cdecl; external; function fseek(stream: P_FILE; off: longint; whence: longint): longint; cdecl; external;
function fclose(stream: P_FILE): longint; cdecl; external; function fclose(stream: P_FILE): longint; cdecl; external;
(* Directory iterator for mantaining state between dir* calls *)
type type
DIR_ITER = record DIR_ITER = record
device: cint; device: cint;
@ -160,7 +159,7 @@ function diropen(const path: pchar): PDIR_ITER; cdecl; external;
function dirreset(dirState: PDIR_ITER): cint; cdecl; external; function dirreset(dirState: PDIR_ITER): cint; cdecl; external;
function dirnext(dirState: PDIR_ITER; filename: pchar; filestat: Pstat): cint; cdecl; external; function dirnext(dirState: PDIR_ITER; filename: pchar; filestat: Pstat): cint; cdecl; external;
function dirclose(dirState: PDIR_ITER): cint; cdecl; external; function dirclose(dirState: PDIR_ITER): cint; cdecl; external;
*)
procedure DebugPrint(s: string); assembler; inline; procedure DebugPrint(s: string); assembler; inline;
function GBAIntToStr(i: integer): string; function GBAIntToStr(i: integer): string;

View File

@ -49,7 +49,7 @@ type
IntTable = record IntTable = record
handler: IntFn; handler: IntFn;
mask: u32; mask: cuint32;
end; end;
PIntTable = ^IntTable; PIntTable = ^IntTable;

File diff suppressed because it is too large Load Diff

View File

@ -20,9 +20,8 @@ target=nds
fpcdir=../../../../../.. fpcdir=../../../../../..
[clean] [clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \ files=*.elf *.o *.s *.nds *.nef *.h *.bin \
$(BUILD)/* \ $(BUILD)/*
$(INC)/*
units=* units=*
[prerules] [prerules]
@ -32,17 +31,9 @@ GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
[rules] [rules]
.NOTPARALLEL: .NOTPARALLEL:
clean: dir_delete fpc_clean fpc_cleanall
all: direc fpc_all all: direc fpc_all
<<<<<<< .mine=======
# >>>>>>> .theirsdirec:
# Delete temp directories
#
dir_delete:
@$(DELTREE) $(CURDIR)/$(BUILD)
@$(DELTREE) $(CURDIR)/$(INC)
direc:
ifneq ($(BUILD), $(CURDIR)) ifneq ($(BUILD), $(CURDIR))
$(MKDIR) $(BUILD) $(MKDIR) $(BUILD)
endif endif

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@ target=nds
fpcdir=../../../../../.. fpcdir=../../../../../..
[compiler] [compiler]
options=-g -O2 -d__THUMB__ options=-g -O2
[clean] [clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin \ files=*.elf *.o *.s *.nds *.nef *.h *.bin \

View File

@ -37,8 +37,9 @@ var
sprites: array[0..4] of MySprite; sprites: array[0..4] of MySprite;
function myEventHandler(msg, param: mm_word): mm_callback; <<<<<<< .minefunction myEventHandler(msg, param: mm_word): mm_word;
begin =======function myEventHandler(msg, param: mm_word): pmm_word;
>>>>>>> .theirsbegin
case msg of case msg of
MMCB_SONGMESSAGE: // process song messages MMCB_SONGMESSAGE: // process song messages
begin begin
@ -50,7 +51,7 @@ begin
end; end;
MMCB_SONGFINISHED:; // process song finish message (only triggered in songs played with MM_PLAY_ONCE) MMCB_SONGFINISHED:; // process song finish message (only triggered in songs played with MM_PLAY_ONCE)
end; end;
result := nil; result := 0;
end; end;

View File

@ -16,7 +16,7 @@ begin
defaultExceptionHandler(); defaultExceptionHandler();
// generate an exception // generate an exception
pu32(250)^ := 100; pu32(8192)^ := 100;
while true do while true do
swiWaitForVBlank(); swiWaitForVBlank();

View File

@ -2,6 +2,6 @@
const const
DSWIFI_MAJOR = 0; DSWIFI_MAJOR = 0;
DSWIFI_MINOR = 3; DSWIFI_MINOR = 3;
DSWIFI_REVISION = 6; DSWIFI_REVISION = 11;
DSWIFI_VERSION = '0.3.6'; DSWIFI_VERSION = '0.3.11';
{$endif NDS_INTERFACE} {$endif NDS_INTERFACE}

View File

@ -41,7 +41,7 @@
function fatInit(cacheSize: cuint32; setAsDefaultDevice: cbool): cbool; cdecl; external; function fatInit(cacheSize: cuint32; setAsDefaultDevice: cbool): cbool; cdecl; external;
function fatInitDefault(): cbool; cdecl; external; function fatInitDefault(): cbool; cdecl; external;
function fatMountSimple (const name: pcchar; const ainterface: PDISC_INTERFACE): cbool; cdecl; external; function fatMountSimple (const name: pcchar; const ainterface: PDISC_INTERFACE): cbool; cdecl; external;
function fatMount (const name: pcchar; const ainterface: PDISC_INTERFACE; startSector, cacheSize: cuint32): cbool; cdecl; external; function fatMount (const name: pcchar; const ainterface: PDISC_INTERFACE; startSector, cacheSize, SectorsPerPage: cuint32): cbool; cdecl; external;
function fatUnmount(const name: pcchar): cbool; cdecl; external; function fatUnmount(const name: pcchar): cbool; cdecl; external;
{$endif NDS_INTERFACE} {$endif NDS_INTERFACE}

View File

@ -40,7 +40,7 @@
{$ifdef NDS_INTERFACE} {$ifdef NDS_INTERFACE}
const const
EXCEPTION_VECTOR : ^VoidFunctionPointer = pointer($27FFD9C); EXCEPTION_VECTOR : ^VoidFunctionPointer = pointer($2FFFD9C);
var var
exceptionC: ^VoidFunctionPointer; cvar; external; exceptionC: ^VoidFunctionPointer; cvar; external;

View File

@ -160,7 +160,7 @@ type
pNDSHeader = ^tNDSHeader; pNDSHeader = ^tNDSHeader;
const const
__NDSHeader : pNDSHeader = pointer($027FFE00); __NDSHeader : pNDSHeader = pointer($02FFFE00);
type type
@ -216,21 +216,19 @@ end;
// Changes all bus ownerships // Changes all bus ownerships
procedure sysSetBusOwners(arm9rom, arm9card: cbool); inline; procedure sysSetBusOwners(arm9rom, arm9card: cbool); inline;
var var
pattern: cuint16; val1, val2: cuint;
a9r, a9c: cint;
begin begin
pattern := REG_EXMEMCNT^ and not (ARM7_OWNS_CARD or ARM7_OWNS_ROM); val1 := 0;
if arm9card then val2 := 0;
a9c := 0 if not arm9card then
else val1 := ARM7_OWNS_CARD;
a9c := ARM7_OWNS_CARD;
if arm9rom then
a9r := 0
else
a9r := ARM7_OWNS_ROM;
pattern := pattern or (a9c) or (a9r); if not arm9rom then
REG_EXMEMCNT^ := pattern; val2 := ARM7_OWNS_ROM ;
REG_EXMEMCNT^ := (REG_EXMEMCNT^ and not(ARM7_OWNS_CARD or ARM7_OWNS_ROM)) or val1 or val2;
end; end;
{$endif NDS_IMPLEMENTATION} {$endif NDS_IMPLEMENTATION}
{$endif ARM9} {$endif ARM9}

View File

@ -200,7 +200,7 @@ type
const const
REG_KEYINPUT : pcuint16 = pointer($04000130); REG_KEYINPUT : pcuint16 = pointer($04000130);
REG_KEYCNT : pcuint16 = pointer($04000132); REG_KEYCNT : pcuint16 = pointer($04000132);
PersonalData : PPERSONAL_DATA = pointer($27FFC80); PersonalData : PPERSONAL_DATA = pointer($2FFFC80);
type type
@ -216,7 +216,7 @@ type
Pargv = ^Targv; Pargv = ^Targv;
const const
__system_argv: Pargv = pointer($027FFF70); __system_argv: Pargv = pointer($02FFFE70);
ARGV_MAGIC = $5f617267; ARGV_MAGIC = $5f617267;
@ -232,6 +232,13 @@ type
padding: cuint8; padding: cuint8;
end; end;
{$ifdef ARM9}
procedure memCached(address: pointer); cdecl; external;
procedure memUncached(address: pointer); cdecl; external;
{$endif ARM9}
{$endif NDS_INTERFACE} {$endif NDS_INTERFACE}
{$ifdef NDS_IMPLEMENTATION} {$ifdef NDS_IMPLEMENTATION}

View File

@ -1,8 +1,8 @@
# #
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/08/02] # Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/09/29]
# #
default: all default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
BSDs = freebsd netbsd openbsd darwin BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx UNIXs = linux $(BSDs) solaris qnx
LIMIT83fs = go32v2 os2 emx watcom LIMIT83fs = go32v2 os2 emx watcom
@ -59,11 +59,9 @@ endif
endif endif
ifdef COMSPEC ifdef COMSPEC
ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
ifndef RUNBATCH
RUNBATCH=$(COMSPEC) /C RUNBATCH=$(COMSPEC) /C
endif endif
endif endif
endif
ifdef inUnix ifdef inUnix
PATHSEP=/ PATHSEP=/
else else
@ -175,17 +173,6 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
endif endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) 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)),) ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET) TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE) SOURCESUFFIX=$(OS_SOURCE)
@ -207,7 +194,7 @@ endif
ifeq ($(OS_TARGET),linux) ifeq ($(OS_TARGET),linux)
linuxHier=1 linuxHier=1
endif endif
export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
ifdef FPCDIR ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR)) override FPCDIR:=$(subst \,/,$(FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
@ -274,185 +261,169 @@ COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET) PROCINC=$(RTL)/$(CPU_TARGET)
UNITPREFIX=rtl UNITPREFIX=rtl
SYSTEMUNIT=system SYSTEMUNIT=system
BINUTILSPREFIX=arm-eabi-
ifdef RELEASE ifdef RELEASE
override FPCOPT+=-Ur override FPCOPT+=-Ur
endif endif
OBJPASDIR=$(RTL)/objpas OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-go32v2) ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-win32) ifeq ($(FULL_TARGET),i386-win32)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-os2) ifeq ($(FULL_TARGET),i386-os2)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-freebsd) ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-beos) ifeq ($(FULL_TARGET),i386-beos)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-haiku)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl
endif endif
ifeq ($(FULL_TARGET),i386-netbsd) ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-solaris) ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-qnx) ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-netware) ifeq ($(FULL_TARGET),i386-netware)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-openbsd) ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-wdosx) ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-darwin) ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-emx) ifeq ($(FULL_TARGET),i386-emx)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-watcom) ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-netwlibc) ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-wince) ifeq ($(FULL_TARGET),i386-wince)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-embedded) ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),i386-symbian) ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-linux) ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-freebsd) ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-netbsd) ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-amiga) ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-atari) ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-openbsd) ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-palmos) ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),m68k-embedded) ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-linux) ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-netbsd) ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-amiga) ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-macos) ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-darwin) ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-morphos) ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc-embedded) ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),sparc-linux) ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),sparc-netbsd) ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),sparc-solaris) ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),sparc-embedded) ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),x86_64-linux) ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),x86_64-freebsd) ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),x86_64-darwin) ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),x86_64-win64) ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),x86_64-embedded) ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-linux) ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-palmos) ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl
endif endif
ifeq ($(FULL_TARGET),arm-wince) ifeq ($(FULL_TARGET),arm-wince)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-gba) ifeq ($(FULL_TARGET),arm-gba)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-nds) ifeq ($(FULL_TARGET),arm-nds)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-embedded) ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),arm-symbian) ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc64-linux) ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc64-darwin) ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif endif
ifeq ($(FULL_TARGET),powerpc64-embedded) ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil fgl
endif endif
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
@ -472,9 +443,6 @@ endif
ifeq ($(FULL_TARGET),i386-beos) ifeq ($(FULL_TARGET),i386-beos)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
endif endif
ifeq ($(FULL_TARGET),i386-haiku)
override TARGET_LOADERS+=prt0 cprt0
endif
ifeq ($(FULL_TARGET),i386-netbsd) ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
endif endif
@ -592,9 +560,6 @@ endif
ifeq ($(FULL_TARGET),arm-palmos) ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
endif endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_LOADERS+=prt0 cprt0
endif
ifeq ($(FULL_TARGET),arm-wince) ifeq ($(FULL_TARGET),arm-wince)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
endif endif
@ -619,15 +584,6 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded) ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_LOADERS+=prt0 cprt0 override TARGET_LOADERS+=prt0 cprt0
endif endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_LOADERS+=prt0 cprt0
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_LOADERS+=prt0 cprt0
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_LOADERS+=prt0 cprt0
endif
override INSTALL_FPCPACKAGE=y override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
@ -647,9 +603,6 @@ endif
ifeq ($(FULL_TARGET),i386-beos) ifeq ($(FULL_TARGET),i386-beos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif endif
ifeq ($(FULL_TARGET),i386-haiku)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
ifeq ($(FULL_TARGET),i386-netbsd) ifeq ($(FULL_TARGET),i386-netbsd)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif endif
@ -767,9 +720,6 @@ endif
ifeq ($(FULL_TARGET),arm-palmos) ifeq ($(FULL_TARGET),arm-palmos)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif endif
ifeq ($(FULL_TARGET),arm-darwin)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
ifeq ($(FULL_TARGET),arm-wince) ifeq ($(FULL_TARGET),arm-wince)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif endif
@ -794,15 +744,6 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded) ifeq ($(FULL_TARGET),powerpc64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif endif
ifeq ($(FULL_TARGET),avr-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
ifeq ($(FULL_TARGET),armeb-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
endif
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
@ -821,9 +762,6 @@ endif
ifeq ($(FULL_TARGET),i386-beos) ifeq ($(FULL_TARGET),i386-beos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
ifeq ($(FULL_TARGET),i386-haiku)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netbsd) ifeq ($(FULL_TARGET),i386-netbsd)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
@ -941,9 +879,6 @@ endif
ifeq ($(FULL_TARGET),arm-palmos) ifeq ($(FULL_TARGET),arm-palmos)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
ifeq ($(FULL_TARGET),arm-darwin)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-wince) ifeq ($(FULL_TARGET),arm-wince)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
@ -968,15 +903,6 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded) ifeq ($(FULL_TARGET),powerpc64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif endif
ifeq ($(FULL_TARGET),avr-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
endif
ifdef REQUIRE_UNITSDIR ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR) override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif endif
@ -1195,7 +1121,6 @@ endif
ifeq ($(OS_TARGET),go32v2) ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=dos SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),watcom) ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX= STATICLIBPREFIX=
@ -1203,7 +1128,6 @@ OEXT=.obj
ASMEXT=.asm ASMEXT=.asm
SHAREDLIBEXT=.dll SHAREDLIBEXT=.dll
SHORTSUFFIX=wat SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),linux) ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh BATCHEXT=.sh
@ -1240,7 +1164,6 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll SHAREDLIBEXT=.dll
SHORTSUFFIX=os2 SHORTSUFFIX=os2
ECHO=echo ECHO=echo
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),emx) ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd BATCHEXT=.cmd
@ -1249,7 +1172,6 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll SHAREDLIBEXT=.dll
SHORTSUFFIX=emx SHORTSUFFIX=emx
ECHO=echo ECHO=echo
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),amiga) ifeq ($(OS_TARGET),amiga)
EXEEXT= EXEEXT=
@ -1270,11 +1192,6 @@ BATCHEXT=.sh
EXEEXT= EXEEXT=
SHORTSUFFIX=be SHORTSUFFIX=be
endif endif
ifeq ($(OS_TARGET),haiku)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=hai
endif
ifeq ($(OS_TARGET),solaris) ifeq ($(OS_TARGET),solaris)
BATCHEXT=.sh BATCHEXT=.sh
EXEEXT= EXEEXT=
@ -1289,20 +1206,17 @@ ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm EXEEXT=.nlm
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=nw SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif endif
ifeq ($(OS_TARGET),netwlibc) ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm EXEEXT=.nlm
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=nwl SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif endif
ifeq ($(OS_TARGET),macos) ifeq ($(OS_TARGET),macos)
BATCHEXT= BATCHEXT=
EXEEXT= EXEEXT=
DEBUGSYMEXT=.xcoff DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif endif
ifeq ($(OS_TARGET),darwin) ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh BATCHEXT=.sh
@ -1329,17 +1243,14 @@ STATICLIBEXT=.a1
SHAREDLIBEXT=.so1 SHAREDLIBEXT=.so1
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=v1 SHORTSUFFIX=v1
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),go32v2) ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=dos SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),watcom) ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX= STATICLIBPREFIX=
SHORTSUFFIX=wat SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),linux) ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh BATCHEXT=.sh
@ -1386,7 +1297,6 @@ STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll SHAREDLIBEXT=.dll
SHORTSUFFIX=os2 SHORTSUFFIX=os2
ECHO=echo ECHO=echo
IMPORTLIBPREFIX=
endif endif
ifeq ($(OS_TARGET),amiga) ifeq ($(OS_TARGET),amiga)
EXEEXT= EXEEXT=
@ -1447,7 +1357,6 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm SHAREDLIBEXT=.nlm
EXEEXT=.nlm EXEEXT=.nlm
SHORTSUFFIX=nw SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif endif
ifeq ($(OS_TARGET),netwlibc) ifeq ($(OS_TARGET),netwlibc)
STATICLIBPREFIX= STATICLIBPREFIX=
@ -1459,7 +1368,6 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm SHAREDLIBEXT=.nlm
EXEEXT=.nlm EXEEXT=.nlm
SHORTSUFFIX=nwl SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif endif
ifeq ($(OS_TARGET),macos) ifeq ($(OS_TARGET),macos)
BATCHEXT= BATCHEXT=
@ -1471,7 +1379,6 @@ STATICLIBEXT=.a
EXEEXT= EXEEXT=
DEBUGSYMEXT=.xcoff DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif endif
endif endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
@ -1744,13 +1651,13 @@ TAROPT=vz
TAREXT=.tar.gz TAREXT=.tar.gz
endif endif
ifndef NOCPUDEF ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH) override FPCOPTDEF=$(CPU_TARGET)
endif endif
ifneq ($(OS_TARGET),$(OS_SOURCE)) ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET) override FPCOPT+=-T$(OS_TARGET)
endif endif
ifneq ($(CPU_TARGET),$(CPU_SOURCE)) ifneq ($(CPU_TARGET),$(CPU_SOURCE))
override FPCOPT+=-P$(ARCH) override FPCOPT+=-P$(CPU_TARGET)
endif endif
ifeq ($(OS_SOURCE),openbsd) ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH) override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
@ -2329,6 +2236,7 @@ ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT) getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT) heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR) $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT) charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
exec$(PPUEXT) : exec.pp execf.inc execd.inc exec$(PPUEXT) : exec.pp execf.inc execd.inc
timer$(PPUEXT) : timer.pp timerd.inc timerf.inc timer$(PPUEXT) : timer.pp timerd.inc timerf.inc

View File

@ -12,10 +12,10 @@ units=$(SYSTEMUNIT) objpas macpas strings \
sysutils \ sysutils \
classes math typinfo varutils fmtbcd ctypes \ classes math typinfo varutils fmtbcd ctypes \
charset ucomplex getopts matrix \ charset ucomplex getopts matrix \
variants types rtlconsts sysconst dateutil fgl \ variants types rtlconsts sysconst dateutil lineinfo fgl \
# exec timer doslib utility hardware inputevent graphics layers \ # exec timer doslib utility hardware inputevent graphics layers \
# these can be moved to packages later # these can be moved to packages later
# clipboard datatypes asl ahi tinygl get9 muihelper lineinfo \ # clipboard datatypes asl ahi tinygl get9 muihelper \
#rsts=math rtlconsts varutils typinfo variants classes sysconst dateutil #rsts=math rtlconsts varutils typinfo variants classes sysconst dateutil
# implicitunits=exeinfo # implicitunits=exeinfo
@ -42,7 +42,6 @@ COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET) PROCINC=$(RTL)/$(CPU_TARGET)
UNITPREFIX=rtl UNITPREFIX=rtl
SYSTEMUNIT=system SYSTEMUNIT=system
BINUTILSPREFIX=arm-eabi-
# Use new feature from 1.0.5 version # Use new feature from 1.0.5 version
# that generates release PPU files # that generates release PPU files
@ -179,7 +178,7 @@ getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT) heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR) $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
#lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
#lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) #lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT) charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)

56
rtl/gba/libc.inc Normal file
View File

@ -0,0 +1,56 @@
{
This file is part of the Free Component Library (FCL)
Copyright (c) 1999-2002 by the Free Pascal development team
BIOS functions unit for Nintendo DS
Copyright (c) 2006 by Francesco Lombardi
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************}
function __errno: plongint; cdecl; export;
begin
end;
function S_ISBLK(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFBLK;
end;
function S_ISCHR(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFCHR;
end;
function S_ISDIR(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFDIR;
end;
function S_ISFIFO(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFIFO;
end;
function S_ISREG(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFREG;
end;
function S_ISLNK(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFLNK;
end;
function S_ISSOCK(m: longint): boolean; inline;
begin
result := (m and _IFMT) = _IFSOCK;
end;

199
rtl/gba/libch.inc Normal file
View File

@ -0,0 +1,199 @@
{
This file is part of the Free Component Library (FCL)
Copyright (c) 1999-2002 by the Free Pascal development team
BIOS functions unit for Nintendo DS
Copyright (c) 2006 by Francesco Lombardi
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************}
type
time_t = longint;
ptime_t = ^time_t;
Ptm = ^tm;
tm = record
tm_sec: longint;
tm_min: longint;
tm_hour: longint;
tm_mday: longint;
tm_mon: longint;
tm_year: longint;
tm_wday: longint;
tm_yday: longint;
tm_isdst: longint;
end;
(* Some libc functions *)
//function printf(format: Pchar; args: array of const): longint; cdecl; external;
function printf(format: Pchar): longint; cdecl; varargs; external;
//function sprintf(s: Pchar; format: Pchar; args: array of const): longint; cdecl; external;
function sprintf(s: Pchar; format: Pchar): longint; varargs; cdecl; external;
//function iprintf(format: Pchar; args: array of const): longint; cdecl; external;
function iprintf(format: Pchar): longint; varargs; cdecl; external;
//function scanf(format: Pchar; args: array of const): longint; cdecl; external;
function scanf(format: Pchar): longint; cdecl; varargs; external;
//function sscanf(s: Pchar; format: Pchar; args: array of const): longint; cdecl; external;
function sscanf(s: Pchar; format: Pchar): longint; cdecl; varargs; external;
function strcmp(s1: Pchar; s2: Pchar): longint; cdecl; external;
function malloc(size: integer): pointer; cdecl; external;
function realloc(ptr: pointer; size: integer): pointer; cdecl; external;
procedure free(ptr: pointer); cdecl; external;
function memcpy(dest: pointer; src: pointer; n: integer): pointer; cdecl; external;
function gmtime(timer: ptime_t): ptm; cdecl; external;
function time(timer: ptime_t): time_t; cdecl; external;
type
TSort = function (const a, b: pointer): integer;
procedure qsort(__base: pointer; __nmemb: integer; __size: integer; __compar: TSort); cdecl; external;
function __errno: plongint; cdecl; export;
type
_FILE = record
firstCluster: longword;
length: longword;
curPos: longword;
curClus: longword; // Current cluster to read from
curSect: integer; // Current sector within cluster
curByte: integer; // Current byte within sector
readBuffer: array [0..511] of byte; // Buffer used for unaligned reads
appClus: longword; // Cluster to append to
appSect: integer; // Sector within cluster for appending
appByte: integer; // Byte within sector for appending
read: boolean; // Can read from file
write: boolean; // Can write to file
append: boolean; // Can append to file
inUse: boolean; // This file is open
dirEntSector: longword; // The sector where the directory entry is stored
dirEntOffset: integer; // The offset within the directory sector
end;
P_FILE = ^_FILE;
const
SEEK_SET = 0;
SEEK_CUR = 1;
SEEK_END = 2;
(*
------------------------------------------------------------------------------
Directory iterator for mantaining state between dir* calls
------------------------------------------------------------------------------
*)
type
DIR_ITER = record
device: longint;
dirStruct: pointer;
end;
PDIR_ITER = ^DIR_ITER;
stat = packed record
st_dev: longint;
st_ino: longword;
st_mode : longword;
st_nlink : word;
st_uid : word;
st_gid : word;
st_rdev : longint;
st_size : longint;
st_atime : longint;
st_spare1: longint;
st_mtime: longint;
st_spare2: longint;
st_ctime: longint;
st_spare3: longint;
st_blksize: longint;
st_blocks: longint;
st_spare4: array [0..1] of longint;
end;
TStat = stat;
PStat = ^stat;
const
_IFMT = 0170000; // type of file
_IFDIR = 0040000; // directory
_IFCHR = 0020000; // character special
_IFBLK = 0060000; // block special
_IFREG = 0100000; // regular
_IFLNK = 0120000; // symbolic link
_IFSOCK = 0140000; // socket
_IFIFO = 0010000; // fifo
S_BLKSIZE = 1024; // size of a block
S_ISUID = 0004000; // set user id on execution
S_ISGID = 0002000; // set group id on execution
NAME_MAX = 767;
function S_ISBLK(m: longint): boolean; inline;
function S_ISCHR(m: longint): boolean; inline;
function S_ISDIR(m: longint): boolean; inline;
function S_ISFIFO(m: longint): boolean; inline;
function S_ISREG(m: longint): boolean; inline;
function S_ISLNK(m: longint): boolean; inline;
function S_ISSOCK(m: longint): boolean; inline;
type
dirent = record
d_ino: longint;
d_name: array [0..NAME_MAX] of char;
end;
PDirent = ^dirent;
PPDirent = ^PDirent;
DIR = record
position: longint;
dirData: PDIR_ITER;
fileData: dirent;
end;
PDIR = ^DIR;
(* DIR handling *)
function closedir(dirp: PDIR): longint; cdecl; external;
function opendir(const dirname: pchar): PDIR; cdecl; external;
function readdir(dirp: PDIR): PDirent; cdecl; external;
function readdir_r(dirp: PDIR; entry: PDirent; result: PPDirent): longint; cdecl; external;
procedure rewinddir(dirp: PDIR); cdecl; external;
procedure seekdir(dirp: PDIR; loc: longint); cdecl; external;
function telldir(dirp: PDIR): longint; cdecl; external;
function diropen(const path: pchar): PDIR_ITER; cdecl; external;
function dirreset(dirState: PDIR_ITER): longint; cdecl; external;
function dirnext(dirState: PDIR_ITER; filename: pchar; filestat: Pstat): longint; cdecl; external;
function dirclose(dirState: PDIR_ITER): longint; cdecl; external;
(* File handling *)
function fopen(filename: Pchar; modes: Pchar): P_FILE; cdecl; external;
function fread(ptr: pointer; size: longint; n: longint; stream: P_FILE): longint; cdecl; external;
function fread(var ptr; size: longint; n: longint; var stream: _FILE): longint; cdecl; external;
function fwrite(ptr: pointer; size: longint; n: longint; s: P_FILE): longint; cdecl; external;
function fwrite(var ptr; size: longint; n: longint; var s: _FILE): longint; cdecl; external;
function ftell(stream: P_FILE): longint; cdecl; external;
function ftell(var stream: _FILE): longint; cdecl; external;
function fseek(stream: P_FILE; off: longint; whence: longint): longint; cdecl; external;
function fseek(var stream: _FILE; off: longint; whence: longint): longint; cdecl; external;
function fclose(stream: P_FILE): longint; cdecl; external;
function fclose(var stream: _FILE): longint; cdecl; external;
function isatty(fildes: longint): longint; cdecl; external;
function fileno(para1: P_FILE): longint; cdecl; external;
function fileno(var para1: _FILE): longint; cdecl; external;
function fstat(fildes: longint; buf: PStat): longint; cdecl; external;
function fstat(fildes: longint; var buf: TStat): longint; cdecl; external;
function _stat(__file:Pchar; var __buf:Tstat):longint; cdecl; external name 'stat';
function ftruncate(fildes: longint; len: longint): longint; cdecl; external;
function unlink(path: Pchar): longint; cdecl; external;
function rename(para1: Pchar; para2: Pchar): longint; cdecl; external;

View File

@ -28,6 +28,10 @@ interface
{$i systemh.inc} {$i systemh.inc}
{$i gbabiosh.inc} {$i gbabiosh.inc}
{$i libch.inc}
{$define fpc_softfpu_interface} {$define fpc_softfpu_interface}
{$i softfpu.pp} {$i softfpu.pp}
{$undef fpc_softfpu_interface} {$undef fpc_softfpu_interface}
@ -48,24 +52,25 @@ const
MaxPathLen = 255; MaxPathLen = 255;
AllFilesMask = '*'; AllFilesMask = '*';
sLineBreak : string[1] = LineEnding; sLineBreak : string[1] = LineEnding;
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF; DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
const
UnusedHandle = $ffff; UnusedHandle = $ffff;
StdInputHandle = 0; StdInputHandle = 0;
StdOutputHandle = 1; StdOutputHandle = 1;
StdErrorHandle = $ffff; StdErrorHandle = $ffff;
var var
argc: LongInt = 0; argc: LongInt = 0;
argv: PPChar; argv: PPChar;
envp: PPChar; envp: PPChar;
errno: integer; // errno: integer;
fake_heap_end: ^byte; cvar; external; fake_heap_end: ^byte; cvar; external;
procedure randomize(value: integer); procedure randomize(value: integer);
implementation implementation
@ -89,9 +94,12 @@ implementation
{$i system.inc} {$i system.inc}
{$i gbabios.inc} {$i gbabios.inc}
{$i libc.inc}
{$ifdef FPC_HAS_FEATURE_PROCESSES} {$ifdef FPC_HAS_FEATURE_PROCESSES}
function GetProcessID: SizeUInt; function GetProcessID: SizeUInt;
begin begin
GetProcessID := 0;
end; end;
{$endif} {$endif}
@ -101,6 +109,7 @@ end;
*****************************************************************************} *****************************************************************************}
procedure System_exit; procedure System_exit;
begin begin
end; end;
@ -154,16 +163,16 @@ function paramstr(l : longint) : string;
begin begin
paramstr:=''; paramstr:='';
end; end;
{$endif} {$endif FPC_HAS_FEATURE_COMMANDARGS}
{$ifdef FPC_HAS_FEATURE_CONSOLEIO} {$ifdef FPC_HAS_FEATURE_TEXTIO}
procedure SysInitStdIO; procedure SysInitStdIO;
begin begin
OpenStdIO(Input,fmInput,StdInputHandle); OpenStdIO(Input,fmInput,StdInputHandle);
OpenStdIO(Output,fmOutput,StdOutputHandle); OpenStdIO(Output,fmOutput,StdOutputHandle);
OpenStdIO(StdOut,fmOutput,StdOutputHandle); OpenStdIO(StdOut,fmOutput,StdOutputHandle);
end; end;
{$endif} {$endif FPC_HAS_FEATURE_TEXTIO}
function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt; function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;
@ -177,17 +186,19 @@ begin
StackBottom := StackTop - StackLength; StackBottom := StackTop - StackLength;
{ OS specific startup } { OS specific startup }
{ Set up signals handlers }
fpc_cpucodeinit;
{ Setup heap } { Setup heap }
InitHeap; InitHeap;
SysInitExceptions; SysInitExceptions;
{$ifdef FPC_HAS_FEATURE_CONSOLEIO} {$ifdef FPC_HAS_FEATURE_CONSOLEIO}
{ Setup stdin, stdout and stderr } { Setup stdin, stdout and stderr }
SysInitStdIO; SysInitStdIO;
{$endif FPC_HAS_FEATURE_CONSOLEIO}
{$ifdef FPC_HAS_FEATURE_CONSOLEIO}
{ Reset IO Error } { Reset IO Error }
InOutRes:=0; InOutRes:=0;
{$endif FPC_HAS_FEATURE_CONSOLEIO} {$endif FPC_HAS_FEATURE_CONSOLEIO}
{$ifdef FPC_HAS_FEATURE_THREADING} {$ifdef FPC_HAS_FEATURE_THREADING}
{ threading } { threading }
InitSystemThreads; InitSystemThreads;

View File

@ -33,11 +33,8 @@ _start:
mov r0, #0 @ int argc mov r0, #0 @ int argc
mov r1, #0 @ char *argv[] mov r1, #0 @ char *argv[]
ldr r3, =main ldr r3, =main
bl _blx_r3_stub ldr lr,=__libnds_exit
bx r3
@ If the user ever returns, return to flash cartridge
mov r0, #0x08000000
bx r0
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
_blx_r3_stub: _blx_r3_stub:

View File

@ -5,7 +5,7 @@
.cpu arm946e-s .cpu arm946e-s
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
.equ _libnds_argv, 0x027FFF70 .equ _libnds_argv,0x02FFFE70
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
.section ".init" .section ".init"
@ -19,123 +19,8 @@ _start:
mov r0, #0x04000000 @ IME = 0; mov r0, #0x04000000 @ IME = 0;
str r0, [r0, #0x208] str r0, [r0, #0x208]
@--------------------------------------------------------------------------------- ldr r3,=__libnds_mpu_setup
@ turn the power on for M3 blx r3
@---------------------------------------------------------------------------------
ldr r1, =0x8203
add r0,r0,#0x304
strh r1, [r0]
ldr r1, =0x00002078 @ disable TCM and protection unit
mcr p15, 0, r1, c1, c0
@---------------------------------------------------------------------------------
@ Protection Unit Setup added by Sasq
@---------------------------------------------------------------------------------
@ Disable cache
mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ Instruction cache
mcr p15, 0, r0, c7, c6, 0 @ Data cache
@ Wait for write buffer to empty
mcr p15, 0, r0, c7, c10, 4
ldr r0, =__dtcm_start
orr r0,r0,#0x0a
mcr p15, 0, r0, c9, c1,0 @ DTCM base = __dtcm_start, size = 16 KB
mov r0,#0x20
mcr p15, 0, r0, c9, c1,1 @ ITCM base = 0 , size = 32 MB
@---------------------------------------------------------------------------------
@ Setup memory regions similar to Release Version
@---------------------------------------------------------------------------------
@-------------------------------------------------------------------------
@ Region 0 - IO registers
@-------------------------------------------------------------------------
ldr r0,=( (0b11001 << 1) | 0x04000000 | 1)
mcr p15, 0, r0, c6, c0, 0
@-------------------------------------------------------------------------
@ Region 1 - Main Memory
@-------------------------------------------------------------------------
ldr r0,=( (0b10101 << 1) | 0x02000000 | 1)
mcr p15, 0, r0, c6, c1, 0
@-------------------------------------------------------------------------
@ Region 2 - alternate vector base
@-------------------------------------------------------------------------
ldr r0,=( (0b01011 << 1) | 0x00000000 | 1)
mcr p15, 0, r0, c6, c2, 0
@-------------------------------------------------------------------------
@ Region 3 - DS Accessory (GBA Cart)
@-------------------------------------------------------------------------
ldr r0,=( (0b11010 << 1) | 0x08000000 | 1)
mcr p15, 0, r0, c6, c3, 0
@-------------------------------------------------------------------------
@ Region 4 - DTCM
@-------------------------------------------------------------------------
ldr r0,=__dtcm_start
orr r0,r0,#((0b01101 << 1) | 1)
mcr p15, 0, r0, c6, c4, 0
@-------------------------------------------------------------------------
@ Region 5 - ITCM
@-------------------------------------------------------------------------
ldr r0,=__itcm_start
@ align to 32k boundary
mov r0,r0,lsr #15
mov r0,r0,lsl #15
orr r0,r0,#((0b01110 << 1) | 1)
mcr p15, 0, r0, c6, c5, 0
@-------------------------------------------------------------------------
@ Region 6 - System ROM
@-------------------------------------------------------------------------
ldr r0,=( (0b01110 << 1) | 0xFFFF0000 | 1)
mcr p15, 0, r0, c6, c6, 0
@-------------------------------------------------------------------------
@ Region 7 - non cacheable main ram
@-------------------------------------------------------------------------
ldr r0,=( (0b10101 << 1) | 0x02400000 | 1)
mcr p15, 0, r0, c6, c7, 0
@-------------------------------------------------------------------------
@ Write buffer enable
@-------------------------------------------------------------------------
ldr r0,=0b00000010
mcr p15, 0, r0, c3, c0, 0
@-------------------------------------------------------------------------
@ DCache & ICache enable
@-------------------------------------------------------------------------
ldr r0,=0b01000010
mcr p15, 0, r0, c2, c0, 0
mcr p15, 0, r0, c2, c0, 1
@-------------------------------------------------------------------------
@ IAccess
@-------------------------------------------------------------------------
ldr r0,=0x36636633
mcr p15, 0, r0, c5, c0, 3
@-------------------------------------------------------------------------
@ DAccess
@-------------------------------------------------------------------------
ldr r0,=0x36333633
mcr p15, 0, r0, c5, c0, 2
@-------------------------------------------------------------------------
@ Enable ICache, DCache, ITCM & DTCM
@-------------------------------------------------------------------------
mrc p15, 0, r0, c1, c0, 0
ldr r1,= (1<<18) | (1<<16) | (1<<12) | (1<<2) | (1<<0)
orr r0,r0,r1
mcr p15, 0, r0, c1, c0, 0
mov r0, #0x12 @ Switch to IRQ Mode mov r0, #0x12 @ Switch to IRQ Mode
msr cpsr, r0 msr cpsr, r0
@ -177,10 +62,6 @@ _start:
sub r1, r1, r0 sub r1, r1, r0
bl ClearMem bl ClearMem
ldr r1, =fake_heap_end @ set heap end
ldr r0, =__eheap_end
str r0, [r1]
ldr r0, =_libnds_argv ldr r0, =_libnds_argv
@ reset heap base @ reset heap base
@ -188,6 +69,10 @@ _start:
ldr r1,=fake_heap_start ldr r1,=fake_heap_start
str r2,[r1] str r2,[r1]
ldr r1, =fake_heap_end @ set heap end
sub r8,r8,#0xc000
str r8, [r1]
push {r0} push {r0}
ldr r3, =initSystem ldr r3, =initSystem
blx r3 @ system initialisation blx r3 @ system initialisation
@ -200,16 +85,8 @@ _start:
ldr r3, =main ldr r3, =main
blx r3 @ jump to user code ldr lr,=__libnds_exit
bx r3 @ jump to user code
@ If the user ever returns, go back to passme loop
ldr r0, =ILoop
ldr r0, [r0]
ldr r1, =0x027FFE78
str r0, [r1]
bx r1
ILoop:
b ILoop
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
@ check for a commandline @ check for a commandline
@ -221,9 +98,10 @@ checkARGV:
str r1, [r0,#12] @ clear argc str r1, [r0,#12] @ clear argc
str r1, [r0,#16] @ clear argv str r1, [r0,#16] @ clear argv
ldr r1, [r0] @ argv magic number ldr r3, [r0] @ argv magic number
ldr r2, =0x5f617267 @ '_arg' ldr r2, =0x5f617267 @ '_arg'
cmp r1, r2 cmp r3, r2
strne r1,[r0,#20]
bxne lr @ bail out if no magic bxne lr @ bail out if no magic
ldr r1, [r0, #4] @ command line address ldr r1, [r0, #4] @ command line address

View File

@ -30,12 +30,8 @@ _start:
mov r0, #0 @ int argc mov r0, #0 @ int argc
mov r1, #0 @ char *argv[] mov r1, #0 @ char *argv[]
ldr r3, =main ldr r3, =main
ldr lr,=__libnds_exit
bx r3 bx r3
nop
@ If the user ever returns, return to flash cartridge
mov r0, #0x08000000
bx r0
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
@ Clear memory to 0x00 if length != 0 @ Clear memory to 0x00 if length != 0

View File

@ -5,7 +5,7 @@
.cpu arm946e-s .cpu arm946e-s
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
.equ _libnds_argv, 0x027FFF70 .equ _libnds_argv,0x02FFFE70
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
.section ".init" .section ".init"
@ -19,123 +19,8 @@ _start:
mov r0, #0x04000000 @ IME = 0; mov r0, #0x04000000 @ IME = 0;
str r0, [r0, #0x208] str r0, [r0, #0x208]
@--------------------------------------------------------------------------------- ldr r3,=__libnds_mpu_setup
@ turn the power on for M3 blx r3
@---------------------------------------------------------------------------------
ldr r1, =0x8203
add r0,r0,#0x304
strh r1, [r0]
ldr r1, =0x00002078 @ disable TCM and protection unit
mcr p15, 0, r1, c1, c0
@---------------------------------------------------------------------------------
@ Protection Unit Setup added by Sasq
@---------------------------------------------------------------------------------
@ Disable cache
mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ Instruction cache
mcr p15, 0, r0, c7, c6, 0 @ Data cache
@ Wait for write buffer to empty
mcr p15, 0, r0, c7, c10, 4
ldr r0, =__dtcm_start
orr r0,r0,#0x0a
mcr p15, 0, r0, c9, c1,0 @ DTCM base = __dtcm_start, size = 16 KB
mov r0,#0x20
mcr p15, 0, r0, c9, c1,1 @ ITCM base = 0 , size = 32 MB
@---------------------------------------------------------------------------------
@ Setup memory regions similar to Release Version
@---------------------------------------------------------------------------------
@-------------------------------------------------------------------------
@ Region 0 - IO registers
@-------------------------------------------------------------------------
ldr r0,=( (0b11001 << 1) | 0x04000000 | 1)
mcr p15, 0, r0, c6, c0, 0
@-------------------------------------------------------------------------
@ Region 1 - Main Memory
@-------------------------------------------------------------------------
ldr r0,=( (0b10101 << 1) | 0x02000000 | 1)
mcr p15, 0, r0, c6, c1, 0
@-------------------------------------------------------------------------
@ Region 2 - alternate vector base
@-------------------------------------------------------------------------
ldr r0,=( (0b01011 << 1) | 0x00000000 | 1)
mcr p15, 0, r0, c6, c2, 0
@-------------------------------------------------------------------------
@ Region 3 - DS Accessory (GBA Cart)
@-------------------------------------------------------------------------
ldr r0,=( (0b11010 << 1) | 0x08000000 | 1)
mcr p15, 0, r0, c6, c3, 0
@-------------------------------------------------------------------------
@ Region 4 - DTCM
@-------------------------------------------------------------------------
ldr r0,=__dtcm_start
orr r0,r0,#((0b01101 << 1) | 1)
mcr p15, 0, r0, c6, c4, 0
@-------------------------------------------------------------------------
@ Region 5 - ITCM
@-------------------------------------------------------------------------
ldr r0,=__itcm_start
@ align to 32k boundary
mov r0,r0,lsr #15
mov r0,r0,lsl #15
orr r0,r0,#((0b01110 << 1) | 1)
mcr p15, 0, r0, c6, c5, 0
@-------------------------------------------------------------------------
@ Region 6 - System ROM
@-------------------------------------------------------------------------
ldr r0,=( (0b01110 << 1) | 0xFFFF0000 | 1)
mcr p15, 0, r0, c6, c6, 0
@-------------------------------------------------------------------------
@ Region 7 - non cacheable main ram
@-------------------------------------------------------------------------
ldr r0,=( (0b10101 << 1) | 0x02400000 | 1)
mcr p15, 0, r0, c6, c7, 0
@-------------------------------------------------------------------------
@ Write buffer enable
@-------------------------------------------------------------------------
ldr r0,=0b00000010
mcr p15, 0, r0, c3, c0, 0
@-------------------------------------------------------------------------
@ DCache & ICache enable
@-------------------------------------------------------------------------
ldr r0,=0b01000010
mcr p15, 0, r0, c2, c0, 0
mcr p15, 0, r0, c2, c0, 1
@-------------------------------------------------------------------------
@ IAccess
@-------------------------------------------------------------------------
ldr r0,=0x36636633
mcr p15, 0, r0, c5, c0, 3
@-------------------------------------------------------------------------
@ DAccess
@-------------------------------------------------------------------------
ldr r0,=0x36333633
mcr p15, 0, r0, c5, c0, 2
@-------------------------------------------------------------------------
@ Enable ICache, DCache, ITCM & DTCM
@-------------------------------------------------------------------------
mrc p15, 0, r0, c1, c0, 0
ldr r1,= (1<<18) | (1<<16) | (1<<12) | (1<<2) | (1<<0)
orr r0,r0,r1
mcr p15, 0, r0, c1, c0, 0
mov r0, #0x12 @ Switch to IRQ Mode mov r0, #0x12 @ Switch to IRQ Mode
msr cpsr, r0 msr cpsr, r0
@ -177,10 +62,6 @@ _start:
sub r1, r1, r0 sub r1, r1, r0
bl ClearMem bl ClearMem
ldr r1, =fake_heap_end @ set heap end
ldr r0, =__eheap_end
str r0, [r1]
ldr r0, =_libnds_argv ldr r0, =_libnds_argv
@ reset heap base @ reset heap base
@ -188,6 +69,10 @@ _start:
ldr r1,=fake_heap_start ldr r1,=fake_heap_start
str r2,[r1] str r2,[r1]
ldr r1, =fake_heap_end @ set heap end
sub r8,r8,#0xc000
str r8, [r1]
push {r0} push {r0}
ldr r3, =initSystem ldr r3, =initSystem
blx r3 @ system initialisation blx r3 @ system initialisation
@ -200,16 +85,8 @@ _start:
ldr r3, =main ldr r3, =main
blx r3 @ jump to user code ldr lr,=__libnds_exit
bx r3 @ jump to user code
@ If the user ever returns, go back to passme loop
ldr r0, =ILoop
ldr r0, [r0]
ldr r1, =0x027FFE78
str r0, [r1]
bx r1
ILoop:
b ILoop
@--------------------------------------------------------------------------------- @---------------------------------------------------------------------------------
@ check for a commandline @ check for a commandline
@ -221,9 +98,10 @@ checkARGV:
str r1, [r0,#12] @ clear argc str r1, [r0,#12] @ clear argc
str r1, [r0,#16] @ clear argv str r1, [r0,#16] @ clear argv
ldr r1, [r0] @ argv magic number ldr r3, [r0] @ argv magic number
ldr r2, =0x5f617267 @ '_arg' ldr r2, =0x5f617267 @ '_arg'
cmp r1, r2 cmp r3, r2
strne r1,[r0,#20]
bxne lr @ bail out if no magic bxne lr @ bail out if no magic
ldr r1, [r0, #4] @ command line address ldr r1, [r0, #4] @ command line address