Skip to content

Latest commit

 

History

History
107 lines (73 loc) · 5.21 KB

README.md

File metadata and controls

107 lines (73 loc) · 5.21 KB

Hitach BASICMASTER Document

気がついたことをメモします。

マニュアルのバグ

BLS命令

MB-6881/MB-6885のマニュアルではBLSの説明として「C BitがセットかあるいはZ Bitがクリアなら」とあるが、これは「Z Bitがセットなら」の誤り。動作説明は "PC←(PC)+0002+Rel, if (C)⊙(Z)=1" であり、正しい。

Monitor $F00F (KBIN)

MB-6881のマニュアルではキーボードが推されているとC=1と書かれているが、逆(C=0)。 MB-6885のマニュアルでは修正されている

I/O port $EF40

アクセス後、11マシンサイクル後にNMIがかかる。ステップ実行用。

I/O port $EFD0

MB-6885のROM/RAM切り替え。回路図IC6の74LS138P(3-Line To 8-Line Decoders)で$40間隔でデコード。 74LS138PのピンY7($EFC0)とアドレスバスA4のANDを取って$EFD0にしている(IC13)。 (同じくA5とのANDでグラフィックディスプレイ切り替え信号を生成している)

IC13のピン8(~ROM MASK)はIC12 74LS175M(Quadruple D-Type Flip-Flop)のCKに入り、データD0-2,4をラッチする。

  • D0: ROM MASK1 B000-DFFF 1:RAM, 0:BASIC ROM
  • D1: ROM MASK2 E000-EFFF 1:RAM, 0:PRINTER ROM, I/O
  • D2: ROM MASK3 F000-FFFF 1:RAM, 0:MONITOR ROM
  • D4: TIME OFF 1:ON 0:OFF

D4は回路図2/3につながっているはずだが、回路図が無い… 回路図2/3はブロックダイヤグラムから想像するに、システム系同期信号発生回路、画面表示、拡張端子あたりの回路が含まれていたと思われる)

bm2ではエミュレートされていない。ebmjr、j68はOK。MAMEは調査してない。

cf. http://cmpslv2.starfree.jp/Bmjr/EnrBm.htm

変数表現

2通り。-32767〜32767までの整数か、仮数4バイト・指数1バイトの浮動小数。演算時には仮数をさらに1バイト追加して演算精度を高めている。

8bit指数・1bit符号・31bitの仮数からなる。指数は2の補数。 指数部が$17のときは整数値で、仮数部2バイト目・3バイト目に値が入る。4バイト目は0,1バイト目は2バイト目から符号拡張されている。

変数テーブル

$700- 変数名と変数の種別、変数の格納先の4バイトで表される。 配列の場合、格納先に配列の大きさも格納されている。

変数名1文字目1バイト(ASCII)・2バイト目の上位ニブルは変数種別、下位ニブルは変数2文字目(1-9)。変数が1文字の場合は$A。3・4バイト目が変数へのポインタ。未初期化の場合は0000。

変数種別は$00:数値変数、$10:1次元数値変数、$20:2次元変数。文字変数はおのおの$C0を足す。 未初期化時は数値は$70、文字変数は$F0になっている。

BASIC中間言語

行番号2バイト+行長1バイト+中間言語…

モニタROM解析記事

月刊マイコンに連載されていた。

  • 1980年5月号 機械語とBASICのリンク1 P.49
  • 1980年6月号 ASCIN、ASCOUTの使い方 P.152
  • 1980年7月号 モニタ解読用逆アセンブラの制作 P.96 その1
  • 1980年8月号 ベーシックマスタのモニタ研究 P.113 その2 (画面表示関連)
  • 1980年9月号 ベーシックマスタのモニタ研究 P.155 その3 (画面表示関連)
  • 1980年10月号 ベーシックマスタのモニタ研究 P.163 その4 (MESOUT,HEXOUT)
  • 1980年12月号 ベーシックマスタのモニタ研究 P.182 その6 (IRQ、音出力)
  • 1980年12月号 L2BASICによるモニタ解読用逆アセンブラ P.187 番外編
  • 1981年1月号 ベーシックマスタのモニタ研究 P.192 その7 (割り込み関連)
  • 1981年2月号 ベーシックマスタのモニタ研究 P.151 その8 (リセット)
  • 1981年3月号 ベーシックマスタのモニタ研究 P.150 その9 (キー入力)
  • 1981年4月号 ベーシックマスタのモニタ研究 P.214 その10 (キースキャン)
  • 1981年5月号 ベーシックマスタのモニタ研究 P.214 その11 (キースキャン)
  • 1981年6月号 ベーシックマスタのモニタ研究 P.180 最終回 (総まとめ)
  • 1981年6月号 MB-6880L2ディスク公開・利用記 P.191 (ディスクFDOS、プリンタの解説)

ハードウェア

  • インターフェース 1980年2月号
    • ベーシックマスタを拡張した汎用ラボオートシステムの制作・ソフトウェア編
    • I/O拡張ポートの使い方、ベーシック・モニタROMの概要が書かれている
  • インターフェース 1981年5月号
    • ベーシックマスター・レベルⅡの回路図解剖 P.165
    • 全回路図と解説
  • I/O 1982年3月号 P.291
    • ベーシックマスターJr.全回路図集
  • ベーシックマスター活用研究 : Level 3,Jr
    • Jr. 全回路図集 P.95
    • I/O 1982年3月号に掲載された回路図の再録

MB-6880/MB-6881 のグラフィック化(256x192)

  • BMUG会報 1982年7月号P.10
  • BMUG会報 1983年5月号P.3

MB-6880/MB-6881 のPCG化

  • BMUG会報 1982年7月号P.11

MB-6880/MB-6881のJr化

  • BMUG会報 1984年12月号 P.4
    • 64KB・裏RAM化