ซอร์สโค้ดของ QModem 4.51 โปรแกรมโทรคมนาคมสำหรับ MS-DOS ที่ได้รับความนิยมในช่วงต้นทศวรรษ 1990 ได้ถูกเปิดเผยในฐานะวัตถุทางประวัติศาสตร์ การเปิดเผยนี้ได้สร้างคลื่นแห่งความโหยหาอดีตในหมู่ผู้ที่หลงใหลในเทคโนโลยีที่จำได้ถึงยุค BBS (Bulletin Board System) เมื่อการเชื่อมต่อแบบ dial-up เป็นวิธีหลักในการสื่อสารออนไลน์
ความสำคัญทางประวัติศาสตร์ของ QModem
QModem เป็นโปรแกรมการสื่อสารผ่านเทอร์มินัลสำหรับ MS-DOS พัฒนาโดย John Friel III (1960-2024) โปรแกรมนี้แข่งขันกับโปรแกรมยอดนิยมอื่นๆ เช่น Procomm และ Telix ในช่วงที่ยุค BBS รุ่งเรืองที่สุด เขียนด้วย Turbo Pascal, QModem นำเสนอการรองรับความเร็วโมเด็มที่หลากหลาย, โปรโตคอลการถ่ายโอนไฟล์ (XMODEM, YMODEM, ZMODEM) และการจำลองเทอร์มินัล การเปิดเผยซอร์สโค้ดนี้แสดงถึงสถานะของ QModem Test-Drive edition เวอร์ชัน 4.51 ตามที่มีอยู่ในช่วงต้นปี 1992
คุณสมบัติหลักของ QModem 4.51
- รองรับความเร็วโมเด็มหลายระดับและฮาร์ดแวร์หลายประเภท (UART แบบ 8250, 16450, 16550)
- โปรโตคอลการถ่ายโอนไฟล์: XMODEM, YMODEM, ZMODEM และรองรับโปรโตคอลภายนอก
- สมุดโทรศัพท์แบบเต็มหน้าจอ (สมุดโทรศัพท์ .FON)
- ความสามารถในการเขียนสคริปต์และระบบอัตโนมัติที่หลากหลาย
- การจำลองเทอร์มินัลแบบ ANSI/VT100/TTY/Avatar
- โหมดโฮสต์ (ฟังก์ชันเซิร์ฟเวอร์ BBS ขนาดเล็ก)
- บัฟเฟอร์การเลื่อนกลับและเทอร์มินัลแบบแยกหน้าจอ
- รองรับเมาส์และแมโครคีย์บอร์ดที่กำหนดเอง
รายละเอียดทางเทคนิค
- เขียนด้วย Turbo Pascal 5.x/6.0
- มีรูทีนแอสเซมเบลอร์ x86 สำหรับส่วนที่ต้องการประสิทธิภาพสูง
- ใช้ Turbo Professional และอาจมีไลบรารีจากบุคคลที่สามอื่นๆ
- ใช้การจัดการโอเวอร์เลย์เพื่อประสิทธิภาพในการใช้หน่วยความจำ
วัฒนธรรม BBS และการอ่านแบบออฟไลน์
หนึ่งในแง่มุมที่ถูกจดจำอย่างชัดเจนของยุค BBS คือประสบการณ์การอ่านแบบออฟไลน์ ผู้แสดงความคิดเห็นหลายคนจำได้ว่าเคยใช้ QModem ในการดาวน์โหลดแพ็คเก็ต QWK (แพ็คเก็ตอีเมลที่ถูกบีบอัด) จากการประชุมบน BBS แล้วอ่านและตอบกลับแบบออฟไลน์โดยใช้โปรแกรมเช่น OLX (Offline Express) หรือ SLMR (Silly Little Mail Reader)
นี่ทำให้ฉันนึกถึงความทรงจำในอดีต ฉันจำได้ว่าเคยโทรเข้า BBSes โดยใช้ Qmodem ดาวน์โหลด QWKs จากการประชุม (คล้ายกับ newsgroups) ฉันจะอ่าน/ตอบกลับแบบออฟไลน์โดยใช้ OLX และหลังจากนั้นจะอัปโหลดคำตอบของฉัน (.REPs ที่ถูกบีบอัดเช่นกัน) กลับไปยัง BBS
วิธีการนี้มีความจำเป็นในยุคที่การเชื่อมต่ออินเทอร์เน็ตไม่ได้มีตลอด 24/7 และค่าโทรศัพท์แบบ dial-up มักจะคิดเป็นนาที การทำงานแบบอ่านออฟไลน์ช่วยให้ผู้ใช้ลดเวลาในการเชื่อมต่อในขณะที่ยังสามารถมีส่วนร่วมในการสนทนาได้
แง่มุมทางเทคนิคและภาษาโปรแกรมมิ่ง
การเปิดเผยว่า QModem ถูกเขียนด้วยภาษา Pascal สร้างความประหลาดใจให้กับสมาชิกในชุมชนบางคนที่เคยคิดว่ามันถูกเขียนด้วย C ในช่วงต้นทศวรรษ 1990 นักพัฒนาหลายคนรู้สึกว่าโปรแกรมเมอร์ตัวจริงจะใช้ภาษา C ในขณะที่ Pascal บางครั้งถูกมองว่าไม่ค่อยจริงจัง การค้นพบว่าโปรแกรมที่มีความเป็นมืออาชีพและใช้กันอย่างแพร่หลายถูกสร้างด้วย Pascal ได้ยืนยันคุณค่าของผู้ที่ทำงานกับภาษานี้ในช่วงเวลานั้น
โค้ดเบสประกอบด้วยไฟล์ Turbo Pascal, รูทีน x86 assembler สำหรับส่วนที่ต้องการประสิทธิภาพสูง และไฟล์สนับสนุนต่างๆ มันเป็นตัวอย่างที่สำคัญของแนวปฏิบัติในการพัฒนาซอฟต์แวร์เชิงพาณิชย์จากยุคก่อนอินเทอร์เน็ต
ความท้าทายของโครงสร้างพื้นฐานโทรคมนาคม
การสนทนาในชุมชนได้เน้นย้ำถึงความท้าทายทางภูมิศาสตร์ของยุค BBS ผู้ใช้จำได้ว่าค่าโทรศัพท์มีอิทธิพลต่อประสบการณ์ออนไลน์ของพวกเขาอย่างไร โดยหลายคนสังเกตว่าการโทรไปยังเมืองใกล้เคียงอาจมีค่าใช้จ่ายทางไกล มีการกล่าวถึง Atlanta ว่าเคยมีฉากของ BBS ที่คึกคักเป็นพิเศษเนื่องจากมีพื้นที่โทรฟรีในท้องถิ่นที่ใหญ่ผิดปกติ
วิธีแก้ปัญหาทางเทคนิคที่ผู้คนพัฒนาขึ้นมานั้นน่าประทับใจ - ตั้งแต่การแชร์การเชื่อมต่อแบบ dial-up ผ่าน NAT บนเครื่อง Linux ไปจนถึงการใช้เทอร์มินัลอนุกรมเพื่อใช้ทรัพยากรที่มีจำกัดให้เกิดประโยชน์สูงสุด เรื่องราวเหล่านี้แสดงให้เห็นถึงความเฉลียวฉลาดที่จำเป็นในการเอาชนะข้อจำกัดด้านการเชื่อมต่อในยุคนั้น
การอนุรักษ์ประวัติศาสตร์ดิจิทัล
การเปิดเผยซอร์สโค้ดของ QModem ถือเป็นความพยายามสำคัญในการอนุรักษ์ประวัติศาสตร์คอมพิวเตอร์ แม้ว่าโค้ดอาจจะน่าสนใจเป็นหลักสำหรับผู้ที่หลงใหลใน retrocomputing และผู้ที่โหยหาอดีตในยุคนั้น แต่มันให้ข้อมูลเชิงลึกที่มีคุณค่าเกี่ยวกับการออกแบบซอฟต์แวร์โทรคมนาคมยุคแรกและความท้าทายทางเทคนิคของยุคก่อนอินเทอร์เน็ต
ดังที่ผู้แสดงความคิดเห็นคนหนึ่งได้กล่าวไว้ การเปิดเผยนี้เป็นการแสดงความเคารพที่เหมาะสมต่อผลงานและมรดกของ John Friel III ความจริงที่ว่าผู้ใช้หลายคนยังคงจำ QModem ได้อย่างชัดเจนหลายทศวรรษต่อมาแสดงให้เห็นถึงผลกระทบของมันต่อชุมชนออนไลน์ยุคแรกและผู้ที่หลงใหลในคอมพิวเตอร์
อ้างอิง: QModem 4.51 Source Code