30

Donc ça viens bien des émulateurs (j'aurai juré que wabbitemu émulait parfaitement la 83+ pourtant).

31

Je crois qu'il l'émule bien, si tu veux je te donne le programme pour le 83+ (qui marche parfaitement sur l'émulateur).

#define bcall(xxxx)	rst 28h \ .dw xxxx
#include "ti83plus.inc"
.org $9D93
.db $BB,$6D
	bcall(_RclANS)
	bcall(_ConvOp1)
	dec e
	jr z,installer_interruption 
	im 1 
	ret
installer_interruption: 
	di 
	ld hl,$9900
	ld de,$9901
	ld bc,256 
	ld (hl),$9A 
	ldir 
 
	ld hl,debut_interruption 
	ld de,$9A9A 
	ld bc,fin_interruption-debut_interruption 
	ldir
	ld a,$99
	ld i,a
	im 2
	ei
	ret
debut_interruption: 
	exx
	ex af,af' 
	in a,($03) 
	and %11111110 
	out ($03),a 
 	jp $003A
fin_interruption: 

32

Ça compile mais ça ne marche toujours pas chez moi, enfin je veux bien te croire.

edit :

Bon ça semble marche sous ému avec la 83 :

CDDC4ECDFC4E1D2803ED56C9F32100841101840100013682EDB0215493118282011C00EDB03E84ED47ED5EFBC9F3D9083A0A803DCA6993DB03E6FED30308D9C3380008D9ED56FBED4D
End
0000
End

Source
.nolist
#define TI83
#define _RCLANS $4EDC
#define _CONVOP1 $4EFC

#include "ion.inc"

.list
.org $9327

debut:
call _RCLANS
call _CONVOP1
dec e
jr z,installer_interruption
im 1
ret

installer_interruption:
di
ld hl,$8400
ld de,$8401
ld bc,256
ld (hl),$82
ldir

ld hl,debut_interruption
ld de,$8282
ld bc,fin_interruption-debut_interruption
ldir
ld a,$84
ld i,a
im 2
ei
ret

debut_interruption:
di
exx
ex af,af'

ld a,($800A)
dec a
jp z,stop_interruption

in a,($03)
and %11111110
out ($03),a

ex af,af'
exx
jp $0038

stop_interruption:
ex af,af'
exx
im 1
ei
reti

fin_interruption:
.end


tromb Fichier joint : ONBLOCK.83p

33

Désolé, l'émulateur ne se rallume plus. Ne pourrait tu pas faire simplement un programme qui agit comme pause au bout de 5 minutes sauf dessuite, sans te préocuper de [On], je crois qu'avec ça, je devrais déjà y arrivé. "pause ne correspond malheurusement pas car il faut désactiver le blocage de [On] avant l'extinction de la TI mais il ne faut pas que l'on ait le Temps d'appuier sur [on] avant qu'elle ne soit éteinte.

Merci d'avance
Sandro

34

Je viens de me rendre compte que le "ei" avant le saut vers l'interruption standard foirait tout, donc j'edit.

T'as essayé sur ta TI ?

Je comprend pas trop ce que tu veux faire... Le truc c'est de désactiver ON pendant ton programme puis de le réactiver juste avant l'APD, et normalement c'est ce que fait le programme.

En même temps je me demande si l'APD marche pendant un programme Basic, je dirai même que non.

Quand même je trouve que tu te prends la tête pour rien, à la limite j'te fait un programme qui éteint la calto et à toi de gérer ça en Basic.

35

deeph (./34) :
Quand même je trouve que tu te prends la tête pour rien, à la limite j'te fait un programme qui éteint la calto et à toi de gérer ça en Basic.

Si ça ne me quittte pas le programme en basic au ralumage, c'est exactement ça qu'il me faut, désolé si je n'ai pas été assez clair (j'étais un peu stressé hiers pour mon écrit de français).

Merci d'avance
Sandro

36

Oui normalement c'est ça vu que ça émule un arrêt de la TI (on éteint l'écran et les interruptions jusqu'à ce qu'on appui sur ON, ce qui nécessite de désinstaller ONBLOCK avant).

Je vais voir ce que je peux faire.

37

Voilà :

F33E01D303AFD30408D9FBC9
End
0000
End
off.z80
.nolist
#define TI83

#include "ion.inc"

.list
.org $9327

debut:
di
ld a,1
out (3),a
xor a
out (4),a
ex af,af'
exx
ei
ret
.end


tromb Fichier joint : OFF.83p

edit : + la version finale d'ONBLOCK

CDDC4ECDFC4E1D2803ED56C9F32100841101840100013682EDB0215493118282010E00EDB03E84ED47ED5EFBC9F3D908DB03E6FED30308D9C33800
End
0000
End
onblock.z80
.nolist
#define TI83
#define _RCLANS $4EDC
#define _CONVOP1 $4EFC

#include "ion.inc"

.list
.org $9327

debut:
call _RCLANS
call _CONVOP1
dec e
jr z,installer_interruption
im 1
ret

installer_interruption:
di
ld hl,$8400
ld de,$8401
ld bc,256
ld (hl),$82
ldir

ld hl,debut_interruption
ld de,$8282
ld bc,fin_interruption-debut_interruption
ldir
ld a,$84
ld i,a
im 2
ei
ret

debut_interruption:
di
exx
ex af,af'

in a,($03)
and %11111110
out ($03),a

ex af,af'
exx
jp $0038

fin_interruption:
.end


tromb Fichier joint : ONBLOCK.83p

38

Les appels pour 83 sont de simples sauts et non des rom call quelqu'un me l'a dit j'en suis sur.
Cela dit, la notion de rom call vis à vis d'un simple saut me semble assez floue, le difference tient au fait qu'un rom call est une sorte d'appel avec decalage dans une table d'interruption ou un truc du genre non???

@deeph: quelle est l'option qui unsquish le code ? spasm -A? (-T il me semble que c'est pour le tasm80.tab)

39

Non enfaite spasm le gère pas, c'est Bin2var2 qui s'en charge.

-T génère le fichier .lst
-A rend les labels sensibles à la casse

J'en sais rien si c'est un abus de langage de parler de rom call pour les 83 mais techniquement ça change pas grand chose à mon avis.

40

ça marche!!!!!!!
Je poste le résultat sur un nouveau sujet ou ici, si vous êtes pour un nouveau sujet dans quelle catégorie (vu que c'est un mélange basic-assembleur)?

Sandro

EDIT : @deeph : je te site ou pas comme co-auteur? c'est comme tu veux (chickendude ne préfère pas, mais pour moi ça ne change rien).

41

Tu n'as qu'a poster dans la section des projets smile

Et pas la peine de me citer, le code n'est pas entièrement de moi.

42

Merci beaucoup à tous, je poste dessuite dans la partie projet.

Sandro