[FM]FULLMSX for BLOG

詳しいMSXパソコンなどの情報はホームページで!
https://fullmsx.web.fc2.com/

MSXBASICからマシン語へ フリーエリアとは? 漢字BASICで「おけ」 i8080

2022-09-17 08:24:28 | BlueMSX

お久しぶりです。最近はWindowsをパフォーマンス優先に設定して動作させています。

デザイン優先にしてエラーが発生する場合にパフォーマンスをあわせることでアプリケーションのメモリ使用率が下がります。

全体的に抑えることでマルチタスク(死語!?)などを使う場合は作業効率が上がるといった逆転現象が起こります。
これは遅いCPUでGPUもフルに使うとアプリケーションのパフォーマンスを上げすぎると余力がなくなりエラーが発生します。
全体のパフォーマンスを下げることでPCの負荷が下がりマルチタスクの余力が上がります。
遅いパソコンはこれがよいです。

IntelのAtomと比べると使用率が高くてそれでも下がった感じですが、
動作が若干上がった感じがします。
今使っているPCは2.1Gまで上がる感じです。
メモリ使用率は100%超えているのでメモリが足りていない感じです。
もしかしたらオートチューニングでMAXが3Gまで上がるといった感じですね。

CPUが3Gの富士通の中古PCで試しましたが速度的に変わりませんでしたね;
とまぁ、長くなってしまいました;
これはWindowsに限ったことではなくMSXパソコンなら漢字BASICを使うとメモリ不足になることがあります。

後述すると富士通の中古PCは断片率が30%(え!)になっていました。
仕事用PCでメンテナンスしてなかったようです;

今回はフリーエリアについて書きたいと思います。
メモリの使い方はシステムエリア、プログラムエリアと数値などを記憶するワークエリア、画面表示などのデータエリアが必要になってきます。
実行するとデータがたまってきます。入力中に全く動かなくなるのは入力したデータが記憶できないために止まったりします。

Windowsの場合は何かデバイスに障害があって例えばメールサーバーの新着確認なども考えられます。
MSXBASICではディスクアクセス中やテープをロード、プリンタなどですね。
こんなふうに何か別のプログラムを使っている場合でも止まりますがここではメモリ不足で止まることです。
フリーエリアがないとパソコンは止まります。

画面ではフリーエリアの空き容量を表示させました。
この数値がゼロになると止まるわけではなくゼロに近い数値になるとパソコンが止まります。

マシン語はうまく使うことでコンパクトになります。さらっと説明しますと
コマンドを入力するだけのコンソールならBASICのIOシステム(BIOS)を使えばMSXBASICプログラムよりもコンパクトになります。

MSXBASICのデータは実行すると新たにメモリにいちいちデータ転送するインタプリタの弱い部分があります。
入力した文字を表示させて表示したデータを記憶するといった感じですね。

マシン語モニタではあらかじめメモリにデータを書くことでメモリへの転送処理を省くことができます。
昔のMSXBASICのマシン語のプログラムはメモリへの読み込みに数分かかっていました。
そこでASCII文字を使ってプログラムの領域でマシン語プログラムを実行できるようなプログラム技法が生まれましたが、
メモリに直接書くことが一般的です。だからMSXマガジンには簡易なマシン語モニタでプログラムしていた感じがします。

特にテープの時代を経験しているかたはBLOAD<BASIC<アスキー(テキスト)の順番にロードが遅いので、
バイナリ形式以外のデータはロードに時間がかなりかかっていました。
特にテキストデータは1行ごとに初代のパソコン通信のようにピーピー鳴る音(キャリア音)は遅いイメージがかなり強いと思います。
ですからROMBASICのマシン語はロードも早く、実行も早いと優位な感じでしたね。
ザナドゥとかデータロードに30分くらいかかっていました;さて、

ちなみにDOSのプログラムならシステムコールを使用します。このシステムコールのコードはMS-DOS3.1と同じです。
前処理でデータがBASICシステムでクリアされない領域を使って実行できればMSXBASICプログラムが消えても動かすことができます。

というわけで、お待たせしました。
独自のプログラミングしたMSXアーカイブ(FULLMSXアーカイブ)で体験できるような流れにしていきます。
また、リンク切れなどもありましたのでZ80のコードを載せることしましたのでスマホで見ながらできます。

FULLMSXアーカイブ:
https://fullmsx.web.fc2.com/mon.html

★こんなことも

久しぶりのおまけです。
試しにバグを覚悟で漢字BASICに変えてみるとどうなのか?やってみました。
MSX2+から使うことができます。モードが4つありフォントも変わります。


こんなふうになりました。#はりつけが# 笙(つけ)に変わりました。
これはMSXひらがながシフトJISに変わります。

変換処理ではCLSはエラーが出るので_CLSに変える必要があります。
どちらのモードでもCLSしたい場合はPRINT CHR$(12)でも同じです。
CHR$(13)がCRコードなので一緒に覚えるとよいですね。

エラーを直してトライしてみると

DB 'おけ'

に変えてみましたがCHPUTではちゃんと2バイト処理してくれるんですね。
「お」が82A8で「け」が82AFになりD104hに00を書くことで文字の終わりにしています。
文字は50音順になっています。「お」がA8、「か」がAA、「き」がAC、「く」がAEで
並べると「おかがきぎくぐけ」となります。
漢字BASICでもBIOSを使うことができました。思っているよりも日本語をカンタンに処理できるんですね。
BlueMSXで漢字を入力することができないのでプログラミングしてテキストで書けばできます。

とりあえず漢字を直接入れたい場合は
まずWindowsのテキストファイルで1行書きそのファイルを仮想のBドライブに保存して
プログラムでBドライブのファイルを読み込むようにして貼り付けする感じです。

WORD(b:word.txt)をロードすると1行目を読み込み「新規作成」が漢字BASICに文字が入ります。
FTPのようにb:word.txtを差し替えして更新をする必要があったり面倒ですが、こんな方法もありますね。

左はMSXの画面、右はWindowsのメモ帳です。
コードがUTF-8になっている場合があるのでANSIで保存します。



モードにするにはCALL KANJIでCALL ANKで戻ります。
ロード形式は16進数(00h-ffh)はマシン語になり、記号の場合は疑似命令になります。
”'LD A,03h ;新規作成”という感じです。次回アップデートで対応になります。

あとは日本語ラベルも
アセンブラツールズでは試用目的(モニタ)でエディタまたはメモ帳でプログラミングできるようにします。

さらにSCREEN5など漢字グラフィックモードにもできますがJEが不安定になることがあります。
ググってみると面白いです。さらに!

intel8080Aニーモニック記述も選択できるようにしました。
このツールはハンドアセンブルの補助として、
アセンブル記述をコメントとして書くだけの機能です。
ここでは3Eの後に16進数でAレジスタの数値を書いていきます。
16進数の数値があっていれば例えば極端な例にすると

10000 DATA"'Aレジスタに16を入れる","3E16"でも動きます。
文頭にダッシュ(’)は入れてください。

まぁ88のMONの表示をMSXでしたかったので加えてみました。
Z80は上位互換ですがZ80のJR命令、EX命令は残しています。
この新しい命令がわかればZ80をマスターした感じになります。

B2は1バイト数値、B3B2はアドレスの上位(B3)、下位(B2)の2バイト数値です。
では。

参考ページ:
Z80アセンブルツール 操作説明 倉庫整理 セブンでDS NEWラブプラス体験版 - [FM]FULLMSX for BLOG (goo.ne.jp)

 

 

 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アズールレーン5周年記念生放送 豪華客船から祝福を アズレンとは?

2022-09-11 08:52:48 | Weblog

今回は昨日、動画放送された「アズールレーン5周年記念生放送」を書きたいと思います。

アズレンはセイレーンという未知なる敵と4大連合「アズールレーン」で戦う内容ですね。

2017年にリリースされた海戦シューティングゲームです。(え!)

各プレイヤーとの疑似対戦ができて面白いですね。

海戦ゲームはいろいろありますが美少女のカンセン(艦船)が何といっても魅力ですね。

シューティングが苦手な人は育成をすれば何とか遊べそうですね。

今回はこのアズレンが5周年になったということで、いろいろと面白くなりそうです。

見逃した人はyoutubeから動画を見ることができます!

豪華客船からクーちゃん(パーミャチ・メルクーリャ、ロシアの巡洋艦)に出演にバトンタッチしますw。

そのほか、アズナンデス!、年表で振り返る5周年目、着せ替え衣装TOP10などです。

アズールレーン5周年記念生放送:
https://www.youtube.com/watch?v=ptrqFbiKDu8

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

KYOSHOエッグ トイドローン ビギナーズ 手のひらサイズ 赤いボディ モード2 

2022-09-04 10:23:52 | Weblog

お久しぶりです。
9月になりました。日中は暑い日が続きますが夜は涼しくなってきました。

 今回は京商のトイドローンについて書きたいと思います。
ドローンにはドローン規制があり100g以上は機体ナンバーの登録申請が必要になります。
しかも、住宅地など人口が集中している都市部では無許可で無人飛行機を飛ばすことができません。
また高さ制限などの法律など煩雑な部分があり子供には取り扱いが難しい部分があります。

トイドローンと言っても公園内では半径30m以内は人が立ち入ることができません。
このため小規模の公園では屋外用でも占有されてしまうため難しいですね。

 というわけで、トイドローンはどういうものかを検証するため購入しました。
KYOSHOエッグビギナーズの5,000円くらいのもので手のひらサイズのトイドローンです。
小さいですがパワーがあります。練習用として墜落してもある程度まで耐えられます。

私はRCの経験が全くありませんがゲームなどが好きで
ある程度は操作に自信があるから買ってみようと思ったわけですw。
このマシンではスマホを見ながら操作はできません。
最終的にコントローラで操作するのでプロポだけでいいかなと選びました。

プロポ(送信機)のスティックで操縦します。モード2タイプの操作になります。
進行方向は←↑→ならうまくできますが、←↓→になると曲がるタイミングがうまくできませんね。
最初は室内でやってみましたがホバリングがふらふらっとなりバランスが安定しないので難しいです。

屋内用ドローンでも風に流されるので注意が必要ですね。
また換気扇を回した時のわずかな風に流されてしまいます。
ローターの音も大きいです。

まずUSBをバッテリーパックにつないで40分充電をしてコネクタを本体に差し込みます。
プロポに単4電池を3つ入れます。飛行時間は6分です。

機体が赤く点滅してプロポの操作待ちになります。
操作方法に沿って離陸させました。機体を修正して同じ位置に着陸させる練習です
衝撃をできるだけ少なくして着陸させることがうまくできればOkです。

やってみるとコントローラで修正しながらヘリのホバリングみたいな感じです。
最初は感覚をつかむまでが数時間かかります
自転車に初めて乗る時のフラフラ感に似ていますね、右スティックで前後左右の機体の調整ができます。
室内は6畳間で最初はぶつかって何度も墜落しましたw。棚のスキマに入ってヤバイ感がありました。
ちょっと自信過剰なところがあって難しいとは思っていませんでした。
そう考えるとRCメーカーのKYOSHOでよかった感じがします。

戦車みたいに超信知旋回のように機体がぐるっと回るだけで飛行機のような旋回はしません
ですから軍用なら空飛ぶ戦車のようなことができるので恐ろしい面もあります。
本当にドローンが追いかけるくるようなSFの世界も現実化しそうで
不審な機体などを取り締まる警察用ドローンなども増えてきそうな気がします。とまぁ映画の見過ぎですが;

平和利用に使ってほしいと思っています。
やはり飛行機のように大きく円を描くような旋回をしたいので屋外に出てみました。
やってみるとガクガクと回る感じですね;

屋外では規制があるため、あらかじめ最適な場所を探しておきました。
また早朝の時間帯であれば人がいないので無風の状態で気楽に飛ばせますが、
日中では野球をしていたりスポーツをしているのでできない場合もありますが、
練習をすれば狭い場所でも飛ばせるようになります。

風に流されないので離陸した位置ぐらいに着陸できれば問題ありません

屋外の場合は風の影響をかなり受けます。風速1mくらいでも3~40m程度流されます
できれば風上に飛ばしたり周回飛行よりは旋回しない水平飛行がおすすめです。

マシンを熟知した中級者であれば高速でスティックをコントロールすれば向かい風でもある程度は進みます
上昇はいいのですが下降操作は無風の状態でないと真下に着陸は難しいです。
それには飛行機と同じようにあらかじめ飛行位置と着陸点の高さを最小にするとよい感じがします。
特に屋外ではホバリングやタッチアンドゴーは特に練習したほうがよいです。

ドローンで飛行できるのは風速5mで扇風機程度の風までです。
耳から風を切る音がする強風では飛行はできません

その状態から離陸した位置に修正できるテクニックがあれば問題ありませんが難しいです。
コンディションが良くなるのを待つしかないです。
ベテランになれば最速に設定すればそよ風程度でも可能です。できれば保護者のかたが操作してください。
ドローンを買ってみるのもよいですが機体が大きくなるとかなり広い場所でないと難しい感じがします。

操作が慣れるまでグランドを使ってみるのもおすすめです。
何となく8の字飛行を楽しむにはコートの半分程度の広さは必要かもしれません。
ラジコンカーと違って飛行するので風の影響を受けて難しいです。
本格的な飛行なら野球で言えば内野くらいの広さは欲しいです。200m以上の広い公園ですね。

あとはやはり、室内ではすきまなどをなくしてドローン飛行に最適な環境を作ったり工夫して
屋外ではドローンで風景を撮影する前に風が出てきたら中断するなど安全対策について考えてみたいですね。
広い私有地なら「畑に落ちたw」で済みますが他人の土地に入ったりしては問題になります。
ドローンの危険性を知らないことが問題です。低空で飛ばせば安全性は上がります。
危険を予知して緊急着陸をすることも安全対策ですね。
また山や谷は風が強いのでカメラ撮影は熟練したパイロットでないと難しいところがあります。

例えば花火大会など立ち入り禁止区域があります。
これは飛来物が落ちた場合に影響がない範囲になっています。ドローンも同じです。
花火大会のような高度まで上昇する場合は墜落すると仮定をして安全確保が大事です。
またそこまで上昇する場合はベテランパイロットの付き添いか市町村などに届け出ることをおすすめします。

ドローンを使いこなせれば人の高さで2m以下、周囲30m以内で視認できればよいと思います。
FPVもシミュレータで試してみると難しい部分があります。
上空に上昇することは簡単ですが下降するときに離陸場所に着陸できるか難しいところです。
着陸場所が見えるカメラがあればよいです。

手のひらサイズのほうが手軽で壊れても購入しやすいのでおすすめですね。
操作に十分慣れてからカメラの風景撮影がよいですね。
では。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする