ここから本文です
ブログを始めました・・・

書庫全体表示

・製作34の内容で更新です、7バイト少くなります。(機能は同一)
<新更新部分:$3068($FC68)以降$3078($FC78)まで>
        TFR     PC,D                     *3068: 1F 50          '.P'
        ANDB    #$00                     *306A: C4 00          '..'
        STD     M3000,PCR                *306C: ED 8C 91       '...'
        BSR     Z3039                    *306F: 8D C8          '..'
        RTS                              *3071: 39             '9'
        JSR     Z3012,PCR                *3072: AD 8C 9D       '...'
        JSR     Z0470                    *3075: BD 04 70       '..p'
        RTS                              *3078: 39             '9'
 <旧更新部分:$3068($FC68)以降$307F($FC7F)まで>
        LDU     #M0500                   *3068: CE 05 00       '...'
        PSHU    PC                       *306B: 36 80          '6.'
        PULU    A                        *306D: 37 02          '7.'
        PULU    B                        *306F: 37 04          '7.'
        ANDB    #$00                     *3071: C4 00          '..'
        STD     M3000,PCR                *3073: ED 8C 8A       '...'
        BSR     Z3039                    *3076: 8D C1          '..'
        RTS                              *3078: 39             '9'
        JSR     Z3012,PCR                *3079: AD 8C 96       '...'
        JSR     Z0470                    *307C: BD 04 70       '..p'
        RTS                              *307F: 39             '9'

要は$3068($FC68)以降から次のリターンまでのコードは、このコードの塊の
先頭アドレスを取得してるだけです。そこに転送するデータの先頭アドレスと
末尾+1のアドレスが書かれいるので、このコードの塊(含むワークエリア)の
先頭から16バイト分をPC(windows、Linux等)に先ず送ってます。先頭の
2バイトに、このコードの塊の先頭アドレスを設定すれば$3039からの呼出で
構わないです。$3068($FC68)からのコールは2バイトを省くためのコードです。

・製作34の内容で補足
転送するデータの先頭アドレスと(末尾+1)アドレスは差分は16の倍数に
なるように設定して下さい。末尾+1はキリが良いように切り上げること。
例えば先頭アドレスを$6000とすれば(末尾+1)のアドレス$60X0、
Xの部分は0からFの16数値、下位のバイトの下位のニブルは0になります。
下の具体例では 6000 - 6070 になってます。
000060006070F7FDFDB6FDFE7FFDFD

理由はwindowsのドライバではキリが良くなるブロックでないと、データを
取得に行ったきり制御が戻って来ないからです。(これは慣れれば一理あり)
試してはいませんけど、1バイトづつ取得する訳にも行かず・・・

・次回はwindowsのGUI用でマルチスレッド化した時の別スレッドの
C言語ソースとヘッダーのみ公開します。因みに「MFC」で製作しました。
visial studio ではオプション設定しなければ「MFC」の開発環境は
構築できません。また基底クラスから派生する方法も派生したクラスを
コールする方法も説明しませんのでインターネットサイトや参考書籍等で
調べて学習して下さい。(ユーザー インターフェイス スレッド です)

ではまた。

顔アイコン

顔アイコン・表示画像の選択

絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
  • 名前
  • パスワード
  • ブログ

開くトラックバック(0)

本文はここまでですこのページの先頭へ
みんなの更新記事