PC−1251


CPU SC61860へ BASICへ ファイルへ   PC-1251のスペック
CPU SC61860A02 576KHz
SOUND カウンタを使用 1声
ROM 8K(内蔵)+16K(外部)
RAM 2KB+2KB+192
PC−1250に2KBのグレードアップRAMを載せ 4.2KBにしたポケットコンピュータ PC−1250も当時メーカ有償でPC−1251同等可 CPUがかなり変わっていて面白い(でも遅い) ある意味SC61860のスタンダードマシーン 個人的にPC−1245のようなスライドカバーが良かった
内蔵ROM &0000−&1FFF CPUに内蔵されているROM   プログラムROM &2000−&3FFF 特化ROM? BASIC ROMで数ヶ所 &2000〜&2004に特定のデータ(ID?)をチェックを行い 合致すれば&2000〜&3FFFをアクセスする PC−1252等、実行専用の特殊なモデル用領域か?     &4000−&7FFF BAISCROM   CPUのFO5端子でコントロールされいます PC−1245/50/51/55では16KBになります &4000−&7FFFが領域になります また数バージョンがありエントリーアドレスが変わってしまい CALL文で動作しない場合があります     バージョン  PC−1250/51 &7FFFが&F0がバージョン0                   &00がバージョン1   拡張RAM &8000−&BFFFが領域 CPUのFO4端子でコントロールされています 特定のモデルのみ搭載しているRAMになります 改造(I/O 1986年 6月号等)によって PC−1245に16KBに増設して計18KBに記事があります   PC−1245/50なし PC−1251   2KB PC−1255   2KB×4   基本RAM領域 &C000−&DFFF &C000−&C7FF(残りミラー?) どの機種でも搭載しているRAMでFO3端子でコントロールされています   DISP領域 &F800−&F8BF SC43636を使用、CPUのBO8端子でコントロールされています LSI内には64バイト×3の計192バイトのRAMが内蔵 LCDに文字やドットを表示(1文字5バイト)するメモリ領域 “PRO”や“RUN”等シンボル表示 表示されないRAM領域にはキーデータ等にワークエリアとして使用 LCDは24桁×1行、ROMにフォントデータを持ち グラフィックで文字表示を行ないます DISPエリア(表示用RAM)は&F800からなのですが 1バイトは縦1ドットでBit0が最上でBit6が最下(Bit7は無視) 左12桁と右12桁2つに分け、 左12桁が左端から右へ&F800〜&F83Fから 右12桁が左端から右へ&F840〜&F87Fからとなります     I/Oポート  IA8:( 入力) キーデータ  IA7:(入出力) キーデータ、キーライン  IA6:(入出力) キーデータ、キーライン  IA5:(入出力) キーデータ、キーライン  IA4:(入出力) キーデータ、キーライン  IA3:(入出力) キーデータ、キーライン  IA2:(入出力) キーデータ、キーライン  IA1:(入出力) キーデータ、キーライン    IB8:(入出力) 外部端子  IB7:(入出力) 外部端子  IB6:(入出力) 外部端子  IB5:(入出力) 外部端子  IB4:( 入力) BRKキー  IB3:( 出力) キーライン  IB2:( 出力) キーライン  IB1:( 出力) キーライン    FO5:( 出力) プログラムROM /CE  FO4:( 出力) 拡張RAM    /CE  FO3:( 出力) 基本RAM    /CE  FO2:( 出力) 外部端子  FO1:( 出力) 外部端子   コントロール・ポート(出力)  Bit7:−  Bit6:BZ3 XOUT、XIN制御  Bit5:BZ2  Bit4:BZ1  Bit3:OFF パワーダウン   1=オン、0=オフ  Bit2:HLT クロック停止   1=オン、0=オフ  Bit1:CL  カウンタリセット 1=オン、0=オフ  Bit0:DIS LCD表示    1=オン、0=オフ   ・−−−−−−−−−−−−−−−−−−−−−−−−−・   |BZ3 BZ2 BZ1| Xout | Xin  |   |−−−−−−−−−−−+−−−−−−+−−−−−−|   | 1   1   1 |Xinの信号|  可   |   | 1   1   0 |Xinの信号|  可   |   | 1   0   1 |HIGH  |  可   |   | 1   0   0 |LOW   |  可   |   | 0   1   1 |4kHz  | 不  可 |   | 0   1   0 |2kHz  | 不  可 |   | 0   0   1 |HIGH  | 不  可 |   | 0   0   0 |LOW   | 不  可 |   ・−−−−−−−−−−−−−−−−−−−−−−−−−・     TEST(入力)  Bit7:Xinの信号  Bit6:TEST端子の信号  Bit5: −  Bit4: −  Bit3:KONの信号  Bit2: −  Bit1:C2 カウンタ  2msec.  Bit0:C5 カウンタ 0.5sec.       外部端子 本体LCD部分が上、手前のキーボード部分が下として 上から順に  12: ―      MTout2 CMT出力データ音声  11:GND     GND  10:VGG     VGG    6V  9:FO1 (出力)BUSY   デバイスデータ送信*  8:FO2 (出力)Din    デバイス出力データ*  7:Xin (入力)MTin   CMT入力データ  6:Xout(出力)MTout1 CMT出力データ  5:IB8 (入力)Dout   デバイスからの出力データ*  4:IB7 (入力)ACK    デバイスデータ受信*  3:IB6 (出力)SEL2   デバイス     *  2:IB5 (出力)SEL1   CMTリモート  *    1:FG            シールド    注)ピンナンバはCE−125基準です    回路図によっては“2:IB5”が1ピンとなってずれる場合があります  *オープンドレイン出力の為、プルダウンにする必要あり   プリンタ、CMT−IFを接続するようになっていますが ROMルーチンを見るかぎり 他の周辺機器がアクセス出来るようになっているみたいです CMT−IF以外は外部周辺機器のCPUでシリアル通信を行い 最初にアクセスするデバイスコマンド指定 各デバイスごとに数値で送られている?(未確認)  &70:SIO SETCOM  &71:SIO OUTSTAT  &73:PRT LPRINT  &75:SIO CSAVE  &77:SIO INSTAT  &7A:SIO MAERGE  &7C:??? ROM       ブザー CPUのXout端子から出力を行ないます XoutはCPU内のカウンタ(LCDドライバクロック用2kHz)を利用し、 コントロールポート内のBZによって4kHzまたは2kHzの出力を行います またテープ入出力の際にも音が出力するようになっています      CE−124の回路図(未確認)       TESTモード ALL RESETを押すとTES端子も同時に押されることになっています RES端子、TES端子はLになります リセットは&0000番地にジャンプして 長押ししていると1回だけリセットになり、押している間TES端子はLのまま 内蔵ROMのプログラムは実行され続けられます 長押し続けることによりTESTモードの判断を行なう事になります 判断はTEST命令の  Bit6 1=RES、TES端子L、0=RES、TES端子H で行なわれます リセットSWを離すとRES端子、TES端子はHになります     キーボード IB1〜3、IA1〜8の組み合わせによって キースキャンを行ないます。   横のラインIB1〜IB3、IA1〜IA7のうち1つだけHにして 縦のラインIA1〜IA8を読むことでボタンが押されたか判断できます   <例>[ENTER]キーのチェック  IA6のみHにする  IA8を読む  押されていればIA6のHがIA8まで繋がるので   1=オン   0=オフ  となります         メモリ &1172:Y −> X 入力:Y=データ、J=&01 出力:X=Yの内容 使用:P、Q XレジスタにYの内容を転送します MVB命令でブロック転送している為J=&01にする     &1177:X −> Y 入力:X=データ、J=&01 出力:Y=Xの内容 使用:P、Q XレジスタにYの内容を転送します MVB命令でブロック転送している為J=&01にする     &11C7:PUSH X 入力:X、J=&01 出力:スタック+2 使用:A、P、Q、R Xレジスタの内容をスタックに保存します MVB命令でブロック転送している為J=&01にする     &11D2:POP X 出力:X、J=&01、スタック−2 使用:A、P、Q、R スタックの内容をXに取り出します MVB命令でブロック転送している為J=&01にする     &11E0:LCDオン 使用:A、P、R5F コントロール・ポートに&01を出力してLCD表示します     &11E5:LCDオフ 使用:A、P、R5F コントロール・ポートに&00を出力してLCD消去します     &11E9:BA −> X 入力:BA=data    J =&01 出力:X =BA 使用:BA、X、P、Q XレジスタにBAの内容を転送します MVB命令でブロック転送している為J=&01にする     &11EE:BA −> Y 入力:BA=data    J =&01 出力:Y =BA 使用:BA、Y、P、Q YレジスタにBAの内容を転送します MVB命令でブロック転送している為J=&01にする     &400C:DISP1行転送 入力:R20〜R37=表示バッファ(左端〜右端)    R0A    =カーソル位置(表示バッファのレジスタ)    J=&01 出力:&C6E9  =カーソル位置 &20〜&37 使用:BA、X、Y、K、L、P、Q レジスタを1行(24文字)出力バッファとして それに対応する内部コードの全文字出力を行います R0Aは表示バッファR20〜R37に対応する場所のカーソル指定で 左端R20だと&20、右端&37だと&37が出力され 後でカーソル点滅等の作業に使用する為のものです DISPエリアに適切にパターン転送するだけなので LCDには表示されません 表示するには&11E0をコールする必要があります     &C6E1−&C6E2:BASICスタートアドレス &C6E3−&C6E4:BASICエンド アドレス   &C7B0−&C7FF:バッファ   &F8BA−&F8BB:オートパワーオフ用タイマ   &F8BF      :キーコード
Home へ戻る