PC-8801mkII
HOME | 自作MSXゲーム | ものすごいヤツ | 百戦危うからず | MSXリンク | 正義の願い |
PC-8801mkII |
PC-8801mkIIPC‐8801mkIIのスロット構成 メインバンク サブバンク FFFF ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ FFFF GVRAM0 GVRAM1 GVRAM2 ‐‐‐‐‐‐ 青 赤 緑 C000 フリー ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ C000 エリア 8000 ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ 8000 モニタROM N88SUB N88‐ テキスト ‐‐‐‐‐‐ ‐‐‐‐‐‐ 6000 BASIC RAM N‐ ROM BASIC 0000 ‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐ 0000 システムのワークエリアやテキストVRAM用エリアを除いて25K程が フリーエリア。フリーエリアが足りない場合は、バンクを切り替えて、 テキストRAM(のベーシックテキストが入っていない部分)を使う。 切り替え中は、当然、BIOSを呼んではいけない(暴走する)。 ●誤解しやすいPC−8801系資料のメモリ表記に関して NEC系の資料は搭載メモリとして、メインメモリ+ビデオメモリ+ROM の合計数を記載する。PC-8801mkIIだと搭載メモリ184kBと表記されるが メインRAM64kB+ビデオRAM48kB+ROM72kBの合計である。 PC‐8801mkIIの表示能力 ●テキスト画面は、メインバンク(メインメモリ)のF3C8〜FF7Fにある 0‐桁(列)‐79 0 F3C8・・・・・F417 : F418〜F43F 0 | F440・・・・・F48F : F490〜 | 行 TEXT‐VRAM : 属性エリア 行 | 1バイトが1文字 : | 24 FF08・・・・・FF57 : FF58〜FF7F 24 属性エリアの値で、文字の色付・点滅・反転・下線・上線ができる 属性エリアの内容 2バイト1組で属性を設定する 桁数属性1バイト目で桁数指定、2バイト目が属性 2バイト目 白黒モード bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 G/C 0 アンダー アッパー 0 リバース ブリンク シークレット 2バイト目 カラーモード bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 アンダー アッパー 0 リバース ブリンク シークレット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 グリーン レッド ブルー G/C 1 0 0 0 G/C・・・1=グラフィック 0=キャラクター 属性クリア方法 白黒モード ・・・00H カラーモード・・・E8Hまたは00H 桁数クリア方法 50Hでクリアする場合・・・指定された桁数+1から、指定された属性有効 80Hでクリアする場合・・・桁数0の場合は50Hと同じ。それ以外は指定 の桁数まで指定の属性が有効 最後に指定された桁数+1からは、属性をクリアした数字が有効となる。有効 になる属性以降は要クリア ●グラフィック画面は8色表示。青赤緑の同じアドレス(それぞれ別バンク)に あるグラフィックRAMの3バイトで横8ピクセルを表す 青RAM 赤RAM 緑RAM アドレス C000〜FFFF C000〜FFFF C000〜FFFF 出せる色は3ビットで表す2進数の順に 01234567 黒青赤紫緑水黄白 例1) アドレス 値 青RAMC000 10101010 赤RAMC000 11001100 緑RAMC000 11110000 ↓ ↓ 実画面の左上端に 白黄水緑紫赤青黒 と8ピクセル並ぶ 例2) 8×8ピクセルのキャラなら24バイトのデータが必要 青 赤 緑 1列目 1 2 3 2列目 4 5 6 3列目 7 8 9 4列目 10 11 12 5列目 13 14 15 6列目 16 17 18 7列目 19 20 21 8列目 22 23 24 ただし、88のピクセルは縦長なので、ゲームで多用されるサイズの正方形型に するには、横16×縦8で48バイト必要になる ●グラフィック画面にキャラクターを出す方法(アセンブリ言語) HLにグラフィックRAMのアドレス、DEにキャラデータのアドレス GVRAM0 EQU 5CH ; GVRAM0 OUT PORT GVRAM1 EQU 5DH ; GVRAM1 OUT PORT GVRAM2 EQU 5EH ; GVRAM2 OUT PORT MRAM EQU 5FH ; MAINRAM OUT PORT DI LD A,(DE) ; BLUE DATA OUT (GVRAM0),A LD (HL),A OUT (MRAM),A INC DE LD A,(DE) ; RED DATA OUT (GVRAM1),A LD (HL),A OUT (MRAM),A INC DE LD A,(DE) ; GREEN DATA OUT (GVRAM1),A LD (HL),A OUT (MRAM),A EI これで横8ピクセル分。8×8のキャラならこれを8回繰り返せばよい(!!) (ただし毎回アドレスHLに80を足すことと、DEを1つ進めることを 忘れないように) PC‐8801シリーズのサウンド機能 ●PC‐8801mkIIの内蔵サウンド 「ピポッ」と鳴る、いわゆるBEEP音を出すブザーを内蔵している。周波数を 指定すれば、音程は ‐かなりぎこちないが‐ 2オクターブ相当の音が出せる。 周波数表 C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B 7F 78 71 6B 65 5F 5A 55 50 4C 47 43 40 3C 39 35 32 30 2D 2A 28 26 24 22 BEEPで音階音を出す(アセンブリ言語) ここ多分間違ってます。 ↑ Eに周波数、Dに音の長さを入れてSOUNDをコール | | SYC1 EQU 40H ; SYSTEM CONTROL PORT1 | SSYC1 EQU 0E6C1H ; SYC1 OUT DATA (BEEP) | |SOUND:LD HL,SSYC1 | LD B,(HL) | LD A,B | OR 20H ; MAKE BEEP DATA | OUT (SYC1),A ; BEEP ON | CALL WAIT | OUT (SYC1),B ; BEEP OFF | CALL WAIT | DEC D | JR NZ,SOUND | RET | |WAIT: DEC E | JR NZ,WAIT ↓ RET ここまで ●サウンドボードII使用時(fm.ipl立ち上げ時)のメモリマップ メインRAM 裏RAM ―――――――――― アセンブリ言語でプログラムを FFFF ワークエリア 書かない限り、音源を使う事の代 E600 償として左図の様に、無条件で大 ‐‐‐‐‐‐‐‐‐‐ 量のメモリを占有されてしまう。 音源拡張命令 音を使えばその数だけデータも E100 ワークエリア 必要になり、フリーエリアも減少 ‐‐‐‐‐‐‐‐‐‐ するので、他の仕事のためのプロ 新音源II対応 グラムも置けなくなる。 ワークエリア つまり実質、アセンブリで必用 D000 命令エリア に応じたデータのみ使用する自家 ‐‐‐‐‐‐‐‐‐‐ 製音源ドライバを書かない限り、 ???? フリーエリア ←CLEAR文で指定 曲の演奏と同時にマトモな仕事( ‐‐‐‐‐‐‐‐‐‐ 例えばゲーム)をするには無理が 8000 各種内部使用 ある。マシンに対して音源が重す ‐‐‐‐‐‐‐‐‐‐ ―――――――― ぎるのである テキストエリア **図で誤解の無いように** BASIC 3000 メインRAM ROM ‐‐‐‐‐‐‐‐ 8000〜FFFFの内 新音源II対応 D000〜E5FF コードエリア 裏RAM 0000 0000 0000〜7FFFの内 ―――――――――― ―――――――― 0000〜2FFF が音源に取られるRAMである ●PC‐8801シリーズのサウンド機能の歴史 音源年表 年度 機種 音源 機能 1981 PC-8801 BEEP音 特に無し 1983 PC-8801mkII ボリューム付BEEP音 BASICで2オクターブ 相当の音階を発生できる 1985 PC-8801mkIISR サウンドボード搭載 BASICにMMLが拡張 FM3音SSG3音(注1) された 1987 PC-8801FA、MA サウンドボードII搭載 ボードに合わせMMLが強 FM6音SSG3音 化。擬似ステレオ可(注2) リズム6音ADPCM1音 注1.SSG=Synthesized Sound Generator の略語。であるが、当時の8ビット機 の殆どに標準搭載されていたPSG=Programmable Sound Generatorと同一。 YAMAHA製音源チップに搭載のPSGをSSGと言うが、それとは別に NEC自身で Synthesized Sound Generator と命名し、呼称していた。 疑う方は、88や98のNEC製サウンドボードのマニュアルを読むべし 注2.擬似ステレオ=音を個別に左右に振り分ける機能。ある音は右のみ、別の音は 左のみとなるところが、本当のステレオサウンドとの相違点 ●機種別音源搭載表 旧サウンド サウンドII 1981 PC-8801 ‐ ‐ 1983 PC-8801mkII ‐ ‐ 1985 PC-8801mkIISR ● ‐ ← ビジネス用途は16ビット機に PC-8801mkIITR ● ‐ シフトしたこの頃、ゲーム専用機 PC-8801mkIIFR ● ‐ じゃないぞというNECの意思表 PC-8801mkIIMR ● ‐ 示に音源を付けなかった88も、 1986 PC-8801FH ● ‐ 時流には勝てず音源搭載 PC-8801MH ● ‐ 1987 PC-8801FA ‐ ● ← 開き直って、ホビー機の頂点を PC-8801MA ‐ ● 謳い、ヘビーな音源を搭載するも 1988 PC-8801FE ● ‐ 時代は既に PC-9801であった。こ PC-8801MA2 ‐ ● の頃、MSXがブームの頂点に(注1)
注1.1987年末〜88年始の販売台数A1FとF1XD合わせて22万台。他社も
合わせると30万台に迫った。87年度のMSXの総ソフト販売本数は、PC−
9801シリーズを抑えてパソコン中のトップであった
このページは、1024×768画面に合わせて作りました。ちゃんと見えなかったらスミマセン |