The only thing I know is:
Code: Select all
ld hl,2
add hl,sp
Code: Select all
char add( char a );
main() {
add( 56 );
}
char add ( char a ) {
// How do I get parameter?
a = a + 32;
return a; // how would I return it in assembly.
}
Moderator: MaxCoderz Staff
Code: Select all
ld hl,2
add hl,sp
Code: Select all
char add( char a );
main() {
add( 56 );
}
char add ( char a ) {
// How do I get parameter?
a = a + 32;
return a; // how would I return it in assembly.
}
Did, but it has call statements in practically every 5 lines to some other header file which is to confusing for me.How about disassembling the compiled C-code?
why are you using C anyway?
Code: Select all
void putspriteXOR( char x , char height,char y ,char *sprite)
{
#asm
ld hl,2
add hl,sp
ld a,(hl)
ld e,a
inc hl
ld a,(hl)
ld d,a
push de
pop ix
inc hl
ld a,(hl)
ld c,a
inc hl
inc hl
ld a,(hl)
ld b,a
inc hl
inc hl
ld a,(hl)
ld l,c
; A = x coordinate
; L = y coordinate
; B = number of rows
; IX = address of sprite
LD H, 0
LD D, H
LD E, L
ADD HL, HL
ADD HL, DE
ADD HL, HL
ADD HL, HL
LD E, A
SRL E
SRL E
SRL E
ADD HL, DE
LD DE, $9340
ADD HL, DE
AND 7
JR Z, _Aligned
LD C, A
LD DE, 12
._RowLoop
PUSH BC
LD B, C
defb $DD, $4E, $00
XOR A
._ShiftLoop
SRL C
RRA
djnz _ShiftLoop
INC HL
XOR (HL)
LD (HL), A
DEC HL
LD A, C
XOR (HL)
LD (HL), A
ADD HL, DE
INC IX
POP BC
djnz _RowLoop
jr _End
._Aligned
LD DE, 12
._PutLoop
defb $DD, $7E, $00
XOR (HL)
LD (HL), A
INC IX
ADD HL, DE
DJNZ _PutLoop
._End
#endasm
}