IC・トランジスタで出来たコンピューターを設計・製作するためのブログ

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

KM-Z80 midi 進捗:CP/M [PIC]

2019年9月25日

KM-Z80 midi 用のアプリケーション第二弾として、CP/KM midi (CP/M 2.2 実行環境)を製作している。特徴は、次の通り。

1)CP/M ver 2.2 (54k system) が走る
2)KM-Z80 midi 上で走る、スタンドアローン設計
3)ディスプレイは液晶表示(NTSCビデオは非対応)
4)RAM領域に56K bytesを割り当て
5)USBメモリー上のディスクイメージファイルを仮想ドライブとして使用
6)仮想ドライブは、1954K bytesの物を4つ割り当て

実行中の様子。MBASICから、STARTREKを起動した。
2019-09-24-start.jpg

KM-Z80 midi 進捗:液晶表示 [PIC]

2019年9月23日

KM-Z80 midi (MZ-80K 互換機)をバージョンアップし、2019年9月現在、ver 0.4としている。ver 0.1からの変更は、以下の通り。

 ・アプリケーションのロード機能を追加。
 ・緑LEDをRB0に繋がず、トランジスターなどを用いてRB1から制御するようにした。
 ・液晶(ILI9341・SPI接続)表示にも対応。
 ・RB5とRB15の機能を入れ替えた。
 ・CMT機能の呼び出しの際、002xhでなく04xxhを呼び出しているプログラムに対応。
 ・FORMなど、分割ファイルの読み込みを行なっているプログラムに対応。
 ・プログラムセーブ時の不具合を解消。
 ・ソースコードのコンパイルにおいて、XC32 ver 1.32だけでなく上位のバージョンの XC32 コンパイラーにも対応。
 ・回路図微修正(LCDのバックライト電圧を3.3vに)。

写真は、SPI接続のILI9341液晶(3.2 インチ)を繋いで実行している所。
2019-09-23-bugfire.jpg

KM-Z80 midi 制作中 [PIC]

2019年7月15日

KM-Z80 の新しいシリーズ、midiを制作中。

2019-07-15-kmz80midi1.png

特徴は、以下の通り:

1)Sharp MZ-80K 互換機
2)PIC32MX270F256Bを使用した、1チップ設計
3)USB メモリーを使って、プログラムのロードとセーブが可能
4)キーボードを内蔵しており、外付けキーボード(PS/2など)が不要
5)NTSC ビデオ出力(モノクロ;40x25文字)
6)将来的に、液晶表示にも対応予定
7)将来的に、MachiKania BASICも実行可能予定

MachiKaniaで始めるオブジェクト指向プログラミング(その1) [MachiKania]

2019年5月5日

MachiKania ver 1.2から、使用しているBASICコンパイラーがオブジェクト指向に対応しています。MachiKaniaでは、クラスベースのオブジェクト指向プログラミングを採用しています。一つ前の記事では、クラスの使い方について書きました。ここでは、どの様にクラスを作製するかについて、述べます。この記事では、今までオブジェクト指向プログラミングを行なった事がない人でも分かりやすいような説明を、試みてみます。

クラスを作製し利用すると、何がどの様に便利になるのでしょうか。幾つか、挙げてみます。

1. 機能ごとにプログラムが抽象化・パッケージ化され、プログラム全体が見やすくなる
2. よく使う機能をクラスとして作製すれば、再利用が容易になる
3. 作製したクラスをライブラリー登録すれば、いつでも使える

最低でも、これだけの長所が挙げられます。一つ一つ見ていきましょう。

MachiKaniaでクラスを使う [MachiKania]

2019年4月5日

MachiKania ver 1.2に於いて、使用しているBASICコンパイラーがオブジェクト指向に対応しました。MachiKaniaではこれまで、黎明期のパソコンで使われた行番号形式のBASICから、構造化プログラミングに対応したBASICまでを扱ってきました。これらのプログラミング形式に加えて、今後はオブジェクト指向プログラミングが出来るようになります。

さて、MachiKaniaのユーザーの皆様の中には、オブジェクト指向プログラミングに対してなじみが無いという方もいらっしゃると思います。この記事では、オブジェクト指向プログラミングとは何かに付いては置いておいて、この新しい機能を使うとMachiKaniaがどんな風に便利になるのかについて、紹介したいと思います。オブジェクト指向プログラミングになじみが深い方々も、MachiKania BASICではそれをどの様に扱うのか、参考にして頂けたらと思います。

MachiKaniaで採用しているオブジェクト指向プログラミングは、クラスベースと呼ばれるものです。従って、この新しい機能を使うには、クラスをどの様に使うかという理解が必要です。ここで、オブジェクト指向プログラミングになじみのない方は、「クラスをどの様に使うか」と言われてもと思うかも知れませんが、とにかく「クラス」なる物があって、それをどう使うのかが大事だということだけ理解しておいて下さい。

MachiKania BASIC 高速化テクニックあれこれ [MachiKania]

2019年3月27日

MachiKania BASICは、インタープリターではなくコンパイラーです。なので、かなり高速に動作します。しかしながら、もっと速くコードの実行を行ないたいという場面もあるかも知れません。この記事では、開発者だから分かるBASICコード高速実行のテクニックについて、幾つかを紹介します。

MachiKania BASICのオブジェクト指向化について [MachiKania]

2019年3月25日

MachiKania ver 1.2以降では、BASICでのコーディングに於いて、オブジェクト指向プログラミングが行えるようになった。ここでは、その実装方法について、メモを残しておきたい。

MachiKania BASICでは、クラスベースのオブジェクト指向プログラミングを採用している。その文法などについては、ダウンロードファイルの「class.txt」ファイルを参照して頂きたい。

あのCMのメロディー [MachiKania]

2018年5月26日

関西電気保安協会のメロディーを、MachiKaniaで。Type Z, Type N, 及び KM-BASIC webで再生及びひらがな表示が出来ます。

2018-05-26-canvas.png

print
music "GGEDDGEDGGAGAzA"

USEPCG
PCG 0x80,0x2020f42a,0x4a48b000
PCG 0x81,0x10102020,0x50528c00
PCG 0x82,0x08087e04,0x24403c00
PCG 0x83,0x00888482,0x82502000
PCG 0x84,0x0000807e,0x00000000
PCG 0x85,0x0e740a10,0x10080600
PCG 0x86,0x107c087e,0x24403c00
PCG 0x87,0x80be88be,0x88bcba00
PCG 0x88,0x207c203c,0x6ab26400
PCG 0x89,0x0008080c,0x38483400

gosub JPN
for j=1 to 14
  gosub wm
  gosub JPN
next
label waitk
if inkey()=0 then waitk
end

DATA 0x8180,0,0,0x82,0,0x83,0,0x84,0
DATA 0x85,0,0x81,0,0x86,0
DATA 0x87,0,0x84,0,0x88,0,0x81,0
DATA 0x8986,0,0x84,0,0x8380,0

label JPN
d=read()
if d=0 then return
label JPN2
  print chr$(d % 256);:d=d/256
if 0<d then JPN2
goto JPN

label wm
i=music()
label waitm2
wait 1
if i=music() then waitm2
return

ハンダゴテを買い換え [一般的なこと]

2017年5月20日

ハンダゴテが壊れたので、買い換えることになった。壊れたハンダゴテは、3年半前に買った物。新たに買ったのはHAKKOのFX600というタイプ。amazon.comで見つけた、日本製のハンダゴテ。
2017-05-20-1.jpg

PIC32MXで、USBメモリーを扱う [PIC]

2017年4月1日

ちょっと訳あって、マイコンからUSBメモリーへのアクセスの方法を探っている。この手のことをする場合、最近はほとんどMicrochip社のPIC32MXを使っているので、今回もこれでどうやるのかを探ってみた。

回路は、以下の通り。なお、パスコンはすべて0.1 μFで。
2017-04-01-schematic.png
<<前の記事