DRAWENV *SetDefDrawEnv(DRAWENV *draw, int x, int y, int w, int h);


disassembled listing :
SetDefDrawEnv:
    addiu   sp,sp,-40
    sw      s2,24(sp)
    lw      s2,56(sp)
    sw      s1,20(sp)
    move    s1,a0
    sw      s3,28(sp)
    move    s3,a1
    sw      s4,32(sp)
    move    s4,a2
    sw      s0,16(sp)
    sw      ra,36(sp)
    jal     GetVideoMode
    move    s0,a3
    li      v1,1
    sh      s3,0(s1)
    sh      s4,2(s1)
    sh      s0,4(s1)
    sh      zero,12(s1)
    sh      zero,14(s1)
    sh      zero,16(s1)
    sh      zero,18(s1)
    sb      zero,25(s1)
    sb      zero,26(s1)
    sb      zero,27(s1)
    sb      v1,22(s1)
    beqz    v0,text_74
    sh      s2,6(s1)
    j       text_78
    slti    v0,s2,289
text_74:
    slti    v0,s2,257
text_78:
    sb      v0,23(s1)
    move    v0,s1
    li      v1,10
    sh      s3,8(v0)
    sh      s4,10(v0)
    sh      v1,20(v0)
    sb      zero,24(v0)
    lw      ra,36(sp)
    lw      s4,32(sp)
    lw      s3,28(sp)
    lw      s2,24(sp)
    lw      s1,20(sp)
    lw      s0,16(sp)
    jr      ra
    addiu   sp,sp,40
source code :
DRAWENV *SetDefDrawEnv(DRAWENV *draw, int x, int y, int w, int h)
{
    int mode = GetVideoMode();

    setRECT(&draw->clip, x, y, w, h);
    setRECT(&draw->tw, 0, 0, 0, 0);
    setRGB0(draw, 0, 0, 0);

    draw->dtd = 1;
    draw->dfe = mode ? h < 289 : h < 257;
    draw->ofs[0] = x;
    draw->ofs[1] = y;
    draw->tpage = getTPage(0, 0, 640, 0);
    draw->isbg = 0;

    return draw;
}
reversed listing :
SetDefDrawEnv:
    subu    $sp,$sp,40
    sw      $18,24($sp)
    lw      $18,56($sp)
    sw      $17,20($sp)
    move    $17,$4
    sw      $19,28($sp)
    move    $19,$5
    sw      $20,32($sp)
    move    $20,$6
    sw      $16,16($sp)
    sw      $31,36($sp)
    jal     GetVideoMode
    move    $16,$7
    li      $3,0x00000001
    sh      $19,0($17)
    sh      $20,2($17)
    sh      $16,4($17)
    sh      $0,16($17)
    sh      $0,18($17)
    sb      $0,25($17)
    sb      $0,26($17)
    sb      $0,27($17)
    sb      $3,22($17)
    beq     $2,$0,$L2
    sh      $18,6($17)
    j       $L4
    slt     $2,$18,289
$L2:
    slt     $2,$18,257
$L4:
    sb      $2,23($17)
    move    $2,$17
    li      $3,10
    sh      $19,8($2)
    sh      $20,10($2)
    sh      $3,20($2)
    sb      $0,24($2)
    lw      $31,36($sp)
    lw      $20,32($sp)
    lw      $19,28($sp)
    lw      $18,24($sp)
    lw      $17,20($sp)
    lw      $16,16($sp)
    j       $31
    addu    $sp,$sp,40
coincidence: 100%

STATUS: COMPLETE
8 Apr 2003
Hosted by uCoz