Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore Yazılımcgtr intro yapıyoruz-5(1x2 scroll)
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: cgtr intro yapıyoruz-5(1x2 scroll)  (Okunma Sayısı 5850 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« : Ş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

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


* scroll.png (1.25 KB, 384x272 - Görüntüleme: 1442 kez.)
* 1x2scroll.zip (3.8 KB - Yükleme: 278 kez.)
« Son Düzenleme: Şubat 21, 2014, 22:39:06 ÖS Gönderen: joker_ » Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #1 : Şubat 21, 2014, 23:31:29 ÖS »

Bu hafta sonu neyle uğraşacağım belli oldu galiba.
Logged

joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #2 : Şubat 22, 2014, 08:28:18 ÖÖ »

heyecanla bekliyoruz kardeşim. Kahkaha
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #3 : Ş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.
Logged

joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #4 : Şubat 22, 2014, 09:40:48 ÖÖ »

ben çok iyi olmasa da genelde timanthes kullanıyorum.

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
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #5 : Ş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.
Logged

Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: