980225ドラフト版(ML/Newsには未投稿) ドラフト版は、ML,fj.sys.newtonにはポストしていません。 気がついた時に更新しています。 ===ここから=== --- What is new? *書籍に関して追加修正 *NTKが一般公開されたことによる内容変更 *Fontの参照の仕方。 *その他もろもろ。 --- Notes for Newton Toolkit (970422) Apple Developer Catalog(以下ADCと略)から出ているNewton Toolkit for Mac に関するコメント。(以降NTKと略。) 内容に関しては、実際のNTKをもちいて確認していますが、正確さに欠ける表現、 誤記もあるだろうと思われますので、内容の運用に関しては、参考資料として用い 各自の責任でおこなってください。 メモリが飛んでも責任は当方では持てません。 勘違いして記述している部分も多分にあります。 また、内容が30Kを超えたあたりから、かなりメンテナンスが大変になっていますので、 一部内容が古いままの可能性もあります。 このファイルは以下のURLからも参照できます。 最新版が読みたい人はここを参照してください。 特にアナウンスはしていませんが、気まぐれで更新していることがあります。 背景) 私は、95/10月からのユーザーですが、英語版にしても、プログラミングに関して のFAQはNTKに付属のものしかありません。 comp.sys.newton.programmerにもFAQ自体はないようです。 日本語版は当然ありません。 私はNewtonに関しては日曜プログラマなので、自分の覚え書きも兼ねて書いてい ます。(96/01/22〜) 大体、私がプログラミングをしていく上で調べたこと等が記載されています。 FAQじゃありません。全然Fじゃないので、、、。 また、NTKを使いはじめて半年ぐらいの間の私が判らなかったことの多くは、 河口@名古屋大さん 大久保@名古屋大さん の2人の助言によるところが非常に大きいです。この場を借りて感謝します。 対象) NTKのユーザーとこれから購入しようと思っている人。 ただし、一般的なオブジェクトプログラミングについての解説することを目標とは していないので、これらが当然判っていることを前提としています。 勿論、NewtonのView,Frameの解説は一切ありません。本、読んでください。 NTKが初めてのプログラム開発となる人へ) 日本語で現在購入して読めるものとしては、鈴木陽介さんの書かれた 「Newtonではじめるプログラミング」があります。 この本はプログラミングをこれから始めようとする人を対象に書かれていますので この本をまず読んでみてNewtonでのプログラミングの感触をつかむと良いでしょう。 さすがに初心者を対象に書かれていますので、基本的には英語のマニュアルを 読むことが大切です。とにかくNTKに付属のサンプルソースを読み、 プログラムをつくることです。 これしかNTKプログラミングの上達への道はないです。 (他のプログラミングもそうだけどね。) 最初から全部理解できるのは、本当に極一部の人だけです。 理解できないところがあれば、それはあとで理解できればよいのですから、理解で きる範囲でプログラムをとにかく沢山作りましょう。 10個ぐらい人に見せられるものができるころには、こんなもの見なくて済みます。 また、英文の書籍を含めてNTK関連の図書は非常に少ないです。 はっきりいって本気なら購入可能なものは全部買いましょう。 これぐらい買う気がないならやめた方がいいです。 あと個人的意見ですが、本格的にやるなら、開発用専用のNewtonとメモリカードを 用意した方がいいです。Newtonが勝手にリセットしてしまうとか、メモリを破壊す るなんてのは、開発中だとごく当り前にでてきます。 場合によってはハードリセットしないとどうにもならなくなることがあるので、 普段使用しているメモリカードは絶対開発と混在させない方が得策です。 注記) 特にバージョンが記載されていない場合は、すべてのバージョンに共通の話です。 Windows版についての記載にはWindows版と明記してあります。 転載) 無断転載禁止とかケチなことを強要するつもりはないので、 内容を改変しないかぎり、当方に特に*連絡なし*で転載してかまいません。 著作権) 村井が全て保持しています。 連絡先) tmurai@mars.dtinet.or.jp ---------------------------------------------------------------------------- Q) Newotn Toolkitを入手したいのがどうしたらよいのか? A) 現在Newtonの開発環境は一般に公開され無料で利用できます。 AppleのNewtonのWeb-siteからDownloadしてください。 Windows版とMac版があります。 ---------------------------------------------------------------------------- Q) NTKの最新版は? A) Mac版は1.6.4b3です。(97.04.14) 1.6.4b3のUpdaterがAppleのftp-siteにあります。 NOS2.1対応です。 Windows版は1.6です。 ---------------------------------------------------------------------------- Q) ADCのマニュアル以外にNTK関連図書にはなにがあるのか? A) 以下のものがあります。 ISBN: 012484832X Title: Programming for the Newton Using Macintosh 2nd Edition Author: RHODES Cover: CaseBound Published: April 1996 Price: $34.95 Macintosh用のNTK本の最新版。NTK1.6のデモ版がついています。 Newton OS 2.0のUserであれば、こちらを購入するとよいでしょう。 ISBN: 0124848303 Title: Programming for the Newton Using Windows Author: RHODES Cover: CaseBound Price: $34.95 Windows用のNTK本。 ISBN: 0-201-47947-8 Title: Newton Programmer's Guide Author: Apple Computer, Inc. Published: September 1996 Imprint: Addison Wesley Newton Programmers Referenceの簡略本。Newton OS 2.0対応。 Reference自体は CD-ROMに付属する。 NTK1.6のデモ版もついています。 ISBN: 0124848001 Title:PROGRAMMING FOR THE NEWTON Author: MCKEHAN / RHODES Cover: Paperback Imprint: AP Professional Published: April 1994 Price: $29.95 Macintosh用のNTK本。NTK1.0のデモ版がついている。 Newton OS 1.xのUser用。Newotn OS 2.0でも動くが動作しない機能があります。 ISBN: 012484801X Title: Wireless for the Newton Author: MCKEEHAN / RHODES Cover: CaseBound Imprint: AP Professional Published: April 1995 Macintosh用のNTK本。NTK1.0のデモ版がついている。 通信まわりのプログラミングガイド。 ただし、NOS 2.0で通信まわりはかなり変更されているので、NTK1.6から のUserは参考にしかならない。 からAp Professionalの出版物の検索ができます。 さらにNewtonだけでなくほかのものも取り扱った"The Handheld Systems Journal" があります。 Creative Digital Publishing Inc.の刊行雑誌で、Newton,HP,GeneralMagic等の PDA一般の開発者向け雑誌です。 Webに記事の一部抜粋のものがあってどういった内容のものかみることができます。 The Handheld Systems Journal ISBN 1088-4149 $90(Overseas) Creative Digital Inc. 293 Corbett Avenue, San Francisco, CA 94114 415.621.4252 415.621.4922 (fax) info@cdpubs.com 74774.50@compuserve.com ---------------------------------------------------------------------------- Q) 日本語で読めるNTK関連図書はあるのか? A) Apple Japanの出している日本語ソリューションキットに付属のマニュアル(NTK1.0) 宮本学,『Programming for the Newton』,HBJ出版局, ISBN4-8337-4901-7 入手できるなら読んでおくとよいです。 『Newtonではじめるプログラミング』よりは難しいので、初心者から中級者への ステップアップによいかもしれないです。 ただし内容はNOS1.xのものですが、基本は同じなので知識を深めるには良いかも。 高橋久幸,『Newtonとその開発環境[1]』,p.42-51, Macintosh DEVELOPER'S JOURNAL No.5,技術評論社, ISBN4-87408-598-9 (絶版) 高橋久幸,『Newtonとその開発環境[2]』,p.50-57, Macintosh DEVELOPER'S JOURNAL No.6,技術評論社, ISBN4-7741-0010-2 高橋久幸,『Newtonとその開発環境[3]』,p.34-41, Macintosh DEVELOPER'S JOURNAL No.8,技術評論社, ISBN4-7741-0035-8 V.J.Catkick,『Newtonと日本語』,p.5-8, Macintosh DEVELOPER'S JOURNAL No.18,技術評論社, ISBN4-7741-0275-X GNUE(鵺),『Newton ToolKitの新機能』,p.9-12, Macintosh DEVELOPER'S JOURNAL No.18,技術評論社, ISBN4-7741-0275-X リチャード・ノースコット,『UniFEPにキーボードを追加しよう』,p.13-15, Macintosh DEVELOPER'S JOURNAL No.18,技術評論社, ISBN4-7741-0275-X N4のFirstClassのBBSにてソースが公開されています。 高橋久幸,『Newton FAQ〜ラマに聞け』,p.21-32, Macintosh DEVELOPER'S JOURNAL No.18,技術評論社, ISBN4-7741-0275-X 鈴木陽介,『Newtonではじめるプログラミング』,オーム社, ISBN4-274-06224-4 Macintosh版のNTKの一式がCD-ROMで供給されています。 また、サポート用Webが以下のURLにあります。 http://www.siesta.co.jp/newt-programming/ MDJ(Macintosh DEVELOPER'S JOURNAL) No.5,6,8の記事はNewton OS 1.xのころのもの で、今からプログラミングを始めるという人は、No.18を取り敢えず購入しておくと 良いでしょう。 ちなみに、 No.5は英語版NTL 1.0でのNTKのツール使い方の紹介 No.6は簡単なプログラムのつくり方の紹介 No.8はUniCodeとローカライズについての紹介 NO.18はNewton OS 2.0とNTK1.6についての特集記事 です。 あとポケコンジャーナルという雑誌にNTKの入門プログラミングが紹介されていまし た。現在休刊。 鈴木陽介(通称 Basuke, email suzuki@voyagerco.com) 「Newtonの開発環境」(第1回) ポケコンジャーナル 96/2 号,工学社, pp. 60-62. ISBN (??? ではないけど) T1001474020586, 雑誌 01474-2 内容は、Newton の特徴、Newton Script, Newton の開発環境 NTK による Hello World. 「Newtonの開発環境」(第2回) ポケコンジャーナル 96/4 号,工学社, pp. 74-76. ISBN (??? ではないけど) T1001474040584, 雑誌 01474-4 ビューシステム。NTKによる電卓。 「Newtonの開発環境」(第3回) これらはWebで公開されていますので、一度見ておくとよいでしょう。 また、Onlineで読める日本語ものとしては、上記、鈴木陽介さん以外のものだと、 V.J.Catkickさんが書かれている開発者用のFAQとサンプルコードが、以下のURLで 公開されています。 さらに、Newton Script Referenceの日本語訳が以下のサイトで公開されています。 とにかく英文は避けたい人向け。 (けど、最終的には英文よ。) ---------------------------------------------------------------------------- Q) NTK関連の主なURLは? A) ---------------------------------------------------------------------------- Q) プログラムをコンパイルして、Project Dataファイルで読み込んでいるはずの定 数等をコールした時点で、定数未定義エラーが出るのだが、どうしたらよいのか。 A) ProjectファイルでのSeq番号によってコンパイルの順番がきまるので、メニュー のProject/Process Earlierを使って、Project Dataのコンパイル順位を上にする。 ---------------------------------------------------------------------------- Q) Extrasに現われるアイコンがあるが、タップした時に全くちがう形のアイコンに するには、どうしたらよいのか? A) PICTリソースの名前のつけ方は、マニュアルに書いてあるので、それを参照する こと。一般に問題になるのは、Newtonのアイコンのマスクのつくりかたです。 Newtonでは、マスクされるBitパターンに対して、反転する必要のあるbitのみをON (黒)にしたBitパターンをマスクパターンとして作成しないければならない。 そのため、タップする前後での形が異なる程、マスクパターンの作成は困難になる。 そのための支援ツールとしてMacintosh用のアプリケーションで、 Newton Icon! Builder(Land Ware)があるのでこれを利用すると簡単に マスクパターンの作成ができる。 Newton 2.0 User Interface Guideline (T1986Z/A $24.75)にも 詳しく記載されています。 また、NTK1.6.4b3の最新版だと、マスクを作成しなくても、ハイライト時の画像を 指定することができるようになっています。上記の方法は、それ以前の古いNTKでの 方法です。無論、併用もできます。 ---------------------------------------------------------------------------- Q) PICTを連続表示してアニメーション等のなめらかな表示をしようとしたが、最後 の状態しか表示されない。 A) RefreshViews()を描画のたびに使うようにします。(NOS1.3) ただし、view:EffectをコールしてviewのOpenをしているものに対して、SetValue したあとにRefreshViews()を使うとEffectは無効になるので注意。 NOS2.0ではLockScreen()をコールすること。 ---------------------------------------------------------------------------- Q) Project DataでkAppName等が2重定義エラーになる。(NTK1.5以降) A)NTK 1.5以降は自動的にkAppNameが設定されるので、Project Dataファイルに記載 する必要はない。 これは、Project DataでkAppNameを指定する方法はNTK1.0までおこなわれていた ことで、NTK 1.0のProject Dataのソースをコピーして作成する時には注意する こと。 1.0と1.5以降の互換性ためにメニューのProject/Project Settingの NTK 1.0 Build Rulesがあるので、マニュアルのその項目を参照すること。 ---------------------------------------------------------------------------- Q) Programming for The NewtonのNTK1.0のデモ版でScreen Shotがとれないのが、 これはデモ版だからか? A) Newton側にInstallするToolkit Appのバージョンが古いために新しいシステム との整合がとれなくなっているので、新しいバージョンのものをftp-siteからget してくること。 デモ版の最新版は1.6.1です。 ---------------------------------------------------------------------------- Q) NTK1.0のデモ版をPowerMacで動作できないのだが、どうしてか? A) Programming for the Newtonの第1版のNTKのデモ版はPowerPCに対してNativeでは ないうえ、その出版時のMacを想定しているため、新しいモデルだと動作しません。 動作しない場合は諦めるしかないでしょう。 デモ版の最新版は1.6.1です。 ---------------------------------------------------------------------------- Q) NTK1.5.1がPowerMac9500/8500等のPCI Mac第1世代で動かない。 A) NTK1.5.2b2へのUpdaterが存在するのでこれを使うこと。 これは上記Macintoshへの対応UpdaterであってNTK1.5.2b2はPowerPC Nativeな コンパイラではありません。NativeなものはNTK 1.6以降です。 ---------------------------------------------------------------------------- Q) RsrcFileNameファイル内にRsrcNameというPICTリソースがあって、これをNTK内で kResouceという定数で参照したいのだが、どうしたらよいのか? A) Project Dataファイル内で、 refNum := OpenResFileX("RsrcFileName"); DefConst('kResource, GetPICTAsBits("RsrcName",true)); CloseResFileX(refNum); とやればOK。 ---------------------------------------------------------------------------- Q) Apple QuickTake 100/150をNewtonに接続するためのアプレットを作成したいのだ が開発用のライブラリなどはあるのか? A) QuickTake SDKには現在、WindowsとMacOSのAPIライブラリしかなく、MacOSの 場合はShared Libraryでライブラリが供給され、WindowsではDLLで供給されている。 そのためこれらのプラットホームでの開発者は特にプロトコルの詳細をしらなくても 良いようになっているため、プロトコルの詳細は公開されていない。 結論として、現状ではNewton用のライブラリがQuickTake SDKに含まれるようになる まで待つか、もしくは、MacintoshとQuickTakeの間にプロトコルアナライザを接続し プロトコルを独自に解析し専用のAPIライブラリを自作するしか方法はない。 QV-10のように誰か解析してくれることを期待しましょう。 ---------------------------------------------------------------------------- Q) NTKデモ版でいろいろプログラムを作成したが、これは今のNTKと互換性はあるの か? A) あります。 NTK1.0のソースを最新のNTKで読み込むと自動的にファイルが変換され、 NTK 1.0 Build RulesがONになるので、この状態でコンパイルすれば、デモ版で作成 したプログラムは問題なくNewtonで動かすことができます。 ただし、直接MagicPointerなど参照しているプログラムの動作保証はされていませ ん。 また、シリアルまわりのEndPointを利用したプログラムは、OMPでの動作が不安定に なることが判っています。 ---------------------------------------------------------------------------- Q) Nativeプログラムをコンパイルして作成したが、OMP上でのみ、動作がおかしい。 (NTK1.5以降) A) 原因にはいろいろ噂があり、確定的なものはどうもないのが実情ですが、 そのうちの一つにはPlatformsフォルダに入っているPlatformファイルが問題と なっていることもあるようです。 ただ、OMPは事実上Appleのサポート範囲外製品となりつつあるので、動作対象から はずすのも一つの方針かもしれないです。 結局のところ、Nativeな高速なプログラムよりはByteCodeによる互換性の高い プログラムの作成をするようにするしかありません。 ---------------------------------------------------------------------------- Q) EndPointを使ったプログラムを作成しているが、OMPでのみ動作がおかしい。 (NTK1.5以降) A) 原因はPlatformsフォルダに入っているPlatformファイルのバージョンによる ところが大きいらしいことが調査で判っています。 840AV上で以下のような組み合わせで同一プログラムをコンパイルした時の結果で す。 この結果から、NTK1.6では事実上OMPのシリアルまわりの開発はできないと考えて よいでしょう。 OMPのユーザーで開発を考えているユーザーはNTK1.5.1以前のものを必ず入手して おく必要があります。 ---Table 1--- NTK1.5.1 + Platform 1.0.1 -> OK NTK1.5.1 + Platform 1.1 -> OK NTK1.5.1 + Platform 1.2 -> 動作不安定 NTK1.5.1 + Platform 1.3 -> 動作不安定 NTK1.5.1 + Platform 1.4 -> 動作不安定 NTK1.6 + Platform 1.0.1 -> Type2 Errorのためコンパイルできず NTK1.6 + Platform 1.1 -> Type2 Errorのためコンパイルできず NTK1.6 + Platform 1.2 -> 動作不安定 NTK1.6 + Platform 1.3 -> 動作不安定 NTK1.6 + Platform 1.4 -> 動作不安定 ------------- ---Table 2--- (Check on 96/05/10) Filename : Ver : Size(byte) Date etc. Newton 2.1 : 1.2d6: 506358 97/01/31 Newton 2.1 : n/a : 439819 96/07/03 Dev CD#11 Newton 2.0 : 1.2d2: 433747 96/03/05 Dev CD#9,10 Newton 2.0 : 1.1 : 399545 95/11/28 NTK1.6 MessagePad : 1.5d2: 225636 96/03/05 Dev CD#9,10 MessagePad : 1.4 : 208433 95/11/28 NTK1.6 MessagePad : 1.3 : 219667 95/5/18 NTK1.5.1 MessagePad : 1.2 : 215242 95/1/26 Dev CD#7 June & NTK1.01 Demo (Wireless for the Newton 1st) MessagePad : 1.1 : 176237 94/7/8 ftp.info.apple.com MessagePad : 1.0.1: 129419 94/3/18 NTK1.0.1 Demo (Programming for the Newton 1st) ------------- (注)Table2はMLで流れた河口氏の表を一部修正して記述しました。 ---------------------------------------------------------------------------- Q) EndPointを使ったプログラムを作成しているが、デバッグのためにInspectorに 接続することができない。どうしたら、すこしでも楽にデバッグできるのか。 A) ViewFrameという製品があるのでこれを購入すれば、Newton上でInspectorのかわ りが行えます。なければ、常に状態表示するためのViewを一つ作成しておき、 デバッグ情報をそこに表示しながら、デバッグするしか方法はないです。 ViewFrameは以下のCreative Digital Inc.の製品で、日本の代理点はエヌフォーで 最新は1.2でNOS2.0対応です。 1.1はNOS 2.0上で使用することも可能ですが任意スクロール操作を行うと表示が 崩れるという障害があります。 また、Newtonでも使用可能なSerial PCMCIAカードがありますので、これを使って シリアルポートを増やしてテストするという手段もあります。 SOCKET Serial I/O $179.00 Socket COmmunication Inc. 6500 Kaiser Drive Fremont, CA 94555 Tel:(510) 744-2700 Fax:(510) 744-2727 email:info@socketcom.com http://www.socketcom.com この製品はOMPを含めた全Newtonで使用が可能です。 (OMP,MP100,MP120,MP130で動作を確認しました。) 秋葉原のT-ZONEミナミ DOS/VのPCMCIA関連のコーナーで17800円(税別)で販売され ています。 ---------------------------------------------------------------------------- Q) ROM***,k***で始まるシステムが参照する値を書き換えることは可能か? A) 一般のNTK Userにはできない。というのがNewton MLでの見解。 ---------------------------------------------------------------------------- Q) Newton用のFontを作成したいが、NTK1.5のFontのCompile指定の部分は使用でき ないのだが、どうすればいいのか? また、NTK1.6ではそういった項目すらない。 A) サンプルソースのmonaco testを参照してください。 一般のNTK Userには英語Fontしかできないようです。 (日本語サポートしたFont Compilerを作成すれば、別ですが、、、) しかも、通常のユーザーにはunicode配列になったfont resourceを作成することは できませんので、AppleからNewton Font Tool 1.0を入手しないといけません。 NTKと一緒に公開されていますのでDownloadして入手が可能です。 尚、Newton Font Tool 1.0は日本語Fontには対応していません。英語のみです。 ---------------------------------------------------------------------------- Q) バイナリデータの保存領域を確保する方法はどうのようにすればよいのか? A) 大久保氏が公開してくれたFreeConvを参考にすること。 (もしくはDevelop No.18のNewton Q&A) 但し、この方法はNOS 1.3での方法で、NOS 2.0 & NTK 1.6ならば、MakeBinaryと いう新しい関数が用意されているのでそれで行うと良いでしょう。 Develop No.25のNewton Q&Aを参照。 ---------------------------------------------------------------------------- Q) NTK1.6を使ってNOS1.3で動いていたソフトをNOS 2.0対応のプログラムにしたい がどうすればよいのか。 A) Newton Tech Journal 1.5のConverting Newton 1.X Apps to Newton 2.0の 項目を参照すること。 ---------------------------------------------------------------------------- Q) Newtonで日本語をサポートする方法は? A) 技術評論社から出版されているMacintosh Devloper's Journal vol.18の "Newtonと日本語"の項目のを参照のこと。 但し、これはUniFEP環境を想定しています。 NOS 2.0以前で日本語変換テーブルが必要であれば、大久保@名古屋大さんが公開してく れたFreeConvを使用すること。 また、現在はNOS2.0での開発であれば、温井真(GNUE)さんが作成/公開されている NTEncodingを使用するとよいでしょう。(Newton Text Encoding) SDKもこのURLから入手可能です。 サンプルもあるので、開発には困らないでしょう。 ---------------------------------------------------------------------------- Q) EndPointで日本語をサポートするために、kShiftJISEncodingを使用すれば、 ShiftJIS変換できるようなことがNTKの All Q&A'S の Communication に記述されて いるが、どうも動作しない。データを受信するとResetされてしまう。 A) EndPointにEncoding Slotがあり、初期値はkMacRomanEncodingで ここで、大切なことはkMacRomanEncodingとkWizardEncodingはすくなくともROM 内に変換テーブルが存在しているので問題なく使用できますが、 kShiftJISEncodingはテーブルが用意されていないようです。 (日本語ソリューションキット等のJKeyにテーブルがあるが、この方法では実現でき ない。) そのため、Null Pointerを参照してしまうためResetしてしまうと考えられます。 この方法は諦めること。 /* constant */ kMacRomanEncoding := 1; /* constant */ kASCIIEncoding := 2; /* constant */ kPCRomanEncoding := 3; /* constant */ kWizardEncoding := 4; /* constant */ kShiftJISEncoding := 5; ---------------------------------------------------------------------------- Q) EndPointで日本語をサポートする方法は? A) 技術評論社から出版されているMacintosh Devloper's Journal vol.18の "Newtonと日本語"の項目のリスト5を*特に*参照のこと。 キーとなっているのは、 * 受信形式が'raw。 * 1 byte毎に処理をして日本語かどうか判断している。 * EncodingがkMacRomanEncodingで初期値をつかっており、kShiftJISEncodingを 使用しておらず、変換テーブルを別途用意しているということです。 また、NTEncodingを使用してのプログラミングも可能です。 NOS2.xをターゲットにしているならば、NTEncodingを使用することを勧めます。 ---------------------------------------------------------------------------- Q) EndPointを使っているプログラムで、viewQuitScriptが動作したあとに、 一定時間たってからDisconnectしたいのだが、うまくDisconnectできずに、 存在しない関数をコールしたというエラーが出てしまう。 A) subviewにDisconnect関数をコールしている関数が、 アプリケーションのBaseViewになく、subviewにいると考えられます。 そのためviewQuitScriptがコールされた時には、subviewが存在しないため、 上記のエラーが発生します。 アプリケーションのBaseviewのviweQuitScriptでDisconnectをコールしている 関数をコールするようにしてください。 ---------------------------------------------------------------------------- Q) Rotateしたら、Viewがおかしい。 A) ReOrientToScreenのmethodがコールされたタイミングと viewSetUpFormScriptで適切な位置とサイズにアプリケーションBaseViewを 変更すること。 また、画面が拡大される場合、画面がくずれる可能性があるので、 Justfyを適切に変更する必要もあります。 また、BuildContextしているViewの変更も行う必要があります。 ---------------------------------------------------------------------------- Q) Newton Keyboardのプロトコルの詳細が知りたい。 A) これは一応、comp.sys.newton.programmerに流すつもりで書いたので、 英文です。さらに詳しいことが知りたいならメールしてください。 これを見てわかる人は、わかると思いますが、 MacのシリアルポートにNewton Keyboardをつないで Macintoshのキーボードにすることも理論的には可能です。 問題はKeyBoardに電源を供給しないといけないので、 延長ケーブルはFull Connectのものを使用しないといけないことと、 (Newtonのケーブルは非常に短い) PowerOn Keyの信号をどのように解決するかというのがあります。 Apple Newton Keyboard Data-sheet Keyboard data was checked by useing serial data protocol analizer. So you can use this data own your risk. When keyboard connected to Newton and power on, Newton Keyboard send the following configuration data to Newton twice. Hex-Dump & ASCII-Code ---------------------------------------------------------------- 16 10 02 64 5F 69 64 00 00 00 0C 6B 79 62 64 61 70 70 6C 00 00 00 01 6E 6F 66 6D 00 00 00 00 10 03 DD E7 ---------------------------------------------------------------- SX DL SX d _ i d NU NU NU FF k y b d a p p l NU NU NU SH n o f m NU NU NU NU DL EX ] g ---------------------------------------------------------------- Every key send the following binary data to Newton. // option & shift+Option is can not display in this text. // Please check "Type! 1.0" document. char code unshift shfit option shift+Option ------ ------- ------- ------- ------- 0xB232 ` ~ 0x9212 1 ! 0x9313 2 @ 0x9414 3 # 0x9515 4 $ 0x9717 5 % 0x9616 6 ^ 0x9A1A 7 & 0x9C1C 8 * 0x9919 9 ( 0x9D1D 0 ) 0x9B1B - _ 0x9818 = + 0xB333 DEL DEL 0xB030 TAB TAB 0x8C0C q Q 0x8D0D w W 0x8E0E e E 0x8F0F f F 0x9111 t T 0x9010 y Y 0xA020 u U 0xA222 i I 0x9F1F o O 0xA323 p P 0xA121 [ { 0x9E1E ] } 0xAA2A \ | 0xB939 CAPS* CAPS 0x8000 a A 0x8101 s S 0x8202 d D 0x8303 f F 0x8505 g G 0x8404 h H 0xA626 j J 0xA828 k K 0xA525 l L 0xA929 ; : 0xA727 ' " 0xA424 RET RET 0xB838 SHFT* SHFT 0x8606 z Z 0x8707 x X 0x8808 c C 0x8909 v V 0x8B0B b B 0xAD2D n N 0xAE2E m M 0xAB2B , < 0xAF2F . > 0xAC2C / ? 0xBB3B CTRL* 0xBA3A OPTN* 0xB737 CMND* 0xB131 SPAC 0xFB7B LEFT 0xFC7C RGHT 0xFD7D DOWN 0xFE7E UP (*) ------------------------------------------- CAPS ON 0xB939 CAPS OFF 0xB939 (ex.) a a A B a 8000 8000 B939 8000 8B0B B939 8000 ^^^^ ^^^^ CAPS-ON CAPS-Off CAPS mode is controled by your software. ------------------------------------------- Shift-ON 0xB8 Shitf-OFF 0x38 (ex.) a a A B a 8000 8000 B8 8000 8B0B 38 8000 ^^ ^^ Shift-Press Shift-Off ------------------------------------------- CTRL-ON 0xBB CTRL-OFF 0x3B OPTN-ON 0xBA OPTN-OFF 0x3A CMND-ON 0xB7 CMND-OFF 0x37 CTRL,OPTN,CMND is similar to Shift-Key Operation. ---------------------------------------------------------------------------- Q) Macintoshで作成したNTKのプログラムソースをWindowsで使用できるのか? A) Macintosh上で動作するProject Converterというアプリケーションにより、 Windows版が可読な形式に変換する必要があります。 変換ソフトはNewtonのweb-siteにあります。また、Windowsのサンプルソースも 公開されています。 ---------------------------------------------------------------------------- Q) ConnetixのQuickCAMをNewtonに接続するためのライブラリ情報はあるのか? A) Connetix社と契約をかわして資料をもらうか解析するしか方法はありません。 Developer登録はWeb上のOnlineで登録可能で、契約書は別途、郵送する必要があります。 ---------------------------------------------------------------------------- Q) MP130のバックライトをコントロールするにはどうすればいいのか? 新しい機能のため、NPG 2.0には一切記載がない。 A) NTJの96/4と96/8号を参照すること。 BackLightをコントロールする関数は2つ。これらの関数は、かならずバックライト が存在することを確認してから、コールすること。 バックライトの存在のチェック方法は96/8号に記載されているようにやらないと 問題がでるので要注意。 (注意!German MP130でこのチェック方法を使うとハードを認識できない。) BackLightStatus() : Lightが点灯していればtrueが返る。 BackLight(RefArg onOrOffArg) : 戻値はLightの前の状態が返る。 ---------------------------------------------------------------------------- Q) TapBarとは? A) Yosuke "Basuke" Suzuki氏がFreewareとして公開しているUser Interfaceで、 AMP130では標準実装されていますので、今後、日本ではこのInterfaceを利用した ものが多く出てくるかと思われます。 英語、日本語版とあり、これを利用するためのSDKも公開されていますので、 Webからgetしておいて一度中を見るとよいでしょう。 サンプルも多数ありますので開発には困らないと思います。 現在の最新版は1.1.1です。 現状ではPopup ButtonsとRotate Buttonが組み込みAppletとして、同じWebに公開さ れています。 ---------------------------------------------------------------------------- Q) Newtonをリブート/スリープさせる関数は? A) Reboot()とSleep()です。 Sleep()はNPGに記載されているので、これを参照にしてください。 ReBoot()に関してはドキュメント化されていませんので、詳細は不明です。 ---------------------------------------------------------------------------- Q) BatteryStatusでの戻値で、acPowerの値が正常に戻ってこない。 A) acPowerの戻値はACが接続されて約10〜15分ぐらいしないと期待している値を 戻しません。この値を見て動くプログラムがあるならば、この値とユーザー設定に よるSleep時間を考慮してプログラムを作成する必要があります。 ただし、この問題はNOS2.1で修正されており、値がすぐ戻ってくるようになっています。 ---------------------------------------------------------------------------- Q) インストールされているパッケッジを参照するにはどうすればよいのか。 A) GetPakage()の戻値を参照してください。 NOS2.0では、各Store内のPackage Soupのsequence indexのエントリを調べるという 方法もあります。 ---------------------------------------------------------------------------- Q) Application Signatureを登録するにはどうすればいいのか。 A) 必要な事項を記入してnewtondev@newton.apple.comへe-mailで送ればOKです。 --- HOW TO REGISTER To register your signature, please send the following information via e-mail to newtondev@newton.apple.com or via fax to (408) 862-1277: Company Name: Contact Person: Mailing Address: Phone: Fax: Email Address: Desired Signature 1st choice: Desired Signature 2nd choice: Your signature registration will be confirmed via email or fax within a few business days. Newton Developer Registry Guidelines In order to avoid name conflicts among Newton applications, we request that each developer register a single signature. You do not need to register individual applications. Once you have a signature, the guidelines below explain how to ensure that the various global symbols and strings your application uses will be unique. SIGNATURE Example: PIEDTS Signatures are an arbitrary sequence of approximately 4 to 10 characters (colons and vertical bars are not allowed; case is not significant). APPLICATION NAME Example: "Llama" This is the string displayed under your application's icon in the Extras drawer. This symbol does not have to be unique, so it would be possible for two applications named "Chess" to exist on the market. Presumably, their icons would distinguish them if they were both installed. APPLICATION SYMBOL or appSymbol Example: |Llama:PIEDTS| The appSymbol is formed by concatentating the application name, a colon, and the registered signature. This symbol is not normally visible to the end user. It is used to uniquely identify an application to the root view. Note: since appSymbols contain a colon, they have to be enclosed in vertical bars where they appear explicitly in NewtonScript code. PACKAGE NAME Example: "Llama:PIEDTS" The package name is simply a string version of the appSymbol and is visible to the user in the pop up menu for removing software. Package names are limited to 26 characters, so this places a practical limit on the combined length of application names and signatures. For more information about signatures, please consult the Newton Programmer's Guide (NPG), which is available for download at the Newton Development website: http://devworld.apple.com/dev/newtondev.shtml ---------------------------------------------------------------------------- Q) Newtonのパッケージの構造はどうなっているのか? A) Newton FormatsというドキュメントがNewtonのWebで公開されていますので、 これを参照してください。 ---------------------------------------------------------------------------- Q) NOS2.0で起動可能なAppletを検索するにはどうしたらよいのか? A) NOS1.xではExtrasDrawer内にデータが格納されています。 NOS2.0では、Extarsの仕組が変更されたことにより、 データが、システムスープ内に格納されていますので、そこを参照します。 実際には以下のようにやればいいと思いますが、この方法がAppleの推奨するものか どうかは知りません。 local L1, L2; L1 := Query(GetUnionSoupAlways("Packages"), {type: 'index, Indexpath: 'sequence}); if L1 then begin L2 := L1:entry(); while L2 do begin if L2.text and L2.app then begin //起動可能なAppletだ。 end; L2 := L1:Next(); end; end; また、単純にGetPackages()をコールすると全てのインストールしたパッケージの 名前を獲得できます。 特定のApplet群を検索するならば、これで十分です。 具体的なサーチのやりかた。Newtonに入っているAppletを全部検索するので、 ちょっと遅いですが、確実に見つけられます。 local p; foreach p in packages do begin if EndsWith(p.title, "wabUni020") then begin //WabumiUniのドキュメントだ。 end; end; Newton Bookのサーチの仕方。 local book; foreach book in GetRoot().Copperfield:GetOnlineBooks() do begin // book.titleがApplet name, book.isbnがsignatureです。 end;  また、上記のAppletの検索で、L2.appをL2.isbnにして検索してもOKです。 Newton BookのOpenの仕方。 GetRoot().copperfield:OpenBook(サーチした時に得られた値book.isbnを指定); Apple推奨の方法は、Platform FIle Notesに記載されています。 GetPartCursor() GetPartEntryData() LaunchPartEntry() で行います。 これらだと、NewtonBookをサーチすることはできませんが、一番正しい?方法です。 ---------------------------------------------------------------------------- Q) Startup Screenはどこのルーチンで描画されているのか? A) Getroot().sleepscreenの中で描画されていますので、このオブジェクトの状態を 適切に変更することにより可能です。 Newtonが起動されるとこのオブジェクト内のMethodが順次呼び出されます。 しかし、日本語をサポートしたAMP130はシステムパッチにより、ここが書き換えられ ているようです。そのため、MP120/130(E)で動作しても、MP130(J)では動きません。 MP130(J)で動かすにはそれ専用にAppletを書き直す必要があります。 しかしこれは初期のものだけで、現在、Apple Japanのftp serverで配布されている MP130用のUpdaterを使用した場合には問題ありません。 ---------------------------------------------------------------------------- Q) Newtonで採用されている文字コードのUnicodeについて知りたい。 A) まずは、UnicodeのWeb Serverにアクセスしてください。 Unicodeここには有用な情報が沢山公開されています。 ここにある情報は全てDownloadしておくとよいでしょう。 ftp serverには漢字コードの変換表を含め有用な情報が沢山あります。 また、書籍としては The Unicode Standard ,2nd Edition ISBN: 0-201-48345-9 $59.13 Addsion-Wesley Developers Press が発行されています。CD-ROM付です。 CD-ROMにはUnicodeのftp serverの内容が入っています。 書籍を入手すると具体的な文字を見ることができるので、有用です。 また、CJK部分以外ものであれば、以下のURLで画像データと共に公開されています。 ---------------------------------------------------------------------------- Q) 現状のNTKでは日本語をサポートしていないので、\uで始まる形式に変換しない と漢字の表示がAppletでできない。2,3文字なら問題ないが、大量にあると面倒だ。 何かよいツールはないか? A) N4のV.J.Catkickさんが公開されているUniCodes 2.0というツールを使うとよい でしょう。 ---------------------------------------------------------------------------- Q) Newtonで採用されているARM(Advance RISC Machine)について知りたいのだが? A) 現状では、ARMのWeb Serverにある情報が殆どどでしょう。 書籍では、 The ARM RISC Chip A Programmer's Guide ISBN 0-201-62410-9 Addson-Wesley Publishing Co. があります。 ---------------------------------------------------------------------------- Q) NTK1.6のデモ版でMP2000のScreen Shotがとれないのが、 これはデモ版だからか? A) Newton側にInstallするToolkit Appのバージョンが古いために新しいシステム との整合がとれなくなっているので、新しいバージョンのものをweb-siteからget してくること。1.6.4b1の以降のものが対応しています。 ---------------------------------------------------------------------------- Q) MP2000はグレースケールをサポートしている、画像データの取り扱い方で何かよ い方法はないか? A) N4のV.J.Catkickさんが公開されているNSPFというモノクロデータ、グレースケー ルデータを取り扱えるように考慮した画像フォーマットがあります。 まだ、発表されたばかりなので、サポートしているAppletはありませんが、 日本での開発を考えると、このフォーマットを使用することがベストでしょう。 ---------------------------------------------------------------------------- Q) MP2000は音声データを入力できるようになっている。これを取り扱うのに何かよ い方法はないか? A) N4のV.J.Catkickさんが公開されているNSSFというサウンドデータを 取り扱えるように考慮したサウンドフォーマットがあります。 まだ、発表されたばかりなので、サポートしているAppletはありませんが、 日本での開発を考えると、このフォーマットを使用することがベストでしょう。 NOS 2.1以上のマシンをターゲットにしているので、NOS2.0以前のマシンのことを 考慮する場合は、河口@名古屋大さんの作成されたSound2pkgのフォーマットを 使うのがよいかもしれませんが、現状ではアルファ版であり、一般に公開されて いないので、取り扱いの難しいところです。 現状ではStartupSoundがSound2pkg対応しています。 ---------------------------------------------------------------------------- Q) Newtonで2次元配列を扱う良い方法はないか? A) Handheld Systems Vol5-5 Sep/Oct 1997 P.7-8に、 Newtonでの2次元配列の取り扱いについて記載されています。 また、多次元配列の取り扱いも記載されています。 このテクニックは、見て、なるほどザワールドです。(ふ、ふるい) イケショップ(マックプラザ店)で不良在庫?となりつつあります。Getしましょう。 1冊1980円(税別)です。 というより、ここで売っているHandheld Systemはプログラマなら全部かっておいて もいいでしょう。貴重なサンプルコードも載っていますし、、、 (宣伝費くれ〜) と書いたからかどうか知らないけど、98/02現在、売れ残っていません。 ---------------------------------------------------------------------------- Q) 現状使用可能なフォントを知るにはどうしたらよいのか? A) NOS 2.0以降であれば、 local fontslist := Apply(kGetAllFontsFunc, []); とすると、fontslistに使用可能なフォントの配列が戻値として格納されます。 Globalパラメータのfontsを参照するのは、あまり良い方法ではないでしょう。 ---------------------------------------------------------------------------- Q) 現状選択中のフォントの使用可能なサイズを知るにはどうしたらよいのか? A) フォントFrmaeの中に、userSizesというSlotがありますので、この配列を参照するのがベストです。 ===ここまで===