Bladeren bron

--- Merging r21001 into '.':
U rtl/objpas/fmtbcd.pp
--- Merging r21003 into '.':
U packages/fcl-image/src/fpwritepng.pp
--- Merging r21032 into '.':
U packages/libndsfpc/src/nds/system.inc
U packages/libndsfpc/src/nds/fifocommon.inc
U packages/libndsfpc/src/nds/arm9/background.inc
U packages/libndsfpc/src/nds/arm9/videoGL.inc
U packages/libndsfpc/src/nds/arm9/video.inc
--- Merging r21033 into '.':
U packages/libogcfpc/src/aesndlib.pp
U packages/libogcfpc/src/wiiuse/wiiuse.inc
U packages/libogcfpc/src/ogc/usbgecko.inc
U packages/libogcfpc/src/ogc/video_types.inc
U packages/libogcfpc/src/bte/bte.inc
--- Merging r21034 into '.':
U packages/winunits-jedi/src/jwalpmapi.pas
U packages/winunits-jedi/src/jwawinuser.pas
U packages/winunits-jedi/src/jwawindns.pas
--- Merging r21038 into '.':
U utils/instantfpc/instantfptools.pas
--- Merging r21039 into '.':
U rtl/objpas/fgl.pp

# revisions: 21001,2002,21003,21032,21033,21034,21038,21039
r21001 | paul | 2012-04-23 07:57:44 +0200 (Mon, 23 Apr 2012) | 1 line
Changed paths:
M /trunk/rtl/objpas/fmtbcd.pp

rtl: reduce warnings about deprecated symbol access
fetching log for rev 2002 - 452 characters
r2002 | jonas | 2005-12-20 11:13:10 +0100 (Tue, 20 Dec 2005) | 4 lines
Changed paths:
M /trunk/compiler/powerpc/cpupara.pas

* fixed passing record parameters of size >= 3 and whose size is not
divisible by 4 on Darwin (have to be passed on the stack instead of in
registers), fixes tcalext3
r21003 | michael | 2012-04-23 11:44:30 +0200 (Mon, 23 Apr 2012) | 1 line
Changed paths:
M /trunk/packages/fcl-image/src/fpwritepng.pp

* Indexed is by default false, in sync with usepalette which is false by default
r21032 | Legolas | 2012-04-25 10:23:07 +0200 (Wed, 25 Apr 2012) | 1 line
Changed paths:
M /trunk/packages/libndsfpc/src/nds/arm9/background.inc
M /trunk/packages/libndsfpc/src/nds/arm9/video.inc
M /trunk/packages/libndsfpc/src/nds/arm9/videoGL.inc
M /trunk/packages/libndsfpc/src/nds/fifocommon.inc
M /trunk/packages/libndsfpc/src/nds/system.inc

* Updated libndsfpc to ver.1.5.6 and devkitARM to r38
r21033 | Legolas | 2012-04-25 10:24:27 +0200 (Wed, 25 Apr 2012) | 1 line
Changed paths:
M /trunk/packages/libogcfpc/src/aesndlib.pp
M /trunk/packages/libogcfpc/src/bte/bte.inc
M /trunk/packages/libogcfpc/src/ogc/usbgecko.inc
M /trunk/packages/libogcfpc/src/ogc/video_types.inc
M /trunk/packages/libogcfpc/src/wiiuse/wiiuse.inc

* Updated libogcfpc to ver.1.8.11 and devkitPPC to r26
r21034 | sergei | 2012-04-25 13:26:00 +0200 (Wed, 25 Apr 2012) | 1 line
Changed paths:
M /trunk/packages/winunits-jedi/src/jwalpmapi.pas
M /trunk/packages/winunits-jedi/src/jwawindns.pas
M /trunk/packages/winunits-jedi/src/jwawinuser.pas

* Fixed 64-bit compilation warnings (Integer -> PtrUInt)
r21038 | marco | 2012-04-25 19:21:16 +0200 (Wed, 25 Apr 2012) | 1 line
Changed paths:
M /trunk/utils/instantfpc/instantfptools.pas

* fix passing of only one parameter on non unix platforms. Mantis #21630
r21039 | marco | 2012-04-25 19:25:00 +0200 (Wed, 25 Apr 2012) | 2 lines
Changed paths:
M /trunk/rtl/objpas/fgl.pp

* Fix for #21636, TFPSList.Pack several fixes.

git-svn-id: branches/fixes_2_6@21456 -

marco 13 jaren geleden
bovenliggende
commit
4f12001983

+ 1 - 1
packages/fcl-image/src/fpwritepng.pp

@@ -106,7 +106,7 @@ begin
   Fchunk.acapacity := 0;
   Fchunk.data := nil;
   FGrayScale := False;
-  FIndexed := True;
+  FIndexed := False;
   FCompressedText := True;
   FWordSized := True;
   FUseAlpha := False;

+ 23 - 0
packages/libndsfpc/src/nds/arm9/background.inc

@@ -266,6 +266,11 @@ procedure bgSetCenterf(id: cint; x, y: cint32); inline;
 procedure bgSetCenter(id, x, y: cint); inline;
 procedure bgSetAffineMatrixScroll(id, hdx, vdx, hdy, vdy, scrollx, scrolly: cint); inline;
 
+procedure bgExtPaletteEnable(); inline; 
+procedure bgExtPaletteEnableSub(); inline; 
+procedure bgExtPaletteDisable(); inline; 
+procedure bgExtPaletteDisableSub(); inline; 
+
 {$endif NDS_INTERFACE}
 
 {$ifdef NDS_IMPLEMENTATION}
@@ -585,6 +590,24 @@ begin
   bgState[id].dirty := false;
 end;
 
+procedure bgExtPaletteEnable(); inline; 
+begin 
+  REG_DISPCNT^ := REG_DISPCNT^ or DISPLAY_BG_EXT_PALETTE; 
+end;
+
+procedure bgExtPaletteEnableSub(); inline; 
+begin 
+  REG_DISPCNT_SUB^ := REG_DISPCNT_SUB^ or DISPLAY_BG_EXT_PALETTE; 
+end;
 
+procedure bgExtPaletteDisable(); inline; 
+begin 
+  REG_DISPCNT^ := REG_DISPCNT^ and not DISPLAY_BG_EXT_PALETTE; 
+end;
+
+procedure bgExtPaletteDisableSub(); inline; 
+begin 
+  REG_DISPCNT_SUB^ := REG_DISPCNT_SUB^ and not DISPLAY_BG_EXT_PALETTE; 
+end;
 
 {$endif NDS_IMPLEMENTATION}

+ 2 - 2
packages/libndsfpc/src/nds/arm9/video.inc

@@ -414,8 +414,8 @@ const
   DCAP_SIZE_256x192     = 3;
   DCAP_BANK_VRAM_A      = 0;
   DCAP_BANK_VRAM_B      = 1;
-  DCAP_BANK_VRAM_C      = 1;
-  DCAP_BANK_VRAM_D      = 2;
+  DCAP_BANK_VRAM_C      = 2;
+  DCAP_BANK_VRAM_D      = 3;
 
 const
   GFX_CONTROL           : pcuint16 = pointer($04000060);

+ 6 - 6
packages/libndsfpc/src/nds/arm9/videoGL.inc

@@ -54,7 +54,7 @@ function inttov16(n: cint): cint{v16}; inline;
 function f32tov16(n: cint32): v16; inline; 
 function v16toint(n: v16): cint; inline;
 function floattov16(n: cfloat): v16; inline;
-function VERTEX_PACK(x,y: cint): cint; inline;
+function VERTEX_PACK(x,y: cint): cuint32; inline;
 
 type
   v10 = cint16;
@@ -63,7 +63,7 @@ function inttov10(n: cint): cint; inline;
 function f32tov10(n: cint32): cint; inline;
 function v10toint(n: v10): cint; inline;
 function floattov10(n: cfloat): v10; inline;
-function NORMAL_PACK(x,y,z: cint): cint; inline;
+function NORMAL_PACK(x,y,z: cint): cuint32; inline;
 
 type
   rgb = cushort;
@@ -531,9 +531,9 @@ begin
   floattov16 := v16(trunc(n * (1 shl 12)));
 end;
 
-function VERTEX_PACK(x,y: cint): cint; inline;
+function VERTEX_PACK(x,y: cint): cuint32; inline;
 begin
-  VERTEX_PACK := (x and $FFFF) or (y shl 16);
+  VERTEX_PACK := cuint32((x and $FFFF) or (y shl 16));
 end;
 
 function inttov10(n: cint): cint; inline;
@@ -559,9 +559,9 @@ begin
 	  floattov10 := trunc(n * (1 shl 9));
 end;
 
-function NORMAL_PACK(x,y,z: cint): cint; inline;
+function NORMAL_PACK(x,y,z: cint): cuint32; inline;
 begin
-  NORMAL_PACK := ((x and $3FF) or ((y and $3FF) shl 10) or (z shl 20));
+  NORMAL_PACK := cuint32((x and $3FF) or ((y and $3FF) shl 10) or (z shl 20));
 end;
 
 //---------------------------------------------------------------------------------

+ 2 - 0
packages/libndsfpc/src/nds/fifocommon.inc

@@ -44,6 +44,8 @@ const
   SYS_REQ_KEYS       : FifoSystemCommands = 1;
   SYS_REQ_TIME       : FifoSystemCommands = 2;
   SYS_SET_TIME       : FifoSystemCommands = 3;
+  SDMMC_INSERT       : FifoSystemCommands = 4;
+  SDMMC_REMOVE       : FifoSystemCommands = 5;  
   
 type
  FifoSdmmcCommands = integer;

+ 4 - 1
packages/libndsfpc/src/nds/system.inc

@@ -51,7 +51,7 @@ procedure powerOn(bits: cint); cdecl; external;
 procedure powerOff(bits: cint); cdecl; external;
 
 procedure systemMsgHandler(bytes: cint; user_data: pointer); cdecl; external;
-procedure powerValueHandler(value: cuint32; data: pointer); cdecl; external;
+procedure systemValueHandler(value: cuint32; data: pointer); cdecl; external;
 
 procedure lcdSwap(); inline; 
 procedure lcdMainOnTop(); inline; 
@@ -78,6 +78,9 @@ type
 var
   SystemVectors: sysVectors; cvar; external;
 
+//void setSDcallback(void(*callback)(int));
+procedure setSDcallback(callback: pointer); cdecl; external; // ??
+
 // Helper functions for heap size
 //! returns current start of heap space
 function getHeapStart(): pcuint8; cdecl; external;

+ 5 - 1
packages/libogcfpc/src/aesndlib.pp

@@ -14,7 +14,11 @@ uses
 const
   MAX_VOICES = 32;
   SND_BUFFERSIZE = 384;  // output 2ms sound data at 48KHz
-  DSP_DEFAULT_FREQ = 48000;
+{$ifdef HW_DOL}
+  DSP_DEFAULT_FREQ = 48044;
+{$else}
+	DSP_DEFAULT_FREQ = 48000;
+{$endif}
   VOICE_STATE_STOPPED = 0;
   VOICE_STATE_RUNNING = 1;
   VOICE_STATE_STREAM = 2;

+ 4 - 4
packages/libogcfpc/src/bte/bte.inc

@@ -17,8 +17,8 @@ const
   HIDP_STATE_LISTEN = $01;
   HIDP_STATE_CONNECTING = $02;
   HIDP_STATE_CONNECTED = $04;
-  HIDP_OUTPUT_CHANNEL = $11;
-  HIDP_INPUT_CHANNEL = $13;
+  HIDP_CONTROL_CHANNEL = $11;
+  HIDP_DATA_CHANNEL = $13;
   HIDP_HDR_TRANS_MASK = $f0;
   HIDP_HDR_PARAM_MASK = $0f;
   HIDP_TRANS_HANDSHAKE = $00;
@@ -97,8 +97,8 @@ type
     ctrl_req_tail : Pctrl_req_t;
     cmdq : lwpq_t;
     bdaddr : _bd_addr;
-    out_pcb : Pl2cap_pcb;
-    in_pcb : Pl2cap_pcb;
+    ctl_pcb : Pl2cap_pcb;
+    data_pcb : Pl2cap_pcb;
     recv : Trecv;
     conn_cfm : Tconn_cfm;
     disconn_cfm : Tdisconn_cfm;

+ 6 - 0
packages/libogcfpc/src/ogc/usbgecko.inc

@@ -23,5 +23,11 @@ function usb_recvbuffer_safe_ex(chn: cint32; buffer: pointer;
 
 function usb_sendbuffer_safe_ex(chn: cint32; buffer: pointer;
   size, retries: cint): cint; cdecl; external;
+  
+  
+function usb_flashread(chn: cint32; offset: cuint32; buffer: pointer; length: cint): cint; cdecl; external;
+function usb_flashwrite(chn: cint32; offset: cuint32; const buffer: pointer, length: cint): cint; cdecl; external;
+function usb_flashverify(chn: cint32): cint; cdecl; external;
+
 {$ENDIF OGC_INTERFACE}
 

+ 8 - 6
packages/libogcfpc/src/ogc/video_types.inc

@@ -27,7 +27,7 @@ const
   VI_MAX_HEIGHT_NTSC = 480;
 
   VI_MAX_WIDTH_PAL   = 720;
-  VI_MAX_HEIGHT_PAL  = 574;
+  VI_MAX_HEIGHT_PAL  = 576;
 
   VI_MAX_WIDTH_MPAL  = 720;
   VI_MAX_HEIGHT_MPAL = 480;
@@ -43,18 +43,18 @@ function VI_TVMODE(fmt, mode: cint): cint; inline;
 {$define VI_TVMODE_NTSC_INT     := VI_TVMODE(VI_NTSC, VI_INTERLACE)}
 {$define VI_TVMODE_NTSC_DS      := VI_TVMODE(VI_NTSC, VI_NON_INTERLACE)}
 {$define VI_TVMODE_NTSC_PROG    := VI_TVMODE(VI_NTSC, VI_PROGRESSIVE)}
-{$define VI_TVMODE_NTSC_PROG_DS := VI_TVMODE(VI_NTSC, (VI_PROGRESSIVE or VI_NON_INTERLACE))}
 
 {$define VI_TVMODE_PAL_INT := VI_TVMODE(VI_PAL, VI_INTERLACE)}
 {$define VI_TVMODE_PAL_DS  := VI_TVMODE(VI_PAL, VI_NON_INTERLACE)}
+{$define VI_TVMODE_PAL_PROG := VI_TVMODE(VI_PAL, VI_PROGRESSIVE)}
 
 {$define VI_TVMODE_EURGB60_INT     := VI_TVMODE(VI_EURGB60, VI_INTERLACE)}
 {$define VI_TVMODE_EURGB60_DS      := VI_TVMODE(VI_EURGB60, VI_NON_INTERLACE)}
 {$define VI_TVMODE_EURGB60_PROG    := VI_TVMODE(VI_EURGB60, VI_PROGRESSIVE)}
-{$define VI_TVMODE_EURGB60_PROG_DS := VI_TVMODE(VI_EURGB60, (VI_PROGRESSIVE or VI_NON_INTERLACE))}
 
 {$define VI_TVMODE_MPAL_INT := VI_TVMODE(VI_MPAL, VI_INTERLACE)}
 {$define VI_TVMODE_MPAL_DS  := VI_TVMODE(VI_MPAL, VI_NON_INTERLACE)}
+{$define VI_TVMODE_MPAL_PROG := VI_TVMODE(VI_MPAL, VI_PROGRESSIVE)}
 
 {$define VI_TVMODE_DEBUG_INT := VI_TVMODE(VI_DEBUG, VI_INTERLACE)}
 
@@ -73,10 +73,11 @@ var
   TVNtsc480Prog: GXRModeObj; cvar; external;  
   TVNtsc480ProgSoft: GXRModeObj; cvar; external;
   TVNtsc480ProgAa: GXRModeObj; cvar; external;
-  TVMpal480IntDf: GXRModeObj; cvar; external;	
-  TVMpal480IntAa: GXRModeObj; cvar; external;
   TVMpal240Ds: GXRModeObj; cvar; external;
   TVMpal240DsAa: GXRModeObj; cvar; external;
+  TVMpal480IntDf: GXRModeObj; cvar; external;	
+  TVMpal480IntAa: GXRModeObj; cvar; external;
+  TVMpal480Prog: GXRModeObj; cvar; external;
   TVPal264Ds: GXRModeObj; cvar; external;				
   TVPal264DsAa: GXRModeObj; cvar; external;			
   TVPal264Int: GXRModeObj; cvar; external;				
@@ -84,7 +85,8 @@ var
   TVPal524IntAa: GXRModeObj; cvar; external;		
   TVPal528Int: GXRModeObj; cvar; external;				
   TVPal528IntDf: GXRModeObj; cvar; external;		
-  TVPal574IntDfScale: GXRModeObj; cvar; external;
+  TVPal576IntDfScale: GXRModeObj; cvar; external;
+  TVPal576ProgScale: GXRModeObj; cvar; external;
   TVEurgb60Hz240Ds: GXRModeObj; cvar; external;
   TVEurgb60Hz240DsAa: GXRModeObj; cvar; external;
   TVEurgb60Hz240Int: GXRModeObj; cvar; external;

+ 1 - 1
packages/libogcfpc/src/wiiuse/wiiuse.inc

@@ -122,7 +122,7 @@ const
   _WIIUSE_DISCONNECT: WIIUSE_EVENT_TYPE = 4;
   WIIUSE_UNEXPECTED_DISCONNECT: WIIUSE_EVENT_TYPE = 5;
   _WIIUSE_READ_DATA: WIIUSE_EVENT_TYPE = 6;
-  _WIIUSE_WRITE_DATA: WIIUSE_EVENT_TYPE = 7;
+  WIIUSE_ACK: WIIUSE_EVENT_TYPE = 7;
   WIIUSE_NUNCHUK_INSERTED: WIIUSE_EVENT_TYPE = 8;
   WIIUSE_NUNCHUK_REMOVED: WIIUSE_EVENT_TYPE = 9;
   WIIUSE_CLASSIC_CTRL_INSERTED: WIIUSE_EVENT_TYPE = 10;

+ 1 - 1
packages/winunits-jedi/src/jwalpmapi.pas

@@ -1527,7 +1527,7 @@ end;
 
 function ObjData(const x: TRsvpObjHdr): Pointer;
 begin
-  Result := Pointer(Integer(@x) + SizeOf(x));
+  Result := Pointer(PtrUInt(@x) + SizeOf(x));
 end;
 
 function Style_is_Wildcard(p: DWORD): Boolean;

+ 4 - 4
packages/winunits-jedi/src/jwawindns.pas

@@ -1890,7 +1890,7 @@ end;
 
 function DNS_HEADER_FLAGS(pHead: PDNS_HEADER): WORD;
 begin
-  Result := PWORD(Integer(pHead) + SizeOf(WORD))^;
+  Result := PWORD(@pHead^.Flags)^;
 end;
 
 procedure DNS_BYTE_FLIP_HEADER_COUNTS(var pHeader: PDNS_HEADER);
@@ -1915,17 +1915,17 @@ end;
 
 function IS_WORD_ALIGNED(P: Pointer): BOOL;
 begin
-  Result := (Integer(P) and 1) = 0;
+  Result := (PtrUInt(P) and 1) = 0;
 end;
 
 function IS_DWORD_ALIGNED(P: Pointer): BOOL;
 begin
-  Result := (Integer(P) and 3) = 0;
+  Result := (PtrUInt(P) and 3) = 0;
 end;
 
 function IS_QWORD_ALIGNED(P: Pointer): BOOL;
 begin
-  Result := (Integer(P) and 7) = 0;
+  Result := (PtrUInt(P) and 7) = 0;
 end;
 
 function DNS_TEXT_RECORD_LENGTH(StringCount: Integer): Integer;

+ 1 - 1
packages/winunits-jedi/src/jwawinuser.pas

@@ -11935,7 +11935,7 @@ end;
 
 function RAWINPUT_ALIGN(x: Pointer): Pointer;
 begin
-  Result := Pointer((Integer(x) + SizeOf(DWORD) - 1) and not (SizeOf(DWORD) - 1));
+  Result := Pointer((PtrUInt(x) + (SizeOf(DWORD) - 1)) and not (SizeOf(DWORD) - 1));
 end;
 
 function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;

+ 22 - 6
rtl/objpas/fgl.pp

@@ -654,26 +654,42 @@ begin
     Delete(Result);
 end;
 
+const LocalThreshold = 64;
+
 procedure TFPSList.Pack;
 var
+  LItemSize : integer;
   NewCount,
   i : integer;
   pdest,
   psrc : Pointer;
-begin
+  localnul : array[0..LocalThreshold-1] of byte;  
+  pnul : pointer;
+begin
+  LItemSize:=FItemSize;
+  pnul:=@localnul;
+  if LItemSize>Localthreshold then
+    getmem(pnul,LItemSize);
+  fillchar(pnul^,LItemSize,#0);    
   NewCount:=0;
   psrc:=First;
   pdest:=psrc;
+  
   For I:=0 To FCount-1 Do
     begin
-      if assigned(pointer(psrc^)) then
+        if not CompareMem(psrc,pnul,LItemSize) then
         begin
-          System.Move(psrc^, pdest^, FItemSize);
-          inc(pdest);
+          System.Move(psrc^, pdest^, LItemSize);
+          inc(pdest,LItemSIze);
           inc(NewCount);
-        end;
-      inc(psrc);
+        end
+      else
+        deref(psrc);
+      inc(psrc,LitemSize);
     end;
+  if LItemSize>Localthreshold then
+    FreeMem(pnul,LItemSize);
+
   FCount:=NewCount;
 end;
 

+ 17 - 17
rtl/objpas/fmtbcd.pp

@@ -2576,27 +2576,27 @@ writeln ( '> ', i4, ' ', bh.Singles[i4], ' ', Add );
 
           If Not Negative Then
           Begin
-            Case CurrencyFormat Of
-              0: Result := CurrencyString + Result;
-              1: Result := Result + CurrencyString;
-              2: Result := CurrencyString + ' ' + Result;
-              3: Result := Result + ' ' + CurrencyString;
+            Case FormatSettings.CurrencyFormat Of
+              0: Result := FormatSettings.CurrencyString + Result;
+              1: Result := Result + FormatSettings.CurrencyString;
+              2: Result := FormatSettings.CurrencyString + ' ' + Result;
+              3: Result := Result + ' ' + FormatSettings.CurrencyString;
             End
           End
           Else
           Begin
-            Case NegCurrFormat Of
-              0: Result := '(' + CurrencyString + Result + ')';
-              1: Result := '-' + CurrencyString + Result;
-              2: Result := CurrencyString + '-' + Result;
-              3: Result := CurrencyString + Result + '-';
-              4: Result := '(' + Result + CurrencyString + ')';
-              5: Result := '-' + Result + CurrencyString;
-              6: Result := Result + '-' + CurrencyString;
-              7: Result := Result + CurrencyString + '-';
-              8: Result := '-' + Result + ' ' + CurrencyString;
-              9: Result := '-' + CurrencyString + ' ' + Result;
-              10: Result := CurrencyString + ' ' + Result + '-';
+            Case FormatSettings.NegCurrFormat Of
+              0: Result := '(' + FormatSettings.CurrencyString + Result + ')';
+              1: Result := '-' + FormatSettings.CurrencyString + Result;
+              2: Result := FormatSettings.CurrencyString + '-' + Result;
+              3: Result := FormatSettings.CurrencyString + Result + '-';
+              4: Result := '(' + Result + FormatSettings.CurrencyString + ')';
+              5: Result := '-' + Result + FormatSettings.CurrencyString;
+              6: Result := Result + '-' + FormatSettings.CurrencyString;
+              7: Result := Result + FormatSettings.CurrencyString + '-';
+              8: Result := '-' + Result + ' ' + FormatSettings.CurrencyString;
+              9: Result := '-' + FormatSettings.CurrencyString + ' ' + Result;
+              10: Result := FormatSettings.CurrencyString + ' ' + Result + '-';
             End;
           End;
         End;

+ 10 - 3
utils/instantfpc/instantfptools.pas

@@ -306,7 +306,9 @@ end;
 
 procedure Run(const Filename: string);
 var
-  p: PPChar;
+  p : PPChar;
+  i : integer;
+  args : array of string;
 begin
   p:=argv;
   inc(p);
@@ -317,8 +319,13 @@ begin
     inc(p);
   end;
   {$IFNDEF UseFpExecV}
-    Inc(p); //lose the first command-line argument with the the script filename
-    Halt(ExecuteProcess(Filename,[p^]));
+    if paramcount>1 then
+      begin
+        setlength(args,paramcount-1);
+        for i:=2 to paramcount do 
+          args[i-2]:=paramstr(i);
+      end;
+    Halt(ExecuteProcess(Filename,args));
   {$ELSE}
     Halt(FpExecV(Filename,p));
   {$ENDIF}