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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h

msg db '懐かしのDOS時代のプログラミングについて語ろうぜ',0dh,0ah,'$'
2デフォルトの名無しさん:2010/04/21(水) 12:43:18
DOS2.11の頃はDOS自体にmasmが付いていた。
Microsoft Cは98,000円もした。
29,800円で発売されたTurbo-Cにみんな飛びついた。
無料で配布されたLSI C-86試食版が大活躍してくれた。
3デフォルトの名無しさん: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デフォルトの名無しさん:2010/04/21(水) 14:13:16
>>2
家にMSC/C++あるけどマニュアルとリファレンスが何冊も入っていて吹いた
箱でかすぎw CDもネットもない時代は大変だったんだなぁと
6デフォルトの名無しさん:2010/04/21(水) 14:56:09
MS-DOSプログラミング、って言うぐらいならDEBUGコマンドでやろうぜ
今でも何気に搭載されてるし
7デフォルトの名無しさん:2010/04/21(水) 14:57:35
今でもsymdebは手放せない
8デフォルトの名無しさん:2010/04/21(水) 19:12:12
DOSプログラミングは青春の思い出だな
9デフォルトの名無しさん:2010/04/21(水) 19:12:38
>>6
edlinも今も残ってるんだよね。
DOSの生みの親Tim Paterson氏への敬意なのかな。
10デフォルトの名無しさん:2010/04/21(水) 22:42:19
うちはQuickCだったな。
これでCをある程度覚えた。MS-Cと互換性が高かったのも良かった。
日本語コメント付きのサンプルソースは実に役立った。
DOSの時代にCを覚えておいて正解だったと思う。
今のWindowsプログラムは複雑で何が何だか分からない。

SYMDEBは便利だったなー。
これを弄り回して8086の機械語を覚えた。
なるほど8086は2つの数値を組み合わせたアドレスでMBをアクセスするのか、とか。
11訂正:2010/04/21(水) 22:44:18
誤) MB
正) 1MB
12デフォルトの名無しさん:2010/04/22(木) 01:54:01
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
13デフォルトの名無しさん:2010/04/22(木) 09:42:43
int 21h
の代わりに
call psp:50h
でもDOSを呼べたよね。
14デフォルトの名無しさん:2010/04/22(木) 09:54:23
>>2
LSI-C86試食版が安定してきたのはDOS3.1の時代以降だね。
初期は特に、sscanf()のバグが多くて指摘するのも大変だったw
15デフォルトの名無しさん:2010/04/22(木) 22:47:03
Cから覚えたんだけど、アセンブラのことがちょっと分かってくると、
ライブラリ関数が既に用意されてるものであっても、
わざわざintdosとかで得意げにCからDOSファンクションを呼んだりしたもんだ。
16デフォルトの名無しさん:2010/04/22(木) 22:57:29
Cの標準ライブラリを使わずに
敢えて似たようなものをアセンブラで自作して
それだけ作ってプログラムしたりな
17デフォルトの名無しさん:2010/04/23(金) 12:00:14
プログラムの終了はINT 20HでもOK。
18デフォルトの名無しさん:2010/04/23(金) 12:52:16
今ならDOSBOXとかあるから、趣味ならあえて時代に逆行してもいいと思う。
どの環境でも動くからね。
19デフォルトの名無しさん:2010/04/23(金) 23:12:40
ファンクション31hで常駐終了するけど、
常駐させたプログラムを開放するファンクションがないので
あれこれ探したもんだ。
20デフォルトの名無しさん:2010/04/24(土) 07:15:19
今のWindowsプログラムより、DOS時代の方が難しく感じるものの代表だな。
>TSR
21デフォルトの名無しさん:2010/04/25(日) 18:46:59
LSI-C86はコメントが標準のしか使えないのが今にしてみるとめんどい
その代わりネストが可能だけど
22デフォルトの名無しさん:2010/04/26(月) 09:35:59
>>20
常駐するだけなら難しくないだろ。Biosフックも今で言うAPIフックみたいなもんだし。
そんなことよりも、常駐アプリでどうやってメモリを確保するかの方がw

PC-98限定で、裏VRAMをバッファに使う猫なんて常駐物があったけど、
同じく裏VRAMをバッファに使う一太郎とバッティングするもんだから
「ウイルスだ」なんて騒ぐマスコミまで出てくるなんて楽しい時代だったね。
23デフォルトの名無しさん:2010/04/26(月) 12:56:32
常駐開放=ベクタ復帰とメモリ開放
24デフォルトの名無しさん:2010/04/26(月) 18:23:49
あの時代は、どうやれば1byteでも減らせるかを考えてた。
25デフォルトの名無しさん:2010/04/26(月) 23:45:58
CP/M互換のシステムコール方法もあったよな。
CL=ファンクション番号でcall 0005hだったかな。
26デフォルトの名無しさん:2010/04/27(火) 22:40:34
CodeViewなんてのもあったね。
持ってたけどPC-98用なので今では使えない。
結局LSI-C + symdebの世話になってる。
27デフォルトの名無しさん:2010/04/28(水) 09:25:20
Programer's workbench
28デフォルトの名無しさん:2010/04/28(水) 22:43:10
DOS時代は (今も?) 統合環境なんて使わないのが常識でした。
29デフォルトの名無しさん:2010/04/29(木) 18:07:54
VzがあればIDEなんて不要
30デフォルトの名無しさん:2010/04/29(木) 22:35:44
俺はmifes派
31デフォルトの名無しさん:2010/04/30(金) 09:53:30
Ezカスタマイズ版やNitEmacsカスタマイズ版を使っていたのはいい思い出。
32デフォルトの名無しさん:2010/04/30(金) 13:18:13
EMSとかXMSとかの規格が出て来て、DOSプログラムのキャパが増えた時期が楽しかった。
33デフォルトの名無しさん:2010/04/30(金) 17:23:38
32bit DOS Extenderを使ったら、セグメントの呪縛から解放されて、天国にたどり着いたかのような気がした
34デフォルトの名無しさん:2010/05/01(土) 21:35:57
メモリモデルなんて言葉が懐かしい。
スモールでもかなりのことが出来たな。
35デフォルトの名無しさん:2010/05/02(日) 22:05:23
しかしスモールモデルのみとは言え、他に何の制約もないコンパイラを無償配布した
LSIジャパンの功績は大きかったと思う。
36デフォルトの名無しさん: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デフォルトの名無しさん:2010/05/04(火) 23:50:13
TCのconio.hって思いっきり98依存の関数が多かったな。
text何たらとか。
39デフォルトの名無しさん:2010/05/06(木) 10:32:02
symdebよりdebugの方が使い出がある。
バッチコマンドからバイナリ作るとか。
ハードディスクのダイレクトアクセスとか。
40デフォルトの名無しさん:2010/05/06(木) 10:34:14
< バイナリ
---
> バイナリファイル
41デフォルトの名無しさん:2010/05/06(木) 12:01:36
>>35
βテストさせられたとも言える。標準ライブラリの出来が今ひとつだったからね。

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

>>39
なんと言っても圧巻はX-ISH。
バイナリファイルのエンコーダ/デコーダであるISHの初期バージョンはバッチファイルによる実行モジュール作成方式で配布された。
# 今と違って、標準では転送ツールもデコーダがないから先ず最初にデコーダを作る必要があった。
# 今ならWebブラウザがバイナリファイルを受信できるしメールクライアントも添付ファイルのデコードはできて当然だけど。
42デフォルトの名無しさん:2010/05/06(木) 13:40:43
>>39
symdebで W100 2 0 1 やリダイレクトもできるぞ
(でも意味判らず試すなよ)
43デフォルトの名無しさん:2010/05/06(木) 22:18:42
>>41
DOS/V用Turbo-Cはお目に掛かったことがないな。日本でも売られてたの?
44デフォルトの名無しさん:2010/05/08(土) 03:03:00
>>43
DOS/V用じゃなくて、IBM-PC/AT互換機用だよ。DOS/V用は記憶にないけれど、あったとすれば日本専用でしょ。
# DOS/V自体が(事実上)日本専用なんだから。
45デフォルトの名無しさん:2010/05/08(土) 07:02:36
失礼。当時はAT互換機=DOS/V機だったから。

で、ということは英語版?
46デフォルトの名無しさん:2010/05/10(月) 11:15:54
マニュアルが日本語になっていて一部メッセージが日本語になっただけの翻訳版だったかな?
もう忘れたよ……
47デフォルトの名無しさん:2010/05/10(月) 13:13:04
Turbo-CのAX版かもね
48デフォルトの名無しさん:2010/05/11(火) 22:30:01
TCのマニュアルは物凄く親切な記述だったように覚えてる
49デフォルトの名無しさん:2010/05/12(水) 18:52:39
あの頃のBolandはよかったな
ライブラリのバグも少なかった気がする

パソ通の時代から、こういう「おやじ御用達スレ」はなくならんなw
50デフォルトの名無しさん:2010/05/13(木) 23:52:33
98用のTurbo-Cに入っていたpc98mouseという関数。
「Microsoft形式のマウスドライバには対応していません」
アンチMSぶりが良く現れてたな。
51デフォルトの名無しさん:2010/05/14(金) 23:54:44
98用DOS5.0が出たとき、NEC自身も、mouse.comはDOSシェル専用だから、
市販アプリでは使えないと明記していた。
でも実際にはMS形式のマウスに対応したアプリも多かった。
52デフォルトの名無しさん:2010/05/15(土) 17:46:37
NEC版、MS版マウスドライバの見分け方
マウス初期化 (int 33h ax=0) のbxの値で見分けられる。
MS版はbxにボタンの個数が帰ってくるが、NEC版は何も返さない。
予めbx=0としておけば、コール後bx==0がNEC版ドライバ。
53デフォルトの名無しさん:2010/05/16(日) 21:03:58
マウス使うのってドライバ経由が普通だっけ?
俺はなんかI/O叩いて使ってたような気がするが
さすがに記憶が曖昧すぎて覚えていない
54デフォルトの名無しさん:2010/05/17(月) 22:37:49
マウスドライバやEMSドライバは、一見風変わりなドライバだ。
組み込み後はDOSを経由せずにアプリから直接ドライバとやり取りする。
55デフォルトの名無しさん:2010/05/18(火) 07:20:40
>>54
???
56デフォルトの名無しさん:2010/05/18(火) 18:55:07
多分、普通のデバイスだと
アプリ -(int 21h)- DOS -(デバイス呼び出し)- デバドラ
だけど、マウスやEMSは
アプリ -(int xxh)- デバドラ
でアプリとデバドラが直接やりとりすることを挙げてるのだと思う。
57デフォルトの名無しさん:2010/05/21(金) 09:49:35
TCのインラインアセンブリは擬似命令だろうが何でも使えるので
おおっと思ったが、実はアセンブリソースを吐き出して
コンパイラはノータッチ、後はアセンブラ任せだった。

つまり、インラインアセンブリを使う場合アセンブラが別途必要。
(廉価版のTurboCには付いてなかったんだよ)
58デフォルトの名無しさん:2010/05/25(火) 23:01:03
xor ax,ax
59デフォルトの名無しさん:2010/05/26(水) 06:02:27
>>58
はるか大昔、それを得意気に使いまくってた上司に sub ax,ax を見せたら、
「そんな分かりにくいコーディングする奴があるかバカヤロォ」と怒られますたw
60デフォルトの名無しさん:2010/05/26(水) 09:37:56
>>59
得意も何も、今でも使われている常套手段じゃないか。
怒るのは問題かもしれないが、フラグに影響を与えまくる減算を使うのは間抜けだろう。
61デフォルトの名無しさん:2010/05/26(水) 09:52:29
はじめはxor使ってたが、ほとんどのCコンパイラがsub使ってたので途中からsubに変えた。
xorでもフラグは動くんじゃね?
62デフォルトの名無しさん:2010/05/26(水) 09:56:38
>>61
「ほとんど」をkwsk。
このスレなんだから、まさかとは思うがx86用じゃないなんて言わないよね。
63デフォルトの名無しさん:2010/05/26(水) 10:01:32
>>60
今でこそ常套手段だが、大昔のヘボPGには思いも及ばぬテクだったんだよ。
年代を言うとまた馬鹿が荒らすから言わんが。
そもそも、これを使う文脈でフラグに影響がどうたら言う時点で(ry
64デフォルトの名無しさん:2010/05/26(水) 13:18:42
DOS時代からMSCはSUBだったのは覚えている。
アセンブラのソースではよくゼロクリアにXORが使われてたが
8086だったらクロックや命令長で有利とかは無いはずだから、
Z80とか8080時代に何かあったのだろうか。
65デフォルトの名無しさん:2010/05/26(水) 14:07:49
>>64
8080/Z80だと命令長はXORもSUBも1バイトだし、クロックも最小だった。
でもなぜか、周りではみんなSUBじゃなくXORを使ってた。
もちろん、>>60の言うようなフラグどうたらの問題ではない。
(フラグを変えたくないようなレアケースではMOV命令を使ったから)

多分…小学校低学年で習うSUBに比べてXORはずっと高度な概念だから、
それを使う方が何となく「カッコ良かった」のかも知れないね。
66デフォルトの名無しさん:2010/05/26(水) 23:26:13
一応、理屈の上ではxorの方が
各bitの出力が他のbitに影響を与えない分
回路的には簡単になるはず。

だからといってクロックや消費電力に差がつくかというと
うーんという感じなのだけど。
67デフォルトの名無しさん:2010/05/26(水) 23:47:53
このサイト面白いよ。
ttp://hp.vector.co.jp/authors/VA003988/asm.htm
68デフォルトの名無しさん:2010/05/27(木) 20:34:59
ゼロクリアに xor 使うのは、決まり文句みたいなものだからね
subより分かりやすい
69デフォルトの名無しさん:2010/05/27(木) 21:46:13
subの方がxorより複雑そうなイメージだから
何となくxorの方を使ってしまう
まあ実際速度的に差はないんだろうが
70デフォルトの名無しさん:2010/05/28(金) 14:53:15
lsic86試食版はマニュアルがコンパクトにまとまっててよかったな。
標準ライブラリとかあのテキストファイル一枚でそうとう勉強になった。
71デフォルトの名無しさん:2010/05/28(金) 23:52:57
x86系なのに、引数渡しにレジスタを使うのは止めて欲しかった
72デフォルトの名無しさん:2010/05/31(月) 22:38:33
影の薄かった命令・・・LEA
73デフォルトの名無しさん:2010/05/31(月) 22:53:41
アセンブリプログラマにはたいへん有難い命令だが
74デフォルトの名無しさん:2010/06/01(火) 06:14:22
8086には、独立したNOP命令がない。(8080にはる)
NOPニモニックは、単にXCHG AX,AXの別名。
まぁ、実用上それで別に問題ないわけだが…
他にも、こういうCPUはたくさんあるんだろうね?
75デフォルトの名無しさん:2010/06/01(火) 09:11:10
jmp $+2がnop代わりとか。
76デフォルトの名無しさん:2010/06/01(火) 22:40:33
mov ax,axとかcmp bx,bxとか、使い道のない命令がいくつかあるね。
Z80だとLD (HL),(HL)はHLTに割り当てられていた。
77デフォルトの名無しさん:2010/06/01(火) 22:44:00
LEAは頻出じゃね?
78デフォルトの名無しさん:2010/06/03(木) 00:04:55
jmp short $+2で時間稼ぎ良くやったな
79デフォルトの名無しさん:2010/06/05(土) 21:24:35
NOPは3クロック、ショートJMPは11クロックくらいあったっけ確か。
80デフォルトの名無しさん:2010/06/08(火) 18:58:44
影の薄かった命令・・・LDS、LES
81デフォルトの名無しさん:2010/06/12(土) 13:21:48
おまいの頭皮のようにな
82デフォルトの名無しさん:2010/06/12(土) 19:31:09
どうせ面の皮は厚いんだろうけどねw
83デフォルトの名無しさん:2010/06/15(火) 11:24:35
Win95の頃になっても、config.sysにfcbsなんてパラメータがあるのに驚いた。
その時代までFCBファンクションなんか使っていたソフトあったのかな。
84デフォルトの名無しさん:2010/06/30(水) 22:25:20
int 29hって何だろう・・・
int 2ehって何だろう・・・

DOSの非公開機能って結構あったよね。
85デフォルトの名無しさん:2010/07/01(木) 13:12:01
ウイルスにフックされたのか?
((((;゚Д゚))))ガクガクブルブル
86デフォルトの名無しさん:2010/07/01(木) 13:22:14
と思ったら簡単に情報が見つかった(汗)
INT 29h 1文字出力
INT 2Eh DOSコマンド実行
87デフォルトの名無しさん: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デフォルトの名無しさん:2010/07/01(木) 22:40:40
MIFES
89デフォルトの名無しさん:2010/07/02(金) 17:18:46
俺はVz+VJE(or WXP)派
90デフォルトの名無しさん:2010/07/02(金) 20:40:58
Vz+WXII
91デフォルトの名無しさん:2010/07/02(金) 20:43:14
DOSエクステンダー(苦笑)
92デフォルトの名無しさん:2010/07/02(金) 20:45:21
emm386.sys
HIMEM.SYS
931:2010/07/02(金) 22:48:06
mifes派
94デフォルトの名無しさん:2010/07/02(金) 22:49:40
emm386はexe
95デフォルトの名無しさん:2010/07/03(土) 00:12:14
.sysの頃もあった。
96デフォルトの名無しさん:2010/07/04(日) 09:48:22
デバドラとしても、TSRとしても、外部コマンドとしても使える。
そんな器用なプログラムが流行ったな。
97デフォルトの名無しさん:2010/07/04(日) 09:55:51
kwsk
98デフォルトの名無しさん:2010/07/04(日) 12:50:32
Vz Editor のことか!!
99デフォルトの名無しさん:2010/07/04(日) 13:06:04
WinXPだが、Vzは今でも時々使ってるよ。
あの軽さと独特の使い心地は、そう簡単に手放せるもんじゃない。
100デフォルトの名無しさん:2010/07/04(日) 23:57:18
なぜ時々?

いつも使えよ
101デフォルトの名無しさん:2010/07/05(月) 00:14:59
TSRでありながらブロックデバイスとして登録される
smartdrv.exeも変わったプログラムだった。
102訂正:2010/07/05(月) 09:35:10
98依存だけど、懐かしい思い出が甦るサイト
ttp://www2.muroran-it.ac.jp/circle/mpc/front/old1/program/pc98dos/
103デフォルトの名無しさん:2010/07/05(月) 12:30:21
>>100
いや普段はViだからな。
あれとVzは用途がまるで違う。どっちか一つだけにはできない。
104デフォルトの名無しさん:2010/07/05(月) 22:20:12
>103
どんなとき、viよりvzが便利なの?
俺もviユーザなので、ちょっと気になった
105デフォルトの名無しさん:2010/07/08(木) 00:00:50
俺はDOS付属のedit派。
Windowsメモ帳とほぼ同じメニューだからとっつきやすい。
106デフォルトの名無しさん:2010/07/08(木) 18:48:56
男ならedlin
107デフォルトの名無しさん:2010/07/08(木) 19:36:14
真の男ならsymdeb
108デフォルトの名無しさん:2010/07/08(木) 19:41:31
と思ったら最近のOSには含まれてなかった(汗)
かわりにdebugを実行してみたら16ビットモードで起動した
109デフォルトの名無しさん:2010/07/08(木) 20:27:55
viユーザにとってはedlinの方がeditより使いやすい
110デフォルトの名無しさん:2010/07/08(木) 21:36:39
>>109は馬鹿な奴
111デフォルトの名無しさん:2010/07/08(木) 22:53:47
>>105
editって中身はQuickBASICから言語機能を外したやつだったっけ確か。
edit.comから起動される本体がqbasic.exeとかなってたような気がす。
112デフォルトの名無しさん:2010/07/08(木) 23:31:11
にしてもedlinってのはなあ。。。
113デフォルトの名無しさん:2010/07/09(金) 00:13:27
お前のeditだと、起動してから使えるようになるまで約10秒。

ところがedlinだと起動から「ファイル名を指定してください.」まで
約0.1秒。こいつは速い!
114デフォルトの名無しさん:2010/07/09(金) 09:45:10
男なら type con > main.c
115デフォルトの名無しさん:2010/07/09(金) 09:49:46
緊急時の
copy con autoexec.bat

copy con config.sys

ときどきやった
116デフォルトの名無しさん:2010/07/09(金) 13:13:12
ま、一度はやるわな
117デフォルトの名無しさん:2010/07/09(金) 20:19:03
暇だからDOS用の超軽量エディタでも作るか…
118デフォルトの名無しさん:2010/07/09(金) 21:15:59
edlinが14KBか…

>117
10KBで頼む
119デフォルトの名無しさん:2010/07/14(水) 22:29:34
メルコのMelwareとかに付いてた簡易エディタがあったよな
と思って調べたら36kBもあった。
中身を覗いたらMetaWare Cという余り聞きなれない処理系が使われてた。
120デフォルトの名無しさん:2010/07/23(金) 22:32:20
Z80から8086に入ってきたとき、86には条件リターンがないのに驚いた。
121デフォルトの名無しさん:2010/07/23(金) 22:39:19
movでフラグが変わらないとか
122デフォルトの名無しさん: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デフォルトの名無しさん:2010/08/25(水) 19:21:15
IXやIYを使うだけで嗤う香具師はおらん
IXやIYをアキュムレータのごとく使う香具師が嗤われる
126デフォルトの名無しさん:2010/08/25(水) 20:10:28
IX や IY はクロックをおもいくそ食うと思っていたが、HD64180 なんかでは状況はかわったのかなあ?
127訂正:2010/08/25(水) 22:50:37
8086系のCでも、SIとDIはレジスタ変数として使われる程度だね。
128デフォルトの名無しさん:2010/08/26(木) 04:34:12
ぷげら
129デフォルトの名無しさん:2010/08/26(木) 10:50:31
>>127
誰が作ったんだ?その糞コンパイラはw
130デフォルトの名無しさん:2010/08/27(金) 13:27:04
ストリングス転送命令は途中からあまり使われなくなったような気がする。
131デフォルトの名無しさん:2010/08/27(金) 16:14:18
UNICODEが流行ってASCIIZじゃなくなったからだろ
132デフォルトの名無しさん:2010/08/27(金) 16:19:38
ブロック転送命令は8/16/32bit長のどれも使えるぞ
133デフォルトの名無しさん:2010/08/28(土) 08:31:25
Pentium以降、単純機能の命令が非常に高速化されたので
ストリング転送命令のような複合命令を使う理由がなくなった。
VC++のmemcpyの実装を見ると使用可能ならxmmレジスタを使ってる。
134デフォルトの名無しさん:2010/09/15(水) 22:51:28
CTSって何する命令?
symdebで逆アセンブルすると時々出てくるんだけど。
135デフォルトの名無しさん:2010/09/15(水) 23:14:54
>>134
ClearToSend……ってギャグはさておき。
コードは幾つよ。CTSなんて記憶にないわさ。
136デフォルトの名無しさん:2010/09/15(水) 23:41:19
>>134
STC(SeT Carry flag) じゃなくて?
137デフォルトの名無しさん:2010/09/16(木) 00:04:59
>>135
0fh。

symdebのアセンブラで
db 0fh
db 00h
とやって逆アセンブルすると
0F00 CTS 00
と出てくる。
138デフォルトの名無しさん:2010/09/16(木) 00:41:43
>>137
そこには 386以降の命令が詰まっているような気が。
たしかにCTS ってなんのつもりだったんだろう?
139デフォルトの名無しさん:2010/09/16(木) 07:22:51
>>137
symdebの時代なら8086を想定しているだろうから、0fは未定義だね。
8086って、未定義命令割り込みってあったっけ? あればAPIでも用意されているとか。
140デフォルトの名無しさん:2010/09/16(木) 13:37:37
ない。
286以降でなかったかのう。

141デフォルトの名無しさん:2010/09/16(木) 14:46:27
0fhって8086ではpop csだったような気がす。
86だと実際にpopが行われるから、予めpush csしておくようにと
CPU判定方法に書いてあった。
142デフォルトの名無しさん:2010/09/16(木) 20:47:36
pop cs は、F0じゃないか?
286以降ではプリフィックスとして使われて
いわゆるF0バグを招いたやつ。
143デフォルトの名無しさん:2010/09/16(木) 21:44:25
0F0Hは8086もlock prefix
144デフォルトの名無しさん: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デフォルトの名無しさん:2010/09/18(土) 17:58:34
8086:
AX:汎用加減乗除計算用
BX:準汎用加減乗除計算/アドレッシング補助
CX:準汎用加減乗除計算/カウンタ(条件分岐命令、ループ命令で使用)
DX:汎用加減乗除計算用
SI:メモリ転送元インデクサ
DI:メモリ転送先インデクサ
BP:スタックフレーム用
SP:スタックポインタ
それぞれけっこうギチギチに役割がふられており実は自由度は少ない。
但し多少の加算減算程度は16ビットレジスタには許可されてた
程度。よって完全にコンパイラ向け。経験知でオプティマイズできる
余地は余り無い。
しかし当時はアセンブリ職人と自称する人は会社に一人や二人は居て
腫れ物に触るように扱われてたっけW
146デフォルトの名無しさん:2010/09/19(日) 13:30:22
>>145
>但し多少の加算減算程度は16ビットレジスタには許可されてた
>程度。
AL/AHとかの8ビットレジスタにも加減乗除演算が定義されてた(る)件

>よって完全にコンパイラ向け。
コンパイラ作成者泣かせなプロセッサと聞きました。(オプティマイズ
が難しい)
147デフォルトの名無しさん:2010/09/19(日) 14:17:21
レジスタ割り当ては面倒だから、使い方が固定されているなら
むやみに凝るのをやめて機械的にやるのも手だと思う
148デフォルトの名無しさん:2010/10/12(火) 23:11:58
保守
149デフォルトの名無しさん:2010/10/13(水) 21:45:06
大阪地検のFD書き換え事件って、笑っちゃうよね。
件(くだん)の検事も上司も、パソコンのことをなんにも知らないんだからね。
ミスであんな書き換えが起こることなんて100%あり得ないのにね。
150デフォルトの名無しさん:2010/10/13(水) 23:31:55
>>149
というか戻せばいいものを。
151デフォルトの名無しさん:2010/10/14(木) 01:31:35
>>149
言い訳としてはアホだけど
嘘も吐き通せば無罪だからな
戦略的には勝利だろ
152デフォルトの名無しさん:2010/10/16(土) 23:48:21
INT 21hの内容ってどこにあるんだ?
あとINT 21hでググると変なページが出るんだが
153デフォルトの名無しさん:2010/10/17(日) 00:55:40
>>152
ググったら一番上に来たよ…?
ttp://home.impress.co.jp/catalog/impress/bk4615/c0302.htm

変なサイトの方が気になる。これ?
ttp://int21h.jp/
154デフォルトの名無しさん:2010/10/17(日) 01:10:11
こっちのが詳しいかな。
http://www.ctyme.com/intr/int-21.htm
つっても、殆どは使われないものばかりか。
155デフォルトの名無しさん:2010/10/17(日) 09:48:22
>>153
そのページ
OllyDbgの画面に似てるしアクセスカウンターみたいなのもついてる

>>153,154
INT 21hの動作じゃなくて
DOSのなかにある機械語のこと
156デフォルトの名無しさん:2010/10/17(日) 10:30:53
新しい概念: DOSのなかにある機械語
157デフォルトの名無しさん:2010/10/17(日) 11:15:17
INT 21hってカーネルとかプログラムの中にあるんじゃないの
158デフォルトの名無しさん:2010/10/17(日) 11:45:58
floppy disk の中にある
159デフォルトの名無しさん:2010/10/17(日) 11:48:14
INT 21hがどのファイルのどこからどこまでがah=??のファンクションかを知りたい
160デフォルトの名無しさん:2010/10/17(日) 11:50:05
>>156
155じゃないけど、割り込みベクターも知らないなら黙ってりゃいいのに。
馬鹿丸出しだな
161デフォルトの名無しさん:2010/10/17(日) 12:11:39
debug使え
162デフォルトの名無しさん:2010/10/17(日) 12:26:27
いい年こいて説明の下手な奴が怒ってるな
163デフォルトの名無しさん:2010/10/17(日) 12:31:19
なんかトンデモ本作者と同じ論理だな。
相対性理論は俺に理解できないから間違ってる!、って奴だけどw
164デフォルトの名無しさん:2010/10/17(日) 15:39:15
いや、機械語ってのはDOSの中にあるとかないとかってもんじゃないだろ。
それとも何か? お前等の中には日本語が入っているのか?
165デフォルトの名無しさん:2010/10/17(日) 16:01:37
ベクタテーブル知ってるならそのアドレスからメモリダンプすれば
きっとDOSのなかにある機械語取れるよ
166デフォルトの名無しさん:2010/10/17(日) 21:02:05
漏れの中の人はきっと日本語よりも細かいマイクロコードで動いてる希ガス
167デフォルトの名無しさん:2010/10/18(月) 06:11:38
intはBIOS Interrupt Callsの略。実装は基本的にBIOSの中にある。
21HはDOSへ制御を移す、いわばスーパーバーザコールやAPIコールに相当する。
今はFreeBIOSなんてのもあるから、気になる人はソース見るとよろし。
そのコード量の多さに驚くと思う。
168デフォルトの名無しさん:2010/10/18(月) 06:32:48
intに「BIOSの」なんて意味はねーよ。

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

もちろん、Z80のRSTなんかもそうだが
それをソフト的に呼び出して特殊機能を実現する、というのは
かなり以前から行われていて
8086のintもその用途に使われることを前提に
割り込み番号の予約等を行っているのは確か。
169デフォルトの名無しさん:2010/10/18(月) 07:04:02
でっていう
170デフォルトの名無しさん:2010/10/18(月) 08:12:04
intに「BIOSの」なんて意味はねーよ。
171デフォルトの名無しさん:2010/10/18(月) 18:48:32
FreeDOSのソースとか見ればわかるの?
172デフォルトの名無しさん:2010/10/18(月) 18:56:27
MS-DOS ver6 のソースが流出した、
って本当なの?
173デフォルトの名無しさん:2010/10/18(月) 22:55:24
暇なときはdebugでDOSの内部を探検したもんだ。
174デフォルトの名無しさん:2010/10/19(火) 20:44:25
最新のMASMってDOSに対応してるのかな
175デフォルトの名無しさん:2010/10/19(火) 20:55:39
VC++ expressについてるmlでコンパイルできるが、linkが対応してない。
dos用のlinkを用意するとこんな感じでコンパイルできる。

ml /c /omf hello.asm
link /tiny hello.obj, hello.com;
176デフォルトの名無しさん:2010/10/19(火) 22:57:22
NASMは直接COMファイルを吐けるよね。
177デフォルトの名無しさん:2010/10/20(水) 05:33:18
でもDOSで動かせないの
178デフォルトの名無しさん:2010/10/20(水) 06:37:44
リンカってLNK562かLNK563ってどっちを使えばいいの
179デフォルトの名無しさん:2010/10/20(水) 06:42:08
>>178は自己解決しましたすいません
180デフォルトの名無しさん:2010/10/20(水) 07:25:02
stubを抜くんだ
181デフォルトの名無しさん:2010/10/20(水) 08:43:42
>>152
これで何を知りたいのか分かる奴がいたらどうかしているぜw

>>160
怒ってないでdebug使え
182デフォルトの名無しさん:2010/10/21(木) 12:33:37
com作るのにexe2binはいらなくなったのか・・・
183デフォルトの名無しさん:2010/10/21(木) 23:07:21
え、普通にtinyモデルで作ればcomじゃない
184デフォルトの名無しさん:2010/10/22(金) 00:38:49
B社のコンパイラしか使ったことないひとは
そういう認識でいればいいんじゃない
185デフォルトの名無しさん:2010/10/22(金) 07:55:27
まあ、B社はある意味偉大だからな。
少なくともL社よりはw
186デフォルトの名無しさん:2010/10/22(金) 23:56:49
BCやTCは癖があったからMS系の俺は馴染めなかった。
187デフォルトの名無しさん:2010/10/23(土) 00:35:37
VCの方がもっと癖あったけどな
188デフォルトの名無しさん:2010/10/23(土) 04:50:12
>>186
はて、どんなくせが?
189デフォルトの名無しさん:2010/10/29(金) 23:28:25
最近C#に凝り始めたんだけど、
beepというメソッドも用意されていて、本体のスピーカーを直接鳴らせたりする。
低レベルな操作に、ちょっぴりDOS時代を思い出したのであった。
190デフォルトの名無しさん:2010/10/30(土) 02:51:41
print '\a'
191デフォルトの名無しさん:2010/10/30(土) 21:52:29
>>189
音の高さや長さを自由に制御できるの?
ただ決まった音でピッと鳴るだけ?
192デフォルトの名無しさん:2010/10/30(土) 22:08:00
>>191
Win32 API呼べば好きなようにできるよ
http://msdn.microsoft.com/ja-jp/library/cc428923.aspx
193デフォルトの名無しさん:2010/10/31(日) 15:34:35
>>192
スレ違い
194デフォルトの名無しさん:2011/01/10(月) 22:32:46
保守
195デフォルトの名無しさん:2011/01/18(火) 22:35:33
CDからDOS起動したいんだけど、ブータブルCDの作成がうまくいかん
FDの起動イメージ作成してそれをISOに変換して焼いても起動しない。
どうすりゃいいんだああああああああ
196デフォルトの名無しさん:2011/01/18(火) 23:30:15
古いふる〜い ms-dos のプログラムが置いてあるところって、vector 以外にないですかね。
昔お世話になった ftp サイト(kuis とか)も、archie サーバーとかも、みんな逝ってしまった‥‥‥。
neko.com がほしいのですが。
197196:2011/01/19(水) 01:32:48
自己解決しました。
http://misdirection.oops.jp/2005/01/post_19.html

最近無性にふるい MS-DOS のプログラムが欲しくなりました。
nifty-serve のアーカイブを片っ端からダウンロードしておいて、MD にでも保存しておけばよかった。つくづく残念です。
いや、今からでも遅くはないから vector の dos のアーカイブを片っ端からダウンロードするべきか‥‥‥。
198デフォルトの名無しさん:2011/01/19(水) 01:45:54
ああ
ねこじゃらしもあったぬ
199デフォルトの名無しさん:2011/01/19(水) 02:41:51
大切なものは失ってから気付く
200デフォルトの名無しさん:2011/01/19(水) 13:33:24
でもMDには保存しないほうが
201デフォルトの名無しさん:2011/01/19(水) 14:39:30
>>195の件、俺も前から気になっていたのでちょっと調べてみた。
http://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デフォルトの名無しさん:2011/01/22(土) 23:19:41
PACK13000でも探したら?
203デフォルトの名無しさん:2011/02/04(金) 22:54:57
うちにくればpack13000があるのに、残念

neko.comって何のプログラムだっけ?
204デフォルトの名無しさん:2011/02/04(金) 23:02:48
nekoなつかしす
205デフォルトの名無しさん:2011/02/05(土) 01:09:35
TSR
206デフォルトの名無しさん:2011/02/20(日) 22:51:21.40
全サーバ全板10ms単位の表示になったな。
PC-98では1/100秒の計測ができなかったっけ。
後の方のmateとかになってようやく。
それまではタイマ割り込みで辛うじて計測した。
207デフォルトの名無しさん:2011/03/09(水) 22:37:32.79
208デフォルトの名無しさん:2011/03/10(木) 18:58:01.30
ある昔の本を読んでいて出くわしたのだが、PLink86って何だ?
BIOSで有名なPhoenix社の製品らしいが、
ぐぐってもオーバーレイリンカくらいにしか書かれてないし、
MS-Linkと具体的にどう違ったの?
209デフォルトの名無しさん:2011/03/10(木) 21:31:54.18
オーバーレイモジュールと言う過去の技術が使えたのです。
210デフォルトの名無しさん:2011/03/11(金) 09:08:02.60
.OVL
211デフォルトの名無しさん:2011/03/11(金) 12:55:44.41
mslinkはオーバーレイ使ってもファイルは1つなんだよな。
1つのファイルの中に複数のexeが入ってる。
212デフォルトの名無しさん:2011/03/11(金) 22:56:25.90
阪神大震災の頃はまだDOSが主流だったぬ
213デフォルトの名無しさん:2011/03/11(金) 23:24:33.12
win95が出たのは何月だっけ?

win3.1のマシンを買って、使いにくかったから
DOSマシンとして使ってた。
インターネットにつなげるときだけwinを立ち上げてたよ。
214デフォルトの名無しさん:2011/03/11(金) 23:46:36.37
11月くらいでなかったかのう
215 ◆0uxK91AxII :2011/03/11(金) 23:46:49.05
DOSだと、TEENっていうTCP stackがあったね。
216デフォルトの名無しさん:2011/03/15(火) 18:41:29.10
へえ
217デフォルトの名無しさん:2011/03/15(火) 20:09:44.49
NE2000とNOVELLのコンボ
あとカメレオンくらい
218デフォルトの名無しさん:2011/03/29(火) 22:25:02.49
PACK13000の後に
PACK19000goldなんてのが出てたんだな。
そういえば買ったような覚えがあるよ。
219デフォルトの名無しさん:2011/04/11(月) 22:52:54.14
保守
220デフォルトの名無しさん: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デフォルトの名無しさん:2011/04/12(火) 13:53:44.04
空気が読めないひと
222デフォルトの名無しさん:2011/04/12(火) 14:53:38.05
ここ見て懐かしくてまたやりたくなる人もいるだろうと思ってね

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

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

223デフォルトの名無しさん:2011/04/12(火) 15:07:15.18
お客さん、お部屋をお間違えでは?
224デフォルトの名無しさん:2011/04/13(水) 05:49:42.56
戻り値voidにしてるくらいだからネタだろ
225デフォルトの名無しさん:2011/04/13(水) 11:10:06.51
UNIXだと戻り値intが必要だがMS-DOSやWindowsならvoidでOK
226デフォルトの名無しさん:2011/04/13(水) 11:28:45.10
Windowsのコマンドプロンプトって
昔のTSRみたいなこと出来ないの?
227デフォルトの名無しさん:2011/04/13(水) 11:49:50.75
>>225
>UNIXだと戻り値intが必要だがMS-DOSやWindowsならvoidでOK
いや、その理屈はおかしい。
228デフォルトの名無しさん:2011/04/13(水) 11:52:17.64
厳密にはコンパイラの仕様なんだがMS-DOSやWindowsでよく使われる
コンパイラではvoidでも問題ないものが多くMS-DOSの解説では
mainをvoidにしてるケースは多い
GCCはintにしてないとたしか怒られたはず
229デフォルトの名無しさん:2011/04/13(水) 12:07:49.61
MS-DOS は void だと AX が戻り値になるんだろ
230デフォルトの名無しさん:2011/04/13(水) 12:22:28.78
exit(n)を使ってれば、voidだろうが問題なし。
231デフォルトの名無しさん:2011/04/13(水) 12:31:23.18
gccだとexit(n)使っていようが警告出るけどな
C言語の仕様ではintが正しいらしいがMS-DOSならどっちでもいいのでは?

「void main MS-DOS」で検索したら2番目にこんなページが出てきた
http://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デフォルトの名無しさん:2011/04/13(水) 12:37:47.02
exit(n)なりmainのreturn値なりがどういう意味を持つのか
分かってない奴が、混じってるように見える。
233デフォルトの名無しさん:2011/04/13(水) 12:42:10.33
>>232
そのへんはコンパイラが吐き出すコード見れば問題ないことがわかる
voidを指定あってもコンパイラはちゃんと0を返すコードを吐き出してる
234デフォルトの名無しさん:2011/04/13(水) 12:42:14.28
>>230
>>222 は exit(n) を使っているのか?
235デフォルトの名無しさん:2011/04/13(水) 12:42:37.14
OSの違いとコンパイラの違いの区別がつかないのもいるな
236デフォルトの名無しさん:2011/04/13(水) 12:43:14.56
>>229
AXじゃなくてALだよ
237デフォルトの名無しさん:2011/04/13(水) 12:52:21.59
つまりこういうことですねわかります
#include <stdio.h>
int main(int, char **){
    return printf("Hello Work!\n");
}
238デフォルトの名無しさん:2011/04/13(水) 12:52:59.69
「void main MS-DOS」の検索でこんなページも出てきた

http://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デフォルトの名無しさん:2011/04/13(水) 13:48:01.32
>>234
小学生みたいで微笑ましいが、まさか突っ込んだつもり?
240デフォルトの名無しさん:2011/04/13(水) 18:02:38.45
DOS3.1時代FDD環境でお世話になったLattice C パーソナル。
int mainのreturnでなにを返してもリターンコードは0になってたな。
241 ◆0uxK91AxII :2011/04/13(水) 19:14:46.75
>>226
OSにメモリ割り当てを任せた上で割込駆動するようなのは行えない。

>>236
ahに4cでalに戻り値だね。
242デフォルトの名無しさん:2011/04/13(水) 19:51:50.04
ERRORLEVEL
243デフォルトの名無しさん:2011/04/14(木) 00:08:37.65
comファイルならバイナリエディタでも作れるね
244デフォルトの名無しさん:2011/04/14(木) 00:28:21.31
>>225
make が使えなくなるのですが?
245デフォルトの名無しさん:2011/04/14(木) 22:12:33.86
DOSプログラムを終了させる方法を4つまで覚えてるけど、
まだ他にあったかな。もう思い出せない。

int 21h ah=4ch al=(ExitCode)
int 21h ah=00h
jmp 0
ret
246デフォルトの名無しさん:2011/04/14(木) 22:41:21.68
int 20h
csはpspを指していること。
247デフォルトの名無しさん:2011/04/15(金) 00:08:40.80
psp:0にあるのはcdh, 20h。つまりint 20h。
ret命令やjmp 0はint 20hを実行して終わる。
248デフォルトの名無しさん:2011/04/16(土) 21:45:40.90
psp:0へのfar jmpなら、exeファイルであっても
csはpspを指さなければならないという制約をクリアできる。
249 ◆0uxK91AxII :2011/04/17(日) 00:44:56.79
jmp farよりも、xor ax,ax; int 21Hの方が短い気がするする。
250デフォルトの名無しさん:2011/04/17(日) 17:36:05.08
comファイルなら。
exeでもコードセグメントが64kB 1つしかないスモールかコンパクトなら可能
251デフォルトの名無しさん:2011/04/17(日) 22:25:49.77
スモールやコンパクトモデルでもCSはコードセグメントを指してる。
初期値がPSPなのはDS。
252デフォルトの名無しさん: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デフォルトの名無しさん:2011/04/18(月) 19:55:13.72
BDOSエントリは0005hでなかったか?
254デフォルトの名無しさん:2011/04/18(月) 20:01:59.72
CPM-80ではそうだな。
こっちのはDOS独自のCPM互換機能で0x0050で正解。
CP/M-86には無い。
int 21, retfがあるだけ。
255デフォルトの名無しさん:2011/04/18(月) 22:49:59.27
>>251
あー、そうか。
Cの場合pspを指してるのはdsか。
256デフォルトの名無しさん:2011/04/18(月) 23:05:17.65
お前ら何語を話してるんだ?w
257デフォルトの名無しさん:2011/04/19(火) 05:58:51.81
爺共が久々に活性化w
258デフォルトの名無しさん:2011/04/19(火) 10:11:02.79
システムコール呼び出しでcall 50hなんて使ったことないな。
259デフォルトの名無しさん:2011/04/19(火) 23:59:57.68
親プロセス環境へのポインタ(非公開)がpsp:16h辺りにあったような気がする
260デフォルトの名無しさん:2011/04/21(木) 00:01:51.48
親プロセスのPSPのセグメントかな。
PSP:16-17hだったと思う。
261デフォルトの名無しさん:2011/04/28(木) 11:36:34.33
>>218
cd8枚組だっけか
買ったよ
次はDVDで出るかもなんて冊子に書かれてた
262デフォルトの名無しさん:2011/06/20(月) 22:08:52.71
LSI C-86は俺の青春。
何万円もしたCコンパイラが無料で手に入るなんて夢のようだった。
263デフォルトの名無しさん:2011/06/21(火) 12:43:24.37
でもパラメータのレジスタ受け渡しとかやってるのに
吐き出したコードの速度は遅いんだよな。

同じソースで吐き出したコードを比べると
Turbo-C > MS-C >> LSI-C
な感じ。
264デフォルトの名無しさん:2011/06/22(水) 08:26:38.88
LSI-Cの出力したアセンブリリストを加工するsedスクリプトを書いたなぁ。
それだけで数%は速くなった記憶が。
265デフォルトの名無しさん:2011/06/22(水) 21:09:03.72
この時代は何でも出来そうな気がしていた
266デフォルトの名無しさん:2011/06/26(日) 22:16:55.97
>>262
未だに使い続けてる俺
267デフォルトの名無しさん:2011/07/09(土) 09:57:32.88
問題
Turbo-C 2.0のメモリモデルの特徴を表にしてまとめなさい
268デフォルトの名無しさん:2011/07/09(土) 22:53:18.85
MS-Cとほぼ同じだけど、ラージだとスタックはDGROUPの外なのが目立ったな。
ヒュージだとDGROUPそのものが存在しない。
269デフォルトの名無しさん:2011/07/12(火) 22:14:03.78
その時代のMS-Cには、タイニーモデルはまだ存在してなかったね。
270デフォルトの名無しさん:2011/07/30(土) 13:03:37.64
【OS】MS-DOS、誕生から30年に [11/07/28]
http://toki.2ch.net/test/read.cgi/bizplus/1311974777/
271デフォルトの名無しさん:2011/07/30(土) 23:43:10.44
もう30年も経つんだな。
QDOSとかSCPとか懐かしい言葉だ。
DOS誕生の経緯は「MS-DOSエンサイクロペディア」に詳しく書かれてたけど、今でも持ってる。
272デフォルトの名無しさん:2011/09/01(木) 19:37:33.24
ぐぐっても見かけないからここにこっそり書き残しておこう
tasm32のparity?の生成コードはmasm等の逆
273デフォルトの名無しさん:2011/09/01(木) 22:21:02.45
ボーランドはアンチMSだったからな。

Turbo-Cのマウス制御関数の説明に、
「Microsoft形式のマウスには対応しておりません」
とキッパリ書いてある、なんてこともあった。
274デフォルトの名無しさん:2011/09/01(木) 22:35:37.48
そりゃマウスドライバの話だべ
275デフォルトの名無しさん:2011/09/02(金) 00:27:18.69
mouse.comとmouse.sysか

mouse.comのほうが見た目良かったんだが、再配布禁止だったからなあ…
276デフォルトの名無しさん:2011/09/02(金) 00:48:57.49
ソフト側ではどちらでも動くように作れてたような気がするし
ADDDEVなどで切り替えたりしてたような気もするし
今となってはどうでもいい小手先か
277デフォルトの名無しさん:2011/09/02(金) 01:15:19.43
>>276
基本同じなんだが、困ったことに微妙に違う所があったりした

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

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

279デフォルトの名無しさん:2011/10/08(土) 19:32:22.10
power.exeってMS-DOSの処理が空いている時にhalt命令で消費電力を
下げるらしいですが、ユーザープログラムでこの「空いてる状態」を
作り出すにはどうしたらよいでしょうか?
(C言語ならgetch()すればいい?)
280デフォルトの名無しさん:2011/10/09(日) 00:53:11.24
>>279
haltからの復帰には例外が必要。
自動的に復帰させるためには、haltさせる前に、復帰させるための例外を用意してやる必要がある。
タイマなんかを使うんでは無いかな。
281デフォルトの名無しさん:2011/10/09(日) 11:13:26.33
>>280
例外じゃなくて割り込みじゃないのか?
リアルモードで例外は扱えなかったと思ったけど。
282デフォルトの名無しさん:2011/10/09(日) 13:45:42.04
>>281
x86の場合には例外と割り込みを区別していたんだね。
知らなかった。

で、>>279が聞きたかったことって、power.exeを常駐させた上での話だったのかな?
なら、getch関数でDOSに制御が移るので空き時間作れると思う。
283デフォルトの名無しさん:2011/10/09(日) 18:56:19.31
ATならタイマIRQ0、9821ならカレンダIRQ15(初期の9821はよく知らん)が常時ぶん回ってるから
通常、hltで止まることはないよ(どのみちキー入力IRQ1で復帰するけど)
284デフォルトの名無しさん:2011/10/09(日) 19:10:56.89
DOSに制御が移る→暇そうならint 28h→power.exe
なんで、暇なら直接int 28hぶん回すのが手っ取り早いんじゃね
285279:2011/10/10(月) 00:33:50.30
回答ありがとうございます。

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

>>284
探していたのはそれだと思います。
int28hをググってみましたがint28hをフックするコードしか
みつけられず、int28hを呼び出す側はどのような値をレジスタに
セットしてcallすれば良いかわかりませんでした…。
286デフォルトの名無しさん:2011/10/10(月) 01:00:41.71
int28hは呼び出し側で特定のレジスタ値をセットする必要はないはずだよ
int28hは「DOSが暇な時に動いて欲しい複数の常駐物のチェーンの入り口」なんで
それぞれの常駐物が勝手に何とかしてるはず、ただ、スタック少なすぎるのはまずいかも

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

古い記憶なんで間違ってたらスマソ
287デフォルトの名無しさん:2011/10/10(月) 01:23:38.97
>>285直接コードにhalt命令を埋め込んでも・・・
>>283にも書いたけど9801(初期の9821はよく知らん)はカレンダIRQ15が無いんでまずいかもね
あと、hlt命令は仮想86モードだと一般保護例外になるんで
実際に実行されるhlt命令は仮想86モニタ(EMM386等)の例外処理内部のhlt命令になるよ
288279:2011/10/10(月) 10:40:18.65
>>286
int28hを試してみたいと思います。

>>287
開発はOpenWatcomのDOSエクステンダなので確か特権0で
動作していたハズですからhalt埋め込みも可能かも。と思っています。
対象CPUをPentium以降にしていますのでPC-9801はほとんどが外れます。
(ODP,CPUアクセラレータ機種は微妙ですが…)
289デフォルトの名無しさん:2011/10/10(月) 14:29:16.43
そういう動作環境なら特に問題ないかもね

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

98だとそもそもINT18 AH=0のキー入力BIOSが「キー入力バッファ監視無限ループ」なんだけど
power.exeがトラップしてpower.exe内部でループさせるようにしてhlt実行されとるね
290279:2011/10/10(月) 19:06:22.80
空ループの中でint28hを呼ぶ版と呼ばない版を用意して実験した結果、
呼ぶ版ではpower.exeのアイドル率が上昇しているのが確認できました。

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

有用な情報ありがとうございました。
291デフォルトの名無しさん:2011/10/13(木) 22:21:22.37
ハードを骨までしゃぶれたDOS時代は楽しかったな〜
292デフォルトの名無しさん: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 :2011/10/20(木) 01:15:23.37
>>292
256色の640*480なら、
outp(0x6a, 0x07);
outp(0x6a, 0x21);

http://www.webtech.co.jp/company/doc/undocumented_mem/io_disp.txt
294デフォルトの名無しさん:2011/10/20(木) 01:35:06.70
それだけで解像度まで変わったか?
295 ◆0uxK91AxII :2011/10/20(木) 03:39:41.71
変わらなかった。
/(^o^)\

>>292のようなGDCの設定に加えて、outp(0x9a8, 0x01);が要る気がしてきた。
296デフォルトの名無しさん:2011/10/20(木) 20:16:52.46
映らなくなったって事は何か足りないよりもパラメータ間違ってんじゃね?
297デフォルトの名無しさん:2011/10/20(木) 23:56:32.98
GDC 5MHz,HS 31KHz を対象にしているので 0x9a8 は関係ないと考えています。
298デフォルトの名無しさん: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デフォルトの名無しさん:2011/10/21(金) 18:05:04.21
BIOS解析してどういうパラメータ設定してるか見た方が早い気がする
300デフォルトの名無しさん:2011/10/21(金) 18:15:24.95
まあそうだねー
>>292の質問は画面映らなくて困ってるって話なんで、それは何とかなるやろ
301デフォルトの名無しさん:2011/10/21(金) 20:27:08.28
>>298
SYNCコマンドが1つ不足していたのと0x480を修正したら
テキストは左寄り&グラフィックは乱れていますが画面には映るようになりました。
ありがとうございます。

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

パラメータはもうちょっと調べて見ます。
302デフォルトの名無しさん:2011/11/02(水) 23:48:17.04
DOSの環境変数ってメモリのどこに記憶されているのでしょうか?
最初はDOSファンクションにあるのかと思っていましたがそれらしいのがなく、
CRT(getenv)のソースを見たらグローバル変数のポインタを参照して
その中から該当する文字列を返しているようでした。
たぶん、グローバル変数はStartupで設定されていると思うのですが…
303デフォルトの名無しさん:2011/11/02(水) 23:56:00.48
DOS(コマンドプロンプトではない)なら
PSPのどっかに、環境変数を示すセグメントが書いてあるよ。
304デフォルトの名無しさん:2011/11/03(木) 00:01:05.69
>>303
ありがとうございます。
やっぱりPSPですか…。
305デフォルトの名無しさん:2011/11/03(木) 00:02:32.20
ds:2c
306デフォルトの名無しさん:2011/11/03(木) 16:27:58.08
>>302
MS-Cならgetenv関数が用意してあるが
307デフォルトの名無しさん:2011/11/03(木) 17:24:10.86
既にgetenvのソースを読んだ人に向かって
getenvでできるよ(キリッ とか言われても・・・
308デフォルトの名無しさん:2011/11/03(木) 23:37:40.29
PSPの資料を見つけたのでなんとかなりそうです。
ttp://www5c.biglobe.ne.jp/~ecb/assembler2/7_5.html
309デフォルトの名無しさん:2011/11/11(金) 22:30:52.49
質問。DOS(16Bit)上からのCONFIG.SYSで読込む、デバイスドライバーの*.SYSや*.EXEのHEADER情報と、
実行(起動?)手順が知りたいのですが、ググッたが参考になる所が見つけられませんでした。
コマンドライン(又は、AUTOEXEC.BATからの実行)での*.EXEのHEADER情報は、色々と見つかり参考にさせて頂きました。
デバイスドライバー又はコマンドラインで実行できる形式の物を作りたいと思っています。
お指導・ご指南を、お願いいたします。
310デフォルトの名無しさん:2011/11/12(土) 07:36:04.35
EXEヘッダの情報と、デバイスドライバのヘッダの構造は勝手に調べてもらうとして
俺の記憶をたどると、
COM型ドライバはそのまま読み込まれ、EXE型はax=4B01(だったと思う)でロードされる。
後は、デバイスヘッダに書かれているアドレスに来るリクエストの指示に従って初期化や常駐等を行う。
デバイスヘッダは、とりあえずぐぐって最初に出てきたDR-DOSのページでも参考になるはず。
http://hp.vector.co.jp/authors/VA003720/lpproj/drdos/progdoc/sysprog/chap6j.htm
311デフォルトの名無しさん:2011/11/18(金) 20:38:14.53
emm386とかのUMB領域の検出ってどうやってるんだろう?
312デフォルトの名無しさん:2011/11/18(金) 22:57:49.03
4kBごとにメモリを読んで調べてたような・・・
怪しそうな領域はMSDで調べると「恐らく使用可」なんて曖昧な答えが出たりした。
313 【14.2m】 【東電 81.3 %】 :2011/11/20(日) 18:40:43.50
314デフォルトの名無しさん:2011/11/21(月) 01:16:07.22
>>311-312
該当アドレスにRAMを自作メモリーボードで繋げたら見つけてくれるんかな?
315デフォルトの名無しさん:2011/12/08(木) 22:23:44.01
316デフォルトの名無しさん:2011/12/15(木) 17:54:20.54
メガデモを98のDOSに移植したいんだけど、Milleniumを使う方法はないかね?
317デフォルトの名無しさん:2011/12/16(金) 23:43:42.65
シーラスロジックにしとけ。16ビットカラーも使える。
318 ◆0uxK91AxII :2011/12/17(土) 07:11:39.45
I/Oとメモリを見えるようにしてやれば使えるだろうけど、何かと手間
319デフォルトの名無しさん:2011/12/17(土) 09:21:34.34
PCIは起動時にI/Oとメモリを割り当ててるから普通に見えるだろ。
(9821ではブリッヂを経由すると割り当てられないらしいが。)

PCI BIOSを使えばデバイス検索、リソース検索はできるから
1M以上のメモリアクセスをどうするかだ。
320デフォルトの名無しさん:2012/01/10(火) 09:21:55.94
MS−DOSとは一体何だったのか
http://awabi.2ch.net/test/read.cgi/poverty/1326153783/l50
321デフォルトの名無しさん:2012/02/25(土) 21:41:54.99
保守

昔は1バイトでも節約するのに苦労してたのに、
今はアプリ1つ起動しただけで数100MB食う有様。
メモリがいくら安くなったとはいえ、食い過ぎじゃないかと。
322デフォルトの名無しさん:2012/02/26(日) 00:07:38.09
くたばれよジジイ
323 ◆0uxK91AxII :2012/02/26(日) 12:31:53.24
MS-DOSなら16[Byte]単位での節約だよねー。

くたばれよジジイ
324デフォルトの名無しさん: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 :2012/02/27(月) 18:58:37.49
>>325
C はよくわからないけれども、アセンブラですら、4バイト確保してseg:off だから、多分そうじゃないかな。
327デフォルトの名無しさん:2012/02/27(月) 19:15:13.91
>>291

今でもドライバ書こうとすれば…
328デフォルトの名無しさん:2012/02/27(月) 23:11:26.15
プログラミングはUNIX(SunOS)から入ったから、ポインタのNEARとかFAR
とかはハァ?って感じだった。
329 ◆0uxK91AxII :2012/02/28(火) 00:14:43.67
>>325
そこはFP_SEG, FP_OF, MK_FPを使おうか...。

>>327
X64なWindowsだと自由とはいかないんだけどね。
330 ◆0uxK91AxII :2012/02/28(火) 17:51:04.75
nearなら無関係だったか。
331デフォルトの名無しさん:2012/02/28(火) 18:51:22.22
MK_FPとかあったなー
今の今まで忘れてた
332デフォルトの名無しさん:2012/03/25(日) 10:39:32.43
Turbo C++でやってみたけどsmall/large/huge共にセグメントアドレスは入らなかった
333デフォルトの名無しさん:2012/03/25(日) 14:28:05.68
333
334デフォルトの名無しさん:2012/04/27(金) 01:08:04.98
シフトキー
capsロック
numlock等
実際にはキー入力されないキーを利用して
バッチファイルを条件分岐したい
適当なdosプログラムが探せないので
作りたい
バッチファイルで返り血を読む方法も
よくわからないです
335デフォルトの名無しさん:2012/04/27(金) 01:28:31.15
そいつはDOSの守備範囲外だ。
どの機種かはしらんがキーボードBIOSをつかうか、
あるいはキーボードI/Oを直接叩くしかないぞ。
336デフォルトの名無しさん:2012/04/27(金) 01:32:28.40
>>334
こんなもんだろう
 org 100h
 mov ah,02h
 int 16h
 mov ah,4ch
 int 21h
んでERRORLEVELで結果を見ればよろし
337デフォルトの名無しさん:2012/04/27(金) 05:34:38.03
昔ならBUで一発だったのにな
338デフォルトの名無しさん:2012/04/28(土) 00:11:39.06
>>336
それでできました
ありがとう
>>337
バッチユーティリティ落としました
いいですねこれ
339デフォルトの名無しさん:2012/04/29(日) 20:59:15.23
アセンブラでexe形式のソフトを作っているのですが
コマンドラインからの引数はどのようにすると参照できますか?
340デフォルトの名無しさん:2012/04/29(日) 21:30:29.06
341339:2012/04/29(日) 21:49:32.99
exe形式ならES:0000hのPSPを参照すれば引数がわかるんですね。
342デフォルトの名無しさん:2012/04/30(月) 22:22:15.63
psp:80hにコマンドラインの文字列が置かれ、同時にデフォルトDTAでもあった。
懐かしいねぇ。
343デフォルトの名無しさん:2012/04/30(月) 23:06:33.05
過去形じゃなくて今でもそうだけどな
344デフォルトの名無しさん:2012/05/01(火) 22:41:20.07
64bitOSの普及で過去形になりつつある。
仮想86モードがあっさり切られるとはね。
345デフォルトの名無しさん:2012/05/02(水) 00:16:55.51
ロングモードから仮想86モードに移行できないだけで
仮想86モードが切られたわけじゃないと思うが。
346デフォルトの名無しさん:2012/05/02(水) 13:44:20.24
逆アセンブラは何を使ってますか?
347デフォルトの名無しさん:2012/05/02(水) 22:39:58.48
symdeb
348デフォルトの名無しさん:2012/05/03(木) 10:12:33.13
wdis (the Open Watcom disassembler)

Current State|Wasm
http://www.openwatcom.org/index.php/Wasm
349デフォルトの名無しさん: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
http://www.youtube.com/watch?v=N8elxpSu9pw
351デフォルトの名無しさん:2012/06/23(土) 23:38:25.39
int 20

Linuxよこんにちは
352デフォルトの名無しさん: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デフォルトの名無しさん:2012/06/26(火) 19:18:07.23
秘孔を突いてしまったのですね
354デフォルトの名無しさん:2012/06/26(火) 21:58:52.30
まぁ、実験用のマシンだから別に壊れても構わない
355デフォルトの名無しさん:2012/06/27(水) 09:06:21.99
Cを覚え始めて楽しくなってきた頃、
>>352なことは誰もがやるよねw
356デフォルトの名無しさん:2012/06/27(水) 11:42:52.22
既にPC-8001でさんざんやった後だから、Cではポート叩くのはやってないなぁ。
精々RAMDISKのドライバ作ったくらい。
357デフォルトの名無しさん:2012/06/27(水) 11:48:31.07
>>355
誰もが? >>352とお前だけだ
358デフォルトの名無しさん:2012/06/27(水) 12:00:10.91
>>357
探究心のないやつだなぁ。乱数を使うのは間抜けかもしれないが。

>>356
RAMDISKが動いたことで嬉しくなって、しかも速いもんだからそのRAMDISK上で作業を続けて、
リセット掛かってなくなって我に返るのも、割りと誰もが通る途だよねw
359デフォルトの名無しさん:2012/06/27(水) 13:24:17.98
RAMDISK は cache にするべきだったな
360デフォルトの名無しさん:2012/06/27(水) 15:29:53.65
>>358
小学校低学年レベルの探究心の話をしてたのか
それは失礼w
361デフォルトの名無しさん:2012/06/27(水) 22:09:16.82
debugで適当なアドレスからトレス始めてPC内部を探検とかもやったなw
362デフォルトの名無しさん:2012/06/27(水) 22:14:21.10
ラムディスクでクラッシュはやった
363デフォルトの名無しさん:2012/06/28(木) 01:05:43.97
PC98用のハード叩きまくりプログラムをPC/ATのWin95DOS窓でうっかり動かしたら
いきなり沈黙して再起不能になったことが…

修理に出したらメイン基板交換で返ってきた
364デフォルトの名無しさん:2012/06/28(木) 09:10:02.24
昔、Libretto50をsymdebでROMをトレスしてたら
HDDクラッシュしたことがあったな。
365デフォルトの名無しさん: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デフォルトの名無しさん:2012/08/23(木) 13:17:29.93
>>365
regの値を見てキャッシュ制御とDMACアクセスを切り替えるという
涙ぐましい努力をしとるのです
367デフォルトの名無しさん:2012/08/23(木) 20:09:37.30
おお、ご存知の方がいるとは。
368デフォルトの名無しさん:2012/08/25(土) 11:25:55.41
DMAバンクレジスタ(ch2)だから競合しても問題ないだろ。
369デフォルトの名無しさん:2012/09/29(土) 15:53:11.03
@wktk.c
#include <stdio.h>

void main()
{
puts("+   +");
puts("  _∧_∧_ +");
puts(" (0゚・∀・)   ワクワクテカテカ");
puts(" (0゚∪ ∪ +");
puts(" と__)__) +");
}
370デフォルトの名無しさん:2012/09/29(土) 16:14:34.98
フロッピーディスクをフォーマットしたときに書き込まれるタイムスタンプと
現在のハードディスクにフォーマット時に書き込まれるタイムスタンプは
同じフォーマットですか?
371デフォルトの名無しさん:2012/09/29(土) 16:30:33.36
いいえちがいます
372デフォルトの名無しさん:2012/10/08(月) 02:05:40.26
>>1
debugコマンドってこと?
373デフォルトの名無しさん:2012/10/08(月) 02:19:10.80
プログラムのテスト/編集ツールであるデバッガを起動します.

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

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

DEBUG 起動後に, ? を入力するとデバッガのコマンド一覧が表示されます.
374デフォルトの名無しさん:2012/10/08(月) 08:20:39.61
debug.exe って XP (Vista ?) までは動いてたけど
Windows 7 だと入ってなかった orz
375デフォルトの名無しさん:2012/10/12(金) 17:23:52.51
NOP
376デフォルトの名無しさん:2012/10/13(土) 10:04:08.74
LOADALL
377デフォルトの名無しさん:2012/10/13(土) 23:58:51.23
そんな命令はない
という事になっているんだっけ?


378デフォルトの名無しさん:2012/10/14(日) 00:11:21.44
隠し命令だからね
しかも286と386で異なる
379デフォルトの名無しさん: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デフォルトの名無しさん:2012/10/17(水) 09:45:39.09
ありがとうございます!
381デフォルトの名無しさん:2012/11/25(日) 22:38:59.93
13:40頃、ヘリがヘリとしてはかなり高いところ(2000mくらい?)を2機東へ@川越
382381:2012/11/26(月) 22:27:09.61
誤爆失礼
383デフォルトの名無しさん:2012/11/26(月) 22:33:37.95
まちBBSか
384デフォルトの名無しさん:2013/01/01(火) 21:10:12.82
あけおめ です
385片山博文MZパンク ◆0lBZNi.Q7evd :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 :2013/11/08(金) 11:19:51.60
389デフォルトの名無しさん:2013/11/08(金) 15:19:24.67
え、自己レス?
390デフォルトの名無しさん:2013/11/08(金) 15:36:25.22
C言語と、どう違うん?
391デフォルトの名無しさん:2013/11/08(金) 18:26:45.00
DOSはへっぽこOSやがな
392デフォルトの名無しさん:2013/11/08(金) 21:21:10.88
>>391
CP/Mよりはかなりマシ
393デフォルトの名無しさん:2013/11/09(土) 00:16:22.82
核ミサイル制御はDOSがいい
394デフォルトの名無しさん:2013/11/09(土) 23:04:40.94
>>392
8ビットでまともなOSを作ろうとすると、失敗に終わったM-DOSみたいな結果になる。
CP/Mは必要最小限とはいえ8ビット環境に合致してたと思う。
395デフォルトの名無しさん:2013/11/09(土) 23:57:16.67
何を持って失敗と言ってるんだ?
396デフォルトの名無しさん:2013/11/10(日) 01:53:00.66
CP/M-86 は失敗だったな
397デフォルトの名無しさん:2013/11/10(日) 01:58:54.57
PC98用のWizardlyがなぜかCP/M-86だったのは覚えてる。
398デフォルトの名無しさん:2013/11/10(日) 02:52:20.30
CCP/Mは少なくともMS-DOSなんかよりはOSとしての機能を満たしてたな
399デフォルトの名無しさん:2013/11/10(日) 03:00:44.90
メモリ64KB、CPU8bit、CPUに仮想メモリ機能なし、
CPUにI/O保護機能なし、CPUにマルチタスク機能機能なし

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

その時代だと逆になにもしないほうが優れたOSだよ。
400デフォルトの名無しさん:2013/11/10(日) 03:10:30.62
>なにもしないほうが優れたOSだよ。

リソース管理というOSの仕事の根本が理解できないバカ
401デフォルトの名無しさん:2013/11/10(日) 03:13:03.87
いや、だからね。
その時代はそれすらもコストの高い処理で
ほとんど一つのアプリが専有状態になるんだよ。
知らないなら口開くなよ。
402デフォルトの名無しさん:2013/11/10(日) 03:18:57.52
管理するリソースは、ファイルシステムがメインで他はおまけ
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
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 リニアにアクセスできるのに。
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
468デフォルトの名無しさん:2013/11/27(水) 16:36:21.09
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
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のデモだったり、
ネット対応になったり、今はストア対応だろ?
全部デモが目的だからさ。
486i486: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じゃねーとか
493デフォルトの名無しさん:2013/11/28(木) 11:57:17.66
>>491

ここだよ

>>425
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
501デフォルトの名無しさん:2013/11/28(木) 19:19:44.73
How many files(0-15)?
502デフォルトの名無しさん:2013/11/28(木) 19:28:59.42
503デフォルトの名無しさん:2013/11/29(金) 09:01:37.00
英語版のみだったがQuick C And Assemblerを使ってた。.asmを統合環境でコンパイル出来た環境てのはそれまで見たことが無かった。
でも割り込みハンドラーはデバッグ出来なかったような
504デフォルトの名無しさん:2013/11/29(金) 09:11:18.05
>>452
80286以上の人はhimem.sysてのもあった
505デフォルトの名無しさん:2013/11/29(金) 09:15:45.21
Peter NortonのIBM-PC PS/2向けDOSプログラミング本がバイブルだった当時
506デフォルトの名無しさん:2013/11/29(金) 09:34:07.07
専ブラ使ってないひとって50個前のレスにレスする傾向があるよね
507デフォルトの名無しさん:2013/11/29(金) 13:19:46.25
>>503
>asmを統合環境でコンパイル出来た環境てのはそれまで見たことが無かった。

TURBO Cでできたよ
508デフォルトの名無しさん:2013/11/29(金) 16:00:06.93
統合環境の定義に入るかどうかは知らんが、
スタンダロンのICEなら普通にアセンブルもコンパイルもできたと思うが。
509デフォルトの名無しさん:2013/11/29(金) 17:50:49.66
Cならどれでもインラインアセンブラくらい付けてるだろ
510デフォルトの名無しさん:2013/11/29(金) 17:55:37.48
そんなことないぞ
511デフォルトの名無しさん:2013/11/29(金) 17:56:14.41
>Cならどれでもインラインアセンブラくらい付けてるだろ

ばかじゃねーの?
512デフォルトの名無しさん:2013/11/29(金) 17:58:42.01
TURBO Cでは別売りのTASMがあること前提だったかな
513デフォルトの名無しさん:2013/11/29(金) 21:24:44.58
>>511
昔を知らない子供なんだから仕方ないよw
514デフォルトの名無しさん:2013/11/29(金) 22:00:59.45
PascalといえばTurbo Pascalだが、Microsoft Quick Pascalというのを持っていたな。PC互換機向けのみで日本では発売されなかった。まあ、言語的にはオブジェクト指向のTurboには劣っていたが。
515デフォルトの名無しさん:2013/11/29(金) 22:01:48.83
LSI-Cのインラインアセンブラは妙に書きにくかったな。
_asm_c("mov\tax,bx\n");とか。
516デフォルトの名無しさん:2013/11/29(金) 22:05:38.55
インラインアセンブラと.asmソースをコンパイル出来ることは違うんだけど
517デフォルトの名無しさん:2013/11/29(金) 22:10:34.79
MSのCにはインラインアセンブラ無しの頃もあってだな・・・
518デフォルトの名無しさん:2013/11/29(金) 22:16:58.95
>>516
>インラインアセンブラと.asmソースをコンパイル出来ることは違うんだけど

誰かそんな話してるかな?
519デフォルトの名無しさん:2013/11/29(金) 22:32:26.99
>>518
統合環境アセンブラであるQuickC & QuickAssember 2.5に対して、インラインアセンブラなら普通にあるだろ的なツッコミがあったので
520デフォルトの名無しさん:2013/11/29(金) 22:38:44.46
>>519
>>509以降は違う話だろ。
521デフォルトの名無しさん:2013/11/29(金) 23:07:07.14
>>517
MS-C 4.xの頃までかな、5からインラインアセンブラ付いたような。時を同じくして最適化をチョロくしたQuickC 2.0が出た。コンパイラの言語仕様が同じだったとおもう。
522デフォルトの名無しさん:2013/11/29(金) 23:10:08.46
その当時のQuickとかTurboはRAMコンパイルが大流行りだった。まだHDDが高価でFDDのみのマシンが多かった時代、
523デフォルトの名無しさん:2013/11/29(金) 23:10:31.25
なんで昔話で議論できるんだろうね
すごいや
524デフォルトの名無しさん:2013/11/29(金) 23:12:05.12
スレタイが懐かしのってなってるやん
525デフォルトの名無しさん:2013/11/29(金) 23:14:37.46
今更実機も何もなくて確認しようもないことで議論になるのが滑稽だねって
526デフォルトの名無しさん:2013/11/29(金) 23:19:35.11
昔話のスレだから生暖かい目で見てやれよ
527デフォルトの名無しさん:2013/11/29(金) 23:26:54.88
>>525
実機? あるでしょ
528デフォルトの名無しさん:2013/11/29(金) 23:30:03.10
>>521
QC2.0にはインラインアセンブラ有ったんだよなw
529デフォルトの名無しさん:2013/11/29(金) 23:31:18.02
>>525
ソフトの話題なら実行環境だけじゃん。実機は必須ではないよ。
530デフォルトの名無しさん:2013/11/29(金) 23:31:57.37
MSDNでは今でもDOS6.22落とせるはずだからVirtual PCに仕込めば実機の出来上がり。QuickBASICやTurbo C++とかは当時のバックアップがないと厳しいか。
NEC 9801の再現はリアルマシンじゃないと無理か。
531デフォルトの名無しさん:2013/11/29(金) 23:33:31.82
>>528
有ったよ
ただし.asmファイルの扱いはQuickAssemberがセットになった2.5のほうだけ
532デフォルトの名無しさん:2013/11/29(金) 23:35:02.30
533デフォルトの名無しさん:2013/11/29(金) 23:37:35.51
日本語DOSが欲しい
534デフォルトの名無しさん:2013/11/29(金) 23:39:30.25
円馬鹿出ろ流石だな
これ当時のDOS版みたいだな
リリースがそれぞれ89年、91年か
535デフォルトの名無しさん:2013/11/29(金) 23:41:35.49
>>533
DOS6.2/VもMSDNでは提供してるとおもう、NECとかIBMとかDR/Novellとか無理かもな
536デフォルトの名無しさん:2013/11/29(金) 23:42:39.19
537デフォルトの名無しさん:2013/11/30(土) 00:02:47.87
Turbo PascalってCP/Mの頃からあったんだよな。ちょっと驚き。
538デフォルトの名無しさん:2013/11/30(土) 00:11:46.92
>>536
Turbo Visionの使える6.0ではない所が微妙に憎たらしいなw
539デフォルトの名無しさん:2013/11/30(土) 00:20:05.39
プログラミングではないが、随分前にMicrosoft Word 5.0(DOS版)をMSが無料開放してたことがあるが、もう無いのかな
540デフォルトの名無しさん:2013/11/30(土) 00:22:01.99
>>537
CP-M/86とかDOS1.0とかから弄ってた人ってここのスレに居るの?
541デフォルトの名無しさん:2013/11/30(土) 00:25:09.17
一時期DOS/OS2 dual 対応時代のコンパイラで遊んでたな。
Win2000のOS/2 subsystemでコンパイラも、
作ったプログラムもちゃんと動く。
542デフォルトの名無しさん:2013/11/30(土) 00:28:08.96
DOSが好きどすえ〜
543デフォルトの名無しさん:2013/11/30(土) 00:29:45.48
MS-DOS ってどうよ http://kohada.2ch.net/test/read.cgi/os/1010640399/
■■●DOSでネットワーク●■■ http://kohada.2ch.net/test/read.cgi/os/999912322/
LinuxはMS-DOSには敵わない http://kohada.2ch.net/test/read.cgi/os/1052038524/
CP/M-80,MSX-DOS,CDOS2を語れ! http://kohada.2ch.net/test/read.cgi/os/985981402/
DOS全般を語るスレ 2 http://kohada.2ch.net/test/read.cgi/os/1179114566/
9821のシステムをDOS/Vに移動する方法はありますか http://kohada.2ch.net/test/read.cgi/os/989765952/
■★▲DOSはまだ現役! Drive.C: http://kohada.2ch.net/test/read.cgi/os/1258659169/
DOS/V時代のゲームプレイ環境保全策 http://kohada.2ch.net/test/read.cgi/os/1000621670/
DOS欲しい奴いる? http://kohada.2ch.net/test/read.cgi/os/1226798909/
DOSの問題点を語るスレ http://kohada.2ch.net/test/read.cgi/os/1056294702/
MS-DOS系のインストールCD持ってる人いる? http://kohada.2ch.net/test/read.cgi/os/1214634503/
OSなんてDOSで充分だろ http://kohada.2ch.net/test/read.cgi/os/1124981902/
544デフォルトの名無しさん:2013/11/30(土) 00:29:48.16
DOS5に付属のQ-BasicなんてのもあったQuickBASIC4.5使ってた俺にはゴミツールでしか無かったが
545デフォルトの名無しさん:2013/11/30(土) 00:31:05.34
ベーマガには無料で使えるプログラミング言語として紹介されてたぞQBASIC
546デフォルトの名無しさん:2013/11/30(土) 00:35:38.22
>>545
言語仕様はQuickBASICなんだけど、EXE作れないとか、CやMasmで作る自作のQuickLibraryと連携出来ないとか、制約大杉だった
547デフォルトの名無しさん:2013/11/30(土) 00:43:06.07
>>545
ベーマガってのはザベとは違うんだっけ
548デフォルトの名無しさん:2013/11/30(土) 00:50:19.31
GW-Basicがビルゲイツの頭文字から命名されたってのは本当なのかね
549デフォルトの名無しさん:2013/11/30(土) 01:01:27.33
QBasicはWin95の頃まで有ったような気がする、多分、少なくともEditコマンドは有ったから
550デフォルトの名無しさん:2013/11/30(土) 01:37:18.84
そういやMS-DOSはver2までは開発環境(アセンブラ等)同梱だったけどver3以降それらが省かれたんだよな…
551デフォルトの名無しさん:2013/11/30(土) 01:42:44.55
DEBUG.EXEひとつあれば十分開発可能
552デフォルトの名無しさん:2013/11/30(土) 01:45:43.48
>>551
ハンドアセンブルは出来るけど、実用にならんだろ
553デフォルトの名無しさん:2013/11/30(土) 01:49:52.99
>>552
Aコマンドがあるのにハンドアセンブルなんかすんの?
554デフォルトの名無しさん:2013/11/30(土) 06:32:08.11
>>553
>>552がハンドアセンブルの意味を分かってない、に一票
555デフォルトの名無しさん:2013/11/30(土) 07:43:55.06
QuickBASICから言語機能を取り除いたものがMS-DOS Editorだったな。
edit.comだけで起動しようとしたらqbasic.exeが見つかりませんとか言われた。
556デフォルトの名無しさん:2013/11/30(土) 10:58:35.04
MS-DOS EditorとQbasicの導入で、Edlinは無くなったんだっけどうだっけ
557デフォルトの名無しさん:2013/11/30(土) 11:12:29.13
>>550
その後Windows時代になるとSDKかDDKの一部として無料配布されたような。masmの386版とか。更にその後はSDK/DDKがMSDN会員限定になったと思う。
558デフォルトの名無しさん:2013/11/30(土) 12:31:35.16
エクテンダーはスレチですか
559デフォルトの名無しさん:2013/11/30(土) 13:11:51.37
未来戦士エクステンダー
560デフォルトの名無しさん:2013/11/30(土) 13:27:30.00
DOS Extender時代の香り漂うOpenWatcom C++
あの時代のクロスコンパイラが動態保存されてるような感じ
561デフォルトの名無しさん:2013/11/30(土) 14:39:44.22
>>556
edlin、XPには入ってるよ。
7はうちのは64だから知らないけど、32には付いてるんじゃね?
562デフォルトの名無しさん:2013/11/30(土) 15:07:08.30
Win7 x86 Home Basic英語版だけどedlinは無かった。editは有った。でもqbasicは無かった。
http://i.imgur.com/ViHLCpe.jpg
563デフォルトの名無しさん:2013/11/30(土) 17:30:51.01
Windows7 x64 Ultimateにはeditもないな。x64環境でWin16アプリ起動しないのは知ってたけどDOSアプリも窓で起動しないんだっけ?
564デフォルトの名無しさん:2013/11/30(土) 17:34:10.76
しないよ
565デフォルトの名無しさん:2013/11/30(土) 18:05:55.47
x64のlongモードが仮想86モードをサポートしてない
566デフォルトの名無しさん:2013/12/01(日) 06:42:12.06
DOSBoxが必要
567デフォルトの名無しさん:2013/12/01(日) 08:13:58.43
>>562
Vistaにはedlinもeditもあるな
使い道ないけど
568デフォルトの名無しさん:2013/12/01(日) 18:16:12.93
そうかedlinが付いてたのはVistaまでか
569デフォルトの名無しさん:2013/12/01(日) 19:24:06.25
Edlinとか、ある意味拷問みたいなエディタだわな、DOS全盛期でさえconfig.sysの編集程度にか使えなかった
570デフォルトの名無しさん:2013/12/01(日) 19:33:39.78
cp/mのedと比べると使いやすかった(笑
571デフォルトの名無しさん:2013/12/01(日) 19:39:02.18
CP/Mのは知らんわ、そんなに酷いのか
572デフォルトの名無しさん:2013/12/01(日) 19:39:37.99
バッチファイルから呼び出して自動で編集させたり便利な使い方ができた
573デフォルトの名無しさん:2013/12/01(日) 19:44:06.74
昔使っていたDOS開発ツールが多分どっかのCD-Rにまとめてコピーして保管してあると思うから引っ張り出してみるかな
574デフォルトの名無しさん:2013/12/01(日) 21:27:20.02
>>569
ラインエディタはカーソル移動しなくて良いから慣れれば悪くは無いな
edlinの行編集は今のコマンドプロンプト以下だけどね
575デフォルトの名無しさん:2013/12/01(日) 21:55:36.00
>>571
sedの1行づつしか実行できないやつだと思えば
576デフォルトの名無しさん:2013/12/01(日) 21:56:46.49
>>575
Unixのed知らんのか
577デフォルトの名無しさん:2013/12/01(日) 22:08:55.60
ああ知ってるよ
昔はedとviを選べたた時期があったね
578デフォルトの名無しさん:2013/12/01(日) 22:20:04.51
今でも選べるだろ、つーかexと勘違いしてね?
579デフォルトの名無しさん:2013/12/02(月) 01:59:35.18
>>574
そのコマンドプロンプトに編集機能がついたのはDOS5付属の常駐プログラムDoskeyが最初か

edit/Qbasicの登場もDOS5の時だな
580デフォルトの名無しさん:2013/12/02(月) 22:13:16.11
doskey以前はhistoryとかki-shellとか使ってたな。
581デフォルトの名無しさん:2013/12/02(月) 22:22:31.40
MSDN会員ダウンロードにはWin3.1系統とDOS6がまだ有った。QB45もVB2も3も有った。しかしVB For DOSが見当たらない。QC20も25もC6も無い。
582デフォルトの名無しさん:2013/12/02(月) 23:13:03.66
>>580
それフリーウェアだっけ、雑誌付録のフロッピーとかに入ってる
583デフォルトの名無しさん:2013/12/02(月) 23:19:13.01
MS-DOS 4.01にはdosshellっていうマルチタスクもどきのGUI(アプリケーションローン茶みたいなの)がついてた。
実行中のDOSアプリを終了せずに別アプリに切り替えが可能だったんたけど、邪魔ですぐ外したのを覚えてる。

PC-DOS4のほうにはなかったかも知れない。
584デフォルトの名無しさん:2013/12/02(月) 23:23:10.95
>>581
PWBとMicrosoft BASICはないのか、あとフォートラン
585デフォルトの名無しさん:2013/12/02(月) 23:25:10.20
NEC PC9801用のハード固有のことやBIOSプログラムの扱い方を解説した分厚い通称青本てやつを持ってたひと挙手!
586デフォルトの名無しさん:2013/12/02(月) 23:25:47.44
>>584
PWBって何?
587デフォルトの名無しさん:2013/12/02(月) 23:31:14.77
>>586
Programmers Works Benchという、Quick系列とは微妙に違うエディタ
インタプリタ機能のないMS-CとかMS-BASICに付いてた。
588デフォルトの名無しさん:2013/12/02(月) 23:39:06.30
>>587
思い出した!あったあった。
でも周りはみなコマンドラインでコンパイルしてた。おれはその頃MSの最適化コンパイラ使ってなかった。
589デフォルトの名無しさん: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デフォルトの名無しさん:2013/12/02(月) 23:43:32.30
で、print.exeって何者?NEC MS-DOSの付属物?
591デフォルトの名無しさん:2013/12/02(月) 23:49:18.09
常駐プログラムの悪い見本
592デフォルトの名無しさん: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デフォルトの名無しさん:2013/12/03(火) 00:02:33.07
MSDNサブスクライバーにあるDOS関連は、DOSとQB45、masm 6.11
これで全てのようだ
594デフォルトの名無しさん:2013/12/03(火) 00:04:41.75
DOSアプリから見ると、NT5.1や5.2のDOSもどきはバージョン幾つに見えるんだろうか
595デフォルトの名無しさん:2013/12/03(火) 00:16:45.93
XP(NT5.1)ではDOS5.5、見せ掛けで5.0だな
596デフォルトの名無しさん:2013/12/03(火) 00:20:55.50
http://i.imgur.com/nMk77Pg.jpg
まずはこいつをインストールしてみます
597デフォルトの名無しさん:2013/12/03(火) 00:22:43.86
>>596
MS-DOS 6.22 US版?
598デフォルトの名無しさん:2013/12/03(火) 00:27:44.80
そう
そしたら何とUpgrade版との事で、元DOSがないとダメとか

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

Format c: /s
599デフォルトの名無しさん:2013/12/03(火) 00:31:49.92
そういえば、MS-DOS 6.xは、upgrade版しか、市販されていなかったような。
600デフォルトの名無しさん:2013/12/03(火) 00:34:32.03
でも一旦Cドライブを起動可能にしてしまえば自分自身を同じバージョンでインストールできるという裏技
601デフォルトの名無しさん:2013/12/03(火) 00:36:02.90
今のマシンでは耳かきのような200MBディスクを充てたがDOSには広すぎる
602デフォルトの名無しさん:2013/12/03(火) 00:40:58.28
しまった、VMWareとはいえ、CD-R読ますのにmscdexとか組まないといけないんだ。その前にCDROMドライブのデバドラどうすんだっけ
603デフォルトの名無しさん:2013/12/03(火) 00:43:27.84
DOS CD-ROMで、検索すると幸せになれるかもしれません。
604デフォルトの名無しさん:2013/12/03(火) 02:47:01.11
CDは手持ちのドライバMitsumiもGoldstarもだめで、後のWin95のMS-DOSモードで使われてたOAKっていう汎用ドライバで動いた。久しぶりに真面目にeditコマンド使ったわw

ちなみにDOS6.22の日付は、94/5/31。Win95の前の年なんだね
605デフォルトの名無しさん:2013/12/03(火) 02:50:01.04
ネットから入手した単品ファイルをどうやってDOSの中の人に伝えるか、という試練もあった。仮想フロッピーのイメージ作るソフトが無いと何も出来ない。
606デフォルトの名無しさん:2013/12/04(水) 21:10:09.40
WFW3.11インストールしたら一分と掛からなかった、軽過ぎ
けどTCP/IPプロトコルは何処から入手すればいいのかもう覚えてない
607デフォルトの名無しさん:2013/12/04(水) 22:15:31.59
英語?
608デフォルトの名無しさん:2013/12/05(木) 08:26:54.99
FreeDOSもLinuxも動く、JavaScriptで作られた x86エミュレータがスゴイ件
2013 年 10 月 18 日
http://www.softantenna.com/wp/software/x86-emulator/
609デフォルトの名無しさん:2013/12/05(木) 08:43:33.11
仮想マシンでのDOS運用はファイルの持ち込みが不便だな、USBも無いし、VMware Toolsも適用除外だし。昔はフロッピーがその役目をしてたけど今はそんな物もないし。仮想フロッピー必須だな
610デフォルトの名無しさん:2013/12/05(木) 09:51:56.23
あとは
VHDで数十MBのHDD作ってやりとりとか
Win3世代以降なら、さらっとiso作ってCD-ROM扱いとか
611デフォルトの名無しさん:2013/12/05(木) 10:09:32.22
>>607
えいごどす
612デフォルトの名無しさん:2013/12/05(木) 10:10:16.61
Win/Vなんて捨てちゃったな
613デフォルトの名無しさん:2013/12/05(木) 11:57:01.38
もったいない(w
614デフォルトの名無しさん:2013/12/05(木) 12:34:57.63
Win/VはWFWを日本語化できる点では素晴らしかったが、JPモードでのフォントがしょぼくて嫌だった。
MS-DOS/Vのフォントよりも酷かったからな

せめてPC-DOS/Vくらいの綺麗なフォントじゃないと
615デフォルトの名無しさん:2013/12/05(木) 14:03:05.60
>>608
何がスゴイんだかわからん
616デフォルトの名無しさん:2013/12/05(木) 15:41:07.42
JS上のx86エミュって1年くらい前にも話題になってなかったっけ?
617デフォルトの名無しさん:2013/12/05(木) 16:45:10.46
Javascriptで書いてもCやその他の言語で書いても労力的に大きな違いがあるとは思えないし、
x86のエミュレータなんて珍しいものではないし、Javascriptで書いてるのに意外と実用的な
速度で動いてるみたいな話であれば偉いのは実行環境のほうだし、何がスゴイんだかマジわからん。
618デフォルトの名無しさん:2013/12/05(木) 16:48:24.65
v8で動かしたら速いんかな
そんなことするなら普通にVMでいいし
619デフォルトの名無しさん:2013/12/05(木) 16:50:41.28
JSがインフラとして一歩ぬけ出た
パフォーマンスは後々改善していけばよい
620デフォルトの名無しさん:2013/12/05(木) 17:23:00.10
>>617
>何がスゴイんだかマジわからん。

無意味なことへの労力がすごいんじゃね
621デフォルトの名無しさん:2013/12/05(木) 17:33:05.92
スゴイと思う奴がいるなら無意味なことではない
622デフォルトの名無しさん:2013/12/05(木) 17:34:48.12
「すごい」ってのは個人的感想なんだから
他人が感じた「すごい」をいちいち理解してやる必要はない
623デフォルトの名無しさん:2013/12/05(木) 17:49:25.81
記事中で「スゴイ」と言っているのは以下の二点

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

x86エミュレーション自体は目新しいものではないし、この例をもって「JavaScriptでなんでもできる」は
言い過ぎだと思う。
結論としては、この記事の「スゴイ」に私は同意することができません。
624デフォルトの名無しさん:2013/12/05(木) 17:53:44.71
XMLみたいな立ち位置に持って行くんじゃないかな
625デフォルトの名無しさん:2013/12/05(木) 19:00:27.19
せめてWindows7でも稼働させたならすごいがDOSとか簡易なCUIを動作させるくらいなあ
626デフォルトの名無しさん:2013/12/05(木) 19:32:02.43
>>625
そこまでできたらインテルに潰されるじゃねw
627デフォルトの名無しさん:2013/12/06(金) 10:35:01.39
DOS用のLINK.EXE(ver 5.10)を引っ張り出したんだが、
起動するといちいちフロッピーを確認に行くようなんだけど対処法ある?
昔なんかやって止めた記憶があるんだけど思い出せない。
628デフォルトの名無しさん:2013/12/06(金) 11:07:49.92
なにかする、といえば
98で使えるようにint24だかの致命的エラーハンドラがどうのとか
PATHにA:が含まれてないかとか、そのくらいしか知らん
それこそWin95以降のRecentとかの話じゃないだろうし
629デフォルトの名無しさん:2013/12/06(金) 11:42:16.44
command.com=C:
みたいな環境変数なかったかな
630デフォルトの名無しさん:2013/12/06(金) 12:07:18.72
>>629
config.sysに書くcomspecとかだったような
アプリがメモリ食い過ぎてコマンドシェル領域潰してしまった場合に、アプリ終了後にどこからcommand.comリロードするか、みたいな指定だとおもう
631デフォルトの名無しさん:2013/12/06(金) 12:26:09.39
link.exeを起動するとなのか終了した時なのかで違ってくるかもな
632デフォルトの名無しさん:2013/12/06(金) 12:34:01.80
起動するとです。

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

link /? でhelp出してもやっぱりでる。
OS/2とデュアルサポート時代のバージョンなのでその辺が影響してるのかな。
ちなみにWindows2000のOS/2サブシステムで動かすと音は出ません。
633デフォルトの名無しさん:2013/12/06(金) 12:51:03.04
rmdrive a:
634デフォルトの名無しさん:2013/12/06(金) 12:54:09.97
>ガッと音がする。

どこかでぬるぽしているに違いない
635デフォルトの名無しさん:2013/12/06(金) 13:05:22.05
win32で動くdos用link.exe(Lnk563.exe)が見つかったのでそっち使います。
お騒がせしました。
636デフォルトの名無しさん:2013/12/06(金) 13:13:57.24
スレ的にはDOS版使わないとw
637デフォルトの名無しさん:2013/12/06(金) 13:27:37.04
昼休みの話し相手が居て良かったぬ
638デフォルトの名無しさん:2013/12/06(金) 13:29:23.12
超省メモリ設計を認証かなにかと勘違いするお子さまはお呼びじゃない
639デフォルトの名無しさん:2013/12/06(金) 13:33:29.74
Lnk563.exeはDOSエクステンダー対応のようでDOSXNT.EXEがあればDOSでも動きまする。
まあ、386以降とか制限は付きそうだけど。
640デフォルトの名無しさん:2013/12/07(土) 01:21:48.14
Win3.1用のリンカーとDOS用のリンカーって互換性有るんだっけ?どっちもMZ形式のEXE吐くんだよね
641デフォルトの名無しさん:2013/12/07(土) 01:30:31.52
Win3.1のexeは、MZヘッダーからはじまるDOSから起動された時用とNEヘッダーからはじまるWindows用の
二本立てだったと思う
642デフォルトの名無しさん:2013/12/07(土) 01:54:17.26
ああ、This program requires Microsoft Windowsってスタブの部分か
643デフォルトの名無しさん:2013/12/07(土) 01:58:29.34
仮想デバイスドライバのLEフォーマットは、.386も動的ロードが可能な.vxdも一緒なんだっけ?この当時の仮想デバイスドライバは片手間に練習した程度なので良く分かってないんだけど。
644デフォルトの名無しさん:2013/12/07(土) 11:07:44.24
>>640
.defの有無でDOS(MZ)用かWin3.x/OS2用かが決まる
.defの記述でWin3xかOS2かSTUBに何を使うかとか指定できる
645デフォルトの名無しさん:2013/12/07(土) 12:39:54.39
MS版OS/2がまだ残ってた時代か
今思えばWindows MeやVistaどころではない恥部みたいなもんだな
646デフォルトの名無しさん:2013/12/07(土) 12:42:34.23
90年頃のlink.exeだと、/QオプションでQB45用のライブラリ生成するオプションがあったな。なんでlib.exeではなくlinkの仕事なのか不思議てはあったが
647デフォルトの名無しさん:2013/12/07(土) 12:52:53.91
だってあれ、インタプリタでイメージ読み込んで実行できるんだからDLLみたいなもんでしょ>QLB
648デフォルトの名無しさん:2013/12/07(土) 12:54:52.40
そうだ、そう言えばQLBはインタプリタ環境の物だった。EXE生成時は使わないのか。
649デフォルトの名無しさん:2013/12/07(土) 13:03:27.18
QB45の当時はWin3の前夜でまだDLLみたいな知識は無かったしな

所でQBはPC互換機版には1~3も有ったんだけど、使ったことある人居るのかな
最初はQLBも無かったらしいから、行番のないGW-Basic程度だったのかな
650デフォルトの名無しさん:2013/12/07(土) 13:43:48.21
P-CODEを生成するオプションがあったよね
QBやVB、C++でも作れてたみたいだけど用途や仕組みが良くわからなかった
651デフォルトの名無しさん:2013/12/07(土) 13:54:37.07
QBは後に登場するVB以上に革命的だった
GWBasicのマシン語プログラムロードよりもクロス言語開発が楽になったし。事実上、使えるステートメントを無限に拡張できる最初のBasicだと思う。
652デフォルトの名無しさん:2013/12/07(土) 13:58:33.93
テキスト座標指定するQBのlocate文て、GW-Basicと同じrow, col指定だけど、これって9801版のQBも同じ仕様だっけ?
だとするとN88とは順番逆ってことになるけど、9801のN88ソース移植する時どうしてたっけ
653デフォルトの名無しさん:2013/12/07(土) 17:05:00.86
N88とはそもそも基本的なところで互換性のない文法が多すぎて、フツーに全面書き換えだった
そのうちめんどくさくなってdeclare sub N88LOCALE(x%, y%)とか作ったな
中学生の頃
654デフォルトの名無しさん:2013/12/07(土) 17:40:31.08
NEC版QBはMSの標準Basic仕様とN88との板挟みだったわけか。
確かQB自体はGW-Basicを行番付きのまま読み込んで実行できるのも謳い文句になってたしな。
655デフォルトの名無しさん:2013/12/08(日) 00:15:45.37
>>650
QBって、ネイティブコード吐かずに常にP-Codeかと思ってたけど違うの?
ネイティブコードを吐けるBasicは32bit版のみになったVB5からじゃないのかなあ。
656デフォルトの名無しさん:2013/12/08(日) 00:20:55.64
>>655
QBはネイティブコンパイラとインタプリタのデュアル環境で
MS-BASICはネイティブコンパイラ専用。
VB for MS-DOSもネイティブコンパイルできたぞ。
657デフォルトの名無しさん:2013/12/08(日) 00:31:58.04
MS-Basic7.1ってのを数回触った事があったけど、使い道が全然思いつかなかった。GWやQBみたいなテキスト画面制御程度のステートメントさえ全滅だったような。
何か自前のライブラリを当てないと画面もうごかせないのかな、それともまさかのAnsiエスケープシーケンス使え、だったのか、どこかにちゃんとMS謹製ライブラリが居たのか。
658デフォルトの名無しさん:2013/12/08(日) 00:42:49.58
そうか?QBの上位互換だった気がする
int 21hができたり、テキストベースのGUIライブラリやTrueTypeフォントの描画ルーチンが付いてきた記憶がある
くっそ遅かったがw
659デフォルトの名無しさん:2013/12/08(日) 11:21:18.80
MS Basic Compiler 7は劣化Cに成り下がって面白みがなかった
開発環境も使いにくいPWBになってしまったし
QBまではありだな

QB > 僕と契約して・・・
660デフォルトの名無しさん:2013/12/08(日) 11:57:46.43
VB For DOSは出た時話題になったが、既にWin3.0メインで使ってたからスルーしたな
661デフォルトの名無しさん:2013/12/08(日) 12:09:16.18
Basicはお手軽に使えるから良いのであって、大掛かりなアプリ開発するのにBasicわざわざ使うアホは居ないということだ
662デフォルトの名無しさん:2013/12/11(水) 08:23:06.19
PWB付き大型のBasic7て、どういう層をターゲットにした製品だったんだろ
お手軽Basic派はQB45、大型案件はC/C++だろうし、位置づけ微妙
663デフォルトの名無しさん:2013/12/11(水) 08:27:26.69
その中間層をねらってたりして?

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

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

でも、OFFると、C並の速度は出てた筈
Cコンパイラの方も相応にしょぼかったし
666デフォルトの名無しさん:2013/12/11(水) 09:09:30.57
というかだ、16ビット環境はセグメントがあるせいでポインタ演算は効率悪かったんで
C言語というのはそんな速い言語じゃなかったw
スピードが欲しければアセンブラ一択ですよ
667デフォルトの名無しさん:2013/12/11(水) 09:22:20.63
>というかだ、16ビット環境はセグメントがあるせいでポインタ演算は効率悪かったんで
>C言語というのはそんな速い言語じゃなかったw

プw
668デフォルトの名無しさん:2013/12/11(水) 09:37:15.65
文系は所詮こんな程度w
669デフォルトの名無しさん:2013/12/11(水) 11:15:12.87
ラージポインタは使ってもヒュージポインタを
ぶん回すようなまねはあまりしなかったな
BC7の頃は既に386が流通してて、
巨大なデータ配列をいじりたいならDOS/Extenderだった
670デフォルトの名無しさん:2013/12/11(水) 11:44:00.83
VCPIとか使うとI/O遅そうなイメージ
671デフォルトの名無しさん:2013/12/11(水) 12:02:48.85
当時のPCの場合プロテクトモードの
オーバーヘッドはそれなりにあったのだが、
ソフトEMS使ってるなら普通にDOS使ってるつもりでも仮想86の配下
672デフォルトの名無しさん:2013/12/11(水) 12:07:20.41
エクステンダーってint21h DOS APIは一瞬リアルに切り替えるとかして互換性保ってたとおもうけど、他のbios APIていうか汎用的なint86コールもフックとかしててそのまま使えたの?
673デフォルトの名無しさん:2013/12/11(水) 12:08:48.24
むしろ問題はEMS用にISAやCバスに遅いメモリをつんでた場合で、
これをメインメモリで使い出すとスピードががた落ちしていた
メモリカードバスのメモリなんてもう最悪
674デフォルトの名無しさん:2013/12/11(水) 12:13:30.73
>>672
DPMIしかしらないけど、BIOS系の代表的なのはフックしてたよ
それ以外は一度仮想86に変移してから呼び出すことになる
675デフォルトの名無しさん:2013/12/11(水) 12:22:46.39
>>674
フックしてプロテクトモードのまま動いてたの?もっともDPMIだと割込ベクターだけフックすれば、リアル前提のBIOSルーチンそのまま動いちゃったりする気もするけど
676デフォルトの名無しさん:2013/12/11(水) 12:32:10.09
むしろ、ほぼ全て(EMS関連とint2F関連以外)は
割り込みでプロテクトモードになったら、すぐにスタックを書き換えて
リアルモードでの割り込みハンドラの指すアドレスに戻るようにして
すぐに仮想86に戻るようにしていた

特別な処理が必要になるのは、これらの他はDMA関連のI/Oポートくらい
こいつらはUMBやHMA(FFFF:部)も含め、物理アドレスとは一致しなくなるので
外に出すアドレスを細工する必要があった
あ、あとA20のON/OFFも対応する必要があった
677デフォルトの名無しさん:2013/12/11(水) 12:38:40.10
VCPIやDPMIでも微妙なところはカバーできないので、
結局DOSエクステンダーのランタイムはなくならなかった
678デフォルトの名無しさん:2013/12/11(水) 12:48:52.30
いとしの仮想86
なぜにx64のlong modeからなくなっちゃったの
679デフォルトの名無しさん:2013/12/11(水) 13:03:37.51
>>677
そもそも、それらは仮想86ドライバ上でDOSエクステンダを動作させるための規格
なくなるわけないだろ
VCPIなんか、「LDTやるからてめーでやれ」だし
680デフォルトの名無しさん:2013/12/12(木) 21:15:36.34
DOSって、レトロを楽しむ以外に今は何かに使われてるの
681デフォルトの名無しさん:2013/12/12(木) 22:13:02.96
機械制御とかで使われてるんじゃないの?
ああいうのって画面いらないし、ネットワークもいらないし、
単に機械を制御できればいいだけだからシンプルなOSでいいんだよね。
マイコンでもいいぐらいだけどさすがに少しきついだろうということで
DOSぐらいでちょうどいい。
682デフォルトの名無しさん:2013/12/12(木) 22:22:57.46
未だにPC-9801使ってるとこもあるんだろうな
683デフォルトの名無しさん:2013/12/12(木) 22:55:53.79
俺の通ってた大学では実験室でPC9801使ってたよ
実験用の装置の動かすプログラムがBASICで組まれてた
684デフォルトの名無しさん:2013/12/13(金) 04:28:58.24
マルチスレッドに対応したDOSってあるの
685デフォルトの名無しさん:2013/12/13(金) 04:44:10.74
アプリが独力でマルチスレッドしてた

DOSじゃないけど同時代だと、
コンカレントCP/MやOS/9-68000とか対応してたな
686デフォルトの名無しさん:2013/12/13(金) 05:06:43.70
マルチスレッドはないけど、マルチタスクはできた
ユーザーが明示的に切り替えないといけなくて裏で勝手に動けたりはしない
687デフォルトの名無しさん:2013/12/13(金) 05:48:28.43
http://ideone.com/2Tx0rw
こんな感じ
688デフォルトの名無しさん:2013/12/13(金) 08:37:09.05
>>687
このソース、どう読めばマルチスレッドになるの
689デフォルトの名無しさん:2013/12/13(金) 09:17:29.82
f_1(); // 温度センサ値取得/表示
がいっぺんに
[温度センサの値取得]→[値表示]→[ウェイト]
をせずに小さい処理単位で返ってきて、次の
f_2(); // 圧力センサ 〃
に処理を渡せるから、人間からは
f_1(); // 温度センサ値取得/表示
f_2(); // 圧力センサ 〃
f_3(); // 加速度   〃
が同時に動作しているように見える。

マルチスレッドではなくマルチタスクだな。
690デフォルトの名無しさん:2013/12/13(金) 09:19:28.48
俺には単なるサブルーチンの逐次処理に見える
691デフォルトの名無しさん:2013/12/13(金) 09:26:07.13
まるちさぶるーちん
692デフォルトの名無しさん:2013/12/13(金) 10:15:19.75
これはMS-DOS時代の組み込みでよく使われた手法。
MS-DOSの常駐プログラムとかはもっとマシな方法だと思う。
693デフォルトの名無しさん:2013/12/13(金) 10:28:48.03
マルチスレッドのない環境で、処理を小分けにするっていう実装テクニックか。それなら分かる。
694デフォルトの名無しさん:2013/12/13(金) 15:26:30.61
タイマー割り込みでバックグランド処理を実装してたな。
InDOSフラグ見てファンクションリクエストを呼び出し中なら
次の割り込みを待ってたけど、
逆にバックグランドがファンクションリクエストを呼び出し中なら
処理を譲れないから、フォアグランドの処理がカクカクになる。
DOSのPRINTコマンドの使えなさを覚えているなら
どんなものかわかるだろう。
695デフォルトの名無しさん:2013/12/13(金) 15:36:20.82
print.sys と置き換えて使ってた気がする
696デフォルトの名無しさん:2013/12/30(月) 04:42:00.17
Undocumented DOSっていう洋書には随分世話になったな
697デフォルトの名無しさん:2013/12/30(月) 05:47:42.89
Interrupt Listもな
698デフォルトの名無しさん:2013/12/30(月) 06:59:57.33
Undocumented DOSはもうずいぶん前に売ってしまったが、
Interrupt Listは場所も取らないことだし、今でも記念に取ってある。
あと、「MS-DOS完全活用法」とか「IBM PC & 80286のすべて」なんかも
ついつい捨てられなくて今でも目の前にあるよ。
699デフォルトの名無しさん:2013/12/30(月) 12:42:28.59
ピーターノートン&ポールヤオ著のコレ持ってた

http://www.amazon.co.jp/gp/aw/d/4915673278/ref=redir_mdp_mobile
700デフォルトの名無しさん:2013/12/30(月) 12:48:31.60
http://i.imgur.com/p2Jun40.jpg
やっぱ絵になるなあ、カッコいい
701デフォルトの名無しさん:2013/12/30(月) 13:01:12.13
DOS時代、テキスト画面制御するのにテキストVRAM直接アクセスは常識だった。
負け組Ansiエスケープシーケンスは論外として、画面BIOSでは4.7MHzの初代機でモッサリだったので。
テキストVRAMは、初代機MDAのVRAMアドレスと属性がCGA以降と違ってたので、実行時判断も必要だった。
同じ要領でNEC-9801にも応用出来た。
702デフォルトの名無しさん:2013/12/30(月) 15:23:05.11
DOSコールによる文字出力だと、2バイト半角文字が二重に出されたりしたのを覚えてる。
SJISと被る1バイト記号を出そうとしたら、まとめて出力すると漢字になるけど1バイトずつ出すといけたり。
703 【大吉】 :2014/01/01(水) 09:15:04.39
DOSプログラミングの運勢。
704 【吉】 :2014/01/01(水) 09:27:46.76
>>703の運勢
705 【北電 74.6 %】 :2014/01/01(水) 15:56:37.02
我が家のPCの消費電力
706デフォルトの名無しさん:2014/01/04(土) 00:31:30.85
以前X86のLDSやLES命令をあまり見かけないという話が出てたが、
制御系の命令を除いたら、ENTERじゃないかと思う。
元々はPASCALの様な関数のネストが出来る言語向けの機能なのだが、
Delphiでも使ってくれてない。
707デフォルトの名無しさん:2014/01/04(土) 23:11:37.92
enterは第2オペランドの意味がよく分からん。保護が効くわけじゃないのに。
708デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2014/01/05(日) 22:03:29.25
詳しい説明さんくす
712デフォルトの名無しさん:2014/01/15(水) 21:36:44.02
delphiは素直に関数の最後の引数で1レベル上のebp引き渡してるね
713デフォルトの名無しさん:2014/01/15(水) 22:30:47.07
LEAはx64から急に使い出した
MOV RBX, offset LABEL なんてやったら
64bitの即値を代入することになって大変だ
714デフォルトの名無しさん:2014/01/17(金) 22:25:55.20
使わなかった命令No1はBOUNDだろ
登場したときはすでにINT5が使用済みだったという
715デフォルトの名無しさん:2014/01/17(金) 22:37:20.28
nop
716デフォルトの名無しさん:2014/01/17(金) 23:14:49.64
in/outのお供でnopは結構使ったかな
途中からjmp short $+2になって、
その次はなにやらどっかのI/O portにダミー出力してた記憶が
717デフォルトの名無しさん:2014/01/17(金) 23:24:40.81
fwait
718デフォルトの名無しさん:2014/01/17(金) 23:56:52.49
masmは全部の8087命令の前にfwaitを勝手につけてたけど、
いつの間にか付かなくなったな。いつからだろう。
719デフォルトの名無しさん:2014/01/18(土) 00:44:22.67
マルチプロセス?
720デフォルトの名無しさん:2014/01/18(土) 14:33:09.85
>>714
bound使うとプリンターからハードコピーが
721デフォルトの名無しさん:2014/01/18(土) 14:54:46.93
>>714
boundはwin9xで大活躍してるぞ
722デフォルトの名無しさん:2014/01/18(土) 16:46:11.76
64bit modeでは廃止になってるしなぁ
723デフォルトの名無しさん:2014/01/24(金) 14:42:37.62
fwaitは .8086指定で付く
8087はCPUから独立して直接バスとつながってた文字通りのコプロセッサだった
最近のMASMは .386がミニマムでデフォルトだからダメだな
724デフォルトの名無しさん:2014/01/24(金) 14:47:29.87
そういえば8086は微妙に動作が違ってたよね
cxがゼロのとき、loop や rep は 0xffff回ループしてたし
725デフォルトの名無しさん:2014/01/24(金) 15:31:15.89
>cxがゼロのとき、loop や rep は 0xffff回ループしてたし

CXが0のときと65535のときでループ回数が同じ? んなわけないと思うがなあ。
726デフォルトの名無しさん:2014/01/24(金) 15:43:27.70
ああごめん、0x1000回だな
727デフォルトの名無しさん:2014/01/24(金) 15:44:02.89
もいっこたりない、0x10000だ
728デフォルトの名無しさん: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デフォルトの名無しさん:2014/01/29(水) 22:31:03.43
9801スーパーテクニックに詳しい判別法が載ってたね。
8086と186はpop csで見分けてたような。
730デフォルトの名無しさん:2014/01/30(木) 06:47:47.58
>>728
>8086 push sp; pop ax; sp != ax
!!!!なんでだ?
731デフォルトの名無しさん:2014/01/30(木) 10:04:10.04
sp+=2される前にスタックに入れられるかされた後に入れられるかの違い
732デフォルトの名無しさん:2014/01/30(木) 12:15:55.19
なんで sp+=2 されるんだ
733デフォルトの名無しさん:2014/01/30(木) 12:53:09.11
popの動作も sp <- [sp], sp += 2だから
push sp, pop spをペアで使えば大丈夫だ問題ない
734デフォルトの名無しさん:2014/01/30(木) 13:08:37.74
ああ、push時は-2だったな
735デフォルトの名無しさん:2014/01/31(金) 12:48:51.64
CPUID以前の互換CPUの見分け方は何かありましたっけ?
AMDとかCYLIXとか
736デフォルトの名無しさん:2014/02/15(土) 04:35:50.10
>8086 push sp; pop ax; sp != ax
これって万が一、同じ数値がスタックに入っていたって事は無いの?
737デフォルトの名無しさん:2014/02/15(土) 05:03:36.87
>>736
何言ってんの??
738デフォルトの名無しさん:2014/02/15(土) 10:49:42.54
SP「俺の名前を言ってみろ」
739片山博文MZ無能 ◆T6xkBnTXz7B0 :2014/02/15(土) 12:37:34.24
スペシャルスタックポインタ
740デフォルトの名無しさん:2014/02/15(土) 17:45:09.43
すっぽん
741デフォルトの名無しさん:2014/02/15(土) 21:39:33.80
DOS用のForthおしえて
742デフォルトの名無しさん:2014/02/15(土) 22:09:41.69
743デフォルトの名無しさん:2014/02/16(日) 23:18:39.26
Delphi始めたんですけど、複雑でわからないんで、Quickbasicに戻りたいんですけど、
もうないんですかねぇ。
744デフォルトの名無しさん:2014/02/17(月) 00:08:16.64
Win32で動く互換品でよければ、
QB64(32bit版もある)でいいんとちゃう
745デフォルトの名無しさん:2014/02/18(火) 20:01:20.24
>>744
ありがとうございます。
便利なものがあるんですねー。
>>744さんと制作者さんに感謝^^
746デフォルトの名無しさん:2014/02/21(金) 13:00:41.98
Cコンパイラを初めて使ったとき、その吐き出したコードの大きさに驚いた。
Hello, worldが2kBくらいになって出てきたから。
アセンブラなら
 mov dx,label
 mov ah,9
 int 21h
 ret
label:
 db 'hello, world.',13,10,'$'
たった24バイトで作れるのに。
当時まだFDD2台だったが、こりゃHDDが必要だなと感じたよ。
747デフォルトの名無しさん:2014/02/21(金) 22:00:15.53
スモールモデル: コード64kB データ64kB

(8bit環境から見ると)全然スモールじゃないやん・・・
748デフォルトの名無しさん:2014/02/21(金) 22:12:43.44
8080でもコードとデータでそれぞれ64KBのメモリ空間持てるし大したことではない
749 ◆QZaw55cn4c :2014/02/22(土) 04:01:12.27
>>747
お前タイニーモデルをしらんのか?
750 ◆QZaw55cn4c :2014/02/22(土) 04:02:12.01
>>748
8080 はコード・データ他スタックもみな共用での 64KB だ
751デフォルトの名無しさん:2014/02/22(土) 04:37:55.46
>>750
外から区別できるの知らんのねw
752 ◆QZaw55cn4c :2014/02/22(土) 09:12:33.72
>>751
8080にMMUのようなものは内蔵されていないからね
IOポート番号を16bit とれるようになったは Z80 からだね
753デフォルトの名無しさん:2014/02/22(土) 11:09:45.41
スモールにしろタイニーにしろ
それを超える範囲のメモリにアクセス出来ない訳じゃない
単にセグメントディスクリプタのデフォを適当に初期化してくれるだけ
754デフォルトの名無しさん:2014/02/22(土) 11:38:39.71
>>752
SYNC信号がHIGHのタイミングでデータバスを見れば、コード/データ等外部で判別可能。
http://www.classiccmp.org/dunfield/r/8080.pdf
http://en.wikipedia.org/wiki/Intel_8080
755 ◆QZaw55cn4c :2014/02/22(土) 14:56:22.30
>>754
それでどうやって >>748 のコードセグメントとデータセグメントをそれぞれ別に64KB確保できるようになるのか?
756デフォルトの名無しさん:2014/02/22(土) 15:28:13.23
スタックセグメントもデータセグメントとは別に64KB確保できるな
757デフォルトの名無しさん:2014/02/22(土) 16:03:56.04
8080にセグメントの概念などない
758デフォルトの名無しさん:2014/02/22(土) 16:12:48.73
アクセスの種別によってメモリ空間を分けることは可能だし、それをセグメントと呼んでも差し支えない。
759デフォルトの名無しさん:2014/02/22(土) 16:15:27.07
後期のZ80 BASICマシンのメモリレイアウトなんて
ほとんど曲芸状態だったよな
760デフォルトの名無しさん:2014/02/22(土) 16:19:07.68
いや全然
761デフォルトの名無しさん:2014/02/22(土) 16:27:34.62
>>758
理屈じゃなく過去の具体的な実装事例は?
762デフォルトの名無しさん:2014/02/22(土) 16:32:17.51
>過去の具体的な実装事例は?

そんな話誰もしてないだろ
763デフォルトの名無しさん:2014/02/22(土) 16:57:12.73
Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
コードとデータの分離や切り替えが効かないとはじまらんだろ
764デフォルトの名無しさん:2014/02/22(土) 16:57:14.65
データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?

>アクセスの種別によってメモリ空間を分けることは可能だし、
おいおい、データがきてからアドレスバスを変えるのかよ?なんのためにあんだけのマージンとってんだ?
765デフォルトの名無しさん:2014/02/22(土) 16:59:18.33
>データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?

>おいおい、データがきてからアドレスバスを変えるのかよ?なんのためにあんだけのマージンとってんだ?

なんだ、タイミングチャートも見れない素人かw
766デフォルトの名無しさん:2014/02/22(土) 17:03:51.14
>>763
>Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
>コードとデータの分離や切り替えが効かないとはじまらんだろ

バンク切り替えやI/OにVRAM置いたり色々実装はあったが、コードとデータの分離をやった例って聞いたことないわ。
Z80は命令も多いし外部回路でM1サイクル監視するにしてもコードの4バイト目まで判定するのは骨だろう。
767デフォルトの名無しさん:2014/02/22(土) 19:02:02.20
コードとデータが分離できてりゃ
バッファオーバーフロー脆弱性なんか
起こらないだろうね。

そんなもんあんの?
768デフォルトの名無しさん:2014/02/22(土) 19:10:11.64
>>767
意味知らないで「バッファオーバーフロー」とかって恥ずかしくない?
769デフォルトの名無しさん:2014/02/22(土) 19:10:55.40
石頭ハード屋の妄想はつまらんわ
770デフォルトの名無しさん:2014/02/22(土) 19:14:02.65
>>768
意味なら調べればよかろう?

http://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_01.html
> バッファオーバーラン(注1)
> バッファオーバーラン問題は,C 言語やC++ で書かれたパッケージソフトウェアが
> 抱えるセキュリティ脆弱性の中で最も頻繁に報告されるものの一つである。
>  
> バッファオーバーランとは元々,コンピュータのメモリ上の領域(バッファ)よりも
> 大きなデータが渡されているのにプログラムがそれを見逃して領域あふれ(オーバーラン)が
> 起きてしまうことを指す。ところが,こうした欠陥を《うまく》悪用すると,
> そのプログラムのメモリ上に任意のマシン語プログラムを送り込み実行させることが可能になる場合がある。
> 標的プログラムが高い権限で動作するものだった場合,その権限を乗っ取って対象コンピュータを意のままに操ることができてしまう。
>  
> (注1・「バッファオーバーフロー」とも言う。本稿では「停まるべき箇所で停止できなかった」
> というニュアンスが強い「オーバーラン」の語を主に用いている。)

それで君はなにがいいたいのだ?
771デフォルトの名無しさん:2014/02/22(土) 19:21:16.00
>>770
>> バッファオーバーランとは元々,コンピュータのメモリ上の領域(バッファ)よりも
>> 大きなデータが渡されているのにプログラムがそれを見逃して領域あふれ(オーバーラン)が
>> 起きてしまうことを指す。

自分で引用してて↑の内容がコードとデータの分離とは関係ないって理解できないのかw
772デフォルトの名無しさん:2014/02/22(土) 19:30:31.26
馬鹿には無理
773デフォルトの名無しさん:2014/02/22(土) 19:58:39.00
「ハードに比べたらプログラミングなんて子供の遊びレベル」と
うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。
生半可な断片知識で専門外の領域にしゃしゃり出てきて大恥かくのも毎度のこと。
774デフォルトの名無しさん:2014/02/22(土) 20:03:46.62
>「ハードに比べたらプログラミングなんて子供の遊びレベル」と
>うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。

よほどのコンプレックスがあるらしい
775デフォルトの名無しさん:2014/02/22(土) 20:08:10.35
普段誰からも相手にされず、寂しさと承認欲求のあまり
ここに来てみたんだろうが… 哀れなもんだなw
776デフォルトの名無しさん:2014/02/22(土) 20:15:01.69
>>774
で、773の最後の行は否定しないのな(笑
777デフォルトの名無しさん:2014/02/22(土) 20:31:09.11
>>773
よくわからんのだけど「生半可な断片知識で専門外の領域にしゃしゃり出てきて大恥」って
>>767=>>770 のこと? どうみてもハードもソフトも分かってない風だけど。
778デフォルトの名無しさん:2014/02/22(土) 20:47:00.10
>>777
必ずしも 専門=エキスパート じゃないけどな
どんなに落ちこぼれであっても、ある分野で飯食ってりゃ一応専門家
779 ◆QZaw55cn4c :2014/02/22(土) 22:22:32.61
>>767
6809

スタックを分離するだけでわりと十分
780デフォルトの名無しさん:2014/02/22(土) 22:24:07.92
バッファオーバーフローとスタックは直接関係ないので間違い
781デフォルトの名無しさん:2014/02/22(土) 22:49:42.64
>>777
いんや、お前のこと。
782デフォルトの名無しさん:2014/02/22(土) 22:52:39.91
理屈も語れない馬鹿がなんか言ってるなw
783デフォルトの名無しさん:2014/02/22(土) 22:53:33.46
>>771
コードとデータの分離は関係あるよ。

データ部分の実行を制限するのがNXビット
もちろんこれは比較的最近作られたもの

http://ja.wikipedia.org/wiki/NX%E3%83%93%E3%83%83%E3%83%88
NXビットは、端的に言えば「データの誤実行」を防ぐために用いられる。
そのしくみは、メモリをコード(プロセッサ命令)領域とデータ領域とに分離し、
データを配置したメモリ領域にあらかじめ特別な印(属性)を付与することで、
この領域のデータを実行しないようにする(実行を試みた際に例外=エラーを発行する)ものである。

典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に
置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、
オペレーティングシステムとCPUの協調により保護するために用いられる機能である。
その機能自体は、汎用機やワークステーション等の分野では既に特に目新しいものではなかったが、
パーソナルコンピュータ用に最も普及したIA-32/AMD64アーキテクチャにおける実装は比較的最近の出来事であり、
最初に実装したAMD64系列が搭載したものを"NXbit"と呼称したため、一般にはこの名称が普及した。

ノイマン型アーキテクチャのコンピュータでは、プログラムをメモリ上にデータとして読み込み、逐次実行する。
メモリを読み取った際それがデータであるかプログラムであるのかを、単にメモリ上のデータのみをもって判断することは、
ノイマン型では本質的に不可能である。バッファオーバーラン(バッファーオーバーフロー)等と呼ばれる攻撃は、
ノイマン型コンピュータのこのような性質を悪用して行われる。
784デフォルトの名無しさん:2014/02/22(土) 23:05:12.78
>>783
バッファオーバーラン攻撃って目的が任意のコード実行とは限らないんでトンチンカンなこと言ってますよ
785デフォルトの名無しさん:2014/02/22(土) 23:08:23.73
>>784
え? だからなに?
バッファオーバーラン攻撃の目的が任意のコード実行だ。とは
ひとことも言ってないけど? そんな話してないけど?

コードとデータの分離の話。

コードとデータの分離なんてされてないのが普通。
786デフォルトの名無しさん:2014/02/22(土) 23:18:41.88
>コードとデータの分離なんてされてないのが普通。

ハーバードアーキテクチャも知らない人か…
787デフォルトの名無しさん:2014/02/22(土) 23:21:16.63
>>785
> え? だからなに?
> バッファオーバーラン攻撃の目的が任意のコード実行だ。とは
> ひとことも言ってないけど? そんな話してないけど?

↓を引用しててよく言うww

> 典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に
> 置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、
> オペレーティングシステムとCPUの協調により保護するために用いられる機能である。
788デフォルトの名無しさん:2014/02/22(土) 23:30:52.76
>>786
今のパソコンはハーバードアーキテクチャではなくて
ノイマン型アーキテクチャですよ。

なにみんなと違うコンピュータの話してるのさ?
お前の話はみんなと違うコンピュータの話だったんだな。

通りでずれてるはずだ。
789デフォルトの名無しさん:2014/02/22(土) 23:32:36.43
>>787
引用した先が言っていることは、
俺が言っていることじゃないし。
790デフォルトの名無しさん:2014/02/22(土) 23:42:48.50
>>788
> 今のパソコンはハーバードアーキテクチャではなくて
> ノイマン型アーキテクチャですよ。

いつからパソコン限定の話になったの??
791デフォルトの名無しさん:2014/02/22(土) 23:43:49.87
>>789
お前が引用したこと。

関係ないなら引用しなければ良かっただけ。
792デフォルトの名無しさん:2014/02/23(日) 00:34:18.07
>>790
じゃあ現在使われている
ハーバードアーキテクチャを使った
ものを言ってみて。
793デフォルトの名無しさん:2014/02/23(日) 00:40:16.53
794デフォルトの名無しさん:2014/02/23(日) 01:53:28.66
それwikipediaじゃんw
知らないから調べましたってか?w
795デフォルトの名無しさん:2014/02/23(日) 04:59:50.86
>>792
Wikiも確認しないで言ってんだ?

「じゃあ現在使われている
 ハーバードアーキテクチャを使った
 ものを言ってみて(キリッ」

笑w
796デフォルトの名無しさん:2014/02/23(日) 05:05:00.25
wikipediaをwikiって略す人は無知を晒してるようなものなので恥ずかしくないのならwikiと言い続けたらいい
797デフォルトの名無しさん:2014/02/23(日) 05:09:20.15
「wikipediaをwikiって略す人は無知を晒してるようなもの」と言って満足してる人は本質が見えない人。
798デフォルトの名無しさん:2014/02/23(日) 05:11:24.69
>>796
>wikipediaをwikiって略す人

って誰のこと? 世の中に存在する wiki ってwikipedia だけだとでも思ってるのかな??
799デフォルトの名無しさん:2014/02/23(日) 05:14:02.39
>>795
いいから、お前がなんのコンピュータの話を
していたのか書けよw

こっちはZ80やx86などのありふれたフォン・ノイマン型コンピュータの
話をしている。お前は違うんだろう?

当然そのコンピュータの話を続けられるんだろうな?
まあ無理だろう。

ということで当時はコードとデータは分離されていないのが一般的。

>>763
> Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
> コードとデータの分離や切り替えが効かないとはじまらんだろ

ということで当時はコードとデータは分離されていないのが一般的。
800デフォルトの名無しさん:2014/02/23(日) 05:14:55.03
> 792 :デフォルトの名無しさん:2014/02/23(日) 00:34:18.07
> >>790
> じゃあ現在使われている
> ハーバードアーキテクチャを使った
> ものを言ってみて。

↑に対して6分で返された返答が↓

> 793 :デフォルトの名無しさん:2014/02/23(日) 00:40:16.53
> >>792
> http://en.wikipedia.org/wiki/Harvard_architecture#Modern_uses_of_the_Harvard_architecture

1時間悩んだ返答が↓w

> 794 :デフォルトの名無しさん:2014/02/23(日) 01:53:28.66
> それwikipediaじゃんw
> 知らないから調べましたってか?w
801デフォルトの名無しさん:2014/02/23(日) 05:16:05.66
※ レスを返すまでの時間が短い=必死でリロード
レスを返すまでの時間が長い=他にやることがあって見てない。
802デフォルトの名無しさん:2014/02/23(日) 05:20:42.99
>>799
> いいから、お前がなんの

> 現在使われている
> ハーバードアーキテクチャを使った

> コンピュータの話を
> していたのか書けよw

聞かれるまでもない話だし、具体例なら沢山ありますよ。 >Wikipedia

> こっちはZ80やx86などのありふれたフォン・ノイマン型コンピュータの
> 話をしている。お前は違うんだろう?

お前は狭い範囲の話をしてるつもりなのね、了解。

> ということで当時はコードとデータは分離されていないのが一般的。

お前の狭い範囲での知識ではそういうことですね、了解、了解。

>> Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
>> コードとデータの分離や切り替えが効かないとはじまらんだろ
>
>ということで当時はコードとデータは分離されていないのが一般的。

SMC-70やX1では分離してたけど?
803デフォルトの名無しさん:2014/02/23(日) 05:22:45.21
> 800 :デフォルトの名無しさん:2014/02/23(日) 05:14:55.03

> 801 :デフォルトの名無しさん:2014/02/23(日) 05:16:05.66
> ※ レスを返すまでの時間が短い=必死でリロード
> レスを返すまでの時間が長い=他にやることがあって見てない。

ああ、成る程。
804デフォルトの名無しさん:2014/02/23(日) 05:30:50.34
知識自慢爺、引っ込みがつかなくなって徹夜かw
805デフォルトの名無しさん:2014/02/23(日) 05:33:24.62
>>802
> SMC-70やX1では分離してたけど?

分離されてないよ。
だいたい、ハーバードアーキテクチャじゃないじゃんw
806デフォルトの名無しさん:2014/02/23(日) 05:35:30.23
http://weblearningplaza.jst.go.jp/taikei/620/faq/naiyou.html#q1-01

Q1-1
フォン・ノイマン方式とはどのようなものですか?

A1-1
フォン・ノイマンが発表した論文に基づいたストアードプログラム方式のコンピュータアーキテクチャを、
便宜上フォン・ノイマン方式と呼びます。今日のコンピュータには画像処理などの特別な場合を除いて
フォン・ノイマン方式が採用されています。一般的に以下に当てはまるものがフォン・ノイマン方式だとされています。

(1)プログラム内蔵方式であること
命令とデータを同一の主記憶装置内に置く。

(2)線形主記憶装置を持つこと
主記憶装置のアドレスを指定して、その場所に情報を読み出し、書き込む。

(3)命令は逐次実行方式であること
プログラムカウンタに指定される主記憶装置上のアドレスにある命令を読み出して実行し、
終了後にプログラムカウンタに命令語長分を加え次のアドレスの命令を読み出す。

(4)低機能命令を持つこと
加減算などの演算命令や、ロードストア命令などの簡単な動作を行う命令を持つ。

(5)プログラムの流れを変更できること
命令の一部により作られた主記憶装置のアドレスをプログラムカウンタにセットする分岐命令を持ち、プログラムの流れを変更できる。

(6)入出力装置の制御を行うこと
入出力装置を制御して情報を送受できる。
807デフォルトの名無しさん:2014/02/23(日) 05:36:24.03
>>805
分離されてるよ。つか、

> だいたい、ハーバードアーキテクチャじゃないじゃんw

データとコードの分離がハーバードアーキテクチャの条件じゃないけど?
808デフォルトの名無しさん:2014/02/23(日) 05:37:19.26
>>804
知識ない奴は関係ないところで揚げ足取ろうと必死だなww
809デフォルトの名無しさん:2014/02/23(日) 05:37:22.85
>>807
じゃあなんでハーバードアーキテクチャの話したの?w
810デフォルトの名無しさん:2014/02/23(日) 05:38:40.25
811デフォルトの名無しさん:2014/02/23(日) 05:39:02.08
>>786
コードとデータの分離なんてされてないのが普通だよね
812デフォルトの名無しさん:2014/02/23(日) 05:39:37.52
>>808
おうおう熱いこと
まあ血圧測りながら頑張れや、脳出血で逝くぞ
813デフォルトの名無しさん:2014/02/23(日) 05:40:28.10
コードとデータの分離なんてされてない

ハーバードアーキテクチでは分離されてる!

データとコードの分離がハーバードアーキテクチャの条件じゃないけど?



面白いなこの流れw
814デフォルトの名無しさん:2014/02/23(日) 05:42:04.11
>>813が面白いのは、

「ハーバードアーキテクチでは分離されてる! 」

と言った人と

「データとコードの分離がハーバードアーキテクチャの条件じゃないけど? 」

が同じ人なんだ。
815デフォルトの名無しさん:2014/02/23(日) 05:47:30.06
ハーバードアーキテクチャを理解してない馬鹿が面白がってるみたいね。
コードとデータの分離なんて実装のひとつに過ぎないんだけど。
816デフォルトの名無しさん:2014/02/23(日) 05:49:51.09
> http://weblearningplaza.jst.go.jp/taikei/620/faq/naiyou.html#q1-01
>
> Q1-1
> フォン・ノイマン方式とはどのようなものですか?

挙句に関係ないコピペとか、馬鹿丸出しだなw

ハーバードアーキテクチャはフォン・ノイマン方式を否定しないよ。
817デフォルトの名無しさん:2014/02/23(日) 05:50:20.84
ここまでの話で出たように
ハーバードアーキテクチャだからといって
データとコードは分離されてるとは限らないわけで、
ハーバードアーキテクチャを含めて
ほとんどのコンピュータでは、コードとデータは分離されていません。

分離されてるというのならそのCPUを具体的に言ってみろよ
マイナーか今は使われていないかのどっちかだろうが?
最初からそんなCPUの話はしてないんだよ。
818デフォルトの名無しさん:2014/02/23(日) 06:15:57.54
>>817
> ハーバードアーキテクチャを含めて
> ほとんどのコンピュータでは、コードとデータは分離されていません。

コードとデータで内部バスがキャッシュ含めて分けられてるアーキテクチャなんていまどきのPCのプロセッサ含めて全然珍しくないけどな??

> 分離されてるというのならそのCPUを具体的に言ってみろよ
> マイナーか今は使われていないかのどっちかだろうが?
> 最初からそんなCPUの話はしてないんだよ。

まあ、お前が特殊な話をしてるというのは分かった。
819デフォルトの名無しさん:2014/02/23(日) 06:21:31.74
>>817
>ハーバードアーキテクチャを含めて
>ほとんどのコンピュータでは、コードとデータは分離されていません。

>>793は都合が悪いか英語が読めないかで無視ですね?ww
820デフォルトの名無しさん:2014/02/23(日) 06:22:51.80
PICは80年代からあったな
今も使われてるけど
ただしPICで動いてるDOSは見覚えが無い
821デフォルトの名無しさん:2014/02/23(日) 06:27:28.20
>PICは80年代からあったな

70年代からあったよ
822デフォルトの名無しさん:2014/02/23(日) 06:31:10.55
なら
80年代にはあったな
823デフォルトの名無しさん:2014/02/23(日) 06:34:17.97
>>820
>ただしPICで動いてるDOSは見覚えが無い

なら
今までには見たことがないということね
824デフォルトの名無しさん:2014/02/23(日) 07:06:11.60
スレタイ嫁
825デフォルトの名無しさん:2014/02/23(日) 07:14:20.58
>>788
> 今のパソコンはハーバードアーキテクチャではなくて
> ノイマン型アーキテクチャですよ。

ハーバード・アーキテクチャ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%89%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
> ノイマン型アーキテクチャにおいても,キャッシュメモリの実装方法において、インストラクションキャッシュと
> データキャッシュという分け方をすることで、ハーバード・アーキテクチャを取り入れていると考えることが
> できるケースもある。すなわち、最近の高性能プロセッサ(具体的にはインテルx86ならペンティアム以降)
> では、マイクロプロセッサ内のプロセッサコアとキャッシュメモリの構成を見るとハーバード・アーキテクチャに
> なっているというものである。キャッシュメモリを含めてCPUとして見た場合は、外部の主記憶との構成は
> 従来通りノイマン型アーキテクチャである。
826デフォルトの名無しさん:2014/02/23(日) 10:54:54.60
プロセッサコアとキャッシュメモリ
~~~~~~~~~~~~~~~~~~~~~


なるほど、”キャッシュメモリ" の場合はってだけで
メインメモリの話をしていたわけだから
関係ないってことかw
827デフォルトの名無しさん:2014/02/23(日) 14:33:07.09
>メインメモリの話をしていたわけだから

ハーバードアーキテクチャ分かってないの丸判りw
828デフォルトの名無しさん:2014/02/23(日) 14:51:58.23
>>827
見てる方が恥ずかしくなるからもうやめとけ、爺さん
829デフォルトの名無しさん:2014/02/23(日) 15:01:10.05
理屈で反論できないからレッテル貼りで罵倒ww
830デフォルトの名無しさん:2014/02/23(日) 15:05:40.21
>>829
どうした? いつも同じ返しじゃつまらんぞ爺
お前が顔真っ赤で草生やし始めた時点で、もう議論とやらは終わっとる
831デフォルトの名無しさん:2014/02/23(日) 15:27:27.26
>>825 出典を追加して記事の信頼性向上にご協力ください

要するにMSXにROMカートリッジを差してゲームできるのがハーバードアーキテクチャってヤツだろ
832デフォルトの名無しさん:2014/02/23(日) 16:26:14.95
そのROMにコードとデータが混じってたら違う。
で、実際に混じってるので、違う。
833デフォルトの名無しさん:2014/02/23(日) 16:29:37.19
・MSXはハーバードアーキテクチャではない
・ハーバードアーキテクチャはコード領域にデータが含まれることを否定しない
834デフォルトの名無しさん:2014/02/23(日) 19:00:05.06
元々は、コードとデータが分離しているのか?って
話だったよね。

どっちみち分離してないのか。
835デフォルトの名無しさん:2014/02/23(日) 19:10:09.79
もともとは>>747だろ
836デフォルトの名無しさん:2014/02/23(日) 21:20:59.56
>>835
いや、>>747が8086のセグメントの話をしてる所に
勘違い老害の>>748がしゃしゃり出てきて混乱が始まった
837デフォルトの名無しさん:2014/02/23(日) 21:28:47.46
>>836
>>747は8bitの話もしてるからおかしな流れではないな

>(8bit環境から見ると)全然スモールじゃないやん・・・
838デフォルトの名無しさん:2014/02/23(日) 21:44:57.43
>>837
根本的に話が理解できてないようですな
839 ◆QZaw55cn4c :2014/02/23(日) 23:10:24.35
労外労外って俺を想定しているのなら(労外なのは事実だがそれはそれとして) >>748 は俺じゃないよ、>>750 で >>748 を否定しているし
840デフォルトの名無しさん:2014/02/24(月) 01:55:07.75
>(8bit環境から見ると)全然スモールじゃないやん・・・

知りもしない8bitの話持ち出した>>747が馬鹿ってことだね
841デフォルトの名無しさん:2014/02/24(月) 05:45:56.06
馬鹿老害は、空想と現実の区別がつかない>>748
842デフォルトの名無しさん:2014/02/24(月) 05:59:19.24
老害老害と火病ってるのが747かw
843デフォルトの名無しさん:2014/02/24(月) 06:02:28.18
ほらもう草生やしやがった
実に分かり易い奴だ
844デフォルトの名無しさん:2014/02/24(月) 06:31:17.16
845デフォルトの名無しさん:2014/02/24(月) 14:20:13.58
ω
846デフォルトの名無しさん:2014/02/26(水) 23:12:08.55
ドスコイ
847デフォルトの名無しさん:2014/02/27(木) 23:50:36.44
女子相撲部屋の日常を舞台にラブコメ

どす☆こい
848デフォルトの名無しさん:2014/02/28(金) 01:09:36.61
>>847
女子相撲部屋の住人が、MS-DOS(PC-DOS、FreeDOS、、、、etc)プログラミング技術をもって、恋をしようと?
(無理やりすぎるか)
849デフォルトの名無しさん:2014/02/28(金) 01:34:05.58
>>848
書き始めてみたものの無理だった
クオリティ高い時のVIPPERならなんとかしたんだろうが
850デフォルトの名無しさん:2014/02/28(金) 09:53:13.32
久々にここのぞいたら・・・

>>767
> コードとデータが分離できてりゃ
> バッファオーバーフロー脆弱性なんか
> 起こらないだろうね。

www
851デフォルトの名無しさん:2014/02/28(金) 10:58:21.77
スレ違いの話題を数日経ってから蒸し返すキチガイ
852デフォルトの名無しさん:2014/02/28(金) 11:44:43.65
DOSファイラーで画像をひらいてるときの夢をみた。 …ああ「FD」…
853デフォルトの名無しさん:2014/02/28(金) 12:39:28.11
今でもWinFD使ってる
854デフォルトの名無しさん:2014/02/28(金) 12:55:09.44
出射さんのPCにはWinFDがインストールされてたとか
855デフォルトの名無しさん:2014/02/28(金) 16:37:41.13
>>851
だって、、

解決してないじゃんwwww
856デフォルトの名無しさん:2014/02/28(金) 21:13:50.28
カーソルとショートカットキーだけでファイル、ディレクトリを動かせるから、マウス不要で今でも便利だよなぁ。FD。
857デフォルトの名無しさん:2014/02/28(金) 23:06:23.90
DOS時代は、プロンプトが表示されたらfd<return>と打つのが癖だった
858デフォルトの名無しさん:2014/03/01(土) 10:14:23.56
Filerは使わずにvzエディタを常駐させてたな
859デフォルトの名無しさん:2014/03/01(土) 11:24:37.37
>>857
Linuxでログイン後プロンプトでstartx打つのが
MS-DOSからWin3.1を起動するのを彷彿とさせる
860デフォルトの名無しさん:2014/03/01(土) 13:19:10.74
Win7を使ってる今でも、スタートアップにはコマンドプロンプトを入れてる
何と言っても、一日のうちで一番使う道具だからな
もちろん、doskeyや様々な自作ツールがあればこその話だが…
861デフォルトの名無しさん:2014/03/01(土) 14:36:32.85
>>860
もっと良いツールに変えたほうがいいよw
明らかに古いじゃんか。
862デフォルトの名無しさん:2014/03/01(土) 15:31:40.71
バッチじゃね
863デフォルトの名無しさん:2014/03/01(土) 15:33:36.47
コマンドプロンプト(w2k以降のcmd.exe)は、、
例えば3ファイル 001, 002, 003 とあるとして
ren 0* 1*
とすれば 101, 102, 103 にリネームしてくれるが
Linuxのbashでは
mv 0* 1*
としても
> mv: 宛先の `1*' はディレクトリではありません
と返ってきてリネーム出来ない…
864863:2014/03/01(土) 15:39:19.42
ああ、
rename 's/0/1/' 0*
でイケた
865デフォルトの名無しさん:2014/03/01(土) 15:45:09.67
>>861
例えば具体的な名称は?
866デフォルトの名無しさん:2014/03/01(土) 16:10:36.70
>>865
仮想マシンでLinuxを起動して
puttyでつなげるのがいいよ。
867デフォルトの名無しさん:2014/03/01(土) 16:14:21.53
>>865
期待するだけ無駄。どうせ
861:「あっdoskey…俺も知ってる昔からある奴じゃんププ、よーし煽ってやろw」
868デフォルトの名無しさん:2014/03/01(土) 16:16:29.39
答えた後にレスしてもなぁw
869デフォルトの名無しさん:2014/03/01(土) 16:25:25.82
タイプミスばかりする人ならともかく、シェルだけ強化しても
基本的にはあまり意味はない。
例えばワイルドカードの考え方ひとつにしても、
シェルと各アプリが同じ思想で統一されてないとダメだからな。
870デフォルトの名無しさん:2014/03/01(土) 16:33:14.83
話はなにがダメかという説明を>>869がした後だな。
できないようじゃ、ダメダメ言っているだけの無能になっちゃうし。
871デフォルトの名無しさん:2014/03/01(土) 16:36:11.05
そりゃ、揚げ足取りに専念するなら楽だもんなw
872デフォルトの名無しさん:2014/03/01(土) 16:38:42.56
ドヤ顔で「アイツはダメだな」って言っていれば、
反論した気になれるやつっているみたいだしなぁ。

意見に反論できない時、意見への反論以外の言って(例 お前何中だよ?」
それで反論したつもりになる人とかもね。
873デフォルトの名無しさん:2014/03/01(土) 16:42:21.05
つか、そもそも仮想マシンなんて持ち出してくる時点で
本物のDOS使いじゃないのが丸見えだし
874デフォルトの名無しさん:2014/03/01(土) 16:49:19.56
>>870
罵倒して煽れば相手がムキになって(本当は自分の知らないことを)
詳しく教えてくれると思うのは小学生の発想だが…
875デフォルトの名無しさん:2014/03/01(土) 17:07:16.11
いえ別に教えなくていいと思います。
教えることはないんだな(苦笑)という
流れになることが私の望む結果ですから。
876デフォルトの名無しさん:2014/03/01(土) 17:16:30.42
> 教えることはないんだな(苦笑)
すなわち
「教えられることはあるが教えることはない」(=教える必要なし・教えても無駄)

その通りだと思う
877デフォルトの名無しさん:2014/03/01(土) 17:17:26.16
教えられることはあるが・・・そのことは証明できない!

くそ、あるんだ! あるんだよ!
信じてくれ!
878デフォルトの名無しさん:2014/03/01(土) 19:50:17.67
子供ってつくづくヒマなのね
羨ましいわ
879デフォルトの名無しさん:2014/03/03(月) 12:15:54.32
ncurses
880デフォルトの名無しさん:2014/03/03(月) 20:56:17.89
struct SREGS segregs;
union REGS regs;
みたいなのって今でも使えるの?
881デフォルトの名無しさん:2014/03/03(月) 21:01:23.48
今でもMS-DOSとコンパイラが使えるなら使える
882デフォルトの名無しさん:2014/03/21(金) 03:30:38.13 ID:GtGmhcv1
DOS BASICにはMOUSE命令があるのだが、資料が見つからんかったので、
Disk Basickのmouse.codをコピーして使っていました。
883デフォルトの名無しさん:2014/03/21(金) 20:36:45.27 ID:7mW2C/DW
BASICのmouse.codって100hを呼んで初期化するから、何だcomファイルかと思って
ファイルコンバータでDOSへ持ってって拡張子を.comにして実行したら
思い切り固まったっけw
884デフォルトの名無しさん:2014/03/26(水) 15:06:48.26 ID:vYFT5eul
「MS-DOS」「Word for Windows」のソースコードがコンピューター歴史博物館で公開
ttp://www.forest.impress.co.jp/docs/news/20140326_641278.html
885デフォルトの名無しさん:2014/03/26(水) 22:17:38.85 ID:7MbwfP7v
早速ソース見てみた。あの当時の雰囲気が伝わってくる。
「MS-DOSエンサイクロペディア」のDOS開発史と合わせて読むとしみじみ。
886デフォルトの名無しさん:2014/03/27(木) 18:46:23.15 ID:hEq10E5j
びっくりする発見とかは特にないの?
887デフォルトの名無しさん:2014/03/27(木) 19:44:27.44 ID:7j8STfSy
MS-DOSの方は全部アセンブラでよく分からなかったけどWordの方はC。
Wordの方を見た感想としては、ソースが綺麗。俺のレベルではその程度だ…
888デフォルトの名無しさん:2014/03/28(金) 03:02:00.93 ID:bW8jL0c7
OOoがパクったりしてなw
889デフォルトの名無しさん:2014/03/28(金) 10:05:51.67 ID:6uoLiniK
ぱくるところなんてもうないだろ。
890デフォルトの名無しさん:2014/03/28(金) 11:17:22.95 ID:fkfjsE1a
バグも仕様だったっけ
あれはBIOSの方か、うろ覚え
891デフォルトの名無しさん:2014/03/28(金) 22:13:08.56 ID:bwISCHAG
大文字で書かれてるソースに時代を感じる
892デフォルトの名無しさん:2014/03/28(金) 22:38:27.46 ID:NGCZyWyD
いまどきのプロセッサでもマニュアルにはニモニックコードは大文字で書いてるのが普通だと思うし
asmのソースでを大文字で書くのは時代とかあんま関係ないんじゃね
893デフォルトの名無しさん:2014/03/29(土) 18:43:15.81 ID:JKJVIw7K
BASICソースがバイナリなのが残念。
このソース読むには当時のIBMPCのBASICが必要だよね・・・
894デフォルトの名無しさん:2014/03/29(土) 18:59:59.05 ID:Jfe3a6vp
ちょっと頑張りゃデコーダくらいすぐ書けるだろ
895デフォルトの名無しさん:2014/03/29(土) 19:41:28.56 ID:x0t+GegV
デコーダはどこーだ?
896デフォルトの名無しさん:2014/05/08(木) 11:09:52.93 ID:yMdtsFov
MS-DOSソースコード公開を期にパソコン大衆化の原点を振り返る
ttp://www.atmarkit.co.jp/ait/articles/1404/24/news144.html
897デフォルトの名無しさん:2014/05/08(木) 13:09:27.82 ID:1+T0GwZ6
GJ
898デフォルトの名無しさん:2014/05/08(木) 23:55:41.41 ID:9ESzLvKO
ディレクトリの区切り文字が '\' なのに Shift-JIS なファイル名とか
正気の沙汰じゃないと思ってましたが、その記事でも
「このような実装をする人の苦労が忍ばれる」
と書かれてますね。
そんなことしなきゃよかったのに。
899デフォルトの名無しさん:2014/05/09(金) 03:46:13.60 ID:my+rKTnq
>ディレクトリの区切り文字が '\' なのに Shift-JIS なファイル名とか
>正気の沙汰じゃないと思ってましたが、

何の問題もないが
900デフォルトの名無しさん:2014/05/09(金) 03:48:31.91 ID:QFIs9vri
使うだけの人には関係ないことですから
901デフォルトの名無しさん:2014/05/09(金) 04:07:28.67 ID:my+rKTnq
Shift JISは頭からデコードしなきゃいけないルールをいまごろになって何か言ってる人?
902デフォルトの名無しさん:2014/05/09(金) 04:10:45.66 ID:jEZVJE8a
何故そうなったのかとか一切考えたこともないくせに
自分の方が頭がいいと思い込んでるんでしょ
903デフォルトの名無しさん:2014/05/09(金) 04:19:41.50 ID:QFIs9vri
なんのこといってるのか、さっぱり
904デフォルトの名無しさん:2014/05/09(金) 05:17:17.95 ID:4lU/3siM
シフトJIS自体はそれほど問題でもないんだよな。
問題は、マルチバイトなんてシラネーヨってコードばかり量産しては日本人に押しつけてきた1バイト圏の連中。
905デフォルトの名無しさん:2014/05/09(金) 10:46:47.71 ID:Mr0Sp7Ii
受け入れなければガラパゴスなオレオレ規格で終わる訳だが
906デフォルトの名無しさん
携帯専用文字がどうたらこうたらといってるのに