facebook twitter hatena line google mixi email
★お気に入り追加


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

  • 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
< バイナリ
---
> バイナリファイル

ここまで見た
  • 41
  •  
  • 2010/05/06(木) 12:01:36
>>35
βテストさせられたとも言える。標準ライブラリの出来が今ひとつだったからね。

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

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

ここまで見た
  • 42
  •  
  • 2010/05/06(木) 13:40:43
>>39
symdebで W100 2 0 1 やリダイレクトもできるぞ
(でも意味判らず試すなよ)

ここまで見た
  • 43
  •  
  • 2010/05/06(木) 22:18:42
>>41
DOS/V用Turbo-Cはお目に掛かったことがないな。日本でも売られてたの?

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

ここまで見た
  • 45
  •  
  • 2010/05/08(土) 07:02:36
失礼。当時はAT互換機=DOS/V機だったから。

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

ここまで見た
  • 46
  •  
  • 2010/05/10(月) 11:15:54
マニュアルが日本語になっていて一部メッセージが日本語になっただけの翻訳版だったかな?
もう忘れたよ……

ここまで見た
  • 47
  •  
  • 2010/05/10(月) 13:13:04
Turbo-CのAX版かもね

ここまで見た
  • 48
  •  
  • 2010/05/11(火) 22:30:01
TCのマニュアルは物凄く親切な記述だったように覚えてる

ここまで見た
  • 49
  •  
  • 2010/05/12(水) 18:52:39
あの頃のBolandはよかったな
ライブラリのバグも少なかった気がする

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

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

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

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

ここまで見た
  • 53
  •  
  • 2010/05/16(日) 21:03:58
マウス使うのってドライバ経由が普通だっけ?
俺はなんかI/O叩いて使ってたような気がするが
さすがに記憶が曖昧すぎて覚えていない

ここまで見た
  • 54
  •  
  • 2010/05/17(月) 22:37:49
マウスドライバやEMSドライバは、一見風変わりなドライバだ。
組み込み後はDOSを経由せずにアプリから直接ドライバとやり取りする。

ここまで見た
  • 55
  •  
  • 2010/05/18(火) 07:20:40
>>54
???

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

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

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

ここまで見た
  • 58
  •  
  • 2010/05/25(火) 23:01:03
xor ax,ax

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

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

砂時計アラームタイマー
フリック回転寿司
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email