DOSでプログラミング

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ハードウェアを直接叩くのはやっぱり楽しい!

DOSにおける開発について語りましょう。
フリーのコンパイラ/アセンブラ

16bit

LSI C-86 Ver. 3.30c試食版
http://www.lsi-j.web.sh.cwidc.net/freesoft/index.html

Turbo C / Turbo C++ / Turbo Pascal (PC-9800では動作不可)
http://community.borland.com/museum/

Pacific C
http://www.htsoft.com/products/pacific.html

16bit/32bit

Open Watcom
http://www.openwatcom.org/

Digital Mars C/C++ compiler (Win32で動作)
http://www.digitalmars.com/

MASM32 (Win32で動作)
http://www.masm32.com/

NASM
http://nasm.sourceforge.net/
今でも入手できる商用のコンパイラ/アセンブラ
Borland C++ Suite
http://www.borland.co.jp/bcsuite/

LSI C-86
http://www.lsi-j.web.sh.cwidc.net/product/c86/index.html

Light Macro Assembler
http://www.tamasoft.co.jp/lasm/
51:03/03/07 10:51
というわけで、立ててみました。
現在、PC-9821用のグラフィックライブラリを作っています。
将来的には、Quakeとか移植できたらいいな、と思ってます。
6おぼーん&rlo;んーぼお&rlo; :03/03/07 14:25
おぼーん
メモリモデルとかがいまいち理解できてないんですけど教えてもらえますか?

near 1セグメントのみ
far セグメントをまたいでアクセスが可能

とか。
nearポインタ : オフセットのみでのアクセス
farポインタ : セグメント:オフセットでのアクセス
hugeポインタ : セグメント:オフセットでのアクセス、常に正規化するので64kbytes以上のデータにアクセス可能

Tinyモデル (COM形式)
コード : near、データ : near、コードとデータが同セグメント

Smallモデル
コード : near、データ : near、コードとデータが別セグメント

Mediumモデル
コード : far、データ : near

Compactモデル
コード : near、データ : far

Largeモデル
コード : far、データ : far

Hugeモデル
コード : far、データ : huge
9デフォルトの名無しさん:03/03/07 14:57
DOS/V 簡易グラフィックライブラリ「GRPTEST 1.0」
http://www.vector.co.jp/soft/dos/prog/se008421.html

VESA256色モードをサポートし、TCとBCに対応。
しかし、配布されてるのはソースだけで、TASMがないとコンパイルできない。
誰かコンパイルしたのをうぷして!
>>9
grplib.cの107行目、

#pragma inline

をコメントアウトすればtasmなしでコンパイルできる。


しかし、ヘッダもついてないのね(汗)
11とて:03/03/07 16:16
情報 求む

 昔 昔の クイックC2 のAT版所持者
      nec98ならあるが 今わ動かない
      そこで AT版なら動く可能性がある
   マイクロソフトのQuickC Ver2.0
      
  ∧_∧
 ( ´∀`)< ぬるぽ
       | | ガッ
  ( ・∀・) | |      
 と    ) | |   
   Y /ノ   
    / )  .人 
  _/し'  <  >_Λ∩
 (_フ彡  V`Д´)/
            / ←>>12
>>11
PC/AT版って、日本語版はないんじゃないかな?
J-3100の英語モード用に英語版が販売されていたような。
>>5を見てこのスレには何の価値もないと思った。
>>1よ、もはやメモリモデルを気にしたり、
ソフトウェアでグラフィックを高速化したりする時代は終わったのだ。
俺と一緒にDirectX9を勉強しようじゃないか。
169:03/03/09 13:40
>>10
レスありがとう。
でも、インライン命令使わないと遅いってことはないですか?
ま、動けばいいんですけどね。

関係ないけど、DX4でも整数sqrtは実数sqrtの3倍遅かったです。
QCではなくVC1.5を使えば?
189:03/03/09 17:13
デモソース動きました。
でも、コメントに書いてあったとおり、フォントは読み出せなかったようで、
グラフィック文字出力はダメでした。

>>15
DOSプログラミングには箱庭的楽しみがありまふ。
つーか、意味ないよな

>将来的には、Quakeとか移植できたらいいな、と思ってます。
ハードの性能的に無理でしょ。
>>19
PentiumII機あったけど。
>>19 >>20
ttp://www.amy.hi-ho.ne.jp/nakajima-jr/com_2/raiii1g/raiii1g.htm
1GHz動作するから、十分可能かも。
22デフォルトの名無しさん:03/03/09 21:55
>>11
2.0だったか2.5だったか持ってたはずだが・・・
ちょっと探したけど見つからない。
「情報」とはどのような?
23FreeDOS教徒:03/03/09 22:43
この板だとすぐ落ちそうな気がするんですが、それはさておいて。
なんつー面白そうなスレ立ててんだ>>1よ。じっくりヲチさせてもらうぞ。
24とて:03/03/10 09:42
今のパソコン
 セレロン300で メモリー128 HD 6G
のパソコンで動かす
 業務の異動 NEC98からATタイプに
 ソースはあるから コンパイルしなおしたら
動くかの判定 

 パソコン本体は 別にして 数万円で構築できるメリット



>>18
パックドピクセルのMCGAモードなんか、
他人のよくわからんライブラリ使うまでもないだろ。
自分で書け
いまからだとハード周りの書籍を探すのがなかなか困難だ
流行らせてから秘蔵の書籍をヤフオク辺りに出品してぼったくりたい
27デフォルトの名無しさん:03/03/10 11:12
>>26
英文ならネットに一杯あるよ
28デフォルトの名無しさん:03/03/10 11:13
>>18
フォントは、BIOS使って読み出すよりも、
ビットマップフォントを用意した方が早いんじゃ?(手間的にも速度的にも)
速度云々言う奴の頭には、BIOSから読み出したフォントを
キャッシュするという考えが無いのだろうか?

DOSからWindowsに環境が変わっても同じようなことを言う奴がいる
GDIのテキスト出力が遅いという理由でビットマップで
フォントを作っておくとか言い出す馬鹿者と同レベル
DOSでぬるぽ
>>30
NULL pointer assignmentは何回か出したことあるよ。QuickCで。
 DOSダロウトナンダロウト
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>30
保守
34デファクトのスタンダードさん:03/04/07 20:26
ちょっとスレ違いかもしれないんですがedlinについてです。

1.44MBフロッピーに日本語を表示できるようにいろいろ詰め込んだ時に、
どうしてもedit.exeが入らなかったので(QuickBasicが必要だから)
edlinを入れようと思って探したらMS-DOS 6.2/Vには無いんですね。

で、記憶を辿ったらDOS5にはある。(但しNEC版)ってことは、6.2/Vは
アップ版だから無いんだろうという結論にしたのですが、そもそもNEC版
ではないAT互換機でDOS5の日本語版なんて出回ったのでしょうか?

思い出したら気になりだしたんで…
せめてDOS Extender使うとか。
64KB境界気にしつつやってられねーよ。
DOS/Vの最初は4.xだったはず
(DOSじゃなくWin9x向けなのですが)
上司の無茶な思い付きにより
FATとFAT32用のデフラグツールを
独自実装する羽目になりそうです。

Googleで探しても、この辺の資料って少なくて
困ってます(デフラグ製品ばっかり引っかかって、
実装方法やらアルゴリズムに関する資料は
なかなか見つからない・・・)

この辺の勉強にいいページとか本とか
教えていただけないでしょうか?

当方のレベルは、ユーザモードで動く
C/C++/Javaアプリケーションなら
だいたいどんなものでも書ける程度です。
(が、ハードを直接たたくような
コードは書いたことがありません。)
>>37
> (DOSじゃなくWin9x向けなのですが)
> 上司の無茶な思い付きにより
> FATとFAT32用のデフラグツールを
> 独自実装する羽目になりそうです。
今更そんなのを新たに作っても売れんよ?
39デファクトのスタンダードさん:03/04/11 19:42
>36
ソリはAXでは?
>>37
> この辺の勉強にいいページとか本とか

あんまり役に立たないレスですが、そーゆーのってハード系
(CQ出版のインタフェースとか)を当たると何か役に立つんじゃ
ないでしょうか。あとATAやSCSI関連の仕様の中にポロッと出て
きそうです。
42デフォルトの名無しさん:03/04/11 21:53
>>37
>当方のレベルは、ユーザモードで動く
>C/C++/Javaアプリケーションなら
>だいたいどんなものでも書ける程度です。

ならば、ハードを直接叩くコードを
自動生成するプログラムを作れるだろ?
>>42
自動生成するプログラムが生成した「ハードを直接叩くコード」は
人間が書くんだよ。
今現在何もないところからコードを作り出せるプログラムがあると思ってるの?
44デフォルトの名無しさん:03/04/12 08:00
>>43
・「コードを自動生成するプログラム」というものは存在し得る。
・「コードを自動生成するプログラム」はユーザーモードで動かす事が可能である、
>>37は「ユーザモードで動くアプリケーションならだいたいどんなものでも書ける」

ならば、>>37はハードを直接叩くコードを自動生成するプログラムを作れる

簡単な理屈だろ。

俺は今まで「ユーザモードで動くアプリケーションならだいたいどんなものでも書ける」
なんてトンデモな事を言いきれる奴を見た事が無かったので言ってみただけ。
copy a: b:
del a:

95発売以前は、ウイルス作りにマジ燃えたな。
いわゆるステルス型とかいろいろ作った。
俺を裏切った香具師に、それ仕込んだゲームソフトをあげて悦に浸ったりしたな〜。
>>46
キモッ!
48デフォルトの名無しさん:03/04/12 18:58
DOS/VのDMAの使い方を日本語で解説しているページってないですか?
>>48
以前,ちょこっと勉強したけど日本語資料はあんまりなかった気がする.
CQ出版の本とLinuxのソース,あとはIntelからDMAコントローラの資料ダウンロードして
IDEのDMA転送は一応可能になったよ.

ぬるい情報で申し訳ない.
>>48
DOS/V(MS-DOS/IBM PC-DOSの日本語版)にDMAはついてないわけだが。
PC-AT互換機のハードウェアDMAの使い方は古い本にしか出てないし、
今さら勉強する価値があるとも思えない。
51山崎渉:03/04/17 15:29
(^^)
保守
53デフォルトの名無しさん:03/04/24 00:47
質問させてください。
バッチファイルを作って、それにD&Dして、バッチファイルと同じディレクトリにおいてる
スクリプトを呼び出して処理しようとしてるのですが・・・

カレントディレクトリの移動に失敗してしまいます。
バッチファイル内で・・・

cd %0%../

こんな事してるんですが、移動できません。
バッチがおいてあるディレクトリへ移動する良い方法はありませんか?
>>53
バッチファイルプログラミング質問スレ
http://pc2.2ch.net/test/read.cgi/tech/1040614686/
>>53
右クリック→プロパティ→プログラム→作業ディレクトリ
は駄目か?
>46
95以前はHDDを初期化したとしても大した被害はないよ。
DOS画面の指定した2つの行でだけスクロールするCONドライバを
作りたいんですが、元になるソースとか情報とかありませんか?
98ならFCONあたりは?
IBM/AT or IBM/XTなんです。
じゃあ、NNANSIとか
どうも。
今PCが手元にないんで、あとで探してみます。
どうやってアクセスしてるんだ。携帯か?
DOSマシーン。これもPCだった。
NNANSIありました。286以上用だったんで、TASM1.0で再アセンブル
したが上手く出来ないみたい。残念ながらスクロール範囲指定エス
ケープはありませんでしたが、十二分に参考になりました。どうも。
http://rd.vector.co.jp/soft/dl/dos/hardware/se003206.html
↑あんま、参考にならないかな?
関係ないけどTASMのバージョン非互換には萎える。
ま、cmacros.incもやめてほしいんだけど。(w
67デフォルトの名無しさん:03/05/16 13:03
DOSで動くHTTPサーバ無いでしか?
DOSの上でwin.comを動かせば、結構あると思う。
69デフォルトの名無しさん:03/05/16 13:24
7067:03/05/16 13:37
thanx!>>68-69
みたけど本物???
ソース2000行くらいしか無いけど...
>ハードウェアを直接叩くのはやっぱり楽しい!
やっぱりストレスがたまっているときはこれだよね
72デフォルトの名無しさん:03/05/25 14:32
dosだとcpuの計算時間ってどうやって表示させるんですか?
73デフォルトの名無しさん:03/05/25 15:36
dosって16ビットだから直接叩いても処理速度おそい
win32に直接叩け、俺は叩けるけど、お前らには無理だろうな(藁
>>72
echo+>crlf
time<crlf
(時間を計るプログラムを走らせる)
time<crlf
というBATファイルで、
時間は自分で引き算するw
75デフォルトの名無しさん:03/05/25 20:30
ちょっと質問なんですがよろしいでしょうか?
別の板のとあるスレで
「とあるサイトを見ていたら突然PCの画面が黒地に白の文字が現れて、強制的に再起動をさせられるという事があった。
一瞬の出来事で、文字の内容は「STOP」等と書かれていた以外は読み取ることが出来なかった。」
という書き込みを見つけたんですが、数時間後に犯人を名乗る人物から
「バッチファイルを実行したからコマンドプロンプトが立ち上がって表示されたんだよ。
OSがブートしなくなったりするかもな。」という書き込みがされました。

これって一体どういう仕組みなんでしょうか?なんかでたらめを言っているようにしか聞こえないのですが。
もしよろしければ正常に戻すための対処方みたいなものも教えていただければ幸いです…
質問するべき場所では無いのかもしれませんが、本当にお願い致します。その方が困ってるみたいなので…
取り敢えず、その犯人とやらの科白は痛すぎ。
77デフォルトの名無しさん:03/05/25 23:04
>>75
バッチファイルで再起動はできる。
だが、Systemファイルをいじれるかは不明。
正常に戻すにはOSの再セットアップが一番良いが、
今は、重大なファイルのバックアップとっとけばいいと思う。
やばくなったら再セットアップだな。
念のためレジストリの修復はした方がいいかも。
78山崎渉:03/05/28 12:44
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
79デフォルトの名無しさん:03/05/28 15:02
↑アフォ
age
80無知無知:03/05/28 18:01
DOSでぷろぐらみんぐってどゆこと?
(・∀・)
81デフォルトの名無しさん:03/05/28 18:03
>>80
command.com でプログラミングするんじゃないか?
(・∀・)
82デフォルトの名無しさん:03/05/28 18:28
Debugって入力てみたらどうだ?
83デフォルトの名無しさん:03/05/31 05:19
むしろシムデブ
>>73
DOSでも32bit命令は普通に使えるが?
>>73
これだからクローズなOSは(ry
なんか変な厨がわいちゃってるね。
88超初心者:03/06/17 23:34
仮想86モードじゃだめだけどリアルモードならセグメントリミットを4GBにしてESIとかのレジスタで32ビットアドレス空間自在にアクセスできますよ。
repプリフィックスとdb 67hとmovsdとかで楽勝です。mov al,fs:[edi]なんてやれるし。
セグメントレジスタは0を入れるのが楽です。esiなどの32ビットレジスタに物理アドレスを入れるだけ。
CALL先は1MB空間に限定でuse32センテンスが使えるDOSエクステンダ系とは違って面倒ですが。
セグメントリミットを4GBにするのはセレクタの設定です。ソース必要であれば掲載します。
89超初心者:03/06/17 23:48
補足、仮想86モードの場合はVCPIかDPMIで32ビットアプリを組めます。
私はVCPI(なつかしのMelware)でTASMとTCで無理やり組んだことがあります。
でもこれは殆どWin32環境のコンソールアプリと同じだな。TC(use16)ゆえにCでポインタが使えないことが問題だったが。
でもハードは、ばんばんにアクセスできます。
Win32環境では基本的にカーネル0で作るデバドラかI/Oトランザクションをゲートを通して実行するしかないでしょう。
SCSIなどはASPIファンクションで自在に扱えるという盲点のデバイスもあります・・・
91超初心者:03/06/17 23:58
Win32環境でI/Oドライバ作ってもアプリに実行権が渡るまで反応できないよね。
即在に反応するのであれば全てデバドラ内部で処理する必要あり。
でもDOSだと自由です。
必要ならデバドラで反応すればいいじゃないの。
やり方知らんからどうでも良いけど。
DOSはCでもinp/outpでできちゃうからね。
93超初心者:03/06/18 22:02
結局16ビットでI/O処理が遅いというのが気になっただけだけど。
リアルモードなり仮想86で32ビット命令使う場合にプリフィックス付く分メモリアクセス不利はわかりますが、Win32の環境じゃぁ速いI/O処理は難しいね。
32ビット処理は速いのは当たり前だけど環境がWin32とリアルタイムOSじゃ差があるのは当然で、DOS環境ならわがままし放題で速いソフト作れるねって話です。
Win32でもDirectXなどのI/Oサポートを使えば素晴らしい速度になりますが、話がそれましたね。
ageないの?
何をもって速い/遅いって言っているかによるだろうけど。
反応(リアルタイム性)と速度(データレート)と幅(16/32bit)などが
ごちゃまぜのような・・・
96た す け て:03/06/19 16:59
マジレス求めても良いですか?

今 PC9801版DOS 命令と同処理をなぜかWin 版に直してんだが。
Dos の BIOS 制御で
Int 18h 命令で
AH 00h を入れた命令ってなにしてるんだ!!!?

AH 0Ah とかは資料に載ってるんだが・・・。どなたか親切な方たのむ。
97_:03/06/19 16:59
>>96
必死だな(ワラ
99デフォルトの名無しさん:03/06/19 17:45
>>98晒しあげ
100_:03/06/19 18:10
101デフォルトの名無しさん:03/06/19 18:25
C:\>debug
-a100
2463:0100 mov dx,109
2463:0103 mov ah,9
2463:0105 int 21
2463:0107 int 20
2463:0109 db 'Hello world',d,a,24
2463:0117
-r cx
CX 0000
:17
-n hello.com
-w
00017 バイト書き込み中.
-q

C:\>hello
Hello world

C:\>
>>96

キーデータの読み出し

割り込み INT 18H
入力 AH <- 00H
出力 AX <- キーコードデータ (AH <- キーコード、 AL <- キーデータ)
10396:03/06/19 23:21
>>102
ありがとうございます。

その後、int18 ではなく int 18 と検索ワードを書いたところ
ネットから情報を得ることができました。
不用意な書き込みにレス頂き感謝します。

また、頂いた「キーコードデータの割り込み」を用いて検索を
行いましたところより詳細なページも見つけられました。
ありがとうございました。
104山崎 渉:03/07/15 15:12

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
105山崎 渉:03/08/02 02:41
(^^)
106山崎 渉:03/08/15 17:25
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
>2
> Turbo C / Turbo C++ / Turbo Pascal (PC-9800では動作不可)

98固有のライブラリを呼ばなければ、98も可能では。
逆の「98版TurboC Ver2.0+IBM固有Lib不使用」ではIBMでOKです。
こまかいですが。
>>107
当時のBorlandのIBM PC向け製品は98ではコンパイラが動かないのです。
IBM PCに依存するコードが含まれているのでしょう。

生成されたバイナリはIBM PCに依存するライブラリを使用していなければ98でも動きます。
確かスタートアップでどっかの割り込みベクタを保存してて
それがIBM PC固有で98だと不都合が出たと聞いたような。
コンパイラもそのコードを使ってるから。

パッチ当てれば動くようになったらしい。
>108
コンパイラ自体が動かないんだ。
むかし、IBMのTurboC1.5環境版を98で動かすパッチがあったような。
2.0で98版が出たからね。
Turbo Visionってまだあったんですね。Win32やUnixでもあるとは。
タダで使えるBorland C++ Part3から誘導されてきました。

「目的」
Win2000のコマンドプロンプトから、
グラフィックを使用するDOS用のプログラム(シミュレーションプログラム)
を実行したい。

以下、本からの引用
言語 C
コンパイラ Turbo C、 Borland C++ など
パソコン機種 PC-9801シリーズおよびその互換機、
IBM-PCおよびその互換機 (J-3100、AX、DOS/V)
CRT 640×400ドット
です。(引用終わり)

コンパイラは、TurboC++1.01です
ttp://community.borland.com/museum/

「質問」
ソースをみると、機種選択をするようになっています。

引用
#define IBM_PC
#define PC_98
#define PC_98_V2

これはIBM_PCを選択しコンパイルすれば、目的が適うでしょうか?
宜しくお願いします。

長文失礼しました。

OK
640x400てのが若干気になるけど、98やJ3100にあわせたんだろう。
たぶん下80行が使われないだけかな。

あと、コマンドプロンプトで実行して見栄えが悪かったら
ALT+Enterでフルスクリーン表示にするといいかも。
115112:03/10/05 19:56
>113,114
ありがとう。

では、やってみます。
また質問がでたら、宜しくお願いします。

以上です。
116112:03/10/09 14:52
途中経過です。
TC2.01を利用して、以下のプログラム(ネットで拾った)をコンパイルしてみました。
>tcc -ml graphics.lib gg.c
gg.c ソース
#include <graphics.h>
#include <conio.h>
void main(void){
int gd=DETECT,gm ;
initgraph(&gd,&gm,"b:\\graph");
setcolor(WHITE);              /*境界線を白色と指定*/
circle(319,175,100);         /*(319,175)を中心として半径100の円を書く*/
circle(260,250,100);         /*(260,250)を中心として半径100の円を書く*/
circle(369,250,100);         /*(369,250)を中心として半径100の円を書く*/
 setfillstyle(SOLID_FILL,RED);        /*べた塗りで色は赤色を指定*/
 floodfill(319,80,WHITE);  /*(319,80)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,BLUE);  /*べた塗りで色は青色を指定*/
 floodfill(260,340,WHITE);         /*(260,340)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,GREEN);  /*べた塗りで色は緑色を指定*/
 floodfill(369,340,WHITE);         /*(369,340)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,WHITE);  /*べた塗りで色は白色を指定*/
 floodfill(319,270,WHITE);         /*(319,270)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,YELLOW);      /*べた塗りで色は黄色を指定*/
 floodfill(370,200,WHITE);         /*(370,200)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,LIGHTCYAN);    /*べた塗りで色は水色を指定*/
 floodfill(320,290,WHITE);         /*(320,290)から境界線が白色までを塗る*/
 setfillstyle(SOLID_FILL,MAGENTA);     /*べた塗りで色は紫色を指定*/
 floodfill(230,200,WHITE);         /*(230,280)から境界線が白色までを塗る*/
getch();
closegraph();}
上手く、表示されました。
initgraph(&gd,&gm,"b:\\graph");これが、気になるのですが、
変えなくてもよいものなのでしょうか?宜しくお願いします。
>>116
"b:\\graph"は .BGI のあるディレクトリに変えた方が良いような気がする。
118112:03/10/09 19:15
>117
レスありがとう。

やっぱり変えたほうがいいですよね。
なんか、気持ち悪いし、、、、。

また、すすみ次第、報告します。
>116
initgraphの引数が1つ足らんな(w
bgidemoは試したのか?
120112:03/10/12 02:38
>119
レス ありがとう。手元に TURBO C++
のコンパイラ・マニュアルがあるので参照しました。

initgraph
機能 グラフィックスシステムを初期化する。
ヘッダ graphics.h
書式  void far initgraph(int far *graphdriver,int far *graphmode,
char far *pathtodriver)
でした。
だから、引数は3つで良いみたい。

>bgidemoは試したのか?
早速やってみました。

画面がちかちかと変わって(変えて)
”That's OK!,folks"と、最後に表示されましたよ。

最後に、
bgidemo.cから抜粋
initgraph( &GraphDriver, &GraphMode, "" );
3つめの引数は省略可ですね。
マニュアルがあるならバッチリですな(w
BGIはOBJに変換してリンクすると楽かも。
122112:03/10/12 20:00
>121さんへ。

いや〜、こないだ、たまたま、ヤフオクで
ナツメ社から出ている
TURBO C++ コンパイラ・マニュアル
をゲットしたのですよ。100円でした。
運が良かったです。

ところで、
>BGIはOBJに変換してリンクすると楽かも。
は、どういうことですか?

すみませんが、教えてください。
宜しくお願いします。
100円とはラッキ〜〜。この手の本は少ないしね。

bgi2obj.exeだったかな?それを使って、BGIファイルをOBJファイルに
変換出来るんです。BGIファイルは実行時にinitgraphがロードしますが、
OBJだとリンクしておけるんで。initgraphのモードをDETECTにしておくと
EGAなどグラフィックアダプタに合わせてロードしてくれるんで便利ですが、
今時は解像度の高いのをリンクしておけば済むような気もするしね(w
124112:03/10/13 17:30
>123
ラッキーでしょ〜。

makeが使えることも知ったし、十二分に元を取りましたよ。

ちょっと、質問の続きなのですが、後半の

>initgraphのモードをDETECTにしておくと
>EGAなどグラフィックアダプタに合わせてロードしてくれるんで便利ですが、
>今時は解像度の高いのをリンクしておけば済むような気もするしね(w

が、判らないです。

じつは、ライブラリをオブジェクトにするメリットも、いまいち
良くわかっていません。
gccとかで、数学関数を使うとき -lmって付けますよね。
だけど、数学関数のライブラリをオブジェクトにするっていうのは
聞いたことがありません。

教えてもらってばかりで恐縮ですが、お願いします。
objもlibも似たようなもんじゃないのとか思った。複数のobjまとめられるとか。そんなん?
>>124
> ちょっと、質問の続きなのですが、後半の
> >initgraphのモードをDETECTにしておくと
> >EGAなどグラフィックアダプタに合わせてロードしてくれるんで便利ですが、
> >今時は解像度の高いのをリンクしておけば済むような気もするしね(w
> が、判らないです。

ヘルプか参考書でregisterbgidriverを調べれ。

BGIファイルをOBJファイルにしてそしてリンクすることにより、
EXEファイル内にBGIファイルの内容を埋め込むことができる。

すると人様にソフトを配布する時にBGIファイルを添付する必要が無く
EXEファイルだけで済む。ちょっとカコイイ。という話。

まあ、見栄えの問題だけだから、面倒なら気にしなくてもいい。

ところで、目的のシミュレーションプログラムはどうだったんだろうか?
プログラムに日本語文字が使われているとコンパイラを通らない
可能性もあるが。
127121:03/10/13 21:00
>126
なるほど、、、有難う御座います。

目的のシミュレーションは、まだ打ち込み中です。
日本語表記はないので、大丈夫かと思います。

もう1週間もかかっている、、、。
あさってまでには完成します。

>124
>じつは、ライブラリをオブジェクトにするメリットも、いまいち
>良くわかっていません。

ライブラリをオブジェクトにするメリットというか・・・
ライブラリはオブジェクトの固まりです。
図書館みたいなもんです。そこにある本がオブジェクトですね(w

DOSの拡張子で言えば、objを固めて実行出来るようにしたのがexe、
objをまとめておくために固めたのがlibです。libは使うときには
リンカがその中の「必要なobj」だけを取り出してexeにしてくれます。
単にobjを固めると使わない関数も固められてしまいます(昔のTurboC等は)
最近のWin32等のリンカは使っていないobjを関数単位で削除してくれますが。
例えば、ソースを関数毎とかにしてそのobjでlibを作ると、リンカが
必要なものを取り出して関数毎に固めてくれるわけです。

gccはよくしらんのですが、-lmとすると、libm.so(だっけ?)とかがあると
すれば、それはDOSのlibに相当します。
Winでは実行時にリンクするライブラリとしてDLLなんていうのもありますね。
DOSでもDLLとはちょっと違いますが、実行時にロードするオーバーレイ
なんていうのがありました。
129121:03/10/14 18:16
>128さん、有難う。

こんな感じですか?

関数 tmp.exeは、tmp.objやaaa.lib
から生成されるものとする。

aaa.libはリンク時、リンカーによって
aa1.obj〜aan.obj等に変換され、
tmp.obj,aa1.obj(必要なobj)
でtmp.exeが作られる。

数学関数 例えば math.hによる
ライブラリの場合、sin()しか使わない
場合は、sin()のみのobjが作られるのですね。
そしてlinkされる。

少し、判ってきました。
>gccはよくしらんのですが、-lmとすると、libm.so(だっけ?)とかがあると
>すれば、それはDOSのlibに相当します。

いいえ、DLL相当です。
>129
objはlibから変換されるというか、取り出されるという感じでしょうか。
似たようなもんですが(w libはアーカイブなんです。objが固めて
あるので、オブジェクトライブラリって言うのが正しいのかも。
取り出されるのは、objの単位というか結局ソースの単位になってると
思います。だからsinだけ使ったらsin.objがリンクされるかはわかりません。
sinとcosで1つのソースが作られていれば、sinを使ってもcosも付いて
きちゃうというという感じでしょうか。
#最近のリンカでは、使っていない関数は取り除かれるようですが、
#どのように取り除くかはいまいちわかりません。

>130
.soはDLLでしたか、しんずれい(w
>>131
?
>132
何が? かな?
DOSでPCIバスのボードを複数枚制御する際、同じ割り込みを割り振られた場合
どのボードで割り込みが掛かったと判断するにはどうしたら良いですか?
>>134
>>134

INTを見る
>>134
各ボードのステータスを順繰りにチェックするしかないだす。
>>135-136
どうもです。なんとかやってみます。
ちょっくらDOS環境でプログラミングしようと思って,
http://www.borland.co.jp/bcsuite/
を買ったのですが,MSDNサブスクライバーでダウンロードしたMSDOS6.2には,
DPMIついてないし,EMM386に/DMPIオプションないので,
16ビットDPMIが必要なTurboC++4.0が動作しないんです。

DOS6ってPC-98x1でしか使ったことないんで,M$製DOSはよくわかりましぇん。
どなたかご存知ではありませんか?
DR-DOSについても検討したのですが,ネット上にある環境構築に関する情報では
みんながみんなDPMI=OFFなんですよ。何か問題が?

今はとりあえずMeマシン上でBorlandC++5.0Jでクロス開発してます・・・
>>138
TC4はVCPIで動くよ。

NEC版DOS6.2のEMM386.EXEの/DPMIは、VCPIを有効にするオプション。
VCPIは正式サポートではないが、付属のI-O DATA製DPMI.EXEがVCPIを必要とするため、
DPMI.EXEを使用する場合は/DPMIオプションを指定するようになっている。
DPMIを有効にするオプションではなく、「DPMI.EXEを使用する場合に指定するオプション」というわけ。

AT互換機用DOS6.2のEMM386.EXEは標準でVCPIに対応していたはず。
>>139
>AT互換機用DOS6.2のEMM386.EXEは標準でVCPIに対応していたはず。
まじですか。たしかにDOS解説系サイトではDPMI≒VCPIみたいに書いてありますね。

bochs上ではtc.exe起動時に
LTR:386TSS: loading tr.limit < 103
とPANICになってしまうので,あきらめてたんです。もしかして実機ならオケーなんでしょうか。
ちなみにこのbochs上でのmemの出力は
-------------------------------------------------------------------
メモリの種類 合計 = 使用 + 空き
---------------- ------- ------- -------
コンベンショナル 640K 78K 562K
上位 98K 98K 0K
予約済み 384K 384K 0K
XMS メモリ* 31,646K 2,873K 28,773K
---------------- ------- ------- -------
全メモリ 32,768K 3,432K 29,336K
全 1MB 以下メモリ 738K 175K 563K
全 EMS メモリ 3,376K (3,457,024 バイト)
空き EMS メモリ* 2,832K (2,899,968 バイト)
* EMM386 は EMS メモリをシミュレートするために XMS メモリを使っています.
空き EMS メモリは空き XMS メモリの変更によって変わることがあります.
最大実行可能プログラムサイズ 562K (575,808 バイト)
最大空き上位メモリブロック 0K (112 バイト)
MS-DOS はハイメモリ領域に常駐しています.
-------------------------------------------------------------------
こんな感じです。使っているbochsは
http://ebisa.hp.infoseek.co.jp/bochs/index.shtml
のbochs-2.1.pre3-jpfix-20040103-win32.zip です。
どっちにしてもひまみつけて実機で試してみますぅ。
現品.comで買ったSBC(P-166)に32MBのCFカードと,フロッピーと電源だけ繋いで,立ち上げてみました。
DOS6.2Vをインストールして,TC4Jをフロッピーからインストールしました。
なんら問題なく立ち上がりました。bochs上ではTC4は動作しないということで・・・
どうもありがとうございました。またよろ〜ヽ(´ー`)ノ
142デフォルトの名無しさん:04/01/23 07:53
今VCの16ビット(ver1.5?)手に入れるとしたら
オークションぐらいしかないですか?
143デフォルトの名無しさん:04/01/23 10:11
なんか、このスレ見てたら98で同人ゲーム
作っていた当時を思い出したよ
今は、しがない業務アプリの設計者だけど
久しぶりにa8000Hとかに直書きしたくなってきた
144141:04/01/23 12:48
>>143
>久しぶりにa8000Hとかに直書きしたくなってきた
ちょっとした組み込み系だとそういうのまだ現役ですよ。だいたい現場は3K職場ですけど。
ついでにお伺いしたいのですが,a8000Hとか,d0000Hとかに直書きするとき,どうやってました?
その1(ポインタでしこしこ)
void *base_adr;
base_adr = 0xd0000h;
その2(レジスタマップなんかを構造体にしてリンクでアドレス指定)
struct board_foo{
char register[10];
char flag[3];
}foo1;
としておいて,foo1がd0000hに配置されるようにリンカオプションで指定。
>144
その1とその2の合わせ技でしょう。
146141:04/01/24 02:48
>>145
その場合,リンカオプションをいじらずに,ソース上に全部の情報が載るわけですな。
なるほど、構造体をかぶせるのが一番ですね。
148141:04/01/24 18:59
構造体にかぶせるのを,アドレス指定(つまりポインタ)で書くと,
foo1->register[REGNO_CHANNEL1] = 1;
とかになって,「->」がうざいというシトがおられます。
構造体の配置自体をリンク時に指定してやれば,
foo1 . register[REGNO_CHANNEL1] = 1;
と書けるのです。C++でなら,参照を使って,
board_foo &foo2=*foo1;
とか書けるといいんですが,そうは問屋がおろさないようです。
組み込み系の処理系(PL/M,古いintelC)ではかなり太古から変数の配置アドレスをソース上で
操作できるのが普通だと思うのですが,gccとか今風の処理系でもできるんですかね。
そういうの使わないととんでもなく書きにくいと思うのは,頭が古いんでしょうか。
>>148
>とかになって,「->」がうざいというシトがおられます。

刺して下さい。
150141:04/01/24 22:32
->->->->-> ;y=ー( ゚д゚)・∵. ターン

->演算子で刺しておきました。
>>150
噂の演算子オーバーロードですね。
152143:04/01/25 00:37
おや、レスが来てた
いや、当時は全部アセンブラで書いていたから・・・
DSをa800hに変更して直書きしてたから意味合いで言えば、
その2に近いのかな?どちらにしても10年以上前の話だからなぁ
153141:04/01/25 12:12
>>152
>いや、当時は全部アセンブラで書いていたから・・・
(MASMの)アセンブラの構造体こそ望ましいものです。アドレスを指定して,
構造体メンバにアクセスできて「->」をうざがって刺されることもないです。
 
>148
PLMとは懐かしい。今でも昔のサポートで使うことありますが(w
gccでも直アドレス指定出来ますよ。
まあOSによっては、やっても怒られるだけですが(w
156141:04/01/27 10:39
>>155
>gccでも直アドレス指定出来ますよ。
直アドレスを
char *base_adr= 0xd0000;
とできるのは当たり前で,お伺いしたかったのは
struct board_foo;
として作ったものを0xd0000に配置するような機能のことです。ほんとうにできますか。
>まあOSによっては、やっても怒られるだけですが(w
WindowsNT系でもOS標準でできるんで困りませんし,タイミングが10msec以上の
比較的シビアなものではリアルタイム拡張製品などを使うので問題ありません。
それにタイミングが絡んでくると,OSなんかの機能よりも「作り方・書き方」の方が大事だと思います。
特殊なハードのラッチ信号をPCからポチポチ制御するような困ったちゃんシステムとか。
>156
あれま(構造体)変数などの絶対番地ロケートでしたか。
gccで開発するCPUでROM化などしたことがないのでわかりませ〜〜ん(^^;
わざわざ実体を重ねなくても、構造体へのポインタで良いような
気がしますけどね。処理系の環境に依存させるのがいやですから。

怒られるはメモリアクセス例外などが出るだったんですが。
タイミングですか、OSの機能というより挙動を知ってないと
いけない、じゃないですかね。何がWinNT系のOS標準で出来る
だかわかりませんが、WinNT系でもリアルタイム拡張があれば
時間の保証が得られるらしいですね。
昔は知識不足その他で果たせなかった事を何となくしてみたくなって、
使わなくなってた古い9821にdjgppをインストールしました。
今更ですが、Undocumentedな機能(PEGCとか)を使ってみたり、
直書きや割り込み、DPMI等で遊んでます。

…何で今更はまるんでしょう(笑)
結局、DOSは嫌いじゃないんだよなあと再確認しますた。
>>156
> struct board_foo;
> として作ったものを0xd0000に配置するような機能のことです。ほんとうにできますか。

mapped I/Oなら
#define foo1 (*(struct board_foo *)0xd0000)
じゃダメなん?
160141:04/01/30 12:50
>>159
>#define foo1 (*(struct board_foo *)0xd0000)
おお。新パターンです。ありがとうございます。
#defineだとデバッガが・・・ゲホゲホ
ちなみにこれは,実際にお使いですか?
mapped I/Oでドライバ書いたことはないけど、DOSでは使ったな。
>>161
VRAMの位置とか?
質問させてください。キーイン待ちして、何秒後かにタイムアウトする
ようなプログラムは作れるでしょうか?
キーイン待ちのときに割り込み28hが呼ばれるようになっていても、
この中からいきなりキー入力処理の後にジャンプなんてできそうに
ないと思うし(安全とは思えないので)。なんか手ってないもんでしょうかね?
>>163
while(kbhit()){
if(time >= basetime + 1000){
timeoutflag = 1;
break;
}
}
165163:04/02/01 00:04
>>164
ありがとうございます。
そうですね、この方法がありますね。一点気になるのがCPUを喰いすぎる
かなと思うところです。(シングルタスクなので実際上の問題は無いと思い
ますが。。)
>> 163
割り込み28hの中でフラグ立てるようにして,
キー入力待ちする側でタイムアウトをカウントしながら
そのフラグを監視すればよいと思います。
もちろんそのフラグは利用側で事前・事後にクリアしてやらないといけません。
>> 165
> 一点気になるのがCPUを喰いすぎる
?CPUを食わないようになんてできませんよ。CPUは常に100%フル回転です。
nop連続にした方がバスへのアクセスも減って,動作しない内部ロジックが増えて
発熱・消費電力を抑えられるとか,そういう趣旨なんですかね。
それとも省電力対応CPUのお話ですか。
ビジーループってこったろ
>>167
MS-DOSでビジーループを気にする理由がわかりませんね。
タイマ割り込みでソフトタイマー作って,キー入力を割り込みで処理するんなら,
なんにも悩むことなんてありませんですよ。
自前で擬似マルチタスクでも作ってその上で何かなさっておられるのなら,
ビジーウェイトを気になさるのも理解できますが。
ごめんごめん。俺が悪かった。

>(シングルタスクなので実際上の問題は無いと思い
>ますが。。)

これすら読まずに屁理屈こねるような奴に言っても無駄だったな。
お互い様でしょうね。
>>170
同意。
Interrupt Listの最新って61?
あげ
175デフォルトの名無しさん:04/02/17 03:26
バッチファイルを作っているのですが
特定のアプリを強制終了させるコマンドがどうしてもわかりません。
どなたか教えてください。

OS環境はWindows2000Proです。

XPだと、taskkillコマンドが使えるらしく
Win2kならtasklist→killコマンドが使えるらしいのですが
MS-DOS上でそのコマンドを打ってみてもだめでした

ダメモトでバッチファイルでkillコマンドとtaskkillコマンドを書き込んでみましたが
当然だめでした。
>>175
killはWindows 2000 Support Toolsに入っている。
Windows 2000 Support ToolsはWindows 2000のCDに入っている。
177175:04/02/17 23:40
ありがとうございます!!
カレントディレクトリのファイル名を全部大文字にするツールを
作ってるんですが、rename( 旧ファイル名, 新ファイル名 ) とやっても
全然変化しないんですよ。

DOS プロンプトから rename 旧ファイル名 新ファイル名 なら
いけるんですが・・・

Cで DOS のコマンドを実行するっていう命令ありませんでした?
10年前に使ったような記憶があるが思い出せない・・・
179デフォルトの名無しさん:04/02/18 13:27
system
または
exec系関数
ここはいっちょディレクトリエントリを
直接書き換えるというのは、、、
>>178
一回ダミーファイル名に変換してからとか。
ありがとうございます。
さっそくプログラム中・・・
メインプログラマーがウンコすぎて仕事が殆どオレに
まわってきて死にそうです。
とりあえずダミーファイル名に変更することで対応できました。
ありがとうございました。
ていうかメインプログラマーまだ出社してこないよ・・・
もう○んでクレ。
おそらく彼は今頃コタツの中で安らかに・・・
おならを死んだ
186デフォルトの名無しさん:04/03/08 19:08
すみません。
時間を取得してファイル名にセットしたいのですが、
TIMEコマンドだと:が混じってしまい設定ができません。
何か良い方法は無いでしょうか?
よろしくお願いします。
187デフォルトの名無しさん:04/03/08 19:32
age
188田宮良子:04/03/08 20:04
おまえ、混じっているな
189ツソイチ:04/03/08 20:22
混じってるって、どぼぉいうことだよ、
みゅぅぃぃぃぃぃぃいいいぎゅぅいいいいいいいいいいいいぃぃぃ!!!!!
190は ◆cplnFO9T0I :04/03/10 20:32
ネットワークプログラマに朗報です。
閉鎖されてたかと思われたTEENのサイトは、ただ単に鯖のHDが飛んでただけなので、
(マシントラブルとかかれていますが、どう考えたって、消失するといったらHDが飛んだとしか考えられません。)
仮運用の状態にあるそうです。みなさん、これからもがんがってください。
ttp://www.pc88.gr.jp/~teen/
>>190
>(マシントラブルとかかれていますが、どう考えたって、消失するといったらHDが飛んだとしか考えられません。)

さて、と。
>>6
193デフォルトの名無しさん:04/03/29 22:12
こんなサイトを見つけました↓

http://www.command.com/

ここのスレの住民なら笑えるかも。
ttp://command.com/
にして、www.を省略したほうがそれっぽいよ。
195は ◆cplnFO9T0I :04/05/14 20:21
2ちゃんねるブラウザを作ってるんですが、
お気に入りを読み込む部分は動的リンクにしたほうが良いでしょうか?
回答願います。
スレ違い
>>196
そうなのか?
Web Boy を参考にせよ
>>197
だってどう見ても195はDOS用の2ちゃんねるブラウザを作っているようには見えない
200は ◆cplnFO9T0I :04/05/15 18:39
>>198
参考にしろといわれてもねぇ。
>>199
何故に?
コンポーネントをEXEにして分離したほうがいいのか聞いてるんですけど。
201デフォルトの名無しさん:04/05/15 18:42
>>200
それは動的リンクとは言わない。
オーバーレイとかあったなぁ(しみじみ
思うがままに作って、完成させてから要望聞いて対応すりゃいいじゃん。
要望が出そうなところが分かってるなら、最初からそういう風に設計できるだろ?
ただ、DOS用なら、俺としては実行部はファイル1つの方が分かりやすい。
>>195の言う「動的リンク」が何を指すのか、>>200でいよいよ分からなくなったが…
204は ◆cplnFO9T0I :04/05/16 18:38
>>201
似非動的リンク
>>203
わかったYO!
ともかくそこの部分を変更可能なように作っておくということで。
ともかく、ひとつのEXEで作ってみる。
205デフォルトの名無しさん:04/05/16 18:41
>>204
似てもいない。
とりあえず、がんがれ。
207デフォルトの名無しさん:04/07/03 15:04
消えた「は」
208は ◆cplnFO9T0I :04/07/04 00:17
生きてますよ。
209デフォルトの名無しさん:04/07/14 01:46
昔から疑問だったんだけど、>>143にあるようなVRAMアドレスって
DOSエクステンダを使うとどうなるんですか?
アドレス変わっちゃうのかな?
DOSエクステンダは1MB以下のメモリはアドレスが変わらないように
マップしてくれます。その代わりぬるぽが検出できないわけで
pharlapのdosエクステンダはvram用セレクタがあるよ
212デフォルトの名無しさん:04/07/14 16:58
前に他のスレで伺ったらスレ違いとのことでしたので、
こちらでお尋ねしてもよろしいでしょうか?

VCでCUIのプログラムを作ったのですが、
Windows(XP/200/98等)内のDOSプロンプトでは動作するのに、
Windows98の起動ディスクで起動したDOSプロンプト内では動作しません。
Win32APIは使っていません。
調べた範囲ではSTUBが動作してしまっているようなのですが、
どうすればこの場合STUBではなく通常動作させられるのでしょうか?
最近のVCはDOS用プログラム作れないからCUIでビルドしても無理
DOS対応コンパイラを探せ
TurboC++とかだな
215212:04/07/14 17:32
>>213 , >>214
ありがとう
Digital MarsとかもDOS吐けるでしょ。
お分かりになる方がいらしたら教えていただきたいのですが・・・

MASMver5で作ったマンデルブロ集合計算プログラム( .387ディレクティブ
で有効にした浮動小数点命令を使用してます)なんですが、IBMのDOS5J
の下で実行させると45分もかかるのに対して、WIN98SEのDOS窓では
4分程で終了します。どうしてこんなに実行時間に差がでるのか?と不思議に
思っています。何が原因でしようか。
CPUはATHLON2000+で、マ・・集合計算プログラム中でEMMS命令により
MMX命令を禁止させてます。(EMMS命令を追加してやらないと浮動小数点
命令が正常に実行されません)

よろしくお願いします。。
SEは優秀だから
>>217
計算だけ? 描画もしてる?
DOS窓はフルスクリーン?
220217:04/07/16 19:01
>>219
レス、ありがとうございます。
DOS窓はフルスクリーンで、計算と同時に描画も行っています。
>>220
試しに計算だけで比べてみるといい。
DOSの描画はVGA互換モードだから遅いのかな。
222217:04/07/16 19:39
>>221
ありがとうございます。
ご指摘のようにDOSでの描画は、BIOSのサービス(ファンクション番号
0CH)を利用しているため遅いです。正確に測ったことはありませんが、
単純に点を打っていくだけでも、400*400の面いっぱいを描くのに数十
秒位かかったように記憶しています。
223デフォルトの名無しさん:04/07/26 01:30
XPでLSI-Cを使おうとすると、uasgeが空行になっちゃうんですが
対処法あります?
>>223
状況がよく分からんのでソース貼ってくれ。
実行結果も。
225デフォルトの名無しさん:04/07/26 10:56
>>224
いやただたんに

$lsic

(謎の改行(usage分?))

$

こんな感じなんですよ
一回command.com起動汁

XPってDOSコマンドが表示されない時があるんだよな・・・
NTVDMとやらが悪さしているようでガスね
毎回command.com立ち上げるのめんどいんでこれを機にDOSBOX入れまス
DOSBOXってこれ?
http://dosbox.sourceforge.net/
sou
230デフォルトの名無しさん:04/08/01 16:53
ハードウェアを直接叩くのが面白いと聞いたので、パンチしたら壊れました。
どう責任とってくれるんですか。楽しくありませんでした。
最近はハードウェアよりもソフトウェアに対してムカつくことが多いです。
ソフトウェアを直接叩く方法を教えてください。
>>232
右斜め45度から勢いよくやれ。
234デフォルトの名無しさん:04/08/02 00:42
>>233
本当だな?
235sage:04/08/02 01:31
諸先輩方に質問があります。
大変、厨房な質問ではありますがどうかよろしくお願いいたします。

(1).EXEファイルの先頭512バイトのリロケーション情報領域の事ですが、先頭1バイト目の『ファイル識別子』の種類と意味を知りたいのですがどなたかご存知でしょうか?
(2).EXE/.COMファイルのリロケーション領域について詳しく紹介されているHPがあれば教えていただきたいのですが。

現在、勉強中なのですが参考文献も減ってきており四苦八苦しております。
どうか宜しくお願い致します。
236235:04/08/02 02:20
>(2).EXE/.COMファイルのリロケーション領域について詳しく紹介されているHPがあれば教えていただきたいのですが。
(2).EXEのリロケーション領域と.COMのPSP領域について詳しく紹介されているHPがあれば教えていただきたいのですが。
の間違いでした。スミマセン。
MSDOS拡張機能セットを買え
昔はプログラミングの資料がOSに付いてたんだったな
つーかマジな話拡張機能セットってまだ買えるの?
MSDNに載ってないか?
ここにある資料ではどうよ?
漏れは「リロケーション領域」の意味がわからんので自分で調べてくれ。

ttp://www.wotsit.org/
>>235
DOS PSP」でググッたら、PSPの説明ありますた。
超カメレスで、スマソ

ttp://www5c.biglobe.ne.jp/~ecb/assembler2/7_5.html
242235:04/08/06 00:33
皆さんレス有難う御座います。

>MSDOS拡張機能セット
・・・資金が不足している為、購入不可です。

>MSDN
そういえば、載っているかも知れませんね。
調査不足でした。

>>240さんから紹介して頂いたページは最高にいいですね。
ピンポイントで知りたい情報が載ってました。
その他にも色々なファイル情報があり素晴らしいページですね。
お気に入りに登録しときました。
本当に有難う御座いました。

もうちょっと精進しときます。
>>235
DOS5Aのマニュアルp295,296
「EXEファイルの構造と・・・」

http://uploda.net/cgi/uploader2/index.php
ここに飛んでupload25235.jpgをクリックしてちょ
>>233
せっかくカラー化できると思ったのに白黒に逆戻りになってしまうではないですか?
VGAの同期信号を一時的に停止させるgenericな方法ってありませんか?
VGA コントロールレジスタ」でググッたら、こんなのがありますた。
         ↓
http://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デフォルトの名無しさん:04/09/21 22:46:52
>>247
「スタックオーバーフローが出て暴走してしまいます。」

スタックポインタのチェックコードが有効のままになっていて、
割り込みルーチンであぼんしているわけじゃなくて、本当にスタックを
食いつぶしているってことですか?
249デフォルトの名無しさん:04/09/21 22:53:56
interrupts?で追い確認?
250デフォルトの名無しさん:04/09/22 06:15:23
>>248
割り込みを発生させた途端、

Internal Stack Overflow
System Halted

のようなメッセージが画面に表示されて
止まってしまうような状況です・・・。
このメッセージ自身DOSで出してるので
恐らく実際スタックを潰しちゃってると
思うんですが・・・。
251デフォルトの名無しさん:04/09/22 10:56:42
>>250
割り込みの発生ペースは上がってますか?
config.sys で STACKS=64,512 とか指定してみるとどうでしょう。
252デフォルトの名無しさん:04/09/22 20:42:14
>>251
割り込みトリガそのものは外部のスイッチから与えてるので
発生している割り込みは1回だけだと思います、多分。
スイッチのチャタリングが発生してる可能性もあるかも知れませんが、
上手くいくパターンでは1回の割り込みしか発生していませんでした。
しかし駄目なパターンの場合はその1回目で例のメッセージが
出てしまうんですよね・・・・。
config.sysの変更については今その環境が無いので
試せませんが明後日に試してみようかと思います。
253デフォルトの名無しさん: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デフォルトの名無しさん:04/09/25 19:41:59
DOSでプログラミングと言えば、ボーランドが昔のDOS用の製品を
まとめて売り出しているが、買う香具師いるのか?
ttp://www.borland.co.jp/bcsuite/
256デフォルトの名無しさん:04/09/25 22:00:10
いません。
どうせあと二年もすれば無料になるよ。
257デフォルトの名無しさん:04/10/04 17:23:32
Windowsが普及しきってからPCを使い始めましたが
なぜかDOSに惹かれるので、DOSコマンドも覚えました。

今からDOSプログラミングを始めようと思ったら
どういった手段で資料を集めればいいでしょうか?
大きい本屋になら未だに並んでるのか、Web上で足りるのか、諦めるしかないのか・・・
258デフォルトの名無しさん:04/10/04 18:13:52
どんなことをなさりたいのか分かりませんが、DOSのシステムコールの説明
なら、DOSの拡張セット(NECのDOSの場合)にマニュアルが添付されて
ました。が、今でも販売されているかどうか? オークションに出るかもしれ
ませんね。BIOSサービスとかハードウェア関係は、CQ出版社が昔、解説本を
多数出してましたが、今でも在庫があるかどうか?
259デフォルトの名無しさん:04/10/04 18:35:31
コマンドがどうとかっていうことが興味の方向なら、
Cygwin でも入れて perl とか awk その他を覚えてゆくのが良いような気がする。
260デフォルトの名無しさん:04/10/04 18:41:22
>>254
PACK for WIN GOLD 98後期版」なるCDブックにENVHI.EXEという
フリーソフトが収録されていて、これが「一番親のcommand.comの
環境変数をUMBに追いやって、ほんの少しだけ空きメモリを広くできる
かも知れません。」なのだそう。こういうのを差しているのかな?
激しくカメレスで、スマソ
261デフォルトの名無しさん:04/10/04 21:39:45
>>254
MSDOS7なら全部〜Highがあるんだけどそれじゃだめだよな。
262デフォルトの名無しさん:04/10/06 13:21:53
>257です。
コマンドラインで作業をしたいという訳ではなく、>258の仰るようなことに興味があります。

資料はオクで探すしかないようですね。ありがとうございました
263デフォルトの名無しさん:04/10/06 23:09:24
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の場合で、しかもアセンブリ言語です。  ↓
     速水さん、許してちょ              ↓
              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デフォルトの名無しさん: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
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
275デフォルトの名無しさん: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デフォルトの名無しさん: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
リアルモードにおりてから実行妹汁
286278: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)
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デフォルトの名無しさん: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)
http://pc5.2ch.net/test/read.cgi/win/1062775949/
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
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

勉強してから質問しれ
324320:04/12/18 18:24:44
>321
MASM はサイズが大きすぎるので、ちょっと。。。

>322
せぐめんとでぃすくりぷたとは??
325320: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
332320: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
なんせ完全な解が出てるのに無視してる
336320: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:
337320: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の勉強なんだがな
343320: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

としてみてください・・・
347320: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の勉強してるかなー
370320:04/12/21 00:30:55
すいません。レス遅くなっちゃいました。。

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

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

(マジレスでした。。。)
371デフォルトの名無しさん:04/12/21 01:04:57
もう一度だけまじめに書くけど、>>337がうまく動かないのは、
コンパイラは文字列リテラル "Hello ..."がDGROUPのセグメントにあると仮定したコードを吐いているのに
DSが別の領域を指しているため、全然別のデータを読んでいるから。
DSを設定するのはスタートアップ(TCCならc0x.obj)で、
コンパイラがリンカを呼び出すときに、これをリンクしている。

とりあえず、アセンブラコード内でcall _mainするのをやめて
単にCのソースにアセンブラの関数をリンクして動かしてみ。
372Help:04/12/21 01:36:21
どなたかご存知でしたら教えてください。
C#で作成したDLLからVB6へイベントを通知する方法を
ご存知でしたら教えてください。
VB6は、C#記述のInterfaceをサポートしていないので
デリゲートでイベント通知がうまく出来ません。
お願いします。
373320: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
379kai: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なら。
http://community.borland.com/museum/
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
404たかのぶ:2005/05/09(月) 21:58:11
こんなん叩いたら↓
if not exist z: net use z: \\Server01\e$ PPPPP /user:XXXXXX
こんなもんがでたYO↓
z: は \\Server01\e$との接続を記憶しています。
記憶している接続に上書きしますか?(Y/N)
藻前ら分かる香具師はいますか
405デフォルトの名無しさん:2005/05/11(水) 05:51:11
command.comは気が狂いだすから持ち出すのやめてくれ
406デフォルトの名無しさん:2005/05/11(水) 16:01:09
うはwwwwwcommand.comおwwww
いいけつしとるのぉwwwwおkwwww
407デフォルトの名無しさん:2005/06/18(土) 23:11:50
初心者です。突然すいません。急いでいるもので。
○○.EXEというDOSプログラムの中身を見るのはどうしたらよいのですか?
408デフォルトの名無しさん:2005/06/18(土) 23:15:13
バイナリエディタで開け
409デフォルトの名無しさん:2005/06/18(土) 23:16:02
>>407

d>debug ○○.EXE
410デフォルトの名無しさん:2005/06/18(土) 23:20:00
ありがとう。
定番バイナリエディタってどれです?
(409は難しそう)
411デフォルトの名無しさん:2005/06/18(土) 23:33:43
16進でみたいだけならviでもhidemaruでもMifes(綴分からん)でもいいけど。

中味を見るというのがよく分からん。
ひょっとしてexeからソースを復元したいの?
412デフォルトの名無しさん:2005/06/18(土) 23:36:22
はげまるって、 まだDOS版売ってるの?
413デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/06/18(土) 23:53:10
dos限定だったのか。
エスパーな会話しちゃったw

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

ってか、お前がバイナリエディタで開いたバイナリは
改編を認めてるのか?
ライセンス違反だぞ
416デフォルトの名無しさん:2005/06/19(日) 00:03:48
このスレッドの名は
DOSでプログラミング
"で"なんだから、DOSを使うのが前提でしょ?
コマンドプロンプトではなくDOS
ずっと俺はそう思ってたけど
417デフォルトの名無しさん:2005/06/19(日) 00:10:55
>>416
winに付属しているコマンドプロンプトしか頭になかった。
正直すまんかった。

(そういや、伯父もいまだにPC98FAつかっているしな)
418デフォルトの名無しさん:2005/06/19(日) 00:15:22
>>413
どんなプログラムか知らんがその機種にあったものを探した方が早いと思うぞ。
素人がぱっと見ただけでパッチを当てられるようなもんじゃない。
419デフォルトの名無しさん:2005/06/19(日) 08:21:05
DOS始めるには何からやればいいの?
420デフォルトの名無しさん:2005/06/19(日) 08:39:23
あきらめる
421デフォルトの名無しさん:2005/06/19(日) 11:46:26
>>419
DOSのインストール
422デフォルトの名無しさん:2005/06/19(日) 19:41:31
>>421
DOSのインストールって何
もともとあるんじゃないの?どこにあるの?
423デフォルトの名無しさん:2005/06/19(日) 19:49:03
>>422
DOSだって昔は単独で販売されていたんだからインストーラだって存在していた。
424デフォルトの名無しさん:2005/06/19(日) 20:15:09
>>422
WinNT系にはDOSは入っていない。

今DOS単体が手に入るのかどうかは不明。
やりたいんならWin9x系OSをインストールするとかかな
425デフォルトの名無しさん:2005/06/19(日) 20:50:01
DR DOSでも使えばいい
426デフォルトの名無しさん:2005/06/19(日) 21:11:03
Windows 2k/XPでもDOS起動ディスクは作れないわけではない。
http://homepage2.nifty.com/winfaq/w2k/hints.html#952
http://homepage2.nifty.com/winfaq/wxp/boot.html#745
427デフォルトの名無しさん:2005/06/19(日) 21:13:34
DOS"で"プログラミング
なんだから、DOSでやろうや
Win9xでやるのもいいと思うが、そしたら絶対に
Windowsのエディタでコード書くだろ
DOSを入れろ
428デフォルトの名無しさん:2005/06/20(月) 01:43:36
やっぱ、VB1が、とても好き。
mouse.com入れて、結構あそべます。
429デフォルトの名無しさん:2005/06/21(火) 09:44:56
MS-DOSを使ってみて、かなり不自由だったので
ツール郡を移植したあの日々
2ヶ月後くらいに公開したら、もっと質のいいものが出回ってるとしった日
死にたくなった

あれから、2度とDOSの画面は見ていない
430デフォルトの名無しさん:2005/07/18(月) 10:49:41
DOS上で、Windows のプログラム開発は、出来ますか?
gcc + mingw とかで。
431デフォルトの名無しさん:2005/07/18(月) 11:03:22
>>430
MS-DOSでgccは動かないと思いますが。
432デフォルトの名無しさん:2005/07/18(月) 12:48:01
>>430
動作確認はどうするんだよ。
433デフォルトの名無しさん:2005/07/18(月) 13:32:58
djgpp
434デフォルトの名無しさん:2005/07/18(月) 15:25:42
>>431
マジっすか?

というか、勝手に思っててください。
435デフォルトの名無しさん:2005/07/18(月) 16:41:54
思うだけなら自由だしな
436デフォルトの名無しさん:2005/07/18(月) 19:35:05
ここでいってるDOSってMS-DOSのことなの?
もし、MS-DOS限定ならバージョンはどれを指すの?
>>1を見るとハードを直に叩けるって言ってるから6.1以前の物限定?
437デフォルトの名無しさん:2005/07/20(水) 05:25:08
ポッカーーーン
438デフォルトの名無しさん:2005/07/20(水) 05:46:40
俺がMS-DOSを使わなくなったのはメモリの管理を阿呆みたいにし始めたからかな
439デフォルトの名無しさん:2005/07/20(水) 11:26:23
EMSにXMS、さらにはBMSか?
440デフォルトの名無しさん:2005/07/20(水) 17:39:37
UMB,HMA,
441デフォルトの名無しさん:2005/07/20(水) 20:16:29
>>440
どっちもXMSの一部じゃなかったっけ?
442デフォルトの名無しさん:2005/07/21(木) 00:14:12
そういえばそうだったかも。
ん、でもHMAはXMSのおまけで、UMBは仮想EMSのおまけだったような気も。
XMSって286以上の規格じゃなかった?
443デフォルトの名無しさん:2005/07/21(木) 06:14:11
UMBの割り当て/解放のファンクションはXMSドライバのファンクションの一部に
いちおうなってる
http://www.ctyme.com/intr/rb-4768.htm
EMM386を組み込まないと実際には使えないんだろうけど
444440,442:2005/07/21(木) 17:22:29
勉強になりました。
でもこの先使うことなどなさそうな知識だ。
445デフォルトの名無しさん:2005/07/21(木) 18:49:15
(ノ∀`)それを言わないで
446デフォルトの名無しさん:2005/07/23(土) 07:17:32
CD-ROMドライバはネットワークドライブ(のドライバ)の一種だそうですが、ネットワークドライブの仕様について情報源があれば教えて下さい。
447デフォルトの名無しさん:2005/07/23(土) 07:19:48
ドキュメント読めよ
448デフォルトの名無しさん:2005/07/23(土) 14:47:28
ドキュメントはないんじゃなかったっけ?
Undocumented DOSにネットワークリダイレクタの機能を利用した
RAMディスクのサンプルが出てたけど
449デフォルトの名無しさん:2005/07/24(日) 19:37:18
DOSでプログラミングじゃなくてDOSをプログラミングになってきた俺はどうすればいいんだろう・・・
450デフォルトの名無しさん:2005/07/24(日) 20:55:13
>>449
用途によってはDOS互換OSもまだ需要があるから
そのままがんがれ!
451デフォルトの名無しさん:2005/07/31(日) 21:00:23
Dos Promptでシューティングでも作りたいんだが
なんか良い解説サイトとかない?
452デフォルトの名無しさん:2005/07/31(日) 21:01:05
こことか超おすすめ
http://www.google.co.jp/
453デフォルトの名無しさん:2005/07/31(日) 21:31:34
俺はDOSエクステンダを自分で作ってみたい
っていうか、どういう処理をしてるんだよ
気になって夜も眠れん
454デフォルトの名無しさん:2005/07/31(日) 22:02:59
その時の気分でプロテクトモードとリアルモードを切り替えてるんだよ
455デフォルトの名無しさん:2005/07/31(日) 22:07:13
456453:2005/08/01(月) 22:08:39
>>455
おーサンクス心の友よ
457デフォルトの名無しさん:2005/08/18(木) 23:41:51
こっちのほうが詳しそうな人がおおいので、質問させていただきます
PCIデバイスのプログラミングやっとります。

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

どなかた助けてください、お願いします
458デフォルトの名無しさん:2005/08/19(金) 00:20:43
適当にハード関連の本を十冊くらい嫁
459デフォルトの名無しさん:2005/08/19(金) 09:58:25
>>458
何もしらんくせにええかげんなこと書くなよ...
460デフォルトの名無しさん:2005/08/19(金) 16:21:32
>>457
まずはそのデバイスがedge-trigger使えるかどうか調べてからにしな
461457:2005/08/19(金) 19:32:06
ここで聞いた俺が馬鹿だったわ。Linuxのソースコードでも読むことにする
あばよ

>>460
Edge-triggerはPCIデバイスでは使えない、PCIデバイスは全部Level trigger
462デフォルトの名無しさん:2005/08/19(金) 21:00:37
つか、DOSでPCIバス叩いてた奴なんて少数派だと思うぞ。
463デフォルトの名無しさん:2005/08/19(金) 21:41:23
>>461
YMF7x4のFM音源割り込みはモロにIRQだったけどなw
INTなんか使ってねーよ
464デフォルトの名無しさん:2005/08/19(金) 22:18:08
>>463
PCIのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
そのためPCIをサポートしているチップセットは、一部のIRQのみをLevel triggerにする機能がついてるわけ
その方法を探している。

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

Linuxのコメントを読むと、APIC用の別のやり方があるそうなのだが...不明
465464:2005/08/19(金) 22:19:20
ごめん間違えた
(誤)PCIのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
(正)PCのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
466デフォルトの名無しさん:2005/08/20(土) 11:46:50
>>464
まずはdatasheet読もうぜ
440BXとかその辺のヤツだけど役に立つだろ
('A`)ノシ http://www.intel.com/design/intarch/datashts/290562.htm
467デフォルトの名無しさん:2005/08/20(土) 15:38:39
>>466
Thx!、そうか、Intelの本家ページを探せばよかったのか!...
やはり0x4D0, 0x4D1の二つのポートを使うらしい。ただしIRQ1とIRQ2は絶対、Edge triggerで
Levelには変更できないそうだ、ありがとう!
468デフォルトの名無しさん:2005/08/20(土) 22:34:31
>>467
お前英語読めねーの?
思い切り書いてあるんだが。
469デフォルトの名無しさん:2005/08/21(日) 10:23:06
>>468
だから、上のマニュアル読んで言ってるんじゃないか。ああ、おせっかいだったか悪かったな。
「やはり...」の文脈の流れから見てわかんねーの?半島の方ですか?

後それからIRQ1,2に加えて8,13も無理みたいだな。
470デフォルトの名無しさん:2005/08/21(日) 10:30:18
なにこれしきのことでファビョってるんだ?
471デフォルトの名無しさん:2005/08/21(日) 12:35:44
DOS使いはレベルが低いね
472デフォルトの名無しさん:2005/08/21(日) 13:16:05
IBM PC DOS 7.0J/V(または 2000) で REXX のプログラムの話は出て来ないものか。
473デフォルトの名無しさん:2005/08/21(日) 13:29:58
>>467
16bit 環境でプログラムですよね?(プロテクトモードはよく知らないので)
ISA時代で使われていたテクニックそのままで良いですよ。

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

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

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

ところで、PCIボードを制御したいって、制御対象は産業用ですか?
産業用なら、メーカーから何がしか情報が出てませんかね?
474デフォルトの名無しさん:2005/08/23(火) 02:01:32
>>473
産業用ではありませんNE2000互換のNICの制御を目的としております。

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

あと、追加質問で大変申し訳ないのですが、LevelトリガーはEdgeトリガーとは
EOI発行のタイミングが異なると小耳に挟んだのですが、そこらへんは
どうなんでしょうか?
475デフォルトの名無しさん:2005/08/27(土) 10:52:04
>>474
遅くなってすんません(週一で巡回しているもので)。

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

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

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

それを採用するのも一つの手ではあります。
(100kb程度のメモリを占有するのがネックですが)
476デフォルトの名無しさん:2005/08/29(月) 08:33:40
>>475
>基本的には、割り込み処理を抜ける前に EOI で十分です。
わかりました、ありがとうございます。
477デフォルトの名無しさん:2005/09/01(木) 19:19:03
INT13の使い方について質問です。

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

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

環境は、Win98SEの起動ディスク(DOS 7.1)の上で実行しています。DOS窓ではありません。
LOCKも事前に実行しました。
マザーのBIOSも確認しましたが、HDDを保護するような項目は見あたりませんでした。
478デフォルトの名無しさん:2005/09/02(金) 11:34:04
>>477
HDDの容量は?
479デフォルトの名無しさん:2005/09/02(金) 22:01:32
>>478
20GBです。

その後、試行錯誤してWinMeの起動ディスクから起動すれば、正常に書き込みできることが判明しました。
いずれのケースでもCONFIG.SYSは0バイト、ドライバ類は何も組み込んでいません。
何が違うのかさっぱりです。
480デフォルトの名無しさん:2005/09/12(月) 22:48:40
定期age
481デフォルトの名無しさん:2005/09/12(月) 22:50:58
PentiumD使いの俺がきましたよ
482デフォルトの名無しさん:2005/09/12(月) 22:52:39
シングルタスクOSでデュアルコアCPU...
483デフォルトの名無しさん:2005/09/12(月) 22:53:54
>>481
そのPCはDOS専用機に汁!
484デフォルトの名無しさん:2005/09/12(月) 23:03:13
DOSBox(エミュ)使ったほうが開発しやすくないだろうか
485は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2005/09/16(金) 20:42:53
>>484
グラフィックアプリ、I/O直叩き
これをやるのにはエミュじゃ無理じゃない?
486デフォルトの名無しさん:2005/09/16(金) 21:04:28
モノにもよるが、標準的なデバイスなら大体おkなんじゃない?
最終的には実機でデバッグすればいいんだし。
487デフォルトの名無しさん:2005/09/17(土) 20:24:01
ふつークロス開発
488デフォルトの名無しさん:2005/09/19(月) 11:38:44
つ[ハンマー]
489デフォルトの名無しさん:2005/11/06(日) 16:37:59
DOSでPCIでネットワーク処理って楽しそうだな(w
すなおにLinuxとかのフリーライセンスなマルチタスクOS使っておけばいいのに。
490デフォルトの名無しさん:2005/11/06(日) 18:52:03
やれやれ、最近の若いもんはPacket Driverも知らんのか・・・
困ったもんじゃて。
491デフォルトの名無しさん:2005/11/06(日) 19:06:14
>>479
HDDの中身はWinMeでFDISKかけてないか?Win98かMeの時にWin2000との互換性取るためにVFAT他で仕様変わってるはず
492デフォルトの名無しさん:2005/11/07(月) 17:36:23
>>490
そんなの使ってサーバ作りたくないなw
493デフォルトの名無しさん:2005/11/09(水) 04:28:12
>>491
INT 13でのアクセスなので、ファイルシステムは関係ありません。
ぶっちゃけ、初期化されてないHDDでもアクセスできるというか、
そもそもFDISK自体がINT13でHDDを初期化しているわけですから。
結局のところ解決できず、HDDは今のところ放置です。

そのかわり、今はUSBメモリで四苦八苦しています。
手持ちのノートパソコンをUSBメモリからブートさせたいのですが、
BIOSがタコでサポートしているディスク形式(ジオメトリ)が限られているらしく、
なかなかうまくいかなくて。
HDDエミュレーションの仕組みをよく理解していないので、MBRにパッチを当てて
動作をトレースしているところです。
494デフォルトの名無しさん:2005/11/09(水) 18:11:50
ボリュームの排他ロックってのが必要じゃなかったっけ? たとえMS-DOSモードでも。
Meでは廃止されたのかな
495デフォルトの名無しさん:2005/11/09(水) 23:33:29
>>494
事前にコマンドプロンプトからLOCKコマンドは実行したのですが、
それとはまた別の手続きが必要なのでしょうか?
ちょっと調べてみます。
496デフォルトの名無しさん:2005/11/25(金) 00:59:57
ローカルにある三つのファイルをまとめて圧縮したいのですがこれをコマンドプロンプトでやるには
どうしたらいいのでしょうか?DLLはWINDOWS標準でついているものを使いたいです。
例えばC:/マイドキュメントのa.log、b.log、c.logを
c:/work/guro/の下に圧縮する場合
なんてコマンドプロンプトを打ち込めばいいのでしょうか?
どうぞご教授お願いいたします。
497デフォルトの名無しさん:2005/11/25(金) 01:12:49
スレ違いどころか板違い。このへんででも聞け。
http://pc8.2ch.net/test/read.cgi/win/1116131036/
498デフォルトの名無しさん:2005/11/25(金) 01:35:47
>>496
つ[makecab file c:/work/guro/file.cab]
499デフォルトの名無しさん:2005/11/26(土) 05:50:37
PITなんですが、インターバル間隔として設定されている値はどうすれば取得できますか?
例えば#0の場合、40hをただINするだけでは設定値は得られないみたいなんですが・・・
何かコマンドを送って得られましたっけ?
500デフォルトの名無しさん:2005/11/26(土) 11:02:22
あらら500
501デフォルトの名無しさん:2005/11/26(土) 13:23:59
>>499
ググったらこんなの有った。あとはコマンド表見て考えれ

>8253/8254の動作中のカウンタの値を読み出すには、一旦ラッチコマンドを使用して値を確定させます。
>8254は他に "Read-Back command"を用いることで、現在のカウンタの状態(動作モード、OUT信号)を
>読み出すことができます。
502デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/12/01(木) 14:52:14
age
504デフォルトの名無しさん:2005/12/22(木) 15:26:03
DOSで動的リンクについて詳しいサイトとかってあったら教えてください。
505デフォルトの名無しさん:2005/12/22(木) 17:40:04
AsciiNetの過去ログが詳しい。
506デフォルトの名無しさん:2006/02/09(木) 13:51:40
PCを再起動しようと思い、INT 19Hと書いたのですが、
電源が再投入される訳ではないのですね。
Windowsを再起動したときのように、BIOSの起動からやり直すのは
どうすればいいのでしょうか?
507デフォルトの名無しさん:2006/02/09(木) 15:23:07
>>506
JMP FFFF:0000
508506:2006/02/09(木) 18:05:40
>>507
再起動できました!
ありがとうございます。
509デフォルトの名無しさん:2006/02/11(土) 15:07:46
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>30
510デフォルトの名無しさん:2006/03/29(水) 11:13:26
>175さんの質問に近いのですが質問です。

win2kProで現在動いているWindowsのプロセス(イメージ名)一覧
を返却するバッチを作りたいのですが、
win2kだとtasklistコマンド使えないみたいなので(XPProでは使えましたが)
困っております。どうすれば良いでしょうか?
511デフォルトの名無しさん:2006/03/29(水) 15:22:07
>>510
これを解析
ttp://www.vector.co.jp/soft/win95/util/se360371.html

ここってピュアDOSのスレじゃないのかな。
512デフォルトの名無しさん:2006/03/29(水) 18:31:10
ピュアDOSなのだと思うが、質問者にピュアDOSかどうかの区別がつかないから仕方がない
513デフォルトの名無しさん:2006/03/29(水) 19:35:10
510は区別がついてるがスレ違いってところだろ。

>>1の書き方見た感じ、VDMはHW直接叩けないからダメだとは思うね。
514デフォルトの名無しさん:2006/04/09(日) 19:20:00
>>499
直接設定値は取得できないが、現在のカウント値を複数回読んで得られる最大の値は
かなり正確な設定値となる。
元ねたはPC-9801スーパーテクニックでシリアル通信速度を取得したい、という例だったかと。
半信半疑で試してみたら本当に正確な値が得られたのでマジびっくり。

>>501
8bit単位で入出力するからいったん16bitまるごと内部レジスタにラッチしないと正しい
カウント値が得られない場合があるんだよね。

515デフォルトの名無しさん:2006/05/13(土) 11:07:36
MS-DOSでDMA転送を使うときに使用するメモリってどうやって確保するのでしょうか?
mallocじゃ無理ですよね?
Linuxだとカーネルメモリを確保する関数があるんですが、MS-DOSでは分かりませんでした。
516デフォルトの名無しさん:2006/05/13(土) 13:55:34
>515
手元に資料が無く、適当に思い出しながら書いてます。

少量なメモリのDMA転送を行う場合:
 普通にmallocして使ってください。

大量(1MB以上とか)なメモリのDMA転送を行う場合:
 ズボラなやり方
  →メモリマネージャを使ってなければ1MB以上は、DOSの管理外なので
   直接書き込んでしまいます。
 真面目なやり方
  →HIMEM.SYSならXMS、EMM386.SYSならEMSというメモリ管理機構が
   使えるので、これでメモリを確保して使います。
   Ver.7以降なら、VCPIやDPMIもデフォルトで使えるかも知れません。
   (そうでなくても、そういうものが使えるマネージャが大抵用意されてます)
517デフォルトの名無しさん:2006/05/13(土) 14:04:08
>515
補足です。

Linuxと違って、DOSは全て特権モードで動いているようなものです。
カーネルは全く保護されていません。
(カーネルが置いてあるエリアを適当に0クリアすれば、いつでもクラッシュできます)
メモリも全く保護されていません。
(メモリ例外は起きません)

安心?して、自由きままなコードを書いて下さい。
518515:2006/05/13(土) 15:15:42
>>517
mallocで大丈夫なのですね。
HDDにDMA転送でセクタ書換を行っていたのですが、
試してみるとエラーとなってしまったのでmallocの問題とばかり
思っていました。
原因は別のところにありそうなのでもう少し調べてみます。
ありがとうございました。
519デフォルトの名無しさん:2006/05/13(土) 15:26:30
BIOSの領域ってDOSからアクセスできますか?
520デフォルトの名無しさん:2006/05/13(土) 15:47:07
>>516
XMS/EMS(除HMA)は物理アドレス取れないからアウト。
多分DPMIでも取れない。
よってズボラなやり方推奨。
521デフォルトの名無しさん:2006/05/13(土) 16:20:48
>>519
BIOSだろうがI/Oだろうがアクセスしまくりです。
522デフォルトの名無しさん:2006/05/13(土) 21:39:08
計算した数値をコンソールに出力したいのですが、どうすればいいのでしょうか?
523デフォルトの名無しさん:2006/05/13(土) 21:50:43
>>522
所謂DOS窓のことならスレ違い。
524デフォルトの名無しさん:2006/05/13(土) 22:03:34
>>523
どこで聞けばいいのでしょうか?
525デフォルトの名無しさん:2006/05/13(土) 23:45:18
>>524
Win32APIスレ辺りかな。つーか、聞く前に探すように。
526デフォルトの名無しさん:2006/05/14(日) 00:25:47
>>525
サンクス。
527515:2006/05/15(月) 11:58:06
IDE接続のHDDにDMAにてセクタを書き換えたいのですがまだ上手くできません・・・。
コンパイラはOpen Watcomを使用して、DOS-32BIT(CauseWay Executable)として
コンパイルしています。
この場合でもmallocしたメモリのアドレスをそのままDMA転送用のアドレスとして
I/O レジスタに登録しても大丈夫なのでしょうか?
物理アドレスに変換する必要とかはないでようか?
mallocにて確保したアドレスは4MBを少し超えたところになります。

I/Oレジスタへ確保したアドレスを登録しても、HDDにはアドレス0以降の内容が
書き込まれてしまいます。

どこかにサンプルソースとかないでしょうか。
528515:2006/05/15(月) 12:56:03
>>527
Open Watcomのスレがあったのでそちらで質問してみます。
529デフォルトの名無しさん:2006/05/15(月) 16:54:06
アセンブラの勉強をしようと思って、MASMでアセンブルしてTurboDebuggerでデバッグしよと
したら、Not a 32-bit Program と言われて拒否されました。

16ビット用のデバッガってあるのでしょうか?
530デフォルトの名無しさん:2006/05/15(月) 17:48:04
>>529
debug, symdeb, exdeb, 16bit用のTurbo Debugger等々
531デフォルトの名無しさん:2006/05/15(月) 18:15:52
>>530
サンクス。
16bit版のTurbo Debuggerもあるんだ。
探してみます。
532デフォルトの名無しさん:2006/05/31(水) 19:14:48
Borland C++ 5.0って32ビットDOSアプリケーションを作れるのでしょうか?
sizeof(int)ってすると2となるので16ビットアプリケーションになっている気がします。。。
533デフォルトの名無しさん:2006/05/31(水) 21:46:08
>>532
32bitDOSアプリケーションを作るのには別売りのDOS Power Packが必要。
DOS Power PackはBC4.0or4.5用だが非公式にはBC5.0でも動く旨の文書がどこかにあったはず。
534532:2006/06/01(木) 00:11:18
>>533
DOS Power Packはプロテクトモードなので今回は使えないんです。

16ビットのままでもなんとか使おうと思っているのですが、__int64が未定義エラーに
なってしまいます。
16ビットコンパイラで64ビット整数を扱うのは無理なのでしょうか???
535デフォルトの名無しさん:2006/06/01(木) 01:25:21
>>534
↓これによるとVer.5.02JのBCC32から__int64が使えるようだが
ttp://mulnet.net/bcc5.html
32bit用コンパイラでコンパイルできて 16bit用で出来ないのなら無理なのだろう。

というか普通「32ビットDOSアプリ」というとDOSエクステンダを使ったものを指すので
必然的にプロテクトモード(と仮想86モード)を使うことになるよ。

ちなみにOpenWatcomの16bitコード用コンパイラ(wcl)なら__int64が使えた。
#この場合は16bit用なので当然 sizeof(int) == 2
536デフォルトの名無しさん:2006/06/03(土) 23:10:08
非プロテクトモードで動く32bitアプリってどんなアプリじゃ。
64bitINT型が使いたいだけってことなら、C++でlonglong型を実装すれば
いいんじゃね?
537デフォルトの名無しさん:2006/06/04(日) 06:54:15
x86でプロテクトモードじゃない32ビットアプリ
とか言ってるような輩は相手にするな
538デフォルトの名無しさん:2006/06/04(日) 16:35:09
リアルモードで32bitレジスタアクセスすれば32bitアプリ
・・・とは言わんよな、普通は。
539デフォルトの名無しさん:2006/07/23(日) 02:47:00
最近のマザボでDOSを起動する時、EMSドライバがエラー起こす・・
対策方法とかあります?
それとも諦めるしかない?
540デフォルトの名無しさん:2006/07/23(日) 06:00:36
ウチは大丈夫

情報すくなすぎ
541デフォルトの名無しさん:2006/07/27(木) 00:22:32
>>518
PC/ATのDMAコントローラは64KBごとのブロックをまたがる位置のDMAは
出来ないのでは?
PC-98にもその制限がありDMAするデータのサイズの二倍の領域を
mallocして前半がブロックをまたがる場合には後半の領域をDMAバッファ
にして対処したことがある。
>>527
DMAコントローラには物理アドレスを与える。
Phoenix Technologiesの"PCI-ATA-DMA"は読んだ?
元のPC/ATにはIDEのDMAコントローラは無いから、各社のPCIの
ATAコントローラを直接制御するってこと?PnP大変でしょ?
542デフォルトの名無しさん:2006/07/27(木) 08:14:38
PICやAVRでIDE叩くよりマシ
543デフォルトの名無しさん:2006/07/28(金) 22:10:52
INT 25h や 26h での質問。
セクタライトするとき lock unlock しないといけないはずだけど、どうするの?
解説書が無いので調べられない。細かい説明はいらないからソース書いてよ。
544デフォルトの名無しさん:2006/07/28(金) 22:20:51
できればMASMでお願いします。MS-Cでもいいです。
545デフォルトの名無しさん:2006/07/28(金) 22:45:49
>>539
これでダメならあきらめろ
device=emm386.exe ram frame=D800 i=D800-E7FF
546デフォルトの名無しさん:2006/07/29(土) 01:48:48
>>543
DOS 6.2までならロックいらないでしょ?
>>492 が生DOSでも必要と言っているけどWin95(MS-DOS 7.0)からそうなったの?
資料はRalf Brown's Interrupt Listと
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_9jl4.asp
547デフォルトの名無しさん:2006/07/29(土) 10:23:21
>>546
> http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_9jl4.asp

それはメディアをイジェクトできないようにするロックだな。
int 25h とかで使うのは、Minor Code 4Ah, 4Bh の方。
FAT32にも対応させるなら、↓も見ておくべし。
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/fat32_70z4.asp


> >>492 が生DOSでも必要と言っているけどWin95(MS-DOS 7.0)からそうなったの?

自前でロックするか、lockコマンドでロックしておかないとエラーメッセージが出て
DOSが停止したと思うが。アンカーミスってるようだがどこ指したかったんだ?
548546:2006/07/29(土) 21:28:33
549デフォルトの名無しさん:2006/07/30(日) 00:17:16
DOS/V用の表計算やワープロ(エディタじゃない)ソフトを使いたいが
オークションでも出品されてない。
PC-98なら結構あるんだが

誰か作ってくれ!DOS用だからそんなに多機能じゃなくていい、むしろシンプルに!
でも100行くらいしか使えない表計算なんていらないけどね

550デフォルトの名無しさん:2006/07/30(日) 00:31:09
フリーでいくらでもあるのに
551デフォルトの名無しさん:2006/07/30(日) 00:35:24
いくらですか?
ん...? フリーなのに?
552デフォルトの名無しさん:2006/07/30(日) 00:40:59
もしかして子供?
553デフォルトの名無しさん:2006/07/30(日) 01:48:06
MS-Worksはちょっと便利かも。
554デフォルトの名無しさん:2006/07/30(日) 04:58:39
はれ?Works って、DOS用あったんだ。
Win3.1用しか知らんかった。

ん〜...
しかし、フリーで DOS用の表計算アプリって、いくらでもって程あったっけ?
ググって見た。

HYO (未だ更新中?)
ttp://homepage3.nifty.com/akino-yo/Computer/FreeSoftware/HYO/Index.htm

CXP
ttp://hp.vector.co.jp/authors/VA003342/


参考: (MG LIB: ドスモバ用アプリのライブラリ)
http://mb.amcsys.com/mlib/
超計算 ぺけぺけ
ttp://mb.amcsys.com/mlib/soft/dos/application/xx25.lzh
555デフォルトの名無しさん:2006/07/30(日) 08:40:10
>>553
未だに使っている。PC-98用とDOS/V用とWin3.1用があったかと。
556デフォルトの名無しさん:2006/07/31(月) 22:22:55
>554
HYOは訳わからないっス

CXPは行数が少ないっス

超計算 ぺけぺけ   最高っス!

おいらはCSVが大好きっス

でもエクセルなんか使っても、100分の1も機能使ってないっス

ぺけぺけは究極のシンプル・イズ・ベストアプリっス

今の付加価値蔓延PC環境の中でおいらはもがいていたっス

こういうシンプリーなものがおいらには合うっス

で、エディタじゃないワープロのものってないっスか

ワードや一太郎はいらないっス

イメージ的にはこんなやつっス

http://homepage3.nifty.com/mzakd/starthp/sc10.html

用紙サイズが指定できて、エディタのように文章を打ち続けると改行するまでずーと

右に移動するものじゃなく、きちんと用紙サイズに対応して改行しなくても字が折り返す

やつで、せいぜい罫線が引けりゃ十分というものっス。

よろしくっス!
557デフォルトの名無しさん:2006/07/31(月) 23:50:56
Ver4以下の一太郎。dashでもjump(教育用だっけ?)でも可。(386以下ならVer.3以前)
機能過剰はVer.4からだが、今のようなあからさまな変化(似非DTPソフト化)はVer.5以降。

そもそも文章打ちを最初からワープロでやろうってのが間違い。
入力、推敲はエディタでやって、ワープロソフトではそれ以外の作業を行う。(紙に合わせて文の折り返しの長さを調整したり効果を付けたり。絵や図を入れることも。)
エディタだって折り返しカラム数指定できるものはある。
558デフォルトの名無しさん:2006/08/01(火) 00:03:25
しかし、スレ違いだな。
プログラミング板の話題じゃないよ。



MS-DOS ってどうよ
ttp://pc8.2ch.net/test/read.cgi/os/1010640399/
559デフォルトの名無しさん:2006/08/01(火) 00:08:06
>557
折り返しできるエデイタでフリーのDos/Vタイプってありますか?
560デフォルトの名無しさん:2006/08/01(火) 06:41:17
561デフォルトの名無しさん:2006/08/02(水) 09:18:48
HyperCube
562デフォルトの名無しさん:2006/08/05(土) 08:22:30
DOS で動く Java環境って無いの?
563デフォルトの名無しさん:2006/08/06(日) 11:40:12
レスが無い... 無いのか.... or2
564デフォルトの名無しさん:2006/08/06(日) 13:26:45
グラフィックもネットワークも標準である訳じゃないし
VM作る気にもならなかったとしてもおかしくない罠
565デフォルトの名無しさん:2006/08/10(木) 23:47:26
ハードディスクの ボリュームラベル の作成・変更・削除ってどうするの?
566デフォルトの名無しさん:2006/08/16(水) 00:37:03
保守
567デフォルトの名無しさん:2006/08/17(木) 18:31:04
>>565
labelコマンド
568デフォルトの名無しさん:2006/08/17(木) 21:47:31
>>567
mov  ah,09h
mov  dx,offset msg_korosuzo
int   21h

msg_korosuzo db "一応プログラミングのスレなのでそのレスはいかがな物かと思います。",0Dh,0Ah,'$'
569デフォルトの名無しさん:2006/08/17(木) 21:54:46
system("label.exe …");
570デフォルトの名無しさん:2006/08/17(木) 22:10:50
ボリュームラベル属性のファイルをルートに作るんじゃなかったっけ
571デフォルトの名無しさん:2006/08/17(木) 23:08:15
>565
FAT(FAT12,16,32)は>570の通り。実際にそれを行うコマンドがLabelコマンド。
パーティーション自体に付くラベル(FS非依存)はHDDメニューあたりのエントリを書き換える。
572デフォルトの名無しさん:2006/08/17(木) 23:19:42
わざわざ小細工して互換性の問題出すより
569がいいんじゃないの
573デフォルトの名無しさん:2006/08/18(金) 00:12:34
Int 21h Function 440Dh Minor Code 46h
574デフォルトの名無しさん:2006/08/18(金) 01:40:53
system って無敵関数だったもんな。format とかでお世話になった。
575デフォルトの名無しさん:2006/08/18(金) 01:43:32
おれGUI開発したぜ!

system("win.com")
576デフォルトの名無しさん:2006/08/27(日) 23:46:14
system("del io.sys")
system("del msdos.sys")
system("del command.com")
577デフォルトの名無しさん:2006/08/27(日) 23:56:57
C:\io.sys が見つかりませんでした。
C:\msdos.sys が見つかりませんでした。
C:\command.com が見つかりませんでした。
578デフォルトの名無しさん:2006/08/28(月) 09:27:51
579デフォルトの名無しさん:2006/08/28(月) 20:52:49
system("del c:\\ntldr")
580デフォルトの名無しさん:2006/08/28(月) 23:56:12
ツリー状にフォルダがたくさんあって各フォルダの中のmp3ファイルだけを抜き出してコピーするにはどうすればいいの?
できれば一度のコマンドもしくはバッチファイルで実現したい
581デフォルトの名無しさん:2006/08/29(火) 00:10:35
>>580
for /R src %i in (*.mp3) do @copy /y %i dst
582デフォルトの名無しさん:2006/08/29(火) 07:52:12
すげー、天才かよ
583デフォルトの名無しさん:2006/09/09(土) 10:09:12
基本的なことで申し訳ありませんが、DOS窓でコマンド手打ちだと動くのに、バッチにすると一瞬で窓が閉じて何もされません・・・
なにがいけないのでしょうか?
584デフォルトの名無しさん:2006/09/09(土) 11:36:33
>>583
バッチファイルの最終行にpauseって書いておくと幸せになれるかもね。
585デフォルトの名無しさん:2006/09/18(月) 20:58:02
>>583
コマンドプロンプト(DOS窓)から実行すればおk。
586デフォルトの名無しさん:2006/09/19(火) 01:00:41
>>583
ftp.bat
587デフォルトの名無しさん:2006/09/21(木) 19:12:48
DOSプログラムからフルスクリーンで
system("notepad.exe");
で実行すると、DOS側がフルスクリーンから
DOS窓になってしまいます。 (TURBOC, MS-DOS)
ALT+Enter で手動で戻すのではなくて、
自動でフルスクリーンに戻すにはどうすればいいですか?
588デフォルトの名無しさん:2006/09/22(金) 21:02:09
MS-DOSでDOS窓を表示させるとは
ただ者ではないな
589デフォルトの名無しさん:2006/09/25(月) 11:17:35
>>588
H/W PC9801 OS Windows98 でフルスクリーンからDOS窓でした orz...

ちなみに「MS-DOS プログラムにWindowsを検出させない」にチェックを入れると
フルスクリーンからDOS窓に変更されることはないのですが、
案の定system関数も実行されなくなってしまいます。

ALT+ENTER キーを仮想で押したかのような実験はまだしてません。
それより何かもっといい手があるかと思いまして。
590デフォルトの名無しさん:2006/09/25(月) 12:29:47
>>587

なぜ、そのような変則的な操作が必要なのか、だれも理解できていないよ。

具体的なシチュエーションを簡潔に述べよ。
(注意:あるソフトで・・・→× とある業務ソフトで・・・→×)
591デフォルトの名無しさん:2006/09/26(火) 11:21:21
>>590
具体的には、
・Win98に作成したDOSプログラムを起動。
・オペレーター(おばちゃん)が特定処理を行うと、CSV形式のデータを出力。 
・その後、DOS側でsystem関数を使用し、作成したWindowsプログラムに
 出力データを引き渡す。
・その際、DOS側では system関数に STARTコマンドを使用し、 /WAIT オプションで一時停止
・Win側プログラムはデータを処理して、LAN経由でサーバーに送信。自身で自動終了。

・DOS側はプログラム終了後に”送信完了しました”と表示。
・フルスクリーンが解除され、DOS窓状態に。
・おばちゃん「なんだか画面が小さくなってます」報告
・上司「なんとかならんのか」報告

DOSプログラムをWinに変更出来ないのはクライアントの予算の問題 orz
592デフォルトの名無しさん:2006/09/26(火) 18:52:44
最初っからDOS窓にしときゃいい。
593デフォルトの名無しさん:2006/09/26(火) 19:52:30
>>591
全画面とウィンドウ表示を切り替える関数は、Windows APIですらXP/2003でようやく実装されたという次第。
http://msdn.microsoft.com/library/en-us/dllproc/base/setconsoledisplaymode.asp

まして9xのシステムコールでは存在するわけがなかった。
http://msdn.microsoft.com/archive/en-us/win9x/95func_50j7.asp

ところで、DOS窓へAlt+Enterをプログラムから送ってみたらどうだろう?
それを行うだけのWin32プログラムを作ってさ。
594デフォルトの名無しさん:2006/09/26(火) 21:39:59
Win9xだからWM_SYSCOMMANDで適当にそれっぽいの送るなんていう
いい加減な方法でも動作したような
595デフォルトの名無しさん:2006/09/29(金) 00:22:30
>>590
理路整然が邪魔になることもままあることを学べ。学生よ。
596590:2006/09/29(金) 00:44:05
>>595
学生じゃなくてファーム屋なんだが。


>>591の苦労は俺も味わったことがある。

俺の場合は、工員さんがDOSの黒い画面を毛嫌いするから逆だったが。
597デフォルトの名無しさん:2006/09/29(金) 00:51:37
>>596
農家か。
598デフォルトの名無しさん:2006/09/29(金) 16:18:02
>>26
モロにハード周りの書籍「PC9801スーパーテクニック」っていう
本持ってるけど、誰か買ってくれないかな。
今書籍名で検索したら3500円だかでオクに出されてたけど
送料込み2000円ぐらいでいい。俺にはもう用がねえんだ。
中古屋に糞みたいな値段で売るのも癪だし必要な人間に売りたいので
処分に困ってるw

思えば中学生のころQuick CでINT21hとかやってたわ。懐かしい。
599598:2006/09/29(金) 16:30:49
すみません↑はスルーしてください。
amazonで中古が400円とかで売ってたわ。
シャレになんねーなこの価格崩壊。当時5000円もしたのにw
600デフォルトの名無しさん:2006/10/03(火) 04:27:19
注文前に相場教えてくれてありがとう
601デフォルトの名無しさん:2006/10/03(火) 08:39:53
PC9801スーパーテクニックって俺も持ってるわ。
あと、アセンブラの本が3冊出てきた。
602デフォルトの名無しさん:2006/10/03(火) 10:42:23
UNDOCUMENTED DOSが出てきた
603デフォルトの名無しさん:2006/10/03(火) 22:42:52
>>598
俺もそれ持ってるw

>>601
俺と環境がそっくりだww
604デフォルトの名無しさん:2006/10/05(木) 11:23:17
テキストファイルの全行を削除するDOSコマンドは
ありませんでしょうか?
605デフォルトの名無しさん:2006/10/05(木) 11:33:12
copy /y nul ファイル名
606デフォルトの名無しさん:2006/10/05(木) 11:41:13
del fileして、copy nul fileとか?
607デフォルトの名無しさん:2006/10/05(木) 12:33:22
del > file
608デフォルトの名無しさん:2006/10/05(木) 19:11:38
rem > file
609デフォルトの名無しさん:2006/10/06(金) 12:10:48
copy nul fileで出来ました。
ありがと!

追加で
テキストファイルが空(0行、nul)ではない場合
Excelを起動するコマンドありますか?
610デフォルトの名無しさん:2006/10/06(金) 17:07:52
↓を改行せずに1行で記述

mshta.exe "javascript:
try{new ActiveXObject('Scripting.FileSystemObject').GetFile('file').Size&&ne
w ActiveXObject('WScript.Shell').Run('excel.exe');}catch(e){}finally{close();}"
611デフォルトの名無しさん:2006/10/06(金) 18:19:33
>>610
解りませんでした

言い方かえます。
テキストファイルのサイズがゼロ以外の場合、Excelを実行する
BATなんですけど

宜しくお願いします
612デフォルトの名無しさん:2006/10/06(金) 18:50:23
>>611
メモ帳の使い方から教えろと言うのか?
613デフォルトの名無しさん:2006/10/06(金) 18:56:45
>>612
言ってません。
BATファイルの作り方です。
614デフォルトの名無しさん:2006/10/06(金) 19:28:17
メモ帳に>>610
mshta.exe "javascript:try{new ActiveXObject('Scripting.FileSystemObject').GetFile('file').Size&&new ActiveXObject('WScript.Shell').Run('excel.exe');}catch(e){}finally{close();}"
をはりつけて、拡張子を.batにして保存すればいいのでは
615デフォルトの名無しさん:2006/10/06(金) 19:38:06
そもそも"MS-DOS"用のExcelはない。
616デフォルトの名無しさん:2006/10/06(金) 20:25:05
そもそもActiveX自体がWindows専用だけどね。

>610
警告:悪質なスクリプトを検出しました

オブジェクト:FileSystem Object
活動:GetFile

コンピュータが停止しました。このスクリプトを処理する必要があります:

ファイル:
C:\Documents and Settings\***********\デスクトップ\javascript:try{new ActiveXObject
('Scripting.FileSystemObject').GetFile('file').Size&&new ActiveXObject('WScript.Shell')
.Run('excel.exe');}catch(e){}finally{close();}

どう処理しますか?

処理:
  このスクリプトを停止する (推奨)
  この活動を 1 回許可する
→スクリプト全体を 1 回許可する
  このスクリプトを認証する
617デフォルトの名無しさん:2006/10/06(金) 20:27:35
ウイルスを掲示板に張るなボケカス
618デフォルトの名無しさん:2006/10/06(金) 20:35:16
偉そうに根拠のない因縁つけてくるのは先生の方だけどね。
619デフォルトの名無しさん:2006/10/06(金) 20:50:38
GetFileを使おうとしただけで悪質なスクリプト扱いか。
620デフォルトの名無しさん:2006/10/06(金) 21:10:21
↓あたりはノートン先生もご立腹なんだろうな。

WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/l50
HTAをもっと流行らせる計画
http://pc8.2ch.net/test/read.cgi/tech/1124559962/l50

というわけで純粋なDOS環境の話でなければ↓や↑を見るといいですよ。

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
http://pc8.2ch.net/test/read.cgi/win/1152544955/l50
621デフォルトの名無しさん:2006/10/07(土) 19:55:35
>>618
他人が妹のパンツをずらそうとしたら、兄として君は怒るだろう?
622デフォルトの名無しさん:2006/10/07(土) 20:38:54
>>621
ずらしたい奴がずらせばいいと思う
623デフォルトの名無しさん:2006/10/08(日) 00:05:14
開発環境として聞きたいんだけど、
みんなが使ってる環境ってどんな感じ?

自分は家では、
OS: PC DOS 2000
CC: LSI-C
使ってるんだけど、ノートで使うと省電力機能がほとんど使えないから
バッテリの消費が激しくて使えないから、BSD使ってる。

モバイルでDOS使ってる人っている?
624デフォルトの名無しさん:2006/10/08(日) 01:51:33
dosidle 入れてもダメ?
625デフォルトの名無しさん:2006/10/08(日) 01:56:46
開発環境としてなら、普通にWindowsのDOS窓でいいと思うのだけど。
どうしても純DOSでないと駄目?
626デフォルトの名無しさん:2006/10/08(日) 02:05:33
>>625
Windows 9xは不安定
しかも窓だと色々と縛りがあったりしてウザイ
627デフォルトの名無しさん:2006/10/08(日) 02:53:40
>>626

2kにしない理由は?
628デフォルトの名無しさん:2006/10/08(日) 03:01:15
>>627
2KにDOSなんてねーだろ
エミュレータ使えってことか?
629デフォルトの名無しさん:2006/10/08(日) 03:26:36
>>628
そういう言葉尻はどうでもいいからさ

つかさ、2kのコマンドプロンプトで出来ないことって、
そんなにないだろ。

パラレルポートの制御だってドライバいれればできる。
OSの乗換えを検討したほうがいいと思うのだが?
630デフォルトの名無しさん:2006/10/08(日) 04:12:26
>>629
多分君はDOSを使う必要がないからコマンドプロンプトでいいんだと思う。
ここはDOSのスレであって、コマンドプロンプトでできることを話すスレではない
631デフォルトの名無しさん:2006/10/08(日) 06:54:39
>>630
2KのコマンドプロンプトはDOSのシステムコールエミュレータだから
こいつで動かせないような直接ハード叩くようなコードは
それこそDOSスレで話す範疇じゃあなくなるんだが? 藻前さんの理論だとさ。

批判のための批判は自分の首締めるだけだからやめといたほうがいいよ。
632デフォルトの名無しさん:2006/10/08(日) 07:05:26
直接ハードを叩かないDOSプログラムなんて、つまんなーい!
633 ◆0uxK91AxII :2006/10/08(日) 07:08:58
開発環境 コマンド プロンプト、所謂DOS BOX
実行環境 実機+DOS
634デフォルトの名無しさん:2006/10/08(日) 07:20:43
デスクトップPCでISAバスの工業用ボード使ってれば別だが、
問題提起した人間はノーパソ使ってるって言ってるしな、
さほど特殊な環境じゃないだろう。

というわけで>>630の負け。
635デフォルトの名無しさん:2006/10/08(日) 07:40:58
ハードがPCでよければ、WMWareとかqemuにPC-DOSインストールすれば
外側は省電力の効くWinのまんまでハードも叩ける開発環境がゲットできる
636デフォルトの名無しさん:2006/10/08(日) 13:23:08
コマンドプロンプトでDOSのゲームができるとでも思ってるのか?
637デフォルトの名無しさん:2006/10/08(日) 14:07:32
NetHackならできたぞ
638デフォルトの名無しさん:2006/10/08(日) 19:12:54
できるよね
639デフォルトの名無しさん:2006/10/08(日) 21:09:20
>>631
おまえさぁ、DOSシステムコールだけでプログラミングなんてあり得んでしょう。
640デフォルトの名無しさん:2006/10/08(日) 21:10:24
>>634
>デスクトップPCでISAバスの工業用ボード使ってれば別だが、

えらい限定しますね、あなたのお仕事はよく分かりましたが・・・。
641デフォルトの名無しさん:2006/10/09(月) 03:54:55
unko
642デフォルトの名無しさん:2006/10/09(月) 09:34:57
del D:\xxx\yyy\*.txt

でゴミ箱に行かない削除ってできましたっけ?
shift+ctrl+削除みたいのDOSコマンドでできますか?
643デフォルトの名無しさん:2006/10/09(月) 09:35:40
DOSどころかコマンドプロンプトすら全く使ったことがないのが丸わかりな質問だな
644デフォルトの名無しさん:2006/10/09(月) 09:52:17
>>643
で?
645デフォルトの名無しさん:2006/10/09(月) 10:06:06
>>644
>643
646デフォルトの名無しさん:2006/10/09(月) 10:20:49
>>645
>644
647デフォルトの名無しさん:2006/10/09(月) 11:34:20
>>646
>643
648デフォルトの名無しさん:2006/10/09(月) 11:50:55
ウンコ
649デフォルトの名無しさん:2006/10/09(月) 12:07:22
ウンコ迷惑
650デフォルトの名無しさん:2006/10/09(月) 12:10:21
>>649
そらそうだ。と、誰もが思った。
651デフォルトの名無しさん:2006/10/09(月) 16:43:31
ここはいつから 「コマンドプロンプト相談スレ」 になったんだ?
652デフォルトの名無しさん:2006/10/09(月) 17:17:16
コマンドプロンプトとDOSの違いもわからない奴が蔓延してるから
どうしようもない
654デフォルトの名無しさん:2006/10/09(月) 20:53:55
2chで句読点を求めるなよ。
655デフォルトの名無しさん:2006/10/09(月) 23:30:20
>>639
DOS窓はDOSじゃないなんてつまんないこと言ってるから
ハード叩くのはDOSの範疇じゃないだろ、という
至極原理的な反応返されただけの話。

それとも、ハード叩かないのはDOSプログラミングではない
とでも言うつもりか?
656デフォルトの名無しさん:2006/10/09(月) 23:52:10
一人しか言ってないのに、すべてが自分の対極とはどんな思考回路だ?
657デフォルトの名無しさん:2006/10/10(火) 00:00:21
別にDOS上でハードに直接アクセスするのはDOSプログラミングの範疇だと思うが。
658デフォルトの名無しさん:2006/10/10(火) 00:36:35
>>656
漏れもその一人しか相手してないつもりだが
そう読めなかったなら書き込み不足だな、申し訳ない

>>657
もちろんその通り
同じようにWin上のDOS窓だってDOSプログラミングの範疇だ
>>630に反論してるだけ
659デフォルトの名無しさん:2006/10/10(火) 01:05:03
暇なのか?
>>630は書き込んでねーだろ
660デフォルトの名無しさん:2006/10/10(火) 01:52:51
よーするに、ターゲットがDOS上で動くなら開発環境は
実機だろうがDOS窓だろうがエミュだろうがなんだっていいんじゃないの
ってことだろ。

つまらんことを何時までもグダグダと反論してるなよ。
661デフォルトの名無しさん:2006/10/10(火) 03:30:48
これだから今時のDOS使いは・・・
662デフォルトの名無しさん:2006/10/10(火) 05:30:33
VC++6でコンソールアプリケーションを作って
コマンドプロンプトやそれを全画面にして動かすのは出来たのですが
DOSをフロッピーから起動したところで実行すると変なエラーが出て
(スタブが云々)実行されません。どうすればよいのでしょうか?
663デフォルトの名無しさん:2006/10/10(火) 05:31:35
あ、言い忘れましたが、WindowsAPIは一切使っていません。
DOSのシステムコールだけで作っています。
664デフォルトの名無しさん:2006/10/10(火) 05:55:35
DOS用のコンパイラで作る
665デフォルトの名無しさん:2006/10/10(火) 19:08:52
VC++6はWindowsアプリケーションしか作れない。
コンソールアプリケーションだって、Windowsアプリケーションの内。

663のいうDOSのシステムコールとは何なのか気になる。
想像は付かなくもないが。
666デフォルトの名無しさん:2006/10/10(火) 23:06:55
Windows用のコンパイラ使うとたとえコンソールアプリケーションでも
出来る実行ファイルはNE(Win3.1まで)ないしPE(NT系およびWin95以降)。

ついでに言うなら裏でWinMainだって動いてるしCの標準関数もMSVCRT.DLL等の
DLLを呼び出して実現しているわけで。
裏でWindowsAPIが使われているのだから純粋なDOS上では動きません。

MS-DOSのシステムコールはINT20h〜27h,拡張用は2Fh。
指定レジスタにパラメータ入れて呼び出し。
BIOS,ハードウェアへの直接アクセスの制限もないから
直接叩いたほうが早いこともあるけどね。

・・・・・・・って言って理解できればいいけどね。
667デフォルトの名無しさん:2006/10/10(火) 23:23:49
そこでなぜか、「WindowsアプリケーションからINT 21hを読んだがうまくいかない」という方向へ↓
668デフォルトの名無しさん:2006/10/11(水) 00:04:47
win16なら使えるがな
669デフォルトの名無しさん:2006/10/11(水) 00:27:08
Win32でも使う裏技がある。といってもWin9xだけだが。
670デフォルトの名無しさん:2006/10/11(水) 20:45:06
>669
そーゆーことするから2kやxpで動かないソフトが続出して困るんだよね。
671デフォルトの名無しさん:2006/10/11(水) 23:30:08
>>670
いや、それだけはありえないから。あの裏技、マイナーすぎ。
672デフォルトの名無しさん:2006/10/12(木) 02:40:16
自演乙
673デフォルトの名無しさん:2006/10/12(木) 07:01:42
自演乙乙
674デフォルトの名無しさん:2006/10/12(木) 11:34:43
>>668
win16だとリアルモード以外は286のプロテクトモードか286ディスクプリタで動いていたと覚えているが
どういう仕掛けでint xx系のソフト割り込みが使えていたんだろう。
675デフォルトの名無しさん:2006/10/12(木) 15:36:29
DOSエクステンダでぐぐってみ
676デフォルトの名無しさん:2006/10/12(木) 20:39:46
つーかWin16はint 21h使うのが前提だったから
ファイルアクセス系のAPIがちゃんとそろってなかった
677デフォルトの名無しさん:2006/10/13(金) 01:30:08
呼ばれるたびにCPUリセットしていたらしいが
678デフォルトの名無しさん:2006/10/13(金) 01:31:24
だって、リセット以外にRealモードに移行する手段がないんですもの。
679デフォルトの名無しさん:2006/10/13(金) 06:22:56
それは286の話。386以降では仮想86モードでリアルモードコードを実行していた。
680デフォルトの名無しさん:2006/10/13(金) 06:53:57
メモリ4Mくらいの386マシンで
一度プロテクトモードに移行してから
セグメントのリミットを4Gに設定してリアルモードに戻り
16bitコードで全領域にアクセスして、なんとなく偉くなった気分になってたな。

仮想86モードでは使えないし、あまり意義はなかったんだけど。
681デフォルトの名無しさん:2006/10/13(金) 07:15:42
面白いと思うよ。
682デフォルトの名無しさん:2006/10/14(土) 00:03:47
壁があることには変わりない
683デフォルトの名無しさん:2006/10/14(土) 05:51:24
そりゃ今でこそ4GBも「壁」として認識されだしたけど
684デフォルトの名無しさん:2006/10/14(土) 06:50:04
DOSの頃作られたlhaやzipはほとんど2G/4Gで壊れる死ね
685デフォルトの名無しさん:2006/10/14(土) 08:37:57
そもそもDOSって4GB超のファイル対応してたっけ?
686デフォルトの名無しさん:2006/10/14(土) 09:58:50
>>685 「そもそもDOS」ってどこのOSなんだろう。
687デフォルトの名無しさん:2006/10/14(土) 09:58:59
>>685
対応していない。おそらく存在できない。

DOSでアクセスできるFAT16はパーティションサイズが最大2GiBまで。
FAT32も1ファイル4GiBまで。
688デフォルトの名無しさん:2006/10/14(土) 13:41:33
>>666
int86位知っとるわバーカ
689デフォルトの名無しさん:2006/10/14(土) 22:03:51
あの... int 21h とか、int86 とかって、何ですか?
ググったり、ヤフったりするのは嫌いなんで、
ウィキペディアったんですけど、わかりませんでしたorz...
690デフォルトの名無しさん:2006/10/14(土) 22:38:10
int86はMS-DOS用C処理系で使える関数のひとつ
書式:
#include <dos.h>
int int86(int intno,union REGS *in,union REGS *out);

LSI-C86試食版でも使えるからそっちのマニュアル参照。
ttp://www.vector.co.jp/vpack/filearea/maker/lsi/index.html

int 21hはMS-DOSのファンクションコール呼び出すときの割る込み番号(アセンブラ表記)
こっちはMS-DOSプログラミングを勉強して来いとしか言えない。
691デフォルトの名無しさん:2006/10/14(土) 23:06:57
ここは、古参のパソ通を彷彿とさせる素直な人が多いから好きだけど、
たまにバカが混じるから困るんだなコレが。

検索で調べる作業さえ嫌うバカの>>689にそんな説明しても、
わかる訳無いよ(wwwwww

>>689へ。勉強する近道はググることだ。覚えておけ。
昔と比べて、どれだけ調べ物が効率的になったか気づいてくれ。

そして、Web上にドキュメントを作成した先駆者に
感謝の気持ちも忘れないようにな。
692デフォルトの名無しさん:2006/10/14(土) 23:27:14
ウィキペディアで一番近い内容と言ったらこれかな。
http://en.wikipedia.org/wiki/INT_%28x86_instruction%29
693デフォルトの名無しさん:2006/10/14(土) 23:36:11
>>689
そこはウィキペディアしか調べてなくてもウィキるって言わないと
694デフォルトの名無しさん:2006/10/15(日) 00:05:54
ウィキているということー
695デフォルトの名無しさん:2006/10/15(日) 00:12:41
Ralf Brown's Interrupt List
ttp://www.ctyme.com/rbrown.htm
696デフォルトの名無しさん:2006/10/15(日) 22:35:03
Interrupt ListもWebで鑑賞できる時代になったか。
PC-9800関係の割り込みは当然ながら載ってないけど。
697デフォルトの名無しさん:2006/10/15(日) 23:57:08
かなり昔からあった覚えがあるが
698デフォルトの名無しさん:2006/10/16(月) 05:37:16
          ,,,.. ‐‐ ...,,,
       ,..::':.,:.:.:.:.:.:.:.:.:.:.:.:=.:=.、
     ,/.:.:.:/:.;.;.;.、.:.、:.:.:.、:.:.:.‐:.‐`、ヽ::ヽ,
    ./.:.:.ミ/""" ヽ:.:、:.:.:、:、.:.:.:.:.:.:i !..ヽ:.;、
.    /i:/"      ヽ:ヾ:.:ヽ:、;;:.:.:.:|  ヽ:.:.i
   / |:i |         >、ヽ:.、ゝッ.:.:|   ヽ:l
.  / |::| l      /,,,=.-、\:/z;.:+‐T ̄.:.:|      / ̄\
 /  l:.l.----     "{;;;;'..} ヽ /r.= 、j.:.:.:.:.:.|     |      |
 `ー-..l:.l /,=、      `ー.'   i/|ト` }|:.:.:.:.:.:i!    |  わ  |
  |.:.:.:ト」. i !;:::'j      "".  ! |- ノ L|:.:.:.:.i!    |  ざ  .|
  |.:.:.:.|ヽ{ヽ`´  '           /".   |:.:.:.:|i!  ∠.  と  .|
  |.:.:.:.i!  ヽ"          ,.'      |:i:.:.:|i!.   |  !  |
  |.:.:.:|i!  ヽ、   (_.)   ,/>‐‐‐ 、 .|:i!.:.:|l..   |      |
  |:|:.:.| i    ` ー-- 一 /   /-、リ.|.:.|.i.    \_/
  i:il:.:| i      /<' 、    // `t.|.:l |
.  l!i:.:| i     ゝへ.ヽソ\_///    `|;!
   ! i:.|      / ヽ〈::`::〉、   V /   ヽ

699デフォルトの名無しさん:2006/10/16(月) 05:40:46
Interrupt ListってPC98のBIOSも何故か微妙に乗ってた記憶があるがw
700デフォルトの名無しさん:2006/10/16(月) 08:02:23
int 10h
701デフォルトの名無しさん:2006/10/16(月) 19:04:20
V!G!A!
V!G!A!
702デフォルトの名無しさん:2006/10/16(月) 22:23:33
いや、ここはあえてDCGAで
703デフォルトの名無しさん:2006/10/16(月) 22:34:54
9801
704デフォルトの名無しさん:2006/10/16(月) 22:57:23
ウィキるのにつかれました... orz
つってきます.. さようなら...
705デフォルトの名無しさん:2006/10/19(木) 06:13:36
キャラジェネ
706net time:2006/10/19(木) 22:10:56
コマンドに"net time"時刻同期のコマンドがあるのですが、1度コマンドを実行すると10秒ほど経たないと次の"net time"コマンドが飛ばないようなのですが、すぐに2回目のコマンドを飛ばすことはできないのでしょうか?
ご教授願います。
707デフォルトの名無しさん:2006/10/19(木) 22:16:49
>>706
NET TIMEってLAN MANAGERのことならなんとか範疇かもしれない。
COMMAND PROMPTの使い方はすれ違い。
708デフォルトの名無しさん:2006/10/25(水) 11:50:40
今、98Emu(np2.exe)+LSI-C86試食版で
テキスト表示のゲーム作ってるんですが、
画面下部に表示されているファンクションキー表示と、
カーソルの点滅を消す方法って、どうすれば良いんでしょうか。

ゲームは動いてるんですけど、カーソルはちかちかしてるし、
ファンクションキーは使わないのに表示が残っているしで、
なんか格好悪いんです。
どなたか教えてください。
709デフォルトの名無しさん:2006/10/25(水) 13:03:13
>708
LSI-C86を使ったことがないからわからんけど
TurboCではconio.hに_setcursortypeってのがあって
NOCURSORだっけかな?を指定するとカーソルを表示しなくなる、てのがあった。はず。
参考にはならんかな・・・
710デフォルトの名無しさん:2006/10/25(水) 14:18:12
711デフォルトの名無しさん:2006/10/25(水) 16:30:32
>>709-710
ありがとうございます。
エスケープシーケンスで解決できました。
割と単純な方法で済んでほっとしました…。w
712デフォルトの名無しさん:2006/12/01(金) 12:31:45
net sendコマンドを使用して
コンピュータ名とメッセージ内容の
入力を求め、その内容で送信するようなものを
作りたいのですがどうすればいいんでしょうか?
713は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2006/12/02(土) 17:59:03 BE:136177193-2BP(1000)
>>712
気合いで結合してsystemに入れてみる
714デフォルトの名無しさん:2006/12/02(土) 18:13:43
>>498
>>ぴゅあさん
classpath何とか解決できました!!コンパイルもできました!!!
本当にありがとうございました!
715デフォルトの名無しさん :2007/01/21(日) 11:47:46
XPのコマンドプロンプトから壁紙を変更する方法を
教えてください
716デフォルトの名無しさん:2007/01/21(日) 11:57:08
changerootwindow.reg
というファイルを作る
717デフォルトの名無しさん:2007/01/21(日) 12:00:24
\\HKEY_CURRENT_USER\Control Panel\Desktop\ConvertedWallpaper
\\HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
718デフォルトの名無しさん:2007/01/21(日) 12:39:06
レスありがとうございます

DOS窓で
\\HKEY_CURRENT_USER\Control Panel\Desktop\ConvertedWallpaper a.bmp
とするとネットワークパスが見つかりませんとでます

WinXPがDドライブだからでしょうか?
719デフォルトの名無しさん:2007/01/21(日) 13:57:30
>>718
| 何について調べますか?
| ┌────────────┐
| |レジストリとは          |
| |                  |
| └────────────┘
| [ オプション(O) ]   [ 検索(S) ]
| 
`──────────┐ ┌───
           , '´l,  ..| ./
       , -─-'- 、i_  |/
    __, '´       ヽ、
   ',ー-- ●       ヽ、
    `"'ゝ、_          ',
      〈`'ー;==ヽ、〈ー- 、 !
       `ー´    ヽi`ヽ iノ
                ! /
              r'´、ヽ
              `´ヽノ
720デフォルトの名無しさん:2007/01/21(日) 14:00:00
\\HKEY_何たらで始まっている時点でレジストリキーのパスだって事に気づかないと。

regeditのコマンドラインからの使い方を知らないことには・・・
721デフォルトの名無しさん:2007/01/21(日) 15:52:32
そもそもスレ違いだ。
722デフォルトの名無しさん:2007/01/21(日) 16:23:41
>>715です
>>721 スレ誘導お願いします
723デフォルトの名無しさん:2007/01/21(日) 16:27:56
>>722
初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
http://pc10.2ch.net/test/read.cgi/win/1152544955/l50
724デフォルトの名無しさん:2007/02/03(土) 21:38:08
何でレジストリが\\HKEYから始まるわけ?
725365:2007/02/07(水) 12:14:03
DOSで あるプログラムを、a.exe "引数パス指定" と起動しているのですが、
引数パス部分に空白が混じっていると、引数が2個と判定されうまく動きません。
空白が混じっている引数パスを一個のものとして認識させるには、
どうすればいいでしょうか?
726デフォルトの名無しさん:2007/02/07(水) 12:26:29
>>725
a.exe の仕様によって異なる。
727デフォルトの名無しさん:2007/02/07(水) 16:12:31
>>725
a.exe が本当にDOSならばパスに空白が入ることはない。

a.exe C:\DOCUME~1\HOGE\MYDOCU~1\ABCDE~1.TXT
728デフォルトの名無しさん:2007/03/15(木) 22:55:25
古いけど
はじめて読むシリーズは最高にわかりやすくてよい
729団塊親父:2007/03/21(水) 13:24:38
プロフェショナルの皆様、教えて下され
PC9821+MS-DOS6.2-Mind(Forth風言語)+MASMで
機嫌良くデジタルIOボードを使いロジックアナライザやプリント基板CADとかのアプリを作って遊んでおった
やっぱり640×400dotのグラフィックが苦しくて、環境移行を考えWindowsのVBとかVCとか触ってみたんだが
何かDOSより退化している気がした、WebもNETもマルチタスクも要らないとしたらDOSがマシなのでは
 例えば10msのタイマを作ろうとしてもダメだった、
 ハードも直接叩けないらしい。
 VBのピクチャボックスではスクロールすらできないようだしN88BASICより貧弱と思った
「何じゃこりゃ」という感じだった。

この感想は当っていますか?
現在PC/AT用のDOSは売られていますか?、探したけれど見つからなかった
Windowsでも腕を磨けばDOS以上のことができる?
Windowsでは無理、他のお勧めOSはありますか?
良き指針をお願いいたします。
730デフォルトの名無しさん:2007/03/21(水) 13:28:08
731デフォルトの名無しさん:2007/03/21(水) 13:51:06
ハードを直接叩けないのは必然的な進化の方向性。
Windowsの上でWindowsアプリケーションが、
PC-98版でもPC/AT版でも、今で言えばx86でもx64 (WOW64)でも
共通のバイナリで動くようにするため、
またそれよりなによりマルチタスクを実現するに当たって
現実的な解は(少なくとも当時)それくらいしかなかった。

そもそも理想的にはソフトウェアはハードウェアのことを意識するべきではないというのが
大昔からソフトウェアに関わる学者・研究者に根底に存在する風潮。
最近のコンピュータの性能向上でようやくWindows並に
ハードウェアを隠しても性能的に問題なくなってきたというところ。
732デフォルトの名無しさん:2007/03/21(水) 13:54:06
>>729
今でもデジタルI/Oボードを出しているメーカではドライバとライブラリを出している。
しかも大抵はドライバやライブラリは愚かサンプルプログラムも無料で。
従って、適当なボードと適切なライブラリを組み合わせればハードを直接叩くようなことも何ら問題ない。
リアルタイム所為はまぁ、工夫のしどころではあるが。
733団塊親父:2007/03/21(水) 23:09:13
皆様レスありがと。
>>730さん
  DOSもCも売ってるんですね、買って遊んでみようと思います。
   果して自分のWin-XPマシンで動作するのか?
   最近のWinマシンはPC/AT互換機なのか?
   そしてグラフィックスはどうやって書くのか?
  興味津々です。
>>731さん
  なるほどね、やっぱ普及時代から成熟期に入るとブラックボックス化してしまうんですね、
  趣味的には面白く無いのでWinodwsには手を出すまいと思います。
  何かオーディオの世界が、球から石へレコードからCDへ変って興味が無くなったのと似てます。
>>732さん
 確かにくぐるといろんなドライバがありました。
 ただ「ソフトクロックは±200%も振れるので使わないように」と注意書がありました。
 昔はNOPを勘定してれば良かったのですが、
 結論としてはWin環境でリアルタイムサンプリンクするならば、外部からクロックを与える必要が有りそうです。
 それとて、クロックは正確でも取込み処理のオーバーヘッドがものすごく
 デバイスドライバ→DLL→変数→保存という処理に何μSかかるか誰にも解らないとのこと
 参考になるスレが有ったらご紹介下さい。  
734デフォルトの名無しさん:2007/03/21(水) 23:40:26
リアルタイムで何かやるなら、それ専用のサブプロセッサ(とバッファ)用意するのが
最近の流れじゃないの。PC(Windows)側のレイテンシはそんなにシビアに要求しない。
735デフォルトの名無しさん:2007/03/21(水) 23:51:30
そうだね。
パソコンをクロック測るためだけに使うのってもったいない。
736デフォルトの名無しさん:2007/03/22(木) 00:31:18
計測とかだと、今はPICなんかで独立基盤に実装して
シリアル-USBでデータだけパソコンに取り込む形が一番手軽なんじゃないかな

最近のPCじゃ手軽に使える汎用I/O自体なくなってるから
最低でもPCIなI./Oボード調達しなきゃならない
OSもリアルタイム向きとはいえないし
737デフォルトの名無しさん:2007/05/04(金) 15:52:45
>>733
>果して自分のWin-XPマシンで動作するのか?
作成したDOSアプリは「コマンド プロンプト
(DOS窓)」で動作しますが、やっぱり
メモリ、I/O、割り込み、DMAには直接
アクセスすることはできません。
>最近のWinマシンはPC/AT互換機なのか?
OADGの発展系と言ってよいと思います。
目について違うところはIRQ16以上が
あることでしょうか?
>そしてグラフィックスはどうやって書くのか?
Win32 APIかDirectDrawを使用することに
なると思いますが、面倒そうです。
サードパーティ製の便利ライブラリがあるかも
知れません。

タイミングにシビアな計測等はハードウェア側で
完結させてしまうというのが当然のような流れに
なってますね。
A/Dなら自前のタイマ、でかいFIFOが必要なので
CPLDでは足りなくて、結局FPGAになっちゃったり
しますね。
738デフォルトの名無しさん:2007/05/04(金) 17:19:43
ATバスの無いAT互換機なんて・・・
739デフォルトの名無しさん:2007/05/05(土) 13:05:34
ATバスってISAのこと?
740デフォルトの名無しさん:2007/05/05(土) 14:06:33
元々はね。
ATバスをIEEEが規格化したのがISAバス。正確にはEISAが制定されたときに一緒に付けられたらしい。
ttp://ja.wikipedia.org/wiki/Industry_Standard_Architecture

その前にXTバスってのがあって、その上位互換がATバス。

>738
ちなみにレガシーデバイスは今でも見かけ上ISAバス経由ということになっている。
最低限のポート、メモリ領域、IRQ 、DMAの割り当ては昔からそのまま。これをもってAT互換機って事にしてるみたいだから。
もっとも今はIA(インテルアーキテクチャ)-PCとでも言いたくなる代物だけど。
741デフォルトの名無しさん:2007/05/08(火) 12:22:59
そうか、XTバスのことを考えるとISAって呼ぶより
ATバスって呼んだほうが自然だね
742デフォルトの名無しさん:2007/05/18(金) 00:34:22
ポワーシェルは放置?
743デフォルトの名無しさん:2007/05/18(金) 23:13:53
DOSでは動かんからな
744デフォルトの名無しさん:2007/05/30(水) 00:31:02
なあ、前から疑問なんだけどフラットに32bitアドレス空間をアクセス可能な
プロテクトモードをサポートした、かつハードウェアを直接叩く事ができる
(仮想86モードで?)DOS上位互換なOS(DOS?)ってあり得ないのかな?
DOSエクステンダではなくて。

それともそんなものを誰も作ってくれないだけ?
745744:2007/05/30(水) 01:32:17
I/O処理はEFIを呼び出せたり、Windows用のデバイス・ドライバを登録して
使用(流用)できたりしたら最高なんだが。
なおかつI/Oの直叩きもできる、と言うのは矛盾があるだろうか?
746デフォルトの名無しさん:2007/05/30(水) 01:45:27
>>744
つ FreeDOS-32
747デフォルトの名無しさん:2007/05/30(水) 06:00:30
>>744
Mona
748デフォルトの名無しさん:2007/05/30(水) 16:34:32
WindowsのDPMIは、Windows 3.x-9xのデバイスドライバ (VxD)が呼べたと思う
実質DOSエクステンダだけどね
それに、IOだって直叩きしても実際にはVxDが割り込んで処理するし
749デフォルトの名無しさん:2007/05/31(木) 22:49:03
Towns
750デフォルトの名無しさん:2007/05/31(木) 22:53:13
>>749
なにそのDOSエクステンダ
751デフォルトの名無しさん:2007/06/07(木) 23:28:27
ab123.jpgというファイルでabを900と書き換えて900123.jpg
とする方法を教えてください。
ren ab*.jpg 900*.jpg とすると90023となり全体が5桁になり
900123になりません。

よろしくお願いします。
752デフォルトの名無しさん:2007/06/07(木) 23:50:06
>>744
いまどきシングルタスクなんて…

マルチスレッドだとハード叩くと危険。
753デフォルトの名無しさん:2007/06/08(金) 00:19:26
>751
そのまま維持したい部分(”123”)を
 "*"じゃなくて文字数分の"?"で表せば良いんじゃなかったっけ?
>752
だからハードを直叩きするにはシングルタスクにするしかないだろ?
そうすれば全部ひとつのアプリが管理するから余計な事を考える必要が無くて
自分が使う単機能なソフトを書くには楽なんだよ。
754デフォルトの名無しさん:2007/06/08(金) 00:32:29
>>753
OSいるの?
755デフォルトの名無しさん:2007/06/08(金) 00:46:45
>>753
セクタ0のIPLからアセンブリコード書けば解決じゃね?
756デフォルトの名無しさん:2007/06/08(金) 01:36:17
>754-755
セルフ開発環境どころからローダーすらなしかいw?
757デフォルトの名無しさん:2007/06/08(金) 07:32:57
>753
????で合わせても全体の文字数をrenが
一致させてしまうのでうまく行きません。

5桁から6桁にする方法が分からないのですが。
758753:2007/06/08(金) 12:44:54
>757
どうもDOSのRenameコマンドのワイルドカード表現には文字数による奇妙な制約があるみたい。
そういう場合、私は良くDIRコマンドの出力をリダイレクトするなどしてファイルに落とし、
エディターで1ファイルずつリネームするコマンドを並べたバッチファイルを作成します。
名前を変更したいファイルが何千件もあるとかなり大変ですが。

後は専用ユーティリティソフトを使うか自分でコードを書くしか無いような。
REXXのような正規表現を扱えるスクリプト言語が手近にあると便利です。
759デフォルトの名無しさん:2007/06/08(金) 13:00:33
下手に実行してファイル失ったこと数知れず
760デフォルトの名無しさん:2007/06/08(金) 13:25:17
>759
それが心配なら先に別のディレクトリなどへバックアップコピーを作っておけばよい。
また、いきなり本番を実行しないでまずは少数の失っても良いファイルに対する
バッチorコマンドを作成して試しておく。

Renコマンド自体、もし変更後の名前が既にあるファイル名と衝突すると
エラーで止まるのでそう危険じゃないし。
761デフォルトの名無しさん:2007/06/08(金) 14:12:19
一番いいのは 無償のVirtual-PCを入れる事だと思うな
http://www.microsoft.com/japan/windows/virtualpc/default.mspx
762デフォルトの名無しさん:2007/06/08(金) 18:14:43
>761
意味が良く分からんが例えばXPが動作するPC上にVirtual-PCを導入して
その上でDOSを走らせておいてゴニョゴニョやると言うような事かな?

そうするとその仮想マシン上のDOSからアクセスできるハードディスク
エリアに目的のファイル(のコピー?)を全て持ってくる必要があるな。
763デフォルトの名無しさん:2007/06/08(金) 19:34:21
出来ればWin95を持っているといいんだけど、
そうじゃないと面倒かも

まあFDD付いてるパソコンならいいんだけど、最近FDD無いPCもあるから、その場合、
virtual-PCにDR-DOSなんかを入れるにも、まずVFDを作らないといけないのだけど
それを作るにも、まずはDOSが必要というジレンマ。
764デフォルトの名無しさん:2007/06/08(金) 20:49:56
>>763
つ [FreeDOSのISOイメージ]
765デフォルトの名無しさん:2007/06/08(金) 21:10:12
>>763
つ [FreeDOS/V珠洲版]


>>764さんの FreeDOSのISOイメージでCDブートした場合は仮想HDDを用意して
それにインストールする事になるけど

これは 解凍したら .IMG が出来るんで、VirtualPCの仮想FDでそのまま起動可能になる
766デフォルトの名無しさん:2007/06/10(日) 00:11:31
FreeDOS 1.0 のインストールCDもLiveCDになってるからISOイメージ読ませるだけで使えるぞ。

まあ所詮DOSだからHDDにインストールしても最初に1回手間が掛かるだけでそんなに容量食わないけどな。
OpenWatcomやnasmなどの開発ツールも含まれてるし。
767デフォルトの名無しさん:2007/06/17(日) 08:53:00
XPに標準で入っているコマンドプロンプトで、whichやwhereにあたるコマンドは
なんになるのでしょう?
768デフォルトの名無しさん:2007/06/17(日) 09:37:55
ファイル郡に対して処理出来る FOR
ファイル内容に対して処理出来る FOR はあるけど
プログラムの制御命令としてはGOTO しかないさ
769デフォルトの名無しさん:2007/06/17(日) 18:09:36
>767
whichはないんじゃないかな。
whereはdir /sで代用。
770デフォルトの名無しさん:2007/06/17(日) 20:27:31
>>769
dir /s か。知らんかったんで勉強になった。
でもやっぱwhich/whereは作るしかないか。
771デフォルトの名無しさん:2007/06/23(土) 05:31:08
cygwin入れてcygwin\binにパス通しておけば各種コマンド使い放題になるよ。
772デフォルトの名無しさん:2007/06/23(土) 05:37:37
いいかげんバージョン
mywhich.bat
@%comspec% /e:on /c echo "%~$PATH:1"

> mywhich explorer.exe
"C:\WINDOWS\explorer.exe"

> mywhich explorer
""
773デフォルトの名無しさん:2007/07/08(日) 08:52:41
下記のような事がしたいのですが.batかjperlかkermitで可能な方法は無いでしょうか

loop
Escキーが押されたら終了
aキーが押されたら 処理1 0.3秒ポーズ 処理2 loopへ
Aキーが押されたら 処理2 0.5秒ポーズ 処理3 loopへ
PgUpキーが押されたら 処理4 loopへ
HOMEキーが押されたら 処理5 loopへ
774773:2007/07/24(火) 07:45:55
DOSバッチでbu使ったらあっさりできました
レスポンスに多少問題有るので今度はQBASICかLSI-C86あたりでやってみます
775は@c178.016.c3-net.ne.jp ◆cplnFO9T0I :2007/08/06(月) 00:17:53 BE:50436825-2BP(1000)
master.libって結構色々と入っているのな。
BFNTのsuper_putぐらいしていなかったから驚いた。
776デフォルトの名無しさん:2007/08/08(水) 18:17:55
純粋に32bitのDOSってあるの?
777デフォルトの名無しさん:2007/08/08(水) 19:44:53
nai
778デフォルトの名無しさん:2007/08/09(木) 01:54:27
Disk Operating Systemとしてなら窓含め腐るほどあるじゃん
779デフォルトの名無しさん:2007/08/09(木) 11:19:58
ありがと。
じゃ、UNIXのCUIに行くわ。
780は@c178.016.c3-net.ne.jp ◆cplnFO9T0I :2007/08/27(月) 17:47:08 BE:60523362-2BP(1000)
98のアナログパレットってひっちゃかめっちゃかにかき回しておk?
CEDITでBFNTフォーマットの画像をいじっているとそうは感じられなくて....
781デフォルトの名無しさん:2007/08/29(水) 11:46:57
よく意味わからんけど、何out しても大乗V
782デフォルトの名無しさん:2007/08/29(水) 21:06:22
つ 常駐パレット
783デフォルトの名無しさん:2007/09/04(火) 23:23:04
com形式のプログラムの開始位置アドレスが100hからなのは
DOSが生のアドレスを扱っていて、0h〜077hまでに
DOS側ですでに割り込みテーブルなどがしかれているからですか?
784デフォルトの名無しさん:2007/09/04(火) 23:31:55
>>783
CP/Mとの互換性のため。

8086の割り込みベクタ・テーブルは0000:0000から。
いくらDOSでもそんなメモリの先頭付近にユーザープログラムを
配置したりはしない。
785デフォルトの名無しさん:2007/09/04(火) 23:43:52
>>784
即レスありがとうございました
先頭64バイト程度の犠牲なら互換性を取る価値があったってことですか、なるほど
よく考えなくても100hはオフセットアドレスの話でしたね…
786デフォルトの名無しさん:2007/09/04(火) 23:54:57
256バイトでしたorz
787デフォルトの名無しさん:2007/09/05(水) 00:15:50
>>786
0x80からはコマンドラインで使っている。だから、256バイト丸々無駄にしているわけではない。
788デフォルトの名無しさん:2007/09/05(水) 00:48:41
>>787
あ、80hにコマンドラインの引数を格納してたのは決まりごとだったんですね
度々ありがとうございます
789787:2007/09/05(水) 00:53:50
>度々ありがとうございます
いや、私が書いたのは>787だけ。
790デフォルトの名無しさん:2007/09/05(水) 01:01:17
791デフォルトの名無しさん:2007/09/05(水) 01:07:04
>>789
あ…早合点してましたすみません
>>790
とても分かりやすいです、ありがとうございます
792デフォルトの名無しさん:2007/09/07(金) 07:59:01
    ORG 100H
:START
793デフォルトの名無しさん:2007/09/10(月) 12:07:30
DOS コマンドについて聞きたい事がありますが、
どこのスレが適当でしょうか・・・・
794デフォルトの名無しさん:2007/09/10(月) 20:56:43
795デフォルトの名無しさん:2007/11/05(月) 02:04:38
最近の若い人はDOSの使い方を知らない人が多過ぎます。
DOSのバッチを作成すれば仕事も自動化できるのに・・・・

新人研修でまずはDOSを使うことを教えるべきだよな。
796デフォルトの名無しさん:2007/11/05(月) 02:26:28
>>795
その場合には、わざわざ DOS じゃなくても適当な shell がいいと思う

DOS はフルパワーで IO 処理させるのが好きだ
797デフォルトの名無しさん:2007/11/08(木) 22:07:01
WSH覚えたらバッチなんて馬鹿らしくて使えない。
最近はPowerShellにどっぷり
798デフォルトの名無しさん:2007/11/09(金) 00:43:24
DOSでWSHやPowerShellを使うとは凄いですな
799デフォルトの名無しさん:2007/11/09(金) 18:53:06
教えてください。
いま、ffmpeg に付属してた ffplay.exe(動画再生)をDOSコマンドラインでいじってます。
それの起動オプションのヘルプを見るには、【 ffplay -h 】だとドキュメントにあったので
やってみても、何も表示しないんで、【 ffplay -h > help.txt 】とやったら、ファイルになって見れました。
それならってんで
【 ffplay -h > con 】なら出るかと思いきや、画面には出ませんでした。

ファイルで見れるから問題はないんですが、こういう場合画面に出す方法を知りたいんです。
800デフォルトの名無しさん:2007/11/09(金) 20:03:55
知りたいですかそうですか。
801デフォルトの名無しさん:2007/11/09(金) 22:14:45
cmdはdosじゃないから
802799::2007/11/09(金) 22:27:22
>>800
ぜひともw
803799::2007/11/09(金) 22:51:09
>>800 >>801
どうやら、場違いなスレッドに質問したようで、失礼しました。
コマンドライン関係のスレッドがありましたので、そっちへ行きます。
804デフォルトの名無しさん:2007/11/10(土) 00:02:23
>>801

どっちでも、いいじゃん
805デフォルトの名無しさん:2007/11/10(土) 00:37:33
cmdならスレ違いだと本人が気がついてるんだし。
806デフォルトの名無しさん:2007/11/15(木) 08:12:45
Windowsでコマンドプロンプトが16bit DOSセッションへの
命令だったのは95(及び98&Me)までだったっけ?
Win3.1だけだったって事はないよな。

W2Kは確か、もう32bit環境でのコマンドラインだったはず。
807デフォルトの名無しさん:2007/11/15(木) 18:44:32
XPになってもcommand.comのバージョンは MS-DOS 5.00 のままだな。

Meの最新バージョンを移植とかできないだろうか・・・
808デフォルトの名無しさん:2007/11/16(金) 23:02:02
まあ、NT系ではDOSのファンクションコールから先はNTVDMのエミュレーションだし。
809デフォルトの名無しさん:2007/11/19(月) 00:46:09
Win3.1のアプリはDOSのファンクションリクエスト使ってたよね。

スワップファイルだけは32bitアクセスだったっけ?
810デフォルトの名無しさん:2007/11/19(月) 05:52:02
WindowsXPでちゃんと動いた。
DOSそれもCP/M互換ファンクション呼びまくり。

http://dn.codegear.com/article/20693
811デフォルトの名無しさん:2007/11/21(水) 02:51:09
@C1メ0ニ5!@ア0(チヘ!テ
812デフォルトの名無しさん:2007/11/22(木) 01:29:36
何?
813デフォルトの名無しさん:2007/11/22(木) 03:19:35
NO SYSTEM FILES
814デフォルトの名無しさん:2007/11/23(金) 13:13:45
>>810
超早そう。ソース書く前にビルド完了してそうだ。
815デフォルトの名無しさん:2007/12/04(火) 22:24:36
教えていただけると助かります。

現在、Win95でDOSプログラム(粒子解析系)を動かしているのですが
なにぶん古いPCなので時間がかかります。

そこでこのプログラムをXPで実行できればかなり早くなるのではないかと思い
調べたところ、16Bitと32Bitの違いにより基本的にはXPじゃ無理で
仮想DOSマシン(VDM)上で起動すればできるかもしれないと書かれていました。
その手順通りにXP上で動かしてみたのですが、エラーで動きませんでした。

16Bitのプログラムを32Bitに変換するようなことって出来るのでしょうか?
それともXPで動かすのは無理なのでしょうか。




816デフォルトの名無しさん:2007/12/04(火) 23:06:52
>>815
ソースからなら修正しまくって変換できるかもよ。
817デフォルトの名無しさん:2007/12/04(火) 23:08:08
俺は詳しくないがコーディングによる
16bitと32bitでは、データ型のサイズが違ってくるので
その辺を意識すればどっちでも動くようにはできるかもしれない
818デフォルトの名無しさん:2007/12/04(火) 23:50:16
>>816>>817
プログラム素人なうえ、そのプログラムもほかの人が作ったものなので
ソースがあるかわかりませんが、ありがとうございます!

それとVirtual-PC2004というものでWin95がエミュレートできる?(理解が間違ってるかもしれません)
ようなのですけど、そのエミュレートした95上でなら動かすことができるでしょうか。
やってみれば早い話ですね…ありがとうございました。
819デフォルトの名無しさん:2007/12/04(火) 23:54:06
つーかDOSプログラムならXPが動いてるマシンをDOSで起動して動かせば
それなりに速くなるのでは。
820デフォルトの名無しさん:2007/12/04(火) 23:58:10
>>818
再コンパイルの話(たとえ可能性だとしても)が無いところから見て、exeしかないんだろうな、多分。

そのプログラムのソースがあるならフリーでもいいからコンパイラを入手してリビルド。
C,C++はもちろんだが、Fortranなんかでも探せばあるだろ。

もし無くて、NTVDMでも弾かれてるなら仕方が無いからDOSで起動出来る環境を作れ。
VirtualPCとかでやっても遅くなるだけ(それでもマシかもしれないけど)だから純粋なDOS環境にしろ。

DOS起動用のシステム入りFDDはそういう指定でフォーマットすれば出来る(xp上からでも)
メモリとかの必要でconfig.sys弄るとなると知識要るけど。

もしPC-9800シリーズ専用とかだったら・・・手に負えん。ソフトの移植をできる人間に頼め。
821デフォルトの名無しさん:2007/12/05(水) 00:26:20
>>819>>820
丁寧にありがとうございます。
おっしゃるとおり、exeしかないのでソースがあるのかどうか確認してみます。
あれば、コンパイラというものでできる可能性があるということですね!

XPでDOS起動フロッピーを作成すれば、それだけでDOS起動できるようになるのでしょうか。
メモリ、PC98専用等の問題は大丈夫なはずなので、やってみます。

本当に助かります!

822デフォルトの名無しさん:2007/12/05(水) 02:48:34
>>815
おまえのPCのXPをアンインスコして
W98にするのが一番速いだろうね
823デフォルトの名無しさん:2007/12/05(水) 03:35:37
>>815
古いPCに何入れても同じ。
824デフォルトの名無しさん:2007/12/16(日) 18:45:36
213 不明なデバイスさん 2007/11/10(土) 14:07:06 ID:W3p2XVa0
>>210
HDDパスワードクラックって言うより
DOSでMBR(メンテナンスエリア)丸ごと書き換えの方法
ttp://trashbox.homeip.net/nownow/20070107/
ここの下のソフトがあればダンプしてバイナリエディタで見れそう
ロシア系サイトらしいけどなんてソフトなんだろ?

HDDパスワードについてググってたらHitしたんですが
上記のHPに紹介されてるようなDOSツールをご存知ないでしょうか?

古いThinkPad240のBIOSアップデート中にフリーズし電源切って立ち上げたら
本体とHDDにロックがかかっていました

本体のパスはttp://sodoityourself.com/hacking-ibm-thinkpad-bios-password/などを
参考にEPROMリーダーを自作し解除が出来たのですが
その解析したパスがなぜか内臓HDDには通らずロックがかかった状態です

ローレベルフォーマットしてもロックは解除できないようで
色々検索してtteditorなども試してみたんですが上手くいかず上記書きこみのDOSツールを探しています
詳しい方いらっしゃいましたら検索のヒントでも教えていただければ助かります
宜しくお願いいたします。
825 ◆0uxK91AxII :2007/12/17(月) 08:04:19
>>824
他人様が掛けたpasswordをcrackしたいのがミエミエの糞は、死んでおいた方が良いよ。
826デフォルトの名無しさん:2007/12/17(月) 11:56:02
>>824
つatapwdぐらいしかシラネ
>>825
わかんないならわかりませんって正直に言えよwww
827デフォルトの名無しさん:2007/12/19(水) 11:17:35
申し訳ございませんが教えてください

DOS画面で「〜」ってどうやって入力するのですか
windowsのプロンプトでは「〜」はShiftを押しながら「へ」で入力できるのに
dos画面でできなーいでこまっておりまする

どうしても入力が必要なコマンドがありまして
そこで滞っております
828デフォルトの名無しさん:2007/12/19(水) 19:51:34
>827
あなたが入力したいのは半角の「チルダ」と言う記号だと思うが
なぜDOS画面(コマンドプロンプト?)で出ないのかは良く分からない。
キーボード種類がまっとうに認識されていたら可能なはずなんだが。

参考:http://allabout.co.jp/computer/notepc/closeup/CU20011001/
829デフォルトの名無しさん:2007/12/19(水) 21:57:49
>827
追記ですが、もしかしたら「~」を入力しようとしたら「 ̄」(半角オーバーライン)が
表示されていますか?(上に挙げた文字自体は半角ではなく全角オーバーラインですが)

もしそうならJISコードとASCIIコードにおける同じ文字コード(0x7E)に対する
表記の違いに過ぎないので(バックスラッシュと¥記号のような関係)気にせず
そのままコマンド入力してください。多分、意図した通りに動作すると思います。

参考:http://www.bugbearr.jp/?%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91
の「メモ」「US-ASCII と JIS X0201 ラテン文字用図形文字集合」の項参照
830デフォルトの名無しさん:2007/12/19(水) 22:07:49
こういう問題もある。
ttp://support.microsoft.com/kb/418323/ja
831デフォルトの名無しさん:2007/12/20(木) 06:55:01
CapsLockされてるとか
832827:2007/12/20(木) 09:16:46
>>828-831
ご指導ありがとーございます

解決いたしました
> 追記ですが、もしかしたら「~」を入力しようとしたら「 ̄」(半角オーバーライン)が
でした

まだまだ修行が足りませぬ
精進いたします

改めて御礼申し上げます
それでは失礼いたします
833デフォルトの名無しさん:2007/12/30(日) 10:02:32
win2000, lsi-c試食版を使ってます
USB接続MP3プレイヤーの再生順(ディレクトリエントリ順)を
変更したいと思い、少し調べてみました。
(UMSSortというソフトのコマンドライン版です)

intdos()でレジスタ設定してbdos()でシステムコール25h,26hを使えば
いけそうな気が…。
834デフォルトの名無しさん:2007/12/30(日) 11:13:23
普通にシェルスクリプト(或いはバッチファイル)でできるレベルのことだろ。
そもそも、何故それをDOSでプログラミングしたいんだか。
835デフォルトの名無しさん:2007/12/30(日) 11:45:48
>>834
ディレクトリエントリの順を変更がバッチファイルでできるの?
836デフォルトの名無しさん:2007/12/30(日) 11:47:26
「エントリの順を」は「エントリ順の」の間違いです。すまん。
renやcopyでは駄目だったのは確認済みですが…。
837デフォルトの名無しさん:2007/12/30(日) 12:36:32
>>833
int 25h/26hはFAT32には使えない。FAT32ならint 21h,ax=7305hになるが、
そもそもこいつらはWinNT系ではブロックされて使えない。

で、並べ替える簡単な方法は、ディレクトリ内のすべてのファイルを一旦一時ディレクトリに
移動してから、並べ替えたい順番で元のディレクトリに移動すること。
838デフォルトの名無しさん:2007/12/30(日) 13:11:13
>>837
やっぱだめなのか…
win32APIとvisual basicあたりを使うのが無難ですかね

いったん別のところに移動して、ってのは考えてたけど
あまり頻繁にフラッシュメモリ上のファイルを移動するのは
どうかなと思ったのでやめました
なので、直接ディレクトリエントリを書き換える方法を模索してました

ほぼ毎日podcastを追加して、携帯MP3プレイヤーで聞こうかと。
使っているプレイヤーにランダム再生が無い(ディレクトリエントリ順に再生)ので、
PC側で操作するつもりでした。

いろいろ教えてくれてどうもありがとう。あとで本屋に行ってきます。
839デフォルトの名無しさん:2007/12/30(日) 13:44:14
同じドライブ内の移動なら、DOSの頃からディレクトリエントリを書き換えるだけだぞ。
ディスク領域そのもののフラグメンテーションは起きない。

ちなみに、NT系で直接ディスクアクセスしたければ、
ドライブやディスクそのものをWin32のCreateFileで開けばいい。
普通にRead/WriteFileで読み書きできる。
当然スレ違いだけどな。

840デフォルトの名無しさん:2007/12/30(日) 13:44:57
>>838
NT系で直接読み書きするには、CreateFile("\\\\.\\D:", 〜)などとして
ドライブをオープンし、ReadFile(), WriteFile()などを使う。
スレ違いなのでこの程度で。
841デフォルトの名無しさん:2007/12/30(日) 13:50:22
>>839
そうなのか!って今思えば確かにそうだ・・・
なんか馬鹿でした。どうもありがとう。
途中までランダムにして移動させるバッチファイルは作ってあったので
(でもrenじゃ駄目だと分かって捨ててた)
それでやります!

>>840
直接はやっぱりwinでのプログラムですね。


いろいろ教えてもらえてよかったです。ありがとうございました。
842デフォルトの名無しさん:2007/12/30(日) 13:59:08
最早どうでもいいんだけどさ、move使えばバッチファイルででもできるんだけどなぁ。
843デフォルトの名無しさん:2007/12/30(日) 14:20:25
>>842
841です。そのつもりなんですが...
844デフォルトの名無しさん:2007/12/30(日) 14:36:15
つーか、擬似シャッフルみたいなことをしたいのか。
だったらディレクトリを作ってそこに順番にcopyするだけじゃね。
845デフォルトの名無しさん:2007/12/30(日) 14:46:34
>>844
そうです。擬似シャッフル。
copyすると時間もかかるしフラッシュメモリにも良く無さそうなので
教えてもらったとおりmoveで作りました

お世話になったかたがたへ
というわけで上手くいきました!ありがとうございました。
846デフォルトの名無しさん:2007/12/31(月) 08:21:14
こんな年末に発生しなくても良かったんだけど('A`)
ttp://d.hatena.ne.jp/honto117/20061117/p1

これに書いてある「.logを参考に(A)を書き換える処理を(B)に追加」と
もう一つ「最期まで無事に走ったら終了」の処理を書いて頂けないでせうか
847デフォルトの名無しさん:2007/12/31(月) 11:40:16
>>846
HDDは消耗品だ。ヤマダ電機行って新しいの買ってこい。
848デフォルトの名無しさん:2007/12/31(月) 11:41:58
>>846 最期
(-人-)ナムー
849デフォルトの名無しさん:2008/01/01(火) 04:02:04
アケオメd('∀`)b!
奇跡の復帰を果たしましたぜ!
ヤマダ行った後なんだけども…
お騒がせしました!
850デフォルトの名無しさん:2008/01/24(木) 12:38:56
VFL, VFZ の構造が知りたいです。

vfl.docに書かれている
Nifty FLABO LIB 2 #1824 VFS .LZH VFL サンプルソース & 技術資料
って、今は昔過ぎてググっても見付かりません。

どこかこのファイルの入手方法はありますでしょうか
851デフォルトの名無しさん:2008/05/11(日) 05:00:40
ホす
852デフォルトの名無しさん:2008/05/27(火) 07:17:24
cat <in.txt >out.txt みたいなことできるdosのコマンドありませんか?
(winは全バージョン可能)

typeだとstdinからは無理っぽいんですが…
copy con out.txt とかひねくれたの思いついたんですけど、これはstdinじゃないです。
困ってるのでよろしくお願いします。
853デフォルトの名無しさん:2008/05/27(火) 07:25:51
more < in.txt
とかいけそうなんですけど、やりたい事は標準入出力を使ったファイルのコピーなんです。
moreだと--MORE--とかゴミがつくので期待はずれになります。
できれば、テキストでなくてバイナリも標準入出力を通す(通過のみで処理しないフィルタコマンド)のありませんでしょうか。
854デフォルトの名無しさん:2008/05/27(火) 07:32:12
findとか。
855デフォルトの名無しさん:2008/05/27(火) 13:32:05
find,moreはテキストファイルはできるんですけど、バイナリでfind,moreすると転送先のファイルが壊れます。
試したらmoreでは上に書いたゴミはつきませんでした。
そのプログラムを自分で作れるんですけど、unixシェルの様にOS標準のを探してます。
他にないでしょうか。(特にバイナリ―ファイルの標準入力を受け付けるコマンド(フィルターとも言われます)です)
856デフォルトの名無しさん:2008/05/27(火) 13:45:17
問題を整理しよう。
要は、標準入出力をスルーで流せる標準コマンドがないか、ということでよろしいか。
で、findもmoreも(改行を特殊処理するからか)出力が壊れると言うことだね。
findstrはどうだろう。今手元のcmd.exeからfindstr /v "^$" a.exe > fooしたら大丈夫なようだ。
# "^$"でいいかどうかは検討が必要だけどね。
857デフォルトの名無しさん:2008/05/27(火) 14:41:43
やりたい事は、標準入力からファイルデータ(特にバイナリ)を入力するので、
もしそのコマンドなら、

findstr /v "^$" <a.exe > b.exe

とかです。が、失敗します。
858デフォルトの名無しさん:2008/05/27(火) 14:47:53
テキストファイルのときは、
more <a.txt>b.txt
で出来ますが(実質copy /a a.txt b.txtと同じだけど意味が違う)

バイナリファイルだとこのコマンドでは出来ません。
若しくは玄人向けのdosコマンドレファレンスのサイトご存知ないでしょうか。
859デフォルトの名無しさん:2008/05/27(火) 14:57:54
CATくらい自作したらいいんじゃないかい。
DOSのパイプは中間ファイルを作るからあんまり面白くないけど。
Win9x系のパイプも中間ファイル式だったのにがっかりした記憶がある。
860デフォルトの名無しさん:2008/05/27(火) 15:19:31
だから作れるんですけど…
findstrはstdinでリダイレクト入力使うとバグってる(仕様)みたいだから作りたくなるのは山々ですが
861デフォルトの名無しさん:2008/05/27(火) 15:27:42
技術力が高いスレで聞いてもいいんですけど。じゃ質問を少し変えると、
標準入力(リダイレクト < )を使ってテキスト・バイナリ・ファイルを作ることはで来ますか?
できれば、後はパイプでできるんで・・・
862デフォルトの名無しさん:2008/05/27(火) 15:29:43
標準入力の内容をそのままのデータで、ローカル・ディスク上のファイルにすることは出来ますか?と同じです。
863デフォルトの名無しさん:2008/05/27(火) 15:51:04
DOSの仕様を回避するなら

type o.jpg | findstr ".*" > p.jpg

になるんですけど、まず、このo.jpg(バイナリ)をstdinから作りたいんですけど、そのようなコマンドありますか?
864デフォルトの名無しさん:2008/05/27(火) 15:54:27
stdin/stdoutが通常はテキストモードでオープンされているから不都合があるってことかな?
手元に資料はないけどバイナリモードへの切り替える方法はあったと思うよ。
865デフォルトの名無しさん:2008/05/27(火) 15:56:02
「標準」のコマンドだけだと、たぶん無理だと思う(wshでスクリプト組む場合は別)

#ActivePerlを標準コマンド扱いにして強制インスコして、binmodeで
#スクリプト組めばいいとかアホな回答を思いついたw
866デフォルトの名無しさん:2008/05/27(火) 23:07:10
それね、できたよ。でもね、なんか原始人みたいだから教えてあげないww
867デフォルトの名無しさん:2008/05/28(水) 00:49:31
comモデルまんせーヽ(´ー`)ノ
868デフォルトの名無しさん:2008/05/28(水) 22:40:13
DOSには標準でdebug.exeがあるじゃないか。
aで必要なプログラムを叩き込め
#com2txtでもいいけどw
869:2008/05/30(金) 22:10:52
cygwinとかUNIX like toolsってのは販促?
870デフォルトの名無しさん:2008/05/31(土) 00:18:33
90年代末の乾電池ノートはDOSでしか動かんのよ
BSD動く機種もあったけど
871デフォルトの名無しさん:2008/06/11(水) 18:00:20
UNIX like toolsはDOS用あるよ
872デフォルトの名無しさん:2008/06/11(水) 20:36:53
つ"UNI+"
873洩れ車@J算譜工房:2008/06/20(金) 22:05:39
>>872 「つ"UNI+"」
アスキーのパロディ版に載ってた「ユニクロス」の事ですか?(確かDOS上ではなく
CP/M上でさえなくスタンドアロンのN88BASICの上で動いていた。)
874洩れ車@J算譜工房:2008/06/20(金) 22:19:54
>>852-866
>>852
> cat <in.txt >out.txt みたいなことできるdosのコマンドありませんか?
> typeだとstdinからは無理っぽいんですが…

>>858
> テキストファイルのときは、
> more <a.txt>b.txt
> で出来ますが(実質copy /a a.txt b.txtと同じだけど意味が違う)
>
> バイナリファイルだとこのコマンドでは出来ません。

全然参考にならんとは思うが,MS-DOS Ver 2.11 の COMMAND.COM では
A:\IO.SYS がバイナリでも(ついでに不可視・システム属性とかでも)

type A:\IO.SYS >B:\IO.SYS

などとして正しくファイルのコピーができた(但し B:\IO.SYS のタイム
スタンプは当然 type 実行時のものとなる。)
875デフォルトの名無しさん:2008/08/27(水) 21:10:09
なんかさ・・・

「Aができるコマンドありませんか?」という質問をしている奴に限って
その「A」は別の目的「B」を達成するための手段として本人が唯一
思いついたものに過ぎなくて、実は手段「C」やら手段「D」やらの方が
より簡単に目的「B」を達成できたりする、ってことが多いんだよね。

catみたいなDOSコマンド、を連発している奴、本当は何がしたいの?
876デフォルトの名無しさん:2008/08/27(水) 22:29:09
キャット空中三回転
877デフォルトの名無しさん:2008/08/27(水) 22:56:18
ドスでファミコンが作りたいのですが
どうしたら作れるでしょうか?
878デフォルトの名無しさん:2008/08/27(水) 23:45:27
>877
まずは6502ニーモニックを使いこなせるよう自分で勉強だ。分からない用語はググれ。
幾つもの古本屋を渡り歩いてでも参考書を買いあさる根性も必要になるはず。
879デフォルトの名無しさん:2008/09/21(日) 12:29:59
DOS の画面でBIOSのアップデートをしようとしているのですが、
afudos /iP5K-Pk上波線M1 ROM
と打ち込みたいのですが、上波線の打ち方を教えてもらえませんか?
キーボードの表示はあるのだが、どうしても打ち込めない。

それともBIOSのファイル自体を、名前変更してもOK?
880デフォルトの名無しさん:2008/09/21(日) 12:41:55
>>879
使っているのが日本語キーボードで日本語キーボードの設定が済んでいるなら
Shift + ^

使っているのが日本語キーボードで日本語キーボードの設定が済んでいないなら
Shift + 半角/全角
881879:2008/09/21(日) 15:21:59
>>880 ありがとうございます。
882は@携帯 ◆cplnFO9T0I :2008/10/06(月) 09:56:24
master.libのsuper_putの実行速度をまとめた物ってないですか?
前に見かけたのですが見つかりません
883デフォルトの名無しさん:2008/11/01(土) 03:16:18
コマンドプロンプトについてはここでいいのでしょうか?
分からない点があり教えていただきたいです。
検索してコマンド一覧などが乗っているHPを参考にいろいろなコマンドを実行してみているのですが
editコマンドを使って終了したところ、 英語モード とかいうやつになったのですが、
これを日本語モードに戻したいのですが、検索したHPなどを見ると jp と打てば戻ると書いてあるのですが
jp を試してみたところ 認識されてない みたいな英文がでてきます。
コマンドが変わったりでもしたのでしょうか? versionは 6.0.6001 とあります。
884デフォルトの名無しさん:2008/11/01(土) 05:00:49
確か
chcp 932
とかそんなんだったと思う。
違ったらごめんな。
885デフォルトの名無しさん:2008/11/01(土) 09:38:04
C:\>type %windir%\system32\jp.bat
@echo off
rem Change the active CODE PAGE to 932 (Japan)
CHCP 932

C:\>type %windir%\system32\us.bat
@echo off
rem Change the active CODE PAGE to 437 (United States)
CHCP 437
886デフォルトの名無しさん:2009/01/08(木) 20:19:40
質問です。コレ(↓)
  in  ax,20h
と、コレ(↓)
  in  al,21h
  mov  ah,al
  in  al,20h
は、結果は同じですか?ワードアクセスするとAHレジスタには21hの内容が入る。
(ポート020h,021hは例えで意味はありません)
もし同じなら、なんで、ax 一括で読み込まないんでしょう?
887デフォルトの名無しさん:2009/01/08(木) 20:39:49
>>886
8bit幅のアクセスしか出来ないとか?
888 ◆0uxK91AxII :2009/01/08(木) 21:03:44
>>886
HWに依存する事項だから。
889デフォルトの名無しさん:2009/01/09(金) 01:55:12
>>886
書いたヤツに聞け
890デフォルトの名無しさん:2009/01/12(月) 11:40:53
20hからワードアクセスしたときの上位バイト(ah)と、21hからバイトアクセスした時(al)の内容は同じ物だっけ?
891デフォルトの名無しさん:2009/01/12(月) 13:06:27
ハードの実装次第でどうとでもなる
892デフォルトの名無しさん:2009/01/12(月) 13:43:33
DOS用ハードって実装次第だっけ?
893 ◆0uxK91AxII :2009/01/12(月) 13:50:17
CPUの信号線がどうなるかを調べれば分かるように、HW依存。
894デフォルトの名無しさん:2009/01/12(月) 14:57:00
CPUの信号線がどうなるかを調べなくてもバス構成を知っていれば判るように、実装依存。
895デフォルトの名無しさん:2009/01/12(月) 17:23:20
DOS用のハードのCPUって実装依存だっけ?
896デフォルトの名無しさん:2009/01/12(月) 17:28:38
CPUが実装依存なんじゃない。周辺回路が実装依存なんだ。
897デフォルトの名無しさん:2009/01/12(月) 17:54:35
DOS用のハードって何?
898デフォルトの名無しさん:2009/01/12(月) 19:19:14
メモリー空間とか割り込みbニかのことだろ
int21等は共通事項だが、ヒープ・スタックは実装依存に決まってるじゃん。
899デフォルトの名無しさん:2009/01/12(月) 20:59:34
すげぇ、流れが捻じ曲がったよ。
900デフォルトの名無しさん:2009/01/12(月) 21:43:22
なんでヒープやスタックが出てくるんだよ。
I/Oはともかく、1MB以下の空間ならメモリは一応DOSが管理してるだろ(ザルだが)
901デフォルトの名無しさん:2009/01/12(月) 22:10:13
大丈夫、DOSも晩年は1MB以上の空間もちゃんと管理している。
902デフォルトの名無しさん:2009/01/13(火) 00:13:18
mov ax,[20h]
でahには21hのメモリの内容がはいるだろ。同じように、
in ax,20h
でahには21hのポートの内容がはいるんじゃないの?
オレって勘違いしていた?
903デフォルトの名無しさん:2009/01/13(火) 00:14:00
入るとは限らないって上で何人も回答あるだろ・・・
904デフォルトの名無しさん:2009/01/13(火) 01:25:11
>>902
バカまるだしw
905デフォルトの名無しさん:2009/01/13(火) 04:44:55
>>902
メモリがそう読めるというのは、そう実装されているから。
I/Oがメモリ同様に実装されているかどうかは別の問題。
「マイコンの作り方」みたいな本でも探してきて一読するか、
諦めて布団被って寝るか、どっちかにしてくれ。
906デフォルトの名無しさん:2009/01/13(火) 12:38:47
要するに原住民番号20-8番から20-15番まで来なさいって命令と、
原住民番号21-0番から21-7番まで来なさいって命令は別物ってだけだろ。
907デフォルトの名無しさん:2009/01/13(火) 16:05:07
余計わかり辛いw
908デフォルトの名無しさん:2009/01/13(火) 17:24:00
DOSの3.3 までと 5.0以降は分けないと アレだな
8086 と Z80も わけたほうが良いかもな CP/M のシステムコールをもっとMSX-DOSというものもあるからな。
909デフォルトの名無しさん:2009/01/13(火) 17:24:30
s/もっと/もった/
910デフォルトの名無しさん:2009/01/13(火) 17:26:56
MASMの話しなら、 ALは不定ってのは常識だな
>>902みたいなのが、バッファオーバーフローで、ハッカーにやられる典型的なホール製造者ってことだな
911デフォルトの名無しさん:2009/01/13(火) 19:09:25
902だが906の説明でわかったわ。
20年前はバイトアクセスしかしなかったから助かったのか。
912デフォルトの名無しさん:2009/01/13(火) 19:16:32
例えばI/Oが16ビットカウンタだとしたら、8ビット2回に分けてアクセスしちゃまずいだろ。HとLでずれるぜ。
913デフォルトの名無しさん: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デフォルトの名無しさん:2009/01/14(水) 00:36:32
FMは出来たんだっけか?
なんか特権モードで凄いのがあった気がするけど。
916デフォルトの名無しさん:2009/01/14(水) 01:21:19
>>886の質問がアバウト過ぎるのさw
917デフォルトの名無しさん:2009/01/16(金) 21:34:17
質問者のターゲットとする環境がAT互換機に限定できれば
I/Oポートの20Hと21Hの用途も決まってるしワードアクセス可能かどうかも決まるんだが。
918デフォルトの名無しさん:2009/01/16(金) 23:48:07
>>917
それこそを、機種依存したプログラムと言わずして、なんと呼ぼう?
構造主義進化論は脆くも崩れ去ったか・・・合掌
919デフォルトの名無しさん:2009/01/16(金) 23:51:21
機種依存全盛の時代のOSのスレでそんなこと言われても……。
920デフォルトの名無しさん:2009/01/17(土) 00:01:43
>質問者のターゲットとする環境がAT互換機に限定できれば

AT互換機以外でDOSが動くのってあるの???
921デフォルトの名無しさん:2009/01/17(土) 00:05:56
PC-98だろ。
922デフォルトの名無しさん:2009/01/17(土) 00:08:00
>>920
まさかAT互換機用以外のDOSがない(なかった)とでも思ってるのか。
923デフォルトの名無しさん:2009/01/17(土) 00:11:16
山ほどあるぞ
思いつくだけで数十シリーズ
924デフォルトの名無しさん:2009/01/17(土) 00:12:35
ttp://ja.wikipedia.org/wiki/MS-DOS
PC-9800シリーズやEPSONの98互換機だけじゃないぞ。
AXやJ-3100シリーズも微妙に違う。
925デフォルトの名無しさん: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デフォルトの名無しさん:2009/01/17(土) 01:24:09
PC-100
928 ◆0uxK91AxII :2009/01/17(土) 02:52:46
このスレ、何かクサイね。
929デフォルトの名無しさん:2009/01/17(土) 06:16:50
>>921-927
それ、いつの時代の話?
まさか・・・20世紀??

全裸で外を出歩いて、「石器時代はみんな裸だったんだぞ!」
って言ってるようなもんじゃん。
930デフォルトの名無しさん:2009/01/17(土) 06:27:54
>>914
Linuxではその手の違いを力技でエミュレートしてるよ
ttp://slashdot.jp/~bero/journal/352742
931デフォルトの名無しさん:2009/01/17(土) 07:01:29
デバドラやOSのAPIなど使わずにダイレクトにIN/OUTするのがDOS流
932デフォルトの名無しさん:2009/01/17(土) 07:09:12
>>929
DOSのスレで一体何を言ってるんだ?
933デフォルトの名無しさん:2009/01/17(土) 10:22:12
コンドームやピルなど使わずにダイレクトにIN/OUTするのが俺流
934デフォルトの名無しさん:2009/01/17(土) 11:15:32
まるでピルを使うとダイレクトではなくなるような誤解乙。
935デフォルトの名無しさん:2009/01/17(土) 13:24:49
>>929
一般人はいいよなぁ
ろくすっぽ資料の存在しない機械と格闘しなくてもいいから...
936デフォルトの名無しさん:2009/01/17(土) 16:26:45
DOSなのに資料が無いって・・・
937デフォルトの名無しさん:2009/01/17(土) 18:24:18
Windowsは、ハードの細かい仕様を気にせずに済むのがいいところだな
938デフォルトの名無しさん:2009/01/17(土) 18:41:54
てか、ハードを動かすプログラムを書く奴はめったにいない。
鈍臭いアプリばっかり。
939デフォルトの名無しさん:2009/01/17(土) 19:51:22
>>929
時代も変わったようだな。
坊やみたいなのがDOSプログスレの住人とはな。
だが、戦場であったらこうはいかないぞ。がんばれよ。

(って、20世紀の有名なネタも通じないのだろう f(^ー^;)
940デフォルトの名無しさん:2009/01/18(日) 02:52:40
爆釣
941デフォルトの名無しさん:2009/01/24(土) 00:06:19
ところで、PC-98 と PC-AT の I/O ポートの一覧というか空きポートが記されている表とかある?
昔の N88-BASIC のソフトを移植してくれという依頼が来た。
942デフォルトの名無しさん:2009/01/24(土) 01:03:43
どんなソフトだ?
943デフォルトの名無しさん:2009/01/24(土) 03:10:07
そもそも、ソフトの移植に何で空きポートが関係するんだ?
944デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2009/01/25(日) 17:47:39
>制御用にでも使ってたんだろ。それで専用の拡張ボード使ってて、ハードごと移植ってことでは?
それを「N88-BASICのソフトの移植」とは普通は言わないと思うんだ。
948デフォルトの名無しさん:2009/01/25(日) 20:39:59
Cバスユニバーサル基板か何かでI/Fを自作していたらあるかもね。
949デフォルトの名無しさん:2009/01/27(火) 23:49:11
市販品だが、Cバスのフレームバッファを弄ってた記憶があるな。メモリとIOの両方でアクセス出来る。
アセンブラだったけど。
950デフォルトの名無しさん:2009/01/28(水) 01:08:50
カノプーがGDBRのCバス汎用インターフェイスボードを出していたね。RS-432ボード等もどこからか出ていた。
検索したが辿り着けなかったが・・・今でも、その手のものを置いているところはあるんだね。
懐かしかった。 → ttp://www2.wbs.ne.jp/~c2main/zaiko-06.htm
951デフォルトの名無しさん: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デフォルトの名無しさん:2009/01/28(水) 23:23:56
I/Oアドレスの一覧がわかったところで、もっと具体的というか実践的な使い方がわからないと
解析は難しいと思うんだけどね。
OUT 5FHみたいな変なポートもあったし、しかも機種ごとに働きが違ったりね。
953デフォルトの名無しさん:2009/06/23(火) 18:45:05
何かの実行ファイル(hoge.exe)が
あるファイル(hoge.log)を掴んでいて、
コマンドプロンプトからは書き換え不可(他のプロセスが使用中)で
エディタで開くと更新可能です。

これをbatで編集(空にする)したいのですが、どう書けばいいですか。
ご教示願います。
954デフォルトの名無しさん:2009/06/23(火) 18:49:32
エディタが読み込み専用モードで開いているだけでは?
本当に内容を更新できるの?
他のプロセスが書き込みモードで開いているなら、書き込めないはず
955デフォルトの名無しさん:2009/06/23(火) 18:59:39
エディタでやると開くときから何も言われないんですよ。他で使ってるから上書き禁止、って注意もなく更新できてしまう。

今はプロセス落とすことなく6コのログファイルを手動でクリアしてるんだけど、batで1クリックでやりたいんです。
956デフォルトの名無しさん:2009/06/23(火) 19:14:24
空っぽにはできないけど
echo "" > huga.txt
957デフォルトの名無しさん:2009/06/23(火) 19:35:52
それが効かないんです。
batで作って、いくらたたいても反応ないなと思い、コマンドラインから打って見てみたら「他のプロセスで使用中」って。
958デフォルトの名無しさん:2009/06/23(火) 20:47:02
プロセスを止めればいいじゃん
959デフォルトの名無しさん:2009/06/23(火) 20:53:39
>>956
0バイトのファイルを作るには
COPY NUL hoge.txt
TYPE NUL >hoge.txt
などでできるよ
960デフォルトの名無しさん:2009/06/24(水) 08:51:18
>>958
すげえな、最上レベルの読解力のなさだなw
961デフォルトの名無しさん:2009/06/24(水) 15:46:21
>>960
そういうことは、解決策を提案してから言え
962デフォルトの名無しさん:2009/06/24(水) 21:59:52
ハンドル閉じれ
963 ◆0uxK91AxII :2009/06/24(水) 22:45:56
>>953
DOSとは違うし、目的と手段を混同していそうで、頭が悪そう。
964デフォルトの名無しさん:2009/06/25(木) 10:48:34
ふつう unix などで昔から使われている手法だけど
(Windows風に書けば)

プロセスを止める(TASKKILL か NET STOP などで)
ログを空にする(COPY NUL hoge.log か RENAME hoge.log 日付.log みたいな感じで)
プロセスを再開する(hoge.exe か NET START などで)

これが普通の方法だよ。
具体的にどう書けばいいのかは、hoge.exe の仕様によるから・・・
965デフォルトの名無しさん:2009/07/04(土) 14:40:04
元がWindowsでコンソールアプリの話っぽいから、たぶんスレ違い。
966デフォルトの名無しさん:2009/07/16(木) 19:00:47
みんなの自慢のバッチの機能を教えてくれ。
967デフォルトの名無しさん:2009/07/21(火) 18:24:00
super.libの説明書、質疑応答ファイルの方に書いてある処理時間って
どうやって計測したか判る方はいらっしゃいますか?
968デフォルトの名無しさん:2009/07/29(水) 00:57:33
つ。プロファイラ。
969デフォルトの名無しさん:2009/08/07(金) 02:01:37
>>968
ありがとうございます。LSI C-86の試食版で測ってみます。
970デフォルトの名無しさん:2009/08/07(金) 02:05:38
って、LSI C-86に付いているプロファイラだと計測できませんね。
TurboCの方でできることを期待しておきます(すぐ出せる状態にない
971デフォルトの名無しさん:2009/08/10(月) 12:30:33
ここで質問していいですか?
set m=0123
if !m:~0,1! == 0 (echo !m:~0,1!) else echo else
この「if !m:~0,1!〜」っていう書き方ってできなかったですか?
972デフォルトの名無しさん:2009/08/10(月) 14:55:52
MS-DOSで何をプログラミングしているのですか?
973デフォルトの名無しさん:2009/08/10(月) 15:27:02
できなさそうだね・・・
set m=0123
if %m:~0,1% == 0 (echo %m:~0,1%) else echo ...
とするか、
setlocal enabledelayedexpansion
set m=0123
if %m:~0,1% == 0 (echo !m:~0,1!) else echo X
だな。
! ! は遅延展開なので、遅延させてしまってはIF式を評価できないんだろね。
974デフォルトの名無しさん:2009/08/10(月) 21:06:58
MS-DOSで遅延展開なんて出来ません
975デフォルトの名無しさん:2009/08/10(月) 22:07:39
MS-DOSでプログラミングすることで得られる技術って何があるの?
例えば、極端ですがアセンブリ言語やC言語及びMS-DOSのアーキテクチャに詳しくなれる
とか、

976デフォルトの名無しさん:2009/08/10(月) 22:50:21
no
977971:2009/08/10(月) 22:50:35
>>973
なんですとー
%と!の変数が混在するパターンもあるのですね
ifの中でsetする必要があるので、後者でいけました
ありがとうー
978デフォルトの名無しさん:2009/08/10(月) 23:01:34
>>975
Cとかポインタを多用する言語には最悪の環境です。
979デフォルトの名無しさん:2009/08/11(火) 03:20:49
>>975
プロテクトメモリを自由に使えるようになる。
WINやLINUXと違い、リニアに4Gでも16Gでも使い放題。
980デフォルトの名無しさん:2009/08/13(木) 11:00:36
>>975
温故知新だな。
余計な物がついていないから扱いやすいわけで学生さんが8085で演習を行う感じの基礎を学ぶためのものかな。


>>978
末期にはポインタ使わなくていい言語もあったし、XSCompilerとかもそうだった気がする。
今でもEuphoiraというポインタを意識しなくて良いマルチプラットホームな言語がある。
ただ、Euphoria Version.4.0でDOS版廃止。時代の流れだな。
981デフォルトの名無しさん
ちんこしゃぶれ