Console aplication a DOS

0

Czy aplikacje konsolowe mozna odpali cpozniej w dosie? Aplikacje takie sa 32 bitowe a dos jest 16 bitowy - to robi roznice czy nie?

0

robi rónice i aplikacji 32 bitowej nie odpalisz na dosie

0

robi rónice i aplikacji 32 bitowej nie odpalisz na dosie

Nie do konca, roznica miedzy programem konsolowym a dosowym polega na tym ze aplikacja pod winde wymaga kernela windowsa i zaladowanych bibliotek., natomiast pod dosa czy to 16 czy 32 bit nie wymaga praktycznie zadnych dodatkow...

1

robi rónice i aplikacji 32 bitowej nie odpalisz na dosie

Nie do konca, roznica miedzy programem konsolowym a dosowym polega na tym ze aplikacja pod winde wymaga kernela windowsa i zaladowanych bibliotek., natomiast pod dosa czy to 16 czy 32 bit nie wymaga praktycznie zadnych dodatkow...

Teraz moja kolej na "nie do konca" ;>
Problem obawiam sie ze na tym sie nie konczy. Dlaczego? Pare prostych faktow

  1. budowa pliku exe. dos wymaga 16bitowego pliku rozpoczynajacego sie od MZ, z odpowiednim headerkiem etc..a pozniej programem wlasciwym ew przejscie na 32 bity musi znaleŹĆ sie w tymze pliku, tj musi byc zaimplementowane przejscie z trybu real do trybu protected, gdyz dos sam tego nie zrobi..
    natomiast exeki windowe, PE (portable executable), maja budowe jakby dwuczesciowa. w pierwszej czesci jest krociotki 16stobitowy program dosowy (tj korzysta z przerwan dosa ;>) ktory wypisuje na ekranie tekst "This program cannot be run in DOS mode.\r\r\n" i wychodzi.
    programik ten NIE wykrywa czy jest zaladowny kernel, NIE sprawdza czy jest pod windowsem. wypisuje tekst i wychodzi. Dos go uruchamia, jako ze jest zgodny z dosowym formatem i ma wszystko na miejscu.
    Natomiast "prawdziwy" program windowy znajduje sie troche pozniej. Jego naglowek zaczyna sie od liter PE, potem sa opisane sekcje, a potem wkoncu kod i dane.
    DOS sam z siebie nie umie tego header przeczytac ani nic z nim zrobic (jako ze PE byl wymyslony po erze dosa ;p)

Tak ze nieprawda jest ze wystarczyl by kernel w pamieci zainicjowany zeby program konsolowy dzialal pod DOSem. Czysto teoretycznie mozna by dac odpowiednia (niezwykle dluga i pewnie niezle popiepszona) wstawke dosowa ktora by emulowala odrobine winde (na tyle zeby aplikacje konsolowe dzialaly) i przechodzila do trybu chronionego. Ale to mija sie odrobine z celem. Lepiej napisac port programu do DOSa ;>

1 użytkowników online, w tym zalogowanych: 0, gości: 1