なんか楽しくデバッグしたんですが...
生成コードが変
6800/6809が混じっているような。あぁ、そういえば...
このコードは6800用のオリジナルのTL/1を6809に移植しようとして挫折した
ものでした。どうりで細かいコメントが入っているはずだよ。そんなことしてたんだ。なので、そのままでは動かない。
おそらく、コード生成まで6809で動くようにして、どいういうコードを生成するかを考えた辺りでやめたんじゃないかと。
まあでも、6800の上位互換なので動かすぐらいだったら。全部のステートメントをテストしようとしたら大変だけど、簡単な例題くらいなら。
このままだと、生成されるコードはダサいのだけど、 まぁ、動いたからいいかな。
Basic Master Lv3 では動いているらしいので、ちゃんとしたものはどっかにあるはず。
主なバグは10進数の入出力だった。MULの結果がAに入ると思っているコードだったり。
まぁ、これで若い頃に時間が取れなくてやり残したことはだいたいできたかな。
sbc09 TL/1 source
OS9:tl1 tl1/test/t1.tl1
Do 1
2
3
4
5
6
7
8
9
10
OS9:list tl1/test/t1.tl1
% ** SPRITE TEST PROGRAM **
PROC WAIT,TIME
%--- MAIN ---
VAR I
BEGIN
WRITE(1:"Do ")
FOR I:=1 TO 10 DO [
WRITE(1:I,CRLF)
TIME
]
WAIT
END
%-- PROCEDURE WAIT --
WAIT
VAR I,J,K
BEGIN
FOR I:=0 TO 1 DO [
FOR J:=0 TO 255 DO [
FOR K:=0 TO 255 DO []]]
END
%-- PROCEDURE TIME --
TIME
VAR I,J
BEGIN
FOR I:=0 TO 10 DO [
FOR J:=0 TO 150 DO []]
END
380D: 9E 02 LDX <$02
380F: A7 00 STA +$00,X
3811: 86 0A LDA #$0A
3813: 34 02 PSHS A
3815: 86 01 LDA #$01
3817: 97 01 STA <$01
3819: 9E 02 LDX <$02
381B: A6 00 LDA +$00,X
381D: BD B6 2F JSR $B62F
3820: BD B6 BB JSR $B6BB
3823: 86 01 LDA #$01
3825: BD 38 80 JSR $3880
3828: 35 02 PULS A
382A: A1 00 CMPA +$00,X
382C: 23 05 BLS $3833
382E: 6C 00 INC +$00,X
3830: 7E 38 13 JMP $3813
3833: 86 01 LDA #$01
3835: BD 38 3B JSR $383B
No comments:
Post a Comment