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.trCommodoreCommodore YazılımIRQhack64 ile 8 Saniyede GEOS:
Sayfa: 1 [2] 3 4   Aşağı git
Yazdır
Gönderen Konu: IRQhack64 ile 8 Saniyede GEOS:  (Okunma Sayısı 36031 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #15 : Mayıs 04, 2016, 08:21:36 ÖÖ »

O ne! E uçmaya başlamış bu.

Tek rakibi Türk DMA Yolları

Bu son deneysel halinin ve production halinin ziplerini alabilmemiz mümkün mü?

Bence senkron olamamasının sebebi delayMicroseconds()'ın hassas olmaması. Zaten kendi içinde bir 1/16 mikrosaniyelik epsilona sahip. Üstüne bu komuta girip çıkarken de kayıp yaşıyor. O gecikmeleri birer ikişer kısaltarak deneme yanılmayla tutturabiliriz senkronu gibi geliyor.

Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #16 : Mayıs 04, 2016, 09:16:10 ÖÖ »

Bence senkron olamamasının sebebi delayMicroseconds()'ın hassas olmaması.
Ya da i_r_on Arduino'dan kurtulup yavaş yavaş Atmel Studio'ya (dolayısıyla saf AVR GCC'ye) geçecek. Kahkaha
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #17 : Mayıs 04, 2016, 13:05:55 ÖS »

O ne! E uçmaya başlamış bu.

Tek rakibi Türk DMA Yolları

Bu son deneysel halinin ve production halinin ziplerini alabilmemiz mümkün mü?

Bence senkron olamamasının sebebi delayMicroseconds()'ın hassas olmaması. Zaten kendi içinde bir 1/16 mikrosaniyelik epsilona sahip. Üstüne bu komuta girip çıkarken de kayıp yaşıyor. O gecikmeleri birer ikişer kısaltarak deneme yanılmayla tutturabiliriz senkronu gibi geliyor.



Source'ları akşam eve gidince paylaşırım. delayMicroseconds'ı inline assembly'e çevirmek kolay. Zaten 2 byte gönderimi ile kazanılan hız beni kesmedi, 40k'yı 1 saniyede göndermem lazım

Muhtemelen 4 byte gönderimi de çalışacaktı, sıkıntı menünün gönderilmesi sırasında yaşanıyor tahminimce. Onu çözersem aslında olay çözülüyor.

Bu arada hakikaten şerit yerine düz tek renk ekranla geçiş daha hızlı olduğu izlenimini uyandırıyor. Şeritler bizim beynimizde eski teyp yüklemelerinden kaynaklı  "bekle kardeşim" bölgesini uyarıyor herhalde

Bence senkron olamamasının sebebi delayMicroseconds()'ın hassas olmaması.
Ya da i_r_on Arduino'dan kurtulup yavaş yavaş Atmel Studio'ya (dolayısıyla saf AVR GCC'ye) geçecek. Kahkaha

Bu projede artık zor, hardware'i de baştan design edip yazılımı da oraya kaydırmak aklımdan geçmedi değil. Bir sonraki projeye kısmetse. Gerçi belli de olmaz, kaşınırım falan yine çok kesin konuşmayayım.
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 #18 : Mayıs 04, 2016, 16:44:07 ÖS »

beynin "bekle kardeşim bölgesi" güzelmiş.
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #19 : Mayıs 04, 2016, 22:55:45 ÖS »

Test versiyonunun source'ları şurada.
http://www.tepetaklak.com/data/IRQHack64Nmi2Byte.zip

Ben bir iki eprom silip 4 byte transferi deneyeyim 6 cycle şerit operasyonundan da kazanmışken ciddi fark yaratacak muhtemelen.
Logged

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

twitter | blog
gameretro
Üye
****
Mesaj Sayısı: 312



Üyelik Bilgileri
« Yanıtla #20 : Mayıs 04, 2016, 23:12:12 ÖS »

Takip ediyorum da bu gidişle commodore açıldığı anda geos gelicek sanırım Bravo yani.

Kolay Gelsin.
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #21 : Mayıs 04, 2016, 23:21:57 ÖS »

@gameretro : ilker sd2iec'ten de bir yüklemeden bahsediyordu. O yüklemenin süresine IRQHack64'ün bir katkısı maalesef olamayacaktır.

@ilker : sahi ne kadar bir data yüklüyor?
Logged

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

twitter | blog
gameretro
Üye
****
Mesaj Sayısı: 312



Üyelik Bilgileri
« Yanıtla #22 : Mayıs 05, 2016, 00:23:09 ÖÖ »

8sn'de yüklemeyi denemiştim demek ki arayı kaçırmışım onun üzerine combo yaparak devam ediyorsunuz diye algıladım olayı.Cevap için Teşekkürler.

Tabii ki takibe devam
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #23 : Mayıs 05, 2016, 02:33:13 ÖÖ »

4 byte ile de çalıştı bu arada. Çalıştığında %25 daha hız artışı oldu. Stabilite daha kötü. Şunu farkettim, arduino hız için değil flash boyutu için optimizasyon yaptırıyormuş gcc'ye. Inline assembly ile 6502'nin 0.985mhz pal clock'unu da düşünüp delay rutini yazdım ancak adam gitti onu inline kodun içine gömmek yerine call ile çağırdı. Assembly çıktıda delay rutinini oluşturan nop'ları da optimize etti mi etmedi mi anlayamadım.

Hıza göre optimize et demek için platform.local.txt içinde değişiklik yapılabiliyormuş onu denedim. Bu sefer de compile / link'te enteresan bir hata aldım.

En son tekrar delayMicroseconds'a dönüp elle tweak ettim. Menü transferi arada göçse de esas transfer takır takır çalışıyor. Transfer rutinini monoblok assembly ile yazmak lazım tam stabil olması için.

4 byte'lık versiyon şurada.
http://www.tepetaklak.com/data/IRQHack64Nmi4Byte.zip

Bu arada fonksiyonları inline edemiyor olmak da gerçek hızı görememek için bir etken. Bir şekilde hıza göre optimize ettirmek lazım. Size artışından dolayı menüyü kartuş üstünde saklamayız olur biter.
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 #24 : Mayıs 05, 2016, 03:23:00 ÖÖ »

50KB yüklüyor: http://cbm.ficicilar.name.tr/dosya/geossnap.zip

Bunun içindekini çalıştırıyoruz IRQhack64 ile. Şak diye GEOS gelecek olasılıkla

gcc'de -O0 parametresi işe yaramadı mı ki?

Bir bakayım.

Bu arada ben de KissUtilityPack'te son rötuşları yaptım. Arşiv içindeki PRGs'dekiler IRQhack64'ün kısa yol tuşlarıyla (0-7) da çalışabilmesi lazım: http://cbm.ficicilar.name.tr/dosya/KissCart-UtilityPack-v1.4.rar

Logged

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



Üyelik Bilgileri WWW
« Yanıtla #25 : Mayıs 05, 2016, 22:15:19 ÖS »

pragma directive'i ile -O0 seviyesini inline fonksiyonların olduğu dosya için denedim ancak başka bir kütüphane derlenemedi. Bir de -flto opsiyonu varmış, onu da denedim collect.exe bıdı bıdı diye başka bir hata verdi o da.

Aslında ne kadar yüklüyor diye sorduğum disket sürücüden ne kadar yüklediğiydi. Anladığım kadarıyla bu crunch'lı, uncrunch'ta vakit gidiyor daha çok.

sd2iec bağlı olmadan denedim 5 sn.'de açtı. i/o bölgesine yükleme gerekiyor falan demiştin, öyle bir versiyon varsa onu da deneyebilirim.
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 #26 : Mayıs 05, 2016, 23:19:22 ÖS »

Aslında bu crunch'sız ama bol bellek transferli. GEOS çalışırken Vice ile tam bir bellek snapshot'ı alabilirim sanırım. 0002'den ffff'a kadar yükleme yapmasının önünde bir engel yok bence irqhack64'ün. I/O runtime kopyasını da GEOS'un 2. ekranı olan $6000 koyarız. Çok az bir bellek transferi ile hallolur gibi. 64k sdcard'dan 1-2K da RAM'dan  I/O'ya.

Optimizasyon parametreleri ise neden sorun çıkarıyor acaba?
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #27 : Mayıs 05, 2016, 23:52:01 ÖS »

Bilemiyorum valla. Kurcalayıp halledeceğim bir ara. Şu an zaten stabil değil, her türlü zamanlamayı sağlamlaştırmam lazım.

Diğer konuda paylaştığın d64 imajını attım sd2iec'e. Geossnap'i IRQHack64 ile yükledim. Geos içinde içeriğini listelemeye çalışınca sürücü hatası verdi. Öncesinde sanıyorum sd2iec'de bu d64'ü seçtirmek için bir şey yapmak lazım.&nbsp; Özay'ın açıklamalara bir bakayım.

Loader rom'u bellek ayarını $34 yapacak şekilde değiştiriyorum bu arada. $D020'ye yazan tüm yerleri de kaldırmak gerekti, yoksa yüklenen şeyi ezerim.

Deneme yapmak için büyük bir program imajı bulmam lazım. Vice'ta freeze işini beceremedim.

ps: aşağıdaki linkten bakıp çalıştırdım bu arada
https://www.c64-wiki.com/index.php/sd2iec_(firmware)
« Son Düzenleme: Mayıs 05, 2016, 23:57:37 ÖS 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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #28 : Mayıs 06, 2016, 00:13:36 ÖÖ »

$34 dedim ben ama kafam karıştı.

Kod:
Bits #0-#2: Configuration for memory areas $A000-$BFFF, $D000-$DFFF and $E000-$FFFF. Values:

◦%x00: RAM visible in all three areas.


◦%x01: RAM visible at $A000-$BFFF and $E000-$FFFF.


◦%x10: RAM visible at $A000-$BFFF; KERNAL ROM visible at $E000-$FFFF.


◦%x11: BASIC ROM visible at $A000-$BFFF; KERNAL ROM visible at $E000-$FFFF.


◦%0xx: Character ROM visible at $D000-$DFFF. (Except for the value %000, see above.)


◦%1xx: I/O area visible at $D000-$DFFF. (Except for the value %100, see above.)

Ram'e yazma anlamında aslında bellek konfigürasyonu etkili değil. Tek istisna I/O bölgesi. Her yeri RAM yap seçeneği %x00 ise default nmi handler'ın çalışmasını engelleyecek. Şimdi I/O altına yazabileyim ama Kernal ROM'dan da okusun seçeneği hangisi emin olamadım.

Şu herhalde?
%0xx: Character ROM visible at $D000-$DFFF. (Except for the value %000, see above.)

Yani $33? Karakter rom okunabilir hale geliyorsa burada, yazma yapılınca da ram'e mi yazar acaba?
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 #29 : Mayıs 06, 2016, 01:33:53 ÖÖ »

Cengiz gibi ustaların affına sığınarak sesli bir video çektim.



Merhaba retro oyun severler diye girecektim videoya az daha
Logged

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

twitter | blog
Sayfa: 1 [2] 3 4   Yukarı git
Yazdır
Gitmek istediğiniz yer: