●た〜ぼの日記 |
●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%ぐらいは花がらのネクタイである。最近はあまり見かけなくなったけど結構探せば売っているようです。昔たまたま出かけた先で、私のネクタイと同じ生地で作ったワンピースを来た人に会いました。確かにワンピースの裁断は斜めに生地の残りが出るからネクタイになってもおかしくはないのですが、お互いにちょっとバツが悪かったです。街中で同じ服の人とすれ違った感じというか…。 季節は着実に春に向かっているようで、今日はとても暖かでした。ブルーベリーの剪定もまだ終わっていないので、今日はスーツ姿はお休みして野良仕事の予定です。 |