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

📄 menu.asm

📁 独孤剑客 ASM Source Code 1998-2001 for DOS
💻 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 + -