CODINGPremiers programmes avec la gamme Amstrad Plus et GX-4000

Utiliser les manettes analogiques

Joystick analogiques

Le plus possède un port analogique sur lequel on peut brancher deux joysticks (les manettes sont hélas impossibles à trouver mais on peut se bricoler des choses avec des potentiomètres et un coup de fer à souder). Il y a 4 lignes analogiques, deux par manette puisque chaque manette envoie l'axe X et l'axe Y.

Les valeurs peuvent être lue aux adresses #6808, #6809, #680A et #680B. Le résultat est compris entre 0 et 63. Avec une manette correctement calibrée le centre correspond à la valeur 32.

Lecture des valeurs du port analogique
Adresse ASIC Correspondance
#6808 Joystick 0 - Axe horizontal X
#6809 Joystick 0 - Axe vertical Y
#680A Joystick 1 - Axe horizontal X
#680B Joystick 2 - Axe vertical Y

Voici un programme simple et très visuel utilisant la manette analogique du premier port. L'axe des X change le bleu et l'axe des Y change le vert.

MODE_0 equ 0: MODE_1 equ 1: MODE_2 equ 2: MODE_3 equ 3: CLEAR_INT equ %10000: ROM_OFF equ %1100
ROM_BOTH equ 0: ROM_UP equ %100: ROM_LOW equ %1000: INTRESET equ %10000: ASICOFF equ 0
ROM0000 equ 0: ROM4000 equ %01000: ROM8000 equ %10000: ASICON equ %11000
ROM0 equ 0 : ROM1 equ 1 : ROM2 equ 2 : ROM3 equ 3 : ROM4 equ 4 : ROM5 equ 5 : ROM6 equ 6 : ROM7 equ 7

macro RMR tags : ld a,{tags}+%10000000 : ld b,#7F : out (c),a : mend
macro RMR2 tags : ld a,{tags}+%10100000 : ld b,#7F : out (c),a : mend

BUILDSNA
SNASET CPC_TYPE,4 ; indiquer un 6128 Plus dans le snapshot
BANKSET 0
ORG #100
RUN #100

RMR ROM_OFF|MODE_0 ; surtout pas les ROM!
call UnlockAsic
RMR2 ASICON
;----------------------------------
loop
ld hl,#6808
ld a,(hl)
srl a : srl a : ld (#6400),a
ld hl,#6809
ld a,(hl)
srl a : srl a : ld (#6401),a
jr loop
;----------------------------------
UnlockAsic
ld bc,#BCFF
out (c),c
out (c),0
ld hl,%1001000011101010
.loop
out (c),c
ld a,h:rlca:ld h,l:ld l,a
srl c:res 3,c
and #88
or c
ld c,a
cp #4D
jr nz,.loop
ld a,#CD
out (c),a : out (c),a
ret



★ ANNÉE: 2025
★ AUTEUR: Roudoudou

Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 021 millisecondes et consultée 5 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.