noname
続:memtest88 - webmaster
2022/08/13 (Sat) 15:13:21
ご報告ありがとうございます。
確かにボード・バンクは連続を前提にしているので歯抜けの場合などは正常に動きません。
実際に大容量を積んだ拡張メモリが動く環境が無いので検証不足でした。
時間のあるときにお二方から頂いたコードを参考にバージョンアップを施したいと思います。
YouTube 動画の方も拝見しました。
拡張 RAM のみならず ROM や CF とは凄いですね。
動作も軽快で十分実用的に感じました。
PC と親和性の高いファイルシステムでやりとりできれば開発サイクルも速まりそうですね。
Re: 続:memtest88 - Fram
2022/08/13 (Sat) 18:37:16
おお、バージョンアップ楽しみにお待ちします。
ところで私の先のパッチはアクセスエラーがあるとバンク番号表示がおかしくなります。
自作の拡張メモリボードの動作確認のために十分なロジック検証をしていなかったためです。
所でI/OポートE3Hから読んだデータをバンク切り替えの検証に使わないのはwebmaster様のポリシーなのでしょうか?
本日割と真面目にI/OポートE3から読んだデータを基に判定する改造をしましたが、PC88のI/Oポートの使用は8bitへの拡張が考慮されてなくて汎用的に対応するのは難しいですね。
また拡張メモリアクセスでエラーがあったときに次のprocess_mainのGraphic VRAM #2に拡張メモリのエラーカウントが表示される現象が確認されました。
エラーを検出した1ループ目と、次のループの表示も併せて添付します。
Re: 続:memtest88 - Fram
2022/08/13 (Sat) 18:38:54
先の画像の前のループの表示です。
このループの最後のエラーカウントが先の画面のGraphic VRAM #2のエラーカウントに継承されているのが確認できると思います。
Re: 続:memtest88 - webmaster
2022/08/18 (Thu) 01:14:47
不具合修正と改良を加えた新版をアップロードしました。
・V1H で動いていなかったのを修正しました
・拡張メモリでエラーが発生した際にエラー箇所の表示がズレる件を修正しました(結構重篤なバグでした)
・拡張メモリの表示に関しては RetroGear さんの方式を参考にしました
・拡張メモリの有効バンクスキャン方式は Fram さんの案を参考にしました
・その他コンパイルエラーが出ていた箇所を修正
I/O ポート $E2,$E3 から読みだされる値は不確かな場合がある、と資料にあるため本プログラムでも使用していません。
また、本バージョンでも歯抜けバンクやアクセスエラーが起きた際の挙動はテストできていないので、まだ問題がある可能性があります。
Re: 続:memtest88 - Fram
2022/08/18 (Thu) 20:03:34
迅速なバージョンアップ、ありがとうございます。
さっそく使わせていただきました。
・歯抜けバンクでも存在しているバンク番号が表示されること
・アドレス0000H/0001Hでアクセスエラーが起きるバンクはメモリなしと判断されること
・アドレス0000H/0001H以外でアクセスエラーが起きるメモリでもエラーカウントの表示位置がずれないこと
・256バンクあるメモリでバンク番号および爆数が"#FF / 256"と表示されること(添付画像)
以上を確認しました。
IO_E2/E3からのリードデータは使わないポリシーであることも承知いたしました。
Re: 続:memtest88 - RetroGear URL
2022/08/27 (Sat) 22:16:49
p8suiteのバージョンアップに気付かずに、お礼が遅れてしまいました。申し訳ありません。
v1.02で、バンクメモリが連続して存在していない際にも、正しくバンク存在チェックがされていることを確認しました。
迅速なご対応、本当にありがとうございました!
Re: 続:memtest88 - webmaster
2022/08/29 (Mon) 23:46:12
こちらこそ検証ありがとうございました。
p88suiteのmemory testについて - Fram URL
2022/07/30 (Sat) 13:27:55
初めまして、Framと申します。
p88suite、ありがたく使わせていただきました。
ドキュメントに「最大 256 バンクまでテストできるようにしました」とありましたが、実際に256バンクテストされることを確認いたしました。(URLリンク先にて公開中)
また本ツールへのリンクを張らせていただきましたのでご報告いたします。
有用なツールを公開いただきありがとうございました。
Re: p88suiteのmemory testについて - webmaster
2022/07/30 (Sat) 22:18:27
お役に立ててなによりです。
対応範囲を広げておいた甲斐があって作者としても嬉しいです。
それにしてもメモリ拡張ボード 1MB のみならず 8MB まで自作されるとは驚きです。
8MHz-H ノーウェイトで動くのも心強いですね。
PC88 の理想形に一歩近づく感じで、頒布されたら需要も多いのではないでしょうか。
Re: p88suiteのmemory testについて - RetroGear URL
2022/08/13 (Sat) 02:13:20
横から失礼します。RetroGearと申します。
Framさん同様、当方も拡張バンクメモリを制作した者です。
私も p8suiteを活用させていただいております。有益なツールを公開いただき、ありがとうございます。
当方でp8suiteを使用したところ、最新バージョン20211206の Memtest88に拡張メモリのチェック関連で不具合を見つけましたので、こちらで報告させていたします。
Check_ExtRAM ルーチンでは拡張メモリのバンク個数を数える仕様になっていて、数えた個数を元に、バンク番号00hから順番にメモリチェックを行う挙動になっているとお見受けしました。
拡張メモリバンクが、「バンク番号00hから開始」していて、且つ、「全バンクメモリ番号が連続して」存在する場合は、この挙動で問題無いと思っております。
※Framさんの開発されたメモリボードは、この状態ではないかな?と予想しています
一方で、当方で開発したメモリボードでは、バンクメモリを任意のバンク番号にマッピングする機能を持っております。この場合、バンクメモリが不連続に存在する(断片化して存在する)ことが充分にあり得ます。
具体的な例としては、Mシリーズのように標準で00h~03hに128MBの拡張メモリを持つ機種に対して、x4h~x7hを全て使用する2MBのメモリを追加する......という場合です。
この場合、増設されたバンクのテストが意図通り行われない(存在しないバンク番号に対してテストを実施しようとする)という挙動を確認しております。
幸いにも p8suiteのソースコードを公開いただいてますので、当方では 該当部分を修正して活用させていただいております。
これに続く次の返信で当方が行った修正を、パッチファイルとしてお伝えしたいと思います。
当方の理解に間違いが無いか、ご確認いただけますと幸いです。
長々とした投稿、失礼板ました。
Re: p88suiteのmemory testについて - RetroGear URL
2022/08/13 (Sat) 02:17:01
Linux patchコマンド用の差分ファイルです。
掲示板だと TABコードが無くなってしまうようですが、何処を修正したかはご理解いただけるかと思います。
--- memtest88.z80 2021-12-05 01:45:08.000000000 +0900
+++ memtest88_patched.z80 2022-08-13 01:29:08.538248400 +0900
@@ -75,10 +75,6 @@
ld iy,IYwork
- call Check_ExtRAM
- ld (iy+17),e ;MemERAMMAX
- ld (iy+18),d ;128KB なら de=4 になる
-
ld a,%00111001 ;ROM/RAM
out ($31),a
ld a,($79D7)
@@ -283,6 +279,10 @@
jr nz,.loopgvram
ld (iy+16),a
+ call Check_ExtRAM
+ ld (iy+17),e ;MemERAMMAX
+ ld (iy+18),d ;128KB なら de=4 になる
+
ld a,(iy+17)
or (iy+18) ;MemERAMMAX
jr z,.skipextram ;拡張 RAM が無ければ飛ばす
@@ -292,17 +292,42 @@
ld (iy+15),h
ld a,%00010001 ;extram read/write enable
out ($E2),a
- xor a
+ ld b,0
+ ld c,0 ; バンク数
+ ld hl,MemERAM
+
.loopextram:
- push af
+ ld a,(hl)
+ inc hl
+ or a
+ jr z,.skipbank
+
+ inc c
+
+ ld a,b
out ($E3),a ;extram bank
+ push hl
+ push bc
+
call MemTestInfo ;特別にバンク番号 10進数3桁を後から書く External RAM #xxx
dec (iy+6) ;MemTestInfo で毎回 Region がインクリメントされるのでつじつま合わせ.
ld de,$F3C8 + 8 * 120+15
- pop af
- push af ;ExtRAM バンク番号
+
+ pop bc
+ push bc
+
+ push bc
+ ld a,b ;ExtRAM バンク番号
+ call Hex2Asc
+ pop bc
+
+ inc de
+
+ push bc
+ ld a,c
call Dec2AscXXX
+ pop bc
ld hl,$0000
call MemTestSub
@@ -311,9 +336,11 @@
call MemCalcProgressA
dec (iy+1) ;MemCalcProgressA で inc した分を戻す. progress_main は ExtRAM バンク全体で +1 とする.
- pop af
- inc a
- cp (iy+17) ;0-255 ただし 0=256bank.
+ pop bc
+ pop hl
+
+.skipbank:
+ inc b
jr nz,.loopextram
xor a
out ($E3),a
@@ -390,19 +417,31 @@
; 例えば、000001xx と 000000xx が同じメモリ領域を指す場合など。
Check_ExtRAM:
+
+ ;バンク番号の領域をゼロクリア
+ ld b,0
+ ld hl,MemERAM
+.loop0:
+ ld (hl),0
+ inc hl
+ djnz .loop0
+
ld a,%00111011
out ($31),a ;64KRAM 選択
ld a,%00010001
out ($E2),a
- ld b,0
+ ld b,$ff
ld hl,$AA00
.loop1:
ld a,b
out ($E3),a
+ ld l,b
ld ($0000),hl ;適当に埋める
- dec l
- djnz .loop1 ;降順
+ dec b ;降順
+ ld a,$ff
+ cp b
+ jr nz,.loop1
xor a
out ($E2),a
@@ -412,7 +451,8 @@
ld a,%00010001
out ($E2),a
ld b,0
- ld de,0
+ ld de,MemERAM
+
.loop2:
ld a,b
out ($E3),a
@@ -425,11 +465,27 @@
ld a,l
cp b
jr nz,.skip
- inc de ;bank count++
+ ld a,1
+ ld (de),a ;該当バンク番号にフラグを立てる
.skip:
inc b
+ inc de
jr nz,.loop2 ;昇順
+
+ ; 見つかった拡張メモリのバンク数を deレジスタで数える
+ ld b,0
+ ld de,0
+ xor a
+ ld hl,MemERAM
+.loop3:
+ cp (hl)
+ jr z,.skip2
+ inc de ;bank count++
+.skip2:
+ inc hl
+ djnz .loop3
+
xor a
out ($E2),a
out ($E3),a ;de=バンク数で返る。32K*バンク数byteのメモリがあるはず。
@@ -2074,7 +2130,9 @@
MemTestStr2:
db "#2 [Calculating CRC32] ",0
-
+;--------------------------------------------------------------------------------------------------
+MemERAM:
+ ;ds 256
;--------------------------------------------------------------------------------------------------
MemDephase:
Re: p88suiteのmemory testについて - Fram
2022/08/13 (Sat) 04:12:25
> ※Framさんの開発されたメモリボードは、この状態ではないかな?と予想しています
いえ、1MBのほうはPIO-8234H-1に合わせて8バンクごとに実メモリあり/なしを繰り返す仕様で作っていましたので、RetroGearさんと同様のクイックパッチを当てて使用していました。
自分の目的に足りればいいので、もっとお手軽にこんな感じで。
diff -ur p8suite_org/memtest88.z80 p8suite/memtest88.z80
--- p8suite_org/memtest88.z80 2021-12-05 01:45:08.000000000 +0900
+++ p8suite/memtest88.z80 2022-08-13 03:36:20.435152200 +0900
@@ -290,6 +290,11 @@
ld hl,(((($8000 - 1) & 255) + 1) << 8) & 255 | ((($8000 - 1) >> 8) + 1)
ld (iy+14),l
ld (iy+15),h
+ ;Add by Fram [start] ;各バンクとメインメモリにもう一度バンク別マークを付ける
+ call Check_ExtRAM
+ ld a,%00111011 ;のちのメインメモリアクセス確認のためALL RAMモードにしておく
+ out ($31),a
+ ;Add by Fram [end]
ld a,%00010001 ;extram read/write enable
out ($E2),a
xor a
@@ -297,6 +302,14 @@
push af
out ($E3),a ;extram bank
+ ;Add by Fram [start] 切り替えたバンクに実メモリが存在するか確認する。なければ次のバンク番号にスキップ
+ ld hl,($0000)
+ ld a,h
+ cp $88
+ jr z,.skipbank
+ cp $AA
+ jr nz,.skipbank
+ ;Add by Fram [end]
call MemTestInfo ;特別にバンク番号 10進数3桁を後から書く External RAM #xxx
dec (iy+6) ;MemTestInfo で毎回 Region がインクリメントされるのでつじつま合わせ.
ld de,$F3C8 + 8 * 120+15
@@ -311,9 +324,15 @@
call MemCalcProgressA
dec (iy+1) ;MemCalcProgressA で inc した分を戻す. progress_main は ExtRAM バンク全体で +1 とする.
+ ; Add by Fram [Start]
+.skipbank:
+ ; Add by Fram [end]
pop af
inc a
- cp (iy+17) ;0-255 ただし 0=256bank.
+ ; Changed by Fram [Start]
+ ;cp (iy+17) ;0-255 ただし 0=256bank.
+ cp 0 ;bank255までチェックする
+ ; Changed by Fram [end]
jr nz,.loopextram
xor a
out ($E3),a
@@ -1963,7 +1982,7 @@
;uPD70008AC-8
MemTestScreen:
; 0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
- db " Memtest88 ver.1.01 | Pass 0%",0
+ db " Memtest88 ver.1.01+ | Pass 0%",0
db "Main CPU:uPD70008AC-8 8MHz | Test 0%",0
db "Memory : 64K | Test ",0
db "Sub CPU :uPD780C-1 4MHz | Testing: ",0
binpaste.exeについて - ばくてん URL
2022/03/07 (Mon) 23:12:05
はじめまして、ばくてんと申します。
えすびさんの方から binpaste.exe の作者がbookwormさんとお聞きして書き込みしました。
私のブログでバッチファイルを公開したいのですが、その際にbinpaste.exeを同梱させていただいてもよろしいでしょうか?
よろしくお願いいたします。
Re: binpaste.exeについて - webmaster
2022/03/08 (Tue) 06:42:51
ご自由にお使いください。
なにぶん私用ツールなものでいい加減なところがありますが
連絡頂ければなるべく対応いたします。
Re: binpaste.exeについて - ばくてん
2022/03/09 (Wed) 14:10:52
ありがとうございます。
バイナリ加工が自由に出来て重宝しています!
無題 - えすび
2021/03/04 (Thu) 20:03:20
PC-6001 R&D のfdtest同梱のディスク読み書きプログラムについてです(いつものヤツです)。
外付ドライブ用の disk.z80 ですが、Disk60_Init を実行する際に、タイムアウトが発生すると異常動作をします。
戻り先を設定していないためで、以下のように修正する必要があると思います。
Disk60_Init:
ld (Disk60_timeout.resume+1),sp ; ←追加
.dmy: call .check
ld a,$91
out (IO_FDDCNTWRITE),a
xor a
jp Disk60_sendcmd
.check:
ld a,$3A
ld (Disk60_Init.dmy),a ; ←変更
Re: 無題 - webmaster
2021/03/05 (Fri) 04:57:18
毎度ありがとうございます。
諸々修正しておきました。
処理によってはなにげに致命的だったような…。
移植中のやつは4色版の方に一票いれたいです。
TMCFで - KAY-CHANG
2020/12/22 (Tue) 00:22:06
OPNx2環境で打ち込んだ曲を動画配信サイトにアップしました。
OPN3チャンネル目の効果音モードによるDT2とSSGのサンプリングにも挑戦しました。
このような素晴らしいドライバを公開してくださって本当にありがとうございます。
https://nico.ms/sm37993619
https://youtu.be/zdci4EZWPFY
Re: TMCFで - webmaster
2020/12/24 (Thu) 16:09:01
きちんと動いているようで良かったです。
TMCFについて - KAY-CHANG
2020/11/27 (Fri) 23:27:15
OPNx2環境ではPSGPCMが鳴らないようです。
OPN単体でSSGPCMを使用している自作のデータの
#OPN ABC,,N
#PSG DEFM
#SCC GHIJK
を、
#OPN ABC,,NOPQ,,R
#PSG DEFM,,STU
#SCC GHIJK
に書き換えたら、前者で鳴っていたPCMが後者では鳴らなくなりました。
Re: TMCFについて - webmaster
2020/11/29 (Sun) 03:58:52
修正しました。
20201129版で直っていると思います。
Re: TMCFについて - KAY-CHANG
2020/11/29 (Sun) 16:34:00
解決しました!
ありがとうございます。
mako60を参考にさせていただきました - kichikuou
2020/11/23 (Mon) 20:30:20
アリスソフトの古いゲームのブラウザ実行環境 (https://kichikuou.github.io/web/) でFM音源サポートを実装するにあたり、mako60 のソースコードを参考にさせていただきました。
https://github.com/kichikuou/system3-sdl2/blob/master/src/fm/makofm.h
https://github.com/kichikuou/system3-sdl2/blob/master/src/fm/makofm.cpp
自力で MAKO.COM を読む気力は無かったのでとても助かりました。ありがとうございます。
Re: mako60を参考にさせていただきました - webmaster
2020/11/23 (Mon) 21:18:49
すごい。全く予想外の使われ方でした。
何でも投下しておくものですね。
対応ラインナップもアリスフリーク納得の充実ぶりで見事です。
ともあれ、お役に立てたようで何よりでした。
お借りしました - 蕎麦P
2020/11/21 (Sat) 23:07:33
はじめまして、蕎麦Pと申します
事後報告になってしまいましたが、こちらのサイトで公開されているツールをお借りしてPC-88実機で動作するアドベンチャーゲームを制作しました
https://twitter.com/sobamix/status/1330118767821676550
素晴らしいツールを公開していただいて感謝です
ありがとうございました
サイトの内容もいつも参考にさせていただいております
Re: お借りしました - webmaster
2020/11/22 (Sun) 00:48:56
汎用ディスクルーチンを使われているようですね。
正常に動作しているようで良かったです。
サポート・フォロー等大変とは思いますが頑張ってください。
TMCFについて - KAY-CHANG
2020/08/16 (Sun) 23:58:32
BernieさんのPC6001VWの新バージョンがSRの内蔵OPNとFM音源カートリッジを同時使用出来るようになったのでTMCFでデータを作ったのですが、PSGでノイズを使った時、本体側しか使ってないのに拡張側も勝手に同時に鳴る事が有り、また、拡張側のノイズが無視される事が有ります。PSGトーンについては問題は無いようです。
Re: TMCFについて - webmaster
2020/08/18 (Tue) 20:01:38
tmcf の不具合を修正した版をアップロードしました。
OPNx2 をテストする MML テキストも添付してあります。
音源 2 個積みは P6VW の新機能なので、ini など環境を引き継いだままだと
都合の悪い場合があるかもしれません。
Re: TMCFについて - KAY-CHANG
2020/08/18 (Tue) 23:06:10
不具合解消しました!
ありがとうございます。
GB新作作りました - yuyat URL
2019/12/31 (Tue) 10:23:11
こんにちは、yuyatです
https://twitter.com/YuyWahaha/status/1211811202898087937?s=20
https://twitter.com/YuyWahaha/status/1210937936297873408?s=20
ゲームボーイで新作を作りました
事後報告となってしまいましたが、前回のレギオンズGBに引き続き、今回もTHGBのライブラリーを一部お借りしています
いつも本当にお世話になっています、これからもよろしくお願いします
Re: GB新作作りました - webmaster
2020/02/13 (Thu) 23:24:13
返事遅くなってすみません。
楽しそうな作品ができましたね。
ゲームボーイ(に限りませんが)は市販ゲームに良い教材があるので
これは!と思うシステムや演出を(可能であれば)分析してみて
それを実現できるようなフレームワークを実装することで
独自のライブラリが出来上がっていくことと思います。
使われている技術に関しても、ゲーム機のライフサイクル前期と後期での
差に注目してみるといろいろ発見があるかもしれません。
また、それらがゲームの本質的な面白さにどう関わっているのか
調べたり経験を重ねていくと、より開発の奥深さや難しさが
感じられていくように思います。
これからも頑張ってください。