- 1 名前:デフォルトの名無しさん [03/03/07 10:45]
- ハードウェアを直接叩くのはやっぱり楽しい!
DOSにおける開発について語りましょう。
- 152 名前:143 mailto:sage [04/01/25 00:37]
- おや、レスが来てた
いや、当時は全部アセンブラで書いていたから・・・ DSをa800hに変更して直書きしてたから意味合いで言えば、 その2に近いのかな?どちらにしても10年以上前の話だからなぁ
- 153 名前:141 mailto:sage [04/01/25 12:12]
- >>152
>いや、当時は全部アセンブラで書いていたから・・・ (MASMの)アセンブラの構造体こそ望ましいものです。アドレスを指定して, 構造体メンバにアクセスできて「->」をうざがって刺されることもないです。
- 154 名前:デフォルトの名無しさん mailto:sage [04/01/25 12:30]
-
- 155 名前:デフォルトの名無しさん mailto:sage [04/01/26 01:16]
- >148
PLMとは懐かしい。今でも昔のサポートで使うことありますが(w gccでも直アドレス指定出来ますよ。 まあOSによっては、やっても怒られるだけですが(w
- 156 名前:141 mailto:sage [04/01/27 10:39]
- >>155
>gccでも直アドレス指定出来ますよ。 直アドレスを char *base_adr= 0xd0000; とできるのは当たり前で,お伺いしたかったのは struct board_foo; として作ったものを0xd0000に配置するような機能のことです。ほんとうにできますか。 >まあOSによっては、やっても怒られるだけですが(w WindowsNT系でもOS標準でできるんで困りませんし,タイミングが10msec以上の 比較的シビアなものではリアルタイム拡張製品などを使うので問題ありません。 それにタイミングが絡んでくると,OSなんかの機能よりも「作り方・書き方」の方が大事だと思います。 特殊なハードのラッチ信号をPCからポチポチ制御するような困ったちゃんシステムとか。
- 157 名前:デフォルトの名無しさん mailto:sage [04/01/28 00:01]
- >156
あれま(構造体)変数などの絶対番地ロケートでしたか。 gccで開発するCPUでROM化などしたことがないのでわかりませ〜〜ん(^^; わざわざ実体を重ねなくても、構造体へのポインタで良いような 気がしますけどね。処理系の環境に依存させるのがいやですから。 怒られるはメモリアクセス例外などが出るだったんですが。 タイミングですか、OSの機能というより挙動を知ってないと いけない、じゃないですかね。何がWinNT系のOS標準で出来る だかわかりませんが、WinNT系でもリアルタイム拡張があれば 時間の保証が得られるらしいですね。
- 158 名前:デフォルトの名無しさん mailto:sage [04/01/28 04:20]
- 昔は知識不足その他で果たせなかった事を何となくしてみたくなって、
使わなくなってた古い9821にdjgppをインストールしました。 今更ですが、Undocumentedな機能(PEGCとか)を使ってみたり、 直書きや割り込み、DPMI等で遊んでます。 …何で今更はまるんでしょう(笑) 結局、DOSは嫌いじゃないんだよなあと再確認しますた。
- 159 名前:デフォルトの名無しさん mailto:sage [04/01/28 14:02]
- >>156
> struct board_foo; > として作ったものを0xd0000に配置するような機能のことです。ほんとうにできますか。 mapped I/Oなら #define foo1 (*(struct board_foo *)0xd0000) じゃダメなん?
- 160 名前:141 mailto:sage [04/01/30 12:50]
- >>159
>#define foo1 (*(struct board_foo *)0xd0000) おお。新パターンです。ありがとうございます。 #defineだとデバッガが・・・ゲホゲホ ちなみにこれは,実際にお使いですか?
- 161 名前:デフォルトの名無しさん mailto:sage [04/01/30 15:53]
- mapped I/Oでドライバ書いたことはないけど、DOSでは使ったな。
- 162 名前:デフォルトの名無しさん mailto:sage [04/01/31 09:23]
- >>161
VRAMの位置とか?
- 163 名前:デフォルトの名無しさん mailto:sage [04/01/31 23:49]
- 質問させてください。キーイン待ちして、何秒後かにタイムアウトする
ようなプログラムは作れるでしょうか? キーイン待ちのときに割り込み28hが呼ばれるようになっていても、 この中からいきなりキー入力処理の後にジャンプなんてできそうに ないと思うし(安全とは思えないので)。なんか手ってないもんでしょうかね?
- 164 名前:デフォルトの名無しさん mailto:sage [04/01/31 23:51]
- >>163
while(kbhit()){ if(time >= basetime + 1000){ timeoutflag = 1; break; } }
- 165 名前:163 mailto:sage [04/02/01 00:04]
- >>164
ありがとうございます。 そうですね、この方法がありますね。一点気になるのがCPUを喰いすぎる かなと思うところです。(シングルタスクなので実際上の問題は無いと思い ますが。。)
- 166 名前:デフォルトの名無しさん mailto:sage [04/02/01 21:07]
- >> 163
割り込み28hの中でフラグ立てるようにして, キー入力待ちする側でタイムアウトをカウントしながら そのフラグを監視すればよいと思います。 もちろんそのフラグは利用側で事前・事後にクリアしてやらないといけません。 >> 165 > 一点気になるのがCPUを喰いすぎる ?CPUを食わないようになんてできませんよ。CPUは常に100%フル回転です。 nop連続にした方がバスへのアクセスも減って,動作しない内部ロジックが増えて 発熱・消費電力を抑えられるとか,そういう趣旨なんですかね。 それとも省電力対応CPUのお話ですか。
- 167 名前:デフォルトの名無しさん mailto:sage [04/02/01 21:33]
- ビジーループってこったろ
- 168 名前:デフォルトの名無しさん mailto:sage [04/02/02 00:39]
- >>167
MS-DOSでビジーループを気にする理由がわかりませんね。 タイマ割り込みでソフトタイマー作って,キー入力を割り込みで処理するんなら, なんにも悩むことなんてありませんですよ。 自前で擬似マルチタスクでも作ってその上で何かなさっておられるのなら, ビジーウェイトを気になさるのも理解できますが。
- 169 名前:デフォルトの名無しさん mailto:sage [04/02/02 00:46]
- ごめんごめん。俺が悪かった。
>(シングルタスクなので実際上の問題は無いと思い >ますが。。) これすら読まずに屁理屈こねるような奴に言っても無駄だったな。
- 170 名前:デフォルトの名無しさん mailto:sage [04/02/02 12:52]
- お互い様でしょうね。
- 171 名前:デフォルトの名無しさん mailto:sage [04/02/03 23:28]
- >>170
同意。
- 172 名前:デフォルトの名無しさん mailto:osage [04/02/04 12:47]
- Interrupt Listの最新って61?
- 173 名前:デフォルトの名無しさん mailto:sage [04/02/04 21:35]
- 61
ttp://www.ctyme.com/rbrown.htm
- 174 名前:デフォルトの名無しさん mailto:age [04/02/10 17:29]
- あげ
- 175 名前:デフォルトの名無しさん [04/02/17 03:26]
- バッチファイルを作っているのですが
特定のアプリを強制終了させるコマンドがどうしてもわかりません。 どなたか教えてください。 OS環境はWindows2000Proです。 XPだと、taskkillコマンドが使えるらしく Win2kならtasklist→killコマンドが使えるらしいのですが MS-DOS上でそのコマンドを打ってみてもだめでした ダメモトでバッチファイルでkillコマンドとtaskkillコマンドを書き込んでみましたが 当然だめでした。
- 176 名前:デフォルトの名無しさん mailto:sage [04/02/17 04:13]
- >>175
killはWindows 2000 Support Toolsに入っている。 Windows 2000 Support ToolsはWindows 2000のCDに入っている。
- 177 名前:175 mailto:sage [04/02/17 23:40]
- ありがとうございます!!
- 178 名前:デフォルトの名無しさん mailto:sage [04/02/18 13:19]
- カレントディレクトリのファイル名を全部大文字にするツールを
作ってるんですが、rename( 旧ファイル名, 新ファイル名 ) とやっても 全然変化しないんですよ。 DOS プロンプトから rename 旧ファイル名 新ファイル名 なら いけるんですが・・・ Cで DOS のコマンドを実行するっていう命令ありませんでした? 10年前に使ったような記憶があるが思い出せない・・・
- 179 名前:デフォルトの名無しさん [04/02/18 13:27]
- system
または exec系関数
- 180 名前:デフォルトの名無しさん mailto:sage [04/02/18 13:44]
- ここはいっちょディレクトリエントリを
直接書き換えるというのは、、、
- 181 名前:デフォルトの名無しさん mailto:sage [04/02/18 13:50]
- >>178
一回ダミーファイル名に変換してからとか。
- 182 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:00]
- ありがとうございます。
さっそくプログラム中・・・ メインプログラマーがウンコすぎて仕事が殆どオレに まわってきて死にそうです。
- 183 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:17]
- とりあえずダミーファイル名に変更することで対応できました。
ありがとうございました。 ていうかメインプログラマーまだ出社してこないよ・・・ もう○んでクレ。
- 184 名前:デフォルトの名無しさん mailto:sage [04/02/18 17:34]
- おそらく彼は今頃コタツの中で安らかに・・・
- 185 名前:デフォルトの名無しさん mailto:sage [04/02/27 20:24]
- おならを死んだ
- 186 名前:デフォルトの名無しさん [04/03/08 19:08]
- すみません。
時間を取得してファイル名にセットしたいのですが、 TIMEコマンドだと:が混じってしまい設定ができません。 何か良い方法は無いでしょうか? よろしくお願いします。
- 187 名前:デフォルトの名無しさん [04/03/08 19:32]
- age
- 188 名前:田宮良子 mailto:sage [04/03/08 20:04]
- おまえ、混じっているな
- 189 名前:ツソイチ mailto:sage [04/03/08 20:22]
- 混じってるって、どぼぉいうことだよ、
みゅぅぃぃぃぃぃぃいいいぎゅぅいいいいいいいいいいいいぃぃぃ!!!!!
- 190 名前:は ◆cplnFO9T0I [04/03/10 20:32]
- ネットワークプログラマに朗報です。
閉鎖されてたかと思われたTEENのサイトは、ただ単に鯖のHDが飛んでただけなので、 (マシントラブルとかかれていますが、どう考えたって、消失するといったらHDが飛んだとしか考えられません。) 仮運用の状態にあるそうです。みなさん、これからもがんがってください。 ttp://www.pc88.gr.jp/~teen/
- 191 名前:デフォルトの名無しさん mailto:sage [04/03/10 23:04]
- >>190
>(マシントラブルとかかれていますが、どう考えたって、消失するといったらHDが飛んだとしか考えられません。) さて、と。
- 192 名前:デフォルトの名無しさん mailto:sage [04/03/13 18:29]
- >>6
- 193 名前:デフォルトの名無しさん [04/03/29 22:12]
- こんなサイトを見つけました↓
www.command.com/ ここのスレの住民なら笑えるかも。
- 194 名前:デフォルトの名無しさん mailto:sage [04/03/30 00:44]
- ttp://command.com/
にして、www.を省略したほうがそれっぽいよ。
- 195 名前:は ◆cplnFO9T0I [04/05/14 20:21]
- 2ちゃんねるブラウザを作ってるんですが、
お気に入りを読み込む部分は動的リンクにしたほうが良いでしょうか? 回答願います。
- 196 名前:デフォルトの名無しさん mailto:sage [04/05/14 22:19]
- スレ違い
- 197 名前:デフォルトの名無しさん mailto:sage [04/05/15 01:59]
- >>196
そうなのか?
- 198 名前:デフォルトの名無しさん mailto:sage [04/05/15 02:13]
- Web Boy を参考にせよ
- 199 名前:デフォルトの名無しさん mailto:sage [04/05/15 14:28]
- >>197
だってどう見ても195はDOS用の2ちゃんねるブラウザを作っているようには見えない
- 200 名前:は ◆cplnFO9T0I [04/05/15 18:39]
- >>198
参考にしろといわれてもねぇ。 >>199 何故に? コンポーネントをEXEにして分離したほうがいいのか聞いてるんですけど。
- 201 名前:デフォルトの名無しさん [04/05/15 18:42]
- >>200
それは動的リンクとは言わない。
- 202 名前:デフォルトの名無しさん mailto:sage [04/05/15 18:50]
- オーバーレイとかあったなぁ(しみじみ
- 203 名前:デフォルトの名無しさん mailto:sage [04/05/16 01:28]
- 思うがままに作って、完成させてから要望聞いて対応すりゃいいじゃん。
要望が出そうなところが分かってるなら、最初からそういう風に設計できるだろ? ただ、DOS用なら、俺としては実行部はファイル1つの方が分かりやすい。 >>195の言う「動的リンク」が何を指すのか、>>200でいよいよ分からなくなったが…
- 204 名前:は ◆cplnFO9T0I [04/05/16 18:38]
- >>201
似非動的リンク >>203 わかったYO! ともかくそこの部分を変更可能なように作っておくということで。 ともかく、ひとつのEXEで作ってみる。
- 205 名前:デフォルトの名無しさん [04/05/16 18:41]
- >>204
似てもいない。
- 206 名前:デフォルトの名無しさん mailto:sage [04/05/17 04:13]
- とりあえず、がんがれ。
- 207 名前:デフォルトの名無しさん [04/07/03 15:04]
- 消えた「は」
- 208 名前:は ◆cplnFO9T0I mailto:sage [04/07/04 00:17]
- 生きてますよ。
- 209 名前:デフォルトの名無しさん [04/07/14 01:46]
- 昔から疑問だったんだけど、>>143にあるようなVRAMアドレスって
DOSエクステンダを使うとどうなるんですか? アドレス変わっちゃうのかな?
- 210 名前:デフォルトの名無しさん mailto:sage [04/07/14 02:01]
- DOSエクステンダは1MB以下のメモリはアドレスが変わらないように
マップしてくれます。その代わりぬるぽが検出できないわけで
- 211 名前:デフォルトの名無しさん mailto:sage [04/07/14 10:32]
- pharlapのdosエクステンダはvram用セレクタがあるよ
- 212 名前:デフォルトの名無しさん [04/07/14 16:58]
- 前に他のスレで伺ったらスレ違いとのことでしたので、
こちらでお尋ねしてもよろしいでしょうか? VCでCUIのプログラムを作ったのですが、 Windows(XP/200/98等)内のDOSプロンプトでは動作するのに、 Windows98の起動ディスクで起動したDOSプロンプト内では動作しません。 Win32APIは使っていません。 調べた範囲ではSTUBが動作してしまっているようなのですが、 どうすればこの場合STUBではなく通常動作させられるのでしょうか?
- 213 名前:デフォルトの名無しさん mailto:sage [04/07/14 17:08]
- 最近のVCはDOS用プログラム作れないからCUIでビルドしても無理
DOS対応コンパイラを探せ
- 214 名前:デフォルトの名無しさん mailto:sage [04/07/14 17:20]
- TurboC++とかだな
- 215 名前:212 mailto:sage [04/07/14 17:32]
- >>213 , >>214
ありがとう
- 216 名前:デフォルトの名無しさん mailto:sage [04/07/14 18:44]
- Digital MarsとかもDOS吐けるでしょ。
- 217 名前:デフォルトの名無しさん mailto:sage [04/07/16 10:36]
- お分かりになる方がいらしたら教えていただきたいのですが・・・
MASMver5で作ったマンデルブロ集合計算プログラム( .387ディレクティブ で有効にした浮動小数点命令を使用してます)なんですが、IBMのDOS5J の下で実行させると45分もかかるのに対して、WIN98SEのDOS窓では 4分程で終了します。どうしてこんなに実行時間に差がでるのか?と不思議に 思っています。何が原因でしようか。 CPUはATHLON2000+で、マ・・集合計算プログラム中でEMMS命令により MMX命令を禁止させてます。(EMMS命令を追加してやらないと浮動小数点 命令が正常に実行されません) よろしくお願いします。。
- 218 名前:デフォルトの名無しさん mailto:sage [04/07/16 10:46]
- SEは優秀だから
- 219 名前:デフォルトの名無しさん mailto:sage [04/07/16 14:44]
- >>217
計算だけ? 描画もしてる? DOS窓はフルスクリーン?
- 220 名前:217 mailto:sage [04/07/16 19:01]
- >>219様
レス、ありがとうございます。 DOS窓はフルスクリーンで、計算と同時に描画も行っています。
- 221 名前:デフォルトの名無しさん mailto:sage [04/07/16 19:15]
- >>220
試しに計算だけで比べてみるといい。 DOSの描画はVGA互換モードだから遅いのかな。
- 222 名前:217 mailto:sage [04/07/16 19:39]
- >>221様
ありがとうございます。 ご指摘のようにDOSでの描画は、BIOSのサービス(ファンクション番号 0CH)を利用しているため遅いです。正確に測ったことはありませんが、 単純に点を打っていくだけでも、400*400の面いっぱいを描くのに数十 秒位かかったように記憶しています。
- 223 名前:デフォルトの名無しさん [04/07/26 01:30]
- XPでLSI-Cを使おうとすると、uasgeが空行になっちゃうんですが
対処法あります?
- 224 名前:デフォルトの名無しさん mailto:sage [04/07/26 07:47]
- >>223
状況がよく分からんのでソース貼ってくれ。 実行結果も。
- 225 名前:デフォルトの名無しさん [04/07/26 10:56]
- >>224
いやただたんに $lsic (謎の改行(usage分?)) $ こんな感じなんですよ
- 226 名前:デフォルトの名無しさん mailto:sage [04/07/26 13:13]
- 一回command.com起動汁
XPってDOSコマンドが表示されない時があるんだよな・・・
- 227 名前:デフォルトの名無しさん mailto:sage [04/07/26 15:30]
- NTVDMとやらが悪さしているようでガスね
毎回command.com立ち上げるのめんどいんでこれを機にDOSBOX入れまス
- 228 名前:デフォルトの名無しさん mailto:sage [04/07/26 20:43]
- DOSBOXってこれ?
dosbox.sourceforge.net/
- 229 名前:デフォルトの名無しさん mailto:sage [04/07/26 22:24]
- sou
- 230 名前:デフォルトの名無しさん [04/08/01 16:53]
- ハードウェアを直接叩くのが面白いと聞いたので、パンチしたら壊れました。
どう責任とってくれるんですか。楽しくありませんでした。
- 231 名前:デフォルトの名無しさん mailto:sage [04/08/01 17:05]
- スレ違い
pc5.2ch.net/test/read.cgi/tech/1090324689/
- 232 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:10]
- 最近はハードウェアよりもソフトウェアに対してムカつくことが多いです。
ソフトウェアを直接叩く方法を教えてください。
- 233 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:40]
- >>232
右斜め45度から勢いよくやれ。
- 234 名前:デフォルトの名無しさん [04/08/02 00:42]
- >>233
本当だな?
- 235 名前:sage [04/08/02 01:31]
- 諸先輩方に質問があります。
大変、厨房な質問ではありますがどうかよろしくお願いいたします。 (1).EXEファイルの先頭512バイトのリロケーション情報領域の事ですが、先頭1バイト目の『ファイル識別子』の種類と意味を知りたいのですがどなたかご存知でしょうか? (2).EXE/.COMファイルのリロケーション領域について詳しく紹介されているHPがあれば教えていただきたいのですが。 現在、勉強中なのですが参考文献も減ってきており四苦八苦しております。 どうか宜しくお願い致します。
- 236 名前:235 mailto:sage [04/08/02 02:20]
- >(2).EXE/.COMファイルのリロケーション領域について詳しく紹介されているHPがあれば教えていただきたいのですが。
(2).EXEのリロケーション領域と.COMのPSP領域について詳しく紹介されているHPがあれば教えていただきたいのですが。 の間違いでした。スミマセン。
- 237 名前:デフォルトの名無しさん mailto:sage [04/08/02 11:01]
- MSDOS拡張機能セットを買え
- 238 名前:デフォルトの名無しさん mailto:sage [04/08/03 00:10]
- 昔はプログラミングの資料がOSに付いてたんだったな
つーかマジな話拡張機能セットってまだ買えるの?
- 239 名前:デフォルトの名無しさん mailto:sage [04/08/04 13:17]
- MSDNに載ってないか?
- 240 名前:デフォルトの名無しさん mailto:sage [04/08/04 22:05]
- ここにある資料ではどうよ?
漏れは「リロケーション領域」の意味がわからんので自分で調べてくれ。 ttp://www.wotsit.org/
- 241 名前:デフォルトの名無しさん mailto:sage [04/08/05 11:17]
- >>235
DOS PSP」でググッたら、PSPの説明ありますた。 超カメレスで、スマソ ttp://www5c.biglobe.ne.jp/~ecb/assembler2/7_5.html
- 242 名前:235 mailto:sage [04/08/06 00:33]
- 皆さんレス有難う御座います。
>MSDOS拡張機能セット ・・・資金が不足している為、購入不可です。 >MSDN そういえば、載っているかも知れませんね。 調査不足でした。 >>240さんから紹介して頂いたページは最高にいいですね。 ピンポイントで知りたい情報が載ってました。 その他にも色々なファイル情報があり素晴らしいページですね。 お気に入りに登録しときました。 本当に有難う御座いました。 もうちょっと精進しときます。
- 243 名前:デフォルトの名無しさん mailto:sage [04/08/06 07:32]
- >>235
DOS5Aのマニュアルp295,296 「EXEファイルの構造と・・・」 uploda.net/cgi/uploader2/index.php ここに飛んでupload25235.jpgをクリックしてちょ
- 244 名前:デフォルトの名無しさん mailto:sage [04/08/07 01:39]
- >>233
せっかくカラー化できると思ったのに白黒に逆戻りになってしまうではないですか?
- 245 名前:デフォルトの名無しさん mailto:sage [04/09/07 23:04]
- VGAの同期信号を一時的に停止させるgenericな方法ってありませんか?
- 246 名前:デフォルトの名無しさん mailto:sage [04/09/08 21:31]
- VGA コントロールレジスタ」でググッたら、こんなのがありますた。
↓ community.osdev.info/index.php?VGA 0x03c3:VGA動作許可レジスタ(8bit、W) bit0:VGA動作許可(1:動作許可) bit1-7:リザーブ このレジスタいじったら、どうなるんだろ?
- 247 名前:デフォルトの名無しさん [04/09/21 22:28:05]
- PCIバスボードの割り込み関係の話なんですけど、
割り込みを使用するボードを1枚挿してBIOS上で 単一のIRQ(例えば5)のみを使用するように設定して そのベクタを書き換えた場合の割り込み処理は問題ないのですが、 複数のIRQ(例えば5と12)を使用するように設定した場合に ベクタを書き換えた後、割り込みが発生すると スタックオーバーフローが出て暴走してしまいます。 勿論IRQを複数使用できる設定にしていても実際使用している IRQは1つですし、実行ファイルも同じものです。 割り込み処理の記述等で何か注意する必要があったりしますか?
- 248 名前:デフォルトの名無しさん mailto:sage [04/09/21 22:46:52]
- >>247
「スタックオーバーフローが出て暴走してしまいます。」 スタックポインタのチェックコードが有効のままになっていて、 割り込みルーチンであぼんしているわけじゃなくて、本当にスタックを 食いつぶしているってことですか?
- 249 名前:デフォルトの名無しさん mailto:sage [04/09/21 22:53:56]
- interrupts?で追い確認?
- 250 名前:デフォルトの名無しさん mailto:sage [04/09/22 06:15:23]
- >>248
割り込みを発生させた途端、 Internal Stack Overflow System Halted のようなメッセージが画面に表示されて 止まってしまうような状況です・・・。 このメッセージ自身DOSで出してるので 恐らく実際スタックを潰しちゃってると 思うんですが・・・。
- 251 名前:デフォルトの名無しさん mailto:sage [04/09/22 10:56:42]
- >>250
割り込みの発生ペースは上がってますか? config.sys で STACKS=64,512 とか指定してみるとどうでしょう。
- 252 名前:デフォルトの名無しさん mailto:sage [04/09/22 20:42:14]
- >>251
割り込みトリガそのものは外部のスイッチから与えてるので 発生している割り込みは1回だけだと思います、多分。 スイッチのチャタリングが発生してる可能性もあるかも知れませんが、 上手くいくパターンでは1回の割り込みしか発生していませんでした。 しかし駄目なパターンの場合はその1回目で例のメッセージが 出てしまうんですよね・・・・。 config.sysの変更については今その環境が無いので 試せませんが明後日に試してみようかと思います。
|

|