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
"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"
+ );
}