Compilateur ASM68K pour TI89
L'instruction Exec permet comme son nom l'indique d'exécuter des commandes!(on dirait du p'tit robert ;))

Comment s'utilise-t-elle?
C'est simple comme je lai déjà dit dans l'intro il suffit de programmer en langage machine!
Pour cela il vous faudra connaitre parfaitement le microprocesseur Motorolla 68000 de la calculatrice

Quelle est sa syntaxe?
Très simple aussi: elle demande juste une chaine de caractère!
exec "abc";

Que contient cette chaine de caractère?
Le code machine à exécuter!
Un Premier exemple un programme qui ne fait rien!
Et vous verrez: il faut déjà faire quelque chose!

On pourrait tenter:

exec ""

Conduit a un simple plantage de votre machine!

Quelques explications:
Un programme qui ne fait rien en C:

main()
{
}

Un programme qui ne fait rien en Pascall:

program fait_rien
begin
end.

De telles programmes donneront en assembleur:
main: ; point d'entré du programme
RTS ; sortie du programme

Pour ne rien faire il faut sortir du programme avec l'instruction RTS dont le code machine est 4E75.
Ainsi, un programme qui ne fait rien avec exec c'est:

exec "4E750000"


Les quatres zeros terminaux sont à ajouter en fin de chaque code (c'est Ti qui veux! çà doit être pour de problème d'accès mémoire...)
Voici quelques codes machine.
A utiliser avec précautions! ET à vos risques ! En général le retour à l'écran ne ce fait pas de manière propre...


Eteindre la calculatrice:
fonctionnel et utile dans le cas ou vous avez complètement corrompu l'OS de la calculatrice et qu'un simple appui sur "ON" provoque un plantage!(véridique!)

4E444E750000


Reset:
Jamais utilisé à faire avec une calculatrice vide de préférence!

4E420000


SelfTest: Pour lancer le self test de la TI-89 très utile quand vous ne vous souvenez plus de la combinaison de touche qui permet de le lancer...sinon ca sert à rien!

4E4A4E750000


Stop Break Permet d'empêcher l'utilisation de la touche ON pour interrompre un programme: l'unique intérêt est de gagner quelques micro secondes dans l'exécution d'un programme (coupure de l'interruption qui vérifie l'appui sur "ON")

50F85B034E750000


Ecran Noir
Affiche un écran noir: allume tous les pixels... Une version que j'ai trouvé sur le net, mais je me souviens plus où.

41F84C00303C02ED4290469851C8FFFA4E750000


Ecran Noir

41F84C00303C02ED20FCFFFFFFFF51C8FFF84E750000

Ecran Noir II
une version optimisée de la précédente même si le code est plus long!

41F84C00303C02ED20FCFFFFFFFF51C8FFF84E750000

Inverse l' ecran
Inverse l'ensemble des pixels de l'écran... une version que j'ai trouvé sur le net mais je me souviens plus où

41F84C00303C02ED0A98FFFFFFFF51C8FFF84E750000


Efface l'ecran

41F84C00303C02ED429020FC0000000051C8FFF64E750000


Efface l'écran II
Une version optimisée de la précédente.

41F84C00303C02ED429851C8FFFC4E750000


Augmenter le Contraste:

303C000A4E494E904E750000

Diminuer Contrast:

303C00094E494E904E750000

Décalage de l'écran:
Bas:

207C0000578C303C00622150001E59882150001E59882150001E59882150001E59882150001E91FC0000000E
51C8FFDC4E750000

Bas II:

307C578C303C00622150001E59882150001E59882150001E59882150001E59882150001E90FC000E51C8FFDE
4E750000

Haut:

207C00004C00303C006220E8001E20E8001E20E8001E20E8001E20E8001ED1FC0000000A51C8FFE44E750000
4E710000

Haut II:

307C4C00303C006220E8001E20E8001E20E8001E20E8001E20E8001ED1FC0000000A51C8FFE44E750000

Droite:

207C00004C00303C00632210E29120C12210E29120C12210E29120C12210E29120C12210E29120C1D1FC
0000000A51C8FFDA4E7500004E71

Droite II:

207C00004C00303C00632210E29120C12210E29120C12210E29120C12210E29120C12210E29120C1D1FC0000
000A51C8FFDA4E7500004E71

Gauche :

207C000057AA303C00632210E391208159882210E391208159882210E391208159882210E391208159882210
E3912081598891FC0000000A51C8FFD04E7500004E71

Gauche II:

307C57AA303C00632210E391208159882210E391208159882210E391208159882210E391208159882210E391
2081598891FC0000000A51C8FFD04E750000

utilisation des touches:
Pour quitter appuyer sur: 2nd, Shift, Diamond, Alpha, Haut, Bas, Gauche et Droite (oui tous en même temps!)

41F84C0013FC00010060001810B90060001B66F04E750000

41F84C00D0FC000413FCFFFF0060001920B9006000184A390060001B66F24E750000

41F84C0033FCFFFF00600018223900600018303C02ED10C151C8FFFC4A390060001B66DC4E750000

41F84C0033FC0000006000184E714E714E714E714E714E714E714E714E714E71223900600018303C02ED30C1
51C8FFFC4A390060001B66C84E750000

hello world un petit "hello world" tout simple (mis aux points à partir d'un autre site)

487A0010207800C8206803984E90588F4E7548656C6C6F2C20776F726421000000

Hello World II un hello world un peu plus complexe:

48E708042A7800C82F3C00000F00206D02884E9028084A84670000542EBC00000F
0048784C002F04206D09A84E904FEF000C206D06784E903F3C0004487A003842A7
206D06A44E904FEF000A206D01444E902F3C00000F002F0448784C00206D09A84E
90508F2E84206D028C4E90588F4CDF20104E7548656C6C6F2C20776F726C642100
000000

ROM_CALL: un essai avec les ROM CALL qui attendent l'appui d'une touche

2F0D2A7800C8206D01444E902A5F4E750000

Quelques petits programmes sympathiques... mis au point pour "taquiner" un copain, même s'ils en ont l'aire ils ne bloquent pas la calculatrice...

203c000000644E4451C8FFFC4E750000

223c0000001E4E44303c000a4E494e9051c9fff4223c0000001e4e44303c00094e494e9051c9fff44e750000