le code fautif
userlib@000D getfreearchive: movem.l d1-d7/a0-a6,-(a7) subq.l #8,a7 ; Stack Frame move.l a7,a2 ; Get ptr to stack frame clr.l -(a7) ; &allExceptBaseCode clr.l -(a7) ; &badSectors clr.l -(a7) ; &unusedSectors pea (a2) ; &free pea 4(a2) ; &freeAfterGC clr.l -(a7) ; &inUse jsr tios::EM_survey lea 8*4(a7),a7 move.l (a2),d0 ; free add.l (a2)+,d0 ; free+freeAfterGc movem.l (a7)+,d1-d7/a0-a6 rts
le code corrigé par lui
movem.l d1-d7/a0-a2,-(a7) subq.l #12,a7 ; Stack Frame move.l a7,a2 ; Get ptr to stack frame clr.l -(a7) ; &allExceptBaseCode clr.l -(a7) ; &badSectors pea (a2) ; &unusedSectors pea 4(a2) ; &free pea 8(a2) ; &freeAfterGC clr.l -(a7) ; &inUse jsr tios::EM_survey lea 9*4(a7),a7 move.l (a2)+,d0 ; unusedSectors add.l (a2)+,d0 ; free add.l (a2),d0 ; free+freeAfterGc (a7)+,d1-d7/a0-a2 rts
mais à quoi correspond exactement unusedSectors ?
un secteur pour les app flash (même si pas d'installées) et un pour le garbage memory ?
pour les registres sauvés, y en a pas un peu trop ? j'aurai mis a0-a2/d1-d2 perso



) erase, un secteur n'est plus "garantit" qu'il fonctionne encore longtemps en erase. Je me rappelle d'avoir lu un truc sur le code d'AMS qui testait les secteurs et marquait ceux qui sont défectueux.