home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh3x / sh33a.d64 / prometh.src < prev    next >
Text File  |  1995-03-30  |  5KB  |  126 lines

  1.  
  2. ;********************************
  3. ;*** ╙OURCECODE ZU ╨ROMETHEUS ***
  4. ;********************************
  5.  
  6.  
  7. ORG $C000          ; ASSEMBLIERUNG AB $C000
  8.  
  9.  
  10. ;*** ╨ROGRAMM ***
  11.  
  12.  
  13.          SEI                ; IRQ SPERREN
  14.          LDA $DC0D          ; NORMALEN IRQ
  15.          AND #%01111111     ; AUSSCHALTEN
  16.          ORA #%00000001     ; -
  17.          STA $DC0D          ; -
  18.          LDA #50            ; RASTERIRQ AUF
  19.          STA $D012          ; #50 (BILDSCHIRMBEGINN)
  20.          LDA 53248+17       ; HIGH - BYTE DES RASTERIRQS
  21.          AND #$7F           ; AUSSCHALTEN
  22.          STA 53248+17       ; -
  23.          LDA #%10000001     ; IRQ FREIGEBEN
  24.          STA 53248+26       ; -
  25.          LDA #<IRQ          ; IRQ-ZEIGER AUF EIGENE
  26.          STA $0314          ; ROUTINE VERBIEGEN
  27.          LDA #>IRQ          ; -
  28.          STA $0315          ; -
  29.          JSR INITNEW        ; INITIALISIERT DIE FARBZEIGER
  30.          CLI                ; IRQ - FREIGEBEN
  31.          RTS                ; ZURUECK
  32.  
  33. :INITNEW LDA WAHL           ; MODIFIZIERT DAS EIGENTLICHE
  34.          STA LOOP1+1        ; IRQPROGRAMM SO, DASS ES AUF
  35.          STA LOOP2+1        ; DIE ERSTEN FARBCODES ZUGREIFT
  36.          LDA WAHL+1         ; -
  37.          STA LOOP1+2        ; -
  38.          STA LOOP2+2        ; -
  39.          RTS                ; -
  40.  
  41. :IRQ     LDA 53248+25       ; BITS FREIGEBEN
  42.          STA 53248+25       ; -
  43. :LOOP1   LDA FARB1          ; LAEDT ERSTE FARBE
  44.          STA 53281          ; UND SCHREIBT SIE
  45.          NOP                ; WARTET BIS DER
  46.          NOP                ; RASTERSTRAHL
  47.          NOP                ; AM ANDEREN
  48.          NOP                ; ENDE DES BILD-
  49.          NOP                ; SCHIRMS ANGEKOMMEN IST
  50.          LDX #1             ; X-REG ALS FARBPOINTER
  51. :LOOP2   LDA FARB1,X        ; LAEDT DIE NAECHSTEN FARBEN
  52.          STA 53281          ; UND WARTET
  53.          LDY #8             ; WIEDER
  54.          NOP                ; BIS DER
  55.          NOP                ; RASTERSTRAHL
  56.          NOP                ; AM ANDEREN ENDE
  57.          NOP                ; DES BILDSCHIRMS
  58. :LP      DEY                ; ANGEKOMMEN IST
  59.          BNE LP             ; -
  60.          INX                ; -
  61.          CPX #8             ; SCHON 7 MAL DURCLAUFEN?
  62.          BNE LOOP2          ; FALLS NICHT ALLES  NOCHMAL
  63.          LDA #0             ; BILDSCHIRMFABE AUF SCHWARZ
  64.          STA 53281          ; -
  65.          INC ZAHLER         ; DEN LOW UND HIGH-BYTE ZAEHLER
  66.          INC ZAHLER         ; ERHOEHEN (ZEIGT AUF NAECHSTEN FARBCODE)
  67.          LDX ZAHLER         ; DAS NEUE LOW-BYTE DES
  68.          LDA WAHL,X         ; NAECHSTEN FARBCODES MODIFIZIEREN
  69.          STA LOOP1+1        ; MIT DEM ZAEHLER ALS POINTER
  70.          STA LOOP2+1        ; -
  71.          INX                ; ZAEHLER ZEIGT AUF DAS HIGH-BYTE
  72.          LDA WAHL,X         ; HIGH-BYTE DES NEUEN FARBCODES MODIFIZIEREN
  73.          STA LOOP2+2        ; -
  74.          STA LOOP1+2        ; -
  75.          NOP                ; GENAU 8
  76.          NOP                ; RASTERZEILEN
  77.          NOP                ; WARTEN
  78.          LDY #76            ; -
  79. :OUTL    DEY                ; -
  80.          BNE OUTL           ; -
  81.          INC WIEVIEL        ; DEN ZAEHLER FUER DIE ANZAHL DER
  82.          LDA WIEVIEL        ; STREIFEN ERHOEHEN UND MAXIMALWERT
  83.          CMP #9             ; UEBERPRUEFEN
  84.          BEQ ENDE           ; FALLS ALLE DANN NACH ENDE
  85.          JMP LOOP1          ; FALLS NICHT ALLES NOCHMAL
  86.  
  87. :ENDE    JSR INITNEW        ; SCHON IM VORRAUS DIE ZEIGER WIEDER INITIALISIEREN
  88.          LDY #0             ; DIE POINTER
  89.          STY ZAHLER         ; WIEDER AUF
  90.          STY WIEVIEL        ; NORMALWERT SETZEN
  91.          JMP $EA31          ; AB ZUR NORMALEN IRQ-SCHLEIFE
  92.  
  93. :WAHL
  94.          B <FARB3           ; HIER STEHT DIE REIHENFOLGE
  95.          B >FARB3           ; DER VERSCHIEDENEN FARBCODES
  96.          B <FARB3           ; DIESE LOW UND HIGH-BYTES WERDEN
  97.          B >FARB3           ; VON PROMETHEUS MODIFIZIERT
  98.          B <FARB3
  99.          B >FARB3
  100.          B <FARB1
  101.          B >FARB1
  102.          B <FARB4
  103.          B >FARB4
  104.          B <FARB5
  105.          B >FARB5
  106.          B <FARB5
  107.          B >FARB5
  108.          B <FARB4
  109.          B >FARB4
  110.          B <FARB1
  111.          B >FARB1           ; DAS ORIGINALPROGRAMM HAT NATUERLICH
  112.                             ; NICHT NUR 9 LOW UND HIGH-BYTE ZEIGER
  113.                             ; SONDER ALLE 13
  114.  
  115.  
  116. :ZAHLER  B 0                ; DIE BEIDEN POINTER
  117. :WIEVIEL B 0                ; -
  118. :FARB1   B 11,12,15,15
  119.          B 12, 1,12,11      ; DIE VERSCHIEDENEN FARBWERTE
  120. :FARB2   B 9,8,7,7,7,1,8,9
  121. :FARB3   B 0,0,0,0,0,0,0,0
  122. :FARB4   B 0,11,12,15,12,1,11,0
  123. :FARB5   B 0,0,11,12,15,11,0,0
  124.  
  125.  
  126.