-
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
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)