I ve been trying to learn assembly. I m using visual studio 2005.Currently i ve been trying to develop a transfer system betwenn 2 computers using a null modem cable.
I ve managed to script my transmitter but i can't get around how to start the receiver.
Can someone help me with it?
here is the code for the 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 a
push eax
lea eax,Comport //check port 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
This post has been edited by menios: 14 Dec, 2007 - 09:43 AM