user: Demonstrate the C code that generates the assembly output below:

```asm
<tst_screen>:
  endbr64
  push   %r15
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  lea    D135(%rip),%rbp
  push   %rbx
  mov    $0xa0,%ebx
  sub    $0x18,%rsp
  call   <cup@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <sm@plt>
  nopl   0x0(%rax)
L216:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L216
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    $0xa0,%ebx
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x3,%edi
  xor    %eax,%eax
  call   <cup@plt>
  nop
L158:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L158
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    $0x1a,%ebx
  call   <sm@plt>
  mov    $0x1,%esi
  mov    $0x5,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D320(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D828(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D305(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    $0x3,%edi
  xor    %eax,%eax
  call   <tbc@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  nopl   0x0(%rax)
L177:
  xor    %eax,%eax
  mov    $0x3,%edi
  call   <cuf@plt>
  xor    %eax,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L177
  mov    $0x4,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  xchg   %ax,%ax
L202:
  xor    %edi,%edi
  xor    %eax,%eax
  call   <tbc@plt>
  xor    %eax,%eax
  mov    $0x6,%edi
  call   <cuf@plt>
  sub    $0x1,%ebx
  jne    L202
  mov    $0x7,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  mov    $0x1,%edi
  xor    %eax,%eax
  lea    D601(%rip),%rbp
  call   <tbc@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <tbc@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
L44:
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L44
  mov    $0x2,%esi
  mov    $0x2,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  lea    D142(%rip),%rbp
  nopl   0x0(%rax)
L173:
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L173
  mov    $0x1,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D411(%rip),%rdi
  xor    %eax,%eax
  lea    D44(%rip),%r15
  call   <println@plt>
  lea    D783(%rip),%rdi
  xor    %eax,%eax
  lea    D554(%rip),%r12
  call   <printf@plt>
  xor    %eax,%eax
  lea    D282(%rip),%r14
  lea    D760(%rip),%r13
  call   <holdit@plt>
  lea    D429(%rip),%rdi
  xor    %eax,%eax
  movl   $0x0,(%rsp)
  call   <sm@plt>
L79:
  mov    %r15,%rdi
  xor    %eax,%eax
  mov    $0x11,%ebx
  call   <sm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  mov    $0x3,%edi
  xor    %eax,%eax
  call   <tbc@plt>
  nopl   0x0(%rax)
L46:
  xor    %eax,%eax
  mov    $0x8,%edi
  call   <cuf@plt>
  xor    %eax,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L46
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  xchg   %ax,%ax
L72:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L72
  xor    %eax,%eax
  lea    D715(%rip),%rdi
  mov    $0x3,%ebp
  call   <printf@plt>
  mov    (%rsp),%esi
  lea    D23(%rip),%rbx
  lea    D852(%rip),%rax
  test   %esi,%esi
  cmovne %rax,%rbx
  nopl   0x0(%rax)
L95:
  mov    %ebp,%esi
  mov    %ebp,%edi
  xor    %eax,%eax
  call   <cup@plt>
  add    $0x1,%ebp
  mov    %rbx,%rsi
  mov    %r14,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  cmp    $0x15,%ebp
  jne    L95
  xor    %eax,%eax
  mov    $0x8,%ebp
  call   <holdit@plt>
  mov    %r15,%rdi
  xor    %eax,%eax
  call   <rm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  nopl   0x0(%rax,%rax,1)
L297:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <printf@plt>
  sub    $0x1,%ebp
  jne    L297
  mov    $0x3,%ebp
  nopl   0x0(%rax)
L48:
  mov    %ebp,%esi
  mov    %ebp,%edi
  xor    %eax,%eax
  add    $0x1,%ebp
  call   <cup@plt>
  mov    %rbx,%rsi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  cmp    $0x15,%ebp
  jne    L48
  xor    %eax,%eax
  call   <holdit@plt>
  cmpl   $0x1,(%rsp)
  jne    L268
  mov    $0x2,%edi
  xor    %eax,%eax
  lea    D652(%rip),%rbp
  call   <ed@plt>
  lea    D17(%rip),%rdi
  xor    %eax,%eax
  lea    D267(%rip),%r13
  call   <sm@plt>
  lea    D15(%rip),%rdi
  xor    %eax,%eax
  lea    D519(%rip),%r12
  call   <sm@plt>
  movl   $0xffffffff,0x8(%rsp)
  lea    D470(%rip),%r15
  movl   $0x2,0xc(%rsp)
L56:
  movl   $0xc,(%rsp)
L199:
  mov    (%rsp),%ebx
  mov    $0x19,%esi
  xor    %eax,%eax
  mov    $0x1,%r14d
  sub    %ebx,%esi
  mov    %ebx,%edi
  call   <decstbm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    %ebx,%eax
  mov    $0x18,%edi
  neg    %eax
  lea    0x1a(%rax,%rax,1),%ebx
  xor    %eax,%eax
  call   <cud@plt>
  mov    0x8(%rsp),%ecx
  test   %ecx,%ecx
  je     L4
  nopl   0x0(%rax)
L274:
  mov    %r14d,%r8d
  mov    %ebx,%ecx
  lea    D674(%rip),%rdx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  add    $0x1,%r14d
  call   <printf@plt>
  cmp    $0x1f,%r14d
  jne    L274
L246:
  mov    $0x18,%edi
  xor    %eax,%eax
  mov    $0x1,%r14d
  call   <cuu@plt>
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  je     L296
  nopl   0x0(%rax)
L65:
  mov    %r14d,%r8d
  mov    %ebx,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  add    $0x1,%r14d
  call   <printf@plt>
  xor    %eax,%eax
  call   <ri@plt>
  xor    %eax,%eax
  call   <ri@plt>
  cmp    $0x1f,%r14d
  jne    L65
L18:
  xor    %eax,%eax
  call   <holdit@plt>
  subl   $0xb,(%rsp)
  mov    (%rsp),%eax
  cmp    $0xfffffff6,%eax
  jne    L199
  cmpl   $0x1,0xc(%rsp)
  je     L49
  lea    D15(%rip),%rdi
  xor    %eax,%eax
  call   <rm@plt>
  movl   $0x0,0x8(%rsp)
  movl   $0x1,0xc(%rsp)
  jmp    L56
  nopw   0x0(%rax,%rax,1)
L4:
  mov    %r14d,%r8d
  mov    %ebx,%ecx
  lea    D674(%rip),%rdx
  mov    %r15,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  add    $0x1,%r14d
  call   <printf@plt>
  cmp    $0x1f,%r14d
  jne    L4
  jmp    L246
L296:
  mov    %r14d,%r8d
  mov    %ebx,%ecx
  mov    %r13,%rdx
  mov    %r15,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  add    $0x1,%r14d
  call   <printf@plt>
  xor    %eax,%eax
  call   <ri@plt>
  xor    %eax,%eax
  call   <ri@plt>
  cmp    $0x1f,%r14d
  jne    L296
  jmp    L18
L268:
  lea    D429(%rip),%rdi
  xor    %eax,%eax
  movl   $0x1,(%rsp)
  call   <rm@plt>
  jmp    L79
L49:
  mov    $0x2,%edi
  xor    %eax,%eax
  lea    D74(%rip),%rbp
  call   <ed@plt>
  mov    $0x18,%esi
  xor    %eax,%eax
  mov    $0x17,%edi
  call   <decstbm@plt>
  lea    D534(%rip),%rdi
  xor    %eax,%eax
  lea    D404(%rip),%r15
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D97(%rip),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  lea    D17(%rip),%rdi
  xor    %eax,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x18,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D778(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  mov    %rbp,%rdi
  lea    D30(%rip),%rsi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  lea    D843(%rip),%rbp
  call   <holdit@plt>
  mov    $0x18,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <decstbm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    $0x14,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  xor    %eax,%eax
  lea    D426(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D867(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D355(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D680(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0x6,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D336(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D673(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x6,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D508(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D406(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D43(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D775(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  xor    %eax,%eax
  lea    D315(%rip),%rdi
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D313(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D141(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D765(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D1(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D626(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D726(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D504(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D840(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D46(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D568(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  mov    $0x6,%esi
  mov    $0xe,%edi
  call   <cup@plt>
  lea    D491(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D447(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xe,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D7(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D252(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x10,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D478(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D812(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x10,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D695(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D286(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0x12,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D329(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D799(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x12,%edi
  xor    %eax,%eax
  call   <cup@plt>
  xor    %eax,%eax
  lea    D542(%rip),%rdi
  call   <sgr@plt>
  lea    D562(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D317(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D429(%rip),%rdi
  xor    %eax,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x17,%edi
  xor    %eax,%eax
  call   <cup@plt>
  xor    %edi,%edi
  xor    %eax,%eax
  call   <el@plt>
  lea    D702(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  lea    D429(%rip),%rdi
  xor    %eax,%eax
  call   <sm@plt>
  mov    $0x1,%esi
  mov    $0x17,%edi
  xor    %eax,%eax
  call   <cup@plt>
  xor    %edi,%edi
  xor    %eax,%eax
  call   <el@plt>
  lea    D228(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  lea    D429(%rip),%rdi
  xor    %eax,%eax
  call   <rm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  xor    %eax,%eax
  mov    $0xc,%esi
  mov    $0x8,%edi
  call   <cup@plt>
  lea    D226(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x18,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x24,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D708(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x30,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D106(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x3c,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D422(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D298(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D625(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xe,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D618(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  mov    $0x1,%esi
  xor    %r13d,%r13d
  mov    $0x10,%edi
  call   <cup@plt>
  lea    D747(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D378(%rip),%rax
  mov    %rax,(%rsp)
L144:
  lea    0xa(%r13,%r13,1),%eax
  mov    $0x1,%r12d
  mov    %eax,0xc(%rsp)
  mov    %r13d,%eax
  add    $0x1,%r13d
  and    $0xfffffffd,%eax
  mov    %eax,0x8(%rsp)
L61:
  mov    0xc(%rsp),%edi
  lea    (%r12,%r12,2),%esi
  xor    %eax,%eax
  mov    %r12d,%r14d
  shl    $0x2,%esi
  call   <cup@plt>
  mov    (%r15,%r12,8),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  mov    0x8(%rsp),%edx
  test   %edx,%edx
  jne    L182
  mov    $0x42,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
L140:
  mov    (%rsp),%rax
  mov    $0x5,%ebx
  movsbl (%rax),%ebp
L12:
  mov    %ebp,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L12
  xor    %eax,%eax
  mov    $0x5,%ebx
  call   <decsc@plt>
  mov    %r14d,%esi
  mov    %r13d,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D317(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  mov    $0x42,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
  mov    $0x41,%edi
  call   <putchar@plt>
  xor    %eax,%eax
  call   <decrc@plt>
L254:
  mov    %ebp,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L254
  add    $0x1,%r12
  cmp    $0x6,%r12
  jne    L61
  addq   $0x1,(%rsp)
  cmp    $0x4,%r13d
  jne    L144
  lea    D867(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  mov    $0x42,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
  mov    $0x1,%esi
  mov    $0x15,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D219(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D485(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D360(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  add    $0x18,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1290 <holdit@plt>
  nopw   0x0(%rax,%rax,1)
L182:
  mov    $0x30,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
  jmp    L140
```

tool_calls: name: disassemble_data
arguments: data_label: D135
data_type: string
name: disassemble_data
arguments: data_label: D320
data_type: string
name: disassemble_data
arguments: data_label: D828
data_type: string
name: disassemble_data
arguments: data_label: D305
data_type: string
name: disassemble_data
arguments: data_label: D601
data_type: string
name: disassemble_data
arguments: data_label: D142
data_type: string
name: disassemble_data
arguments: data_label: D411
data_type: string
name: disassemble_data
arguments: data_label: D44
data_type: string
name: disassemble_data
arguments: data_label: D783
data_type: string
name: disassemble_data
arguments: data_label: D554
data_type: string
name: disassemble_data
arguments: data_label: D282
data_type: string
name: disassemble_data
arguments: data_label: D760
data_type: string
name: disassemble_data
arguments: data_label: D429
data_type: string
name: disassemble_data
arguments: data_label: D715
data_type: string
name: disassemble_data
arguments: data_label: D23
data_type: string
name: disassemble_data
arguments: data_label: D852
data_type: string
name: disassemble_data
arguments: data_label: D652
data_type: string
name: disassemble_data
arguments: data_label: D17
data_type: string
name: disassemble_data
arguments: data_label: D267
data_type: string
name: disassemble_data
arguments: data_label: D15
data_type: string
name: disassemble_data
arguments: data_label: D519
data_type: string
name: disassemble_data
arguments: data_label: D470
data_type: string
name: disassemble_data
arguments: data_label: D674
data_type: string
name: disassemble_data
arguments: data_label: D74
data_type: string
name: disassemble_data
arguments: data_label: D534
data_type: string
name: disassemble_data
arguments: data_label: D97
data_type: string
name: disassemble_data
arguments: data_label: D778
data_type: string
name: disassemble_data
arguments: data_label: D30
data_type: string
name: disassemble_data
arguments: data_label: D843
data_type: string
name: disassemble_data
arguments: data_label: D426
data_type: string
name: disassemble_data
arguments: data_label: D867
data_type: string
name: disassemble_data
arguments: data_label: D355
data_type: string
name: disassemble_data
arguments: data_label: D680
data_type: string
name: disassemble_data
arguments: data_label: D336
data_type: string
name: disassemble_data
arguments: data_label: D673
data_type: string
name: disassemble_data
arguments: data_label: D508
data_type: string
name: disassemble_data
arguments: data_label: D406
data_type: string
name: disassemble_data
arguments: data_label: D43
data_type: string
name: disassemble_data
arguments: data_label: D775
data_type: string
name: disassemble_data
arguments: data_label: D315
data_type: string
name: disassemble_data
arguments: data_label: D313
data_type: string
name: disassemble_data
arguments: data_label: D141
data_type: string
name: disassemble_data
arguments: data_label: D765
data_type: string
name: disassemble_data
arguments: data_label: D1
data_type: string
name: disassemble_data
arguments: data_label: D626
data_type: string
name: disassemble_data
arguments: data_label: D726
data_type: string
name: disassemble_data
arguments: data_label: D504
data_type: string
name: disassemble_data
arguments: data_label: D840
data_type: string
name: disassemble_data
arguments: data_label: D46
data_type: string
name: disassemble_data
arguments: data_label: D568
data_type: string
name: disassemble_data
arguments: data_label: D491
data_type: string
name: disassemble_data
arguments: data_label: D447
data_type: string
name: disassemble_data
arguments: data_label: D7
data_type: string
name: disassemble_data
arguments: data_label: D252
data_type: string
name: disassemble_data
arguments: data_label: D478
data_type: string
name: disassemble_data
arguments: data_label: D812
data_type: string
name: disassemble_data
arguments: data_label: D695
data_type: string
name: disassemble_data
arguments: data_label: D286
data_type: string
name: disassemble_data
arguments: data_label: D329
data_type: string
name: disassemble_data
arguments: data_label: D799
data_type: string
name: disassemble_data
arguments: data_label: D542
data_type: string
name: disassemble_data
arguments: data_label: D562
data_type: string
name: disassemble_data
arguments: data_label: D317
data_type: string
name: disassemble_data
arguments: data_label: D702
data_type: string
name: disassemble_data
arguments: data_label: D228
data_type: string
name: disassemble_data
arguments: data_label: D226
data_type: string
name: disassemble_data
arguments: data_label: D708
data_type: string
name: disassemble_data
arguments: data_label: D106
data_type: string
name: disassemble_data
arguments: data_label: D422
data_type: string
name: disassemble_data
arguments: data_label: D298
data_type: string
name: disassemble_data
arguments: data_label: D625
data_type: string
name: disassemble_data
arguments: data_label: D618
data_type: string
name: disassemble_data
arguments: data_label: D747
data_type: string
name: disassemble_data
arguments: data_label: D378
data_type: string
name: disassemble_data
arguments: data_label: D219
data_type: string
name: disassemble_data
arguments: data_label: D485
data_type: string
name: disassemble_data
arguments: data_label: D360
data_type: string

tool: D135: ?7

tool: D320: This should be three identical lines of *'s completely filling

tool: D828: the top of the screen without any empty lines between.

tool: D305: (Test of WRAP AROUND mode setting.)

tool: D601: 	*

tool: D142:      *

tool: D411: Test of TAB setting/resetting. These two lines

tool: D44: ?3

tool: D783: should look the same. 

tool: D554: 1234567890

tool: D282: This is 132 column mode, %s background.

tool: D760: This is 80 column mode, %s background.

tool: D429: ?5

tool: D715: 12

tool: D23: light

tool: D852: dark

tool: D652: %s scroll %s region %d Line %d


tool: D17: ?6

tool: D267: down

tool: D15: ?4

tool: D519: Soft

tool: D470: Jump

tool: D674: up

tool: D74: %s

tool: D534: 
Origin mode test. This line should be at the bottom of the screen.

tool: D97: This line should be the one above the bottom of the screeen. 

tool: D778: Origin mode test. This line should be at the bottom of the screen.

tool: D30: This line should be at the top if the screen. 

tool: D843: bold

tool: D426: Graphic rendition test pattern:

tool: D867: 0

tool: D355: vanilla

tool: D680: 0;1

tool: D336: ;4

tool: D673: underline

tool: D508: ;1

tool: D406: 4

tool: D43: bold underline

tool: D775: 0;5

tool: D315: blink

tool: D313: 0;5;1

tool: D141: bold blink

tool: D765: 0;4;5

tool: D1: underline blink

tool: D626: 0;1;4;5

tool: D726: bold underline blink

tool: D504: 1;4;5;0;7

tool: D840: negative

tool: D46: 0;1;7

tool: D568: bold negative

tool: D491: 0;4;7

tool: D447: underline negative

tool: D7: 0;1;4;7

tool: D252: bold underline negative

tool: D478: 1;4;;5;7

tool: D812: blink negative

tool: D695: 0;1;5;7

tool: D286: bold blink negative

tool: D329: 0;4;5;7

tool: D799: underline blink negative

tool: D542: 0;1;4;5;7

tool: D562: bold underline blink negative

tool: 

tool: D702: Dark background. 

tool: D228: Light background. 

tool: D226: normal

tool: D708: underscored

tool: D106: blinking

tool: D422: reversed

tool: D298: stars:

tool: D625: line:

tool: D618: x'es:

tool: D747: diamonds:

tool: D378: *qx`

tool: D219: Test of the SAVE/RESTORE CURSOR feature. There should

tool: D485: be ten characters of each flavour, and a rectangle

tool: D360: of 5 x 4 A's filling the top left of the screen.

assistant: ```c
tst_screen() {
  int i, j, cset, row, col, down, soft, background;
  static char *tststr = "*qx`";
  static char *attr[5] = {";0", ";1", ";4", ";5", ";7"};
  cup(1, 1);
  sm("?7");
  for (col = 1; col <= 160; col++)
    printf("*");
  rm("?7");
  cup(3, 1);
  for (col = 1; col <= 160; col++)
    printf("*");
  sm("?7");
  cup(5, 1);
  println("This should be three identical lines of *'s completely filling");
  println("the top of the screen without any empty lines between.");
  println("(Test of WRAP AROUND mode setting.)");
  holdit();
  ed(2);
  tbc(3);
  cup(1, 1);
  for (col = 1; col <= 78; col += 3) {
    cuf(3);
    hts();
  }
  cup(1, 4);
  for (col = 4; col <= 78; col += 6) {
    tbc(0);
    cuf(6);
  }
  cup(1, 7);
  tbc(1);
  tbc(2);
  cup(1, 1);
  for (col = 1; col <= 78; col += 6)
    printf("\t*");
  cup(2, 2);
  for (col = 2; col <= 78; col += 6)
    printf("     *");
  cup(4, 1);
  println("Test of TAB setting/resetting. These two lines");
  printf("should look the same. ");
  holdit();
  for (background = 0; background <= 1; background++) {
    if (background)
      rm("?5");
    else
      sm("?5");
    sm("?3");
    ed(2);
    cup(1, 1);
    tbc(3);
    for (col = 1; col <= 132; col += 8) {
      cuf(8);
      hts();
    }
    cup(1, 1);
    for (col = 1; col <= 130; col += 10)
      printf("1234567890");
    printf("12");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 132 column mode, %s background.", background ? "dark" : "light");
    }
    holdit();
    rm("?3");
    ed(2);
    cup(1, 1);
    for (col = 1; col <= 80; col += 10)
      printf("1234567890");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 80 column mode, %s background.", background ? "dark" : "light");
    }
    holdit();
  }
  ed(2);
  sm("?6");
  for (soft = -1; soft <= 0; soft++) {
    if (soft)
      sm("?4");
    else
      rm("?4");
    for (row = 12; row >= 1; row -= 11) {
      decstbm(row, 24 - row + 1);
      ed(2);
      for (down = 0; down >= -1; down--) {
        if (down)
          cuu(24);
        else
          cud(24);
        for (i = 1; i <= 30; i++) {
          printf("%s scroll %s region %d Line %d\n", soft ? "Soft" : "Jump", down ? "down" : "up", 2 * (13 - row), i);
          if (down) {
            ri();
            ri();
          }
        }
      }
      holdit();
    }
  }
  ed(2);
  decstbm(23, 24);
  printf("\nOrigin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be the one above the bottom of the screeen. ");
  holdit();
  ed(2);
  rm("?6");
  cup(24, 1);
  printf("Origin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be at the top if the screen. ");
  holdit();
  decstbm(1, 24);
  ed(2);
  cup(1, 20);
  printf("Graphic rendition test pattern:");
  cup(4, 1);
  sgr("0");
  printf("vanilla");
  cup(4, 40);
  sgr("0;1");
  printf("bold");
  cup(6, 6);
  sgr(";4");
  printf("underline");
  cup(6, 45);
  sgr(";1");
  sgr("4");
  printf("bold underline");
  cup(8, 1);
  sgr("0;5");
  printf("blink");
  cup(8, 40);
  sgr("0;5;1");
  printf("bold blink");
  cup(10, 6);
  sgr("0;4;5");
  printf("underline blink");
  cup(10, 45);
  sgr("0;1;4;5");
  printf("bold underline blink");
  cup(12, 1);
  sgr("1;4;5;0;7");
  printf("negative");
  cup(12, 40);
  sgr("0;1;7");
  printf("bold negative");
  cup(14, 6);
  sgr("0;4;7");
  printf("underline negative");
  cup(14, 45);
  sgr("0;1;4;7");
  printf("bold underline negative");
  cup(16, 1);
  sgr("1;4;;5;7");
  printf("blink negative");
  cup(16, 40);
  sgr("0;1;5;7");
  printf("bold blink negative");
  cup(18, 6);
  sgr("0;4;5;7");
  printf("underline blink negative");
  cup(18, 45);
  sgr("0;1;4;5;7");
  printf("bold underline blink negative");
  sgr("");
  rm("?5");
  cup(23, 1);
  el(0);
  printf("Dark background. ");
  holdit();
  sm("?5");
  cup(23, 1);
  el(0);
  printf("Light background. ");
  holdit();
  rm("?5");
  ed(2);
  cup(8, 12);
  printf("normal");
  cup(8, 24);
  printf("bold");
  cup(8, 36);
  printf("underscored");
  cup(8, 48);
  printf("blinking");
  cup(8, 60);
  printf("reversed");
  cup(10, 1);
  printf("stars:");
  cup(12, 1);
  printf("line:");
  cup(14, 1);
  printf("x'es:");
  cup(16, 1);
  printf("diamonds:");
  for (cset = 0; cset <= 3; cset++) {
    for (i = 0; i <= 4; i++) {
      cup(10 + 2 * cset, 12 + 12 * i);
      sgr(attr[i]);
      if (cset == 0 || cset == 2)
        scs(0, 'B');
      else
        scs(0, '0');
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
      decsc();
      cup(cset + 1, i + 1);
      sgr("");
      scs(0, 'B');
      printf("A");
      decrc();
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
    }
  }
  sgr("0");
  scs(0, 'B');
  cup(21, 1);
  println("Test of the SAVE/RESTORE CURSOR feature. There should");
  println("be ten characters of each flavour, and a rectangle");
  println("of 5 x 4 A's filling the top left of the screen.");
  holdit();
}
```