懐かしのMS-DOSプログラミング [sc](★0)
-
- 1
- 2010/04/21(水) 12:42:23
-
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
msg db '懐かしのDOS時代のプログラミングについて語ろうぜ',0dh,0ah,'$'
-
- 9
- 2010/04/21(水) 19:12:38
-
>>6
edlinも今も残ってるんだよね。
DOSの生みの親Tim Paterson氏への敬意なのかな。
-
- 10
- 2010/04/21(水) 22:42:19
-
うちはQuickCだったな。
これでCをある程度覚えた。MS-Cと互換性が高かったのも良かった。
日本語コメント付きのサンプルソースは実に役立った。
DOSの時代にCを覚えておいて正解だったと思う。
今のWindowsプログラムは複雑で何が何だか分からない。
SYMDEBは便利だったなー。
これを弄り回して8086の機械語を覚えた。
なるほど8086は2つの数値を組み合わせたアドレスでMBをアクセスするのか、とか。
-
- 11
- 訂正
- 2010/04/21(水) 22:44:18
-
誤) MB
正) 1MB
-
- 12
- 2010/04/22(木) 01:54:01
-
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
-
- 13
- 2010/04/22(木) 09:42:43
-
int 21h
の代わりに
call psp:50h
でもDOSを呼べたよね。
-
- 14
- 2010/04/22(木) 09:54:23
-
>>2
LSI-C86試食版が安定してきたのはDOS3.1の時代以降だね。
初期は特に、sscanf()のバグが多くて指摘するのも大変だったw
-
- 15
- 2010/04/22(木) 22:47:03
-
Cから覚えたんだけど、アセンブラのことがちょっと分かってくると、
ライブラリ関数が既に用意されてるものであっても、
わざわざintdosとかで得意げにCからDOSファンクションを呼んだりしたもんだ。
-
- 16
- 2010/04/22(木) 22:57:29
-
Cの標準ライブラリを使わずに
敢えて似たようなものをアセンブラで自作して
それだけ作ってプログラムしたりな
-
- 17
- 2010/04/23(金) 12:00:14
-
プログラムの終了はINT 20HでもOK。
-
- 18
- 2010/04/23(金) 12:52:16
-
今ならDOSBOXとかあるから、趣味ならあえて時代に逆行してもいいと思う。
どの環境でも動くからね。
-
- 19
- 2010/04/23(金) 23:12:40
-
ファンクション31hで常駐終了するけど、
常駐させたプログラムを開放するファンクションがないので
あれこれ探したもんだ。
-
- 20
- 2010/04/24(土) 07:15:19
-
今のWindowsプログラムより、DOS時代の方が難しく感じるものの代表だな。
>TSR
-
- 21
- 2010/04/25(日) 18:46:59
-
LSI-C86はコメントが標準のしか使えないのが今にしてみるとめんどい
その代わりネストが可能だけど
-
- 22
- 2010/04/26(月) 09:35:59
-
>>20
常駐するだけなら難しくないだろ。Biosフックも今で言うAPIフックみたいなもんだし。
そんなことよりも、常駐アプリでどうやってメモリを確保するかの方がw
PC-98限定で、裏VRAMをバッファに使う猫なんて常駐物があったけど、
同じく裏VRAMをバッファに使う一太郎とバッティングするもんだから
「ウイルスだ」なんて騒ぐマスコミまで出てくるなんて楽しい時代だったね。
-
- 23
- 2010/04/26(月) 12:56:32
-
常駐開放=ベクタ復帰とメモリ開放
-
- 24
- 2010/04/26(月) 18:23:49
-
あの時代は、どうやれば1byteでも減らせるかを考えてた。
-
- 25
- 2010/04/26(月) 23:45:58
-
CP/M互換のシステムコール方法もあったよな。
CL=ファンクション番号でcall 0005hだったかな。
-
- 26
- 2010/04/27(火) 22:40:34
-
CodeViewなんてのもあったね。
持ってたけどPC-98用なので今では使えない。
結局LSI-C + symdebの世話になってる。
-
- 27
- 2010/04/28(水) 09:25:20
-
Programer's workbench
-
- 28
- 2010/04/28(水) 22:43:10
-
DOS時代は (今も?) 統合環境なんて使わないのが常識でした。
-
- 29
- 2010/04/29(木) 18:07:54
-
VzがあればIDEなんて不要
-
- 30
- 2010/04/29(木) 22:35:44
-
俺はmifes派
-
- 31
- 2010/04/30(金) 09:53:30
-
Ezカスタマイズ版やNitEmacsカスタマイズ版を使っていたのはいい思い出。
-
- 32
- 2010/04/30(金) 13:18:13
-
EMSとかXMSとかの規格が出て来て、DOSプログラムのキャパが増えた時期が楽しかった。
-
- 33
- 2010/04/30(金) 17:23:38
-
32bit DOS Extenderを使ったら、セグメントの呪縛から解放されて、天国にたどり着いたかのような気がした
-
- 34
- 2010/05/01(土) 21:35:57
-
メモリモデルなんて言葉が懐かしい。
スモールでもかなりのことが出来たな。
-
- 35
- 2010/05/02(日) 22:05:23
-
しかしスモールモデルのみとは言え、他に何の制約もないコンパイラを無償配布した
LSIジャパンの功績は大きかったと思う。
-
- 36
- 2010/05/03(月) 16:34:41
-
LSI-C試食版に付いていたcppとmakeとlccのソースは何度も読み返した。
やはりプログラミングを覚えるには、他人の書いたある程度の規模のソースを読むのが一番。
-
- 37
- 2010/05/04(火) 23:26:25
-
TURBO C Ver1.5つかってたときは、テキスト表示に
cprintf()やら、gotoxy()やら使って
ドラクエのメニューごときみたいなん作ってたなぁ
-
- 38
- 2010/05/04(火) 23:50:13
-
TCのconio.hって思いっきり98依存の関数が多かったな。
text何たらとか。
-
- 39
- 2010/05/06(木) 10:32:02
-
symdebよりdebugの方が使い出がある。
バッチコマンドからバイナリ作るとか。
ハードディスクのダイレクトアクセスとか。
-
- 40
- 2010/05/06(木) 10:34:14
-
< バイナリ
---
> バイナリファイル
-
- 42
- 2010/05/06(木) 13:40:43
-
>>39
symdebで W100 2 0 1 やリダイレクトもできるぞ
(でも意味判らず試すなよ)
-
- 43
- 2010/05/06(木) 22:18:42
-
>>41
DOS/V用Turbo-Cはお目に掛かったことがないな。日本でも売られてたの?
-
- 44
- 2010/05/08(土) 03:03:00
-
>>43
DOS/V用じゃなくて、IBM-PC/AT互換機用だよ。DOS/V用は記憶にないけれど、あったとすれば日本専用でしょ。
# DOS/V自体が(事実上)日本専用なんだから。
-
- 45
- 2010/05/08(土) 07:02:36
-
失礼。当時はAT互換機=DOS/V機だったから。
で、ということは英語版?
-
- 46
- 2010/05/10(月) 11:15:54
-
マニュアルが日本語になっていて一部メッセージが日本語になっただけの翻訳版だったかな?
もう忘れたよ……
-
- 47
- 2010/05/10(月) 13:13:04
-
Turbo-CのAX版かもね
-
- 48
- 2010/05/11(火) 22:30:01
-
TCのマニュアルは物凄く親切な記述だったように覚えてる
-
- 49
- 2010/05/12(水) 18:52:39
-
あの頃のBolandはよかったな
ライブラリのバグも少なかった気がする
パソ通の時代から、こういう「おやじ御用達スレ」はなくならんなw
-
- 50
- 2010/05/13(木) 23:52:33
-
98用のTurbo-Cに入っていたpc98mouseという関数。
「Microsoft形式のマウスドライバには対応していません」
アンチMSぶりが良く現れてたな。
-
- 51
- 2010/05/14(金) 23:54:44
-
98用DOS5.0が出たとき、NEC自身も、mouse.comはDOSシェル専用だから、
市販アプリでは使えないと明記していた。
でも実際にはMS形式のマウスに対応したアプリも多かった。
-
- 52
- 2010/05/15(土) 17:46:37
-
NEC版、MS版マウスドライバの見分け方
マウス初期化 (int 33h ax=0) のbxの値で見分けられる。
MS版はbxにボタンの個数が帰ってくるが、NEC版は何も返さない。
予めbx=0としておけば、コール後bx==0がNEC版ドライバ。
-
- 53
- 2010/05/16(日) 21:03:58
-
マウス使うのってドライバ経由が普通だっけ?
俺はなんかI/O叩いて使ってたような気がするが
さすがに記憶が曖昧すぎて覚えていない
-
- 54
- 2010/05/17(月) 22:37:49
-
マウスドライバやEMSドライバは、一見風変わりなドライバだ。
組み込み後はDOSを経由せずにアプリから直接ドライバとやり取りする。
-
- 55
- 2010/05/18(火) 07:20:40
-
>>54
???
-
- 56
- 2010/05/18(火) 18:55:07
-
多分、普通のデバイスだと
アプリ -(int 21h)- DOS -(デバイス呼び出し)- デバドラ
だけど、マウスやEMSは
アプリ -(int xxh)- デバドラ
でアプリとデバドラが直接やりとりすることを挙げてるのだと思う。
-
- 57
- 2010/05/21(金) 09:49:35
-
TCのインラインアセンブリは擬似命令だろうが何でも使えるので
おおっと思ったが、実はアセンブリソースを吐き出して
コンパイラはノータッチ、後はアセンブラ任せだった。
つまり、インラインアセンブリを使う場合アセンブラが別途必要。
(廉価版のTurboCには付いてなかったんだよ)
-
- 58
- 2010/05/25(火) 23:01:03
-
xor ax,ax
-
- 59
- 2010/05/26(水) 06:02:27
-
>>58
はるか大昔、それを得意気に使いまくってた上司に sub ax,ax を見せたら、
「そんな分かりにくいコーディングする奴があるかバカヤロォ」と怒られますたw
-
- 60
- 2010/05/26(水) 09:37:56
-
>>59
得意も何も、今でも使われている常套手段じゃないか。
怒るのは問題かもしれないが、フラグに影響を与えまくる減算を使うのは間抜けだろう。
このページを共有する