DOSでプログラミング ..
[2ch|▼Menu]
910:デフォルトの名無しさん
09/01/13 17:26:56
MASMの話しなら、 ALは不定ってのは常識だな
>>902みたいなのが、バッファオーバーフローで、ハッカーにやられる典型的なホール製造者ってことだな

911:デフォルトの名無しさん
09/01/13 19:09:25
902だが906の説明でわかったわ。
20年前はバイトアクセスしかしなかったから助かったのか。


912:デフォルトの名無しさん
09/01/13 19:16:32
例えばI/Oが16ビットカウンタだとしたら、8ビット2回に分けてアクセスしちゃまずいだろ。HとLでずれるぜ。

913:デフォルトの名無しさん
09/01/13 21:12:14
16ビットアクセスするのに同じアドレスを2回に分けて
読み書きしてた。

914:デフォルトの名無しさん
09/01/14 00:27:07
>>912
AT互換機の8254等はもともと8bit CPUの8085周辺用に設計されたものなので、
16bitタイマのレジスタでも、タイマ内部でダブルバッファ構造とすることで、
バイト単位での読み書きに対応できるようになっている。

具体的には、下位バイト読み込み時に16bitの値をテンポラリにラッチして、
後から上位バイトを読んでも下位バイト読み込み時に保持された値を読み
出す。 書き込み時には、下位バイトを書き込んだ時にはテンポラリに
ラッチし、後から上位バイトを書き込む時に、16bitデータを一括でレジ
スタに書き込むようになっている。

但し、上位/下位バイトアクセス中に、割込処理内で同じI/Oデバイスのレジ
スタにアクセスされると困るので、レジスタ読み/書き中は割込禁止しなけ
ればならん。

それに、AT互換機と違ってNEC PC-9801シリーズなんて、ダイナミックバス
サイジング機構を搭載していないので、8-bit I/Oが1バイトおきにマップ
されていて、そもそもワードI/O命令が使えない。

915:デフォルトの名無しさん
09/01/14 00:36:32
FMは出来たんだっけか?
なんか特権モードで凄いのがあった気がするけど。

916:デフォルトの名無しさん
09/01/14 01:21:19
>>886の質問がアバウト過ぎるのさw

917:デフォルトの名無しさん
09/01/16 21:34:17
質問者のターゲットとする環境がAT互換機に限定できれば
I/Oポートの20Hと21Hの用途も決まってるしワードアクセス可能かどうかも決まるんだが。

918:デフォルトの名無しさん
09/01/16 23:48:07
>>917
それこそを、機種依存したプログラムと言わずして、なんと呼ぼう?
構造主義進化論は脆くも崩れ去ったか・・・合掌

919:デフォルトの名無しさん
09/01/16 23:51:21
機種依存全盛の時代のOSのスレでそんなこと言われても……。

920:デフォルトの名無しさん
09/01/17 00:01:43
>質問者のターゲットとする環境がAT互換機に限定できれば

AT互換機以外でDOSが動くのってあるの???

921:デフォルトの名無しさん
09/01/17 00:05:56
PC-98だろ。

922:デフォルトの名無しさん
09/01/17 00:08:00
>>920
まさかAT互換機用以外のDOSがない(なかった)とでも思ってるのか。

923:デフォルトの名無しさん
09/01/17 00:11:16
山ほどあるぞ
思いつくだけで数十シリーズ

924:デフォルトの名無しさん
09/01/17 00:12:35
Wikipedia項目リンク
PC-9800シリーズやEPSONの98互換機だけじゃないぞ。
AXやJ-3100シリーズも微妙に違う。

925:デフォルトの名無しさん
09/01/17 00:49:15
>>920
くっそー!! 坊やみたいのが、うちらに管巻かせちゃうんだぞ!だぜ?

926:デフォルトの名無しさん
09/01/17 01:20:32
>>920
日立のB16、2020
富士通のFM-R、FM-16β
どれも、AT互換でもPC-98互換でもない独自アーキテクチャのパソコンだよ
これらの機種の性質の悪いところは、普段は人目に付かないけれど、ある所には大量にあるんだよ


927:デフォルトの名無しさん
09/01/17 01:24:09
PC-100

928: ◆0uxK91AxII
09/01/17 02:52:46
このスレ、何かクサイね。

929:デフォルトの名無しさん
09/01/17 06:16:50
>>921-927
それ、いつの時代の話?
まさか・・・20世紀??

全裸で外を出歩いて、「石器時代はみんな裸だったんだぞ!」
って言ってるようなもんじゃん。

930:デフォルトの名無しさん
09/01/17 06:27:54
>>914
Linuxではその手の違いを力技でエミュレートしてるよ
URLリンク(slashdot.jp)

931:デフォルトの名無しさん
09/01/17 07:01:29
デバドラやOSのAPIなど使わずにダイレクトにIN/OUTするのがDOS流

932:デフォルトの名無しさん
09/01/17 07:09:12
>>929
DOSのスレで一体何を言ってるんだ?

933:デフォルトの名無しさん
09/01/17 10:22:12
コンドームやピルなど使わずにダイレクトにIN/OUTするのが俺流

934:デフォルトの名無しさん
09/01/17 11:15:32
まるでピルを使うとダイレクトではなくなるような誤解乙。

935:デフォルトの名無しさん
09/01/17 13:24:49
>>929
一般人はいいよなぁ
ろくすっぽ資料の存在しない機械と格闘しなくてもいいから...


936:デフォルトの名無しさん
09/01/17 16:26:45
DOSなのに資料が無いって・・・

937:デフォルトの名無しさん
09/01/17 18:24:18
Windowsは、ハードの細かい仕様を気にせずに済むのがいいところだな


938:デフォルトの名無しさん
09/01/17 18:41:54
てか、ハードを動かすプログラムを書く奴はめったにいない。
鈍臭いアプリばっかり。

939:デフォルトの名無しさん
09/01/17 19:51:22
>>929
時代も変わったようだな。
坊やみたいなのがDOSプログスレの住人とはな。
だが、戦場であったらこうはいかないぞ。がんばれよ。

(って、20世紀の有名なネタも通じないのだろう f(^ー^;)

940:デフォルトの名無しさん
09/01/18 02:52:40
爆釣

941:デフォルトの名無しさん
09/01/24 00:06:19
ところで、PC-98 と PC-AT の I/O ポートの一覧というか空きポートが記されている表とかある?
昔の N88-BASIC のソフトを移植してくれという依頼が来た。

942:デフォルトの名無しさん
09/01/24 01:03:43
どんなソフトだ?

943:デフォルトの名無しさん
09/01/24 03:10:07
そもそも、ソフトの移植に何で空きポートが関係するんだ?

944:デフォルトの名無しさん
09/01/24 05:56:36
>>941
神田の古本屋廻ってこい

945:デフォルトの名無しさん
09/01/25 12:19:11
I/Oポートの話に割り込むようで悪いが、メモリの場合は、
    Bit0-8 Bit9-15 Bit16-23 Bit24-31
0800H [あ] [い] [う] [え]
0801H [い]
0802H [う] [え]
0803H [え]
0804H [か] [き] [く] [け]
0805H [き]
のように設計しているから、
   mov ax,ds:[800h]   ; AX=いあ

   mov al,ds:[800h]
   mov ah,ds:[801h]   ; AX=いあ
が同じ内容になるんだけど、I/Oポートの場合は、
    Bit0-8 Bit9-15 Bit16-23 Bit24-31
0080H [あ] [い] [う] [え]
0081H [お]
0082H [か] [き]
0083H [き]
だとすると、
   in ax,80h   ; AX=いあ

   in al,80h   ;
   in ah,81h   ; AX=おあ
が違うって事か。(82h/83h ではメモリのような設計なので同じになる)

Y/N (?)

946:デフォルトの名無しさん
09/01/25 13:12:21
>>941
神田神保町へ行けるくらいならいっそのいこと国会図書館(東京本館)までいってこい。
日本国内で出版された書籍・雑誌ならほぼすべて所蔵しているから本のタイトルが判るならそっちのほうが確実。
検索と登録利用者用サービスの一部はネット上から使える。貸し出しは出来ないけどな。

>>943
制御用にでも使ってたんだろ。それで専用の拡張ボード使ってて、ハードごと移植ってことでは?

>>945
そんな単純な問題では・・・
URLリンク(download.intel.com)

>13.3. I/O アドレス空間

>連続する2 つの8 ビット・ポートを1 つの16 ビット・ポートとして、また連続する4
>つの8 ビット・ポートを1 つの32 ビット・ポートとして扱うことができる。

>アライメントが合っていないポートにアクセスするためのバスサイクル順序は特に
>定義されていない

>ハードウェアまたはソフトウェア上の理由でI/O ポートに書き込む順序が決められ
>ている場合は、その順序を明示的に指定する必要がある。

「13.6. I/O の順序」もあって、これも場合により重要になる。

947:デフォルトの名無しさん
09/01/25 17:47:39
>制御用にでも使ってたんだろ。それで専用の拡張ボード使ってて、ハードごと移植ってことでは?
それを「N88-BASICのソフトの移植」とは普通は言わないと思うんだ。

948:デフォルトの名無しさん
09/01/25 20:39:59
Cバスユニバーサル基板か何かでI/Fを自作していたらあるかもね。

949:デフォルトの名無しさん
09/01/27 23:49:11
市販品だが、Cバスのフレームバッファを弄ってた記憶があるな。メモリとIOの両方でアクセス出来る。
アセンブラだったけど。

950:デフォルトの名無しさん
09/01/28 01:08:50
カノプーがGDBRのCバス汎用インターフェイスボードを出していたね。RS-432ボード等もどこからか出ていた。
検索したが辿り着けなかったが・・・今でも、その手のものを置いているところはあるんだね。
懐かしかった。 → URLリンク(www2.wbs.ne.jp)

951:デフォルトの名無しさん
09/01/28 23:18:01
>>941
98
URLリンク(www.webtech.co.jp)
AT
URLリンク(www.ctyme.com)

もっと単純に、シリアルポートを制御するような場合だって、I/Oマッピングがわからないと
手も足も出ないよ。
DOS時代のプログラミングってのはそういうもん。

952:デフォルトの名無しさん
09/01/28 23:23:56
I/Oアドレスの一覧がわかったところで、もっと具体的というか実践的な使い方がわからないと
解析は難しいと思うんだけどね。
OUT 5FHみたいな変なポートもあったし、しかも機種ごとに働きが違ったりね。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5495日前に更新/220 KB
担当:undef