#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) ---


 とゆーことです。ご迷惑おかけしました。