[H8-ML(625)] Re: [H8-ML(622)] Re:.Sへの変換
From: "Masanori Sakurai" <msakurai@xxxxxxxxxxxx>
Date: 2000年05月19日(金)11時41分48秒
ありがとうございました。
一段落したらじっくり試させて頂きます。
では。

May.19 '00 M.Sakurai

----- Original Message -----
From: Hosobuchi Noriyuki <hoso@xxxxxxxxxxxx>
To: <h8@xxxxxxx>
Sent: Friday, May 19, 2000 12:16 AM
Subject: [H8-ML(622)] Re:.Sへの変換


> 細渕です。
>
> > で、ライターの会社に問い合わせたところ、このコンパイラーはベースが日立純
正の
> > コンパイラーで、自社(秋月さん)でチェックサムの所だけ変更しているらしい
??
> > ?(その他も変更しているかもしれない)のでうまく転送できないとのこと。
> > 対応策としては、FormatConverterで一度バイナリーに落としてからだと大丈夫
と
> > 言っていたのですが・・・・・さっぱり分かりません。
> > その作業をするのにフリーソフトがあると聞いたのですが・・・。
> > ってことです。
> > 何か分かりますかね???
>
> バイナリーに落さないでチェックサムだけを計算しなおします。
> 短いプログラムので添付します。
> ------8<-------8<-------8<-----ここから-----8<-------8<-------8<------
> /* fixsum.c - c38h の S-record のサムエラーを修正する */
> /* fixsum <infile> <outfile> */
> #include <stdio.h>
> #include <stdlib.h>
>
> #define gethex(x)       ((x) > '9' ? ((x) & 0x4f) - 'A' + 10 : (x) - '0')
> #define gethex2(p)      (gethex(p[0]) * 16 + gethex(p[1]))
> int main(int argc, char *argv[])
> {
>     FILE *in, *out;
>     char line[256], *p;
>     int sum, size, i;
>
>     if (argc != 3){
>         printf("fixsum <infile> <outfile>\n");
>         exit(1);
>     }
>
>     if ((in = fopen(argv[1], "rt")) == NULL){
>         printf("infile(%s) open error\n", argv[1]);
>         exit(1);
>     }
>
>     if ((out = fopen(argv[2], "wt")) == NULL){
>         printf("outfile(%s) open error\n", argv[2]);
>         exit(1);
>     }
>
>     while(fgets(line, sizeof(line), in)){
>         if (line[0] != 'S'){
>             fputs(line, out);
>             continue;
>         }
>         p = line + 2;
>         size = gethex2(p); p += 2;
>         sum = size;
>         for (i = 0; i < (size - 1); i++){
>             sum += gethex2(p);
>             p += 2;
>         }
>         *p = '\0';
>         sum = (~sum ) & 0xff;
>         fprintf(out, "%s%02X\n", line, sum);
>     }
>
>     fclose(in);
>     fclose(out);
>
>     exit(0);
> }
> ------>8------->8------->8-----ここまで----->8------->8------->8------
>
> ---
> 細渕憲行 (hoso@xxxxxxxxxxxx)
> http://www.tt.rim.or.jp/~hoso/
>

スレッド概略
[611(R)](起点)
 └[622(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]