TempleOSCDV3.11.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:29 +02:00
1 parent f8c05f98f4
commit ed64d7e3b8
549 files changed
+10643 -12855

No files matched your search

+8 -3
View File
@@ -1,6 +1,6 @@
//Make Your own Distro by #include-ing this file.
#define STD_DISTRO_CDROM_CFG "Tb1\nScale2Mem(2048,0x40000)\nt3 \n\n\n\n"
#define STD_DISTRO_DVD_CFG "Tb1\nScale2Mem(2048,0x40000)\nt3 \n\n\n\n"
U0 MakeMyISO(U8 *out_iso_filename)
{//Does everything with current drive.
@@ -9,8 +9,10 @@ U0 MakeMyISO(U8 *out_iso_filename)
return;
}
DelTree("/Distro");
Del(out_iso_filename);
MkDir("/Distro");
Auto(STD_DISTRO_CDROM_CFG);
Auto(STD_DISTRO_DVD_CFG);
MakeOSDrvBootInstall(,'T');
Copy("/*","/Distro");
@@ -32,7 +34,10 @@ U0 MakeMyISO(U8 *out_iso_filename)
MkDir("/Distro/Temp");
MkDir("/Distro/Temp/ScreenShots");
ISOFileCreate(out_iso_filename,"/Distro/*",,"/Distro" BOOT_DIR_KERNEL_BIN_C);
//CDImageWrite('T',out_iso_filename,MT_CD); //Uncmt to burn CD-ROM or (MT_DVD)
//If CD-ROM use MT_CD instead of MT_DVD.
//DVDImageWrite('T',out_iso_filename,MT_DVD); //Uncomment to burn.
//DelTree("/Distro");
}
+14 -12
View File
@@ -8,12 +8,12 @@ Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
return FALSE;
}
U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,
U0 VMInstallBoot(CTask *task,U8 dvd_drv,U8 drv,
CATARep *ata_drv,CATARep *atapi_drv)
{
U8 *st1,*st2;
st1=MStrPrint("%C:/",cd_drv);
st1=MStrPrint("%C:/",dvd_drv);
st2=MStrPrint("%C:/",drv);
CopyTree(st1,st2);
Free(st1);
@@ -21,7 +21,8 @@ U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,
st1=MStrPrint("%C:/Home",drv);
MkDir(st1);
Copy("::/Misc/MakeDistro.CPP.Z",st1);
Copy("::/Misc/DoDistro.CPP.Z",st1);
Copy("::/MakeHome.CPP.Z",st1);
Free(st1);
XTalkWait(task,
@@ -39,7 +40,7 @@ U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,
"\n"); //Options
}
U0 VMInstallWizard()
U0 VMInstallWiz()
{
CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL;
CTask *task;
@@ -54,10 +55,10 @@ U0 VMInstallWizard()
WinToTop(Fs);
ATARep(FALSE,TRUE,&root);
ATAIDDrvs(root,dsk.boot_drv_let,&ata_drv,&atapi_drv);
ATAIDDrvs(root,blkdev.boot_drv_let,&ata_drv,&atapi_drv);
if (VMPrtDsk(task,ata_drv)) {
VMInstallBoot(task,dsk.boot_drv_let,'C',ata_drv,atapi_drv);
VMInstallBoot(task,dsk.boot_drv_let,'D',ata_drv,atapi_drv);
VMInstallBoot(task,blkdev.boot_drv_let,'C',ata_drv,atapi_drv);
VMInstallBoot(task,blkdev.boot_drv_let,'D',ata_drv,atapi_drv);
MasterBootIntall('C');
}
LinkedLstDel(root);
@@ -66,7 +67,7 @@ U0 VMInstallWizard()
Kill(task);
}
U0 RegularInstallWizard()
U0 RegularInstallWiz()
{
I64 unit;
U8 *base0,*base1,*ms,*dst,*st1,*st2,*new_home_str;
@@ -125,7 +126,7 @@ U0 RegularInstallWizard()
}
'\n';
st1=MStrPrint("%C:/",dsk.boot_drv_let);
st1=MStrPrint("%C:/",blkdev.boot_drv_let);
st2=MStrPrint("%C:/",*dst);
"$$RED$$Format %C Partition?$$FG$$\n",*dst;
@@ -152,7 +153,8 @@ U0 RegularInstallWizard()
new_home_str=MStrPrint("%C:/Home",*dst);
MkDir(new_home_str);
Copy("::/Misc/MakeDistro.CPP.Z",new_home_str);
Copy("::/Misc/DoDistro.CPP.Z",new_home_str);
Copy("::/MakeHome.CPP.Z",new_home_str);
XTalkWait(task,
"MakeOSDrvBootInstall('%C');\n"
"\nB1\n0x20000\n"
@@ -203,7 +205,7 @@ U0 DoInstall()
DocBottom;
if (vm_install) {
VMInstallWizard();
VMInstallWiz();
pmt_reboot=TRUE;
} else {
"\n\nThis wizard works if you have a partition ready. "
@@ -211,7 +213,7 @@ U0 DoInstall()
"with more options if you do it by hand, not using this wizard.\n\n"
"Continue Install Wizard ";
if (pmt_reboot=YorN)
RegularInstallWizard();
RegularInstallWiz();
}
if (pmt_reboot) {
"Reboot Now ";
+8 -3
View File
@@ -452,8 +452,11 @@ U0 DoBomberGolf()
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
Sleep(100);
}
PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
for (i=0;i<7;i++) {
PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP);
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT);
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT);
Sleep(200);
}
PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
@@ -484,7 +487,9 @@ U0 DoVaroom()
I64 i;
CTask *task=User;
XTalkWait(task,"#include \"::/Demo/Games/Varoom\";\n");
for (i=0;i<15;i++) {
for (i=0;i<10;i++) {
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP);
Sleep(50);
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP);
Sleep(50);
PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP);
@@ -1063,7 +1068,7 @@ U0 DoBugFlapper()
{
I64 i;
CTask *task=User;
XTalk(task,"#include \"::/Demo/Games/BugBird\";\n");
XTalk(task,"#include \"::/Demo/Games/FlapBat\";\n");
while (!TaskValidate(task->popup_task))
Yield;
TaskWait(task->popup_task);
-17
View File
@@ -1,17 +0,0 @@
public U0 ToDolDoc(U8 *files_find_mask,U8 *fu_flags=NULL)
{//Convert text file to $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$.
CDoc *doc;
I64 fuf_flags=0;
CDirEntry *tempde,*tempde1;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F");
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
tempde=tempde1=FilesFind(files_find_mask,fuf_flags);
while (tempde) {
"%s\n",tempde->full_name;
doc=DocRead(tempde->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS);
DocWrite(doc);
DocDel(doc);
tempde=tempde->next;
}
DirTreeDel(tempde1);
}
+12 -11
View File
@@ -74,17 +74,18 @@ public I64 PopUpTourPart()
I64 i;
CDoc *doc=DocNew;
DocPrint(doc,"$$PURPLE$$TempleOS Tours$$FG$$\n\n"
"$$CM+LX,4,4$$$$BT,\"Part 1: The basics\",LE=1$$"
"$$CM+LX,4,4$$$$BT,\"Part 2: Editing and running programs\",LE=2$$"
"$$CM+LX,4,4$$$$BT,\"Part 3: Adding macros to PersonalMenu\",LE=3$$"
"$$CM+LX,4,4$$$$BT,\"Part 4: Choose filename, choose dir\",LE=4$$"
"$$CM+LX,4,4$$$$BT,\"Part 5: AutoComplete\",LE=5$$"
"$$CM+LX,4,4$$$$BT,\"Part 6: Search (Find)\",LE=6$$"
"$$CM+LX,4,4$$$$BT,\"Part 7: TempleOS file masks\",LE=7$$"
"$$CM+LX,4,4$$$$BT,\"Part 8: Editor filter\",LE=8$$"
"$$CM+LX,4,4$$$$BT,\"Part 9: Debugging\",LE=9$$"
"$$CM+LX,4,4$$$$BT,\"Part 10: Wow!!\",LE=10$$"
"$$CM+LX,4,4$$$$BT,\"Part 11: Test Suite\",LE=11$$"
"$$CM+LX,4,4$$$$BT,\"Part 1: The help system\",LE=1$$"
"$$CM+LX,4,4$$$$BT,\"Part 2: The basics\",LE=2$$"
"$$CM+LX,4,4$$$$BT,\"Part 3: Editing and running programs\",LE=3$$"
"$$CM+LX,4,4$$$$BT,\"Part 4: Adding macros to PersonalMenu\",LE=4$$"
"$$CM+LX,4,4$$$$BT,\"Part 5: Choose filename, choose dir\",LE=5$$"
"$$CM+LX,4,4$$$$BT,\"Part 6: AutoComplete\",LE=6$$"
"$$CM+LX,4,4$$$$BT,\"Part 7: Search (Find)\",LE=7$$"
"$$CM+LX,4,4$$$$BT,\"Part 8: TempleOS file masks\",LE=8$$"
"$$CM+LX,4,4$$$$BT,\"Part 9: Editor filter\",LE=9$$"
"$$CM+LX,4,4$$$$BT,\"Part 10: Debugging\",LE=10$$"
"$$CM+LX,4,4$$$$BT,\"Part 11: Wow!!\",LE=11$$"
"$$CM+LX,4,4$$$$BT,\"Part 12: Test Suite\",LE=12$$"
"$$CM+LX,4,4$$$$BT,\"Done\",LE=DOCM_CANCEL$$\n");
doc->flags|=DOCF_FORM;
i=PopUpPrint("WinMax;DocMenu(0x%X,0);",doc);
+53 -57
View File
@@ -2,67 +2,63 @@
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
TourPut(
"You are now at the command line.\n"
"\n"
"The syntax is like $$GREEN$$C/C++$$FG$$ except you don't need $$GREEN$$()$$FG$$ "
"if there are no args.\n"
"\n"
"Type \"$$GREEN$$Dir;$$FG$$\" and press $$GREEN$$<ENTER>$$FG$$.\n\n"
"You must remember the semicolon.\n");
AFGetStr("Dir;\n");
TourPut("Press $$GREEN$$<F1>$$FG$$ for the main help index.\n"
"\n"
"The $$GREEN$$<F1>$$FG$$ key works both in "
"the editor and at the command line.\n"
"\n"
"You can find the $LK+PU,"Demo Index",A="FI:::/Doc/DemoIndex.TXT"$ on the help index.\n");
AFGetKey(SC_F1);
TourPut(
"Press $$GREEN$$<CTRL-m>$$FG$$.\n\n"
"This will access your PersonalMenu. You can customize it. "
"It's like your START menu and desktop.\n");
"Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort and exit.\n");
AFGetChar(CH_SHIFT_ESC);
AFGetChar(CH_CTRLM);
TourPut(
"You can also get to your PersonalMenu by clicking on the word "
"\"$$GREEN$$MENU$$FG$$\" in the title bar.\n",TRUE);
U0 RevealPopUpHelp(I64 scf)
{
F64 t0;
U8 *st,*st2;
Bool old_key_desc;
do {
AutoComplete(ON);
st=ScanCode2KeyName(scf);
st2=MStrUtil(st,SUF_REM_TRAILING);
Free(st);
st=MStrPrint(
"If you have $$GREEN$$AutoComplete$$FG$$ on, you "
"can list the key commands. This works both "
"in the editor and at the command line.\n"
"\n"
"You can click the links to jump to source code.\n"
"\n"
"Press and hold the $$GREEN$$<%s>$$FG$$ key.\n"
"Hold it for more than 1.0 seconds.\n",st2);
Free(st2);
TourPut(st);
Free(st);
TourPut("Press $$GREEN$$<CURSOR-DOWN>$$FG$$ nine times.\n");
old_key_desc=LBtr(&Fs->win_inhibit,WIf_SELF_KEY_DESC);
while (kbd.scan_code&(SCF_CTRL|SCF_ALT|SCF_SHIFT)!=scf)
Sleep(1);
//Puts the cursor at the top
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
t0=tS;
while (kbd.scan_code&(SCF_CTRL|SCF_ALT|SCF_SHIFT)==scf) {
ScanKey(,,TRUE);
if (1.0<tS-t0<1.15)
Snd(100);
else
Snd(0);
Sleep(1);
}
LBEqu(&Fs->win_inhibit,WIf_SELF_KEY_DESC,old_key_desc);
Snd(0);
} while (tS-t0<1.0);
}
I64 i;
for (i=0;i<9;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut(
"Keyboard commands are:\n\n"
"$$GREEN$$<SPACE>$$FG$$\t\tLeft-action\n"
"$$GREEN$$<ENTER>$$FG$$\t\tRight-action\n"
"$$GREEN$$<ESC>$$FG$$\t\tSave and exit\n"
"$$GREEN$$<SHIFT-ESC>$$FG$$\tAbort and exit\n",TRUE);
TourPut(
"The cursor is now on top of a macro we wish to run.\n"
"\n"
"Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut(
"The macro changed directories and did a $$GREEN$$Dir;$$FG$$ command. "
"The $$RED$$RED$$FG$$ filenames listed are file links. Left-clicking will "
"edit/view them. Right-clicking or pressing $$GREEN$$<ENTER>$$FG$$ when the "
"cursor is on top will bring-up a menu of options.\n\n"
"The $$LTBLUE$$BLUE$$FG$$ underline entries \"$$LTBLUE$$.$$FG$$\" "
"and \"$$LTBLUE$$..$$FG$$\""
"are macros and will change directories.\n",TRUE);
TourPut(
"Press $$GREEN$$<CTRL-t>$$FG$$ to toggle to plain text mode.\n\n"
"These are \"DolDoc\" commands.");
AFGetChar(CH_CTRLT);
TourPut(
"The DolDoc widgets are bracketed with dollar sign characters.\n\n"
"\"LK\" stands \"link\".\n"
"\"MA\" stands for \"macro\".\n\n"
"Now, $$GREEN$$<CTRL-t>$$FG$$ to toggle back to regular mode.\n");
AFGetChar(CH_CTRLT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
RevealPopUpHelp(SCF_CTRL);
RevealPopUpHelp(SCF_CTRL|SCF_SHIFT);
RevealPopUpHelp(SCF_ALT);
RevealPopUpHelp(SCF_ALT|SCF_SHIFT);
RevealPopUpHelp(SCF_CTRL|SCF_ALT);
RevealPopUpHelp(SCF_CTRL|SCF_ALT|SCF_SHIFT);
+47 -78
View File
@@ -3,97 +3,66 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
TourPut(
"Now, we're going to demonstrate how to work "
"with programs. We'll change to the "
"$$GREEN$$/Demo/Games$$FG$$ directory.\n\n"
"Note that directories are specified with "
"a forward slash, not a backslash. "
"Drives can be specified in a $$GREEN$$Cd()$$FG$$ command "
"and the boot drive is specified with \"$$GREEN$$::$$FG$$\".\n\n"
"$$GREEN$$<ENTER>$$FG$$ to complete the command.\n");
AFPrint(25,"Cd(\"::/Demo/Games\");Dir;");
AFGetStr("\n");
"You are now at the command line.\n"
"\n"
"The syntax is like $$GREEN$$C/C++$$FG$$ except you don't need $$GREEN$$()$$FG$$ "
"if there are no args.\n"
"\n"
"Type \"$$GREEN$$Dir;$$FG$$\" and press $$GREEN$$<ENTER>$$FG$$.\n\n"
"You must remember the semicolon.\n");
AFGetStr("Dir;\n");
TourPut(
"Now, we're going to edit a file. Normally, "
"you'll probably left-click on a directory "
"listing to edit a file, but we're going to "
"type it on the command line.\n\n"
"$$GREEN$$<ENTER>$$FG$$ to complete the command.\n");
"Press $$GREEN$$<CTRL-m>$$FG$$.\n\n"
"This will access your PersonalMenu. You can customize it. "
"It's like your START menu and desktop.\n");
AFPrint(25,"Ed(\"CastleFrankenstein.CPP.Z\");");
AFGetStr("\n");
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL);
Sleep(1000);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL);
AFGetChar(CH_CTRLM);
TourPut(
"This is a first-person-shooter.\n\n"
"There is no \"$$GREEN$$main()$$FG$$\" function in TempleOS "
"programs. Any program statements outside "
"functions get executed when you $$GREEN$$#include$$FG$$ "
"them at the command line.\n\n"
"The \"$$GREEN$$CastleFrankenstein;$$FG$$\" statement at the "
"bottom will run the program when we "
"$$GREEN$$#include$$FG$$ it.\n",TRUE);
"You can also get to your PersonalMenu by clicking on the word "
"\"$$GREEN$$MENU$$FG$$\" in the title bar.\n",TRUE);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
TourPut("Press $$GREEN$$<CURSOR-DOWN>$$FG$$ nine times.\n");
AFGetChar(CH_ESC,CH_SHIFT_ESC);
//Puts the cursor at the top
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
I64 i;
for (i=0;i<9;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut(
"Now, run the CastleFrankenstein.CPP.Z program. Press $$GREEN$$<ENTER>$$FG$$.\n");
AFPrint(25,"#include \"CastleFrankenstein\";");
AFGetStr("\n");
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
"Keyboard commands are:\n\n"
"$$GREEN$$<SPACE>$$FG$$\t\tLeft-action\n"
"$$GREEN$$<ENTER>$$FG$$\t\tRight-action\n"
"$$GREEN$$<ESC>$$FG$$\t\tSave and exit\n"
"$$GREEN$$<SHIFT-ESC>$$FG$$\tAbort and exit\n",TRUE);
TourPut(
"The program is still in memory and we can start it again by typing "
"\"$$GREEN$$CastleFrankenstein;$$FG$$\".\n\n"
"Press $$GREEN$$<ENTER>$$FG$$ at the command line to run it again.\n");
AFPrint(25,"CastleFrankenstein;");
AFGetStr("\n");
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
"The cursor is now on top of a macro we wish to run.\n"
"\n"
"Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut(
"$$GREEN$$<CTRL-ALT-a>$$FG$$\tExtended ASCII.\n"
"$$GREEN$$<CTRL-ALT-c>$$FG$$\tBreak(interrupt) program.\n"
"$$GREEN$$<CTRL-ALT-e>$$FG$$\tSpawn new user terminal window.\n"
"$$GREEN$$<CTRL-ALT-m>$$FG$$\tMutes sound.\n"
"$$GREEN$$<CTRL-ALT-t>$$FG$$\tSwitch tasks.\n"
"$$GREEN$$<CTRL-ALT-x>$$FG$$\tKill task (window).\n",TRUE);
AFPrint(50,"Ed(\"CastleFrankenstein.CPP.Z\");\n");
TourPut("Press $$GREEN$$<F5>$$FG$$ in the editor to run the file being edited.\n");
AFGetKey(SC_F5);
Sleep(1000);
CTask *task=sys_focus_task;
"The macro changed directories and did a $$GREEN$$Dir;$$FG$$ command. "
"The $$RED$$RED$$FG$$ filenames listed are file links. Left-clicking will "
"edit/view them. Right-clicking or pressing $$GREEN$$<ENTER>$$FG$$ when the "
"cursor is on top will bring-up a menu of options.\n\n"
"The $$LTBLUE$$BLUE$$FG$$ underline entries \"$$LTBLUE$$.$$FG$$\" "
"and \"$$LTBLUE$$..$$FG$$\""
"are macros and will change directories.\n",TRUE);
TourPut(
"Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the application. "
"Then, press $$GREEN$$<CTRL-ALT-x>$$FG$$ to kill the task.\n");
WinToTop(task);
while (TaskValidate(task))
Sleep(10);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
"Press $$GREEN$$<CTRL-t>$$FG$$ to toggle to plain text mode.\n\n"
"These are \"DolDoc\" commands.");
AFGetChar(CH_CTRLT);
TourPut(
"Explore the $$RED$$$TX+L+PU+UL,"DemoIndex",A="FI:::/Doc/DemoIndex.TXT"$$$FG$$. "
"You'll find it on your menu. It's arranged by difficulty. "
"Hit $$GREEN$$<SPACE>$$FG$$ on a demo index listing "
"and $$GREEN$$<F5>$$FG$$ to run from the editor.\n",TRUE);
"The DolDoc widgets are bracketed with dollar sign characters.\n\n"
"\"LK\" stands \"link\".\n"
"\"MA\" stands for \"macro\".\n\n"
"Now, $$GREEN$$<CTRL-t>$$FG$$ to toggle back to regular mode.\n");
AFGetChar(CH_CTRLT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
+72 -71
View File
@@ -1,98 +1,99 @@
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\nCd(\"::/Demo/Games\");Dir;\n";
"\n";
TourPut(
"Now, we're going to add the CastleFrankenstein.CPP.Z program "
"to your PersonalMenu.\n\n"
"Press $$GREEN$$<CTRL-m>$$FG$$ to get to your PersonalMenu.\n");
AFGetChar(CH_CTRLM);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
"Now, we're going to demonstrate how to work "
"with programs. We'll change to the "
"$$GREEN$$/Demo/Games$$FG$$ directory.\n\n"
"Note that directories are specified with "
"a forward slash, not a backslash. "
"Drives can be specified in a $$GREEN$$Cd()$$FG$$ command "
"and the boot drive is specified with \"$$GREEN$$::$$FG$$\".\n\n"
"$$GREEN$$<ENTER>$$FG$$ to complete the command.\n");
AFPrint(25,"Cd(\"::/Demo/Games\");Dir;");
AFGetStr("\n");
TourPut(
"Press $$GREEN$$<CTRL-l>$$FG$$ to invoke the text-widget resource editor.\n\n"
"(Press $$GREEN$$<CTRL-r>$$FG$$ invokes the graphic resource editor.)\n");
AFGetChar(CH_CTRLL);
"Now, we're going to edit a file. Normally, "
"you'll probably left-click on a directory "
"listing to edit a file, but we're going to "
"type it on the command line.\n\n"
"$$GREEN$$<ENTER>$$FG$$ to complete the command.\n");
Sleep(500);
WinToTop;//Kludge
AFPrint(25,"Ed(\"CastleFrankenstein.CPP.Z\");");
AFGetStr("\n");
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL);
TourPut("$$GREEN$$<CURSOR-DOWN>$$FG$$ until you reach \"Macro\".\n");
I64 i;
for (i=0;i<6;i++)
AFGetKey(SC_CURSOR_DOWN);
Sleep(1000);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL);
TourPut(
"This is a first-person-shooter.\n\n"
"There is no \"$$GREEN$$main()$$FG$$\" function in TempleOS "
"programs. Any program statements outside "
"functions get executed when you $$GREEN$$#include$$FG$$ "
"them at the command line.\n\n"
"The \"$$GREEN$$CastleFrankenstein;$$FG$$\" statement at the "
"bottom will run the program when we "
"$$GREEN$$#include$$FG$$ it.\n",TRUE);
TourPut("Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
AFGetChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"Now, we'll fill-in the visible tag of the macro. Then, "
"we'll fill-in the macro text.\n",TRUE);
AFPrint(,"Click Here");
"Now, run the CastleFrankenstein.CPP.Z program. Press $$GREEN$$<ENTER>$$FG$$.\n");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut(
"Press $$GREEN$$<CTRL-SHIFT-ENTER>$$FG$$ to insert a line feed.\n"
"$$GREEN$$<CTRL-ENTER>$$FG$$ does a page break.\n"
"$$GREEN$$<ENTER>$$FG$$ would execute the macro.\n");
AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
TourPut("Press $$GREEN$$<SPACE>$$FG$$ to test it.\n");
AFGetStr(" ");
AFPrint(25,"#include \"CastleFrankenstein\";");
AFGetStr("\n");
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"Now, we'll do a fancier macro that pops-up a new window which dies when "
"finished, returning mem to the system.\n",TRUE);
Msg(MSG_KEY_DOWN,CH_CTRLM,0x43200000432);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
Msg(MSG_KEY_DOWN,CH_CTRLL,0x42600000426);
for (i=0;i<6;i++)
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(," Click here for Pop-up version");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT|SCF_CTRL);
TourPut(
"Press $$GREEN$$<CURSOR-DOWN>$$FG$$ until you reach the \"Pop-Up\" check-box.\n");
for (i=0;i<2;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$ to check the box.\n");
AFGetStr(" ");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Press $$GREEN$$<CTRL-SHIFT-ENTER>$$FG$$ to insert a line feed.\n");
AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$ to test it.\n");
AFGetStr(" ");
Sleep(500);
WinToTop;//Kludge
"The program is still in memory and we can start it again by typing "
"\"$$GREEN$$CastleFrankenstein;$$FG$$\".\n\n"
"Press $$GREEN$$<ENTER>$$FG$$ at the command line to run it again.\n");
AFPrint(25,"CastleFrankenstein;");
AFGetStr("\n");
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"$$GREEN$$<CTRL-S>$$FG$$ to save your PersonalMenu file, if you wish. "
"Your PersonalMenu is special and does not save on $$GREEN$$<ESC>$$FG$$.\n",TRUE);
"$$GREEN$$<CTRL-ALT-a>$$FG$$\tExtended ASCII.\n"
"$$GREEN$$<CTRL-ALT-c>$$FG$$\tBreak(interrupt) program.\n"
"$$GREEN$$<CTRL-ALT-e>$$FG$$\tSpawn new user terminal window.\n"
"$$GREEN$$<CTRL-ALT-m>$$FG$$\tMutes sound.\n"
"$$GREEN$$<CTRL-ALT-t>$$FG$$\tSwitch tasks.\n"
"$$GREEN$$<CTRL-ALT-x>$$FG$$\tKill task (window).\n",TRUE);
'' CH_SHIFT_ESC; //exit menu
AFPrint(50,"Ed(\"CastleFrankenstein.CPP.Z\");\n");
TourPut("Press $$GREEN$$<F5>$$FG$$ in the editor to run the file being edited.\n");
AFGetKey(SC_F5);
Sleep(1000);
CTask *task=sys_focus_task;
TourPut(
"Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the application. "
"Then, press $$GREEN$$<CTRL-ALT-x>$$FG$$ to kill the task.\n");
WinToTop(task);
while (TaskValidate(task))
Sleep(10);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"Explore the $$RED$$$TX+L+PU+UL,"DemoIndex",A="FI:::/Doc/DemoIndex.TXT"$$$FG$$. "
"You'll find it on your menu. It's arranged by difficulty. "
"Hit $$GREEN$$<SPACE>$$FG$$ on a demo index listing "
"and $$GREEN$$<F5>$$FG$$ to run from the editor.\n",TRUE);
+86 -22
View File
@@ -1,34 +1,98 @@
//This is an example of how you do documentation.
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\nEd(\"::/Misc/Tour/Tour4.AUT.Z\");\n";
"\nCd(\"::/Demo/Games\");Dir;\n";
TourPut(
"Now, we're going to add the CastleFrankenstein.CPP.Z program "
"to your PersonalMenu.\n\n"
"Press $$GREEN$$<CTRL-m>$$FG$$ to get to your PersonalMenu.\n");
AFGetChar(CH_CTRLM);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
"//";
TourPut(
"Now, we'll add a link to a file using the $$GREEN$$<F4>$$FG$$ filename chooser.\n",
TRUE);
"Press $$GREEN$$<CTRL-l>$$FG$$ to invoke the insert text widgets wizard.\n\n"
"(Pressing $$GREEN$$<CTRL-r>$$FG$$ invokes the graphic sprite resource editor.)\n");
AFGetChar(CH_CTRLL);
'' CH_CTRLL;
Sleep(2000);
'' CH_SPACE;
Sleep(1500);
'' CH_SPACE;
Sleep(1500);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
Sleep(1500);
Sleep(500);
WinToTop;//Kludge
TourPut("$$GREEN$$<CURSOR-DOWN>$$FG$$ until you reach \"Macro\".\n");
I64 i;
for (i=0;i<6;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut("Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut(
"Press $$GREEN$$<F4>$$FG$$ for the file chooser. Then, "
"pick a file and press $$GREEN$$<ESC>$$FG$$.");
AFGetKey(SC_F4);
Sleep(5000);
"Now, we'll fill-in the visible tag of the macro. Then, "
"we'll fill-in the macro text.\n",TRUE);
AFPrint(,"Click Here");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFGetChar(CH_SHIFT_ESC);
TourPut(
"Press $$GREEN$$<CTRL-SHIFT-ENTER>$$FG$$ to insert a line feed. "
"($$GREEN$$<CTRL-ENTER>$$FG$$ does a page break. "
"$$GREEN$$<ENTER>$$FG$$ would execute the macro.)\n");
AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
TourPut("Press $$GREEN$$<SPACE>$$FG$$ to test it.\n");
AFGetStr(" ");
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"Now, we'll do a fancier macro that pops-up a new window which dies when "
"finished, returning mem to the system.\n",TRUE);
Msg(MSG_KEY_DOWN,CH_CTRLM,0x43200000432);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
Msg(MSG_KEY_DOWN,CH_CTRLL,0x42600000426);
for (i=0;i<6;i++)
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(," Click here for Pop-up version");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT|SCF_CTRL);
TourPut(
"Press $$GREEN$$<CURSOR-DOWN>$$FG$$ until you reach the \"Pop-Up\" check-box.\n");
for (i=0;i<2;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$ to check the box.\n");
AFGetStr(" ");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Press $$GREEN$$<CTRL-SHIFT-ENTER>$$FG$$ to insert a line feed.\n");
AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$ to test it.\n");
AFGetStr(" ");
Sleep(500);
WinToTop;//Kludge
TourPut(
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
"are done.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"$$GREEN$$<CTRL-S>$$FG$$ to save your PersonalMenu file, if you wish. "
"Your PersonalMenu is special and does not save on $$GREEN$$<ESC>$$FG$$.\n",TRUE);
'' CH_SHIFT_ESC; //exit menu
TourPut("Use $$GREEN$$<SHIFT F4>$$FG$$ to pick directories.\n",TRUE);
+25 -41
View File
@@ -1,50 +1,34 @@
PopUp("ACInit(\"::/*;~*Bible.TXT*\");");
AutoComplete(ON);
Sleep(3500);
//This is an example of how you do documentation.
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\nCd(\"::/Demo\");\n";
"\nEd(\"::/Misc/Tour/Tour5.AUT.Z\");\n";
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
"//";
TourPut(
"AutoComplete is a feature which also lets you jump to source code of "
"symbols. The function keys jump to code, while the number keys jump to "
"dictionary definitions.\n\n"
"We will now place some text on the command line and jump to source code.\n",
"Now, we'll add a link to a file using the $$GREEN$$<F4>$$FG$$ filename chooser.\n",
TRUE);
"MakeOS";
TourPut(
"Look at the $$GREEN$$MakeOSDrvBootInstall$$FG$$ entry in the AutoComplete "
"window. Notice it is underlined. This means a source code link is "
"available.\n\n"
"Press $$GREEN$$<CTRL-SHIFT-F1>$$FG$$ to jump to source code.\n");
AFGetKey(SC_F1|SCF_CTRL|SCF_SHIFT);
Sleep(500);
WinToTop;//Kludge
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut("Press $$GREEN$$<CTRL-F1>$$FG$$ to autocomplete.\n");
AFGetKey(SC_F1|SCF_CTRL);
Sleep(500);
Msg(MSG_KEY_DOWN,'\n',SCF_CTRL|SCF_SHIFT);
"\n";
TourPut(
"Tip: You can restart the AutoComplete window if you have closed it by "
"pressing $$GREEN$$<CTRL-F1>$$FG$$.\n",TRUE);
TourPut(
"You can also use the $$GREEN$$Man()$$FG$$ function to jump to source code. "
"(I use AutoComplete.) The $$GREEN$$Man()$$FG$$ is good for short symbol "
"names or when inside the debugger.\n",TRUE);
AFPrint(,"Man(\"U\");");
'' CH_CTRLL;
Sleep(2000);
'' CH_SPACE;
Sleep(1500);
'' CH_SPACE;
Sleep(1500);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
Sleep(1500);
"\n";
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"Press $$GREEN$$<F4>$$FG$$ for the file chooser. Then, "
"pick a file and press $$GREEN$$<ESC>$$FG$$.");
AFGetKey(SC_F4);
Sleep(5000);
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFGetChar(CH_SHIFT_ESC);
TourPut("Use $$GREEN$$<SHIFT F4>$$FG$$ to pick directories.\n",TRUE);
+37 -56
View File
@@ -1,69 +1,50 @@
TourPut(
"$$RED$$$$TX+L+PU+UL,\"F\",A=\"MN:F\"$$$$FG$$() is a handy function. "
"It is a wrapper around $$RED$$$$TX+L+PU+UL,\"Find\",A=\"MN:Find\"$$$$FG$$(). "
"It searches for a sym.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
PopUp("ACInit(\"::/*;~*Bible.TXT*\");");
AutoComplete(ON);
Sleep(3500);
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
"\nCd(\"::/Demo\");\n";
TourPut(
"Try it with the $$GREEN$$+l$$FG$$ flag. This limits to whole labels, not "
"partials.\n",TRUE);
"AutoComplete is a feature which also lets you jump to source code of "
"symbols. The function keys jump to code, while the number keys jump to "
"dictionary definitions.\n\n"
"We will now place some text on the command line and jump to source code.\n",
TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\",\"+l\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
"MakeOS";
TourPut(
"Try it with the $$GREEN$$+l-i$$FG$$ flag. This does not ignore case and "
"limits to whole labels, not partials.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\",\"+l-i\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
TourPut(
"The wrapper function is in your $$RED$$/Home/AdamWrappers.CPP.Z$$FG$$ file. "
"There is a function $$RED$$$$TX+L+PU+UL,\"R\",A=\"MN:R\"$$$$FG$$() for "
"find and replace. Feel free to customize.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"Ed(\"::/Home/AdamWrappers.CPP.Z\");";
AFGetStr("\n");
"Look at the $$GREEN$$MakeOSDrvBootInstall$$FG$$ entry in the AutoComplete "
"window. Notice it is underlined. This means a source code link is "
"available.\n\n"
"Press $$GREEN$$<CTRL-SHIFT-F1>$$FG$$ to jump to source code.\n");
AFGetKey(SC_F1|SCF_CTRL|SCF_SHIFT);
Sleep(500);
WinToTop;//Kludge
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut("Press $$GREEN$$<CTRL-F1>$$FG$$ to autocomplete.\n");
AFGetKey(SC_F1|SCF_CTRL);
Sleep(500);
Msg(MSG_KEY_DOWN,'\n',SCF_CTRL|SCF_SHIFT);
"\n";
TourPut(
"$$GREEN$$+lb$$FG$$ is whole label just before.\n"
"$$GREEN$$+la$$FG$$ is whole label just after.\n",TRUE);
"Tip: You can restart the AutoComplete window if you have closed it by "
"pressing $$GREEN$$<CTRL-F1>$$FG$$.\n",TRUE);
TourPut(
"You can also use the $$GREEN$$Man()$$FG$$ function to jump to source code. "
"(I use AutoComplete.) The $$GREEN$$Man()$$FG$$ is good for short symbol "
"names or when inside the debugger.\n",TRUE);
AFPrint(,"Man(\"U\");");
Sleep(1500);
"\n";
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+64 -20
View File
@@ -1,25 +1,69 @@
"FF(\"/Kernel/*\");";
TourPut(
"Let's list files in the $$GREEN$$/Kernel$$FG$$ and sub directories.\n\n"
"TempleOS masks have one base directory and multiple filename masks.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"$$RED$$$$TX+L+PU+UL,\"F\",A=\"MN:F\"$$$$FG$$() is a handy function. "
"It is a wrapper around $$RED$$$$TX+L+PU+UL,\"Find\",A=\"MN:Find\"$$$$FG$$(). "
"It searches for a sym.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
TourPut(
"Try it with the $$GREEN$$+l$$FG$$ flag. This limits to whole labels, not "
"partials.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\",\"+l\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
TourPut(
"Try it with the $$GREEN$$+l-i$$FG$$ flag. This does not ignore case and "
"limits to whole labels, not partials.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"F(\"RED\",\"+l-i\");";
AFGetStr("\n");
Sleep(2000);
TourPut("Notice the number of matches.\n",TRUE);
TourPut(
"The wrapper function is in your $$RED$$/Home/HomeWrappers.CPP.Z$$FG$$ file. "
"There is a function $$RED$$$$TX+L+PU+UL,\"R\",A=\"MN:R\"$$$$FG$$() for "
"find and replace. Feel free to customize.\n",TRUE);
TourPut("Press $$GREEN$$<ENTER>$$FG$$.\n");
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"Ed(\"::/Home/HomeWrappers.CPP.Z\");";
AFGetStr("\n");
"FF(\"/Kernel/*\",\"-r\");";
TourPut(
"The recurse $$GREEN$$+r$$FG$$ flag is usually set. Let's turn it off.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
"FF(\"/Kernel/M*;*.HPP*\");";
TourPut(
"Let's have two mask of $$GREEN$$M*$$FG$$ plus $$GREEN$$*.HPP*$$FG$$\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
"FF(\"/Kernel/M*;*.HPP*;~Mem*\");";
TourPut(
"Let's unselect $$GREEN$$Mem*$$FG$$.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
TourPut("There is no way to include multiple base directories.\n",TRUE);
"$$GREEN$$+lb$$FG$$ is whole label just before.\n"
"$$GREEN$$+la$$FG$$ is whole label just after.\n",TRUE);
+22 -21
View File
@@ -1,24 +1,25 @@
"Ed(\"::/Misc/Bible.TXT.Z\");\n";
TourPut("Press $$GREEN$$<CTRL-F>$$FG$$ to find.\n");
AFGetChar(CH_CTRLF);
"FF(\"/Kernel/*\");";
TourPut(
"Let's list files in the $$GREEN$$/Kernel$$FG$$ and sub directories.\n\n"
"TempleOS masks have one base directory and multiple filename masks.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
AFPrint(150,"new song");
"FF(\"/Kernel/*\",\"-r\");";
TourPut(
"The recurse $$GREEN$$+r$$FG$$ flag is usually set. Let's turn it off.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
TourPut("Cursor down 8 times.\n");
I64 i;
for (i=0;i<8;i++)
AFGetKey(SC_CURSOR_DOWN);
TourPut("Press '$$GREEN$$2$$FG$$' to show all lines within 2 of a match.\n");
AFGetStr("2");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Look around and press $$GREEN$$<ESC>$$FG$$ to turn off filter.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut("You can combine filters to effectively do AND searches.\n",TRUE);
'' CH_SHIFT_ESC;
"FF(\"/Kernel/M*;*.HPP*\");";
TourPut(
"Let's have two mask of $$GREEN$$M*$$FG$$ plus $$GREEN$$*.HPP*$$FG$$\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
"FF(\"/Kernel/M*;*.HPP*;~Mem*\");";
TourPut(
"Let's unselect $$GREEN$$Mem*$$FG$$.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
AFGetStr("\n");
TourPut("There is no way to include multiple base directories.\n",TRUE);
+14 -34
View File
@@ -1,44 +1,24 @@
TourPut("Press $$GREEN$$<ENTER>$$FG$$.");
"Ed(\"HI:Debugging\");";
AFGetStr("\n");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
"Ed(\"::/Misc/Bible.TXT.Z\");\n";
TourPut("Press $$GREEN$$<CTRL-F>$$FG$$ to find.\n");
AFGetChar(CH_CTRLF);
TourPut(
"We will now use $$RED$$$$TX+L+PU+UL,\"Uf\",A=\"MN:Uf\"$$$$FG$$() to "
"unassemble a function. It takes the function name as a string arg.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"WinMax;WinBorder;\nUf(\"CAlloc\");";
AFGetStr("\n");
AFPrint(150,"new song");
TourPut("Press $$GREEN$$<CURSOR-UP>$$FG$$ eight times..");
TourPut("Cursor down 8 times.\n");
I64 i;
for (i=0;i<8;i++)
AFGetKey(SC_CURSOR_UP);
AFGetKey(SC_CURSOR_DOWN);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut("Press '$$GREEN$$2$$FG$$' to show all lines within 2 of a match.\n");
AFGetStr("2");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ when finished.\n");
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
AFGetChar(CH_ESC);
TourPut("Look around and press $$GREEN$$<ESC>$$FG$$ to turn off filter.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
TourPut("You can combine filters to effectively do AND searches.\n",TRUE);
TourPut(
"We can unassemble a numeric address with "
"$$RED$$$$TX+L+PU+UL,\"U\",A=\"MN:U\"$$$$FG$$().\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"U(&CAlloc);";
AFGetStr("\n");
'' CH_SHIFT_ESC;
TourPut("The opcodes are slightly nonstandard.\n",TRUE);
"Ed(\"::/Compiler/OpCodes.TXT.Z\");\n";
Msg(MSG_KEY_DOWN,CH_CTRLF,0x42100000421);
"MOV";
Msg(MSG_KEY_DOWN,CH_ESC,0x100000001);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+35 -12
View File
@@ -1,21 +1,44 @@
TourPut("Press $$GREEN$$<ENTER>$$FG$$.");
"Ed(\"HI:Debugging\");";
AFGetStr("\n");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
TourPut(
"All text widgets work everywhere. The $$GREEN$$Type()$$FG$$ command is like "
"the DOS command of the same name or the UNIX, $$GREEN$$cat$$FG$$ command. "
"We will, now, send your menu document to the command line. It uses the "
"same document format and the icons are even active!!\n\n"
"We will now use $$RED$$$$TX+L+PU+UL,\"Uf\",A=\"MN:Uf\"$$$$FG$$() to "
"unassemble a function. It takes the function name as a string arg.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"WinBorder;WinMax;\nUf(\"CAlloc\");";
AFGetStr("\n");
TourPut("Press $$GREEN$$<CURSOR-UP>$$FG$$ eight times..");
I64 i;
for (i=0;i<8;i++)
AFGetKey(SC_CURSOR_UP);
TourPut(
"Press $$GREEN$$<SPACE>$$FG$$.\n");
AFGetStr(" ");
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ when finished.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"Type(\"::/Home/PersonalMenu.TXT\");";
TourPut(
"We can unassemble a numeric address with "
"$$RED$$$$TX+L+PU+UL,\"U\",A=\"MN:U\"$$$$FG$$().\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"U(&CAlloc);";
AFGetStr("\n");
Sleep(1500);
AFPrint(250,"Dir;\n");
TourPut("The opcodes are slightly nonstandard.\n",TRUE);
"Ed(\"::/Compiler/OpCodes.TXT.Z\");\n";
Sleep(1500);
TourPut(
"$$GREEN$$Type()$$FG$$ can also be used on $$GREEN$$.BMP$$FG$$ or $$GREEN$$.GRA$$FG$$ "
"files!",TRUE);
Msg(MSG_KEY_DOWN,CH_CTRLF,0x42100000421);
"MOV";
Msg(MSG_KEY_DOWN,CH_ESC,0x100000001);
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+17 -6
View File
@@ -1,10 +1,21 @@
TourPut(
"We will now run a test-suite that automatically executes most TempleOS "
"demos. It takes a few minutes, so kick-back.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$ in a moment.\n",TRUE);
"All text widgets work everywhere. The $$GREEN$$Type()$$FG$$ command is like "
"the DOS command of the same name or the UNIX, $$GREEN$$cat$$FG$$ command. "
"We will, now, send your menu document to the command line. It uses the "
"same document format and the icons are even active!!\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
if (LBtr(&tour_put->display_flags,DISPLAYf_SHOW))
WinZBufUpdate;
//Puts the cursor at the bottom.
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
"\n";
"#include \"::/Misc/OSTestSuite\";";
"Type(\"::/Home/PersonalMenu.TXT\");";
AFGetStr("\n");
Sleep(1500);
AFPrint(250,"Dir;\n");
Sleep(1500);
TourPut(
"$$GREEN$$Type()$$FG$$ can also be used on $$GREEN$$.BMP$$FG$$ or $$GREEN$$.GRA$$FG$$ "
"files!",TRUE);
+10
View File
@@ -0,0 +1,10 @@
TourPut(
"We will now run a test-suite that automatically executes most TempleOS "
"demos. It takes a few minutes, so kick-back.\n\n"
"Press $$GREEN$$<ENTER>$$FG$$.\n");
"#include \"::/Misc/OSTestSuite\";";
AFGetStr("\n");
if (LBtr(&tour_put->display_flags,DISPLAYf_SHOW))
WinZBufUpdate;