ここから本文です
Dr.Kikkie (KIKI) : 不許無断天才|免責:本稿を真に受けて損害があっても知らん。

書庫過去の投稿月別表示

2014年07月

← 2014年6月 | 2014年8月 →

全4ページ

[1] [2] [3] [4]

[ 前のページ | 次のページ ]

一部の方に朗報!

『Z80マシン語ランド』掲載の「マシン語モニタ」のサルベージに成功しました。気の付いた文字化けは直しましたが、まだ残っているかもしれません。使い方は書籍を持っていないとよく分からないかもしれませんね。
残念ながら、難物の「ディスアセンブラ」と「アセンブラ」はサルベージできませんでした(ー人ー)なまんだぶだぶ。

1000 '
1010 ' BASIC MONITOR/ MSX
1020 ' Z80 マシン語ランド
1030 '
1040 :
1050 CLEAR 200,&HEFFF:DEFINT I-N
1060 SCREEN 0:WIDTH 40:COLOR15,4 :KEY OFF:DIM C(7):K=1
1070 DEFFNV(D$)=VAL("&H"+D$)
1080 DEFFND$(A)=RIGHT$("0"+HEX$(PEEK(A)),2)
1090 DEFFNA$(A)=RIGHT$("000"+HEX$(A),4)
1100 PRINT "Basic-Monitor/ MSX"
1110 :
1120 PRINT:LINE INPUT">";CL$
1130 K=INSTR(" DSGX",LEFT$(CL$,1))
1140 IF K=0 THEN PRINT "?":BEEP:GOTO 1120
1150 IF K=1 THEN 1120
1160 IF K=5 THEN PRINT:END
1170 S=FNV(MID$(CL$,2,4))
1180 IF S<0 THEN S=S+65536!
1190 IF MID$(CL$,2,1)="," THEN S=RE+1
1200 ON K-1 GOTO 1230,1550,1660
1210 :
1220 ' DUMP
1230 IF INSTR(CL$,"/P") THEN LP=1 ELSE LP=0
1240 IF CL$="D" OR CL$="D/P" THEN S=RS:E=RE:GOTO 1320
1250 K=INSTR(CL$,","):IF K=0 THEN 1290
1260 E=FNV(MID$(CL$,K+1,4))
1270 IF E<0 THEN E=E+65536!
1280 IF E THEN 1310
1290 E=S+31
1300 IF E>65535! THEN E=E-65536!
1310 RS=S
1320 PRINT FNA$(S);
1330 IF LP THEN LPRINT FNA$(S);" ";
1340 SM=0:FOR I=0 TO 7
1350   PRINT " ";FND$(S);:SM=SM+VAL(FND$(S))
1360   IF LP THEN LPRINT" ";FND$(S);
1370   DMY$=INKEY$:IF DMY$=" "THEN K=K*-1
1380   C(I)=PEEK(S)
1390   S=S+1:IF S=65536! THEN S=0
1400   IF S>E OR DMY$=CHR$(27) THEN K=1:M=1:GOTO 1430
1410   IF K<0 GOTO 1370
1420 NEXT I:I=I-1
1430 PRINT TAB(29);
1440 IF LP THEN LPRINT TAB(30);
1450 FOR J=0 TO I
1460   IF C(J)>31 THEN D$=CHR$(C(J)) ELSE D$="."
1470   IF C(J)>253 OR C(J)=127 THEN D$="."
1480   PRINT D$;
1490   IF LP THEN LPRINT D$;
1500 NEXT J:PRINT ":";RIGHT$("00"+HEX$(SM),2):PRINT CHR$(&H1E);:IF LP THEN LPRINT
1510 IF M=0 THEN 1320
1520 M=0:RE=S-1:GOTO 1120
1530 :
1540 ' SUBSTITUTE
1550 IF CL$="S" THEN S=RS ELSE RS=S
1560 PRINT FNA$(S);" ";FND$(S);"--";CHR$(255);
1570 D1$=INKEY$:IF D1$=""THEN 1570
1580 IF D1$=CHR$(27) THEN PRINT CHR$(8);" ":RE=S-1:GOTO 1120
1590 IF D1$=CHR$(13) THEN PRINT CHR$(8);" ":GOTO 1620
1600 PRINT CHR$(8);D1$;:LINE INPUT D$
1610 D$=RIGHT$(D1$+D$,2):POKE S,FNV(D$)
1620 S=S+1:IF S=65536! THEN S=0
1630 GOTO 1560
1640 :
1650 ' GO
1660 IF CL$="G" THEN S=RS ELES RS=S
1670 PRINT"Start adds:";FNA$(S);"H Ok";:INPUT D$
1680 IF D$="Y" THEN DEF USR=S:D=USR(0)
1690 GOTO 1120

さらに!『パワーアップマシン語入門』(著:瀬木信彦・MSXマガジン編集部、出版:アスキー出版局 1987年8月)に掲載されていた「周波数カウンタ」もサルベージ。カセットI/Fの入力端子から入力された信号の周波数をカウントするものです。信頼性がどの程度か分かりませんが、このアイデアには脱帽しました。これも、原理は書籍を読まないと分からないかもね。マシン語のメモリへのローダー部分は、ぼくが付け加えました。
マシン語領域をズラせばディスクとも共存できるかもしれません。

1000 '==================
1010 '
1020 '  周波数カウンタ
1030 '
1040 '==================
1050 '
1060 '  イニシャライズ
1070 '
1080 SCREEN 0:WIDTH 40:COLOR 15,4,4:CLS
1090 CLEAR 200,&HEFFF:KEY OFF
1100 PRINT:PRINT"マシンゴ LOADING...":PRINT
1110 SA=&HF000'  スタート アドレス
1120 EA=&HF0AF'  エンド アドレス
1130 '
1140 '  ループ
1150 '
1160 RESTORE 3000:LN=3000
1170 FOR AD=SA TO EA STEP 8
1180   S=0 :PRINT HEX$(AD);" ";
1190   FOR I=0 TO 7
1200     READ DA$:PRINT DA$;" ";
1210     D=VAL("&H"+DA$)
1220     POKE AD+I,D
1230     S=S+D
1240   NEXT I
1250   SS=VAL(RIGHT$(HEX$(AD+S),2))
1260   READ SC$:SC=VAL(SC$):PRINT ":";SC$
1270   'IF SS<>SC GOTO 1370
1280   LN=LN+10
1290 NEXT AD
1300 '
1310 '  ENDルーチン
1320 '
1330 PRINT:PRINT "マシンゴ ヲ RUN シマスカ ? (Y/N)
1340 A$=INKEY$:IF A$="" GOTO 1340
1350 IF A$="Y" OR A$="y"  THEN DEFUSR1=&HF000:A=USR1(0)
1360 END
1370 PRINT "Check Sum Error in ";LN
1380 END
1390 '
1400 '  DATA エリア
1410 '
3000 DATA 3E,00,32,AF,FC,CD,5F,00,37
3010 DATA CD,C3,00,3E,48,32,06,F1,37
3020 DATA 3E,7A,32,07,F1,3E,00,32,52
3030 DATA 08,F1,01,7A,DA,21,00,00,77
3040 DATA CD,38,F0,CD,64,F0,21,0B,52
3050 DATA 0C,CD,C6,00,21,01,F1,CD,97
3060 DATA 9A,F0,CD,B7,00,D8,18,E2,00
3070 DATA F3,3E,0E,D3,A0,DB,A2,07,5E
3080 DATA D2,4C,F0,13,0B,78,B1,C2,47
3090 DATA 3D,F0,FB,C9,13,0B,78,B1,70
3100 DATA C2,55,F0,FB,C9,DB,A2,07,8F
3110 DATA D2,4C,F0,23,0B,78,B1,C2,6F
3120 DATA 3D,F0,FB,C9,01,10,27,CD,46
3130 DATA 8F,F0,32,01,F1,01,E8,03,E7
3140 DATA CD,8F,F0,32,02,F1,01,64,36
3150 DATA 00,CD,8F,F0,32,03,F1,01,DB
3160 DATA 0A,00,CD,8F,F0,32,04,F1,ED
3170 DATA 7D,C6,30,32,05,F1,C9,AF,8B
3180 DATA 3C,ED,42,30,FB,09,3D,C6,22
3190 DATA 30,C9,7E,FE,00,C8,CD,A2,34
3200 DATA 00,23,18,F6,00,00,00,00,C1
3210 DATA 00,00,00,00,00,00,00,00,98
 
同じく『パワーアップマシン語入門』から、「周波数カウンタ」を応用した「スペクトラム・アナライザ」もサルベージ。周波数ごとに動的に音の大きさを表示します。オーディオ装置でたまに見かけるやつですね。これまた信頼性はどの程度か分かりませんが、とにかくMSXでここまでできるという点に「おお!」とびっくらこきます。フォント書き換えのワザをさりげなく使っていますね。マシン語領域をズラせばディスクと両立できるかもしれません。

1000 CLEAR 100,&HEFFF
1010 SCREEN 1
1020 COLOR15,4,4:KEY OFF
1030 FOR I=0 TO 63
1040 READ D
1050 VPOKE I+1536,D
1060 NEXT
1070 LOCATE 0,3
1080 PRINT " タチチチチチチチチチチチチチチチチチチチチチチチチチチツ"
1090 FOR J=1 TO 15
1100 PRINT " テ                          テ"
1110 NEXT
1120 PRINT " トチチチチチチチチチチチチチチチチチチチチチチチチチチナ"
1130 PRINT "   .2 .5 1K   2K 3K5K  10K  "
1140 RESTORE 1290
1150 FOR J=&HF000 TO &HF167
1160 READ D$:D=VAL("&H"+D$)
1170 POKE J,D
1180 NEXT
1190 DEFUSR=&HF000
1200 A=USR(0)
1210 DATA 0,0,15,31,63,63,62,60
1220 DATA 0,0,255,255,255,255,0,0
1230 DATA 0,0,240,248,252,252,124,60
1240 DATA 60,60,60,60,60,60,60,60
1250 DATA 60,62,63,63,31,15,0,0
1260 DATA 60,124,252,252,248,240,0,0
1270 DATA 0,0,0,0,0,254,254,254
1280 DATA 0,254,254,254,0,254,254,254
1290 DATA 21,00,C0,36,00,2C,20,FB
1300 DATA 16,00,26,C0,06,00,CD,F6
1310 DATA F0,34,15,20,F7,06,17,21
1320 DATA 5B,02,ED,5B,BD,F3,19,11
1330 DATA 01,C0,22,F2,BC,ED,53,F0
1340 DATA BC,C5,CD,6F,F0,2A,F0,BC
1350 DATA 7E,3C,CD,7E,F0,21,00,C1
1360 DATA CB,38,28,06,36,C7,23,05
1370 DATA 18,F8,0F,30,02,36,C6,06
1380 DATA 0F,2A,F2,BC,11,00,C1,C5
1390 DATA 1A,CD,4D,00,1C,01,E0,FF
1400 DATA 09,C1,10,F3,2A,F2,BC,2B
1410 DATA ED,5B,F0,BC,13,C1,10,BA
1420 DATA CD,B7,00,D8,C3,00,F0,C5
1430 DATA E5,06,10,21,00,C1,36,20
1440 DATA 23,10,FB,E1,C1,C9,D5,E5
1450 DATA 47,FE,0A,38,6E,06,0A,FE
1460 DATA 0C,38,68,FE,0E,38,63,FE
1470 DATA 10,38,5E,FE,12,38,59,FE
1480 DATA 14,38,54,FE,17,38,4F,FE
1490 DATA 1A,38,4A,FE,1E,38,45,FE
1500 DATA 22,38,40,FE,26,38,3B,FE
1510 DATA 2A,38,36,FE,2F,38,31,FE
1520 DATA 34,38,2C,FE,39,38,27,FE
1530 DATA 3F,38,22,FE,45,38,1D,FE
1540 DATA 50,38,18,FE,5F,38,13,FE
1550 DATA B4,38,04,06,1F,18,14,04
1560 DATA 04,04,04,04,04,04,04,04
1570 DATA 04,04,04,04,04,04,04,04
1580 DATA 04,04,04,04,04,04,04,04
1590 DATA 04,04,04,E1,D1,C9,F3,2E
1600 DATA 00,DB,A2,5F,DB,A2,AB,FA
1610 DATA 0A,F1,05,CA,1B,F1,00,C3
1620 DATA FC,F0,7B,2F,5F,DB,A2,AB
1630 DATA FA,23,F1,05,CA,1F,F1,2C
1640 DATA C3,0D,F1,FB,2E,00,C9,FB
1650 DATA 2E,18,C9,FB,7D,FE,0F,D8
1660 DATA FE,12,38,1F,FE,15,38,1E
1670 DATA FE,18,38,1D,FE,1D,38,1C
1680 DATA FE,25,38,1B,FE,31,38,1A
1690 DATA FE,3C,38,19,FE,4A,38,18
1700 DATA 2E,17,C9,2E,0F,C9,2E,10
1710 DATA C9,2E,11,C9,2E,12,C9,2E
1720 DATA 13,C9,2E,14,C9,2E,15,C9
1730 DATA 2E,16,C9,00,00,00,00,00

こういうのを見せつけられると、ああ、BASICよりアセンブラだよなぁと思いますね。いやいや、BASICにもいいところはあるんですよ。よく巨大掲示板で「どっちの言語ほうがエライ」みたいな不毛な議論をしてますが、適材適所に使い分ければいいのです。使い分けるスキルが問われますけどね(・∀・)b

著作権法的には、マシン語の面白さを説くため、出典を明示のうえ許される範囲で引用したつもりです。もし不都合な点があればご連絡ください。MSXの再興にご理解いただければ幸いです。

最後に愚痴を。SONYのF900やF1XV、ナショナルFS5500F2、ビクターHC95まで軒並みFDDが死んでました。FDDが元気なGTにはカセットI/Fがありません。なんでこう、うまくいかない!
結局、F900に戻ってSunriseのCFカートリッジにCFスロット対応のカードリーダーを挿し込み、SDカードに保存しました。
昭和の人間の底力を見せちゃる!という悲壮感が、現場には漂っておりました。疲れた〜(*´Д`*)
あ、1チップMSXのカセットI/F機能を使えばよかったのかw

懐かしのピーガガガ

その昔、パソコンのプログラムやデータをカセットテープに記録していた時代がありました。まことに不安定で、ナウいデジタル時代でありながら、「ちゃんと保存できますように(ー人ー)」と神に祈る奇妙な時代でありました。

それから幾時代かがありまして、今になって、その頃のテープを見つけました。しかし、読み込もうとすると、案の定というか無情にもというか、ピーガガガと音はするものの、ちっともパソコンは反応してくれません。

再生側は、AIWAのDR-2を3台。当時(いつ頃だっけ?)としては定番機種だったと思います。ついでにYAMAHAのカセットテープ式音楽用ミキサーCMX100IIISも使用。テープ速度微調整、グラフィックイコライザなど機能満載、正直言って使いこなせていません(笑)。

イメージ 1

MSXは、SONYのF-900を3台。FDDが2基ありますので、カセットに記録したプログラムとディスク用のワークエリアが重なる可能性があります。でも、ファイル名ぐらいは読んでくれるはずです。
しかしながら、これらの機械をとっかえひっかえ試してみたのですが、ダメでした。

今回サルベージしようとしたのは、『Z80マシン語ランド MSX編』(著:内田直樹、発行:ラジオ技術社、昭和60年5月)。BASICで書かれた「マシン語モニタ」「ディスアセンブラ」「アセンブラ」などが掲載されています。
かつて、これをせっせとMSXに打ち込み、テープに保存したのですねえ。本はまだ手元にあるのですが、いかんせん、再度打ち込む気力が欠けているのであります。そんな苦労しなくても、HDDの中には実行可能形式のプログラムがいっぱいあるだけにねえ(・∀・)♪

と言いつつも、多少酔狂な気持ちもあるのですw

復活も大変である。
MSXの台数だけはたくさんあるが、現時点でどれが生きているのか分からない。とりあえず、かつて最も使用したFS-A1GT1号機から試してみる。

このGT、ヤフオクで購入したものだが、いろいろと改造されていた。まず、外付けFDDが増設されていた。ただし横向きだったので、前向きに変更した。何事も前向きにである。それに、外付けFDDの電源としてTEAC製の電源ユニットが添えられていた。これも外して、内部から電源をとるようにした。
異様だったのは、本体ケースに大きな穴が開けられ、電源部分に冷却ファンが取り付けてあったことである。思うに、かつて流行った草の根ネットのホストとして長時間稼働を強いられていたのではないだろうか?

ぼくとしては、STやGTの中途半端なグレーより、WXの引き締まった黒が好きである。そこで換骨奪胎。WXの刻印を持ちながら中身はGTという羊頭狗肉(逆か?)のマシンができあがった。

イメージ 1


しかしあまりにもホコリだらけである。ざっと拭き払うとクシャミの連発。FDDは外付けが生きている。内蔵は死んでいる。画像は見てのとおり。コンポジットで確認。ソフトはハル研の名作、「ぶた丸パンツ」。2つのスロットとも生きているのを確認。

何か実験(イタズラ)を始める前に、機械類の掃除から始めねばならない。とりあえず1台生存確認。やれやれ。
そうそう、旧 MSX DeuxLaque のURLはこちら。ただし、元のジオシティーズからサルベージしたもので、オリジナルではありません。こんなところでひっそり紹介して役に立つのかな?

ジオシティーズでは、2005年5月頃からコツコツとマニアックに書き連ねてきましたが、そのジオシティーズがサービス廃止となってしまいました。ショックでしたね。
2009年中旬以降についてサルベージできましたが、それ以前の濃ゆ〜い内容のページは永遠に消滅してしまいました。SONYのデータカートリッジの記事とかね。せめてデータカートリッジの写真だけでもと思いましたが、それも見当たらない。

仕方がないので、MSXの汎用ポート経由でPCとシリアル通信に成功したときの写真(と思う)を掲載して、その頃の熱気を感じていたきたいと思います。

イメージ 1

これは、MSXを離れてArduinoを使って、グラニュラスシンセサイザーを作ったときのやつですな。
トランス系の音楽で、ノイジーで一瞬気が遠くなるような効果音がほしいときに最適でした(と思いますw)。

イメージ 2

これは確か、Arduinoを使ってMSXのパドル関数の実験をしていたときの写真のはず(きれいさっぱり忘れているなあw)。

イメージ 3

これは、MSXのモノラル音をサラウンドにする実験をしていたもの。ボードが余ったので、ちゃぶ台にしてみました。

イメージ 4

ほかにもいろいろとビジュアル的にも面白いのがあるはずだけど、残念ながら説明のテキストは失われてしまいました。せめてビジュアルだけでも掘り返してみて面白いのがあったら、また掲載しますね。

過去の破天荒な面白さを糧に、新たな天地を求めて旅立ちたいと思います。

最近入手したものなど

気分を盛り上げるために、最近入手したものなどを挙げてみる。

イメージ 1

奥に並んでいるのは、なんと!最近発売されたMSX用増設64KRAM。オレンジ2個、クリア2個、スモーク1個。オレンジのは日本でも数人しか入手していない初期バージョンである。
説明書が間に合わないというから、まさに出来立てほやほやのカートリッジ。2014年も半ばになって、MSX用の新製品が発売されようとは誰が想像したであろうか。
何やらスイッチとバッテリーが付いているので、単なる増設RAMではなさそうな。詳細は現時点でワシも知らんw 乞うご期待!

中段左側の大き目の基板っぽいのが、MSXカートリッジ用基板。サンハヤト製が製造中止になって久しいが、ついに復活した。これで今まで怖かったスロットが、少しでもいじりやすくなる。
その手前、小さめのエクステンションぽいのが、まさにMSXのスロットから信号を取り出すエクステンションカードだ。謎めいた隙間に突っ込んでイタズラするのだ。あ、そんなこと、らめー!><

真ん中やや左の「16」と書かれたSDカードが刺さっているのは、秋月電子で購入したSDカードスロット。5Vを3.3Vに変換する三端子レギュレータが実装されているので、面倒臭さが若干減る。いかにもSPI通信してくださいと言わんばかりのピン配列。
ちなみに「16」と書かれたSDカード、16GBじゃないよ。16MBだよ(どこでみつけてきたんだw)。MSXに使ってやろうという魂胆がアリアリw

真ん中のカラフルな乾パンみたいなのは、極小のブレッドボード。これは説明必要ないでしょう。可愛くて気に入っているが、正直言って使える場面が限られますw

最後に、右端でなんやらハシタナイ恰好をしているのが、DTMFデコーダー。最初は順調に動いていたが、うっかりどこかをショートさせたのか動作不良に。でも、なんとなく換骨奪胎すれば使えそうな気がする今日この頃。

さて、いささか三題噺めいてきたが、最近いじり始めた部品の一部を並べてみた。今のところオリジナル成果は何にも出ていないが、再始動の萌芽は見えてきたと思う? 見えない? そうお?

全4ページ

[1] [2] [3] [4]

[ 前のページ | 次のページ ]

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16
17
18
19
20
21
22
23 24 25
26
27
28
29
30
31

過去の記事一覧

最新のコメント最新のコメント

すべて表示

kik**41010
kik**41010
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ
みんなの更新記事