commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: ercanersoy üzerinde Aralık 31, 2018, 16:09:05 ÖS



Konu Başlığı: Commodore 64 Yazılım (ROM için)
Gönderen: ercanersoy üzerinde Aralık 31, 2018, 16:09:05 ÖS
Herkese merhaba,

Commodore 64 için GPL ya da  benzeri bir lisansla lisanslanmış bir BASIC yorumlayıcısı ya da bir dosya yöneticisi ya da bir işletim sistemi arıyorum.

Aradığım yazılım, Commodore 64'ün ROM'unun içerisine yazılıp gömülü olarak kullanılabilecek bir yazılımdır.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: Voltron üzerinde Aralık 31, 2018, 16:34:12 ÖS
Ercan, her ne kadar gpl ya da freeware olmasa da, jiffyDos ve benzerleri, yorumlayici olarak simons basic'i inceleyebilirsin.

Edit:
http://baltissen.org/newhtm/sourcecodes.htm (http://baltissen.org/newhtm/sourcecodes.htm)


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: ercanersoy üzerinde Aralık 31, 2018, 16:44:23 ÖS
Commodore 64 benzeri bir bilgisayar fikrim var. Onun için GPL, MIT ya da benzeri bir lisansla lisanslanmış bir yazılım arıyorum.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: emarti üzerinde Aralık 31, 2018, 17:12:15 ÖS
Bence bu işteki son nokta @i_r_on hazırladığı proje. EPROM'a ilgili 7 adet kernal belli bir kurala göre yazdırılıyor ve küçük bir c64 programcığı ile ilgili ROM seçiliyor. Aşağıdaki iglili linkleri gözden geçir. @i_r_on desteği ile oluşturduğum rom seçici programın resmini de görebilir eğer ilgili donanımı edinebilirsen kullanmak için Linux ve Windows üzerinde çalışabilen ROM'a yazdırılacak dosyayı oluşturan bir program da mevcut. İlgili resimdeki listedeki ROM'lar üzerinden nette araştırmanı yapar isen muhakkak ilgili linklere ulaşmış olursun. Jiffy elbette lisanslı o ayrı.

http://www.lemon64.com/forum/viewtopic.php?t=68162 (http://www.lemon64.com/forum/viewtopic.php?t=68162)
http://www.commodore.gen.tr/forum/index.php?topic=15801 (http://www.commodore.gen.tr/forum/index.php?topic=15801)
https://www.youtube.com/watch?v=gwpgLJTUj-I (https://www.youtube.com/watch?v=gwpgLJTUj-I)

https://github.com/emartisoft/EasyKernal-Tools (https://github.com/emartisoft/EasyKernal-Tools)

(https://raw.githubusercontent.com/emartisoft/EasyKernal-Tools/master/screenshots/romselector.png)



Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: ercanersoy üzerinde Aralık 31, 2018, 18:36:38 ÖS
Teşekkürler.

Listedeki kernalleri araştırdım. SD2IEC GPLv2 lisanslıymış.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: i_r_on üzerinde Ocak 01, 2019, 22:50:09 ÖS
@ercanersoy : C64'de sıfırdan yazılmış standart kernal uyumlu bir kernal bildiğim kadarıyla yok. Çoğunluğu yama şeklinde. GPL veya başka bir açık lisans ile lisanslanmış projelerde de lisansa tabi olan kod yama şeklinde orjinal kernal'in üstüne yamanan kod.

JiffyDos misal bir istisna, zamanında Commodore'dan bir şekilde rom'un yamanmış halini dağıtma izni almış Creative Micro Designs (CMD) firması. 2010 senesinden beri de lisans sahibi Jim Brains.

https://www.c64-wiki.com/wiki/Creative_Micro_Designs (https://www.c64-wiki.com/wiki/Creative_Micro_Designs)

SD2IEC kernal dağıtımına bakıldığında aslında dağıtımı legal bir kernal değil. Source'larına bakınca C64 kernal'in disassemble edilip değiştirilmiş hali olduğu gözüküyor.

https://csdb.dk/release/?id=152995 (https://csdb.dk/release/?id=152995)

Source'ları aşağıdaki linkten aldım demiş daha dosyanın başında.
http://www.unusedino.de/ec64/technical/misc/c64/romlisting.html (http://www.unusedino.de/ec64/technical/misc/c64/romlisting.html)

JaffyDos var mesela, bu Sd2Iec'e göre legal bir dağıtım yöntemi tercih etmiş. Kernal imajını dağıtmamış, JiffyDos kernal'i yamayacak programı dağıtmış.

http://blog.worldofjani.com/?p=3544 (http://blog.worldofjani.com/?p=3544)

Sıfırdan bir kernal yazacaksan malesef uyumluluğu bir kenara atman gerekiyor çünkü programlar kernal içinde belli lokasyonlardaki byte dizilerini data olarak kullanabiliyor, daha da basiti normal şartlar altında vector'ler üzerinden indirect erişilmesi gereken pek çok rutine programlar doğrudan erişmeyi tercih edebiliyor.

Uyumluluk devam etsin denilerek yapılan şeyler Dos wedge / hızlandırıcı vesaire tadında işler. Olur da böyle bir işe niyetleneceksen bence uyumluluğu çok düşünme. Hatta Kernal değil de Basic yerine başka bir yorumlayıcı eklemek belki daha enteresan bir proje olabilir.

Kernal'in tarihçesi ile ilgili şu yazı ilgini çekebilir.
https://www.pagetable.com/?p=926 (https://www.pagetable.com/?p=926)


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: ilkerficicilar üzerinde Ocak 01, 2019, 23:32:45 ÖS
TinyBasic'in lisans sorunu hatırladığım kadarıyla yok ve kaynak kodu mevcut.

Ayrıca, 6502.org sitesinde kendi 6502 bilgisayarını yapanların çözümlerine de bakılabilir.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: wizofwor üzerinde Ocak 02, 2019, 09:46:11 ÖÖ
GPL veya herhangi bir açık lisansla dağıtılan kernel bulmanın zor olduğunu düşünüyorum. Malum bunlar ayrıca satılmayan, cihazla beraber ücretsiz dağıtılan yazılımlar ve o dönemde firmalar bunları haricen satmadığı gibi yazılım lisansıyla ilgili bilgi dahi vermezlerdi.  Bu yüzden ben de ilker gibi 6502.org'daki projelere bakmanı önerecektim. Yalnız orada da çoğu projenin rom'unun oldukça minimal tutulmuştur.

CBM bilgisayarlarının ROM'u senin de bileceğin gibi 3 parçadan oluşuyor. Kernel, BASIC ve CHAR veya (Character Generator). CHAR ROM'un içinde sadece kullanılan karakter setinin bitmap datası var. Bunun yerine kafana göre bir şey yapıp kullanmak pek vaktini almaz. BASIC için https://github.com/mist64/c64rom (https://github.com/mist64/c64rom) adresinden orjinal Microsoft kodunu incelemeni öneririm. Bu Commodore'un PET serisinde kullandığı Basic. Sonraki versiyonları Commodore kendisi geliştirmiş. C64'de kullanılan Basic ROM için benim hoşuma giden iki tane commented dissassembly var.

https://github.com/Project-64/reloaded/blob/master/c64/firmware/C64LD11.S (https://github.com/Project-64/reloaded/blob/master/c64/firmware/C64LD11.S)
https://github.com/mist64/c64rom (https://github.com/mist64/c64rom)

Bu dissasembly'ler incelendiğinde yazılımın kesinlikle doğrudan donanıma erişmediği hemen fark ediliyor. Donanıma erişen bütün işlemler KERNEL üzerinden yapılıyor. KERNEL'e erişirken de Jump Table kullanılıyor. Şu adreste (http://sta.c64.org/cbm64krnfunc.html) Jump Table'ın açıklaması var. Burada da (http://unusedino.de/ec64/technical/aay/c64/krnromma.htm) Kernel rutinlerinin gerçek adresleri görülebiliyor.

Kernel revizyonları arasında rutinlerin gerçek adresleri değişse de Jump Table referansları aynı tutulmuş. Bu sayede Kernel fonksiyonları üzerinden orjinal PET için yazılan bir program tüm 8-bit CBM serisinde aynı şekilde çalışabiliyor.

Aynı şekilde sadece bu Jump Table ile uyumlu bir Kernal yazıldığında CBM Basic Rom'u ile uyumlu olacaktır. Ancak ben buna da gerek olduğunu zannetmiyorum. Zira Basic ve Kernel belirli bir seviyeden sonra kullanılmaz. Ticari yazılımlar çoğu zaman bellekte yer açmak için bunları kapatırlar. Yukarıda bahsedilen hobi bilgisayarlarını incelediğinizde de hemen hepsinde ROM olarak sadece Monitör yazılımı olduğunu göreceksiniz.

İlk başta basit bir Monitör ROM yazıp cihazı ayağa kaldırmak. Daha sonra ihtiyaç duyulan rutinleri monitörden yazmak çok daha keyifli olabilir.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: fort_apocalypse üzerinde Ocak 02, 2019, 11:32:25 ÖÖ
Bendeki C=64 içinde kayıpsız anahtarlanabilen Dolphin Dos Kernal takılı. Ayrıca diskette de eproma yakılacak halde olması gerek. Lisans durumunu bilmiyorum, işinize yararsa yardımcı olmaktan mutlu olurum.




Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: ercanersoy üzerinde Ocak 02, 2019, 15:49:43 ÖS
Öncelikle, ilginiz için teşekkürler.

Hazır bir yazılım bulamam o zaman. Yazacağım bellenimin GPL, LGPL, MIT gibi lisanlarla uyumlu olması için C64 BASIC jump table uyumlu olmaması gerekir. Bu da bayağı zaman ister.

Bazı sorularım olacak:

- Monitor yazılımı nedir?
- Bir Commodore 64 bilgisayarına bir ROM kartuşu takılıp, bu bilgisayar başlatıldığı zaman başlatma sırasında C64 ROM'un içindeki program da çalışır mı? Yoksa, doğrudan ROM'dan mı çalışır?


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: i_r_on üzerinde Ocak 02, 2019, 16:36:25 ÖS
Öncelikle, ilginiz için teşekkürler.

Hazır bir yazılım bulamam o zaman. Yazacağım bellenimin GPL, LGPL, MIT gibi lisanlarla uyumlu olması için C64 BASIC jump table uyumlu olmaması gerekir. Bu da bayağı zaman ister.

Bazı sorularım olacak:

- Monitor yazılımı nedir?

Assembler kodunu doğrudan belleğe yazmana, bellek içeriğindeki assembler komutlarını disassemble etmene, çalıştırıp debug etmeni sağlayan programlara assembly language monitor, kısaca da monitör deniyor. Bazı kartuşların rom'larında bulunuyor ya da istersen diskten / teypten yükleyerek de kullanabilmen mümkün. Pratikte bunu kullananlar ellerindeki Freeze Cartridge'ın içindekinden faydalanırdı.

- Bir Commodore 64 bilgisayarına bir ROM kartuşu takılıp, bu bilgisayar başlatıldığı zaman başlatma sırasında C64 ROM'un içindeki program da çalışır mı? Yoksa, doğrudan ROM'dan mı çalışır?

Herhangi bir kartuş takılı değilse bilgisayar reset vektörünü Kernal rom'unda (E000-FFFF aralığındadır)  bulur ve oradan çalışır. Ultimax modunu destekleyen bir kartuş söz konusu ise bilgisayar üzerindeki kernal rom'a değil, kartuş üstündeki rom'lardan birine gider bilgisayar. Ultimax modunun da başka kısıtlamaları, bunun yanısıra başka başka güzellikleri de var.

Sorunun amacı kernal'i pratikte değiştirip değiştiremeyeceğin ise mümkün olduğunu söyleyebilirim. EasyFlash & 1541 ultimate gibi donanımlar üzerine yüklediğin bir kernal'in kullanımına izin veriyorlar. Benzer şekilde yeni C64C board'larda benim EasyKernal projesi ile de bir eprom üstünde 7 tane kernal yazıp yazılım yollu seçim yapabiliyorsun, tabii bunun için kernal rom'unu soketli hale getirmen falan gerek.


Konu Başlığı: Ynt: Commodore 64 Yazılım (ROM için)
Gönderen: wizofwor üzerinde Ocak 02, 2019, 16:51:59 ÖS
Bir Commodore 64 bilgisayarına bir ROM kartuşu takılıp, bu bilgisayar başlatıldığı zaman başlatma sırasında C64 ROM'un içindeki program da çalışır mı? Yoksa, doğrudan ROM'dan mı çalışır?

Sanıyorum bunu kernel'i C64 üzerinde geliştirmek için soruyorsun. Ben yine de assembly monitör vasıtasıyla kendi bilgisayarın üzerinde çalışmanı tavsiye ederim. Yoksa bir de port ederken çıkabilecek sorunlarla uğraşman gerekecek.

Şu adreste kullanabileceğin MIT lisanslı bir monitör var. Aynı dağıtımın içindeki BASIC, MIT değil sadece freeware.
https://github.com/sethm/6502mon