Komputery klasy PC Dariusz Chaberski
Start systemu adres 0xFFFF:0x0000 POST (ang. Power On Self Test) sprawdzenie zmiennej BIOSu 0x0040:0x0072-0x1234 - zimny start (RESET, włączenie zasilania), gorący start (CTRL ALT DEL) zimny start test procesora (typowe instrukcje, rejestry) test pamięci ROM (sprawdzana jest suma kontrolna i porównywana z sumą znajdującą się na końcu pamięci) test pamięci RAM (zapisywanie i odczytywanie wartości testowych 0xAF, 0x05, itp) test specjalizowanych układów scalonych (kontrolery przerwań, bezpośredniego dostępu do pamięci, układy czasowe, wejścia wyjścia itp) test klawiatury, karty graficznej, stacji dysków, dysków twardych itp. test rozszerzonej pamięci ROM początek bloku pamięci 0x55:0xAA:N, N=[0,255] - liczba 512 bajtowych bloków wykonanie podprogramów tam zamieszczonych ustawienie wektorów przerwań inicjalizacja kart rozszerzeń 2
POST (ang. Power On Self Test) zimny start pod adres 0000:7C00 ładowana jest zawartość sektora 1 ścieżki 0 głowicy 0 (MBR) pierwszej/aktywnej stacji dysków jeśli sektor zakończony jest bajtami 0x55, 0xAA wykonanie programu pod adresem 0000:7C00 gorący start - zimny start oprócz testu pamięci RAM Mapa pamięci (tryb rzeczywisty 1 MB) F000:0000-FFFF:000F - BIOS A000:0000-F000:0000 - pamięć ROM kart rozszerzeń (karta graficzna VGA) 0060:0000-A000-0000 - pamięć operaracyjna RAM 0040:0000-0060:0000 - zmienne BIOSu 0000:0000-0040:0000 - wektory przerwań 3
Kontroler DMA 0000-001f : dma1 (podrzędny, kanały 0,1,2,3) 00c0-00df : dma2 (nadrzędny 0, kanały 5(1),6(2),7(3)) DMA Page Registers (Low) 0x87 r/w Channel 0 Low byte (23-16) page Register 0x83 r/w Channel 1 Low byte (23-16) page Register 0x81 r/w Channel 2 Low byte (23-16) page Register 0x82 r/w Channel 3 Low byte (23-16) page Register 0x8b r/w Channel 5 Low byte (23-16) page Register 0x89 r/w Channel 6 Low byte (23-16) page Register 0x8a r/w Channel 7 Low byte (23-16) page Register 4
DMA Page Registers (High) 0x487 r/w Channel 0 High byte (bits 31-24) page Register 0x483 r/w Channel 1 High byte (bits 31-24) page Register 0x481 r/w Channel 2 High byte (bits 31-24) page Register 0x482 r/w Channel 3 High byte (bits 31-24) page Register 0x48b r/w Channel 5 High byte (bits 31-24) page Register 0x489 r/w Channel 6 High byte (bits 31-24) page Register 0x48a r/w Channel 7 High byte (bits 31-24) page Register 5
DMA High byte word count 0x401 r/w Channel 0 High byte (bits 23-16) word count 0x403 r/w Channel 1 High byte (bits 23-16) word count 0x405 r/w Channel 2 High byte (bits 23-16) word count 0x407 r/w Channel 3 High byte (bits 23-16) word count 0x4c6 r/w Channel 5 High byte (bits 23-16) word count 0x4ca r/w Channel 6 High byte (bits 23-16) word count 0x4ce r/w Channel 7 High byte (bits 23-16) word count 6
0x00-0x1f DMA Controller #1 (Channels 0, 1, 2 and 3) DMA Address and Count Registers 0x00 write Channel 0 starting address 0x00 read Channel 0 current address 0x01 write Channel 0 starting word count 0x01 read Channel 0 remaining word count 0x02 write Channel 1 starting address 0x02 read Channel 1 current address 0x03 write Channel 1 starting word count 0x03 read Channel 1 remaining word count 0x04 write Channel 2 starting address 0x04 read Channel 2 current address 0x05 write Channel 2 starting word count 0x05 read Channel 2 remaining word count 0x06 write Channel 3 starting address 0x06 read Channel 3 current address 0x07 write Channel 3 starting word count 0x07 read Channel 3 remaining word count 7
DMA Command Registers 0x08 write Command Register 0x08 read Status Register 0x09 write Request Register 0x09 read - 0x0a write Single Mask Register Bit 0x0a read - 0x0b write Mode Register 0x0b read - 0x0c write Clear LSB/MSB Flip-Flop 0x0c read - 0x0d write Master Clear/Reset 0x0d read Temporary Register (not available on newer versions) 0x0e write Clear Mask Register 0x0e read - 0x0f write Write All Mask Register Bits 0x0f read Read All Mask Register Bits (only in Intel 82374) 8
0xc0-0xdf DMA Controller #2 (Channels 4, 5, 6 and 7) DMA Address and Count Registers 0xc0 write Channel 4 starting address 0xc0 read Channel 4 current address 0xc2 write Channel 4 starting word count 0xc2 read Channel 4 remaining word count 0xc4 write Channel 5 starting address 0xc4 read Channel 5 current address 0xc6 write Channel 5 starting word count 0xc6 read Channel 5 remaining word count 0xc8 write Channel 6 starting address 0xc8 read Channel 6 current address 0xca write Channel 6 starting word count 0xca read Channel 6 remaining word count 0xcc write Channel 7 starting address 0xcc read Channel 7 current address 0xce write Channel 7 starting word count 0xce read Channel 7 remaining word count 9
DMA Command Registers 0xd0 write Command Register 0xd0 read Status Register 0xd2 write Request Register 0xd2 read - 0xd4 write Single Mask Register Bit 0xd4 read - 0xd6 write Mode Register 0xd6 read - 0xd8 write Clear LSB/MSB Flip-Flop 0xd8 read - 0xda write Master Clear/Reset 0xda read Temporary Register (not present in Intel 82374) 0xdc write Clear Mask Register 0xdc read - 0xde write Write All Mask Register Bits 0xdf read Read All Mask Register Bits (only in Intel 82374) 10
Programowalny kontroler przerwań 0020-0021 : pic1 00a0-00a1 : pic2 Programowalny układ czasowy 0040-0043 : timer0 0050-0053 : timer1 11