8`( ;M.COMFM.COM* HOHL  c}E= q0 \C)CC8`DCeECiD` RP h1$E ȍ @y b Y)hܭ]L]` q  DMD   u j)`0  ,p0i2 &28jJ1f02 9 g iJf0i1)xԍӭ232002*Ten prog nalezy uruchomic w QA*Pokazuje on cala tabele rozkazowa*miedzy innymi 'tajemniczy' mnemonik*EXT. Tabela jest ods}zukiwana automa-*tycznie, co umozliwia obejrzenie jej*bez wzgledu na adres lokacji QA*W SETUPie:*RUN 9000*MEMHI 9000}*Potem Assembly i Run... opt 21 org $9000adr equ $feile equ $fd lda #$00 sta adr lda #$30 } Starszy bajt adresu sta adr+1 poszukiwaniaszuk ldy #0 Szukanie rozkazu ADC lda (adr),y cmp #'A' } Pierwsza litera beq j1 Jezeli jest to dalejnie inc adr jesli nie to bne szuk nastepny bajt inc } adr+1 lda adr+1 cmp #$a0 Czy doszlo do $9fff? bne szuk jsr inf1 Jesli tak to wypisz jmp exit } bladj1 ldy #64 Czy druga litera ? lda (adr),y cmp #'D' bne nie ldy #128 Czy trzecia litera } ? lda (adr),y cmp #'C' bne nie jsr inf0 Wyswietl napisik lda #7 Ile linii+1 sta ile }lop2 ldx #0lop1 ldy #0 Wyswietlenie lda (adr),y linii zlozonej z sta print,x osmiu rozkazow ldy # }64 lda (adr),y sta print+1,x ldy #128 lda (adr),y sta print+2,x inc adr txa clc } adc #4 tax cmp #32 bne lop1 jsr printm dec ile Nastepna linia bpl lop2 jmp exit } Koniec...printm ldx print jmp $c642print dta c' ',b(155)i}nf0 ldx info0 jmp $c642info0 dta c'}Dostepne mnemoniki w QA: ',b(155)inf1 ldx info1 jmp $c642info1 dta c'}Brak w pamieci QA !!!',b(155)exit ldx info2 jsr $c642 } lda #255 sta 764 lda 764 cmp #255 beq *-5 rtsinfo2 dta c'Nacisnij dowolny klawisz',b(155) y"LBHAPPY WARP zainstalowany...wH , Iҥl J,J,):2"= =0J$,; =}hL0` S0i lxx`xҥl J,J,):2"= =0J$,; =? s L@ @ ;ApppB@ A w$ɢx$ w $ Lw$b LBUszkodzony kod QA} s L@ @ ;ApppB@ A w$ɢx$ w $ Lw$b LBUszkodzony kod QA opt 37 org $2040main lda $2477 cmp #$a2 bne nie lda $2478 cmp #$01 bne nie lda #$4 }c sta $2000 lda #$77 sta $2001 lda #$24 sta $2002 jmp $2477nie ldx t jmp }$c642t dta c'Niestety nie da sie uruchomic QA..',b(155) org $2000 jmp main org $2e0 dta a($2000) } endt dta c'Niestety nie da sie uruchomic QA..',b(155) org $2000 jmp main org $2e0 dta a($2000) SAV M:CONFIG.SYS,070E,070ESAV M:CONFIG.SYS/A,0709,0709SAV M:CONFIG.SYS/A,070F,0717>BC19 60SAV M:CONFIG.SYS/A,BC19,BC19>0}2E0 19>02E1 BCSAV M:CONFIG.SYS/A,02E0,02E1'Aktualna konfiguracja w M:CONFIG.SYS7>BC19 60SAV M:CONFIG.SYS/A,BC19,BC19>0S@  =ȻLBStandard configuration installed.IG.SYS7>BC19 60SAV M:CONFIG.SYS/A,BC19,BC19>0L@  =̻LBConfiguration for DJpacker installed.YS7>BC19 60SAV M:CONFIG.SYS/A,BC19,BC19>0P opt 21 org $9000memlo equ $2e7memtop equ $2e5 lda #'L' sta t+3 lda #'O' sta t+4 lda #' ' sta t+5 lda memlo+1 st }a co+1 lda memlo sta co jsr wr lda #'T' sta t+3 lda #'O' sta t+4 lda #'P' sta t+5 lda memtop+1 sta co+1 lda memt!}op sta co jmp wrwr lda co+1 pha lsr @ lsr @ lsr @ lsr @ tay lda hex,y sta adr pla and #15 tay lda hex,y sta "}adr+1 lda co pha lsr @ lsr @ lsr @ lsr @ tay lda hex,y sta adr+2 pla and #15 tay lda hex,y sta adr+3 ldx t jmp $c642t dta c'MEM ',b(155)adr equ t+7hex dta c'0123456789ABCDEF'co equ *da hex,y sta adr+3 ldx ) ޵3).',%L>-%$)5- $/ 5"ǥ`daeH!$()789 987ގ',2}@#*+R" " L!diWй bc| Q d`eaq!epi~At_}0(:,3}.$%s0O" (v#q L" (!Յ%@ HP~ 1#`*a+ F Փ;<= ,4}=<; Ⱦs0 Q%--(b` ca|LjLx~@vҠ҄z z-yP` (C)+ ,5}* } (&)z#{  {#z#8^``!H( !h`$}@~`LazD`a$e($%e)%1$f0I,6}jԩ#$ضh8`fȄg)t@ ɀgg$h0@DHL ګ`CBf} @`͎'# ,7}8``HJ h) iiЙ`:>::H ``VY€: kkB(8t,8}$W%X=(H8``hCDCDClCH`Ҡ x `@ʈM`!,9}?"#(@# ɋɊ !!8`!|`N# (0Ԡ̺ 0:";*<+=ҩҺxu6@,:}:2344 $$إ%إ($#ά Pҥ 0X0#`# 21 4 z NLT1뭀)T4yL,;}a VȨ1`0,06LJL<ӡAcC EǩT*&' `e1i `) ߍ,<}ҮԀj `LKH)h͍(ͤ`ԉLHHD"\ hhh@l&3Iyh,=}`W8 * * J 񻰽 `Lƻyh,lLBMomencik... 󢽠LBObszar $2000-$bbff skasowanyLƻyh0cTutaj macie kilka utillkuff zrobiony,usprawniony itd.przez Rolanda/NG.Iyh`W4K* fast mouse driver by* Laokoon/NG* 22 iii mcmxcviii opt 21 org $9000baze equ $d407col0 equ $02c0siz0 equ $d008poz0txt1 jsr ptln ldx txt2 put lda #9 jsr stvb lda del sta tmc2 ldapm sta baze lda #$f sta col0 dl sta $Hc}230 sty $231 ldy #4 ;init koloruffptl2 equ * ;708=02 lda colors,y ;709=04 sta 708,y ;710=06 deHd}y ;712=00 bpl ptl2ptl equ * ;zamien adresy lda itr0+1 ;bitplanuff eor #224 sta itr0+1 lda itrHe}1+1 eor #32 sta itr1+1 lda 20 ;czekaj jedna cmp 20 ;ramke beq *-2 bne ptl ;[jmp]*kolory [Hf}708-712]colors dta b(2),b(4),b(6),a(0)*--- dldl dta c'pppp' dta b($4e)itr0 dta a(bmp_1) dta d'....................' dHg}ta d'....................' dta d'....................' dta d'....................' dta d'.................' dta b($4e)itHh}r1 dta a(bmp_1+$f50) dta d'....................' dta d'....................' dta d'....................' dta d'..........Hi}...' dta d'....................'* ponizsza linijka tylko dla* pic'ow 4matoo inp, ing !!!* dta d'........' dta b($41),a(Hj}dl) endd'....................'* ponizsza linijka tylko dla* pic'ow 4matoo inp, ing !!!* dta d'........' dta b($41),a(H *------------------** XLP 1.5 cutter! ** 4 KFlaczki #1 ** **sorry 4 lame code!**------------------*Ll}bmp_a equ $70b0 ;bitmap #1bmp_b equ $90b0 ;bitmap #2buf equ $2000 ;bufor na danemejn equ $6000 ;let's go!iocb equ Lm}$340cio equ $e456reset equ $e474 ;cieply start :)dliv equ $200dlv equ $230nmien equ $d40egtia equ $22fconsol eqLn}u $d01f*--- opt %100101 org mejn lda #0 ;wyzeruj liczniki tax ;i inne badziewiadel0 sta komorki,xLo} inx cpx #7 bne del0 jsr tpc0 ;inwersja I-wszej* ;opcji lda
dl sta dlvLp} sty dlv+1* inicjuj komorki lda #11 sta 709 ;kolor liter sta add_+1 lda #7 sta 729 ;predkosc key'ow stLq}a x7+1 lda #2 sta 730 lda #0 sta 710 ;kolor tla sta 755 sta 65 ;cicha transmisja jsr prc ;initLr} dli*---back equ * lda txt+40 ;4matow jsr pishpetla equ * ;czekaj na key jsLs}r key2 cmp #7 ;czy ''? beq prawo cmp #6 ;czy ''? beq lewo cmp #12 ;czy return? beq odbiorLt} cmp #$5c ;czy shift+esc? beq exitpetl2 equ * jsr klick ;klick, i skok na bne petla [jmp];poczatek petli*--Lu}-exit jmp reset ;shybkie wyjscie :)*---prawo equ * ;kursor :) w prawo lda liczto cmp #2 ;czy kursor jest pLv}rzy INP? beq petl2 ;jesli tak, to go nie* ;przesuwaj w prawo, inc liczto ;tylko wracaj do petli jLw}sr tpc0 ;kasuj aktualne* ;podswietlenie lda add_+1 clc ;kursor o 9 znakow adc #9 ;Lx}w prawo sta add_+1 jsr tpc0 ;podswietl kolejna* ;opcje bne petl2 [jmp]*---lewo equ * ;kursorLy} w lewo lda liczto ;czy qrsor jest beq petl2 ;przy pierwszej opcji? dec liczto ;jesli tak, to nie* Lz} ;przesuwaj go w lewo,* ;tylko wracaj do petli jsr tpc0 ;kasuj aktualne* ;podswietL{}lenie lda add_+1 sec ;qrsor o 9 znakow w sbc #9 ;lewo sta add_+1 jsr tpc0 ;podswietl bne petL|}l2 [jmp]*---bak equ * lda #255 sta 764 bne back*---odbior equ * lda dat ;sprawdzL}}a, ktora sta x0+1 ;opcja zostala sty x0+2 ;wybrana ldx liczto ;a nastepnie beq skip5 ;przepisujenL~}omic_ equ * ;bitplane'y w rozny lda x0+1 ;sposob [zalezy to clc ;ofcoz od formatu!] adc #5 sta x0+1 L}dex bne nomic_skip5 equ * lda liczto beq mic_w cmp #1 beq ing_w jsr inp ;zmejxij format inp'a beq skp [jmp]L}mic_w equ * jsr mic ;zmejxij format mic #1 dec flag bne skp [jmp]ing_w equ * ;zmejxij format ing jsr ingL}skp equ * lda wpsh ;bedzie sie pobierac jsr pish ;nazwe pliq dec igr+1L} ;zmniejsz pozycje lda igr+1 ;qrsora tay ldx #0 beq tpc2 [jmp]*---ptl equ * jsr key ;czekaj na kij :L}) cmp #$1c ;jesli esc to wroc beq bak ;do menu glownego cmp #12 ;jesli return to beq return ;zaL}pisz plik cmp #$34 ;delete? bne skip0*-- delete ;ten kawalek lda igr+1 ;odpowiada za obsluge cmp #15 L} ;klawisha DELETE beq ptl dec igr+1 ;cofaj qrsor dec igr+1 dec nazwa ;cofaj licznik dlugosci* L} ;textu lda igr+1 ;wyswietl kropke + tay ;nazwe 4matu ldx #0 beq tpc2 [jmp]*---skip0 equ * L};ten kawalek odpowiada ldx nazwa ;za wyswietlanie i cpx #10 ;obsluge reszty beq ptl ;key'ow tay L} ;konwersja kodoo lda ($79),y ;klawiatury na atascii cmp #97 ;selekcja key'ow. bcc skip3 cmp #123 bcs sL}kip3 sec ;konwersja na internal sbc #64 bne skip4 [jmp]skip3 equ * cmp #48 bcc ptl cmp #122 bcs ptl sL}ec sbc #32skip4 equ * inc nazwa ;zwieksz dlugosc textuigr ldy #15 ;ten kawalek ldx #0 ;wypisuje* L} ;znak + + format pliq dey sta wpsh,y inytpc2 equ *x0 lda dat,x sta wpsh,y iny inx cpx #5 bne tpc2 iL}nc igr+1 bne ptl [jmp]*---return equ * ;ten kawalek jsr scr_out ;pobiera z*--- ;ekranu text, ldy #1L}3 ;konwersi go na ldx #255 ;atascii, dodajetp0 equ * ;kropke, rozszerzenie lda wpsh,y ;oraz eol'aL} iny inx cmp #14 beq kropka cmp #14+128 beq kropka clc adc #32 sta fname,x cpx #11 bne tp0kropka equ * lda #46L} sta fname,x inxtp1 equ * inc licz_ lda wpsh,y clc adc #32 sta fname,x iny inx lda licz_ cmp #3 bne tp1 ldaL} #0 sta licz_ lda #$9b ;wstaw eol'a sta fname,xret2 equ * jsr klozet ;zamknij kanal jsr klick ;klick'nL}ij key'em*--- lda #3 ;otworz kanal sta iocb+2,X lda #8 ;zapis sta iocb+10,X lda fname sta iocb+5,X lda #0 sta iocb+11,x jsr cio ;inicjuj bmi error ;error? L}lda #11 ;zapis bloq danych sta iocb+2,X lda buf sta iocb+L}5,X lda sajz ;rozmiar danych sta iocb+8,X ;[zalezny od formatu lda sajz+1 ;grafiki] sta iocb+9,X jsr cio L} ;zaczynaj zapis bpl okhi2 ;ok! bmi error ;zle!*---okhi2 equ * ;'wszystko ok!' jsr klozet ;zamL}knij kanal jsr prc ;wlacz ekran, i* ;przerwania lda flag ;czy jeszcze beq skip9 ;raz savL}e? [mic2] lda #0 sta flag lda sec ;z informacja o jsr pish ;sejfowaniu drL}ugiego* ;b_planu [mic2] jsr key ;czekaj na key jsr mic2 ;stworz drugi bitplan jsr scr_out L} ;wylacz ekran i przerwania jmp ret2 ;zapisz!skip9 equ * ;wyswietl listwe lda ok_L} ;'wszystko ok' jsr pish ;i te sprawy jsr key ;klawisz? jmp back ;wracamy do menu*---error eL}qu * ;jakies bledy! jsr klozet ;zamknij kanal jsr prc ;wlacz, ekran etc. lda err_ ;'i/o error' jsr pish jsr key ;key jmp bak ;wracanko*---scr_out equ * ;wylaczanie przerL}wan lda #0 ;i ekranu sta gtia lda 20 ;1/50s cmp 20 beq *-2 lda <$c0ce ;oddaj stary wektor sta dlL}iv ;dli lda >$c0ce sta dliv+1 lda #0 ;wylacz dli, i vbl'a sta nmien rts*---prc equ * ;kawalek teL}n ustawia lda #$c0 ;przerwania i ekran sta nmien lda int sta dliv sty dliv+1 lda #$22 sta gtia rtsL}*---key equ * ;klick + czekanie na jsr klick ;klawiszkey2 equ * lda 764 cmp #255 beq *-5 rts*---klozetL} equ * ;zamykanie kanalu ldx #$10 lda #12 sta iocb+2,x jsr cio bmi error rts*---pish equ * ;wyswietlanie lisL}twy sta adr0 sty adr0+1 rts*---tpc0 equ * ;podswietlaniex7 ldx #7add_ ldy #11tpc1 equ * lda txt+40,y eor #$8L}0 sta txt+40,y iny dex bpl tpc1 rts*---klick equ * ;klick klawiatury txa pha ldx #$50kl2 equ * stx consolL} nop ;maly delay nop nop nop nop dex dex bne kl2 pla tax lda #255 ;czysc klawisz sta 764 rtL}s*---int equ * ;przerwanie dli pha ;A na stos inc kurs ;miganie qrsorem lda kurs cmp #12 L} ;jaki delay? bne skip6 lda #0 sta kurs lda 755 eor #2 sta 755skip6 equ * ;interlace lda itr0+1 eor #224 stL}a itr0+1 lda itr1+1 eor #32 sta itr1+1 sta $d40a ;nxt linia lda #2 ;colorki sta $d016 lda #4 sta $d01L}7 lda #6 sta $d018 lda #0 sta $d01a lda int2 sta $201 pla ;A zL}e stosu rti*--- dli no.2int2 equ * ;nxt dli pha ;A na stos sta $d40a ;kolory dla lda 709 L};dolnej listwy sta $d017 lda 710 sta $d018 lda int sta $201 pla L} ;A ze stosu rti*---ing equ * lda ing_ ;stworz format sta sajz ;ing lda ing_+1 sta sajz+1 ;nowy rL}ozmiar pliq jsr podobne ;przepisz bitplany ldx #0 ;dodaj kolory i txttp4 equ * lda ing_txt,x sta ($82),y iL}ny inx cpx #$34 bne tp4 rts*---inp equ * ;stworz format inp lda inp_ sta sajz lda inp_+1 sta sajz+1 ;nowL}y rozmiar pliq jsr podobne ;muw bitplany ldx #0 ;dodaj kolory ldy #0tp5 equ * lda ing_txt,x sta ($82),y iL}ny inx cpx #4 bne tp5 rts*---mic equ * ;stworz mic #1 lda mic_ sta sajz lda mic_+1 sta sajz+1 ;nowy rozmL}iar pliq jsr podobne ;muw bitplan ldy #0cl0 equ * ;+ kolory lda ing_txt,y sta buf+$1e00,y iny cpy #4 bne cL}l0 rts*---mic2 equ * ;stworz #2 mic jsr dilejt ldy #0 ;zastap '.MIC'szkj equ * ;jako '.MI2' lda L}fname,y iny cmp #$9b bne szkj dey dey lda #50 sta fname,y lda buf sta $80 sty $8L}1 lda bmp_b sta e1+1 sty e1+2 ldy #0e1 lda bmp_b sta ($80),y inc $80 bne e0 inc $81e0 equ * inc eL}1+1 bne e2 inc e1+2e2 equ * lda e1+2 cmp >bmp_b+$1e00 bne e1 lda e1+1 cmp buf sta $80 sty $81 lda buf+$1f40 sta $82 sty $83 lda bmL}p_a sta a1+1 sty a1+2 lda bmp_b sta p1+1 sty p1+2 ldy #0a1 lda bmp_a sta ($80),y inc $80 bne a0 incL} $81a0 equ * inc a1+1 bne a2 inc a1+2a2 equ *p1 lda bmp_b sta ($82),y inc $82 bne p0 inc $83p0 equ * inc p1+1L} bne p2 inc p1+2p2 equ * lda a1+2 cmp >bmp_a+$1f40 bne a1 lda a1+1 cmp ` ߹fɛ(2~ P}pcq֭歼ɰ~SScuuu@?"epdQQPpQQQQ+ ۃ۰ɏA`P}P@ppBdNZ^NXB eAd8,0cutter? +ocie&laki0icmatx-)#).'y?zajlP}sejXf$")/inwazja  7szychowporzadalu nijdrugwibitplak; -) =9/4*%34"9,%*!+)84 rP}0A!33)%94!,e>>W$8 $* $* $J $ $$ $$`L`P}$33)%94!,e>>W$8 $* $* $J $ $$ $$`L`P*---------------** Shower do AP3 ** 4 Kocie Flaki **---------------* opt %100101pom0 equ $80 [2] ;komorki pomocniczepT}om1 equ $82 [2] ;przy tworzeniu DLa equ $40b0 ;adres bitmapy #1b equ $60b0 ;adres bitmapy #2dl1 equ $9000 ;T}DL numer jedendl2 equ $9400 ;DL numer dwa org $2000main equ **-- inicjacja komorek ldy #3d0 equ * lda kom,y sta T}pom0,y dey bpl d0*-- tworzenie dwoch DL ldx #192 ;ile linii? ldy #0ptl equ * lda #$4f ;dta b($4f) sta T}(pom0),y sta (pom1),y jsr _add lda bmp_adr ;dta l(adres linii) sta (pom0),y sta (pom1),y jsr _add lda bmp_adr+1 T} ;dta h(adres linii) sta (pom0),y sta (pom1),y jsr _add lda #40 ;linia=linia+40 clc adc bmp_adr sta bmp_adrT} bcc skp0 inc bmp_adr+1skp0 equ * dex ;wyswietl wszystko bne ptl lda #$41 ;dta b($41) sta (pom0),yT} sta (pom1),y jsr _add lda
dl ;dta l(dl) staT} (pom0),y sta (pom1),y*-- inicjacja komorek ldy #3d1 equ * lda kom2,y sta pom0,y dey bpl d1*-- przeplatanie w dl'iT}scie ldy #0 ldx #192 ;ile linii?*-- pierwsza DLptl2 equ * lda (pom0),y clc adc #$20 sta (pom0),y lda #6 clT}c adc pom0 sta pom0 bcc skp1 inc pom0+1skp1 equ **-- druga DL lda (pom1),y clc adc #$20 sta (pom1),y lda #6 clcT} adc pom1 sta pom1 bcc skp2 inc pom1+1skp2 equ * dex bne ptl2*-- lda #0 ;kolor tla sta 710 lda int sta $200 sty $201 lda #$c0 ;wlacz dli sta $d40e lda
dT}l sta $230 sty $231 lda #$21 ;fonzki :) ekran sta $22f jmp * ;ojej, a to co?*---int equ * pha T} ;X i A na stos txa pha sta $d40a ;nxt linia lda #$22 ;normalny ekran sta $d400*-- wyswietlanie T}naprzemienne* trybow 9 i 11 ldx #194 ;ile linii?i0 sta $d40a ;nxt liniaz0 lda #$c0 ;zaczynamy od gr.1T}1 sta $d01b lda z0+1 eor #$80 sta z0+1 dex bne i0 lda chng+1 ;zmien dl'a eor #$4 sta chng+1 lda z0+1 T} ;przygotuj na potem eor #$80 sta z0+1 pla ;A i X ze stosu tax pla rti*-- zwiekszanie komorek na zeroweT}j_add equ * inc pom0 bne a0 inc pom0+1a0 inc pom1 bne a1 inc pom1+1a1 rts*-- dane pomocniczebmp_adr dta a(a)kom dT}ta a(dl1),a(dl2)kom2 dta a(dl1+5),a(dl2+2)inf0 equ * dta d' "AP3 shower" 4 Kocie Flaki #1! '*--- dl'ikdl equ * dtaT} c'pp' dta b($42),a(inf0) dta c'' dta b(1)chng equ * dta a(dl1) org $2e0 dta a(main) end*--- dl'ikdl equ * dtaTdݺݻ˩w˺ݺݻ˩w˺ʪʪܻwʪX}ʪܻwʪ͹ʫwʪ͹ʫwʪʺX}ʫwʪʺʫwʩڌ˫wxʩڌ˫X}wxʛ̺ww~˪ʛ̺ww~˪ۺ|{ܺX}wwʪxۺ|{ܺwwʪxܺER)ܺvgwʩxܺER)ܺvgwX}ʩxۺDB6Ŭܩvwx{٩wwۺDB6Ŭܩvwx{٩ww˺}s2|̺wgx{X}wwwxx˺}s2|̺wgx{wwwxxʩ%vr#kk˪wvgwjwwwxʩ%vr#kk˪wvgwjX}wwwxʺUc3%v+˺wvgyYfwwxʺUc3%v+˺wvgyYfwwx˺C"!$H̻vfwxhGwxX}˺C"!$H̻vfwxhGwx!"%S5̺ffwxWxxޥw!"%S5̺ffwxWxxޥw!!X}#3UTܺwvfwvgV!!#3UTܺwvfwvgV˩!C3Bg3ݺwffxreiʬx˩!C3Bg3X}ݺwffxreiʬxp4xbݺwffwzRvj̕Wںp4xbݺwffwzRvj̕WڪqIt"ݻX}wwvffw{dujeCV{ʪqIt"ݻwwvffw{dujeCV{ʪbMͦ1ݻwwwffw}EUj"#wYɪbMͦ1ݻwwwX}ffw}EUj"#wYɚr>̩RMʙwwwffw~CVz2%\Țr>̩RMʙwwwffw~CVz2%\Ȉq=ܩt -ʩwwwffgX}CVw1MVوq=ܩt -ʩwwwffgCVw1MVهvr>ɕA]کwvwff3%r2tۇvr>ɕA]کwvwff3%X}r2twgsMܩwa{٨wgvfgwk!R(wgsMܩwa{٨wgvfgwk!R(wv~vRڙwffffxw#džb-X}wv~vRڙwffffxw#džb-čveVɘbڙwwfvfgxvwhVR^ՍݽveVɘbڙwwfvfgxvwhVR^ՍݽX}eegIʩbڙwfffgwvw̽ShB֝ݽeegIʩbڙwfffgwvw̽ShB֝ݽfff2yqʪڙwvfffgxvwۺSXAǽ̽fff2X}yqʪڙwvfffgxvwۺSXAǽ̽fd$GTiaژffffgwwVۊSXQؽκfd$GTiaژffffgwwVۊSXQؽκfUGBq X}۩vfwffwvۍd$XQ͸fUGBq ۩vfwffwvۍd$XQ͸UTc!Cq;ۙvfgfgwەC$Xbǭν͸UTc!Cq;X}vfgfgwەC$Xbǭν͸Ud텹aJۙvffUgxVBDXa7Ud텹aJۙvffUgxVBDXa7UT޼43b[ڙfffX}fgxyd"eWceͷܼUT޼43b[ڙffffgxyd"eWceͷܼUT}ڇdqۙffffglQuVc=se˻UT}ڇdqۙffffglX}QuVc=se˻UV)yrzʙffffgnuVtMtȼڼUV)yrzʙffffgnuVtMtȼڼeUJ陫tʙvffffL14VX}tN|eUJ陫tʙvffffL14VtN|UT:zeʙwfffgx714Vv>UT:zeʙwfffgx714Vv>X}fD+zXʙffffWx!$tEu~쌭zfD+zXʙffffWx!$tEu~쌭zTD}!.Y?}! .! .,@.,Y@}@." `." `."YA}" j YB} j n"! !!n"! !!"YC}`!!"`!!A fA fYD}".!".!" N".!YE}" N".!+" .`f!!+" .`f!!b YF}+."!b +."! ! ! !YG} !"  !!""  !!"". YH}`"!""!". `"!""! .`!!"! .YI}`!!"! .B " .B "  $"YJ}!""  $"!"" b " " b YK}" " `" " `" "n ` NYL}" n ` N" .J. `  .J. ` YM} . " . " "."  !YN}"."  !."!f."!f.+ YO} .+  ` ! ⰾ )i` ! YP}ⰾ )i `  `  .`YQ} `j.` `j.j.YR}j`˾.!`˾.! YS} !!  !!k k YT}   y   y` jYU}` j. j. jYV} . !ꙙi . !ꙙi .!f陙 .!YW}f陙 j j YX} " "YY}  ..y꩙yy ..y꩙yy.YZ}yy.yy* `. * `.Y[} j.j.࠰ Y\}v࠰ v `` y `` Y]}y `  yy `  yy!목 yKyY^}!목 yKy  i  i.Y_}.ꮠ .  yw .Y`}  yw  .w  .w. @ Ya} zf. @  zf.` +᱾.i.` +Yb}.i!. ໱iyy!. ໱iyy Yc}iyy iyy  y  yYd} ໪ྲ ໪ྲ   Ye}`  `   ࠙fi   ࠙fiXz0@ݻ˩w ѻѱʪ`)`h&`슻͹{ʆx]q}#%'(=>?_`je "579jBBLEDYQA ASMBHAPPY COMBQA1 COMBQA1 ASMBCONFIG BATBNOR COMBDJP COMBMEM ASMB$MEM COMB&TOMS COMB(NORMAL COMB)US COMB>CLR COMB?OPIS TXTB-----------B @FMD ASMB`FMD TXTB-----------B aINTFULL ASMB\kXLPCUT ASMB XLPCUT COMBAP3SHOW ASMBIKSFAJL AP3BKfAP3DEMO COMBARASEK TXTB-----------BFIRE ASMB&PLAZMA ASMBKOALA TXTB-----------B-BOBDRAW ASMB!BOBDRAW TXTB-----------By#WINXO ASMB>WINXS ASMBWINX TXTB-----------BDRAW9F ASMBDRAW9F TXTB-----------BKEY ASMBKEY TXTB-----------BMKCLS ASMBMKCLS TXTB-----------BVB ASMBVB TXTB-----------BMKDL ASMB6MKDL TXTB-----------BͮóB B8CZYTAJ TXTBZ:QA COMBQA SETBQA TXT`浱&>/`ӱ(ڌ<Pxʛ̺6`]r}bwC~f^އۺJ|{4ʪ޲xбxɛER)`vgwʩ鱱]s}DB6Ŭr8`wx {ٱww @(}s22|w@g`x{B`bwxx𱱱xʩ%vr#kk˱wv*]t}jDUc3%vG+`˺,yYf豱xʣC"!$H̻vfwxhG]u}!"%S5ff@`xWxxmޥw*!!#3UT ܱvgV˩!C3Bg3ݺ]v}wxreiʬ?xp4xḇ`zRvj̕W?ڱڪqIt "b0wv{dujeCV]w}{?ʱbMͦ1%`ww}EUj"#wYɱɚr>̩RGʙnw~z2%\ȱ౱Ȉ]x}q=ܩt -ʩg`w1M'VٱıهvA]کv3%r2twgsMwa{٨`gvfg`]y}wk!R(_̱v~vRڙx#dž)b-`ͱveVɘb`,`w`xvhVR^Սݽ]z}౱eegIʩbrgw̽ShB_@մ2yq/ʰۺSXAǽۚձݱ౱d$GTia0]{}wVۊH԰QؽκUGBq ۩Xw ۍ0d$`͸UTc!Cq;`@gwەCbǭ]|}UMd텹aYJfUxVBDXa7ɱT޼43b[b^𱱱fD+zX`fWx!$tEu~쌭z]}𱱱TD<yvGfVw!f4dUeܪ?˱]eT,1eQX`wevId#(ťyxd4)]}"$T`xvga!R3DuʌXwUD;mV+Th!Ak޾ǺWuJUWU0e #Dx]}b쨻fhWy𱱱yS${Mh27U%xHwvec2""DZEuItgg"C~WFS,5r!`Djdf]}f52~[DP4"$ywR"`b3ݼR?guu3"~hT3 #7wgC!A4xwACC2"eC]}2vd#@12 ܥd"5C4q!cwaB (J̗S"$S28Q,g00!+tg vB"D]}𱱱3#+?P@9vUZC!C4)a"6VeV TJٱ!q1zQV]}UUV1|#U*܅32`ouQvb" P#d33ᱱѱ±ŏx6`!bVhH2&"#uTCűѱ]}𱱱AAUUeD!Ѐ!"DD?3CᱱѱR1`4SbA!L" $eTDCC鱱뱱𱱱z&Q~"2!11l]}$౱q~PJ"1" ! kC4VvU0UT?SE~J` #!"!#v5^!]} 43?!E!!" >H!&UU1 v(4! }0b6UtPN_%?n>ThW"#4fd2"6]}uAb@T2b3o3#W&hʱ1|!! EDt< w*2𱱱p=]} &TTU"tx""4񱱱:ñeUDE&oXCj#35fJqeEDT"@B"ZB#D]}TIp`ETD4B1YTC2"%DEVEU31!U3ERUqE e1UU]}uT'TTa౱`bB9FD(22B)EF"S1g!T` $%B;ef#4]} T5T2!@EPDB]5UQ?eeUc`D4EEDLD`C VUS2`4#ES^űDETUBfV]}豱 a#,#CC33"D7ZTt3$\r4dX`2UIV9EdT%x00^T]}`UU9EWG?TRg`hCCC2p#F:Ef6DQGVcK3CC"2V;eEg&DA]}SD4+C#"\VVeV.tFD2.ʺr3)a""ef-EUpt4𱱱<#'eQ<32bUoW]}uV:EWBd?4"Kb4fjAC3#fVgYVWS4ZSD 5ZdB3duexed6CD`WFSe]}eI#b vUe6GzUT%'2VVffUg$d2B6ibD 2#2!VefdEfT"1]}뙋3$f#h3"VVdvcF`eDֿ`% `VSfTFgC"!^%:! Ue]}FcBT2"𱱱TsI2$UU6R@VUBCC4&B"f"@4SuT1(Wc4t%]}"2=!2@`V5b7US˼S?4`TBbVUC˱ B"""3FSaAeX]}Ȫ1!@"!D!#A%(w!%&?!$jexNigAa`]}$kbvfFTxW2!!yt_lZwwfgxtV#`3CiyvuffU f'dD`waT>]}ñ~Fs鱱- 2^2hp`.\]}Y`4џ׳ѱF4TfݱL: ѱ]}۱W % $ݞ! ۱A<ӱñ_!;.]}㱱Ͽ!"  `` \ߩ qLױ۱_ лױ]}-0P 󱱱!! ٯ汁 !ױ|,!!4ٱ*"]} ( s`"*ñ* (ݱ@.T h^ұ]}?;`4!e񱱱ٱ,`汻:DZDZٱѱñﱱ?۱]}˱!9"ձ ݱ󱱱QC"sѷᱱѱ!r.`L]}=nױ籱,$ױ 4Z"ͱ%B ٱ۱.]}!"8b?"!.X2ѱϱUO2 ᅱѱG!F]} .$,ML@ `q򱱱|"b@5 `^x^\B]}ѱ/QP  j `n!1  7!!^t]} γ ^`!oDZA@8^d' f8j. l2˱`^]} N" .o`㱱+G , ..t`f*'!ᱱb O&/+"!]} db^! ʱ 9"!!"`".! g`B"!"]}&.R`B!ͱ$ f`hB  ?"۱ﱱ@  $ǒT]}Db!dh$ b` -`` 7 `^h"ⱱn0  ]}` Nб .DJ. 8`o |.s' Tݱ",.8"]} 0 '!߱ɱB4."f.'+>c!߱񱱱`h]}!p իG )iȱ nP*F ?G., `j]}..jⱱF.^!豱8 ܀ !]}! `k>   y汱`p& ]}j? . J@,j/D< !_i .]}!BD̩f?"1> jűA$  T]}"h 5 N ..Dyy@y.``]}(T̮* l`(, N˱͆+j o`࠰ ీ ]} — v  ``I .ᔪ`?y ` d? D`A]}!목0 ˵K 2 i౱.ꮂP଱1^]} .  h`yw ?4N.j\2.4 @ ]}zf$2.`  +i~!.`  iyy^ ]}z `J:o 9쾲 `2]} Hڮ `` h 軾࠿?fi O w (]}mҍ ҩA!߭WWWZRiye0e(݃d٩<ԅN!01/L HH "Ԣ`Э I]}t%!Ihh@ `@ 2! 0shower+ocie&lakippB ` V]}8 * * J 歬`ɻ&lakippB ` V\>Stuff do textuff Araska.All done by Arasek/Aids.歬`ɻ(݃d٩<ԅN!01/L HH`4*-----------------------------** firee- koalka/bbsl/karzelki ** werjska ta pochodzi z juzka ** niewielkie poprawki. i} **-----------------------------* opt $15 - do ramufnt equ $a000 \ deklaracje etykietscr equ $a400 / fontow i i}screenu. org $b000 - kod pod adres $b000 lda #$20 \ ustawienie sta $02c8 / kolorku lda
dl |displeja sta $0231 / lda >fnt \ wlaczenie sta $02f4 / fontow lda #%i}01000000 \ sta $026f |ustawienie lda #%00100001 |screenu sta $022f / lda #$00 \ tax |czyi}szczenie tay |obrazucz sta scr,x | sta scr+$100,x | sta scr+$200,x | sta scr+$300,x | inx i} | bne cz /font1 sta fnt,x \ inx |robienie iny |fontow cpy #$08 | bne font1 i} | ldy #$00 | clc | adc #$11 | bcc font1 /tu lda scr-1,y \ clc |suma czrei}rech sasia- adc scr,y |dujacych punktow adc scr+1,y | adc scr+32,y / lsr @ \ dzielenie przez 4 i lsr @i} |zapisanie wyniku sta scr-31,y / lda scr-1+$100,y \ clc |jak wyzej adc scr+$100,y | adc scri}+1+$100,y | adc scr+32+$100,y | lsr @ | lsr @ | sta scr-31+$100,y | lda scr-1+$200,y | clc i} | adc scr+$200,y | adc scr+1+$200,y | adc scr+32+$200,y | lsr @ | lsr @ | sta si}cr-31+$200,y | iny | bne tu / lda #10 \ wskaznik tajmu sta $d01a / lda $14 \ cmp $14 |i}czekanie na vbl beq *-2 / ldx #$1f \syfy lda $d20a |robienie syfow and #%00001111 |na dole ekranu sta scr+$2i}e0,x |( w czesci niewido- dex | cznej ) bpl syfy / jmp tudl dta c'B',a(scr) \ dta c'' |dii}splej dta c'' | dta c'' | dta c'A',a(dl) / end of syfek - napis filozoficzny swi}iadczacy o skoncze- niu tego progu.ta c'A',a(dl) / end of syfek - napis filozoficzny swh4*---------------------**cod:koala/bbsl/swieci**pochodzi z syfa juzek**fuck: lewis ** (wiadomo za co)**----m}-----------------* opt $15 -do ramutabl equ $a000 \tabl2 equ $a100 |deklaracja roznychscr equ $9000 |syfow.m}scr2 equ $9600 |dl equ $a200 |dl2 equ $a400 |help equ $80 |con1 equ $82 |con2 equ $83 |con3 equ $8m}4 |lin equ $85 |prze equ $86 |coni1 equ $87 |coni2 equ $88 |coni3 equ $89 |help2 equ $8a /ilem}1 equ $05 -ilosc barowile2 equ $01 -co ramkeile3 equ $03 -co linieilei1 equ $03 -ilosc barowilei2 equ $04 m} -co ramkeilei3 equ $01 -co linieinter equ $17 - liczba pustych linilino equ $30 - liczba linisec equ $1c - m}od bajtusec2 equ $04 - do bajru org $b000 lda #$00 sta lin sta con1 sta con2 sta con3 sta coni1 sta coni2 sta conm}i3 taxcosz sta scr,x sta scr+$100,x sta scr+$200,x sta scr+$300,x sta scr+$400,x sta scr+$500,x sta scr2,x sta scr2+m}$100,x sta scr2+$200,x sta scr2+$300,x sta scr2+$400,x sta scr2+$500,x inx bne cosztas lda tabl,x asl @ asl @ asl m}@ asl @ sta tabl2,x inx bne tas lda
dl sta help+1 lda scr sta help2+1 ldx m}#$00 ldy #$00ds1 lda #'' sta (help),y lda help clc adc #$01 sta help lda help+1 adc #$00 sta help+1 inx cpx #intm}er bne ds1 ldx #$00 stx lind ldy #$00 lda #'O' sta (help),y iny lda help2 sta (help),y iny lda help2+1 sta (help)m},y iny lda #'' sta (help),y lda help clc adc #$04 sta help lda help+1 adc #$00 sta help+1 inx cpx #$02 bne d lm}da help2 clc adc #$20 sta help2 lda help2+1 adc #$00 sta help2+1 ldx #$00 inc lin lda lin sta lin cmp #lino bne dm} ldy #$00 lda #'A' sta (help),y iny lda
dl sta (help),y lda dl2 stm}a help+1 lda scr2 sta help2+1 ldx #$00 ldy #$00ds2 lda #'' sta (help),y lda help clc adc #$0m}1 sta help lda help+1 adc #$00 sta help+1 inx cpx #inter bne ds2 ldx #$00 stx lind2 ldy #$00 lda #'O' sta (help)m},y iny lda help2 sta (help),y iny lda help2+1 sta (help),y iny lda #'' sta (help),y lda help clc adc #$04 sta hm}elp lda help+1 adc #$00 sta help+1 inx cpx #$02 bne d2 lda help2 clc adc #$20 sta help2 lda help2+1 adc #$00 stam} help2+1 ldx #$00 inc lin lda lin sta lin cmp #lino bne d2 ldy #$00 lda #'A' sta (help),y iny lda dl2 sta (help),y lda #$40 sta 712 lda dl2 sta $0231 lda #%100001 sta $022f lda #m}%01000000 sta $026f lda scr sta help+1 lda #$00 sta lin ldy #sectu ldx con1tur lda tabl,x ldx m}coni1 clc adc tabl,x sta prze lda con1 clc adc #ile1 sta con1 tax lda coni1 clc adc #ilei1 sta coni1 lda tabl2m},x ldx coni1 clc adc tabl2,x ora prze sta (help),y lda con1 clc adc #ile1 sta con1 tax lda coni1 clc adc #ilei1m} sta coni1 dey cpy #sec2 bne tur ldy #sec lda con3 clc adc #ile3 sta con3 sta con1 lda coni3 clc adc #ilei3 stam} coni3 sta coni1 lda help clc adc #$20 sta help lda help+1 adc #$00 sta help+1 inc lin lda lin cmp #lino bne tum} ldy #sec lda #$00 sta lin lda scr2 sta help+1 lda con2 clc adc #ile2 sta con3 sta con2 sta cm}on1 lda coni2 clc adc #ilei2 sta coni3 sta coni2 sta coni1 lda
dl sta $0231 lda $14 cmp $14 bm}eq *-2*-------------- tu zaczyna sie drugi*-------------- bufortu2 ldx con1tur2 lda tabl,x ldx coni1 clc adc tabl,x sm}ta prze lda con1 clc adc #ile1 sta con1 tax lda coni1 clc adc #ilei1 sta coni1 lda tabl2,x ldx coni1 clc adc tm}abl2,x ora prze sta (help),y lda con1 clc adc #ile1 sta con1 tax lda coni1 clc adc #ilei1 sta coni1 dey cpy #sem}c2 bne tur2 ldy #sec lda con3 clc adc #ile3 sta con3 sta con1 lda coni3 clc adc #ilei3 sta coni3 sta coni1 lda m}help clc adc #$20 sta help lda help+1 adc #$00 sta help+1 inc lin lda lin cmp #lino bne tu2 ldy #sec lda #$00 stm}a lin lda scr sta help+1 lda con2 clc adc #ile2 sta con3 sta con2 sta con1 lda coni2 clc adm}c #ilei2 sta coni3 sta coni2 sta coni1 lda dl2 sta $0231 lda $14 cmp $14 beq *-2 jmp tu org m}tabl dta c'' dta c'm}' dta c'' dta c'm}' dta c''' dta c'l9Dwa efekty Koali/BBSL.Patrz arty w zinie.' dta c'p- opt 21 org $9000* BobDraw routine by Solo/NG* Procka nie wykorzystuje liczb ze znakiem* w celu "zrozumienia dlay} wszystkich".* Ale mozna to bardzo latwo przerobic.* W KF#2 bedzie algorytm na "zwykla linie" (opis)* z liczbusiami typu .* Predkosc rysowania NIE ZALEZY od dlugosci linii.* procka do dowolnego wykorzystania. Totalny freeware.* Bob y}wielkosci 2*6 bajtow.size equ 32 ; szerokosc ekranudx equ $80 wdy equ $82 wx1 equ $84 w ; slowa, bo liczby + ulamkiy1 y}equ $86 wx2 equ $88 wy2 equ $8a wek equ $8d wyy equ $8fpoy equ $90bobs equ $91xx equ $92ile equ 7 ; ilosc bobow na y}linie, jak chcesz zmienic* ; - zrob nowa tablice "int" i "rest"screen equ $b000tabys equ $480 ; tablica 127 adrey}suff poz.Ytabym equ $500 ; bez tego tez mozna (ale tak jest faster)*- Ġ - male dentro :) lda
dl sta $231 lda #$40 sta 623 lda #33 sta 559 jsr init ; tabela/Yrys lda #0 y}sta x1ng lda #1 sta y1 lda 20 and #31 sta x2 sta y2 jsr line inc ng+1 ; zmienia poz.Y1y} lda ng+1 and #63 sta ng+1 beq cz jsr cz jsr cz jsr cls ; systemowe, WOOLLNE! jmp ryy}scz lda 20 cmp 20 beq *-2 rtscls lda #$b0 sta 89 lda #0 sta 88 jsr $f420 rts*- a tu juz (shit) bobdraw.*- maxyy}malna poz.Y = 79 (koniec tablicy:)line ldy #1 ; na poczatku ustawiamy domyslnie DODAWANIE sty xx ; x1=x1+dx z} sty yy ; y1=y1+dy dey ; to kombonowanie jest tutaj potrzebne sty x1+1 ; gdyz nie uzywamy liczb ze zz}miennym znakiem sty x2+1 sty y1+1 sty y2+1 sec lda x2 sbc x1 bpl dal1 sec lda z}x1 ; x1>x2 sbc x2 tax dec xx ; wiec xx=0 - ODEJMUJEMY (x1=x1-dx)dal1 tax sec lda y2 sbc y1z} bpl dal2 sec lda y1 ; y1>y2 ; wiec odejmujemy (y1=y1-dy) sbc y2 tay dec yydal2 tay ;z} wczytaj z tablicy nasz wetkor lda int,x ; pt.: DX (calkowita + reszta) sta dx lda rest,x sta dx+1 z}lda int,y sta dy ; oraz wektor DY lda rest,y sta dy+1 ; bo x1=x1+-DX ; y1=y1+-DY lda #ile ; ilosz}c bobsow (tutaj: SIEDEM) sta bobsmain ldy y1 ; adres ekranu dla poz. Y lda tabys,y sta ek+1 lda tabz}ym,y sta ek jsr putb ; postaw bobsa lda xx ; if xx=0 -> x1=x1-dx beq min2 clc ; inacz}zej x1=x1+dx lda x1 adc dx ; dx+1 oraz x1+1 -> ulamek sta x1 ; jezeli do "x1+1" dodamy "dx+1" ldaz } x1+1 ; i bajt sie przepelni - nalezy zwiekszyc adc dx+1 ; x1. Zapewne wiesz czemu ? sta x1+1 bcc *+4 ;z } z odejmowaniem i y1 postepujemy analogicznie inc x1 jmp yyymin2 sec lda x1 sbc dx sta x1 ldz }a x1+1 sbc dx+1 sta x1+1 bcs *+4 dec x1yyy lda yy ; to tamo z Y beq minus clc ; y1z }=y1+dx lda y1 adc dy sta y1 lda y1+1 adc dy+1 sta y1+1 bcc *+4 inc y1 dec bobsz } bne main rtsminus sec lda y1 sbc dy sta y1 lda y1+1 sbc dy+1 sta y1+1 bcs *+z}4 dec y1 dec bobs bne main rtsputb ldx #0 lda x1 lsr @ sta poy bcs bob2bob1 ldy z}poyb01 lda bb1,x ora (ek),y sta (ek),y iny inxbz0 lda bb1,x ora (ek),y sta (ek),y inxz} dey cpx #12 bcs ee2 lda ek adc #size sta ek bcc *+4 inc ek+1 jmp b01bob2 clcz} ldy poyb02 lda bb2,x ora (ek),y sta (ek),y iny inxbz2 lda bb2,x ora (ek),y sta (ek),yz} iny inxbz3 lda bb2,x ora (ek),y sta (ek),y inx cpx #16 bcs ee2 lda ek adc #siz}ze sta ek bcc *+4 inc ek+1 jmp bob2+1ee2 rts*---takie tam...---------------------dl dta d'ppp',b($4z}f),a(screen) dta c'/ / / / / / / / / / / / / / / / / / / / / / / / ' dta c'/ / / / / / / / / / / / / / / / / / / / / / z}/ / ' dta c'/ / / / / / / / / / / / / / / / / / / / / / / / ' dta b($41),a(dl)* Ponizna tabela wziela sie z:* liczbz}y 0...79 (poz X)* dzielimy kolejno przez 7 (ilosc bobow).* Potem wynik:* calkowita liczbe do INT* reszta: mnozymy przez 2z}56 i do rest.* Jesli chcemy np. 5 bobow na linie* to liczby od 0 do 79 dzielimy przez 5.int equ * ; tabela 1,2.3.../iloz}sc bobow ; liczby calkowite dta c'' dta c'' dta c'' dta c'z} 'rest equ * ; - || - ; reszta ("po przecinq") dta c'%In%In%In' dta c'%In%In%In'z} dta c'%In%In%In' dta c'%In%In%In'init lda >screen ; tabela adresof poz. Y - dopal :) sta pom sta z}tabys clc lda #$0 sta tabym ldy #1_y clc adc #size sta tabym,y tax bcc _y22 inc pom lda pom sta tabys,y clc_y2z}2 lda pom sta tabys,y txa iny bpl _y rtspom dta b(0)*------------------------------------* REM wyglad bobsuff - normz}albb1 dta b(%00001111),b(%11110000) dta d'' dta d'' dta d'' dta d'' dta b(%00001111),b(%11110000)*z} + przesuniecie o 4 bity (GR.9 - PUNKTY)bb2 dta b(%00000000),b(%11111111),b(%00000000) dta b(%00001111),d'',b(%11110000z}) dta b(%00001111),d'',b(%11110000) dta b(%00001111),d'',b(%11110000) dta b(%00001111),d'',b(%11110000) dta b(z }%00000000),b(%11111111),b(0)*-----------------------------------------------dta b(%00001111),d'',b(%11110000) dta b(xQProcka bobsdraw. Art w zinie.Done by Solo/NG.Przyklad wykorzystania:patrz nasze intro 4KB z RH98.Znajdziesz je na dyskq ~"}z zinem.Tylko, course, procka jest tamjuz podrasowana.korzystania:patrz nasze intro 4KB z RH98.Znajdziesz je na dyskq |;* Memhi oraz Run na $a000* Wyrzuc potem opisy (choc czesc)* -> free=50 bajtow.* έؠ* ڠ* ӆ$}Ҡ* UWAGA ! Ten plik nie zwiera dwoch* podprocek: dir oraz sh_dir.* Jesli juz "sie naumiesz" (tutaj jest opis,dem%}o itd.)* korzystaj z pliku Ӯ (wersja bez opisu).* Nxt wersja niebawem (nowe plug-iny:). opt 21 org $a000&}*---------- to mozna zmieniac wedlug 'gustu'size equ 40 ; szer.ekranuline equ 24 ; ilosc linii (vel max. 'y' okna)'}*----------adde equ $bc40 ; addy ekranu 4*$100 (tu: systemowy)buf equ $b800 ; bufor - ekran 2 4*$100ekr equ $80 ,$8(}1 * gwiazdka oznacza, ze musi byc na 0 pagezero equ $82 ,$82 *_pom equ $84 ,$85stat equ $254 ($254 jest wolne...)_ppp eq)}u $f0*-- przyklad - otwiera okno DIRECTORY_P (nr=0)*-- oraz wyswietla text*- ӠȠˠ* OKNO - w A*} nr okna (z tabeli oknien)* If bit 7 w stat=1 -> okno w inversie* SKIP - uaktywnia okna (A=nr); aby np. napisac txt+}* NAME - w A nr, X< Y> nazwy okna; nazwe koncz znakiem konca* textu (patrz sam dol - konfiguracja)* WRI_L- wyswie,}tla text w ostatnio otwartym oknie* Jesli chcesz w innym - uaktywnij je 'SKIP'em.* CLR - kasuje ekran* CLRALL- e-}kran i bufor* CLRB - najpierw copy screen to buf, potem CLR* CLRBUF- kasuje bufor* CHANGE- zamiana ekran/bufor (mozesz m.}iec dwa ekrany)* KEY - w Y masz nr z 764; if bit 0 w stat=1* -> uslyszysz dzwiek* OPENW - otwieranie okna, ale/} dane nie sa brane z tabeli* okien - nalezy je wpisac "recznie".* Patrz podprocka.* _PAUZE- czeka 20 rame0}k* CZ - ramka* _WAIT - w X ile ramek* MENU - robi wybieraczke w ostatnio otworzonym oknie.* Jak chcesz w inn1}ym - uzyj 'SKIP'a.* W Y - nr pozycji (od 1 do ...)* W komorce 'esc' - czy wcisnieto ESCAPE.* If es2}c=1 -> tak* Komora 'stat' bity (na razie 0 i siodmy):* bit 0 = %00000001 - key sound on* bit 7 = %10000000 - okna rysowac3} w inversie*--- Ϡέؠ*--- wciskaj klawisze... lda #%04}0000001 ; key sound on sta stat lda #0 sta 712 jsr clrall ; kasuje ekr+buf*--- pierwsza czesc 5} lda #0 jsr okno ; okno nr 0 lda #0 ldx nazwa jsr name ; nazwa okna nr 0 6} ldx txt ; oknie jsr wri_l jsr key ; klawisz*--- druga 7} lda #2 ; okno 2 jsr okno lda #2 ldx nazw2 jsr name ; nazwa okna 2 jsr8} key ; klawisz ldx txt jsr wri_l ; text w ostatnio otwartym oknie jsr key ; key*--9}- trzecia lda #3 ; itd... jsr okno lda #3 ldx nazw3 jsr name jsr k:}ey*--- czwartafour lda #4 ; tu bez nazwy jsr okno ldx menu1 ;} jsr wri_l jsr menu ; tutaj "wybieraczka" lda esc ; if esc=1 -> wcisnieto esc bne koniec cpy #1 <}; w Y wybrana pozycja beq wybor1 cpy #2 beq wybor2 jmp koniecwybor1 lda 709 bne wbb lda #2 sta 7=}10 lda #10 sta 709 jmp fourwbb lda #0 sta 709 lda #10 sta 710 jmp fourwybor2 lda stat ; zapala 7 bit ora #128>} ; co sprawia, ze okna i texty pokazywane beda sta stat ; w inversie lda #10 ; a tu otwarcie dowolnego okna ?} sta _wx lda #7 sta _wy lda #19 sta _sz lda #6 sta _dl jsr openw ldx lasttx jsr wri_l jsr keykoniec rtstxt dta d'Przyklad intrukcji@WRI_L. Pozwala ona na A}"wrzuce' dta d'nie textu do ostanio otwartego okna. Of coz,' dta d'odpowiednio formatuje txt.@' dta d'Mozna wymuszac@EOLe@B}znakiem [malpa].@Koniec=inv' dta d'[malpa].' dta d'Prooooooooooba wyjscia textu poza kazda krawedz' dta d'okna konczy sie C}fiaskiem :). If w bok - text do nxt' dta d'linii. If w dol - koniec write txt.@' dta d'ͮ@' dta d'JEscze kilka liD}ter i powinno :) przestac' dta d'wypisywac.............'lasttx dta d'Jakies sugestie ?@Pisz course !@' dta d'Bedzie jeszE}cze I/O@oraz kilka innych.@' dta d'@WINX 1.2 by Solo/NG'nazwa dta d'Ю٠'nazw2 dta d'BZDET1'nazw3 dta d'F}ɡ'menu1 dta d'KOLORY@SUPER TEXT@KONIEC'*------------------------------------*-- tu juz same procedury...*-- powyzsG}ze sobie wyrzuc...ϠϠ堧Чmenu jsr inH}i_ekr lda #0 sta esc clc lda _wx adc _sz sta _pom inc _pom ldx _wy inx_wbb jsr zwek dex bne _wbb lda _dl sta _pI}om+1 dec _pom+1 jsr inwwbr jsr key cpy #28 beq es cpy #15 bne _wd lda wyby cmp _pom+1 bcs wbr jsr inw jsr zwek jJ}sr inw inc wyby jmp wbr_wd cpy #14 bne _wr lda wyby beq wbr jsr inw jsr zmiek jsr inw dec wyby jmp wbr_wr cpy #12K} bne wbr jsr inw ldy wyby iny rtses inc esc jsr inw rtsinw ldy _wx inywi lda (ekr),y eor #128 sta (ekr),y iny L}cpy _pom bne wi rtswyby dta b(0)esc dta b(0)*------------------------------------ϠᠠM}鮠ںokno asl @ asl @ tay lda win_tab,y sN}ta _wx lda win_tab+1,y sta _wy lda win_tab+2,y sta _sz lda win_tab+3,y sta _dl jsr openw rts*- - uaktwnia daneO} okno*- - aby np. napisac text etc.*- - NIE SPRAWDZA, czy dane okno*- - (numer) jest widoczne (lub w ogole P}pokazane).*- - Bo i po co ?*- - Kazdy chyba wie co robi :). To nie pC.skip asl @ asl @ tay lda win_tab,y stQ}a _wx lda win_tab+1,y sta _wy lda win_tab+2,y sta _sz lda win_tab+3,y sta _dl rtsЮͯڠˠwin_R}tab equ **- Odpowiednio :*- _wx,_wy - wspolrzedne*- _sz,_dl - szerokosc,dlugosc DIRECTORY_P ; nr A=0 dta b(19),S}b(1) _wx,_wy dta b(19),b(21) _sz,_dl DIRECTORY_L ; A=1 itd. dta b(0),b(1) dta b(19),b(21) MEDIUM_G dta b(0),T}b(0) dta b(15),b(5) MEDIUM_S dta b(0),b(7) dta b(15),b(5) MALE_D dta b(0),b(14) dta b(15),b(3)ŠˆU}򠠠ؼپname stx _pom sty _pom+1 jsr skip jsr ini_ekr ldy #0 sV}ty zeronam0 lda (_pom),y cmp _txend beq nam1 iny jmp nam0nam1 sty zero+1 lda _sz sec sbc zero+1 bpl naok lda #0 W}sta _ppp jmp nam2naok lsr @ sta _pppnam2 clc lda _ppp adc _wx sta _ppp inc _ppp ldx _wy beq nam3_nam jsr zwek deX}x bne _namnam3 ldy zero lda (_pom),y ldy _ppp sta (ekr),y inc _ppp inc zero dec zero+1 bne nam3 rtsڠ؆Y}ԠŠϠwri_l stx _skad+1 sty _skad+2 jsr ini_ekr jsr spr_inv clc lda _wx aZ}dc _sz sta _pom inc _pom ldx _wy inx_posz jsr zwek dex bne _posz lda _dl s[}ta _pom+1 ldy _wx iny ldx #0mawr ldy _wx iny_skad lda $ffff,x cmp _txend beq ewrio\} cmp _eol beq _nxtlin ora eor sta (ekr),y iny cpy _pom bcs _nxtlin inx b]}ne _skad inc _skad+2 jmp _skad_nxtlin dec _pom+1 lda _pom+1 beq ewrio jsr zwek inx ^} bne mawr inc _skad+2 jmp mawrewrio jmp knp_zwie clc lda _skad+1 adc #size sta _skad+1 _} bcc *+5 inc _skad+2 rtsӠΠ򠠠쭠`}⠠歠clr jsr ini_buf ldx #3 lda #0 tay_cl sta (_pom),y iny bne _ca}l inc _pom+1 dex bpl _cl rtsclrb jsr ini_buf ldx #3_clb lda (_pom),y sta (zero),y lda #0 sta (_pom),y iny bne _cb}l inc _pom+1 inc zero+1 dex bpl _clb rtsclrall jsr ini_buf ldx #3 lda #0 tay_cla sta (_pom),y sta (zero),y iny c}bne _cla inc _pom+1 inc zero+1 dex bpl _cla rtsclrbuf jsr ini_buf ldx #3 lda #0 tay_clF sta (zero),y iny bne _cld}f inc zero+1 dex bpl _clf rtsպҼΠchange jsr ini_buf ldx #3chng lda (zero),y pha lda e}(_pom),y sta (zero),y pla sta (_pom),y iny bne chng inc _pom+1 inc zero+1 dex bpl chng f} rtsini_buf lda adde sta _pom+1 lda buf+1 sta zero+1 g} ldy #0 rtsŠЮkey lda #$ff sta 764_key ldy 764 iny beq _key dey lda stat and %00000001 beq cichh}0 jmp soundsound ldx #$40sou stx $d01f lda $d40bsyn cmp $d40b beq syn dex dex dex dex dex dex bpl soucich0 rtsi}Πנ* _wx = poz.x ; lewego, gornego rogu* _wy = poz.y* _sz = szerokosc okna* _dl = dlugosc okna*j} jesli bit 7 etykiety 'stat' jest zapalony* - wtedy okno zostanie wyswietlone w inversieopenw jsr ini_ekr jsr spr_k}inv jsr _spr ; sprawdz, czy parametry sa ok. lda _dl sta _dl+1 ; zapamietanie parametrow lda _wy l} ; (potrzebne pozniej) sta _wy+1 lda _wx sta _wx+1 lda _sz sta _sz+1_o0 lda _wy beq om}w0 jsr zwek dec _wy jmp _o0ow0 lda kgl ; - najpierw stawiamy '' sta _mod1+2 ; potem '| |' , a na koncu '' lda kcg ; petle, bez niepotrzebnego sta _mod2+2 ; "smarowania" kodem. lda p}kgp sta _mod3+2_okn ldy _wx_mod1 lda kgl ora eor sta (ekr),y iq}ny ldx _sz_mod2 lda kcgow1 ora eor ; ewentualny invers sta ($80),y iny dex bne ow1_modr}3 lda kgp ora eor sta ($80),y lda kcl ; podmienia w s}procce sta _mod1+2 ; '' na '| |'. lda pus sta _mod2+2 lda kcp sta _mod3+2 jsr zwek dec _dl bpl _okn lda kdl sta _mod1+2 lda kcd sta _mod2+2 v} lda kdp sta _mod3+2 lda _dl cmp #$ff beq _okn lda _dl+1 ; w}'odzyskanie' parametrow sta _dl lda _sz+1 sta _sz lda _wx+1 sta _wx lda _wy+1 sta _x}wy_nie1 jmp knpknp lda #0 sta eor rtsspr_inv lda stat and #128 beq oop lda #128 sta eoroop y} rts*---------------- to mozna (po ukonczeniu proga) wyjebac...*---------------- sprawdza, czy wymiary okna sa ok.*-- Przz}y wyrzucaniu - wymaz skok w OPENW !!!* TU WCISNIJ ^Kb_bad jmp _oerr_spr l{}da #1 ; sprawdza parametry (x,y itd.) sta _pom ; To /_spr/ mozna wyrzucic (wraz ze skokiem lda _sz ; tutaj |}w glownej 'openw'). cmp #1 ; bcc _bad ; cmp #size-1 bcs _bad lda #2 sta _pom l}}da _dl cmp #1 bcc _bad cmp #line-1 bcs _bad lda #3 sta _pom lda _wx cmp #size~}-1 bcs _bad bpl _bad lda #4 sta _pom lda _wy cmp #line-1 bcs _bad bpl _bad } lda #5 sta _pom clc lda _sz adc _wx cmp #size-1 bcc _okx jmp _bad_okx lda #6} sta _pom clc lda _dl adc _wy cmp #line-1 bcc _oky jmp _bad_oky rts_oerr ldy #0 } ; error - parametry_bd0 lda (ekr),y sta _bufl,y lda _txt1,y sta (ekr),y iny cpy #40 } bne _bd0 lda _wx ldy #20 jsr _phx lda _wy ldy #25 jsr _phx lda _sz ldy #31 } jsr _phx lda _dl ldy #37 jsr _phx lda _pom cmp #1 bne _b1 ldy #31 jmp _p}ods1_b1 cmp #2 bne _b2 ldy #37 jmp _pods1_b2 cmp #3 bne _b3 ldy #20 jmp _pods1_b3 } cmp #4 bne _b4 ldy #25 jmp _pods1_b4 cmp #5 bne _b5 lda #20 sta _dl ; uzyte _dl i _s}z, lda #31 ; aby nie tworzyc nowych sta _sz ; zmiennych jmp _pods2_b5 lda #25 sta _dl lda #3}7 sta _sz jmp _pods2_pods1 lda (ekr),y eor #128 sta (ekr),y dey lda (ekr),y e}or #128 sta (ekr),y jsr _pauze iny jmp _pods1_pods2 ldy _dl lda (ekr),y eor #128 } sta (ekr),y dey lda (ekr),y eor #128 sta (ekr),y ldy _sz lda (ekr),y e}or #128 sta (ekr),y dey lda (ekr),y eor #128 sta (ekr),y jsr _pauze jmp _pod}s2*-- tu ^Kk i wypieprzaj to :)...*--------- ponizsze juz potrzebne...Šڠ}ᠠԠ렠_pauze ldx #20_pa0 jsr cz dex bne _pa0 rts_wait jsr cz dex } bne _pa0 rtscz lda 20 cmp 20 beq *-2 rts*---zwek clc lda ekr adc #size sta ekr bcc *+4 inc ekr+1 rts}zmiek sec lda ekr sbc #size sta ekr bcs *+4 dec ekr+1 rtsԠέآ ; na razie tylko init ekranu;potrzebn}eini_ekr lda adde sta ekr+1 rts* --------------- DANE_dl dta b(0),b(0) ; dlu}gosc okna_sz dta b(0),b(0) ; sherokosc_wx dta b(0),b(0) ; wspolrzedne_wy dta b(0),b(0) ; lewego,gornego rogueor dta b(0)}*- dwie ponizsze dla sprawdzania parametrow.*- JAK WYWALISZ - SKASUJ I TO_bufl dta d' } '_txt1 dta d' Zle parametry - X: Y: SZ: DL: '*--- * wyglad okna (DOWOLNA KAZDA KRAWE}DZ)* W kolenym WIN-X bedzie full przykladowych okien* mozna-etc. fragment* jak w QAkgl dta d'' }'' gora/lewykgp dta d'' '' gora/prawykdl dta d'' '' dol /lewykdp dta d'' '' dol /pra}wykcg dta d'' ' ' cent/gorakcd dta d'' '' cent/dolkcl dta d'|' '' cent/lewykcp dta d'|' '' } cent/prawypus dta d' ' ' ' spacja_txend dta d'' ; znak konca textu (tez dowolny)_eol dta d'@' ; znak EO}L'a* stat - opis poszczegolnych bitow.* %00000001 - key sound on/off* %10000000 - okno w inversie (skasowany = normalnie})_phx pha ; liczba hex na ekran jsr _pxdig pla lsr @ lsr @ lsr @ lsr @_pxdig and #%00001111 ora #'0' cmp #'9'+1}* Tutaj macie wszystkie procki.* Te "nowe" do dir (laduje katalog do bufora; maska dowolna)* oraz sh_dir (pokazuje katalog }w oknie; z autoformatowaniem!) opt 21 org $a000size equ 40line equ 24adde equ $bc40buf equ $b800d_buf equ $}b400ekr equ $80 ; $81zero equ $82 ; $83_pom equ $84 ,85 wstat equ $254_ppp equ $f0* Register:* okno,skip,name,wri_}l* clr,clrall,clrb,clrbuf,copy* change,key,openw,cnv* _pauze,cz,_wait* menu* dir,sh_dir* komorka 'stat' > bity (zapalic}):* 7 - inverse on, 0 - sounds/keymain lda #%00000001 (sound on) sta stat jsr clr lda #0 jsr okno ldx na1} jsr name jsr dir ; sprawdzac ilosc plikow -> cyfra 0 lub 1 jsr sh_dir jsr files rtsna1 dta d'Ǡ'*---------}---------------------------*-- tu juz same procedury...*-- powyzsze sobie wyjeb...files jsr menu rtsdir jsr open jsr} _dir jsr close jsr zm lda d_buf sta did+1 rtsdirec dta b(0)sh_dir lda _dl sta _dl+1 lda #0 }sta direc lda _txend pha lda _dend sta _txendshdr ldx did ldy did+1 jsr wri_l inc direc lda direc cmp #63 bcs full} clc lda did adc #18 sta did bcc *+5 inc did+1 dec _dl+1 bne shdrfull pla sta _txend rtszm ldy #0 ldx #3 lda <}d_buf sta zero lda >d_buf sta zero+1zz lda (zero),y jsr cnv sta (zero),y iny bne zz inc zero+1 dex bpl zz rtsdi}d dta a(d_buf)堧Чmenu jsr ini_ek}r lda #0 sta esc clc lda _wx adc _sz sta _pom inc _pom ldx _wy inx_wbb jsr zwek dex bne _wbb lda _dl sta _pom+1} dec _pom+1 jsr inwwbr jsr key cpy #28 beq es cpy #15 bne _wd lda wyby cmp _pom+1 bcs wbr jsr inw jsr zwek jsr i}nw inc wyby jmp wbr_wd cpy #14 bne _wr lda wyby beq wbr jsr inw jsr zmiek jsr inw dec wyby jmp wbr_wr cpy #12 bn}e wbr jsr inw ldy wyby iny rtses inc esc jsr inw rtsinw ldy _wx inywi lda (ekr),y eor #128 sta (ekr),y iny cpy }_pom bne wi rtswyby dta b(0)esc dta b(0)Ϡᠠᠭ}鮠ںokno asl @ asl @ tay lda win_tab,y sta _wx lda win_tab+1,y sta _wy lda win_t}ab+2,y sta _sz lda win_tab+3,y sta _dl jsr openw rtsР򠛛skip asl @ asl @ tay lda win_tab,y sta _wx lda} win_tab+1,y sta _wy lda win_tab+2,y sta _sz lda win_tab+3,y sta _dl rtsЮͯڠˠwin_tab equ *} DIRECTORY_P ; nr A=0 dta b(19),b(1) _wx,_wy dta b(19),b(21) _sz,_dl DIRECTORY_L ; A=1 itd. dta b(0),b(1)} dta b(19),b(21) MEDIUM_G dta b(0),b(0) dta b(15),b(5) MEDIUM_S dta b(0),b(7) dta b(15),b(5) MALE_D dta b(0),b(}14) dta b(15),b(3)Š򠠠ؼپname stx _pom sty _p}om+1 jsr skip jsr ini_ekr ldy #0 sty zeronam0 lda (_pom),y cmp _txend beq nam1 iny jmp nam0nam1 sty zero+1 lda _}sz sec sbc zero+1 bpl naok lda #0 sta _ppp jmp nam2naok lsr @ sta _pppnam2 clc lda _ppp adc _wx sta _ppp inc _p}pp ldx _wy beq nam3_nam jsr zwek dex bne _namnam3 ldy zero lda (_pom),y ldy _ppp sta (ekr),y inc _ppp inc zero d}ec zero+1 bne nam3 rtsڠԠŠϠwri_l stx _skad+1 sty _skad+2 jsr spr_inv clc lda _wx adc _s}z sta _pom inc _pom jsr ini_ekr lda _wy clc adc direc tax inx_posz jsr zwek dex bne _posz_yes lda _dl sta _pom+}1 ldx #0mawr ldy _wx iny_skad lda $ffff,x cmp _txend beq ewrio cmp _eol beq _nxtlin ora eor sta (ekr),y iny cpy _}pom bcs _nxtlin inx bne _skad inc _skad+2 jmp _skad_nxtlin dec _pom+1 lda _pom+1 beq ewrio jsr zwek inx bne mawr }inc _skad+2 jmp mawrewrio jmp knp_zwie clc lda _skad+1 adc #size sta _skad+1 bcc *+5 inc _skad+2 rtsӠΠ}򠠠쭠⠠歠抹}copy jsr ini_buf ldx #3_ccc lda (_pom),y sta (zero),y iny bne _ccc inc _pom+1 inc zero+1 dex bpl _ccc rtscl}r jsr ini_buf ldx #3 lda #0 tay_cl sta (_pom),y iny bne _cl inc _pom+1 dex bpl _cl rtsclrb jsr ini_buf ldx #3_c}lb lda (_pom),y sta (zero),y lda #0 sta (_pom),y iny bne _clb inc _pom+1 inc zero+1 dex bpl _clb rtsclrall jsr in}i_buf ldx #3 lda #0 tay_clf sta (_pom),y sta (zero),y iny bne _clf inc _pom+1 inc zero+1 dex bpl _clf rtsclrbuf} jsr ini_buf ldx #3 lda #0 tay_cla sta (zero),y iny bne _cla inc zero+1 dex bpl _cla rtsպҼΠ}change jsr ini_buf ldx #3chng lda (zero),y pha lda (_pom),y sta (zero),y pla sta (_pom),y iny bne chng inc _pom+1} inc zero+1 dex bpl chng rtsini_buf lda adde sta _pom+1 lda buf+1 sta zero}+1 ldy #0 rtsŠЮkey lda #$ff sta 764_key ldy 764 iny beq _key dey lda stat and %00000001 beq cich0}sound ldx #$40sou stx $d01f lda $d40bsyn cmp $d40b beq syn dex dex dex dex dex dex bpl soucich0 rtsΠ}נopenw jsr ini_ekr jsr spr_inv lda _dl sta _dl+1 lda _wy sta _wy+1 lda _wx sta _wx+1 lda _sz sta _sz+1_o}0 lda _wy beq ow0 jsr zwek dec _wy jmp _o0ow0 lda kgl sta _mod1+2 lda }kcg sta _mod2+2 lda kgp sta _mod3+2_okn ldy _wx_mod1 lda kgl ora eor sta (ekr),y iny ldx _sz}_mod2 lda kcgow1 ora eor sta ($80),y iny dex bne ow1_mod3 lda kgp ora eor sta ($80),y lda k}cl sta _mod1+2 lda pus sta _mod2+2 lda kcp sta _mod3+2 jsr zwek dec _d}l bpl _okn lda kdl sta _mod1+2 lda kcd sta _mod2+2 lda kdp sta _mod3+2 lda _dl cmp #$ff beq _okn lda _dl+1 sta _dl lda _sz+1 sta _sz lda _wx+1 sta _wx lda _wy+1} sta _wyknp lda #0 sta eor rtsspr_inv lda stat and #128 beq oop lda #128 sta eoroop rts}ŠڠᠠԠ렠_pauze ldx #20_pa0 jsr cz dex bne _pa0 rts_wait jsr cz dex} bne _pa0 rtscz lda 20 cmp 20 beq *-2 rtszwek clc lda ekr adc #size sta ekr bcc *+4 inc ekr+1 rtszmiek sec ld}a ekr sbc #size sta ekr bcs *+4 dec ekr+1 rtsԠέآini_ekr lda adde sta ekr+1 r}ts* --------------- DANE_dl dta b(0),b(0)_sz dta b(0),b(0)_wx dta b(0),b(0)_wy dta b(0),b(0)eor dta b(0)_dend dta d'}'*--- kgl dta d'' '' gora/lewykgp dta d'' '' gora/prawykdl dta d'' '' dol }/lewykdp dta d'' '' dol /prawykcg dta d'' ' ' cent/gorakcd dta d'' '' cent/dolkcl dta d'|' } @'' cent/lewykcp dta d'|' '' cent/prawypus dta d' ' ' ' spacja_txend dta d'' ; znak konca textu}_eol dta d'@' ; znak EOL'a_phx pha ; liczba hex na ekran jsr _pxdig pla lsr @ lsr @ lsr @ lsr @_pxdig and #%0000}1111 ora #'0' cmp #'9'+1 bcc *+4 adc #6 jsr cnv sta (ekr),Y dey rtscnv cmp #32 bcs cv0 clc adc #64 rtscv0 cmp }#96 bcs cv1 sec sbc #32cv1 rts*----- I/Oopen ldx #$10 lda #$3 sta $342,x lda maska sta $345,x lda #6 sta $34a,x lda #0 sta $34b,x jmp $e456_dir ldx #$10 lda #} bcc *+4 adc #6 jsr cnv sta (ekr),Y dey rtscnv cmp #32 ; cnv asc/int ; vel "po mojemu", tj.moj cnv bcs cv0 ; widzi}alem raz troche inny... clc ; ale ten jest krotszy i dziala :). adc #64 rtscv0 cmp #96 bcs cv1 sec sbc #32cv1 }rtsaz troche inny... clc ; ale ten jest krotszy i dziala :). adc #64 rtscv0 cmp #96 bcs cv1 sec sbc #32cv1 $7 sta $342,x lda d_buf sta $345,x lda #0 sta $348,x lda #8 sta $3}49,x jmp $e456close ldx #$10 lda #$c sta $342,x jmp $e456maska dta c'D1:*.*'48,x lda #8 sta $3c Yo people!Tutaj znajduje sie taki mini opis,dotyczcy biblioteki WIN-X. PO CO ?Aby atwiej pisa} o si uytki i inneprogi. JAK uywa ?Przegldnij plik WINXO.ASM.Tam masz zawarte opisy poszcze-glnych podp}rocedur.Mona otwiera dowolne okna,wrzuca do nich text (program samgo sformatuje do wymiarw okienka!),nadawa okom na}zwy (wycentrowanie), adowa directory, tworzy "menu"i wiele (?) innych.Jest to dopiero wersja 1.2(1.0 mia tylk0 pan Mar}yjan :).W kolejnych postaram si usprawniniektre rzeczy, dokoczy I/Ooraz doda kila nowoci (w tymobs ug myszki).Ok}na mona otwiera na dwch ekranach- drugi to bufor.Porada:Jeli chcesz to uywa (polecam:),spisz sobie na kartk nazwy}procedur oraz sposb ich wywo ywania.Wtedy napewn0 spodoba Ci si to.Smart Player 2.0 bdzie wykorystywa WIN-Xa w anie. }A wic ?Nigdzie NIE MUSISZ pisa o mnie(itd.) w creditsach (free wybr:).Biblia ta ma pomc (czyt.u atwi!)pisanie progw}. Mam nadziej,e w jakim stopniu to zrealizuje.ING 2 bdzie pisany pod WIN-Xem.WZ#2 te.Do kolejnej wersji WIN-X'a do}damopis poszczeglnyc procedur itd.na PAPIERZE! Wygoda (dla Was)rulez... Solo/New Generation.PS. Sorr}y za lakoniczny :)))) opis, ale po przegldniciu ASM'a z opisem (WINXO.ASM) powinnicie wiedzie m/w :) "co i jak".} Macie te tam przyk adzik wykorzystania. W razie jaki problemw - piszta: Solo/New Generation } Jaros aw Padula os.Rane 29b/8 58-200 DZIERONIW (0-74) 31-79-66 email: solong@p}olbox.com Napewno opisz. Delayowanie si ju skoczy o (jeszcze raz sorry 4 all!).-79-66 email: solong@p`* Fast draw by Roland,Solo* tryb: GR.9* Najpierw (jednorazowo) skocz* do INIT.* do x1,y1 - pocz. wspolrzedne* do x2,y2} - docel. wspolrzedne opt 21 org $9000size equ 32 ; sher. ekranux1 equ $80y1 equ $81x2 equ $82y2 equ $8}3dx equ $84dy equ $85nx equ $86ny equ $87ax equ $88ay equ $89blad equ $8akrok equ $8cadr equ $8dscreen equ $}b000tabys equ $480 ;128 bajtowtabym equ $500 ;128 bajtow*-------init lda >screen ; makey sta pom sta tabys clc lda} #$0 sta tabym ldy #1_y clc adc #size sta tabym,y tax bcc _y22 inc pom lda pom sta tabys,y clc_y22 lda pom sta }tabys,y txa iny bpl _y rtspom dta b(0)draw ldx #1 stx dx stx dy dex stx ax stx ay stx blad+1 stx adr+1 lda x2} cmp x1 bcs jmp0 ldy x1 sty x2 sta x1 lda y1 ldy y2 sty y1 sta y2 lda x2 secjmp0 sbc x1 sta nx sta krok lda y2} cmp y1 bcs jmp1 lda y1 sec sbc y2 sta ny ldy #255 sty dy bmi jmp2jmp1 sbc y1 sta nyjmp2 lda nx cmp ny bcs jmp3} ldy ny sty nx sty krok sta ny lda dy sta ax stx dx stx dy inx stx ayjmp3 lda y1 tya pha ldy y1 lda tabym,y }sta adr lda tabys,y sta adr+1 pla tay lda nx lsr @ sta blad inc krok lda dx bne rozw lda ax bmi aaa1 jmp aaa4ro}zw lda dy bmi aaa2 bpl aaa3aaa1 jsr putp sec lda adr sbc #size sta adr bcs *+4 dec adr+1 lda blad clc adc ny sta} blad bcc nc11 inc blad+1 clcnc11 lda blad+1 bmi ok1 bne mn1 lda nx cmp blad bcs ok1mn1 inc x1 sec lda blad sbc} nx sta blad bcs ok1 dec blad+1ok1 dec krok bne aaa1 rtsaaa2 jsr putp inc x1 clc lda blad adc ny sta blad bcc nc}12 inc blad+1nc12 lda blad+1 bmi ok2 bne mn2 lda nx cmp blad bcs ok2mn2 sec lda adr sbc #size sta adr bcs *+5 d}ec adr+1 sec lda blad sbc nx sta blad bcs ok2 dec blad+1ok2 dec krok bne aaa2 rtsaaa3 jsr putpacc clc inc x1 lda} blad adc ny sta blad bcc nc13 inc blad+1 clcnc13 lda blad+1 bmi ok3 bne mn3 lda nx cmp blad bcs ok3mn3 lda adr }adc #size sta adr bcc *+4 inc adr+1 sec lda blad sbc nx sta blad bcs ok3 dec blad+1ok3 dec krok bne aaa3 rtsaaa4} jsr putp clc lda adr adc #size sta adr bcc *+5 inc adr+1 clc lda blad adc ny sta blad bcc nc14 inc blad+1nc14 l}da blad+1 bmi ok4 bne mn4 lda nx cmp blad bcs ok4mn4 inc x1 sec lda blad sbc nx sta blad bcs ok4 dec blad+1ok4 d}ec krok bne aaa4 rtsputp lda x1 lsr @ tay bcc caaa1 lda (adr),y ora #15 sta (adr),y rtscaaa1 lda (adr),y ora #240} sta (adr),y rtsputp lda x1 lsr @ tay bcc caaa1 lda (adr),y ora #15 sta (adr),y rtscaaa1 lda (adr),y ora #240Procka do rysowania linii wGR.9. Dowolne (np. wektory)wykorystanie (patrz 'Z').Moze przyda sie komus kto ma wielepomysl}ow, a nie posiada draw procki.ETC.olne (np. wektory)wykorystanie (patrz 'Z').Moze przyda sie komus kto ma wielepomysl&key lda #$ff sta 764_key ldy 764 iny beq _key jmp soundsound ldx #$40sou stx $d01f lda $d40bsyn cmp $d40b beq syn} dex dex dex dex dex dex bpl sou rts _key jmp soundsound ldx #$40sou stx $d01f lda $d40bsyn cmp $d40b beq syn,Procka KEY + Sound.Freeware:). sou rts _key jmp soundsound ldx #$40sou stx $d01f lda $d40bsyn cmp $d40b beq syn"* * teraz jest ok...* v1.1, bez bleduff...* Tworzy kod, skladajacy sie z* sta ekr* sta ekr+1* }sta ekr+2* ...* sta ekr+xxxx* rts* Najszybsze z mozliwych kasowanie ekranu.* Mozna dowolnie ustawiac okno do mazania* }(od calego ekranu, po kilka bajtow).* Ilosc bajtow potrzebnych na stworzenie "FASTCLS",* z uwzglednieniem parametrow (size} itp.) uzyskasz,* wykonujac skok do _ILE (jsr _ILE).* Wynik w komorkach $fc,$fd - ilosc bajtow* oraz $fe,$ff - ostatni baj}t kodu - wedlug* adresu podanym w etykiecie proc.*------------------------------------ opt 21 org $8800 j}mp start* Kokejne bajty, od CLS+3:* Mozna zmienic i wykonac ponowny skok* tutaj (tak robilem w "Z").line dta b(90) / il }osc linii "okna"xmin dta b(00) / min.pozycja x "okna"xmax dta b(31) / max.pozycja x "okna"size dta b(32) / sher.ekranu - w }azne !* (peek 559)ekr dta a($a000) / adres ekranuproc dta a($2000) / adres powstalej procki "FASTCLS".ӯ }: do _ile lub mkclstart jsr _ile - patrz w/w text. rts* lub jsr mkcl ; ten skok tworzy fastcls.mkcl lda pro }c sta $90 lda proc+1 sta $91 lda line sta use lda xmin sta use+1 lda xmin sta u }se+2 lda ekr+1 sta $93 lda ekr sta $92 clc adc xmin sta $92 bcc *+4 inc $93 } ldy #0lin lda $92 sta _ad lda $93 sta _ad+1 lda xmax sec sbc xmin sta use+3 inc }use+3_lin lda #$8d jsr wst lda $92 jsr wst lda $93 jsr wst inc $92 bne *+4 inc $93} dec use+3 bne _lin lda _ad sta $92 lda _ad+1 sta $93 clc lda $92 adc size s}ta $92 bcc *+4 inc $93 dec use bne lin lda #96 jsr wst rtswst sta ($90),y iny } bne _wst inc $91_wst rts*----- procka _ILE_ile lda proc sta $90 lda proc+1 sta $91 lda #0 } sta $fc sta $fd lda proc sta $fe lda proc+1 sta $ff lda line sta use lda xmin }Podprocka MKCLS.ASM stworzy...podprocke (kod wynikowy)"KASOWANIE EKRANU":STA EKRSTA EKR+1STA EKR+2STA EKR+xxxUzywan}ie (dopalanie:) wskazane! :))done by solo/ngynikowy)"KASOWANIE EKRANU":STA EKRSTA EKR+1STA EKR+2STA EKR+xxxUzywan0 lda #$07 ldy vb jsr $e45cvb ... tutaj dowolny kod jmp $e462c #$40 nInicjacja przerwania VBLANK (dlugie).Moze ktos zapomnial ? :) $e45cvb ... tutaj dowolny kod jmp $e462c #$40 @ sta use+1 lda xmin sta use+2 lda ekr+1 sta $93 lda ekr sta $92 clc adc xmin st}a $92 bcc *+4 inc $93 ldy #0_il0 lda $92 sta _ad lda $93 sta _ad+1 lda xmax sec } sbc xmin sta use+3 inc use+3_il1 jsr ill jsr ill jsr ill inc $92 bne *+4 inc $93 }dec use+3 bne _il1 lda _ad sta $92 lda _ad+1 sta $93 clc lda $92 adc size sta $9}2 bcc *+4 inc $93 dec use bne _il0 lda #96 jsr ill rtsill inc $fc bne *+4 inc} $fd inc $fe bne *+4 inc $ff rtsuse dta b(0),b(0),b(0),b(0)_ad dta a(0)c bne *+4 incf* v1.1 by Solo...* Tworzy dliste jedno lub dwu ekranowa.* '* Na samym poczatku procki }jest skok* do "makera".* Dalsze bajty to:* mkdl+3,4 - adres dlisty* mkdl+5,6 - adres ekranu 1* mkdl+7,8 - adres ekranu }2* mkdl+9 - sher.ekranu (32/40 bajtow)* mkdl+10 - ilosc linii (obu ekranow)* mkdl+11 - tryb antica dla ekr1* mkdl+12!} - tryb antica dla ekr2* mkdl+13 - ilosc powtarzajacych sie linii* - dla ekr1. Np. dasz 2 - uzyskasz dwa razy*"} - szerszy pion (chunky pixel :-).* mkdl+14 - to samo dla ekr2* mkdl+15 - dla ekr1; ile wstawic pustych linii*#} - od gornej ramki* mkdl+16 - j/w dla ekr2* Dzieki tej procce moglem bardzo szybko* zrobic intro Z. Dla mnie je$}st ql. opt %100101 ; na dysk org $4180 ; hm...*----- Ǡ jmp mkdl2adrdl dta a($5c00) ; adres %}dlistyekr1 dta a($a000) ; -||- ekranu 1ekr2 dta a($b000) ; -||- ekranu 2size dta b(32) ; sherokosc ekranu (40/32 ba&}jty)lenght dta b(90) ; (*2, bo po 90 na kazdy ekran)tryb1 dta b($f) ; tryb antica (dowolny)tryb2 dta b($f) ; a tu '}dla ekranu 2dub1 dta b(1) ; dublowanie linii,ekr1dub2 dta b(1) ; -||-,ekr2pus1 dta b(20) ; odstep od gornej (}ramki,ekr1pus2 dta b(100) ; -||-,ekr2mkdl2 lda ekr1 sta $80 lda ekr1+1 sta $81 lda ekr2 sta $)}82 lda ekr2+1 sta $83 lda adrdl sta $84 lda adrdl+1 sta $85 ldy #0 ; odstep od gornej r*}amki lda #$70 jsr line lda lenght sta use clc lda tryb1 adc #$40 sta use+1 lda +}tryb2 adc #$40 sta use+2 lda dub1 sta _dub lda dub2 sta _dub+1 lda pus1 sta puz1 ,} lda pus2 sta puz2_glw lda use+1 jsr line lda puz1 beq ok1 lda pus -} jsr line jmp _p1ok1 lda $80 jsr line lda $81 jsr line_p1 lda use+2 jsr line lda puz2.} beq ok2 lda pus jsr line jmp _p2ok2 lda $82 jsr line lda $83 /} jsr line*---_p2 lda puz1 beq _q1 dec puz1_q1 lda puz2 beq _q2 dec puz2_q2 dec _dub bne 0}_nie1 lda dub1 sta _dub lda puz1 bne _nie1 clc lda $80 adc size sta $80 bcc *+41} inc $81_nie1 dec _dub+1 bne _nie2 lda dub2 sta _dub+1 lda puz2 bne _nie2 clc lda $822} adc size sta $82 bcc *+4 inc $83_nie2 dec use beq wio jmp _glwwio lda #$41 jsr line 3} lda adrdl jsr line lda adrdl+1 jsr line lda adrdl sta $230 lda adrdl+1 sta $231 4}rtsline sta ($84),y iny bne _rts inc $85_rts rtsuse dta b(0),b(0),b(0)_dub dta b(0),b(0)puz1 dta b(0)p5}uz2 dta b(0)pus dta d' 'dta b(0),b(0),b(0)_dub dta b(0),b(0)puz1 dta b(0)pHProcka do robienia dowolnej(preferowana: duble) dlisty.Mozna trzymac w RAMie makerai odwolywac sie kiedy siechce. Przyda7}tne przy robieniudlisty np. z "przezroczystscia"(patrz 'Z').trzymac w RAMie makerai odwolywac sie kiedy siechce. Przyda@Te pliki mia y by spakowanedisk communicatorem. Std wszdzieodnoniki do tego wyglda y m/w tak:zobacz ASM.DC3 itd.Al9}e wszystko jest rozpakowane (taklepiej).atorem. Std wszdzieodnoniki do tego wyglda y m/w tak:zobacz ASM.DC3 itd.Al+`x` `ɜ;H/`TD`EHI B V-U`` /`i% `l Quick Assembler 1.0 by JBWNo room;}!`4_cL9eLfL/mLMi*LkzWhL^VLjvm v pp m QgL$e ~ 2[rr``jDj@ ʥ<}ː``$`^>` rGo ep ` Dd fhrL} Op OI e nq7p? e v oo +hL}eq vGyq` PL9eLVʠ?}Lo}hr$P` @ ^f f͉ L!f% Qa{I PЎ \` ?i(j`…Å@}&u•^` fXqqhqoq`@q` `Zr3k gHHohrdZljjmBhNozhPg$v'v*v-vh2h:ha$jjlmml;e9e q`R}pqoroqeuppppp>q[qX/oZ2prpnpp poMSANRPJBO.6 "$):#&ile%dit2 un!ssembly3et,)/eS}rr&or<"uofmذD.oom7ip\al|lEEFfi9ed\av#ontinueỢexist`s2eplaJc!b"t, &  D0:QA.ST}ETNONAMEߛpDpDPpDqD*.*Pq98!&300+*-=~0,oad<3ave.ew$iBr0rn/bj1ui@t7smod2uU}-emhi__setuBp1asm4"F_Lwd@` `_A%UpBA```do;pruLvL?wL!U`IGUV}09|U wH hJ7) i`(e敠H Vhe8ѰƑk(v땐SNn8` W} `XY,?LIv[褙 v< I@Re擓䛐`wjLH Svh v^`cX}PN]v0ψ1 wĆƗ@L8e}ȄLuvO w tdvrwI`Ł* w䖐論 dLF0`װh楀ⱔY}Hkj0qLwIh`FMGVBGNFvw xw v%uzȀȄĢ Z}) ©Via~RȕjA0r +y$;iؠ 7{w<bNd _LqxŤ[}I0@ 'd&pH @$ zLIxsi vBBL ʈL`a{E`eH橩H ʥ˰+\}`B䃝DEAHI&dLy) "Hci ɛ!Ͱ` , :z:$@<>    y`0P{]}zo0  XYNԩ$\lƢ0'0 @ z0 *ýIB`0!׃ ,{  A`^}5dj0ƥ bLFQFs z80 e `  $P  e`$p&` _}z`Lĥje*eŅ`0 p2G A:8_[`H @{hJ) i`)ƧH$P`} |@[@!" 8 ĥ7ȱɛ dįI(!"&`! m惀ipAra}H)n$ O{`0@  $dLxy |0} # .0ĵ0 $Į`i b})Shi @. d毥`@vĥ v%Ĉ摔` @ϼ`Ɔ$pL}}@˰*zc}L }ƁP#)cEW@< Ș $d xy] BHI, d0ь |Ču} 00  d}Ȅ7{櫦` y `28 Jfe٠}I"Q@)ٶ(Ķ@$P ȀD`iL߀"8e}KЭЩ P8.@$ `荨{L Lz GG@@Lzt@n} *d $dxy;`i hh$`)PI@) !)pJ)z { |8 `{0D9wo}o* @z\?#L$ d榉/]\$ 恟ꂦ'B#omple@te&ailur eeuiaqm}y%5)!1-=9 $,0PpXp}ʈEUIAQM]YLl JFVN^  Hh(*&6.>jfvn~@`8xjABq}CDEIJJLNOPRPSTDNSɔMNVV4LMTQX%CNMSgSHHlrBSXXY&LCSQTIELbK IVPCADRUT̾ARPGAGPLRI#r}|A !"#$,/2678@DEFHIQV[`aij?klmrwxyx,$7$ P4, s}vP w`6cCC?it}ii9BG0i }KdQ`^}RRpߕRL J #"@ 0ass,ineu}9D0:xփÕ)-LL-v'ȭ(ɩ8``d d` {L0(e`Hhui8v}H dh (  Ȅ)* bhJ) 0`n 詛ȢȠʩ Jʠ 6 h` |w}q d d0 dLۈ)?<#' " `I0 (Q`@ 4L0dɛ@x} L? JHH  h?fY8e>`6`8墨壪. eƅʥeDžˬ`ޥ¥ å>y}< ÅƀÅX[$00mmߥ>8YjYҭ"`Э`exN ‘` -dl İz}ץ`لڢȠ 6 YȘFLLܯąŪ¥ÐĤ`0>ɛŢO٦ܽ"ڽ{}ݠ? ݰٙ閈 %&􈺩@`?@ 詛/8eمi8 CT SEGG& Ƚɐ|}eƿeǹ޹و`Bх҅Ѕ܅ˠɛ Lʠ 6 J i!8٥|ڥ Y$FL}}˰"읧8ӖeLDTRɐɦ뽦Ƚ`ɰ 8`}ҖvTi3D-w*wwvz~}`"Tȭ"UUT,ʽttt;ɛ8 e4 ܘI`*Z - W*L8Q}bO` j}@ (`hhL$o $bab'c&`%` ?qؔ8`k v ܥsLƼ=H990h߀} |HH)J` hh`8ʪ%,Q,`0T:`ʽW ` 8Y9& XѤȩ ] @ ߁}XQm J)Ȅ!L:‹ 炢]Ě 8܅¥zSӥŦ ߂}Ӗ ܥ;L)e:ǩ BV0v 0 0~߃}H ?i(j%E$pFƐ ǐʆ% ĴEĚ :L`,`EЄ'( = - 8߄}t ְ քȅ 6LTA[a{0M`M`6?D! ( Ѓ?H閝hɛ -А ߅} &L ڈ@,`0 [  L ޽ @ۈl 6 -L !Ƞڈ ʥˢ ܥѐ߆}ц b?Ԡї `|dӅ `Lv d0EʝD˝E8HI d%…΅҅e@̘e L ߇}^L'd 8OO :I3IHI8IHL -֦פ 6ӦԤ@L`Ӡ ԑР@hhL$&` $~ ! ߈}"#1ݐ@ 9ei_嬪奰Ƥe楰eјP㠅 ۡ  󤨦 ʠ߉} \ɛ !إb姐L‹ 8 ǭР ԑƭ =iee$0/8B¥ ĊHׄطߊ}ԄL/;Ѕۅ`$ - & t`? ,` ZŒ1L6=leӅօ 0 ?:et@iߋ} J ‹(ӥD֥`Щꖝ> Ӱ o` 6 3 TdLġ?8 ߌ}"װ* L‹M``H@ hcbƏL I`Е0@0 d*>)`KQ 8 DÍ+NH |h*bߍ}٦޽| l P ```Ъ)Jv8j]`` 00$P -Ѡ 6pݐݰ)ɛ#ߎ}:@)a{I ݀8eمِʥˠ $LH = "6hLv`L  | 4)*` UTtߏ}?@󔰔$X%@t֍.@͒3+ &ree,o)ns1in#ol/vr,5opߐ}  ~ bkhdrwycvrcyXf:i)Iiԍ8ԝL՝M؅ֽ؅&ߑ}e\eM׊NM Dнv$u{ 8df\b`~%ґ 7 @`) T) M Aߒ}׈  /. LH!MnhLשN8988L/L`i(`W_8 _*ߓ} _* _J _ __4__`L_`i(`W_8 _*:A_ __4__`L_`~%ґ 7 @`) T) M A׈QA - spakowany oraz bez niektrych errorw w I/O.`~%ґ 7 @`) T) M A׈9   @@ @u@@@@@ @  @ @  @@  @w@ e }@@ } } @@ @