en:docs:kernel:doskrnl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:docs:kernel:doskrnl [2023/12/15 03:46] prokusheven:docs:kernel:doskrnl [2024/05/24 02:01] prokushev
Line 3: Line 3:
 ====== DOSKRNL ====== ====== DOSKRNL ======
  
-DOSKRNL is a specialized FreeDOS kernel changed to support DOS in MVM. Mostly all FAT code removed as well as CONFIG.SYS parser. So it smaller in compare with original FreeDOS kernel. Also image format changed because different load logic.+DOSKRNL is a specialized FreeDOS kernel changed to support DOS in MVM. Mostly all FAT code removed as well as CONFIG.SYS parser. So it smaller in compare with original FreeDOS kernel. Also image format changed from exe to raw binary because slightly different load logic.
  
 ===== Initialization ===== ===== Initialization =====
  
-DOSKRNL loaded at address differ from standard DOS 0060:0000 address. osFree DOSKRNL expect unknown load address, but in low address of conventional memory.+DOSKRNL loaded at address differ from standard DOS 0060:0000 address, but at 0070:0000. osFree DOSKRNL expects unknown load address, but in low address of conventional memory. Refer [[https://archive.org/download/IBMOS2TechnicalDocumentation/KGUIDE20.PDF|OS/2 v 2.0 Kernel Design Guide]] for memory map and initialization information.
  
 On DOSKRNL startup registers are following: On DOSKRNL startup registers are following:
  
   * CS:IP - starting point   * CS:IP - starting point
-  * SS:BP - pointer to the DOSKRNL init structure+  * SS:BP - pointer to the DOSKRNL init structure (also refered as VDOS init in IBM documents)
   * SS:SP - stack pointer (size around 800 bytes)   * SS:SP - stack pointer (size around 800 bytes)
 +
 +Interrupts disabled.
  
 DOSKRNL init structure: DOSKRNL init structure:
Line 39: Line 41:
 VDD is linked list of structures: VDD is linked list of structures:
  
-VDDs linked list (in init area) in standard DOS Device drivers format+VDDs linked list in standard DOS Device drivers format. Entry can be placed in HMA, so need to be sure A20 enabled for such entries.
  
 ^ offset ^ Size ^ Description ^ ^ offset ^ Size ^ Description ^
Line 62: Line 64:
 | Free              | [BP+0]:0 | | Free              | [BP+0]:0 |
 | DOSKRNL           | ???:0 | | DOSKRNL           | ???:0 |
-some data         | ??? |+Some data (VDD entries was found here) | ??? |
 | CMOS Data         | 40:0 | | CMOS Data         | 40:0 |
 | Interrupt vectors | 0:0  | | Interrupt vectors | 0:0  |
Line 135: Line 137:
   * VIDEO_SWITCH_NOTIFICATION   * VIDEO_SWITCH_NOTIFICATION
   * VIDEO_WINDOW_REFRESH   * VIDEO_WINDOW_REFRESH
-  * XMS _HANDLES+  * XMS_HANDLES
   * XMS_MEMORY_LIMIT   * XMS_MEMORY_LIMIT
   * XMS_MINIMUM_HMA    * XMS_MINIMUM_HMA