Giải mã phông chữ bí ẩn trên cartridge chẩn đoán "Dead Test" của Commodore 64

Công nghệ24 tháng 5, 2026·6 phút đọc

Bài viết đi sâu phân tích phông chữ đặc biệt trên cartridge chẩn đoán C64 Dead Test, một phần mềm từng bị lãng quên trong tài liệu kỹ thuật. Chúng ta sẽ khám phá nguồn cảm hứng từ bộ ký tự MICR, cách thức hoạt động độc lập của cartridge và một "trứng phục sinh" thú vị ẩn giấu trong mã nguồn.

Giải mã phông chữ bí ẩn trên cartridge chẩn đoán "Dead Test" của Commodore 64

Dead Test Font TitleDead Test Font Title

Gần đây, khi tìm hiểu thông tin trên mạng, tôi nhận ra một sự thiếu hụt đáng báo động: dường như không có tài liệu nào ghi chép đầy đủ về phông chữ mang tính biểu tượng của cartridge chẩn đoán C64 "Dead Test". Không có biểu đồ ký tự, không có dữ liệu đọc ROM, và gần như không có gì đáng chú ý cả. Đây là một sự bỏ sót đáng xấu hổ mà chúng ta sẽ cùng khắc phục trong bài viết này.

Phông chữ riêng biệt của Cartridge

Cartridge chẩn đoán C64 "Dead Test" phiên bản Rev. 718220 (Commodore part № 314139-03) nổi tiếng vì sở hữu một phông chữ đặc biệt được nhúng trực tiếp vào ROM của nó. Do đó, nó không sử dụng bộ Character ROM tích hợp sẵn của C64. Thực tế, cartridge này thậm chí không yêu cầu bất kỳ ROM tích hợp nào của máy phải hoạt động chính xác (đó cũng là lý do nó có tên gọi như vậy), bởi nó hoạt động như một gói giải pháp độc lập hoàn toàn.

Phông chữ hiển thị của nó khá đặc biệt và, theo hiểu biết của tôi, không được sử dụng ở bất kỳ đâu khác. Chính vì lẽ đó mà bất kỳ ai từng nhìn thấy đều có thể nhận ra ngay lập tức.

Màn hình cartridge Dead Test đang hoạt độngMàn hình cartridge Dead Test đang hoạt động

Để bạn dễ hình dung, dưới đây là phông chữ bình thường mà C64 sử dụng (bộ chữ hoa/đồ họa):

Bộ ký tự chuẩn của C64Bộ ký tự chuẩn của C64

Trong khi đó, cartridge "Dead Test" chỉ triển khai 58 ký tự (screen codes từ $00 đến $39) mà không có bất kỳ ký tự đảo màu (reverse video) nào:

Các ký tự được triển khai bởi cartridge Dead TestCác ký tự được triển khai bởi cartridge Dead Test

Những người đọc kỹ sẽ nhận thấy rằng phông chữ này chỉ bao gồm chữ hoa, các con số và một vài dấu câu cũng như toán tử. Các ký tự trong khoảng $1B–$1F và $28–$2F được lấy trực tiếp từ bộ ký tự chuẩn. Đặc biệt, ký tự khoảng trắng bổ sung chiếm vị trí của ký tự "@" trong bộ chuẩn tại $00 — một bước đi thông minh cho một cartridge chẩn đoán, dù tính năng này thực tế chưa bao giờ được sử dụng.

Các ký tự khung viền ╭ ╮ ╰ ╯ ─ │ được triển khai trong khoảng $22–$27, nơi thông thường chúng ta tìm thấy các ký tự " # $ % & '. Và quan trọng nhất, có một ký tự bí ẩn hình chữ C tại vị trí $21 (thường là dấu chấm than !), ký tự này không được đề cập đến bất cứ đâu trong ROM, dù là dưới dạng toán hạng hay trong bất kỳ phần dữ liệu nào.

Về mặt thị giác, đây là một phông chữ kiểu "Computer™" điển hình, được tạo thành từ các hình dạng ký tự hộp được cách điệu bằng các khối hình chữ nhật (và hơi bo tròn nếu độ phân giải cho phép).

Cảm hứng từ MICR và "Trứng phục sinh"

Phong cách của phông chữ này gợi nhớ mạnh mẽ đến bộ ký tự MICR (Magnetic Ink Character Recognition - Nhận dạng ký tự bằng mực từ) E-13B, bao gồm chỉ 14 glyph: các chữ số 0-9 và 4 dấu hiệu bổ sung.

Các con số trong phông chữ Dead Test thực sự đại diện khá sát với bộ này, chỉ có hình dáng của chữ số "3" bị lệch đi một chút để trông "vuông vức" hơn.

Mẫu ký tự PET 901447m để so sánhMẫu ký tự PET 901447m để so sánh

Chính mối liên hệ chặt chẽ này với bộ phông chữ MICR E-18B đã dẫn chúng ta đến bản chất thực sự của ký tự bí ẩn #0x21 — một ký tự không bao giờ được hiển thị vì không được tham chiếu trong mã của cartridge:

Vậy đó là gì? Một ký tự "C" bị biến dạng hay cách điệu quá mức, có lẽ định là một phần của logo "chicken lips" nhưng bị thiếu một nửa?

Không! — Đó là ký hiệu "transit" (chuyển tiếp) của bộ MICR, được sử dụng làm dấu phân cách cho các mã định tuyến ngân hàng!

Đây là một lời gật đầu rõ ràng dành cho bộ ký tự MICR, và một "trứng phục sinh" (Easter egg) thực sự được ẩn giấu trong một phông chữ! Và thật công bằng khi nó chiếm vị trí của dấu chấm than.

Cách thức hoạt động: Chế độ Ultimax

Một sự thật ít được đánh giá cao là C64 thực chất là hai máy trong một: kiến trúc mà chúng ta yêu thích là Commodore 64, và một Commodore Max.

Commodore Max (hay Ultimax, VC-10) là một nỗ lực ngắn ngủi vào năm 1982 nhằm tạo ra một máy tính gia đình giá rẻ. Nó có RAM rất ít (chỉ 4K hoặc 2K usable), không có ROM người dùng và dựa hoàn toàn vào cartridge ROM.

C64 có một mẹo tuyệt vời liên quan đến cartridge: có hai tín hiệu trên cổng mở rộng là _GAME và _XROM để cấu hình máy. Nếu _GAME thấp và _XROM cao, C64 sẽ chuyển sang chế độ Ultimax để sử dụng với các cartridge của Commodore Max.

Trong chế độ Ultimax, bản đồ bộ nhớ được cấu hình lại:

  • Chỉ còn 4K RAM khả dụng ($0000–$0FFF).
  • Hai vùng ROM 8K (ROML tại $8000–$9FFF và ROMH tại $E000–$FFFF).
  • Các ROM tích hợp của C64, bao gồm cả Character ROM, bị loại bỏ (banked out).

Cartridge Dead Test sử dụng chính mẹo này để vượt qua các ROM tích hợp của C64: nó là một cartridge Ultimax 8K với mã ROM tại $E000–$FFFF và địa chỉ bắt đầu (reset vector) là $E000.

Phông chữ (tức là các ma trận ký tự) được triển khai bắt đầu từ địa chỉ $EAD8. Phần còn lại của không gian cartridge được lấp đầy bằng mẫu $AA.

Phông chữ Dead Test cho tất cả mọi người

Nếu bạn đã đọc đến đây, bạn rõ ràng là một người hâm mộ phông chữ Dead Test. Sao không sử dụng nó bất cứ khi nào bạn muốn? Tác giả bài viết đã tạo ra các phiên bản ROM cho C64, VIC-20 và PET dựa trên phông chữ này.

Để sử dụng chung, tác giả đã thiết kế một bộ chữ thường "sympathetic" để đi kèm với các glyph chữ hoa tìm thấy trên cartridge, cũng như thêm ký tự "@". Các glyph khác giữ nguyên như trong ROM ký tự chuẩn tương ứng.

Bạn có thể tải xuống các file ROM này để trải nghiệm hoặc sử dụng trong các dự án lập trình cổ điển của mình.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗