Files
TempleOS-Rijn/Demo/AcctExample/TOSCfg.CPP
T
2018-09-08 21:46:47 +02:00

91 lines
3.0 KiB
C++

#define SLOP BLK_SIZE
U0 TOSBootRescueDrv1()
{
CBinFile *bfh=sys_boot_base-sizeof(CBinFile);
bfh(I64)+=bfh->file_size-1;
DefinePrint("TOS_BOOT_RESCUE_DRV","0x%X",
CeilI64(SYS_KERNEL_END+SLOP,BLK_SIZE));
DefinePrint("TOS_BOOT_RESCUE_DRV_END", "0x%X",FloorI64(
(BOOT_RAM_LIMIT-(BOOT_STK_SIZE+DVD_BOOT_LOADER_SIZE))>>4<<4-
(bfh(I64)-SYS_KERNEL_END)-SLOP,BLK_SIZE));
DefinePrint("CFG_BOOT_RESCUE_DRV_FILE","\"/Temp/BootRescueDrv.BIN.Z\"");
} TOSBootRescueDrv1;
U0 TOSBootRescueDrv2()
{
DefinePrint("CFG_BOOT_RESCUE_DRV","\"a10x%X\n0x%X\n\"",TOS_BOOT_RESCUE_DRV,
(TOS_BOOT_RESCUE_DRV_END-TOS_BOOT_RESCUE_DRV)/BLK_SIZE);
DefinePrint("CFG_BOOT_RESCUE_DRV_START","\"0x%X\"",TOS_BOOT_RESCUE_DRV);
} TOSBootRescueDrv2;
U0 TOSInit()
{
CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL;
CBlkDev *bd;
switch (tos_cid) {
case CID_DFT:
DefinePrint("CFG_RAM_DRVS",
"\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\"");
if (blkdev.auto_mount_ide_cnt) {
//If AutoMount was successful, No need to manually mount in next compile
DefinePrint("CFG_HARD_DRVS","\"\"");
DefinePrint("CFG_DVD_DRVS","\"\"");
} else {
//These two are a crazy guess. ATA:IDE Primary ATAPI:IDE Secondary
DefinePrint("CFG_HARD_DRVS","\"cs0x1F0\n0x3F4\n0\"");
DefinePrint("CFG_DVD_DRVS","\"ts0x170\n0\"");
bd=Let2BlkDev(':');
if (bd->type==BDT_ATAPI) {
ATARep(FALSE,,&root);
ATAIDDrvs(root,blkdev.boot_drv_let,&ata_drv,&atapi_drv);
if (ata_drv)
DefinePrint("CFG_HARD_DRVS","\"cp%d\n\"",ata_drv->num);
if (atapi_drv)
DefinePrint("CFG_DVD_DRVS","\"tp%d\n\"",atapi_drv->num);
} else {
try {
bd=Let2BlkDev('C');
DefinePrint("CFG_HARD_DRVS","\"cs0x%X\n0x%X\n%d\"",
bd->base0,bd->base1,bd->unit);
} catch
Fs->catch_except=TRUE;
try {
bd=Let2BlkDev('T');
DefinePrint("CFG_DVD_DRVS","\"ts0x%X\n%d\"",bd->base0,bd->unit);
} catch
Fs->catch_except=TRUE;
}
}
DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
DefinePrint("TOS_HDS","\"CD\"");
DefinePrint("TOS_MASTER_BOOT_DRVS","\"C\"");
}
} TOSInit;
U0 TOSDrvTextAttrSet()
{
DrvTextAttrSet('C', WHITE <<4|BLUE); //Main
DrvTextAttrSet('D', WHITE <<4|RED); //Back-up
DrvTextAttrSet('A', BLUE <<4|BROWN); //Rescue
DrvTextAttrSet('B', BLUE <<4|YELLOW);//RAM
DrvTextAttrSet('T', LTGRAY<<4|BLUE); //CD/DVD
} TOSDrvTextAttrSet;
#define TOS_ISO_NAME "B:/TempleOSCD.ISO"
#define TOS_DISTRO_DIR "B:/Distro"
#define CFG_OPTS "AutoMountIDE\nCT\n"
#define CFG_DBG_OPTS "AutoMountIDE\nCT"\
"HeapInit\n130\nMemInit\n131\nVarInit\n132\n\n"
#define CFG_DBGZ_OPTS "AutoMountIDE\nCT"\
"HeapInit\n0\nMemInit\n0\nVarInit\n0\n\n"
#define TOS_CFG "\n" CFG_RAM_DRVS CFG_DVD_DRVS CFG_HARD_DRVS "\n"\
CFG_DSK_CACHE CFG_OPTS
#define TOS_DVD_CFG "Tb\n0x20000\nt \n\n\nAutoMountIDE\nCT\n"
#define TOS_DVD_DBG_CFG "A" CFG_BOOT_RESCUE_DRV\
"b\nScale2Mem(2048,0x40000)\n\n\n"\
"DontProbe\nBootRescueDrv\n"\
"C:" CFG_BOOT_RESCUE_DRV_FILE "\n"\
CFG_BOOT_RESCUE_DRV_START "\n\n"