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

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

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: [1] 2 3 ... 6   Aşağı git
Yazdır
Gönderen Konu: c64 resim yapma  (Okunma Sayısı 63033 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« : 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
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #1 : 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=45785

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=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. 
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #2 : 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.
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #3 : 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.
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.794


Gosub ile gidilen yerden goto ile dönen adam


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

censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #5 : 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.
Logged
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #6 : 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

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://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
Logged
blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #7 : 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..... Kahkaha
« Son Düzenleme: Eylül 11, 2012, 00:01:29 ÖÖ Gönderen: blackturk » Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #8 : Eylül 11, 2012, 08:05:22 ÖÖ »

blacturk işin asıl püf noktası arkadaşda disket sürücü yok Kahkaha
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #9 : 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"
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #10 : 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
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #11 : 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 
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #12 : Eylül 12, 2012, 10:41:10 ÖÖ »

bilgiye ulaşımım olsaydı assamply de kendimi geliştirmeyi isterdim

geç kalmış sayılmazsın
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #13 : 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

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

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
« Son Düzenleme: Aralık 03, 2012, 15:49:40 ÖS Gönderen: censez41 » Logged
kuzgun
Üye
****
Mesaj Sayısı: 302



Üyelik Bilgileri
« Yanıtla #14 : 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?
Logged
Sayfa: [1] 2 3 ... 6   Yukarı git
Yazdır
Gitmek istediğiniz yer: