-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmacros.inc
213 lines (164 loc) · 3.58 KB
/
macros.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
FlushKeyboardBuffer MACRO
;FlushKeyboardBuffer
mov ah, 0Ch
int 21h
ENDM FlushKeyboardBuffer
HideCursor MACRO
;Hide Cursor
mov ah, 1
mov cx, 2607h
int 10h
ENDM HideCursor
Print MACRO row, column, color, char
push ax
push bx
push cx
SetCursor row, column
mov Ah, 09
mov Al, char
mov Bl, color
mov Cx, 1h
INT 10h
pop cx
pop bx
pop ax
ENDM Print
Delete Macro row, column
mov Ah, 02h
mov Bh, 0h
mov Dh, row
mov Dl, column
int 10h
mov Ah, 09
mov Al, ' '
mov Bl, 0h
mov Cx, 1h
int 10h
ENDM Delete
PrintText Macro row , column , text
mov ah,2
mov bh,0
mov dl,column
mov dh,row
int 10h
mov ah, 9
mov dx, offset text
int 21h
ENDM PrintText
PrintStr MACRO Str
push ax
push dx
mov ah,9
mov dx, offset str
int 21h
pop dx
pop ax
ENDM PrintStr
;----------------------------
PrintChar MACRO
push ax
mov ah,2 ;charachter in Dl
int 21h
pop ax
ENDM PrintChar
;----------------------------
ReadStr MACRO Read
push ax
push dx
mov ah,0Ah
mov dx, offset Read
int 21h
pop dx
pop ax
ENDM ReadStr
;----------------------------
ClearScreen MACRO
push ax
mov ax,0003
int 10h
HideCursor
pop ax
ENDM ClearScreen
;----------------------------
SetCursor MACRO Row, Col
push ax
push bx
push dx
mov dh,Row
mov dl,Col
mov bh,00
mov ah,02
int 10h
pop dx
pop bx
pop ax
ENDM SetCursor
;----------------------------
ShiftCursorMy MACRO
LOCAL getOutMy
push ax
inc MyCol
cmp MyCol, 79
jnz getOutMy
mov al,0
mov MyCol,al
inc MyRow
cmp MyRow, intialChatRow
getOutMy:
pop ax
ENDM ShiftCursorMy
;----------------------------
ShiftCursorChat MACRO
LOCAL getOutChat
push ax
inc ChatCol
cmp ChatCol, 79
jnz getOutChat
mov al,0
mov ChatCol,al
inc ChatRow
cmp ChatRow, 26 ;CHECK THAT
jnz getOutChat
call ScrollChatScreen
dec ChatRow
getOutChat:
pop ax
ENDM ShiftCursorChat
;----------------------------
PrintHorizontalLine MACRO row, color
LOCAL loop1
push cx
mov cl, 0
loop1:
Print row, cl, color , ' '
inc cl
cmp cl, 80
jnz loop1
pop cx
ENDM PrintHorizontalLine
;----------------------------
PrintCharAl MACRO row, column ,color
Print row, column, color, al
ENDM PrintCharAl
;----------------------------
WriteEnter MACRO row,column
push ax
inc row
mov al, 00h
mov column,al
pop ax
ENDM WriteEnter
;----------------------------
AddSentToBuffer MACRO
push ax
push bx
mov bh,00h
mov bl, BufferSize
mov ah,ToSendChar
mov Buffer[bx],ah
inc bl
mov BufferSize,bl
pop bx
pop ax
ENDM AddSentToBuffer
;----------------------------