209 lines
6.8 KiB
PHP
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
|