Đọc dữ liệu đĩa mềm từ đĩa ZX Spectrum Swift

Jan 15 2021

Quay trở lại ngày chúng tôi có một đĩa nhanh sáu thanh, chúng tôi đã dẫn trước trò chơi theo thông số kỹ thuật của chúng tôi cho phép chúng tôi có đĩa mềm 3,5 inch. Xem:

  • https://www.worthpoint.com/worthopedia/swift-disc-interface-zx-spectrum-540379389
  • http://www.crashonline.org.uk/44/swiftdisk.htm
  • https://spectrumcomputing.co.uk/index.php?cat=96&id=1000412
  • https://hardware.speccy.org/hardware/Swift_Disc-Sixword-i.html

Tôi thấy thông số kỹ thuật phần cứng đầy đủ và thậm chí bản rom có ​​sẵn trực tuyến tại liên kết hardware.speccy.org ở trên, điều này khá tuyệt vời.

Có ai có ý kiến ​​về định dạng đĩa đã được sử dụng không (đó là ảnh chụp nhanh của toàn bộ bộ nhớ) và cách các đĩa mềm cũ của chúng ta có thể được số hóa cho thế giới cổ điển hiện đại. Có thể chúng tôi có thể chuyển đổi chúng sang định dạng FDI ?

Động lực:

Thật tuyệt khi thử và tải lên trò chơi chưa bao giờ phát hành Galactic Patrol của chúng tôi giống như chúng tôi đã làm với StarBlade . Xin lỗi vì đã làm cho kẻ thù dậy sóng quá ác ở đó! Có thể đã làm với một số trò chơi khác nhưng cả hai chúng tôi vẫn còn đi học.

Điều này chạy với màu 'đầy đủ' bằng cách sử dụng lược đồ chuyển đổi màn hình nhanh mà anh trai tôi đã nghĩ ra được đề cập ở đây trong sự cố .

Trả lời

3 Tommy Jan 16 2021 at 04:11

Tôi không thể tìm thấy thông tin kỹ thuật hoặc trình giả lập hiện có nhưng thông qua các liên kết của bạn, tôi tìm thấy hình ảnh có độ phân giải cao này của bảng giao diện .

Từ đó tôi nhận thấy những điều sau:

  • bộ điều khiển đĩa là WD1770, đó là cái lớn ở bên trái;
  • hai chip lớn ở bên phải cả hai nửa bên dưới đầu nối cạnh là RAM 8kb và EPROM; và
  • mọi thứ khác có thể nhìn thấy là lôgic 74-series.

Đó là một đặt cược an toàn dựa trên kiến ​​trúc của Spectrum mà nút ngắt chuyển đổi trong ROM trên bo mạch và kích hoạt NMI.

Các hình ảnh ROM được liên kết có kích thước 32kb và 16kb nhưng trước đây dường như chỉ là dữ liệu 16kb được sao chép hai lần, bạn cũng có thể thêm rằng EPROM là 16kb, trong trường hợp này có thể có một số phỏng đoán trong việc tìm ra thời điểm và vị trí 8kb RAM đó xuất hiện .

Tôi đã tìm thấy các đề cập cũ trong comp.sys.sinclair rằng mô phỏng Microdrive được thêm vào phiên bản mới hơn một phần dựa trên phần cứng, nhưng dường như đã đi kèm với một bản sửa đổi hội đồng quản trị. Vì vậy, một tác giả giả lập có thể sẽ bắt đầu với EPROM cũ hơn với hy vọng rằng phần cứng bổ sung vẫn chưa xuất hiện.

Mặt khác, tin tốt là bộ điều khiển đĩa là một bộ phận cực kỳ chuẩn chỉ thực hiện mã hóa vani IBM và dựa trên dung lượng đĩa mềm được quảng cáo của "13 trò chơi 48kb trên mỗi đĩa", bạn có thể giả định định dạng vật lý của dữ liệu trên đĩa là MFM (tức là PC thông thường 'mật độ kép').

Vì vậy: bạn thể hình ảnh đĩa của mình bằng ổ đĩa USB thuần túy (trừ khi bạn tìm thấy ổ đĩa chỉ hỗ trợ đĩa mềm mật độ cao) vì MFM về cơ bản là thứ duy nhất mà chúng hỗ trợ - nhưng chúng thường bị hạn chế ở các khu vực 512 byte với đánh số cố định nên điều này không được đảm bảo. Tuy nhiên, có thể đáng để thử trước khi tìm kiếm một giải pháp ít phổ biến hơn. Trang liên quan đến MSX này cung cấp hướng dẫn cho Linux và macOS mặc dù phần Windows trống. Ở đó có thể cần thêm một số nghiên cứu nhỏ.

Nếu không, hãy xem xét các giải pháp có thể hình ảnh đĩa mềm cho một máy như Amstrad CPC, vì những giải pháp này sẽ xử lý các kích thước và địa chỉ khu vực khác nhau và các định dạng tệp liên quan đến CPC phổ biến có thể giữ lại tất cả thông tin đó. Nếu bạn có một chiếc PC đủ cũ để có bộ điều khiển và ổ đĩa mềm trước USB và một hệ điều hành như DOS cung cấp cho phần mềm quyền truy cập không được kiểm soát vào bộ điều khiển thì điều đó sẽ thực hiện được. Hoặc các bộ điều khiển đĩa cấp thấp hiện tồn tại cho chính xác vấn đề này, chẳng hạn như Greaseweazle được đề cập bởi scruss, Kryoflux và những người khác.

Bắt đầu từ một trình giả lập Spectrum đang hoạt động, sau đó không cần phải tốn quá nhiều công sức để thêm giao diện đĩa Swift và đọc đĩa mềm của bạn.

Phần mềm nào nên ghi vào WD1770 rất nổi tiếng vì vậy bạn có thể tách các địa chỉ đó khá dễ dàng và khá nhiều điều đầu tiên mà quy trình NMI sẽ cần làm là sao lưu màn hình hiện tại để bạn có thể tìm ra Câu hỏi RAM mà không có quá nhiều khó xử. Tại thời điểm đó, nó cũng có thể dễ dàng như chỉ cần cắm vào hình ảnh đĩa của bạn.

Rất nhiều trường hợp khi các giao diện hơi tối nghĩa này không được mô phỏng chỉ là do không có sẵn dữ liệu thử nghiệm; rất có thể bạn có thể thu hút được một tác giả hiện có quan tâm chỉ bằng cách có một hình ảnh đĩa. Nếu không, một trình giả lập Spectrum rất dễ bị hỏng vì vậy một người như tôi, người có loại mã nói chung chính xác sẽ có thể giúp đỡ.

Ngoài ra, vì tìm kiếm của tôi không đặc biệt kỹ lưỡng, bạn có thể thấy rằng thứ đã được mô phỏng - trong trường hợp đó, vui lòng cho tôi biết để tôi có thể thay đổi 90% câu trả lời này.

2 Spektre Jan 16 2021 at 16:25

Có vẻ như nó sử dụng WD1770 Tôi không quen với nó nhưng trước tiên hãy kiểm tra xem WD1770 có tương thích với định dạng IBM không. Nếu có thì bạn có thể đọc đĩa trực tiếp trên PC ... Nếu không, bạn cần HW có khả năng đọc đĩa .

Vì vậy, trong trường hợp tương thích với PC, bạn chỉ cần hình ảnh nó bằng cách sử dụng quyền truy cập khu vực trực tiếp trong C ++ (hoặc bất kỳ ngôn ngữ hoặc tiện ích nào khác) thay vì định dạng tệp. Sau khi bạn có được hình ảnh nhị phân của đĩa mềm (theo cách này hay cách khác), có hai tùy chọn:

  1. thi đua FDC

    vì vậy bạn cần có một số trình giả lập có khả năng mô phỏng giao diện FDC của bạn hoặc thêm chức năng như vậy vào một số mã nguồn mở.

    Trong liên kết cuối cùng của bạn là hình ảnh ROM và cả mạch (nhưng không thể đọc được) vì vậy có thể mô phỏng điều này bằng cách đảo ngược mạch ... Tôi đã làm điều này trước đây cho trình giả lập của tôi và D40 / D80 FDC dựa trên WD2797 . Tuy nhiên, điều này chỉ có thể thực hiện dễ dàng đối với các trình giả lập chạy trên độ phân giải thời gian MC (chu kỳ máy) (như của tôi) nếu không FDC chỉ phải bị tấn công bằng cách kết nối với điều kiện HW và SW bỏ qua mã Z80 và thay vào đó, nhập mã / hoạt động FDC (điều đó là cách hầu hết các trình giả lập thực hiện, tuy nhiên điều này không tương thích 100% và các bộ tải tùy chỉnh và các thứ có thể không hoạt động) mà không ai không có kiến ​​thức sâu về hoạt động FDC được nhắm mục tiêu có thể làm được.

  2. giải nén các tập tin

    hoặc bạn bỏ qua FDC hoàn toàn và trích xuất các tệp không nén từ hình ảnh sang định dạng có thể đọc được bằng trình giả lập như *.tap. Trong trường hợp bạn chia sẻ một số hình ảnh (tốt nhất là mô tả tệp nào và thời lượng trong đó), tôi sẽ rất vui khi cố gắng tạo một trình chuyển đổi win32 có thể thực hiện điều này cho bạn.

    vì các tệp chỉ là ảnh chụp nhanh, đây có thể là lựa chọn tốt nhất của bạn. Lý tưởng nhất là nếu bạn cũng có quyền truy cập vào HW, bạn có thể tạo một mẫu bộ nhớ cụ thể và lưu nó vào đĩa mềm để việc cung cấp hệ thống tệp dễ dàng hơn ... ví dụ: điền 128K (phần RAM) với địa chỉ 32 bit (giá trị tăng dần) vì vậy chúng tôi có thể lấy các sector lại với nhau theo đúng thứ tự và sau đó khớp nó với FAT nếu nó được sử dụng ...