> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)
00000000: 01 08 20 4C 69 73 74 69 6E 67 20 31 3A 0D 73 65 |.. Listing 1:.se|
00000010: 69 20 3B 49 6E 74 65 72 72 75 70 74 2D 46 6C 61 |i ;Interrupt-Fla|
00000020: 67 20 73 65 74 7A 65 6E 0D 6C 64 61 20 20 23 3C |g setzen.lda #<|
00000030: 6E 65 75 69 72 71 20 3B 49 52 51 2D 56 65 6B 74 |neuirq ;IRQ-Vekt|
00000040: 6F 72 0D 6C 64 78 20 20 23 3E 6E 65 75 69 72 71 |or.ldx #>neuirq|
00000050: 20 3B 61 75 66 20 6E 65 75 65 0D 73 74 61 20 20 | ;auf neue.sta |
00000060: 24 30 33 31 34 20 3B 52 6F 75 74 69 6E 65 0D 73 |$0314 ;Routine.s|
00000070: 74 78 20 20 24 30 33 31 35 20 3B 76 65 72 62 69 |tx $0315 ;verbi|
00000080: 65 67 65 6E 0D 6C 64 61 20 20 23 24 37 66 20 3B |egen.lda #$7f ;|
00000090: 54 69 6D 65 72 2D 49 6E 74 65 72 72 75 70 74 0D |Timer-Interrupt.|
000000A0: 73 74 61 20 20 24 64 63 30 64 20 3B 76 65 72 68 |sta $dc0d ;verh|
000000B0: 69 6E 64 65 72 6E 0D 6C 64 61 20 20 23 24 30 31 |indern.lda #$01|
000000C0: 20 3B 52 61 73 74 65 72 2D 49 6E 74 65 72 72 75 | ;Raster-Interru|
000000D0: 70 74 0D 73 74 61 20 20 24 64 30 31 61 20 3B 7A |pt.sta $d01a ;z|
000000E0: 75 6C 61 73 73 65 6E 0D 6C 64 61 20 20 23 24 32 |ulassen.lda #$2|
000000F0: 38 20 3B 52 61 73 74 65 72 2D 5A 65 69 6C 65 0D |8 ;Raster-Zeile.|
00000100: 73 74 61 20 20 24 64 30 31 32 20 3B 64 65 66 69 |sta $d012 ;defi|
00000110: 6E 69 65 72 65 6E 0D 6C 64 61 20 20 24 64 30 31 |nieren.lda $d01|
00000120: 31 20 3B 42 69 74 38 0D 61 6E 64 20 20 23 24 37 |1 ;Bit8.and #$7|
00000130: 66 20 3B 6C 94 73 63 68 65 6E 0D 73 74 61 20 20 |f ;l.schen.sta |
00000140: 24 64 30 31 31 0D 6C 64 61 20 20 23 24 30 30 20 |$d011.lda #$00 |
00000150: 3B 47 65 69 73 74 65 72 62 79 74 65 0D 73 74 61 |;Geisterbyte.sta|
00000160: 20 20 24 33 66 66 66 20 3B 6C 94 73 63 68 65 6E | $3fff ;l.schen|
00000170: 0D 63 6C 69 20 3B 49 6E 74 65 72 72 75 70 74 2D |.cli ;Interrupt-|
00000180: 46 6C 61 67 20 6C 94 73 63 68 65 6E 0D 72 74 73 |Flag l.schen.rts|
00000190: 0D 0D 3A 6E 65 75 69 72 71 6C 64 61 20 20 24 64 |..:neuirqlda $d|
000001A0: 30 31 39 20 3B 52 65 67 69 73 74 65 72 20 24 64 |019 ;Register $d|
000001B0: 30 31 39 0D 73 74 61 20 20 24 64 30 31 39 20 3B |019.sta $d019 ;|
000001C0: 6C 94 73 63 68 65 6E 0D 0D 6C 64 78 20 20 23 24 |l.schen..ldx #$|
000001D0: 30 30 20 3B 5A 84 68 6C 65 72 20 61 75 66 20 6E |00 ;Z.hler auf n|
000001E0: 75 6C 6C 20 73 65 74 7A 65 6E 0D 6C 64 61 20 20 |ull setzen.lda |
000001F0: 23 24 31 39 20 3B 52 61 73 74 65 72 2D 5A 65 69 |#$19 ;Raster-Zei|
00000200: 6C 65 0D 3A 77 61 69 74 7A 65 69 6C 65 63 6D 70 |le.:waitzeilecmp|
00000210: 20 20 24 64 30 31 32 20 3B 61 62 77 61 72 74 65 | $d012 ;abwarte|
00000220: 6E 0D 62 63 73 20 20 77 61 69 74 7A 65 69 6C 65 |n.bcs waitzeile|
00000230: 0D 6C 64 79 20 20 23 24 30 63 20 3B 56 65 72 7A |.ldy #$0c ;Verz|
00000240: 94 67 65 72 75 6E 67 0D 3A 77 61 69 74 31 64 65 |.gerung.:wait1de|
00000250: 79 0D 62 6E 65 20 20 77 61 69 74 31 0D 6C 64 61 |y.bne wait1.lda|
00000260: 20 20 23 24 31 30 20 3B 65 78 61 6B 74 65 73 20 | #$10 ;exaktes |
00000270: 54 69 6D 69 6E 67 0D 73 74 61 20 20 24 64 30 31 |Timing.sta $d01|
00000280: 31 20 3B 69 6E 69 74 69 61 6C 69 73 69 65 72 65 |1 ;initialisiere|
00000290: 6E 0D 6C 64 79 20 20 23 24 32 30 20 3B 56 65 72 |n.ldy #$20 ;Ver|
000002A0: 7A 94 67 65 72 75 6E 67 0D 3A 77 61 69 74 32 64 |z.gerung.:wait2d|
000002B0: 65 79 0D 62 6E 65 20 20 77 61 69 74 32 0D 62 69 |ey.bne wait2.bi|
000002C0: 74 20 20 24 63 30 0D 62 69 74 20 20 24 63 30 0D |t $c0.bit $c0.|
000002D0: 3A 6C 61 62 65 6C 6C 64 79 20 20 24 64 30 31 32 |:labelldy $d012|
000002E0: 3B 46 4C 44 2D 54 72 69 63 6B 20 21 21 21 0D 64 |;FLD-Trick !!!.d|
000002F0: 65 79 0D 74 79 61 0D 61 6E 64 20 20 23 24 30 37 |ey.tya.and #$07|
00000300: 0D 6F 72 61 20 20 23 24 31 30 0D 73 74 61 20 20 |.ora #$10.sta |
00000310: 24 64 30 31 31 0D 6C 64 61 20 20 66 61 72 62 65 |$d011.lda farbe|
00000320: 2C 78 20 3B 46 61 72 62 77 65 72 74 65 20 73 65 |,x ;Farbwerte se|
00000330: 74 7A 65 6E 0D 73 74 61 20 20 24 64 30 32 30 0D |tzen.sta $d020.|
00000340: 73 74 61 20 20 24 64 30 32 31 0D 0D 72 6F 72 20 |sta $d021..ror |
00000350: 20 24 66 66 66 66 2C 78 20 3B 56 65 72 7A 94 67 | $ffff,x ;Verz.g|
00000360: 65 72 75 6E 67 0D 72 6F 72 20 20 24 66 66 66 66 |erung.ror $ffff|
00000370: 2C 78 0D 72 6F 72 20 20 24 66 66 66 66 2C 78 0D |,x.ror $ffff,x.|
00000380: 72 6F 72 20 20 24 66 66 66 66 2C 78 0D 0D 69 6E |ror $ffff,x..in|
00000390: 78 0D 63 70 78 20 20 23 24 31 36 20 3B 32 32 20 |x.cpx #$16 ;22 |
000003A0: 5A 65 69 6C 65 6E 0D 62 6E 65 20 20 6C 61 62 65 |Zeilen.bne labe|
000003B0: 6C 20 3B 65 69 6E 67 65 66 84 72 62 74 3F 0D 6A |l ;eingef.rbt?.j|
000003C0: 6D 70 20 20 24 65 61 38 31 0D 20 0D 3A 66 61 72 |mp $ea81. .:far|
000003D0: 62 65 2E 62 20 20 20 31 35 2C 30 2C 36 2C 31 34 |be.b 15,0,6,14|
000003E0: 2C 31 35 2C 36 2C 31 34 2C 33 2C 31 35 2C 36 2C |,15,6,14,3,15,6,|
000003F0: 31 34 0D 2E 62 20 20 20 33 2C 31 2C 31 35 2C 36 |14..b 3,1,15,6|
00000400: 2C 31 33 2C 33 2C 31 2C 33 2C 31 34 2C 36 2C 30 |,13,3,1,3,14,6,0|
.. LISTING 1:.SEI ;INTERRUPT-FLAG SETZEN
.LDA #<NEUIRQ ;IRQ-VEKTOR.LDX #>NEUIRQ
;AUF NEUE.STA $0314 ;ROUTINE.STX $031
5 ;VERBIEGEN.LDA #$7F ;TIMER-INTERRUPT.
STA $DC0D ;VERHINDERN.LDA #$01 ;RASTER
-INTERRUPT.STA $D01A ;ZULASSEN.LDA #$2
8 ;RASTER-ZEILE.STA $D012 ;DEFINIEREN.L
DA $D011 ;BIT8.AND #$7F ;L.SCHEN.STA
$D011.LDA #$00 ;GEISTERBYTE.STA $3FFF
;L.SCHEN.CLI ;INTERRUPT-FLAG L.SCHEN.RTS
..:NEUIRQLDA $D019 ;REGISTER $D019.STA
$D019 ;L.SCHEN..LDX #$00 ;Z.HLER AUF N
ULL SETZEN.LDA #$19 ;RASTER-ZEILE.:WAIT
ZEILECMP $D012 ;ABWARTEN.BCS WAITZEILE
.LDY #$0C ;VERZ.GERUNG.:WAIT1DEY.BNE W
AIT1.LDA #$10 ;EXAKTES TIMING.STA $D01
1 ;INITIALISIEREN.LDY #$20 ;VERZ.GERUNG
.:WAIT2DEY.BNE WAIT2.BIT $C0.BIT $C0.
:LABELLDY $D012;FLD-TRICK !!!.DEY.TYA.A
ND #$07.ORA #$10.STA $D011.LDA FARBE
,X ;FARBWERTE SETZEN.STA $D020.STA $D0
21..ROR $FFFF,X ;VERZ.GERUNG.ROR $FFFF
,X.ROR $FFFF,X.ROR $FFFF,X..INX.CPX #
$16 ;22 ZEILEN.BNE LABEL ;EINGEF.RBT?.J
MP $EA81. .:FARBE.B 15,0,6,14,15,6,14
,3,15,6,14..B 3,1,15,6,13,3,1,3,14,6,0
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL