Hardware > Hardware (Classic 16-/32-Bit)
MultiIO am ACSI
ToPeG:
hier ein Beispiel eines Lauflichts auf 8bit eines Ports (Hight
- oder Lowbyte). in GFA Basic 3.x
--- Code: ---'
' ACSIIO-Adapter Progrmmierung
' Beispiel einer Ausgabe
' !! Lauflicht !!
' ---------------------------------------------------------------------------- '
' ----------------------------- Register Adressen ---------------------------- '
'
a5=&HFF8604 ! Adresse Datenregister
a6=&HFF8606 ! Adresse Mode Controll Register
'
' ---------------------------------------------------------------------------- '
' --------------------------- Konfiguration ---------------------------------- '
'
' Device ID
id|=4 ! 0 - 7
'
' Port
port|=1 ! 1 - 3
'
' Hight/LowByte
hight!=0 ! 1/0
'
' ---------------------------------------------------------------------------- '
' ------------------------------- PROGRAMM ----------------------------------- '
' DMA sperren
SPOKE &H43E,1 ! Variable flock auf 1 setzen
'
'
PRINT AT(25,12);"* Programmende mit Esc *"
'
'
t|=id|
t|=SHL(t|,5) ! oberen 3 bit = id
t|=BSET(t|,port|) ! Port select
IF hight!
t|=BSET(t|,0) ! Highbyte adressieren
ENDIF
t|=BSET(t|,4) ! LED an (unbelegtes Bit 4)
'
'
SDPOKE a6,&H188 ! Geraet adressieren
SDPOKE a5,t| ! ID & Kommando senden
'
SDPOKE a6,&H18E ! auf Bus schreiben
'
' Schleife fuer das Lauflicht
dbyte|=1
DO
dbyte|=ROL|(dbyte|,1)
SDPOKE a5,dbyte| ! Byte senden
PAUSE 2 ! warten
'
KEYTEST tz|
EXIT IF tz|=27 ! ENDE mit Esc
LOOP
'
' Port reset
t|=BCLR(t|,4) ! LED aus
SDPOKE a6,&H188 ! Geraet adressieren
SDPOKE a5,t| ! ID & Kommando Senden
SDPOKE a6,&H18E ! auf Bus schreiben
SDPOKE a5,0 ! alles aus
'
' DMA freigeben
SPOKE &H43E,0 ! Variable flock auf 0 setzen
EDIT
--- Ende Code ---
Ich denke man sieht, die Programmierung ist nicht so kompliziert.
ToPeG:
Ich denke ich habe eine einfache Möglichkeit gefunden den DMA-Modus zu ergänzen. Ich werde es mir noch mal genau anschauen müssen. Das ist nur ein schneller Wurf. Wenn jemandem etwas auffällt... :-)
Der DMA Modus wird über Bit4 (bisher unbelegt) während der Adressierung aktiviert. Erst eine erneute Selektion beendet ihn. Der über die anderen Bits eingestellte Port wird Während des DMA-transfers genutzt. Hight/Lowbyte werden automatisch gewechselt.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln