HALNOTEのカートリッジについて2021年11月08日 00:06

HALNOTEのカートリッジについて調べる機会があったのでまとめてみました。

HALNOTE
こちらが基板。
画像上部の2つのROMは元々ソケットについていたので引っこ抜いてROMライタでダンプしたところ
画像左上の2MbitROM(LH5321L7)が漢ROM(第一水準+第二水準)
画像右上の2MbitROM(LH532122)がABヘッダ有のプログラム(ROMイメージの00000h~3FFFFh)
となっていました。

HALNOTEのマッパー

Page (8kB)  Switching address  Initial segment

4000h~5FFFh 4FFFh(※1) 0

6000h~7FFFh 6FFFh(※2) 0

8000h~9FFFh 8FFFh 0

A000h~BFFFh AFFFh 0

※1 4FFFhのbit7を立てると0000h~3FFFhにSRAM16KBが出現
※2 6FFFhのbit7を立てると、以下のバンクが有効


Page (2kB)  Switching address Initial segment

7000h~77FFh  77FFh 0

7800h~7FFFh  7FFFh 0

切り替わる先はROMイメージの後半(80000h~FFFFFh)の512kB(MSX-JEの辞書?)

このHALNOTE形式のマッパーはHBI-J1の拡張スロット0にあるメガROMで採用されており、上記のバンクレジスタはHBI-J1でもすべて有効


HALNOTEの漢ROM
第一、第二水準対応
MSX起動時の/RESET=Lで漢ROM無効
HALNOTEのROMの初期化処理内で、他の漢ROMの存在を検知し、第一水準、第二水準それぞれのROMの存在を検知できなかった場合にHALNOTEの第一水準、第二水準の漢ROMをそれぞれ有効にする。

即ち、内蔵漢ROMを持たない機種でのみ、HALNOTE側の漢ROMが有効になる。

通常の漢ROMカートリッジは常に漢ROM有効なので動きが違う。
msx.orgでnon-standard Kanji-ROMとなっているのはこの動作が原因と思われる)


漢ROM有効化ルーチンは7B5Fh に存在(Bank 06h、DUMPファイルだとDB5Fh)

(れふてぃさん調べ)


漢ROMイネーブラーのレジスタは以下
レジスタアドレス:C000h
bit0=第一水準、bit1=第二水準、0:無効、1:有効

テストプログラム作ってC000hに値を書き込んだ所、第一、第二水準それぞれ有効無効にできることが確認できた。
-> HALNOTE漢ROMテストプログラム

マッパー互換のあるHBI-J1にはC000hの漢ROMのイネーブラーは存在しない


以下第一水準、第二水準混じったテキストをA to CさんのZeroTypeで表示した所。

ST内蔵第一水準、ST内蔵第二水準

漢ROMテスト_ST内蔵1_ST内蔵2


ST内蔵第一水準、HALNOTE第二水準

漢ROMテスト_ST内蔵1_HALNOTE2


HALNOTE第一水準、ST内蔵第二水準

漢ROMテスト_HALNOTE1_ST内蔵2


HALNOTE第一水準、HALNOTE第二水準

漢ROMテスト_HALNOTE1_HALNOTE2


HALNOTEの12pxフォント
Bank 17h~1Fh(絶対アドレス 2E000h~3FFFFh)
Bank 7Ah~7Fh(絶対アドレス F4000h~FFFFFh)
に12pxフォントが存在。
A to CさんのViewFont資料と比較した所、データの割り当ては以下の通りの模様。

2E000H~2E6BFH 12x12半角の20H~7FH
2E6C0H~31CBFH 12x12全角の1~8区
31CC0H~3213FH 12x12半角のA0H~DFH
32140H~327FFH 空白(Zero Fillされている)
33800H~3FFFFH 12x12全角の16~47区
F4000H~F447FH 12x8半角の20H~7FH
F4480H~F687FH 12x8全角の1~8区
F6880H~F6B7FH 12x8半角のA0H~DFH
F6B80H~F6FFFH 空白(Zero Fillされている)
F7000H~FFFFFH 12x8全角の16~47区

上記資料を纏めるにあたり、れふてぃさん、にがさん、裕之さんに貴重なアドバイスいただきました。
ありがとうございました。

CF-30002021年11月05日 23:54


CF-3000
気の迷いで購入したMSX。
キーボードと本体が分かれたセパレートタイプでMSX1にしては珍しくRGB出力付き。
この上位機のCF-3300だとフロッピーもついている。

本体とキーボードとマニュアルがそろっているけど、すべて別々に入手。
最初に資料としてマニュアルを手に入れて、次に他のMSXで流用するためにキーボードを単体で手に入れて、そしたら格安本体を目にしてついつい購入してしまった。

きーぼどと本体がそろった時点で動作チェックしたら問題なく起動してキーボードも全キー入力可能だった。
この機体、キーボード無しだとめちゃくちゃなキー入力が発生するのでカセットとコントローラーでゲーム機として使うこともできない。(未入力状態に知るのに必要なプルアップ抵抗がキーボード側にある)
そのせいでキーボード無しの本体は格安なんだろう。

誰の役に立つかわからないコンデンサリスト
本体
10v 100uF x5 C49 C51 C64 C32 C34
16v 10uF x1 C33
10v 22uF x1 C16
6.3v 330uF x2 C17 C18
16v 330uF x1 C6
16v 100uF x1b C5
6.3v 100uF x1 C4

電源
16v 4700uF x3 C104 C105 C106
25v 4700uF x1 C107
50v 1uF x3 C109 C111 C112
50v 3.3uF x1 C110
25v 470uF C108

グラフィックサブボード
16v 47uF x1  C205
16v 10uF x1  C234
16v 47uF x1  C217
50v 1uF x2  C212 C215
16v 100uF x1  C216
16v 100uF x1  C233
16v 470uF x5  C222 C209 C201 C202 C203
16v 220uF x2  C228 C230

キーボード
6.3v 100uF x1  C302


FA_TIMEのSDMapperMegaRAM対応テスト版2021年06月27日 14:37

FA_TIME ver0.06をSDMapperMegaRAM対応にパッチしてみた(つもり)。
現物無しで作ったので動くかどうか未検証。

元情報は以下のSDMapperrMegaRAM用のNextorドライバのソースから

以下、変更点メモ
・SDアクセスモードへの移行
 6000hに40h書き込み(正確にはbit6=1の値書き込み)→6001hに01h書き込み
・通常モードへの移行
 6000hに記録しておいたバンク番号を書き込み→6001hに00h書き込み
・SDカードスロット選択
 5800hに00h/01h書き込み→4800hにFEh/FDh書き込み(bit0=0でSD1選択、bit1=0でSD2選択)
・初期化時のダミークロック
 5000hをリード→4800hにFFh書き込んで(SD未選択状態)から4000hをリード。その後4800hでSDカードスロット選択

これだけで動く、のか?

ダウンロードはこちら


FA_TIME ver0.062021年05月21日 00:17

恐ろしく久しぶりに更新。
長く放置していたFA_TIMEが動かなくなっていたのを修正。
NICTがhttpによる時刻配信を2022年3月31日に停止するというのでいつまで動くかわからないけど、とりあえず動くようにはしたつもり。
これまで利用していた、サーバー(ntp-a1.nict.go.jp)も停止しているみたいで別のサーバー指定しているのだけれど、この指定もいつまで使えるものか…

オプションは以下の通り
/T[+-]xx タイムゾーンを指定します。デフォルトは/T-09(日本標準時)です。
/Sxx SDカードが接続されているスロットを指定します。デフォルトはスロット1です。
似非SDiskを利用の場合、似非SDiskが刺さっているスロットを/S01、/S02のように指定します。
        1ChipMSXのSDカードスロットを利用する場合は、/S8Bになります。
/2 似非SDiskの2つ目のSDカードスロットを利用する場合指定します。
/W FlashAirがWifiに未接続の場合、接続まで待機しません。
/M FlashAirのRTCのみ設定し、MSXの時計は設定しません。

似非SDiskでしかテストしてません…

FlashFloppyのファイルアクセス順序2018年06月24日 22:35

ファイル名順ではなく、FATに書き込まれている順で表示されるみたい。
微妙に使いづらい…