-
X-Received: by 2002:a25:320c:: with SMTP id y12mr1493135yby.496.1551267941775; Wed,
27 Feb 2019 03:45:41 -0800 (PST)
X-Received: by 2002:a25:320c:: with SMTP id y12mr1493135yby.496.1551267941775; Wed,
27 Feb 2019 03:45:41 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.
com!news.xlned.com!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.h
ighwinds-media.com!news.highwinds-media.com!m21no1067663qta.0!news-out.google.c
om!o7ni688qta.1!nntp.google.com!m21no1067659qta.0!postnews.google.com!glegroups
g2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.misc.elektronika
Date: Wed, 27 Feb 2019 03:45:41 -0800 (PST)
In-Reply-To: <q4ufna$jiq$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.171.220.154;
posting-account=fcN60AoAAACGnErMsW3A8rTO2UKkGJEn
NNTP-Posting-Host: 46.171.220.154
References: <q4ufna$jiq$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1...@g...com>
Subject: Re: CP/M i 64kB
From: d...@w...pl
Injection-Date: Wed, 27 Feb 2019 11:45:41 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4649
X-Received-Body-CRC: 1576741608
Xref: news-archive.icm.edu.pl pl.misc.elektronika:741311
[ ukryj 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
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
Najnowsze wątki
- 2025-07-03 ROG
- 2025-07-03 OZE dały Polsce więcej prądu niż elektrownie węglowe
- 2025-07-03 Dlaczego nikt nie powiadamia służb!
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=