1

Valavu k tu tes mis à l'ASM ARM si tu pouvais me donner l'equivalent exact en C de ce source en ASM ARM (attention c l'ARM de la GBA et pas celui de la GP32 mais je pense pas k'il y ait de differences majeurs pour ce genre de source simple)

AREA program, CODE, READONLY

; Start execution

ENTRY
b start

; Create valid header
; This it *NOT* a valid header
; Use a header tool after compilation

DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00,0x00,0x00,0x00
DCB " "
DCB " "
DCB 0x00,0x00
DCB 0x00
DCB 0x00
DCB 0x00
DCB 0x00,0x00,0x00,0x00,0x00,0x00,0x00
DCB 0x00
DCB 0x00 ; Complement
DCB 0x00,0x00 ; Checksum

start

; Tell the player the address (in ROM) of the video data
ldr r0, =_video_data
ldr r1, =0x0203E1A0
str r0, [r1]

; Start the video player
ldr r0, =_video_player
bx r0

LTORG

ALIGN
_video_player
INCBIN VIDGBAPL.BIN

ALIGN
_video_data
INCBIN video.bin ; <--- This is the only thing that you need to change.
; Change this to point to your video file.

END

2

je c pa vraiment si ça a un équivalent en C...

ldr r0, =_video_data
ldr r1, =0x0203E1A0
str r0, [r1]
ldr r0, =_video_player
bx r0

bon, en attendant PpHd, je dirais:

| ldr r0, =_video_data
-> (video_data) dans r0 (= c koi?) et je vois pas a koi ça sert, vu qu'après on remet un autre truc dans r0... fin bon... ça doit être qquechose ac le "="

| ldr r1, =0x0203E1A0
| str r0, [r1]
-> double reloc..

| ldr r0, =_video_player
| bx r0
bah ça je pense que ça branche a l'addr contenue DANS 0x0203E1A0 ...

en C... heuu
je connais pas assez le C grin
ms je dirai:

char **a;
char *b;

b = _video_data;
a = 0x0203E1A0; (je c même pa si on a le droit de faire ça... fin bon)
**(a) = *(b);

pis après, je vois pas comment on peut faire un jump en C...
sinon, bah...

b = _video_player;
jmp b; grin

dsl c peut etre (surement) tt faux, ms je vois pas autre chose smile

3

j'attends pphd alors grin

4

ué, c mieu grin
dsl grin

5

ms c même pas sur que ça soit traduisible en C... roll

6

>ldr r0, =_video_data // r0 = adresse de video-data
>ldr r1, =0x0203E1A0 // r1 = adresse de 0x203e1a0
>str r0, [r1] // on sauve
video_Data = 0x0203E1A0;

>; Start the video player
>ldr r0, =_video_player
>bx r0
ASM_Call(_video_player); // Attention peut changer de mode (Thumb ou ARM)

Sans vouloir te vexer, le fait pas en C, parce que ASM_Call, ben c pas catholique