Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Hostmode, belegt IRQ Port, Startprobleme Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 5.11.2006 15:26)
 Als Antwort auf Hostmode, belegt IRQ Port, Startprobleme von Wolfgang - 5.11.2006 14:05
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini, Open-Mini M-Unit, Open-Mini Station, B-Control, sonstige
Hallo Wolfgang!

In diesem Fall bleibt Dir eigentlich nichts anderes übrig, als die IRQ-Funktionalität auf einen anderen Port zu legen. Allerdings ist IRQ vom Kontroller fest an PORT[3] gebunden und kann nicht verlegt werden. Es ist jedoch möglich, bei einer Änderung an einem Digitalport einen Keyboard-Interrupt auslösen zu lassen. Das wird im Betriebssystem bereits bei FREQ, bzw. FREQ1 benutzt. In diesem Fall benötigst Du ein kleines Assemblerprogramm im Keyboard-Interrupt, mit dem das IRQ-Flag bei Auftreten des Interrupts gesetzt wird.

Ich habe einmal auf die Schnelle das folgende Programm erstellt und auf der Open-Micro getestet. Hier wird jedes Mal, wenn an PORT[4] eine High-Low-Flanke detektiert wird, die BASIC-Interruptroutine gestartet. Also auch nicht viel anders als beim IRQ-Interrupt, der nur an PORT[3] nutzbar ist. Es ist allerdings zu beachten, daß PORT[4] nicht mehr als Ausgabepin zu benutzen ist. Außerdem beißt sich die Nutzung des Keyboard-Interrupts üblicherweise mit FREQ, genauer FREQ1.

' ---------------------------------------------------------------------------
' BASIC-Interruptroutine bei einem Keyboard-Interrupt aufrufen
' In OCBASIC fuer Open-Micro, Open-Mini und Open-Midi von Dietmar Harlos.
' ---------------------------------------------------------------------------

INCLUDE "om.def"          'Definitionen für die Open-Micro und Open-Mini

DEFINE a,b,c BYTE         'ein paar Variablen

' --- Unsere eigene Assembler-Interruptroutine ------------------------------

' Die OM-Kontroller unterstuetzen das Einbinden einer Assemblerroutine in
' den Keyboard-Interrupt.

DEFINE mIrqReq &b00000010 'Maske zum Starten der BASIC-IRQ-Routine

PROCEDURE iiar_kyb INLASM

! cbeqa #iKYB,iiar_kyb_1  'Falls kein Aufruf durch KYB-Interrupt,
! jmp iiar_kyb_ende+2     'dann zur naechsten IIAR in der Kette.

#iiar_kyb_1
! lda -3,x                'Das Bit "IrqReq" im OSSTAT-Register setzen.
! ora #mIrqReq            'Bei der naechsten Gelegenheit startet die
! sta -3,x                'BASIC-IRQ-Routine.

! clc                     'Ruecksprung ins Betriebssystem
! rts

END PROCEDURE

#iiar_kyb_ende            'hier hinter folgt die naechste IIAR
                          '(sofern vorhanden)

' --- Das Hauptprogramm -----------------------------------------------------

#main

INTERRUPT basirq          'BASIC-Interruptroutine vereinbaren
UIRKyb=ON                 'User-Assemblerroutine fuer KEYB aktivieren
KBIER=&b1001000           'Keyboard-Interrupt fuer PORT[4] aktivieren

WHILE TRUE
  PRINT "Ich warte auf den Interrupt."
  FOR a=1 TO 10
    PAUSE 2               'Der PAUSE-Befehl verzoegert den Aufruf der
  NEXT a                  'BASIC-Interruptroutine. Deshalb auf mehrere
WEND                      'kurze PAUSE-Befehle aufteilen.

END

' --- Die BASIC-Interruptroutine --------------------------------------------

PROCEDURE basirq
  PRINT "Hier ist die BASIC-Interruptroutine."
  RETURN INTERRUPT
END PROCEDURE

Viele Grüße
Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Hostmode, belegt IRQ Port, Startprobleme (von Wolfgang - 5.11.2006 16:37)
    Re: Hostmode, belegt IRQ Port, Startprobleme (von Dietmar - 6.11.2006 8:01)
        Re: Hostmode, belegt IRQ Port, Startprobleme, Port 3 abfrage weg Patchen (von Wolfgang - 6.11.2006 13:11)
            Re: Hostmode, belegt IRQ Port, Startprobleme, Port 3 abfrage weg Patchen (von Dietmar - 6.11.2006 18:51)
                Re: Hostmode, belegt IRQ Port, Startprobleme (von Wolfgang - 8.11.2006 12:31)
                    Re: Hostmode, belegt IRQ Port, Startprobleme (von Dietmar - 8.11.2006 16:23)