TinySol: Trò Klondike Solitaire 3KB Chạy Trên Mọi Máy DOS
TinySol, một trò Klondike Solitaire nhỏ gọn viết bằng hợp ngữ x86, chỉ chiếm 3KB và chạy trên mọi thiết bị từ IBM 5150 đến Pentium. Đây là một bài học tuyệt vời về tối ưu hóa cổ điển và là lời nhắc rằng phần mềm có thể vừa nhỏ gọn vừa hữu dụng.
TinySol (trước đây là MonoSol) là một trò chơi Klondike Solitaire miễn phí dành cho máy tính cổ điển, đặc biệt là những máy có màn hình đơn sắc. Được viết bằng hợp ngữ x86 và lắp ráp bằng NASM, nó chỉ chiếm 3KB và chạy trên mọi PC có 8086 trở lên. Mục tiêu của nhà phát triển là một trò chơi trông sắc nét ở chế độ 640×400×2 trên màn hình gas-plasma GRiD trong khi vẫn đủ nhỏ để đưa vào ROM mà không gây hậu quả.
Trò chơi hỗ trợ nhập liệu bằng bàn phím và chuột, lưu/khôi phục trạng thái trong trò chơi (hoàn tác), lưu/tải ra đĩa, tự động hoàn thành khi có thể, và tính điểm kiểu Microsoft không có đồng hồ. Nó thay đổi chế độ video nhanh chóng bằng phím F1-F4, tự động phát hiện màn hình ngoại trừ chế độ AT&T 6300, chỉ được tự động chọn trên một số máy GRiD nhất định.
Tương thích và Kiểm thử
TinySol đã được kiểm thử trên phần cứng thực bao gồm IBM 5150 (8088, 640KB, CGA, MS-DOS 3.30), GRiDCase 1520 (286, CGA/ATT), và Pentium 233 với VGA. Nó cũng chạy dưới môi trường giả lập, bao gồm DOSBox, và thậm chí trên 8086 giả lập chỉ với 64KB RAM và MS-DOS 2.0.
Đáng chú ý, CuteMouse, một trình điều khiển chuột DOS phổ biến, không hỗ trợ chế độ video AT&T 6300—chuột hoạt động nhưng con trỏ vô hình. Nhà phát triển đã thử nghiệm với trình điều khiển Microsoft Mouse v6 thay thế. DOSBox không yêu cầu trình điều khiển chuột vì nó được tích hợp sẵn.
Lịch sử Phiên bản và Cộng đồng
Phiên bản 1.0 ra mắt vào tháng 3 năm 2022. v1.1 thêm màn hình kết thúc và tối ưu hóa. v1.2 giới thiệu tính điểm, lưu ra tệp, và tự động hoàn thành. v1.3, phát hành vào tháng 5 năm 2026, cung cấp nhiều bản dựng (full, med, tiny, micro) và lần đầu tiên được phân phối dưới dạng bản cứng tại Vintage Computer Festival Southwest 2026.
Trò chơi có một lượng người hâm mộ nhỏ nhưng nhiệt tình. Một người dùng, Joseph, đã gửi email rằng anh ấy đang tìm một trò Klondike DOS hoạt động chỉ với bàn phím và rút 3 lá bài mỗi lần. Nhà phát triển cũng nhận được sự giúp đỡ từ Óscar Toledo G. (nanochess.org), người đã xác định một vấn đề hiển thị sprite trên VirtualBox cho Mac được giải quyết bằng cách xóa cờ hướng trước khi gọi Int 10h.
TinySol là một minh chứng cho những gì có thể đạt được với mã hợp ngữ chặt chẽ và sự tập trung rõ ràng vào khả năng tương thích. Nó không chỉ là một trò chơi; nó là một tác phẩm kỹ thuật phần mềm tôn trọng các giới hạn của phần cứng mà nó nhắm đến.
TinySol là một minh chứng cho những gì có thể đạt được với mã hợp ngữ chặt chẽ và sự tập trung rõ ràng vào khả năng tương thích.
| Tên | Chế độ INT 10h | Độ phân giải | Phím |
|---|---|---|---|
| CGA | 06h | 640x200x2 | F1 |
| AT&T 6300 | 40h | 640x400x2 | F2 |
| EGA | 10h | 640x350x16 | F3 |
| VGA | 12h | 640x480x16 | F4 |