-
Data: 2019-02-27 12:45:41
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ł:
> Widzę po necie że istniały komputery CP/M z 64kB RAM. Zakładając że choć
> troche tego ram było zastapione ROM (np. bios) to pytanie brzmi: czy w
> CP/M dało się w jakiś sposób uzyskać te *prawie* 64kB dla programu usera
> czy też BIOS, BDOS i interpreter zajmowały zawsze swoje i dla programów
> zostawało mniej?
>
> Szukam sobie po stronach o cp/m i jakoś nie znalazłem informacji że np.
> istniało jakieś api do stronicowania pamięci.
>
> 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ć.
Wracając do oryginalnego tematu.
CP/M był na 8080 bez żadnych wynalazków typu stronicowanie.
System zajmował:
- 256B od adresu 0,
- oraz licząc od 0xffff do tyłu BIOS i BDOS - tyle, ile było trzeba.
System był jednoprocesowy, więc cała pozostała pamięć była do dyspozycji dla jednego,
działającego w danym momencie procesu.
Czy był to interpreter poleceń CCP (czyli trzecia część CP/M) czy inny proces, który
mógł się ładować w miejsce CCP (i po zakończeniu tego procesu odpowiedni system call
ładował CCP z dyskietki do pamięci) - wszystko jedno.
Ale żaden program nie mógł ruszyć pamięci BIOSu i BDOSu - nic mu oczywiście fizycznie
nie zabraniało, ale jak to zrobił, to prędzej czy później komputer wymagał resetu.
Czy kod BIOS i BDOS siedział sobie w RAMie czy ROMie, to już inwencja projektanta
konkretnego komputera.
Pewnie nawet tak by się dało zadrutować, żeby adresy 0x0000, 0x0001 i 0x0002 dawały
zawsze odpowiednią komendę JMP - tyle że to też trzeba by przełączać.
Dynks polegał na tym, że przy starcie komputera ten akurat JMP nie dawałby dobrego
efektu - potrzebny był taki JMP, co skoczy do bootstrapu, który oczywiście może być w
ROM, ew. odłączanym, albo pozostającym i marnującym przestrzeń adresową.
Zastanawiałem się, jaką minimalną wielkość może mieć taki bootstrap - oraz ile z
niego musi być na adresie 0 (ciekawe, czy to z powodu CPM 8086 nie zaczyna po resecie
wykonywać kodu od 0 tylko od bodajże 0xf0000?)?
Pewnie na adresie 0 wystarczą 3 bajty, czyli odpowiedni JMP (w razie czego dałoby się
to przy każdym starcie komputera wprowadzać przełącznikami na płycie czołowej ;) a
reszta w ROM.
Ale jakby nie było ROM - to ile czasu musiałoby trwać takie wprowadzanie bootstrapu?
Może dałoby się skorzystać z jakiejś funkcji BIOS CP/M, gdyby był w ROM - np. tego
odczytu sektora, wtedy wystarczyłoby wprowadzenie parametrów, wywołanie tego syscalla
i skok do wgranego sektora...
Następne wpisy z tego wątku
- 27.02.19 13:18 J.F.
- 27.02.19 14:31 d...@w...pl
- 27.02.19 19:11 Sebastian Biały
- 27.02.19 19:23 Sebastian Biały
- 27.02.19 19:30 Sebastian Biały
- 27.02.19 19:33 Sebastian Biały
- 27.02.19 19:38 Sebastian Biały
- 27.02.19 19:47 Sebastian Biały
- 27.02.19 19:51 Sebastian Biały
- 27.02.19 19:52 J.F.
- 27.02.19 19:56 Sebastian Biały
- 27.02.19 19:56 s...@g...com
- 27.02.19 20:33 J.F.
- 27.02.19 20:40 J.F.
- 27.02.19 20:50 J.F.
Najnowsze wątki z tej grupy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-18 Marsz niepodleglosci
- 2024-10-18 Pożar parkingu w Luton
- 2024-10-18 Łódź => Spedytor Międzynarodowy <=
- 2024-10-18 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-10-18 Warszawa => Head of International Freight Forwarding Department <=
- 2024-10-18 uwazajmy na haczyki w umowach
- 2024-10-18 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-10-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-10-18 Gdańsk => Software .Net Developer <=
- 2024-10-18 Warszawa => Junior Rekruter <=
- 2024-10-18 Warszawa => Key Account Manager <=
- 2024-10-18 Przeróbka na zgrzewarkę "równoległą"
- 2024-10-18 Ostrów Wielkopolski => Laravel PHP Developer <=
- 2024-10-18 Warszawa => Data Scientist / Data Engineer (modele predykcyjne) <=
- 2024-10-18 doładowania 5zł