- 1 名前:デフォルトの名無しさん [03/03/07 10:45]
- ハードウェアを直接叩くのはやっぱり楽しい!
DOSにおける開発について語りましょう。
- 449 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 19:37:18 ]
- DOSでプログラミングじゃなくてDOSをプログラミングになってきた俺はどうすればいいんだろう・・・
- 450 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 20:55:13 ]
- >>449
用途によってはDOS互換OSもまだ需要があるから そのままがんがれ!
- 451 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 21:00:23 ]
- Dos Promptでシューティングでも作りたいんだが
なんか良い解説サイトとかない?
- 452 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 21:01:05 ]
- こことか超おすすめ
www.google.co.jp/
- 453 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 21:31:34 ]
- 俺はDOSエクステンダを自分で作ってみたい
っていうか、どういう処理をしてるんだよ 気になって夜も眠れん
- 454 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 22:02:59 ]
- その時の気分でプロテクトモードとリアルモードを切り替えてるんだよ
- 455 名前:デフォルトの名無しさん mailto:sage [2005/07/31(日) 22:07:13 ]
- >>453
ttp://www.vector.co.jp/soft/dos/prog/se008332.html
- 456 名前:453 mailto:sage [2005/08/01(月) 22:08:39 ]
- >>455
おーサンクス心の友よ
- 457 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 23:41:51 ]
- こっちのほうが詳しそうな人がおおいので、質問させていただきます
PCIデバイスのプログラミングやっとります。 PCIデバイスで割り込みを使うには、PIC(割り込みコントローラー)の、モードをLevelトリガーモードに しないといけないようです。そのためPCIバス対応の割り込みコントローラー(APIC?)には、IRQを部分的に Levelトリガーモードにする機能があるようなのですが、いくらぐぐっても らしき資料が見つかりません。 どなかた助けてください、お願いします
- 458 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 00:20:43 ]
- 適当にハード関連の本を十冊くらい嫁
- 459 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 09:58:25 ]
- >>458
何もしらんくせにええかげんなこと書くなよ...
- 460 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 16:21:32 ]
- >>457
まずはそのデバイスがedge-trigger使えるかどうか調べてからにしな
- 461 名前:457 mailto:sage [2005/08/19(金) 19:32:06 ]
- ここで聞いた俺が馬鹿だったわ。Linuxのソースコードでも読むことにする
あばよ >>460 Edge-triggerはPCIデバイスでは使えない、PCIデバイスは全部Level trigger
- 462 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 21:00:37 ]
- つか、DOSでPCIバス叩いてた奴なんて少数派だと思うぞ。
- 463 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 21:41:23 ]
- >>461
YMF7x4のFM音源割り込みはモロにIRQだったけどなw INTなんか使ってねーよ
- 464 名前:デフォルトの名無しさん mailto:sage [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用の別のやり方があるそうなのだが...不明
- 465 名前:464 mailto:sage [2005/08/19(金) 22:19:20 ]
- ごめん間違えた
(誤)PCIのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ (正)PCのIRQ割り込みは基本的にEdge trigger、しかしPCIの場合はこれをLevel triggerにしないとだめ
- 466 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 11:46:50 ]
- >>464
まずはdatasheet読もうぜ 440BXとかその辺のヤツだけど役に立つだろ ('A`)ノシ www.intel.com/design/intarch/datashts/290562.htm
- 467 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:38:39 ]
- >>466
Thx!、そうか、Intelの本家ページを探せばよかったのか!... やはり0x4D0, 0x4D1の二つのポートを使うらしい。ただしIRQ1とIRQ2は絶対、Edge triggerで Levelには変更できないそうだ、ありがとう!
- 468 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 22:34:31 ]
- >>467
お前英語読めねーの? 思い切り書いてあるんだが。
- 469 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 10:23:06 ]
- >>468
だから、上のマニュアル読んで言ってるんじゃないか。ああ、おせっかいだったか悪かったな。 「やはり...」の文脈の流れから見てわかんねーの?半島の方ですか? 後それからIRQ1,2に加えて8,13も無理みたいだな。
- 470 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 10:30:18 ]
- なにこれしきのことでファビョってるんだ?
- 471 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 12:35:44 ]
- DOS使いはレベルが低いね
- 472 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 13:16:05 ]
- IBM PC DOS 7.0J/V(または 2000) で REXX のプログラムの話は出て来ないものか。
- 473 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 13:29:58 ]
- >>467
16bit 環境でプログラムですよね?(プロテクトモードはよく知らないので) ISA時代で使われていたテクニックそのままで良いですよ。 強いて違いを挙げるとすれば、 ・大抵のPCIボードは、割り込みステータスレジスタがあり、これをクリア しないと、割り込みハンドラからIRETしても、割り込みハンドラに再突入 する。 ・PCIボードは、ISAボードと違い、割り込み共有可能。 つまり、 割り込みハンドラに突入=自分のPCIボードへ割り込みが入った とは必ずしも言えない。 ・PCIコンフィギュレーションレジスタを弄って、IRQを書き換える時、 レガシーデバイスと共有できない点に注意。 (レガシーデバイスは、レベルトリガじゃないのが、ほとんど) まぁ、こんな所ですかね。 ところで、PCIボードを制御したいって、制御対象は産業用ですか? 産業用なら、メーカーから何がしか情報が出てませんかね?
- 474 名前:デフォルトの名無しさん mailto:sage [2005/08/23(火) 02:01:32 ]
- >>473
産業用ではありませんNE2000互換のNICの制御を目的としております。 >割り込みステータスレジスタがあり、これをクリア >しないと、割り込みハンドラからIRETしても、割り込みハンドラに再突入 >する。 なるほど、Levelトリガーゆえの挙動ですね。肝に銘じておきます。 あと、追加質問で大変申し訳ないのですが、LevelトリガーはEdgeトリガーとは EOI発行のタイミングが異なると小耳に挟んだのですが、そこらへんは どうなんでしょうか?
- 475 名前:デフォルトの名無しさん mailto:sage [2005/08/27(土) 10:52:04 ]
- >>474
遅くなってすんません(週一で巡回しているもので)。 > あと、追加質問で大変申し訳ないのですが、LevelトリガーはEdgeトリガーとは 厳密な内部の違いになると あまり自信は無いです。 基本的には、割り込み処理を抜ける前に EOI で十分です。 (優先順位の高い割り込みへの割り込みを許す為に、先にEOIを発行するって ワザもありとは思いますが、8259を更に弄る必要が無かったっけ?) > NE2000互換のNICの制御 プログラムが主目的でなく、通信が主目的なら、NICに関して言えば、 メーカーさんから NDISとか呼ばれている DOS用のドライバが提供されて いると思います。 それを採用するのも一つの手ではあります。 (100kb程度のメモリを占有するのがネックですが)
- 476 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 08:33:40 ]
- >>475
>基本的には、割り込み処理を抜ける前に EOI で十分です。 わかりました、ありがとうございます。
- 477 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 19:19:03 ]
- INT13の使い方について質問です。
AX=0x4300でIDEのHDDを書き換えようとしたら、エラーが出ました。戻り値はAH=0x01でした。 調べてみるとパラメータ異常ということで、試しにAXに代入する値を0x4100に変えて、 それ以外はまったく同じ条件でまったく同じセクタを読み込んでみると正常終了します。 読み込みが可能で書き込みのできない条件というのが、今ひとつよくわかりません。 エラーの原因と対策を教えてください。 環境は、Win98SEの起動ディスク(DOS 7.1)の上で実行しています。DOS窓ではありません。 LOCKも事前に実行しました。 マザーのBIOSも確認しましたが、HDDを保護するような項目は見あたりませんでした。
- 478 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 11:34:04 ]
- >>477
HDDの容量は?
- 479 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 22:01:32 ]
- >>478
20GBです。 その後、試行錯誤してWinMeの起動ディスクから起動すれば、正常に書き込みできることが判明しました。 いずれのケースでもCONFIG.SYSは0バイト、ドライバ類は何も組み込んでいません。 何が違うのかさっぱりです。
- 480 名前:デフォルトの名無しさん mailto:age [2005/09/12(月) 22:48:40 ]
- 定期age
- 481 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 22:50:58 ]
- PentiumD使いの俺がきましたよ
- 482 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 22:52:39 ]
- シングルタスクOSでデュアルコアCPU...
- 483 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 22:53:54 ]
- >>481
そのPCはDOS専用機に汁!
- 484 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 21:04:28 ]
- モノにもよるが、標準的なデバイスなら大体おkなんじゃない?
最終的には実機でデバッグすればいいんだし。
- 487 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 20:24:01 ]
- ふつークロス開発
- 488 名前:デフォルトの名無しさん mailto:sage [2005/09/19(月) 11:38:44 ]
- つ[ハンマー]
- 489 名前:デフォルトの名無しさん [2005/11/06(日) 16:37:59 ]
- DOSでPCIでネットワーク処理って楽しそうだな(w
すなおにLinuxとかのフリーライセンスなマルチタスクOS使っておけばいいのに。
- 490 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 18:52:03 ]
- やれやれ、最近の若いもんはPacket Driverも知らんのか・・・
困ったもんじゃて。
- 491 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:06:14 ]
- >>479
HDDの中身はWinMeでFDISKかけてないか?Win98かMeの時にWin2000との互換性取るためにVFAT他で仕様変わってるはず
- 492 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 17:36:23 ]
- >>490
そんなの使ってサーバ作りたくないなw
- 493 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 04:28:12 ]
- >>491
INT 13でのアクセスなので、ファイルシステムは関係ありません。 ぶっちゃけ、初期化されてないHDDでもアクセスできるというか、 そもそもFDISK自体がINT13でHDDを初期化しているわけですから。 結局のところ解決できず、HDDは今のところ放置です。 そのかわり、今はUSBメモリで四苦八苦しています。 手持ちのノートパソコンをUSBメモリからブートさせたいのですが、 BIOSがタコでサポートしているディスク形式(ジオメトリ)が限られているらしく、 なかなかうまくいかなくて。 HDDエミュレーションの仕組みをよく理解していないので、MBRにパッチを当てて 動作をトレースしているところです。
- 494 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 18:11:50 ]
- ボリュームの排他ロックってのが必要じゃなかったっけ? たとえMS-DOSモードでも。
Meでは廃止されたのかな
- 495 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/25(金) 01:12:49 ]
- スレ違いどころか板違い。このへんででも聞け。
pc8.2ch.net/test/read.cgi/win/1116131036/
- 498 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 11:02:22 ]
- あらら500
- 501 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 13:23:59 ]
- >>499
ググったらこんなの有った。あとはコマンド表見て考えれ >8253/8254の動作中のカウンタの値を読み出すには、一旦ラッチコマンドを使用して値を確定させます。 >8254は他に "Read-Back command"を用いることで、現在のカウンタの状態(動作モード、OUT信号)を >読み出すことができます。
- 502 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/12/22(木) 15:26:03 ]
- DOSで動的リンクについて詳しいサイトとかってあったら教えてください。
- 505 名前:デフォルトの名無しさん mailto:sage [2005/12/22(木) 17:40:04 ]
- AsciiNetの過去ログが詳しい。
- 506 名前:デフォルトの名無しさん [2006/02/09(木) 13:51:40 ]
- PCを再起動しようと思い、INT 19Hと書いたのですが、
電源が再投入される訳ではないのですね。 Windowsを再起動したときのように、BIOSの起動からやり直すのは どうすればいいのでしょうか?
- 507 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 15:23:07 ]
- >>506
JMP FFFF:0000
- 508 名前:506 [2006/02/09(木) 18:05:40 ]
- >>507
再起動できました! ありがとうございます。
- 509 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 15:07:46 ]
- ( ・∀・) | | ガッ
と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ (_フ彡 / ←>>30
- 510 名前:デフォルトの名無しさん [2006/03/29(水) 11:13:26 ]
- >175さんの質問に近いのですが質問です。
win2kProで現在動いているWindowsのプロセス(イメージ名)一覧 を返却するバッチを作りたいのですが、 win2kだとtasklistコマンド使えないみたいなので(XPProでは使えましたが) 困っております。どうすれば良いでしょうか?
- 511 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2006/03/29(水) 19:35:10 ]
- 510は区別がついてるがスレ違いってところだろ。
>>1の書き方見た感じ、VDMはHW直接叩けないからダメだとは思うね。
- 514 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 13:55:34 ]
- >515
手元に資料が無く、適当に思い出しながら書いてます。 少量なメモリのDMA転送を行う場合: 普通にmallocして使ってください。 大量(1MB以上とか)なメモリのDMA転送を行う場合: ズボラなやり方 →メモリマネージャを使ってなければ1MB以上は、DOSの管理外なので 直接書き込んでしまいます。 真面目なやり方 →HIMEM.SYSならXMS、EMM386.SYSならEMSというメモリ管理機構が 使えるので、これでメモリを確保して使います。 Ver.7以降なら、VCPIやDPMIもデフォルトで使えるかも知れません。 (そうでなくても、そういうものが使えるマネージャが大抵用意されてます)
- 517 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 14:04:08 ]
- >515
補足です。 Linuxと違って、DOSは全て特権モードで動いているようなものです。 カーネルは全く保護されていません。 (カーネルが置いてあるエリアを適当に0クリアすれば、いつでもクラッシュできます) メモリも全く保護されていません。 (メモリ例外は起きません) 安心?して、自由きままなコードを書いて下さい。
- 518 名前:515 mailto:sage [2006/05/13(土) 15:15:42 ]
- >>517
mallocで大丈夫なのですね。 HDDにDMA転送でセクタ書換を行っていたのですが、 試してみるとエラーとなってしまったのでmallocの問題とばかり 思っていました。 原因は別のところにありそうなのでもう少し調べてみます。 ありがとうございました。
- 519 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 15:26:30 ]
- BIOSの領域ってDOSからアクセスできますか?
- 520 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 15:47:07 ]
- >>516
XMS/EMS(除HMA)は物理アドレス取れないからアウト。 多分DPMIでも取れない。 よってズボラなやり方推奨。
- 521 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 16:20:48 ]
- >>519
BIOSだろうがI/Oだろうがアクセスしまくりです。
- 522 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 21:39:08 ]
- 計算した数値をコンソールに出力したいのですが、どうすればいいのでしょうか?
- 523 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 21:50:43 ]
- >>522
所謂DOS窓のことならスレ違い。
- 524 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 22:03:34 ]
- >>523
どこで聞けばいいのでしょうか?
- 525 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 23:45:18 ]
- >>524
Win32APIスレ辺りかな。つーか、聞く前に探すように。
- 526 名前:デフォルトの名無しさん mailto:sage [2006/05/14(日) 00:25:47 ]
- >>525
サンクス。
- 527 名前:515 [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以降の内容が 書き込まれてしまいます。 どこかにサンプルソースとかないでしょうか。
- 528 名前:515 mailto:sage [2006/05/15(月) 12:56:03 ]
- >>527
Open Watcomのスレがあったのでそちらで質問してみます。
- 529 名前:デフォルトの名無しさん mailto:sage [2006/05/15(月) 16:54:06 ]
- アセンブラの勉強をしようと思って、MASMでアセンブルしてTurboDebuggerでデバッグしよと
したら、Not a 32-bit Program と言われて拒否されました。 16ビット用のデバッガってあるのでしょうか?
- 530 名前:デフォルトの名無しさん mailto:sage [2006/05/15(月) 17:48:04 ]
- >>529
debug, symdeb, exdeb, 16bit用のTurbo Debugger等々
- 531 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2006/05/31(水) 21:46:08 ]
- >>532
32bitDOSアプリケーションを作るのには別売りのDOS Power Packが必要。 DOS Power PackはBC4.0or4.5用だが非公式にはBC5.0でも動く旨の文書がどこかにあったはず。
- 534 名前:532 [2006/06/01(木) 00:11:18 ]
- >>533
DOS Power Packはプロテクトモードなので今回は使えないんです。 16ビットのままでもなんとか使おうと思っているのですが、__int64が未定義エラーに なってしまいます。 16ビットコンパイラで64ビット整数を扱うのは無理なのでしょうか???
- 535 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 23:10:08 ]
- 非プロテクトモードで動く32bitアプリってどんなアプリじゃ。
64bitINT型が使いたいだけってことなら、C++でlonglong型を実装すれば いいんじゃね?
- 537 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 06:54:15 ]
- x86でプロテクトモードじゃない32ビットアプリ
とか言ってるような輩は相手にするな
- 538 名前:デフォルトの名無しさん mailto:sage [2006/06/04(日) 16:35:09 ]
- リアルモードで32bitレジスタアクセスすれば32bitアプリ
・・・とは言わんよな、普通は。
- 539 名前:デフォルトの名無しさん [2006/07/23(日) 02:47:00 ]
- 最近のマザボでDOSを起動する時、EMSドライバがエラー起こす・・
対策方法とかあります? それとも諦めるしかない?
- 540 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 06:00:36 ]
- ウチは大丈夫
情報すくなすぎ
- 541 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2006/07/28(金) 22:45:49 ]
- >>539
これでダメならあきらめろ device=emm386.exe ram frame=D800 i=D800-E7FF
- 546 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 01:48:48 ]
- >>543
DOS 6.2までならロックいらないでしょ? >>492 が生DOSでも必要と言っているけどWin95(MS-DOS 7.0)からそうなったの? 資料はRalf Brown's Interrupt Listと msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_9jl4.asp
- 547 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 10:23:21 ]
- >>546
> msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_9jl4.asp それはメディアをイジェクトできないようにするロックだな。 int 25h とかで使うのは、Minor Code 4Ah, 4Bh の方。 FAT32にも対応させるなら、↓も見ておくべし。 msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/fat32_70z4.asp > >>492 が生DOSでも必要と言っているけどWin95(MS-DOS 7.0)からそうなったの? 自前でロックするか、lockコマンドでロックしておかないとエラーメッセージが出て DOSが停止したと思うが。アンカーミスってるようだがどこ指したかったんだ?
- 548 名前:546 mailto:sage [2006/07/29(土) 21:28:33 ]
- >>547
出したかったのは msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_50j7.asp?frame=true と >>494 だった。orz
- 549 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:17:16 ]
- DOS/V用の表計算やワープロ(エディタじゃない)ソフトを使いたいが
オークションでも出品されてない。 PC-98なら結構あるんだが 誰か作ってくれ!DOS用だからそんなに多機能じゃなくていい、むしろシンプルに! でも100行くらいしか使えない表計算なんていらないけどね
|

|