000 
            01.12.2011, 07:35 Uhr 
            volkerp 
            Default Group and Edit
  
 
  | 
          ich habe eine Frage zum N-Kommando (Schrittbetrieb) des Z1013
  An der System-PIO geht Port B Bit 5 an den Adressbus AB Bit 0 (Eingabe). Die PIO wird beim N-Kommando so programmiert, dass bei B5 H -> L ein Interrupt generiert wird. Vor den aktuellen Befehl wird EI gepoked und gestartet. Sobald nun EI und nachfolgender Befehl ausgeführt wird, und AB0 => 0 generiert PIO B5 einen Interrupt und der Interrupt-Code wird ausgeführt (Registeranzeige etc.)
  Aber wann [b]genau[b] erfolgt  die Aktivierung an Pio B5? In vermute: entweder steht der Befehl selbst auf gerader Adr. oder beim Wechsel zur nächsten Adr. geht AB0 auf 0. Aber ist das wirklich so und reicht das aus?
  nb: Beim Z9001 wird die CTC genutzt. Hier wird 1 Takt gezählt und dann der Interrupt ausgelöst. Dies erfolgt also stets innerhalb des aktuellen Befehls.
 
 
 | Quellcode: |  PIOBC    equ    03h        Bit5->AB0 in        ;NEXT-Kommando, Step-Betrieb ; ;Initialisierungstabelle fuer PIO bei NEXT ;PIO B5 => AB0 in ; NKTA:    DB    Lo(NINTA)        ;Interruptvektor Low Byte     DB    10010111b        ;Interruptsteuerwort, EI, Low-aktiv, Mask folgt     DB    11011111b        ;Interruptmaske Bit5 aktiv ; ;NEXT-Kommando ; N_KDO:    LD    A,Hi(NINTA)     LD    I,A            ;Interruptvektor     DI     LD    HL,NKTA         ;Initialisieren PIO Port B     LD    BC,0303H        ;3 Bytes, Port PIOBC     OTIR                ;loest selbstaendig INT aus     LD    HL,(BPADR)        ;Byte vor Breakadr.(!)     DEC    HL            ;wird EI     LD    A,(HL)     LD    (NBYTE),A        ;Byte retten     LD    (HL),0FBH        ;Code EI einschreiben     LD    (SPADR),SP     LD    SP,(REGSP)     PUSH    HL            ;Adr. mit EI-Befehl     JP    REGH            ;Register sichern und Start ; ;Eingang bei Interrupt ....
  |  
    -- VolkerP
  http://hc-ddr.hucki.net (Z9001, Z1013, LC-80, ...) |