TempleOSCDV4.03.ISO
This commit is contained in:
1 parent
1541d7328d
commit
0f1a4a5d65
115 files changed
+5618
-4863
No files matched your search
@@ -7,7 +7,7 @@ $TX,"www.templeos.org",HTML="http://www.templeos.org"$
|
||||
$FG,5$Owner/President:$FG$
|
||||
$TX,"Terry A. Davis",HTML="mailto:tdavis@templeos.org"$
|
||||
|
||||
$HC,"<img src=\"http://www.templeos.org/images/140414TerryADavis.jpg\" width=\"432\" height=\"324\" alt=\"\">"$
|
||||
$HC,"<center><img src=\"http://www.templeos.org/images/140414TerryADavis.jpg\" width=\"432\" height=\"324\" alt=\"\"></center>"$
|
||||
|
||||
8144 Sickle Lane
|
||||
Las Vegas, NV 89128
|
||||
@@ -24,7 +24,7 @@ I was a National Merit Scholar with a 1440 SAT at Arizona State University. I h
|
||||
|
||||
I designed a 3 axis stepper-motor-driven milling machine 1996-1997 with a CAD/CAM package for a company I started called Home Automation and Robotic Equipment.
|
||||
|
||||
$HC,"<img src=\"http://www.templeos.org/images/Machine.jpg\" width=\"600\" height=\"400\" alt=\"\">"$
|
||||
$HC,"<center><img src=\"http://www.templeos.org/images/Machine.jpg\" width=\"600\" height=\"400\" alt=\"\"></center>"$
|
||||
|
||||
I worked for a company named Xytec Corp. 1997-1999. We made FPGA-based image processing equipment. I wrote $FG,2$$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$$FG$ from 2000-2001 for H.A.R.E. I worked as head software/electrical engineer for a company called Graphic Technologies, 2001-2002, making replacement chips for toner printer cartridges so they could be refilled.
|
||||
|
||||
|
||||
+45
-1
@@ -1,7 +1,51 @@
|
||||
$WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
|
||||
$WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
|
||||
|
||||
Use $LK,"R",A="MN:R"$() to rename if I change a label.
|
||||
|
||||
$IV,1$----02/10/16 13:51:44----$IV,0$
|
||||
|
||||
$IV,1$----02/10/16 08:56:49----$IV,0$
|
||||
* Improved $FG,2$<CTRL-l>$FG$ prompting.
|
||||
|
||||
$IV,1$----02/09/16 23:54:23----$IV,0$
|
||||
* Created $LK,"DOCEF_LEN",A="MN:DOCEF_LEN"$ with arg. $LK,"DOCT_DATA",A="MN:DOCT_DATA"$ has default 64 len.
|
||||
|
||||
$IV,1$----02/09/16 09:34:32----$IV,0$
|
||||
* $BK,1$TempleOS version 4.03 Released$BK,0$
|
||||
* Added $LK,"DOCEF_REMALLOC_DATA",A="MN:DOCEF_REMALLOC_DATA"$.
|
||||
|
||||
$IV,1$----02/05/16 23:00:53----$IV,0$
|
||||
* Moved $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
|
||||
* Added $LK,"::/Demo/AcctExample/TOSToHtml.CPP"$.
|
||||
|
||||
$IV,1$----02/03/16 18:47:00----$IV,0$
|
||||
* Refactored $LK,"SpriteMainEd",A="MN:SpriteMainEd"$().
|
||||
* Added tag edit to main sprite edit menu.
|
||||
|
||||
$IV,1$----02/01/16 21:01:15----$IV,0$
|
||||
* Cleaned-up $LK,"TaskKillDying",A="MN:TaskKillDying"$().
|
||||
* Made multicore more professional.
|
||||
|
||||
$IV,1$----02/01/16 06:02:41----$IV,0$
|
||||
* Moved $LK,"Mem2Meg.CPP",A="FI:::/Demo/Lectures/Mem/Mem2Meg.CPP"$ out of kernel.
|
||||
|
||||
$IV,1$----01/31/16 04:07:50----$IV,0$
|
||||
* Fixed scheduler, so doesn't idle so high.
|
||||
* Fixed many memory leaks.
|
||||
* Changed args to $LK,"Mem512Alloc",A="MN:Mem512Alloc"$(), $LK,"Mem512Free",A="MN:Mem512Free"$(), and $LK,"Mem512TaskAlloc",A="MN:Mem512TaskAlloc"$().
|
||||
|
||||
$IV,1$----01/30/16 11:14:29----$IV,0$
|
||||
* Changed arg in $LK,"DocEntryNewTag",A="MN:DocEntryNewTag"$().
|
||||
* Added $LK,"DocEntryNewBase",A="MN:DocEntryNewBase"$().
|
||||
|
||||
$IV,1$----01/29/16 02:44:38----$IV,0$
|
||||
* Overhauled $LK,"DocSave",A="MN:DocSave"$() and $LK,"DocRecalc",A="MN:DocRecalc"$().
|
||||
|
||||
$IV,1$----01/28/16 20:45:35----$IV,0$
|
||||
* Fixed bug in locate sprite elem code.
|
||||
* Overhauled $FG,2$<CTRL-r>$FG$ sprite editor.
|
||||
* Added $LK,"DocHighlightCursor",A="MN:DocHighlightCursor"$() and $LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="MN:DOCf_DONT_HIGHLIGHT_CURSOR"$.
|
||||
|
||||
$IV,1$----01/28/16 14:05:52----$IV,0$
|
||||
* Fixed bug in $LK,"AutoComplete",A="MN:AutoComplete"$() init.
|
||||
* Added $LK,"HeapLogSizeRep",A="MN:HeapLogSizeRep"$().
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ $WW,1$$FG,5$$TX+CX,"Credits"$$FG$
|
||||
|
||||
9) I included $LK,"PCIDevice Lst File",A="FI:::/Misc/PCIDevices.TXT",HTML="http://www.pcidatabase.com/reports.php?type=tab-delimeted"$.
|
||||
|
||||
10) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.CPP.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$. I'm a novice on web stuff and you helped me with html. See $LK,"ToHtml",A="FI:::/Adam/Opt/Utils/ToHtml.CPP"$.
|
||||
10) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.CPP.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$. I'm a novice on web stuff and you helped me with html. See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
|
||||
|
||||
11) I used $FG,4$$TX,"MagicISO",HTML="http://www.magiciso.com"$$FG$ to burn test CD's to help me understand the ISO9660 file system format. I mostly used the $FG,4$$TX,"ISO9660",HTML="http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html"$$FG$ spec.
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ Examples: <CTRL-t> to see
|
||||
8)$LK,"File anchor link -- <CTRL-t> to see anchor after you click",A="FA:::/Kernel/KEnd.CPP,Independent HeapCtrl Example"$
|
||||
9)$LK,"Bible Link",A="BF:Acts,2:3"$ The chapter:verse actually just does a text search.
|
||||
10) $LK,"Help Index Link",A="HI:Doc"$.
|
||||
11) $LK,"Address Link",A="AD:0x11000"$.
|
||||
11) $LK,"Address Link",A="AD:0x12000"$.
|
||||
|
||||
12) For in-memory document address links, see $LK,"SpriteEdText",A="MN:SpriteEdText"$().
|
||||
|
||||
@@ -176,7 +176,7 @@ $ID,2$Include a $FG,2$1$FG$ or $FG,2$0$FG$.
|
||||
|
||||
$FG,2$$$HL,1$$$FG$ will turn syntax highlighting on.
|
||||
$ID,-2$$TR,"HC html"$
|
||||
$ID,2$The $LK,"ToHtml",A="MN:ToHtml"$() or $LK,"Doc2Html",A="MN:Doc2Html"$() routines will generate a html version of a document. You can cause html code to be injected with $FG,2$HC$FG$. Use the $FG,2$+HTML$FG$ flag to inject a html link.
|
||||
$ID,2$See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$ to generate a html version of a document. You can cause html code to be injected with $FG,2$HC$FG$. Use the $FG,2$+HTML$FG$ flag to inject a html link.
|
||||
$ID,-2$$TR,"ER Error"$
|
||||
$ID,2$When errors are detected in DolDoc cmds, an $FG,2$ER$FG$ entry is generated.
|
||||
$ID,-2$
|
||||
@@ -224,7 +224,7 @@ For indirection, the tag will be regenerated by substituting the value of a syst
|
||||
|
||||
For $FG,2$LS$FG$ widgets, see $LK,"::/Demo/DolDoc/Form.CPP"$.
|
||||
$ID,-2$$TR,"HTML=\"\""$
|
||||
$ID,2$The $LK,"ToHtml",A="MN:ToHtml"$() or $LK,"Doc2Html",A="MN:Doc2Html"$() routines will generate a html version of a document. You can cause html link on an item with $FG,2$HTML=""$FG$.
|
||||
$ID,2$See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$ to generate a html version of a document. You can cause html link on an item with $FG,2$HTML=""$FG$.
|
||||
$ID,-2$$TR,"LE=<Exp> Left Expression"$
|
||||
$ID,2$Left expression. $FG,2$CM$FG$ has this by default for X offset and you can leave-off the $FG,2$LE=$FG$, just putting the $FG,2$<Exp>$FG$.
|
||||
|
||||
|
||||
Binary file not shown.
+2
-2
@@ -168,7 +168,7 @@ $ID,2$$FG,2$U0 Main()
|
||||
}
|
||||
}
|
||||
$FG$$ID,-2$
|
||||
* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK,"::/Demo/Lectures/PageTableEntries2.CPP"$.
|
||||
* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK,"::/Demo/Lectures/Mem/PageTableEntries2.CPP"$.
|
||||
|
||||
* A single quote can encompass multiple characters. $FG,2$'ABC'$FG$ is equ to $FG,2$0x434241$FG$. $LK,"PutChars",A="MN:PutChars"$() takes multiple characters.
|
||||
|
||||
@@ -237,7 +237,7 @@ $FG$$ID,-2$
|
||||
|
||||
* There is a function called $LK,"MSize",A="MN:MSize"$() which gives the size of an object alloced off the heap. For larger size allocations, the system rounds-up to a power of two, so $FG,2$MSize()$FG$ lets you know the real size and you can take full advantage of it.
|
||||
|
||||
* You can $LK,"Free",A="MN:Free"$() a $FG,2$NULL$FG$ ptr. Useful variants of $LK,"MAlloc",A="MN:MAlloc"$() can be found $LK,"Here",A="MN:CAlloc"$. Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off of other task's heaps, or make an independent heap with $LK,"HeapCtrlBPInit",A="MN:HeapCtrlBPInit"$().
|
||||
* You CAN $LK,"Free",A="MN:Free"$() a $FG,2$NULL$FG$ ptr. Useful variants of $LK,"MAlloc",A="MN:MAlloc"$() can be found $LK,"Here",A="MN:CAlloc"$. Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off-of other task's heaps, or make an independent heap with $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$(). See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
|
||||
|
||||
* The stk does not grow because virtual mem is not used. I recommend allocating large local vars from the heap. You can change $LK,"MEM_DFT_STK",A="MN:MEM_DFT_STK"$ and recompile $FG,2$Kernel$FG$ or request more when doing a $LK,"Spawn",A="MN:Spawn"$(). You can use $LK,"CallStkGrow",A="MN:CallStkGrow"$(), but it's odd. See $LK,"::/Demo/StkGrow.CPP"$.
|
||||
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@ Paging is practically not used. 64-bit mode requires paging, however, so it is
|
||||
|
||||
In TempleOS, the lowest 2 Gig of memory is called the $FG,2$code heap$FG$. TempleOS's compiler always uses 32-bit signed relative JMP & CALL instructions because 64-bit CALLs take two instructions. With signed +/- 32-bit values, code can only call a function within 2 Gig distance. Therefore, TempleOS keeps all code in the lowest 2 Gig memory addresses including what would normally be called "the kernel". Two Gig is plenty for code, don't worry.
|
||||
|
||||
You can create new, independent heaps by first allocating mem with $LK,"Mem2MegUncachedAlloc",A="MN:Mem2MegUncachedAlloc"$() or $LK,"Mem512Alloc",A="MN:Mem512Alloc"$(), then calling $LK,"HeapCtrlBPInit",A="MN:HeapCtrlBPInit"$() and, then, using $LK,"MAlloc",A="MN:MAlloc"$().
|
||||
You can create new, independent heaps using $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$(). Then, use the $LK,"CHeapCtrl",A="MN:CHeapCtrl"$ as the 2nd arg to $LK,"MAlloc",A="MN:MAlloc"$(). See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
|
||||
|
||||
Memory alloced by a task will be freed when the task is killed.
|
||||
|
||||
@@ -17,7 +17,7 @@ $FG,5$$TX+CX,"Single System-wide Mem Map"$
|
||||
$FG,2$ 0x0000000000- 0x00$TX,"00006FFF",D="DD_PROTECTED_LOW"$$FG$
|
||||
$ID,2$Pages marked not present so NULL ptr dereference causes a fault.
|
||||
$ID,-2$
|
||||
$FG,2$ 0x00$TX,"00007C00",D="DD_KERNEL"$- 0x00$TX,"00034E7F",D="DD_KERNEL_END"$$FG$
|
||||
$FG,2$ 0x00$TX,"00007C00",D="DD_KERNEL"$- 0x00$TX,"0003460F",D="DD_KERNEL_END"$$FG$
|
||||
$ID,2$Kernel module, placed here by the boot-loader, $LK,"BOOT_RAM_BASE",A="MN:BOOT_RAM_BASE"$.
|
||||
$ID,-2$
|
||||
$FG,2$ 0x00$TX,"00096600",D="DD_BOOT_HIGH_LOC_DVD"$- 0x00$TX,"00096FFF",D="DD_BOOT_HIGH_LOC_DVD_END"$$FG$
|
||||
@@ -35,7 +35,7 @@ $ID,-2$
|
||||
$FG,2$ 0x00$TX,"00100000",D="DD_SYS_FIXED_AREA_BASE"$- 0x00$TX,"001845FF",D="DD_SYS_FIXED_AREA_END"$$FG$
|
||||
$ID,2$$LK,"CSysFixedArea",A="MN:CSysFixedArea"$ for page tables and misc. $TX,"128 Gig",D="DD_MEM_MAPPED_SPACE_GIG"$ of address space mapped.
|
||||
$ID,-2$
|
||||
$FG,2$ 0x00$TX,"00184600",D="DD_SYS_HEAP_BASE"$- 0x00$TX,"7FFFFFFF",D="DD_SYS_HEAP_LIMIT"$$FG$
|
||||
$FG,2$ 0x00$TX,"00184600",D="DD_SYS_HEAP_BASE"$- 0x00$TX,"3FFE3DFF",D="DD_SYS_HEAP_LIMIT"$$FG$
|
||||
$ID,2$Code Heap mem.
|
||||
$ID,-2$
|
||||
$FG,2$ - 0x007FFFFFFF$FG$
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$WW,1$$FG,5$$TX+CX,"Sprite BitMap Menu Help"$$FG$
|
||||
|
||||
Bitmaps have a background color. If you delete to the clipboard, what's left will be background colored.
|
||||
BitMaps have a background color. If you delete to the clipboard, what's left will be background colored.
|
||||
|
||||
While drawing, you can usually press $FG,2$'c'$FG$ to eye-dropper the color under the mouse. Press $FG,2$'t'$FG$ for transparent.
|
||||
+3
-5
@@ -1,9 +1,7 @@
|
||||
$WW,1$$FG,5$$TX+CX,"Sprite Edit Menu Help"$$FG$
|
||||
|
||||
Order of elements matters. They are executed in the order they appear in the side-bar. You can set the current element by clicking the element in the side-bar and making it RED.
|
||||
Order of elements matters. They are executed in the order they appear in the side-bar. You can select or unselect elements graphically, or with text in the sidebar. Then, cut, copy, paste, shift or transform them.
|
||||
|
||||
DELETE will delete the RED element in the side-bar. You can just delete elements directly in the side-bar as long as you click another element to update things.
|
||||
You can set the current insert point element by clicking the element in the side-bar and making it RED.
|
||||
|
||||
You can delete or select elements graphically.
|
||||
|
||||
You can insert an element which shifts around all subsequent other elements. Perhaps, you inserted a sprite's elements from the clip-board and want to chift it around. This command is also useful if you interpolate in programs.
|
||||
$FG,2$Insert Shift Suborigin$FG$ is an element which shifts subsequent elements. Perhaps, you inserted a sprite's elements from the clipboard and want to shift it around? This command is also useful if you call $LK,"SpriteInterpolate",A="MN:SpriteInterpolate"$() in programs.
|
||||
@@ -4,4 +4,4 @@ $WW,1$You can cut and paste elements in this side-bar to reorder, delete or dupl
|
||||
|
||||
You can click on an element to make it the insert point for new elements.
|
||||
|
||||
The RED element is the current element and it is the insert point for new elements.
|
||||
The RED element is the current insert point for new elements.
|
||||
Binary file not shown.
+2
-2
@@ -7,7 +7,7 @@ $ID,2$* Professionals doing hobby projects
|
||||
* Teenagers doing projects
|
||||
* Non-professional, older-persons projects
|
||||
$ID,-2$
|
||||
Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.TXT"$, so it's easy to tinker with. As it turns-out, simplicity makes it faster in some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed. It's only $TX,"80,940",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.TXT"$ application in one line of code and can put graphics on the screen with a three line program!
|
||||
Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.TXT"$, so it's easy to tinker with. As it turns-out, simplicity makes it faster in some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed. It's only $TX,"80,590",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.TXT"$ application in one line of code and can put graphics on the screen with a three line program!
|
||||
|
||||
It's a kayak, not a Titanic -- it will crash if you do something wrong. You quickly reboot, however. DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection. The resulting simplicity of no protections is why TempleOS has value. In facts, that's the point of TempleOS. See the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.TXT"$.
|
||||
|
||||
@@ -39,7 +39,7 @@ Once I was no longer using standard C/C++ syntax, I decided to change everything
|
||||
|
||||
There are no object files in TempleOS and, normally, you don't make executable files either, but you can. That's known as $LK,"Ahead-of-Time",A="FF:::/Doc/Glossary.TXT,AOT Compile Mode"$ compilation. Instead, you $LK,"Just in Time",A="FF:::/Doc/Glossary.TXT,JIT Compile Mode"$ compile.
|
||||
|
||||
Tasks have no priority and are never removed from the queue. Instead, they often poll whatever they are waiting on and swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See $LK,"Scheduler",A="FL:::/Kernel/Sched.CPP,1"$. Polling keeps it simple. It's might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order of the tasks in the queue determines front-to-back window order.
|
||||
Tasks have no priority and are never removed from the queue. Instead, they often poll whatever they are waiting on and swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See $LK,"Scheduler",A="FL:::/Kernel/Sched.CPP,1"$. Polling keeps it simple. It might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order of the tasks in the queue determines front-to-back window order.
|
||||
|
||||
The $FG,2$FAT32$FG$ filesystem is supported to makes exchanging files with a dual booted other operating system easy and there is the simple, 64-bit TempleOS $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ filesystem. The $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ has allocation bitmap for clusters and all files are stored contiguously. You can't grow files.
|
||||
|
||||
|
||||
+1
-1
@@ -39,4 +39,4 @@ $FG,5$Escape$FG$ For macro's, send an $FG,2$<ESC>$FG$ char to exit before runnin
|
||||
|
||||
$FG,5$Refresh Data$FG$ updates $FG,2$$$DA...$$$FG$ entry continuously.
|
||||
|
||||
$FG,5$Html Link$FG$ stores a link which will be embedded if you generate a html version of a document with $LK,"ToHtml",A="MN:ToHtml"$() or $LK,"Doc2Html",A="MN:Doc2Html"$().
|
||||
$FG,5$Html Link$FG$ stores a link which will be embedded if you generate a html version of a document with $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
|
||||
Reference in new issue
Block a user