38 lines
991 B
Plaintext
38 lines
991 B
Plaintext
exe {KeepPrivate(ON);}
|
|
#include "/LT/OSMain/ADAMK.HPZ"
|
|
asm {
|
|
#include "/LT/OSMain/OSINC"
|
|
exe {KeepPrivate(OFF);}
|
|
CP_MY_RUN::
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EBX,BOOT_CODE_RAM
|
|
JMP U4 SF_PARAM1[EBP]
|
|
}
|
|
exe {KeepPrivate(ON);}
|
|
exe {Externs2Imports(ON);}
|
|
#include "/LT/OSMain/ADAMK2.HPZ"
|
|
#include "/LT/OSMain/ADAMK3.HPZ"
|
|
exe {Externs2Imports(OFF);}
|
|
exe {KeepPrivate(OFF);}
|
|
|
|
LTextern CP_MY_RUN void MyRun(U1 *s);
|
|
|
|
public void Boot(I1 *filename)
|
|
{
|
|
U8 size;
|
|
OsMainStruct *hi_image=ReadFile(filename,&size),
|
|
*lo_image=sys_boot_base-sizeof(BinFileHeaderStruct);
|
|
Cli;
|
|
|
|
hi_image->boot_base=lo_image+sizeof(BinFileHeaderStruct);
|
|
hi_image->header_base=lo_image+hi_image->h.header_offset;
|
|
hi_image->boot_code=BOOT_CODE_RAM;
|
|
hi_image->sys_memblks=lo_image->sys_memblks;
|
|
|
|
MemCpy(&hi_image->gdttab,&lo_image->gdttab,sizeof(GdtTabStruct)*MAXGDT);
|
|
MemCpy(lo_image,hi_image,size);
|
|
MyRun(lo_image+sizeof(BinFileHeaderStruct)+lo_image->os_32start);
|
|
}
|
|
|
|
|