2012-01-29
Apple Education Event、Land of Lisp
書籍, 購入, 感想, lisp, プログラム, 動画 | |
![]()
随分遅くなりましたが、本年も宜しくお願いします。
Apple Education Event, January 2012 http://events.apple.com.edgesuite.net/1201oihbafvpihboijhpihbasdouhbasv/event/index.html Apple Keynotes - iTunes Podcast http://itunes.apple.com/jp/podcast/apple-keynotes/id275834665
1月19日、Apple はニューヨークで開催したメディアイベントで、「iBook 2」、電子書籍作成アプリ「Books Author」、iOS向けに「iTunes U」のアプリを発表しました。
早速、iBooks Author をダウンロードし、試してみました。ウィジェットを追加できる仕組みは、可能性を感じますね。OS 純正の Calculator.wdgt を追加して遊んでみました。ウィジェクト作成ソフト Dashcode も随分進歩しています。すっかり、使い方を忘れてしまったので、
ヘルプ/Dashcode User Guide ▼ デュアルプロダクトWebアプリケーションチュートリアル ▼ プロジェクトを開始する ▼ ウィジェットまたはWebアプリケーションのユーザインターフェイスをデザインする ▼ テストする/共有する Webアプリケーションを動作形式で保存する
を拾い読みし、基本操作を学びました。
Dashcode で Dashboard のテンプレートから、カスタムを選びます。プロジェクトウインドウ左側 (ナビゲータ) の '実行と共有' をクリックします。ウインドウ右下に 'ディスクに保存…' ボタンが現れるのでクリックすると、拡張子が wdgt 形式のファイルで保存されます。iBooks Author では、中央の 'ウィジェット' ボタンから 'HTML' を選択します。現れたエリアにウィジェットをドラッグ・ドロップすれば追加できます。プレビューするには、iPad が必要になります。拙作 YKMinesweeper.wdgt を作り直してみたいですね!
Land of LISP: Learn to Program in Lisp, One Game at a Time!
- 作者: Conrad, M.D. Barski
- 出版社/メーカー: No Starch Pr
- 発売日: 2010/11/03
- メディア: ペーパーバック
- クリック: 26回
- この商品を含むブログ (4件) を見る
以前にも書いたように、Land of Lisp [ asin:1593272812 ] を読書中です。サンプル orc-battle.lisp を sbcl で実行してみました。sbcl については Homebrew
brew update brew install sbcl
を利用してインストールしました。
sbcl を起動し、 load 関数で orc-battle.lisp を読み込み、(orc-battle) で実行しました。
~ $ sbcl This is SBCL 1.0.53, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. * (load "~/lisp/Land of Lisp/orc-battle.lisp") T * (orc-battle) You are a valiant knight with a health of 30, an agility of 30, and a strength of 30 Your foes: 1. (Health=3) A fierce BRIGAND 2. (Health=6) A malicious hydra with 6 heads. 3. (Health=2) A fierce BRIGAND 4. (Health=6) A slime mold with a sliminess of 4 5. (Health=6) A wicked orc with a level 6 club 6. (Health=7) A fierce BRIGAND 7. (Health=1) A wicked orc with a level 8 club 8. (Health=8) A fierce BRIGAND 9. (Health=10) A malicious hydra with 10 heads. 10. (Health=4) A slime mold with a sliminess of 5 11. (Health=7) A malicious hydra with 7 heads. 12. (Health=4) A fierce BRIGAND
キーの入力状態になるのですが、入力状態の前に出力した文字列が表示されません。sbcl の場合 (read) を呼ぶ前に (force-output) を呼ぶ必要があります。
(defun player-attack () (fresh-line) (princ "Attack style: [s]tab [d]ouble swing [r]oundhouse:") (force-output) (case (read) (s (monster-hit (pick-monster) (+ 2 (randval (ash *player-strength* -1))))) (defun pick-monster () (fresh-line) (princ "Monster #:") (force-output) (let ((x (read)))
上記のように (read) の前に、(force-output) を2箇所、追加しました。これで正しく動作しました。
* (orc-battle) You are a valiant knight with a health of 30, an agility of 30, and a strength of 30 Your foes: 1. (Health=3) A fierce BRIGAND 2. (Health=6) A malicious hydra with 6 heads. 3. (Health=2) A fierce BRIGAND 4. (Health=6) A slime mold with a sliminess of 4 5. (Health=6) A wicked orc with a level 6 club 6. (Health=7) A fierce BRIGAND 7. (Health=1) A wicked orc with a level 8 club 8. (Health=8) A fierce BRIGAND 9. (Health=10) A malicious hydra with 10 heads. 10. (Health=4) A slime mold with a sliminess of 5 11. (Health=7) A malicious hydra with 7 heads. 12. (Health=4) A fierce BRIGAND Attack style: [s]tab [d]ouble swing [r]oundhouse:
終了するには、(sb-ext:quit) を実行します。
You have been killed. Game Over. NIL * (sb-ext:quit) ~ $
sbcl ではなく clisp も試したくなったのですが、Homebrew でインストールするとビルドに失敗します。llvm-gcc ではなく gcc が必要なようです。
kennethreitz/osx-gcc-installer - GitHub https://github.com/kennethreitz/osx-gcc-installer
の osx-gcc-installer を利用しました。Xcode をインストールした状態で osx-gcc-installer をインストールしたので、問題があるかもしれません。
Homebrew で gcc を使ってビルドするには、環境変数 CC を設定するのではなく
brew install clisp --use-gcc
clisp を使って orc-battle.lisp を実行するには、sbcl のような (force-output) を追加する必要はありません。
~ $ clisp
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
[1]> (load "~/lisp/Land of Lisp/orc-battle.lisp")
;; Loading file /Users/yoshiaki/lisp/Land of Lisp/orc-battle.lisp ...
;; Loaded file /Users/yoshiaki/lisp/Land of Lisp/orc-battle.lisp
T
[2]> (orc-battle)
You are a valiant knight with a health of 30, an agility of 30, and a strength of 30
Your foes:
1. (Health=8) A wicked orc with a level 1 club
2. (Health=9) A malicious hydra with 9 heads.
3. (Health=1) A fierce BRIGAND
4. (Health=9) A slime mold with a sliminess of 3
5. (Health=9) A malicious hydra with 9 heads.
6. (Health=8) A wicked orc with a level 1 club
7. (Health=2) A slime mold with a sliminess of 5
8. (Health=7) A malicious hydra with 7 heads.
9. (Health=5) A fierce BRIGAND
10. (Health=2) A slime mold with a sliminess of 4
11. (Health=5) A malicious hydra with 5 heads.
12. (Health=5) A slime mold with a sliminess of 5
Attack style: [s]tab [d]ouble swing [r]oundhouse:
NIL
[3]> (exit)
Bye.
~ $
orc-battle.lisp は、簡単なプログラムです。それで、ゲームに勝つのもそんなに難しくないと思っていました。ところが、なかなか勝つことができません。それで、ソースを熟読して攻撃パターンや、ヘルスポイントの計算方法を理解し、ようやく勝てるようになりました。単純なゲームですが、熱中してしまいました。絶妙なバランスです。ソースの熟読には、別の理由もあったのですが!
orc-battle.lisp で勝利した動画を添付しておきます。後、おまけとして、最近取り組んでいたプログラムの動作模様も公開します。( 04 分 01 秒から始まります。)
IV. Lisp is Science 15. Dice of Doom, a Game Written in the Function Style Implementing Dice of Doom, Version 1 P312 Location 7551 Calculating Passing Moves
まで読んだのですが、Common Lisp を理解するには、最良の本ですね!Practical Common Lisp も持っているのですが、Land of Lisp の方が基本的な知識を得ることができます。Practical Common Lisp では、途中で投げ出してしまったので、気付かなかったのですが、Common Lisp では、構造体も使えるのですね!
P163 Location 4314 Common Lisp Structures
> (defstruct person name age waist-size favorite-color) PERSON > (defparameter *bob* (make-person :name "Bob" :age 35 :waist-size 32 :favorite-color "blue")) > *bob* #S(PERSON :NAME "Bob" :AGE 35 :WAIST-SIZE 32 :FAVORITE-COLOR "blue") > (person-age *bob* ) 35 > (setf (person-age *bob* ) 36) > (person-age *bob* ) 36
2011-12-18
Amazon Kindle 版 Steve Jobs 伝記、日経ソフトウエア 2012年 1月号 (新メモリー管理方式「ARC」の使い勝手)、Emacs Tips バッファリストを同一ウインドウで開く
書籍, 購入, 感想, kindle, プチコン, Emacs, lisp | |
![]()
Amazon Kindle 版 Steve Jobs 伝記をようやく読み終えました。読んでいる途中で、本の更新メールが届き、驚きました。電子版になると文章の修正などが簡単になるので、更新処理も可能になるのですね。メールに記載された更新手続きを行うと、問題なく更新されました。
NeXT、iPhone に関する技術的な考察を知りたかったのですが、内容は少なめでした。本の最後にある And One More Thing …、Steve Jobs 自身の言葉は、感慨深いものがありました。ご冥福をお祈りします。
- 作者: 日経ソフトウエア
- 出版社/メーカー: 日経BP社
- 発売日: 2011/11/24
- メディア: 雑誌
- 購入: 2人 クリック: 33回
- この商品を含むブログ (5件) を見る
P16 特集 1 Java 新時代へ P40 連載型 特集 アプリはまず「骨格」を作れ Android ネイティブ・アプリ 設計法 ■ 赤井 忠昭 P54 特集 3 iOS 5 で変わる iPhone プログラミング retain や release はもういらない 新メモリー管理方式「ARC」の使い勝手 ■ 荻原 剛志 P62 特集 4 Windows 8 & Visual Studio 11 徹底解説! Metro アプリ開発をいち早く体験 ■ 矢嶋 聡 P132 日本マイクロソフト エバンジェリストが語る最新プログラミング実践講座 Windows Phone 7 プログラミングを始めよう 第2回 スタート画面のタイルを使いこなす ■大西 彰 連載 NEW P74 プチコンでニンテンドー3DS/DSi/DSi LL ゲームプログラミング講座 第1回 お題 シューティングゲーム ■松原 拓也 NEW P87 Xcode 4 使い方入門 第1回 各画面やメニューを理解する ■ 大津 真
に大変興味が湧き、購入しました。特に
P54 特集 3 iOS 5 で変わる iPhone プログラミング retain や release はもういらない 新メモリー管理方式「ARC」の使い勝手 ■ 荻原 剛志
については、ARC のより深い理解の参考になりました。再確認のため Apple の資料を調べてみました。
まず、最初に新しい機能については
What's New in iOS: Introduction https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008244-SW1
の
What's New in iOS: iOS 5.0 https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html#//apple_ref/doc/uid/TP30915195-SW1 Automatic Reference Counting
Xcode New Features User Guide: Introduction https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/00-Introduction/Introduction.html#//apple_ref/doc/uid/TP40004626 ▼ New Features in Xcode 4.2 Automatic Reference Counting
でも確認できます。さらに紹介されているリンク先
Transitioning to ARC Release Notes https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226
が一番詳しいので、これさえ読んでおけば、充分だと思います。
私自身の経験ですが、NSLog などで
Thread 1: Program received signal: "EXEC_BAD_ACCESS".
が表示される時、原因となるファイルの ARC を無効にすると回避できることがあります。本当は、原因を取り除くべきなのですが、私自身、究明できないので暫定処理として使っています。
ARC のファイルごとの設定方法は、上のリンク先に載っています。簡単に説明すると
プロジェクト名/プロジェクト/Build Settings ▼ Apple LLVM compiler 3.0 Objective-C Automatic Reference Co…
で、プロジェクト自体の ARC を有効にし、
プロジェクト名/TARGETS/Build Phases ▼ Compile Sources (6 items)
上図のように ARC を無効にしたいファイル名の右側、Compiler Flags エリアをダブルクリックし、表示されたウインドウに
-fno-objc-arc
を入力してください。これで、ARC を無効にできます。何も指定していない場合は、プロジェクト自体が ARC を有効にするので、自動的に -fobjc-arc フラグがセットされます。
連載 NEW P74 プチコンでニンテンドー3DS/DSi/DSi LL ゲームプログラミング講座 第1回 お題 シューティングゲーム ■松原 拓也
の記事も購買目的の一つです。早速、プログラムを入力して遊んでいます。いろいろ改造しながら、スプライトの利用方法 (ミニ・シュート: 自機の爆破処理など)を理解しています。
最後に、ちょっとした Tips です。通常 Emacs でバッファリストを開くと別ウインドウに表示されますが、同じウインドウに表示する設定です。
;; ========================== .emacs ==========================
;; list-buffers
(setq same-window-regexps '("\*Buffer List\*")) ;; \ = バックスラッシュ = Option + \
Force Same Window - GNU Emacs Manual http://www.gnu.org/s/libtool/manual/emacs/Force-Same-Window.html Special Buffer Frames - GNU Emacs Manual http://www.gnu.org/s/libtool/manual/emacs/Special-Buffer-Frames.html#Special-Buffer-Frames
2011-11-27
PC-G850V、PC-G850VS とMac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアル接続し、G850ターミナルでログインする。
前回、予告した PC-G850V、PC-G850VS とMac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアル接続し、Ubuntu 11.10 ( Linux ) にリモート・ログインできるターミナル (端末)
PC-G850/G815/E200用ソフトウェア G850ターミナル http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
G850ターミナルを紹介したいと思います。
Mac の USB ポートと PC-G850V、PC-G850VS 周辺機器接続端子(11ピン) にそれぞれ 秋月電子通商 USB・RS232C シリアルポート変換ケーブル、高松製作所 RS232C シリアルケーブル を接続し、Mac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアルポートからログインするためには、Ubuntu 11.10 上に /etc/init/ttyS0.conf ファイルを作成する必要があります。
絶対無糖 (Zettai Non Sugar): Ubuntu でシリアルポートからログインする http://zettai-non-sugar.blogspot.com/2009/05/ubuntu.html SerialConsoleHowto - Community Ubuntu Documentation https://help.ubuntu.com/community/SerialConsoleHowto
上記、URL が参考になります。簡単に説明すると Parallels Desktop 上の Ubuntu 11.10 で Terminal を起動します。
ここでは sudo を何度も使うのは面倒なので sudo su を使ってスーパーユーザーになります。
yoshiaki@ubuntu:~$ sudo su [sudo] password for yoshiaki: root@ubuntu:/home/yoshiaki#
/etc/init ディレクトリに移動し、属性と一緒に tty1.conf ファイルを ttyS0.conf にコピーします。
root@ubuntu:/home/yoshiaki# cd /etc/init root@ubuntu:/etc/init# cp -p tty1.conf ttyS0.conf
# tty1 - getty # # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 9600 ttyUSB0 vt220
exec /sbin/getty -L 9600 ttyUSB0 vt220
の一行です。それぞれ
通信ボートレート: 9600 bps シリアルポートデバイス名: ttyUSB0 端末エミュレータ: vt220
を表しています。
シリアルポートのデバイス名は、コマンド dmesg で確認できます。Parallels Desktop 7 上で Ubuntu 11.10 を起動し、秋月電子通商 USB・RS232C シリアルポート変換ケーブルを Mac の USB ポートに繋ぐと Mac 側か Ubuntu 11.10 側のどちらに接続するか尋ねてくるので、Ubuntu 11.10 を選択します。
Terminal でコマンド dmesg を使うと
yoshiaki@ubuntu:~$ dmesg [ 128.609750] usbcore: registered new interface driver usbserial_generic [ 128.609751] usbserial: USB Serial Driver core [ 128.610480] USB Serial support registered for pl2303 [ 128.610861] pl2303 2-1:1.0: pl2303 converter detected *[ 128.625703] usb 2-1: pl2303 converter now attached to ttyUSB0 [ 128.625713] usbcore: registered new interface driver pl2303 [ 128.625717] pl2303: Prolific PL2303 USB to serial adaptor driver [ 129.884737] init: ttyS0_org main process (1743) terminated with status 1 [ 129.884757] init: ttyS0_org main process ended, respawning yoshiaki@ubuntu:~$
上の * 印より、シリアルポートのデバイス名 ttyUSB0 が判明します。秋月電子通商 USB・RS232C シリアルポート変換ケーブルは、変換チップに PL2303 を使っています。Ubuntu 11.10 上ではドライバを必要としません。
コマンド lsusb でも確認できます。
yoshiaki@ubuntu:~$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 203a:fff9 Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port yoshiaki@ubuntu:~$
また、Ubuntu 11.10 に含まれる端末エミュレータは、/lib/terminfo ディレクトリの
root@ubuntu:/etc/init# cd /lib/terminfo root@ubuntu:/lib/terminfo# ls -alF total 60 drwxr-xr-x 15 root root 4096 2011-09-17 04:29 ./ drwxr-xr-x 20 root root 4096 2011-10-25 18:16 ../ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 a/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 c/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 d/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 E/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 h/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 l/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 m/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 p/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 r/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 s/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 v/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 w/ drwxr-xr-x 2 root root 4096 2011-10-01 02:31 x/
root@ubuntu:/lib/terminfo# cd v root@ubuntu:/lib/terminfo/v# ls -alF total 24 drwxr-xr-x 2 root root 4096 2011-10-01 02:31 ./ drwxr-xr-x 15 root root 4096 2011-09-17 04:29 ../ -rw-r--r-- 1 root root 1194 2011-09-17 04:29 vt100 -rw-r--r-- 1 root root 1188 2011-09-17 04:29 vt102 -rw-r--r-- 1 root root 1279 2011-09-17 04:29 vt220 -rw-r--r-- 1 root root 470 2011-09-17 04:29 vt52 root@ubuntu:/lib/terminfo/v#
VT200 の端末エミュレータが Ubuntu 11.10 にはないようなので VT220 を用いました。詳しくはないので、これで正しいのかわかりません。端末エミュレータの定義は w3m などに使われます。
コマンド start ttyS0 (sudo start ttyS0) で開始します。
root@ubuntu:/etc/init# start ttyS0 ttyS0 start/running, process 2318 root@ubuntu:/etc/init# exit exit yoshiaki@ubuntu:~$
PC-G850/G815/E200用ソフトウェア http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
から、G850ターミナル ソースとバイナリ[ g850term20080419.zip ] をダウンロードし、その中に含まれるファイル g850vtermj.ihx を拙作 PCG-LinkMac [ http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#pcglink ] を使って、PC-G850V側に転送します。PCG-LinkMac の ReadMe ファイルを参考にしてください。
Mac OS X 10.7.2 Lion のドライバ問題の回避方法が
2011-07-31 - KOYAMA Yoshiaki の日記 http://d.hatena.ne.jp/KYoshiaki/20110731
に説明されています。
Mac 側の PCG-LinkMac から PC-G850V側 にファイル g850vtermj.ihx を転送する方法を簡単に説明します。
ファイル g850vtermj.ihx のサイズが大きいので、まず最初に PC-G850V の ON キーを押して電源を入れた後、ボールペンなどでリセットスイッチを押して PC-G850Vを初期状態にします。(注意、リセットすると保存したすべての BASIC プログラムなどが消去されるので、事前に Mac 側に退避しておいてください。)
Mac 側、PC-G850V側 のシリアル入出力条件を設定し、PC-G850V側で機械語モニタモードに入ります。g850vtermj.ihx のために必要なユーザーエリアは 722B ですが、念のため 7600 にします。その後、R 命令を使ってデータを読み込んでください。読み込みが終了するとデータが入ったエリア(領域)が表示されます。今回は INFO:0100-722B がそれに当たります。
MON *USER 7600 *R INFO:0100-722B *
読み込みが終了したら G100 でで G850 ターミナルを実行します。シリアルポートが繋がっていないので、何も表示されませんが、BASIC キーを押して端末の設定を行います。
*G100
数字キーで設定を変更でき、リターンキーを押すと変更しません。現在の状態は、[ ] の中に表示されています。私の設定は
BAUD 5: 9600 PARITY 0: none FLOW 0: none ECHO 0: off SCREEN 2: 36*6 KANJI: 2: SJIS
です。設定が終わったら、OFF キーで終了してください。端末の設定は、実行中 (Ubuntu 11.10 にログイン中)でも BASIC キーを押せば、変更できます。特に、漢字コードや画面サイズは変更したくなるかもしれません。
秋月電子通商 USB・RS232C シリアルポート変換ケーブルをUSB ポートから抜き、再度差します。Mac 側、Ubuntu 11.10 側のどちらに接続するか尋ねられるので Ubuntu 11.10 側をクリックします。
PC-G850V、PC-G850VS 側で、機械語モニタモードに入り G100 で G850 ターミナルを実行します。
login 画面が出ない時は Return キーを押してください。
login name を入力し、リターンキーを押してください。続いてパスワードを入力し、リターンキーを押します。これでログインできます。後は、Ubuntu 10.10 上の Terminal と同じです。
cat
















![文藝春秋 2012年 03月号 [雑誌]](http://ecx.images-amazon.com/images/I/5176%2BbDJHAL._SL75_.jpg)

G850ターミナルの作者のまるひろです.
ソフトの紹介と詳しい説明をありがとうございます.
(本当は作者の私がしなければならないのですが...)
G850ターミナルのページからリンクしました.
http://www16.ocn.ne.jp/~ver0/g800/#g850term
ご確認ください.
まるひろさん、はじめまして。
作者からの返事、感激です。
本当は、こちらからブログで取り上げたことをお知らせすべきでした。
'G850ターミナル' ページからのリンク確認しました。
わざわざ、リンクしていただき有り難うございます。
まるひろさんの公開しているソフトの完成度に驚いています。
iPhone や Mac に移植したら面白そうなものばかりです。
私自身、Z80アセンブラの知識が乏しいので無理ですが!