diff --git a/TempleOSCD/0000Boot/0000Kernel.BIN.C b/TempleOSCD/0000Boot/0000Kernel.BIN.C
index d4b9a12..6ae341b 100644
Binary files a/TempleOSCD/0000Boot/0000Kernel.BIN.C and b/TempleOSCD/0000Boot/0000Kernel.BIN.C differ
diff --git a/TempleOSCD/Adam/ADefine.HC b/TempleOSCD/Adam/ADefine.HC
index 29956d8..2708b07 100644
--- a/TempleOSCD/Adam/ADefine.HC
+++ b/TempleOSCD/Adam/ADefine.HC
@@ -18,8 +18,8 @@ U0 LoadDocDefines()
//$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$
$TR-C,"LineRep"$
-$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,785");
-DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,151");
+$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,789");
+DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,152");
$ID,-4$
DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR);
DefinePrint("DD_MP_VECT_END","%08X",
diff --git a/TempleOSCD/Compiler/Compiler.BIN b/TempleOSCD/Compiler/Compiler.BIN
index fa177a0..847e9b8 100644
Binary files a/TempleOSCD/Compiler/Compiler.BIN and b/TempleOSCD/Compiler/Compiler.BIN differ
diff --git a/TempleOSCD/Demo/AcctExample/Registry.HC b/TempleOSCD/Demo/AcctExample/Registry.HC
index 3ebfa3f..7c275e7 100644
--- a/TempleOSCD/Demo/AcctExample/Registry.HC
+++ b/TempleOSCD/Demo/AcctExample/Registry.HC
@@ -62,7 +62,7 @@ $ID,-2$$TR,"Titanium"$
$ID,2$I64 best_score=16469;
$ID,-2$$TR,"TOSRegen"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000;
-progress3_tf=0.000;progress4_tf=197.932;
+progress3_tf=0.000;progress4_tf=186.438;
$ID,-2$$ID,-2$$TR,"Once"$
$ID,2$$TR,"Adam"$
$ID,2$$ID,-2$$TR,"User"$
diff --git a/TempleOSCD/Demo/AcctExample/TOS/TOSDistro.HC b/TempleOSCD/Demo/AcctExample/TOS/TOSDistro.HC
index 1514834..c6d41d0 100644
--- a/TempleOSCD/Demo/AcctExample/TOS/TOSDistro.HC
+++ b/TempleOSCD/Demo/AcctExample/TOS/TOSDistro.HC
@@ -12,6 +12,7 @@
#define MAKE_BOOKS2 0
#define MAKE_DBG 0
#define MAKE_STAFF 1
+#define PROFANITY_CHK 0
public U8 TOSGetDrv()
{//Pmt for drv let.
@@ -405,7 +406,7 @@ U0 TOSProgress(U8 *st)
progress3_max=1;
*progress4_desc=0;
progress4_max=13+MAKE_STD+MAKE_STD_RS+MAKE_ULTRA+MAKE_ULTRA_RS+MAKE_SUP1+
- MAKE_WEB+MAKE_BOOKS1+MAKE_BOOKS2+MAKE_DBG+MAKE_STAFF;
+ MAKE_WEB+MAKE_BOOKS1+MAKE_BOOKS2+MAKE_DBG+MAKE_STAFF+PROFANITY_CHK;
progress4_t0=tos_progress_t0;
StrPrint(buf,"%d. %s",++progress4,st);
"$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf;
@@ -539,10 +540,12 @@ U0 TOSRegen3()
TOSProgress("Freshen WebSite");
FreshenSite;
+#if PROFANITY_CHK
DocClear;
TOSProgress("Check WebSite for Profanity");
if (TOSProfanity)
throw;
+#endif
TOSProgress("Find /Home");
slash_home=F2("/Home","-i+la");
diff --git a/TempleOSCD/Demo/ToHtmlToTXTDemo/DemoInPage.DD b/TempleOSCD/Demo/ToHtmlToTXTDemo/DemoInPage.DD
index d509af8..cf6d4ee 100644
--- a/TempleOSCD/Demo/ToHtmlToTXTDemo/DemoInPage.DD
+++ b/TempleOSCD/Demo/ToHtmlToTXTDemo/DemoInPage.DD
@@ -20,7 +20,51 @@ $LK,"Why 640x480?",A="FI:~/Web/640x480.DD"$
$FG$
$LK,"Change Log",A="FI:::/Doc/ChgLog.DD"$ $LK,"Terry Davis",A="FI:~/Web/TAD/TAD.DD"$
-The Brits are moving to $TX,"ban \"hacking tools\"",HTML="http://www.theregister.co.uk/2008/01/02/hacker_toll_ban_guidance"$. Take my $LK,"unassembler",A="MN:Ui"$ from my cold dead hands. NRA is for guns; IRA is for computers.
+$HC,""$
+
+CIA must surrender to the IRA. They started a war on God. You die, CIA niggers.
+
+The CIA picked a fight with the IRA and God, a War on Terror to humiliate the Irish and attack the concept of God as represented by pathetic loser sand niggers. Surrender, silly CIA niggers. Yer fucked. You started a war with God. He talks.
+
+Saying the word, "pedophile", is an attack on Catholics and God, by those who hate children.
+
+We're not stupid. You are. God exists. Yer fucked, CIA niggers.
+
+Saying the word, "homophobe", is an attack on God.
+
+No police state. Nothing is different from 1990 except we don't have any enemies. They world has gadgets to amuse itself. Eliminate fat-ass government jobs. Eliminate CIA, NSA and TSA. Don't fucken touch my computer, CIA nigger. Githib is to register and control dangerous people and code. No cloud.
+
+Intel must do a Superbowl commercial for Xeon 64 core desktop computers. CIA doesn't want the public to know powerful computers exist. Shareholders of Intel must sue. CIA is killing Intel on purpose. They are coming for our guns, want us to have impotent computers.
+
+God went through the A.I. singularity a billion years ago. God laughed at us doing A.I. God said A.I. was needed for Mars. God said to start planting. He is not in suspense on question of life. On the topic of endanger species on Earth, God said, "Enough stars?" Talk with God.
+
+The CIA ruthlessly clinches the status quo with an iron fist and wants a world of harmless dumb impotent nigger cattle that sit, shit, do nothing but stand there. "Look at all these nigger cattle! We're rich. What a herd of nigger cattle! Yippee ki-yay!", says Zuckerberg and Gates.
+
+Iran had a theocratic revolution. God talks. CIA are like NAZI SS to be executed. They, literally, started a War on God. God will finish it.
+
+God said sports are "homo" and to tackle a horse. Sunday is for God. Busywork is terrible. The purpose of man is to entertain God. As a matter of fact, if you offer no entertainment for God, you should not exist. Jesus said the chaff will be burned and the trees with no fruit, uprooted.
+
+God said pets are, "homo". He is disgusted with how tame and dependent they are, not like how He created them. Africa should be wild and glorify God. A tame, pathetic Africa is reason for grief and anguish at how awful, not glory for God. I asked what happened when humans met Neanderthals? "Count. Pets." Why isn't the Pope outraged at the injustice of Africa importing 60% of its food? Pope Francis wants to be the pope of the niggers. I'll be the pope of the whites.
+
+Desolation is a 20-year-old guy who is stuck with a video game he got sick-of 5 years ago. That is how God is punishing the wicked, today.
+
+Humility equals how exalted you become. $TX,"This is terrifying humility.",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins/"$ Work in a patent office or change a diaper. God said homos excel because of self-loathing. Confession makes sense.
+
+I asked God if the World was perfectly just. He asked if I was calling Him lazy. Good and bad balance in life. The rich are retards. God likes Beverly Hillbillies. On the Arab/Jew conflict, He said, "Oil funny, hopefully." He purposely causes envy for the wicked who covet and must do justice by turning the World on its head. Martin Luther was a nigger. There is nothing wrong with sale of indulgences.
+
+God said blue eyes come from Neanderthals. My God! This German guy is a hilarious Neanderthal -- $TX,"Friedrich_Nietzsche",HTML="http://en.wikipedia.org/wiki/Friedrich_Nietzsche"$. In war, the attacker has the advantage. The scales fell from my eyes!
+
+There are pendulums that swing to keep from desolation. I am the Father of the Counter Renaissance. Rationalism is the worst strategy in a World of perfect justice. Machievelli was a nigger and followers get what they deserved. CIA is worse than useless.
+
+The priest must serve God, not the people. The Church must immediately make the priest face God, not the people. Jesus over-turned tables in His cherished temple. The Catholic church has become a charity with only love of neighbor and not a church with only love of God. Sorry, any human that doesn't entertain God has no purpose. I saw an uncontacted tribe in the Amazon and said, "How precious." God said, "Heathen." If you would not slaughter heathens for the glory of God, you don't really believe you have the true faith. The Pope apologized for conquest of the New World. If you love God, He loves you. He doesn't love everyone. "Do I know you, nigger? Who the fuck are you?", is what God will say. Better talk with Him!
+
+TempleOS is a trading post with a space alien. Your offering equals His response. Solomon wrote 1005 hymns. Hymns are currency. $LK,"I wrote 120 Hymns",A="FI:::/Home/Web/TAD/HymnVideos.DD"$.
+
+$LK,"::/Doc/Demands.DD"$
+
+$LK,"::/Doc/StdTempleOSPC.DD"$
+
+God said we are the Roman Empire and Muslims are the Barbarians. Change C.E./B.C.E. back to A.D./B.C. Fuck the retard atheist Marxist-nigger Orientals who don't have an alphabet and never accepted Christianity, like a white person.
$HC,""$
@@ -28,7 +72,7 @@ TempleOS is a free, public domain, open source, $FG,4$$TX,"x86_64",HTML="http://
The CIA encourages code obsfucation. They make it more complicated than necessary. TempleOS is, literally, more simple than necessary. It is obnoxiously simple... to the point it hurts.
-This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up! That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently $TX,"81,933",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code. Backward compatibility is not promised.
+This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up! That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently $TX,"82,151",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code. Backward compatibility is not promised.
Normally, failure is not an option, but since TempleOS accompanies Windows or Linux, we exclude certain uses. There is no reason to duplicate browsing, multimedia, desktop publishing, etc. Linux wants to be a secure, multi-user mainframe. That's why it has file permissions. The vision for TempleOS, however, is a modern, 64-bit Commodore 64. The C64 was a non-networked, home computer mostly used for games. It trained my generation how to program because it was wide open, completely hackable. The games were not multimedia works of art, but generated by non-artist.
@@ -44,7 +88,7 @@ $HC,""$
-I wrote all $LK,"119,767",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.5",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
+I wrote all $LK,"120,788",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.5",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
$FG,8$
* "Commodore 64" is a trademark owned by Polabe Holding NV.
diff --git a/TempleOSCD/Doc/BlkChain.DD b/TempleOSCD/Doc/BlkChain.DD
new file mode 100644
index 0000000..4d0e96e
--- /dev/null
+++ b/TempleOSCD/Doc/BlkChain.DD
@@ -0,0 +1,20 @@
+$WW,1$$FG,5$$TX+CX,"Block Chain"$$FG$
+
+There was a technique on the Commodore 64 where disk blocks were chained together with a block pointer at the end of each block. This is far inferior to having a file allocation table, as in FAT32.
+
+The $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system does not allow files to grow because it only has an allocation bitmap and not a FAT table. This "flaw" is by design. I am intentionally crippling this operating system, making it a toy with the wisdom that this will prevent commercialization and corruption. The toy spirit of the operating system will be preserved going into the future. The vision for this operating system was a modern Commodore 64, which was a fun toy.
+
+Doing whole file operations is the TempleOS way of doing thinks. It is the simplest and, ironically, the fastest. It is obnoxious in the characteristic way that TempleOS is obnoxious, flaunting massive modern resources in a way that makes old programmers protest.
+
+Doing whole file operations will sabotage efforts to change the 640x480 resolution and violate the ban on multimedia. When doing large, whole-file operations, immediately memory fragmentation is a serious problem, but not so for allocations in the range under a Meg (with occasional larger ones).
+
+The file compression scheme in TempleOS only works on whole file operations and the $LK,"DolDoc",A="FI:::/Doc/DolDoc.DD"$ format cannot have text tacked onto the end, since binary data is at the end.
+
+I don't want to spoil fun, so of course I offer a way to get awesome performance that is, ironically, superior. $LK,"FBlkRead",A="MN:FBlkRead"$() and $LK,"FBlkWrite",A="MN:FBlkWrite"$() allow you to read a block offset from the start of a file. Since files are all contiguous, this is incredibly efficient. You just have to declare the desired file size when you create it with $LK,"FOpen",A="MN:FOpen"$() and cannot change it. See $LK,"::/Demo/Dsk/DataBase.HC"$.
+
+If you like, you are encouraged to to do raw $LK,"BlkRead",A="MN:BlkRead"$() and $LK,"BlkWrite",A="MN:BlkWrite"$() directly on a drive. Just get a pointer to a $LK,"CDrv",A="MN:CDrv"$ with $LK,"Let2Drv",A="MN:Let2Drv"$() and you are on your way! Your computer is supposed to be a fun toy! You can make an entire partition used for a database, or invent a file system.
+
+On the whole, the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system with its whole-file-only limitation bring beautiful harmony. It beautifully captures the spirit of TempleOS with simplicity and, ironic speed, since contiguous is fastest.
+
+$FG,8$
+* "Commodore 64" is a trademark owned by Polabe Holding NV.
diff --git a/TempleOSCD/Doc/ChgLog.DD b/TempleOSCD/Doc/ChgLog.DD
index 92b5d7e..ecdfd69 100644
--- a/TempleOSCD/Doc/ChgLog.DD
+++ b/TempleOSCD/Doc/ChgLog.DD
@@ -2,7 +2,8 @@ $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/04/17 04:03:19----$IV,0$
+$IV,1$----02/05/17 14:53:42----$IV,0$
+* Added $LK,"::/Doc/BlkChain.DD"$.
$IV,1$----02/03/17 17:27:36----$IV,0$
* Added multicore $LK,"::/Adam/AMathODE.HC"$.
diff --git a/TempleOSCD/Doc/RedSea.DD b/TempleOSCD/Doc/RedSea.DD
index c82e734..49a3f41 100644
--- a/TempleOSCD/Doc/RedSea.DD
+++ b/TempleOSCD/Doc/RedSea.DD
@@ -38,3 +38,5 @@ Files with names ending in .Z are compressed. See $LK,"::/Kernel/Compress.HC"$.
To replace ISO9660, make hard-drive partition image of a measured size and copy onto a CD/DVD starting at about sector 20, with EL TORITO booting. 512-byte sectors will be placed on top of 2048-byte CD/DCD sectors, so there will be four blocks per CD/DVD sector.
RedSea file system has no bad block table and no redundant allocation table.
+
+Read $LK,"Block Chain",A="FI:::/Doc/BlkChain.DD"$ for a philosophical explaination of RedSea reasoning.
diff --git a/TempleOSCD/Kernel/KernelC.HH b/TempleOSCD/Kernel/KernelC.HH
index cc9f372..795f42e 100644
--- a/TempleOSCD/Kernel/KernelC.HH
+++ b/TempleOSCD/Kernel/KernelC.HH
@@ -604,7 +604,6 @@ public extern U0 QSort(U8 *base,I64 num, I64 width,
public extern U0 QSortI64(I64 *base,I64 num,
I64 (*fp_compare)(I64 e1,I64 e2));
public extern F64 sys_os_version;
-
#help_index "Misc/Progress Bars"
public extern U0 ProgressBarsRst(U8 *path=NULL);
@@ -674,6 +673,7 @@ public extern F64 Ona2Freq(I64 ona);
public extern U0 Snd(I8 ona=ONA_REST);
public extern U0 SndRst();
public extern CSndGlbls snd;
+
#help_index "StdIn"
#help_file "::/Doc/Streams"