懐かしの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,'$'
-
- 403
- 2013/11/10(日) 03:21:02.60
-
そうそう、メモリ保護機能もないから
OS含めてシステム全部、
BIOSなんかにも、普通にアクセスし放題だしね。
-
- 404
- 2013/11/10(日) 03:23:04.87
-
言っとくけど、メモリ保護機能がないのは
OSではなくてCPUだからね。
CPUにその機能、つまり特定の参照してはいけない
メモリになんかにアクセスした時に処理を奪う機能が
ないから実装しようと思っても不可能。
-
- 405
- 2013/11/10(日) 07:34:40.67
-
CP/MってFATだったっけ
-
- 406
- 2013/11/10(日) 10:24:29.57
-
メモリ,I/O保護やマルチタスクがOSの必須条件時ではないでしょう。
OSの必須条件とは、
「そのOSが動作する機器が何であろうと、OSが用意したシステムコールを使えば
どこでも同じに使えるよう抽象化すること」
でしょう。
-
- 407
- 2013/11/10(日) 10:25:22.29
-
必須条件
-
- 408
- 2013/11/10(日) 10:55:23.52
-
OS?
BASICの間違いでしょう
-
- 409
- 2013/11/10(日) 11:00:23.25
-
昔は言語がOSそのものだったよな。
Smalltalkも似たような感じ。
言語の環境がOSになってた。
-
- 410
- 2013/11/10(日) 11:17:50.75
-
BIOS = BASIC Interpreter Operating System
-
- 411
- 2013/11/10(日) 11:21:09.36
-
>>410
ぐぐってないけど、それ間違い。
-
- 412
- 2013/11/10(日) 12:44:55.47
-
>OSの必須条件とは、
>「そのOSが動作する機器が何であろうと、OSが用意したシステムコールを使えば
> どこでも同じに使えるよう抽象化すること」
>でしょう。
珍説発見
-
- 413
- 2013/11/10(日) 13:01:47.81
-
OSの定義はあるが、さすがにMS-DOSの時代は
パソコンが高価過ぎて完全な形で実装するのが不可能だった。
パソコンというのは、そもそもパーソナルなコンピュータ。
つまり、パーソルではないコンピュータというものがあり、
昔は、そっちがメインだった。
大企業や政府や軍や大学の、個人では買えない高価なコンピュータ。
そこで作られたコンピュータが、徐々に個人向けに転用されてきたというのが
パソコンの歴史なんだよ。
だから昔の(個人向け)OSが、本来の(非個人向け)OSと大きく劣るのは
それがパソコンの歴史なんだから当たり前のこと。
OSの問題というよりも、そもそもCPUやその他のハードに
コンピュータの機能が不足していた。
-
- 414
- ◆QZaw55cn4c
- 2013/11/10(日) 13:02:17.75
-
>>412
>>406 は正論だと思うけれどもね
-
- 415
- 2013/11/10(日) 13:03:21.15
-
OSとモニターの区別も付かない馬鹿がなんか言ってるw
-
- 416
- 2013/11/10(日) 13:07:26.56
-
N-BASIC にはあったねmon コマンドとかBASICコードの最初10行程度の行番号を全部 0 にしてみたりとかさ
-
- 417
- 2013/11/10(日) 13:36:08.73
-
ディスクBASICってのもあったね。
あれ、ディスクを読み書きできるわけだけど、
ディスクを読み書きしている部分はOS?
でもBASIC環境なんだよね。
不思議な世界だ。
-
- 418
- 2013/11/10(日) 14:09:36.59
-
MZ-80 シリーズなんかインタープリタをわざわざテープにロードしていたくらいだし、そうそう SWORD とかあったね、不思議な世界だね
-
- 419
- 2013/11/10(日) 14:49:28.43
-
>>409
Smalltalkはアラン・ケイらの暫定ダイナブック環境として作られた経緯があって
あえてOSの要素を含むように仕組まれているから、今の文脈からはちょっと特殊な例だろうね。
「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
Smalltalkでは、この基準は対話するオブジェクトというモデルで充分にみたされている。略
オペレーティングシステムがこの原則を破っているようであることはちょっと注目すべきだろう。
プログラマーは一貫した記述の枠組みをはなれ、蓄積されたコンテキストをあとにし、
まったくかけ離れた、そしてたいていはとても原始的な環境を相手にしなければならないのだ。略
オペレーティングシステムは言語におさまりきらないものを集めたもので、これは存在すべきでない
-
- 420
- 2013/11/10(日) 15:01:52.21
-
その頃からダイナブックってあるんだな。
-
- 421
- 2013/11/10(日) 17:51:38.08
-
東芝がぱくってノーパソの商標にした
-
- 422
- 2013/11/10(日) 19:44:29.28
-
>>405
FCB
-
- 423
- 2013/11/10(日) 20:10:30.14
-
>>405
http://www.cpm8680.com/cpmtools/cpm.htm
-
- 424
- 2013/11/14(木) 09:47:33.84
-
dynabook ss001の頃はパーソナルワークステーションだった
F1の鈴木亜久里ちゃんがモデルだったのよね
懐かしいわ
-
- 425
- 2013/11/25(月) 15:52:16.00
-
DOS窓からcalc.exeとか起動したときに
今起動したcalc.exeのプロセスIDを知る手段ってある?
-
- 426
- 2013/11/25(月) 15:57:03.40
-
このスレ的にはそのcalc.exeは当然DOSプログラムだよね?
そうなるとntvdm.exeにしかプロセスIDは付かない。
-
- 427
- 2013/11/25(月) 21:16:21.63
-
「DOS窓」なんだからWin9xだろ
-
- 428
- 2013/11/25(月) 22:03:58.84
-
cmd.exeは32ビットコンソールだけど、
仮想86マシンの方は俺は今でもDOS窓って呼んでるな。
もうすぐ7/64へ行くから会えなくなるけど。
-
- 429
- 2013/11/25(月) 22:24:44.81
-
cmd.exe
command.exe
-
- 430
- 2013/11/25(月) 22:36:19.04
-
COMMAND.COM
-
- 431
- 2013/11/26(火) 12:42:57.50
-
MSX-DOS は大盛況のうちに幕を閉じた。
-
- 432
- 2013/11/26(火) 20:44:05.71
-
dosプログラムの特徴といえば煩雑なメモリモデルだよね
Win32になってメモリモデルが単純になってよかった
-
- 433
- 2013/11/26(火) 20:46:46.33
-
>>432
>dosプログラムの特徴といえば煩雑なメモリモデルだよね
8086のコンパイラによる事情であって、DOS固有のことではない。
-
- 434
- 2013/11/26(火) 23:15:18.37
-
CPUが16ビットだったからね。
一つのレジスタで64KBまでしか参照できないのに
それを二つ使って1MBを超えるようなメモリを使うには
どうしても複雑にならざるを得ない。
それを補うのが当時のコンパイラの仕事の一つで
殆どの場合、複雑なメモリモデルは隠蔽されてる。
-
- 435
- 2013/11/26(火) 23:16:36.79
-
>それを二つ使って1MBを超えるようなメモリを使うには
>殆どの場合、複雑なメモリモデルは隠蔽されてる。
何か勘違いされてますね
-
- 436
- 2013/11/26(火) 23:17:19.12
-
>>435
ほう。それであんた、説明は?
それが言えなければ、ただの難癖。
-
- 437
- 2013/11/26(火) 23:19:58.81
-
>それが言えなければ、ただの難癖。
そう思いたいんだろうね
-
- 438
- 2013/11/26(火) 23:22:06.25
-
はいはい
セグメントレジスタとオフセットは大部分重なってるのでレジスタ2個使っても1M超えてはアクセス出来ない
-
- 439
- 2013/11/26(火) 23:25:59.39
-
>それを二つ使って1MBを超えるようなメモリを使うには
「1MBを超える」って、EMSかなんかを勘違いしてるのかな?
-
- 440
- 2013/11/26(火) 23:27:01.61
-
>>434
>それを補うのが当時のコンパイラの仕事の一つで
コンパイラが頑張っても1MBは超えられないよ。
-
- 441
- 2013/11/26(火) 23:31:07.30
-
>>434
MS-CのHugeモデルでも1MBは超えられませんよ。
つかメモリモデルってプログラマが指定してたけど隠蔽されてるってどゆこと?
-
- 442
- 2013/11/27(水) 00:09:11.13
-
へぇ、なんで1MB超えられないの?
それはMS-DOSが原因なの?
理由言える?
-
- 443
- 2013/11/27(水) 00:12:15.19
-
知ったか同士で仲良くお喋りなさい
-
- 444
- 2013/11/27(水) 00:16:44.60
-
>へぇ、なんで1MB超えられないの?
8086/88のアドレス空間が1MBしかないから。
-
- 445
- 2013/11/27(水) 00:21:23.27
-
そういや64ビットになってメモリモデル復活してるんだよな
意識しないといけないのは、2GBを超えるexe作るなら、だけど
-
- 446
- 2013/11/27(水) 00:33:37.54
-
>>444
つまりCPUが原因ってこと?
OSを変えれば直る問題に思えないんだけど?
-
- 447
- 2013/11/27(水) 00:36:00.24
-
>OSを変えれば直る問題
馬鹿キター!(AA略
-
- 448
- 2013/11/27(水) 01:08:21.29
-
286以降ならA20ラインで1M+64kまでOKだな
-
- 449
- 2013/11/27(水) 01:21:32.26
-
HIMEMやVCPI/DPMIといった286/386向けの機能を
DOSに含むかどうかだよな
-
- 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 リニアにアクセスできるのに。
このページを共有する