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デフォルトの名無しさん
ちんこしゃぶれ