user: 这段汇编代码用C语言表示是什么样的？

```asm
<tst_screen>:
  endbr64
  push   %r15
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  lea    D327(%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)
L251:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L251
  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
L185:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L185
  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    D93(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D114(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D548(%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)
L70:
  xor    %eax,%eax
  mov    $0x3,%edi
  call   <cuf@plt>
  xor    %eax,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L70
  mov    $0x4,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  xchg   %ax,%ax
L56:
  xor    %edi,%edi
  xor    %eax,%eax
  call   <tbc@plt>
  xor    %eax,%eax
  mov    $0x6,%edi
  call   <cuf@plt>
  sub    $0x1,%ebx
  jne    L56
  mov    $0x7,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  mov    $0x1,%edi
  xor    %eax,%eax
  lea    D807(%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>
L9:
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L9
  mov    $0x2,%esi
  mov    $0x2,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  lea    D628(%rip),%rbp
  nopl   0x0(%rax)
L25:
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L25
  mov    $0x1,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D463(%rip),%rdi
  xor    %eax,%eax
  lea    D845(%rip),%r15
  call   <println@plt>
  lea    D125(%rip),%rdi
  xor    %eax,%eax
  lea    D273(%rip),%r12
  call   <printf@plt>
  xor    %eax,%eax
  lea    D877(%rip),%r14
  lea    D465(%rip),%r13
  call   <holdit@plt>
  lea    D363(%rip),%rdi
  xor    %eax,%eax
  movl   $0x0,(%rsp)
  call   <sm@plt>
L224:
  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)
L90:
  xor    %eax,%eax
  mov    $0x8,%edi
  call   <cuf@plt>
  xor    %eax,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L90
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  mov    $0xd,%ebx
  call   <cup@plt>
  xchg   %ax,%ax
L129:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L129
  xor    %eax,%eax
  lea    D503(%rip),%rdi
  mov    $0x3,%ebp
  call   <printf@plt>
  mov    (%rsp),%edx
  lea    D874(%rip),%rbx
  lea    D529(%rip),%rax
  test   %edx,%edx
  cmovne %rax,%rbx
  nopl   0x0(%rax)
L42:
  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    L42
  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)
L73:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <printf@plt>
  sub    $0x1,%ebp
  jne    L73
  mov    $0x3,%ebp
  nopl   0x0(%rax)
L204:
  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    L204
  xor    %eax,%eax
  call   <holdit@plt>
  cmpl   $0x1,(%rsp)
  jne    L74
  mov    $0x2,%edi
  xor    %eax,%eax
  mov    $0xffffffff,%ebp
  call   <ed@plt>
  lea    D18(%rip),%rdi
  xor    %eax,%eax
  lea    D32(%rip),%r13
  call   <sm@plt>
  lea    D210(%rip),%rdi
  xor    %eax,%eax
  lea    D728(%rip),%r14
  call   <sm@plt>
  movl   $0x2,0xc(%rsp)
L126:
  movl   $0xc,0x8(%rsp)
L220:
  mov    0x8(%rsp),%ebx
  mov    $0x19,%esi
  xor    %eax,%eax
  sub    %ebx,%esi
  mov    %ebx,%edi
  call   <decstbm@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <ed@plt>
  mov    %ebx,%eax
  mov    $0x18,%edi
  xor    %ebx,%ebx
  neg    %eax
  lea    0x1a(%rax,%rax,1),%r12d
  xor    %eax,%eax
  call   <cud@plt>
L1:
  test   %ebx,%ebx
  lea    D1(%rip),%rax
  lea    D375(%rip),%rdx
  mov    $0x1,%r15d
  cmovne %rdx,%rax
  mov    %rax,(%rsp)
  jmp    L54
  nopl   0x0(%rax,%rax,1)
L29:
  mov    %r15d,%r8d
  mov    %r12d,%ecx
  test   %ebp,%ebp
  je     L250
  lea    D375(%rip),%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
L46:
  xor    %eax,%eax
  add    $0x1,%r15d
  call   <ri@plt>
  xor    %eax,%eax
  call   <ri@plt>
  cmp    $0x1f,%r15d
  je     L263
L54:
  test   %ebx,%ebx
  jne    L29
  test   %ebp,%ebp
  lea    D310(%rip),%rsi
  mov    %r15d,%r8d
  mov    %r12d,%ecx
  cmovne %r14,%rsi
  lea    D1(%rip),%rdx
  mov    %r13,%rdi
  xor    %eax,%eax
  add    $0x1,%r15d
  call   <printf@plt>
  cmp    $0x1f,%r15d
  jne    L54
L263:
  lea    -0x1(%rbx),%eax
  mov    $0xffffffff,%ebx
  cmp    $0xfffffffe,%eax
  je     L191
  mov    $0x18,%edi
  xor    %eax,%eax
  call   <cuu@plt>
  jmp    L1
  xchg   %ax,%ax
L250:
  mov    (%rsp),%rdx
  lea    D310(%rip),%rsi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L46
  nopw   0x0(%rax,%rax,1)
L191:
  xor    %eax,%eax
  call   <holdit@plt>
  subl   $0xb,0x8(%rsp)
  mov    0x8(%rsp),%eax
  cmp    $0xfffffff6,%eax
  jne    L220
  cmpl   $0x1,0xc(%rsp)
  je     L270
  lea    D210(%rip),%rdi
  xor    %eax,%eax
  xor    %ebp,%ebp
  call   <rm@plt>
  movl   $0x1,0xc(%rsp)
  jmp    L126
L74:
  lea    D363(%rip),%rdi
  xor    %eax,%eax
  movl   $0x1,(%rsp)
  call   <rm@plt>
  jmp    L224
L270:
  mov    $0x2,%edi
  xor    %eax,%eax
  lea    D359(%rip),%rbp
  call   <ed@plt>
  mov    $0x18,%esi
  xor    %eax,%eax
  mov    $0x17,%edi
  call   <decstbm@plt>
  lea    D613(%rip),%rdi
  xor    %eax,%eax
  lea    D384(%rip),%r15
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D352(%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    D18(%rip),%rdi
  xor    %eax,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x18,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D889(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <cup@plt>
  mov    %rbp,%rdi
  lea    D199(%rip),%rsi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  lea    D527(%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    D758(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D573(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D875(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x4,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D99(%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    D537(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D87(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x6,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D144(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D587(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D569(%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    D471(%rip),%rdi
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D681(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D312(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D645(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D263(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D55(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D851(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D872(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D262(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D209(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D860(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  mov    $0x6,%esi
  mov    $0xe,%edi
  call   <cup@plt>
  lea    D357(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D202(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xe,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D308(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D376(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x10,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D280(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D253(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x10,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D321(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D109(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0x12,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D492(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D500(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x12,%edi
  xor    %eax,%eax
  call   <cup@plt>
  xor    %eax,%eax
  lea    D706(%rip),%rdi
  call   <sgr@plt>
  lea    D812(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D474(%rip),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  lea    D363(%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    D813(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  lea    D363(%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    D808(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <holdit@plt>
  lea    D363(%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    D797(%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    D417(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x30,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D88(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x3c,%esi
  mov    $0x8,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D259(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xa,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D408(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D59(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xe,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D480(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  mov    $0x1,%esi
  xor    %r12d,%r12d
  mov    $0x10,%edi
  call   <cup@plt>
  lea    D17(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D667(%rip),%rax
  mov    %rax,(%rsp)
L75:
  mov    %r12d,%eax
  lea    0xa(%r12,%r12,1),%r14d
  mov    $0x1,%ebx
  add    $0x1,%r12d
  and    $0xfffffffd,%eax
  mov    %eax,0x8(%rsp)
L243:
  lea    (%rbx,%rbx,2),%esi
  mov    %r14d,%edi
  xor    %eax,%eax
  mov    %ebx,%r13d
  shl    $0x2,%esi
  call   <cup@plt>
  mov    (%r15,%rbx,8),%rdi
  xor    %eax,%eax
  call   <sgr@plt>
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jne    L249
  mov    $0x42,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
L24:
  mov    (%rsp),%rax
  add    $0x1,%rbx
  movsbl (%rax),%ebp
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  xor    %eax,%eax
  call   <decsc@plt>
  mov    %r13d,%esi
  mov    %r12d,%edi
  xor    %eax,%eax
  call   <cup@plt>
  lea    D474(%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>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  mov    %ebp,%edi
  call   <putchar@plt>
  cmp    $0x6,%rbx
  jne    L243
  addq   $0x1,(%rsp)
  cmp    $0x4,%r12d
  jne    L75
  lea    D573(%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    D592(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D91(%rip),%rdi
  xor    %eax,%eax
  call   <println@plt>
  lea    D301(%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)
L249:
  mov    $0x30,%esi
  xor    %edi,%edi
  xor    %eax,%eax
  call   <scs@plt>
  jmp    L24
```

tool_calls: name: retrieve_data
arguments: data_label: D327
datatype: string
name: retrieve_data
arguments: data_label: D93
datatype: string
name: retrieve_data
arguments: data_label: D114
datatype: string
name: retrieve_data
arguments: data_label: D548
datatype: string
name: retrieve_data
arguments: data_label: D807
datatype: string
name: retrieve_data
arguments: data_label: D628
datatype: string
name: retrieve_data
arguments: data_label: D463
datatype: string
name: retrieve_data
arguments: data_label: D845
datatype: string
name: retrieve_data
arguments: data_label: D125
datatype: string
name: retrieve_data
arguments: data_label: D273
datatype: string
name: retrieve_data
arguments: data_label: D877
datatype: string
name: retrieve_data
arguments: data_label: D465
datatype: string
name: retrieve_data
arguments: data_label: D363
datatype: string
name: retrieve_data
arguments: data_label: D503
datatype: string
name: retrieve_data
arguments: data_label: D874
datatype: string
name: retrieve_data
arguments: data_label: D529
datatype: string
name: retrieve_data
arguments: data_label: D18
datatype: string
name: retrieve_data
arguments: data_label: D32
datatype: string
name: retrieve_data
arguments: data_label: D210
datatype: string
name: retrieve_data
arguments: data_label: D728
datatype: string
name: retrieve_data
arguments: data_label: D1
datatype: string
name: retrieve_data
arguments: data_label: D375
datatype: string
name: retrieve_data
arguments: data_label: D310
datatype: string
name: retrieve_data
arguments: data_label: D359
datatype: string
name: retrieve_data
arguments: data_label: D613
datatype: string
name: retrieve_data
arguments: data_label: D352
datatype: string
name: retrieve_data
arguments: data_label: D889
datatype: string
name: retrieve_data
arguments: data_label: D199
datatype: string
name: retrieve_data
arguments: data_label: D527
datatype: string
name: retrieve_data
arguments: data_label: D758
datatype: string
name: retrieve_data
arguments: data_label: D573
datatype: string
name: retrieve_data
arguments: data_label: D875
datatype: string
name: retrieve_data
arguments: data_label: D99
datatype: string
name: retrieve_data
arguments: data_label: D537
datatype: string
name: retrieve_data
arguments: data_label: D87
datatype: string
name: retrieve_data
arguments: data_label: D144
datatype: string
name: retrieve_data
arguments: data_label: D587
datatype: string
name: retrieve_data
arguments: data_label: D569
datatype: string
name: retrieve_data
arguments: data_label: D775
datatype: string
name: retrieve_data
arguments: data_label: D471
datatype: string
name: retrieve_data
arguments: data_label: D681
datatype: string
name: retrieve_data
arguments: data_label: D312
datatype: string
name: retrieve_data
arguments: data_label: D645
datatype: string
name: retrieve_data
arguments: data_label: D263
datatype: string
name: retrieve_data
arguments: data_label: D55
datatype: string
name: retrieve_data
arguments: data_label: D851
datatype: string
name: retrieve_data
arguments: data_label: D872
datatype: string
name: retrieve_data
arguments: data_label: D262
datatype: string
name: retrieve_data
arguments: data_label: D209
datatype: string
name: retrieve_data
arguments: data_label: D860
datatype: string
name: retrieve_data
arguments: data_label: D357
datatype: string
name: retrieve_data
arguments: data_label: D202
datatype: string
name: retrieve_data
arguments: data_label: D308
datatype: string
name: retrieve_data
arguments: data_label: D376
datatype: string
name: retrieve_data
arguments: data_label: D280
datatype: string
name: retrieve_data
arguments: data_label: D253
datatype: string
name: retrieve_data
arguments: data_label: D321
datatype: string
name: retrieve_data
arguments: data_label: D109
datatype: string
name: retrieve_data
arguments: data_label: D492
datatype: string
name: retrieve_data
arguments: data_label: D500
datatype: string
name: retrieve_data
arguments: data_label: D706
datatype: string
name: retrieve_data
arguments: data_label: D812
datatype: string
name: retrieve_data
arguments: data_label: D474
datatype: string
name: retrieve_data
arguments: data_label: D813
datatype: string
name: retrieve_data
arguments: data_label: D808
datatype: string
name: retrieve_data
arguments: data_label: D797
datatype: string
name: retrieve_data
arguments: data_label: D417
datatype: string
name: retrieve_data
arguments: data_label: D88
datatype: string
name: retrieve_data
arguments: data_label: D259
datatype: string
name: retrieve_data
arguments: data_label: D408
datatype: string
name: retrieve_data
arguments: data_label: D59
datatype: string
name: retrieve_data
arguments: data_label: D480
datatype: string
name: retrieve_data
arguments: data_label: D17
datatype: string
name: retrieve_data
arguments: data_label: D667
datatype: string
name: retrieve_data
arguments: data_label: D592
datatype: string
name: retrieve_data
arguments: data_label: D91
datatype: string
name: retrieve_data
arguments: data_label: D301
datatype: string

tool: D327: ?7

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

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

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

tool: D807: 	*

tool: D628:      *

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

tool: D845: ?3

tool: D125: should look the same. 

tool: D273: 1234567890

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

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

tool: D363: ?5

tool: D503: 12

tool: D874: light

tool: D529: dark

tool: D18: ?6

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


tool: D210: ?4

tool: D728: Soft

tool: D1: up

tool: D375: down

tool: D310: Jump

tool: D359: %s

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

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

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

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

tool: D527: bold

tool: D758: Graphic rendition test pattern:

tool: D573: 0

tool: D875: vanilla

tool: D99: 0;1

tool: D537: ;4

tool: D87: underline

tool: D144: ;1

tool: D587: 4

tool: D569: bold underline

tool: D775: 0;5

tool: D471: blink

tool: D681: 0;5;1

tool: D312: bold blink

tool: D645: 0;4;5

tool: D263: underline blink

tool: D55: 0;1;4;5

tool: D851: bold underline blink

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

tool: D262: negative

tool: D209: 0;1;7

tool: D860: bold negative

tool: D357: 0;4;7

tool: D202: underline negative

tool: D308: 0;1;4;7

tool: D376: bold underline negative

tool: D280: 1;4;;5;7

tool: D253: blink negative

tool: D321: 0;1;5;7

tool: D109: bold blink negative

tool: D492: 0;4;5;7

tool: D500: underline blink negative

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

tool: D812: bold underline blink negative

tool: 

tool: D813: Dark background. 

tool: D808: Light background. 

tool: D797: normal

tool: D417: underscored

tool: D88: blinking

tool: D259: reversed

tool: D408: stars:

tool: D59: line:

tool: D480: x'es:

tool: D17: diamonds:

tool: D667: *qx`

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

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

tool: D301: 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();
}
```