blob: 8a527badb0a7c38f89fbab9a519a1b1e6614f524 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
|
;---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
|