----------------------------------------------------------------------------- SMC-70/777 SYSTEM I/O MAP 2021. 9.23 無保証、一部未検証 各種周辺機器の詳細情報を募集しています。 ・SMC-7086 16ビットCPUユニットのレジスタ仕様 ・SMI-7075 Videotizerのレジスタ仕様 ・SMI-7073 RGB SuperImpozerのレジスタ仕様 ・SMI740のバスゲート解放対象エリア ・SMI-7032 GPIB I/FのオンボードROM BIOS仕様 ・CP/M Rel.2.1がサポートするSMC-70(G)用 HDDの存在 ・CP/M Rel.2.1がサポートするボーレート設定可能タイプRS232Cユニットの存在 ・中国向けSMC-777の640x400モード設定レジスタ ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- I/O MAP list ----------------------------------------------------------------------------- +----+--+----------+------------+------------------------------------------+ |ADDR|RW| device | label | function | +----+--+----------+------------+------------------------------------------+ |aa00|RW| TEXT | TXT-VRAM | text char vram A[15: 8]=TA[ 7:0] | | : | | | | A[ 2: 0]=TA[10:8] | |aa07| | | | | +----+--+----------+------------+------------------------------------------+ |aa08|RW| TEXT | ATT-VRAM | text attr vram A[15: 8]=AA[ 7:0] | | : | | | | A[ 2: 0]=AA[10:8] | |aa0F| | | | | +----+--+----------+------------+------------------------------------------+ |aa10|RW| TEXT | PCG-RAM | PCG pattern ram A[10: 8]=RA[ 2:0] | | : | | | | A[15:11]=PA[ 4:0] | |aa17| | | | A[ 2: 0]=PA[ 7:5] | +----+--+----------+------------+------------------------------------------+ |--18|RW| CRTC | ARPORT | HD460505SP Register port | |--19|RW| | ADPORT | HD460505SP Data port | +----+--+----------+------------+------------------------------------------+ |--1A|RW| KEYBOARD | CDATA | M5M8041A-077P : Data | |--1B|R | | CSTAT | M5M8041A-077P : Status & Handshake flag | |--1B| W| | | M5M8041A-077P : Control | +----+--+----------+------------+------------------------------------------+ |--1C| R| I/O STS | IOSTS1C | RES,na[6:5],-CP,na[3],ID,na[1:0] | |--1C|W | I/O CTRL | IOCTRL | 1bit CTRL :na[7:5],OD,na[3],PA[2:0] | |--1D| R| I/O STS | IOSTS1D | TCIN,na[6:5],PR_BSY,PR_ACK,ID,na[1:0] | |--1D|W | I/O CTRL |(IOCTRL) | same as port --1CH | +----+--+----------+------------+------------------------------------------+ |--1E| W| I8251 | RSINTE | RXRDY INTERRUPT ENABLE | |--1F| W| | RSINTE | RXRDY INTERRUPT ENABLE | +----+--+----------+------------+------------------------------------------+ |--20|RW| DISPLAY | GCW | TXT / GFX mode | |--21|R | INTERRUPT| | VSYNC interrupt status | |--21| W| INTERRUPT| | VSYNC interrupt enable | |--22| W| PRINTER | PTRDT | printer data | |--23| W| DISPLAY | | border color | +----+--+----------+------------+------------------------------------------+ |--24| W| RTC | RTCWP | M5M58321RS | |--25|R | | RTCRP | M5M58321RS : RDY,UNK[6:4],RD[3:0] | +----+--+----------+------------+------------------------------------------+ |--26|RW| RS232C | TTYDAT | I8251 DATA PORT | |--27|RW| | TTYSTT | I8251 STATUS PORT | +----+--+----------+------------+------------------------------------------+ |ADDR|RW| device | name | function | +----+--+----------+------------+------------------------------------------+ |--28|RW| FDC2 | DSTS / DCMD| SMI-7016 MB8877A | |--29|RW| | DTRK | MB8877A | |--2A|RW| | DSCT | MB8877A | |--2B|RW| | DSCT | MB8877A | |--2C|R | | DDAT | DRQ,BSY | |--2C| W| | DSEL | SIDE,MODE,SEL | +----+--+----------+------------+------------------------------------------+ |--2D| W| RS232C-2 | TTY2INT | SMI-7031(S9=ON) RXRDY INTERRUPT ENABLE | |--2E|RW| | TTY2DAT | SMI-7031(S9=ON) I8251 | |--2F|RW| | TTY2STT | SMI-7031(S9=ON) I8251 | +----+--+----------+------------+------------------------------------------+ |--30|RW| FDC1 | DSTS / DCMD| MB8877A | |--31|RW| | DTRK | MB8877A | |--32|RW| | DSCT | MB8877A | |--33|RW| | DDAT | MB8877A | |--34|R | | DREQ | DRQ,BSY | |--34| W| | DSEL | (SIDE,MODE),SEL | +----+--+----------+------------+------------------------------------------+ |--35| W| RS232C-3 | TTY2INT | SMI-7031(S9=ON) RXRDY INTERRUPT ENABLE | |--36|RW| | TTY2DAT | SMI-7031(S9=OFF) I8251 | |--37|RW| | TTY2STT | SMI-7031(S9=OFF) I8251 | +----+--+----------+------------+------------------------------------------+ |ADDR|RW| device | name | function | +----+--+----------+------------+------------------------------------------+ |--38|R |CACHE_DISK|CDSTS | STATUS PORT | |--38| W| |CDCMD | COMMAND PORT | |--39| W| |CDTRK | TRACK PORT (0-63) | |--3A| W| |CDSCT | SECTOR PORT (0-31) | |--3B|RW| |CDDAT | DATA PORT (auto inc) | +----+--+----------+------------+------------------------------------------+ |--3C|RW| SUPERIMP | | SMI-7074 NTSC superimposer | |--3C|RW| GENLOCK | | SMC-70G GENLOCKER | |--3D|RW| | | SMC-70G GENLOCKER | +----+--+----------+------------+------------------------------------------+ |--40|RW| GPIB | GPIB0 | SMI-7032 TMS9914A | |--41|RW| | | SMI-7032 TMS9914A | |--42|RW| | | SMI-7032 TMS9914A | |--43|RW| | | SMI-7032 TMS9914A | |--44|R | | | SMI-7032 DIP SWITCH | |--44| W| | | SMI-7032 TMS9914A | |--45|RW| | | SMI-7032 TMS9914A | |--46|RW| | | SMI-7032 TMS9914A | |--47|RW| | | SMI-7032 TMS9914A | +----+--+----------+------------+------------------------------------------+ |--48|RW| HDD | HDDAT | HDD Data Port , UPI41 ? | |--49|R | | HDSTS | HDD Status Port , UPI41 ? | +----+--+----------+------------+------------------------------------------+ |-a51|R | JOYSTICK | JS_IN | A[8]= 1:JS-1 / 0:JS-2 | |-a51| W| | J2_OUT | JOYSTICK-2 output control | +----+--+----------+------------+------------------------------------------+ |--52| W| PALET | PALET | 4096 color palet | +----+--+----------+------------+------------------------------------------+ |--53| W| PSG | PSG | SN76489AN | +----+--+----------+------------+------------------------------------------+ |--5A|RW| unknown | | IPL-ROM OUT 01H | |--5B|RW| | | IPL-ROM OUT 23H | +----+--+----------+------------+------------------------------------------+ |ADDR|RW| device | name | function | +----+--+----------+------------+------------------------------------------+ |aa70|R | EXTROM | EROMD | ROMA[ 7:8] = A[15:8] , ROMD = D | |--70|W | | EROMA | ROMA[15:8] = D | +----+--+----------+------------+------------------------------------------+ |aa74|R | GPIB | | SMI-7032 ROM A[15:8] = ROMA[7:0],D = Data| |--74| W| | | SMI-7032 ROM D[2:0] = ROMA[10:8] | +----+--+----------+------------+------------------------------------------+ |--78|R | LPEN(IO) | LPHL | I/O 1984.8.P202 LPH[7:0] | |--79|R | | LPHH | I/O 1984.8.P202 -READY,NA[6:2],LPH[9:8] | |--7A|R | | LPV | I/O 1984.8.P202 LPV[7:0] | |--7B|R | | LPRST | I/O 1984.8.P202 restart counter | +----+--+----------+------------+------------------------------------------+ |--7C|RW| MIDI(HB) | MDDATA | Oh!HITBIT Vol.6 MIDI I/F - I8251 | |--7D|RW| | MDSTAT | Oh!HITBIT Vol.6 MIDI I/F - I8251 | +----+--+----------+------------+------------------------------------------+ |aa7E|R | SUBROM | SROM_KD | Kanji-ROM :aa=|100b|L/R|RA[3:0]|:D=data | |--7E| W| (KANJI) | SROM_AL | NA[7],JIS_1B[7:1] | |aa7F|R | | SROM_BD | Basic-ROM :aa=A[7:0] :D=data | |--7F| W| | SROM_AH | JIS_2B[8:1] / BROM_A[15:8] | +----+--+----------+------------+------------------------------------------+ |aa80|RW| GRAPHIC | GVRAM | Graphic VRAM : A[15:0]=GA[7:0] | | : | | | | A[ 6:0]=GA[14:8] | |aaFF| | | | | +----+--+----------+------------+------------------------------------------+ note:  SMC-70の拡張スロットに対してデータバスゲートが開くのは 28H-7FHの範囲のみ。 (SMC-777用SMI-740は不明)  不在のI/O空間のリードに対しては 0FFH で応答する。 -------------------------------------------------------------------- TEXT / ATTRIBUTE RAM -------------------------------------------------------------------- +--+-------------+--------------------+--------------------------------+ |RW| A[15:8] |A[7:3] | A[2:0] |D7 |D6 |D5 | D[4:3] | D[2:0] | +--+-------------+--------------------+--------------------------------+ |RW| TEXT_A[7:0] |0000_0b|TEXT_A[10:8]| CHAR_CODE | +--+-------------+--------------------+--------------------------------+ |RW| ATTR_A[7:0] |0000_1b|ATTR_A[10:8]|FRC|BRK|REV|BCOL[1:0]|CCOL[2:0] | +--+-------------+--------------------+--------------------------------+ TEXT_A[10:0]/ATTR_A[10:0] : Y*80 + X*2 + PAGE (GCW.CM=1 , 40x25) : Y*80 + X (GCW.CM=0 , 80x25) FRC : 強制bit : 0= 他のビット有効 / 1= BRK=0,REV=0,BCOL=0,CCOL=7 とみなす BRNK : blink CC: 0 = blink off /1 = Blink Char Color REV : recerve : 0 = normal / 1 = reverce font pattern BCOL[1:0] : Back Ground Color 00b=transpalent / 01b=White/10b=Black / 11b=CCOL+08H CCOL[2:0] : Char Color : 0-7 (same as GFX color) ,0は不透明の黒 TXT_PIXEL = FRC ? FONT_BIT : (FONT^REV) ? (BRK & FLASH_ON) : (BCOL!=00b) note: CCOL==0 のBlackは透明ではない黒。 BCOL==11b 設定の補色はカラーコード+8の値によるもので、CCOLの反転色ではない。  BRNK==1の時はCCOL対象ピクセルがCCOL/BCOLに一定時間ごとに切り替わる。BCOL部分は不変。 REV==1の時はフォントパターンがビット反転されて扱われる。 TXT/GFXの認定には6BIT+遅延用ピクセルクロックが必要 -------------------------------------------------------------------- PCG RAM -------------------------------------------------------------------- +--+------------+---------+-----------+--+--+--+--+--+--+--+--+ |RW| A[15:8] | A[7:3] | A[2:0] |D7|D6|D5|D4|D3|D2|D1|D0| +--+------------+---------+-----------+--+--+--+--+--+--+--+--+ |RW| PCG_A[7:0] | 0001_0b |PCG_A[10:8]|P0|P1|P2|P3|P4|P5|P6|P7| +--+------------+---------+-----------+--+--+--+--+--+--+--+--+ PCG_A[10:0] : CHAR_CODE[7:0]*8 + RASTER[2:0] P0 : pixel[X+0] 左端 P1 : pixel[X+1] P2 : pixel[X+2] P3 : pixel[X+3] P4 : pixel[X+4] P5 : pixel[X+5] P6 : pixel[X+6] P7 : pixel[X+7] 右端 PCG_D[7:0] : PCG データ note: CG-ROMは存在しません。IPLがデフォルトのパターンをCGパターンを定義します。 アクセスウェイトは発生しません。 -------------------------------------------------------------------- CRTC -------------------------------------------------------------------- +--+------+---------------------------+------------------------+ |RW|A[7:0]|D7|D6|D5|D4 |D3|D2 |D1 |D0 |function | +--+------+---------------------------+------------------------+ |RW| 18H |--|--|--| CRTCA[4:0] | HD460505SP Reg. port | |RW| 19H | CRTCD[7:0] | HD460505SP Data port | +--+------+---------------------------+------------------------+ note: SMC-70の640x400モードではインターレース&ビデオシンクモードが使われる。 SMC-70内蔵ライトペンのキャラクター単位座標はCRTCのレジスタから取得する。 ライトペンのキャラクタ単位未満の座標はポート1Cから取得する。 Disk BASIC :CRTC 画面再設定 1402- |gmode |pdata|R4 |R5 |R6 |R7 |R8 |R9 | |0,1,2 |1420H|1FH|06H|19H|1CH|A0H|07H| | 3 |1429H|1FH|06H|19H|1CH|A3H|0EH|640x400 interrace & video sync -------------------------------------------------------------------- KEYBOARD -------------------------------------------------------------------- Scan Mode +--+------+---+------------------------------+ |RW|A[7:0]|FEF|D7 |D6|D5|D4 |D3| D2 |D1 |D0 | +--+------+---+------------------------------+ |R | 1AH | KD[7:0] | |R | 1BH | 0 |CF |SF|--|-- |--| ASF |-- |BSF| | W| 1BH | 0 |ICF|--|--|FEF|--| -- |-- |IEF| +--+------+---+------------------------------+ KD[7:0] : scan code (ASCII code) CF : 1 = CTRL + SCAN_KEY (Exclude SHIFT) SF : 1 = SHIFT + SCAN_KEY (Exclude CTRL) ASF : 0 = キーが押されていない。 / 1 = キーが押されている。 BSF : 1 = キーが押されるとセット、KDを読み込んだあと80us後にクリア、ICFを書き込むと直ちにクリア ICF : 0 = keep interrupt request / 1 = clear interrupt request FEF : 0 = keep Scan Mode / 1 = enter Setting Mode IEF : 0 = disable interrut / 1 = enable interrupt Setting mode +--+------+---+--------------------------+----------------------+ |RW|A[7:0]|D7|D6| D5 |D4|D3| D2 |D1 |D0 | function | +--+------+---+--------------------------+----------------------+ |RW| 1AH | KD[7:0] | key data | |R | 1BH |--|--| -- |--|--|-BUSY|-CS|DR | handshake status | | W| 1BH | 00b | -- |--|--| -- |---|---| exit to scan mode | | W| 1BH | 01b | RM |--| T[3:0] | repeat set | | W| 1BH | 10b |-R/W|--| A[3:0] | function key set/read| | W| 1BH | 11b | -- |--|--| -- |---|---| reset & scan mode | +--+------+---+--------------------------+----------------------+ KD[7:0] : command / parameter / result data -BUSY : command busy : 0=busy (not done) / 1 = not busy (done) -CS : WR status : 0 = KD.W empty (writable) / 1 = KD.W full DR : RD status : 0 = KD.R empty / 1 = KD.R full (readable) RM : 0 = repeat start / 1 = repeat interval -R/W : 0 = function key readback / 1 = function key set T[3:0] : repeat start timer or repeat interval time A[3:0] : function key select Repeat Parameter +-----+-----------+-----------+------+ |value|RM=0,T[3:0]|RM=1,T[3:0]|A[3:0]| +-----+-----------+-----------+------+ |0000b| 0.5sec | 20 msec | | |0001b| 0.6sec | 40 msec | F1 | |0010b| 0.7sec | 60 msec | F2 | |0011b| 0.8sec | 80 msec | F3 | |0100b| 0.9sec | 100 msec | F4 | |0101b| 1.0sec | 120 msec | F5 | |0110b| 1.1sec | 140 msec | HELP | |0111b| 1.2sec | 160 msec | | |1000b| 1.3sec | 180 msec | | |1001b| 1.4sec | 200 msec | | |1010b| 1.5sec | 220 msec | | |1011b| 1.6sec | 240 msec | | |1100b| 1.7sec | 260 msec | | |1101b| 1.8sec | 280 msec | | |1110b| 1.9sec | 300 msec | | |1111b| 2.0sec | 320 msec | | +-----+-----------+-----------+------+ note: UPI-41A (8041A) MCUとインターフェースされている。 コマンドポート、データポートのアクセスする際は,-CS,DR/IEF フラグでハンドシェーク転送する。 -------------------------------------------------------------------- I/O STATUS -------------------------------------------------------------------- +--------+--+------+------------------------------------------+ |machine |RW|A[7:0]|D7 |D6 | D5 | D4 | D3 |D2 |D1 |D0 | +--------+--+------+------------------------------------------+ |SMC-70 |R | 1CH |RES |HiZ|LPH[2]|LPV[2] |LPV[1]|HiZ|MD[1:0]| |SMC-777 |R | 1CH |RES |---|------| -CP |------|ID |-------| +--------+--+------+------------------------------------------+ |SMC-70 |R | 1DH |TCIN|HiZ|LPIN |PR BUSY|PR ACK|HiZ|MD[1:0]| |SMC-777 |R | 1DH |TCIN|---|------|PR_BUSY|PR_ACK|ID |-------| +--------+--+------+------------------------------------------+ RES : 0=COLD START (POWER ON) / 1=WARM START (RESET SWITCH) TCIN : CMT READ DATA PR_BUSY : 1 = printer BUSY PR_ACK : 1 = printer ACK received SMC-70 HiZ : no drive (readable level '1') LPH[2] : LIGHT PEN H position LPV[2:1] : LIGHT PEN V position LPIN : LIGHT PEN入力検出 0=入力なし / 1=入力あり MD[1:0] : SMC-70 BOOT MODE switch (10b=ROM/00b=DISK/11b=EXT) SMC-777 -CP : palet board : 0=装着 / 1=未装着 ID : machine ID : 0=SMC-777 / 1=SMC-70 note: SMC-777では機種判定ビットを追加した上で仕様変更されており -CP と LPV[2]が異なる機能になっている。 オフィシャルマニュアルではSMC-777で -CP ビットを判定する際は ID ビットで機種を判定する決まりになっている。  SMC-70ではライトペンのキャラクタ座標未満の水平4ドット単位と垂直2ドット単位の座標がここから読み取れる。(未検証) -------------------------------------------------------------------- IOCTRL: I/O CONTROL -------------------------------------------------------------------- +--+------+----------------------------+ |RW|A[7:0]|D7|D6|D5| D4 |D3|D2 |D1 |D0 | +--+------+----------------------------+ | W| 1CH |--|--|--| OD |--| PA[2:0] | | W| 1DH |--|--|--| OD |--| PA[2:0] | +--+------+----------------------------+ OD : otuput value PA : output select +----+---------------+--------------------------------+ |PA | port select | OD=0 | OD=1 | +----+---------------+--------------------------------+ |111b|CASETTE_OUT | low | high | |110b|PRINTER_STROBE | -STB=H | -STB=L | |101b|SOUND_OUT | low | high | |100b|MONITOR_ON_OFF | CASSETTE STOP | START CASSETTE | |011b|RGB/-COMP | RGB | COMP | |010b|625/-525 | 525 | 625 | |001b|-V_SUP | DISPAY ON |DISPAY BLANK | |000b|RAM/-ROM | SHADOW ROM | RAM | +----+---------------+--------------------------------+ note: D[2:0]でデバイスを選択して、D4でビット単位でアクセスする。(I8255のポートCビットアクセスモードと同等) SHADOW ROM をセレクトすると、メモリの0000H-3FFFHのリードアクセスのみIPL/BIOS ROMから行われる。 RAM/-ROMレジスタ変更に対して実際の更新は次の次のM1サイクルの開始時点で行われるため、 次の命令は切り替え前のRAMまたはROM上で実行できる。ただし、割り込み禁止状態で行うこと。 SMC-70のIPL ROMはSMC-777のBIOS ROMコールエントリと互換性がないためSonyFilerは起動しない。 -------------------------------------------------------------------- GRAPHIC/TEXT MODE -------------------------------------------------------------------- GCW : graphic charactor width ? +--+------+--------------------------------------+-------+ |RW|A[7:0]| D7 | D6 |D5 | D4 | D3 | D2 |D1 |D0 |machine| +--+------+--------------------------------------+-------+ |RW| 20H | CM | TP | T | I | GM[1:0] |GP[1:0]|SMC-70 | +--+------+--------------------------------------+-------+ |RW| 20H | CM | TP | T | - |GM[1]|----|---|---|SM-777 | +--+------+--------------------------------------+-------+ CM : text mode 0=80x25 / 1=40x25x2page TP : text page 0 / 1 (40x25 only) T : (640x200) color type 0=1(K,R,G,B) / 1=2(K,R,G,W) SMC-70 I : Interace : 0 = non-interace / 1 = interace GM[1:0] : gfx mode : 00b = 160x100x4bppx4page / 01b = 320x200x4bpp : 10b = 640x200x2bpp / 11b = 640x400x1bpp GP[1:0] : gfx page : (160x100 only) SMC-777 GM[1] : gfx mode : 0 = 320x200x4bpp / 1 = 640x200x2bpp note:  SMC-777では互換性を保つために一部の無効ビットもSMC-70用に合わせて設定するように規定されている。 設定値は読み込み可能だが、SMC-777における無効ビットは書き込んだ値を読み出すことは出来ない。 640x400モードはCRTCをインターレース&ビデオシンクモードに設定して使う。 中国向けSMC-777では640x400モードの追加改造が施されているという情報がある。 -------------------------------------------------------------------- VSYNC interrupt -------------------------------------------------------------------- +--+------+------------------------+-------------------------------+ |RW|A[7:0]|D7|D6|D5|D4|D3|D2|D1|D0 | function | +--+------+------------------------+-------------------------------+ |R | 21H |--|--|--|--|--|--|--|IDF|VSYNC interrupt detect status | | W| 21H |--|--|--|--|--|--|--|IEF|VSYNC interrupt enable control | +--+------+------------------------+-------------------------------+ IDF : VSYNC interrupt detect : 0=no-detect / 1=detect IEF : VSYNC interrupt enable : 0=disable / 1=enable note: 割り込みベクターの発生機能は無いため、Z80はINT MODE 1で使用する。 IRQ(割り込みの要求)はVSYNCにセット、SpecialM1(割り込み受付)サイクルでクリアされる。 IDFはIRQでセット、IRQクリア時のポート21Hリード後にクリアされるため割り込み要因 の特定フラグとして機能する。 -------------------------------------------------------------------- printer data -------------------------------------------------------------------- +--+------+------------------------+ |RW|A[7:0]|D7|D6|D5|D4|D3|D2|D1|D0 | +--+------+------------------------+ | W| 22H | pr_data | +--+------+------------------------+ note:  Strobe,Busy制御はポート 1CHで行う。  Strobe/Busyによる3ステート制御があるようで常時pr_dataがピンに出力される訳ではなさそう。未調査。 -------------------------------------------------------------------- border color -------------------------------------------------------------------- +--+------+------------------------+ |RW|A[7:0]|D7|D6|D5|D4|D3|D2|D1|D0 | +--+------+------------------------+ | W| 23H |--|--|--|--| bcolor | +--+------+------------------------+ bcolor : ボーダーエリアのカラーコード note: -------------------------------------------------------------------- RTC -------------------------------------------------------------------- +--+------+---------------------------+-----------------------+ |RW|A[7:0]| D7 |D6|D5| D4 |D3|D2|D1|D0| function | +--+------+---------------------------+-----------------------+ | W| 24H |STOP|WR|RD|ADDR| RTWD[3:0] | M5M58321RS | |R | 25H |RDY |--|--|----| RTRD[3:0] | M5M58321RS | +--+------+---------------------------+-----------------------+ STOP : RTCのGS2とSTOP信号を設定 WR : RTCのWR信号を設定 RD : RTCのRD信号を設定 ADDR : RTCのRD信号を設定 RTWD[3:0] : RTCのデータバスを設定(WR='0'の時) RDY : RTCの-BUSY信号の状態 RTRD[3:0] : RTCのデータバスの状態 note: SMC-70のみ内蔵  +3.6V一次リチウム電池によるバックアップ機能がある。 -------------------------------------------------------------------- RS232C -------------------------------------------------------------------- +--+--------------+--------------------------+----------------------+ |RW| A[7:0] |D7|D6|D5|D4|D3|D2|D1| D0 | note | +--+--------------+--------------------------+----------------------+ | W| 1EH/2DH/35H |--|--|--|--|--|--|--| IEF |Internal.SMI-7031 A/B | | W| 2DH/35H |TRXCLK |--|--|--|--|(IEF)|Unknwon A/B | |RW| 26H/2EH/36H | I8251_DATA | i8251 Int/A/B | |RW| 27H/2FH/37H | I8251_CTRL | i8251 Int/A/B | +--+--------------+--------------------------+----------------------+ IEF : RXRDY interrupt 0=disable / 1=enable TRXCLK: Port A,B TXCK/RXCK bardrate select +------+-----------+ |TRXCLK| baud date | +------+-----------+ | 0 | 110 bps | | 1 | 300 bps | | 2 | 600 bps | | 3 | 1200 bps | | 4 | 2400 bps | | 5 | 4800 bps | | 6 | 9600 bps | | 7 | 19200 bps | +------+-----------+ CP/M Release 2.1の設定値によるもの SMI-7031は手動によるDIP SW設定のため、対象デバイスは不明 note: ・SMC-70に内蔵のInternal + 拡張-A/B の最大3ポートをサポート ・IEFレジスタでRXRDYのみ割り込み使用可能。オートクリア機能はないので8251のアクセスでクリアする。 ・全ポート、ストレート/クロス接続をハードスイッチで切り替え可能。 ・InternalとSMI-7031のボーレートはDIPスイッチでボーレートクロックを選択する。 ・SMC-777には内蔵RS232Cはない。SMI-731のI/Oアドレスは未確認 ・ボーレートをレジスタで設定するものが存在する様子 -------------------------------------------------------------------- Floppy Disk Control -------------------------------------------------------------------- FDC1 build in 3.5'1DD / 3.5'2DD , 5.25' 2D/2DD? +--+--------+---------------------------------+--------------------------+ |RW| A[7:0] | D7 | D6 |D5 |D4|D3|D2| D1 | D0 | function | +--+--------+---------------------------------+--------------------------+ |RW| 30-33H | FDC1 | MB8877,extend motor timer| |R | 34H |-DRQ |IRQ | 0 | 0| 0| 0| 0 | 0 | FDC Fast Status | +--+--------+---------------------------------+--------------------------+ | W| 34H |SIDE1|----|---|--|--|--|EXDS|DS01| Drive CTRL (SMC-70) | | W| 34H |-----|----|---|--|--|--|----|DS01| Drive CTRL (SMC-777) | +--+--------+---------------------------------+--------------------------+ FDC2 extend 8'2D +--+--------+---------------------------------+--------------------------+ |RW| A[7:0] | D7 | D6 |D5 |D4|D3|D2| D1 | D0 | +--+--------+---------------------------------+--------------------------+ |RW| 28-2BH | FDC2 | MB8877,extend motor timer| |R | 2CH |-DRQ |IRQ | 0 | 0| 0| 0| 0 | 0 | FDC Fast Status | | W| 2CH |SIDE1|SEL5|MFM|--|--|--|DSEL[1:0]| Drive CTRL | +--+--------+---------------------------------+--------------------------+ FDC1/FDC2 : MB8877A control -DRQ : inverted MB8877A DRQ pin IRQ : MB8877A INT pin SIDE1 : Side Select : 0=SIDE 0 / 1=SDE1 SEL5 : mode select : 0=8inch(2MHz) / 1=5inch(1MHz) MEM : Encode mode : 0=FM / 1=MFM DSEL[1:0] : Drive select : 0,1,2,3 DS01 : Drive select : 0 = SELECT0 / 1 = SELECT1 SMC-70 EXDS : Ext Drive Sel : 0 = Internal(1DD) / 1 = External note: SIDE信号はSMC-70の本体合体 3.5'FDD は対応するが、SMC-777は未対応。 SMC-777はFDC1のDSELはbit0のみ有効、ビット1は無視される。 SEL5はOh!HITBIT Vol.6の制作記事に基いたもので純正オプションでは異なる可能性がある。 CP/M Rel.2.1では5インチ40/80trackの対象がFDC1の外部ドライブなので600rpmの5'FDDが必要? -------------------------------------------------------------------- CACHE_DISK -------------------------------------------------------------------- +--+------+------------------------------------+--------------------------+ |RW|A[7:0]| D7 | D6 |D5 |D4|D3|D2| D1 | D0 | function | +--+------+------------------------------------+--------------------------+ |R | 38H |-CDRDY|CDWPT|-- |--|--|--| -- |-- | CDSTS STATUS PORT | | W| 38H | CDWEN|---- |-- |--|--|--|CDSEL[1:0]| CDCMD COMMAND PORT | | W| 39H |------|-----| CDTRK[5:0] | track reg. | | W| 3AH |------|-----|-- | CDSCT[4:0] | sector reg. | |RW| 3BH | CDDAT | data access(auto inc) | +--+------+------------------------------------+--------------------------+ -CDRDY : 0=READY / 1 = not READY (no device) -CDWPT : 0=protected / 1 = enabled (おそらくCDWENのコピー) CDWEN : 0=write protect / 1=write enable CDSEL : デバイスセレクト(CP/Mがサポートするデバイス数は最大4) CDTRK : track (0-63) CDSCT : sector (0-31)、1セクターは128バイト,ライトでセクターカウンターが0にリセットされる。 CDDAT : data read/write , セクター内カウンターはじオートインクリメント note :  RAM DISK、64トラック x 32セクター x 128バイト = 256KBytes の固定容量 CDSELで選択されたデバイスが応答する仕組みの様子 CDWEN を変更する場合、先に CDSEL だけを確定させておく必要がありそう。 -CDRDY : デバイスの存在有無のチェックとして扱われる模様 -CDWPT / CDWEN : 起動時に初期化の必要性の有無として扱われる模様 セクターデータの書き込みは、OTIR / INIR で128バイトのブロック転送している。 A15-8に関係なくセクターカウンターがオートインクリメントされるのか、A14-8がアドレス直結なのかはわからないが、おそらく前者の実装。 CP/M起動時、-CDRDY==0 && -CDWPT==0 && パワーONリセットブート の条件でDIRエントリーをクリアする。 電源OFF時に-CDWPT==1 を保つハードウェアになっていれば不発揮RAMドライブとして機能しそう。 -------------------------------------------------------------------- SMI-7073 RGB SUPERIMPOSER -------------------------------------------------------------------- 未確認。 レジスタマップは SMI-7074 と互換性があると想われる。 -------------------------------------------------------------------- SMI-7074 NTSC SUPERIMPOSER -------------------------------------------------------------------- +--+------+---------+---+----+----------+----------+-----------------+ |RW|A[7:0]| D7 | D6 |D5 | D4 | D3 | D2 | D1 | D0 | function | +--+------+---------+---+----+----------+----------+-----------------+ |RW| 3CH | -- | -- |SI5|AOEN|AISEL[1:0]|VOSEL[1:0]| selects | +--+------+---------+---+----+----------+----------+-----------------+ SI5 : Unknown (switch Magnetic Relay) AOEN : Audio output enable , 0=mute / 1=enable AISEL[1:0] : Audio input select 00b = Audio1 Stereo 01b = Audio1 Lch Mono 10b = Audio1 Rch Mono 11b = Audio2 Stereo VOSEL[1:0] : Video Output select 00b = Computer Only 01b = VIDEO IN + Computer 10b = video pedal + Computer 11b = VIDEO IN only note : ポート3CHのbit 6,7はGENLOCKERでR/W制御されるため 同時に設定する必要がある。 -------------------------------------------------------------------- GENLOCKER (SMC-70G) -------------------------------------------------------------------- +--+------+-------------------------------+--------------------------+ |RW|A[7:0]| D7 | D6 |D5 |D4|D3|D2|D1|D0| function | +--+------+-------------------------------+--------------------------+ |RW| 3CH | GLEN |G3C6 |-- |--|--|--|--|--| genlock control | |RW| 3DH | GLSEL[1:0] |-- |--|--|--|--|--| genlock control | +----+--+----------+------------+---------+--------------------------+ GLEN : GenLocker Enable , 0 = Disable , 1 = enable G3C6 : Unknown ( GenLocker Valid check ?) GLSEL[1:0] : Sync Select / Lock 00b : Enable Manual Buttons 01b : sel ExtSync , Disable Manual Buttons 10b : sel IntSync , Disable Manual Buttons 11b : sel AutoSync , Disable Manual Buttons note : ポート3CHのbit 5-0はSUPRTIMPOSERでR/W制御される。 GenLocker ON/OFF切替時にはCRTCも適切に設定しなおす必要がある。 CP/M Rel.2.1 SETUP.COM でGENLOCK設定を変更できる。  CP/Mのエスケープシーケンスコード ESC+@ でも制御できるっぽい。  SMC-70のIPL-ROM Ver1.3Jからもアクセスされる。 IPL Access RES 6,PORT(3C) BIT 6,PORT(3C) -> valid check SET 6,PORT(3C) BIT 6,PORT(3C) -> valid check RES 7,PORT(3C) -> GENLOCK off PORT(3D)=C0 : Set AutoSync PORT(3D)=00 : Enable Manual Buttons -------------------------------------------------------------------- GPIB (SMI-7032) -------------------------------------------------------------------- GPIB I/F +--+-------+---------------------------+------------------------+ |RW|A[7:0] |D7|D6|D5|D4|D3|D2| D1 | D0 | function | +--+-------+---------------------------+------------------------+ |R |40H-43H| GPRD | TMS9914A | |R |44H | GPDSW | DIP SWITCH | |R |45H-47H| GPRD | TMS9914A | +--+-------+---------------------------+------------------------+ |W |40H-47H| GPWD | TMS9914A | +--+-------+---------------------------+------------------------+ GPIB ROM port +--+-------+---------------------------------+------------------+ |RW|A[7:0] |A[15:8] |D7|D6|D5|D4|D3|D2|D1|D0 | function | +--+-------+---------------------------------+------------------+ |R | 74H |GPA[7:0]| GPROMD[7:0] |ROM read | | W| 74H |--------|--|--|--|--|--|GPA[10:8]|ROM address | +--+-------+---------------------------+------------------------+ GPA[10:0] : ROM address GPROMD[7:0] : ROM data note: -------------------------------------------------------------------- HDD -------------------------------------------------------------------- +--+------+---------------------------+------------------------+ |RW|A[7:0]|D7|D6|D5|D4|D3|D2| D1 | D0 | function | +--+------+---------------------------+------------------------+ |RW| 48H | HDDAT[7:0] | HDD Data read/write | |R | 49H |? |? |? |? |? |? |-RXF|-TXE| HDD Status Port | +--+------+---------------------------+------------------------+ -RXE : 0=receive buffer full (RX ready) -TXF : 0=transmit buffer empty (TX ready) note:  CP/M Rel.2.1のBIOSコードがサポートしているインテリジェントHDDコントローラ  対応コントローラとプロトコルの詳細は不明。  データ出力許可条件 : (IN(49H) & 3) == 02H  データ入力許可条件 : (IN(49H) & 3) == 00H -------------------------------------------------------------------- JOYSTICK -------------------------------------------------------------------- joystick port +---------+------+---------------------------+------------------+ |RW|A[7:0]| A[8] | D7|D6 | D5 |D4|D3|D2|D1|D0| function | +---------+------+---------------------------+------------------+ |R | 51H | SEL |-BL|-CS|USER|-T|-R|-L|-B|-F| joystick input | +---------+------+---------------------------+------------------+ SEL : joystick select : 0 = JOY1 / 1 = JOY2 -BL : video black : 0 = blank / 1 = no-black -CS : JOY2.pin8 -CS level (JOY2 only,JOY1 = 0) USER : JOY2.pin7 USER level (JOY2 only,JOY1 = 0) T : pin1 FOW level R : pin4 RIGHT level L : pin3 LEFT level B : pin2 BACK lebel F : fire switch : 0 = ON / 1 = OFF note:  SMC-777のみ内蔵。  SMC-70はサードパーティの拡張モジュール SMD-70 で追加可能だが、おそらく-BL信号は未サポート。 -------------------------------------------------------------------- I/O control (SMC-777) -------------------------------------------------------------------- +---------+-----------------------+------------------+ |RW|A[7:0]|D7|D6|D5|D4|D3|D2|D1|D0| function | +---------+-----------------------+------------------+ | W| 51H |--|--|--|OD|--|PA[2:0] | 1bit port out | +---------+-----------------------+------------------+ +--+----------------------------------+ |PA| OD function | OD=0 | OD=1 | +--+----------------------------------+ |7 | GFX_PALET SEL | col.gen | palet | |6 | TXT_PALET SEL | col.gen | palet | |5 | JOY2 -CS out | low | off | |4 | JOY2 U out | low | off | |3 | JOY2 T out | low | off | |2 | JOY2 R out | low | off | |1 | JOY2 L out | low | off | |0 | JOY2 B out | low | off | +--+----------------------------------+ -------------------------------------------------------------------- COLOR PALET -------------------------------------------------------------------- PALET +--+------+--------------------------+---------------+ |RW|A[7:0]| A[15:13]|A[13:12]|A[11:8]| D[7:4] |D[3:0]| +--+------+--------------------------+---------------+ | W| 52H | ------- |AD[1:0] |BB[3:0]|CD[3:0] |------| +--+------+--------------------------+---------------+ AD[1:0] : register select : R=00b / G=01b / B=10b BB[3:0] : COLOR CODE (0-15) CD[3:0] : level (0000b=dark,1111b=light) note:  SMC-777Cは内蔵 , SMC-777はオプションで追加可能 , SMC-70は拡張困難。  装着の有無はポート 1CH/1DHの -CP ビットで確認可能。  ポート 51Hで TEXT,GFX 別々にON/OFFの切り替えが可能。  表示ブランク期間にアクセスしないと画面にノイズが表示される。  ブランク期間の確認は、JOYSTICKポートの -BL 信号で行う。  SMC-70はTEXT/GFXのミキシング選択信号がカスタムIC内から出ていないため  TEXT,GFXで別々にパレットを掛けることは難しいと思われる。 -------------------------------------------------------------------- PSG (DCSG) -------------------------------------------------------------------- PSG +--+------+--------+ |RW|A[7:0]| D[7:0] | +--+------+--------+ | W| 53H | PSGD | +--+------+--------+ PSGD : SN76489AN write data note:  SMC-777/Cのみ内蔵 , SMC-70はサードパーティ製SMD-70で拡張可能 マニュアルにはPSGと記載されているがSN76489AN(DCSG)  SN76489AN のWAITがCPUのWAITに直結されているためアクセスウェイトがかかる。 クロック = CPUUCLK = 4.027975MHz -------------------------------------------------------------------- EXT ROM -------------------------------------------------------------------- +--+-------+-----------+------------+-------------------------+ |RW|A[7:0] | A[15:8] | D[7:0] | function | +--+-------+-----------+------------+-------------------------+ |R | 70H |EROM_A[7:0]|EROM_D[7:0] | EXT-ROM read | | W| 70H |-----------|EROM_A[15:8]| EXT-ROM address | +--+-------+-----------+------------+-------------------------+ note: SMC-70の拡張ROMスイッチに対応するROM オートインクリメント機能はなさそう。 -------------------------------------------------------------------- LIGHT PEN (I/O) -------------------------------------------------------------------- note: I/O 1984.8.P202- に掲載されていた SMC-777用のライトペンの製作記事によるもの。 SMC-70内蔵機能とは仕様が異なる。 -------------------------------------------------------------------- MIDI I/F -------------------------------------------------------------------- note: Oh!HITBIT Vol.6 に掲載されていた MIDI I/Fの製作記事によるもの。 -------------------------------------------------------------------- KANJI ROM / BASIC ROM -------------------------------------------------------------------- SUB-ROM port +--+-------+--------------------+--------------+-------------------------+ |RW|A[7:0] |A15|A14|A13|A[12:8] |D7| D[6:0] | function | +--+-------+--------------------+--------------+-------------------------+ |R | 7EH |---|---|L/R|RA[4:0] | KRD[7:0] | KANJI-ROM read | | W| 7EH |--------------------|--| JIS1[6:0] | KANJI-ROM addr | |R | 7FH | BRA[7:0] | BRD[7:0] | BASIC-ROM read | | W| 7FH |--------------------| BRA[15:8] | BASIC/KANJI-ROM addr | +--+-------+--------------------+--------------+-------------------------+ L/R : KANJI-ROM SEL : 0 = LEFT / 1 = RIGHT RA[4:0] : KANJI-ROM raster address JIS1A[6:0] : KANJI-ROM JIS first byte number BRA[15:0] : BASIC-ROM address / KANJI-ROM JIS second byte number (JIS2[6:0] = BRA[14:8]) note: SMC-70内蔵サブROMボード上にある、BASIC-ROM + 16x16ドット第一水準漢字ROM BASIC-ROMにはモニターROMも含まれていると思われる。 漢字ROMの部分はSMC-777用オプションと互換性がある。 -------------------------------------------------------------------- Graphic Video RAM -------------------------------------------------------------------- 640 x 400 x mono color , Interface : 未検証 +--+----+--------+-------+-------+-------+-------+-------+ |RW|A[7]| A[6:0] |A[15:8]|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 | +--+----+--------+-------+-------+-------+-------+-------+ |RW| 1 |GA[14:8]|GA[7:0]| ? | ? | ? | ? | ? | ? | ? | ? | +--+----+--------+-------+-------+-------+-------+-------+ GA = (Y/16)*0A0H + ((Y/2) MOD 8)*1000H + (X/4) F = (Y mod 2) P00 : pixel[X+0,F=0] P10 : pixel[X+1,F=0] P21 : pixel[X+2,F=1] P31 : pixel[X+3,F=1] 640 x 200 x 4color +--+----+--------+-------+-------+-------+-------+-------+ |RW|A[7]| A[6:0] |A[15:8]|D[7:6] |D[5:4] |D[3:2] |D[1:0] | +--+----+--------+-------+-------+-------+-------+-------+ |RW| 1 |GA[14:8]|GA[7:0]|P0[1:0]|P1[1:0]|P2[1:0]|P3[1:0]| +--+----+--------+-------+-------+-------+-------+-------+ GA = (Y/8)*0A0H + (Y MOD 8)*1000H + (X/4) P0 : pixel[X+0] P1 : pixel[X+1] P2 : pixel[X+2] P3 : pixel[X+3] 320 x 200 x 16color +--+--+--------+-------+-------+-------+ |RW|A7| A[6:0] |A[15:8]|D[7:4] |D[3:0] | +--+--+--------+-------+-------+-------+ |RW| 1|GA[14:8]|GA[7:0]|P0[3:0]|P1[3:0]| +--+--+--------+-------+-------+-------+ GA = (Y/8)*0A0H + (Y MOD 8)*1000H + (X/2) P0 = pixel[X+0] P1 = pixel[X+1] 160 x 80 x 16color x 4page : 推測値、未検証 +--+--+--------+-------+-------+-------+ |RW|A7| A[6:0] |A[15:8]|D[7:4] |D[3:0] | +--+--+--------+-------+-------+-------+ |RW| 1|GA[14:8]|GA[7:0]|P0[3:0]|P1[3:0]| +--+--+--------+-------+-------+-------+ GA = (Y/4)*0A0H + (Y MOD 4)*2000H + PAGE[1]*1000H + (X)*2 + PAGE[0] PAGE[1:0]] = page P0 = pixel[X+0] P1 = pixel[X+1] color generator map +-----+-------+------+------+---------------+ |color|640x400| 640x200 |320x200,160x80 | |code | |type1 |type2 | | +-----+-------+------+------+---------------+ | 0 | Black | Black | Black | | 1 | White | Red | Deep Blue | | 2 | - | Green | Bright Green | | 3 | - |Blue |White | Turquoise | | 4 | - | - | Red | | 5 | - | - | Brilliant Pink| | 6 | - | - | Yellow | | 7 | - | - | White | | 8 | - | - | Dark Green | | 9 | - | - | Moss Green | | 10 | - | - | Salmon | | 11 | - | - | Tan | | 12 | - | - | Ash Blue | | 13 | - | - | Light Blue | | 14 | - | - | Pale Pink | | 15 | - | - | Gray | +-----+-------+------+------+---------------+ note: SMC-777はGRAMがSRAM構成でノーウェイト。 SMC-70 はGRAMがDRAM構成で数クロックのアクセスウェイトが発生する模様。 カラーコード 0-7はテキスト色と同一のデジタル8色、配列が X,R,G,B の順で他の一般的なPCとは異なる。 -------------------------------------------------------------------- クロック周波数 -------------------------------------------------------------------- 発信源 : 32.2238MHz (32.2238 991-12 KSS2L) CPUCLK : 32.2238MHz /8 = 4.027975MHz -------------------------------------------------------------------- RS232C ボーレート設定 -------------------------------------------------------------------- 内蔵ポート DSW 1-7 : クロックセレクト(1つだけONにする) +-----+----------+-------------+--------------------+ | DSW | OFF | ON | function | +-----+----------+-------------+--------------------+ | 1 | 切断 | REFCLK/1 | RXD,TXD 接続 | | 2 | 切断 | REFCLK/2 | RXD,TXD 接続 | | 3 | 切断 | REFCLK/4 | RXD,TXD 接続 | | 4 | 切断 | REFCLK/8 | RXD,TXD 接続 | | 5 | 切断 | REFCLK/16 | RXD,TXD 接続 | | 6 | 切断 | REFCLK/64 | RXD,TXD 接続 | | 7 | 切断 | REFCLK/256 | RXD,TXD 接続 | +-----+----------+-------------+--------------------+ | 8 |CPUCLK/13 | CPUCLK/9 | REFCLK 選択 | +-----+----------+-------------+--------------------+ DSW 1-7 のうち1つだけONにする。複数ONにするとTTL出力が衝突。 CPUCLK/9 = 447.7553KHz CPUCLK/13 = 309.8442KHz ボーレート設定一覧 +-------------------------------+----------------+----+ | DSW | RXC,TXC bps |Reg.| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | (async x16) |Sel.| +-------------------------------+----------------+----+ |ON |OFF|OFF|OFF|OFF|OFF|OFF|OFF| 19365 bps (*) | 7 | |OFF|ON |OFF|OFF|OFF|OFF|OFF|OFF| 9282 bps | 6 | |OFF|OFF|ON |OFF|OFF|OFF|OFF|OFF| 4841 bps | 5 | |OFF|OFF|OFF|ON |OFF|OFF|OFF|OFF| 2421 bps | 4 | |OFF|OFF|OFF|OFF|ON |OFF|OFF|OFF| 1210 bps | 3 | |---|---|---|---|---|---|---|---| 605 bps | 2 | |OFF|OFF|OFF|OFF|OFF|ON |OFF|OFF| 303 bps | 1 | |OFF|OFF|OFF|OFF|OFF|OFF|ON |OFF| 76 bps | - | +-------------------------------+----------------+----+ |ON |OFF|OFF|OFF|OFF|OFF|OFF|ON | 27972 bps (*) | - | |OFF|ON |OFF|OFF|OFF|OFF|OFF|ON | 13986 bps | - | |OFF|OFF|ON |OFF|OFF|OFF|OFF|ON | 6993 bps | - | |OFF|OFF|OFF|ON |OFF|OFF|OFF|ON | 3497 bps | - | |OFF|OFF|OFF|OFF|ON |OFF|OFF|ON | 1748 bps | - | |OFF|OFF|OFF|OFF|OFF|ON |OFF|ON | 437 bps | - | |OFF|OFF|OFF|OFF|OFF|OFF|ON |ON | 109 bps | 0 | +-------------------------------+----------------+----+ (*)この設定は内蔵ポートの D8251A (intel) では動作を確認できなかった。要再確認。 Reg.Sel. はCPUでレジスタ設定できるタイプの設定値 -------------------------------------------------------------------- キーボードマトリクス -------------------------------------------------------------------- キーマトリクス +---+---+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ |ROW|PIN| COL-0 | COL-1 | COL-2 | COL-3 | COL-4 | COL-5 | COL-6 | COL-7 | COL-8 | COL-9 | +---+---+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ | A |P10| ----- | LF |CUR_DN |CUR_UP | CUR_RT| BS | ----- | HOME | DEL | INS |0 | B |P11|TEN_DN | ----- | HELP |CUR_LT | ~ | } | RUBOUT| + |TEN_RT | CLR |1 | C |P12|RETURN | ----- | \ | ----- | " | { | P |TEN_LT | - | ----- |2 | D |P13| > | ? | ----- | : | L | O | I | ((9) | )(0) | F1 |3 | E |P14|TEN_UP | < | M | K | J | U | Y | &(7) | *(8) | F2 |4 | F |P15| SPACE | N | B | H | G | T | R | %(5) | ^(6) | F3 |5 | G |P16| E | V | C | F | D | ----- | W | #(3) | $(4) | F4 |6 | H |P17| ESC | X | Z | S | A | Q | TAB | !(1) | @(2) | F5 |7 +---+---+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ | DLY | 1msec | 2msec | 3msec | 4msec | 5msec | 6msec | 7msec | 8msec | 9msec |10msec | +---+---+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ TEN_DN,TEN_UP,TEN_LT,TEN_RT : テンキーユニットのカーソルキー COL 0->9 の順にスキャンされる。同一COL内では ROW A->Hの順に変化が検出される。