tyropitas
Programmer
- Dec 14, 2007
- 1
Im new to assembly and i m currently trying to learn.I ve been trying to develop a transfer system between 2 computers using a null modem cable. I ve managed to code my transmitter but i can't get around the reverse proccess and code the receiver.Could someone help me with it?
Here is my transmitter:
Here is my transmitter:
Code:
#include <stdio.h>
int main (void) {
//Define Variables
char Textfile[] = "C:\\text.txt"; //File that holds the data to transmit
char Comport[] ="COM2"; //Define Serial Port
FILE * readfile;
FILE * writecom;
char error[] = "Unable to open File/Comport\n\n"; //TERMINATION with an error message
char chartosend;
char readaccess[] ="r";
char writeaccess[] ="wt";
_asm {
//check if the port can be accessed
lea eax,writeaccess //check acess and move it to the stack
push eax
lea eax,Comport //check port and move it to the stack
push eax
call fopen
add esp,8 //Clean the stack
cmp eax, 0
mov writecom, eax
je TERMINATION //If it doesn't writecom then run TERMINATION for handling errors
//check if textfile is accessible
lea eax,readaccess //check for readaccess for the textfile and move it to the stack
push eax
lea eax, Textfile //check for textfile and move it to the stack
push eax
call fopen
add esp, 8 //Clean the stack
cmp eax, 0
mov readfile, eax
je TERMINATION //If it doesn't open readfile then run TERMINATION for handling errors
WHILENOTEOF:
//IF no more data can be read from a data source get each character from the file
mov eax, readfile
push eax
call fgetc
add esp, 4
//check if EOF has been reached
cmp al, EOF
je FILECLOSE
mov chartosend, al
push eax
add esp, 4
//write characters to comport
mov eax, writecom
push eax
mov al, chartosend
push eax
call fputc
add esp, 8
jmp WHILENOTEOF
FILECLOSE:
//Add closing value to the end of the string
mov eax, writecom
push eax
mov al, 80h //The receiver needs to know the EOF so closing value is 80h
push eax
call fputc
add esp,8
//Start closing
mov eax, readfile //readfile
push eax
call fclose
add esp, 4
//writecom
mov eax, writecom
push eax
call fclose
add esp, 4
jmp END
TERMINATION:
lea eax, error
push eax
call printf
add esp, 4
END:
} //_asm
return 0;
} //void