再稼働はまだか(2)

 34℃を超える猛暑が続く中、理科が分からぬ間抜け女(都知事らしいが?)が偉そうに冷房の効いた都庁様でほざいている模様↓

www.sankei.com

 まあ都合の良い時だけ狙いすました様に体調不良になる都知事さんだから自分は冷房の効いた施設で(まあ、老婆だから突然の体調不良にはご用心(皮肉))参議院選挙の結果を見つつ国政復帰を狙うのは・・・まあ無理でしょうな。

 一方、安心より安全が大事な実務空間の産業家は当然ながら今の状況を見過ごせる筈もなく外信報道ではあるが↓

jp.reuters.com

 まあ、広島出身で何もしないのがモットー(あと財務省の操り人形)なきっしーとしては参議院選が終わる迄は当然ながら何もしない訳でカレンダー上は7月10日迄は少なくともこの猛暑に耐えるしか無いのだろうが人間は太陽を制御出来ないから自称再生エネルギーと称する環境ファクター不明の不安定電源に頼る様ではいつ停電が起きるか解ったものではない。古くは米国で電力自由化で大都市で長時間停電が発生した事があるそうだが(その後の出生率増加含めて)我が国で昼夜問わずもしも停電が発生したら熱中症による死傷者が発生する可能性は充分にある(特に人口密集地、都心部)。そんな小学生でも解る事が安全より安心の小池百合子老婆には(お年のせいか、理科分からん為か)下民に節約しろの一言ですませるらしい(流石風見鶏老婆)。まだ温泉大好き舛添君がまともに見えるのはきっとこの猛暑のせいだろう(多分)。

 例によってこの状況を招いた張本人は民主党のカンチョクトと禿のコンビというのは誰でも知ってる話ではあるが地味にまだまだ民主党政権の呪いが続いている訳で今度の選挙で民主党は整数以下の領域に落とし込まないと何度でもこのような人的災害が繰り返されるし奴ら責任転化だけは得意だしぽっぽを筆頭とした鳥頭だしさっさと得意の内ゲバで自滅すれば良いのに・・・と猛暑の中思いましたとさ(暑い)。

 

Motorola MC6800(その5)

 34℃という猛暑が続きますが(自称含めた)意識高い系の環境活動家と築地や変態空間で禄に取材もせず「転写記事モドキ」で自爆を繰り返している上から目線が滑稽なメディア様はこの猛暑の中でも28℃に環境調整などと生ぬるい事ではなく「無冷房・無電源による地球環境を守る活動にご自身のお命を賭ける覚悟(理念)」であられるかと存じます。理念が現実世界を凌駕する自称文系インテリ(理科科目は除く)様はさぞかし日頃の言動に反しない庶民共が付き従うご立派な行動規範を率先されるのでしょう(ですよね〜)。そうそう念の為に申し上げておきますとスマホも電気を充電器経由で充電する仕掛けなのでスマホを使う=地球環境破壊行為なのですよ(貴方方の価値基準では)。ご留意頂きたく(憮然)。

------------------------------------------------------------------------------------------------------------------

(前回からの続き)

 ハードウェアの事柄ばかりでソフトウェアに関する記載が少なかったのでMC6800というか初めて体験したマイクロコンピュータ(というかノイマンマシン)で思った事を少しだけ書いてみる。今でもソフトは不得手故、見当違いで大雑把な印象に過ぎないけれど。

11.MC6800のプログラミングモデル

 

MC6800 programming model

www.st.rim.or.jp

 今サーチしたら1977年発表の日立製作所さんの社外報(日立評論1977年5月号:8ビットマイクロコンピュータHMCS6800の特徴と基本構成)がヒットしたのでリンクを記す↓

https://www.hitachihyoron.com/jp/pdf/1977/05/1977_05_10.pdf

 高校の物理部時代にH68/TRの関連マニュアルを(中身も理解出来ずに)読んでいた記憶(錯覚かもしれない)でこのような類の構成図があったような気もする(自信なし)。それはともかく当時の日立製作所富士通と並んでMotorola MC6800(後にMC6809,MC6801)のセカンドソースでありintel 8080A、8085AやZilog Z80のセカンドソース(RE含む)のNEC東芝、三菱、後のシャープ他のメーカとは異なる戦略を取っていた。上記マニュアルの大半の図面と情報は無論オリジナルのMotorola社のドキュメントの翻訳であるがどういう経緯か日立も富士通もクロックジェネレータだけはオリジナルデザインのチップで(MC6871Bのハーメチックシール製法のライセンスの問題とか?)設計されていた。後に気づくがMC6800の∮1、∮2のノンオーバラップ2相クロックは5V近くまでスイングを求めているものの実用的には(松本さんの回路の如く)7405の如きオープンコレクタ+プルアップ抵抗で充分安定に動作するのでi8224の如き+12Vを必要とするintel 8080Aに比べて少なくともクロック系は単純な構成で済んだ(+12V、−5VもCPUの為に必要とする事は無かった)。いつのまにやらハードウェアの話に偏ってしまったので話を戻すと

 

M6800プログラミングモデル

 をハードウェアが安定動作するようになってからはこれらのレジスタモデルと命令セットを暗記出来る様になる。

12.最初のプログラム

 松本吉彦さんの名著「私だけのマイコン設計&製作」のハードウェア製作の最後の部分に動作確認の為のプログラムの記載がある。これをハードウェアの動作が安定するまえ永遠に繰り返すのだが

Adrs   Inst.  operand  mnemonic

FF00 7C FC00 INC FC00

FF03 7E FF00 JMP FF00

 といった感じの機械語プログラムであった。MC6800はメモリを直接アクセスする命令が充実しているので上記プログラムは

・FC00番地のデータを+1する

・それを繰り返す

 動作となる。この程度の命令では然程抵抗感無く理解出来たのだがさっぱり分からなかったのが

13.インデックスレジスタ

 であった。これは松本さんのプログラムがコードを減らしたい為か

FF00 CE 0080 LDX #$0080

FF03 6F 00   L1: CLR 0,X

FF05 09      DEX

FF06 26 FB    BNE L1

 といったコードで記載されていたのでインデックスレジスタ(以下X)の終了条件が0以外の場合にはどうすれば良いかさっぱり分からなかったのです。まあCPXという命令を用いればそれが可能となる訳ですが後の章にならないと出てこなかった(或いは見落とした)為に

MC6800のXレジスタはインデックスレジスタ(ポインタ)でもあり、

ゼロフラグが変化するループカウンタでもある

 というのが理解出来る迄結構時間を要した記憶がある。逆に80系ではBC、DEレジスタペアをポインタとして使用するとフラグレジスタは変化せず変化するのはB,C,D,E等8ビットレジスタとして使用する場合に限られるのだから細かいかもしれないが設計思想の違いを感じる気がしないでもない。実の処MC6800がPDP11のミニコン的なアーキテクチャを参考にしたという件はMotorola系のプロパガンダとして良く出てくるがそもそもPDP11を知らなかったのでプログラムの組みやすさがどうちゃらとかいう宗教論争より

何でも良いからやりたい事が簡単に実現出来る

例:LEDに表示させる、VRAMに文字表示させ、スクロールさせる、カセットにプログラムを保存出来る、等々

 手段であればプロセサアーキテクチャなぞどうでも良いとの悟りの境地に到達するのは16ビットマイコンの末期頃ではなかったかと記憶している。その頃は会社で組込みシステム三昧な日々を送っていたので仕事と趣味は別次元だからアーキテクチャがどうだから等という贅沢は許されない(あたりまえ)。

14.自然と覚える機械語命令セット

 そうは言いつつ初めてのマイコンで当時はそれしか自分が作って使えるマイコンボードは無かったので前述の如く松本吉彦さんの本を起点としてトラ技やインタフェース誌、初期の頃はRAM誌やASCII誌等も参考にしつつ機械語アセンブラで8ビットマイコンのプログラムを組んでいたが実用一点張り(EPROMの書込みを行う、逆アセンブラを移植する等)でゲームの類はTinyBasicのStarTrek以外はほぼ無かったのは私の性癖(ゲームとは他人が作ったプログラムをユーザとしてそのフローを流すだけで得るモノは何も無く、何度も繰り返し同じようなことを実験動物の如く強制されるのが嫌だった)の為であろうと思っている。似たような事を繰り返すのが不得手(猫型人間なので)な性分故、その最たるゲームというのは相性が悪かったのだろう。おかげさまで一大産業に成長したゲーム機産業とは無縁であるのは幸運であったと個人的には考えている。まあそういう事だからプログラムが上達する事もさして無く情報系には然程関心は無かったのだが当時必修科目だったFORTRAN(66の時代です:)のような高級言語、特にコンパイラ系には興味を唆られた記憶はあるが雲の上の存在(JOBがABENDしてTRACEBACKを喰らうと途方に暮れていた苦い思い出も。まあゼロ除算だったりループカウントがマイナスだったりしたのだが)でMC6800界隈ではASCII誌にTL/1という8ビット変数固定の1パスコンパイラがあって書式がPascal風というかPL/1を標榜した作者の理念は立派で8ビット変数に限られるがオンメモリコンパイルも充分速く1MhzのMC6800でも充分実用になったが結局私が必要とした低レベル処理はアセンブラなり機械語でこつこつハンドアセンブルMC6809ではセルフアセンブラ)したのが当時の実態でありました。

 話を戻すとMC6800は70種類程度の命令セットがあるのだけどほぼ全ての命令を記憶出来たのは命令セットとアドレッシング・モードが規則的で例えば

 CLR A 4F、CLR B 5F、CLR 0,X 6F 00、CLR 7F XXYY

 といった風に命令に規則性があったので覚えやすかったという実態がある。これはハンドアセンブルする時には大変便利で暫くすると命令表をほぼ見ないで機械語プログラムが書けるようになる(多分、誰でもそういう状況に追い込まれるとそうなるのでは)が相対分岐のオフセット計算だけは面倒で松本モニタのBコマンドで自動計算していた(何度でも松本吉彦さんに感謝)がMC6809でオフセットが16ビットにも拡張されたのでそこは自分で機能追加した記憶もある。

15.相対分岐

 Motorola系信者さんが必ず引き合いに出すのが相対分岐命令で確かに絶対分岐命令と異なりプログラムの配置を変えても動作するのは有難いが所詮±127バイトであって故にMotorola系優位とは恥ずかしくて言えなかったがこれが16ビットオフセットが可能なMC6809となるとレジスタ強化とアドレッシング・モードの充実で非常に使い勝手が良いマイクロプロセサとなりMicroware OS-9の如きそのアーキテクチャを積極的に活用したマルチタスクOSが8ビットCPUの領域で登場する事になるのは後々のお話

 

MC6809 programming model

 マイコンアーキテクチャがどうちゃらと抜かす割にプログラミングモデルも出せないマイクロソフトご出身の社長さんもいらっしゃるそうなのでここはMC6809アーキテクチャの片鱗であるプログラミングモデルをMotorolaのドキュメントから示しておこうか(無論、皮肉ですよ)。当時はPosition Independentと称して後々のMC68020でも実装されるアドレッシングモードであるがこれが無いとOS-9uClinuxの様なMMU無しでマルチタスクの実現は難しかっただろうと個人的には考えている。

 今やプロセサアーキテクチャ論争はGPUやAIアクセラレータの如き専用処理プロセサ・コントローラが花盛りでこの論争が決着するのが何時頃になるかは興味を唆るし疑似的な量子コンピュータもいつかはエンドユーザにも提供される日が来るだろうからノイマンマシン全盛の時代はまだまだ続くだろうし、それを凌駕するだけのコンピュータアーキテクトは所謂IT詐欺師業界には存在しないのだろうと思っている。冷静に考えるとコンピュータアーキテクチャが進化しないのは市場がそれで満足している為でそうでないニッチな市場(例えばML)が新たなアーキテクチャの萌芽となるのが技術の進展でありその意味ではIntel,Microsoftとその手下共によるコンピュータアーキテクチャデフレの大罪は深く重いがそれを凌駕出来なかった挑戦者・競争者にも相応な事由があるのだろう。世の中自由競争である(リアル指向としての)。

 

Motorola MC6800/MC6809(その4)

 その3で書き終えたかと思ったがCRTC関連を書き漏らしてたのに気付きその4として追補します。

(前回からの続き)

10.HD46505

 後にIBM PC(初代)にも採用された日立製作所(現Renesas)の超有名なCRTコントローラである。当時のCRTCはラインバッファ・DMA転送型のuPD3301、intel8275とVRAM型のMC6847、HD46505が安価な外販品としては入手が容易で当時常用してた亜土電子から入手出来た。そういえば当時は銀行振込は窓口業務だったので手間の掛かる郵便振込は使用せず現金書留を使っていた気がする。なので無駄にハンコを押す現金書留文化に慣れていた為か最近話題のハンコ廃止文化も「ふう〜ん。改革すべき根源は官僚組織:特に勘違い会計部門の財務省:は他にあるのに官僚って政治家をあやつり人形にしてガス抜きプレイが得意なのは伝統芸能だな〜」と思ったりもする。抜くべきモノは他にも沢山あるだろうにね(不健全な意味ではなく)。

----------------------------------------------------------------------------------

www.st.rim.or.jp

 発端はやはりトラ技の記事でMC6847のVDGには満足していたがアセンブラを使うようになると40x25、出来れば80x25文字表示のCRTディスプレイボードが欲しくなってくる。この頃にはRFモジュレータではなくTP14というテストポイントからコンポジットビデオ入力するTV改造記事が掲載される様になり寮内に捨てられていたモノクロTVを拾ってきてTP14端子を見つけてコンポジットビデオ入力用のピンジャックを取り付けた。これで80x25の高解像度(当時)へのディスプレイ対応完了(笑)。

 HD46505はMotorolaでもMC6845の名でクロスセカンドソース供給された(当時はMotorola半導体セクタの開発力も限られておりHD46504(MC6844) DMAC、そして本HD46505(MC6845) CRTC、後にはMC68450 DMACも日立が開発したチップをMotorolaがセカンドソース供給していたのは古き善き美しき思ひ出。さてHD46505はキャラクタジェネレータをMC6847のように内蔵してはいないのでキャラクタジェネレータから準備する必要がある。当時はキャラクタジェネレータという専用ROMが販売されていたが2716EPROMを掛ける環境が既にあったのでどこからか忘れたが8x8のANK(Alpha Numerikc Kana)フォントデータを入手或いはダンプリストを打ち込んで2716EPROMをキャラジェネとして使用した。HD46505は事実上CRTCカウンタとCGアクセス用のタイミングジェネレータだけでCPUとのVRAMインタフェースやCGとのPISO(Paralle In Serial Out)俗に言うシフトレジスタは内蔵しておらずそれらはユーザが作成したいビデオフォーマットに合わせて設計する必要があった。とはいえステートマシンを設計するではなく単にPISOするビット数(8ビットCGなのでLS166の如き8→1のPISO)で構成すれば良い。これまたトラ技の記事を参考にしてMC6800/6809のバス構成(当時は80系のバスを非同期バス、6800系のバスをE(∮2)クロックに同期するので同期バスと呼ばれていた)を活用したサイクルスチールDMAと呼ばれるCRTCのビデオアクセスとCPUからのVRAMアクセスをEクロックのHigh区間はCPU、Low区間をCRTCアクセスとしてCRTCとCPUがVRAMをアクセス競合を避ける為の調停回路の設計が不要でこれはApple][も含めた6800系同期バスの利点でもあった(ご承知の通りApple][ではCRTCをDRAMコントローラとしても利用していた:当時としてはよく見られた設計:のでDRAMは過剰にリフレッシュされる事になりApple][のDRAMは熱くなる傾向にあったと記憶している)のでそれにあやかる意図もあった。構成を纏めると:

・HD46505 CRTC

 ・VRAM 2114x4 2KB 80x25=2000文字

 ・CG 2716x1 ANKのみ

 ・Dot clock 16Mhz

 な構成であった。1MhzのCPUクロックで80x25文字を表示させる為に高速のSRAM(2114の高速バージョン)で500ns以内に2個のSRAMをパラで読み取る?とか言ったトリックを使っていた不確かな記憶も。。。おまけに40x25もサポートしたかったのでDot clockを8Mhzに切り替える回路も組み込んで40x25、80x25の表示フォーマットをサポートした記憶がある。ドットクロックとCPUのEクロックとの位相関係等妖しい面も少なからずあったが一品で動作したので当時はそれで由として以後はVDGをバックアップとし(モニタROMも書き換え)HD46505ベースのVRAMで構成するようになった。ここまで来るとポンコツ手作りではあるけれど80x25のモノクロディスプレイに実用的な表示を行える様になったので6809セルフアセンブラでの開発が随分捗った記憶がある。

以上

 

Motorola MC6800(その3)

 暑い暑い中続き。梅雨も空けない内から最高気温34℃の日が続くとはこれ如何に。異常気象がどうちゃらとか環境が〜とかおっしゃってるメディア様や意識高い系(でも理科知識はあやしい官能系な活動家さんたち含む)の方々はエネルギー政策に即効性の高い原子力発電所施設の再稼働に何故に消極的(その多くは反対)なのか全く理解に苦しむ。不幸にも偶発性の停電(電力会社は予測可能な事態には監督省庁の協力を得つつ最大限以上(今でも最大限を超えつつあるのにメディア様は・・・(以下略))の努力を重ねているのに理系である必要は無い(鳩山由紀夫やカンチョクトの如き民主党政権の馬鹿・狂人を思い起こすので)から小池百合子の如き情念女でない実務家を知事レベルに据えるべきなのではと思う次第。その意味では官僚出身者の天下りでも構わないがマクロ経済学の知識ぐらいは備えていないと(備えていても)財務省の木っ端役人さんに顎で使われるのでしょうねぇ(予算を人質にして)。

 暗黒卿によると財務省の奴隷のきっしー(まあ生物学的に財務省ファミリーだし本人だけの問題ではないのかもしれないが。そしてなるべくして成ったとも言えるのだろうが)は安倍・菅政権時代に冷や飯を食わされつづけた腹いせもあってか相当にエグい反動制裁人事を行使しているそうだがまあこれも政治なのだろう。それにしてもたかが会計部門の分際でありながら財務省って身の程知らずの国家感亡きマクロ経済学も解らない財務次官様を抱えるおバカ官僚組織なんだねぇ(OBの暗黒卿が暴露してるのだからそういう側面も少なからずあるのだろう)。ウクライナ情勢含めたエネルギー問題にしても経産省はもっと積極的に行動しても(先の原子力発電所再稼働然り)しても良さそうに思えるのだがこれも財務省の意向が・・・とか陰謀論に走ってしまいそう。。。

---------------------------------------------------------------------------------------------------------------------

(前回からの続き)

8.サッポロシティスタンダート

 大昔のマイコンボードなりパソコン(PCという言葉が一般化したのはIBM PC(元祖)登場以降)の補助記憶装置はフロッピーが登場する迄はASR33等のテレタイプの紙テープパンチャ/リーダが使える企業や大学の研究室以外ではカセットテープに記憶・再生するのが当時は一般的だった(まあブルジョワさんはApple][のDISK][やYD174、YD274といった国産や舶来のフロッピーディスク(当時は8インチや5インチ)を使える金持ちもいた様だがそれは例外的状況(私の視点では)でまあ貧乏人はオーディオカセットテープを補助記憶として利用してた訳です。確かPC8001は600bpsか1200bps程度で他社も同程度の転送速度だったと記憶している(まあ、CPUがZ80MC6800等の8ビットCPUのご時世だったので)。そういった中でトラ技に個性的にな文体を書かれる北海道の大学系の著者の方がカンサスシティスタンダートの上位互換を謳ったサッポロシティスタンダートなるオーディオカセットインターフェースを提唱し記事として連載された。これは300bpsのカンサスに対して当時としては画期的だった3200bpsという高速で高度なアナログモデム技術を使用しないほぼディジタル回路で構成されたカセットインタフェースで当時は流行し110ボーのトーンバーストだったのでそれに飛びついた。構成は74LSシリーズ10個程度で難しい箇所や微妙な調整を要する回路も無かったので前述のTinyBasicもサッポロ方式でセーブ・ロードしていた(後にROM化)したと記憶している。

ja.wikipedia.org

 後々MC6809でセルフアセンブラ(これもROM化して利用)でアセンブラソースもサッポロ方式でセーブ・ロードしてセルフアンブルしていたものである。

9.MC6809

 そうした中で世間ではMC6800の改良型(にしては大規模な)のMC6809MPUがMotorolaから発表された。当時はASCII、I/O、(RAM誌は衰退していつの間にか廃刊)、マイコンといった雑誌でMC6809を搭載したパソコンが発表されチップも亜土電子や若松から入手可能な状態となっていた。ご承知の通りMC6809MC6800のバスと上位互換を持っているからEクロックを∮2と読み替えてQクロックを積極的に活用している場面は少なかったのでMC6802CPUボードの設計をベースにしてハードウェア的にはピン配列含めてMC6809に置き換える事は当時学生だった自分でも容易でMC6802CPUボード似のHD6809MPUを用いたCPUボードを亜土電子のNo.807にて配線でハンダ付けして6802そっくりな6809ボードを製作した。

www.st.rim.or.jp

 私が亜土電子から通販で購入した6809は当時セカンドソース(後に6309や6301、H16問題でMotorolaとは破談・決裂)だった日立製作所製のHD6809が送っれてきたのでそれを使っていた。この頃は日本の半導体業界は4116DRAMといったメモリ分野が特に強く我が国の半導体業界は非常に活力のあった時代でもあった(遠い目)。構成は:

MC6809 HD6809P 1Mhzクロック、4MhzのXtalからCPU内蔵発振器でE,Qクロックを生成。確かQクロックはMC6800との互換性維持の為に全く使わなかった記憶が。。。

・RAM 2114x2 1KB、マップもMC6802ボードと同じ。つまりCPUボードを6802→6809に置き換えるスタイルで当時の自作マイコンでは良くみられたスタイル

・EPROM 2716x1、2732x3 これも6802ボードと同じ構成で6800のコードが6809のコードになったイメージ

・グルーロジック 74LSで構成しマップも同じだったのでほぼ同じ回路構成

纏めると

・MC(HD)6809P MPU(CPU)

 ・RAM 2114x2 1KB

 ・EPROM 2716x1、2732x3

 とまあ極めて安直(堅実とも)にMC6809ボードを製作したのであった。当時はインタフェース誌(黒い表紙の排他的印象の強い専門者向け雑誌の印象が強かった。いまのそれとは隔絶の感あり)に6809の特集が組まれて6809セルフアセンブラのダンプリストも公開され(同チップの特徴である位置独立でプログラムされてたのでどこに配置しても動作した)それを組み込んで6809ではセルフアセンブルが可能となったのは大きな進歩(ミニコン風なラインエディタも内蔵されてる6KB程度のコンパクトなセルフアセンブラで大変お世話になった)で確か不完全ながらTinyBasicも6809用にポーティングした記憶がある。6809の命令セットは基本的には6800のソース上位互換(バイナリ互換は無い)で例えば

 INX → LEAX +1,X

といった感じで変換できた(クロスアセンブラではマクロで自動置換:FLEX9のASMなど:という便利機能もあった)ので機械語ベースだった(6800の機械語はほぼ暗記してたのは手入力DMAで二進法で機械語を入力してたのが大きい)当時の開発環境では便利なものであった。6809ボードが動作するようになるとモニタプログラムから徐々に環境を整えてセルフアセンブラが使えるようになると徐々に6809を主用するようになったが当時は6800用のソフトも存在していたので適時CPUボードを交換して活用していた(今でもどこかに死蔵されてる筈・・・)。

 社会人になってからも暇な時にマイコンボード製作趣味は続けるのだがそれは機会と気分が乗ればまたいつか書いてみたいと思います。

 

Motorola MC6800(その2)

 今日はとんでもなく暑い日で予想最高気温34℃の日が続くそうで意識高い系の環境活動家(自称含む)さんはこの猛暑に省エネ(たかが電気、でしたっけ?黄色い魔法楽団のお爺さん:)はきっと魔法の力で猛暑を乗り切られるのでしょう(マスクしながら)。。。本当早く原発再稼働しないと国が滅びますなぁ。関西(九州含む)原発稼働率が高いのは偶然では無い気がする。邪推するに小池百合子よりは維新の大阪都知事(わざと間違えてます)の方がまともであったという事だろうか。それとも江戸の末裔は武士は食わねど高楊枝なのかなぁ(皮肉)。。。

----------------------------------------------------------------------------------------------------------------------

(前回からの続き)

3.I/O拡張

 400KhzではあるがM6800CPU(Motorola的にはMPUだが意味は同じ。反面MCUはMicroComputerUnitだからシングルチップマイコン和製英語ではワンチップマイコン)がそれに相当する。分かりにくいがアフターバーナーとオーグメンターとリヒートのようなもの(どれも意味は同じ)という事か)が安定して動作するようになったので早速I/Oボードを松本さんの本を参考に製作した。同書では確かSSI-IOボードと称していたが8ビットDFFが高かったので4ビットの4000シリーズ(型番忘れた)を2個使って8ビット出力ポートのボードを手配線で製作した(以後全て手配線なので適時省略)。まあこれは練習のようなもので実用性は皆無だったので次に当時トラ技を購入するようになって(学生時代の友達の影響が大きい)秋葉原の亜土電子の存在を知る。以後の通販は亜土電子が主体で場合によって若松だったり鈴商だったり千石だったりと20世紀末に秋葉原電子街の有名処に注文する様になった。ああそうだ現役超有名な秋月電子信越電子通商から社号変更したばかりで(信越電子と広告には記載されていた気がする))を忘れる訳には行かない。そこで製作したIOボード(松本吉彦さんの書で言う処のLSI-IOボード)をベースにして:

・MC6821 PIAx1 8ビットx2+ハンドシェークポート

・MC6850 ACIAx1 UART、簡易モデム制御(CTS,DCD,CTRのみ)付

・グルーロジック CMOSは卒業してLSTTLで構成する

・カセットインタフェース 松本さんの本を参考にして110ボーのトーンバーストのカセットインタフェースを小基板に製作しIOボードとケーブルで接続。これはIOボードを汎化したくて余計な回路を搭載したくなかったから。

 な構成であった。纏めると

・MC6821 PIAx1

・MC6850 ACIAx1

 ・110ボーのトーンバーストカセットインタフェース

 であった。この中で最も役立ったのはカセットインタフェースであってIPL(BootstrapLoaderとも)をトグルスイッチの手動DMAで打ち込んでプログラムは110ボー(桁間違っていません。百十ボーです。TK80と同じぐらいの転送速度)でのんびりカセットテープからプログラムをロードしていた。かような事情から電源を切るには勇気(RAM上のプログラムが消失するので)が入るが高価であったCMOS RAMでバッテリバックアップする気は全く無かった(この時期には若さ故か二進法でトグルSWから機械語を二進数でパチパチ入力するのも結構速く行えるようになっていた)のでEPROMライタを製作(これも松本吉彦さんのトラ技の2716プログラマを参照に上記PIAではなくポート数の関係で8255をLS00でインタフェースして接続)する迄パチパチやってたのでした。今から思えば気の遠くなるような話だが当時はそれしか方法が無かったし学生で時間と気力(本件に関するのみ)だけはあったのでこつこつやっておりました。

4.CRTディスプレイインタフェースボード

 廣済堂のRAM誌でΛ-1の記事にMC6847VDG+MC1372を用いてCRTディスプレイを製作する記事が記載されたのでそれを参考にしてVideo RAMボードを製作。基板は亜土電子のNo.807(先のIOボードはNo.801)を使って44ピンから56ピンに進化して接続は上位互換を意識して松本吉彦さんの本のカードピンを参考にして決めて行った。画面に文字が出せるのは感動的で動作させる為に徹夜した記憶がある(夏休みに田舎で製作したので時間も無かった為もあるが当時の私には今の私には欠乏している熱意だけはあったように記憶している)。構成は:

・MC6847VDG 当時よく使われたチップで元々はTVゲームか簡易表示機用にMotorolaが開発したと思しきチップでキャラクタジェネレータと簡易ながらグラフィックモードも持っていた優れもので今でも若松で中古品が入手可能。古くは初代のNEC PC6001にも採用された当時としては結構知名度の高かったチップで4千円以上した記憶がある。当時秋月でS68047という似た仕様のチップが割安で販売されていたが確実に動作させる為にオリジナルのMC6847を亜土電子に発注。

・MC1372 愛称は無かった気がするがVDGが出力する映像信号をNTSCビデオカラー(疑似)に変換する為のモジュレータ。東光の専用コイルでTVの2ch(アナログテレビ放送時代のLowBandの2chの事でネットのゴミサイトの事ではありません)に変換・出力してTVに表示する。当時はゲーム機の元祖のテレビゲーム(死語)はこの形態を取っていた。

・MC6821PIA VDGはモード設定に6ビットぐらい必要だったのでPIAをボードに搭載して使用した。余ったポートは後にキーボードインタフェースに使用

・VRAM 2114x2の1KBで32x16文字のテキストVRAMを構成し128x64ぐらいの2値グラフィックモードとカラー6色ぐらいのセミグラフィックモードもサポートしていた。最大6KB迄VDGはサポートし256x192のグラフィックが実現可能だがグラフィックどころかテキスト表示も当時は難事業であったので最小構成の1KBを選択。これはRAM誌の製作例からの引用

・グルーロジック LS30等当時は一般的になっていた74LSシリーズを多用。まあ当時はステートマシン設計出来なかったのでデコーダ/インタフェース変化用のランダムロジックが主

 纏めると:

・MC6847VDG 32x16テキストモード主体

 ・MC1372 RFモジュレータ

 ・VRAM 2114x2 1KB

・MC6821PIAx1 VDGモード設定用、キーボード接続(後に)

 となる。

 やはりCRT表示が出来るようになるのは当時としては感動もので松本吉彦さんの本に記載されていたモニタプログラムをVDG用に移植してモニタプログラム(通称松本モニタ)が動くようになった。これは松本さんがMotorolaのMIKBUGを参考(当時はソースリストが公開されていた)にして開発・発表されていたものでこれが私のM6800マイコンライフの原点とも言える(ああ懐かしや)。このモニタプログラムを上記カセットインタフェースでテープに記憶しトグルSWを手動でパチパチIPL入力してモニタプログラムを読込、それを使ってプログラムを作ったりしていたので一度使い始めるとそうそう電源を落とさなくなったのは当然である(大学の寮生活だったので24時間通電でも何ら問題は無かった。寮費に電気代も含まれていたので)。

4.EPROMプログラマ

 この頃はトラ技は愛読書となりネットなど無かった時代なので本屋通いをしてマイコン関係の情報を漁るようになっていたがやはりトラ技の松本吉彦さんの記事は別格で当時連載されていた8255を用いた2716プログラマの記事を参考にして上記モニタプログラム他をEPROMに書き込める様にになりIPL入力作業から開放された。当時のEPROMは紫外線消去型で4wの殺菌灯と安定器をアルミシャーシに組み込んでEPROMイレーサーを自作したのは当時の風景でもあった。

www.st.rim.or.jp

 2716は5V単一動作する初代のEPROMでプログラムは26Vの高圧を必要とするが松本吉彦さんの記事で今でも現役なTL497Aで昇圧するので比較的簡単な構成でEPROMプログラマを製作出来た。このEPROMライタは2716→2732→2732A→2764へと進化する事になる。

5.DRAMボード

 MC6800CPU(0.4Mhz),1KB RAM、1KB VRAM、PIAx1,ACIAx1の3ボード構成

・MC6800CPUボード

・MC6821,6850IOボード

・MC6847VDGボード

 となったので44ピン、56ピンコネクタを繋ぐバス構成を手配線で行ってコンピュータ的構成になった。基板を作る馬力は無かったので根気よく44x3のバスを手配線した(当時は根気と気力と暇だけはあったので)。ここまで来ると筐体(当時はシェルフとかエンクロージャとか呼ばれていた)が欲しくなって亜土電子にNo.807x4収納可能なシェルフを注文して上記構成を組込む事にした。いわゆるマイコンシステム風な風貌に近づいて来た訳である(自称)。この様な構成を目指した理由は当時ブームになっていたTinyBasicを動かす環境を構築する為に当時としては大容量な16Kbit DRAM(+5V,+12V、−5Vを必要とする4116系のDRAM、単位は16Kビットで合ってます)を使った16KBの大容量(爆)メモリを構築したかった為である。

www.st.rim.or.jp

 この頃はトラ技とインタフェース誌は必読雑誌だったのでIF誌の記事を見てM6800用のDRAMコントローラであるMC3480+MC3242を用いて4116系DRAMは秋月から調達してNo.807基板にDRAMボードを1本づつ手配線で最終的には24個のDRAMを配線して48KBの大容量(爆)なDRAMを構成するようになった。

www.st.rim.or.jp

 この頃(というかLSI-IOボードの頃から)はホルマル線というかAWG28,30のポリウレタン線を使用してDRAMのアドレス、データ、ストローブ線を根気良く配線していったものである(今でも動作したのが不思議な程)。無論、一発で動作する筈もなく試行錯誤(大半は配線ミスか不良)を繰り返し、DRAMテスト用のプログラム(正常にリフレッシュが機能しているか、データ化けが発生していないか)を書いて数時間なり連続動作させて安定性を確認したものである。ハードウェアの安定性が確認されたら次はソフトウェアとなって

6.Tinybasic

 となる。当時は電大版TinybasicがMC6800系では一般的で例のRAM誌のΛ-1単行本(マイコン手作り塾とかいう書名の分厚い本)の最終章に電大版TinyBasicのアセンブルリストが掲載されたのでそれを機械語モニタで入力して適時カセットに(110bpsで)セーブして実行した。当時はStarTrekをTinyBasicで動かすのが流行でブルーバックスかどこかで電大版TinyBasic用のStarTrekのソースを打ち込んでテキストベースの古典的なStarTrekゲームを動かして遊んだものである。現実として私のMC6800マイコンで動作した最大級の「アプリケーションプログラム」であり当時はそんなものだったのではと記憶している。

7.MC6802CPUボード

 400Khzで動かすのも不満が出てMC6800とソフト互換のMC6802(亜土電子から購入したのは当時のセカンドソースだったHD6802P)を使ってNo.807にMC6802ボードを製作した。構成は:

・MC6802MPU 1Mhz、RAM128バイト付だがDRAMの48KBと被るので無効化(RE→False)

・RAM 2114x2 1KB、これはモニタワーク、スタック領域用であるがDRAMボードが無くても(不安定・故障しても)動作出来る用、$Fxxx領域にマッピングしていた

www.st.rim.or.jp

・EPROM 2716x1、2732x3 EPROMが多いのはモニタプログラムとTinyBasic、逆アセンブラ、EPROMプログラマをEPROMに書き込んでコマンド1つで動作させる様にした為でその意味ではROMベースのシステムとも言えるが先の48KB DRAMと領域重複するアドレス($8000〜$BFFF)はスイッチでDRAM領域を無効化/有効可出来る様に設計した(デコーダ回路を工夫しただけ)。

 ここまで来ると機械語ベースではあるがEPROM書込み器も有るのでチープながらも開発システム(当時の学生の自称故、ご容赦を)っぽくなって来たので他のマイコン開発(具体的にはMC(HD)6809)に進む事になる(続く)。

 

Motorola MC6800(その1)

 暇になったり現実逃避をしたくなると昔話をしたくなるのは年寄の常なのだろう(か)。というわけでよくあるチップを購入してマイクロコンピュータシステム(大袈裟な)を作っていた学生時代のお話。。。

0.マイクロコンピュータ

 共通一次第一世代の受験生であった身ではTK-80やH68/TRが登場していた1970年代末のマイクロコンピュータブームは安田さんのブルーバックスマイクロコンピュータ入門、マイコンピュータをつくる、マイコンピュータを使うといった新書系を読む程度で当時ラジオ少年(それについてはセラミックフィルタ参照)↓

aki-iic.hatenablog.com

 であった高校生にとってはちんぷんかんぷんで初歩のラジオの大河原さんの記事で74シリーズレベルのディジタル回路を見る事はあったもののマイクロコンピュータとなるとレジスタだのプログラムだのの概念が分からず(あたりまえ)安田センセイは新書レベルでド素人の読者層に「ファイルがどうちゃら」とかご高説を垂れるものだから何を言いたいのか不明であった。一方ハードウェア(というか回路図とハンダ付けとプリント基板製作)は小学6年の頃から亡き親父の影響で色々やっていた(上記参照)でマイクロコンピュータであってもまともな回路図(安田センセイのブルーバックスはまともな回路図とは言い難かった)と初歩のラジオレベルの記事が入手出来ればマイクロコンピュータを用いた基板を作る事は可能かもしれないと当時妄想していたが高校受験に失敗した身としては親の負担が少ない国公立大学を目指すべく本人なりに勉強していたのでそこまで手が出る筈も無く知識も情報も資金も無い状態であった。

 幸い高校の物理部の顧問の先生が日立OBだった様でそのツテでH68/TRが購入されどういう訳かマイコンの知識も無かった私がH68/TRの拡張(8T26のハンダ付けだった様なおぼろげな記憶)を手伝ったような気がするが構成理解やプログラムなぞ到底不可能で部員がHit and BlowというH68/TRの電卓コンソールに表示するゲームを機械語で入力・プレイするのを遠巻きに眺めている状況であった。

www.st.rim.or.jp

 不確かな記憶だが当時は廣済堂のRAM、工学社のI/O、電波新聞社マイコンとかいう雑誌が存在しておりI/Oはド素人(例の西である)で記事に実態を成しておらずマイコン無学者には何の役にも立たなかった。RAMは確かΛ-1とかいうMB8870(MC6802の富士通セカンドソース)を使ってマイコンシステムを組み上げる連載が行われていたような気がする。当時はトラ技を知らなかったのであの名著の松本吉彦さんの書の元となった連載を知る事もなくマイコンとは縁遠い学生生活を送っていた。

1.Motora MC6800

 そんな中、無事大学受験でき下宿・寮生活という自由を手に入れた事を幸いに高校時代に自粛・禁止されていた電子工作に邁進する事になる。マイコンに関する知識は皆無の状態であったので教養部時代にどこかの古本屋で見つけたのがあの松本吉彦さんの名著である「私だけのマイコン設計&製作」であった(大袈裟に言えば運命の出会いとも)。↓

ci.nii.ac.jp

 1980年代でこの業界をご存知の方は知らぬ人は少ないと思しき(誇張あり)同署であるが74シリーズの同期カウンタすら正確に理解しているとは言い難い学生にとっては充分難解ではあったがトグルスイッチの原始的手動DMAで二進数で直接アドレス・データを指定して人力で1ビットづつSRAMに書込み、Halt解除でCPUをRUNさせる仕掛けはどうにか50Mhz SSBトランシーバを製作した当時の知識でも理解出来た(SSBトランシーバとマイコン知識は関係無いのだが)のでアルミシャーシに24個(アドレス16ビット、データ8ビット)のトグルスイッチを取り付け、データ表示用に8個のLEDを取り付けで当時は高価だったサンハヤトのコンピュータ用基板(爆)の44ピンカードエッジのユニバーサル基板を購入して1本づつ手配線で回路を組み上げていったのでありました。この風景は当時のマイコン製作者では日常的風景で開発用ホストコンピュータやクロスアセンブラなぞは企業のエンジニアかメーカ製のマイクロコンピュータキットを購入できるブルジョワさんに限られたので私を含む多くの貧乏人(学生比率は高かったのでは。当時のマイコンは暇と気力と眼力が無いと出来ない道楽だったので)が興味本位でやっていたのではと想像する。

 長い前振りだったが松本さん本で具体的な製作・プログラムの記載がされていたプロセサがMotorola MC6800であって偶然にも高校時代にH68/TRの実物を目にしていた因果もあったのかMotorola MC6800の名前ぐらいは知っていた(安田さんの書ではMC6802を用いていた記憶も)ので本書を基に入手可能な部品と安価な代替回路を調べて回路図のような物を手書きして1本づつ多芯線(無線の世界ではそれが普通だったので)で1本1本気の遠くなるような配線を行っておりました(当時は暇な学生だったし集中力やあったのだなと振り返る)。

www.st.rim.or.jp

 このhpは私的には国宝級の価値があるWebページで記載されている情報も正確だし20世紀末のマイコンチップの情報源としてよく参照させてもらっている。本当に素晴らしいhpです(心から)。

 当時の構成を振り返るに(記憶が不正確な部分多々あり)↓

・CPU:蒲田のカマデンから当時3000円で通販で入手したMC6800P(プラスチック、1Mhzクロック)

・クロックジェネレータ:MC6871Bは高価で買えなかったのでTVのクロマ用の3.579545Mhz水晶を7474で分周して7405で擬似ノンオーバラップクロックを生成(松本さんの本で紹介されいた回路そのまま)

・メモリ:MC6810は高価で容量も少ないので当時一般的だった2114(1Kx4bit)タイプのRAMを2個使用、OKIのMSM2114x2

・グルーロジック:74LSと4000シリーズの混合。故にPullup抵抗だらけで配線が大変だったがトグルSWで手動DMAする為、バスはHi-zとなる為どのみちPullupは必要だった

・手動DMA回路:松本さんの本通りにダイオードで構成したがIS1588は高価で入手出来なかったので内容不明の多分IN60風なゲルマダイオードを袋買いして使用したがディジタル回路故かそれでも動作してくれた

・電源:高校時代に作ったTA7089(uA723の改良型)を使った可変安定化電源を5V固定で使用

 だったような気がする。纏めると

MPU:MC6800P(1Mhz、後400Khzに下げてやっと動作が安定する(涙:)

 ・RAM:MSM2114RSx2(1Kbyte、TK-80の2倍)

 ・I/O:トグルSW+LEDによる人力DMA、故にプログラムでRAMに結果を残し、CPUをHaltさせて人力DMAで結果を参照する

 といった構成であった(なつかし)

2.不安定なCPUボード

 実は1年生の時に上記構成で製作したのだが動作が不安定で半年程放置していた。原因は空中配線の盛りそば状態の配線では1Mhzのマイコン回路は安定に動作せず。GNDパタンも全く考慮せずそれ故に動作が不安定になっていたと後ほど知る。クロック周波数を下げるというのは苦し紛れにモノマルチ(74123)で400Khz程度(周波数カウンタで確認)の自励発振にクロックジェネレータを置き代えたら安定動作するようになったのでここからMC6800マイコン(松本吉彦さんのデザインベース)の拡張が始まるのであった(つづく)

 

件数表示

 通勤経路で新幹線駅を通るのだがエスカレータからか垣間見えるドラッグストアと思しき店舗の広告掲示板(所謂流動表示器の大型バージョン)に武漢肺炎亜種含む新規感染者数が数値表示されているのだがこれって

自治体とメディア様が大好き(それしか出来ない)日報プレイ?

・事象があれば原因分析と対策も「日報レベルの更新」が必要なのでは。

 と考えるのは思考停止暇人の私だけではないだろう。メディア様の報道(笑)を見るに↓

www.nikkei.com

 このグラフからすると毎日数値を日報で貴重なメディア様のチャンネルを駆使して「報道」なさる価値がどの程度あるものかと疑問になる。グラフは4月から右下がりでこれは原因はどもかく減少しているのは間違い無さそう。しかも屋外でも所定の条件を満たせばマスク無しでもOkとの厚労省通達が出ている状況の中であり加えて3回目のワクチン接種は60%程度の状態で4回目のワクチン接種(65歳以上)は限定的という状態でである。一部メディア様の偏向報道(というか活動家の主張)とは実態は異なりメディア様が大好きな欧米と比べて(メディア様が信奉する支那共産党は優に及ばず)も我が国の現時点(令和四年水無月)の感染者数は著しく少なくこれは現時点で継続実施されている施策が適切な面も少なからずあるのだろう。

 何を言いたいかと言えば

メディア様もお役所(特に帝都の安全と安心の区別がつかないカイロ女)も惰性で小学生の絵日記レベルの件数表示する暇があれば厚労省なり対策に従事している現場の専門家の情報をメディア様ご自身の理念や印象を一切含まずに「日々伝達」されてはいかがだろうか。ETLできるからプログラムで自動処理出来るし人手も掛からないのでは?

 いくら受動型テレビ脳に洗脳されたテレビっ子の成れの果てのジジババでも2年以上も続けていれば流石に飽きるだろうし洗脳装置たるメディア様の報道が尽く事実にそぐわなかった顛末をメディア様が育成されたテレビっ子の成れの果てたる受動型思考停止系ジジババですらその多くは気付いているのではないだろうか(まあ、固定層もいるのだろうけれど)。

 それともジジババはメディア様同様、グラフを読めないと思い込んでいるのだろうか(小学校の理科も解らないメディア様の面目躍如)。。。

2022/06.24 5:14追記

 いつものサイトで状況確認したら当然ながら同様の傾向:

令和四年水無月

vdata.nikkei.com

 メディア様の如き非線形n次情報(しかも次元圧縮された0次元情報)より1次情報に近い情報源は開示されているのだからそちらに頼りたいものです。