diff options
author | Legolas <Legolas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-09-27 18:54:32 +0000 |
---|---|---|
committer | Legolas <Legolas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-09-27 18:54:32 +0000 |
commit | 707ed84c1a5daaf21b6dc091aed6cbcc7a5fc5bf (patch) | |
tree | 4f675a1fd5b2cb5f938145218efce16f945ab14e /packages/libndsfpc/src | |
parent | 4b5eb399f98146458147c33c0b6c51339a9260de (diff) | |
download | fpc-707ed84c1a5daaf21b6dc091aed6cbcc7a5fc5bf.tar.gz |
* libnds updated to ver.1.5.4
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@19255 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/libndsfpc/src')
-rw-r--r-- | packages/libndsfpc/src/nds/arm7/sdmmc.inc | 5 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/arm9/videoGL.inc | 17 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/card.inc | 18 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/fifocommon.inc | 24 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/fifomessages.inc | 16 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/interrupts.inc | 3 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/ndsinclude.inc | 2 | ||||
-rw-r--r-- | packages/libndsfpc/src/nds/system.inc | 12 |
8 files changed, 67 insertions, 30 deletions
diff --git a/packages/libndsfpc/src/nds/arm7/sdmmc.inc b/packages/libndsfpc/src/nds/arm7/sdmmc.inc index 9f7df0c6d3..0cbe19ec55 100644 --- a/packages/libndsfpc/src/nds/arm7/sdmmc.inc +++ b/packages/libndsfpc/src/nds/arm7/sdmmc.inc @@ -1,7 +1,6 @@ {$ifdef NDS_INTERFACE} const SDMMC_BASE = $04004800; - DISPSTAT_CHK_VBLANK = (1 shl 0); REG_SDSTATUS0 = $1c; REG_SDSTATUS1 = $1e; @@ -56,9 +55,9 @@ function sdmmc_cardinserted(): cint; cdecl; external; function sdmmc_sdcard_init(): cint; cdecl; external; procedure sdmmc_sdcard_readsector(sector_no: cuint32; _out: pointer); cdecl; external; -procedure sdmmc_sdcard_readsectors(sector_no: cuint32; int numsectors: cint; _out: pointer); cdecl; external; +procedure sdmmc_sdcard_readsectors(sector_no: cuint32; numsectors: cuint32; _out: pointer); cdecl; external; procedure sdmmc_sdcard_writesector(sector_no: cuint32; _in: pointer); cdecl; external; -procedure sdmmc_sdcard_writesectors(sector_no: cuint32; int numsectors: cint; _in: pointer); cdecl; external; +procedure sdmmc_sdcard_writesectors(sector_no: cuint32; numsectors: cuint32; _in: pointer); cdecl; external; var sdmmc_curdevice: cint; cvar; external; diff --git a/packages/libndsfpc/src/nds/arm9/videoGL.inc b/packages/libndsfpc/src/nds/arm9/videoGL.inc index caa2d35684..73d001bff2 100644 --- a/packages/libndsfpc/src/nds/arm9/videoGL.inc +++ b/packages/libndsfpc/src/nds/arm9/videoGL.inc @@ -184,6 +184,7 @@ const type GL_TEXTURE_TYPE_ENUM = cint32; const + GL_NOTEXTURE : GL_TEXTURE_TYPE_ENUM = 0; GL_RGB32_A3 : GL_TEXTURE_TYPE_ENUM = 1; GL_RGB4 : GL_TEXTURE_TYPE_ENUM = 2; GL_RGB16 : GL_TEXTURE_TYPE_ENUM = 3; @@ -193,7 +194,11 @@ const GL_RGBA : GL_TEXTURE_TYPE_ENUM = 7; GL_RGB : GL_TEXTURE_TYPE_ENUM = 8; - +type + GL_TEXTURE_PALETTE_PARAM_ENUM = cint32; +const + GL_COLOR_TABLE_FORMAT_EXT: GL_TEXTURE_PALETTE_PARAM_ENUM = 0; + GL_COLOR_TABLE_WIDTH_EXT : GL_TEXTURE_PALETTE_PARAM_ENUM = 1; type DISP3DCNT_ENUM = cint32; @@ -352,6 +357,7 @@ procedure glRotatef32i(angle: cint; x, y, z: cint32); cdecl; external; function glTexImage2D(target, empty1: cint; _type: GL_TEXTURE_TYPE_ENUM; sizeX, sizeY, empty2, param: cint; texture: pointer): cint; cdecl; external; procedure glColorTableEXT(target, empty1: cint; width: cuint16; empty2, empty3: cint; const table: pcuint16); cdecl; external; +procedure glColorSubTableEXT(target, start, count, empty1, empty2: cint; const data: pcuint16); cdecl; external; procedure glAssignColorTable(target, name: cint); cdecl; external; //procedure glTexLoadPal(const pal: pcuint16; count: cuint16; addr: cuint32); cdecl; external; @@ -359,6 +365,7 @@ procedure glAssignColorTable(target, name: cint); cdecl; external; procedure glTexParameter(target, param: cint); cdecl; external; function glGetTexParameter(): cuint32; cdecl; external; +procedure glGetColorTableParameterEXT(target, pname: cint; params: pcint); cdecl; external; function glGetTexturePointer(name: cint): pointer; cdecl; external; procedure glBindTexture(target, name: cint); cdecl; external; //procedure glColorTable(format: cuint8; addr: cuint32); cdecl; external; @@ -370,8 +377,8 @@ procedure glMaterialf(mode: GL_MATERIALS_ENUM; color: rgb); cdecl; external; procedure glInit_C(); cdecl; external; function glGetGlobals(): PGLHiddenGlobals; cdecl; external; -function POLY_ALPHA(n: cint): cuint32; inline; -function POLY_ID(n: cint): cuint32; inline; +function POLY_ALPHA(n: cuint32): cuint32; inline; +function POLY_ID(n: cuint32): cuint32; inline; procedure glBegin(mode: GL_GLBEGIN_ENUM); inline; procedure glEnd(); inline; procedure glClearDepth(depth: fixed12d3); inline; @@ -737,12 +744,12 @@ end; ////////////////////////////////////////////////////////////////////////////////////////// -function POLY_ALPHA(n: cint): cuint32; inline; +function POLY_ALPHA(n: cuint32): cuint32; inline; begin POLY_ALPHA := cuint32((n) shl 16); end; -function POLY_ID(n: cint): cuint32; inline; +function POLY_ID(n: cuint32): cuint32; inline; begin POLY_ID := cuint32((n) shl 24); end; diff --git a/packages/libndsfpc/src/nds/card.inc b/packages/libndsfpc/src/nds/card.inc index f0ecbe9492..b31bd59db5 100644 --- a/packages/libndsfpc/src/nds/card.inc +++ b/packages/libndsfpc/src/nds/card.inc @@ -23,7 +23,7 @@ const EEPROM_WREN = $06; EEPROM_RDID = $9f; -// ROMCTRL register: +// REG_ROMCTRL: CARD_ACTIVATE = (1 shl 31); // when writing, get the ball rolling CARD_WR = (1 shl 30); CARD_nRESET = (1 shl 29); // value on the /reset pin (1 = high out, not a reset state, 0 = low out = in reset) @@ -62,6 +62,16 @@ const CARD_CMD_DATA_CHIPID = $B8; + // REG_AUXSPICNT + CARD_ENABLE = (1 shl 15); + CARD_SPI_ENABLE = (1 shl 13); + CARD_SPI_BUSY = (1 shl 7); + CARD_SPI_HOLD = (1 shl 6); + + CARD_SPICNTH_ENABLE = (1 shl 7); // in byte 1, i.e. 0x8000 + CARD_SPICNTH_IRQ = (1 shl 6); // in byte 1, i.e. 0x4000 + + procedure cardWriteCommand(const command: pcuint8); cdecl; external; @@ -74,6 +84,7 @@ procedure cardReadHeader(header: pcuint8); cdecl; external; function cardReadID(flags: cuint32): cuint32; cdecl; external; procedure cardReset(); cdecl; external; +procedure eepromWaitBusy(); inline; procedure cardReadEeprom(address: cuint32; data: pcuint8; length: cuint32; addrtype: cuint32); cdecl; external; procedure cardWriteEeprom(address: cuint32; data: pcuint8; length: cuint32; addrtype: cuint32); cdecl; external; @@ -107,4 +118,9 @@ begin result := (n and $1FFF); end; +procedure eepromWaitBusy(); inline; +begin + while (REG_AUXSPICNT^ and CARD_SPI_BUSY) <> 0 do; +end; + {$endif NDS_IMPLEMENTATION} diff --git a/packages/libndsfpc/src/nds/fifocommon.inc b/packages/libndsfpc/src/nds/fifocommon.inc index 661545a8a6..2c41eae72b 100644 --- a/packages/libndsfpc/src/nds/fifocommon.inc +++ b/packages/libndsfpc/src/nds/fifocommon.inc @@ -9,9 +9,9 @@ const FIFO_SYSTEM : FifoChannels = 2; FIFO_MAXMOD : FifoChannels = 3; FIFO_DSWIFI : FifoChannels = 4; - FIFO_RSVD_01: FifoChannels = 5; - FIFO_RSVD_02: FifoChannels = 6; - FIFO_RSVD_03: FifoChannels = 7; + FIFO_SDMMC : FifoChannels = 5; + FIFO_RSVD_01: FifoChannels = 6; + FIFO_RSVD_02: FifoChannels = 7; FIFO_USER_01: FifoChannels = 8; FIFO_USER_02: FifoChannels = 9; FIFO_USER_03: FifoChannels = 10; @@ -44,10 +44,14 @@ const SYS_REQ_KEYS : FifoSystemCommands = 1; SYS_REQ_TIME : FifoSystemCommands = 2; SYS_SET_TIME : FifoSystemCommands = 3; - SYS_HAVE_SD : FifoSystemCommands = 4; - SYS_SD_START : FifoSystemCommands = 5; - SYS_SD_IS_INSERTED : FifoSystemCommands = 6; - SYS_SD_STOP : FifoSystemCommands = 7; + +type + FifoSdmmcCommands = integer; +const + SDMMC_HAVE_SD : FifoSystemCommands = 0; + SDMMC_SD_START : FifoSystemCommands = 1; + SDMMC_SD_IS_INSERTED : FifoSystemCommands = 2; + SDMMC_SD_STOP : FifoSystemCommands = 3; type FifoPMCommands = integer; @@ -72,9 +76,9 @@ const type PM_LedBlinkMode = integer; const - PM_LED_ON: PM_LedBlinkMode = (0 shl 4); - PM_LED_SLEEP: PM_LedBlinkMode = (1 shl 4); - PM_LED_BLINK: PM_LedBlinkMode = (3 shl 4); + PM_LED_ON : PM_LedBlinkMode = 0; + PM_LED_SLEEP: PM_LedBlinkMode = 1; + PM_LED_BLINK: PM_LedBlinkMode = 3; //var // fifo_buffer: array [0..FIFO_BUFFER_ENTRIES*2-1] of cuint32; cvar; external; diff --git a/packages/libndsfpc/src/nds/fifomessages.inc b/packages/libndsfpc/src/nds/fifomessages.inc index 415afa297d..64ca98d3c5 100644 --- a/packages/libndsfpc/src/nds/fifomessages.inc +++ b/packages/libndsfpc/src/nds/fifomessages.inc @@ -3,14 +3,14 @@ type FifoMessageType = integer; const - SOUND_PLAY_MESSAGE : FifoMessageType = $1234; - SOUND_PSG_MESSAGE : FifoMessageType = $1235; - SOUND_NOISE_MESSAGE : FifoMessageType = $1236; - MIC_RECORD_MESSAGE : FifoMessageType = $1237; - MIC_BUFFER_FULL_MESSAGE : FifoMessageType = $1238; - SYS_INPUT_MESSAGE : FifoMessageType = $1239; - SYS_SD_READ_SECTORS : FifoMessageType = $1240; - SYS_SD_WRITE_SECTORS : FifoMessageType = $1241; + SOUND_PLAY_MESSAGE : FifoMessageType = $1234; + SOUND_PSG_MESSAGE : FifoMessageType = $1235; + SOUND_NOISE_MESSAGE : FifoMessageType = $1236; + MIC_RECORD_MESSAGE : FifoMessageType = $1237; + MIC_BUFFER_FULL_MESSAGE : FifoMessageType = $1238; + SYS_INPUT_MESSAGE : FifoMessageType = $1239; + SDMMC_SD_READ_SECTORS : FifoMessageType = $123A; + SDMMC_SD_WRITE_SECTORS : FifoMessageType = $123B; type {$PACKRECORDS 4} diff --git a/packages/libndsfpc/src/nds/interrupts.inc b/packages/libndsfpc/src/nds/interrupts.inc index 827cc18db0..944693128c 100644 --- a/packages/libndsfpc/src/nds/interrupts.inc +++ b/packages/libndsfpc/src/nds/interrupts.inc @@ -31,7 +31,8 @@ const type IRQ_MASKSAUX = cuint; const - IRQ_I2C: IRQ_MASKSAUX = (1 shl 6); (* Power Button interrupt mask (DSi ARM7) *) + IRQ_I2C : IRQ_MASKSAUX = (1 shl 6); (* Power Button interrupt mask (DSi ARM7) *) + IRQ_SDMMC : IRQ_MASKSAUX = (1 shl 8); (* Sdmmc interrupt mask (DSi ARM7) *) function IRQ_TIMER(n: cint): cint; inline; diff --git a/packages/libndsfpc/src/nds/ndsinclude.inc b/packages/libndsfpc/src/nds/ndsinclude.inc index b0e4136332..43c69565a8 100644 --- a/packages/libndsfpc/src/nds/ndsinclude.inc +++ b/packages/libndsfpc/src/nds/ndsinclude.inc @@ -43,6 +43,7 @@ {$include arm9/guitarGrip.inc} {$include arm9/paddle.inc} {$include arm9/piano.inc} + {$include arm9/dldi.inc} {$endif ARM9} {$ifdef ARM7} @@ -51,5 +52,6 @@ {$include arm7/input.inc} {$include arm7/i2c.inc} {$include arm7/serial.inc} + {$include arm7/sdmmc.inc} {$include arm7/touch.inc} {$endif ARM7} diff --git a/packages/libndsfpc/src/nds/system.inc b/packages/libndsfpc/src/nds/system.inc index 5c3d50e5fb..be07c543e5 100644 --- a/packages/libndsfpc/src/nds/system.inc +++ b/packages/libndsfpc/src/nds/system.inc @@ -42,12 +42,12 @@ const // POWER_ALL : PM_Bits = PM_ARM9_DIRECT or POWER_ALL_2D or POWER_3D_CORE or POWER_MATRIX; POWER_ALL : PM_Bits = (1 shl 16) or (1 shl 0) or (1 shl 1) or (1 shl 9) or (1 shl 3) or (1 shl 2); -procedure sleep(); cdecl; external; +procedure SystemSleep(); cdecl; external; +procedure ledBlink(bm: cint); cdecl; external; {$ifdef ARM9} procedure powerOn(bits: cint); cdecl; external; procedure powerOff(bits: cint); cdecl; external; -procedure ledBlink(bm: cint); cdecl; external; procedure systemMsgHandler(bytes: cint; user_data: pointer); cdecl; external; procedure powerValueHandler(value: cuint32; data: pointer); cdecl; external; @@ -77,6 +77,14 @@ type var SystemVectors: sysVectors; cvar; external; +// Helper functions for heap size +//! returns current start of heap space +function getHeapStart(): pcuint8; cdecl; external; +//! returns current end of heap space +function getHeapEnd(): pcuint8; cdecl; external; +//! returns current heap limit +function getHeapLimit(): pcuint8; cdecl; external; + {$endif ARM9} |