You are on page 1of 2

;============================================ up:

============================== cmp dh, 00


; ** LAB - 3 ** Set colortext mode je start
;============================================ mov ROW, dh
============================== mov COLUMN, dl
call DISCLEAR
TITLE COLORTEXTMODE mov dh, ROW
.model small mov dl, COLUMN
.stack 100h dec dh
.data call SETCURSOR
MAX EQU 12 call PRINT
ACT EQU 10 jmp start

NAMEPAR LABEL BYTE down:


MAXLEN DB MAX cmp dh, 24
ACTLEN DB ACT je start
CHARINPUT DB MAX dup('$') mov ROW, dh
COLORS DB 01, 02, 03, 04, 05, 06, 08, 09, 10, 11 mov COLUMN, dl
ROW DB 00 call DISCLEAR
COLUMN DB 00 mov dh, ROW
.code mov dl, COLUMN
inc dh
BEGIN PROC FAR call SETCURSOR
mov ax, @data call PRINT
mov ds, ax jmp start
mov es, ax
start1:
call DISCLEAR cmp dl, 00
call SETCOLORMODE je start
mov dx, 0000 ; cursor-iig hamgiin deed, zuun
zahiin(ehnii) ENDING1:
call SETCURSOR ; tsegt cmp ah, 01h
bairluulna je ENDING
call INPUT
call DISCLEAR right:
mov dh, 12 ; cursor-iig cmp dl, 70
mov dl, 40 ; delgetsiin gold je start
call SETCURSOR ; bairluulna mov ROW, dh
call PRINT mov COLUMN, dl
call DISCLEAR
;========================== mov dh, ROW
; ** Press Keys ** mov dl, COLUMN
;========================== inc dl
call SETCURSOR
start: call PRINT
mov ah, 00 ; neg temdegtiig garaas unshuulah huselt jmp start
(BIOS-iin 16h tasaldal)
int 16h left:
cmp ah, 16h ; 16h-n "U" tovchluuriin scan code cmp dl, 00
je up je start1
cmp ah, 20h ; 20h-n "D" tovchluuriin scan code mov ROW, dh
je down mov COLUMN, dl
cmp ah, 26h ; 26h-n "L" tovchluuriin scan code call DISCLEAR
je left mov dh, ROW
cmp ah, 13h ; 13h-n "R" tovchluuriin scan code mov dl, COLUMN
je right dec dl
cmp ah, 01h ; 01h-n "Esc" tovchluuriin scan code call SETCURSOR
je ENDING1 call PRINT
jmp start jmp start
mov COLUMN, dl
;========================== repeat:
; ** EXIT ** mov ah, 09 ; delgetsend hevleh huselt
;========================== mov al, [si]
ENDING: cmp al, 0Dh ; "Enter" tovchluuriin scan code
mov ah, 4ch je ENDPRINT
int 21h inc si
mov bh, 00 ; 0-dugaar huudasiig songono
BEGIN ENDP mov bl, COLORS ; ungunii atributiig bl-d olgono
mov cx, 01 ; 1 udaa
;======================================= int 10h
; ** 80x25 set colortext mode ** inc dl ; daraagiin temdegtiig hevlehed beldej
;======================================= baganiin dugaariig 1-eer
SETCOLORMODE PROC NEAR call SETCURSOR ;
mov ah, 00 ; gorim togtoono nemegduulne
mov al, 03 ; 16 ungutei, 80*25 hemjeetei text gorim inc COLORS ; daraagiin ungiig songono
int 10h jmp repeat
RET ENDPRINT:
SETCOLORMODE ENDP mov COLORS, 01
mov dl, COLUMN
;======================================= call SETCURSOR
; ** clear screen ** RET
;======================================= PRINT ENDP
DISCLEAR PROC NEAR
mov ax, 0600h ; delgets hoosolno END BEGIN
mov bh, 07 ; Engiin (har) atribut Дүгнэлт
mov cx, 0000h ; delgetsiin hamgiin ehnii tseg Би энэхүү лабороторын ажилаар
mov dx, 184Fh ; delgetsiin hamgiin suulchiin tseg
int 10h
RET
DISCLEAR ENDP

;=======================================
; ** set cursor position **
;=======================================
SETCURSOR PROC NEAR
mov ah, 02 ; cursor bairluulah huselt
mov bh, 00 ; delgetsiin dugaar
int 10h ; BIOS-iin 10h tasaldal (interrupt)
RET
SETCURSOR ENDP

;=======================================
; ** Gets string from keyboard **
;=======================================
INPUT PROC NEAR
mov ah, 0Ah ; orolt huseh
lea dx, NAMEPAR
int 21h
RET
INPUT ENDP

;==========================================
===========
; ** print by other colors on display center **
;==========================================
===========
PRINT PROC NEAR
lea si, CHARINPUT

You might also like