TempleOSCDV4.10.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:47:44 +02:00
1 parent c5954d3371
commit 9206246147
181 files changed
+4468 -4313

No files matched your search

+46 -5
View File
@@ -7,11 +7,45 @@ $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,"81,056",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,"81,125",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"$.
Conventional thinking is "failure is not an option" for general purpose operating systems. Since this OS is used in addition to Windows or Linux, however, failure is an option -- just use Windows or Linux if you can't do something. I cherry-pick what it will and won't do to make it maximally beautiful.
Conventional thinking is "failure is not an option" for general purpose operating systems. Since this OS is used in addition to Windows or Linux, however, failure is an option -- just use Windows or Linux if you can't do something. I cherry-pick what it will and won't do, to make it maximally beautiful. The following applications more or less form a basis that spans the range of use that TempleOS is intended for:
$LK,"/Demo/Games/BattleLines.CPP",A="FI:::/Demo/Games/BattleLines.CPP"$
$LK,"/Demo/Games/BigGuns.CPP",A="FI:::/Demo/Games/BigGuns.CPP"$
$LK,"/Demo/Games/BlackDiamond.CPP",A="FI:::/Demo/Games/BlackDiamond.CPP"$
$LK,"/Demo/Games/BomberGolf.CPP",A="FI:::/Demo/Games/BomberGolf.CPP"$
$LK,"/Demo/Games/CastleFrankenstein.CPP",A="FI:::/Demo/Games/CastleFrankenstein.CPP"$
$LK,"/Demo/Games/CharDemo.CPP",A="FI:::/Demo/Games/CharDemo.CPP"$
$LK,"/Demo/Games/CircleTrace.CPP",A="FI:::/Demo/Games/CircleTrace.CPP"$
$LK,"/Demo/Games/Collision.CPP",A="FI:::/Demo/Games/Collision.CPP"$
$LK,"/Demo/Games/Digits.CPP",A="FI:::/Demo/Games/Digits.CPP"$
$LK,"/Demo/Games/DunGen.CPP",A="FI:::/Demo/Games/DunGen.CPP"$
$LK,"/Demo/Games/EagleDive.CPP",A="FI:::/Demo/Games/EagleDive.CPP"$
$LK,"/Demo/Games/ElephantWalk.CPP",A="FI:::/Demo/Games/ElephantWalk.CPP"$
$LK,"/Demo/Games/FlapBat.CPP",A="FI:::/Demo/Games/FlapBat.CPP"$
$LK,"/Demo/Games/FlatTops.CPP",A="FI:::/Demo/Games/FlatTops.CPP"$
$LK,"/Demo/Games/Halogen.CPP",A="FI:::/Demo/Games/Halogen.CPP"$
$LK,"/Demo/Games/MassSpring.CPP",A="FI:::/Demo/Games/MassSpring.CPP"$
$LK,"/Demo/Games/Maze.CPP",A="FI:::/Demo/Games/Maze.CPP"$
$LK,"/Demo/Games/RainDrops.CPP",A="FI:::/Demo/Games/RainDrops.CPP"$
$LK,"/Demo/Games/RawHide.CPP",A="FI:::/Demo/Games/RawHide.CPP"$
$LK,"/Demo/Games/Rocket.CPP",A="FI:::/Demo/Games/Rocket.CPP"$
$LK,"/Demo/Games/RocketScience.CPP",A="FI:::/Demo/Games/RocketScience.CPP"$
$LK,"/Demo/Games/Squirt.CPP",A="FI:::/Demo/Games/Squirt.CPP"$
$LK,"/Demo/Games/TheDead.CPP",A="FI:::/Demo/Games/TheDead.CPP"$
$LK,"/Demo/Games/TicTacToe.CPP",A="FI:::/Demo/Games/TicTacToe.CPP"$
$LK,"/Demo/Games/TreeCheckers.CPP",A="FI:::/Demo/Games/TreeCheckers.CPP"$
$LK,"/Demo/Games/Varoom.CPP",A="FI:::/Demo/Games/Varoom.CPP"$
$LK,"/Demo/Games/Wenceslas.CPP",A="FI:::/Demo/Games/Wenceslas.CPP"$
$LK,"/Demo/Games/Whap.CPP",A="FI:::/Demo/Games/Whap.CPP"$
$LK,"/Demo/Games/Zing.CPP",A="FI:::/Demo/Games/Zing.CPP"$
$LK,"/Demo/Games/ZoneOut.CPP",A="FI:::/Demo/Games/ZoneOut.CPP"$
$LK,"/Apps/Psalmody/Examples/childish.CPP",A="FI:::/Apps/Psalmody/Examples/childish.CPP"$
$LK,"/Apps/Psalmody/Examples/night.CPP",A="FI:::/Apps/Psalmody/Examples/night.CPP"$
$LK,"/Apps/Psalmody/Examples/prosper.CPP",A="FI:::/Apps/Psalmody/Examples/prosper.CPP"$
Two things to know about TempleOS are that $UL,1$tasks$UL,0$ have $LK,"MAlloc",A="MN:MAlloc"$/$LK,"Free",A="MN:Free"$ heap memory, not applications, and tasks have compiler symbol tables that persist at a scope like environment variables in other operating systems, and the symbols can include functions.
@@ -73,7 +107,7 @@ $FG,2$<ALT-h>$FG$ horizontally tiles windows.
The $FG,2$ALT$FG$ keys are defined in $LK,"~/HomeKeyPlugIns.CPP"$. You can customize them.
$FG,2$<CTRL-ALT-t>$FG$ new terminal window.
$FG,2$$FG,2$<CTRL-ALT-n>$FG$ switches to the next window.
$FG,2$<CTRL-ALT-n>$FG$ switches to the next window.
$FG,2$<CTRL-ALT-x>$FG$ kills a window.
$LK,"Find",A="MN:Find"$() is your best friend. There's a wrapper function called $LK,"F",A="MN:F"$() in your $FG,2$~/HomeWrappers.CPP.Z$FG$ file. Feel free to make wrapper functions for functions you use often and customize the args. By the way, $LK,"Find",A="MN:Find"$() or $LK,"R",A="MN:R"$() can be used to replace strings across multiple files. You can access $LK,"Find",A="MN:Find"$() using $FG,2$<CTRL-SHIFT-f>$FG$.
@@ -82,14 +116,21 @@ As you browse code, use the $FG,2$AutoComplete$FG$ window to look-up functions,
Use the $LK,"Help & Index",A="FI:::/Doc/HelpIndex.TXT"$ or $LK,"Demo Index",A="FI:::/Doc/DemoIndex.TXT"$ to find-out what exists. Press $FG,2$<F1>$FG$ for help or use the links on your menu ($FG,2$<CTRL-m>$FG$). Also, look in the $FG,2$/Demo$FG$ or $FG,2$/Apps$FG$ directories for inspiration.
3rd parties can make TempleOS software. It will be distributed as $LK,"RedSea ISO Files",A="MN:RedSeaISO"$. Burn a CD/DVD, or in a $FG,2$QEMU$FG$$FG$, $FG,2$VMware$FG$ or $FG,2$VirtualBox$FG$, set your CD/DVD to point to the ISO file. Then, access the $FG,2$'T'$FG$ drive. Or, $LK,"Mount",A="MN:Mount"$() the ISO file and access the $FG,2$'M'$FG$ drive. Ideally, do not install applications such as games onto your hard drive because we wish to keep hard drive usage low, so the whole $FG,2$'C'$FG$ drive can quickly be copied to $FG,2$'D'$FG$. Also, the $LK,"FileMgr",A="MN:FileMgr"$() starts too slowly with lots of hard drive files.
Software is distributed as $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ ISO files. Burn a CD/DVD, or set your CD/DVD in $FG,2$QEMU$FG$, $FG,2$VMware$FG$ or $FG,2$VirtualBox$FG$ to the ISO file. Then, access the $FG,2$'T'$FG$ drive. Or, $LK,"Mount",A="MN:Mount"$() the ISO.C file and access the $FG,2$'M'$FG$ drive in TempleOS. It must be a contiguous ISO.C file, so rename it under TempleOS to ISO.C.
Ideally, do not install applications such as games onto your hard drive because we wish to keep hard drive usage low, so the whole $FG,2$'C'$FG$ drive can be copied quickly to $FG,2$'D'$FG$. Also, the $LK,"FileMgr",A="MN:FileMgr"$() $FG,2$<CTRL-d>$FG$ starts too slowly when there are lots of hard drive files, but that is how we want it.
3rd party libraries are banned, since they circumvent the 100,000 line of code limit in the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.TXT"$. All applications must only depend on the core TempleOS files and whatever they bring along in the ISO. This is similar to how Commodore 64 applications only depended on the ROM.
Create a $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ ISO file with $LK,"RedSeaISO",A="MN:RedSeaISO"$(). Send an email to $TX,"tdavis@templeos.org",HTML="mailto:tdavis@templeos.org"$ if you want me to post a link to your TempleOS code in the App Store.
$MA-X+PU,"Take Tour",LM="User(\"Cd(\\\"::/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$
$FG,8$
* "Linux" is a trademark owned by Linus Torvalds.
* "Windows" is a trademark owned by MicroSoft Corp.
* "Commodore 64" was a trademark owned by Commodore Business Machines.
* "QEMU" is a trademark owned by Fabrice Bellard.
* "VMware" is a trademark owned by VMware, Inc.
* "VirtualBox" is a trademark owned by Oracle.
$FG$$FG$
$FG$