- 1 名前:デフォルトの名無しさん [03/03/07 10:45]
- ハードウェアを直接叩くのはやっぱり楽しい!
DOSにおける開発について語りましょう。
- 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 としてみてください・・・
- 353 名前:デフォルトの名無しさん mailto:sage [04/12/19 13:12:31]
- 手取り足取り指導してる方がよっぽど醜悪
これがわからない内は引き篭もってろ
- 354 名前:\________/ [04/12/19 14:10:09]
- ∨
/ ̄ ̄ ̄ ̄\ ( 人_____,,) |ミ/ ー◎-◎-) ボクハ ホントウハ ツヨインダゾ・・・ブツブツ (6 (_ _) ) カタカタカタ | ∴ ノ 3 .ノ ______ ヽ、,, __,ノ | | ̄ ̄\ \ / \.____| | | ̄ ̄| / \___ | | |__| | \ |つ |__|__/ / /  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
- 355 名前:デフォルトの名無しさん mailto:sage [04/12/19 14:17:57]
- >>351
絶妙な釣りと、釣りに気づきながら悪ノリしているこのスレの常連の構図だが。
- 356 名前:デフォルトの名無しさん mailto:sage [04/12/19 14:30:58]
- 過疎スレで釣りをする人間がいる訳ないし(ヒマな引き篭もりほど
そんな発想をするんだろが)、こんな過疎スレでいつもの構図も何もない。 悪ノリと言っても、みじめな自分の社会生活のウサ晴らしに 初学者をいびってるだけだろうが。 顔だけでなく精神まで腐ってちゃ救いようがないな。 全く内外ともに絵に描いた様なキモオタだな。 だから何時までもバカにされてみじめなんだよ。耳が痛いだろう。 アンタらは、もう一生救われないよ。
- 357 名前:デフォルトの名無しさん mailto:sage [04/12/19 14:33:13]
- 久しぶりの餌なんだから、もっとゆっくり食べようよ
- 358 名前:デフォルトの名無しさん mailto:sage [04/12/19 14:38:33]
- 魚が逃げちゃうよ。orz
- 359 名前:デフォルトの名無しさん [04/12/19 14:48:02]
- 初学者の割に、他人のアドバイスを聞く耳を持ってないようだがw
耳に心地良い(そして間違ってるwww)アドバイスについて逝くしwwwww
- 360 名前:デフォルトの名無しさん mailto:sage [04/12/19 14:53:48]
- wを連打してるのが痛々しい 悔し泣きしてるのか?
- 361 名前:デフォルトの名無しさん mailto:sage [04/12/19 21:45:00]
- 他のasmスレに逝ってないようだし、本当に釣りだったかも
- 362 名前:デフォルトの名無しさん mailto:sage [04/12/19 21:47:40]
- とりあえずメモリモデルについて調べろ、引数がstackにどう積まれるか、だな
- 363 名前:デフォルトの名無しさん mailto:sage [04/12/19 22:10:00]
- 何を逝っても無駄・・・・・誰の話もきいちゃいなかったし・・・・・・・・
- 364 名前:デフォルトの名無しさん mailto:sage [04/12/19 22:57:13]
- だーかーらー、釣りだってばよ。
- 365 名前:デフォルトの名無しさん mailto:sage [04/12/20 00:52:20]
- こんなリアルっぽい釣りがあるかよ
- 366 名前:デフォルトの名無しさん mailto:sage [04/12/20 12:54:55]
- リアルっぽいからこそ釣れるんだろ。
- 367 名前:デフォルトの名無しさん mailto:sage [04/12/20 13:34:37]
- おまいらピラニアかよ
- 368 名前:デフォルトの名無しさん mailto:sage [04/12/20 14:29:30]
- 本物はどこかふざけてるんだよ。
今回はそれがない。
- 369 名前:デフォルトの名無しさん mailto:sage [04/12/20 16:47:10]
- ( ´・_・`)320タン、ちゃんとCの勉強してるかなー
- 370 名前:320 [04/12/21 00:30:55]
- すいません。レス遅くなっちゃいました。。
なかなかうまくいかないので、最初からまた調べ直そうと思います。 教えてくれたみなさん、わざわざありがとうございました。 またつまずいたら、ずうずうしいながら質問させて頂きます。 その時は、もう少し高度な話題ができたらなと思います。 (マジレスでした。。。)
- 371 名前:デフォルトの名無しさん mailto:sage [04/12/21 01:04:57]
- もう一度だけまじめに書くけど、>>337がうまく動かないのは、
コンパイラは文字列リテラル "Hello ..."がDGROUPのセグメントにあると仮定したコードを吐いているのに DSが別の領域を指しているため、全然別のデータを読んでいるから。 DSを設定するのはスタートアップ(TCCならc0x.obj)で、 コンパイラがリンカを呼び出すときに、これをリンクしている。 とりあえず、アセンブラコード内でcall _mainするのをやめて 単にCのソースにアセンブラの関数をリンクして動かしてみ。
- 372 名前:Help [04/12/21 01:36:21]
- どなたかご存知でしたら教えてください。
C#で作成したDLLからVB6へイベントを通知する方法を ご存知でしたら教えてください。 VB6は、C#記述のInterfaceをサポートしていないので デリゲートでイベント通知がうまく出来ません。 お願いします。
- 373 名前:320 [04/12/21 01:44:46]
- >371
その方法は何度かためしたのですが、 Error: Fixup overflow in module main.c at _TEXT:000E, target = _putc という感じで、リンクが出来ませんでした。。
- 374 名前:デフォルトの名無しさん mailto:sage [04/12/21 01:56:07]
- じゃあ、コンパイラの出力を参考にセグメント指定をしなさい。
_TEXT segment byte public 'CODE' みたいな奴。(byteかwordか忘れた) そして、_putcを _TEXT segment assume cs:_TEXT _putc proc ... _TEXT ends と書く。 データ領域があったら、DGROUPも設定する。 うろ覚えのまま書いてるから、正確にはコンパイラの出力をコピーするように。 もし、asm側から_mainを呼ぶなら、call _mainの前にDSを設定する。 もちろん、呼び出す所はassume cs:_TEXTとされた_TEXTセグメントの中。
- 375 名前:デフォルトの名無しさん mailto:sage [04/12/21 04:21:10]
- なんでも教えりゃわかるってもんじゃないんだよ
- 376 名前:デフォルトの名無しさん mailto:sage [04/12/21 08:53:39]
- INT28
- 377 名前:デフォルトの名無しさん mailto:sage [04/12/22 03:07:11]
- INT 1B
- 378 名前:デフォルトの名無しさん mailto:sage [04/12/22 19:33:56]
- >>377
clc/stc/cmc
- 379 名前:kai [04/12/27 00:44:06]
- dos用に作られたCプログラムをwindows上で動かすことはできないのですか?
- 380 名前:デフォルトの名無しさん mailto:sage [04/12/27 00:46:59]
- >>379
自分で試せよ。
- 381 名前:デフォルトの名無しさん mailto:sage [04/12/27 13:49:21]
- 基本的に動く。ただしNECのPC98のハードウェア、BIOSに依存したものは動かない。
その場合98エミュレータ上では動く。
- 382 名前:デフォルトの名無しさん mailto:sage [04/12/28 21:52:20]
- 餌がコネェ
- 383 名前:デフォルトの名無しさん mailto:sage [05/01/17 00:57:24 ]
- CGの技術・性能が向上していく一方で、テキストだけ、あるいはラインアートな絵といった
ゲームにも大きな魅力を感じている人間がここにいる。 ミステリーハウスとかZorkとかNethackとか。どういうわけだか好きなんだ。 かといって派手な演出が嫌いというわけでもないんだが、とにかく 今もDOSでプログラミングとかしている人は尊敬するわけです。 がんばってくださいありがとう保守。
- 384 名前:デフォルトの名無しさん mailto:sage [05/01/19 00:32:50 ]
- DOSはもう流行ることもないんだろうけど
消えることもないんだろうナ‥ せっかく書くんだ 一番好きなOSで動かすのが当然だろう
- 385 名前:デフォルトの名無しさん [05/01/27 10:57:57 ]
- TurboC++1.01を使ってるんですが286までしか扱ってくれないので
386レジスタを使おうとしてもコンパイルエラーが出ます なんとかできませんか アセンブラは386対応のものを使ってます int main() { asm{ mov eax,0 ; eaxって何?って言われる }; return 0; }
- 386 名前:デフォルトの名無しさん mailto:sage [05/01/27 10:59:41 ]
- >>385
何故eaxを使いたいのか聞かせてくれ
- 387 名前:デフォルトの名無しさん mailto:sage [05/01/27 11:04:44 ]
- 前に 66h 埋め込んでおけばいいんじゃねーの?
TC++でどうやるかは知らんが。(emitか?)
- 388 名前:デフォルトの名無しさん mailto:sage [05/01/27 11:22:02 ]
- >>386
386で動かすプログラムだからeax使った方が効率いいからです >>387 コンパイラが286時代のものなのでそもそもeaxレジスタは存在していなく 未定義の識別子扱いをしてパースしてくれないんです
- 389 名前:デフォルトの名無しさん mailto:sage [05/01/27 11:24:16 ]
- go WATCOM with DOS-extender to get the 32bit-full-power!
- 390 名前:デフォルトの名無しさん mailto:sage [05/01/27 11:41:55 ]
- >>388
だから、mov eax,0の代わりに、mov ax,0にしてその前に66hを埋め込むってこと。
- 391 名前:デフォルトの名無しさん mailto:sage [05/01/27 12:00:07 ]
- こうですか…
mov eax,0 db 66h なんと言うか可読性がすごいことになりそうですね…
- 392 名前:デフォルトの名無しさん mailto:sage [05/01/27 12:01:41 ]
- >>391
ホームラン級の馬鹿だな
- 393 名前:デフォルトの名無しさん mailto:sage [05/01/27 12:07:45 ]
- ワロタ
- 394 名前:デフォルトの名無しさん mailto:sage [05/01/27 12:12:49 ]
- その程度の認識で効率がどうのこうの言うのは背伸びしすぎ
- 395 名前:デフォルトの名無しさん mailto:sage [05/01/27 12:13:21 ]
- 素直にアセンブラ使えばいいのに。タボシなんか捨てて。
- 396 名前:デフォルトの名無しさん mailto:sage [05/01/27 17:50:51 ]
- いや、TurboC/C++は、アセンブラコードは処理できないよ。
外部のアセンブラに渡すだけ。 ていうかね、.286とか.386cって書いているの見たこと内科医? どっか先頭の方、適当なところに入れて桶
- 397 名前:デフォルトの名無しさん mailto:sage [05/01/28 13:19:16 ]
- PC/AT互換機用のTCなら、ボーランドのFTPサーバーから
自由にダウンロードできるようですが・・・ 違ってたらスマソ
- 398 名前:デフォルトの名無しさん mailto:sage [05/01/28 13:30:28 ]
- FTPは知らんが、HTTPなら。
community.borland.com/museum/
- 399 名前:デフォルトの名無しさん [05/01/30 23:36:17 ]
- BCC使ってるんですけど、
system("set /P A=\"[Y/N] \""); system("echo \%A\%"); とやると「%A%」と表示されてしまいます。 どうしたら良いのでしょうか? ご指導くださいませ。
- 400 名前:デフォルトの名無しさん mailto:sage [05/01/30 23:59:03 ]
- >>399
Borland C++ の16bit版? ていうかDOSでは set /P は使えないだろ。 >system("set /P A=\"[Y/N] \""); >system("echo \%A\%"); system() 関数は呼び出す毎に別の環境になるので 最初の行で環境変数 A を設定しても その値は次の行には引き継がれない。 system("set /P A=\"[Y/N] \" && echo \%A\%"); とするか、バッチファイル作って呼び出せ。
|

|