Thread View: pl.comp.os.ms-windows.win3
9 messages
9 total messages
Started by Sep
Wed, 07 Jun 2006 11:43
tryb rzeczywisty
Author: Sep
Date: Wed, 07 Jun 2006 11:43
Date: Wed, 07 Jun 2006 11:43
5 lines
1296 bytes
1296 bytes
Witam! Z tego co wiem tryb rzeczywisty daje możliwość dostępu tylko do 1mb pamięci (i 64kb pamięci bezpośrednio nad nim zwany pamięcią wysoką). Więc jak to niby jest, że DOS pracujący rzekomo w trybie rzeczywistym po załadowaniu himem.sys ma dostęp do pamięci rozszerzonej?
Re: tryb rzeczywisty
Author: Konrad Stepien
Date: Thu, 08 Jun 2006 11:04
Date: Thu, 08 Jun 2006 11:04
15 lines
1528 bytes
1528 bytes
Sep <sepu@USUNTOgazeta.pl> napisał(a): > Witam! > Z tego co wiem tryb rzeczywisty daje możliwość dostępu tylko do 1mb pamięci > (i 64kb pamięci bezpośrednio nad nim zwany pamięcią wysoką). > Więc jak to niby jest, że DOS pracujący rzekomo w trybie rzeczywistym po > załadowaniu himem.sys ma dostęp do pamięci rozszerzonej? > himem.sys udostępnia funkcje zarządzające pamiecią XMS. Zasadniczo to pozwala alokować bloki pamięci XMS i przesyłać dane między tymi blokami a pamięcią rzeczywistą. I to z zasadzie tyle. -- WARNING: my e-mail is encrypted by ROT13 Xbaenq Fgrcvra <xbaenq@vagreqngn.arg.cy>
Re: tryb rzeczywisty
Author: Sep
Date: Fri, 09 Jun 2006 08:48
Date: Fri, 09 Jun 2006 08:48
45 lines
3644 bytes
3644 bytes
a skoro już o pamięci: w Internecie jest pełno błędów np. "pamięć rozszerzona to ta powyżej 640 kb" Wydaje mi się, że (proszę o nanoszenie poprawek): -procesory 16-bitowe mogły obsłużyć tylko 20 lini adresowych w których mieścił się obszar 1mb pamięci RAM. Z tego powodu całą pamięć powyżej 1mb nazywa się pamięcią rozszerzoną -wszystkie procesory 32- i 64- bitowe potrafią przejść w tryb procka 16-bitowego i dlatego można na nich korzystać z pracującego w trybie rzeczywistym DOS-u -pamięć do 640 kb to tzw. pamięć podstawowa (konwencjonalna) -pamięc między 640 kb a 1mb to pamięć górna (upper) ładowane są do niej ROM-y urządzeń takich jak karty graficzne w celu przyspieszenia pracy (dziś nie przynosi to już tak dużego wzrostu wydajności) część z tej pamięci (nie wykorzystywana przez ROM-y) może zostać przekstałcona w bloki UMB (upper memory blocks) do których można ładować sterowniki w celu zaoszczędzenia pamięci podstawowej za pomocą poleceń loadhigh i devicehigh. wyłączenie opcji Shadow Ram w BIOS-ie zwiększa ilość pamięci którą można przekstałcić w UMB -pierwszy obszar 64kb powyżej 1mb to pamięć wysoka HMA (high memory area) -pamięć rozszerzoną (extended) można przekstałcić w pamięć stronicowaną (expanded) zgodną ze specyfikacją Lotus-Intel-Microsoft EMS 3.2 lub 4.0 (czym się różnią te dwie wersje?) a odbywa się to w następujący sposób: w pamięci górnej tworzony jest blok 64kb podzielony na 4 strony po 16 kb, które mogą "jeździć" po całej pamięci rozszerzonej. -pamięć stronicowana (EMS) jest wolniejsza od tej w standardzie XMS -aby stworzyć bloki UMB trzeba załadować sterownik emm386.sys (jeżeli nie chce się tworzyć pamięci EMS to z poleceniem noems); FreeDOS posiada odzdzielny sterownik tworzący bloki UMB - umb.sys -sporo programów pracuje znacznie wolniej po załadowaniu emm386.sys nawet z poleceniem noems - dlaczego? -gdy windows 9.x w plikach config.sys lub autoexec.bat odnajdzie sterownik 16-bitowy którego nie potrafi zastąpić odpowiednikiem 32-bitowym to przełącza się w "tryb zgodności z trybem Ms-DOS" jak on działa?? -czy to prawda, że windows 95 bez załadowania himem.sys nie potrafi zobaczyć całej pamięci? -wymienione podziały pamięci (podstawowa, górna ....) nie są podziałami fizycznymi, a jedynie programowymi -systemy 32-bitowe widzą pamięć jako jedną całość bez żadnych podziałów
Re: tryb rzeczywisty
Author: Konrad Stepien
Date: Fri, 09 Jun 2006 17:49
Date: Fri, 09 Jun 2006 17:49
111 lines
6321 bytes
6321 bytes
Sep <sepu@USUNTOgazeta.pl> napisał(a): > a skoro już o pamięci: > w Internecie jest pełno błędów np. "pamięć rozszerzona to ta powyżej 640 kb" > Wydaje mi się, że (proszę o nanoszenie poprawek): > > -procesory 16-bitowe mogły obsłużyć tylko 20 lini adresowych w których > mieścił się obszar 1mb pamięci RAM. Z tego powodu całą pamięć powyżej 1mb > nazywa się pamięcią rozszerzoną Nieprawda. To dotyczy procesorów 8086/88. 80286 też jest 16-bitowy a adresuje znacznie więcej. Że o innych prockach 16-bitowych (np. motorola 68000) nie wspomnę. > -wszystkie procesory 32- i 64- bitowe potrafią przejść w tryb procka > 16-bitowego i dlatego można na nich korzystać z pracującego w trybie > rzeczywistym DOS-u > Wszystkie z rodziny i386. Bo taki Itanium już nie. O nieintelowskich nie wspomnę. Poza tym nie w trym 16-bit a w tryb 8086. Bo taki 286 może pracować w swoim natywnym trybie (innym niż 386 i wyższe), albo w "trybie rzeczywistym (real mode)" czyli jako 8086. > -pamięć do 640 kb to tzw. pamięć podstawowa (konwencjonalna) Tak, ale to już kwestja organizacji pamięci PC a nie procesora jako takiego. > -pamięc między 640 kb a 1mb to pamięć górna (upper) > ładowane są do niej ROM-y urządzeń takich jak karty graficzne w celu > przyspieszenia pracy (dziś Te romy są tam nie tyle ładowane, co mapowane na ten zakres adresów. O "ładowaniu" można mówić w wypadku "shadow BIOS". Ale to tylko trik polegający na przepisaniu ROM-u do RAM-u, właśnie w celu przyspieszenia. W każdym razie, shadow nie jest obowiazkowy. > nie przynosi to już tak dużego wzrostu wydajności) Bo dziś żaden system nie korzysta z BIOS-u w czasie normalnej pracy. BIOS jest potrzebny w zasadzie tylko w czesie startu systemu. > część z tej pamięci (nie wykorzystywana przez ROM-y) > może zostać przekstałcona w bloki UMB (upper memory blocks) do których można > ładować sterowniki W zasadzie racja, ale obszar pamięci górnej to nie tylko ROM-y. Ta pamięć jest głównie wykorzystywana jako pamięć peryferiów, np. pamięć katy graficznej. Niektóre płyty 286 i wczesne 386 miały mozliwość przemapowania pamięci RAM z tego zakresu na obszar powyżej 1MB. Szczególnie uzyteczne w maszynach z jednym megiem RAM. Wedy oczywiście nie można było korzystać z shadow BIOS. > w celu zaoszczędzenia pamięci podstawowej > za pomocą poleceń loadhigh i devicehigh. > wyłączenie opcji Shadow Ram w BIOS-ie zwiększa > ilość pamięci którą można przekstałcić w UMB Nie. Ten obszar jest i tak zajęty. Wyjątkiem jest to przemapowanie o którym pisałem, ale ono i tak nie wpływa na UMB. > -pierwszy obszar 64kb powyżej 1mb to pamięć wysoka HMA (high memory area) > -pamięć rozszerzoną (extended) można przekstałcić w pamięć stronicowaną > (expanded) zgodną ze specyfikacją Lotus-Intel-Microsoft EMS 3.2 lub 4.0 > (czym się różnią te dwie wersje?) a odbywa się to w następujący sposób: w > pamięci górnej tworzony jest blok 64kb podzielony na 4 strony po 16 kb, > które mogą "jeździć" po całej pamięci rozszerzonej. > -pamięć stronicowana (EMS) jest wolniejsza od tej w standardzie XMS Czy ja wiem. W sumie nie powinna. Myślę, że te opinie pochodzą z czasu gdy stosowane były karty pamięci EMS, bo maszyny klasy XT inaczaj nie potrafiły. > -aby stworzyć bloki UMB trzeba załadować sterownik emm386.sys (jeżeli nie > chce się tworzyć pamięci EMS to z poleceniem noems); FreeDOS posiada > odzdzielny sterownik tworzący bloki UMB - umb.sys > -sporo programów pracuje znacznie wolniej po załadowaniu emm386.sys > nawet z poleceniem noems - dlaczego? Nie zauważyłem. Inna sprawa, że emm386 zajmuje pamieć podstawową, i jeśli program nie potrafi korzystać z pamięci rozszerzonej, to emm386 będzie mu tylko przeszkadzał. > -gdy windows 9.x w plikach config.sys lub autoexec.bat > odnajdzie sterownik 16-bitowy którego nie potrafi zastąpić odpowiednikiem > 32-bitowym to > przełącza się w "tryb zgodności z trybem Ms-DOS" > jak on działa?? Nie znam się za dobrze na win9x, ale po mojemu to działa na takiej samej zasadzie jak odwołania do BIOS-u (BIOS jest 16-bitowy). > -czy to prawda, że windows 95 bez załadowania himem.sys nie potrafi zobaczyć > całej pamięci? Nie, może zupełnie pierwsze wersje bez service-pack. Za to ZTCP to win3.x nie widziały powyżej 16MB jeśli się nie założyło EMS-a > -wymienione podziały pamięci (podstawowa, górna ....) nie są podziałami > fizycznymi, a jedynie programowymi Programowe podziały to ograniczenie base memory do 640kb. Podział na 1MB i okienko 64KB (minus 16 bajtów) obszaru HMA są jak najbardziej fizyczne i wynikają z ilości nóżek które ma procesor 8086. > -systemy 32-bitowe widzą pamięć jako jedną całość bez żadnych podziałów > W zasadzie tak. Ale obszar pomiędzy 640kb a 1MB i tak jest niedostępny, bo tam siedzą BIOS-y i pamięć peryferiów. Poza tym standardowy kontroler DMA widzi tylko pierwsze 16MB, i trzeba o tym pamietać programując np. kartę muzyczną. -- WARNING: my e-mail is encrypted by ROT13 Xbaenq Fgrcvra <xbaenq@vagreqngn.arg.cy>
Re: tryb rzeczywisty
Author: janusz
Date: Sun, 18 Jun 2006 20:39
Date: Sun, 18 Jun 2006 20:39
18 lines
1744 bytes
1744 bytes
Sep napisał: > a skoro już o pamięci: [ciach] > -pierwszy obszar 64kb powyżej 1mb to pamięć wysoka HMA (high memory area) Dziwne, kiedyś miałem 80286 z 1 MB RAM i grafiką Hercules. Odpowiednio dobrane sterowniki HMA/XMS/UMB (nie od Microsoftu, znalezione chyba na SimTelu) dawały efekt taki, że polecenie mem pokazywało, że DOS jest w HMA, wszystkie sterowniki i rezydenty (a było ich razem 170 KB) są w blokach UMB, a pamięci podstawowej mam 720 KB (słownie: siedemset dwadzieścia kilobajtów). Wielkość pamięci podstawowej sprawdzałem też przy użyciu innych programów. Rzeczywiście wychodziło, że mam 720 KB pamięci podstawowej. j..
Re: tryb rzeczywisty
Author: Konrad Stepien
Date: Tue, 20 Jun 2006 10:45
Date: Tue, 20 Jun 2006 10:45
36 lines
2648 bytes
2648 bytes
janusz <janusz.lepionko@poczta.onet.pl> napisał(a): > Sep napisał: > >> a skoro już o pamięci: > > [ciach] > >> -pierwszy obszar 64kb powyżej 1mb to pamięć wysoka HMA (high memory area) > > Dziwne, kiedyś miałem 80286 z 1 MB RAM i grafiką Hercules. > Odpowiednio dobrane sterowniki HMA/XMS/UMB (nie od Microsoftu, > znalezione chyba na SimTelu) dawały efekt taki, że polecenie mem > pokazywało, że DOS jest w HMA, wszystkie sterowniki i rezydenty DOS w HMA to potrafił już DOS-5.0 na 80286. XMS też na 286 działał. Jedyne czego nie potrafił DOS na 286 to załadować emm386.exe. A właśnie emm386 ubsługiwał UMB (czyli loadhisgh i devicehigh). Jiedyś bawiłem się ustrojstwem o nazwie emm286.exe które robiło mniej więcej to co napisałeś. > (a było ich razem 170 KB) są w blokach UMB, a pamięci podstawowej > mam 720 KB (słownie: siedemset dwadzieścia kilobajtów). > Wielkość pamięci podstawowej sprawdzałem też przy użyciu innych > programów. Rzeczywiście wychodziło, że mam 720 KB pamięci podstawowej. > Bo tak na prawdę to pamięć podstawowa od UMB się niewiele rózni, oprócz nazwy i adresu (UMB sa powyżej 640 kilobajta). Procesor (nawet 8086) jest w stanie zaadresować UMB bez żadnych trików. Jedyne co musi zapewnić system, to rozsądne procedury przydzialania bloków powyżej 640kb, tak żeby nie wpakować się na przestrzeń adresową jakiegoś urządzenia. Po to zresztą przełączniki "I=zakres" i "X=zakres" w paramatrach emm386.exe -- WARNING: my e-mail is encrypted by ROT13 Xbaenq Fgrcvra <xbaenq@vagreqngn.arg.cy>
Re: tryb rzeczywisty
Author: janusz
Date: Thu, 24 Aug 2006 13:56
Date: Thu, 24 Aug 2006 13:56
57 lines
3374 bytes
3374 bytes
Użytkownik Konrad Stepien napisał: > janusz <janusz.lepionko@poczta.onet.pl> napisał(a): > >>Sep napisał: >> >> >>>a skoro już o pamięci: >> >>[ciach] >> >> >>>-pierwszy obszar 64kb powyżej 1mb to pamięć wysoka HMA (high memory area) >> >>Dziwne, kiedyś miałem 80286 z 1 MB RAM i grafiką Hercules. >>Odpowiednio dobrane sterowniki HMA/XMS/UMB (nie od Microsoftu, >>znalezione chyba na SimTelu) dawały efekt taki, że polecenie mem >>pokazywało, że DOS jest w HMA, wszystkie sterowniki i rezydenty > > > DOS w HMA to potrafił już DOS-5.0 na 80286. XMS też na 286 działał. Tylko że sterownik HMA od Microsoftu na mojej maszynie zżerał więcej pamięci podstawowej niż odzyskiwałem dzięki umieszczeniu DOS w HMA. Dlatego w ogóle poszukałem sterowników innej produkcji. > Jedyne czego nie potrafił DOS na 286 to załadować emm386.exe. > A właśnie emm386 ubsługiwał UMB (czyli loadhisgh i devicehigh). > Jiedyś bawiłem się ustrojstwem o nazwie emm286.exe które robiło > mniej więcej to co napisałeś. Ja używałem czegoś innego. To były dwa pliki. Nazwy były w stylu UMB*.sys Mój config.sys się od ich wywołania zaczynał. Reszta sterowników była devicehigh=... > > >>(a było ich razem 170 KB) są w blokach UMB, a pamięci podstawowej >>mam 720 KB (słownie: siedemset dwadzieścia kilobajtów). >>Wielkość pamięci podstawowej sprawdzałem też przy użyciu innych >>programów. Rzeczywiście wychodziło, że mam 720 KB pamięci podstawowej. >> > > Bo tak na prawdę to pamięć podstawowa od UMB się niewiele rózni, oprócz > nazwy i adresu (UMB sa powyżej 640 kilobajta). Procesor (nawet 8086) jest > w stanie zaadresować UMB bez żadnych trików. Jedyne co musi zapewnić > system, to rozsądne procedury przydzialania bloków powyżej 640kb, tak > żeby nie wpakować się na przestrzeń adresową jakiegoś urządzenia. > Po to zresztą przełączniki "I=zakres" i "X=zakres" > w paramatrach emm386.exe Dowcip w tym, że miałem 720 KB pamięci _podstawowej_ i to jako ciągły obszar. Żeby sprawdzić, czy to rzeczywistośc, a nie dowcip od systemu, uruchomiłem kiedyś program, który alokował 700 KB - działał. j..
Re: tryb rzeczywisty
Author: Konrad Stepien
Date: Thu, 24 Aug 2006 20:58
Date: Thu, 24 Aug 2006 20:58
35 lines
2598 bytes
2598 bytes
> Ja używałem czegoś innego. To były dwa pliki. > Nazwy były w stylu UMB*.sys > Mój config.sys się od ich wywołania zaczynał. > Reszta sterowników była devicehigh=... > Ano było parę zamienników, qemm i parę innych. Nazw teraz nie pomnę. >> >> >>>(a było ich razem 170 KB) są w blokach UMB, a pamięci podstawowej >>>mam 720 KB (słownie: siedemset dwadzieścia kilobajtów). >>>Wielkość pamięci podstawowej sprawdzałem też przy użyciu innych >>>programów. Rzeczywiście wychodziło, że mam 720 KB pamięci podstawowej. >>> >> >> Bo tak na prawdę to pamięć podstawowa od UMB się niewiele rózni, oprócz >> nazwy i adresu (UMB sa powyżej 640 kilobajta). Procesor (nawet 8086) jest >> w stanie zaadresować UMB bez żadnych trików. Jedyne co musi zapewnić >> system, to rozsądne procedury przydzialania bloków powyżej 640kb, tak >> żeby nie wpakować się na przestrzeń adresową jakiegoś urządzenia. >> Po to zresztą przełączniki "I=zakres" i "X=zakres" >> w paramatrach emm386.exe > > > Dowcip w tym, że miałem 720 KB pamięci _podstawowej_ i to jako ciągły > obszar. Żeby sprawdzić, czy to rzeczywistośc, a nie dowcip od systemu, > uruchomiłem kiedyś program, który alokował 700 KB - działał. > Ale w czy w jednym bloku? Szok to je przeżyłem jak zainstalowałem OS/2. On też w trybie rzeczywistym raportował sporo ponad 700k konwencjonalnej, w dodatku nie trzeba było ładować driverów od myszki, CD-ROM-u i innych duperali. -- WARNING: my e-mail is encrypted by ROT13 Xbaenq Fgrcvra <xbaenq@vagreqngn.arg.cy>
Re: tryb rzeczywisty
Author: M. "SeP"
Date: Thu, 28 Sep 2006 17:42
Date: Thu, 28 Sep 2006 17:42
25 lines
2618 bytes
2618 bytes
jeszcze raz powrócę do tego co było na początku ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > Witam! > Z tego co wiem tryb rzeczywisty daje możliwość dostępu tylko do 1mb > pamięci > (i 64kb pamięci bezpośrednio nad nim zwany pamięcią wysoką). > Więc jak to niby jest, że DOS pracujący rzekomo w trybie rzeczywistym po > załadowaniu himem.sys ma dostęp do pamięci rozszerzonej? himem.sys udostępnia funkcje zarządzające pamiecią XMS. Zasadniczo to pozwala alokować bloki pamięci XMS i przesyłać dane między tymi blokami a pamięcią rzeczywistą. I to z zasadzie tyle. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ale o ile rozumiem DOS nadal pracuje w trybie rzeczywistym, tak?? w przypadku EMS była tworzona ramka w obrębie UMB, która jeździła po całej pamięci. a w przypadku XMS?? bo rozumiem, że takiej ramki nie ma pamięć powyżej 1mb jest widziana w sposób ciągły. więc jak to pogodzić z trybem rzeczywistym? i co to jest ten DOS protected mode? rozumiem, że wprowadza ochronę pamięci (ale nie wielozadaniowość), ale jak to pogodzić z pracą w trybie rzeczywistym
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads