2022/10/23(日) [n年前の日記]
#1 [z80] CP/Mエミュレータ上で画面クリアの方法が分からない
CP/Mエミュレータ + CP/M + Mbasic 5.21 (Microsoft BASIC, BASIC-80)で、画面クリアをする方法が分からなくて悩んでる。
Microsoft BASIC のマニュアル(Page 3-4)には、「CHR$(7) でベルが鳴り、CHR$(12) で画面クリアができる」と書いてあるのだけど。
_BASIC-80 (MBASIC) Reference Manual - BASIC-80_MBASIC_Reference_Manual_text.pdf
PRINT CHR$(12) を試しても、画面クリアができない…。ちなみに、PRINT CHR$(7) と打ったら、たしかにベル音が鳴った。
環境は、Windows10 x64 21H2。以下のCP/Mエミュレータで動作確認。
_YAZE-AG - Yet Another Z80 Emulator by AG (final release 2.51.3)
_ソフトウェアー基礎コース (Tiny BASIC Lesson 1:Z80 エミュレーター YAZE)
_Altair Introduction
_懐かしいCP/MをSIMHシミュレータで実行 | ある計算機屋さんの手帳
_CP/M Player for Win32 謎WIPページ
_CP/M program EXEcutor for Win32の詳細情報 : Vector ソフトを探す!
ConEmu、cmd.exe、Windowsターミナル 1.15.2874.0 を使って確認してみたけど、どの環境でも変化無し。画面クリアにはならない…。
以下のページによると、 CHR$(12)、0x0C、^L の制御文字は、FF(Form Feed) になっているらしい。
_制御文字 - Wikipedia
Linux上で動かしたら違う結果になるのではないかと思えてきたので、Ubuntu Linux 20.04 LTS 上で、YAZE-AG 2.51.3 をビルドしたり、altairz80l64 をDLして実行してみた。しかし、そちらも CHR$(12) で画面クリアはできなかった。それだけではなく、CHR$(7) でベル音も鳴らなかった。
どういう環境なら画面がクリアされるのか…。
Microsoft BASIC のマニュアル(Page 3-4)には、「CHR$(7) でベルが鳴り、CHR$(12) で画面クリアができる」と書いてあるのだけど。
_BASIC-80 (MBASIC) Reference Manual - BASIC-80_MBASIC_Reference_Manual_text.pdf
PRINT CHR$(12) を試しても、画面クリアができない…。ちなみに、PRINT CHR$(7) と打ったら、たしかにベル音が鳴った。
環境は、Windows10 x64 21H2。以下のCP/Mエミュレータで動作確認。
- YAZE-AG 2.51.2 64bit + CP/M 3.1
- YAZE-AG 2.51.2 64bit + CP/M 2.2
- Altair 8800 simulator 4.0.0 + CP/M 2.2
- CP/M Player for Win32 2014/12/31
- CP/M-80 program EXEcutor for Win32 0.4
_YAZE-AG - Yet Another Z80 Emulator by AG (final release 2.51.3)
_ソフトウェアー基礎コース (Tiny BASIC Lesson 1:Z80 エミュレーター YAZE)
_Altair Introduction
_懐かしいCP/MをSIMHシミュレータで実行 | ある計算機屋さんの手帳
_CP/M Player for Win32 謎WIPページ
_CP/M program EXEcutor for Win32の詳細情報 : Vector ソフトを探す!
ConEmu、cmd.exe、Windowsターミナル 1.15.2874.0 を使って確認してみたけど、どの環境でも変化無し。画面クリアにはならない…。
以下のページによると、 CHR$(12)、0x0C、^L の制御文字は、FF(Form Feed) になっているらしい。
_制御文字 - Wikipedia
プリンタでは、次のページを給紙する。多くのプログラミング言語では空白として扱われ、コードの論理的区分の分け目として使用される。いくつかの端末エミュレータでは、画面をクリアする。
Linux上で動かしたら違う結果になるのではないかと思えてきたので、Ubuntu Linux 20.04 LTS 上で、YAZE-AG 2.51.3 をビルドしたり、altairz80l64 をDLして実行してみた。しかし、そちらも CHR$(12) で画面クリアはできなかった。それだけではなく、CHR$(7) でベル音も鳴らなかった。
どういう環境なら画面がクリアされるのか…。
[ ツッコむ ]
以上です。