commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: censez41 üzerinde Eylül 10, 2012, 10:00:58 ÖÖ



Konu Başlığı: c64 resim yapma
Gönderen: censez41 üzerinde Eylül 10, 2012, 10:00:58 ÖÖ
Su aralar c64 ile ressim yapmaya merak saldım ancak disket sürücüm yok ve asamply  ile birşey yapmam mümkün değil basic  dili kullanarak ressim yapmak mümkünmü ve nasıl yapılabilir yardım edecek arkadaslara teşekkür ederim


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Eylül 10, 2012, 10:10:00 ÖÖ
resim yapmak için assembler veya basic bilmene gerek yok,c64'de çok iyi çizim programları mevcut,

http://noname.c64.org/csdb/release/?id=96671 (http://noname.c64.org/csdb/release/?id=96671)

http://noname.c64.org/csdb/release/?id=45785 (http://noname.c64.org/csdb/release/?id=45785)

http://noname.c64.org/csdb/release/?id=74979 (http://noname.c64.org/csdb/release/?id=74979)

hatta pc'de bile çizebilirsin

http://noname.c64.org/csdb/release/?id=30789 (http://noname.c64.org/csdb/release/?id=30789)

http://noname.c64.org/csdb/release/?id=86776 (http://noname.c64.org/csdb/release/?id=86776)


gerçek commodore kullanmadan emulatör üzerinden çok rahat çizebilirsin.hatta sen resimi çiz,çizdiğin resmi gerçek c64'de göstermek için gerekli programı ben sana yazarım.  ;)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Eylül 10, 2012, 11:08:36 ÖÖ
teşekkür ederim bu programlarla yaptıgım resimleri  c64 nasıl aktarilabilir açıkcası ben resmi orijinal c64 um ile hazırlamak istiyorum bunun icin basic  ile yapılan ornek bir program arıyorum.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Eylül 10, 2012, 11:13:43 ÖÖ
bu durumda bu programları kasette bulup yüklemen gerekiyor,basic ile  yapılmış bir örnek varmı,açıkcası hiç bilmiyorum,yada en ideali bir disket sürücü alman gerekiyor.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: wizofwor üzerinde Eylül 10, 2012, 11:22:57 ÖÖ
Basic ile resim çizmen malesef mümkün değil. C64 basic'te grafikle ilgili hiçbir komut bulunmaz. İşini poke komutlarıyla yapman gerekir ki bu da manasız olur. Yaptığın resimleri kod bilmene gerek kalmadan program olarak kasede kaydedebileceğin çizim programları var.

Koala, Amica paint gibi programlar zamanında popüler olanlarıydı. Bunları deneyebilirsin.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Eylül 10, 2012, 12:31:27 ÖS
Teşekkür ederim yorumlarınız icin programla
Basic ile resim çizmen malesef mümkün değil. C64 basic'te grafikle ilgili hiçbir komut bulunmaz. İşini poke komutlarıyla yapman gerekir ki bu da manasız olur. Yaptığın resimleri kod bilmene gerek kalmadan program olarak kasede kaydedebileceğin çizim programları var.

Koala, Amica paint gibi programlar zamanında popüler olanlarıydı. Bunları deneyebilirsin.
Yorumunuz icin teşekkürler bende teyp yar ama tavsiye ettiginiz programları internetten indirip kasete yazdırmak icin  cihazlar mevcutmudur ben iyi seviye basic biliyorum dediğiniz gibi poke Komutlariyla yapmayı umuyordum ekranı 320 240 moduna getirip istediğim koordinata istediğim renk pikseli bastırmak icin basit bir ornek arıyorum.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Eylül 10, 2012, 15:53:20 ÖS
@censez41
Arkadaşların da bahsettikleri gibi C64 Basic'de grafik çizdirmek pek keyifli değil. Ama Simon's Basic gibi bir Basic Extender yazılımı kullanarak BASIC V2'ye grafik, ses ve yapısal programlama komutları ekleyebilirsin. Google'a C64 ve Simon's Basic yazarsan tonla dokümantasyon bulabilirsin.

http://en.wikipedia.org/wiki/Simons'_BASIC (http://en.wikipedia.org/wiki/Simons'_BASIC)

Ama daha fazla eğlenmek ve cihazı daha etkin kullanmak istiyorsan C64 için yazılmış COMAL uyarlamasını kullanabilirsin.

http://petlibrary.tripod.com/comal4.htm (http://petlibrary.tripod.com/comal4.htm)

http://en.wikipedia.org/wiki/COMAL (http://en.wikipedia.org/wiki/COMAL)

COMAL ve diğer dillerle ilgili dokümantasyon ihtiyacını da Bombjack'in sitesinden karşılayabilirsin:

http://www.bombjack.org/commodore/books.htm (http://www.bombjack.org/commodore/books.htm)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: blackturk üzerinde Eylül 10, 2012, 23:59:14 ÖS
Püfffff

1-koala paint programı ile resim çiz
2-örnek isim "resim.koa" olarak disk'e kaydet.
3-c64 resetle
4-koala resim olan diski yerleştir.
5-basic satırında load"resim.koa",8,1 komutunu yaz
6- resim yükleme bitinceye kadar bekle...
7-yüklenince ready yazısı gelir.Basic'de
8-basic satırında "new" yazıp entere bas
9-şimdi aşağıdaki basic kodu yaz ve çizdiğin resmi gör.

program listesi

100 POKE 56576, 198
110 POKE 53265, 59
120 POKE 53270, 24:poke 53272,120
140 B = 23552 : C = 32576 : D = 55296 : E = 33576
150 FOR X = 0 TO 999 : POKE B + X,PEEK(C + X) : POKE D + X,PEEK(E + X) : NEXT
160 POKE 53281, PEEK(34576)

hadi başarılar..... :D :P :P


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Eylül 11, 2012, 08:05:22 ÖÖ
blacturk işin asıl püf noktası arkadaşda disket sürücü yok :D


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Eylül 11, 2012, 16:46:26 ÖS
censez41, eğer kodla birşeyler çizdirmek istiyorsan senin için ufak bir örnek hazırladım. aşağıdaki kodu yazıp teybe kaydet. sonra çizimin yapıldığı "drawing code" bölümünü değiştirerek birşeyler çizdirmeyi deneyebilirsin. tabii biraz programlama bilgisi gerektiriyor.

ilk çalıştırdığında assembly'den yazdığım kısmı hafızaya alması biraz uzun sürüyor (bir süre ekranda noktalar ilerleyecek). ancak bir kez bu işlemi yaptıktan sonra bilgisayarı resetlemediğin sürece tekrar tekrar yapılmasına lüzum yok. dolayısıyla bir kez çalıştırdıktan ve "run/stop+restore" ile basic'e dönüş yaptıktan sonra istersen 120 numaralı satırı silebilirsin (boş bir satırda "120" yazıp enter'a bas). böylece tekrar tekrar o süreyi beklemekten kurtulmuş olursun.

şu an için yazdığım library'de sadece X/Y koordinatına nokta basma özelliği mevcut. bu nedenle fazla birşey yapmak mümkün değil. eğer bu şekilde takılmak hoşuna giderse çizgi, daire v.s. şeyleri de eklerim library'e, ta ki sen Simon's Basic tarzı birşeyin kasetini bulana kadar. ;)

Not: denemek isteyenler kodu copy&paste ile Vice'a aktarabilir ve doğrudan "run" komutu ile çalıştırabilirler. Vice'ın son versiyonları artık clipboard'dan kopyalama olayını destekliyor.

Kod:
0 rem *******************
1 rem *** definitions ***
2 rem *******************
10 gfxlib = 49152
20 bgcol = 53246
30 fgcol = 53247
40 x = 53243
50 xhi = 53244
60 y = 53245
100 rem **********************
101 rem *** initialization ***
102 rem **********************
110 poke 780,1:sys58678
120 gosub 9000:rem <- gfxlib generation
130 poke bgcol,0
140 poke fgcol,1
150 sys 49152:rem <- init screen
160 sys 49155:rem <- clear screen
1000 rem ********************
1001 rem *** drawing code ***
1002 rem ********************
1010 for i = 0 to 319 step 2
1020 vy = int(100+100*sin(i*0.019634954))
1030 vh = 0
1040 if i > 255 then vh = 1
1050 vl = i and 255
1060 poke xhi,vh:poke x,vl:poke y,vy
1070 sys 49158:rem <- plot pixel
1080 next i
8999 end
9000 rem *******************
9001 rem *** data reader ***
9002 rem *******************
9010 addr = gfxlib
9020 for i = 1 to 6
9030 read s$
9040 for p = 1 to 65 step 2
9050 b$ = mid$(s$, p, 2)
9060 b1 = asc(left$(b$,1))
9070 b2 = asc(right$(b$,1))
9080 if b1 >= asc("0") and b1 <= asc("9") then v1 = b1 - 48
9090 if b1 >= asc("a") and b1 <= asc("f") then v1 = b1 - 55
9100 if b2 >= asc("0") and b2 <= asc("9") then v2 = b2 - 48
9110 if b2 >= asc("a") and b2 <= asc("f") then v2 = b2 - 55
9120 bv = v1 * 16 + v2
9130 poke addr,bv
9140 addr = addr + 1
9150 print ".";
9160 next p,i
9999 return
10000 rem *****************************
10001 rem *** graphic library datas ***
10002 rem *****************************
10010 data "4c09c04c24c04c58c0a9028d00ddadfecf8d20d0a9788d18d0a9c88d16d0a93b8d"
10020 data "11d060adffcf0a0a0a0a0dfecfa2009d005c9d005d9d005e9de85ee8d0f1a90085"
10030 data "faa96085fba0009891fac8d0fbe6fba6fbe080d0f360adfdcf4a4a4aaabda4c018"
10040 data "6dfccf85fbadfbcf29f8187d8bc085fa9002e6fbadfdcf2907a8adfbcf2907aabd"
10050 data "bdc011fa91fa60004080c0004080c0004080c0004080c0004080c0004080c00060"
10060 data "616263656667686a6b6c6d6f70717274757677797a7b7c7e804020100804020100"


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Eylül 11, 2012, 16:51:09 ÖS
aslında bu kısım zaten basic tarafından oluşturuluyor ancak ilgilenen olursa diye assembly kodunu da gönderiyorum.

Kod:
VIDEOMEM	= $5c00
SCREEN = $6000

XCOOR = $cffb ; 16 bits
YCOOR = $cffd
BGCOLOR = $cffe
FGCOLOR = $cfff

!to "graphiclib.prg",cbm

* = $c000
jmp initScreen
jmp clearScreen
jmp plotPixel

initScreen
lda #$02
sta $dd00
lda BGCOLOR
sta $d020
lda #$78
sta $d018
lda #$c8
sta $d016
lda #$3b
sta $d011
rts

clearScreen
lda FGCOLOR
asl
asl
asl
asl
ora BGCOLOR
ldx #$00
- sta VIDEOMEM,x
sta VIDEOMEM+$100,x
sta VIDEOMEM+$200,x
sta VIDEOMEM+$2e8,x
inx
bne -

lda #<SCREEN
sta $fa
lda #>SCREEN
sta $fb
ldy #$00
tya
- sta ($fa),y
iny
bne -
inc $fb
ldx $fb
cpx #>(SCREEN+$2000)
bne -
rts

plotPixel
lda YCOOR
lsr
lsr
lsr
tax

lda tScreenHi,x
clc
adc XCOOR+1
sta $fb

lda XCOOR
and #$f8
clc
adc tScreenLo,x
sta $fa
bcc +
inc $fb
+
lda YCOOR
and #7
tay
lda XCOOR
and #7
tax
lda tBits,x
ora ($fa),y
sta ($fa),y
rts

tScreenLo
!for i,25 {
!byte <(SCREEN+(320*(i-1)))
}

tScreenHi
!for i,25 {
!byte >(SCREEN+(320*(i-1)))
}

tBits
!byte %10000000
!byte %01000000
!byte %00100000
!byte %00010000
!byte %00001000
!byte %00000100
!byte %00000010
!byte %00000001

ASM'den kullanım örneği;
Kod:
	lda #$01
sta FGCOLOR
lda #$00
sta BGCOLOR
jsr initScreen

jsr clearScreen

lda #0
sta XCOOR+1
lda #160
sta XCOOR
lda #100
sta YCOOR
jsr plotPixel

rts


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Eylül 11, 2012, 19:43:22 ÖS
skate emegine saglık boş bir zamanımda deneyeceğim bende c64 un yanında gelen turkce ve Almanca kitaplarda mevcut Almanya kitapin son sayfalarında noktalardan olusan grafik çizen bir program var bu nü değiştirip kendi resimlerini yapmayı umuyordum ama sizin program daha iyi 


elinde bu iki kitap sayesinde ilk okul yıllarımda besic öğrenmeye başladım keske o yillarda bilgiye ulaşımım olsaydı assamply de kendimi geliştirmeyi isterdim ama o zamanlar basic ile kendi Nokia daki yılan oyununu yazmıştım  :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Eylül 12, 2012, 10:41:10 ÖÖ
bilgiye ulaşımım olsaydı assamply de kendimi geliştirmeyi isterdim

geç kalmış sayılmazsın :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 03, 2012, 14:25:03 ÖS
 c64 resim yapma işine geri döndüm

http://www.devili.iki.fi/Computers/Commodore/C64/Programmers_Reference/page_iii.html (http://www.devili.iki.fi/Computers/Commodore/C64/Programmers_Reference/page_iii.html)

bu sitede çok değerli bilgilere ulaştım özellikle bu kod&nbsp; işimie yaracaktır

 10 print chr$(147)
 31 poke 56334,peek(56334)and254:poke1,peek(1)and251
 35 fori=0to63
 36 forj=0to7
 37 poke 12288+i*8+j,peek(53248+i*8+j)
 38 next j,i
 39 poke 1,peek(1)or4:poke 56334,peek(56334)or1
 40 poke 53272,(peek(53272)and240)+12
 50 poke 53270,peek(53270)or16
 51 poke 53281,0
 52 poke 53282,2
 53 poke 53283,7
 60 for char=60to63
 80 for byte=0to7
 100 read number
 120 poke 12288+(8*char)+byte,number
 140 next byte,char
 150 print"{clear}"tab(255)chr$(60)chr$(61)tab(55)chr$(62)chr$(63)
 170 get a$
 180 if a$=""then170
 190 poke53272,21:poke53270,peek(53270)and239
 200 data129,37,21,29,93,85,85,85
 210 data66,72,84,116,117,85,85,85
 220 data87,87,85,21,8,8,40,0
 230 data213,213,85,84,32,32,40,0
 240 end
emulatore kopyalayın ekrana kuçuk renkli bir yaratık çıkıyor
benim yapmak istediğim burda tartışılmış ama ben anlamadım  :-[
http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0 (http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0)

yapmak istediğim

Timanthes programı ile bir resmi import edeceğim sonra bu programda ki her pikselin renk değerini c64 de nereye karsılık geldiğini bularak data komutuna yuklemem gerekiyor bunları ve yukarıdaki programın nasıl çalıştığını açıklarmısınız lütfen :) iyi günler


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: kuzgun üzerinde Aralık 03, 2012, 23:59:09 ÖS
Arkadaşlar aslında bu mevzuyla ben de ilgileniyorum. Koala paint için gerekli bir aparat var sanıyorum, yanılıyor muyum?


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: LW3D üzerinde Aralık 04, 2012, 09:56:07 ÖÖ
aparattan kastın lightpen mi? ekrana çizmeyi sağlar...ama çok efektif bir cihaz değil bildiğim kadarıyla. Tablet benzeri birşeyde olması lazım...ama ben en çok art studio'yu severdim... Art Studio'nun da Amiga mouse'u ile çalışan bir versiyonu var...Mouse'la çizim yapabilirsiniz (koala içinde olması muhtemeldir)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 04, 2012, 10:27:02 ÖÖ
Timanthes programı ile bir resmi import edeceğim sonra bu programda ki her pikselin renk değerini c64 de nereye karsılık geldiğini bularak data komutuna yuklemem gerekiyor bunları ve yukarıdaki programın nasıl çalıştığını açıklarmısınız lütfen :) iyi günler

C64'deki bu tarz BASIC programlarını incelemenin pek bir faydası olmuyor. Makine dilinin BASIC'leştirilmiş halleri olduklarından ve yapısal programlama içermediklerinden, dokümanlardan elde ettiğin bilgileri adım adım uygulaman daha mantıklı. Bu nedenle C64'de millet bu işlerle uğraşmamak için doğrudan makine diline geçmiş durumda.

C64 grafik mimarisi, ekran bellek haritası, renk kodları, VIC çipi yazmaçları, VIC çipi bellek tahsisi, sprite'lar, özel karakter seti yapımı vb birçok konuda C64 Programcının El Kitabı'ndan faydalanabilirsin, tıkandığın konularda da forumdaki arkadaşlara sorabilirsin.

http://www.commodore.gen.tr/forum/index.php?topic=1661.msg14801 (http://www.commodore.gen.tr/forum/index.php?topic=1661.msg14801)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 11:00:21 ÖÖ
http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0 (http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0)

Bu forumda tam da benim istediğim soruyu sormuş ama ingilizce ben isin icinden çıkamadım
ekrana basic ile 160*200 Bitmap modunda birkaç tane renkli piksel cizderebilicek bir c64 sevdalısı yokmu. :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Aralık 04, 2012, 11:51:57 ÖÖ
sanırım burada yazılanlar işini görecektir,

http://www.tr-demoscene.info/showthread.php?1941-Dummy-Intro (http://www.tr-demoscene.info/showthread.php?1941-Dummy-Intro)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 12:03:19 ÖS
sanırım burada yazılanlar işini görecektir,

http://www.tr-demoscene.info/showthread.php?1941-Dummy-Intro (http://www.tr-demoscene.info/showthread.php?1941-Dummy-Intro)

Teşekkür ederim projemin 2 aşaması icin isime cok yarışacaktık.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 12:05:08 ÖS
1 POKE 53265,PEEK(53265) OR 32
2 POKE 53272,PEEK(53272) OR 8
3 POKE 56576,PEEK(56576) AND 252
10 FOR N = 0 TO 999
11 READ C
12 POKE N+49152+1024, C
13 NEXT N
20 FOR N = 0 TO 7999
21 READ L
22 POKE N+49152+8192, L
23 NEXT N
100 GOTO 100
data lines go below here
Seklinde bir kod var bu data kısmına hangi degerleri vermem gerekiyor  bu kodlari yorumlayabilicek biri varmi
Skate nickli arkadas anlıyordu ama ona nasıl ulaşabilirim acaba

Birde  vic  emulator beni sinir etti internette bulduğum kodlari kopyala yapıştır yapınca büyük harfler emulator da bozuk çıkıyor isin yoksa hepsini kucuk harfe cevir :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 04, 2012, 13:13:38 ÖS
Bu programda DATA kısmının ilk 1000 byte'ına her bir karakterin renk kodunu içeren değeri gireceksin.
Sonraki (160x200x2)/8=8000 byte'lık kısmına ise sırasıyla bitmap byte değerlerini gireceksin.
Yani tam ekran için 9000 adet sayı gireceksin!

Bu işi elle yapmanın imkanı olmadığına göre, ya grafik dosyasını dosyadan doğrudan okutup bitmap ve colormap belleğine yerleştireceksin ya da onun için de self-modifying bir BASIC kodu yazıp DATA satırlarını oluşturacaksın. Her ikisi de pek pratik değil yani.

C64'de oyunların çoğunda tam ekran grafikler kullanılmaz. 8x8 veya 4x8'lik tekrarlanan karakter bileşenleri bir araya getirilerek daha büyük şekiller oluşturulur.

Bence en güzeli C64 Programcının El Kitabı'ndan işin mantığını öğrenerek kendin halletmen, takıldığın yerlerde de soru sorman.

Örneğin senin adına en basit sorular şunlar olurdu:

1) C64'de grafik ekranını (belli bir bellek bölgesinde) nasıl açarım?

2) C64'de tek ve çok renkli ekran modlarında renkler nerede depolanır?

3) Grafik ekranının bellekteki dizilimi nasıldır?

4) Ekrana bir noktayı nasıl koyarım?


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 13:17:57 ÖS
Bu programda DATA kısmının ilk 1000 byte'ına her bir karakterin renk kodunu içeren değeri gireceksin.
Sonraki (160x200x2)/8=8000 byte'lık kısmına ise sırasıyla bitmap byte değerlerini gireceksin.
Yani tam ekran için 9000 adet sayı gireceksin!

Bu işi elle yapmanın imkanı olmadığına göre, ya grafik dosyasını dosyadan doğrudan okutup bitmap ve colormap belleğine yerleştireceksin ya da onun için de self-modifying bir BASIC kodu yazıp DATA satırlarını oluşturacaksın. Her ikisi de pek pratik değil yani.

C64'de oyunların çoğunda tam ekran grafikler kullanılmaz. 8x8 veya 4x8'lik tekrarlanan karakter bileşenleri bir araya getirilerek daha büyük şekiller oluşturulur.

Bence en güzeli C64 Programcının El Kitabı'ndan işin mantığını öğrenerek kendin halletmen, takıldığın yerlerde de soru sorman.

Örneğin senin adına en basit sorular şunlar olurdu:

1) C64'de grafik ekranını (belli bir bellek bölgesinde) nasıl açarım?

2) C64'de tek ve çok renkli ekran modlarında renkler nerede depolanır?

3) Grafik ekranının bellekteki dizilimi nasıldır?

4) Ekrana bir noktayı nasıl koyarım?

Abicim  bu konuda bilgin olduğu belli bana data icine yazacağım birkaç deger verirmişsin mesela ekranın üst sol ve sag köşesinde farklı renklerde iki piksel yerleştirilmek icin bu datalara ne yazılmalı.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 13:43:29 ÖS
C64 bellek haritasını turkce açıklayan dokuman varmi


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 04, 2012, 18:12:47 ÖS
5 base=2*4096:poke53272,peek(53272)or8
10 poke53265,peek(53265)or32
20 fori=basetobase+7999:pokei,0:next
30 fori=1024to2023:pokei,3:next
50 forx=0to319step.5
60 y=int(90+80*sin(x/10))
70 ch=int(x/8)
80 ro=int(y/8)
85 ln=yand7
90 by=base+ro*320+8*ch+ln
100 bi=7-(xand7)
110 pokeby,peek(by)or(2+bi)
120 nextx
125 poke1024,16
130 goto130

şöyle bir program var vic de direk kopyalayıp deneyebilirsiniz "^"simgesini vice aktaramadığım için orayı "+" olarak geçtim bu nedenle grafik bozuk çıkıyor ama mesele değil bu programdan yola çıkarak ekranın istediğim yerine siyah piksel koyabilirim diye düşünüyorum ancak bu piksellerin nasıl renklendireceğimi bilmiyorum

POKE 53265,PEEK(53265)OR 32
bu komut ekranı bitmap moda alıyor




Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 05, 2012, 12:01:31 ÖS
Abicim  bu konuda bilgin olduğu belli bana data icine yazacağım birkaç deger verirmişsin mesela ekranın üst sol ve sag köşesinde farklı renklerde iki piksel yerleştirilmek icin bu datalara ne yazılmalı.

Bilgim var ama tüm yazmaçları, ıvır zıvırı belleğimde tutmam mümkün değil. Senin yerine C64 Programcının El Kitabı'nı benim inceleyip de sana oradaki bilgilerin hülasasını mı aktarmamı bekliyorsun? Bu işlerde önce dokümantasyon incelenir sonrasında takıldığın yerlerde soru sorulur. POKE, PEEK komutlarını şablon olarak öğreneceğine VIC çipi yazmaçlarının işlevlerini vb öğrensen daha iyi edersin diye düşünüyorum.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Aralık 05, 2012, 12:48:11 ÖS
VIC çipi ve grafik programlama ile ilgili kaynak olarak bu işin üstatlarından nightlord'un yazmış olduğu Türkçe dökümanlara bakabilirsin :)

http://nightnetwork.org/writings_tr/c64_grafik_programlama/chunk/index.html (http://nightnetwork.org/writings_tr/c64_grafik_programlama/chunk/index.html)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 07, 2012, 20:26:23 ÖS
http://www.atarimagazines.com/compute/issue71/screen_saver_64.php (http://www.atarimagazines.com/compute/issue71/screen_saver_64.php)

bu sitede aradığım programları bulmuş olabilirim

Program 1: Screen Saver 64

110 su=0:fori=688to738:readx:su=su+x:pokei,x:next
120 ifsu<>4855then print"error in data in lines 170-220":stop
130 su=0:fori=828to1022:readx:su=su+x:pokei,x:next
140 ifsu<>31598then print"error in data in lines 240-470":stop
150 print"screen save installed":end
170 data 173,0,221,41,3,73,3,10,10,10
180 data 10,10,10,133,254,173,24,208
190 data 41,8,10,10,101,254,133,2,105
200 data 31,141,169,2,173,24,208,41,240
210 data 74,74,234,234,101,254,141,168
220 data 2,105,3,141,167,2,96
240 data 160,0,132,251,132
245 data 253,165,2,133
250 data 252,169,96,133,254
255 data 120,165,1,72
260 data 41,253,133,1,177,251,170,177
270 data 253,145,251,138,145,253,200
280 data 208,243,230,252,230,254,165
290 data 254,201,12E,208,233,104,133,1
300 data 88,234,234,234,96,162,2,32,201
310 data 255,1 :,0,32,210,255,165,2,32
320 data 210,255,160,0,132,251,169,96
330 data 133,252,234,234,177,251,32,210
340 data 255,165,252,201,127,240,7,200
350 data 208,242,230,252,208,238,200
360 data 152,201,64,208,232,96,160,0
370 data 132,251,173,168,2,133,252,177
380 data 251,32,210,255,165,252,205,167
390 data 2,240,7,200,208,241,230,252
400 data 208,237,200,152,201,232,208
410 data 231,160,0,132,251,169,216,133
420 data 252,177,251,32,210,255,165,252
430 data 201,219,240,7,200,208,242,230
440 data 252,208,238,200,152,201,232
450 data 208,232,173,33,208,32,210,255
460 data 32,204,255,96,32,176,2,32,60
470 data 3,32,113,3,32,60,3,32,163,3,96


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 12, 2012, 17:23:10 ÖS
10 rem * example 1 *
20 rem creating programmable characters
31 poke 56334,peek(56334)and254: rem turn off kb
32 poke 1,peek(1)and251: rem turn off i/o
35 for i=0to63: rem character range to be copied
36 for j=0to7: rem copy all 8 bytes per character
37 poke 12288+i*8+j,peek(53248+i*8+j): rem copy a byte
38 next j:next i: rem goto next byte or character
39 poke 1,peek(1)or4:poke 56334,peek(56334)or1: rem turn on i/O and kb
40 poke 53272,(peek(53272)and240)+12: rem set char pointer to mem. 12288
60 for char=60to63: rem program characters 60 thru 63
80 for byte=0to7: rem do all 8 bytes of a character
100 read number: rem read in 1/8th of character data
120 poke 12288+(8*char)+byte,number: rem store the data in memory
140 next byte:next char: rem also could be next byte, char
150 print chr$(147)tab(255)chr$(60);
155 print chr$(61)tab(55)chr$(62)chr$(63)
160 rem line 150 puts the newly defined characters on the screen
170 get a$: rem wait for user to press a key
180 if a$=""then goto170: rem if no keys were pressed, try again!
190 poke 53272,21: rem return to normal characters
200 data 4,6,7,5,7,7,3,3: rem data for character 60
210 data 32,96,224,160,224,224,192,192: rem data for character 61
220 data 7,7,7,31,31,95,143,127: rem data for character 62
230 data 224,224,224,248,248,248,240,224: rem data for character 63
240 end

bu kodları yapıştırnca sevimli bir kedi çiziliyor ma renksiz :(
kamon millet hep ben uğraşıyorum sizden bir icraat yok :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: blackturk üzerinde Aralık 12, 2012, 17:59:20 ÖS
asamply ,besic, kamon millet  ??????????? 


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 15:23:56 ÖS
31 poke 56334,peek(56334)and254

arkadaşlar burdaki işlemin anlamı nedir benim bildiğim peek komutu ilgili adresin içeriğine hangi değerin olduğunu bize verir burda and254 ifadesi ne anlama geliyor ve poke 56334 hucresine hangi değeri veriyor.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 13, 2012, 17:37:56 ÖS
31 poke 56334,peek(56334)and254

arkadaşlar burdaki işlemin anlamı nedir benim bildiğim peek komutu ilgili adresin içeriğine hangi değerin olduğunu bize verir burda and254 ifadesi ne anlama geliyor ve poke 56334 hucresine hangi değeri veriyor.

Kod:
31 POKE 56334, PEEK(56334) AND 254

CIA-1 çipindeki interrupt zamanlayıcısı olan TIMER A kontrol yazmacı olan $DC0E (56334) adresinde 0. biti sıfırlıyor ve interrupt'ları kapatıyoruz. İlgili yazmacın içeriğini PEEK ile okuyup ikili sistemde %11111110 (onlu sistemde 254) ile AND mantıksal işlemine tabi tutarak bit 1-7 değerine dokunmadan gerçekleştiriyoruz bu işlemi.

Çünkü bu programda karakter ROM'unu okumak için I/O bölgesini aşağıdaki satırla kapattığımızda (ki $D000-$DFFF yani 53248-57343 arasında kalan 4K'lık bölgede C64'de hem RAM, hem karakter ROM, hem de I/O bölgesi yer almaktadır) interrupt'lar nedeniyle sistem kilitlenecektir.

Kod:
32 POKE 1, PEEK(1) AND 251

Aradaki satırlarda (35-38) ilk 64 karakterin ROM imajları 12288'den itibaren RAM'e kopyalanıyor.

Aşağıdaki satırla I/O bölgesi tekrar görünür hale getiriliyor.

Kod:
39 POKE 1, PEEK(1) OR 4

Devamında ise TIMER A kontrol yazmacı olan 56334 adresindeki 0. biti 'set' ederek (1 yaparak) interrupt'ları tekrar aktive ediyoruz. Bunu yapmak için ilgili yazmacın içeriğini PEEK ile okuyup ikili sistemde %00000001 (onlu sistemde 1) ile OR mantıksal işlemine tabi tutarak bit 1-7 içeriğine dokunmamış oluyoruz.

Kod:
POKE 56334, PEEK(56334) OR 1

İkili sistemi, mantıksal işlemleri (AND, OR, NOT, XOR) dokümanlarda okursan bu konuları daha rahat anlayabilirsin. Daha önceki mesajlarda anlatmak istediğim de buydu.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 17:48:52 ÖS
Lojik devre tasarım dersinde bunları gördük ama isin ısinden çıkamamıştım bu alanda kendimi geliştirmek istesem sıfırdan başlayıp bütün detayları öğrenmek isterim ama ben istediğim resmi bir cizdirebilsem bu sayfayı kapatmayı düşünüyorum

Sorum bu komutlar sanırım kalıp seklinde

31 POKE 56334, PEEK(56334) AND 254
Hep incelediğim programlarda  56334 hücresi hep 254 ile and lanmiş bende  bu sekilde yazarım

Benim bulman gereken ekran bellek haritası ve renk bellek haritası hakkında bilgi ama verilen turkçe kaynaklar assampli uzerinden anlatılmış :(

http://bardstale.brotherhood.de/talefiles/board/viewtopic.php?p=2504&sid=fba81c407c5494d15bbe63a09e4167a4 (http://bardstale.brotherhood.de/talefiles/board/viewtopic.php?p=2504&sid=fba81c407c5494d15bbe63a09e4167a4)

bu sitede işime çok yarıyacak bilgiler var ama ingilizce google translate ile anlamaya çalışıyorum :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 18:11:12 ÖS
10 rem * example 2 *
  20 rem creating multi color programmable characters
  31 poke 56334,peek(56334)and254:poke1,peek(1)and251
  35 fori=0to63:rem character range to be copied from rom
  36 forj=0to7:rem copy all 8 bytes per character
  37 poke 12288+i*8+j,peek(53248+i*8+j):rem copy a byte
  38 next j,i:rem goto next byte or character
  39 poke 1,peek(1)or4:poke 56334,peek(56334)or1:rem turn on i/o and kb
  40 poke 53272,(peek(53272)and240)+12:rem set char pointer to mem. 12288
  50 poke 53270,peek(53270)or16
  51 poke 53281,0:rem set background color #0 to black
  52 poke 53282,2:rem set background color #1 to red
  53 poke 53283,7:rem set background color #2 to yellow
  60 for char=60to63:rem program characters 60 thru 63
  80 for byte=0to7:rem do all 8 bytes of a character
  100 read number:rem read 1/8th of the character data
  120 poke 12288+(8*char)+byte,number:rem store the data in memory
  140 next byte,char
  150 print"{clear}"tab(255)chr$(60)chr$(61)tab(55)chr$(62)chr$(63)
  160 rem line 150 puts the newly defined characters on the screen
  170 get a$:rem wait for user to press a key
  180 if a$=""then170:rem if no keys were pressed, try again
  190 poke53272,21:poke53270,peek(53270)and239:rem return to normal chars
  200 data129,37,21,29,93,85,85,85: rem data for character 60
  210 data66,72,84,116,117,85,85,85: rem data for character 61
  220 data87,87,85,21,8,8,40,0: rem data for character 62
  230 data213,213,85,84,32,32,40,0: rem data for character 63
  240 end
benim aradığım program bu..... burda olanları bana kim satır satır açıklıyabilir :)
sanırım datalara vereceyim değerlerle kendi resmimi yapabilirim :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 13, 2012, 21:51:14 ÖS
Kod:
31 poke 56334,peek(56334)and254:poke1,peek(1)and251

bu satır $dc0e adresinin değerini $fe (%11111110) ile andleyerek en alt bitini sıfırlatyıp CIA 1 timerını durduruyor. sonra $01 adresini $fb (%11111011) ile andleyerek $d000 alanında ROM karakter setini aktif ediyor.

Kod:
35 fori=0to63:rem character range to be copied from rom
36 forj=0to7:rem copy all 8 bytes per character
37 poke 12288+i*8+j,peek(53248+i*8+j):rem copy a byte
38 next j,i:rem goto next byte or character

Bu bölüm $d000'daki ROM karakter setini $3000'e kopyalıyor. Kısacası ROM'daki C64'ün default karakter setini RAM'a aktarmış oluyoruz.

Kod:
39 poke 1,peek(1)or4:poke 56334,peek(56334)or1:rem turn on i/o and kb

Burada $01'in değerini eski değerine getiriyoruz, yani $d000 alanı artık I/O bölgesi olarak kullanılabilir durumda. CIA1 timerı da yeniden aktif.

Kod:
40 poke 53272,(peek(53272)and240)+12:rem set char pointer to mem. 12288

$d018 adresini kullanarak karakter seti pointerını $3000'e alıyoruz. Artık görüntülenen karakterler $3000'deki karakter seti. $3000'deki dataları değiştirerek istediğimiz karakterleri elde edebiliriz.

Kod:
50 poke 53270,peek(53270)or16

$d016 ile multicolor mode'u aktif ediyoruz.

Kod:
51 poke 53281,0:rem set background color #0 to black
52 poke 53282,2:rem set background color #1 to red
53 poke 53283,7:rem set background color #2 to yellow

$d021 ile iç ekran rengini siyah'a çeviriyoruz.
$d022 ve $d023 multicolor mode'da karakterlerin 2. ve 3. renklerini ifade ediyor. Bunları da kırmızı ve sarı yapıyoruz.

Kod:
60 for char=60to63:rem program characters 60 thru 63
80 for byte=0to7:rem do all 8 bytes of a character
100 read number:rem read 1/8th of the character data
120 poke 12288+(8*char)+byte,number:rem store the data in memory
140 next byte,char

bu bölüm "data" satırlarını okuyup $3000'deki karakter setinde istenilen bölgelere (60, 61, 62 ve 63. karakterler) taşıyan, diğer bir deyişle bazı karakterleri değiştiren bölüm.

Kod:
150 print"{clear}"tab(255)chr$(60)chr$(61)tab(55)chr$(62)chr$(63)

Bu satır datalarını değiştirdiğimiz karakterleri ekrana basan bölüm. Artık karakterlerin ROM karakter setindeki karşılıklarını değil, data satırlarından okunmuş bitmap değerlerini görüyoruz.

Kod:
170 get a$:rem wait for user to press a key
180 if a$=""then170:rem if no keys were pressed, try again
190 poke53272,21:poke53270,peek(53270)and239:rem return to normal chars

bir tuşa basılana kadar bekle, basıldıysa orjinal karakter setine dön ve multicolor modunu kapat.

Kod:
200 data129,37,21,29,93,85,85,85: rem data for character 60
210 data66,72,84,116,117,85,85,85: rem data for character 61
220 data87,87,85,21,8,8,40,0: rem data for character 62
230 data213,213,85,84,32,32,40,0: rem data for character 63
240 end

Her biri 8'er bytedan oluşan 4 karakterin değeri. Bu karakterlerin neye benzediğini görmek için 2'li (binary) sistemdeki değerlerini alt alta dizmek yeteri. Örnek:

Kod:
129= %10000001
37 = %00100101
21 = %00010101
29 = %00011101
93 = %01011101
85 = %01010101
85 = %01010101
85 = %01010101

Bu 60 numaralı karakterin ekranda nasıl görüneceği. Ancak multicolor modeda bunu yatayda yarı çözünürlükte (her karakter satırında 4 geniş pixel) ve renkli olarak düşünmek lazım. Bitleri tek tek değil, ikili gruplar halinde değerlendirmemiz gerekiyor. Şöyle ki;

%00 = A rengi ($d021 ile belirlenen arkaplan rengi)
%01 = B rengi ($d022 ile belirlenen birinci multicolor rengi)
%10 = C rengi ($d023 ile belirlenen ikinci multicolor rengi)
%11 = D rengi ($d800'den itibaren yer alan color memory ile belirlenen ve ilk 8 renk ile sınırlı olan üçüncü renk)

diye varsayarsak;

Kod:
129= %10000001 = BBAAAACC
37 = %00100101 = AABBCCCC
21 = %00010101 = AACCCCCC
29 = %00011101 = AACCDDCC
93 = %01011101 = CCCCDDCC
85 = %01010101 = CCCCCCCC
85 = %01010101 = CCCCCCCC
85 = %01010101 = CCCCCCCC

Bazı bölümlerde "CIA1 timer'ı nedir? $d018 nasıl karakter ekranını $3000'e aldı?" gibi soruişaretlerin olacağının farkındayım ancak sana daha önce tavsiye ettiğim şeyi yapıp Plazma'daki yazı dizilerini okursan, bunların hepsi orada açıklanıyor (sanırım CIA timerları hariç).


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 22:52:28 ÖS
skate bey ilgilendiğiniz icin tesekkurler  meskul oldugunuzun farkindayim ama tam ekran olarak ekrana resim çizmek icin üzerinde çalısmam gereken program bumu


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 13, 2012, 22:59:06 ÖS
skate bey ilgilendiğiniz icin tesekkurler  meskul oldugunuzun farkindayim ama tam ekran olarak ekrana resim çizmek icin üzerinde çalısmam gereken program bumu

Programla ne tür bir şeyler çizmek istiyorsunuz? Merak ettim de.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 23:02:29 ÖS
bir fotoğraf var onu bilgisayarda çizdircem

şimdi mantık 255 ascii karekterlerin herbiri karekter seti ve biz yukardaki programla kendi karekter setimizi yapıyoruz mesela ben ascii karekterilerin den olan "c" harfini oluşturan pikselleri rengarenk yapıp orjinal "c" nin yerine koyabilirim doğru anlamışmıyım sonra oluşturduğum bu karekter setlerini ekrana dizmek suretiyle bir  resim meydana getirebilirim mantık bunu?




Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 13, 2012, 23:15:40 ÖS
bir fotoğraf var onu bilgisayarda çizdircem

şimdi mantık 255 ascii karekterlerin herbiri karekter seti ve biz yukardaki programla kendi karekter setimizi yapıyoruz mesela ben ascii karekterilerin den olan "c" harfini oluşturan pikselleri rengarenk yapıp orjinal "c" nin yerine koyabilirim doğru anlamışmıyım sonra oluşturduğum bu karekter setlerini ekrana dizmek suretiyle bir&nbsp; resim meydana getirebilirim mantık bunu?

Hiçbir programcı, fonksiyonel ve prosedürel çizimler dışında bu tarz grafikleri program içinde tasarlamıyor. Kendi hazırladığı veya piyasada bulunan editörler ile grafikler bitmap veya karakter (tile) tabanlı olarak hazırlanıp daha sonra ana programa ya doğrudan entegre ediliyor veya depolama aygıtından yükleniyor. Yani tasarım programın içinden yapılmıyor.

Windows üzerinden çalışan çeşitli yardımcı programlar da mevcut.

http://www.coder.myby.co.uk/charpad.htm (http://www.coder.myby.co.uk/charpad.htm)

http://noname.c64.org/csdb/release/?id=75871 (http://noname.c64.org/csdb/release/?id=75871)

http://p1.untergrund.net/ (http://p1.untergrund.net/)

http://www.anigators.com/projekte/7up/ (http://www.anigators.com/projekte/7up/)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 23:24:01 ÖS
dediğini anlıyorum ama elimde imkanlar yok sadece teyp var tam ekran olmasada yarım ekran bişey çizdireyim zaten bir kereye mahsuz yapacağım
mantık olarak yukarıdaki gibimi olaya yaklaşmam gerekiyor.
mesela bende bir eğitim kaseti vardı belki sizde kullanmışsınızdır baya geometri sorularında çizimler yapıyordu ve puan verdiği ekranda yanlış hatırlamıyorsan üsküdara giderken çalıyordu  o kasetteki harfler yukardaki gibi bir programla italik olarak yapılmıştı sanırım


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 23:27:55 ÖS
verdiğin programlar işime yarıyacak istediğim resmi 160x200 çözünürlüğünde 16 renk olarak convert etmem için gerekiyor sonra bu piksel değerlerini tektek elle datalara gireceğim


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 13, 2012, 23:28:06 ÖS
bu karakter seti üzerine çizim yapmak için. eğer aynı karakteri tekrar tekrar kullanarak birşey çizmeyeceksen, tam ekran serbest çizim yapmak istiyorsan bitmap modu kullanman lazım. çok basit biçimde;

Kod:
poke 53265,59
poke 53272,24

bu iki komut ile;

$0400: video ram
$2000: bitmap
$d800: color ram

olacak şekilde ekran açmış olursun. eğer tek renk çalışmak istiyorsan zaten bilgisayar açılıştan bu modda geleceği için ek bir poke yapmana gerek yok. bu durumda 320x200 çözünürlükte tek renk çalışabilirsin. her 8x8'lik karakter alanının arkaplan ve çizim renkleri $0400'deki ekran adresinden değiştirilebilir. yani tek renk dediğimiz mod da aslında her bir karakter alanı içinde arkaplan ve çizim rengi olmak üzere 2 farklı renk şeklinde gerçekleşiyor.

Kod:
poke 53270,184

bunu kullanarak çok renkli moda geçersin. bu durumda arkaplan rengi her karakter için ayrı olmaz, $d021'in değeri tüm ekran için arkaplan rengine dönüşür. $0400 her karakter için 3 renkten birine işaret eder. $d800'deki renk ekranı ise bu durumda devreye girer ve kalan 2 rengi belirler.

bu açıklamaları yaptıktan sonra sana (vaktim olmadığı için) çok basit bir tek renk bitmap örneği.

Kod:
10 poke 53265,59
20 poke 53272,24
30 cb=11:rem arkaplan koyu gri
40 cf=1 :rem cizim rengi beyaz
50 c=cf*16+cb
60 for i=0 to 1023
70 poke 1024+i,c:rem $0400 alanini ayni renklerle doldur
80 next i
90 for i=0 to 8191
100 poke 8192+i,i and 255
110 next i


Bu tüm karakterlerin arkaplanını koyu gri, çizim rengini beyaz ile doludurur ve bitmap alanını artan değerlerdeki (saçmasapan) bytelarla doldurur. Bundan fazlasını anlayabilmen, birşeyler yapabilmen için soru sorman değil döküman okuman gerekiyor. Daha önce makale halinde yazdığımız şeyleri tekrar tekrar anlattırıyorsun çünkü bize. :)

http://www.plazma-dergi.org/ (http://www.plazma-dergi.org/)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 13, 2012, 23:42:26 ÖS
Skate abi dökümanlarını seve seve okurum ancak konuları assamli üzerinden anlatılırsa pek anlamam gibi geliyor ama biraz bişeyler anlayınca heveslendim senin dökümanları okuyacağım :)

şimdi ben 160x200 çözünürlüğünde 16 renk olarak bişey çizmeye çalışcağım

http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0 (http://www.lemon64.com/forum/viewtopic.php?t=34083&postdays=0&postorder=asc&start=0)
burdaki arkadaş tamda benim isteğim şeyi yazıyor hatta bu foruma uye olup kendisine çatpat ingilizcemle sormaya çalıştım ama cevap gelmedi

1 POKE 53265,PEEK(53265) OR 32
2 POKE 53272,PEEK(53272) OR 8
3 POKE 56576,PEEK(56576) AND 252
10 FOR N = 0 TO 999
11 READ C
12 POKE N+49152+1024, C
13 NEXT N
20 FOR N = 0 TO 7999
21 READ L
22 POKE N+49152+8192, L
23 NEXT N
100 GOTO 100

bu kodlar ile yapmayı başarmış ama dataları tabii çok olduğu için yazmamış
senin verdiğin orneği 160x200 çözünürlüğünde 16 renk modunda olacak sekilde değiştirirmisin :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 13, 2012, 23:56:25 ÖS
Kod:
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
40 for i=0 to 1023
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 8191
90 poke 8192+i,rnd(1)*256
100 next i

herşeyi random'a çevirdim. 16 renk ekran açıyor. tüm video ram, color ram ve bitmap alanını random değerlerle dolduruyor. sen "rnd(1)*256" olan yerleri kendi istediğin değerleri dolduracak şekilde değiştirmelisin. nasıl yapacağını bilmiyorsun ve işte o nasıl yapacağın konusu plazma'da yazıyor.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 14, 2012, 00:00:40 ÖÖ
tamam aradığım program bukadarcık bundan sonrasını hallederim çok teşşekkür ederim artık dergilerinizi okuyup için mantığını öğrenmeye çalışacağim. iyi akşamlar :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 14, 2012, 00:02:15 ÖÖ
Kod:
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
40 for i=0 to 1023
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 8191
90 poke 8192+i,rnd(1)*256
100 next i

herşeyi random'a çevirdim. 16 renk ekran açıyor. tüm video ram, color ram ve bitmap alanını random değerlerle dolduruyor. sen "rnd(1)*256" olan yerleri kendi istediğin değerleri dolduracak şekilde değiştirmelisin. nasıl yapacağını bilmiyorsun ve işte o nasıl yapacağın konusu plazma'da yazıyor.

censez41 bu işi herhangi bir doküman okumadan başaracak galiba, bunu yaz bir kenara. VIC-II çipi grafik mimarisini, register'lerin fonksiyonlarını, bitmap bellek dizilimi vb birşey araştırmadan bu noktaya gelmek de her babayiğidin harcı değil.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: witchdoktor üzerinde Aralık 14, 2012, 00:39:02 ÖÖ
@censez41
Niyetim kimseyi küçümsemek değil ama retro programlama olaylarına ilgin varsa, birşeyler okuyup adım adım tatbik etmenin önemli olduğuna inandığım için, belirtilen dokümanları okumamaktaki ısrarın bana şaşırtıcı geldi belki de.

Link'leri firewall nedeniyle göremiyorum ama güzel yapımlar olduklarına eminim.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 14, 2012, 00:53:04 ÖÖ
Tam olarak ilgim yok sadece resim cizdirme icin okumamam gereken yerleri ayıklayıp okumayı düsunuyorum neden ilgim yok dersen çünkü bu alanda bir yerlere gelmek uzun soluklu bir yolculuk assemply bilmek gerek ora seviye ingilizce gerek ve disket sürücü gerekiyor :) yani bu saatten sonra ne kadar istesemde artık benden geçti sizin yardımınıza  istediğim programı yazsam bana yeterli
Hepinize iyi geceler".........


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 14, 2012, 00:57:37 ÖÖ
censez41, yaptığın şeyler hiç de öyle iki dakikalık işler değil, gayet güzel iş çıkarmışsın, taktir ettim. iyi grafiker ve müzisyenlerle çok güzel demo ve oyunlar yapabileceğinden hiç şüphem yok.

şimdi gelelim witchdoktor'ın mesajına ve senin algına. sen haklı olarak eleştirel bir mesaja tepki gösterip bir nevi kendi yeteneklerini sergileme, kendini kanıtlama yoluna gitmişsin. bu aslında çok doğal ancak lüzumlu değil. ben olaya dışardan bakan biri olarak şunu söyleyebilirim. witchdoktor senin yeteneklerini değil öğrenme metodunu eleştirdi ki eleştirisinde haklı, benim önceki mesajlarımda da defalarca "önce şu dökümanları bir oku hele..." mesajını görebileceğini tahmin ediyorum. :) senin verdiği tepki ise "öyle ya da böyle, bak ben bunları yapabiliyorum" şeklinde. doğru, yapabiliyorsun. ama belki biraz daha mühendis mantığıyla ilerlersen (ki ben şahsen mühendislik eğitimi olmayan birisiyim ama çoğu metodu bu biçimde kullanırım), çok daha başarılı olursun.

demek istediğimi özetlemem gerekirse, bu yaptığın örnekleri yaptığın süre ve proje büyüdüğünde projenin başarılı olma ihtimalleri aslında tamamen senin öğrenme ve çalışma yöntemlerine bağlı. eğer yaptığın şeylerin bir kısmını tam olarak anlamadan, örneklerden bakarak yapıyorsan, bir süre sonra sebebini bulamadığın sorunlarla karşılaşabilirsin. sorunlar çıktıkça sebebini bulabilir ve sebebi bulduğunda da hem sorunu çözer, hem de bu bölümle ilgili eksik bilgilerini tamamlamış olursun. ama bu hem aşırı bir zaman kaybı, hem de proje büyüdükçe işin gittikçe sarpa sarması, köklü altyapı değişikliği gereksinimlerini v.s. getirir. ama baştan bir örneği olduğu gibi kullanıp modifiye etmek yoluna gideceğine, aynı örneği belki 15 gün sonra yazabilecek hale gelmeye gayret edersen, o kaybettiğin 15 gün uzun vadede sana kazanılmış aylar olarak geri dönecektir.

böyle biraz nutuk atar gibi oldu kusura bakma ama bizlerden yardım istiyorsan sana yalnızca örnek kod yazıp üç beş satır açıklama yapmamız, hem senin, hem de bizim zamanımızı boşa harcayacağından bunları belirtmek istedim.

bu arada sana bir reference guide vereyim. buradan tüm adreslerin hangi bitleri ne işe yarıyor v.s. bilgilere ulaşabilirsin. yapmak istediğin iş için seni en çok ilgilendiren kısım "VIC-Registers & Infos" bölümü.

http://unusedino.de/ec64/technical/aay/c64/ (http://unusedino.de/ec64/technical/aay/c64/)

not: assembly (b ile) ;)

edit: censez41, mesajında kötü birşey yazmamıştın ve çalışmalarını paylaşmıştın. silmen iyi olmamış. benim mesajımdaki referanslar da anlamsız oldu bu durumda. ;)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 14, 2012, 01:15:03 ÖÖ
Kısıtlı zamanınızı benim icin ayırıp yazdığınız bu mesajlar icin cok teşekkür ederim ben ise diyebilecek
çok  sözüm yok tamamen  haklısınız keske bir 20 sene evelinde imkanlar olsaydı da bu paylaşımları yapsaydık o zaman  konumum cok farklı olabilirdi  ancak kısıtlı zamanımda hobi olarak yaptığım için çok ta yeni şeyler öğrenmeye vaktim olmuyor ama c64 çalıştığı sürece zaman zaman yeni bişeyler denemeye çalışacağım
Tekrar teşekkürler herkeze iyi geceler.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 17, 2012, 19:32:59 ÖS
Timanthes programında yuklediğim resmi 160*200 16 renk olarak çevirip jpg olarak nasıl kaydetcem?


Daha sonra bu jpg resmini visual basic de yukleyiP c64 deki dataları yazdiracagim  ayrıca satır numarası ekleyip  txt dosyasına kaydetçem yani visual basic e bir nevi program yazdırcam bunun icin bir algoritma yazabileceğimde inanıyorum


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 18, 2012, 01:45:49 ÖÖ
@censez41: eğer timanthes'in son versiyonunu indirdiysen zaten PRG olarak kaydedebiliyorsun. hatta resim gösterme rutinine kadar yazıyor. sana bahsettiğim bitmap, video ram ve color ram datalarını kendisi oluşturuyor. şimdi senin yapmaya çalıştığın şey, doğrudan bu dataları kaydedebilen bir programdan JPG kaydedip (ki kayıplı sıkıştırmaya sahip olduğu için asla tercih etmezdim yerinde olsam. PNG falan çok daha mantıklı olur), sonra VB'den bir converter yazıp, herşey yolunda giderse Timathes'den doğrudan üretebileceğin dataların aynısını üretmek. Bence öğrenme amaçlı diyorsan durma, dene. Amaç c64'de çizdiğin resmi gösterebilmek ise sadece, Timanthes bunu yapabiliyor. Hatta FLI gibi daha komplike grafik modları için bile PRG kaydetme özelliği olan versiyonu var, en son X 2012'de kullandılar gözümün önünde. Tavsiyem Timanthes'in yanında gelen dökümanları okuman, olmadı (döküman okumayı sevmiyorsun ;)) biraz yukardaki menülerde dolaşıp ne neymiş test etmen.

Sana ipuçları.

1) C64 renklerinde bir layer oluşturmak için yeni layer oluştur ve o layerın üzerinde çalış. (CTRL+SHIFT+n)
2) Ya bu layer'a istediğin resmi yüklet ve renkleri C64 renklerine çevir ya da renkleri çevirip pixellemeye başla. Renkleri çevirme işlemi "Effects->C64 Colorramp" bölümünden yapılıyor.
3) Layer 2'nin üzerine çift tıkla ve "Mode" olarak "Hires multicolor" seç.
4) "File->Save" bölümünden ister PNG kaydet, ister doğrudan Commodore 64 PRG. PRG zaten doğrudan bir C64 emülatöründen çalışabilir haldeki dosya.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 19, 2012, 20:35:44 ÖS
skate abi

http://www.atlantis-prophecy.org/convert.htm (http://www.atlantis-prophecy.org/convert.htm)

bu sitede timantes in kullanımını resimli çok güzel anlatmış buna göre bir örnek yapmaya çalıştım ve prg uzantılı dosya hazırladım
 bu prg yi emulatorla birlik te aç yapınca resim çıkmıyor :(

bu şekilde oluyor

(http://g1212.hizliresim.com/14/m/h20fr.png) (http://bit.ly/c25MCx)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Aralık 20, 2012, 08:49:38 ÖÖ
timanthes sadece resim datalarını üretiyor,ürettiği .prg'nin bitmap,videomap ve colormap datalarını hafızada uygun yere atıp,ekrana basacak mini bir programa ihtiyacın var,bununla ilgili skate'in plazmada yazdığı grafik gösterme ile ilgili harika bir tutorial var,ihtiyacın olan tüm bilgiler dataylı olarak yazıyor,fakat sen basic'de yapmak istediğinden işini görürmü bilmem,çünkü assembler.

http://www.plazma-dergi.org/ (http://www.plazma-dergi.org/)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 09:44:17 ÖÖ
Joker bey tesekkurler bu dataları nasıl açabilirim prg dosyasına benim mini programı nasıl ekleyecem.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: joker_ üzerinde Aralık 20, 2012, 11:25:30 ÖÖ
timanthes'in ürettiği dataları herhangi bir hex editörü ile alabilirsin,
benim kullandığım hex editörü xvi32

http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm)

yapman gereken .prg dosyasını xvi32 ile aç,ilk baştaki 2 byte yükleme adresidir,onları sil Timanthes $2000 olarak kaydeder,hex editröde ilk 2 byte 00 20 olarak görülüyor.
şimdi geriye kalan dataların ilk 8000  byte'ı Bitmap
8000-9000 arası = 1000 byte Videomap
9000-10000 arası = 1000 byte Colormap

ilk önce bitmap'i alalım,editörden $1f40'a ilerle,alttaki status bardan da görebilirsin,burada Edit/Delete From Cursor seç,sadece bitmap kaldı elimizde,farklı kaydet ile kaydet,orjinal datalar lazım :)

şimdi videomap'i alalım,orjinal dosyayı tekrar yükle,ilk iki byte'ı sil,şimdi $1f3f 'e ilerle Edit/Delete To Cursor diyerek ilk 8000 byte'ı uçur,daha sonra $3e8 'e ilerle  Edit/Delete From Cursor diyerek diğer datalarıda uçur,farklı kaydet ile videomap dosyalarınıda al.

sıra geldi colormap dosyalarını almaya,
orjinal dosyayı tekrar yükle,ilk iki byte'ı sil,$2327 'ye gel,Edit/Delete To Cursor diyerek bitmap ve videomap datalarını uçur,geriye sadce colormap dataları kaldı,faklı kaydet seçeneği ile kaydet.

şu anda elinde bitmap,videomap ve colormap dosyaları hazır,artık basic ile nasıl kullanacağını bilmediğimden birşey diyemem,fakat assemler ile kullanmak istersen,gerekli program örneğini yazarım :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 11:42:50 ÖÖ
PRG'yi yüklet ve sonra aşağıdaki kod bloğunu olduğu gibi Vice'a copy&paste ederek test et.

Kod:
new
0 pic = 8192
1 vram = pic+8000
2 cram = vram+1000
3 bcol = cram+1000
4 vmem = 1024
5 cmem = 55296
6 poke 53281,peek(bcol)
7 poke 53265,59
8 poke 53270,184
9 poke 53272,24
10 for i = 0 to 999
11 poke vmem+i,peek(vram+i)
12 poke cmem+i,peek(cram+i)
13 next i
14 goto 14
run


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 11:52:57 ÖÖ
Joker bey tesekkurler dataları almak icin bu yontemi deneyeceğim sonra c64 e elle girerim
Skate bey tesekkurler benim icin gene en kolay yontemi sunmuşsunuz  ilk olarak bunu deneyeceğim



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 13:07:27 ÖS
(http://f1212.hizliresim.com/14/n/h2jnm.png) (http://bit.ly/c25MCx)

brogramı prg yaparken yukarıdaki değerlri değiştirmeden kullandım
ama bulduğum örnekte 320*200 çözünürlüğün ve&nbsp; bitmap multicolor modunda anlattığı için şimdilik bende böyle yaptım

(http://f1212.hizliresim.com/14/n/h2jrj.png) (http://bit.ly/c25MCx)

sonuç bu şekilde ekranda bağzı pikseller çıktı

not:kodun başındakli new komudu önce belleği temizliyor diye biliyorum lakin o kumudu yazınca hiç piksel çizdirmiyor :)






Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 13:36:53 ÖS
hayır new komutunun amacı o değil. eğer prg'yi vice'dan drap&drop ile yükletirsen, $2000'den başlamasına rağmen bunu basic kodunun bir parçası olarak görmeye başlıyor. bu yükleme adresleriyle ilgili bir durum. bu durumda new demeden basic kodunu yazarsan $2000'deki grafik ekranı hazfızada iler kaymaya başlar. yani senin ekleyeceğin her basic satırında araya satır ekleniyormuşcasına yüklenen grafiğin sonuna kadar olan hafıza alanı sürekli ileri kaydırılır. new dediğinde $2000'deki grafik hafızadan silinmez, yalnızca basic adres pointerları resetlenerek yazacağın basic kodunun $2000'deki bölgeyi etkilemesi engellenir.

aslında prg'yi doğrudan değil de assembly monitöründen yükleyecek olursan böyle bir sorunla karşılaşmazsın. ancak new'in her iki durumda da bir zararı yok.

yapman gereken.

1) PRG'yi vice penceresine drag&drop et.
2) benim verdiğim kodu copy&paste et.
3) çalışmazsa Kayahan'dan "ben nerde yanlış yaptım?" sözleri geçen parçayı dinle ve 1. adıma geri dön. :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 13:58:17 ÖS
skata abi kayahanın bu şarkısı hangi makamdan söyleniyor :)
şaka bir yana nasıl yaptığımın video sunu hazırladım şimdi upload etcem biraz uzun sürecek

birde xvi32 editörle prg dosyasına bir baktım anının ben burdan dataları nasıl alacam çok karışık :(
daha basit yolu yoksa ben gene kendi visual basic programımı yazmaya çalışayım


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 15:15:06 ÖS
http://www.youtube.com/watch?v=jO-NM01nvdc&feature=youtu.be (http://www.youtube.com/watch?v=jO-NM01nvdc&feature=youtu.be)

işte ben bu şekilde yapıyorum skate hocam sakın hatama bulduktan sonra beni azarlama ben daha çaylağım :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 15:24:23 ÖS
preview'ın boş çıkmasından ya da hata mesajından da mı hiç kıllanmadın? :)

öncelikle resminin boyutunun doğal olarak 320x200 olması lazım. Hata mesajı belki de bundan kaynaklanıyordur. Preview penceresinde ise sağ tarafta resmi görebilmen lazım. O pencere boş çıkıyorsa, sonuç da boş çıkacaktır.

Bana da video çektireceksin illa ki :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 15:49:17 ÖS
hocan 320*200 mezusunu sorun edeceğini biliyordum farkındaysan ayarlarken fazla değil eksik ayarladım boş pikselleri kendi doldursun artık :)
ama tam tamına ayarlayında olmayacak şimdi bide öyle deniyeyim :)



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:04:15 ÖS
skate abiiiiiiii oldu sana demiştim 320*200 olcak diye lol :)
peki bunu 160*200 16 renk olarak nasıl yapcaz
bu modda mı daha iyi resim olur yoksa 160*200 16 modda mı


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 16:06:10 ÖS
Video'yu şu URL'e yüklüyorum. Henüz yükleme bitmedi. Bittiğinde izlersin. :)

http://www.youtube.com/watch?v=rDvBmGnLehg (http://www.youtube.com/watch?v=rDvBmGnLehg)

Edit: Yükleme sona erdi.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:08:52 ÖS
(http://b1212.hizliresim.com/14/n/h2q0p.png) (http://bit.ly/c25MCx)

çok renksiz oluyor 16 renkle daha iyi olur belki ama bu şekilde daha az data yazmak gerekiyorsa bunuda rağzıyım :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:17:43 ÖS
sıkata abi bu resmin datalarını timanthes programının vermemesi buyük eksiklik bunu c64 e kablo yada disketle aktarmak  mümkünmü

 dataları vb ile almak istesem resmi vb  yükleyeceğim sol üst köşeden başlıyarak pikselleri tarayağım ama dataları hesaplama konusunda her türlü fikre açıyım ama bunuda sen yap diyorsan random olarak ekrana renkli piksel basan programda benim için yeterli    :-[


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:30:10 ÖS
izliyorum teşekkürler
bu video yapman gerçekten herkez için çok yararlı olacak çünkü ben youtube da bir örnek dahi bulamadım



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 16:31:16 ÖS
benim video'yu izleyince renk olayının nasıl yapıldığını anlayacaksın.

c64'e birçok yöntemle aktarabilirsin. ama hepsi de ek kablo ya da donanımlar gerektirir.

eski klasik yöntem X1541 kablosuydu (sonradan XE1541, XM1541 gibi birçok kablo çıktı). Bu kablo bilgisayarın paralel portundan 1541'e bağlantı sağlardı. ama günümüzde pek kullanılan bir yöntem değil.

birçok donanım çıktı. fd2000, 1581 gibi 3.5 disket okuyan drivelar. ide64 interface'i gibi c64'e hdd bağlamaya yarayan şeyler falan. günümüzde bu çözümleri de unut bence.

sonra MMC64 devri yaşandı (arada çıkan bazı çözümleri atladım tabii). MMC64 SD kart ukuyabiliyordu. günümüzde halen Retro Replay kartuşuyla birleşmiş MMC Replay versiyonları bulunabiliyor ama bu da artık tarih oldu.

Günümüzde iki olay var.

1) 1541 Ultimate-II
2) Chameleon

İkisi de ucuz değil. Chameleon aslında emülasyon gibi birşey. Commodore 64'ün yerini alıyor. 1541 Ultimate ise sadece C64'e takılan bir kartuş ama tüm transfer işlerini ve çok daha fazlasını çözüyor. Ben de 1541 Ultimate-II kullanıcısıyım. En az 200-300 TL'yi gözden çıkarman lazım ama.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:38:18 ÖS
resimdeki öndeki arkadaş dozlu raflarda çıkmıştı ama çok konuşkan biri değil o senmisin yoksa :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 16:44:15 ÖS
sağdaki benim. soldaki endo, ortadaki hydrogen. Bu sene Hollanda'daki X Party'e gittiğimizde çekmiştik bu programı. Endo'nun tozlu raflarda çıktığını sanmıyorum, karıştırmış olabilirsin bu arada.

Eskiden ben ve Hydrogen'in sunduğu Computer Scene programı vardı Teknoloji TV'de. Endo da ona konuk olmuştu. Bu 3'lü TV ekranlarında o zaman buluşmuştu. :)

http://trsceners.untergrund.net/computerscene/ (http://trsceners.untergrund.net/computerscene/)

Bölüm 5


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 16:50:49 ÖS
skate abii ünity programı kurmuşsun nasıl kullanmayı çözdünmü bi ara bende androit için bişeyler yapma hevesiyle kurdum ama hevesim hemen kaçtı keşke basic dilini destek verseymişti
ben oyunlarımı dark basic ile yapıyorum daha önce duymuşmuydum
ama 10 aydır çalışıyorum bu yüzden hiç birşey yapma için zamanım olmuyor


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 20, 2012, 16:55:08 ÖS
topic "c64 resim yapma". konuyu dağıtmayalım. ancak evet, unity ile oyun geliştiriyorum. "kullanmayı çözmek" diye birşey yok. dökümanlarını ve video tutoriallarını inceliyor ve birşeyler yapmaya başlıyorsun. birşeyi çözmek için o şeyin kapalı/şifreli falan olması lazım. örneğin sierra'nın oyunlarını reverse engineer ederek sierra'nın game editörünü ortaya çıkarıp yayınlamışlardı. ben buna "çözmek" derim. unity'de çözecek birşey yok. öncelikle bu bakış açısına sahip olman lazım. ama tekrar hatırlatıyorum, konu "c64 resim yapma".


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 20, 2012, 17:05:06 ÖS
şimdilik bu kadar iyi akşamlar


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 21, 2012, 17:33:51 ÖS
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
40 for i=0 to 1
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 9
85 read bak
90 poke 8192+i,bak
100 next i
110 data 24,60,102,126,102,102,102

00011000 24
00111100 60
01100110 102
01111110 126
01100110 102
01100110 102
01100110 102
00000000 0
skate abii senin verdiğin rndom piksel basma programı ile şöyle bişey yaptım belkide aptalca bişey bilmiyorum ama  dataları nasıl yacağımı anlamaya çalışıyorum
bu şekilde ust kösede a yı andıran bir şekil çıktı
yukarıdaki bitleri çözümlersek

01100110 bu bitleri ele alırsak
01=arkapilan rengi(butun hucrelerde aynı olmalı)
10=1.renk
01=2.renk
10=3.renk
bu mantığa göre benim yazdığım datalar yanlış çünkü 01100110 biti bir piksel için bütün 4 rengi de aktif ediyor
anlıyomuyum hocam senin düzeltmek istediğin varmı


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 21, 2012, 18:54:50 ÖS
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
40 for i=0 to 1023
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 8191
90 poke 8192+i,rnd(1)*256
100 next i
konuları okudukça aklım daha çok karışıyor


60 poke 55296+i,rnd(1)*256
 neyi ifade ediyor bu 4*8 piksellik hucrede
arka pilan rengini mi ifade ediyor eğer öyleyse arka plan butun hucrelerde aynı olmalı diye bir kural yokmu bu kodu çıkarınca programda bir fark görmuyorum bunun anlamı arka planın tamamının uzerine baska piksel basıldığınımı anlamalıyım


poke 8192+i,rnd(1)*256

ekrana rengarenk pikseller basıyor ama  bu bir hucrede arka plan hariç 3 renk kuralını nasıl ihlal etmiyor
8192 den başlıyarak her belleğe 1 bayt veri yukluyoruz
00000000 dan 11111111 e kadar bununu açılımı
01=arkapilan rengi(butun hucrelerde aynı olmalı)
10=1.renk
01=2.renk
10=3.renk
bu şekilde olmadığı kesin bana bu bitlerin anlamını söylermisin dataları yazmam için bunları bilmeliyim skate abii help me :(


ayrıca neden 8192 ye kadar dongu var 8000byte yokmuydu
(160x200x2)/8=8000 byte



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: Skate üzerinde Aralık 22, 2012, 04:39:42 ÖÖ
şu kadarını söyliim, anlamaya başladın ve artık doğru yola girdin diyebilirim. :)

iki mesajına sırayla cevap.

1) for i = 0 to 9 yerine 0 to 6 kullanman lazım. toplam 7 data var ve bu 1 to 7 ya da 0 to 6 ile ifade edilir. sonrasında "out of data error" alırsın. bu hata mesajını grafik ekranındayken göremezsin ama mesaj her halikarda çıkar ve grafiğin bir bölümünün renklerini bozar. bu nedenle öncelikle kaç adet veri varsa o kadarlık bir döngü yapman gerektiği kuralını unutma.

multicolor modeda olduğun için A harfi olması gerektiği gibi çıkmıyor. poke 53270,184 yerine poke 53270,200 yazmayı dener ya da bilgisayar zaten tek renk modunda başladığı için 20 numaralı satırı tamamen silersen (20 yazıp enter'a basman yeterli), A harfi düzgün gözükecektir. İstersen multicolor'a uygun bir A çizmeyi de deneyebilirsin.

2) Kafanın karışması normal. Çünkü bir arkaplan ve 3 karakter rengi var. Ne neyi ifade ediyor ilk bakışta anlamak güç.

Öncelikle arkaplan tüm karakterlerde ortak ve $d021 (53281) adresi ile kontrol ediliyor. poke 53281,x (x: 0-15 arası bir sayı) şeklinde arkaplan rengini değiştirebilirsin. tek renk modunda arkaplan rengi tamamen video memory yani bu koddaki "poke 1024..." bölümünden alınmaktadır. Ancak çok renkli modda 53281 adresi tüm ekran için ortak renk belirler.

Peki diğer 3 renkten ne haber? Öncelikle şunu düşünmemiz lazım. 1 byte'ın kapasitesi nedir ve commodore'da kaç renk vardır? 1 byte 0-255 arası 256 değer alabilir (2^8) ve Commdore 16 renktir (2^4). Bu durumda 1 byte kaç farklı değer tutabilir? Cevap: 2. 16*16 = 256 ya da diğer bir deyişle 2^4*2^4=2^8 olduğu için 1 byte 0-15 arası değerlerden tam olarak iki tane barındırabilir ve kapasitesi tam olarak dolar.

Bu açıklamadan sonra nibble kavramına geçmek istiyorum. 1 byte kaç bittir? 8. Peki nibble dediğimiz şey nedir? 1 byte'ın yarı kapasitesi, yani 4 bit. Tam olarak da c64 renklerinin ihtiyacı olan boyut.

Byte'ımız şu olsun

%11011001

Bu byte'ı tam ortadan ikiye ayıralım.

%1101 %1001

Bu iki parça byte'ın nibblelarıdır. Yani üst 4 bit ve alt 4 bit. Her ikisi birer rengi ifade edebilir. İşte video memory'deki bu iki parça birer renk ifade eder.

Bildiğin gibi 16'lı sayı sistemi, yani hexadecimal sayı sistemi 0-F aralığında bir basamak için 16 farklı değere sahip olur, sonrası için 2., 3. v.s. basamaklar devreye girer. 16'lı sayı sisteminin tek basamağı tam olarak bir nibble'a tekabül eder.

Örneğin biz 1024'deki video memory'e onlu sayı sistemine göre 103 yazdık. Bu hangi iki renge denk gelir ilk bakışta görmek zor. Çevirim yapmak lazım. Yani;

103 / 16 = 6 (kalan 7)

Bu bölme işleminin sonucu üst nibble'ın değerini verir. Yani 6 (mavi) rengine denk gelir. Alt nibble ise bölümden kalan sonuçtur. Ya da diğer bir hesap yöntemiyle bölümün tam sayı sonucunu bulduktan sonra;

103 - (16 * 6) = 103 - 96 = 7

şeklinde bulunabilir. Bu da alt nibble, yani 7 (sarı) rengi olduğunu gösterir. Demek ki biz 103 yazdığımızda 3 renkten 2'si mavi ve sarı oluyormuş. Peki bunu sayıya baktığımız gibi daha kolay görmemizin bir yolu yok mu? Elbette ki var, hexadecimal sistem.

103 = $67

Hex düzende 67'ye eşit. Her bir basamak tek başına bir rengi ifade ediyor bak, 6 ve 7.

Başka bir örnek.

194 = $c2

C ve 2. C'nin 10'lu sayı sisteminde karşılığı 12'dir. Bu durumda 12 ve 2, yani gri ve kırmızı.

Bu açıklamalarım geriye bir soru işareti bırakıyor. Bu 3. renk nerde? İşte renk belleği (color memory) denilen ve $d800 (55296) adresinde yer alan bu alan 3. renk için. Peki her byte'a iki renk sığıyordu, renk belleğinde bu iş nasıl oluyor. Çok basit, alt 4 bit (sağdaki 4 bit) 3. rengi ifade ediyor, soldaki 4 bit ise bir işe yaramıyor, çöp. Bu durumda renk belleğine olduğu gibi renk kodunu yazmak yeterli. Yani yeşil renk istiyorsak doğrudan 5 yazabiliriz.

%AAAABBBB = $AB

A = Kullanım dışı
B = Renk değeri

Bu durumda 5 rengini vermek için 5'in 16'nın herhangi bir katıyla toplam değerini de versek sonuç değişmez. Kısacası.

$05,$15,$25,$35,$45...

Decimal (10'lu) sayı sistemindeki karşılıkları

5,21,37,53,69 v.s. olan tüm byte değerleri alt nibbleları 5'e eşit olduğu için 3. rengi yeşil yapacaklardır.

Ve bunların hepsi Plazma'da yazıyor, bu nedenle sana çok kızıyorum. :)

döngünün 8191'e kadar olmasında haklısın, 7999'a kadar olması yeterli. ben kafamdan $2000'lik bloğu dolduracak şekilde yazmışım o loop'u, çünkü son 192 byte'ın bitmap ekran ya da video/color ramler açısından bir espirisi yok, birşey yazsan da sorun çıkmaz. Amacımız sadece bitmap alanı doldurmaksa 0 to 7999 doğrusu olacaktır.

Son olarak peki hangi renk hangi adresten set ediliyor dersen;

00 = arkaplan rengi $d021 (53281) tüm ekran için ortak renk, tek adres
01 = 1. renk $0400-$07e7 (1024-2047) üst nibble (sol 4 bit) %XXXX----
10 = 2. renk $0400-$07e7 (1024-2047) alt nibble (sağ 4 bit) %----XXXX
11 = 3. renk $d800-$dbe7 (55296-56295) alt nibble (sağ 4 bit) %----XXXX

En sol üstteki karakterin renklerini tek tek ayrı satırlarda set eden program örneği:

Kod:
0 c0 = 0: c1 = 10: c2 = 7: c3 = 14
1 poke 53281,c0
2 poke 1024,(peek(1024) and 15) or (c1*16)
3 poke 1024,(peek(1024) and 240) or c2
4 poke 55296,c3

Buradaki peek ve or'ların sebebi bir rengi set ederken aynı bytedaki diğerini bozmamaktır. Gerçi her iki rengi de değiştireceksek kolayca iki satırı şu şekilde birleştirebiliriz.

Kod:
0 c0 = 0: c1 = 10: c2 = 7: c3 = 14
1 poke 53281,c0
2 poke 1024,c1*16+c2
4 poke 55296,c3

Çok fazla kavram bir arada geçmiş olduğu için tek seferde tüm anlattıklarımı anlamayabilirsin, normaldir. Daha önce ne kadar programcılık tecrüben olursa olsun Commodore 64'de birşeyler yapmaya gelince en çok kendini geliştirmen gereken taraflar bit tabanlı işlemler, binary ve hexadecimal sayı sistemleri (2'li, 16'lı) ve benzeri konulardır. Commodore'ûn kısıtlı hafızası "ya ne uğraştırıyorsun bit işlemleriyle, 3 renk için 3 tane memory alanı kullansan, hiç bizi uğraştırmasan olmaz mıydı?" demeye müsade etmediğinden bunları öğrenmek kritik bir hal alıyor. Ama şu faydası da var. Yarın öbürgün PC'de bir network paketi ya da multimedia dosya formatlarının headerlarını parse etmen gerekirse "bu ne lan böyle, ohaa çok zormuş" demez "aaa, tam benlik" dersin. :)

bkz: http://tools.ietf.org/html/rfc6184 (http://tools.ietf.org/html/rfc6184)

Kod:
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |V=2|P|X|  CC   |M|     PT      |       sequence number         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           timestamp                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           synchronization source (SSRC) identifier            |
      +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
      |            contributing source (CSRC) identifiers             |
      |                             ....                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Herşey byte byte tutulmaz. :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 22, 2012, 13:51:49 ÖS
skata abi
plazma dergilerini de okuyorum ama soru cevap çeklinde olması daha anlaşılır oluyor :)
dergileriniz çok güzel kapak resimleri çok başarılı konularıda tam benim ilgi alanıma giriyor zaman zaman tum  yazıları okuyacağım

yukarıdaki bilgiler ışığında datalara verdiğimiz değerler piksellerin renkleri için nasıl bir rol oynuyor yada etkisi var mı
şimdi
4*8 piksellik hücrede
11101111
11111011
10101111
11110101
bu bitmap bellek haritasına yükleyince 0 olan yerler piksel off konumunda ve arka plan rengi alır on konumunda ise üç renkten birini mi alır sorun şu ki üç renkten hangisini alır

şimdi skate abi timanthes programı ile aldığım bmp resmi her hücreye 3 renk gelecek çekilde konvert etti değilmi ben burda en çok kullanılan rengi arka pilan rengi olarak atayabilirim mesela resimdeki siyah pikseller olduğu zaman data da o pikseli kapalı gösteririm ve arka plan olarak tanımladığım siyah rengi vermiş olurum
diyer üç renk  konusunu anlamadım

40 for i=0 to 1023
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
bu kodları tam anlamadım  video memoriye 2 color memoriye 1 renk yerleştirdik datalarla on konumuna getirdiğim pikselin bu 3 renkten hangisini alacağını nasıl belirteceğim.





 



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 22, 2012, 14:07:01 ÖS
skate abi  bana ust koseye yukarıdaki programla  renkli "a" yazdırabilirmisin ben onu inceleyerek sorularıma cevap bulabilirim plzz :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 22, 2012, 20:49:48 ÖS
http://trsceners.untergrund.net/computerscene/ (http://trsceners.untergrund.net/computerscene/)

bu link i farketmemişim tekneloji tv yi izlerdim sizide muhakkak görmüşümdür senel olarak ilgisizlik sizin programına değil teknoloji tv nin kendisineydi bence zaten kapandı gitti yazık oldu malesef son dönemlerinde ilgi çekmek için alakasız programlar yapmaya başlamışlar dı.


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 23, 2012, 12:51:06 ÖS
şuan iş yerinde konuyu tekrar inceledim ve sanırım anladim
00011011 data sı
hücrenin ilk satirina
arkapilan rengi-screen memory ilk 4 bit - screen memory sonraki 4bit-color memory son 4 bit



Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 23, 2012, 23:09:08 ÖS
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
35 poke 53281,2
40 for i=0 to 1
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 9
85 read bak
90 poke 8192+i,bak
100 next i
110 data 63,207,243,252,63,207,243,252
 dataları çözdüm skate hocam arka plan rengi ile yatık çizgiler çizdim senin yüzünü kara çıkarmıycam artık dataları bulan bir vb programı yazabilirim. :)


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 24, 2012, 00:12:32 ÖÖ
skate abi timathes programıyla 160*200 çok renli modda nasıl çizdircez yaptığımız aynı şeyleri uyguluyorum ama bozuk çıkıyor biz seninle 320*200 ile yapmıştık ama 160*200 modda olması gerekmiyormu


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 24, 2012, 20:22:59 ÖS
bugun iki renk de olsa resmi visual basic le convert ettim ama şuan istediğim sonuçtan çok uzağım :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: censez41 üzerinde Aralık 25, 2012, 23:26:25 ÖS
http://www.youtube.com/watch?v=OKTReUQX1Lc&feature=youtu.be (http://www.youtube.com/watch?v=OKTReUQX1Lc&feature=youtu.be)
hocam nasıl konver ediyorum şimdilik arkabilam için bir renk diğer renler içinde baska bir renk olmak uzere iki renk tanımlatıyorum ama dataları emulatore koyunca fazla geliyor bir sure sonra bellek yetmiyor :(


Konu Başlığı: Ynt: c64 resim yapma
Gönderen: wizofwor üzerinde Mart 27, 2013, 11:43:43 ÖÖ
Project One'ın 0.6'dan daha yeni versiyonu var mı? Veya benzer bir program. En son 3 sene önce güncellenmiş.