# 80×86 Architecture: Geos DRV

Assembler code

```
seg003:0A36                 push    si
seg003:0A37                 push    di
seg003:0A38                 mov     [bp+var_C], 0
seg003:0A3D                 mov     [bp+fDocDir], 0
seg003:0A42                 call    FILEPUSHDIR     ; void pascal FilePushDir(void) in file.h
seg003:0A47                 test    byte_9E, 1
seg003:0A4C                 jz      short loc_410D
seg003:0A4E                 mov     [bp+fDocDir], 8
seg003:0A53                 push    [bp+fDocDir]    ; fDocDir
seg003:0A56                 call    FOAMSETDOCUMENTDIR ; void pascal FoamSetDocumentDir(FDocumentDir fDocDir) in foam.goh
seg003:0A5B                 jmp     short loc_411A
seg003:0A5D ; ---------------------------------------------------------------------------
seg003:0A5D
seg003:0A5D loc_410D:                               ; CODE XREF: sub_40E0+1C↑j
seg003:0A5D                 mov     [bp+var_C], 31h ; '1'
seg003:0A62                 push    [bp+var_C]      ; sp
seg003:0A65                 call    FILESETSTANDARDPATH ; void pascal FileSetStandardPath(StandardPath sp) in file.h
seg003:0A6A
seg003:0A6A loc_411A:                               ; CODE XREF: sub_40E0+2B↑j
seg003:0A6A                 push    0
seg003:0A6C                 push    0C800h
seg003:0A6F                 call    sub_5B83
seg003:0A74                 mov     [bp+var_16], ax
seg003:0A77                 cmp     [bp+var_16], 0
seg003:0A7B                 jz      short loc_419E
seg003:0A7D                 test    byte_9E, 1
seg003:0A82                 jz      short loc_4148
seg003:0A84                 push    word ptr [bp+name+2]
seg003:0A87                 push    word ptr [bp+name] ; name
seg003:0A8A                 call    FILEDELETE      ; word pascal FileDelete(const char *name) in file.h
seg003:0A8F                 les     bx, [bp+name]
seg003:0A92                 mov     byte ptr es:[bx], 0
seg003:0A96                 jmp     short loc_4188
seg003:0A98 ; ---------------------------------------------------------------------------
seg003:0A98
seg003:0A98 loc_4148:                               ; CODE XREF: sub_40E0+52↑j
seg003:0A98                 xor     si, si

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/ida-9.2/user-guide/disassembler/disassembly-gallery/80-86-architecture-geos-drv.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
