2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

FMシリーズを語るスレ Part 12

1 :ナイコンさん:2014/02/23(日) 14:09:16.91 .net
FM-8 から始まり、FMR に至るまでの様々な名機について語りましょう。
対象機種: 8/7/NEW7/X/77/77AV/11/16/R

※スレが荒れる要因になりそうなコメントに対してはあぼ〜んを利用するなど、
 華麗にスルーして下さい。
※荒れる要因になるようなゲームの話も華麗にスルーして下さい。

■前スレ
FMシリーズを語るスレ Part FM-11
http://ikura.2ch.net/test/read.cgi/i4004/1365924933/

TOWNSシリーズの話題については、専用スレでどうぞ
【富士通】FM-TOWNS 16代目【Fujitsu】
http://ikura.2ch.net/test/read.cgi/i4004/1388177145/

31 :ナイコンさん:2014/02/27(木) 02:07:54.76 .net
DRQポーリングによるFM-7のFDDアクセスって本当に問題ないの?って
以前考えたことがあって、そのとき集めた資料等を基に68B09で2HDアク
セスが可能か考えてみたよ。
I/Oポートの構成はFM-7と同じ、ただし$FD1Fを読んだとき DRQ/IRQ以外
のbitはすべて0と見えるI/Fを想定する。
(FM-7では未使用なので不定としているんじゃないかと。実際に読んだら
1が読めるんじゃないかな?)

読み書きに使用するループはFM-7のBOOT ROM内のものを各1箇所ずつ書き
換えたものを用意。

WRITE LOOP
1:FF7C A6 A0  LDA ,Y+  6
2:FF7E D6 1F  LDB $1F  4
3:FF80 2A 04  BPL $FF86 3
4:FF82 97 1B  STA $1B  4
5:FF84 20 F6  BRA $FF7C 3
6:FF86 27 F6  BEQ $FF7E 3

READ LOOP
1:FF94 D6 1F  LDB $1F  4
2:FF96 2A 06  BPL $FF9E 3
3:FF98 96 1B  LDA $1B  4
4:FF9A A7 A0  STA ,Y+  6
5:FF9C 20 F6  BRA $FF94 3
6:FF9E 27 F4  BEQ $FF94 3

処理対象となるDRQ信号は2HD時16μs毎にHになり、データポート($FD1B)
の読み書きでLに戻る。アクセスが正常に行われている限り、その立ち上が
りは16μs周期で一定していて、H期間の長さはプログラムがいつデータ
ポートをアクセス出来るかでバラつく。

32 :ナイコンさん:2014/02/27(木) 02:08:57.29 .net
また、FDC内のパラ-シリ/シリ-パラ変換のタイミング要求により、DRQの
立ち上りからデータポートアクセスまで、FDCが待てる最長の時間が規定
されている。
DRQ Service Time(tSEVW/tSEVR)
MB8876A/MB8877Aの場合
Disk書き込み時:tSEVW 11.5μs
Disk読み込み時:tSEVR 13.5μs

MB8876/MB8877(Aサフィックス無しバージョン)の場合記述が無いので
この数値は定かでは無いものの、同様の規定は当然ある。
ただし、これら初期のFDCは/WE信号がmin350ns必要で、さらに/WE立ち
上がり後に65ns以上データのホールドタイムを要求するというとんでも
ないドンガメで、68B09ではノーウェイトでアクセスできない。
2HDをDRQポーリングでアクセスしようとするなら使いづらいものになる。
ちなみにフロッピーインターフェースカードにディレイラインを載せて
いるものがあるのは、これら初期のFDC対応のためと思われる。
FM-7のI/OにEクロックで半クロック分のウェイトが挿入されているのも
恐らくこいつのせい。

余談はともかく、DRQサービスタイムの厳しい書き込み側から条件を満た
せるのか確認。DRQに対して最も最悪の応答となるのは、行番号2でDRQ=L
を読み出した直後にDRQが立ち上がる場合で、DRQ立ち上がり後36234(行
番号)と命令が実行されてデータポートアクセスに至る。
このときの所要クロック数は17クロック=8.5μsとなり、規格上のmax値
11.5μsをクリアできる。

33 :ナイコンさん:2014/02/27(木) 02:09:36.54 .net
続いてDRQ待ちループとDRQの立ち上がりタイミングを検証。DRQ=Lのとき
は行番号236でループしていて所要クロック数10クロックなので、DRQ立ち
上がりに対してループの実行状態は10通りのタイミングが存在する。
DRQ立ち上がりからDRQサンプリングまでの時間が1.0μs〜4.5μsの場合、
行番号で言うと236234512362と処理が流れて次のDRQ検出に繋がっていく。
同じくDRQの立ち上りから0.5μs後に検出される場合は236234512362362と
いう流れ、DRQの立ち上がりを最短で検出した場合は234512362362で次の
DRQ検出に繋がる。
この処理の流れはEXCEL上に32セル間隔でDRQ立ち上がりの目印を置いて、
その間にループ中の命令の所要クロック数分の幅のセルを並べることで
問題が無いか検証でき、全10通りのタイミングで特に問題が無いことを
確認した。

読み出しについても同じことを確認し、tSEVRは規格値 max13.5μs に対
して最悪 8.5μsで問題なし。
やはり10通りのタイミングについてもEXCEL上で検証して問題となるような
パターンもなしということで、『ノーウェイトの68B09』であればDRQポー
リングによる方法でも2HDのアクセスに対して問題は起きないという結論に
なった。

34 :ナイコンさん:2014/02/27(木) 02:10:27.27 .net
なお、「68000システムの製作全科」でFM-77をホストとして2HDにアクセス
した事例で、普通にループを組んだらうまくいかなかったという理由は複数
あると思われる。
1つはI/Oのウェイト。FM-7では$FDxxのアクセス時とBOOT ROMのアクセス時に
MRDYがアサートされてEクロック周期で半クロック分のウェイトが掛かるよう
になっており、このときのEクロック周期は750nsになる。
FM-77ではBOOT ROMがまともな250ns品になったのでウェイトは不要かもしれ
ないが、I/Oには相変らずウェイトが入っていると思われる。
(ゲートアレイ化されているので定かでは無い)
2つ目はメインメモリのリフレッシュ。FM-77のメイン側に搭載しているDRAM
はMB8265A-15でサイクルタイム260ns〜270ns(ちょっとおぼろげ)なのでサイ
クルスチールによるリフレッシュは出来ず、DMAサイクルを挿入してのリフ
レッシュを必要とする。
6809のDMAはDMAサイクルの入りと明けにDeadサイクルがそれぞれ1クロック
ずつ必要となるので、リフレッシュ動作のためには最低でも3クロックを
要しその間プログラム実行は停止される。
DRAMの規格としては2ms以内に128回(行アドレス)のリフレッシュをするよう
に定められていて、これは最長15.625μs毎に1回という頻度で実現できる。
FM-7/77ではそれを代々4.9152MHzのクロックから作っていて、ゲートアレイ
化されているので断言はできないものの、6分周した13μsという周期が
恐らくリフレッシュ要求の元になっていると思われる。
2HDでは16μs毎にDRQが立ってデータの読み書きを要求してくるので、その間
に2回リフレッシュが入ってしまう。このとき3μsの間MPUは停止してしまう
ので、これはやはり大きいんじゃなかろうかと。

などと長々検証した結論、こんなヒリヒリする設計するくらいなら素直に
SYNC使えよ!というのが正解。いくら安くなったといっても62256をメイン
メモリに使わせてくれるワケ無いんだし、I/Oのウェイトを無くすことも
できゃしないんだから。

35 :ナイコンさん:2014/02/27(木) 02:53:42.34 .net
8インチならインターフェイスにFM-8でやってたよ、ウエイト入ってるけど。

36 :ナイコンさん:2014/02/27(木) 08:08:41.20 .net
ふみ?DRAMってアクセス中でもリフレッシュ必要だったんだ。
っていうか15.6と16でギリギリアウトって話なのかな?
意図的に空打ちするとか?

>などと長々検証した結論、こんなヒリヒリする設計するくらいなら素直に
いやいや、それが醍醐味じゃないの。
できるように作られたものができるのは当たり前なんだし。

37 :ナイコンさん:2014/02/27(木) 10:39:18.60 .net
テンキー押さないと止まらないんだっけ

38 :ナイコンさん:2014/02/27(木) 14:11:58.13 .net
>>31-34
ご苦労さま、仕事早すぎでビックリ。

補足と思いを・・・

>FM-77ではBOOT ROMがまともな250ns品になったのでウェイトは不要かもしれないが、
BOOT ROMは○○32Aだけどウェイトは入ってると思います。○○は忘れたので省略。
それどころか以前にも書きましたけど、ここに裏ラムがあってこのラムでもウェイトかかります。
SYNC使ったプログタムをこの部分でテストしたことがありますけどラムなので、そのまま
タイマーを同じ数値にして、その後SYNCで待っていたら割り込みがなくタイミングでハマりました。

I/OにしてもBOOT ROMにしてもFM-8からある周辺機器の利用で止むを得なかったと思います。
中級ユーザのために速さの切り替えをディップスウィッチで対応したら、何もしてないのに
今まで動いていた周辺機器が動かなくなったと言う初級者の果てしない質問が想像できます。

>こんなヒリヒリする設計するくらいなら素直にSYNC使えよ!
あなたの検証結果を踏まえると正論ですし、腑に落ちます。
筆者はホスト・コンピュータの段階でSYNC使って「深入り」はしたくないを理由としてますけど
当時の自分も違和感はありました。上巻の巻頭言で責務だけど執筆業としては赤字と言ってます。
つまりここの部分はSYNCなしでも動く筆者の「ギネス級」への挑戦、趣味だったと納得しました。
もっとも自分は楽しい読み物として捉えていましたけどハードを作った方は振り回されたのかと。

因みに「検証結果を踏まえると」に悪意も疑いもありません。以前、相手の言い分と事実が違ったので
整合させる試みをしたら、「言い訳するな、間違いを認め謝罪せよ」と言ったシャシャリ出た第三者が
いまして「シャシャリ出るな!」って言ったら数日後に、相手が自分の勘違いを認めたのに、
このシャシャリ出た第三者に謝罪せよ、と絡まれたことがあるので、その用心です。

39 :ナイコンさん:2014/02/27(木) 14:51:02.02 .net
新手の荒らしか?

40 :ナイコンさん:2014/02/27(木) 15:11:05.89 .net
てんきーの人かな

41 :ナイコンさん:2014/02/27(木) 17:22:22.17 .net
まだ>>30のが良いレスに見えるw

42 :ナイコンさん:2014/02/27(木) 17:33:12.53 .net
>>41
自演で荒らすなら出て行けよ、どこ行っても嫌われてる奴

43 :ナイコンさん:2014/02/27(木) 17:35:25.71 .net
当時のマシンの深い話しになってるのに
意味わからんからと言ってテンキーと蛩が足並み揃えて本道の話を遮るとか

44 :ナイコンさん:2014/02/27(木) 17:39:06.55 .net
長文ワロスw

45 :ナイコンさん:2014/02/27(木) 18:45:54.50 .net
ロギってX0と同一なのか…

46 :ナイコンさん:2014/02/27(木) 23:06:29.55 .net
>>34
一番の理由は、FM-77で MMR を使う時には 2MHz 動作できないからでは?

F-BASIC V3.1 では MMR 使わないので、SYNC じゃなくても行けるかもね。

47 :ナイコンさん:2014/02/27(木) 23:36:02.48 .net
なっ なんだってー

流石にそれ忘れるとは思えないな。
メーカーのシステム構成表ならば○は付かないだろうけども。

48 :ナイコンさん:2014/02/27(木) 23:38:16.55 .net
>>38
どうもです。

>裏ラムがあってこのラムでもウェイトかかります
あれ?そうなんですか。
FM-77ではゲートアレイなので中身を推測するしかないのですが、怪しい信号は
/IOS($FDxxのセレクト信号)と/BTRDY(BOOT ROMの/OEを元にした信号)しか
無いように見えるので、事情はFM-7と同様なのかと思っていました。
FM-7の場合はディスクリート組みなので明確に上記2本の信号線のみと言い切
れるのですが・・・と、回路図を眺めていて、また嫌なものを見つけたような・・・

FM-7ではDRAMのリフレッシュにDMAを使っていますが、/DMAをアサートして
MPUのアドレスバスとR/W信号がHi-Zになると、周辺のプルアップ抵抗のせいで
アドレスは$FFFF、R/W=Hに吊り上げられます。
・・・でもこれって周辺のデコーダから見ればBOOT ROMの読み出し状態なので、
/MRDYもアサートされるんじゃないかと・・・
すると、リフレッシュサイクルと前後のDeadサイクルを含めてバスサイクル3個分
にすべてウェイトが入っちゃうんじゃ? ・・・嫌すぎ orz

昨日6809のDMAの仕様を改めて眺めて、リフレッシュのために13μsの周期で
1.5μsもMPUは停まっているのかとショックを受けていたのに、さらに輪をかける
状況?
リフレッシュのために食われるMPUの処理時間の割合
リフレッシュサイクルがノーウェイト:500ns*3/13μs => 11.52%
リフレッシュサイクルにウェイトあり:750ns*3/13μs => 17.28%

通常リフレッシュに割かれるMPUの処理時間は数%程度と言われると思うので、
それからすればあんまりな数字・・・
本当かな?実機処分しちゃったから確認できない・・・orz

49 :ナイコンさん:2014/02/27(木) 23:39:04.95 .net
ちなみにMPUの内部処理状態のときもアドレス$FFFF R/W=Hとなり、BOOT ROM
のアクセス状態となって/MRDYがアサートされますが、この場合6809は/MRDY
を無視してノーウェイトで走るので、いちいちウェイトは挿入されません。
ただし、周辺の低速デバイス対応として、HALTやDMA状態では/MRDYを受付け
ます・・・Deadサイクルも含めて・・・

50 :ナイコンさん:2014/02/27(木) 23:54:58.26 .net
09のFFFFが何のベクタだったかも忘れたけど、そんな話は初耳だなあ。

51 :ナイコンさん:2014/02/28(金) 02:24:34.57 .net
>>29
通販で買いました!いろいろありがとです。
届くのは1〜2週間後だけど(^^;
ぼったくり価格じゃなくてよかった…。

>>31-34
実に面白い検証で且つ、わかりやすい解説ありがとうございます。
コピペして資料として取っときます!

>ただし$FD1Fを読んだとき (ry
>実際に読んだら1が読めるんじゃないかな?
320KB FDCは確かそうでしたね。なので1MB FDCもそんな気はしますね。

>>38
貴方がトリガーになってくれたおかげで、
私自身かなり興味深い話を読むことが出来ました。
ありがと!

52 :ナイコンさん:2014/02/28(金) 02:37:42.12 .net
返信書いてたらコメント増えてた(^^;

>>46-47
F-BASIC V3.5などMMRを使用するシステム上でも
FDC READ/WRITE時はBIOS内で一旦MMRをOFFにしてます。
320KB/1MB共通で。
なので、MMRが理由ってことはないんじゃないかなー。

>>50
FFFE-FFFFがRESETベクタですよ。

53 :ナイコンさん:2014/02/28(金) 10:55:29.93 .net
点kye-5がぶっ壊れた

54 :ナイコンさん:2014/02/28(金) 12:16:11.26 .net
>>53
X1買った事を後悔してる?w
御三家の中で一番おもちゃっぽいキーボードだったもんな

55 :ナイコンさん:2014/02/28(金) 12:44:46.08 .net
オクでSXが出てるけど、昨日は3000スタートで6000肥になってたせいか
凶は6000スタートで笑った。
でも昨日のはFD が入ってたけど凶のはFD 無しだから飛びつくかなぁ?

56 :ナイコンさん:2014/02/28(金) 15:52:37.52 .net
2年程前もキーボードなしで数千円で出ていた記憶。

FDDとかも揃ってないと買う気にならない上にスペース確保の問題あるし。
買って何に使うかが目的がないと。

57 :ナイコンさん:2014/02/28(金) 16:24:38.02 .net
>>56
説明が悪くてごめん

起動FDらしき物がFDD1に入っていたんですわ。
落札していないから何なのかは不明。

58 :ナイコンさん:2014/02/28(金) 16:32:56.14 .net
こちらこそFD、って書いてるのにFDDと勝手に解釈した慌てものでした。

59 :ナイコンさん:2014/02/28(金) 19:38:52.38 .net
8ビットPCを語るスレ MSX,PC88,FM7,M5,X1
http://hayabusa3.2ch.net/test/read.cgi/news/1393579182/

60 :ナイコンさん:2014/02/28(金) 20:16:41.49 .net
マルチうぜぇ、の評価

61 :ナイコンさん:2014/03/01(土) 01:55:51.39 .net
>>52
なるほど、F-BASIC V3.5 は MMR 使っているとは言っても
$8000番地の辺りをバンク切り替え的に使用しているだけで、
TEXT WINDOW がメインのシステムだからな。
BIOSが固定アドレスだから MMR を OFF にできる訳ね。納得。

OS-9 Level 2 では BOOT ROM 使ってないし、Disk ドライバは動作中に
MMR を OFF にはしないので、ずっと 1.6MHz で動いてる。

62 :ナイコンさん:2014/03/01(土) 09:20:48.12 .net
>>51
>ぼったくり価格じゃなくてよかった…。
中古本の価格をググってビックリしました。新品の時の倍ですので多少の心苦しもあります。
ただこの手の他の書籍はしっくりこない物が多い中でじっくり読んだ時の味わいがある本です。

>貴方がトリガーになってくれたおかげで、
「syncを使わない割り込で」と書くべきところをマジボケしただけでお恥ずかしいです。
幸い建設的な方向に展開したのは、この件で寛容な姿勢で対応してくれたことが要因です。

63 :ナイコンさん:2014/03/01(土) 10:05:59.68 .net
割り込み使わなくても正確なタイミングで信号出せる09に感動した
的な意味の記述を記事のあとがきがどこかで読んだのが印象深いのだけど、
あれはどこで見たんだろう?

64 :ナイコンさん:2014/03/01(土) 10:29:12.16 .net
6809に思い入れは残ってますね。

68B09なら2HDを奥義のsyncを使わないでもできると言う、微かな記憶がありましたから。

65 :ナイコンさん:2014/03/01(土) 16:11:06.88 .net
>>62
以前この本欲しくて探したけど無くて、結構苦労したっけ。
市の中央図書館には所蔵されていたんで、オークションで
落札するまでそれを見ていたなぁ。

66 :ナイコンさん:2014/03/01(土) 16:32:52.64 .net
>>65
持ってる人間には判る、一生持っていたいと思う書籍ですから中古には中々出ません。

>オークションで落札
因みに価格はおいくらでしたか?

67 :ナイコンさん:2014/03/01(土) 18:02:08.06 .net
古い話なので記憶が定かではありませんが、上下巻とも1000円程度だったような?
セットで出品されると手間が少なくてありがたかったんですが、なぜか片方だけの
出品ばかりという。

68 :ナイコンさん:2014/03/01(土) 19:30:44.00 .net
>>67
レスTHX

>上下巻とも1000円程度だったような
汚れの度合いも関係するけどイイ買い物したと思います。

69 :ナイコンさん:2014/03/01(土) 20:02:23.36 .net
OS-9の本とかもバイブルだよな。
今時のOSのカーネルでFDから溢れて起動できないなんていう事態が何故起きるのか、
機能差を考えるとまったく理解できなくなるという副作用があるかもしれないが。

70 :ナイコンさん:2014/03/01(土) 21:47:01.62 .net
>>61
F-BASIC V3.5もブートROMは使ってないとですよ。
というか、V4.0-5.0/3.5/3.3/3.4などの128KB F-BASIC全て。
ROM BASIC(V1.0/V3.0)のBIOSはブートROMのDREAD/DWRITE/RESTOREを流用してるけど。
V2.0はもってないのでわからんけど、31KB制限がある以上、
多分ブートROMを使ってるでしょうね。

> OS-9 Level 2 では (略)、Disk ドライバは動作中に
> MMR を OFF にはしないので、ずっと 1.6MHz で動いてる。
OS-9 L2だとそうなのですか?OS-9である以上BIOS(というかシステム領域)が
再配置・再入可能になってるのは当然だけど、
その件とMMR OFFの状態で認識できる領域以外も再配置出来るように
なっていなければならないっていう条件が同義であるかは
また別要素な気がするので、どうなんだろうなーって思ってた。
…まぁ、F-BASICのBIOSみたくREAD/WRITE時にMMR制御絡めると
「スタック/バッファに使用できるRAM領域が限られてしまう」ので、
それはそれでOS-9の汎用性に関わりそうだなーっていうのはわかる。

71 :ナイコンさん:2014/03/02(日) 12:04:55.39 .net
しかし何だな。
この「SYNC命令使うの悪」みたいな風潮は理解に苦しむなぁ。
別にどっちだっていいと思うけど。
DMAC 使ってない=割込み禁止にせざるを得ないやり方は
どんぐりのせいくらべ。

72 :ナイコンさん:2014/03/02(日) 14:24:40.32 .net
6809でSYNC命令使うのが悪とは言ってないと思う。
SYNC命令なくても他の方法で対応できる潜在能力がある、って感じでないかと。

73 :ナイコンさん:2014/03/02(日) 14:29:53.82 .net
>>71
私は単にSYNCを使用した手法は画期的で(FM-77の)1MB FDCのR/W手段等で使用されて
いるけれど、んじゃ320KB FDC同様のR/W手段では可能なのか不可能なのか?
の検証と思ってる。

検証そのものに意味があるのであって、手段はどっちでもいいと思うよ。

74 :ナイコンさん:2014/03/02(日) 15:07:50.23 .net
むしろ、違う手段の確立に意味があるんじゃない?
#今更何に使うんだというのは置いといて

75 :前スレ775:2014/03/02(日) 15:40:05.13 .net
>>前スレ776さん
ごめんなさい、以前頂いたデスフォースのMAPですが、
あれは私が作り途中でうpしたものです(一部MAPがズレてます…)。
見てるかどうか分かりませんが、その後大分埋めたのでうpしておきます。
http://www.dotup.org/uploda/www.dotup.org4906967.jpg.html
http://www.dotup.org/uploda/www.dotup.org4906971.jpg.html
※サイズ小さくしました

76 :ナイコンさん:2014/03/02(日) 20:42:21.14 .net
FM-7(MB25010)のDRAMリフレッシュ時の各部波形をオシロで観測した。
結論・・・チョンボだな、これは。

リフレッシュ周期:4.9152MHzを2^6=64分周した約13μs
/DMA信号のL期間:Eクロックで1CLK分
DRAMのリフレッシュ自体は最初のDeadサイクルでのみ実施

/DMA=Lの期間が1CLKしかないのでDMAサイクルは挿入されず、Dead
サイクル2CLKのみ挿入される。
その間MPUはR/W=Hi-Z, ADR=Hi-Z となっているためプルアップ抵抗が
周辺BUSをドライブすることになり、デコーダにはR/W=H, ADR=$FFFFが
伝わる。
これはBIOS ROMのアクセスそのものなのでウェイトロジックが起動し、
Deadサイクル2CLKに対してウェイトが挿入され、Eクロック周期は750ns
となっている。
よって、リフレッシュ動作がMPU時間に占める割合は
750ns*2/13μs => 11.54%

77 :ナイコンさん:2014/03/02(日) 20:43:38.36 .net
/RFSH=Lのパルス幅は600ns以上もあり、それだけの時間があれば
2回リフレッシュすることが充分可能だが/RFSHパルスは1発入って
いるのみ。1発リフレッシュするだけならノーウェイトで充分可能。
ノーウェイトなら、リフレッシュ動作がMPU時間に占める割合は
500ns*2/13μs => 7.69%

よって、私の観測した固体では3.85%のMPUパワーが単純な凡ミスの
ためにムダに捨てられている状況となっていた。

また、Deadサイクルはどうしても2クロック挿入されるので、それぞれ
各1回ずつリフレッシュをするのならリフレッシュ周期を倍の26μs間隔
に伸ばすことができ、
500ns*2/26μs => 3.85%
まで簡単に低下させることが可能だ。

/MRDY生成回路にリフレッシュ時の考慮を入れれば避けられたんだけど、
誰も気づかなかったのかなぁ?

78 :ナイコンさん:2014/03/02(日) 21:03:32.60 .net
基本的に乙ですけど、かなり難しくて直に教えて頂かなければ判らないと言うのが率直な感想です。

ただハードに詳しいなら支障がなければFDDの直し方の情報があると助かります。FM-77です。

79 :ナイコンさん:2014/03/02(日) 22:16:14.98 .net
>>77
たしかZ80カードとか出てた気がするんで、
それとの絡みでそういう仕様だった可能性は?
全然わからんけど。

80 :ナイコンさん:2014/03/02(日) 23:34:28.68 .net
>>79
多分関係ない気がするよ。
Z80は余り回路読む気がしないんでナナメ読み状態だけど、悪名高い
M1サイクル用にZ80カード上には独自のウェイト回路があるようだし。

それに今回6809側でのリフレッシュサイクル中、アドレスBUSに$FFFFが
出力される回路になっていてウェイトが入ってしまっているけれど、Z80
はリフレッシュサイクル中アドレスBUSにはRASオンリリフレッシュ用の
Rowアドレスが下位8bitに、上位8bitにはIレジスタの値が出力されるよう
なので、特段Z80のリフレッシュに配慮しているようにも見えない。
(Iレジスタに必ずFEHかFFHを書くという風にしているなら意味がある
かも知れないが・・・モード2割り込みするデバイスなんて、何か乗せら
れたっけ?)

81 :ナイコンさん:2014/03/03(月) 11:08:22.79 .net
よくわからないけどZ80カードって
元の6809のメモリマップそのままかっさらう感じなの?
それでグラフィック用のサブと同じようなデータ交換して同じように描画を任せるのかな?
Z80のI/Oポートは未使用?

82 :ナイコンさん:2014/03/03(月) 13:05:16.41 .net
>>81
よくわからないのに昔のパソコンを知りたいのか説得力のある説明が欲しい所。

>元の6809のメモリマップそのままかっさらう感じなの?
ここはそうかなと。
仕組みはFM-8と変わらないので工学社のFM-8活用研究のP67を見て下さい。
FM-8活用研究が手元にないなら諦めるか、他を当たって下さい。

83 :ナイコンさん:2014/03/03(月) 13:58:39.66 .net
FM7もっててZ80カードに興味を持って、でも大半の人は買ってない
興味をもつのに理由なんて必要ないでしょ
全く違うCPUが入れ替わるだけでそのまま動くってのがなんか不思議だったんだよね
サブへのYAMAUCHIコマンドとかはどうなっちゃうのかな

84 :ナイコンさん:2014/03/03(月) 14:40:08.52 .net
FM-8活用研究のP67から引用
6909がFD05番地に01Hを書き込むと6809のPCはその命令の次の番地を示したままHALTになり
Z80に実行が移る。Z80に実行が移る前Z80はresetがかかったままwaitになっていたので
0000番地より実行を始める。Z80から6809に実行を移す時はFD05番地に00Hを書き込む。

同様なことはFM-7のユーザーズマニュアルシステム仕様のZ80カード(オプション)にも書いてる。

>それでグラフィック用のサブと同じようなデータ交換して同じように描画を任せるのかな?
サブはメインのMPUが6909かZ80に関係なく動くはず

>Z80のI/Oポートは未使用?
判らない。

マニュアルやFM-8活用研究(←流れ図がある)あればもう少し解りやすいかも知れない。

85 :ナイコンさん:2014/03/03(月) 14:43:47.47 .net
追伸

聞き方にも問題がある。
聞けばこだまする魔法の箱と勘違いしてるように感じるので不愉快。

86 :ナイコンさん:2014/03/03(月) 15:00:03.68 .net
それはスマヌな
詳しそうな人が書き込んでたので何気に聞いてみた

87 :ナイコンさん:2014/03/03(月) 15:28:46.01 .net
>>81
とりあえず魔法の箱と言えば確かエミュレータで実装してた版があったと思うから、
そっちの箱を試して直接マシンに聞いた方がてっとり早いかもね。

個人的には刺さらないのでCPUエミュレータ版の方が興味あったり。
掲載MZ誌とか聞いてないよーって感じだ。

88 :ナイコンさん:2014/03/03(月) 20:35:05.12 .net
            _____                 
      r'ff77"/////〃〃∠=:、      フ ア ツ ク    
.     レ'''‐-!!!-‐::''"::::゙::ヾ:三三l     lニ    l     
.    l::::::::::::::::::::::::::::::::::::::::l:三三!    ! U C K
    |;:、:ニニニニニ:::::_;;::、:::::::l三三l          ユ ー  質問すれば答えが返ってくるのが当たり前か・・・・?
.    l´\゙ll::!:::lLニ-‐'' ̄::::::|三三ト、       ヽ/    なぜそんなふうに考える・・・・?
    }==。ァ ::,, ==。== ::::::r;=、ミ|. \      l  O U  大人は質問に答えたりしない それが基本だ
.    l.`ニ! ::::: `ニ二´  :::::rニ||:ミ!  ヽ、._        
 _,... -‐1 ! :::::_┐ヽ._    ::::::-リ ミ|   l          
     l/゙= ---─っヽ  ::::下ミ:ミミ|   |         
      l ` ̄ ̄´  | .::::::|:: ヾ:ミ|   |      
       ト、 ゙゙゙゙ ........_;;:::-‐':::   >|   |
   , --、 |  ` Tヾ ̄::::::::   / |.    |             
  l;';';';';';}|.    | \    ./   |     |     
.  〉-y'´|   _|   \ /    |_    :|         
  /7./ .>'' ´ |   / \     | `''‐< 

89 :ナイコンさん:2014/03/03(月) 23:08:37.94 .net
「68000システムの製作全科(下)」読んで見たよ。
予想通り、ブランチ命令でDRQを待つ間のロスタイムを無くすため
展開してるね。DRAMリフレッシュによるブレが吸収されてるのなら
これで行けるのかも。ただ筆者も「読み書きテストができるように
なりました」と敢えて書いているので、この時点では100%の信頼性
のチェックができてなかったのかもしれない。
本方式の弱点としてはメモリをちょっとよけいに消費する点か。
セクタ長が256バイト以外に対応しているのかどうか、未確認。

90 :ナイコンさん:2014/03/03(月) 23:19:00.37 .net
>>81
>よくわからないけどZ80カードって
>元の6809のメモリマップそのままかっさらう感じなの?

YES

>それでグラフィック用のサブと同じようなデータ交換して同じように描画を任せるのかな?

公式には、Z80はIOアクセスを保証されていない。
IOアクセスは6809に任せるように、というのが富士通側の指導。
実際には、保証外だが、ほとんどのIOアクセスで問題なく動作する。
サブシステムを止めてコマンドを送り、再度サブを動かして絵を描かせる
のもOK。

>Z80のI/Oポートは未使用?

質問の意図に合ってるか不明だが、Z80のI/O空間には何も配置されてない。

>>83
> サブへのYAMAUCHIコマンドとかはどうなっちゃうのかな

6809の時と全く同じに使える。ちなみにFM-7の場合はYAMAUCHIは不要。

91 :ナイコンさん:2014/03/03(月) 23:36:32.69 .net
>>81
そんなんで書くなよと言われれば返す言葉もないけれど、Z80には思い入れが
微塵も無いので回路図(※)ナナメ読みで。
※)秀和の解析本、F-BASIC解析マニュアル フェーズ2 巻末回路図

まず/IORQはどこにも繋がっておらず、以下に示すように/MREQ=Hで/RD,/WR
がアサートされた際の特別な処理もされていないので、I/O命令で何か特殊な
空間にアクセスするようなマネはできない。

FM-7のZ80カードではR/W信号の作成に/MREQを使っていて、/MREQ=Lの
ときの/RDの反転が論理の基本になっている。
/MREQ=Hの場合は/RD=Lだろうと/WR=LだろうとR/W=Hに張り付く。
また、Z80カード上のデータBUSのbufferは/RDのみでDIRが制御されていて、
Z80がアクティブな間は『3ステートになることは無い』

ここでIN命令を実行すると
R/W=Hのため FM-7内部リソース → 40pinコネクタ データBUS
/RD=Lのため 40pinコネクタ データBUS → Z80

タイミング的に問題があるかもしれないが、データのディレクションは合ってる。

次にOUT命令を実行すると
R/W=Hのため FM-7内部リソース → 40pinコネクタ データBUS
/RD=Hのため 40pinコネクタ データBUS ← Z80

・・・Z80カード上のLS245とFM-7本体上のどっかのBUS buffer出力がぶつかる
んじゃね?

Z80カード上のデータBUS buffer LS245って、Z80のリード時以外、ずっと40pin
コネクタ側に向いてアクティブ状態のままってのもどうかと思うんだが、問題ない
のかね?

92 :ナイコンさん:2014/03/04(火) 00:50:25.44 .net
>>91
ナナメ読みにしては随分粒度が細かいようだが...w

93 :ナイコンさん:2014/03/04(火) 01:57:55.12 .net
>>92
回路を読むときはタイミングチャートを引かなきゃならんので、今回は心底手抜きっすよw

> サブへのYAMAUCHIコマンドとかはどうなっちゃうのかな
エンディアンが逆なので、地味にイヤ〜な感じなんじゃ?w

94 :ナイコンさん:2014/03/04(火) 07:39:50.98 .net
詳しくありがとう
OH!FMを彷彿させるぜ

95 :ナイコンさん:2014/03/04(火) 08:41:25.37 .net
>>93
8bit機にエンディアンってあるのかなあ。
まあ16bitレジスタとかもあるけれども。

96 :ナイコンさん:2014/03/04(火) 08:50:08.49 .net
ハンドアセンブルしたことないのか、おまえは。

97 :ナイコンさん:2014/03/04(火) 08:56:12.61 .net
エンディアンはバイト順なので16bitCPU以上での注意事項でないだろうか。

98 :ナイコンさん:2014/03/04(火) 09:07:56.96 .net
どこから勘違いしてるのやら。

99 :ナイコンさん:2014/03/04(火) 09:30:43.64 .net
ID出ると解りやすいけど、>>95氏と>>97は別人。

8bit機のサブへのデータ設定でエンディアンが関係するのかとの違和感を感じた。
その時、既に同じ違和感を持った人の書き込みがあった状況。

100 :ナイコンさん:2014/03/04(火) 09:49:05.41 .net
6809のアドレスバスは16bit。

101 :ナイコンさん:2014/03/04(火) 09:55:17.46 .net
>>95
もちろんある。

102 :ナイコンさん:2014/03/04(火) 10:45:06.82 .net
っていうかあれって裏コマンドだった初代以外はおまじないかと思ってたな。

103 :ナイコンさん:2014/03/04(火) 13:07:52.85 .net
むしろ、
なぜ8ビット機だとエンディアンが無いと思うのか、
サブへのデータ設定だとエンディアンが関係ないと思うのか、
そっちのほうが理解できない。
どういう機構を想定するとエンディアンが無くなるんだ?

104 :ナイコンさん:2014/03/04(火) 14:35:48.04 .net
16bitの数値(アドレス)受け渡す場合が想定から抜けているみたいな

105 :ナイコンさん:2014/03/04(火) 15:05:48.09 .net
今考えるとリトルエンディアンのほうが自然だよな。

106 :ナイコンさん:2014/03/04(火) 15:17:42.22 .net
>>93
>エンディアンが逆なので、地味にイヤ〜な感じなんじゃ?w
16bitデータを設定する際に不注意にリトルエンディアンのつもりでドジった経験
と承って宜しいですか。

読み書きが2Byteずつならハマることもあると想像できましたけど
1Byteづつ設定するのにそんなドジを踏むのかと思った次第。失礼しました。

107 :ナイコンさん:2014/03/04(火) 15:29:38.71 .net
2バイトまとめて読み書きって発想がない人って意外と居るんだよな。
結局8bitだから意味がないと思っちゃうみたい。

108 :ナイコンさん:2014/03/04(火) 15:41:07.62 .net
6800,6809でも8080,Z80でも16ビットレジスタ(もしくはレジスタペア)
のロード、ストア命令くらいあるぞw
むしろ68系のインデックスレジスタ(16ビット)だと
8ビット単位でのロード/ストアができない。

109 :ナイコンさん:2014/03/04(火) 16:06:23.51 .net
>>108
そう考えると8bit版の68kって酷いな。

110 :ナイコンさん:2014/03/04(火) 16:14:50.04 .net
68000は奇数アドレスにフェッチすると・・・

111 :ナイコンさん:2014/03/04(火) 16:33:00.05 .net
バス例外

112 :ナイコンさん:2014/03/04(火) 17:36:11.00 .net
FMのキーボードって史上最悪だったな

113 :ナイコンさん:2014/03/04(火) 19:32:21.92 .net
そうかい?
FM-7のキーボードはかなりしっかりした造りだったよ
88初代もよかったな

88mk2とx1cに触れた事があるが安っぽい造りだったぞ

114 :ナイコンさん:2014/03/04(火) 19:45:51.69 .net
X1のゴニョゴニョ感は最悪だったな
カーソルキーの配列も最悪
おまけに同時入力ができないのがモデルチェンジ後も直らなかったという
あのキーが嫌いでXX1を選ばなかったという人もいるんでは

115 :ナイコンさん:2014/03/04(火) 19:52:18.96 .net
せっかくいい流れできてんのに、荒らしに釣られるなよー。(まぁこの文も同類だが)

116 :ナイコンさん:2014/03/04(火) 19:53:50.86 .net
今時のペコペコの奴はゴムが劣化したら陥没するよな。
タブレットなんてそもそもストローク無いわけで、
ノートブックの頃の話は一体なんだったのだろうか?

117 :ナイコンさん:2014/03/04(火) 21:01:07.54 .net
>>107
2バイトでアクセスさせなければいいだけじゃん?

118 :ナイコンさん:2014/03/04(火) 21:26:29.36 .net
LEA命令禁止いただきましたー

119 :ナイコンさん:2014/03/04(火) 21:49:34.85 .net
>>106
例えばSUBにプログラムを転送する際のMOVEサブコマンドを使うときなど、
こんな風にしたりとか

;work上に取ったMOVEサブコマンドのデータ列
;サブルーチンXFERによって共有メモリ上にこのままコピーされる
MVCMD:
 DB 91H    ; MOVEサブコマンド
 DW 0D393H ; SUB側共有メモリ上の転送元アドレス
MVDST:
 DW 0C000H ; SUB側転送先アドレス
MVLEN:
 DW 64    ; 今回転送するバイト数
 DB 90H   ; ENDサブコマンド

・・・・・・・・・・

LOOP:
 CALL XFER    ; YAMAUCHIコマンド等もろもろ共有メモリに設定し、転送を実行
 LD HL,(MVDST)
 LD BC,(MVLEN)
 ADD HL,BC
 LD (MVDST),HL ; 今回転送仕切れない場合、次回転送する際の転送先

以下、総転送長を減じたり、メイン側に置いているデータのポインタを更新したり、
次回の転送長が64バイトに満たないなら調整したり等して残りがあるならLOOPへ
・・・みたいな。
こんな風にすると1回はRESETするハメになるかなぁってことで。

ああ・・・Z80の組み込みソフト開発に巻き込まれた日々を思い出してきた・・・
辛かったなぁ、あれは orz

120 :ナイコンさん:2014/03/04(火) 23:04:16.16 .net
>>119
ご苦労様、お手数かけて申し訳ない。

苦労した経験を添えて頂かないと1byteづつ設定するのにエンディアンでハマるのかと勝手に想像しました。

自分は大型機のフロントエンドを作る時、エンディアンを統一して欲しかったのにどちらでイイとか言われまして。
途中そのプロジェクトを抜けましたけど残った人はC言語も知らないしエンディアンでもハマったと思います。

外資系と言われて2000年前後までは華やかだったあの会社ですけど当時から今の兆候がありました。

121 :ナイコンさん:2014/03/05(水) 00:39:47.11 .net
>>120
>苦労した経験
あ、実体験じゃないですよw
Z80カードなんか欲しいとも思わなかったし、Z80カードに関わる仕事をしたわけでもないです。

なにせ、Z80からコントロールされるゲートアレイを設計するだけのはずが、気が付いたら
ゲートアレイの制御部分を皮切りに何故か数ヶ月もソフト開発に付き合うハメになって、
それ以来Z80には負の感情しか湧きませんしw

122 :ナイコンさん:2014/03/05(水) 06:40:39.81 .net
>>117
それこそなんの意味があるのよ?
16bit版の6809があれば動作が変わって意味が出てくるかもしれないが。

123 : 忍法帖【Lv=40,xxxPT】(1+0:8) :2014/03/05(水) 11:02:31.62 .net
なぜ起こった?NTTデータや富士通が絡んだ「横浜銀行データ不正取得事件」

http://itpro.nikkeibp.co.jp/article/COLUMN/20140206/535244/

124 :ナイコンさん:2014/03/05(水) 11:22:53.92 .net
多重派遣、天下りだらけで現場の給与が薄給だからとしか。

125 :ナイコンさん:2014/03/08(土) 10:33:25.08 .net
イロイッカイズツって
青赤黄緑水紫白
で合ってる?

126 :ナイコンさん:2014/03/08(土) 12:53:57.60 .net
>>125
ググれば一発で各機種毎の回答が出てたけど?

127 :ナイコンさん:2014/03/08(土) 15:09:21.04 .net
出ないよ

128 :ナイコンさん:2014/03/08(土) 15:26:11.47 .net
違うな、出ないのではなく
「虹の順番」「カラーコードの紫と黄を入れ替えたもの」の2つが見つかるけど、後者で合ってる?という質問と思ってくれ。

129 :ナイコンさん:2014/03/08(土) 15:29:03.76 .net
このスレで今でもFM関連でハードを作ってる方がいて嬉しくなったけど
最近、その方以外にもFM・6809関連でハードを作ってる方を見つけて驚いた。
アセンブラを操れるのは6809だけなので6809に関連したハードは懐かしい。
何よりメモリマップドI/Oの6809はハードが作りやすい。

130 :ナイコンさん:2014/03/08(土) 21:06:47.46 .net
>>128
それは流石に自分で試した方がいいのでは。
当時のゲームは試行錯誤するのが基本だったんだし。

総レス数 1000
302 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200