■Wheezy+openjava-1.6-jreで「CASL II シミュレータ」を試す 仮想マシンやchroot環境等のホストOSから隔離された環境で。 CASLIIシミュレータをダウンロードする前にお読みください(IPA) http://www.jitec.jp/1_20casl2/casl2dl_001.html ■要件のJava SDK 1.4.2_06とはレトロでちょっとw。。。 zip内は基本的にWindows用に書かれている。 $ zipinfo javaCASL2_2.0.zip Archive: javaCASL2_2.0.zip Zip file size: 103376 bytes, number of entries: 18 -rw-a-- 2.2 ntf 2738 bx defX 05-Jul-27 10:57 readme.txt -rw-a-- 2.2 ntf 23711 bx defX 05-May-26 21:58 run.jar -rwxa-- 2.2 ntf 48 bx stor 04-Dec-26 16:47 TestProgram/CASL2.bat -rw-a-- 2.2 ntf 775 bx defX 00-May-01 16:24 TestProgram/count1.cas -rw-a-- 2.2 ntf 956 bx defX 05-May-27 10:43 TestProgram/ExplanatoryNote.txt -rw-a-- 2.2 ntf 203 bx defX 00-May-01 11:29 TestProgram/extern.cas -rw-a-- 2.2 ntf 182 bx defX 00-May-04 21:42 TestProgram/gsub1.cas -rw-a-- 2.2 ntf 162 bx defX 00-May-04 21:43 TestProgram/gsub11.cas -rw-a-- 2.2 ntf 159 bx defX 00-May-01 11:31 TestProgram/gsub2.cas -rwxa-- 2.2 ntf 108 bx defX 04-Dec-26 21:56 TestProgram/Javas.bat -rwxa-- 2.2 ntf 46 bx stor 04-Dec-26 22:10 TestProgram/RUN.bat -rw-a-- 2.2 ntf 659 bx defX 00-May-20 11:22 TestProgram/sample1.cas -rw-a-- 2.2 ntf 597 bx defX 00-May-20 11:32 TestProgram/sample2.cas -rw-a-- 2.2 ntf 531 bx defX 00-May-05 21:49 TestProgram/sample3.cas -rw-a-- 2.2 ntf 725 bx defX 01-Apr-21 17:43 TestProgram/sample4.cas -rw-a-- 2.2 ntf 175 bx defX 05-Mar-23 11:22 TestProgram/smain.cas -rw-a-- 2.2 ntf 22909 bx defX 05-May-26 21:57 casl2.jar -rw-a-- 2.2 ntf 74741 bx defX 05-Jul-04 15:35 Readme.pdf 18 files, 129425 bytes uncompressed, 100820 bytes compressed: 22.1% ■特にディレクトリを作ってくれないようなので、それに合わせて展開。 $ test -d CASL2 || mkdir CASL2 && cd CASL2 && \ unzip ../javaCASL2_2.0.zip && cd .. Archive: ../javaCASL2_2.0.zip inflating: readme.txt inflating: run.jar extracting: TestProgram/CASL2.bat inflating: TestProgram/count1.cas inflating: TestProgram/ExplanatoryNote.txt inflating: TestProgram/extern.cas inflating: TestProgram/gsub1.cas inflating: TestProgram/gsub11.cas inflating: TestProgram/gsub2.cas inflating: TestProgram/Javas.bat extracting: TestProgram/RUN.bat inflating: TestProgram/sample1.cas inflating: TestProgram/sample2.cas inflating: TestProgram/sample3.cas inflating: TestProgram/sample4.cas inflating: TestProgram/smain.cas inflating: casl2.jar inflating: Readme.pdf $ find CASL2/ -type f -print CASL2/Readme.pdf CASL2/casl2.jar CASL2/TestProgram/sample3.cas CASL2/TestProgram/RUN.bat CASL2/TestProgram/extern.cas CASL2/TestProgram/gsub2.cas CASL2/TestProgram/gsub1.cas CASL2/TestProgram/smain.cas CASL2/TestProgram/gsub11.cas CASL2/TestProgram/sample4.cas CASL2/TestProgram/CASL2.bat CASL2/TestProgram/ExplanatoryNote.txt CASL2/TestProgram/Javas.bat CASL2/TestProgram/count1.cas CASL2/TestProgram/sample1.cas CASL2/TestProgram/sample2.cas CASL2/run.jar CASL2/readme.txt ■シフトJISなので、お好きな方法で変換。 例えばlvが無いならnkfとか。。。 $ nkf -g CASL2/readme.txt Shift_JIS $ lv -s CASL2/readme.txt > CASL2/readme_utf8.txt || \ nkf -Lu -d CASL2/readme.txt > CASL2/readme_utf8.txt ■説明通りにやるなら以下より1.4を。 Oracle Java Archive http://www.oracle.com/technetwork/java/archive-139210.html ■今回は、jre1.6を導入。 $ sudo apt-get install -y openjdk-6-jre ■DISPLAY環境変数が要るんだと。標準出力なのに。。。 $ java -jar ~/CASL2/run.jar hello.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2013/8/19 ) Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173) at java.awt.Window.<init>(Window.java:546) at java.awt.Frame.<init>(Frame.java:419) at Dcosmos.<init>(Dcosmos.java:26) at RUN.main(RUN.java:39) $ ssh -X test-debian $ echo $DISPLAY localhost:10.0 $ java -jar ~/CASL2/casl2.jar hello.cas $ java -jar ~/CASL2/run.jar hello.obj COMETⅡ Emulator -V2.00(2005/05/27)- ( Date : 2013/8/19 ) Hello World END COMETⅡ Emulator. ■jarのパスを間違えると以下のようなエラーが出る。 $ java -jar run.jar hello.obj Unable to access jarfile run.jar ■文字列と文字数を渡せば良いということで。 $ cat hello.cas MAIN START OUT BUF,LEN RET BUF DC 'Hello World' LEN DC 12 END $ WORD="Hello New World"; \ cat hello.cas | \ sed s/"Hello World"/"$WORD"/ | \ sed s/"12"/`echo -n "$WORD" | wc -c`/ > new.cas $ java -jar casl2.jar new.cas >/dev/null 2>&1 && \ java -jar run.jar new.obj 2>&1 | grep -v "COMET.*Emulator" Hello New World ■余談。。。 $ cat hello.obj NAME:MAIN STARTadr:0000R SIZE:0010 0000:FF02 0001:0004R 0002:000FR 0003:8100 0004:0048 0005:0065 0006:006C 0007:006C 0008:006F 0009:0020 000A:0057 000B:006F 000C:0072 000D:006C 000E:0064 000F:000C END ■前回のスクリプトでどこが文字列か分かる。 10進数<=>ASCII<=>16進数変換(bash+awk) http://labunix.hateblo.jp/entry/20130813/1376399226 $ for n in H e l l o \ W o r l d;do \ echo $(printf "%03d" \""$n" ) | awk '{printf "%03d,%c,0x%x\n",$1,$1,$1}'; \ done;echo 072,H,0x48 101,e,0x65 108,l,0x6c 108,l,0x6c 111,o,0x6f 032, ,0x20 087,W,0x57 111,o,0x6f 114,r,0x72 108,l,0x6c 100,d,0x64