TempleOSCDV5.00.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:48:09 +02:00
1 parent 122df6338e
commit f6eacf7744
374 files changed
+11078 -11204

No files matched your search

-55
View File
@@ -1,55 +0,0 @@
//Place this file in /Home and change
//anything you want.
//This file is executed by the
//first terminal window upon start-up.
//See $LK,"DoOnce",A="FF:/Home/HomeSys.HC,DoOnce"$ and $LK,"Home Files",A="FF:::/Doc/GuideLines.DD,/Home Files"$.
// Type("::/Doc/Customize.DD");
U0 DoOnce()
{
switch (sys_boot_src.u16[0]) {
case BOOT_SRC_DVD:
"\nIf you answer 'No' you can play with\n"
"the live CD without installing.\n\n"
"Install onto hard drive ";
if (YorN) {
DocBottom;
if (RunFile("::/Misc/OSInstall",,FALSE)) {
*sys_registry_doc->filename.name='C';
"\n\n1) TAD\n2) DLC\n\n";
switch (GetI64("Staff Member Number:")) {
case 1:
RegWriteBranch("TempleOS/Staff",
"#define PERSONAL_INITIALS \"TAD\"\n"
"#define MACHINE_CFG %d\n",
GetI64("Machine Cfg Number:")
);
break;
case 2:
RegWriteBranch("TempleOS/Staff",
"#define PERSONAL_INITIALS \"DLC\"\n"
"#define MACHINE_CFG 0\n");
break;
}
Del("C:/Home/DoDistro.HC.Z");
Del("D:/Home/DoDistro.HC.Z");
"\n\n\nAfter Reboot be sure to run MakeDistrosAndBackUp.\n\n";
PressAKey;
Reboot; //Too dangerous for amateurs until reboot.
}
}
break;
}
if (FileFind("D:/Tmp/Logs/access.log")) {
In("\n\n%C",CH_ESC);
RunFile("::/Demo/WebLogDemo/WebLogRep",,
"D:/Tmp/Logs/*.log","D:/Home/WebLogRep.DD");
Del("D:/Tmp/Logs/*.log");
}
if (tos_timestamp)
Blog(TRUE);
}
DoOnce;
+9 -16
View File
@@ -63,7 +63,7 @@ Bool MyPutKey(I64 ch,I64 sc)
//You can customize keys. This routine
//is called before the main editor
//key handler $LK,"DocPutKey",A="MN:DocPutKey"$().
//key hndlr $LK,"DocPutKey",A="MN:DocPutKey"$().
//You can intercept any key.
//Return TRUE if you completely
@@ -146,17 +146,10 @@ Bool MyPutKey(I64 ch,I64 sc)
}
return TRUE;
case SC_F7:
if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /NISTGodMisc2");
else
NISTGodMisc2;
} else {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /God Misc");
else
GodMisc;
}
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /God Misc");
else
GodMisc;
return TRUE;
case SC_F8:
if (sc&SCF_SHIFT) {
@@ -298,15 +291,15 @@ Bool MyPutKey(I64 ch,I64 sc)
return TRUE;
case 'p':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /JukeBox(Home/Sup1)");
KeyDescSet("Cmd /JukeBox(Home/Sup1Hymns)");
else
JukeBox("~/Sup1/Sup1Psalmody");
JukeBox("~/Sup1/Sup1Hymns");
return TRUE;
case 'P':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /JukeBox(Examples)");
KeyDescSet("Cmd /JukeBox(Home/Sup1Songs)");
else
JukeBox("::/Apps/Psalmody/Examples");
JukeBox("~/Sup1/Sup1Songs");
return TRUE;
}
}
+6 -6
View File
@@ -11,11 +11,11 @@ local_time_offset=-8*60*60*CDATE_FREQ; //Pacific
// Remember you can set the time in the BIOS.
//$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale
mouse.scale.x=0.5;
mouse.scale.y=0.5;
mouse.scale.z=5.0; //wheel
ms_hard.scale.x=0.5;
ms_hard.scale.y=0.5;
ms_hard.scale.z=5.0; //wheel
//don't change these
mouse.prescale.x=mouse.pos.x/mouse.scale.x;
mouse.prescale.y=mouse.pos.y/mouse.scale.y;
mouse.prescale.z=mouse.pos.z/mouse.scale.z;
ms_hard.prescale.x=ms_hard.pos.x/ms_hard.scale.x;
ms_hard.prescale.y=ms_hard.pos.y/ms_hard.scale.y;
ms_hard.prescale.z=ms_hard.pos.z/ms_hard.scale.z;
+1 -1
View File
@@ -30,7 +30,7 @@ U0 StartUpTasks()
WinToTop(user1);
WinTileVert;
"Boot Time:%7.3fs\n",tS;
XTalk(user1,"Cd;#include \"DoOnce\";\n");
XTalk(user1,"Cd;#include \"Once\";\n");
Silent;
ACInit("/*;!*/Bible.TXT*;!*.TXT"); //No Bible, no uncompressed DD.
Silent(OFF);
+1 -1
View File
@@ -1,7 +1,7 @@
#help_index "Cmd Line (Typically)"
#define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"\
"!*/Sup1/Sup1Texts/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\
"!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\
"!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*"
public I64 F(U8 *needle_str,U8 *fu_flags=NULL)
+39
View File
@@ -0,0 +1,39 @@
//Place this file in /Home and change
//anything you want.
//This file is executed by the
//first terminal window upon start-up.
//See $LK,"Once",A="FF:/Home/HomeSys.HC,Once"$ and $LK,"Home Files",A="FF:::/Doc/GuideLines.DD,/Home Files"$.
// Type("::/Doc/Customize.DD");
U0 Tmp()
{
OnceExe;
switch (sys_boot_src.u16[0]) {
case BOOT_SRC_DVD:
"\nIf you answer 'No' you can play with\n"
"the live CD without installing.\n\n"
"Install onto hard drive ";
if (YorN) {
DocBottom;
if (RunFile("::/Misc/OSInstall",,FALSE)) {
Del("C:/Home/DoDistro.HC.Z");
Del("D:/Home/DoDistro.HC.Z");
OnceDrv('C',"\"\n\nRun TOSStaffIns;\n\n\n\";");
OnceDrv('D',"\"\n\nRun TOSStaffIns;\n\n\n\";");
if (PressAKey!=CH_SHIFT_ESC)
Reboot; //Too dangerous for amateurs until reboot.
}
}
break;
}
if (FileFind("D:/Tmp/Logs/access.log")) {
In("\n\n%C",CH_ESC);
RunFile("::/Demo/WebLogDemo/WebLogRep",,
"D:/Tmp/Logs/*.log","D:/Home/WebLogRep.DD");
Del("D:/Tmp/Logs/*.log");
}
}
Tmp;
+352 -331
View File
@@ -1,19 +1,20 @@
$MA,"Cd ",LM="Cd;Dir;\n"$$MA,"DrvC ",LM="Drv('C');\n"$$MA,"DrvD ",LM="Drv('D');\n"$$MA,"/ ",LM="Cd(\"/\");Dir;\n"$$MA,"Home ",LM="Cd(\"/Home\");Dir;\n"$$MA,"ChgDskT ",LM="ChgDsk('T');\n"$$MA,"MergeD ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"D:/*;!*/LineRep*\",\"+r+d\");\n"$$MA,"MergeT ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"T:/*;!*/LineRep*\",\"+r+d\");\n"$
$MA,"MakeC ",LM="TOSBootHDIns('C');\n"$$MA+PU,"BootC ",LM="BootRAM(\"C:/Kernel.BIN.C\");"$$MA,"MakeBack",LM="MakeDistrosAndBackUp;\n"$$MA,"PreBack ",LM="PreBackUp;\n"$$MA,"MakeD ",LM="TOSBootHDIns('D');\n"$$MA+PU,"BootD ",LM="BootRAM(\"D:/Kernel.BIN.C\");"$$MA,"CopyDrv ",LM="TOSPromptAndCopyDrv;\n"$$MA,"MakeWeb ",LM="MakeWebSitePartial;\n"$
$MA,"Kernel ",LM="Cd(\"/Kernel\");Dir;\n"$$MA,"Compiler",LM="Cd(\"/Compiler\");Dir;\n"$$MA,"BlkDev ",LM="Cd(\"/Kernel/BlkDev\");Dir;\n"$$MA,"Mem ",LM="Cd(\"/Kernel/Mem\");Dir;\n"$$MA,"Serial ",LM="Cd(\"/Kernel/SerialDev\");Dir;\n"$$MA,"Bin ",LM="Cd(\"/Home/Sup1/Sup1Bin\");Dir;\n"$$MA,"HDAudio ",LM="Cd(\"/Home/Sup1/Sup1HDAudio\");Dir;\n"$$MA,"Examples",LM="Cd(\"/Home/Sup1/Sup1HDAudio/Examples\");Dir;\n"$
$MA,"Cd ",LM="Cd;Dir;\n"$$MA,"DrvC ",LM="Drv('C');\n"$$MA,"DrvD ",LM="Drv('D');\n"$$MA,"/ ",LM="Cd(\"/\");Dir;\n"$$MA,"Home ",LM="Cd(\"/Home\");Dir;\n"$$MA,"ChgDskT ",LM="ChgDsk('T');\n"$$MA,"MergeD ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"D:/*;!*/LineRep*\",\"+r+d\");\n"$$MA,"MergeT ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"T:/*;!*/LineRep*\",\"+r+d\");\n"$$MA,"D:/Wb ",LM="Cd(\"D:/Wb\");Dir;\n"$
$MA,"MakeC ",LM="TOSBootHDIns('C');\n"$$MA+PU,"BootC ",LM="BootRAM(\"C:/Kernel.BIN.C\");"$$MA,"Regen ",LM="TOSRegen;\n"$$MA,"PreBack ",LM="PreBackUp;\n"$$MA,"MakeD ",LM="TOSBootHDIns('D');\n"$$MA+PU,"BootD ",LM="BootRAM(\"D:/Kernel.BIN.C\");"$$MA,"CopyDrv ",LM="TOSPromptAndCopyDrv;\n"$$MA,"MakeWeb ",LM="MakeWebSitePartial;\n"$
$MA,"Kernel ",LM="Cd(\"/Kernel\");Dir;\n"$$MA,"Compiler",LM="Cd(\"/Compiler\");Dir;\n"$$MA,"BlkDev ",LM="Cd(\"/Kernel/BlkDev\");Dir;\n"$$MA,"Mem ",LM="Cd(\"/Kernel/Mem\");Dir;\n"$$MA,"Serial ",LM="Cd(\"/Kernel/SerialDev\");Dir;\n"$$MA,"Bin ",LM="Cd(\"/Home/Sup1/Sup1Bin\");Dir;\n"$$MA,"HDAudio ",LM="Cd(\"/Home/Sup1/Sup1HDAudio\");Dir;\n"$$MA,"Examples",LM="Cd(\"/Home/Sup1/Sup1HDAudio/Examples\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$
$MA,"Adam ",LM="Cd(\"/Adam\");Dir;\n"$$MA,"AutoComp",LM="Cd(\"/Adam/AutoComplete\");Dir;\n"$$MA,"Ctrls ",LM="Cd(\"/Adam/Ctrls\");Dir;\n"$$MA,"ABlkDev ",LM="Cd(\"/Adam/ABlkDev\");Dir;\n"$$MA,"DolDoc ",LM="Cd(\"/Adam/DolDoc\");Dir;\n"$$MA,"Gr ",LM="Cd(\"/Adam/Gr\");Dir;\n"$$MA,"God ",LM="Cd(\"/Adam/God\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Adam/Snd\");Dir;\n"$$MA,"Boot ",LM="Cd(\"/Adam/Opt/Boot\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Adam/Opt/Utils\");Dir;\n"$
$LK+X,"ChangeLg",A="FI:::/Doc/ChangeLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="MakeWebSitePartial;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"AfterEgp",LM="AfterEgyptInAction;\n"$$MA,"TOSTheme",LM="TempleOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$
$MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Home/Sup1/Sup1Psalmody\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$
$MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"AfterEgp",LM="Cd(\"/Apps/AfterEgypt\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$
$MA,"TimeOut ",LM="Cd(\"/Apps/TimeOut\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/ToTheFront\");Dir;\n"$$MA,"Vocab ",LM="Cd(\"/Apps/Vocabulary\");Dir;\n"$$MA,"XCaliber",LM="Cd(\"/Apps/X-Caliber\");Dir;\n"$
$LK+X,"ChangeLg",A="FI:::/Doc/ChangeLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="MakeWebSitePartial;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"TOSTheme",LM="TempleOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$
$MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"DLC ",LM="Cd(\"/Home/Web/DLC\");Dir;\n"$$MA,"AppStore",LM="Cd(\"/Home/Web/AppStore\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$
$MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$
$MA,"Titan ",LM="Cd(\"/Apps/Titanium\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/ToTheFront\");Dir;\n"$$MA,"Vocab ",LM="Cd(\"/Apps/Vocabulary\");Dir;\n"$$MA,"XCaliber",LM="Cd(\"/Apps/X-Caliber\");Dir;\n"$$MA,"Books1 ",LM="Cd(\"/Home/Books1\");Dir;\n"$$MA,"Books2 ",LM="Cd(\"/Home/Books2\");Dir;\n"$$MA,"Hymns ",LM="Cd(\"/Home/Sup1/Sup1Hymns\");Dir;\n"$$MA,"Songs ",LM="Cd(\"/Home/Sup1/Sup1Songs\");Dir;\n"$
$MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"InFile ",LM="Cd(\"/Demo/InFile\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$
$MA,"RevFile ",LM="Cd(\"/Demo/RevFileDemo\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Demo/Snd\");Dir;\n"$$MA,"SortFile",LM="Cd(\"/Demo/SortFileDemo\");Dir;\n"$$MA,"Template",LM="Cd(\"/Demo/Templates\");Dir;\n"$$MA,"HtmlTXT ",LM="Cd(\"/Demo/ToHtmlToTXTDemo\");Dir;\n"$$MA,"WebLog ",LM="Cd(\"/Demo/WebLogDemo\");Dir;\n"$$MA,"Stadium ",LM="Cd(\"/Demo/Games/Stadium\");Dir;\n"$
$MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Tmp ",LM="Cd(\"/Tmp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Tmp/ScrnShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Tmp/*.SND\");DelTree(\"D:/Tmp/ScrnShots\");MkDir(\"D:/Tmp/ScrnShots\");Del(\"C:/Tmp/*.SND\");DelTree(\"C:/Tmp/ScrnShots\");MkDir(\"C:/Tmp/ScrnShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$
$MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Yiddish ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Yiddish.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Texts ",LM="Cd(\"/Home/Sup1/Sup1Texts\");Dir;\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$
$MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Yiddish ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Yiddish.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$
$MA,"MakeStd ",LM="MakeStdDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSCD.ISO\");\n"$$MA,"MakeStRS",LM="MakeStdRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSCDRS.ISO\");\n"$$MA,"MakeUlt ",LM="MakeUltraDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSUltra.ISO\");\n"$$MA,"MakeUtRS",LM="MakeUltraRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSUltraRS.ISO\");\n"$$MA,"MakeStaf",LM="MakeStaffDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSStaff.ISO\");\n"$$MA,"MakeDbg ",LM="MakeDbgDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSDbg.ISO\");\n"$
$MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnStRS",LM="MakeStdRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnUlt ",LM="MakeUltraDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnUtRS",LM="MakeUltraRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnStaf",LM="MakeStaffDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnDbg ",LM="MakeDbgDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$
$FG,5$Fun Games$FG$
@@ -21,8 +22,8 @@ $MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnSt
$SP+PU," Egypt",LM="#include \"::/Apps/AfterEgypt/Run\"",BI=1$ $SP+PU,"Frankenstein",LM="#include \"::/Demo/Games/CastleFrankenstein\"",BI=2$ $SP+PU,"ZoneOut",LM="#include \"::/Demo/Games/ZoneOut\"",BI=3$
$SP+PU,"Titanium",LM="#include \"::/Apps/Titanium/Run\"",BI=1$ $SP+PU,"Diamond",LM="#include \"::/Demo/Games/BlackDiamond\"",BI=2$ $SP+PU," Bat",LM="#include \"::/Demo/Games/FlapBat\"",BI=3$ $SP+PU,"Varoom",LM="#include \"::/Demo/Games/Varoom\"",BI=4$
@@ -30,24 +31,24 @@ $SP+PU," Egypt",LM="#include \"::/Apps/AfterEgypt/Run\"",BI=1$ $SP+PU,"Frankenst
$SP+PU,"Varoom",LM="#include \"::/Demo/Games/Varoom\"",BI=4$ $SP+PU,"Diamond",LM="#include \"::/Demo/Games/BlackDiamond\"",BI=5$ $SP+PU,"Lines",LM="#include \"::/Demo/Games/BattleLines\"",BI=6$ $SP+PU,"TimeOut",LM="#include \"::/Apps/TimeOut/Run\"",BI=7$ $SP+PU," Bat",LM="#include \"::/Demo/Games/FlapBat\"",BI=8$
$SP+PU,"FlatTops",LM="#include \"::/Demo/Games/FlatTops\"",BI=5$ $SP+PU," Golf ",LM="#include \"::/Demo/Games/BomberGolf\"",BI=6$ $SP+PU,"KeepAway",LM="#include \"::/Apps/KeepAway/Run\"",BI=7$ $SP+PU,"RawHide",LM="#include \"::/Demo/Games/RawHide\"\n",BI=8$
$SP+PU,"FlatTops",LM="#include \"::/Demo/Games/FlatTops\"",BI=9$ $SP+PU," Golf ",LM="#include \"::/Demo/Games/BomberGolf\"",BI=10$ $SP+PU,"Strut",LM="#include \"::/Apps/Strut/Run\"",BI=11$ $SP+PU,"TheDead",LM="#include \"::/Demo/Games/TheDead\"",BI=12$ $SP+PU,"DunGen",LM="#include \"::/Demo/Games/DunGen\"",BI=13$
$SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=9$ $SP+PU,"Wenceslas",LM="#include \"::/Demo/Games/Wenceslas\"",BI=10$ $SP+PU,"Lines",LM="#include \"::/Demo/Games/BattleLines\"",BI=11$
$SP+PU," Talons",LM="#include \"::/Demo/Games/Talons\"",BI=14$ $SP+PU," Span ",LM="#include \"::/Apps/Span/Run\"",BI=15$ $SP+PU,"RawHide",LM="#include \"::/Demo/Games/RawHide\"\n",BI=16$ $SP+PU,"KeepAway",LM="#include \"::/Apps/KeepAway/Run\"",BI=17$
$FG,5$Unfun Games$FG$
@@ -56,8 +57,8 @@ $SP+PU," Talons",LM="#include \"::/Demo/Games/Talons\"",BI=14$ $SP+PU," Span ",
$SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=18$ $SP+PU,"ToTheFront",LM="#include \"::/Apps/ToTheFront/Run\"",BI=19$ $SP+PU,"Wenceslas",LM="#include \"::/Demo/Games/Wenceslas\"",BI=20$
$SP+PU," Talons",LM="#include \"::/Demo/Games/Talons\"",BI=12$ $SP+PU,"Frankenstein",LM="#include \"::/Demo/Games/CastleFrankenstein\"",BI=13$ $SP+PU,"ZoneOut",LM="#include \"::/Demo/Games/ZoneOut\"",BI=14$
@@ -66,346 +67,40 @@ $SP+PU,"X-Caliber",LM="#include \"::/Apps/X-Caliber/Run\"",BI=18$ $SP+PU,"ToTheF
$SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");",BI=21$ $SP+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\";",BI=22$ $SP+PU,"Logic",LM="#include \"::/Apps/Logic/Run\"",BI=23$ $SP+PU,"Models",LM="#include \"::/Apps/GrModels/Run\";View;",BI=24$ $SP+PU,"Vocab",LM="#include \"::/Apps/Vocabulary/Run\"",BI=25$
$SP+PU,"ToTheFront",LM="#include \"::/Apps/ToTheFront/Run\"",BI=15$ $SP+PU," Span ",LM="#include \"::/Apps/Span/Run\"",BI=16$ $SP+PU,"Checkers",LM="#include \"::/Demo/Games/TreeCheckers.HC.Z\"",BI=17$ $SP+PU,"Digits",LM="#include \"::/Demo/Games/Digits\"",BI=18$
$FG,5$Code Scraps$FG$
$SP+PU,"BigGuns",LM="#include \"::/Demo/Games/BigGuns\"",BI=26$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=27$ $SP+PU,"Digits",LM="#include \"::/Demo/Games/Digits\"",BI=28$ $SP+PU,"Checkers",LM="#include \"::/Demo/Games/TreeCheckers.HC.Z\"",BI=29$
$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Psalmody\");"$$MA,"Comics ",LM="Cd(\"/Home/Sup1/Sup1Comics\");Dir;\n"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$
yÓÿÿÿÜÿÿÿ<H÷ÿÿÿ'ûÿÿÿ÷ÿÿÿõÿÿÿüÿÿÿ õÿÿÿ'ûÿÿÿ '
èÿÿÿòÿÿÿèÿÿÿüÿÿÿèÿÿÿèÿÿÿáÿÿÿúÿÿÿáÿÿÿúÿÿÿ èÿÿÿáÿÿÿèÿÿÿüÿÿÿèÿÿÿòÿÿÿèÿÿÿüÿÿÿúÿÿÿõÿÿÿ÷ÿÿÿ  $$÷ÿÿÿ$õÿÿÿ$ èÿÿÿõÿÿÿèÿÿÿòÿÿÿüÿÿÿõÿÿÿüÿÿÿ üÿÿÿéÿÿÿ üÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿõÿÿÿÿÿÿÿòÿÿÿÿÿÿÿûÿÿÿãÿÿÿýÿÿÿåÿÿÿãÿÿÿÿÿÿÿãÿÿÿåÿÿÿúÿÿÿáÿÿÿþÿÿÿãÿÿÿõÿÿÿ$÷ÿÿÿ$÷ÿÿÿ' $$õÿÿÿ''
' '
 ␍    !!&''"#%$$#    ␍ ␍!


 $%*$*+'&('()&(( $++
0/.112-,7 765343! 3 45833!839;:7;766;;1␍ ¸ÿÿÿøÿÿÿCastle¾éÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿÿÿîÿÿÿõÿÿÿîÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿñÿÿÿäÿÿÿñÿÿÿÛÿÿÿñÿÿÿÛÿÿÿñÿÿÿôÿÿÿäÿÿÿñÿÿÿîÿÿÿñÿÿÿîÿÿÿñÿÿÿôÿÿÿñÿÿÿõÿÿÿ÷ÿÿÿõÿÿÿûÿÿÿõÿÿÿîÿÿÿõÿÿÿéÿÿÿõÿÿÿéÿÿÿõÿÿÿóÿÿÿõÿÿÿóÿÿÿéÿÿÿ óÿÿÿõÿÿÿÿÿÿÿ

ÿÿÿÿ*ÿÿÿÿ
*
**ÿÿÿÿ␍␍ 
  ␍␍␍  
 

 ␍␍  $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"V␍ëÿÿÿçÿÿÿ`Œúÿÿÿ úÿÿÿ úÿÿÿúÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ      ðÿÿÿúÿÿÿöÿÿÿúÿÿÿöÿÿÿúÿÿÿðÿÿÿúÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿ ÿÿÿÿ ÷ÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿóÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿöÿÿÿöÿÿÿðÿÿÿóÿÿÿóÿÿÿ ÷ÿÿÿ÷ÿÿÿóÿÿÿóÿÿÿúÿÿÿäÿÿÿ úÿÿÿäÿÿÿ úÿÿÿïÿÿÿúÿÿÿïÿÿÿ ùÿÿÿâÿÿÿ ùÿÿÿßÿÿÿùÿÿÿßÿÿÿùÿÿÿâÿÿÿùÿÿÿñÿÿÿ ùÿÿÿñÿÿÿ ÿÿÿÿÿÿÿÿäÿÿÿ äÿÿÿ ïÿÿÿïÿÿÿ âÿÿÿ ßÿÿÿßÿÿÿâÿÿÿñÿÿÿ ñÿÿÿ ðÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿäÿÿÿöÿÿÿúÿÿÿïÿÿÿðÿÿÿúÿÿÿïÿÿÿóÿÿÿùÿÿÿâÿÿÿóÿÿÿùÿÿÿßÿÿÿùÿÿÿßÿÿÿ÷ÿÿÿùÿÿÿâÿÿÿ÷ÿÿÿùÿÿÿñÿÿÿóÿÿÿùÿÿÿñÿÿÿóÿÿÿÿÿÿÿÿÿÿÿðÿÿÿäÿÿÿöÿÿÿäÿÿÿöÿÿÿïÿÿÿðÿÿÿïÿÿÿóÿÿÿâÿÿÿóÿÿÿßÿÿÿßÿÿÿ÷ÿÿÿâÿÿÿ÷ÿÿÿñÿÿÿóÿÿÿñÿÿÿóÿÿÿ ␍ ␍   ␍␍
    
$%&&'$%$$$'$%%&&'&#!"!# #     /-.-/,/*,,*++)(+*)+(+ + +(!.-.!" + + ,*)*<=>>?<1033211=<<01<?330<1=2=>2>233?>;9:9;8867754765GEFEGDGBDDBCCA@CBA4C@C474C7C4@9FEF9:8C7C8D5BAB56TUVVWTIHKKJIIUTTHITWKKHTIUJUVJVJKKWVSRQQPSPONOLMOMN_^]]\__\Z\[Z[XY[YZLX[[OLLO[[XLQ]^^RQPO[[\PMYZZNM P88P654@@A5LMYYXLC ÐÿÿÿøÿÿÿBlackÒÿÿÿÄÿÿÿ#4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôáÿÿÿÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÔÿÿÿøÿÿÿBattle¾Úÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿLine truncated

ÿÿÿÿ*ÿÿÿÿ
*
**ÿÿÿÿ␍␍ 
  ␍␍␍  
 

    $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"´ÿÿÿ²ÿÿÿMPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
ÔÿÿÿÌÿÿÿ4.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb
ÌÿÿÿÆÿÿÿ-7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ rØÿÿÿÚÿÿÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿ ÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ²ÒÿÿÿÞÿÿÿ'$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
Ùÿÿÿêÿÿÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿ
$SP+PU,"Strut",LM="#include \"::/Apps/Strut/Run\"",BI=19$ $SP+PU,"BigGuns",LM="#include \"::/Demo/Games/BigGuns\"",BI=20$ $SP+PU,"TheDead",LM="#include \"::/Demo/Games/TheDead\"",BI=21$ $SP+PU,"DunGen",LM="#include \"::/Demo/Games/DunGen\"",BI=22$ $SP+PU,"Models",LM="#include \"::/Apps/GrModels/Run\";View;",BI=23$
$FG,5$Nongames$FG$

ÿÿÿ


$SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");",BI=24$ $SP+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\";",BI=25$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=26$ $SP+PU,"Logic",LM="#include \"::/Apps/Logic/Run\"",BI=27$ $SP+PU,"Vocab",LM="#include \"::/Apps/Vocabulary/Run\"",BI=28$

ÿÿÿ




ÿÿÿ




ÿÿÿ



ÿÿÿÿ



ÿÿÿÿ



ÿÿÿÿ



ÿÿÿ





ÿÿÿ





ÿÿÿ




ÿÿÿ


ÿÿ
ÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÕÿÿÿäÿÿÿ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿÿÿ ÿÿ ÿÿ 

 
 
 
ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÛÿÿÿÀÿÿÿ<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"ÏÿÿÿÑÿÿÿ)+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÔÿÿÿÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
þÿÿÿ ûÿÿÿþÿÿÿüÿÿÿ ÿÿÿÿ ûÿÿÿ þÿÿÿ üÿÿÿÿÿÿÿÿÿÿÿ ûÿÿÿ úÿÿÿÿÿÿÿþÿÿÿÿÿÿÿùÿÿÿ øÿÿÿÿÿÿÿ
üÿÿÿ ûÿÿÿþÿÿÿùÿÿÿøÿÿÿÿÿÿÿùÿÿÿ øÿÿÿþÿÿÿöÿÿÿõÿÿÿþÿÿÿùÿÿÿøÿÿÿýÿÿÿñÿÿÿðÿÿÿþÿÿÿúÿÿÿùÿÿÿýÿÿÿòÿÿÿñÿÿÿ 

␍ ␍   ␍ 
 
  
 ␍␍    ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokêâÿÿÿÐÿÿÿ%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿ  ÿÿ  ÿÿ ÿ ÿ        ÿÿ   ÿÿ  ÿÿ  ÿÿ  ÿÿÿ  ÿÿÿÿ  ÿÿÿÿ ÿÿÿ  ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ åÿÿÿøÿÿÿFlap
„Õÿÿÿáÿÿÿ*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ     ÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿ    ÿÿÿ      ÿ  ÿÿ    ÿÿ  ÿ  ÿÿÿÿÿ  ÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÑÿÿÿøÿÿÿBomberÒÒÿÿÿÛÿÿÿ0$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ :ÚÿÿÿÝÿÿÿ%!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ’ ÁÿÿÿÑÿÿÿ>.    Line truncated
$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Hymns\");"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$
C ÐÿÿÿøÿÿÿBlackÒÿÿÿÄÿÿÿ#4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºÚÿÿÿèÿÿÿ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"
Ô˙˙˙Ě˙˙˙4.˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙rŘ˙˙˙Ú˙˙˙#˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙ ˙ ˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˛Ň˙˙˙Ţ˙˙˙'$˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙ ˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙ ˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated
ûÿÿÿöÿÿÿûÿÿÿöÿÿÿûÿÿÿìÿÿÿçÿÿÿöÿÿÿûÿÿÿöÿÿÿ
´˙˙˙˛˙˙˙MP˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
@@ -829,5 +524,331 @@ $MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"
ÿÿÿÿÿÿÿ   
ÿÿÿÿ     ÿÿ     ÿÿ        ÿ      ÿ                    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿg ¹ÿÿÿÉÿÿÿþÿÿÿþÿÿÿÀÿÿÿîÿÿÿÈÿÿÿÖÿÿÿìÿÿÿØÿÿÿÜÿÿÿæÿÿÿèÿÿÿôÿÿÿäÿÿÿìÿÿÿâÿÿÿÞÿÿÿÌÿÿÿÜÿÿÿäÿÿÿ€ÿÿÿ
ûÿÿÿöÿÿÿûÿÿÿöÿÿÿûÿÿÿìÿÿÿçÿÿÿöÿÿÿûÿÿÿöÿÿÿ»ÒÿÿÿÛÿÿÿ6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ØÿÿÿøÿÿÿAfter’ÆÿÿÿÅÿÿÿ?:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLine truncated
ÿÿÿÿ     ÿÿ     ÿÿ        ÿ      ÿ                    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ␍yÓÿÿÿÜÿÿÿ<H÷ÿÿÿ'ûÿÿÿ÷ÿÿÿõÿÿÿüÿÿÿ õÿÿÿ'ûÿÿÿ '
èÿÿÿòÿÿÿèÿÿÿüÿÿÿèÿÿÿèÿÿÿáÿÿÿúÿÿÿáÿÿÿúÿÿÿ èÿÿÿáÿÿÿèÿÿÿüÿÿÿèÿÿÿòÿÿÿèÿÿÿüÿÿÿúÿÿÿõÿÿÿ÷ÿÿÿ  $$÷ÿÿÿ$õÿÿÿ$ èÿÿÿõÿÿÿèÿÿÿòÿÿÿüÿÿÿõÿÿÿüÿÿÿ üÿÿÿéÿÿÿ üÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿõÿÿÿÿÿÿÿòÿÿÿÿÿÿÿûÿÿÿãÿÿÿýÿÿÿåÿÿÿãÿÿÿÿÿÿÿãÿÿÿåÿÿÿúÿÿÿáÿÿÿþÿÿÿãÿÿÿõÿÿÿ$÷ÿÿÿ$÷ÿÿÿ' $$õÿÿÿ''
' '
 ␍    !!&''"#%$$#    ␍ ␍!


 $%*$*+'&('()&(( $++
0/.112-,7 765343! 3 45833!839;:7;766;;1␍ ¸ÿÿÿøÿÿÿCastle¾éÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿÿÿîÿÿÿõÿÿÿîÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿñÿÿÿäÿÿÿñÿÿÿÛÿÿÿñÿÿÿÛÿÿÿñÿÿÿôÿÿÿäÿÿÿñÿÿÿîÿÿÿñÿÿÿîÿÿÿñÿÿÿôÿÿÿñÿÿÿõÿÿÿ÷ÿÿÿõÿÿÿûÿÿÿõÿÿÿîÿÿÿõÿÿÿéÿÿÿõÿÿÿéÿÿÿõÿÿÿóÿÿÿõÿÿÿóÿÿÿéÿÿÿ óÿÿÿõÿÿÿÿÿÿÿ

ÿÿÿÿ*ÿÿÿÿ
*
**ÿÿÿÿ␍␍ 
  ␍␍␍  
 

 ␍␍  $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"b
ÌÿÿÿÆÿÿÿ-7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Öéÿÿÿåÿÿÿp¨üÿÿÿíÿÿÿíÿÿÿüÿÿÿòÿÿÿòÿÿÿüÿÿÿíÿÿÿýÿÿÿíÿÿÿýÿÿÿüÿÿÿòÿÿÿýÿÿÿòÿÿÿýÿÿÿúÿÿÿòÿÿÿòÿÿÿúÿÿÿúÿÿÿòÿÿÿýÿÿÿòÿÿÿýÿÿÿúÿÿÿýÿÿÿýÿÿÿ÷ÿÿÿôÿÿÿùÿÿÿõÿÿÿöÿÿÿûÿÿÿýÿÿÿøÿÿÿüÿÿÿüÿÿÿ÷ÿÿÿòÿÿÿùÿÿÿóÿÿÿÿÿÿÿöÿÿÿùÿÿÿûÿÿÿøÿÿÿúÿÿÿúÿÿÿöÿÿÿüÿÿÿýÿÿÿøÿÿÿýÿÿÿüÿÿÿôÿÿÿöÿÿÿöÿÿÿõÿÿÿöÿÿÿùÿÿÿüÿÿÿøÿÿÿúÿÿÿûÿÿÿôÿÿÿýÿÿÿõÿÿÿöÿÿÿþÿÿÿôÿÿÿôÿÿÿÿÿÿÿöÿÿÿöÿÿÿõÿÿÿóÿÿÿòÿÿÿõÿÿÿñÿÿÿôÿÿÿýÿÿÿöÿÿÿöÿÿÿþÿÿÿõÿÿÿóÿÿÿÿÿÿÿòÿÿÿõÿÿÿñÿÿÿóÿÿÿóÿÿÿÿÿÿÿúÿÿÿúÿÿÿôÿÿÿþÿÿÿôÿÿÿýÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿ  úÿÿÿýÿÿÿûÿÿÿ þÿÿÿ úÿÿÿÿÿÿÿýÿÿÿþÿÿÿûÿÿÿ þÿÿÿ ûÿÿÿ þÿÿÿ ûÿÿÿ þÿÿÿ ûÿÿÿ þÿÿÿ ûÿÿÿ
þÿÿÿ ûÿÿÿþÿÿÿüÿÿÿ ÿÿÿÿ ûÿÿÿ þÿÿÿ üÿÿÿÿÿÿÿÿÿÿÿ ûÿÿÿ úÿÿÿÿÿÿÿþÿÿÿÿÿÿÿùÿÿÿ øÿÿÿÿÿÿÿ
üÿÿÿ ûÿÿÿþÿÿÿùÿÿÿøÿÿÿÿÿÿÿùÿÿÿ øÿÿÿþÿÿÿöÿÿÿõÿÿÿþÿÿÿùÿÿÿøÿÿÿýÿÿÿñÿÿÿðÿÿÿþÿÿÿúÿÿÿùÿÿÿýÿÿÿòÿÿÿñÿÿÿ 

␍ ␍   ␍ 
 
  
 ␍␍    ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok¾Úÿÿÿâÿÿÿ6R äÿÿÿ äÿÿÿ îÿÿÿ îÿÿÿ  ôÿÿÿÛÿÿÿ ôÿÿÿÛÿÿÿ äÿÿÿÛÿÿÿÛÿÿÿôÿÿÿäÿÿÿîÿÿÿîÿÿÿôÿÿÿ ÷ÿÿÿ ûÿÿÿ îÿÿÿ éÿÿÿ  óÿÿÿõÿÿÿäÿÿÿõÿÿÿäÿÿÿõÿÿÿîÿÿÿõÿÿÿîÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿôÿÿÿÛÿÿÿõÿÿÿñÿÿÿäÿÿÿñÿÿÿÛÿÿÿñÿÿÿÛÿÿÿñÿÿÿôÿÿÿäÿÿÿñÿÿÿîÿÿÿñÿÿÿîÿÿÿñÿÿÿôÿÿÿñÿÿÿõÿÿÿ÷ÿÿÿõÿÿÿûÿÿÿõÿÿÿîÿÿÿõÿÿÿéÿÿÿõÿÿÿéÿÿÿõÿÿÿóÿÿÿõÿÿÿóÿÿÿéÿÿÿ óÿÿÿõÿÿÿÿÿÿÿ

ÿÿÿÿ*ÿÿÿÿ
*
**ÿÿÿÿ␍␍ 
  ␍␍␍  
 

    $"$#"!  !"!#"$#! !    "!"%++&%%'&&(''(()),),**,*+-$$-$'()')&3/..232.11523400/3451104-"ŇŇ˙˙˙Ű˙˙˙0$˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Ć˙˙˙Ö˙˙˙4$ Đ˙˙˙ř˙˙˙TreeúŐ˙˙˙ä˙˙˙%˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙ ˙˙˙˙˙ ˙˙˙˙ Line truncated

 
 
 
˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ôá˙˙˙Ö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Ô˙˙˙ř˙˙˙BattleŇÂ˙˙˙Ĺ˙˙˙@;˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated
    
$%&&'$%$$$'$%%&&'&#!"!# #     /-.-/,/*,,*++)(+*)+(+ + +(!.-.!" + + ,*)*<=>>?<1033211=<<01<?330<1=2=>2>233?>;9:9;8867754765GEFEGDGBDDBCCA@CBA4C@C474C7C4@9FEF9:8C7C8D5BAB56TUVVWTIHKKJIIUTTHITWKKHTIUJUVJVJKKWVSRQQPSPONOLMOMN_^]]\__\Z\[Z[XY[YZLX[[OLLO[[XLQ]^^RQPO[[\PMYZZNM P88P654@@A5LMYYXL"ÏÿÿÿÑÿÿÿ)+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Ùÿÿÿêÿÿÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿ

ÿÿÿ



ÿÿÿ




ÿÿÿ




ÿÿÿ



ÿÿÿÿ



ÿÿÿÿ



ÿÿÿÿ



ÿÿÿ





ÿÿÿ





ÿÿÿ




ÿÿÿ


ÿÿ
ÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+34 -17
View File
@@ -1,20 +1,33 @@
$WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* $LK,"::/Apps/X-Caliber/X-Caliber.HC"$
* Add asteroid harbor defense.
* Afterburner thruster.
* $LK,"::/Apps/Titanium/Titanium.HC"$
* Lead-in at start of game with no enemy.
* Have highway of death.
* Fix straight shooting.
* Helicopters.
* Anti-Aircraft.
* Make registry files more robust.
* $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented.
* $LK,"::/Demo/RandDemo.HC"$ is kinda crappy.
* Cursor in $LK,"~/TOSToHtml.HC"$.
* Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$.
* Naming standard with regard to "MAX_".
* Add AVL or red/black binary tree library support. We have fixed-size stack. Auto-balancing binary tree is very needed. I've done everything myself. I don't want to ruin a perfect record. I'm in no hurry.
* $LK,"SpriteEd",A="FI:::/Adam/Gr/SpriteEd.HC"$ shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated.
* Get rid of $LK,"JobQue",A="MN:JobQue"$() and use just $LK,"Spawn",A="MN:Spawn"$()? Not sure about this, probably.
* Add missiles to $LK,"::/Apps/TimeOut/TimeOut.HC"$.
* Add asteroid harbor defense to $LK,"::/Apps/X-Caliber/X-Caliber.HC"$.
* God said this is bad. $LK,"FL:::/Adam/DolDoc/DocFind.HC,41"$
* Backward <SHIFT-F3> is broken?
@@ -43,8 +56,6 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Compiler Optimization: heap_glbls with added offset. Might exist.
* AfterEgypt: $LK,"Numbers,13:33",A="BF:Numbers,13:33"$ scouts? $LK,"Numbers,21:8",A="BF:Numbers,21:8"$ snakes?
* Bug: Find-and-replace text on $$PT$$ line before it.
* 12/25/2015 Copy-Paste index.html glitch if source window 40 columns.
* 01/06/2016 Editor filter "str" applied to output from LineRep looks broken.
@@ -55,7 +66,7 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Good $LK,"spell checker",A="MN:ACMisspelledFind"$.
* Good Bible search.
* Can $LK,"MEM_EXTRA_HASH2_PAGES",A="MN:MEM_EXTRA_HASH2_PAGES"$ be just one?
* Can $LK,"MEM_EXTRA_HASH2_PAGS",A="MN:MEM_EXTRA_HASH2_PAGS"$ be just one?
* Bible ranges in $LK,"BibleVerse",A="MN:BibleVerse"$().
@@ -140,7 +151,7 @@ $FG,5$$TX+CX,"TODO: Too Hard, or Not Worth Doing."$$FG$
* Compiler: FunPtr local vars? I forgot if this was hard or not.
$ID,5$$HL,1$U0 Main()
{
U0 (*fp_old_draw_input_ptr)(CDC *dc,I64 x,I64 y)=gr.fp_draw_input_ptr;
U0 (*fp_old_draw_ms)(CDC *dc,I64 x,I64 y)=gr.fp_draw_ms;
}
$ID,-5$$HL,0$
* Compiler: Get rid of $LK,"0x20000",A="FF:::/Compiler/CMain.HC,0x20000"$ limit.
@@ -155,7 +166,7 @@ $FG,5$$TX+CX,"Bugs"$$FG$
* Bug introduced around 11/1/15. Changed $LK,"::/Kernel/Sched.HC"$ and now $LK,"WinToTop",A="MN:WinToTop"$ is called on Adam task at start-up, sometimes. Might be user's fault because of bad keys pressed during VMware power-on init. Might be fixed by $LK,"ACf_INIT_IN_PROGRESS",A="MN:ACf_INIT_IN_PROGRESS"$.
* 1/12/16 $LK,"ATARepEntry",A="MN:ATARepEntry"$ shows corrupted buttons. Weird. Perhaps, my imagination.
* 1/12/16 $LK,"ATARepEntry",A="MN:ATARepEntry"$ shows corrupted bttns. Weird. Perhaps, my imagination.
$FG,5$$TX+CX,"3rd Party Bugs"$$FG$
@@ -179,7 +190,7 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$
* 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just <CTRL-m> twice. Not a bug.
* 5/7/14:Something like $LK,"InSetIP",A="MN:InSetIP"$ caused hang, then reboot in TestSuite.
* 5/7/14:Something like $LK,"InSetMs",A="MN:InSetMs"$ caused hang, then reboot in TestSuite.
* 5/7/14:#63 Maybe, $LK,"::/Demo/Graphics/Pick3D.HC"$ crashed in TestSuite.
* $LK,"StrPrintJoin",A="MN:StrPrintJoin"$(,st); With st="\n\\"; (Forgot what this is talking about.)
@@ -194,6 +205,8 @@ CHashFun *fun_ptr;
$ID,-5$
* extern of fun with dft arg of str?
* ISO.C on FAT32 created by Windows or Linux are not contiguous.
* Might want to warn switch[] dup case numbers.
* Make $LK,"Clamp",A="MN:Clamp"$(), $LK,"Min",A="MN:Min"$(), $LK,"Max",A="MN:Max"$() into asm routines?
@@ -219,7 +232,7 @@ $ID,-5$
* Compiler: Type for either F64 or I64, like Print -- no conversion.
* Compiler: Arg type ... that did do conversion, if we have one that doesn't.
* $LK,"R",A="MN:R"$("chars_bmp_","set_");
* $LK,"R",A="MN:R"$("char_bmp_","set_");
* Clean-up code $LK,"FileNameAbs",A="MN:FileNameAbs"$(), does it need so many local var names? I guess no choice.
@@ -227,6 +240,8 @@ $ID,-5$
$FG,5$$TX+CX,"Committee Needed"$$FG$
* Make binary tree look-up using FUN_SEG symbol addresses, so we can eliminate fun_seg cache and wall-paper kludge? All HolyC functions and glbl vars would have left-right for address search.
* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
* $LK,"MP DepthBuf",A="FF:::/Adam/Gr/SpriteMesh.HC,dc->depth_buf=e->"$ is a kludge because of dc->depth_buf=NULL in various graphics routines.
* Improve editor undo, add redo.
@@ -251,7 +266,7 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
* Eliminate? $LK,"Mat4x4MulXYZ",A="MN:Mat4x4MulXYZ"$() change to 3x3?
* Eliminate? $LK,"ROP_XOR",A="MN:ROP_XOR"$?
* $LK,"WinMgrTask",A="MN:WinMgrTask"$ needs to do doc operations on $LK,"PostMsg",A="MN:PostMsg"$() msgs for mouse. Already works for $LK,"IPSet",A="MN:IPSet"$()?
* $LK,"WinMgrTask",A="MN:WinMgrTask"$ needs to do doc operations on $LK,"PostMsg",A="MN:PostMsg"$() msgs for ms_hard. Already works for $LK,"MsSet",A="MN:MsSet"$()?
* Should Msgs in PopUp queue get fwded to parent when task dies?
@@ -271,8 +286,6 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
* Compiler: &=, |= can overflow with Bts Btr on small data types?
* Compiler: $LK,"sys_var_init_flag",A="MN:sys_var_init_flag"$ for local vars?
* Implement $LK,"RS_ATTR_FIXED",A="MN:RS_ATTR_FIXED"$ fixed pos files?
* SIMD in $LK,"Mat4x4MulXYZ",A="MN:Mat4x4MulXYZ"$?
@@ -359,7 +372,7 @@ $FG,5$$TX+CX,"Test"$$FG$
* $LK,"FileMgr",A="MN:FileMgr"$() help link scrolls out of window.
* $LK,"MouseDriverInstall",A="MN:MouseDriverInstall"$() throws exceptions? Doesn't work? Why mouse $LK,"0x9FC30",A="FF:::/Kernel/SerialDev/Mouse.HC,9FC"$?
* $LK,"MsHardDrvrInstall",A="MN:MsHardDrvrInstall"$() throws exceptions? Doesn't work? Why mouse $LK,"0x9FC30",A="FF:::/Kernel/SerialDev/Mouse.HC,9FC"$?
* VirtualBox MP reboot?
@@ -380,7 +393,7 @@ $FG,5$$TX+CX,"Uncategorized"$$FG$
>Might want to do ZOOM in U8 graphics and convert scrn capture to U8
>Might want to rev bit order
* This $LK,"Fs->catch_except=TRUE",A="FF:::/Kernel/SrvCmd.HC,Fs->catch_except=TRUE"$ causes problems because it
* This $LK,"Fs->catch_except=TRUE",A="FF:::/Kernel/Job.HC,Fs->catch_except=TRUE"$ causes problems because it
catches divide and out-of-mem. Not sure what to do, yet.
* Release semaphores or break lock sema,usb_td
@@ -429,7 +442,7 @@ $FG,5$$TX+CX,"Misc Notes"$$FG$
Erik van der Karbargenbok: $LK,"TempleBot",A="PI:~/Sup1/Sup1Bin/TempleBot"$.
Intel CEO's name: Brian Krzanich
>$FG,2$lspci -v$FG$
Size:$TX,"17426KB",D="DD_TEMPLEOSCD_K_SIZE"$
Size:$TX,"17354KB",D="DD_TEMPLEOSCD_K_SIZE"$
$FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$
$TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Bookmarks"$
@@ -438,12 +451,15 @@ Frosting $HC,"<center><img src=\"http://www.templeos.org/images/Frosting.jpg\" w
Soap Carvings $HC,"<center><img src=\"http://www.templeos.org/images/SoapCarvings.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
CottonTail $HC,"<center><img src=\"http://www.templeos.org/images/CttnTail.jpg\" width=\"644\" height=\"1113\" alt=\"\"></center>"$
TempleOS Logo $HC,"<center><img src=\"http://www.templeos.org/images/Logo128x152.jpg\" width=\"640\" height=\"760\" alt=\"\"></center>"$
T-Shirts & Mug $HC,"<img src=\"http://www.templeos.org/Wb/Home/Web/Imgs/Gear2387x2849.jpg\" width=\"477\" height=\"569\" alt=\"\">"$
Pew Pew Pew $HC,"<center><img src=\"http://i.imgur.com/sMpJ0ch.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
Iceberg $HC,"<center><img src=\"https://upload.wikimedia.org/wikipedia/commons/3/38/Blue_ice_in_South_Greenland_-_Visit_Greenland.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
I made dis $HC,"<center><img src=\"http://i.imgur.com/cZKkxTX.jpg\" width=\"640\" height=\"800\" alt=\"\"></center>"$
NIST Beacon $HC,"<center><img src=\"http://www.nist.gov/itl/csd/ct/images/beacon_architecture_2013.jpg\" width=\"550\" height=\"278\" alt=\"\"></center>"$
Purple Frog $HC,"<center><img src=\"https://s-media-cache-ak0.pinimg.com/736x/fb/08/2a/fb082a53bd798f5957a474ff9095e6d4.jpg\" width=\"640\" height=\"420\" alt=\"\"></center>"$
Casino (Dog) $HC,"<center><img src=\"http://www.templeos.org/images/Dog1855x1056.jpg\" width=\"640\" height=\"364\" alt=\"\"></center>"$
Dianna's Cross $HC,"<iframe src=\"https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fthephysicsgirl%2Fposts%2F1133902680027666&width=500\" width=\"500\" height=\"671\" style=\"border:none;overflow:hidden\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\"></iframe>"$
$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$
$TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$
@@ -476,6 +492,7 @@ $TX,"TOSZ Compression",HTML="http://www.templeos.org/Wb/Linux/TOSZ.CPP"$
$TX,"ATA/ATAPI spec",HTML="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf"$
$TX,"Patton Prayer",HTML="http://www.pattonhq.com/prayer.html"$
$TX,"Streaming Terry A. Davis",HTML="https://www.youtube.com/channel/UCdX4uJUwSFwiY3XBvu-F_-Q/live"$
$TX,"Bleem",HTML="http://strangehorizons.com/fiction/the-secret-number/"$
$TX,"WWW.OSDEV.ORG",HTML="http://www.osdev.org"$
$TX,"NIST Beacon",HTML="http://www.nist.gov/itl/csd/ct/nist_beacon.cfm"$
+46 -30
View File
@@ -2,23 +2,34 @@ $TR-UL,"Adam"$
$ID,2$$TR,"SysMsgFlags"$
$ID,2$sys_msg_flags[0]=0xFF;
$ID,-2$$TR,"SysRegVer"$
$ID,2$registry_version=4.130;
$ID,-2$$ID,-2$$TR-C-UL,"TempleOS"$
$ID,2$$TR,"CircleTrace"$
$ID,2$F64 best_score=4.9425;
$ID,-2$$TR,"DiningStars"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"Staff"$
$ID,2$#define PERSONAL_INITIALS "TAD"
#define MACHINE_CFG 0
$ID,-2$$TR,"TOSVideos"$
$ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46;
$ID,-2$$TR,"EagleDive"$
$ID,2$registry_version=5.000;
$ID,-2$$TR,"InsReg"$
$ID,2$#help_index "Misc/Install Registration"
MemSet(&ins_reg,0,sizeof(CInsReg));
ins_reg.registered=1;
ins_reg.host_os=2;
ins_reg.host_vm=2;
#define INS_REG_PERSONAL_INITIALS "TAD"
StrCpy(ins_reg.initials,"TAD");
HashPublic("INS_REG_PERSONAL_INITIALS",HTT_DEFINE_STR);
#define INS_REG_MACHINE_NUM 0
ins_reg.machine_num=0;
HashPublic("INS_REG_MACHINE_NUM",HTT_DEFINE_STR);
"InsReg:%s:%d\n",INS_REG_PERSONAL_INITIALS,INS_REG_MACHINE_NUM;
#help_index ""
$ID,-2$$ID,-2$$TR-UL,"TempleOS"$
$ID,2$$TR,"EagleDive"$
$ID,2$F64 best_score=147.6932;
$ID,-2$$TR,"TOSGodOffer"$
$ID,2$I64 tos_gus_gwen=22;
$ID,-2$$TR,"TOSGodMisc"$
$ID,2$I64 tos_timestamp=0,tos_type=1;
$ID,-2$$TR,"TOSVideos"$
$ID,2$I64 tos_code_walk_thru=105;
$ID,-2$$TR,"DiningStars"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"BlackDiamond"$
$ID,2$I64 best_score=1;
$ID,-2$$TR,"DunGen"$
@@ -29,27 +40,32 @@ $ID,-2$$TR,"ZoneOut"$
$ID,2$F64 best_score=8.1373;
$ID,-2$$TR,"Varoom"$
$ID,2$F64 best_score=46.2643;
$ID,-2$$TR,"FlapBat"$
$ID,2$F64 best_score=16.3077;
$ID,-2$$TR,"RawHide"$
$ID,2$F64 best_score=96.1279;
$ID,-2$$TR,"KeepAway"$
$ID,2$I64 best_score0=68,best_score1=30;
$ID,-2$$TR,"Wenceslas"$
$ID,2$F64 best_score=43.9944;
$ID,-2$$TR,"Talons"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"FlapBat"$
$ID,2$F64 best_score=16.3077;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=20;
I64 msg_flags=1;
$ID,-2$$TR,"BomberGolf"$
$ID,2$I64 best_score=175;
$ID,-2$$TR,"TimeOut"$
$ID,2$I64 best_score=11291;
$ID,-2$$ID,-2$$TR,"DemoCompany"$
$ID,2$
$TR,"Game1"$
$ID,2$F64 best_score=180.03208;
$TR,"SimpleVal"$
$ID,2$1400;
$ID,-2$$ID,-2$
$ID,-2$$TR,"OSTestSuite"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=220.470;
$ID,-2$$TR,"Titanium"$
$ID,2$I64 best_score=16469;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=90;
I64 msg_flags=3;
$ID,-2$$TR,"Talons"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"CircleTrace"$
$ID,2$F64 best_score=4.9425;
$ID,-2$$TR,"TOSRegen"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=174.320;
$ID,-2$$ID,-2$$TR,"Once"$
$ID,2$$TR,"Adam"$
$ID,2$$ID,-2$$TR,"User"$
$ID,2$$ID,-2$$ID,-2$
+9 -11
View File
@@ -17,7 +17,7 @@ U8 *BlogLocalFile(CDate cdt=0)
CDateStruct ds;
if (!cdt) cdt=Now+local_time_offset;
Date2Struct(&ds,cdt);
StrPrint(file,"%s/" PERSONAL_INITIALS "%02d%02d%02d.DD.Z",
StrPrint(file,"%s/" INS_REG_PERSONAL_INITIALS "%02d%02d%02d.DD.Z",
BlogLocalDir(cdt),ds.year%100,ds.mon,ds.day_of_mon);
return file;
}
@@ -39,7 +39,7 @@ U8 *BlogWebFile(CDate cdt=0)
CDateStruct ds;
if (!cdt) cdt=Now+local_time_offset;
Date2Struct(&ds,cdt);
StrPrint(file,"%s/" PERSONAL_INITIALS "%02d%02d%02d.DD.Z",
StrPrint(file,"%s/" INS_REG_PERSONAL_INITIALS "%02d%02d%02d.DD.Z",
BlogWebDir(cdt),ds.year%100,ds.mon,ds.day_of_mon);
return file;
}
@@ -71,13 +71,13 @@ U0 BlogScrnShot()
{
Bool old_cursor=DocCursor;
CDC *dc1,*dc2;
U8 *old_fp_draw_input_ptr=gr.fp_draw_input_ptr;
gr.fp_draw_input_ptr=NULL;
U8 *old_fp_draw_ms=gr.fp_draw_ms;
gr.fp_draw_ms=NULL;
Refresh(2);
dc1=DCScrnCapture;
dc2=DCExt(dc1,0,FONT_HEIGHT,GR_WIDTH-1,GR_HEIGHT-1);
BlogDCImgWrite(dc2);
gr.fp_draw_input_ptr=old_fp_draw_input_ptr;
gr.fp_draw_ms=old_fp_draw_ms;
DCDel(dc1);
DCDel(dc2);
DocCursor(old_cursor);
@@ -92,23 +92,21 @@ public U0 MakeWebSitePartial()
MkDir("D:/Wb/Home/Web/TAD/BlogDir");
FreshenWebDir("/Home/Web");
FreshenWebDir("/Home/Web/" PERSONAL_INITIALS);
FreshenWebDir("/Home/Web/" INS_REG_PERSONAL_INITIALS);
FreshenWebDir(BlogLocalDir+2);
Drv('C');
}
public U0 Blog(Bool god_misc2=FALSE)
public U0 Blog(Bool ALT_F6=TRUE)
{
if (!FileFind(BlogLocalFile,,FUF_JUST_FILES))
Copy("~/Web/" PERSONAL_INITIALS "/DailyBlogHeader.DD.Z",
Copy("~/Web/" INS_REG_PERSONAL_INITIALS "/DailyBlogHeader.DD.Z",
BlogLocalFile);
AutoComplete;
WinBorder;
WinMax;
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL);
if (god_misc2)
Msg(MSG_KEY_DOWN_UP,0,SC_F7|SCF_SHIFT|SCF_ALT);
else {
if (ALT_F6) {
Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT);
Msg(MSG_KEY_DOWN_UP,'\n',0);
}
+15 -19
View File
@@ -1,21 +1,17 @@
#help_index "TOS"
RegSetDftEntry("TempleOS/Staff",
"#define PERSONAL_INITIALS \"TAD\"\n"
"#define MACHINE_CFG 0\n"
);
RegExeBranch("TempleOS/Staff");
#define PERSONAL_WEB "http:/" "/www.templeos.org/Wb"
#define BLOG_BASE "/Home/Web/" PERSONAL_INITIALS "/BlogDir"
#define DAILY_BASE "/Home/Web/" PERSONAL_INITIALS "/DailyBlog"
#define BLOG_BASE "/Home/Web/"\
INS_REG_PERSONAL_INITIALS "/BlogDir"
#define DAILY_BASE "/Home/Web/"\
INS_REG_PERSONAL_INITIALS "/DailyBlog"
#define BLOG_LOCAL_BASE "::" BLOG_BASE
#define BLOG_WEB_BASE PERSONAL_WEB BLOG_BASE
#define SLOP BLK_SIZE
U0 TOSBootRescueDrv1()
{
CBinFile *bfh=sys_boot_base-sizeof(CBinFile);
CBinFile *bfh=mem_boot_base-sizeof(CBinFile);
bfh(I64)+=bfh->file_size-1;
DefinePrint("TOS_BOOT_RESCUE_DRV","0x%X",
CeilI64(SYS_KERNEL_END+SLOP,BLK_SIZE));
@@ -34,19 +30,19 @@ U0 TOSBootRescueDrv2()
U0 TOSInit()
{
switch (MACHINE_CFG) {
switch (INS_REG_MACHINE_NUM) {
case 1: //TAD Native Machine
DefinePrint("CFG_RAM_DRVS",
"\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\"");
DefinePrint("CFG_HARD_DRVS","\"cs0xFE00\n0xFE10\n0\"");
DefinePrint("CFG_DVD_DRVS","\"ts0x1F0\n1\"");
"\"B\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\"");
DefinePrint("CFG_HARD_DRVS","\"C\ns0xFE00\n0xFE10\n0\"");
DefinePrint("CFG_DVD_DRVS","\"Ts0x1F0\n1\"");
DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
DefinePrint("TOS_HDS","\"CD\"");
DefinePrint("TOS_MASTER_BOOT_DRVS","\"C\"");
break;
default:
DefinePrint("CFG_RAM_DRVS",
"\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\"");
"\"B\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\"");
DefinePrint("CFG_HARD_DRVS","\"\"");
DefinePrint("CFG_DVD_DRVS","\"\"");
DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
@@ -58,16 +54,16 @@ U0 TOSInit()
#define TOS_ISO_NAME "B:/TempleOSCD.ISO"
#define TOS_ISO_C_NAME "B:/TempleOSCD.ISO.C"
#define TOS_DISTRO_DIR "B:/Distro"
#define CFG_OPTS "AutoMountIDE\nCT\n"
#define CFG_DBG_OPTS "AutoMountIDE\nCT"\
#define CFG_OPTS "StaffMode\nAutoMountIDE\nCT\n"
#define CFG_DBG_OPTS "StaffMode\nAutoMountIDE\nCT"\
"HeapInit\n130\nMemInit\n131\nVarInit\n132\n\n"
#define CFG_DBGZ_OPTS "AutoMountIDE\nCT"\
#define CFG_DBGZ_OPTS "StaffMode\nAutoMountIDE\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_CFG "TB\n0x20000\nT \n\n\nStaffMode\nAutoMountIDE\nCT\n"
#define TOS_DVD_DBG_CFG "A" CFG_BOOT_RESCUE_DRV\
"b\nScale2Mem(2048,0x40000)\n\n\n"\
"B\nScale2Mem(2048,0x40000)\n\n\n"\
"NoMP\nTextMode\nDontProbe\nBootRescueDrv\n"\
"C:" CFG_BOOT_RESCUE_DRV_FILE "\n"\
CFG_BOOT_RESCUE_DRV_START "\n\n"
+160 -96
View File
@@ -2,18 +2,29 @@
#help_index "TOS"
#define MAKE_STD 1
#define MAKE_STD_RS 0
#define MAKE_ULTRA 1
#define MAKE_ULTRA_RS 0
#define MAKE_SUP1 1
#define MAKE_WEB 1
#define MAKE_BOOKS1 0
#define MAKE_BOOKS2 0
#define MAKE_DBG 0
#define MAKE_STAFF 1
U8 TOSGetDrv()
{
I64 res;
"Drive (%s):",TOS_HDS;
res=ToUpper(GetChar);
res=Let2Let(GetChar);
'\n';
return res;
}
U0 TOSBootHDIns(U8 drv_let)
U0 TOSBootHDIns(U8 drv_let=0)
{
drv_let=ToUpper(drv_let);
drv_let=Let2Let(drv_let);
In(TOS_CFG);
BootHDIns(drv_let);
if (StrOcc(TOS_MASTER_BOOT_DRVS,drv_let))
@@ -23,8 +34,8 @@ U0 TOSBootHDIns(U8 drv_let)
U0 TOSCopyDrv(U8 src,U8 dst)
{
U8 buf_s[STR_LEN],buf_d[STR_LEN];
src=ToUpper(src);
dst=ToUpper(dst);
src=Let2Let(src);
dst=Let2Let(dst);
Fmt(dst,,FALSE,FSt_FAT32);
@@ -51,7 +62,7 @@ public U0 CopySongs(U8 threshold='7')
{
CDoc *doc;
CDocEntry *doc_e;
CDirEntry *tmpde=FilesFind("/Home/Sup1/Sup1Psalmody/*.HC*",
CDirEntry *tmpde=FilesFind("/Home/Sup1/Sup1Hymns/*.HC*",
FUF_CLUSTER_ORDER),*tmpde1=tmpde;
DelTree("/Apps/Psalmody/Examples");
MkDir("/Apps/Psalmody/Examples");
@@ -70,7 +81,7 @@ U0 DistroPrep()
{
Del("/Home/Demo*");
DelTree("/Home/*Tmp.DD.Z");
if (FileFind("/Home/Sup1/Sup1Psalmody"))
if (FileFind("/Home/Sup1/Sup1Hymns"))
CopySongs;
DelTree("/Tmp");
@@ -85,6 +96,8 @@ U0 DistroPrep()
DelTree("/Demo/AcctExample/Budget");
DelTree("/Demo/AcctExample/Private");
DelTree("/Demo/AcctExample/Sup1");
DelTree("/Demo/AcctExample/Books1");
DelTree("/Demo/AcctExample/Books2");
DelTree("/Demo/AcctExample/Web");
Del("/Demo/AcctExample/Test*");
Copy("/Home/Web/index.DD.Z",
@@ -134,7 +147,6 @@ U0 MakeBootRescueDrvFile()
Copy("C:/Adam/Training.HC.Z","A:/Adam");
Copy("C:/Adam/AMem.HC.Z", "A:/Adam");
Copy("C:/Adam/TaskRep.HC.Z", "A:/Adam");
Copy("C:/Adam/AMathODE.HC.Z","A:/Adam");
FileWrite("C:" CFG_BOOT_RESCUE_DRV_FILE,
bd->RAM_dsk,(bd->max_blk+1)<<BLK_SIZE_BITS);
@@ -230,6 +242,9 @@ U0 StaffDistroPrep()
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/Books1");
DelTree(TOS_DISTRO_DIR "/Home/Books2");
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C);
}
U0 MakeStaffDistro()
@@ -237,8 +252,8 @@ U0 MakeStaffDistro()
StaffDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSSTAFF_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
DefinePrint("DD_TEMPLEOS_STAFF_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -255,7 +270,6 @@ U0 DbgDistroPrep()
CopyTree("C:/",TOS_DISTRO_DIR "/");
DelTree(TOS_DISTRO_DIR "/Home");
MkDir(TOS_DISTRO_DIR "/Home");
CopyTree("C:/Home/Sup1",TOS_DISTRO_DIR "/Home/Sup1");
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");
@@ -265,8 +279,8 @@ U0 MakeDbgDistro()
DbgDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSDBG_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
DefinePrint("DD_TEMPLEOS_DBG_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -292,7 +306,7 @@ U0 MakeStdDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -301,7 +315,7 @@ U0 MakeStdRedSeaDistro()
StdDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -333,8 +347,8 @@ U0 MakeUltraDistro()
UltraDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSULTRA_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
DefinePrint("DD_TEMPLEOS_ULTRA_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -342,16 +356,8 @@ U0 MakeUltraRedSeaDistro()
{
UltraDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
U0 MakeSup1ISO()
{
RedSeaISO(TOS_ISO_C_NAME,"~/Sup1");
DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)",
DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -359,117 +365,175 @@ U0 MakeSup1ISO()
U0 UpdateISODocDefines()
{
try {
#if MAKE_STD
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
// "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
// 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024);
DefinePrint("DD_TEMPLEOSULTRA_SIZE",
"Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
#endif
#if MAKE_STD_RS
DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024);
#endif
#if MAKE_ULTRA
DefinePrint("DD_TEMPLEOS_ULTRA_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSULTRA_K_SIZE",
DefinePrint("DD_TEMPLEOS_ULTRA_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE",
// "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
// 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSULTRA_RS_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024);
// DefinePrint("DD_TEMPLEOSDBG_SIZE",
// "Download $TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.2fMB)",
// 0.01*(100*Size("D:/Wb/TempleOSDbg.ISO","+s")/1024/1024));
// DefinePrint("DD_TEMPLEOSDBG_K_SIZE",
// "%dKB",Size("D:/Wb/TempleOSDbg.ISO","+s")/1024);
DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSSup1.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOS_SUP1_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSSup1.ISO","+s")/1024);
#endif
#if MAKE_ULTRA_RS
DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE",
"Download $TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOS_ULTRA_RS_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024);
#endif
} catch
Fs->catch_except=TRUE;
}
UpdateISODocDefines;
public U0 MakeDistrosAndBackUp()
U0 TOSProgress(U8 *st)
{
U8 buf[STR_LEN];
StrPrint(buf,"%d. %s",++progress4,st);
"$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf;
StrCpy(progress3_desc,buf);
}
U0 TOSProfanity()
{
Profanity(,"D:/Wb/*;"
"!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"
"!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Blog/Profanity.DD*;"
"!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*"
);
}
public U0 TOSRegen()
{
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
progress4=*progress4_desc=0;
progress4_max=18;
progress3_max=1;
progress4=-1;
*progress4_desc=0;
progress4_max=12+MAKE_STD+MAKE_STD_RS+MAKE_ULTRA+MAKE_ULTRA_RS+MAKE_SUP1+
MAKE_WEB+MAKE_BOOKS1+MAKE_BOOKS2+MAKE_DBG+MAKE_STAFF;
progress4_t0=tS;
RegExe("TempleOS/TOSRegen");
TOSProgress("ChkDsk All");
AutoComplete;
WinBorder;
WinMax;
ChkAll; progress4++;
ChkAll;
MakeLineRepFile; progress4++;
TOSCopyDrv('C','D'); progress4++;
DelTree ("D:/Wb"); progress4++;
CopyTree("C:/","D:/Wb"); progress4++;
TOSProgress("Make LineRep");
MakeLineRepFile;
TOSProgress("Copy C to D");
TOSCopyDrv('C','D');
TOSProgress("Del D:/Wb");
DelTree ("D:/Wb");
TOSProgress("Copy C to D:/Wb");
CopyTree("C:/","D:/Wb");
DocClear;
MakeStdDistro; progress4++;
#if MAKE_STD
TOSProgress("Make Standard Distro ISO");
MakeStdDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO"); progress4++;
// MakeStdRedSeaDistro; progress4++;
// DocClear;
// Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSCDRS.ISO"); progress4++;
MakeUltraDistro; progress4++;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO");
#endif
#if MAKE_STD_RS
TOSProgress("Make Standard RedSea Distro ISO");
MakeStdRedSeaDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO"); progress4++;
// MakeUltraRedSeaDistro; progress4++;
// DocClear;
// Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSUltraRS.ISO"); progress4++;
MakeSup1ISO; progress4++;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSCDRS.ISO");
#endif
#if MAKE_ULTRA
TOSProgress("Make Ultra Distro ISO");
MakeUltraDistro;
DocClear;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSSup1.ISO"); progress4++;
// MakeDbgDistro; progress4++;
// DocClear;
// Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO"); progress4++;
MakeStaffDistro; progress4++;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO");
#endif
#if MAKE_ULTRA_RS
TOSProgress("Make Ultra RedSea Distro ISO");
MakeUltraRedSeaDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSStaff.ISO"); progress4++;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSUltraRS.ISO");
#endif
#if MAKE_DBG
TOSProgress("Make Dbg Distro ISO");
MakeDbgDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO");
#endif
#if MAKE_STAFF
TOSProgress("Make Staff Distro ISO");
MakeStaffDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSStaff.ISO");
#endif
#if MAKE_SUP1
TOSProgress("Make Supplemental #1 ISO");
RedSeaISO("D:/Wb/TempleOSSup1","C:/Home/Sup1");
#endif
#if MAKE_WEB
TOSProgress("Make www.templeos.org ISO");
RedSeaISO("D:/Wb/TempleOSWeb","C:/Home/Web");
#endif
#if MAKE_BOOKS1
TOSProgress("Make Books #1 ISO");
RedSeaISO("D:/Wb/TempleOSBooks1","C:/Home/Books1");
#endif
#if MAKE_BOOKS2
TOSProgress("Make Books #2 ISO");
RedSeaISO("D:/Wb/TempleOSBooks2","C:/Home/Books2");
#endif
UpdateISODocDefines;
Cd("C:/");
DocClear;
"$$PURPLE$$Lines longer than 80 columns:$$FG$$\n";
TOSProgress("Check for Long Lines");
if (LongLines)
throw;
progress4++;
DocClear;
"$$PURPLE$$Broken DolDoc Links:$$FG$$\n";
TOSProgress("Check for Broken DolDoc Links");
if (LinkChk)
throw;
progress4++;
DocClear;
MakeSymFiles; progress4++;
TOSProgress("Make Symbol Files");
MakeSymFiles;
DocClear;
MakeWebSite; progress4++;
TOSProgress("Make WebSite");
MakeWebSite;
DocClear;
TOSProgress("Check WebSite for Profanity");
if (TOSProfanity)
throw;
TOSProgress("ChkDsk All");
Drv('C');
ChkAll; progress4++;
ChkAll;
TOSProgress("Done");
SettingsPop;
"Elapsed Time:%5.3f\n",tS-progress4_t0;
ProgressBarsRst;
ProgressBarsRst("TempleOS/TOSRegen");
}
public U0 PreBackUp()
+108 -111
View File
@@ -79,8 +79,7 @@ U0 TOSBookLines(U8 *book_filename,I64 book_lines,U8 *st,I64 num_lines,
verse=BibleLine2Verse(start);
DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ (%s)\n\nGod says...\n$$RED$$",verse);
Free(verse);
} else if (StrMatch("Kosher",book_filename))
DocPrint(doc_out,"$TX,"KosherTexts",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Kosher.TXT"$\n\nGod says...\n$$RED$$");
}
doc_in=DocNew;
BookLines(doc_in,start,num_lines,book_filename);
@@ -116,52 +115,69 @@ U0 TOSBookLines(U8 *book_filename,I64 book_lines,U8 *st,I64 num_lines,
#define GBP_MEDIUM 1
#define GBP_LONG 2
public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512,
public U0 GodBooksPassage(U8 *files_find_mask,U8 *file_mask="*",I64 len=512,
I64 rand_i32=MIN_I64,I64 verbosity=GBP_SHORT)
{//Make God pick a book passage. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.DD"$
CDirEntry *tmpde=FilesFind(files_find_mask,
FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT),
*tmpde1=tmpde;
*tmpde1,*tmpde2,**tmpde3;
I64 i=0;
U8 *st,*st2=NULL;
tmpde3=&tmpde2;
tmpde2=NULL;
while (tmpde) {
st=FileRead(tmpde->full_name);
tmpde->user_data=StrLen(st);
if (verbosity==GBP_LONG)
"%08X-",i;
if (tmpde->user_data>=len)
i+=tmpde->user_data+1-len;
if (verbosity==GBP_LONG)
"%08X:$$LK,\"%s\",A=\"FI:%s\"$$\n",
i-1,tmpde->full_name+2,tmpde->full_name;
Free(st);
tmpde=tmpde->next;
tmpde1=tmpde->next;
if (WildMatch(tmpde->full_name,file_mask)) {
*tmpde3=tmpde;
tmpde3=&tmpde->next;
} else
DirEntryDel(tmpde);
tmpde=tmpde1;
}
if (rand_i32<0)
rand_i32=GodBits(32);
if (verbosity==GBP_LONG)
'\n';
if (verbosity>=GBP_MEDIUM)
"%08X*%08X",rand_i32,i;
i*=rand_i32;
if (verbosity>=GBP_MEDIUM)
"=%08X.%08X\n",i.u32[1],i.u32[0];
i=i.u32[1];
tmpde=tmpde1;
while (tmpde) {
if (!st2 && tmpde->user_data>=len) {
i-=tmpde->user_data+1-len;
if (i<0) {
st=FileRead(tmpde->full_name);
st2=st+(tmpde->user_data+1-len)+i;
st2[len]=0;
"%s\nGod says...\n$$RED$$%s$$FG$$\n",tmpde->full_name,st2;
Free(st);
}
*tmpde3=NULL;
if (tmpde=tmpde2) {
while (tmpde) {
st=FileRead(tmpde->full_name);
tmpde->user_data=StrLen(st);
if (verbosity==GBP_LONG)
"%08X-",i;
if (tmpde->user_data>=len)
i+=tmpde->user_data+1-len;
if (verbosity==GBP_LONG)
"%08X:$$LK,\"%s\",A=\"FI:%s\"$$\n",
i-1,tmpde->full_name+2,tmpde->full_name;
Free(st);
tmpde=tmpde->next;
}
tmpde=tmpde->next;
if (rand_i32<0)
rand_i32=GodBits(32);
if (verbosity==GBP_LONG)
'\n';
if (verbosity>=GBP_MEDIUM)
"%08X*%08X",rand_i32,i;
i*=rand_i32;
if (verbosity>=GBP_MEDIUM)
"=%08X.%08X\n",i.u32[1],i.u32[0];
i=i.u32[1];
tmpde=tmpde2;
while (tmpde) {
if (!st2 && tmpde->user_data>=len) {
i-=tmpde->user_data+1-len;
if (i<0) {
st=FileRead(tmpde->full_name);
st2=st+(tmpde->user_data+1-len)+i;
st2[len]=0;
"%s\nGod says...\n$$RED$$%s$$FG$$\n",tmpde->full_name,st2;
Free(st);
}
}
tmpde=tmpde->next;
}
DirTreeDel(tmpde2);
}
DirTreeDel(tmpde1);
}
U8 *FileDblRead(U8 *filename,I64 line)
@@ -542,7 +558,7 @@ U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
StrPrint(hex,"%s%s",gm->rnd0,gm->rnd1);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
if (PopUpForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
@@ -550,7 +566,7 @@ U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
CatPrint(hex,"%s%s",gm->rnd2,gm->rnd3);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
if (PopUpForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
@@ -558,7 +574,7 @@ U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
CatPrint(hex,"%s%s",gm->rnd4,gm->rnd5);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
if (PopUpForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
@@ -566,7 +582,7 @@ U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
CatPrint(hex,"%s%s",gm->rnd6,gm->rnd7);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
if (PopUpForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
@@ -574,7 +590,7 @@ U0 TOSGodDoodle(CNISTBeaconHexWordForm *gm,Bool NIST)
CatPrint(hex,"%s%s",gm->rnd8,gm->rnd9);
if (NIST) {
gm->timestamp=FloorI64(CDate2Unix(Now),60);
if (DocForm(gm(CNISTBeaconHexWordForm *)))
if (PopUpForm(gm(CNISTBeaconHexWordForm *)))
NISTBeaconURL(gm->timestamp);
else
goto gd_done;
@@ -598,7 +614,7 @@ I64 GodMiscHeader(U8 *type=NULL)
CDateStruct ds;
I64 res;
if (type) {
res=FloorI64(CDate2Unix(Now+120*CDATE_FREQ),60);
res=FloorI64(CDate2Unix(Now+5*60*CDATE_FREQ),60);
Date2Struct(&ds,Unix2CDate(res)+local_time_offset+30*CDATE_FREQ);
"Response of %s at %02d:%02d Timestamp:%d.\n\n",type,ds.hour,ds.min,res;
In("%c//Response of %s at %02d:%02d Timestamp:%d.\n\n",
@@ -609,69 +625,54 @@ I64 GodMiscHeader(U8 *type=NULL)
return res;
}
RegSetDftEntry("TempleOS/TOSGodMisc","I64 tos_timestamp=0,tos_type=0;\n");
RegExeBranch("TempleOS/TOSGodMisc");
U0 NISTGodMisc1()
{
tos_type=PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0LinuxWords\0HappyWords\0"
I64 timestamp,type;
type=PopUpPickLst("ExtDec5Bible\0LinuxWords\0HappyWords\0"
"Hex5Bible\0Hex8Books\0Doodle\0Movie\0Painting\0Metallica\0");
switch (tos_type) {
case: tos_timestamp=GodMiscHeader("Bible"); break;
case: tos_timestamp=GodMiscHeader("Kosher"); break;
case: tos_timestamp=GodMiscHeader("LinuxWords"); break;
case: tos_timestamp=GodMiscHeader("HappyWords"); break;
case: tos_timestamp=GodMiscHeader("Bible"); break;
case: tos_timestamp=GodMiscHeader("BookPick"); break;
case: tos_timestamp=GodMiscHeader("Doodle"); break;
case: tos_timestamp=GodMiscHeader("Movie"); break;
case: tos_timestamp=GodMiscHeader("Painting"); break;
case: tos_timestamp=GodMiscHeader("Metallica"); break;
switch (type) {
case: timestamp=GodMiscHeader("Bible"); break;
case: timestamp=GodMiscHeader("LinuxWords"); break;
case: timestamp=GodMiscHeader("HappyWords"); break;
case: timestamp=GodMiscHeader("Bible"); break;
case: timestamp=GodMiscHeader("BookPick"); break;
case: timestamp=GodMiscHeader("Doodle"); break;
case: timestamp=GodMiscHeader("Movie"); break;
case: timestamp=GodMiscHeader("Painting"); break;
case: timestamp=GodMiscHeader("Metallica"); break;
}
RegWriteBranch("TempleOS/TOSGodMisc","I64 tos_timestamp=%d,tos_type=%d;\n",
tos_timestamp,tos_type);
Once("InStr(\"\\\"Blog(FALSE);\n\\\";"
"NISTGodMisc2(%d,%d);\");",timestamp,type);
}
U0 NISTGodMisc2()
U0 NISTGodMisc2(I64 timestamp,I64 type)
{
CRandExtDec5Form *gm=CAlloc(sizeof(CRandExtDec5Form));
gm->timestamp=tos_timestamp;
tos_timestamp=0;
RegWriteBranch("TempleOS/TOSGodMisc","I64 tos_timestamp=%d,tos_type=%d;\n",
tos_timestamp,tos_type);
switch (tos_type) {
gm->timestamp=timestamp;
switch (type) {
case:
if (DocForm(gm(CRandExtDec5Form *))) {
if (PopUpForm(gm(CRandExtDec5Form *))) {
NISTBeaconURL(gm->timestamp);
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
}
break;
case:
if (DocForm(gm(CRandExtDec5Form *))) {
NISTBeaconURL(gm->timestamp);
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
if (PopUpForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
GodWordBatch(gm);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
if (PopUpForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/HappyWords.TXT*\");");
GodWordBatch(gm);
}
break;
case:
if (DocForm(gm(CRandHex5Form *))) {
if (PopUpForm(gm(CRandHex5Form *))) {
"$$TX,\"How this random Bible passage was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/NISTPassage.html\"$$\n";
@@ -681,23 +682,23 @@ U0 NISTGodMisc2()
}
break;
case:
if (DocForm(gm(CRandHex8Form *))) {
if (PopUpForm(gm(CRandHex8Form *))) {
"$$TX,\"How this random book pick was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/NISTPick001.html\"$$\n";
"/Home/Web/TAD/NISTPick002.html\"$$\n";
NISTBeaconURL(gm->timestamp);
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*",,
GodBooksPassage("C:/Home/*","C:/Home/Books?/*",,
Str2I64(gm->rnd0,16),GBP_MEDIUM);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
if (PopUpForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
TOSGodDoodle(gm,TRUE);
}
break;
case:
if (DocForm(gm(CMoviesForm *))) {
if (PopUpForm(gm(CMoviesForm *))) {
NISTBeaconURL(gm->timestamp);
GodVideo("Top 100 Movies",
"http://www.afi.com/100years/movies10.aspx",
@@ -705,7 +706,7 @@ U0 NISTGodMisc2()
}
break;
case:
if (DocForm(gm(CPaintingsForm *))) {
if (PopUpForm(gm(CPaintingsForm *))) {
NISTBeaconURL(gm->timestamp);
GodWebIdx("Top 100 Paintings",
"http://www.brushwiz.com/most-famous-paintings",
@@ -713,7 +714,7 @@ U0 NISTGodMisc2()
}
break;
case:
if (DocForm(gm(CMetallicaForm *))) {
if (PopUpForm(gm(CMetallicaForm *))) {
NISTBeaconURL(gm->timestamp);
GodVideo("Metallica Song",
"http://home.hccnet.nl/a.r.adams/lyrics/"
@@ -746,7 +747,7 @@ U0 GodMisc()
end:
GodMiscHeader;
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
switch (PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0LinuxWords\0"
switch (PopUpPickLst("ExtDec5Bible\0LinuxWords\0"
"HappyWords\0Hex5Bible\0Hex8Books\0Doodle\0Movie\0Painting\0"
"Metallica\0")) {
case:
@@ -754,11 +755,6 @@ U0 GodMisc()
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CHexWordForm *))) {
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
@@ -784,8 +780,8 @@ U0 GodMisc()
if (DocForm(gm(CRandHex8Form *))) {
"$$TX,\"How this random book pick was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/Pick001.html\"$$\n";
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*",,
"/Home/Web/TAD/NISTPick002.html\"$$\n";
GodBooksPassage("C:/Home/*","C:/Home/Books?/*",,
Str2I64(gm->rnd0,16),GBP_MEDIUM);
}
break;
@@ -831,18 +827,13 @@ U0 GodMisc()
end:
GodMiscHeader;
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
switch (PopUpPickLst("ExtDec5Bible\0ExtDec5Kosher\0HexWordBatch\0"
switch (PopUpPickLst("ExtDec5Bible\0HexWordBatch\0"
"Hex5Bible\0Hex8Books\0Movie\0Metallica\0")) {
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/Kosher.TXT",100000,
gm->rnd0,20,-5,FALSE,FALSE);
break;
case:
if (DocForm(gm(CHexWordForm *)))
GodWordBatch(gm);
@@ -860,8 +851,8 @@ U0 GodMisc()
if (DocForm(gm(CRandHex8Form *))) {
"$$TX,\"How this random book pick was chosen.\","
"HTML=\"http://www.templeos.org/Wb"
"/Home/Web/TAD/Pick001.html\"$$\n";
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*",,
"/Home/Web/TAD/NISTPick002.html\"$$\n";
GodBooksPassage("C:/Home/*","C:/Home/Books?/*",,
Str2I64(gm->rnd0,16),GBP_MEDIUM);
}
break;
@@ -897,8 +888,8 @@ U0 GodMisc()
case:
GodMiscHeader;
FifoU8Flush(god.fifo);
GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS);
GodBooksPassage("C:/Home/Sup1/Sup1Texts/*");
GodBitsIns(GOD_GOOD_BITS,KbdMsEvtTime>>GOD_BAD_BITS);
GodBooksPassage("C:/Home/*","C:/Home/Books?/*");
break;
}
}
@@ -1134,7 +1125,7 @@ U0 GodCodeJmp()
}
FifoU8Flush(god.fifo);
GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS);
GodBitsIns(GOD_GOOD_BITS,KbdMsEvtTime>>GOD_BAD_BITS);
num=GodBits(GOD_GOOD_BITS)%cnt;
tmpde=tmpde1;
@@ -1151,12 +1142,12 @@ U0 GodCodeJmp()
Free(st);
}
RegSetDftEntry("TempleOS/TOSGodOffer","I64 tos_gus_gwen=0;\n");
RegExeBranch("TempleOS/TOSGodOffer");
RegDft("TempleOS/TOSGodOffer","I64 tos_gus_gwen=0;\n");
RegExe("TempleOS/TOSGodOffer");
U0 GodOffer()
{
switch (PopUpPickLst("MosesComic\0GusGwen\0Fiction\0")) {
switch (PopUpPickLst("MosesComic\0GusGwen\0Fiction\0DyingLight\0")) {
case:
"---- Moses Comic ---- "
"(Set in the $TX,"Numbers 11",HTML="http://www.biblegateway.com/passage/?search=Numbers%%%%2011&version=NIV"$ "
@@ -1165,17 +1156,23 @@ U0 GodOffer()
"God says, \"\"\n";
break;
case:
"---- Gus and Gwen Soap Opera Episode %d ----\n"
"---- Gus and Gwen: A soap opera Episode %d ----\n"
"Gus says, \"\"\n"
"Gwen says, \"\"\n"
"-----------------------------------------\n",tos_gus_gwen++;
RegWriteBranch("TempleOS/TOSGodOffer","I64 tos_gus_gwen=%d;\n",
RegWrite("TempleOS/TOSGodOffer","I64 tos_gus_gwen=%d;\n",
tos_gus_gwen);
break;
case:
"---- $TX,"Collaborative Fiction",HTML="http://en.wikipedia.org/wiki/Collaborative_fiction"$ ----\n"
"Once upon a time ";
break;
case:
"---- The Dying Light: A soap opera ----\n"
"Dr. Hans says, \"\"\n"
"Nurse Ruth, \"\"\n"
"---------------------------------------\n";
break;
}
}
+38 -75
View File
@@ -1,46 +1,6 @@
#help_index "TOS"
public U0 CursorRemFile(U8 *filename)
{
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocWrite(doc);
DocDel(doc);
}
public U0 CursorRem(U8 *files_find_mask="*")
{
I64 fuf_flags=0;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F+O");
CDirEntry *tmpde=FilesFind(files_find_mask,fuf_flags),*tmpde1=tmpde;
while (tmpde) {
CursorRemFile(tmpde->full_name);
Touch(tmpde->full_name,"",,tmpde->datetime);
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
}
U0 UncollapseFile(U8 *filename,I64 *)
{
CDoc *doc=DocRead(filename,DOCF_NO_CURSOR);
DocCollapse(FALSE,doc);
DocWrite(doc);
DocDel(doc);
}
public U0 Uncollapse(U8 *files_find_mask="*",U8 *fu_flags=NULL)
{
I64 fuf_flags=0;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+$$+O");
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
CDirEntry *tmpde=FilesFind(files_find_mask,fuf_flags),*tmpde1=tmpde;
while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) {
UncollapseFile(tmpde->full_name,&fuf_flags);
Touch(tmpde->full_name,"",,tmpde->datetime);
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
}
#define VIDEO_FRAME_RATE 30
#define VIDEO_FRAME_RATE 29.97
#define FG_JUST_AUDIO 0
#define FG_BOOT_DRV 1
@@ -104,7 +64,7 @@ public U0 FrameGrabberToggle()
last_time=tS;
if (fg_on) {
fg_on=FALSE;
Snd(0);
Snd;
wall->record=snd.record=FALSE;
Sleep(1000);
User("CopyVideo;Exit;\n");
@@ -113,7 +73,7 @@ public U0 FrameGrabberToggle()
if (fg_mode!=FG_JUST_AUDIO)
Spawn(&FrameGrabberTask,NULL,"Frame Grabber");
wall->record=snd.record=TRUE;
Snd(0);
Snd;
}
}
}
@@ -123,7 +83,7 @@ public U0 JukeSong(I64 num)
AutoComplete;
if (!fg_on)
FrameGrabberToggle;
JukeSongsPuppet("~/Sup1/Sup1Psalmody",,num,num+1);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,num,num+1);
if (fg_on)
FrameGrabberToggle;
}
@@ -133,7 +93,7 @@ public U0 JukeLines(I64 start_line,I64 end_line)
AutoComplete;
if (!fg_on)
FrameGrabberToggle;
JukeSongsPuppet("~/Sup1/Sup1Psalmody",,start_line*5,end_line*5);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,start_line*5,end_line*5);
if (fg_on)
FrameGrabberToggle;
}
@@ -219,22 +179,18 @@ public U0 BMP2TXT(U8 *_in_name,U8 *_out_name=NULL)
Free(out_name);
}
RegSetDftEntry("TempleOS/TOSVideos",
"I64 tos_code_walk_thru=1,tos_after_egypt_in_action=1;\n");
RegExeBranch("TempleOS/TOSVideos");
RegDft("TempleOS/TOSVideos","I64 tos_code_walk_thru=1;\n");
RegExe("TempleOS/TOSVideos");
U0 TOSRegInit()
{
DefinePrint("DD_CODE_WALK_THRU","Episode #%d",tos_code_walk_thru);
DefinePrint("DD_AFTER_EGYPT_IN_ACTION","Episode #%d",
tos_after_egypt_in_action);
} TOSRegInit;
U0 TOSRegWrite()
{
RegWriteBranch("TempleOS/TOSVideos",
"I64 tos_code_walk_thru=%d,tos_after_egypt_in_action=%d;\n",
tos_code_walk_thru,tos_after_egypt_in_action);
RegWrite("TempleOS/TOSVideos",
"I64 tos_code_walk_thru=%d;\n",tos_code_walk_thru);
TOSRegInit;
}
@@ -263,23 +219,6 @@ U8 *TOSYouTube()
return res;
}
U0 AfterEgyptInAction()
{
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
Adam("GodInit(\"/Adam/God/Vocab.DD*\");");
AutoComplete;
WinBorder;
WinMax;
if (!fg_on)
PopUp("Sleep(50);FrameGrabberToggle;");
Ed("~/Videos/AfterEgypt.DD.Z");
Msg(MSG_KEY_DOWN_UP,CH_SPACE,0x3900000039); //<SPACE>
ExeFile("::/Apps/AfterEgypt/Run");
SettingsPop;
tos_after_egypt_in_action++;
TOSRegWrite;
}
U0 CodeWalkThru()
{
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -309,16 +248,40 @@ U0 TOSJukeVideo(I64 start=0,I64 end=10)
Free(buf);
AutoComplete;
FrameGrabberToggle;
JukeSongsPuppet("~/Sup1/Sup1Psalmody",,start,end);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,start,end);
FrameGrabberToggle;
}
#define MEM_TEST_SIZE 128*0x100000
#define MEM_TEST_SIZE 1024*1024
U0 MemTest()
{
while (sys_data_bp->alloced_u8s-sys_data_bp->used_u8s>MEM_TEST_SIZE*2) {
MemSet(MAlloc(MEM_TEST_SIZE),0x88,MEM_TEST_SIZE);
"%X\n",sys_data_bp->alloced_u8s-sys_data_bp->used_u8s;
U8 *b;
while (sys_data_bp->alloced_u8s-sys_data_bp->used_u8s>0x1000000) {
b=MAlloc(MEM_TEST_SIZE,Fs->data_heap);
MemSet(b,0x88,MSize(b));
"Data:%X\n",sys_data_bp->alloced_u8s-sys_data_bp->used_u8s;
Yield;
}
while (sys_code_bp->alloced_u8s-sys_code_bp->used_u8s>0x1000000) {
b=MAlloc(MEM_TEST_SIZE,Fs->code_heap);
MemSet(b,0x88,MSize(b));
"Code:%X\n",sys_code_bp->alloced_u8s-sys_code_bp->used_u8s;
Yield;
}
}
public I64 Profanity(
U8 *needle_filename="C:/Home/Sup1/Sup1Blog/Profanity.DD.Z",
U8 *files_find_mask="/*",U8 *fu_flags=NULL)
{//Scan for profanity.
CCmpCtrl *cc;
I64 res=0;
if (FileFind(needle_filename)) {
cc=CmpCtrlNew(MStrPrint("#include \"%s\"",needle_filename));
while (Lex(cc))
if (cc->token==TK_IDENT)
res+=Find(cc->cur_str,files_find_mask,fu_flags);
CmpCtrlDel(cc);
}
return res;
}
+118
View File
@@ -0,0 +1,118 @@
$WW,1$$FG,5$$TX+CX,"TOS Staff Policies"$$FG$
* Motto: Run toward bugs, not away from bugs.
* Be Metallica. Use short, sharp, powerful words, as though a song.
* Be careful $FG,2$/Demo/AcctExample$FG$ doesn't get extra files. When you run TOSRegen(), it will copy home files to $FG,2$/Demo/AcctExample$FG$.
* Be careful $FG,2$remote/Wb$FG$ site doesn't get extra files. If you delete or rename a file, also delete the $FG,2$remote/Wb$FG$ file from the site.
$TR,"PreBackUp()"$
$ID,2$
Linux: Export Bookmarks to ~/TAD/Home/Sup1/Sup1Blog/Bookmarks.html
Linux: >vm_in
{
TempleOS: >PreBackUp;
TempleOS: Update Budget
TempleOS: >#include "::/Misc/OSTestSuite"
TempleOS: >Del("/Home/Demo*");
}
$ID,-2$
$TR,"Regen()"$
$ID,2$
When you do these four steps, do them as quickly as possible so that the $LK,"::/Doc/ChangeLog.DD"$ datetime approximately matches Kernel $LK,"sys_compile_time",A="MN:sys_compile_time"$.
{
TempleOS: Add ordinary $LK,"::/Doc/ChangeLog.DD"$ entry.
TempleOS: >TOSBootHDIns('C');
TempleOS: >BootRAM;
TempleOS: >TOSRegen;
}
$ID,-2$
$TR,"NewRelease(Bool full=FALSE)"$
$ID,2$
if ($FG,2$full$FG$)
]PreBackUp()
]Regen()
Linux: >vm_out
if ($FG,2$full$FG$) {
Linux: Burn ~/TAD to memory stick.
On other machine {
Linux: Copy ~/TAD from memory stick.
VMware: Install new TempleOSStaff.ISO to machine named, "TOS".
{ //2048 Meg RAM
TempleOS: $LK,"TOSStaffIns",A="MN:TOSStaffIns"$(); in VMware.
]Regen()
TempleOS: >#include "::/Misc/OSTestSuite"
TempleOS: >Del("/Home/Demo*");
}
Linux: >emu_staff_new
Linux: >emu8core or >emu24core
{
TempleOS: $LK,"TOSStaffIns",A="MN:TOSStaffIns"$(); in QEMU.
]Regen()
}
}
}
Linux: CrossFTP sync ~/TAD/Site1/Wb to remote/Wb
if ($FG,2$full$FG$) {
FileZilla
Upload ~/TAD/Site1/index.html to remote/index.html
Upload ~/TAD/Site1/TempleOS.html to remote/TempleOS.html
}
In WebHost FileMgr {
Del {
remote/TempleOSCD.ISO
remote/TempleOSSup1.ISO.C
remote/TempleOSWeb.ISO.C
remote/TempleOSUltra.ISO
}
Copy up one level to remote root {
remote/Wb/TempleOSCD.ISO
remote/Wb/TempleOSSup1.ISO.C
remote/Wb/TempleOSWeb.ISO.C
remote/Wb/TempleOSUltra.ISO
}
}
$ID,-2$
$TR,"NewVersion(Bool full=FALSE)"$
$ID,2$
Increment minor version number.
>$LK,"R",A="MN:R"$("3.12","3.13","-i-l"); //Approve by hand.
Add version release notice in $LK,"::/Doc/ChangeLog.DD"$.
]NewRelease(TRUE);
Submit to www.betanews.com.
Send email to MajorGeeks.
if ($FG,2$full$FG$) {
Submit to www.upload.com.
Upload to SourceForge.
}
$ID,-2$
$TR,"NewYearlyVersion()"$
$ID,2$
Increment major version number.
>$LK,"R",A="MN:R"$("3.13","4.00","-i-l"); //Approve by hand.
Add version release notice in $LK,"::/Doc/ChangeLog.DD"$.
$LK,"Update ::/Misc/PCIDevices.DD",A="FF:::/Adam/DevInfo.HC,PCIDevFileGen"$
Remove 6 months from bottom of $LK,"::/Doc/ChangeLog.DD"$.
]NewVersion(TRUE);
$ID,-2$
* If you change the compiler language syntax, immediately make a ]NewRelease(TRUE).
+7 -5
View File
@@ -189,7 +189,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
"<head>\n"
"<meta http-equiv=\"Content-Type\" "
"content=\"text/html;charset=US-ASCII\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$\">\n";
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$\">\n";
if (!body_header) body_header=
"<body>\n"
"<pre style=\"font-family:courier;font-size:10pt\">\n";
@@ -244,8 +244,8 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
if (no_bwd)
while (col<doc_e->x)
HtmlPutS(doc_out,doc_e->settings.final_u32_attr,&old_u32_attr,FALSE,
" ",&col,style_bitmap);
HtmlPutS(doc_out,doc_e->settings.final_u32_attr&~DOCET_UNDERLINE,
&old_u32_attr,TRUE," ",&col,style_bitmap);
link_st=NULL;
if (doc_e->de_flags&DOCEF_HTML_LINK)
@@ -411,7 +411,7 @@ U0 TOSWebFile(U8 *name,Bool line_nums=FALSE)
if (FileFind(name,&de)) {
Free(de.full_name);
"File:%s\n",name;
UncollapseFile(name,NULL);
Collapse(name,FALSE);
Touch(name,"",,de.datetime);
name2=ChgExt(name,"html");
@@ -430,7 +430,7 @@ U0 TOSWebFile(U8 *name,Bool line_nums=FALSE)
"<meta name=\"keywords\" "
"content=\"Operating System,64-Bit,64 Bit,"
"Temple,OS,TempleOS,Free,Open Source,Public Domain,x86_64\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V4.13",D="DD_OS_NAME_VERSION"$\">\n",
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.00",D="DD_OS_NAME_VERSION"$\">\n",
"<body style=\"background-color:#55FFFF; border-style:solid;
border-width:8px; border-color:#0000AA;
@@ -478,6 +478,8 @@ public U0 MakeWebSite()
CDirEntry *tmpde,*tmpde1;
DocClear;
Cd("D:/Wb");
DelTree("D:/Wb/Home/Books1");
DelTree("D:/Wb/Home/Books2");
DelTree("D:/Wb/Home/Budget");
DelTree("D:/Wb/Home/Private");
Del("D:/Wb/Home/*");
+14 -18
View File
@@ -19,9 +19,9 @@ _BEEPS::
MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HH,SF_ARG1"$
@@05: PUSH RCX
//U0 $LK,"Beep",A="MN:Beep"$(I64 freq=500,Bool busy=FALSE)
//U0 $LK,"Beep",A="MN:Beep"$(I8 ona=62,Bool busy=FALSE)
PUSH FALSE //Do not busy (spin) wait
PUSH 500 //Hz
PUSH 62 //500 Hz
CALL Beep
POP RCX
LOOP @@05
@@ -49,30 +49,26 @@ I64 AsmAndC1()
//You can clobber RAX,RBX,RCX,RDX. The compiler expects that.
IMPORT Snd; //Import an not use & or don't import and use &Snd.
MOV RCX,&i[RBP] //You can clobber RAX,RBX,RCX,RDX.
//You better preserve the rest.
MOV RCX,&i[RBP] //You can clobber RAX,RBX,RCX,RDX.
//You better preserve the rest.
@@05: PUSH RCX
@@05: PUSH RCX
//U0 $LK,"Snd",A="MN:Snd"$(F64 freq);
MOV RAX,RCX //freq=loop*100.0+100.0
IMUL2 RAX,100 //TempleOS uses nonstandard opcodes
//to avoid multiple form of the same one.
//See $LK,"::/Compiler/OpCodes.DD"$.
ADD RAX,100
//U0 $LK,"Snd",A="MN:Snd"$(I8 ona);
MOV RAX,RCX //ona=loop*10+50
IMUL2 RAX,10 //TempleOS uses nonstandard opcodes
//to avoid multiple form of the same one.
//See $LK,"::/Compiler/OpCodes.DD"$.
ADD RAX,40
PUSH RAX
FILD U64 [RSP] //Convert from int to floating
FSTP U64 [RSP]
CALL Snd
MOV RCX,cnts.time_stamp_freq>>3 //JIT Const. Simple delay loop
MOV RCX,cnts.time_stamp_freq>>3 //JIT Const. Simple delay loop
@@10: LOOP @@10
POP RCX
POP RCX
LOOP @@05
}
Snd(0);
Snd;
return i;
}
+9 -15
View File
@@ -7,7 +7,7 @@ it from the cmd line.
//This is to demo glbl var access.
//Glbs defined elsewhere can accessed too, like cnts.jiffies.
I64 glbl_hz=400,glbl_hz_step=100,glbl_hz_base=100;
I64 glbl_ona=Freq2Ona(400),glbl_ona_step=10,glbl_ona_base=Freq2Ona(100);
asm {
//Opcodes are slightly different to make writing my x86_64 assembler easier.
@@ -27,9 +27,9 @@ _BEEPS2::
PUSH U64 [&cnts.jiffies]
@@05: PUSH RCX
//U0 $LK,"Beep",A="MN:Beep"$(I64 freq=500,Bool busy=FALSE)
//U0 $LK,"Beep",A="MN:Beep"$(I8 ona=62,Bool busy=FALSE)
PUSH FALSE //Do not busy (spin) wait
PUSH U64 [&glbl_hz] //evaluated at run time
PUSH U64 [&glbl_ona] //evaluated at run time
CALL &Beep
POP RCX
LOOP @@05
@@ -64,28 +64,22 @@ U0 AsmAndC2()
asm {
LIST
//You can clobber RAX,RBX,RCX,RDX, but preserve the rest.
MOV RCX,R15 //You can clobber RAX,RBX,RCX,RDX. Preserve the rest.
@@05: PUSH RCX
//U0 $LK,"Snd",A="MN:Snd"$(F64 freq);
MOV RAX,RCX //freq=loop*100.0+100.0
IMUL2 RAX,glbl_hz_step //evaluated at compile ttime
ADD RAX,U64 [&glbl_hz_base] //evaluated at run time
//U0 $LK,"Snd",A="MN:Snd"$(I8 ona);
MOV RAX,RCX //ona=loop*10+100.0Hz
IMUL2 RAX,glbl_ona_step //Intentionally evaluated at compile time
ADD RAX,U64 [&glbl_ona_base] //Intentionally evaluated at run time
PUSH RAX
FILD U64 [RSP] //Convert from int to floating
FSTP U64 [RSP]
CALL &Snd //We can skip IMPORT with & if JIT compiling.
MOV RCX,cnts.time_stamp_freq>>3 //JIT Const. Simple delay loop.
MOV RCX,cnts.time_stamp_freq>>3 //JIT Const. Simple delay loop.
@@10: LOOP @@10
POP RCX
LOOP @@05
}
Snd(0);
Snd;
}
AsmAndC2;
+2 -2
View File
@@ -2,10 +2,10 @@ I64 MyLeftCB1(CDoc *,CDocEntry *)
{
I64 i;
for (i=500;i<1000;i+=25) {
Snd(i);
Snd(Freq2Ona(i));
Sleep(10);
}
Snd(0);
Snd;
return 0;
}
Binary file not shown.
@@ -1,6 +1,6 @@
//This example shows buttons. Buttons return a menu val
//This example shows bttns. Bttns return a menu val
//unless you rig them to send macros. Menu entries are
//about the same as buttons, but don't have a border.
//about the same as bttns, but don't have a border.
I64 PopUpFreq()
{//See also $LK,"PopUpRangeI64",A="MN:PopUpRangeI64"$()
@@ -22,7 +22,7 @@ I64 PopUpFreq()
#define MU_SND_ON 2
#define MU_SND_OFF 3
U0 MenuButton()
U0 MenuBttn()
{
Bool done=FALSE;
I64 i,j=0,freq=100;
@@ -34,7 +34,7 @@ U0 MenuButton()
//Use <CTRL-l> to generate cursor movement expressions and check "Quote".
"$$CM+CX-RE,-4$$Menu Demo\n\n";
"$$LM,8$$"; //Set left margin
//These are buttons that return a val from a menu selection.
//These are bttns that return a val from a menu selection.
if (!j)
"\n$$BT,\"Snd On\",LE=MU_SND_ON$$\n\n\n";
else
@@ -49,17 +49,17 @@ U0 MenuButton()
break;
case MU_SND_ON:
j=freq;
Snd(j);
Snd(Freq2Ona(j));
break;
case MU_SND_OFF:
j=0;
Snd(j);
Snd;
break;
case MU_SET_FREQ:
freq=PopUpFreq;
if (j) {
j=freq;
Snd(j);
Snd(Freq2Ona(j));
}
break;
default:
@@ -69,7 +69,7 @@ U0 MenuButton()
DocPut->flags=DocPut->flags&~DOCF_FORM |
old_flags & DOCF_FORM;
DocClear;
Snd(0);
Snd;
}
MenuButton;
MenuBttn;
Binary file not shown.
+2 -2
View File
@@ -6,7 +6,7 @@
"UnderLine: $$UL,1$$Test$$UL,0$$\n\n"
"Link : $$LK,\"Genesis,1:1\",\"BF:Genesis,1:1\"$$\n\n\n"
"Button : $$BT-X,\"OKAY\",LE=1$$\n\n\n\n";
"Bttn : $$BT-X,\"OKAY\",LE=1$$\n\n\n\n";
//You can do it this way if you like.
"\nSuper : 3$SY,-3$2$SY,0$=9\n\n"
@@ -19,4 +19,4 @@
//<CTRL-SHIFT-T> on this link to toggle individual commands.
"Link : $LK,"Genesis,1:1",A="BF:Genesis,1:1"$\n\n\n"
"Button : $BT,"OKAY",LE=1$\n\n\n\n";
"Bttn : $BT,"OKAY",LE=1$\n\n\n\n";
+4 -4
View File
@@ -23,8 +23,8 @@ U0 D2()
D1;
if (Prompt(4)) throw('Point4');
} catch {
"D2 handler\n"
"Ch:%c:%P\n",Fs->except_ch,Fs->except_caller1;
"D2 hndlr\n"
"Ch:%c:%P\n",Fs->except_ch,Fs->except_callers[0];
if (Fs->except_ch=='Point1') {
"Caught in D2\n";
Fs->catch_except=TRUE;
@@ -38,8 +38,8 @@ U0 Demo()
D2;
if (Prompt(3)) throw('Point3');
} catch {
"Demo handler\n"
"Ch:%c:%P\n",Fs->except_ch,Fs->except_caller1;
"Demo hndlr\n"
"Ch:%c:%P\n",Fs->except_ch,Fs->except_callers[0];
Fs->catch_except=TRUE;
}
}
+1 -1
View File
@@ -32,4 +32,4 @@ SrcExample;
//See $LK,"::/Demo/ScrnCodes.HC"$, $LK,"::/Demo/Graphics/CharAnimation.HC"$,
//$LK,"::/Demo/Games/CharDemo.HC"$ and $LK,"::/Demo/Graphics/FontEd.HC"$.
//See $LK,"chars_bmp_alpha",A="MN:chars_bmp_alpha"$ and $LK,"chars_bmp_alpha_numeric",A="MN:chars_bmp_alpha_numeric"$.
//See $LK,"char_bmp_alpha",A="MN:char_bmp_alpha"$ and $LK,"char_bmp_alpha_numeric",A="MN:char_bmp_alpha_numeric"$.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+11 -11
View File
@@ -1,7 +1,7 @@
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
RegSetDftEntry("TempleOS/CastleFrankenstein","F64 best_score=9999;\n");
RegExeBranch("TempleOS/CastleFrankenstein");
RegDft("TempleOS/CastleFrankenstein","F64 best_score=9999;\n");
RegExe("TempleOS/CastleFrankenstein");
//Set snap to 4 and width to 4
//if you edit this map.
@@ -224,14 +224,14 @@ U0 DrawIt(CTask *task,CDC *dc)
z1=0;
DCTransform(dc,&x1,&y1,&z1);
if (z1>0)
SpriteMat3B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<5>",BI=5$,r3);
Sprite3Mat4x4B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<5>",BI=5$,r3);
} else if (c==YELLOW) {
x1=x+SCRN_SCALE/2;
y1=y+SCRN_SCALE/2;
z1=0;
DCTransform(dc,&x1,&y1,&z1);
if (z1>0)
SpriteMat3B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<6>",BI=6$,r3);
Sprite3Mat4x4B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<6>",BI=6$,r3);
}
if (!map[(yy+1)*map_width+xx]) {
@@ -320,11 +320,11 @@ U0 DrawIt(CTask *task,CDC *dc)
DCTransform(dc,&xx,&yy,&zz);
if (zz>0) {
if (tmpm->dead)
SpriteMat3B(dc,x,y,0,$IB,"<2>",BI=2$,r2);
Sprite3Mat4x4B(dc,x,y,0,$IB,"<2>",BI=2$,r2);
else {
tt=Tri(tS,1.0);
tmps=SpriteInterpolate(tt,$IB,"<3>",BI=3$,$IB,"<4>",BI=4$);
SpriteMat3B(dc,x,y,0,tmps,r1);
Sprite3Mat4x4B(dc,x,y,0,tmps,r1);
Free(tmps);
}
}
@@ -380,7 +380,7 @@ U0 Fire()
F64 d,dx,dy,xx=Cos(man_é),yy=Sin(man_é);
Monster *tmpm;
Noise(100,300,1000);
Noise(100,53,74);
for (i=0,tmpm=monsters;i<NUM_MONSTERS;i++,tmpm++) {
x=tmpm->x;
y=tmpm->y;
@@ -489,9 +489,9 @@ U0 SongTask(I64)
Fs->task_end_cb=&SndTaskEndCB;
MusicSettingsRst;
while (TRUE) {
Play("2q.A#1eG2AeA#qAq.A#1eG2eAeA#qA");
Play("q.A#1eG2A#A1qG2q.A#1eG2A#A1qG");
Play("3eA#A2qG3eA#A2qG3eA#A2G3AA#A2qG");
Play("3q.A#eGAeA#qAq.A#eGeAeA#qA");
Play("3q.A#eGA#AqGq.A#eGA#AqG");
Play("4eA#AqGeA#AqGeA#AGAA#AqG");
}
}
@@ -589,7 +589,7 @@ fs_done:
SettingsPop;
CleanUp;
MenuPop;
RegWriteBranch("TempleOS/CastleFrankenstein","F64 best_score=%5.4f;\n",
RegWrite("TempleOS/CastleFrankenstein","F64 best_score=%5.4f;\n",
best_score);
}
+25 -25
View File
@@ -2,8 +2,8 @@
//Giotto, a famous artist, drew a freehand circle to get a job.
RegSetDftEntry("TempleOS/CircleTrace","F64 best_score=999;\n");
RegExeBranch("TempleOS/CircleTrace");
RegDft("TempleOS/CircleTrace","F64 best_score=999;\n");
RegExe("TempleOS/CircleTrace");
I64 cx,cy;
F64 avg_error=0,elapsed_time=0,total_error=0,score=999;
@@ -13,7 +13,7 @@ U0 SongTask(I64)
Fs->task_end_cb=&SndTaskEndCB;
MusicSettingsRst;
while (TRUE)
Play("hEDCARCDECR");
Play("5hEDC4A5RCDECR");
}
U0 DrawIt(CTask *task,CDC *dc)
@@ -35,7 +35,7 @@ Bool CTPlot(CDC *dc,I64 x,I64 y,I64)
U0 CircleTrace()
{
I64 msg_code,a1,a2,x1,y1;
I64 msg_code,arg1,arg2,x1,y1;
F64 rad,t0,total_distance;
CDC *dc=DCAlias;
@@ -57,12 +57,12 @@ U0 CircleTrace()
dc->color=ROP_XOR+BLACK^TRANSPARENT;
GrCircle(dc,cx,cy,CIRCLE_RADIUS);
do {
msg_code=GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN);
switch (msg_code) {
case MSG_KEY_UP:
break;
case MSG_IP_L_DOWN:
case MSG_MS_L_DOWN:
DCFill;
dc->color=ROP_XOR+BLACK^TRANSPARENT;
GrCircle(dc,cx,cy,CIRCLE_RADIUS);
@@ -70,18 +70,18 @@ U0 CircleTrace()
t0=tS;
total_distance=0.001;
total_error=0;
x1=a1; y1=a2;
x1=arg1; y1=arg2;
do {
msg_code=ScanMsg(&a1,&a2,
1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=ScanMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
switch (msg_code) {
case MSG_IP_L_UP:
case MSG_MS_L_UP:
break;
case MSG_IP_MOVE:
if (x1!=a1 || y1!=a2) {
total_distance+=Sqrt(Sqr(x1-a1)+Sqr(y1-a2));
Line(dc,x1,y1,0,a1,a2,0,&CTPlot);
x1=a1;y1=a2;
case MSG_MS_MOVE:
if (x1!=arg1 || y1!=arg2) {
total_distance+=Sqrt(Sqr(x1-arg1)+Sqr(y1-arg2));
Line(dc,x1,y1,0,arg1,arg2,0,&CTPlot);
x1=arg1;y1=arg2;
//undo overlapping pixs on segments
GrPlot(dc,x1,y1);
rad=Sqrt(Sqr(x1-cx)+Sqr(y1-cy));
@@ -100,29 +100,29 @@ U0 CircleTrace()
//no need to do anything until the window mgr runs.
Refresh;
} while (msg_code!=MSG_IP_L_UP);
} while (msg_code!=MSG_MS_L_UP);
music.mute=TRUE; Sleep(200);
if (total_distance>0.95*CIRCUMFERENCE) {
if (score<best_score) {
Snd(2000);Sleep(50);Snd(0);Sleep(50);
Snd(2000);Sleep(50);Snd(0);Sleep(50);
Snd(2000);Sleep(50);
Snd(86);Sleep(50);Snd;Sleep(50);
Snd(86);Sleep(50);Snd;Sleep(50);
Snd(86);Sleep(50);
best_score=score;
} else {
Snd(500);Sleep(50);
Snd(62);Sleep(50);
}
} else {
Snd(100);Sleep(1000);
Snd(34);Sleep(1000);
}
Snd(0); Sleep(200); music.mute=FALSE;
Snd; Sleep(200); music.mute=FALSE;
break;
}
} while (msg_code!=MSG_KEY_DOWN || a1!=CH_SHIFT_ESC && a1!=CH_ESC);
} while (msg_code!=MSG_KEY_DOWN || arg1!=CH_SHIFT_ESC && arg1!=CH_ESC);
GetMsg(,,1<<MSG_KEY_UP);
SettingsPop;
DCFill;
DCDel(dc);
RegWriteBranch("TempleOS/CircleTrace","F64 best_score=%5.4f;\n",best_score);
RegWrite("TempleOS/CircleTrace","F64 best_score=%5.4f;\n",best_score);
}
CircleTrace; //Execute when #included
+4 -4
View File
@@ -1,5 +1,5 @@
RegSetDftEntry("TempleOS/DunGen","F64 best_score=9999;\n");
RegExeBranch("TempleOS/DunGen");
RegDft("TempleOS/DunGen","F64 best_score=9999;\n");
RegExe("TempleOS/DunGen");
//Set snap to 4 and width to 4
//if you edit this map.
@@ -232,7 +232,7 @@ U0 Attack()
Monster *tmpm;
man_attack_t0=tS;
Noise(100,300,1000);
Noise(100,53,74);
for (i=0,tmpm=monsters;i<NUM_MONSTERS;i++,tmpm++) {
if (!tmpm->dead &&
man_x+man_dx==tmpm->x && man_y+man_dy==tmpm->y) {
@@ -438,7 +438,7 @@ dg_done:
PutExcept;
SettingsPop;
MenuPop;
RegWriteBranch("TempleOS/DunGen","F64 best_score=%5.4f;\n",best_score);
RegWrite("TempleOS/DunGen","F64 best_score=%5.4f;\n",best_score);
CleanUp;
}
Binary file not shown.
Binary file not shown.
+20 -20
View File
@@ -173,7 +173,7 @@ U0 DrawIt(CTask *task,CDC *dc)
tmpo=obj_head.next;
while (tmpo!=&obj_head) {
if (tmpo->flags&OF_ACTIVE && tmpo->flags&OF_SHIP) {
SpriteZ3B(dc,tmpo->x,tmpo->y,0,
Sprite3ZB(dc,tmpo->x,tmpo->y,0,
imgs[tmpo->player][tmpo->type],tmpo->é+ã/2);
k=0;
@@ -224,7 +224,7 @@ U0 DrawIt(CTask *task,CDC *dc)
tmpo=obj_head.next;
while (tmpo!=&obj_head) {
if (tmpo->flags&OF_ACTIVE && !(tmpo->flags&OF_SHIP))
SpriteZ3B(dc,tmpo->x,tmpo->y,0,
Sprite3ZB(dc,tmpo->x,tmpo->y,0,
imgs[tmpo->player][tmpo->type],tmpo->é+ã/2);
if (tmpo->flags&OF_SHOOTING) {
dc->color=LTRED;
@@ -425,8 +425,8 @@ Squadron *SquadronLaunch(I64 player,F64 x=MAX_F64,F64 y=MAX_F64)
if (player==0) {
launch_unit_x1=tmpo->x;
launch_unit_y1=tmpo->y;
launch_unit_x2=ip.pos.x-main_task->pix_left-main_task->scroll_x;
launch_unit_y2=ip.pos.y-main_task->pix_top -main_task->scroll_y;
launch_unit_x2=ms.pos.x-main_task->pix_left-main_task->scroll_x;
launch_unit_y2=ms.pos.y-main_task->pix_top -main_task->scroll_y;
launch_t=tS+0.5;
}
if (tmpo->squadron>=0) {
@@ -494,8 +494,8 @@ Squadron *SquadronSet
if (player==0) {
set_é_unit_x1=tmpo->x;
set_é_unit_y1=tmpo->y;
set_é_unit_x2=ip.pos.x-main_task->pix_left-main_task->scroll_x;
set_é_unit_y2=ip.pos.y-main_task->pix_top -main_task->scroll_y;
set_é_unit_x2=ms.pos.x-main_task->pix_left-main_task->scroll_x;
set_é_unit_y2=ms.pos.y-main_task->pix_top -main_task->scroll_y;
set_é_t=tS+0.5;
}
if (tmpo->squadron>=0) {
@@ -640,7 +640,7 @@ U0 Combat(F64 period)
tmpt->target=tmpo1;
tmpt->é=Arg(tmpo1->x-tmpo->x,tmpo1->y-tmpo->y);
QueIns(tmpt,torpedo_head.last);
Sweep(2000,2000,300);
Sweep(2000,86,53);
} else if (tmpo->ship_guns>0 && d<tmpo->ship_guns_range) {
tmpo->flags|=OF_SHOOTING;
if (Rand<125.0*period) {
@@ -649,7 +649,7 @@ U0 Combat(F64 period)
tmpo1->fuel*=0.75*Rand+0.25;
}
if (tS>next_noise) {
Noise(100,75,200);
Noise(100,29,46);
next_noise=tS+0.1;
}
}
@@ -662,7 +662,7 @@ U0 Combat(F64 period)
tmpo1->fuel*=0.75*Rand+0.25;
}
if (tS>next_noise) {
Noise(25,500,2000);
Noise(25,62,86);
next_noise=tS+0.025;
}
}
@@ -781,7 +781,7 @@ U0 AnimateTask(I64)
U0 FlatTops()
{
I64 a1,a2;
I64 arg1,arg2;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
Fs->text_attr=BLUE<<4+WHITE;
@@ -805,16 +805,16 @@ U0 FlatTops()
" Slower(,'-');"
"}"
);
Fs->win_inhibit|=WIF_SELF_IP_L|WIF_SELF_IP_R;
Fs->win_inhibit|=WIF_SELF_MS_L|WIF_SELF_MS_R;
Init;
Fs->draw_it=&DrawIt;
Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
try {
while (TRUE)
switch (GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN|1<<MSG_IP_L_UP|1<<MSG_IP_R_UP|1<<MSG_IP_R_D_UP)) {
switch (GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN|1<<MSG_MS_L_UP|1<<MSG_MS_R_UP|1<<MSG_MS_R_D_UP)) {
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case '\n':
CleanUp;
Init;
@@ -830,14 +830,14 @@ U0 FlatTops()
break;
}
break;
case MSG_IP_L_UP:
SquadronSeté(0,a1,a2);
case MSG_MS_L_UP:
SquadronSeté(0,arg1,arg2);
break;
case MSG_IP_R_UP:
SquadronLaunch(0,a1,a2);
case MSG_MS_R_UP:
SquadronLaunch(0,arg1,arg2);
break;
case MSG_IP_R_D_UP:
SquadronReturn(0,a1,a2);
case MSG_MS_R_D_UP:
SquadronReturn(0,arg1,arg2);
break;
}
nv_done:
+7 -7
View File
@@ -76,7 +76,7 @@ U0 Init()
U0 Halogen()
{
I64 a1,a2,ch=0,sc=0;
I64 arg1,arg2,ch=0,sc=0;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
Fs->text_attr=BLACK<<4+WHITE;
MenuPush(
@@ -100,9 +100,9 @@ U0 Halogen()
Fs->draw_it=&DrawIt;
try {
while (TRUE) {
switch (ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP)) {
switch (ScanMsg(&arg1,&arg2,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP)) {
case MSG_KEY_DOWN:
ch=a1;sc=a2;
ch=arg1;sc=arg2;
switch (ch) {
case '\n':
Init;
@@ -113,7 +113,7 @@ U0 Halogen()
}
break;
case MSG_KEY_UP:
ch=a1;sc=a2;
ch=arg1;sc=arg2;
if (!ch)
switch (sc.u8[0]) {
case SC_CURSOR_RIGHT:
@@ -140,12 +140,12 @@ U0 Halogen()
break;
}
if (crash)
Snd(0);
Snd;
else {
if (speed)
Snd(speed+10);
Snd(Freq2Ona(speed+10));
else
Snd(0);
Snd;
UpdateRoad;
}
Sleep(10);
+10 -10
View File
@@ -99,7 +99,7 @@ U0 CleanUp()
U0 MassSpringDemo()
{
I64 msg_code,a1,a2;
I64 msg_code,arg1,arg2;
MyMass *tmpm1=NULL,*tmpm2=NULL;
PopUpOk("Left-Click to place mas\n"
@@ -130,23 +130,23 @@ U0 MassSpringDemo()
try {
while (TRUE) {
msg_code=GetMsg(&a1,&a2,
1<<MSG_IP_L_DOWN|1<<MSG_IP_R_DOWN|1<<MSG_IP_R_UP|1<<MSG_KEY_DOWN);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_DOWN|1<<MSG_MS_R_DOWN|1<<MSG_MS_R_UP|1<<MSG_KEY_DOWN);
switch (msg_code) {
case MSG_IP_L_DOWN:
PlaceMass(a1,a2);
case MSG_MS_L_DOWN:
PlaceMass(arg1,arg2);
break;
case MSG_IP_R_DOWN:
tmpm1=MassFind(ode,a1,a2);
case MSG_MS_R_DOWN:
tmpm1=MassFind(ode,arg1,arg2);
tmpm2=NULL;
break;
case MSG_IP_R_UP:
if (tmpm1 && (tmpm2=MassFind(ode,a1,a2)) && tmpm1!=tmpm2)
case MSG_MS_R_UP:
if (tmpm1 && (tmpm2=MassFind(ode,arg1,arg2)) && tmpm1!=tmpm2)
PlaceSpring(tmpm1,tmpm2);
tmpm1=tmpm2=NULL;
break;
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case '\n':
CleanUp;
Init;
+6 -7
View File
@@ -14,7 +14,7 @@ U0 DrawIt(CTask *task,CDC *)
// for (i=0;i<TEXT_COLS;i++)
// TextChar(task,,i,j,text[j][i]);
TextPrint(task,0,0,ATTR>>8,"Draw a maze with left button.");
TextPrint(task,0,0,ATTR>>8,"Draw a maze with left bttn.");
TextPrint(task,0,1,ATTR>>8,"Solve maze starting at right click.");
}
@@ -69,7 +69,7 @@ U0 SolveMaze(I64 x,I64 y)
if (stk_ptr==STK_SIZE) return;
Sleep(100);
if (ScanChar)
ThrowBreak; //<CTRL-ALT-c>
throw;
}
}
}
@@ -91,12 +91,11 @@ U0 Maze()
do {
MemSet(text,0,sizeof(text));
while (!(ch=ScanChar)) {
//Input Ptr (mouse) text x,y coordinates.
x=ip.pos_text.x-Fs->win_left-Fs->scroll_x/FONT_WIDTH;
y=ip.pos_text.y-Fs->win_top-Fs->scroll_y/FONT_HEIGHT;
if (ip.lb&&!winmgr.grab_scroll)
x=ms.pos_text.x-Fs->win_left-Fs->scroll_x/FONT_WIDTH;
y=ms.pos_text.y-Fs->win_top-Fs->scroll_y/FONT_HEIGHT;
if (ms.lb&&!winmgr.grab_scroll)
text[y][x]=CH_SPACE+ATTRF_INVERT+ATTR;
if (ip.rb&&!winmgr.grab_scroll) {
if (ms.rb&&!winmgr.grab_scroll) {
text[y][x]='*'+ATTR;
SolveMaze(x,y);
ch=GetChar;
+24 -24
View File
@@ -1,7 +1,7 @@
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
RegSetDftEntry("TempleOS/RawHide","F64 best_score=9999;\n");
RegExeBranch("TempleOS/RawHide");
RegDft("TempleOS/RawHide","F64 best_score=9999;\n");
RegExe("TempleOS/RawHide");
F64 t0,tf;
I64 outside_cnt;
@@ -230,19 +230,19 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY);
}
if (ip.pos.x-last_pos_x>0)
if (ms.pos.x-last_pos_x>0)
left=FALSE;
else if (ip.pos.x-last_pos_x<0)
else if (ms.pos.x-last_pos_x<0)
left=TRUE;
if (left) {
dc->flags|=DCF_JUST_MIRROR|DCF_SYMMETRY;
DCSymmetrySet(dc,ip.pos.x-task->pix_left-task->scroll_x,0,
ip.pos.x-task->pix_left-task->scroll_x,1);
DCSymmetrySet(dc,ms.pos.x-task->pix_left-task->scroll_x,0,
ms.pos.x-task->pix_left-task->scroll_x,1);
}
Sprite3(dc,ip.pos.x-task->pix_left-task->scroll_x,
ip.pos.y-task->pix_top -task->scroll_y,0,horse_imgs[frame&3]);
Sprite3(dc,ms.pos.x-task->pix_left-task->scroll_x,
ms.pos.y-task->pix_top -task->scroll_y,0,horse_imgs[frame&3]);
dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY);
last_pos_x=ip.pos.x;
last_pos_x=ms.pos.x;
if (tf) {
dc->color=RED;
@@ -336,8 +336,8 @@ U0 AnimateTask(CTask *parent)
max_speed=ClampU64(max_speed,MAX_U32/3,200*MAX_U32);
cx=(MAP_WIDTH -parent->pix_width)/2,
cy=(MAP_HEIGHT-parent->pix_height)/2;
cursor_x=ip.pos.x+cx-parent->pix_left-parent->scroll_x;
cursor_y=ip.pos.y+cy-parent->pix_top -parent->scroll_y;
cursor_x=ms.pos.x+cx-parent->pix_left-parent->scroll_x;
cursor_y=ms.pos.y+cy-parent->pix_top -parent->scroll_y;
cnt=0;stress=0;
my_outside_cnt=0;
if (cursor_x<FENCE_WIDTH && cursor_y<FENCE_HEIGHT)
@@ -422,10 +422,10 @@ U0 AnimateTask(CTask *parent)
if (!tf && !outside_cnt) {
tf=tS;
music.mute=TRUE;
Snd(2000);Sleep(200);Snd(0);Sleep(100);
Snd(86);Sleep(200);Snd;Sleep(100);
if (tf-t0<best_score) {
best_score=tf-t0;
Snd(2000);Sleep(200);Snd(0);Sleep(100);
Snd(86);Sleep(200);Snd;Sleep(100);
}
music.mute=FALSE;
}
@@ -451,10 +451,10 @@ U0 SongTask(I64)
Fs->task_end_cb=&SndTaskEndCB;
MusicSettingsRst;
while (TRUE) {
Play("3qC2etG3DCBDCECFqFCsADADqB");
Play("C2etG3DCBDCECFqFCsADADqB");
Play("2sG3A2G3AqG2etG3GDeBBqBFeBAqE");
Play("2sG3A2G3AqG2etG3GDeBBqBFeBAqE");
Play("5qC4etG5DC4B5DCECFqFC4sA5D4A5D4qB");
Play("5C4etG5DC4B5DCECFqFC4sA5D4A5D4qB");
Play("4sGAGA5qG4etG5GD4eBBqB5F4eBA5qE");
Play("4sGAGA5qG4etG5GD4eBBqB5F4eBA5qE");
}
}
@@ -528,7 +528,7 @@ U0 CleanUp()
U0 RawHide()
{
I64 msg_code,a1,a2;
I64 msg_code,arg1,arg2;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
MenuPush(
"File {"
@@ -559,15 +559,15 @@ U0 RawHide()
Fs->draw_it=&DrawIt;
try {
while (TRUE) {
msg_code=GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+1<<MSG_IP_R_DOWN);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+1<<MSG_MS_R_DOWN);
switch (msg_code) {
case MSG_IP_L_DOWN: //Doesn't do anything, yet.
case MSG_MS_L_DOWN: //Doesn't do anything, yet.
break;
case MSG_IP_R_DOWN: //Doesn't do anything, yet.
case MSG_MS_R_DOWN: //Doesn't do anything, yet.
break;
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case '\n':
ReInit;
break;
@@ -585,7 +585,7 @@ rh_done:
MenuPop;
SettingsPop;
CleanUp;
RegWriteBranch("TempleOS/RawHide","F64 best_score=%5.4f;\n",best_score);
RegWrite("TempleOS/RawHide","F64 best_score=%5.4f;\n",best_score);
}
RawHide;
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+153 -87
View File
@@ -1,7 +1,7 @@
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
RegSetDftEntry("TempleOS/Talons","F64 best_score=9999;\n");
RegExeBranch("TempleOS/Talons");
RegDft("TempleOS/Talons","F64 best_score=9999;\n");
RegExe("TempleOS/Talons");
//Keep these power of two so shift is used instead of multiply
//to index arrays.
@@ -18,27 +18,12 @@ RegExeBranch("TempleOS/Talons");
#define COORDINATE_BITS 8
#define WATER_ELEVATION 15
#define BIRD_ELEVATION 10
#define ROCK_ELEVATION 45
#define SNOW_ELEVATION 55
//Too big makes off-scrn draws take place.
#define MAX_PANEL_SIZE 16
@@ -59,12 +44,6 @@ RegExeBranch("TempleOS/Talons");
@@ -94,7 +73,6 @@ RegExeBranch("TempleOS/Talons");
$SP,"<3>",BI=3$
@@ -112,20 +90,6 @@ RegExeBranch("TempleOS/Talons");
@@ -149,6 +113,7 @@ RegExeBranch("TempleOS/Talons");
$SP,"<5>",BI=5$
@@ -164,6 +129,7 @@ RegExeBranch("TempleOS/Talons");
$SP,"<6>",BI=6$
@@ -172,20 +138,17 @@ RegExeBranch("TempleOS/Talons");
#define LS_TYPES 3
U8 *landscape_small_imgs[LS_TYPES]={$IB,"<4>",BI=4$,$IB,"<5>",BI=5$,$IB,"<6>",BI=6$},
*landscape_large_imgs[LS_TYPES];
#define B_NUM 256
class Bird
{
Bird *next,*last;
CD3I64 p;
F64 é;
} b_head[mp_cnt];
class Obj
{
@@ -218,9 +181,12 @@ class MPCtrl {
F64 game_t0,game_tf,pitch,roll,heading,è,speed;
Bool invert_pitch,rolled_over;
I64 strip_height,x,y,z,fish_left;
CD3 v;
U0 WrapAngles()
{
I64 r[4][4],x,y,z;
è=Wrap(è);
pitch=Wrap(-è-ã/2);
if (Abs(pitch)>ã/2) {
@@ -234,6 +200,17 @@ U0 WrapAngles()
else
rolled_over=TRUE;
heading=Wrap(heading,0);
//World to scrn coordinates
Mat4x4IdentEqu(r);
Mat4x4RotZ(r,heading);
Mat4x4RotX(r,è);
Mat4x4RotZ(r,roll);
//We use velocity vector for dog-fighting.
x=0x100000000*speed; y=0; z=0;
Mat4x4MulXYZ(r,&x,&y,&z);
v.x=x/ToF64(0x100000000); v.y=y/ToF64(0x100000000); v.z=z/ToF64(0x100000000);
}
U0 EDTransform(CDC *dc,I64 *x,I64 *y,I64 *z)
@@ -332,9 +309,9 @@ U0 MPDoPanels(CTask *task)
if (Rand<0.1) {
tmpo->fish=FALSE;
if (RandI16&1)
tmpo->img=$IB,"<2>",BI=2$; //Boat
tmpo->img=landscape_large_imgs[0]; //Boat
else
tmpo->img=$IB,"<3>",BI=3$; //Boat
tmpo->img=landscape_large_imgs[1]; //Boat
tmpo->p.z=(WATER_ELEVATION+2)*MAP_SCALE;
} else {
tmpo->fish=TRUE;
@@ -354,7 +331,7 @@ U0 MPDoPanels(CTask *task)
tmpo->p.x=(i+w/2)*MAP_SCALE;
tmpo->p.y=(j+h/2)*MAP_SCALE;
tmpo->p.z=l;
tmpo->img=$IB,"<4>",BI=4$; //Tree
tmpo->img=landscape_large_imgs[2]; //Tree
tmpo->fish=FALSE;
QueIns(tmpo,tmpp->last_obj);
}
@@ -476,8 +453,8 @@ F64 claws_down;
$SP,"<5>",BI=5$
$SP,"<6>",BI=6$
$SP,"<7>",BI=7$
$SP,"<8>",BI=8$
@@ -502,9 +479,9 @@ U0 ClawDraw(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2,I64 w,I64 segments,Bool talon)
}
if (talon) {
if (y1<y2)
Sprite3B(dc,x1,y1,0,$IB,"<5>",BI=5$);
Sprite3B(dc,x1,y1,0,$IB,"<7>",BI=7$);
else
Sprite3B(dc,x1,y1,0,$IB,"<6>",BI=6$);
Sprite3B(dc,x1,y1,0,$IB,"<8>",BI=8$);
}
}
@@ -534,7 +511,7 @@ U0 DrawIt(CTask *task,CDC *dc)
}
/*
$SP,"<7>",BI=7$
$SP,"<9>",BI=9$
@@ -553,7 +530,7 @@ $SP,"<7>",BI=7$
$SP,"<8>",BI=8$
$SP,"<10>",BI=10$
@@ -598,11 +575,10 @@ I64 update_jiffy_limit;
U0 MPDrawIt(CTask *task,CDC *dc)
{
I64 j,update=winmgr.updates&65535,strip_width,*s2w,x1,y1,z1,xx,yy,
xh,yh,zh,yh2,xh2,x1h,y1h,x1wa,y1wa,x1wb,y1wb,
x3,y3,z3,dd,dd_old,
cx=task->pix_width>>1,
cy=task->pix_height>>1;
xh,yh,zh,yh2,xh2,x1h,y1h,x1wa,y1wa,x1wb,y1wb,x3,y3,z3,dd,dd_old,
cx=task->pix_width>>1,cy=task->pix_height>>1,r[16],*elems1,*elems_hard;
Panel reg *tmpp;
Bird *tmpb;
Obj *tmpo;
Bool w_on_map,h_on_map;
@@ -733,6 +709,21 @@ U0 MPDrawIt(CTask *task,CDC *dc)
}
}
tmpb=b_head[Gs->num].next;
while (tmpb!=&b_head[Gs->num]) {
elems1=SpriteInterpolate(Tri(tS,0.2),$IB,"<2>",BI=2$,$IB,"<3>",BI=3$);
Mat4x4IdentEqu(r);
Mat4x4RotZ(r,tmpb->é);
elems_hard=SpriteTransform(elems1,r);
Sprite3(dc,tmpb->p.x,tmpb->p.y,tmpb->p.z,elems_hard);
Free(elems_hard);
Free(elems1);
tmpb=tmpb->next;
}
Free(s2w);
mp.strip_width[Gs->num]=strip_width;
LBtr(&mp.update_not_done_flags,Gs->num);
@@ -858,6 +849,7 @@ U0 DrawHorizon(CDC *dc)
DCFill(dc,LTCYAN); //Not correct.
}
}
dc->depth_buf=old_db;
}
@@ -969,9 +961,10 @@ Obj *FishFind(I64 x1,I64 y1,I64 *_dd)
U0 AnimateTask(I64)
{//Steadily moves the airplane fwd.
I64 *s2w,x1,y1,z1,dx,dy,dz,dd;
I64 i,*s2w,x1,y1,z1,dx,dy,dz,dd;
F64 t0=tS,ms,é,d;
Obj *tmpo;
Bird *tmpb;
while (TRUE) {
ms=1000*(tS-t0);
t0=tS;
@@ -1020,7 +1013,7 @@ U0 AnimateTask(I64)
QueRem(tmpo);
Free(tmpo);
music.mute=TRUE;
Snd(1000); Sleep(200); Snd(0);
Snd(74); Sleep(200); Snd;
music.mute=FALSE;
}
}
@@ -1034,6 +1027,18 @@ U0 AnimateTask(I64)
speed-=0.0001;
speed=Clamp(speed+(0.0005-0.0002*Abs(è)/(ã/4)),0.1,5.0);
}
for (i=0;i<mp_cnt;i++) {
tmpb=b_head[i].next;
while (tmpb!=&b_head[i]) {
tmpb->p.x+=10*ms/1000*MAP_SCALE*Cos(tmpb->é);
tmpb->p.y+=10*ms/1000*MAP_SCALE*Sin(tmpb->é);
tmpb->p.z=BIRD_ELEVATION*MAP_SCALE+
elevations[tmpb->p.y/MAP_SCALE][tmpb->p.x/MAP_SCALE];
tmpb->é+=2*ã*ms/1000/10;
tmpb=tmpb->next;
}
}
}
Refresh;
}
@@ -1060,16 +1065,34 @@ U0 SongTask(I64)
Fs->task_end_cb=&SndTaskEndCB;
MusicSettingsRst;
while (TRUE) {
Play("3eCGFsDAe.C2sG3eGDqCDeGsGG2qG");
Play("3eCGFsDAe.C2sG3eGDqCDeGsGG2qG");
Play("3eGECGCAFCsCBCBe.GsG2qG3B");
Play("eGECGCAFCsCBCBe.GsG2qG3B");
Play("5eCGFsD4A5e.C4sG5eGDqCDeGsGG4qG");
Play("5eCGFsD4A5e.C4sG5eGDqCDeGsGG4qG");
Play("5eGECGC4A5FCsC4B5C4B5e.GsG4qGB");
Play("5eGECGC4A5FCsC4B5C4B5e.GsG4qGB");
}
}
U0 PreInit()
{
I64 i,*r=Mat4x4IdentNew;
Mat4x4Scale(r,10.0);
for (i=0;i<LS_TYPES;i++)
landscape_large_imgs[i]=SpriteTransform(landscape_small_imgs[i],r);
Free(r);
}
U0 PostCleanUp()
{
I64 i;
for (i=0;i<LS_TYPES;i++)
Free(landscape_large_imgs[i]);
}
U0 Init()
{
I64 i,xx,yy;
Bird *tmpb;
main_dc=DCNew(GR_WIDTH,GR_HEIGHT);
critical_section_flag=0;
game_tf=0;
@@ -1096,6 +1119,19 @@ U0 Init()
yy=y/(MAP_SCALE*COORDINATE_SCALE);
z+=elevations[yy][xx]*COORDINATE_SCALE;
for (i=0;i<mp_cnt;i++)
QueInit(&b_head[i]);
for (i=0;i<B_NUM;i++) {
tmpb=MAlloc(sizeof(Bird));
tmpb->p.x=Rand*MAP_WIDTH*MAP_SCALE;
tmpb->p.y=Rand*MAP_HEIGHT*MAP_SCALE;
tmpb->p.z=BIRD_ELEVATION*MAP_SCALE+
elevations[tmpb->p.y/MAP_SCALE][tmpb->p.x/MAP_SCALE];
tmpb->é=2*ã*Rand;
QueIns(tmpb,b_head[i%mp_cnt].last);
}
for (i=1;i<mp_cnt;i++)
Spawn(&CoreAPTalonsTask,Fs,"AP Talons",i);
Fs->task_end_cb=&TaskEndCB;
@@ -1104,6 +1140,7 @@ U0 Init()
U0 CleanUp()
{
I64 i;
Panel *tmpp=panel_head,*tmpp1;
MPEnd;
while (tmpp) {
@@ -1113,6 +1150,10 @@ U0 CleanUp()
Free(tmpp);
tmpp=tmpp1;
}
for (i=0;i<mp_cnt;i++) {
QueDel(&b_head[i]);
QueInit(&b_head[i]);
}
DCDel(main_dc);
}
@@ -1140,6 +1181,7 @@ U0 Talons()
DocClear;
"Initializing...\n";
Fs->song_task=Spawn(&SongTask,NULL,"Song",,Fs);
PreInit;
Init;
Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
Fs->draw_it=&DrawIt;
@@ -1183,10 +1225,12 @@ U0 Talons()
PutExcept;
SettingsPop;
CleanUp;
RegWriteBranch("TempleOS/Talons","F64 best_score=%5.4f;\n",best_score);
PostCleanUp;
RegWrite("TempleOS/Talons","F64 best_score=%5.4f;\n",best_score);
MenuPop;
}
Seed(1);
Talons;
�
àÿÿÿýÿÿÿ
@@ -1196,30 +1240,38 @@ Talons;
&
 üÿÿÿ
üÿÿÿáÿÿÿ
���):_�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������½�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Line truncated
á˙˙˙) :_é˙˙˙ˇ‘˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙��˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated
Šë˙˙˙ý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated

  
    ␍ ␍   ␍    P
á>þÿÿÿÿÿáwÿÿÿXÿÿÿ ÿÿÿwÿÿÿ ÿÿÿ>þÿÿÿÿÿQ]ýÿÿQ2„®þÿÿ2®þÿÿ]ýÿÿ       öÿÿÿöÿÿÿ
öÿÿÿ
öÿÿÿ
öÿÿÿöÿÿÿÜ
öÿÿÿÜ
Üöÿÿÿ
Ü»þÿÿd000000000p¨ àÿÿÿàÿÿÿàÿÿÿ àÿÿÿÉàÿÿÿàÿÿÿÉ àÿÿÿ  Éàÿÿÿ É>àÿÿÿÉÁÿÿÿàÿÿÿÉ>àÿÿÿîÁÿÿÿàÿÿÿî> ÉÁÿÿÿ É> îÁÿÿÿ î]çÿÿÿDóÿÿÿ©p XW+L]ÏD Âp8qWDep%RW2Eƒv jƒp2wW>kƒƒEj�9ƒ}&j‰�¨␍vµƒ}?j‰3�¨&vµÁÿÿÿùÿÿÿ¨ÿÿÿ®ÿÿÿÁÿÿÿe•ÿÿÿÎÿÿÿeÁÿÿÿ¨ÿÿÿ ®ÿÿÿÚÿÿÿX•ÿÿÿçÿÿÿX®ÿÿÿÁÿÿÿe•ÿÿÿÎÿÿÿe¢ÿÿÿ•ÿÿÿ‰ÿÿÿ¢ÿÿÿ®ÿÿÿÚÿÿÿX•ÿÿÿçÿÿÿX¢ÿÿÿ®ÿÿÿ‰ÿÿÿ»ÿÿÿ¢ÿÿÿœÿÿÿ‰ÿÿÿ¨ÿÿÿœÿÿÿ‰ÿÿÿèƒÿÿÿ•ÿÿÿè¢ÿÿÿ¨ÿÿÿ‰ÿÿÿµÿÿÿœÿÿÿ•ÿÿÿÛƒÿÿÿ¢ÿÿÿÛ8çÿÿÿîóÿÿÿî2ÚÿÿÿŠ çÿÿÿŠ8 îî2Š Š2ÚÿÿÿŠ çÿÿÿŠ+Îÿÿÿ&Úÿÿÿ&2Š Š+óÿÿÿ&&+ÎÿÿÿÎÿÿÿ +ôÿÿÿùÿÿÿ+ôÿÿÿ+Îÿÿÿ,Îÿÿÿ, +ùÿÿÿ+íÿÿÿçÿÿÿîÇÿÿÿóÿÿÿáùÿÿÿùÿÿÿŠÔÿÿÿ}íÿÿÿ úÇÿÿÿîùÿÿÿ –Ôÿÿÿ+Šùÿÿÿùÿÿÿ�Ôÿÿÿùÿÿÿ„ùÿÿÿ,àÿÿÿùÿÿÿ ùÿÿÿ+�Ôÿÿÿ+„+,àÿÿÿ+ ùÿÿÿàÿÿÿWíÿÿÿdùÿÿÿ,àÿÿÿ,W,íÿÿÿd,000000000000 0 
    ␍ ␍   ␍    P
Óÿÿÿçÿÿÿ%çÿÿÿ;çÿÿÿéÿÿÿ%çÿÿÿéÿÿÿÓÿÿÿçÿÿÿ!¼ÿÿÿ!8YÞÿÿÿ8Þÿÿÿ¼ÿÿÿ       ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿÿÿÿ••ÿÿÿÿ•ßÿÿÿ 000000000p¨üÿÿÿ3üÿÿÿüÿÿÿ3üÿÿÿ-üÿÿÿüÿÿÿ-3üÿÿÿ3-üÿÿÿ-üÿÿÿ-ùÿÿÿüÿÿ��-üÿÿÿùÿÿÿüÿÿÿ-ùÿÿÿ-ùÿÿÿ ýÿÿÿ+þÿÿÿ* "! ., $# ! ␍ 
␍ %$␍␍
 ␍ 
␍ ␍
␍ ùÿÿÿÿÿÿÿ,÷ÿÿÿ,÷ÿÿÿùÿÿÿ#õÿÿÿûÿÿÿ#ùÿÿÿ+÷ÿÿÿ+÷ÿÿÿüÿÿÿ"õÿÿÿýÿÿÿ"÷ÿÿÿùÿÿÿ#õÿÿÿûÿÿÿ#öÿÿÿõÿÿÿôÿÿÿöÿÿÿ÷ÿÿÿüÿÿÿ"õÿÿÿýÿÿÿ"öÿÿÿ÷ÿÿÿôÿÿÿùÿÿÿöÿÿÿöÿÿÿôÿÿÿ÷ÿÿÿöÿÿÿôÿÿÿóÿÿÿõÿÿÿöÿÿÿ÷ÿÿÿôÿÿÿøÿÿÿöÿÿÿõÿÿÿóÿÿÿöÿÿÿýÿÿÿþÿÿÿüÿÿÿ␍ýÿÿÿ␍␍␍üÿÿÿ␍ýÿÿÿ␍ûÿÿÿüÿÿÿ␍␍þÿÿÿûÿÿÿûÿÿÿþÿÿÿÿÿÿÿþÿÿÿûÿÿÿûÿÿÿÿÿÿÿþÿÿÿýÿÿÿúÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ␍ûÿÿÿ þÿÿÿúÿÿÿÿÿÿÿûÿÿÿ␍ÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿ␍ÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿûÿÿÿ␍üÿÿÿÿÿÿÿüÿÿÿþÿÿÿ ÿÿÿÿüÿÿÿþÿÿÿ 000000000000 0 
0
0␍  0␍ 0  0 ␍ 0
 0 0
 0 
0 ␍ 0␍ 0 0 0 0 0 0 0 0 0 0 0 00000 0000 0000 0! "0"#!0%$&0&'%0! $0$%!0#"&0&'#0" $0$&"0#!%0%'# 0)(* 0*+) 0-,. 0./- 0)(, 0,-) 0+*. 0./+ 0*(, 0,.* 0+)- 0-/+010202310546067501040451032606730204046203150573098:0:;90=<>0>?=098<0<=90;:>0>?;0:8<0<>:0;9=0=?;0A@B0BCA0EDF0FGE0A@D0DEA0CBF0FGC0B@D0DFB0CAE0EGC0IHJ0JKI0MLN0NOM0IHL0LMI0KJN0NOK0JHL0LNJ0KIM0MOK0QPR0RSQ0UTV0VWU0QPT0TUQ0SRV0VWS0RPT0TVR0SQU0UWS0YXZ0Z[Y0]\^0^_]0YX\0\]Y0[Z^0^_[0ZX\0\^Z0[Y]0]_[0a`b0bca0edf0fge0a`d0dea0cbf0fgc0b`d0dfb0cae0egc0ihj0jki0mln0nom0ihl0lmi0kjn0nok0jhl0lnj0kim0mok!
>þÿÿàÿÿÿvàÿÿÿWÿÿÿvÿÿÿÿÿÿ>þÿÿÿÿÿÿÿÿ\ýÿÿP1Pƒ1®þÿÿ\ýÿÿ®þÿÿ      p¨~~ßÿÿÿ~Ê~ßÿÿÿÊ@@ßÿÿÿ@Ê@ßÿÿÿÊ~>Ê~ÁÿÿÿÊ~>î~Áÿÿÿî@>Ê@ÁÿÿÿÊ@>î@Áÿÿÿîw\jC©@pY3WM^\ÏQCÂ'prWf8pR,WEè‚ Üi,pw WkÜ‚EÏi9á‚'ÔiŽªuá‚@Ôi4Ž'ªueÁÿÿÿÂY¨ÿÿÿœ­ÿÿÿf�”ÿÿÿfLÁÿÿÿ@¨ÿÿÿƒ­ÿÿÿYw”ÿÿÿYœ­ÿÿÿf�”ÿÿÿfÉ¡ÿÿÿ½ˆÿÿÿƒ­ÿÿÿYw”ÿÿÿY°¡ÿÿÿ¤ˆÿÿÿ¡ÿÿÿµˆÿÿÿÖœÿÿÿéɃÿÿÿ鵡ÿÿÿ©ˆÿÿÿÉœÿÿÿܽƒÿÿÿÜw7õjõ�2‘ƒ ‘Q7éEéj2…^ …�2‘ƒ ‘©*-œ-j2…^ …ƒ*!w!©*␍©␍LïÿÿÿLøÿÿÿïÿÿÿ©*2©2LLøÿÿÿwìÿÿÿéjÆÿÿÿÜYøÿÿÿ…LÓÿÿÿxQìÿÿÿEÆÿÿÿõ3øÿÿÿž'Óÿÿÿ‘Yøÿÿÿ‘YÓÿÿÿ…Y-Yßÿÿÿ!'øÿÿÿ‘'Óÿÿÿ…'-'ßÿÿÿ!YLßÿÿÿúíìÿÿÿY-Lßÿÿÿ-ú-íìÿÿÿ- 
0 ␍ 0␍ 0 0 0 0 0 0 0 0 0 0 0 00000 0000 0000 0! "0"#!0%$&0&'%0! $0$%!0#"&0&'#0" $0$&"0#!%0%'# 0)(* 0*+) 0-,. 0./- 0)(, 0,-) 0+*. 0./+ 0*(, 0,.* 0+)- 0-/+010202310546067501040451032606730204046203150573098:0:;90=<>0>?=098<0<=90;:>0>?;0:8<0<>:0;9=0=?;0A@B0BCA0EDF0FGE0A@D0DEA0CBF0FGC0B@D0DFB0CAE0EGC0IHJ0JKI0MLN0NOM0IHL0LMI0KJN0NOK0JHL0LNJ0KIM0MOK0QPR0RSQ0UTV0VWU0QPT0TUQ0SRV0VWS0RPT0TVR0SQU0UWS0YXZ0Z[Y0]\^0^_]0YX\0\]Y0[Z^0^_[0ZX\0\^Z0[Y]0]_[0a`b0bca0edf0fge0a`d0dea0cbf0fgc0b`d0dfb0cae0egc0ihj0jki0mln0nom0ihl0lmi0kjn0nok0jhl0lnj0kim0mok!
Óÿÿÿçÿÿÿ%çÿÿÿ;çÿÿÿ%éÿÿÿçÿÿÿÓÿÿÿéÿÿÿçÿÿÿ¼ÿÿÿ!8!Y8Þÿÿÿ¼ÿÿÿÞÿÿÿ      p¨&3&üÿÿÿ3&-&üÿÿÿ- 3 üÿÿÿ3 - üÿÿÿ-&-&ùÿÿÿ-&&ùÿÿÿ - ùÿÿÿ-  ùÿÿÿ% +$* "!" .!, $# !  
 %$ 
 
  
 #ùÿÿÿ,"÷ÿÿÿ,)÷ÿÿÿ#'õÿÿÿ#!ùÿÿÿ+ ÷ÿÿÿ+&÷ÿÿÿ"%õÿÿÿ")÷ÿÿÿ#'õÿÿÿ#-öÿÿÿ,ôÿÿÿ&÷ÿÿÿ"%õÿÿÿ"+öÿÿÿ)ôÿÿÿ,öÿÿÿ+ôÿÿÿ.öÿÿÿ-óÿÿÿ+öÿÿÿ*ôÿÿÿ-öÿÿÿ,óÿÿÿ%$'&! $␍"␍'&*)$␍"␍&%**!þÿÿÿ!ÿÿÿÿþÿÿÿ**!!ÿÿÿÿ%þÿÿÿ$úÿÿÿ"ÿÿÿÿ␍!ûÿÿÿ !þÿÿÿ úÿÿÿÿÿÿÿûÿÿÿ"ÿÿÿÿ"ûÿÿÿ␍""üÿÿÿÿÿÿÿûÿÿÿ␍üÿÿÿ"!üÿÿÿþÿÿÿ"!üÿÿÿþÿÿÿ 

␍ ␍   ␍ 
 
  
 ␍␍    ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokp¨Âþÿÿ >Âþÿÿàÿÿÿ>Âþÿÿ Âþÿÿàÿÿÿƒþÿÿ >ƒþÿÿàÿÿÿ>ƒþÿÿ ƒþÿÿàÿÿÿÂþÿÿ>ÂþÿÿÁÿÿÿÂþÿÿ>%ÂþÿÿÁÿÿÿ%ƒþÿÿ>ƒþÿÿÁÿÿÿƒþÿÿ>%ƒþÿÿÁÿÿÿ%»þÿÿ]í¯þÿÿDáƒþÿÿp�wþÿÿWƒ¢þÿÿ]–þÿÿDújþÿÿp¨^þÿÿWœ}þÿÿp‰pþÿÿW},þÿÿƒW þÿÿjKpþÿÿp¯dþÿÿW¢ þÿÿƒ}þÿÿjp%þÿÿƒ]þÿÿjQúýÿÿ�Díýÿÿv8%þÿÿƒvþÿÿjjúýÿÿ�]íýÿÿvQ©þÿÿÁÿÿÿúœþÿÿ¨ÿÿÿúáþÿÿ®ÿÿÿœÔþÿÿ•ÿÿÿœ�þÿÿÁÿÿÿíƒþÿÿ¨ÿÿÿíÈþÿÿ®ÿÿÿ�»þÿÿ•ÿÿÿ�áþÿÿ®ÿÿÿœÔþÿÿ•ÿÿÿœ␍ÿÿÿ¢ÿÿÿKÿÿÿ‰ÿÿÿKÈþÿÿ®ÿÿÿ�»þÿÿ•ÿÿÿ�ôþÿÿ¢ÿÿÿ>çþÿÿ‰ÿÿÿ>ÿÿÿ¢ÿÿÿKúþÿÿ‰ÿÿÿKÿÿÿœÿÿÿ ␍ÿÿÿƒÿÿÿ úþÿÿ¢ÿÿÿ>íþÿÿ‰ÿÿÿ>␍ÿÿÿœÿÿÿÿÿÿƒÿÿÿ¯þÿÿ8 –þÿÿ KþÿÿW 2þÿÿ2 ¯þÿÿ8>–þÿÿ>KþÿÿW>2þÿÿ2>KþÿÿW 2þÿÿ2 çýÿÿv ÎýÿÿQ KþÿÿW>2þÿÿ2>çýÿÿv>ÎýÿÿQ>»ýÿÿp»ýÿÿK»ýÿÿ�d»ýÿÿjpáýÿÿpáýÿÿKáýÿÿ�dáýÿÿjpœþÿÿíÿÿÿ ©þÿÿÇÿÿÿ 8þÿÿÔÿÿÿ Eþÿÿ®ÿÿÿ œþÿÿíÿÿÿ>©þÿÿÇÿÿÿ>8þÿÿÔÿÿÿ>Eþÿÿ®ÿÿÿ>8þÿÿÔÿÿÿ Eþÿÿ®ÿÿÿ Ôýÿÿ»ÿÿÿ áýÿÿ•ÿÿÿ 8þÿÿÔÿÿÿ>Eþÿÿ®ÿÿÿ>Ôýÿÿ»ÿÿÿ>áýÿÿ•ÿÿÿ>»ýÿÿÁÿÿÿ»ýÿÿœÿÿÿ»ýÿÿ¢ÿÿÿv»ýÿÿ|ÿÿÿ]áýÿÿÁÿÿÿáýÿÿœÿÿÿáýÿÿ¢ÿÿÿváýÿÿ|ÿÿÿ]000000000000 0 
 ␍␍    ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokp¨àÿÿÿ àÿÿÿüÿÿÿ àÿÿÿàÿÿÿüÿÿÿÙÿÿÿ Ùÿÿÿüÿÿÿ ÙÿÿÿÙÿÿÿüÿÿÿàÿÿÿàÿÿÿùÿÿÿàÿÿÿàÿÿÿùÿÿÿÙÿÿÿÙÿÿÿùÿÿÿÙÿÿÿÙÿÿÿùÿÿÿßÿÿÿ ÞÿÿÿÙÿÿÿ Øÿÿÿ␍Ýÿÿÿ Ûÿÿÿ×ÿÿÿ ÖÿÿÿÙÿÿÿ ␍Øÿÿÿ Ñÿÿÿ␍Ïÿÿÿ
Øÿÿÿ ÖÿÿÿÏÿÿÿ␍ Îÿÿÿ
Ðÿÿÿ␍ Ïÿÿÿ
ÌÿÿÿÊÿÿÿ Ðÿÿÿ␍ Ïÿÿÿ
Ìÿÿÿ Êÿÿÿ ÝÿÿÿùÿÿÿÜÿÿÿ÷ÿÿÿãÿÿÿ÷ÿÿÿâÿÿÿõÿÿÿÛÿÿÿùÿÿÿÙÿÿÿ÷ÿÿÿàÿÿÿ÷ÿÿÿßÿÿÿõÿÿÿãÿÿÿ÷ÿÿÿâÿÿÿõÿÿÿçÿÿÿöÿÿÿæÿÿÿôÿÿÿàÿÿÿ÷ÿÿÿßÿÿÿõÿÿÿåÿÿÿöÿÿÿãÿÿÿôÿÿÿçÿÿÿöÿÿÿåÿÿÿôÿÿÿèÿÿÿöÿÿÿçÿÿÿóÿÿÿåÿÿÿöÿÿÿäÿÿÿôÿÿÿçÿÿÿöÿÿÿæÿÿÿóÿÿÿÞÿÿÿÛÿÿÿÔÿÿÿÑÿÿÿÞÿÿÿÛÿÿÿÔÿÿÿÑÿÿÿÔÿÿÿÑÿÿÿÊÿÿÿ ÇÿÿÿÔÿÿÿÑÿÿÿÊÿÿÿ ÇÿÿÿÅÿÿÿ ÅÿÿÿÅÿÿÿ Åÿÿÿ
Éÿÿÿ ÉÿÿÿÉÿÿÿ Éÿÿÿ
ÜÿÿÿþÿÿÿÝÿÿÿúÿÿÿÒÿÿÿûÿÿÿÓÿÿÿ÷ÿÿÿÜÿÿÿþÿÿÿÝÿÿÿúÿÿÿÒÿÿÿûÿÿÿÓÿÿÿ÷ÿÿÿÒÿÿÿûÿÿÿÓÿÿÿ÷ÿÿÿÈÿÿÿùÿÿÿÉÿÿÿõÿÿÿÒÿÿÿûÿÿÿÓÿÿÿ÷ÿÿÿÈÿÿÿùÿÿÿÉÿÿÿõÿÿÿÅÿÿÿùÿÿÿÅÿÿÿöÿÿÿÅÿÿÿöÿÿÿ Åÿÿÿòÿÿÿ ÉÿÿÿùÿÿÿÉÿÿÿöÿÿÿÉÿÿÿöÿÿÿ Éÿÿÿòÿÿÿ 000000000000 0 
0
0␍  0␍ 0  0 ␍ 0
 0 0
@@ -1248,4 +1300,18 @@ Talons;
0ZX\
0\^Z
0[Y]
0]_[0a`b0bca0edf0fge0a`d0dea0cbf0fgc0b`d0dfb0cae0egc0ihj0jki0mln0nom0ihl0lmi0kjn0nok0jhl0lnj0kim0mok
0]_[0a`b0bca0edf0fge0a`d0dea0cbf0fgc0b`d0dfb0cae0egc0ihj0jki0mln0nom0ihl0lmi0kjn0nok0jhl0lnj0kim0mokÂ(K
Köÿÿÿ-çÿÿÿûÿÿÿ�ÿÿÿnÎÿÿÿçÿÿÿÎÿÿÿûÿÿÿsn-K
Köÿÿÿ-çÿÿÿûÿÿÿ�ÿÿÿÎÿÿÿçÿÿÿÎÿÿÿûÿÿÿs-ÎÿÿÿÎÿÿÿÎÿÿÿÎÿÿÿçÿÿÿœÿÿÿÎÿÿÿœÿÿÿ2ÎÿÿÿÎÿÿÿçÿÿÿœÿÿÿÎÿÿÿœÿÿÿ20 0 0
0
0 0
0 0 0␍0␍ 00␍00000000000 0
0
0 0␍ 0␍000000000000Â(K
Köÿÿÿ-çÿÿÿûÿÿÿ�ÿÿÿ’ÿÿÿÎÿÿÿçÿÿÿÎÿÿÿûÿÿÿs’ÿÿÿ-K
Köÿÿÿ-çÿÿÿûÿÿÿ�ÿÿÿ£ÿÿÿÎÿÿÿçÿÿÿÎÿÿÿûÿÿÿs£ÿÿÿ-ÎÿÿÿÎÿÿÿÎÿÿÿÎÿÿÿçÿÿÿœÿÿÿÎÿÿÿœÿÿÿ2ÎÿÿÿÎÿÿÿçÿÿÿœÿÿÿÎÿÿÿœÿÿÿ20 0 0
0
0 0
0 0 0␍0␍ 00␍00000000000 0
0
0 0␍ 0␍000000000000
Binary file not shown.
+16 -16
View File
@@ -35,12 +35,12 @@ U0 DrawBoard(I64 player)
break;
}
//ip.pos.x,ip.pos.y are input pointer (mouse) x,y.
//ip.lb is mouse left button
//ms.pos.x,ms.pos.y are mouse x,y.
//ms.lb is mouse left bttn
if (player==1)
DrawX(dc,ip.pos.x-Fs->pix_left,ip.pos.y-Fs->pix_top);
DrawX(dc,ms.pos.x-Fs->pix_left,ms.pos.y-Fs->pix_top);
else
DrawO(dc,ip.pos.x-Fs->pix_left,ip.pos.y-Fs->pix_top);
DrawO(dc,ms.pos.x-Fs->pix_left,ms.pos.y-Fs->pix_top);
DCDel(dc);
}
@@ -49,19 +49,19 @@ U0 TakeTurn(I64 player)
I64 i,x=0,y=0;
while (!(100<=x<400) || !(100<=y<400) || board[i]) {
if (player==1)
Beep(500);
Beep;
else
Beep(1000);
while (!ip.lb) {
Beep(74);
while (!ms.lb) {
DrawBoard(player);
Refresh;
}
while (ip.lb) {
while (ms.lb) {
DrawBoard(player);
Refresh;
}
x=ip.pos.x-Fs->pix_left;
y=ip.pos.y-Fs->pix_top;
x=ms.pos.x-Fs->pix_left;
y=ms.pos.y-Fs->pix_top;
i=(x-100)/100+(y-100)/100*3;
}
board[i]=player;
@@ -91,18 +91,18 @@ U0 DoGame()
while (TRUE) {
TakeTurn(1);
if (CheckWinner(1)) {
Beep(500);
Beep(500);
Beep(500);
Beep;
Beep;
Beep;
break;
}
if (++moves==9) break;
TakeTurn(2);
if (CheckWinner(2)) {
Beep(1000);
Beep(1000);
Beep(1000);
Beep(74);
Beep(74);
Beep(74);
break;
}
if (++moves==9) break;
+12 -12
View File
@@ -123,7 +123,7 @@ U0 KillsChk(I64 x1,I64 y1,I64 player)
dd=SqrI64(x2-x1)+SqrI64(y2-y1);
if (dd<=(CIRCLE_RAD+2)*(CIRCLE_RAD+2)) {
u[i].alive=FALSE;
Snd(500);Sleep(100);Snd(0);Sleep(25);
Snd(62);Sleep(100);Snd;Sleep(25);
num_alive[u[i].player]--;
do {
found=FALSE;
@@ -132,7 +132,7 @@ U0 KillsChk(I64 x1,I64 y1,I64 player)
!u[u[j].link].alive) {
found=TRUE;
u[j].alive=FALSE;
Snd(500);Sleep(100);Snd(0);Sleep(25);
Snd(62);Sleep(100);Snd;Sleep(25);
num_alive[u[j].player]--;
}
} while (found);
@@ -283,7 +283,7 @@ U0 CleanUp()
U0 TreeCheckers()
{
I64 msg_code,a1,a2,ch,sc;
I64 msg_code,arg1,arg2,ch,sc;
Unit *tmpu;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -311,11 +311,11 @@ cn_start:
show_start=FALSE;
Fs->draw_it=&DrawIt;
while (TRUE) {
msg_code=GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
switch (msg_code) {
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case '\n':
CleanUp;
goto cn_start;
@@ -324,20 +324,20 @@ cn_start:
goto cn_done;
}
break;
case MSG_IP_L_DOWN:
case MSG_MS_L_DOWN:
if (num_alive[0]>1 && num_alive[1]>1) {
tmpu=UnitFind(a1,a2,cur_player);
tmpu=UnitFind(arg1,arg2,cur_player);
end_x=start_x=tmpu->x;
end_y=start_y=tmpu->y;
show_start=TRUE;
}
break;
case MSG_IP_MOVE:
case MSG_MS_MOVE:
if (tmpu)
UnitMove(tmpu,a1,a2);
UnitMove(tmpu,arg1,arg2);
break;
case MSG_IP_L_UP:
UnitMove(tmpu,a1,a2);
case MSG_MS_L_UP:
UnitMove(tmpu,arg1,arg2);
KillsChk(tmpu->x,tmpu->y,cur_player);
show_start=FALSE;
tmpu=NULL;
+7 -7
View File
@@ -87,8 +87,8 @@
RegSetDftEntry("TempleOS/Varoom","F64 best_score=9999;\n");
RegExeBranch("TempleOS/Varoom");
RegDft("TempleOS/Varoom","F64 best_score=9999;\n");
RegExe("TempleOS/Varoom");
F64 distance,t0,tf;
Bool game_over;
@@ -468,7 +468,7 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->x=task->pix_width>>1;
dc->y=task->pix_height-150;
dc->z=GR_Z_ALL;
SpriteMat3B(dc,0,0,-100,c[0].img,r);
Sprite3Mat4x4B(dc,0,0,-100,c[0].img,r);
//Map
GrBlot(dc,w-track_map->width,h-track_map->height,track_map);
@@ -509,9 +509,9 @@ U0 AnimateTask(I64)
Track *tmpt,*tmpt2;
while (TRUE) {
if (!game_over)
Snd(0.01*c[0].speed*3+10);
Snd(12.0*Log2(c[0].speed/500+0.7));
else
Snd(0);
Snd;
for (i=0;i<NUM_CARS;i++) {
tmpc=&c[i];
tmpc->p.x-=0.01*tmpc->speed*Cos(tmpc->é-ã/2);
@@ -542,7 +542,7 @@ U0 AnimateTask(I64)
for (i=1;i<NUM_CARS;i++)
if (D3I32DistSqr(&c[i].p,&c[0].p)<CAR_LENGTH>>1*CAR_LENGTH>>1) {
game_over=TRUE;
Noise(500,50,100);
Noise(500,22,34);
Sleep(500);
break;
}
@@ -697,7 +697,7 @@ vr_done: //Don't goto out of try
CleanUp;
SettingsPop;
MenuPop;
RegWriteBranch("TempleOS/Varoom","F64 best_score=%5.4f;\n",best_score);
RegWrite("TempleOS/Varoom","F64 best_score=%5.4f;\n",best_score);
}
Varoom;
+12 -12
View File
@@ -1,5 +1,5 @@
RegSetDftEntry("TempleOS/Wenceslas","F64 best_score=9999;\n");
RegExeBranch("TempleOS/Wenceslas");
RegDft("TempleOS/Wenceslas","F64 best_score=9999;\n");
RegExe("TempleOS/Wenceslas");
#define BORDER 5
#define KING_STEP 6
@@ -177,12 +177,12 @@ U0 DrawIt(CTask *task,CDC *dc)
Mat4x4RotY(r,tmpp->é+ã/2);
Mat4x4RotX(r,ã/6);
if (tmpp->stopped)
SpriteMat3B(dc,tmpp->x,tmpp->y,GR_Z_ALL,peasant_imgs[0],r);
Sprite3Mat4x4B(dc,tmpp->x,tmpp->y,GR_Z_ALL,peasant_imgs[0],r);
else {
tmps=SpriteInterpolate(Saw(animate_mS/250.0,1.0),
peasant_imgs[ animate_phase &3],
peasant_imgs[(animate_phase+1)&3]);
SpriteMat3B(dc,tmpp->x,tmpp->y,GR_Z_ALL,tmps,r);
Sprite3Mat4x4B(dc,tmpp->x,tmpp->y,GR_Z_ALL,tmps,r);
Free(tmps);
}
tmpp=tmpp->next;
@@ -193,12 +193,12 @@ U0 DrawIt(CTask *task,CDC *dc)
Mat4x4RotY(r,king_é+ã/2);
Mat4x4RotX(r,ã/6);
if (tS>king_timeout)
SpriteMat3B(dc,king_x,king_y,GR_Z_ALL,king_imgs[0],r);
Sprite3Mat4x4B(dc,king_x,king_y,GR_Z_ALL,king_imgs[0],r);
else {
tmps=SpriteInterpolate(Saw(king_mS/250.0,1.0),
king_imgs[ king_phase &3],
king_imgs[(king_phase+1)&3]);
SpriteMat3B(dc,king_x,king_y,GR_Z_ALL,tmps,r);
Sprite3Mat4x4B(dc,king_x,king_y,GR_Z_ALL,tmps,r);
Free(tmps);
}
@@ -396,10 +396,10 @@ U0 AnimateTask(I64)
if (!not_stopped_cnt && !tf) {
tf=tS;
music.mute=TRUE;
Snd(2000);Sleep(200);Snd(0);Sleep(100);
Snd(86);Sleep(200);Snd;Sleep(100);
if (tf-t0<best_score) {
best_score=tf-t0;
Snd(2000);Sleep(200);Snd(0);Sleep(100);
Snd(86);Sleep(200);Snd;Sleep(100);
}
music.mute=FALSE;
}
@@ -441,9 +441,9 @@ U0 SongTask(I64)
music.tempo= 2.480;
music.stacatto_factor= 0.902;
while (TRUE) {
Play("3eCCCDCC2qG3eA2G3ABqCC");
Play("eCCCDCC2qG3eA2G3ABqCC");
Play("eGFEDEDqCeA2G3ABqCC");
Play("5eCCCDCC4qGeAGAB5qCC");
Play("5eCCCDCC4qGeAGAB5qCC");
Play("5eGFEDEDqC4eAGAB5qCC");
}
}
@@ -586,7 +586,7 @@ ws_done:
SettingsPop;
MenuPop;
CleanUp;
RegWriteBranch("TempleOS/Wenceslas","F64 best_score=%5.4f;\n",best_score);
RegWrite("TempleOS/Wenceslas","F64 best_score=%5.4f;\n",best_score);
}
Wenceslas;
+9 -9
View File
@@ -23,8 +23,8 @@ U0 DrawIt(CTask *task,CDC *dc)
GrRect(dc,cx-BASE_SIZE+2,cy-BASE_SIZE+2,BASE_SIZE*2-4,BASE_SIZE*2-4);
dc->color=YELLOW;
GrLine(dc,balls[0].x,balls[0].y,
ip.pos.x-task->pix_left-task->scroll_x,
ip.pos.y-task->pix_top-task->scroll_y);
ms.pos.x-task->pix_left-task->scroll_x,
ms.pos.y-task->pix_top-task->scroll_y);
for (i=0;i<NUM_SPRINGS;i++)
GrLine(dc,springs[i].end1->x,springs[i].end1->y,
springs[i].end2->x,springs[i].end2->y);
@@ -46,9 +46,9 @@ U0 DrawIt(CTask *task,CDC *dc)
GrCircle(dc,balls[i].x,balls[i].y,BALL_RADIUS);
}
if (snd_on)
Snd(1000);
Snd(74);
else
Snd(0);
Snd;
}
U0 MyDerivative(CMathODE *ode,F64 t,COrder2D3 *,COrder2D3 *)
@@ -59,8 +59,8 @@ U0 MyDerivative(CMathODE *ode,F64 t,COrder2D3 *,COrder2D3 *)
CTask *task=ode->win_task;
D3SubEqu(D3Equ(&p2,
ip.pos.x-task->pix_left-task->scroll_x,
ip.pos.y-task->pix_top-task->scroll_y,0),
ms.pos.x-task->pix_left-task->scroll_x,
ms.pos.y-task->pix_top-task->scroll_y,0),
&balls[0].state->x);
D3AddEqu(&balls[0].DstateDt->DxDt,D3MulEqu(&p2,STRETCH));
@@ -80,7 +80,7 @@ U0 MyDerivative(CMathODE *ode,F64 t,COrder2D3 *,COrder2D3 *)
dd=D3NormSqr(&p);
if (dd<=(2*BALL_RADIUS)*(2*BALL_RADIUS)) {
if (t-collision_t>0.05) {
Noise(50,5000,6000);
Noise(50,102,105);
collision_t=t;
}
d=Sqrt(dd)+0.0001;
@@ -129,8 +129,8 @@ U0 Whap()
for (i=1;i<NUM_BALLS;i++)
D3Equ(&balls[i].x,
RandI16%500+Fs->pix_width>>1,RandI16%500+Fs->pix_height>>1,0);
balls[0].x=ip.pos.x-Fs->pix_left-Fs->scroll_x;
balls[0].y=ip.pos.y-Fs->pix_top-Fs->scroll_y;
balls[0].x=ms.pos.x-Fs->pix_left-Fs->scroll_x;
balls[0].y=ms.pos.y-Fs->pix_top-Fs->scroll_y;
for (i=0;i<NUM_BALLS;i++) {
balls[i].mass=1.0;
balls[i].drag_profile_factor=1.0;
Binary file not shown.
Binary file not shown.
+4 -4
View File
@@ -9,12 +9,12 @@ U0 Main()
while (!ScanChar) {
DCDepthBufRst(dc);
DCSymmetrySet(dc,Fs->pix_width/2,Fs->pix_height/2,
ip.pos.x-Fs->pix_left-Fs->scroll_x,
ip.pos.y-Fs->pix_top-Fs->scroll_y);
ms.pos.x-Fs->pix_left-Fs->scroll_x,
ms.pos.y-Fs->pix_top-Fs->scroll_y);
dc->color=LTBLUE;
GrLine(dc,Fs->pix_width/2,Fs->pix_height/2,
ip.pos.x-Fs->pix_left-Fs->scroll_x,
ip.pos.y-Fs->pix_top-Fs->scroll_y);
ms.pos.x-Fs->pix_left-Fs->scroll_x,
ms.pos.y-Fs->pix_top-Fs->scroll_y);
Mat4x4IdentEqu(dc->r);
Mat4x4RotX(dc->r,ê);
+6 -6
View File
@@ -3,7 +3,7 @@
U0 BSplineDemo()
{
CDC *dc=DCAlias;
I64 a1,a2,i=0,msg_code;
I64 arg1,arg2,i=0,msg_code;
CD3I32 c[MAX_PTS];
SettingsPush;
@@ -13,14 +13,14 @@ U0 BSplineDemo()
"Sel ctrl points with left mouse. Right when finished.\n";
DCFill;
do {
msg_code=GetMsg(&a1,&a2,1<<MSG_IP_L_UP+1<<MSG_IP_R_UP);
if (msg_code==MSG_IP_L_UP) {
c[i].x=a1; c[i].y=a2; c[i].z=0;
msg_code=GetMsg(&arg1,&arg2,1<<MSG_MS_L_UP+1<<MSG_MS_R_UP);
if (msg_code==MSG_MS_L_UP) {
c[i].x=arg1; c[i].y=arg2; c[i].z=0;
dc->color=GREEN;
GrCircle(dc,a1,a2,10);
GrCircle(dc,arg1,arg2,10);
i++;
}
} while (i<MAX_PTS && msg_code!=MSG_IP_R_UP);
} while (i<MAX_PTS && msg_code!=MSG_MS_R_UP);
dc->color=RED;
Gr2BSpline(dc,c,i,TRUE);
dc->color=BLUE;
+1 -1
View File
@@ -24,7 +24,7 @@ U0 Balloon()
for (j=0;j<3;j++)
*(text.vga_alias(I64)+0x1000+(i+k)*640/8+j)(U8 *)=a[i*3+j];
BusyWait(40000);
Busy(40000);
for (i=0;i<20;i++)
for (j=0;j<3;j++)
Binary file not shown.
Binary file not shown.
+12 -11
View File
@@ -2,7 +2,7 @@
U0 Doodle()
{
I64 msg_code,i,x1,y1,x2,y2,a1,a2,color=BLACK;
I64 msg_code,i,x1,y1,x2,y2,arg1,arg2,color=BLACK;
CDC *dc=DCAlias;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -14,30 +14,31 @@ U0 Doodle()
DocClear;
DCFill;
do {
msg_code=GetMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+1<<MSG_IP_R_UP);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+1<<MSG_MS_R_UP);
switch (msg_code) {
case MSG_IP_R_UP:
case MSG_MS_R_UP:
i=PopUpColor;
if (i>=0) color=i;
break;
case MSG_IP_L_DOWN:
x1=a1; y1=a2;
x2=a1; y2=a2;
case MSG_MS_L_DOWN:
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
dc->color=ROP_XOR+color^TRANSPARENT;
dc->pen_width=7;
while (msg_code!=MSG_IP_L_UP) {
while (msg_code!=MSG_MS_L_UP) {
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&a1,&a2,
1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
GrLine3(dc,x1,y1,0,x2,y2,0);
x2=a1; y2=a2;
x2=arg1; y2=arg2;
}
GrLine3(dc,x1,y1,0,x2,y2,0);
break;
case MSG_KEY_DOWN:
break;
}
} while (msg_code!=MSG_KEY_DOWN || !a1);
} while (msg_code!=MSG_KEY_DOWN || !arg1);
GetMsg(,,1<<MSG_KEY_UP);
DCFill;
DCDel(dc);
Binary file not shown.
+16 -16
View File
@@ -60,7 +60,7 @@ U0 FESave(Bool pmt)
I64 i;
for (i=0;i<256;i++) {
DocPrint(doc,"0x%016X,",text.font[i]);
if (Bt(chars_bmp_safe_dollar,i))
if (Bt(char_bmp_safe_dollar,i))
DocPrint(doc,"//%c",i);
else if (i=='$$')
DocPrint(doc,"//$$$$",i);
@@ -74,7 +74,7 @@ U0 FESave(Bool pmt)
U0 FontEd()
{
I64 msg_code,a1,a2,k;
I64 msg_code,arg1,arg2,k;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
MenuPush(
"File {"
@@ -90,12 +90,12 @@ U0 FontEd()
try {
Fs->draw_it=&DrawIt;
while (TRUE) {
switch (msg_code=GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN|1<<MSG_IP_R_DOWN|1<<MSG_IP_MOVE)) {
switch (msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN|1<<MSG_MS_L_DOWN|1<<MSG_MS_R_DOWN|1<<MSG_MS_MOVE)) {
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case 0:
switch (a2.u8[0]) {
switch (arg2.u8[0]) {
case SC_CURSOR_LEFT:
cur_ch--;
break;
@@ -120,22 +120,22 @@ U0 FontEd()
case CH_SHIFT_ESC:
goto fe_done;
default:
cur_ch=a1;
cur_ch=arg1;
}
break;
case MSG_IP_L_DOWN:
case MSG_IP_R_DOWN:
if (0<=a1<FONT_WIDTH*16 && FONT_HEIGHT*2<=a2<FONT_HEIGHT*16) {
cur_ch=(a2/FONT_HEIGHT-2)*16+a1/FONT_WIDTH;
case MSG_MS_L_DOWN:
case MSG_MS_R_DOWN:
if (0<=arg1<FONT_WIDTH*16 && FONT_HEIGHT*2<=arg2<FONT_HEIGHT*16) {
cur_ch=(arg2/FONT_HEIGHT-2)*16+arg1/FONT_WIDTH;
break;
} //fall through
case MSG_IP_MOVE:
k=((a2-BLOW_UP_CHAR_Y)/FONT_HEIGHT)*FONT_WIDTH+
(a1-BLOW_UP_CHAR_X)/FONT_WIDTH;
case MSG_MS_MOVE:
k=((arg2-BLOW_UP_CHAR_Y)/FONT_HEIGHT)*FONT_WIDTH+
(arg1-BLOW_UP_CHAR_X)/FONT_WIDTH;
if (0<=k<FONT_WIDTH*FONT_HEIGHT) {
if (ip.lb||msg_code==MSG_IP_L_DOWN)
if (ms.lb||msg_code==MSG_MS_L_DOWN)
Bts(&text.font[cur_ch],k);
if (ip.rb||msg_code==MSG_IP_R_DOWN)
if (ms.rb||msg_code==MSG_MS_R_DOWN)
Btr(&text.font[cur_ch],k);
}
break;
+12 -12
View File
@@ -1,6 +1,6 @@
#define GRID 5
U0 DrawMyInputPtr(CDC *dc,I64 x,I64 y)
U0 DrawMyMs(CDC *dc,I64 x,I64 y)
{
dc->pen_width=1;
dc->flags&=~(DCF_TRANSFORMATION|DCF_SYMMETRY);
@@ -10,21 +10,21 @@ U0 DrawMyInputPtr(CDC *dc,I64 x,I64 y)
U0 GridDemo()
{
CGridGlbls old_grid;
U0 (*old_draw_input_ptr)(CDC *dc,I64 x,I64 y); //Can't init this type of var.
MemCpy(&old_grid,&ip_grid,sizeof(CGridGlbls));
U0 (*old_draw_ms)(CDC *dc,I64 x,I64 y); //Can't init this type of var.
MemCpy(&old_grid,&ms_grid,sizeof(CGridGlbls));
GridInit;
ip_grid.snap=TRUE; //You can set other $LK,"stuff",A="MN:CGridGlbls"$.
ip_grid.x=GRID;
ip_grid.y=GRID;
old_draw_input_ptr=gr.fp_draw_input_ptr;
gr.fp_draw_input_ptr=&DrawMyInputPtr;
while (!ip.lb) {//Left button to exit.
GrPlot(,ip.pos.x,ip.pos.y);
ms_grid.snap=TRUE; //You can set other $LK,"stuff",A="MN:CGridGlbls"$.
ms_grid.x=GRID;
ms_grid.y=GRID;
old_draw_ms=gr.fp_draw_ms;
gr.fp_draw_ms=&DrawMyMs;
while (!ms.lb) {//Left bttn to exit.
GrPlot(,ms.pos.x,ms.pos.y);
Yield;
}
DCFill;
gr.fp_draw_input_ptr=old_draw_input_ptr;
MemCpy(&ip_grid,&old_grid,sizeof(CGridGlbls));
gr.fp_draw_ms=old_draw_ms;
MemCpy(&ms_grid,&old_grid,sizeof(CGridGlbls));
}
GridDemo;
+1 -1
View File
@@ -77,7 +77,7 @@ U0 DrawIt(CTask *task,CDC *dc)
U0 MySleep()
{
if (ScanChar)
ThrowBreak;
throw;
Sleep(3);
}
-11
View File
@@ -1,11 +0,0 @@
U0 InputPointer()
{
"Press left mouse button to exit.\n";
while (!ip.lb) { //Left button to exit.
GrPlot(,ip.pos.x,ip.pos.y);
Refresh;
}
DCFill;
}
InputPointer;
+16 -16
View File
@@ -135,7 +135,7 @@ U0 SetMenu()
U0 Lattice()
{
Bool aim=FALSE;
I64 a1,a2;
I64 arg1,arg2;
CDC *dc=DCAlias;
DCDepthBufAlloc(dc);
MenuPush(
@@ -181,29 +181,29 @@ U0 Lattice()
Fs->draw_it=&DrawIt;
try {
while (TRUE) {
switch (GetMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN|
1<<MSG_IP_R_DOWN|1<<MSG_IP_R_UP|1<<MSG_IP_MOVE)) {
case MSG_IP_L_DOWN:
switch (GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN|1<<MSG_MS_L_DOWN|
1<<MSG_MS_R_DOWN|1<<MSG_MS_R_UP|1<<MSG_MS_MOVE)) {
case MSG_MS_L_DOWN:
tt.first=TRUE;
tt.x=a1;
tt.y=a2;
tt.x=arg1;
tt.y=arg2;
break;
case MSG_IP_R_DOWN:
case MSG_MS_R_DOWN:
aim=TRUE;
tt.é=Arg(a1-tt.x,a2-tt.y);
tt.é=Arg(arg1-tt.x,arg2-tt.y);
break;
case MSG_IP_MOVE:
case MSG_MS_MOVE:
if (aim)
tt.é=Arg(a1-tt.x,a2-tt.y);
tt.é=Arg(arg1-tt.x,arg2-tt.y);
break;
case MSG_IP_R_UP:
tt.é=Arg(a1-tt.x,a2-tt.y);
case MSG_MS_R_UP:
tt.é=Arg(arg1-tt.x,arg2-tt.y);
aim=FALSE;
break;
case MSG_KEY_DOWN:
switch (a1) {
switch (arg1) {
case 0:
switch (a2.u8[0]) {
switch (arg2.u8[0]) {
case SC_CURSOR_LEFT:
if (tt.dé_idx)
tt.dé_idx--;
@@ -222,11 +222,11 @@ U0 Lattice()
}
break;
case '0'...'9':
tt.z=a1-'0';
tt.z=arg1-'0';
SetMenu;
break;
case 'c':
tt.middle=PopUpColor("Middle Color\n\n");
tt.middle=PopUpColor("Mid Color\n\n");
tt.edge =PopUpColor("Edge Color\n\n");
break;
case 'e':
+10 -10
View File
@@ -48,7 +48,7 @@ start_over:
public U0 Life()
{
I64 msg_code,cnt,x1,y1,x2,y2,a1,a2;
I64 msg_code,cnt,x1,y1,x2,y2,arg1,arg2;
dc[0]=DCNew(GR_WIDTH,GR_HEIGHT);
dc[1]=DCNew(GR_WIDTH,GR_HEIGHT);
@@ -66,28 +66,28 @@ public U0 Life()
Fs->draw_it=&DrawIt;
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
do {
msg_code=GetMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN);
msg_code=GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN);
switch (msg_code) {
case MSG_IP_L_DOWN:
x1=a1; y1=a2;
x2=a1; y2=a2;
case MSG_MS_L_DOWN:
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
cnt=0;
while (msg_code!=MSG_IP_L_UP) {
while (msg_code!=MSG_MS_L_UP) {
restart=TRUE;
dc[cur_dc]->color=GREEN;
dc[cur_dc]->pen_width=0.04*ip.speed;
dc[cur_dc]->pen_width=0.04*ms.speed;
GrLine3(dc[cur_dc],x1,y1,0,x2,y2,0);
restart=TRUE;
msg_code=GetMsg(&a1,&a2,1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
x1=x2; y1=y2;
x2=a1; y2=a2;
x2=arg1; y2=arg2;
}
GrLine3(dc[cur_dc],x1,y1,0,x2,y2,0);
break;
case MSG_KEY_DOWN:
break;
}
} while (msg_code!=MSG_KEY_DOWN || !a1);
} while (msg_code!=MSG_KEY_DOWN || !arg1);
GetMsg(,,1<<MSG_KEY_UP);
SettingsPop;
DCFill;
Binary file not shown.
+11
View File
@@ -0,0 +1,11 @@
U0 Mouse()
{
"Press left mouse bttn to exit.\n";
while (!ms.lb) { //Left bttn to exit.
GrPlot(,ms.pos.x,ms.pos.y);
Refresh;
}
DCFill;
}
Mouse;
Binary file not shown.
Binary file not shown.
+21 -20
View File
@@ -37,7 +37,7 @@ F64 F(Complex *x)
CDiv(&n1,&num,&denom);
R2P(&m,&a,n1.x,n1.y);
if (ip.rb)
if (ms.rb)
return ã+a;
else
return m;
@@ -65,7 +65,7 @@ F64 MPDraw(CTask *task)
U0 Draw()
{
CSrvCmd *tmpm[MP_MAX_PROCESSORS];
CJob *tmpm[MP_MAX_PROCESSORS];
F64 y_total,old_y_total=MAX_F64;
I64 i,w=Fs->pix_width,h=Fs->pix_height,cx=w/2,cy=h/2;
CDC *dc=DCAlias;
@@ -94,7 +94,7 @@ U0 Draw()
U0 PoleZeros()
{
I64 msg_code,a1,a2,p11,p22,cx,cy;
I64 msg_code,arg1,arg2,p11,p22,cx,cy;
Complex *tmpc=NULL;
PopUpOk(
@@ -118,24 +118,25 @@ U0 PoleZeros()
try {
Draw;
while (TRUE) {
msg_code=GetMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+
1<<MSG_IP_L_UP+1<<MSG_IP_R_DOWN+1<<MSG_IP_R_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+
1<<MSG_MS_L_UP+1<<MSG_MS_R_DOWN+1<<MSG_MS_R_UP+1<<MSG_MS_MOVE);
pz_msg:
cx=Fs->pix_width/2;
cy=Fs->pix_height/2;
switch (msg_code) {
case MSG_IP_L_DOWN:
tmpc=PoleZeroFind(a1-cx,cy-a2);
case MSG_MS_L_DOWN:
tmpc=PoleZeroFind(arg1-cx,cy-arg2);
break;
case MSG_IP_MOVE:
case MSG_MS_MOVE:
if (tmpc) {
p11=a1;p22=a2;
p11=arg1;p22=arg2;
//get to last mouse move
while (msg_code=ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+
1<<MSG_IP_L_UP+1<<MSG_IP_R_DOWN+
1<<MSG_IP_R_UP+1<<MSG_IP_MOVE))
if (msg_code==MSG_IP_MOVE) {
p11=a1;p22=a2;
while (msg_code=ScanMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+
1<<MSG_MS_L_UP+1<<MSG_MS_R_DOWN+
1<<MSG_MS_R_UP+1<<MSG_MS_MOVE))
if (msg_code==MSG_MS_MOVE) {
p11=arg1;p22=arg2;
} else
goto pz_msg;
@@ -144,20 +145,20 @@ pz_msg:
Draw;
}
break;
case MSG_IP_L_UP:
case MSG_MS_L_UP:
if (tmpc) {
tmpc->x=a1-cx;
tmpc->y=cy-a2;
tmpc->x=arg1-cx;
tmpc->y=cy-arg2;
tmpc=NULL;
Draw;
}
break;
case MSG_IP_R_DOWN:
case MSG_IP_R_UP:
case MSG_MS_R_DOWN:
case MSG_MS_R_UP:
Draw;
break;
case MSG_KEY_DOWN:
if (a1==CH_SHIFT_ESC||a1==CH_ESC)
if (arg1==CH_SHIFT_ESC||arg1==CH_ESC)
goto pz_done;
}
Refresh;
+2 -13
View File
@@ -1,24 +1,13 @@
//See $LK,"::/Demo/Games/Stadium/StadiumGen.HC"$.
U0 ViewScrnCapture(U8 *filename)
{
CDC *dc=DCAlias(,Fs),
*dc2=GRRead(filename);
GrBlot(dc,0,0,dc2);
DCDel(dc2);
DCDel(dc);
}
U0 Main()
{
"Capture scrn...\n";
PressAKey;
GRScrnCapture("~/DemoScrnShot");
GRScrnCaptureWrite("~/DemoScrnShot");
"View captured scrn...\n";
PressAKey;
ViewScrnCapture("~/DemoScrnShot");
GRScrnCaptureRead("~/DemoScrnShot");
PressAKey;
DCFill;
}
+2 -2
View File
@@ -72,8 +72,8 @@ U0 DrawIt(CTask *task,CDC *dc)
Mat4x4Scale(dc->r,tt);
DCMat4x4Set(dc,dc->r);
ls.x=-(ip.pos.x-task->pix_left-task->scroll_x-cx);
ls.y=-(ip.pos.y-task->pix_top-task->scroll_y-cy);
ls.x=-(ms.pos.x-task->pix_left-task->scroll_x-cx);
ls.y=-(ms.pos.y-task->pix_top-task->scroll_y-cy);
ls.z=GR_WIDTH/8;
d=1<<16/D3I32Norm(&ls);
ls.x*=d;
Binary file not shown.
+1 -1
View File
@@ -75,7 +75,7 @@ CCtrl *SliderNew()
{
CCtrl *c=CAlloc(sizeof(CCtrl));
c->win_task=Fs;
c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP;
c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_MS;
c->type=CTRLT_GENERIC;
c->state=&sld;
MemSet(&sld,0,sizeof(CSliderState));
+13 -12
View File
@@ -2,7 +2,7 @@
public U0 SpeedLineDemo()
{
I64 msg_code,cnt,x1,y1,x2,y2,a1,a2,color=BLACK;
I64 msg_code,cnt,x1,y1,x2,y2,arg1,arg2,color=BLACK;
CDC *dc=DCAlias;
dc->color=color;
@@ -15,31 +15,32 @@ public U0 SpeedLineDemo()
DocClear;
DCFill;
do {
msg_code=GetMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+1<<MSG_IP_R_UP);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+1<<MSG_MS_R_UP);
switch (msg_code) {
case MSG_IP_R_UP:
case MSG_MS_R_UP:
color=PopUpColor;
if (color>=0)
dc->color=color;
break;
case MSG_IP_L_DOWN:
x1=a1; y1=a2;
x2=a1; y2=a2;
case MSG_MS_L_DOWN:
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
cnt=0;
while (msg_code!=MSG_IP_L_UP) {
dc->pen_width=0.04*ip.speed;
while (msg_code!=MSG_MS_L_UP) {
dc->pen_width=0.04*ms.speed;
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&a1,&a2,
1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
x1=x2; y1=y2;
x2=a1; y2=a2;
x2=arg1; y2=arg2;
}
GrLine3(dc,x1,y1,0,x2,y2,0);
break;
case MSG_KEY_DOWN:
break;
}
} while (msg_code!=MSG_KEY_DOWN || !a1);
} while (msg_code!=MSG_KEY_DOWN || !arg1);
GetMsg(,,1<<MSG_KEY_UP);
DCFill;
DCDel(dc);
+19 -19
View File
@@ -5,7 +5,7 @@ If the line of symmetry is a point, symmetry is turned-off.
U0 SymmetryDemo()
{
I64 msg_code,x1,y1,x2,y2,a1,a2;
I64 msg_code,x1,y1,x2,y2,arg1,arg2;
CDC *dc=DCAlias;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -18,41 +18,41 @@ U0 SymmetryDemo()
dc->flags|=DCF_SYMMETRY;
DCSymmetrySet(dc,Fs->pix_width/2,0,Fs->pix_width/2,1);
do {
msg_code=GetMsg(&a1,&a2,
1<<MSG_KEY_DOWN+1<<MSG_IP_L_DOWN+
1<<MSG_IP_R_DOWN);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+
1<<MSG_MS_R_DOWN);
switch (msg_code) {
case MSG_IP_R_DOWN:
case MSG_MS_R_DOWN:
dc->flags&=~DCF_SYMMETRY;
dc->color=ROP_XOR+RED^TRANSPARENT;
x1=a1; y1=a2;
x2=a1; y2=a2;
while (msg_code!=MSG_IP_R_UP) {
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
while (msg_code!=MSG_MS_R_UP) {
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&a1,&a2,
1<<MSG_IP_R_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_R_UP+1<<MSG_MS_MOVE);
GrLine3(dc,x1,y1,0,x2,y2,0);
x2=a1; y2=a2;
x2=arg1; y2=arg2;
}
GrLine3(dc,x1,y1,0,x2,y2,0);
if (DCSymmetry3Set(dc,x1,y1,0,x2,y2,0,x2,y2,1))
dc->flags|=DCF_SYMMETRY;
break;
case MSG_IP_L_DOWN:
case MSG_MS_L_DOWN:
dc->color=ROP_XOR+BLACK^TRANSPARENT;
x1=a1; y1=a2;
x2=a1; y2=a2;
while (msg_code!=MSG_IP_L_UP) {
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
while (msg_code!=MSG_MS_L_UP) {
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&a1,&a2,
1<<MSG_IP_L_UP+1<<MSG_IP_MOVE);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
GrLine3(dc,x1,y1,0,x2,y2,0);
x2=a1; y2=a2;
x2=arg1; y2=arg2;
}
GrLine3(dc,x1,y1,0,x2,y2,0);
break;
}
} while (msg_code!=MSG_KEY_DOWN || (a1!=CH_ESC && a1!=CH_SHIFT_ESC));
} while (msg_code!=MSG_KEY_DOWN || (arg1!=CH_ESC && arg1!=CH_SHIFT_ESC));
GetMsg(,,1<<MSG_KEY_UP);
DCFill;
DCDel(dc);
Binary file not shown.
+1 -1
View File
@@ -87,7 +87,7 @@ CCtrl *SliderNew()
}
c=ACAlloc(sizeof(CCtrl));
c->win_task=sys_winmgr_task;
c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP;
c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_MS;
c->type=CTRLT_GENERIC;
c->state=ACAlloc(sizeof(CSliderState));
c->draw_it=&DrawCtrlSlider;
-13
View File
@@ -1,13 +0,0 @@
U0 INSetIPDemo()
{
I64 t,l;
WinBorder(ON);
l=Fs->pix_left+Fs->scroll_x;
t=Fs->pix_top+Fs->scroll_y;
IPSet(,,,FALSE,FALSE); //Mouse unclicked
InSetIP(,l-4,t-4);
InSetIP(20,l+20,t+20,,TRUE);
IPSet(,,,FALSE,FALSE);
}
INSetIPDemo;
File renamed without changes.
File renamed without changes.
+2 -2
View File
@@ -4,14 +4,14 @@ Or, type $LK,"InFile",A="MN:InFile"$(filename);
See $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ in the glossary for more info.
This InFile will renum the defines in
INEd.DD.Z. Test it by numbering a few wrong
InEd.DD.Z. Test it by numbering a few wrong
and running this demo.
*/
U8 i;
"Ed(\"INEd.DD.Z\");\n";
"Ed(\"InEd.DD.Z\");\n";
//Go to start of file
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
for (i=0;i<=0xC3;i++) {
File renamed without changes.
File renamed without changes.
File renamed without changes.
+13
View File
@@ -0,0 +1,13 @@
U0 InSetMsDemo()
{
I64 t,l;
WinBorder(ON);
l=Fs->pix_left+Fs->scroll_x;
t=Fs->pix_top+Fs->scroll_y;
MsSet(,,,FALSE,FALSE); //Mouse unclicked
InSetMs(,l-4,t-4);
InSetMs(20,l+20,t+20,,TRUE);
MsSet(,,,FALSE,FALSE);
}
InSetMsDemo;
+2 -2
View File
@@ -88,7 +88,7 @@ U0 MGCircle(I64 x,I64 y,F64 r)
MGPlot(x+x1,y+y1);
while (len-->=0) {
//m1@a1 * m2@a2 = m1*m2@(a1+a2)
//m1@a1 * m2@a2 = m1*m2@(arg1+arg2)
//(x1+y1i)*(x2+y2i) = x1*x2+(x1*y1+x2*y2)i-y1*y2
@@ -114,7 +114,7 @@ U0 MiniGrLibDemo()
for (i=0;i<300;i+=4)
MGCircle(200,100+i,i);
MGUpdate;
BusyWait(1500000);
Busy(1500000);
/*
We are returning graphics to normal operations under TempleOS.
It is not normal to by-pass the TempleOS graphcis routines.
+2 -2
View File
@@ -14,7 +14,7 @@ speed-up. Depressing.
asm {
LIMIT:: DU64 SAMPLES; //Memory reference should suck, right?
LIMIT:: DU64 SAMPLES; //Memory reference should be bad, right?
_BADLY_UNOPTIMIZED::
MOV RAX,0
@@ -61,7 +61,7 @@ _WELL_OPTIMIZED3::
XOR RAX,RAX
MOV RCX,SAMPLES-1
@@05: ADD RAX,RCX
LOOP @@05 //Inst sucks in speed, but saves code size.
LOOP @@05 //Inst has slow speed, but saves code size.
RET
}
+1 -1
View File
@@ -35,7 +35,7 @@ are zero, so sel them and make them zero.
You can't do reads on VGA memory, by the way.
That means no read-modify-writes, too.
*/
BusyWait(4000000);
Busy(4000000);
//TempleOS has a 4 plane memory duplicate of the scrn, $LK,"gr.scrn_image",A="MN:CGrGlbls"$,
//and only writes actual changes. See $LK,"GrUpdateVGAGraphics",A="MN:GrUpdateVGAGraphics"$().
+1 -1
View File
@@ -258,7 +258,7 @@ class RangeJob
CDoc *doc;
I64 num,lo,hi,N,sqrt_primes,cbrt_primes;
Prime *primes;
CSrvCmd *cmd;
CJob *cmd;
} rj[mp_cnt];
I64 TestCoreSubRange(RangeJob *r)
+12 -12
View File
@@ -2,16 +2,16 @@ U0 MemDemo()
{
I64 i;
"$$HL,1$$$$BLACK$$
#define MEM_PAGE_BITS 9
#define MEM_PAGE_SIZE (1<<MEM_PAGE_BITS)
#define MEM_PAG_BITS 9
#define MEM_PAG_SIZE (1<<MEM_PAG_BITS)
#define MEM_HEAP_HASH_SIZE 1024
#define MEM_FREE_PAGE_HASH_SIZE 0x100
#define MEM_EXTRA_HASH2_PAGES 2
#define MEM_FREE_PAG_HASH_SIZE 0x100
#define MEM_EXTRA_HASH2_PAGS 2
public class CBlkPool
{
CMemBlk *free_page_hash[MEM_FREE_PAGE_HASH_SIZE],
*free_page_hash2[64-MEM_PAGE_BITS];
CMemBlk *free_pag_hash[MEM_FREE_PAG_HASH_SIZE],
*free_pag_hash2[64-MEM_PAG_BITS];
};
public class CHeapCtrl
@@ -39,23 +39,23 @@ $$HL,0$$$$FG$$
"\n\n";
"$$PURPLE$$Pages of 512 bytes, owned by the system.$$FG$$\n";
for (i=MEM_HEAP_HASH_SIZE;i<MEM_FREE_PAGE_HASH_SIZE*MEM_PAGE_SIZE;
i+=MEM_PAGE_SIZE)
for (i=MEM_HEAP_HASH_SIZE;i<MEM_FREE_PAG_HASH_SIZE*MEM_PAG_SIZE;
i+=MEM_PAG_SIZE)
if (i==0x1200)
"...\n";
else if (!(0x1200<i<0x1F200))
"Fs->data_heap->bp->free_page_hash[%X/512]"
"Fs->data_heap->bp->free_pag_hash[%X/512]"
"$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$\n",i;
"\n\n";
"$$PURPLE$$Powers of two, owned by the system.$$FG$$\n";
for (i=Bsf(MEM_FREE_PAGE_HASH_SIZE*MEM_PAGE_SIZE);i<64;i++)
for (i=Bsf(MEM_FREE_PAG_HASH_SIZE*MEM_PAG_SIZE);i<64;i++)
if (i==0x1A)
"...\n";
else if (!(0x1A<=i<=0x36))
"Fs->data_heap->bp->free_page_hash2[%X] %016X"
"Fs->data_heap->bp->free_pag_hash2[%X] %016X"
"$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$\n",i,
1<<i+MEM_EXTRA_HASH2_PAGES*MEM_PAGE_SIZE;
1<<i+MEM_EXTRA_HASH2_PAGS*MEM_PAG_SIZE;
"\n\n";
}
+6 -6
View File
@@ -1,18 +1,18 @@
U0 MsgLoop()
{
I64 a1,a2,msg_code;
I64 arg1,arg2,msg_code;
"Use $LK,"msg_code",A="MN:MSG_CMD"$ defines in your programs instead of hardcoded nums.\n"
"<ESC> to Exit\n";
//We don't want the mouse buttons to reposition the cursor,
//We don't want the mouse bttns to reposition the cursor,
//so we inhibit the window mgr from processing them.
Fs->win_inhibit=WIF_SELF_IP_L|WIF_SELF_IP_R;
Fs->win_inhibit=WIF_SELF_MS_L|WIF_SELF_MS_R;
do {
msg_code=GetMsg(&a1,&a2,~(1<<MSG_NULL));
"CMD:%02X A1:%08X A2:%016X\n",msg_code,a1,a2;
} while (msg_code!=MSG_KEY_DOWN || a1!=CH_ESC && a1!=CH_SHIFT_ESC);
msg_code=GetMsg(&arg1,&arg2,~(1<<MSG_NULL));
"CMD:%02X ARG1:%08X ARG2:%016X\n",msg_code,arg1,arg2;
} while (msg_code!=MSG_KEY_DOWN || arg1!=CH_ESC && arg1!=CH_SHIFT_ESC);
GetMsg(,,1<<MSG_KEY_UP);
Fs->win_inhibit=WIG_USER_TASK_DFT;
-205
View File
@@ -1,205 +0,0 @@
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
$SP,"<1>",BI=1,BP="::/Demo/Graphics/Mountain.HC.Z,Mountain"$ //Pointer to sprite in $LK,"Mountain.HC",A="FI:::/Demo/Graphics/Mountain.HC"$ file
#define NUM_CLOUDS 16
#define SKY_LINES 30
#define CLOUD_PTS 512
#define CLOUD_PENS 8
#define CLOUD_PEN_PTS 16
#define CLOUD_PEN_SIZE 16
class Cloud
{
I64 i,x,y,w,h,dx,dy;
I64 color;
I64 px[CLOUD_PTS],py[CLOUD_PTS],pc[CLOUD_PTS];
} clouds[NUM_CLOUDS];
class CloudPen
{
CDC *img;
I64 px[CLOUD_PEN_PTS],py[CLOUD_PEN_PTS];
} cloud_pens[CLOUD_PENS];
CDC *cloud_pen;
I64 mp_not_done_flags;
U0 MPDrawClouds(CTask *task)
{
Cloud *c;
CDC *dc=DCAlias(gr.dc2,task);
I64 i,j,k,xx,yy,lo=Gs->num*CLOUD_PTS/mp_cnt,hi=(Gs->num+1)*CLOUD_PTS/mp_cnt;
for (j=0,c=clouds;j<NUM_CLOUDS;j++,c++)
for (i=lo;i<hi;i++) {
k=c->pc[i];
if (k<c->color)
dc->color=ROP_MONO+LTGRAY;
else
dc->color=ROP_MONO+WHITE;
xx=c->x.i32[1]+c->px[i];
yy=c->y.i32[1]+c->py[i];
k=RandU16&31-16;
if (k==-16)
k=-c->px[i];
c->px[i]+=SignI64(k);
k=RandU16&31-16;
if (k==-16)
k=-c->py[i];
c->py[i]+=SignI64(k);
GrBlot(dc,xx,yy,cloud_pens[i&(CLOUD_PENS-1)].img);
}
DCDel(dc);
LBtr(&mp_not_done_flags,Gs->num);
}
U0 DrawIt(CTask *task,CDC *dc)
{
I64 i;
Sprite3(dc,0,SKY_LINES*FONT_HEIGHT,0,$IB,"<1>",BI=1$);
mp_not_done_flags=1<<mp_cnt-1;
for (i=0;i<mp_cnt;i++)
JobQue(&MPDrawClouds,task,i);
while (mp_not_done_flags)
Yield;
}
U0 AnimateTask(I64)
{
I64 i,j;
Cloud *c;
CloudPen *cp;
while (TRUE) {
Refresh;
for (i=0,cp=cloud_pens;i<CLOUD_PENS;i++,cp++) {
DCClear(cp->img);
cp->img->color=COLOR_MONO;
for (j=0;j<CLOUD_PEN_PTS;j++) {
GrPlot(cp->img,cp->px[j],cp->py[j]);
cp->px[j]=ClampI64(cp->px[j]+RandU16%3-1,0,CLOUD_PEN_SIZE-1);
cp->py[j]=ClampI64(cp->py[j]+RandU16%3-1,0,CLOUD_PEN_SIZE-1);
}
}
for (i=0,c=clouds;i<NUM_CLOUDS;i++,c++) {
c->x+=c->dx;
c->y=ClampI64(c->y+c->dy,0,0.7*(SKY_LINES*FONT_HEIGHT)<<32);
c->color=MAX_U16*c->y.i32[1]/(0.8*(SKY_LINES*FONT_HEIGHT));
}
Sleep(20);
}
}
#define SAMPLES 6
U0 Init()
{
Cloud *c=clouds;
CloudPen *cp=cloud_pens;
I64 i,j,k,l,
w=Fs->pix_width,
h=SKY_LINES*FONT_HEIGHT;
for (i=0;i<NUM_CLOUDS;i++,c++) {
c->x=ToI64(w/2+Rand*w/2-w/4)<<32;
c->y=ToI64(h/2+Rand*h/2-h/4)<<32;
c->dx=RandI32;
c->dy=RandI32;
c->w=100;
c->h=50;
c->color=RandU16;
for (l=0;l<CLOUD_PTS;l++) {
k=0;
for (j=0;j<SAMPLES;j++)
k+=RandI16;
c->px[l]=(k*c->w/MAX_I16)/SAMPLES;
k=0;
for (j=0;j<SAMPLES;j++)
k+=RandI16;
c->py[l]=(k*c->h/MAX_I16)/SAMPLES;
c->pc[l]=RandU16;
}
}
for (i=0;i<CLOUD_PENS;i++,cp++) {
cp->img=DCNew(CLOUD_PEN_SIZE,CLOUD_PEN_SIZE);
for (j=0;j<CLOUD_PEN_PTS;j++) {
cp->px[j]=RandU16%CLOUD_PEN_SIZE;
cp->py[j]=RandU16%CLOUD_PEN_SIZE;
}
}
}
U0 CleanUp()
{
I64 i;
CloudPen *cp=cloud_pens;
for (i=0;i<CLOUD_PENS;i++,cp++)
DCDel(cp->img);
}
U0 SongTask(I64)
{//Song by the Holy Spirit
//This specifies a callback routine
//to be called when the task dies.
Fs->task_end_cb=&SndTaskEndCB;
MusicSettingsRst;
while (TRUE) {
Play("3qBetDA2G3qD2sG3E2G3EetCEDqFEeDC");
Play("qBetDA2G3qD2sG3E2G3EetCEDqFEeDC");
Play("CGqDeADsDCDCqGEetDAD2sG3D2G3D");
Play("eCGqDeADsDCDCqGEetDAD2sG3D2G3D");
}
}
U0 CloudScene()
{
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
try {
Fs->text_attr=YELLOW<<4+BLUE;
Fs->song_task=Spawn(&SongTask,NULL,"Song",,Fs);
AutoComplete;
WinBorder;
WinMax;
DocCursor;
DocClear;
Init;
Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
"$$BG,LTCYAN$$%h*c",SKY_LINES,'\n';
"$$BG,YELLOW$$%h5c",'\n';
BibleVerse(,"Exodus,14:19",7);
Fs->draw_it=&DrawIt;
GetChar;
Refresh;
} catch
PutExcept;
SettingsPop;
CleanUp;
}
#if __CMD_LINE__
CloudScene;
#endif
+2 -2
View File
@@ -1,13 +1,13 @@
interrupt U0 IntBeepOn()
{
*(dev.uncached_alias+LAPIC_EOI)(U32 *)=0; //signal end of interrupt
Snd(100);
Snd(34);
}
interrupt U0 IntBeepOff()
{
*(dev.uncached_alias+LAPIC_EOI)(U32 *)=0;
Snd(0);
Snd;
}
U0 IntTest()
+2 -2
View File
@@ -20,7 +20,7 @@ U0 MPUnlockedInc(I64)
U0 UnlockedInc()
{
CSrvCmd *tmpm0,*tmpm1;
CJob *tmpm0,*tmpm1;
glbl=0;
tmpm0=JobQue(&MPUnlockedInc,NULL,0,0);
tmpm1=JobQue(&MPUnlockedInc,NULL,1,0);
@@ -39,7 +39,7 @@ U0 MPLockedInc(I64)
U0 LockedInc()
{
CSrvCmd *tmpm0,*tmpm1;
CJob *tmpm0,*tmpm1;
glbl=0;
tmpm0=JobQue(&MPLockedInc,NULL,0,0);
tmpm1=JobQue(&MPLockedInc,NULL,1,0);
+1 -1
View File
@@ -12,7 +12,7 @@ I64 MPSum(I64 my_mp_cnt)
I64 Sum(I64 n,I64 my_mp_cnt)
{
CSrvCmd *tmpm[MP_MAX_PROCESSORS];
CJob *tmpm[MP_MAX_PROCESSORS];
I64 res=0,i;
mp_n=n+1;
for (i=0;i<my_mp_cnt;i++)
+16 -16
View File
@@ -8,7 +8,7 @@ for sorting. Then, it merge sorts them.
I64 my_mp_cnt=1<<Bsr(mp_cnt);//Power of 2
I32 *a1,*a2;
I32 *arg1,*arg2;
I32 *b[my_mp_cnt],bn[my_mp_cnt];
I64 mp_not_done_flags;
@@ -73,25 +73,25 @@ U0 MPRadixSortDemo(I64 dummy=0)
no_warn dummy;
I64 i,j,k1,k2;
F64 t0;
a1=MAlloc(NUM*sizeof(I32));
arg1=MAlloc(NUM*sizeof(I32));
for (i=0;i<NUM;i++)
a1[i]=RandI32;
arg1[i]=RandI32;
a2=MAlloc(NUM*sizeof(I32));
arg2=MAlloc(NUM*sizeof(I32));
"$$GREEN$$QSort$$FG$$\n";
t0=tS;
MemCpy(a2,a1,sizeof(I32)*NUM);
QSort(a2,NUM,sizeof(I32),&Compare);
MemCpy(arg2,arg1,sizeof(I32)*NUM);
QSort(arg2,NUM,sizeof(I32),&Compare);
"Time:%9.6f\n",tS-t0;
D(a2+NUM/4);
D(arg2+NUM/4);
"$$GREEN$$QSortU32$$FG$$\n";
t0=tS;
MemCpy(a2,a1,sizeof(I32)*NUM);
QSortU32(a2,NUM);
MemCpy(arg2,arg1,sizeof(I32)*NUM);
QSortU32(arg2,NUM);
"Time:%9.6f\n",tS-t0;
D(a2+NUM/4);
D(arg2+NUM/4);
for (i=0;i<my_mp_cnt;i++) {
//$WW,0$We must do full size, just in case.
@@ -108,8 +108,8 @@ U0 MPRadixSortDemo(I64 dummy=0)
k1=32-Bsr(my_mp_cnt);
k2=my_mp_cnt/2;
for (i=0;i<NUM;i++) {
j=a1[i]>>k1+k2; //This is a preliminary radix sort.
b[j][bn[j]++]=a1[i];
j=arg1[i]>>k1+k2; //This is a preliminary radix sort.
b[j][bn[j]++]=arg1[i];
}
mp_not_done_flags=1<<my_mp_cnt-1;
for (i=0;i<my_mp_cnt;i++)
@@ -118,14 +118,14 @@ U0 MPRadixSortDemo(I64 dummy=0)
Yield;
j=0;
for (i=0;i<my_mp_cnt;i++) {
MemCpy(&a2[j],b[i],bn[i]*sizeof(I32));
MemCpy(&arg2[j],b[i],bn[i]*sizeof(I32));
j+=bn[i];
}
"Time:%9.6f\n",tS-t0;
D(a2+NUM/4);
D(arg2+NUM/4);
Free(a1);
Free(a2);
Free(arg1);
Free(arg2);
for (i=0;i<my_mp_cnt;i++)
Free(b[i]);
}
+1 -1
View File
@@ -27,7 +27,7 @@ U0 PDAnswer(U8 *a,I64 len)
{
DocLock(doc);
a-=(len-1)/2;
DocPrint(doc,"CPU:%d Len:%2d ",Gs->num,len);
DocPrint(doc,"CPU%02X Len:%2d ",Gs->num,len);
while (len--)
DocPrint(doc,"%C",*a++); //%C is toupper char
DocPrint(doc,"\n");
+29 -15
View File
@@ -1,54 +1,69 @@
/*$LK,"progress1",A="MN:progress1"$-$LK,"progress4",A="MN:progress4"$ are just global vars
shown on the wallpaper. I use them in debugging a lot.
If you set $LK,"progress1_max",A="MN:progress1_max"$-$LK,"progress4_max",A="MN:progress4_max"$,
then a bar will display.
then a progress bar will display.
If you set $LK,"progress1_t0",A="MN:progress1_t0"$-$LK,"progress4_t0",A="MN:progress4_t0"$
then the elapsed time will display.
If you set $LK,"progress1_tf",A="MN:progress1_tf"$-$LK,"progress4_tf",A="MN:progress4_tf"$
then the estimated time will display.
*/
U0 Main1()
{
"\nWith description.\n";
PressAKey;
ProgressBarsRst;
progress1_max=200;
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
while (progress1++!=progress1_max)
Sleep(20);
progress1_max=0; //hide
ProgressBarsRst;
}
Main1;
U0 Main2()
{
"\nWith description and time.\n";
"\nWith description and elapsed time.\n";
PressAKey;
ProgressBarsRst;
progress1_max=200;
progress1_t0=tS;
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
while (progress1++!=progress1_max)
Sleep(20);
progress1_max=0; //hide
ProgressBarsRst;
}
Main2;
U0 Main3()
{
"\nWith description, elapsed time and registry total time.\n";
PressAKey;
progress1_max=200;
progress1_t0=tS;
RegExe("DemoCompany/ProgressBars");
StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max
while (progress1++!=progress1_max)
Sleep(20);
ProgressBarsRst("DemoCompany/ProgressBars");
}
Main3;
U0 Main4()
{
"\nNo description.\n";
PressAKey;
ProgressBarsRst;
//No progress1_desc
progress1_max=200;
while (progress1++!=progress1_max)
Sleep(20);
progress1_max=0; //hide
ProgressBarsRst;
}
Main4;
Main3;
"\n$$LTRED$$Now, from asm... It's handy for debugging.$$FG$$\n"
"$$LTRED$$Watch the progress on the wallpaper.$$FG$$\n";
"\nNow, from asm... It's handy for debugging.\n"
"Watch the progress on the wallpaper.\n";
WinBorder(ON);
PressAKey;
@@ -61,6 +76,5 @@ _PROGRESS_DEMO::
MOV U64 [&progress1],RCX
RET
}
_extern _PROGRESS_DEMO U0 AsmProgressDemo();
AsmProgressDemo;
+10 -10
View File
@@ -5,7 +5,7 @@
U0 PullDownMenuDemo()
{
I64 msg_code,a1,a2;
I64 msg_code,arg1,arg2;
CMenuEntry *tmpse;
MenuPush(
@@ -33,29 +33,29 @@ U0 PullDownMenuDemo()
"of the scrn.\n\n";
do {
msg_code=GetMsg(&a1,&a2,1<<MSG_KEY_DOWN+1<<MSG_CMD);
"\nCmd:%d A1:%X A2:%X\n\n",msg_code,a1,a2;
msg_code=GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN+1<<MSG_CMD);
"\nCmd:%d ARG1:%X ARG2:%X\n\n",msg_code,arg1,arg2;
switch (msg_code) {
case MSG_KEY_DOWN:
switch (a1) {//ASCII
switch (arg1) {//ASCII
case CH_SPACE:
Beep;
break;
case 0:
switch (a2.u8[0]) {//a2=Scan code
switch (arg2.u8[0]) {//arg2=Scan code
case SC_F1:
if (a2&SCF_SHIFT)
if (arg2&SCF_SHIFT)
"About PullDown Demo\n";
else
"Test the menu.\n";
break;
case SC_DELETE:
if (a2&SCF_SHIFT)
if (arg2&SCF_SHIFT)
"Cut\n";
break;
case SC_INS:
if (a2&SCF_SHIFT)
if (arg2&SCF_SHIFT)
"Paste\n";
break;
}
@@ -67,7 +67,7 @@ U0 PullDownMenuDemo()
//I Recommend making your menu
//drive by key strokes, but you can
//use the $LK,"MSG_CMD",A="MN:MSG_CMD"$ val.
switch (a1) {
switch (arg1) {
case M_OPTION1:
"Option # 1\n";
if (tmpse=MenuEntryFind(Fs->cur_menu,"Misc/Opt1"))
@@ -82,7 +82,7 @@ U0 PullDownMenuDemo()
break;
}
} while (msg_code!=MSG_KEY_DOWN||(a1!=CH_SHIFT_ESC && a1!=CH_ESC));
} while (msg_code!=MSG_KEY_DOWN||(arg1!=CH_SHIFT_ESC && arg1!=CH_ESC));
MenuPop;
}
Loaded 100 of 374 files, more files were not shown because too many files have changed in this diff. Show more