Initial (manual) import
This commit is contained in:
1 parent
f39611c506
commit
895fe109de
661 files changed
+245862
No files matched your search
+100117
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,52 @@
|
||||
//Make Your own Distro by #include-ing this file.
|
||||
|
||||
#define STD_DISTRO_DVD_CFG "TB\nScale2Mem(2048,0x40000)\nT \n\n\n\n"
|
||||
|
||||
U0 MakeMyISO(U8 *_out_iso_filename)
|
||||
{//Does everything with current drive.
|
||||
//If you have not recompiled $FG,2$Kernel$FG$ and defined your CD/DVD drive, use $LK,"Mount",A="MN:Mount"$.
|
||||
U8 *out_iso_filename=FileNameAbs(_out_iso_filename);
|
||||
if (!DrvIsWritable) {
|
||||
"Drive must be writable. Install on Hard drive, first.\n";
|
||||
return;
|
||||
}
|
||||
DelTree("/Distro");
|
||||
Del(out_iso_filename);
|
||||
|
||||
MkDir("/Distro");
|
||||
In(STD_DISTRO_DVD_CFG);
|
||||
BootDVDIns;
|
||||
|
||||
Copy("/*","/Distro");
|
||||
Del("/Distro/" KERNEL_BIN_C);
|
||||
|
||||
CopyTree(BOOT_DIR, "/Distro" BOOT_DIR);
|
||||
CopyTree("/Home", "/Distro/Home");
|
||||
CopyTree("/Adam", "/Distro/Adam");
|
||||
CopyTree("/Apps", "/Distro/Apps");
|
||||
CopyTree("/Compiler", "/Distro/Compiler");
|
||||
CopyTree("/Demo", "/Distro/Demo");
|
||||
CopyTree("/Doc", "/Distro/Doc");
|
||||
CopyTree("/Kernel", "/Distro/Kernel");
|
||||
CopyTree("/Misc", "/Distro/Misc");
|
||||
|
||||
//To save space, optionally delete dictionary.
|
||||
//Del("/Distro/Adam/AutoComplete/ACDefs.DATA");
|
||||
CopyTree("/Linux","/Distro/Linux"); //You can leave this out.
|
||||
MkDir("/Distro/Tmp");
|
||||
MkDir("/Distro/Tmp/ScrnShots");
|
||||
ISO9660ISO(out_iso_filename,"/Distro/*",,"/Distro" BOOT_DIR_KERNEL_BIN_C);
|
||||
|
||||
//If you want $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ filesystem, use this instead but make it ISO.C.
|
||||
//RedSeaISO(out_iso_filename,"/Distro","/Distro" BOOT_DIR_KERNEL_BIN_C);
|
||||
|
||||
//If CD-ROM use MT_CD instead of MT_DVD.
|
||||
//DVDImageWrite('T',out_iso_filename,MT_DVD); //Uncomment to burn.
|
||||
|
||||
//DelTree("/Distro");
|
||||
Free(out_iso_filename);
|
||||
}
|
||||
|
||||
MakeMyISO("/Tmp/MyDistro.ISO");
|
||||
|
||||
// Study my account examples $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$.
|
||||
@@ -0,0 +1,219 @@
|
||||
U0 InstallDrv(U8 drv_let)
|
||||
{
|
||||
U8 *st;
|
||||
ExePrint("CopyTree(\"::/\",\"%C:/\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Tmp\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Tmp/ScrnShots\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Home\");",drv_let);
|
||||
|
||||
st=MStrPrint("%C:/Home/DoDistro.HC.Z",drv_let);
|
||||
if (!FileFind(st))
|
||||
Copy("::/Misc/DoDistro.HC.Z",st);
|
||||
Free(st);
|
||||
|
||||
st=MStrPrint("%C:/Home/MakeHome.HC.Z",drv_let);
|
||||
if (!FileFind(st))
|
||||
Copy("::/MakeHome.HC.Z",st);
|
||||
Free(st);
|
||||
}
|
||||
|
||||
Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
|
||||
{
|
||||
if (ata_drv) {
|
||||
XTalkWait(task,"PrtDsk(,0.5,0.5);\nC\np%d\nY",ata_drv->num);
|
||||
return TRUE;
|
||||
} else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
U0 VMInstallDrv(CTask *task,U8 drv_let,
|
||||
CATARep *ata_drv,CATARep *atapi_drv)
|
||||
{
|
||||
InstallDrv(drv_let);
|
||||
XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n",drv_let);
|
||||
if (ata_drv)
|
||||
XTalkWait(task,"C\np%d\n",ata_drv->num);
|
||||
if (atapi_drv)
|
||||
XTalkWait(task,"Tp%d\n",atapi_drv->num);
|
||||
XTalkWait(task,"\n\n\n"); //Exit Drives,Dsk Cache,Options
|
||||
}
|
||||
|
||||
U0 VMInstallWiz()
|
||||
{
|
||||
CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL;
|
||||
CTask *task;
|
||||
"\nIt's normal for this to freeze for a moment or two.\n";
|
||||
PressAKey;
|
||||
|
||||
task=User;
|
||||
TaskWait(task);
|
||||
task->border_src=BDS_CONST;
|
||||
task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
|
||||
task->text_attr =LTGRAY<<4+BLUE;
|
||||
task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;
|
||||
WinHorz(Fs->win_left,Fs->win_right,task);
|
||||
WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
WinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
|
||||
ATARep(FALSE,TRUE,&head);
|
||||
ATAIDDrvs(head,&ata_drv,&atapi_drv);
|
||||
if (VMPrtDsk(task,ata_drv)) {
|
||||
VMInstallDrv(task,'C',ata_drv,atapi_drv);
|
||||
VMInstallDrv(task,'D',ata_drv,atapi_drv);
|
||||
BootMHDIns('C');
|
||||
}
|
||||
LinkedLstDel(head);
|
||||
WinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 RegularInstallWiz()
|
||||
{
|
||||
I64 unit,drv_let;
|
||||
U8 *st,*base0,*base1;
|
||||
CATARep *head=NULL,*tmpha;
|
||||
I64 ch,num_hints;
|
||||
CTask *task;
|
||||
|
||||
"\nIt's normal for this to freeze for a moment or two.\n";
|
||||
PressAKey;
|
||||
|
||||
task=User;
|
||||
TaskWait(task);
|
||||
task->border_src=BDS_CONST;
|
||||
task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
|
||||
task->text_attr =LTGRAY<<4+BLUE;
|
||||
task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;
|
||||
WinHorz(Fs->win_left,Fs->win_right,task);
|
||||
WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
WinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
XTalk(task,"Mount;\nC\np");
|
||||
|
||||
num_hints=ATARep(FALSE,,&head);
|
||||
"\nInclude '$$PURPLE$$0x$$FG$$' for hexidecimal numbers.\n\n";
|
||||
while (TRUE) {
|
||||
base0=GetStr("Hard Drive I/O Port Base0 : ");
|
||||
if (0<Str2I64(base0)<=0xFFFF)
|
||||
break;
|
||||
Free(base0);
|
||||
}
|
||||
if (1<=Str2I64(base0)<=num_hints) {
|
||||
tmpha=ATARepFind(&head,Str2I64(base0));
|
||||
Free(base0);
|
||||
base0=MStrPrint("0x%X",tmpha->base0);
|
||||
base1=MStrPrint("0x%X",tmpha->base1);
|
||||
st =MStrPrint("0x%X",tmpha->unit);
|
||||
unit=Str2I64(st);
|
||||
Free(st);
|
||||
} else {
|
||||
while (TRUE) {
|
||||
base1=GetStr("Hard Drive I/O Port Base1 : ");
|
||||
if (0<Str2I64(base1)<=0xFFFF)
|
||||
break;
|
||||
Free(base1);
|
||||
}
|
||||
do {
|
||||
st =GetStr("Unit--$$PURPLE$$0$$FG$$=Master or $$PURPLE$$1$$FG$$=Slave: ","0");
|
||||
unit=Str2I64(st);
|
||||
Free(st);
|
||||
} while (!(0<=unit<=1));
|
||||
}
|
||||
LinkedLstDel(head);
|
||||
XTalkWait(task,"%s\n%s\n%C\n",base0,base1,'0'+unit);
|
||||
DrvRep;
|
||||
do {
|
||||
st=GetStr("\nDestination Partition Letter: ");
|
||||
if (*st)
|
||||
drv_let=Let2Let(*st);
|
||||
else
|
||||
drv_let=0;
|
||||
Free(st);
|
||||
} while (!('A'<=drv_let<='Z'));
|
||||
'\n';
|
||||
|
||||
"$$RED$$Format %C Partition?$$FG$$\n",drv_let;
|
||||
if (YorN) {
|
||||
'\n';
|
||||
do {
|
||||
"$$PURPLE$$1$$FG$$) Use FAT32\n"
|
||||
"$$PURPLE$$2$$FG$$) Use RedSea\n"
|
||||
"\nFile System Type: ";
|
||||
ch=GetChar;
|
||||
'\n';
|
||||
} while (!('1'<=ch<='2'));
|
||||
if (ch=='1')
|
||||
Fmt(drv_let,,FALSE,FSt_FAT32);
|
||||
else
|
||||
Fmt(drv_let,,FALSE,FSt_REDSEA);
|
||||
}
|
||||
InstallDrv(drv_let);
|
||||
XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n"
|
||||
"C\ns%s\n%s\n%C\n\n\n", //Exit Drives,Dsk Cache,Options
|
||||
drv_let,base0,base1,'0'+unit);
|
||||
"$$RED$$Install Master Boot loader?$$FG$$";
|
||||
if (YorN) {
|
||||
'\n';
|
||||
BootMHDIns(drv_let);
|
||||
}
|
||||
Free(base0);
|
||||
Free(base1);
|
||||
|
||||
WinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 DoInstructions()
|
||||
{
|
||||
CTask *task;
|
||||
AutoComplete;
|
||||
task=Fs->next_task;
|
||||
while (task!=Fs) {
|
||||
if (task!=adam_task && task!=sys_winmgr_task && task!=ac.task) {
|
||||
XTalk(task,"Ed(\"::/Doc/Install.DD.Z\");\n");
|
||||
break;
|
||||
}
|
||||
task=task->next_task;
|
||||
}
|
||||
}
|
||||
|
||||
Bool DoInstall(Bool pmt_reboot)
|
||||
{
|
||||
I64 res=FALSE,vm_install;
|
||||
"\n\n\n\n\nAre you installing inside VMware, QEMU, VirtualBox "
|
||||
"or a similar virtual machine? ";
|
||||
vm_install=YorN;
|
||||
DocBottom;
|
||||
|
||||
if (vm_install) {
|
||||
VMInstallWiz();
|
||||
res=TRUE;
|
||||
} else {
|
||||
"\n\nThis wizard works if you have a partition ready. "
|
||||
"You can partition the drive or BootHDIns() "
|
||||
"with more options if you do it by hand, not using this wizard.\n\n"
|
||||
"Continue Install Wizard ";
|
||||
if (YorN) {
|
||||
RegularInstallWiz();
|
||||
res=TRUE;
|
||||
} else
|
||||
pmt_reboot=FALSE;
|
||||
}
|
||||
if (pmt_reboot) {
|
||||
"Reboot Now ";
|
||||
if (YorN)
|
||||
Reboot;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
Bool OSInstall(Bool pmt_reboot=TRUE)
|
||||
{
|
||||
DoInstructions;
|
||||
return DoInstall(pmt_reboot);
|
||||
}
|
||||
|
||||
#if __CMD_LINE__
|
||||
OSInstall(TRUE);
|
||||
#endif
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,126 @@
|
||||
CTask *tour_put,*tour_task;
|
||||
Bool tour_okay_pressed;
|
||||
|
||||
U0 TourPutTask()
|
||||
{
|
||||
CDoc *doc;
|
||||
I64 ch;
|
||||
DocTermNew;
|
||||
WinHorz(TEXT_COLS/2,TEXT_COLS-2);
|
||||
WinVert(TEXT_ROWS/2+5,TEXT_ROWS-7);
|
||||
LBts(&Fs->display_flags,DISPLAYf_WIN_ON_TOP);
|
||||
WinToTop;
|
||||
Fs->border_src=BDS_CONST;
|
||||
Fs->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
|
||||
Fs->text_attr =LTGRAY<<4+BLUE;
|
||||
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER-WIF_SELF_MS_L
|
||||
-WIF_SELF_MS_R-WIG_DBL_CLICK;
|
||||
doc=DocPut;
|
||||
doc->flags|=DOCF_FORM;
|
||||
DocCursor(FALSE,doc);
|
||||
"$$WW+H,1$$";
|
||||
while (TRUE) {
|
||||
Refresh;
|
||||
if (ScanMsg(&ch,,1<<MSG_KEY_DOWN) && (ch==CH_ESC||ch==CH_SHIFT_ESC)) {
|
||||
Kill(tour_task->parent_task,FALSE);
|
||||
break;
|
||||
}
|
||||
DocLock(doc);
|
||||
if (ch==CH_SPACE && doc->cur_entry!=doc) {
|
||||
if (doc->cur_entry->de_flags & DOCEF_LINK)
|
||||
'' CH_SPACE;
|
||||
else if (doc->cur_entry->type_u8==DOCT_BTTN)
|
||||
tour_okay_pressed=TRUE;
|
||||
}
|
||||
DocUnlock(doc);
|
||||
if (tour_okay_pressed) {
|
||||
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER-WIF_SELF_MS_L
|
||||
-WIF_SELF_MS_R-WIG_DBL_CLICK;
|
||||
if (sys_focus_task==Fs)
|
||||
WinRefocus;
|
||||
} else {
|
||||
Fs->win_inhibit=0;
|
||||
WinFocus;
|
||||
}
|
||||
}
|
||||
tour_put=NULL;
|
||||
}
|
||||
|
||||
U0 TourPut(U8 *st,Bool wait_okay=FALSE)
|
||||
{
|
||||
CDoc *doc;
|
||||
CTask *old_focus_task;
|
||||
if (TaskValidate(tour_put)) {
|
||||
doc=DocPut(tour_put);
|
||||
DocClear(doc);
|
||||
DocPrint(doc,"%s",st);
|
||||
if (!wait_okay)
|
||||
tour_okay_pressed=TRUE;
|
||||
else {
|
||||
DocPrint(doc,"\n\n$$CM-RE+CX,LE=-2$$$$BT,\"Okay\",LM=\"b\"$$\n\n");
|
||||
DocFormBwd(doc);
|
||||
old_focus_task=sys_focus_task;
|
||||
tour_okay_pressed=FALSE;
|
||||
do Refresh;
|
||||
while (!tour_okay_pressed);
|
||||
WinFocus(old_focus_task);
|
||||
DocClear(doc);
|
||||
}
|
||||
} else
|
||||
Kill(tour_task,,TRUE);
|
||||
}
|
||||
|
||||
public I64 PopUpTourPart()
|
||||
{
|
||||
I64 i;
|
||||
CDoc *doc=DocNew;
|
||||
DocPrint(doc,"$$PURPLE$$TempleOS Tours$$FG$$\n\n"
|
||||
"$$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);
|
||||
DocDel(doc);
|
||||
return i;
|
||||
}
|
||||
|
||||
U0 TourMenu()
|
||||
{
|
||||
U8 buf[STR_LEN];
|
||||
I64 i;
|
||||
tour_task=Fs;
|
||||
tour_okay_pressed=TRUE;
|
||||
tour_put=Spawn(&TourPutTask,NULL,"TourPut",,Fs);
|
||||
TaskWait(tour_put);
|
||||
while (TRUE) {
|
||||
Cd(__DIR__);
|
||||
AutoComplete;
|
||||
if (LBtr(&tour_put->display_flags,DISPLAYf_SHOW))
|
||||
WinZBufUpdate;
|
||||
i=PopUpTourPart;
|
||||
if (i>0) {
|
||||
if (!LBts(&tour_put->display_flags,DISPLAYf_SHOW))
|
||||
WinZBufUpdate;
|
||||
StrPrint(buf,"Tour%X.IN",i);
|
||||
ExeFile(buf);
|
||||
} else
|
||||
break;
|
||||
}
|
||||
Kill(tour_put);
|
||||
}
|
||||
|
||||
"DocClear;WinMax;\n";
|
||||
Refresh(2);
|
||||
TourMenu;
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"Cd;Dir;\n";
|
||||
@@ -0,0 +1,64 @@
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"\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.DD"$ on the help index.\n");
|
||||
InGetKey(SC_F1);
|
||||
|
||||
TourPut(
|
||||
"Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort and exit.\n");
|
||||
InGetChar(CH_SHIFT_ESC);
|
||||
|
||||
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);
|
||||
|
||||
old_key_desc=LBtr(&Fs->win_inhibit,WIf_SELF_KEY_DESC);
|
||||
while (kbd.scan_code&(SCF_CTRL|SCF_ALT|SCF_SHIFT)!=scf)
|
||||
Sleep(1);
|
||||
|
||||
t0=tS;
|
||||
while (kbd.scan_code&(SCF_CTRL|SCF_ALT|SCF_SHIFT)==scf) {
|
||||
ScanKey(,,TRUE);
|
||||
if (1.0<tS-t0<1.15)
|
||||
Snd(34);
|
||||
else
|
||||
Snd;
|
||||
Sleep(1);
|
||||
}
|
||||
LBEqu(&Fs->win_inhibit,WIf_SELF_KEY_DESC,old_key_desc);
|
||||
Snd;
|
||||
} while (tS-t0<1.0);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
//Puts the cursor at the bottom.
|
||||
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");
|
||||
InGetStr("Dir;\n");
|
||||
|
||||
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");
|
||||
|
||||
InGetChar(CH_CTRLM);
|
||||
TourPut(
|
||||
"You can also get to your PersonalMenu by clicking on the word "
|
||||
"\"$$GREEN$$MENU$$FG$$\" in the title bar.\n",TRUE);
|
||||
|
||||
TourPut("Press $$GREEN$$<CURSOR-DOWN>$$FG$$ nine times.\n");
|
||||
|
||||
//Puts the cursor at the top
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
|
||||
|
||||
I64 i;
|
||||
for (i=0;i<9;i++)
|
||||
InGetKey(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");
|
||||
InGetStr(" ");
|
||||
|
||||
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.");
|
||||
InGetChar(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");
|
||||
InGetChar(CH_CTRLT);
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
//Puts the cursor at the bottom.
|
||||
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");
|
||||
|
||||
InPrint(25,"Cd(\"::/Demo/Games\");Dir;");
|
||||
InGetStr("\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");
|
||||
|
||||
InPrint(25,"Ed(\"CastleFrankenstein.HC.Z\");");
|
||||
InGetStr("\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);
|
||||
TourPut(
|
||||
"This is a first-person-shooter.\n\n"
|
||||
"There is no \"$$GREEN$$main()$$FG$$\" function in TempleOS "
|
||||
"programs. Any program stmts outside "
|
||||
"functions get executed when you $$GREEN$$#include$$FG$$ "
|
||||
"them at the command line.\n\n"
|
||||
"The \"$$GREEN$$CastleFrankenstein;$$FG$$\" stmt at the "
|
||||
"bottom will run the program when we "
|
||||
"$$GREEN$$#include$$FG$$ it.\n",TRUE);
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
|
||||
|
||||
InGetChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut(
|
||||
"Now, run the CastleFrankenstein.HC.Z program. Press $$GREEN$$<ENTER>$$FG$$.\n");
|
||||
|
||||
InPrint(25,"#include \"CastleFrankenstein\";");
|
||||
InGetStr("\n");
|
||||
TourPut(
|
||||
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
|
||||
"are done.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
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");
|
||||
|
||||
InPrint(25,"CastleFrankenstein;");
|
||||
InGetStr("\n");
|
||||
TourPut(
|
||||
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
|
||||
"are done.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut(
|
||||
"$$GREEN$$<CTRL-ALT-a>$$FG$$\tExtended ASCII.\n"
|
||||
"$$GREEN$$<CTRL-ALT-c>$$FG$$\tBreak(interrupt) program.\n"
|
||||
"$$GREEN$$<CTRL-ALT-m>$$FG$$\tMutes sound.\n"
|
||||
"$$GREEN$$<CTRL-ALT-n>$$FG$$\tNext tasks.\n"
|
||||
"$$GREEN$$<CTRL-ALT-t>$$FG$$\tTerminal window.\n"
|
||||
"$$GREEN$$<CTRL-ALT-x>$$FG$$\tKill task (window).\n",TRUE);
|
||||
|
||||
InPrint(50,"Ed(\"CastleFrankenstein.HC.Z\");\n");
|
||||
|
||||
TourPut("Press $$GREEN$$<F5>$$FG$$ in the editor to run the file being edited.\n");
|
||||
|
||||
InGetKey(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);
|
||||
DeathWait(&task);
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the editor.\n");
|
||||
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut(
|
||||
"Explore the $$RED$$$TX+L+PU+UL,"DemoIndex",A="FI:::/Doc/DemoIndex.DD"$$$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);
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"\nCd(\"::/Demo/Games\");Dir;\n";
|
||||
|
||||
TourPut(
|
||||
"Now, we're going to add the CastleFrankenstein.HC.Z program "
|
||||
"to your PersonalMenu.\n\n"
|
||||
"Press $$GREEN$$<CTRL-m>$$FG$$ to get to your PersonalMenu.\n");
|
||||
InGetChar(CH_CTRLM);
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
|
||||
|
||||
TourPut(
|
||||
"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");
|
||||
InGetChar(CH_CTRLL);
|
||||
|
||||
Sleep(500);
|
||||
WinToTop;//Kludge
|
||||
|
||||
TourPut("$$GREEN$$<CURSOR-DOWN>$$FG$$ until you reach \"Macro\".\n");
|
||||
I64 i;
|
||||
for (i=0;i<6;i++)
|
||||
InGetKey(SC_CURSOR_DOWN);
|
||||
|
||||
TourPut("Press $$GREEN$$<SPACE>$$FG$$.\n");
|
||||
InGetStr(" ");
|
||||
|
||||
TourPut(
|
||||
"Now, we'll fill-in the visible tag of the macro. Then, "
|
||||
"we'll fill-in the macro text.\n",TRUE);
|
||||
InPrint(,"Click Here");
|
||||
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
|
||||
InPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
|
||||
|
||||
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
|
||||
InGetChar(CH_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");
|
||||
InGetKey(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");
|
||||
InGetStr(" ");
|
||||
TourPut(
|
||||
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
|
||||
"are done.\n");
|
||||
InUntilChar(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);
|
||||
InPrint(," Click here for Pop-up version");
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
|
||||
InPrint(,"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++)
|
||||
InGetKey(SC_CURSOR_DOWN);
|
||||
TourPut(
|
||||
"Press $$GREEN$$<SPACE>$$FG$$ to check the box.\n");
|
||||
InGetStr(" ");
|
||||
|
||||
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
|
||||
InGetChar(CH_ESC);
|
||||
|
||||
TourPut("Press $$GREEN$$<CTRL-SHIFT-ENTER>$$FG$$ to insert a line feed.\n");
|
||||
InGetKey(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");
|
||||
InGetStr(" ");
|
||||
|
||||
Sleep(500);
|
||||
WinToTop;//Kludge
|
||||
|
||||
TourPut(
|
||||
"Move around with cursor keys and press $$GREEN$$<SHIFT-ESC>$$FG$$ when you "
|
||||
"are done.\n");
|
||||
InUntilChar(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
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
//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/Tour5.IN.Z\");\n";
|
||||
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);
|
||||
|
||||
'' CH_CTRLL;
|
||||
Sleep(2000);
|
||||
'' CH_SPACE;
|
||||
Sleep(1500);
|
||||
'' CH_SPACE;
|
||||
Sleep(1500);
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
|
||||
Sleep(1500);
|
||||
|
||||
TourPut(
|
||||
"Press $$GREEN$$<F4>$$FG$$ for the file chooser. Then, "
|
||||
"pick a file and press $$GREEN$$<ESC>$$FG$$.");
|
||||
InGetKey(SC_F4);
|
||||
Sleep(5000);
|
||||
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
|
||||
InGetChar(CH_ESC);
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
|
||||
InGetChar(CH_SHIFT_ESC);
|
||||
|
||||
TourPut("Use $$GREEN$$<SHIFT F4>$$FG$$ to pick directories.\n",TRUE);
|
||||
@@ -0,0 +1,50 @@
|
||||
PopUp("ACInit(\"::/*;!*/Bible.TXT*\");");
|
||||
AutoComplete(ON);
|
||||
Sleep(3500);
|
||||
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"\nCd(\"::/Demo\");\n";
|
||||
|
||||
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",
|
||||
TRUE);
|
||||
|
||||
"BootHD";
|
||||
|
||||
TourPut(
|
||||
"Look at the $$GREEN$$BootHDIns$$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");
|
||||
InGetKey(SC_F1|SCF_CTRL|SCF_SHIFT);
|
||||
Sleep(500);
|
||||
WinToTop;//Kludge
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut("Press $$GREEN$$<CTRL-F1>$$FG$$ to autocomplete.\n");
|
||||
InGetKey(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);
|
||||
InPrint(,"Man(\"U\");");
|
||||
Sleep(1500);
|
||||
"\n";
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
@@ -0,0 +1,69 @@
|
||||
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");
|
||||
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"\n";
|
||||
|
||||
"F(\"RED\");";
|
||||
InGetStr("\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\");";
|
||||
InGetStr("\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\");";
|
||||
InGetStr("\n");
|
||||
Sleep(2000);
|
||||
|
||||
TourPut("Notice the number of matches.\n",TRUE);
|
||||
|
||||
TourPut(
|
||||
"The wrapper function is in your $$RED$$~/HomeWrappers.HC.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(\"~/HomeWrappers.HC.Z\");";
|
||||
InGetStr("\n");
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort the source code.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut(
|
||||
"$$GREEN$$+lb$$FG$$ is whole label just before.\n"
|
||||
"$$GREEN$$+la$$FG$$ is whole label just after.\n",TRUE);
|
||||
@@ -0,0 +1,25 @@
|
||||
"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");
|
||||
InGetStr("\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");
|
||||
InGetStr("\n");
|
||||
|
||||
"FF(\"/Kernel/St*;*.HH*\");";
|
||||
TourPut(
|
||||
"Let's have two mask of $$GREEN$$St*$$FG$$ plus $$GREEN$$*.HH*$$FG$$\n\n"
|
||||
"Press $$GREEN$$<ENTER>$$FG$$.\n");
|
||||
InGetStr("\n");
|
||||
|
||||
"FF(\"/Kernel/St*;*.HH*;!*Print*\");";
|
||||
TourPut(
|
||||
"Let's unsel $$GREEN$$*Print*$$FG$$.\n\n"
|
||||
"Press $$GREEN$$<ENTER>$$FG$$.\n");
|
||||
InGetStr("\n");
|
||||
TourPut("There is no way to include multiple base directories.\n",TRUE);
|
||||
@@ -0,0 +1,24 @@
|
||||
"Ed(\"::/Misc/Bible.TXT.Z\");\n";
|
||||
TourPut("Press $$GREEN$$<CTRL-F>$$FG$$ to find.\n");
|
||||
InGetChar(CH_CTRLF);
|
||||
|
||||
InPrint(150,"new song");
|
||||
|
||||
TourPut("Cursor down 8 times.\n");
|
||||
I64 i;
|
||||
for (i=0;i<8;i++)
|
||||
InGetKey(SC_CURSOR_DOWN);
|
||||
|
||||
TourPut("Press '$$GREEN$$2$$FG$$' to show all lines within 2 of a match.\n");
|
||||
InGetStr("2");
|
||||
|
||||
TourPut("Press $$GREEN$$<ESC>$$FG$$ to exit the form.\n");
|
||||
InGetChar(CH_ESC);
|
||||
|
||||
TourPut("Look around and press $$GREEN$$<ESC>$$FG$$ to turn off filter.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
TourPut("You can combine filters to effectively do AND searches.\n",TRUE);
|
||||
|
||||
'' CH_SHIFT_ESC;
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
TourPut("Press $$GREEN$$<ENTER>$$FG$$.");
|
||||
"Ed(\"HI:Debugging\");";
|
||||
InGetStr("\n");
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ to abort.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
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");
|
||||
"WinBorder;WinMax;\nUf(\"CAlloc\");";
|
||||
InGetStr("\n");
|
||||
|
||||
TourPut("Press $$GREEN$$<CURSOR-UP>$$FG$$ eight times..");
|
||||
I64 i;
|
||||
for (i=0;i<8;i++)
|
||||
InGetKey(SC_CURSOR_UP);
|
||||
|
||||
TourPut(
|
||||
"Press $$GREEN$$<SPACE>$$FG$$.\n");
|
||||
InGetStr(" ");
|
||||
|
||||
TourPut("Press $$GREEN$$<SHIFT-ESC>$$FG$$ when finished.\n");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
|
||||
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);";
|
||||
InGetStr("\n");
|
||||
|
||||
TourPut("The opcodes are slightly nonstandard.\n",TRUE);
|
||||
"Ed(\"::/Compiler/OpCodes.DD.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");
|
||||
InUntilChar(CH_ESC,CH_SHIFT_ESC);
|
||||
@@ -0,0 +1,21 @@
|
||||
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"
|
||||
"Press $$GREEN$$<ENTER>$$FG$$.\n");
|
||||
|
||||
//Puts the cursor at the bottom.
|
||||
Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
|
||||
"\n";
|
||||
|
||||
"Type(\"~/PersonalMenu.DD\");";
|
||||
InGetStr("\n");
|
||||
|
||||
Sleep(1500);
|
||||
InPrint(250,"Dir;\n");
|
||||
|
||||
Sleep(1500);
|
||||
TourPut(
|
||||
"$$GREEN$$Type()$$FG$$ can also be used on $$GREEN$$.BMP$$FG$$ or $$GREEN$$.GR$$FG$$ "
|
||||
"files!",TRUE);
|
||||
@@ -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\";";
|
||||
InGetStr("\n");
|
||||
|
||||
if (LBtr(&tour_put->display_flags,DISPLAYf_SHOW))
|
||||
WinZBufUpdate;
|
||||
Reference in new issue
Block a user