Gönderen Konu: Pieces of 8-bit by Genesis Project  (Okunma sayısı 12186 defa)

Pieces of 8-bit by Genesis Project

« : 14.06.2013 06:01:39 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Gördüğüm en iyi music collection interfacelerinden. Harika iş çıkarmışlar.
http://csdb.dk/release/?id=119543

Pieces of 8-bit by Genesis Project

« Yanıtla #1 : 14.06.2013 10:25:57 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Vice emülatörde nasıl çalışır bu?
Bilgehan Korkmaz

Pieces of 8-bit by Genesis Project

« Yanıtla #2 : 16.06.2013 00:43:53 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Drag & drop yeterli. Ancak "Options > True Drive Emulation"'ın açık olduğundan emin ol. Bu ara yüklemeli tüm demo ve uygulamalar için geçerli. Kısacası PRG ise drag & drop yap, çalışır. D64 ise drag & drop yapmadan önce dediğim ayarın açık olduğuna emin ol. Bazı ayarlara bağlı olarak PRG'yi drag & drop yaptığında otomatik kapanabiliyor o ayar. Her defasında kontrol et.

Pieces of 8-bit by Genesis Project

« Yanıtla #3 : 16.06.2013 18:02:25 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
"Options > True Drive Emulation" açınca çalıştı.
True Drive Emulation'un bunu yapabilmesinin nedeni nedir? Veya şöyle sorayım; VICE neden normal şartlar altında "True Drive Emulation = On" çalışmıyor.
Bilgehan Korkmaz

Pieces of 8-bit by Genesis Project

« Yanıtla #4 : 19.06.2013 00:22:22 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Bunun cevabı tahmin edebileceğinden daha uzun ama özetlemeye çalışıcam.

Öncelikle Commodore 64'ün disk drive'ı IEC serial bus üzerinden veri aktarımı yapıyor. IEC bir standart ve normalde Commodore 64'ün 40-50 kb'lık dosyayı yüklemesi dakika mertebelerini bulabilirken Vice emülatörü bu süreyi bekletmemek adına PC'nin yükleme hızını kullanarak milisaniyeler mertebesine indirebiliyor yükleme süresini. Bu "True Drive Emulation"ın kapalı olduğu durum. Avantajı büyük, çat diye yüklüyor dosya.

ışin karıştığı nokta Commodore 64'ün disk drive'ının (1541, 1541-II, 1571 ve diğerleri) yapısından kaynaklanıyor. Disk drive aslında Commodore'a yakın bir bilgisayar. :) Kendi 6502 işlemcisi var. ~1 Mhz (C64 ile aynı) ve 2 KB RAM, 16 KB ROM'a sahip. Elbette ki ROM'da yer alan Kernal rutinleri kullanılarak standart biçimde yükleme yaptırılabiliyor ki Vice'ın True Drive Emulation kapalı modu bunu simüle etmek için yeterli. Ancak istersen kendi loaderını da yazabiliyorsun. Yani disketin üzerindeki datanın nasıl okunacağını, bu okuma işlemleri sırasında bilgisayarın eş zamanlı olarak neler yapıp yapmayacağını tamamen sen ayarlayabiliyorsun. Eğer amaç sadece dosya yükelemekse Fast Loader dediğimiz, tek amacı hızlıca dosyayı yüklemek olan loaderlar devreye giriyor. Amaç daha fazlasıysa, yani yüklerken bilgisayarın bir şeyler yapmaya devam etmesini istiyorsak bu durumda çok daha karmaşık yapıdaki IRQ Loaderlar kullanılıyor. Bu bahsettiğim loaderlar öncelikle drive'ın hafızasına transfer ediliyor ve burada drive'ın CPU'su tarafından kodlar çalıştırılarak veri disketten okunuyor, düzenleniyor (çünkü bit bit okunuyor!) ve Commodore 64'ün hafızasına transfer edilmek üzere hand shaking yapılıyor.

ışte Vice'ın "True Drive Emulation" özelliği drive'ı da bir bilgisayar gibi emüle ederek bu loaderların çalıştırılmasını sağlıyor. Bu özellik kapatıldığında yalnızca standart IEC modundaki yüklemeler başarılı oluyor.

Disketten tek parça bir dosya yüklenirken genellikle (dosyanın yaratılma biçimiyle ilgili çok özel bir durum olmadıkça) IEC başarılı olur. Ancak yüklenen dosya çalıştırıldıktan sonra ikinci bir dosya yüklenecekse bu yüklemenin nasıl olacağı o uygulamaya bağlıdır. Genellikle ara yüklemeli oyun ve demoların %99'u özel bir loader kullanırlar. Bu nedenle True Drive Emulation açık olmadığı durumlarda ilk dosya başarıyla yüklese bile gerisi düzgün yükleyemez. Hatta hatta birçok loader program ilk çalıştırıldığında initialize eder. Bu noktada True Drive Emulation kapalıyse initialization başarısız olur ve daha ilk parça bile çalışamadan program kilitlenir kalır.

şimdi gelelim True Drive Emulation ile diğer detaylara. PRG dosyaları tek parça dosyaları ifade eder. D64 dosyaları ise birden fazla dosyanın yer alabileceği disk imajlarıdır ve disketin bir yüzünü temsil eder. PRG sürüklenip bırakıldığında Vice'da eskiden otomatik olarak True Drive Emulation kapanırdı ki hızlıca dosya çalışsın, uzun uzun yükleme beklenmesin. Ancak son versiyonlarda bir özellik geldi bu durumun yarattığı problemleri çözmek adına.

"Settings->Autostart settings" bölümünde "PRG autostart mode" ayarı bu sorunu gidermek için hazırlandı. Varsayılanı hala eski ayarda yani "Virtual FS". Ama istersen "Inject to RAM" seçerek True Drive Emulation ayarı değişmeden doğrudan PRG'yi RAM'e gömebilirsin. Üçüncü ayar olan "Disk Image" de yine True Drive Emulation ayarını korumak adına otomatik olarak PRG'yi geçici bir D64 imajı yaratıp içine koyarak çalıştırıyor.

Umarım açıklayıcı olmuştur.

Pieces of 8-bit by Genesis Project

« Yanıtla #5 : 19.06.2013 13:38:53 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Hem tek okuyuşta anlaşılacak hem de insanı bilgi sahibi yapacak yazılar görünce mutlu oluyorum :)
3 dakika da öğrendiklerime bak. Plazma Dergi için makale gibi olmuş.

Bu yazıyla birlikte kafamda aydınlanan kısımlar şöyle:

C64 sürücüsü neredeyse bir C64 gibi ve programlanabildiğinden farklı hareket kabiliyetine sahip. Yani işi yalnızca raw data transferini sağlamak değil.
VICE'ın "True Drive Emulation" seçeneği, içinde kendi loaderi olan C64 programlarının adam gibi çalışması için disk sürücüyü tam olarak emüle ediyor. "True Drive Emulation = off" durumunda VICE, sürücü modülünü standart veri yolu gibi çalıştırıyor.

C64 program uzantılarının amaçları farklı. *.PRG dosyalar, sürücüyle data transferi dışında ilişkiye girmeyen tek parça programları ifade ediyor. *.D64 ise üzerinde sürücüyü programlayabilen bir loader bulunan/bulunabilen bir imaj dosyası. Ve bu sayede sürücü programcı tarafından sürülebiliyor.

VICE, farklı metodlarla işi çözmeye çalışmış. PRG''yi RAM'e gömme, PRG autostart modu ile, PRG'yi D64 imajına sarma.


Teşekkürler.
Bilgehan Korkmaz

Pieces of 8-bit by Genesis Project

« Yanıtla #6 : 19.06.2013 14:10:16 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Çok iyi anlamışsın, aynen öyle. Bir de ilgini çekebilecek bir konu. Uygulaması çok kolay olmasa ve inanılmaz büyük bir kazanç sağlamasa da, bazı durumlarda commodore 64'ün drive'ı paralel processing için kullanılabiliyor. Örneğin ekranda bir filled vektör dönecek. Vertexleri ve rotasyon, projeksiyon işlemlerini yapacak kodu drive'a aktarıyorsun, o vektörü çeviriyor, sonra drivedan alıp sen sadece çizimini yapıyorsun c64 tarafında. Dual CPU gibi kullanıyorsun c64 ve drive'ı. ılginç di mi? :) Sonuçta drive olduğu gibi kod execute edebiliyor. Disketten okutmak yerine dilediğin bir işlemi yaptırıyorsun ve sonuçları geri okuyorsun sanki yüklenen dosyayı okurmuş gibi. Bu yöntem öyle  yüzde 200 CPU gücü sağlamıyor elbette ki ama yüzde 100'ün üzerine çıkmanı sağlayabiliyor. Mesela bir taramada PAL modunda 19656 cycle vardır. 20000 cycle'ın üzerine çıkmak istiyorsan drive'ı kullanabiliyorsun. Ama 30000 cycle'ı da bulamıyorsun çünkü drive'dan okuma işlemi için de cycle kaybediyorsun. Benim tahminim fazladan yüzde 10 ila 30 arası bir CPU gücü sağlayacağı yönündedir.

Edit: Sadece bir nokta dikkatimi çekti. PRG ve D64 ile ilgili yazdıklarınla ilgili. D64 üzerinde özel birşey barındırmıyor, sadece birden fazla PRG'nin ya da diğer dosya türlerinin tutulduğu bir disk imajını temsil ediyor. Yani PC'deki karşılıkları ile şu şekilde düşünebilirsin.

PRG = COM/EXE
D64 = 1.44 disket / CD / DVD imajı

Ara yüklemeli uygulamalarda loader kodları yine PRG'lerin içinde yer alıyor, D64'ün içinde özel olarak bir şey yok. Yani tek parçalık bir PRG dosyasında da bu loader kodları bulunabilir. Ama emülatör'e PRG'yi verdiğimiz ve çalıştırdığımızda sonradan özel olarak bir disk imajı seçmeyecek olursak loaderın yükleyebileceği ikinci bir dosya olmuyor. Hafızada çalışan bir program var ama sürücüye disket takılı değil gibi düşünebilirsin. D64'den çalıştırdığımızda D64 otomatik olarak attachlandığı için yükleyebileceği ikinci bir dosya bulabiliyor.
« Son Düzenleme: 19.06.2013 22:47:36 Gönderen: skate »

Pieces of 8-bit by Genesis Project

« Yanıtla #7 : 20.06.2013 02:06:44 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
D64, bir veya bir den fazla PRG'nin C64 tarafından adam gibi çalışması için yalnızca bir kap, çanak görevi görüyor. Loader kodları yine PRG'lerin üzerinde.

ılk başta, "o zaman D64'e ne gerek var, dizinden sırayla çeksin PRG'leri" dedim ama tabi sonradan bunun gerçek bir C64'de uygulanamayacağı aklıma geldi. :)
C64, bir seferde tek parça program veya programlar içeren bir imaj yükleyip her şeyi kendi dijital alanında halledecek şekilde tasarlanmış.

---

Sürücünün işlemcisini kullanma fikri aklıma gelmişti. Ama sürücü C64 arası veri yolunun hızı, sürücüde yapılan işlerin C64'e aktarılmasının zamanlaması falan çok kastırıcı işler gibi geldi.
Bir de bu iş ne maksatla yapılır? Tabi muhtemelen böyle hack'lerin demoscene içinde bir yeri vardır da ben bilmiyorum.
Bilgehan Korkmaz

Pieces of 8-bit by Genesis Project

« Yanıtla #8 : 20.06.2013 13:11:41 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Digital World/Samar : http://csdb.dk/release/?id=4762
Opium/Samar : http://csdb.dk/release/?id=11691
Panta Rhei/Plush+Oxyron+Instinct : http://csdb.dk/release/?id=15745

Bu demolar drive'ın CPU gücünü kullanan aklıma ilk gelen demolar. Elbette ki daha fazlası da var. Sanırım en akıllıca kullanan Panta Rhei. Hemen her partta birşeyleri drive hesaplıyor. Çok ilginç hidden partları da var. Örneğin drive emulation kapalı çalıştırırsan demoyu bir hidden part çıkıyor. Demo çalıştıktan sonra kapatırsan başka bir hidden part çıkıyor. 2. parttayken Commodore 64'ü kapatırsan bu defa drive sana ufak bir şov yapıyor (müzik çalıyor) v.s. Yani demo drive'ı oldukça efektif kullanıyor.

Pieces of 8-bit by Genesis Project

« Yanıtla #9 : 28.06.2013 13:31:48 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Alıntı yapılan: skate;29287
2. parttayken Commodore 64'ü kapatırsan bu defa drive sana ufak bir şov yapıyor (müzik çalıyor) v.s.

Bu VICE'de nasıl yapılıyor?
Bilgehan Korkmaz

Pieces of 8-bit by Genesis Project

« Yanıtla #10 : 29.06.2013 04:36:14 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Belki bir yolu vardır ama bırak bu da senin bir Commodore 64 edinme nedenin olsun. ;)

Pieces of 8-bit by Genesis Project

« Yanıtla #11 : 11.07.2013 23:42:22 »
Hızlı düğmeleri aç

gibraltar

İleti: 122

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Ben 90'larda Kadıköy'de Yazıcıoğlu ış Hanı diye bir yerde çalışıyordum.
O handa benden evvelki zamanlarda amiga/c64 makineleri alıp satılırdı.
Ben geldiğimde bilgisayarcı dükkanları genel temizlik gibi işlere giriştiklerinde teknik servislerinden onlarca c64 makine, kitap, dergi çöpe attılar. Bizzat çöpten çok c64/amiga malzeme topladığımı bilirim.
O zamanlar onları deneme, ayıklama fırsatım olmamıştı, babadan kalma çöpçülüğm nedeniyle biriktirdim ama işin üstüne düşemedim. 4-5 sene sonra bir kızgınlıkla işten ayrılınca onlar da orada kaldı. O çöplerde neler vardı neler.
Kurtarabildiğim bir kaç orjinal QUE Microsoft ms-dos 5.0 kitabı, Microsoft Dos Programlama kılavuzunu hala saklarım.

Açıkçası burası gibi yerlerde sizlerin bu aletlere değer verdiğinizi bileydim ... :) iyi olurdu.

Bunun dışında, benim de çocukluğumdan kalma bir c64c bilgisayarım hala var. (Hangi kutunun dibindedir kimbilir)
şimdi olmasa da, kendime uzun süreli bir yer ayarlayabildiğimde onu da kurmak istiyorum.

Gerçi hayat böyle "istiyorumlarla" geçiyor ya neyse.

Demem o ki hepten c64 cahili değilim.
Aksine bilgisayar denen fantazi evreninin kapılarını bana aralayan cihaz c64'tür. Benim gibi bir yabani çocuğun gelen misafirlerin geyiğinden kurtulabildiği güzel bir araçtı c64 :)
X harfiyle saatlerce halı deseni çizip, manual'deki tüm programları on on beş defa yazıp-çalıştırıp "kasede kaydetme" gibi bir şeyi akla getirememem de bir anı olarak durur belleğimde.
Neyse, bunları bilahare "c64 ve ben" isimli kitabımda yazacağım :D
Bilgehan Korkmaz