summaryrefslogtreecommitdiffstats
path: root/private/mvdm/v86/scaffold/i386/xbios.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/mvdm/v86/scaffold/i386/xbios.h')
-rw-r--r--private/mvdm/v86/scaffold/i386/xbios.h123
1 files changed, 123 insertions, 0 deletions
diff --git a/private/mvdm/v86/scaffold/i386/xbios.h b/private/mvdm/v86/scaffold/i386/xbios.h
new file mode 100644
index 000000000..253f6e1e3
--- /dev/null
+++ b/private/mvdm/v86/scaffold/i386/xbios.h
@@ -0,0 +1,123 @@
+//
+// This code is temporary. When Insignia supplies rom support, it should
+// be removed.
+//
+
+/* x86 v1.0
+ *
+ * XBIOS.H
+ * Guest ROM BIOS support
+ *
+ * History
+ * Created 20-Oct-90 by Jeff Parsons
+ * 17-Apr-91 Trimmed by Dave Hastings for use in temp. softpc
+ *
+ * COPYRIGHT NOTICE
+ * This source file may not be distributed, modified or incorporated into
+ * another product without prior approval from the author, Jeff Parsons.
+ * This file may be copied to designated servers and machines authorized to
+ * access those servers, but that does not imply any form of approval.
+ */
+
+
+/* BIOS interrupts
+ */
+#define BIOSINT_DIVZERO 0x00 //
+#define BIOSINT_SSTEP 0x01 //
+#define BIOSINT_NMI 0x02 // for parity errors, too
+#define BIOSINT_BRKPT 0x03 //
+#define BIOSINT_OVFL 0x04 //
+#define BIOSINT_PRTSC 0x05 //
+#define BIOSINT_TMRINT 0x08 //
+#define BIOSINT_KBDINT 0x09 //
+#define BIOSINT_COM2INT 0x0B //
+#define BIOSINT_COM1INT 0x0C //
+#define BIOSINT_LPT2INT 0x0D //
+#define BIOSINT_FLPYINT 0x0E //
+#define BIOSINT_LPT1INT 0x0F //
+#define BIOSINT_VID 0x10 //
+#define BIOSINT_EQUIP 0x11 //
+#define BIOSINT_MEMORY 0x12 //
+#define BIOSINT_DSK 0x13 //
+#define BIOSINT_COM 0x14 //
+#define BIOSINT_OSHOOK 0x15 //
+#define BIOSINT_KBD 0x16 //
+#define BIOSINT_PRT 0x17 //
+#define BIOSINT_BASIC 0x18 //
+#define BIOSINT_WBOOT 0x19 //
+#define BIOSINT_TIME 0x1A //
+#define BIOSINT_CTRLBRK 0x1B //
+#define BIOSINT_TICK 0x1C //
+#define BIOSINT_VIDPARMS 0x1D //
+#define BIOSINT_FDSKPARMS 0x1E //
+#define BIOSINT_VIDGRAPH 0x1F //
+#define BIOSINT_OLDDISKIO 0x40 //
+#define BIOSINT_HDSK1PARMS 0x41 //
+#define BIOSINT_OLDVID 0x42 //
+#define BIOSINT_EXTVIDGRAPH 0x43 //
+#define BIOSINT_HDSK2PARMS 0x46 //
+
+
+/* BIOS Data Area locations
+ *
+ * So that all low-memory references are relative to the same segment
+ * (ie, 0), we use 0:400 instead of 40:0 as the base address of this area.
+ *
+ * Note that as more individual BIOS modules are created (eg, xbiosvid,
+ * xbiosdsk, etc), many of these BIOS data definitions should be moved to the
+ * appropriate individual header file.
+ */
+#define BIOSDATA_SEG 0
+
+#define BIOSDATA_BEGIN 0x400
+#define BIOSDATA_RS232_BASE 0x400 // 4 COM adapter addresses
+#define BIOSDATA_PRINTER_BASE 0x408 // 4 LPT adapter addresses
+#define BIOSDATA_EQUIP_FLAG 0x410 // equipment flag (1 word)
+
+#define BIOSEQUIP_FLOPPY 0x0001 // machine has a floppy
+#define BIOSEQUIP_X87 0x0002 // X87=1 if coprocessor installed
+#define BIOSEQUIP_16KPLANAR 0x0000 //
+#define BIOSEQUIP_32KPLANAR 0x0004 //
+#define BIOSEQUIP_48KPLANAR 0x0008 //
+#define BIOSEQUIP_64KPLANAR 0x000C //
+#define BIOSEQUIP_PLANARMASK 0x000C //
+#define BIOSEQUIP_VIDEOMASK 0x0030 // video configuration bits
+#define BIOSEQUIP_COLOR40VIDEO 0x0010 //
+#define BIOSEQUIP_COLOR80VIDEO 0x0020 //
+#define BIOSEQUIP_MONOVIDEO 0x0030 //
+#define BIOSEQUIP_FLOPPYMASK 0x00C0 // # floppies-1 (if FLOPPY=1)
+#define BIOSEQUIP_COMMASK 0x0E00 // # COM ports
+#define BIOSEQUIP_PRINTERMASK 0xC000 // # LPT ports
+
+#define BIOSDATA_MFG_TST 0x412 // initialization flag (1 byte)
+#define BIOSDATA_MEMORY_SIZE 0x413 // memory size in K bytes (1 word)
+#define BIOSDATA_MFG_ERR_FLG 0x415 // mfg error codes (2 bytes)
+
+#define BIOSDATA_END 0x4FF
+
+#define BIOSDATA_BOOT 0x7C00
+
+
+/* BIOS ROM locations (assumed segment BIOSROM_SEG)
+ */
+#define BIOSROM_SEG 0xF000
+
+#define BIOSROM_WBOOT 0xE6F2
+#define BIOSROM_DSK 0xEC59
+#define BIOSROM_MEMORY 0xF841
+#define BIOSROM_EQUIP 0xF84D
+#define BIOSROM_IRET 0xFF53 // 1 byte IRET
+#define BIOSROM_RESET 0xFFF0 // 5 byte jmp
+#define BIOSROM_DATE 0xFFF5 // 8 byte date (eg, 04/24/81)
+#define BIOSROM_UNUSED1 0xFFFD
+#define BIOSROM_SIG 0xFFFE // PC ID byte
+#define BIOSROM_GBP 0xFFFF // location of GBP opcode (non-standard)
+
+#define BIOSSIG_PC 0xFF
+#define BIOSSIG_XT 0xFE
+#define BIOSSIG_JR 0xFD
+#define BIOSSIG_AT 0xFC // and many more...
+
+#define BIOSDATE_MINE '0','4','/','1','7','/','9','1'
+
+