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)
commodore.gen.trGenel KategoriProjeYeni board'lu C64'ler için switchsiz, kablosuz 7 kernal mod
Sayfa: 1 [2] 3 4   Aşağı git
Yazdır
Gönderen Konu: Yeni board'lu C64'ler için switchsiz, kablosuz 7 kernal mod  (Okunma Sayısı 45337 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
emarti
Uzman
*****
Mesaj Sayısı: 2.592


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #15 : Ekim 14, 2017, 08:46:13 ÖÖ »

@i_r_on takip ediyorum güzel bir proje olacak.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #16 : Ekim 31, 2017, 00:27:04 ÖÖ »

Tünelin ucu bombok bir yere çıktı

Arada update geçeyim bari de belki bir el atan, yol gösteren çıkar

İlk etapta gelen prototip pcb'lerin sağlığını kontrol etmek için pcb'lerden birine montajı tamamladım ve elimdeki soketli* c64c board'a takmaya çalıştım.



Bu noktada yaşadıklarımı yazsam muhtemelen 4-5 paragraf yazı olur o yüzden kısa geçiyorum. Ben eldeki pcb'lerin sağlığını kontrol edeceğim derken c64'ün ağır hasta olduğunu fark ettim. Bu da işin yazılım ayağını epey bir sekteye uğrattı.

Nihayetinde Attiny85 üstüne attığım kodla bir şeyler yapabildim.



Burada kernal switch etmenin genel mantığı çalışıyor mu diye 1'den 7'ye her kapanış açılışta sıradaki rom'a switch eden basit bir yazılım var. Attiny85 için yazılımı arduino ile yazdım. Kod eepromdan son seçilen kernal no'sunu okuyor, switch ediyor, bir arttırıyor ve eeprom'a yazıyor. Ve en önemlisi, çalışıyor

İş biraz ciddiyete binsin dediğim noktada, ilk olarak accelerometer (ivme ölçer) kullanıp c64'ü açtıktan sonra havaya kaldırıp, indirdiğimde eprom'u switch edeyim dedim. Bu da çalıştı. Bu aşamaya kadar kullandığım kernal rom set'i tamamen dummy. Açılıştaki c64 yazısı, c65, c66, c67 falan diye değişiyor sadece.

Dur dedim şöyle kanlı canlı jiffy'si olsun, exos'u olsun efendime söyleyeyim sd2iec için özel yazılmış kernal olsun bir şeyler deneyeyim. (İşe yarayacak custom kernal bulmak da epey zor, aşağıdaki yaptığım seçim saçma sapan oldu)

Şöyle bir set yaptım,

1- Standard Kernal
2- Cockroach turbo rom (ne alaka?)
3- Datel tubo rom
4- Exos v4
5- Jiffy dos

not: indirdiğim yerde itin biri Türk diyerek haksız yere ismi Özkan (ozkano sen misin?) olan birine hakaret etmiş. 
http://www.nightfallcrew.com/27/07/2009/jiffydos-kernal-roms-manual-download-linkjiffydos-kernal-roms-manual-download-link/

Ben tamamen bilime faydası dokunsun diye indirdim, onu belirteyim.

6- Sd2iec
7- Buraya ne koydum unuttum bak...

Neyse efendim, başladık denemeye. Standard kernal sıkıntı yok, Cockroach turbo rom ona da geçti, Datel bıdı bıdı ona da geçtik. Exos'a gelince ekranda bir M-R yazısı. Jiffydos'a geçiyoruz ortalık dağılıyor. Sd2iec custom kernal aynı şekilde. Standard kernal'e geçince yine sıkıntı yok, devamında da öyle falan...

Hemen sıralı otogaz sistemi olan atiker'e, pardon sıralı kernal switch yapan yazılıma geçtim. Durum onda da aynı.

Neyse daha da fazla uzatmayayım, tünelin ucunu anlatayım. Sorunun attiny85'in rom'u switch etme zamanlaması ile ilgili olduğunu değerlendirdim. Şöyle ki, c64'e elektrik verildiğinde Attiny85'in seçim yapacağı çıkışlar input modunda ve low pozisyonunda olacağı için her zaman standart kernal seçili olarak açılacak c64.

Ancak ben attiny85'in c64 reset sinyalini daha sindirmeden çalışır vaziyette olacağını düşünmüştüm. (İşin pratik tarafına dair de ölçümlerim vesaire var fakat tam olarak sindiremediğim için yanlış bir şey paylaşmış olmayayım.)

Netice itibariyle, denediklerim, bulduklarım.

1 - Attiny85'de olabildiğince hızlı bir başlangıç yapabilmek için Atmel studio'ya geçtim. Fayda sağlamadı.

2 - Eeprom okuma fonksiyonunu kaldırıp doğrudan jiffydos'u seçen bir kod çalıştırdığımda c64 jiffydos ile açılıyor. Bunu da sadece belli internal osc. ve sut fuse değerleri ile yapabiliyor. Başa eeprom okuma fonksiyonu konunca çalışmıyor. (Oysa eeprom okuma nanosaniyeler mertebesinde bir olay... içine düştüğüm zamanlama kıskacı bana bu kadar az zaman bırakıyor olamaz)

Çalışan iki custom kernal'in de çalışabilmesinin sebebi olarak açılışta standard kernal ile ortak kod içermesi olabileceğini düşünüyorum. Oturup incelemedim pek tabii. Ancak bkz. 4.


3 - Commodore C64 kısa board'larda reset devresinden 556 çözümünü çıkarıp RC + 7414 schmitt trigger çözümüne gitmiş. Service manual'lerde 500ms reset süresi bahsediliyor hep ancak teoride bu kısa board'ların reset süresi 726ms civarı olması lazım. Elimdeki daha eski 250466 , 250425 board'larda kontrol ettiğimde bu sürenin 1.5 saniye civarlarına bile çıktığını gördüm. Kullandığım güç kaynağından mı bilmiyorum, nano saniyeler mertebesinde epey gürültü oluyor reset hattında. (Yazıyı bitirince DC adaptör denemesi yapacağım)

http://www.lemon64.com/forum/viewtopic.php?t=65932

4 - Tespit ettiğim bir başka fenalık ta şu şekilde. Power on sırasında kernal'i seçemedim. Ortalık dağıldı eyvallah. Ancak kartuş üstünden c64'ü reset ettiğimde de bu problemli olan rom'lara switch edemiyorum. Bu aşamada aslında benim kernal mod devremin işi çoktan bitmiş ve devredeki 27c512 eprom'un yüksek adres hatlarını doğru bir şekilde seçmiş oluyor.

Özellikle de bu son maddeden dolayı şüphelerim tamamen elimdeki hasta c64'e ve güç kaynağına yönelmiş durumda. Eski daha fazla güç isteyen board'lardaki yüksek reset süreleri de gücün açılışta 5v'a çıkmakta epey zorlandığı hissini uyandırdı bende. Reset fonksiyonunda kullanılan kapasitörler stabil hale gelemeyen 5v hattı yüzünden muhtemelen geç doluyor ve reset sekansının geç başlamasına sebep oluyor. Attiny'e başlangıç kodunda eklenen yahut çıkarılan eeprom okumasının da bu derece ciddi etki ediyor olması kısmı ise hala muamma.

*fena tamir görmüş... soketli olması beni daha baştan uyandırmalıydı diyorum


* IMG_2522.JPG (867.55 KB, 2016x1512 - Görüntüleme: 2009 kez.)
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.396



Üyelik Bilgileri
« Yanıtla #17 : Ekim 31, 2017, 01:36:48 ÖÖ »

"not: indirdiğim yerde itin biri Türk diyerek haksız yere ismi Özkan (ozkano sen misin?) olan birine hakaret etmiş"
kavga mı var? nerede? Kahkaha
Logged

Use the brute force, Luke
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #18 : Ekim 31, 2017, 02:11:20 ÖÖ »

"not: indirdiğim yerde itin biri Türk diyerek haksız yere ismi Özkan (ozkano sen misin?) olan birine hakaret etmiş"
kavga mı var? nerede? Kahkaha


Şu aşağıdaki linkte yorumlarda.

http://www.nightfallcrew.com/27/07/2009/jiffydos-kernal-roms-manual-download-linkjiffydos-kernal-roms-manual-download-link/

Türk olduğundan daha sonra dem vurulan Özkan isimli arkadaş "Utanmıyor musunuz bunları download ettirmeye Jim Brain bunu hala lisanslı olarak satıyor ... ..duklarımın demiş."

Biri de ona tepki olarak şöyle bir genelleme döktürmüş.

"Thanx guys for the files!!
Don’t give a fuck to this idiot Ozkan mates! He is probably fucking Turkish loser as I see…"
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #19 : Ekim 31, 2017, 02:41:57 ÖÖ »

Bir USB powerbank ile yalnızca +5V vererek deneme yapabiliriz. Bu board (250469) sadece DC 5V ile açılabiliyor (SID uyanmıyor tabii).
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #20 : Ekim 31, 2017, 02:51:25 ÖÖ »

Ek not: Exos-v3 ve JiffyDos kernalleri RAM kontrol rutinini atlıyor. Yani hızlı açılıyorlar. SD2IEC'yi bilmiyorum, birkaç tane var onlardan. Ama o da hızlı açılanlardansa problemi hıza (RAM'ın hazır olmamasına?) bağlayabiliriz bir olasılık.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #21 : Ekim 31, 2017, 02:53:17 ÖÖ »

Bir USB powerbank ile yalnızca +5V vererek deneme yapabiliriz. Bu board (250469) sadece DC 5V ile açılabiliyor (SID uyanmıyor tabii).

Aynen, bunu yaptım ben de yazıyı yazdıktan sonra. Elimde atari için aldığım 7 pin din fişlerden vardı. Ucu dağılmış bir ipad usb kablosunu bu fişe lehimledim.

2 amper verdiğini iddia eden bir adaptörle denedim. C64 çalıştı ama benim sorun çözülmedi
Hadi açılışta çalışmamasını anlarım ama resetten sonra çalışmaması enteresan. Bu arada attiny üstünde eepromdan okuma ve yazma başarılı ve durduk yerde attiny'nin reset yemesi / brown out olması gibi bir durum da olmuyor.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
byeni
Üye
****
Mesaj Sayısı: 457



Üyelik Bilgileri WWW
« Yanıtla #22 : Ekim 31, 2017, 02:57:53 ÖÖ »

Yine güzel bir proje. Heyecanla takip ediyoruz. Listeye eklenelim gene 
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #23 : Ekim 31, 2017, 03:01:39 ÖÖ »

Hızla ilgili mevzu da dediğim gibi 1 byte eeprom okuma varken çalışmıyor. Yokken ve port'a hardcoded bank numarasını verirsem çalışıyor.

Eeprom okuma da alt seviyede,

Son yazmayı bekle,
Adresi set et
Okuma kontrol flag'ini ekle
Datayı oku (4 cycle)

Şeklinde. Toplasan en fazla 8-10 avr cycle. İlk işlem (mantıken hemen sonuçlanması lazım) belirsiz süre alabilir diye doğrudan register erişimi ile de yaptım, sonuç yine aynı.

Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #24 : Ekim 31, 2017, 03:07:27 ÖÖ »

Jiffydos'u çalıştıran kod
Kod:
	DDRB = 0x07; //0,1,2 output. 3 input
PORTB = 0x05;

/* Replace with your application code */
while (1)
{
}

Çalıştırmayan kod
Kod:
	DDRB = 0x07; //0,1,2 output. 3 input
uint8_t val = eeprom_read_byte(0);
PORTB = val & 0x07;
val = (val + 1 ) & 0x07;
eeprom_write_byte(0, val);

/* Replace with your application code */
while (1)
{
}


@byeni : Bu gidişle bu projeye sipariş toplayamayacağız Henüz daha benim bile işimi göremiyor
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #25 : Ekim 31, 2017, 03:23:27 ÖÖ »

@ilker : Hafıza temizleme muhabbetini sen yazınca uyandım. İş bir araç markasının sorun tespit işine döndü Vanilyalı kahve alınca çalışmıyor, normal alınca çalışıyor araba filan.

Sorun muhtemelen arka arkaya, ram içeriği temizlenmeden kernal switch etmekten kaynaklanıyor. Jiffynin ufak varyantları arasında switch etmeyi deneyeceğim yarın.

Bu c64c'lerin hafızalarını uzun süre silmemek gibi bir sabıkası var. Muhtemelen jiffy ve çalışmayan diğerleri bir yerlerde belleğin sıfır olduğu varsayımını yapıyorlar.

Edit : Gerçi bilemedim. Kernal yazan adamın böyle varsayımlara girişmemesi lazım. Bugün denerken bir ara hep siyah ekranda kalan 7. Rom seçimimin ne olduğunu da gördüm bu arada. Dead test cart imiş. Üstteki teorimi de çürütüyor biraz bu.
« Son Düzenleme: Ekim 31, 2017, 03:27:38 ÖÖ Gönderen: i_r_on » Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.396



Üyelik Bilgileri
« Yanıtla #26 : Ekim 31, 2017, 09:24:11 ÖÖ »

"not: indirdiğim yerde itin biri Türk diyerek haksız yere ismi Özkan (ozkano sen misin?) olan birine hakaret etmiş"
kavga mı var? nerede? Kahkaha


Şu aşağıdaki linkte yorumlarda.

http://www.nightfallcrew.com/27/07/2009/jiffydos-kernal-roms-manual-download-linkjiffydos-kernal-roms-manual-download-link/

Türk olduğundan daha sonra dem vurulan Özkan isimli arkadaş "Utanmıyor musunuz bunları download ettirmeye Jim Brain bunu hala lisanslı olarak satıyor ... ..duklarımın demiş."

Biri de ona tepki olarak şöyle bir genelleme döktürmüş.

"Thanx guys for the files!!
Don’t give a fuck to this idiot Ozkan mates! He is probably fucking Turkish loser as I see…"



okumuştum abi, ben de gıcık oldum salağa, salak hem ülkeden ötürü aşağılamaya çalışıyor hem de Turkish'in t'sini büyük yazmış. beyin sızıntı yapıyor, alkolle tamamlıyor herhalde diye düşünüyorum, gerzek gavur... bende makara olsun diye gidip dövelim manasında yazmıştım

edit: Türkish yazmışım iyi mi
« Son Düzenleme: Ekim 31, 2017, 11:04:16 ÖÖ Gönderen: Levent (Lvnt) » Logged

Use the brute force, Luke
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #27 : Ekim 31, 2017, 10:18:20 ÖÖ »

Şimdi, sistemi tam anlamadığımdan soruyorum: Kaldırıp indirirken kernal değiştirip reset mi atıyor? Önce hangisini yapıyor? Hem kaldırırken hem de indirirken iki defa ivmelenme olduğu için iki defa reset atıyor ama ağanın resetinin üstüne reset olmayacağı için program counter aynı kalıp kernal değişiyor olabilir mi? Böylece benzer kernallerde çakılma olmazken, epey değişik kernallerde program counter yeni kernalin abuk bir yerin başlıyor olabilir (ilk reset devam ederken ikincisi program counter'ı FFFC'ye almayacağı için). Ayrıca kernal'deki RAM kontrolü hep aynı yerde, uzun süre  dolandığı için bu switch sırasında program counterın yeni kernalde geçersiz bir komuttan devam etme olasılığı düşüyor). Sistemi bilmediğimden yalnızca bir teori bu tabii.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #28 : Ekim 31, 2017, 11:08:10 ÖÖ »

Reset atma gibi bir yeteneği yok malesef. Test için kullandığım yapıda acceloremeter'ı da devreden çıkardım.

Ama mantıken yapacağı şey şu,

1- C64 açılır, devre eeprom'undan okuduğu kernal seçimini 27c512'ye yansıtır. Attiny'nin C64'den önce çalışır hale geleceğini varsayıyorum burada. (C64'ün full reset sinyali ile bir kıyaslayacağım)
2- Kernal seçimi yaptıracak aksiyon alınırsa kernal switch yapılıyor, yeni kernal numarası eeprom'a kaydediliyor.  (C64 açık iken havaya kaldırılıp indirilmesi mesela, ya da ileride adres hatlarından birini dinleyip bunu yapmayı düşünüyorum.)

Bu sorundan dolayı daha aslında 1 no'lu aşamadayım. Eeprom'da kayıtlı jiffydos'un kernal no'su okunup 27c512'nun yüksek adres bacaklarına bu değer set edildiğinde c64 jiffydos ile açılmıyor. Eeprom'dan okuma yapılmaz ise açılıyor.

C64 açıldıktan sonra switch yapılması durumunda crash olmasına razıyım yani. Bunun için rom kullanmayan bir program yazıp crash olmasının önüne geçeceğim ileride.

Hatta daha önce vazgeçtiğim halde kernal seçimi yaptıracak özel bir kernal koymayı bile ciddi ciddi düşünmeye başladım. Böyle bir şey yaparsam açılışta kernal switch etme gibi bir derdim kalmıyor. Her zaman sıfır no'lu kernal ile açılacak, bu kernal da rom kullanmayıp ram üstünden gerekiyorsa kernal seçimini yaptıracak yahut seçili olan kernal'a boot edecek.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #29 : Ekim 31, 2017, 11:32:36 ÖÖ »

Mevcut haliyle kernal değişimini nasıl yapıyoruz? Jumper mı var?
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
Sayfa: 1 [2] 3 4   Yukarı git
Yazdır
Gitmek istediğiniz yer: