Hi all i m new to this forum and new to assembly trying to learn the "basics".
I ve been trying to transfer data over a serial cable to another pc.I m working under windows also.
Ive managed to script the transmitter but im having problems with the receiver and i don't know where to start.
Could someone advise me?
Here is the code for my transmitter in case it helps.
Thanks in advance

#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
Posted on 2007-12-15 08:56:35 by tyropitas