Apple-I互換システムで使うため、LCCの6502ターゲットを開発中。
検索するとlcc65というプロジェクトが見つかるのだが、ソースはないし、特定機種限定の開発になっているらしいので、スクラッチ開発することにした。
以下、テストプログラムのコンパイル結果をTASMでアセンブルしたリストである。
まだ、アセンブラが通るレベルというだけで、詳細の確認はこれからだが、なんとなく、6502っぽいコードになっているかな?
疑似レジスタとして、ゼロページの16バイトを用意したが、コンパイラの出力を見る限り、16バイトもいらなかったかも?もう少し整理してから、最終的に結論を出そう。
0056 0349 B1 FA LDA (R5),Y 0057 034B 85 F6 STA R3 0058 034D C8 INY 0059 034E B1 FA LDA (R5),Y 0060 0350 85 F7 STA R3+1 0061 0352 ;ASGNI2 laddr 0062 0352 A0 02 LDY #2 0063 0354 A5 F6 LDA R3 0064 0356 91 F8 STA (R4),Y 0065 0358 A5 F7 LDA R3+1 0066 035A C8 INY 0067 035B 91 F8 STA (R4),Y 0068 035D ;SUBI2 reg acon 0069 035D 38 SEC 0070 035E A5 F6 LDA R3 0071 0360 E9 01 SBC # $FF & 1 0072 0362 85 F4 STA R2 0073 0364 A5 F7 LDA R3+1 0074 0366 E9 00 SBC # 1 >> 8 0075 0368 85 F5 STA R2+1 0076 036A ;ARGI2 reg 0077 036A A5 F5 LDA R2+1 0078 036C 48 PHA 0079 036D A5 F4 LDA R2 0080 036F 48 PHA 0081 0370 ;CALLI2 acon hasargs 0082 0370 20 FB 02 JSR foo 0083 0373 A2 02 LDX #2 0084 0375 68 PLA 0085 0376 CA DEX 0086 0377 D0 FC BNE *-2 0087 0379 ;LOADI2 reg 0088 0379 A5 F0 LDA R0 0089 037B 85 F6 STA R3 0090 037D A5 F1 LDA R0+1 0091 037F 85 F7 STA R3+1