Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
6.8 KiB

  1. ;---Revised 8-17-84 FOR KBX (ADDED ADDITIONAL KEYBOARD FLAG - KB_FLAG_3)
  2. ;----------------------------------------
  3. ; 0286 INTERRUPT LOCATIONS (READ):
  4. ;----------------------------------------
  5. ABS0 SEGMENT AT 0
  6. STG_LOC0 LABEL BYTE
  7. ORG 2*4
  8. NMI_PTR LABEL WORD
  9. ORG 5*4
  10. INT5_PTR LABEL WORD
  11. ORG 8*4
  12. INT_ADDR LABEL WORD
  13. INT_PTR LABEL DWORD
  14. ORG 10H*4
  15. VIDEO_INT LABEL WORD
  16. ORG 13H*4 ; NEW FDISK
  17. ORG_VECTOR LABEL DWORD
  18. ORG 18H*4
  19. BASIC_PTR LABEL WORD
  20. ORG 19H*4
  21. BOOT_VEC LABEL DWORD
  22. BOOT_VECTOR LABEL DWORD
  23. ORG 1DH*4
  24. PARM_PTR LABEL DWORD ; POINTER TO VIDEO PARMS
  25. ORG 1EH*4
  26. DISK_POINTER LABEL DWORD
  27. ORG 01FH*4
  28. EXT_PTR LABEL DWORD
  29. ORG 40H*4 ; DISKETTE POINTER
  30. DISK_VECTOR LABEL DWORD
  31. ORG 41H*4
  32. HF_TBL_VEC LABEL DWORD
  33. ORG 46H*4
  34. HF1_TBL_VEC LABEL DWORD
  35. ORG 70H*4
  36. SLAVE_INT_PTR LABEL DWORD
  37. RTC_INT_VEC LABEL DWORD ; REAL TIME CLOCK INT
  38. ORG 76H*4 ; FIXED DISK INTERRUPT VECTOR
  39. HDISK_INT LABEL DWORD
  40. ORG 400H
  41. DATA_AREA LABEL BYTE ;ABSOLUTE LOCATION OF DATA SEGMENT
  42. DATA_WORD LABEL WORD
  43. ORG 0500H
  44. MFG_TEST_RTN LABEL FAR
  45. ORG 7C00H
  46. BOOT_LOCN LABEL FAR
  47. ABS0 ENDS
  48. PAGE
  49. ;------------------------------------------------
  50. ; STACK -- USED DURING INITIALIZATION ONLY :
  51. ;------------------------------------------------
  52. STACK SEGMENT AT 30H
  53. DW 128 DUP(?)
  54. TOS LABEL WORD
  55. STACK ENDS
  56. ;----------------------------------------
  57. ; ROM BIOS DATA AREAS :
  58. ;----------------------------------------
  59. DATA SEGMENT AT 40H
  60. ;DATA_BASE LABEL BYTE
  61. RS232_BASE DW 4 DUP(?) ; ADDRESSES OF RS232 ADAPTERS
  62. PRINTER_BASE DW 4 DUP(?) ; ADDRESSES OF PRINTERS
  63. EQUIP_FLAG DW 1 DUP(?) ; INSTALLED HARDWARE
  64. MFG_TST DB 1 DUP(?) ; INITIALIZATION FLAG
  65. MEMORY_SIZE DW 1 DUP(?) ; MEMORY SIZE IN K BYTES
  66. MFG_ERR_FLAG DB 1 DUP(?) ; SCRATCHPAD FOR MANUFACTURING
  67. DB 1 DUP(?) ; ERROR CODES
  68. PAGE
  69. ;----------------------------------------
  70. ; KEYBOARD DATA AREAS :
  71. ;----------------------------------------
  72. KB_FLAG DB 1 DUP(?)
  73. KB_FLAG_1 DB 1 DUP(?) ; SECOND BYTE OF KEYBOARD STATUS
  74. ALT_INPUT DB 1 DUP(?) ; STORAGE FOR ALTERNATE KEYPAD ENTRY
  75. BUFFER_HEAD DW 1 DUP(?) ; POINTER TO HEAD OF KEYBOARD BUFFER
  76. BUFFER_TAIL DW 1 DUP(?) ; POINTER TO TAIL OF KEYBOARD BUFFER
  77. KB_BUFFER DW 16 DUP(?) ; ROOM FOR 15 ENTRIES
  78. KB_BUFFER_END LABEL WORD
  79. ;------ HEAD = TAIL INDICATES THAT THE BUFFER IS EMPTY
  80. ;----------------------------------------
  81. ; DISKETTE DATA AREAS :
  82. ;----------------------------------------
  83. SEEK_STATUS DB 1 DUP(?) ; DRIVE RECALIBRATION STATUS
  84. ; BIT 3-0 = DRIVE 3-0 NEEDS RECAL
  85. ; BEFORE NEXT SEEK IF BIT IS = 0
  86. MOTOR_STATUS DB 1 DUP(?) ; MOTOR STATUS
  87. ; BIT 3-0 = DRIVE 3-0 IS CURRENTLY
  88. ; RUNNING
  89. ; BIT 7 = CURRENT OPERATION IS A WRITE,
  90. ; REQUIRES DELAY
  91. MOTOR_COUNT DB 1 DUP(?) ; TIME OUT COUNTER FOR DRIVE TURN OFF
  92. DISKETTE_STATUS DB 1 DUP(?) ; RETURN CODE STATUS BYTE
  93. CMD_BLOCK LABEL BYTE
  94. HD_ERROR LABEL BYTE
  95. NEC_STATUS DB 7 DUP(?) ; STATUS BYTES FROM NEC
  96. PAGE
  97. ;----------------------------------------
  98. ; VIDEO DISPLAY DATA AREA :
  99. ;----------------------------------------
  100. CRT_MODE DB 1 DUP(?) ; CURRENT CRT MODE
  101. CRT_COLS DW 1 DUP(?) ; NUMBER OF COLUMNS ON SCREEN
  102. CRT_LEN DW 1 DUP(?) ; LENGTH OF REGEN IN BYTES
  103. CRT_START DW 1 DUP(?) ; STARTING ADDRESS IN REGEN BUFFER
  104. CURSOR_POSN DW 8 DUP(?) ; CURSOR FOR EACH OF UP TO 8 PAGES
  105. CURSOR_MODE DW 1 DUP(?) ; CURRENT CURSOR MODE SETTING
  106. ACTIVE_PAGE DB 1 DUP(?) ; CURRENT PAGE BEING DISPLAYED
  107. ADDR_6845 DW 1 DUP(?) ; BASE ADDRESS FOR ACTIVE DISPLAY CARD
  108. CRT_MODE_SET DB 1 DUP(?) ; CURRENT SETTING OF THE 3X8 REGISTER
  109. CRT_PALLETTE DB 1 DUP(?) ; CURRENT PALLETTE SETTING COLOR CARD
  110. PAGE
  111. ;----------------------------------------
  112. ; POST DATA AREA :
  113. ;----------------------------------------
  114. IO_ROM_INIT DW 1 DUP(?) ; PNTR TO OPTIONAL I/O ROM INIT ROUTINE
  115. IO_ROM_SEG DW 1 DUP(?) ; POINTER TO IO ROM SEGMENT
  116. INTR_FLAG DB 1 DUP(?) ; FLAG TO INDICATE AN INTERRUPT HAPPEND
  117. ;----------------------------------------
  118. ; TIMER DATA AREA :
  119. ;----------------------------------------
  120. TIMER_LOW DW 1 DUP(?) ; LOW WORD OF TIMER COUNT
  121. TIMER_HIGH DW 1 DUP(?) ; HIGH WORD OF TIMER COUNT
  122. TIMER_OFL DB 1 DUP(?) ; TIMER HAS ROLLED OVER SINCE LAST READ
  123. ;----------------------------------------
  124. ; SYSTEM DATA AREA :
  125. ;----------------------------------------
  126. BIOS_BREAK DB 1 DUP(?) ; BIT 7=1 IF BREAK KEY HAS BEEN HIT
  127. RESET_FLAG DW 1 DUP(?) ; WORD=1234H IF KEYBOARD RESET UNDERWAY
  128. PAGE
  129. ;----------------------------------------
  130. ; HARD FILE DATA AREAS :
  131. ;----------------------------------------
  132. DISK_STATUS1 DB 1 DUP(?)
  133. HF_NUM DB 1 DUP(?)
  134. CONTROL_BYTE DB 1 DUP(?)
  135. PORT_OFF DB 1 DUP(?)
  136. ;------------------------------------------------------
  137. ; PRINTER AND RS232 TIME-OUT VARIABLES :
  138. ;------------------------------------------------------
  139. PRINT_TIM_OUT DB 4 DUP(?)
  140. RS232_TIM_OUT DB 4 DUP(?)
  141. ;----------------------------------------
  142. ; ADDITIONAL KEYBOARD DATA AREA :
  143. ;----------------------------------------
  144. BUFFER_START DW 1 DUP(?)
  145. BUFFER_END DW 1 DUP(?)
  146. ;---------------------------------------
  147. ; ADDITIONAL FLOPPY DATA ;
  148. ;---------------------------------------
  149. ORG 8BH
  150. LASTRATE DB 1 DUP(?) ; LAST DATA RATE SELECTED
  151. PAGE
  152. ;---------------------------------------
  153. ; ADDITIONAL HARD FILE DATA :
  154. ;---------------------------------------
  155. ORG 8CH
  156. HF_STATUS DB 1 DUP(?) ; STATUS REGISTER
  157. HF_ERROR DB 1 DUP(?) ; ERROR REGISTER
  158. HF_INT_FLAG DB 1 DUP(?) ; HARD FILE INTERRUPT FLAG
  159. HF_CNTRL DB 1 DUP(?) ; COMBO HARD FILE/FLOPPY CARD BIT 0=1
  160. ;----------------------------------------
  161. ; ADDITIONAL DISKETTE AREA :
  162. ;----------------------------------------
  163. ORG 90H
  164. DSK_STATE LABEL BYTE
  165. DB 1 DUP(?) ; DRIVE 0 MEDIA STATE
  166. DB 1 DUP(?) ; DRIVE 1 MEDIA STATE
  167. DB 1 DUP(?) ; DRIVE 0 OPERATION START STATE
  168. DB 1 DUP(?) ; DRIVE 1 OPERATION START STATE
  169. DSK_TRK DB 1 DUP(?) ; DRIVE 0 PRESENT CYLINDER
  170. DB 1 DUP(?) ; DRIVE 1 PRESENT CYLINDER
  171. DB 1 DUP(?) ; RESERVED
  172. ;---------------------------------------- AEV
  173. ; ADDITIONAL KEYBOARD FLAG FOR KBX: AEV
  174. ;---------------------------------------- AEV
  175. ORG 96H ; AEV
  176. KB_FLAG_3 DB 1 DUP(?) ; AEV
  177. ;----------------------------------------
  178. ; ADDITIONAL KEYBOARD LED FLAG :
  179. ;----------------------------------------
  180. ORG 97H
  181. KB_FLAG_2 DB 1 DUP(?)
  182. PAGE
  183. ;----------------------------------------
  184. ; REAL TIME CLOCK DATA AREA :
  185. ;----------------------------------------
  186. ORG 98H
  187. USER_FLAG DW 1 DUP(?) ; OFFSET ADDR OF USERS WAIT FLAG
  188. USER_FLAG_SEG DW 1 DUP(?) ; SEG ADDR OF USER WAIT FLAG
  189. RTC_LOW DW 1 DUP(?) ; LOW WORD OF USER WAIT FLAG
  190. RTC_HIGH DW 1 DUP(?) ; HIGH WORD OF USER WAIT FLAG
  191. RTC_WAIT_FLAG DB 1 DUP(?) ; WAIT ACTIVE FLAG
  192. DATA ENDS
  193. ;----------------------------------------
  194. ; EXTRA DATA AREA :
  195. ;----------------------------------------
  196. XXDATA SEGMENT AT 50H
  197. STATUS_BYTE DB 1 DUP(?)
  198. XXDATA ENDS
  199. ;----------------------------------------
  200. ; VIDEO DISPLAY BUFFER :
  201. ;----------------------------------------
  202. VIDEO_RAM SEGMENT AT 0B800H
  203. REGEN LABEL BYTE
  204. REGENW LABEL WORD
  205. DB 16384 DUP(?)
  206. VIDEO_RAM ENDS