Dahili mekanik disket sürücü için Device ID Modifikasyonu
-----------------------------------------------------------------
Simon'u işaret ettiği bir sorun vardı, Cortex emulator'ı dahili mekanik disket sürücüyle birlikte internal veya external olarak kullanırken bir sorun çıkıyordu. Boot selector ile Amiga'yı Cortex'den boot'latınca dahili mekanik sürücü sistemde görünmüyordu. Bu sorunu çözeli epey oldu ama anca yazabiliyorum. Dahili mekanik disket sürücünün data kablosuna bir mod yaparak sorunu çözüyoruz;
Aşağıdaki Amiga 500'ün orjinal floppy data kablosu:

Başka bir data kablosundan söktüğüm konnektörü sağ tarafa ekliyorum.
Orjinal data kablosu kısa olduğu için eklediğim konnektörü diğerinin hemen yanına taktım.
Daha uzun bir data kablosunda araları açılabilir.
Data kablosunun kırmızı ile işaretli kenarına dikkat ediyoruz:

Eklediğim konnektörde 10 ve 34 nolu delikleri 1N4148 diyot ile birleştiriyorum.
Diyotun katotu yukarı yani 10 nolu deliğe doğru.
Aptal makine en önemli fotoğrafı bulanık çekmiş, belirginleştirmek için biraz rötuş yaptım:

Diyotun üzerini sıcak silikon ile kapatıyorum:

Kabloyu yerine takıyorum.
Eklediğim konnektörün yanındaki konnektör disket sürücüye takılı durumda:

Bu modu uyguladıktan sonra Amiga'yı Cortex'den boot'latınca dahili mekanik sürücü sistemde DF1 olarak kullanılabiliyor =)
Çalışma mantığı şu şekilde;
Boot selector'ı kullanarak Amiga'yı Cortex'den boot'latınca Cortex DF0, mekanik disket sürücü DF1 konumunda oluyor. Ama Amiga, disket sürücülerin tespitinde DF0'ın haricindeki disket sürücülerin external olacağını düşünüyor ve bunların tespitinde EXTERNAL DISK IDENTIFICATION denilen bir teknik kullanıyor. Ulaşmak istediği disket sürücüyü SEL sinyali ile seçtikten sonra seçilen disket sürücüden gelen RDY sinyali ile oluşan 16 bitlik Device ID'ye göre disket sürücünün takılı olup olmadığını, takılı ise türünü algılıyor. Ama bizim DF1 konumundaki mekanik disket sürücü kendisini tanıtmadığı için Amiga tarafından algılanmıyor.
Bu sorunu gidermek için data kablosu üzerinden mekanik disket sürücünün kullandığı SEL0 sinyalini bir diyotla RDY sinyaline bağlıyoruz (diyotun katotu SEL0'a doğru). SEL0 sinyali düşük olduğunda diyot üzerinden RDY sinyalini de düşük yapıyor ve sonuçta RDY sinyali IDENTIFICATION sırasında Amiga'ya 16 adet binary 0 vermiş oluyor. Amiga bunu evirerek binary 1111 1111 1111 1111 ID'sini elde ediyor. Bu ID, Amiga standart 3.5" disket sürücüsüne denk geliyor =)
Device ID.s
----------------------------
0000 0000 0000 0000 No drive present
1111 1111 1111 1111 Amiga standard 3.5"
1010 1010 1010 1010 Reserved
0101 0101 0101 0101 48 TPI double-density, double-sided
...
Dahili mekanik disket sürücü eğer tek başına kullanılacaksa bu moddan etkilenmiyor.
LSD grubunun Jesus On E's demosu bu sorunu çözmek için bana bir ipucu verdi. Demo iki disketten oluşuyor ve birinci disketi çıkartmadan ikinci disketi başka bir sürücüye takın diyor. Demoyu Cortex üzerinden boot'latmıştım, ikinci disketi takın derken bakıyorum dahili mekanik disket sürücüyü de sürekli yokluyor. Nasıl olur bu, hani Cortex'den boot'latınca onu görmüyordu? Standart kullanılan EXTERNAL DISK IDENTIFICATION tekniğinin haricinde başka bir teknik de var yani =)
Jesus On E's demosunun müziği iyidir:
Sorunun çözülmesinde yardımı olan amiga.org'deki bir konu, A3000 üzerine ama mantık aynı:
http://www.amiga.org/forums/showthread.php?t=34788ve tabi Amiga Hardware Referance Manual ve Amiga 500 Schematic
ada.evergreen.edu/~tc_nik/files/AmigaHardRefManual.pdfhttp://www.amigawiki.org/dnl/schematics/A500_R6.pdfBu modifikasyonu uzatılmış çift sürücü çıkışlı kabloya yapsak boot selector ile cortex i DF0 edip disket sürücüsünü DF1 olarak görebiliyormuyuz?