pragma Ipath("a:/inc/");
#include <stdio.h>

#define BEGIN      {
#define END        }
#define IF         if(
#define THEN       ){
#define ELSE       }else{
#define ELSEIF     }else{if( 
#define ENDIF      }
#define WHILE      while(
#define DO         ){
#define FOR        for(
#define TO         ;
#define BY         ;
#define LOOP       for(;;){
#define ENDWHILE   }
#define REPEAT     do{
#define UNTIL(s)   }while(s);
#define SWITCH(s)  switch(s){
#define CASE(s)    case(s):
#define DEFAULT    default:
#define BREAK      break;
#define ENDSWITCH  }
#define RETURN(s)  return(s);
#define FUNCTION   int
#define MODULE     void
#define OR         ||
#define AND        &&
#define NOT        !
#define EQU        ==
#define NEQ        !=
#define MODULE     void
#define ON         0xFF
#define OFF        0x00
#define TAB        0x09
#define LF         0x0A
#define CR         0x0D
#define BLANK      0x20
#define COMMA      0x2C
#define ZERO       0x00

MODULE main(argc,argv)
int         argc;
char            *argv[];
BEGIN
  unsigned char buffer[1024],Out_Buffer[1024],Check[3];
  FILE *fp[2];
  int i,Byte_Count,Byte_Size;

  Byte_Count = 0;
  fp[0] = fopen(argv[1],"r");
  fp[1] = fopen(argv[2],"w");
  WHILE fgets((char *)buffer,1024,fp[0]) NEQ ZERO DO
    IF buffer[0] EQU 'S' AND buffer[1] EQU '1' THEN
      Check[0] = buffer[2];
      Check[1] = buffer[3];
      Check[2] = ZERO;
      Byte_Count = ahtoi(Check) - 5;
       i = 0;
      WHILE i < Byte_Count DO
        Check[0] = buffer[8 + i * 2    ];
        Check[1] = buffer[8 + i * 2 + 1];
        Out_Buffer[i++] = ahtoi(Check);
      ENDWHILE
      fwrite(Out_Buffer,1,Byte_Count,fp[1]);
    ENDIF
  ENDWHILE
  fclose(fp[0]);
  fclose(fp[1]);
END

FUNCTION ahtoi(s)
char         *s;
BEGIN
  int i,n,nn,flag;
  i = n = nn = flag = 0;

  WHILE s[i] <= 20 DO
    i++;
  ENDWHILE
  IF s[i] EQU '-' THEN
    flag = -1;i++;
  ENDIF
  WHILE (s[i] >= '0' AND s[i] <= '9'
      OR s[i] >= 'A' AND s[i] <= 'F') DO
    nn = nn * 0x10;
    n = s[i] - 0x30;
    IF n > 9 THEN
      n = s[i] - 0x41 + 10;
    ENDIF
    i++;
    nn = nn + n;
  ENDWHILE
  RETURN(nn);
END




