TempleOSTS_130315.ISO
This commit is contained in:
1 parent
e57428affb
commit
17b71f1a2d
958 files changed
+26043
-15907
No files matched your search
@@ -0,0 +1,9 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
#include "HOME/Adam3aLocalize"
|
||||
#include "HOME/Adam3bPkgs"
|
||||
#include "HOME/Adam3cSnd"
|
||||
#include "HOME/Adam3dKeyPlugIns"
|
||||
#include "HOME/Adam3eWrappers"
|
||||
#include "HOME/Adam3fSys"
|
||||
@@ -0,0 +1,21 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
//This makes your keyboard fast
|
||||
SetTypeMatic(0);
|
||||
|
||||
//Set Time Zone
|
||||
local_time_offset=0*60*60*CDATE_FREQ;
|
||||
|
||||
snd_vol=0.1;
|
||||
|
||||
//$AN,"","mouse_move_scale"$adjust these to set mouse move scale
|
||||
mxx_scale=0.5;
|
||||
myy_scale=0.5;
|
||||
mzz_scale=1.0; //wheel
|
||||
|
||||
//don't change these
|
||||
mxx_prescale=mxx/mxx_scale;
|
||||
myy_prescale=myy/myy_scale;
|
||||
mzz_prescale=mzz/mzz_scale;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
Cd("/TempleOS/Adam/Boot");;
|
||||
#include "InsBoot"
|
||||
Cd("/TempleOS/Adam");;
|
||||
#include "Diff"
|
||||
#include "Grep"
|
||||
#include "LineCnt"
|
||||
#include "Merge"
|
||||
#include "S2T"
|
||||
#include "LinkChk"
|
||||
#include "HeapLog"
|
||||
#include "MemRep"
|
||||
#include "ToHtml"
|
||||
#include "ToTXT"
|
||||
#include "BinRep"
|
||||
#include "FileBMP"
|
||||
Cd("/TempleOS/Apps");;
|
||||
|
||||
MapFileLoad("::/TempleOS/Kernel/Kernel");
|
||||
MapFileLoad("::/TempleOS/Compiler/Compiler");
|
||||
|
||||
Cd("HOME");;
|
||||
@@ -0,0 +1,10 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
Cd("/TempleOS/Adam/Snd");;
|
||||
#include "HDAudio"
|
||||
//Uncomment this after running $LK-A,"::/TempleOS/Adam/Snd/HDCfg.CPP"$.
|
||||
//#include "HOME/HDAudioCfg"
|
||||
LBtr(&sys_semas[SYS_SEMA_SND],0);
|
||||
|
||||
Cd("HOME");;
|
||||
@@ -0,0 +1,179 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
U0 FillInTime()
|
||||
{
|
||||
CDate spdt;
|
||||
spdt=GetCurTimeCDate;
|
||||
"$$IV,1$$----%D %T----$$IV,0$$\n",spdt,spdt;
|
||||
}
|
||||
|
||||
|
||||
Bool MyPutKey(I64 ch,I64 sc)
|
||||
{ //ch=ASCII; sc=scancode
|
||||
|
||||
//See $LK,"Char","HI:Char"$ for definition of scan codes.
|
||||
//See $LK,"Keyboard Handling","FI:::/TempleOS/Doc/KeyBoard.TXT"$
|
||||
|
||||
//You can customize keys. This routine
|
||||
//is called before the main editor
|
||||
//key handler $LK,"DocPutKey","MN:DocPutKey"$().
|
||||
//You can intercept any key.
|
||||
|
||||
//Return TRUE if you completely
|
||||
//handled the key.
|
||||
|
||||
I64 i,sc2=sc.u8[0];
|
||||
|
||||
if (SC_F1<=sc2<=SC_F10 &&
|
||||
sc&SCF_ALT &&
|
||||
!(sc & SCF_CTRL)) {
|
||||
switch (sc2) {
|
||||
case SC_F1:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTPURPLE");
|
||||
else
|
||||
SetKeyDesc("Dollar/PURPLE");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTPURPLE$$";
|
||||
else
|
||||
"$$FG,PURPLE$$";
|
||||
}
|
||||
break;
|
||||
case SC_F2:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTRED");
|
||||
else
|
||||
SetKeyDesc("Dollar/RED");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTRED$$";
|
||||
else
|
||||
"$$FG,RED$$";
|
||||
}
|
||||
break;
|
||||
case SC_F3:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTGREEN");
|
||||
else
|
||||
SetKeyDesc("Dollar/GREEN");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTGREEN$$";
|
||||
else
|
||||
"$$FG,GREEN$$";
|
||||
}
|
||||
break;
|
||||
case SC_F4:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTBLUE");
|
||||
else
|
||||
SetKeyDesc("Dollar/Default Color");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTBLUE$$";
|
||||
else
|
||||
"$$FG$$";
|
||||
}
|
||||
break;
|
||||
case SC_F6:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (!(sc & SCF_SHIFT))
|
||||
SetKeyDesc("Cmd/Init WordStat LT");
|
||||
} else if (!(sc & SCF_SHIFT))
|
||||
PopUp("WSInit(\"/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");");
|
||||
break;
|
||||
case SC_F7:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/Insert Hidden Widget");
|
||||
else
|
||||
SetKeyDesc("Misc/Insert Datetime");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
DocInsSafe(DocCur,
|
||||
"$$HS+C$$$$FG$$$$HE$$");
|
||||
else
|
||||
FillInTime();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
} else {
|
||||
if (!(sc & SCF_CTRL)) {
|
||||
if (sc & SCF_ALT) {
|
||||
switch (ch) {
|
||||
case 'h':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Tile Horizontally");
|
||||
else
|
||||
WinTileHorz;
|
||||
return TRUE;
|
||||
case 'm':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Maximize");
|
||||
else {
|
||||
WinMax;
|
||||
WinBorder;
|
||||
}
|
||||
return TRUE;
|
||||
case 'v':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Tile Vertically");
|
||||
else
|
||||
WinTileVert;
|
||||
return TRUE;
|
||||
|
||||
case 'l':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard");
|
||||
else {
|
||||
ClipBoardDel;
|
||||
DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$",
|
||||
DocCur->filename.name,DocCur->cur_entry->y+1);
|
||||
}
|
||||
return TRUE;
|
||||
case 'L':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard");
|
||||
else {
|
||||
i=RandU32;
|
||||
ClipBoardDel;
|
||||
DocPrintF(sys_clipboard_doc,"$$LK,\"<TODO>\",\"FA:%s,ANC%d\"$$",
|
||||
DocCur->filename.name,i);
|
||||
"$$AN,\"<TODO>\",\"ANC%d\"$$",i;
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 'w':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/WordStat(ON);");
|
||||
else
|
||||
WordStat(ON);
|
||||
return TRUE;
|
||||
case 'W':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/WordStat;");
|
||||
else
|
||||
WordStat;
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Bool MyPutS(U8 *st)
|
||||
{
|
||||
nounusedwarn st;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE);
|
||||
@@ -0,0 +1,27 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
#help_index "Utils;Cmd Line (Typically)"
|
||||
|
||||
//These are customized quick commands.
|
||||
//Feel free to add more or change.
|
||||
public I64 F(U8 *pattern,U8 *fu_flags=NULL)
|
||||
{
|
||||
return Grep(pattern,"/TempleOS/"FILENAME_MASK_TXT,fu_flags);
|
||||
}
|
||||
|
||||
public I64 R(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i")
|
||||
{
|
||||
return Grep(pattern,"/TempleOS/"FILENAME_MASK_TXT,fu_flags,replace_text);
|
||||
}
|
||||
|
||||
public I64 FD(U8 *pattern,U8 *fu_flags=NULL)
|
||||
{
|
||||
return Grep(pattern,FILENAME_MASK_TXT,fu_flags);
|
||||
}
|
||||
|
||||
public I64 RD(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i")
|
||||
{
|
||||
return Grep(pattern,FILENAME_MASK_TXT,fu_flags,replace_text);
|
||||
}
|
||||
#help_index ""
|
||||
@@ -0,0 +1,42 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
U0 UserStartUp()
|
||||
{ //Run each time a user a spawned
|
||||
UseTermDoc;
|
||||
DocCurAttr(WHITE<<4+BLUE);
|
||||
Type("::/TempleOS/Doc/Start.TXT");
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 ServantStartUp()
|
||||
{ //Run each time a servant task is spawned.
|
||||
UseTermDoc;
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 StartUpTasks()
|
||||
{
|
||||
CTask *task1,*task2;
|
||||
task1=SpawnUser;
|
||||
task2=SpawnUser;
|
||||
WinToTop(task1);
|
||||
WinTileVert;
|
||||
if (!IsSysDeterministic)
|
||||
PopUp("#include \"::/TempleOS/Adam/Start\";");
|
||||
AdamLog("Boot Time:%7.3fs\n",tS);
|
||||
XTalk(task1,"#include \"DoItOnce\";\n");
|
||||
Silent(ON); //no output to screen
|
||||
WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*");
|
||||
Silent(OFF); //no output to screen
|
||||
}
|
||||
|
||||
StartUpTasks;
|
||||
|
||||
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time;
|
||||
@@ -0,0 +1,16 @@
|
||||
//This file is executed by the
|
||||
//first terminal window upon start-up.
|
||||
//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$.
|
||||
|
||||
//It goes in your HOME directory and
|
||||
//you can customize it.
|
||||
|
||||
//Delete this to get rid of
|
||||
//default start-up msg.
|
||||
Type("::/TempleOS/Doc/Customize.TXT");
|
||||
|
||||
"\nTake Tour";
|
||||
if (YorN) {
|
||||
Cd("/TempleOS/Misc/Tour");
|
||||
AutoFile("Tour");
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
U0 UserStartUp()
|
||||
{ //Run each time a user a spawned
|
||||
UseTermDoc;
|
||||
DocCurAttr(WHITE<<4+BLUE);
|
||||
Type("::/TempleOS/Doc/Start.TXT");
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 ServantStartUp()
|
||||
{ //Run each time a servant task is spawned.
|
||||
UseTermDoc;
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 StartUpTasks()
|
||||
{
|
||||
CTask *task1,*task2;
|
||||
task1=SpawnUser;
|
||||
task2=SpawnUser;
|
||||
WinToTop(task1);
|
||||
WinTileVert;
|
||||
AdamLog("Boot Time:%7.3fs\n",tS);
|
||||
XTalk(task1,"#include \"DoItOnce\";\n");
|
||||
Silent(ON); //no output to screen
|
||||
WSInit;
|
||||
Silent(OFF); //no output to screen
|
||||
}
|
||||
|
||||
StartUpTasks;
|
||||
|
||||
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time;
|
||||
@@ -0,0 +1,241 @@
|
||||
Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
|
||||
{
|
||||
if (ata_drv) {
|
||||
XTalkWait(task,"PrtDsk;\nYC2p%d\nYYY",ata_drv->num);
|
||||
XTalkWait(task,"%d\nY\nY\n",(prt_dsk_dsk_size-PRT_HEADER)/2);
|
||||
return TRUE;
|
||||
} else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,U8 *acct_name,
|
||||
CATARep *ata_drv,CATARep *atapi_drv)
|
||||
{
|
||||
U8 *st1,*st2;
|
||||
|
||||
st1=MSPrintF("%C:/",cd_drv);
|
||||
st2=MSPrintF("%C:/",drv);
|
||||
CopyTree(st1,st2);
|
||||
Free(st1);
|
||||
Free(st2);
|
||||
|
||||
st1=MSPrintF("%C:/TempleOS/Accts/%s",drv,acct_name);
|
||||
MkDir(st1);
|
||||
Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",st1);
|
||||
Free(st1);
|
||||
|
||||
XTalkWait(task,
|
||||
"MakeOSInstallPrtBootLoader('%C');\n"
|
||||
"B10x20000\n",drv);
|
||||
|
||||
if (ata_drv)
|
||||
XTalkWait(task,"C2p%d\n",ata_drv->num);
|
||||
if (atapi_drv)
|
||||
XTalkWait(task,"T3p%d\n",atapi_drv->num);
|
||||
|
||||
XTalkWait(task,
|
||||
"\n" //Exit Drives
|
||||
"%s\n" //Acct
|
||||
"\n" //Dsk Cache
|
||||
"\n", //Options
|
||||
acct_name);
|
||||
}
|
||||
|
||||
U0 VMInstallWizard()
|
||||
{
|
||||
U8 *acct_name;
|
||||
CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL;
|
||||
CTask *task;
|
||||
while (TRUE) {
|
||||
"Make-up a Log-In Name (account).\n";
|
||||
acct_name=PmtStr("User Acct Name (%s): ","User");
|
||||
if (FileNameChk(acct_name))
|
||||
break;
|
||||
Free(acct_name);
|
||||
}
|
||||
task=SpawnUser;
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
SetWinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
|
||||
ATARep(FALSE,TRUE,&root);
|
||||
ATAIDDrvs(root,dft_drv,&ata_drv,&atapi_drv);
|
||||
if (VMPrtDsk(task,ata_drv)) {
|
||||
VMInstallBoot(task,dft_drv,'C',acct_name,ata_drv,atapi_drv);
|
||||
VMInstallBoot(task,dft_drv,'D',acct_name,ata_drv,atapi_drv);
|
||||
InstallMasterBootLoader('C');
|
||||
}
|
||||
LinkedLstDel(root);
|
||||
Free(acct_name);
|
||||
|
||||
SetWinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 RegularInstallWizard()
|
||||
{
|
||||
I64 unit;
|
||||
U8 ch,*base0,*base1,*ms,*dst,*acct_name;
|
||||
U8 *st1,*st2,*new_home_str;
|
||||
CATARep *root=NULL,*tempha;
|
||||
I64 num_hints;
|
||||
CTask *task;
|
||||
|
||||
while (TRUE) {
|
||||
"Make-up a Log-In Name (account).\n";
|
||||
acct_name=PmtStr("User Acct Name (%s): ","User");
|
||||
if (FileNameChk(acct_name))
|
||||
break;
|
||||
Free(acct_name);
|
||||
}
|
||||
task=SpawnUser;
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
SetWinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
XTalk(task,"Mount;\n");
|
||||
XTalk(task,"C");
|
||||
XTalk(task,"2 ");
|
||||
|
||||
num_hints=ATARep(FALSE,,&root);
|
||||
"\nInclude '$$FG,PURPLE$$0x$$FG$$' for hexidecimal numbers.\n\n";
|
||||
while (TRUE) {
|
||||
base0=PmtStr("Hard Drive I/O Port Base0 : ");
|
||||
if (0<A2I(base0)<=0xFFFF)
|
||||
break;
|
||||
Free(base0);
|
||||
}
|
||||
if (1<=A2I(base0)<=num_hints) {
|
||||
tempha=ATARepFind(&root,A2I(base0));
|
||||
Free(base0);
|
||||
base0=MSPrintF("0x%X",tempha->base0);
|
||||
base1=MSPrintF("0x%X",tempha->base1);
|
||||
ms =MSPrintF("0x%X",tempha->unit);
|
||||
unit=A2I(ms);
|
||||
} else {
|
||||
while (TRUE) {
|
||||
base1=PmtStr("Hard Drive I/O Port Base1 : ");
|
||||
if (0<A2I(base1)<=0xFFFF)
|
||||
break;
|
||||
Free(base1);
|
||||
}
|
||||
while (TRUE) {
|
||||
ms =PmtStr("Unit--$$FG,PURPLE$$0$$FG$$=Master or $$FG,PURPLE$$1$$FG$$=Slave: ","0");
|
||||
unit=A2I(ms);
|
||||
if (0<=unit<=1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
LinkedLstDel(root);
|
||||
XTalk(task,"%s\n",base0);
|
||||
XTalk(task,"%s\n",base1);
|
||||
XTalk(task,"%C",'0'+unit);
|
||||
XTalkWait(task,"\n");
|
||||
PrtRep;
|
||||
while (TRUE) {
|
||||
dst=PmtStr("\nDestination Partition Letter: ");
|
||||
if ('A'<=ToUpper(*dst)<='Z')
|
||||
break;
|
||||
Free(dst);
|
||||
}
|
||||
|
||||
NewLine;
|
||||
st1=MSPrintF("%C:/TempleOS",dft_drv);
|
||||
st2=MSPrintF("%C:/TempleOS",*dst);
|
||||
|
||||
"$$FG,RED$$Format %C Partition?$$FG$$\n",*dst;
|
||||
if (YorN) {
|
||||
NewLine;
|
||||
while (TRUE) {
|
||||
"$$FG,PURPLE$$1$$FG$$) Use FAT32\n"
|
||||
"$$FG,PURPLE$$2$$FG$$) Use TempleOS Native\n"
|
||||
"\nFile System Type: ";
|
||||
ch=GetChar;
|
||||
NewLine;
|
||||
if ('1'<=ch<='2')
|
||||
break;
|
||||
}
|
||||
if (ch=='1')
|
||||
Fmt(*dst,TRUE,FALSE,PT_FAT32);
|
||||
else
|
||||
Fmt(*dst,TRUE,FALSE,PT_NATIVE);
|
||||
} else {
|
||||
"\n$$BK,1$$WARNING$$BK,0$$ if you answer yes to the following "
|
||||
"you will lose all TempleOS files in your /TempleOS directory tree.\n"
|
||||
"Delete %s Directory ",st2;
|
||||
if (YorN)
|
||||
DelTree(st2);
|
||||
NewLine;
|
||||
}
|
||||
CopyTree(st1,st2);
|
||||
st2=MSPrintF("%C:/0000Boot",*dst);
|
||||
MkDir(st2);
|
||||
Free(st2);
|
||||
st2=MSPrintF("%C:/Temp",*dst);
|
||||
MkDir(st2);
|
||||
Free(st2);
|
||||
|
||||
new_home_str=MSPrintF("%C:/TempleOS/Accts/%s",*dst,acct_name);
|
||||
MkDir(new_home_str);
|
||||
Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",new_home_str);
|
||||
XTalkWait(task,
|
||||
"MakeOSInstallPrtBootLoader('%C');\n"
|
||||
"B10x20000\n"
|
||||
"C"
|
||||
"2p"
|
||||
"%s\n"
|
||||
"%s\n"
|
||||
"%C"
|
||||
"\n" //Exit Drives
|
||||
"%s\n" //Acct
|
||||
"\n" //Dsk Cache
|
||||
"\n", //Options
|
||||
*dst,base0,base1,'0'+unit,acct_name);
|
||||
"$$FG,RED$$Install Master Boot loader?$$FG$$";
|
||||
if (YorN) {
|
||||
NewLine;
|
||||
InstallMasterBootLoader(*dst);
|
||||
}
|
||||
Free(new_home_str);
|
||||
Free(acct_name);
|
||||
Free(base0);
|
||||
Free(base1);
|
||||
Free(ms);
|
||||
Free(dst);
|
||||
|
||||
SetWinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 DoInstall()
|
||||
{
|
||||
I64 pmt_reboot;
|
||||
CTask *task=Fs->next_task;
|
||||
while (task->user_num!=2 && task!=Fs)
|
||||
task=task->next_task;
|
||||
if (task->user_num==2)
|
||||
XTalk(task,"Ed(\"::/TempleOS/Doc/Install.TXT.Z\");\n");
|
||||
|
||||
NewLine(5);
|
||||
"Install on virtual machine ";
|
||||
if (pmt_reboot=YorN)
|
||||
VMInstallWizard();
|
||||
else {
|
||||
"\n\nThis wizard works if you have a partition ready. "
|
||||
"You can partition the drive or MakeOSInstallPrtBootLoader() "
|
||||
"with more options if you do it by hand, not using this wizard.\n\n"
|
||||
"Continue Install Wizard ";
|
||||
if (pmt_reboot=YorN)
|
||||
RegularInstallWizard();
|
||||
}
|
||||
if (pmt_reboot) {
|
||||
"Reboot Now ";
|
||||
if (YorN)
|
||||
Reboot;
|
||||
}
|
||||
}
|
||||
|
||||
DoInstall;
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
Place your notes or TODO here.
|
||||
@@ -0,0 +1,9 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
mp_cnt=1;
|
||||
#include "HOME/Adam3aLocalize"
|
||||
#include "HOME/Adam3bPkgs"
|
||||
#include "HOME/Adam3cSnd"
|
||||
#include "HOME/Adam3dKeyPlugIns"
|
||||
#include "HOME/Adam3eWrappers"
|
||||
#include "HOME/Adam3fSys"
|
||||
@@ -0,0 +1 @@
|
||||
//No Snd
|
||||
@@ -0,0 +1,38 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
U0 UserStartUp()
|
||||
{ //Run each time a user a spawned
|
||||
UseTermDoc;
|
||||
DocCurAttr(WHITE<<4+BLUE);
|
||||
Type("::/TempleOS/Doc/Start.TXT");
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 ServantStartUp()
|
||||
{ //Run each time a servant task is spawned.
|
||||
UseTermDoc;
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
U0 StartUpTasks()
|
||||
{
|
||||
CTask *task1,*task2;
|
||||
task1=SpawnUser;
|
||||
task2=SpawnUser;
|
||||
WinToTop(task1);
|
||||
WinTileVert;
|
||||
if (!IsSysDeterministic)
|
||||
PopUp("#include \"::/TempleOS/Adam/Start\";");
|
||||
AdamLog("Boot Time:%7.3fs\n",tS);
|
||||
}
|
||||
|
||||
StartUpTasks;
|
||||
|
||||
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time;
|
||||
@@ -0,0 +1,9 @@
|
||||
//This file is executed by the
|
||||
//first terminal window upon start-up.
|
||||
//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$.
|
||||
|
||||
//It goes in your HOME directory and
|
||||
//you can customize it.
|
||||
|
||||
//Delete this to get rid of
|
||||
//default start-up msg.
|
||||
@@ -0,0 +1,13 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
#exe {OptOn(OPTf_WARN_PAREN);};
|
||||
#exe {OptOn(OPTf_WARN_DUP_TYPES);};
|
||||
#include "HOME/Adam3aLocalize"
|
||||
#include "HOME/Adam3bPkgs"
|
||||
#include "HOME/Adam3cSnd"
|
||||
#include "HOME/Adam3dKeyPlugIns"
|
||||
#include "HOME/Adam3eWrappers"
|
||||
#include "HOME/Adam3fSys"
|
||||
#exe {OptOff(OPTf_WARN_PAREN);};
|
||||
#exe {OptOff(OPTf_WARN_DUP_TYPES);};
|
||||
@@ -0,0 +1,9 @@
|
||||
#include "/TempleOS/Accts/Adam3bPkgs"
|
||||
|
||||
#include "/TempleOS/Apps/TimeClock/Load"
|
||||
#include "/TempleOS/Apps/MusicOrgan/Load"
|
||||
Cd("HOME");;
|
||||
#include "/TempleOS/Accts/TS/TSAdam"
|
||||
#include "/TempleOS/Accts/TS/TSDistro"
|
||||
#include "/TempleOS/Demo/WebLogExample/WebLogRep"
|
||||
Cd("HOME");;
|
||||
@@ -0,0 +1,266 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
U0 FillInTime()
|
||||
{
|
||||
CDate spdt;
|
||||
spdt=GetCurTimeCDate;
|
||||
"$$IV,1$$----%D %T----$$IV,0$$\n",spdt,spdt;
|
||||
}
|
||||
|
||||
U0 RandQuote(I64 num)
|
||||
{ //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$
|
||||
I64 i,size,l=512;
|
||||
U8 *bible_filename=Define("ST_BIBLE_FILE"),
|
||||
*buf=FileRead(bible_filename,&size);
|
||||
if (buf) {
|
||||
i=num%(size-l);
|
||||
buf[i+l]=0;
|
||||
"" buf+i;
|
||||
Free(buf);
|
||||
}
|
||||
}
|
||||
|
||||
U0 BadCodeJump(I64 num)
|
||||
{ //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$
|
||||
CDirEntry *root=FilesFind("/TempleOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_SRC_FILES),
|
||||
*tempm=root;
|
||||
I64 cnt=0;
|
||||
CDoc *doc;
|
||||
U8 *st;
|
||||
while (tempm) {
|
||||
doc=DocRead(tempm->full_name);
|
||||
tempm->user_data=doc->root.y;
|
||||
cnt+=doc->root.y;
|
||||
DocDel(doc);
|
||||
tempm=tempm->next;
|
||||
}
|
||||
num=num%cnt;
|
||||
tempm=root;
|
||||
while (tempm) {
|
||||
num-=tempm->user_data;
|
||||
if (num<0) {
|
||||
st=MSPrintF("FL:%s,%d",tempm->full_name,-num);
|
||||
break;
|
||||
}
|
||||
tempm=tempm->next;
|
||||
}
|
||||
CDirLstDel(root);
|
||||
Ed(st);
|
||||
Free(st);
|
||||
}
|
||||
|
||||
Bool MyPutKey(I64 ch,I64 sc)
|
||||
{ //ch=ASCII; sc=scancode
|
||||
|
||||
//See $LK,"Char","HI:Char"$ for definition of scan codes.
|
||||
//See $LK,"Keyboard Handling","FI:::/TempleOS/Doc/KeyBoard.TXT"$
|
||||
|
||||
//You can customize keys. This routine
|
||||
//is called before the main editor
|
||||
//key handler $LK,"DocPutKey","MN:DocPutKey"$().
|
||||
//You can intercept any key.
|
||||
|
||||
//Return TRUE if you completely
|
||||
//handled the key.
|
||||
|
||||
I64 i,sc2=sc.u8[0];
|
||||
|
||||
if (SC_F1<=sc2<=SC_F10 &&
|
||||
sc&SCF_ALT &&
|
||||
!(sc & SCF_CTRL)) {
|
||||
switch (sc2) {
|
||||
case SC_F1:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTPURPLE");
|
||||
else
|
||||
SetKeyDesc("Dollar/PURPLE");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTPURPLE$$";
|
||||
else
|
||||
"$$FG,PURPLE$$";
|
||||
}
|
||||
break;
|
||||
case SC_F2:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTRED");
|
||||
else
|
||||
SetKeyDesc("Dollar/RED");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTRED$$";
|
||||
else
|
||||
"$$FG,RED$$";
|
||||
}
|
||||
break;
|
||||
case SC_F3:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTGREEN");
|
||||
else
|
||||
SetKeyDesc("Dollar/GREEN");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTGREEN$$";
|
||||
else
|
||||
"$$FG,GREEN$$";
|
||||
}
|
||||
break;
|
||||
case SC_F4:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/LTBLUE");
|
||||
else
|
||||
SetKeyDesc("Dollar/Default Color");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
"$$FG,LTBLUE$$";
|
||||
else
|
||||
"$$FG$$";
|
||||
}
|
||||
break;
|
||||
case SC_F5:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("God Passage");
|
||||
else
|
||||
SetKeyDesc("God Word");
|
||||
} else {
|
||||
//$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$
|
||||
if (sc & SCF_SHIFT)
|
||||
RandQuote(KbdMouseEvtTime>>4);
|
||||
else
|
||||
"%s ",ws_sorted_words[KbdMouseEvtTime>>4%ws_num_words]->str;
|
||||
}
|
||||
break;
|
||||
case SC_F6:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Cmd/Init WordStat Spirit");
|
||||
else
|
||||
SetKeyDesc("Cmd/Init WordStat TempleOS");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");");
|
||||
else
|
||||
PopUp("WSInit(\"::/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");");
|
||||
}
|
||||
break;
|
||||
case SC_F7:
|
||||
if (sc&SCF_KEY_DESC) {
|
||||
if (sc & SCF_SHIFT)
|
||||
SetKeyDesc("Dollar/Insert Hidden Widget");
|
||||
else
|
||||
SetKeyDesc("Misc/Insert Datetime");
|
||||
} else {
|
||||
if (sc & SCF_SHIFT)
|
||||
DocInsSafe(DocCur,
|
||||
"$$HS+C$$$$FG$$$$HE$$");
|
||||
else
|
||||
FillInTime();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
} else {
|
||||
if (!(sc & SCF_CTRL)) {
|
||||
if (sc & SCF_ALT) {
|
||||
switch (ch) {
|
||||
case 'h':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Tile Horizontally");
|
||||
else
|
||||
WinTileHorz;
|
||||
return TRUE;
|
||||
case 'm':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Maximize");
|
||||
else {
|
||||
WinMax;
|
||||
WinBorder;
|
||||
}
|
||||
return TRUE;
|
||||
case 'v':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/Tile Vertically");
|
||||
else
|
||||
WinTileVert;
|
||||
return TRUE;
|
||||
case 'V':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Sys/Frame Grabber Toggle");
|
||||
else
|
||||
FrameGrabberToggle;
|
||||
return TRUE;
|
||||
|
||||
case 'l':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard");
|
||||
else {
|
||||
ClipBoardDel;
|
||||
DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$",
|
||||
DocCur->filename.name,DocCur->cur_entry->y+1);
|
||||
}
|
||||
return TRUE;
|
||||
case 'L':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard");
|
||||
else {
|
||||
i=RandU32;
|
||||
ClipBoardDel;
|
||||
DocPrintF(sys_clipboard_doc,"$$LK,\"<TODO>\",\"FA:%s,ANC%d\"$$",
|
||||
DocCur->filename.name,i);
|
||||
"$$AN,\"<TODO>\",\"ANC%d\"$$",i;
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 'w':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/WordStat(ON);");
|
||||
else
|
||||
WordStat(ON);
|
||||
return TRUE;
|
||||
case 'W':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Win/WordStat;");
|
||||
else
|
||||
WordStat;
|
||||
return TRUE;
|
||||
|
||||
//Ins your own ALT-key plug-ins
|
||||
case 'b':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("Cmd/Jump to Bad Code");
|
||||
else //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$
|
||||
BadCodeJump(KbdMouseEvtTime>>4);
|
||||
return TRUE;
|
||||
|
||||
case 'p':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("JukeBox(TAD)");
|
||||
else
|
||||
JukeBox("::/TempleOS/Accts/TS/TAD/MusicOrgan");
|
||||
return TRUE;
|
||||
case 'P':
|
||||
if (sc&SCF_KEY_DESC)
|
||||
SetKeyDesc("JukeBox(Examples)");
|
||||
else
|
||||
JukeBox("::/TempleOS/Apps/MusicOrgan/Examples");
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Bool MyPutS(U8 *st)
|
||||
{
|
||||
nounusedwarn st;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE);
|
||||
@@ -0,0 +1,9 @@
|
||||
#include "/TempleOS/Accts/Adam3eWrappers"
|
||||
|
||||
#help_index "Utils;Cmd Line (Typically)"
|
||||
public U0 M(U8 *src1,U8 *src2,U8 *fu_flags=NULL)
|
||||
{
|
||||
MergeChk(src1,src2,fu_flags);
|
||||
}
|
||||
#help_index ""
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
U0 UserStartUp()
|
||||
{ //Run each time a user a spawned
|
||||
UseTermDoc;
|
||||
DocCurAttr(WHITE<<4+BLUE);
|
||||
Type("::/TempleOS/Doc/Start.TXT");
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
Dir;
|
||||
switch (ts_cid) {
|
||||
case CID_TAD8:
|
||||
"$$FG,GREEN$$TAD8$$FG$$: ";
|
||||
break;
|
||||
case CID_TAD8_VM:
|
||||
"$$FG,RED$$TAD8_VM$$FG$$: ";
|
||||
break;
|
||||
case CID_DFT:
|
||||
"$$FG,PURPLE$$DFT$$FG$$: ";
|
||||
break;
|
||||
}
|
||||
CPURep;
|
||||
}
|
||||
|
||||
U0 ServantStartUp()
|
||||
{ //Run each time a servant task is spawned.
|
||||
UseTermDoc;
|
||||
LBts(&Fs->display_flags,DISPLAYf_SHOW);
|
||||
WinZBufUpdate;
|
||||
if (!IsSysDeterministic)
|
||||
Preempt(ON);
|
||||
}
|
||||
|
||||
CTask *user1,*user2;
|
||||
|
||||
U0 StartUpTasks()
|
||||
{
|
||||
user1=SpawnUser;
|
||||
user2=SpawnUser;
|
||||
WinToTop(user1);
|
||||
WinTileVert;
|
||||
if (!IsSysDeterministic)
|
||||
PopUp("#include \"::/TempleOS/Adam/Start\";");
|
||||
AdamLog("Boot Time:%7.3fs\n",tS);
|
||||
XTalk(user1,"#include \"DoItOnce\";\n");
|
||||
Silent(ON);
|
||||
if (!IsSysDeterministic)
|
||||
WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*");
|
||||
Silent(OFF);
|
||||
AdamLog("WordStat Time:%7.3fs\n",tS);
|
||||
if (ts_has_win_drv)
|
||||
DrvEnable(TS_WIN_DRV_LET,OFF);
|
||||
}
|
||||
|
||||
DelTree("::/Temp/ScreenShots");
|
||||
MkDir("::/Temp/ScreenShots");
|
||||
|
||||
StartUpTasks;
|
||||
|
||||
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time;
|
||||
@@ -0,0 +1,12 @@
|
||||
//This file is executed by the
|
||||
//first terminal window upon start-up.
|
||||
//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$.
|
||||
|
||||
//It goes in your HOME directory and
|
||||
//you can customize it.
|
||||
|
||||
//Delete this to get rid of
|
||||
//default start-up msg.
|
||||
|
||||
//Type("::/TempleOS/Doc/Customize.TXT");
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//Change anything you want in this
|
||||
//acct file or others.
|
||||
|
||||
//This makes your keyboard fast
|
||||
SetTypeMatic(0);
|
||||
|
||||
//Set Time Zone
|
||||
local_time_offset=-7*60*60*CDATE_FREQ; //Pacific
|
||||
|
||||
snd_vol=0.1;
|
||||
|
||||
//$AN,"","mouse_move_scale"$adjust these to set mouse move scale
|
||||
mxx_scale=0.5;
|
||||
myy_scale=0.5;
|
||||
mzz_scale=5.0; //wheel
|
||||
|
||||
//don't change these
|
||||
mxx_prescale=mxx/mxx_scale;
|
||||
myy_prescale=myy/myy_scale;
|
||||
mzz_prescale=mzz/mzz_scale;
|
||||
@@ -0,0 +1,488 @@
|
||||
//ISO1 is ISO9660
|
||||
//ISO2 is ISO13490
|
||||
//ISO3 is ISO13346
|
||||
|
||||
//ISO13346 tag id types
|
||||
#define ISO3T_PRI_VOL_DESC 1
|
||||
#define ISO3T_ANCHOR_VOL_DESC_PTR 2
|
||||
#define ISO3T_VOL_DESC_PTR 3
|
||||
#define ISO3T_IMPLEMENTATION_VOL_DESC 4
|
||||
#define ISO3T_PRT_DESC 5
|
||||
#define ISO3T_LOG_VOL_DESC 6
|
||||
#define ISO3T_UNALLOCATED_SPACE_DESC 7
|
||||
#define ISO3T_TERMINATOR_DESC 8
|
||||
#define ISO3T_LOG_VOL_INTEGRITY_DESC 9
|
||||
#define ISO3T_FILE_SET_DESC 256
|
||||
#define ISO3T_FILE_ID_DESC 257
|
||||
#define ISO3T_ALLOC_EXTENT_DESC 258
|
||||
#define ISO3T_INDIRECT_ENTRY 259
|
||||
#define ISO3T_TERMINAL_ENTRY 260
|
||||
#define ISO3T_FILE_ENTRY 261
|
||||
#define ISO3T_EXT_ATTR_HEADER_DESC 262
|
||||
#define ISO3T_UNALLOC_SPACE_ENTRY 263
|
||||
#define ISO3T_SPACE_BITMAP_DESC 264
|
||||
#define ISO3T_PRT_INTEGRITY_ENTRY 265
|
||||
#define ISO3T_EXT_FILE_ENTRY 266
|
||||
|
||||
class CISO3Tag
|
||||
{
|
||||
U16 id;
|
||||
U16 version;
|
||||
U8 xsum;
|
||||
U8 reserved;
|
||||
U16 serial_num;
|
||||
U16 desc_crc;
|
||||
U16 desc_crc_len;
|
||||
U32 loc;
|
||||
};
|
||||
|
||||
class CISO3Date
|
||||
{
|
||||
U16 time_zone;
|
||||
I16 year;
|
||||
U8 mon;
|
||||
U8 day;
|
||||
U8 hour;
|
||||
U8 min;
|
||||
U8 sec;
|
||||
U8 sec100;
|
||||
U8 sec10000;
|
||||
U8 sec1000000;
|
||||
};
|
||||
|
||||
|
||||
class CISO3DString32
|
||||
{
|
||||
U8 body[31];
|
||||
U8 len;
|
||||
};
|
||||
|
||||
class CISO3DString128
|
||||
{
|
||||
U8 body[127];
|
||||
U8 len;
|
||||
};
|
||||
|
||||
class CISO3CharSpec
|
||||
{
|
||||
U8 type;
|
||||
U8 body[63];
|
||||
};
|
||||
|
||||
class CISO3RegId
|
||||
{
|
||||
U8 flags;
|
||||
U8 id[23];
|
||||
U8 id_suffix[8];
|
||||
};
|
||||
|
||||
class CISO3ExtentAD
|
||||
{
|
||||
U32 len;
|
||||
U32 loc;
|
||||
};
|
||||
|
||||
class CISO3LBAdd
|
||||
{
|
||||
U32 log_blk_num;
|
||||
U16 prt_ref_num;
|
||||
};
|
||||
|
||||
class CISO3LongAD
|
||||
{
|
||||
U32 len;
|
||||
CISO3LBAdd loc;
|
||||
U8 implementation_use[6];
|
||||
};
|
||||
|
||||
class CISO3ICBTag
|
||||
{
|
||||
U32 prior_record_direct_entries;
|
||||
U16 strategy_type;
|
||||
U16 strategy_param;
|
||||
U16 max_entries;
|
||||
U8 reserved;
|
||||
U8 file_type;
|
||||
CISO3LBAdd parent_icb_loc;
|
||||
U16 flags;
|
||||
};
|
||||
|
||||
class CISO3PriDesc
|
||||
{
|
||||
CISO3Tag tag;
|
||||
U32 vol_desc_seq_num;
|
||||
U32 pri_vol_desc_num;
|
||||
CISO3DString32 vol_id;
|
||||
U16 vol_seq_num;
|
||||
U16 max_vol_seq_num;
|
||||
U16 interchg_level;
|
||||
U16 max_interchg_level;
|
||||
U32 char_set_lst;
|
||||
U32 max_char_set_lst;
|
||||
CISO3DString128 vol_set_id;
|
||||
CISO3CharSpec desc_char_set;
|
||||
CISO3CharSpec explanatory_char_set;
|
||||
CISO3ExtentAD vol_abstract;
|
||||
CISO3ExtentAD vol_copyright_notice;
|
||||
CISO3RegId app_id;
|
||||
CISO3Date recording_date_time;
|
||||
CISO3RegId implementation_id[32];
|
||||
U8 implementation_use[64];
|
||||
U32 pred_vol_desc_seq_loc;
|
||||
U16 flags;
|
||||
U8 reserved[22];
|
||||
};
|
||||
|
||||
class CISO3PrtMap
|
||||
{
|
||||
U8 type;
|
||||
U8 len;
|
||||
U0 mapping;
|
||||
};
|
||||
|
||||
class CISO3PrtMap1
|
||||
{
|
||||
U8 type;
|
||||
U8 len;
|
||||
U16 vol_seq_num;
|
||||
U16 prt_num;
|
||||
};
|
||||
|
||||
class CISO3PrtMap2
|
||||
{
|
||||
U8 type;
|
||||
U8 len;
|
||||
U8 prt_id[62];
|
||||
};
|
||||
|
||||
class CISO3LogVolDesc
|
||||
{
|
||||
CISO3Tag tag;
|
||||
U32 vol_desc_seq_num;
|
||||
CISO3CharSpec desc_char_set;
|
||||
CISO3DString128 log_vol_id;
|
||||
U32 blk_size;
|
||||
CISO3RegId domain_id;
|
||||
U8 log_vol_contents_use[16];
|
||||
U32 map_table_len;
|
||||
U32 num_prt_maps;
|
||||
CISO3RegId implementation_id;
|
||||
U8 implementation_use[128];
|
||||
CISO3ExtentAD integrity_seq_extent;
|
||||
U0 prt_maps;
|
||||
};
|
||||
|
||||
class CISO3Prt
|
||||
{
|
||||
CISO3Tag tag;
|
||||
U32 vol_desc_seq_num;
|
||||
U16 flags;
|
||||
U16 num;
|
||||
CISO3RegId contents;
|
||||
U8 contents_use[128];
|
||||
U32 access_type;
|
||||
U32 starting_loc;
|
||||
U32 len;
|
||||
CISO3RegId implementation_id;
|
||||
U8 implementation_use[128];
|
||||
U8 reserved[156];
|
||||
};
|
||||
|
||||
class CISO3FileSetDesc
|
||||
{
|
||||
CISO3Tag tag;
|
||||
CISO3Date recording_date_time;
|
||||
U16 interchg_level;
|
||||
U16 max_interchg_level;
|
||||
U32 char_set_lst;
|
||||
U32 max_char_set_lst;
|
||||
U32 file_set_num;
|
||||
U32 file_set_desc_num;
|
||||
CISO3CharSpec log_vol_id_char_set;
|
||||
CISO3DString128 log_vol_id;
|
||||
CISO3CharSpec file_set_char_set;
|
||||
CISO3DString32 file_set_id;
|
||||
CISO3DString32 copyright_file_id;
|
||||
CISO3DString32 abstract_file_id;
|
||||
CISO3LongAD root_dir_icb;
|
||||
CISO3RegId domain_id;
|
||||
CISO3LongAD next_extent;
|
||||
CISO3LongAD sys_stream_dir_icb;
|
||||
U8 reserved[32];
|
||||
};
|
||||
|
||||
class CISO3FileIdDesc
|
||||
{
|
||||
CISO3Tag tag;
|
||||
U16 version;
|
||||
U8 characteristics;
|
||||
U8 len_of_file_id;
|
||||
CISO3LongAD icb;
|
||||
U16 len_of_implementation_use;
|
||||
U0 implementation_use;
|
||||
U0 file_id;
|
||||
};
|
||||
|
||||
class CISO3File
|
||||
{
|
||||
CISO3Tag tag;
|
||||
CISO3ICBTag icb_tag;
|
||||
U32 uid;
|
||||
U32 gid;
|
||||
U32 permissions;
|
||||
U16 file_link_cnt;
|
||||
U8 record_fmt;
|
||||
U8 record_display_attr;
|
||||
U32 record_len;
|
||||
I64 info_len;
|
||||
I64 log_blks_recorded;
|
||||
CISO3Date access_date_time;
|
||||
CISO3Date modification_date_time;
|
||||
CISO3Date attr_date_time;
|
||||
U32 chk_pt;
|
||||
CISO3LongAD ext_attr_icb;
|
||||
CISO3RegId implementation_id;
|
||||
I64 unique_id;
|
||||
U32 ext_attr_len;
|
||||
U32 alloc_desc_len;
|
||||
U0 ext_attr;
|
||||
U0 alloc_desc;
|
||||
};
|
||||
|
||||
class CISO3FileExt
|
||||
{
|
||||
CISO3Tag tag;
|
||||
CISO3ICBTag icb_tag;
|
||||
U32 uid;
|
||||
U32 gid;
|
||||
U32 permissions;
|
||||
U16 file_link_cnt;
|
||||
U8 record_fmt;
|
||||
U8 record_display_attr;
|
||||
U32 record_len;
|
||||
I64 info_len;
|
||||
I64 object_size;
|
||||
I64 log_blks_recorded;
|
||||
CISO3Date access_date_time;
|
||||
CISO3Date modification_date_time;
|
||||
CISO3Date creation_date_time;
|
||||
CISO3Date attr_date_time;
|
||||
U32 chk_pt;
|
||||
U32 reserved;
|
||||
CISO3LongAD ext_attr_icb;
|
||||
CISO3LongAD stream_dir_icb;
|
||||
CISO3RegId implementation_id;
|
||||
I64 unique_id;
|
||||
U32 ext_attr_len;
|
||||
U32 alloc_desc_len;
|
||||
U0 ext_attr;
|
||||
U0 alloc_desc;
|
||||
};
|
||||
|
||||
import U0 ClassRep(U8 *class_name,U8 *d,I64 max_depth=2,Bool fun=FALSE,I64 offset=0);
|
||||
|
||||
Bool ISO3PrtInitPrt(CPrt *p,I64 blk)
|
||||
{
|
||||
CBlkDev *bdev=p->bdev;
|
||||
I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc;
|
||||
CISO3FileSetDesc *iso=MAlloc(bdev->blk_size);
|
||||
Bool unlock,result=FALSE;
|
||||
try {
|
||||
unlock=PrtLock(p);
|
||||
while (TRUE) {
|
||||
p->size=MaxI64(p->size,(i+1)*spc);
|
||||
RBlks(p,iso,i*spc,spc);
|
||||
"%X:%X\n",i,iso->tag.id;
|
||||
switch (iso->tag.id) {
|
||||
case ISO3T_FILE_SET_DESC:
|
||||
ClassRep("CISO3FileSetDesc",iso,3);
|
||||
// p->offset=blk;
|
||||
// p->root_cluster=iso->root_dir_icb.loc.log_blk_num+p->offset/spc;
|
||||
result=TRUE;
|
||||
break;
|
||||
case ISO3T_EXT_FILE_ENTRY:
|
||||
ClassRep("CISO3FileExt",iso,3);
|
||||
break;
|
||||
case ISO3T_FILE_ENTRY:
|
||||
ClassRep("CISO3File",iso,3);
|
||||
break;
|
||||
case ISO3T_FILE_ID_DESC:
|
||||
ClassRep("CISO3FileIdDesc",iso,3);
|
||||
break;
|
||||
case ISO3T_ALLOC_EXTENT_DESC:
|
||||
case ISO3T_INDIRECT_ENTRY:
|
||||
case ISO3T_TERMINAL_ENTRY:
|
||||
case ISO3T_EXT_ATTR_HEADER_DESC:
|
||||
case ISO3T_UNALLOC_SPACE_ENTRY:
|
||||
case ISO3T_SPACE_BITMAP_DESC:
|
||||
case ISO3T_PRT_INTEGRITY_ENTRY:
|
||||
break;
|
||||
default
|
||||
goto i3pip_done;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
i3pip_done:
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
} catch {
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Bool ISO3PrtInit(CPrt *p,I64 blk)
|
||||
{
|
||||
CBlkDev *bdev=p->bdev;
|
||||
I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc,offset=0;
|
||||
CISO3Prt *iso=MAlloc(bdev->blk_size);
|
||||
Bool unlock,result=FALSE;
|
||||
|
||||
try {
|
||||
unlock=PrtLock(p);
|
||||
while (TRUE) {
|
||||
p->size=MaxI64(p->size,(i+1)*spc);
|
||||
RBlks(p,iso,i*spc,spc);
|
||||
"%X:%X\n",i,iso->tag.id;
|
||||
switch (iso->tag.id) {
|
||||
case ISO3T_PRT_DESC:
|
||||
ClassRep("CISO3Prt",iso,3);
|
||||
offset=iso->starting_loc*spc; //one partition for now
|
||||
break;
|
||||
case ISO3T_PRI_VOL_DESC:
|
||||
ClassRep("CISO3PriDesc",iso,3);
|
||||
break;
|
||||
case ISO3T_LOG_VOL_DESC:
|
||||
ClassRep("CISO3LogVolDesc",iso,3);
|
||||
D(&iso(CISO3LogVolDesc *)->prt_maps);
|
||||
break;
|
||||
case ISO3T_ANCHOR_VOL_DESC_PTR:
|
||||
case ISO3T_VOL_DESC_PTR:
|
||||
case ISO3T_IMPLEMENTATION_VOL_DESC:
|
||||
case ISO3T_UNALLOCATED_SPACE_DESC:
|
||||
case ISO3T_LOG_VOL_INTEGRITY_DESC:
|
||||
break;
|
||||
case ISO3T_TERMINATOR_DESC:
|
||||
goto i3pi_done;
|
||||
default:
|
||||
PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
|
||||
throw(EXCEPT_PRT,10);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
i3pi_done:
|
||||
if (offset)
|
||||
result=ISO3PrtInitPrt(p,offset);
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
} catch {
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/****
|
||||
U0 CDate2ISO3(CISO3Date *dst,CDate spdt)
|
||||
{
|
||||
CDateStruct ds;
|
||||
CDate2CDateStruct(&ds,spdt);
|
||||
MemSet(dst,0,sizeof(CISO3Date));
|
||||
dst->year=ds.year;
|
||||
dst->mon=ds.mon;
|
||||
dst->day=ds.day_of_mon;
|
||||
dst->hour=ds.hour;
|
||||
dst->min=ds.min;
|
||||
dst->sec=ds.sec;
|
||||
dst->sec100=ds.sec100;
|
||||
}
|
||||
|
||||
CDate ISO3Date2CDate(CISO3Date *dt)
|
||||
{
|
||||
CDateStruct ds;
|
||||
MemSet(&ds,0,sizeof(CDateStruct));
|
||||
ds.day_of_mon=dt->day;
|
||||
ds.mon=dt->mon;
|
||||
ds.year=dt->year;
|
||||
ds.sec100=dt->sec100;
|
||||
ds.sec=dt->sec;
|
||||
ds.min=dt->min;
|
||||
ds.hour=dt->hour;
|
||||
return CDateStruct2CDate(&ds);
|
||||
}
|
||||
****/
|
||||
|
||||
|
||||
Bool ISOPrtInit(CPrt *p,I64 blk)
|
||||
{
|
||||
CBlkDev *bdev=p->bdev;
|
||||
I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc;
|
||||
CISO1PriDesc *iso=MAlloc(bdev->blk_size);
|
||||
CISO1DirEntry *de;
|
||||
Bool unlock,result=FALSE;
|
||||
U8 buf[8];
|
||||
|
||||
try {
|
||||
unlock=PrtLock(p);
|
||||
p->type=PT_ISO9660; //default
|
||||
p->spc=spc;
|
||||
p->offset=p->data=p->root_cluster=p->size=0;
|
||||
while (TRUE) {
|
||||
p->size=MaxI64(p->size,(i+1)*spc);
|
||||
RBlks(p,iso,i*spc,spc);
|
||||
buf[0](U32)=iso->id[0](U32);
|
||||
buf[4](U16)=iso->id[4](U8);
|
||||
switch (LstEntryMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",LEF_EXACT)) {
|
||||
case 0:
|
||||
p->type=PT_ISO9660;
|
||||
switch (iso->type) {
|
||||
case ISO1T_SUPPLEMENTARY_DESC:
|
||||
p->data=0;
|
||||
de=&iso->root_dir_record;
|
||||
p->root_cluster=de->loc.little;
|
||||
p->size=iso->vol_space_size.little*bdev->blk_size>>BLK_SIZE_BITS;
|
||||
result=TRUE;
|
||||
goto ipi_done;
|
||||
case ISO1T_TERMINATOR:
|
||||
throw(EXCEPT_PRT,11);
|
||||
}
|
||||
break;
|
||||
case 2...6:
|
||||
p->type=PT_ISO13346;
|
||||
break;
|
||||
case 1: //PT_ISO13490 (Not supported)
|
||||
default: //Its normal for ISO13346 to read NULL blk as terminator
|
||||
switch (p->type) {
|
||||
case PT_ISO13346:
|
||||
i++; //Terminator is blk after last valid. Advance to next blk
|
||||
if (ISO3PrtInit(p,i*spc)) {
|
||||
result=TRUE;
|
||||
goto ipi_done;
|
||||
}
|
||||
break;
|
||||
}
|
||||
PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
|
||||
throw(EXCEPT_PRT,12);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
ipi_done:
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
} catch {
|
||||
p->type=PT_ISO9660;
|
||||
p->spc=spc;
|
||||
p->offset=p->data=p->root_cluster=0;
|
||||
Free(iso);
|
||||
if (unlock)
|
||||
PrtUnlock(p);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
$WW,1$I have a million metaphors. Linux is a semi; Windows is a car; and TempleOS is a motorcycle. Or, it's like a 1960's muscle car that wouldn't be street legal, now, with all the safety crap regulations complicating and gunking-up, but boy is it fun and beautiful under the hood. Maybe, it's a tree-house -- you don't need building codes to mod it and it has no networking. It's a kayak, not a Titanic -- just reset it. Why do you want a 1970's main frame operating system, anyway, that has ugly 32-bit crap all over its C language? 7-bit ASCII for source code? Please! Why not fix all the standard C library to pure 64-bit? How awful PrintF() with "%ld" instead of "%d" and crap for long constants! Yuck! You'll love $LK,"TempleOS C","FI:::/TempleOS/Doc/Differences.TXT"$.
|
||||
|
||||
Okay, here's a $LK,"Pop Quiz","FI:::/TempleOS/Demo/Lectures/64BitAsmQuiz.TXT"$ to get you psyched-up for TempleOS! Assembly language knowledge is not required, but anyone interested in TempleOS is probably at least curious about assembly language.
|
||||
|
||||
TempleOS has a good chance of running natively on $FG,4$x86_64$FG$ machines from about 2003-2010. After that, it will probably work just in VMware.
|
||||
|
||||
1) Download the free $FG,4$$TX+HTML,"TempleOSCD.ISO (24.0 MB)","http://www.templeos.org/TempleOSCD.ISO"$$FG$.
|
||||
2) Download the free $FG,4$$TX+HTML,"VMware Player","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ (The $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ web page takes a whole minute to load completely. Be patient. When it finally shows, pick the first ".exe" to download.)
|
||||
3) Create an "Other 64-Bit" virtual machine. Aim its CD-ROM to TempleOSCD.ISO
|
||||
4) Play the virtual machine.
|
||||
5) Log-in as "Accts/Install".
|
||||
6) Optionally, purchase $FG,4$$TX+HTML,"VMware WorkStation","http://www.vmware.com"$$FG$ or download $FG,4$$TX+HTML,"WinImage","http://www.winimage.com/winimage.htm"$$FG$ if you wish to transfer files in and out.
|
||||
|
||||
If you want to install my personal version for $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$...
|
||||
1b) Download the free $FG,4$$TX+HTML,"TempleOSTS.ISO (24.5 MB)","http://www.templeos.org/TempleOSTS.ISO"$$FG$.
|
||||
3b) Create an "Other 64-Bit" virtual machine. Aim its CD-ROM to TempleOSTS.ISO
|
||||
5b) Type >$FG,4$TSInstall;$FG$ or >$FG,4$TSUpgrade;$FG$ at the command-line.
|
||||
7b) See $FG,4$MakeBackUp$FG$ to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this website, too.
|
||||
|
||||
|
||||
* "WinImage" is a trademark of Gilles Vollant.
|
||||
@@ -0,0 +1,217 @@
|
||||
/*
|
||||
You can play with this if you are
|
||||
interested in USB. I'm not planning
|
||||
on doing USB unless the legacy PS2
|
||||
keyboard/mouse mode disappears.
|
||||
There EHCI UHCI in various ICH chips and
|
||||
others and God knows how many custom packet
|
||||
formats for different keyboards and mice. Okay,
|
||||
I suppose if BIOS can make a universal
|
||||
packet, it is done just one way for
|
||||
different mice. PS2 is more compatible.
|
||||
|
||||
*/
|
||||
#help_index "USB"
|
||||
extern I64 sys_num_usb;
|
||||
extern CUSB sys_usb_devs[MAX_USB];
|
||||
extern CUSBTD *USBAllocTD();
|
||||
extern U0 USBFreeTD(CUSBTD *temptd);
|
||||
extern U0 USBEndAll();
|
||||
extern U0 USBInitAll();
|
||||
extern U32 *USBAllocFrameLst(I64 usb_num,I64 size);
|
||||
|
||||
U8 *StatCB(CDoc *,CDocEntry *doc_e,CTask *mem_task)
|
||||
{ //This routine shows the stat of the USB ports
|
||||
U8 *st=MAlloc(128,mem_task);
|
||||
U16 w1,w2,w3,w4;
|
||||
U32 d1;
|
||||
CUSB *u=doc_e->user_data;
|
||||
I64 d=u->ports;
|
||||
w3=InU16(d+USBP_STS);
|
||||
w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1);
|
||||
w4=InU16(d+USBP_FRNUM);
|
||||
d1=InU32(d+USBP_FRBASEADD);
|
||||
SPrintF(st,"%X:Stat:%04X P0:%04X P1:%04X FRAME:%04X",d1,w3,w1,w2,w4);
|
||||
return st;
|
||||
}
|
||||
|
||||
U0 PutStat()
|
||||
{
|
||||
I64 i;
|
||||
Bool old_preempt=Preempt(OFF);
|
||||
CDocEntry *doc_e;
|
||||
CUSB *u;
|
||||
WinMax;
|
||||
|
||||
"$$FG,GREEN$$Dev Stat Bits\n$$FG$$"
|
||||
" 0:IRQ\n"
|
||||
" 1:IRQ err\n"
|
||||
" 2:Resume\n"
|
||||
" 3:Host Sys Err\n"
|
||||
" 4:Host Process Err\n"
|
||||
" 5:Halted\n"
|
||||
"$$FG,GREEN$$Port Stat Bits\n$$FG$$"
|
||||
" 0:Connection Stat\n"
|
||||
" 1:Connection Stat Change\n"
|
||||
" 2:Port Enabled\n"
|
||||
" 3:Port Enabled Change\n"
|
||||
"4-5:Line Stat\n"
|
||||
" 6:Resume Detect\n"
|
||||
" 8:Low Speed\n"
|
||||
" 9:Port Rst\n"
|
||||
" 10:Overcurrent Active\n"
|
||||
" 11:Overcurrent Indicator\n"
|
||||
" 12:Suspend\n\n";
|
||||
|
||||
for (i=0;i<sys_num_usb;i++) {
|
||||
u=&sys_usb_devs[i];
|
||||
"$$FG,LTRED$$Dev%d:%X:",i,u->ports;
|
||||
doc_e=DocPutS(DocCur,"$$TX+TC,\" \"$$");
|
||||
doc_e->user_data=&sys_usb_devs[i];
|
||||
doc_e->tag_cb=&StatCB;
|
||||
"$$FG$$\n";
|
||||
}
|
||||
|
||||
Preempt(old_preempt);
|
||||
NewLine;
|
||||
}
|
||||
|
||||
|
||||
extern U0 PutQH(U32 h);
|
||||
|
||||
U32 *P(U32 d)
|
||||
{
|
||||
return d&~3;
|
||||
}
|
||||
|
||||
|
||||
U0 PutTD(U32 t)
|
||||
{
|
||||
"TD:$$FG,GREEN$$%08X$$FG$$\n",t;
|
||||
"%08X\n",*P(t);
|
||||
DocDm(t+4,8);
|
||||
if (*P(t+12))
|
||||
DocDm(*P(t+12),16);
|
||||
// DocDm(*P(t+12),*P(t+4)>>21&0x7FF);
|
||||
if (!(*P(t)&1)) {
|
||||
if (*P(t)&2)
|
||||
PutQH(*P(t));
|
||||
else
|
||||
PutTD(*P(t));
|
||||
}
|
||||
}
|
||||
|
||||
U0 PutQH(U32 h)
|
||||
{
|
||||
"QH:$$FG,RED$$%08X$$FG$$\n",h;
|
||||
"%08X\n",*P(h);
|
||||
"%08X\n",*P(h+4);
|
||||
|
||||
if (!(*P(h)&1)) {
|
||||
if (*P(h)&2)
|
||||
PutQH(*P(h));
|
||||
else
|
||||
PutTD(*P(h));
|
||||
}
|
||||
|
||||
if (!(*P(h+4)&1)) {
|
||||
if (*P(h+4)&2)
|
||||
PutQH(*P(h+4));
|
||||
else
|
||||
PutTD(*P(h+4));
|
||||
}
|
||||
}
|
||||
|
||||
U0 PutFrame(U32 f)
|
||||
{
|
||||
PutQH(f);
|
||||
}
|
||||
|
||||
U0 PutFrames()
|
||||
{
|
||||
I64 i,d,f,w1,w2;
|
||||
CUSB *u;
|
||||
for (i=0;i<sys_num_usb;i++) {
|
||||
u=&sys_usb_devs[i];
|
||||
d=u->ports;
|
||||
w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1);
|
||||
if (w1&1 || w2&1) {
|
||||
f=InU32(d+USBP_FRBASEADD);
|
||||
PutFrame(f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
U0 Main()
|
||||
{
|
||||
USBInitAll;
|
||||
PutStat;
|
||||
PutFrames;
|
||||
"$$FG,RED$$The BIOS sets-up the USB in PS/2 legacy mode.$$FG$$\n";
|
||||
}
|
||||
|
||||
Main;
|
||||
|
||||
|
||||
/* Not Finished
|
||||
#define PORT 5
|
||||
|
||||
#define DEV_ADD_INIT 1
|
||||
#define DEV_ADD 1
|
||||
#define END_PT0 0
|
||||
#define END_PT1 1
|
||||
#define END_PT2 2
|
||||
#define MAX_LEN 8
|
||||
#define TERMINATE 1
|
||||
|
||||
U0 SetUpTD()
|
||||
{
|
||||
CUSB *u=&sys_usb_devs[PORT];
|
||||
I64 i,d=u->ports;
|
||||
U32 *frm=CAllocAligned(0x1000,0x1000,Fs->code_heap),
|
||||
*tds=CAllocAligned(256,16,Fs->code_heap),
|
||||
*buf=CAlloc(128,Fs->code_heap);
|
||||
DocD(buf,128);
|
||||
|
||||
"<0>\n"; Sleep(100);
|
||||
OutU16(d+USBP_CMD,2); //Reset
|
||||
"<1>\n"; Sleep(100);
|
||||
OutU16(d+USBP_CMD,0);
|
||||
"<2>\n"; Sleep(100);
|
||||
OutU16(d+USBP_PORTSC0,4); //Enable
|
||||
OutU16(d+USBP_PORTSC1,4);
|
||||
"<3>\n"; Sleep(100);
|
||||
|
||||
tds[0]=&tds[4](U8 *);
|
||||
tds[1]=0;
|
||||
tds[2]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21;
|
||||
tds[3]=buf;
|
||||
buf[0]=0+RQ_SET_ADDR<<8+DEV_ADD<<16;
|
||||
buf[1]=0+0<<16;
|
||||
|
||||
|
||||
tds[4]=TERMINATE;
|
||||
tds[5]=0;
|
||||
tds[6]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21;
|
||||
tds[7]=buf(U8 *)+8;
|
||||
buf[2]=0+RQ_SET_ADDR<<8+DEV_ADD<<16;
|
||||
buf[3]=0+0<<16;
|
||||
|
||||
frm[0]=&tds[0](U8 *);
|
||||
for (i=1;i<0x1000/4;i++)
|
||||
frm[i]=TERMINATE;
|
||||
|
||||
OutU16(d+USBP_FRNUM,frm);
|
||||
OutU32(d+USBP_FRBASEADD,frm);
|
||||
"<4>\n"; Sleep(200);
|
||||
OutU16(d+USBP_CMD,1);
|
||||
"<5>\n"; Sleep(1000);
|
||||
OutU16(d+USBP_CMD,0);
|
||||
"<6>\n"; Sleep(200);
|
||||
}
|
||||
|
||||
SetUpTD;
|
||||
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
#define USBP_CMD 0x00
|
||||
#define USBP_STS 0x02
|
||||
#define USBP_INTR 0x04
|
||||
#define USBP_FRNUM 0x06
|
||||
#define USBP_FRBASEADD 0x08
|
||||
#define USBP_SOFMOD 0x0C
|
||||
#define USBP_PORTSC0 0x10
|
||||
#define USBP_PORTSC1 0x12
|
||||
#define MAX_USB 16
|
||||
|
||||
class CUSBTD //Not implemented
|
||||
{
|
||||
U32 td[4];
|
||||
};
|
||||
|
||||
class CUSB //Not implemented
|
||||
{
|
||||
U8 num, //USB dev num
|
||||
bus,dev,fun;
|
||||
U16 ports,pad;
|
||||
U32 *frame_lst;
|
||||
};
|
||||
|
||||
//USB Pkt ID's
|
||||
#define PID_OUT 0xE1
|
||||
#define PID_IN 0x69
|
||||
#define PID_SOF 0xA5
|
||||
#define PID_SETUP 0x2D
|
||||
#define PID_DATA0 0xC3
|
||||
#define PID_DATA1 0x4B
|
||||
#define PID_DATA2 0x87
|
||||
#define PID_MDATA 0x0F
|
||||
#define PID_ACK 0xD2
|
||||
#define PID_NAK 0x5A
|
||||
#define PID_STALL 0x1E
|
||||
#define PID_NYET 0x96
|
||||
#define PID_PRE 0x3C
|
||||
#define PID_ERR 0x3C
|
||||
#define PID_SPLIT 0x78
|
||||
#define PID_PING 0xB4
|
||||
|
||||
//USB Std Rqsts
|
||||
#define RQ_GET_STAT 0x0
|
||||
#define RQ_CLR_FEAT 0x1
|
||||
#define RQ_SET_FEAT 0x3
|
||||
#define RQ_SET_ADDR 0x5
|
||||
#define RQ_SET_DESC 0x7
|
||||
#define RQ_GET_CFG 0x8
|
||||
#define RQ_SET_CFG 0x9
|
||||
#define RQ_GET_INTERFACE 0xA
|
||||
#define RQ_SET_INTERFACE 0xB
|
||||
#define RQ_SYNC_FRAME 0xC
|
||||
|
||||
I64 sys_num_usb=0;
|
||||
CUSB sys_usb_devs[MAX_USB];
|
||||
MemSet(sys_usb_devs,0,MAX_USB*sizeof(CUSB));
|
||||
|
||||
|
||||
U0 USBInitOne(I64 b,I64 d,I64 f)
|
||||
{
|
||||
CUSB *u;
|
||||
if (sys_num_usb<MAX_USB &&
|
||||
PCIReadU16(b,d,f,0)==0x8086) {
|
||||
u=&sys_usb_devs[sys_num_usb++];
|
||||
u->num=sys_num_usb;
|
||||
u->bus=b;
|
||||
u->dev=d;
|
||||
u->fun=f;
|
||||
u->ports=PCIReadU32(b,d,f,0x20)&~0x1F;
|
||||
}
|
||||
}
|
||||
|
||||
U0 USBEndAll()
|
||||
{
|
||||
sys_num_usb=0;
|
||||
}
|
||||
|
||||
U0 USBInitAll() //This is only valid for my ICH10 dev
|
||||
{
|
||||
if (sys_num_usb)
|
||||
USBEndAll;
|
||||
USBInitOne(0,29,0);
|
||||
USBInitOne(0,29,1);
|
||||
USBInitOne(0,29,2);
|
||||
USBInitOne(0,29,3);
|
||||
USBInitOne(0,26,0);
|
||||
USBInitOne(0,26,1);
|
||||
USBInitOne(0,26,2);
|
||||
}
|
||||
|
||||
CUSBTD *USBAllocTD()
|
||||
{
|
||||
return MAllocAligned(sizeof(CUSBTD),0x10,sys_uncached_heap);
|
||||
}
|
||||
|
||||
U0 USBFreeTD(CUSBTD *temptd)
|
||||
{
|
||||
Free(temptd);
|
||||
}
|
||||
|
||||
U32 *USBAllocFrameLst(I64 usb_num,I64 size)
|
||||
{ //aligned to 0x1000
|
||||
CUSB *u;
|
||||
if (0<=usb_num<sys_num_usb) {
|
||||
u=&sys_usb_devs[usb_num];
|
||||
Free(u->frame_lst);
|
||||
u->frame_lst=MAllocAligned(size*sizeof(U32),0x1000,sys_uncached_heap);
|
||||
OutU16(u->ports+USBP_CMD,0); //Stop
|
||||
OutU16(u->ports+USBP_FRNUM,0);
|
||||
OutU32(u->ports+USBP_FRBASEADD,u->frame_lst);
|
||||
return u->frame_lst;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/*$HL,0$
|
||||
$FG,5$$TX+CX,"Roll Your Own Distro"$$FG$
|
||||
|
||||
It's unlikely you will get it running on bare hardware, so you'll probably
|
||||
run it in a virtual machine such as VMware. Download the free 64-bit
|
||||
$FG,4$$TX+HTML,"VMware Player","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ for Linux or Windows and point the CDROM at the $FG,4$$TX+HTML,"TempleOSCD.ISO","http://www.templeos.org/TempleOSCD.ISO"$$FG$.
|
||||
(The $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ web page takes a whole minute to load. They hide the free version.)
|
||||
|
||||
Purchase $FG,4$$TX+HTML,"VMware WorkStation","http://www.vmware.com"$$FG$ or download $FG,4$$TX+HTML,"WinImage","http://www.winimage.com/winimage.htm"$$FG$ if you wish to transfer files
|
||||
in and out. The VMWare Workstation will stretch to full-screen and make drives
|
||||
accessible from Windows.
|
||||
|
||||
$HL,1$*/
|
||||
|
||||
#define STD_DISTRO_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n"
|
||||
|
||||
U0 MakeMyISO(U8 *out_iso_filename)
|
||||
{//Does everything with current drive.
|
||||
if (!IsDrvWritable) {
|
||||
"Drive must be writable. Install on Hard drive, first.\n";
|
||||
return;
|
||||
}
|
||||
DelTree("/Distro");
|
||||
Auto(STD_DISTRO_CDROM_CFG);
|
||||
MakeOSInstallPrtBootLoader(,'T');
|
||||
CopyTree("/0000Boot","/Distro/0000Boot");
|
||||
CopyTree("/TempleOS","/Distro/TempleOS");
|
||||
//To save space, optionally delete dictionary.
|
||||
Del("/Distro/TempleOS/Adam/WordStat/WSDefs.DAT");
|
||||
Del("/Distro/TempleOS/Misc/Bible.TXT.Z");
|
||||
Del("/Distro/TempleOS/Misc/PCIDevices.TXT.Z");
|
||||
MkDir("/Distro/Temp");
|
||||
MkDir("/Distro/Temp/ScreenShots");
|
||||
CDFileCreate(out_iso_filename,"/Distro/*","",BOOTCD_BIN_Z);
|
||||
//CDImageWrite('T',out_iso_filename,MT_CD); //Uncomment to burn a CD-ROM or (MT_DVD)
|
||||
//DelTree("/Distro");
|
||||
}
|
||||
|
||||
MakeMyISO("/MyDistro.ISO");
|
||||
|
||||
// Study my account examples $LK,"Cfg Strs","FL:::/TempleOS/Demo/AcctExample/TSAdam.CPP,1"$ $LK,"Update Funs","FL:::/TempleOS/Demo/AcctExample/TSDistro.CPP,1"$.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
* "Linux" is probably a trademark owned by Linus Torvalds.
|
||||
* "VMware Player" and "VMware WorkStation" are trademarks of VMware, Inc.
|
||||
* "Windows" is a trademark of MicroSoft Corp.
|
||||
* "WinImage" is a trademark of Gilles Vollant.
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,72 @@
|
||||
//9 has graphics
|
||||
|
||||
#define X 330
|
||||
#define Y 15
|
||||
|
||||
#define NUM_BEAMS 256
|
||||
|
||||
F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS];
|
||||
|
||||
U0 DrawIt(CTask *,CDC *dc)
|
||||
{
|
||||
I64 i;
|
||||
F64 r,x1,y1,x2,y2;
|
||||
dc->color=YELLOW;
|
||||
GrCircle(dc,X,Y,10);
|
||||
GrFloodFill(dc,X,Y,10);
|
||||
dc->color=BROWN;
|
||||
GrCircle(dc,X,Y,10);
|
||||
dc->color=YELLOW;
|
||||
for (i=0;i<NUM_BEAMS;i++) {
|
||||
r=125.0*((0.25*tMBeat+beams_r[i])%1.0);
|
||||
P2R(&x1,&y1,r ,beams_é[i]);
|
||||
P2R(&x2,&y2,r+10.0,beams_é[i]);
|
||||
GrLine(dc,x1+X,y1+Y,x2+X,y2+Y);
|
||||
}
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
I64 i;
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
for (i=0;i<NUM_BEAMS;i++) {
|
||||
beams_r[i]=Rand;
|
||||
beams_é[i]=2*ã*Rand;
|
||||
}
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK,"Numbers,6:25","BF:Numbers,6:25"$\n"
|
||||
"$LK,"Psalms,31:16","BF:Psalms,31:16"$\n"
|
||||
"$LK,"Psalms,67:1","BF:Psalms,67:1"$\n"
|
||||
"$LK,"Psalms,80:3","BF:Psalms,80:3"$\n"
|
||||
"$LK,"Psalms,80:19","BF:Psalms,80:19"$\n"
|
||||
"$LK,"Psalms,119:135","BF:Psalms,119:135"$\n"
|
||||
"$LK,"Daniel,9:17","BF:Daniel,9:17"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
"$$BD+H,LTCYAN$$$$FD+H,BLACK$$";
|
||||
while (!ScanKey) {
|
||||
"$$FG,WHITE$$To God...\n$$FG$$";
|
||||
Play("W13etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG",
|
||||
"I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG",
|
||||
"I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("!3DBsFGF!G2eG!!3FRDqEGeB!E",
|
||||
"What \0a \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("!qDBsFGF!G2eG!!3FRDqEGeB!E",
|
||||
"I'm \0so \0coy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,41 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.736;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"There are myths about the River\n"
|
||||
"Styx separating the land of the\n"
|
||||
"living from dead. Jesus' told a story\n"
|
||||
"about the land of living separate from\n"
|
||||
"land of dead. ($LK,"Luke,16:22","BF:Luke,16:22"$) In the Old\n"
|
||||
"Testament, the River Jordan was a special\n"
|
||||
"barrier. ($LK,"Deuteronomy,4:22","BF:Deuteronomy,4:22"$)\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("W13sBBBBqCq.BeAqBh.A",
|
||||
"Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0");
|
||||
Play("M2/4");
|
||||
Play("eECqAM4/4");
|
||||
Play("sBBBBqCq.BeAqBh.A",
|
||||
"Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0");
|
||||
Play("M2/4");
|
||||
Play("eDDqDM4/4");
|
||||
Play("DeEDqG!CeF2G3qG!!sFGFG!!eD!C",
|
||||
"Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0");
|
||||
Play("qDeEDqG!CeF2G3qG!!sFGFG!!eD!C",
|
||||
"Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,22 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("2qG3etC2GG3qARR2etG3FBqEeFE",
|
||||
"All \0righ\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("2qG3etC2GG3qARR2etG3FBqEeFE",
|
||||
"All \0migh\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qFFEEeEBqFCB",
|
||||
"Al\0read\0y, \0 \0I've \0 \0seen \0en\0ough.\n\0");
|
||||
Play("FFEEeEBqFCB",
|
||||
"Oh \0bo\0y, \0 \0was \0 \0that \0rough.\n\0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,22 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3etDGDqGeCGetAE2G3eEFsGBGBqEG",
|
||||
"Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0");
|
||||
Play("etDGDqGeCGetAE2G3eEFsGBGBqEG",
|
||||
"Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0");
|
||||
Play("EsBGBGeEC2G3AqF2G3sC2G3C2GqG",
|
||||
" \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("3EsBGBGeEC2G3AqF2G3sC2G3C2GqG",
|
||||
" \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,74 @@
|
||||
//8 has graphics
|
||||
|
||||
#define R1 13
|
||||
#define R2 21
|
||||
|
||||
U0 DrawIt(CTask *,CDC *dc)
|
||||
{
|
||||
static F64 é=0;
|
||||
I64 x1=200,y1=20,x2=x1,y2=y1+R2;
|
||||
F64 tt=tMBeat%16.0,č;
|
||||
é+=1/(tt*tt+1);
|
||||
dc->color=BLACK;
|
||||
dc->pen_width=4;
|
||||
GrCircle3(dc,x2,y2,0,R2+10);
|
||||
for (č=é;č<é+2*ă;č+=ă/3) {
|
||||
dc->color=BLACK;
|
||||
dc->pen_width=2;
|
||||
GrCircle3(dc,x2+R2*Cos(č),y2-R2*Sin(č),0,8);
|
||||
dc->color=WHITE;
|
||||
dc->pen_width=2;
|
||||
GrCircle3(dc,x2+(R2+15)*Cos(č+ă/6),y2-(R2+15)*Sin(č+ă/6),0,3);
|
||||
}
|
||||
dc->color=BROWN;
|
||||
GrFloodFill(dc,x2+R2*Cos(č),y2-R2*Sin(č));
|
||||
dc->color=DKGRAY;
|
||||
GrFloodFill(dc,x2,y2);
|
||||
dc->pen_width=6;
|
||||
dc->color=RED;
|
||||
GrCircle3(dc,x1,y1,0,R1-6);
|
||||
dc->color=DKGRAY;
|
||||
GrCircle3(dc,x1,y1,0,R1-2);
|
||||
dc->color=LTGRAY;
|
||||
GrRect(dc,x1-2,y1-R2-1,4,10);
|
||||
GrCircle3(dc,x1,y1,0,R1);
|
||||
dc->color=RED;
|
||||
GrFloodFill(dc,x1,y1,TRUE);
|
||||
dc->color=BLACK;
|
||||
GrFloodFill(dc,x1,y1);
|
||||
}
|
||||
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK,"Mark,14:37","BF:Mark,14:37"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
"$$FG,GREEN$$Jesus talking...$$FG$$\n";
|
||||
Play("W13eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C",
|
||||
"Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C",
|
||||
"Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0");
|
||||
Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,48 @@
|
||||
//7 has words
|
||||
|
||||
F64 t0=tMBeat;
|
||||
|
||||
U0 DrawIt(CTask *task,CDC *dc)
|
||||
{
|
||||
static I64 i=0;
|
||||
F64 dt=tMBeat-t0;
|
||||
if (dt>16.0 && i++&1) {
|
||||
dc->color=WHITE;
|
||||
GrRect(dc,0,0,task->win_pixel_width,task->win_pixel_height);
|
||||
}
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
|
||||
task=PopUpViewStr(
|
||||
"$LK-A,"BF:Acts,9:3"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
music_tempo=2.5;
|
||||
DocCursor;
|
||||
DocClear;
|
||||
Fs->draw_it=&DrawIt;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
t0=tMBeat;
|
||||
Play("3qEeACA2G3qCEC2G3E",
|
||||
"Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0");
|
||||
Play("EeACA2G3qCEC2G3E",
|
||||
"Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0");
|
||||
Play("GCGBEeDFCAqD",
|
||||
"It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0");
|
||||
Play("GCGBEeDFCAqD",
|
||||
"It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,54 @@
|
||||
//9 has graphics
|
||||
|
||||
F64 t0;
|
||||
#define HORIZON_Y 50
|
||||
#define LEFT_EDGE 200
|
||||
|
||||
U0 DrawIt(CTask *task,CDC *dc)
|
||||
{
|
||||
I64 i;
|
||||
F64 dt=tMBeat-t0,d=Limit(0.1*dt,0,2),d2;
|
||||
|
||||
dc->color=ROPF_PROBABILITY_DITHER+LTCYAN<<16+CYAN;
|
||||
for (i=HORIZON_Y;i>=0;i--) {
|
||||
d2=ToF64(HORIZON_Y-i)/HORIZON_Y;
|
||||
dc->dither_probability=1<<16*Limit((4.0-d2)/4.0*d*d-0.15,0,1.0);
|
||||
GrLine(dc,LEFT_EDGE,i,task->win_pixel_width-1,i);
|
||||
}
|
||||
|
||||
d=(task->win_pixel_width-LEFT_EDGE)/2+LEFT_EDGE;
|
||||
dc->color=YELLOW;
|
||||
GrCircle(dc,d,HORIZON_Y+50-dt,40);
|
||||
GrFloodFill(dc,d,HORIZON_Y+15-dt,TRUE);
|
||||
|
||||
dc->color=GREEN;
|
||||
GrRect(dc,200,HORIZON_Y,task->win_pixel_width-200,task->win_pixel_height-HORIZON_Y);
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.500;
|
||||
music_stacatto_factor= 0.900;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
t0=tMBeat;
|
||||
Play("3qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB",
|
||||
"New \0day \0is \0born.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB",
|
||||
"Though \0it's \0the \0mourn',\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG",
|
||||
"cheer-\0up \0 \0the \0heart\n\0 \0 \0 \0 \0 \0 \0 \0 \0as \0 \0you \0");
|
||||
Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG",
|
||||
"hitch-\0up \0 \0the \0cart.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,22 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qEsCDCDqCDeEGsEBEBeCBsDADA",
|
||||
"Be \0like \0 \0a \0 \0child \0 \0 \0 \0some \0 \0re\0 \0spect.\n\0 \0 \0 \0 \0 \0");
|
||||
Play("qEsCDCDqCDeEGsEBEBeCBsDADA",
|
||||
"Ma\0tur\0 \0i\0 \0ty \0 \0 \0 \0don't \0 \0ne\0 \0glect.\n\0 \0 \0 \0 \0 \0");
|
||||
Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB");
|
||||
Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,24 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qBAeEE!qAeA!EDB!2qG3F",
|
||||
"$$FG,RED$$You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n\0");
|
||||
Play("BAeEE!qAeA!EDB!2qG3F",
|
||||
"You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n$$FG$$\0");
|
||||
Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G",
|
||||
"Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0");
|
||||
Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G",
|
||||
"Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 3.966;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qABeCCqABAAR",
|
||||
"What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0");
|
||||
Play("ABeCCqABAAR",
|
||||
"What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0");
|
||||
Play("DeCCCCqCDCCR",
|
||||
"Do \0You \0 \0think \0 \0 \0I'll \0app\0laud?\n\0 \0");
|
||||
Play("ABeCCqABAAR",
|
||||
"What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0");
|
||||
Play("GD!G!!eGA2G3FqF!!eDRqB",
|
||||
"$$FG,RED$$Be\0-e-\0cause \0 \0 \0 \0I \0 \0a\0 \0m.\n\0");
|
||||
Play("GD!G!!eGA2G3FqF!!eDRqB",
|
||||
"Are \0 \0you \0 \0 \0 \0a \0 \0fan?\n$$FG$$\0 \0 \0");
|
||||
"$$FG,GREEN$$(If God talks, how can you be sure it's not Him?\n"
|
||||
"You can't, so harden not your heart.)\n$$FG$$";
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,29 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK-A,"BF:Luke,12:16"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("3etGREqDDBRGCB",
|
||||
"It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\n\0");
|
||||
Play("etGREqDDBRGCB",
|
||||
"If \0 \0we \0reach \0 \0the \0 \0end \0ev\0er.\n\0");
|
||||
Play("2sG3E2G3EqGsGBGBqDsFCFCqBRsCBCB",
|
||||
"Hand \0 \0of \0 \0God, \0 \0just \0 \0might, \0 \0in\0 \0ter\0 \0cedes.\n\0 \0 \0 \0 \0 \0");
|
||||
Play("2G3E2G3EqGsGBGBqDsFCFCqBRsCBCB",
|
||||
"If \0 \0it's \0 \0not \0 \0deemed \0 \0right, \0 \0won't \0 \0suc\0 \0ceed.\n\0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,24 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("M9/8");
|
||||
Play("W13hDeFhDeFhDC");
|
||||
Play("FeDhFeDhFE");
|
||||
Play("M4/4");
|
||||
Play("qD!!2G3AeBF!FE2qG!!3D!!A",
|
||||
"Hold \0 \0on!\n\0 \0It's \0gon\0na \0be \0fine.\n\0 \0");
|
||||
Play("D!!2G3AeBF!FE2qG!!3D!!A",
|
||||
"Hold \0 \0on!\n\0 \0It's \0gon\0na \0be \0fine.\n\0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3sEAEAeFFsA2G3A2G3FGFGqCCBA",
|
||||
"All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0");
|
||||
Play("sEAEAeFFsA2G3A2G3FGFGqCCBA",
|
||||
"All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0");
|
||||
Play("ACeCCsBBBBqEsCCCCqAE");
|
||||
Play("ACeCCsBBBBqEsCCCCqAE");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("M3/4");
|
||||
Play("W13eECqAAeECqAA",
|
||||
"I \0hate \0you.\n\0 \0I \0hate \0you.\n\0 \0");
|
||||
Play("eDCqAAeECqAR",
|
||||
" \0 \0 \0 \0I \0hate \0you.\n\0 \0");
|
||||
Play("M6/8");
|
||||
Play("etAB!GqCsGEGE!!etGBDqCsCD!CD",
|
||||
"$$FG,RED$$Don't \0 \0 \0smile.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("etAB!GqCsGEGE!!etGBDqCsCD!CD",
|
||||
"Don't \0 \0 \0smile.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,16 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA",
|
||||
"Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0");
|
||||
Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA",
|
||||
"Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0");
|
||||
Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG");
|
||||
Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,24 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D",
|
||||
" \0I\0mag\0 \0ine.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D",
|
||||
" \0 \0Fa\0 \0thom.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("!!GF!G!!FE!!BE!BeCB2qG3sFAFAqCEA",
|
||||
"Hi-\0 \0i-\0gh \0as \0 \0your \0 \0thoughts \0will \0go.\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("!!sGF!G!!FE!!BE!BeCB2qG3sFAFAqCEA",
|
||||
"Deep \0 \0 \0as \0 \0 \0we \0 \0ought \0to \0know.\n\0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E",
|
||||
" \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0");
|
||||
Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E",
|
||||
" \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0");
|
||||
Play("sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G");
|
||||
Play("3sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
"$$FG,GREEN$$To God...$$FG$$\n";
|
||||
Play("M5/4");
|
||||
Play("W13eEqCeEFEDCqBeEqCeEFEDCqB",
|
||||
"Fa\0ther, \0for\0give \0them \0if \0you \0must.\n\0I'd \0like \0to \0see \0them \0turn \0to \0dust.\n\0");
|
||||
Play("M4/4");
|
||||
Play("sGBGBetAF!2G3eEF!sEGEGqDsB!!D!BDGFGF2etG3GB");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,39 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.500;
|
||||
music_stacatto_factor= 0.900;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$$WW+H,1$$You get what you pray for. "
|
||||
"Most people are fools like King Midas. People have laughable notions of Heaven. "
|
||||
"You'd be surprised -- I can't imagine things being much better than Earth "
|
||||
"because we need a sense of purpose. "
|
||||
"Don't ask for stuff, let God pick, but He might get annoyed at that. "
|
||||
"God wants us to be happy. He tries hard. If you do get what you pray for, you damn "
|
||||
"well better be happy, lil' sonfabitch!\n\n"
|
||||
"$LK,"Ecclesiastes,3:13","BF:Ecclesiastes,3:13"$\n"
|
||||
"$LK,"John,16:24","BF:John,16:24"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("W13qBeCDqCAetAACeECsF2G3F2GqG",
|
||||
"I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0");
|
||||
Play("3BeCDqCAetAACeECsF2G3F2GqG",
|
||||
"I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0");
|
||||
Play("3etEDDDGABG2GeG3E2G3GqF2G3etGCD",
|
||||
"He \0 \0 \0told \0 \0 \0me \0 \0 \0 \0to \0 \0be \0hap\0py.\n\0 \0 \0 \0");
|
||||
Play("EDDDGABG2GeG3E2G3GqF2G3etGCD",
|
||||
"He \0 \0 \0said \0 \0 \0to \0 \0 \0 \0make \0 \0it \0snap\0py.\n\0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,39 @@
|
||||
//9 has graphics
|
||||
|
||||
|
||||
U0 DrawIt(CTask *task,CDC *dc)
|
||||
{
|
||||
I64 i,cx=0.85*task->win_pixel_width,cy=task->win_pixel_height+10;
|
||||
dc->pen_width=5;
|
||||
for (i=2;i<=7;i++) {
|
||||
dc->color=gr_rainbow_10[9-i];
|
||||
GrCircle3(dc,cx,cy,0,(i+5)*5);
|
||||
}
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
DocClear;
|
||||
"$$BG,LTCYAN$$$$FG,BLACK$$";
|
||||
Play("3eEDsBABA2qG3etGECFDBECFCBReBE",
|
||||
"Come \0and \0sing \0 \0a\0 \0long. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0");
|
||||
Play("EDsBABA2qG3etGECFDBECFCBReBE",
|
||||
"Of\0fer \0praise \0 \0to \0 \0God. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0");
|
||||
Play("qBeDF2qG3eFRqBetFFGeACDF",
|
||||
"Up \0in \0His \0hea\0ven \0 \0He \0is \0 \0 \0glor\0i\0ous.\n\0 \0");
|
||||
Play("qBeDF2qG3eFRqBetFFGeACDF",
|
||||
"Break \0in\0to \0song. \0 \0 \0Strike-\0up \0 \0 \0the \0chor\0us.\n\0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,62 @@
|
||||
//8 has graphics
|
||||
|
||||
U0 DrawIt(CTask *,CDC *dc)
|
||||
{
|
||||
I64 i;
|
||||
F64 dt=tMBeat%8.0,z,w,x1,y1,z1,x2,y2,z2;
|
||||
Bool first=TRUE;
|
||||
DCAllocDepthBuf(dc);
|
||||
dc->flags|=DCF_TRANSFORMATION;
|
||||
dc->x=30*dt+20.0*Sin(dt)+25;
|
||||
dc->y=10*dt-15;
|
||||
dc->z=GR_Z_ALL;
|
||||
GrRotXEqu(dc->r,0.75*dt);
|
||||
GrRotYEqu(dc->r,0.45*dt);
|
||||
GrRotZEqu(dc->r,0.50*dt);
|
||||
GrScaleMatEqu(dc->r,0.5);
|
||||
for (i=-50;i<40;i+=2) {
|
||||
if (i&2)
|
||||
dc->color=LTGRAY;
|
||||
else
|
||||
dc->color=DKGRAY;
|
||||
z=10*Cos(i/10.0*ã/8.0)*Cos(dt);
|
||||
w=Tri(100+i,200);
|
||||
x1=i-3;y1=0;z1=z;
|
||||
if (-30<=i<=40) {
|
||||
GrLine3(dc,i,-10*w,z,i-3,0,z);
|
||||
GrLine3(dc,i,+10*w,z,i-3,0,z);
|
||||
}
|
||||
if (!first) {
|
||||
dc->color=DKGRAY;
|
||||
GrLine3(dc,x1,y1,z1,x2,y2,z2);
|
||||
}
|
||||
x2=x1;y2=y1;z2=z1;
|
||||
first=FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
"$$BG+H,LTCYAN$$";
|
||||
while (!ScanKey) {
|
||||
Play("W13qE!AA!etF2G3G!qDF!!etFE!D2eG!3G",
|
||||
"A\0dam... \0 \0no \0 \0 \0long\0er \0sees \0Your \0face.\n\0 \0 \0");
|
||||
Play("qE!AA!etF2G3G!qDF!!etFE!D2eG!3G",
|
||||
"Oh! \0 \0 \0What \0 \0a \0wretch\0ed \0bar\0ren \0waste!\n\0 \0 \0");
|
||||
Play("qACFeB!CB2GqG3E!D",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0Ex\0iled.\n\0");
|
||||
Play("ACFeB!CB2GqG3E!D");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//0 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13e.C2sG3qEe.FsB!eCCsFGeBA!AetAR!!EeE!sCB");
|
||||
Play("e.C2sG3qEe.FsB!eCCsFGeBA!AetAR!!EeE!sCB");
|
||||
Play("eG!E2qG3sCD!CDe.EsG!!qCsD!CDC!!e.AsReG!E");
|
||||
Play("G!E2qG3sCD!CDe.EsG!!qCsD!CDC!!e.AsReG!E");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
task=PopUpViewStr(
|
||||
"$LK-A,"BF:Luke,7:42"$\n"
|
||||
"\n"
|
||||
"Prodigal Son\n"
|
||||
"$LK-A,"BF:Luke,15:21"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
"$$WW+H,1$$";
|
||||
while (!ScanKey) {
|
||||
Play("3qGGsEAEAqAsF2G3F2G3qCeEFqD",
|
||||
"Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0");
|
||||
Play("GGsEAEAqAsF2G3F2G3qCeEFqD",
|
||||
"Waaa, \0waaa, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0");
|
||||
Play("eFCqEBDBE2eG3EsFEFE",
|
||||
" \0 \0I \0 \0ne\0ver \0sin.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("eFCqEBDBE2eG3EsFEFE",
|
||||
" \0 \0I \0 \0ne\0ver \0win.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
"$$FG,GREEN$$(A warning on presumption. 'Who loves more man -- forgiven big debt or little?' See prodigal son.)$$FG$$\n";
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,25 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.857;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13eEDEFqDDeEDEDqCC",
|
||||
"$$CL$$Sit\0ting \0in \0a \0church\n\0 \0wond\0ering \0to \0my\0self,\n\0 \0");
|
||||
Play("eD2G3BCqDsGGGGeD2G3BCqDsGGGG",
|
||||
"\"Is \0 \0God \0 \0real?\"\n\0 \0 \0 \0 \0\"At \0 \0the \0 \0wheel?\"\n\0 \0 \0 \0 \0");
|
||||
"$$FG,GREEN$$God talking...\n$$FG$$";
|
||||
Play("qF!FFetREA!qG!sG!FG!!F!GEGEqC",
|
||||
"$$FG,RED$$Oh, \0Hell \0yes!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("F!FFetREA!qG!sG!FG!!F!GEGEqC",
|
||||
"Pass \0the \0test.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//7 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.758;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE");
|
||||
Play("sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE");
|
||||
Play("sGBGB2etG3EGqF!!ED2G3eBA!DG");
|
||||
Play("sGBGB2etG3EGqF!!ED2G3eBA!DG");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//8 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.714;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13sBBBBEBDBeEBqDeBBEDEBqD");
|
||||
Play("sFEFEeFEDBqDeEFEBABqD");
|
||||
Play("eDGqEeBAABqF!eBD!qE!A");
|
||||
Play("eDGqEeBAABqF!eBD!qE!A");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,24 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 1.930;
|
||||
music_stacatto_factor= 0.604;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13sEqAsDeCqAsEqAsDeCqAsDeEqEsE",
|
||||
"Jes\0us \0kind \0of \0freaks,\n\0Jes\0us \0kind \0of \0freaks,\n\0are \0dif\0ferent \0 \0");
|
||||
Play("eDqCsDeCqBsBeBqAetBED!qBeC!B",
|
||||
"from \0 \0oth\0er\n\0 \0 \0peo\0ple.\n\0 \0 \0 \0 \0They \0don't \0");
|
||||
Play("2qGeG!3FsCDC!!DqFetB!ACBED!qBeC!B",
|
||||
"care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0They \0don't \0");
|
||||
Play("2qGeG!3FsCDC!!DqFetB!AC",
|
||||
"care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,152 @@
|
||||
//8 has graphics
|
||||
|
||||
class CBubble
|
||||
{
|
||||
CBubble *next,*last;
|
||||
F64 x,y,dx,dy,radius;
|
||||
} root;
|
||||
|
||||
F64 t0;
|
||||
U64 flags;
|
||||
|
||||
#define X 360
|
||||
#define Y 52
|
||||
|
||||
F64 Windé()
|
||||
{
|
||||
F64 t=ã*(tMBeat-t0);
|
||||
return Arg(Sin(t/8),1.0+Sin(t/4));
|
||||
}
|
||||
|
||||
U0 DrawIt(CTask *,CDC *dc)
|
||||
{
|
||||
CBubble *tempb;
|
||||
F64 é;
|
||||
|
||||
if (LBts(&flags,0))
|
||||
return;
|
||||
|
||||
dc->flags|=DCF_TRANSFORMATION;
|
||||
GrRotXEqu(dc->r,ã/4);
|
||||
|
||||
é=Wrap(ã-Windé);
|
||||
GrRotZEqu(dc->r,-ã/2+é/4);
|
||||
|
||||
dc->color=BLUE;
|
||||
dc->x=X;
|
||||
dc->y=Y;
|
||||
dc->pen_width=2;
|
||||
GrCircle3(dc,0,0,0,10);
|
||||
GrLine3(dc,-10,0,0,-30,0,0);
|
||||
|
||||
tempb=root.next;
|
||||
while (tempb!=&root) {
|
||||
dc->color=LTBLUE;
|
||||
GrCircle(dc,tempb->x,tempb->y,tempb->radius);
|
||||
dc->color=LTGRAY;
|
||||
GrCircle(dc,
|
||||
tempb->x+0.65*tempb->radius*Cos(5*ã/8),
|
||||
tempb->y-0.65*tempb->radius*Sin(5*ã/8),
|
||||
1.0+0.2*tempb->radius);
|
||||
tempb=tempb->next;
|
||||
}
|
||||
LBtr(&flags,0);
|
||||
}
|
||||
|
||||
U0 AnimateTask(I64)
|
||||
{ //Preemption is off after Spawn
|
||||
CTask *task=Fs->parent_task;
|
||||
CBubble *tempb,*tempb1;
|
||||
F64 t_last=tMBeat,dt,tSpawn=0,é;
|
||||
|
||||
while (TRUE) {
|
||||
dt=tMBeat-t_last;
|
||||
t_last=tMBeat;
|
||||
|
||||
while (LBts(&flags,0))
|
||||
Yield;
|
||||
|
||||
tSpawn+=dt;
|
||||
while (tSpawn>1.0) {
|
||||
tempb=MAlloc(sizeof(CBubble));
|
||||
tempb->x=X;
|
||||
tempb->y=Y;
|
||||
tempb->dx=0;
|
||||
tempb->dy=0;
|
||||
tempb->radius=Rand*6+4;
|
||||
QueIns(tempb,root.last);
|
||||
tSpawn-=Rand;
|
||||
}
|
||||
|
||||
é=Windé;
|
||||
tempb=root.next;
|
||||
while (tempb!=&root) {
|
||||
tempb1=tempb->next;
|
||||
|
||||
tempb->dx+=25*dt*(Rand-0.5);
|
||||
tempb->dy+=25*dt*(Rand-0.5);
|
||||
tempb->x += dt*(20*Cos(é)+tempb->dx);
|
||||
tempb->y +=-dt*(20*Sin(é)+tempb->dy);
|
||||
|
||||
if (!(0<=tempb->x<task->win_pixel_width) ||
|
||||
!(0<=tempb->y<task->win_pixel_height) ) {
|
||||
QueRem(tempb);
|
||||
Free(tempb);
|
||||
}
|
||||
|
||||
tempb=tempb1;
|
||||
}
|
||||
|
||||
LBtr(&flags,0);
|
||||
Sleep(20);
|
||||
}
|
||||
}
|
||||
|
||||
U0 Init()
|
||||
{
|
||||
flags=0;
|
||||
QueInit(&root);
|
||||
t0=tMBeat;
|
||||
}
|
||||
|
||||
U0 CleanUp()
|
||||
{
|
||||
QueDel(&root);
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Preempt(OFF);
|
||||
Init;
|
||||
Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs);
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK,"Romans,8:28","BF:Romans,8:28"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("W13qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G",
|
||||
"Free \0will... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0fail.\n\0 \0 \0 \0");
|
||||
Play("3qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G",
|
||||
"God \0still... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0hail.\n\0 \0 \0 \0");
|
||||
Play("3qD2G3eA2G3qCetEC!AqBsA!!C!ACqA",
|
||||
"All \0things \0work \0for \0good... \0to \0the \0Lord.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("D2G3eA2G3qCetEC!AqBsA!!C!ACqA",
|
||||
"It's \0all \0good... \0 \0 \0as\0 \0sured.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
CleanUp;
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//7 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.758;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qBeABqA2G3AB2hG");
|
||||
Play("3sCCCCqBsAAAA2qG3sCCCCqE2GR");
|
||||
Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G");
|
||||
Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"Asking God for stuff is like knocking on the door\n"
|
||||
"of a neighbor in the middle of the night.\n"
|
||||
"It's annoying! We're supposed to love God!\n"
|
||||
"$LK-A,"BF:Luke,11:5"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("3qBBE2GG3FFC",
|
||||
"We \0are \0in \0the \0image \0of \0God.\n\0 \0");
|
||||
Play("BBE2GG3FFC",
|
||||
"Some \0people's \0prayer \0is \0ver\0y \0odd.\n\0 \0");
|
||||
Play("eGDqCB2G3eGEqEC2G",
|
||||
"They \0don't \0love \0Him.\n\0 \0They \0love \0their \0neigh\0bor.\n\0");
|
||||
Play("3eGDqCB2G3eGEqEC2G",
|
||||
"Pest\0er\0ing \0Him.\n\0 \0Ask\0ing \0for \0fav\0ors.\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK-A,"BF:Matthew,19:16"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
"$$WW+H,1$$";
|
||||
while (!ScanKey) {
|
||||
Play("3eGAetCCCFFDqAeAAFAAFqG",
|
||||
"I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0");
|
||||
Play("eGAetCCCFFDqAeAAFAAFqG",
|
||||
"I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0");
|
||||
Play("EeEGqEeEEqDBetCCGqC",
|
||||
"What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0");
|
||||
Play("EeEGqEeEEqDBetCCGqC",
|
||||
"What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0");
|
||||
"$$FG,GREEN$$(Christ said sell all and follow me.)\n$$FG$$";
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,59 @@
|
||||
//8 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.976;
|
||||
music_stacatto_factor= 0.538;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13qEDCDeEEqEeDDqD");
|
||||
Play("EDCDeEEqEeDDqD");
|
||||
Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC");
|
||||
Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//8 has graphics
|
||||
|
||||
U0 DrawIt(CTask *task,CDC *dc)
|
||||
{
|
||||
F64 x1,x2,y1,y2,x3,y3,radius,pedals,é,t=tMBeat,
|
||||
cx=335,cy=task->win_pixel_height>>1;
|
||||
Bool first=TRUE;
|
||||
|
||||
radius=cy*(1.0+Sin(2*ã*t));
|
||||
pedals=8;
|
||||
|
||||
dc->color=BLACK;
|
||||
for (é=0;é<2*ã;é+=2*ã/100) {
|
||||
P2R(&x2,&y2,radius*Abs(Sin(pedals/2*é))+5,é+t);
|
||||
if (!first)
|
||||
GrLine(dc,x1+cx,cy-y1,x2+cx,cy-y2);
|
||||
else {
|
||||
first=FALSE;
|
||||
x3=x2; y3=y2;
|
||||
}
|
||||
x1=x2; y1=y2;
|
||||
}
|
||||
GrLine(dc,x1+cx,cy-y1,x3+cx,cy-y3);
|
||||
|
||||
dc->color=(2*t)%16;
|
||||
GrFloodFill(dc,cx,cy);
|
||||
}
|
||||
|
||||
U0 Song()
|
||||
{
|
||||
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
||||
Fs->draw_it=&DrawIt;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (TRUE) {
|
||||
Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE",
|
||||
"I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0");
|
||||
Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE",
|
||||
"I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0");
|
||||
Play("qCsDEDEq2G3qDqBqAqGq2G3",
|
||||
"Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0");
|
||||
Play("qCsDEDEq2G3qDqBqAqGq2G3",
|
||||
"Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//0 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13eFDGsBReCB2sGRGR!3qEetG!AGeG!sF!!GeRsDG");
|
||||
Play("eFDGsBReCB2sGRGR!3qEetG!AGeG!sF!!GeRsDG");
|
||||
Play("FAFAqG!eEEqBetE!!2GR!3eFsARe.BsCe.RsE");
|
||||
Play("FAFAqG!eEEqBetE!!2GR!3eFsARe.BsCe.RsE");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,23 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
"$$WW+H,1$$";
|
||||
while (!ScanKey) {
|
||||
Play("3qAAsG2G3G2G3qGF2eG3FqEetCBA",
|
||||
"Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0");
|
||||
Play("qAAsG2G3G2G3qGF2eG3FqEetCBA",
|
||||
"Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0");
|
||||
Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD",
|
||||
"What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0");
|
||||
Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD",
|
||||
"What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//9 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG");
|
||||
Play("sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG");
|
||||
Play("eG!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G");
|
||||
Play("3G!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("2eG3DGDqGetA2G3B2qG3GCE",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0");
|
||||
Play("2eG3DGDqGetA2G3B2qG3GCE",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0");
|
||||
Play("C2G3sGFGFDCDCetE2G3CGFAqDeFC");
|
||||
Play("qC2G3sGFGFDCDCetE2G3CGFAqDeFC");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,22 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("qRsR2GRGeGR3qA2etG3EEqEeDCB2G",
|
||||
" \0 \0He \0 \0is \0 \0 \0our \0 \0 \0 \0per\0son\0al \0sav\0ior.\n\0");
|
||||
Play("qRsRGRGeGR3qA2etG3EEqEeDCB2G",
|
||||
" \0 \0We \0 \0can \0ne\0 \0ver \0 \0 \0 \0re\0turn \0the \0fav\0or.\n\0");
|
||||
Play("3CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF",
|
||||
" \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0 \0 \0works \0 \0 \0for \0me.\n\0");
|
||||
Play("CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF",
|
||||
" \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0It's \0 \0works \0 \0 \0for \0me.\n\0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,20 @@
|
||||
//7 no nothing
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 2.480;
|
||||
music_stacatto_factor= 0.780;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13eCDBCA2FFF3C2F3E2F3A2F3sEEeD");
|
||||
Play("F2FFF3qCeF2F3F2FFF3qCeF2F");
|
||||
Play("!3qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC");
|
||||
Play("!qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,16 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
while (TRUE) {
|
||||
Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C");
|
||||
Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C");
|
||||
Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC",
|
||||
"In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0");
|
||||
Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC",
|
||||
"In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0");
|
||||
}
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 3.360;
|
||||
music_stacatto_factor= 0.846;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("M5/4");
|
||||
Play("W12qGGG3qtCBA2qGGG3qtCetBBqtA",
|
||||
"Hymn's \0not \0long.\n\0 \0 \0 \0Nor \0this \0song.\n\0 \0 \0 \0 \0");
|
||||
Play("qEeCCqDqtCBAM4/4",
|
||||
"For\0 \0 \0give!\n\0 \0 \0 \0");
|
||||
Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE",
|
||||
"That's \0 \0 \0all \0 \0I \0 \0say.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE",
|
||||
"This \0 \0 \0I \0 \0 \0 \0pray.\n\0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
//7 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3sF2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG",
|
||||
"In \0 \0the \0 \0twi\0light \0zone,\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("F2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG",
|
||||
"keep \0 \0a \0 \0friend\0ly \0tone.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC",
|
||||
"Mind \0 \0in \0 \0knots? \0 \0 \0 \0Skip \0 \0de \0 \0bait.\n\0 \0 \0 \0 \0");
|
||||
Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC",
|
||||
"Watch \0 \0those \0 \0thoughts. \0 \0 \0 \0Head \0 \0on \0 \0straight.\n\0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,36 @@
|
||||
//8 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
music_tempo=2.5;
|
||||
task=PopUpViewStr(
|
||||
"$$WW+H,1$$$LK-A,"BF:Matthew,6:11"$\n\n"
|
||||
"I find two things interesting. Jesus asks for "
|
||||
"the bare minimum... can't ask for less than daily bread. "
|
||||
"Also, He actually demands it. I find that funny.\n\n"
|
||||
"$LK-A,"BF:Matthew,10:31"$\n\n"
|
||||
"I have a funny story. I used to shoot birds with a BB-gun. "
|
||||
"That passage didn't snd so comforting!! How many sparrows "
|
||||
"am I worth?\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("3qGsB2G3B2G3eF2G3sGGGGeRFC2G3qFC",
|
||||
"Where's \0my \0 \0 \0next \0 \0 \0meal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("GsB2G3B2G3eF2G3sGGGGeRFC2G3qFC",
|
||||
"God, \0we \0 \0 \0had \0 \0a \0deal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("B2GsG3A2G3AeCCsCECEqACsGFGF",
|
||||
"Day \0old \0bread?\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qB2GsG3A2G3AeCCsCECEqACsGFGF",
|
||||
"'Dai\0ly' \0I \0 \0 \0 \0said.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,24 @@
|
||||
//9 has words
|
||||
U0 Song()
|
||||
{
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 1.820;
|
||||
music_stacatto_factor= 0.902;
|
||||
try {
|
||||
while (!ScanKey) {
|
||||
Play("W13eC2G3DDEDqCeEEGFGFqE",
|
||||
"Sit\0ting \0 \0 \0on \0the \0fence,\n\0is \0 \0 \0 \0no \0de\0fence.\n\0");
|
||||
Play("sFFeGFEFEqDsCCeDCBqBB",
|
||||
"Is \0this \0seat \0 \0 \0tak\0 \0en?\n\0An\0 \0y\0one \0op\0 \0pose?\n\0");
|
||||
Play("etB2GG!3qE!2eG3F!EEetFBA!qFDetF!CC",
|
||||
"Take \0 \0a \0step.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("B2GG!3qE!2eG3F!EEetFBA!qFDetF!CC",
|
||||
"Take \0 \0the \0step,\n\0 \0 \0 \0 \0 \0 \0 \0not \0back.\n\0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
@@ -0,0 +1,29 @@
|
||||
//9 has words
|
||||
U0 Song()
|
||||
{
|
||||
CTask *task;
|
||||
Fs->task_end_cb=&SndTaskEndCB;
|
||||
MusicSettingsRst;
|
||||
music_tempo= 1.710;
|
||||
music_stacatto_factor= 0.736;
|
||||
try {
|
||||
task=PopUpViewStr(
|
||||
"$LK,"Ecclesiastes,5:12","BF:Ecclesiastes,5:12"$\n"
|
||||
);
|
||||
TaskWait(task);
|
||||
SetWinHorz(Fs->win_left,Fs->win_right,task);
|
||||
SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
|
||||
while (!ScanKey) {
|
||||
Play("W13sDDDACCADDACCAe.DsCCC2G3FD2G3FD2G3CCAe.D",
|
||||
"I \0 \0 \0 \0got \0 \0 \0paid, \0 \0 \0to\0 \0 \0day.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE",
|
||||
" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0can't \0 \0 \0get \0 \0to \0");
|
||||
Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE",
|
||||
"sleep.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0");
|
||||
}
|
||||
} catch
|
||||
CatchAll;
|
||||
Snd(0);
|
||||
}
|
||||
|
||||
Song;
|
||||
Loaded 100 of 958 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user