Sfop_menu db Odh,Oah,'Stop bit:',Odh,Oah card_base dw O2f8h saddress of RS 232 card setup_byte db Obbh ;Origin O_int_off dw OOO0Oh ‘offset circular buffer and pointer: dw 0 data_n dw 0
Trang 1I Chương 11: CHƯƠNG TRÌNH TRUYỀN DỮ LIỆU TỪ
MÁY TÍNH
STACK stacksegment stack
db '<F5> to redisplay this MENU',Odh,Oah
db '<F7> to display protocol installed',Odh,Oah
program',0dh,0ah
db 'All character typed are transmitter’,Odh,Oah
PROT_MS db '* Installed communications
protocol',0dh,0ah
db ‘Baud rate:'
Trang 277 = 4800',Odh,Oah '8 = 9600',0dh,O0ah
Trang 3Sfop_menu db Odh,Oah,'Stop bit:',Odh,Oah
card_base dw O2f8h saddress of RS 232 card
setup_byte db Obbh
;Origin
O_int_off dw OOO0Oh ‘offset
circular buffer and pointer:
dw 0 data_n dw 0Ô simput pointer
data_out dw 0 ;output pointer
Trang 4mov es,ax
sdisplay MENU at cursor
mov dx,offsetmenu_ms ;messages
sget addr of the RS232 card from BIOS data area
;determine interrupt number:
Trang 6comm_off
ah,37 alint_num dx,o_int_off
ax,o_int_seg
ds,ax
21h
ah,76 al,0
21h
,redIsplay menu
show_ menu:
Trang 7mov dx,offset menu_ms
mov al,byte ptr[si]
;update output pointer
sub al,30h sascil to binary
sub al,l sto range O to 7
push ax
Trang 9mov s1,offset stop%
mov byte ptr[si],al
Trang 10svalid input range is '1' or '2'
mov s1,offset word%
mov byte ptr[si],al
Trang 11Ò X3 k3 š Xš & % k X % š & X k X X % 3k š X3 š is 2c ois 2s 2h 3k š 3š 3 % š 3% 2k š % š 3X
;CAC CHUONG TRINH CON
comm_on proc near
chi sinterrupt off
Trang 12sreset buffer pointer to start of buffer
Trang 13show_message proc near
Trang 14se( key proc near
mov dx,card_base mov dl,Ofdh
in al,dx
jmp short $+2
test al,leh
jnz data_error jmp data_check
data_error:
mov al,'l'
jmp store_byte data_ready:
Trang 15call set name ;doc ten file
lea dx,buffer ;tro to1 vung dem
mov bx,handle ;lay the file
call read doc file, AX = so byte doc duoc
jes pexit ;,dung, ket thuc file
Trang 16mOV CX,aX ;CX chua so byte doc duoc
call display ;h1en thi file
Jmp read_loop ;lap lai
open_error:
lea dx,openerr slay thong bao loi
add_ errcode,al
mov ah,9
int 21h shien thi thong bao loi
Ò X3 k3 š Xš & % k X % š & X k X X % 3k š X3 š is 2c ois 2s 2h 3k š 3š 3 % š 3% 2k š % š 3X
;wait period timed out,display error message and exit
mov dx,offset errl_ms
Trang 17mov cx,256
splace in transmitter hoding register to send
mov dx,card_base
lea di,buffrr tro to1 vung dem
ppl: mov al,[di] slay byte data
ppexit:mov bx,handle ;lay the file
call close ;dong the file
lea di,filename SDI tro toi ten file
mov ah,1 sham doc ki tu tu ban phim
read_name:
cmp al,Odh ,co phai CR
je done ,dung ket thuc
stosb ;luu no vao trong chuoi
jmp read_name stiep tuc doc vao
Trang 18done: mov al,0
sham ghi file
sthe file cho man hinh
;dong file
mov ah,3ehL Ì;ham dong file
Trang 19int 21h ;dong file
Trang 20si,buffrr di,buffer
mov al,[di] slay byte data
xxx2 snhay neu la dau ':
di xxx3 ;quay lai de tim dau `:
call ktra_end ;goI chuong trinh kiem tra ket thuc
xxx4 pop si
al,[di] slay so can goi MSD
al,30h stru di 30 de thanh so hex so_lon skiem tra so ABCDEF cl,4
al,cl
ah,al di
Trang 21al,ah
[si],al
al,1 dl,al
go1_ht
slay so can go LSD
stru di 30 de thanh so hex skiem tra so ABCDEF
sor 2 data lai thanh | byte
scat so HEX ADDR_H
sluu so byte can xu li con lai
xu li phan dia chi can goi
al,30h so_lon
cl,4 al,cl
ah,al
di al,[di]
al,30h so_lon
al,ah
[si],al
goi_ht
di S1 al,[di]
al,30h so_lon
cl,4 al,cl
ah,al
slay byte ADDR_L-MSD
stru di 30 de thanh so hex skiem tra so ABCDEF
slay byte ADDR_L-LSD
stru di 30 de thanh so hex skiem tra so ABCDEF
sor 2 data lai thanh | byte
scat so HEX ADDR_H
slay byte ADDR_H-MSD
stru di 30 de thanh so hex skiem tra so ABCDEF
Trang 22al,30h so_lon
al,30h so_lon
cl,4 al,cl
ah,al
di al,[di]
al,30h so_lon
al,ah
[si],al
go1_ht
dl đ1,0
XXx |
di
di
di XXx3
slay byte ADDR_H-LSD
stru di 30 de thanh so hex skiem tra so ABCDEF
sor 2 data lai thanh | byte
scat so byte can goi dang HEX
sbo byte OO
slay so byte thu nhat
stru di 30 de thanh so hex skiem tra so ABCDEF
slaq so byte thu 2
stru di 30 de thanh so hex skiem tra so ABCDEF
sor 2 data lai thanh | byte
scat so byte can goi dang HEX
squay lai vi chua sbo byte cuoi thu nhat
;bo byte thu 2
;bo ma xuong hang shet | hang data
Trang 23L lcmp
con hex endp
ktra_end proc near
chuong trinh kiem tra ket thuc
slay byte data skiem tra byte O thu nhat snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 2
slay byte data
snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 3
slay byte data
snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 4
slay byte data
snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 5
slay byte data
snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 6
slay byte data
snhay den de thoat vi khong phai sneu dung thi kiem tra byte O thu 7
slay byte data snhay den de thoat vi khong phai
Trang 24Inc di sneu dung thi kiem tra byte | thu 8 mov al,[di] slay byte data
cmp al,3lh
jnz kt_exit ;nhay den de thoat vi khong phai Inc di sneu dung thi kiem tra byte F thu 9 mov al,[di] slay byte data
cmp al,46h
jnz kt_exit ;nhay den de thoat vi khong phai Inc di sneu dung thi kiem tra byte F thu 10 mov al,[di] slay byte data