eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaCP/M i 64kBRe: CP/M i 64kB
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
    blin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt
    -spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "J.F." <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    References: <q4ufna$jiq$1@node2.news.atman.pl> <q51hnt$kgc$1@node1.news.atman.pl>
    <q51irv$lji$1@node1.news.atman.pl>
    <5c751d95$0$484$65785112@news.neostrada.pl>
    <q53sh9$sta$1@node1.news.atman.pl>
    <7409391785$20190226184734@squadack.com>
    <q53v5o$vi6$1@node1.news.atman.pl>
    <7088299527$20190226200906@squadack.com>
    <q5450n$5hv$1@node1.news.atman.pl>
    <5c759e46$0$514$65785112@news.neostrada.pl>
    <q56jt7$7e8$1@node2.news.atman.pl>
    <5c76f1b2$0$516$65785112@news.neostrada.pl>
    <q5703b$up6$1@node1.news.atman.pl>
    <a...@g...com>
    <q59ets$eat$1@node1.news.atman.pl>
    <1mjw2gp3k67mt$.y7hkvuqgt9xz.dlg@40tude.net>
    <q5c0h6$uho$1@node1.news.atman.pl>
    <l4zk3vwy61pa.l5x71g8limow$.dlg@40tude.net>
    <q5dhtc$ghq$1@node2.news.atman.pl>
    <1...@4...net>
    <q5h2oe$s5c$1@node1.news.atman.pl>
    <6grlaur8yg0l$.1mucio4ufvadf$.dlg@40tude.net>
    <q5jrg8$8sq$1@node2.news.atman.pl>
    In-Reply-To: <q5jrg8$8sq$1@node2.news.atman.pl>
    Subject: Re: CP/M i 64kB
    Date: Tue, 5 Mar 2019 11:21:48 +0100
    MIME-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
    X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
    Lines: 125
    Message-ID: <5c7e4e0c$0$500$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.26.158.51
    X-Trace: 1551781388 unt-rea-a-01.news.neostrada.pl 500 83.26.158.51:61959
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:741443
    [ ukryj nagłówki ]

    Użytkownik "Sebastian Biały" napisał w wiadomości grup
    dyskusyjnych:q5jrg8$8sq$...@n...news.atman.pl...
    On 03/03/2019 22:34, J.F. wrote:
    >> A jak mamy 1MB RAM, to znow znacznie latwiej sie to obrabia na 8086
    >> w
    >> malych kawalkach, niz na 6502 z dodatkowym stronnicowaniem.

    >I tu i tu musisz przestawiać segmenty. W przypadku 8086 masz tylko tą
    >zaletę że robisz to w cpu.

    Mam te zalete, ze ten segment jest przesuwny i obejmuje prawie 64KB.

    >> O co innego chodzi. Masz np obrazek 24b/pixel.
    >> Obliczasz adres trzech bajtow pixela w pamieci seg:offset,
    >> i masz w trzech kolejnych bajtach dane. I nie zastanawiasz sie czy
    >> przypadkiem drugi lub trzeci bajt nie leza na innej stronie, i
    >> trzeba
    >> ja zmienic.

    >Zależy jaki duży masz ten obrazek. A jak nie wiesz jaki masz duży to
    >i tak musisz sprawdzać za każdym razem. Znowu dupa z tyłu.

    Nie sprawdzam - wyliczam adres pixela, jego trzy bajty sie w segmencie
    zmieszcza.
    Przy stronnicowaniu nie moge tego obiecac - musze sprawdzac przy
    kazdym bajcie.

    Moze nawet wystarczy adres dla poczatku linii policzyc, ale to juz
    lepiej sprawdzic ... albo i nie, kto ma takie glupie obrazki, ten moze
    miec klopoty :-)

    Nawiasem mowiac - gdzies w TIFF jest "chunk size", ktos przewidzial,
    ze moze byc dobrze podzielic obrazek na kawalki nie wieksze niz np
    8KB.
    I to nie tylko w 8086 sie sprawdza - np te "memory mapped" pliki w
    unixie.

    >> Albo np szukasz slowa w tekscie, i sie nie zastanawiasz czy
    >> przypadkiem "owo" nie jest na nastepnej stronie.
    >Bo teksty z definicji nie przekraczają 64kB ...

    W CP/M byc moze, ale my tu o lepszym systemie :-)

    >>> A jak? Żeby program nie wiedział i żebyś nie pomylił segmentacji z
    >>> translacją wirtualna->fizyczna MMU.
    >> Bo program ma uzywac dla tej pamieci segmentu nr 3 np.

    >Para segment:offest to jest dokłądnie to samo co pointer.
    >dokładnością do kłopotów w relacjach. Nie ma tam nic "leszego" albo
    >rozwiązującego problemy lepiej niż liniowy adres. Nic. Dorabianie
    >filozofii do tego konceptu jest naprawdę bolesne dla logiki.

    https://en.wikipedia.org/wiki/Memory_segmentation

    I nie zaczyna sie od "8086 ..."

    >>> Bo to problem segmentacji pamięci i jest obecy w każdej
    >>> współczesnej
    >>> sytuacji kiedy nie ma kompaktacji pamięci. Segmenty nic nie
    >>> zmieniają
    >>> ani nie ułatwiają.
    >>>> Z segmentami (ale nie takimi jak w 86) by sie dalo.

    >Nie dało. Program musi wiedzieć że mu pamięc kompaktujesz i wskaźnik
    >jest iwalidowany.

    Nie musi wiedziec, bo wskaznik sie nie zmienia.
    3:1500 pozostaje, i tylko system wie, ze segment 3 jest teraz
    polozony gdzie indziej.

    >> Nawiasem mowiac - chcieli lepiej
    >> https://en.wikipedia.org/wiki/Intel_iAPX_432

    >Nie było zgodne z CP/M i w dodatku potem okazało się że było na tyle
    >kiepsko zaprojektowane że nie było też wydajne.

    Ale przede wszystkim rynek nie chcial.
    To co beda ulepszac :-)

    Nawiasem mowiac - mimo niewatpliwych zalet, zobacz jak dlugo sie 68k
    przebijala.
    Za droga byla, czy zabraklo takiej lokomotywy jak IBM ... i CP/M?
    Tego CP/M to bym nie przecenial, bo niedawno wystartowal, a pisanie np
    kompilatora w assemblerze ... musialo byc ciekawe :-)

    A moze jednak tak ogolnie 68k kiepska byla ?
    Albo unix byl za malo "user friendly" i za drogi ?

    >>> żąłosną architekturą było nawet to 386 z kilkoma specjalizowanymi
    >>> rejestrami, praktycznie zerową ortogonalnością itd itp.
    >> Ta ortogonalnosc nie jest tak znow niezbedna.

    >Powiedz to kompilatorom. Obecnie tworzy się kod na procesor wirtualny
    >z masą rejestrów a nastepnie kolejna warstwa stara się to translować
    >na żałosną przestrzeń rejestrów x86. No, ale Turing-complete, więc o
    >co chodzi.

    No i mowisz kompilatorom, one kompiluja, rezultat jest dobry i co cie
    to wiecej obchodzi ?

    A i tak nie wiadomo, czy tak trzeba, czy tworcy kompilatorow poszli w
    takim kierunku, aby RISC obsluzyc.
    Borland kompilowal bezposrednio na x86.

    >>> Nie musi tego wiedzieć, skoro podałeś adres to pod nim spodziewadz
    >>> się
    >>> danych. Mówisz o offsecie. Ale nawet wtedy nie o to chodzi. Kod
    >>> relokowalny ma TAKIE SAME pointery jak nierelokowalny. Róznica
    >>> jest
    >>> tylko w tym że KOD może być dowolnie umieszczony w RAM.
    >> A tu jest kod i dane.
    >> Np procedura rysowania znakow na ekranie, i dane z fontami.
    >> Font moze byc dowolny, ale jest kilka predefiniowanych w
    >> bibliotece.
    >Ich dane są gdzieś załadowane fizycznie w pamięć.

    Sa w bibliotece, razem z kodem procedury.

    I teraz trzeba podzielic biblioteke na dwie czesci, zaladowac osobno
    do pamieci,
    zrelokowac wskazniki w kodzie programu ... albo uzywac w programie
    adresowania wzgledem PC i po zaladowaniu absolutnie nie przesuwac.

    J.

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: