発掘してきた GAME09 はだいたい動きました。そのまま動かすのは簡単なんだけど、
os9上で動かすでしょ?
なのだが、relocatable でないところがある。input line buffer とか stack / user stack の位置とか。
disassemblerがROLをRORと出したり、jump tableの計算を間違えてたりとか、細かい問題があって少し時間がかかりました。
GAME09はVTLの焼き直しなわけですが、
https://www.mztn.org/rvtl/rvtl.html
実行中の行番号が仮想レジスタ中にある
そもそも、A-Zの一文字の変数がメモリアドレスに決め打ち、つまり、26個のレジスタがあるような感じ。
disassemble sourceなので変数マップが良くわからなくて,その辺で少し苦労したようです。
あとはソースのload/save機構を付ければ良いだけだ。まぁ、でもやるとしてもゆっくりで。
% src/v09c -rom src/os9/os9v2.rom -v src/os9/level2
NitrOS-9/6809 Level 2 V1.0.1
Unknown Machine
(C) 2014 The NitrOS-9 Project
http://www.nitros9.org
Shell
OS9:/v0/game09
*READY
:1000 "ADDRESS=" A=? A=A,A+$40
:1010 ??=A C=0,7 " " ?$=A:C) @=C+1
:1020 / @=A+8
:1030 #=1
:
*READY
:#=1
ADDRESS=:$800
0800 00 00 00 00 00 00 00 00
0808 00 00 00 00 00 00 00 00
0810 00 00 00 00 00 00 00 00
0818 00 00 00 00 00 00 00 00
0820 00 00 00 00 00 00 00 00
0828 00 00 00 00 00 00 00 00
0830 00 00 00 00 00 00 00 00
0838 00 00 00 00 00 00 00 00
0840 00 00 00 00 00 00 00 00
ADDRESS=:$600
0600 0A 25 03 C1 10 39 1C FE
0608 39 17 FD C1 C6 3A 17 00
0610 69 9E 9C 0D 8C 26 0F DC
0618 88 10 2B FA 35 17 FE 59
0620 C6 20 E7 1F 8D 54 8D 55
0628 C1 08 27 38 C1 0D 25 F6
0630 27 12 C1 18 27 D3 E7 80
0638 9C A2 26 EA 30 1F C6 08
0640 8D 38 20 E2 0D 8C 26 0F
ADDRESS=:
?6 1000 "ADDRESS=" A=? A=A,A+$40
*READY
:\SY
OS9:
No comments:
Post a Comment