忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2026/10/05 00:24 |
システム設計⑭
さて…今となってはPC98シリーズを使ってプログラム開発をする環境は、ハードルの高い状態となっている。

2003年9月にNECがPC9821シリーズ全ての出荷を停止し、2007年9月にロムウィン社iNHERITORシリーズも出荷終了となり、1982年以来長く続いた国産PCは終焉を迎えた。
それでもいまだ製造を終えたPC98上で稼動している小規模な装置達が全国でゴロゴロ存在し、Windows版にソフトウェア移植が出来ていないシステムアプリケーションが数多く存在している。
PC98は20年以上経過していても発売当時の昔と同じように「ゆったり」…いや、正確に動作しているが、ある日突然故障のトラブルを迎える。

データ保存に一般的なFDDドライブはDOS/Vとは違った電気規格なため、今やプレミア価格(2万~)な存在となっている。
本体内半導体故障、BIOSが故障すると、起動できなくなる…RAMだと、データ保存やプログラムが突然暴走…といったPCの信頼性に関わる致命的エラーが発生してくる。
内部時計クロックも2000年問題をクリアできていないものは強引に100年前の年号にセット…これで動けてくれれば…といった、そんな98シリーズにも、さすが日本人らしい設計の緻密さ、例えばPC内クロックタイマでコントロールされる各種制御機器は、工業用Windowsベースソフトに移植するだけのソフトウェアムーブ(ノウハウ伝達)が未完了なことが今もやはり点在している。
今やPC98は骨董プレミアム的存在な位置にあるが、骨董資産の寿命もそれ程長くはない。特異な分野で今だ必要とされている現場も、システムの移植を真剣に検討しなければならない時期が迫っている。


PR

2009/03/06 11:09 | Comments(0) | 電気
システム設計⑬
ところでマシン語を使ってプログラムを開発するツールにはMS-DOSの場合、コードを記述するEDLINという1行ずつ編集することのできるラインエィタがあります。プログラムソースコードをパタパタとタイプして書いていきます。保存ファイル名は.ASMという具合にしておきます。

次に機械語に変換するためにMASMでアセンブル(組み立て)をします。アセンブラが出力されるコードは.oBJという拡張子がついて、まだこのままでは実行はできません。どこにでも配置が可能な状態となっています。

次にLINKコマンドでMS-DOSから実行可能な.EXEファイルができあがります。このEXEファイルはMS-DOS上でしか実行できませんので、単独のコードで実行させる場合にはEXE2BINというEXEファイルをバイナリのBINフィアル(あるいは拡張子COM)に変換し、MS-DOSとは独立して実行できるタイプのファイル方式にも変換できます。

このプログラムコーティングの流れは今のWindow上で動く開発スタイルの原型となっていて、大きなプログラムの場合、DLLといった分割されたモジュールプログラムに分割して…っという具合です。

プログラムコーティングではこのツールソフトを頻繁に使用するので、一連の作業をバッチファイル(自動作業構成の手続きを記録したファイル)としてあらかじめ処理内容を登録しておくことがよく行われています。



2009/03/05 11:21 | Comments(0) | 電気
システム設計⑫
ユーザプログラム設計の細かい配慮点など…

どんなプログラムもそうなんですけど、入口と出口、開始終了はペアになっていますね。
中断(キャンセル)処理っていうのも機能上必要な場合もあります。

中断処理が可能かどうかはどこまで最初の状態に戻ることができるか、にかかってきます。一時退避のスタック命令(PUSHとPOP)がキーワードの世界です。

シングルタスクであるMS-DOSの場合、全レジスタと元の呼び出しアドレス保持で事足りますが、Windowsクラスのマルチタスクでは、レジストリといった専用パラメータファイルを用意するなど、復元状態を記憶する順序だても結構複雑です。
アプリケーションWindowsソフトのインストール途中に電源が落ちたりすると、最悪、起動すらしないPCになってしまいます。

反応の良いソフトは内部的にとても過密、かつ複雑な動きをしています。高度であるゆえ、慎重に利用するスキルが求められているわけです。





2009/03/04 10:23 | Comments(0) | 電気
システム設計⑪
MS-DOSファンクションコールの利用…ユーザプログラムが終了したら呼ばれる前の状態に復帰する…これが基本です。

使用メモリー、スタック領域の管理も含め、ユーザプログラムはプログラマの細かい管理の下で動作をする…これがMS-DOSワールドの世界だったんですね。

ユーザーI/O、ユーザーメモリ…限られたエリアの番地の中であれこれ仕様が動き出すと、根本から設計を変えなければいけないこともあったりします。

データ取り込みのアナログサンプリングワークエリアにG-RAMの2番、3番を指定してみましたが、古い機械のメモリが拡張されておらず、データが何も書き込まれていない現象…失敗もありました。
ちゃんとメモリが入っているかどうかを調べてから動かせばいいのですが、こうしたRAMハード拡張もオプションだった時代が今となっては少し懐かしいです。
Windowsデバイスドライバの存在はこうした「あるはずのハード…」が見つからなければ使えない…当たり前のことですが、こうしたサポートも重要なシステム機能なわけです。


2009/03/03 10:29 | Comments(0) | 電気
システム設計⑩
さて…これからがマシン固有限界能力との駆け引きです。

高速サンプリングといえど、時間内にちゃんと処理を終えることができなければ動かない…ってことになります。

事実…古いPC98、CPUがV30以前のクロック処理速度が遅いタイプの場合、時間のかかるI/O処理速度待ち時間がタイマー処理時間内間隔に追従しきれない…といった現象が現れます。
I/O信号Readyの時間を待ち続けなければならない旧タイプCPUと、先読みフェッチ(取り込み)ができるCPUの違いがここに現れてきます。
(これがCPUのキャッシュ…というヤツです)
NOP命令といって、CPUがI/O処理時間の間、反応時間を待っている時間が必要なんです。
つまり…この時間がサンプリング速度の限界を決めてしまうんです。

事実、V30クラスCPUは200μSのサンプリングは応答時間内に処理が不可能でしたが、386以上ならOK、ってことがありました。
マシン固有機能に依存したプログラム限界速度は、実行時間の検証を詳細に検討する必要があり、このあたりはなかなか奥の深い領域です。


2009/03/02 10:21 | Comments(0) | 電気

<<前のページ | HOME | 次のページ>>
忍者ブログ[PR]