- Một thử nghiệm khởi động IBM PC bằng mâm xoay (máy phát đĩa) thay vì phương tiện khởi động PC thông thường
- Ảnh RAM disk 64KB dựa trên FreeDOS được chuyển thành tín hiệu âm thanh analog và ghi lên đĩa vinyl 10 inch
- Tận dụng giao diện cassette của PC để khôi phục tín hiệu âm thanh thành dữ liệu số, nạp vào bộ nhớ rồi thực hiện khởi động
- Để giảm thiểu méo tín hiệu, cần hiệu chỉnh cân bằng RIAA và điều chỉnh thiết lập ampli
- Một thí nghiệm khởi động độc đáo cho thấy cách tận dụng sáng tạo các hệ thống di sản trong bối cảnh nhiều ràng buộc phần cứng
Tổng quan dự án
- Thí nghiệm được cấu hình theo dạng khởi động bằng cách kết nối trực tiếp IBM PC với máy phát đĩa
- Nếu BIOS của PC thất bại với các tùy chọn khởi động khác (floppy, ổ cứng, v.v.), ROM bootloader sẽ gọi giao diện cassette
- Thông qua giao diện này, hệ thống đọc tín hiệu âm thanh phát từ mâm xoay để tiến hành quy trình khởi động
- Ảnh khởi động được dùng là RAM disk 64KB dựa trên nhân FreeDOS
- Bao gồm bản rút gọn của COMMAND.COM và phiên bản INTERLNK đã chỉnh sửa để truyền tệp qua cáp máy in
- ROM bootloader giải mã tín hiệu âm thanh, nạp vào bộ nhớ rồi khởi động hệ thống
Cấu hình kỹ thuật
- Bootloader là sự kết hợp của các dự án BootLPT/86 và 5150CAXX, nhưng không bao gồm hỗ trợ cổng máy in
- Nó được nạp vào ROM của socket mở rộng BIOS; cũng có thể cài vào ổ cứng hoặc floppy, nhưng trong thí nghiệm này dùng ROM
- Kết nối giữa PC và ampli dùng cùng cấu trúc cáp như 5150CAXX, nhưng lược bỏ đầu vào line-in
- Giao diện cassette gồm kênh timer 2 của loa PC (đầu ra) và kênh 4 của cổng C trên 8255A-5 PPI (đầu vào)
- Thực hiện điều chế và giải điều chế bằng phần mềm thông qua routine INT 15h của BIOS
Tín hiệu âm thanh và quá trình tạo đĩa vinyl
- Ảnh khởi động được chuyển đổi theo giao thức “IBM cassette tape” rồi gửi tới thiết bị cắt đĩa
- Vì đĩa vinyl được cắt theo đường cong cân bằng RIAA, khi phát lại cần bù chỉnh bổ sung trên ampli
- Điều chỉnh treble -10dB/10kHz, bass +6dB/50Hz, điện áp đầu ra khoảng 0.7V
- Hiệu chỉnh pha và loudness đều bị vô hiệu hóa
- Chất lượng tín hiệu là yếu tố cực kỳ quan trọng; tiếng pop hoặc tiếng nứt lách tách có thể làm đứt luồng dữ liệu
- Tuy vậy, sai số tốc độ ±2~3% và một chút wow (dao động tốc độ) vẫn được chấp nhận
Phân phối bootloader và ảnh đĩa
- Binary bootloader được thiết kế cho chip 2364, và có thể dùng với chip 2764 thông qua adapter
- Chạy trên IBM 5150 có ít nhất 512KB RAM và màn hình đơn sắc
- Ảnh boot disk được cung cấp ở cuối tài liệu BootLPT/86, còn phiên bản FLAC analog được cung cấp qua liên kết riêng
Phản ứng cộng đồng
- Trong phần bình luận có nhiều phản hồi tích cực như “sự hồi sinh của công nghệ retro”, “một ý tưởng tương tự khởi động bằng cassette”
- Một số người dùng đặt câu hỏi về khả năng tận dụng đầu vào Sound Blaster và mức độ tương thích với BIOS mã nguồn mở (GlaBIOS)
- Tác giả cho biết việc này được triển khai chỉ bằng ROM mở rộng mà không cần chỉnh sửa BIOS
- Nhiều độc giả cũng để lại các phản hồi pha chút hài hước như “phát mặt kia thì Linux sẽ khởi động”
Ý nghĩa
- Thí nghiệm này là một ví dụ về việc chuyển phương tiện âm thanh analog thành phương tiện khởi động số
- Đây là một nỗ lực kỹ thuật tái sử dụng đầy sáng tạo giao diện cassette và cấu trúc mở rộng BIOS của IBM PC
- Dù không cần thiết với hệ thống hiện đại, đây vẫn là một dự án thú vị để khám phá phần cứng di sản và kỹ thuật xử lý tín hiệu
1 bình luận
Ý kiến trên Hacker News
Có lẽ sẽ khả thi nếu nhét driver máy quét và phần mềm OCR vào BIOS. Ngày nay có khi còn dễ hơn nhờ uEFI
Trước đây tôi có một máy quét SCSI nhưng đã tháo ra lấy linh kiện, giờ thấy hơi tiếc
Có lẽ cũng có thể làm một bootloader đơn giản đọc mẫu đen trắng in trên giấy, nạp vào bộ nhớ rồi khởi động. Tôi tò mò không biết dung lượng lưu trữ của một tờ A4 sẽ là bao nhiêu
Wiki về Flexi_disc cũng có nhắc tới điều này; do độ tin cậy thấp nên tạp chí hướng dẫn người đọc chép sang băng cassette trước. Đĩa thường chỉ phát được 1–2 lần
Ở Anh, hình như từng có game Thompson Twins được phát hành như vậy
Cũng có lúc người ta dán băng vào bìa tạp chí để phát demo, và tôi còn nhớ chuyện dùng bút chì để tua băng sửa lỗi
Cũng có thể sao chép bằng deck băng kép dùng cho nhạc
Một hình chữ nhật nhỏ, không có bộ phận chuyển động, lưu và gọi dữ liệu theo khối, độ trễ thấp và độ tin cậy cao
Ngày xưa thiết bị lưu trữ “vật lý” hơn nhiều — chậm, ồn, dễ bị ảnh hưởng bởi từ trường và có cơ cấu cơ khí phức tạp. Chỉ cần nghe tiếng là biết nó có vấn đề
Trực tiếp trải nghiệm quá trình tiến hóa của thiết bị lưu trữ rất thú vị. Ổ cứng Conner thì cứng như xe tăng, và tiếng nó quay nghe rất đã
Tự dưng lại thấy đằng sau những byte và block đơn giản là cả một nền kỹ thuật đáng kinh ngạc
Máy tính đầu tiên ở nhà tôi nạp chương trình bằng cách nối với máy cassette Radio Shack
Việc tua băng, bấm nút phát rồi gõ lệnh load giống như một nghi thức
Sau này khi có được ổ đĩa mềm 5¼ inch, tôi thực sự xúc động. Từ đó tôi bắt đầu lập trình
Wiki BASICODE
Bản ghi của buổi phát đầu tiên vẫn còn. Nếu bắt FM tốt thì nó hoạt động khá ổn
Liên kết liên quan
Không thuộc thế hệ của tôi, nhưng đúng là một thử nghiệm thú vị
Liên kết Discogs
Nó có nhạc chiptune và cả các track khởi động cho Atari, C64
Ý tưởng là 9 trên 10 khách hàng thích cảm giác được chạm vào dữ liệu đã khôi phục của mình. Rốt cuộc không triển khai, nhưng trong nhóm thì ai cũng thấy buồn cười
Chỉ cần stream từ các trang như asciiexpress.net
Có vẻ vinyl cũng làm được, nhưng tôi không có thiết bị để tự cắt đĩa
Ở intheclouds.io có thể làm với giá khoảng 100 đô
Tôi cũng có đồ kỹ thuật số, nhưng cảm giác trực tiếp chạm vào chiếc đĩa đen là thứ không gì thay thế được
Ngay cả những lỗi nhỏ hay sự không hoàn hảo của rãnh đĩa cũng hiện ra rõ ràng nên càng sống động hơn
Chỉ cần lấy đĩa ra khỏi bìa là có thể biết số lượng và độ dài các track qua chiều dài rãnh, và cũng có thể nhảy thẳng đến track mình muốn. Trực quan hơn băng cassette rất nhiều
Thay vào đó có giao diện băng kiểu jack âm thanh, và bạn phải tự tay bấm phát rồi dừng