소스 검색

+ allow writing 6502 assembler file with -sr (imaginary instructions) and indirect indexed addressing mode instructions

Nikolay Nikolov 1 개월 전
부모
커밋
dd726b8d58
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      compiler/mos6502/agsdas6500.pas

+ 5 - 2
compiler/mos6502/agsdas6500.pas

@@ -441,14 +441,17 @@ unit agsdas6500;
                         writer.AsmWrite(']');
                     end;
                 end
-              else if is_6502_zero_page_register(o.ref^.base) and (o.ref^.index=NR_Y) then
+              else if o.ref^.index=NR_Y then
                 begin
                   if assigned(o.ref^.symbol) then
                     internalerror(2025102305);
                   if o.ref^.offset<>0 then
                     internalerror(2025102306);
                   writer.AsmWrite('[');
-                  writer.AsmWrite(tostr(get_6502_zero_page_register_address(o.ref^.base)));
+                  if is_6502_zero_page_register(o.ref^.base) then
+                    writer.AsmWrite(tostr(get_6502_zero_page_register_address(o.ref^.base)))
+                  else
+                    writer.AsmWrite(std_regname(o.ref^.base));
                   writer.AsmWrite('],y');
                 end
               else