Adapter ROM BIOS. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Podobné dokumenty
Vysoké učení technické v Brně Fakulta informačních technologií ITP Technika personálních počítačů Služby ROM BIOS a BootROM

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Technika personálních počítačů, cvičení ITP Služby ROM BIOS a BootRom

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Strojový kód. Instrukce počítače

Fakulta informačních technologií, VUT v Brně Ústav počítačových systémů Personální počítače, technická péče, cvičení. Sběrnice ISA

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Principy komunikace s adaptéry periferních zařízení (PZ)

Procesor z pohledu programátora

External ROM 128KB For Sinclair ZX Spectrum

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

x86 assembler and inline assembler in GCC

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Řízení IO přenosů DMA řadičem

1. Seznamte se s výukovou platformou FITkit (

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

MIDAM Verze 1.1. Hlavní okno :

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

MCP BIOS řídicí jednotky Kit386EXR

frekvence 8 Mhz, přestože spolupracuje s procesori různe rychlými. 16 bitová ISA sběrnice je

Metody připojování periferií BI-MPP Přednáška 2

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Komunikace procesoru s okolím

Program "Světla" pro mikropočítač PMI-80

Model ver SYSTEM EXCLUSIVE KOMUNIKACE CHD Elektroservis

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Příručka k programu Computer Setup (F10) modely dx7500 Kancelářský počítač HP Compaq

Struktura a architektura počítačů (BI-SAP) 7

Přerušovací systém s prioritním řetězem

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Princip funkce počítače

Periferní operace využívající přímý přístup do paměti

TECHNICKÝ POPIS MODULU GRAFIK =============================

ISU Cvičení 7. Marta Čudová

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

FPC - Převodník pro čínské čtečky F17 a F18 - podrobný popis služeb a příkazů -

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Pohled do nitra mikroprocesoru Josef Horálek

Popis programu EnicomD

PROTOKOL O LABORATORNÍM CVIČENÍ

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Assembler - 2.část. poslední změna této stránky: Zpět

8. Laboratoř: Aritmetika a řídicí struktury programu

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

KEYBPTZ3DL8VGA. uživatelský manuál

Příručka k nástroji Computer Setup (F10) Počítače HP Elite 7000 MT Series PC

Registrový model HDD

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

Střední škola spojů a informatiky Tábor

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

PROCESOR. Typy procesorů

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Pokladní tiskárna s řezačkou PRP-T3

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

Komunikační protokol snímače rel. vlhkosti SV-xxx-x

10 Algoritmizace Příklad 2 Word 2007/ VBA

Projekt: Přístupový terminál

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Struktura a architektura počítačů (BI-SAP) 9

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Periferní operace využívající přerušení

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Assembler - 4.část. poslední změna této stránky: Zpět

Základy digitální techniky

Architektury VLIW M. Skrbek a I. Šimeček

09. Memory management. ZOS 2006, L.Pešička

MIDAM UC 301 modbus regulátor topeni, otočné tlačítko, RTC, 2xDO, 1x DI, externí odporové čidlo PT1000, RS485

Návod na práci s přípravkem a programem uscope na cvičeních

Základní deska (mainboard, motherboard)

Architektury počítačů a procesorů

Profilová část maturitní zkoušky 2014/2015

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Periferní operace využívající přerušení

Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

O čem bude předmět X36PZ A?

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Obvody a architektura počítačů. Jednoprocesorové počítače

Struktura a architektura počítačů (BI-SAP) 10

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Periferní operace využívající přerušení

Návrh ovládání zdroje ATX


3. Počítačové systémy

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Téma 10: Správa hardwarových zařízení a ovladačů II

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Externí zařízení. Uživatelská příručka

Činnost počítače po zapnutí

Metody připojování periferií

Cíle. Teoretický úvod

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Transkript:

Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky 10 Personální počítače, technická péče cvičení Adapter ROM BIOS Zadání 1. Seznamte se s konstrukcí cvičné zásuvné adaptérové desky do PC, zejména pak s konstrukcí paměťového podsystému. 2. Seznamte se s mechanismem rozpoznávání přídavných ROM BIOSu při Power On Self Testu. 3. Navrhněte obsah paměti RAM na desce tak, aby bylo po restartu počítače předáno řízení do obslužné rutiny v této paměti. Tato rutina by se měla projevit (vizuálně nebo akusticky) a po stisku klávesy vrátit řízení BIOSu, který by plynule pokračoval v zavádění operačního systému. Blokové schéma adaptérové desky 74573 SEG datová sběrnice obousměrný oddělovač datové sběrnice vnitřní datová sběrnice adresní sběrnice řídící signály GAL20V8 CSG IOR CSSEG IOW záchytný obvod displejů 74541 DIP G oddělovač DIP přepínačů CSDIP AEN CSCFG MEMW 74573 CFG CSRAM A0..A9, A16..A19 Q0 obvod nulování žádosti o přerušení 62256 RAM volatile paměť 32KB A0..A14 řídící signály sběrnice ISA 74245 OE MEMR WE MEMW RS KLO IRQ R S 1 TLAČÍTKO

Detailní schéma adaptérové desky 2

Adaptérová deska Adaptérová deska ISA1 obsahuje následující: programovatelný adresový dekodér (GAL20V82) paměť RAM (32KB, 32768 8b, IO 62256) vstupní port DIP spínačů výstupní port LED segmentového displeje výstupní port potvrzení hardwarového přerušení tlačítko pro generování hardwarového přerušení Výstupní port potvrzování hardwarového přerušení je na adrese 300h, výstupní port LED segmentového displeje má adresu 301h, vstupní port DIP spínačů má adresu 302h. Paměť RAM je v segmentu D000h. Mechanizmus vyhledávání ROM: BIOS počítače hledá tzv. adapter ROMs od adresy 0C800:0000h po 2KB blocích. Pokud je na začátku bloku nalezena hlavička podle tab. 1, je kontrolován odpovídající blok paměti mechanismem ověření jednoduchého kontrolního součtu. Délka bloku je rovněž zjištěna z hlavičky. Mechanismus kontrolního součtu sečte všechny bajty udaného bloku modulo 256. Součet musí být nulový. To se obyčejně zajišťuje posledním bajtem obsahu ROM, který nemá žádný význam kromě toho, že je dvojkovým doplňkem součtu užitečného obsahu ROM. Zbytek bajtů do nejbližší adresy dělitelné 2048 bývá pro zajištění jejich neutrality při kontrole sečítáním nulový. Celý mechanismus vyhledávání adapter ROMs je vidět ve výpisu úseku zdrojového kódu hlavního BIOSu IBM PC AT na příloze 1 (převzato z [1]). 1 2 ISA = Industry Standard Architecture, 16bitová sběrnice pro PC AT, navržená v roce 1984 programovatelné logické pole, EECMOS 3

Offset Obsah 0 55h Identifikace hlavičky 1 AAh Identifikace hlavičky 2 Délka ROM v 512B blocích 3 Proveditelný kód n Dvojkový doplněk ke kontrolnímu součtu Tabulka 1Struktura paměti ROM První dva bajty musí nutně být 55h a AAh, neboť se podle nich poznává přítomnost ROM. Další bajt je délka ROM v 512B blocích. Například ROM s délkou 32kB bude mít zde číslo 64 (40h). Za tímto bajtem může následovat spustitelný kód. Návrat řízení BIOSu na systémové desce musí být realizováno instrukcí RETF. Celý obsah ROM (vč. hlavičky) je zajištěn kontrolním součtem, který je dán součtem všech bajtů obsažených v ROM mod 256. Takto spočítaný kontrolní součet musí mít nulovou hodnotu. Postup práce: 1. Nastudujte mechanizmus poznávání ROM BIOS při Power On Self Testu. Soustřeďte se na formát hlavičky a mechanizmus počítání kontrolního součtu. 2. Nakopírujte si soubor C:\PTP-ITP\sablona.zip do Vašeho adresáře a rozbalte. Po rozbaleni budete mit k dispozici soubory example.asm, template.asm a compile.bat, které mají následující význam: example.asm ukázkový příklad v assembleru, který zapne PC speaker a vyplní obrazovku znaky A. Program má stejnou funkci jako kód, který bude nahrán do paměti na adaptéru a bude aktivován při startu počítače. template.asm šablona programu, který musí zajistit správné nahrání rutiny BOOT_ROM do paměti na adaptéru tak, aby byla rutina vyvolaná při startu počítače (při Power On Self Test). Program obsahuje prázdná místa, do kterých je nutné doplnit správný kód. compile.bat dávka, pomocí které je možné přeložit soubory z assembleru do spustitelného tvaru. 3. Pomocí programu example.asm si můžete vyzkoušet, jak se bude projevovat obslužná rutina zapsaná programem template.asm do paměti adaptéru ISA. Program si můžete přeložit pomocí dávky compile.bat. Po spuštění by se měl rozeznít PC speaker a obrazovka se vyplnit znakem A. Stiskem klávesy ESC se PC speaker vypne a program se ukončí. 4. Upravte program template.asm tak, aby rutina uložená za návěštím BOOT_ROM byla nahrána do paměti adaptéru na adresu 0D000h a spuštěna při startu PC. K tomuto je nutná následujicí posloupnost kroků: a) Přidat na začátek rutiny BOOT_ROM správnou hlavičku. b) Na konec rutiny BOOT_ROM přidat správné ukončení. c) Je nunté k součtu všech bajtů rutiny BOOT_ROM vytvořit dvojkový doplněk. d) Spočtený dvojkový doplněk je nutné zapsat za rutinu BOOT_ROM (návěští chck). 4

e) Zapsat celou rutinu BOOT_ROM do paměti na adaptéru. Nezapomeňte zkopírovat všech 512 bajtů jeden celý blok. Pro zapsání programu můžete použít v cyklu instrukci movsb, která kopíruje jeden bajt z adresy DS:[SI] na adresu ES:[DI] a následně inkrementuje registry SI a DI o jedničku. Cyklus je možné implementovat instrukcí rep, která opakovaně provádí bezprostředně navazující instrukci. Například rep movsb provede opakovaně instrukci movsb. Hodnota registru CX určuje počet opakování této instrukce. 5. Po úpravě, přeložení a spuštění programu template.asm proveďte restart počítače. Při startu by se měla vyvolat rutina nahraná do paměti adaptéru. Chování rutiny by mělo být totožné s programem example.asm (zapne se reproduktor, obrazovka se vyplní znakem A a čeká se na stisk klávesy ESC). 6. Dle vlastního uvážení modifikujte obslužnou rutinu a sledujte provedené změny (např. změna vypisovaných znaků, výpis řetězce na obrazovku, atd.) Použitá literatura [1] IBM PC AT Technical Reference Manual, IBM 1985 [2] Vrátil, Z.: Architektura PC XT+AT, díl 2., Gethon Audio and Computer, 1992 5

Příloha 1 Úsek zdrojového kódu hlavního BIOSu IBM PC AT pro vyhledávání adapter ROMs ;CHECK FOR OPTIONAL ROM FROM C800->EOOO IN 2K BLOCKS (A VALID MODULE HAS "55AA" IN THE FIRST 2 ; LOCATIONS LENGTH lndicator (LENGTH/512) IN THE 3RD LOCATION AND TEST/INIT. CODE STARTING IN THE 4TH ;LDCATION) ROM_SCAN1: STI ;ALLOW INTERRUPTS AL,3BH ;<><><><><><><><><><><><> OUT MFG PORT,AL ;<><> CHECKPOINT 3B <><> DDS ;SET REAL MODE DATA SEGMENT AL,1O ;LINE FEED ON DISPLAY PRT_HEX ROM_SCAN: ; --- SET DMA MASK AND REQUEST REGISTERS AL,AL OUT DMA18+2,AL ;SEND ZERO TO MASK REGISTER JMP $+2 OUT DMA18+4,AL ;SEND ZERO TO REQUEST REGISTER DX,0C800H ;SET BEGINNING ADDRESS ROM_SCAN2: DS,DX PUSH DI ;SAVE WORK REGISTER DI,0AA55H ;GET TEST PATTERN BX,BX ;SET BX=OOOO AX,[BX] ;GET 1ST WORD FROM MODULE CMP AX,DI ;= TO ID WORD? POP DI ;RECOVER WORK REGISTER JNZ NEXT_ROM ;PROED TO NEXT ROM IF NOT ROM_CHECK ;GO CHECK OUT MODULE JMP SHORT ARE_WE_DONE ;CHECK FOR END OF ROM SPA NEXT_ROM: ADD DX,0080H ;POINT TO NEXT 2K ADDRESS ARE_WE_DONE: CMP DX,0E000H ;AT E0000 YET? JL ROM_SCAN2 ;GO CHECK ANOTHER ADD. IF NOT. ;TEST FOR KEYBOARD LOCKED.. ;ROM CHECKSUM ROUTlNE ROM_CHECKSUM PROC CX,CX NEAR ROM_CHECKSUM_CNT: XOR AL,AL ROM_L: ADD AL,[BX] INC BX LOOP ROM_L OR RET ROM_CHECKSUM AL,AL ;NUMBER OF BYTES TO ADD IS 64K ;ENTRY FOR OPTIONAL ROM TEST ;GET [DS,BX] ;POINT TO NEXT BYTE ;ADD ALL BYTES IN ROM MODULE ;SUM = 0? ENDP ;THIS ROUTlNE CHECKSUMS OPTIONAL ROM MODULES AND IF CHECKSUM IS OK, S INITIALIZATION/TEST CODE ;IN MODULE ROM_CHECK SHL SHR PROC NEAR AX,DATA ES,AX AH,AH AL,[BX+2] AX,9 CX,AX AX,4 ;POINT ES TO DATA AREA ;ZERO OUT AH ;GET LENGTH INDICATOR ;MULTIPLY BY 512 ;SET COUNT 6

ADD JZ DX,AX ;SET POINTER TO NEXT MODULE ROM_CHECKSUM_CNT;DO CHECKSUM ROM_CHECK_1 JMP ROM_ERR ;POST CHECKSUM ERROR SHORT ROM_CHECK_END ;AND EXIT ROM_CHECK_1: PUSH POP DX ;SAVE POINTER ES:@IO_ROM_INIT,0003H ;LOAD OFFSET ES:@IO_ROM_SEG,DS ;LOAD SEGMENT DWORD PTR ES:@IO_ROM_INIT ; INITIALIZE/TEST ROUTlNE DX ROM_CHECK_END: RET ROM_CHECK ;RETURN TO ER ENDP 7