|
最近のコンピュータ技術者は、ハード系、ソフト系と専門化しているね。
これは、ハード、ソフト 各々の技術レベルが 高くなった事が原因だけど、 技術者も、大変だよね。
でも 良いシステム、良い仕事をするには、ハード、ソフトの両知識が必要だと思う。
特に、制御機器の開発現場では、 マネージャーは、両分野の知識無しでは、勤まらないだろうね。
どこまでハード、どこまでソフトでやるか。
汎用性、生産性、価格・資材調達・・の最適化は、両方の知識が必要だね。
ハード・ソフトの境界の話。 レベル的には低い話だけれど、MZ80KのFDを接続し、動作させる時に 起きた。
FDのデータの読み出し、書き込みに失敗する。 原因は?・・、
FDが、両面倍密を採用したので、タイミングが早く、データ処理が遅れる。
FDがインテリジェント化していない為、Z80の管理下にある事。
Z80が2MHzの低速あった為、インストラクションの実行速度が遅い事。
W君(仮名)が担当していたが、悩んでいた。 時々、エラーが発生するトラブルだった。
障害は、トラック・セクタを指定して、シークの後、ヘッダー信号を掴んでから、レディ信号を出力してくる。
レディ信号をセンスして、データ処理をするのだが・・、
ポーリングのレディ信号確認の時間が かかり過ぎ、時々失敗する。
GET_DATA IN A、FDC ; 制御データの取り込み
AND A,$01 ; 制御フラグの確認
JR Z GET_DATA ; レディ信号なしの場合 繰り返し,有りの場合 下に抜ける。
対策は?。FDドライブを、Z80の直接管理下から外し、インテリジェント化する。価格上昇・・。
では 他の対策・・?。
ドライバーソフトのLOOP番地を固定し、インストラクションの最初のバイト読み込み時、
3ビット(b3)の位置にレディ信号を突っ込み、0x20 又は 0x28 で CPUを騙す。
即ち、レディ信号ない時 JR NZ LOOP (0x20、0xFE)、
レディ信号検出時 JR Z LOOP (0x28、0xFE)
GET_DATA OR A、$01 ; Zフラグを0とする
LOOP JR (N)Z、LOOP ; レディ信号なしの場合 繰り返し、有りの場合 下に抜ける。
コンピュータは、『 ダマシの哲学』・・。 どんな 手段でも確実・安全に動作すれば・・、
♪どうせ だますなら 死ぬまで だまして 欲しかった。♪ 途中で バレるの ダメよ(笑)
結果よければ、すべて 良し・・。 とは言え・・、あまりに、マニアックな事は 避けた方が良いかも・・。
実用化? Z80が4MHzバージョンの見通しが付いたので、タイミング余裕が出来ソフト方式で商品化できた。
< つづく >
MZ−80開発記録は連載物です。 最初のページは、↓をクリック。
http://blogs.yahoo.co.jp/nagusa_kei/10285931.html?p=1&pm=c
***** 余談 *****
専門的な話よりも、モノを開発する喜び、悩み、苦しみ・・逸話を充実して欲しい・・とか、
仕事に対する意欲が出ない・・、職場の人間関係・・など、生き方、どうした良いかの質問など・・、
メールを頂いていますが、 どう お答えしたら 良いのか 迷っています。
僕自身の生き方・・、田舎での貧困な子供時代、空海伝承の影響、這い上がり、授業料の安い学校
大仏師松久宗淋先生の日曜仏所への通いなど、技術を離れた話題の方が タントありますので・・。
時々 余談で、人間nagusa_keiを書き込んで いきたいと思います。
|