Bonjour,
je cherche à porter des programmes de la 83(+) à la 82. Le truc le plus embêtant c'est qu'on ne peut pas [b:816e1f26ca]toujours[/b:816e1f26ca] utiliser l'APD_BUF comme mémoire temporaire, contrairement à lorqu'on est sur 83(+).
J'aimerais donc savoir comment utiliser librement l'APD_BUF sous CrASH, ACE et SNG.
Merci !
pacHa Le 22/09/2003 à 13:16 pour ACE, tu peux utiliser SH_BUF, à l'adresse $9000, un buffer de 2k libres
pour crash tu peux utiliser APD_BUF sans probleme tant qu'aucune interruption n'y est stockée il me semble
voila, en espérant que ca puissse t'aider :bravo:
Pour CrASH :
[quote:a445dcc72e]
Using the APD_BUF
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
In an effort to make interrupt handlers easier to write, CrASH includes a
simple method of interrupt handling programs that run even when the program
that started it is no longer loaded (IE Game Wizard) telling the other
programs that APD_BUF is in use. It is VERY IMPORTANT that your programs pay
attention to this information. If you absolutely MUST use APD_BUF, simply
have your program refuse to run if not enough space is available in APD_BUF.
[/quote:a445dcc72e]
Donc je dois m'assurer qu'il n'y a pas d'interruption installée, ou plus simplement je dois désactiver toute interruption. Pour faire ça, est-ce suffisant de mettre l'octet INT_STATE à zéro ?
pacHa Le 23/09/2003 à 18:04 en fait tu checkes INT_STATE
si c'est egal à zero, y'a (normalement) pas d'interruptions installée, tu peux y aller (ou si y'en a une qui est installée, c'est pas dans les regles de l'art)
si y'en a une d'installée, tu peux soit demander de la désactiver soit tu peux utiliser APD_BUF+768-APD_FREE jusqu'à APD_BUF+768 sans probleme je crois (n fait je me souvint plus si APD_FREE part du debut ou de la fin d'APD_BUF...)
Oui, ça j'avais compris.
Mais comment on fait pour la désactiver/désinstaller l'interruption préexistante ? Un DI ne suffit pas je pense, il faut changer autre chose, non ?
pacHa Le 23/09/2003 à 18:55 ah mon avis tu remets le registre 'i' a sa valeur normale, ca doit suffir
ok la réponse est tout à la fin de CRASHPRG.TXT :
[quote:869c0a77cd]
- When you remove your interrupt handler, load $00 into I, and set INT_STATE
to $00. Though not required, please set APD_FREE to $300.[/quote:869c0a77cd]
Donc je n'ai qu'à faire les deux 1eres commandes. Sujet clos !