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 >
Wrap
Assembly Source File
|
2023-02-26
|
11KB
|
1 lines
*------------------*¢* 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)¢