とりあえず一件目は致命傷ですね。
DataOutはプログラム部以外の箇所の出力のフラグです。
多分カウンタが進まなくなってるんですね、きっと。
2件目はひょっとすると関数の参照渡しの意味がなくなってるかも。
サブルーチン呼び出しの処理と条件分岐処理を違うようにしたんで。
ここまで書いて別の処理思いついたんで明日あたりにUPします。

実は試した結果、バンク20とか読んでるっぽいんですけど多分おかしい。