X-Git-Url: https://git.defcon.no/?a=blobdiff_plain;f=render.c;h=910ef09cd7eb8e6f214ce8abe29413eebdab226a;hb=HEAD;hp=06e6a2237f718a95bc41f2e72a96098997f7f62c;hpb=3e082840a952683d929f691852b8fb2830ab7ae9;p=avrfbosd diff --git a/render.c b/render.c index 06e6a22..910ef09 100644 --- a/render.c +++ b/render.c @@ -8,7 +8,7 @@ extern volatile char* screen_buffer; void asm_render_line( void ) { - __asm__ __volatile__ ( + __asm__ __volatile__ ( ".macro outbit p" "\n\t" "BST __tmp_reg__,7" "\n\t" // Store bit 7 to T "BLD r16,7" "\n\t" // Load bit T into r16 bit number 7 @@ -34,33 +34,33 @@ void asm_render_line( void ) { "start_line:" "\n\t" "LD __tmp_reg__,X+" "\n\t" // Load from address pointed to by X into temporary register, then increment X-pointer - "outbit %[port]" "\n\t" // Output bit 7 using Macro + "outbit %[port]" "\n\t" // Output bit 7 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 6 using Macro + "outbit %[port]" "\n\t" // Output bit 6 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 5 using Macro + "outbit %[port]" "\n\t" // Output bit 5 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 4 using Macro + "outbit %[port]" "\n\t" // Output bit 4 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 3 using Macro + "outbit %[port]" "\n\t" // Output bit 3 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 2 using Macro + "outbit %[port]" "\n\t" // Output bit 2 using Macro "LSL __tmp_reg__" "\n\t" // Left-shift for next bit - "outbit %[port]" "\n\t" // Output bit 1 using Macro + "outbit %[port]" "\n\t" // Output bit 1 using Macro "DEC %[hr]" "\n\t" // Decrement num-bytes-remaining-in-resolution "BRNE loop_byte" "\n\t" // Branch to loop6 if %[hres] != zero "LSL __tmp_reg__" "\n\t" // Left-shift for last bit on the line - "outbit %[port]" "\n\t" // Output bit 0 using Macro. + "outbit %[port]" "\n\t" // Output bit 0 using Macro. "CBI %[port],7" "\n\t" // Clear our "display bit" to ensure we end on black - : + : : [port] "i" (_SFR_IO_ADDR(PORTD)), "x" (screen_buffer), "y" (buffer_position), [hr] "d" (hres_bytes) - : "r16" - ); + : "r16" + ); }