Gönderen Konu: Alternatif Kernal ve Basic ROM'lar  (Okunma sayısı 134 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Bora66

  • Retroman
  • ***
  • İleti: 61
Alternatif Kernal ve Basic ROM'lar
« : 10 Nisan 2022, 14:05:31 »
Selamlar herkese.

Neredeyse 5 hafta önce çizip sipariş ettiğim kartlar Çin'den geldi ve tabii ki de gümrüğe takıldı. Pazartesi Başakşehir'e gidip alacağım, benim eve git-gel 60km yol neredeyse, çok mutluyum... >:(

Neyse, konu o değil, gelen kartlar benim kendi çizimim SwinSID, belki ilerde lazım olur diye GAL-PLA, ve BASIC ve Kernal ROM'lar için 27Cxxx kullanmayı sağlayacak adaptörler.

 

 


İki çeşit EPROM adaptörü çizdim, biri manual seçmeli (jumper, dipswitch, veya komütatör kullanılabilir) diğeri ise klavyedeki RESTORE tuşunu kullanarak "switchless" şekilde çalışıyor.

 

 


İlkini çizerken aklıma geldi bu fikir, adaptör kartına bir küçük mikrodenetleyici koyup, bunu da sadece bir push-button ile kontrol etmek mümkün derken farkettim ki RESTORE tuşu klavye matriksinden bağımsız ve tek başına işlevsiz, bunu kullanırsam ekstra bir push-button'a da gerek kalmıyor falan derken oturup kodunu yazdım, protoboard üzerinde simulasyon şeklinde çalıştırdım. EPROM'da bank değiştirdikten sonra C64'ü reset etmek gerekiyor, bunun için araştırma yaparken bir de gördüm ki bu benim harika fikrim çoktaaaan başkalarının aklına gelmiş ve bir sürü böyle ürün var :D Artık yapmış bulunduğum için kendi kodum ve kendi kartım elinkinden iyidir diyerek devam ettim yine de. İki çeşit reset olduğunu da öğrendim, biri normal bir CPU reset, diğeri de exrom reset diye geçiyor, exrom daha sağlam gibi göründü, o şekilde düzenledim kodu ve kartı. Neyse detaylarını zaten ayrıca paylaşacağım bu projenin, hele bir kartları gümrükten kurtarayım da...

Gelelim esas konuya (nihayet): Bir Spectrum'cunun hızlı bir C64 öğrenme sürecindeyim hala, o yüzden buradaki C64 uzmanlarından alternatif ROM'lar hakkında biraz bilgi rica ediyorum;

1) Bir takım disk erişimini hızlandıran kernal'lar var (FastLoad, JiffyDOS, DolphinDOS vs) bunların iyisi hangisidir? Avantajları dezavantajları nedir? Uyumluluk problemleri vs ne durumdadır?
2) Aynı sorular BASIC için de geçerli. Benim gibi bir kötü Spectrum'cu için C64 BASIC çok zayıf kalıyor, 100 tane poke ezberlemeden işe yarar bir şey yazmak bile eziyet sanki. Galiba bu konu başkalarını da zorlamış ki alternatifler var (Simons' BASIC özellikle dikkatimi çekti) Ama anlamadığım konu alternatif bir BASIC kullanmak için Kernal ROM mu değişecek, BASIC ROM mu? Bunların hangileri kartuş takmadan kartın anakartın üzerindeki EPROM'dan kullanılabilir?

Yani uzun lafın kısası, ROM image değiştirecek kartlarım var ama hangi ROM image nedir bilmiyorum, bu konuda tecrübeli Commodore kullanıcılarından yardım rica ediyorum.

Teşekkürler! 


Çevrimdışı metaone

  • Retromanik
  • *****
  • İleti: 8
Ynt: Alternatif Kernal ve Basic ROM'lar
« Yanıtla #1 : 10 Nisan 2022, 20:50:34 »
Selamlar. Bildiğim kadarıyla cevaplayayım, umarım yanlış hatırlamıyorumdur :)

1) Hızlandırma ile ilgili birkaç alternatif var:
A) Disk erişimini hızlandıran en basit yöntem Epyx Fast Load kartuşudur.
+ Bu kartuşu takıp Commodore'da ya da 1541 türevi disk sürücüde herhangi bir değişiklik yapmanıza gerek kalmadan çalıştırırsınız. Pi541, SD2IEC ile de iş görür.
- Her programda hızlandırma çalışmaz, uyumluluk %70-80 civarı deniyor.
- Kartuş portunu işgal ettiği için başka kartuş takamazsınız. Ancak Epyx+Pi1541 veya Epyx+SD2IEC kombo kartuş ile hem disk hem hızlandırıcı işinizi görebilirsiniz.

B) Jiffy DOS kernal. Bu yöntem hemen her programda çalışır çünkü kernal seviyesinde işlem yapar.
+ Ciddi hız sağlar. Özellikle SD2IEC adeta uçar.
+ Uyumluluk çok yüksektir.
- Hem C64 hem de disk kernal'larını JiffyDOS ile değiştirmeniz gerekir (sizin adaptörler C64 için burada işe yarar, 1541 disk için switch gerekebilir).
- Hızlandırma rutinleri cassette buffer'da olduğu için teypten yükleme yapamazsınız. O yüzden switch ile kullanılır genelde, teyp kullanacağınız zaman Jiffy'den çıkıp normal C64'e geçmeniz gerekir.

C) Dolphin DOS. Bu da JiffyDOS gibidir ama user port'tan paralel olarak bağlandığı için Jiffy'den daha hızlıdır.

2) Birçok makine dili ile yazılmış program standart BASIC rutinlerini kullanabildiği için, BASIC ROM'u genelde ellemek pek doğru olmaz, cihazın uyumluluğu çok düşer, o yüzden genelde alternatif BASIC'ler kartuş veya disk üzerindeki program ile kullanılabilir.

Jiffy vb ROM imajı yazacaksanız birkaç link vereyim:
Jiffy DOS ile ilgili bilgi: https://www.breadbox64.com/blog/jiffydos-tutorial/
Standart ROM'ların bulunduğu yer : https://ist.uwaterloo.ca/~schepers/roms.html
Dolphin DOS: https://e4aws.silverdr.com/projects/dolphindos2/
Simon's BASIC (disk): https://csdb.dk/release/download.php?id=85395


Çevrimdışı wizofwor

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 398
Ynt: Alternatif Kernal ve Basic ROM'lar
« Yanıtla #2 : 10 Nisan 2022, 22:20:33 »
Disk hızlandırıcılar ile ilgili uzman değilim ama genel olarak Commodore64'de 100% uyumlu upgrade diye bir şey yoktur diyebilirim. Bir şeyleri değiştiriyorsan bir yerde bir şeyleri bozuyorsun demektir. Hangi loaderın nasıl yazıldığını bilemezsin. Kernel'a jump eden bir kod her türlü çakılır. Bu yüzden upgrade'lerde mutlaka bir fall back modu olur. Bunları herkesi mutlu edecek bir rom olmayacağının altını çizmek için yazıyorum. Herkesi mutlu edecek rom ancak CBM'in kerneli olabilir.

Bir süre SD2IEC ile birlikte SJLOAD kullandım. Oldukça memnundum. Daha hızlı loader'lar da varmış ama bu bana yeterli gelmişti. SJLOAD, JiffyDOS referans alınarak hazırlanmış. Üzerinde JiffyDOS olmayan 1541 sürücü ile de çalışıyor. JiffyDOS varsa daha da hızlı oluyormuş. Yüklediğim oyunlar çoğu zaman sorunsuz çalışıyordu.

Orjinal JiffyDOS ve DolphinDOS'da sürücüde değişiklik yapmadan olmuyor diye biliyorum. Bir de Jiffy'de lisans mevzu var. En son sitesinden ROM almak gerekiyordu. Dolphin ve diğer paralel porttan çalışan hızlandırıcılar extra uyumsuz diye biliyorum. Yerinde olsam sd2iec ve pi1541'de sorunsuz çalışanları tespit etmeye çalışırdım.

BASIC konusuna gelince. Bu açıklamayı C64'de yeniyim dediğin için yapıyorum: C64'de BASIC'in işlevi yazılım yüklemektir. BASIC üzerine çok fazla düşünmeyiz. Bir şey geliştirecek olan da assembler'da yapar. Simon's basic falan teoride güzel ama pratikte pek bir işe yaramaz. Çünkü Simon's da yazdığın programı çalıştırmak için de Simon's kurman lazım. Diskete yazıp birine veremezsin. Öyle kendi kendine takılırsın. Simons'un ilk versiyonu kartuş olarak dağıtılmış. Son versiyonu ise disket üzerine çıkmış. Rom'a sığıp sığmayacağına bir bakmak lazım. Orjinal BASIC rutinlerinin sonuna ilave olarak eklendiği için sığmama sorunu olabilir.
Gosub ile gidilen yerden goto ile dönen adam

Çevrimdışı Impetigo

  • RAAT
  • Retroman
  • *
  • İleti: 46
Ynt: Alternatif Kernal ve Basic ROM'lar
« Yanıtla #3 : 11 Nisan 2022, 18:48:28 »
...Bir Spectrum'cunun hızlı bir C64 öğrenme sürecindeyim hala, o yüzden buradaki C64 uzmanlarından alternatif ROM'lar hakkında biraz bilgi rica ediyorum;

1) Bir takım disk erişimini hızlandıran kernal'lar var (FastLoad, JiffyDOS, DolphinDOS vs) bunların iyisi hangisidir? Avantajları dezavantajları nedir? Uyumluluk problemleri vs ne durumdadır?
2) Aynı sorular BASIC için de geçerli. Benim gibi bir kötü Spectrum'cu için C64 BASIC çok zayıf kalıyor, 100 tane poke ezberlemeden işe yarar bir şey yazmak bile eziyet sanki. Galiba bu konu başkalarını da zorlamış ki alternatifler var (Simons' BASIC özellikle dikkatimi çekti) Ama anlamadığım konu alternatif bir BASIC kullanmak için Kernal ROM mu değişecek, BASIC ROM mu? Bunların hangileri kartuş takmadan kartın anakartın üzerindeki EPROM'dan kullanılabilir?

Yani uzun lafın kısası, ROM image değiştirecek kartlarım var ama hangi ROM image nedir bilmiyorum, bu konuda tecrübeli Commodore kullanıcılarından yardım rica ediyorum.
Alternatif kernal'lar çok detaylı bir konu, fikir edinmek için şu linklere bakabilirsin:
https://rr.pokefinder.org/wiki/Category:Kernal_ROM
https://e4aws.silverdr.com/projects/
https://www.c64-wiki.com/wiki/Comparison_of_fast_loaders
https://c65gs.blogspot.com/2019/05/free-and-open-source-replacement-roms.html

Bazıları sadece C64 üstündeki kernal değiştirilerek işe yarıyor (örnek: Datel turbo II 3.2+, Bu Epyx Fastload kartuşunun ROM versiyonu, yani aynı fonksiyonu görüyor. Diğer örnekler: ExOS, Beast SYS).

Bazıları disk sürücü üstündeki ROM'u da değiştirmeyi gerektiriyor. Bazıları disk sürücüde paralel kablo modifikasyonu da gerektiriyor (SpeedDos, 64'ER SYS v3).

Bazıları da disk sürücüye ekstra donanım eklemeyi gerektiriyor (örnek: DolphinDos, Prologic DOS).

C64 camiasında uzun süredir JiffyDos çoğunlukla tercih ediliyor. Modern depolama çözümlerinin (SD2IEC, Pı1541 vs) çıkmasıyla Jiffy'nin alternatif versiyonları da çıktı:
https://csdb.dk/release/?id=137938&show=notes#notes
http://blog.worldofjani.com/?p=3544

SD2IEC için bir de şu var: https://csdb.dk/release/?id=159050&show=notes#notes

SpeedDos'a baktığında bir sürü versiyonu olduğunu göreceksin. Çeşitli modifiye edilmiş versiyonları var. Bazıları diskette 40 track kullanmana izin veriyor. Eprom'a yazmadan önce bir emülatörde test edip doğru versiyon çiftine (C64 kernal+drive ROM) karar vermek iyi olur.

Tape turbolarına da kafa yoracam dersen şöyle şeyler var:
https://csdb.dk/release/?id=47403&show=notes#notes
https://csdb.dk/release/?id=193333

Diğer arkadaşların yazdığı gibi BasicROM için pek alternatif yok. Ama karakter seti (chargen) alternatifleri var.

Mesela PXLfont88665 adında çok kullanışlı bir font var:
https://www.forum64.de/index.php?thread/84000-neuer-c64-systemfont-auch-plus4-c128-atari/
İlk mesajın altındaki link fontun son versiyon linki.

Şuradaki 'chargen_openroms.rom' da fena değil:
https://github.com/MEGA65/open-roms/tree/master/bin

şu sonuçlara da bakabilirsin:
https://csdb.dk/search/?seinsel=all&search=alternate+chargen