home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh27c.d64 / alley.src < prev    next >
Text File  |  1995-03-30  |  4KB  |  97 lines

  1. ;        ******************************
  2. ;        **                          **
  3. ;        **        ALLEY. SIM.       ** 
  4. ;        **                          **
  5. ;        **            BY            **
  6. ;        **                          **
  7. ;        **     STEFAN LANDFRIED     **
  8. ;        **                          **
  9. ;        **   (C)  MARKT & TECHNIK   **
  10. ;        **                          **
  11. ;        **        VERLAGS AG        **
  12. ;        **                          **
  13. ;        ******************************
  14. ;
  15. ORG $C000               ; ANFANGSADRESSE = 49152
  16. :GETBYT = $B79E         ;ADRESSEN FUER PARAMETERUEBERGABE
  17. :CHKKOM = $AEFD
  18.          JSR CHKKOM     ;PROGRAMMSTART UND ABFRAGE
  19.          JSR GETBYT     ;DER VERSCHIEDENEN PARAMETER
  20.          STX MODIFY1+1  ; RASTERZEILENPOSITIONEN
  21.          STX MODIFY2+1  ; DES FARBSCROLLES MODIFIZIEREN
  22.          JSR CHKKOM     ; AUF KOMMA PRUEFEN
  23.          JSR GETBYT     ; PARAMETER HOLEN
  24.          STX MODIFY3+1  ; GESCHWINDIGKEIT MODIFIZIEREN
  25.          JSR CHKKOM     ; AUF KOMMA PRUEFEN
  26.          JSR GETBYT     ; PARAMETER HOLEN
  27.          STX MODIFY4+1  ; BREITE  MODIFIZIEREN
  28.          JSR CHKKOM     ; AUF KOMMA PRUEFEN
  29.          JSR GETBYT     ; PARAMETER HOHLEN
  30.          STX MODIFY5+1  ; UND MODIFIZIEREN
  31.          SEI            ; INTERRUPT SPERREN
  32.          LDA $DC0D      ; CIA-TIMER
  33.          AND #%01111111 ; AUSSCHALTEN
  34.          ORA #%00000001
  35.          STA $DC0D
  36. :MODIFY2 LDA #130       ; RASTERZEILE VORWAEHLEN
  37.          STA 53248+18
  38.          LDA 53248+17   ; HI-BYTE DES RASTERSTRAHLS
  39.          AND #$7F       ; AUSSCHALTEN
  40.          STA 53248+17
  41.          LDA #%10000001 ; RASTERZEILENINTERRUPT VORWAEHLEN
  42.          STA 53248+26
  43.          LDA #<IRQ      ; LO-BYTE DER NEUEN ROUTINE
  44.          STA $0314      ; SCHREIBEN
  45.          LDA #>IRQ      ; HI-BYTE DER NEUEN ROUTINE
  46.          STA $0315      ; SCHREIBEN
  47.          CLI            ; INTERRUPT ZULASSEN
  48.          RTS            ; ZURUECK INS BASIC
  49. :IRQ     LDA 53248+25   ; INTERRUPTFLAG LOESCHEN
  50.          STA 53248+25   ; UM ERRORSZU VERMEIDEN
  51.          LDA 53248+18   ; RASTERSTRAHL UEBERFRUEFEN
  52.          CMP #000       ; 000 ERREICHT ?
  53.          BEQ SCROLL     ; FALLS JA ZUR SCROLLROUTINE
  54.          LDX #00        ; X-REGISTER ALS INDEXZAEHLER
  55. :LOOP1   LDA FARB,X     ; FARBCODE LADEN
  56.          STA 53281      ; UND INS HINDERGRUNDFARBREG. SCHREIBEN
  57.          LDA ZAHL,X     ; DEN ZAEHLER LADEN
  58.          TAY            ; AUSTAUSCH VON  A NACH Y
  59. :LP      DEY            ; WARTESCHEIFE
  60.          BNE LP         ; JE GROESSER DER ZAEHLER DESTO LAENGER DIE SCHLEIFE
  61.          INX            ; X-REGISTER ERHOEHEN
  62. :MODIFY4 CPX #8         ; SCHON ALLE 8 ZEILEN ?
  63.          BNE LOOP1      ; FALLS NICHT ZU LOOP1
  64. :MODIFY5 LDA #00        ; HINTERGRUNDFARBE POKEN
  65.          STA 53281
  66.          LDA #000       ; RASTERSTAHL VORWAEHLEN
  67.          STA 53248+18
  68.          JMP $EA31      ; SPRUNG ZUR NORMALEN INTERRUPTROUTINE
  69. :FARB B 01,07,03,13,05,14,06,10,02,04,08,09,15,12,11,00,00,11,12,14,09,08,04,02
  70.       B 10,06,14,05,13,03,07,01       ; FARBCODES
  71. :ZAHL B 02,08,08,08,09,08,09,08,10    ; ZAEHLCODES FUER DIE WARTESCHLEIFE
  72. :SCROLL  INC SPEED      ; SPEED ERHOEHEN
  73.          LDA SPEED      ; UND UEBERPRUEFEN
  74. :MODIFY3 CMP #03        ; ENDWERT ERREICHT
  75.          BEQ NEXT       ; FALLS JA EIGENTLICHES SCROLLEN
  76.          JMP MODIFY1    ; FALLS NICHT NORMAL WEITER
  77. :NEXT    LDA FARB       ; ERSTEN FARBCODE LADEN
  78.          PHA            ; AUF STACK SCHIEBEN
  79.          LDY #01        ; Y-REGISTER ALS INDEX
  80. :OP      LDA FARB,Y     ; SCHLEIFE
  81.          DEY            ; IN DER ALLE
  82.          STA FARB,Y     ; FARBEN UM
  83.          INY            ; EIN BYTE NACH VORNE
  84.          INY            ; GERUECKT
  85.          CPY #32        ; WERDEN
  86.          BNE OP
  87.          PLA            ; ERSTEN WERT WIEDER HINTEN
  88.          STA FARB+31    ; REINSCHIEBEN
  89.          LDA #00        ;GESCHWINDIGKEITSZAEHLER AUF NULL SETZEN
  90.          STA SPEED
  91. :MODIFY1 LDA #130       ; NAECHSTEN RASTERINTERRUPT BESTIMMEN
  92.          STA 53248+18   ; INS RASTERREGISTER SCHREIBEN
  93.          JMP $FEBC      ;SPRUNG ZUM ENDE DER INTERRUPTROUTINE
  94. :SPEED   B $00          ;GESCHWINDIGKEITSZAEHLER FUER FARBENSCROLL
  95.  
  96.  
  97.