|
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. 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.Koala, Amica paint gibi programlar zamanında popüler olanlarıydı. Bunları deneyebilirsin. 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 ******************* 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 ASM'den kullanım örneği; Kod: lda #$01 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 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 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 $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 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 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 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 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 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 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 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 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 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 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 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 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 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 Ç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 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ş.
|