Mổ xẻ hoàn toàn hệ điều hành máy tính bỏ túi TI-84 Plus

Phần mềm08 tháng 6, 2026·3 phút đọc

Một dự án kỹ thuật mới đây đã thực hiện việc phân tích và đảo ngược hoàn toàn hệ điều hành của máy tính bỏ túi TI-84 Plus phiên bản 2.55MP. Bài viết cung cấp cái nhìn chi tiết về kiến trúc bộ vi xử lý Z80, cơ chế phân trang bộ nhớ, động cơ tính toán dấu chấm động và cách thức hoạt động của ngôn ngữ TI-BASIC. Đây là tài liệu tham khảo quý giá cho những ai muốn hiểu sâu về phần mềm nhúng và kỹ thuật reverse engineering.

Tổng quan kiến trúc

Mục tiêu của dự án kỹ thuật này là file ti84plus.rom (kích thước 1 MiB), tương ứng với hệ điều hành phiên bản 2.55MP. Máy tính này sử dụng bộ vi xử lý Zilog Z80 với bus địa chỉ 16-bit (không gian địa chỉ logic 64 KiB) và hỗ trợ phân trang phần cứng cho flash và RAM. Toàn bộ quá trình phân tích được thực hiện thông qua dự án Ghidra với mã nguồn tái tạo sẵn có.

Mức độ tin cậy của các thông tin trong tài liệu được đánh dấu rõ ràng: [confirmed] (đã xác minh trong mã giả), [standard] (khớp với tài liệu kiến trúc TI-83+/84+), và [hypothesis] (giả định chưa kiểm chứng).

Cầu nối giữa phần cứng và phần mềm

TI-84 Plus là một máy dựa trên Z80 chỉ có thể truy cập 64 KiB bộ nhớ tại một thời điểm, nhưng thực tế nó sở hữu 1 MiB flash và 128 KiB RAM. Để giải quyết giới hạn phần cứng này, máy sử dụng cơ chế phân trang 4 khe (4-slot paging scheme) và cơ chế gọi hệ thống ("bcall").

Cơ chế này cho phép mã trên một trang flash 16 KiB gọi các chương trình con nằm trên bất kỳ trang nào khác. Hệ điều hành hoạt động như một bộ giám sát đơn nhiệm (single-tasking monitor), bao gồm một nhân khởi động (boot/kernel core) nằm trên trang flash 0 (luôn được ánh xạ thấp), các chương trình hệ thống phân tán trên các trang flash khác, và một vùng RAM cố định lưu trữ trạng thái hệ thống (cờ, thanh ghi dấu chấm động, bộ đệm hiển thị, bảng biến).

Bốn trụ cột chính của hệ điều hành

Mọi tương tác của người dùng — từ màn hình chính, chương trình TI-BASIC, vẽ đồ thị, đến danh mục ứng dụng — đều được xây dựng dựa trên bốn trụ cột chính:

  • Phân trang và bcalls: Cách thức truy cập mã và dữ liệu vượt quá giới hạn 64 KiB.
  • Động cơ dấu chấm động (Floating-point engine): Sử dụng số thực/phức BCD 9 byte trong các thanh ghi OP1–OP6; mọi phép toán toán học đều đi qua đây.
  • Hệ thống biến (VAT): Các đối tượng được đặt tên (số thực, danh sách, ma trận, chuỗi, chương trình...) được lập chỉ mục trong Bảng phân bổ biến (Variable Allocation Table).
  • Trình phân tích cú pháp/tokenizer: TI-BASIC được lưu trữ dưới dạng token 1 và 2 byte; trình phân tích cú pháp sẽ thực thi chúng.

Các hệ thống con và tài liệu chi tiết

Xung quanh bốn trụ cột này là các hệ thống con I/O: ngắt IM1 điều khiển thời gian, tính năng tự động tắt (APD), con trỏ và phím ON; trình điều khiển LCD; máy quét bàn phím; và cổng liên kết.

Dự án cung cấp một bộ tài liệu kỹ thuật sâu rộng bao gồm:

  • Bộ nhớ và Phân trang: Bản đồ không gian địa chỉ, cổng I/O, bố cục RAM và cơ chế phân trang Flash/RAM.
  • Hệ thống gọi: Bảng chuyển đổi bcall và cơ chế gọi hệ thống.
  • Chức năng chuyên sâu: Tài liệu về vẽ đồ thị, thống kê, giải ma trận, tìm nghiệm, và giao thức truyền tải qua cổng link/USB.
  • Khởi động và Lỗi: Ngữ cảnh khởi động, hệ thống ngữ cảnh và xử lý lỗi.

Đây là một kho tàng kiến thức kỹ thuật cho những lập trình viên hoặc kỹ sư muốn tìm hiểu sâu về cách một thiết bị nhúng cổ điển quản lý tài nguyên hạn chế để cung cấp các chức năng tính toán phức tạp.

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