Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Transfer system

Status
Not open for further replies.

tyropitas

Programmer
Joined
Dec 14, 2007
Messages
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:
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
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top