Mục lục:

Trình giả lập đứng một mình CP / M Retro: 8 bước
Trình giả lập đứng một mình CP / M Retro: 8 bước

Video: Trình giả lập đứng một mình CP / M Retro: 8 bước

Video: Trình giả lập đứng một mình CP / M Retro: 8 bước
Video: Thanh niên lần đầu chưa có kinh nghiệm kiểu#funny #tiktok 2024, Tháng mười một
Anonim
Trình giả lập đứng một mình CP / M cổ điển
Trình giả lập đứng một mình CP / M cổ điển

Dự án này sử dụng mô-đun VGA32 ESP v1.4 để chạy kết hợp hoặc RunCPM và FabGL để cung cấp một máy tính độc lập chạy hệ thống tương đương với CP / M 2.2. Phổ biến trong những năm 1980 như một hệ điều hành cho máy tính nhỏ. Bạn có thể quay ngược thời gian và thăm lại các phần mềm cũ như Wordstar, Supercalc, Adventure và Zork.

Đó là sự hỗ trợ độc lập của dự án FabGL đã cung cấp phần mềm để chạy màn hình VGA tiêu chuẩn và Bàn phím PS / 2.

Hệ điều hành chính là Phiên bản đã sửa đổi của RunCPM, nó đã được tách ra từ nguyên tác trên Github và tôi đã thêm thư viện FabGL để cho phép nó được sử dụng trên màn hình thay vì trên bảng điều khiển nối tiếp.

Tôi chỉ muốn gửi lời cảm ơn sâu sắc đến cả hai dự án. Hãy tiếp tục phát huy!

Phần mềm đã được thử nghiệm trên ít nhất hai phiên bản phần cứng. Một VGA32 ESP v1.4 (như đã bán sẵn). Thứ hai, phiên bản cũ của tôi, tôi đã xây dựng từ Mô-đun Wroom ESP32 và các mẩu tin lưu niệm từ các máy tính cũ.

Trang Github bên dưới chứa thông tin quan trọng về các thiết lập này cũng như phần mềm sẵn sàng cài đặt đã được sửa đổi.

Dự án này là về cài đặt phần mềm, không phải về phần cứng.

Quân nhu:

Mô-đun VGA32 ESP V1.4 (đã thử nghiệm). Tìm thấy trên eBay / aliexpress / amazon, v.v.

Arduino IDE được cài đặt trên máy tính, tôi cho rằng nếu bạn đọc nó, bạn đã có cái này.

Cài đặt gói hỗ trợ ESP32 cho Arduino IDE. https://github.com/espressif/arduino-esp32 Xem bước 1

Thư viện FabGL https://www.fabglib.org/ bạn không cần tải xuống bất cứ thứ gì, arduino IDE có thể thực hiện việc này cho chúng tôi, xem bước 2.

Tải xuống bản sao của RunCPM đã sửa đổi từ

Bước 1: Cài đặt Hỗ trợ ESP32 cho Arduino (tùy chọn)

Cài đặt Hỗ trợ ESP32 cho Arduino (tùy chọn)
Cài đặt Hỗ trợ ESP32 cho Arduino (tùy chọn)

Bạn có thể đã làm điều này, nếu bạn có, bạn có thể bỏ qua bước này.

truy cập https://github.com/espressif/arduino-esp32 và làm theo hướng dẫn cài đặt bằng trình quản lý bảng, như sau:

Hướng dẫn cài đặt bằng Arduino IDE Boards Manager =========================================== ===============

Liên kết phát hành ổn định:

Cài đặt Arduino IDE ngược dòng hiện tại ở mức 1.8 trở lên. Phiên bản hiện tại có tại trang web Arduino.

Khởi động Arduino và mở cửa sổ Preferences.

Nhập một trong các liên kết phát hành ở trên vào trường URL Trình quản lý Hội đồng Quản trị Bổ sung. Bạn có thể thêm nhiều URL, phân tách chúng bằng dấu phẩy.

Mở Boards Manager từ menu Tools> Board và cài đặt nền tảng esp32 (và đừng quên chọn board ESP32 của bạn từ menu Tools> Board sau khi cài đặt).

Bước 2: Thêm Thư viện FabGL vào IDE

Thêm Thư viện FabGL vào IDE
Thêm Thư viện FabGL vào IDE
Thêm Thư viện FabGL vào IDE
Thêm Thư viện FabGL vào IDE

Sử dụng bản phác thảo trống trong Arduino IDE, đảm bảo rằng bạn đã chọn Bảng ESP của mình từ menu Công cụ, Bảng. (Tại thời điểm viết bài, VGA32 ESP không được liệt kê, tôi chọn một bảng Dev Kit chung chung).

Từ menu Phác thảo, chọn Bao gồm Thư viện, sau đó chọn Trình quản lý thư viện.

Trong hộp thoại tìm kiếm, nhập FabGL và đợi nó xuất hiện trong danh sách bên dưới, bây giờ hãy nhấp vào nút Cài đặt.

hoàn thành

Bước 3: Thêm Thư viện thẻ SD bổ sung được RunCPM sử dụng

Thêm Thư viện thẻ SD bổ sung được RunCPM sử dụng
Thêm Thư viện thẻ SD bổ sung được RunCPM sử dụng

Điều này gần giống như bước trước nhưng thay vì tìm kiếm FabGL cho SDFat

Từ menu Phác thảo, chọn Bao gồm Thư viện, sau đó chọn Trình quản lý thư viện. Trong hộp thoại tìm kiếm, gõ SDFat và đợi nó xuất hiện trong danh sách bên dưới, có thể bạn sẽ phải cuộn danh sách xuống.

Bạn có thể lựa chọn hai phiên bản:

1, SdFat của Bill Greiman

2, SdFat - Ngã ba Adafruit

Tôi đã thử cả hai, cả hai đều có vẻ hoạt động tốt. Nhưng dự án RunCPM đã đề xuất tùy chọn Thứ hai "Adafruit Fork", tuy nhiên, trên các ghi chú mới nhất hiện nó cho biết:

Tất cả các hội đồng hiện đều sử dụng thư viện SdFat, từ đây:

Vì vậy, bây giờ tôi chọn tùy chọn đầu tiên cho dự án này.

hoàn thành

Bước 4: Tải xuống Dự án RunCPM đã sửa đổi

Tải xuống Dự án RunCPM được sửa đổi
Tải xuống Dự án RunCPM được sửa đổi
Tải xuống Dự án RunCPM được sửa đổi
Tải xuống Dự án RunCPM được sửa đổi

Truy cập Trang web Github, Nhấp vào nút CODE và tải xuống dưới dạng tệp ZIP

Lưu tệp này ở đâu đó (thường là trong một thư mục có tên là Arduino.

Giải nén tệp vào cùng một vị trí, nó sẽ tạo ra một thư mục có tên RunCPM-master

hoàn thành

Bước 5: Mở và xem lại chương trình RunCPM và biên dịch

Mở và xem lại chương trình RunCPM và biên dịch
Mở và xem lại chương trình RunCPM và biên dịch

Bây giờ bạn có thể sử dụng tệp Arduino IDE, menu Mở. Điều hướng đến thư mục bạn đã giải nén ở trên.

Bên trong thư mục này là một thư mục khác được gọi là RunCPM. Mở thư mục.

Bên trong thư mục đó là một tệp.ino có tên RunCPM.ino. Đây là tệp dự án chính - hãy mở nó.

Bây giờ bạn có thể xem dự án, đọc nhận xét, v.v. Thực hiện các thay đổi nếu bạn cần để phù hợp với phiên bản VGA32 -ESP của mình. Nó nên được cấu hình trước cho V1.4 của hội đồng quản trị.

Bây giờ bạn có thể nhấp vào biên dịch và tải lên, giả sử bạn đã kết nối VGA32 ESP, nó sẽ tải trình giả lập lên thiết bị của bạn.

QUAN TRỌNG: VGA32 có thể có vấn đề với thẻ SD tại thời điểm này, vì vậy đừng cắm nó vào để biết. Xem bước cuối cùng dưới đây để biết thêm thông tin.

Bước 6: Tạo thẻ SD sẵn sàng để khởi động RunCPM của bạn từ

Đây có lẽ là mẹo nhất trong các bước. Tôi khuyên bạn nên đọc README.md của trang Github để biết cách thực hiện việc này. Đây là danh sách những việc cần làm của tôi:

Tôi giả sử bạn có thẻ SD trống hoặc không quan tâm đến việc giữ bất kỳ tệp nào trên thẻ bạn có, điều này sẽ xóa nó.

1, định dạng thẻ SD là FAT-32

2, Tạo một số thư mục tên là A, B, C D vv (tối đa P đây sẽ là ổ đĩa khi chạy CP / M). Lưu ý chúng là viết hoa.

3, Trong mỗi thư mục, bạn tạo Tạo một thư mục khác có tên 0 (đó là số 0) và tùy chọn 1, 2, 3, v.v. (tối đa 15) Sau đó, các thư mục là Vùng người dùng trong mô phỏng CP / M. Bạn chỉ cần thư mục 0 để bắt đầu.

4, Từ thư mục dự án đã tải xuống của bạn trong thư mục arduino, tìm thư mục có tên CCP. Điều này chứa các phiên bản khác nhau của Bộ xử lý bảng điều khiển lệnh CP / M. Sao chép mã CCP-DR.60K vào thư mục gốc của Thẻ SD của bạn.

5, Bây giờ tìm thư mục trong thư mục dự án có tên là DISK, Nó chứa tệp A. ZIP, bạn cần giải nén tệp này vào thư mục có tên A / 0 / trên thẻ SD của bạn. (cũng xem tệp 1streadme để biết thêm thông tin). Thật không may, nó không có "0" trong danh sách thư mục, vì vậy trước tiên bạn cần giải nén vào một thư mục tạm thời, sau đó sao chép nội dung của thư mục A vào A / 0 / trên thẻ SD.

6, Khi bạn đã thực hiện các bước trên, bạn sẽ có một thẻ SD-Card với cấu trúc như sau:

F: CCP-DR.60K

/ A / 0

/1STREAD. ME

/ASM. COM

/…. Vân vân

/ B / 0

/ C / 0

Vân vân

Nếu bạn gặp lỗi không thể tải CCP, v.v. khi bạn cố gắng khởi động từ Thẻ SD, hãy kiểm tra lại xem bạn có mọi thứ ở đúng tốc độ không!

Trong một nỗ lực để làm cho giai đoạn này dễ dàng hơn một chút, tôi đã tải lên phiên bản được tạo sẵn ở trên, với phần mềm cp / m bổ sung trên đó cũng như tải xuống từ đây https://github.com/coopzone-dc/RunCPM/blob / master /… và chỉ cần giải nén nó vào thư mục gốc của thẻ SD đã được định dạng. Nó sẽ giúp bạn bắt đầu sau đó bạn có thể tạo của riêng mình sau đó.

Tôi cũng khuyên bạn nên đọc hướng dẫn thiết lập trên Github Repo, nó có mô tả về các thư mục bạn cần.

Bước 7: Kết nối Màn hình VGA và Bàn phím

Kết nối Màn hình VGA và Bàn phím
Kết nối Màn hình VGA và Bàn phím

Ngắt kết nối nguồn với card VGA32 ESP.

Kết nối màn hình VGA của bạn

Kết nối bàn phím PS / 2 Kết nối lại nguồn với card VGA32 ESP, bạn sẽ thấy đèn bàn phím nhấp nháy và khoảng 10 giây sau sẽ xuất hiện hình ảnh trên màn hình kèm theo lời nhắc CP / M!

Quan trọng: VGA32 gặp sự cố khi sử dụng thẻ SD và thiết lập lại mềm, đó là lý do tại sao điều quan trọng là phải TẮT NGUỒN như bước đầu tiên ở trên, Xem bước cuối cùng để biết thêm thông tin.

Đi đi…

Bước 8: Sự cố với thẻ nhớ SD trên mô-đun VGA32

Sự cố với thẻ SD trên mô-đun VGA32
Sự cố với thẻ SD trên mô-đun VGA32
Sự cố với thẻ SD trên mô-đun VGA32
Sự cố với thẻ SD trên mô-đun VGA32

Ảnh trên cho thấy thẻ ESP32 thứ hai của tôi (sản xuất tại nhà), thẻ này hoạt động tốt và không có vấn đề bên dưới. Vì vậy, tôi biết đó không phải là vấn đề phần mềm, vui lòng đọc phần dưới đây về phiên bản VGA32.

Trên mô-đun VG32 ESP (v1.4) của tôi, thẻ SD sử dụng GPIO12, Điều này không được Espressif Systems khuyến nghị vì chân này được sử dụng khi bật nguồn để phát hiện điện áp làm việc cho bộ nhớ trong. Tôi ước ai đó đã nói với người làm card VGA32 này! Nó có thể khác với của bạn, vì vậy hy vọng bạn sẽ không gặp vấn đề này.

Các vấn đề là:

1, Không thể tải lên bản phác thảo khi thẻ được cắm vào.

2, Sau khi nhấn nút đặt lại, nó sẽ khóa cho đến khi thẻ SD được tháo ra. Sau đó, nó khởi động đến màn hình báo lỗi không có thẻ SD-Card! Bạn có thể đặt thẻ vào và đặt lại lần nữa và nó sẽ hoạt động lần thứ hai.

Sự cố này có thể khắc phục được (Nhưng có rủi ro) hãy xem README.md trên

hoặc bạn luôn có thể tắt / mở nguồn để khởi động bo mạch. Vì một số lý do, điều này dường như hoạt động tốt. Ngoài ra, nếu bạn cần tải lên lại phần mềm RunCPM, trước tiên bạn phải tháo thẻ SD.

Đây là phần trích xuất từ README. MD giải thích sự cố. Tôi đã sử dụng bản sửa lỗi và nó hoạt động tốt, NHƯNG do bản chất của nó, rủi ro là của bạn, hãy đọc tiếp…

Tuy nhiên, cài đặt cho VGA32 ESP dường như có xung đột về cài đặt GPIO cho thẻ SD.

Nó hoạt động nhưng để tải lên, bạn phải tháo thẻ SD và sau khi thiết lập lại mềm, bạn phải tháo thẻ SD và sau đó thay thế nó, sau đó là đặt lại khác. Nó hoạt động tốt khi bật nguồn hoặc khôi phục cài đặt gốc. Nếu bạn có thể giúp khắc phục điều này, xin vui lòng cho tôi biết. CẬP NHẬT 11Oct2020: VGA32 ESP v1.4 sử dụng GPIO12 (MTDI, đọc khi bật nguồn / đặt lại). Chân này xác định điện áp cho RAM, Điện áp LDO bên trong (VDD_SDIO). Khi thẻ SD có mặt, nó sẽ kéo chân này lên cao và ESP32 cho rằng điện áp RAM phải là 1,8V, nếu không có thẻ SD, chân này sẽ kéo xuống bên trong để đặt điện áp RAM thành 3,3V. Điều này thực sự được đề cập trong ghi chú từ các ví dụ được cung cấp trong dự án FABGL, để trích dẫn: ghi chú về GPIO 2 và 12 - GPIO2: có thể gây ra sự cố khi lập trình. GPIO2 cũng phải được để ở chế độ không kết nối / thả nổi hoặc được điều khiển ở mức Thấp, để vào bộ nạp khởi động nối tiếp. Ở chế độ khởi động bình thường (GPIO0 cao), GPIO2 bị bỏ qua. - GPIO12: nên tránh. Nó chọn điện áp flash. Để sử dụng, hãy tắt cài đặt phát hiện GPIO12 efuses với: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Dùng tốt cho ESP32 với điện áp 3.3V (ESP-WROOM-32). Điều này sẽ BRICK ESP32 của bạn nếu đèn flash không phải là 3.3V NOTE1: thay thế "/dev/cu. SLAB_USBtoUART" bằng cổng nối tiếp của bạn NOTE2: espefuse.py có thể tải xuống từ

Điều này lưu ý thêm rằng nên tránh GPIO12, một lỗi không ai nói với nhà sản xuất card VGA32 ESP!

CỐ ĐỊNH: Tôi đã thử tùy chọn đặt điện áp flash vượt quá việc sử dụng GPIO12 và có thể xác nhận trên vga32 ESP của tôi, nó Hoạt động! Đã khắc phục sự cố không còn sự cố với Thẻ SD. Tôi mong bạn kiểm tra, kiểm tra kỹ và suy nghĩ kỹ về việc tạo GẠCH nếu bạn cũng quyết định thử. Tôi không giới thiệu nó như một hành động, nhưng đối với tôi, nó đã hoạt động.

Đề xuất: