Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. Progr segment
  2. assume cs:Progr, ds:dane, ss:stosik
  3. start: mov ax,dane
  4. mov ds,ax
  5. mov ax,stosik
  6. mov ss,ax
  7. mov sp,offset szczyt
  8.  
  9.  
  10.  
  11. mov di,0
  12.  
  13.  
  14. mov ax, 3
  15. int 10h
  16.  
  17. mov dx,offset menu
  18. mov ah,9h
  19. int 21h
  20.  
  21.  
  22.  
  23.  
  24. czekaj:
  25.  
  26. MOV AH,08H
  27. INT 21H
  28. CMP AL,49d
  29. JE Graficzny
  30. CMP AL,50d
  31. JE Tekstowy
  32. CMP al,escape
  33. je pomost
  34. jmp pomin_pomost
  35. pomost:
  36. jmp koniec
  37. pomin_pomost:
  38.  
  39. jmp czekaj
  40.  
  41.  
  42. Graficzny:
  43.  
  44. mov ax, 13h
  45. int 10h
  46.  
  47. call RysujKwadratGraf
  48.  
  49.  
  50.  
  51. SprawdzenieGraf:
  52.  
  53. mov ah,08h
  54. int 21h
  55.  
  56. cmp al,escape
  57. je pomost2
  58. jmp pomin_pomost2
  59. pomost2:
  60. jmp koniec
  61. pomin_pomost2:
  62.  
  63. cmp al,gora
  64. je F_Gora
  65. cmp al,dol
  66. je F_Dol
  67.  
  68. jmp SprawdzenieGraf
  69.  
  70. F_Gora:
  71.  
  72. sub si,3200
  73.  
  74. mov ax, 13h
  75. int 10h
  76.  
  77.  
  78. call RysujKwadratGraf
  79.  
  80. jmp SprawdzenieGraf
  81.  
  82. F_Dol:
  83.  
  84. add si,3200
  85.  
  86. mov ax, 13h
  87. int 10h
  88.  
  89. call RysujKwadratGraf
  90.  
  91. jmp SprawdzenieGraf
  92.  
  93. Tekstowy:
  94.  
  95. mov ax, 3
  96. int 10h
  97.  
  98. call Tekst
  99.  
  100. call RysujKwadratTekst
  101.  
  102. SprawdzenieTekst:
  103.  
  104. mov ah,08h
  105. int 21h
  106.  
  107. cmp al,escape
  108. je pomost3
  109. jmp pomin_pomost3
  110. pomost3:
  111. jmp koniec
  112. pomin_pomost3:
  113.  
  114. cmp al,gora
  115. je T_Gora
  116. cmp al,dol
  117. je T_Dol
  118.  
  119. jmp SprawdzenieTekst
  120.  
  121. T_Gora:
  122.  
  123. sub BL,1
  124.  
  125. mov ax, 3
  126. int 10h
  127.  
  128. call Tekst
  129.  
  130. call RysujKwadratTekst
  131.  
  132. jmp SprawdzenieTekst
  133.  
  134. T_Dol:
  135.  
  136. add BL,1
  137.  
  138. mov ax, 3
  139. int 10h
  140.  
  141. call Tekst
  142.  
  143. call RysujKwadratTekst
  144.  
  145. jmp SprawdzenieTekst
  146.  
  147.  
  148. ; PROCEDURY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  149.  
  150.  
  151. RysujKwadratGraf proc
  152.  
  153.  
  154. mov ax, 0a000h
  155. mov es, ax
  156.  
  157. mov bx,6500
  158. add bx,si
  159. mov di, bx
  160. mov al, 15
  161. mov cx, 100
  162. rep stosb
  163.  
  164. mov bx,38500
  165. add bx,si
  166. mov di, bx
  167. mov al, 15
  168. mov cx, 100
  169. rep stosb
  170.  
  171. mov bx,6600
  172. add bx,si
  173. mov di, bx
  174. mov cx, 100
  175. rysuj2:
  176. mov byte ptr es:[di],15
  177. add di, 320
  178. loop rysuj2
  179.  
  180. mov bx,6500
  181. add bx,si
  182. mov di, bx
  183. mov cx, 100
  184. rysuj:
  185. mov byte ptr es:[di],15
  186. add di, 320
  187. loop rysuj
  188.  
  189.  
  190. ret
  191.  
  192. RysujKwadratGraf endp
  193.  
  194. RysujKwadratTekst proc
  195.  
  196.  
  197.  
  198. LES DI,DWORD PTR VidOrigin
  199.  
  200.  
  201. MOV AL,10
  202. ADD AL,BL
  203. MOV AH,80
  204. IMUL AH
  205. ADD DI,AX
  206. ADD DI,30
  207. SHL DI,1
  208. MOV CX,20
  209. MOV AH,07
  210. MOV AL,"x"
  211. DoChar: STOSW
  212. MOV AL,"x"
  213. LOOP DoChar
  214.  
  215. LES DI,DWORD PTR VidOrigin
  216.  
  217. MOV AL,9
  218. ADD AL,BL
  219. MOV AH,80
  220. IMUL AH
  221. ADD DI,AX
  222. ADD DI,30
  223. SHL DI,1
  224. MOV CX,20
  225. MOV AH,07
  226. MOV AL,"x"
  227. DoChar2: STOSW
  228. MOV AL,"x"
  229. LOOP DoChar2
  230.  
  231.  
  232. LES DI,DWORD PTR VidOrigin
  233.  
  234. MOV AL,8
  235. ADD AL,BL
  236. MOV AH,80
  237. IMUL AH
  238. ADD DI,AX
  239. ADD DI,30
  240. SHL DI,1
  241. MOV CX,20
  242. MOV AH,07
  243. MOV AL,"x"
  244. DoChar4: STOSW
  245. MOV AL,"x"
  246. LOOP DoChar4
  247.  
  248.  
  249. RET
  250.  
  251. RysujKwadratTekst endp
  252.  
  253. Tekst proc
  254.  
  255. LES DI,DWORD PTR VidOrigin
  256.  
  257. MOV AL,11
  258. MOV AH,80
  259. IMUL AH
  260. ADD DI,AX
  261. ADD DI,35
  262. SHL DI,1
  263. MOV CX,10
  264. MOV AH,07
  265. MOV AL,'0'
  266. DoChar3: STOSW
  267. ADD AL,'1'
  268. AAA
  269. ADD AL,'0'
  270. MOV AH,07
  271. LOOP DoChar3
  272.  
  273. RET
  274.  
  275. Tekst endp
  276.  
  277. Koniec:
  278.  
  279. mov ah,4ch
  280. mov al,0
  281. int 21h
  282. Progr ends
  283.  
  284. dane segment
  285.  
  286. enterr db 0Dh, 0Ah
  287. menu db "Tryb Graficzny - 1, tryb tekstowy - 2$"
  288. gora db 72d
  289. dol db 80d
  290. escape db 27d
  291. VidOrigin DD 0B8000000H
  292.  
  293.  
  294. dane ends
  295.  
  296. stosik segment stack
  297. dw 100h dup(0)
  298. szczyt Label word
  299. stosik ends
  300.  
  301. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement