#11 Article 172 Posted at 1987/06/11 04:03:41 by NOZOMU (MAP041) [PRG.NL2]
Subject: NEDI for 98+MASM ソノ1
;
; NEDI MASM version for PC-9801
;
; Programmed at '87/06/11 by NOZOMU
;
pgroup group prog
prog segment byte public 'prog'
ASSUME CS:PGROUP,ds:pgroup,es:pgroup,ss:pgroup
org 100h
start:
push ax
push bx
push cx
push dx
mov ah,09h ;Display string
mov dx,offset cls
int 21h
mov gray,1
mov ah,64 ;Admit to display graphic
int 24
mov ah,12h ;corsor off
int 18h
;--------------------------------------
main_loop:
mov ax,8
push ax
push yp
push xp
call pset
mov ah,07h ;Direct condole input
int 21h
cmp al,'l'
jne not_load_data
call load_data
jmp short main_loop
not_load_data:
cmp al,'s'
jne not_save_data
call save_data
jmp short main_loop
not_save_data:
cmp al,'g'
jne not_change_mode
call change_mode
jmp short main_loop
not_change_mode:
cmp al,3
je exit_program
call move_cursor
call point_edit
mov ax,offset logical_page
push ax
push yp
push xp
call point
push ax
push yp
push xp
call pset
jmp short main_loop
;--------------------------------------
load_data:
push bx
mov bx,offset load_message
push bx
mov ax,offset file_name
push ax
call input_file_name
mov bx,offset logical_page
push bx
mov ax,offset file_name
push ax
call read
cmp ax,0ffffh
je not_loaded
push bx
call display
not_loaded:
mov ah,64 ;Admit to display graphic
int 24
pop bx
ret
;--------------------------------------
save_data:
push bx
mov bx,offset save_message
push bx
mov ax,offset file_name
push ax
call input_file_name
mov bx,offset logical_page
push bx
mov ax,offset file_name
push ax
call write
cmp ax,0ffffh
je not_saveed
not_saveed:
mov ah,64 ;Admit to display graphic
int 24
pop bx
ret
;--------------------------------------
change_mode:
push bx
xor byte ptr gray,1
mov bx,offset logical_page
push bx
call display
pop bx
ret
;--------------------------------------
exit_program:
mov ah,11h ;corsor on
int 18h
pop dx
pop cx
pop bx
pop ax
ret
;--------------------------------------
move_cursor:
push bx
cmp al,8
jnz not_left
mov bx,xp
cmp bx,1
jb not_left
mov ax,offset logical_page
push ax
push yp
push xp
call point
push ax
push yp
push xp
call pset
dec bx
mov xp,bx
pop bx
ret
not_left:
cmp al,0ch
jnz not_right
mov bx,xp
cmp bx,158
ja not_right
mov ax,offset logical_page
push ax
push yp
push xp
call point
push ax
push yp
push xp
call pset
inc bx
mov xp,bx
pop bx
ret
not_right:
cmp al,0bh
jnz not_up
mov bx,yp
cmp bx,1
jb not_up
mov ax,offset logical_page
push ax
push yp
push xp
call point
push ax
push yp
push xp
call pset
dec bx