commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: joker_ üzerinde Şubat 21, 2014, 22:36:23 ÖS



Konu Başlığı: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: joker_ üzerinde Şubat 21, 2014, 22:36:23 ÖS
intro ya devam ediyoruz..:)

Şimdi yapacağımız efekt introların olmazsa olmazı,scroll.c64'de scroll yapımı ile ilgili bir çok tutorial yazıldı.O yüzden ben source kodlarını yayınlıyorum.

Bizim yapacağımız scroll 1x2.Bunun için 1x2 çizilmiş bir çok karakter seti bulabilirsiniz.

Burada çok sayıda karakter seti mevcut.

http://kofler.dot.at/c64/font_01.html (http://kofler.dot.at/c64/font_01.html)

Kod:
!to"scroll.prg",cbm

scroll_satiri = $4590 ;<--scroll satiri,karakter seti ikinci bankta durduğundan satir değerimizin başına $4000 ilave ettik.
text = $5000 ;<--text'imizin duracağı adres
scroll_charset = $6000 ;<--Scroll için 1x2 karakter setinin yükleneceği adres.

SCREEN_RAM = $0400

               

  * = $0801
;jsr $e544

!zone clear_screen{
clear_screen:
lda #$06
sta $d020

ldx #$00 ; set counter
lda #$20 ; set fill char
.loop:
sta SCREEN_RAM,x
sta SCREEN_RAM+$FF,x
sta SCREEN_RAM+$1FF,x
sta SCREEN_RAM+$2FF,x
inx
bne .loop
;rts
}
lda #$00
sta $d020
sta $d021

;=========scroll satiri renkleri================
;==scroll satirinin renklerini değiştiriyoruz===

ldx #$00
lda #$05 ;<--scroll satirina yeşil renk atıyoruz
- sta $d990,x

inx
cpx #$50
bne -

;====Burada irq ayarlarımızı yapıyoruz=======

                sei

lda #$7f
                sta $dc0d

                lda #$01
                sta $d01a

lda #$00
sta $dc0e

              lda #$1b
              sta $d011

lda #$70
sta $d012

lda #<irq
sta $0314
lda #>irq
    sta $0315
 
              cli
jmp *

;====irq 'ya girip scroll rutinine atlıyoruz====
irq
inc $d019
                     
lda #$02 ;burada karakter setimiz farklı bir bankta
sta $dd00 ;durduğundan ilgili bankı set ediyoruz

lda #$18 ;karakter setimizin bulunduğu
sta $d018 ;alanı gösteriyoruz.

lda d016 ;scroll için d016 degerimizi
sta $d016 ;ilgili resgister'a yazıyoruz.

lda #$aa
sta $d012

lda #<irq1
sta $0314
lda #>irq1
    sta $0315

jmp $ea81

irq1
inc $d019

jsr scroll_rutin  ;scroll rutinine atlıyoruz.

lda #$70
sta $d012

lda #<irq
sta $0314
lda #>irq
    sta $0315       
   
jmp $ea81


scroll_rutin

lda d016 ;d016 degerimizi okuyoruz
sec ;bu degeri 1 azltıyoruz
sbc #$01
and #$07 ;7 olup olmadığını kontrol ediyoruz
sta d016 ; ilgili degişkene yazıp eğer olduysa ekranı
 
bcc + ;1 karakter sola kopyalayacak rutine gidiyoruz.
rts
+
ldx #0
- lda scroll_satiri+1,x ;tüm karakterler 1 karakter
sta scroll_satiri,x ;sola kopyalanıyor.
ora #$40 ;aynı şekilde bir alt satirda
sta scroll_satiri+$28,x ;sola kopyalanıyor.

inx ;sayac bir arttırılıp
cpx #$28 ;tüm ekran boyunca 40 karakter bu işlem tekrar ediliyor.
bne -

text_kopyala lda text ;sıradaki text karakteri okunuyor
cmp #$00 ;text'in sonuna geldikmi kontrolünü yapıyoruz.
bne ++ ;eğer gelmediysek işleme devam edecek kısma atlıyoruz.

;eğer text'in sonuna geldiysek text'i mizi başa alıyoruz.
lda #<text
sta text_kopyala+1
lda #>text
sta text_kopyala+2
rts

++ sta scroll_satiri+39 ;okuduğumuz text karakterini en sondaki karakter alanına basıyoruz.

inc text_kopyala+1 ;text'in alçak byte'ını bir arttırıyoruz.
bne +++ ;eğer 255'i geçmediysek rutinden çıkıyoruz
inc text_kopyala+2 ;255'i geçtiysek text'in yüksek byte'ını arttırıyoruz.
+++ rts

;=========== kodumuzun sonu ======================

d016
!by 0


;=============scroll mesaji========================
* = text
!scr "commodore.gen.tr    "           
!scr "                    "
!scr "                    "
!scr "herkese selamlar bu "
!scr "intro commodore.gen."
!scr "tr icin yapilmistir "
!scr "forumda daha once bi"
!scr "r arkadasimiz amiga "
!scr "introsu yapinca bend"
!scr "e commodore formunda"
!scr "yiz ama forum adina "
!scr "yapilmis hic commodo"
!scr "re introsu niye yok "
!scr "diyerek bu introyu y"
!scr "apmaya karar verdim "
!scr "amacim hem intro yap"
!scr "mak hemde bunu yapar"
!scr "ken bir yandan da bir"
!scr " intronun yapim asama"
!scr "larini adim adim pay"
!scr "lasarak intro yapmak"
!scr " isteyenlere kaynak "
!scr "olusturmak sizlere n"
!scr "ightlord un bir sozu"
!scr "nu hatirlatirim byte"
!scr " larinizi sevin....."
!scr "                    "
!scr "                    "
!by $00

;============== karakter setlerini yüklüyoruz ======

* = scroll_charset
!bin "1x2charset.prg",,2


Konu Başlığı: Ynt: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: wizofwor üzerinde Şubat 21, 2014, 23:31:29 ÖS
Bu hafta sonu neyle uğraşacağım belli oldu galiba.


Konu Başlığı: Ynt: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: joker_ üzerinde Şubat 22, 2014, 08:28:18 ÖÖ
heyecanla bekliyoruz kardeşim. :D


Konu Başlığı: Ynt: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: wizofwor üzerinde Şubat 22, 2014, 08:58:38 ÖÖ
Logo çizmek için bir program söyleyebilir misin? Charpad'la çiziyorum ama çok memnun değilim gibi. Bir şeyler eksik.


Konu Başlığı: Ynt: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: joker_ üzerinde Şubat 22, 2014, 09:40:48 ÖÖ
ben çok iyi olmasa da genelde timanthes kullanıyorum.

http://csdb.dk/release/?id=75871 (http://csdb.dk/release/?id=75871)

fakat bir çok grafiker'in tercihi,hem fullscreen hemde logo vs için 0Xpaint

http://csdb.dk/release/?id=52822 (http://csdb.dk/release/?id=52822)


Konu Başlığı: Ynt: cgtr intro yapıyoruz-5(1x2 scroll)
Gönderen: wizofwor üzerinde Şubat 23, 2014, 16:50:50 ÖS
0xPaint'le çizdiğim logo bana ben logoya bakıyoruz. Bunu nasıl karakter seti haline getireceğim? Sadece oxp olarak kaydediyor.