// File: jkingan[P]ladyheather/heather.cpp
// Function: plusminus_char(int, int, unsigned char)
int plusminus_char(COORD row, COORD col, u08 color)
{
   // erase the old character cell
   erase_rectangle(col,row, TEXT_WIDTH,TEXT_HEIGHT);

   // draw the +/- symbol (which is not in the normal font)
   dot(col+3, row+0, color);  // plus
   dot(col+3, row+1, color);
   dot(col+3, row+2, color);
   dot(col+3, row+3, color);
   dot(col+3, row+4, color);
   dot(col+3, row+5, color);
   dot(col+4, row+0, color);
   dot(col+4, row+1, color);
   dot(col+4, row+2, color);
   dot(col+4, row+3, color);
   dot(col+4, row+4, color);
   dot(col+4, row+5, color);

   dot(col+1, row+2, color);
   dot(col+2, row+2, color);
   dot(col+5, row+2, color);
   dot(col+6, row+2, color);
   dot(col+1, row+3, color);
   dot(col+2, row+3, color);
   dot(col+5, row+3, color);
   dot(col+6, row+3, color);

   dot(col+1, row+7, color);    // minus
   dot(col+2, row+7, color);
   dot(col+3, row+7, color);
   dot(col+4, row+7, color);
   dot(col+5, row+7, color);
   dot(col+6, row+7, color);
   dot(col+1, row+8, color);
   dot(col+2, row+8, color);
   dot(col+3, row+8, color);
   dot(col+4, row+8, color);
   dot(col+5, row+8, color);
   dot(col+6, row+8, color);

   return 8;  // width
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %dl, %al
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movl -0x8(%rbp), %edi
movl -0x4(%rbp), %esi
movl 0x266f41(%rip), %edx    # 0x2779f0
movl 0x266f3f(%rip), %ecx    # 0x2779f4
callq 0xf250
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x0, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x1, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x4, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x5, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x0, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x1, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x4, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x5, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x1, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x2, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x5, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x6, %edi
movl -0x4(%rbp), %esi
addl $0x2, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x1, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x2, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x5, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x6, %edi
movl -0x4(%rbp), %esi
addl $0x3, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x1, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x2, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x5, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x6, %edi
movl -0x4(%rbp), %esi
addl $0x7, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x1, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x2, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x3, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x4, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x5, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl -0x8(%rbp), %edi
addl $0x6, %edi
movl -0x4(%rbp), %esi
addl $0x8, %esi
movzbl -0x9(%rbp), %edx
callq 0x10d70
movl $0x8, %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)