5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

DOSでプログラミング

1 :デフォルトの名無しさん:03/03/07 10:45
ハードウェアを直接叩くのはやっぱり楽しい!

DOSにおける開発について語りましょう。


2 :デフォルトの名無しさん:03/03/07 10:46
フリーのコンパイラ/アセンブラ

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/

3 :デフォルトの名無しさん:03/03/07 10:47
32bit

DJGPP
http://www.delorie.com/djgpp/

16bit リンカ
ftp://ftp.microsoft.com/Softlib/MSLFILES/LNK563.EXE

4 :デフォルトの名無しさん:03/03/07 10:47
今でも入手できる商用のコンパイラ/アセンブラ
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/

5 :1:03/03/07 10:51
というわけで、立ててみました。
現在、PC-9821用のグラフィックライブラリを作っています。
将来的には、Quakeとか移植できたらいいな、と思ってます。

6 :おぼーん&rlo;んーぼお&rlo; :03/03/07 14:25
おぼーん

7 :デフォルトの名無しさん:03/03/07 14:28
メモリモデルとかがいまいち理解できてないんですけど教えてもらえますか?

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

とか。

8 :デフォルトの名無しさん:03/03/07 14:50
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がないとコンパイルできない。
誰かコンパイルしたのをうぷして!


10 :デフォルトの名無しさん:03/03/07 15:14
>>9
grplib.cの107行目、

#pragma inline

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


しかし、ヘッダもついてないのね(汗)

11 :とて:03/03/07 16:16
情報 求む

 昔 昔の クイックC2 のAT版所持者
      nec98ならあるが 今わ動かない
      そこで AT版なら動く可能性がある
   マイクロソフトのQuickC Ver2.0
      

12 :デフォルトの名無しさん:03/03/08 06:53
  ∧_∧
 ( ´∀`)< ぬるぽ

13 :デフォルトの名無しさん:03/03/08 12:16
       | | ガッ
  ( ・∀・) | |      
 と    ) | |   
   Y /ノ   
    / )  .人 
  _/し'  <  >_Λ∩
 (_フ彡  V`Д´)/
            / ←>>12


14 :デフォルトの名無しさん:03/03/09 00:05
>>11
PC/AT版って、日本語版はないんじゃないかな?
J-3100の英語モード用に英語版が販売されていたような。

15 :デフォルトの名無しさん:03/03/09 08:29
>>5を見てこのスレには何の価値もないと思った。
>>1よ、もはやメモリモデルを気にしたり、
ソフトウェアでグラフィックを高速化したりする時代は終わったのだ。
俺と一緒にDirectX9を勉強しようじゃないか。

16 :9:03/03/09 13:40
>>10
レスありがとう。
でも、インライン命令使わないと遅いってことはないですか?
ま、動けばいいんですけどね。

関係ないけど、DX4でも整数sqrtは実数sqrtの3倍遅かったです。


17 :デフォルトの名無しさん:03/03/09 13:53
QCではなくVC1.5を使えば?

18 :9:03/03/09 17:13
デモソース動きました。
でも、コメントに書いてあったとおり、フォントは読み出せなかったようで、
グラフィック文字出力はダメでした。

>>15
DOSプログラミングには箱庭的楽しみがありまふ。


19 :デフォルトの名無しさん:03/03/09 17:26
つーか、意味ないよな

>将来的には、Quakeとか移植できたらいいな、と思ってます。
ハードの性能的に無理でしょ。

20 :デフォルトの名無しさん:03/03/09 17:28
>>19
PentiumII機あったけど。

21 :デフォルトの名無しさん:03/03/09 18:30
>>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だったか持ってたはずだが・・・
ちょっと探したけど見つからない。
「情報」とはどのような?

23 :FreeDOS教徒:03/03/09 22:43
この板だとすぐ落ちそうな気がするんですが、それはさておいて。
なんつー面白そうなスレ立ててんだ>>1よ。じっくりヲチさせてもらうぞ。

24 :とて:03/03/10 09:42
今のパソコン
 セレロン300で メモリー128 HD 6G
のパソコンで動かす
 業務の異動 NEC98からATタイプに
 ソースはあるから コンパイルしなおしたら
動くかの判定 

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





25 :デフォルトの名無しさん:03/03/10 10:08
>>18
パックドピクセルのMCGAモードなんか、
他人のよくわからんライブラリ使うまでもないだろ。
自分で書け

26 :デフォルトの名無しさん:03/03/10 11:00
いまからだとハード周りの書籍を探すのがなかなか困難だ
流行らせてから秘蔵の書籍をヤフオク辺りに出品してぼったくりたい

27 :デフォルトの名無しさん:03/03/10 11:12
>>26
英文ならネットに一杯あるよ

28 :デフォルトの名無しさん:03/03/10 11:13
>>18
フォントは、BIOS使って読み出すよりも、
ビットマップフォントを用意した方が早いんじゃ?(手間的にも速度的にも)


29 :デフォルトの名無しさん:03/03/10 11:33
速度云々言う奴の頭には、BIOSから読み出したフォントを
キャッシュするという考えが無いのだろうか?

DOSからWindowsに環境が変わっても同じようなことを言う奴がいる
GDIのテキスト出力が遅いという理由でビットマップで
フォントを作っておくとか言い出す馬鹿者と同レベル

30 :デフォルトの名無しさん:03/03/10 20:49
DOSでぬるぽ

31 :デフォルトの名無しさん:03/03/10 20:54
>>30
NULL pointer assignmentは何回か出したことあるよ。QuickCで。

32 :デフォルトの名無しさん:03/03/11 05:31
 DOSダロウトナンダロウト
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>30


33 :デフォルトの名無しさん:03/03/14 22:45
保守

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の日本語版なんて出回ったのでしょうか?

思い出したら気になりだしたんで…

35 :デフォルトの名無しさん:03/04/08 07:01
せめてDOS Extender使うとか。
64KB境界気にしつつやってられねーよ。

36 :デフォルトの名無しさん:03/04/09 10:13
DOS/Vの最初は4.xだったはず

37 :デフォルトの名無しさん:03/04/10 01:16
(DOSじゃなくWin9x向けなのですが)
上司の無茶な思い付きにより
FATとFAT32用のデフラグツールを
独自実装する羽目になりそうです。

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

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

当方のレベルは、ユーザモードで動く
C/C++/Javaアプリケーションなら
だいたいどんなものでも書ける程度です。
(が、ハードを直接たたくような
コードは書いたことがありません。)

38 :デフォルトの名無しさん:03/04/10 15:53
>>37
> (DOSじゃなくWin9x向けなのですが)
> 上司の無茶な思い付きにより
> FATとFAT32用のデフラグツールを
> 独自実装する羽目になりそうです。
今更そんなのを新たに作っても売れんよ?


39 :デファクトのスタンダードさん:03/04/11 19:42
>36
ソリはAXでは?

40 :デファクトのスタンダードさん:03/04/11 19:46
>>37
> この辺の勉強にいいページとか本とか

あんまり役に立たないレスですが、そーゆーのってハード系
(CQ出版のインタフェースとか)を当たると何か役に立つんじゃ
ないでしょうか。あとATAやSCSI関連の仕様の中にポロッと出て
きそうです。

41 :デフォルトの名無しさん:03/04/11 20:21
>39
http://www.google.co.jp/search?q=dos%2Fv+%E6%AD%B4%E5%8F%B2&ie=UTF-8&oe=UTF-8&hl=ja&lr=

42 :デフォルトの名無しさん:03/04/11 21:53
>>37
>当方のレベルは、ユーザモードで動く
>C/C++/Javaアプリケーションなら
>だいたいどんなものでも書ける程度です。

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


43 :デフォルトの名無しさん:03/04/11 23:22
>>42
自動生成するプログラムが生成した「ハードを直接叩くコード」は
人間が書くんだよ。
今現在何もないところからコードを作り出せるプログラムがあると思ってるの?

44 :デフォルトの名無しさん:03/04/12 08:00
>>43
・「コードを自動生成するプログラム」というものは存在し得る。
・「コードを自動生成するプログラム」はユーザーモードで動かす事が可能である、
>>37は「ユーザモードで動くアプリケーションならだいたいどんなものでも書ける」

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

簡単な理屈だろ。

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


45 :デフォルトの名無しさん:03/04/12 10:29
copy a: b:
del a:

46 :デフォルトの名無しさん:03/04/12 12:02

95発売以前は、ウイルス作りにマジ燃えたな。
いわゆるステルス型とかいろいろ作った。
俺を裏切った香具師に、それ仕込んだゲームソフトをあげて悦に浸ったりしたな〜。

47 :デフォルトの名無しさん:03/04/12 13:03
>>46
キモッ!

48 :デフォルトの名無しさん:03/04/12 18:58
DOS/VのDMAの使い方を日本語で解説しているページってないですか?

49 :デフォルトの名無しさん:03/04/13 10:28
>>48
以前,ちょこっと勉強したけど日本語資料はあんまりなかった気がする.
CQ出版の本とLinuxのソース,あとはIntelからDMAコントローラの資料ダウンロードして
IDEのDMA転送は一応可能になったよ.

ぬるい情報で申し訳ない.

50 :デフォルトの名無しさん:03/04/14 17:02
>>48
DOS/V(MS-DOS/IBM PC-DOSの日本語版)にDMAはついてないわけだが。
PC-AT互換機のハードウェアDMAの使い方は古い本にしか出てないし、
今さら勉強する価値があるとも思えない。

51 :山崎渉:03/04/17 15:29
(^^)

52 :デフォルトの名無しさん:03/04/21 08:29
保守

53 :デフォルトの名無しさん:03/04/24 00:47
質問させてください。
バッチファイルを作って、それにD&Dして、バッチファイルと同じディレクトリにおいてる
スクリプトを呼び出して処理しようとしてるのですが・・・

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

cd %0%../

こんな事してるんですが、移動できません。
バッチがおいてあるディレクトリへ移動する良い方法はありませんか?

54 :デフォルトの名無しさん:03/04/24 07:35
>>53
バッチファイルプログラミング質問スレ
http://pc2.2ch.net/test/read.cgi/tech/1040614686/

55 :デフォルトの名無しさん:03/04/24 17:58
>>53
右クリック→プロパティ→プログラム→作業ディレクトリ
は駄目か?


56 :デフォルトの名無しさん:03/04/27 09:36
>46
95以前はHDDを初期化したとしても大した被害はないよ。

57 :デフォルトの名無しさん:03/05/11 02:28
DOS画面の指定した2つの行でだけスクロールするCONドライバを
作りたいんですが、元になるソースとか情報とかありませんか?

58 :デフォルトの名無しさん:03/05/11 12:41
98ならFCONあたりは?

59 :デフォルトの名無しさん:03/05/11 16:27
IBM/AT or IBM/XTなんです。

60 :デフォルトの名無しさん:03/05/11 16:32
じゃあ、NNANSIとか

61 :デフォルトの名無しさん:03/05/11 16:38
どうも。
今PCが手元にないんで、あとで探してみます。

62 :デフォルトの名無しさん:03/05/11 21:00
どうやってアクセスしてるんだ。携帯か?

63 :デフォルトの名無しさん:03/05/11 22:11
DOSマシーン。これもPCだった。

64 :デフォルトの名無しさん:03/05/12 21:30
NNANSIありました。286以上用だったんで、TASM1.0で再アセンブル
したが上手く出来ないみたい。残念ながらスクロール範囲指定エス
ケープはありませんでしたが、十二分に参考になりました。どうも。

65 :デフォルトの名無しさん:03/05/15 17:44
http://rd.vector.co.jp/soft/dl/dos/hardware/se003206.html
↑あんま、参考にならないかな?

66 :デフォルトの名無しさん:03/05/15 17:51
関係ないけどTASMのバージョン非互換には萎える。
ま、cmacros.incもやめてほしいんだけど。(w


67 :デフォルトの名無しさん:03/05/16 13:03
DOSで動くHTTPサーバ無いでしか?

68 :デフォルトの名無しさん:03/05/16 13:09
DOSの上でwin.comを動かせば、結構あると思う。

69 :デフォルトの名無しさん:03/05/16 13:24
>>67
http://dos.zive.net:200/www.htm

70 :67:03/05/16 13:37
thanx!>>68-69
みたけど本物???
ソース2000行くらいしか無いけど...

71 :デフォルトの名無しさん:03/05/16 14:30
>ハードウェアを直接叩くのはやっぱり楽しい!
やっぱりストレスがたまっているときはこれだよね

72 :デフォルトの名無しさん:03/05/25 14:32
dosだとcpuの計算時間ってどうやって表示させるんですか?

73 :デフォルトの名無しさん:03/05/25 15:36
dosって16ビットだから直接叩いても処理速度おそい
win32に直接叩け、俺は叩けるけど、お前らには無理だろうな(藁

74 :デフォルトの名無しさん:03/05/25 17:06
>>72
echo+>crlf
time<crlf
(時間を計るプログラムを走らせる)
time<crlf
というBATファイルで、
時間は自分で引き算するw

75 :デフォルトの名無しさん:03/05/25 20:30
ちょっと質問なんですがよろしいでしょうか?
別の板のとあるスレで
「とあるサイトを見ていたら突然PCの画面が黒地に白の文字が現れて、強制的に再起動をさせられるという事があった。
一瞬の出来事で、文字の内容は「STOP」等と書かれていた以外は読み取ることが出来なかった。」
という書き込みを見つけたんですが、数時間後に犯人を名乗る人物から
「バッチファイルを実行したからコマンドプロンプトが立ち上がって表示されたんだよ。
OSがブートしなくなったりするかもな。」という書き込みがされました。

これって一体どういう仕組みなんでしょうか?なんかでたらめを言っているようにしか聞こえないのですが。
もしよろしければ正常に戻すための対処方みたいなものも教えていただければ幸いです…
質問するべき場所では無いのかもしれませんが、本当にお願い致します。その方が困ってるみたいなので…

76 :デフォルトの名無しさん:03/05/25 20:32
取り敢えず、その犯人とやらの科白は痛すぎ。

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
むしろシムデブ

84 :デフォルトの名無しさん:03/06/01 02:15
>>73
DOSでも32bit命令は普通に使えるが?

85 :デフォルトの名無しさん:03/06/01 04:25
>>73
これだからクローズなOSは(ry

86 :デフォルトの名無しさん:03/06/10 16:59
なんか変な厨がわいちゃってるね。

87 :デフォルトの名無しさん:03/06/12 01:05


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ファンクションで自在に扱えるという盲点のデバイスもあります・・・

90 :デフォルトの名無しさん:03/06/17 23:49


91 :超初心者:03/06/17 23:58
Win32環境でI/Oドライバ作ってもアプリに実行権が渡るまで反応できないよね。
即在に反応するのであれば全てデバドラ内部で処理する必要あり。
でもDOSだと自由です。

92 :デフォルトの名無しさん:03/06/18 00:14
必要ならデバドラで反応すればいいじゃないの。
やり方知らんからどうでも良いけど。
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サポートを使えば素晴らしい速度になりますが、話がそれましたね。

94 :デフォルトの名無しさん:03/06/18 22:16
ageないの?

95 :デフォルトの名無しさん:03/06/19 02:05
何をもって速い/遅いって言っているかによるだろうけど。
反応(リアルタイム性)と速度(データレート)と幅(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
http://homepage.mac.com/hiroyuki44/

98 :デフォルトの名無しさん:03/06/19 17:38
>>96
必死だな(ワラ

99 :デフォルトの名無しさん:03/06/19 17:45
>>98晒しあげ

100 :_:03/06/19 18:10
http://homepage.mac.com/hiroyuki44/

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:\>


102 :デフォルトの名無しさん:03/06/19 19:42
>>96

キーデータの読み出し

割り込み INT 18H
入力 AH <- 00H
出力 AX <- キーコードデータ (AH <- キーコード、 AL <- キーデータ)

103 :96: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⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

24 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)