- 1 名前:デフォルトの名無しさん [03/03/07 10:45]
- ハードウェアを直接叩くのはやっぱり楽しい!
DOSにおける開発について語りましょう。
- 252 名前:デフォルトの名無しさん mailto:sage [04/09/22 20:42:14]
- >>251
割り込みトリガそのものは外部のスイッチから与えてるので 発生している割り込みは1回だけだと思います、多分。 スイッチのチャタリングが発生してる可能性もあるかも知れませんが、 上手くいくパターンでは1回の割り込みしか発生していませんでした。 しかし駄目なパターンの場合はその1回目で例のメッセージが 出てしまうんですよね・・・・。 config.sysの変更については今その環境が無いので 試せませんが明後日に試してみようかと思います。
- 253 名前:デフォルトの名無しさん mailto:sage [04/09/24 21:28:58]
- ん〜駄目でした・・・・orz
でもどうやら駄目なケースの場合は何故かベクタの書き換えが 上手くいっていないようです。 今日も色々試したんですがサッパリ・・・・もうどうすれば(ノД`)
- 254 名前:デフォルトの名無しさん [04/09/25 19:06:54]
- すみません。MS-DOS 6 の Files/FCBS/Buffers/Lastdrive/stacks を
UMBやHMAに持ち上げるプログラムありませんか? PC-98 用なら何とかありますが、DOS/V用がありません。 無ければ作ろうと思いますので、資料でも可。
- 255 名前:デフォルトの名無しさん mailto:sage [04/09/25 19:41:59]
- DOSでプログラミングと言えば、ボーランドが昔のDOS用の製品を
まとめて売り出しているが、買う香具師いるのか? ttp://www.borland.co.jp/bcsuite/
- 256 名前:デフォルトの名無しさん mailto:sage [04/09/25 22:00:10]
- いません。
どうせあと二年もすれば無料になるよ。
- 257 名前:デフォルトの名無しさん mailto:sage [04/10/04 17:23:32]
- Windowsが普及しきってからPCを使い始めましたが
なぜかDOSに惹かれるので、DOSコマンドも覚えました。 今からDOSプログラミングを始めようと思ったら どういった手段で資料を集めればいいでしょうか? 大きい本屋になら未だに並んでるのか、Web上で足りるのか、諦めるしかないのか・・・
- 258 名前:デフォルトの名無しさん mailto:sage [04/10/04 18:13:52]
- どんなことをなさりたいのか分かりませんが、DOSのシステムコールの説明
なら、DOSの拡張セット(NECのDOSの場合)にマニュアルが添付されて ました。が、今でも販売されているかどうか? オークションに出るかもしれ ませんね。BIOSサービスとかハードウェア関係は、CQ出版社が昔、解説本を 多数出してましたが、今でも在庫があるかどうか?
- 259 名前:デフォルトの名無しさん mailto:sage [04/10/04 18:35:31]
- コマンドがどうとかっていうことが興味の方向なら、
Cygwin でも入れて perl とか awk その他を覚えてゆくのが良いような気がする。
- 260 名前:デフォルトの名無しさん mailto:sage [04/10/04 18:41:22]
- >>254
PACK for WIN GOLD 98後期版」なるCDブックにENVHI.EXEという フリーソフトが収録されていて、これが「一番親のcommand.comの 環境変数をUMBに追いやって、ほんの少しだけ空きメモリを広くできる かも知れません。」なのだそう。こういうのを差しているのかな? 激しくカメレスで、スマソ
- 261 名前:デフォルトの名無しさん mailto:sage [04/10/04 21:39:45]
- >>254
MSDOS7なら全部〜Highがあるんだけどそれじゃだめだよな。
- 262 名前:デフォルトの名無しさん mailto:sage [04/10/06 13:21:53]
- >257です。
コマンドラインで作業をしたいという訳ではなく、>258の仰るようなことに興味があります。 資料はオクで探すしかないようですね。ありがとうございました
- 263 名前:デフォルトの名無しさん mailto:sage [04/10/06 23:09:24]
- >>262
www5c.biglobe.ne.jp/~ecb/assembler2/assembler10.html
- 264 名前:デフォルトの名無しさん [04/10/06 23:26:34]
- すみません。
C言語 dos で msecの時間を表示したいのですが、 どのようにすればよいでしょうか? よろしくお願いします。 よろしければプログラム貼り付けてください。
- 265 名前:デフォルトの名無しさん [04/10/11 18:11:12]
- hoge
- 266 名前:デフォルトの名無しさん mailto:sage [04/10/11 20:17:02]
- >>263
アセンブラのコンパイラってなんだ???
- 267 名前:デフォルトの名無しさん mailto:sage [04/10/11 20:42:12]
- >>264
環境依存です。
- 268 名前:デフォルトの名無しさん mailto:sage [04/10/12 07:43:54]
- >>264
読解力不足のせいで意味がわかりかねるのですが、もしmsecがミリセコンドの略で あり、また、何等かの現象をパソコン内臓のタイマを利用してミリセコンド単位で 計測、表示したいというのが>>264氏の希望であるのならば、これが役に立つかも? ただし、NECの9801の場合で、しかもアセンブリ言語です。 ↓ 速水さん、許してちょ ↓ ttp://ludwig.kir.jp/ok/src/1097534047798.jpg ttp://ludwig.kir.jp/ok/src/1097534142576.jpg ↓ ttp://ludwig.kir.jp/ok/src/1097534225064.jpg 所謂DOS/V機の場合、最近のマザーボートはWIN2000以降のOSを前提に 設計されているようなので、タイマIC8253完全互換の機能をサポートしてる のどうかとかアドレスがオリジナルPC/AT機と同じかどうかは?ですね。
- 269 名前:デフォルトの名無しさん mailto:sage [04/10/12 16:27:43]
- DOSでtimeGetTime()見たいのってないの?
- 270 名前:デフォルトの名無しさん mailto:sage [04/10/12 23:40:56]
- ない。
DOS時代はタイマICに直接アクセスするとか、 VSYNC割り込みトラップして自分でカウントするとかでなんとかしてた。
- 271 名前:デフォルトの名無しさん mailto:sage [04/10/12 23:53:23]
- ttp://www.vector.co.jp/soft/dos/personal/se004253.html
- 272 名前:デフォルトの名無しさん mailto:sage [04/10/13 09:17:08]
- そうか、タイマはFM再生とか効果音に使いそうだからやっぱりVSYNCなのかな
ありがとう
- 273 名前:デフォルトの名無しさん [04/10/13 15:20:56]
- >>268 の貼ってくれたスキャンみてて思ったんですけど
outのあと何クロックはoutの結果に依存した処理をしちゃいけない とかを解説したとこってないですか?
- 274 名前:デフォルトの名無しさん [04/10/13 16:43:53]
- ttp://anabuki.ec.u-tokai.ac.jp/class/kouza/kakitoku/kaki.htm
- 275 名前:デフォルトの名無しさん mailto:sage [04/10/13 20:11:09]
- >>264
いろいろ書いてあります↓ ttp://www.webtech.co.jp/undoc/io_cal.txt > o カレンダ時計割り込み搭載機種では、MS-DOS環境でHRTIMER.SYSというデバ >イスドライバを組み込むことでDOSファンクションで1/100秒単位の時刻を >取得することが可能である。 ttp://www.webtech.co.jp/undoc/io_tcu.txt
- 276 名前:デフォルトの名無しさん mailto:sage [04/10/20 18:47:58]
- DOS
- 277 名前:デフォルトの名無しさん mailto:sag [04/10/26 18:57:56]
- 上げてみるクスコ
- 278 名前:デフォルトの名無しさん mailto:sage [04/10/26 19:06:53]
- 32Bitコンパイラで「int 10h」
のシステムコールを使うとバグるんですが 32bitコンパイラでDOSのビデオモードの 変更とかどうやってやるんですか? 教えてください、お願いします。
- 279 名前:デフォルトの名無しさん mailto:sage [04/10/26 19:16:45]
- 環境ぐらい書け
- 280 名前:デフォルトの名無しさん mailto:sage [04/10/26 20:31:00]
- 一般的なことしか書けませんが、プロテクトモードではIDTを記述して
やらないと割り込みが使えないはずですが、この点はいかがでしょうか。 32bitコンパイラに関してはド素人なもので、こんなことしか書けません。 失礼しました。
- 281 名前:デフォルトの名無しさん mailto:sage [04/10/26 22:15:04]
- ただ単にWindowsの32ビットプログラムでやろうとしているだけだったりして。
- 282 名前:デフォルトの名無しさん mailto:sage [04/10/26 22:19:01]
- 想像で語るのはやめようや
- 283 名前:デフォルトの名無しさん mailto:sage [04/10/26 22:32:55]
- だったら環境かけよボケが
- 284 名前:デフォルトの名無しさん [04/10/28 07:09:47]
- >>281
けっきょくこれか?クズが!
- 285 名前:デフォルトの名無しさん mailto:sage [04/10/28 07:19:05]
- >>278
リアルモードにおりてから実行妹汁
- 286 名前:278 mailto:sage [04/10/29 18:09:42]
- >>280,285
有難うございました、やってみます 環境はBorland C++5.5でMEです。 其の他の人もどうもすみませんでした。
- 287 名前:デフォルトの名無しさん mailto:sage [04/10/29 22:25:06]
- 281の言う通りでしたとさ。
- 288 名前:デフォルトの名無しさん mailto:sage [04/10/30 00:46:03]
- DOS窓という通称の弊害がこんなところに
- 289 名前:デフォルトの名無しさん mailto:sage [04/10/31 07:42:50]
- DOSエクステンダーってどうやって使うの?
教えてエロい人(;つД`)
- 290 名前:デフォルトの名無しさん [04/10/31 14:15:37]
- マヌアルを小便ちびるまで嫁
- 291 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:29:10]
- manual自体入手しづらくないか?
- 292 名前:デフォルトの名無しさん mailto:sage [04/11/01 17:07:21]
- 言い訳はトイレに行って一人でして下さい
- 293 名前:デフォルトの名無しさん mailto:sage [04/11/02 15:19:28]
- まにゅあるなんてもうねぇだろ
- 294 名前:デフォルトの名無しさん mailto:sage [04/11/02 21:03:46]
- マニュアル付きDOSエクステンダ (EXE386)
ttp://www.vector.co.jp/soft/maker/kmc/se002624.html 処理系も欲しいなら Digital Mars C++ (X32) (コンパイラはWin32アプリ) ttp://www.digitalmars.com/ Open Watcom (DOS/4GW) (こっちはDOS上でもコンパイルできる) ttp://www.openwatcom.org/index.html
- 295 名前:デフォルトの名無しさん mailto:sage [04/11/06 14:35:47]
- Digital MarsとOpen Watcomって
とっちが使いやすい?
- 296 名前:デフォルトの名無しさん mailto:sae [04/11/08 20:43:59]
- 正直俺も仮想8086モードでINT関係が使えん何故だ・・・・
- 297 名前:デフォルトの名無しさん mailto:sage [04/11/09 16:33:34]
- Open Watcomって商用では使わない方が良いって聞くけど何で?
- 298 名前:デフォルトの名無しさん mailto:sage [04/11/09 16:45:12]
- >>297
何故そう言った奴に聞かない?
- 299 名前:デフォルトの名無しさん mailto:sage [04/11/10 18:40:55]
- 噂とかで流れてんじゃねーの( ´ー`)フゥー...
- 300 名前:デフォルトの名無しさん mailto:sage [04/11/14 16:49:57]
- >>297
商用で使ってはいけないとライセンスに書かれているからです。
- 301 名前:デフォルトの名無しさん mailto:sage [04/11/14 23:04:29]
- マジッスカ???
- 302 名前:デフォルトの名無しさん mailto:sage [04/11/15 09:30:55]
- マジッスヨ???
- 303 名前:デフォルトの名無しさん mailto:sage [04/11/16 16:59:11]
- DOS画面で、入力内容とかメッセージとかをファイルに出力するコマンドがあったら
教えて下さい。
- 304 名前:デフォルトの名無しさん mailto:sage [04/11/16 17:10:11]
- >>303
質問があいまいだな COPY CON filename や ECHO 、リダイレクトなど。
- 305 名前:デフォルトの名無しさん mailto:sage [04/11/16 17:29:14]
- >>303さん
レスありがとうございます。 DOS画面の表示内容をそのままファイルに出力したいのです。 長いバッチで古い上の方が消えてしまうもので、 それを全て記録したいのです。 初心者なのでいまいちうまく説明できなくてすみません。
- 306 名前:デフォルトの名無しさん mailto:sage [04/11/16 17:36:50]
- >>304さんありがとうございました。
リダイレクトでできました。 即レスありがとうございます。
- 307 名前:デフォルトの名無しさん [04/11/22 16:29:27]
-
- 308 名前:デフォルトの名無しさん mailto:sage [04/11/24 15:25:49]
- [Windows]初心者〜管理者まで必読!コマンドライン(DOS Pt.3)
pc5.2ch.net/test/read.cgi/win/1062775949/
- 309 名前:デフォルトの名無しさん [04/12/07 23:03:00]
- アスキー出版局の、PC−9801スーパーテクニックっつー本
誰かいらんけ?
- 310 名前:デフォルトの名無しさん mailto:sage [04/12/07 23:16:35]
- >>309
図書委員の権限発動して高校の図書館に入れさせてコピーした記憶のある懐かしい代物だなw
- 311 名前:デフォルトの名無しさん mailto:sage [04/12/09 23:03:50]
- あなたを詐欺罪で訴えます。
- 312 名前:デフォルトの名無しさん mailto:sage [04/12/10 13:39:44]
- >>2 >>109
今更だが、パッチってこれだな。 groups.google.com/groups?hl=ja&lr=&c2coff=1&selm=37E0FA53.FF84E994%40anet.ne.jp
- 313 名前:デフォルトの名無しさん mailto:sage [04/12/10 15:10:04]
- >>312
まぁあれだ、MSに対向するためのみの意義しかないグラフィック機能を除けば今でもそれなりだろうね。 少なくともLSI-Cを使うよりも16倍いい。 #あれはあれで、悪くはないのだが。
- 314 名前:デフォルトの名無しさん mailto:sage [04/12/10 15:32:19]
- LSI-CはLFN libraryがあるから、Win/DOS両方で使えるような小物を作るのに重宝している。
- 315 名前:デフォルトの名無しさん [04/12/12 21:55:24]
- dosのフォントが気に入らない。変更するにはレジストリをいじるしかないのかな?
- 316 名前:デフォルトの名無しさん mailto:sage [04/12/12 22:02:34]
- そりゃDOS窓やろ
- 317 名前:デフォルトの名無しさん mailto:sage [04/12/12 22:05:17]
- もし窓じゃないDOSならCONFIG.SYSをいじって下さい。
- 318 名前:デフォルトの名無しさん [04/12/14 13:58:46]
-
- 319 名前:デフォルトの名無しさん mailto:sage [04/12/16 15:04:05]
- DOSってなんどす?
- 320 名前:デフォルトの名無しさん [04/12/18 16:37:45]
- Turbo C + nasm + alink => 16bits DOS EXE
をしているのですが、どうもうまくいきません。 ASMからC関数はよべるのですが、 CからASM関数をよぶとエラーになってしまいます。 それから、Cから指定されたポインタはスタック内でどのようになっているのでしょうか。 たとえば、 mov ah,09h mov dx,[bp] ;<-ここがよくわかんない int 21h というように、ASM側でどのように指定してよいかわかりません。 どなたか教えていただけませんか?
- 321 名前:デフォルトの名無しさん mailto:sage [04/12/18 16:57:42]
- DOSで動作するMASMの6か5.1ってフリーになってないのかな。
- 322 名前:デフォルトの名無しさん mailto:sage [04/12/18 17:37:39]
- セグメントディスクリプタを書いてないんじゃないかと E.S.P.
- 323 名前:デフォルトの名無しさん mailto:sage [04/12/18 18:16:12]
- >>320
FAQ 勉強してから質問しれ
- 324 名前:320 [04/12/18 18:24:44]
- >321
MASM はサイズが大きすぎるので、ちょっと。。。 >322 せぐめんとでぃすくりぷたとは??
- 325 名前:320 [04/12/18 18:36:14]
- >323
質問の説明が悪かったですね。。 まず、ASM関数 _puts を用意します。 関数内では、 ah=09h ds:dx=buffer int 21h を処理するようにします。 そして、Cからこの関数を呼び出したいとします。 セグメントが違う(僕の勘違いかもしれませんが)ので、 mov ah,09h mov dx,[bp] ;[bp]=Cの引数 int 21h とすると、ゴミが表示されます。 という内容でした。
- 326 名前:デフォルトの名無しさん mailto:sage [04/12/18 19:13:05]
- >>325
引数は正しくわたされてるか _pusは正しく動作するか C側のオブジェクトは確保されているか これらを確かめた上で tcのローカル変数を処理したいのならば([bp]と書いてあるので)、スタック上に確保されている よってDSで処理する_putsに適合させることはできない。(セグメントオーバーライドでも不可) DS上の別領域にでもコピーする ただし、small modelならばSS=DSなので問題は起きない
- 327 名前:デフォルトの名無しさん mailto:sage [04/12/18 19:52:37]
- つーか、コンパイラにアセンブリ出力させてよく見ろ。
- 328 名前:デフォルトの名無しさん [04/12/18 21:52:29]
- ACPIをDOSでコントロールしたいのですが、どこかにソースかライブラリが落ちていないですか?
- 329 名前:デフォルトの名無しさん mailto:sage [04/12/18 22:38:48]
- 俺はEPSONのPC386からぶっこぬいてきたフォントをTerminalの14ptに突っ込んで使ってるので
DOSの時代からWin95/98/2000を経てXPのコマンドプロンプトまで同じフォント。 ついでにLinux上のX-Winodwも一緒
- 330 名前:デフォルトの名無しさん mailto:sage [04/12/18 22:53:51]
- 日記は(ry
- 331 名前:デフォルトの名無しさん mailto:sage [04/12/19 04:18:23]
- w
- 332 名前:320 [04/12/19 08:57:41]
- >327
引数の受け渡されているところが、なまなましく見ることができ理解できました。 ただ、C側のアドレスに関しては解決できません。 extern void putc( char c);/*ASM関数*/ char* ss="Hello World!\n$"; putc( *ss);/*表示されるのは,ゴミ*/ 相性が悪いのでしょうか?
- 333 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:02:13]
- asm以前にCもわかってなさそうだな・・・・・
- 334 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:04:47]
- >>333
俺も全く同じ事を思った。 >>332 >相性が悪いのでしょうか? プログラミングとあなたの相性が悪いせいかもしれない。
- 335 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:10:43]
- なんせ完全な解が出てるのに無視してる
- 336 名前:320 [04/12/19 09:29:04]
- ソースです。ご指摘、お願いします。
NASM -f obj start.nas TCC -c main.c ALINK start.obj main.obj -oEXE -o test.exe ;start.nas segment .text USE16 extern _main ..start: call _main mov ax,4C00h int 21h global _putc _putc: push bp mov bp,sp add bp,4 push dx mov ah,02h mov dl,[ss:bp] int 21h pop dx pop bp ret segment stack stack resb 100h stacktop:
- 337 名前:320 [04/12/19 09:29:34]
- /*main.c*/
extern void putc ( char c); void main ( void) { char* test="Hello World!\n$"; putc( 'i');/*"i"表示*/ putc( *test);/*ゴミ表示*/ }
- 338 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:38:36]
- だからCの勉強をしなさいって。
- 339 名前:デフォルトの名無しさん [04/12/19 09:41:24]
- "Hello World!\n$"
なんの意味があるんだ最後の$…
- 340 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:42:28]
- うーん・・・・まず2chの勉強が先かと・・・・・・・・
まずはsageと打鍵する練習
- 341 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:42:58]
- じゃなかった。この原因は。
Cの「スタートアップ」と呼ばれるものが何をしているか もっとはっきり言えば、DS,ES,SSは誰がいつ設定しているのか、と。
- 342 名前:デフォルトの名無しさん mailto:sage [04/12/19 09:44:54]
- それもCの勉強なんだがな
- 343 名前:320 [04/12/19 10:21:50]
- "Hello World!" のセグメントは、>326 の言ったとおり取得できないんでしょうか?
>341 スタートアップについてはよくわかりません。。 バイナリ初心者なもので。。
- 344 名前:デフォルトの名無しさん mailto:sage [04/12/19 10:39:15]
- うひょひょひょ。
ヘルプ見ろ。 サンプル見ろ。 ヘルプ見ろ。 サンプル見ろ。 関数の使い方書いてあるだろ。 初心者はそれ真似することからはじめろよw
- 345 名前:デフォルトの名無しさん [04/12/19 10:44:38]
-
char* ss="Hello World!\n$"; putc2( *ss); mov ah,09h mov dx,[bp + 0] mov ds,[bp + 2] int 21h としてみてください・・・
- 346 名前:デフォルトの名無しさん [04/12/19 10:50:48]
-
char[] ss={"Hello World!\n$"}; putc2(ss); mov ah,09h mov dx,[bp + 0] mov ds,[bp + 2] int 21h としてみてください・・・
- 347 名前:320 [04/12/19 10:58:46]
- 訂正です。
"Hello World!\n$" =訂正=> "Hello World!\r\n$" >345 ASM関数 _puts: push bp mov bp,sp add bp,4 push dx push ds mov ah,09h mov dx,[bp + 0] mov ds,[bp + 2] int 21h pop ds pop dx pop bp ret を追加した後、C側で puts( ss); としたところ、これもゴミが出てきます。。。
- 348 名前:デフォルトの名無しさん mailto:sage [04/12/19 11:07:36]
- 半可通が教えるクンして泥沼プ
またーりオチ
- 349 名前:デフォルトの名無しさん [04/12/19 11:14:10]
- よくこんなんで、nasmとかalinkを使うよな。
トラブルが全く切り分けられないのに、標準以外のツールなんか使うなよ。
- 350 名前:デフォルトの名無しさん mailto:sage [04/12/19 11:38:52]
- typoっぽいケアレスが気になるんだけど、何回も書いているから本当に理解してないのかも・・・・・・
- 351 名前:デフォルトの名無しさん mailto:sage [04/12/19 12:34:28]
- しかし、ここの住人はキモイな
ここまで性根が腐ってるとは。。。 よっぽど現実社会じゃ、みじめでいじめられてるんだろうんなw
- 352 名前:デフォルトの名無しさん [04/12/19 12:53:07]
- ASM関数
_puts: mov bp,sp push dx push ds mov ah,09h mov dx,[bp + 2] mov ds,[bp + 0] int 21h pop ds pop dx ret としてみてください・・・
|

|