mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-17 01:04:36 +00:00
feat(pi-dosbox): persistent DOSBox with QBasic and agent tool
- DOSBox now starts at session_start and persists in background - /dosbox command attaches UI to running instance (Ctrl+Q detaches) - Added dosbox tool with actions: send_keys, screenshot, read_text - Bundled QuickBASIC 4.5 files, mounted at C:\QB on startup - Agent can interact with DOSBox programmatically via tool Use: pi -e ./examples/extensions/pi-dosbox Then: /dosbox to view, or let agent use the dosbox tool
This commit is contained in:
parent
fbd6b7f9ba
commit
4f343f39b9
26 changed files with 1618 additions and 373 deletions
|
|
@ -0,0 +1,71 @@
|
|||
'***
|
||||
' QB.BI - Assembly Support Include File
|
||||
'
|
||||
' Copyright <C> 1987 Microsoft Corporation
|
||||
'
|
||||
' Purpose:
|
||||
' This include file defines the types and gives the DECLARE
|
||||
' statements for the assembly language routines ABSOLUTE,
|
||||
' INTERRUPT, INTERRUPTX, INT86OLD, and INT86XOLD.
|
||||
'
|
||||
'***************************************************************************
|
||||
'
|
||||
' Define the type needed for INTERRUPT
|
||||
'
|
||||
TYPE RegType
|
||||
ax AS INTEGER
|
||||
bx AS INTEGER
|
||||
cx AS INTEGER
|
||||
dx AS INTEGER
|
||||
bp AS INTEGER
|
||||
si AS INTEGER
|
||||
di AS INTEGER
|
||||
flags AS INTEGER
|
||||
END TYPE
|
||||
'
|
||||
' Define the type needed for INTERUPTX
|
||||
'
|
||||
TYPE RegTypeX
|
||||
ax AS INTEGER
|
||||
bx AS INTEGER
|
||||
cx AS INTEGER
|
||||
dx AS INTEGER
|
||||
bp AS INTEGER
|
||||
si AS INTEGER
|
||||
di AS INTEGER
|
||||
flags AS INTEGER
|
||||
ds AS INTEGER
|
||||
es AS INTEGER
|
||||
END TYPE
|
||||
'
|
||||
' DECLARE statements for the 5 routines
|
||||
' -------------------------------------
|
||||
'
|
||||
' Generate a software interrupt, loading all but the segment registers
|
||||
'
|
||||
DECLARE SUB INTERRUPT (intnum AS INTEGER,inreg AS RegType,outreg AS RegType)
|
||||
'
|
||||
' Generate a software interrupt, loading all registers
|
||||
'
|
||||
DECLARE SUB INTERRUPTX (intnum AS INTEGER,inreg AS RegTypeX, outreg AS RegTypeX)
|
||||
'
|
||||
' Call a routine at an absolute address.
|
||||
' NOTE: If the routine called takes parameters, then they will have to
|
||||
' be added to this declare statement before the parameter given.
|
||||
'
|
||||
DECLARE SUB ABSOLUTE (address AS INTEGER)
|
||||
'
|
||||
' Generate a software interrupt, loading all but the segment registers
|
||||
' (old version)
|
||||
'
|
||||
DECLARE SUB INT86OLD (intnum AS INTEGER,_
|
||||
inarray(1) AS INTEGER,_
|
||||
outarray(1) AS INTEGER)
|
||||
'
|
||||
' Gemerate a software interrupt, loading all the registers
|
||||
' (old version)
|
||||
'
|
||||
DECLARE SUB INT86XOLD (intnum AS INTEGER,_
|
||||
inarray(1) AS INTEGER,_
|
||||
outarray(1) AS INTEGER)
|
||||
'
|
||||
Loading…
Add table
Add a link
Reference in a new issue