Mardi 27 Novembre 2007
Exécution en flash sous PedroM.
Voilà ma manière de lancer en flash sous PedroM ou en RAM sous AMS. Si je me trompe ou si vous voyez mieux, n'hésitez pas. Le code n'a pas été testé encore pour cause de crash de TiEmu, pour le moment non résolu.
cmpi.w #'R'<<8+'O',0x32 |test for PedroM beq.s PedroMLaunch |runs under PedroM, execute in flash if archived! |================================================================== | AMS Launch |================================================================== cmpi.w #'P'<<8+'O',0x32 |check for PreOS bne.s PreOSError |failed, quit clr.l -(%sp) |version + function pea.l tiemacs(%pc) |*string jsr kernel__LibsExec |try to realloc & call tst.l (%sp) |success ? addq.l #8,%sp |clear the stack beq.s ExecError |if call failed, disp a message rts |else quit |================================================================== | PedroM Launch |================================================================== PedroMLaunch: jmp tiemmain__0000 |realloc nothing =) |================================================================== | PreOS not installed, disp an error msg and quit |================================================================== PreOSError: lea.l PreOSMsg(%pc),%a0 bra.s DispError |================================================================== | Main part not relocated, probably a memory error |================================================================== ExecErroc: lea.l ExecErroc(%pc),%a0 |================================================================== | Disp an error message |================================================================== DispError: pea.l 0<<16+1 |buttons pea.l (%a0) |*message pea.l _comment(%pc) |*title ROM_THROW DlgMessage |disp the message lea.l 12(%sp),%sp |adjust the stack rts
Je sais par exemple que TeOS ne supportait pas HW_VERSION et exécutait pourtant PCT qui ne voyait donc que des HW1. (à moins que ce soit un bug de TeOS tout simplement?)
Il n'y a pas de lien, les variables sont mal nommées :
tiemmain est le point d'entrée de la lib read-only, tiemacs(pc) la chaine de caractère passée à LibsExec.
Sinon c'est quoi le lien entre tiemman et tiemas(pc) ?