Emulacja CP / M pod Linuksem


6

Muszę być w stanie uruchomić bardzo stary kawałek oprogramowania - Kompilator HI-TECH z80 C dla CP / M . Został wydany jako freeware przez HI-TECH. Niestety, działa tylko na CP / M.

Po wielu Googlingach znalazłem strona narzędzi dla UZIX . Jednym z tych narzędzi jest skrypt aby odciąć emulację maszyny CP / M, umożliwiając w ten sposób korzystanie z kompilatora, tak jak z każdego innego programu UNIX. Problem z tym skryptem polega na tym, że zależy on od własnego emulatora CP / M, który niestety nie skompiluje się w nowoczesnym systemie (x64).

Moje pytanie: czy istnieje dostępny emulator CP / M dla Linuksa które mogłyby być użyte w podobny sposób? W szczególności muszę być w stanie jakoś uzyskać dostęp do plików z systemu hosta, a la DOSBox. Jestem gotów przepisać skrypt (nie muszę ponownie używać UZIXa); Potrzebuję emulatora. Dzięki za pomoc!


Dlaczego musisz użyć kompilatora z80 C? Są inni...
Dan D.

1
@DanD. Baza kodu, którą posiadam została zbudowana dla tego kompilatora. Ponadto HI-TECH produkuje kod wyższej jakości.
thirtythreeforty

Cerować! Wiedziałem, że nie powinienem był pozbywać się mojego Osborne'a!
fixer1234

Odpowiedzi:


7

Myślę z80pack działa dobrze dla ciebie. Używam go w 64-bitowym systemie Linux i są dostępne narzędzia do łatwego przenoszenia plików między emulowanym a hostowym systemem plików. Jakiś czas temu napisałem kilka artykułów, które mogą okazać się przydatne:

Konfigurowanie pakietu Z80 w celu utworzenia emulowanego systemu CP / M

Instalacja kompilatora HI-TECH Z80 C dla CP / M


Wspaniale; dokładnie to, czego szukałem. Powinienem zaznaczyć, że link do kompilatora HI-TECH w twoim drugim artykule jest jednak uszkodzony.
thirtythreeforty

@ gh403 Cieszę się, że uznałeś to za przydatne. Dzięki za poinformowanie mnie o linkach zaktualizowałem artykuł o nowe.
Lawrence Woodman

3

The dosbox Program, pomimo swojej nazwy, jest w rzeczywistości emulatorem PC w starym stylu, który może również uruchomić inny system operacyjny.

Sprawdź to:

http://compgroups.net/comp.os.cpm/using-dosbox-to-run-cp-m-86-on-modern-hardware/297836

Ale sam tego nie próbowałem.

W przypadku emulacji Z-80 możesz wypróbować emulatory TRS-80, w których zastosowano układ Z-80. Wierzę, że możesz również uruchomić CP / M.

http://www.trs-80.com/wordpress/cpm/


Interesujące ... jednak myślę, że kompilator HI-TECH został skompilowany dla z80, a DOSBox emuluje tylko architekturę x86. Chyba że całkowicie to nie zrozumiałem?
thirtythreeforty

Och, przepraszam, tęskniłem za tą częścią.
Keith

Dobry pomysł. Mimo że strona TRS-80, z którą się łączysz, nawet nie wspomina o Linuksie.
thirtythreeforty

@ gh403 Ale próbowałem tego i wiem, że działa na Linuksie. Kiedyś miałem 100 TRS-80 na moim jednym Linuksie. : -o
Keith

CP / M-86 i CP / M-80 są przeznaczone dla różnych architektur.
Thorbjørn Ravn Andersen

3

Wiem, że to stare pytanie, ale używam tego:

https://github.com/jhallen/cpm

Dużą zaletą w stosunku do z80pack jest to, że może emulować także BDOS, ponieważ Unix CWD jest mapowany jako napęd CP / M A :. Nie musisz więc bawić się obrazami dysku. Możesz również owijać skrypty wokół niego, aby uruchamiać takie rzeczy, jak Hitech C z Uniksa. Jest nawet wbudowany debugger (który włamujesz się z ^ C, co jest trochę mylące).


Moja odpowiedź jest nadal aktualna, ale niestety musiałem zrezygnować z niej z powodu nieznanego pochodzenia i licencji. (Pożycza kod z całego miejsca i nie przypisuje go poprawnie.) Skończyło się na pisaniu własnego; nie jest w pełni funkcjonalny, tak jak powyższy, ale jest wystarczająco dobry do uruchamiania testów kompilatora (i ma wbudowany debugger). github.com/davidgiven/cowgol/tree/master/emu/cpm
David Given

1

ZXCC został napisany specjalnie do uruchamiania Hi-Tech C w UNIX - emuluje na poziomie BDOS, więc katalogi w systemie hosta są transparentnie prezentowane jako napędy CP / M. Zawiera również opakowania dla kompilatora i linkera Hi-Tech C.


0

Czy ten napisany w java pomoże?

http://www.viara.eu/en/j80/J80doc.html


Może. Jak uzyskać dostęp do systemu plików systemu operacyjnego?
thirtythreeforty

Myślę, że nie mogę pomóc w tej sprawie. Przepraszam. Mogłabym zasugerować zainstalowanie maszyny wirtualnej 32-bitowego systemu operacyjnego Linux i sprawdzenie, czy to pomaga w kompilacji? Może po prostu nie podoba ci się twój 64-bitowy system operacyjny, ponieważ jest zależny od niektórych bibliotek w 32-bitowym systemie i nie jest nieodłączny z kompilacją na architekturze x86? Najlepiej zgaduję pomoc w tej sprawie.
Blisk

Hm. To pewna możliwość. Jednak zamierzam użyć minimalnej liczby warstw emulacji tutaj;)
thirtythreeforty
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.