knull.asm
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:2k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. ;*
  2. ;* COW : Character Oriented Windows
  3. ;*
  4. ;* knull.asm : Kernel NULL segment / Segment ordering
  5. ;*
  6. ;* * Kludge Segments to force proper segments
  7. ;*
  8. ;* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  9. ;* * WARNING : only change this file if you know exactly what you are doing
  10. ;* * WARNING : THIS FILE MUST BE POST-PROCESSED BY SEGORDER !!
  11. ;* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  12. ;* * NOTE :
  13. ;* * the kernel buffer must be after all non-zero initialized data,
  14. ;* *  and before the _BSS segment, this allows loading in the DGROUP +
  15. ;* *  rlbFix in 1 read and zero filling the remaining (thus starting with
  16. ;* *  rlbFix already in the work buffer
  17. ;* * In order for the loader to know where this buffer starts, the address
  18. ;* *  is placed at address 4 in the DGROUP (part of NULL).
  19. ;* *  (the loader asserts that the buffer is right after BSS data), also
  20. ;* *  the work buffer is NOT zero initialized.
  21. include version.inc
  22. IFNDEF FOR_QC
  23. public __acrtused
  24. __acrtused = 1
  25. ENDIF ; !FOR_QC
  26. ;* * Funny segment order *
  27. _TEXT SEGMENT PARA PUBLIC 'CODE'
  28. _TEXT ENDS
  29. NULL SEGMENT PARA PUBLIC 'BEGDATA'
  30. NULL ENDS
  31. _DATA SEGMENT WORD PUBLIC 'DATA'
  32. _DATA ENDS
  33. CONST SEGMENT WORD PUBLIC 'CONST'
  34. CONST ENDS
  35. KERNEL_BUFF SEGMENT WORD PUBLIC 'BEFORE_BSS'
  36. EXTRN rgbKernelBuff:BYTE
  37. KERNEL_BUFF ENDS
  38. _BSS SEGMENT PARA PUBLIC 'BSS'
  39. _BSS ENDS
  40. DGROUP GROUP NULL,_DATA,CONST,KERNEL_BUFF,_BSS
  41. ;*****************************************************************************
  42. PUBLIC pbKernelBuff
  43. PUBLIC bpOldStack, ssOldStack
  44. PUBLIC pStackTop, pStackMin, pStackBot
  45. NULL SEGMENT
  46. DW 0 ;* first word of DDS is zero
  47. bpOldStack DW 0 ;* old stack's BP
  48. ssOldStack DW 0 ;* old stack's SS
  49. DW 0 ;* reserved
  50. pbKernelBuff DW OFFSET DGROUP: rgbKernelBuff ;* offset $A
  51. pStackTop DW 0 ;* top of stack
  52. pStackMin DW 0 ;* minimum value of SP (old stack's SP)
  53. pStackBot DW 0 ;* bottom of stack
  54. NULL ENDS
  55. END