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

📄 jywbbjq.txt

📁 简易文本编辑器。在出现的界面中输入任意文本内容
💻 TXT
📖 第 1 页 / 共 2 页
字号:
red_chr macro                              ;读取字符宏定义 
        mov ah,0 
        int 16h 
endm 
string  macro p1                          ;输入字符光标 
        mov ah,9 
        lea dx,p1 
        int 21h 
endm 
win macro opr1,opr2,opr3,opr4,opr5,opr6    ;建立窗口 
         mov ah,06h 
         mov al,opr1 
         mov bh,opr2 
         mov ch,opr3 
         mov cl,opr4 
         mov dh,opr5 
         mov dl,opr6 
         int 10h 
endm 
pos_curse macro op1,op2,op3               ;定义光标位置 
         mov ah,2 
         mov bh,op1 
         mov dh,op2 
         mov dl,op3 
         int 10h 
endm 
pos_get  macro                             ;显示光标位置 
         mov ah,03h 
         mov bh,0 
         int 10h 
endm 
data     segment                           ;定义数据段 
         menu     db 'File  Edit  Help $' 
         
         mass_1   db 'F1 Active file     F10 Active help','$' 
         manu_1   db ' New      ',13,10,'$' 
         manu_2   db ' Open     ',13,10,'$' 
         manu_3   db ' Save     ',13,10,'$' 
         manu_4   db ' Save as  ',13,10,'$' 
         manu_5   db ' Exit     ','$' 
         handle   dw ? 
         message1 db ' Please input file name:','$' 
         message2 db ' Please input save file name:','$' 
         message3 db ' Please input open file name:','$' 
         message4 db ' ***The file is not save! Save it now? (Y/N)***: ','$' 
         path     db 50 dup(0),'$' 
         buffer   db 2000 dup(?) 
         bak      db 3850 dup(0) 
         line     db ? 
         row      db ? 
         char     db ? 
    help_mas1 db ' welcome use editor! $'       ;帮助内容 
    help_mas2 db 'please the first active help! $' 
    help_mas3 db 'good lucky!! $' 
    help_mas4 db '==========================================================$' 
    help_mas5 db 'Press F1 to active file. $' 
    help_mas6 db 'You can use DOWN cursor key to choose the fuction $' 
    help_mas7 db 'Press F10 to show the help massage.Press Esc To Quit$' 
    date  db  'today ??/??/','$'      ;调用日期 
    hanglie db '???//???','$'        ;行//列 
data     ends 
code     segment                        
main     proc far                           ;主程序 
         assume cs:code,ds:data 
start: 
         push ds 
         sub  ax,ax 
         push ax 
         mov  ax,data 
         mov  ds,ax 
         call wind                  
         call edit                                 
         ret 
main     endp 
wind proc near                               ;创建窗口子程序 
         win 0,3eh,1,0,24,79                 ;定义窗口背景 
         win 1,1fh,0,0,0,79 
         win 0,1fh,24,0,24,79 
show:			                     ;显示菜单位置及内容 
         pos_curse 0,0,1			  
         mov ah,9 
         lea dx,menu 
         int 21h 
show_2:					     ;显示状态栏位置及内容 
         pos_curse 0,24,1 
         mov ah,9 
         lea dx,mass_1 
         int 21h 
         call win3 
         call win4 
         pos_curse  0,1,0 
         mov row,dh 
         mov line,dl 
wind endp 
edit proc near 
char_get:                             ;读字符 
      call com 
com proc near                         ;定义功能鍵 
        pos_get 
        mov  row,dh 
        mov  line,dl 
first: 
        pos_curse 0,row,line 
j00:    mov ah,0 
        int 16h                        ;从键盘读字符 ah=扫描码 al=字符码 
        push ax 
        lea dx,buffer 
        mov buffer[bx],al 
        inc bx 
        cmp  ah,48h                    ;上 
        jz   up_1 
        cmp  ah,50h                    ;下 
        jz   down_1 
        cmp  ah,4bh                    ;左 
        jz   left 
        cmp  ah,4dh                    ;右 
        jz   right 
        cmp  ah,1ch                    ;回车 
        jz   enter_1 
        call fuc_key 
        mov ah,2 
        mov dl,al 
        int 21h 
        pop ax 
        call  menu_show 
        jmp   j6 
down_1: 
        jmp down 
enter_1: 
        jmp enter_2 
up_1:   jmp up 
left:                                   ;光标左移 
        pos_get 
        mov row,dh 
        mov dl,line 
        cmp line,0 
        jnz direct 
        mov line,79 
        dec row 
        cmp row,0 
        je  stop2                                             
        jmp first 
stop2:  
        mov row,1 
        jmp first 
direct:    
        dec line 
        call win4                      ;显示光标位置 
        jmp first 
right:                                 ;光标右移 
        pos_get 
        mov row,dh 
        mov dl,line 
        cmp line,79 
        jnz direct2 
        mov line,0 
        inc row 
        cmp row,24 
        je  returns1        
        jmp first 
direct2: 
        inc  line 
        call win4 
        jmp first 
enter_2: 
        jmp enter 
up:                                     ;上移光标 
        pos_get 
        mov row,dh 
        mov dl,line 
        dec row 
        cmp row,0 
        je  stop1 
        call win4 
        jmp first 
stop1:   
        mov row,1 
        jmp first 
down:                                    ;下移光标 
        pos_get 
        mov row,dh 
        mov dl,line    
        inc row 
        cmp row,24 
        je  stop3 
        call win4 
        jmp first 
stop3:   
        mov row,23 
        jmp first 
returns1: 
        jmp returns 
enter:                                   ;回车换行 
        pos_get 
        mov row,dh 
        mov line,dl 
        inc row 
        cmp row,24 
        je  returns 
        mov line,0 
        call win4 
        jmp first 
returns: 
        mov row,24 
 	mov line,0 
	jmp first 
j6:      
        ret 
com     endp 
fuc_key proc near                 ;功能键子程序   
 next:   
        cmp ah,47h                ;home 
        jz  home 
        cmp ah,4fh                ;end 
        jz  _end 
        cmp ah,0eh                ;backspace 
        jz  bak_sp 
        cmp ah,53h 
        jz  del 
        cmp ah,44h                ;F10 
        jz  help_0 
        ret 
help_0: call help 
home:                             ;HOME键的功能 
        pos_get 
        mov row,dh 
        mov line,0 
       call win4 
        jmp first     
_end:                             ;END键的功能 
        pos_get 
        mov row,dh 
        mov line,79 
       call win4 
        jmp first 
bak_sp:                           ;退格键的功能 
        pos_get 
        mov row,dh 
        mov line,dl 
        cmp line,0 
        je  stop 
        dec line 
        jmp ab 
stop:	 
        mov line,0  
ab:      
        pos_get 0,row,line 
        mov ah,2 
        mov dl,00 
        int 21h 
        call win4 
        jmp first 
del:                                ;DEL删除 
        pos_get 
        mov row,dh 
        mov line,dl 
        dec line 
        pos_get 0,row,line 
        mov ah,2 
        mov dl,00 
        int 21h 
        inc line 
        call win4 
        jmp first 
cm:      
        cmp line,00 
        jz  pos_cm 
pos_cm: 
        pos_curse 0,0,0 
        jmp first 
help proc near                       ;显示帮助信息 
      call savedisplay               ;显示帮助信息每行的位置 
      pos_get 
      push dx 
      win 0,57h,4,5,21,70 
      pos_curse 0,6,25 
      string help_mas1 
      pos_curse 0,8,11 
      string help_mas2 
      pos_curse 0,10,11 
      string help_mas3 
      pos_curse 0,12,11 
      string help_mas4 
      pos_curse 0,14,11 
      string help_mas5 
      pos_curse 0,16,11 
      string help_mas6 
      pos_curse 0,18,11 
      string help_mas7 
      pop dx 
      pos_curse 0,dh,dl 
      mov  ah,0 
      int  16h 
      cmp  ah,36h                       ;F10 active help 
      jnz  cls 
      call help 
cls:     
      win 0,1eh,9,10,13,70              ;清屏 
      call backdisplay 
help endp  
fuc_key endp 
menu_show proc near                     ;显示菜单 
        call savedisplay 
        push cx 
        cmp ah,3bh                      ;F1功能 
        jz  menu_sh 
        jmp char_get 
menu_sh:                                ;定义菜单的背景字体颜色 
        pos_get 
        push dx 
        win 0,06h,2,1,7,11 
        win 0,65h,1,0,6,10 
        pos_curse 0,1,0 
        string manu_1 
        string manu_2 
        string manu_3 
        string manu_4 
        string manu_5 
        pop dx 
        dec dl 
        pos_curse 0,dh,dl 
copmar:     
        red_chr  
        cmp ah,50h                  
        jz  manu_n 
        jmp manu_hid 
manu_hid:                               ;菜单隐藏 
        win 0,1eh,1,1,7,11 
        call backdisplay 
        jmp char_get 
manu_n:					;开始定义各个菜单项 
        win 0,65h,5,1,5,8 
        pos_curse 0,5,0 
        string manu_5 
        win 0,15h,1,1,1,8 
        pos_curse 0,1,0 
        string manu_1 
        red_chr 
        cmp ah,48h 
        je  manu_n 
        cmp al,0dh 
        jz  new_1 
        cmp ah,50h 
        je  manu_o 
        jmp manu_hid 
manu_n0: 
        jmp manu_n 
manu_o: 
        win 0,65h,1,1,1,8 
        pos_curse 0,1,0 
        string manu_1 
        win 0,15h,2,1,2,8 
        pos_curse 0,2,0 
        string manu_2 
        red_chr 
        cmp ah,48h 
        je  manu_o 
        cmp al,0dh 
        jz open_1 
        cmp ah,50h 
        je  manu_s 
        jmp manu_hid 
new_1:  jmp new_2 
manu_s: 
        win 0,65h,2,1,2,8 
        pos_curse 0,2,0 
        string manu_2 
        win 0,15h,3,1,3,8 
        pos_curse 0,3,0 
        string manu_3 
        red_chr 
        cmp al,0dh 
        jz  save_1 
        cmp ah,48h 
        je  manu_s 
        cmp ah,50h 
        je  manu_a 
        jmp manu_hid 
open_1: jmp open_2 
manu_n1: 
        jmp manu_n 
manu_a: 
        win 0,65h,3,1,3,8 
        pos_curse 0,3,0 
        string manu_3 
        win 0,15h,4,1,4,8 
        pos_curse 0,4,0 
        string manu_4  
        red_chr 
        cmp ah,1ch 
        jz  save_2 
        cmp ah,48h 
        je  manu_a 
        cmp ah,50h 
        je  manu_e 
        jmp manu_hid 
manu_n2: 
        jmp manu_n1 
new_2:  jmp new 
save_1: call save 
save_2: call saveas 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -