26 Ostatnio edytowany przez Cyprian (2024-12-29 22:25:24)

artik-wroc napisał/a:

Jest sobie program A, który "majstruje" przy adresie $1234, a ja chciałbym aby majstrował przy $5678.
Do tego momentu wygląda, że nic prostszego.
Problem w tym, że jest program B, który również majstruje przy $1234 i tak musi zostać.
Czy do tego da się użyć MMU ? Wszak ono działa z poziomu procesora, a nie programu.

każdy proces musi mieć własne drzewo MMU i to chyba właśnie MiNT robi.

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

27

Okazało się, że było łatwiej niż myślałem. W Milanie obszar I/O ISA jest pod różnymi adresami:

$80000000 - $BFFFFFFF    PCI I/O, overlayed with ISA I/O[1]
$C0000000 - $C000DFFF    PCI/ISA I/O using big endian addressing

w Hadesie pod adresem $80000000 zaczyna się obszar pamięci PCI MEM.

Było mi to potrzebne, aby spróbować użyć sterowników MilanBlaster z Hadesem.

Karta jest rozpoznawana, adresy są ustawione, ale niestety sterownik zgłasza błąd.

W przypadku sterownika do kart SB, zgłasza info w o braku dostępu do DSP. Jednak jak uruchamiam program sprawdzający adres SB, który właśnie resetuje DSP, o ten działa zarówno pod adresem Hadesowym, jak i Milanowym.
Większość kart jakie mam nie jest rozpoznawana przez narzędzia PNP. Zamówiłem jeszcze inną kartę i spróbuję, gra jest warta świeczki.

Było miło :) Do widzenia.

A to już się komplikuje sprawa, potrzebujesz system z multitaskingiem, który będzie wiedział który proces kiedy chodzi i będzie im przełączał mapowanie pamięci MMU. Problem: kompatybilnego z TOSem takiego nie ma. Możesz spróbować z Linuxem.
Najprostsze rozwiązanie: modyfikacja źródeł. lub desamblacja binarki. modyfikacja o ponowna asemblacja.

Atari: FireBee (Falcon030 CT60e SuperVidel SvEthlana CTPCI) TT (520ST Pak030 Frak PuPla Panther) (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435) (1040STFM UltraSatan SM124) (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224) 260ST, 520 ST+, (MEGA ST SM125) (65XE Rapidus U1MB VBXE SIDE2 SIO2PC) (Jaguar JagCD SkunkBoard GameCart) (Lynx II AgaCart GameCart) 2xPortfolio Hades

29

Próbowałem rozwiązań atarowskich (Digger 8.1), ale ostatecznie skończyło się na Ghidra, głównie dlatego, że można dostać plik w C, a to dla mnie zdecydowanie bardziej czytelne niż asembler. Poszukam jakiegoś samouczka, bo pewnie można wycisnąć z tego programu więcej, niż podczas pierwszej godziny używania :)
Już widzę, że problem jest też w adresach rejestrów MFP (IRQ). W innym miejscu są w Milanie niż w Hadesie. Krok po kroku spróbuję, a może się uda coś zamataczyć.

Było miło :) Do widzenia.

30

Zachęcacie aby rozkręcić hades-a 060,  oj dawnego tego nie włączałem :)