templeos-info/public/src/Doc/Tips.DD.HTML

280 lines
28 KiB
Plaintext
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="generator" content="TempleOS V5.03">
<link rel="stylesheet" href="/style/templeos.css">
<script src="/script/templeos.js"></script>
<style type="text/css">
.cF0{color:#000000;background-color:#ffffff;}
.cF1{color:#0000aa;background-color:#ffffff;}
.cF2{color:#00aa00;background-color:#ffffff;}
.cF3{color:#00aaaa;background-color:#ffffff;}
.cF4{color:#aa0000;background-color:#ffffff;}
.cF5{color:#aa00aa;background-color:#ffffff;}
.cF6{color:#aa5500;background-color:#ffffff;}
.cF7{color:#aaaaaa;background-color:#ffffff;}
.cF8{color:#555555;background-color:#ffffff;}
.cF9{color:#5555ff;background-color:#ffffff;}
.cFA{color:#55ff55;background-color:#ffffff;}
.cFB{color:#55ffff;background-color:#ffffff;}
.cFC{color:#ff5555;background-color:#ffffff;}
.cFD{color:#ff55ff;background-color:#ffffff;}
.cFE{color:#ffff55;background-color:#ffffff;}
.cFF{color:#ffffff;background-color:#ffffff;}
</style>
</head>
<body>
<pre style="font-family:courier;font-size:10pt">
<a name="l1"></a><span class=cF5> Tips</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>* Turn-off or reboot (</span><span class=cF2>&lt;CTRL-ALT-DEL&gt;</span><span class=cF0>) at any time, except during disk writes.
<a name="l4"></a>Writes are not cached.
<a name="l5"></a>
<a name="l6"></a>* Use </span><a href="/src/Kernel/KMathB.HC#l147"><span class=cF4>Seed</span></a><span class=cF0>() and the cmd line to switch </span><a href="/src/Kernel/KMathB.HC#l137"><span class=cF4>Rand</span></a><span class=cF0>() to non-timer mode and replay
<a name="l7"></a>games you like.
<a name="l8"></a>
<a name="l9"></a>* 64-bit values are most efficient for the compiler.
<a name="l10"></a>
<a name="l11"></a>* See </span><span class=cF9><u>Key Map</u></span><span class=cF0> for a list of defined keys. Define your own keys in </span><a href="/src/Home/HomeKeyPlugIns.HC#l11"><span class=cF4>MyPutKey</span></a><span class=cF0>().
<a name="l12"></a>See </span><span class=cF4><u>Keyboard Devices</u></span><span class=cF0>.
<a name="l13"></a>
<a name="l14"></a>* </span><span class=cF2>&lt;ALT-m&gt;</span><span class=cF0> maximizes a window. </span><span class=cF2>&lt;ALT-SHIFT-w&gt;</span><span class=cF0> closes AutoComplete. </span><span class=cF2>&lt;ALT-w&gt;</span><span class=cF0>
<a name="l15"></a>brings back AutoComplete. </span><span class=cF2>&lt;ALT-v&gt;</span><span class=cF0> vertically tiles windows. </span><span class=cF2>&lt;ALT-h&gt;</span><span class=cF0>
<a name="l16"></a>horizontally tiles windows. The </span><span class=cF2>ALT</span><span class=cF0> keys are defined in </span><a href="/src/Home/HomeKeyPlugIns.#l1"><span class=cF4>~/HomeKeyPlugIns.HC</span></a><span class=cF0>.
<a name="l17"></a>You can customize them.
<a name="l18"></a>
<a name="l19"></a>* If you make changes to TempleOS files in your </span><span class=cF2>/Home</span><span class=cF0> directory, generally you
<a name="l20"></a>reboot to make them take effect. (You don't compile anything.) You should have
<a name="l21"></a>two TempleOS partitions on your hard drive because a syntax error in a start-up
<a name="l22"></a>file will make the partition unbootable. Boot to the second partition or boot
<a name="l23"></a>to a standard TempleOS CD/DVD and use </span><a href="/src/Adam/ABlkDev/Mount.HC#l138"><span class=cF4>Mount</span></a><span class=cF0>() to mount your hard drive.
<a name="l24"></a>
<a name="l25"></a>* I copy my files to a mirrored ident partition, periodically with </span><a href="/src/Adam/ABlkDev/ADskA.HC#l122"><span class=cF4>CopyTree</span></a><span class=cF0>()
<a name="l26"></a>commands in scripts. I do merge commands with a menu entry like this:
<a name="l27"></a></span><span class=cF2>Merge(\&quot;C:/*\&quot;,\&quot;D:/*\&quot;,\&quot;+r+d\&quot;);</span><span class=cF0> to check my changes.
<a name="l28"></a>
<a name="l29"></a>* </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> at the cmd line to access your PersonalMenu. Place macros there with </span><span class=cF2>
<a name="l30"></a>&lt;CTRL-l&gt;</span><span class=cF0>, or icon-like sprites with </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>. Use the </span><span class=cF2>Pop-Up</span><span class=cF0> option on macros
<a name="l31"></a>to </span><a href="/src/Kernel/KTask.HC#l242"><span class=cF4>Spawn</span></a><span class=cF0>() a task to run a file. It dies when it is finished. This returns mem
<a name="l32"></a>to the system. Be sure to press </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> to save your macro/menu area after
<a name="l33"></a>making changes.
<a name="l34"></a>
<a name="l35"></a>* You can use </span><span class=cF2>ans</span><span class=cF0> in cmd line expressions. It holds the res the last cmd line
<a name="l36"></a>operation. You can use the cmd prompt as a calculator by just entering
<a name="l37"></a>expressions like </span><span class=cF2>1+2*3;</span><span class=cF0>. </span><span class=cF2>F64</span><span class=cF0> ress can be accessed with </span><span class=cF2>ansf</span><span class=cF0>.
<a name="l38"></a>
<a name="l39"></a>* Use the PullDown menu at the top of the scrn to learn commands, or for finding
<a name="l40"></a>the keyboard controls to games.
<a name="l41"></a>
<a name="l42"></a>* You can adjust the mouse movement rate by setting global vars in your start-up
<a name="l43"></a>file. See </span><a href="/src/Home/HomeLocalize.#l11"><span class=cF4>mouse scale</span></a><span class=cF0>.
<a name="l44"></a>
<a name="l45"></a>* You can set your local time zone by setting the </span><a href="/src/Kernel/KGlbls.HC#l14"><span class=cF4>local_time_offset</span></a><span class=cF0> global var
<a name="l46"></a>in a start-up file. It's units are </span><a href="/src/Kernel/KernelA.HH#l571"><span class=cF4>CDATE_FREQ</span></a><span class=cF0>. See </span><a href="/src/Home/HomeLocalize.#l8"><span class=cF4>local time</span></a><span class=cF0>.
<a name="l47"></a>
<a name="l48"></a>* </span><span class=cF2>&lt;CTRL-SHIFT-L&gt;</span><span class=cF0> in the editor to reindent a </span><a href="/src/Doc/HolyC.DD.HTML#l1"><span class=cF4>HolyC</span></a><span class=cF0> function or renumber an asm
<a name="l49"></a>routine's local labels.
<a name="l50"></a>
<a name="l51"></a>* You can use </span><span class=cF2>filter_lines</span><span class=cF0> in the editor text search form (</span><span class=cF2>&lt;CTRL-f&gt;</span><span class=cF0>) to
<a name="l52"></a>temporarily display just lines near each match. A value of </span><span class=cF2>filter lines</span><span class=cF0> set to </span><span class=cF2>
<a name="l53"></a>5</span><span class=cF0> will display lines within 5 lines of matches. Then, you can do another find
<a name="l54"></a>to a different string and achieve a </span><span class=cF2>AND</span><span class=cF0> search. When finished, press </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0>.
<a name="l55"></a>
<a name="l56"></a>* You can recompile and reinstall the kernel with </span><a href="/src/Adam/Opt/Boot/BootHDIns.HC#l18"><span class=cF4>BootHDIns</span></a><span class=cF0>(). You'll probably
<a name="l57"></a>want to make a function for recompiling that uses the </span><a href="/src/Kernel/Job.HC#l482"><span class=cF4>In</span></a><span class=cF0>() function to answer
<a name="l58"></a>the cfg questions. See my technique </span><a href="/src/Demo/AcctExample/TOS/TOSCfg.HC#l1"><span class=cF4>Cfg Strs</span></a><span class=cF0>, </span><a href="/src/Demo/AcctExample/TOS/TOSDistro.HC#l1"><span class=cF4>Update Funs</span></a><span class=cF0>.
<a name="l59"></a>
<a name="l60"></a>* </span><a href="/src/Kernel/Mem/MemPhysical.HC#l169"><span class=cF4>Scale2Mem</span></a><span class=cF0>(min,max,limit=2*1024*1024*1024) can be used for cfg questions when
<a name="l61"></a>recompiling. The </span><a href="/src/Adam/Opt/Boot/BootHDIns.HC#l18"><span class=cF4>BootHDIns</span></a><span class=cF0>() cfg prompts accept expressions, not just numbers.
<a name="l62"></a>The dft disk cache is </span><span class=cF2>Scale2Mem(0x80000,0x8000000)</span><span class=cF0>.
<a name="l63"></a>
<a name="l64"></a>* You can permanently disable </span><span class=cF2>AutoComplete</span><span class=cF0> commenting-out </span><a href="/src/Home/HomeSys.#l32"><span class=cF4>ACInit</span></a><span class=cF0>() in </span><span class=cF4>
<a name="l65"></a></span><a href="/src/Home/HomeSys.#l32"><span class=cF4>~/HomeSys.HC</span></a><span class=cF0>.
<a name="l66"></a>
<a name="l67"></a>* Boolean expressions <blink>not</blink> in </span><span class=cF2>if</span><span class=cF0> stmts don't have short circuit logic and are
<a name="l68"></a>compiled inefficiently.
<a name="l69"></a>
<a name="l70"></a>* You can use </span><a href="/src/Kernel/KernelB.HH#l209"><span class=cF4>progress1</span></a><span class=cF0>-</span><a href="/src/Kernel/KernelB.HH#l227"><span class=cF4>progress4</span></a><span class=cF0> in your programs for whatever you like.
<a name="l71"></a>They're just global vars that are shown on the wallpaper. The original intent
<a name="l72"></a>was to indicate how far along operations were. There's no coordination, so
<a name="l73"></a>different apps might interfere. I use them most for debugging--just values
<a name="l74"></a>easily viewed. See </span><a href="/src/Demo/Progress.HC#l1"><span class=cF4>::/Demo/Progress.HC</span></a><span class=cF0>.
<a name="l75"></a>
<a name="l76"></a>* Use </span><a href="/src/Adam/DolDoc/DocRecalcLib.HC#l176"><span class=cF4>DocMax</span></a><span class=cF0>() to adjust the size of the cmd line buf. It counts </span><a href="/src/Kernel/KernelA.HH#l1367"><span class=cF4>CDoc</span></a><span class=cF0> entries,
<a name="l77"></a>not lines.
<a name="l78"></a>
<a name="l79"></a>* Many data structures have a </span><span class=cF2>user_data</span><span class=cF0> member. Those are available for you to
<a name="l80"></a>store a data item, for convenience. </span><a href="/src/Kernel/KernelA.HH#l3271"><span class=cF4>CTask</span></a><span class=cF0>, </span><a href="/src/Kernel/KernelA.HH#l1191"><span class=cF4>CDocEntry</span></a><span class=cF0> and </span><a href="/src/Kernel/KernelA.HH#l2520"><span class=cF4>CDirEntry</span></a><span class=cF0> have them.
<a name="l81"></a>You shouldn't encounter conflicts with TempleOS using them.
<a name="l82"></a>
<a name="l83"></a>* If, for some strange reason, you wanted to reduce mem usage, make a smaller
<a name="l84"></a>disk cache when you recompile the kernel; disabling </span><span class=cF2>AutoComplete</span><span class=cF0>; Specify
<a name="l85"></a>smaller stk sizes when doing </span><a href="/src/Kernel/KTask.HC#l242"><span class=cF4>Spawn</span></a><span class=cF0>(), chang </span><a href="/src/Kernel/KernelA.HH#l2843"><span class=cF4>MEM_DFT_STK</span></a><span class=cF0>, and using </span><a href="/src/Adam/DolDoc/DocRecalcLib.HC#l176"><span class=cF4>DocMax</span></a><span class=cF0>() to
<a name="l86"></a>reduce the cmd line buffer size.
<a name="l87"></a>
<a name="l88"></a>* Filenames ending in &quot;</span><span class=cF2>.Z</span><span class=cF0>&quot; will be automatically compressed and uncompressed
<a name="l89"></a>when read or written. The compression method is not supported by other
<a name="l90"></a>operating systems. You can store files uncompressed by </span><a href="/src/Adam/ABlkDev/ADskA.HC#l94"><span class=cF4>Move</span></a><span class=cF0>()ing them to a
<a name="l91"></a>filename not ending in &quot;</span><span class=cF2>.Z</span><span class=cF0>&quot;. See </span><a href="/src/Doc/TOSZ.DD.HTML#l1"><span class=cF4>::/Doc/TOSZ.DD</span></a><span class=cF0> if you want to uncompress while
<a name="l92"></a>in </span><span class=cF2>Linux</span><span class=cF0>.
<a name="l93"></a>
<a name="l94"></a>* </span><a href="/src/Adam/Opt/Utils/Merge.HC#l37"><span class=cF4>Merge</span></a><span class=cF0>() can be used to see what's changed. The </span><span class=cF2>+d</span><span class=cF0> flag will show differences
<a name="l95"></a>of files which have changed and allow you to merge code. (The </span><span class=cF2>+r</span><span class=cF0> flag will
<a name="l96"></a>recurse.)
<a name="l97"></a>
<a name="l98"></a>* There is a utility </span><a href="/src/Adam/Opt/Utils/LinkChk.HC#l47"><span class=cF4>LinkChk</span></a><span class=cF0>() which will check for broken links in
<a name="l99"></a>documentation.
<a name="l100"></a>
<a name="l101"></a>* You can use </span><a href="/src/Compiler/CMisc.HC#l1"><span class=cF4>Option</span></a><span class=cF0>(</span><a href="/src/Kernel/KernelA.HH#l1549"><span class=cF4>OPTf_WARN_PAREN</span></a><span class=cF0>,ON) to find unnecessary parentheses in
<a name="l102"></a>code.
<a name="l103"></a>
<a name="l104"></a>* You can use </span><a href="/src/Compiler/CMisc.HC#l1"><span class=cF4>Option</span></a><span class=cF0>(</span><a href="/src/Kernel/KernelA.HH#l1550"><span class=cF4>OPTf_WARN_DUP_TYPES</span></a><span class=cF0>,ON) to find unnecessary local var type
<a name="l105"></a>stmts.
<a name="l106"></a>
<a name="l107"></a>* </span><a href="/src/Compiler/CMisc.HC#l1"><span class=cF4>Option</span></a><span class=cF0>(</span><a href="/src/Kernel/KernelA.HH#l1546"><span class=cF4>OPTf_ECHO</span></a><span class=cF0>,ON) can be placed in </span><a href="/src/StartOS.HC#l1"><span class=cF4>StartOS.HC</span></a><span class=cF0> to echo start-up scripts.
<a name="l108"></a>
<a name="l109"></a>* Use </span><a href="/src/Adam/DolDoc/DocEd.HC#l249"><span class=cF4>Plain</span></a><span class=cF0>() to edit a plain text file. You'll need this if your file has </span><span class=cF2>$</span><span class=cF0>'s.
<a name="l110"></a> Use the </span><a href="/src/Adam/Opt/Utils/ToDolDoc.HC#l3"><span class=cF4>ToDolDoc</span></a><span class=cF0>() utility to convert plain text to DolDoc's by doubling </span><span class=cF2>$</span><span class=cF0>'s.
<a name="l111"></a>
<a name="l112"></a>* Use </span><a href="/src/Kernel/KMisc.HC#l270"><span class=cF4>Silent</span></a><span class=cF0>() to disable scrn text output.
<a name="l113"></a>
<a name="l114"></a>* Grab-scroll any window at any time with </span><span class=cF2>{CTRL-LEFT-MOUSE-DRAG}</span><span class=cF0>. Null
<a name="l115"></a>grab-scrolling with </span><span class=cF2>{CTRL-RIGHT-MOUSE}</span><span class=cF0>.
<a name="l116"></a>
<a name="l117"></a>* Use </span><span class=cF2>&lt;CTRL-ALT-z&gt;</span><span class=cF0> to zoom-in and </span><span class=cF2>&lt;CTRL-ALT-SHIFT-Z&gt;</span><span class=cF0> to zoom-out. You can
<a name="l118"></a>scroll by moving to the edge of the window. Set </span><a href="/src/Adam/Gr/GrGlbls.HC#l3"><span class=cF4>gr.continuous_scroll</span></a><span class=cF0> to </span><span class=cF2>TRUE</span><span class=cF0> if
<a name="l119"></a>you want.
<a name="l120"></a>
<a name="l121"></a>* Use </span><span class=cF2>&lt;CTRL-ALT-g&gt;</span><span class=cF0> and </span><span class=cF2>&lt;CTRL-ALT-SHIFT-G&gt;</span><span class=cF0> to display a grid on the scrn.
<a name="l122"></a>
<a name="l123"></a>* Use </span><span class=cF2>&lt;CTRL-ALT-a&gt;</span><span class=cF0> to enter an extended ASCII char.
<a name="l124"></a>
<a name="l125"></a>* Use </span><span class=cF2>&lt;CTRL-ALT-f&gt;</span><span class=cF0> to toggle between </span><a href="/src/Kernel/FontStd.HC#l1"><span class=cF4>Std Font</span></a><span class=cF0> and </span><a href="/src/Kernel/FontCyrillic.HC#l1"><span class=cF4>Cyrillic Font</span></a><span class=cF0>.
<a name="l126"></a>
<a name="l127"></a>* Use </span><span class=cF2>&lt;CTRL-ALT-s&gt;</span><span class=cF0> will capture the scrn as a sprite on the clip. You can save
<a name="l128"></a>the cmd line doc as text with </span><span class=cF2>&lt;CTRL-a&gt;</span><span class=cF0>.
<a name="l129"></a>
<a name="l130"></a>* You can save a sprite as a </span><span class=cF2>.GR</span><span class=cF0> file in </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> on the Sprite BitMap Menu.
<a name="l131"></a>
<a name="l132"></a>* You can eye-dropper colors in the </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> sprite editor by pressing </span><span class=cF2>'c'</span><span class=cF0>.
<a name="l133"></a>Press </span><span class=cF2>'t'</span><span class=cF0> for transparent.
<a name="l134"></a>
<a name="l135"></a>* There are handy functions--</span><span class=cF2>F(),R(),FD()</span><span class=cF0> and </span><span class=cF2>RD()</span><span class=cF0> which are defined in </span><span class=cF4>
<a name="l136"></a></span><a href="/src/Home/HomeWrappers.#l1"><span class=cF4>~/HomeWrappers.HC</span></a><span class=cF0>. You are encouraged to change them and add more. They will
<a name="l137"></a>perform find-and-replace operations accross multiple files. The </span><span class=cF2>+l</span><span class=cF0> flag is
<a name="l138"></a>particularly useful since it limits to whole labels. The </span><span class=cF2>+lb</span><span class=cF0> and </span><span class=cF2>+la</span><span class=cF0> flags
<a name="l139"></a>limit to whole labels just before or after. You are encouraged to add or modify
<a name="l140"></a>handy wrapper functions to make cmd line operations easier.
<a name="l141"></a>
<a name="l142"></a>* When using </span><a href="/src/Adam/Opt/Utils/Find.HC#l145"><span class=cF4>Find</span></a><span class=cF0>() while modifying code, work from the bottom-up so that line
<a name="l143"></a>numbers are correct. If you work top-down, then inserting or deleting lines
<a name="l144"></a>causes the lower file links will be incorrect.
<a name="l145"></a>
<a name="l146"></a>* You can save files after making changes, anytime you are within the editor,
<a name="l147"></a>like when viewing help/macro files. </span><span class=cF2>&lt;CTRL-a&gt;</span><span class=cF0> saves as, </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> saves with the
<a name="l148"></a>same name in the scrolling title bar. Hitting </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> will exit and save. (</span><span class=cF2>&lt;SHIF
<a name="l149"></a>T-ESC&gt;</span><span class=cF0> will abort). You can save the cmd line window to a file, too, since
<a name="l150"></a>you're actually in the editor when you're at the cmd line.
<a name="l151"></a>
<a name="l152"></a>* When using </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0> to insert links in documents, you can usually leave the </span><span class=cF2>Ta
<a name="l153"></a>g Text</span><span class=cF0> blank and it will be filled-in automatically based on other entries.
<a name="l154"></a>
<a name="l155"></a>* There is a feature of the precompiler that allows code to be executed in the
<a name="l156"></a>middle of compilation and data inserted into the compilation stream. Click here
<a name="l157"></a>for an example: </span><a href="/src/Kernel/KMain.HC#l16"><span class=cF4>#exe {</span></a><span class=cF0>.
<a name="l158"></a>
<a name="l159"></a>* If you output to the cmd line and wish to allow users to scroll around and
<a name="l160"></a>view data, you can use </span><a href="/src/Adam/DolDoc/DocEd.HC#l3"><span class=cF4>View</span></a><span class=cF0>().
<a name="l161"></a>
<a name="l162"></a>* Use </span><a href="/src/Adam/DolDoc/DocEd.HC#l3"><span class=cF4>View</span></a><span class=cF0>() in Pop-up macros to linger until the user presses </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> or </span><span class=cF2>&lt;SHIFT-E
<a name="l163"></a>SC&gt;</span><span class=cF0>.
<a name="l164"></a>
<a name="l165"></a>* You can access the word under the cursor at </span><a href="/src/Kernel/KernelA.HH#l1496"><span class=cF4>ac.cur_word</span></a><span class=cF0>.
<a name="l166"></a>
<a name="l167"></a>* You can reactivate </span><span class=cF2>AutoComplete</span><span class=cF0> after closing it by pressing </span><span class=cF2>&lt;CTRL-Fun Key&gt;</span><span class=cF0> or </span><span class=cF2>
<a name="l168"></a>&lt;ALT-w&gt;</span><span class=cF0> if you have it defined.
<a name="l169"></a>
<a name="l170"></a>* </span><span class=cF2>&lt;CTRL-SHIFT-T&gt;</span><span class=cF0> to toggle to/from plain text just the </span><a href="/src/Kernel/KernelA.HH#l1367"><span class=cF4>CDoc</span></a><span class=cF0> cmd under the
<a name="l171"></a>cursor. See </span><a href="/src/Demo/DolDoc/TextDemo.HC#l1"><span class=cF4>::/Demo/DolDoc/TextDemo.HC</span></a><span class=cF0>.
<a name="l172"></a>
<a name="l173"></a>* If you toggle to plain text when you are working with graphics in a document,
<a name="l174"></a>you can add duplicate entries for sprites by entering a </span><span class=cF2>$SP...$</span><span class=cF0> cmd with the
<a name="l175"></a>same num.
<a name="l176"></a>
<a name="l177"></a>* If you toggle to plain text when working with graphics, you can add a str to
<a name="l178"></a>the </span><span class=cF2>$SP...$</span><span class=cF0> entry to keep track of it. Try </span><span class=cF2>$SP,&quot;&lt;2&gt;&quot;,BI=2$</span><span class=cF0> where '2' is the
<a name="l179"></a>sprite num.
<a name="l180"></a>
<a name="l181"></a>* I use spaces-to-tab operations on all my src files to keep them small. You
<a name="l182"></a>have to be careful, though, because spaces in strings will be converted. I use </span><span class=cF2>
<a name="l183"></a>&lt;SHIFT-SPACE&gt;</span><span class=cF0> ' ' in such cases. See </span><a href="/src/Adam/Opt/Utils/StrUtils.HC#l201"><span class=cF4>S2T</span></a><span class=cF0>() for spaces-to-tabs.
<a name="l184"></a>
<a name="l185"></a>* You can edit an existing sprite by putting the cursor on it and pressing </span><span class=cF2>&lt;CTRL
<a name="l186"></a>-r&gt;</span><span class=cF0>.
<a name="l187"></a>
<a name="l188"></a>* When editing a sprite, you can cut and paste the elements in the sidebar text
<a name="l189"></a>list window.
<a name="l190"></a>
<a name="l191"></a>* I recommend keeping CSprite in vect format until you are done creating them,
<a name="l192"></a>so you can edit the ctrl points. Then, convert them to bitmaps, so the flood
<a name="l193"></a>fills work well. If you are doing interpolation, however, they must be vect.
<a name="l194"></a>
<a name="l195"></a>* </span><a href="/src/Adam/Gr/GrPrimatives.HC#l239"><span class=cF4>GrFloodFill</span></a><span class=cF0>() is slow. </span><a href="/src/Adam/Gr/GrBitMap.HC#l1008"><span class=cF4>GrRect</span></a><span class=cF0>() is fast.
<a name="l196"></a>
<a name="l197"></a>* You can customize the </span><span class=cF2>wallpaper</span><span class=cF0>. See </span><a href="/src/Demo/Graphics/WallPaperFish.HC#l1"><span class=cF4>::/Demo/Graphics/WallPaperFish.HC</span></a><span class=cF0>.
<a name="l198"></a>
<a name="l199"></a>* Your RAM disks will not be reformated when you reboot if the memory location
<a name="l200"></a>has not changed and it finds the disk intacted.
<a name="l201"></a>
<a name="l202"></a>* </span><span class=cF2>try{} catch{}</span><span class=cF0> in a function will cause all vars to be non-reg.
<a name="l203"></a>
<a name="l204"></a>* Using a sub-int array, </span><span class=cF2>i.u8[3]</span><span class=cF0>, for example, will force a local var to
<a name="l205"></a>non-reg.
<a name="l206"></a>
<a name="l207"></a>* You can delete the </span><span class=cF4>~/Registry.HC.Z</span><span class=cF0> file. The policy is that deleting it will
<a name="l208"></a>restore defaults. It is a text doc, if you want to edit it. Be careful of tree
<a name="l209"></a>indentations.
<a name="l210"></a>
<a name="l211"></a>* Study </span><a href="/src/Adam/Opt/Utils/MemRep.HC#l1"><span class=cF4>::/Adam/Opt/Utils/MemRep.HC</span></a><span class=cF0> and </span><a href="/src/Adam/WallPaper.HC#l17"><span class=cF4>WallPaper</span></a><span class=cF0>() to learn how the system
<a name="l212"></a>resources are put together.
<a name="l213"></a>
<a name="l214"></a>* The editor's sel-text mechanism allows for disjoint portions of sel text.
<a name="l215"></a>This is a feature, not a bug -- you can cut-and-paste disjoint text.
<a name="l216"></a>
<a name="l217"></a>* </span><a href="/src/Kernel/KernelA.HH#l557"><span class=cF4>cnts.time_stamp_freq</span></a><span class=cF0> is continuously calibrated. Be careful because
<a name="l218"></a>expressions might decrease. Take a snap-shot, like this: </span><span class=cF2>timeout=</span><a href="/src/Kernel/KernelB.HH#l292"><span class=cF4>GetTSC</span></a><span class=cF2>+</span><span class=cF4>
<a name="l219"></a></span><a href="/src/Kernel/KernelA.HH#l557"><span class=cF4>cnts.time_stamp_freq</span></a><span class=cF2> x seconds;</span><span class=cF0> and compare against </span><a href="/src/Kernel/KernelB.HH#l292"><span class=cF4>GetTSC</span></a><span class=cF0>(). I recommend just
<a name="l220"></a>using </span><a href="/src/Kernel/KMisc.HC#l122"><span class=cF4>tS</span></a><span class=cF0> or </span><a href="/src/Kernel/KernelA.HH#l557"><span class=cF4>cnts.jiffies</span></a><span class=cF0>.
<a name="l221"></a>
<a name="l222"></a>* Use </span><a href="/src/Adam/Opt/Utils/HeapLog.HC#l73"><span class=cF4>HeapLog</span></a><span class=cF0>(), </span><a href="/src/Adam/Opt/Utils/HeapLog.HC#l115"><span class=cF4>HeapLogAddrRep</span></a><span class=cF0>() and </span><a href="/src/Adam/Opt/Utils/HeapLog.HC#l146"><span class=cF4>HeapLogSizeRep</span></a><span class=cF0>() to find leaks. Don't be
<a name="l223"></a>confused by </span><a href="/src/Kernel/KernelA.HH#l1367"><span class=cF4>CDoc</span></a><span class=cF0> allocations. Those are generated when text is written to the
<a name="l224"></a>cmd line buffer.
<a name="l225"></a>
<a name="l226"></a>* For advanced heap debugging, play with </span><a href="/src/Kernel/KernelA.HH#l2773"><span class=cF4>_CFG_HEAP_DBG</span></a><span class=cF0>. You're on your own.
<a name="l227"></a>
<a name="l228"></a>* You can use </span><a href="/src/Adam/DolDoc/DocFile.HC#l325"><span class=cF4>Type</span></a><span class=cF0>() to display </span><span class=cF2>.GR</span><span class=cF0> files.
<a name="l229"></a>
<a name="l230"></a>* Use </span><a href="/src/Kernel/FunSeg.HC#l346"><span class=cF4>Man</span></a><span class=cF0>() to jump to short sym name src code.
<a name="l231"></a>
<a name="l232"></a>* Use </span><a href="/src/Kernel/EdLite.HC#l337"><span class=cF4>Fix</span></a><span class=cF0>() to edit and fix the last compiler err.
<a name="l233"></a>
<a name="l234"></a>* You can use </span><span class=cF2>&lt;CTRL-SHIFT-L&gt;</span><span class=cF0> to do a check for compile errors.
<a name="l235"></a>
<a name="l236"></a>* You can use </span><a href="/src/Adam/Opt/Utils/DocUtils.HC#l148"><span class=cF4>DocOpt</span></a><span class=cF0>() to optimize links. (Mostly just removes .Z)
<a name="l237"></a>
<a name="l238"></a>* </span><a href="/src/Adam/Opt/Utils/Diff.HC#l320"><span class=cF4>ZipRep</span></a><span class=cF0>() can highlight src files with lots of redundancy.
<a name="l239"></a>
<a name="l240"></a>* With </span><span class=cF2>start</span><span class=cF0>/</span><span class=cF2>end</span><span class=cF0>, common trailing code is fast. Common leading code is slow.
<a name="l241"></a>
<a name="l242"></a>* The first line of the </span><span class=cF9><u>Psalmody</u></span><span class=cF0> </span><a href="/src/Doc/HolyC.DD.HTML#l1"><span class=cF4>HolyC</span></a><span class=cF0> song files is a comment with a category
<a name="l243"></a>recognized by </span><a href="/src/Apps/Psalmody/JukeBox.HC#l107"><span class=cF4>JukeBox</span></a><span class=cF0>(). The categories are </span><span class=cF2>&quot;no nothing&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has words&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has
<a name="l244"></a>graphics&quot;</span><span class=cF0>, or </span><span class=cF2>&quot;special&quot;</span><span class=cF0>. The third character in the song comment is a digit
<a name="l245"></a>rating number, shown in </span><a href="/src/Apps/Psalmody/JukeBox.HC#l107"><span class=cF4>JukeBox</span></a><span class=cF0>(). You can set the song rating in </span><a href="/src/Apps/Psalmody/JukeBox.HC#l107"><span class=cF4>JukeBox</span></a><span class=cF0>() by
<a name="l246"></a>pressing </span><span class=cF2>0</span><span class=cF0>-</span><span class=cF2>9</span><span class=cF0>. You can press </span><span class=cF2>&lt;DEL&gt;</span><span class=cF0> to delete songs.
<a name="l247"></a>
<a name="l248"></a></span><span class=cF8>
<a name="l249"></a>* &quot;Linux&quot; is a trademark owned by Linus Torvalds.
<a name="l250"></a></span></pre></body>
</html>