TempleOSTS_140317.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:02 +02:00
1 parent 2d2a65d572
commit 7ef616a20e
1416 files changed
+223873 -53917

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
#include "/Accts/Adam3bPkgs"
#include "/Apps/MusicOrgan/Load"
Cd("HOME");;
#include "/Accts/TS/TSAdam"
#include "/Accts/TS/TSDistro"
#include "/Accts/TS/TSHolySpirit"
Cd("HOME");;
+202
View File
@@ -0,0 +1,202 @@
//Change anything you want in this
//acct file or others.
U0 FillInTime()
{
CDate cdt;
cdt=Now;
"$$IV,1$$----%D %T----$$IV,0$$\n",cdt,cdt;
}
Bool MyPutKey(I64 ch,I64 sc)
{ //ch=ASCII; sc=scancode
//See $LK,"Char",A="HI:Char"$ for definition of scan codes.
//See $LK,"Keyboard Handling",A="FI:::/Doc/KeyBoard.TXT"$
//You can customize keys. This routine
//is called before the main editor
//key handler $LK,"DocPutKey",A="MN:DocPutKey"$().
//You can intercept any key.
//Return TRUE if you completely
//handled the key.
I64 i,sc2=sc.u8[0];
if (SC_F1<=sc2<=SC_F10 &&
sc&SCF_ALT &&
!(sc & SCF_CTRL)) {
switch (sc2) {
case SC_F1:
if (sc&SCF_KEY_DESC) {
if (sc & SCF_SHIFT)
SetKeyDesc("Dollar/LTPURPLE");
else
SetKeyDesc("Dollar/PURPLE");
} else {
if (sc & SCF_SHIFT)
"$$LTPURPLE$$";
else
"$$PURPLE$$";
}
break;
case SC_F2:
if (sc&SCF_KEY_DESC) {
if (sc & SCF_SHIFT)
SetKeyDesc("Dollar/LTRED");
else
SetKeyDesc("Dollar/RED");
} else {
if (sc & SCF_SHIFT)
"$$LTRED$$";
else
"$$RED$$";
}
break;
case SC_F3:
if (sc&SCF_KEY_DESC) {
if (sc & SCF_SHIFT)
SetKeyDesc("Dollar/LTGREEN");
else
SetKeyDesc("Dollar/GREEN");
} else {
if (sc & SCF_SHIFT)
"$$LTGREEN$$";
else
"$$GREEN$$";
}
break;
case SC_F4:
if (sc&SCF_KEY_DESC) {
if (sc & SCF_SHIFT)
SetKeyDesc("Dollar/LTBLUE");
else
SetKeyDesc("Dollar/Default Color");
} else {
if (sc & SCF_SHIFT)
"$$LTBLUE$$";
else
"$$FG$$";
}
break;
case SC_F7:
if (sc&SCF_KEY_DESC) {
if (sc & SCF_SHIFT)
SetKeyDesc("Misc/Insert My URL");
else
SetKeyDesc("Misc/Insert Datetime");
} else {
if (sc & SCF_SHIFT)
FillInMyURL;
else
FillInTime;
}
break;
}
return TRUE;
} else {
if (!(sc & SCF_CTRL)) {
if (sc & SCF_ALT) {
switch (ch) {
case 'h':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Win/Tile Horizontally");
else
WinTileHorz;
return TRUE;
case 'm':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Win/Maximize");
else {
WinMax;
WinBorder;
}
return TRUE;
case 'v':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Win/Tile Vertically");
else
WinTileVert;
return TRUE;
case 'V':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Sys/Frame Grabber Toggle");
else
FrameGrabberToggle;
return TRUE;
case 'l':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard");
else {
ClipboardDel;
DocPrint(sys_clipboard_doc,"$$LK,\"FL:%s,%d\"$$",
DocPut->filename.name,DocPut->cur_entry->y+1);
}
return TRUE;
case 'L':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard");
else {
i=RandU32;
ClipboardDel;
DocPrint(sys_clipboard_doc,"$$LK,\"<TODO>\",A=\"FA:%s,ANC%d\"$$",
DocPut->filename.name,i);
"$$AN,\"<TODO>\",A=\"ANC%d\"$$",i;
}
return TRUE;
case 'w':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Win/WordStat(ON);");
else
WordStat(ON);
return TRUE;
case 'W':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Win/WordStat;");
else
WordStat;
return TRUE;
//Ins your own ALT-key plug-ins
case 'b':
if (sc&SCF_KEY_DESC)
SetKeyDesc("Cmd/Jump to Bad Code");
else //$LK,"::/Adam/God/HSNotes.TXT"$
BadCodeJump;
return TRUE;
case 'g':
if (sc&SCF_KEY_DESC)
SetKeyDesc("BlogScreenShot");
else
BlogScreenShot;
return TRUE;
case 'p':
if (sc&SCF_KEY_DESC)
SetKeyDesc("JukeBox(TAD)");
else
JukeBox("::/Accts/TS/TAD/MusicOrgan");
return TRUE;
case 'P':
if (sc&SCF_KEY_DESC)
SetKeyDesc("JukeBox(Examples)");
else
JukeBox("::/Apps/MusicOrgan/Examples");
return TRUE;
}
}
}
}
return FALSE;
}
Bool MyPutS(U8 *)
{
return FALSE;
}
KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE);
+58
View File
@@ -0,0 +1,58 @@
U0 UserStartUp()
{ //Run each time a user a spawned
DocTermNew;
Type("::/Doc/Start.TXT");
LBts(&Fs->display_flags,DISPLAYf_SHOW);
WinToTop;
WinZBufUpdate;
Preempt(ON);
Dir;
switch (ts_cid) {
case CID_TAD8:
"$$GREEN$$TAD8$$FG$$:";
break;
case CID_TAD8_VM:
"$$RED$$TAD8_VM$$FG$$:";
break;
case CID_DFT:
"$$PURPLE$$DFT$$FG$$:";
break;
}
"$TX,"81,527",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:";
CPURep;
}
U0 SrvStartUp()
{ //Run each time a srv task is spawned.
DocTermNew;
LBts(&Fs->display_flags,DISPLAYf_SHOW);
WinToTop;
WinZBufUpdate;
Preempt(ON);
}
CTask *user1,*user2;
U0 StartUpTasks()
{
user1=SpawnUser;
user2=SpawnUser;
WinToTop(user1);
WinTileVert;
PopUp("#include \"::/Adam/Start\";");
"Boot Time:%7.3fs\n",tS;
XTalk(user1,"Cd(\"HOME\");#include \"DoOnce\";\n");
Silent(ON);
WSInit("/*;~*Bible.TXT*");
Silent(OFF);
"WordStat Time:%7.3fs\n",tS;
if (ts_has_win_drv)
DrvEnable(TS_WIN_DRV_LET,OFF);
}
DelTree("::/Temp/ScreenShots");
MkDir("::/Temp/ScreenShots");
StartUpTasks;
"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time;
+51
View File
@@ -0,0 +1,51 @@
#exe {OptOn(OPTf_WARN_PAREN);};
#exe {OptOn(OPTf_WARN_DUP_TYPES);};
HashTablePurge(adam_task->hash_table);
#help_index "Misc"
public F64 os_version=2.03;
#include "AdamExt.HPP"
#include "Math2a"
#include "Training"
#include "Utils2a"
#include "MathODE"
Dbg("Type 'G;'");
Cd("::/Adam/Gr");;
#include "Gr"
Cd("::/Adam/Snd");;
#include "Snd"
Cd("::/Adam/Dsk");;
#include "Dsk2"
Cd("::/Adam");;
#include "Menu"
#include "Win2a"
#include "Win2b"
#include "Dbg2a"
Cd("::/Adam/Doc");;
#include "Doc"
LBts(&sys_run_level,RLf_DOC);
Cd("::/Adam/Ctrls");;
#include "Ctrls"
Cd("::/Adam");;
#include "AutoFile2a"
#include "LogIn"
Cd("::/Adam/WordStat");;
#include "WordStat"
Cd("::/Adam");;
#include "Hash2a"
#include "TaskSettings"
#include "DevInfo"
#include "DocDefines"
+12
View File
@@ -0,0 +1,12 @@
//This file is executed by the
//first terminal window upon start-up.
//See $LK,"DoOnce",A="FF:HOME/Adam3eSys.CPP,DoOnce"$ and $LK,"Acct Files",A="FF:::/Doc/GuideLines.TXT,ACCT FILES"$.
//It goes in your HOME directory and
//you can customize it.
//Delete this to get rid of
//default start-up msg.
//Type("::/Doc/Customize.TXT");
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
$TR,"Adam"$
$ID,2$$TR,"SysMsgFlags"$
$ID,2$sys_msg_flags[0]=0;
$ID,-2$$TR,"SysRegVer"$
$ID,2$registry_version=2.030;
$ID,-2$$ID,-2$
+15
View File
@@ -0,0 +1,15 @@
OptOn(OPTf_WARN_PAREN);
OptOn(OPTf_WARN_DUP_TYPES);
SetTypeMatic(0);
local_time_offset=-7*60*60*CDATE_FREQ; //Pacific
//$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale
mxx_scale=0.5;
myy_scale=0.5;
mzz_scale=5.0; //wheel
//don't change these
mxx_prescale=mxx/mxx_scale;
myy_prescale=myy/myy_scale;
mzz_prescale=mzz/mzz_scale;
+199
View File
@@ -0,0 +1,199 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 FOLDED ADD_DATE="1374957505">Accounts</H3>
<DL><p>
<DT><A HREF="https://www.annualcreditreport.com/cra/index.jsp" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >AnnualCreditReport</A>
<DT><A HREF="http://software.intel.com/partner/app/dashboard" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Dashboard Intel® Developer Zone</A>
<DT><A HREF="http://www.dell.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://i.dell.com/images/global/branding/dellecomicon.ico" >Dell Laptops, Desktop Computers, Monitors, Printers & PC Accessories</A>
<DT><A HREF="https://www.mymedicare.gov/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >mymedicare.gov Portal of Personalized Medicare Information</A>
<DT><A HREF="https://www.paypal.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Send Money, Money Transfer - PayPal</A>
<DT><A HREF="http://www.socialsecurity.gov/onlineservices/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.socialsecurity.gov/favicon.ico" >Social Security Online What You Can Do Online</A>
<DT><A HREF="http://www.wellsfargo.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Wells Fargo Home Page</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1389105117">Commonly Quoted</H3>
<DL><p>
<DT><A HREF="http://www.youtube.com/watch?v=eB5VXJXxnNU" ADD_DATE="1381134432" LAST_VISIT="1386666617" LAST_MODIFIED="1389105618" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >Ali G Homo Sapien</A>
<DT><A HREF="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Everyone Hates Ticketmaster — But No One Can Take It Down Magazine</A>
<DT><A HREF="http://stevehanov.ca/blog/index.php?id=56" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >How a programmer reads your resume (comic) - Steve Hanov's Programming Blog</A>
<DT><A HREF="http://wayback.archive.org/web/*/www.losethos.com" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://wayback.archive.org/favicon.ico" >Internet Archive (LoseThos)</A>
<DT><A HREF="http://waybackmachine.org/*/http://www.simstructure.hare.com" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Internet Archive (SimStructure)</A>
<DT><A HREF="http://www.youtube.com/watch?v=Dd7FixvoKBw" ADD_DATE="1379786905" LAST_VISIT="1386666617" LAST_MODIFIED="1389105613" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >Key Peele #1</A>
<DT><A HREF="http://www.youtube.com/watch?v=VHG_Gv_zLY4" ADD_DATE="1384979305" LAST_VISIT="1386666617" LAST_MODIFIED="1389105621" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >Key Peele #2</A>
<DT><A HREF="http://lmgtfy.com/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://lmgtfy.com/favicon.ico" >Let me google that for you</A>
<DT><A HREF="http://unusedino.de/ec64/technical/project64/mapping_c64.html" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://unusedino.de/favicon.ico" >Mapping The C64</A>
<DT><A HREF="http://www.youtube.com/watch?feature=player_embedded&v=nj6DK_WX7Yc#!" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://s.ytimg.com/yt/favicon-refresh-vfldLzJxy.ico" >The Magic of CES - YouTube#!</A>
<DT><A HREF="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.noob.us/favicon.ico" >The Office - Dwight faces nerd torture of the highest form</A>
<DT><A HREF="http://www.youtube.com/watch?v=HRPDO63rI1E" ADD_DATE="1381122671" LAST_VISIT="1386666617" LAST_MODIFIED="1389105665" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >The Prisoner</A>
<DT><A HREF="http://www.youtube.com/watch?v=o_eSwq1ewsU" ADD_DATE="1381122683" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://s.ytimg.com/yts/img/favicon-vfldLzJxy.ico" >There... Are... Four... Lights! - YouTube</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957505">Downloads</H3>
<DL><p>
<DT><A HREF="http://www.ccs64.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Commodore 64 Emulator</A>
<DT><A HREF="http://ffmpeg.zeranoe.com/builds/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >FFmpeg</A>
<DT><A HREF="http://www.dandans.com/Full-Video-Audio-Mixer.htm" ADD_DATE="1375786853" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.dandans.com/webico.ico" >Full Video Audio Mixer, Mix & Merge Audio and Video, Extract & Remove Audio from Video</A>
<DT><A HREF="http://www.winimage.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Gilles Vollant software</A>
<DT><A HREF="https://www.virtualbox.org/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Oracle VM VirtualBox</A>
<DT><A HREF="http://www.qb64.net/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >QB64</A>
<DT><A HREF="http://www.phatcode.net/downloads.php?id=280" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >turbo assembler 5 (tasm)</A>
<DT><A HREF="http://www.vmware.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >VMware Virtualization Software for Desktops, Servers & Virtual Machines for Public and Private Cloud Solutions</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957505">Games</H3>
<DL><p>
<DT><A HREF="http://www.classicempire.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >EMPIRE, Wargame of the Century (tm) index</A>
<DT><A HREF="http://www.freeciv.net/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Freeciv.net - online multiplayer strategy game</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1389102772">Links</H3>
<DL><p>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957505">Media Streams</H3>
<DL><p>
<DT><A HREF="http://www.bbc.co.uk/?ok" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >BBC - bbc.co.uk homepage - Home of the BBC on the Internet</A>
<DT><A HREF="http://www.bbc.co.uk/iplayer/console/bbc_world_service" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >BBC iPlayer - Listen live - BBC World Service</A>
<DT><A HREF="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Free Online Course Materials Electrical Engineering and Computer Science MIT OpenCourseWare</A>
<DT><A HREF="http://ocw.mit.edu/OcwWeb/web/home/home/index.htm" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Free Online Course Materials MIT OpenCourseWare</A>
<DT><A HREF="http://www.gametrailers.com/news.php" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Gametrailers.com - Video Games News, Game Trailers News</A>
<DT><A HREF="http://www.komp.com/" ADD_DATE="1389413520" LAST_VISIT="1389413520" LAST_MODIFIED="1389413520" >komp Homepage - LV Portal - Homepage</A>
<DT><A HREF="http://openclassroom.stanford.edu/MainFolder/HomePage.php" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >OpenClassroom</A>
<DT><A HREF="http://webcast.berkeley.edu/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >webcast.berkeley UC Berkeley Video and Podcasts for Courses & Events</A>
<DT><A HREF="http://www.xtremeradio.com/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >X107.5 X-treme Radio Las Vegas, NV - Homepage</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957504">Misc</H3>
<DL><p>
<DT><A HREF="http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >140 Google Interview Questions Seattle Interview Coach</A>
<DT><A HREF="http://blog.smartbear.com/programming/7-silly-programming-challenges-to-do-for-fun/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1389105588" ICON_URI="http://blog.smartbear.com/wp-content/uploads/dynamik-gen/theme/images/favicon.png" >7 Silly Programming Challenges to Do for Fun</A>
<DT><A HREF="http://petr-mitrichev.blogspot.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://petr-mitrichev.blogspot.com/favicon.ico" >Algorithm problems for dummies Petr Mitrichev's blog</A>
<DT><A HREF="http://www.youtube.com/watch?v=p-_RHRAzUHM" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Flying with the fastest birds on the planet Peregrine Falcon & Gos Hawk - Animal Camera - BBC - YouTube</A>
<DT><A HREF="http://harkavagrant.com/index.php?id=296" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://harkavagrant.com/favicon.ico" >Hark, a vagrant 296</A>
<DT><A HREF="http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1389102608" ICON_URI="http://www.tldp.org/favicon.ico" >Linux Filesystem Hierarchy</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957504">People</H3>
<DL><p>
<DT><A HREF="http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/" ADD_DATE="1377013922" LAST_VISIT="1386666616" LAST_MODIFIED="1389102919" ICON_URI="http://www.altdevblogaday.com/favicon.ico" >Carmack #AltDevBlog</A>
<DT><A HREF="http://scpd.stanford.edu/knuth/index.jsp" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Computer Musings by Professor Donald E. Knuth Stanford University Online</A>
<DT><A HREF="http://www-cs-faculty.stanford.edu/~knuth/index.html" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Don Knuth's Home Page</A>
<DT><A HREF="http://www.insight.org/site/PageServer" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Insight For Living Chuck Swindoll's Bible-teaching via articles, books, audio, and devotionals</A>
<DT><A HREF="http://torvalds-family.blogspot.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Linus' blog</A>
<DT><A HREF="http://www.hawking.org.uk/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Stephen Hawking - Home</A>
<DT><A HREF="http://www.escapistmagazine.com/articles/view/editorials/zeropunctuation" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >The Escapist Zero Punctuation</A>
<DT><A HREF="http://www.thegatesnotes.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >The Gates Notes</A>
<DT><A HREF="http://www.linuxfoundation.org/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.linuxfoundation.org/sites/www.linuxfoundation.org/themes/opensourcery/favicon.ico" >The Linux Foundation</A>
<DT><A HREF="http://www.slingshotchannel.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >The Slingshot Channel's Official Website</A>
<DT><A HREF="http://pdos.csail.mit.edu/6.828/2012/xv6.html" ADD_DATE="1388187282" LAST_VISIT="1388187282" LAST_MODIFIED="1388187282" >Xv6, a simple Unix-like teaching operating system</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957504">Research</H3>
<DL><p>
<DT><H3 FOLDED ADD_DATE="1389105041">Operating Systems</H3>
<DL><p>
<DT><A HREF="http://stochastix.wordpress.com/2009/01/31/distance-between-two-words/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389106385" ICON_URI="http://1.gravatar.com/blavatar/97f8320d71ee1387cf94dbb722633e25?s=16" >Distance between two words « Reasonable Deviations</A>
<DT><A HREF="http://misc.aspell.net/wiki/English_Dictionaries" ADD_DATE="1384796381" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >English Dictionaries - AspellWiki</A>
<DT><A HREF="http://help.yahoo.com//l/us/yahoo/smallbusiness/webhosting/gftp/ftps-04.html#g" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://help.yahoo.com/favicon.ico" >How to setup FTPS tool - Yahoo! Small Business Help</A>
<DT><A HREF="http://msdn.microsoft.com/en-us/library/windows/hardware/ff559006(v=vs.85).aspx" ADD_DATE="1375962144" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://msdn.microsoft.com/Areas/Epx/Themes/Windows/Content/Winlogo_favicon.ico" >IDENTIFY_DEVICE_DATA structure (Windows Drivers)</A>
<DT><A HREF="http://arstechnica.com/information-technology/2012/10/linux-foundation-to-offer-signed-solution-for-uefi-secure-boot-conundrum/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Linux Foundation to offer signed solution for UEFI Secure Boot conundrum Ars Technica</A>
<DT><A HREF="http://www.linuxfoundation.org/news-media/blogs/browse/2012/10/linux-foundation-uefi-secure-boot-system-open-source" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Linux Foundation UEFI Secure Boot System for Open Source The Linux Foundation</A>
<DT><A HREF="http://www.pcworld.com/article/2011669/linux-foundation-unveils-a-new-solution-for-win-8-secure-boot.html" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Linux Foundation unveils a workaround for Win 8 Secure Boot PCWorld</A>
<DT><A HREF="http://academicearth.org/courses/operating-systems-and-system-programming" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Operating Systems and System Programming Berkeley Video Course</A>
<DT><A HREF="http://partedmagic.com/doku.php" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >start – Parted Magic</A>
</DL><p>
<DT><A HREF="http://www.hongkiat.com/blog/pixel-art-tutorials/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://mediatemplestatic.hongkiat.netdna-cdn.com/logo/hkdc/favicon.ico" >30 Excellent Pixel Art Tutorials For Pixel Lovers</A>
<DT><A HREF="http://bigocheatsheet.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Big-O Algorithm Complexity Cheat Sheet</A>
<DT><A HREF="https://www.circuitlab.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >CircuitLab sketch, simulate, and share your circuits</A>
<DT><A HREF="http://www.sparknotes.com/writing/style/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Grammar, Usage, and Style Guide SparkNotes Ultimate Style Ultimate Style</A>
<DT><A HREF="http://imgur.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://imgur.com/favicon.ico" >imgur the simple image sharer</A>
<DT><A HREF="http://software.intel.com/en-us/" ADD_DATE="1386626088" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://software.intel.com/sites/all/themes/isn3/favicon.ico" >Intel® Developer Zone</A>
<DT><A HREF="http://www.archive.org/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Internet Archive Digital Library of Free Books, Movies, Music & Wayback Machine</A>
<DT><A HREF="http://www.netlib.org/lapack/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >LAPACK — Linear Algebra PACKage</A>
<DT><A HREF="http://www.gutenberg.org/wiki/Main_Page" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.gutenberg.org/favicon.ico" >Main Page - Gutenberg</A>
<DT><A HREF="http://www.moreofit.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389102467" ICON_URI="http://www.moreofit.com/favicon.ico" >moreofit - Website Similarity Search Engine</A>
<DT><A HREF="http://www.peoplesmart.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389105190" ICON_URI="http://www.peoplesmart.com/favicon.ico" >People Search & Background Checks by Name, Phone, Email or Address - PeopleSmart</A>
<DT><A HREF="http://promo.net/pg/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >PROJECT GUTENBERG OFFICIAL HOME SITE - INDEX -- Free Books On-Line -</A>
<DT><A HREF="http://validator.w3.org/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >The W3C Markup Validation Service</A>
<DT><A HREF="http://www.whorush.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >WHORush.com, your source for information on domains</A>
<DT><A HREF="http://www.wolframalpha.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >WolframAlpha Computational Knowledge Engine</A>
<DT><A HREF="http://youtubetime.com/" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >YouTube Time</A>
<DT><A HREF="http://www.metacrawler.com/info.metac/dog/index.htm" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >[ MetaCrawler® ]</A>
<DT><A HREF="http://validator.w3.org/check?uri=http%3A%2F%2Flynx.isc.org%2Findex.html" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >[Valid] Markup Validation of http--lynx.isc.org-index.html - W3C Markup Validator</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957503">Spiritual</H3>
<DL><p>
<DT><A HREF="http://www.biblegateway.com/passage/?search=1+Corinthians+14&version=NIV" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389330204" ICON_URI="http://static5.bgcdn.com/favicon.ico?ca05b3df" >1 Corinthians 14 NIV - Intelligibility in Worship Follow the - Bible Gateway</A>
<DT><A HREF="http://qrng.anu.edu.au/NIST.php" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://qrng.anu.edu.au/favicon.ico" >ANU Quantum Random Number Server</A>
<DT><A HREF="http://www.generatedata.com/" ADD_DATE="1383350304" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >generatedata.com</A>
<DT><A HREF="https://qrng.physik.hu-berlin.de/download" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >QRNG Service - Download</A>
<DT><A HREF="http://random.irb.hr/index.php" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://random.irb.hr/favicon.ico" >Quantum Random Bit Generator Service</A>
<DT><A HREF="http://www.randomnumbers.info/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Random Numbers Info</A>
<DT><A HREF="http://www.random.org/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.random.org/favicon.ico" >RANDOM.ORG - True Random Number Service</A>
<DT><A HREF="https://www.fourmilab.ch/hotbits/secure_generate.html" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="https://www.fourmilab.ch/favicon.ico" >Request HotBits (Secure Server)</A>
<DT><A HREF="http://www.theyshootpictures.com/gf1000_all1000films.htm" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >TSPDT - The 1,000 Greatest Films (Full List)</A>
<DT><A HREF="http://www.usccb.org/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.usccb.org/favicon.ico" >United States Conference of Catholic Bishops</A>
<DT><A HREF="http://virtual-notary.org/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1387238161" ICON_URI="http://virtual-notary.org/static/favicon.png" >Virtual-Notary</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1374957503">TempleOS Business</H3>
<DL><p>
<DT><A HREF="http://betanews.com/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://betanews.com/wp-content/themes/betanews/favicon.ico" >BetaNews</A>
<DT><A HREF="http://www.devmaster.net/forums/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >DevMaster.net Forums - Powered by vBulletin</A>
<DT><A HREF="http://www.gamedev.net/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >GameDev.net - all your game development needs</A>
<DT><A HREF="http://www.majorgeeks.com/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.majorgeeks.com/favicon.ico" >MajorGeeks.com - Download Freeware and Shareware Computer Utilities</A>
<DT><A HREF="http://www.youtube.com/watch?v=6WgOWrT1yyI&feature=youtu.be&a" ADD_DATE="1381667845" LAST_VISIT="1386666617" LAST_MODIFIED="1387406101" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >Mum Tries Out TempleOS 1.06 (2013) - YouTube</A>
<DT><A HREF="http://www.businessconsultingabc.com/Feedback.html" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.businessconsultingabc.com/wp-content/themes/business-consulting-abc/favicon.ico" >Send Us Feedback Email ABC Business Consulting ABC Business Consulting</A>
<DT><A HREF="http://www.sparrowos.com/" ADD_DATE="1375793135" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.sparrowos.com/favicon.ico" >Sparrow Operating System</A>
<DT><A HREF="http://www.losethos.com/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" ICON_URI="http://www.losethos.com/favicon.ico" >The LoseThos Operating System</A>
<DT><A HREF="http://www.google.com/webmasters/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.google.com/favicon.ico" >Webmasters – Google</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1389105242">Uncommon</H3>
<DL><p>
<DT><A HREF="http://irc.netsplit.de/channels/details.php?room=%23%23programming&net=freenode" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1389102778" ICON_URI="http://irc.netsplit.de/favicon.ico" >##programming freenode - Chat Room on IRC - irc.netsplit.de</A>
<DT><A HREF="http://politicalhumor.about.com/library/bl-political-cartoons.htm" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >2012 Political Cartoons - Best Political Cartoons of 2012</A>
<DT><A HREF="http://english.aljazeera.net/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >AJE - Al Jazeera English</A>
<DT><A HREF="http://www.amazon.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1389106076" ICON_URI="http://www.amazon.com/favicon.ico" >amazon.com Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more</A>
<DT><A HREF="http://www.huffingtonpost.com/" ADD_DATE="1386981098" LAST_VISIT="1386981098" LAST_MODIFIED="1386981098" ICON_URI="http://www.huffingtonpost.com/favicon.ico" >Breaking News and Opinion on The Huffington Post</A>
<DT><A HREF="http://www.dailyrotation.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >DAILY ROTATION</A>
<DT><A HREF="http://www.dzone.com/links/index.html" ADD_DATE="1378720139" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.dzone.com/favicon.ico" >dzone.com - fresh links for developers</A>
<DT><A HREF="http://www.hackforums.net/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Hack Forums</A>
<DT><A HREF="http://hckrnews.com/" ADD_DATE="1377987384" LAST_VISIT="1386666616" LAST_MODIFIED="1387840046" ICON_URI="http://hckrnews.com/img/touch/apple-touch-icon.png" >hckr news - Hacker News sorted by time</A>
<DT><A HREF="http://www.shellcity.net/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389105474" ICON_URI="http://www.shellcity.net/favicon.ico" >http--www.shellcity.net-</A>
<DT><A HREF="http://chat.icq.com/icqchat/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >ICQ Chat Rooms - ICQ.com</A>
<DT><A HREF="http://iopscience.iop.org/1367-2630" ADD_DATE="1374957505" LAST_VISIT="1386666617" LAST_MODIFIED="1389105799" ICON_URI="http://iopscience.iop.org/favicon.ico" >iopscience Journal of Physics</A>
<DT><A HREF="http://www.irc.org/links.html" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >IRC.org</A>
<DT><A HREF="http://www.haaretz.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Israel News - Haaretz Israeli News source</A>
<DT><A HREF="https://lobste.rs/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1389102792" ICON_URI="https://lobste.rs/favicon.ico" >Lobsters</A>
<DT><A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=IStart" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >MSN.com</A>
<DT><A HREF="http://www.physorg.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >PhysOrg.com - Science News, Technology, Physics, Nanotechnology, Space Science, Earth Science, Medicine</A>
<DT><A HREF="http://www.chess.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Play Chess Online - Free Chess Games at Chess.com</A>
<DT><A HREF="http://gogloom.com/DIR?cat=84126&catdesc=Programming" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Programming CHAT ROOMS - Online CHAT!</A>
<DT><A HREF="http://royal.pingdom.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Royal Pingdom</A>
<DT><A HREF="http://www.infopackets.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >Tech News Daily - Infopackets.com</A>
<DT><A HREF="http://www.techbeta.org/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >TechBeta Free and open source software for Windows, Mac OS X, Linux, iPhone, and Mobile</A>
<DT><A HREF="http://www.techcrunch.com/" ADD_DATE="1374957503" LAST_VISIT="1386666617" LAST_MODIFIED="1386666617" >TechCrunch</A>
<DT><A HREF="http://www.tomshardware.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Tom's Hardware Hardware News, Tests and Reviews</A>
<DT><A HREF="http://news.yahoo.com/" ADD_DATE="1374957505" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://news.yahoo.com/favicon.ico" >Yahoo! News - Latest News & Headlines</A>
<DT><A HREF="http://www.yahoo.com/" ADD_DATE="1374957504" LAST_VISIT="1386666617" LAST_MODIFIED="1389106215" ICON_URI="http://l.yimg.com/rz/l/favicon.ico" >Yahoo!</A>
</DL><p>
<DT><A HREF="http://www.4chan.org/" ADD_DATE="1375781470" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://s.4cdn.org/image/favicon.ico" >4chan</A>
<DT><A HREF="http://arstechnica.com/index.ars" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Ars Technica</A>
<DT><A HREF="http://dictionary.reference.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://static.sfdict.com/dictcloud/favicon.ico" >Dictionary</A>
<DT><A HREF="http://www.drudgereport.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >DRUDGE</A>
<DT><A HREF="http://www.facebook.com/home.php" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Facebook</A>
<DT><A HREF="https://www.google.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="https://www.google.com/favicon.ico" >Google</A>
<DT><A HREF="http://news.ycombinator.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Hacker News</A>
<DT><A HREF="http://www.knpr.org/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.knpr.org/favicon.ico" >Nevada Public Radio</A>
<DT><A HREF="http://beacon.nist.gov/home" ADD_DATE="1383959013" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >NIST Randomness Beacon (Prototype Implementation) - NIST</A>
<DT><A HREF="http://forum.osdev.org/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://forum.osdev.org/favicon.ico" >OSDev.org • Index page</A>
<DT><A HREF="http://www.osnews.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.osnews.com/favicon.ico" >OSNews is Exploring the Future of Computing</A>
<DT><A HREF="http://www.pixeljoint.com/forum/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.pixeljoint.com/favicon.ico" >Pixel Joint Forum</A>
<DT><A HREF="http://popurls.com/" ADD_DATE="1378004893" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://popurls.com/favicon.ico" >popurls the genuine news aggregator for the latest web buzz</A>
<DT><A HREF="http://www.reddit.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666968" ICON_URI="http://www.redditstatic.com/icon.png" >reddit.com</A>
<DT><A HREF="http://slashdot.org/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://slashdot.org/favicon.ico" >slashdot News for nerds, stuff that matters</A>
<DT><A HREF="http://stackoverflow.com/" ADD_DATE="1381508264" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://cdn.sstatic.net/stackoverflow/img/favicon.ico" >Stack Overflow</A>
<DT><A HREF="http://www.templeos.org/logs/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.templeos.org/favicon.ico" >TempleOS Index of -logs</A>
<DT><A HREF="http://www.templeos.org/Wb/Accts/TS/Wb2/Rants/TAD/TADRants.html" ADD_DATE="1389595518" LAST_VISIT="1389595518" LAST_MODIFIED="1389595518" ICON_URI="http://www.templeos.org/favicon.ico" >Terry Davis' Rants</A>
<DT><A HREF="http://www.templeos.org/" ADD_DATE="1375628480" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://www.templeos.org/favicon.ico" >The Temple Operating System</A>
<DT><A HREF="https://twitter.com/" ADD_DATE="1378394318" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="https://abs.twimg.com/favicons/favicon.ico" >Twitter</A>
<DT><A HREF="http://www.wikipedia.org/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" ICON_URI="http://bits.wikimedia.org/favicon/wikipedia.ico" >Wikipedia</A>
<DT><A HREF="http://smallbusiness.yahoo.com/services/index.php?crumb=eynoh/GoPXd" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386666616" >Yahoo! Small Business</A>
<DT><A HREF="http://www.youtube.com/" ADD_DATE="1374957503" LAST_VISIT="1386666616" LAST_MODIFIED="1386677085" ICON_URI="http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png" >YouTube - Broadcast Yourself</A>
</DL><p>
+115
View File
@@ -0,0 +1,115 @@
//Be sure to Adam Include this.
#help_index "Comm"
#define COM1_BASE 0x3F8
#define COM2_BASE 0x2F8
#define COM3_BASE 0x3E8
#define COM4_BASE 0x2E8
#define UART_THR 0
#define UART_RDR 0
#define UART_BRDL 0
#define UART_IER 1
#define UART_BRDH 1
#define UART_IIR 2
#define UART_LCR 3
#define UART_MCR 4
#define UART_LSR 5
#define UART_MSR 6
I64 comm_base[5]={0,0x3F8,0x2F8,0x3E8,0x2E8};
CFifoU8 *comm_fifos[5]={NULL,NULL,NULL,NULL,NULL};
interrupt U0 CommInt3Handler()
{
I64 base=comm_base[2];
if (comm_fifos[2] && (InU8(base+UART_IIR) & 0xFE)==8) //RX IRQ
FifoU8Ins(comm_fifos[2],InU8(base+UART_RDR));
base=comm_base[4];
if (comm_fifos[4] && (InU8(base+UART_IIR) & 0xFE)==8) //RX IRQ
FifoU8Ins(comm_fifos[4],InU8(base+UART_RDR));
OutU8(0x20,0x20);
}
interrupt U0 CommInt4Handler()
{
I64 base=comm_base[1];
if (comm_fifos[1] && (InU8(base+UART_IIR) & 0xFE)==8) //RX IRQ
FifoU8Ins(comm_fifos[1],InU8(base+UART_RDR));
base=comm_base[3];
if (comm_fifos[3] && (InU8(base+UART_IIR) & 0xFE)==8) //RX IRQ
FifoU8Ins(comm_fifos[3],InU8(base+UART_RDR));
OutU8(0x20,0x20);
}
IntEntrySet(0x23,&CommInt3Handler);
IntEntrySet(0x24,&CommInt4Handler);
public U0 CommInit8n1(I64 port,I64 baud)
{
I64 base=comm_base[port];
PUSHFD
CLI
if (comm_fifos[port])
FifoU8Del(comm_fifos[port]);
comm_fifos[port]=FifoU8New(256);
OutU8(base+UART_LCR,0); //Set for IER
OutU8(base+UART_IER,0); //DIsable all IRQ
OutU8(base+UART_LCR,0x80); //Enable baud rate control
OutU8(base+UART_BRDL,(0x180/(baud/300)) & 0xFF); //LSB
OutU8(base+UART_BRDL,(0x180/(baud/300)) / 256); //MSB
OutU8(base+UART_LCR,3); // 8-none-1
InU8(base+UART_RDR); //read garbage
InU8(base+UART_LSR);
OutU8(base+UART_MCR,4);
OutU8(base+UART_IER,0); //DIsable all IRQ
OutU8(base+UART_MCR,0xA); //out2 and rts
OutU8(0x21,InU8(0x21) & (0xFF-0x18)); //Enable 8259 IRQ 3 & 4
OutU8(base+UART_IER,1); //Enable RX IRQ
POPFD
}
public U0 CommBusyPutChar(I64 port,U8 b)
{
I64 base=comm_base[port];
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
OutU8(base+UART_THR,b);
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
}
public U0 CommBusyPutS(I64 port,U8 *st)
{
I64 base=comm_base[port];
U8 b;
while (b=*(st++)) {
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
OutU8(base+UART_THR,b);
}
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
}
public U0 CommBusyWriteBlk(I64 port,U8 *buf,I64 count)
{
I64 base=comm_base[port];
while (count--) {
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
OutU8(base+UART_THR,*(buf++));
}
while (!(InU8(base+UART_LSR) & 0x20))
Yield;
}
#help_index ""
+245
View File
@@ -0,0 +1,245 @@
* Backward SHIFT-F3 is broken
* Exception msgs in Adam look bad
3sGCGCqCCe2G3EE2G3qDetDEFsDBDB
* $LK,"Mem32DevAlloc",A="MN:Mem32DevAlloc"$() is broken. Devices should be in free spot of E820 report.
* $$DA-U64+I16
* SPRITES in CMD Line code.
* get rid of clusters once RedSea
* Might want to move kernel code out of low 2Meg.
* F2 Macro on TestSuite
* PSect search all tables if not found very well.
* Bug: HI:Math/CD3
* asm LIST NOLIST bug
* Bible ranges.
* Current Bible position to link on clipboard.
* No way to clear +Hold entries
---------------------
$$=-CTASK_NEG_OFFSET
offset(CTask.addr)==0
Spawn(): CAlloc()
TaskFinishOff(): Free()
CSysFixedArea.adam
Looks like task_flags,locked_flags cause problems with neg offset.
---------------------
* $$CM+LE+RE is nasty
* Wenceslas in TestSuite crashes, long time ago
* 12/26/13 Mountain in TestSuite didn't run right. Turned yellow, did nothing.
* FAQ frontloaded
COMPILER
* Postpone LocalVar Init until last possible moment. (in case RETURN)
* PtrArith MUL SIZE -->QueIns(MUL)?
* QueRem(IC_NOP)?
* Fix return result for GrBlot, ect.
* Tour TestSuite on 256Meg NoMP runs out of mem. Leak,too?
* CTRL-R transform individual elements
* Size zero files don't copy out from VMware.
* FileMgr header
* ATA/ATAPI ID in VMware, when not booted to CD? I forgot.
* I use fixed-point in $LK,"Circle",A="MN:Circle"$(), $LK,"Ellipse",A="MN:Ellipse"$(), $LK,"GrRot",A="MN:GrRot"$(), $LK,"GrMulMat",A="MN:GrMulMat"$() and others.
God says I might want to change to float.
$LK,"::/Demo/Lectures/FixedPoint.CPP"$.
$LK,"::/Demo/Lectures/FixedPointAdvanced.CPP"$.
* DOCF_DBL_DOLLARS in reindention
* # in reindention
* reindent $LK,"DocRecalc",A="MN:DocRecalc"$().skip_soft_cr
* HexEdit with odd size, ASCII cannot be edited.
* clean-up addDev pmt
* Might want to convert some Preempt() to Cli
* Music organ hangs when cursoring around. Haven't seen in while.
* $LK,"Plain",A="MN:Plain"$() might be better not saving $LK,"CH_CURSOR",A="MN:CH_CURSOR"$.
* TRANSPARENT might not work with line ROPF_DITHER
* It would be nice if $LK,"U",A="MN:U"$() NOP were better.
* unhandled exception on MP message gets overwritten by WinMgr
* Cmd to enable/disable compiler warnings
* What if we had a type for either F64 or I64, like Print -- no conversion.
* What if we had a ... that did do conversion, if we have one that doesn't.
* fix documentation problem -- remembering 0 terminator in str or not for $$DA
* GetS, crazy putkey code
* editor page formatting is FUBAR
* $LK,"gr_screen_image",A="MN:gr_screen_image"$
>Might want to do ZOOM in U8 graphics and convert screen capture to U8
>Might want to reverse bit order
* return vals for grrect, grblot, grputchar?
* collisions for grrect, grblot, grputchar?
* Race condition in FlatTops.CPP.Z torpedo
* {Lock|Rep}{Seg|2E=NotBr|3E=Br}{OP}{ADD}{REX}
* Virtual Box MP reboot
* Std local var names
* EIT_ABS_ADDR 64
//After Egypt possible future ideas
//$LK,"Numbers,13:33",A="BF:Numbers,13:33"$ scouts
//$LK,"Numbers,21:8",A="BF:Numbers,21:8"$ snakes
* GrEdit: Move sidebar selected elems.
- Be careful of multipt elems.
* GrEdit: Strip origin shift cmds.
* GrEditBitMap, grabscroll?
* extern of fun with dft arg of str?
* We kinda need a routine to return how much free memory, so that applications can plan a big alloc.
* FileMgr bad with lots of files.
* This $LK,"Fs->catch_except=TRUE",A="FF:::/Kernel/SrvCmd.CPP,Fs->catch_except=TRUE"$ causes problems because it catches divide and out-of-mem. Not sure what to do, yet.
* $LK,"MPStart",A="MN:MPStart"$() free old task memory. (Prolly never gonna do anything about this.)
* $LK,"sys_var_init_flag",A="MN:sys_var_init_flag"$ local vars.
* sprite shift pts, ctrl pt for ellipse/polygon w,h is off when rotated.
* Window mgr needs to do DOC operations on posted messages from mouse. Works for $LK,"SetIP",A="MN:SetIP"$(), though.
* Add local vars to sym table in $LK,"Dbg",A="MN:Dbg"$()? (maybe)
* $LK,"Bible sized nodes",A="FF:::/Adam/Doc/DocRecalc2b.CPP,->tag+i"$
* Mouseinstall throws exceptions, doesn't work, investigate Mouse $LK,"0x9FC30",A="FF:::/Kernel/KbdMouse/Mouse.CPP,9FC"$
* get kbd lights working.
* Might have issue with compiler exceptions and restoring lex.hash tables.
* Generates two compiler error messages for expressions in statements.
* release semaphores or break lock sema,usb_td
* Fix Mom's secondary CD-ROM, dad's primary
* pmtstr in install didn't like focus change
*$FG,2$U0 Main()
{
U0 (*fp_old_draw_input_ptr)(CDC *dc,I64 x,I64 y)=fp_draw_input_ptr;
}$FG$
* What about local variable array/struct initialization.
* Demo $LK,"ToHtml",A="MN:ToHtml"$().
* Del short name in FAT32--currently I do not check to see if I have generated a unique short name and one can delete multiple files accidentally. Generating unique short names is a pain in the ass because you have to scan the whole directory. I think I just truncate the name instead of "Program~1" or whatever. S081130-0001.BMP crashed windows--two identical short names.
* OVERSTRIKE at cmd line with menu macro.
* $FG,2$lock{}$FG$ warning on invalid modes.
* Local array vars-->reg.
* $LK,"DCF_SYMMETRY",A="MN:DCF_SYMMETRY"$, before transformation? (Currently it's after)
* all graphics clipping -- screen y+top<0 for top<0
* Maybe convert graphics to float
* Warn unnecessary typecast
* compiler F32
* preempt(OFF) during graphic clipping?
* compiler optimization heap_glbls with added offset
* AOT-compile extern glblvar references.
* extern glbl var in AOT module on data heap.
* Might make FAT32 read in contiguous chunks.
* make Clamp(),Min(),Max() asm routines.
* Might make CSprite flood fill operate on a separate bitmap and blotted at the end.
* autofile popup of popup
* <CTRL-R> delete subsprite in menu near others
* consider changing domenu so a real <ESC> on menu item doesn't select (<SPACE BAR> sends <ESC> followed by <SPACE BAR> or something)
* puts3 with depth buf? might not do this
* make task queins and querem safe for multicore cycling through tasks (fwd).
* make better heapwalk, do something with _CFG_HEAP_DBG.
* log to file--would be inefficient--load-in whole file, modify and write out. Useful, but not very efficient (TempleOS file system has no grow-file ability. Created when FAT patent was an issue and wanted absly nothing people could sue me for.)
* APIC2
* import intel datasheets, somehow?
* Get better dictionary, good spell checker.
* WordStat/Man Jmp for user code.
* Might make DskView show drive colors.
* Might do utility to set drive colors, making a tree entry in Adam 3 using registry-like routines... or registry I guess.
* New Editor widgets
* Make use of flag potential in SysFilesFind and possibly CFileAccess
* implement fixed pos files
* new HolyC language features
* better debugging
* Too much preemption turned off?
* Look for mem leaks.
* Move stuff out of Kernel module.
* $LK,"ROP_XOR",A="MN:ROP_XOR"$ with pen_width>1 is broken.
* RGB wrong in BMP files.
* use width and height in line clipping for pen_width>1 or blot.
* SIMD transformation
* test removable media id (critical for resident files)
* add field overflow U8 "t='*'"
* Implement fmt codes into Get
* Date Input
* Default date fmt
* 16 bit Unassembly is bad--very low priority
* more signed int disassembly
* support r4u8 by adding 0x40 byte
* static var off of data heap.
* Might want to use U32*U32 multiplication.
* could add "const" to not set LF_NOT_CONST flag for trig, etc.
* do r,rm ICCmp like ICBrCmp
* could make glblvar imports use TY_RIP_DISP32.
* PUSH_CMP allocs reg R9 or whatever
* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides assignments. Is ShiftNoPush fully implemented?
* NOP1 might need to have diff ic_data's
* in divequal, it assumes about ebx
* error/warning line nums
* ASM branch out warning of range off by 1 line--use lx->last_line_num
* Switch statement with sparse cases (low priority)
* maybe inline functions?
* Use of more floating-point stk?
* More aggressive in this routine $LK,"CmpF2PushPop",A="MN:CmpF2PushPop"$() with types besides MOV and F64.
* !dbl ~dbl
* &=, |= can overflow with Bts Btr on small data types
* num lock comes on with break key
* sort options for findfiles
* recalc_start could be more accurate before recalculating?
* Maybe, get rid of $LK,"0x20000",A="FF:::/Compiler/CmpMain.CPP,0x20000"$ in compiler.
* $TX,"WWW.OSDEV.ORG",HTML="http://www.osdev.org"$
* $FG,4$$TX,"KeyPeele#1",HTML="http://www.youtube.com/watch?v=Dd7FixvoKBw"$$FG$
* $FG,4$$TX,"KeyPeele#2",HTML="http://www.youtube.com/watch?v=VHG_Gv_zLY4"$$FG$
* $FG,4$$TX,"ThePrisoner",HTML="http://www.youtube.com/watch?v=HRPDO63rI1E"$$FG$
* $FG,4$$TX,"WestWorld",HTML="http://www.youtube.com/watch?v=LcL3eP0Hfy4"$$FG$
* $FG,4$$TX,"Picard:FourLights",HTML="http://www.youtube.com/watch?v=o_eSwq1ewsU"$$FG$
* $FG,4$$TX,"Dwight:NerdTorture",HTML="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form"$$FG$
* $FG,4$$TX,"AliG:Homosapiens",HTML="http://www.youtube.com/watch?v=eB5VXJXxnNU&t=2m20s"$$FG$
* $FG,4$$TX,"Dumb Guards",HTML="http://www.youtube.com/watch?v=OdKa9bXVinE"$$FG$
* $FG,4$$TX,"Mapping the Commodore 64",HTML="http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$
* Holy Grail: Lmq5PxHpLNw 1:28:27
+34
View File
@@ -0,0 +1,34 @@
$TR,"Adam"$
$ID,2$$TR,"SysMsgFlags"$
$ID,2$sys_msg_flags[0]=0x53;
$ID,-2$$TR,"SysRegVer"$
$ID,2$registry_version=2.030;
$ID,-2$$ID,-2$$TR,"TempleOS"$
$ID,2$$TR,"DiningStars"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"EagleDive"$
$ID,2$I64 best_score=2;
$ID,-2$$TR,"BlackDiamond"$
$ID,2$I64 best_score=35;
$ID,-2$$TR,"CastleFrankenstein"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"ZoneOut"$
$ID,2$F64 best_score=95.3249;
$ID,-2$$TR,"Varoom"$
$ID,2$F64 best_score=11.8623;
$ID,-2$$TR,"BugBird"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"TimeOut"$
$ID,2$I64 best_score=0;
$ID,-2$$TR,"RawHide"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"KeepAway"$
$ID,2$I64 best_score0=0,best_score1=9999;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=70;
I64 msg_flags=1;
$ID,-2$$TR,"Wenceslas"$
$ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"BulgeBomber"$
$ID,2$I64 best_score=45;
$ID,-2$$ID,-2$
+440
View File
@@ -0,0 +1,440 @@
Bool IsDrvVMware(U8 drv_let)
{
Bool result=FALSE;
U8 *m=NULL;
try
if ((m=DrvModelNum(drv_let)) &&
!MemCmp(m,"VMware",6))
result=TRUE;
catch
Fs->catch_except=TRUE;
Free(m);
return result;
}
I64 DrvMaxBlk(U8 drv_let)
{
I64 result=0;
CBlkDev *bdev;
try {
if (bdev=Drv2BlkDev(drv_let))
result=bdev->max_blk;
} catch
Fs->catch_except=TRUE;
return result;
}
I64 IsDrvATAPI(U8 drv_let)
{
Bool result=FALSE;
CBlkDev *bdev;
try if ((bdev=Drv2BlkDev(drv_let)) &&
bdev->type==BDT_ATAPI)
result=TRUE;
catch
Fs->catch_except=TRUE;
return result;
}
Bool ChkDrvModelSerial(U8 drv_let,U8 *model,U8 *serial)
{
Bool result;
U8 *m=NULL,*s=NULL;
try {
m=DrvModelNum(drv_let);
s=DrvSerialNum(drv_let);
} catch {
Free(m); Free(s);
m=NULL; s=NULL;
Fs->catch_except=TRUE;
}
if (m && s && !StrCmp(m,model) && !StrCmp(s,serial))
result=TRUE;
else
result=FALSE;
Free(m); Free(s);
return result;
}
#define SLOP BLK_SIZE
U0 TSBootDrv1()
{
CBinFile *bfh=sys_boot_base-sizeof(CBinFile);
bfh(I64)+=bfh->file_size-1;
DefinePrint("TS_BOOT_DRV_START","0x%X",CeilI64(SYS_KERNEL_END+SLOP,BLK_SIZE));
DefinePrint("TS_BOOT_DRV_END", "0x%X",FloorI64(
(BOOT_RAM_LIMIT-(BOOT_STK_SIZE+CD_BOOT_LOADER_SIZE))>>4<<4-
(bfh(I64)-SYS_KERNEL_END)-SLOP,BLK_SIZE));
DefinePrint("CFG_BOOT_DRV_FILE","\"/Temp/BootDrv.BIN.Z\"");
} TSBootDrv1;
U0 TSBootDrv2()
{
DefinePrint("CFG_BOOT_DRV","\"a10x%X\n0x%X\n\"",TS_BOOT_DRV_START,
(TS_BOOT_DRV_END-TS_BOOT_DRV_START)/BLK_SIZE);
DefinePrint("CFG_BOOT_DRV_START","\"0x%X\"",TS_BOOT_DRV_START);
} TSBootDrv2;
U0 TSEmployeeSet()
{
U8 *st=StrNew(sys_acct),*st2=MAllocIdentical(st);
StrLastRem(st,"/",st2);
Free(st);
DefinePrint("TS_EMPLOYEE","\"%s\"",st2);
Free(st2);
} TSEmployeeSet;
U0 TSBlogDirSet()
{
CDate cdt=Now;
DefinePrint("TS_BLOG_DIR","\"/Accts/TS/Wb2/Rants/%s/%04d/%02d\"",
TS_EMPLOYEE,Year(cdt),Month(cdt));
} TSBlogDirSet;
#define CID_DFT 0
#define CID_TAD8 1 //This was my old machine but it died. Booted natively
#define CID_TAD8_VM 2 //It could run booted with physical drive in VMware
//My current machine is TAD9 but it only runs in VMware, so it's CID_DFT
I64 ts_cid=CID_DFT;
U0 TSIDComputer()
{
/* My TAD8 computer died. It had two hard drives. You could
boot it directly or from VMware with a physical drive.
CMemE820 *m20=SYS_MEM_E820;
if (IsDrvVMware('D') && DrvMaxBlk('D')==0x575466EF)
ts_cid=CID_TAD8_VM; //VMware boot of TAD8
else if (ChkDrvModelSerial('D',"Hitachi HDS721075KLA330","GTF202P8H509AF") &&
ChkDrvModelSerial('I',"ST3320620AS","6QF24J0A"))
ts_cid=CID_TAD8; //Regular boot of TAD8
//beware 'S'
else if (*sys_acct=='T' && IsDrvATAPI('T') && m20[11].base==0x100000000 &&
m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF)
ts_cid=CID_TAD8; //CDROM boot of TAD8
*/
} TSIDComputer;
U0 TSInit()
{
CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL;
CBlkDev *bdev;
switch (ts_cid) {
/* This machine died, but you can use it as an example.
case CID_TAD8:
case CID_TAD8_VM:
DefinePrint("CFG_ACCT","\"\nTS/TAD\n\"");
DefinePrint("CFG_HARD_DRVS","\"h2s0xbc00\n0xb880\n1d2s0xbc00\n0xb880\n0\"");
DefinePrint("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\"");
DefinePrint("CFG_CDROM_DRVS","\"t3s0xb800\n0\"");
DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
if (ts_cid==CID_TAD8) {
DefinePrint("TS_HDS","\"DEI\"");
DefinePrint("TS_MASTER_BOOT_DRVS","\"I\"");
} else { //CID_TAD8_VM
DefinePrint("TS_HDS","\"DE\"");
DefinePrint("TS_MASTER_BOOT_DRVS","\"\"");
}
DefinePrint("TS_MAIN_DRV","\"D\"");
DefinePrint("TS_BAK_DRV","\"E\"");
DefinePrint("TS_RAM_DRV","\"B\"");
DefinePrint("TS_WIN_DRV","\"H\"");
DefinePrint("TS_CDROM_DRV","\"T\"");
break;
*/
case CID_DFT:
DefinePrint("CFG_ACCT","\"\nTS/TAD\n\"");
DefinePrint("CFG_RAM_DRVS","\"b1\nScale2Mem(2048,0x40000)\n\"");
if (sys_auto_mount_ide_cnt) {
//If AutoMount was successful, No need to manually mount in next compile
DefinePrint("CFG_HARD_DRVS","\"\"");
DefinePrint("CFG_CDROM_DRVS","\"\"");
} else {
//These two are a crazy guess. ATA:IDE Primary ATAPI:IDE Secondary
DefinePrint("CFG_HARD_DRVS","\"d2s0x1F0\n0x3F4\n0\"");
DefinePrint("CFG_CDROM_DRVS","\"t3s0x170\n0\"");
bdev=Drv2BlkDev(*sys_acct);
if (bdev->type==BDT_ATAPI) {
ATARep(FALSE,,&root);
ATAIDDrvs(root,*sys_acct,&ata_drv,&atapi_drv);
if (ata_drv)
DefinePrint("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num);
if (atapi_drv)
DefinePrint("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num);
} else {
try {
bdev=Drv2BlkDev('D');
DefinePrint("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"",
bdev->base0,bdev->base1,bdev->unit);
} catch
Fs->catch_except=TRUE;
try {
bdev=Drv2BlkDev('T');
DefinePrint("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit);
} catch
Fs->catch_except=TRUE;
}
}
DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\"");
DefinePrint("TS_HDS","\"DE\"");
DefinePrint("TS_MASTER_BOOT_DRVS","\"D\"");
DefinePrint("TS_MAIN_DRV","\"D\"");
DefinePrint("TS_BAK_DRV","\"E\"");
DefinePrint("TS_BOOT_DRV","\"A\"");
DefinePrint("TS_RAM_DRV","\"B\"");
DefinePrint("TS_WIN_DRV","\"\"");
DefinePrint("TS_CDROM_DRV","\"T\"");
}
} TSInit;
U0 TSInit2()
{
DefinePrint("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV);
DefinePrint("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV);
DefinePrint("TS_BOOT_DRV_LET","'%s'",TS_BOOT_DRV);
DefinePrint("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV);
DefinePrint("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV);
DefinePrint("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV);
} TSInit2;
Bool ts_has_main_drv =ToBool(StrLen(TS_MAIN_DRV)),
ts_has_bak_drv =ToBool(StrLen(TS_BAK_DRV)),
ts_has_boot_drv =ToBool(StrLen(TS_BOOT_DRV)),
ts_has_ram_drv =ToBool(StrLen(TS_RAM_DRV)),
ts_has_win_drv =ToBool(StrLen(TS_WIN_DRV)),
ts_has_cdrom_drv=ToBool(StrLen(TS_CDROM_DRV));
if (ts_has_main_drv)
SetDrvTextAttr(TS_MAIN_DRV_LET, WHITE <<4|BLUE);
if (ts_has_bak_drv)
SetDrvTextAttr(TS_BAK_DRV_LET, WHITE <<4|RED);
if (ts_has_boot_drv)
SetDrvTextAttr(TS_BOOT_DRV_LET, BLUE <<4|BROWN);
if (ts_has_ram_drv)
SetDrvTextAttr(TS_RAM_DRV_LET, BLUE <<4|YELLOW);
if (ts_has_win_drv)
SetDrvTextAttr(TS_WIN_DRV_LET, LTRED <<4|BLACK);
if (ts_has_cdrom_drv)
SetDrvTextAttr(TS_CDROM_DRV_LET,LTGRAY<<4|BLUE);
#define TS_ISO_NAME TS_RAM_DRV ":/TempleOSCD.ISO"
#define TS_DISTRO_DIR TS_RAM_DRV ":/Distro"
#define CFG_OPTS "AutoMountIDE\nDT\n"
#define CFG_DBG_OPTS "AutoMountIDE\nDT"\
"HeapInit\n130\nMemInit\n131\nVarInit\n132\n\n"
#define CFG_DBGZ_OPTS "AutoMountIDE\nDT"\
"HeapInit\n0\nMemInit\n0\nVarInit\n0\n\n"
#define TS_CFG "\n" CFG_RAM_DRVS CFG_CDROM_DRVS CFG_HARD_DRVS CFG_ACCT CFG_DSK_CACHE CFG_OPTS
#define TS_MENU_CFG "\n" CFG_RAM_DRVS CFG_CDROM_DRVS CFG_HARD_DRVS "\n\n" CFG_DSK_CACHE CFG_OPTS
#define TS_CDROM_CFG "Tb1\n0x20000\nt3 \n\nTS\n\nAutoMountIDE\nDT\n"
#define TS_CDROM_DBG_CFG "A" CFG_BOOT_DRV "b1\nScale2Mem(2048,0x40000)\n\n\n\n"\
"DontProbe\nBootDrv\n" TS_MAIN_DRV ":" CFG_BOOT_DRV_FILE "\n" CFG_BOOT_DRV_START "\n\n"
//$BK,1$Change these, too...$BK,0$
//$MA-X+PU,"STD_DISTRO_CDROM_CFG",LM="F(\"STD_DISTRO_CDROM_CFG\");View;"$
//$LK,"Install Acct",A="FF:::/Accts/Install/DoOnce.CPP,MakeOSPrtBootInstall"$
Bool frame_grabber_on=FALSE;
#define VIDEO_FRAME_RATE 8
U0 FrameGrabberTask(I64)
{
/**** TO MAKE MOVIE ****
TempleOS
<ALT-SHIFT-V>
[Do stuff you want recorded]
<ALT-SHIFT-V>
Boot Windows
Copy /Temp
Download "ffmpeg" from the Internet
>CD SCREENSHOTS
>TSZ .
>ffmpeg -r 8 -i VID%05d.BMP -y Movie.avi
*/
I64 frame_num=0;
U8 buf[136],buf2[136];
F64 end_time=tS;
Silent(ON); //no output to screen
MkDir("::/Temp/ScreenShots");
while (frame_grabber_on) {
SPrint(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++);
StrCpy(buf2,buf);
BMPFileCaptureScreen(buf);
while (TRUE) {
end_time+=1.0/VIDEO_FRAME_RATE;
if (end_time<tS) {
SPrint(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++);
Copy(buf2,buf);
} else
break;
}
SleepUntil(sys_jiffies+(end_time-tS)*JIFFY_FREQ);
}
}
U0 CopyVideo()
{
if (ts_has_bak_drv) {
Del(TS_BAK_DRV ":/Temp/*.SND");
SndFileCreate(TS_BAK_DRV ":/Temp/Audio",0.23,0.0,WF_SQUARE,0.45,0.35);
DelTree(TS_BAK_DRV ":/Temp/ScreenShots");
CopyTree("::/Temp/ScreenShots",TS_BAK_DRV ":/Temp/ScreenShots");
}
}
public U0 FrameGrabberToggle()
{
static F64 last_time=0;
if (tS-last_time>3.0) {
last_time=tS;
if (frame_grabber_on) {
frame_grabber_on=FALSE;
Snd(0);
wallpaper_record_on=snd_record=FALSE;
Sleep(1000);
CopyVideo;
} else {
frame_grabber_on=TRUE;
Spawn(&FrameGrabberTask,NULL,"Frame Grabber");
wallpaper_record_on=snd_record=TRUE;
Snd(0);
}
}
}
U0 JukeSongsPut(U8 *dir,I64 start_song,I64 end_song)
{
I64 i,j,len=4;
CDirEntry *tempde,*tempde1;
Cd(dir);
tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES);
for (tempde=tempde1,i=0;tempde && i<start_song;i++)
tempde=tempde->next;
for (i=start_song;tempde && i<end_song;i++) {
if (FileExtDot(tempde->name))
FileExtRem(tempde->name);
if (j=StrLen(tempde->name)) {
*tempde->full_name=':';
*tempde->name=ToUpper(*tempde->name);
if (j>len) len=j;
}
tempde=tempde->next;
}
for (tempde=tempde1,i=0;tempde && i<start_song;i++)
tempde=tempde->next;
if (end_song-start_song<=9)
j=1;
else if (end_song-start_song<=99)
j=2;
else
j=3;
for (i=start_song;tempde && i<end_song;i++) {
"$$LK+CX,\"%*d) %-*s\",A=\"FI:%s\"$$\n",j,i-start_song+1,len,tempde->name,tempde->full_name;
tempde=tempde->next;
}
DirLstDel(tempde1);
}
public U0 JukeLines(I64 start_line,I64 end_line)
{
WordStat;
if (!frame_grabber_on)
FrameGrabberToggle;
JukeSongsPuppet("::/Apps/MusicOrgan/Examples",,start_line*5,end_line*5);
if (frame_grabber_on)
FrameGrabberToggle;
JukeSongsPut("::/Apps/MusicOrgan/Examples",start_line*5,end_line*5);
}
public U0 ChkAll()
{
U8 *ptr=TS_HDS;
while (*ptr)
ChkDsk(*ptr++);
}
public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL)
{
U8 byte_bit_cnts[256];
I64 i,j,*ptr,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image,total_score=0;
CDoc *doc=DocNew;
MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts));
for (i=0;i<256;i++)
for (j=0;j<7;j++)
if (Bt(&i,j))
byte_bit_cnts[i]++;
for (row=0;row<dc->height/FONT_HEIGHT;row++) {
for (col=0;col<dc->width/FONT_WIDTH;col++) {
cur_char_image=0;
for (i=0;i<FONT_HEIGHT;i++)
for (j=0;j<FONT_WIDTH;j++)
if (GrPeek(dc,col*FONT_WIDTH+j+dx,row*FONT_HEIGHT+i+dy)!=WHITE)
LBts(&cur_char_image,i*8+j);
best_score=MAX_I64;
best_ch=0;
ptr=&gr_font[32*FONT_HEIGHT];
for (ch=32;ch<127;ch++) {
diff_image=*ptr++ ^ cur_char_image;
score=0;
for (i=0;i<8;i++)
score+=byte_bit_cnts[diff_image.u8[i]];
if (score<best_score) {
best_score=score;
best_ch=ch;
}
}
if (best_ch=='$$')
DocPrint(doc,"$$$$");
else
DocPrint(doc,"%c",best_ch);
total_score+=best_score;
}
DocPrint(doc,"\n");
}
if (_total_score) *_total_score=total_score;
return doc;
}
public U0 BMP2TXT(U8 *_in_name,U8 *_out_name=NULL)
{
U8 *in_name,*out_name;
I64 dx,dy,score,best_score=MAX_I64;
CDC *dc;
CDoc *doc;
in_name=DftExt(_in_name,"BMP"),
if (_out_name)
out_name=DftExt(_out_name,"TXT.Z");
else
out_name=ChgExt(_in_name,"TXT.Z");
if (dc=BMPFileRead(in_name)) {
for (dy=-3;dy<=4;dy++)
for (dx=-3;dx<=4;dx++) {
doc=DC2Doc(dc,dx,dy,&score);
if (score<best_score) {
best_score=score;
StrCpy(&doc->filename.name,out_name);
DocWrite(doc);
}
DocDel(doc);
}
}
Free(in_name);
Free(out_name);
}
+638
View File
@@ -0,0 +1,638 @@
//The CFG defines are $LK,"Here",A="FI:::/Demo/AcctExample/TSAdam.CPP"$.
U8 TSPmtDrv()
{
I64 result;
"Drive (%s):",TS_HDS;
result=ToUpper(GetChar);
NewLine;
return result;
}
U0 TSMakeOSPrtBootInstall(U8 drv_let)
{
drv_let=ToUpper(drv_let);
Auto(TS_CFG);
MakeOSPrtBootInstall(drv_let);
if (StrOcc(TS_MASTER_BOOT_DRVS,drv_let))
MasterBootIntall(drv_let);
}
U0 SoftBootMenu(U8 drv_let=0)
{
if (!drv_let)
drv_let=Prt2Drv(Fs->cur_prt);
Drv(drv_let);
Cd("/Kernel");
Auto(TS_MENU_CFG);
if (!Cmp("Kernel","Kernel",NULL,':'))
SoftBoot("Kernel.BIN.Z");
}
U0 TSCopyDrv(U8 src,U8 dst)
{
U8 buf_s[128],buf_d[128];
src=ToUpper(src);
dst=ToUpper(dst);
Fmt(dst,,FALSE,PT_FAT32);
SPrint(buf_s,"%c:/",src);
SPrint(buf_d,"%c:/",dst);
CopyTree(buf_s,buf_d);
DocClear;
Drv(dst);
TSMakeOSPrtBootInstall(dst);
}
U0 TSPmtCopyDrv()
{
I64 src,dst;
"$$RED$$\nCopy Src Drive:\n$$FG$$";
src=TSPmtDrv;
"$$RED$$\nCopy Dst Drive:\n$$FG$$";
dst=TSPmtDrv;
TSCopyDrv(src,dst);
}
public U0 CursorRemFile(U8 *filename)
{
CDoc *doc;
doc=DocRead(filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR);
DocWrite(doc);
DocDel(doc);
}
public U0 CursorRem(U8 *files_find_mask="*")
{
I64 fuf_flags=0;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F+O");
CDirEntry *tempde=FilesFind(files_find_mask,fuf_flags),*tempde1=tempde;
while (tempde) {
CursorRemFile(tempde->full_name);
Touch(tempde->full_name,"",,tempde->datetime);
tempde=tempde->next;
}
DirLstDel(tempde1);
}
public U0 CursorTopFile(U8 *filename)
{
CDoc *doc;
doc=DocRead(filename,DOCF_PLAIN_TEXT);
doc->cur_entry=doc->root.next;
DocWrite(doc);
DocDel(doc);
}
public U0 CursorTop(U8 *files_find_mask="*")
{
I64 fuf_flags=0;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F+O");
CDirEntry *tempde=FilesFind(files_find_mask,fuf_flags),*tempde1=tempde;
while (tempde) {
CursorTopFile(tempde->full_name);
Touch(tempde->full_name,"",,tempde->datetime);
tempde=tempde->next;
}
DirLstDel(tempde1);
}
U0 UncollapseFile(U8 *filename,I64 *)
{
CDoc *doc=DocRead(filename,DOCF_NO_CURSOR);
DocCollapse(FALSE,doc);
DocWrite(doc);
DocDel(doc);
}
U0 Uncollapse(U8 *files_find_mask="*",U8 *fu_flags=NULL)
{
I64 fuf_flags=0;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T+O");
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
CDirEntry *tempde=FilesFind(files_find_mask,fuf_flags),*tempde1=tempde;
while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) {
UncollapseFile(tempde->full_name,&fuf_flags);
Touch(tempde->full_name,"",,tempde->datetime);
tempde=tempde->next;
}
DirLstDel(tempde1);
}
public U0 CopySongs(U8 threshold='7')
{
CDoc *s;
CDocEntry *doc_e;
CDirEntry *tempde=FilesFind("/Accts/TS/TAD/MusicOrgan/*.CPP*",FUF_CLUSTER_ORDER),*tempde1=tempde;
DelTree("/Apps/MusicOrgan/Examples");
MkDir("/Apps/MusicOrgan/Examples");
while (tempde) {
s=DocRead(tempde->full_name);
doc_e=s->root.next;
if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold)
Copy(tempde->full_name,"/Apps/MusicOrgan/Examples");
tempde=tempde->next;
}
DirLstDel(tempde1);
}
U0 DistroPrep()
{
Del("/Demo/WebLogExample/WebLogRep.TXT*");
Del("/Demo/ReverseFileExample/PoemForeward.TXT*");
Del("/Demo/Games/EagleDive.BIN*");
DelTree("/Accts/*Temp.TXT.Z");
CopySongs;
DelTree("/Temp");
MkDir("/Temp");
MkDir("/Temp/ScreenShots");
//User
Del("/Accts/User/Registry.CPP.Z");
//Install
Del("/Accts/Install/Registry.CPP.Z");
Touch("/Accts/PersonalMenu.TXT.Z","+T");
//TS
Touch("/Accts/TS/PersonalMenu.TXT.Z","+T");
DelTree("/Demo/AcctExample");
CopyTree("/Accts/TS","/Demo/AcctExample");
DelTree("/Demo/AcctExample/TAD/MusicOrgan");
DelTree("/Demo/AcctExample/Wb2");
Del("/Demo/AcctExample/TAD/Test*");
CursorTop("/*");
DelTree("/Demo/*.BI*");
S2T("/*","+r+S");
DocOpt("/*");
Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z);
}
U0 MakeBootDrvFile()
{
try
PrtChk(Drv2Prt(TS_BOOT_DRV_LET));
catch {
Fs->catch_except=TRUE;
Auto(CFG_BOOT_DRV "\n");
Mount;
}
CBlkDev *bdev=Drv2BlkDev(TS_BOOT_DRV_LET);
Fmt(TS_BOOT_DRV_LET,,FALSE,PT_REDSEA);
MkDir(TS_BOOT_DRV ":/Compiler");
Copy(TS_MAIN_DRV ":/Compiler/Compiler.BIN.Z", TS_BOOT_DRV ":/Compiler");
Copy(TS_MAIN_DRV ":/Compiler/OpCodes.TXT.Z", TS_BOOT_DRV ":/Compiler");
Copy(TS_MAIN_DRV ":/Compiler/CmpDefs.HPP.Z", TS_BOOT_DRV ":/Compiler");
Copy(TS_MAIN_DRV ":/Compiler/Cmp.HPP.Z", TS_BOOT_DRV ":/Compiler");
MkDir(TS_BOOT_DRV ":/Kernel");
Copy(TS_MAIN_DRV ":/Kernel/*.HPP*", TS_BOOT_DRV ":/Kernel");
Copy(TS_MAIN_DRV ":/Kernel/Adam1*", TS_BOOT_DRV ":/Kernel");
CopyTree(TS_MAIN_DRV ":/Kernel/Dsk", TS_BOOT_DRV ":/Kernel/Dsk");
MkDir(TS_BOOT_DRV ":/Adam");
Copy(TS_MAIN_DRV ":/Accts/TS/DbgAdam2.CPP.Z", TS_BOOT_DRV ":/Adam/Adam2.CPP.Z");
Copy(TS_MAIN_DRV ":/Adam/AdamExt.HPP.Z", TS_BOOT_DRV ":/Adam");
Copy(TS_MAIN_DRV ":/Adam/Math2a.CPP.Z", TS_BOOT_DRV ":/Adam");
Copy(TS_MAIN_DRV ":/Adam/Training.CPP.Z", TS_BOOT_DRV ":/Adam");
Copy(TS_MAIN_DRV ":/Adam/Utils2a.CPP.Z", TS_BOOT_DRV ":/Adam");
Copy(TS_MAIN_DRV ":/Adam/MathODE.CPP.Z", TS_BOOT_DRV ":/Adam");
FileWrite(TS_MAIN_DRV ":" CFG_BOOT_DRV_FILE,bdev->RAM_dsk,(bdev->max_blk+1)<<BLK_SIZE_BITS);
}
U0 MakeSymFiles()
{
CDoc *doc;
U8 *st;
if (ts_has_bak_drv) {
DocClear;
DocMax;
HashTablePurge(adam_task->hash_table);
Who;
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAlpha.TXT.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
DocMax;
Who("+m");
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAddress.TXT.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
}
}
I64 MakeLineRepFile()
{
U8 *st;
CDoc *doc;
I64 result,official;
CDocEntry *tree_branch,*start_indent,*end_indent;
DocClear;
Drv(TS_MAIN_DRV_LET);
DistroPrep;
Cd(TS_MAIN_DRV ":/");
if (ts_has_ram_drv) {
DelTree(TS_RAM_DRV ":/TS");
CopyTree(TS_MAIN_DRV ":/Accts/TS",TS_RAM_DRV ":/TS");
DelTree(TS_MAIN_DRV ":/Accts/TS");
}
DocMax;
DocClear;
result=LineRep;
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,TS_RAM_DRV ":/TS/Wb2/LineRep.TXT.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
official=LineRep(TS_MAIN_DRV ":/Accts/*")+
LineRep(TS_MAIN_DRV ":/Adam/*")+
LineRep(TS_MAIN_DRV ":/Compiler/*","-S+T")+
LineRep(TS_MAIN_DRV ":/Kernel/*");
DocClear;
if (ts_has_ram_drv) {
CopyTree(TS_RAM_DRV ":/TS",TS_MAIN_DRV ":/Accts/TS");
DelTree(TS_RAM_DRV ":/TS");
}
doc=DocRead(TS_MAIN_DRV ":/Adam/DocDefines.CPP.Z");
DocTreeFind(doc,"LineRep",&tree_branch,&start_indent,&end_indent);
DocCut(doc,start_indent->next,end_indent->last);
doc->cur_entry=start_indent->next;
doc->cur_data_col=0;
DocPrint(doc,"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result);
DocPrint(doc,"DefinePrint(\"DD_TEMPLEOS_LOC_OFFICIAL\",\"%,d\");\n",official);
st=MPrint("%,d",result);
DefineLoad("DD_TEMPLEOS_LOC",st);
Free(st);
st=MPrint("%,d",official);
DefineLoad("DD_TEMPLEOS_LOC_OFFICIAL",st);
Free(st);
DocWrite(doc);
DocDel(doc);
"Total LOC:%12,d\n\n",result;
return result;
}
U0 TSDistroPrep()
{
Drv(TS_MAIN_DRV_LET);
DistroPrep;
Auto(TS_CDROM_CFG);
MakeOSPrtBootInstall(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET);
DelTree(TS_DISTRO_DIR);
CopyTree(TS_MAIN_DRV ":/",TS_DISTRO_DIR "/");
}
U0 DbgDistroPrep()
{
if (ts_has_boot_drv) {
Drv(TS_MAIN_DRV_LET);
DistroPrep;
MakeBootDrvFile;
Auto(TS_CDROM_DBG_CFG);
MakeOSPrtBootInstall(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET);
DelTree(TS_DISTRO_DIR);
CopyTree(TS_MAIN_DRV ":/",TS_DISTRO_DIR "/");
Del(TS_MAIN_DRV ":" CFG_BOOT_DRV_FILE);
}
}
U0 StdDistroPrep()
{
Drv(TS_MAIN_DRV_LET);
DistroPrep;
Auto(STD_DISTRO_CDROM_CFG);
MakeOSPrtBootInstall(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET);
DelTree(TS_DISTRO_DIR);
CopyTree(TS_MAIN_DRV ":/",TS_DISTRO_DIR "/");
DelTree(TS_DISTRO_DIR "/Accts/TS");
Del(TS_DISTRO_DIR "/0000Boot/OldMBR.BIN.C");
Del(TS_DISTRO_DIR "/0000Boot/BootMHD2.BIN.C");
}
U0 LiteDistroPrep()
{
Drv(TS_MAIN_DRV_LET);
DistroPrep;
Auto(STD_DISTRO_CDROM_CFG);
MakeOSPrtBootInstall(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET);
DelTree(TS_DISTRO_DIR);
CopyTree(TS_MAIN_DRV ":/",TS_DISTRO_DIR "/");
DelTree(TS_DISTRO_DIR "/Accts/TS");
DelTree(TS_DISTRO_DIR "/Linux");
DelTree(TS_DISTRO_DIR "/Windows");
Del(TS_DISTRO_DIR "/0000Boot/OldMBR.BIN.C");
Del(TS_DISTRO_DIR "/0000Boot/BootMHD2.BIN.C");
Del(TS_DISTRO_DIR "/Adam/WordStat/WSDefs.DAT*");
Del(TS_DISTRO_DIR "/Misc/PCIDevices.TXT.Z");
Del(TS_DISTRO_DIR "/Misc/Bible.TXT.Z");
}
U0 UltraDistroPrep()
{
Drv(TS_MAIN_DRV_LET);
DistroPrep;
Auto(STD_DISTRO_CDROM_CFG);
MakeOSPrtBootInstall(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET);
DelTree(TS_DISTRO_DIR);
CopyTree(TS_MAIN_DRV ":/",TS_DISTRO_DIR "/");
DelTree(TS_DISTRO_DIR "/Accts/TS");
DelTree(TS_DISTRO_DIR "/Linux");
DelTree(TS_DISTRO_DIR "/Windows");
DelTree(TS_DISTRO_DIR "/Apps");
DelTree(TS_DISTRO_DIR "/Demo");
Del(TS_DISTRO_DIR "/0000Boot/OldMBR.BIN.C");
Del(TS_DISTRO_DIR "/0000Boot/BootMHD2.BIN.C");
Del(TS_DISTRO_DIR "/Adam/WordStat/*.DAT*");
DelTree(TS_DISTRO_DIR "/Misc/Tour");
Del(TS_DISTRO_DIR "/Misc/PCIDevices.TXT.Z");
Del(TS_DISTRO_DIR "/Misc/Bible.TXT.Z");
Del(TS_DISTRO_DIR "/Adam/God/Vocab.TXT.Z");
}
U0 MakeTSDistro()
{
TSDistroPrep;
CDFileCreate(TS_ISO_NAME,TS_DISTRO_DIR "/*",,TS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
Drv(TS_MAIN_DRV_LET);
}
U0 MakeDbgDistro()
{
DbgDistroPrep;
CDFileCreate(TS_ISO_NAME,TS_DISTRO_DIR "/*",,TS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
Drv(TS_MAIN_DRV_LET);
}
U0 MakeStdDistro()
{
StdDistroPrep;
CDFileCreate(TS_ISO_NAME,TS_DISTRO_DIR "/*",,TS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
Drv(TS_MAIN_DRV_LET);
}
U0 MakeLiteDistro()
{
LiteDistroPrep;
CDFileCreate(TS_ISO_NAME,TS_DISTRO_DIR "/*",,TS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
Drv(TS_MAIN_DRV_LET);
}
U0 MakeUltraDistro()
{
UltraDistroPrep;
CDFileCreate(TS_ISO_NAME,TS_DISTRO_DIR "/*",,TS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
Drv(TS_MAIN_DRV_LET);
}
U0 TSWebFile(U8 *name)
{
U8 *name2;
CDirEntry de;
if (FileFind(name,&de)) {
Free(de.full_name);
"File:%s\n",name;
UncollapseFile(name,NULL);
Touch(name,"",,de.datetime);
name2=ChgExt(name,"html");
ToHtml(name,name2,
"<title>The Temple Operating System</title>\n"
"<meta name=\"keywords\" content=\"Operating System,64-Bit,64 Bit,Temple,OS,TempleOS,Free,Open Source,Public Domain,x86_64\">\n"
);
Touch(name2,"",,de.datetime);
Free(name2);
}
}
U0 MakeWebSite()
{
CDirEntry *tempde,*tempde1;
if (ts_has_bak_drv) {
DocClear;
Cd(TS_BAK_DRV ":/Wb");
DelTree(TS_BAK_DRV ":/Wb/Accts/TS/TAD");
Del(TS_BAK_DRV ":/Wb/Accts/TS/*");
Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/index.TXT.Z","",,Now);
Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/Downloads.TXT.Z","",,Now);
Touch(TS_BAK_DRV ":/Wb/Accts/TS/Wb2/TempleOS.TXT.Z","",,Now);
tempde=tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
while (tempde) {
TSWebFile(tempde->full_name);
tempde=tempde->next;
}
DirLstDel(tempde1);
Drv(TS_MAIN_DRV_LET);
}
}
U0 FreshenWebDir(U8 *dirname)
{
CDirEntry *tempde,*tempde1;
U8 *src,*dst;
src=MPrint(TS_BAK_DRV ":/Wb%s/*",dirname);
Del(src);
Free(src);
src=MPrint(TS_MAIN_DRV ":%s/*",dirname);
dst=MPrint(TS_BAK_DRV ":/Wb%s",dirname);
Copy(src,dst);
Free(src);
Free(dst);
src=MPrint(TS_BAK_DRV ":/Uncompressed%s/*",dirname);
Del(src);
Free(src);
src=MPrint(TS_MAIN_DRV ":%s/*",dirname);
dst=MPrint(TS_BAK_DRV ":/Uncompressed%s",dirname);
Copy(src,dst);
Free(src);
Free(dst);
src=MPrint(TS_BAK_DRV ":/Wb%s/*",dirname);
tempde=tempde1=FilesFind(src,FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
while (tempde) {
TSWebFile(tempde->full_name);
tempde=tempde->next;
}
DirLstDel(tempde1);
}
U0 MakeWebSitePartial()
{
if (ts_has_bak_drv) {
FreshenWebDir("/Accts/TS/Wb2");
FreshenWebDir("/Accts/TS/Wb2/Rants/TAD");
FreshenWebDir(TS_BLOG_DIR);
Drv(TS_MAIN_DRV_LET);
}
}
U0 TSUncompress()
{
U8 *st;
CDirEntry *tempde,*tempde1;
if (ts_has_bak_drv) {
DelTree(TS_BAK_DRV ":/Uncompressed");
CopyTree(TS_MAIN_DRV ":/",TS_BAK_DRV ":/Uncompressed");
tempde=tempde1=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_JUST_FILES|FUF_CLUSTER_ORDER);
while (tempde) {
st=StrNew(tempde->full_name);
StrLastRem(st,".");
Move(tempde->full_name,st);
Free(st);
tempde=tempde->next;
}
DirLstDel(tempde1);
CursorRem(TS_BAK_DRV ":/Uncompressed/*");
}
}
U0 UpdateISODocDefines()
{
DefinePrint("DD_TEMPLEOSTS_SIZE",
"Download $TX,"TempleOS V2.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)",
0.1*(10*Size(TS_BAK_DRV ":/Wb/TempleOSTS.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSDBG_SIZE",
"Download $TX,"TempleOS V2.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)",
0.1*(10*Size(TS_BAK_DRV ":/Wb/TempleOSDbg.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V2.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)",
0.1*(10*Size(TS_BAK_DRV ":/Wb/TempleOSCD.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSLITE_SIZE",
"Download $TX,"TempleOS V2.03",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)",
0.1*(10*Size(TS_BAK_DRV ":/Wb/TempleOSLite.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSULTRA_SIZE",
"Download $TX,"TempleOS V2.03",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)",
0.1*(10*Size(TS_BAK_DRV ":/Wb/TempleOSUltra.ISO","+s")/1024/1024));
}
UpdateISODocDefines;
public U0 MakeDistrosAndBackUp()
{
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
progress4=*progress4_desc=0;
progress4_max=19;
WordStat;
WinMax;
WinBorder;
ChkAll; progress4++;
if (ts_has_bak_drv) {
MakeLineRepFile; progress4++;
TSCopyDrv(TS_MAIN_DRV_LET,TS_BAK_DRV_LET); progress4++;
DelTree (TS_BAK_DRV ":/Wb"); progress4++;
CopyTree(TS_MAIN_DRV ":/",TS_BAK_DRV ":/Wb"); progress4++;
DocClear;
MakeTSDistro; progress4++;
DocClear;
Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSTS.ISO"); progress4++;
MakeDbgDistro; progress4++;
DocClear;
Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSDbg.ISO"); progress4++;
MakeStdDistro; progress4++;
DocClear;
Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSCD.ISO"); progress4++;
MakeLiteDistro; progress4++;
DocClear;
Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSLite.ISO"); progress4++;
MakeUltraDistro; progress4++;
DocClear;
Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSUltra.ISO"); progress4++;
UpdateISODocDefines;
Cd(TS_MAIN_DRV ":/");
if (LinkChk)
throw;
progress4++;
MakeSymFiles; progress4++;
MakeWebSite; progress4++;
TSUncompress; progress4++;
}
Drv(TS_MAIN_DRV_LET);
ChkAll; progress4++;
progress4=progress4_max=0;
SettingsPop;
}
public U0 TSMount()
{
if (!sys_auto_mount_ide_cnt) {
Auto(CFG_HARD_DRVS "\n");
Mount;
}
}
U0 TSCopy()
{
if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine
Fmt(TS_MAIN_DRV_LET,,FALSE);
CopyTree(TS_CDROM_DRV ":/",TS_MAIN_DRV ":/");
TSMakeOSPrtBootInstall(TS_MAIN_DRV_LET);
Fmt(TS_BAK_DRV_LET,,FALSE);
CopyTree(TS_CDROM_DRV ":/",TS_BAK_DRV ":/");
TSMakeOSPrtBootInstall(TS_BAK_DRV_LET);
Reboot;
}
}
U0 TSPrtDsk()
{
CTask *task=SpawnUser;
CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL;
if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine
ATARep(FALSE,TRUE,&root);
ATAIDDrvs(root,*sys_acct,&ata_drv,&atapi_drv);
if (ata_drv) {
XTalkWait(task,"PrtDsk;\nY%C2p%d\nYYY",TS_MAIN_DRV_LET,ata_drv->num);
XTalkWait(task,"%d\nY\nY\n",(prt_dsk_dsk_size-PRT_HEADER)/2);
}
Kill(task);
}
}
public U0 TSUpgrade()
{
if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine
TSMount;
TSCopy;
}
}
public U0 TSInstall()
{
if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine
TSPrtDsk;
TSCopy;
}
}
+404
View File
@@ -0,0 +1,404 @@
U0 BadCodeJump()
{ //$LK,"::/Adam/God/HSNotes.TXT"$
CDirEntry *tempde1=FilesFind("/*",FUF_JUST_FILES|FUF_RECURSE|FUF_JUST_SRC|FUF_CLUSTER_ORDER),
*tempde=tempde1;
I64 cnt=0,num;
CDoc *doc;
U8 *st;
while (tempde) {
doc=DocRead(tempde->full_name);
tempde->user_data=doc->root.y;
cnt+=doc->root.y;
DocDel(doc);
tempde=tempde->next;
}
num=KbdMouseEvtTime>>GOD_BAD_BITS%cnt;
tempde=tempde1;
while (tempde) {
num-=tempde->user_data;
if (num<0) {
st=MPrint("FL:%s,%d",tempde->full_name,-num);
break;
}
tempde=tempde->next;
}
DirLstDel(tempde1);
Ed(st);
Free(st);
}
public U8 *FileNameNumNext(U8 *files_find_mask,U8 *fmt)
{
CDirEntry *tempde=FilesFind(files_find_mask);
U8 *result=MPrint(fmt,FileCnt(tempde));
DirLstDel(tempde);
return result;
}
U0 DCImgWrite(CDC *dc)
{
U8 *st=FileNameNumNext("::" TS_BLOG_DIR "/Img*","::" TS_BLOG_DIR "/Img%03d.BMP"),*st2;
st2=MPrint("http://www.templeos.org/Wb%s",st+2);
BMPFileWrite(st,dc);
Free(st);
"$$HC,\"<img src=\\\"%s\\\" width=\\\"%d\\\" height=\\\"%d\\\" alt=\\\"\\\">\"$$\n",st2,dc->width,dc->height;
Free(st2);
}
U0 BlogScreenShot()
{
Bool old_cursor=DocCursor;
CDC *dc1,*dc2;
U8 *old_fp_draw_input_ptr=fp_draw_input_ptr;
fp_draw_input_ptr=NULL;
WinMgrSync(2);
dc1=DCCaptureScreen;
dc2=DCExtract(dc1,0,FONT_HEIGHT,GR_WIDTH-1,GR_HEIGHT-1);
DCImgWrite(dc2);
fp_draw_input_ptr=old_fp_draw_input_ptr;
DCDel(dc1);
DCDel(dc2);
DocCursor(old_cursor);
}
U8 *WebBookMarks(U8 *filename="HOME/Archive/Bookmarks.html")
{
U8 *st;
CDocEntry *doc_e;
CDoc *doc=DocNew;
CLex *lx=LexNew(MPrint("#include \"%s\"",filename));
while (Lex(lx))
if (lx->token==TK_STR && *lx->cur_str(U32 *)=='http') {
DocPrint(doc,"$$MU-UL,\"%Q\",LE=0x%X$$\n",lx->cur_str,lx->cur_str);
lx->cur_str=NULL;
}
LexDel(lx);
st=StrNew(PopUpMenu(doc));
doc_e=doc->root.next;
while (doc_e!=doc) {
if (doc_e->type_u8==DOCT_MENU_VAL)
Free(doc_e->left_exp);
doc_e=doc_e->next;
}
DocDel(doc);
return st;
}
class CWebBookMarkForm
{
U8 tag[136] fmtstr "$$DA-P,135,A=\"Tag Text :%s\"$$\n";
U8 special[136];
I64 timestamp;
I64 cert;
I64 min;
I64 sec;
};
class CWebBibleForm
{
U8 tag[136] fmtstr "$$DA-P,135,A=\"Tag Text :%s\"$$\n";
U8 special[136] fmtstr "$$DA-P,135,A=\"Bible Passage:%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min;
I64 sec;
};
class CYouTubeForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"SerialNum:%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min fmtstr "$$DA,32,A=\"Minutes :%d\"$$\n";
I64 sec fmtstr "$$DA,32,A=\"Seconds :%d\"$$\n";
};
class CImgurForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"SerialNum:%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min fmtstr "$$DA,32,A=\"Width :%d\"$$\n";
I64 sec fmtstr "$$DA,32,A=\"Height :%d\"$$\n";
};
class CWikipediaForm
{
U8 tag[136] fmtstr "$$DA-P,135,A=\"Tag Text:%s\"$$\n";
U8 special[136] fmtstr "$$DA-P,135,A=\"Index :%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min;
I64 sec;
};
class CRandDecForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"Line (Dec):%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min;
I64 sec;
};
class CRandHexForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"Line (Hex):%s\"$$\n";
I64 timestamp;
I64 cert;
I64 min;
I64 sec;
};
class CRandCertForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"Line (Dec) :%s\"$$\n";
I64 timestamp;
I64 cert fmtstr "$$DA,32,A=\"Certificate:%d\"$$\n";
I64 min;
I64 sec;
};
class CRandHexBeaconForm
{
U8 tag[136];
U8 special[136] fmtstr "$$DA-P,135,A=\"Line (Hex):%s\"$$\n";
I64 timestamp fmtstr "$$DA,32,A=\"TimeStamp :%d\"$$\n";
I64 cert;
I64 min;
I64 sec;
};
U8 *URLPercentSpaces(U8 *src)
{
U8 buf[1024],*dst=buf;
while (*src) {
if (*src==CH_SPACE) {
*dst++='%';
*dst++='%';
*dst++='2';
*dst++='0';
src++;
} else
*dst++=*src++;
}
*dst=0;
return StrNew(buf);
}
U0 MyBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one)
{
CDoc *doc_out,*doc_in;
CDocEntry *doc_e;
I64 i,start;
U8 *verse;
if (*st && (doc_out=DocPut)) {
i=A2I64(st,radix);
if (modulo) {
DocPrint(doc_out,"$TX,"(Modulo is just remainder.)",HTML="http://en.wikipedia.org/wiki/Modulo_operation"$\n");
if (radix==16)
DocPrint(doc_out,"0x%s-->",st);
DocPrint(doc_out,"(%d mod %d)",i,ST_BIBLE_LINES-(num_lines-1));
start=i%(ST_BIBLE_LINES-(num_lines-1));
} else {
if (radix==16)
DocPrint(doc_out,"0x%s-->",st);
DocPrint(doc_out,"%d",i);
start=i;
}
if (plus_one) {
start++;
DocPrint(doc_out,"+1");
}
DocPrint(doc_out,"-->Line:%d\n\n",start);
verse=BibleLine2Verse(start);
DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/files/BIBLE.TXT"$ (%s) God says...\n$$RED$$",verse);
Free(verse);
doc_in=DocNew;
BibleLines(doc_in,start,num_lines);
while (TRUE) { //Del leading blanks
doc_e=doc_in->root.next;
if (doc_e==doc_in)
break;
else {
if (doc_e->type_u8==DOCT_NEW_LINE)
DocEntryDel(doc_in,doc_e);
else
break;
}
}
while (TRUE) { //Del trailing blanks
doc_e=doc_in->cur_entry->last;
if (doc_e==doc_in)
break;
else {
if (doc_e->type_u8==DOCT_NEW_LINE)
DocEntryDel(doc_in,doc_e);
else
break;
}
}
DocPrint(doc_in,"$$FG$$\n");
DocInsDoc(doc_out,doc_in);
DocDel(doc_in);
}
}
#define NIST_TIME_OFFSET (5*3600-353)
public U0 SyncNIST()
{
while (!ScanChar) {
"%d %d\n",
ToI64 ((Now-A2Date("1/1/1970"))/CDATE_FREQ+NIST_TIME_OFFSET),
FloorI64((Now-A2Date("1/1/1970"))/CDATE_FREQ+NIST_TIME_OFFSET,60);
Sleep(100);
}
}
U0 FillInMyURL()
{
U8 *tag,*st,*st2;
CWebBibleForm *url=CAlloc(sizeof(CWebBibleForm));
url->timestamp=
FloorI64((Now-A2Date("1/1/1970"))/CDATE_FREQ+NIST_TIME_OFFSET,60);
switch (PopUpPickLst("NISTBeacon\0WebBible\0YouTube\0Imgur\0Wikipedia\0RandomNumbers.info\0"
"Random.org\0VirtualNotary\0Nist\0HotBits\0GenerateData\0WebBookMark\0")) {
case 0:
if (DocFormDo(url(CRandHexBeaconForm *))) {
"$$TX,\"National Institute of Standards Public Randomness Beacon\","
"HTML=\"http://beacon.nist.gov/home\"$$\n\n"
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag=MPrint("http://beacon.nist.gov/rest/record/%d",url->timestamp);
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
Free(tag);
MyBibleLines(url->special,20,16,TRUE,TRUE);
}
break;
case 1:
if (DocFormDo(url(CWebBibleForm *))) {
tag=url->special;
st2=URLPercentSpaces(url->special);
st=MPrint("http://www.biblegateway.com/passage/?search=%s&version=NIV",st2);
Free(st2);
if (*url->tag)
tag=url->tag;
"$$TX,\"%Q\",HTML=\"%Q\"$$",tag,st;
Free(st);
}
break;
case 2:
if (DocFormDo(url(CYouTubeForm *))) {
if (url->min || url->sec)
st=MPrint("%s&hl=enUS&start=%d",url->special,url->min*60+url->sec);
else
st=StrNew(url->special);
"$$HC,\"<object width=\\\"640\\\" height=\\\"520\\\"><param name=\\\"movie\\\" "
"value=\\\"http://www.youtube.com/v/%s\\\"></param><param "
"name=\\\"allowscriptaccess\\\" value=\\\"always\\\"></param><embed "
"src=\\\"http://www.youtube.com/v/%s\\\" "
"type=\\\"application/x-shockwave-flash\\\" allowscriptaccess=\\\"always\\\" "
"width=\\\"640\\\" height=\\\"520\\\"></embed></object>\"$$\n",st,st;
Free(st);
}
break;
case 3:
if (DocFormDo(url(CImgurForm *))) {
"$$HC,\"<img src=\\\"http://i.imgur.com/%s\\\" "
"width=\\\"%d\\\" height=\\\"%d\\\" alt=\\\"\\\">\"$$\n",
url->special,url->min,url->sec;
}
break;
case 4:
if (DocFormDo(url(CWikipediaForm *))) {
tag=url->special;
st=MPrint("http://en.wikipedia.org/wiki/%s",url->special);
if (*url->tag)
tag=url->tag;
"$$TX,\"%Q\",HTML=\"%Q\"$$",tag,st;
Free(st);
}
break;
case 5:
if (DocFormDo(url(CRandDecForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="http://www.randomnumbers.info";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
MyBibleLines(url->special,20,10,FALSE,TRUE);
}
break;
case 6:
if (DocFormDo(url(CRandDecForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="http://www.random.org";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
MyBibleLines(url->special,20,10,FALSE,FALSE);
}
break;
case 7:
if (DocFormDo(url(CRandCertForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="http://virtual-notary.org";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag;
tag="Here is the certificate";
st=MPrint("http://www.templeos.org/Certs/virtual-notary-cert-randomnum-%d.p12",url->cert);
"\n$$TX,\"%Q: %d\",HTML=\"%Q\"$$.\n\n",tag,url->cert,st;
Free(st);
MyBibleLines(url->special,20,10,FALSE,FALSE);
}
break;
case 8:
if (DocFormDo(url(CRandHexForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="http://qrng.anu.edu.au/NIST.php";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
MyBibleLines(url->special,20,16,TRUE,TRUE);
}
break;
case 9:
if (DocFormDo(url(CRandHexForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="https://www.fourmilab.ch/hotbits/secure_generate.html";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
MyBibleLines(url->special,20,16,TRUE,TRUE);
}
break;
case 10:
if (DocFormDo(url(CRandDecForm *))) {
"$$TX,\"Guidelines for Talking with God\","
"HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n\n";
tag="http://www.generatedata.com";
"$$TX,\"%Q\",HTML=\"%Q\"$$\n\n",tag,tag;
MyBibleLines(url->special,20,10,FALSE,FALSE);
}
break;
case 11:
if (DocFormDo(url(CWebBookMarkForm *))) {
tag=st=WebBookMarks;
if (*url->tag)
tag=url->tag;
"$$TX,\"%Q\",HTML=\"%Q\"$$",tag,st;
Free(st);
}
break;
}
Free(url);
}