[FM]FULLMSX for BLOG

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

BlueMSX:BASICプログラムをプリントアウト MSXプリンタなら

2024-04-03 13:15:12 | BlueMSX

お久しぶりです。テキストエディタでもいいのですが、目が疲れるので;
プログラムリストをプリントアウトしてデバッグすることにしました。

オプション-ポート-パラレルポートでUSB0001:<プリンタ名>を選択してから
BASICでLLISTで印刷します。

こんな具合になります。印刷されない行があったりするので;
2回印刷をしましたが行が重なる部分があるものの全体をカバーできました。
印刷開始行の位置がバラバラになったり最初と最後が同じページに印刷;とワザとバグらせている感じがします。

MSXプリンタの話ですが最初はインクリボンを買っていましたが、
パソコン本体が健在であればFAX用感熱紙をMSXの熱転写プリンター(FS-PW1などワーコン)に差し込めば
インクリボンがなくても印刷できます。
あとは白くならないうちにコピー紙にコピーすれば保存できます。
もちろん、MSXでワープロもできると思います。では。

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

MSXで音声合成 1chipMSX記念ディスクより厳選

2023-12-21 06:07:15 | BlueMSX

MSXユーザーのみなさんご無沙汰しています。
今回はMSXで音声合成について書きます。

とりあえず、1chipMSX記念ディスクからのデータが見つかって専用パッケージまではできました。
12月用に考えていたのですがフロッピーディスク1枚ではデータ量が多いので専用ディスクになります。
今ではフルボイスのゲームなどありますが昔のゲームでもかけ声程度なら再生することができました。
音質は無線程度に劣りますが8ビットレートに落とせばだいたい32KBとみて3秒程度は再生できます。

今回のものは64KBで6秒程度再生できていると思います。かなり昔のものですが、
WindowsのWAVデータから加工してレコーディングして無音部分を削って音質は最適で何とか入っています。
1つのファイルが64KBで10個で640KBということは720KBならもうほぼ音声データで一杯になりますね。

その後はパソコン通信のMGSデータをBASICで実行することができました。
まず拡張BASICを使うと漢字BASICが不安定になったりすることがあって通信ログは難しいのですが、
うまく切り抜けることができました。BASICでBGMを鳴らすことができます。2月にホームページで第2弾を公開予定です。

では^^;

 

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

BlueMSXでスマートキーボードを使う ロジクール K380

2023-06-07 18:25:15 | BlueMSX

お久しぶりです。
今回はスマートキーボードをBlueMSXで使ってみました。

青のデザインのキーボードで「将来的にこんな感じになるのかなぁ」と思っています。
109キーボードは大きくて長いのでデスクのスペースをとってしまうんですよね。
このキーボードなら使いやすいです。

しかも、格安キーボードのキータッチとは違って会社のThinkPa○と同じキータッチ感でいいです。
でも、BlueMSXなどでfnボタンを押してファンクションキーを使うときに不便な感じがします。
F6キーの場合はShift+fn+F1ボタンを押したりと慣れるのに一苦労です。
そこでlogi option+をインストールして設定することでファンクションキーはfnキーを押す必要がなくなります。
逆にマルチメディアキーがfn+再生キーになります。

今までどおり注意しないといけないのはF12キーです。
このキーはInsキーの隣にあるのですが間違えて叩くとリセットになるので要注意です。
あと、キャプチャはfn+tabキーになりましたね。
次世代のキーボードになるなら、こんな配列になって文字キーをコマンドキーにしたほうがいい感じがしますね。
もう1つはBluetooth対応でスマホでも使えるのでWebMSXで操作できそうなところです。
プログラミングのキー割り当ての参考にどうぞ。では。

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

1996年ごろのMSXパソコン 六角麻の葉のデータが見つかる BASICでパレットチェンジ 

2023-01-17 14:04:10 | BlueMSX

2DDのディスクの整理をやっています。
かなり武尊ソフトを買っていた感じですね。
当時はMSXのフリーソフトも販売していました。
TAKERUはこんな感じでした。

パソコンソフトはパッケージ付きで高額でした。
だいたい7,000円~15,000円くらいでした。
特にMSX2+の頃は販売価格が高くなった気がします。
そこで、パッケージをなくして安価にするためにTAKERU版が発売されました。
今で言えばダウンロード版に近いものです。例えば3,000円が1,500円になったりですね。
このPCソフト販売機はパソコン販売店にありました。
5インチのパッケージと空のディスクが出てきて手書きでソフト名やAディスクと書いてから
自分で書き込むものです。当時のメディアは5HDと2HDがありました。
MSXは2DDですが5インチがまだあった時代でした。

MSX雑誌のMSX-FANは1995年の8月号が最後になりました。
当時は新しいマイクロソフトWindows95の雑誌が多く売っていましたね。
MSXはMSXturboRパソコンまで楽しめてよかったです。

あとは当時に作っていたデータも見つかりました!



こんなふうにSCREEN7のグラフィックエディタで描きましたね。
やっぱりハイレゾのMSXモードで細かく描くことができます。
一つ一つ三角の線(スジ)を描いてた記憶があります。



プログラムはBLOADで読み込みます。
パレットデータが読み込めなかったので手動で色を調整しました。
カラーコード7の水色を白に変更して15の白をエンジ(赤紫)にしています。
50行でボタンを押すまで止めています。

こんなふうに当時は小田原で寄せ木細工の仕事をやっていました。
MSXで配色を考えたりしていましたね。

これは市松が仕上がった画像でMSX2+のカラーで調色しています。
結構リアルに表示できます。



久しぶりにディスクのタイトルを見ると
忘れていたタイトルが多くありました。ちょっと面白かったです。
ディスクが山ほどあってノートパソコンのFDDは健在なので
いろいろとやってみたいですね。
例えばFDDを使ってMSXPLAYerを動かしてみたり試してみたいです。
それでは。

TAKERUはこんなにスゴかった:
https://ascii.jp/elem/000/001/248/1248724/

伝統工芸品・寄せ木細工:
https://www.yosegi-g.com/

★お知らせ

アクセスありがとうございます。
ローカルPC移行等に伴いネット環境の見直しもします。
誠に勝手ながらFULLMSXブログの更新は休止します。
再開は未定です。

MSXさいたまさんはA列車で行こうfinのページになっていますが、
更新が止まっているのでMSXの情報も入れていく予定です。
次回からはMSXさいたまさんの方で更新します。よろしく。

MSXさいたま仮想鉄道ブログ (ameblo.jp)

 

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

MSX2相当ではなくMSX2フル仕様にして欲しい FULLMSX2023

2023-01-09 08:21:41 | BlueMSX

 今年もMSXパソコンネタでいきたいと思います。
前回のおまけで書いたとおり、

MSX2パソコンはMSX2パソコンの廉価版(低価格版)で殆どのMSXにはフル仕様はなかった経緯があります。
「MSX2パーソナルユースのすべて」ではスーパーインポーズを使ったプログラムがありますが、
FS-5500のマシンを使わないとできなかったことが事実です。
 いつの時代も低価格競争があってMSXパソコンも大きく影響があったのも仕方がないのですが、
低価格版が普及するとゲーム用のパソコンとかそういうイメージが強くなったのかもしれませんね。
いまMSXパソコンを作るなら3Dレイトレか動画編集は欲しいですね。

MSX2は何かと言えばCP/Mと当時のMS-DOS環境になる8ビットのパソコンだったと思います。
資料を調べると当時はBASIC屋でそこから派生してDOS(DISKBASIC)屋になったと思います。
ただ、MSXのCOPY命令は複雑なんだろうと疑問な部分もあります。さておき、

BlueMSXに開発環境を戻してみたいと思います。
BlueMSXでCAPSを押すと入力が不安定になる場合はCAPSを押さないで
POKE &HFCAB,255を実行してください。MSXパソコンを騙すことができます。
POKE &HFCAB,0でCAPS OFFです。

またje2023(仮)はガベージコレクションの問題があるので
現実的にはWindowsでテキストを書いて実行のほうが早いので
第一期は公開してプロジェクトを終了します。

FC2:FULLMSXホームページ:
http://fullmsx.web.fc2.com/

★こんなことも

久しぶりにこのコーナー復活です。
je2023は単体のDSKファイルの公開にします。
FULLMSX2023は1chipMSX記念ディスクのベースとした構成でいきます。
グラフィック、サウンドなど修正をしながらゆっくりやっていきたいと思います。

メモリ管理は今までBASICに任せていることを自分で管理します。
例えば1234H~2345Hまでを管理するなら、
「1234H~2345Hまでをデータとしますので移動しないでください」ということです。
自分で管理することでメモリを確保でき絶対番地になります。
BASICで管理をするとアドレスが改変されるデメリットがあります。
これは今は使わないから隅に置いておこうなどなることで
消したり移動したりでガベージコレクションが発生します。
メモリを最適化してくれるのはよいのですが操作中に一時的に止まったり
タイミング悪い場合がよくあります。

レベルも上がってきたのでガベージコレクションやOut of memoryに
ならないようにするには配列変数を要しない代わりにメモリ書き込みで
自分でメモリを管理することでコンパクトなドットエデイタのプログラムを
中級向けに作り直していきます。

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

漢字入力ソフト2023 不具合の報告など 2023年もよろしく

2022-12-30 08:39:29 | BlueMSX

お久しぶりです。漢字入力ソフト2023を引き続き制作しています。
Windows95以前の入力スタイルですねテンキーで数字を選択します。
MSXパソコンでテンキーが標準装備されるのはMSX2+からで
テンキー配列キーボードは意外と古くはないんですね。

さて現況ですが無変換入力で本文反映とBSキーで一字削除機能の修正さらに変数の追加などです。
本文に反映すると「ごごいち」が「ここいち」になって濁点が省かれている不具合がありました。
KI$の文字型変数の追加をしました。
漢字コードデータと入力データのバッファが一致していなかったので修正されています。
Breakした場合のローマ字変換状態が改善されました。
下段の仮想端末ではBSキーで一字削除できるようにしました。

FILENAMEで漢字コードデータを読めるようにしています。
Enterキーで入力画面になります。辞書データ構築のため数十秒かかります。

文字列変数情報です。
KZ$:漢字表示用(汎用)
KH$:候補(KH)「さくら」データ
KI$:漢字入力(KI)「さいたま市」データ

備考:
SCREEN7は512x212画面ですがスプライトは256x212です。
一字削除をしてカーソルを戻すにはスプライトのX座標が-8になります。
変数エリアが大きいためにガベージコレクションになり一時的に止まる場合があります。
数十秒待つと復帰します。

というわけです。
今年は単漢字変換処理の改良を進めていきました。
2023年は単語変換にステップアップしてゲーム用にするので住所データなどは含みませんが
既存辞書にあるものでテストとしてやってみたいと思います。では。

 

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

MSXBASIC かけ算九九をメモリに入れてみる 最速のMSX像

2022-12-10 09:45:48 | BlueMSX

今回は掛け算九九をメモリに入れてみてメモリ消費量を計算してみます。
MSXパソコン全盛期は配列変数などを使わずにメモリにデータを入れているプログラムがありました。
その流れでROMBASICのプログラムは一見するとマシン語のような感じにも見えました。
どの程度メモリを節約できるのか考えてみたいと思います。

0を含む縦横11列の121の数値を配列変数に入れています。
表計算のようになっていますがメモリを1000使っています。

次は九九をメモリに直接入れるとメモリを44使っています。
さらに121のデータ域があるので165使うことになります。
ということでメモリに直接書いたほうがかなり節約になります。

意外だったのはこんなに大きく数値が変わるんですね。
POKE命令は遅いイメージがあるんです。
マシン語プログラムをBASICプログラムからメモリに書き込むには
時間がかかるのです。
でも、少しMSXがわかった気がします。

エミュレータでMSXを800%高速にしてみましたがMSXを超高速ではなく
高速化するとMSXパソコンらしい問題があり、やはりMSXなんだなぁと思います。
CPUとVDPは高速になってもVRAMは変わらないので制約を受けてしまいます。
SETPAGEが倍程度は欲しい気もしますが8ビットの環境ではなくなると思います。

turbo仕様になるとすればRAMもVRAMを変えなければ
今までのMSXと変わらない気がしますね。
おそらく次世代機はネーミングを使うだけで斬新的なマシンになると思います。
では。


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

MSX 漢字BASICで配列変数 二酸化炭素排出量を計算 区点コード

2022-10-31 18:49:27 | BlueMSX

漢字BASICで二酸化炭素排出量の計算をしました。
電気は0.332です。電気は使うので数値が高い感じがしますが意外です。
水道は0.36です。これは浄水場、下水処理場にかかる処理での排出量です。
LPガスが多いですね。

プログラムは漢字BASICのモード0を使っています。
画像はプログラムが見えるようにモード3にしています。
最初はメモ帳でASCファイルにして、こんなふうに出力してみました。
ロードに注意することは全角スペースが入っていると@になってエラーになります。
DIM XA(13,6)でXが13列,Yが6列の数字の表をメモリに作る命令です。
13列は12か月、1年とテスト用の列を含めています。

カンタンなフォームを作ってみました。
?と表示されるので数字を入力すると計算できます。
全て入力が終わると合計が計算されます。

MSXのシフトJISはMSX2+から使うことができるようになりました。
MSX2ではオプションになったりワープロパソコン搭載機種では
漢字コードのみ、ファイルは各社ともテキストに統一していませんでした。
1chipMSXはMSX2相当の漢字コード表示ができる仕様で
独自で作ったアプリのメニュー制作は当初は漢字コードのみの構成でしたね。

ワープロには区点コードがあり2区3点の場合データは0203になります。
スマホなどの付録には020、3になります。3桁と4桁目を合わせ0203です。
これは入力できない記号、漢字などを入力するものです。
プログラムではleft$,right$で2バイトを出してk,tに数値を入れます。
次に区点コード表からの式はC=&H2020+&H100*K+Tです。
2区3点はK=2、T=3ですから2223でJIS漢字コードの■になります。
WindowsPCで2223と入力してF5キーを押せば2候補目に表示されます。
パソコン通信の時代でアスキー文字を表示する場合はJIS漢字コードを覚えていました。
変換が進化して「しかく」とか「スラッシュ」とか「ほし」を変換すればできますね。

最近はMS-DOS関連の本を読んだりいろいろとやっています。
MSXのBIOSはROM OSと呼ばれていたことがわかりました。
もしかするとDOSの始まりはROMだったのかもしれませんね。
MSX-DOSはROM(BIOS)とディスク(BDOS)を含むOSでMSX-DOS以前には
各ソフト会社がOSを作っていたところもあったようです。
MSXのBIOSはソフトウェアで一般のBIOSとは質が違いますが、
起動してからBIOSのマシン語プログラムを読み込みディスクかROMの判別をします。
BIOSがなければパソコンを起動することができませんね。
ちょっとおもしろそうですね。それでは。

 

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

2つのMSX-DOS MSX-DOSはCP/M互換 MSX-DOS2は環境変数で宣言してもエラー?

2022-10-14 08:02:10 | BlueMSX

今回はMSX-DOS(2)について書きたいと思います。
MSX-DOSは2種類のOSがあります。

 MSX-DOSはCP/M互換これはMSXユーザーにはちょっと驚きの内容でしたね。
MSX-DOSのディスクはMSXDOS.SYSとCOMMAND.COMの2つのファイルがあります。
FAT12の9セクタのフォーマットでPCでギリギリ読めるフォーマットです。
command.comはPCでは隠しファイルになっており基本的にPCのディスクにコピーはできません。
それは表示がなくなるのでMSX-DOS上で別名にする必要があります。
 またMSX-DOSのほかCP/Mのプログラムを実行することができます。
パソコン通信で有名なishやpmext,pmarcなどあります。ローグもそうだったかな。
少しコマンドに慣れる必要がありましたが何とかMSX-FANを見ながら使えるようになりました。
当時はアーカイブという用語がまだ知らないような30年前の時代でしたから魅力を感じました。
MACRO80はCP/M版と同じものでMSX-DOSのほうが価値があります。
 MSXturboRでMSX-DOS1のBASICを起動する場合は起動後に1を押します。
最新版の入手方法はMSX-FANの付属ディスクになります。

 次にMSX-DOS2はMSXturboRまたはMSX-DOS2の256KB拡張RAMカートリッジが必要です。
言ってみればMSXパソコン用に拡張されたOSですね。
MSX-DOSの互換性はありますがMSX-DOSを実行したい場合は次のような宣言をします。

A>set expert on

 これをしないとMSX-DOSファイルを読み込むことができません。
CP/Mの外部コマンドで解凍後にエラーが出た場合はignore(無視)をしてださい。
MSX-DOS2はMSX-DOSを拡張したOSでCP/Mプログラムの起動には適していません。
MSX-DOSで使えなかった階層ディレクトリ、ラムディスクなど使うことができます。
MSX-DOSが日本語化されているのでMSX-DOSよりも使いやすくなっていると思います。
メモリマッパが搭載されて拡張メモリを使うことでディスクアクセスの低減をします。
MSXViewを購入すればMSX-DOS2のGUIで起動することができますがディスクアクセスが多いです。
MEM-768の768KBの拡張カートリッジを使うことでディスクアクセスを低減することができます。
最新版の入手方法はMSX-FANの付属ディスクになります。

インターネットのMSXファイルをフロッピーディスクにダウンロードする方法です。
MS-DOSフォーマットで2HDのFAT16はMSX-DOSに読み込むことができません。
2HDは2DDの2倍の容量1.4MBです。プロテクトノッチの反対側をテープでふさぐことで2DDになります。
フォーマットはMS-DOSでformat a: /9で当時は動いたと思いますが、9セクタフォーマットをしてください。
一部のMSXマシンでは8セクタフォーマットの場合があります。松下製はOKです。
MSX-DOSで利用する場合はフォルダは全てない状態で720KB以下の112ファイル以下にしてください。
だいたいファイル数が100以下になっていればよいです。
またBASICプログラムをコピーしてメモ帳でtest.txtで保存してもRUN"TEST.TXT"で実行できます。

なお、1chipMSXのSDカードはFAT16に対応していますがMSXのディスクコントローラ部のプログラムは
FAT12からFAT16に書き直す必要があります。BASICのランダムアクセス命令が使えなくなったそうです。
例えばまずいないと思いますがSDカードで網元さん2を動かすことはできません。
対処方法として物理ディスクにアクセスをしないでラムディスク経由でコマンドをコピーする方法もあります。
MSX-DOS2ならCALL CHGDRV("H:")が有用かもしれませんね。

というわけでカンタンに説明しました。詳しい情報はデータパックに載っています。
ぜひ活用してみてください。

MSX Data Pack:
http://ngs.no.coocan.jp/doc/wiki.cgi/datapack

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

MSX2+の漢字BASICをBlueMSXで使う 日本語変換できない メモ帳を活用 

2022-10-10 13:21:48 | BlueMSX

お久しぶりです。ちょっと考えているところで
久しぶりにMSX2+パソコンの漢字BASICについて書きたいと思います。
BlueMSXで漢字BASICで日本語入力はできないのでWindowsパソコンで作ります。
アスキーファイルはテキストファイルの前身でパソコンによって半角の違うフォントになります。
漢字BASICではシフトJISのANSIコードのテキストファイルであれば互換性があり表示できます。
まずWindowsパソコンでデスクトップ下にここではknjフォルダを作ります。
フォルダ名もknjでなくてもファイルは720KB以下でわかりやすいフォルダ名でよいです。

フォルダ内にテキストファイルでknj.ascでANSIコードでアスキーファイルとして保存します。
WindowsパソコンでDATA文や'(ダッシュ)に日本語を書いておけば後でプログラムとして編集できます。
うまくロードできない場合は同じ行番号が二重になっていないか確認してください。

BlueMSXのドライブBをディレクトリ挿入でknjフォルダを選択します。
このようにMSXBASICにプログラムがロードされます。

メモ帳を上書きしたら取り出し:knjを押して下のknjをクリックします。
これでフォルダ内のファイルが更新されます。
次にMSXBASICでLOAD"B:KNJ.ASC"でロードします。
するとBlueMSXにロードすることができます。

さて、これから反転表示について書きます。
漢字BASICでは文字の色を変えることができます。

画面は実行結果とプログラムを合成させています。追加したのは290,300行です。
今どきコマンドを1つずつ覚えるよりはメニューにしたほうがわかりやすいかなと
メニュー表示部分を作ってみました。

まず、メニューの頭を黄色、選択部分をマゼンタとしてみました。
290行はカラーコード、文字の位置、文字を表示して;は改行をしないで色をもとに戻します。
こんなふうに部分的に色を変えることができます。


実行中は一瞬、カラーコードを指定するとこんなふうに色が変わります。
プログラムを止めるとこんなふうになります。
これはテキストモードになっているのでSCREEN5とかSCREEN7にすると
問題なく表示できます。
でも、セミコロンを使って色を変えればMS-DOSライクなことができるので
使ってみると面白いですね。

◆BlueMSXでプログラムを変えてしまったら

プログラムをBlueMSXで保存してしまった場合は行番号を追加することで
print文のメッセージを加えることができます。
下のようにコメントを入れたい場合は

295 'スティック操作

メモ帳でa.ascで保存をしてBlueMSXのBASICで
MERGE"a.asc"を入力すると295行を加えることができます。

---

次はSC7-MON.BASのプログラムです。

今回のダウンロードでは点滅表示のプログラムを追加しました。
マシン語プログラムでC9h(RET)は点滅するにはコード10の
黄色を黄色、黒、黄色というふうにパレットチェンジさせます。

プログラムを見てみますと、1280行がわかります。
ちょうどいい感じですね。この行でcolor10を指定します。今回はswapは使いませんでした。
1375行が点滅のルーチンで1379行が60/60秒の周期でパレットチェンジさせます。
1381行は点滅なしb=0の場合は黒にして消灯(B=1)、
1382行はB=1になっていればB=0で点灯に変えています。
1378行は何かキーを押すと(inkey$)、点灯させて次のルーチンへ飛びます。
ウィザード98のようなことは実はMSXでもできるんですね。少し日本語変換について書きます。

98は逐次変換と言って候補群が枝分かれして変換前の変換(へんかん)して
変換後の変換(変換、返還、偏官など)をするという
辞書ファイルがあり16ビットマシンの高度な日本語変換方法がありました。
MSX2+パソコンは日本語に変換できても正しい日本語にならないために漢字BASICになったと思いますが、
専門用語ではなく学校などで常用する単語は問題なくできます。
変換辞書はメーカーごとに異なり辞書ROMになっています。辞書ファイルはありません。
CLOCK-ICのほかバックアップ電池では単語をユーザー辞書として登録することができます。

下のようなプログラムを作ればノベル風にも作れますし、表やグラフも描けます。
漢字BASICは位置の微調整できませんがカンタンに作れます。
行を追加したテキストプログラムをロードしたい場合はMERGE"TEST.ASC"で混合するコマンドもございます。
注意してほしいのはメモリを多く使うので起動してすぐに漢字BASICのグラフィックモードを確保します。
BASICの上限が決まり普段より下がりますのでエラーが発生したり止まります
またモードを変更するCALL命令を使うと変数と文字列が初期化されますので注意してください。

実は漢字BASICからMSX-DOSもできます。
BASICプログラムは行頭は行番号がないとDirect statement in fileというロードエラーが発生します。
行番号を加えて修正してみてください。

 

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

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でシェアする

FULLMSX2022夏号!? 夏らしいメニューに新装 MSXファイルを配布

2022-06-26 08:48:31 | BlueMSX

お久しぶりです。最近はMSXを加速しているような感じです。
パナソニックのパソコンだからでしょうか?
そういえばナショナルからパナソニックブランドが始まった頃は
ポケベルからケータイに変わりはじめた時代でした。
実はポケブル→パーソナル無線→初代の携帯電話→PHSに変わっていったような気がします。
聞くところによるとナショナルの社員はパーソナル無線を使っていて
得意先に商品説明をしてセールスもしていたようです。
携帯電話は既にありましたが月に維持費が10万くらいかかっていました。
その後、携帯電話はPがいいと口コミで話題になったりもしました。

というわけで、今回はFULLMSX2022のパッケージを新調することにしました。
まず、PCでグラデーションを作りそれをBMPtoMSXでMSXのBMPファイルにしました。

これがMSX用の使うデータです。上下左右のグラデーションを出力します。


粗い256色のWindows95の画面に近いですね。
今回は文字を点滅させるプログラムを加えてみました。

さらにMSXBASICバックアッププログラムは
専用ディスクを作ったり、誤ってデータが消えたりした場合のものです。
DISKBASICを使えばボリュームラベルのようなものを設定できます。
これを設定すると間違いなくコピーできます。
Aドライブ、BドライブにBACKUP.VOLファイルがあるかを調べて
表示します。

例えばディレクトリ挿入では保存することができません。
忘れて誤って保存してしまうことがよくありますね;
このようなアプリをディスクユーティリティと呼びます。
BlueMSXは2ドライブエミュレーションなので88と同じです。
書き込み可能なDSKファイルに登録しておけば
そこで書き込みできるディスクの状態かどうかを表示できます。

この状態でラベルを250文字以内で登録や変更ができます。
ここでは
FULLMSX2020 MASTER DISC
を登録しています。

例えばMENU10B.BASをバックアップ(コピー)したい場合は
2を選びます。ファイル一覧からコピーしたいファイルを入力します。

コピーするファイルを数行に書くことができます。
MENU10B.BASを入力して2行目は.(ドット)で終了します。

こんなふうに88のようにMSXで40桁をMSX2では最大80桁のFILESができます。
V9938のVRAMではパターンネームテーブルに文字情報が記憶されています。
MSXマガジンなどのMSX雑誌ではVPEEKとVPOKEを使った読み書きができるプログラムがありました。
活用するとVRAMコピーをして別のSCREENに移してファイラーにできました。
一つ一つ文字を確認しながら入力するより、
ファイルを選択するだけで入力できるのかなりラクです。何とかプログラムが間に合いました。
7/1の22:30分になりましたが、おまけに入れておきました。


次は作成したBACKUP.FSをMENU10Bにネームを変えます。
これでネームを入力することでバックアップがいつでもできます。



こんなふうにCompletedと完了したメッセージが表示されます。
SDカードを使った大容量のMSXを前提にしていたので
全てパックしたファイルを使うとディスク容量不足になることもありますが、
バックアップしてプログラムを個別にコピーすることで容量を減らすことができます。

06/26から7月版のホームページ更新後にダウンロードできます。

ダウンロード:
FC2:FULLMSXのホームページ

FULLMSX for BLOG:MSXデータ集 (fc2.com)

★おまけ

この技がバレ(FILESが見え)ないように文字色を変えたりすればマシン語で実行しているようになります。
思い始めると作ってみたくなりました。上の画像は制作中です。

SC0のVRAMデータをSC5に貼り付けてファイルを読み取るようにしてみました。
上のノイズが文字データです。わかるように表ページにしてみました。
データを裏ページにして表ページにファイラーとして使うようにすればいいのですが、
いちいち表と裏の操作をすることになるのでボツにしました。
作り直してSC0でFILESしてそこから配列変数にファイル名を書き込むほうがいい感じですね。

というわけで作り直してみました。
VRAMの開始アドレスがMSXturboR(DISKBASIC3.21)用になっていたので
MSX2+(DISKBASIC2.0)用に変えました。書き直せるようにしています。
カーソルでファイルを選んでいきます。74ファイルあるので4ページくらいになります。
行頭からカーソルを上にすると前のページの行頭になります。
コピーするファイルをEnterキーで決めると右枠にファイル名が表示されます。
最大で18ファイルコピーできるようになります。
F5キーで保存して終了します。

FILER0.FSファイルに仮保存されるのでNAME"FILER0.FS"AS"BACKUP.FS"にリネームしてください。
バックアッププログラムに引き継がれますが、わかるかたはここで直接リネームしてもOKです。

また保存したファイルを見る場合はCOPY"FILER0.FS"TO"CON"で表示します。

 

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

MSXで3D 等角図のXYZ軸、立方体のラインを作る

2022-06-11 18:48:36 | BlueMSX

今回はMSXで立体図形に挑戦したいと思います。
まず、等角図はXYZの角度が120度の線を描く図です。

PCはXとYがあります。これにZ軸をY軸に変えます。
XとY軸を新たに作りますが対称になります。
三角比では√3で「ひとなみにおごれや」1.73205~になります。
座標を出します。
直線はZが垂直ラインで10に対して
XとYの長さが10*√3になり水平ラインでXとYで約17になります。

これは100に設定していますが、三角比が1:2:√3ということで
zが50なら長さが2倍になるのでXとYを50に変えます。
さらに左右の点と対角線上からの先の最後の点を計算します。
ちょっと長くなるので割愛します。

こんなふうにできます。陰線処理は手動でカットします。
思っていたよりも座標計算はカンタンでしたね。
図形を押し出すことができたのであとは座標を作ればよいですね。
難しくはありません。面をスライドさせればできます。
GYを200に調整しました。
MSXはYが192まででMSX2では211までになっています。
もしかしたらこれは文字を下に表示できるように合わせたのかなと思います。
当時のMSXの広告には3Dを表示したMSXパソコンなどあります。

というわけで出来上がった3面をデータとして使っていけば、
引き伸ばしたり、拡大したり、縮小できるようになります。
ちょっと考えるとおもしろいですね。
ダイスにする予定はありません。では。

 

 

 

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

MSXBASICで操作 入力デバイスの操作方法 キーボード、ジョイパッド、マウス

2022-04-16 10:55:06 | BlueMSX

今回はキーボードとジョイパッド、マウスの入力デバイスを考えてみます。

・キーボードの操作

MSXキーボードは109キーボードと比較してキーの数が少ないです。
キーボードにはGRPHキーがあり押しながら罫線や記号をプログラミング(テキスト)モードで書きます。
SPACEキーは横に2倍程度広いスペースがあります。

Windows、Alt、無変換、変換、アプリケーションキー、右ctrlはありません。
さらに109キーの上にend,PgUp,PgDn,Prt Sc,ScrollLockがありません。

Stop,Cls/Homeキーがあり、Pauseキー、テンキーはMSX2以降のパソコンにあります。
ファンクションキーはF5までの5キーでShiftを押すことでF10までできます。
比べてみればキーの種類が少ないので使いやすいと思いますね。

・ジョイパッド

MSXのジョイパッドはカーソルとABボタンです。2ポートあるので2人で操作もできます。
またATARI規格であればFM-TOWNS,メガドライブのパッドも代用できるようです。
過去にはゲーム(ATARI)ポートのハブのような同人で忍者タップというモノで4人接続など可能にしたり、
このポートからMIDIにつなげたりいろいろとできました。

MSXBASICで操作することもできるので便利です。
またMSXマウスで左クリックを押しながら差し込むとマウスがジョイパッドにもなります。
例えばグラディウスなどもマウスで操作可能になります。

・マウス

MSXマウスはゲームポートに差し込んで使用します。
MSXVIEWのほかビッツーのサウルスシリーズやA1コックピットなどGUIライクなアプリでマウス操作します。
お絵描きや音楽に使う程度でほとんど使いません。

という感じです。どちらかと言えばファミコン風なモノを作るのに最適ですね。
使い方によっては上下左右斜めと方向が決まっているので45度単位の移動はしやすいかなと思います。
BASIC画面で斜めに移動できます。
でも誰でもできそうなWindowsアプリのような操作にできないか考えてみました。

最初にスプライトの座標をsx,syにしてスティック判定をしています。
SX,SYはポインターの座標でssは移動値、PDはポート番号です。
CKは左クリックでCK=1,右クリックでCK=2.待ちでクリックでCK=3です。
あとは、、DUとかDEとかDRAWマクロのためのカウントをしています。
これは必要ありませんが再構築時のために;残しています。

CK=3はクリックボタンを押さないでポイントして操作待ちになると起動するものです。
よくアイコン上で待っていると「印刷します」とか「エクスプローラ」というあの機能です。
MSXパソコンでもできるようにしようと1998年くらいに考えました。

330行でキーマトリックスからctrlキーを押していればSS=3になり3倍速になります。
490行は長押し判定のプログラムが一部ありますね。

Windowsパソコンがなかったので見まねで作っていましたが、
今はプログラミングできるので不要な部分を消してかなりスマートになりました。
マウス操作は可能ですがGUIではジョイカード操作を前提にしていますね。
ということでMSXパソコンは知っている人にとってはおもしろいですね。
そういうこともあったのかと思い出してしまいました。では。

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

12poly(仮)で九州地形データを BlueMSXで出力

2022-01-19 22:55:57 | BlueMSX

 MSXのみなさん、お久しぶりです。今日はMSXで九州本土(天草除く)を描いてみました。
MSXパソコンでMSXを描いたり、さらにはムック誌のMSXポケットバンクのプログラムDJでは
MSX1パソコンで漢字の朝が上ってくるとかMSXFANのAVフォーラムではちょっと凝ったものもありました。
でも、本格的なデータものは見たことが私はなかったのでやってみました。

使ったのは12poly(仮)

点の数は632点でこんなふうになりました!
BlueMSXに出力するとこのリアス式海岸のギザギザ感が妙にリアルで
悪くはないなぁと思いました。


BASICでテキストファイルの座標データを読み込み出力します。
70行ではWindowsの座標データを1/4に縮小して表示させます。
テキストデータ形式は1行目がヘッダ、2行目以降にデータになっています。

ヘッダは特に何もありませんが、データファイルに注釈を入れたい場合などに使います。

 点を打ち始めは北九州から中津とスムーズにいきますが、
中間地点は桜島と洞海湾でそこから薩摩半島とそれから南九州からぐるっと有明海へ
下から上にポイントしていって、さらに長崎と島原半島と大村湾というふうに
難度が高くなっていきそうな感じでしたね。

あとはここに文字をいれて「~九州」みたいにすると面白そうです。







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