@ macro
endm
-D macro v
- mov_lw v
+;----------------------------------------
+; For adding a byte to the debug buffer.
+; Not for use in High ISR. In all cases:
+;
+; STATUS any trashed
+; all others any preserved
+
+ ifndef NDEBUG
+;----------
+Dv macro ; sorry, but assembler's dw directive isn't case-sensitive
+;
+; W message byte preserved
+;
call debugbyte
endm
+;----------
+Dl macro debug_literal_value
+;
+; W any literal value as specified
+;
+ mov_lw debug_literal_value
+ Dv
+ endm
+
+;----------
+Df macro debug_register_file_address
+;
+; W any value from specified memory location
+;
+ mov_fw debug_register_file_address
+ Dv
+ endm
+ else
+Dv macro
+ endm
+Dl macro debug_literal_value
+ endm
+Df macro debug_register_file_address
+ endm
+ endif
+
;----------------------------------------
; For entering and leaving Low ISR, saving and restoring STATUS and W
; See above under <something>_intrl, and {master,slave}_interrupt_low