mz-80K
ディスプレイへ
パラレル8255(キーボード、CMT他)へ
カウンタ8253(サウンド、タイマ)へ
ディスクへ
モニタ SP−1002へ
BASIC SP−5030へ
mz-80Kのスペック
CPU | LH0080(Z80A) 2MHz |
PSG | 8253内の1つを使用 |
ROM | 4K |
RAM | 20KB(48KBまで拡張可)+1KB(VRAM) |
クリーンコンピュータ(最初はパーソナルコンピュータとして発売)で広いRAMエリアを持つが
バグフィックスの手間を省く為の設計であって各種の言語を動かす為ではなく
BASICマシンとしてのハード設計だったらしい
純正BASICだけが度重なるバージョンアップしたのもこういう理由なのかもしれない
またバージョンアップの為に動かないソフトが出たり他のROM BASICマシンより
バージョンによって動作しなかったりする事もある
BASICだけでなくマシーンランゲージSP−2001も幾つかの種類があり
ソフト内のアドレスを利用したソフトが動かないのもあります
/VBLANKを無視して画面書き込みを行うと
画面にチリのようなゴミがちらつき
コレを防ぐには/VBLANKを待たないといけなくなるので
かなり速度が落ちる(約半分は落ちる)のはいただけない
ただしmz−1200以降では改良されているものの
場合によっては速度が若干低下する場合がある
キー入力を素早く行おうとすると、こぼれてしまったりするのも欠点である
これはROMルーチンの設計が悪い(mz−80Bでは改善されている)
しかしシンプルな設計だけあってプログラミングはやり易いし、分かり易い
タイマ割り込みは実質空いているようなものなのでユーザが自由に使えるのが良い
CMTは抜群の速度と安定性をほこるのも長所である
mz−80K本体のI/Oポート
mz−80KはメモリマップドI/Oを採用して
純正オプションの周辺機器がI/Oポートを使用しています
0E000H:8255 PA(出力) KEYPA
d7:NE555 RST カーソル点滅用タイマ 1=リセットしない、0=リセットする
d6:未使用
d5: 〃
d4: 〃
d3:PA3 キーセレクト用
d2:PA2 キーセレクト用
d1:PA1 キーセレクト用
d0:PA0 キーセレクト用
0E001H:8255 PB(入力)
d7:PB7 キーデータ D7
d6:PB6 キーデータ D6
d5:PB5 キーデータ D5
d4:PB4 キーデータ D4
d3:PB3 キーデータ D3
d2:PB2 キーデータ D2
d1:PB1 キーデータ D1
d0:PB0 キーデータ D0
0E002H:8255 PC(KEYPC)
d7:PC7(入力)/VBLANK
d6:PC6(入力)NE555 OUTPUT カーソル点滅用タイマのステータスビット 入力
d5:PC5(入力)RDATA CMT読み込みデータ
d4:PC4(入力)MOTOR CMTモータの状態 1=回転、0=停止
d3:PC3(出力)M−ON CMTモータの回転・停止の切り替え 立ち上がり(0→1)で切り替わる。
d2:PC2(出力)LEDの切り替え 1=緑(英数)、0=赤(カナ)
d1:PC1(出力)WDATA CMT書き込みデータ
d0:PC0(出力)/VGATE 1=画面の表示をする、0=画面の表示をしない。
0E003H:8255 CW(KNAST)
8255のコントロールワード
0E004H:8253 C0 モード2 サウンドに使用、クロック2MHz
0E005H:8253 C1 モード2 /INTで使用、クロック 31.25KHz(モニタでは1秒ごと)
0E006H:8253 C2 モード0 /INTで使用、クロックはカウンタ1(モニタでは12時間ごと)
0E007H:8253 CW 8253のモードコントロール
0E008H:8253 C0の制御
d7:未使用
d6: 〃
d5: 〃
d4: 〃
d3: 〃
d2: 〃
d1: 〃
d0:テンポ用NE555のステータスビット (入力)
MUSIC 1=Start、0=Stop(出力)
mz−1200用ポート
0E002H:8255 PC (KEYPC)
d7:PC7(入力)/VBLANK
d6:PC6(入力)カーソル点滅用タイマのステータスビット
d5:PC5(入力)RDATA CMT読み込みデータ
d4:PC4(入力)MOTOR CMTモータの状態 1=回転、0=停止
d3:PC3(出力)M−ON CMTモータの回転・停止の切り替え 立ち上がり(0→1)で切り替わる。
d2:PC2(出力)タイマ割り込みのマスク 1=割り込み許可、0=割り込み禁止
d1:PC1(出力)WDATA CMT書き込みデータ
d0:PC0(出力)/VGATE 1=画面の表示をする、0=画面の表示をしない。
0E008H:
d7:H−BLANK(入力)
d6: 〃
d5: 〃
d4: 〃
d3: 〃
d2: 〃
d1: 〃
d0:テンポ用タイマのステータス(入力)/MUSIC 1=Start、0=Stop(出力)
0E00CH:メモリスワップをする
0E010H:メモリスワップのリセット
メモリスワップはメモリの00000H〜00FFFHのモニタROMと
0C000H〜0CFFFHのRAMを交換することにより
RAMエリアを00000H〜0BFFFHにする事が出来る
0E014H:ノーマルディスプレイ
0E015H:リバースディスプレイ
0E200H〜0E2FFH:ロールダウン、ロールアップ
ロールアップ、ロールダウンはVRAMの表示されるアドレスを変更します(0D000H〜0D7FFH内)
その為VRAM領域は0D000H〜0D7FFHの2KBとなり、そのVRAM領域内が円筒状となっています。
0E200Hがロールダウン
0E2FFHがロールアップ
ROM/RAMの切り換え (注)アスキー 1982年 6月号のハード制作の記事です。
システムROMの00000H〜00FFFHをROMかRAMの切り換えを行います。
080H:出力
d7:1=ROMを選択、0=RAMを選択
d6:1=ライトプロテクト オン、0=ライトプロテクト オフ
d5:未使用
d4: 〃
d3: 〃
d2: 〃
d1: 〃
d0: 〃
MZ−80 I/O−1用
000H〜07FH
000H ツクモ ジョイスティック Y
001H ツクモ ジョイスティック X
004H ツクモ ジョイスティック トリガー
MZ−80DU カラーアダプタ用(SP−5030内でアクセスルーチンがある)
0EEH:送受信データ
0EFH:入力
d7:不明
d6:不明
d5:不明
d4:不明
d3:不明
d2:不明
d1:???1=受信可、受信不可
d0:???1=送信可、送信不可
0EFH:出力
不明
0F0H〜0F7H
フロッピーディスク用
0F8H:入力(入力なのですがI/Oポートのd8〜d12を出力パラメータとして0nnF8Hで読むことで出力)
(例)
LD BC,0nnF8H ;nnが出力パラメータ
IN A,(C)
|
d15:未使用
d14: 〃
d13: 〃
d12:T3444M TND
d11:MOTOR 1=On、0=Off
d10:SE ドライブのセレクトイネーブル
d9:S1 ドライブセレクト d1
d8:S0 ドライブセレクト d0
d7:1
d6:1
d5:1
d4:1
d3:1
d2:0
d1:0
d0:0
0F8H:出力 SES(Select Sector Address)
0F9H:入力
d7:未使用
d6: 〃
d5: 〃
d4: 〃
d3: 〃
d2:T3444M DRDY Drive Ready
d1:T3444M CRDY Controller Ready
d0:T3444M RQM Request Memory Refenence
0F9H:出力 SET(Select Track Address)
d7:Side
d6:Track D6
d5:Track D5
d4:Track D4
d3:Track D3
d2:Track D2
d1:Track D1
d0:Track D0
0FAH:入力 SEM(Status)
d7:C3 CRDY
d6:C2 S1
d5:C1 S2
d4:C0 S3
d3:未使用
d2: 〃
d1: 〃
d0: 〃
0FAH:出力 SEM(Command)
d7:M0
d6:M1
d5:M2
d4:M3
d3:未使用
d2: 〃
d1: 〃
d0: 〃
0FBH:入力 PRM(Permit Memory Reference)
0FBH:出力 PRM(Permit Memory Reference)
プリンタ
使用ポートは0FEH〜0FFHを使用しています
0FEHがコントロール、0FFHがデータ出力となっています
RDP =データの読みこみ指示の信号
/RDA =プリンタのBUSY信号 1=BUSY 、N=not BUSY(入力)
IRT =プリンタのリセット 1=リセットする 、0=リセットしない (出力)
/STATUS=プリンタのエラー 1=エラーなし 、0=エラーあり (入力)
プリンタの1バイト転送
1./RDAが0になるまで待つ
2.データをセットする
3.RDPを1にする
4./RDAが1になるまで待つ
5.RDPを0にする
0FEH:プリンタ コントロール
d7:RDP (出力)
d6:IRT (出力)
d5:− (出力)
d4:− (出力)
d3:0 (入力)
d2:0 (入力)
d1:/STATUS(入力)
d0:/RDA (入力)
0FFH:プリンタ データ
d7:RD7 (出力)
d6:RD6 (出力)
d5:RD5 (出力)
d4:RD4 (出力)
d3:RD3 (出力)
d2:RD2 (出力)
d1:RD1 (出力)
d0:RD0 (出力)
出力端子
右端にあるピンマークが1、上段端子A、下段端子B
・−−−−−−−−−−−−−−−−−−−・
>|A1|D0 |B1|GND |
|−−+−−−−−−+−−+−−−−−−|
|A2|D1 |B2|GND |
|−−+−−−−−−+−−+−−−−−−|
|A3|D2 |B3|GND |
|−−+−−−−−−+−−+−−−−−−|
|A4|D3 |B4|GND |
|−−+−−−−−−+−−+−−−−−−|
|A5|D4 |B5|GND |
|−−+−−−−−−+−−+−−−−−−|
|A6|D5 |B6|GND |
|−−+−−−−−−+−−+−−−−−−|
|A7|D6 |B7|GND |
|−−+−−−−−−+−−+−−−−−−|
|A8|D7 |B8|GND |
|−−+−−−−−−+−−+−−−−−−|
|A9|GND |B9|GND |
|−−+−−−−−−+−−+−−−−−−|
|A10|A0 |B10|RESET |
|−−+−−−−−−+−−+−−−−−−|
|A11|A1 |B11|GND |
|−−+−−−−−−+−−+−−−−−−|
|A12|A2 |B12|/HALT |
|−−+−−−−−−+−−+−−−−−−|
|A13|A3 |B13|GND |
|−−+−−−−−−+−−+−−−−−−|
|A14|A4 |B14|/M1 |
|−−+−−−−−−+−−+−−−−−−|
|A15|A5 |B15|GND |
|−−+−−−−−−+−−+−−−−−−|
|A16|A6 |B16|/WR |
|−−+−−−−−−+−−+−−−−−−|
|A17|A7 |B17|GND |
|−−+−−−−−−+−−+−−−−−−|
|A18|A8 |B18|/RD |
|−−+−−−−−−+−−+−−−−−−|
|A19|A9 |B19|GND |
|−−+−−−−−−+−−+−−−−−−|
|A20|A10 |B20|/IORQ |
|−−+−−−−−−+−−+−−−−−−|
|A21|A11 |B21|GND |
|−−+−−−−−−+−−+−−−−−−|
|A22|A12 |B22|/MREQ |
|−−+−−−−−−+−−+−−−−−−|
|A23|A13 |B23|GND |
|−−+−−−−−−+−−+−−−−−−|
|A24|A14 |B24|/INT |
|−−+−−−−−−+−−+−−−−−−|
|A25|A15 |B25|GND |
・−−−−−−−−−−−−−−−−−−−・
Home へ戻る