[Alice] Carte 24 E/S

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] Carte 24 E/S

Message par David.G »

@Zébulon : je montre ce que tu as écrit à mon électronicien pour voir s'il peut me fabriquer cela. Il comprendra mieux que moi.

Si on peut brancher 8 boutons interrupteurs sur cette carte 24 E/S, je peux faire beaucoup plus simple dans un premier temps :
Comme je sais lire en langage machine l'octet qui reçoit 0 ou 1, si j'ai 8 boutons, chacun représente un bit et le tour est joué.

Je les mets en mémoire les uns à la suite des autres comme quand on code en langage machine en faisant de POKE depuis le BASIC.

Avec un ET logique, ANDA, on doit pouvoir allumer/éteindre juste le bit souhaité, envoyé par chacun des 8 boutons.

Mais corrige-moi si ce que je dis est n'importe quoi ou si je fais fausse route.

Je peux afficher graphiquement en temps réel sur l'écran de l'Alice l'état des 8 bits, ainsi que leur conversion en base 10 et 16.

Voici le programme en langage machine que je propose pour le bit 0 :

Code : Tout sélectionner

; allumer/éteindre la led 0 avec un bouton et stocker 0 ou 1  (état du bit 0) à l'adresse $5000 
; 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
	CLRA	                ; mets à 0 pour éteindre  la led 
	STAA $BF60		; connectée au PORT A
 
LitBouton	
	LDAA $BF62	        ; lit le port C
	ANDA #$01	        ; conserve que le premier bit
	CMPA #$00	        ; est il à zéro ?
        BEQ EteintLed0  

AllumeLed0	
	LDAA #$FF	        ; pour allumer la led 
	STAA $BF60              ; connectée au PORT A
        LDAB  #$1
        STAB $5000              ; je stocke 1 comme valeur du bit0 ici
	JMP LitBouton

EteintLed0	
	CLRA	                ; pour éteindre  la led 
	STAA $BF60		; connectée au PORT A
        CLRB
        STAB $5000              ; je stocke 0 comme valeur du bit0 ici 
	JMP LitBouton 
Zebulon
Messages : 2806
Inscription : 02 nov. 2020 14:03

Re: [Alice] Carte 24 E/S

Message par Zebulon »

Tout est possible. C'est à toi de définir comment tu veux que ton interface fonctionne, le nombre de boutons, si ce sont des poussoirs ou des leviers, le nombre de leds et la cinématique de fonctionnement.

Dans les documentations que j'avais survolé, il me semble que la saisie d'un octet se passait comme suit: positionner un ensemble de 8 leviers (un pour chaque bit) sur 0 ou 1, utiliser un 9ème levier (ou poussoir) pour valider la saisie et stocker l'octet. On peut imaginer que sur cette action le pointeur d'adresse s'incrémente de 1 pour saisir l'octet suivant, etc.

Je te recommande, comme beaucoup d'autres l'ont déjà fait, de lire des documents sur le sujet pour trouver de l'inspiration.

Par exemple ce manuel de l'Altair 8800 à partir de la page 28 explique comment saisir un programme avec un petit exemple: https://altairclone.com/downloads/manua ... Manual.pdf
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] Carte 24 E/S

Message par David.G »

@Zebulon: Merci beaucoup, je vois le concept. Mon ordi vient de griller, il est mort, mais on essaiera quand même de faire ce montage pour le jour où je retrouverai un nouvel ordi, j'aurai la carte 24 E/S toute prête à tester. Dommage, j'avais bien progressé en programmation 6803. Ce n'est que partie remise. :wink:
Répondre