Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - djtreble

Pages: [1] 2
1
Zaurus - pdaXrom / Ati W100
« on: February 27, 2005, 06:43:05 pm »
I started reverse engineering the aticore lib but there wasn't really any interest, infact the thread has been deleted. From what I've seen there really isn't that much more the w100 can do in hardware. I seem to remember reading that doing blits in external memory was no faster than a memcpy. The code for rastering horizontal poly scan lines does it pixel by pixel, there is no hardware acceleration.

If it has hardware mpeg decompression that would be about the only thing missing at the moment. From what I can remember it definitely can do colour space conversion. Using the internal memory as overlays would be nice as well.

2
Brisbane / Wifi Card For C860
« on: February 24, 2005, 06:36:25 pm »
I find myself in Brisbane, needing a CF wifi card for a C860 running pdaxrom.

Any good buys? Trusted suppliers?

Any info appreciated.

Cheers

Dan

3
UK / Import Duty
« on: February 22, 2005, 06:03:23 pm »
Didn't pay any import duty. Maybe that was due to a modest valuation on the package.

I didn't have to ask for that either.

Cheers

Dan

4
General Discussion / Aticore
« on: December 27, 2004, 11:49:29 pm »
Quote
and that code looks pretty close to assembly

Ha ha, you cheeky thing, it took ages to work out which bitfield it was doing what to   loads of the really messy stuff is comented out.

Ultimately I want better graphics drivers, I want a better understanding of the chip and I'd really like hardware mpeg. I want hardware blits (if they are faster). I want a (flat shaded) poly rasterer that at least uses some of the hardware for gl.

That's a long way off, just wondered if anyone else was interested.

5
General Discussion / Aticore
« on: December 27, 2004, 04:30:37 am »
Traveling the world for a year with my Z, I fill the gaps by slowly turning the assembly into c code. Currently in Sydney. It'll take me ages, I'm on file 3 of 26, it's a mess and needs cleaning up bit by bit.

Anyone else want to help me?! Anyone care? Would anyone like to set me up some cvs for it?

Here's a highlight from file 2 to wet your whistle!

Code: [Select]
void SwitchToNon2DMode(char in1, unsigned char in2)
{
    unsigned char* clpgDrvState = (unsigned char*)lpgDrvState;
    //short* slpgDrvState = (short*)lpgDrvState;
    dp_gui_master_cntl_u *dpGuiMasterCntl = (dp_gui_master_cntl_u *)&lpgDrvState[0x68/sizeof(unsigned int)];
    
    //if(clpgDrvState[0x6b] & 0x80)
    if(dpGuiMasterCntl->f.gmc_dp_op == DP_PIX_ORDER_LSB2MSB)
    {
  if(in1 == 0)
  {
      return;
  }
    }
    else
    {
  if(in1 == 1)
  {
      return;
  }
    }
    
    lpgDrvState[mmPLL_REF_FB_DIV / sizeof(unsigned int)] = 0x0;
    
    if(in1 != 0)
    {
  //clpgDrvState[0x6b] |= 0x80;
  dpGuiMasterCntl->f.gmc_dp_op = DP_OP_ARITHMETIC;
  
  //unk_432B10 = (clpgDrvState[0x69] >> 4) & 0x7;
  unk_432B10 = dpGuiMasterCntl->f.gmc_src_datatype;
  
  //unk_432B14 = (unsigned char)(slpgDrvState[0x6A / sizeof(short)] >> 1);
  unk_432B14 = dpGuiMasterCntl->f.gmc_rop3;
  
  PM4_SubmitPacket0(0, mmDEBUG1,1,&clpgDrvState[mmCP_ME_RAM_DATAH]);
  
  ResetGUIEngine();
    }
    else
    {
  
  PM4_SubmitPacket0(0, mmDEBUG1,1,&clpgDrvState[mmCP_ME_RAM_DATAH]);
  
  //clpgDrvState[0x6b] &= 0x7F;
  dpGuiMasterCntl->f.gmc_dp_op = DP_OP_ROP;
  
  //clpgDrvState[0x69] = (clpgDrvState[0x69] & ~0x70) | ((unk_432B10 & 7) << 4);
  dpGuiMasterCntl->f.gmc_src_datatype = unk_432B10;
    
  //unsigned char lr = slpgDrvState[0x6A / sizeof(short)] = (((slpgDrvState[0x6A / sizeof(short)] & ~0x1FC) & ~0x2) | unk_432B14 << 1);
  dpGuiMasterCntl->f.gmc_rop3 = unk_432B14;
  
  //unsigned char r12 = (clpgDrvState[0x69] >> 4) & 0x7;
  
  //unsigned char r4 = clpgDrvState[0x69] << 7;
  
  dp_datatype_u dpDatatype;
  
  //unsigned int r2 = ((clpgDrvState[0x68] >> 4 ) << 8 ) | (clpgDrvState[0x69] & 0xf) | (r12 << 13) | (r12 << 16) | (r4 << 30);  
  
  dpDatatype.f.dp_brush_datatype = dpGuiMasterCntl->f.gmc_brush_datatype;
  dpDatatype.f.dp_dst_datatype = dpGuiMasterCntl->f.gmc_dst_datatype;
  dpDatatype.f.dp_src2_datatype = dpGuiMasterCntl->f.gmc_src_datatype;
  dpDatatype.f.dp_src_datatype = dpGuiMasterCntl->f.gmc_src_datatype;
  dpDatatype.f.dp_byte_pix_order = dpGuiMasterCntl->f.gmc_dp_op;
  
  dp_mix_u dpMix;
  
  //unsigned int foo = ((((((0 & ~0x700 | (((clpgDrvState[0x6B] >> 1) & 0x7 ) << 8)) & ~0x2800) | 0x1000) & ~0xff0000) | lr << 16 ) & ~0x1000000 ) | ((clpgDrvState[0x6B] >> 7) << 24);
  
  dpMix.f.dp_src_source = dpGuiMasterCntl->f.gmc_dp_src_source;
  dpMix.f.dp_src2_source = DP_SRC_MEM_RECTANGULAR; //(dpMix.f.dp_src2_source & ~5) | 2; //strange
  dpMix.f.dp_rop3 = dpGuiMasterCntl->f.gmc_rop3;
  dpMix.f.dp_op = dpGuiMasterCntl->f.gmc_dp_op;
  
  PM4_SubmitPacket1(0,mmDP_DATATYPE,dpDatatype.val,mmDP_MIX,dpMix.val);
    }
    
    if(clpgDrvState[0xA2] != 0)
    {
  while( AtiCore_WaitComplete(0x64) == 0)
  {
  }
  
  //debug1_u debug1;
  unsigned int debug1;
  
  ReadRegDirect(0,mmDEBUG1,4,&debug1);
  
  if(in1 != 0)
  {
      debug1 |= 0x4000;
      
      if(dpGuiMasterCntl->f.gmc_src_datatype == DP_SRC_COLOR_SAME_AS_DST)
      {
    debug1 |= 1<<16;
      }
      
      if(in2 != 0)
      {
    debug1 |= 1<<17;
      }
      else
      {
    debug1 |= in2<<17;
      }
  }
  else
  {
      debug1 &= ~0x7000;
  }
  
  WriteRegDirect(0,mmDEBUG1,4,&debug1);
  
  lpgDrvState[mmCP_ME_RAM_DATAH] = debug1;
    }
    else
    {
  PM4_SubmitPacket0(0, mmDEBUG1,1,&clpgDrvState[mmCP_ME_RAM_DATAH]);
    }
    
    lpgDrvState[mmCP_ME_RAM_DATAL] &= ~0x1;
}

6
Zaurus - pdaXrom / Accumulator
« on: December 27, 2004, 04:22:02 am »
Bored of reverse engineering, I decided to muck about with the extra instructions intel added. Unfortunatly I get an illegal instruction, when executing this:

Code: [Select]
#include

unsigned int getAccLo ( void )
{
    unsigned int accHi;
    unsigned int accLo;
    
    asm
    (
  "MRA %0, %1, acc0"
  :"=r"(accLo),"=r"(accHi)
  :
    );
    
    return accLo;
}

int main (int argc, char *argv[])
{
    printf("lo : %d \n", getAccLo());
    
    return 1;
}

Probably needs the kernel to enable something. Downloading the pxa255 datasheets...

7
Zaurus - pdaXrom / rc5: gaim issues with msn
« on: October 11, 2004, 07:18:57 pm »
I have recieved a message on msn, just can't send. Which doesn't suggest a missing dependancy.

Unfortunatly I leave the country in 6 days and I've got lots of other stuff to do. Not enough time to work out a way to get my z online and debug gaim :-(

Might to try and recompile 0.77 though as it was suggested that works fine.

8
Zaurus - pdaXrom / rc5: gaim issues with msn
« on: October 11, 2004, 04:28:30 pm »
Yup, from me gentoo portage
Quote
DEPEND=">=x11-libs/gtk+-2.0
    >=dev-libs/glib-2.0
    nas? ( >=media-libs/nas-1.4.1-r1 )
    dev-util/pkgconfig
    sys-devel/gettext
    media-libs/libao
    >=media-libs/audiofile-0.2.0
    perl? ( >=dev-lang/perl-5.8.2-r1
            !<dev-perl/ExtUtils-MakeMaker-6.17 )
    spell? ( >=app-text/gtkspell-2.0.2 )
    dev-libs/nss
    gnutls? ( net-libs/gnutls )
    silc? ( >=net-im/silc-toolkit-0.9.12-r3 )
    evo? ( mail-client/evolution )
    !<x11-plugins/gaim-rhythmbox-${PV}"

It depends on gnutls. You sure it's missing scoutme?

9
Zaurus - pdaXrom / RC5 - VFP compile option
« on: October 10, 2004, 09:21:54 am »
Now I understand how floating point emulation was done before

http://www.heyrick.co.uk/assembler/coprocmnd.html

An undefined instruction trap for a coprosessor instruction is caught by the kernel and handled there.

SLOW!

Still haven't worked out whether lib gcc has Nicolas Pitre's hand coded floating point emulation though, that is meant to be even faster. Tryed some objdumb -d action, but libgcc doesn't have any symbols.

10
Zaurus - pdaXrom / RC5 - VFP compile option
« on: October 09, 2004, 01:25:12 pm »
interestingly

float test(float a, float b)
{
   return(a*b);
}

compiles to (gcc -O3 -S float.c -o float.s)

str lr, [sp,#-4]!
bl __mulsf3
ldr pc, [sp], #4

which calls another function to do the multiply. I thought it might inline the body of the multiply, but I guess that would really bloat the code.

11
Zaurus - pdaXrom / Native sdk
« on: October 09, 2004, 12:34:41 pm »
For rc5

http://mirror1.pdaxrom.org/rc5/zgcc-3.3.2.img

is NOT gzipped.

it wants mounting to a slightly different directory though

#mkdir -p /opt/arm/3.3.2-vfp
#mount -o loop,ro -t cramfs /mnt/card/zgcc-3.3.2.img /opt/arm/3.3.2-vfp

Hope this helps someone.

Cheers

Dan

12
Zaurus - pdaXrom / rc5: gaim issues with msn
« on: October 08, 2004, 09:42:52 am »
gaim still crashes sending a message in msn :-(

I'll try and debug if I get a chance.

13
Zaurus - pdaXrom / RC5 Available...
« on: October 07, 2004, 08:17:09 pm »
WOW OMG quake is good.

soooooo good

Thank you.

14
Zaurus - pdaXrom / RC5 Available...
« on: October 07, 2004, 03:04:45 pm »
May I ask exactly what "Vector Floating Point" means?

Did you backport the gcc3.4 stuff into 3.3.2?

I take it you don't mean vector as in an array of floats.

Not to sound ungrateful, just want to understand :-)

15
Zaurus - pdaXrom / Native sdk
« on: October 04, 2004, 03:11:27 pm »
Got it with a bit of hex editing. http://mirror1.pdaxrom.org/zgcc-3.3.2.img is actually a gziped cramfs image. So to mount it we need to do something like this...

#mv zgcc-3.3.2.img zgcc-3.3.2.img.gz
#gunzip zgcc-3.3.2.img.gz
#mkdir -p /opt/arm/3.3.2
#mount -o loop,ro -t cramfs /mnt/card/zgcc-3.3.2.img /opt/arm/3.3.2

And to check it's pathed and 'working'
#gcc -v

Thank god for that!

Now if only the file had been named zgcc-3.3.2.cramfs.gz , I wouldn't have had nearly as much fun!

Pages: [1] 2