DOSでプログラミング ..
[2ch|▼Menu]
263:デフォルトの名無しさん
04/10/06 23:09:24
>>262
URLリンク(www5c.biglobe.ne.jp)

264:デフォルトの名無しさん
04/10/06 23:26:34
すみません。

C言語 dos で
msecの時間を表示したいのですが、
どのようにすればよいでしょうか?

よろしくお願いします。
よろしければプログラム貼り付けてください。


265:デフォルトの名無しさん
04/10/11 18:11:12
hoge

266:デフォルトの名無しさん
04/10/11 20:17:02
>>263
アセンブラのコンパイラってなんだ???

267:デフォルトの名無しさん
04/10/11 20:42:12
>>264
環境依存です。

268:デフォルトの名無しさん
04/10/12 07:43:54
>>264
読解力不足のせいで意味がわかりかねるのですが、もしmsecがミリセコンドの略で
あり、また、何等かの現象をパソコン内臓のタイマを利用してミリセコンド単位で
計測、表示したいというのが>>264氏の希望であるのならば、これが役に立つかも?
ただし、NECの9801の場合で、しかもアセンブリ言語です。  ↓
     速水さん、許してちょ              ↓
              URLリンク(ludwig.kir.jp)
              URLリンク(ludwig.kir.jp)     ↓
              URLリンク(ludwig.kir.jp)

所謂DOS/V機の場合、最近のマザーボートはWIN2000以降のOSを前提に
設計されているようなので、タイマIC8253完全互換の機能をサポートしてる
のどうかとかアドレスがオリジナルPC/AT機と同じかどうかは?ですね。

269:デフォルトの名無しさん
04/10/12 16:27:43
DOSでtimeGetTime()見たいのってないの?


270:デフォルトの名無しさん
04/10/12 23:40:56
ない。
DOS時代はタイマICに直接アクセスするとか、
VSYNC割り込みトラップして自分でカウントするとかでなんとかしてた。

271:デフォルトの名無しさん
04/10/12 23:53:23
URLリンク(www.vector.co.jp)


272:デフォルトの名無しさん
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
URLリンク(anabuki.ec.u-tokai.ac.jp)


275:デフォルトの名無しさん
04/10/13 20:11:09
>>264
いろいろ書いてあります↓
URLリンク(www.webtech.co.jp)
> o カレンダ時計割り込み搭載機種では、MS-DOS環境でHRTIMER.SYSというデバ
>イスドライバを組み込むことでDOSファンクションで1/100秒単位の時刻を
>取得することが可能である。

URLリンク(www.webtech.co.jp)


276:デフォルトの名無しさん
04/10/20 18:47:58
DOS

277:デフォルトの名無しさん
04/10/26 18:57:56
上げてみるクスコ

278:デフォルトの名無しさん
04/10/26 19:06:53
32Bitコンパイラで「int 10h」
のシステムコールを使うとバグるんですが
32bitコンパイラでDOSのビデオモードの
変更とかどうやってやるんですか?
教えてください、お願いします。

279:デフォルトの名無しさん
04/10/26 19:16:45
環境ぐらい書け

280:デフォルトの名無しさん
04/10/26 20:31:00
一般的なことしか書けませんが、プロテクトモードではIDTを記述して
やらないと割り込みが使えないはずですが、この点はいかがでしょうか。
32bitコンパイラに関してはド素人なもので、こんなことしか書けません。
失礼しました。

281:デフォルトの名無しさん
04/10/26 22:15:04
ただ単にWindowsの32ビットプログラムでやろうとしているだけだったりして。

282:デフォルトの名無しさん
04/10/26 22:19:01
想像で語るのはやめようや

283:デフォルトの名無しさん
04/10/26 22:32:55
だったら環境かけよボケが

284:デフォルトの名無しさん
04/10/28 07:09:47
>>281
けっきょくこれか?クズが!

285:デフォルトの名無しさん
04/10/28 07:19:05
>>278
リアルモードにおりてから実行妹汁

286:278
04/10/29 18:09:42
>>280,285
有難うございました、やってみます


環境はBorland C++5.5でMEです。
其の他の人もどうもすみませんでした。

287:デフォルトの名無しさん
04/10/29 22:25:06
281の言う通りでしたとさ。

288:デフォルトの名無しさん
04/10/30 00:46:03
DOS窓という通称の弊害がこんなところに

289:デフォルトの名無しさん
04/10/31 07:42:50
DOSエクステンダーってどうやって使うの?
教えてエロい人(;つД`)

290:デフォルトの名無しさん
04/10/31 14:15:37
マヌアルを小便ちびるまで嫁

291:デフォルトの名無しさん
04/10/31 20:29:10
manual自体入手しづらくないか?

292:デフォルトの名無しさん
04/11/01 17:07:21
言い訳はトイレに行って一人でして下さい

293:デフォルトの名無しさん
04/11/02 15:19:28
まにゅあるなんてもうねぇだろ

294:デフォルトの名無しさん
04/11/02 21:03:46
マニュアル付きDOSエクステンダ (EXE386)
URLリンク(www.vector.co.jp)

処理系も欲しいなら

Digital Mars C++ (X32) (コンパイラはWin32アプリ)
URLリンク(www.digitalmars.com)

Open Watcom (DOS/4GW) (こっちはDOS上でもコンパイルできる)
URLリンク(www.openwatcom.org)

295:デフォルトの名無しさん
04/11/06 14:35:47
Digital MarsとOpen Watcomって
とっちが使いやすい?

296:デフォルトの名無しさん
04/11/08 20:43:59
正直俺も仮想8086モードでINT関係が使えん何故だ・・・・

297:デフォルトの名無しさん
04/11/09 16:33:34
Open Watcomって商用では使わない方が良いって聞くけど何で?


298:デフォルトの名無しさん
04/11/09 16:45:12
>>297
何故そう言った奴に聞かない?

299:デフォルトの名無しさん
04/11/10 18:40:55
噂とかで流れてんじゃねーの( ´ー`)フゥー...

300:デフォルトの名無しさん
04/11/14 16:49:57
>>297
商用で使ってはいけないとライセンスに書かれているからです。

301:デフォルトの名無しさん
04/11/14 23:04:29
マジッスカ???

302:デフォルトの名無しさん
04/11/15 09:30:55
マジッスヨ???

303:デフォルトの名無しさん
04/11/16 16:59:11
DOS画面で、入力内容とかメッセージとかをファイルに出力するコマンドがあったら
教えて下さい。

304:デフォルトの名無しさん
04/11/16 17:10:11
>>303
質問があいまいだな
COPY CON filename や ECHO 、リダイレクトなど。

305:デフォルトの名無しさん
04/11/16 17:29:14
>>303さん
レスありがとうございます。
DOS画面の表示内容をそのままファイルに出力したいのです。
長いバッチで古い上の方が消えてしまうもので、
それを全て記録したいのです。
初心者なのでいまいちうまく説明できなくてすみません。

306:デフォルトの名無しさん
04/11/16 17:36:50
>>304さんありがとうございました。
リダイレクトでできました。
即レスありがとうございます。

307:デフォルトの名無しさん
04/11/22 16:29:27


308:デフォルトの名無しさん
04/11/24 15:25:49
[Windows]初心者〜管理者まで必読!コマンドライン(DOS Pt.3)
スレリンク(win板)

309:デフォルトの名無しさん
04/12/07 23:03:00
アスキー出版局の、PC−9801スーパーテクニックっつー本
誰かいらんけ?


310:デフォルトの名無しさん
04/12/07 23:16:35
>>309
図書委員の権限発動して高校の図書館に入れさせてコピーした記憶のある懐かしい代物だなw

311:デフォルトの名無しさん
04/12/09 23:03:50
あなたを詐欺罪で訴えます。


312:デフォルトの名無しさん
04/12/10 13:39:44
>>2 >>109
今更だが、パッチってこれだな。
URLリンク(groups.google.com)

313:デフォルトの名無しさん
04/12/10 15:10:04
>>312
まぁあれだ、MSに対向するためのみの意義しかないグラフィック機能を除けば今でもそれなりだろうね。
少なくともLSI-Cを使うよりも16倍いい。
#あれはあれで、悪くはないのだが。

314:デフォルトの名無しさん
04/12/10 15:32:19
LSI-CはLFN libraryがあるから、Win/DOS両方で使えるような小物を作るのに重宝している。

315:デフォルトの名無しさん
04/12/12 21:55:24
dosのフォントが気に入らない。変更するにはレジストリをいじるしかないのかな?


316:デフォルトの名無しさん
04/12/12 22:02:34
そりゃDOS窓やろ

317:デフォルトの名無しさん
04/12/12 22:05:17
もし窓じゃないDOSならCONFIG.SYSをいじって下さい。

318:デフォルトの名無しさん
04/12/14 13:58:46



319:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/18 16:57:42
DOSで動作するMASMの6か5.1ってフリーになってないのかな。

322:デフォルトの名無しさん
04/12/18 17:37:39
セグメントディスクリプタを書いてないんじゃないかと E.S.P.

323:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/18 19:13:05
>>325
引数は正しくわたされてるか
_pusは正しく動作するか
C側のオブジェクトは確保されているか

これらを確かめた上で

tcのローカル変数を処理したいのならば([bp]と書いてあるので)、スタック上に確保されている
よってDSで処理する_putsに適合させることはできない。(セグメントオーバーライドでも不可)
DS上の別領域にでもコピーする

ただし、small modelならばSS=DSなので問題は起きない






327:デフォルトの名無しさん
04/12/18 19:52:37
つーか、コンパイラにアセンブリ出力させてよく見ろ。

328:デフォルトの名無しさん
04/12/18 21:52:29
ACPIをDOSでコントロールしたいのですが、どこかにソースかライブラリが落ちていないですか?

329:デフォルトの名無しさん
04/12/18 22:38:48
俺はEPSONのPC386からぶっこぬいてきたフォントをTerminalの14ptに突っ込んで使ってるので
DOSの時代からWin95/98/2000を経てXPのコマンドプロンプトまで同じフォント。
ついでにLinux上のX-Winodwも一緒

330:デフォルトの名無しさん
04/12/18 22:53:51
日記は(ry

331:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/19 09:02:13
asm以前にCもわかってなさそうだな・・・・・

334:デフォルトの名無しさん
04/12/19 09:04:47
>>333
俺も全く同じ事を思った。

>>332
>相性が悪いのでしょうか?
プログラミングとあなたの相性が悪いせいかもしれない。

335:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/19 09:38:36
だからCの勉強をしなさいって。

339:デフォルトの名無しさん
04/12/19 09:41:24
"Hello World!\n$"
なんの意味があるんだ最後の$…

340:デフォルトの名無しさん
04/12/19 09:42:28
うーん・・・・まず2chの勉強が先かと・・・・・・・・
まずはsageと打鍵する練習

341:デフォルトの名無しさん
04/12/19 09:42:58
じゃなかった。この原因は。

Cの「スタートアップ」と呼ばれるものが何をしているか
もっとはっきり言えば、DS,ES,SSは誰がいつ設定しているのか、と。

342:デフォルトの名無しさん
04/12/19 09:44:54
それもCの勉強なんだがな

343:320
04/12/19 10:21:50
"Hello World!" のセグメントは、>326 の言ったとおり取得できないんでしょうか?

>341
スタートアップについてはよくわかりません。。
バイナリ初心者なもので。。

344:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/19 11:07:36
半可通が教えるクンして泥沼プ
またーりオチ

349:デフォルトの名無しさん
04/12/19 11:14:10
よくこんなんで、nasmとかalinkを使うよな。
トラブルが全く切り分けられないのに、標準以外のツールなんか使うなよ。


350:デフォルトの名無しさん
04/12/19 11:38:52
typoっぽいケアレスが気になるんだけど、何回も書いているから本当に理解してないのかも・・・・・・

351:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/19 13:12:31
手取り足取り指導してる方がよっぽど醜悪
これがわからない内は引き篭もってろ

354:\________/        
04/12/19 14:10:09
       ∨
    / ̄ ̄ ̄ ̄\   
   (  人_____,,)
    |ミ/  ー◎-◎-)  ボクハ ホントウハ ツヨインダゾ・・・ブツブツ
   (6     (_ _) )    カタカタカタ
   | ∴ ノ  3 .ノ  ______
    ヽ、,,     __,ノ   |  | ̄ ̄\ \
   /       \.____|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ    |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

355:デフォルトの名無しさん
04/12/19 14:17:57
>>351
絶妙な釣りと、釣りに気づきながら悪ノリしているこのスレの常連の構図だが。

356:デフォルトの名無しさん
04/12/19 14:30:58
過疎スレで釣りをする人間がいる訳ないし(ヒマな引き篭もりほど
そんな発想をするんだろが)、こんな過疎スレでいつもの構図も何もない。
悪ノリと言っても、みじめな自分の社会生活のウサ晴らしに
初学者をいびってるだけだろうが。
顔だけでなく精神まで腐ってちゃ救いようがないな。
全く内外ともに絵に描いた様なキモオタだな。
だから何時までもバカにされてみじめなんだよ。耳が痛いだろう。
アンタらは、もう一生救われないよ。


357:デフォルトの名無しさん
04/12/19 14:33:13
久しぶりの餌なんだから、もっとゆっくり食べようよ

358:デフォルトの名無しさん
04/12/19 14:38:33
魚が逃げちゃうよ。orz

359:デフォルトの名無しさん
04/12/19 14:48:02
初学者の割に、他人のアドバイスを聞く耳を持ってないようだがw
耳に心地良い(そして間違ってるwww)アドバイスについて逝くしwwwww

360:デフォルトの名無しさん
04/12/19 14:53:48
wを連打してるのが痛々しい  悔し泣きしてるのか?

361:デフォルトの名無しさん
04/12/19 21:45:00
他のasmスレに逝ってないようだし、本当に釣りだったかも

362:デフォルトの名無しさん
04/12/19 21:47:40
とりあえずメモリモデルについて調べろ、引数がstackにどう積まれるか、だな

363:デフォルトの名無しさん
04/12/19 22:10:00
何を逝っても無駄・・・・・誰の話もきいちゃいなかったし・・・・・・・・

364:デフォルトの名無しさん
04/12/19 22:57:13
だーかーらー、釣りだってばよ。

365:デフォルトの名無しさん
04/12/20 00:52:20
こんなリアルっぽい釣りがあるかよ

366:デフォルトの名無しさん
04/12/20 12:54:55
リアルっぽいからこそ釣れるんだろ。

367:デフォルトの名無しさん
04/12/20 13:34:37
おまいらピラニアかよ

368:デフォルトの名無しさん
04/12/20 14:29:30
本物はどこかふざけてるんだよ。
今回はそれがない。

369:デフォルトの名無しさん
04/12/20 16:47:10
( ´・_・`)320タン、ちゃんとCの勉強してるかなー

370:320
04/12/21 00:30:55
すいません。レス遅くなっちゃいました。。

なかなかうまくいかないので、最初からまた調べ直そうと思います。
教えてくれたみなさん、わざわざありがとうございました。

またつまずいたら、ずうずうしいながら質問させて頂きます。
その時は、もう少し高度な話題ができたらなと思います。

(マジレスでした。。。)

371:デフォルトの名無しさん
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:デフォルトの名無しさん
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:デフォルトの名無しさん
04/12/21 04:21:10
なんでも教えりゃわかるってもんじゃないんだよ

376:デフォルトの名無しさん
04/12/21 08:53:39
INT28

377:デフォルトの名無しさん
04/12/22 03:07:11
INT 1B

378:デフォルトの名無しさん
04/12/22 19:33:56
>>377
clc/stc/cmc

379:kai
04/12/27 00:44:06
dos用に作られたCプログラムをwindows上で動かすことはできないのですか?

380:デフォルトの名無しさん
04/12/27 00:46:59
>>379
自分で試せよ。

381:デフォルトの名無しさん
04/12/27 13:49:21
基本的に動く。ただしNECのPC98のハードウェア、BIOSに依存したものは動かない。
その場合98エミュレータ上では動く。

382:デフォルトの名無しさん
04/12/28 21:52:20
餌がコネェ

383:デフォルトの名無しさん
05/01/17 00:57:24
CGの技術・性能が向上していく一方で、テキストだけ、あるいはラインアートな絵といった
ゲームにも大きな魅力を感じている人間がここにいる。
ミステリーハウスとかZorkとかNethackとか。どういうわけだか好きなんだ。
かといって派手な演出が嫌いというわけでもないんだが、とにかく
今もDOSでプログラミングとかしている人は尊敬するわけです。
がんばってくださいありがとう保守。

384:デフォルトの名無しさん
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:デフォルトの名無しさん
05/01/27 10:59:41
>>385
何故eaxを使いたいのか聞かせてくれ

387:デフォルトの名無しさん
05/01/27 11:04:44
前に 66h 埋め込んでおけばいいんじゃねーの?
TC++でどうやるかは知らんが。(emitか?)

388:デフォルトの名無しさん
05/01/27 11:22:02
>>386
386で動かすプログラムだからeax使った方が効率いいからです

>>387
コンパイラが286時代のものなのでそもそもeaxレジスタは存在していなく
未定義の識別子扱いをしてパースしてくれないんです


389:デフォルトの名無しさん
05/01/27 11:24:16
go WATCOM with DOS-extender to get the 32bit-full-power!

390:デフォルトの名無しさん
05/01/27 11:41:55
>>388
だから、mov eax,0の代わりに、mov ax,0にしてその前に66hを埋め込むってこと。

391:デフォルトの名無しさん
05/01/27 12:00:07
こうですか…
mov eax,0
db 66h
なんと言うか可読性がすごいことになりそうですね…


392:デフォルトの名無しさん
05/01/27 12:01:41
>>391
ホームラン級の馬鹿だな

393:デフォルトの名無しさん
05/01/27 12:07:45
ワロタ

394:デフォルトの名無しさん
05/01/27 12:12:49
その程度の認識で効率がどうのこうの言うのは背伸びしすぎ

395:デフォルトの名無しさん
05/01/27 12:13:21
素直にアセンブラ使えばいいのに。タボシなんか捨てて。

396:デフォルトの名無しさん
05/01/27 17:50:51
いや、TurboC/C++は、アセンブラコードは処理できないよ。
外部のアセンブラに渡すだけ。

ていうかね、.286とか.386cって書いているの見たこと内科医?
どっか先頭の方、適当なところに入れて桶

397:デフォルトの名無しさん
05/01/28 13:19:16
PC/AT互換機用のTCなら、ボーランドのFTPサーバーから
自由にダウンロードできるようですが・・・
違ってたらスマソ

398:デフォルトの名無しさん
05/01/28 13:30:28
FTPは知らんが、HTTPなら。
URLリンク(community.borland.com)

399:デフォルトの名無しさん
05/01/30 23:36:17
BCC使ってるんですけど、

system("set /P A=\"[Y/N] \"");
system("echo \%A\%");

とやると「%A%」と表示されてしまいます。
どうしたら良いのでしょうか?
ご指導くださいませ。

400:デフォルトの名無しさん
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\%");
とするか、バッチファイル作って呼び出せ。

401:デフォルトの名無しさん
05/01/31 03:06:39
system("echo %A%");

402:デフォルトの名無しさん
05/02/07 03:02:15
バッチファイル以外で %環境変数% が使えるようになったのはWin95付属のDOS7.0以降だな。

403:デフォルトの名無しさん
int 2ch =05/04/02(土) 07:57:13
URLリンク(www.256b.com)
URLリンク(www.256b.com)

404:たかのぶ
05/05/09 21:58:11
こんなん叩いたら↓
if not exist z: net use z: \\Server01\e$ PPPPP /user:XXXXXX
こんなもんがでたYO↓
z: は \\Server01\e$との接続を記憶しています。
記憶している接続に上書きしますか?(Y/N)
藻前ら分かる香具師はいますか

405:デフォルトの名無しさん
05/05/11 05:51:11
command.comは気が狂いだすから持ち出すのやめてくれ

406:デフォルトの名無しさん
05/05/11 16:01:09
うはwwwwwcommand.comおwwww
いいけつしとるのぉwwwwおkwwww

407:デフォルトの名無しさん
05/06/18 23:11:50
初心者です。突然すいません。急いでいるもので。
○○.EXEというDOSプログラムの中身を見るのはどうしたらよいのですか?

408:デフォルトの名無しさん
05/06/18 23:15:13
バイナリエディタで開け

409:デフォルトの名無しさん
05/06/18 23:16:02
>>407

d>debug ○○.EXE

410:デフォルトの名無しさん
05/06/18 23:20:00
ありがとう。
定番バイナリエディタってどれです?
(409は難しそう)


411:デフォルトの名無しさん
05/06/18 23:33:43
16進でみたいだけならviでもhidemaruでもMifes(綴分からん)でもいいけど。

中味を見るというのがよく分からん。
ひょっとしてexeからソースを復元したいの?

412:デフォルトの名無しさん
05/06/18 23:36:22
はげまるって、 まだDOS版売ってるの?


413:デフォルトの名無しさん
05/06/18 23:53:04
>>411
難しいことはよく分かりません。
とりあえず「Stirling」ってやつVectorで定番って書いてあったからそれで開いてみた。


4D 5A 20 01 6C 00 74 00 20 00 C4 09 FF FF 52 0D  MZ .l.t. .ト...R.
 ↓
 ↓
 ↓
延々と続いてる


初めて見ました。(初心者です)
右のほうは何なんですかね?文字化けしてるのかな?

DOSプログラムでNotePCのバッテリー情報を確認できるツールが有るんだけれど
機種によって使えたり使えなかったりするので、どこかを変えれば何とかなるのかなって思って…

だけどこの数字の羅列の意味はよく分からないな…


414:デフォルトの名無しさん
05/06/18 23:53:10
dos限定だったのか。
エスパーな会話しちゃったw



415:デフォルトの名無しさん
05/06/19 00:02:25
>>413
それがプログラム
左が16進数で、右がテキストエディタで開いたときのものと思え

ってか、お前がバイナリエディタで開いたバイナリは
改編を認めてるのか?
ライセンス違反だぞ

416:デフォルトの名無しさん
05/06/19 00:03:48
このスレッドの名は
DOSでプログラミング
"で"なんだから、DOSを使うのが前提でしょ?
コマンドプロンプトではなくDOS
ずっと俺はそう思ってたけど

417:デフォルトの名無しさん
05/06/19 00:10:55
>>416
winに付属しているコマンドプロンプトしか頭になかった。
正直すまんかった。

(そういや、伯父もいまだにPC98FAつかっているしな)


418:デフォルトの名無しさん
05/06/19 00:15:22
>>413
どんなプログラムか知らんがその機種にあったものを探した方が早いと思うぞ。
素人がぱっと見ただけでパッチを当てられるようなもんじゃない。

419:デフォルトの名無しさん
05/06/19 08:21:05
DOS始めるには何からやればいいの?

420:デフォルトの名無しさん
05/06/19 08:39:23
あきらめる

421:デフォルトの名無しさん
05/06/19 11:46:26
>>419
DOSのインストール

422:デフォルトの名無しさん
05/06/19 19:41:31
>>421
DOSのインストールって何
もともとあるんじゃないの?どこにあるの?


423:デフォルトの名無しさん
05/06/19 19:49:03
>>422
DOSだって昔は単独で販売されていたんだからインストーラだって存在していた。

424:デフォルトの名無しさん
05/06/19 20:15:09
>>422
WinNT系にはDOSは入っていない。

今DOS単体が手に入るのかどうかは不明。
やりたいんならWin9x系OSをインストールするとかかな

425:デフォルトの名無しさん
05/06/19 20:50:01
DR DOSでも使えばいい

426:デフォルトの名無しさん
05/06/19 21:11:03
Windows 2k/XPでもDOS起動ディスクは作れないわけではない。
URLリンク(homepage2.nifty.com)
URLリンク(homepage2.nifty.com)

427:デフォルトの名無しさん
05/06/19 21:13:34
DOS"で"プログラミング
なんだから、DOSでやろうや
Win9xでやるのもいいと思うが、そしたら絶対に
Windowsのエディタでコード書くだろ
DOSを入れろ


428:デフォルトの名無しさん
05/06/20 01:43:36
やっぱ、VB1が、とても好き。
mouse.com入れて、結構あそべます。

429:デフォルトの名無しさん
05/06/21 09:44:56
MS-DOSを使ってみて、かなり不自由だったので
ツール郡を移植したあの日々
2ヶ月後くらいに公開したら、もっと質のいいものが出回ってるとしった日
死にたくなった

あれから、2度とDOSの画面は見ていない


430:デフォルトの名無しさん
05/07/18 10:49:41
DOS上で、Windows のプログラム開発は、出来ますか?
gcc + mingw とかで。


431:デフォルトの名無しさん
05/07/18 11:03:22
>>430
MS-DOSでgccは動かないと思いますが。

432:デフォルトの名無しさん
05/07/18 12:48:01
>>430
動作確認はどうするんだよ。

433:デフォルトの名無しさん
05/07/18 13:32:58
djgpp

434:デフォルトの名無しさん
05/07/18 15:25:42
>>431
マジっすか?

というか、勝手に思っててください。

435:デフォルトの名無しさん
05/07/18 16:41:54
思うだけなら自由だしな

436:デフォルトの名無しさん
05/07/18 19:35:05
ここでいってるDOSってMS-DOSのことなの?
もし、MS-DOS限定ならバージョンはどれを指すの?
>>1を見るとハードを直に叩けるって言ってるから6.1以前の物限定?

437:デフォルトの名無しさん
05/07/20 05:25:08
ポッカーーーン

438:デフォルトの名無しさん
05/07/20 05:46:40
俺がMS-DOSを使わなくなったのはメモリの管理を阿呆みたいにし始めたからかな


439:デフォルトの名無しさん
05/07/20 11:26:23
EMSにXMS、さらにはBMSか?

440:デフォルトの名無しさん
05/07/20 17:39:37
UMB,HMA,

441:デフォルトの名無しさん
05/07/20 20:16:29
>>440
どっちもXMSの一部じゃなかったっけ?

442:デフォルトの名無しさん
05/07/21 00:14:12
そういえばそうだったかも。
ん、でもHMAはXMSのおまけで、UMBは仮想EMSのおまけだったような気も。
XMSって286以上の規格じゃなかった?

443:デフォルトの名無しさん
05/07/21 06:14:11
UMBの割り当て/解放のファンクションはXMSドライバのファンクションの一部に
いちおうなってる
URLリンク(www.ctyme.com)
EMM386を組み込まないと実際には使えないんだろうけど

444:440,442
05/07/21 17:22:29
勉強になりました。
でもこの先使うことなどなさそうな知識だ。

445:デフォルトの名無しさん
05/07/21 18:49:15
(ノ∀`)それを言わないで

446:デフォルトの名無しさん
05/07/23 07:17:32
CD-ROMドライバはネットワークドライブ(のドライバ)の一種だそうですが、ネットワークドライブの仕様について情報源があれば教えて下さい。

447:デフォルトの名無しさん
05/07/23 07:19:48
ドキュメント読めよ

448:デフォルトの名無しさん
05/07/23 14:47:28
ドキュメントはないんじゃなかったっけ?
Undocumented DOSにネットワークリダイレクタの機能を利用した
RAMディスクのサンプルが出てたけど

449:デフォルトの名無しさん
05/07/24 19:37:18
DOSでプログラミングじゃなくてDOSをプログラミングになってきた俺はどうすればいいんだろう・・・

450:デフォルトの名無しさん
05/07/24 20:55:13
>>449
用途によってはDOS互換OSもまだ需要があるから
そのままがんがれ!

451:デフォルトの名無しさん
05/07/31 21:00:23
Dos Promptでシューティングでも作りたいんだが
なんか良い解説サイトとかない?

452:デフォルトの名無しさん
05/07/31 21:01:05
こことか超おすすめ
URLリンク(www.google.co.jp)

453:デフォルトの名無しさん
05/07/31 21:31:34
俺はDOSエクステンダを自分で作ってみたい
っていうか、どういう処理をしてるんだよ
気になって夜も眠れん

454:デフォルトの名無しさん
05/07/31 22:02:59
その時の気分でプロテクトモードとリアルモードを切り替えてるんだよ

455:デフォルトの名無しさん
05/07/31 22:07:13
>>453
URLリンク(www.vector.co.jp)

456:453
05/08/01 22:08:39
>>455
おーサンクス心の友よ

457:デフォルトの名無しさん
05/08/18 23:41:51
こっちのほうが詳しそうな人がおおいので、質問させていただきます
PCIデバイスのプログラミングやっとります。

PCIデバイスで割り込みを使うには、PIC(割り込みコントローラー)の、モードをLevelトリガーモードに
しないといけないようです。そのためPCIバス対応の割り込みコントローラー(APIC?)には、IRQを部分的に
Levelトリガーモードにする機能があるようなのですが、いくらぐぐっても
らしき資料が見つかりません。

どなかた助けてください、お願いします

458:デフォルトの名無しさん
05/08/19 00:20:43
適当にハード関連の本を十冊くらい嫁

459:デフォルトの名無しさん
05/08/19 09:58:25
>>458
何もしらんくせにええかげんなこと書くなよ...

460:デフォルトの名無しさん
05/08/19 16:21:32
>>457
まずはそのデバイスがedge-trigger使えるかどうか調べてからにしな

461:457
05/08/19 19:32:06
ここで聞いた俺が馬鹿だったわ。Linuxのソースコードでも読むことにする
あばよ

>>460
Edge-triggerはPCIデバイスでは使えない、PCIデバイスは全部Level trigger

462:デフォルトの名無しさん
05/08/19 21:00:37
つか、DOSでPCIバス叩いてた奴なんて少数派だと思うぞ。

463:デフォルトの名無しさん
05/08/19 21:41:23
>>461
YMF7x4のFM音源割り込みはモロにIRQだったけどなw
INTなんか使ってねーよ

464:デフォルトの名無しさん
05/08/19 22:18:08
>>463
PCIのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
そのためPCIをサポートしているチップセットは、一部のIRQのみをLevel triggerにする機能がついてるわけ
その方法を探している。

Linuxのコードをざっと読んだところ、0x4d0, 0x4d1の二つのポートを使って、それが可能のようなのだが
これはどうやらEISA用のやり方らしい、PCIも同じ方法でできるのかどうかはわからない。

Linuxのコメントを読むと、APIC用の別のやり方があるそうなのだが...不明

465:464
05/08/19 22:19:20
ごめん間違えた
(誤)PCIのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
(正)PCのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ

466:デフォルトの名無しさん
05/08/20 11:46:50
>>464
まずはdatasheet読もうぜ
440BXとかその辺のヤツだけど役に立つだろ
('A`)ノシ URLリンク(www.intel.com)

467:デフォルトの名無しさん
05/08/20 15:38:39
>>466
Thx!、そうか、Intelの本家ページを探せばよかったのか!...
やはり0x4D0, 0x4D1の二つのポートを使うらしい。ただしIRQ1とIRQ2は絶対、Edge triggerで
Levelには変更できないそうだ、ありがとう!


468:デフォルトの名無しさん
05/08/20 22:34:31
>>467
お前英語読めねーの?
思い切り書いてあるんだが。

469:デフォルトの名無しさん
05/08/21 10:23:06
>>468
だから、上のマニュアル読んで言ってるんじゃないか。ああ、おせっかいだったか悪かったな。
「やはり...」の文脈の流れから見てわかんねーの?半島の方ですか?

後それからIRQ1,2に加えて8,13も無理みたいだな。

470:デフォルトの名無しさん
05/08/21 10:30:18
なにこれしきのことでファビョってるんだ?

471:デフォルトの名無しさん
05/08/21 12:35:44
DOS使いはレベルが低いね

472:デフォルトの名無しさん
05/08/21 13:16:05
IBM PC DOS 7.0J/V(または 2000) で REXX のプログラムの話は出て来ないものか。

473:デフォルトの名無しさん
05/08/21 13:29:58
>>467
16bit 環境でプログラムですよね?(プロテクトモードはよく知らないので)
ISA時代で使われていたテクニックそのままで良いですよ。

強いて違いを挙げるとすれば、

・大抵のPCIボードは、割り込みステータスレジスタがあり、これをクリア
 しないと、割り込みハンドラからIRETしても、割り込みハンドラに再突入
 する。
・PCIボードは、ISAボードと違い、割り込み共有可能。
 つまり、
  割り込みハンドラに突入=自分のPCIボードへ割り込みが入った
 とは必ずしも言えない。
・PCIコンフィギュレーションレジスタを弄って、IRQを書き換える時、
 レガシーデバイスと共有できない点に注意。
 (レガシーデバイスは、レベルトリガじゃないのが、ほとんど)

まぁ、こんな所ですかね。

ところで、PCIボードを制御したいって、制御対象は産業用ですか?
産業用なら、メーカーから何がしか情報が出てませんかね?


474:デフォルトの名無しさん
05/08/23 02:01:32
>>473
産業用ではありませんNE2000互換のNICの制御を目的としております。

>割り込みステータスレジスタがあり、これをクリア
>しないと、割り込みハンドラからIRETしても、割り込みハンドラに再突入
>する。
なるほど、Levelトリガーゆえの挙動ですね。肝に銘じておきます。

あと、追加質問で大変申し訳ないのですが、LevelトリガーはEdgeトリガーとは
EOI発行のタイミングが異なると小耳に挟んだのですが、そこらへんは
どうなんでしょうか?

475:デフォルトの名無しさん
05/08/27 10:52:04
>>474
遅くなってすんません(週一で巡回しているもので)。

> あと、追加質問で大変申し訳ないのですが、LevelトリガーはEdgeトリガーとは
厳密な内部の違いになると あまり自信は無いです。

基本的には、割り込み処理を抜ける前に EOI で十分です。
(優先順位の高い割り込みへの割り込みを許す為に、先にEOIを発行するって
ワザもありとは思いますが、8259を更に弄る必要が無かったっけ?)

> NE2000互換のNICの制御
プログラムが主目的でなく、通信が主目的なら、NICに関して言えば、
メーカーさんから NDISとか呼ばれている DOS用のドライバが提供されて
いると思います。

それを採用するのも一つの手ではあります。
(100kb程度のメモリを占有するのがネックですが)


476:デフォルトの名無しさん
05/08/29 08:33:40
>>475
>基本的には、割り込み処理を抜ける前に EOI で十分です。
わかりました、ありがとうございます。

477:デフォルトの名無しさん
05/09/01 19:19:03
INT13の使い方について質問です。

AX=0x4300でIDEのHDDを書き換えようとしたら、エラーが出ました。戻り値はAH=0x01でした。
調べてみるとパラメータ異常ということで、試しにAXに代入する値を0x4100に変えて、
それ以外はまったく同じ条件でまったく同じセクタを読み込んでみると正常終了します。

読み込みが可能で書き込みのできない条件というのが、今ひとつよくわかりません。
エラーの原因と対策を教えてください。

環境は、Win98SEの起動ディスク(DOS 7.1)の上で実行しています。DOS窓ではありません。
LOCKも事前に実行しました。
マザーのBIOSも確認しましたが、HDDを保護するような項目は見あたりませんでした。

478:デフォルトの名無しさん
05/09/02 11:34:04
>>477
HDDの容量は?

479:デフォルトの名無しさん
05/09/02 22:01:32
>>478
20GBです。

その後、試行錯誤してWinMeの起動ディスクから起動すれば、正常に書き込みできることが判明しました。
いずれのケースでもCONFIG.SYSは0バイト、ドライバ類は何も組み込んでいません。
何が違うのかさっぱりです。

480:デフォルトの名無しさん
05/09/12 22:48:40
定期age

481:デフォルトの名無しさん
05/09/12 22:50:58
PentiumD使いの俺がきましたよ

482:デフォルトの名無しさん
05/09/12 22:52:39
シングルタスクOSでデュアルコアCPU...

483:デフォルトの名無しさん
05/09/12 22:53:54
>>481
そのPCはDOS専用機に汁!

484:デフォルトの名無しさん
05/09/12 23:03:13
DOSBox(エミュ)使ったほうが開発しやすくないだろうか

485:は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I
05/09/16 20:42:53
>>484
グラフィックアプリ、I/O直叩き
これをやるのにはエミュじゃ無理じゃない?

486:デフォルトの名無しさん
05/09/16 21:04:28
モノにもよるが、標準的なデバイスなら大体おkなんじゃない?
最終的には実機でデバッグすればいいんだし。

487:デフォルトの名無しさん
05/09/17 20:24:01
ふつークロス開発

488:デフォルトの名無しさん
05/09/19 11:38:44
つ[ハンマー]


489:デフォルトの名無しさん
05/11/06 16:37:59
DOSでPCIでネットワーク処理って楽しそうだな(w
すなおにLinuxとかのフリーライセンスなマルチタスクOS使っておけばいいのに。

490:デフォルトの名無しさん
05/11/06 18:52:03
やれやれ、最近の若いもんはPacket Driverも知らんのか・・・
困ったもんじゃて。

491:デフォルトの名無しさん
05/11/06 19:06:14
>>479
HDDの中身はWinMeでFDISKかけてないか?Win98かMeの時にWin2000との互換性取るためにVFAT他で仕様変わってるはず

492:デフォルトの名無しさん
05/11/07 17:36:23
>>490
そんなの使ってサーバ作りたくないなw

493:デフォルトの名無しさん
05/11/09 04:28:12
>>491
INT 13でのアクセスなので、ファイルシステムは関係ありません。
ぶっちゃけ、初期化されてないHDDでもアクセスできるというか、
そもそもFDISK自体がINT13でHDDを初期化しているわけですから。
結局のところ解決できず、HDDは今のところ放置です。

そのかわり、今はUSBメモリで四苦八苦しています。
手持ちのノートパソコンをUSBメモリからブートさせたいのですが、
BIOSがタコでサポートしているディスク形式(ジオメトリ)が限られているらしく、
なかなかうまくいかなくて。
HDDエミュレーションの仕組みをよく理解していないので、MBRにパッチを当てて
動作をトレースしているところです。

494:デフォルトの名無しさん
05/11/09 18:11:50
ボリュームの排他ロックってのが必要じゃなかったっけ? たとえMS-DOSモードでも。
Meでは廃止されたのかな

495:デフォルトの名無しさん
05/11/09 23:33:29
>>494
事前にコマンドプロンプトからLOCKコマンドは実行したのですが、
それとはまた別の手続きが必要なのでしょうか?
ちょっと調べてみます。

496:デフォルトの名無しさん
05/11/25 00:59:57
ローカルにある三つのファイルをまとめて圧縮したいのですがこれをコマンドプロンプトでやるには
どうしたらいいのでしょうか?DLLはWINDOWS標準でついているものを使いたいです。
例えばC:/マイドキュメントのa.log、b.log、c.logを
c:/work/guro/の下に圧縮する場合
なんてコマンドプロンプトを打ち込めばいいのでしょうか?
どうぞご教授お願いいたします。

497:デフォルトの名無しさん
05/11/25 01:12:49
スレ違いどころか板違い。このへんででも聞け。
スレリンク(win板)

498:デフォルトの名無しさん
05/11/25 01:35:47
>>496
つ[makecab file c:/work/guro/file.cab]

499:デフォルトの名無しさん
05/11/26 05:50:37
PITなんですが、インターバル間隔として設定されている値はどうすれば取得できますか?
例えば#0の場合、40hをただINするだけでは設定値は得られないみたいなんですが・・・
何かコマンドを送って得られましたっけ?

500:デフォルトの名無しさん
05/11/26 11:02:22
あらら500

501:デフォルトの名無しさん
05/11/26 13:23:59
>>499
ググったらこんなの有った。あとはコマンド表見て考えれ

>8253/8254の動作中のカウンタの値を読み出すには、一旦ラッチコマンドを使用して値を確定させます。
>8254は他に "Read-Back command"を用いることで、現在のカウンタの状態(動作モード、OUT信号)を
>読み出すことができます。


502:デフォルトの名無しさん
05/11/27 01:14:31
>>477
|試しにAXに代入する値を0x4100に変えて、
|それ以外はまったく同じ条件でまったく同じセクタを読み込んでみると正常終了します。
ah=41は"IBM/MS INT 13 Extensions - INSTALLATION CHECK"だよ。
EXTENDED READはah=42。
Ralf Brown's Interrupt ListとBIOS Enhanced Disk Drive Specification
を読みなさい。
ほれ。擬似コード。このままだと動かないと思うよ。
inreg.x.ax = 0x4300;
inreg.h.dl = drive | 0x80;
segreg.ds = FP_SEG(pac);
inreg.x.si = FP_OFF(pac);
pac.size = sizeof pac;
pac.reserved = 0;
pac.blocks = sectors;
pac.ptr = FP_OFF(buff);
pac.seg = FP_SEG(buff);
pac.lbalow = lbasec.LowPart;
pac.lbahi = lbasec.HighPart;


503:デフォルトの名無しさん
05/12/01 14:52:14
age

504:デフォルトの名無しさん
05/12/22 15:26:03
DOSで動的リンクについて詳しいサイトとかってあったら教えてください。

505:デフォルトの名無しさん
05/12/22 17:40:04
AsciiNetの過去ログが詳しい。

506:デフォルトの名無しさん
06/02/09 13:51:40
PCを再起動しようと思い、INT 19Hと書いたのですが、
電源が再投入される訳ではないのですね。
Windowsを再起動したときのように、BIOSの起動からやり直すのは
どうすればいいのでしょうか?



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

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