==============================================================================
    HITACHI BASIC MASTER LEVEL3 MARK5 Emulator
                                                             Version 0.9.9
                                                                2013/08/12

     Copyright(C) Common Source Code Project, Sasaji 2013 All Rights Reserved.
==============================================================================

● はじめに

  このソフトは、日立ベーシックマスターレベル3マーク5(MB-6892)のエミュレータ
  です。


● 主な機能

  CPU: スピード最大16倍
  RAM: 標準64KB + 拡張64KB(MP-9764を想定)
  画面表示: ハイレゾ最大640x200 8色, IG
  サウンド: MUSIC_SEL, 6重和音PSG, 9重和音PSG(I/O 1983年8月号掲載)
  カセットテープ入出力
  プリンタ出力
  ライトペン入力:マウスを使ってエミュレート
  漢字ROM: MP-9740を想定
  FDD: 片面単密度(1S) 3インチコンパクトフロッピー(MP-3375, MP-1805)を想定
       両面倍密度(2D) 5.25インチミニフロッピー(MP-3550/MP-3560, MP-1802)を想定


● 動作確認環境

  WindowsXP SP3 / WindowsVista SP2 / Windows7 SP1
  Direct3D(DirectX9以上)が正常に動作すること。

  使用デバイス：キーボード、マウス、ジョイスティック

  「このアプリケーションの構成が正しくないため、アプリケーションを開始でき
  ませんでした。アプリケーションを再度インストールすることにより問題が解決
  する場合があります。」と表示されて起動しないときは、
  Visual C++ 2008 SP1 再頒布可能パッケージのインストールが必要です。
    マイクロソフトのページよりパッケージをダウンロードしインストールして
  ください。

  http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2

 「msvcp100.dllが見つからなかったため、アプリケーションを開始できませんでした。
  〜」と表示され起動できないときは、
  Visual C++ 2010 再頒布可能パッケージのインストールが必要です。
    マイクロソフトのページよりインストールしてください。

  http://www.microsoft.com/ja-jp/download/details.aspx?id=5555


● 動作に必要なもの

  このソフトの動作には実機のROMイメージが必要です。以下のファイルを用意して
  ください。
  (1) ROM BASIC (BASICを使用する場合必須)
      L3BAS.ROM: アドレス$A000 - $FFFF のイメージ。
        または
      ROM1.ROM:  アドレス$A000 - $FEFF のイメージ。
      ROM2.ROM:  アドレス$FFF0 - $FFFF のイメージ。

    ※$FF00 - $FFEFはI/Oポートになるためこの間はダミーデータにします。
      カセットテープなどにSAVEMする場合くれぐれもこの間をセーブしないように

  (2) フォントイメージ（必須）
      FONT.ROM: キャラクターフォントのイメージ。
                付属のFONT.ROMは拙作のもので実機とは若干イメージが異なります。

  (3) ディスクアクセス用ROMイメージ（任意）
      MP1802.ROM: 5.25インチミニフロッピーI/Fボード(型番:MP-1802/A)に搭載されて
                  いるROM。アドレス$F800 - $FFFF のイメージ。
      　　　　　　DISK BASICなどFDDから起動する場合に必要です。
      MP1805.ROM: 3インチコンパクトフロッピーI/Fボード(型番:MP-1805)に搭載されて
                  いるROM。アドレス$F800 - $FFFF のイメージ。
                  3インチ用DISK BASIC(MA-5370)の起動は、ROM BASICのイメージが
                  あればできます。

  (4) 漢字ROM（任意）
      KANJI.ROM : MP-9740を想定。
                  toolフォルダに擬似漢字ROMイメージを作成するプログラムがあり
                  ます。

  (5) リレー音ファイル（任意）
      relay_on.wav : リレーON時の音声ファイル。
      relayoff.wav : リレーOFF時の音声ファイル。
                     テープのロード/セーブ時に鳴るリレー音です。
                     無圧縮PCM、11025〜48000Hz、8または16bit、モノラル。

● インストール

  1. bml3mk5_win32_*.zipを解凍すると以下のファイルができます。

    bml3mk5.exe ... プログラム本体
    FONT.ROM    ... フォントファイル
    readme.txt  ... このファイル
    history.txt ... 変更履歴
    tool\
      kanji.exe ... KANJI.ROMファイル作成プログラム
      kanji.txt ... 上記プログラムで使用する漢字マッピングファイル

  2. bml3mk5.exe、FONT.ROMを適当なフォルダにコピーしてください。

  3. 実機から取り出したROMイメージを同じフォルダに置いてください。

   ・設定ファイルの[rom] -> PathでROMイメージを置くフォルダーを指定できます。
   ・漢字を使用したいがROMイメージがない場合は、toolフォルダにあるkanji.exeを
     実行して、KANJI.ROMファイルを作成してください。

  4. ジョイスティックを使用する場合、予めPCに接続して置いてください。

  5. bml3mk5.exeを実行します。

  6. FDDを使用する場合は、Options -> Configure... で設定ダイアログを開きどのFDD
     を使用するか選択した後、Control -> PowerOn をおこなうか、このプログラムを
     再起動してください。

    FDDを使用する状態では、前回動作時にFDD0にて最後に使用したディスクイメージを
    起動ディスクとします。

    実行すると、同じフォルダに以下のファイルが作成されます。
      bml3mk5.ini ... 設定ファイル
      bml3mk5.log ... 実行ログ
      keybind.ini ... キー設定ファイル

    ※ 従来使用していたbml3mk5.cfg、keybind.cfgの各ファイルは、本プログラム
       実行終了時にiniファイルに変換して保存します。
       iniファイルがあればcfgファイルは不要です。


● アンインストール

  インストールしたフォルダを削除してください。


● 使い方

○ メニュー説明

「Control」メニュー
  「PowerOn」 ........ 電源を入れなします。（コールドリセット）
  「MODE Switch」 .... モードスイッチ
                       チェックを入れて「PowerOn」するとNEW ON 7相当に
                       なります。
  「Reset Switch」 ... リセットスイッチ

  「Pause」 .......... ポーズ

  「CPU Power」 ...... CPUスピード サブメニュー
    「CPU x1」 ......... CPUスピード x1〜x16倍に切り替えます。
         :
    「CPU x16」

  「Sync IRQ」 ....... チェックするとタイマFIRQとキースキャン周期を
                       CPUスピードに合わせます。
                       (時計の進み具合およびキー入力スピードが変化する。)
                       チェックを外すとx1倍固定になります。

  「Auto key」 ....... 自動キー入力 サブメニュー
    「Open...」 ........ 指定したファイルの内容を自動で打ち込みます。
    「Paste」 .......... クリップボードのテキストを自動で打ち込みます。
    「Stop」 ........... 自動で打ち込み中のテキストを停止します。

  【注意】キー割り当て(後述)はデフォルト設定にしてください。

  「Load State...」 .. レジュームファイルを内部メモリにロードします。
  「Save State...」 .. 内部メモリの状態をレジュームファイルに保存します。

  【注意】テープやFDDのロード/セーブ中に使用しないでください。
          特にセーブ中に行うとデータを破壊する可能性があります。

  「Exit」 ........... プログラムを終了します。


「Tape」メニュー
  「Play...」 ........ 再生ボタンを押した状態になります。
                       再生したいデータファイルを選択しておき、
                       本体側でロードコマンドを実行することでファイルが
                       再生されます。
                       サポートしているファイルは、
            　         wavファイル: PCM（無圧縮）
                          11025/22050/44100/48000Hz 8/16bit
                       l3c,l3b,l3ファイル

  「Rec...」 ......... 録音ボタンを押した状態になります。
                       録音したいデータファイル名をあらかじめ設定し、
                       本体側でセーブコマンドを実行することでファイルに
                       書きこまれます。
                         保存ダイアログで選択した種類で保存される形式が
                       決まります。
            　         wavファイル: PCM（無圧縮）
                         サンプリングレートは設定ダイアログで指定します。
                       l3c,l3b,l3ファイル

  【注意1】デフォルトでは上書きになります。追記する場合は、F.F.でファイル末尾
           まで早送りしてください。
  【注意2】録音終了後は、必ずEjectしてファイルを閉じるようにしてください。

  「Rewind」 ......... ファイル先頭まで巻き戻しします。

  「F.F.」 ........... ファイル末尾まで早送りします。

  「Eject」 .......... カセットを取り出した状態にします。
                       再生・録音状態を停止しファイルを閉じます。

  「Real mode」 ...... 実機に近いスピードで再生・録音を行います。
                       カセットテーブの遅さが実感できます(^^;
                       このモードでは再生音（ピーガー音）が発生します。

    このメニューの下部に最近使用したファイル名が最大８つ表示されます。
    選択するとこのファイルを再生します。


「FDD」メニュー
  「Open...」 ........ ディスクイメージをオープンします。
                     ※d88形式以外のディスクイメージは未検証のため正しく
                       読み込めない可能性があります。
                     ※d88マルチボリューム形式のディスクイメージは未検証の
                       ため正しく読み込めない可能性があります。

  「Change side to A/B」.. 【3インチコンパクトFDD使用時のみ】
                       ディスクのA面/B面を入れ替えます。

  「Close」 .......... ディスクイメージを閉じます。
                       ディスクに書き込んだデータはCloseすることで実際の
                       ディスクイメージファイルに保存されます。
                     ※d88形式以外のディスクイメージは全てd88形式で保存され
                       ます。

    このメニューの下部に最近使用したファイル名が最大８つ表示されます。
    選択するとこのファイルをオープンします。


「Screen」メニュー
  「Frame rate」 ..... フレームレート サブメニュー
    「Auto」 ........... 可変フレームレート。
    「60fps」 .......... 60fps固定フレームレート。
    「30fps」 .......... 30fps固定フレームレート。
        :
    「10fps」 .......... 10fps固定フレームレート。

  【注意】録画中は変更できません。

  「Record」 ......... 録画 サブメニュー
    「640x480」......... 録画や画面キャプチャ時の解像度を640x480にします。
    「768x512」......... 録画や画面キャプチャ時の解像度を768x512にします。

    「Rec 60fps」 ...... 60fpsで録画開始します。
    「Rec 30fps」 ...... 30fpsで録画開始します。
          :
    「Rec 10fps」 ...... 10fpsで録画開始します。
    「Stop」 ........... 録画を停止します。
                         プログラムと同じフォルダにvideo.avi,sound.wavが作成
                         されます。
    「Capture」 ........ 現画面をキャプチャします。
                         画像ファイル名は、<日付日時>.bmpとなります。

  「Window」 ......... ウィンドウモード サブメニュー
    「WWWxHHH xM」 ..... ウィンドウサイズWWW x HHH、倍率M倍で表示。

  「Fullscreen」 ..... フルスクリーンモード サブメニュー
    「Stretch Screen」 . 画面のサイズに合わせて表示を拡大します。
    「Cutout Screen」 .. なるべく画面左右の余白をなくす形で拡大します。
    「[n] WWWxHHH」 .... n番目のモニタで解像度WWW x HHHで表示。

  「Scanline」 ....... スキャンライン
                       インターレースモードではチラツキが激しくなります。
  「Afterimage1」 .... 残像モード１
                       インターレースでもチラツキが少なくなる長残光形
                       ディスプレイを再現(^^
  「Afterimage2」 .... 残像モード２
                       １フレーム残像が残ります。
  「Keepimage1」 ..... 映像保持モード１
                       1枚目のスクリーン(SCREEN ,1)が常に最前面になるように
                       します。                       
  「Keepimage2」 ..... 映像保持モード２
                       1枚目のスクリーンが常に最背面になるようにします。

  「Direct3D Sync」... Direct3Dを使用してモニタのリフレッシュレートと同期しな
                       がら描画する。(以前の「Sync VSYNC」と同じです。)
  「Direct3D ASync」.. Direct3Dを使用してモニタのリフレッシュレートと同期せず
                       に描画する。

  【注意】グラフィックボードによっては表示されない場合があります。


「Sound」メニュー
  「Volume...」 ...... 音量を調節するダイアログが表示されます。
  「Record」 ......... 録音 サブメニュー
    「Rec」 ............ 録音を開始します。
    「Stop」 ........... 録音を停止します。
                         プログラムと同じフォルダにsound.wavが作成されます。
  「2000Hz」 ......... 再生/録音のサンプリングレートを設定します。
      :
  「96000Hz」

  「50msec」 ......... 音が出力されるまでのディレイ時間を設定します。
      :
  「400msec」

  【注意】サンプリングレート、ディレイ時間を反映するにはこのプログラムを再起動
          する必要があります。


「Printer」メニュー
  「Save...」 ........ バッファに出力したプリントデータをファイルに保存します。
  「Print」 .......... バッファに出力したプリントデータをmpprinterに送信します。
  「Clear」 .......... バッファをクリアします。

  「Direct」 ......... バッファを介さず直接mpprinterに送信します。

  【注意】BASIC上でLPT0:に出力した内容がバッファに保持されます。

  ※mpprinterは拙作のプリントデータを閲覧するソフトです。


「Options」メニュー
  「Show LED」 ....... 画面左側にあるLEDの表示を切り替えます。
  「Show Message」 ... 画面内にメッセージを表示するかを切り替えます。
  「Use Joypad」 ..... ジョイスティックを使用するかを切り替えます。
  「Keybind...」 ..... キー割り当てダイアログ(後述)を開きます。
  「Configure...」 ... 設定ダイアログ(後述)を開きます。


「Help」メニュー
  「About...」 ....... バージョンを表示するダイアログを開きます。


○ キー操作説明

  キーボードは日本語キーボードを前提としています。
  デフォルトの特殊なキーの入力方法は以下のとおり。
  ※キー割り当てダイアログにて変更できます。

  レベル3のキー    Windows側のキー
  ---------------- -----------------------------
  [BREAK]          [F9]
  [GRAPH]          [無変換]
  [KATA/HIRA]      [カタカナひらがな]
  [DEL/INS]        [Delete] または [BackSpace]
  [CAPSLOCK]       [CapsLock]
  [num ?]          [END]
  リセットスイッチ [F11]

  INSERTは[Shift]+[Delete]となります。※レベル3の仕様です

  また、ショートカットキーとして以下があります。
  ※キー割り当てダイアログにて変更できます。

  機能             Windows側のキー
  ---------------- -----------------------------
  ポーズON/OFF     [Pause]

  いくつかのメニューはAltキーと併用して呼び出せます。
  ※Altキーはキー割り当てダイアログにて変更できます。

  メニュー名                    Windows側のキー
  ----------------------------- ----------------------------------
  Control -> PowerOn            Alt + P
             Mode Switch        Alt + M
             Reset Switch       Alt + R
             Pause              Alt + Q
             CPU x1             Alt + 1
             CPU x2             Alt + 2
             CPU x4             Alt + 3
             CPU x8             Alt + 4
             CPU x16            Alt + 5
             Sync IRQ           Alt + 0
  Screen  -> FullScreen/Window  Alt + Enter
             Scanline           Alt + S
             Afterimage1        Alt + T (Afterimage2と切り替え)
             Afterimage2        Alt + T (Afterimage1と切り替え)
             Direct3D Sync      Alt + Y (Direct3D Asyncと切り替え)
             Direct3D Async     Alt + Y (Direct3D Syncと切り替え)
  Sound   -> Volume             Alt + V
  Options -> Show LED           Alt + L
             Show Message       Alt + Z
             Keybind...         Alt + K
             Configure...       Alt + C


○ キー割り当てダイアログ(Keybind...)

  ■Keyboard

　Windows側のキーとLEVEL3のキーの割り当てを設定します。
  LEVEL3のキー1つにつき、Windows側のキー2つまで割り当てることができます。

  ダイアログ左側にある枠内の変更したい部分をクリックしてください。
  割り当てたいキーをキーボードから入力してください。
  割り当てたキーを消去するにはマウスの左ボタンをダブルクリックしてください。
  
  割り当てが終わったら、ダイアログ右側にある「save preset1〜4」ボタンで
  保存することができます。

  ダイアログ右側にある「load default」ボタンを押すと初期状態に戻ります。
  「load preset 1〜4」ボタンで保存した割り当てに変更できます。

  【ダイアログ内のLEVEL3側のキー名称の補足】
   reset   ... リセットボタン
   (Pause) ... ポーズON/OFF (本ソフト独自のキーです。)
   (Alt) ..... ショートカットキー

  【注意】Windows側のキー名称はJPキーボードを前提にしています。
  【注意】Windows側のAlt,menu,F10の各キーは割り当て可能ですがシステムキーの
          ため同時にメニューが開くなどの弊害が発生します。

  ■Joypad

  ジョイスティックの十字キーおよびボタン1〜8をLEVEL3のキーに割り当てることが
  できます。
  キーボードの場合と同様に操作してください。
  ジョイスティック2台まで対応しています。

  ダイアログ下部にある「Use any combination of buttons」をチェックすると、
  ボタンの同時押しや十字キーを斜めに入れた場合に別のキーとして判定するように
  なります。


○ 設定ダイアログ(Configure...)

  ■FDD Type

  No FDD .................. FDDを使用しない
  Use 3inch compact FDD ... 3インチコンパクトFDDを使用する。
  Use 5.25inch mini FDD ... 5.25インチミニFDDを使用する。

  画面左側の「>」は現在のFDDモードを表しています。
  設定を反映させるには、このプログラムを再起動するか、
  メニューのControl -> PowerOn を行なってください。

  ■I/O Port Address

  どの拡張カードを有効にするかを指定します。

   ◆5.25inch FDC  $FF00 - $FF04 ... 5.25インチミニFDD用ボード
    5.25インチミニFDDを使用する場合は必須です。
    3inch FDCと同時に使用出来ません。

   ◆3inch FDC     $FF18 - $FF20 ... 3インチコンパクトFDD用ボード
    3インチコンパクトFDDを使用する場合は必須です。
    5.25inch FDCと同時に使用出来ません。

   ◆6voice PSG    $FF30 - $FF33 ... 6重和音PSGカード

   ◆Ex LPT Port   $FF3C - $FF3F ... 増設プリンタカード

   ◆Ex COM Port   $FF40 - $FF41 ... 増設RS-232Cカード

   ◆9voice PSG    $FF70 - $FF7F ... 9重和音PSGカード
    KANJI ROMとはアドレスが重複するため同時に使用出来ません。

   ◆KANJI ROM     $FF75 - $FF76 ... 漢字ROMカード
    9voice PSGとはアドレスが重複するため同時に使用出来ません。

  画面左側の「>」は現在有効なボードを表しています。
  設定を反映させるには、このプログラムを再起動するか、
  メニューのControl -> PowerOn を行なってください。

  ■Load wav file

  wavファイルからカセットテープイメージをロードする場合の解析方法を設定します。

  reverse wave ... 波形を反転して解析する。
  half wave ...... 半波長の波を検出して解析する。
  correct ........ 波形を補正してから解析する。
   cos wave ...... cos波で補正する。
   sin wave ...... sin波で補正する。

  ※詳細は拙作のソフトwavtoolのドキュメントを参照ください。

  ■Save wav file

  カセットテープイメージをwavファイルでセーブする場合のサンプリングレートを
  設定します。

  ■CRTC

  Disptmg skew : 画面の表示タイミングを調整します。
  Curdisp skew : 画面のカーソル表示位置を調整します。


●ディスクイメージについて

  【3インチコンパクトフロッピーディスク】
  ディスクイメージは片面単密度(1S) x 2となりますが、両面倍密度(2D)であれば
  使用出来ます。パラメータとしては、
    40シリンダ(トラック/片面)
     2ヘッド
    16セクタ/1トラック
   128バイト/セクタ ... 256バイトでも使用出来ますが、本ソフトでは128バイトを
                        超えるデータは無視されます。

  【5.25インチミニフロッピーディスク】
  ディスクイメージは両面倍密度(2D)となります。
  パラメータとしては、
    40シリンダ(トラック/片面)
     2ヘッド
    16セクタ/1トラック
   256バイト/セクタ


●カセットテープイメージについて

  ■wavファイル
    音声データです。無圧縮PCM、11025/22050/44100/48000Hz、8/16bitに対応。

  ■l3cファイル
    音声データを4800Hzで区切り、HighLevelなら"1"、LowLevelなら"0"としたもの。
      1200Hzなら"1100"(または"0011")
      2400Hzなら"1010"(または"0101")
    となります。
    この形式はテキストファイルで"0"と"1"で表現します。

  ■l3bファイル
    シリアルデータです。音声データから変換する際ボーレートによってデータが
    変わります。
      600ボーなら、2400Hz4波長で"1"、1200Hz2波長で"0"
     1200ボーなら、2400Hz2波長で"1"、1200Hz1波長で"0"
    となります。
    この形式はテキストファイルで"0"と"1"で表現します。

  ■l3ファイル
    テープイメージです。
    テープイメージには、SAVE時に指定したファイル名、チェックサムなどの付加情報
    が含まれています。


● 機能についての補足

  ■サウンドPSG
    6重和音PSGのI/Oポートは、&hff30〜&hff33を使用。
    (以前のバージョンでは&hff00〜&hff03を使用していましたがFDCと干渉するため
     変更しています。)

    9重和音PSGのI/Oポートは、&hff70〜&hff7fを使用。

  ■ライトペン入力
    マウスカーソルで画面内を指定し左クリックすると押した状態になります。
   なお、本ソフトでは画面の明るさに関係なく押した状態になります。

  ■ターミナルモード
    本ソフトを2つ同時に起動して、双方でTERMコマンドを実行すると擬似的に
   シリアル通信している状態になります。
    ただし、ボーレートの設定は無視します（常に約60baud）。

  ■ジョイスティック
    USB接続もので動作確認しています。
    本ソフト起動中にジョイスティックを抜き差しした場合は、一度、キー割り当て
   ダイアログで入力可能かを確認してください。
    ※本ソフトではPIA拡張ボードに接続するジョイスティックのエミュレートには
      対応していません。

  ■漢字ROM
    I/Oポートは、&hff75、&hff76。
    kanji.exeは「ＭＳ ゴシック」を使用して擬似ROMイメージを作成します。

  ■FDD
  【3インチコンパクトフロッピーディスク使用時】
    I/Oポートは、&hff18 〜 &hff20。

  【5.25インチミニフロッピーディスク使用時】
    I/Oポートは、&hff00 〜 &hff04。

  ■増設プリンタカード
    I/Oポートは、&hff3c 〜 &hff3f。
    BASIC上でLPT1:、LPT2:が使用できるようになりますが本ソフトでは入出力に対応
   していません。

  ■増設RS-232Cカード
    I/Oポートは、&hff40 〜 &hff41。
    BASIC上でCOM1:が使用できるようになりますが本ソフトでは入出力に対応して
   いません。

● 開発環境

  Microsoft WindowsXP SP3 Professional (32ビット環境)
  Microsoft Visual C++ 2008 Express Edition
  Microsoft WindowsSDK 7.0
  Microsoft DirectX SDK (June 2010)
  CPU: Core2Duo E6600 2.4GHz / Mem: 4GB


● 参考文献

  HITACHI PERSONAL COMPUTER ベーシックマスターレベル3マーク5 入門書 - 日立製作所/日立家電販売 1983
  HITACHI PERSONAL COMPUTER ベーシックマスターレベル3マーク5 文法書 - 日立製作所/日立家電販売 1983
  HITACHI PERSONAL COMPUTER ベーシックマスターレベル3マーク5 取扱説明書 - 日立製作所/日立家電販売 1983
  I/O別冊 ベーシックマスター活用研究 - 工学社 1982
  レベル3BASIC入門 - アスキー出版 1981
  マイクロコンピュータMC6809の考え方 - オーム社 1982


● 謝辞

  このソフトを公開するにあたり心よく許諾していただいた武田氏に感謝いたします。
  Common Source Code Project Webページ:
    http://homepage3.nifty.com/takeda-toshiya/


● クレジット

  SimpleIni:
  A cross-platform library that provides a simple API to read and write
  INI-style configuration files. It supports data files in ASCII, MBCS and
  Unicode. It is designed explicitly to be portable to any platform and has
  been tested on Windows, WinCE and Linux. Released as open-source and free
  using the MIT licence.
    http://code.jellycan.com/simpleini/


● 免責事項

・このソフトはフリーウェアです。ただし、著作権は放棄しておりません。
  実行モジュールについては作者Sasajiにあります。
  ソースコードについてはそれぞれの作者にあります。
・このソフトによって発生したいかなる損害についても著作権者は一切責任を負いません。
  このソフトを使用するにあたってはすべて自己責任で行ってください。
・雑誌やネットなどに転載される場合、不特定多数の方に再配布を行う場合でも
  承諾の必要はありませんが、転載の旨をご連絡いただけたら幸いです。

==============================================================================

連絡先：
  Sasaji (sasaji@s-sasaji.ddo.jp)
  http://s-sasaji.ddo.jp/bml3mk5/
  (Twitter: http://twitter.com/bml3mk5)

==============================================================================

