Documentation ¶
Overview ¶
Package jsdos configures the js-dos v6.22 emulator.
Index ¶
- Constants
- func Binaries(paths ...string) []string
- func Binary(paths ...string) string
- func FindBinary(filename, zipContent string) string
- func Finds(filename string, paths ...string) string
- func Paths(zipContent string) []string
- func Valid(s string) bool
- type CPU
- type Core
- type Cycles
- type DOS
- type Dosbox
- type GUS
- type Jsdos
- func (j *Jsdos) Beeper()
- func (j *Jsdos) CPU(value string)
- func (j *Jsdos) Covox()
- func (j *Jsdos) FM()
- func (j *Jsdos) Machine(value string)
- func (j *Jsdos) NoBeeper()
- func (j *Jsdos) NoBlaster()
- func (j *Jsdos) NoEMS(value bool)
- func (j *Jsdos) NoGUS()
- func (j *Jsdos) NoMIDI()
- func (j *Jsdos) NoUMB(value bool)
- func (j *Jsdos) NoXMS(value bool)
- func (j *Jsdos) Sound(value string)
- func (j *Jsdos) Tandy()
- type Midi
- type Platform
- type Processor
- type RAM
- type SBlaster
- type Speaker
Constants ¶
const AudioRate = "44100" // AudioRate is the sample rate of the audio that is emulated.
Variables ¶
This section is empty.
Functions ¶
func Binary ¶
Binary returns a path to the most likely executable file from the archive paths. The search order is .bat, .com, .exe. with the root paths having priority. If no executable is found then an empty string is returned.
func FindBinary ¶
FindBinary returns the most likely executable file from the archive paths. Binaries that matches the filename take priority over other executables. If no executable is found then an empty string is returned.
func Finds ¶
Finds the most likely executable in the archive paths. Binaries that matches the filename take priority over other executables. If no executable is found then an empty string is returned.
func Valid ¶
Valid returns true if the sequence of MS-DOS commands is valid. Multiple commands are separated by the '&&' operator and are case-insensitive. Each command checked for valid FAT 12/16 filenames and paths. MS-DOS and Linux arguments (forward slash and hyphen) are passed but are not checked.
Types ¶
type CPU ¶
type CPU string // CPU model and method used in the emulation.
const ( IAuto CPU = auto // IAuto is the fastest CPU type. I386 CPU = "386" // I386 is the optimal Intel 80386. I386Pre CPU = "386_prefetch" // I386Pre is the optimal Intel 80386 with a normal core. I386Slow CPU = "386_slow" // I386Slow is the slowest Intel 80386 with a normal core. I486Slow CPU = "486_slow" // I486Slow is the Intel 80486. I586Slow CPU = "pentium_slow" // I586Slow is the Intel 80586 aka Pentium. )
type Core ¶
type Core string // Core used in the CPU emulation.
const ( AutoCore Core = auto // Auto sets real-mode programs to use the normal core, for protected mode programs it switches to dynamic core. Dynamic Core = auto // [unsupported] "dynamic" Dynamic is the optimal core for most games, except for programs that employ massive self-modifying code. Normal Core = "normal" // Normal has the program interpreted instruction by instruction. Simple Core = "simple" // Simple has the program interpreted instruction by instruction, optimized for (8088/8086/286) real-mode games. )
type Cycles ¶
type Cycles string // Cycles is the amount of instructions to attempt to emulate each millisecond.
const ( AutoCycles Cycles = auto // CycleAuto, real-mode programs will run at 3000 cycles and protected mode games run with Max. Max Cycles = "max" // Max all programs run at the maximum speed the browser permits. Fix5Mhz Cycles = "fixed 330" // Fix5Mhz attempts to run at a fixed 5MHz 8086, 0.330 MIPS. Fix10Mhz Cycles = "fixed 750" // Fix10Mhz attempts to run at a fixed 10MHz 8088, 0.750 MIPS. Fix12Mhz Cycles = "fixed 1280" // Fix12Mhz attempts to run at a fixed 12MHz 80286, 1.280 MIPS. Fix16Mhz Cycles = "fixed 2150" // Fix16Mhz attempts to run at a fixed 16MHz 80386DX, 2.15 MIPS. Fix33Mhz Cycles = "fixed 4300" // Fix33Mhz attempts to run at a fixed 33MHz 80386DX, 4.3 MIPS. Fix25Mhz Cycles = "fixed 8700" // Fix25Mhz attempts to run at a fixed 25MHz 80486DX, 8.7 MIPS. Fix66Mhz Cycles = "fixed 25600" // Fix25Mhz attempts to run at a fixed 66MHz 80486DX2, 25.6 MIPS. )
type DOS ¶
type DOS struct { XMS string `ini:"xms"` // XMS is the Extended Memory used for programs that require more than 1 MB of memory. EMS string `ini:"ems"` // EMS is the Expanded Memory used for programs that require more than 1 MB of memory. UMB string `ini:"umb"` // UMB is the Upper Memory Blocks used for programs that require more than 640 KB of memory. }
DOS is the [dos] section of the configuration file.
type GUS ¶
type GUS struct { Enable string `ini:"gus"` // Enable is the Gravis UltraSound card. Rate string `ini:"gusrate"` // Rate is the sample rate of the Gravis UltraSound card. Base string `ini:"gusbase"` // Base is the I/O port address of the Gravis UltraSound card. IRQ string `ini:"gusirq"` // IRQ is the interrupt request line of the Gravis UltraSound card. DMA string `ini:"gusdma"` // DMA is the direct memory access channel of the Gravis UltraSound card. Dir string `ini:"ultradir"` // Dir is the directory within the emulation where the driver patch files for GUS playback are located. }
GUS is the [gus] section of the configuration file.
type Jsdos ¶
type Jsdos struct { Dosbox `ini:"dosbox"` Processor `ini:"cpu"` Midi `ini:"midi"` SBlaster `ini:"sblaster"` GUS `ini:"gus"` Speaker `ini:"speaker"` DOS `ini:"dos"` }
Jsdos is the dynamic generated configuration file for the js-dos v6.22 emulator.
func (*Jsdos) CPU ¶
CPU sets the CPU model, core and speed used in the emulation. The value can be "8086", "386", "486", or "auto".
func (*Jsdos) Covox ¶
func (j *Jsdos) Covox()
Covox enables the Covox Speech Thing audio also sold as the Disney Sound Source.
func (*Jsdos) Machine ¶
Machine sets the machine to emulate, either the personal computer series or the graphics hardware. The value can be "vga", "tandy", "svga", "paradise", "oldvbe", "nolfb", "et4000", "et3000", "ega", or "cga". The "tandy" machine will also enable the Tandy 3-channel sound chip.
func (*Jsdos) NoBlaster ¶
func (j *Jsdos) NoBlaster()
NoBlaster disables the use of the Sound Blaster card.
func (*Jsdos) NoEMS ¶
NoEMS disables the use of the EMS memory. This is useful for software that does not support the Expanded Memory Specification.
func (*Jsdos) NoMIDI ¶
func (j *Jsdos) NoMIDI()
NoMIDI disables the use of the MIDI devices for music.
func (*Jsdos) NoUMB ¶
NoUMB disables the use of the upper memory blocks. This is useful for software that conflicts with the UMB memory.
func (*Jsdos) NoXMS ¶
NoXMS disables the use of the XMS memory. This is useful for software that does not support the Extended Memory Specification.
type Platform ¶
type Platform string // Platform is the machine dosbox tries to emulate.
const ( Hercules Platform = "hercules" // Hercules graphics mode circa 1982. CGA Platform = "cga" // CGA (Color Graphics Adapter) graphics mode circa 1981. Tandy Platform = "tandy" // Tandy 1000 emulation which uses the Tandy Graphics Adapter and the 3-channel Tandy speaker circa 1984. PCjr Platform = "pcjr" // PCjr (Personal Computer Junior) emulation which uses the PCjr graphics and sound circa 1984. EGA Platform = "ega" // EGA (Enhanced Graphics Adapter) graphics mode circa 1984. VGAOnly Platform = "vgaonly" // VGAOnly is the VGA graphics mode for compatibility with software that fails with SuperVGA. SuperVgaS3 Platform = "svga_s3" // SuperVgaS3 is SuperVGA using the s3 Trio 64 chip. SuperVgaET3000 Platform = "svga_et3000" // SuperVgaET3000 is SuperVGA using the Tseng Labs ET3000 graphics mode. SuperVgaET4000 Platform = "svga_et4000" // SuperVgaET4000 is SuperVGA using the Tseng Labs ET4000 graphics mode. SuperVgaParadise Platform = "svga_paradise" // SuperVgaParadise is SuperVGA using the Paradise PVGA1A chip, common in the late 1980s. VesaNoFrameBuff Platform = "vesa_nolfb" // VesaNoFrameBuff is the VESA graphics mode without the Linear Frame Buffer that is sometimes faster than SuperVgaS3. VesaV1 Platform = "vesa_oldvbe" // VesaV1 is the VESA graphics mode using the old VBE 1.2 standard. )
type Processor ¶
type Processor struct { Core Core `ini:"core"` Model CPU `ini:"cputype"` Cycles Cycles `ini:"cycles"` }
Processor is the [cpu] section of the configuration file.
type SBlaster ¶
type SBlaster struct { Type string `ini:"sbtype"` Base string `ini:"sbbase"` IRQ string `ini:"irq"` DMA string `ini:"dma"` HDMA string `ini:"hdma"` Mixer string `ini:"sbmixer"` OplMode string `ini:"oplmode"` OplRate string `ini:"oplrate"` OplEmu string `ini:"oplemu"` }
SBlaster is the [sblaster] section of the configuration file.
type Speaker ¶
type Speaker struct { Enable string `ini:"pcspeaker"` // Enable is the PC speaker audio. Rate string `ini:"pcrate"` // Rate is the sample rate of the PC speaker. Tandy string `ini:"tandy"` // Tandy 3-channel sound chip emulation. TandyRate string `ini:"tandyrate"` // TandyRate is sample rate of the Tandy 3-channel sound chip. Disney string `ini:"disney"` // Disney Sound Source aka Covox Speech Thing emulation. }
Speaker is the [speaker] section of the configuration file.