-
Notifications
You must be signed in to change notification settings - Fork 1
/
name.inc
96 lines (79 loc) · 1.8 KB
/
name.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
name_Page macro
local labn4
local labn5
local labn6
local labn7
local labn9
;***********************
NAMEPAGE ;*****************TO TACK NAME OF THE PLAYER SHIP 1
;***********************TO MOVE DATA FROM BUFFER TO OWNER SHIP NAME
nameloop:
mov SI,offset BufferData
mov DI,offset playership1
labn6:
mov cL,ActualSize
XOR CH,CH
REP MOVSB;Copies the first ActualSize BYTE from SI to DI
mov DI,offset playership1
MOV AL,ActualSize
MOV CHAR1,AL
SENDMSG
;*************************
endm name_Page
cursor1 macro ; TO SET CURSOR
;mov dl, x ; Column
;mov dh, y ; Row
mov bx, 0 ; Page number 0 for graphics modes
mov ah, 2h
int 10h
ENDm cursor1
cursor1_on macro ; TO SHOW CURSOR
mov ah, 1
mov cx, 4 ;?¦¦ BIG CURSOR.
int 10h
endm cursor1_on
read1 macro ; TO READ MESSAGE
mov ah,0AH ;Read from keyboard
mov dx,offset MyBuffer
int 21h
endm read1
NAMEPAGE macro ; THE PAGE TO TAKE NAME
local ENTERN1
local labn1
local labn2
local labn3
local ENDNAME
local endag
local endag1
local cont
ENTERN1:
PREP_BACKBROUND word_color
mov dl, 07H
mov dh, 6H
CURSOR1
PRINTMESSAGE MESSHIP1
labn3:
mov dl, 07H
mov dh, 0AH
CURSOR1
PRINTMESSAGE MES
mov dl, 0AH
mov dh, 8H
CURSOR1
cursor1_on
READ1
CMP BufferData,'$' ; TO CHECK IF PLAYER ENTER NOTHING .
JB ENTERN1
CMP BufferData,'A' ; TO CHECK THE FIRST CHAR (No digits or special characters).
JB ENTERN1
CMP BufferData,'Z'
JBE ENDNAME
CMP BufferData,'a'
JB ENTERN1
CMP BufferData,'z'
JA ENTERN1
ENDNAME:
CMP ActualSize,15 ; TO CHECK NAME NOT BIG THAN 15
JA ENTERN1
ENDm NAMEPAGE
;*************************************