;COPYUN: Unpacker para el proyecto de fin de carrera ; (M‚todo 3 - COPY > sin compresi¢n) ; ; Realizado en lenguaje ensamblador, se compila con NASM ; ; - El programa maestro de Windows, recibe por el puerto serie el nombre del ; archivo y permite elegir la localizaci¢n del directorio de salida ; visualmente. Entonces graba el nombre del archivo con su path y acabado en ; 0 en otro archivo llamado SALIDA.ARC, que se coloca en el mismo path del ; programa, donde tambi‚n est  situado este m¢dulo de descompresi¢n. ; ; - Este modulo de compresi¢n tiene como misi¢n abrir el archivo comprimido ; ENTRADA.CMP y descomprimir el archivo comprimido en el path y con el nombre ; que han sido indicados en SALIDA.ARC org 256 mov ax,3d00h ;Funci¢n para abrir archivo mov dx,namein ;Nombre del archivo a abrir int 33 ;Abrir ENTRADA.CMP jnc noerror01 ;Si no hay error, continuar mov ax,4c01h ;C¢digo de error 1 int 33 ;Salir a Windows noerror01 mov [handlein],ax ;Salvar handle de ENTRADA.CMP mov ax,3d00h ;Funci¢n para abrir archivo mov dx,namepath ;Nombre del archivo a abrir int 33 ;Abrir SALIDA.ARC jnc noerror02 ;Si no hay error, continuar mov ax,4c02h ;C¢digo de error 2 int 33 ;Salir a Windows noerror02 xchg ax,bx ;Handle de SALIDA.ARC en bx mov ah,3fh ;Funci¢n para leer de archivo mov cx,400 ;N£mero m ximo de bytes a leer mov dx,pathbuffer ;Posici¢n donde se escriben los bytes int 33 ;Leer bytes jnc noerror03 ;Si no hay error, continuar mov ax,4c03h ;C¢digo de error 3 int 33 ;Salir a Windows noerror03 mov si,dx ;Apuntar al nombre de archivo con path mov dx,18 ;Crear o truncar archivo existente mov bx,1 ;Modo de acceso solo escritura xor cx,cx ;Sin atributos mov ax,716ch ;Funci¢n para crear o abrir archivo ; usando nombres largos int 33 ;Crear archivo de salida jnc noerror05 ;Si no hay error, continuar mov ax,4c05h ;C¢digo de error 5 int 33 ;Salir a Windows noerror05 mov [handleout],ax ;Salvar handle del archivo de salida buclecopy mov ah,3fh mov bx,[handlein] mov cx,6000 mov dx,buffer int 33 ;Leer archivo jnc noerror06 mov ax,4c06h ;C¢digo de error 6 int 33 ;Salir a Windows noerror06 xchg ax,cx ;N£mero de bytes leidos en cx jcxz exit ;Si es 0, salir mov ah,40h mov bx,[handleout] int 33 ;Escribir archivo jnc noerror07 mov ax,4c07h ;C¢digo de error 7 int 33 ;Salir a Windows noerror07 jmp buclecopy ;Seguir copiando exit mov ax,4c00h ;C¢digo de error 0 (sin problemas) int 33 ;Salir a Windows namein db "ENTRADA.CMP",0 namepath db "SALIDA.ARC",0 section .bss handleout resw 1 handlein resw 1 pathbuffer resb 400 buffer resb 6000 ;errorlevels: ; ; 0 - OK, no error ; 1 - No se puede abrir ENTRADA.CMP ; 2 - No se puede abrir SALIDA.ARC ; 3 - No se puede leer SALIDA.ARC ; 5 - No se puede crear el archivo de salida ; 6 - Error de lectura e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


TRANSMISIÓN POR PUERTO SERIE UTILIZANDO COMPRESIÓN DE DATOS.

: Tejedor Gómez, Jaime
: Ingeniería Telecomunicación
Contenido del proyecto: