source~1 ; ** second toxic waste intro ** ; MUNICHTRO (C) 1999 TXW ; ; music $1000 ; logofont $0800 ; logoscrn $6000 ; scrollfont $3000 ; $1c,$5c schoener kreis ; sei lda #$00 ;init musics jsr $1000 lda $d018 ;set scrollfnt and #$f0 ;for titel ora #$0c sta $d018 lda #sctxt sta $05 lda #credtxt sta $11 jsr clrscrn ;clear screen jsr startrtn jsr initsprt ;set sprites jsr titel ;lead-in jsr cplogo ;prep logo begin dec ltechcnt ;cyc lametec bne ltech2 ldx #$03 stx ltechcnt ldx #$00 lda lametech,x tay ltech1 lda lametech+1,x sta lametech,x inx cpx #$0b bne ltech1 tya sta lametech,x ltech2 lda #$32 ;MAIN LOOP ldx #$00 l0 cmp $d012 bne l0 stx $d021 jsr $1003 jsr scrl jsr raster jsr credits lda #$c8 ml2 cmp $d012 bne ml2 jsr slogocol lda #$ff ;wait endofscr l1 cmp $d012 bne l1 jsr hndsprt ;do spritemove jmp begin ;main loop brk ;SUBROUTINE($a0)SCROLL scrl dec cyoffs dec cyoffs lda cyoffs bpl scr lda #$07 sta cyoffs ldx #$00 sc1 lda $05e0+1,x sta $05e0,x lda $05b8+1,x sta $05b8,x inx cpx #$27 bne sc1 ldy #$00 lda ($04),y cmp #$fe ;Farbwechsel? beq sc3 cmp #$fd beq sc4 cmp #$fc beq sc5 jmp sc6 sc3 lda #colorf sta $0d jsr chngcol lda #$20 jmp sc6 sc4 lda #colorc sta $0d jsr chngcol lda #$20 jmp sc6 sc5 lda #colorv sta $0d jsr chngcol lda #$20 sc6 cmp #$ff bne sc2 ldy #sctxt sty $05 ldy #$00 sty scoffs jmp scr sc2 sta $05df adc #$80 sta $0607 inc $04 bne scr inc $05 scr rts ;SUBROUTINE RASTER raster lda $d016 and #$f0 ora cyoffs sta $d016 ldx #$12 ;start w highes l2 ldy color,x ;offset lda rasterln,x ;and get data l3 cmp $d012 ;wait rasterln bne l3 sty $d021 dex ;decrease offs bne l2 ;when zero.. ldx #$00 ;MARK($a0)THIS($a0)OUT stx $d021 ;LATER! dec raswch bpl l5 lda #$01 sta raswch ldx #$00 ldy color,x ;Cycle Cols l4 lda color+1,x ;by roling sta color,x ;to the left inx cpx #$28 bne l4 tya sta color,x l5 lda $d016 and #$f8 sta $d016 rts startrtn lda #$00 sta $d021 ;set bgcol=blk lda #begtxt sta $09 lda #$ff ;bisserl warten sta rasnum jsr waitloop sr0 ldy #$00 sr1 lda ($08),y sta $05b8,y adc #$80 sta $05e0,y iny cpy #$29 bne sr1 lda $08 adc #$27 ;Start next row sta $08 ldx #$4f stx $06 sr2 jsr raster jsr $1003 dec $06 bne sr2 dec stnum bne sr0 jsr clrscrn lda #$50 sta rasnum jsr waitloop rts titel lda #$00 sta $d001 sta $d005 sta $d009 lda #$ea sta $d003 sta $d007 lda #$ff sta $d015 ldx #$75 ;munichtro... stx misc ;...einblenden tt1 dec $d003 dec $d007 inc $d001 inc $d005 inc $d009 lda #$32 tt2 cmp $d012 bne tt2 jsr $1003 lda #$50 tt3 cmp $d012 bne tt3 lda misc ;Farbe wechseln? cmp #$50 bne tt4 ldx #$0c jmp tt6 tt4 cmp #$30 bne tt5 ldx #$0f jmp tt5 tt5 cmp #$10 bne tt7 ldx #$01 tt6 stx $d027 stx $d028 stx $d029 stx $d02a stx $d02b tt7 dec misc bne tt1 lda #$ff sta rasnum jsr waitloop ldx #$04 stx misc ttb ldx misc lda logocol,x sta $d02c sta $d02d lda #$0a sta rasnum jsr waitloop dec misc bpl ttb lda #$75 sta misc tt8 sta $d001 sta $d003 sta $d005 sta $d007 sta $d009 lda #$32 tt9 cmp $d012 bne tt9 jsr $1003 lda #$50 tta cmp $d012 bne tta dec misc dec misc lda misc cmp #$40 bpl tt8 rts initsprt lda #$00 ldx #$18 is1 sta $0380,x sta $03c0,x sta $0400,x sta $0440,x sta $0480,x dex bpl is1 ldx #$26 is2 lda spmu,x sta $0398,x dex bpl is2 ldx #$26 is3 lda spni,x sta $03d8,x dex bpl is3 ldx #$26 is4 lda spch,x sta $0418,x dex bpl is4 ldx #$26 is5 lda sptr,x sta $0458,x dex bpl is5 ldx #$26 is6 lda spo,x sta $0498,x dex bpl is6 ldx #$3f is7 lda sptox,x sta $04c0,x dex bpl is7 ldx #$3f is8 lda spic,x sta $0500,x dex bpl is8 lda #$0e sta $07f8 lda #$ff sta $d01d sta $d017 lda #$0f sta $07f9 lda #$10 sta $07fa lda #$11 sta $07fb lda #$12 sta $07fc lda #$13 sta $07fd lda #$14 sta $07fe lda #$0b ;Farben sta $d027 sta $d028 sta $d029 sta $d02a sta $d02b lda #$00 sta $d02c sta $d02d lda sp0x sta $d000 lda sp1x sta $d002 lda sp2x sta $d004 lda sp3x sta $d006 lda sp4x sta $d008 lda sp5x sta $d00a lda sp56y sta $d00b sta $d00d lda sp6x sta $d00c rts waitloop lda #$32 ;Warte rasnum wl1 cmp $d012 ;Rasterzeilen bne wl1 lda #$50 wl2 cmp $d012 bne wl2 jsr $1003 dec rasnum bne waitloop rts clrscrn lda #$d8 ;clear screen sta $03 lda #$04 sta $0b lda #$00 sta $02 sta $0a tay cs1 sta ($02),y sta ($0a),y iny bne cs1 inc $0b inc $03 lda $03 cmp #$dc beq cs2 lda #$00 jmp cs1 cs2 rts chngcol ldy #$2b cc1 lda ($0c),y sta color,y dey bpl cc1 rts hndsprt ldy psin1off lda psin1,y sta $d001 sta $d005 sta $d009 lda psin2,y sta $d003 sta $d007 inc psin1off lda psin1off cmp #64 bne hs1 lda #$00 sta psin1off hs1 ldy psin2off lda psin3,y sta $d00c sbc #$2f sta $d00a inc psin2off lda psin2off cmp #$b4 bne hs2 lda #$00 sta psin2off ldx lcoloffs cpx #$08 bne hs3 ldx #$00 stx lcoloffs hs3 lda logocol,x sta $d02c sta $d02d inc lcoloffs hs2 inc $d00b inc $d00d lda $d018 ;Switch to scrl and #$f0 ;font ora #$0c sta $d018 rts cplogo ldy #$00 lda #$00 sta $0c sta $0e lda #$62 sta $0d lda #$06 sta $0f cp1 lda ($0c),y sta ($0e),y iny cpy #$e7 beq cp3 cpy #$00 bne cp1 ldy #$00 inc $0d inc $0f jmp cp1 cp3 lda $0f cmp #$07 beq cpraus jmp cp1 cpraus ldx $02 ;dont know why lda #$0c ;but this is enuff cp4 sta $db00,x ;to get logo visi dex ;ble bne cp4 lda #$00 sta $d021 lda #$0c sta $d022 lda #$0e sta $d023 rts slogocol lda #$10 sta $d016 lda #$13 sta $d018 ldx #$ca ldy #$0b lda $d016 so1 and #$f0 ora lametech,y so3 cpx $d012 bne so3 sta $d016 dey bpl so2 ldy #$0b so2 inx cpx #$f5 bne so1 rts credits lda $d018 and #$f0 ora #$04 sta $d018 lda $d016 and #$ef sta $d016 lda credflag bne crd2 ldx credoffs lda colorcrd,x ldy #$00 crd3 sta $da59,y iny cpy #$27 bne crd3 inc credoffs lda credoffs cmp #$2b bne crd4 lda #$00 sta credoffs lda #$01 sta credflag crd4 jmp crdend crd2 dec credtim bne crdend ldy #$ff sty credtim ldy #$00 ;set y=0 crd1 lda ($10),y sta $0659,y iny cpy #$27 bne crd1 lda $10 adc #$27 sta $10 lda #$00 sta credflag ;start fade dec credcnt bne crdend lda #$04 sta credcnt lda #