-
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.
Następne wpisy z tego wątku
- 05.03.19 20:48 Sebastian Biały
- 05.03.19 21:58 J.F.
- 19.03.19 21:00 ń
Najnowsze wątki z tej grupy
- 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 ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
Najnowsze wątki
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=