SSブログ

PC9801とdBASEコンパイラ [PC・スマホ]

  
平成24年2月18日(土)月歴1月27日 2011年日記
  
平成24年壬辰(みずのえたつ) 睦月・正月27日
節気:立春 第三候:魚上氷(うおこおりをいずる)
  
12021602.JPG

写真は僕の部屋兼会社事務所です。会社事務所はマンションの一室から
ついに自分の部屋まで撤退し、毎日ここで仕事をしてBlogを書いてます。

さて、赤い枠は分かりますか?NEC PC9801はいまもって現役なのです!
song4uさんが「DELLを5年も使っちゃいけませんよ」なんて書いてますが
5年なんてものではないのですよ!DOSが今も現役なんですから!(笑)

DOSで使っているのは、会計ソフトと自分がdBASEコンパイラで書いた
請求書発行システムと同じく自分で書いたソフトがいくつか動いてます。

12021707.JPG12021706.JPG12021705.JPG

僕のパソコン歴はNEC PC8801からです。すぐにPC9801になりました。
今では考えられない世界です。外部記憶装置どころか何もないのです。
PC-9800シリーズ
外部記憶装置つまりフロッピーディスクドライブさえ実装されてないのです。
8インチフロッピーディスクドライブを買ったのも、しばらくしてからでした。

この8インチのドライブって30cmくらいの大きさですが、大きい音がする。
アクセスする度にぶっぶっと音がする。度々エラーしてデータが消える。

苦労しました。そこでその次5インチのフロッピーディスクが出るとすぐに
8インチドライブを売って、アスキーのマルチプランという表計算ソフトを
買いました。いまのMS Excel。そこでマクロ使って給与計算をしました。

一ヶ月を1シートで計算していました。年末調整で串刺計算するのですが
社員が退社するとその串刺計算が大変。困ってPCショップに相談すると
ここまでマクロを書けるなら、そろそろdBASEでプログラムしたらと言われ
アシュトンテイトのdBASE IIを買って、プログラムして給与計算しました。

話が長そうですね。(笑) そこからプログラミングにはまりました。いかに
ステップ数を少なく、いかに分かりやすく、洒落たプログラムにするか。

トイレに入ってもずっと考えてましたね。そのロジックを思いついた時は
それは「こうだ!」とコンピューターにかじりつきプログラミングしました。

その頃「何も専務」で時間あったんです。ITNと知り合った時と重なります。
給与計算、請求書発行、店舗システム、ほとんど自分のシステムでした。

自分でプログラムするので、本当に使いやすいシステムでした。ですから
今も便利で使っているのです。現役でDOSマシーンが生きているのです。

いまはWindowsになりプログラミングしません。懐かしく開いてみました。
こんな文章を書いてEXEの実行ファイルするのです。このくらいの文章を
100以上書いて、やっと1つのシステムになるのです。懐かしいです~(笑)

***********************
* CM110.PRG *
*受注票入力・営業員コード*
***********************
set color to G
@ 3, 6 say "外交受注票 入力・・・・・・・・・・・[11]"
set color to

select 1
use TRAN
copy structure to &TEMP.TRAN_A
use &TEMP.TRAN_A alias TRAN

select 2
use TRAN index TR_CS_CD alias TRAN_O

select 3
use TRAN_BP

select 4
use EIGYO index EI_EI_CD

select 5
use CUS index CS_CS_CD

select 6
use ITEM index IT_IT_CD

select 7
use NIPO index NP_NP_DT

store " " to CS_CODE
store " " to CS_SIME
store " " to CS_NO
store " " to IT_CODE
store 0 to CM110CT
store " " to CM110PLUS
store 0 to NP_BPKYA
store " " to NP_BP

do CM110_DS

do while .T.

  store YY to CM110YY
  store MM to CM110MM
  store DD to CM110DD
  @ 5,46 say WEEK

  @ 7, 4
  set color to G
  @ 7, 4 say "入力日付 [ ]戻る"
  set color to
  @ 7,14 say "ESC"

  ?? chr(BELL)
  if TYPE="CLEAR"
    clear typeahead
  endif
  @ 5,33 get CM110YY picture "99"
  @ 5,37 get CM110MM picture "99"
  @ 5,41 get CM110DD picture "99"
  read
  clear gets

  if readkey()=0.or.readkey()=12
    close databases
    return
  endif

  if val(CM110MM) <=0 .or. val(CM110MM) >=13 .or. ;
   val(CM110DD) <=0 .or. val(CM110DD) >=32
    ?? chr(7)
    loop
  endif

  store CM110YY+CM110MM+CM110DD to TR_DATE
  store left(cdow(ctod(str(val(CM110YY)+1988,4)+"/"+CM110MM+"/"+CM110DD)),2) to WEEK2
  @ 5,46 say WEEK2

  do while .T.

    store 0 to NP_KYAKU
    select EIGYO

    @ 7, 4
    set color to G
    @ 7, 4 say "[ ]日付 [ ]終了"
    set color to
    @ 7, 5 say "ESC"
    @ 7,16 say "."

    do while .T.

      *******LP100(営業員コード)**********

      ?? chr(BELL)
      if TYPE="CLEAR"
        clear typeahead
      endif
      store " " to EI_CODE
      @ 3,67 get EI_CODE picture "!"
      read
      clear gets

      if EI_CODE="."
        close databases
        return to master
      endif

      if val(EI_CODE)<>0
        ?? chr(7)
        loop
      endif

      if readkey()=0.or.readkey()=12.or.EI_CODE="\"
        @ 3,68 say " "
        exit
      endif

      goto top
      seek EI_CODE
      if eof()
        ?? chr(7)
        if HELP="HELP"
          ?? chr(BELL)
          ?? chr(BELL)
          locate for left(EIGYO_CODE,1)=EI_CODE.or.val(EIGYO_CODE)=0

          store 0 to CP_CT
          do while CP_CT<13.and..not.eof()

            store CP_CT+1 to CP_CT
            @ 8+CP_CT,62 say EIGYO_CODE+" "+EIGYO_NAME
            continu

          enddo
        endif
        loop
      endif

      exit

    enddo &&(******LP110********)

    if readkey()=0.or.readkey()=12
      exit
    endif

    store EIGYO_NAME to EI_NAME
    store EIGYO_BUTU to EI_BUTU
    @ 5,67 say EI_NAME
    @ 9,62 clear to 21,77

    do CM110_1

  enddo

  if readkey()=0.or.readkey()=12
    loop
  endif

enddo



nice!(1)  コメント(4)  トラックバック(0) 

nice! 1

コメント 4

paula

・・・・・わけわからん(笑)
でもなんかいでちゃんらしい(*^_^*)
by paula (2012-02-18 08:19) 

いであ

あはは。
paulaさんはいつからPCを使い始めたのでしょう?
Windows95から?
真っ黒いDOSの画面は知りませんよね?
何でも自分で出来て楽しい時代でした。
Windowsになったら手も足も出ません。(笑)

by いであ (2012-02-18 12:28) 

song4u

こんにちは。
PC98シリーズだったら、そこそこのコストが掛かっていますから、
5年ぐらいでリタイアされたら大変です。だからOKですよ!^^
今のDELLとは成り立ちが違いますから。

ぼくは仕事柄、業務用のミニコンからスタートしました。
TTYやさん孔テープの時代です。さすがにカードではありません。(笑)
遊び用に買ったPCはMZ-80Bが最初でしたが、それ以前にはTK80で
半年ぐらい遊んでおりました。
あの頃は文字通り「計算機」という位置づけでしたからね、今のような
正体不明の存在ではない代わりに、間口も狭かったと思います。

通信は300bpsのモデムという時代です。
まだコアメモリ(磁気コア)、1枚で16KBなんてのが業務用でありました。
外部記憶は、もっぱら紙テープ。その後、磁気テープから8'FD、HDD。
HDDの初期バージョン(ラックマウント)は、容量20MBで重量が約20kgも
ありました。今は10万倍の2TBが数百グラムですもんね。(笑)

プログラムで気にしたのは・・・
1.メモリ使用量
2.実行速度
3.見易さ(メンテ性)
4.美しさ(自己満足と言われましたが・・・。笑)

今は圧倒的な速さのハードと、無尽蔵な低価格メモリ(記憶装置)があり、
コスト(開発期間)だけを気にする経営者と、テクニックのない低脳プログラマ
たちが「ただ動きさえすればいいアプリを作ってる」という惨状です。
何だか寂しいさいっぱいですけどね。
by song4u (2012-02-18 14:49) 

いであ

song4uさん、コメントありがとうございます!
さすがです。song4uさんのような専門家に幼稚なカキコミのようでした。(笑)
僕は美大出のデザイナーだったので、コンピューターは素人です。
ミニコンも、MZ-80BやTK80の型番聞いてもぜんぜん分からないです。(笑)
PC9801とDELLがどこがどう違うのか??
ただ、なんとなく言わんとするとこは分かります。

すごいです。外部記憶は紙テープに磁気テープですか?!
紙テープに打ち込む様子は映画のニュースか何かで見たことあります。

通信は300bpsのモデムですか!
見たことあります。
パソコン通信してましたから、友達のとこで文字がゆっくり流れてきました。
僕は1200bpsからです。すぐ2400になりました。
アスキーネット、そして個人で運営するBBSへ移り、
そして僕も自宅に2回線引いてBBSを運営してました。懐かしい時代です。

またお話聞かせて下さい。

by いであ (2012-02-18 17:21) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。