懐かしのMS-DOSプログラミング [sc](★0)
-
- 1
- 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,'$'
-
- 450
- 2013/11/27(水) 01:30:00.19
-
「CPUが16ビットだったからね。
一つのレジスタで64KBまでしか参照できないのに
それを二つ使って1MBを超えるようなメモリを使うには
どうしても複雑にならざるを得ない。」
という話とはとりあえず関係ない。
-
- 451
- 2013/11/27(水) 02:09:13.94
-
パソ通時代にこの手の奴居たよな
まだやってんのか
-
- 452
- 2013/11/27(水) 08:12:56.31
-
EMM386.SYS と EMM386.EXE の違いが判らんかった当時
-
- 453
- 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
- 2013/11/27(水) 14:06:55.29
-
アドレス専用のレジスタを強いるかどうかじゃねーの
-
- 456
- 2013/11/27(水) 14:13:12.94
-
386以降のメモリモデルも
セグメントレジスタで保護モードとか設定できるのに
全部の空間を読み書きできるように反故にしてるOSがあるのは秘密
-
- 457
- 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
- 2013/11/27(水) 14:33:36.80
-
32bitアーキテクチャはiAPX432を準備してたし、8086/88はあくまでコントローラ
-
- 460
- 2013/11/27(水) 14:35:53.49
-
良いアーキテクチャと売れるアーキテクチャは違うということだね
286なんて中途半端なものが何であんなに売れたんだ
-
- 461
- 2013/11/27(水) 15:22:05.41
-
>>458
NT系ではエミュレータで16bitアプリ動かしてるだけじゃねーの
-
- 462
- 2013/11/27(水) 15:24:29.60
-
クロック数の多い方が勝つわ
-
- 463
- 2013/11/27(水) 15:32:58.65
-
ずれは16bitじゃなく4bit
-
- 464
- 2013/11/27(水) 15:41:07.58
-
>>458
2000 / XP の 64KB の壁って何?
-
- 465
- 2013/11/27(水) 15:49:43.60
-
東ドイツのベルリンにあっただろ
-
- 466
- 2013/11/27(水) 16:31:50.47
-
>>464
IE4とか5とか6でドロップダウンのリストボックスとかに
選択肢がいっぱいあると64KBで切れてた
-
- 467
- 2013/11/27(水) 16:32:47.38
-
いまでもあるかな
http://support.microsoft.com/kb/207601/ja
-
- 468
- 2013/11/27(水) 16:36:21.09
-
これか
http://technet.microsoft.com/ja-jp/sysinternals/bb897558.aspx
-
- 469
- 2013/11/27(水) 16:38:09.52
-
まちがえた
こっち
http://support.microsoft.com/kb/79055/ja
-
- 470
- 2013/11/27(水) 16:40:05.27
-
>>458
>そうだ!16bitずらしたセグメントレジスタ使えば
プロテクトモードでのセグメントレジスタはそういう機能じゃないよ。
-
- 471
- 2013/11/27(水) 16:41:07.76
-
それは単にGUIレベルの設計の問題だろう
1000件でも多すぎるわ→16bitにしとこ
-
- 472
- 2013/11/27(水) 16:49:56.87
-
HSPにも制限ある罠
http://lhsp.s206.xrea.com/command/mesbox.html
-
- 473
- 2013/11/27(水) 16:52:24.26
-
リストボックスの項目は多すぎても見にくいだけなので
制限あるのは判らなくもないが
エディットコントロールでも制限あったら
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200205/02050097.txt
エディタもまともに作れないOSとか
64KB以上のファイル開いたら死ぬメモ帳とか
そりゃ秀丸が歓迎される罠
-
- 474
- 2013/11/27(水) 17:34:15.68
-
ワードパッドが完全無視されててカワイソス
-
- 475
- 2013/11/27(水) 17:46:18.76
-
なんだ?まだ昔のコンピュータ稼働させてるとこがあるのけ?
-
- 476
- 2013/11/27(水) 18:08:09.96
-
今はオトナの時間だ
あめだまはお子さまでもしゃぶってろ
-
- 477
- 2013/11/27(水) 18:09:26.74
-
チュパチュパ…
-
- 478
- 2013/11/27(水) 18:09:58.10
-
ウッ…ドピュッ!
-
- 479
- 2013/11/27(水) 18:25:27.77
-
えらい伸びてるとおもったら。
君ら、若くても30後半だろw。もちつけ
-
- 480
- 2013/11/27(水) 18:37:49.05
-
DOS時代が青春時代だったのはアラフォーか
-
- 481
- 2013/11/27(水) 18:40:19.34
-
あらそう。
-
- 482
- 2013/11/27(水) 19:41:45.71
-
中高生の頃Windows 95時代なのにDOSばっかいじってたぞ・・・
-
- 483
- 2013/11/27(水) 19:59:42.73
-
>>473
そうだ。
WinMeまでの「メモ帳」って64kB以上のテキスト開くと落ちるんだっけ。。
-
- 484
- 2013/11/27(水) 22:05:28.10
-
Win95ですら64KB超えた場合はワードパッドで開くか聞かれたんだが
Meは知らんが
-
- 485
- 2013/11/27(水) 22:09:17.39
-
っていうか、Windowsにプリインストールされてるものは
昔からデモ版か技術プレビュー用と決まってるんだが。
DirectXやOpenGLのデモだったり、
ネット対応になったり、今はストア対応だろ?
全部デモが目的だからさ。
-
- 486
- i486
- 2013/11/27(水) 22:15:58.95
-
3.1の頃からの利用者には、むしろメモ帳の容量制限がなくなっていたことに驚く
-
- 487
- 2013/11/27(水) 22:51:01.78
-
2000以降(NT)は全く別のOSですしおすし
-
- 488
- 2013/11/27(水) 22:53:16.99
-
パイプで一時ファイル作らなくなったのって
どこから?
-
- 489
- 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
- 2013/11/28(木) 10:20:56.64
-
タスクマネージャで見る一覧みたいなのでよければ
tasklistというコマンドがあるらしい
-
- 492
- 2013/11/28(木) 11:55:22.63
-
どこかでみたコピペだな
あっちではDOS窓はcommand.comであって
cmd.exeじゃねーとか
-
- 494
- 2013/11/28(木) 11:59:38.32
-
そうか
ここだったか
いつになくスレ伸び過ぎてマジで判らんかった
-
- 495
- 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
- 2013/11/28(木) 15:14:20.27
-
RET(C3) いっぱつか
CP/M(8080/Z80)のプログラムを
jp main
ではじめていた場合、
先頭はC3なので間違ってDOSで動かしても暴走しなかった。
-
- 498
- 2013/11/28(木) 18:21:46.22
-
76がnop
-
- 499
- 2013/11/28(木) 18:48:11.39
-
76はHLT
-
- 500
- 2013/11/28(木) 19:05:22.00
-
HALT
http://www.youtube.com/watch?v=gpzCBUwU_Ys
このページを共有する