eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaCP/M i 64kBRe: CP/M i 64kB
  • 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...

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: