Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- progr segment
- assume cs:progr, ds:dane
- start: mov ax,dane;
- mov ds,ax
- ; czyszczenie ekranu
- mov ah,00h
- mov al,03
- int 10h
- ; sprawdzanie specyfikacji
- int 11h
- and ax,0000000000000001 ; stacja dyskow
- cmp ax,0
- jz sd0
- mov dx, offset jst
- call wypisz
- jmp nap
- sd0: mov dx, offset bst
- call wypisz
- jmp kopro
- nap: int 11h
- and ax,0000000011000000b ; ilosc napedow
- shr ax,6
- cmp ax,0
- je nap1
- cmp ax,0
- je nap2
- cmp ax,0
- je nap3
- cmp ax,0
- je nap4
- nap1: mov dx,offset inap1
- call wypisz
- jmp kopro
- nap2: mov dx,offset inap2
- call wypisz
- jmp kopro
- nap3: mov dx,offset inap3
- call wypisz
- jmp kopro
- nap4: mov dx,offset inap4
- call wypisz
- jmp kopro
- kopro: int 11h
- and ax,0000000000000010b ; koprocesor
- cmp ax,0
- jz k0
- mov dx,offset jk
- call wypisz
- jmp ram
- k0: mov dx,offset bk
- call wypisz
- jmp ram
- ram: int 11h
- and ax,0000000000001100b ; ilosc ram
- shr ax,2
- cmp ax,1
- je ram1
- cmp ax,2
- je ram2
- cmp ax,3
- je ram3
- ram1: mov dx,offset ir16
- call wypisz
- jmp tg
- ram2: mov dx,offset ir32
- call wypisz
- jmp tg
- ram3: mov dx,offset ir64
- call wypisz
- jmp tg
- tg: int 11h
- and ax,0000000000110000b ; tryb graficzny
- shr ax,4
- cmp ax,0
- je tg0
- cmp ax,1
- je tg1
- cmp ax,2
- je tg2
- cmp ax,3
- je tg3
- tg0: mov dx,offset vEGA
- call wypisz
- jmp dma
- tg1: mov dx,offset vKol40
- call wypisz
- jmp dma
- tg2: mov dx,offset vKol80
- call wypisz
- jmp dma
- tg3: mov dx,offset vMono
- call wypisz
- jmp dma
- dma: int 11h
- and ax,0000001100000000b ; obecnosc DMA
- shr ax,8
- cmp ax,0
- jnz dma1
- mov dx, offset bdma
- call wypisz
- jmp porty
- dma1: mov dx, offset jdma
- call wypisz
- jmp porty
- porty: int 11h
- and ax,0000111000000000b ; ilosc portow RS232
- shr ax,9
- add ax,30h ; dodanie '0' do rejestru
- mov bx, offset ilport ; obliczenie przesuniecia zmiennej wzgledem poczatku segmentu danych
- mov ds:[bx],al ; zapis do zmiennej w segmencie danych
- mov dx, offset ilport
- call wypisz
- jmp game
- game: int 11h
- and ax,0001000000000000b ; obecnosc GAME
- shr ax,12
- cmp ax,0
- jnz game1
- mov dx, offset bgame
- call wypisz
- jmp druk
- game1: mov dx, offset jgame
- call wypisz
- jmp druk
- druk: int 11h
- and ax,0010000000000000b ; obecnosc drukarki szeregowej
- shr ax,13
- cmp ax,0
- jnz druk1
- mov dx, offset bdruk
- call wypisz
- jmp ildruk
- druk1: mov dx, offset jdruk
- call wypisz
- jmp ildruk
- ildruk: int 11h
- and ax,1100000000000000b ; ilosc zainstalowanych drukarek
- shr ax,14
- add ax,30h
- mov bx,offset idruk
- mov ds:[bx],al
- mov dx,offset idruk
- call wypisz
- jmp koniec
- wypisz: mov ah,09h ; wypisywanie informacji na ekran
- int 21h
- ret
- koniec: mov ah,4ch
- mov al,0
- int 21h
- progr ends
- dane segment
- jst db 'Stacja dyskow: jest',10,13,'$'
- bst db 'Stacja dyskow: brak',10,13,'$'
- inap1 db 'Ilosc napedow: 1',10,13,'$'
- inap2 db 'Ilosc napedow: 2',10,13,'$'
- inap3 db 'Ilosc napedow: 3',10,13,'$'
- inap4 db 'Ilosc napedow: 4',10,13,'$'
- bk db 'Koprocesor: brak',10,13,'$'
- jk db 'Koprocesor: jest',10,13,'$'
- ir16 db 'Ilosc Ram: 16KB',10,13,'$'
- ir32 db 'Ilosc Ram: 32KB',10,13,'$'
- ir64 db 'Ilosc Ram: 64KB lub wiecej',10,13,'$'
- vEGA db 'Tryb graficzny: mozliwa EGA',10,13,'$'
- vKol40 db 'Tryb graficzny: 40 kolumn kolor',10,13,'$'
- vKol80 db 'Tryb graficzny: 80 kolumn kolor',10,13,'$'
- vMono db 'Tryb graficzny: TTL monochromatyczny',10,13,'$'
- bdma db 'DMA: brak',10,13,'$'
- jdma db 'DMA: jest',10,13,'$'
- ilport db 20h,' :Ilosc portow szeregowych',10,13,'$'
- jgame db 'Karta GAME: jest',10,13,'$'
- bgame db 'Karta GAME: brak',10,13,'$'
- jdruk db 'Drukarka szeregowa: jest',10,13,'$'
- bdruk db 'Drukarka szeregowa: brak',10,13,'$'
- idruk db 20h,' :Ilosc zainstalowanych drukarek',10,13,'$'
- dane ends
- end start;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement