📄 data.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 + -