[Alice] Carte 24 E/S
Modérateurs : Papy.G, fneck, Carl
Re: [Alice] Carte 24 E/S
Je viens de commander la carte 24 E/S. Génial ton tutoriel, le programme en assembleur est ultra-simple à comprendre.
Dès qu'elle arrive, je me procure ce que tu as dit et je teste ton code !
Est t-il possible de se brancher à une télécommande et de changer les chaines de la télévision depuis Alice avec ton programme en Asm ?
Dès qu'elle arrive, je me procure ce que tu as dit et je teste ton code !
Est t-il possible de se brancher à une télécommande et de changer les chaines de la télévision depuis Alice avec ton programme en Asm ?
Re: [Alice] Carte 24 E/S
Pour que les choses soient encore plus claires vis à vis de la carte borniers voici une photo de famille:
Re: [Alice] Carte 24 E/S
Magnifique Fred! Pile ce que j'ai en tête ! Pas mieux pour enseigner le binaire car c'est du concret.
Où puis-je me procurer cette carte pleine de led stp ?
Où puis-je me procurer cette carte pleine de led stp ?
Re: [Alice] Carte 24 E/S
Oui très pratique et du coup pas besoin d'aller au magasin d'électronique
Re: [Alice] Carte 24 E/S
@ DavidG : Pour l'instant, nulle part car elle n'est pas encore sortie de chez le "fournisseur".
Re: [Alice] Carte 24 E/S
Programme numéro 1 de @6502man traduit en BASIC : Faire clignoter des leds avec la carte E/S sur Alice
Programme numéro 2 : Une autre variante pour faire clignoter alternativement 1 leds sur 2 :
170 donne AA en hexadécimal et 10101010 en binaire, donc 1 led sur 2 allumée.
85 donne &H55 en hexadécimal et en binaire 01010101 : 1 led sur 2 allumée mais pas les mêmes donc alternativement.
Programme numéro 3 : allumer les Leds avec un bouton momentané avec la carte E/S sur Alice
Code : Tout sélectionner
10 POKE 48995,128 : REM place les 3 ports en sorties
20 REM CLIGNOTE
30 POKE 48992,0 : REM pour eteindre les leds connectées au PORT A
40 GOSUB 80
50 POKE 48992,255 : REM pour allumer les leds connectées au PORT A
60 GOSUB 80
70 GOTO 30
80 FOR T=0 to 10 : NEXT T : REM timing
90 RETURN
Code : Tout sélectionner
10 POKE 48995,128 : REM place les 3 ports en sorties
20 REM CLIGNOTE
30 POKE 48992,170 : REM pour eteindre les leds connectées au PORT A
40 GOSUB 80
50 POKE 48992,85 : REM pour allumer les leds connectées au PORT A
60 GOSUB 80
70 GOTO 30
80 FOR T=0 to 10 : NEXT T : REM Timing
90 RETURN
170 donne AA en hexadécimal et 10101010 en binaire, donc 1 led sur 2 allumée.
85 donne &H55 en hexadécimal et en binaire 01010101 : 1 led sur 2 allumée mais pas les mêmes donc alternativement.
Programme numéro 3 : allumer les Leds avec un bouton momentané avec la carte E/S sur Alice
Code : Tout sélectionner
10 POKE 48995,129 : REM place les ports A et B et C (haut) en sorties et le port C (bas) en entrées
15 REM Début
20 POKE 48992,0 : REM pour éteindre les leds connectées au PORT A
25 REM AttendBouton
30 BP=PEEK(48994) AND 1 : IF BP = 0 THEN GOTO 30
40 POKE 48992,255 : REM pour allumer les Leds connectées au PORT A
50 FOR T=0 to 10 : NEXT T : REM timing pour laisser les Leds allumées plus longtemps
60 GOTO 15
Dernière modification par David.G le 22 mars 2024 02:32, modifié 10 fois.
Re: [Alice] Carte 24 E/S
Allez un petit montage supplémentaires pour l'Alice.
Cette fois on rajoute un bouton momentané et
ca permet d'allumer les LEDS
le code assembleur qui va permettre d'allumer
les leds :
La encore simple à faire en basic
Cette fois on rajoute un bouton momentané et
ca permet d'allumer les LEDS
le code assembleur qui va permettre d'allumer
les leds :
Code : Tout sélectionner
; allumer les leds avec un bouton
; avec la carte E/S sur Alice
LDAA #$81 ; place les ports A et B et C(haut) en sorties
STAA $BF63 ; et le port C(bas) en entrées
Debut
LDAA #$00 ; pour eteindre les leds
STAA $BF60 ; connectées au PORT A
AttendBouton
LDAA $BF62 ; lit le port C
ANDA #$01 ; conserve que le premier bit
CMPA #$00 ; est il à zéro
BEQ AttendBouton ; dans ce cas on attend encore
AllumeLeds
LDAA #$FF ; pour allumer les leds
STAA $BF60 ; connectées au PORT A
LDX #$FFFF ; timing pour laisser les
Tempo ; leds allumées plus longtemps
DEX
BNE Tempo
RTS
JMP Debut
- Leraptor06
- Messages : 691
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: [Alice] Carte 24 E/S
Le fournisseur officiel des realisations de Fred c'est Brochiman, le roi de la gestion des kits. Une qualité parfaite.
Jp
Re: [Alice] Carte 24 E/S
@6502man: Si j'ai bien compris jusque là :
Dans tes 2 premiers programmes , c'est l'ordinateur Alice qui envoie un signal vers l'extérieur et envoie l'ordre : éteint/allume les Led.
Dans ton 3ème programme, le bouton momentané quand il est appuyé envoie 1 à l'ordinateur Alice qui allume les Led quelques secondes.
On pourrait aussi décider de les laisser allumées tant que le bouton est pressé. Il suffirait de boucler tant que LDAA $BF62 ANDA #$1 donne 1
Donc je peux déclencher un programme sur l'ordinateur Alice en appuyant sur ce bouton,
ou bien me fabriquer une manette de jeu rudimentaire avec une planche et simplement 2 boutons (boutons droite gauche pour BreakOut).
Correct ?
Dans tes 2 premiers programmes , c'est l'ordinateur Alice qui envoie un signal vers l'extérieur et envoie l'ordre : éteint/allume les Led.
Dans ton 3ème programme, le bouton momentané quand il est appuyé envoie 1 à l'ordinateur Alice qui allume les Led quelques secondes.
On pourrait aussi décider de les laisser allumées tant que le bouton est pressé. Il suffirait de boucler tant que LDAA $BF62 ANDA #$1 donne 1
Donc je peux déclencher un programme sur l'ordinateur Alice en appuyant sur ce bouton,
ou bien me fabriquer une manette de jeu rudimentaire avec une planche et simplement 2 boutons (boutons droite gauche pour BreakOut).
Correct ?
Re: [Alice] Carte 24 E/S
Oui c'est ca
Pour l'exemple je n'ai connecté qu'un interrupteur mais on peut en connecter plus,
tant que l'on déclare bien les ports concernées en Entrées
Pour l'exemple je n'ai connecté qu'un interrupteur mais on peut en connecter plus,
tant que l'on déclare bien les ports concernées en Entrées
Re: [Alice] Carte 24 E/S
Merci Phil. J'ai traduit tes 3 programmes en BASIC dans le message précédent, à vérifier s'il n'y pas d'erreur.
J'ai déjà donné ton plan et la doc pdf de la 24 E/S au magasin d'électronique, avec les bidules à acheter que tu as indiqué (led, bouton momentané, etc.) pour qu'ils me fabriquent tout ça en attendant que la carte arrive. Je vais lui dire de me commander 2 boutons momentanés et je me charge de la prog en asm. C'est facile avec tes exemples.
Puis-je connecter 8 petits leviers-interrupteurs comme sur l'Altair8800 pour envoyer un nombre binaire dans la mémoire de l'Alice ?
J'aurai besoin d'un bouton "entrée" pour envoyer le nombre un fois que j'ai positionné les 8 bits.
J'ai déjà donné ton plan et la doc pdf de la 24 E/S au magasin d'électronique, avec les bidules à acheter que tu as indiqué (led, bouton momentané, etc.) pour qu'ils me fabriquent tout ça en attendant que la carte arrive. Je vais lui dire de me commander 2 boutons momentanés et je me charge de la prog en asm. C'est facile avec tes exemples.
Puis-je connecter 8 petits leviers-interrupteurs comme sur l'Altair8800 pour envoyer un nombre binaire dans la mémoire de l'Alice ?
J'aurai besoin d'un bouton "entrée" pour envoyer le nombre un fois que j'ai positionné les 8 bits.
Re: [Alice] Carte 24 E/S
Tu peux effectivement imaginer de construire un panneau de contrôle avec des interrupteurs, des LEDs et développer un "moniteur" qui tournera sur l'Alice et qui simulera un ordinateur du type Altaïr.
C'est une très bonne idée de projet à réaliser avec ce type d'interface !
C'est une très bonne idée de projet à réaliser avec ce type d'interface !
Re: [Alice] Carte 24 E/S
Merci ! C'est pour programmer directement une mini routine en binaire (pour le côté amusant et pédagogique).
Si tu m'indiques ce que je dois faire fabriquer à mon électronicien pour obtenir ce panneau, je suis partant !
On va finir par écrire un bouquin : "50 projets amusants à réaliser avec votre carte 24 E/S pour Alice/Oric"
Re: [Alice] Carte 24 E/S
Il faut déjà définir ton cahier des charges de comment tu comptes employer les 24 entrées ou sorties.
Pour faire simple dans une v1 je pense qu'il te faut déjà 8 leds en sortie pour afficher les bits que tu programmes ou que tu relis de chaque octet de ta mémoire et il te faut 8 interrupteurs pour positionner les bits que tu programmes. Ces 8 bits serviront à saisir l'adresse mémoire (donc 256 octets max) et la valeur de chaque octet. Tu as donc utilisé 16 de tes entrées/sorties, 8 en sortie et 8 en entrée.
Il reste 8 entrées/sorties, je pense qu'il te faut encore d'autres interrupteurs pour commuter entre la saisie de l'adresse et celle de la valeur de l'octet, pour passer le processeur en mode exécution ou en mode programmation, etc.
Le côté câblage des leds et des interrupteurs peut être aussi simple que proposé par 6502man, c'est le programme que tu développeras dans Alice qui animera ton interface. Dans ta v1 je ne pense pas qu'il soit souhaitable de véritablement programmer Alice via cette interface, j'émulerais plutôt un ordinateur dans Alice, avec par exemple 256 octets de mémoire programme et un jeu d'instructions rudimentaire. Ta machine pourrait gérer une ou plusieurs pile(s) pour effectuer les calculs, des registres mémoire, un peu comme fonctionnent les calculatrices type HP.
Pour t'inspirer tu peux retrouver des documentations des ordinateurs type Altair 8800, Micral N, Gigatron, etc.
Pour faire simple dans une v1 je pense qu'il te faut déjà 8 leds en sortie pour afficher les bits que tu programmes ou que tu relis de chaque octet de ta mémoire et il te faut 8 interrupteurs pour positionner les bits que tu programmes. Ces 8 bits serviront à saisir l'adresse mémoire (donc 256 octets max) et la valeur de chaque octet. Tu as donc utilisé 16 de tes entrées/sorties, 8 en sortie et 8 en entrée.
Il reste 8 entrées/sorties, je pense qu'il te faut encore d'autres interrupteurs pour commuter entre la saisie de l'adresse et celle de la valeur de l'octet, pour passer le processeur en mode exécution ou en mode programmation, etc.
Le côté câblage des leds et des interrupteurs peut être aussi simple que proposé par 6502man, c'est le programme que tu développeras dans Alice qui animera ton interface. Dans ta v1 je ne pense pas qu'il soit souhaitable de véritablement programmer Alice via cette interface, j'émulerais plutôt un ordinateur dans Alice, avec par exemple 256 octets de mémoire programme et un jeu d'instructions rudimentaire. Ta machine pourrait gérer une ou plusieurs pile(s) pour effectuer les calculs, des registres mémoire, un peu comme fonctionnent les calculatrices type HP.
Pour t'inspirer tu peux retrouver des documentations des ordinateurs type Altair 8800, Micral N, Gigatron, etc.