[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 02/13 08:07 / Filesize : 135 KB / Number-of Response : 736
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

懐かしのMS-DOSプログラミング



1 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 12:42:23 ]
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h

msg db '懐かしのDOS時代のプログラミングについて語ろうぜ',0dh,0ah,'$'

2 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 12:43:18 ]
DOS2.11の頃はDOS自体にmasmが付いていた。
Microsoft Cは98,000円もした。
29,800円で発売されたTurbo-Cにみんな飛びついた。
無料で配布されたLSI C-86試食版が大活躍してくれた。

3 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 12:45:10 ]
code segment
mov dx,offset AI_chan
mov ah,9
int 21h
mov ax 4c00h
int 21h

AI_chan:
msg db 'このスレッドは天才チンパンジーアイちゃんが立てたものといわれています。",10,13,'$'
msg db '関係者以外のカキコはご遠慮ください',10,13,'$'

code ends

4 名前:デフォルトの名無しさん [2010/04/21(水) 14:08:56 ]
2パスか3パスのコンパイラで
Phoenix Cとかなかったっけ?

5 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 14:13:16 ]
>>2
家にMSC/C++あるけどマニュアルとリファレンスが何冊も入っていて吹いた
箱でかすぎw CDもネットもない時代は大変だったんだなぁと

6 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 14:56:09 ]
MS-DOSプログラミング、って言うぐらいならDEBUGコマンドでやろうぜ
今でも何気に搭載されてるし

7 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 14:57:35 ]
今でもsymdebは手放せない

8 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 19:12:12 ]
DOSプログラミングは青春の思い出だな

9 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 19:12:38 ]
>>6
edlinも今も残ってるんだよね。
DOSの生みの親Tim Paterson氏への敬意なのかな。

10 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 22:42:19 ]
うちはQuickCだったな。
これでCをある程度覚えた。MS-Cと互換性が高かったのも良かった。
日本語コメント付きのサンプルソースは実に役立った。
DOSの時代にCを覚えておいて正解だったと思う。
今のWindowsプログラムは複雑で何が何だか分からない。

SYMDEBは便利だったなー。
これを弄り回して8086の機械語を覚えた。
なるほど8086は2つの数値を組み合わせたアドレスでMBをアクセスするのか、とか。




11 名前:訂正 mailto:sage [2010/04/21(水) 22:44:18 ]
誤) MB
正) 1MB

12 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:54:01 ]
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


13 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 09:42:43 ]
int 21h
の代わりに
call psp:50h
でもDOSを呼べたよね。


14 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 09:54:23 ]
>>2
LSI-C86試食版が安定してきたのはDOS3.1の時代以降だね。
初期は特に、sscanf()のバグが多くて指摘するのも大変だったw

15 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 22:47:03 ]
Cから覚えたんだけど、アセンブラのことがちょっと分かってくると、
ライブラリ関数が既に用意されてるものであっても、
わざわざintdosとかで得意げにCからDOSファンクションを呼んだりしたもんだ。


16 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 22:57:29 ]
Cの標準ライブラリを使わずに
敢えて似たようなものをアセンブラで自作して
それだけ作ってプログラムしたりな

17 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 12:00:14 ]
プログラムの終了はINT 20HでもOK。

18 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 12:52:16 ]
今ならDOSBOXとかあるから、趣味ならあえて時代に逆行してもいいと思う。
どの環境でも動くからね。

19 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:12:40 ]
ファンクション31hで常駐終了するけど、
常駐させたプログラムを開放するファンクションがないので
あれこれ探したもんだ。

20 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 07:15:19 ]
今のWindowsプログラムより、DOS時代の方が難しく感じるものの代表だな。
>TSR



21 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 18:46:59 ]
LSI-C86はコメントが標準のしか使えないのが今にしてみるとめんどい
その代わりネストが可能だけど

22 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 09:35:59 ]
>>20
常駐するだけなら難しくないだろ。Biosフックも今で言うAPIフックみたいなもんだし。
そんなことよりも、常駐アプリでどうやってメモリを確保するかの方がw

PC-98限定で、裏VRAMをバッファに使う猫なんて常駐物があったけど、
同じく裏VRAMをバッファに使う一太郎とバッティングするもんだから
「ウイルスだ」なんて騒ぐマスコミまで出てくるなんて楽しい時代だったね。

23 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 12:56:32 ]
常駐開放=ベクタ復帰とメモリ開放

24 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 18:23:49 ]
あの時代は、どうやれば1byteでも減らせるかを考えてた。

25 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 23:45:58 ]
CP/M互換のシステムコール方法もあったよな。
CL=ファンクション番号でcall 0005hだったかな。

26 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:40:34 ]
CodeViewなんてのもあったね。
持ってたけどPC-98用なので今では使えない。
結局LSI-C + symdebの世話になってる。

27 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 09:25:20 ]
Programer's workbench

28 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:43:10 ]
DOS時代は (今も?) 統合環境なんて使わないのが常識でした。

29 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:07:54 ]
VzがあればIDEなんて不要

30 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:35:44 ]
俺はmifes派



31 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 09:53:30 ]
Ezカスタマイズ版やNitEmacsカスタマイズ版を使っていたのはいい思い出。

32 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:18:13 ]
EMSとかXMSとかの規格が出て来て、DOSプログラムのキャパが増えた時期が楽しかった。

33 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:23:38 ]
32bit DOS Extenderを使ったら、セグメントの呪縛から解放されて、天国にたどり着いたかのような気がした

34 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:35:57 ]
メモリモデルなんて言葉が懐かしい。
スモールでもかなりのことが出来たな。

35 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:05:23 ]
しかしスモールモデルのみとは言え、他に何の制約もないコンパイラを無償配布した
LSIジャパンの功績は大きかったと思う。

36 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 16:34:41 ]
LSI-C試食版に付いていたcppとmakeとlccのソースは何度も読み返した。
やはりプログラミングを覚えるには、他人の書いたある程度の規模のソースを読むのが一番。

37 名前:デフォルトの名無しさん [2010/05/04(火) 23:26:25 ]
TURBO C Ver1.5つかってたときは、テキスト表示に
cprintf()やら、gotoxy()やら使って
ドラクエのメニューごときみたいなん作ってたなぁ

38 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:50:13 ]
TCのconio.hって思いっきり98依存の関数が多かったな。
text何たらとか。

39 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 10:32:02 ]
symdebよりdebugの方が使い出がある。
バッチコマンドからバイナリ作るとか。
ハードディスクのダイレクトアクセスとか。

40 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 10:34:14 ]
< バイナリ
---
> バイナリファイル



41 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 12:01:36 ]
>>35
βテストさせられたとも言える。標準ライブラリの出来が今ひとつだったからね。

>>38
IBM-PC依存の関数も山ほどあったような。

>>39
なんと言っても圧巻はX-ISH。
バイナリファイルのエンコーダ/デコーダであるISHの初期バージョンはバッチファイルによる実行モジュール作成方式で配布された。
# 今と違って、標準では転送ツールもデコーダがないから先ず最初にデコーダを作る必要があった。
# 今ならWebブラウザがバイナリファイルを受信できるしメールクライアントも添付ファイルのデコードはできて当然だけど。

42 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 13:40:43 ]
>>39
symdebで W100 2 0 1 やリダイレクトもできるぞ
(でも意味判らず試すなよ)

43 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:18:42 ]
>>41
DOS/V用Turbo-Cはお目に掛かったことがないな。日本でも売られてたの?

44 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 03:03:00 ]
>>43
DOS/V用じゃなくて、IBM-PC/AT互換機用だよ。DOS/V用は記憶にないけれど、あったとすれば日本専用でしょ。
# DOS/V自体が(事実上)日本専用なんだから。

45 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 07:02:36 ]
失礼。当時はAT互換機=DOS/V機だったから。

で、ということは英語版?

46 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:15:54 ]
マニュアルが日本語になっていて一部メッセージが日本語になっただけの翻訳版だったかな?
もう忘れたよ……

47 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 13:13:04 ]
Turbo-CのAX版かもね

48 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:30:01 ]
TCのマニュアルは物凄く親切な記述だったように覚えてる

49 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:52:39 ]
あの頃のBolandはよかったな
ライブラリのバグも少なかった気がする

パソ通の時代から、こういう「おやじ御用達スレ」はなくならんなw

50 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:52:33 ]
98用のTurbo-Cに入っていたpc98mouseという関数。
「Microsoft形式のマウスドライバには対応していません」
アンチMSぶりが良く現れてたな。



51 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 23:54:44 ]
98用DOS5.0が出たとき、NEC自身も、mouse.comはDOSシェル専用だから、
市販アプリでは使えないと明記していた。
でも実際にはMS形式のマウスに対応したアプリも多かった。

52 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 17:46:37 ]
NEC版、MS版マウスドライバの見分け方
マウス初期化 (int 33h ax=0) のbxの値で見分けられる。
MS版はbxにボタンの個数が帰ってくるが、NEC版は何も返さない。
予めbx=0としておけば、コール後bx==0がNEC版ドライバ。

53 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:03:58 ]
マウス使うのってドライバ経由が普通だっけ?
俺はなんかI/O叩いて使ってたような気がするが
さすがに記憶が曖昧すぎて覚えていない

54 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 22:37:49 ]
マウスドライバやEMSドライバは、一見風変わりなドライバだ。
組み込み後はDOSを経由せずにアプリから直接ドライバとやり取りする。

55 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 07:20:40 ]
>>54
???

56 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 18:55:07 ]
多分、普通のデバイスだと
アプリ -(int 21h)- DOS -(デバイス呼び出し)- デバドラ
だけど、マウスやEMSは
アプリ -(int xxh)- デバドラ
でアプリとデバドラが直接やりとりすることを挙げてるのだと思う。

57 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 09:49:35 ]
TCのインラインアセンブリは擬似命令だろうが何でも使えるので
おおっと思ったが、実はアセンブリソースを吐き出して
コンパイラはノータッチ、後はアセンブラ任せだった。

つまり、インラインアセンブリを使う場合アセンブラが別途必要。
(廉価版のTurboCには付いてなかったんだよ)

58 名前:デフォルトの名無しさん [2010/05/25(火) 23:01:03 ]
xor ax,ax

59 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 06:02:27 ]
>>58
はるか大昔、それを得意気に使いまくってた上司に sub ax,ax を見せたら、
「そんな分かりにくいコーディングする奴があるかバカヤロォ」と怒られますたw

60 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 09:37:56 ]
>>59
得意も何も、今でも使われている常套手段じゃないか。
怒るのは問題かもしれないが、フラグに影響を与えまくる減算を使うのは間抜けだろう。



61 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 09:52:29 ]
はじめはxor使ってたが、ほとんどのCコンパイラがsub使ってたので途中からsubに変えた。
xorでもフラグは動くんじゃね?

62 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 09:56:38 ]
>>61
「ほとんど」をkwsk。
このスレなんだから、まさかとは思うがx86用じゃないなんて言わないよね。

63 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 10:01:32 ]
>>60
今でこそ常套手段だが、大昔のヘボPGには思いも及ばぬテクだったんだよ。
年代を言うとまた馬鹿が荒らすから言わんが。
そもそも、これを使う文脈でフラグに影響がどうたら言う時点で(ry

64 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 13:18:42 ]
DOS時代からMSCはSUBだったのは覚えている。
アセンブラのソースではよくゼロクリアにXORが使われてたが
8086だったらクロックや命令長で有利とかは無いはずだから、
Z80とか8080時代に何かあったのだろうか。

65 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 14:07:49 ]
>>64
8080/Z80だと命令長はXORもSUBも1バイトだし、クロックも最小だった。
でもなぜか、周りではみんなSUBじゃなくXORを使ってた。
もちろん、>>60の言うようなフラグどうたらの問題ではない。
(フラグを変えたくないようなレアケースではMOV命令を使ったから)

多分…小学校低学年で習うSUBに比べてXORはずっと高度な概念だから、
それを使う方が何となく「カッコ良かった」のかも知れないね。

66 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 23:26:13 ]
一応、理屈の上ではxorの方が
各bitの出力が他のbitに影響を与えない分
回路的には簡単になるはず。

だからといってクロックや消費電力に差がつくかというと
うーんという感じなのだけど。

67 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 23:47:53 ]
このサイト面白いよ。
ttp://hp.vector.co.jp/authors/VA003988/asm.htm

68 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 20:34:59 ]
ゼロクリアに xor 使うのは、決まり文句みたいなものだからね
subより分かりやすい

69 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 21:46:13 ]
subの方がxorより複雑そうなイメージだから
何となくxorの方を使ってしまう
まあ実際速度的に差はないんだろうが

70 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 14:53:15 ]
lsic86試食版はマニュアルがコンパクトにまとまっててよかったな。
標準ライブラリとかあのテキストファイル一枚でそうとう勉強になった。



71 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 23:52:57 ]
x86系なのに、引数渡しにレジスタを使うのは止めて欲しかった

72 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 22:38:33 ]
影の薄かった命令・・・LEA

73 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 22:53:41 ]
アセンブリプログラマにはたいへん有難い命令だが

74 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 06:14:22 ]
8086には、独立したNOP命令がない。(8080にはる)
NOPニモニックは、単にXCHG AX,AXの別名。
まぁ、実用上それで別に問題ないわけだが…
他にも、こういうCPUはたくさんあるんだろうね?

75 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 09:11:10 ]
jmp $+2がnop代わりとか。

76 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 22:40:33 ]
mov ax,axとかcmp bx,bxとか、使い道のない命令がいくつかあるね。
Z80だとLD (HL),(HL)はHLTに割り当てられていた。

77 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 22:44:00 ]
LEAは頻出じゃね?

78 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 00:04:55 ]
jmp short $+2で時間稼ぎ良くやったな

79 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 21:24:35 ]
NOPは3クロック、ショートJMPは11クロックくらいあったっけ確か。

80 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:58:44 ]
影の薄かった命令・・・LDS、LES



81 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:21:48 ]
おまいの頭皮のようにな

82 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:31:09 ]
どうせ面の皮は厚いんだろうけどねw

83 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 11:24:35 ]
Win95の頃になっても、config.sysにfcbsなんてパラメータがあるのに驚いた。
その時代までFCBファンクションなんか使っていたソフトあったのかな。

84 名前:デフォルトの名無しさん [2010/06/30(水) 22:25:20 ]
int 29hって何だろう・・・
int 2ehって何だろう・・・

DOSの非公開機能って結構あったよね。

85 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 13:12:01 ]
ウイルスにフックされたのか?
((((;゚Д゚))))ガクガクブルブル

86 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 13:22:14 ]
と思ったら簡単に情報が見つかった(汗)
INT 29h 1文字出力
INT 2Eh DOSコマンド実行

87 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 16:51:04 ]
つ Interrupt List

ttp://www.cs.cmu.edu/~ralf/files.html
昔DLしてよくお世話になったけど、今じゃWebでも見れるんだな。
ttp://www.ctyme.com/rbrown.htm
検索できて便利…と思ったら、検索が動かんorz

88 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 22:40:40 ]
MIFES

89 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 17:18:46 ]
俺はVz+VJE(or WXP)派

90 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:40:58 ]
Vz+WXII



91 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:43:14 ]
DOSエクステンダー(苦笑)

92 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:45:21 ]
emm386.sys
HIMEM.SYS

93 名前:1 mailto:sage [2010/07/02(金) 22:48:06 ]
mifes派

94 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 22:49:40 ]
emm386はexe

95 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 00:12:14 ]
.sysの頃もあった。

96 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 09:48:22 ]
デバドラとしても、TSRとしても、外部コマンドとしても使える。
そんな器用なプログラムが流行ったな。

97 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 09:55:51 ]
kwsk

98 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 12:50:32 ]
Vz Editor のことか!!

99 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 13:06:04 ]
WinXPだが、Vzは今でも時々使ってるよ。
あの軽さと独特の使い心地は、そう簡単に手放せるもんじゃない。

100 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 23:57:18 ]
なぜ時々?

いつも使えよ



101 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 00:14:59 ]
TSRでありながらブロックデバイスとして登録される
smartdrv.exeも変わったプログラムだった。

102 名前:訂正 mailto:sage [2010/07/05(月) 09:35:10 ]
98依存だけど、懐かしい思い出が甦るサイト
ttp://www2.muroran-it.ac.jp/circle/mpc/front/old1/program/pc98dos/

103 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 12:30:21 ]
>>100
いや普段はViだからな。
あれとVzは用途がまるで違う。どっちか一つだけにはできない。

104 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:20:12 ]
>103
どんなとき、viよりvzが便利なの?
俺もviユーザなので、ちょっと気になった

105 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:00:50 ]
俺はDOS付属のedit派。
Windowsメモ帳とほぼ同じメニューだからとっつきやすい。

106 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:48:56 ]
男ならedlin

107 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 19:36:14 ]
真の男ならsymdeb

108 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 19:41:31 ]
と思ったら最近のOSには含まれてなかった(汗)
かわりにdebugを実行してみたら16ビットモードで起動した

109 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 20:27:55 ]
viユーザにとってはedlinの方がeditより使いやすい

110 名前:デフォルトの名無しさん [2010/07/08(木) 21:36:39 ]
>>109は馬鹿な奴



111 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 22:53:47 ]
>>105
editって中身はQuickBASICから言語機能を外したやつだったっけ確か。
edit.comから起動される本体がqbasic.exeとかなってたような気がす。

112 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:31:11 ]
にしてもedlinってのはなあ。。。

113 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 00:13:27 ]
お前のeditだと、起動してから使えるようになるまで約10秒。

ところがedlinだと起動から「ファイル名を指定してください.」まで
約0.1秒。こいつは速い!


114 名前:デフォルトの名無しさん [2010/07/09(金) 09:45:10 ]
男なら type con > main.c

115 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 09:49:46 ]
緊急時の
copy con autoexec.bat

copy con config.sys

ときどきやった

116 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 13:13:12 ]
ま、一度はやるわな

117 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:19:03 ]
暇だからDOS用の超軽量エディタでも作るか…

118 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 21:15:59 ]
edlinが14KBか…

>117
10KBで頼む

119 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 22:29:34 ]
メルコのMelwareとかに付いてた簡易エディタがあったよな
と思って調べたら36kBもあった。
中身を覗いたらMetaWare Cという余り聞きなれない処理系が使われてた。

120 名前:デフォルトの名無しさん [2010/07/23(金) 22:32:20 ]
Z80から8086に入ってきたとき、86には条件リターンがないのに驚いた。



121 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 22:39:19 ]
movでフラグが変わらないとか

122 名前:デフォルトの名無しさん mailto:sage [2010/07/24(土) 04:44:50 ]
>>120
いやむしろ俺は、8080/Z80系をはじめて触ったとき
条件Jump/条件Call/条件Returnと揃ってることの方に驚いたが…

123 名前:デフォルトの名無しさん [2010/08/01(日) 22:40:21 ]


124 名前:デフォルトの名無しさん [2010/08/25(水) 18:59:52 ]
保守

Z80ではIX、IYを使うと笑われたから、
86でもSI、DIはストリング命令以外では使わなかったな。

125 名前:デフォルトの名無しさん mailto:sage [2010/08/25(水) 19:21:15 ]
IXやIYを使うだけで嗤う香具師はおらん
IXやIYをアキュムレータのごとく使う香具師が嗤われる

126 名前:デフォルトの名無しさん mailto:sage [2010/08/25(水) 20:10:28 ]
IX や IY はクロックをおもいくそ食うと思っていたが、HD64180 なんかでは状況はかわったのかなあ?

127 名前:訂正 mailto:sage [2010/08/25(水) 22:50:37 ]
8086系のCでも、SIとDIはレジスタ変数として使われる程度だね。

128 名前:デフォルトの名無しさん mailto:sage [2010/08/26(木) 04:34:12 ]
ぷげら

129 名前:デフォルトの名無しさん mailto:sage [2010/08/26(木) 10:50:31 ]
>>127
誰が作ったんだ?その糞コンパイラはw

130 名前:デフォルトの名無しさん mailto:sage [2010/08/27(金) 13:27:04 ]
ストリングス転送命令は途中からあまり使われなくなったような気がする。



131 名前:デフォルトの名無しさん mailto:sage [2010/08/27(金) 16:14:18 ]
UNICODEが流行ってASCIIZじゃなくなったからだろ

132 名前:デフォルトの名無しさん mailto:sage [2010/08/27(金) 16:19:38 ]
ブロック転送命令は8/16/32bit長のどれも使えるぞ

133 名前:デフォルトの名無しさん mailto:sage [2010/08/28(土) 08:31:25 ]
Pentium以降、単純機能の命令が非常に高速化されたので
ストリング転送命令のような複合命令を使う理由がなくなった。
VC++のmemcpyの実装を見ると使用可能ならxmmレジスタを使ってる。

134 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 22:51:28 ]
CTSって何する命令?
symdebで逆アセンブルすると時々出てくるんだけど。

135 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 23:14:54 ]
>>134
ClearToSend……ってギャグはさておき。
コードは幾つよ。CTSなんて記憶にないわさ。

136 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 23:41:19 ]
>>134
STC(SeT Carry flag) じゃなくて?

137 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 00:04:59 ]
>>135
0fh。

symdebのアセンブラで
db 0fh
db 00h
とやって逆アセンブルすると
0F00 CTS 00
と出てくる。

138 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 00:41:43 ]
>>137
そこには 386以降の命令が詰まっているような気が。
たしかにCTS ってなんのつもりだったんだろう?

139 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 07:22:51 ]
>>137
symdebの時代なら8086を想定しているだろうから、0fは未定義だね。
8086って、未定義命令割り込みってあったっけ? あればAPIでも用意されているとか。

140 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 13:37:37 ]
ない。
286以降でなかったかのう。





141 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 14:46:27 ]
0fhって8086ではpop csだったような気がす。
86だと実際にpopが行われるから、予めpush csしておくようにと
CPU判定方法に書いてあった。

142 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 20:47:36 ]
pop cs は、F0じゃないか?
286以降ではプリフィックスとして使われて
いわゆるF0バグを招いたやつ。

143 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:44:25 ]
0F0Hは8086もlock prefix


144 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:56:48 ]
push cs 0eh
push ds 1eh
push es 06h
push ss 16h

pop ds 1fh
pop es 07h
pop ss 17h

なので、pop csは0fhだったと思う。

145 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 17:58:34 ]
8086:
AX:汎用加減乗除計算用
BX:準汎用加減乗除計算/アドレッシング補助
CX:準汎用加減乗除計算/カウンタ(条件分岐命令、ループ命令で使用)
DX:汎用加減乗除計算用
SI:メモリ転送元インデクサ
DI:メモリ転送先インデクサ
BP:スタックフレーム用
SP:スタックポインタ
それぞれけっこうギチギチに役割がふられており実は自由度は少ない。
但し多少の加算減算程度は16ビットレジスタには許可されてた
程度。よって完全にコンパイラ向け。経験知でオプティマイズできる
余地は余り無い。
しかし当時はアセンブリ職人と自称する人は会社に一人や二人は居て
腫れ物に触るように扱われてたっけW

146 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 13:30:22 ]
>>145
>但し多少の加算減算程度は16ビットレジスタには許可されてた
>程度。
AL/AHとかの8ビットレジスタにも加減乗除演算が定義されてた(る)件

>よって完全にコンパイラ向け。
コンパイラ作成者泣かせなプロセッサと聞きました。(オプティマイズ
が難しい)

147 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:17:21 ]
レジスタ割り当ては面倒だから、使い方が固定されているなら
むやみに凝るのをやめて機械的にやるのも手だと思う

148 名前:デフォルトの名無しさん [2010/10/12(火) 23:11:58 ]
保守

149 名前:デフォルトの名無しさん mailto:age [2010/10/13(水) 21:45:06 ]
大阪地検のFD書き換え事件って、笑っちゃうよね。
件(くだん)の検事も上司も、パソコンのことをなんにも知らないんだからね。
ミスであんな書き換えが起こることなんて100%あり得ないのにね。


150 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 23:31:55 ]
>>149
というか戻せばいいものを。



151 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:31:35 ]
>>149
言い訳としてはアホだけど
嘘も吐き通せば無罪だからな
戦略的には勝利だろ

152 名前:デフォルトの名無しさん [2010/10/16(土) 23:48:21 ]
INT 21hの内容ってどこにあるんだ?
あとINT 21hでググると変なページが出るんだが

153 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 00:55:40 ]
>>152
ググったら一番上に来たよ…?
ttp://home.impress.co.jp/catalog/impress/bk4615/c0302.htm

変なサイトの方が気になる。これ?
ttp://int21h.jp/

154 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 01:10:11 ]
こっちのが詳しいかな。
www.ctyme.com/intr/int-21.htm
つっても、殆どは使われないものばかりか。

155 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 09:48:22 ]
>>153
そのページ
OllyDbgの画面に似てるしアクセスカウンターみたいなのもついてる

>>153,154
INT 21hの動作じゃなくて
DOSのなかにある機械語のこと

156 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 10:30:53 ]
新しい概念: DOSのなかにある機械語

157 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 11:15:17 ]
INT 21hってカーネルとかプログラムの中にあるんじゃないの

158 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 11:45:58 ]
floppy disk の中にある

159 名前:デフォルトの名無しさん [2010/10/17(日) 11:48:14 ]
INT 21hがどのファイルのどこからどこまでがah=??のファンクションかを知りたい

160 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 11:50:05 ]
>>156
155じゃないけど、割り込みベクターも知らないなら黙ってりゃいいのに。
馬鹿丸出しだな



161 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 12:11:39 ]
debug使え

162 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 12:26:27 ]
いい年こいて説明の下手な奴が怒ってるな

163 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 12:31:19 ]
なんかトンデモ本作者と同じ論理だな。
相対性理論は俺に理解できないから間違ってる!、って奴だけどw

164 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 15:39:15 ]
いや、機械語ってのはDOSの中にあるとかないとかってもんじゃないだろ。
それとも何か? お前等の中には日本語が入っているのか?

165 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 16:01:37 ]
ベクタテーブル知ってるならそのアドレスからメモリダンプすれば
きっとDOSのなかにある機械語取れるよ

166 名前:デフォルトの名無しさん mailto:sage [2010/10/17(日) 21:02:05 ]
漏れの中の人はきっと日本語よりも細かいマイクロコードで動いてる希ガス

167 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 06:11:38 ]
intはBIOS Interrupt Callsの略。実装は基本的にBIOSの中にある。
21HはDOSへ制御を移す、いわばスーパーバーザコールやAPIコールに相当する。
今はFreeBIOSなんてのもあるから、気になる人はソース見るとよろし。
そのコード量の多さに驚くと思う。

168 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 06:32:48 ]
intに「BIOSの」なんて意味はねーよ。

intはただの割り込み。
ハードウェア割り込みの処理先として想定されていたものを
ソフト的に呼び出すことも可能にした、というだけ。

もちろん、Z80のRSTなんかもそうだが
それをソフト的に呼び出して特殊機能を実現する、というのは
かなり以前から行われていて
8086のintもその用途に使われることを前提に
割り込み番号の予約等を行っているのは確か。

169 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 07:04:02 ]
でっていう

170 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 08:12:04 ]
intに「BIOSの」なんて意味はねーよ。



171 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 18:48:32 ]
FreeDOSのソースとか見ればわかるの?

172 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 18:56:27 ]
MS-DOS ver6 のソースが流出した、
って本当なの?

173 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 22:55:24 ]
暇なときはdebugでDOSの内部を探検したもんだ。

174 名前:デフォルトの名無しさん mailto:sage [2010/10/19(火) 20:44:25 ]
最新のMASMってDOSに対応してるのかな

175 名前:デフォルトの名無しさん mailto:sage [2010/10/19(火) 20:55:39 ]
VC++ expressについてるmlでコンパイルできるが、linkが対応してない。
dos用のlinkを用意するとこんな感じでコンパイルできる。

ml /c /omf hello.asm
link /tiny hello.obj, hello.com;


176 名前:デフォルトの名無しさん mailto:sage [2010/10/19(火) 22:57:22 ]
NASMは直接COMファイルを吐けるよね。

177 名前:デフォルトの名無しさん mailto:sage [2010/10/20(水) 05:33:18 ]
でもDOSで動かせないの

178 名前:デフォルトの名無しさん [2010/10/20(水) 06:37:44 ]
リンカってLNK562かLNK563ってどっちを使えばいいの

179 名前:デフォルトの名無しさん mailto:sage [2010/10/20(水) 06:42:08 ]
>>178は自己解決しましたすいません

180 名前:デフォルトの名無しさん mailto:sage [2010/10/20(水) 07:25:02 ]
stubを抜くんだ



181 名前:デフォルトの名無しさん mailto:sage [2010/10/20(水) 08:43:42 ]
>>152
これで何を知りたいのか分かる奴がいたらどうかしているぜw

>>160
怒ってないでdebug使え

182 名前:デフォルトの名無しさん mailto:sage [2010/10/21(木) 12:33:37 ]
com作るのにexe2binはいらなくなったのか・・・

183 名前:デフォルトの名無しさん mailto:sage [2010/10/21(木) 23:07:21 ]
え、普通にtinyモデルで作ればcomじゃない

184 名前:デフォルトの名無しさん mailto:sage [2010/10/22(金) 00:38:49 ]
B社のコンパイラしか使ったことないひとは
そういう認識でいればいいんじゃない

185 名前:デフォルトの名無しさん mailto:sage [2010/10/22(金) 07:55:27 ]
まあ、B社はある意味偉大だからな。
少なくともL社よりはw

186 名前:デフォルトの名無しさん mailto:sage [2010/10/22(金) 23:56:49 ]
BCやTCは癖があったからMS系の俺は馴染めなかった。

187 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 00:35:37 ]
VCの方がもっと癖あったけどな

188 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 04:50:12 ]
>>186
はて、どんなくせが?

189 名前:デフォルトの名無しさん mailto:sage [2010/10/29(金) 23:28:25 ]
最近C#に凝り始めたんだけど、
beepというメソッドも用意されていて、本体のスピーカーを直接鳴らせたりする。
低レベルな操作に、ちょっぴりDOS時代を思い出したのであった。

190 名前:デフォルトの名無しさん mailto:sage [2010/10/30(土) 02:51:41 ]
print '\a'



191 名前:デフォルトの名無しさん mailto:sage [2010/10/30(土) 21:52:29 ]
>>189
音の高さや長さを自由に制御できるの?
ただ決まった音でピッと鳴るだけ?

192 名前:デフォルトの名無しさん mailto:sage [2010/10/30(土) 22:08:00 ]
>>191
Win32 API呼べば好きなようにできるよ
msdn.microsoft.com/ja-jp/library/cc428923.aspx

193 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 15:34:35 ]
>>192
スレ違い

194 名前:デフォルトの名無しさん [2011/01/10(月) 22:32:46 ]
保守

195 名前:デフォルトの名無しさん mailto:sage [2011/01/18(火) 22:35:33 ]
CDからDOS起動したいんだけど、ブータブルCDの作成がうまくいかん
FDの起動イメージ作成してそれをISOに変換して焼いても起動しない。
どうすりゃいいんだああああああああ

196 名前:デフォルトの名無しさん mailto:sage [2011/01/18(火) 23:30:15 ]
古いふる〜い ms-dos のプログラムが置いてあるところって、vector 以外にないですかね。
昔お世話になった ftp サイト(kuis とか)も、archie サーバーとかも、みんな逝ってしまった‥‥‥。
neko.com がほしいのですが。

197 名前:196 mailto:sage [2011/01/19(水) 01:32:48 ]
自己解決しました。
misdirection.oops.jp/2005/01/post_19.html

最近無性にふるい MS-DOS のプログラムが欲しくなりました。
nifty-serve のアーカイブを片っ端からダウンロードしておいて、MD にでも保存しておけばよかった。つくづく残念です。
いや、今からでも遅くはないから vector の dos のアーカイブを片っ端からダウンロードするべきか‥‥‥。

198 名前:デフォルトの名無しさん mailto:sage [2011/01/19(水) 01:45:54 ]
ああ
ねこじゃらしもあったぬ

199 名前:デフォルトの名無しさん mailto:sage [2011/01/19(水) 02:41:51 ]
大切なものは失ってから気付く

200 名前:デフォルトの名無しさん mailto:sage [2011/01/19(水) 13:33:24 ]
でもMDには保存しないほうが



201 名前:デフォルトの名無しさん mailto:sage [2011/01/19(水) 14:39:30 ]
>>195の件、俺も前から気になっていたのでちょっと調べてみた。
www.google.co.jp/search?q=fd%83C%83%81%81[%83W%82%A9%82%E7%83u%81[%83^%83u%83%8BCD%82%F0%8D%EC%90%AC%82%B7%82%E9

しかし、今現在に実際に欲しいのは、bootableCDではなくbootableUSBメモリ。
bootable-isoをUSBメモリ起動可能にするといっても
常にunetbootinが使えるわけじゃないだろうし。

が、冷静に考えたら、
もしかしたら単純にrawwriteかなんか使えばよいのだろうか
という気もしてきた。
試してないが。

202 名前:デフォルトの名無しさん mailto:sage [2011/01/22(土) 23:19:41 ]
PACK13000でも探したら?

203 名前:デフォルトの名無しさん mailto:sage [2011/02/04(金) 22:54:57 ]
うちにくればpack13000があるのに、残念

neko.comって何のプログラムだっけ?

204 名前:デフォルトの名無しさん mailto:sage [2011/02/04(金) 23:02:48 ]
nekoなつかしす

205 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 01:09:35 ]
TSR

206 名前:デフォルトの名無しさん mailto:sage [2011/02/20(日) 22:51:21.40 ]
全サーバ全板10ms単位の表示になったな。
PC-98では1/100秒の計測ができなかったっけ。
後の方のmateとかになってようやく。
それまではタイマ割り込みで辛うじて計測した。

207 名前:デフォルトの名無しさん [2011/03/09(水) 22:37:32.79 ]


208 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 18:58:01.30 ]
ある昔の本を読んでいて出くわしたのだが、PLink86って何だ?
BIOSで有名なPhoenix社の製品らしいが、
ぐぐってもオーバーレイリンカくらいにしか書かれてないし、
MS-Linkと具体的にどう違ったの?

209 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 21:31:54.18 ]
オーバーレイモジュールと言う過去の技術が使えたのです。

210 名前:デフォルトの名無しさん [2011/03/11(金) 09:08:02.60 ]
.OVL



211 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 12:55:44.41 ]
mslinkはオーバーレイ使ってもファイルは1つなんだよな。
1つのファイルの中に複数のexeが入ってる。

212 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 22:56:25.90 ]
阪神大震災の頃はまだDOSが主流だったぬ

213 名前:デフォルトの名無しさん [2011/03/11(金) 23:24:33.12 ]
win95が出たのは何月だっけ?

win3.1のマシンを買って、使いにくかったから
DOSマシンとして使ってた。
インターネットにつなげるときだけwinを立ち上げてたよ。

214 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 23:46:36.37 ]
11月くらいでなかったかのう


215 名前: ◆0uxK91AxII mailto:sage [2011/03/11(金) 23:46:49.05 ]
DOSだと、TEENっていうTCP stackがあったね。

216 名前:デフォルトの名無しさん [2011/03/15(火) 18:41:29.10 ]
へえ

217 名前:デフォルトの名無しさん mailto:sage [2011/03/15(火) 20:09:44.49 ]
NE2000とNOVELLのコンボ
あとカメレオンくらい

218 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 22:25:02.49 ]
PACK13000の後に
PACK19000goldなんてのが出てたんだな。
そういえば買ったような覚えがあるよ。

219 名前:デフォルトの名無しさん [2011/04/11(月) 22:52:54.14 ]
保守

220 名前:デフォルトの名無しさん mailto:sage [2011/04/12(火) 13:46:13.85 ]
Windows SDK使えばコマンドラインソフト簡単に作れるぞ
MASMも付属(コマンドはml.exe)
cl.exeに/FAオプション与えればアセンブラソースを出力してくれる
デバッガはWinDBGというデバッガが付属している
MS-DOSに戻らなくてもWindows上で似たようなプログラミングは可能
Windowsのコマンドプロンプトソフトは
MS-DOSと違い32bitコードになるので64KBのセグメントの壁も気にしなくてよい



221 名前:デフォルトの名無しさん mailto:sage [2011/04/12(火) 13:53:44.04 ]
空気が読めないひと

222 名前:デフォルトの名無しさん mailto:sage [2011/04/12(火) 14:53:38.05 ]
ここ見て懐かしくてまたやりたくなる人もいるだろうと思ってね

#include <stdio.h>
void main(int argc, char ** argv){
printf("Hellow World\n");
}

こんなCのソースをcl.exeでコンパイルしてそのままコマンドラインで実行できるしね
ここの住人には常識かもしれないけど



223 名前:デフォルトの名無しさん mailto:sage [2011/04/12(火) 15:07:15.18 ]
お客さん、お部屋をお間違えでは?

224 名前:デフォルトの名無しさん [2011/04/13(水) 05:49:42.56 ]
戻り値voidにしてるくらいだからネタだろ

225 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 11:10:06.51 ]
UNIXだと戻り値intが必要だがMS-DOSやWindowsならvoidでOK

226 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 11:28:45.10 ]
Windowsのコマンドプロンプトって
昔のTSRみたいなこと出来ないの?


227 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 11:49:50.75 ]
>>225
>UNIXだと戻り値intが必要だがMS-DOSやWindowsならvoidでOK
いや、その理屈はおかしい。

228 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 11:52:17.64 ]
厳密にはコンパイラの仕様なんだがMS-DOSやWindowsでよく使われる
コンパイラではvoidでも問題ないものが多くMS-DOSの解説では
mainをvoidにしてるケースは多い
GCCはintにしてないとたしか怒られたはず

229 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:07:49.61 ]
MS-DOS は void だと AX が戻り値になるんだろ

230 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:22:28.78 ]
exit(n)を使ってれば、voidだろうが問題なし。



231 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:31:23.18 ]
gccだとexit(n)使っていようが警告出るけどな
C言語の仕様ではintが正しいらしいがMS-DOSならどっちでもいいのでは?

「void main MS-DOS」で検索したら2番目にこんなページが出てきた
homepage3.nifty.com/aokura/phoebe/minitips.html

> 3. void main() と int main()
>
> 古い参考書では void main() が多く、新しいものでは int main() が多いようです。
> 個人で学習する範囲においては、return する値に特に意味を持たせる
> (他のプログラムやバッチ処理で利用する)つもりがなく、
> コンパイラがエラーにならないのであれば、別にどっちでもよいように思います。
> ただし、void main() にしたときは値を返さず、int main() にしたときは必ず値(0でよい)を
> 返しましょう。それが理解できていれば支障はないでしょう
> (ちなみに、私は int main() を使っています)。

232 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:37:47.02 ]
exit(n)なりmainのreturn値なりがどういう意味を持つのか
分かってない奴が、混じってるように見える。

233 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:42:10.33 ]
>>232
そのへんはコンパイラが吐き出すコード見れば問題ないことがわかる
voidを指定あってもコンパイラはちゃんと0を返すコードを吐き出してる

234 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:42:14.28 ]
>>230
>>222 は exit(n) を使っているのか?

235 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:42:37.14 ]
OSの違いとコンパイラの違いの区別がつかないのもいるな

236 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:43:14.56 ]
>>229
AXじゃなくてALだよ

237 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:52:21.59 ]
つまりこういうことですねわかります
#include <stdio.h>
int main(int, char **){
    return printf("Hello Work!\n");
}

238 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 12:52:59.69 ]
「void main MS-DOS」の検索でこんなページも出てきた

www.asahi-net.or.jp/~yf8k-kbys/int2.html
> 私の知る限りではMS-DOSとUNIXがプログラムの戻り値を
> バッチやシェルスクリプトで利用することができます。
>  ちなみにMS-DOSやUNIXでvoid main()とすると、
> まともなCコンパイラなら自動的にMS-DOSやUNIXに終了コードとして
> 0を返すコードを生成してくれます。
> つまりint main(){ return 0; }と同じことです。
>  でも、ANSIに極力準拠するよう作られているGCCなどはvoid main()にすると
> コンパイル時に警告エラーが表示されるはずです。
>
>  もともとC言語はUNIX環境での利用を非常に意識して作られた言語なので
> 戻り値がintである必然性もうなずけます。
> 何せUNIXのシェルスクリプトが強力なので複数のプログラム
> (ツール的なものが多いです。ファイルをソートしてマージして加工して...など)を
> 一括処理させることが多いのです。この様なシェルスクリプトにおいて、
> あるプログラム処理中にエラーが発生したときは、シェルの処理を中断したいことがあります。
> このトリガがmain()関数の戻り値と言うわけです。
>
>  そういえば、「main()関数の戻り値はintじゃなきゃ駄目だ!」と断言する方の多くは
> UNIX(Linux)ユーザですね。
> そして「別にvoidでもいいでしょ」と言う方の多くはWindowsのC++ユーザです。(^^;

239 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 13:48:01.32 ]
>>234
小学生みたいで微笑ましいが、まさか突っ込んだつもり?

240 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 18:02:38.45 ]
DOS3.1時代FDD環境でお世話になったLattice C パーソナル。
int mainのreturnでなにを返してもリターンコードは0になってたな。




241 名前: ◆0uxK91AxII mailto:sage [2011/04/13(水) 19:14:46.75 ]
>>226
OSにメモリ割り当てを任せた上で割込駆動するようなのは行えない。

>>236
ahに4cでalに戻り値だね。

242 名前:デフォルトの名無しさん mailto:sage [2011/04/13(水) 19:51:50.04 ]
ERRORLEVEL

243 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 00:08:37.65 ]
comファイルならバイナリエディタでも作れるね

244 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 00:28:21.31 ]
>>225
make が使えなくなるのですが?

245 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 22:12:33.86 ]
DOSプログラムを終了させる方法を4つまで覚えてるけど、
まだ他にあったかな。もう思い出せない。

int 21h ah=4ch al=(ExitCode)
int 21h ah=00h
jmp 0
ret


246 名前:デフォルトの名無しさん mailto:sage [2011/04/14(木) 22:41:21.68 ]
int 20h
csはpspを指していること。

247 名前:デフォルトの名無しさん mailto:sage [2011/04/15(金) 00:08:40.80 ]
psp:0にあるのはcdh, 20h。つまりint 20h。
ret命令やjmp 0はint 20hを実行して終わる。


248 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 21:45:40.90 ]
psp:0へのfar jmpなら、exeファイルであっても
csはpspを指さなければならないという制約をクリアできる。

249 名前: ◆0uxK91AxII mailto:sage [2011/04/17(日) 00:44:56.79 ]
jmp farよりも、xor ax,ax; int 21Hの方が短い気がするする。

250 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 17:36:05.08 ]
comファイルなら。
exeでもコードセグメントが64kB 1つしかないスモールかコンパクトなら可能



251 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 22:25:49.77 ]
スモールやコンパクトモデルでもCSはコードセグメントを指してる。
初期値がPSPなのはDS。

252 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 18:09:08.49 ]
とりあえずこういうことか。CP/M臭い・・
 .MODEL SMALL,STDCALL,NEARSTACK
 .DATA
PEXIT dd 00000000h
BDOS dd 00000050h
msg   db 'hello world !', 0dh, 0ah, '$'
 .STACK
 .CODE
 .STARTUP
 mov ax, es
 mov word ptr PEXIT[2], ax
 mov word ptr BDOS[2], ax
 mov dx, offset msg
 mov ah, 09h
 call BDOS
 jmp PEXIT
 END


253 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 19:55:13.72 ]
BDOSエントリは0005hでなかったか?


254 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 20:01:59.72 ]
CPM-80ではそうだな。
こっちのはDOS独自のCPM互換機能で0x0050で正解。
CP/M-86には無い。
int 21, retfがあるだけ。

255 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 22:49:59.27 ]
>>251
あー、そうか。
Cの場合pspを指してるのはdsか。

256 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 23:05:17.65 ]
お前ら何語を話してるんだ?w

257 名前:デフォルトの名無しさん mailto:sage [2011/04/19(火) 05:58:51.81 ]
爺共が久々に活性化w

258 名前:デフォルトの名無しさん mailto:sage [2011/04/19(火) 10:11:02.79 ]
システムコール呼び出しでcall 50hなんて使ったことないな。

259 名前:デフォルトの名無しさん mailto:sage [2011/04/19(火) 23:59:57.68 ]
親プロセス環境へのポインタ(非公開)がpsp:16h辺りにあったような気がする

260 名前:デフォルトの名無しさん mailto:sage [2011/04/21(木) 00:01:51.48 ]
親プロセスのPSPのセグメントかな。
PSP:16-17hだったと思う。



261 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 11:36:34.33 ]
>>218
cd8枚組だっけか
買ったよ
次はDVDで出るかもなんて冊子に書かれてた

262 名前:デフォルトの名無しさん [2011/06/20(月) 22:08:52.71 ]
LSI C-86は俺の青春。
何万円もしたCコンパイラが無料で手に入るなんて夢のようだった。

263 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 12:43:24.37 ]
でもパラメータのレジスタ受け渡しとかやってるのに
吐き出したコードの速度は遅いんだよな。

同じソースで吐き出したコードを比べると
Turbo-C > MS-C >> LSI-C
な感じ。

264 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 08:26:38.88 ]
LSI-Cの出力したアセンブリリストを加工するsedスクリプトを書いたなぁ。
それだけで数%は速くなった記憶が。

265 名前:デフォルトの名無しさん [2011/06/22(水) 21:09:03.72 ]
この時代は何でも出来そうな気がしていた

266 名前:デフォルトの名無しさん mailto:sage [2011/06/26(日) 22:16:55.97 ]
>>262
未だに使い続けてる俺

267 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 09:57:32.88 ]
問題
Turbo-C 2.0のメモリモデルの特徴を表にしてまとめなさい

268 名前:デフォルトの名無しさん mailto:sage [2011/07/09(土) 22:53:18.85 ]
MS-Cとほぼ同じだけど、ラージだとスタックはDGROUPの外なのが目立ったな。
ヒュージだとDGROUPそのものが存在しない。

269 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 22:14:03.78 ]
その時代のMS-Cには、タイニーモデルはまだ存在してなかったね。

270 名前:デフォルトの名無しさん [2011/07/30(土) 13:03:37.64 ]
【OS】MS-DOS、誕生から30年に [11/07/28]
toki.2ch.net/test/read.cgi/bizplus/1311974777/




271 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 23:43:10.44 ]
もう30年も経つんだな。
QDOSとかSCPとか懐かしい言葉だ。
DOS誕生の経緯は「MS-DOSエンサイクロペディア」に詳しく書かれてたけど、今でも持ってる。

272 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 19:37:33.24 ]
ぐぐっても見かけないからここにこっそり書き残しておこう
tasm32のparity?の生成コードはmasm等の逆

273 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 22:21:02.45 ]
ボーランドはアンチMSだったからな。

Turbo-Cのマウス制御関数の説明に、
「Microsoft形式のマウスには対応しておりません」
とキッパリ書いてある、なんてこともあった。

274 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 22:35:37.48 ]
そりゃマウスドライバの話だべ

275 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:27:18.69 ]
mouse.comとmouse.sysか

mouse.comのほうが見た目良かったんだが、再配布禁止だったからなあ…


276 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:48:57.49 ]
ソフト側ではどちらでも動くように作れてたような気がするし
ADDDEVなどで切り替えたりしてたような気もするし
今となってはどうでもいい小手先か

277 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 01:15:19.43 ]
>>276
基本同じなんだが、困ったことに微妙に違う所があったりした

俺はそのへんめんどいので自前ドライバを使ってたが



278 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:06:47.28 ]
>>195
IBM-DOS2000買うとか?(CDで売ってた)
多分まだ売ってるはず



279 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 19:32:22.10 ]
power.exeってMS-DOSの処理が空いている時にhalt命令で消費電力を
下げるらしいですが、ユーザープログラムでこの「空いてる状態」を
作り出すにはどうしたらよいでしょうか?
(C言語ならgetch()すればいい?)

280 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 00:53:11.24 ]
>>279
haltからの復帰には例外が必要。
自動的に復帰させるためには、haltさせる前に、復帰させるための例外を用意してやる必要がある。
タイマなんかを使うんでは無いかな。




281 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 11:13:26.33 ]
>>280
例外じゃなくて割り込みじゃないのか?
リアルモードで例外は扱えなかったと思ったけど。

282 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 13:45:42.04 ]
>>281
x86の場合には例外と割り込みを区別していたんだね。
知らなかった。

で、>>279が聞きたかったことって、power.exeを常駐させた上での話だったのかな?
なら、getch関数でDOSに制御が移るので空き時間作れると思う。


283 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 18:56:19.31 ]
ATならタイマIRQ0、9821ならカレンダIRQ15(初期の9821はよく知らん)が常時ぶん回ってるから
通常、hltで止まることはないよ(どのみちキー入力IRQ1で復帰するけど)

284 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 19:10:56.89 ]
DOSに制御が移る→暇そうならint 28h→power.exe
なんで、暇なら直接int 28hぶん回すのが手っ取り早いんじゃね

285 名前:279 mailto:sage [2011/10/10(月) 00:33:50.30 ]
回答ありがとうございます。

>>283
直接コードにhalt命令を埋め込んでも常に何かしら割り込みが
発生しているので問題ないと言うことですね。

>>284
探していたのはそれだと思います。
int28hをググってみましたがint28hをフックするコードしか
みつけられず、int28hを呼び出す側はどのような値をレジスタに
セットしてcallすれば良いかわかりませんでした…。

286 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:00:41.71 ]
int28hは呼び出し側で特定のレジスタ値をセットする必要はないはずだよ
int28hは「DOSが暇な時に動いて欲しい複数の常駐物のチェーンの入り口」なんで
それぞれの常駐物が勝手に何とかしてるはず、ただ、スタック少なすぎるのはまずいかも

C言語とかで普通に作ったプログラムならスタックは十分だと思うけど
破壊されちゃまずいレジスタはint28h前後で念のため退避復元するか、呼び出し後に再設定だね

古い記憶なんで間違ってたらスマソ

287 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:23:38.97 ]
>>285直接コードにhalt命令を埋め込んでも・・・
>>283にも書いたけど9801(初期の9821はよく知らん)はカレンダIRQ15が無いんでまずいかもね
あと、hlt命令は仮想86モードだと一般保護例外になるんで
実際に実行されるhlt命令は仮想86モニタ(EMM386等)の例外処理内部のhlt命令になるよ

288 名前:279 mailto:sage [2011/10/10(月) 10:40:18.65 ]
>>286
int28hを試してみたいと思います。

>>287
開発はOpenWatcomのDOSエクステンダなので確か特権0で
動作していたハズですからhalt埋め込みも可能かも。と思っています。
対象CPUをPentium以降にしていますのでPC-9801はほとんどが外れます。
(ODP,CPUアクセラレータ機種は微妙ですが…)

289 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 14:29:16.43 ]
そういう動作環境なら特に問題ないかもね

まあ、DOSやBIOSを介してキー入力してるならpower.exeがうまいことhlt実行してくれるだろうから
標準ライブラリのgetch()等を使ってる限りは独自にint28h呼び出さなくても平気かもだけど

98だとそもそもINT18 AH=0のキー入力BIOSが「キー入力バッファ監視無限ループ」なんだけど
power.exeがトラップしてpower.exe内部でループさせるようにしてhlt実行されとるね

290 名前:279 mailto:sage [2011/10/10(月) 19:06:22.80 ]
空ループの中でint28hを呼ぶ版と呼ばない版を用意して実験した結果、
呼ぶ版ではpower.exeのアイドル率が上昇しているのが確認できました。

仮想86環境+DOSエクステンダでhlt命令の埋め込みも実験してみましたが
一瞬で制御が戻って来ましたのでループの中で呼んでも問題なさそうです。

有用な情報ありがとうございました。



291 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 22:21:22.37 ]
ハードを骨までしゃぶれたDOS時代は楽しかったな〜

292 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:44:20.28 ]
なんとなくBIOSを使わずにCTRCを直接制御して480ラインにしたいと思って
// Text GDC 30(16*30=480) line
outp( 0x62,0x0e ); // Sync command
outp( 0x60,0x4e ); // C/R (80-2 = 78)
outp( 0x60,(0x08<<5)|0x07 ); // VS(l) | HS
outp( 0x60,(0x09<<2)|(0x08>>3) ); // HFP | VS(h)
outp( 0x60,0x07 ); // HBP
outp( 0x60,0x07 ); // HFP
outp( 0x60,0x480 & 0xff ); // L/F(l)
outp( 0x60,(0x19<<2)|(0x480>>8) ); // VBP | LFh(h)
outp( 0x62,0x47 ); // Pitch command
outp( 0x60,0x50 ); // 80
// Graphics GDC 480 line
outp( 0xa2,0x0e ); // Sync command
outp( 0xa0,0x4e ); // C/R (80-2 = 78)
outp( 0xa0,(0x08<<5)|0x07 ); // VS(l) | HS
outp( 0xa0,(0x09<<2)|(0x08>>3) ); // HFP | VS(h)
outp( 0xa0,0x07 ); // HBP
outp( 0xa0,0x07 ); // HFP
outp( 0xa0,0x480 & 0xff ); // L/F(l)
outp( 0xa0,(0x19<<2)|(0x480>>8) ); // VBP | LFh(h)
outp( 0xa2,0x47 ); // Pitch command
outp( 0xa0,0x50 ); // 80
という風に作ってみたけど画面が映らなくなってしまいます。
CRTCの直接制御で9821の画面モードに変更するという事自体が間違っているのでしょうか?

293 名前: ◆0uxK91AxII mailto:sage [2011/10/20(木) 01:15:23.37 ]
>>292
256色の640*480なら、
outp(0x6a, 0x07);
outp(0x6a, 0x21);

www.webtech.co.jp/company/doc/undocumented_mem/io_disp.txt

294 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 01:35:06.70 ]
それだけで解像度まで変わったか?

295 名前: ◆0uxK91AxII mailto:sage [2011/10/20(木) 03:39:41.71 ]
変わらなかった。
/(^o^)\

>>292のようなGDCの設定に加えて、outp(0x9a8, 0x01);が要る気がしてきた。

296 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 20:16:52.46 ]
映らなくなったって事は何か足りないよりもパラメータ間違ってんじゃね?

297 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 23:56:32.98 ]
GDC 5MHz,HS 31KHz を対象にしているので 0x9a8 は関係ないと考えています。

298 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 18:02:45.48 ]
>>292
・SYNCコマンドのパラメータ先頭1個が抜けてる、よって後続の設定値全部間違ってる。
・SYNCコマンド0x0Eを使えば表示はどのみち消える、STARTコマンド発行するか、SYNCコマンド0x0Fを使う。
・480ラインなのに16進数の0x480で設定してるから1152ラインとか無茶振りすぎる。
・480ラインに設定出来てもSCROLLコマンド設定しなきゃ見えない(はず)。
・上記修正してもBIOS AX=300Ch BH=32h INT18hの表示と違い、画面全体が水平方向にずれて何か変。
・ちなみにBIOSでも画面表示とカーソル表示は消えるので自前で再設定する。

299 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 18:05:04.21 ]
BIOS解析してどういうパラメータ設定してるか見た方が早い気がする

300 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 18:15:24.95 ]
まあそうだねー
>>292の質問は画面映らなくて困ってるって話なんで、それは何とかなるやろ



301 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 20:27:08.28 ]
>>298
SYNCコマンドが1つ不足していたのと0x480を修正したら
テキストは左寄り&グラフィックは乱れていますが画面には映るようになりました。
ありがとうございます。

30行系ソフトのソースを見たのですがBIOSが対応していない26〜29行は
CRTCを制御して、25,30行はBIOSを使うようになっていたので
パラメータがわからなかったので…

パラメータはもうちょっと調べて見ます。

302 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 23:48:17.04 ]
DOSの環境変数ってメモリのどこに記憶されているのでしょうか?
最初はDOSファンクションにあるのかと思っていましたがそれらしいのがなく、
CRT(getenv)のソースを見たらグローバル変数のポインタを参照して
その中から該当する文字列を返しているようでした。
たぶん、グローバル変数はStartupで設定されていると思うのですが…

303 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 23:56:00.48 ]
DOS(コマンドプロンプトではない)なら
PSPのどっかに、環境変数を示すセグメントが書いてあるよ。

304 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 00:01:05.69 ]
>>303
ありがとうございます。
やっぱりPSPですか…。


305 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 00:02:32.20 ]
ds:2c

306 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:27:58.08 ]
>>302
MS-Cならgetenv関数が用意してあるが

307 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 17:24:10.86 ]
既にgetenvのソースを読んだ人に向かって
getenvでできるよ(キリッ とか言われても・・・

308 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 23:37:40.29 ]
PSPの資料を見つけたのでなんとかなりそうです。
ttp://www5c.biglobe.ne.jp/~ecb/assembler2/7_5.html

309 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 22:30:52.49 ]
質問。DOS(16Bit)上からのCONFIG.SYSで読込む、デバイスドライバーの*.SYSや*.EXEのHEADER情報と、
実行(起動?)手順が知りたいのですが、ググッたが参考になる所が見つけられませんでした。
コマンドライン(又は、AUTOEXEC.BATからの実行)での*.EXEのHEADER情報は、色々と見つかり参考にさせて頂きました。
デバイスドライバー又はコマンドラインで実行できる形式の物を作りたいと思っています。
お指導・ご指南を、お願いいたします。

310 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 07:36:04.35 ]
EXEヘッダの情報と、デバイスドライバのヘッダの構造は勝手に調べてもらうとして
俺の記憶をたどると、
COM型ドライバはそのまま読み込まれ、EXE型はax=4B01(だったと思う)でロードされる。
後は、デバイスヘッダに書かれているアドレスに来るリクエストの指示に従って初期化や常駐等を行う。
デバイスヘッダは、とりあえずぐぐって最初に出てきたDR-DOSのページでも参考になるはず。
hp.vector.co.jp/authors/VA003720/lpproj/drdos/progdoc/sysprog/chap6j.htm



311 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:38:14.53 ]
emm386とかのUMB領域の検出ってどうやってるんだろう?

312 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:57:49.03 ]
4kBごとにメモリを読んで調べてたような・・・
怪しそうな領域はMSDで調べると「恐らく使用可」なんて曖昧な答えが出たりした。

313 名前: 【14.2m】 【東電 81.3 %】 mailto:sage [2011/11/20(日) 18:40:43.50 ]
一応貼ってみる
www.oadg.or.jp/techref/oadgdosv.lzh
www.oadg.or.jp/techref/oadghwd.lzh
www.oadg.or.jp/images/109A_KB.pdf

314 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:16:07.22 ]
>>311-312
該当アドレスにRAMを自作メモリーボードで繋げたら見つけてくれるんかな?


315 名前:デフォルトの名無しさん [2011/12/08(木) 22:23:44.01 ]


316 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 17:54:20.54 ]
メガデモを98のDOSに移植したいんだけど、Milleniumを使う方法はないかね?


317 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 23:43:42.65 ]
シーラスロジックにしとけ。16ビットカラーも使える。

318 名前: ◆0uxK91AxII mailto:sage [2011/12/17(土) 07:11:39.45 ]
I/Oとメモリを見えるようにしてやれば使えるだろうけど、何かと手間

319 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 09:21:34.34 ]
PCIは起動時にI/Oとメモリを割り当ててるから普通に見えるだろ。
(9821ではブリッヂを経由すると割り当てられないらしいが。)

PCI BIOSを使えばデバイス検索、リソース検索はできるから
1M以上のメモリアクセスをどうするかだ。


320 名前:デフォルトの名無しさん [2012/01/10(火) 09:21:55.94 ]
MS−DOSとは一体何だったのか
awabi.2ch.net/test/read.cgi/poverty/1326153783/l50




321 名前:デフォルトの名無しさん [2012/02/25(土) 21:41:54.99 ]
保守

昔は1バイトでも節約するのに苦労してたのに、
今はアプリ1つ起動しただけで数100MB食う有様。
メモリがいくら安くなったとはいえ、食い過ぎじゃないかと。

322 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 00:07:38.09 ]
くたばれよジジイ

323 名前: ◆0uxK91AxII mailto:sage [2012/02/26(日) 12:31:53.24 ]
MS-DOSなら16[Byte]単位での節約だよねー。

くたばれよジジイ

324 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 13:47:34.72 ]
16 bits

325 名前:デフォルトの名無しさん [2012/02/27(月) 14:35:58.53 ]
OpenWatcom 1.9でnearポインタをunsigned longにキャストしたら
セグメント:オフセット形式になったんだけど、他のコンパイラもこんなだったっけ?

326 名前: ◆QZaw55cn4c mailto:sage [2012/02/27(月) 18:58:37.49 ]
>>325
C はよくわからないけれども、アセンブラですら、4バイト確保してseg:off だから、多分そうじゃないかな。

327 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 19:15:13.91 ]
>>291

今でもドライバ書こうとすれば…

328 名前:デフォルトの名無しさん [2012/02/27(月) 23:11:26.15 ]
プログラミングはUNIX(SunOS)から入ったから、ポインタのNEARとかFAR
とかはハァ?って感じだった。

329 名前: ◆0uxK91AxII mailto:sage [2012/02/28(火) 00:14:43.67 ]
>>325
そこはFP_SEG, FP_OF, MK_FPを使おうか...。

>>327
X64なWindowsだと自由とはいかないんだけどね。

330 名前: ◆0uxK91AxII mailto:sage [2012/02/28(火) 17:51:04.75 ]
nearなら無関係だったか。



331 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 18:51:22.22 ]
MK_FPとかあったなー
今の今まで忘れてた

332 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 10:39:32.43 ]
Turbo C++でやってみたけどsmall/large/huge共にセグメントアドレスは入らなかった


333 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 14:28:05.68 ]
333

334 名前:デフォルトの名無しさん [2012/04/27(金) 01:08:04.98 ]
シフトキー
capsロック
numlock等
実際にはキー入力されないキーを利用して
バッチファイルを条件分岐したい
適当なdosプログラムが探せないので
作りたい
バッチファイルで返り血を読む方法も
よくわからないです


335 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 01:28:31.15 ]
そいつはDOSの守備範囲外だ。
どの機種かはしらんがキーボードBIOSをつかうか、
あるいはキーボードI/Oを直接叩くしかないぞ。

336 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 01:32:28.40 ]
>>334
こんなもんだろう
 org 100h
 mov ah,02h
 int 16h
 mov ah,4ch
 int 21h
んでERRORLEVELで結果を見ればよろし


337 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 05:34:38.03 ]
昔ならBUで一発だったのにな

338 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 00:11:39.06 ]
>>336
それでできました
ありがとう
>>337
バッチユーティリティ落としました
いいですねこれ

339 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 20:59:15.23 ]
アセンブラでexe形式のソフトを作っているのですが
コマンドラインからの引数はどのようにすると参照できますか?

340 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 21:30:29.06 ]
www.google.co.jp/search?q=DOS+%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E5%BC%95%E6%95%B0



341 名前:339 mailto:sage [2012/04/29(日) 21:49:32.99 ]
exe形式ならES:0000hのPSPを参照すれば引数がわかるんですね。

342 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 22:22:15.63 ]
psp:80hにコマンドラインの文字列が置かれ、同時にデフォルトDTAでもあった。
懐かしいねぇ。

343 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 23:06:33.05 ]
過去形じゃなくて今でもそうだけどな

344 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 22:41:20.07 ]
64bitOSの普及で過去形になりつつある。
仮想86モードがあっさり切られるとはね。

345 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 00:16:55.51 ]
ロングモードから仮想86モードに移行できないだけで
仮想86モードが切られたわけじゃないと思うが。

346 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 13:44:20.24 ]
逆アセンブラは何を使ってますか?

347 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 22:39:58.48 ]
symdeb

348 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 10:12:33.13 ]
wdis (the Open Watcom disassembler)

Current State|Wasm
www.openwatcom.org/index.php/Wasm

349 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 17:01:30.04 ]
xda

350 名前:デフォルトの名無しさん [2012/06/10(日) 21:10:04.11 ]
これは凄い。

Creating a raytracer for DOS, in 16 VGA colors
www.youtube.com/watch?v=N8elxpSu9pw



351 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 23:38:25.39 ]
int 20

Linuxよこんにちは

352 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 17:57:38.69 ]
#include <stdlib.h>
#include <time.h>
#include <conio.h>
main()
{
srand((int)time(0));
while(1)
outp(rand(), rand()%256);
}

を実行したら、青画面が出てパソコンが死んだよ (HDDクラッシュ)。w


353 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 19:18:07.23 ]
秘孔を突いてしまったのですね

354 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 21:58:52.30 ]
まぁ、実験用のマシンだから別に壊れても構わない

355 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 09:06:21.99 ]
Cを覚え始めて楽しくなってきた頃、
>>352なことは誰もがやるよねw

356 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 11:42:52.22 ]
既にPC-8001でさんざんやった後だから、Cではポート叩くのはやってないなぁ。
精々RAMDISKのドライバ作ったくらい。

357 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 11:48:31.07 ]
>>355
誰もが? >>352とお前だけだ

358 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 12:00:10.91 ]
>>357
探究心のないやつだなぁ。乱数を使うのは間抜けかもしれないが。

>>356
RAMDISKが動いたことで嬉しくなって、しかも速いもんだからそのRAMDISK上で作業を続けて、
リセット掛かってなくなって我に返るのも、割りと誰もが通る途だよねw

359 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 13:24:17.98 ]
RAMDISK は cache にするべきだったな

360 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 15:29:53.65 ]
>>358
小学校低学年レベルの探究心の話をしてたのか
それは失礼w



361 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 22:09:16.82 ]
debugで適当なアドレスからトレス始めてPC内部を探検とかもやったなw

362 名前:デフォルトの名無しさん mailto:sage [2012/06/27(水) 22:14:21.10 ]
ラムディスクでクラッシュはやった

363 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 01:05:43.97 ]
PC98用のハード叩きまくりプログラムをPC/ATのWin95DOS窓でうっかり動かしたら
いきなり沈黙して再起不能になったことが…

修理に出したらメイン基板交換で返ってきた


364 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 09:10:02.24 ]
昔、Libretto50をsymdebでROMをトレスしてたら
HDDクラッシュしたことがあったな。

365 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 00:33:46.57 ]
Cyrix 5x86のキャッシュON/OFF制御コード解析してるんだが
write_cyrix_reg(u_char reg, u_char data)
{
outb(0x22, reg);
outb(0x23, data);
}
これだと0x23のDMAと競合しないのかね?

98でも動くara5x86.exeを逆汗しても同じようなコードが存在するから
間違ってはいないと思うのだが。

366 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 13:17:29.93 ]
>>365
regの値を見てキャッシュ制御とDMACアクセスを切り替えるという
涙ぐましい努力をしとるのです


367 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 20:09:37.30 ]
おお、ご存知の方がいるとは。

368 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 11:25:55.41 ]
DMAバンクレジスタ(ch2)だから競合しても問題ないだろ。

369 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 15:53:11.03 ]
@wktk.c
#include <stdio.h>

void main()
{
puts("+   +");
puts("  _∧_∧_ +");
puts(" (0゚・∀・)   ワクワクテカテカ");
puts(" (0゚∪ ∪ +");
puts(" と__)__) +");
}

370 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 16:14:34.98 ]
フロッピーディスクをフォーマットしたときに書き込まれるタイムスタンプと
現在のハードディスクにフォーマット時に書き込まれるタイムスタンプは
同じフォーマットですか?




371 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 16:30:33.36 ]
いいえちがいます

372 名前:デフォルトの名無しさん [2012/10/08(月) 02:05:40.26 ]
>>1
debugコマンドってこと?

373 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 02:19:10.80 ]
プログラムのテスト/編集ツールであるデバッガを起動します.

DEBUG [[ドライブ:][パス]ファイル名 [テストファイル-パラメータ]]

[ドライブ:][パス]ファイル名
テストするファイルを指定します.
テストファイル-パラメータ テストするファイルが必要とするコマンドライン情報を
指定します.

DEBUG 起動後に, ? を入力するとデバッガのコマンド一覧が表示されます.

374 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 08:20:39.61 ]
debug.exe って XP (Vista ?) までは動いてたけど
Windows 7 だと入ってなかった orz

375 名前:デフォルトの名無しさん mailto:sage [2012/10/12(金) 17:23:52.51 ]
NOP

376 名前:デフォルトの名無しさん mailto:sage [2012/10/13(土) 10:04:08.74 ]
LOADALL

377 名前:デフォルトの名無しさん mailto:sage [2012/10/13(土) 23:58:51.23 ]
そんな命令はない
という事になっているんだっけ?




378 名前:デフォルトの名無しさん mailto:sage [2012/10/14(日) 00:11:21.44 ]
隠し命令だからね
しかも286と386で異なる

379 名前:デフォルトの名無しさん mailto:sage [2012/10/14(日) 11:18:05.08 ]
You encode the 80286 LOADALL as a two-byte opcode, 0F05h.
The 386 LOADALL is encoded as a two-byte opcode (0F07).
ttp://www.rcollins.org/articles/loadall/tspec_a3_doc.html

380 名前:デフォルトの名無しさん mailto:sage [2012/10/17(水) 09:45:39.09 ]
ありがとうございます!



381 名前:デフォルトの名無しさん mailto:sage [2012/11/25(日) 22:38:59.93 ]
13:40頃、ヘリがヘリとしてはかなり高いところ(2000mくらい?)を2機東へ@川越

382 名前:381 mailto:sage [2012/11/26(月) 22:27:09.61 ]
誤爆失礼

383 名前:デフォルトの名無しさん mailto:sage [2012/11/26(月) 22:33:37.95 ]
まちBBSか

384 名前:デフォルトの名無しさん [2013/01/01(火) 21:10:12.82 ]
あけおめ です

385 名前:片山博文MZパンク ◆0lBZNi.Q7evd mailto:sage [2013/01/16(水) 01:48:23.36 ]
日本語MS-DOSのエミュレータがないかな?

386 名前:デフォルトの名無しさん [2013/10/31(木) 13:21:39.00 ]
あるんじゃね

387 名前:デフォルトの名無しさん [2013/11/07(木) 02:21:16.24 ]
age

388 名前:片山博文MZコスモ ◆T6xkBnTXz7B0 mailto:sage [2013/11/08(金) 11:19:51.60 ]
>>385 www.mmrl.gr.jp/mars/marsce/marsce1.html

389 名前:デフォルトの名無しさん [2013/11/08(金) 15:19:24.67 ]
え、自己レス?

390 名前:デフォルトの名無しさん mailto:sage [2013/11/08(金) 15:36:25.22 ]
C言語と、どう違うん?



391 名前:デフォルトの名無しさん mailto:sage [2013/11/08(金) 18:26:45.00 ]
DOSはへっぽこOSやがな

392 名前:デフォルトの名無しさん mailto:sage [2013/11/08(金) 21:21:10.88 ]
>>391
CP/Mよりはかなりマシ

393 名前:デフォルトの名無しさん mailto:sage [2013/11/09(土) 00:16:22.82 ]
核ミサイル制御はDOSがいい

394 名前:デフォルトの名無しさん mailto:sage [2013/11/09(土) 23:04:40.94 ]
>>392
8ビットでまともなOSを作ろうとすると、失敗に終わったM-DOSみたいな結果になる。
CP/Mは必要最小限とはいえ8ビット環境に合致してたと思う。

395 名前:デフォルトの名無しさん mailto:sage [2013/11/09(土) 23:57:16.67 ]
何を持って失敗と言ってるんだ?

396 名前:デフォルトの名無しさん [2013/11/10(日) 01:53:00.66 ]
CP/M-86 は失敗だったな

397 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 01:58:54.57 ]
PC98用のWizardlyがなぜかCP/M-86だったのは覚えてる。

398 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 02:52:20.30 ]
CCP/Mは少なくともMS-DOSなんかよりはOSとしての機能を満たしてたな

399 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 03:00:44.90 ]
メモリ64KB、CPU8bit、CPUに仮想メモリ機能なし、
CPUにI/O保護機能なし、CPUにマルチタスク機能機能なし

そんなコンピュータがやっと個人で使えるようになった時代のOSに
何を求めてるんだよ?

その時代だと逆になにもしないほうが優れたOSだよ。

400 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 03:10:30.62 ]
>なにもしないほうが優れたOSだよ。

リソース管理というOSの仕事の根本が理解できないバカ



401 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 03:13:03.87 ]
いや、だからね。
その時代はそれすらもコストの高い処理で
ほとんど一つのアプリが専有状態になるんだよ。
知らないなら口開くなよ。

402 名前:デフォルトの名無しさん [2013/11/10(日) 03:18:57.52 ]
管理するリソースは、ファイルシステムがメインで他はおまけ

403 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 03:21:02.60 ]
そうそう、メモリ保護機能もないから
OS含めてシステム全部、
BIOSなんかにも、普通にアクセスし放題だしね。

404 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 03:23:04.87 ]
言っとくけど、メモリ保護機能がないのは
OSではなくてCPUだからね。

CPUにその機能、つまり特定の参照してはいけない
メモリになんかにアクセスした時に処理を奪う機能が
ないから実装しようと思っても不可能。

405 名前:デフォルトの名無しさん [2013/11/10(日) 07:34:40.67 ]
CP/MってFATだったっけ

406 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 10:24:29.57 ]
メモリ,I/O保護やマルチタスクがOSの必須条件時ではないでしょう。
OSの必須条件とは、
「そのOSが動作する機器が何であろうと、OSが用意したシステムコールを使えば
 どこでも同じに使えるよう抽象化すること」
でしょう。

407 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 10:25:22.29 ]
必須条件

408 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 10:55:23.52 ]
OS?
BASICの間違いでしょう

409 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 11:00:23.25 ]
昔は言語がOSそのものだったよな。
Smalltalkも似たような感じ。
言語の環境がOSになってた。

410 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 11:17:50.75 ]
BIOS = BASIC Interpreter Operating System



411 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 11:21:09.36 ]
>>410
ぐぐってないけど、それ間違い。

412 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 12:44:55.47 ]
>OSの必須条件とは、
>「そのOSが動作する機器が何であろうと、OSが用意したシステムコールを使えば
> どこでも同じに使えるよう抽象化すること」
>でしょう。

珍説発見

413 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 13:01:47.81 ]
OSの定義はあるが、さすがにMS-DOSの時代は
パソコンが高価過ぎて完全な形で実装するのが不可能だった。

パソコンというのは、そもそもパーソナルなコンピュータ。
つまり、パーソルではないコンピュータというものがあり、
昔は、そっちがメインだった。
大企業や政府や軍や大学の、個人では買えない高価なコンピュータ。

そこで作られたコンピュータが、徐々に個人向けに転用されてきたというのが
パソコンの歴史なんだよ。

だから昔の(個人向け)OSが、本来の(非個人向け)OSと大きく劣るのは
それがパソコンの歴史なんだから当たり前のこと。
OSの問題というよりも、そもそもCPUやその他のハードに
コンピュータの機能が不足していた。

414 名前: ◆QZaw55cn4c mailto:sage [2013/11/10(日) 13:02:17.75 ]
>>412
>>406 は正論だと思うけれどもね

415 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 13:03:21.15 ]
OSとモニターの区別も付かない馬鹿がなんか言ってるw

416 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 13:07:26.56 ]
N-BASIC にはあったねmon コマンドとかBASICコードの最初10行程度の行番号を全部 0 にしてみたりとかさ

417 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 13:36:08.73 ]
ディスクBASICってのもあったね。
あれ、ディスクを読み書きできるわけだけど、
ディスクを読み書きしている部分はOS?
でもBASIC環境なんだよね。

不思議な世界だ。

418 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 14:09:36.59 ]
MZ-80 シリーズなんかインタープリタをわざわざテープにロードしていたくらいだし、そうそう SWORD とかあったね、不思議な世界だね

419 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 14:49:28.43 ]
>>409
Smalltalkはアラン・ケイらの暫定ダイナブック環境として作られた経緯があって
あえてOSの要素を含むように仕組まれているから、今の文脈からはちょっと特殊な例だろうね。

「Smalltalkの底を流れる設計思想」
web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
Smalltalkでは、この基準は対話するオブジェクトというモデルで充分にみたされている。略
オペレーティングシステムがこの原則を破っているようであることはちょっと注目すべきだろう。
プログラマーは一貫した記述の枠組みをはなれ、蓄積されたコンテキストをあとにし、
まったくかけ離れた、そしてたいていはとても原始的な環境を相手にしなければならないのだ。略
オペレーティングシステムは言語におさまりきらないものを集めたもので、これは存在すべきでない

420 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 15:01:52.21 ]
その頃からダイナブックってあるんだな。



421 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 17:51:38.08 ]
東芝がぱくってノーパソの商標にした

422 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 19:44:29.28 ]
>>405
FCB

423 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 20:10:30.14 ]
>>405
www.cpm8680.com/cpmtools/cpm.htm

424 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 09:47:33.84 ]
dynabook ss001の頃はパーソナルワークステーションだった
F1の鈴木亜久里ちゃんがモデルだったのよね
懐かしいわ

425 名前:デフォルトの名無しさん mailto:sega [2013/11/25(月) 15:52:16.00 ]
DOS窓からcalc.exeとか起動したときに
今起動したcalc.exeのプロセスIDを知る手段ってある?

426 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 15:57:03.40 ]
このスレ的にはそのcalc.exeは当然DOSプログラムだよね?
そうなるとntvdm.exeにしかプロセスIDは付かない。

427 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 21:16:21.63 ]
「DOS窓」なんだからWin9xだろ

428 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 22:03:58.84 ]
cmd.exeは32ビットコンソールだけど、
仮想86マシンの方は俺は今でもDOS窓って呼んでるな。
もうすぐ7/64へ行くから会えなくなるけど。

429 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 22:24:44.81 ]
cmd.exe
command.exe

430 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 22:36:19.04 ]
COMMAND.COM



431 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 12:42:57.50 ]
MSX-DOS は大盛況のうちに幕を閉じた。

432 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 20:44:05.71 ]
dosプログラムの特徴といえば煩雑なメモリモデルだよね
Win32になってメモリモデルが単純になってよかった

433 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 20:46:46.33 ]
>>432
>dosプログラムの特徴といえば煩雑なメモリモデルだよね

8086のコンパイラによる事情であって、DOS固有のことではない。

434 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:15:18.37 ]
CPUが16ビットだったからね。
一つのレジスタで64KBまでしか参照できないのに
それを二つ使って1MBを超えるようなメモリを使うには
どうしても複雑にならざるを得ない。

それを補うのが当時のコンパイラの仕事の一つで
殆どの場合、複雑なメモリモデルは隠蔽されてる。

435 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:16:36.79 ]
>それを二つ使って1MBを超えるようなメモリを使うには

>殆どの場合、複雑なメモリモデルは隠蔽されてる。

何か勘違いされてますね

436 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:17:19.12 ]
>>435
ほう。それであんた、説明は?
それが言えなければ、ただの難癖。

437 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:19:58.81 ]
>それが言えなければ、ただの難癖。

そう思いたいんだろうね

438 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:22:06.25 ]
はいはい

セグメントレジスタとオフセットは大部分重なってるのでレジスタ2個使っても1M超えてはアクセス出来ない

439 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:25:59.39 ]
>それを二つ使って1MBを超えるようなメモリを使うには

「1MBを超える」って、EMSかなんかを勘違いしてるのかな?

440 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:27:01.61 ]
>>434
>それを補うのが当時のコンパイラの仕事の一つで

コンパイラが頑張っても1MBは超えられないよ。



441 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:31:07.30 ]
>>434
MS-CのHugeモデルでも1MBは超えられませんよ。
つかメモリモデルってプログラマが指定してたけど隠蔽されてるってどゆこと?

442 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:09:11.13 ]
へぇ、なんで1MB超えられないの?
それはMS-DOSが原因なの?
理由言える?

443 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:12:15.19 ]
知ったか同士で仲良くお喋りなさい

444 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:16:44.60 ]
>へぇ、なんで1MB超えられないの?

8086/88のアドレス空間が1MBしかないから。

445 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:21:23.27 ]
そういや64ビットになってメモリモデル復活してるんだよな
意識しないといけないのは、2GBを超えるexe作るなら、だけど

446 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:33:37.54 ]
>>444
つまりCPUが原因ってこと?
OSを変えれば直る問題に思えないんだけど?

447 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:36:00.24 ]
>OSを変えれば直る問題

馬鹿キター!(AA略

448 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 01:08:21.29 ]
286以降ならA20ラインで1M+64kまでOKだな

449 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 01:21:32.26 ]
HIMEMやVCPI/DPMIといった286/386向けの機能を
DOSに含むかどうかだよな

450 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 01:30:00.19 ]
「CPUが16ビットだったからね。
 一つのレジスタで64KBまでしか参照できないのに
 それを二つ使って1MBを超えるようなメモリを使うには
 どうしても複雑にならざるを得ない。」

という話とはとりあえず関係ない。



451 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 02:09:13.94 ]
パソ通時代にこの手の奴居たよな
まだやってんのか

452 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 08:12:56.31 ]
EMM386.SYS と EMM386.EXE の違いが判らんかった当時

453 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 11:51:31.31 ]
よく知らないけど、なんか下位互換にこだわってあんなセグメントなんて概念になったんだっけ?
PC-E500 シリーズの CPU なんか 8 bit でありながら 20 bit のレジスタ持ってて
1 MByte リニアにアクセスできるのに。

454 名前:デフォルトの名無しさん [2013/11/27(水) 13:07:29.06 ]
8088 の悪口はそこまでだ

455 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 14:06:55.29 ]
アドレス専用のレジスタを強いるかどうかじゃねーの

456 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 14:13:12.94 ]
386以降のメモリモデルも
セグメントレジスタで保護モードとか設定できるのに
全部の空間を読み書きできるように反故にしてるOSがあるのは秘密

457 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 14:15:37.43 ]
>>453
>よく知らないけど、なんか下位互換にこだわってあんなセグメントなんて概念になったんだっけ?

想定してたのは64KB以下のコードで64KB以下のデータのタスクを複数動作させるコントローラだろ。

458 名前:デフォルトの名無しさん [2013/11/27(水) 14:27:05.80 ]
そうだ!16bitずらしたセグメントレジスタ使えば
64KB以内のアプリは全部リロケータブルに出来るOSが作れるぞ!
俺って天才!



Windows98/2000/XP でも 64KB の壁は残りました

459 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 14:33:36.80 ]
32bitアーキテクチャはiAPX432を準備してたし、8086/88はあくまでコントローラ

460 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 14:35:53.49 ]
良いアーキテクチャと売れるアーキテクチャは違うということだね
286なんて中途半端なものが何であんなに売れたんだ



461 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 15:22:05.41 ]
>>458
NT系ではエミュレータで16bitアプリ動かしてるだけじゃねーの

462 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 15:24:29.60 ]
クロック数の多い方が勝つわ

463 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 15:32:58.65 ]
ずれは16bitじゃなく4bit

464 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 15:41:07.58 ]
>>458
2000 / XP の 64KB の壁って何?

465 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 15:49:43.60 ]
東ドイツのベルリンにあっただろ

466 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:31:50.47 ]
>>464
IE4とか5とか6でドロップダウンのリストボックスとかに
選択肢がいっぱいあると64KBで切れてた

467 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:32:47.38 ]
いまでもあるかな
support.microsoft.com/kb/207601/ja

468 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:36:21.09 ]
これか
technet.microsoft.com/ja-jp/sysinternals/bb897558.aspx

469 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:38:09.52 ]
まちがえた
こっち
support.microsoft.com/kb/79055/ja

470 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:40:05.27 ]
>>458
>そうだ!16bitずらしたセグメントレジスタ使えば

プロテクトモードでのセグメントレジスタはそういう機能じゃないよ。



471 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:41:07.76 ]
それは単にGUIレベルの設計の問題だろう
1000件でも多すぎるわ→16bitにしとこ

472 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:49:56.87 ]
HSPにも制限ある罠
lhsp.s206.xrea.com/command/mesbox.html

473 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 16:52:24.26 ]
リストボックスの項目は多すぎても見にくいだけなので
制限あるのは判らなくもないが
エディットコントロールでも制限あったら
rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200205/02050097.txt
エディタもまともに作れないOSとか
64KB以上のファイル開いたら死ぬメモ帳とか
そりゃ秀丸が歓迎される罠

474 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 17:34:15.68 ]
ワードパッドが完全無視されててカワイソス

475 名前:デフォルトの名無しさん [2013/11/27(水) 17:46:18.76 ]
なんだ?まだ昔のコンピュータ稼働させてるとこがあるのけ?

476 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:08:09.96 ]
今はオトナの時間だ
あめだまはお子さまでもしゃぶってろ

477 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:09:26.74 ]
チュパチュパ…

478 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:09:58.10 ]
ウッ…ドピュッ!

479 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:25:27.77 ]
えらい伸びてるとおもったら。
君ら、若くても30後半だろw。もちつけ

480 名前:デフォルトの名無しさん [2013/11/27(水) 18:37:49.05 ]
DOS時代が青春時代だったのはアラフォーか



481 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:40:19.34 ]
あらそう。

482 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 19:41:45.71 ]
中高生の頃Windows 95時代なのにDOSばっかいじってたぞ・・・

483 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 19:59:42.73 ]
>>473
そうだ。
WinMeまでの「メモ帳」って64kB以上のテキスト開くと落ちるんだっけ。。

484 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 22:05:28.10 ]
Win95ですら64KB超えた場合はワードパッドで開くか聞かれたんだが
Meは知らんが

485 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 22:09:17.39 ]
っていうか、Windowsにプリインストールされてるものは
昔からデモ版か技術プレビュー用と決まってるんだが。
DirectXやOpenGLのデモだったり、
ネット対応になったり、今はストア対応だろ?
全部デモが目的だからさ。

486 名前:i486 mailto:sage [2013/11/27(水) 22:15:58.95 ]
3.1の頃からの利用者には、むしろメモ帳の容量制限がなくなっていたことに驚く

487 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 22:51:01.78 ]
2000以降(NT)は全く別のOSですしおすし

488 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 22:53:16.99 ]
パイプで一時ファイル作らなくなったのって
どこから?

489 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 22:54:56.03 ]
DOS/9x系は作る
NT系は3.1からずっと作らない

490 名前:デフォルトの名無しさん [2013/11/28(木) 10:10:55.53 ]
DOS窓からcalc.exeとか起動したときに
今起動したcalc.exeのプロセスIDを知る手段ってある?



491 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 10:20:56.64 ]
タスクマネージャで見る一覧みたいなのでよければ
tasklistというコマンドがあるらしい

492 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 11:55:22.63 ]
どこかでみたコピペだな
あっちではDOS窓はcommand.comであって
cmd.exeじゃねーとか

493 名前:デフォルトの名無しさん [2013/11/28(木) 11:57:17.66 ]
>>491

ここだよ

>>425

494 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 11:59:38.32 ]
そうか
ここだったか
いつになくスレ伸び過ぎてマジで判らんかった

495 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 14:27:01.88 ]
>>490
C#だけどAPIでも同じような感じで取れる。
DOSやWin16の場合はntvdmの起動を伴う場合だけIDが返るな。
Win9x系の場合はわからないが確か取れなかったように記憶している。

using(var p = Process.Start(
 new ProcessStartInfo(args[0]) { UseShellExecute = false } )) {
 Console.WriteLine(p.Id);
 p.WaitForExit();
}

496 名前:デフォルトの名無しさん [2013/11/28(木) 14:55:03.79 ]
サイズ1byteのちゃんと動作するCOMプログラム作ったよ

497 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 15:14:20.27 ]
RET(C3) いっぱつか

CP/M(8080/Z80)のプログラムを
 jp main
ではじめていた場合、
先頭はC3なので間違ってDOSで動かしても暴走しなかった。

498 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 18:21:46.22 ]
76がnop

499 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 18:48:11.39 ]
76はHLT

500 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 19:05:22.00 ]
HALT
www.youtube.com/watch?v=gpzCBUwU_Ys



501 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 19:19:44.73 ]
How many files(0-15)?

502 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 19:28:59.42 ]
>>499
blogs.yahoo.co.jp/yfl711/folder/1009657.html?m=lc&p=3

503 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 09:01:37.00 ]
英語版のみだったがQuick C And Assemblerを使ってた。.asmを統合環境でコンパイル出来た環境てのはそれまで見たことが無かった。
でも割り込みハンドラーはデバッグ出来なかったような

504 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 09:11:18.05 ]
>>452
80286以上の人はhimem.sysてのもあった

505 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 09:15:45.21 ]
Peter NortonのIBM-PC PS/2向けDOSプログラミング本がバイブルだった当時

506 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 09:34:07.07 ]
専ブラ使ってないひとって50個前のレスにレスする傾向があるよね

507 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 13:19:46.25 ]
>>503
>asmを統合環境でコンパイル出来た環境てのはそれまで見たことが無かった。

TURBO Cでできたよ

508 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 16:00:06.93 ]
統合環境の定義に入るかどうかは知らんが、
スタンダロンのICEなら普通にアセンブルもコンパイルもできたと思うが。

509 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 17:50:49.66 ]
Cならどれでもインラインアセンブラくらい付けてるだろ

510 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 17:55:37.48 ]
そんなことないぞ



511 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 17:56:14.41 ]
>Cならどれでもインラインアセンブラくらい付けてるだろ

ばかじゃねーの?

512 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 17:58:42.01 ]
TURBO Cでは別売りのTASMがあること前提だったかな

513 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 21:24:44.58 ]
>>511
昔を知らない子供なんだから仕方ないよw

514 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:00:59.45 ]
PascalといえばTurbo Pascalだが、Microsoft Quick Pascalというのを持っていたな。PC互換機向けのみで日本では発売されなかった。まあ、言語的にはオブジェクト指向のTurboには劣っていたが。

515 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:01:48.83 ]
LSI-Cのインラインアセンブラは妙に書きにくかったな。
_asm_c("mov\tax,bx\n");とか。

516 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:05:38.55 ]
インラインアセンブラと.asmソースをコンパイル出来ることは違うんだけど

517 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:10:34.79 ]
MSのCにはインラインアセンブラ無しの頃もあってだな・・・

518 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:16:58.95 ]
>>516
>インラインアセンブラと.asmソースをコンパイル出来ることは違うんだけど

誰かそんな話してるかな?

519 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:32:26.99 ]
>>518
統合環境アセンブラであるQuickC & QuickAssember 2.5に対して、インラインアセンブラなら普通にあるだろ的なツッコミがあったので

520 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 22:38:44.46 ]
>>519
>>509以降は違う話だろ。



521 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:07:07.14 ]
>>517
MS-C 4.xの頃までかな、5からインラインアセンブラ付いたような。時を同じくして最適化をチョロくしたQuickC 2.0が出た。コンパイラの言語仕様が同じだったとおもう。

522 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:10:08.46 ]
その当時のQuickとかTurboはRAMコンパイルが大流行りだった。まだHDDが高価でFDDのみのマシンが多かった時代、

523 名前:デフォルトの名無しさん [2013/11/29(金) 23:10:31.25 ]
なんで昔話で議論できるんだろうね
すごいや

524 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:12:05.12 ]
スレタイが懐かしのってなってるやん

525 名前:デフォルトの名無しさん [2013/11/29(金) 23:14:37.46 ]
今更実機も何もなくて確認しようもないことで議論になるのが滑稽だねって

526 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:19:35.11 ]
昔話のスレだから生暖かい目で見てやれよ

527 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:26:54.88 ]
>>525
実機? あるでしょ

528 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:30:03.10 ]
>>521
QC2.0にはインラインアセンブラ有ったんだよなw

529 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:31:18.02 ]
>>525
ソフトの話題なら実行環境だけじゃん。実機は必須ではないよ。

530 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:31:57.37 ]
MSDNでは今でもDOS6.22落とせるはずだからVirtual PCに仕込めば実機の出来上がり。QuickBASICやTurbo C++とかは当時のバックアップがないと厳しいか。
NEC 9801の再現はリアルマシンじゃないと無理か。



531 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:33:31.82 ]
>>528
有ったよ
ただし.asmファイルの扱いはQuickAssemberがセットになった2.5のほうだけ

532 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:35:02.30 ]
Turbo C version 2.01
edn.embarcadero.com/article/20841

Turbo C++ version 1.01
edn.embarcadero.com/article/21751

533 名前:デフォルトの名無しさん [2013/11/29(金) 23:37:35.51 ]
日本語DOSが欲しい

534 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:39:30.25 ]
円馬鹿出ろ流石だな
これ当時のDOS版みたいだな
リリースがそれぞれ89年、91年か

535 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:41:35.49 ]
>>533
DOS6.2/VもMSDNでは提供してるとおもう、NECとかIBMとかDR/Novellとか無理かもな

536 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 23:42:39.19 ]
Turbo Pascal v1.0
edn.embarcadero.com/article/20693

Turbo Pascal v3.02
edn.embarcadero.com/article/20792

Turbo Pascal v5.5
edn.embarcadero.com/article/20803

537 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:02:47.87 ]
Turbo PascalってCP/Mの頃からあったんだよな。ちょっと驚き。

538 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:11:46.92 ]
>>536
Turbo Visionの使える6.0ではない所が微妙に憎たらしいなw

539 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:20:05.39 ]
プログラミングではないが、随分前にMicrosoft Word 5.0(DOS版)をMSが無料開放してたことがあるが、もう無いのかな

540 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:22:01.99 ]
>>537
CP-M/86とかDOS1.0とかから弄ってた人ってここのスレに居るの?



541 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:25:09.17 ]
一時期DOS/OS2 dual 対応時代のコンパイラで遊んでたな。
Win2000のOS/2 subsystemでコンパイラも、
作ったプログラムもちゃんと動く。

542 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:28:08.96 ]
DOSが好きどすえ〜

543 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:29:45.48 ]
MS-DOS ってどうよ kohada.2ch.net/test/read.cgi/os/1010640399/
■■●DOSでネットワーク●■■ kohada.2ch.net/test/read.cgi/os/999912322/
LinuxはMS-DOSには敵わない kohada.2ch.net/test/read.cgi/os/1052038524/
CP/M-80,MSX-DOS,CDOS2を語れ! kohada.2ch.net/test/read.cgi/os/985981402/
DOS全般を語るスレ 2 kohada.2ch.net/test/read.cgi/os/1179114566/
9821のシステムをDOS/Vに移動する方法はありますか kohada.2ch.net/test/read.cgi/os/989765952/
■★▲DOSはまだ現役! Drive.C: kohada.2ch.net/test/read.cgi/os/1258659169/
DOS/V時代のゲームプレイ環境保全策 kohada.2ch.net/test/read.cgi/os/1000621670/
DOS欲しい奴いる? kohada.2ch.net/test/read.cgi/os/1226798909/
DOSの問題点を語るスレ kohada.2ch.net/test/read.cgi/os/1056294702/
MS-DOS系のインストールCD持ってる人いる? kohada.2ch.net/test/read.cgi/os/1214634503/
OSなんてDOSで充分だろ kohada.2ch.net/test/read.cgi/os/1124981902/

544 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:29:48.16 ]
DOS5に付属のQ-BasicなんてのもあったQuickBASIC4.5使ってた俺にはゴミツールでしか無かったが

545 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:31:05.34 ]
ベーマガには無料で使えるプログラミング言語として紹介されてたぞQBASIC

546 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:35:38.22 ]
>>545
言語仕様はQuickBASICなんだけど、EXE作れないとか、CやMasmで作る自作のQuickLibraryと連携出来ないとか、制約大杉だった

547 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:43:06.07 ]
>>545
ベーマガってのはザベとは違うんだっけ

548 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 00:50:19.31 ]
GW-Basicがビルゲイツの頭文字から命名されたってのは本当なのかね

549 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 01:01:27.33 ]
QBasicはWin95の頃まで有ったような気がする、多分、少なくともEditコマンドは有ったから

550 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 01:37:18.84 ]
そういやMS-DOSはver2までは開発環境(アセンブラ等)同梱だったけどver3以降それらが省かれたんだよな…



551 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 01:42:44.55 ]
DEBUG.EXEひとつあれば十分開発可能

552 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 01:45:43.48 ]
>>551
ハンドアセンブルは出来るけど、実用にならんだろ

553 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 01:49:52.99 ]
>>552
Aコマンドがあるのにハンドアセンブルなんかすんの?

554 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 06:32:08.11 ]
>>553
>>552がハンドアセンブルの意味を分かってない、に一票

555 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 07:43:55.06 ]
QuickBASICから言語機能を取り除いたものがMS-DOS Editorだったな。
edit.comだけで起動しようとしたらqbasic.exeが見つかりませんとか言われた。

556 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 10:58:35.04 ]
MS-DOS EditorとQbasicの導入で、Edlinは無くなったんだっけどうだっけ

557 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 11:12:29.13 ]
>>550
その後Windows時代になるとSDKかDDKの一部として無料配布されたような。masmの386版とか。更にその後はSDK/DDKがMSDN会員限定になったと思う。

558 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 12:31:35.16 ]
エクテンダーはスレチですか

559 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 13:11:51.37 ]
未来戦士エクステンダー

560 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 13:27:30.00 ]
DOS Extender時代の香り漂うOpenWatcom C++
あの時代のクロスコンパイラが動態保存されてるような感じ



561 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 14:39:44.22 ]
>>556
edlin、XPには入ってるよ。
7はうちのは64だから知らないけど、32には付いてるんじゃね?

562 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 15:07:08.30 ]
Win7 x86 Home Basic英語版だけどedlinは無かった。editは有った。でもqbasicは無かった。
i.imgur.com/ViHLCpe.jpg

563 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 17:30:51.01 ]
Windows7 x64 Ultimateにはeditもないな。x64環境でWin16アプリ起動しないのは知ってたけどDOSアプリも窓で起動しないんだっけ?

564 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 17:34:10.76 ]
しないよ

565 名前:デフォルトの名無しさん mailto:sage [2013/11/30(土) 18:05:55.47 ]
x64のlongモードが仮想86モードをサポートしてない

566 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 06:42:12.06 ]
DOSBoxが必要

567 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 08:13:58.43 ]
>>562
Vistaにはedlinもeditもあるな
使い道ないけど

568 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 18:16:12.93 ]
そうかedlinが付いてたのはVistaまでか

569 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 19:24:06.25 ]
Edlinとか、ある意味拷問みたいなエディタだわな、DOS全盛期でさえconfig.sysの編集程度にか使えなかった

570 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 19:33:39.78 ]
cp/mのedと比べると使いやすかった(笑



571 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 19:39:02.18 ]
CP/Mのは知らんわ、そんなに酷いのか

572 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 19:39:37.99 ]
バッチファイルから呼び出して自動で編集させたり便利な使い方ができた

573 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 19:44:06.74 ]
昔使っていたDOS開発ツールが多分どっかのCD-Rにまとめてコピーして保管してあると思うから引っ張り出してみるかな

574 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 21:27:20.02 ]
>>569
ラインエディタはカーソル移動しなくて良いから慣れれば悪くは無いな
edlinの行編集は今のコマンドプロンプト以下だけどね

575 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 21:55:36.00 ]
>>571
sedの1行づつしか実行できないやつだと思えば

576 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 21:56:46.49 ]
>>575
Unixのed知らんのか

577 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 22:08:55.60 ]
ああ知ってるよ
昔はedとviを選べたた時期があったね

578 名前:デフォルトの名無しさん mailto:sage [2013/12/01(日) 22:20:04.51 ]
今でも選べるだろ、つーかexと勘違いしてね?

579 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 01:59:35.18 ]
>>574
そのコマンドプロンプトに編集機能がついたのはDOS5付属の常駐プログラムDoskeyが最初か

edit/Qbasicの登場もDOS5の時だな

580 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 22:13:16.11 ]
doskey以前はhistoryとかki-shellとか使ってたな。



581 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 22:22:31.40 ]
MSDN会員ダウンロードにはWin3.1系統とDOS6がまだ有った。QB45もVB2も3も有った。しかしVB For DOSが見当たらない。QC20も25もC6も無い。

582 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:13:03.66 ]
>>580
それフリーウェアだっけ、雑誌付録のフロッピーとかに入ってる

583 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:19:13.01 ]
MS-DOS 4.01にはdosshellっていうマルチタスクもどきのGUI(アプリケーションローン茶みたいなの)がついてた。
実行中のDOSアプリを終了せずに別アプリに切り替えが可能だったんたけど、邪魔ですぐ外したのを覚えてる。

PC-DOS4のほうにはなかったかも知れない。

584 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:23:10.95 ]
>>581
PWBとMicrosoft BASICはないのか、あとフォートラン

585 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:25:10.20 ]
NEC PC9801用のハード固有のことやBIOSプログラムの扱い方を解説した分厚い通称青本てやつを持ってたひと挙手!

586 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:25:47.44 ]
>>584
PWBって何?

587 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:31:14.77 ]
>>586
Programmers Works Benchという、Quick系列とは微妙に違うエディタ
インタプリタ機能のないMS-CとかMS-BASICに付いてた。

588 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:39:06.30 ]
>>587
思い出した!あったあった。
でも周りはみなコマンドラインでコンパイルしてた。おれはその頃MSの最適化コンパイラ使ってなかった。

589 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:41:14.39 ]
MS-C ver.6.0a PC-98用が手元にあるけど、readme.docの制限事項で

CodeView:
「PRINT.EXE を常駐した状態では, マウスのダブルクリックは, 利用できなくなります」

Programmers Works Bench:
「MS-DOSシステムディスクに含まれる PRINT.EXE を常駐させた状態でPWB を利用することはできません」

と書かれてる。print.exeって相当悪いことしてるんだな・・・と思った。

590 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:43:32.30 ]
で、print.exeって何者?NEC MS-DOSの付属物?



591 名前:デフォルトの名無しさん mailto:sage [2013/12/02(月) 23:49:18.09 ]
常駐プログラムの悪い見本

592 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:01:03.03 ]
そのPWBをXPのDOSプロンプトで走らせようとすると・・・

WARNING: This Microsoft product has been tested and certified
for use only with the MS-DOS and PC-DOS operating systems.
Your use of this product with another operating system may
void valuable warranty protection provided by Microsoft on
this product.
<press any key to continue>

と言われる

593 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:02:33.07 ]
MSDNサブスクライバーにあるDOS関連は、DOSとQB45、masm 6.11
これで全てのようだ

594 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:04:41.75 ]
DOSアプリから見ると、NT5.1や5.2のDOSもどきはバージョン幾つに見えるんだろうか

595 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:16:45.93 ]
XP(NT5.1)ではDOS5.5、見せ掛けで5.0だな

596 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:20:55.50 ]
i.imgur.com/nMk77Pg.jpg
まずはこいつをインストールしてみます

597 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:22:43.86 ]
>>596
MS-DOS 6.22 US版?

598 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:27:44.80 ]
そう
そしたら何とUpgrade版との事で、元DOSがないとダメとか

なので一旦F3で抜けて、手作業でfdiskとformatしてみる。俺の記憶では確かこれでアップグレードを騙せたはず

Format c: /s

599 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:31:49.92 ]
そういえば、MS-DOS 6.xは、upgrade版しか、市販されていなかったような。

600 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:34:32.03 ]
でも一旦Cドライブを起動可能にしてしまえば自分自身を同じバージョンでインストールできるという裏技



601 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:36:02.90 ]
今のマシンでは耳かきのような200MBディスクを充てたがDOSには広すぎる

602 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:40:58.28 ]
しまった、VMWareとはいえ、CD-R読ますのにmscdexとか組まないといけないんだ。その前にCDROMドライブのデバドラどうすんだっけ

603 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 00:43:27.84 ]
DOS CD-ROMで、検索すると幸せになれるかもしれません。

604 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 02:47:01.11 ]
CDは手持ちのドライバMitsumiもGoldstarもだめで、後のWin95のMS-DOSモードで使われてたOAKっていう汎用ドライバで動いた。久しぶりに真面目にeditコマンド使ったわw

ちなみにDOS6.22の日付は、94/5/31。Win95の前の年なんだね

605 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 02:50:01.04 ]
ネットから入手した単品ファイルをどうやってDOSの中の人に伝えるか、という試練もあった。仮想フロッピーのイメージ作るソフトが無いと何も出来ない。

606 名前:デフォルトの名無しさん mailto:sage [2013/12/04(水) 21:10:09.40 ]
WFW3.11インストールしたら一分と掛からなかった、軽過ぎ
けどTCP/IPプロトコルは何処から入手すればいいのかもう覚えてない

607 名前:デフォルトの名無しさん mailto:sage [2013/12/04(水) 22:15:31.59 ]
英語?

608 名前:デフォルトの名無しさん [2013/12/05(木) 08:26:54.99 ]
FreeDOSもLinuxも動く、JavaScriptで作られた x86エミュレータがスゴイ件
2013 年 10 月 18 日
www.softantenna.com/wp/software/x86-emulator/

609 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 08:43:33.11 ]
仮想マシンでのDOS運用はファイルの持ち込みが不便だな、USBも無いし、VMware Toolsも適用除外だし。昔はフロッピーがその役目をしてたけど今はそんな物もないし。仮想フロッピー必須だな

610 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 09:51:56.23 ]
あとは
VHDで数十MBのHDD作ってやりとりとか
Win3世代以降なら、さらっとiso作ってCD-ROM扱いとか



611 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 10:09:32.22 ]
>>607
えいごどす

612 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 10:10:16.61 ]
Win/Vなんて捨てちゃったな

613 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 11:57:01.38 ]
もったいない(w

614 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 12:34:57.63 ]
Win/VはWFWを日本語化できる点では素晴らしかったが、JPモードでのフォントがしょぼくて嫌だった。
MS-DOS/Vのフォントよりも酷かったからな

せめてPC-DOS/Vくらいの綺麗なフォントじゃないと

615 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 14:03:05.60 ]
>>608
何がスゴイんだかわからん

616 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 15:41:07.42 ]
JS上のx86エミュって1年くらい前にも話題になってなかったっけ?

617 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 16:45:10.46 ]
Javascriptで書いてもCやその他の言語で書いても労力的に大きな違いがあるとは思えないし、
x86のエミュレータなんて珍しいものではないし、Javascriptで書いてるのに意外と実用的な
速度で動いてるみたいな話であれば偉いのは実行環境のほうだし、何がスゴイんだかマジわからん。

618 名前:デフォルトの名無しさん [2013/12/05(木) 16:48:24.65 ]
v8で動かしたら速いんかな
そんなことするなら普通にVMでいいし

619 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 16:50:41.28 ]
JSがインフラとして一歩ぬけ出た
パフォーマンスは後々改善していけばよい

620 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 17:23:00.10 ]
>>617
>何がスゴイんだかマジわからん。

無意味なことへの労力がすごいんじゃね



621 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 17:33:05.92 ]
スゴイと思う奴がいるなら無意味なことではない

622 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 17:34:48.12 ]
「すごい」ってのは個人的感想なんだから
他人が感じた「すごい」をいちいち理解してやる必要はない

623 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 17:49:25.81 ]
記事中で「スゴイ」と言っているのは以下の二点

・OS単体をエミュレートするものでなくx86をエミュレートするものなので、いろんなOSを動かせる
 ところがスゴイです。
・JavaScriptでなんでもできるスゴイ時代になってきましたね。

x86エミュレーション自体は目新しいものではないし、この例をもって「JavaScriptでなんでもできる」は
言い過ぎだと思う。
結論としては、この記事の「スゴイ」に私は同意することができません。

624 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 17:53:44.71 ]
XMLみたいな立ち位置に持って行くんじゃないかな

625 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 19:00:27.19 ]
せめてWindows7でも稼働させたならすごいがDOSとか簡易なCUIを動作させるくらいなあ

626 名前:デフォルトの名無しさん mailto:sage [2013/12/05(木) 19:32:02.43 ]
>>625
そこまでできたらインテルに潰されるじゃねw

627 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 10:35:01.39 ]
DOS用のLINK.EXE(ver 5.10)を引っ張り出したんだが、
起動するといちいちフロッピーを確認に行くようなんだけど対処法ある?
昔なんかやって止めた記憶があるんだけど思い出せない。

628 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 11:07:49.92 ]
なにかする、といえば
98で使えるようにint24だかの致命的エラーハンドラがどうのとか
PATHにA:が含まれてないかとか、そのくらいしか知らん
それこそWin95以降のRecentとかの話じゃないだろうし

629 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 11:42:16.44 ]
command.com=C:
みたいな環境変数なかったかな

630 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 12:07:18.72 ]
>>629
config.sysに書くcomspecとかだったような
アプリがメモリ食い過ぎてコマンドシェル領域潰してしまった場合に、アプリ終了後にどこからcommand.comリロードするか、みたいな指定だとおもう



631 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 12:26:09.39 ]
link.exeを起動するとなのか終了した時なのかで違ってくるかもな

632 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 12:34:01.80 ]
起動するとです。

>Object Modules [.OBJ]:
これが出た時点で空のフロッピーユニットからガッと音がする。

link /? でhelp出してもやっぱりでる。
OS/2とデュアルサポート時代のバージョンなのでその辺が影響してるのかな。
ちなみにWindows2000のOS/2サブシステムで動かすと音は出ません。

633 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 12:51:03.04 ]
rmdrive a:

634 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 12:54:09.97 ]
>ガッと音がする。

どこかでぬるぽしているに違いない

635 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 13:05:22.05 ]
win32で動くdos用link.exe(Lnk563.exe)が見つかったのでそっち使います。
お騒がせしました。

636 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 13:13:57.24 ]
スレ的にはDOS版使わないとw

637 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 13:27:37.04 ]
昼休みの話し相手が居て良かったぬ

638 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 13:29:23.12 ]
超省メモリ設計を認証かなにかと勘違いするお子さまはお呼びじゃない

639 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 13:33:29.74 ]
Lnk563.exeはDOSエクステンダー対応のようでDOSXNT.EXEがあればDOSでも動きまする。
まあ、386以降とか制限は付きそうだけど。

640 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 01:21:48.14 ]
Win3.1用のリンカーとDOS用のリンカーって互換性有るんだっけ?どっちもMZ形式のEXE吐くんだよね



641 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 01:30:31.52 ]
Win3.1のexeは、MZヘッダーからはじまるDOSから起動された時用とNEヘッダーからはじまるWindows用の
二本立てだったと思う

642 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 01:54:17.26 ]
ああ、This program requires Microsoft Windowsってスタブの部分か

643 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 01:58:29.34 ]
仮想デバイスドライバのLEフォーマットは、.386も動的ロードが可能な.vxdも一緒なんだっけ?この当時の仮想デバイスドライバは片手間に練習した程度なので良く分かってないんだけど。

644 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 11:07:44.24 ]
>>640
.defの有無でDOS(MZ)用かWin3.x/OS2用かが決まる
.defの記述でWin3xかOS2かSTUBに何を使うかとか指定できる

645 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 12:39:54.39 ]
MS版OS/2がまだ残ってた時代か
今思えばWindows MeやVistaどころではない恥部みたいなもんだな

646 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 12:42:34.23 ]
90年頃のlink.exeだと、/QオプションでQB45用のライブラリ生成するオプションがあったな。なんでlib.exeではなくlinkの仕事なのか不思議てはあったが

647 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 12:52:53.91 ]
だってあれ、インタプリタでイメージ読み込んで実行できるんだからDLLみたいなもんでしょ>QLB

648 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 12:54:52.40 ]
そうだ、そう言えばQLBはインタプリタ環境の物だった。EXE生成時は使わないのか。

649 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 13:03:27.18 ]
QB45の当時はWin3の前夜でまだDLLみたいな知識は無かったしな

所でQBはPC互換機版には1~3も有ったんだけど、使ったことある人居るのかな
最初はQLBも無かったらしいから、行番のないGW-Basic程度だったのかな

650 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 13:43:48.21 ]
P-CODEを生成するオプションがあったよね
QBやVB、C++でも作れてたみたいだけど用途や仕組みが良くわからなかった



651 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 13:54:37.07 ]
QBは後に登場するVB以上に革命的だった
GWBasicのマシン語プログラムロードよりもクロス言語開発が楽になったし。事実上、使えるステートメントを無限に拡張できる最初のBasicだと思う。

652 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 13:58:33.93 ]
テキスト座標指定するQBのlocate文て、GW-Basicと同じrow, col指定だけど、これって9801版のQBも同じ仕様だっけ?
だとするとN88とは順番逆ってことになるけど、9801のN88ソース移植する時どうしてたっけ

653 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 17:05:00.86 ]
N88とはそもそも基本的なところで互換性のない文法が多すぎて、フツーに全面書き換えだった
そのうちめんどくさくなってdeclare sub N88LOCALE(x%, y%)とか作ったな
中学生の頃

654 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 17:40:31.08 ]
NEC版QBはMSの標準Basic仕様とN88との板挟みだったわけか。
確かQB自体はGW-Basicを行番付きのまま読み込んで実行できるのも謳い文句になってたしな。

655 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 00:15:45.37 ]
>>650
QBって、ネイティブコード吐かずに常にP-Codeかと思ってたけど違うの?
ネイティブコードを吐けるBasicは32bit版のみになったVB5からじゃないのかなあ。

656 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 00:20:55.64 ]
>>655
QBはネイティブコンパイラとインタプリタのデュアル環境で
MS-BASICはネイティブコンパイラ専用。
VB for MS-DOSもネイティブコンパイルできたぞ。

657 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 00:31:58.04 ]
MS-Basic7.1ってのを数回触った事があったけど、使い道が全然思いつかなかった。GWやQBみたいなテキスト画面制御程度のステートメントさえ全滅だったような。
何か自前のライブラリを当てないと画面もうごかせないのかな、それともまさかのAnsiエスケープシーケンス使え、だったのか、どこかにちゃんとMS謹製ライブラリが居たのか。

658 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 00:42:49.58 ]
そうか?QBの上位互換だった気がする
int 21hができたり、テキストベースのGUIライブラリやTrueTypeフォントの描画ルーチンが付いてきた記憶がある
くっそ遅かったがw

659 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 11:21:18.80 ]
MS Basic Compiler 7は劣化Cに成り下がって面白みがなかった
開発環境も使いにくいPWBになってしまったし
QBまではありだな

QB > 僕と契約して・・・

660 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 11:57:46.43 ]
VB For DOSは出た時話題になったが、既にWin3.0メインで使ってたからスルーしたな



661 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 12:09:16.18 ]
Basicはお手軽に使えるから良いのであって、大掛かりなアプリ開発するのにBasicわざわざ使うアホは居ないということだ

662 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 08:23:06.19 ]
PWB付き大型のBasic7て、どういう層をターゲットにした製品だったんだろ
お手軽Basic派はQB45、大型案件はC/C++だろうし、位置づけ微妙

663 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 08:27:26.69 ]
その中間層をねらってたりして?

# MSは、いろんな意味で、BASICには力を入れているから、売れる可能性にかけているだけかも。

664 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 08:40:01.19 ]
今のVisual Basic.NETはBasicたる劣勢要素が殆ど無いいわばC#の双子兄弟みたいになったけど、当時のBasic7は性能的にはどうだったんだろう。Cと変わらない、なら価値はあったのかも知れないけど

もっともC#/VB勢は、MFCより遅いんだけどねw

665 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 09:04:23.91 ]
DOSの頃のBASICにはON EVENT GOSUBやON ERROR GOTOというステートメントがあってだな
(例外処理っぽいのがintしか無い環境で、各ソフトが勝手に割り込みハンドラを書き換えるわけにもいかないから)
全部のステートメントの間にトラップのためのチェックコードが生成されてた
なので何も考えないとCの倍遅い

でも、OFFると、C並の速度は出てた筈
Cコンパイラの方も相応にしょぼかったし

666 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 09:09:30.57 ]
というかだ、16ビット環境はセグメントがあるせいでポインタ演算は効率悪かったんで
C言語というのはそんな速い言語じゃなかったw
スピードが欲しければアセンブラ一択ですよ

667 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 09:22:20.63 ]
>というかだ、16ビット環境はセグメントがあるせいでポインタ演算は効率悪かったんで
>C言語というのはそんな速い言語じゃなかったw

プw

668 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 09:37:15.65 ]
文系は所詮こんな程度w

669 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 11:15:12.87 ]
ラージポインタは使ってもヒュージポインタを
ぶん回すようなまねはあまりしなかったな
BC7の頃は既に386が流通してて、
巨大なデータ配列をいじりたいならDOS/Extenderだった

670 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 11:44:00.83 ]
VCPIとか使うとI/O遅そうなイメージ



671 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:02:48.85 ]
当時のPCの場合プロテクトモードの
オーバーヘッドはそれなりにあったのだが、
ソフトEMS使ってるなら普通にDOS使ってるつもりでも仮想86の配下

672 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:07:20.41 ]
エクステンダーってint21h DOS APIは一瞬リアルに切り替えるとかして互換性保ってたとおもうけど、他のbios APIていうか汎用的なint86コールもフックとかしててそのまま使えたの?

673 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:08:48.24 ]
むしろ問題はEMS用にISAやCバスに遅いメモリをつんでた場合で、
これをメインメモリで使い出すとスピードががた落ちしていた
メモリカードバスのメモリなんてもう最悪

674 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:13:30.73 ]
>>672
DPMIしかしらないけど、BIOS系の代表的なのはフックしてたよ
それ以外は一度仮想86に変移してから呼び出すことになる

675 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:22:46.39 ]
>>674
フックしてプロテクトモードのまま動いてたの?もっともDPMIだと割込ベクターだけフックすれば、リアル前提のBIOSルーチンそのまま動いちゃったりする気もするけど

676 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:32:10.09 ]
むしろ、ほぼ全て(EMS関連とint2F関連以外)は
割り込みでプロテクトモードになったら、すぐにスタックを書き換えて
リアルモードでの割り込みハンドラの指すアドレスに戻るようにして
すぐに仮想86に戻るようにしていた

特別な処理が必要になるのは、これらの他はDMA関連のI/Oポートくらい
こいつらはUMBやHMA(FFFF:部)も含め、物理アドレスとは一致しなくなるので
外に出すアドレスを細工する必要があった
あ、あとA20のON/OFFも対応する必要があった

677 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:38:40.10 ]
VCPIやDPMIでも微妙なところはカバーできないので、
結局DOSエクステンダーのランタイムはなくならなかった

678 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 12:48:52.30 ]
いとしの仮想86
なぜにx64のlong modeからなくなっちゃったの

679 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 13:03:37.51 ]
>>677
そもそも、それらは仮想86ドライバ上でDOSエクステンダを動作させるための規格
なくなるわけないだろ
VCPIなんか、「LDTやるからてめーでやれ」だし

680 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 21:15:36.34 ]
DOSって、レトロを楽しむ以外に今は何かに使われてるの



681 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:13:02.96 ]
機械制御とかで使われてるんじゃないの?
ああいうのって画面いらないし、ネットワークもいらないし、
単に機械を制御できればいいだけだからシンプルなOSでいいんだよね。
マイコンでもいいぐらいだけどさすがに少しきついだろうということで
DOSぐらいでちょうどいい。

682 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:22:57.46 ]
未だにPC-9801使ってるとこもあるんだろうな

683 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:55:53.79 ]
俺の通ってた大学では実験室でPC9801使ってたよ
実験用の装置の動かすプログラムがBASICで組まれてた

684 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:28:58.24 ]
マルチスレッドに対応したDOSってあるの

685 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:44:10.74 ]
アプリが独力でマルチスレッドしてた

DOSじゃないけど同時代だと、
コンカレントCP/MやOS/9-68000とか対応してたな

686 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 05:06:43.70 ]
マルチスレッドはないけど、マルチタスクはできた
ユーザーが明示的に切り替えないといけなくて裏で勝手に動けたりはしない

687 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 05:48:28.43 ]
ideone.com/2Tx0rw
こんな感じ

688 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 08:37:09.05 ]
>>687
このソース、どう読めばマルチスレッドになるの

689 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 09:17:29.82 ]
f_1(); // 温度センサ値取得/表示
がいっぺんに
[温度センサの値取得]→[値表示]→[ウェイト]
をせずに小さい処理単位で返ってきて、次の
f_2(); // 圧力センサ 〃
に処理を渡せるから、人間からは
f_1(); // 温度センサ値取得/表示
f_2(); // 圧力センサ 〃
f_3(); // 加速度   〃
が同時に動作しているように見える。

マルチスレッドではなくマルチタスクだな。

690 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 09:19:28.48 ]
俺には単なるサブルーチンの逐次処理に見える



691 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 09:26:07.13 ]
まるちさぶるーちん

692 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 10:15:19.75 ]
これはMS-DOS時代の組み込みでよく使われた手法。
MS-DOSの常駐プログラムとかはもっとマシな方法だと思う。

693 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 10:28:48.03 ]
マルチスレッドのない環境で、処理を小分けにするっていう実装テクニックか。それなら分かる。

694 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:26:30.61 ]
タイマー割り込みでバックグランド処理を実装してたな。
InDOSフラグ見てファンクションリクエストを呼び出し中なら
次の割り込みを待ってたけど、
逆にバックグランドがファンクションリクエストを呼び出し中なら
処理を譲れないから、フォアグランドの処理がカクカクになる。
DOSのPRINTコマンドの使えなさを覚えているなら
どんなものかわかるだろう。

695 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:36:20.82 ]
print.sys と置き換えて使ってた気がする

696 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 04:42:00.17 ]
Undocumented DOSっていう洋書には随分世話になったな

697 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 05:47:42.89 ]
Interrupt Listもな

698 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 06:59:57.33 ]
Undocumented DOSはもうずいぶん前に売ってしまったが、
Interrupt Listは場所も取らないことだし、今でも記念に取ってある。
あと、「MS-DOS完全活用法」とか「IBM PC & 80286のすべて」なんかも
ついつい捨てられなくて今でも目の前にあるよ。

699 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 12:42:28.59 ]
ピーターノートン&ポールヤオ著のコレ持ってた

www.amazon.co.jp/gp/aw/d/4915673278/ref=redir_mdp_mobile

700 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 12:48:31.60 ]
i.imgur.com/p2Jun40.jpg
やっぱ絵になるなあ、カッコいい



701 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 13:01:12.13 ]
DOS時代、テキスト画面制御するのにテキストVRAM直接アクセスは常識だった。
負け組Ansiエスケープシーケンスは論外として、画面BIOSでは4.7MHzの初代機でモッサリだったので。
テキストVRAMは、初代機MDAのVRAMアドレスと属性がCGA以降と違ってたので、実行時判断も必要だった。
同じ要領でNEC-9801にも応用出来た。

702 名前:デフォルトの名無しさん mailto:sage [2013/12/30(月) 15:23:05.11 ]
DOSコールによる文字出力だと、2バイト半角文字が二重に出されたりしたのを覚えてる。
SJISと被る1バイト記号を出そうとしたら、まとめて出力すると漢字になるけど1バイトずつ出すといけたり。

703 名前: 【大吉】 mailto:sage [2014/01/01(水) 09:15:04.39 ]
DOSプログラミングの運勢。

704 名前: 【吉】 mailto:sage [2014/01/01(水) 09:27:46.76 ]
>>703の運勢

705 名前: 【北電 74.6 %】 mailto:sage [2014/01/01(水) 15:56:37.02 ]
我が家のPCの消費電力

706 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 00:31:30.85 ]
以前X86のLDSやLES命令をあまり見かけないという話が出てたが、
制御系の命令を除いたら、ENTERじゃないかと思う。
元々はPASCALの様な関数のネストが出来る言語向けの機能なのだが、
Delphiでも使ってくれてない。

707 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 23:11:37.92 ]
enterは第2オペランドの意味がよく分からん。保護が効くわけじゃないのに。

708 名前:デフォルトの名無しさん mailto:sage [2014/01/05(日) 07:52:28.27 ]
こんなふうにLevel2FuncはLevel1Funcの変数にアクセスできる。
Level1Funcのスタックフレームのベースポインタを
Level2Funcに渡しているのでそれが可能になる。

procedure Level1Func(x : Integer);
var
 z : Integer;
 procedure Level2Func(y : Integer);
 begin
  writeln(x, y, z)
 end;
begin
 z := 222;
 Level2Func 999;
end.

709 名前:デフォルトの名無しさん mailto:sage [2014/01/05(日) 09:05:42.96 ]
<ローカル変数>
<level 2 bp>
<level 1 bp>
<bp 復元用> .. Level2FuncでBPの指す位置
[return address]
[y 引数]
<z ローカル変数>
<level 1 bp>
<bp 復元用> .. Level1FuncでBPの指す位置
[return address]
[x 引数]

スタックはこんな感じになるので、Level2Funcでは
mov bx, [bp-2]
mov ax, ss:[bx-4]
でaxにzの値を取得でき、
mov ax, ss:[bx+4]
でaxにxの値を取得できる。

710 名前:デフォルトの名無しさん mailto:sage [2014/01/05(日) 09:09:51.71 ]
enter ローカル変数サイズ, 2
いっぱつで
<ローカル変数>
<level 2 bp>
<level 1 bp>
<bp 復元用> .. Level2FuncでBPの指す位置
の処理をやってくれる。

2番目のパラメータが0の場合は
push bp
mov bp, sp
sub sp, ローカル変数サイズ
の処理だけになるのだが、
この場合、push, movで処理したほうが速い。



711 名前:デフォルトの名無しさん mailto:sage [2014/01/05(日) 22:03:29.25 ]
詳しい説明さんくす

712 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 21:36:44.02 ]
delphiは素直に関数の最後の引数で1レベル上のebp引き渡してるね

713 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 22:30:47.07 ]
LEAはx64から急に使い出した
MOV RBX, offset LABEL なんてやったら
64bitの即値を代入することになって大変だ

714 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 22:25:55.20 ]
使わなかった命令No1はBOUNDだろ
登場したときはすでにINT5が使用済みだったという

715 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 22:37:20.28 ]
nop

716 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 23:14:49.64 ]
in/outのお供でnopは結構使ったかな
途中からjmp short $+2になって、
その次はなにやらどっかのI/O portにダミー出力してた記憶が

717 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 23:24:40.81 ]
fwait

718 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 23:56:52.49 ]
masmは全部の8087命令の前にfwaitを勝手につけてたけど、
いつの間にか付かなくなったな。いつからだろう。

719 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 00:44:22.67 ]
マルチプロセス?

720 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 14:33:09.85 ]
>>714
bound使うとプリンターからハードコピーが



721 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 14:54:46.93 ]
>>714
boundはwin9xで大活躍してるぞ

722 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 16:46:11.76 ]
64bit modeでは廃止になってるしなぁ

723 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 14:42:37.62 ]
fwaitは .8086指定で付く
8087はCPUから独立して直接バスとつながってた文字通りのコプロセッサだった
最近のMASMは .386がミニマムでデフォルトだからダメだな

724 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 14:47:29.87 ]
そういえば8086は微妙に動作が違ってたよね
cxがゼロのとき、loop や rep は 0xffff回ループしてたし

725 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 15:31:15.89 ]
>cxがゼロのとき、loop や rep は 0xffff回ループしてたし

CXが0のときと65535のときでループ回数が同じ? んなわけないと思うがなあ。

726 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 15:43:27.70 ]
ああごめん、0x1000回だな

727 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 15:44:02.89 ]
もいっこたりない、0x10000だ

728 名前:デフォルトの名無しさん mailto:sage [2014/01/29(水) 14:34:19.53 ]
DOS時代はCPUの差し替えとかやりまくってたなぁ
CPUの判定はこんな感じだったっけ?
8086 push sp; pop ax; sp != ax
186 flags bit 15 == 1
286 MSW 4-15 bit == all 1
386 eflags bit 18 が書き換え不可
486 eflags bit 21 が書き換え不可
cpuid世代 eflags bit 21 が書き換え可能

729 名前:デフォルトの名無しさん mailto:sage [2014/01/29(水) 22:31:03.43 ]
9801スーパーテクニックに詳しい判別法が載ってたね。
8086と186はpop csで見分けてたような。

730 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 06:47:47.58 ]
>>728
>8086 push sp; pop ax; sp != ax
!!!!なんでだ?



731 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 10:04:10.04 ]
sp+=2される前にスタックに入れられるかされた後に入れられるかの違い

732 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 12:15:55.19 ]
なんで sp+=2 されるんだ

733 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 12:53:09.11 ]
popの動作も sp <- [sp], sp += 2だから
push sp, pop spをペアで使えば大丈夫だ問題ない

734 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 13:08:37.74 ]
ああ、push時は-2だったな

735 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 12:48:51.64 ]
CPUID以前の互換CPUの見分け方は何かありましたっけ?
AMDとかCYLIXとか






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<135KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef