]> cloudbase.mooo.com Git - avrcpm.git/blobdiff - avrcpm/avr/macros.inc
* New macros 'lcall' and 'ljmp'
[avrcpm.git] / avrcpm / avr / macros.inc
index d1178b77642d2fae263f37cdfcf5de27d55b4eb4..669938ebbc7c03eef14ce20bfc5fef895a1de7a4 100644 (file)
   .org pos_                    ; restore PC
 .endm
 
+;------------------------------------------------
+; 
+;
+.macro  ljmp
+  .if FLASHEND > 0x0fff
+       jmp     @0
+  .else
+       rjmp    @0
+  .endif
+.endm
+
+;------------------------------------------------
+;
+;
+.macro  lcall
+  .if FLASHEND > 0x0fff
+;      call    @0
+
+    .ifdef @0
+      .if abs(PC - @0) > 2048
+       call    @0
+      .else
+       rcall   @0
+      .endif
+    .else
+       call    @0
+    .endif
+  .else
+       rcall   @0
+  .endif
+.endm
+
 ;------------------------------------------------
 ; Print string.
 ;      printstring "String"
 ;      print cr, lf
 
 .macro printnewline
-  rcall        printstr
+  lcall        printstr
   .db 13,0
 .endm