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

📄 dvv.asm

📁 dos 工业控制 ad676 模数转换数据采集
💻 ASM
📖 第 1 页 / 共 2 页
字号:
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 + -