int 08, co w nim siedzi

0

Mam pytanie dotyczące przerwani 08. jest to przerwanie biosu, które ponoć realizuje rzeczywisty czas systemu operacyjnego. przerwanie polecane dla programistów to przerwanie 1C które mozna modyfikować, jednak interesuje mnie przerwanie 08 a dokładniej jakie funkcjie ono spełnia poza uaktualnianiem czasu zegara systemowego.

Co spowoduje zastapienie tego przerwania własną procedurą przerwania (nie mówie tutaj o utracie czasu systemowego bo o tym to wiem)?

jakiego polecili byście mi debugera zeby przeanalizowac sobie kod standardowej procedury tego przerwania?

0

Przejrzałem biblioteczkę, znalazłem książkę DOS od środka.
Przyczyna:

Zgłoszenie przez układ 8524 przerwania (około 18,2 raza na sekundę).

Reakcja Biosu:

Zwiększenie zegara czasu systemowego (zmiennej TIMER_LOW i TIMEr_HIGH), zmniejszenie licznika czasu włączenia silnika obracającego dyskietkę i ewentualne jego wyłączenie:-/ oraz wykonanie przerwania 1CH.

0

Dzieki wielkie.

Mi udało sie uŻyć debugera TURBO DEBUGER i odnalzłem zawartość całej procedurki tego przerwania.
przejżałem ja. i co do czasu to sie wszystko zgadza. Równiez jest wywoływane przerwanie 1C tak jak mówisz. Ale o dyskietce nie wiedziałem. więc dzieki wielki za informacje.

Ale co do czasu samego WINDOWSA to nie jestem pewny czy Windows realizuje czas po przez to przerwanie. Bo udało mi sie napisac program który programuje układ 8254 i kaze mu przerywac np 50 razy na sekunde. a więc to przerwanie 08 jest wywoływane az 50 razy na sekunde czyli czas powinien lecieć bardzo szybko do przodu, a niestety tak sie nie dzieje i czas nadal płynie tak jak powinien.

Nie wiem moze windows uzywa RTC (real time clock) ale o tym tez słyszałem ze są to ukłądy wbudowywane nie we wszystkich komputerach. więc co tak naprawde realizuje czas w Windows?

0

O ile pamiętam, to Windows pobiera czas z BIOSu w momencie ładowania i później go nie dotyka [poza wymuszeniem zmiany czasu]. Jak dokładnie realizowana jest aktualizacja, to już nie pamiętam.

Stare gry pod DOSa często przyspieszały zegar bo 18.2Hz było zbyt mało by odświeżać stan gry. Przejmowały wtedy raczej przerwanie 8, nie 1c - przynajmniej z takimi się spotkałem i sam tak robiłem dla swoich potrzeb. To samo z klawiaturą, IRQ1 [czyli przerwanie 9].

0

W Windowsie, jak we wszystkim, co działa w trybie chronionym, przerwanie numer 8 to jeden z wyjątków procesora, konkretnie double fault, więc na pewno to przerwanie pod nim wiele wspólnego z zegarem nie ma.

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