#11 Article 4132 Posted at 1990/03/26 00:27:14 by NOZOMU (MAP041) [PRG.ML1]
Subject: 今更mx1についての説明でふ。
mx1とは? 現在CG・Techボードで使われているML1形式のグラフィックデータは、バイナリィ形式 のため、そのままではボード上でやりとりする事ができません。 そこで、ボード上で あつかえるデータ形式とバイナリィ形式との、相互の変換をする必要があります。 その変換方式として考案されたのがmx1です。 この手の変換ではishという形式が有名で、普及しています。 ishは大変優れた変換 形式で、通信時の文字化けや文字抜けも、ある程度までは訂正してしまいます。 では、なぜishを使わないかというと、ishは移植があまり簡単ではないので、ml1が ishのない機種に移植された場合の事を考えて、より簡単な変換形式を用いました。 mx1の変換形式 バイナリィからテキスト形式への変換は、 MSB LSB 76543210 76543210 76543210 76543210 76543210 76543210 76543210 MSB LSB ↓ _7654321 _0765432 _1076543 _2107654 _3210765 _4321076 _5432107 _6543210 (_は0固定) という変換をし、その7bitのデータを $21,$23,$24,$25,$26,$28,$29,$2A,$2B,$2D,$2E,$2F,$30,$31,$32,$33 $34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$41,$42,$43,$44 $45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54 $55,$56,$57,$58,$59,$5A,$5B,$5D,$5E,$5F,$61,$62,$63,$64,$65,$66 $67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76 $77,$78,$79,$7A,$7B,$7C,$7D,$7E,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8 $A9,$AA,$AB,$AC,$AD,$AE,$AF,$B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8 $B9,$BA,$BB,$BC,$BD,$BE,$BF,$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8 というキャラクターコードに変換し、78biteごとに$0d,$0aを入れます。 つまり1行78文字+CR・LFの80biteにします。 そして、データの先頭に @@@ file_name by handle : title ( ##lines) @@@ データの最後に @@@ file_name by handle : title (end of data) @@@ という1行を加えます。 file_name は ml1データのファイルネーム、 handle と title はml1データのヘッダーから、 ## は上の2行を含んだ mx1データの行数を入れます。 テキスト形式からバイナリィ形式の変換は、この逆をやります。 以上がmx1の変換形式です。 御不明の点などありましたら、MAP041 NOZOMUまで mailにて御質問下さい。 *** emacsの文字→16進マクロが役に立ったなぁ。 NOZOMU *** P.S.文中biteという表記はbyteの誤りです。(笑い)