Xak - The Art of Visual Stage

Sprachbarrieren halten Dich vom Spielen Deines Herzchenspiels ab? Du willst eines Deiner Herzchenspiele Mal ganz neu erleben? Dann bist Du hier genau richtig.

Moderatoren: ikari_01, d4s, Redscorpion

Benutzeravatar
lytron
Code Bro
Code Bro
Beiträge: 2664
Registriert: 12. August 2012, 20:18
+Positive Tradingpoints+: 12 von 12
Wohnort: ハノーファー区
Kontaktdaten:

Xak - The Art of Visual Stage

Beitrag von lytron » 31. Januar 2016, 19:53

1677341-___sfc.jpg
1677341-___sfc.jpg (49.25 KiB) 22164 mal betrachtet
Habe heute ein bisschen im Kot gewühlt. Keine Ahnung, ob ich das je weitermache. Wenns wer haben will.

Normale Spielansicht
BG1 - Map - Vordergrund
BG2 - Map - Böden
BG3 - Menü/Lifebar/Textbox

Dialog/Shop:
BG1 - deaktiviert
BG2 - Porträt
BG3 - Textbox

ROM:

Code: Alles auswählen

$00/81D9 OAM-Update
$00/824D VRAM-Update via DMA
$01/B175 Positionskalkulation(?)
RAM:

Code: Alles auswählen

7E0003-7E0004 - Temp Store(?) der globalen X-Position ($0097 + $0504)

7E0009-7E000A - Temp Store(?) der globalen Y-Position ($0099 + $0502)

7E0015-7E0017 - Standardmäßiger Speicherplatz für Adressen (bei indirekter Adressierung)

7E001C-7E001D - Pointer zum nächsten DMA-Pipeline-Slot (=#$18x0), siehe $00/824D)

7E006F        - Vergleichswert für Blickrichtung = Backup Blickrichtung im letzten Frame?

7E0097-7E0098 - X Scroll Value
7E0099-7E009A - Y Scroll Value
7E009B-7E009C - X Scroll Value (Backup?)
7E009D-7E009E - Y Scroll Value (Backup?)
7E009F        - Breite der Map in 8x8px Tiles

7E00A1        - Höhe der Map in 8x8px Tiles

7E00C8-7E00E7 - Werte für animierte BG1-Tiles - Gerader Byte: #$00 Animation an, sonst Animation aus / Ungerader Byte: Animationsschritt

7E0502-7E0503 - Y-Pos auf dem Bildschirm
7E0504-7E0505 - X-Pos auf dem Bildschirm
7E0506        - Blickrichtung (1=r, 2=l, 4=runter, 8=hoch, [10=r, 20=unsichtb., 40=glitch, 80=unsichtb.])

7E0515        - Breite der Hitbox in 8px-Schritten

7E0530        - Y-Koordinate des Tiles, auf dem man steht(?)
7E0531        - X-Koordinate des Tiles, auf dem man steht(?)

7E1800-7E18xF - VRAM-DMA-Register Buffer:
(Es werden wohl max. nur 3 Slots gleichzeitig genutzt, siehe $01/90AA)
       7E18x0 - $2115 Value (Ohne MSB; $FF = inaktiv)
       7E18x1 - $2116 Value / VRAM Adresse Lo Byte
       7E18x2 - $2117 Value / VRAM Adresse Hi Byte
       7E18x3 - $43x2 Value / WRAM Adresse Lo Byte
       7E18x4 - $43x3 Value / WRAM Adresse Lo Byte
       7E18x5 - $43x4 Value / WRAM Bank
       7E18x6 - $43x5 Value / Data Counter Lo
       7E18x7 - $43x6 Value / Data Counter Hi

7E1A00-7E1A3F - CGRAM-Buffer - Menüs (scheinen fix zu sein)
7E1A40-7E1AFF - CGRAM-Buffer - Maps / Porträts
7E1B00-7E1BFF - CGRAM-Buffer - Sprites

7E1D00        - OAM-Buffer

7E2000-7E2xxx - Map (16x16-Tiles) für BG2
7E3000-7E3xxx - Map (16x16-Tiles) für BG1
7E4000-7E4xxx - Collision Map ($80=nicht betretbar, $40=schädlich, $00=Betretbar)

7E7000-7E77FF - Je 4 x 2 Byte adressen für "Baupläne", welche 4 8x8-Tiles ein 16x16 BG-Tile ergeben
		High Byte (ungerade Adresse) Bits für Collision Map: #$C2 = #%1100.0010

7E7800-7E78xx - Animierte BG1-Grafiken: Tile-Adressen der einzelnen Animationsschritte

7E7A00-7E7BFF - Buffer für animinerte BG1-Grafiken

7E9000-7E9... - Start Buffer BG2

VRAM:
Map Tiles (Bg1/2) ab 2000
Dialog-Porträt ab 3000
Helden-Sprites ab 3600 (immer(?))
Animierte BG1-Tiles (z.B. Kirchenglocke) 3F00-3FFF
Textbox-Inhalt ab 4F00


Commendierter Kot:
versteckter Inhalt:

Code: Alles auswählen

; Abarbeiten der VRAM-DMA-Pipeline
$00/824D A2 00 18    LDX #$1800
$00/8250 86 1C       STX $1C    [$00:001C]	; Resette den Pointer für den nächsten Freien Slot
$00/8252 B5 00       LDA $00,x  [$00:1800]	; Lade $43x0-Register Buffer
$00/8254 30 36       BMI $36    [$828C]		; Beende den Loop, wenn negativ
$00/8256 09 80       ORA #$80			; Setz Bit für 16-bit-VRAM-Transfer
$00/8258 8D 15 21    STA $2115  [$00:2115]
$00/825B B4 01       LDY $01,x  [$00:1801]
$00/825D 8C 16 21    STY $2116  [$00:2116]	; $18x1/2 = VRAM Adresse
$00/8260 A9 01       LDA #$01
$00/8262 8D 00 43    STA $4300  [$00:4300]	; Standard 16bit transfer
$00/8265 A9 18       LDA #$18
$00/8267 8D 01 43    STA $4301  [$00:4301]	; Ziel: $2118 - VRAM
$00/826A B4 03       LDY $03,x  [$00:1803]	; DMA Adresse
$00/826C 8C 02 43    STY $4302  [$00:4302]
$00/826F B5 05       LDA $05,x  [$00:1805]	; DMA Bank (HDMA wird nicht von dieser Funktion abgedeckt(?))
$00/8271 8D 04 43    STA $4304  [$00:4304]
$00/8274 B4 06       LDY $06,x  [$00:1806]	; Anzahl Bytes
$00/8276 8C 05 43    STY $4305  [$00:4305]
$00/8279 A9 01       LDA #$01
$00/827B 8D 0B 42    STA $420B  [$00:420B]	; Aktivier DMA
$00/827E A9 FF       LDA #$FF
$00/8280 95 00       STA $00,x  [$00:1800]	; Erledigten DMA-Slot als Frei markieren
$00/8282 E8          INX
$00/8283 E8          INX
$00/8284 E8          INX
$00/8285 E8          INX
$00/8286 E8          INX
$00/8287 E8          INX
$00/8288 E8          INX
$00/8289 E8          INX			; Inkrementier X für die Adresse des nächsten DMA-Slots
$00/828A 80 C6       BRA $C6    [$8252]		; Loop und nächsten DMA-Slot prüfen/ggf. durchführen






; Lade neue Map: Transfer der 16x16-Tile-Baupläne + Animierten BG1-Tiles
$01/869F AB          PLB                     A:FFFF X:4000 Y:0000 P:eNvmxdIzc
$01/86A0 A0 03 00    LDY #$0003              A:FFFF X:4000 Y:0000 P:envmxdIZc
$01/86A3 B1 00       LDA ($00),y[$00:90C3]	; Lade Paletten-Adresse
$01/86A5 85 15       STA $15    [$00:0015]	; Setz Temp Adresse in $15 auf
$01/86A7 E2 20       SEP #$20
$01/86A9 A0 05 00    LDY #$0005
$01/86AC B1 00       LDA ($00),y[$00:90C5]	; Lade Palettenbank
$01/86AE 85 17       STA $17    [$00:0017]	; Setz Temp Adresse in $15 auf, Teil zwo

; Transferiere Paletten in den CGRAM-Buffer
$01/86B0 A0 BF 00    LDY #$00BF			; Counter-Setup
$01/86B3 B7 15       LDA [$15],y[$19:F773]	; Lade Farbe
$01/86B5 99 40 1A    STA $1A40,y[$00:1AFF]	; Speicher in CGRAM-Buffer
$01/86B8 88          DEY			; Dekrementiere Counter
$01/86B9 10 F8       BPL $F8    [$86B3]		; Loop


$01/86BB C2 20       REP #$20                A:F600 X:4000 Y:FFFF P:eNvMxdIzc
$01/86BD A0 06 00    LDY #$0006              A:F600 X:4000 Y:FFFF P:eNvmxdIzc
$01/86C0 B1 00       LDA ($00),y[$00:90C6]   A:F600 X:4000 Y:0006 P:envmxdIzc
$01/86C2 85 15       STA $15    [$00:0015]   A:9AAE X:4000 Y:0006 P:eNvmxdIzc
$01/86C4 C8          INY                     A:9AAE X:4000 Y:0006 P:eNvmxdIzc
$01/86C5 B1 00       LDA ($00),y[$00:90C7]   A:9AAE X:4000 Y:0007 P:envmxdIzc
$01/86C7 85 16       STA $16    [$00:0016]   A:1E9A X:4000 Y:0007 P:envmxdIzc
$01/86C9 E2 20       SEP #$20                A:1E9A X:4000 Y:0007 P:envmxdIzc
$01/86CB 8B          PHB			; Bewahre aktuelle Bank auf
$01/86CC F4 00 7E    PEA $7E00			; Setze Direct Bank auf $7E
$01/86CF AB          PLB
$01/86D0 AB          PLB
$01/86D1 A0 FF 08    LDY #$08FF			; Anzahl an Bytes / von $7E78FF bis $7E7000

;Datentransfer Loop
$01/86D4 B7 15       LDA [$15],y[$1E:A3AD]   A:1E9A X:4000 Y:08FF P:envMxdIzc
$01/86D6 99 00 70    STA $7000,y[$7E:78FF]   A:1E00 X:4000 Y:08FF P:envMxdIZc
$01/86D9 88          DEY                     A:1E00 X:4000 Y:08FF P:envMxdIZc
$01/86DA B7 15       LDA [$15],y[$1E:A3AC]   A:1E00 X:4000 Y:08FE P:envMxdIzc
$01/86DC 99 00 70    STA $7000,y[$7E:78FE]   A:1E00 X:4000 Y:08FE P:envMxdIZc
$01/86DF 88          DEY                     A:1E00 X:4000 Y:08FE P:envMxdIZc
$01/86E0 10 F2       BPL $F2    [$86D4]      A:1E00 X:4000 Y:08FD P:envMxdIzc








;???
$01/86E2 AB          PLB                     A:1E00 X:4000 Y:FFFF P:eNvMxdIzc
$01/86E3 C2 20       REP #$20                A:1E00 X:4000 Y:FFFF P:envMxdIZc
$01/86E5 A0 09 00    LDY #$0009              A:1E00 X:4000 Y:FFFF P:envmxdIZc
$01/86E8 B1 00       LDA ($00),y[$00:90C9]   A:1E00 X:4000 Y:0009 P:envmxdIzc
$01/86EA 85 15       STA $15    [$00:0015]   A:8745 X:4000 Y:0009 P:eNvmxdIzc
$01/86EC C8          INY                     A:8745 X:4000 Y:0009 P:eNvmxdIzc
$01/86ED B1 00       LDA ($00),y[$00:90CA]   A:8745 X:4000 Y:000A P:envmxdIzc
$01/86EF 85 16       STA $16    [$00:0016]   A:1C87 X:4000 Y:000A P:envmxdIzc
$01/86F1 20 C6 84    JSR $84C6  [$01:84C6]   A:1C87 X:4000 Y:000A P:envmxdIzc











;???
$01/86F4 E2 20       SEP #$20                A:1C87 X:4000 Y:000A P:envmxdIzc
$01/86F6 A0 00 00    LDY #$0000              A:1C87 X:4000 Y:000A P:envMxdIzc
$01/86F9 84 15       STY $15    [$00:0015]   A:1C87 X:4000 Y:0000 P:envMxdIZc
$01/86FB A9 7F       LDA #$7F                A:1C87 X:4000 Y:0000 P:envMxdIZc
$01/86FD 85 17       STA $17    [$00:0017]   A:1C7F X:4000 Y:0000 P:envMxdIzc
$01/86FF C2 20       REP #$20                A:1C7F X:4000 Y:0000 P:envMxdIzc
$01/8701 A7 15       LDA [$15]  [$7F:0000]   A:1C7F X:4000 Y:0000 P:envmxdIzc
$01/8703 85 9F       STA $9F    [$00:009F]   A:0020 X:4000 Y:0000 P:envmxdIzc
$01/8705 A0 02 00    LDY #$0002              A:0020 X:4000 Y:0000 P:envmxdIzc
$01/8708 B7 15       LDA [$15],y[$7F:0002]   A:0020 X:4000 Y:0002 P:envmxdIzc
$01/870A 85 A1       STA $A1    [$00:00A1]   A:0030 X:4000 Y:0002 P:envmxdIzc
$01/870C A0 04 00    LDY #$0004              A:0030 X:4000 Y:0002 P:envmxdIzc
$01/870F B7 15       LDA [$15],y[$7F:0004]   A:0030 X:4000 Y:0004 P:envmxdIzc
$01/8711 85 A3       STA $A3    [$00:00A3]   A:0000 X:4000 Y:0004 P:envmxdIZc
$01/8713 A0 06 00    LDY #$0006              A:0000 X:4000 Y:0004 P:envmxdIZc
$01/8716 B7 15       LDA [$15],y[$7F:0006]   A:0000 X:4000 Y:0006 P:envmxdIzc
$01/8718 85 A5       STA $A5    [$00:00A5]   A:00C0 X:4000 Y:0006 P:envmxdIzc
$01/871A A0 08 00    LDY #$0008              A:00C0 X:4000 Y:0006 P:envmxdIzc
$01/871D B7 15       LDA [$15],y[$7F:0008]   A:00C0 X:4000 Y:0008 P:envmxdIzc
$01/871F 4A          LSR A                   A:0300 X:4000 Y:0008 P:envmxdIzc
$01/8720 3A          DEC A                   A:0180 X:4000 Y:0008 P:envmxdIzc
$01/8721 85 06       STA $06    [$00:0006]   A:017F X:4000 Y:0008 P:envmxdIzc
$01/8723 A0 0F 00    LDY #$000F              A:017F X:4000 Y:0008 P:envmxdIzc
$01/8726 B7 15       LDA [$15],y[$7F:000F]   A:017F X:4000 Y:000F P:envmxdIzc
$01/8728 29 FF 00    AND #$00FF              A:DB00 X:4000 Y:000F P:eNvmxdIzc
$01/872B 85 95       STA $95    [$00:0095]   A:0000 X:4000 Y:000F P:envmxdIZc
$01/872D A5 06       LDA $06    [$00:0006]   A:0000 X:4000 Y:000F P:envmxdIZc
$01/872F A2 10 00    LDX #$0010              A:017F X:4000 Y:000F P:envmxdIzc
$01/8732 A0 00 20    LDY #$2000              A:017F X:0010 Y:000F P:envmxdIzc
$01/8735 54 7E 7F    MVN 7F 7E               A:017F X:0010 Y:2000 P:envmxdIzc
$01/8738 A5 06       LDA $06    [$00:0006]   A:FFFF X:0190 Y:2180 P:envmxdIzc
$01/873A A0 00 30    LDY #$3000              A:017F X:0190 Y:2180 P:envmxdIzc
$01/873D 54 7E 7F    MVN 7F 7E               A:017F X:0190 Y:3000 P:envmxdIzc
$01/8740 E2 20       SEP #$20                A:FFFF X:0310 Y:3180 P:envmxdIzc
$01/8742 A2 00 70    LDX #$7000              A:FFFF X:0310 Y:3180 P:envMxdIzc
$01/8745 86 00       STX $00    [$00:0000]   A:FFFF X:7000 Y:3180 P:envMxdIzc
$01/8747 A0 FF 07    LDY #$07FF              A:FFFF X:7000 Y:3180 P:envMxdIzc
$01/874A B1 00       LDA ($00),y[$7E:77FF]   A:FFFF X:7000 Y:07FF P:envMxdIzc
$01/874C 29 81       AND #$81                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/874E 85 03       STA $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8750 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8752 29 10       AND #$10                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8754 0A          ASL A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8755 0A          ASL A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8756 04 03       TSB $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8758 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875A 29 20       AND #$20                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/875C 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875D 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875E 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/875F 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8760 04 03       TSB $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8762 B1 00       LDA ($00),y[$7E:77FF]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8764 29 0E       AND #$0E                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8766 0A          ASL A                   A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/8767 04 03       TSB $03    [$00:0003]   A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8769 B1 00       LDA ($00),y[$7E:77FF]   A:FF10 X:7000 Y:07FF P:envMxdIZc
$01/876B 29 40       AND #$40                A:FF08 X:7000 Y:07FF P:envMxdIzc
$01/876D 4A          LSR A                   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/876E 05 03       ORA $03    [$00:0003]   A:FF00 X:7000 Y:07FF P:envMxdIZc
$01/8770 91 00       STA ($00),y[$7E:77FF]   A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8772 88          DEY                     A:FF10 X:7000 Y:07FF P:envMxdIzc
$01/8773 88          DEY                     A:FF10 X:7000 Y:07FE P:envMxdIzc
$01/8774 10 D4       BPL $D4    [$874A]      A:FF10 X:7000 Y:07FD P:envMxdIzc










; Bau die Collision Map
$01/8776 C2 20       REP #$20			; A = 16bit
$01/8778 A5 9F       LDA $9F    [$00:009F]	; Lade Breite der Map (Anzahl 8x8 Tiles)
$01/877A 4A          LSR A			; geteilt durch 2 (anzahl 16x16 Tiles)
$01/877B 85 06       STA $06    [$00:0006]	; Speicher in $06
$01/877D A5 A1       LDA $A1    [$00:00A1]	; Lade Höhe der Map (Anzahl 8x8 Tiles)
$01/877F 4A          LSR A			; geteilt durch 2 (anzahl 16x16 Tiles)
$01/8780 EB          XBA			; Ein bisschen Getrickse, faktisch wird jetzt nur diese Anzahl in 

$07 gespeichert
$01/8781 05 06       ORA $06
$01/8783 85 06       STA $06
$01/8785 E2 20       SEP #$20			; A=8bit
$01/8787 A0 00 20    LDY #$2000			; Setze BG2-16x16-Tile-Map-Adresse in $00 auf
$01/878A 84 00       STY $00    [$00:0000]
$01/878C A0 00 30    LDY #$3000			; Setze BG1-16x16-Tile-Map-Adresse in $03 auf
$01/878F 84 03       STY $03    [$00:0003]
$01/8791 A0 00 40    LDY #$4000			; Setze Collision-Map-Adresse in $18 auf
$01/8794 84 18       STY $18    [$00:0018]

;Setup für eine neue Reihe
$01/8796 A6 06       LDX $06    [$00:0006]	; X = Höhe/Breite der Map
$01/8798 DA          PHX			; Auf den Stack geschmissen
$01/8799 A6 18       LDX $18    [$00:0018]	; Aktuelle Zeile in der 
$01/879B DA          PHX			; Auf den Stack geschmissen

;Loop für eine Reihe Tiles
$01/879C C2 20       REP #$20			; A=16bit
$01/879E B2 00       LDA ($00)  [$7E:2000]	; Lade BG2-Map-16x16-Tile
$01/87A0 29 FF 00    AND #$00FF			; Stelle den entspr. Byte frei
$01/87A3 0A          ASL A			; mal 8
$01/87A4 0A          ASL A
$01/87A5 0A          ASL A
$01/87A6 18          CLC
$01/87A7 69 00 70    ADC #$7000			; Addresse des Tile-Bauplans in der Bauplanliste ab $7E7000
$01/87AA 1A          INC A			; +1 (für den entsprechenden High Byte)
$01/87AB 85 09       STA $09    [$00:0009]	; Speicher in $09
$01/87AD B2 03       LDA ($03)  [$7E:3000]	; Lade BG1-Map-16x16-Tile
$01/87AF 29 FF 00    AND #$00FF			; Stelle den entspr. Byte frei
$01/87B2 0A          ASL A			; mal 8
$01/87B3 0A          ASL A
$01/87B4 0A          ASL A
$01/87B5 18          CLC
$01/87B6 69 00 70    ADC #$7000			; Addresse des Tile-Bauplans in der Bauplanliste ab $7E7000
$01/87B9 1A          INC A			; +1 (für den entsprechenden High Byte)
$01/87BA 85 0C       STA $0C    [$00:000C]	; Speicher in $09
$01/87BC E2 20       SEP #$20			; A=8bit
$01/87BE A5 95       LDA $95    [$00:0095]   A:7179 X:4000 Y:4000 P:envMxdIzc
$01/87C0 D0 33       BNE $33    [$87F5]      A:7100 X:4000 Y:4000 P:envMxdIZc
$01/87C2 B2 09       LDA ($09)  [$7E:76D9]	; Lade BG2-Tile (mit Collision-Map Flags)
$01/87C4 12 0C       ORA ($0C)  [$7E:7179]	; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87C6 29 C2       AND #$C2			; Entferne alles außer den Collision Map Flags
$01/87C8 92 18       STA ($18)  [$7E:4000]	; Speicher in die Collision Map (l-o 8x8)
$01/87CA A0 02 00    LDY #$0002			; Y=2, für zweites Tile im Bauplan
$01/87CD B1 09       LDA ($09),y[$7E:76DB]	; Lade BG2-Tile (mit Collision-Map Flags)
$01/87CF 11 0C       ORA ($0C),y[$7E:717B]	; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87D1 29 C2       AND #$C2			; Entferne alles außer den Collision Map Flags
$01/87D3 A0 01 00    LDY #$0001			; Rechts oben = +1
$01/87D6 91 18       STA ($18),y[$7E:4001]	; Speicher in die Collision Map (r-o 8x8)
$01/87D8 A0 04 00    LDY #$0004			; Y=4, für drittes Tile im Bauplan
$01/87DB B1 09       LDA ($09),y[$7E:76DD]	; Lade BG2-Tile (mit Collision-Map Flags)
$01/87DD 11 0C       ORA ($0C),y[$7E:717D]	; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87DF 29 C2       AND #$C2			; Entferne alles außer den Collision Map Flags
$01/87E1 A4 9F       LDY $9F    [$00:009F]	; Lade "Verschieber" für nächste Reihe (#$20)
$01/87E3 91 18       STA ($18),y[$7E:4020]	; Speicher in die Collision Map (l-u 8x8)
$01/87E5 A0 06 00    LDY #$0006			; Y=6, für viertes Tile im Bauplan
$01/87E8 B1 09       LDA ($09),y[$7E:76DF]	; Lade BG2-Tile (mit Collision-Map Flags)
$01/87EA 11 0C       ORA ($0C),y[$7E:717F]	; Hau BG1-Tile (mit dessen Collision-Map Flags) obendrauf
$01/87EC 29 C2       AND #$C2			; Entferne alles außer den Collision Map Flags
$01/87EE A4 9F       LDY $9F    [$00:009F]	; Lade "Verschieber" für nächste Reihe (#$20)
$01/87F0 C8          INY			; +1, um das Tile rechts vom dritten anzusprechen
$01/87F1 91 18       STA ($18),y[$7E:4021]	; Speicher in die Collision Map (r-u 8x8)
$01/87F3 80 29       BRA $29    [$881E]		; Jump zur Inkrement-Automatik

; Nächstes Tile
$01/881E C2 20       REP #$20			; A=16bit
$01/8820 E6 00       INC $00    [$00:0000]	; Erhöhe BG2-16x16-Tile-Map-Adresse
$01/8822 E6 03       INC $03    [$00:0003]	; Erhöhe BG1-16x16-Tile-Map-Adresse
$01/8824 E6 18       INC $18    [$00:0018]	; Erhöhe Collision-Map-Adresse
$01/8826 E6 18       INC $18    [$00:0018]
$01/8828 E2 20       SEP #$20			; A=8bit
$01/882A C6 06       DEC $06    [$00:0006]	; Dekrementiere die Anzahl an zu-erledigenden Tiles für diese Reihe
$01/882C F0 03       BEQ $03    [$8831]		; Springe, wenn Reihe fertig
$01/882E 82 6B FF    BRL $FF6B  [$879C]		; Ansonsten: Loop

;Neue Zeile
$01/8831 C2 20       REP #$20			; A=16bit
$01/8833 68          PLA			; Hol Adresse der aktuellen Collision-Map-Zeile vom Stack
$01/8834 18          CLC
$01/8835 65 9F       ADC $9F    [$00:009F]	; Hau zweimal die Mapbreite drauf
$01/8837 65 9F       ADC $9F    [$00:009F]	; (D. h. man hat den Anfangspunkt der nächsten Zeile)
$01/8839 85 18       STA $18    [$00:0018]	; Speicher als neue Collision-Map-Speicheradresse
$01/883B E2 20       SEP #$20			; A=8bit
$01/883D FA          PLX			; Hol Höhe/Breite der Map vom Stack
$01/883E 86 06       STX $06			; Speicher in $06/$07
$01/8840 C6 07       DEC $07    [$00:0007]	; Verringere Höhe um 1 (weil eine Zeile erledigt wurde)
$01/8842 F0 03       BEQ $03    [$8847]		; Spring, wenn alle Zeilen fertig sind
$01/8844 4C 96 87    JMP $8796  [$01:8796]	; Sonst: Loop












; Animierte BG1-Tiles (Setup beim Kartenwechsel?)
$01/902E 48          PHA			; Akku, Index-Register, Direct Bank, Direct Page aufn Stack
$01/902F DA          PHX
$01/9030 5A          PHY
$01/9031 8B          PHB
$01/9032 08          PHP
$01/9033 F4 00 7E    PEA $7E00			; Setze Direct Bank auf $7E
$01/9036 AB          PLB
$01/9037 AB          PLB
$01/9038 A2 00 7A    LDX #$7A00			; Adresse des Buffers für animierte BG1-Tile
$01/903B 86 18       STX $18    [$00:0018]	; Speicher Buffer-Adresse in $18
$01/903D A2 00 00    LDX #$0000			; Animations-Index-Setup 
$01/9040 A0 00 78    LDY #$7800			; Tile-Animationslistensetup
$01/9043 A9 10       LDA #$10			; Maximum an möglichen Animation
$01/9045 85 06       STA $06    [$00:0006]	; Setup als Counter in $06
$01/9047 B5 C8       LDA $C8,x  [$00:00C8]	; Ist eine Animation aktiviert? (=#$00)
$01/9049 D0 41       BNE $41    [$908C]		; Spring, wenn nicht (!=#$00)

; Animierte BG1-Tiles(?)
$01/904B B9 00 00    LDA $0000,y[$7E:7800]   A:0100 X:0000 Y:7800 P:envMxdIZC
$01/904E F0 3C       BEQ $3C    [$908C]      A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9050 95 C8       STA $C8,x  [$00:00C8]   A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9052 A9 01       LDA #$01                A:0110 X:0000 Y:7800 P:envMxdIzC
$01/9054 04 C7       TSB $C7    [$00:00C7]   A:0101 X:0000 Y:7800 P:envMxdIzC
$01/9056 F6 C9       INC $C9,x  [$00:00C9]	; Erhöhe Animationsschritt
$01/9058 B5 C9       LDA $C9,x  [$00:00C9]	; Lade Animationsschritt-Nummer
$01/905A C2 20       REP #$20			; A=16bit
$01/905C 29 FF 00    AND #$00FF			; Entferne, was noch im Akku-High-Byte rumgammelte
$01/905F C9 07 00    CMP #$0007			; Bei 7 angekommen?
$01/9062 F0 08       BEQ $08    [$906C]		; Wenn ja, Spring zum Animationsschritt-Nummer-Resetten
$01/9064 1A          INC A			; (Animationsnummer + 1) * 2
$01/9065 0A          ASL A
$01/9066 85 00       STA $00    [$00:0000]	; ... als Index für die Adresse, wo die nächste Tilegrafik geladen 

werden soll
$01/9068 B1 00       LDA ($00),y[$7E:780E]	; Wenn die geladene Animationstile-Adresse #$0000 ist,
$01/906A D0 0A       BNE $0A    [$9076]		; ist das hier das Zeichen, dass die Animation hier gecycled wird
;Animations-Cycling
$01/906C B5 C8       LDA $C8,x  [$00:00C8]	; Wieder doof verpackt, aber faktisch wird der Animationsschritt 

resettet
$01/906E 29 FF 00    AND #$00FF			; Nämlich hier: Der High Byte ($C9,x) wird gecleart
$01/9071 95 C8       STA $C8,x  [$00:00C8]	; Und alles wird wieder zurückkgespeichert
$01/9073 B9 02 00    LDA $0002,y[$7E:7802]	; Lade die Adresse vom ersten Tile der Animation und übertrag das 

in den VRAM

;Verschiebe Tile-Graphik(?)-Daten im WRAM
$01/9076 DA          PHX			; Konservier X & Y
$01/9077 5A          PHY
$01/9078 0A          ASL A			; A * $20
$01/9079 0A          ASL A
$01/907A 0A          ASL A
$01/907B 0A          ASL A
$01/907C 0A          ASL A
$01/907D 18          CLC                     A:0600 X:0000 Y:7800 P:envmxdIzc
$01/907E 69 00 C0    ADC #$C000              A:0600 X:0000 Y:7800 P:envmxdIzc
$01/9081 AA          TAX                     A:C600 X:0000 Y:7800 P:eNvmxdIzc
$01/9082 A4 18       LDY $18    [$00:0018]   A:C600 X:C600 Y:7800 P:eNvmxdIzc
$01/9084 A9 1F 00    LDA #$001F			; $20 Bytes
$01/9087 54 7E 7E    MVN 7E 7E			; VERSCHIEBE DATEN
$01/908A 7A          PLY			; Wiederherstellen von X & Y
$01/908B FA          PLX

$01/908C C2 20       REP #$20			; A16bit
$01/908E A5 18       LDA $18    [$00:0018]	; Lade Buffer-Adresse der Animierten BG1-Tiles
$01/9090 18          CLC
$01/9091 69 20 00    ADC #$0020			; +#$20 (Adresse nächstes Tiles)
$01/9094 85 18       STA $18    [$00:0018]	; Speicher zurück
$01/9096 98          TYA			; Erhöhe die "anvisierte" Tabelle von Animationstiles
$01/9097 18          CLC
$01/9098 69 10 00    ADC #$0010
$01/909B A8          TAY
$01/909C E2 20       SEP #$20                A:7810 X:0000 Y:7810 P:envmxdIzc
$01/909E D6 C8       DEC $C8,x  [$00:00C8]   A:7810 X:0000 Y:7810 P:envMxdIzc
$01/90A0 E8          INX                     A:7810 X:0000 Y:7810 P:envMxdIzc
$01/90A1 E8          INX                     A:7810 X:0001 Y:7810 P:envMxdIzc
$01/90A2 C6 06       DEC $06    [$00:0006]   A:7810 X:0002 Y:7810 P:envMxdIzc
$01/90A4 D0 A1       BNE $A1    [$9047]      A:7810 X:0002 Y:7810 P:envMxdIzc
$01/90A6 A5 C7       LDA $C7    [$00:00C7]   A:7900 X:0020 Y:7900 P:envMxdIZc
$01/90A8 F0 29       BEQ $29    [$90D3]      A:7900 X:0020 Y:7900 P:envMxdIZc

; Setz einen WRAM-nach-VRAM-DMA in der Pipeline für die animierten Tile-Grafiken auf
$01/90AA A6 1C       LDX $1C    [$00:001C]	; Lade Pointer für nächsten freien VRAM-DMA-Slot
$01/90AC E0 20 18    CPX #$1820
$01/90AF B0 22       BCS $22    [$90D3]		; Überspring das, wenn alle (3) Slots voll sind(?)
$01/90B1 A9 01       LDA #$01                A:7901 X:1800 Y:7900 P:eNvMxdIzc
$01/90B3 14 C7       TRB $C7    [$00:00C7]   A:7901 X:1800 Y:7900 P:envMxdIzc
$01/90B5 A0 00 3F    LDY #$3F00			; VRAM-Zieladresse: $3F00
$01/90B8 94 01       STY $01,x  [$00:1801]
$01/90BA A0 00 7A    LDY #$7A00			; Daten-Buffer ist bei 7E:7A00
$01/90BD 94 03       STY $03,x  [$00:1803]
$01/90BF A9 7E       LDA #$7E
$01/90C1 95 05       STA $05,x  [$00:1805]
$01/90C3 A0 00 02    LDY #$0200			; $200 Byte per DMA übertragen
$01/90C6 94 06       STY $06,x  [$00:1806]
$01/90C8 74 00       STZ $00,x  [$00:1800]
$01/90CA C2 20       REP #$20			; A =16bit
$01/90CC 8A          TXA			; Stelle Adresse des nächsten freien DMA-Slots her
$01/90CD 18          CLC
$01/90CE 69 08 00    ADC #$0008
$01/90D1 85 1C       STA $1C    [$00:001C]	; Speicher sie in $1C (wie gehabt)

; Stell alles wieder her und Exit
$01/90D3 28          PLP
$01/90D4 AB          PLB
$01/90D5 7A          PLY
$01/90D6 FA          PLX
$01/90D7 68          PLA
$01/90D8 60          RTS





; Aus der Funktion: "Ich lade einen neuen Tile-Streifen, weil der Held die Map Scrollt"
$01/9447 C2 20       REP #$20                A:00D0 X:00DE Y:0500 P:eNvmxdIzc
$01/9449 A5 A7       LDA $A7    [$00:00A7]   A:00D0 X:00DE Y:0500 P:eNvmxdIzc
$01/944B 10 62       BPL $62    [$94AF]      A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94AF E6 87       INC $87    [$00:0087]   A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94B1 A5 87       LDA $87    [$00:0087]   A:0002 X:00DE Y:0500 P:envmxdIzc
$01/94B3 18          CLC                     A:32CE X:00DE Y:0500 P:envmxdIzc
$01/94B4 69 10 00    ADC #$0010              A:32CE X:00DE Y:0500 P:envmxdIzc
$01/94B7 85 18       STA $18    [$00:0018]   A:32DE X:00DE Y:0500 P:envmxdIzc
$01/94B9 A5 83       LDA $83    [$00:0083]   A:32DE X:00DE Y:0500 P:envmxdIzc
$01/94BB 29 1E 00    AND #$001E              A:0106 X:00DE Y:0500 P:envmxdIzc
$01/94BE C9 1E 00    CMP #$001E              A:0006 X:00DE Y:0500 P:envmxdIzc
$01/94C1 D0 0B       BNE $0B    [$94CE]      A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/94CE A5 83       LDA $83    [$00:0083]   A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/94D0 1A          INC A                   A:0106 X:00DE Y:0500 P:envmxdIzc
$01/94D1 1A          INC A                   A:0107 X:00DE Y:0500 P:envmxdIzc
$01/94D2 85 83       STA $83    [$00:0083]   A:0108 X:00DE Y:0500 P:envmxdIzc
$01/94D4 49 00 04    EOR #$0400              A:0108 X:00DE Y:0500 P:envmxdIzc
$01/94D7 85 12       STA $12    [$00:0012]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/94D9 A5 95       LDA $95    [$00:0095]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/94DB F0 25       BEQ $25    [$9502]      A:0000 X:00DE Y:0500 P:envmxdIZc
$01/9502 A5 97       LDA $97    [$00:0097]   A:0000 X:00DE Y:0500 P:envmxdIZc
$01/9504 85 9B       STA $9B    [$00:009B]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/9506 E6 8A       INC $8A    [$00:008A]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/9508 A5 8A       LDA $8A    [$00:008A]   A:00E0 X:00DE Y:0500 P:envmxdIzc
$01/950A 18          CLC                     A:22CE X:00DE Y:0500 P:envmxdIzc
$01/950B 69 10 00    ADC #$0010              A:22CE X:00DE Y:0500 P:envmxdIzc
$01/950E 85 15       STA $15    [$00:0015]   A:22DE X:00DE Y:0500 P:envmxdIzc
$01/9510 A5 85       LDA $85    [$00:0085]   A:22DE X:00DE Y:0500 P:envmxdIzc
$01/9512 29 1E 00    AND #$001E              A:0106 X:00DE Y:0500 P:envmxdIzc
$01/9515 C9 1E 00    CMP #$001E              A:0006 X:00DE Y:0500 P:envmxdIzc
$01/9518 D0 0B       BNE $0B    [$9525]      A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/9525 A5 85       LDA $85    [$00:0085]   A:0006 X:00DE Y:0500 P:eNvmxdIzc
$01/9527 1A          INC A                   A:0106 X:00DE Y:0500 P:envmxdIzc
$01/9528 1A          INC A                   A:0107 X:00DE Y:0500 P:envmxdIzc
$01/9529 85 85       STA $85    [$00:0085]   A:0108 X:00DE Y:0500 P:envmxdIzc
$01/952B 49 00 04    EOR #$0400              A:0108 X:00DE Y:0500 P:envmxdIzc
$01/952E 85 0F       STA $0F    [$00:000F]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9530 08          PHP                     A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9531 8B          PHB			; Sichere aktuelle Direct Bank auf dem Stack
$01/9532 F4 00 7E    PEA $7E00			; Setze $7E als Direct Bank
$01/9535 AB          PLB
$01/9536 AB          PLB
$01/9537 A5 0F       LDA $0F    [$00:000F]   A:0508 X:00DE Y:0500 P:envmxdIzc
$01/9539 0A          ASL A			; Mal zwei
$01/953A 85 03       STA $03    [$00:0003]	; Zwischenspeicherdas als Speicher-Index im BG2-Buffer
$01/953C 29 C0 07    AND #$07C0			; #%0000.0edc.ba00.0000
$01/953F 0A          ASL A			; #%0000.edcb.a000.0000
$01/9540 EB          XBA			; #%a000.0000.0000.edcb
$01/9541 29 FF 00    AND #$00FF			; #%0000.0000.0000.edcb
$01/9544 85 06       STA $06    [$00:0006]   A:0004 X:00DE Y:0500 P:envmxdIzc
$01/9546 A9 10 00    LDA #$0010              A:0004 X:00DE Y:0500 P:envmxdIzc
$01/9549 38          SEC                     A:0010 X:00DE Y:0500 P:envmxdIzc
$01/954A E5 06       SBC $06    [$00:0006]   A:0010 X:00DE Y:0500 P:envmxdIzC
$01/954C 85 06       STA $06    [$00:0006]   A:000C X:00DE Y:0500 P:envmxdIzC
$01/954E 48          PHA                     A:000C X:00DE Y:0500 P:envmxdIzC

; Bau die neuen 16x16-Tiles gemäß Tilemap im Buffer zusammen.
$01/954F B2 15       LDA ($15)  [$7E:22DE]	; Lade BG2 16x16-Tilenummer
$01/9551 29 FF 00    AND #$00FF			; Entferne unnötig vollgeladenen High Byte
$01/9554 0A          ASL A			; mal 8 (jeder Eintrag hat 8 Byte Länge)
$01/9555 0A          ASL A
$01/9556 0A          ASL A
$01/9557 AA          TAX			; Transferier in X als Lade-Index
$01/9558 A4 03       LDY $03    [$00:0003]	; Lade Speicher-Index in Y
$01/955A BD 00 70    LDA $7000,x[$7E:7640]	; Lade 1., l-o 8x8-Tile für 16x16 Tile
$01/955D 29 FF 3D    AND #$3DFF			; %0011.1101.1111.1111
$01/9560 99 00 90    STA $9000,y[$7E:9A10]	; Speicher in den BG2-Buffer
$01/9563 BD 02 70    LDA $7002,x[$7E:7642]	; Lade 2., r-o 8x8-Tile für 16x16 Tile
$01/9566 29 FF 3D    AND #$3DFF
$01/9569 99 02 90    STA $9002,y[$7E:9A12]	; Speicher in den BG2-Buffer (rechts daneben)
$01/956C BD 04 70    LDA $7004,x[$7E:7644]	; Lade 3., l-u 8x8-Tile für 16x16 Tile
$01/956F 29 FF 3D    AND #$3DFF
$01/9572 99 40 90    STA $9040,y[$7E:9A50]	; Speicher in den BG2-Buffer (+#$40 = Eine Reihe tiefer)
$01/9575 BD 06 70    LDA $7006,x[$7E:7646]	; Lade 4., r-u 8x8-Tile für 16x16 Tile
$01/9578 29 FF 3D    AND #$3DFF
$01/957B 99 42 90    STA $9042,y[$7E:9A52]	; Speicher in den BG2-Buffer (rechts daneben)
$01/957E 98          TYA			; Erhöhe den Speicherindex um #$80 (zwei 8x8px-Reihen tiefer - 

nächstes 16x16 Tile)
$01/957F 18          CLC
$01/9580 69 80 00    ADC #$0080
$01/9583 85 03       STA $03    [$00:0003]	; Speicher den Speicher-Index wieder in $03
$01/9585 A5 9F       LDA $9F    [$00:009F]   A:0A90 X:0640 Y:0A10 P:envmxdIzc
$01/9587 4A          LSR A                   A:0080 X:0640 Y:0A10 P:envmxdIzc
$01/9588 18          CLC                     A:0040 X:0640 Y:0A10 P:envmxdIzc








$01/B175 AD 0C 05    LDA $050C  [$00:050C]   A:7901 X:04D0 Y:0500 P:envMxdIzC
$01/B178 0D 0D 05    ORA $050D  [$00:050D]   A:7914 X:04D0 Y:0500 P:envMxdIzC
$01/B17B D0 02       BNE $02    [$B17F]		(Überspringt ein Exit?)

$01/B17F A9 E0       LDA #$E0                A:7914 X:04D0 Y:0500 P:envMxdIzC
$01/B181 1C FF 17    TRB $17FF  [$00:17FF]   A:79E0 X:04D0 Y:0500 P:eNvMxdIzC
$01/B184 A9 40       LDA #$40                A:79E0 X:04D0 Y:0500 P:eNvMxdIZC
$01/B186 14 61       TRB $61    [$00:0061]   A:7940 X:04D0 Y:0500 P:envMxdIzC
$01/B188 A9 FF       LDA #$FF                A:7940 X:04D0 Y:0500 P:envMxdIZC
$01/B18A 85 79       STA $79    [$00:0079]   A:79FF X:04D0 Y:0500 P:eNvMxdIzC

$01/B18C C2 20       REP #$20
$01/B18E AD 04 05    LDA $0504  [$00:0504]	; X-Pos aufm Bildschirm
$01/B191 18          CLC
$01/B192 65 97       ADC $97    [$00:0097]	; Plus Scrollwert
$01/B194 85 03       STA $03    [$00:0003]	; Globale X-Position in $03
$01/B196 4A          LSR A
$01/B197 4A          LSR A
$01/B198 4A          LSR A			; Geteilt durch 8
$01/B199 E2 20       SEP #$20			; A = 8 Bit
$01/B19B 8D 31 05    STA $0531  [$00:0531]	; = $0531 X-Koord des Tiles(?) auf dem man steht(?)

$01/B19E C2 20       REP #$20
$01/B1A0 AD 02 05    LDA $0502  [$00:0502]	; Y-Pos aufm Bildschirm
$01/B1A3 18          CLC
$01/B1A4 65 99       ADC $99    [$00:0099]	; Plus Scrollwert
$01/B1A6 85 09       STA $09    [$00:0009]	; Globale Y-Position in $09
$01/B1A8 4A          LSR A
$01/B1A9 4A          LSR A
$01/B1AA 4A          LSR A			; Geteilt durch 8
$01/B1AB E2 20       SEP #$20			; A = 8 Bit
$01/B1AD 8D 30 05    STA $0530  [$00:0530]	; = $0530 Y-Koord des Tiles(?) auf dem man steht(?)

$01/B1B0 AD 31 05    LDA $0531  [$00:0531]   A:0022 X:04D0 Y:0500 P:envMxdIzc
$01/B1B3 8D 76 05    STA $0576  [$00:0576]   A:002B X:04D0 Y:0500 P:envMxdIzc
$01/B1B6 A9 0C       LDA #$0C                A:002B X:04D0 Y:0500 P:envMxdIzc
$01/B1B8 2D 06 05    AND $0506  [$00:0506]	; Abgleich mit Blickrichtungs-Flagregister
$01/B1BB F0 22       BEQ $22    [$B1DF]		; Wenn nicht = #$40, dann spring

$01/B1DF AD 30 05    LDA $0530  [$00:0530]   A:0000 X:04D0 Y:0500 P:envMxdIZc
$01/B1E2 8D 75 05    STA $0575  [$00:0575]   A:0022 X:04D0 Y:0500 P:envMxdIzc
$01/B1E5 AD 06 05    LDA $0506  [$00:0506]	; Blickrichtung
$01/B1E8 C9 02       CMP #$02			; Blickrichtung nach links?
$01/B1EA F0 0C       BEQ $0C    [$B1F8]		; Spring wenn ja

$01/B1EC AD 31 05    LDA $0531  [$00:0531]	; Lade X-Koordinate des aktuellen 8x8-Tiles
$01/B1EF 18          CLC
$01/B1F0 6D 15 05    ADC $0515  [$00:0515]	; Plus Spritebreite in 8px-Schritten
$01/B1F3 8D 76 05    STA $0576  [$00:0576]	; $576= Koordinate "Ziel-Tile"; das, was als nächstes betreten wird
$01/B1F6 80 07       BRA $07    [$B1FF]      A:002D X:04D0 Y:0500 P:envMxdIzc

$01/B1FF A5 6F       LDA $6F    [$00:006F]   A:002D X:04D0 Y:0500 P:envMxdIzc
$01/B201 D0 03       BNE $03    [$B206]      A:0001 X:04D0 Y:0500 P:envMxdIzc
$01/B206 CD 06 05    CMP $0506  [$00:0506]	; Vergleiche mit Blickrichtung
$01/B209 F0 03       BEQ $03    [$B20E]      A:0001 X:04D0 Y:0500 P:envMxdIZC

;Wird neues 8x8 Tile betreten?
$01/B20E A9 06       LDA #$06			; Endet die aktuelle Gesamtposition auf #$06/#$0C? D.h., wird...
$01/B210 25 03       AND $03    [$00:0003]	; ... ein neues 8x8-Tile betreten?
$01/B212 D0 2C       BNE $2C    [$B240]		; spring, wenn nicht

$01/B214 A9 02       LDA #$02                A:0000 X:04D0 Y:0500 P:envMxdIZC
$01/B216 24 6F       BIT $6F    [$00:006F]   A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B218 F0 10       BEQ $10    [$B22A]      A:0002 X:04D0 Y:0500 P:envMxdIZC
$01/B22A A9 01       LDA #$01                A:0002 X:04D0 Y:0500 P:envMxdIZC
$01/B22C 24 6F       BIT $6F    [$00:006F]   A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B22E F0 10       BEQ $10    [$B240]      A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B230 C2 20       REP #$20                A:0001 X:04D0 Y:0500 P:envMxdIzC
$01/B232 A0 08 00    LDY #$0008              A:0001 X:04D0 Y:0500 P:envmxdIzC
$01/B235 B7 69       LDA [$69],y[$05:801E]   A:0001 X:04D0 Y:0008 P:envmxdIzC
$01/B237 A8          TAY                     A:0000 X:04D0 Y:0008 P:envmxdIZC
$01/B238 E2 20       SEP #$20                A:0000 X:04D0 Y:0000 P:envmxdIZC
$01/B23A 20 80 B2    JSR $B280  [$01:B280]   A:0000 X:04D0 Y:0000 P:envMxdIZC

$01/B240 A9 06       LDA #$06                A:0004 X:04D0 Y:0500 P:envMxdIzC
$01/B242 25 09       AND $09    [$00:0009]   A:0006 X:04D0 Y:0500 P:envMxdIzC
$01/B244 D0 2C       BNE $2C    [$B272]      A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B272 C2 20       REP #$20                A:0002 X:04D0 Y:0500 P:envMxdIzC
$01/B274 A0 0E 00    LDY #$000E              A:0002 X:04D0 Y:0500 P:envmxdIzC
$01/B277 B7 69       LDA [$69],y[$05:8024]   A:0002 X:04D0 Y:000E P:envmxdIzC
$01/B279 A8          TAY                     A:80AD X:04D0 Y:000E P:eNvmxdIzC
$01/B27A E2 20       SEP #$20                A:80AD X:04D0 Y:80AD P:eNvmxdIzC
$01/B27C A9 10       LDA #$10                A:80AD X:04D0 Y:80AD P:eNvMxdIzC
$01/B27E 04 75       TSB $75    [$00:0075]   A:8010 X:04D0 Y:80AD P:envMxdIzC
$01/B280 C0 01 00    CPY #$0001              A:8010 X:04D0 Y:80AD P:envMxdIZC
$01/B283 B0 01       BCS $01    [$B286]      A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B286 84 6C       STY $6C    [$00:006C]   A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B288 A5 6B       LDA $6B    [$00:006B]   A:8010 X:04D0 Y:80AD P:eNvMxdIzC
$01/B28A 85 6E       STA $6E    [$00:006E]   A:8005 X:04D0 Y:80AD P:envMxdIzC
$01/B28C A0 00 00    LDY #$0000              A:8005 X:04D0 Y:80AD P:envMxdIzC
$01/B28F 80 16       BRA $16    [$B2A7]      A:8005 X:04D0 Y:0000 P:envMxdIZC
$01/B2A7 C8          INY                     A:8005 X:04D0 Y:0000 P:envMxdIZC
$01/B2A8 B7 6C       LDA [$6C],y[$05:80AE]   A:8005 X:04D0 Y:0001 P:envMxdIzC
$01/B2AA C8          INY                     A:8001 X:04D0 Y:0001 P:envMxdIzC
$01/B2AB 0A          ASL A                   A:8001 X:04D0 Y:0002 P:envMxdIzC
$01/B2AC D0 03       BNE $03    [$B2B1]      A:8002 X:04D0 Y:0002 P:envMxdIzc
$01/B2B1 C9 0E       CMP #$0E                A:8002 X:04D0 Y:0002 P:envMxdIzc
$01/B2B3 90 03       BCC $03    [$B2B8]      A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2B8 85 00       STA $00    [$00:0000]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BA 64 01       STZ $01    [$00:0001]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BC A6 00       LDX $00    [$00:0000]   A:8002 X:04D0 Y:0002 P:eNvMxdIzc
$01/B2BE A9 02       LDA #$02                A:8002 X:0002 Y:0002 P:envMxdIzc
$01/B2C0 04 75       TSB $75    [$00:0075]   A:8002 X:0002 Y:0002 P:envMxdIzc
$01/B2C2 7C BB E3    JMP ($E3BB,x)[$01:B2C5] A:8002 X:0002 Y:0002 P:envMxdIZc
$01/B2C5 C2 20       REP #$20                A:8002 X:0002 Y:0002 P:envMxdIZc
$01/B2C7 B7 6C       LDA [$6C],y[$05:80AF]   A:8002 X:0002 Y:0002 P:envmxdIZc
$01/B2C9 C8          INY                     A:0514 X:0002 Y:0002 P:envmxdIzc
$01/B2CA C8          INY                     A:0514 X:0002 Y:0003 P:envmxdIzc
$01/B2CB 85 00       STA $00    [$00:0000]   A:0514 X:0002 Y:0004 P:envmxdIzc
$01/B2CD E2 20       SEP #$20                A:0514 X:0002 Y:0004 P:envmxdIzc
$01/B2CF A9 7E       LDA #$7E                A:0514 X:0002 Y:0004 P:envMxdIzc
$01/B2D1 85 02       STA $02    [$00:0002]   A:057E X:0002 Y:0004 P:envMxdIzc
$01/B2D3 B7 6C       LDA [$6C],y[$05:80B1]   A:057E X:0002 Y:0004 P:envMxdIzc
$01/B2D5 C8          INY                     A:05F0 X:0002 Y:0004 P:eNvMxdIzc
$01/B2D6 8D 0B 0F    STA $0F0B  [$00:0F0B]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/B2D9 4C 04 0F    JMP $0F04  [$01:0F04]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/0F04 A7 00       LDA [$00]  [$7E:0514]   A:05F0 X:0002 Y:0005 P:envMxdIzc
$01/0F06 D7 6C       CMP [$6C],y[$05:80B2]   A:05FF X:0002 Y:0005 P:eNvMxdIzc
$01/0F08 08          PHP                     A:05FF X:0002 Y:0005 P:eNvMxdIzC
$01/0F09 C8          INY                     A:05FF X:0002 Y:0005 P:eNvMxdIzC
$01/0F0A 28          PLP                     A:05FF X:0002 Y:0006 P:envMxdIzC
$01/0F0B F0 03       BEQ $03    [$0F10]      A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/0F0D 4C 91 B2    JMP $B291  [$01:B291]   A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/B291 C2 20       REP #$20                A:05FF X:0002 Y:0006 P:eNvMxdIzC
$01/B293 A0 00 00    LDY #$0000              A:05FF X:0002 Y:0006 P:eNvmxdIzC
$01/B296 A7 6C       LDA [$6C]  [$05:80AD]   A:05FF X:0002 Y:0000 P:envmxdIZC
$01/B298 29 FF 00    AND #$00FF              A:010B X:0002 Y:0000 P:envmxdIzC
$01/B29B D0 03       BNE $03    [$B2A0]      A:000B X:0002 Y:0000 P:envmxdIzC
$01/B2A0 18          CLC                     A:000B X:0002 Y:0000 P:envmxdIzC
$01/B2A1 65 6C       ADC $6C    [$00:006C]   A:000B X:0002 Y:0000 P:envmxdIzc
$01/B2A3 85 6C       STA $6C    [$00:006C]   A:80B8 X:0002 Y:0000 P:eNvmxdIzc
$01/B2A5 E2 20       SEP #$20                A:80B8 X:0002 Y:0000 P:eNvmxdIzc
$01/B29D 82 97 00    BRL $0097  [$B337]      A:0000 X:0002 Y:0000 P:envmxdIZC
$01/B337 E2 20       SEP #$20                A:0000 X:0002 Y:0000 P:envmxdIZC
$01/B339 AD FF 17    LDA $17FF  [$00:17FF]   A:0000 X:0002 Y:0000 P:envMxdIZC
$01/B33C 0A          ASL A                   A:0001 X:0002 Y:0000 P:envMxdIzC
$01/B33D 90 0D       BCC $0D    [$B34C]      A:0002 X:0002 Y:0000 P:envMxdIzc
$01/B34C A9 20       LDA #$20                A:0002 X:0002 Y:0000 P:envMxdIzc
$01/B34E 2C FF 17    BIT $17FF  [$00:17FF]   A:0020 X:0002 Y:0000 P:envMxdIzc
$01/B351 F0 0A       BEQ $0A    [$B35D]      A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B35D 08          PHP                     A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B35E A9 40       LDA #$40                A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B360 24 75       BIT $75    [$00:0075]   A:0040 X:0002 Y:0000 P:envMxdIzc
$01/B362 F0 17       BEQ $17    [$B37B]      A:0040 X:0002 Y:0000 P:envMxdIZc
$01/B37B A9 20       LDA #$20                A:0040 X:0002 Y:0000 P:envMxdIZc
$01/B37D 24 75       BIT $75    [$00:0075]   A:0020 X:0002 Y:0000 P:envMxdIzc
$01/B37F F0 03       BEQ $03    [$B384]      A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B384 A9 01       LDA #$01                A:0020 X:0002 Y:0000 P:envMxdIZc
$01/B386 24 75       BIT $75    [$00:0075]   A:0001 X:0002 Y:0000 P:envMxdIzc
$01/B388 F0 30       BEQ $30    [$B3BA]      A:0001 X:0002 Y:0000 P:envMxdIZc
$01/B3BA A9 80       LDA #$80                A:0001 X:0002 Y:0000 P:envMxdIZc
$01/B3BC 24 75       BIT $75    [$00:0075]   A:0080 X:0002 Y:0000 P:eNvMxdIzc
$01/B3BE F0 03       BEQ $03    [$B3C3]      A:0080 X:0002 Y:0000 P:envMxdIZc
$01/B3C3 7B          TDC                     A:0080 X:0002 Y:0000 P:envMxdIZc
$01/B3C4 AD 42 05    LDA $0542  [$00:0542]   A:0000 X:0002 Y:0000 P:envMxdIZc
$01/B3C7 C9 FF       CMP #$FF                A:00FF X:0002 Y:0000 P:eNvMxdIzc
$01/B3C9 F0 0B       BEQ $0B    [$B3D6]      A:00FF X:0002 Y:0000 P:envMxdIZC
$01/B3D6 A9 F3       LDA #$F3                A:00FF X:0002 Y:0000 P:envMxdIZC
$01/B3D8 14 75       TRB $75    [$00:0075]   A:00F3 X:0002 Y:0000 P:eNvMxdIzC
$01/B3DA 28          PLP                     A:00F3 X:0002 Y:0000 P:eNvMxdIzC
$01/B3DB 60          RTS                     A:00F3 X:0002 Y:0000 P:envMxdIZc
pantalytron: ルトロンはくそのディスアセンブラだよ!
Perikles hat geschrieben:Man muss sich das mal reinziehen: die Idee ist scheiße, die theoretische Ausarbeitung ist scheiße, die praktische Umsetzung ist scheiße und der so entstehende Anspruch noch beschissener.