2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2010/04/21(水) 12:42:23 .net
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 .net
DOS2.11の頃はDOS自体にmasmが付いていた。
Microsoft Cは98,000円もした。
29,800円で発売されたTurbo-Cにみんな飛びついた。
無料で配布されたLSI C-86試食版が大活躍してくれた。

3 :デフォルトの名無しさん:2010/04/21(水) 12:45:10 .net
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 .net
2パスか3パスのコンパイラで
Phoenix Cとかなかったっけ?

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

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

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

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

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

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

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


11 :訂正:2010/04/21(水) 22:44:18 .net
誤) MB
正) 1MB

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

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

                  京都大学霊長類研究所


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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

27 :デフォルトの名無しさん:2010/04/28(水) 09:25:20 .net
Programer's workbench

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

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

30 :デフォルトの名無しさん:2010/04/29(木) 22:35:44 .net
俺はmifes派

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

55 :デフォルトの名無しさん:2010/05/18(火) 07:20:40 .net
>>54
???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

87 :デフォルトの名無しさん:2010/07/01(木) 16:51:04 .net
つ 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 .net
MIFES

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

90 :デフォルトの名無しさん:2010/07/02(金) 20:40:58 .net
Vz+WXII

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

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

93 :1:2010/07/02(金) 22:48:06 .net
mifes派

94 :デフォルトの名無しさん:2010/07/02(金) 22:49:40 .net
emm386はexe

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

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

97 :デフォルトの名無しさん:2010/07/04(日) 09:55:51 .net
kwsk

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

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

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

いつも使えよ

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

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

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

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

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

106 :デフォルトの名無しさん:2010/07/08(木) 18:48:56 .net
男ならedlin

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

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

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

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

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

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

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

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


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

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

copy con config.sys

ときどきやった

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

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

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

>117
10KBで頼む

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

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

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

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

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


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

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

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

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

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

128 :デフォルトの名無しさん:2010/08/26(木) 04:34:12 .net
ぷげら

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

161 :デフォルトの名無しさん:2010/10/17(日) 12:11:39 .net
debug使え

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

190 :デフォルトの名無しさん:2010/10/30(土) 02:51:41 .net
print '\a'

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

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

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

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

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

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

197 :196:2011/01/19(水) 01:32:48 .net
自己解決しました。
http://misdirection.oops.jp/2005/01/post_19.html

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

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

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

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

201 :デフォルトの名無しさん:2011/01/19(水) 14:39:30 .net
>>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 .net
PACK13000でも探したら?

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

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

204 :デフォルトの名無しさん:2011/02/04(金) 23:02:48 .net
nekoなつかしす

205 :デフォルトの名無しさん:2011/02/05(土) 01:09:35 .net
TSR

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

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


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

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

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

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

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

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

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

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


215 : ◆0uxK91AxII :2011/03/11(金) 23:46:49.05 .net
DOSだと、TEENっていうTCP stackがあったね。

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

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

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

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

220 :デフォルトの名無しさん:2011/04/12(火) 13:46:13.85 .net
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 .net
空気が読めないひと

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

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

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



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

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

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

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


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

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

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

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

231 :デフォルトの名無しさん:2011/04/13(水) 12:31:23.18 .net
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 .net
exit(n)なりmainのreturn値なりがどういう意味を持つのか
分かってない奴が、混じってるように見える。

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

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

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

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

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

238 :デフォルトの名無しさん:2011/04/13(水) 12:52:59.69 .net
「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 .net
>>234
小学生みたいで微笑ましいが、まさか突っ込んだつもり?

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


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

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

242 :デフォルトの名無しさん:2011/04/13(水) 19:51:50.04 .net
ERRORLEVEL

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

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

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

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


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

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


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

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

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

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

252 :デフォルトの名無しさん:2011/04/18(月) 18:09:08.49 .net
とりあえずこういうことか。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 .net
BDOSエントリは0005hでなかったか?


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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



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



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

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


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

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

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


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

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

285 :279:2011/10/10(月) 00:33:50.30 .net
回答ありがとうございます。

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

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

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

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

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

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

288 :279:2011/10/10(月) 10:40:18.65 .net
>>286
int28hを試してみたいと思います。

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

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

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

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

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

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

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

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

292 :デフォルトの名無しさん:2011/10/19(水) 23:44:20.28 .net
なんとなく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 .net
>>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 .net
それだけで解像度まで変わったか?

295 : ◆0uxK91AxII :2011/10/20(木) 03:39:41.71 .net
変わらなかった。
/(^o^)\

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

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

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

298 :デフォルトの名無しさん:2011/10/21(金) 18:02:45.48 .net
>>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 .net
BIOS解析してどういうパラメータ設定してるか見た方が早い気がする

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

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

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

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

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

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

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


305 :デフォルトの名無しさん:2011/11/03(木) 00:02:32.20 .net
ds:2c

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

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

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

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

310 :デフォルトの名無しさん:2011/11/12(土) 07:36:04.35 .net
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 .net
emm386とかのUMB領域の検出ってどうやってるんだろう?

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

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

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


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


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


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

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

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

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


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


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

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

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

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

くたばれよジジイ

324 :デフォルトの名無しさん:2012/02/26(日) 13:47:34.72 .net
16 bits

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

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

327 :デフォルトの名無しさん:2012/02/27(月) 19:15:13.91 .net
>>291

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

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

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

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

330 : ◆0uxK91AxII :2012/02/28(火) 17:51:04.75 .net
nearなら無関係だったか。

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

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


333 :デフォルトの名無しさん:2012/03/25(日) 14:28:05.68 .net
333

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


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

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


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

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

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

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

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

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

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

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

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

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

347 :デフォルトの名無しさん:2012/05/02(水) 22:39:58.48 .net
symdeb

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

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

349 :デフォルトの名無しさん:2012/05/03(木) 17:01:30.04 .net
xda

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

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

351 :デフォルトの名無しさん:2012/06/23(土) 23:38:25.39 .net
int 20

Linuxよこんにちは

352 :デフォルトの名無しさん:2012/06/26(火) 17:57:38.69 .net
#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 .net
秘孔を突いてしまったのですね

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

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

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

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

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

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

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

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

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

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

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

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


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

365 :デフォルトの名無しさん:2012/08/23(木) 00:33:46.57 .net
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 .net
>>365
regの値を見てキャッシュ制御とDMACアクセスを切り替えるという
涙ぐましい努力をしとるのです


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

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

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

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

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


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

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

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

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

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

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

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

375 :デフォルトの名無しさん:2012/10/12(金) 17:23:52.51 .net
NOP

376 :デフォルトの名無しさん:2012/10/13(土) 10:04:08.74 .net
LOADALL

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




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

379 :デフォルトの名無しさん:2012/10/14(日) 11:18:05.08 .net
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 .net
ありがとうございます!

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

382 :381:2012/11/26(月) 22:27:09.61 .net
誤爆失礼

383 :デフォルトの名無しさん:2012/11/26(月) 22:33:37.95 .net
まちBBSか

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

407 :デフォルトの名無しさん:2013/11/10(日) 10:25:22.29 .net
必須条件

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

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

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

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

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

珍説発見

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

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

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

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

414 : ◆QZaw55cn4c :2013/11/10(日) 13:02:17.75 .net
>>412
>>406 は正論だと思うけれどもね

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

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

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

不思議な世界だ。

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

419 :デフォルトの名無しさん:2013/11/10(日) 14:49:28.43 .net
>>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 .net
その頃からダイナブックってあるんだな。

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

422 :デフォルトの名無しさん:2013/11/10(日) 19:44:29.28 .net
>>405
FCB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

何か勘違いされてますね

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

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

そう思いたいんだろうね

438 :デフォルトの名無しさん:2013/11/26(火) 23:22:06.25 .net
はいはい

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

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

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

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

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

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

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

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

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

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

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

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

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

馬鹿キター!(AA略

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

473 :デフォルトの名無しさん:2013/11/27(水) 16:52:24.26 .net
リストボックスの項目は多すぎても見にくいだけなので
制限あるのは判らなくもないが
エディットコントロールでも制限あったら
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 .net
ワードパッドが完全無視されててカワイソス

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

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

477 :デフォルトの名無しさん:2013/11/27(水) 18:09:26.74 .net
チュパチュパ…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ここだよ

>>425

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

495 :デフォルトの名無しさん:2013/11/28(木) 14:27:01.88 .net
>>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 .net
サイズ1byteのちゃんと動作するCOMプログラム作ったよ

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

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

498 :デフォルトの名無しさん:2013/11/28(木) 18:21:46.22 .net
76がnop

499 :デフォルトの名無しさん:2013/11/28(木) 18:48:11.39 .net
76はHLT

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

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

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

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

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

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

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

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

TURBO Cでできたよ

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

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

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

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

ばかじゃねーの?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

543 :デフォルトの名無しさん:2013/11/30(土) 00:29:45.48 .net
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 .net
DOS5に付属のQ-BasicなんてのもあったQuickBASIC4.5使ってた俺にはゴミツールでしか無かったが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

564 :デフォルトの名無しさん:2013/11/30(土) 17:34:10.76 .net
しないよ

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

566 :デフォルトの名無しさん:2013/12/01(日) 06:42:12.06 .net
DOSBoxが必要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

589 :デフォルトの名無しさん:2013/12/02(月) 23:41:14.39 .net
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 .net
で、print.exeって何者?NEC MS-DOSの付属物?

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

592 :デフォルトの名無しさん:2013/12/03(火) 00:01:03.03 .net
その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 .net
MSDNサブスクライバーにあるDOS関連は、DOSとQB45、masm 6.11
これで全てのようだ

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

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

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

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

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

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

Format c: /s

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

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

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

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

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

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

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

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

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

607 :デフォルトの名無しさん:2013/12/04(水) 22:15:31.59 .net
英語?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

633 :デフォルトの名無しさん:2013/12/06(金) 12:51:03.04 .net
rmdrive a:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QB > 僕と契約して・・・

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

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

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

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

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

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

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

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

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

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

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

プw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

683 :デフォルトの名無しさん:2013/12/12(木) 22:55:53.79 .net
俺の通ってた大学では実験室でPC9801使ってたよ
実験用の装置の動かすプログラムがBASICで組まれてた

684 :デフォルトの名無しさん:2013/12/13(金) 04:28:58.24 .net
マルチスレッドに対応したDOSってあるの

685 :デフォルトの名無しさん:2013/12/13(金) 04:44:10.74 .net
アプリが独力でマルチスレッドしてた

DOSじゃないけど同時代だと、
コンカレントCP/MやOS/9-68000とか対応してたな

686 :デフォルトの名無しさん:2013/12/13(金) 05:06:43.70 .net
マルチスレッドはないけど、マルチタスクはできた
ユーザーが明示的に切り替えないといけなくて裏で勝手に動けたりはしない

687 :デフォルトの名無しさん:2013/12/13(金) 05:48:28.43 .net
http://ideone.com/2Tx0rw
こんな感じ

688 :デフォルトの名無しさん:2013/12/13(金) 08:37:09.05 .net
>>687
このソース、どう読めばマルチスレッドになるの

689 :デフォルトの名無しさん:2013/12/13(金) 09:17:29.82 .net
f_1(); // 温度センサ値取得/表示
がいっぺんに
[温度センサの値取得]→[値表示]→[ウェイト]
をせずに小さい処理単位で返ってきて、次の
f_2(); // 圧力センサ 〃
に処理を渡せるから、人間からは
f_1(); // 温度センサ値取得/表示
f_2(); // 圧力センサ 〃
f_3(); // 加速度   〃
が同時に動作しているように見える。

マルチスレッドではなくマルチタスクだな。

690 :デフォルトの名無しさん:2013/12/13(金) 09:19:28.48 .net
俺には単なるサブルーチンの逐次処理に見える

691 :デフォルトの名無しさん:2013/12/13(金) 09:26:07.13 .net
まるちさぶるーちん

692 :デフォルトの名無しさん:2013/12/13(金) 10:15:19.75 .net
これはMS-DOS時代の組み込みでよく使われた手法。
MS-DOSの常駐プログラムとかはもっとマシな方法だと思う。

693 :デフォルトの名無しさん:2013/12/13(金) 10:28:48.03 .net
マルチスレッドのない環境で、処理を小分けにするっていう実装テクニックか。それなら分かる。

694 :デフォルトの名無しさん:2013/12/13(金) 15:26:30.61 .net
タイマー割り込みでバックグランド処理を実装してたな。
InDOSフラグ見てファンクションリクエストを呼び出し中なら
次の割り込みを待ってたけど、
逆にバックグランドがファンクションリクエストを呼び出し中なら
処理を譲れないから、フォアグランドの処理がカクカクになる。
DOSのPRINTコマンドの使えなさを覚えているなら
どんなものかわかるだろう。

695 :デフォルトの名無しさん:2013/12/13(金) 15:36:20.82 .net
print.sys と置き換えて使ってた気がする

696 :デフォルトの名無しさん:2013/12/30(月) 04:42:00.17 .net
Undocumented DOSっていう洋書には随分世話になったな

697 :デフォルトの名無しさん:2013/12/30(月) 05:47:42.89 .net
Interrupt Listもな

698 :デフォルトの名無しさん:2013/12/30(月) 06:59:57.33 .net
Undocumented DOSはもうずいぶん前に売ってしまったが、
Interrupt Listは場所も取らないことだし、今でも記念に取ってある。
あと、「MS-DOS完全活用法」とか「IBM PC & 80286のすべて」なんかも
ついつい捨てられなくて今でも目の前にあるよ。

699 :デフォルトの名無しさん:2013/12/30(月) 12:42:28.59 .net
ピーターノートン&ポールヤオ著のコレ持ってた

http://www.amazon.co.jp/gp/aw/d/4915673278/ref=redir_mdp_mobile

700 :デフォルトの名無しさん:2013/12/30(月) 12:48:31.60 .net
http://i.imgur.com/p2Jun40.jpg
やっぱ絵になるなあ、カッコいい

701 :デフォルトの名無しさん:2013/12/30(月) 13:01:12.13 .net
DOS時代、テキスト画面制御するのにテキストVRAM直接アクセスは常識だった。
負け組Ansiエスケープシーケンスは論外として、画面BIOSでは4.7MHzの初代機でモッサリだったので。
テキストVRAMは、初代機MDAのVRAMアドレスと属性がCGA以降と違ってたので、実行時判断も必要だった。
同じ要領でNEC-9801にも応用出来た。

702 :デフォルトの名無しさん:2013/12/30(月) 15:23:05.11 .net
DOSコールによる文字出力だと、2バイト半角文字が二重に出されたりしたのを覚えてる。
SJISと被る1バイト記号を出そうとしたら、まとめて出力すると漢字になるけど1バイトずつ出すといけたり。

703 : 【大吉】 :2014/01/01(水) 09:15:04.39 .net
DOSプログラミングの運勢。

704 : 【吉】 :2014/01/01(水) 09:27:46.76 .net
>>703の運勢

705 : 【北電 74.6 %】 :2014/01/01(水) 15:56:37.02 .net
我が家のPCの消費電力

706 :デフォルトの名無しさん:2014/01/04(土) 00:31:30.85 .net
以前X86のLDSやLES命令をあまり見かけないという話が出てたが、
制御系の命令を除いたら、ENTERじゃないかと思う。
元々はPASCALの様な関数のネストが出来る言語向けの機能なのだが、
Delphiでも使ってくれてない。

707 :デフォルトの名無しさん:2014/01/04(土) 23:11:37.92 .net
enterは第2オペランドの意味がよく分からん。保護が効くわけじゃないのに。

708 :デフォルトの名無しさん:2014/01/05(日) 07:52:28.27 .net
こんなふうに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 .net
<ローカル変数>
<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 .net
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 .net
詳しい説明さんくす

712 :デフォルトの名無しさん:2014/01/15(水) 21:36:44.02 .net
delphiは素直に関数の最後の引数で1レベル上のebp引き渡してるね

713 :デフォルトの名無しさん:2014/01/15(水) 22:30:47.07 .net
LEAはx64から急に使い出した
MOV RBX, offset LABEL なんてやったら
64bitの即値を代入することになって大変だ

714 :デフォルトの名無しさん:2014/01/17(金) 22:25:55.20 .net
使わなかった命令No1はBOUNDだろ
登場したときはすでにINT5が使用済みだったという

715 :デフォルトの名無しさん:2014/01/17(金) 22:37:20.28 .net
nop

716 :デフォルトの名無しさん:2014/01/17(金) 23:14:49.64 .net
in/outのお供でnopは結構使ったかな
途中からjmp short $+2になって、
その次はなにやらどっかのI/O portにダミー出力してた記憶が

717 :デフォルトの名無しさん:2014/01/17(金) 23:24:40.81 .net
fwait

718 :デフォルトの名無しさん:2014/01/17(金) 23:56:52.49 .net
masmは全部の8087命令の前にfwaitを勝手につけてたけど、
いつの間にか付かなくなったな。いつからだろう。

719 :デフォルトの名無しさん:2014/01/18(土) 00:44:22.67 .net
マルチプロセス?

720 :デフォルトの名無しさん:2014/01/18(土) 14:33:09.85 .net
>>714
bound使うとプリンターからハードコピーが

721 :デフォルトの名無しさん:2014/01/18(土) 14:54:46.93 .net
>>714
boundはwin9xで大活躍してるぞ

722 :デフォルトの名無しさん:2014/01/18(土) 16:46:11.76 .net
64bit modeでは廃止になってるしなぁ

723 :デフォルトの名無しさん:2014/01/24(金) 14:42:37.62 .net
fwaitは .8086指定で付く
8087はCPUから独立して直接バスとつながってた文字通りのコプロセッサだった
最近のMASMは .386がミニマムでデフォルトだからダメだな

724 :デフォルトの名無しさん:2014/01/24(金) 14:47:29.87 .net
そういえば8086は微妙に動作が違ってたよね
cxがゼロのとき、loop や rep は 0xffff回ループしてたし

725 :デフォルトの名無しさん:2014/01/24(金) 15:31:15.89 .net
>cxがゼロのとき、loop や rep は 0xffff回ループしてたし

CXが0のときと65535のときでループ回数が同じ? んなわけないと思うがなあ。

726 :デフォルトの名無しさん:2014/01/24(金) 15:43:27.70 .net
ああごめん、0x1000回だな

727 :デフォルトの名無しさん:2014/01/24(金) 15:44:02.89 .net
もいっこたりない、0x10000だ

728 :デフォルトの名無しさん:2014/01/29(水) 14:34:19.53 .net
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 .net
9801スーパーテクニックに詳しい判別法が載ってたね。
8086と186はpop csで見分けてたような。

730 :デフォルトの名無しさん:2014/01/30(木) 06:47:47.58 .net
>>728
>8086 push sp; pop ax; sp != ax
!!!!なんでだ?

731 :デフォルトの名無しさん:2014/01/30(木) 10:04:10.04 .net
sp+=2される前にスタックに入れられるかされた後に入れられるかの違い

732 :デフォルトの名無しさん:2014/01/30(木) 12:15:55.19 .net
なんで sp+=2 されるんだ

733 :デフォルトの名無しさん:2014/01/30(木) 12:53:09.11 .net
popの動作も sp <- [sp], sp += 2だから
push sp, pop spをペアで使えば大丈夫だ問題ない

734 :デフォルトの名無しさん:2014/01/30(木) 13:08:37.74 .net
ああ、push時は-2だったな

735 :デフォルトの名無しさん:2014/01/31(金) 12:48:51.64 .net
CPUID以前の互換CPUの見分け方は何かありましたっけ?
AMDとかCYLIXとか

736 :デフォルトの名無しさん:2014/02/15(土) 04:35:50.10 .net
>8086 push sp; pop ax; sp != ax
これって万が一、同じ数値がスタックに入っていたって事は無いの?

737 :デフォルトの名無しさん:2014/02/15(土) 05:03:36.87 .net
>>736
何言ってんの??

738 :デフォルトの名無しさん:2014/02/15(土) 10:49:42.54 .net
SP「俺の名前を言ってみろ」

739 :片山博文MZ無能 ◆T6xkBnTXz7B0 :2014/02/15(土) 12:37:34.24 .net
スペシャルスタックポインタ

740 :デフォルトの名無しさん:2014/02/15(土) 17:45:09.43 .net
すっぽん

741 :デフォルトの名無しさん:2014/02/15(土) 21:39:33.80 .net
DOS用のForthおしえて

742 :デフォルトの名無しさん:2014/02/15(土) 22:09:41.69 .net
http://www.forth.org/compilers.html

743 :デフォルトの名無しさん:2014/02/16(日) 23:18:39.26 .net
Delphi始めたんですけど、複雑でわからないんで、Quickbasicに戻りたいんですけど、
もうないんですかねぇ。

744 :デフォルトの名無しさん:2014/02/17(月) 00:08:16.64 .net
Win32で動く互換品でよければ、
QB64(32bit版もある)でいいんとちゃう

745 :デフォルトの名無しさん:2014/02/18(火) 20:01:20.24 .net
>>744
ありがとうございます。
便利なものがあるんですねー。
>>744さんと制作者さんに感謝^^

746 :デフォルトの名無しさん:2014/02/21(金) 13:00:41.98 .net
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 .net
スモールモデル: コード64kB データ64kB

(8bit環境から見ると)全然スモールじゃないやん・・・

748 :デフォルトの名無しさん:2014/02/21(金) 22:12:43.44 .net
8080でもコードとデータでそれぞれ64KBのメモリ空間持てるし大したことではない

749 : ◆QZaw55cn4c :2014/02/22(土) 04:01:12.27 .net
>>747
お前タイニーモデルをしらんのか?

750 : ◆QZaw55cn4c :2014/02/22(土) 04:02:12.01 .net
>>748
8080 はコード・データ他スタックもみな共用での 64KB だ

751 :デフォルトの名無しさん:2014/02/22(土) 04:37:55.46 .net
>>750
外から区別できるの知らんのねw

752 : ◆QZaw55cn4c :2014/02/22(土) 09:12:33.72 .net
>>751
8080にMMUのようなものは内蔵されていないからね
IOポート番号を16bit とれるようになったは Z80 からだね

753 :デフォルトの名無しさん:2014/02/22(土) 11:09:45.41 .net
スモールにしろタイニーにしろ
それを超える範囲のメモリにアクセス出来ない訳じゃない
単にセグメントディスクリプタのデフォを適当に初期化してくれるだけ

754 :デフォルトの名無しさん:2014/02/22(土) 11:38:39.71 .net
>>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 .net
>>754
それでどうやって >>748 のコードセグメントとデータセグメントをそれぞれ別に64KB確保できるようになるのか?

756 :デフォルトの名無しさん:2014/02/22(土) 15:28:13.23 .net
スタックセグメントもデータセグメントとは別に64KB確保できるな

757 :デフォルトの名無しさん:2014/02/22(土) 16:03:56.04 .net
8080にセグメントの概念などない

758 :デフォルトの名無しさん:2014/02/22(土) 16:12:48.73 .net
アクセスの種別によってメモリ空間を分けることは可能だし、それをセグメントと呼んでも差し支えない。

759 :デフォルトの名無しさん:2014/02/22(土) 16:15:27.07 .net
後期のZ80 BASICマシンのメモリレイアウトなんて
ほとんど曲芸状態だったよな

760 :デフォルトの名無しさん:2014/02/22(土) 16:19:07.68 .net
いや全然

761 :デフォルトの名無しさん:2014/02/22(土) 16:27:34.62 .net
>>758
理屈じゃなく過去の具体的な実装事例は?

762 :デフォルトの名無しさん:2014/02/22(土) 16:32:17.51 .net
>過去の具体的な実装事例は?

そんな話誰もしてないだろ

763 :デフォルトの名無しさん:2014/02/22(土) 16:57:12.73 .net
Z80で64kbite BASIC-ROM、64kbite RAM、64kbite VRAMなパソコンだと
コードとデータの分離や切り替えが効かないとはじまらんだろ

764 :デフォルトの名無しさん:2014/02/22(土) 16:57:14.65 .net
データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?

>アクセスの種別によってメモリ空間を分けることは可能だし、
おいおい、データがきてからアドレスバスを変えるのかよ?なんのためにあんだけのマージンとってんだ?

765 :デフォルトの名無しさん:2014/02/22(土) 16:59:18.33 .net
>データバスをチェックとかわけわからんがな、all 0 だったらどうするつもり?

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

なんだ、タイミングチャートも見れない素人かw

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

バンク切り替えやI/OにVRAM置いたり色々実装はあったが、コードとデータの分離をやった例って聞いたことないわ。
Z80は命令も多いし外部回路でM1サイクル監視するにしてもコードの4バイト目まで判定するのは骨だろう。

767 :デフォルトの名無しさん:2014/02/22(土) 19:02:02.20 .net
コードとデータが分離できてりゃ
バッファオーバーフロー脆弱性なんか
起こらないだろうね。

そんなもんあんの?

768 :デフォルトの名無しさん:2014/02/22(土) 19:10:11.64 .net
>>767
意味知らないで「バッファオーバーフロー」とかって恥ずかしくない?

769 :デフォルトの名無しさん:2014/02/22(土) 19:10:55.40 .net
石頭ハード屋の妄想はつまらんわ

770 :デフォルトの名無しさん:2014/02/22(土) 19:14:02.65 .net
>>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 .net
>>770
>> バッファオーバーランとは元々,コンピュータのメモリ上の領域(バッファ)よりも
>> 大きなデータが渡されているのにプログラムがそれを見逃して領域あふれ(オーバーラン)が
>> 起きてしまうことを指す。

自分で引用してて↑の内容がコードとデータの分離とは関係ないって理解できないのかw

772 :デフォルトの名無しさん:2014/02/22(土) 19:30:31.26 .net
馬鹿には無理

773 :デフォルトの名無しさん:2014/02/22(土) 19:58:39.00 .net
「ハードに比べたらプログラミングなんて子供の遊びレベル」と
うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。
生半可な断片知識で専門外の領域にしゃしゃり出てきて大恥かくのも毎度のこと。

774 :デフォルトの名無しさん:2014/02/22(土) 20:03:46.62 .net
>「ハードに比べたらプログラミングなんて子供の遊びレベル」と
>うそぶく老害は昔からどこにでもいるが、こいつもその一人だろう。

よほどのコンプレックスがあるらしい

775 :デフォルトの名無しさん:2014/02/22(土) 20:08:10.35 .net
普段誰からも相手にされず、寂しさと承認欲求のあまり
ここに来てみたんだろうが… 哀れなもんだなw

776 :デフォルトの名無しさん:2014/02/22(土) 20:15:01.69 .net
>>774
で、773の最後の行は否定しないのな(笑

777 :デフォルトの名無しさん:2014/02/22(土) 20:31:09.11 .net
>>773
よくわからんのだけど「生半可な断片知識で専門外の領域にしゃしゃり出てきて大恥」って
>>767=>>770 のこと? どうみてもハードもソフトも分かってない風だけど。

778 :デフォルトの名無しさん:2014/02/22(土) 20:47:00.10 .net
>>777
必ずしも 専門=エキスパート じゃないけどな
どんなに落ちこぼれであっても、ある分野で飯食ってりゃ一応専門家

779 : ◆QZaw55cn4c :2014/02/22(土) 22:22:32.61 .net
>>767
6809

スタックを分離するだけでわりと十分

780 :デフォルトの名無しさん:2014/02/22(土) 22:24:07.92 .net
バッファオーバーフローとスタックは直接関係ないので間違い

781 :デフォルトの名無しさん:2014/02/22(土) 22:49:42.64 .net
>>777
いんや、お前のこと。

782 :デフォルトの名無しさん:2014/02/22(土) 22:52:39.91 .net
理屈も語れない馬鹿がなんか言ってるなw

783 :デフォルトの名無しさん:2014/02/22(土) 22:53:33.46 .net
>>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 .net
>>783
バッファオーバーラン攻撃って目的が任意のコード実行とは限らないんでトンチンカンなこと言ってますよ

785 :デフォルトの名無しさん:2014/02/22(土) 23:08:23.73 .net
>>784
え? だからなに?
バッファオーバーラン攻撃の目的が任意のコード実行だ。とは
ひとことも言ってないけど? そんな話してないけど?

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

コードとデータの分離なんてされてないのが普通。

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

ハーバードアーキテクチャも知らない人か…

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

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

> 典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に
> 置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、
> オペレーティングシステムとCPUの協調により保護するために用いられる機能である。

788 :デフォルトの名無しさん:2014/02/22(土) 23:30:52.76 .net
>>786
今のパソコンはハーバードアーキテクチャではなくて
ノイマン型アーキテクチャですよ。

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

通りでずれてるはずだ。

789 :デフォルトの名無しさん:2014/02/22(土) 23:32:36.43 .net
>>787
引用した先が言っていることは、
俺が言っていることじゃないし。

790 :デフォルトの名無しさん:2014/02/22(土) 23:42:48.50 .net
>>788
> 今のパソコンはハーバードアーキテクチャではなくて
> ノイマン型アーキテクチャですよ。

いつからパソコン限定の話になったの??

791 :デフォルトの名無しさん:2014/02/22(土) 23:43:49.87 .net
>>789
お前が引用したこと。

関係ないなら引用しなければ良かっただけ。

792 :デフォルトの名無しさん:2014/02/23(日) 00:34:18.07 .net
>>790
じゃあ現在使われている
ハーバードアーキテクチャを使った
ものを言ってみて。

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

794 :デフォルトの名無しさん:2014/02/23(日) 01:53:28.66 .net
それwikipediaじゃんw
知らないから調べましたってか?w

795 :デフォルトの名無しさん:2014/02/23(日) 04:59:50.86 .net
>>792
Wikiも確認しないで言ってんだ?

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

笑w

796 :デフォルトの名無しさん:2014/02/23(日) 05:05:00.25 .net
wikipediaをwikiって略す人は無知を晒してるようなものなので恥ずかしくないのならwikiと言い続けたらいい

797 :デフォルトの名無しさん:2014/02/23(日) 05:09:20.15 .net
「wikipediaをwikiって略す人は無知を晒してるようなもの」と言って満足してる人は本質が見えない人。

798 :デフォルトの名無しさん:2014/02/23(日) 05:11:24.69 .net
>>796
>wikipediaをwikiって略す人

って誰のこと? 世の中に存在する wiki ってwikipedia だけだとでも思ってるのかな??

799 :デフォルトの名無しさん:2014/02/23(日) 05:14:02.39 .net
>>795
いいから、お前がなんのコンピュータの話を
していたのか書けよw

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

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

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

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

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

800 :デフォルトの名無しさん:2014/02/23(日) 05:14:55.03 .net
> 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 .net
※ レスを返すまでの時間が短い=必死でリロード
レスを返すまでの時間が長い=他にやることがあって見てない。

802 :デフォルトの名無しさん:2014/02/23(日) 05:20:42.99 .net
>>799
> いいから、お前がなんの

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

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

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

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

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

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

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

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

SMC-70やX1では分離してたけど?

803 :デフォルトの名無しさん:2014/02/23(日) 05:22:45.21 .net
> 800 :デフォルトの名無しさん:2014/02/23(日) 05:14:55.03

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

ああ、成る程。

804 :デフォルトの名無しさん:2014/02/23(日) 05:30:50.34 .net
知識自慢爺、引っ込みがつかなくなって徹夜かw

805 :デフォルトの名無しさん:2014/02/23(日) 05:33:24.62 .net
>>802
> SMC-70やX1では分離してたけど?

分離されてないよ。
だいたい、ハーバードアーキテクチャじゃないじゃんw

806 :デフォルトの名無しさん:2014/02/23(日) 05:35:30.23 .net
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 .net
>>805
分離されてるよ。つか、

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

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

808 :デフォルトの名無しさん:2014/02/23(日) 05:37:19.26 .net
>>804
知識ない奴は関係ないところで揚げ足取ろうと必死だなww

809 :デフォルトの名無しさん:2014/02/23(日) 05:37:22.85 .net
>>807
じゃあなんでハーバードアーキテクチャの話したの?w

810 :デフォルトの名無しさん:2014/02/23(日) 05:38:40.25 .net
>>809
>>786

811 :デフォルトの名無しさん:2014/02/23(日) 05:39:02.08 .net
>>786
コードとデータの分離なんてされてないのが普通だよね

812 :デフォルトの名無しさん:2014/02/23(日) 05:39:37.52 .net
>>808
おうおう熱いこと
まあ血圧測りながら頑張れや、脳出血で逝くぞ

813 :デフォルトの名無しさん:2014/02/23(日) 05:40:28.10 .net
コードとデータの分離なんてされてない

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

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



面白いなこの流れw

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

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

と言った人と

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

が同じ人なんだ。

815 :デフォルトの名無しさん:2014/02/23(日) 05:47:30.06 .net
ハーバードアーキテクチャを理解してない馬鹿が面白がってるみたいね。
コードとデータの分離なんて実装のひとつに過ぎないんだけど。

816 :デフォルトの名無しさん:2014/02/23(日) 05:49:51.09 .net
> http://weblearningplaza.jst.go.jp/taikei/620/faq/naiyou.html#q1-01
>
> Q1-1
> フォン・ノイマン方式とはどのようなものですか?

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

ハーバードアーキテクチャはフォン・ノイマン方式を否定しないよ。

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

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

818 :デフォルトの名無しさん:2014/02/23(日) 06:15:57.54 .net
>>817
> ハーバードアーキテクチャを含めて
> ほとんどのコンピュータでは、コードとデータは分離されていません。

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

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

まあ、お前が特殊な話をしてるというのは分かった。

819 :デフォルトの名無しさん:2014/02/23(日) 06:21:31.74 .net
>>817
>ハーバードアーキテクチャを含めて
>ほとんどのコンピュータでは、コードとデータは分離されていません。

>>793は都合が悪いか英語が読めないかで無視ですね?ww

820 :デフォルトの名無しさん:2014/02/23(日) 06:22:51.80 .net
PICは80年代からあったな
今も使われてるけど
ただしPICで動いてるDOSは見覚えが無い

821 :デフォルトの名無しさん:2014/02/23(日) 06:27:28.20 .net
>PICは80年代からあったな

70年代からあったよ

822 :デフォルトの名無しさん:2014/02/23(日) 06:31:10.55 .net
なら
80年代にはあったな

823 :デフォルトの名無しさん:2014/02/23(日) 06:34:17.97 .net
>>820
>ただしPICで動いてるDOSは見覚えが無い

なら
今までには見たことがないということね

824 :デフォルトの名無しさん:2014/02/23(日) 07:06:11.60 .net
スレタイ嫁

825 :デフォルトの名無しさん:2014/02/23(日) 07:14:20.58 .net
>>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 .net
プロセッサコアとキャッシュメモリ
~~~~~~~~~~~~~~~~~~~~~


なるほど、”キャッシュメモリ" の場合はってだけで
メインメモリの話をしていたわけだから
関係ないってことかw

827 :デフォルトの名無しさん:2014/02/23(日) 14:33:07.09 .net
>メインメモリの話をしていたわけだから

ハーバードアーキテクチャ分かってないの丸判りw

828 :デフォルトの名無しさん:2014/02/23(日) 14:51:58.23 .net
>>827
見てる方が恥ずかしくなるからもうやめとけ、爺さん

829 :デフォルトの名無しさん:2014/02/23(日) 15:01:10.05 .net
理屈で反論できないからレッテル貼りで罵倒ww

830 :デフォルトの名無しさん:2014/02/23(日) 15:05:40.21 .net
>>829
どうした? いつも同じ返しじゃつまらんぞ爺
お前が顔真っ赤で草生やし始めた時点で、もう議論とやらは終わっとる

831 :デフォルトの名無しさん:2014/02/23(日) 15:27:27.26 .net
>>825 出典を追加して記事の信頼性向上にご協力ください

要するにMSXにROMカートリッジを差してゲームできるのがハーバードアーキテクチャってヤツだろ

832 :デフォルトの名無しさん:2014/02/23(日) 16:26:14.95 .net
そのROMにコードとデータが混じってたら違う。
で、実際に混じってるので、違う。

833 :デフォルトの名無しさん:2014/02/23(日) 16:29:37.19 .net
・MSXはハーバードアーキテクチャではない
・ハーバードアーキテクチャはコード領域にデータが含まれることを否定しない

834 :デフォルトの名無しさん:2014/02/23(日) 19:00:05.06 .net
元々は、コードとデータが分離しているのか?って
話だったよね。

どっちみち分離してないのか。

835 :デフォルトの名無しさん:2014/02/23(日) 19:10:09.79 .net
もともとは>>747だろ

836 :デフォルトの名無しさん:2014/02/23(日) 21:20:59.56 .net
>>835
いや、>>747が8086のセグメントの話をしてる所に
勘違い老害の>>748がしゃしゃり出てきて混乱が始まった

837 :デフォルトの名無しさん:2014/02/23(日) 21:28:47.46 .net
>>836
>>747は8bitの話もしてるからおかしな流れではないな

>(8bit環境から見ると)全然スモールじゃないやん・・・

838 :デフォルトの名無しさん:2014/02/23(日) 21:44:57.43 .net
>>837
根本的に話が理解できてないようですな

839 : ◆QZaw55cn4c :2014/02/23(日) 23:10:24.35 .net
労外労外って俺を想定しているのなら(労外なのは事実だがそれはそれとして) >>748 は俺じゃないよ、>>750 で >>748 を否定しているし

840 :デフォルトの名無しさん:2014/02/24(月) 01:55:07.75 .net
>(8bit環境から見ると)全然スモールじゃないやん・・・

知りもしない8bitの話持ち出した>>747が馬鹿ってことだね

841 :デフォルトの名無しさん:2014/02/24(月) 05:45:56.06 .net
馬鹿老害は、空想と現実の区別がつかない>>748

842 :デフォルトの名無しさん:2014/02/24(月) 05:59:19.24 .net
老害老害と火病ってるのが747かw

843 :デフォルトの名無しさん:2014/02/24(月) 06:02:28.18 .net
ほらもう草生やしやがった
実に分かり易い奴だ

844 :デフォルトの名無しさん:2014/02/24(月) 06:31:17.16 .net


845 :デフォルトの名無しさん:2014/02/24(月) 14:20:13.58 .net
ω

846 :デフォルトの名無しさん:2014/02/26(水) 23:12:08.55 .net
ドスコイ

847 :デフォルトの名無しさん:2014/02/27(木) 23:50:36.44 .net
女子相撲部屋の日常を舞台にラブコメ

どす☆こい

848 :デフォルトの名無しさん:2014/02/28(金) 01:09:36.61 .net
>>847
女子相撲部屋の住人が、MS-DOS(PC-DOS、FreeDOS、、、、etc)プログラミング技術をもって、恋をしようと?
(無理やりすぎるか)

849 :デフォルトの名無しさん:2014/02/28(金) 01:34:05.58 .net
>>848
書き始めてみたものの無理だった
クオリティ高い時のVIPPERならなんとかしたんだろうが

850 :デフォルトの名無しさん:2014/02/28(金) 09:53:13.32 .net
久々にここのぞいたら・・・

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

www

851 :デフォルトの名無しさん:2014/02/28(金) 10:58:21.77 .net
スレ違いの話題を数日経ってから蒸し返すキチガイ

852 :デフォルトの名無しさん:2014/02/28(金) 11:44:43.65 .net
DOSファイラーで画像をひらいてるときの夢をみた。 …ああ「FD」…

853 :デフォルトの名無しさん:2014/02/28(金) 12:39:28.11 .net
今でもWinFD使ってる

854 :デフォルトの名無しさん:2014/02/28(金) 12:55:09.44 .net
出射さんのPCにはWinFDがインストールされてたとか

855 :デフォルトの名無しさん:2014/02/28(金) 16:37:41.13 .net
>>851
だって、、

解決してないじゃんwwww

856 :デフォルトの名無しさん:2014/02/28(金) 21:13:50.28 .net
カーソルとショートカットキーだけでファイル、ディレクトリを動かせるから、マウス不要で今でも便利だよなぁ。FD。

857 :デフォルトの名無しさん:2014/02/28(金) 23:06:23.90 .net
DOS時代は、プロンプトが表示されたらfd<return>と打つのが癖だった

858 :デフォルトの名無しさん:2014/03/01(土) 10:14:23.56 .net
Filerは使わずにvzエディタを常駐させてたな

859 :デフォルトの名無しさん:2014/03/01(土) 11:24:37.37 .net
>>857
Linuxでログイン後プロンプトでstartx打つのが
MS-DOSからWin3.1を起動するのを彷彿とさせる

860 :デフォルトの名無しさん:2014/03/01(土) 13:19:10.74 .net
Win7を使ってる今でも、スタートアップにはコマンドプロンプトを入れてる
何と言っても、一日のうちで一番使う道具だからな
もちろん、doskeyや様々な自作ツールがあればこその話だが…

861 :デフォルトの名無しさん:2014/03/01(土) 14:36:32.85 .net
>>860
もっと良いツールに変えたほうがいいよw
明らかに古いじゃんか。

862 :デフォルトの名無しさん:2014/03/01(土) 15:31:40.71 .net
バッチじゃね

863 :デフォルトの名無しさん:2014/03/01(土) 15:33:36.47 .net
コマンドプロンプト(w2k以降のcmd.exe)は、、
例えば3ファイル 001, 002, 003 とあるとして
ren 0* 1*
とすれば 101, 102, 103 にリネームしてくれるが
Linuxのbashでは
mv 0* 1*
としても
> mv: 宛先の `1*' はディレクトリではありません
と返ってきてリネーム出来ない…

864 :863:2014/03/01(土) 15:39:19.42 .net
ああ、
rename 's/0/1/' 0*
でイケた

865 :デフォルトの名無しさん:2014/03/01(土) 15:45:09.67 .net
>>861
例えば具体的な名称は?

866 :デフォルトの名無しさん:2014/03/01(土) 16:10:36.70 .net
>>865
仮想マシンでLinuxを起動して
puttyでつなげるのがいいよ。

867 :デフォルトの名無しさん:2014/03/01(土) 16:14:21.53 .net
>>865
期待するだけ無駄。どうせ
861:「あっdoskey…俺も知ってる昔からある奴じゃんププ、よーし煽ってやろw」

868 :デフォルトの名無しさん:2014/03/01(土) 16:16:29.39 .net
答えた後にレスしてもなぁw

869 :デフォルトの名無しさん:2014/03/01(土) 16:25:25.82 .net
タイプミスばかりする人ならともかく、シェルだけ強化しても
基本的にはあまり意味はない。
例えばワイルドカードの考え方ひとつにしても、
シェルと各アプリが同じ思想で統一されてないとダメだからな。

870 :デフォルトの名無しさん:2014/03/01(土) 16:33:14.83 .net
話はなにがダメかという説明を>>869がした後だな。
できないようじゃ、ダメダメ言っているだけの無能になっちゃうし。

871 :デフォルトの名無しさん:2014/03/01(土) 16:36:11.05 .net
そりゃ、揚げ足取りに専念するなら楽だもんなw

872 :デフォルトの名無しさん:2014/03/01(土) 16:38:42.56 .net
ドヤ顔で「アイツはダメだな」って言っていれば、
反論した気になれるやつっているみたいだしなぁ。

意見に反論できない時、意見への反論以外の言って(例 お前何中だよ?」
それで反論したつもりになる人とかもね。

873 :デフォルトの名無しさん:2014/03/01(土) 16:42:21.05 .net
つか、そもそも仮想マシンなんて持ち出してくる時点で
本物のDOS使いじゃないのが丸見えだし

874 :デフォルトの名無しさん:2014/03/01(土) 16:49:19.56 .net
>>870
罵倒して煽れば相手がムキになって(本当は自分の知らないことを)
詳しく教えてくれると思うのは小学生の発想だが…

875 :デフォルトの名無しさん:2014/03/01(土) 17:07:16.11 .net
いえ別に教えなくていいと思います。
教えることはないんだな(苦笑)という
流れになることが私の望む結果ですから。

876 :デフォルトの名無しさん:2014/03/01(土) 17:16:30.42 .net
> 教えることはないんだな(苦笑)
すなわち
「教えられることはあるが教えることはない」(=教える必要なし・教えても無駄)

その通りだと思う

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

くそ、あるんだ! あるんだよ!
信じてくれ!

878 :デフォルトの名無しさん:2014/03/01(土) 19:50:17.67 .net
子供ってつくづくヒマなのね
羨ましいわ

879 :デフォルトの名無しさん:2014/03/03(月) 12:15:54.32 .net
ncurses

880 :デフォルトの名無しさん:2014/03/03(月) 20:56:17.89 .net
struct SREGS segregs;
union REGS regs;
みたいなのって今でも使えるの?

881 :デフォルトの名無しさん:2014/03/03(月) 21:01:23.48 .net
今でもMS-DOSとコンパイラが使えるなら使える

882 :デフォルトの名無しさん:2014/03/21(金) 03:30:38.13 ID:GtGmhcv1.net
DOS BASICにはMOUSE命令があるのだが、資料が見つからんかったので、
Disk Basickのmouse.codをコピーして使っていました。

883 :デフォルトの名無しさん:2014/03/21(金) 20:36:45.27 ID:7mW2C/DW.net
BASICのmouse.codって100hを呼んで初期化するから、何だcomファイルかと思って
ファイルコンバータでDOSへ持ってって拡張子を.comにして実行したら
思い切り固まったっけw

884 :デフォルトの名無しさん:2014/03/26(水) 15:06:48.26 ID:vYFT5eul.net
「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.net
早速ソース見てみた。あの当時の雰囲気が伝わってくる。
「MS-DOSエンサイクロペディア」のDOS開発史と合わせて読むとしみじみ。

886 :デフォルトの名無しさん:2014/03/27(木) 18:46:23.15 ID:hEq10E5j.net
びっくりする発見とかは特にないの?

887 :デフォルトの名無しさん:2014/03/27(木) 19:44:27.44 ID:7j8STfSy.net
MS-DOSの方は全部アセンブラでよく分からなかったけどWordの方はC。
Wordの方を見た感想としては、ソースが綺麗。俺のレベルではその程度だ…

888 :デフォルトの名無しさん:2014/03/28(金) 03:02:00.93 ID:bW8jL0c7.net
OOoがパクったりしてなw

889 :デフォルトの名無しさん:2014/03/28(金) 10:05:51.67 ID:6uoLiniK.net
ぱくるところなんてもうないだろ。

890 :デフォルトの名無しさん:2014/03/28(金) 11:17:22.95 ID:fkfjsE1a.net
バグも仕様だったっけ
あれはBIOSの方か、うろ覚え

891 :デフォルトの名無しさん:2014/03/28(金) 22:13:08.56 ID:bwISCHAG.net
大文字で書かれてるソースに時代を感じる

892 :デフォルトの名無しさん:2014/03/28(金) 22:38:27.46 ID:NGCZyWyD.net
いまどきのプロセッサでもマニュアルにはニモニックコードは大文字で書いてるのが普通だと思うし
asmのソースでを大文字で書くのは時代とかあんま関係ないんじゃね

893 :デフォルトの名無しさん:2014/03/29(土) 18:43:15.81 ID:JKJVIw7K.net
BASICソースがバイナリなのが残念。
このソース読むには当時のIBMPCのBASICが必要だよね・・・

894 :デフォルトの名無しさん:2014/03/29(土) 18:59:59.05 ID:Jfe3a6vp.net
ちょっと頑張りゃデコーダくらいすぐ書けるだろ

895 :デフォルトの名無しさん:2014/03/29(土) 19:41:28.56 ID:x0t+GegV.net
デコーダはどこーだ?

896 :デフォルトの名無しさん:2014/05/08(木) 13:09:27.82 ID:1+T0GwZ6.net
GJ

897 :デフォルトの名無しさん:2014/05/08(木) 23:55:41.41 ID:9ESzLvKO.net
ディレクトリの区切り文字が '\' なのに Shift-JIS なファイル名とか
正気の沙汰じゃないと思ってましたが、その記事でも
「このような実装をする人の苦労が忍ばれる」
と書かれてますね。
そんなことしなきゃよかったのに。

898 :デフォルトの名無しさん:2014/05/09(金) 03:46:13.60 ID:my+rKTnq.net
>ディレクトリの区切り文字が '\' なのに Shift-JIS なファイル名とか
>正気の沙汰じゃないと思ってましたが、

何の問題もないが

899 :デフォルトの名無しさん:2014/05/09(金) 03:48:31.91 ID:QFIs9vri.net
使うだけの人には関係ないことですから

900 :デフォルトの名無しさん:2014/05/09(金) 04:07:28.67 ID:my+rKTnq.net
Shift JISは頭からデコードしなきゃいけないルールをいまごろになって何か言ってる人?

901 :デフォルトの名無しさん:2014/05/09(金) 04:10:45.66 ID:jEZVJE8a.net
何故そうなったのかとか一切考えたこともないくせに
自分の方が頭がいいと思い込んでるんでしょ

902 :デフォルトの名無しさん:2014/05/09(金) 04:19:41.50 ID:QFIs9vri.net
なんのこといってるのか、さっぱり

903 :デフォルトの名無しさん:2014/05/09(金) 05:17:17.95 ID:4lU/3siM.net
シフトJIS自体はそれほど問題でもないんだよな。
問題は、マルチバイトなんてシラネーヨってコードばかり量産しては日本人に押しつけてきた1バイト圏の連中。

904 :デフォルトの名無しさん:2014/05/09(金) 10:46:47.71 ID:Mr0Sp7Ii.net
受け入れなければガラパゴスなオレオレ規格で終わる訳だが

905 :デフォルトの名無しさん:2014/05/09(金) 15:20:48.90 ID:QFIs9vri.net
携帯専用文字がどうたらこうたらといってるのに

906 :デフォルトの名無しさん:2014/05/09(金) 18:33:28.01 ID:Y0vN3z8n.net
>>898
'\'=5Ch なので"予"=975Ch,"表"=955Chが
ディレクトリ名やファイル名に使えなくて
難儀した記憶がある

907 :デフォルトの名無しさん:2014/05/09(金) 18:42:30.20 ID:my+rKTnq.net
>>906
ソフトのバグであり、仕様の問題ではないな。

908 :デフォルトの名無しさん:2014/05/09(金) 18:43:10.61 ID:my+rKTnq.net
それか日本語対応されてないソフトかだな。

909 :デフォルトの名無しさん:2014/05/09(金) 18:49:23.09 ID:5YCoUAMN.net
今度はUnicodeのファイル名が使えないソフトある始末だしな。

910 :デフォルトの名無しさん:2014/05/09(金) 19:01:21.31 ID:QFIs9vri.net
使う側には文字コードがどうのこうのは関係ないけど
作る側の立場じゃない人はなにが言いたいんだろ

911 :デフォルトの名無しさん:2014/05/09(金) 19:05:49.58 ID:Ps+20HHR.net
ゆとりでしょ

912 :デフォルトの名無しさん:2014/05/09(金) 21:33:14.03 ID:Vs4K+nRl.net
知識をひけらかしたつもりが笑い者となったID:my+rKTnq
他山の石だな

913 :デフォルトの名無しさん:2014/05/09(金) 22:15:14.00 ID:QFIs9vri.net
名ばかり技術部長さん?

914 :デフォルトの名無しさん:2014/05/10(土) 01:18:40.05 ID:Y6BEkENU.net
>>907
いや、
・MS-DOSの仕様
・S-JISの仕様
・MS-DOSの仕様に合わせてS-JIS以外の仕様を考えなかった連中の頭の仕様
の問題では

915 :デフォルトの名無しさん:2014/05/10(土) 04:35:49.79 ID:tQkvdWPW.net
OSやアプリの実装で回避できる程度の問題のために文字コードをどうにかしようって奴がいたら頭がおかしい

916 :デフォルトの名無しさん:2014/05/10(土) 05:01:24.34 ID:Pf6aLrY4.net
SJISってなに、状態ですが

917 :デフォルトの名無しさん:2014/05/10(土) 07:01:43.51 ID:Y6BEkENU.net
>>915
実装で>>906のような不便を回避できるかな

918 :デフォルトの名無しさん:2014/05/10(土) 11:33:49.57 ID:u+gQQwZf.net
>>910
何言ってんのコイツ?

919 :デフォルトの名無しさん:2014/05/10(土) 11:37:03.63 ID:tQkvdWPW.net
>>917
文字列を頭っから見てくだけ

920 :デフォルトの名無しさん:2014/05/10(土) 11:45:18.81 ID:gCJbXOs2.net
通常は ASCII 文字列中の 0x5C と
mbcs 中の 0x5C は頭から見ると区別できるが
「ディレクトリ名」の「最後の文字」が
「表」だったりするとバグるソフトが多かったな

921 :デフォルトの名無しさん:2014/05/11(日) 05:29:37.04 ID:E7AkcApx.net
バックスラッシュと¥が同じコードだった
が混乱させたというオチでは

922 :デフォルトの名無しさん:2014/05/11(日) 07:28:36.51 ID:NXvs+Rfo.net
>>919
それでディレクトリ名やファイル名に『予』や『表』が使えるようになるの?

923 :デフォルトの名無しさん:2014/05/11(日) 11:28:39.49 ID:c6cEQIU0.net
なるよ

924 :デフォルトの名無しさん:2014/05/11(日) 11:48:43.99 ID:+iYJeok5.net
strrchr等のライブラリがあるのに、一々先頭から辿るなんてバカのすること

925 :デフォルトの名無しさん:2014/05/11(日) 11:59:09.47 ID:BMVgC/Fr.net
そのライブラリの中身は先頭から辿ってるだろ。
自分で毎回実装してるとは誰も言っていない。

926 :デフォルトの名無しさん:2014/05/11(日) 12:20:47.72 ID:c6cEQIU0.net
マルチバイト対応の strrchr() の中がどうなってるかも想像できない >>924 は救いようがないバカだな

927 :デフォルトの名無しさん:2014/05/11(日) 14:04:52.10 ID:Yo9D5Fv9.net
1バイト目ではありえないコードが出てくるまでさかのぼるんだったっけ。
で、SJISは1バイト目と2バイト目のコードのコードの範囲が違うから、
(いわゆる)漢字が並んでいても途中で判定できる可能性があると。
なつかしいな

でもstrrchrで見つかるたびにそんなことしてたら余計時間かかるな。

928 :デフォルトの名無しさん:2014/05/11(日) 14:42:15.08 ID:NXvs+Rfo.net
>>923
md 予定表
で「予定表」ってディレクトリ作れるの?

929 :デフォルトの名無しさん:2014/05/11(日) 15:45:15.59 ID:c6cEQIU0.net
>>928
実装次第

930 :デフォルトの名無しさん:2014/05/11(日) 16:29:57.70 ID:NXvs+Rfo.net
例えばNEC PC-9801用の日本語MS-DOSで>>928が出来るようにする方法を
俺は知らないのだけど、出来る方法があるのだったら教えて欲しいのですが

931 :デフォルトの名無しさん:2014/05/11(日) 16:39:39.77 ID:c6cEQIU0.net
>>930
実装変更

932 :デフォルトの名無しさん:2014/05/11(日) 17:17:45.27 ID:NXvs+Rfo.net
具体的に

933 :デフォルトの名無しさん:2014/05/11(日) 17:19:57.25 ID:CvVjg5xA.net
>>928
今のOSは大丈夫

934 :デフォルトの名無しさん:2014/05/11(日) 17:31:37.14 ID:c6cEQIU0.net
>>932
DEBUG.EXE 使って MS-DOS にパッチ当てろ

935 :デフォルトの名無しさん:2014/05/11(日) 17:57:53.23 ID:CvVjg5xA.net
今はソースも公開されてるしな

936 :デフォルトの名無しさん:2014/05/11(日) 18:33:44.71 ID:NXvs+Rfo.net
>>933
>>906の話が発端なので今のOSが大丈夫とかは関係ありません。

>>934
仕事には使えませんね…

937 :デフォルトの名無しさん:2014/05/11(日) 18:36:55.78 ID:c6cEQIU0.net
>>936
>仕事には使えませんね…

なんで??

938 :デフォルトの名無しさん:2014/05/11(日) 19:02:04.03 ID:NXvs+Rfo.net
>>937
>>937
標準では「予定表.JXW」とか作れないでしょ(一太郎って.JXWだっけ)。
こちらでパッチ当てて作れても、送り先の相手までやっていいのか
分からないようなパッチを求められないでしょう。

939 :デフォルトの名無しさん:2014/05/11(日) 19:32:37.35 ID:c6cEQIU0.net
>>938
相手から予定表.JXWが送られてきたらどうすんの?

940 :デフォルトの名無しさん:2014/05/11(日) 20:11:00.20 ID:NXvs+Rfo.net
>>939
読めないのでリネームして送り直してください
と言える。

941 :デフォルトの名無しさん:2014/05/11(日) 22:07:06.91 ID:c6cEQIU0.net
>>940
じゃあ相手に送るときもリネームすればいいだけのことだね。

942 :デフォルトの名無しさん:2014/05/12(月) 00:04:47.49 ID:nXBfXpUM.net
そもそもDOSの時代に漢字のファイル名使ってるやつは今で言う情弱認定されてたけどな。

943 :デフォルトの名無しさん:2014/05/12(月) 00:42:20.30 ID:4z9QgUFm.net
8.3で、全角4文字までだからな。
予定表.jxwくらいなら良いと思うけど、ID:c6cEQIU0はあんまりだな。

944 :デフォルトの名無しさん:2014/05/12(月) 01:05:56.76 ID:nWH1YD/Y/
readmeの代わりに 読んでね.doc なんて結構見たけどな

945 :デフォルトの名無しさん:2014/05/12(月) 01:06:22.03 ID:wu0Y5GMy.net
readmeの代わりに 読んでね.doc なんて結構見たけどな

946 :デフォルトの名無しさん:2014/05/12(月) 12:13:03.30 ID:4z9QgUFm.net
【0x5Cを含む文字】
―ソЫ\噂申曾箪貼能表暴予禄兔浬欺圭構蚕十
喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭xx\\

結構普通に使う文字がありますね。
 ↑「構」も

947 :デフォルトの名無しさん:2014/05/12(月) 12:42:54.31 ID:EwMoA1sR.net
>>943
>ID:c6cEQIU0はあんまりだな。

頭悪い質問に親切に付き合ってくれてる人にそれはないわ

948 :デフォルトの名無しさん:2014/05/12(月) 13:50:20.19 ID:+R4pOvea.net
つ[SWITCHAR]

949 :デフォルトの名無しさん:2014/05/12(月) 15:00:27.69 ID:4z9QgUFm.net
>>947
仕事で使うMS-DOSにパッチを当てるのを勧めるのは
無茶です

950 :デフォルトの名無しさん:2014/05/12(月) 15:02:22.24 ID:pdvVzHNX.net
そういうこと(パッチ)やれる人いるのかな
当時はいましたが

951 :デフォルトの名無しさん:2014/05/12(月) 15:16:51.66 ID:4f5OzZWy.net
>>949
そういうことを言う奴に限って、MSからのパッチならロクに調べもせず無条件に受け入れる
んでもし不具合が出ても「だってMSの提供なんだから仕方ないじゃ〜ん」

文系脳管理職にありがちなパターンw

952 :デフォルトの名無しさん:2014/05/12(月) 15:45:34.72 ID:EwMoA1sR.net
>>949

>>934
>DEBUG.EXE 使って MS-DOS にパッチ当てろ



>>928
>で「予定表」ってディレクトリ作れるの?

できる/できないという質問に対する回答であって、勧めてるわけではないな

953 :デフォルトの名無しさん:2014/05/12(月) 16:25:21.11 ID:4z9QgUFm.net
>>951
MS-DOSが運用されていた時代に
「予定表」ってディレクトリ作れるようにするために
パッチ当てるのは常識だったのでしょうか。

>>952
パッチ当てるのは現実的じゃないんだから、パッチ当てないと
「予定表」ってディレクトリ作れないのなら
「出来ない」と同じだと思うのですが。

954 :デフォルトの名無しさん:2014/05/12(月) 17:00:58.76 ID:EwMoA1sR.net
>>953
>パッチ当てるのは現実的じゃないんだから、パッチ当てないと
>「予定表」ってディレクトリ作れないのなら
>「出来ない」と同じだと思うのですが。

>>917
>実装で>>906のような不便を回避できるかな

からの話の流れなのでパッチ当てろは回答として順当

955 :デフォルトの名無しさん:2014/05/12(月) 17:17:46.18 ID:4z9QgUFm.net
>>954
でも>>937は変では?

956 :デフォルトの名無しさん:2014/05/12(月) 17:43:17.02 ID:EwMoA1sR.net
>>955
「こちらでパッチ当てて作れても、送り先の相手までやっていいのか」

「相手に送るときもリネームすればいいだけのこと」

だから仕事で使えない理由もないが?

957 :デフォルトの名無しさん:2014/05/12(月) 18:08:11.23 ID:PaHVt2SV.net
はいはい、口笛で電話もかけられるし100mを9秒台で走れますね。
この世に誰か一人でもできる人がいるなら「何の問題もない(>899)」わけですよ。
だいたい直接セクタにアクセスすればいいんだからファイル名ごときで何か問題があるわけがない。DOSだってわざわざ使う必要ねーよw 問題なーい!

958 :デフォルトの名無しさん:2014/05/12(月) 18:27:02.58 ID:EwMoA1sR.net
>>957
>この世に誰か一人でもできる人がいるなら「何の問題もない(>899)」わけですよ。

実装の間違いは

>ディレクトリの区切り文字が '\' なのに Shift-JIS なファイル名とか
>正気の沙汰じゃないと思ってましたが、

↑の言う仕様の問題ではないからな。

959 :デフォルトの名無しさん:2014/05/12(月) 19:32:18.61 ID:Z3w7y/wy.net
森鴎外叱る
↑CP932
MSがテスト推奨してる単語
↓UNICODE
森鷗(環境依存)外��(環境依存)る

960 :デフォルトの名無しさん:2014/05/12(月) 19:35:15.70 ID:Z3w7y/wy.net
どうみても2ちゃんは不合格
時代遅れです

961 :デフォルトの名無しさん:2014/05/13(火) 05:26:14.16 ID:AGq8h2cM.net
0x5CのためにDOSにパッチを当てるなんて、趣味ならともかく
仕事ではありえない。
0x5Cなど使えない文字を使わないのが正しい。

なにをくだらない意地で話を引っ張ってんだ ?

962 :デフォルトの名無しさん:2014/05/13(火) 09:32:20.66 ID:RN1+ADZO.net
揚げ足取りたい感があからさま過ぎるな

>>922
>それでディレクトリ名やファイル名に『予』や『表』が使えるようになるの?

>>928
>md 予定表
>で「予定表」ってディレクトリ作れるの?

>>930
>例えばNEC PC-9801用の日本語MS-DOSで>>928が出来るようにする方法を
>俺は知らないのだけど、出来る方法があるのだったら教えて欲しいのですが

>>932
>具体的に

963 :デフォルトの名無しさん:2014/05/13(火) 11:14:53.02 ID:M1VPnwjw.net
実際 "md 予定表" で普通に予定表ってディレクトリ作れるしな
自分で試したことないんだろうか?

964 :デフォルトの名無しさん:2014/05/13(火) 11:32:03.29 ID:cKTv5aD9.net
物持ちいいんだな

965 :デフォルトの名無しさん:2014/05/14(水) 13:14:01.51 ID:QIhdrTS3.net
でぃえくとりは作れてもアクセス出来ない
中身にファイル置いてみろ

966 :デフォルトの名無しさん:2014/05/14(水) 13:19:20.72 ID:NmfzNKml.net
>>965
>>928

967 :デフォルトの名無しさん:2014/05/14(水) 16:11:27.37 ID:R8nAxOcf.net
FILMTNで普通にアクセスできたんだけど……
ファイラーとか使わない人なの?

え?読み出せないソフトがある?
ディレクトリ名をYOTEIHYOにすればいいじゃない
使えないもの一部例外を避ければいいだけなので実務上何も困らない

968 :デフォルトの名無しさん:2014/05/14(水) 17:13:29.94 ID:BbcXo4sp.net
>>967
見てて最早痛々しいが、何でそんなに必死なんだ?
そもそも実務の定義も違うようだしなw

969 :デフォルトの名無しさん:2014/05/14(水) 20:25:35.68 ID:JwzZg2YB.net
ファンクションコールレベルでは通るんだから、実装がくそなソフトを使ってる方が悪い。

970 :デフォルトの名無しさん:2014/05/14(水) 22:58:57.09 ID:iC7Z+yGE.net
NEC版DOS3.3Dと6.2だと「予定表」というディレクトリの中に
予定表.TXTという名前のファイルが作れて問題なく読み書きできるな

>>965は一体どういうDOS環境を使っているんだ
そもそもそれは日本語MS-DOSなのか?

971 :デフォルトの名無しさん:2014/05/15(木) 02:52:24.35 ID:nlFu/GzP.net
もしかしたらDOS/V版じゃだめなんかね?

972 :デフォルトの名無しさん:2014/05/15(木) 02:57:13.30 ID:AmDZveYQ.net
そんな板があるとですか?

…ごめん見つからんです
ボインタおくんなまし

973 :デフォルトの名無しさん:2014/05/15(木) 04:39:57.92 ID:yW4QL04N.net
執拗に粘着してる ID:NXvs+Rfo が何したいんだかサッパリ分からん

974 :デフォルトの名無しさん:2014/05/15(木) 14:27:46.23 ID:pJoqhoXA.net
>>969の言うように実装がクソなソフトを使っていたのだろうな。
でも取引先も自分も同じソフトを使って取引をしていて
ソフトの修正が見込めないのなら、5Cが含まれるファイル・ディレクトリは
避けるのが正しい運用だな。

975 :デフォルトの名無しさん:2014/05/15(木) 15:38:52.95 ID:kz7wnF+M.net
で、わざとらしく半角カナを使って煽る…とw

976 :デフォルトの名無しさん:2014/05/15(木) 15:48:52.10 ID:nlFu/GzP.net
半角カナは使えるだろ
使えないのはグラフィック文字

977 :デフォルトの名無しさん:2014/05/15(木) 15:52:56.78 ID:yW4QL04N.net
英語のソフトでは7bitでマスクしてるのも珍しくはないが

978 :デフォルトの名無しさん:2014/05/15(木) 16:43:36.18 ID:Sgx5bTG4.net
MS-DOS側からSMTPで送信したメールを
NeXTSTEPで受けるとNeXTのMail.appが暴走したな

979 :デフォルトの名無しさん:2014/05/15(木) 17:10:43.06 ID:nlFu/GzP.net
わざわざ文字列を全部7bitマスクする意味がんからん
シリアル通信プロトコルと勘違いしてないか?

980 :デフォルトの名無しさん:2014/05/15(木) 17:40:34.94 ID:yW4QL04N.net
文字のbit7をフラグに使うソフトって珍しくなかったが

981 :デフォルトの名無しさん:2014/05/15(木) 22:33:06.71 ID:wgclvry3.net
WordStarとか、MSBをフラグに使ってたね。

次スレです
懐かしのMS-DOSプログラミング ver.2
http://toro.2ch.net/test/read.cgi/tech/1400160557/

982 :デフォルトの名無しさん:2014/05/16(金) 22:10:42.84 ID:pr5a65Bu.net
FD使うとディレクトリエントリを直接書き換えるから、使えない文字でも使えたな。
スペースの入ったファイル名とか。

983 :デフォルトの名無しさん:2014/05/17(土) 07:41:45.32 ID:cifss4XG.net
>>981
昔のBASICインタープリタなんかもな…
ああいうのを見ると、そういう技が使える英語圏の人がちょっと羨ましく思えた

984 :デフォルトの名無しさん:2014/05/17(土) 22:37:12.36 ID:DaeExcXN.net
変数名1文字目のMSBが立つと文字変数とかのインタプリタもあったね。

985 :デフォルトの名無しさん:2014/05/18(日) 05:02:36.15 ID:LRurSlVP.net
新スレよりも、上がっている。

986 :デフォルトの名無しさん:2014/05/18(日) 08:36:14.63 ID:y7sacx+K.net
重複は古いスレから埋めるのがマナー

987 :デフォルトの名無しさん:2014/05/18(日) 18:57:34.17 ID:mSEoeoGs.net


988 :デフォルトの名無しさん:2014/05/18(日) 18:59:46.12 ID:mSEoeoGs.net


989 :デフォルトの名無しさん:2014/05/18(日) 22:10:10.22 ID:0Gh8hW/v.net
昔の機械語ソースって、スタックを <stack><stack><stack>... とかの文字列で埋める人多かったね

990 :デフォルトの名無しさん:2014/05/18(日) 22:15:52.25 ID:wTsBQBni.net
小梅

991 :デフォルトの名無しさん:2014/05/18(日) 22:18:15.85 ID:wTsBQBni.net
どんどん産め

992 :デフォルトの名無しさん:2014/05/18(日) 22:22:23.59 ID:wTsBQBni.net
もっと産め

993 :デフォルトの名無しさん:2014/05/18(日) 22:24:45.01 ID:wTsBQBni.net
はらめ

994 :デフォルトの名無しさん:2014/05/18(日) 22:26:41.72 ID:wTsBQBni.net
妊娠しろ

995 :デフォルトの名無しさん:2014/05/18(日) 22:36:42.85 ID:C9yMB7Be.net
その前に結婚しろ

996 :デフォルトの名無しさん:2014/05/18(日) 22:40:13.29 ID:wTsBQBni.net
アッラーアクバル
アーメン
南無阿弥陀仏

997 :デフォルトの名無しさん:2014/05/18(日) 22:50:39.97 ID:wTsBQBni.net
南無妙法蓮華経
オンアビラウンケン
USA! USA! USA!
米英鬼畜

998 :デフォルトの名無しさん:2014/05/18(日) 22:57:47.21 ID:wTsBQBni.net
俺何教なんだよ
はっきりしろよ

999 :デフォルトの名無しさん:2014/05/18(日) 23:04:10.91 ID:wTsBQBni.net
N●Kは共産主義者
危険分子を殲滅せよ

1000 :デフォルトの名無しさん:2014/05/18(日) 23:04:42.60 ID:rUyw0YMJ.net
Windows 8.1でもdosソフトウェアは、うごきますか?

1001 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1001
199 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★