📄 menu.asm
字号:
code segment
org 100h
assume cs:code,ds:code
Start: push cs
pop ds
mov ax,0a000h
mov es,ax
mov ax,0013h
int 10h
;*********************
; WATER AT THE BOTTOM
mov al,54 ;COLOR
mov bx,100 ;HEIGHT
mov di,100*320+30 ;START POS
L0_00: mov cx,100 ;WIDTH
rep stosb
add di,320-100-30
dec bx ;HEIGHT
jnz L0_00
;*********************
; BIG BOOK
mov al,20 ;AL : COLOR
mov di,45*320+120 ;DI : START POS
mov bx,100 ;BX : HEIGHT COLTROL
L000: mov cx,100-16 ;CX : WIDTH CHINESE BORDER
push cx
mov cx,16 ;WIDTH 16 COLORS
l_00: mov al,32
sub al,cl
stosb
loop l_00
pop cx
rep stosb
add di,320-100 ;NEXT LINE
dec bx
jnz L000
;**********************
; ITEMS LIST
mov cx,5
lea si,Buff00
l001: push si
push cx
call GYL
add HzStPos,17*320
pop cx
pop si
add si,32*4
loop l001
;*********************
; SELECT BAR
mov di,49*320+130 ; DI:START POS
call XORBAR
NewSelect:
mov ah,00h
int 16h
cmp al,27
jz Exit
cmp ah,80
jz SEL_DN
cmp ah,72
jz SEL_UP
cmp al,13
jz EXECprog
jmp NewSelect
SEL_DN: call XORBAR
inc Selection
add di,17*320
cmp Selection,5
jnz Show_DN
mov Selection,0
mov di,49*320+130
Show_DN:call XORBAR
jmp NewSelect
SEL_UP: call XORBAR
dec Selection
sub di,17*320
cmp Selection,-1
jnz Show_UP
mov Selection,4
mov di,117*320+130
Show_UP:call XORBAR
jmp NewSelect
EXECprog:
; add you code here
jmp NewSelect
;************************
Exit: mov ax,0003h
int 10h
mov ah,4ch
int 21h
GYL proc near
mov di,HzStPos
mov dx,4
Loop000:mov ah,16
loop0: mov bh,2
Loop1: lodsb
mov bl,al
mov al,ah
add al,15
mov cx,8
Again: rol bl,1
jc Show
inc di
jmp Next
Show: stosb
Next: loop Again
dec bh
jnz loop1
add di,320-16
dec ah
jnz loop0
sub di,320*16-16
dec dx
jnz loop000
ret
GYL endp
XORBAR proc near
push di ; DI:START POS
mov al,63 ; AL:COLOR
mov bx,18 ; BX:HEIGHT
L002: mov cx,65 ; CX:WIDTH
l003: xor es:[di],al
inc di
loop l003
add di,320-65 ; SET STEP
dec bx
jnz L002
pop di
ret
XORBAR endp
Buff00 db 2,0,2,0,2,16,127,248,66,16,66,16,127,240,66,16
db 66,16,127,240,66,16,2,0,2,4,2,4,1,252,0,0
;*************<< 电 >>****************
db 8,128,124,64,72,4,79,254,72,0,122,20,75,20,74,164
db 74,164,122,68,74,164,75,28,74,12,74,4,75,252,154,4
;*************<< 脑 >>****************
db 4,0,2,0,1,0,1,0,1,0,2,128,2,128,2,128
db 4,64,4,64,8,32,8,32,16,16,32,16,64,14,128,4
;*************<< 入 >>****************
db 32,4,27,254,72,4,64,4,64,4,64,4,64,4,64,4
db 64,4,64,4,64,4,64,4,64,4,64,4,64,20,64,8
;*************<< 门 >>****************
Buff01 db 17,0,17,8,17,28,17,224,253,2,17,2,20,254,24,4
db 49,254,209,4,17,4,17,252,17,4,17,4,81,252,33,4
;*************<< 指 >>****************
db 0,64,64,64,48,64,16,72,135,252,96,64,32,64,8,68
db 23,254,32,64,224,64,32,128,33,16,34,8,39,252,32,4
;*************<< 法 >>****************
db 16,64,16,72,39,252,64,128,72,160,251,240,17,32,33,32
db 66,36,251,254,0,32,0,168,57,38,194,34,68,160,0,64
;*************<< 练 >>****************
db 0,0,0,4,255,254,0,4,8,4,4,4,2,4,2,36
db 0,196,3,4,12,4,48,4,16,4,0,68,0,40,0,16
;*************<< 习 >>****************
Buff02 db 34,8,17,8,17,16,0,32,127,254,64,2,128,4,31,224
db 0,64,1,132,255,254,1,0,1,0,1,0,5,0,2,0
;*************<< 学 >>****************
db 0,0,0,0,31,192,12,112,12,24,12,12,12,12,12,12
db 12,12,12,12,12,12,12,24,12,112,31,192,0,0,0,0
;*************<< D >>****************
db 0,0,0,0,3,224,6,48,12,24,24,12,24,12,24,12
db 24,12,24,12,24,12,12,24,6,48,3,224,0,0,0,0
;*************<< O >>****************
db 0,0,0,0,7,232,12,24,24,8,24,0,14,0,3,224
db 0,48,0,24,0,24,16,24,28,48,23,192,0,0,0,0
;*************<< S >>****************
Buff03 db 0,0,0,8,127,252,2,0,2,0,2,0,2,16,63,252
db 4,16,4,16,4,16,8,16,8,16,8,20,255,254,0,0
;*************<< 五 >>****************
db 8,32,10,40,31,124,40,160,69,16,0,124,127,128,1,16
db 1,120,63,128,1,8,1,124,255,128,1,2,1,2,0,254
;*************<< 笔 >>****************
db 16,64,16,72,39,252,64,128,72,160,251,240,17,32,33,32
db 66,36,251,254,0,32,0,168,57,38,194,34,68,160,0,64
;*************<< 练 >>****************
db 0,0,0,4,255,254,0,4,8,4,4,4,2,4,2,36
db 0,196,3,4,12,4,48,4,16,4,0,68,0,40,0,16
;*************<< 习 >>****************
Buff04 db 0,0,0,8,127,252,2,0,2,0,2,0,2,16,63,252
db 4,16,4,16,4,16,8,16,8,16,8,20,255,254,0,0
;*************<< 五 >>****************
db 8,32,10,40,31,124,40,160,69,16,0,124,127,128,1,16
db 1,120,63,128,1,8,1,124,255,128,1,2,1,2,0,254
;*************<< 笔 >>****************
db 2,0,1,4,255,254,0,0,31,240,16,16,16,16,31,240
db 0,4,127,254,64,4,79,228,72,36,72,36,79,228,64,12
;*************<< 高 >>****************
db 0,16,0,248,127,0,1,0,1,16,63,248,1,0,1,0
db 1,4,255,254,1,0,1,0,1,0,1,0,5,0,2,0
;*************<< 手 >>****************
HzStPos dw 50*320+130
Selection db 0
code ends
end Start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -