Appalm ][ を Clie UX50 で動かす
記事をクリップするクリップ追加
書庫GS
カテゴリその他コンピュータ
2017/2/18(土) 午後 8:47
■開発環境構築
Appalm ][ を UX50 で動かすことに挑戦してみます。
まずは、Palmの開発環境が必要です。
以下を参考に、Cygwinをインストールします。
http://www5b.biglobe.ne.jp/~kaz-hat/SetPalmProgramingEnv/PalmDevEnv2.html
Cygwinのサイトから、 setup-x86.exe (32bit版) をダウンロード。
https://cygwin.com/install.html
コマンドラインから -X オプションを指定し実行。
setpu-x86 -X
make, binutils, cvs, gcc-g++, prc-tools, prc-tools-arm, prc-tools-htmldocs, pilrc, unzip をインストール。
デスクトップのCygwin Terminalを起動。
以下から、Palm OS SDK をダウンロード。
http://web.archive.org/web/20150418221644/http://cdn.xenu.tk/pub/palm-archive/pub/programming/sdk/5.0/Palm_OS_68K_SDK_Fall_2004_CW.zip
C:\cygwin\tmpにコピー
Cygwinのターミナルで、
$ cd /tmp
$ unzip Palm_OS_68K_SDK_Fall_2004_CW.zip
$ mkdir /PalmDev
$ mkdir /PalmDev/sdk-5r4
$ mv Palm\ OS\ Support/Incs /PalmDev/sdk-5r4
以下から、Clie SDK をダウンロード。
https://web.archive.org/web/20030403101725/http://www.us.sonypdadev.com/file/cliesdk50e.zip
ちなみに、日本語版はこちら
https://web.archive.org/web/20050519014349/http://www.jp.sonystyle.com/Clie-dev/file/cliesdk50j.zip
C:\cygwin\tmpにコピー
Cygwinのターミナルで、
$ cd /tmp
$ unzip cliesdk50e.zip
Sony SDK Support/R5.0/Incs下にある、ヘッダファイル内のenumをdefineに書き換えます。
例えば、
typedef enum {
} SilkLibTrapNumberEnum;
を
#define
#define
#define
#define
#define
とします。
Incsフォルダを /PalmDev/sdk-clie50eにコピー。
Cygwin ターミナルから、
$ cd Sony\ SDK\ Support/R5.0/
$ tar cvf incs.tar Incs
$ tar cvf /tmp/incs.tar Incs
$ cd /PalmDev/sdk-5r4/
$ tar xvf /tmp/incs.tar
$ palmdev-prep
palmとclieのsdkを別のディレクトリに置く方法もあるが、コンパイラオプションなど設定が面倒になりそうなのでこのようにしてみました。
以上
■再コンパイル
CVS でソースを取り出します。
https://sourceforge.net/p/palmapple/code/?source=navbar
Cygwinのターミナル起動。
$ cvs -d:pserver:anonymous@palmapple.cvs.sourceforge.net:/cvsroot/palmapple login
$ cvs password: (return)
$ cvs -z3 -d:pserver:anonymous@palmapple.cvs.sourceforge.net:/cvsroot/palmapple co -P palmapple
最新のソースが palmapple ディレクトリにコピーされますが、PalmOne SDK がないとビルドできません。
$ cd palmapple
$ make
m68k-palmos-gcc -Os -W -Wpointer-arith -Wstrict-prototypes -Wnested-externs -S src/appalm.c -o obj/appalm.s
src/appalm.c:5: palmOneNavigator.h: No such file or directory
make: *** [Makefile:109: obj/appalm.o] エラー 1
0.75a 相当のバージョンに戻します。
$ make clean
rm -f src/*.c~
rm -f src/*.h~
rm -f src/*.bak
rm -f src/tags
rm -f utils/dsk2pdb
rm -f tags
rm -f obj/*.o
rm -f obj/*.s
rm -f obj/*.bin
rm -f obj/*.stamp
rm -f obj/appalm-sections.s obj/appalm-sections.ld
rm -f obj/appalm
rm -f appalm.prc
rm -f obj/a2mgr
rm -f a2mgr.prc
$ cvs update -D 2004-01-01
cvs update: Updating .
P Makefile
cvs update: appalm.def is no longer in the repository
cvs update: gpl.txt is no longer in the repository
P readme
cvs update: Updating icons
cvs update: Updating palmapple
cvs update: Updating palmapple/fonts
cvs update: Updating src
P src/6502.h
P src/Apple2.h
cvs update: src/HostTraceGlue.c is no longer in the repository
cvs update: src/HostTraceGlue.h is no longer in the repository
P src/a2mgr.c
P src/appalm.c
P src/appalm.rcp
P src/appalm_rsc.h
cvs update: src/dialogs.c is no longer in the repository
cvs update: src/dialogs.h is no longer in the repository
P src/memio.c
cvs update: src/memio.h is no longer in the repository
P src/memory.h
cvs update: src/misc.c is no longer in the repository
cvs update: src/misc.h is no longer in the repository
P src/video.c
cvs update: Updating src/fonts4x6
cvs update: Updating src/fonts7x8
cvs update: Updating utils
obj ディレクトリがないので作ります。
$ mkdir obj
$ make
m68k-palmos-gcc -Os -S src/appalm.c -o obj/appalm.s
src/appalm.c:3: warning: `keyBitGameExt0' redefined
/PalmDev/sdk-5r4/Incs/System/SonyKeyMgr.h:35: warning: this is the location of the previous definition
src/appalm.c:4: warning: `keyBitGameExt1' redefined
/PalmDev/sdk-5r4/Incs/System/SonyKeyMgr.h:36: warning: this is the location of the previous definition
m68k-palmos-gcc -Os -c src/appalm.c -o obj/appalm.o
src/appalm.c:3: warning: `keyBitGameExt0' redefined
/PalmDev/sdk-5r4/Incs/System/SonyKeyMgr.h:35: warning: this is the location of the previous definition
src/appalm.c:4: warning: `keyBitGameExt1' redefined
/PalmDev/sdk-5r4/Incs/System/SonyKeyMgr.h:36: warning: this is the location of the previous definition
cpp -E src/6502.asm > obj/6502.s
m68k-palmos-as -m68000 -pic -disp-size-default-16 obj/6502.s -o obj/6502.o
m68k-palmos-gcc -Os -S src/memio.c -o obj/memio.s
m68k-palmos-gcc -Os -c src/memio.c -o obj/memio.o
m68k-palmos-gcc -Os -S src/video.c -o obj/video.s
m68k-palmos-gcc -Os -c src/video.c -o obj/video.o
cpp -E src/vidclr.asm > obj/vidclr.s
m68k-palmos-as -m68000 -pic -disp-size-default-16 obj/vidclr.s -o obj/vidclr.o
m68k-palmos-gcc -Os -c src/fonts7x8.c -o obj/fonts7x8.o
m68k-palmos-gcc -Os -c src/fonts4x6.c -o obj/fonts4x6.o
m68k-palmos-gcc -Os -o obj/appalm obj/appalm.o obj/6502.o obj/memio.o obj/video.o obj/vidclr.o obj/fonts7x8.o obj/fonts4x6.o
pilrc -I src src/appalm.rcp obj
PilRC v3.2
Copyright 1997-1999 Wes Cherry (wesc@ricochet.net)
Copyright 2000-2004 Aaron Ardiri (aaron@ardiri.com)
Generating 68K resources from 'src/appalm.rcp'.
Writing obj/tver03e8.bin (6 bytes)
Writing obj/MBAR0bb8.bin (687 bytes)
Writing obj/tFRM044c.bin (292 bytes)
src/appalm.rcp:78: warning: Form has editable field(s) without Graffiti State Indicator
Writing obj/tFRM04b0.bin (650 bytes)
Writing obj/tFRM03e8.bin (96 bytes)
Writing obj/Talt08fc.bin (98 bytes)
Writing obj/Talt0a28.bin (22 bytes)
Writing obj/Talt09c4.bin (52 bytes)
Writing obj/tAIB03e8.bin (1384 bytes)
Writing obj/tAIB03e9.bin (336 bytes)
touch obj/appalm.bin.stamp
build-prc appalm.prc "Appalm ][" Aple2 obj/appalm obj/MBAR0bb8.bin obj/tAIB03e8.bin obj/tAIB03e9.bin obj/Talt08fc.bin obj/Talt09c4.bin obj/Talt0a28.bin obj/tFRM03e8.bin obj/tFRM044c.bin obj/tFRM04b0.bin obj/tver03e8.bin
m68k-palmos-gcc -Os -c src/a2mgr.c -o obj/a2mgr.o
m68k-palmos-gcc -Os -o obj/a2mgr obj/a2mgr.o
pilrc -I src src/a2mgr.rcp obj
PilRC v3.2
Copyright 1997-1999 Wes Cherry (wesc@ricochet.net)
Copyright 2000-2004 Aaron Ardiri (aaron@ardiri.com)
Generating 68K resources from 'src/a2mgr.rcp'.
Writing obj/tver03e8.bin (4 bytes)
Writing obj/tFRM2328.bin (224 bytes)
Writing obj/Talt23f0.bin (22 bytes)
Writing obj/Talt238c.bin (61 bytes)
Writing obj/tAIB03e8.bin (1384 bytes)
Writing obj/tAIB03e9.bin (336 bytes)
touch obj/a2mgr.bin.stamp
build-prc a2mgr.prc "A2 Manager" Disk2 obj/a2mgr obj/tAIB03e8.bin obj/tAIB03e9.bin obj/Talt238c.bin obj/Talt23f0.bin obj/tFRM2328.bin obj/tver03e8.bin
gcc -o utils/dsk2pdb utils/dsk2pdb.c
utils/dsk2pdb.c: 関数 ‘read_nibble’ 内:
utils/dsk2pdb.c:480:9: 警告: 型がデフォルトの ‘int’ に ‘flag’ の宣言内でなります [-Wimplicit-int]
static flag;
utils/dsk2pdb.c: 関数 ‘mount_disk’ 内:
utils/dsk2pdb.c:504:19: 警告: 関数 ‘unmount_disk’ の暗黙的な宣言です [-Wimplicit-function-declaration]
if ( diskimage ) unmount_disk();
utils/dsk2pdb.c: 関数 ‘main’ 内:
utils/dsk2pdb.c:567:17: 警告: 関数 ‘exit’ の暗黙的な宣言です [-Wimplicit-function-declaration]
exit(1);
utils/dsk2pdb.c:567:17: 警告: 組み込み関数 ‘exit’ の互換性がない暗黙的な宣言です
utils/dsk2pdb.c:567:17: 備考: include ‘
utils/dsk2pdb.c:593:17: 警告: 組み込み関数 ‘exit’ の互換性がない暗黙的な宣言です
exit(1);
utils/dsk2pdb.c:593:17: 備考: include ‘
utils/dsk2pdb.c:605:82: 警告: 複数文字からなる文字定数 [-Wmultichar]
pdb_header.type = (track_size == DOS_TRACK_BYTES) ? DDSK : RDSK; ^
utils/dsk2pdb.c:605:82: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:605:82: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:605:82: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:605:89: 警告: 複数文字からなる文字定数 [-Wmultichar]
pdb_header.type = (track_size == DOS_TRACK_BYTES) ? DDSK : RDSK; ^
utils/dsk2pdb.c:605:89: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:605:89: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:605:89: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:606:48: 警告: 複数文字からなる文字定数 [-Wmultichar]
pdb_header.creator = Apl2; ^
utils/dsk2pdb.c:606:48: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:606:48: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:606:48: 警告: 複数文字からなる文字定数 [-Wmultichar]
utils/dsk2pdb.c:649:17: 警告: 組み込み関数 ‘exit’ の互換性がない暗黙的な宣言です
exit(1);
utils/dsk2pdb.c:649:17: 備考: include ‘
utils/dsk2pdb.c:658:21: 警告: 組み込み関数 ‘exit’ の互換性がない暗黙的な宣言です
exit(1); ^
utils/dsk2pdb.c:658:21: 備考: include ‘
utils/dsk2pdb.c:666:21: 警告: 組み込み関数 ‘exit’ の互換性がない暗黙的な宣言です
exit(1);
utils/dsk2pdb.c:666:21: 備考: include ‘
色々エラーが出ますが、オブジェクト appalm.prc を clie 本体に転送し実行してみます。
動きました。
■githubに登録
再コンパイルができたので、ソースの修正に取り掛かります。
その前に、ソースをgithubに登録します。
参考
GitHubにログインし、New Repository
Repository name : appalm2
Cygwin ターミナル起動
$ cd palmapple
$ make clean
$ cvs update -D now gpl.txt
$ git init
$ echo CVS/ >.gitignore
$ git add .
$ git commit -m "initial commit"
$ git remote add origin https://github.com/ushicow/appalm2.git
$ git push -u origin master
$ git branch UX50
$ git push --set-upstream origin UX50
以上
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