(C)裏目小僧
日本語以外に翻訳禁止
(戻る)
組込み系用の情報について 案外とまとまって公開してる個所が無いので、書こうかと溜めている所です。
情報等頂けるか、代わりに作って頂けたら嬉しい

インテル HEX

インテル フォーマット
: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が終了
 |  +---------------------------------- アドレス
 +------------------------------------- データ部の個数

モトローラHEX

Sフォーマット
 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フォーマットの取扱サンプル

x86 CPUのレジスタ

アセンブラの高速化について良くまとまっている資料

http://www.csl.sony.co.jp/person/fnami/asm.htm

EAX
帰り値
汎用レジスタ 専用命令有 CBW CWDE CWD CDQ DAA DAS
  
AX
  AHAL
ECX
汎用レジスタ ループカウンタ
  
CX
  CHCL
EDX
汎用レジスタ CWD CDQ
IN/OUT系のポート番号指定
  
DX
  DHDL
EBX
汎用レジスタ
C ポインタ
  
BX
  BHBL
EBP
ベースポインタ
C のスタックフレーム(ローカル変数)
  
BP
ESI
汎用レジスタ
  
SI
EDI
汎用レジスタ
  
DI
ESP
スタックポインタ
  
(SP)
EFLAG
フラグ
 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
  
FLAG

シリアル通信に使用するコード

フロー制御
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文字削除
フィンローダさんのこのページの一番最後にコントロールコード一覧表があります

文字コードについて

ASCIIhttp://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
0NULDLESPC0@P`p SPC
1SOHDC1!1AQaq
2STXDC2"2BRbr
3ETXDC3#3CScs
4EOTDC4$4DTdt
5ENQNAK%5EUeu
6ACKSYN&6FVfv
7BELETB'7GWgw
8BSCAN(8HXhx
9HTEM)9IYiy
ALFSUB*:JZjz
BVTESC+;K[k{
CFFFS,<L\l|
DCRGS-=M]m}
ESORS.>N^n~
FSIUS/?O_oDELDEL
SJIS第1バイト$81〜$9F$E0〜$FC
SJIS第2バイト$40〜$7E$80〜$FC
BASE64等のエンコード文字 http://www.kurume-it.ac.jp/home/general/sibhome/moji/encode.html

セントロニクス インターフェース等

アンフェノール 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。
1111 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
 1218-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  -<============>--------------

STOROBEパルスは 0.5uS以上の事


http://www2.sis.nagoya-u.ac.jp/prof/nakano/keisho/if/

http://www.sun-inet.or.jp/~nszak/pc98-dt.html

http://member.nifty.ne.jp/nahitafu/mame/mame5/printer.html


キーボード・マウス
http://homepage2.nifty.com/nowsmart/PCATData.htm
http://tech.millto.net/~morry/vmm/case/device.htm
http://www.asahi-net.or.jp/~WR7S-NKMR/MiddleWare/keyboard/
モトローラSフォーマットの取扱サンプル
/////////////////////////////////////////
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付)
windowsのメッセージ--デバック時など逆引きしたい時に x86アセンブラ命令一覧

物理単位
dB単位