30 साल पुराने लैपटॉप से फाइल कॉपी करने का तरीका
(unterminated.com)- 1994 के Apple PowerBook Duo 280c में बची छोटी audio recordings को सुरक्षित रखना था, लेकिन audio output, floppy, network और disk adapter—सभी रास्ते बंद थे, इसलिए fax transmission एक workaround बना
- ResEdit के hex editor में audio file को hexadecimal text के रूप में खोला, Microsoft Word में paste किया और फिर print dialog के fax feature से भेजा
- रिसीव करने का काम Windows XP वाले ThinkPad T60 के built-in modem और fax app ने किया, और दोनों laptops को सीधे phone line से जोड़ने के बजाय 9V battery आधारित phone line simulator circuit की जरूरत पड़ी
- TIF fax images को OCR से वापस बदलने के तरीके में 0/C, 9/4, 0/D की गलत पहचान और missing/inserted characters की वजह से audio में crackling और pop noise रह गया
- अंत में fixed-width character grid को सीधे analyze करने वाला FaxToBinary tool बनाया गया, character patterns को manually train किया गया और original से byte-by-byte match करने वाली audio file recover की गई
बंद हो चुके copy paths
- target device 1994 का PowerBook Duo 280c था, और उसके अंदर सुरक्षित रखने लायक कुछ छोटी audio recordings थीं
- अच्छी बात यह थी कि laptop अभी भी boot हो जाता था, hard drive को हल्का थपथपाने पर वह spin करने लगती थी, और audio files internal speaker से play हो सकती थीं
- सामान्य copy methods एक-एक करके बंद निकले
- audio jack नहीं था, इसलिए अच्छी quality की analog copy मुश्किल थी
- internal hard drive अजीब connector वाले SCSI का इस्तेमाल करती थी, और यह भी स्पष्ट नहीं था कि modern system पुराने HFS file system को आसानी से पढ़ पाएगा या नहीं
- external floppy drive जोड़ने पर computer काम नहीं करता था, और खराबी की वजह भी नहीं मिली
- AppleTalk port और phone jack मौजूद थे, लेकिन networking software installed नहीं था
- HTTP 1996 में जाकर finalized हुआ था, और उस laptop में उस समय इस्तेमाल हो सकने वाला dial-up software भी नहीं था
- इसके बजाय phone dialer और fax software बचे हुए थे, जिससे modem के जरिए workaround संभव हुआ
file को fax document में बदलना
- laptop में games के साथ resource editor ResEdit installed था, और इस tool के hex editor से file की raw contents को hexadecimal में देखा जा सकता था
- ResEdit print feature support नहीं करता था, इसलिए hexadecimal text को किसी दूसरे app में ले जाना पड़ा
- example audio file 37,928 bytes की थी, और हर byte दो-character hexadecimal में दिखता है, इसलिए text representation उसकी दोगुनी लंबाई का हो जाता है
- एक बार में handle की जा सकने वाली size पर limit थी, इसलिए file को हिस्सों में copy किया गया, और offsets याद रखना आसान रहे इसके लिए 12288 bytes, यानी 0x3000 की units में process किया गया
- clipboard में copy किया गया hexadecimal text Microsoft Word document में सीधे paste किया जा सकता था, और Word print feature देता था
- सभी files 100KB से कम थीं, और ResEdit से Word में clipboard के जरिए manually copy करने की speed औसतन लगभग 316 bytes/second आंकी गई
दो laptops के बीच simulated phone line बनाना
- receiving computer built-in dial-up modem वाला ThinkPad T60 था, और Windows XP का fax app incoming faxes को multi-page TIF images के रूप में save कर सकता था
- दोनों laptops को phone cable से सीधे जोड़ने का तरीका fail हुआ
- PowerBook ने call किया, लेकिन ThinkPad ने receive नहीं किया
- “Ignore Dial Tone” option भी असरदार नहीं था
- असली wired telephone network द्वारा दिया जाने वाला voltage modem operation के लिए अहम था, और यह समस्या phone line simulator circuit से हल हुई
- यह circuit आम electronic parts और 9V battery से बनाया जा सकता था, और दोनों laptops के बीच simulated phone line देता था
- fax transmission के लिए FCC requirements के तहत cover page जरूरी था, और cover page जोड़ने के बाद transmission आगे बढ़ा
- शुरुआत में rasterize होने के बाद transmission time 24 minutes अनुमानित था, लेकिन font size घटाकर इसे 6 pages और 7 minutes तक कम किया गया, और fax 14400bps पर ThinkPad में receive हुआ
OCR से बची रह जाने वाली errors
- ThinkPad को मिला fax TIF image था, और उसे फिर binary file में बदलने के लिए पहले PDF conversion और OCR आजमाया गया
- fax image OCR के लिए अनुकूल लग रही थी
- text computer-generated था, इसलिए alignment और shape consistent थे
- इस्तेमाल होने वाले characters 0-9 और A-F के सिर्फ 16 types थे
- Courier नाम का common fixed-width font इस्तेमाल हुआ था
- OCR result text को select करके hex editor में copy किया जा सकता था और binary file के रूप में save किया जा सकता था
- Audacity ने resulting file के audio format को unsigned 8-bit PCM, little-endian, 22050Hz, mono के रूप में अनुमानित किया और waveform भी दिखाया
- playback कुल मिलाकर ठीक था, लेकिन waveform में अचानक dips OCR transcription errors से पैदा हुई crackling या pop noise जैसी सुनाई देती थीं
- कई OCR programs और font size/font changes आजमाने के बाद भी 100% accuracy हासिल नहीं हुई
- 0 और C, 9 और 4, 0 और D में confusion होता था
- characters missing हो जाते थे या नए characters insert हो जाते थे
FaxToBinary से byte-level recovery
- fax image का text fixed-width font में generated था, इसलिए पूरे document को regular-spacing वाली character grid की तरह treat किया जा सकता था
- start point, character offset और line spacing match करने पर हर character को अलग-अलग capture और analyze करना संभव था
- custom tool ने left preview से size और offset parameters सही हैं या नहीं यह check करने दिया, और अगर characters move करने या line बदलने पर drift न हो तो processing शुरू की जा सकती थी
- character recognition एक simple manual training method से काम करता है
- पहली बार दिखने वाले हर unique pattern के लिए user बताता है कि वह कौन सा character है
- बाद में वही shape मिलने पर पिछला answer याद रखकर reuse किया जाता है
- tool source FaxToBinary.zip के रूप में उपलब्ध है
- थोड़ी manual training के बाद tool ने file output की, audio pop noise के बिना smoothly play हुआ, और यह original से byte-by-byte identical copy बन गई
- file recovery के बाद उसी PowerBook पर DOOM भी चला
2 टिप्पणियां
बस एक विचार।
ihexयाsrecordजैसे सरल फ़ॉर्मेट भी checksum देते हैं।zmodemसे फ़ाइल को सुरक्षित तरीके से ट्रांसफ़र करता।Hacker News राय
पुराने कंप्यूटर मैगज़ीन के hex dumps को OCR करते समय मुझे भी ऐसी ही समस्या आई थी, और OCR परिणामों को verify करने वाला एक tool बनाकर उसे हल किया था
OCR परिणाम डालकर अंकों को split करने पर, original से काटे गए characters category के हिसाब से दिखते हैं, और इंसान आंखों से देखकर “8” group में आए “3” जैसे misclassification को जल्दी ढूंढ सकता है
https://blog.qiqitori.com/2023/03/ocring-hex-dumps-or-other-...
https://blog.qiqitori.com/2023/03/ai-day-in-retroland-prolog...
मैंने इससे जुड़े दो लेख लिखे हैं और tool भी लेखों में link है। हालांकि tool की usability sendmail से बस थोड़ी-सी बेहतर है
पता नहीं पुराने Apple laptop में कोई programming environment या उस समय के Microsoft Word जैसा कुछ था या नहीं, लेकिन लगता है hardware hacking के बिना भी कोई बेहतर तरीका रहा होगा
बेहतर तरीका शायद modem port से fax भेजने के बजाय serial port इस्तेमाल करना होता। serial-USB adapter आसानी से मिल जाते हैं
मूल रूप से, दूसरे pass में हर character group के outliers ढूंढकर उन्हें दूसरे group में अस्थायी रूप से reclassify किया जाए, और अगर संबंधित groups के similarity scores बेहतर हों तो बदलाव रखा जाए, फिर तब तक दोहराया जाए जब तक और improvement न हो
उदाहरण के लिए, “बाकी 3 से सबसे कम मिलता-जुलता 3” ढूंढकर उसे अस्थायी रूप से “8” में डालें, और अगर “3 के टुकड़े आपस में कितने मिलते हैं” और “8 के टुकड़े आपस में कितने मिलते हैं” scores बेहतर हों, तो वह बदलाव रखा जा सकता है
हालांकि अगर document में कई fonts मिले हुए हों, तो अलग-अलग fonts के “3” को एक साथ group करके group similarity score बिगाड़ने जैसा उलटा असर हो सकता है
उस laptop में serial (COM) port नहीं था क्या? उस समय यह लगभग universal था, और इस site [1] के मुताबिक उसमें दो थे
Zmodem से solve करना आसान होता, और लगता है terminal software भी पहले से था
[1] https://everymac.com/systems/apple/powerbook_duo/specs/mac_p...
बस PowerBook side पर serial receive कर सकने वाली कोई चीज़ चाहिए। ClarisWorks में यह निश्चित रूप से possible था, और Office में भी वही “receive document” feature होने की संभावना बहुत ज़्यादा है
या फिर serial port पर “print” करके serial output capture किया जा सकता है। व्यवहार में यह one-way text transfer है, लेकिन लेखक जो करना चाह रहा था उसके लिए काफी है
फिर भी fax करके OCR करना काफी cool है
मुझे याद नहीं कि laptop में terminal app installed थी, लेकिन हो सकता है मैंने पर्याप्त खोजा न हो
शुरू में लगा था कि पुराने laptop screen की photo लेकर OCR करेगा, लेकिन असली तरीका उससे कहीं ज्यादा मजेदार निकला
फिर भी large font रखकर transfer में 24 मिनट लगाना शायद ज्यादा तेज होता। updated OCR software लिखने में 24 मिनट से ज्यादा लगा होने की संभावना है
लेकिन तब मज़ा नहीं आता
लेख में संक्षेप रखने के लिए छोड़ा, लेकिन असल में मैंने कई fonts और font sizes को एक-एक page करके test किया और manually verify किया, कोई बड़ा improvement नहीं मिला
[0] https://social.immibis.com/notice/AeWSRvyKlhBB2hANoe
युवावस्था में मुझे CP/M desktop से MS-DOS portable PC पर dBase 2 database निकालना पड़ा था
serial cable set किया, PC पर PROCOMM चलाया, फिर दोनों ports को 9600/n/8/1 पर set किया, और dBase 2 से print करते हुए PROCOMM से session को file में record करवाया
floppy पर लिखने के लिए अगर बहुत देर तक रुके बिना चलाता तो characters drop हो जाते, इसलिए CP/M side पर ctrl-s/q से flow control किया
उस समय लगता था किसी ने इस तरह करने का तरीका पता नहीं लगाया था
फिर भी अगर modem installed था, तो मुझे याद है terminal software भी होना चाहिए था
AppleTalk सही जवाब के सबसे करीब है। ड्राइवर बिल्ट-इन हैं और Apple ने लंबे समय तक compatibility अच्छी तरह बनाए रखी थी
IIGS और आधुनिक उपकरणों के बीच फ़ाइलें ट्रांसफ़र करते समय मुझे भी ऐसी ही समस्या आई थी। floppy emulator, SCSI, raw serial भी संभव हैं, लेकिन AppleTalk और Ethernet दोनों वाले किसी Mac को बीच में रखने पर target AppleTalk-based डिवाइस और SMB जैसी share के बीच पूरी file hierarchy को drag-and-drop से ले जाया जा सकता है, इसलिए यह सरल है
SCSI भी, अगर आपको drive connector और type पता हो और कुछ adapters को chain में जोड़ने की इच्छा हो, तो आम तौर पर convert करना आसान है। मुझे याद है कि 2.5-inch SCSI drive SCA series connector वाला था, और single-ended/differential rules का ध्यान रखें तो लगभग किसी भी चीज़ को आपस में जोड़ने वाले SCSI adapters मिल जाते हैं
समस्या पुराने Mac file system को पढ़ने वाला OS या tool ढूँढने की है, लेकिन raw image पढ़ने वाली utilities में से किसी एक से disk image पढ़ी और लिखी जा सकती थी, ऐसा लगता है
शायद इसे कहीं और जोड़कर data copy करना काफ़ी सरल रहा होगा। मैं ऐसी जगह काम करता हूँ जहाँ 30 साल से भी पुराने hardware को इसी तरह अक्सर handle किया जाता है, और मुख्य बात है software solution वाले frame से बाहर निकलना
यह software समस्या नहीं है, और ज़्यादातर किसी अलग तरह की expertise चाहिए
SCSI conversion पर मेरी भी यही सोच थी, और लेखक ने कहा था कि उन्हें भरोसा नहीं था कि HFS volume पढ़ पाएँगे या नहीं, लेकिन Linux में HFS driver पहले से ही कई दशकों से है
इस मामले में PowerBook Duo और SCSI disk होने की वजह से Duo Dock जैसा device[2], HDI-30 conversion adapter[3], और parallel SCSI device को modern system से जोड़ने के लिए cables·converters·controllers का combination चाहिए
अगर आपके पास PCI Express slot या Thunderbolt PCI Express enclosure वाला equipment है, तो eBay पर 50 डॉलर से कम में मिलने वाला LSI Logic Ultra320 adapter recommend करूँगा। macOS, Linux, Windows के drivers आसानी से मिल जाते हैं
तैयारी हो जाने पर SCSI cable से Macs को जोड़ें और PowerBook boot होते समय T दबाकर target disk mode में जाएँ, फिर अगर OS पूछे कि जिस disk को वह पढ़ नहीं सकता उसे format करना है या नहीं, तो ज़रूर नहीं कहें
HFS file system access के लिए macOS के हिसाब से सबसे complete और आसान तरीका यह लगता है: raw disk image बनाना, backup लेना, फिर qemu में Mac OS 9 install करके image attach करना, Alsoft PlusMaker से HFS को HFS+ में in-place convert करना, और फिर current macOS में image mount करना
bonus के रूप में आधुनिक Mac पर original PowerBook hard disk के ज़्यादातर apps चलाने वाला emulated Mac OS 9 system भी मिल जाएगा
[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
यह असल जिंदगी की information theory परीक्षा जैसा है, इसलिए अच्छा लगा
“32,000-byte की फ़ाइल को अपने पसंदीदा channel से भेजो। हर channel किसी न किसी तरह खराब है। तुम्हारे पास smartphone, serial port और computer है। computer में compiler नहीं है, लेकिन उसकी कोई भी basic functionality इस्तेमाल कर सकते हो। ऐसा समाधान जिसमें भेजी जाने वाली फ़ाइल से ज्यादा input bytes चाहिए, जैसे script, disqualified है। कोई time limit नहीं, लेकिन सबसे तेज़ समाधान जीतेगा। शुरू।”
अगर पुराना Mac होता तो शायद लेखक से बेहतर किया जा सकता था, पता नहीं। हालांकि अगर 3 और 8 जैसे दिखने में मिलते-जुलते characters को 8→Z जैसे बहुत अलग दिखने वाले characters में बदला जा सके, तो smartphone से screen की photo लेकर OCR करने का तरीका सबसे तेज़ हो सकता है—यह खयाल जरूर लुभाता है
लगता है System 7 में AppleScript था, इसलिए sed जैसी substitution step शायद संभव रही होगी
hfsprogs install करके drive mount करता और जरूरी files निकाल लेता, बस
proprietary connector दिक्कत बन सकता है, इसलिए मौके पर soldering जैसा workaround चाहिए होगा, लेकिन अच्छी बात है कि पुराने उपकरण ऐसा करने पर भी काफी ठीक चलते हैं
सच कहें तो यह hardware वालों का फायदा है
इसलिए शायद मैं ऐसी encoding ढूंढता जिससे errors बेहद कम हों। अगर laptop की पूरी drive dump करनी हो, तो तेज़ लेकिन error-prone तरीके से बेहतर होगा कि laptop को एक बार पूरे हफ्ते चालू छोड़ दिया जाए
साधारण हिसाब से 320MB को एक हफ्ते में भेजना हो तो 530 bytes प्रति second होते हैं। अगर screen को 4Hz पर दिखाएं और smartphone से record करें, तो मान सकते हैं कि frame drops या अजीब artifacts नहीं होंगे, और प्रति frame करीब 135 bytes, यानी 1080 bits मिलेंगे
8.4-inch 640×480 screen को 16×16-pixel squares में बांटें तो लगभग 0.5cm के 1000 cells बनते हैं। हर cell को 0.25 second तक black/white में दिखाने पर camera artifacts data को ज्यादा प्रभावित नहीं करेंगे और जरूरत की bandwidth के करीब पहुंच जाएंगे
characters का OCR नहीं करना पड़ेगा, इसलिए ऊपर वाली समस्याएं कम होंगी, लेकिन पहले वह program machine में डालना होगा
अंदरूनी hard disk एक अजीब connector वाला SCSI था, इसलिए adapt करना आसान नहीं लगा—यह हिस्सा असल में SCSI bus इस्तेमाल करने का रास्ता था
SCSI एक bus mastering protocol है जिसमें कई masters bus share कर सकते हैं, इसलिए दो computers को एक ही SCSI bus में एक साथ लगाकर disk device को साथ में access किया जा सकता है। file system पर simultaneous writes भरोसेमंद नहीं मानने चाहिए, लेकिन उस समय की पूरी disk आज के हिसाब से बस एक बड़ी file है, इसलिए पूरी dump कर देनी चाहिए
खुले file system की inconsistency crash recovery जैसी ही होती, और लंबे समय से stored files पर असर नहीं पड़ा होगा
पुराना HFS भी open source/New Jersey style की अच्छाइयों की वजह से Linux पर loopback से mount करना बहुत आसान रहा होगा
मेरे पास 1988 के पुराने Mac SE20 की पूरी disk image अब भी है और कभी-कभी mount करता हूं। उसे भी SCSI bus से ही निकाला था। लगता है 20 का मतलब 68020 processor के MHz से था, लेकिन संयोग से उसमें 20MB disk भी लगी थी, और अगले साल का SE30 भी कुछ वैसा ही था
fax software वाला हिस्सा एक ऐसे idea की याद दिलाता है जिसके बारे में पहले सोचा था लेकिन किया नहीं था। अगर fax cover sheet पर document के .DOC format को encode करने वाला बड़ा QR-code जैसा कुछ डाल दिया जाता, तो उसे सामान्य fax machine से भी भेजा जा सकता था, और अगर receiver computer modem होता तो original-format document लेकर बाकी fax transmission को handshake से रोक सकता था
यह पुराने fax technology से धीरे-धीरे आगे बढ़ने का तरीका बन सकता था
कुछ साल पहले Macintosh Plus और modern computer के बीच files भेजने-लेने में मैंने काफी समय लगाया था
तब मैंने दो 100MB ZIP drives इस्तेमाल किए थे—Mac Plus के लिए SCSI और modern computer के लिए USB—और बाद में terminal software से serial port connection इस्तेमाल किया था [1]
अब BlueSCSI[2] बेहतर और सस्ता विकल्प है। यह SCSI HDD emulator है जो SD card पर stored .img files को HDD disk के रूप में mount कर सकता है, और CD व network card emulation भी support करता है
files को ऐसी virtual drive में copy करने के बाद modern device पर HFS explorer या emulator से extract किया जा सकता है
[1] https://blog.rekawek.eu/2016/12/08/mac-plus#hard-drive
[2] https://bluescsi.com/
यह सचमुच बेहद रोमांचक लेख था, और मेरी सीमित कंप्यूटर जानकारी के हिसाब से बहुत जटिल भी था
1993~1994 के आसपास, दूसरी घटनाओं के क्रम को याद करूं तो, मुझे एक boot न होने वाले IBM laptop को “ठीक” करने का मौका मिला था। वह मोटा, भारी और बड़ा था, लेकिन screen 3.5-inch floppy जितनी ही थी
मैंने तस्वीरों में या कहीं और वैसा laptop कभी नहीं देखा, इसलिए मेरा अनुमान है कि वह उस समय के हिसाब से भी और पुरानी चीज़ रहा होगा। अगर किसी को पता हो कि वह क्या था, तो तस्वीर देखना चाहूंगा
एक पुराने दौर में अटके, geeky पड़ोस के अंकल और mentor जैसे व्यक्ति ने मुझे उसे ठीक करने के लिए दिया था, और मैंने उसे कई दिनों तक अपनी desk पर रखकर दिखावा किया। शायद मैंने AUTOEXEC.BAT बदलकर और WordStar load करने जैसा कोई बेवकूफाना और आसान तरीका अपनाकर उसे ठीक किया था। जरूरत भी सिर्फ DOS में WordStar की थी, Windows 3.x की भी नहीं
बहुत संभव है कि वह laptop मेरे hometown की local church में आने वाले ईसाई missionaries ने दिया हो
कंप्यूटर repair की एक और कहानी भी है, लेकिन उसके details याद करके लिखने होंगे। पहाड़ों में military barracks में सोना, पेशाब करने जाते समय armed guard का साथ होना, और एक pregnant महिला को ambulance से संभालते हुए घर लौटना—ऐसी घटना थी। वह “mission” मेरे बचपन के पड़ोसी दोस्त के साथ था, लेकिन वह अब नहीं रहा, और वह पुराने ढर्रे वाले अंकल भी नहीं रहे। दोनों बातों का आपस में कोई संबंध नहीं है
हालांकि उसकी screen 3.5-inch floppy से थोड़ी बड़ी रही होगी, और उसमें 3.5-inch floppy भी नहीं थी, सिर्फ 5.25-inch support था। Osborne 1 या 80s की शुरुआत के portable computers में छोटी screens थीं, लेकिन शायद वे DOS नहीं चलाते थे
दूसरा candidate PC Convertible है: https://en.wikipedia.org/wiki/IBM_PC_Convertible
अगर “fax software” था, तो लगभग पक्का है कि उसमें terminal emulator भी रहा होगा, और ZMODEM जैसी किसी चीज़ से files को corrupt किए बिना भेजा जा सकता था
इसे पढ़ना वैसा ही तकलीफदेह था जैसे precision screwdriver की जगह butter knife इस्तेमाल करते देखना