- 1 名前:デフォルトの名無しさん [03/03/07 10:45]
- ハードウェアを直接叩くのはやっぱり楽しい!
DOSにおける開発について語りましょう。
- 902 名前:デフォルトの名無しさん [2009/01/13(火) 00:13:18 ]
- mov ax,[20h]
でahには21hのメモリの内容がはいるだろ。同じように、 in ax,20h でahには21hのポートの内容がはいるんじゃないの? オレって勘違いしていた?
- 903 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:14:00 ]
- 入るとは限らないって上で何人も回答あるだろ・・・
- 904 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:25:11 ]
- >>902
バカまるだしw
- 905 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 04:44:55 ]
- >>902
メモリがそう読めるというのは、そう実装されているから。 I/Oがメモリ同様に実装されているかどうかは別の問題。 「マイコンの作り方」みたいな本でも探してきて一読するか、 諦めて布団被って寝るか、どっちかにしてくれ。
- 906 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 12:38:47 ]
- 要するに原住民番号20-8番から20-15番まで来なさいって命令と、
原住民番号21-0番から21-7番まで来なさいって命令は別物ってだけだろ。
- 907 名前:デフォルトの名無しさん [2009/01/13(火) 16:05:07 ]
- 余計わかり辛いw
- 908 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 17:24:00 ]
- DOSの3.3 までと 5.0以降は分けないと アレだな
8086 と Z80も わけたほうが良いかもな CP/M のシステムコールをもっとMSX-DOSというものもあるからな。
- 909 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 17:24:30 ]
- s/もっと/もった/
- 910 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 17:26:56 ]
- MASMの話しなら、 ALは不定ってのは常識だな
>>902みたいなのが、バッファオーバーフローで、ハッカーにやられる典型的なホール製造者ってことだな
- 911 名前:デフォルトの名無しさん [2009/01/13(火) 19:09:25 ]
- 902だが906の説明でわかったわ。
20年前はバイトアクセスしかしなかったから助かったのか。
- 912 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 19:16:32 ]
- 例えばI/Oが16ビットカウンタだとしたら、8ビット2回に分けてアクセスしちゃまずいだろ。HとLでずれるぜ。
- 913 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:12:14 ]
- 16ビットアクセスするのに同じアドレスを2回に分けて
読み書きしてた。
- 914 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:36:32 ]
- FMは出来たんだっけか?
なんか特権モードで凄いのがあった気がするけど。
- 916 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:21:19 ]
- >>886の質問がアバウト過ぎるのさw
- 917 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 21:34:17 ]
- 質問者のターゲットとする環境がAT互換機に限定できれば
I/Oポートの20Hと21Hの用途も決まってるしワードアクセス可能かどうかも決まるんだが。
- 918 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:48:07 ]
- >>917
それこそを、機種依存したプログラムと言わずして、なんと呼ぼう? 構造主義進化論は脆くも崩れ去ったか・・・合掌
- 919 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:51:21 ]
- 機種依存全盛の時代のOSのスレでそんなこと言われても……。
- 920 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:01:43 ]
- >質問者のターゲットとする環境がAT互換機に限定できれば
AT互換機以外でDOSが動くのってあるの???
- 921 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:05:56 ]
- PC-98だろ。
- 922 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:08:00 ]
- >>920
まさかAT互換機用以外のDOSがない(なかった)とでも思ってるのか。
- 923 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:11:16 ]
- 山ほどあるぞ
思いつくだけで数十シリーズ
- 924 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:12:35 ]
- ttp://ja.wikipedia.org/wiki/MS-DOS
PC-9800シリーズやEPSONの98互換機だけじゃないぞ。 AXやJ-3100シリーズも微妙に違う。
- 925 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:49:15 ]
- >>920
くっそー!! 坊やみたいのが、うちらに管巻かせちゃうんだぞ!だぜ?
- 926 名前:デフォルトの名無しさん [2009/01/17(土) 01:20:32 ]
- >>920
日立のB16、2020 富士通のFM-R、FM-16β どれも、AT互換でもPC-98互換でもない独自アーキテクチャのパソコンだよ これらの機種の性質の悪いところは、普段は人目に付かないけれど、ある所には大量にあるんだよ
- 927 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 01:24:09 ]
- PC-100
- 928 名前: ◆0uxK91AxII mailto:sage [2009/01/17(土) 02:52:46 ]
- このスレ、何かクサイね。
- 929 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:16:50 ]
- >>921-927
それ、いつの時代の話? まさか・・・20世紀?? 全裸で外を出歩いて、「石器時代はみんな裸だったんだぞ!」 って言ってるようなもんじゃん。
- 930 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:27:54 ]
- >>914
Linuxではその手の違いを力技でエミュレートしてるよ ttp://slashdot.jp/~bero/journal/352742
- 931 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 07:01:29 ]
- デバドラやOSのAPIなど使わずにダイレクトにIN/OUTするのがDOS流
- 932 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 07:09:12 ]
- >>929
DOSのスレで一体何を言ってるんだ?
- 933 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:22:12 ]
- コンドームやピルなど使わずにダイレクトにIN/OUTするのが俺流
- 934 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 11:15:32 ]
- まるでピルを使うとダイレクトではなくなるような誤解乙。
- 935 名前:デフォルトの名無しさん [2009/01/17(土) 13:24:49 ]
- >>929
一般人はいいよなぁ ろくすっぽ資料の存在しない機械と格闘しなくてもいいから...
- 936 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:26:45 ]
- DOSなのに資料が無いって・・・
- 937 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:24:18 ]
- Windowsは、ハードの細かい仕様を気にせずに済むのがいいところだな
- 938 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:41:54 ]
- てか、ハードを動かすプログラムを書く奴はめったにいない。
鈍臭いアプリばっかり。
- 939 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 19:51:22 ]
- >>929
時代も変わったようだな。 坊やみたいなのがDOSプログスレの住人とはな。 だが、戦場であったらこうはいかないぞ。がんばれよ。 (って、20世紀の有名なネタも通じないのだろう f(^ー^;)
- 940 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 02:52:40 ]
- 爆釣
- 941 名前:デフォルトの名無しさん [2009/01/24(土) 00:06:19 ]
- ところで、PC-98 と PC-AT の I/O ポートの一覧というか空きポートが記されている表とかある?
昔の N88-BASIC のソフトを移植してくれという依頼が来た。
- 942 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 01:03:43 ]
- どんなソフトだ?
- 943 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 03:10:07 ]
- そもそも、ソフトの移植に何で空きポートが関係するんだ?
- 944 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 05:56:36 ]
- >>941
神田の古本屋廻ってこい
- 945 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:12:21 ]
- >>941
神田神保町へ行けるくらいならいっそのいこと国会図書館(東京本館)までいってこい。 日本国内で出版された書籍・雑誌ならほぼすべて所蔵しているから本のタイトルが判るならそっちのほうが確実。 検索と登録利用者用サービスの一部はネット上から使える。貸し出しは出来ないけどな。 >>943 制御用にでも使ってたんだろ。それで専用の拡張ボード使ってて、ハードごと移植ってことでは? >>945 そんな単純な問題では・・・ ttp://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol1_Online_i.pdf >13.3. I/O アドレス空間 >連続する2 つの8 ビット・ポートを1 つの16 ビット・ポートとして、また連続する4 >つの8 ビット・ポートを1 つの32 ビット・ポートとして扱うことができる。 >アライメントが合っていないポートにアクセスするためのバスサイクル順序は特に >定義されていない >ハードウェアまたはソフトウェア上の理由でI/O ポートに書き込む順序が決められ >ている場合は、その順序を明示的に指定する必要がある。 「13.6. I/O の順序」もあって、これも場合により重要になる。
- 947 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:47:39 ]
- >制御用にでも使ってたんだろ。それで専用の拡張ボード使ってて、ハードごと移植ってことでは?
それを「N88-BASICのソフトの移植」とは普通は言わないと思うんだ。
- 948 名前:デフォルトの名無しさん [2009/01/25(日) 20:39:59 ]
- Cバスユニバーサル基板か何かでI/Fを自作していたらあるかもね。
- 949 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:49:11 ]
- 市販品だが、Cバスのフレームバッファを弄ってた記憶があるな。メモリとIOの両方でアクセス出来る。
アセンブラだったけど。
- 950 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 01:08:50 ]
- カノプーがGDBRのCバス汎用インターフェイスボードを出していたね。RS-432ボード等もどこからか出ていた。
検索したが辿り着けなかったが・・・今でも、その手のものを置いているところはあるんだね。 懐かしかった。 → ttp://www2.wbs.ne.jp/~c2main/zaiko-06.htm
- 951 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:18:01 ]
- >>941
98 ttp://www.webtech.co.jp/company/doc/undocumented_mem/ AT ttp://www.ctyme.com/rbrown.htm もっと単純に、シリアルポートを制御するような場合だって、I/Oマッピングがわからないと 手も足も出ないよ。 DOS時代のプログラミングってのはそういうもん。
- 952 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:23:56 ]
- I/Oアドレスの一覧がわかったところで、もっと具体的というか実践的な使い方がわからないと
解析は難しいと思うんだけどね。 OUT 5FHみたいな変なポートもあったし、しかも機種ごとに働きが違ったりね。
|

|