30 yıllık bir dizüstü bilgisayardan dosya kopyalamanın yolu
(unterminated.com)- 1994 model Apple PowerBook Duo 280c üzerinde kalan kısa ses kayıtlarını korumak gerekiyordu, ancak ses çıkışı, disket, ağ ve disk adaptörü seçeneklerinin hepsi tıkalı olduğu için faks gönderimi dolaylı bir çözüm haline geldi
- ResEdit’in hex editörü ile ses dosyası onaltılık metin olarak açıldı, Microsoft Word’e yapıştırıldı ve ardından yazdırma iletişim kutusundaki faks özelliğiyle gönderildi
- Alımı, Windows XP yüklü ve dahili modeme sahip ThinkPad T60 ile faks uygulaması üstlendi; iki dizüstü bilgisayarı doğrudan telefon hattıyla bağlamak yerine 9V pil tabanlı bir telefon hattı simülatörü devresi gerekti
- TIF faks görüntüsünü OCR ile geri dönüştürme yöntemi, 0/C, 9/4, 0/D yanlış tanımaları ile eksik/eklenmiş karakter hataları yüzünden seste çatırdama ve patlama gürültüleri bıraktı
- Sonunda sabit genişlikli karakter ızgarasını doğrudan analiz eden FaxToBinary aracı yazıldı, karakter desenleri elle öğretildi ve orijinaliyle bayt düzeyinde eşleşen ses dosyası kurtarıldı
Tıkanan kopyalama yolları
- Hedef cihaz 1994 model PowerBook Duo 280c idi ve içinde korunmak istenen birkaç kısa ses kaydı bulunuyordu
- Neyse ki dizüstü bilgisayar hâlâ açılıyordu, sabit disk hafifçe vurulunca dönüyordu ve ses dosyaları dahili hoparlörden çalınabiliyordu
- Alışılmış kopyalama yöntemleri teker teker devre dışı kaldı
- Ses jakı yoktu, bu yüzden yüksek kaliteli analog kopya almak zordu
- Dahili sabit disk, alışılmadık bir konnektöre sahip SCSI kullanıyordu ve modern sistemlerin eski HFS dosya sistemini kolayca okuyup okuyamayacağı da belirsizdi
- Harici disket sürücü bağlanınca bilgisayar çalışmıyordu ve arızanın nedeni de bulunamadı
- AppleTalk portu ile telefon jakı vardı, ancak ağ yazılımı kurulu değildi
- HTTP ancak 1996’da standartlaştı ve bu dizüstü bilgisayarda o dönemde kullanılabilecek çevirmeli bağlantı yazılımı da yoktu
- Buna karşılık telefon çevirici ve faks yazılımı duruyordu; böylece modem üzerinden dolaylı bir yol mümkün oldu
Dosyayı faks belgesine dönüştürmek
- Dizüstü bilgisayarda oyunların yanında kaynak düzenleyici ResEdit de kuruluydu ve bu aracın hex editörü ile dosyanın ham içeriği onaltılık olarak görülebiliyordu
- ResEdit çıktı alma özelliğini desteklemediği için onaltılık metnin başka bir uygulamaya taşınması gerekiyordu
- Örnek ses dosyası 37.928 bayt büyüklüğündeydi ve her bayt iki karakterlik onaltılık gösterimle yazıldığından metin temsili bunun iki katı uzunluktaydı
- Tek seferde işlenebilecek boyutta sınırlar olduğu için dosya parçalara bölünerek kopyalandı; ofsetleri hatırlamayı kolaylaştırmak için 12288 bayt, yani 0x3000 birimleri kullanıldı
- Panoya kopyalanan onaltılık metin Microsoft Word belgesine doğrudan yapıştırılabiliyordu ve Word çıktı alma özelliği sağlıyordu
- Dosyaların hepsi 100KB altındaydı ve ResEdit’ten Word’e pano üzerinden yapılan manuel kopyalamanın hızı ortalama yaklaşık 316 bayt/sn olarak tahmin edildi
İki dizüstü bilgisayar arasında sahte telefon hattı kurmak
- Alıcı bilgisayar, dahili çevirmeli modem bulunan ThinkPad T60 idi ve Windows XP’nin faks uygulaması gelen faksları çok sayfalı TIF görüntüleri olarak kaydedebiliyordu
- İki dizüstü bilgisayarı telefon kablosuyla doğrudan bağlama yöntemi başarısız oldu
- PowerBook arama yapıyordu, ancak ThinkPad yanıt vermiyordu
- “Ignore Dial Tone” seçeneği de işe yaramadı
- Gerçek sabit telefon şebekesinin sağladığı voltaj, modemlerin çalışması için önemliydi ve bu sorun phone line simulator circuit ile çözüldü
- Bu devre yaygın elektronik bileşenlerle ve 9V pil kullanılarak yapılabiliyordu; iki dizüstü bilgisayar arasında sahte bir telefon hattı sağladı
- Faks gönderiminde FCC gereklilikleri nedeniyle bir kapak sayfası gerekiyordu; kapak sayfası eklendikten sonra aktarım başladı
- İlk başta rasterize edildikten sonra gönderim süresi 24 dakika olarak görünüyordu, ancak yazı tipi boyutu küçültülerek bu süre 6 sayfa ve 7 dakikaya indirildi; faks 14400bps ile ThinkPad’e ulaştı
OCR ile kalan hatalar
- ThinkPad’in aldığı fakslar TIF görüntüleriydi; bunları yeniden ikili dosyaya çevirmek için önce PDF’e dönüştürme ve OCR denendi
- Faks görüntüleri OCR için elverişli görünüyordu
- Metin bilgisayar tarafından oluşturulmuştu; hizası ve biçimi tutarlıydı
- Kullanılan karakterler yalnızca 0-9 ve A-F’den oluşan 16 tür idi
- Courier gibi yaygın bir sabit genişlikli yazı tipi kullanılmıştı
- OCR sonucundaki metin seçilip bir hex editöre kopyalanabiliyor ve ikili dosya olarak kaydedilebiliyordu
- Audacity, ortaya çıkan dosyanın ses biçimini unsigned 8-bit PCM, little-endian, 22050Hz, mono olarak tahmin etti ve dalga biçimini de gösterebildi
- Çalma büyük ölçüde iyiydi, ancak dalga biçimindeki ani çöküşler OCR aktarma hatalarından kaynaklanan çatırdama ya da patlama gürültüsü olarak duyuluyordu
- Farklı OCR programları ile yazı tipi boyutu ve yazı tipi değişiklikleri denense de %100 doğruluğa ulaşılamadı
- 0 ile C, 9 ile 4, 0 ile D karıştırılıyordu
- Bazen karakterler atlanıyor ya da yeni karakterler ekleniyordu
FaxToBinary ile bayt düzeyinde kurtarma
- Faks görüntüsündeki metin sabit genişlikli yazı tipiyle üretildiği için tüm belge eşit aralıklı bir karakter ızgarası olarak ele alınabildi
- Başlangıç noktası, karakter ofsetleri ve satır aralığı hizalanınca her karakter tek tek yakalanıp analiz edilebiliyordu
- Özel araç, soldaki önizleme ile boyut ve ofset parametrelerinin doğru olup olmadığını kontrol ettiriyordu; karakterler kaydırılsa ya da satır değişse bile sapma yoksa işleme başlanabiliyordu
- Karakter tanıma, basit bir manuel öğrenme yöntemiyle çalışıyordu
- Daha önce görülmemiş her benzersiz desen için kullanıcı bunun hangi karakter olduğunu belirliyordu
- Daha sonra aynı şekle sahip karakterlerle karşılaşınca önceki yanıtı hatırlayıp yeniden kullanıyordu
- Araç kaynak kodu FaxToBinary.zip olarak sunuluyor
- Az miktarda manuel öğretimin ardından araç dosyayı üretti; ses patlama gürültüsü olmadan düzgün çalındı ve orijinaliyle bayt düzeyinde eşleşen bir kopya elde edildi
- Dosya kurtarıldıktan sonra aynı PowerBook üzerinde DOOM da çalıştırıldı
2 yorum
Sadece bir düşünce.
ihexveyasrecordgibi basit formatlar da checksum sağlar.zmodemile güvenli şekilde aktaracağını tahmin ediyorum.Hacker News görüşleri
Eski bilgisayar dergilerindeki onaltılık dökümleri OCR ile okurken benzer bir sorun yaşamıştım ve bunu çözmek için OCR çıktısını doğrulayan bir araç yaptım
OCR çıktısını girip rakamları ayırdığınızda, kaynaktan kırpılmış karakterleri sınıflarına göre gösteriyor; böylece insan gözüyle bakınca “8” grubuna girmiş bir “3” gibi yanlış sınıflandırmaları hızlıca bulabiliyorsunuz
https://blog.qiqitori.com/2023/03/ocring-hex-dumps-or-other-...
https://blog.qiqitori.com/2023/03/ai-day-in-retroland-prolog...
Konuyla ilgili iki yazı yazdım; araç da yazılarda bağlantılı. Yalnız aracın kullanılabilirliği ancak sendmail'den biraz daha iyi
Eski Apple dizüstü bilgisayarda bir programlama ortamı ya da dönemin Microsoft Word benzeri bir şey var mıydı bilmiyorum ama donanıma müdahale etmeden daha iyi bir yol bulunabilirmiş gibi geliyor
Daha iyi yöntem muhtemelen modem portundan faks göndermek yerine seri port kullanmak olurdu. Seri-USB adaptörlerini bulmak kolay
Temelde ikinci geçişte her karakter grubundaki aykırı değerleri bulup başka gruplara geçici olarak yeniden sınıflandırıyorsunuz; ilgili grupların benzerlik puanı iyileşirse bunu koruyor, artık iyileşme kalmayana kadar tekrarlıyorsunuz
Örneğin “diğer 3'lere en az benzeyen 3”ü bulup geçici olarak “8”e koyarsınız; sonra da “3 parçaları birbirine ne kadar benziyor” ve “8 parçaları birbirine ne kadar benziyor” puanları iyileşiyorsa bu değişikliği koruyabilirsiniz
Ama belgede birden fazla yazı tipi karışmışsa, farklı yazı tiplerindeki “3”leri aynı yere toplayıp grup benzerliği puanını bozmak gibi ters bir etki de yaratabilir
O dizüstünde seri (COM) portu yok muydu? O dönemde neredeyse standarttı ve bu siteye [1] göre iki tane vardı
Zmodem ile iş kolayca çözülürdü; terminal yazılımı da büyük ihtimalle zaten vardı
[1] https://everymac.com/systems/apple/powerbook_duo/specs/mac_p...
Yalnız PowerBook tarafında seri alım yapabilecek bir şey olması gerekirdi. ClarisWorks kesin yapabiliyordu; Office'te de benzer bir “belge al” özelliği olması muhtemel
Ya da seri port üzerinden “yazdırıp” seri çıktıyı yakalayabilirsiniz. Bu fiilen tek yönlü bir metin aktarımı olur ama yazarın yapmak istediği iş için yeterli
Yine de faks gönderip OCR ile çözmek oldukça havalı
Dizüstünde kurulu bir terminal uygulaması olduğunu hatırlamıyorum ama belki de yeterince araştırmamışımdır
İlk başta eski dizüstü ekranının fotoğrafını çekip OCR yapacağını sanmıştım ama gerçek yöntem çok daha eğlenceliymiş
Yine de büyük yazı tipiyle ayarlayıp aktarım için 24 dakika harcamak daha hızlı bile olabilirdi. Güncellenmiş OCR yazılımını yazmak muhtemelen 24 dakikadan uzun sürmüştür
Ama öyle olsaydı eğlenceli olmazdı
Yazıda kısa tutmak için atladım ama gerçekte farklı yazı tipleri ve karakter boyutlarını sayfa sayfa denedim ve elle kontrol ettim; büyük bir iyileşme olmadı
[0] https://social.immibis.com/notice/AeWSRvyKlhBB2hANoe
Gençken bir CP/M masaüstünden MS-DOS taşınabilir PC'ye dBase 2 veritabanı çıkarmam gerekmişti
Seri kabloyu ayarlayıp PC'de PROCOMM'u çalıştırdım, sonra iki taraftaki portları 9600/n/8/1 olarak eşitledim; dBase 2 tarafında yazdırırken PROCOMM da oturumu dosyaya kaydetti
Diskete yazmak için çok uzun duraksamadan çalıştırınca karakterler kayboluyordu; bu yüzden CP/M tarafında ctrl-s/q ile akış kontrolü yaptım
O zamanlar kimsenin bunu böyle yapmanın yolunu bulduğunu sanmıyorum
Yine de modem kuruluysa terminal yazılımı da olması gerektiğini hatırlıyorum
AppleTalk cevaba en yakın seçenek. Sürücüler yerleşik geliyor ve Apple uzun süre boyunca uyumluluğu iyi korudu
IIGS ile modern ekipman arasında dosya taşırken benzer bir sorun yaşamıştım; floppy emülatörü, SCSI, ham seri bağlantı da mümkün ama araya hem AppleTalk hem Ethernet destekleyen bir Mac koyarsanız, hedef AppleTalk tabanlı cihaz ile SMB gibi bir paylaşım arasında tüm dosya hiyerarşisini sürükle-bırak ile taşıyabildiğiniz için daha basit oluyor
SCSI de, sürücü konnektörünü ve türünü biliyor ve birkaç adaptörü zincirleme bağlamaya razıysanız, genelde dönüştürmesi kolaydır. 2,5 inç SCSI sürücülerde sanırım SCA ailesi konnektörler vardı; tek uçlu/diferansiyel kurallarına uyduğunuz sürece neredeyse her şeyi birbirine bağlayan SCSI adaptörleri bulunur
Asıl sorun, eski Mac dosya sistemlerini okuyacak bir OS ya da araç bulmak; ham imajları okuyan yardımcı programlardan biriyle disk imajını okuyup yazmak mümkün olabilirdi
Muhtemelen başka bir yere bağlayıp veriyi kopyalamak epey basit olabilirdi. 30 yıldan eski donanımla da bu şekilde sık çalışan bir yerde çalışıyorum; kilit nokta, yazılımsal çözüm çerçevesinden çıkmak
Bu bir yazılım sorunu değil; çoğunlukla başka tür bir uzmanlık gerektiriyor
SCSI dönüştürme benim de aklıma gelmişti; yazı sahibi HFS volume'ünü okuyup okuyamayacağından emin olmadığını söylemiş ama Linux'ta zaten onlarca yıldır HFS sürücüsü var
Bu durumda PowerBook Duo ve SCSI disk söz konusu olduğundan, Duo Dock gibi bir aygıt[2], bir HDI-30 dönüştürücü adaptör[3] ve paralel SCSI aygıtlarını modern sisteme bağlayacak kablo/dönüştürücü/kontrolcü kombinasyonu gerekir
PCI Express yuvası ya da Thunderbolt PCI Express enclosure'ı olan bir sisteminiz varsa, eBay'de 50 doların altında bulunan LSI Logic Ultra320 adaptörünü öneririm. macOS, Linux ve Windows sürücüleri kolayca bulunabiliyor
Hazır olduğunuzda Mac'leri bir SCSI kablosuyla bağlayın, PowerBook açılırken T tuşuna basıp target disk mode'a girin; OS, okuyamadığı diski biçimlendirmek isteyip istemediğinizi sorarsa mutlaka hayır deyin
HFS dosya sistemine erişim için, macOS tarafında ham bir disk imajı oluşturup yedek aldıktan sonra qemu içine Mac OS 9 kurmak, imajı bağlamak, Alsoft PlusMaker ile HFS'yi yerinde HFS+'a dönüştürmek ve ardından imajı güncel macOS'ta mount etmek en eksiksiz ve en kolay yol gibi görünüyor
Bonus olarak, modern Mac'te orijinal PowerBook sabit diskindeki uygulamaların çoğunu çalıştırabileceğiniz emüle edilmiş bir Mac OS 9 sistemi de elde etmiş olursunuz
[1] https://developer.apple.com/library/archive/technotes/tn/tn1...
[2] https://en.wikipedia.org/wiki/PowerBook_Duo#Docking_stations
[3] https://www.amazon.com/dp/B0081SAIS2/
[4] https://www.broadcom.com/support/download-search?pg=Legacy+P...
[5] https://wiki.qemu.org/Documentation/GuestOperatingSystems/Ma...
[6] https://www.macintoshrepository.org/19-plusoptimizer-plusmak...
[7] https://www.macintoshrepository.org/809-stuffit-deluxe-1-5-x...
[8] https://www.macintoshrepository.org/1724-toast-5-titanium
Bu, gerçek bir bilgi teorisi sınavı gibi olduğu için hoşuma gidiyor
“32.000 baytlık bir dosyayı istediğin kanal üzerinden aktar. Bütün kanallar bir şekilde kötü. Elinde bir akıllı telefon, seri port ve bilgisayar var. Bilgisayarda derleyici yok ama temel işlevlerin hepsini kullanabilirsin. Aktarılacak dosyadan daha fazla girdi baytı gerektiren çözümler, örneğin script’ler, elenir. Süre sınırı yok ama en hızlı çözüm kazanır. Başla.”
Eski bir Mac olsaydı, yazarından daha iyi yapar mıydı bilmiyorum. Yine de 3 ile 8 gibi görsel olarak benzer karakterleri 8→Z gibi çok daha ayırt edilebilir karakterlerle değiştirebiliyorsan, ekranı akıllı telefonla çekip OCR yapmak en hızlı yöntem olabilir diye insanın aklına geliyor
System 7’de AppleScript vardı diye hatırlıyorum, bu yüzden
sedbenzeri bir değiştirme adımı mümkün olmuş olabilirhfsprogskurup sürücüyü mount eder, gereken dosyayı çıkarır ve işi bitirirdimÖzel konektör sorun çıkarabilir, bu yüzden elde lehim gibi bir geçici çözüm gerekebilirdi; ama neyse ki eski donanımlar böyle şeylerle gayet iyi çalışır
Açıkçası bu, donanımcı olmanın avantajı
Bu yüzden hata oranını aşırı düşüren bir kodlama arardım. Tüm dizüstü sürücüsünü dump etmek gerekiyorsa, daha hızlı ama hatalı bir yöntemdense dizüstünü bir hafta boyunca açık bırakmanın daha iyi olduğunu düşünüyorum
Basit hesapla haftada 320MB göndermek saniyede 530 bayt eder. Ekranı 4Hz’de gösterip akıllı telefonla kayda alırsan, kare düşmesi ya da tuhaf artefaktlar olmayacağını varsayabiliriz; bu da kare başına yaklaşık 135 bayt, yani 1080 bit yapar
8,4 inçlik 640×480 ekranı 16×16 piksellik karelere bölersen yaklaşık 0,5 cm’lik 1000 hücre elde edersin. Her hücreyi 0,25 saniye boyunca siyah-beyaz gösterirsen, kamera artefaktları veriyi ciddi biçimde etkilemeden gerekli bant genişliğine neredeyse ulaşırsın
Karakterlere OCR uygulanmayacağı için yukarıdaki sorunlar azalırdı, ama önce o programı makineye sokmak gerekir
Dahili sabit diskin alışılmadık konektörlü bir SCSI olduğu için adaptasyonun zor göründüğü kısmı, aslında SCSI veri yolu kullanılarak çözülebilirdi
SCSI, birden fazla master’ın veri yolunu paylaşabildiği bir bus mastering protokolüdür; bu yüzden iki bilgisayarı aynı SCSI veri yoluna aynı anda bağlayıp disk aygıtına ortak erişim sağlamak mümkündür. Dosya sistemine aynı anda yazmaya güvenmemek gerekir, ama o dönemin tüm diski bugün tek bir büyük dosya sayılırdı, dolayısıyla tamamı dump edilebilirdi
Açık dosya sistemi tutarsızlıkları, çökme kurtarmaya benzer bir seviyededir ve uzun süredir depolanan dosyaları etkilemezdi
Eski HFS de açık kaynak/New Jersey tarzının güzel yanları sayesinde Linux’ta loopback ile mount etmek için oldukça kolay olurdu
1988 yapımı eski bir Mac SE20’nin tam disk imajı hâlâ elimde ve ara sıra mount ediyorum. Onu da SCSI veri yolu üzerinden çıkarmıştım. 20, sanırım 68020 işlemcisinin MHz değerini ifade ediyordu ama tesadüfen 20MB disk de takılıydı; sonraki yıl çıkan SE30 da benzerdi
Faks yazılımı kullanılan kısım, eskiden düşünüp hayata geçirmediğim bir fikri hatırlattı. Faks kapağına belgenin .DOC biçimini kodlayan büyük bir QR kod benzeri şey koysan, bunu sıradan bir faks makinesiyle gönderebilir ve alıcı taraf bilgisayar modemi kullanıyorsa, kalan faks aktarımını handshake ile durdurup belgenin özgün biçimini alabilirdi
Eski faks teknolojisinden yumuşak bir geçiş yöntemi olabilirdi
Birkaç yıl önce Macintosh Plus ile modern bir bilgisayar arasında dosya alışverişi yapmak için epey zaman harcadım
O zamanlar iki adet 100MB ZIP sürücüsü kullanıyordum; yani Mac Plus için SCSI, modern bilgisayar için USB, daha sonra da terminal yazılımıyla seri port bağlantısı kullandım [1]
Şimdi daha iyi ve daha ucuz bir seçenek olarak BlueSCSI[2] var. SD kartta saklanan
.imgdosyalarını HDD diski olarak mount edebilen bir SCSI HDD emülatörü; ayrıca CD ve ağ kartı emülasyonunu da destekliyorDosyaları böyle bir sanal sürücüye kopyaladıktan sonra, modern cihazda HFS gezgini ya da emülatörle çıkarabilirsin
[1] https://blog.rekawek.eu/2016/12/08/mac-plus#hard-drive
[2] https://bluescsi.com/
Gerçekten çok heyecan verici bir yazıydı ve benim sınırlı bilgisayar bilgim için fazla karmaşıktı.
1993–1994 civarında, diğer olayların sırasını hatırlamaya çalışınca, açılmayan bir IBM dizüstü bilgisayarı “düzeltme” fırsatım olmuştu. Kalın, ağır ve büyüktü ama ekranı 3,5 inçlik bir disket kadar küçüktü.
Ne fotoğraflarda ne de başka bir yerde böyle bir dizüstü görmedim; bu yüzden o zamana göre bile daha eski bir cihaz olduğunu tahmin ediyorum. Ne olduğunu bilen varsa fotoğrafını görmek isterim.
Modası geçmiş, tuhaf ama mahalleden amca ve akıl hocası gibi biri bana tamir etmeye çalışmam için vermişti; ben de onu birkaç gün masamda tutup hava atmıştım. Sanırım AUTOEXEC.BAT dosyasını değiştirip WordStar’ı yükleyerek, aptalca ve basit bir yöntemle düzeltmiştim. Zaten gereken tek şey DOS üzerinde WordStar’dı; Windows 3.x bile değildi.
O dizüstü bilgisayar büyük olasılıkla memleketimdeki yerel kiliseye gelen Hristiyan misyonerler tarafından verilmişti.
Başka bir bilgisayar tamiri hikâyem daha var ama ayrıntılarını hatırlayıp yazmam gerek. Dağdaki bir askerî kışlada uyumuştum, tuvalete giderken silahlı nöbetçi eşlik etmişti ve hamile bir kadına ambulansla yardım ederek eve dönmüştüm. O “görev”, çocukluk komşu arkadaşımla birlikteydi ama o da vefat etti, o demode amca da vefat etti. Birbirleriyle bağlantılı değil.
Ama ekranı herhalde 3,5 inçlik bir disketten biraz daha büyüktü ve 3,5 inç disket bile olmadan yalnızca 5,25 inç destekliyordu. Osborne 1 veya 80’lerin başındaki taşınabilir bilgisayarlarda daha küçük ekranlar vardı ama herhalde DOS çalıştırmıyorlardı.
Bir diğer aday da PC Convertible: https://en.wikipedia.org/wiki/IBM_PC_Convertible
Eğer “faks yazılımı” varsa, neredeyse kesin olarak bir terminal emülatörü de vardır ve ZMODEM gibi bir şeyle dosyaları bozmadan göndermek mümkün olurdu.
Hassas bir tornavida yerine tereyağı bıçağı kullanıldığını izlemek gibi acı verici bir okumaydı.