Programmer une ti-83 plus(texas instruments) avec asm

Contenu du snippet

Bonjour tout le monde, c'est mon premier script ici. J'ai eu la calculatrice TI-83 Plus pour le cours de math et j'ai commencé à programmer en ASM pour faire des programmes puissants. Ce qui suit est un tutoriel qui vous explique comment faire des programmes en ASM pour TI-83 Plus (ca doit surement marcher avec dautre version...)

Source / Exemple :


---------------------
INFOS - TI-83 Plus
---------------------
CPU:          8Mhz Z80
Flash ROM: 160K 
RAM:          24K
Piles:  4AAA 
          1 CR 1616 (backup) 
LCD: 64 x 96 Pixels
Languages: TI-Basic et ASM

ATTENTION: mettre un [ENTER] après le .end

----------
DEFAULT
----------
;programme default
.nolist
#include "ti83plus.inc"  ;fichier nécessaire pour acceder aux routines systemes
 .org userMem-2          ;dire ou commencer dans la mémoire
 .db $BB,$6D
 bcall(_clrLCDfull)         ;effacer l'écran
 
 ret
.end                           ;fin du code

----------
DEFAULT
----------

Ce script va seulement effacer l'écran. N'utilisez pas ASM juste pour ca, il y a déja une fonction implémenté dans la calculatrice(ClrHome) :p . Vous ajoutez votre code après bcall(_clrLCDfull).

-------------
SHUTDOWN
-------------
#define B_CALL(xxxx)	rst 28h \ .dw xxxx		
#define B_JUMP(xxxx)	call 50h \ .dw xxxx	

	.org 9D95h	
	
	DI		; neutraliser les interruptions
        LD A,001H		; mettre 0 au regitre "a"
        OUT (003H),A		; fermer l'ecran
	EI		;accepter les interruptions
        RET                

.end
END

-------------
SHUTDOWN
-------------

Ce script va fermer la calculatrice!

-------
LIGNE
-------
#define B_CALL(xxxx)	rst 28h \ .dw xxxx	
#define B_JUMP(xxxx)	call 50h \ .dw xxxx		

_op1set3		=41a1h
_vertcmd		=48a9h

	.org	9D95h			

	B_CALL(_op1set3)		; Opl1 = 3	
	B_CALL(_vertcmd)		; dessiner la ligne verticale: Y = 3	
	ret			
.end			
END

-------
LIGNE
-------

Ce script va afficher une ligne sur le graphique. Vous allez être surpris par la vitesse comparée au TI-BASIC

-------
TEXTE
-------
#define B_CALL(xxxx)    rst 28h \ .dw xxxx
#define B_JUMP(xxxx)    call 50h \ .dw xxxx

_ClrLCDFull             =4540h
_GrBufClr               =4BD0h
_VPutS          =4561h
PENCOL                  =86D7h
CURROW  =800Ch
CURCOL          =800Dh
_puts           =450Ah

.org 9D95h

  B_CALL(_clrLCDFull)           ;effacer l'écran
  B_CALL(_GrBufClr)             ;effacer toutes les valeurs du graph
  ld hl,0000h                      ;loader 0 au registre hl
  ld (PENCOL),hl                 ;loader la valeur de hl à Pencol
  ld hl,str1                         ;loader le string de texte
  B_CALL(_vputs)                ;CALL pour afficher du texte sur l'écran
  ld hl,0001h                       ;loader 0 au registre hl
  ld (CURROW),hl                ;loader la valeur de hl a la coordonnée normale du texte
  ld hl,0000h           
  ld (CURCOL),hl                
  ld hl,str2
  B_CALL(_puts)                   ;Mettre le texte homescreen dessus
  ret   
str1:                                   ;label pour le texte
  .db "petit texte.",0 ;petit texte
str2:                   
  .db "grand texte.     ",0         ;normal (plus grand) text 
.end
END

-------
TEXTE
-------

Bon, je dois partir mais je promets de continuer ce tutoriel dès que je le pourrais

Conclusion :


Merci de m'avertir s'il y a des bugs...

bob3000
http://www.netdude.tk

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.