012 
            28.07.2022, 17:26 Uhr 
            Haupti65 
            
  
 
  | 
          Moin Zusammen, habe jetzt mal 2 Versionen getestet. Einmal mit Polling, die funktioniert:
 
 | Quellcode: |                   .org 000ch     init:        di                 ld spl,#80h        ;Stackpointer                 ld imr,#00h        ;Interrupt Maskierung                 ld ipr,#2fh        ;Interrupt Priorität                 ld p01m,#04h    ;Stack Intern,Timing Normal                 ld p3m,#40h        ;Betriebsart UART                 ld t0,#06h        ;Baudrate 9600                 ld pre0,#05h                     ld tmr,#03h        ;Timer Betriebsart                 ei                                  start:        tm irq,#08h        ;Taste gedrückt?                 jr z,start        ;Nein!                 call sioin                 call co                 jr start
      co:            ld sio,r4                 ld irq,#00h                 ret          sioin:        ld r4,sio                 ld irq,#00h                 ;iret                 ret
      siout:        iret     dummy:        iret                                  .end
  |  
 
 
  Und eine weitere mit Sioin Interrupt, bei der nicht immer alle Zeichen ausgegeben werden:
 
 
 | Quellcode: |                   .org 000ch     init:        di                 ld spl,#80h        ;Stackpointer                 ld imr,#08h        ;Interrupt Maskierung                 ld ipr,#2fh        ;Interrupt Priorität                 ld p01m,#04h    ;Stack Intern,Timing Normal                 ld p3m,#40h        ;Betriebsart UART                 ld t0,#06h        ;Baudrate 9600                 ld pre0,#05h                     ld tmr,#03h        ;Timer Betriebsart                 ei                                  start:        tm irq,#08h        ;Taste gedrückt?                 jr z,start        ;Nein!                 call co                 jr start
      co:            ld sio,r4                 ld irq,#00h                 ret          sioin:        ld r4,sio                 ld irq,#00h                 iret                      siout:        iret     dummy:        iret                                  .end
  |  
 
 
  Warum geht die mit Interrupt nicht so wie die erste? Danke schonmal für Eure Antworten! Gruss Olaf |