CoolFace
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes838downloads
KStart32.txt119 linesDownload Raw Back to Kernel
1 2asm {3USE324//************************************5//  ASM Global vars not required for 16-bit start-up6        ALIGN   8,OC_NOP7MEM_HEAP_BASE::         DU64    0;8MEM_HEAP_LIMIT::        DU64    0;9MEM_PAGE_SIZE::         DU64    0;10MEM_MAPPED_SPACE::      DU64    0;11MEM_2MEG_NUM::          DU64    0;12MEM_1GIG_NUM::          DU64    0;13MEM_512GIG_NUM::        DU64    0;14MEM_PML2::              DU64    0;15MEM_PML3::              DU64    0;16MEM_PML4::              DU64    0;17 18#exe {19  StreamPrint(20"SYS_MEM_INIT_FLAG::    DU8     %d;"21"SYS_MEM_INIT_VAL::     DU8     %d;"22"SYS_HEAP_INIT_FLAG::   DU8     %d;"23"SYS_HEAP_INIT_VAL::    DU8     %d;"24"SYS_VAR_INIT_FLAG::    DU8     %d;"25"SYS_VAR_INIT_VAL::     DU8     %d;"26"SYS_STAFF_MODE_FLAG::  DU8     %d;",27kernel_cfg->opts[CFG_MEM_INIT], kernel_cfg->mem_init_val,28kernel_cfg->opts[CFG_HEAP_INIT],kernel_cfg->heap_init_val,29kernel_cfg->opts[CFG_VAR_INIT], kernel_cfg->var_init_val,30kernel_cfg->opts[CFG_STAFF_MODE]);31};32SYS_HEAP_DBG_FLAG::     DU8     _CFG_HEAP_DBG;33 34        ALIGN   8,035SYS_CTRL_ALT_FLAGS::    DU64    0;36SYS_EXTERN_TABLE::      DU64    0;37 38SYS_CODE_BP::           DU64    0;39SYS_DATA_BP::           DU64    0;40 41SYS_PROGRESSES::42SYS_PROGRESS1::         DU64    0;43SYS_PROGRESS1_MAX::     DU64    0;44SYS_PROGRESS1_T0::      DU64    0;45SYS_PROGRESS1_TF::      DU64    0;46SYS_PROGRESS1_DESC::    DU8     PROGRESS_DESC_LEN DUP(0);47SYS_PROGRESS2::         DU64    0;48SYS_PROGRESS2_MAX::     DU64    0;49SYS_PROGRESS2_T0::      DU64    0;50SYS_PROGRESS2_TF::      DU64    0;51SYS_PROGRESS2_DESC::    DU8     PROGRESS_DESC_LEN DUP(0);52SYS_PROGRESS3::         DU64    0;53SYS_PROGRESS3_MAX::     DU64    0;54SYS_PROGRESS3_T0::      DU64    0;55SYS_PROGRESS3_TF::      DU64    0;56SYS_PROGRESS3_DESC::    DU8     PROGRESS_DESC_LEN DUP(0);57SYS_PROGRESS4::         DU64    0;58SYS_PROGRESS4_MAX::     DU64    0;59SYS_PROGRESS4_T0::      DU64    0;60SYS_PROGRESS4_TF::      DU64    0;61SYS_PROGRESS4_DESC::    DU8     PROGRESS_DESC_LEN DUP(0);62#assert $-SYS_PROGRESSES==sizeof(CProgress)*463 64SYS_FOCUS_TASK::        DU64    0;65SYS_CPU_STRUCTS::       DU64    0;66SYS_MP_CNT::            DU64    1;67SYS_MP_CNT_INITIAL::    DU64    1;68SYS_MP_CNT_LOCK::       DU64    1;69 70        ALIGN   DFT_CACHE_LINE_WIDTH,OC_NOP71SYS_CACHE_LINE_WIDTH::  DU64    DFT_CACHE_LINE_WIDTH;72        DU8     DFT_CACHE_LINE_WIDTH-sizeof(CBinFile)-8 DUP(0);73SYS_SEMAS::             DU8     SEMA_SEMAS_NUM*DFT_CACHE_LINE_WIDTH DUP(0);74//************************************75        ALIGN   16,OC_NOP76CORE0_32BIT_INIT:: //Entry point for BootRAM.77        PUSH    U32 RFLAGG_START78        POPFD79        MOV     EAX,SYS_START_CR080        MOV_CR0_EAX81 82        MOV     AX,CGDT.boot_ds //LOAD DS SELECTOR83        MOV     DS,AX84        BTS     U32 [SYS_RUN_LEVEL],RLf_32BIT85        MOV     ESI,U32 [SYS_BOOT_PATCH_TABLE_BASE]86        MOV     EDI,U32 [MEM_BOOT_BASE]87 88        MOV     AX,CGDT.ds89        MOV     DS,AX90        MOV     ES,AX91        MOV     FS,AX92        MOV     GS,AX93        MOV     SS,AX94        MOV     ESP,BOOT_RAM_LIMIT //Tmp Stk95 96//Patch abs addresses97        MOV     ECX,U32 CPatchTableAbsAddr.abs_addres_cnt[ESI]98        LEA     ESI,U32 CPatchTableAbsAddr.abs_addres[ESI]99@@05:   LODSD100        ADD     EAX,EDI101        ADD     U32 [EAX],EDI102        LOOP    @@05103 104        DU8     0xEA; //JMP CGDT.cs32:@@10105        DU32    @@10;106        DU16    CGDT.cs32;107 108@@10:   BTS     U32 [SYS_RUN_LEVEL],RLf_PATCHED109 110        CALL    SYS_FIND_PCIBIOS_SERVICE_DIR111        CALL    SYS_FIND_PCI_SERVICES112        CALL    SYS_INIT_PAGE_TABLES113        CALL    SYS_INIT_16MEG_SYS_CODE_BP114        PUSH    U32 0   //Return from next call will be 64-bit115        CALL    SYS_ENTER_LONG_MODE116 117        //We fall-thou to KStart64, next.118}119