Problem z pamięcią

0

Mam problem z programem, który piszę w TP 7. Mianowicie program uruchamia także inne programy (Exec). Problem w tym że brakuje dla nich pamięci konwencjonalnej. Jeden z zewnętrznych programów wymaga minimum 570 kB, a mój program zajmuje w pamięci ponad 130 kB. Myślałem o umieszczeniu programu w pamięci xms, lec nie za bardzo wiem jak to zrobić. Proszę o pomoc. Z góry dzięki!

endrique
  • Rejestracja:około 21 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:Kraków
0

z tego co pamiętam (ale mogę się mylić) to coś się wpisywało w CONFIG.SYS tylko nie pamiętam co to było a leciało to jakoś tak:
DEVICE=C:.........ścieżka do pliku+\XMS.COM............
tylko nie wiem jak teraz pod windowsem to zadziała :|

Marmar
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 2 lata
  • Postów:317
0

Nie slyszalem o czyms takim - tryb rzeczywisty to tryb rzeczywisty i nie ma wyzszych adresow niz 1MB. Mozna podniesc próg 640 kb wykorzystujac pamiec uper ale to bedzie gora 120kb wiecej. Wiem ze jest mozliwosc wykorzystania do 16MB pamięci "extended". Mam gdzies nawet kod do tego ale to dziala na zasadzie jakby dysku , to znaczy program nie bedzie tam ladowal zmiennych tylko sam musisz sobie tam kopiowac i stamtad "znosic" do pamieci ponizej 640 KB, jak w przypadku pliku tyle ze szybciej(choc nieporownwalnie wolniej niz dostep bezposredni do pamieci)

No i jeszcze jedno wyjscie - uzyj borland pascala w trybie chronionym jelsi masz taka mozliwosc.

ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:dzień
0

tak czy inaczej w trybie rzeczywistym nie ma możliwości wykonania kodu znajdującego się ponad adresem $FFFF:FFFF, czyli jesteś i tak ograniczony przez 1MB + 64kB - pamięć zajmowana przez dos - karta graficzna (96kB) - wszelakie sterowniki.
tyle pamięci wygospodarujesz odpalając z config.sys następujące polecenia:
device=C:\WINDOWS\himem.sys
device=C:\WINDOWS\emm386.exe RAM I=B000-B7FF
i usuwając co tylko się da jeśli chodzi o inne sterowniki (polecenie mem powie Ci, co jest uruchomione i zżera pamięć, szczególnie mem /d i mem /c).


Qyon
  • Rejestracja:około 21 lat
  • Ostatnio:około 14 lat
0

Skoro programujesz w TP7 to kompilacje uruchom nie z edtora TURBO.EXE tylko TPX.EXE raczej pomoze.


Pozdrawiam czy jak tam...


JKM czy HGW?
0

Dzięki za wszystką pomoc :). Na pewno wypróbuję wszystkie sposoby. BP7 w protected próbowałem ale nie działa. Wyskakuje błąd RE 206 - "General protection fault". Z pewnością spowodowane jest to tym, że w programie znajduje się odniesienie Mem[...]
Dzięki za pomoc. Pozdro!

flabra
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 12 lat
0

Jeśli uzywasz bp7+PM, to poprzez tablicę mem mozesz się odwoływać tylko do segmentów które maja zdefiniowane deskryptory. Albo sam takowe tworzysz (nie mam zielonego pojęcia jak), albo korzystasz ze zdefiniowanych - seg... (np. sega000)


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa. 'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E' extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers
0

Jeszcze jedno małe pytanko: gdzie mógłbym pobrać plik TPX.exe?

Szymek
  • Rejestracja:prawie 23 lata
  • Ostatnio:prawie 3 lata
0

Fajnie to rozwiązywał Norton Commander.

Składał się z dwóch plików NC.EXE i NCMAIN.EXE.
Po uruchiomieniu NC.EXE uruchamiał NCMAIN.EXE (cały interfejs itd.), nastepnie kiedy chciało się uruchomić program, NCMAIN zapisywał jaki program z jakimi parametrami (chyba do pliku) i kończył działanie z odpowiednim ExitCode, a nastepnie NC.EXE uruchiamiał zlecony program, a po jego zakończeniu z powrotem NCMAIN.EXE

Qyon
  • Rejestracja:około 21 lat
  • Ostatnio:około 14 lat
0

Nie masz pliku tpx.exe w Katalogu bin ??? Dziwne ... ja mam... Jak chcesz to wyslij mi maila to Ci go podeślę... W zamian [browar] ;-)


JKM czy HGW?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.