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
en:docs:kernel:doskrnl [2024/05/24 02:01] prokusheven:docs:kernel:doskrnl [2024/05/25 02:43] (current) prokushev
Line 7: Line 7:
 ===== Initialization ===== ===== Initialization =====
  
-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.+DOSKRNL loaded at address differ from standard DOS 0060:0000 address. On test environment it was loaded to 0280:00, but [[https://archive.org/download/IBMOS2TechnicalDocumentation/KGUIDE20.PDF|OS/2 v 2.0 Kernel Design Guide]] says it is at 0070:0000. Later documentation says nothing about loading address. 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 (also refered as VDOS init in IBM documents)+  * SS:BP - pointer to the DOSKRNL init structure (also referenced as VDOS init in IBM documents)
   * SS:SP - stack pointer (size around 800 bytes)   * SS:SP - stack pointer (size around 800 bytes)
  
Line 31: Line 31:
 | 26     | 1    | Current drive (1-A, 2-B, 3-C, ...)| | 26     | 1    | Current drive (1-A, 2-B, 3-C, ...)|
 | 27     | 1    | Boot drive (1-A, 2-B, 3-C, ...) | | 27     | 1    | Boot drive (1-A, 2-B, 3-C, ...) |
-| ????   | ???  | ???? |+| 28     | 1    | Last drive (1-A, 2-B, 3-C, ...) | 
 +| ???    | ???  | ??? |
  
 DEVICES is ASCIIZ string with list of DOS devices to be loaded divided by 0AH DEVICES is ASCIIZ string with list of DOS devices to be loaded divided by 0AH
Line 37: Line 38:
 SHELL is ASCIIZ string. SHELL is ASCIIZ string.
  
-SHELL arguments is ASCIIZ string (first byte is as string length, string ends with 0dh)+SHELL arguments is ASCIIZ string (first byte is string length, string ends with 0dh)
  
 VDD is linked list of structures: VDD is linked list of structures:
  
-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.+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. Named as DOSDDTYPE in DDK
  
 ^ offset ^ Size ^ Description ^ ^ offset ^ Size ^ Description ^
Line 81: Line 82:
   * DOS   * DOS
   * BREAK   * BREAK
 +  * FCBS
 +  * LASTDRIVE
  
 todo add more info here todo add more info here