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 SkipVought 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
Dec 14, 2007
1
0
0
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