BEEP FX890/Z1

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

BEEP FX890/Z1

Message par jvernet » 19 janv. 2008 20:39

Le BEEP du CASIO est pas terrible (BEEP 0 ou BEEP 1...). On peut remedier à ça. A l'aide de quelques pages en japonais et de Pockecom, une petite routine en assembleur:

Code : Tout sélectionner

		ORG 2000H
T0 DB 07H		; VOLUME
T1 DW 0000H	; DUREE
T2 DW 0000H	; HAUTEUR

MAIN:	 MOV AH,T0
	      MOV CX,T1
	      MOV DX,T2
BEEP:	 PUSH DX
	      CMP AH,0
	      JZ B_1	; VOLUME A 0
		
	      MOV AL,3
	      MOV DX,0206H
	      OUT DX,AL	; OUT 206H,3 actionne le buzzer
				; out 206H,0 coupe le buzzer
	      CMP AH,7
	      JZ	B_1
	      MOV AL,AH
B_LOOP:   DEC AL	; petite boucle, qui conditionne le volume
	      JNZ B_LOOP
	      OUT DX,AL	; on arrete le buzzer
B_1:	     POP DX
	      PUSH CX
	      MOV CX,DX
B_WAIT:	LOOP B_WAIT
	      POP CX
	      LOOP BEEP	; selon duree
	      IRET		; fin
Comment utiliser ça ?
Déja, faire un CLEAR 4096,512
Taper le code sous ASMBL, compiler.
Pour l'utiliser en BASIC:
&H2000 (0 à 7) pour le volume
&H2001 contient l'octet faible de la durée voulue
&H2002 contient l'octet fort de la durée
&H2003 contient l'octet faible de la note
&H2004 contient l'octet fort de la note

Code : Tout sélectionner

10 POKE &H2000,7
20 POKE &H2001,0
30 POKE &H2002,10
40 POKE &H2003,10
50 POKE &H2004,10
60 CALL &H2000
Demain, je me lance dans le pilotage du LCD. Pas simple, à partir de documents en Japonais only...
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 20 janv. 2008 12:34

Merci beaucoup pour cette recherche jérome.

Ca rétablit l'équilibre sonore entre sharp et casio.

Merci encore.

Paul - Beeper depuis 1664
Il y a 10 catégories de personnes dans le monde. Celle qui connait le binaire et l'autre.

Avatar de l’utilisateur
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 291
Inscription : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Message par Xerxes » 23 janv. 2008 18:29

It's also possible to use the BIOS for making adjustable sounds.

The assembly part to use the 41H BIOS interrupt:

Code : Tout sélectionner

    ORG 2000H
    JMP L0
FRQ DW  0
LEN DW  0
L0: MOV AH,29H
    MOV DX,FRQ
    MOV CX,LEN
    INT 41H
    IRET
How to use it in BASIC:

Code : Tout sélectionner

10 DEFSEG=0
20 BF=440 (frequency)
30 BL=0.5 (length)
40 DX=460800/BF
50 CX=BL*921600/DX
60 POKE&H2003,DX MOD 256
70 POKE&H2004,INT(DX/256)
80 POKE&H2005,CX MOD 256
90 POKE&H2006,INT(CX/256)
100 CALL &H2000
The values 460800 and 921600 are the CPU clock divided by 8 and 4.
Dernière édition par Xerxes le 30 janv. 2008 18:44, édité 2 fois.

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Message par jvernet » 24 janv. 2008 11:45

Xerxes a écrit :It's also possible to use the BIOS for making adjustable sounds.

The assembly part to use the 41H BIOS interrupt:
That's nicer than what I'v found earlier ! Where did you find that ?
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 24 janv. 2008 13:41

Yes Xerxes,
reveal your secret : where did you find all these informations ?
8)

Paul - Secret revealer since 1664
Il y a 10 catégories de personnes dans le monde. Celle qui connait le binaire et l'autre.

Avatar de l’utilisateur
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 291
Inscription : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Message par Xerxes » 25 janv. 2008 02:01

Paul Tergeist a écrit :Yes Xerxes,
reveal your secret
8)

Paul - Secret revealer since 1664
:D

There is not really any secret. The informations are a mixture of own investigations, started
with the FX-602P in 1981, on our beloved machines in combination with informations of some forums
and interesting sites like this one:

http://homepage2.nifty.com/stear/fx890p/indx.htm

IMO one of the best sites about the FX-890P/Z-1(GR) so far.

The BIOS interrupt for sound generating is described there as following:

INT 41H
AH=29H
DX=3.6864E6/(8*DX) [Hz]
CX=4*DX*CX/3.6864E6 [s]

Transformation is needed:

DX=460800/Frequency
CX=Length*921600/DX

That's all. :wink:

Répondre

Revenir vers « Tous les Pockets »