
************************************
* DISPLAY-LIST-INTERRUPTS
*
* VIELFARBIGES GRAPHICS 0 DISPLAY
************************************

COLPF2   EQU $D018         HARDWARE-REG . FUER FARBE
WSYNC    EQU $D40A         WARTEN AUF ZEILENENDE
NMIEN    EQU $D40E         NMI-FREIGABE

VDSLST   EQU $0200         VEKTOR FUER DLIS
VVBLKI   EQU $0222         VBI-VEKTOR (IMMEDIATE)
SDLSTL   EQU $0230         ZEIGER AUF D-LIST
SYSVBV   EQU $E45F         VBL-ROUTINE IM ROM

HILFZP   EQU $D4           HILFSREGISTER IN ZERO-P.

*
* IM ATMAS MONITOR MIT G 0600 STARTEN
*
         ORG $0600

         NOP               FUER BASIC HIER PLA
         JMP START         TABELLE UEBER SPRINGEN
*
* TABELLE DER ZEILENFARBEN:
*

FARBTAB  DFB $14,$22,$34,$42,$54,$62
         DFB $74,$82,$94,$A2,$B4,$C2
         DFB $D4,$E2,$F4,$02,$14,$22
         DFB $34,$42,$54,$62,$74,$82

ZEIGER   DFB 0             ZEIGER IN TABELLE

START    LDA SDLSTL        D-LIST-ZEIGER IN
         LDY SDLSTL+1      ZERO-PAGE KOPIEREN
         STA HILFZP        F. INDIREKTE
         STY HILFZP+1      ADR.-ART
         LDY #2            DLI-BIT IN
         LDA (HILFZP),Y    DRITTER LEERZEILE
         ORA #$80          SETZEN
         STA (HILFZP),Y
         INY               DLI-BIT IN DER
         LDA (HILFZP),Y    LMS-ANWEI SUNG
         ORA #$80 DER D-LIST SETZEN
         STA (HILFZP),Y
         INY               LMS-ADRESSE
         INY               UEBERSPRINGEN
INTSET   INY               SCHLEIFE F.
         LDA (HILFZP),Y    DLI-BIT IN RESTL.
         ORA #$80 DISPLAY-LIST
         STA (HILFZP),Y
         CPY #27  SCHON ALLE ZEILEN?
         BNE INTSET        NEIN->
*
* DLI UND VBI AKTIVIEREN
*
         LDA #0            INTERRUPTS AUS
         STA NMIEN         (VBI & DLI)
         LDA #DLIPGM:L     DEN VEKTOR AUF

         STA VDSLST        DIE INT. -ROUTINE
         LDA #DLIPGM:H     SETZEN
         STA VDSLST+1
         LDA #VBIPGM:L     VBI-PROGRAMM
         STA VVBLKI        EINBINDEN
         LDA #VBIPGM:H     (IMMEDIATE)
         STA VVBLKI+1
         LDA #$C0 UND VBI & DLI
         STA NMIEN         FREIGEBEN
         RTS
*
* DLI-ROUTINE VIEL ARBEN-EFFEKT IN GR.0
*
DLIPGM   PHA               AKKU RETTEN
         TXA
         PHA               X-REG. RETTEN
         LDX ZEIGER        INDEX LADEN
         LDA FARBTAB,X     FARBE AUS TABELLE
         STA WSYNC         ZEILENENDE ABWARTEN
         STA COLPF2        FARBE EINTRAGEN
         INX               ZEIGER WEITER-
         STX ZEIGER        SCHALTEN
         PLA               X-REG. VOM STACK
         TAX
         PLA               AKKU BESORGEN
         RTI               SCHLUSS !

* 
* VBI-ROUTINE VIELFARBENEFFEKT
*

VBIPGM   LDA #0            ZEIGER AUF ANFANG
         STA ZEIGER        DER FARBTABELLE
         JMP SYSVBV        VBI WEITER

