MC68008 Card
記事をクリップするクリップ追加
書庫GS
カテゴリその他コンピュータ
2018/12/3(月) 午後 9:23
■MC68008 Card
Apple II用のMC68000カードは何種類かありますが、回路図が公開されていて部品数も少ない、ドイツの MC Magazine に紹介されたカードを複製しました。
http://www.inf.fu-berlin.de/inst/ag-ki/rojas_home/documents/pub/68008_Karte.pdf
動作不安定で苦労しましたが、リセット回路を追加することで安定するようになりました。
元の回路では、Apple II のリセットと MC68008 のリセットが同じになっており、電源投入時に MC68008 側のリセットベクターが不定になるため安定しないものと思われます。
$CN00 (N=Slot) で、6502と68008が切り替わります。
メモリは Apple II 本体と共用です。
ドイツでは500枚ほど売れたようですが、ほとんど情報がありません。
ソフトがないので、S-C macro cross assembler 68000 で開発を進めています。
S-C assembler は DOS3.3 ベースで、Integer BASIC の代わりにアセンブラを常駐させる面白い形式です。
■Z-80 Softcard
68008カードから6502ルーチンを呼ぶ方法を調べるため、Z-80 Softcard の動作を確認します。
Z-80 への切り替えは、$CN00 (N=Slot) に書き込むことで行われます。
Apple II 本体では、下記コードが動き続けています。
03C0:
START:
SETREG:
SAVE:
Z80から 6502 の切り替えは、0EN00Hへの書き込みで行われます(これは、Apple II では $CN00 です)。
0F045Hから0F048H にセットしたい 6502 のレジスタ値を書き込み、0F3D0HにApple II側のスタートアドレスを設定し、0EN00Hへの書き込みを行うと、6502のサブルーチンが実行されます。
Z-80 addr 6502 addr Purpose 0F045H $45 6502 A register pass area 0F046H $46 6502 X register pass area 0F047H $47 6502 Y register pass area 0F048H $48 6502 P register pass area 0F049H $49 Contains 6502 stack pointer on exit 0F3DEH Address of Z-80 Softcard here as 0EN00H 0F3D0H Address of 6502 subroutine to be called stored here $3C0 Start address of 6502-to-Z80 mode switching routine. 6502 RESET, NMI and BREAK vectors point here. A JMP to this address puts the 6502 on "hold" and returns to Z-80 mode.
参考
http://www.stjarnhimlen.se/apple2/Apple.CPM.ref.txt
http://www.applelogic.org/files/MSZ8MANUAL.pdf
■6502 subroutine call from MC68008 card
Z-80ソフトカードの基本動作がわかったので、MC68008 カードから 6502 コードを呼べるようにしてみます。
Apple II 側のコード
MC68008のコード
Apple II のキー入力を D0 レジスタにコピーし、画面に表示することができました。
Apple IIGS
https://blogs.yahoo.co.jp/ushi_cow
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=10
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=23
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html
0 件のコメント:
コメントを投稿