きょうのかんぱぱ

デジモノが大好きなかんぱぱの日記です。

Nano Pi NEOで遊んでみた

  • 投稿日:
  • by
  • Category:

Nano Pi NEOが秋月電子さんで発売になったので試しに買ってみました。

仕様はNanoPi NEOのWikiにありますが、非常にコンパクトにまとまっています。かわいいです。

nanopi_neo.jpg

ネットワークには100Mbpsの有線LANが直接接続できます。また、コンソール用のUARTはピンヘッダが最初からハンダ付けされていますので、手持ちのUSBシリアル変換基板を接続してコンソールとして使えます。私はスイッチサイエンスさんのUSBシリアル変換基板を接続して、Windows PCのTeratermでコンソールとしました。電源は5V2Aとのことですので、microUSBコネクタに5V2Aが供給できる電源を接続しました。

なお、Raspberry Piとは異なりHDMI出力はありません。そのぶんシンプルになっていると思います。私はコンソールからログインできれば十分なので、これでまったく問題ありません。

DragonBall-EZで遊んでみた(初めてのプログラム編)

  • 投稿日:
  • by
  • Category:

DragonBall-EZ(MC68EZ328)に64KByteのメモリ空間ができましたので何かプログラムを動かしてみます。

ちょうどMC68EZ328ADSTOOLS2_0.zipの中にメモリテストプログラムがありましたので、これを実行してみます。

今回アセンブラはEASy68Kを使いました。実は今回のDragonBall-EZで遊ぶきっかけはこのサイトのフォーラムで知った情報なのです。

ソースコードは少しの修正だけでEASy68Kでアセンブルすることができました。

メモリ空間が0x0000〜0x0FFFFまでですので、データは0x01000〜、プログラム本体は0x02000〜とし、0x04000〜0x0FFFFまでをメモリテストの対象としました。

アセンブルを行って生成したSフォーマットファイルをBBUG.EXEで読み込ませます。

bbug_memtest1.png

読み込んだあとにプログラムの先頭アドレスの0x2000から実行します。

bbug_memtest2.png

無事PASSと表示されました。実行後のメモリを見ると昇順に値が書き込まれていることがわかります。

これである程度のプログラムを動かすことができるようになりました。

BBUG.EXEは最低限の機能しかありませんので、この次はもう少し高機能なモニタプログラムを作って動かしてみたいと思います。

あとはフラッシュメモリとかDRAM(残念ながらMC68EZ328はSDRAMは使えません)とかを接続すればモニタを固定して広いメモリ空間を使うことができるはずです。

でも、その前におきまりのLチカをしないといけないですね。

DragonBall-EZで遊んでみた(SRAM接続編)

  • 投稿日:
  • by
  • Category:

DragonBall-EZ(MC68EZ328)のブートストラップモードとBBUG.EXEを使うことで、メモリダンプやプログラムを実行する機能は使えるようになりましたが、肝心なプログラムを置くためのメモリがありません。

プログラムを動かすためにはCPUに何らかの外部メモリ(SRAMやDRAMやフラッシュメモリ)を接続する必要があります。

3.3Vで動くメモリはないかなと探したところ、手元に秋月電子で販売されている3.3V電源で使える256Kbit(32K×8bit)のSRAMがありましたのでこれをDragonBallに接続してみました。

このSRAMを2個使うことで16bitバスとします。1個が下位8ビット、もう1個は上位8ビットとなります。メモリ空間は0x0000〜0xFFFFの64KByteとなります。

mc68ez328_sram1.jpg

DragonBall-EZで遊んでみた(BBUG.EXE編)

  • 投稿日:
  • by
  • Category:

ひょんなところからMC68EZ328(DragonBall-EZ)を手にいれました。昔Palm PDAで使用されていた68KのCPUです。

MC68EZ328CPU.jpg

このCPUはブートストラップモードがあり、CPUに水晶をつなぐだけで、シリアルポートにPCを接続して、BBUG.EXEというDOSプログラムを使ってメモリの表示、メモリの変更、プログラムのロード、および実行を行うことができます。外付けメモリが全く無くても動くのが面白いところです。まずはCPU単体を動かし、メモリを接続し、プログラムをロードして実行するまでがシリアルポートとBBUG.EXEだけで済んでしまうのです。大掛かりな開発ツールや専用の開発用機器は不要です。

BBUG.EXEはMC68EZ328ADSTOOLS2_0.zipというファイルに含まれています。www.nxp.comのサイトで検索すれば見つかります。

DragonBall-EZのユーザーズマニュアルやドキュメントもwww.nxp.comから入手することができます。

BBUG.EXEを動かすための回路図は以下の通りです。簡単です。

mc68ez328_bbug_curcuit.jpg

ZK-80 mini (PIC32MX1チップTK-80互換機)で書き初めをしてみた

  • 投稿日:
  • by
  • Category:

あけましておめでとうございます。新春初プログラミングは8080アセンブラでした。

私はZK-80 miniで動かしましたが、TK-80でも動くと思います。

プログラムリストは以下の通りです。8000番地から実行してください。

                                ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                ;; ZK-80 mini(TK-80 compatible)
                                ;; Happy New Year 2007 PROGRAM
                                ;; 2017/1/1 by @kanpapa
                                ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                ORG    8000H
8000: 01 30 80                  START:	LXI	B,SDATA1
8003: 1E 17                     	MVI	E,17H
8005: 21 F8 83                  LOOP1:	LXI	H,83F8H
8008: 16 08                     	MVI	D,08H
800A: C5                        	PUSH	B
800B: 0A                        LOOP2:	LDAX	B
800C: 77                        	MOV	M,A
800D: 23                        	INX	H
800E: 03                        	INX	B
800F: 15                        	DCR	D
8010: C2 0B 80                  	JNZ	LOOP2
8013: CD 1F 80                  	CALL	WAIT
8016: C1                        	POP	B
8017: 03                        	INX	B
8018: 1D                        	DCR	E
8019: C2 05 80                  	JNZ	LOOP1
801C: C3 00 80                  	JMP	START
                                ;;
                                ;; WAIT ROUTINE
801F: C5                        WAIT:	PUSH	B
8020: D5                        	PUSH	D
8021: 16 FF                     	MVI	D,0FFH
8023: 06 00                     WAIT2:	MVI	B,0
8025: 05                        WAIT3:	DCR	B
8026: C2 25 80                  	JNZ	WAIT3
8029: 15                        	DCR	D
802A: C2 23 80                  	JNZ	WAIT2
802D: D1                        	POP	D
802E: C1                        	POP	B
802F: C9                        	RET
                                ;; SEGMENT DATA
8030: 00 00 76 77 73 73 6E 00   SDATA1:	DB	0,0,76H,77H,73H,73H,6EH,0	;; HAPPY
8038: 54 79 7E 00 6E 79 77 50   	DB	54H,79H,7EH,0,6EH,79H,77H,50H	;; NEW YEAR
8040: 00 5B 5C 06 27 00 00 00   	DB	0,5BH,5CH,06H,27H,0,0,0,0	;; 2007
8049: 76 77 73 73 6E 00         	DB	76H,77H,73H,73H,6EH,0		;; HAPPY
                                	END

ZK-80 mini (PIC32MX1チップTK-80互換機)を作ってみた

  • 投稿日:
  • by
  • Category:

NECの8ビットワンボードマイコンTK-80について調べていたところ、ZK-80 miniというPIC32MX 1チップで実装したTK-80互換機の製作記事をみつけました。PIC32であればTK-80ぐらいの仕組みは作れるとは思っていましたが、実際に動作しているのには感心しました。しかも回路図も非常にシンプルでさすがです。

電子ブロック工房 ZK-80 mini (PIC32MXを使った1チップTK-80互換機)

この記事をみて、TK-80のキーボードをそのまま保管していたことを思い出しました。実は工場ハックというイベントで偶然TK-80のキーボードを手にいれていたのです。
これが使えるとよりTK-80に近い感覚で使えるので、ますます楽しくなるのではと思ったのです。

まずは、ZK-80 miniをブレッドボードで組み立てました。配線は多いように見えますが大したことはありません。

zk80_tk80kbd_1.jpg

6802ワンボードコンピュータELIS68を動かしてみた(5)GAME動作編

  • 投稿日:
  • by
  • Category:

GAMEが動き始めたELIS68ですが、残念ながら手持ちのエンサクロペディア Volume2にはGAMEの全4回の連載のうち2回分しか掲載されておらず、続巻のエンサイクロペディア Volume3は持っていません。こういうときは国立国会図書館が頼りです。

国立国会図書館サーチを使うと蔵書の検索を行うことができます。GAMEの連載は以下の4つのようです。

  • ASCII 2(7)(13) 1978-07 新言語"GAME"
  • ASCII 2(8)(14) 1978-08 GAME インタプリタの研究
  • ASCII 2(9)(15) 1978-09 行編集機能とディスコンパイラー
  • ASCII 2(10)(16) 1978-10 6800用セルフアセンブラ

おまけに、68系のGAMEコンパイラの記事も見つけました。

  • ASCII 5(5)47 1981-05 H68/TR GAME68コンパイラ

さらに、ELIS68の連載5回目のQ&Aの記事も見つかりました。

  • ASCII 3(12)(30) ELIS68 Q&A 編集部

これまで何度か国会図書館は利用していますので、早速出かけて該当の記事を複写していただきました。

elis68_game5.jpg

6802ワンボードコンピュータELIS68を動かしてみた(4)GAME移植編

  • 投稿日:
  • by
  • Category:

ELIS68は6800用のあらゆるソフトを走らせるために作られたスーパーマシンです。MIKBUG 2.0だけ動かして終了というわけではありません。ELIS68のマニュアルにはGAME(ここではGAMEIII)というインタプリター言語を動かすための手順が載っています。

GAMEは大西 博氏が開発し、月刊アスキーの1978年7月号から10月号まで連載されていました。たまたま手元にあるエンサイクロペディアアスキーVolume2にも掲載されていました。

elis68_game0.jpg

GAMEは文法的にはVTL(Very tiny language)に近く、機能的にはTiny BASICにASCII文字や16進数の処理やメモリアクセスの機能が加わったインタープリター言語です。CPUが非力でメモリ空間が小さい昔の8ビットマイコンにおいては、このような小さい言語が活躍していました。GAME言語でゲームを書くようなこともしていました。

6802ワンボードコンピュータELIS68を動かしてみた(2)部品収集編

  • 投稿日:
  • by
  • Category:

ELIS68の基板とマニュアルを入手したところで必要なパーツを洗い出します。

  • U1 MC6802 Microprocessor with clock and optional RAM (手持ちあり)
  • U2 MC6846L1 ROM-I/O-Timer
  • U3 MCM6810 128 x 8-bit static random access memory
  • U4 MC6850 Asynchronous communications interface adapter
  • U5 MC6821 Peripheral interface adapter (手持ちあり)
  • U6 74LS00 Quad 2-Input NAND Gate(手持ちあり)
  • U7 74LS08 Quad 2-Input AND Gates(手持ちあり)
  • U8 MC14526 Presettable 4-Bit Down Counters
  • U9 MC14024 7-Stage Ripple Counter
  • U10 MC1458 Dual Operational Amplifiers
  • U12 MC14583 Dual Schmitt Trigger
  • U13 74LS138 3 to 8 Decoder/Demultiplexer(手持ちあり)
  • U16-U31 MCM2114 4096bit (1024 x 4bits) Static RAM

74系のデバイスは手持ちもありますし、そんなに入手は難しくはありません。
やはり難しいのは68系の周辺デバイスとメモリでしょうか。

メモリICのMCM2114を試しにヤフオクで検索したところ、同等品のNEC uPD2114LC-5 (SRAM nMOS / 4K 18Pin DIP) [4個組]が500円でしたので、こちらで必要数が入手できました。

elis68_2114.jpg