-
Notifications
You must be signed in to change notification settings - Fork 48
MartyPC Service Interrupts
dbalsom edited this page Aug 11, 2026
·
3 revisions
MartyPC has a service interrupt vector, which is F5h by default as of 0.4.2.
I plan to use this vector to provide various MartyPC-specific DOS utilities that do otherwise "impossible" things, like crossing guest-host boundaries.
The actual service interrupt vector is configurable and should not be assumed to be a specific value. The exact vector can be queried via int 2Fh, the DOS mux-chain interrupt. This interrupt discovery mechanism will work even outside of DOS, since MartyPC hooks it at the CPU level.
- AX == F500h
- BX == DEADh
- CX == BEEFh
- AL == FFh
; AL==FFh = installed - BX == 4D50h
; "MP" - CX == MartyPC version
- MSB: Major Version
- LSB: Minor Version
- DL == service interrupt vector
- DH == service flags
- SI == API version (currently
0100h)
- Bit 0:
- 0
; Service Interrupt Vector not installed - 1
; Service Interrupt Vector installed
- 0
Interrupt functions are specified via AH, aligned with typical convention.
- BX == DEADh
- CX == BEEFh
- AL:
- 00h
; disable MartyPC services - 01h
; enable MartyPC services - 02h
; query service state
- 00h
- AL:
- 00h
; services disabled - 01h
; services enabled
- 00h