2015年9月 3日 (木)

LXDIC音声対応版の仕様

■LXDIC音声対応版の仕様
 
●対応するPCM音声
・モノラル
・量子化ビット数:8
・サンプリング周波数:11.025kHz
 
●LXDICの仕様変更
音声ファイルの準備
・設定ファイルへの登録は不要.
・音声ファイル名を,辞書名+拡張子(snd) に変更する.
(例)辞書名が kojien の場合 honmons ==> kojien.snd
・音声データが honmon内にある場合は,特別の準備は不要.
※squeeze等で,PCM音声(D8)を削除しないこと.
 
表示/操作
・PCM音声の情報は,1項目当り10個まで保持される.
・PCM音声が再生可能な場合は,リンク(別項目参照)番号表示に引続き,
 [音] の表示を挿入する.
・PCM再生は,リンク番号の選択により行う.(数字キー)
・PCM音声の再生中は,該当行に,"play" と表示する.
 数字は,再生データの長さを,16KB単位で表示. 24 ==> 384KB
・PC内蔵スピーカーの動作モードの変更により,音量の変更が可能.
 (シスマネ Setupで設定する "volume" とは別)
 操作キー:'='キー(0と3のトグル)
  mode 3 :方形波      :音声レベル=最大出力の半分
  mode 0 :ターミナルカウント:音声レベル=最大
  (mode3:方形波は出力デューティ比50%.平均出力は1/2)
  (mode0:カウント値を減算し,0で OUT信号"H"を出力)
  
動作
・2倍速機以外のでの動作は確認していない.
・LXDICの使用メモリーは,85kB程度.
・PCM再生の際は,192KBのバッファーメモリーを動的に確保し,再生終了
 後に解放する.
・PCMデータは,192KB(約18秒)ずつ読込み再生するため,このタイミン
 グで,音声が一時途切れる.
・複数のLXDICを起動し,それぞれで,PCM音声を再生する事ができる.
 ただし,同時には再生できない.
・一度PCMの再生を始めると,中断はできない.
・PCM再生中に,他の操作を行うことはできない.
 終了まで,無操作で待つ必要がある.(操作禁止)
 
[HP200LX/LXDIC]
 .

|

memo::EPWINGのPCM音声(D8)

■EPWINGのPCM音声(D8)
本文における記述

1.開始記述子  :<1F4A> (2バイト)
2.音声再生モード:BCD表記の4桁の数字(2バイト)   
  千の位:予備
  百の位:文字列の表示方法
      0=表示用テキストを一行分(改行まで)表示
      1=表示用テキストは表示しない
      2=表示用テキストを全て表示
  十の位:予備
  一の位:音声の種別
      0=使用しない
      1=PCM
      2=MIDI
3.音声タイプ  :BCD表記の4桁の数字(2バイト)
  千の位:0=モノラル
      1=ステレオ
  百の位:アドレスの意味
      0=アドレスはヘッダの位置を指す
      1=アドレスは波形データを指す
  十の位:量子化ビット数
      0=16ビット
      1=8ビット
  一の位:サンプリング周波数
      0=44.1kHz
      1=22.05kHz
      2=11.025kHz
4.再生開始位置
 ブロック番号 BCD(4バイト)
 オフセット  BCD(2バイト)
5.再生終了位置
 ブロック番号 BCD(4バイト)
 オフセット  BCD(2バイト)
6.表示文字列[可変長]
7.終了記述子 :<1F6A>

[HP200LX/LXDIC]

|

2015年9月 2日 (水)

memo::8254のレジスタの仕様

●メモ
[8254のレジスタの仕様]

ポートアドレス 0x43h:制御レジスタ
---------------------------------------------------------------
bit 7,6  Select Counter
     8254の16ビットんチャネル(カウンタ)の選択設定
      00:チャネル0(カウンタ0) 
      01:チャネル1(カウンタ1)
      10:チャネル2(カウンタ2)
---------------------------------------------------------------
bit 5,4  Read/Load
      00:カウンターラッチ
      01:LSB(下位8ビット)の入出力
      10:MSB(上位8ビット)の入出力
      11:LSB,MSBの順に入出力
---------------------------------------------------------------
bit 3,2,1 Mode
      000:モード0  ターミナルカウント
      001:モード1  プログラマブルワンショット
      x10:モード2  レートジェネレータ
      x11:モード3  方形波
      100:モード4  ソフトウェアトリガーストローブ
      101:モード5  ハードウェアトリカーストローブ
---------------------------------------------------------------
bit 0   BCDフラグ
      0:バイナリー
      1:BCD形式
---------------------------------------------------------------

|

LXDIC:音声対応の検討2

■LXDIC:音声対応の検討2

●PC内部スピーカーの制御方法
 8254タイマLSI のチャネル2を使用して,スピーカー出力の波形と周波数
 を設定する.出力電圧は制御できない.
  波形/周波数設定:I/Oポート43h(18.2Hz~1.19MHz)
  スピーカーON/OFF:I/Oポート61h
    
●ビープ音によるPCM再生手法
 8254タイマLSI のチャネル0は,タイマー割込み用の信号を発生する.
 通常は,約55ms周期(約18.2Hz)
(基本的手順)
1.タイマー割込みをフックする.
2.チャネル0の周波数を,PCMのサンプリング周波数に設定する.
3.スピーカーをONにする.(チャネル2)
4.割込みハンドラーでは,スピーカー出力の矩形波の立ち上がり時間
  を,PCMデータ値に応じて変化させる.(出力電圧は制御できない)
  出力の平均値は目的の値になるが,かなりの雑音が混入する.
5.PCMデータがなくなるまで,この状態(再生)を継続する.
6.スピーカーをOFFにする.
7.チャネル0の周波数を元に戻す.
8.タイマー割込みのフックを解除する.

●HP200LX特有の問題
・処理速度が遅いため,データの読込みと再生を同時に行えない.
 メモリー上のデータ再生だけでも厳しい.(音質も劣る)
・したがって,データ読込み用に大きなバッファメモリーが必要になる.
 LXDIC自身の使用メモリー80KBに加えて,200KB程度必要?
・64KBを超えるメモリーブロックには,アクセスできない.
 farポインターでも,64KBが限界になる(ラップアラウンド).
 メモリーを複数のブロック(64KB未満)に分割して確保し,それぞれを
 個別に管理する必要がある.
・PCMデータが200KB(約18秒)以上の場合は,データ読込みのため,再生
 の一時中断が発生する.
・PCM再生を開始すると,途中で中断できない.
 中断キーの判定を行うと,負荷が過大になり,再生が不連続になる.

[HP200LX/LXDIC]

|

2015年9月 1日 (火)

LXDIC:音声対応の検討

■LXDIC:音声対応の検討
広辞苑や新英和中辞典のPCM音声に,ある程度対応できる可能性がある.

●PCMデータのサイズ
・広辞苑第5版:約70MB(外部ファイル)
・新英和中辞典:約160MB(本文内蔵)

●必要な情報
・EPWINGにおけるPCM音声の仕様
・PCMフォーマットの詳細データ
・PC内部スピーカーの制御方法
・内部スピーカーによるPCM再生手法
 出力電圧を直接制御することはできないため,波形と周波数で制御?

●HP200LX固有の問題
・処理能力の低いCPUで,スムーズな再生が可能か.
・PCMデータ用の大容量のバッファーメモリーを確保できるか.
 LXDIC自身の使用メモリー:約80KB~85KB
 PCMバッファーメモリー :約200KB(再生時間約18秒)
 
[HP200LX/LXDIC]

 

|

2015年8月31日 (月)

LXDIC 17.0c 修正版

■LXDIC 17.0c 修正版

・本文表示画面において,本文アドレス表示('-'キー)のブロック番号が,
 実際の値より1大きく表示される不具合があった.
・バグ修正版(LXD170C2.LZH)をアップ

[HP200LX/LXDIC]

|

info

ダウンロード
http://lxdic.cocolog-nifty.com/blog/download.html
   .
起動キー
http://lxdic.cocolog-nifty.com/blog/skey.html
 
  
●公開プログラム
(シスマネ版)
・Sunrise:日出日入時刻/太陽高度方位計算
・LXDIC :EPWING電子辞書ビューアー(複合検索,画像表示,4GB超対応)
・FHCNT :シスマネ上のファイルハンドル数設定プログラム
・FV   :漢字拡大表示プログラム
・LST  :ライトスリープテストSM版
 
(DOS版)
・AWAKE :電池駆動時のLX高速化(常駐)
・FRESPC :ファイラー起動高速化(常駐)
・LST  :ライトスリープテストDOS版
・LXCALC :64ビット電卓(DOS版)
 
(32ビットコマンドプロンプト版)
・Wikipedia Reform Kit(辞書再構成/画像変換/辞書圧縮)
・LXDIC関連ユーティリティ(辞書圧縮,画像コンバーターなど)
 
[HP200LX/LXDIC]

|

2015年7月29日 (水)

LXDIC Ver.17.0c

■LXDIC Ver.17.0c
.  
●変更点
Wikipedia 等の本文表示で,文字化け・画面の乱れ・ハングアップ等が発生す
るバグを修正(電子ブック版対応のために追加したコードに不具合があった)
 
●バグの詳細
図版内の表示位置を指定したリンクがある場合,LXDIC はこの座標情報を画像
行の予約エリアに書込んでいる.
しかし,表示位置指定の判定を誤ると,予約エリアのないテキスト行への書込
みが発生してしまう.(Wikipedia等の大きな項目で頻発)
 
破損した本文データが表示部に入っても,大抵の場合は1~2文字の文字化け
で済むが,稀に,全画面破壊やハングアップ等の重大な事態を招くことがある.
 
例えば,破損データが,たまたま,画像を表す制御コードに変化する場合には,
それ以降の文字データ等が,画像情報(アドレス,サイズ,表示位置等)と見
なされ,予期しない位置とサイズのランダムデータ画像が表示されることにな
る.(全画面の画像が破壊される)
 
(修正)
図版見出し内で,かつ,予約エリアが存在する場合だけ,座標の書込みを行う
よう変更した.
  
●補足
全画面の乱れが発生する条件
・表示項目内に2文字の名称を持つリンクが存在し,かつ,
・その名称の1文字目が平仮名または片仮名になる場合
(例)"せい" ==>  243b 2424 (JISコードの表現)
       ==>  2441 2424 (BCD解釈した数値:10進表記)
       ==>  0989 0978 (16進表記)
 ※ 0x08, 0x09, 0x0a が,画像(図版,BMP,PCX)を示す制御コード
 
 
 

●表示例 [Wikipedia20150422 "吉本興業"]
(修正前)
特定の項目の特定の位置で,画面全体が乱れる.(画像表示ON)
Lxdbug1
画像表示OFFで全画面の乱れは解消.9行目のデータ破損が判る.
Lxdbug3
(9行目の zhn [06620014] はLXDICによる表示)
 
(修正後)
Lxdbug2  

[HP200LX/LXDIC]

|

2015年7月20日 (月)

LXDIC 17.0

■LXDIC 17.0-1701
変更点
・辞書情報の表示機能を整理
 表示のON/OFF:Ctrl+Del(デフォルトは非表示)
 起動時の表示指定は,設定ファイルの先頭1文字で行う.
  '+' --> ON, その他 --> OFF(デフォルト)
・電子ブックの一部の機能に対応
 広辞苑第4版,5版の閲覧が可能になった.
 (第5版には画像コンバータが必要)
・長音の混じる語のかな検索に失敗するバグを修正
 Ver.16.0b から,かな検索時の長音の母音変換に不具合が発生していた.
 (入力コードをJISに変更したが,変換関数はSJIS対応のままだった)
  修正前変換例:"にゅーよーく" ==> "にゆーよーく"
  正しい変換例:"にゅーよーく" ==> "にゆうよおく"  ※
   ※辞書の,かなインデックスは,"にゆうよおく" と記述されている.
・辞書切替時のローマ字かな変換(F9)のON/OFFの判定を整理
 辞書切替時のみ,デフォルトのインデックスにより判断する.
  かなインデックスの場合:ON
  表記形で,カタカナを平仮名に変換している場合:ON
  Wikipediaの場合:ON
  その他の場合:OFF
 同一辞書内でインデックスを切替える場合は,R-かな変換を変更しない.
   
(補足)
バグのある旧バージョンの利用を停止するため,起動キーを更新した.
新バージョン
・LXDIC 17.0-1701
・Sunrise 11.9-1701

  
広辞苑5版 かな検索
Lxdx701  
Lxdx702  
Lxdx703
大辞林2版 かな検索結果一覧
Djrin3_2
 
[HP200LX/LXDIC]

|

2015年7月14日 (火)

LXDIC:長音母音化のバグ

■LXDIC:長音母音化のバグ

●インデックス作成情報
EPWING辞書では,インデックス作成情報が,先頭ブロックに記述されて
いるが,JIS規格にない独自仕様を用いている辞書もあり,この情報を
無条件に用いることはできない.
 インデックス作成情報の取扱方法 1バイト
  00h:個別のインデックスの作成情報による
  01h:インデックス作成情報は,全て無効
  02h:インデックス作成情報は,全て有効
    (広辞苑5版は,規格外の 04h )
 インデックス作成情報有効性 1バイト                  
  01h:無効:全てのインデックス作成情報を00と見なす.
  02h:有効
 インデックス作成情報 3バイト
  1 2 3 4   5 6 7 8   9 予備6
  00000000 00000000 00000000
 1 カタカナ  00=平仮名変換,01=そのまま            
 2 英小文字  00=大文字変換,01=そのまま            
 3 記号      00=削除,      01=そのまま            
 4 長音文字  00=直前母音,  01=そのまま,10=削除   
 5 促音文字  00=大文字変換,01=そのまま            
 6 よう音    00=大文字変換,01=そのまま            
 7 外来語小文字   00=大文字変換,01=そのまま      
 8 濁音      00=清音変換,  01=そのまま            
 9 半濁音    00=清音変換,  01=そのまま          
 10 予備     6ビット
 
LXDICでは,かな検索(前方,後方)のときに限って,上記の
  2, (3), 4, 5, 6, 7, 8, 9
の変換を行っている.(3 記号の削除は半角のみ)
表記形検索や複合検索では,そのままで,変換は行わない.
 
●長音の母音化
かな検索インデックスは,長音を直前の文字の母音に変換して作成され
ている.
  例:"にゅーよーく"  ==>  "にゆうよおく"
したがって,検索語としては,"にゆうよおく" を用いなければ,検索は
ヒットしない.
 
●バグ
LXDIC 16.0b で,外字に対応した入力ラインの代替表示を導入した際に,
検索ルーチンへの入力を,シフトJISコードからJISコードに変更したが,
長音母音化はシフトJISコードを前提にした処理になっていた.
長音母音化を,JISコード対応に修正し,不具合を解消した.
 
[HP200LX/LXDIC]

|

«LXDIC博物館