windows-nt/Source/XPSP1/NT/base/mvdm/dos/v86/inc/dseg.inc
2020-09-26 16:20:57 +08:00

209 lines
6.8 KiB
PHP

;---Revised 8-17-84 FOR KBX (ADDED ADDITIONAL KEYBOARD FLAG - KB_FLAG_3)
;----------------------------------------
; 0286 INTERRUPT LOCATIONS (READ):
;----------------------------------------
ABS0 SEGMENT AT 0
STG_LOC0 LABEL BYTE
ORG 2*4
NMI_PTR LABEL WORD
ORG 5*4
INT5_PTR LABEL WORD
ORG 8*4
INT_ADDR LABEL WORD
INT_PTR LABEL DWORD
ORG 10H*4
VIDEO_INT LABEL WORD
ORG 13H*4 ; NEW FDISK
ORG_VECTOR LABEL DWORD
ORG 18H*4
BASIC_PTR LABEL WORD
ORG 19H*4
BOOT_VEC LABEL DWORD
BOOT_VECTOR LABEL DWORD
ORG 1DH*4
PARM_PTR LABEL DWORD ; POINTER TO VIDEO PARMS
ORG 1EH*4
DISK_POINTER LABEL DWORD
ORG 01FH*4
EXT_PTR LABEL DWORD
ORG 40H*4 ; DISKETTE POINTER
DISK_VECTOR LABEL DWORD
ORG 41H*4
HF_TBL_VEC LABEL DWORD
ORG 46H*4
HF1_TBL_VEC LABEL DWORD
ORG 70H*4
SLAVE_INT_PTR LABEL DWORD
RTC_INT_VEC LABEL DWORD ; REAL TIME CLOCK INT
ORG 76H*4 ; FIXED DISK INTERRUPT VECTOR
HDISK_INT LABEL DWORD
ORG 400H
DATA_AREA LABEL BYTE ;ABSOLUTE LOCATION OF DATA SEGMENT
DATA_WORD LABEL WORD
ORG 0500H
MFG_TEST_RTN LABEL FAR
ORG 7C00H
BOOT_LOCN LABEL FAR
ABS0 ENDS
PAGE
;------------------------------------------------
; STACK -- USED DURING INITIALIZATION ONLY :
;------------------------------------------------
STACK SEGMENT AT 30H
DW 128 DUP(?)
TOS LABEL WORD
STACK ENDS
;----------------------------------------
; ROM BIOS DATA AREAS :
;----------------------------------------
DATA SEGMENT AT 40H
;DATA_BASE LABEL BYTE
RS232_BASE DW 4 DUP(?) ; ADDRESSES OF RS232 ADAPTERS
PRINTER_BASE DW 4 DUP(?) ; ADDRESSES OF PRINTERS
EQUIP_FLAG DW 1 DUP(?) ; INSTALLED HARDWARE
MFG_TST DB 1 DUP(?) ; INITIALIZATION FLAG
MEMORY_SIZE DW 1 DUP(?) ; MEMORY SIZE IN K BYTES
MFG_ERR_FLAG DB 1 DUP(?) ; SCRATCHPAD FOR MANUFACTURING
DB 1 DUP(?) ; ERROR CODES
PAGE
;----------------------------------------
; KEYBOARD DATA AREAS :
;----------------------------------------
KB_FLAG DB 1 DUP(?)
KB_FLAG_1 DB 1 DUP(?) ; SECOND BYTE OF KEYBOARD STATUS
ALT_INPUT DB 1 DUP(?) ; STORAGE FOR ALTERNATE KEYPAD ENTRY
BUFFER_HEAD DW 1 DUP(?) ; POINTER TO HEAD OF KEYBOARD BUFFER
BUFFER_TAIL DW 1 DUP(?) ; POINTER TO TAIL OF KEYBOARD BUFFER
KB_BUFFER DW 16 DUP(?) ; ROOM FOR 15 ENTRIES
KB_BUFFER_END LABEL WORD
;------ HEAD = TAIL INDICATES THAT THE BUFFER IS EMPTY
;----------------------------------------
; DISKETTE DATA AREAS :
;----------------------------------------
SEEK_STATUS DB 1 DUP(?) ; DRIVE RECALIBRATION STATUS
; BIT 3-0 = DRIVE 3-0 NEEDS RECAL
; BEFORE NEXT SEEK IF BIT IS = 0
MOTOR_STATUS DB 1 DUP(?) ; MOTOR STATUS
; BIT 3-0 = DRIVE 3-0 IS CURRENTLY
; RUNNING
; BIT 7 = CURRENT OPERATION IS A WRITE,
; REQUIRES DELAY
MOTOR_COUNT DB 1 DUP(?) ; TIME OUT COUNTER FOR DRIVE TURN OFF
DISKETTE_STATUS DB 1 DUP(?) ; RETURN CODE STATUS BYTE
CMD_BLOCK LABEL BYTE
HD_ERROR LABEL BYTE
NEC_STATUS DB 7 DUP(?) ; STATUS BYTES FROM NEC
PAGE
;----------------------------------------
; VIDEO DISPLAY DATA AREA :
;----------------------------------------
CRT_MODE DB 1 DUP(?) ; CURRENT CRT MODE
CRT_COLS DW 1 DUP(?) ; NUMBER OF COLUMNS ON SCREEN
CRT_LEN DW 1 DUP(?) ; LENGTH OF REGEN IN BYTES
CRT_START DW 1 DUP(?) ; STARTING ADDRESS IN REGEN BUFFER
CURSOR_POSN DW 8 DUP(?) ; CURSOR FOR EACH OF UP TO 8 PAGES
CURSOR_MODE DW 1 DUP(?) ; CURRENT CURSOR MODE SETTING
ACTIVE_PAGE DB 1 DUP(?) ; CURRENT PAGE BEING DISPLAYED
ADDR_6845 DW 1 DUP(?) ; BASE ADDRESS FOR ACTIVE DISPLAY CARD
CRT_MODE_SET DB 1 DUP(?) ; CURRENT SETTING OF THE 3X8 REGISTER
CRT_PALLETTE DB 1 DUP(?) ; CURRENT PALLETTE SETTING COLOR CARD
PAGE
;----------------------------------------
; POST DATA AREA :
;----------------------------------------
IO_ROM_INIT DW 1 DUP(?) ; PNTR TO OPTIONAL I/O ROM INIT ROUTINE
IO_ROM_SEG DW 1 DUP(?) ; POINTER TO IO ROM SEGMENT
INTR_FLAG DB 1 DUP(?) ; FLAG TO INDICATE AN INTERRUPT HAPPEND
;----------------------------------------
; TIMER DATA AREA :
;----------------------------------------
TIMER_LOW DW 1 DUP(?) ; LOW WORD OF TIMER COUNT
TIMER_HIGH DW 1 DUP(?) ; HIGH WORD OF TIMER COUNT
TIMER_OFL DB 1 DUP(?) ; TIMER HAS ROLLED OVER SINCE LAST READ
;----------------------------------------
; SYSTEM DATA AREA :
;----------------------------------------
BIOS_BREAK DB 1 DUP(?) ; BIT 7=1 IF BREAK KEY HAS BEEN HIT
RESET_FLAG DW 1 DUP(?) ; WORD=1234H IF KEYBOARD RESET UNDERWAY
PAGE
;----------------------------------------
; HARD FILE DATA AREAS :
;----------------------------------------
DISK_STATUS1 DB 1 DUP(?)
HF_NUM DB 1 DUP(?)
CONTROL_BYTE DB 1 DUP(?)
PORT_OFF DB 1 DUP(?)
;------------------------------------------------------
; PRINTER AND RS232 TIME-OUT VARIABLES :
;------------------------------------------------------
PRINT_TIM_OUT DB 4 DUP(?)
RS232_TIM_OUT DB 4 DUP(?)
;----------------------------------------
; ADDITIONAL KEYBOARD DATA AREA :
;----------------------------------------
BUFFER_START DW 1 DUP(?)
BUFFER_END DW 1 DUP(?)
;---------------------------------------
; ADDITIONAL FLOPPY DATA ;
;---------------------------------------
ORG 8BH
LASTRATE DB 1 DUP(?) ; LAST DATA RATE SELECTED
PAGE
;---------------------------------------
; ADDITIONAL HARD FILE DATA :
;---------------------------------------
ORG 8CH
HF_STATUS DB 1 DUP(?) ; STATUS REGISTER
HF_ERROR DB 1 DUP(?) ; ERROR REGISTER
HF_INT_FLAG DB 1 DUP(?) ; HARD FILE INTERRUPT FLAG
HF_CNTRL DB 1 DUP(?) ; COMBO HARD FILE/FLOPPY CARD BIT 0=1
;----------------------------------------
; ADDITIONAL DISKETTE AREA :
;----------------------------------------
ORG 90H
DSK_STATE LABEL BYTE
DB 1 DUP(?) ; DRIVE 0 MEDIA STATE
DB 1 DUP(?) ; DRIVE 1 MEDIA STATE
DB 1 DUP(?) ; DRIVE 0 OPERATION START STATE
DB 1 DUP(?) ; DRIVE 1 OPERATION START STATE
DSK_TRK DB 1 DUP(?) ; DRIVE 0 PRESENT CYLINDER
DB 1 DUP(?) ; DRIVE 1 PRESENT CYLINDER
DB 1 DUP(?) ; RESERVED
;---------------------------------------- AEV
; ADDITIONAL KEYBOARD FLAG FOR KBX: AEV
;---------------------------------------- AEV
ORG 96H ; AEV
KB_FLAG_3 DB 1 DUP(?) ; AEV
;----------------------------------------
; ADDITIONAL KEYBOARD LED FLAG :
;----------------------------------------
ORG 97H
KB_FLAG_2 DB 1 DUP(?)
PAGE
;----------------------------------------
; REAL TIME CLOCK DATA AREA :
;----------------------------------------
ORG 98H
USER_FLAG DW 1 DUP(?) ; OFFSET ADDR OF USERS WAIT FLAG
USER_FLAG_SEG DW 1 DUP(?) ; SEG ADDR OF USER WAIT FLAG
RTC_LOW DW 1 DUP(?) ; LOW WORD OF USER WAIT FLAG
RTC_HIGH DW 1 DUP(?) ; HIGH WORD OF USER WAIT FLAG
RTC_WAIT_FLAG DB 1 DUP(?) ; WAIT ACTIVE FLAG
DATA ENDS
;----------------------------------------
; EXTRA DATA AREA :
;----------------------------------------
XXDATA SEGMENT AT 50H
STATUS_BYTE DB 1 DUP(?)
XXDATA ENDS
;----------------------------------------
; VIDEO DISPLAY BUFFER :
;----------------------------------------
VIDEO_RAM SEGMENT AT 0B800H
REGEN LABEL BYTE
REGENW LABEL WORD
DB 16384 DUP(?)
VIDEO_RAM ENDS