Hardware > Hardware (Classic 16-/32-Bit)

MultiIO am ACSI

<< < (2/2)

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