DOS下的电梯模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CLSS MACRO ; 清屏之宏
MOV BH,0 ; 卷入行属性,黑底白字,正常显示.
MOV AX,0600H ; AH=6 屏幕初始化或上卷.AL=0 整个窗口空白.
INT 10H ; CH=左上角行号,CL=左下角列号.
ENDM ; DH=右上角行号,DL=右下角列号.
;-----------------------------------------------------------
GB MACRO ; 移光标之宏
MOV BH,00H ; BH=页号DH,DL=行号,列号.
MOV AH,02H ; AH=2置光标位置.
INT 10H
ENDM
;------------------------------------------------
HENG MACRO X1,Y1,COLOR,X2 ; 写横的宏
LOCAL BH1 ; 定义标号
MOV CX,X1 ; 起始点横作标-->X1
MOV DX,Y1 ; 起始点纵作标-->Y1
BH1: MOV AH,0CH ; 写象素
MOV AL,COLOR ; 设定颜色参数-->AL
INT 10H
INC CX
CMP CX,X2 ; 写至终点横作标为止
JNZ BH1
ENDM
;------------------------------------------------
SHU MACRO CX1,CY1,COLOR,CY2 ; 写竖的宏
LOCAL BH2 ; 定义标号
MOV CX,CX1
MOV DX,CY1
BH2: MOV AH,0CH
MOV AL,COLOR ; AL=(00--0FH)共16种颜色.
INT 10H
INC DX
CMP DX,CY2
JNZ BH2
ENDM
;-------------------------------------- ;上升宏,小方块上升的宏小方块缓慢上升一层,从N-1到N 层
UP MACRO N
LOCAL UPA
MOV AL,N
MOV CH,30
MUL CH
MOV DX,480
SUB DX,AX
MOV [CZ],DX
MOV [DZ],DX
SUB DX,20
MOV [LZ],DX
SUB DX,10
MOV DX1,DX
UPA: HENG 170,[LZ],05H,190 ;在方块上方划线
HENG 170,[DZ],00H,190 ;在方块下方消线(即将线划为黑色)
HENG 160,[CZ],04H,200 ;保证框线不变
DEC [DZ]
DEC [LZ]
MOV AX,DX1
CMP [DZ],AX
LOOP $
LOOP $
JNZ UPA
ENDM
;--------------------------------------------- 小方块下降的宏,缓慢下降,小方块从N+1层下降至N 层
DOWN MACRO N
LOCAL DNA ; 定义标号
MOV AL,N
MOV CH,30
MUL CH
MOV DX,400
SUB DX,AX
MOV [DZ],DX
ADD DX,20
MOV [CZ],DX
MOV [LZ],DX
ADD DX,10
MOV DX1,DX
DNA: HENG 170,[LZ],05H,190 ;在小方块下方画横
HENG 170,[DZ],00H,190 ;在小方块上方消横
HENG 160,[CZ],04H,200 ;保证框线不受影响
INC [DZ]
INC [LZ]
MOV AX,DX1
CMP [DZ],AX
LOOP $ ;延时,保证看到下降过程
LOOP $
JNZ DNA
ENDM
;---------------------------------------------画小方块的宏
INIT MACRO N,COLOR ;05H画小方块的宏,00H消方块
LOCAL BEG ; 定义标号
MOV AL,N ;小方块最初停在第N层,表示电梯最初停在第N 层
MOV CH,30
MUL CH
MOV DX,430
SUB DX,AX
MOV [DZ],DX
ADD DX,20
MOV DX1,DX
BEG: HENG 170,[DZ],COLOR,190 ;画小方块
INC [DZ]
MOV AX,DX1
CMP [DZ],AX
JNZ BEG
ENDM
;-------------------------------------------
OPEN MACRO ;画电梯开门状态的宏
LOCAL CC ; 定义标号
MOV [DZ],290
MOV [LZ],290
CC: SHU [DZ],220,00H,420 ;电梯开门
SHU [LZ],220,00H,420
INC [DZ]
DEC [LZ]
LOOP $ ;延时,看到开门过程
CMP [DZ],370
JNZ CC
ENDM
;-------------------------------------------
CLOSE MACRO ;画电梯关门状态的宏
LOCAL FF ; 定义标号
MOV [DZ],370
MOV [LZ],210
FF: SHU [DZ],220,07H,420 ;电梯关门
SHU [LZ],220,07H,420
DEC [DZ]
INC [LZ]
LOOP $