org $480 opt %10101 * --- system --- * dliv equ 512 dmactls equ 559 dlist equ 560 nmien equ 54286 wsync equ 54282 vcount equ 54283 chbase equ 54281 * --- stale --- * fonts equ $b800 plansze equ $a000 * --- strona0 --- * zero equ $f0 reals equ zero *wyraz pocpr1 equ 52 pocpr2 equ 54 poclw1 equ 56 poclw2 equ 58 pusty equ 16 dzipr equ 48 dzilw equ 50 dzigor equ 64 pocgo1 equ 60 pocgo2 equ 62 pocpr3 equ 68 prkraj equ 24 poclw3 equ 66 lwkraj equ 20 pocgo3 equ 70 pocgo4 equ 72 zapora equ 38 pradnica equ 74 pozzap equ 76 pozpradnica equ 78 *zapznk equ fonts+304 *zaiznk equ fonts+608 *ldorznk equ fonts+640 *lasznk equ fonts+656 * --- program --- * lda pl1 sta reals+1 lda #15 sta 710 lda #10 sta 709 lda #4 sta 708 jsr init jsr dli_on jsr translacja lda #3 sta 730 _change equ * lda #255 sta 764 loop3 cmp 764 beq loop3 lda 764 cmp #33 beq _ruch jsr _zm jmp _change _ruch equ * lda #0 sta 77 jsr _zapora ldy #0 loop2 lda screen,y jsr _poziomazapora lda screen,y jsr _dzialka lda screen,y jsr _pociski lda screen,y jsr _wlwyl iny iny bne loop2 jmp _change _poziomazapora equ * czestpradu equ 10 cmp #pusty beq _pozwl cmp #pozzap bne _wex lda screen-2,y cmp #pozpradnica beq _pozwyl cmp #pusty bne _wex lda #pusty jmp wyswietl _wex rts _pozwyl lda 53770 cmp #czestpradu bcs _wex lda #pusty jmp wyswietl _pozwl lda screen-2,y cmp #pozpradnica beq _poz2wl cmp #pozzap bne _wex lda #pozzap jmp wyswietl _poz2wl lda 53770 cmp #czestpradu bcs _wex lda #pozzap jmp wyswietl *obsluga ruchu pociskow _pociski equ * cmp #pocpr1 beq _poc2p cmp #pocpr2 beq _poc1p cmp #poclw2 beq _pocl1 cmp #poclw1 beq _pocl2 cmp #pocpr3 beq _poc3p cmp #poclw3 beq _poc3l cmp #pocgo3 beq _poc3g cmp #pocgo1 beq _poc1g cmp #pocgo2 beq _poc2g rts _poc3g lda #pocgo1 jmp wyswietl _poc1g lda #pocgo2 jmp wyswietl _poc3p lda #prkraj jmp wyswietl _poc2p lda #pocpr2 jmp wyswietl _poc1p lda #pusty jsr wyswietl lda screen+2,y cmp #pusty beq _pop21 cmp #prkraj beq _pop22 rts _pop22 iny iny lda #pocpr3 jmp wyswietl _pop21 iny iny lda #pocpr1 jmp wyswietl _pocl1 lda #poclw1 jmp wyswietl _pocl2 lda #pusty jsr wyswietl lda screen-2,y cmp #pusty beq _pol21 cmp #lwkraj beq _pol22 rts _pol21 lda #poclw2 sta screen-2,y ora #1 sta screen-1,y rts _poc3l lda #lwkraj jmp wyswietl _pol22 lda #poclw3 sta screen-2,y ora #1 sta screen-1,y rts _poc2g lda #pusty jsr wyswietl lda screen+32,y cmp #pusty beq _pog22 rts _pog22 lda #pocgo3 sta screen+32,y ora #1 sta screen+33,y rts * obsluga wystrzelenia naboju * z dzialek _dzialka equ * cmp #dzilw beq _lewd cmp #dzipr beq _prawd cmp #dzigor beq _gordzi rts _lewd equ * lda screen-2,y cmp #pusty beq _lew2 _exlw rts _lew2 lda 53770 cmp #10 bcs _exlw lda #poclw2 sta screen-2,y ora #1 sta screen-1,y rts _prawd equ * lda screen+2,y cmp #pusty beq _praw2 _expr rts _praw2 lda 53770 cmp #10 bcs _expr lda #pocpr1 iny iny jmp wyswietl _gordzi equ * lda screen+32,y cmp #pusty beq _gor2 _exgor rts _gor2 lda 53770 cmp #10 bcs _exgor lda #pocgo3 sta screen+32,y ora #1 sta screen+33,y rts * koniec *procedury obslugi zapory elektrycznej *poziomej _wlwyl equ * cmp #zapora beq _wylacz cmp #pusty bne _wlwex lda screen-32,y cmp #pradnica beq _prad cmp #zapora bne _wlwex lda #zapora jmp wyswietl _prad lda 53770 cmp #czestpradu bcs _wlwex lda #zapora jmp wyswietl _wlwex rts _wylacz equ * lda screen-32,y cmp #pradnica beq _pradoff cmp #pusty bne _wlwex lda #pusty jmp wyswietl _pradoff lda 53770 cmp #czestpradu bcs _wlwex lda #pusty jmp wyswietl _zapora equ * pha txa pha tya pha inc _zapkontrol ldy _zapkontrol cpy #4 bne _zaplop ldy #0 sty _zapkontrol _zaplop lda fzzap,y tay ldx #0 _zaplp lda pozdan,y sta zapznk,x lda poz2dan,y sta zapznk+1024,x lda pindan,y sta zaiznk,x lda pin2dan,y sta zaiznk+1024,x lda koddoor,y sta ldorznk,x lda kod2door,y sta ldorznk+1024,x lda lasdoor,y sta lasznk,x sta lasznk+1024,x iny inx cpx #16 bne _zaplp pla tay pla tax pla rts org $b400 * --- podprogramy --- * init equ * lda #%101001 sta dmactls lda displaylist sta dlist+1 rts dli_on equ * lda dli sta dliv+1 lda #192 sta nmien rts wyswietl equ * sta screen,y ora #1 sta screen+1,y rts position equ * pha txa clc adc piontable,y asl @ tay pla jsr wyswietl rts locate equ * txa clc adc piontable,y asl @ tay lda screen,y rts translacja equ * ldx #0 ldy #0 trans lda (reals),y sta screen,x ora #1 sta screen+1,x inx inx iny cpy #128 bne trans rts dli equ * pha lda vcount and #4 eor #4 clc adc >fonts sta wsync sta chbase pla rti _zm equ * cmp #6 beq _ch1 cmp #7 beq _ch2 cmp #14 beq _ch3 cmp #15 beq _ch4 jmp _change _ch1 ldy #128 jmp _2change _ch2 ldy #130 jmp _2change _ch3 ldy #132 jmp _2change _ch4 ldy #134 jmp _2change _2change lda (reals),y tax iny lda (reals),y sta reals+1 stx reals jsr translacja jsr _do_zebrania jmp _change _do_zebrania equ * ldy #0 lda reals _do_z3 cmp zebtable,y beq _do_z2 _do_z4 iny iny cpy #10 bne _do_z3 rts _do_z2 lda reals+1 cmp zebtable+1,y bne _do_z4 tya pha lda reals pha lda reals+1 pha lda eladrtable,y sta reals lda eladrtable+1,y sta reals+1 ldy #0 ldx #0 zb_el lda (reals),y sta fonts,x inx iny cpx #16 bne zb_el ldx #0 zb_el2 lda (reals),y sta fonts+1024,x inx iny cpx #16 bne zb_el2 pla sta reals+1 pla sta reals pla lsr @ tay lda zebratable,y beq _juz_zebrany lda pozyc_table,y asl @ tay lda #0 jsr wyswietl _juz_zebrany rts _kasuj_element equ * ldy #0 lda reals do_z3 cmp zebtable,y beq do_z2 do_z4 iny iny cpy #10 bne do_z3 rts do_z2 lda reals+1 cmp zebtable+1,y bne do_z4 tya lsr @ tay lda #0 sta zebratable,y lda pozyc_table,y asl @ tay lda #pusty jsr wyswietl rts zebtable dta a(pl1),a(pl3),a(pl13),a(pl14),a(pl9) zebratable dta d'22222' pozyc_table dta b(5),b(70),b(33),b(12),b(99) eladrtable dta a(fuel),a(fuel),a(bron),a(bron),a(dysk) fuel equ 50000 bron equ 0 dysk equ 1536 icl 'D:DANE_ATP.ASM' icl 'D:PL1*.*' icl 'D:GAMEFONT.ASM'