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.

572 lines
21 KiB

  1. TITLE KDATA - Kernel data area
  2. win3debdata=1
  3. include gpfix.inc ; include first to define segment order
  4. include kernel.inc
  5. include gpcont.inc ; do we alloc Sherlock data items?
  6. extrn __ahshift:ABS ; Pull in LDBOOT.ASM next from KERNOBJ.LIB
  7. sBegin CODE
  8. externFP Int21Handler
  9. sEnd CODE
  10. public __acrtused
  11. __acrtused = 9697
  12. ;------------------------------------------------------------------------
  13. ; Segment definations to define labels at the segment start. Don't put
  14. ; any code or data here.
  15. ;------------------------------------------------------------------------
  16. sBegin INITCODE
  17. labelB <PUBLIC,initcode>
  18. labelB <PUBLIC,beg_initcode>
  19. sEnd INITCODE
  20. DataBegin INIT
  21. labelB <PUBLIC,initdata>
  22. labelB <PUBLIC,beg_initdata>
  23. DataEnd INIT
  24. ;------------------------------------------------------------------------
  25. ; D A T A S E G M E N T V A R I A B L E S
  26. ;------------------------------------------------------------------------
  27. DataBegin
  28. ; The following items must remain in the same location and order. These
  29. ; items also appear in the initial paragraph of each application's DS.
  30. ORG 0
  31. DW 0
  32. globalW oOldSP,0
  33. globalW hOldSS,5
  34. globalW pLocalHeap,0
  35. globalW pAtomTable,0
  36. globalW pStackTop,<dataOffset gmove_stack_top>
  37. globalW pStackMin,<dataOffset gmove_stack>
  38. globalW pStackBot,<dataOffset gmove_stack>
  39. ;------------------------------------------------------------------------
  40. if KDEBUG
  41. ; If this word gets trashed, then we overflowed our stack
  42. globalW gmove_stack_sig,STACK_SIGNATURE,16
  43. endif
  44. labelB <PUBLIC,lpszFileName> ; Used in FileCDR_notify
  45. gmove_stack_top label byte
  46. EVEN
  47. DW 256 DUP (0) ; gmove requires at least 64 words
  48. globalW gmove_stack,0
  49. globalW prev_gmove_SP,0
  50. globalW prev_gmove_SS,0
  51. globalW ss_sel,0
  52. ;------------------------------------------------------------------
  53. ; The debugger requires that the following items remain in the same
  54. ; relative order.
  55. labelW <PUBLIC,THHOOK> ; So ToolHelp can find this stuff, too.
  56. globalW hGlobalHeap,0 ; Handle to master object
  57. globalW pGlobalHeap,0 ; Current physical address of master object
  58. globalW hExeHead,0 ; Head of module list maintained by Load/Free Module
  59. globalW hExeSweep,0 ; ... 1st module for LRU sweep to examine
  60. globalW topPDB,0 ; DOS PDB on entry
  61. globalW headPDB,0 ; link list of PDBs
  62. globalW topsizePDB,0 ; DOS PDB size upon entry
  63. globalW headTDB,0 ; head of task queue
  64. globalW curTDB,0 ; handle for currently running task
  65. globalW loadTDB,0 ; handle for currently loading task
  66. globalW LockTDB,0 ; handle of super task
  67. globalW SelTableLen,0 ; DONT MOVE THIS
  68. globalD SelTableStart,0 ; DONT MOVE THIS
  69. if PMODE32
  70. globalD hBmDPMI,0 ; DPMI handle to BurgerMaster
  71. endif
  72. ;------------------------------------------------------------------------
  73. globalW winVer,400h ; Windows version number for KERNEL.EXE header
  74. globalW fWinx,0 ; Flag from ldboot.asm
  75. globalW f8087,0 ; non zero if 8087 installed
  76. globalW PHTcount,0 ; Count of tasks with a PHT
  77. globalW hGDI,0 ; module handle of GDI
  78. globalW hUser,0 ; module handle of User
  79. globalW hShell,0 ; module handle of Shell
  80. globalW fLMdepth,0 ; # of recursive LoadModules
  81. globalW wDefRIP,0 ; Value to return from RIP in Debug
  82. globalB num_Tasks,0 ; number of tasks (i.e. TDB's) in system
  83. globalB InScheduler,0 ; True if inside scheduler
  84. globalB graphics,1 ; True if user/keyboard/gdi/display loaded
  85. DB 0
  86. globalB fastfp,1 ; True if suppress FWAIT before FOp
  87. ;globalW PID_for_fake,0 ; the PID allocated for the fake task
  88. ;globalW EMS_calc_swap_line,0 ; The calculated swap line
  89. ;globalW EMSCurPID,0 ; The current PID.
  90. globalW MaxCodeSwapArea,0 ; The max paragraphs SetSwapAreaSize can set.
  91. globalW selLowHeap,0 ; selector to Windows Low ( < 640k) heap block
  92. globalW cpLowHeap,0 ; count of paragraphs of Low heap block
  93. globalW selHighHeap,0 ; selector to Windows High ( >640k) heap block
  94. globalW selWoaPdb,0 ; selector to fixed low PDB for WinOldApp
  95. globalW sel_alias_array,0 ; the selector alias array (286 only)
  96. globalW temp_sel,0 ; Single pre-allocated selector
  97. globalD dressed_for_success,0 ; callback into OS/2 mapping layer at app start
  98. ife PMODE32
  99. globalW hXMMHeap,0 ; XMS handle to secondary extended heap block
  100. endif
  101. globalD InDOS,0 ; -> in dos flags and stuff
  102. globalD pSftLink,0 ; -> end of Sft chain when we started
  103. globalD lpWinSftLink,0 ; -> first node in chain that windows adds
  104. ifdef WOW
  105. globalD pDosWowData,0 ; -> rmode pointer to DosWowData in DOSDATA
  106. globalD pPMDosCDSCNT,0 ; -> DOS CDS Count variable
  107. globalD pPMDosCURDRV,0 ; -> DOS CurDrv variable
  108. globalD pPMDosPDB,0 ; -> pointer to PDB in DOSDATA
  109. globalD pPMDosExterr,0 ; -> pointer to DOS Exterr var (word)
  110. globalD pPMDosExterrLocus, 0 ; -> pointer to DOS ExterrLocus var (byte)
  111. globalD pPMDosExterrActionClass,0 ; -> pointer to DOS ExterrActionClass (word, byte each)
  112. endif
  113. globalD pFileTable,0 ; -> beginning of Sft chain
  114. globalW FileEntrySize,0 ; size of one sft entry
  115. globalD curDTA,0 ; what DOS thinks is the current DTA
  116. globalW cur_dos_PDB,0 ; what DOS thinks is the current PDB
  117. globalW Win_PDB,0 ; what we want the PDB to be
  118. globalW cur_drive_owner,0 ; last TDB to change the disk or directory
  119. globalB fBreak,0 ; state of dos break flag between e&d dos
  120. globalB LastDriveSwapped,0 ; drive letter of last drive where disk swap
  121. globalB DOS_version,0 ; DOS major version number
  122. globalB DOS_revision,0 ; DOS minor version number
  123. globalB fInt21,0 ; Flag indicating INT 21 hooks are installed
  124. globalB fNovell,0 ; Have Novell network
  125. globalB fPadCode,0 ; Pad code segments for 286 chip bug
  126. globalB CurDOSDrive,0FFh ; Current drive according to DOS
  127. globalB DOSDrives,26 ; number of logical drives from DOS
  128. ;----------------------------------------------------------------------
  129. ; PhantArray is a byte array indexed by zero based drive number.
  130. ; A non-zero value indicates the drive is phantom.
  131. globalB PhantArray,0,26
  132. ; Keyboard inquire structure
  133. globalB fFarEast,0 ; non zero means far eastern keyboard
  134. ifdef FE_SB
  135. labelB <PUBLIC,DBCSVectorTable> ;LanguageId, SizeOfDBCSVector, [BeginRange, EndRange] []
  136. dw 411h ;JAPAN
  137. db 4, 81h, 9Fh, 0E0h, 0FCh
  138. dw 412h ;KOREA
  139. db 2, 81h, 0FEh
  140. dw 404h ;TAIWAN
  141. db 2, 81h, 0FEh
  142. dw 804h ;PRC
  143. db 2, 81h, 0FEh
  144. dw 0C04h ;HONGKONG
  145. db 2, 81h, 0FEh
  146. db 0 ;End of table
  147. globalB fDBCSLeadTable,0,256 ; DBCS lead byte index table
  148. endif ;FE_SB
  149. globalB KeyInfo,0,%(SIZE KBINFO)
  150. ; Procedure addresses initialized by InitFwdRef
  151. ALIGN 4
  152. globalD pSysProc,0 ; -> SYSTEM.InquireSystem
  153. globalD pTimerProc,0 ; -> SYSTEM.CreateTimer
  154. globalD pSystemTermProc,0 ; -> SYSTEM.Disable
  155. globalD pKeyProc,0 ; -> KEYBOARD.AnsiToOem
  156. globalD pKeyProc1,0 ; -> KEYBOARD.OemToAnsi
  157. globalD pKeyboardTermProc,0 ; -> KEYBOARD.Disable
  158. globalD pKeyboardSysReq,0 ; -> KEYBOARD.EnableKBSysReq
  159. globalD pDisplayCritSec,0 ; -> DISPLAY.500
  160. globalD pMouseTermProc,0 ; -> MOUSE.Disable
  161. globalD pMBoxProc,0 ; -> USER.MessageBox
  162. globalD pSErrProc,0 ; -> USER.SysErrorBox
  163. globalD pExitProc,0 ; -> USER.ExitWindows
  164. globalD pDisableProc,0 ; -> USER.DisableOEMLayer
  165. globalD pUserInitDone,0 ; -> USER.routine to call when init is done
  166. globalD pPostMessage,0 ; -> USER.PostMessage function
  167. globalD pSignalProc,0 ; -> USER.SignalProc function
  168. globalD pIsUserIdle,0 ; -> USER.IsUserIdle function
  169. globalD pUserGetFocus,0 ; -> USER.GetFocus function
  170. globalD pUserGetWinTask,0 ; -> USER.GetWindowTask function
  171. globalD pUserIsWindow,0 ; -> USER.IsWindow function
  172. globalD pGetFreeSystemResources,0 ; -> USER.GetFreeSystemResources function
  173. globalD plstrcmp,0 ; -> USER.lstrcmp function
  174. if ROM
  175. globalD pYieldProc,0 ; -> USER.UserYield
  176. globalD pStringFunc,0 ; -> USER.StringFunc function
  177. globalD prevInt21proc,0 ; -> previous INT 21h handler
  178. globalD prevInt24proc,0 ; -> previous Int 24h handler
  179. globalD prevInt2Fproc,0 ; -> previous Int 24h handler
  180. globalD prevInt3Fproc,0 ; -> previous Int 3Fh handler
  181. globalD prevInt67proc,0 ; -> previous Int 67h handler
  182. globalD prevInt00proc,0 ; -> previous INT 00h handler !! don't move
  183. ; !! don't move
  184. globalD prevInt02proc,0 ; -> previous INT 02h handler !! don't move
  185. globalD prevInt04proc,0 ; -> previous INT 04h handler !! don't move
  186. globalD prevInt06proc,0 ; -> previous INT 06h handler !! don't move
  187. globalD prevInt07proc,0 ; -> previous INT 07h handler !! don't move
  188. globalD prevInt3Eproc,0 ; -> previous INT 3Eh handler !! don't move
  189. globalD prevInt75proc,0 ; -> previous INT 75h handler !! don't move
  190. globalD prevIntx6proc,0 ; -> previous invalid op-code Fault handler
  191. globalD prevInt0Cproc,0 ; -> previous stack fault handler
  192. globalD prevInt0Dproc,0 ; -> previous GP Fault handler
  193. globalD prevInt0Eproc,0 ; -> previous Page Fault handler
  194. endif
  195. globalD lpInt21,0 ; support for NOVELL stealing int 21h
  196. globalD myInt2F,0 ; support for NOVELL swapping with DOS apps
  197. globalD FatalExitProc,0 ; Intercept for FatalExit()
  198. globalD ptrace_dll_entry,0 ; -> ptrace engine DLL entry
  199. globalD ptrace_app_entry,0 ; -> real entry point for app
  200. globalD lpfnToolHelpProc,0 ; TOOLHELP.DLL PTrace function
  201. globalW wExitingTDB,0 ; Flag for DebugWrite--no debug strings at exit
  202. globalD shell_file_proc,0 ; -> shell for file create/del notify
  203. globalW shell_file_TDB,0 ; shell TDB
  204. if SWAPPRO
  205. globalD prevIntF0proc,0 ; -> previous Int F0h handler
  206. globalW hSwapPro,-1 ; file handle for swap profiler
  207. globalB fSwappro,0 ; 0 = no swap info, 1 = swaps, 2 = all
  208. DB 0
  209. endif
  210. globalD gcompact_start,0 ; start to measure swapping
  211. globalD gcompact_timer,0 ; time spent in gcompact to measure swapping
  212. ifdef FE_SB
  213. ifndef KOREA
  214. globalD pJpnSysProc,0 ; -> SYSTEM.JapanInquireSystem
  215. endif
  216. endif
  217. globalW WinFlags,0 ; see kernel.inc for defs of these
  218. globalB Kernel_Flags,0,4 ; see kernel.inc for defs of these
  219. ;
  220. ; WARNING!! Do not disturb the order of the next two variables....
  221. ; See GetLPErrormode in INT24.ASM ARR 7/23/87
  222. ;
  223. globalB Kernel_InDOS,0 ; set when we call the REAL DOS
  224. globalB Kernel_InINT24,0 ; set when Int 24h calls DOS funcs < 13
  225. ; fBooting bits:
  226. ; bit 1 (2h) is reset after kernel is loaded (for fixed blks alloc strategy)
  227. ; fBooting is zeroed as a whole after full booting by bootdone
  228. globalB fBooting,3 ; Set to zero by bootdone
  229. globalB fChkSum,0 ; Flag set if segment checksumming enabled
  230. globalB fCheckFree,1 ; Set to zero by slowboot
  231. globalB cdevat,0 ; Int 24 state
  232. globalB errcap,0 ; Int 24 error capabilities mask
  233. ifndef WOW
  234. ; profile APIs are thunked
  235. globalB fProfileDirty,0 ; Profiles need writing
  236. globalB fProfileMaybeStale,0 ; Profiles MAY need to be reread
  237. globalB fWriteOutProfilesReenter,0 ; Are we currently in WriteOutProfiles?
  238. endif
  239. globalB fPokeAtSegments,1 ; Idle time load of segments
  240. globalB fTaskSwitchCalled, 0 ; Local Reboot only works when task switching
  241. globalD WinAppHooks,0 ; winapps can hook this for std winoldap.
  242. public WOAName
  243. WOAName DB 'WINOLDAP.MOD',0
  244. globalB grab_name,0,128
  245. ALIGN 4
  246. globalD lpWindowsDir,0 ; -> to WFP of where win.ini lives
  247. globalD lpSystemDir,0 ; -> to WFP of where kernel lives
  248. globalW cBytesWinDir,0 ; length of WFP for windows dir
  249. globalW cBytesSysDir,0 ; length of WFP for system dir
  250. ifdef WOW
  251. globalD lpSystemRootDir,0 ; -> value of SystemRoot environment var
  252. globalD lpSystem16Dir,0 ; -> to WFP of \windows\system
  253. globalD lpSystemWx86Dir,0 ; \windows\system32\Wx86
  254. globalW cBytesSystemRootDir,0 ; length of SystemrootEnvironment var
  255. globalW cBytesSys16Dir,0 ; in WOW lpSystemDir points to \windows\system32
  256. globalW cBytesSysWx86Dir,0 ; in WOW Windows\system32\Wx86
  257. public Sys16Suffix
  258. Sys16Suffix DB '\system' ; append to WinDir to get lpSystem16Dir
  259. public cBytesSys16Suffix
  260. cBytesSys16Suffix DW ($ - dataoffset Sys16Suffix)
  261. public SysWx86Suffix
  262. SysWx86Suffix DB '\Sys32x86' ; append to WinDir to get lpSystemWx86Dir
  263. public cBytesSysWx86Suffix
  264. cBytesSysWx86Suffix DW ($ - dataoffset SysWx86Suffix)
  265. endif
  266. globalD lpGPChain,0 ; GP fault hack for WEPs - chain to this addr
  267. if SHERLOCK
  268. globalW gpTrying,0 ; Trying to continue after a GP fault
  269. globalW gpEnable, 1 ; Enable GP continuation
  270. globalW gpInsLen, 0 ; Length of faulting instruction
  271. globalW gpSafe, 0 ; OK to skip current instruction
  272. globalW gpRegs, 0 ; Regs modified by faulting insn
  273. globalW gpStack, 0 ; movement of stack by faulting insn
  274. endif
  275. ifndef WOW
  276. ; The profile APIs are thunked for WOW
  277. globalB WinIniInfo,0,%(size PROINFO)
  278. globalB PrivateProInfo,0,%(size PROINFO)
  279. endif ; ndef WOW
  280. public szUserPro
  281. szUserPro DB 'WIN.INI',0
  282. ifndef WOW
  283. DB 72 dup (0) ; Room for a long path
  284. ;;;globalB fUserPro,0 ; Current Profile is WIN.INI
  285. ;;;globalD lpszUserPro,0
  286. endif
  287. ; ndef WOW
  288. ifdef WOW
  289. globalW hWinnetDriver, 0
  290. endif ;WOW
  291. globalW BufPos,0 ; buffer pointer with OutBuf
  292. globalB OutBuf,0,70 ; 70 character out buffer
  293. EVEN
  294. globalW MyCSAlias,0 ; Kernel's CS/DS Alias
  295. globalW MyCSSeg,0 ; Kernel's CS as a segment
  296. globalW MyDSSeg,0 ; Kernel's DS as a segment
  297. globalW hLoadBlock,0 ; Handle that points to in memory file image
  298. globalW segLoadBlock,0 ; Segment address of file image
  299. globalW wMyOpenFileReent, 0 ; Reentrant flag for MyOpenFile
  300. ife ROM
  301. globalW cpShrink,0
  302. globalW cpShrunk,0 ; Delta from beginning of file to hLoadBlock
  303. endif
  304. if ROM
  305. externD <lmaExtMemROM,cbExtMemROM>
  306. globalD lmaHiROM,lmaExtMemROM
  307. globalD cbHiROM,cbExtMemROM
  308. globalW selROMTOC,0
  309. globalW selROMLDT,0
  310. globalW sel1stAvail,0
  311. globalD linHiROM, 0
  312. endif
  313. if PMODE32
  314. globalW PagingFlags,0
  315. globalW ArenaSel,0
  316. globalW FirstFreeSel,0
  317. globalW CountFreeSel,0
  318. globalD FreeArenaList,0
  319. globalD FreeArenaCount,0
  320. globalD HighestArena,0
  321. globalD temp_arena,0
  322. globalD NextCandidate,-1
  323. globalW Win386_Blocks,0
  324. globalW InitialPages,0
  325. globalD lpReboot,0 ; Reboot VxD address
  326. endif
  327. globalW BaseDsc,0
  328. globalW kr1dsc,0
  329. globalW kr2dsc,0
  330. globalW blotdsc,0
  331. globalW DemandLoadSel,0
  332. globalW fhcStealNext,<(MAXFHCACHELEN-1)*size fhCacheStruc+dataOffset fhCache> ; Next fhCache entry to use
  333. globalW fhCacheEnd,<MAXFHCACHELEN*size fhCacheStruc+dataOffset fhCache> ; End of the cache
  334. globalW fhCacheLen,MINFHCACHELEN
  335. globalB fhCache,0,%(MAXFHCACHELEN*size fhCacheStruc)
  336. if KDEBUG
  337. globalB fLoadTrace, 0
  338. globalB fPreloadSeg, 0
  339. globalB fKTraceOut, 0 ; Used by DebugWrite to ignore traces
  340. ; to be sent to PTrace
  341. endif
  342. globalB fDW_Int21h, 0FFh ; FF if okay for DebugWrite to use Int 21h
  343. if ROM and PMODE32
  344. globalW gdtdsc,0
  345. endif
  346. ALIGN 2
  347. if 0; EarleH
  348. globalW LastCriticalError,-1
  349. endif
  350. globalW LastExtendedError,-1,3 ; Don't move this
  351. globalW Reserved,0,8 ; Don't move this
  352. ifdef WOW
  353. ;------------------------------------------------------------------------
  354. ; W O W G L O B A L D A T A
  355. ;------------------------------------------------------------------------
  356. public achTermsrvWindowsDir ; per user windows directory (for .ini files)
  357. achTermsrvWindowsDir DB MaxFileLen dup (0)
  358. globalW wCurTaskSS,0 ; Currently Running Task SS
  359. globalW wCurTaskBP,0 ; Currently Running Task BP
  360. globalD Dem16to32handle,0 ; -> DOS Emulation 16 to 32 bit handle convertion
  361. globalD FastBop,0 ; eip value for fast bop entry point
  362. globalW FastBopCS,0 ; CS value for fast bop entry point
  363. globalD FastWOW,0 ; eip for fast WOW32 entry point when doing thunk call
  364. globalW FastWOWCS,0 ; CS value for fast wow entry point
  365. globalD FastWOWCbRet,0 ; eip for fast WOW32 entrypoint to return from callback
  366. globalW FastWOWCbRetCS,0; cs for above
  367. globalW WOWFastBopping,0; non-zero if fast call to WOW32 enabled
  368. ; Jmp indirect through here for faster bops
  369. globalB fExitOnLastApp,0 ; Close WOW when the last app exits (not WOWEXEC)
  370. globalB fShutdownTimerStarted,0 ; 1 if the shutdown timer is running (shared WOW)
  371. ;; do not rearrange these or stick anything in the middle!
  372. ;;
  373. ;;
  374. wowtablemodstart label byte
  375. globalW MOD_KERNEL ,0 ; kernel must be first!
  376. globalW MOD_DKERNEL ,0
  377. globalW MOD_USER ,0
  378. globalW MOD_DUSER ,0
  379. globalW MOD_GDI ,0
  380. globalW MOD_DGDI ,0
  381. globalW MOD_KEYBOARD ,0
  382. globalW MOD_SOUND ,0
  383. globalW MOD_SHELL ,0
  384. globalW MOD_WINSOCK ,0
  385. globalW MOD_TOOLHELP ,0
  386. globalW MOD_MMEDIA ,0
  387. globalW MOD_COMMDLG ,0
  388. ifdef FE_SB
  389. globalW MOD_WINNLS ,0
  390. globalW MOD_WIFEMAN ,0
  391. endif ; FE_SB
  392. globalW ModCount ,<($ - dataoffset wowtablemodstart) / 2>
  393. ;;
  394. ;;
  395. ;; do not rearrange these or stick anything in the middle!
  396. globalW DebugWOW,1 ; bit 0 = 1 WOW is being debugged, 0 = WOW is not
  397. globalW TraceOff,0 ; bit 0 = 1 turn off trace interrupts during apis
  398. globalW WOWLastError,0 ; Last error returned by int 21
  399. globalB WOWErrClass, 0
  400. globalB WOWErrAction, 0
  401. globalB WOWErrLocation, 0
  402. endif
  403. DataEnd
  404. ;------------------------------------------------------------------------
  405. ; C O D E S E G M E N T V A R I A B L E S
  406. ;------------------------------------------------------------------------
  407. sBegin CODE
  408. assumes cs,CODE
  409. EVEN
  410. dw 18h dup(0F4CCh) ; Catch them jmps, calls & rets to 0
  411. ; and offset segment for putting in HMA
  412. if ROM
  413. globalW MyCSDS,<seg _DATA> ; Kernel's DS
  414. ife PMODE32
  415. externW selLDTAlias
  416. globalW gdtdsc,selLDTAlias ; Data alias to LDT
  417. endif
  418. else
  419. globalW MyCSDS,0 ; Kernel's DS
  420. globalW gdtdsc,0
  421. endif
  422. ALIGN 4
  423. ife ROM
  424. globalD pYieldProc,0 ; -> USER.UserYield
  425. globalD pStringFunc,0 ; -> USER.StringFunc function
  426. globalD prevInt21proc,0 ; -> previous INT 21h handler
  427. globalD prevInt24proc,0 ; -> previous Int 24h handler
  428. globalD prevInt2Fproc,0 ; -> previous Int 24h handler
  429. globalD prevInt3Fproc,0 ; -> previous Int 3Fh handler
  430. globalD prevInt67proc,0 ; -> previous Int 67h handler
  431. globalD prevInt00proc,0 ; -> previous INT 00h handler !! don't move
  432. ; !! don't move
  433. globalD prevInt02proc,0 ; -> previous INT 02h handler !! don't move
  434. globalD prevInt04proc,0 ; -> previous INT 04h handler !! don't move
  435. globalD prevInt06proc,0 ; -> previous INT 06h handler !! don't move
  436. globalD prevInt07proc,0 ; -> previous INT 07h handler !! don't move
  437. globalD prevInt3Eproc,0 ; -> previous INT 3Eh handler !! don't move
  438. globalD prevInt75proc,0 ; -> previous INT 75h handler !! don't move
  439. globalD prevIntx6proc,0 ; -> previous invalid op-code Fault handler
  440. globalD prevInt0Cproc,0 ; -> previous stack fault handler
  441. globalD prevInt0Dproc,0 ; -> previous GP Fault handler
  442. globalD prevInt0Eproc,0 ; -> previous Page Fault handler
  443. ifdef WOW
  444. globalD prevInt31proc,0 ; used to speed dpmi calls
  445. globalD oldInt00proc,0 ; for debugging traps
  446. globalD prevInt01proc,0 ; for debugging traps
  447. globalD prevInt03proc,0 ; for debugging traps
  448. globalD prevInt10proc,0 ; -> previous INT 10 handler
  449. endif
  450. endif ;!ROM
  451. if 0
  452. PUBLIC DummyKeyboardOEMToAnsi
  453. DummyKeyboardOEMToAnsi proc far
  454. ret ; used for non-graphics version
  455. DummyKeyboardOEMToAnsi endp
  456. endif
  457. sEnd CODE
  458. ;------------------------------------------------------------------------
  459. ; I N I T D A T A S E G M E N T V A R I A B L E S
  460. ;------------------------------------------------------------------------
  461. DataBegin INIT
  462. globalW oNRSeg,0
  463. globalW oMSeg,0
  464. globalD lpBootApp,0 ; Long pointer to app to run after booting
  465. ifndef WOW
  466. ; WOW doesn't muck with WOAName buffer, we leave it as WINOLDAP.MOD
  467. labelB <PUBLIC,woa_286>
  468. db 'WINOLDAP.MOD'
  469. labelB <PUBLIC,woa_386>
  470. db 'WINOA386.MOD'
  471. endif
  472. labelB <PUBLIC,bootExecBlock>
  473. EXECBLOCK <0,0,0,0>
  474. globalW win_show,2
  475. dw 1 ; show open window
  476. DataEnd INIT
  477. end