Esta es la rutina de transmisión. En este caso al revés que en el anterior, se recogerá los datos de un fichero .bin y se enviarán a la memoria del procesador.
Al igual que en el caso anterior el nombre del fichero lo dará el programa principal y esta rutina lo abrirá. Si en este proceso resulta un error, abrirá una ventana emergente indicando el error.
Si todo va bien leerá el fichero completo y enviará los datos a la memoria del sistema.
TRANSMIT.ASM
; Copyright (C) 2013 José Ángel Moneo Fernández ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; along with this program. If not, see <http://www.gnu.org/licenses/
include main.mac
include stdio.mac
include 48iocent.mac
include mouse.mac
include io.mac
include window.mac
INCLUDE 8051.MAC
.model compact,pascal
public TRANSM
.data
extrn file:byte
extrn m_Ventana:byte
hand1 dw 0
nada db 0
err_ab db "No se puede Abrir Fichero",0
dato dw 0,0
ends
.code
extrn guarda:near
transm proc near uses cx bx
mov cx,3
abrir:
open file,_R,hand1
jnc bueno
loop abrir
getwindow m_ventana,10,10,12,37
window 10,10,12,37,nada
gotoxy 11,11
printf err_ab
getch al
putwindow m_ventana,10,10,12,37
ret
bueno:
mov dx,0
otro:
read hand1,1,dato ;lee dato
cmp ax,0
jz fin
mov bx,offset dato
mov cx,1
call guarda
jmp otro
fin:
cmp hand1,0
jz no_cerrar
close hand1
no_cerrar:
fin_fin:
ret
transm endp
end transm
No hay comentarios:
Publicar un comentario
Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.