
ノスタルジーシリーズその5と言いますかこのチップも学生時代から知っており、研究室でも身近であったのですが当方MC6800/MC6809一筋だったので:)チップに触れてこなかった案件です。
0.R65C02(というか6502)につきまして
やはりこちらが俯瞰するには最も頼りになる(私見ですが)情報源なので引用しておきます。6502はCMOS化、IP化(SoC化)等々に伴い各社各様(混沌の婉曲表現)な展開が見られるのは類似な経緯のintel 8051(MCS51)との類似性もあるようなそうでもない様な・・・上記R65C02P4は最近ebayで落札したチップですが今回は抑制的に取り敢えずは6502オリジナル命令でdbaのプログラムを組みました。
理由は若松で入手したR6503を持っているから:)。なのでいつも以上にへんてこりんなプログラムかもしれませんがご容赦を。体感したのはM6800とは開発者は同じだが全く異なるチップであるという印象。
・ブロック図

個人的にはロックウェルと言えばB-1爆撃機(当時はノースアメリカン・ロックウェル⇒ロックウェルインターナショナルだった様な)を思い出すのですが1980年代はAIM-65という評価ボードでサーマルプリンタ内蔵の面白い評価ボードが提供されていた様に記憶しております(トラ技の広告ですが)。
・バスタイミング(R65C02)


4Mhzバージョンが存在しているのが当時としては新鮮(日立でもCPUだけ3Mhzだったのに)。もっとも21世紀になるとW65C02Sでは14Mhzバージョンが存在するので(まあZ8S180も33Mhz版が存在しますが)プロセスの進歩でクロック周波数は向上するという普遍則のおかげですな。
開発者さんの経歴と開発の歴史的経緯からして当然ながらM6800ファミリとバスインタフェースは互換があります(が、細かい注意事項も、バグ含めて:)。
・外部クロック(R65C02)

ご承知の通り6502(R65C00系だけでも)様々なバリエーションがあるのでR65C02の外部クロック例とご理解下さい(いづれもR65C02データシートから引用)。モトローラ流に言えばφ2=Eという事ですね。
まあφ2もM6800以外で言う処のEクロックな訳ですが。φ1は逆相のクロックでマルチプレクスというかサイクルスチールDMAというか調停回路無しでメモリ共有(切り替え、VRAM等)には使いやすいのかもしれません(ビデオコントローラにCPUクロックを合わせる系といいますか)。
本機(以下 eb6502_v0 と称します)では縛りのHD63B21、HD63B50がEクロック2Mhzが上限なので4Mhz版のR65C02P4を2Mhzクロックで使用します(8Mhzを4分周)。
1.eb6502_v0 ブロック図

毎度の如くCPU以外は同じ素材で構成しております。前述の通りCPUクロックは2Mhz(PSDで8Mhzクロックを4分周)し、メモリマップはeb6809_v0 と互換性があります(実はISP可能なプログラマブルデバイスなのでかなり柔軟にマップ変更可能)。
PSD8XXのエコシステムについての覚え書き - aki_iic’s blog
2.回路図

(お詫び)本機には遺伝的バグ(eb6809_v0からのバグ)がありましてそれはPSDのportBのPB7 とHD63B21(PIA)のportBのbit7が同じ信号名称のPB7を使っているのでネットが繋がっております(恥ずかし)。すみませんがPIAのportbのbit7はDDRを入力とするか正しくネット名を別にして修正お願いします(すみません)。
3.パターン図(全レイヤ合成)

4.PLA(抜粋)
module eb6502v0
a0 PIN 30; "Address line
a1 PIN 31; "Address line
a2 PIN 32; "Address line
a3 PIN 33; "Address line
a4 PIN 34; "Address line
a5 PIN 35; "Address line
a6 PIN 36; "Address line
a7 PIN 37; "Address line
a8 PIN 39; "Address line
a9 PIN 40; "Address line
a10 PIN 41; "Address line
a11 PIN 42; "Address line
a12 PIN 43; "Address line
a13 PIN 44; "Address line
a14 PIN 45; "Address line
a15 PIN 46; "Address line
r_w PIN 47;
sysclk PIN 49;
e PIN 50;
_reset PIN 48;
d0 PIN 29; "Data bus line
d1 PIN 28; "Data bus line
d2 PIN 27; "Data bus line
d3 PIN 25; "Data bus line
d4 PIN 24; "Data bus line
d5 PIN 23; "Data bus line
d6 PIN 22; "Data bus line
d7 PIN 21; "Data bus line
ma16 PIN 6; "MCU I/O
BCK PIN 5;
ph2in PIN 4;
nFT245TXE PIN 3; "MCU I/O
nFT245RXF PIN 2; "MCU I/O
nCF PIN 52;
pb7 PIN 51; "MCU I/O
tms PIN 20; "TMS
tck PIN 19; "TCK
nFT245RD PIN 18;
FT245WR PIN 17;
nRAM PIN 14;
tdi PIN 13; "TDI
tdo PIN 12; "TDO
nPIA PIN 11;
nACIA PIN 10;
nRD PIN 9;
nWR PIN 8;
rs0 node;
csiop node;
fs0 node;
f1 NODE istype 'reg_D';
f2 NODE istype 'reg_D';X = .x.;
address = [a15..a0];
Vcc = 1;
Gnd = 0;
// Begin user preserved declarations (not affected by iterations of DA usage) ===================// End user preserved declarations (not affected by iterations of DA usage) ===================
equations
rs0 = *1;
csiop = *2;
fs0 = *3;
! nCF = *4;
! nFT245RD = *5;
FT245WR = *6;
! nRAM = *7;
! nPIA = *8
# *9;
! nACIA = *10;
ph2in = f2;
ph2in.oe = Vcc;
pb7.oe = _reset;
nRD = !(e & r_w);
nRD.oe = _reset;
nWR = !(e & !r_w) ;
nWR.oe = _reset;
f1 := !f2;
f1.ck = sysclk;
f1.re = Gnd;
f2 := f1;
f2.ck = sysclk;
f2.re = Gnd;
// Begin user preserved equations (not affected by iterations of DA usage) ===================// End user preserved equations (not affected by iterations of DA usage) ===================
end eb6502v0
20260513 05:11 追記:13分周回路組込み↓
5.実装ボード(実物)

画面右の40PinピンヘッダがRCBUS準拠のバスコネクタであり、基板右上からHD63B21(PIA)、R65C02P4(CPU)、1Mbit sram、AE-FT245RN(ホストとCDC-ACMで接続)、左上からHD63B50(ACIA),8MhzOSC、PSD834F2J90です。
ほぼ同じ構成を5回組み立てると流石に慣れるもので抵抗は1個(リセットSWの220Ω)、集合抵抗は10Kと100KとBOM見なくても作業出来る様になりました(5回もやってりゃ・・・ね)。
電源はAE-FT245RNのUSBケーブルから供給されるバスパワーで消費電流は中華USB電流計によると0.22A(1.1W)とeb6809_v0(HD63B09E搭載)より少ない と同等の様です(R65C02P4@2Mhz動作にて)。
20260426 03:31追記:計算合わないのでもう少し高級?なUSB電圧電流電力計で再測定しました↓

結果は0.028A(0.141W)とほぼCMOSチップ構成で静的状態なのでこちらの方が正解な感じがする。そもそもバッテリ充電用途っぽいので負荷もそれを想定しており微小電流負荷は想定してないのでしょうかね(激安の方は)。
因みにeb9995_v0 も再測定したら0.160A、0.810Wとこちらもこの測定値の方が正解に近い印象。
6.開発環境

毎回同じでは心苦しいので冗長になりますがSTの開発ツールであるPSDSoftExpress(ObsoluteですがSTのサイトからアーカイブが入手可能です。但し動作環境はWinXPのみ or Wine(当方はUbuntu24.04.3LTSで書込以外は対応出来ている様です)で動作します。
PSD8XXのエコシステムについての覚え書き(その2) - aki_iic’s blog
以下トップ画面(VMWare/WinXPの仮想マシン環境)

画面左のメニューでソース開発・コンパイル・ROMイメージ統合でメタデータ作成し、最下のJTAG書込でPSDデバイスにPLD/IO/ROMデータをJTAGでISPする訳です。
・合成する論理式(PSDAbel書式)

・ROMデータのマージ

受け付けるフォーマットはIntel HEXだけです(MOTはエラーになり無視される)これとても重要。マージされたメタデータのROM領域は参照出来て

fs0(flash ROM)は32KBなのでfs0は0〜7FFFとなり、$F800は07800に対応します。この画面は書き換え可能なので「パッチ」を手動で掛ける事も可能です(なつかし)。これでメタデータ作成出来たのでISPで書込を行います。

ここで Executeボタン押下すると未消去の場合には書込みするか確認画面が出て書込OKとするとISPが行われます↓

このような態様で書込過程が表示されます。書込時間はROMサイズに依存すると思われるので消去+書込+ベリファイで350バイト程度(dbaって小さいので:)で合計30秒程度(flashなのでイレーズに10秒程度掛かる様です)でPLD/IO/ROMのメタデータのISPが終了します。ISPはRlinkというUSB接続の書込ツールを変換基板を通して14PinのPSDJTAGコネクタに接続してISPします。
大雑把ですがこんな感じです(コタツデバッグに好適:)。
7.dba
開発はasl-1.42を使用しています(今までのターゲットも同様)。このドイツ人のクロスアセンブラはレトロマイコン系での殆どに対応してくれてるので当方にとっては宝物です(深く感謝を)。まあ、有名なのでご承知の方は多いと思いますが。
文法や疑似命令は独自な部分もありますがそれを上回る汎用性の高さでモトローラ表記だインテル表記だうんちゃらかんちゃらといった細かい事はもう、個人的には乗り越えてしまいました(書き換えてしまうという意味です)。ターゲット毎に異なるクロスアセンブラなんて・・・(以下略)。無論、私見に過ぎません(念の為)。
20260517 09:22 追記:ロード関連で酷いバグを検出しましたので更新しました(すみません)。
AS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 1 - 2026年05月11日 08時17分21秒
1/ 0 : cpu 6502
2/ 0 : ; 20260304 : hc11f_v1 ⇒ eb6802_v0にバックポート
3/ 0 : ; 20260412 : eb6802_v0 ⇒ eb6502_v0に移植
4/ 0 : ; 20260419 : goコマンドは jsr ABS しか6502はサポートしないのでram上に展開する。
5/ 0 : ; 20260511 : d3コマンドバグ修正
6/ 0 : :
7/ 0 : =$F800 romtop equ $f800
8/ 0 : =$F400 csiop equ $f400 ; $f400-f43f(256バイト境界)
9/ 0 : =$F000 ramtop equ $f000 ; $f000-f3ff
10/ 0 : =$F3FF rambtm equ ramtop+$3ff
11/ 0 : =$F405 pb7 equ csiop+5 ; psd portb7
12/ 0 : =$F401 pbin equ csiop+1 ; ft245 status
13/ 0 : =$F478 ft245 equ $f478 ; $f478
14/ 0 :
15/ 0 : org 0 ; zero page
16/ 0 :
17/ 0 : p0 rmb 2 ; zero page addressing用
18/ 2 : p1 rmb 2
19/ 4 : p2 rmb 2
20/ 6 : p3 rmb 2
21/ 8 : p4 rmb 2
22/ A : p5 rmb 2
23/ C : p6 rmb 2
24/ E : p7 rmb 2
25/ 10 :
26/F000 : org ramtop
27/F000 :
28/F000 : a0 rmb 2 ; pseduo a0
29/F002 : a1 rmb 2
30/F004 : a2 rmb 2
31/F006 : a3 rmb 2
32/F008 : a4 rmb 2
33/F00A : a5 rmb 2
34/F00C : a6 rmb 2
35/F00E : d0 rmb 2 ; pseduo d0
36/F010 : d1 rmb 2
37/F012 : d2 rmb 2
38/F014 : d3 rmb 2
39/F016 : d4 rmb 2
40/F018 : d5 rmb 2
41/F01A : d6 rmb 2
42/F01C : d7 rmb 2
43/F01E : y rmb 2 ; pseduo Y reg
44/F020 : w rmb 2
45/F022 : g rmb 4 ; jsr adrL,adrH ; rts
46/F026 :
47/F800 : org romtop
48/F800 : =$5 dly_cnt equ 5
49/F800 : start:
50/F800 : 20 05 F9 jsr pb7on ; pb7=on
51/F803 : 20 0D F9 jsr dly
52/F806 : 20 FF F8 jsr pb7off
53/F809 : ; cmd待ち
54/F809 : 20 FF F8 cmd jsr pb7off
55/F80C : 20 DA F8 jsr pbin0 ; cmd受信
56/F80F : 20 05 F9 jsr pb7on
57/F812 : C9 D1 cmp #$d1 ; memory dump?
58/F814 : D0 06 bne cmd1
59/F816 : 20 80 F8 jsr memc ; cmd exec
60/F819 : 4C 09 F8 jmp cmd
AS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 2 - 2026年05月11日 08時17分21秒
61/F81C : C9 D2 cmd1 cmp #$d2 ; go?
62/F81E : D0 06 bne cmd2
63/F820 : 20 87 F8 jsr go ; go cmd
64/F823 : 4C 09 F8 jmp cmd
65/F826 : C9 D3 cmd2 cmp #$d3 ; memory write?
66/F828 : D0 06 bne cmd0
67/F82A : 20 3A F8 jsr memw ; memw exec
68/F82D : 4C 09 F8 jmp cmd
69/F830 : C9 D0 cmd0 cmp #$d0 ; machine id?
70/F832 : D0 D5 bne cmd
71/F834 : 20 AE F8 jsr id
72/F837 : 4C 09 F8 jmp cmd
73/F83A : ; memory write
74/F83A : 20 C9 F8 memw jsr adrin ; 戻り値はpとする
75/F83D : A5 02 lda p1
76/F83F : 85 04 sta p2
77/F841 : A5 03 lda p1+1
78/F843 : 85 05 sta p2+1 ; p1をp2にコピー
79/F845 : 20 C9 F8 jsr adrin
80/F848 : A5 02 lda p1
81/F84A : 8D 18 F0 sta d5 ; length = d5
82/F84D : A5 03 lda p1+1
83/F84F : 8D 19 F0 sta d5+1
84/F852 : A0 00 ldy #0
85/F854 : 20 DA F8 memw0 jsr pbin0 ; accb
86/F857 : 91 04 sta (p2),y ; [p2],x <- acc
87/F859 : C8 iny
88/F85A : D0 0D bne memw3
89/F85C : 18 clc
90/F85D : A5 04 lda p2
91/F85F : 69 00 adc #0
92/F861 : 85 04 sta p2
93/F863 : A5 05 lda p2+1
94/F865 : 69 01 adc #$01 ; p2+1 <- p2+1 + $01
95/F867 : 85 05 sta p2+1
96/F869 : 38 memw3 sec
97/F86A : AD 18 F0 lda d5
98/F86D : E9 01 sbc #1
99/F86F : 8D 18 F0 sta d5
100/F872 : AD 19 F0 lda d5+1
101/F875 : E9 00 sbc #0
102/F877 : 8D 19 F0 sta d5+1
103/F87A : 0D 18 F0 ora d5
104/F87D : D0 D5 bne memw0
105/F87F : 60 memw2 rts
106/F880 :
107/F880 : ; memory dump
108/F880 : 20 C9 F8 memc jsr adrin ; adrs = p1
109/F883 : 20 E5 F8 jsr dump
110/F886 : 60 rts
111/F887 : ; go
112/F887 : 20 C9 F8 go jsr adrin ; adrs = p1
113/F88A : A9 20 lda #$20 ; jsr命令をg[]のramに書く
114/F88C : 8D 22 F0 sta g
115/F88F : A5 02 lda p1
116/F891 : 8D 23 F0 sta g+1 ; adrL
117/F894 : A5 03 lda p1+1
118/F896 : 8D 24 F0 sta g+2 ; adrH
119/F899 : A9 60 lda #$60 ; rts命令をram上のg[3]に書く
120/F89B : 8D 25 F0 sta g+3
AS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 3 - 2026年05月11日 08時17分21秒
121/F89E : 20 22 F0 jsr g ; subroutineとして呼び出し
122/F8A1 : AD 01 F4 go0 lda pbin ; ft245 rxf?
123/F8A4 : 29 10 and #$10
124/F8A6 : D0 F9 bne go0
125/F8A8 : A9 00 lda #0
126/F8AA : 8D 78 F4 sta ft245 ; 常に00を返す
127/F8AD : 60 rts
128/F8AE :
129/F8AE : id:
130/F8AE : A9 1E lda #30 ; 30文字固定
131/F8B0 : 8D 1E F0 sta y
132/F8B3 : A2 00 ldx #0 ; 文字列オフセット x=0
133/F8B5 : AD 01 F4 id0 lda pbin
134/F8B8 : 29 10 and #$10
135/F8BA : D0 F9 bne id0
136/F8BC : BD 34 F9 lda tgt_id,x
137/F8BF : 8D 78 F4 sta ft245
138/F8C2 : E8 inx
139/F8C3 : CE 1E F0 dec y
140/F8C6 : D0 ED bne id0
141/F8C8 : 60 rts
142/F8C9 :
143/F8C9 : adrin:
144/F8C9 : 20 DA F8 jsr pbin0 ; 上位2バイトは読み飛ばす
145/F8CC : 20 DA F8 jsr pbin0
146/F8CF : 20 DA F8 jsr pbin0 ; 戻り値はaccbに
147/F8D2 : 85 03 sta p1+1 ; ゼロページ、little endianなので
148/F8D4 : 20 DA F8 jsr pbin0
149/F8D7 : 85 02 sta p1 ; レジスタ返しが出来ないのでゼロページポインタ p1が戻り値(little endian)
150/F8D9 : 60 rts
151/F8DA :
152/F8DA : AD 01 F4 pbin0 lda pbin
153/F8DD : 29 20 and #$20
154/F8DF : D0 F9 bne pbin0
155/F8E1 : AD 78 F4 lda ft245 ; 受信データ <- acc
156/F8E4 : 60 rts
157/F8E5 :
158/F8E5 : A9 00 dump lda #0 ; == 256
159/F8E7 : 8D 1E F0 sta y
160/F8EA : A0 00 ldy #0
161/F8EC : AD 01 F4 dump0 lda pbin
162/F8EF : 29 10 and #$10
163/F8F1 : D0 F9 bne dump0
164/F8F3 : B1 02 lda (p1),y
165/F8F5 : 8D 78 F4 sta ft245 ; 送信データ
166/F8F8 : C8 iny
167/F8F9 : CE 1E F0 dec y ; 256byteなので
168/F8FC : D0 EE bne dump0
169/F8FE : 60 rts
170/F8FF :
171/F8FF : 48 pb7off pha
172/F900 : A9 80 lda #$80 ; pb7 led off
173/F902 : 4C 08 F9 jmp pb7set
174/F905 : 48 pb7on pha
175/F906 : A9 00 lda #0 ; pb7 led on
176/F908 : 8D 05 F4 pb7set sta pb7
177/F90B : 68 pla
178/F90C : 60 rts
179/F90D :
180/F90D : 48 dly pha
AS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 4 - 2026年05月11日 08時17分21秒
181/F90E : A2 05 ldx #dly_cnt
182/F910 : A9 00 dly0 lda #0
183/F912 : 8D 20 F0 sta w
184/F915 : 8D 21 F0 sta w+1
185/F918 : AD 21 F0 lda w+1
186/F91B : D0 03 bne dly1
187/F91D : CE 20 F0 dec w
188/F920 : CE 21 F0 dly1 dec w+1
189/F923 : D0 FB bne dly1
190/F925 : AD 20 F0 lda w
191/F928 : F0 05 beq dly2
192/F92A : CE 20 F0 dec w
193/F92D : D0 F1 bne dly1
194/F92F : CA dly2 dex
195/F930 : D0 DE bne dly0
196/F932 : 68 pla
197/F933 : 60 rts
198/F934 :
199/F934 : ; 123456789012345678901234567890
200/F934 : 65 62 36 35 30 32 5F 76 30 tgt_id fcc 'eb6502_v0:20260511E01 '
F93D : 3A 32 30 32 36 30 35 31 31
F946 : 45 30 31 20 20 20 20 20 20
F94F : 20 20 20
201/F952 :
202/FFFC : org $fffc
203/FFFC : 00 F8 resvec fdb start ; reset vector
204/FFFE :
205/FFFE : end
AS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 5 - 2026年05月11日 08時17分21秒
Symbol Table (* = unused):
--------------------------*A0 : F000 C | *A1 : F002 C |
*A2 : F004 C | *A3 : F006 C |
*A4 : F008 C | *A5 : F00A C |
*A6 : F00C C | ADRIN : F8C9 C |
*ARCHITECTURE : "x86_64-unknown-linux" - |
*CASESENSITIVE : 0 - | CMD : F809 C |
CMD0 : F830 C | CMD1 : F81C C |
CMD2 : F826 C | *CONSTPI : 3.141592653589793 - |
CSIOP : F400 - | *D0 : F00E C |
*D1 : F010 C | *D2 : F012 C |
*D3 : F014 C | *D4 : F016 C |
D5 : F018 C | *D6 : F01A C |
*D7 : F01C C |
*DATE : "2026\-027\-071\-07605\-026\-100\-12011\-026\-105\-091" - |
DLY : F90D C | DLY0 : F910 C |
DLY1 : F920 C | DLY2 : F92F C |
DLY_CNT : 5 - | DUMP : F8E5 C |
DUMP0 : F8EC C | *FALSE : 0 - |
FT245 : F478 - | G : F022 C |
GO : F887 C | GO0 : F8A1 C |
*HAS64 : 1 - | ID : F8AE C |
ID0 : F8B5 C | *LISTON : 1 - |
*MACEXP : 7 - | MEMC : F880 C |
MEMW : F83A C | MEMW0 : F854 C |
*MEMW2 : F87F C | MEMW3 : F869 C |
*MOMCPU : 6502 - | *MOMCPUNAME : "6502" - |
*NESTMAX : 100 - | *P0 : 0 C |
P1 : 2 C | P2 : 4 C |
*P3 : 6 C | *P4 : 8 C |
*P5 : A C | *P6 : C C |
*P7 : E C | PB7 : F405 - |
PB7OFF : F8FF C | PB7ON : F905 C |
PB7SET : F908 C | PBIN : F401 - |
PBIN0 : F8DA C | *RAMBTM : F3FF - |
RAMTOP : F000 - | *RELAXED : 0 - |
*RESVEC : FFFC C | ROMTOP : F800 - |
START : F800 C | TGT_ID : F934 C |
*TIME : "08\-026\-103\-12617\-027\-120\-12221\-025\-089\-110" - |
*TRUE : 1 - | *VERSION : 142F - |
W : F020 C | Y : F01E C |76 symbols
38 unused symbolsAS V1.42 Beta [Bld 270] - Source File eb6502_t3.asm - Page 6 - 2026年05月11日 08時17分21秒
Code Pages:
----------STANDARD (0 changed characters)
1 code page
0.03 seconds assembly time
207 lines source file
2 passes
0 errors
0 warnings

6502は$20がJSRであり,アドレスは下位、上位の順(インテル系と同じ)なのでモトローラ脳の当方としては一瞬、???と思ったりしますが大丈夫です。同様にRTSは$60であります(頭切り替えませんと)。

あんまり意味無いですがホストとのインタフェース時間把握も兼ねてやってみました。やはりプロセサ性能差が当然ながら出ます(あたりまえ)。

IO領域のダンプです。ACIAは$F490なので $43(マスタリセット)、$15(モード設定、割込み無し)を書込後にTDRE(bit1)=1となる事で簡易的に確認しました。
20260517 20:55 追記:13分周回路を実装し、usb-serialのターミナル(GTKTerm)で38.4k,9.6kbpsにて対向試験・確認を行いました。
#尚HD63B50(MC6850)なので某W65C51の如き欠陥はありませんので(びっくり)・・・
一番最初の行にある通り cpu 6502(65c02ではなく)と宣言しているのでオリジナルの6502の命令だけで組みました(braではなくjmp命令なのはその為です)。
尚、6502のJSRはABSしか無い様なので苦し紛れでGoはRAM上に $20,adrL,adrH,$60 とデータを置いてからサブルーチンコールしています(他に方法を思いつけなかったので:)。
あと、RAM上にプログラムロード・実行する場合はasl-1.42でアセンブル後、p2hexではなくp2bin ファイル名でバイナリファイルを作成( .bin)し、rpt(retro uP toolの略のつもり:)なるホスト上のpythonプログラムからそのバイナリをロード(実際にはdbaがwriteコマンドを実行)し、その後 実行ボタンでロードしたアドレスからサブルーチンと見做して実行されます。

上記のダイアログはロードボタン(画面下の右から2番めの青いボタン)を押下すると開くので *.bin ファイル(上記だと eb6502_io.bin)を選択すれば指定したアドレスにロードされます。

この辺の作法はターゲット非依存でどのターゲットも同じ作法なので覚えるのが面倒臭い系・車輪の再発明は極力少なくしたい系(猫型人間故:)にとっては有り難いと考えています・・・毎回天地創造物語を書き起こすのもエネルギー要るので(でもコピーは嫌という天の邪鬼なもんで・・・)。
ホストとはCDC-ACMでFT245RNで接続されているのでそれなりの処理時間で動作します。
8.まとめ
・eb6502_v0 の実装ボードを組立、動作確認を行いました(dba迄)。
・今回はハズレに当たらなかった様ですが、DIP40ピンの足折り曲げ案件が発生し、つまらないトラブルを起こしてしまいました(視力矯正強化、照明強化、体調管理など対策が必要:)・・・
・これでノスタルジーシリーズ(勝手に命名)の5枚目が完了したので一段落かと思っております(縛り企画含めて)。
前のトピック:
次のトピック:
関連するトピック:
基板組立(目次・まとめ、2026年6月24日時点) - aki_iic’s blog
*1:address >= ^hF000) & (address <= ^hF3FF
*2:address >= ^hF400) & (address <= ^hF43F
*3:address >= ^hF800) & (address <= ^hFFFF
*4:address >= ^hF4A0) & (address <= ^hF4AF
*5:address >= ^hF478) & (address <= ^hF47F) & (e & r_w
*6:address >= ^hF478) & (address <= ^hF47F) & (e & !r_w
*7:address >= ^h0000) & (address <= ^hEFFF
*8:address >= ^hF480) & (address <= ^hF48F) & (r_w
*9:address >= ^hF480) & (address <= ^hF48F) & (!r_w
*10:address >= ^hF490) & (address <= ^hF49F