; la TI-76.fr est une calculatrice de type TI-83 ; elle utilise la version 1.00fr5 de la ROM ; or, sur cette ROM la combinaison de touches ; [MODE] [ALPHA] [S] pour afficher la version et lancer l'auto-test ; ne marche plus ; ; en attendant de découvrir la nouvelle combinaison de touches ; ce programme assembleur permet d'accéder à l'écran d'auto-test ; ; après analyse de la ROM, le message "Enter l'auto-tst 1.00fr5" ; est situé à l'adresse $02D08 entre d'autres messages ; ; il y a une référence à ce message à l'adresse $0C00A ; la routine en question commence à l'adresse $0C000 ; REMARQUE: L'ADRESSE $0C000 EST SPECIFIQUE A LA TI-76.FR. ; L'UTILISATION DE CE PROGRAMME NON MODIFIE SUR TOUTE AUTRE TI-83 ; (TI-82 STATS, TI-82 STATS.FR) PROVOQUERA TRES CERTAINEMENT UN ; PLANTAGE AVEC PERTE DE MEMOIRE, CAR CE NE SERA PLUS LA BONNE ADRESSE. ; ; LE BUT DE CE PROGRAMME ASSEMBLEUR SIMPLE EST DONC ; DE LANCER LA ROUTINE A L'ADRESSE $0C000 ; ; RAPPEL: A L'ECRAN D'AUTO-TEST, UN APPUI SUR LA TOUCHE ENTREE ; LANCERA L'AUTO-TEST QUI EFFACERA LA MEMOIRE !!! ; UN APPUI SUR TOUTE AUTRE TOUCHE QUITTE CET ECRAN SANS DOMMAGE. ; ; le processeur Z80 ne peut accéder simultanément ; qu'à 64Ko de m‚moire RAM ou ROM ; ; or la ROM de la TI-83 fait déjà 256Ko, et la RAM 32Ko ; ; pour remédier à ce problème, la ROM est découpée en 16 pages ; numérotées de 0 à 15 ; ; à tout moment, le Z80 a accès: ; - à la ROM page 0 (0000-3FFF) mappée aux adresses (0000-3FFF) ; - à une ROM page de 0 à 15 mappée aux adresses (4000-7FFF) ; - à toute la RAM mappée aux adresses (8000-FFFF) ; ; la ROM page 0 correspond à la zone 00000-03FFF de la ROM ; la ROM page 1 correspond à la zone 04000-07FFF de la ROM ; la ROM page 2 correspond à la zone 08000-0BFFF de la ROM ; la ROM page 3 correspond à la zone 0C000-0FFFF de la ROM ; la ROM page 4 correspond à la zone 10000-13FFF de la ROM ; la ROM page 5 correspond à la zone 14000-17FFF de la ROM ; la ROM page 6 correspond à la zone 18000-1BFFF de la ROM ; la ROM page 7 correspond à la zone 1C000-1FFFF de la ROM ; la ROM page 8 correspond à la zone 20000-23FFF de la ROM ; la ROM page 9 correspond à la zone 24000-27FFF de la ROM ; la ROM page 10 correspond à la zone 28000-2BFFF de la ROM ; la ROM page 11 correspond à la zone 2C000-2FFFF de la ROM ; la ROM page 12 correspond à la zone 30000-33FFF de la ROM ; la ROM page 13 correspond à la zone 34000-37FFF de la ROM ; la ROM page 14 correspond à la zone 38000-3BFFF de la ROM ; la ROM page 15 correspond à la zone 3C000-3FFFF de la ROM ; ; la routine que l'on veut exécuter à $0C000 se situe donc ; dans la ROM page 3 ; ; or, par défaut la TI-83 est réglée sur la ROM page 12 ; ; DONC PRECISION, IL VA FALLOIR: ; - CHANGER LA ROM PAGE A 3 ; - EXECUTER LA ROUTINE $0C000 QUI SERA ALORS MAPPEE A L'ADRESSE $04000 ; SOURCE ; ------ ; pour régler une ROM page de 0 à 7, il faut déjà mettre à 0 le bit 4 du port (0) ; (si il est à 1, ce qui est le cas par défaut, on ne peut régler que les ROM pages de 8 à 15) in a,(0) ; récupère le port 0 ld b,%11101111 ; and b ; met le bit 4 à 0 sans changer les autres bits out (0),a ; écrit la nouvelle valeur du port (0) ; on choisit alors les ROM pages 0 à 7 ou 8 à 15 ; en écrivant dans le port (2) les valeurs $88 à $8F ld a,$8B ; on se prépare à régler la ROM page 3 out (2),a ; écrit la nouvelle valeur du port (2) call $4000 ; lance la routine de l'auto-test maintenant accessible RET .end