問題タブ [commodore]
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.
arrays - コモドール 64 ベーシックで Redim'd アレイ エラーが発生しましたか?
Commodore 64 基本プロジェクトで redim'd array エラーが発生します
ただし、2次元配列のサイズを変更したり、コード行を複数回実行したりすることはありません!
エラーは 1140 行にあります
誰でも私を助けることができますか?
ありがとう!
コード:
c64 - コモドール64ベーシックv.2.0で引用符内に引用符を印刷する方法
私はちょっとした趣味の c64 テキスト アドベンチャーを書いていますが、非常に具体的な瞬間に立ち止まりました。つまり、引用内で何かを引用する方法がわかりません。
コモドール64ベーシックv.2.0内でそれを行う方法は?
6502 - 逆アセンブルされたコード 6502 を実行するには?
6502 のアセンブリでプログラムを作成する必要がありました。エミュレーター Vice 128 を使用することを余儀なくされました。Commodore 128 は 6502 の命令と互換性があると言われました。コマンドで渡される 80 列のインターフェイスがありました (どれですか?)。機械語またはアセンブリ (プログラム) の命令は、この 80 列のマトリックスに直接入力されました。また、データはこのマトリックスに入力されます。では、この行列は記憶ですか? 各行は何を表していますか? これは逆アセンブルコード 6502 だと言われました。しかし、それが何を意味するのかわかりません。非常に混乱しています。
2 つの数値の合計を実行するこの単純なプログラムを実行したいと考えています。2 つの数値は、最初のページのワード 0 とワード 1 に格納されます。結果を最初のページの 2 番目の単語に格納したいと考えています。最初の行には 80 語が含まれていると想像しました。そうですか?ここでは、データを 16 進数 (3 と 2) にします。
しかし、構文エラーがあります。物事がどのように機能するか分からないので、誰かが私を助けてくれることを願っています。前もって感謝します
sfml - SFML および PN ノイズ (8 ビット エミュレーション)
私は最初のコンピューターである Commodore VIC-20 エミュレーターを作成するというばかげた考えを思いつきました。
サウンド エミュレーションの時間が来るまで、すべてが順調に進んでいます。VIC-20 には 3 つのボイス (方形波) とノイズ スピーカーがあります。ネットを検索すると、PNジェネレーター(「ホワイト」ノイズと呼ばれる場所)であることがわかりました。
ホワイト ノイズは周波数駆動型ではないことはわかっていますが、ノイズ レジスタに特定の周波数値を入力します (POKE 36877,X
コマンド)。式は次のとおりです。
周波数 = cpu_speed/(127 - x)
(VIC-20 Programmer's Guida、特に MOS6560/6561 VIC-I チップの詳細)
ここで、x はノイズ レジスタの 7 ビット値です (ビット 8 はノイズのオン/オフ スイッチです)。
事前に生成された 1024 の数字のバッファ (疑似乱数シーケンス) があります。問題は、周波数 (freq) を関連付けて、サウンド カードに渡すサンプル バッファを作成するにはどうすればよいか (この場合はsf::SoundBuffer
、sf::Int16
(別名unsigned short
)値?
ほとんどの人はコモドール VIC-20 または C64 を家に持っていて、古い説明書で遊んでいたとPOKE
思います...このステップを理解するのに誰か助けてくれませんか?
編集:
インターネットで検索すると、ノイズジェネレーターの波形グラフを示すC64 Programmer's Guidaを見つけました。この種の波/摂動などを認識できる人はいますか...? 波形は周期的 (freq の周期) のように見えますが、どのようにしてそのような波形を生成するのでしょうか?
emulation - スタンドアロン テストとコモドール PET での 6502 の割り込み動作
FPGA 上に Commodore PET を構築しています。Kansas Lava に独自の 6502 コアを実装し (コードはhttps://github.com/gergoerdi/mos6502-kansas-lavaで入手できます)、その周りに十分な IO を配置しました ( https://github.com/gergoerdi /eightbit-kansas-lava ) オリジナルの Commodore PET ROM を起動し、カーソルが点滅して入力を開始できました。
ただし、古典的なBASICプログラムを入力した後
しばらくすると(数秒後)クラッシュします
私のコードはかなり合理的なオペコードごとのテスト カバレッジを持ち、 AllSuiteAに合格するため、より複雑な動作のテストを調べようと思いました。これが、Klaus Dormann の interrupt testsuiteにたどり着いた方法です。Kansas Lava シミュレーターで実行すると、元の割り込み実装に大量のバグが指摘されました。
I
割り込みハンドラに入ったときにフラグが設定されませんでしたB
旗がいたるところにありましたI
IRQ 割り込みは、到着時に設定されていない限り完全に無視されました (正しい動作はI
、設定されているときに割り込みをキューに入れ、設定が解除されたときに割り込みを処理する必要があるようです)。
これらを修正した後、Klaus Dormann テストを正常に実行できるようになったので、マシンを実際の FPGA にロードし直して、BASIC クラッシュがなくなることを期待していました。
ただし、これらすべての割り込みバグが修正され、シミュレータでの割り込みテストに合格した新しいバージョンでは、キーボード入力に応答しなかったり、実際の FPGA でカーソルが点滅したりすることさえありません。キーボード入力とカーソル点滅の両方が外部 IRQ (画面の VBlank 信号から接続) に応答して行われることに注意してください。これは、修正バージョンが何らかの形ですべての割り込み処理を壊したことを意味します ...
何がうまくいかないのか、またはこれをデバッグし始める方法について、漠然とした提案を探しています。
完全なコードはhttps://github.com/gergoerdi/mos6502-kansas-lava/tree/interrupt-rewriteで入手できます。問題のあるコミット (テストを修正して PET を壊すもの) は7a09b794afです。これは最小限の実行可能な複製とは正反対であることを認識していますが、変更自体はごくわずかであり、どこで問題が発生するのかわかりません。また、問題を再現するには、ストックコモドール PET ROM を起動するのに十分な機能を備えたマシンが必要であるため、変更は必要ありません。縮める方法がわからない…
追加した:
ストック PET ROM の代わりに非常に単純な (あえて最小限の) ROM を使用して、同じハードウェアで同じ問題を再現することができました。