-
Data: 2019-02-25 16:16:21
Temat: Re: CP/M i 64kB
Od: d...@w...pl szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu niedziela, 24 lutego 2019 17:11:23 UTC+1 użytkownik Sebastian Biały napisał:
> Wstępnie zakładam że BIOS mógł być w ROM ale BDOS i interpreter były w
> ramie i nie dało się ich wyłączyć.
CP/M był cudem, oczywiście mając proporcjum, mocium panie, co do wymaganego komputera
i tym samym spodziewanych możliwości, na miarę UNIXa, mimo swoich nieprzyjemnych wad,
czyli wymagania dyskietek i działania (przenośnego) wyłącznie w txt (przecież nawet
spectrum jakąś tam grafikę miał).
Ja znam jedynie z fascynującej lektury, bo jak Kildall to wypuścił, to ja jeszcze w
planach nie byłem nawet ;>
Ogólnie wymaganie jest jedno - żeby można było załadować komputerowi do pamięci 3
bajty pod adresem 0 - była to dokładnie instrukcja skoku do CP/M, czyli system call -
a parametry szły w rejestrach.
To, do jakiego adresu był skok, ustalało się w czasie kompilacji dla danej maszyny -
czy wręcz jej konfiguracji, bo np. dla zamontowanych 32kB RAM trzeba było zrobić
jedną kompilację, które też działałaby na 64kB RAM, oczywiście pozwalając korzystać
tylko z 32kB (a kompilacja dla 64kB RAM nie działałaby na 32kB).
Więc wracając do tematu, komputer jakiś ROM musiał mieć, taki, który choć potrafiłby
odczytać pierwszy sektor dyskietki pod jakiś adres i potem pod ten adres skoczyć.
Po skoku można już odłączyć ROM i w to miejsce załączyć RAM - analogicznie jak robiło
się to w C64, tyle że z Z80 będzie trochę trudniej niż z 6410, bo 6410 miał w tym
celu bodajże 3 końcówki działające jak porty I/O w mikrokontrolerze - dlatego też na
C64 nie można nigdy było mieć pełnych 65536 bajtów RAM do dyspozycji, bo bodajże
jeden (a możę 2 lub 3) adres zawsze był memory mapped i/o dla rejestru sterującego
tymi końcówkami.
Wszystko zależy od tego, jak sobie komputer skonstruujesz.
Np. na spectrum nie można było uruchomić CP/M, bo pod adresem 0 miał na stałe ROM,
RAM było dopiero od 16kB.
Więc nawet nic nie pomagała przeróbka na 80kB RAM (16kB+2*32kB - bo 16kB RAM było w
jednym typie układów - i tylko te były montowane w spectrum 16kB - a pozostałe 32kB
to były tak naprawdę 64kB, ale złożone z chipów, które miały uszkodzone po jednym z
dwóch 16kB banków).
Jak miałeś FDD3000, to tak naprawdę CP/M działał na FDD3000 - to był cały komputer z
Z80 (i to chyba 4MHz, nie 3,5MHz jak w spektrusiu), 64kB RAM (choć tu być może trzeba
było uzupełnić, bo TOS działał już przy 16kB, jak w FDD3) i stacjami dyskietek - a
spectrum robił tylko za terminal, uruchamiając program z ROMu podłączonego do złącza
krawędziowego...
Następne wpisy z tego wątku
- 25.02.19 16:17 Sebastian Biały
- 25.02.19 16:49 J.F.
- 25.02.19 16:52 J.F.
- 25.02.19 16:58 J.F.
- 25.02.19 17:00 Dariusz Dorochowicz
- 25.02.19 17:00 J.F.
- 25.02.19 18:04 J.F.
- 25.02.19 21:04 HF5BS
- 25.02.19 21:23 Sebastian Biały
- 26.02.19 12:04 J.F.
- 26.02.19 12:14 d...@w...pl
- 26.02.19 13:51 Queequeg
- 26.02.19 18:20 Sebastian Biały
- 26.02.19 18:47 RoMan Mandziejewicz
- 26.02.19 18:51 cezar
Najnowsze wątki z tej grupy
- ładowarka zmarła
- Podstawa bezpiecznikowa jako rozłącznik DC
- Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-07-01 W-wa naklejki wjazd do centrum
- 2024-07-01 ładowarka zmarła
- 2024-07-01 Koder szuka pracy. Koduję w j.: Asembler, C, C++ (z Qt) i D.
- 2024-07-01 Kraków => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-07-01 Białystok => Full Stack Web Developer (.Net Core, Angular6+) <=
- 2024-07-01 Berlin => Technical Rollouter (Radio Systems Software Installation and
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Gdańsk => Programista Full Stack .Net <=
- 2024-07-01 Zabrze => Junior HelpDesk <=
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Bielsko-Biała => Expert Migration Architect (Azure) <=
- 2024-07-01 Mini Netykieta polskich grup dyskusyjnych
- 2024-07-01 Re: Jak wypełnić polecenie francuskiego sądu blokowania niektórych zapytań DNS? Blokując Francję
- 2024-07-01 Re: Powtórne wezwanie na PO-komisję uzdrowi Ziobrę już w 10 dni
- 2024-07-01 CA -- problem z logowaniem