mirror of https://github.com/minexew/Shrine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
401 lines
10 KiB
401 lines
10 KiB
//The CFG defines are $LK,"~/TOS/TOSCfg.HC",A="FI:::/Demo/AcctExample/TOS/TOSCfg.HC"$. |
|
|
|
#define MAKE_LITE 0 |
|
#define MAKE_DBG 0 |
|
#define MAKE_STAFF 0 |
|
|
|
public U8 TOSGetDrv() |
|
{//Pmt for drv let. |
|
I64 res; |
|
"Drive (%s):",TOS_HDS; |
|
res=Let2Let(GetChar); |
|
'\n'; |
|
return res; |
|
} |
|
|
|
public U0 TOSBootHDIns(U8 drv_let=0) |
|
{//Make Compiler and Kernel. Reinstall Kernel. |
|
drv_let=Let2Let(drv_let); |
|
In(TOS_CFG); |
|
BootHDIns(drv_let); |
|
if (StrOcc(TOS_MASTER_BOOT_DRVS,drv_let)) |
|
BootMHDIns(drv_let); |
|
} |
|
|
|
public U0 TOSCopyDrv(U8 src,U8 dst) |
|
{//Fmt dst and copy entire drv. |
|
U8 buf_s[STR_LEN],buf_d[STR_LEN]; |
|
src=Let2Let(src); |
|
dst=Let2Let(dst); |
|
|
|
if (dst=='D') |
|
Fmt(dst,,FALSE,FSt_FAT32); |
|
else |
|
Fmt(dst,,FALSE,FSt_REDSEA); |
|
|
|
StrPrint(buf_s,"%c:/",src); |
|
StrPrint(buf_d,"%c:/",dst); |
|
CopyTree(buf_s,buf_d); |
|
|
|
DocClear; |
|
Drv(dst); |
|
TOSBootHDIns(dst); |
|
} |
|
|
|
public U0 TOSPmtAndCopyDrv() |
|
{//Pmt for drv lets. Then, Fmt dst and copy entire drv. |
|
I64 src,dst; |
|
"$$RED$$\nCopy Src Drive:\n$$FG$$"; |
|
src=TOSGetDrv; |
|
"$$RED$$\nCopy Dst Drive:\n$$FG$$"; |
|
dst=TOSGetDrv; |
|
TOSCopyDrv(src,dst); |
|
} |
|
|
|
U0 DistroPrep() |
|
{ |
|
AOnceFlush; //Don't want in Registry |
|
OnceFlush; |
|
|
|
Del("/Home/Demo*"); |
|
DelTree("/Home/*Tmp.DD.Z"); |
|
|
|
DelTree("/Tmp"); |
|
DirMk("/Tmp"); |
|
DirMk("/Tmp/ScrnShots"); |
|
|
|
Touch("/PersonalMenu.DD.Z","+T"); |
|
Touch("/Home/PersonalMenu.DD.Z","+T"); |
|
|
|
DelTree("/Demo/AcctExample"); |
|
CopyTree("/Home","/Demo/AcctExample"); |
|
DelTree("/Demo/AcctExample/TAD"); |
|
DelTree("/Demo/AcctExample/Sup1"); |
|
DelTree("/Demo/AcctExample/Sup2"); |
|
DelTree("/Demo/AcctExample/Sup3"); |
|
Del("/Demo/AcctExample/Test*"); |
|
if (FileFind("~/Sup1/Sup1Utils/SortHeaders.HC.Z")) |
|
ExeFile("~/Sup1/Sup1Utils/SortHeaders.HC.Z"); |
|
|
|
// CursorRem("/*"); |
|
DelTree("/Demo/*.BI*"); |
|
// S2T("/*","+r+S"); |
|
// DocOpt("/*","+R"); |
|
Move(ACD_DEF_FILENAME,ACD_DEF_FILENAME_Z); |
|
} |
|
|
|
U0 DbgDistroFilePrep() |
|
{ |
|
CBlkDev *bd; |
|
if (!Let2Drv('A',FALSE)) { |
|
In(CFG_DBG_DISTRO "\n"); |
|
Mount; |
|
} |
|
bd=Let2BlkDev('A'); |
|
Fmt('A',,FALSE,FSt_REDSEA); |
|
|
|
DirMk("A:/Compiler"); |
|
Copy("C:/Compiler/Compiler.BIN.Z", "A:/Compiler"); |
|
Copy("C:/Compiler/OpCodes.DD.Z", "A:/Compiler"); |
|
Copy("C:/Compiler/CompilerA.HH.Z", "A:/Compiler"); |
|
Copy("C:/Compiler/CompilerB.HH.Z", "A:/Compiler"); |
|
|
|
DirMk("A:/Kernel"); |
|
Copy("C:/Kernel/*.HH*", "A:/Kernel"); |
|
CopyTree("C:/Kernel/BlkDev", "A:/Kernel/BlkDev"); |
|
|
|
Copy("C:/Home/Sup1/Sup1Distro/DbgStartOS.HC.Z","A:/StartOS.HC.Z"); |
|
|
|
DirMk("A:/Adam"); |
|
Copy("C:/Home/Sup1/Sup1Distro/DbgMakeAdam.HC.Z","A:/Adam/MakeAdam.HC.Z"); |
|
Copy("C:/Home/Sup1/Sup1Distro/DbgMount.HC.Z","A:/Adam"); |
|
Copy("C:/Adam/AExts.HC.Z", "A:/Adam"); |
|
Copy("C:/Adam/AMath.HC.Z", "A:/Adam"); |
|
Copy("C:/Adam/Training.HC.Z","A:/Adam"); |
|
Copy("C:/Adam/AMem.HC.Z", "A:/Adam"); |
|
Copy("C:/Adam/TaskRep.HC.Z", "A:/Adam"); |
|
|
|
FileWrite("C:" CFG_DBG_DISTRO_FILE, |
|
bd->RAM_dsk,(bd->max_blk+1)<<BLK_SIZE_BITS); |
|
} |
|
|
|
|
|
U0 StdDistroPrep() |
|
{ |
|
Drv('C'); |
|
DistroPrep; |
|
In(STD_DISTRO_DVD_CFG); |
|
BootDVDIns('C'); |
|
Fmt('B',,FALSE,FSt_REDSEA); |
|
DelTree(TOS_DISTRO_DIR); |
|
DirMk(TOS_DISTRO_DIR); |
|
CopyTree("C:/0000Boot",TOS_DISTRO_DIR "/0000Boot"); |
|
CopyTree("C:/Adam",TOS_DISTRO_DIR "/Adam"); |
|
CopyTree("C:/Apps",TOS_DISTRO_DIR "/Apps"); |
|
CopyTree("C:/Compiler",TOS_DISTRO_DIR "/Compiler"); |
|
CopyTree("C:/Demo",TOS_DISTRO_DIR "/Demo"); |
|
CopyTree("C:/Doc",TOS_DISTRO_DIR "/Doc"); |
|
CopyTree("C:/Downloads",TOS_DISTRO_DIR "/Downloads"); |
|
DirMk(TOS_DISTRO_DIR "/Home"); |
|
CopyTree("C:/Kernel",TOS_DISTRO_DIR "/Kernel"); |
|
CopyTree("C:/Misc",TOS_DISTRO_DIR "/Misc"); |
|
// CopyTree("C:/User",TOS_DISTRO_DIR "/User"); |
|
Copy("C:/HomeKeyPlugIns.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/HomeLocalize.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/HomeSys.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/HomeWrappers.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/MakeHome.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/Once.HC", TOS_DISTRO_DIR "/"); |
|
Copy("C:/PersonalMenu.DD", TOS_DISTRO_DIR "/"); |
|
Copy("C:/PersonalNotes.DD", TOS_DISTRO_DIR "/"); |
|
Copy("C:/StartOS.HC", TOS_DISTRO_DIR "/"); |
|
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/OldMBR.BIN.C"); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/BootMHD2.BIN.C"); |
|
} |
|
U0 MakeStdDistro() |
|
{ |
|
StdDistroPrep; |
|
RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); |
|
"Written %s.\n", TOS_ISO_NAME; |
|
DefinePrint("DD_TEMPLEOSCD_SIZE", |
|
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", |
|
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); |
|
Drv('C'); |
|
} |
|
|
|
U0 LiteDistroPrep() |
|
{ |
|
Drv('C'); |
|
DistroPrep; |
|
In(STD_DISTRO_DVD_CFG); |
|
BootDVDIns('C'); |
|
Fmt('B',,FALSE,FSt_REDSEA); |
|
DelTree(TOS_DISTRO_DIR); |
|
CopyTree("C:/",TOS_DISTRO_DIR "/"); |
|
DelTree(TOS_DISTRO_DIR "/Home"); |
|
DirMk(TOS_DISTRO_DIR "/Home"); |
|
DelTree(TOS_DISTRO_DIR "/Apps"); |
|
DelTree(TOS_DISTRO_DIR "/Demo"); |
|
Copy(TOS_DISTRO_DIR "/Demo/Games/Talons.HC.Z",TOS_DISTRO_DIR "/Home"); |
|
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/OldMBR.BIN.C"); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/BootMHD2.BIN.C"); |
|
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DATA.Z"); |
|
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DATA.Z"); |
|
Del(TOS_DISTRO_DIR "/Misc/Bible.TXT.Z"); |
|
} |
|
U0 MakeLiteDistro() |
|
{ |
|
LiteDistroPrep; |
|
RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); |
|
DefinePrint("DD_TEMPLEOSCD_SIZE", |
|
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", |
|
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); |
|
Drv('C'); |
|
} |
|
|
|
U0 DbgDistroPrep() |
|
{ |
|
Drv('C'); |
|
DistroPrep; |
|
DbgDistroFilePrep; |
|
In(TOS_DVD_DBG_CFG); |
|
BootDVDIns('C'); |
|
Fmt('B',,FALSE,FSt_REDSEA); |
|
DelTree(TOS_DISTRO_DIR); |
|
CopyTree("C:/",TOS_DISTRO_DIR "/"); |
|
DelTree(TOS_DISTRO_DIR "/Home"); |
|
DirMk(TOS_DISTRO_DIR "/Home"); |
|
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/OldMBR.BIN.C"); |
|
Del(TOS_DISTRO_DIR BOOT_DIR "/BootMHD2.BIN.C"); |
|
} |
|
U0 MakeDbgDistro() |
|
{ |
|
DbgDistroPrep; |
|
RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); |
|
DefinePrint("DD_TEMPLEOS_DBG_SIZE", |
|
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)", |
|
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); |
|
Drv('C'); |
|
} |
|
|
|
U0 StaffDistroPrep() |
|
{ |
|
Drv('C'); |
|
DistroPrep; |
|
In(TOS_DVD_CFG); |
|
BootDVDIns('C'); |
|
Fmt('B',,FALSE,FSt_REDSEA); |
|
DelTree(TOS_DISTRO_DIR); |
|
CopyTree("C:/",TOS_DISTRO_DIR "/"); |
|
DelTree(TOS_DISTRO_DIR "/Home/Sup1"); |
|
DelTree(TOS_DISTRO_DIR "/Home/Sup2"); |
|
DelTree(TOS_DISTRO_DIR "/Home/Sup3"); |
|
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); |
|
} |
|
U0 MakeStaffDistro() |
|
{ |
|
StaffDistroPrep; |
|
RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); |
|
DefinePrint("DD_TEMPLEOS_STAFF_SIZE", |
|
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)", |
|
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); |
|
Drv('C'); |
|
} |
|
|
|
I64 UpdateLineCnts() |
|
{ |
|
I64 res; |
|
|
|
DocClear; |
|
Drv('C'); |
|
DistroPrep; |
|
|
|
Cd("C:/"); |
|
DelTree("B:/TOS/TOS"); |
|
CopyTree("C:/Home","B:/TOS/TOS"); |
|
DelTree("C:/Home"); |
|
|
|
DocMax; |
|
DocClear; |
|
res=LineRep("C:/*","-r")+LineRep("C:/Adam/*")+ |
|
LineRep("C:/Compiler/*","-S+$$")+LineRep("C:/Kernel/*"); |
|
CopyTree("B:/TOS/TOS","C:/Home"); |
|
DelTree("B:/TOS/TOS"); |
|
|
|
DocTreeFWrite("C:/Adam/ADefine.HC.Z","LineRep", |
|
"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res); |
|
DefinePrint("DD_TEMPLEOS_LOC","%,d",res); |
|
|
|
"Total LOC:%12,d\n\n",res; |
|
return res; |
|
} |
|
|
|
U0 UpdateISODocDefines() |
|
{ |
|
try { |
|
DefinePrint("DD_TEMPLEOSCD_SIZE", |
|
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", |
|
0.1*(10*Size("D:/Downloads/TOS_Distro.ISO","+s")/1024/1024)); |
|
DefinePrint("DD_TEMPLEOSCD_K_SIZE", |
|
"%dKB",Size("D:/Downloads/TOS_Distro.ISO","+s")/1024); |
|
} catch |
|
Fs->catch_except=TRUE; |
|
} |
|
UpdateISODocDefines; |
|
|
|
|
|
I64 tos_progress; |
|
F64 tos_progress_t0; |
|
|
|
U0 TOSProgress(U8 *st) |
|
{ |
|
U8 buf[STR_LEN]; |
|
progress4=tos_progress; |
|
progress3_max=1; |
|
*progress4_desc=0; |
|
progress4_max=9+MAKE_LITE+MAKE_DBG+MAKE_STAFF; |
|
progress4_t0=tos_progress_t0; |
|
StrPrint(buf,"%d. %s",++progress4,st); |
|
"$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf; |
|
StrCpy(progress3_desc,buf); |
|
tos_progress=progress4; |
|
} |
|
|
|
public U0 DskChkAll() |
|
{//DskChk on C & D. |
|
U8 *ptr=TOS_HDS; |
|
while (*ptr) { |
|
"DskChk('%c')\n",*ptr; |
|
DskChk(*ptr++,TRUE); |
|
} |
|
} |
|
|
|
U0 TOSRegen2() |
|
{ |
|
// I64 slash_home=0; |
|
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ |
|
tos_progress=-1; |
|
tos_progress_t0=tS; |
|
RegExe("TempleOS/TOSRegen"); |
|
|
|
TOSProgress("DskChk All"); |
|
AutoComplete; |
|
WinBorder; |
|
WinMax; |
|
DskChkAll; |
|
|
|
TOSProgress("Update Line Cnts"); |
|
UpdateLineCnts; |
|
|
|
TOSProgress("Copy C to D"); |
|
TOSCopyDrv('C','D'); |
|
|
|
TOSProgress("Make Standard Distro ISO"); |
|
MakeStdDistro; |
|
DocClear; |
|
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Distro.ISO"); |
|
|
|
TOSProgress("Make Supplemental1 ISO"); |
|
RedSeaISO("D:/Downloads/TOS_Supplemental1","C:/Home/Sup1"); |
|
|
|
TOSProgress("Make Supplemental2 ISO"); |
|
RedSeaISO("D:/Downloads/TOS_Supplemental2","C:/Home/Sup2"); |
|
|
|
TOSProgress("Make Supplemental3 ISO"); |
|
RedSeaISO("D:/Downloads/TOS_Supplemental3","C:/Home/Sup3"); |
|
|
|
#if MAKE_LITE |
|
TOSProgress("Make Lite Distro ISO"); |
|
MakeLiteDistro; |
|
DocClear; |
|
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Lite.ISO"); |
|
#endif |
|
#if MAKE_DBG |
|
TOSProgress("Make Dbg Distro ISO"); |
|
MakeDbgDistro; |
|
DocClear; |
|
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Dbg.ISO"); |
|
#endif |
|
#if MAKE_STAFF |
|
TOSProgress("Make Staff Distro ISO"); |
|
MakeStaffDistro; |
|
DocClear; |
|
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Staff.ISO"); |
|
#endif |
|
|
|
UpdateISODocDefines; |
|
Cd("C:/"); |
|
DocClear; |
|
|
|
TOSProgress("Check for Long Lines"); |
|
if (LongLines) |
|
throw; |
|
|
|
DocClear; |
|
TOSProgress("Check for Broken DolDoc Links"); |
|
if (LinkChk) |
|
throw; |
|
|
|
// TOSProgress("Find /Home"); |
|
// slash_home=F2("/Home","-i+la"); |
|
|
|
TOSProgress("DskChk All"); |
|
Drv('C'); |
|
DskChkAll; |
|
|
|
TOSProgress("Done"); |
|
SettingsPop; |
|
// "F2(\"/Home\") Cnt\t:%d\n",slash_home; |
|
"Elapsed Time\t:%5.3fs\n",tS-progress4_t0; |
|
ProgressBarsRst("TempleOS/TOSRegen"); |
|
} |
|
|
|
public U0 TOSRegen() |
|
{//Generate distro ISO's |
|
TOSBootHDIns('C'); |
|
Once("TOSRegen2;"); |
|
BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot to load $LK,"TOS_CFG",A="PF:::/Demo/AcctExample/TOS/TOSCfg.HC,TOS_CFG"$. |
|
}
|
|
|