MPW Compatibility Layer
記事をクリップするクリップ追加
書庫無題
カテゴリその他コンピュータ
2017/10/23(月) 午後 9:17
macOS上でMPW シェルコマンドを使えるようにする、MPW Compatibility Layer をインストールしてみます。
https://github.com/ksherlock/mpw/releases
からコンパイル済みモジュールをダウンロード。
現時点では Release 0.8.0 が最新です。
mpw-0.8.0.zip
mpw-config-0.8.0.zip
$ unzip mpw-0.8.0.zip
$ sudo mv mpw /usr/local/bin
$ open mpw-config-0.8.0.zip
$ sudo mv mpw /usr/local/share/
$mpw
MPW 0.8.0
Usage: mpw [options] utility ...
--help display usage information
--trace-cpu print cpu information
--trace-macsbug print macsbug names
--trace-toolbox print toolbox calls
--trace-mpw print mpw calls
--memory-stats print memory usage information
--ram=
set the ram size. Default=16M
--stack=
set the stack size. Default=8K
$ mpw help asmiigs
AsmIIGS [option?] [file?] < file > listing ? progress
-blksize blocks # use blocks * 512 byte I/O buffers
-case on # distinguish between upper and lower case
-case obj[ect] # preserve case in object file
-case off # ignore case (default)
-c[heck] # syntax check only, don't create object file
-d[efine] name # equivalent to: name EQU 1
-d[efine] name=value # equivalent to: name EQU value
-d[efine] &name # equivalent to: &name SET[AC] 1
-d[efine] &name=value # equivalent to: &name SET[AC] value
-f # suppress page ejects in listing
-font name[,size] # set listing font and size
-h # suppress page headers in listing
-i directory,? # search for includes in directory,?
-l # write full listing to output
-lo file # listing output file or directory
-m # provide more target address information (l is also required)
-o objname # generate code in file or directory objname
-pagesize l[,w] # set listing page length and width
-print mode # equivalent to: PRINT mode
-p # write progress information to diagnostics
-s # write short listing to output
-t # write time and total lines to diagnostics
-w # suppress warnings
うまくいったようです。
あとは、/usr/local/share/mpw の下に、必要なファイルをコピーしていけば良いようです。
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
MPW Compatibility Layer with MPW IIGS and ORCA/C
書庫GS
カテゴリその他コンピュータ
2017/10/24(火) 午後 10:03
MPW Compatibility Layer で IIGS の開発環境を構築します。
以前入れた環境を ~/mpw に移すため、一旦全部やり直します。
$ rm -r /usr/local/share/mpw
$ rm /usr/local/bin/mpw
コンパイル済み mpw は、--shell オプションを認識しないので、ソースから入れ直します。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew -v
Homebrew 1.3.6
$ brew doctor
Your system is ready to brew.
$ brew install cmake
$ brew install ragel
$ brew install lemon
$ cd ~/Desktop
$ git clone https://github.com/ksherlock/mpw.git
$ cd mpw
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install
$ cd ~/Desktop
$ rm -rf mpw
$ mpw --shell
MPW 0.8.0
Usage: mpw [options] utility ...
--help display usage information
--trace-cpu print cpu information
--trace-macsbug print macsbug names
--trace-toolbox print toolbox calls
--trace-mpw print mpw calls
--memory-stats print memory usage information
--ram=
set the ram size. Default=16M
--stack=
set the stack size. Default=8K
https://github.com/ksherlock/mpw/releasesから
mpw-config-0.8.0.zipをダウンロード。
$ cd ~/Download
$ open mpw-config-0.8.0.zip
$ mv mpw ~/
mpw-shellをインストール。
https://github.com/ksherlock/mpw-shell/releases/tag/0.4
から、mpw-shell-0.4.zipをダウンロード
$ cd ~/Download
$ open mpw-shell-0.4.zip
$ cp -a mpw-shell-0.4/mpw-shell /usr/local/bin
$ cp -a mpw-shell-0.4/mpw-make /usr/local/bin
$ cp -a mpw-shell-0.4/etc/Startup ~/mpw
Finder で mpw-shell-0.4/etc の MPW Shell.terminal をダブルクリック。
Terminal で MPW Shell が起動する。
環境設定 シェルに MPW Shell が登録されるので、次からはシェル/新規ウィンドウで MPW Shell を選べば、MPW Shell が起動する。
MPW-Toolsをインストール
https://github.com/ksherlock/mpw-tools/releases
から tools.tgz をダウンロード
$ cd ~/Download
$ open Tools.tgz
$ mv Tools/* ~/mpw/Tools
$ rm -r Tools
mpw-gm.img をダウンロード。macOSではマウントできないので、ディスクユーティリティで .dmg に変換してマウント。
$ cd /Volumes/MPW-GM/MPW-GM/MPW
$ mkdir ~/mpw/3.5
$ cp -a Tools ~/mpw/3.5
$ cd /Volumes/MPW-GM/MPW-GM/Interfaces\&Libraries
$ cp -a Interfaces ~/mpw/3.5
$ cp -a Libraries ~/mpw/3.5
$ cd ~/mpw/3.5
$ ln -s ../Help .
Golden Orchard をダウンロードし、Golden Orchard 1.2.iso をマウント
$ cd /Volumes/Golden\ Orchard/Programming/Apple/Development\ Tools/For\ MPW\ IIGS/
$ cp -a Tools/* ~/mpw/Tools
$ cp -a Interfaces/* ~/mpw/Interfaces/
$ cp -a Libraries/* ~/mpw/Libraries/
テスト
$ cp -a /Volumes/Golden\ Orchard/Programming/Apple/Development\ Tools/For\ MPW\ IIGS/Examples/PIIGSExamples ~/Desktop
$ cd ~/Desktop/PIIGSExamples/BusyBox.p/
$ mpw-make
pascaliigs uglobals.p -o :objs:
pascaliigs uwindow.p -o :objs:
pascaliigs umenu.p -o :objs:
pascaliigs uevent.p -o :objs:
pascaliigs busy.p -o :objs:
LinkIIGS "/Users/atsushi/mpw/Libraries:PIIGSLibraries:"pstart.obj :objs:uglobals.p.obj :objs:uwindow.p.obj :objs:umenu.p.obj :objs:uevent.p.obj :objs:busy.p.obj -lib "/Users/atsushi/mpw/Libraries:PIIGSLibraries:"plib -o :objs:busybox.load -t $B3
reziigs busybox.r -o :objs:busybox.res
duplicate -y -d :objs:"busybox".load p."busybox"
duplicate -y -r :objs:"busybox".res p."busybox"
$ cd ../ActionNDA.p/
$ mpw-make
AsmIIGS NDAHeader.aii
PascalIIGS -r ActionNDA.p
LinkIIGS -t NDA NDAHeader.aii.obj ActionNDA.p.obj -lib "/Users/atsushi/mpw/Libraries:PIIGSLibraries:"PLib -o "ActionNDA"
$ mpw SetFile -c pdos -t PS16 p.busybox
GSPlus で動かしてみます。
イメージ 2
Opus ][ をマウント
$ cd /Volumes/Opus\ \]\[\ The\ Software/GS-24\ MPW-IIGS\ ORCA\:C/
$ cp -a Tools/* ~/mpw/Tools/
$ cp -a ORCACDefs/* ~/mpw/ORCACDefs/
$ cp -a ORCACLibraries ~/mpw/Libraries/
テスト
$ cp -a /Volumes/Opus\ \]\[\ The\ Software/ByteWorks/ORCA/C.Samples/Desktop.Samples ~/Desktop
$ cd ~/Desktop/Desktop.Samples
$ mpw cciigs -y MiniCAD.cc
-y オプションを付けないと、無限大の sym ファイルができます。
$ mpw linkiigs MiniCAD.cc.o -lib ~/mpw/Libraries/ORCACLibraries/ORCACLib -o MiniCAD
GSPlus で動かしてみます。
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