home *** CD-ROM | disk | FTP | other *** search
/ Kocie Flaki / Kocie_Flaki_1_19xx_NG_pl_Disk_3_of_3_Side_A.atr / xlpcut.asm < prev    next >
Assembly Source File  |  2023-02-26  |  11KB  |  1 lines

  1. *------------------*¢*  XLP 1.5 cutter! *¢*   4 KFlaczki #1  *¢*                  *¢*sorry 4 lame code!*¢*------------------*¢¢bmp_a equ $70b0 ;bitmap #1¢bmp_b equ $90b0 ;bitmap #2¢buf   equ $2000 ;bufor na dane¢mejn  equ $6000 ;let's go!¢¢iocb  equ $340¢cio   equ $e456¢reset equ $e474 ;cieply start :)¢¢dliv  equ $200¢dlv   equ $230¢nmien equ $d40e¢gtia  equ $22f¢consol equ $d01f¢¢*---¢ opt %100101¢ org mejn¢¢ lda #0         ;wyzeruj liczniki¢ tax            ;i inne badziewia¢del0 sta komorki,x¢ inx¢ cpx #7¢ bne del0¢¢ jsr tpc0       ;inwersja I-wszej¢*               ;opcji¢¢ lda <dl        ;nowy dl¢ ldy >dl¢ sta dlv¢ sty dlv+1¢¢* inicjuj komorki¢ lda #11¢ sta 709        ;kolor liter¢ sta add_+1¢¢ lda #7¢ sta 729        ;predkosc key'ow¢ sta x7+1¢ lda #2¢ sta 730¢¢ lda #0¢ sta 710        ;kolor tla¢ sta 755¢ sta 65         ;cicha transmisja¢¢ jsr prc        ;init dli¢¢*---¢back equ *¢ lda <txt+40    ;listwa z nazwami¢ ldy >txt+40    ;4matow¢ jsr pish¢¢petla equ *     ;czekaj na key¢ jsr key2¢¢ cmp #7         ;czy ''?¢ beq prawo¢¢ cmp #6         ;czy ''?¢ beq lewo¢¢ cmp #12        ;czy return?¢ beq odbior¢¢ cmp #$5c       ;czy shift+esc?¢ beq exit¢¢petl2 equ *¢ jsr klick      ;klick, i skok na¢ bne petla [jmp];poczatek petli¢¢*---¢exit jmp reset  ;shybkie wyjscie :)¢¢*---¢prawo equ *     ;kursor :) w prawo¢ lda liczto¢ cmp #2         ;czy kursor jest przy INP?¢ beq petl2      ;jesli tak, to go nie¢*               ;przesuwaj w prawo,¢ inc liczto     ;tylko wracaj do petli¢¢ jsr tpc0       ;kasuj aktualne¢*               ;podswietlenie¢ lda add_+1¢ clc            ;kursor o 9 znakow¢ adc #9         ;w prawo¢ sta add_+1¢¢ jsr tpc0       ;podswietl kolejna¢*               ;opcje¢¢ bne petl2 [jmp]¢*---¢lewo equ *      ;kursor w lewo¢¢ lda liczto     ;czy qrsor jest¢ beq petl2      ;przy pierwszej opcji?¢ dec liczto     ;jesli tak, to nie¢*               ;przesuwaj go w lewo,¢*               ;tylko wracaj do petli¢¢ jsr tpc0       ;kasuj aktualne¢*               ;podswietlenie¢¢ lda add_+1¢ sec            ;qrsor o 9 znakow w¢ sbc #9         ;lewo¢ sta add_+1¢¢ jsr tpc0       ;podswietl¢ bne petl2 [jmp]¢*---¢bak equ *¢ lda #255¢ sta 764¢ bne back¢*---¢¢odbior equ *¢ lda <dat       ;ten kawalek¢ ldy >dat       ;sprawdza, ktora¢ sta x0+1       ;opcja zostala¢ sty x0+2       ;wybrana¢¢ ldx liczto     ;a nastepnie¢ beq skip5      ;przepisuje¢¢nomic_ equ *    ;bitplane'y w rozny¢ lda x0+1       ;sposob [zalezy to¢ clc            ;ofcoz od formatu!]¢ adc #5¢ sta x0+1¢ dex¢ bne nomic_¢¢skip5 equ *¢¢ lda liczto¢ beq mic_w¢¢ cmp #1¢ beq ing_w¢ jsr inp        ;zmejxij format inp'a¢ beq skp [jmp]¢¢mic_w equ *¢ jsr mic        ;zmejxij format mic #1¢ dec flag¢ bne skp [jmp]¢¢ing_w equ *     ;zmejxij format ing¢ jsr ing¢¢skp equ *¢ lda <wpsh      ;wyswietl listwe gdzie¢ ldy >wpsh      ;bedzie sie pobierac¢ jsr pish       ;nazwe pliq¢¢ dec igr+1      ;zmniejsz pozycje¢ lda igr+1      ;qrsora¢ tay¢ ldx #0¢ beq tpc2 [jmp]¢¢*---¢ptl equ *¢ jsr key        ;czekaj na kij :)¢¢ cmp #$1c       ;jesli esc to wroc¢ beq bak        ;do menu glownego¢¢ cmp #12        ;jesli return to¢ beq return     ;zapisz plik¢¢ cmp #$34       ;delete?¢ bne skip0¢¢*-- delete      ;ten kawalek¢ lda igr+1      ;odpowiada za obsluge¢ cmp #15        ;klawisha DELETE¢ beq ptl¢¢ dec igr+1      ;cofaj qrsor¢ dec igr+1¢ dec nazwa      ;cofaj licznik dlugosci¢*               ;textu¢¢ lda igr+1      ;wyswietl kropke +¢ tay            ;nazwe 4matu¢ ldx #0¢¢ beq tpc2   [jmp]¢*---¢¢skip0 equ *     ;ten kawalek odpowiada¢ ldx nazwa      ;za wyswietlanie i¢ cpx #10        ;obsluge reszty¢ beq ptl        ;key'ow¢¢ tay            ;konwersja kodoo¢ lda ($79),y    ;klawiatury na atascii¢¢ cmp #97        ;selekcja key'ow.¢ bcc skip3¢¢ cmp #123¢ bcs skip3¢¢ sec            ;konwersja na internal¢ sbc #64¢ bne skip4 [jmp]¢¢skip3 equ *¢ cmp #48¢ bcc ptl¢¢ cmp #122¢ bcs ptl¢¢ sec¢ sbc #32¢¢skip4 equ *¢ inc nazwa      ;zwieksz dlugosc textu¢¢igr ldy #15     ;ten kawalek¢ ldx #0         ;wypisuje¢*               ;znak + « + format pliq¢ dey¢ sta wpsh,y¢ iny¢¢tpc2 equ *¢x0 lda dat,x¢ sta wpsh,y¢ iny¢ inx¢ cpx #5¢ bne tpc2¢¢ inc igr+1¢ bne ptl   [jmp]¢¢*---¢return equ *    ;ten kawalek¢ jsr scr_out    ;pobiera z¢*---            ;ekranu text,¢ ldy #13        ;konwersi go na¢ ldx #255       ;atascii, dodaje¢¢tp0 equ *       ;kropke, rozszerzenie¢ lda wpsh,y     ;oraz eol'a¢ iny¢ inx¢¢ cmp #14¢ beq kropka¢ cmp #14+128¢ beq kropka¢¢ clc¢ adc #32¢ sta fname,x¢ cpx #11¢ bne tp0¢¢kropka equ *¢ lda #46¢ sta fname,x¢¢ inx¢¢tp1 equ *¢ inc licz_¢ lda wpsh,y¢ clc¢ adc #32¢ sta fname,x¢ iny¢ inx¢¢ lda licz_¢ cmp #3¢ bne tp1¢¢ lda #0¢ sta licz_¢¢ lda #$9b       ;wstaw eol'a¢ sta fname,x¢¢ret2 equ *¢ jsr klozet     ;zamknij kanal¢ jsr klick      ;klick'nij key'em¢¢*---¢ lda #3         ;otworz kanal¢ sta iocb+2,X¢¢ lda #8         ;zapis¢ sta iocb+10,X¢¢ lda <fname     ;adres nazwy pliq¢ sta iocb+4,X¢ lda >fname¢ sta iocb+5,X¢¢ lda #0¢ sta iocb+11,x¢¢ jsr cio        ;inicjuj¢ bmi error      ;error?¢¢ lda #11        ;zapis bloq danych¢ sta iocb+2,X¢¢ lda <buf       ;adres bufora¢ sta iocb+4,X   ;z danymi¢ lda >buf¢ sta iocb+5,X¢¢ lda sajz       ;rozmiar danych¢ sta iocb+8,X   ;[zalezny od formatu¢ lda sajz+1     ;grafiki]¢ sta iocb+9,X¢¢ jsr cio        ;zaczynaj zapis¢¢ bpl okhi2      ;ok!¢ bmi error      ;zle!¢¢*---¢okhi2 equ *     ;'wszystko ok!'¢¢ jsr klozet     ;zamknij kanal¢ jsr prc        ;wlacz ekran, i¢*               ;przerwania¢¢ lda flag       ;czy jeszcze¢ beq skip9      ;raz save? [mic2]¢¢ lda #0¢ sta flag¢¢ lda <sec       ;wyswietl listwe¢ ldy >sec       ;z informacja o¢ jsr pish       ;sejfowaniu drugiego¢*               ;b_planu [mic2]¢¢ jsr key        ;czekaj na key¢¢ jsr mic2       ;stworz drugi bitplan¢ jsr scr_out    ;wylacz ekran i przerwania¢ jmp ret2       ;zapisz!¢¢skip9 equ *     ;wyswietl listwe¢ lda <ok_       ;z infem, ze¢ ldy >ok_       ;'wszystko ok'¢ jsr pish       ;i te sprawy¢¢ jsr key        ;klawisz?¢¢ jmp back       ;wracamy do menu¢¢*---¢error equ *     ;jakies bledy!¢ jsr klozet     ;zamknij kanal¢¢ jsr prc        ;wlacz, ekran etc.¢ lda <err_      ;wyswietl listwe¢ ldy >err_      ;'i/o error'¢ jsr pish¢¢ jsr key        ;key¢ jmp bak        ;wracanko¢¢*---¢scr_out equ *   ;wylaczanie przerwan¢ lda #0         ;i ekranu¢ sta gtia¢¢ lda 20         ;1/50s¢ cmp 20¢ beq *-2¢¢ lda <$c0ce     ;oddaj stary wektor¢ sta dliv       ;dli¢ lda >$c0ce¢ sta dliv+1¢¢ lda #0         ;wylacz dli, i vbl'a¢ sta nmien¢ rts¢¢*---¢prc equ *       ;kawalek ten ustawia¢ lda #$c0       ;przerwania i ekran¢ sta nmien¢¢ lda <int¢ ldy >int¢ sta dliv¢ sty dliv+1¢¢ lda #$22¢ sta gtia¢ rts¢¢*---¢key equ *       ;klick + czekanie na¢ jsr klick      ;klawisz¢key2 equ *¢ lda 764¢ cmp #255¢ beq *-5¢ rts¢¢*---¢klozet equ *    ;zamykanie kanalu¢ ldx #$10¢ lda #12¢ sta iocb+2,x¢ jsr cio¢ bmi error¢ rts¢¢*---¢pish equ *      ;wyswietlanie listwy¢ sta adr0¢ sty adr0+1¢ rts¢¢*---¢tpc0 equ *      ;podswietlanie¢x7 ldx #7¢add_ ldy #11¢¢tpc1 equ *¢ lda txt+40,y¢ eor #$80¢ sta txt+40,y¢ iny¢ dex¢ bpl tpc1¢ rts¢¢*---¢klick equ *     ;klick klawiatury¢ txa¢ pha¢¢ ldx #$50¢¢kl2 equ *¢ stx consol¢¢ nop            ;maly delay¢ nop¢ nop¢ nop¢ nop¢¢ dex¢ dex¢¢ bne kl2¢¢ pla¢ tax¢¢ lda #255       ;czysc klawisz¢ sta 764¢ rts¢¢*---¢int equ *       ;przerwanie dli¢ pha            ;A na stos¢¢ inc kurs       ;miganie qrsorem¢ lda kurs¢ cmp #12        ;jaki delay?¢ bne skip6¢¢ lda #0¢ sta kurs¢¢ lda 755¢ eor #2¢ sta 755¢¢skip6 equ *     ;interlace¢ lda itr0+1¢ eor #224¢ sta itr0+1¢¢ lda itr1+1¢ eor #32¢ sta itr1+1¢¢ sta $d40a      ;nxt linia¢¢ lda #2         ;colorki¢ sta $d016¢ lda #4¢ sta $d017¢ lda #6¢ sta $d018¢ lda #0¢ sta $d01a¢¢ lda <int2      ;nxt przerwanko¢ sta $200¢ lda >int2¢ sta $201¢¢ pla            ;A ze stosu¢ rti¢¢*--- dli no.2¢int2 equ *      ;nxt dli¢ pha            ;A na stos¢¢ sta $d40a      ;kolory dla¢ lda 709        ;dolnej listwy¢ sta $d017¢ lda 710¢ sta $d018¢¢ lda <int       ;ustaw pierwsza dli¢ sta $200¢ lda >int¢ sta $201¢¢ pla            ;A ze stosu¢ rti¢¢*---¢ing equ *¢ lda ing_       ;stworz format¢ sta sajz       ;ing¢ lda ing_+1¢ sta sajz+1     ;nowy rozmiar pliq¢¢ jsr podobne    ;przepisz bitplany¢¢ ldx #0         ;dodaj kolory i txt¢tp4 equ *¢ lda ing_txt,x¢ sta ($82),y¢ iny¢ inx¢ cpx #$34¢ bne tp4¢ rts¢¢*---¢inp equ *       ;stworz format inp¢ lda inp_¢ sta sajz¢ lda inp_+1¢ sta sajz+1     ;nowy rozmiar pliq¢¢ jsr podobne    ;muw bitplany¢¢ ldx #0         ;dodaj kolory¢ ldy #0¢tp5 equ *¢ lda ing_txt,x¢ sta ($82),y¢ iny¢ inx¢ cpx #4¢ bne tp5¢ rts¢¢*---¢mic equ *       ;stworz mic #1¢ lda mic_¢ sta sajz¢ lda mic_+1¢ sta sajz+1     ;nowy rozmiar pliq¢¢ jsr podobne    ;muw bitplan¢¢ ldy #0¢cl0 equ *       ;+ kolory¢ lda ing_txt,y¢ sta buf+$1e00,y¢ iny¢ cpy #4¢ bne cl0¢ rts¢¢*---¢mic2 equ *      ;stworz #2 mic¢ jsr dilejt¢¢ ldy #0         ;zastap '.MIC'¢szkj equ *      ;jako   '.MI2'¢ lda fname,y¢ iny¢ cmp #$9b¢ bne szkj¢¢ dey¢ dey¢ lda #50¢ sta fname,y¢¢ lda <buf       ;muwnij bitplan¢ ldy >buf¢ sta $80¢ sty $81¢¢ lda <bmp_b¢ ldy >bmp_b¢ sta e1+1¢ sty e1+2¢¢ ldy #0¢e1 lda bmp_b¢ sta ($80),y¢¢ inc $80¢ bne e0¢ inc $81¢e0 equ *¢¢ inc e1+1¢ bne e2¢ inc e1+2¢e2 equ *¢¢ lda e1+2¢ cmp >bmp_b+$1e00¢ bne e1¢¢ lda e1+1¢ cmp <bmp_b+$1e00¢ bne e1¢¢ ldx #0¢tp12 equ *      ;dodaj kolory¢ lda ing_txt,x¢ sta ($80),y¢ iny¢ inx¢ cpx #4¢ bne tp12¢ rts¢¢*--¢podobne equ *   ;przepisywanie bitplanuff¢ jsr dilejt¢¢ lda <buf¢ ldy >buf¢ sta $80¢ sty $81¢¢ lda <buf+$1f40¢ ldy >buf+$1f40¢ sta $82¢ sty $83¢¢ lda <bmp_a¢ ldy >bmp_a¢ sta a1+1¢ sty a1+2¢ lda <bmp_b¢ ldy >bmp_b¢ sta p1+1¢ sty p1+2¢¢ ldy #0¢a1 lda bmp_a¢ sta ($80),y¢¢ inc $80¢ bne a0¢ inc $81¢a0 equ *¢¢ inc a1+1¢ bne a2¢ inc a1+2¢a2 equ *¢¢p1 lda bmp_b¢ sta ($82),y¢¢ inc $82¢ bne p0¢ inc $83¢p0 equ *¢¢ inc p1+1¢ bne p2¢ inc p1+2¢p2 equ *¢¢ lda a1+2¢ cmp >bmp_a+$1f40¢ bne a1¢¢ lda a1+1¢ cmp <bmp_a+$1f40¢ bne a1¢ rts¢¢*---¢dilejt equ *       ;kasowanie 8¢ ldy #0            ;dodatkowych linii¢ tya               ;w ING'q oraz INP'ie¢tp2 equ *¢ sta bmp_a+$1e01,y¢ sta bmp_b+$1e01,y¢ iny¢ bne tp2¢¢tp3 equ *¢ sta bmp_a+$1f01,y¢ sta bmp_b+$1f01,y¢ iny¢ cpy #64¢ bne tp3¢ rts¢¢*--- dl¢dl dta c'pp'¢ dta b($42),a(txt)¢ dta b($20+$80)¢¢ dta b($4e)¢itr0 dta a(bmp_a)¢ dta d'....................'¢ dta d'....................'¢ dta d'....................'¢ dta d'....................'¢ dta d'.................'¢¢ dta b($4e)¢itr1 dta a(bmp_a+$f50)¢ dta d'....................'¢ dta d'....................'¢ dta d'....................'¢ dta d'.............'¢ dta d'....................'¢¢ dta b($20+$80)¢ dta b($42)¢adr0 dta a(txt+40)¢¢ dta b($41),a(dl)¢¢*--- teksty¢txt equ *¢ dta d'  XLP1.5 cutter  :) 4 Kocie Flaki #1!   '¢ dta d'Pic 4mat:   2x MIC   ING0.7   INP1.0    '¢dat equ *¢ dta d'«MIC «ING «INP '¢wpsh equ *¢ dta d'Fajl 2 sejf: D                          '¢err_ equ *¢ dta d'             I/O inwazja! :)            '¢ok_ equ *¢ dta d'       áניíá Wszycho w porzadalu!       '¢sec equ *¢ dta d'áיσ∙á - sejfnij drugi bitplanik [*.MI2]!'¢¢* kolorki + text w ING¢ing_txt equ *¢ dta b(0),b(2),b(4),b(6)¢ dta d'YO! TO JEST BYLE'¢ dta d'JAKI TXT,  PO TO'¢ dta d'ABYS SIE PYTAL ! '¢¢* bufor dla nazwy pliq¢fname equ *¢ org *+15¢¢*---¢* rozmiary plikow¢ing_ dta a($1f40+$1f74)¢inp_ dta a($1f40+$1f44)¢mic_ dta a($1e04)¢¢* liczniki i inne badziewia¢komorki equ *¢sajz   org *+2¢licz_  org *+1¢kurs   org *+1¢flag   org *+1¢nazwa  org *+1¢liczto org *+1¢¢ org $2e2¢ dta a(mejn)¢