









6301 Cross-Assembler V2.1-A   FIFO.MIC       03.01.1991    14:11:36    Page: 1
5.1. FIFO-Routinen ohne šberlauftest


LINE#  LOC    CODE                              SOURCE


   1  2000                       .list
   2  2000                       .file
   3  2000                       .title  5.1. FIFO-Routinen ohne šberlauftest
   4  2000               
   5  2000               anzahl  .equ    12              ; Buffer fr 12 Bytes
   6  2000               buffer  .equ    $3000           ; Speicherbereich fr Buffer
   7  2000               wpoi    .equ    buffer+anzahl   ; Schreibzeiger in den Buffer
   8  2000               rpoi    .equ    wpoi+2          ; Lesezeiger in den Buffer
   9  2000               
  10  2000               ; Initialisierung (L”schen) des Buffers
  11  2000               
  12  2000   CE 30 00    init    ldx     #buffer
  13  2003   FF 30 0C            stx     wpoi            ; Schreibzeiger steht auf Anfang
  14  2006   FF 30 0E            stx     rpoi            ; Lesezeiger steht auf Anfang
  15  2009   39                  rts
  16  200A               
  17  200A               ; Ein Element im Buffer speichern
  18  200A               
  19  200A   0F          write   sei                     ; *** Routine nicht unterbrechbar!
  20  200B   FE 30 0C            ldx     wpoi            ; *   Schreibzeiger holen
  21  200E   A7 00               staa    ,x              ; *   Element im Buffer speichern
  22  2010   08                  inx                     ; *   Zeiger auf n„chsten Eintrag
  23  2011   8C 30 0C            cpx     #buffer+anzahl  ; *   Bufferende berschritten?
  24  2014   26 03               bne     1$              ; *   nein...
  25  2016   CE 30 00            ldx     #buffer         ; *   ja: Anfang des Buffers laden
  26  2019   FF 30 0C    1$      stx     wpoi            ; *   neuen Pointer abspeichern
  27  201C   0E                  cli                     ; *** Unterbrechung wieder m”glich
  28  201D   39                  rts
  29  201E               
  30  201E               ; Ein Element aus dem Buffer lesen
  31  201E               
  32  201E   0F          read    sei                     ; *** Routine nicht unterbrechbar!!!
  33  201F   FE 30 0E            ldx     rpoi            ; *   Lesezeiger holen
  34  2022   A6 00               ldaa    ,x              ; *   Element aus dem Buffer lesen
  35  2024   08                  inx                     ; *   Zeiger auf n„chsten Eintrag
  36  2025   8C 30 0C            cpx     #buffer+anzahl  ; *   Bufferende berschritten?
  37  2028   26 03               bne     1$              ; *   nein...
  38  202A   CE 30 00            ldx     #buffer         ; *   ja: Anfang des Buffers laden
  39  202D   FF 30 0E    1$      stx     rpoi            ; *   neuen Pointer abspeichern
  40  2030   0E                  cli                     ; *** Unterbrechung wieder m”glich
  41  2031   39                  rts
  42  2032               
  43  2032                       .end

Assembly successful, no errors detected.
Output-filename G:\ASM63\QUELLEN\SAMMLUNG\OUTPUT\FIFO.HX2
Elapsed time: 1.6 sec.
