:070420003A8D3A89A560C87E :00000001FF :07 0420 00 3A 8D 3A 89 A5 60 C8 7E :nn aaaa tt dd .. .. .. .. .. dd ss (全nn+5個の16進2桁の和の下2桁はゼロ) | | | | | | | +----0x100-(前(nn+4)個16進2桁の和)%256 | | +----------------------------- レコードタイプ 01が終了 | +---------------------------------- アドレス +------------------------------------- データ部の個数
S0030000FC レコードのスタート S903000DEF レコードの終了--S1 S804000000FB レコードの終了--S2 .1 2 3 4 5 6 7 8 9 a b c d e f1011121314 S2140C040021002C0000000000180000000000000670 S2nnaaaaaadd............................ddss S2nnaaaaaadd....ddss"+char($0D)+char($0A) | | | | | | | | | +--=HEX$(1-SUM(ASC("nnaaaaaadd...dd")),2) | | | +---------- "dd" =バイトデータの並び | | +------------=hex$(アドレス,4) | +----------------=HEX$(length("aaaadd...ddss")/2,2) +------------------ この2はアドレス3byte=24bit S1nnaaaadd......ddss"+char($0D)+char($0A) | | | | | | | | | +--=HEX$(1-SUM(ASC("nnaaaadd...dd")),2) | | | +------------ "dd" =バイトデータの並び | | +--------------=hex$(アドレス,4) | +----------------=HEX$(length("aaaadd...ddss")/2,2) +------------------ この2はアドレス3byte=24bit モトローラSフォーマットの取扱サンプル
http://www.csl.sony.co.jp/person/fnami/asm.htm
帰り値 汎用レジスタ 専用命令有 CBW CWDE CWD CDQ DAA DAS | ||||
AH | AL | |||
汎用レジスタ ループカウンタ | ||||
CH | CL | |||
汎用レジスタ CWD CDQ IN/OUT系のポート番号指定 | ||||
DH | DL | |||
汎用レジスタ C ポインタ | ||||
BH | BL | |||
ベースポインタ C のスタックフレーム(ローカル変数) | ||||
汎用レジスタ | ||||
汎用レジスタ | ||||
スタックポインタ | ||||
フラグ0 0 0 0 0 0 0 0 0 0 0 0 0 0 VM RF 0 NT IO-PL O D I T S Z 0 A 0 P 1 C | ||||
フロー制御 | |||
Xoff | $13 | ^S | 通信停止 |
Xon | $11 | ^Q | 通信再開 |
送信[STX--文字列--ETX]に対して[ACK/NAK] | |||
STX | $02 | ^B | データブロックの開始 |
ETX | $03 | ^C | データブロックの終了 |
ACK | $06 | ^F | 受信データの正常応答 |
NAK | $15 | ^F | 受信データに異常がある |
BS | $08 | ^H | BackSpace 左1文字削除 |
文字コードについて
ASCII | http://www.kurume-it.ac.jp/home/general/sibhome/moji/ascii7bit.html |
http://www.kurume-it.ac.jp/home/general/sibhome/moji/moji4.html | |
漢字 | http://wakusei.cplaza.ne.jp/twn/wwwkanji.htm |
http://www.hirayama.com/hideki/knj.txt | |
http://www.hosibune.net/~mak/technical/kanji.shtml | |
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0 | NUL | DLE | SPC | 0 | @ | P | ` | p | SPC | ー | タ | ミ | ||||
1 | SOH | DC1 | ! | 1 | A | Q | a | q | 。 | ア | チ | ム | ||||
2 | STX | DC2 | " | 2 | B | R | b | r | 「 | イ | ツ | メ | ||||
3 | ETX | DC3 | # | 3 | C | S | c | s | 」 | ウ | テ | モ | ||||
4 | EOT | DC4 | $ | 4 | D | T | d | t | 、 | エ | ト | ヤ | ||||
5 | ENQ | NAK | % | 5 | E | U | e | u | ・ | オ | ナ | ユ | ||||
6 | ACK | SYN | & | 6 | F | V | f | v | ヲ | カ | ニ | ヨ | ||||
7 | BEL | ETB | ' | 7 | G | W | g | w | ァ | キ | ヌ | ラ | ||||
8 | BS | CAN | ( | 8 | H | X | h | x | ィ | ク | ネ | リ | ||||
9 | HT | EM | ) | 9 | I | Y | i | y | ゥ | ケ | ノ | ル | ||||
A | LF | SUB | * | : | J | Z | j | z | ェ | コ | ハ | レ | ||||
B | VT | ESC | + | ; | K | [ | k | { | ォ | サ | ヒ | ロ | ||||
C | FF | FS | , | < | L | \ | l | | | ャ | シ | フ | ワ | ||||
D | CR | GS | - | = | M | ] | m | } | ュ | ス | ヘ | ン | ||||
E | SO | RS | . | > | N | ^ | n | ~ | ョ | セ | ホ | ゛ | ||||
F | SI | US | / | ? | O | _ | o | DEL | ッ | ソ | マ | ゜ | DEL | |||
SJIS第1バイト | $81〜$9F | $E0〜$FC | ||||||||||||||
SJIS第2バイト | $40〜$7E | $80〜$FC |
セントロニクス インターフェース等
アンフェノール | 9801 | DOS/V | ||
1 | 1 | 1 | O | !STROBE H から L で、プリンタに送信 |
2 | 2 | 2 | O | D0 |
3 | 3 | 3 | O | D1 |
4 | 4 | 4 | O | D2 |
5 | 5 | 5 | O | D3 |
6 | 6 | 6 | O | D4 |
7 | 7 | 7 | O | D5 |
8 | 8 | 8 | O | D6 |
9 | 9 | 9 | O | D7 |
10 | 10 | I | !ACK H → L で、 プリンタ受信準備OK。 | |
11 | 11 | 11 | I | BUSY H=ビジー L =受信可 |
12 | 12 | I | PE 用紙切れ入力 | |
13 | 13 | I | SLCT プリンタセレクト入力 | |
14 | 14 | O | !FEED 自動ラインフィード出力 | |
32 | 15 | I | !ERROR L =プリンタに何かのエラー | |
33 | 16 | O | !INIT イニシャライズ出力 | |
36 | 17 | O | !SLCT-IN プリンタセレクト出力 | |
10 | NC | |||
11 | NC | |||
12 | 18-25 | GND |
$378 !2.b0 1 -> 0.b0 2 -> 0.b1 3 -> 0.b2 4 -> 0.b3 5 -> 0.b4 6 -> 0.b5 7 -> 0.b6 8 -> 0.b7 9 -> 1.b6 10 <- !1.b7 11 <- 1.b5 12 <- 1.b4 13 <- !2.b1 14 -> 1.b3 15 <- 2.b2 16 -> !2.b3 17 -> BUSY ________|~~~~|__________________ !ACK ~~~~~~~~~|____|~~~~~~~~~~~~~~~~~ !STOROBE ~~~~~~|____|~~~~~~~~~~~~~~~~~~~~~~~ DATAx8 -<============>--------------
http://www.sun-inet.or.jp/~nszak/pc98-dt.html
http://member.nifty.ne.jp/nahitafu/mame/mame5/printer.html
///////////////////////////////////////// int hex2(unsigned char *s);//sで指定した2byteの16進数を数値で返す ///////////////////////////////////////////////////////// // adrからのデータとして dtをsizだけ S1書式で文字列に変換 // 変換文字列数を outsizで返す static char S1buf[512]; char * S1str(unsigned long adr,int siz,char *dt,int *outsiz) { int bsiz = siz + 3 ; int n = sprintf(S1buf,"S1%02X%04lX",bsiz,adr); int sum =bsiz; sum+=adr; sum+=adr>>8L; {int i; for(i=0;i<siz;i++) { n+=sprintf(S1buf+n,"%02X",(*dt)&0xff); sum+=*dt++; }; }; n+=sprintf(S1buf+n,"%02X",(~sum)&0xff); if(outsiz)*outsiz=n; return S1buf; } ///////////////////////////////////////////////////////// // adrからのデータとして dtをsizだけ S2書式で文字列に変換 // 変換文字列数を outsizで返す char * S2str(unsigned long adr,int siz,char *dt,int *outsiz) { int bsiz=siz+4; int n=sprintf(S1buf,"S2%02X%06lX",bsiz,adr); int sum=bsiz; sum+=adr; sum+=adr>>8L; sum+=adr>>16L; {int i; for(i=0;i<siz;i++) { n+=sprintf(S1buf+n,"%02X",(*dt)&0xff); sum+=*dt++; }; }; n+=sprintf(S1buf+n,"%02X",(~sum)&0xff); if(outsiz)*outsiz=n; return S1buf; } //////////////////////////////////////////////// // motS 書式で解釈し、1バイト単位でfuncを呼出す unsigned int M2Flg=1; int Mot2Cvt(char *s,void(*func)(unsigned long adr,unsigned char dt)) { unsigned char sum=0; int siz; /* まず形式チェック M2Flgによってサムチェックエラー時の処理を */ if(s[0]!='S') return 0; if( (s[1]!='1') &&(s[1]!='2')) return 2; { siz=hex2(s+2);if(siz<0) return -2; {int i;char *p=s+2; for(i=0;i<siz;i++) {int d=hex2(p);p+=2;if(d<0) return -2; sum+=d; }; if( M2Flg&1) if((unsigned char)~sum!=(unsigned char) hex2(p) ) return -3; } }; if(s[1]!='2') { unsigned long adr= +((unsigned long)hex2(s+4)<<8L)+((unsigned long)hex2(s+6)); int siz=hex2(s+2)-3; {int i;char *p=s+8; for(i=0;i<siz;i++){ func(adr++,hex2(p));p+=2;}; } return 1; }; /* 実際の変換 */ { unsigned long adr= ((unsigned long)hex2(s+4)<<16L) +((unsigned long)hex2(s+6)<<8L)+((unsigned long)hex2(s+8)); int siz=hex2(s+2)-4; {int i;char *p=s+10; for(i=0;i<siz;i++){ func(adr++,hex2(p));p+=2;}; } } return 1; }
IRDA関係 | http://www.mec.panasonic.co.jp/sc/division/IrDA/japanese/line-up/line-up1.html |
OKI | http://www.macnica.co.jp/comp2/oki/omsm9405.html |
SHARP | http://www.sharp.co.jp/sc/gaiyou/news/970224.htm |
http://ns3.sharp.co.jp/sc/gaiyou/news/971007-2.htm | |
http://ns3.sharp.co.jp/sc/gaiyou/news/990930-1.html | |
ROHM | http://www.rohm.co.jp/news/rpm851-j.html |
http://www.rohm.co.jp/news/rpm-j.html | |
NEC | http://www.ic.nec.co.jp/opto/japanese/productlist_j.html |
ISDN公衆電話 | |
本 | http://www.catnet.ne.jp/triceps/tr/tr021.htm |
ソフトバンク | 赤外線通信プログラミングガイド (ISBN-4-89052-824-5 \3,500 FD付) |