📄 dvv.asm
字号:
stack segment para stack 'stack'
sr db 5120 dup(?)
top equ length sr
stack ends
dat1 segment
w11 dw 32700 dup(?)
dat1 ends
dat2 segment para public 'data'
w12 dw 32700 dup(?)
dat2 ends
dat3 segment para public 'data'
w13 dw 32700 dup(?)
dat3 ends
dat4 segment para public 'data'
w14 dw 32700 dup(?)
dat4 ends
dat5 segment para public 'data'
w15 dw 32700 dup(?)
dat5 ends
dat6 segment para public 'data'
w16 dw 32700 dup(?)
dat6 ends
data segment para public 'data'
testi dw 0
xw1 dw 2 dup(?)
xw2 dw 2 dup(?)
xw3 dw 2 dup(?)
xw4 dw 2 dup(?)
xw5 dw 2 dup(?)
xw6 dw 2 dup(?)
openmsg db 'open error $'
readmsg db 'read error$'
dk db ' end of sampling. now doing(0---again,2---display,1---return)?',0ah,0dh,24h
rowcrt db 0
odskrecs db 1024 dup(33h)
db '$'
ofcbrec label byte
ofcbdriv db 03
ofcbname db 'oamefile'
ofcbext db 'dat'
ofcbblk dw 0000
ofcbrcsz dw 0000
ofcbflz dd ?
dw ?
dt ?
hh db 00
ofcbrnrc dd 00000000
oendcode db 00
onorecs dw 50
writemsg db 'write error$'
creatmsg db 'creat error$'
file1 db 'data000sdat'
file2 db 'data0001dat'
file3 db 'data0002dat'
file4 db 'data0003dat'
file5 db 'data0004dat'
file6 db 'data0005dat'
pbuff dw 0
wbuff dw 0
buff dw 5600 dup(24h)
cbuff dw 5 dup(24h)
r0 dw 0
ci0 db 0
cw0 dw 0
ws0 dw 0
ie db 1
ok db 'good$'
me db 'sorry$'
er0 db 'overflow$'
er1 db 'end normly$'
doing db 'Now reading file(1--5) from hard disk$'
finish db 'End of file input$'
bade db 'sampl(0--1)?$'
dfile db 'store data ,filename?$'
rfile db ' filename for inputing?$'
filename db 14
db 11 dup(40h)
fileplay db ' display model(8---return,(1--5)--last data,7--direct,9--on input file$'
bad db 'begain sample$'
oer_r db 'open err for reading$'
dskrecs db 800 dup(20h)
db '$'
fcbrec label byte
fcbdriv db 03
fcbname db 'oamefile'
fcbext db 'dat'
fcbblk dw 0000
fcbrcsz dw 0000
fcbflz dd ?
dw ?
dt ?
hh_p db 00
fcbrnrc dd 00000000
endcode db 00
norecs dw 25
crsp1 dw 0
crs6 dw 0
crs4 dw 0
crs5 dw 0
vcx db 0
vcy db 0
vccx db 1
vacc dw 300
sw10 dw 0
sw20 dw 0
vaxx dw 300
vaxy dw 300
H_00C DW 0
H_01C DW 0
data ends
cod segment para public 'cod'
start proc far
push ds
mov ax,0
push ax
assume cs:cod,ds:data,ss:stack,es:dat1
assume es:dat2,es:dat3,es:dat4,es:dat5
mov ax,data
mov ds,ax
mov es,ax
mov ax,stack
mov ss,ax
mov ax,offset top
mov sp,ax
mov xw1,0
mov cx,0
mov bx,offset xw1
mov ax,dat1
mov [bx+2],ax
add bx,4
mov [bx],cx
mov ax,dat2
mov [bx+2],ax
add bx,4
mov [bx],cx
mov ax,dat3
mov [bx+2],ax
add bx,4
mov [bx],cx
mov ax,dat4
mov [bx+2],ax
add bx,4
mov [bx],cx
mov ax,dat5
mov [bx+2],ax
add bx,4
mov [bx],cx
mov ax,dat6
mov [bx+2],ax
smai: mov ie,1
mov xw1,0
mov ax,offset get
mov wbuff,0
mov testi,ax
call q10clr
jmp oo_0
call setime
in al,21h
and al,0bch
out 21h,al
mai: nop
test ie,0ffh
jnz mai
cli
in al,21h
or al,01h
out 21h,al
call retime
in al,21h
and al,0bch
out dx,al
ppok: sti
call stdsk
j_p: call first_p
oo_0: nop
pp: mov ah,9
mov dx,offset dk
int 21h
mov ah,0
int 16h
cmp al,30h
jz remai
cmp al,32h
jz playyy
cmp al,31h
jnz pp
call retime
call q10clr
push ds
pop es
mov ah,4ch
int 21h
remai: jmp smai
playyy: mov dx,offset fileplay
mov ah,9
int 21h
mov ah,0
int 16h
cmp al,38h
jz p_end
cmp al,37h
jz p_7
cmp al,30h
jb p_0
cmp al,35h
ja p_0
sub al,30h
mov bl,al
mov si,offset file1
mov [si+4],bl
mov [si+15],bl
mov [si+26],bl
mov [si+37],bl
mov [si+48],bl
mov [si+59],bl
mov [si+70],bl
call p_main
jmp p_7
p_0: nop
cmp al,39h
jz p_f
jmp playyy
p_end: call q10clr
push ds
pop es
mov ah,4ch
int 21h
p_f: call repfilename
call p_main
p_7: call first_p
jmp playyy
p_main proc near
call q10clr
mov dx,offset doing
mov ah,9
int 21h
mov bx,offset file1
mov si,offset fcbname
mov cx,11
pllp: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pllp
mov ax,dat1
mov es,ax
call playmain
mov bx,offset file2
mov si,offset fcbname
mov cx,11
pl_1: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pl_1
mov ax,dat2
mov es,ax
call playmain
mov bx,offset file3
mov si,offset fcbname
mov cx,11
pl_2: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pl_2
mov ax,dat3
mov es,ax
call playmain
mov bx,offset file4
mov si,offset fcbname
mov cx,11
pl_3: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pl_3
mov ax,dat4
mov es,ax
call playmain
mov bx,offset file5
mov si,offset fcbname
mov cx,11
pl_4: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pl_4
mov ax,dat5
mov es,ax
call playmain
mov bx,offset file6
mov si,offset fcbname
mov cx,11
pl_6: mov al,[bx]
mov [si],al
add bx,1
add si,1
loop pl_6
mov ax,dat6
mov es,ax
call playmain
call q10clr
mov dx,offset finish
mov ah,9
int 21h
ret
p_main endp
repfilename proc near
call q10clr
mov dx,offset rfile
mov ah,9
int 21h
mov ax,0c0ah
mov dx,offset filename
int 21h
mov bx,offset filename
add bx,2
mov si,offset file1
mov cx,11
fllp: mov al,[bx]
mov [si],al
mov [si+11],al
mov [si+22],al
mov [si+33],al
mov [si+44],al
mov [si+55],al
add bx,1
add si,1
loop fllp
mov bx,offset file2
mov cx,5
mov al,31h
p_f00: mov [bx+7],al
add al,1
add bx,11
loop p_f00
ret
repfilename endp
playmain proc near
mov fcbblk,0
mov fcbrcsz,0
mov ax,0
mov bx,offset hh_p
mov [bx],al
add bx,1
mov [bx],ax
mov [bx+2],ax
mov endcode,0
mov wbuff,0
call oneread
ret
playmain endp
oneread proc near
push es
call q10clr
call q20curs
call e10open
pop es
cmp endcode,00
jnz b30
reloop: nop
call f10read
cmp endcode,00
jz reloop
mov ah,10h
lea dx,fcbrec
int 21h
ret
b30: lea dx,oer_r
mov ah,9
int 21h
ret
oneread endp
e10open proc near
lea dx,fcbrec
mov ah,0fh
int 21h
cmp al,00
jnz e20
mov fcbrcsz,0020h
mov ah,1ah
lea dx,dskrecs
int 21h
ret
e20: mov endcode,01
lea dx,openmsg
call x10err
ret
e10open endp
f10read proc near
push es
mov ah,27h
mov cx,norecs
lea dx,fcbrec
int 21h
mov endcode,al
mov cx,400
mov si,offset dskrecs
mov bx,wbuff
pop es
p_09: mov ax,[si]
mov es:[bx],ax
add si,2
add bx,2
loop p_09
mov wbuff,bx
ret
f10read endp
g10disp proc near
mov ah,09
lea dx,dskrecs
int 21h
ret
g10disp endp
r2data proc near
push bx
push cx
push dx
mov cx,32000
mov di,wbuff
r20l: nop
mov ax,dat5
push cx
mov bx,0
mov cx,40
mov es,ax
mov ax,0
mov dx,0
aq_00: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_00
mov cx,40
div cx
mov es:[di],ax
mov ax,dat4
mov es,ax
mov ax,0
mov dx,0
mov bx,0
mov cx,40
aq_01: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_01
mov cx,40
div cx
mov es:[di],ax
mov ax,dat3
mov es,ax
mov cx,40
mov dx,0
mov ax,0
mov bx,0
aq_02: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_02
mov cx,40
div cx
mov es:[di],ax
mov ax,dat2
mov es,ax
mov cx,40
mov dx,0
mov ax,0
mov bx,0
aq_03: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_03
mov cx,40
div cx
mov es:[di],ax
mov ax,dat1
mov es,ax
mov cx,20
mov bx,0
mov dx,0
mov ax,0
aq_04: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_04
mov cx,20
div cx
mov es:[di],ax
mov ax,dat6
mov es,ax
mov cx,20
mov bx,0
mov dx,0
mov ax,0
aq_06: add ax,es:[di][bx]
adc dx,0
add bx,2
loop aq_06
mov cx,20
div cx
mov es:[di],ax
add di,2
pop cx
loop r200l
call h_data1
call f_data1
call h_data2
call f_data2
pop dx
pop cx
pop bx
ret
r200l: jmp r20l
r2data endp
first_p proc near
call q10clr
mov cx,1333
mov wbuff,2
call r2data
mov wbuff,2
pp_88: mov bx,offset dskrecs
push cx
call repdata
pop cx
loop pp_88
ret
mov ah,1
int 16h
jz pp_99
jmp pp_88
pp_99: mov ah,0
int 16h
cmp al,36h
jnz pp_88
ret
first_p endp
repdata proc near
push bx
mov bh,0
mov ah,02
mov cx,00
mov dx,0100h
; int 10h
mov di,wbuff
add di,20
mov cx,24
pop bx
pp_77: mov ax,dat6
push di
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_6
ps_6: push ax
mov ax,dat5
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_0
nop
ps_0: push ax
mov ax,dat4
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_1
nop
ps_1: push ax
mov ax,dat3
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_2
nop
ps_2: push ax
mov ax,dat2
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_3
nop
ps_3: push ax
mov ax,dat1
mov es,ax
mov ax,es:[di]
push ax
sub ax,es:[di-20]
jnc ps_4
ps_4: nop
mov bx,offset dskrecs
call outc
mov dx,2020h
mov [bx],dx
mov [bx+2],dx
add bx,2
pop ax
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,2
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,1
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,1
call outc
pop ax
mov dx,2020h
mov [bx],dx
add bx,1
call outc
mov ax,0a0dh
mov [bx],ax
add bx,2
mov al,24h
mov [bx],al
mov dx,offset dskrecs
mov ah,9
int 21h
pop di
add di,2
loop pp_777
add wbuff,48
ret
pp_777: jmp pp_77
repdata endp
stdsk proc near
call q10clr
jmp no
mov dx,offset dfile
mov ah,9
int 21h
mov ax,0c0ah
mov dx,offset filename
int 21h
no: mov bx,offset file1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -