⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.asm

📁 asm gun shot游戏源码,测试测试
💻 ASM
字号:
;
; Small tt game(asm final), data and macro segment

data	segment
NULL	equ	0			; null
UNITS	equ	55			; the max units(columns) need to control
MAX_ROW	equ	50			; the screen's max row
MAX_COL	equ	80			; the screen's max column
TOPROW	equ	0			; the begin row in the screen
BOTTOM	equ	45			; the border whether char is escaped

BLACK	dw	0			; enum colors, use in CHAR function	
BLUE	dw 	1		
GREEN 	dw 	2
CYAN	dw 	3
RED	dw 	4
PINK	dw 	5
YELLOW	dw 	6
WHITE	dw 	7

					; CONTROL VARIABLE				
COLOR	db	0			; control colorful
GRADE	dw	2			; craft grade, init is 2
BELL	db	0			; control the bell, init is NO BELL
RATE_CO	dw	1			; the rate color
LINE_CO	dw	6			; the border color
MARK	dw	6			; produced char's color, init is yellow
MODE	dw	0			; hit char color
MOMENT	dw	13			; control the timer, greater slower

					; TMP VARIABLE
TMPLOW	db	0			; ACTION: store the lowest one in CHARS
TMPSI	dw	0			; ACTION: store the lowest one's position in CHARS 
TMPDI	dw	0			; ACTION: store the lowest one's position in ROWS
BORDER	db	0			; RANDOM: border for generating random number(0<rannum<border)
RANNUM	db	0			; RANDOM: the result of random number generated

					; PUBLIC VARIABLE
TO_HIT	dw	0			; total hit
CA_HIT	dw	0			; valid hit
GENE	dw	0			; generate ones

					; BASIC DATA STRUCT
CHARS	db	UNITS dup(NULL)		; place to hold the dropping chars
ROWS	db	UNITS dup(NULL)		; place to record every chars' dropt lines

					; STRING SECTION
NOTICE_TOP	db	'ESC break   $'
SAVE_RATE	db	'save rate:  00%$'
HIT_RATE	db	'hit  rate:  00%$'
NOTICE_BOTTOM_1	db	'out of scape$'
NOTICE_BOTTOM_2	db	'    bellow$'
QUERY		db	'ESC to exit$'
QUERY_EXTRA	db	'Other key return$'
ERASE		db	'                $'
MODE_SENTENCE	db	'Key$'
MODE_BELL_O	db	'1 Bell mode: on $'
MODE_BELL_F	db	'1 Bell mode: off$'
MODE_COLOR_O	db	'2 Colorful : on $'
MODE_COLOR_F	db	'2 Colorful : off$'
MODE_GRADE_E	db	'3 Grade: easy  $'
MODE_GRADE_M	db	'3 Grade: medium$'
MODE_GRADE_H	db	'3 Grade: hard  $'
MODE_CHANGE_C	db	'4 Change marker$'
MODE_CHANGE_SP	db	'5/6 +/- Speed:$'

					; LOGO SECTION, use in proc LOGO
LEFT_ROW	dw	12		; logo's left up corner row
LEFT_COL	dw	7		; logo's left up corner column
FULL_CHAR	db	MAX_COL dup(219), '$'
MARK_AUTHOR	db	'2005 (c) Sucha$'	; author string
;			'0123456789012345$'	ruler
LOGO_S		db	15 dup(219), '$'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	219, '              $'
		db	15 dup(219), '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	'              ', 219, '$'
		db	15 dup(219), '$'
;			'0123456789012345$'	ruler
LOGO_H		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	15 dup(219), '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
;			'0123456789012345$'	ruler
LOGO_O		db	15 dup(219), '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	219, '             ', 219, '$'
		db	15 dup(219), '$'
;			'0123456789012345$'	ruler
LOGO_T		db	15 dup(219), '$'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
		db	'       ', 219, '       $'
data	ends

stack	segment stack
	db	50 dup(?)
stack	ends

PRINT	macro	row, col, str		; print the strings
	push	ax
	push	dx

	push	row
	push	col
	call	far ptr CURSOR

	lea	dx, str
	mov	ah, 9
	int	21h

	pop	dx
	pop	ax
	endm

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -