標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
やっと(!)MYCPU80の改良型基板製作に着手しました!!
[第866回]
●まずはログを解析してみましたが…
前回の終わりのところで書きましたように、誤動作はMBASICの起動後にSTARTREKをロードするときに発生します。
同じロードなのに、N8ZB3DOSシステムのロードもMBASICのロードも正常に完了します。
そこが謎でした。
実は問題はまだありました。
いろいろな対策を講じてSTARTREKのロードはなんとか正常に行なわれるようになったあとも、今度はLISTの表示でこけてしまいます。
ロードはWindows側からの送信動作ですが、LIST表示はMYCPU80側からの送信です。
全く逆の動作なのですが、実はLISTでのトラブルのほうがLOADのときよりももっとしつこくて、本当に対策に窮しました。
まあ、それは後になってからの話です。
今回は実にしつこいトラブルで本当に悩み深い毎日だったのですが、当初この問題の入口では、何がおきているのか全くわからず(実は今でも本当のところはよくわかっていないのですが)、とにかく考えられることを手探りでやってみるしかありませんでした。
まずはSTARTREKのLOADでエラーが発生しているので、とにかく送信受信の内容をモニタしてみることにしました。
N8ZB3DOS.EXEをちょっといじくって、送信データと受信データを表示させて、それをログとして記録しました。
下はN8ZB3DOSの起動からSTARTREKのLOADでこけるところまでを記録したログです。
3月14日の記録です。
全部で272KBもありますから全部をここにUPするのは大変ですから、途中を省略して一部のみお見せします。
N8ZB3DOSを起動してから/CPMの入力までの部分です。
logfile nd8080log\03142325.txt open n8zb3dos1g 2016.5.5 by Chunichidenko ND8080に接続しました RD,n=1,(00) WR,n=1,[14] RD,n=6,(04)(00)(01)(00)(00)(00) 0001 0000 - z WR,n=1,[01] RD,n=1,(00) WR,n=1,[00] RD,n=1,(00) WR,n=1,[00] RD,n=1,(00) WR,n=1,[00] RD,n=1,(00) WR,n=1,[12] RD,n=6,(04)(10)(00)(00)(C3)(00) 1000 00C3 - WR,n=1,[10] *** nd8080 zb3basic **** RD,n=2,(3E)(01) >/cpm loading n8cpm1a.bin ... WR,n=19,[4A][50][20][31][38][34][38][20][43][43][30][30][2C][45][36][31][38][0D] [0A] WR,n=63,[C3][3B][CC][C3][00][01][C3][74][CC][C3][77][D0][C3][90][D0][C3][AC][D0] [C3][CB][D0][C3][35][D1][C3][3B][D1][C3][4C][D1][C3][5F][D1][C3][0D][CE][C3][73] [D2][C3][68][D0][C3][77][D3][00][00][00][00][00][00][00][00][00][00][00][00][00] [00][C5][11][80][00] WR,n=63,[CD][57][D4][AF][32][85][E8][3E][03][32][35][E9][F5][11][98][D3][CD][24] [D4][F1][F5][C6][41][5F][CD][0F][D4][CD][A4][D3][F1][5F][CD][33][D4][CD][7B][D4] [CD][A9][D3][3A][35][E9][3D][F2][48][CC][C1][79][32][35][E9][AF][32][84][E8][32] [85][E8][67][6F][22] |
RD,n=はMYCPU80からの受信データです。
nは受信データ数で()はそのデータです。
WR,n=はWindows側からの送信データです。
nは送信データ数で[]はそのデータです。
/CPMコマンドを受けてN8ZB3DOS本体プログラムの送信を開始しています。
データは63バイトごとに区切って送信します。
このあとN8ZB3DOSプログラムの送信が完了するところまで省略します。
N8ZB3DOSプログラムのロードが完了すると、続いてCP/Mドライブ(D〜A)のロードが開始されます。
WR,n=63,[D3][3E][01][C3][83][D3][3E][02][C3][83][D3][3E][03][C3][83][D3][3E][04] [C3][83][D3][3E][05][C3][83][D3][3E][06][C3][83][D3][3E][07][F5][11][9F][D3][CD] [24][D4][F1][C6][41][5F][CD][0F][D4][C3][73][D2][62][61][64][20][64][72][69][76] [65][20][24][65][72] WR,n=51,[72][3A][24][1E][20][C3][0F][D4][1E][0D][CD][0F][D4][1E][0A][C3][0F][D4] [73][61][6D][65][20][6E][61][6D][65][20][66][6F][75][6E][64][2C][63][61][6E][27] [74][20][72][65][6E][61][6D][65][20][74][6F][20][24] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(64)(00)(00)(00)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) d WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(72)(00)(00)(01)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) r WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(69)(00)(00)(02)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) i WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(76)(00)(00)(03)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) v WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(65)(00)(00)(04)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) e WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(20)(00)(00)(05)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=11,(0C)(44)(00)(00)(06)(00)(00)(00)(00)(00)(00) RD,n=3,(00)(00)(00) D WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(0C)(20)(00)(00)(07)(00)(00)(00)(00)(00) RD,n=4,(00)(00)(00)(00) WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=10,(01)(03)(00)(00)(80)(00)(E7)(E7)(E7)(E7) RD,n=4,(E7)(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[00][54][45][53][54][33][20][20][20][43][20][20][00][00][00][01][02][00] [00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][54][45][53][54][34] [20][20][20][43][20][20][00][00][00][03][03][00][00][00][00][00][00][00][00][00] [00][00][00][00][00] WR,n=63,[00][00][4C][49][42][43][53][52][43][20][41][52][43][00][00][00][80][04] [00][05][00][06][00][07][00][08][00][09][00][0A][00][0B][00][00][4C][49][42][43] [53][52][43][20][41][52][43][01][00][00][80][0C][00][0D][00][0E][00][0F][00][10] [00][11][00][12][00] WR,n=2,[13][00] RD,n=2,(2E)(09) . WR,n=1,[00] RD,n=11,(01)(03)(01)(00)(80)(00)(E7)(E7)(E7)(E7)(E7) RD,n=3,(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[00][4C][49][42][43][53][52][43][20][41][52][43][02][00][00][22][14][00] [15][00][16][00][00][00][00][00][00][00][00][00][00][00][00][4C][49][42][55][54] [49][4C][20][43][4F][4D][00][00][00][7F][17][00][18][00][19][00][1A][00][1B][00] [1C][00][1D][00][1E] |
drive Dの文字表示があって、128バイト(1セクタ)送信ごとに”.”が表示されます。
ここも長々と続きますから、Aドライブのロード完了まで省略します。
MBASICを起動します。
RD,n=14,(0C)(42)(80)(EB)(00)(00)(00)(EA)(02)(00)(00)(00)(00)(00) B WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=14,(0C)(3E)(80)(EB)(01)(00)(00)(EA)(02)(00)(00)(00)(00)(00) > WR,n=1,[20] RD,n=1,(05) WR,n=1,[6D] RD,n=2,(6D)(05) m WR,n=1,[62] RD,n=2,(62)(05) b WR,n=1,[61] RD,n=2,(61)(05) a WR,n=1,[73] RD,n=2,(73)(05) s WR,n=1,[69] RD,n=2,(69)(05) i WR,n=1,[63] RD,n=2,(63)(05) c WR,n=1,[0D] RD,n=1,(09) WR,n=1,[00] RD,n=14,(0C)(0D)(80)(EB)(08)(00)(00)(EA)(02)(00)(00)(00)(00)(00) WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=14,(0C)(0A)(80)(EB)(00)(00)(00)(EA)(02)(00)(00)(00)(00)(00) WR,n=1,[20] RD,n=1,(09) WR,n=1,[00] RD,n=14,(01)(01)(00)(00)(80)(00)(E7)(E7)(E7)(E7)(E7)(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[00][4D][42][41][53][49][43][20][20][43][4F][4D][00][00][00][80][02][00] [03][00][04][00][05][00][06][00][07][00][08][00][09][00][00][4D][42][41][53][49] [43][20][20][43][4F][4D][01][00][00][41][0A][00][0B][00][0C][00][1F][00][20][00] [00][00][00][00][00] WR,n=63,[00][00][53][54][41][52][54][52][45][4B][42][41][53][00][00][00][80][0D] [00][0E][00][0F][00][10][00][11][00][12][00][13][00][14][00][00][53][54][41][52] [54][52][45][4B][42][41][53][01][00][00][1F][21][00][22][00][00][00][00][00][00] [00][00][00][00][00] WR,n=2,[00][00] RD,n=1,(09) WR,n=1,[00] RD,n=14,(01)(01)(20)(00)(80)(00)(E7)(E7)(E7)(E7)(E7)(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[C3][8C][5D][7A][29][DC][29][06][44][BF][11][9E][45][EC][14][63][18][86] [39][40][19][18][15][95][14][67][14][51][16][E6][43][7D][14][D1][14][EE][14][01] [44][9C][16][0E][45][89][20][20][43][85][15][73][44][03][20][2B][1E][C0][22][5D] [44][C9][0C][C9][0C] WR,n=63,[FD][1F][94][16][84][20][00][00][24][20][EE][14][7C][44][7D][44][82][44] [C4][44][E3][3C][10][16][D3][15][7C][22][1B][16][F9][22][C9][13][CC][13][CF][13] [D2][13][F5][17][00][00][00][00][58][4C][7B][4C][F1][4C][7B][50][EC][14][74][4D] [3D][24][87][24][00] WR,n=2,[00][B7] |
mbasicコマンドの入力によってmbasicプログラムの送信が開始されました。
以下送信完了まで省略します。
MBASICが起動しました。
WR,n=63,[1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A] WR,n=63,[1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A][1A] [1A][1A][1A][1A][1A] WR,n=2,[1A][1A] RD,n=4,(42)(41)(53)(49) BASI RD,n=7,(43)(2D)(38)(30)(20)(52)(65) C-80 Re RD,n=62,(76)(2E)(20)(35)(2E)(32)(31)(0D)(0A)(5B)(43)(50)(2F)(4D)(20)(56)(65)(72) (73)(69)(6F)(6E)(5D)(0D)(0A)(43)(6F)(70)(79)(72)(69)(67)(68)(74)(20)(31)(39)(37) (37)(2D)(31)(39)(38)(31)(20)(28)(43)(29)(20)(62)(79)(20)(4D)(69)(63)(72)(6F)(73) (6F)(66)(74)(0D) v. 5.21 [CP/M Version] Copyright 1977-1981 (C) by Microsoft RD,n=44,(0A)(43)(72)(65)(61)(74)(65)(64)(3A)(20)(32)(38)(2D)(4A)(75)(6C)(2D)(38) (31)(0D)(0A)(32)(38)(37)(32)(38)(20)(42)(79)(74)(65)(73)(20)(66)(72)(65)(65)(0D) (0A)(4F)(6B)(0D)(0A)(05) Created: 28-Jul-81 28728 Bytes free Ok |
続いてLOAD ”STARTREK を入力しました。
WR,n=1,[6C] RD,n=2,(6C)(05) l WR,n=1,[6F] RD,n=2,(6F)(05) o WR,n=1,[61] RD,n=2,(61)(05) a WR,n=1,[64] RD,n=2,(64)(05) d WR,n=1,[20] RD,n=2,(20)(05) WR,n=1,[22] RD,n=2,(22)(05) " WR,n=1,[53] RD,n=2,(53)(05) S WR,n=1,[54] RD,n=2,(54)(05) T WR,n=1,[41] RD,n=2,(41)(05) A WR,n=1,[52] RD,n=1,(52) R RD,n=1,(05) WR,n=1,[54] RD,n=2,(54)(05) T WR,n=1,[52] RD,n=2,(52)(05) R WR,n=1,[45] RD,n=2,(45)(05) E WR,n=1,[4B] RD,n=2,(4B)(05) K WR,n=1,[0D] RD,n=3,(0D)(0A)(09) WR,n=1,[00] RD,n=14,(01)(01)(00)(00)(80)(00)(E7)(E7)(E7)(E7)(E7)(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[00][4D][42][41][53][49][43][20][20][43][4F][4D][00][00][00][80][02][00] [03][00][04][00][05][00][06][00][07][00][08][00][09][00][00][4D][42][41][53][49] [43][20][20][43][4F][4D][01][00][00][41][0A][00][0B][00][0C][00][1F][00][20][00] [00][00][00][00][00] WR,n=63,[00][00][53][54][41][52][54][52][45][4B][42][41][53][00][00][00][80][0D] [00][0E][00][0F][00][10][00][11][00][12][00][13][00][14][00][00][53][54][41][52] [54][52][45][4B][42][41][53][01][00][00][1F][21][00][22][00][00][00][00][00][00] [00][00][00][00][00] WR,n=2,[00][00] RD,n=1,(09) WR,n=1,[00] RD,n=14,(01)(01)(D0)(00)(80)(00)(E7)(E7)(E7)(E7)(E7)(E7)(E7)(E7) WR,n=1,[00] WR,n=63,[31][30][20][52][45][4D][20][53][55][50][45][52][20][53][54][41][52][54] [52][45][4B][20][2D][20][4D][41][59][20][31][36][2C][31][39][37][38][20][2D][20] [52][45][51][55][49][52][45][53][20][32][34][4B][20][4D][45][4D][4F][52][59][20] [28][41][54][20][4C] WR,n=63,[45][41][53][54][29][0D][0A][33][30][20][52][45][4D][0D][0A][34][30][20] [52][45][4D][20][2A][2A][2A][2A][20][20][20][20][20][20][20][20][2A][2A][2A][2A] [20][53][54][41][52][20][54][52][45][4B][20][2A][2A][2A][2A][20][20][20][20][20] [20][2A][2A][2A][2A] WR,n=2,[0D][0A] RD,n=2,(3E)(01) > |
データの送信を開始するとすぐにいきなりデータの受信が打ち切られて
>
が表示されてしまいました。
BASICプログラムの送信はASCIIコードで行なわれています。
送信データを解読してみると、最初に行番号10(31 30 20)からはじまって0D 0Aで行が終わり、続いて行番号30(33 30 20)〜0D 0A、行番号40(34 30 20)〜0D 0Aが送信されています。
そのあといきなり3E 01が送られてきています。
どういうわけかここでN8ZB3BASICに突然エントリしてしまったようです。
しかし送受信データを見る限りではそこで何が起きたのかを知ることはできません。
結局この方法では異常の原因を知ることはできませんでした。
私は、N8ZB3DOS、MBASICのロードとSTARTREKのロードとでは何か違いがあるのでは、と疑ったのですが、あらためてこうしてログを見る限りではどちらのロードも違いはないように見えます。
こうなるとこの先は何が原因かわからぬまま手探りでカットアンドトライを続けるしかありません。
実際実に苦しい数日間でした。
次回に続きます。
TTLでCPUをつくろう![第866回]
2018.3.18upload
前へ
次へ
ホームページトップへ戻る