Advertisement
Kredens234

Untitled

Jan 5th, 2018
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. progr       segment
  2.             assume cs:progr, ds:dane
  3. start:      mov ax,dane;
  4.             mov ds,ax
  5.             ; czyszczenie ekranu
  6.             mov ah,00h
  7.             mov al,03
  8.             int 10h
  9.             ; sprawdzanie specyfikacji
  10.             int 11h
  11.             and ax,0000000000000001 ; stacja dyskow
  12.             cmp ax,0
  13.             jz sd0
  14.             mov dx, offset jst
  15.             call wypisz
  16.             jmp nap
  17. sd0:        mov dx, offset bst
  18.             call wypisz
  19.             jmp kopro
  20. nap:        int 11h
  21.             and ax,0000000011000000b ; ilosc napedow
  22.             shr ax,6
  23.             cmp ax,0
  24.             je nap1
  25.             cmp ax,0
  26.             je nap2
  27.             cmp ax,0
  28.             je nap3
  29.             cmp ax,0
  30.             je nap4    
  31. nap1:       mov dx,offset inap1
  32.             call wypisz
  33.             jmp kopro
  34. nap2:       mov dx,offset inap2
  35.             call wypisz
  36.             jmp kopro
  37. nap3:       mov dx,offset inap3
  38.             call wypisz
  39.             jmp kopro
  40. nap4:       mov dx,offset inap4
  41.             call wypisz
  42.             jmp kopro  
  43. kopro:      int 11h
  44.             and ax,0000000000000010b ; koprocesor
  45.             cmp ax,0
  46.             jz k0
  47.             mov dx,offset jk
  48.             call wypisz
  49.             jmp ram
  50. k0:         mov dx,offset bk
  51.             call wypisz
  52.             jmp ram        
  53. ram:        int 11h
  54.             and ax,0000000000001100b ; ilosc ram
  55.             shr ax,2
  56.             cmp ax,1
  57.             je ram1
  58.             cmp ax,2
  59.             je ram2
  60.             cmp ax,3
  61.             je ram3
  62. ram1:       mov dx,offset ir16
  63.             call wypisz
  64.             jmp tg
  65. ram2:       mov dx,offset ir32
  66.             call wypisz
  67.             jmp tg
  68. ram3:       mov dx,offset ir64
  69.             call wypisz
  70.             jmp tg
  71. tg:         int 11h
  72.             and ax,0000000000110000b ; tryb graficzny
  73.             shr ax,4
  74.             cmp ax,0
  75.             je tg0
  76.             cmp ax,1
  77.             je tg1
  78.             cmp ax,2
  79.             je tg2
  80.             cmp ax,3
  81.             je tg3
  82. tg0:        mov dx,offset vEGA
  83.             call wypisz
  84.             jmp dma
  85. tg1:        mov dx,offset vKol40
  86.             call wypisz
  87.             jmp dma
  88. tg2:        mov dx,offset vKol80
  89.             call wypisz
  90.             jmp dma
  91. tg3:        mov dx,offset vMono
  92.             call wypisz
  93.             jmp dma
  94. dma:        int 11h
  95.             and ax,0000001100000000b ; obecnosc DMA
  96.             shr ax,8
  97.             cmp ax,0
  98.             jnz dma1
  99.             mov dx, offset bdma
  100.             call wypisz
  101.             jmp porty
  102. dma1:       mov dx, offset jdma
  103.             call wypisz
  104.             jmp porty
  105. porty:      int 11h
  106.             and ax,0000111000000000b ; ilosc portow RS232
  107.             shr ax,9
  108.             add ax,30h ; dodanie '0' do rejestru
  109.             mov bx, offset ilport ; obliczenie przesuniecia zmiennej wzgledem poczatku segmentu danych
  110.             mov ds:[bx],al ; zapis do zmiennej w segmencie danych
  111.             mov dx, offset ilport
  112.             call wypisz
  113.             jmp game
  114. game:       int 11h
  115.             and ax,0001000000000000b ; obecnosc GAME
  116.             shr ax,12
  117.             cmp ax,0
  118.             jnz game1
  119.             mov dx, offset bgame
  120.             call wypisz
  121.             jmp druk
  122. game1:      mov dx, offset jgame
  123.             call wypisz
  124.             jmp druk
  125. druk:       int 11h
  126.             and ax,0010000000000000b ; obecnosc drukarki szeregowej
  127.             shr ax,13
  128.             cmp ax,0
  129.             jnz druk1
  130.             mov dx, offset bdruk
  131.             call wypisz
  132.             jmp ildruk
  133. druk1:      mov dx, offset jdruk
  134.             call wypisz
  135.             jmp ildruk
  136. ildruk:     int 11h
  137.             and ax,1100000000000000b ; ilosc zainstalowanych drukarek
  138.             shr ax,14
  139.             add ax,30h
  140.             mov bx,offset idruk
  141.             mov ds:[bx],al
  142.             mov dx,offset idruk
  143.             call wypisz
  144.             jmp koniec
  145. wypisz:     mov ah,09h ; wypisywanie informacji na ekran
  146.             int 21h
  147.             ret
  148. koniec:     mov ah,4ch 
  149.             mov al,0
  150.             int 21h
  151. progr ends
  152. dane segment
  153. jst db 'Stacja dyskow: jest',10,13,'$'
  154. bst db 'Stacja dyskow: brak',10,13,'$'
  155. inap1 db 'Ilosc napedow: 1',10,13,'$'
  156. inap2 db 'Ilosc napedow: 2',10,13,'$'
  157. inap3 db 'Ilosc napedow: 3',10,13,'$'
  158. inap4 db 'Ilosc napedow: 4',10,13,'$'
  159. bk db 'Koprocesor: brak',10,13,'$'
  160. jk db 'Koprocesor: jest',10,13,'$'
  161. ir16 db 'Ilosc Ram: 16KB',10,13,'$'
  162. ir32 db 'Ilosc Ram: 32KB',10,13,'$'
  163. ir64 db 'Ilosc Ram: 64KB lub wiecej',10,13,'$'
  164. vEGA db 'Tryb graficzny: mozliwa EGA',10,13,'$'
  165. vKol40 db 'Tryb graficzny: 40 kolumn kolor',10,13,'$'
  166. vKol80 db 'Tryb graficzny: 80 kolumn kolor',10,13,'$'
  167. vMono db 'Tryb graficzny: TTL monochromatyczny',10,13,'$'
  168. bdma db 'DMA: brak',10,13,'$'
  169. jdma db 'DMA: jest',10,13,'$'
  170. ilport db 20h,' :Ilosc portow szeregowych',10,13,'$'
  171. jgame db 'Karta GAME: jest',10,13,'$'
  172. bgame db 'Karta GAME: brak',10,13,'$'
  173. jdruk db 'Drukarka szeregowa: jest',10,13,'$'
  174. bdruk db 'Drukarka szeregowa: brak',10,13,'$'
  175. idruk db 20h,' :Ilosc zainstalowanych drukarek',10,13,'$'
  176. dane ends
  177. end start;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement