📄 +
字号:
jmp hid
open_1: jmp open_2
manu_n2:
jmp manu_n1
new_2: call new
save_1: call save
save_2: call saveas
m_quit:
window 0,65h,4,1,4,8
pos_curse 0,4,0
string manu2
window 0,15h,5,1,5,8
pos_curse 0,5,0
string manu5
red_chr
cmp ah,50h
je manu_n2
cmp ah,48h
je m_quit
cmp ah,1ch ;0x1c0d 回车
je exit
jmp hid
exit:
call backdisplay
mov dh,15
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message4
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,79h ;Y 保存,退出
jnz chu
call quitt
chu: cmp al,6eh ;N 不保存,退出
jz quit
quit: window 0,07h,0,0,24,79
pos_curse 0,0,0
mov ah,4ch
int 21h
ret
menushow endp
new proc near ;新建文件
pos_get
push dx
call backdisplay
mov dh,8
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message1
mov ah,9
int 21h
mov bx,0
all: ; 保存地址
mov ah,1
int 21h
cmp al,0dh ;0x1c0d 回车
je alll
mov path[bx],al
inc bx
jmp all
alll: ;建立文件,并清除磁盘读写标志
window 0,2eh,15,9,17,61
pop dx
pos_curse 0,dh,dl
lea dx,path
mov ah,3ch ;建立文件,dx是串地址,ax返回的文件代号
mov cx,00
int 21h
mov handle,ax ;ax是返回的文件代号
mov bx,ax
mov ah,2eh ; 置磁盘自动读写标志
int 21h
window 0,2eh,1,0,23,79
mov dh,1
mov dl,0
mov bh,0
mov ah,2
int 10h
jmp char_get ; 内容在buffer里面
new endp
open_2:jmp open
saveas proc near ;另存为文件
call backdisplay
; window 0,07h,15,10,17,61
; window 0,24h,14,9,16,60,
mov dh,8
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message2
mov ah,9
int 21h
mov bx,0
bll:
mov ah,1
int 21h
cmp al,0dh
je blll
mov path[bx],al
inc bx
jmp bll
blll:
pos_get
push dx
window 0,2eh,1,0,23,79
call backdisplay
pop dx
pos_curse 0,dh,dl
lea dx,path
mov ah,3ch ;建立文件
mov cx,00
int 21h
mov handle,ax ;把buffer里面的内容写到文件
lea dx,buffer
mov bx,handle
mov cx,2000
mov ah,40h
int 21h
mov bx,handle
mov ah,2eh
int 21h
call backdisplay
jmp char_get
saveas endp
open proc near ;打开文件
call backdisplay
mov dh,8
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message3
mov ah,9
int 21h
mov bx,0
cll:
mov ah,1
int 21h
cmp al,13
je clll
mov path[bx],al
inc bx
jmp cll
clll:
window 0,2eh,1,0,23,79
lea dx,path
mov ah,3dh
mov al,0
int 21h
mov handle,ax
lea dx,buffer
mov bx,handle
mov cx,2000
mov ah,3fh
int 21h
window 0,2eh,1,23,1,79
mov dh,1
mov dl,0
mov bh,0
mov ah,2
int 10h
mov cx,1000
sub bx,bx
replay:
mov dl,buffer[bx]
inc bx
mov ah,2
int 21h
loop replay
mov bx,handle
mov ah,2eh
int 21h
mov dh,1
mov dl,0
mov bh,0
mov ah,2
int 10h
mov cx,10
mov bx,0
cleapath_3:
mov bl,0
mov path[bx],bl
loop cleapath_3
jmp char_get
open endp
save proc near ;保存文件
pos_get
push dx
window 0,2eh,1,0,6,10
call backdisplay
mov ah,path
cmp ah,21h
jl j_3
jmp j_4
j_3:
; window 0,07h,15,10,17,61
; window 0,24h,14,9,16,60,
mov dh,12
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message2
mov ah,9
int 21h
mov bx,0
dll:
mov ah,1
int 21h
cmp al,0dh
je dlll
mov path[bx],al
inc bx
jmp dll
dlll:
window 0,2eh,1,0,23,79
pop dx
pos_curse 0,dh,dl
j_4: lea dx,path
mov ah,3ch
mov cx,00
int 21h
mov handle,ax
lea dx,buffer
mov bx,handle
mov cx,2000
mov ah,40h
int 21h
mov bx,handle
mov ah,2eh
int 21h
call backdisplay
jmp char_get
save endp
quitt proc near ;退出
call backdisplay
; window 0,07h,15,10,17,61
; window 0,24h,14,9,16,60,
mov dh,15
mov dl,9
mov bh,0
mov ah,2
int 10h
lea dx,message2
mov ah,9
int 21h
mov bx,0
qll:
mov ah,1
int 21h
cmp al,0dh
je qlll
mov path[bx],al
inc bx
jmp qll
qlll:
window 0,07h,15,10,17,61
window 0,2eh,14,9,16,60
call backdisplay
lea dx,path
mov ah,3ch
mov cx,00
int 21h
mov handle,ax
lea dx,buffer
mov bx,handle
mov cx,2000
mov ah,40h
int 21h
mov bx,handle
mov ah,2eh
int 21h
call backdisplay
window 0,07h,0,0,24,79
mov ah,4ch
int 21h
ret
quitt endp
savedisplay proc near ;另存为
push ax
push bx
push cx
push dx
push ds
mov ax,0002h ;隐藏鼠标指针
int 33h
mov bx,0d
mov cx,3840d
loop1:
mov ax,0b800h ;指定ds断地址
mov ds,ax
mov dl,ds:[bx]
mov ax,data
mov ds,ax
mov cache [bx],dl
inc bx
loop loop1
mov ax,0001h ;显示鼠标指针
int 33h
pop ds
pop dx
pop cx
pop bx
pop ax
savedisplay endp
backdisplay proc near
push ax
push bx
push cx
push dx
push ds
mov bx,0d
mov cx,3840d
loop11:
mov ax,data
mov ds,ax
mov dl,cache [bx]
mov ax,0b800h
mov ds,ax
mov ds:[bx],dl
inc bx
loop loop11
pop ds
pop dx
pop cx
pop bx
pop ax
ret
backdisplay endp
edit endp
win2 proc near ;显示状态栏
push dx
push ax
window 1,3eh,0,35,0,79
pos_curse 0,0,36
mov ah,9
lea dx,zhuangtai
int 21h
pop ax
pop dx
ret
win2 endp
win3 proc near
mov ah,2ah
int 21h
mov bl,10d
add al,30h
mov [date+10],al
mov ax,0
mov al,dl
div bl
add ax,3030h
mov [date+12],al
mov [date+13],ah
mov ax,0
mov al,dh
div bl
add ax,3030h
mov [date+15],al
mov [date+16],ah
mov ax,0
window 0,3ch,24,2,24,20
pos_curse 0,24,3
mov dx,offset date
mov ah,09h
int 21h
pos_curse 0,1,0
ret
win3 endp
;行列显示
win4 proc near
mov ah,03h
mov bh,0
int 10h
mov bh,100d
mov bl,10d
mov ax,0
mov al,dh
div bh
add al,30h
mov [rowline+4],al
mov al,ah
mov ah,0
div bl
add ax,3030h
mov [rowline+5],al
mov [rowline+6],ah
mov ax,0
mov al,dl
div bh
add al,30h
mov [rowline+14],al
mov al,ah
mov ah,0
div bl
add ax,3030h
mov [rowline+15],al
mov [rowline+16],ah
window 0,5dh,24,60,24,79
pos_curse 0,24,60
mov dx,offset rowline
mov ah,09h
int 21h
ret
win4 endp
code ends
end start ;结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -