Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Progr segment
- assume cs:Progr, ds:dane, ss:stosik
- start: mov ax,dane
- mov ds,ax
- mov ax,stosik
- mov ss,ax
- mov sp,offset szczyt
- mov di,0
- mov ax, 3
- int 10h
- mov dx,offset menu
- mov ah,9h
- int 21h
- czekaj:
- MOV AH,08H
- INT 21H
- CMP AL,49d
- JE Graficzny
- CMP AL,50d
- JE Tekstowy
- CMP al,escape
- je pomost
- jmp pomin_pomost
- pomost:
- jmp koniec
- pomin_pomost:
- jmp czekaj
- Graficzny:
- mov ax, 13h
- int 10h
- call RysujKwadratGraf
- SprawdzenieGraf:
- mov ah,08h
- int 21h
- cmp al,escape
- je pomost2
- jmp pomin_pomost2
- pomost2:
- jmp koniec
- pomin_pomost2:
- cmp al,gora
- je F_Gora
- cmp al,dol
- je F_Dol
- jmp SprawdzenieGraf
- F_Gora:
- sub si,3200
- mov ax, 13h
- int 10h
- call RysujKwadratGraf
- jmp SprawdzenieGraf
- F_Dol:
- add si,3200
- mov ax, 13h
- int 10h
- call RysujKwadratGraf
- jmp SprawdzenieGraf
- Tekstowy:
- mov ax, 3
- int 10h
- call Tekst
- call RysujKwadratTekst
- SprawdzenieTekst:
- mov ah,08h
- int 21h
- cmp al,escape
- je pomost3
- jmp pomin_pomost3
- pomost3:
- jmp koniec
- pomin_pomost3:
- cmp al,gora
- je T_Gora
- cmp al,dol
- je T_Dol
- jmp SprawdzenieTekst
- T_Gora:
- sub BL,1
- mov ax, 3
- int 10h
- call Tekst
- call RysujKwadratTekst
- jmp SprawdzenieTekst
- T_Dol:
- add BL,1
- mov ax, 3
- int 10h
- call Tekst
- call RysujKwadratTekst
- jmp SprawdzenieTekst
- ; PROCEDURY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- RysujKwadratGraf proc
- mov ax, 0a000h
- mov es, ax
- mov bx,6500
- add bx,si
- mov di, bx
- mov al, 15
- mov cx, 100
- rep stosb
- mov bx,38500
- add bx,si
- mov di, bx
- mov al, 15
- mov cx, 100
- rep stosb
- mov bx,6600
- add bx,si
- mov di, bx
- mov cx, 100
- rysuj2:
- mov byte ptr es:[di],15
- add di, 320
- loop rysuj2
- mov bx,6500
- add bx,si
- mov di, bx
- mov cx, 100
- rysuj:
- mov byte ptr es:[di],15
- add di, 320
- loop rysuj
- ret
- RysujKwadratGraf endp
- RysujKwadratTekst proc
- LES DI,DWORD PTR VidOrigin
- MOV AL,10
- ADD AL,BL
- MOV AH,80
- IMUL AH
- ADD DI,AX
- ADD DI,30
- SHL DI,1
- MOV CX,20
- MOV AH,07
- MOV AL,"x"
- DoChar: STOSW
- MOV AL,"x"
- LOOP DoChar
- LES DI,DWORD PTR VidOrigin
- MOV AL,9
- ADD AL,BL
- MOV AH,80
- IMUL AH
- ADD DI,AX
- ADD DI,30
- SHL DI,1
- MOV CX,20
- MOV AH,07
- MOV AL,"x"
- DoChar2: STOSW
- MOV AL,"x"
- LOOP DoChar2
- LES DI,DWORD PTR VidOrigin
- MOV AL,8
- ADD AL,BL
- MOV AH,80
- IMUL AH
- ADD DI,AX
- ADD DI,30
- SHL DI,1
- MOV CX,20
- MOV AH,07
- MOV AL,"x"
- DoChar4: STOSW
- MOV AL,"x"
- LOOP DoChar4
- RET
- RysujKwadratTekst endp
- Tekst proc
- LES DI,DWORD PTR VidOrigin
- MOV AL,11
- MOV AH,80
- IMUL AH
- ADD DI,AX
- ADD DI,35
- SHL DI,1
- MOV CX,10
- MOV AH,07
- MOV AL,'0'
- DoChar3: STOSW
- ADD AL,'1'
- AAA
- ADD AL,'0'
- MOV AH,07
- LOOP DoChar3
- RET
- Tekst endp
- Koniec:
- mov ah,4ch
- mov al,0
- int 21h
- Progr ends
- dane segment
- enterr db 0Dh, 0Ah
- menu db "Tryb Graficzny - 1, tryb tekstowy - 2$"
- gora db 72d
- dol db 80d
- escape db 27d
- VidOrigin DD 0B8000000H
- dane ends
- stosik segment stack
- dw 100h dup(0)
- szczyt Label word
- stosik ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement