diff --git a/amitools/vamos/lib/DosLibrary.py b/amitools/vamos/lib/DosLibrary.py index c4a7b084..23adbac0 100644 --- a/amitools/vamos/lib/DosLibrary.py +++ b/amitools/vamos/lib/DosLibrary.py @@ -2,6 +2,7 @@ import ctypes import re import os +import select from amitools.vamos.machine.regs import * from amitools.vamos.libcore import LibImpl @@ -594,6 +595,16 @@ def Close(self, ctx): self.setioerr(ctx, 0) return self.DOSTRUE + def WaitForChar(self, ctx): + # file,timeout)(d1/d2) + fh_b_addr = ctx.cpu.r_reg(REG_D1) + fh = self.file_mgr.get_by_b_addr(fh_b_addr, False) + ms = ctx.cpu.r_reg(REG_D2) + if select.select([fh.obj], [], [], ms * 1e-3)[0]: + return self.DOSTRUE + + return self.DOSFALSE + def Read(self, ctx): fh_b_addr = ctx.cpu.r_reg(REG_D1) buf_ptr = ctx.cpu.r_reg(REG_D2)