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 KategoriProjeMegaOne (1MByte Kapasiteli Flash Kartuş)
Sayfa: 1 ... 10 11 [12] 13 14 ... 30   Aşağı git
Yazdır
Gönderen Konu: MegaOne (1MByte Kapasiteli Flash Kartuş)  (Okunma Sayısı 274315 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.756


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #165 : Nisan 08, 2016, 16:58:25 ÖS »

Denedim süpermiş bu özellik.
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
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #166 : Nisan 08, 2016, 17:36:23 ÖS »

8. dakika dolaylarında autorun özelliği mi duydum ne

Yalnız, sunumundan menüsüne, kart tasarımından logosuna ve de destek programlarına kadar gayet profesyonel olmuş.

Bir de soru: Programlamak için alt düzey bilgiler neler?
Nereyi +5'e nereyi GND'ye çekiyorum, Flash bloklarını silmek için data hatlarına ne gönderiyorum, Flash'a yazmak için ne yapıyorum gibi... Özetle, C64 içinden de megaone flash'ını programlamak güzel olur. Bir de o SRAM'ı C64 içinden nasıl kullanabilirim? Nereye map ediliyor? $8000...? $DEXX-DFXX? Nasıl bank ve page seçebilirim?

Bir soruyu geçtik, ama ne yapalım, son zamanlarda IRQhack'tir SD2IEC'dir derken şimdi de MegaOne'la insanın aklına güzel fikirler üşüşüyor.

Şimdiden teşekkürler onca emeğe, gerçekten her açıdan dört beşlik
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #167 : Nisan 08, 2016, 17:54:53 ÖS »

Stable raster rutini elbette ki iyi olur ama sadece rasterbar çekmek için gerek yok. Bir kaç cycle geriye alsan o titreme gider. En fazla 7/8 cyclelık jitter oluşuyor. Bu kadarını standart monitör/tv'lerin dışında bırakabiliyorsun, sorun olmuyor. Sideborder açman, split yapman falan gerektiği durumlarda lazım stable raster rutini. Yoksa nop ekle, bit çıkar halledersin bir biçimde rasterbarı her zaman.

RUN+ENTER olayı da bana o kadar hacky gelmedi. Başka yolu var ama benim bildiğim bir çok kartuş da aynı yöntemi kullanır, VICE'a prg drag drop edince yüklemeden sonra otomatik RUN+ENTER yapılır falan filan. Bence kullanımda ters bir durum yok yani.

Vice'ın default hali soldan sağdan çok dar bir alan görüntülüyor. Görüntü ayarlarında border size mevcut. Hele debug border size'ına geçersen olayı çok detaylı biçimde görebilir, çok daha kolay fixleyebilirsin.

@Skate, sorma yıllar geçti üzerinden, unutmuşum stable raster olayı diye bir kavram olduğunu bile. Nedense VICE emu'de gayet stable idi o rasterlar. Gerçek makineye atınca gördüğün gibi oldu, zangır zungur ... Kahkaha

Ekranın en üstündeki ilk raster da denedim tekrar çift interrupt ile stable etmeyi sonra diğerlerine üşandim. Bir ara halledeceğim zaten daha toparlanacak çok yeri var.

Bu arada bu kodu sana göndermeye utanırım ben, muhtemelen bir tarafınla gülersin rutinlere...

Bak aşağıda PRG dosyalarını yükleme rutinimi post ediyorum. Sondaki 5 adet LDA/STA çifti ne biliyor musun? Keyboard buffer'a, RUN+ENTER gönderiyorum. Başka bir yolunu bulamadım gece vakti yüklediğim programı çalıştırmanın... Kahkaha

Kod:

RunPRG .proc


; Fast Reset C64
SEI
        
LDA #$04 ; Kill megaOne ...
STA $DE02

LDA #$00
STA $00
LDA #$1F
STA $01

LDX #$ff
        TXS
        JSR $FDA3
; JSR $FD50
JSR REP_FD50
        JSR $FD15
        JSR $FF5B
        JSR $E453
        JSR $E3BF       ; init routine ends here


; Load PRG File ...
LDA #%10000111 ; Re-Activate megaOne
STA $DE02

;LDA #$00
;STA $00
;LDA #$1F
;STA $01

; Copy Program Loader to $0500 and RUN there ...
LDX #(Loader_End-Loader_Begin)
Copy_Loader
LDA (Loader_Begin),x
STA $0500,x
DEX
BPL Copy_Loader
JMP $0500

Loader_Begin
.logical $0500

LDA #$08 ; Reset Destination Address
STA copy_loop+5

LDY PRG_LEN_BLOCKS
LDA PRG_BANK
STA Next_Bank+1

Next_Bank
LDA #0 ; Source Bank
STA $DE00

LDA #$80 ; Reset Source Address
STA Copy_Loop+2

Next_Block
LDX #0

Copy_Loop ; Copy One Block
LDA $8000,X
STA $0801,X
INX
BNE Copy_Loop

DEY ; 1 Block Copied, End of PRG?
CPY #0
BEQ Copy_Done

INC Copy_Loop+2 ; Advance Pointers for the next block
INC Copy_Loop+5

LDA Copy_Loop+2 ; Check End Of Cartridge Bank
CMP #$C0
BNE Next_Block

INC Next_Bank+1 ; Advance Cartrigde Bank
JMP Next_Bank

Copy_Done

LDA #$04 ; Kill megaOne ...
STA $DE02



LDA #82
STA 631

LDA #85
STA 632

LDA #78
STA 633

LDA #13
STA 634

LDA #4
STA 198

JMP ($A002) ; WarnStart Basic

.here
Loader_End
.pend
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #168 : Nisan 08, 2016, 17:56:01 ÖS »

8. dakika dolaylarında autorun özelliği mi duydum ne

Yalnız, sunumundan menüsüne, kart tasarımından logosuna ve de destek programlarına kadar gayet profesyonel olmuş.

Bir de soru: Programlamak için alt düzey bilgiler neler?
Nereyi +5'e nereyi GND'ye çekiyorum, Flash bloklarını silmek için data hatlarına ne gönderiyorum, Flash'a yazmak için ne yapıyorum gibi... Özetle, C64 içinden de megaone flash'ını programlamak güzel olur. Bir de o SRAM'ı C64 içinden nasıl kullanabilirim? Nereye map ediliyor? $8000...? $DEXX-DFXX? Nasıl bank ve page seçebilirim?

Bir soruyu geçtik, ama ne yapalım, son zamanlarda IRQhack'tir SD2IEC'dir derken şimdi de MegaOne'la insanın aklına güzel fikirler üşüşüyor.

Şimdiden teşekkürler onca emeğe, gerçekten her açıdan dört beşlik



Teşekkür ederim. Aslında bu sordukların hakkında low level bir döküman yazmak lazım ama şimdilik hızlıca cevap vereyim.

RAM $DF00-$DFFF arasına map'li. Sadece 256 byte görülebiliyor. (Aslında RAM daha büyük ama amacım sadece easyflash'a uyumluluktu, uğraşmadım fazlasını maplemek için.) Bu bölge her zaman aktif.

Yazmak ve okumak için öncelikle blok seçiliyor. Her biri 16K olan 64 adet blok mevcut. Block seçimi $DE00 adresinden yapılıyor. Kartuş açıp kapatmak için $DE02 adresi kullanılıyor. (Aynı easyflash gibi yani.)

Okumak için doğrudan kartuş açık ve bank seçildikten sonra $8000-$BFFF arasından 16K okunabiliyor. Özel bir işleme gerek yok.

Yazmak ve formatlamak için FLASH'ın kedine özgü komutları kullanılıyor. Şöyle ki, örneğin format atmak için, arka arkaya aşağıdaki sıra ile yazmak lazım.

$8AAA adresine $AA
$8555 adresine $55
$8AAA adresine $80
$8AAA adresine $AA
$8555 adresine $55
$8AAA adresine $10

Bu adreslere bu sıra ile bu değerler atandığında FLASH içerisindeki otomatik formatlama sequence başlıyor.

FLASH busy durumunda ise, $8000 adresi her okunduğunda bir önce okunan değerden farklı bir değer döndürüyor. Eğer üst üste aynı değer okunmuş ise FLASH işlemi tamamlamış demektir. Bu durumda zaten okunan değer $8000 adresinin gerçek değeri olmuş oluyor.

Yazmak için se gene benzer şekilde aşağıdaki değerler poke yada STA ediliyor.

$8AAA adresine $AA
$8555 adresine $55
$8AAA adresine $A0
$ADDR adresine yazılcak olan değer

Gene önceki şekilde işlemin bitip bitmediği bekleniyor. $8000 adresi okunarak ...

Aslında block silme vb başka komutlar da var. Bunları aşağıdaki PDF te bulabilirsiniz. Yani bunlar benim oluşturduğum bir protokol değil, bu FLASH'ın kendi komutları böyle...

http://www.macronix.com/Lists/Datasheet/Attachments/3094/MX29F800C%20T-B,%205V,%208Mb,%20v1.2.pdf


 

« Son Düzenleme: Nisan 08, 2016, 17:59:13 ÖS Gönderen: delimawi » Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #169 : Nisan 08, 2016, 18:04:01 ÖS »

Vice'ın default hali soldan sağdan çok dar bir alan görüntülüyor. Görüntü ayarlarında border size mevcut. Hele debug border size'ına geçersen olayı çok detaylı biçimde görebilir, çok daha kolay fixleyebilirsin.


Teşekkür ederim, hiç bilmiyordum bu özelliği, şimdi oldu. Daha rahat çalışırım üzerinde.




RUN+ENTER olayında şöyle bir açmaza girdim. RESET olmuş bir makine düşün, ama $A000 çağrılmamış henüz. Yani BASIC çalışmıyor daha. Ama hafızaya kartuştan programı yükledim. Şimdi RUN komutunun BASIC ROM'daki yerini biliyorum ama onu çağırmadan önce $A000 dan BASIC başlatmam lazım. $A000 JMP yapınca da RUN çağırma şansım kalmıyor artık, JMP yaptık gittik... Kahkaha Bende JMP yapmadan buffer'a tuşları koyup işi BASIC e bıraktım. Çok absürd değil diyorsan böyle kalsın o zaman...
« Son Düzenleme: Nisan 08, 2016, 18:07:25 ÖS Gönderen: delimawi » Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #170 : Nisan 08, 2016, 18:16:31 ÖS »

@delimawi: Şuraya göz attın mı? 8kb crt'ler için autostart örneği var bir tane. Onun üzerinden ilerlenebilir gibi gözüküyor.

http://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #171 : Nisan 08, 2016, 18:22:15 ÖS »

@delimawi: Şuraya göz attın mı? 8kb crt'ler için autostart örneği var bir tane. Onun üzerinden ilerlenebilir gibi gözüküyor.

http://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image


Yok bakmamıştım, hızlıca baktım, enteresan tam yapmak istediğim şey var burada. Gerçi kod hemen hemen aynı, sadece bu tek 16K kopyalıyor, bende limit yok daha uzun da olabiliyor. Bank değiştiriyorum sonuçta her 16K da bir.

Ama enteresan gelen yada anlamadığım kısım, doğrudan jmp $080b yapmış. Burayı incelemem lazım. Yani BASIC program hafızada nasıl duruyor ki? 080b de ne var pek anlamadım. Bakacağım akşam...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #172 : Nisan 08, 2016, 18:52:04 ÖS »

Kodu incelememiştim, o sanırım $080b'yi sabit başlangıç adresi olarak kullanmış.

Assembly'den basic run çalıştırmak istiyorsan o kısmı aşağıdaki ile değiştirebilirsin.

jsr $a659
jmp $a7ae
Logged
emintolga
Üye
***
Mesaj Sayısı: 159



Üyelik Bilgileri
« Yanıtla #173 : Nisan 08, 2016, 18:59:43 ÖS »

Bu projenin ön sipariş listesi nerede? Yazın beni de hemen o listeye, 2 kartuş ve 1 tane de programmer istiyorum.
Logged

Tanar / CLIQUE
*C64 | C64C | 1541-II | Dataset | MultiIce III | Expert | SD2IEC | IRQHack64 | Lightpen
*PS3 Slim | 500GB | Multiman
*PSP 1000, 3000
deksar
Üye
****
Mesaj Sayısı: 297


Engineer - Master, Computer Science


Üyelik Bilgileri
« Yanıtla #174 : Nisan 08, 2016, 20:41:59 ÖS »

@delimawi, zihnine, emeğine, vaktine sağlık. Mükemmel bir anlatım, harika bir çalışma, ve elbette muhteşem ve bana göre şimdiki haliyle bile kusursuz bir kart olmuş. Müthiş bir emek!

Ön sipariş listesi mevcut ise, ben de; 2 adet kartuş, 1 programmer ve 1 hdmi64 siparişi şeklinde yazdırmak isterim.

Kolay gelsin.
Logged

"Pain is inevitable, suffering is optional" - Buddha.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #175 : Nisan 08, 2016, 22:14:24 ÖS »

@emintolga, @deksar teşekkür ederim. Projenin sipriş yada önsipariş listesi henüz yok. Şu an için 40 kadar Kartuş PCB mevcut. Ancak henüz montajları yapılmadı. Programlayıcının ise henüz üretim PCBsini çizemedim. Programlayıcı dahil PCB lerin üretilip gelmesi ve dizilmesi için sanırım 1-2 ay kadar daha zamana ihtiyaç var.

Ancak malesef seri üretim ve özellikle dağıtım projenin geliştirilmesinden daha zor ve zaman alıcı bir süreç. Bunun altınan tek başıma kalkabilmem mümkün değil. Bu konuda umut ediyorum ki @Simon arkadaşımız destek olacak. Bu doğrultuda önümüzdeki günlerde loader kısmını tamamen bitirip, programlayıcı PCB'sini de çizince, belki bir ön sipariş başlığı ve listesi açacağız.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Agony
Uzman
*****
Mesaj Sayısı: 2.542


Amiga gibi yar, Commodore gibi de yadigar olmaz.


Üyelik Bilgileri
« Yanıtla #176 : Nisan 08, 2016, 23:44:37 ÖS »

Bugün iş yerinde videoyu izleyeceğim diye göbeğim çatladı. Bir konsantre olupta izleyememiştim. Ancak şimdi izleyebildim.

Harika bir çalışma olmuş. Acayip heyecanlandım bu videodan sonra. MegaOne nedir ne işe yarar diye düşünürken, videodan sonra "Haaaaaaaaaaa" hatta "Haaaaağğğğğ" şeklinde ses çıkardım. Kahkaha Sabırsızlıkla bekliyorum. Bu arada, HDMI64 bu haliyle bile harika duruyor. Liste oluşturulduğu zaman bende sıraya gireyim. Değerlenecek buralar Kahkaha
Logged

KNG
Üye
****
Mesaj Sayısı: 315



Üyelik Bilgileri
« Yanıtla #177 : Nisan 09, 2016, 16:30:13 ÖS »

Videoyu şimdi izleyebildim. Tek kelimeyle mükemmel. MegaOne, programmer, hdmi64 hepsinden bir adet lehimli

Emeğine sağlık...
Logged
emintolga
Üye
***
Mesaj Sayısı: 159



Üyelik Bilgileri
« Yanıtla #178 : Nisan 09, 2016, 16:48:40 ÖS »

HDMI64'ü atlamışım bak, onun da listesinin başına yaz beni @delimawi, eline sağlık, müthiş bir emek.
Logged

Tanar / CLIQUE
*C64 | C64C | 1541-II | Dataset | MultiIce III | Expert | SD2IEC | IRQHack64 | Lightpen
*PS3 Slim | 500GB | Multiman
*PSP 1000, 3000
ateskd
Üye
**
Mesaj Sayısı: 37



Üyelik Bilgileri WWW
« Yanıtla #179 : Mayıs 02, 2016, 18:11:17 ÖS »

Elinize sağlık süper olmuş. Ön sipariş listesinde ben de olmak isterim
Logged
Sayfa: 1 ... 10 11 [12] 13 14 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: