液晶モニタのせいで、不採用となってしまいました。仕方がないのでリアルタイム制御に変更してみましたが、うん、やっぱり完全な実装は、かなり困難な道であることが分かりました。アトリビュートは以下のような構造になっています。この構造、想像以上に制御が面倒なのです。簡単なのは、距離なんてなくて、そのまま色も指定できる形式です。架空のアトリビュート構造を挙げるとしたら以下の感じでしょうか。上記二つは、色構造的には同じだったりします。赤が2つ続いて、次に白が2つ続いて、さらに赤が4つ続いて...という内容で全く同じ構造です。詰まるところコレは連長圧縮されている状態になります。アトリビュートの書き換えとは、圧縮状態のまま、その中の数値情報を書き換える動作なのです。速度的にもこれはかなり無理だわw※限定された状況を除く発想を変えるアトリビュートの書き換えが難しいのであれば、発想を変えよう。メリットは高速に展開と圧縮が出来る事です。あれば、アトリビュート情報を解凍して、色などの情報を変更してから、もう一度圧縮し直せば良いのではないかと。プログラムを組んで試してみました。重い...が、ギリギリ許容範囲か。そこで高速化のために必要最小限でデータ圧縮してみて、アトリビュートに反映させてみました。?と調べたところ、意外な事実が分かりました。アトリビュートは左側からの距離と色コードのペアで構成されています。最初は何を書いても$00にみなされました。左側から位置を指定してるから、これは分かります。画面幅は最大80文字だから$50が最後になる。アトリビュートエリアは、1行に40バイトあります。色変更が2か所しか無ければ...6バイトで表現としては終わります。後ろに余った14バイト、どうなると思います?驚いた事になんと機能しとりやがるんですわ!なので、必要な分を正しく設定しても、後方に余分な設定値が残っていると意図しない画面表示になってしまうのです。上記はそのテストでアトリビュートが崩れた状態です。この実験結果から、アトリビュートエリアは各行40バイト分全てを正しく設定する必要がある事が分かりました。全部設定しなきゃならない。埋め尽くす事になりました。見てたらこんなの見つけました。タグクラウドAILZ80ASMAndroidBASICC#C言語C言語講座DIYJsonMarkdownMZ80CNASNewシティヒーローPC6001PC8001PC8001mk2PCG8100PS2RPGVS2022VSCodeWindowsXperiaZ80お祝いお買い物ちらつきアイテムアセンブラアルゴリズムエミュレータオーダリングテーブルガスレンジガス器具ゲームゲームデザインゲーム制作ゴルフサウンドシリアライズタスクトレイツールテストデザインデバッグデータ圧縮データ構造トレーニングパソコンミニパーツフリーフリーズプログラミングプロジェクト管理プロトタイプ宣言ポインタマップエディタメモリ空間モニターアームラズパイリスト構造リフォームルーターループレトロPCレトロPC開発でカセットにデータを記録する環境を作ります。sapm防止のため手入力してください。リンで利用することは禁止いたします。各記事に直接飛んでくるのはOKです。何かございましたら、上記メアド宛にお気軽にお問い合わせください。レトロPCゲーム制作に使って頂く分には、ドンドンご自由にお使いください。