;       SCCSID = @(#)vdmbios.inc	6.1 92/03/25
;***    VDMBIOS.INC
;
;
;       MVDM ROM BIOS Data Definitions
;       Copyright (c) IBM Corporation 1987, 1992
;
;       All Rights Reserved

;***    Low memory/ROM and EBIOS defines - used by VBIOS




;***    BIOS Interrupt Vectors
;

BIOSINT_PARITYCHECK     EQU     002h
BIOSINT_PRINTSCREEN     EQU     005h
BIOSINT_TIMERINTERRUPT  EQU     008h
BIOSINT_KEYINTERRUPT    EQU     009h
BIOSINT_COM2INTERRUPT   EQU     00Bh
BIOSINT_COM1INTERRUPT   EQU     00Ch
BIOSINT_LPT2INTERRUPT   EQU     00Dh
BIOSINT_FLOPPYINTERRUPT         EQU     00Eh
BIOSINT_LPT1INTERRUPT   EQU     00Fh
BIOSINT_VIDEO   EQU     010h
BIOSINT_EQUIPMENTCHECK  EQU     011h
BIOSINT_MEMORYCHECK     EQU     012h
BIOSINT_DISKIO  EQU     013h
BIOSINT_COMIO   EQU     014h
BIOSINT_OSHOOK  EQU     015h
BIOSINT_KEYBOARD        EQU     016h
BIOSINT_PRINTERIO       EQU     017h
BIOSINT_ROMBASIC        EQU     018h
BIOSINT_REBOOT  EQU     019h
BIOSINT_TIMEOFDAY       EQU     01Ah
BIOSINT_KEYBREAK        EQU     01Bh
BIOSINT_CLOCKTICK       EQU     01Ch
BIOSINT_VIDEOPARMS      EQU     01Dh
BIOSINT_DISKPARMS       EQU     01Eh
BIOSINT_VIDEOGRAPH      EQU     01Fh
BIOSINT_OLDDISKIO       EQU     040h
BIOSINT_HDISK1PARMS     EQU     041h
BIOSINT_OLDVIDEO        EQU     042h
BIOSINT_EXTVIDEOGRAPH   EQU     043h
BIOSINT_HDISK2PARMS     EQU     046h


;***    Int 10h Equates (AH values)
;

INT10_SETMODE   EQU     000h
INT10_SETCURSORTYPE     EQU     001h
INT10_SETCURSORPOS      EQU     002h
INT10_QUERYCURSORPOS    EQU     003h
INT10_QUERYLPEN         EQU     004h
INT10_SETACTIVEPAGE     EQU     005h
INT10_SCROLLUP  EQU     006h
INT10_SCROLLDOWN        EQU     007h
INT10_READCHARATTR      EQU     008h
INT10_WRITECHARATTR     EQU     009h
INT10_WRITECHAR         EQU     00Ah
INT10_SETPALETTE        EQU     00Bh
INT10_WRITEPIXEL        EQU     00Ch
INT10_READPIXEL         EQU     00Dh
INT10_WRITETTY  EQU     00Eh
INT10_QUERYMODE         EQU     00Fh
INT10_EGASETPALETTE     EQU     010h
INT10_EGASELECTFONT     EQU     011h
INT10_EGASELECTMISC     EQU     012h
INT10_EGAWRITESTRING    EQU     013h
INT10_VGADISPLAYCODES   EQU     01Ah
INT10_VGAQUERYSTATE     EQU     01Bh
INT10_VGASAVERESTORE    EQU     01Ch


;***    Int 13h Equates (AH values)
;

INT13_DISKRESET         EQU     000h
INT13_DISKSTATUS        EQU     001h
INT13_READSECTORS       EQU     002h
INT13_WRITESECTORS      EQU     003h
INT13_VERIFYSECTORS     EQU     004h
INT13_FORMATTRACK       EQU     005h
INT13_QUERYDRVPARMS     EQU     008h
INT13_DISKSEEK  EQU     00Ch            ;@235
INT13_QUERYDASDTYPE     EQU     015h
INT13_QUERYCHANGE       EQU     016h
INT13_SETDISKTYPE       EQU     017h
INT13_SETMEDIATYPE      EQU     018h


;***    Int 13h Status Equates (return in AH)
;

INT13STATUS_SUCCESS     EQU     000h    ;successful completion
INT13STATUS_BADCMD      EQU     001h    ;bad command
INT13STATUS_BADADDRMARK         EQU     002h    ;address mark not found
INT13STATUS_WRTPROTECT  EQU     003h    ;write on write-protected disk
INT13STATUS_RECNOTFOUND         EQU     004h    ;sector not found
INT13STATUS_BADRESET    EQU     005h    ;reset failed
INT13STATUS_MEDIACHANGE         EQU     006h    ;media changed
INT13STATUS_INITFAIL    EQU     007h    ;parm. act. failed
INT13STATUS_BADDMA      EQU     008h    ;DMA overrun
INT13STATUS_DMABOUNDARY         EQU     009h    ;DMA across 64K boundary
INT13STATUS_BADSECTOR   EQU     00ah    ;bad sector detected
INT13STATUS_BADTRACK    EQU     00bh    ;bad track detected
INT13STATUS_BADMEDIATYPE        EQU     00ch   ;unsupported track
INT13STATUS_BADFMTSECNUM        EQU     00dh   ;bad # of sectors on format
INT13STATUS_ADDRMARKDET         EQU     00eh    ;ctrl data addr mark detected (HD
INT13STATUS_DMAARBERR   EQU     00fh    ;DMA arbitration error
INT13STATUS_BADCRCECC   EQU     010h    ;bad CRC/ECC
INT13STATUS_DATACORRECT         EQU     011h    ;data ECC corrected
INT13STATUS_BADCNTLR    EQU     020h    ;controller failure
INT13STATUS_BADSEEK     EQU     040h    ;seek failed
INT13STATUS_TIMEOUT     EQU     080h    ;time out
INT13STATUS_DRVNOTREADY         EQU     0aah    ;drive not ready
INT13STATUS_UNDEFERR    EQU     0bbh    ;undefined error
INT13STATUS_WRITEFAULT  EQU     0cch    ;write fault
INT13STATUS_STATUSERROR         EQU     0e0h    ;status register error
INT13STATUS_SENSEFAIL   EQU     0ffh    ;sense operation failed


;***    Int 15h Equates (AH values)
;

INT15AH_KEYINTERCEPT    EQU     04fh
INT15AH_KEYSYSREQ       EQU     085h
INT15AH_DEVBUSY         EQU     090h
INT15AH_INTCOMPLETE     EQU     091h


;***    Int 15h Equates (AL values)
;

INT15AL_DISKETTE        EQU     001h
INT15AL_KEYBOARD        EQU     002h


;***    Int 16h Equates (AH values)
;
INT16_READCHAR  EQU     000h
INT16_PEEKCHAR  EQU     001h
INT16_QUERYSHIFT        EQU     002h
INT16_SETDELAYS         EQU     003h
INT16_WRITECHAR         EQU     005h
INT16_READEXTCHAR       EQU     010h
INT16_PEEKEXTCHAR       EQU     011h
INT16_QUERYEXTSHIFT     EQU     012h
INT16_READ122CHAR       EQU     020h
INT16_PEEK122CHAR       EQU     021h
INT16_QUERY122SHIFT     EQU     022h


;***    Diskette Parameter Table (pointed by vector BIOSINT_DISKPARMS (1Eh))
;

DefStruc ,fdparmtable_s
    _BYTE    fdp_bSpecify1              ;step-rate, head-unload
    _BYTE    fdp_bSpecify2              ;head-load, DMA mode
    _BYTE    fdp_bMotorOff              ;motor-off delay
    _BYTE    fdp_bSectorSize            ;bytes/sec (0=128,1=256,2=512,3=1024)
    _BYTE    fdp_nLastSector            ;(or think of it as # sectors/track)
    _BYTE    fdp_lenGapRW               ;
    _BYTE    fdp_lenData                ;
    _BYTE    fdp_lenGapFormat           ;
    _BYTE    fdp_bFormatData            ;format initialization byte
    _BYTE    fdp_bSettle                ;head settle time
    _BYTE    fdp_bMotorOn               ;motor start-up time
EndStruc FDPARMTABLE
DefType PFDPARMTABLE,dd                 ;pointer to diskette parameter table


;***    Fixed Disk Parameter Table
;

DefStruc ,hdparmtable_s
    _WORD    hdp_wMaxCylinders          ;maximum number of cylinders
    _BYTE    hdp_bMaxHeads              ;maximum number of heads
    _WORD    hdp_wReserve1              ;reserved (not used)
    _WORD    hdp_wWritePrecompCyl       ;starting write precompensation cyl.
    _BYTE    hdp_bMaxECCDataBurstLen    ;maximum ECC data burst length
    _BYTE    hdp_bControl               ;control byte
    _BYTE    hdp_abReserve2,,3          ;reserved (not used)
    _WORD    hdp_wLandingZone           ;landing zone for head parking
    _BYTE    hdp_bSectorsPerTrack       ;number of sectors per track
    _BYTE    hdp_bReserve3              ;reserved for future use
EndStruc HDPARMTABLE
DefType PHDPARMTABLE,dd                 ;pointer to hard disk parameter table


;***    Hard disk parameter - control byte bit mask
;

HDPCTRL_DISABLERETRY    EQU     0c0h    ;disable retries
HDPCTRL_EXCEED8HEADS    EQU     008h    ;more than 8 heads


;***    Model byte equates (located at F000:FFFE in actual ROM)
;
ROMMODEL_PC1    EQU     00FFh           ;PC-1, Expansion, Old PC2
ROMMODEL_PC2    EQU     00FEh           ;PC-2, Newer
ROMMODEL_JR     EQU     00FDh           ;HALO
ROMMODEL_AT     EQU     00FCh           ;Salmon (PC-3)


;***    ROM format
;
ROMHDR_SIGNATURE        EQU     0AA55h
ROMHDR_INCR     EQU     2048
BLOCKSIZE       EQU     512
BLOCKSPERPAGE   EQU     (PAGESIZE / BLOCKSIZE)


DefStruc ,romhdr_s
    _WORD romhdr_wSignature     ;should be ROMHDR_SIGNATURE
    _BYTE romhdr_bnBlocks       ;# of ROM blocks
    _BYTE romhdr_abFiller,,ROMHDR_INCR-3
EndStruc ROMHDR

DefType PROMHDR,dd


;***    ROM BIOS Data Area
;
DefStruc ,romdata_s

VPVOID  rb_avpIVT,,IVT_LEN/4   ;interrupt vector table


;***    Start of ROM BIOS Data Areas (0400h)
;
_WORD    rb_awCOM,,4            ;RS232_BASE   (addresses of serial cards)
_WORD    rb_awLPT,,4            ;PRINTER_BASE (addresses of printer cards)
_WORD    rb_fsEquip             ;EQUIP_FLAG   (installed hardware)

BIOSEQUIP_FLOPPY        EQU     000001h     ;machine has a floppy
BIOSEQUIP_X87   EQU     000002h     ;X87=1 if coprocessor installed
BIOSEQUIP_VIDEOMASK     EQU     000030h     ;video configuration bits
BIOSEQUIP_COLOR40VIDEO  EQU     000010h     ;
BIOSEQUIP_COLOR80VIDEO  EQU     000020h     ;
BIOSEQUIP_MONOVIDEO     EQU     000030h     ;
BIOSEQUIP_FLOPPYMASK    EQU     0000C0h     ;# floppies-1 (if IPLDISK=1)
BIOSEQUIP_COMMASK       EQU     000E00h     ;# COM ports
BIOSEQUIP_PRINTERMASK   EQU     00C000h     ;# LPT ports

BBOOL   rb_bfMfgTest           ;MFG_TST      (initialization flag)
_WORD    rb_wMemSize            ;MEMORY_SIZE  (memory size in Kbytes)
BBOOL   rb_bfMfgError,,2       ;MFG_ERR_FLAG (scratchpad for manufacturing)


;***    Start of keyboard data area (0417h)
;
_BYTE    rb_fbKFlag             ;KB_FLAG      (keyboard shift states)

BIOSKFLAG_RIGHTSHIFT    EQU     001h
BIOSKFLAG_LEFTSHIFT     EQU     002h
BIOSKFLAG_SHIFTMASK     EQU     003h
BIOSKFLAG_CTRL  EQU     004h
BIOSKFLAG_ALT   EQU     008h
BIOSKFLAG_SCROLLLOCK    EQU     010h
BIOSKFLAG_NUMLOCK       EQU     020h
BIOSKFLAG_CAPSLOCK      EQU     040h
BIOSKFLAG_INSERT        EQU     080h

_BYTE    rb_fbKFlag1            ;KB_FLAG_1    (second byte of keyboard status)

BIOSKFLAG1_LEFTCTRL     EQU     001h        ;left CTRL down
BIOSKFLAG1_LEFTALT      EQU     002h        ;left ALT down
BIOSKFLAG1_SYSSHIFT     EQU     004h        ;SysReq pressed and held
BIOSKFLAG1_HOLDSTATE    EQU     008h        ;Ctrl-NumLock has been pressed
BIOSKFLAG1_SCROLLDOWN   EQU     010h
BIOSKFLAG1_NUMDOWN      EQU     020h
BIOSKFLAG1_CAPSDOWN     EQU     040h
BIOSKFLAG1_INSDOWN      EQU     080h

_BYTE    rb_bKAlt               ;ALT_INPUT    (storage for Alt-keypad entry)
_WORD    rb_npKHead             ;BUFFER_HEAD  (advanced at task-time)
_WORD    rb_npKTail             ;BUFFER_TAIL  (advanced at interrupt-time)
_WORD    rb_abKBuf,,16          ;KB_BUFFER


;***    Start of floppy data area (043Eh)
;
_BYTE    rb_fbFSeekStatus       ;SEEK_STATUS

BIOSSEEK_DRV0NORECAL    EQU     001h
BIOSSEEK_DRV1NORECAL    EQU     002h
BIOSSEEK_DRV2NORECAL    EQU     004h
BIOSSEEK_DRV3NORECAL    EQU     008h
BIOSSEEK_DRVINTERRUPT   EQU     080h

_BYTE    rb_fbFMotorStatus      ;MOTOR_STATUS

BIOSMOTOR_DRV0RUNNING   EQU     001h
BIOSMOTOR_DRV1RUNNING   EQU     002h
BIOSMOTOR_DRV2RUNNING   EQU     004h
BIOSMOTOR_DRV3RUNNING   EQU     008h
BIOSMOTOR_DRVSELECT     EQU     030h
BIOSMOTOR_WRTOPERATION  EQU     080h

_BYTE    rb_bFMotorCount        ;MOTOR_COUNT
_BYTE    rb_bFStatus            ;DISKETTE_STATUS
_BYTE    rb_abFCtlStatus,,7     ;NEC_STATUS (also CMD_BLOCK and HD_ERROR)


;***    Start of video data area (0449h)
;
_BYTE    rb_bVMode              ;CRT_MODE

BIOSVMODE_BW40  EQU     000h
BIOSVMODE_CO40  EQU     001h
BIOSVMODE_BW80  EQU     002h
BIOSVMODE_CO80  EQU     003h
BIOSVMODE_CO320X200X4   EQU     004h
BIOSVMODE_BW320X200X4   EQU     005h
BIOSVMODE_CO640X200X2   EQU     006h
BIOSVMODE_MONO80        EQU     007h
BIOSVMODE_PCJR1         EQU     008h
BIOSVMODE_PCJR2         EQU     009h
BIOSVMODE_PCJR3         EQU     00Ah
BIOSVMODE_COLRFONT      EQU     00Bh
BIOSVMODE_MONOFONT      EQU     00Ch
BIOSVMODE_CO320X200X16  EQU     00Dh
BIOSVMODE_CO640X200X16  EQU     00Eh
BIOSVMODE_MONO640X350X4         EQU     00Fh
BIOSVMODE_CO640X350X16  EQU     010h
BIOSVMODE_CO640X480X2   EQU     011h
BIOSVMODE_CO640X480X16  EQU     012h
BIOSVMODE_CO320X200X256         EQU     013h

_WORD    rb_nVCols              ;CRT_COLS
_WORD    rb_wVLen               ;CRT_LEN
_WORD    rb_wVStart             ;CRT_START
_WORD    rb_awVCursorPos,,8     ;CURSOR_POSN
_WORD    rb_wVCursorMode        ;CURSOR_MODE
_BYTE    rb_bVPage              ;ACTIVE_PAGE
_WORD    rb_wVPort              ;ADDR_6845
_BYTE    rb_bVModeByte          ;CRT_MODE_SET
_BYTE    rb_bVPalByte           ;CRT_PALETTE


;***    Start of POST data area (0467h)
;
VPVOID  rb_vpRomInit           ;IO_ROM_INIT and IO_ROM_SEG
BBOOL   rb_fInterrupt          ;INTR_FLAG


;***    Start of timer data area (046Ch)
;
ULONG   rb_ulTickCount         ;TIMER_LOW and TIMER_HIGH
_BYTE    rb_bTickOverflow       ;TIMER_OFL


;***    Start of system data area (0471h)
;
BBOOL   rb_fBreak              ;BIOS_BREAK

BIOSBREAK_SET   EQU     080h

SBOOL   rb_fReset              ;RESET_FLAG

BIOSRESET_WARMBOOT      EQU     01234h


;***    Start of hard disk data area (0474h)
;
_BYTE    rb_bDStatus            ;DISK_STATUS1 (fixed disk status byte)
_BYTE    rb_nDTotal             ;HF_NUM       (count of fixed disk drives)
_BYTE    rb_bDControl           ;CONTROL_BYTE (control byte drive options)
_BYTE    rb_bDPortOffset        ;PORT_OFF     (port offset)


;***    Start of COM and LPT time-out data area (0478h)
;
_BYTE    rb_abLPTtimeout,,4     ;PRINT_TIM_OUT
_BYTE    rb_abCOMtimeout,,4     ;RS232_TIM_OUT


;***    Start of additional keyboard data area (0480h)
;
_WORD    rb_npKBufStart         ;BUFFER_START
_WORD    rb_npKBufEnd           ;BUFFER_END


;***    Start of EGA/VGA data area (0484h)
;
_BYTE    rb_nVRows              ;ROWS         (# rows-1)
_WORD    rb_nVCharHeight        ;POINTS       (height of char in pixels)
_BYTE    rb_bVInfo              ;INFO

BIOSVINFO_NOEMULATE     EQU     001h    ;(controls cursor emulation)
BIOSVINFO_EGAMONO       EQU     002h    ;
BIOSVINFO_WAITRETRC     EQU     004h    ;
BIOSVINFO_EGAINACTIVE   EQU     008h    ;
BIOSVINFO_MEMMASK       EQU     060h    ;(00=64k, 01=128k, 10=192k, 11=256k)
BIOSVINFO_DONTCLEAR     EQU     080h    ;(don't clear screen on resets)

_BYTE    rb_bVSwitches          ;INFO_3

BIOSVSW_SW1OFF  EQU     001h
BIOSVSW_SW2OFF  EQU     002h
BIOSVSW_SW3OFF  EQU     004h
BIOSVSW_SW4OFF  EQU     008h
BIOSVSW_FEATUREBITS     EQU     0F0h

_BYTE    rb_bVFlags             ;Flags (for VGA and MCGA)

BIOSVFLAGS_VGAACTIVE    EQU     001h
BIOSVFLAGS_GRAYSCALES   EQU     002h
BIOSVFLAGS_VGAMONO      EQU     004h
BIOSVFLAGS_NODEFPALETTE         EQU     008h
BIOSVFLAGS_DSPSWITCHING         EQU     040h

BIOSVFLAGS_350INES      EQU     000h
BIOSVFLAGS_400INES      EQU     010h
BIOSVFLAGS_200INES      EQU     080h
BIOSVFLAGS_RESRVDLINES  EQU     090h


;***    Reserved area (048Ah)
;
_BYTE    rb_bReserved1,,1       ;reserved


;***    Start of additional diskette data area (048Bh)
;
_BYTE    rb_bFLastRate          ;LASTRATE


;***    Start of additional hard disk data area (048Ch)
;
_BYTE    rb_bDStatusReg         ;HF_STATUS
_BYTE    rb_bDErrorReg          ;HF_ERROR
BBOOL   rb_fDInterrupt         ;HF_INT_FLAG
BBOOL   rb_fDCombo             ;HF_CNTRL     (combo hard disk/diskette card)


;***    Start of additional diskette data area (0490h)
;
_BYTE    rb_bF0State            ;DSK_STATE    (drive 0 media state)
_BYTE    rb_bF1State            ;             (drive 1 media state)
_BYTE    rb_bF0StartState       ;             (drive 0 operation start state)
_BYTE    rb_bF1StartState       ;             (drive 1 operation start state)
_BYTE    rb_bF0Cyl              ;DSK_TRK      (drive 0 current cylinder)
_BYTE    rb_bF1Cyl              ;             (drive 1 current cylinder)


;***    Start of additional keyboard data area (0496h)
;
_BYTE    rb_fbKFlag3            ;KB_FLAG_3

BIOSKFLAG3_E1PREFIX     EQU     001h    ;supported
BIOSKFLAG3_SECPREFIX    EQU     002h    ;supported
BIOSKFLAG3_RIGHTCTRL    EQU     004h    ;right CTRL down
BIOSKFLAG3_RIGHTALT     EQU     008h    ;right ALT down
BIOSKFLAG3_KBX  EQU     010h    ;supported
BIOSKFLAG3_SETNUMLOCK   EQU     020h    ;supported
BIOSKFLAG3_LASTID       EQU     040h    ;supported
BIOSKFLAG3_READINGID    EQU     080h    ;supported (we never SET it though!)

_BYTE    rb_fbKFlag2            ;KB_FLAG_2

BIOSKFLAG2_LEDS         EQU     007h    ;supported
BIOSKFLAG2_ACK  EQU     010h    ;supported
BIOSKFLAG2_RESEND       EQU     020h    ;supported
BIOSKFLAG2_LEDUPDATE    EQU     040h    ;always clear
BIOSKFLAG2_XMITERROR    EQU     080h    ;always clear


;***    Start of real-time CMOS clock data area (0498h)
;
VPVOID  rb_vpWaitFlag          ;USER_FLAG and USER_FLAG_SEG
ULONG   rb_ulWaitFlag          ;RTC_LOW and RTC_HIGH
BBOOL   rb_fWaitActive         ;RTC_WAIT_FLAG

_BYTE    rb_bReserved2,,7        ;this should "ORG" us to 04A8h


;***    Start of additional EGA/VGA data area (04A8h)
;
VPVOID  rb_vpVideoPtrTable

;***    Format of VideoPtrTable:
;
;        VPVOID[0]      Parameter Table Pointer
;                       Initialized to BIOS Video Parameter Table.
;                       This value MUST exist.  For a VGA, the table is:
;
;                       _BYTE    Value for CRT_COLS
;                       _BYTE    Value for ROWS
;                       _BYTE    Value for POINTS
;                       _WORD    Value for CRT_LEN
;                       _BYTE*4  Values for SEQ registers 1-4
;                       _BYTE    Value for Miscellaneous Output register
;                       _BYTE*25 Values for CRT registers 0-18h
;                       _BYTE*20 Values for ATC registers 0-13h
;                       _BYTE*9  Values for GDC registers 0-8
;
;        VPVOID[1]      Parameter Save Area Pointer
;                       Initialized to 0000:0000, this value is optional.
;                       When non-zero, this pointer will be used as pointer
;                       to a RAM area where certain dynamic values are to
;                       be saved. When in EGA operation this RAM area will
;                       hold the 16 EGA palette register values plus
;                       the overscan value in bytes 00h-10h respectively.
;                       At least 256 bytes must be allocated for this area.
;
;        VPVOID[2]      Alpha Character Set Override Pointer
;                       Initialized to 0000:0000, this value is optional.
;                       When non-zero, this pointer is used as a pointer
;                       to a tables described as follows:
;
;                       _BYTE    Bytes/character
;
;                       _BYTE    Block to load, should be zero for normal
;                               operation
;
;                       _WORD    Count to store, should be 256 for normal
;                               operation
;
;                       _WORD    Character offset, should be zero for normal
;                               operation
;
;                       VPVOID  Pointer to a font table
;
;                       _BYTE    Displayable rows
;                               if 'FF' the maximum calculated value will be
;                               used, else this value will be used
;
;                       _BYTE    Consecutive bytes of mode values for which
;                               this font description is to be used.
;                               The end of this stream is indicated by a
;                               byte code of 'FF'
;
;        VPVOID[3]      Graphics Character Set Override Pointer
;                       Initialized to 0000:0000, this value is optional.
;                       When non-zero, this pointer is used as a pointer
;                       to a tables described as follows:
;
;                       _BYTE    Displayable rows
;
;                       _WORD    Bytes per character
;
;                       VPVOID  Pointer to a font table
;
;                       _BYTE    Consecutive bytes of mode values for which
;                               this font description is to be used.
;                               The end of this stream is indicated by a
;                               byte code of 'FF'
;
;        VPVOID[4]      Address of Secondary Video Pointer Table (VGA ONLY):
;
;                       _WORD    Length of this table, in bytes
;                       VPVOID  Pointer to Display Combination Code Table
;                       VPVOID  Pointer to second Alpha Character Set Override
;                       VPVOID  Pointer to User Palette Profile Table
;                       VPVOID  Reserved
;                       VPVOID  Reserved
;                       VPVOID  Reserved
;
;        VPVOID[5]      Reserved and set to 0000:0000.
;
;        VPVOID[6]      Reserved and set to 0000:0000.
;

_BYTE    rb_bReserved3,,054h    ;this should "ORG" us to 0500h

;***    Extra data area (0500h)
;
_BYTE    rb_bPrtScrStatus       ;STATUS_BYTE
EndStruc ROMDATA

DefType PROMDATA,dd



VDMBase   equ <ds:[0]>
.errnz  (size romdata_s NE 0501h)
