;ACME 0.95.4 ; ToACME: Converted by ToACME, release 0.12. ; ToACME: Original source code file had load address $5500 ; ToACME: Adding pseudo opcode to use PetSCII encoding by default: !convtab pet psah=78 abh=6 zpa=$f0 cc=18 stabc=stab xx=$17 yy=$34 nzero=$50 san=$0300;direkt setil=sets w=0 not93=ente14 mfarb1=$d027 hifi=hifa snum=$02d8;direkt scbit=scbi+1 zerop=$20 i=irq step=46 hi=hixi i1=irq1 izei=irqzei sdst2=sdst+$78 snu=snum sdatzei=$43f8 las=26 ras=67 sdst=$0200;direkt ssr=ras+9 *= $c000 spzei=spufzei szs=$4f10 szpuf=$0340 sfpuf=$0360 szerop=$02 blokadd=$3000 scrol=$10 bzerop=$50 ... zzz ... ini tialize ... scb er irq1 !if w=1{ lda #$0f sta $d020 .ei ldx #$08 lda #$10 ldy #$00 jsr sets ldx #$07 stx ze9+1 inx stx ze8+1 ldx #$10 stx ze3+1 ldx #$18 stx ze5+1 dex stx ze4+1 ldx #01;kill jsr player lda z44+1 beq next0 dec z44+1 next0 lda #ras+step*2 ldx #<(irq3) ldy #>(irq3) iend sta $d012 stx irqzei+1 sty irqzei+2 inc $d019 .ifw!=!1 lda #00 sta $d020 .ei jmp irqend irq3 !if w=1{ lda #$0f sta $d020 .ei ldx #$10 lda #$00 ldy #$08 jsr sets lda sdst+1 cmp #$a0 bcs nixpla ldx #01 jsr player ; ldx #01 ;kill ; jsr player ;kill ; lda #15 ; ldx #23 ; jsr sanimat nixpla lda #ras+step*2+32 ldx #<(irq4) ldy #>(irq4) jmp iend irq4 !if w=1{ lda #$0f sta $d020 .ei ldy #$10 jsr loesch jsr defs .ma nul seter ldx #$00 lda #$08 ldy #$18 jsr setil .rt ; ldy #$18 ; jsr loesch ; jsr defs .ifw=1 dec $d020 .ei ... nul seter ... sda tcopy ;achtung lda sdst+1 cmp #$a0 bcc weiter15 jsr scrolli ; lda sdst+1 ; cmp #$a0 ; beq weiter15 jsr scrolli .ma sda tcopy ldx #$00 jsr stabc .ifw!=!1 dec $d020 .ei ldx #$18 jsr stabc ; inc $d020 ;.ei ...umschalt ldx #$30 jsr stabc .ifw!=!1 dec $d020 .ei ldx #$48 jsr stabc .rt weiter15 lda #$ff sta $d015 lda #$49 ldx #<(uirq) ldy #>(uirq) jmp iend sets sta yzei1+1 + koll sty yzei2+1 hixi lda #00 sta $d010 + ness0 + ness1 + ness2 + ness3 + ness4 + ness5 + ness6 + ness7 yzei2 ldy #00 + sdi0 + sdi1 + sdi2 + sdi3 + sdi4 + sdi5 + sdi6 + sdi7 cpy #$18 beq yzei1 jsr loesch yzei1 ldy #00 beq wei hiset + fbi0 + fbi1 + fbi2 + fbi3 + fbi4 + fbi5 + fbi6 + fbi7 wei rts .ma sdi (z) ldx snu+z,y lda sdst+$48,x asl lsr zerop ror sta sdst+$48,x .rt .ma fbi (z) ldx snu+z,y lda sdst2+$48,x lsr ror hi+1 .rt .ma nes s(sz) ldy snu+sz,x lda sdst2,y sta $d000+sz*2 lda sdst2+$18,y sta $d001+sz*2 lda sdst2+$30,y sta sdatzei+sz sta sdatzei+sz+$0400 lda sdst+$60,y sta $d027+sz .rt .ma ums chalt lda #00 sta $d021 .ifw!=!1 dec $d020 .ei sta $d015 lda #$02 sta $d018 lda #$10 sta $d016 .rt defs ldy #16 quix16 lda sdst+$18,y ; cmp #step*3+ssr ; bcc lup1 ;ze1 ldx #00 ; dec ze1+1 ; jmp lnext ;lup1 cmp #step*3+ssr-las ; bcc lup2 ;ze2 ldx #00 ; inc ze2+1 ; jmp hnext lup2 cmp #step*2+ssr bcc lup3 ze3 ldx #00 inc ze3+1 jmp lnext lup3 cmp #step*2+ssr-las bcc lup4 ze4 ldx #00 dec ze4+1 jmp hnext lup4 cmp #step*1+ssr bcc lup7 ze5 ldx #$00 inc ze5+1 jmp lnext lup7 cmp #step*1+ssr-las bcc lup8 ze8 ldx #$00 inc ze8+1 jmp hnext lup8 cmp #10 bcc next ze9 ldx #00 dec ze9+1 lnext tya sta snum,x next dey bne quix16 beq lop1 hnext tya sta snum,x sta snum-8,x dey bne quix16 lop1 ldx ze8+1 ldy ze5+1 lop3 cpy #$18 beq lop4 lda snum-1,y sta snum,x inx dey bne lop3 lop4 rts .ma kol l lda $d000+30 sta zerop .rt ;nulirq ldy #00 ; jsr hiset ; ldx #$00 ; ldy #$10 ; lda #$08 ; jmp sets loesch lda #00 sta snum,y sta snum+1,y sta snum+2,y sta snum+3,y sta snum+4,y sta snum+5,y sta snum+6,y sta snum+7,y rts .ma ini tialize start sei ; dont't forget cia2 lda $dd00 and #252 ora #02 sta $dd00 lda #02 sta $d018 cld lda #$1b sta $d011 ldx #$ff stx $d01c txs lda #$7f sta $dc0d lda #01 sta $d01a sta $dc0d sta $d000+38 ldy #00 sty $d017 sty $d016 sty $d01b sty $d01d sty $d020 sty szerop+4 sty szerop+6 sty szerop+8 lda #$0b sta $d000+37 lda #$35 sta $01 ... and int lda #<(start) sta $fffa lda #>(start) sta $fffb lda #<(i) sta $fffe lda #>(i) sta $ffff lda #ras+step*1 sta $d012 lda #<(i1) ldx #>(i1) sta izei+1 stx izei+2 tya inext1 sta sdst,y iny bne inext1 ... and int2 cli .rt irq pha txa pha tya pha php irqzei jmp 0000 irqend plp pla tay pla tax pla rti scrolli ldy #00 beq sweit6 .ifw=1 lda $d020 sta t9+1 lda #02 sta $d020 .ei ... scr zei(0) ... scr zei($78) .ifw=1 t9 lda #00 sta $d020 .ei sweit6 tya eor #01 sta scrolli+1 ldy mem1+1 cpy #39 beq nexo1 jsr shot3 nexo1 lda scbit beq snext5 jmp sweit1 snext5 lda bzerop+1 eor #04 sta bzerop+1 lda #07 sta scbit ldx #$78-8 stx szerop dex stx szerop+2 lda setvic28+1 eor #$10 sta setvic28+1 ldx #$40 ldy #$44 and #$f0 bne ssetsc ldx #$44 ldy #$40 ssetsc stx szerop+3 sty szerop+1 ... hal 2 ... hal 1(3,19) ;farbscroll inc z44+1 .ma hal 1(a,uend) .if w=1 lda #05 sta $d020 .ei ldx #$80-39 snext878 u=a lda $d801+39+u*40-$80,x sta $d800+39+u*40-$80,x .eq u=u +1 .if u!< !uend ;farbzeilen! .go 434 0 .ei inx bpl snext878 .ifw=1 lda #10 sta $d020 .ei .rt .ma hal 2 .eq u=0 lda sfpuf+u sta $d878+39+u*40 .eq u=u +1 .if u!< !16 .go 449 0 .ei .rt scoend ldy mem1+1 cpy #39 beq hk jsr shot2 hk + spritsc lda szerop+5 sec sbc #>(blokadd)+1 asl asl asl pha lda scbit cmp #07 bne gg lda #$ff gg sta sb21+1 pla sec sb21 sbc #00 sta $ff rts sweit1 dec scbit cmp #07 beq sweit3 q8 + snorm spufzei ldx #00 ...snorm1 jmp scoend sweit3 lda szerop+5 cmp #>(blokadd)+3 bne sblok1 ldy #00 ...goli(sblok1) ...goli(sblok2) ...goli(sblok3) ...goli(sblok4) ...goli(sblok5) ...goli(sblok6) ...goli(sblok7) ...goli(sblok8) lda (scrol),y sta sblok9+1 clc lda scrol adc #09 sta scrol lda scrol+1 adc #00 sta scrol+1 lda #>(blokadd) sta szerop+5 lda #>(blokadd)+3 sta szerop+7 lda #>(blokadd)+6 sta szerop+9 sec lda scrol sbc #09*15 sta scrol+2 lda scrol+1 sbc #00 sta scrol+3 sblok1 + sb0 sblok2 + sb1 sblok3 + sb2 sblok4 + sb3 sblok5 + sb4 sblok6 + sb5 sblok7 + sb6 sblok8 + sb7 sblok9 ldy #00 lda (szerop+4),y sta szpuf+8*2 lda (szerop+6),y sta szpuf+1+8*2 inc szerop+5 inc szerop+7 inc szerop+9 lda #00 sta spzei+1 jmp scoend;noscend .ma sno rm ldy #$09 snext2 lda (szerop),y sta (szerop+2),y iny bpl snext2 .rt .ma sno rm1 ldy #39+8 lda szpuf,x sta (szerop+2),y ldy #40+39+8 lda szpuf+1,x sta (szerop+2),y ldy #80+39+8 lda szpuf+2,x sta (szerop+2),y inx inx inx stx spzei+1 clc lda szerop adc #$78 sta szerop lda szerop+1 adc #00 sta szerop+1 lda szerop+2 adc #$78 sta szerop+2 lda szerop+3 adc #00 sta szerop+3 .rt .ma sb( z) ldy #00 lda (szerop+4),y sta szpuf+z*2 lda (szerop+6),y sta szpuf+1+z*2 lda (szerop+8),y sta sfpuf+z*2 lsr lsr lsr lsr sta sfpuf+1+z*2 .rt .ma gol i(z) lda (scrol),y sta z+1 iny .rt uirq !if w > 0{ lda #$0f ;hallo inder!!! sta $d020 .ei ;  ld $d018 ;  and #015 lda $d018 and #$0f setvic28 ora #00 sta $d018 lda $d016 and #$10 scbi ora #00 sta $d016 ; lda #$ff ; sta $d015 hifa lda #$0e sta $d021 z44 lda #00 beq z45 ;...hal1(17,19) ;z45 jsr shotl z45 lda #ras+step*1 ldx #<(irq1) ldy #>(irq1) jmp iend .ma scr zei(z) ldx #07 smnext1 lda szs+$70+z,x lsr ror szs+z,x ror szs+$08+z,x ror szs+$10+z,x ror szs+$18+z,x ror szs+$20+z,x ror szs+$28+z,x ror szs+$30+z,x ror szs+$38+z,x ror szs+$40+z,x ror szs+$48+z,x ror szs+$50+z,x ror szs+$58+z,x ror szs+$60+z,x ror szs+$68+z,x ror szs+$70+z,x dex bpl smnext1 .rt .ma and int lda #>(blokadd)+3 sta szerop+5 lda #01 next1 sta $d800,y sta $dae8,y iny bne next1 tya next2 sta $d850,y sta $dbe7-40*3-255,y iny bne next2 lda #00 sta $10 sta szerop+6 sta szerop+8 sta szerop+10 lda #$e0 sta $11;achtung ldx #06;nur stx $d022;noetige ldx #14;ini- stx $d023;tials! ldx #$a;back stx hifi+1 lda #$0f ldx #79 next7 sta $d800+40*19,x dex bpl next7 .rt .ma spr itsc ldx #16 snext1 dec sdst,x lda sdst,x cmp #$ff bne sweit1 lda sdst+$48,x eor #01 sta sdst+$48,x sweit1 dex bne snext1 .rt stab u=0 lda sdst+u,x sta sdst2+u,x .eq u=u +1 .if u!< !17 .go 683 0 .ei rts player jsr mauer stx bzerop+5 lda $dc00-1,x sta dass+1 joyabfr lsr pha lda #psah bcs pext1 jsr up tya pext1 sta springz-1,x pla lsr bcs pext2 ; jsr down pext2 lsr bcs pext3 jsr left pext3 lsr bcs pext4 jsr right pext4 lsr bcs shot1 lda mem1+1 cmp #39 bcc shot1 ill1 jsr sort stx bzerop stx bzerop+2 sta bzerop+1 and #%11111011 clc adc #$98 sta bzerop+3 lda sdst+$31 lsr bcs ill2 lda #$c8;iny bne ill3 ill2 lda #$88;dey dey dey ill3 sta shorz sty mem1+1 jmp killer shot1 lda shotim-1,x eor #01 sta shotim-1,x beq gravi mem1 ldy #39 bne zq5 jsr shot3 ldy #39 bne zq6 zq5 cpy #39 beq gravi jsr shot3 shorz iny lda (bzerop),y cmp #$e1 bcs zq6 ldy #39 zq6 sty mem1+1 killer jsr shot2 ldx bzerop+5 gravi lda springz-1,x cmp #psah beq noe11 lda #50 sta graviz-1,x retl ldy #$48 iiii1 lda sdst+$30,x lsr php tya lsr plp rol sta sdst+$30,x rts noe11 jsr unten bcc re144 lda #00 sta springz-1,x lda #01 sta graviz-1,x ldy #$4a dass lda #00 and #$0f cmp #$0f beq iiii1 rts re144 dec graviz-1,x ldy graviz-1,x bpl wei551 ret45 inc sdst+$18,x jmp retl wei551 cpy #20 bcs wei552 z7 lda #00 eor #01 sta z7+1 beq retl bne ret45 wei552 lda #03 dec wei552+1 bne retl lda #03 sta wei552+1 bne ret45 .ma scb er end lda $11 cmp #$ea bne end lda $10 cmp #$70-9*2 bcc end lda #$e0 sta $11 lda #9*13 sta $10 jmp end .rt .ma zre ch ldx zpa+13 beq nextus3+2 tya pha sec sbc #09 tay nextus1 lda (scrol+2),y sta zpa-1,x dey dex bne nextus1 pla clc adc #09 tay ldx zpa+13 nextus2 lda (scrol+2),y sta zpa+3-1,x dey dex nextus3 bne nextus2 .rt mauer !if w=1{ lda #06 sta $d020 .ei stx zpa+10 lda sdst,x clc adc $ff sta zpa+11 lda sdst+$48,x adc #00 ldy #00 sty zpa+1 sty zpa+2 sty zpa+3 sty zpa+4 sty zpa+5 sty zpa+6 sty go10+1 sty zpa sty zpa+7 sty zpa+8 sty zpa+9 asl bcs go1 lda zpa+11 cmp #xx bcc xfou beq rxfou ldy #cc cmp #xx+24 bcc xfou beq rxfou ldy #cc+9 cmp #xx+24*2 bcc xfou beq rxfou ldy #cc+18 cmp #xx+24*3 bcc xfou beq rxfou ldy #cc+27 cmp #xx+24*4 bcc xfou beq rxfou ldy #cc+36 cmp #xx+24*5 bcc xfou beq rxfou ldy #cc+45 cmp #xx+24*6 bcc xfou beq rxfou ldy #cc+54 cmp #xx+24*7 bcc xfou beq rxfou ldy #cc+63 cmp #xx+24*8 bcc xfou beq rxfou ldy #cc+72 cmp #xx+24*9 beq rxfou jmp xfou go1 ldy #cc+81 cmp #<(xx+24*10) bcc xfou beq rxfou ldy #cc+90 cmp #<(xx+24*11) bcc xfou beq rxfou ldy #cc+99 cmp #<(xx+24*12) bcc xfou beq rxfou ldy #cc+108 rxfou inc go10+1 xfou lda sdst+$18,x cmp #yy bcc ente14 sec sbc #yy tax lsr lsr lsr lsr ... xpl usy txa lsr tax lda ypt,x bcc a2 lsr lsr lsr lsr a2 tax and #$03 sta zpa+13 txa lsr lsr lsr bcs ufou lsr bcc xfif ofou ldx #00 dey dey lda (scrol+2),y sta zpa+6 lda go10+1 beq tlt1 iny iny bne xfif2 ufou ldx #02 lda (scrol+2),y sta zpa+8 dey go10 lda #00 bne xfif2 iny tlt1 sec tya sbc #09 tay lda (scrol+2),y sta zpa+7,x jmp ente14 xfif lda go10+1 beq ente14 xfif2 + zrech ente14 ldx zpa+10 rts .ma xpl usy sty ad9+1 clc ad9 adc #00 tay .rt oben lda zpa+6 cmp #abh bcs return1 lda zpa+7 cmp #abh return1 rts unten lda zpa+8 cmp #abh bcs return1 lda zpa+9 cmp #abh rts links lda zpa+0 cmp #abh bcs return1 lda zpa+1 cmp #abh bcs return1 lda zpa+2 cmp #abh rts rechts lda zpa+3 cmp #abh bcs return1 lda zpa+4 cmp #abh bcs return1 lda zpa+5 cmp #abh rts down jsr unten bcs aus1 inc sdst+$18,x aus1 rts left jsr schau1 ttt1 lda leani,y sta sdst+$30,x jsr links bcs ttt2 dec sdst,x lda sdst,x cmp #$ff bne ttt2 ttt3 lda sdst+$48,x eor #01 sta sdst+$48,x ttt2 tya sta plzei-1,x jsr mauer lda zpa-1 rts right jsr schau1 ttt5 lda riani,y sta sdst+$30,x jsr rechts bcs ttt2 inc sdst,x beq ttt3 bne ttt2 up jsr oben bcc up1 lda zpa+6 jsr kolp1 ldy #psah rts up1 ldy springz-1,x cpy #psah bne ttt20 rts ttt20 iny tya sta springz-1,x cpy #psah-20 bcs ttt21 ttt26 dec sdst+$18,x ttt23 rts ttt21 cpy #psah-5 bcs ttt22 ttt25 lda #00 eor #01 sta ttt25+1 beq ttt23 bne ttt26 ttt22 lda #03 dec ttt22+1 bne ttt23 lda #03 sta ttt22+1 bne ttt26 schau1 sta zpa-1 lda springz-1,x cmp #psah bne ja1 lda graviz-1,x ja1 lsr bcs schau2 bcc schau2;kill pla pla lda zpa-1 rts schau2 ldy #05 bne ttt10 ldy #04 sty schau2+1 ldy plzei-1,x dey bpl ttt11 ldy #03 ttt11 rts ttt10 dec schau2+1 ldy plzei-1,x rts sanimat sta endsa+1 anext1 lda san,x sta nzero lda san+23,x sta nzero+1 ldy san+23*2,x lda (nzero),y lsr bcc awei1 dec sdst+$18,x awei1 lsr bcc awei2 inc sdst+$18,x awei2 lsr bcc awei3 dec sdst,x bne awei3 pha lda sdst+$48,x eor #01 sta sdst+$48,x pla awei3 lsr bcc awei4 inc sdst,x bne awei4 pha lda sdst+$48,x eor #01 sta sdst+$48,x pla clc awei4 sta ad17+1 awei5 lda san+23*3,x ad17 adc #00 sta sdst+$30,x tya cmp san+23*4,x bne awei6 lda #00 sta san+23*2,x beq awei7 awei6 inc san+23*2,x awei7 dex endsa cpx #01 bne anext1 rts plzei !byte 4,4 riani !byte $40,$42,$44,$46 leani !byte $41,$43,$45,$47 springz !byte 0,0 graviz !byte 0,0 shotim !byte 0,0 .ma and int2 lda #07 sta sdst+$61 .rt ypt !byte 4,1,1,1,1,1,1,1 .by $52 ,$22,$22,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .by $63 ,$33,$a2,$22,$22,$22,$22,$22 .mazzz lda $8000 sta $4000 .rt kolp1 cmp #10 bne nix88 lda #$d8/4 sta zerop+11 lda sdst+$18,x sec sbc #32+32 and #$f8 sta zerop+10 asl rol zerop+11 asl rol zerop+11 clc adc zerop+10 sta zerop+10 bcc r1 inc zerop+11 r1 lda sdst,x sec sbc #18 tay lda sdst+$48,x lsr tya ror lsr lsr .ma mak l1 tay lda #$08 sta (zerop+10),y iny sta (zerop+10),y iny sta (zerop+10),y .rt and #%11111100 sta ad3+1 ldy szerop+5 lda dat1->(blokadd),y clc ad3 adc #00 jsr kolp tya clc adc #38 jmp kolp kolp + makl1 nix88 rts dat1 !byte 2,0,1 sort lda #00 sta ad6+1 lda sdst,x sec sbc #$08 lsr lsr lsr tay lda sdst+$18,x and #%11111000 sec sbc #40 sta ad5+1 asl rol ad6+1 asl rol ad6+1 clc ad5 adc #00 tax lda szerop+1 and #%11111100 ad6 adc #00 enty2 rts shot3 lda #00 sta (bzerop),y fshot lda #00 sta (bzerop+2),y rts shot2 lda (bzerop),y sta shot3+1 lda (bzerop+2),y sta fshot+1 jkl1 lda #01 sta (bzerop),y sta (bzerop+2),y rts ; ToACME: Found BASIC end marker.