
December 14th, 2007, 12:23 PM
|
|
Registered User
|
|
Join Date: Dec 2007
Posts: 2
Time spent in forums: 59 m 14 sec
Reputation Power: 0
|
|
|
Assembly & transfer system
I ve been trying to develop a point to point tranfer system
in assembly i ve managed to create the transmitter but i m having trouble coding the receiver .
Anyone to point some directions?
Here is the code for the transmitte
Code:
// File: Transmit.c
#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
|