OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

Profile
Personal Photo
Options
Options
Personal Statement
djtreble doesn't have a personal statement currently.
Personal Info
djtreble
34 years old
Gender Not Set
Brisbane
Born May-5-1980
Interests
No Information
Statistics
Joined: 3-August 04
Profile Views: 371*
Last Seen: 22nd April 2006 - 06:18 PM
Local Time: Sep 17 2014, 09:33 AM
28 posts (0 per day)
Contact Information
AIM No Information
Yahoo No Information
ICQ No Information
MSN No Information
* Profile views updated each hour

djtreble

Members


Topics
Posts
Comments
Friends
My Content
24 Feb 2005
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
27 Dec 2004
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
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;
}
27 Dec 2004
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
#include <stdio.h>

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...
8 Oct 2004
gaim still crashes sending a message in msn :-(

I'll try and debug if I get a chance.
29 Sep 2004
Downloaded http://mirror1.pdaxrom.org/zgcc-3.3.2.img .

Instructions:

QUOTE
Quick install instructions: Put the file in /home/root and reboot


Sounds too good to be true and sure enough nothing happened.

QUOTE
or manually mount the file to /opt/arm/3.3.2


#mount /home/root/zgcc-3.3.2.img /opt/arm/3.3.2/
mount: /home/root/zgcc-3.3.2.img is not a block device (maybe try '-o loop')

#mount -o loop /home/root/zgcc-3.3.2.img /opt/arm/3.3.2/
mount: you must specify a filesystem type

#mount -o loop -t cramfs /home/root/zgcc-3.3.2.img /opt/arm/3.3.2/
mount: wrong fs type

What next?

Sorry if I'm being really dense.

Cheers

Dan
Last Visitors
djtreble has no visitors to display.

Comments
Other users have left no comments for djtreble.

Friends
There are no friends to display.
RSS Lo-Fi Version Time is now: 16th September 2014 - 03:33 PM