- posted
18 years ago
BIOS
- posted
18 years ago
- posted
18 years ago
Radoo:
jak nic nie będzie wyświetlać na ekranie, to po grzyba driver TFT do biosa?
Jak to mawiano: przed laaty robiłem coś takiego, ale na symulatorze. Znaczy drivery do RSa, drukarki, CRT z generatorem znaków (na Motorole
68000). Zrobić BIOSA to nie jest zabawa na tydzień, tylko raczej na rok. W razięco mam listing BIOSA do IBM-XT, niestety tylko na papierze i dość kiepska kopia. Wszystkiego 100 stron assemblera, ale dobrze skomentowane.Waldek
- posted
18 years ago
- posted
18 years ago
oglądnąłem PDFa. To robota na lata. Nie możesz podejść do problemu pragmatycznie? Choćby załączanie monitora dopiero w aplikacji? Rozumiem, że denerwuje litania startowa BIOSa? Może istnieje możliwość wyłączenia tego w oryginalnym BIOSie lub dorobienie własnego logo, które "zasłaniałoby" oryginalny listing. Takowe możliwości istnieją w większości embedded computer. Pisanie BIOSa od małego to naprawdę cholerna robota i znaczne koszty (ludzie, nerwy i telefon). Wiele firm nie zdradza detali hardware, a tu musisz zejść robaczkom na nogi. Tak dla informacji dla ciebie: pisałem kiedyś protected mode driver do karty graficznej i musiałem ominąć cały BIOS. Pisanie zajęło mi 3 miesiące. A to tylko dlatego, że nie miałem paru "drobnych" informacji chipseta (które rejestry do czego służą). Na szczęście firma była amerykańska i można było sobie z nimi pogadać, na nieszczęście zbyt hojni informacyjnie nie byli. W sumie robiłem reverse engeneering biosa karty. Nie życzę wrogowi takiej zabawy, szczególnie jak szef nad głową siedzi wkurwion, że jeszcze nie gotowe.
Waldek
- posted
18 years ago
Hi Radoo!
Ja nie pisalem, ani nie znam osobiscie nikogo, kto pisal. Ale jest taki sobie projekt ...
- posted
18 years ago
- posted
18 years ago
pogadaj (choćby emailowo) z firmą. Może ma jakieś firm-logo albo podobne. Ewentualnie zrób pseudo-hardware, czyli eprom z driverem w przestrzeni adresowej > 0xA0000 i starcie mod 0x400, jak np. stare karty ISA mają, wgrywającym logo twojej firmy na ekran i już masz cusik lepszejszego ;-) Ale mnie tam wsio rawno. Sprzedajemy urządzenia za 50kEUR i meldują się one jako Windows 2000 Professional ;-) Nawet na stacji ISS. Różnią się od innych PCtów na stacji tym, że jest na nich naklejka: It is not PC! For ETD purpose only! Może lipa, ale ważne, że działa ;-)
Waldek
- posted
18 years ago
- posted
18 years ago
ja pisałem kiedyś ćwiczebnie taki mały kod, który odpala się podczas POST - cos takiego jak BIOS na karcie grafiki czy kontrolerze SCSI.
- posted
18 years ago
ja wiem? Chyba wszyscy nabywcy hafciarek ZSK tak mają: Amd K100, LCD, Win 3.11de :-) A chyba kosztują więcej niż 50k
- posted
18 years ago
- posted
18 years ago
A aplikacja korzysta z funkcji BIOS czy nie ?
Generalnie - BIOS to dzis ze 128KB kodu. Sam od poczatku, bez dokumentacji, szybko tego nie napiszesz.
Sugeruje wyszukac to co sie na ekranie pojawia ... i wyspacjowac. Albo przesledzic start i wywali procedury drukowania tych tekstow.
A moze .. wiele wspolczesnych biosow ma miejsce na wgranie logo producenta .. wrzuc tam pusta bitmape. Zaleta ze w razie klopotow mozna ja wylaczyc i ogladac komunikaty ..
J.
- posted
18 years ago
- posted
18 years ago
da się, ale to robota głupiego. Idziesz do adresu zawartego w wektorze przerwań reset i masz adres bootstrap loadera. Inne funkcje BIOSa też tak znajdziesz. Wektory przerwań są na początku przestrzeni adresowej.
Radzę ci, zostaw BIOSa i zrób swój własny, dodatkowy BIOS. Jak to się robi? Tu krótki opis (z IBM-XT reference manual):
During the POST interrupt vectors are established for the BIOS calls. After the default vector are in place, a scan for additional ROM modules takes place. At this point a ROM routine on the adapter card may gain control. The routine may establish or intercept interrupt vectors to hook themselves into the system. The absolute adresses 0xC8000 through 0xF4000 are scanned in 2K blocks in search for a valid adapter card ROM. A valid ROM is defined as follows: Byte 0: 0x55 Byte 1: 0xAA Byte 2: length of the ROM in 512 bytes blocks The checksum of the ROM (modulo 0x100) must be 0
When the POST identifies a valid ROM, it does a far call to byte 3 of the ROM....The feature ROM should return control to BIOS routines by executing a far return.
Jak widać, nie musisz nic mieszać w oryginalnym BIOSie, tylko dodajesz swój. Jak swój dodasz po adapterze TFT, to możesz przemapować jego wektor przerwań na siebie i dopiero w swojej aplikacji go przegiąć z powrotem.
Waldek
- posted
18 years ago
chyba mam jeszcze mały programik liczący tę sumę
- posted
18 years ago
Nobla za niego nie dostaniesz ;-)
Sumujesz wszystkie bajty olewając przeniesienie i już jest wynik.
Waldek
- posted
18 years ago
[...]
Jest maly problem - czy pozniejsza czesc bios korzysta z przerwan-funkcji, czy wali prosto do pamieci video :-)
No chyba zeby wygasic ekran i moze podmienic procedure inicjacji ..
J.
- posted
18 years ago
ino wypróbować.
na przykład. Albo jakieś logo wstawić.
Waldek
- posted
18 years ago
Wiekszosc nowych komputerow ma opcje wyswietlania pelnoekranowego logo (zamiast komunikatow), przewaznie jest to logo producenta plyty glownej. Mozna to logo podmienic, mozna tez wstawic czarna bitmape a w biosie ustawic, zeby pokazywal logo. A jak ktos bedzie chcial zobaczyc komunikaty to wtedy wcisnie przy starcie [TAB]. :-) Przynajmnie ja mam takie duze logo na plytach MSI, bios AMI.