#11 Article 3249 Posted at 1989/07/14 06:55:14 by SUKA (MAP614) [ML1]
Subject: Re:*5 ML1通信 /3245 ... /3241 /3238
ええっ、知らなかった。そうなんですか..。
うー2回(本当は3回)もUPするようなたいした物じゃないんですけど。
------キ リ ト リ セ ン--------
/* */
/* PRHEAD.C Version 1.01 July 14 1989 */
/* for XC Version 1.01 */
/* MSC Version 3~ */
/* */
/* ML1評価版1.0(具体的にはNEDI3-68K2.00bの出力ファイル)の */
/* ヘッダー内の情報を表示します。 */
/* */
/* コンパイル : XC cc /DX68 prhead.c */
/* MS-DOS の場合は..普通にやって下さい.. */
/* あまり詳しいことは知らないもので。 */
/* 用法 : prhead filename... */
/* */
# include <stdlib.h>
# include <stdio.h>
# include <string.h>
# include <fcntl.h>
# if X68
# define SWAP_SHORT(c) (c)
# else
# define SWAP_SHORT(c) ((((c)>>8)&0xff)|(((c)&0xff)<<8))
# endif
static unsigned char Mark[5] = "ML1\x1a" ;
typedef struct
{
unsigned char id[4] ;
unsigned char date[3], time[3] ;
struct {short x, y ;} start, end ;
unsigned char handle[12] ;
short fsize ;
unsigned char mid[16], eid[16] ;
unsigned char comment[32] ;
} ML1HEAD ;
int print_header(head)
ML1HEAD *head ;
{
unsigned char p[256] ;
strncpy(p, head->id, 4) ;
if ((p[0]!=Mark[0])||(p[1]!=Mark[1])||(p[2]!=Mark[2])||(p[3]!=Mark[3]))
return 1 ;
printf(" Head mark -> [%c%c%c]\n", p[0], p[1], p[2]) ;
printf(" Date -> [%02d-%02d-%02d]\n",
head->date[0], head->date[1], head->date[2]) ;
printf(" Time -> [%02d:%02d:%02d]\n",
head->time[0], head->time[1], head->time[2]) ;
printf(" Coordinates -> [(%d,%d)-(%d,%d)]\n",
head->start.x, head->start.y, head->end.x, head->end.y) ;
strncpy(p, head->handle, 12), p[12] = '\0' ;
printf(" Handle-name -> [%s]\n", p) ;
printf(" File size -> [%dbytes]\n", head->fsize) ;
strncpy(p, head->mid, 16), p[16] = '\0' ;
printf(" Machine-name -> [%s]\n", p) ;
strncpy(p, head->eid, 16), p[16] = '\0' ;
printf(" Editor-name -> [%s]\n", p) ;
printf(" Comment -> [%s]\n", head->comment) ;
return 0 ;
}
int read_header(fname, head)
unsigned char *fname ;
ML1HEAD *head ;
{
int fd ;
if ((fd=open(fname, O_RDONLY|O_BINARY))==-1) return 1 ;
read(fd, (char *)head, sizeof(ML1HEAD)) ;
close(fd) ;
head->start.x = SWAP_SHORT(head->start.x) ;
head->start.y = SWAP_SHORT(head->start.y) ;
head->end.x = SWAP_SHORT(head->end.x) ;
head->end.y = SWAP_SHORT(head->end.y) ;
head->fsize = SWAP_SHORT(head->fsize) ;
return 0 ;
}
void strip_name(name)
unsigned char name[] ;
{
static unsigned char exp[] = ".ML1" ;
int i ;
for (i=0 ; i<256 && name[i]!='\0' ; i++) ;
for (i-- ; i>=0 && name[i]!='.' ; i--) ;
if (i>0) sprintf(&name[i], exp) ;
else strcat(name, exp) ;
}
void main(ac, av)
int ac ;
char *av[] ;
{
ML1HEAD head ;
int i ;
unsigned char fname[256] ;
for (i=1 ; i<ac ; i++)
{
strcpy(fname, av[i]) ;
strip_name(fname) ;
printf(" %s\n", fname) ;
if (read_header(fname, &head))
printf(" ファイルが見付かりません\n") ;
else
if (print_header(&head))
printf(" MLファイルではありません\n") ;
printf("\n") ;
}
}
------キ リ ト リ セ ン--------
で、サンプルデータです。
<<< sample.ml1 for Human68K ( use S-JIS ish ) [ 35 lines ] ish ver1.111+ >>>
##クp##tU#:%#マスクcハシd\,)「iノセ##:N#?hク・#########################################t?Z
##クp##tU#:%#マスクcハシd\,)「iノセ##:N#?hク・#########################################t?Z
##クp##tU#:%#マスクcハシd\,)「iノセ##:N#?hク・#########################################t?Z
%cアヨ,帆ヒqGF@G@@@@Aヒ砿B畆tモgコru<@*@@タナB優l@F@@@@@@@@積qJ虞、:ーメVヤ/<ハ・Lyマホ染V3ヘサョ
&キヘ體8ルター・マュ9檎昜n゚]ヨo世ヘK咫@FDBラEiォ6I絆ーS9R<U~N欅af必sZタg+p<'fsメ剿芝nRQX衛ネモァ
'YND4ィ藝.ホ6ZヌV瓠E鋭-2u拷ヒ愬卍7嬬ヌ,榲、珪.鮠dリテ0ミォォF~FIsWtケ同HヲK「qィ,膰掬q+クNdooメ
)呶歟B柁ッ1K()Dム9eKV瑜モ筌シBオオ庭リテ隍cヌm壘F諍キホD_w5ワK畚5kZo<ke瑪Zハ;撩0e7ノ鈩ユP蜍|T
+3TXc[フ啖9凰ャP」犢0前橡LュアョdV9ナ>@u.殀タxュxリヒ=lムe1X「ェ1。モ[/ホZヌy畍堝R添3サ_T'ホ痰h・髻
,銑ムフPョcx|貊]nm。H-Hワ鯀ロマntノート・Y結ナ・史ョ_蜂モンB酪゙0=w椌3ンメdHーモテZェ_wソユU}ィェフ巧ヘ跳泊
?フ)ゥ蜷゙ヲクCコo8K坦(CMObnKS。B}iョ,聊eュ,ヤBウ艟@\ーH=P<ェフ,O察ェ{ィjワ躬S頼鹿eo愨S、Nキ鮨X脳
/荵u胚ウCZ圓]6「lyナ[ホヲアロ屮セF牟ソA<ツ0スOネ站?<Mェv「ァオヌqコ豈I(6ュン'岳梺jw譲(ククソXSR゚J羶縮
2-oヒロシs貽WF2<キ(ツaウ誨zンエ6ニT'三-螻ヒ舂lt簓tヌFBK-徐nN@Ag@メ|攸*x諒クf憶q)。Q個Mオ゙kU>ミ
4゚q^ラヌU8<G。ナ践猴BAGt豸)0ラ條ル/7i言}C゙メクヒヌメ駿iッ@a@@P羹,}Fr草<鰍BTH槁ZBu@@,。閣ナイ\
5゚ンa逐d影(皋ヤ嘆@テ。u託GツF崔踈nヘg4モ摘ヨツヘY。l.UxリcH嫖\ニtシ田_浮ヤB2OW:叙OE?発+,08(螟
6嶂嫺オ劑HトR1xスI蘇オ僮uJl怡kS@Q鯒:セ9畔緻6b盃7ン麼ョ6リ塀タモxbメフ発c^誡AqBリマDx3フ盞4Tテヤ
7Z權神ルGナS。゚殖茆ワニJ瀰ERクシ淑H。レハIJ兢Se耘Qf洗3n蒸m.リワwチKオo:zマゥ繙:櫻P2U。|+)_綜4髮
8ヤゥ゙w、c-XMラ徠類トCYR」L嚇ナョ~@屍nウャG柴6ァ遡苒WA嗚O*ソゥムナKム:rリテムァg1峡ヌD}鬻聽ス+CンゥQ5'
9D噺エン檬mY6球2pG蚊ニ7ヲbメ6G/I肴(サム1ヲリー振ラQゥKO鬘キロヲ~ッ@IN墾K}K勿ヌツッ執斉サ斛ン。TEMテキB
:・」、ワyX戊アソ磨・sコ有澪「梺Pヒ爐'nl酌マヤスHfH+ヤアテォ温5Zヌ>oフ丹嫻ネ盾wナ4謇レ羲Sマ罷ツヒ?8蚋彗
;゚Xチラ濁鑪魃アノ0sEqTル鮖niI梧tョ0u凩Xsoミ;゙娵N文(ヤ馭^省I|杓ホ鏘~ニv・Bツyネ關ヲeキ、ロu筌ンm[
<}L霆チロLhス嬾x弗Y醢U9V」ヌL>薮B)レA|゚澹4ナ嘯接アハN擡Xー3R_aミ+エPマ扮6fト漫ャek阡ヘ虫A7シコGカ
=w瓠゙+ヲテ;ツ嚏白ニスpヘ稠Yイu(S1」,優ー0fYメ6=cッチh;'変r郛ィー(躅タ:*dー。メMオエ「N樫{ヒ[j)oI熄kA
>i。aノ・k5タカkU_geウソwJユュツ熹~ェヨウpソ.ユ@L}フ魅拂73ラ[キ瀧トqOョ端Mセ,sz,wz゙K僮ヘロネツ荅<q狃6ケI
AャgV0ノメ96糞ァi<t_VQヲ曄炳0P-[2=テd@tマチサャオヒDル/rコォィハヲ溘Yィ貳創ThCコ~S苟ウ。シクトミ;オOュTァイw
Bf6fン~羈a劉綰<C1ォ・矧泉DVロ梯eeOn2燒xMgィ゙ゥ鐓FB。NトコF驀xメiエユh柄ス_|yiー9TG6V瓶ォL9Vィロ
Coアチモa櫻cwヒーァx>b耿ハuリt忘艫_嗜ゥw「ン患{Yh:Dエ」;ツァ|w。u3ナ悲)iヲカヨョ_朞ヤ」ィA輔キウu苗哭中X
D槿」ユサ1fィゥjtツマpン[1:狒ナマメUツri遨)叙唱aSヌlチ傑~=b吮xED錐[~リ縲チnヤgFI遒。・+gc。冗6w冨(
Ej嚇マ崙ケヨンq儡ャィ稾フテ潺}8モミォ~奮S拒モ鷹ヲLxア6ヨイ又啖gラカナ堅mミJゥルyキ瑰ツ=7窘レxヘヒOgヤハ洸m|
Fa・xMA・スョOS2eゥッngニソ酒fヲチロォ<イt堂アレー輅ラヘU3ト7ラ\クラ酌マ幸aラ}ミ'トン{)^ェHタモjQリ審・ニトi巡Qi
GYLー'羮ノ。ルg兆キク蛹尿レ熏ヲ゚絛、チ):3(夫sUUネヘ。夘シワ完膏n{ツ7゙IV1R{鞳|蘿{4+ユル醺ホi壥エX)ヨ
HAアbネ=^ンスlBd寂0熕阜クタユ1・ナ蘋ノP埓B控マトイテソネRe紫餔ネT0s・1ォト蒲莵<@C@@@@@@@@@@@@@@朔-
。ツ薪cクGTムセ屯タ洩症Tタセ{飭yQ.緜\ウzJ(Oクロse\ソ裔ム0N゚zヤ;ー0aV^v讒ナ2ニAゥ鼎ロ|,[」=ハ]Av箘ェJ
」噂+sホ7c幣ィPヌ螯@V「fネテ。セ+Vレサ8」Zo轍^F卷雷イ汲I・4K+Rワォ銘1彙ョ詮充ュロ*ヤs*C厥ゥヤ往z藐ヘレ
--- sample.ml1 (35/35) ---
とゆーことです。ご迷惑おかけしました。