●た〜ぼの日記


日記は苦手なので、どうなるやら...
過去の日記へ

2002年01月/02月/03月/ 04月/05月/06月/ 07月/08月/09月/ 10月/11月/12月
2003年01月/02月/03月/ 04月/05月/06月/ 07月/08月/09月/ 10月/11月/12月
2004年01月/02月/03月/ 04月/05月/06月/ 07月/08月/09月/ 10月/11月/12月
2005年01月/02月

ホームページへ戻る  最新の日記へ

2005.03.17(木)  くもり時々雨 TINY STAR TREK

 昨日の日記に書いた本を見ていて、思い立ったようにPC-1261のソースを探してみました。
そしたら、ありましたよ、Macintoshの中に。なんとかTEXTファイルに出来たので、ここに書いてみましょう。

Sharp Pocket Computer PC-1261 PROGRAM LIBRARY  by T.Noguchi (turbo@kaimu.jp)  1991/07/14
========================================================================================

"S":TINY STAR TREK

10:"S":CLEAR:RANDOM:CLS:WAIT 50:PRINT "*** TINY STAR TREK ***"
20:CURSOR 24:INPUT "TEKI NO KAZU=";K," KICHI NO KAZU=";L:IF L>5 THEN LET L=5
25:IF K<10 OR L<0 THEN 10
30:FOR A(38)=1 TO K:GOSUB 500:D=INT(16*C)+19:A(D)=A(D)+10:NEXT A(38)
40:IF L>0 THEN FOR A(38)=1 TO L:GOSUB 500:D=INT(16*C)+19:A(D)=A(D)+1:NEXT A(38)
50:E=5000:F=5:G=365:M=K
60:GOSUB 500:H=INT(16*C)+19
70:BEEP 1:WAIT 50:PRINT "***** GAME START *****"
80:CLS:GOSUB 380
90:CURSOR 24:INPUT "COMMAND-";P$
100:IF P$="W" THEN GOSUB 330:GOTO 150
110:IF P$="R" THEN GOSUB 400:GOTO 150
120:IF P$="T" THEN GOSUB 420:GOTO 150
130:IF P$="P" THEN GOSUB 450:GOTO 150
140:IF P$="E" THEN LET E=E+100:G=G-9
150:G=G-1:BEEP 1:CLS:PAUSE USING "#######";"E";E;USING "####";":T";F;":DAYS";G
160:IF E<=0 THEN 230
170:IF M=0 THEN 240
180:IF G<=0 THEN 230
190:N=INT(A(H)/10):GOSUB 500:D=INT(100*C)+100:E=E-D*N
200:IF N>0 THEN PAUSE "RED ! TEKI"
210:IF E<1000 THEN PAUSE "E YELLOW !!"
220:GOTO 90
230:M=M+5:WAIT 80:PRINT "ENTER PRIZE BAKUHATSU !":PAUSE "DEATH !!!"
240:K=K-M:CLS:WAIT 50:CURSOR 0:PRINT USING ;"REST";G;"DAYS ";K;"GEKIHA"
245:IF L=0 THEN LET L=0.5
250:K=K+INT(G/10/L)-5:CURSOR 24:WAIT
260:IF K<10 PRINT "BONKURA":END
270:IF K<20 PRINT "BONJIN":END
280:IF K<30 PRINT "MAA MAA":END
290:IF K<40 PRINT "NAKA NAKA:END
300:IF K<50 PRINT "SHUSAI":END
310:IF K<60 PRINT "TENSAI":END
320:PRINT "YOU ARE GOD":END
330:CURSOR 24:INPUT " WHERE ? ";N
340:H=H+INT N
350:IF H<19 THEN LET H=19
360:IF H>34 THEN LET H=34
370:E=E-ABS N*100:G=G-6-ABS N
380:IF A(H)-INT(A(H)/10)*10=0 THEN 400
390:E=E+5000:F=F+5:A(H)=A(H)-1:PAUSE "ENERGY HOJUU !"
400:I=H-2:J=H-1:N=H+1:O=H+2
410:WAIT 25:CLS:CURSOR 0:PRINT USING "###";H-18;")";USING "####";A(I);A(J);A(H);A(N);A(O):RETURN
420:IF F=0 THEN CURSOR 24:PAUSE "  TAMAGILE !":RETURN
430:BEEP 2:F=F-1:IF A(H)<10 THEN RETURN
440:M=M-1:A(H)=A(H)-10:RETURN
450:IF E<2000 THEN PAUSE "ENERGY < 120%":RETURN
460:CURSOR 24:PAUSE "ENERGY = 120%"
470:BEEP 3:E=E-2000:M=M-INT(A(H)/10):A(H)=A(H)-INT(A(H)/10)*10:RETURN
500:C=RND(0):RETURN


おまけ その1(表示されている数値を16進表示するプログラム)
"H":DECIMAL TO HEXADECIMAL CONVERTER

1000:"H":AREAD P:Y$="":X=P
1010:IF X<0 THEN LET X=16^4+X
1020:FOR I=3 TO 0 STEP -1
1030:A=INT(X/(16^I)):X=X-A*(16^I)
1040:IF A=0 THEN LET B$="0"
1050:IF A=1 THEN LET B$="1"
1060:IF A=2 THEN LET B$="2"
1070:IF A=3 THEN LET B$="3"
1080:IF A=4 THEN LET B$="4"
1090:IF A=5 THEN LET B$="5"
1100:IF A=6 THEN LET B$="6"
1110:IF A=7 THEN LET B$="7"
1120:IF A=8 THEN LET B$="8"
1130:IF A=9 THEN LET B$="9"
1140:IF A=10 THEN LET B$="A"
1150:IF A=11 THEN LET B$="B"
1160:IF A=12 THEN LET B$="C"
1170:IF A=13 THEN LET B$="D"
1180:IF A=14 THEN LET B$="E"
1190:IF A=15 THEN LET B$="F"
1200:Y$=Y$+B$
1300:NEXT I
1400:CLS:WAIT 0:CURSOR 0:PRINT "&";Y$;WAIT:CURSOR 35:PRINT P:END


おまけ その2(分.秒形式の入力を加算していき、hh.mmss形式で表示する)
"Z":TIME(MM:SS) SUMMARY TO HOURS&MINUTES&SECONDS
"A":GET DISPLAY TIME AND CONVERT TO HOURS&MINUTES&SECONDS
"D":DISPLAY TIME AGAIN

2000:"Z":A=0:CLS
2010:INPUT "MM.SS=";B:B=DEG(B/100)*60:A=A+B:GOTO 2010
2020:"A":AREAD A:X=DMS(A/60):X=INT(X*10000+.5)/10000
2030:IF X-INT(100*X)/100=.006 LET X=X+.01
2040:IF X-INT X=.6 LET X=X+1-.6
2050:"D":WAIT:PRINT "TOTAL",USING "##.####";X
2060:END


おまけ その3(NEC ACOS-2 ACOMPFL相当(?)のINDEXファイル容量算定プログラム)
"K":INDEX FILE COMPUTE

5000:"K":CLEAR:REM *** INDEX ヨウリョウ ケイサン
5005:INPUT "IDX BLK = ";I
5010:INPUT "REC LEN = ";N:GOTO 5020
5015:END
5020:INPUT "BLK LEN = ";M:IF M=0 THEN 5020
5025:INPUT "KEY LEN = ";K
5026:INPUT "REC SIZ = ";R
5035:O=INT(R*N/M+.99999)*INT(M/256+.99999)
5040:E=(I-9)/(K+4):E=INT E*.5:E=INT E
5050:X=R:S=0:L=0
5060:X=X/E:X=INT(X+.99999):S=S+X:L=L+1
5070:IF X>=E THEN 5060
5080:X=X/E:X=INT(X+.99999):S=S+X:L=L+1
5090:S=S+L+3:T=(S+1SINT(R*N/M+.99999))/INT((M-1)/256+.99999)*M/N
5100:USING:WAIT 0:CURSOR 0:PRINT "IDX SECSZ = ";S:CURSOR 24:WAIT:PRINT "TOTAL SIZ = ";S+O;"SEC ";T;"REC"
5110:GOTO 5010


おまけ その3(CIF ファイル RSZ=80/BSZ=240で、フロッピー3,848セクタに何ステップまで入るかの計算プログラム)
"N":HOW MANY SECTORS OF CARD IMAGE STEPS

6000:"N":CLEAR
6010:INPUT "STEPS = ";S:X=X+S:M=M+1:GOTO 6010
6020:Y=3848-M:Y=Y*3-X
6030:PRINT "REST = ";Y;"RECORDS"
6040:GOTO 6010


ともかくいろいろな設定を消すプログラム
" ":CLEAR VARIABLE & PRINT INFORMATION

9999:" ":CLS:CLEAR:USING:END


Copyright (C) 1981-2005 by T.Noguchi(turbo)

2005.03.16(水)  晴れ PC-1211 / PC-1261 / FM-8

 本屋さんに寄ったら、「みんながコレで燃えた! PC-8001・PC-6001」なる本が出てきた。芸夢狂人さんとかBug太郎さんとか、懐かしい名前が出てきた。
 かくいう私も、シャープのポケコンPC-1211とかPC-1261はプログラミングしたお金で買ったわけで、富士通のFM-8もその口であります。最初に作ったプログラムは今でも覚えています。今でこそHello Worldが常道ですが、作ったのは三三七拍子のプログラム。
 10:FOR I=1 TO 2:FOR J=1 TO 2:BEEP 3:NEXT J:BEEP 7:NEXT I:END

マルチステートメントになっているし、二重入れ子構造だし、結構先端的(^^;;だったかも。

 その後作ったPC-1211版TINY STARTREKが1981年の7月頃のラジオの製作誌に掲載され、FM-8版のワープロ「文華秀麗」がI/O誌に掲載され、原稿料とソフトの印税でパソコン(当時はマイコンと呼ばれていました)を買った記憶があります。

2005.03.09(水)  晴れ 花がら

花がらのネクタイ
 久しぶりにスーツ姿で通勤電車に乗っている。以前いた会社から応援を頼まれ、昔開発したシステムの改造作業をしている。
 スーツと言えばネクタイなんだけど、うちのあるネクタイのうち、90%ぐらいは花がらのネクタイである。最近はあまり見かけなくなったけど結構探せば売っているようです。昔たまたま出かけた先で、私のネクタイと同じ生地で作ったワンピースを来た人に会いました。確かにワンピースの裁断は斜めに生地の残りが出るからネクタイになってもおかしくはないのですが、お互いにちょっとバツが悪かったです。街中で同じ服の人とすれ違った感じというか…。
 季節は着実に春に向かっているようで、今日はとても暖かでした。ブルーベリーの剪定もまだ終わっていないので、今日はスーツ姿はお休みして野良仕事の予定です。



ホームページへ戻る  最新の日記へ