問題タブ [retro-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python での昔ながらのサウンド プログラミング
昔々、はるか彼方の銀河系に、BASIC を実行し、あらゆる種類の奇妙で素晴らしい方法でビープ音やシューという音を鳴らす単純なサウンド コマンドを備えたマイクロコンピューターがありました。
素晴らしい音を出すだけでなく、コードの結果を聞くことができるため、学習ツールとしても非常に役立ちました。
「エンベロープ」コマンドを備えた BBC Micro のようなマシンのサウンド機能を、エミュレーターを使用したり、BASIC のさまざまな方言の癖をすべて学習したり再学習したりすることなく利用できるようにしたいと考えています。
また、midi または wav ファイルを生成する必要は避けたいと考えていますが、コードで直接サウンドを作成したいと考えています。私はwinsound.Beepを試しましたが、約4音の後、音符間の時間がランダムになるように見え、機能もZXスペクトルのようなものと比較しても何もありません.
Pythonでこれを行う方法を知っている人はいますか?
sd-card - z80 への SPI ハードウェア インターフェイス
z80 を使用してレトロなコンピューターを作成しようとしていますが、理想的には SD カードから起動できるようにしたいと考えています。私は 100% z80 を使用することに決めており、内部 SPI ハードウェア インターフェイスを備えたマイクロコントローラーを使用したくありません。コンピューターのハードウェアとソフトウェアの両方の側面を理解したいので、購入する前にハードウェア側が完成しているため、arduino とマイクロコントローラーは対象外です。とにかく、私の主な質問は、SPIモードを介してSDカードから読み取るために、シフトレジスタ、いくつかのデコードロジック、およびソフトウェアを組み合わせることは可能でしょうか? 私は何時間もインターネットを検索し、いくつかの記事を読みましたが、チュートリアルが見つからないようです。SPI プロトコルは理解していますが、マイクロコントローラにはすべてのハードウェアが組み込まれている傾向があるため、ハードウェア側に関する情報が不足しています。SDカードのSOMIをシフトレジスタのシリアル入力ピンに接続し、SDカードのSIMOをシフトレジスタのシリアル出力ピンに接続し、いくつかのデータピンをいくつかのフリップフロップに接続してデコードすることを計画しました特定のポートに出力すると、フリップフロップがトグルされます。フリップフロップは、SD カードへのクロックおよびチップ イネーブル ラインとして機能します。また、z80 のピンをシフト レジスタのラッチ ピンに接続し (再びデコード ロジックを介して)、特定のポートに出力するとシフト レジスタのデータがラッチされるようにします。SDカードからデータを正確に読み取れる限り、速度/効率は気にしません。また、SDカードを接続するのと同じクロックにシフトレジスタクロック入力を接続しますか? これを実装する方法についてのアドバイスをいただければ幸いです。
c - C言語のtextcolor()とtextbackground()
私は C を使用するプロジェクトを持っています (私が使用していると思われるコンパイラはTurbo C++ 3.0です)。textcolor()
関数と関数を使用して、textbackground()
テキストに色を付けました。初めて実行したとき、コンソールは通常の色 (黒い背景に白いテキスト) になっています。
しかし、コードを 2 回目に実行すると、背景色が青色になります。
上記のプログラムに次のコードを使用しました (使用する書式設定さcprintf()
れたテキストは、マゼンタと青の背景のテキストのみでした)。
これは私が使用しているコンパイラが原因であると思われますが、まだわかりません。これを解決する方法はありますか?
logical-operators - ZX Spectrum basic で論理 XOR を模倣する方法は?
ZX Spectrum Basic でコーディングする場合、次のように 2 つのオペランドと論理 xor で構成される論理式を評価する必要がある場合があります。
ZX Basic は NOT、OR、および AND しか認識しないため、左/右オペランドの複数の使用を含むある種の凝った計算に頼らなければなりません。これは、時間とメモリを消費するため厄介です。8 ビット マシンで作業している場合はどちらもまばらです。xor 演算子を模倣する巧妙なトリックがあるのだろうか。
結果をテストするために、小さなコード サンプルを提供します。
パフォーマンスの高いソリューションを見つけるのを手伝ってもらえますか? これまで試してみDEF FN x(a,b)=(a AND NOT b) OR (b AND NOT a)
ましたが、やや不器用です。
編集:
あなたのアイデアをテストしたい場合は、BasinC v1.69 ZX エミュレーター (Windows のみ) をお勧めします。
@Jeffが指摘したように、ZX one'sなどのほとんどの基本は、ゼロ値をfalseと見なし、ゼロ以外の値をtrueと見なします。
ゼロ以外のさまざまな値でテストするようにサンプルを調整しました。