TempleOSCDV5.03.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:48:27 +02:00
1 parent 4b32f058d5
commit 6028804a5a
111 files changed
+3426 -2245

No files matched your search

Binary file not shown.
+2 -2
View File
@@ -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","119,873");
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,990");
$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,834");
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,152");
$ID,-4$
DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR);
DefinePrint("DD_MP_VECT_END","%08X",
+3 -5
View File
@@ -157,7 +157,7 @@ U8 *idx=NULL,CDoc *doc=NULL)
CHashGeneric *ptr;
CWho *lst;
I64 cnt,i,j,k,f=0;
U8 buf[512],*st,*last_idx=StrNew(""),*cur_idx,*comment;
U8 buf[512],*last_idx=StrNew(""),*cur_idx,*comment;
Bool recurse,publics,map;
CTask *task;
@@ -267,13 +267,11 @@ U8 *idx=NULL,CDoc *doc=NULL)
if (!idx) {
if (ptr->type & HTT_DEFINE_STR) {
st=MStrUtil(ptr(CHashDefineStr *)->data,SUF_SAFE_DOLLAR);
j=ptr(CHashDefineStr *)->cnt;
if (j==-1)
StrPrint(buf,"%-10tQ ",st);
StrPrint(buf,"%-10t$$Q ",ptr(CHashDefineStr *)->data);
else
StrPrint(buf,"%-10tQ %02X",st,j);
Free(st);
StrPrint(buf,"%-10t$$Q %02X",ptr(CHashDefineStr *)->data,j);
} else if (ptr->type & HTT_GLBL_VAR)
StrPrint(buf,"%010X ",ptr(CHashGlblVar *)->data_addr);
else
+93 -14
View File
@@ -29,18 +29,13 @@ U0 ODERstPtrs(CMathODE *ode)
public CMathODE *ODENew(I64 n,F64 max_tolerance=1e-6,I64 flags=0)
{//Make differential equation ctrl struct. See $LK,"flags",A="MN:ODEF_HAS_MASSES"$.
//The tolerance is not precise.
//You can min_tolerance and it will
//dynamically adjust tolerance to utilize
//the CPU.
I64 s=n*sizeof(F64);
CMathODE *ode=MAlloc(sizeof(CMathODE));
ode->t=0;
CMathODE *ode=CAlloc(sizeof(CMathODE));
ode->t_scale=1.0;
ode->base_t=0;
ode->flags=flags;
ode->n_internal=ode->n=n;
ode->h=1e-6;
@@ -48,22 +43,38 @@ public CMathODE *ODENew(I64 n,F64 max_tolerance=1e-6,I64 flags=0)
ode->h_max=1e32;
ode->max_tolerance=ode->min_tolerance=ode->tolerance_internal=max_tolerance;
ode->win_task=ode->mem_task=Fs;
ode->derivative=NULL;
QueInit(&ode->next_mass);
QueInit(&ode->next_spring);
ode->acceleration_limit=ode->drag_v=ode->drag_v2=ode->drag_v3=0;
ode->state=CAlloc(s);
ode->array_base=MAlloc(12*s);
ODERstPtrs(ode);
return ode;
}
public Bool ODEPause(CMathODE *ode,Bool val=ON)
{//Pause ODE.
Bool res;
if (!ode) return OFF;
res=LBEqu(&ode->flags,ODEf_PAUSED,val);
if (val)
while (Bt(&ode->flags,ODEf_BUSY))
Yield;
return res;
}
public U0 ODEDel(CMathODE *ode)
{//Free ODE node, but not masses or springs.
I64 i;
if (!ode) return;
ODEPause(ode);
Free(ode->state);
Free(ode->array_base);
if (ode->slave_tasks) {
for (i=0;i<mp_cnt;i++)
Kill(ode->slave_tasks[i]);
Free(ode->slave_tasks);
}
Free(ode);
}
@@ -319,6 +330,53 @@ U0 ODEApplyAccelerationLimit(CMathODE *ode)
}
}
U0 ODEMPTask(CMathODE *ode)
{
while (TRUE) {
while (!Bt(&ode->mp_not_done_flags,Gs->num))
Yield;
if (ode->mp_derive)
(*ode->mp_derive)(ode,ode->mp_t,
Gs->num,ode->mp_state,ode->mp_DstateDt);
LBtr(&ode->mp_not_done_flags,Gs->num);
}
}
U0 ODEMPWake(CMathODE *ode)
{
I64 i;
if (!ode->slave_tasks) {
ode->slave_tasks=CAlloc(mp_cnt*sizeof(CTask *));
for (i=0;i<mp_cnt;i++)
ode->slave_tasks[i]=Spawn(&ODEMPTask,ode,"ODE Slave",i);
}
for (i=0;i<mp_cnt;i++) {
Suspend(ode->slave_tasks[i],FALSE);
MPInt(I_WAKE,i);
}
}
U0 ODEMPSleep(CMathODE *ode)
{
I64 i;
if (ode->slave_tasks) {
while (ode->mp_not_done_flags)
Yield;
for (i=0;i<mp_cnt;i++)
Suspend(ode->slave_tasks[i]);
}
}
U0 ODECallMPDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt)
{
ode->mp_t=t;
ode->mp_state=state;
ode->mp_DstateDt=DstateDt;
ode->mp_not_done_flags=1<<mp_cnt-1;
do Yield;
while (ode->mp_not_done_flags);
}
U0 ODECallDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt)
{
CMass *tmpm;
@@ -334,7 +392,10 @@ U0 ODECallDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt)
}
ODECalcSprings(ode);
ODECalcDrag(ode);
(*ode->derivative)(ode,t,state,DstateDt);
if (ode->mp_derive)
ODECallMPDerivative(ode,t,state,DstateDt);
if (ode->derive)
(*ode->derive)(ode,t,state,DstateDt);
tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) {
if (!(tmpm->flags&MSF_INACTIVE)) {
@@ -347,8 +408,12 @@ U0 ODECallDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt)
tmpm=tmpm->next;
}
ODEApplyAccelerationLimit(ode);
} else
(*ode->derivative)(ode,t,state,DstateDt);
} else {
if (ode->mp_derive)
ODECallMPDerivative(ode,t,state,DstateDt);
if (ode->derive)
(*ode->derive)(ode,t,state,DstateDt);
}
}
U0 ODEOneStep(CMathODE *ode)
@@ -453,6 +518,7 @@ U0 ODECashKarp(CMathODE *ode)
tmpstate[i]=state[i]+h*(ODEb61*DstateDt[i]+
ODEb62*ak2[i]+ODEb63*ak3[i]+ODEb64*ak4[i]+ODEb65*ak5[i]);
ODECallDerivative(ode,ode->t+ODEa6*h,tmpstate,ak6);
for (i=0;i<n;i++)
outstate[i]=state[i]+h*(ODEc1*DstateDt[i]+
ODEc3*ak3[i]+ODEc4*ak4[i]+ODEc6*ak6[i]);
@@ -537,7 +603,14 @@ it has a timeout.
t_desired=ode->t_scale*d+t_initial;
if (ode->flags&ODEF_PAUSED)
ode->base_t+=t_desired-ode->t; //Slip
else if (ode->derivative) {
else {
ode->flags|=ODEF_BUSY;
if (ode->flags&ODEF_PAUSED)
ode->base_t+=t_desired-ode->t; //Slip
else {
if (ode->derive || ode->mp_derive) {
if (ode->mp_derive)
ODEMPWake(ode);
ODEState2Internal(ode);
MemCpy(ode->initial_state,ode->state_internal,
ode->n_internal*sizeof(F64));
@@ -572,6 +645,12 @@ ode_done:
//Convenience call to set vals
ODECallDerivative(ode,ode->t,ode->state_internal,ode->DstateDt);
if (ode->mp_derive)
ODEMPSleep(ode);
}
}
ode->flags&=~ODEF_BUSY;
}
ode->base_t+=(1.0-ode->t_scale)*d;
ode=ode->next;
@@ -592,7 +671,7 @@ ode_done:
ode=task->next_ode;
while (ode!=&task->next_ode) {
if (!(ode->flags&ODEF_PAUSED) && ode->derivative) {
if (!(ode->flags&ODEF_PAUSED) && ode->derive) {
if (ode->min_tolerance!=ode->max_tolerance) {
if (d>0)
ode->tolerance_internal*=10.0`d;
+2 -1
View File
@@ -3,11 +3,12 @@ extern Bool DocEd(CDoc *doc,I64 dof_flags=0);
extern I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,
Bool exited,I64 *_has_action=NULL);
extern U0 DocFormBwd(CDoc *doc,Bool giveup=FALSE);
extern Bool DocGoToLine(CDoc *doc,I64 line_num);
extern U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
extern U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...);
extern U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...);
extern CDocEntry *DocPutS(CDoc *doc,U8 *st);
extern U8 *DocSave(CDoc *doc,I64 *_size=NULL);
extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e);
extern U8 *PopUpPickLst(U8 *lst);
extern I64 PopUpPickLst(U8 *lst);
extern I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e);
+29
View File
@@ -331,3 +331,32 @@ public Bool Type(U8 *filename,I64 trailing_new_lines=1)
{//Output txt or graphic file to command line.
return DocType(,filename,trailing_new_lines);
}
#help_index "DolDoc/File"
public U8 *DocLineRead(U8 *filename,I64 line,CTask *mem_task=NULL)
{//Extract line from stored doc file. (Slow.)
U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
if (DocGoToLine(doc,line) && doc->cur_entry->type_u8==DOCT_TEXT)
res=StrNew(doc->cur_entry->tag,mem_task);
DocDel(doc);
return res;
}
public U8 *DocLineWrite(U8 *filename,I64 line,U8 *st)
{//Write line to stored doc file. (Slow.)
U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
if (DocGoToLine(doc,line)) {
if (doc->cur_entry->type_u8==DOCT_TEXT) {
Free(doc->cur_entry->tag);
doc->cur_entry->tag=StrNew(st);
} else
DocPrint(doc,"%s",st);
DocTop(doc);
DocWrite(doc);
}
DocDel(doc);
return res;
}
+19
View File
@@ -51,6 +51,12 @@ public U8 *DocScanLine(CDoc *doc,CDocEntry *doc_e,
i+=StrLen(src);
} else if (doc_e2->type_u8==DOCT_TAB)
i++;
else if (doc_e2->type_u8==DOCT_SHIFTED_X ||
doc_e2->type_u8==DOCT_SHIFTED_Y) {
if (doc_e2->attr<0)
i++;
i+=6; //$$SY,3$$
}
doc_e2=doc_e2->next;
}
res=MAlloc(i+1);
@@ -63,6 +69,19 @@ public U8 *DocScanLine(CDoc *doc,CDocEntry *doc_e,
*dst++=*src++;
} else if (doc_e->type_u8==DOCT_TAB)
*dst++='\t';
else if (doc_e->type_u8==DOCT_SHIFTED_Y) {
*dst(U32 *)++='$$SY,';
if (doc_e->attr<0)
*dst++='-';
*dst++='0'+AbsI64(doc_e->attr); //Supposedly -7 to 7 (single digit)
*dst++='$$';
} else if (doc_e->type_u8==DOCT_SHIFTED_X) {
*dst(U32 *)++='$$SX,';
if (doc_e->attr<0)
*dst++='-';
*dst++='0'+AbsI64(doc_e->attr); //Supposedly -7 to 7 (single digit)
*dst++='$$';
}
if (doc_e==doc->cur_entry && cur_col)
*cur_col=start-res+doc->cur_col;
doc_e=doc_e->next;
+4 -4
View File
@@ -87,9 +87,9 @@ Bool PopUpCd()
}
#help_index "DolDoc/Input;Char/Lists;StdIn/DolDoc"
public U8 *PopUpPickLst(U8 *lst)
public I64 PopUpPickLst(U8 *lst)
{//Prompt for lst entry in PopUp win task.
I64 i=0;
I64 res,i=0;
CDoc *doc=DocNew;
DocPrint(doc,"$$LTBLUE$$");
while (*lst) {
@@ -101,9 +101,9 @@ public U8 *PopUpPickLst(U8 *lst)
lst+=StrLen(lst)+1;
}
DocPrint(doc,"\n$$MU,\"CANCEL\",LE=DOCM_CANCEL$$\n");
i=PopUpMenu(doc);
res=PopUpMenu(doc);
DocDel(doc);
return i;
return res;
}
#help_index "DolDoc/Input;Char/Lists;Char/Define;StdIn/DolDoc"
+1 -1
View File
@@ -23,4 +23,4 @@ extern U0 GodBiblePassage(I64 num_lines=20);
extern U0 GodBitsIns(I64 num_bits,I64 n);
extern U0 GodDoodle(U8 *hex=NULL);
extern U0 GodSong();
extern U0 GodWord(I64 bits=17,Bool show_num=FALSE);
extern U0 GodWord(I64 bits=17);
+3 -3
View File
@@ -1,6 +1,6 @@
$FG,5$$TX+CX,"The Purpose of Life"$$FG$
$WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ Pope Francis said it was "to serve the other." I am High Priest of God's official temple and I say the purpose of life is to do continual offerings to God like Cain and Abel and enjoy God's response. Francis has a charity; I have a church. Jesus said loving God was more important than loving neighbor. $LK,"Matthew,22:35-40",A="BF:Matthew,22:35-40"$ And, He did not say with half your brain behind your back.
$WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ However, Pope Francis, wrongly said it was, "to serve the other." I am High Priest of God's official temple and I say the purpose of life is to do continual offerings to God like Cain and Abel and enjoy God's response. Francis has a charity; I have a church. Jesus said loving God was more important than loving neighbor. $LK,"Matthew,22:35-40",A="BF:Matthew,22:35-40"$ And, He did not say with half your brain behind your back.
You don't know God. $LK,"1 Chronicles,28:9-9",A="BF:1 Chronicles,28:9-9"$, $LK,"Matthew,11:27-27",A="BF:Matthew,11:27-27"$, $LK,"Luke,13:25-27",A="BF:Luke,13:25-27"$, $LK,"1 Samuel,3:6-8",A="BF:1 Samuel,3:6-8"$ You must talk with God to know Him. With Samuel, supposedly, God took the initiative, but I think that is the exception. Seek the Lord by taking the initiative. $LK,"Luke,11:9-10",A="BF:Luke,11:9-10"$
@@ -8,7 +8,7 @@ There's something obviously different about people in the Bible compared to peop
You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken?
Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses comics for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4:32",A="BF:1 Kings,4:32"$
Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses comics for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4:30-32",A="BF:1 Kings,4:30-32"$
This is funny -- $LK,"Acts,2:1-13",A="BF:Acts,2:1-13"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails."
@@ -81,7 +81,7 @@ On socialism? $FG,4$"pardon_the_French, never_happy, never_enough"$FG$
On overpopulation $FG,4$"Okay church what_now whats_the_plan"$FG$
Favorite thing on TV? $FG,4$"Soap_operas"$FG$
Favorite movie? $FG,4$$TX,"Three Kings",HTML="http://www.youtube.com/watch?v=8NOAd2mldQ8"$. Also Highlander$FG$
Favorite song? $FG,4$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=qH0iFkxQba4"$
Favorite song? $FG,4$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=e0TInLOJuUM"$
God said the first bird croaked, not sung.$FG$
Favorite comic strip? $FG,4$$TX,"Prince Valiant",HTML="http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$
Shakespeare? $FG,4$had a "vile heart"$FG$
+3 -12
View File
@@ -143,19 +143,10 @@ public U8 *GodWordStr(I64 bits=17)
return NULL;
}
public U0 GodWord(I64 bits=17,Bool show_num=FALSE)
public U0 GodWord(I64 bits=17)
{//Make God pick a word. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.DD"$
I64 i;
if (god.num_words) {
i=GodBits(bits);
if (show_num)
"%05X Mod %05X = %05X (Line:%0*d):",
i,god.num_words,i%god.num_words,
ToI64(Log10(god.num_words)+1),i%god.num_words+1;
"%s ",god.words[i%god.num_words];
if (show_num)
'\n';
}
if (god.num_words)
"%s ",god.words[GodBits(bits)%god.num_words];
}
public U0 GodBiblePassage(I64 num_lines=20)
+4 -4
View File
@@ -30,9 +30,9 @@ public class CSpriteDitherColor : CSpriteBase
U16 dither_color;
};
public class CSpriteW : CSpriteBase
public class CSpriteT : CSpriteBase
{
I32 width;
I32 thick;
};
public class CSpritePt : CSpriteBase
@@ -120,7 +120,7 @@ public class CSpritePtMeshU8s : CSpriteBase
#define SPT_END 0 //$LK,"CSpriteBase",A="MN:CSpriteBase"$
#define SPT_COLOR 1 //$LK,"CSpriteColor",A="MN:CSpriteColor"$
#define SPT_DITHER_COLOR 2 //$LK,"CSpriteDitherColor",A="MN:CSpriteDitherColor"$
#define SPT_WIDTH 3 //$LK,"CSpriteW",A="MN:CSpriteW"$
#define SPT_THICK 3 //$LK,"CSpriteT",A="MN:CSpriteT"$
#define SPT_PLANAR_SYMMETRY 4 //$LK,"CSpritePtPt",A="MN:CSpritePtPt"$
#define SPT_TRANSFORM_ON 5 //$LK,"CSpriteBase",A="MN:CSpriteBase"$
#define SPT_TRANSFORM_OFF 6 //$LK,"CSpriteBase",A="MN:CSpriteBase"$
@@ -163,7 +163,7 @@ public class CSprite
CSpriteBase b;
CSpriteColor c;
CSpriteDitherColor d;
CSpriteW w;
CSpriteT t;
CSpritePt p;
CSpritePtPt pp;
CSpritePtPtAng ppa;
+48 -15
View File
@@ -2,7 +2,7 @@
Option(OPTf_WARN_HEADER_MISMATCH,OFF);
public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y)
{//2D. No clipping or transformation or pen width.
{//2D. No clipping or transformation or thick.
U8 *dst;
I32 *db;
I64 d,dist;
@@ -858,19 +858,36 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
I64 GrPutS(CDC *dc=gr.dc,I64 x,I64 y,U8 *_s)
{//Use $LK,"GrPrint",A="MN:GrPrint"$()
I64 x0,ch,res;
I64 x0,sx=0,sy=0,res;
if (!_s) return 0;
x0=x;
res=0;
while (ch=*_s++) {
if (ch=='\n') {
while (*_s) {
if (*_s=='\n') {
x=x0;
y+=FONT_HEIGHT;
} else if (ch=='\t')
_s++;
} else if (*_s=='\t') {
x=x0+CeilU64(x-x0+FONT_WIDTH,8*FONT_WIDTH);
else {
res+=GrPutChar(dc,x,y,ch);
_s++;
} else if (*_s(U32 *)=='$$SY,') {
if (_s[4]=='-') {
_s++;
sy='0'-_s[4];
} else
sy=_s[4]-'0';
_s+=6;
} else if (*_s(U32 *)=='$$SX,') {
if (_s[4]=='-') {
_s++;
sx='0'-_s[4];
} else
sx=_s[4]-'0';
_s+=6;
} else {
res+=GrPutChar(dc,x+sx,y+sy,*_s);
x+=FONT_WIDTH;
_s++;
}
}
return res;
@@ -878,20 +895,36 @@ I64 GrPutS(CDC *dc=gr.dc,I64 x,I64 y,U8 *_s)
I64 GrVPutS(CDC *dc=gr.dc,I64 x,I64 y,U8 *_s)
{//Vertical Text. Use $LK,"GrVPrint",A="MN:GrVPrint"$()
I64 y0,res;
I64 y0,sx=0,sy=0,res;
U8 buf[2];
if (!_s) return 0;
y0=y;
res=0;
buf[1]=0;
while (*buf=*_s++) {
if (*buf=='\n') {
while (*_s) {
if (*_s=='\n') {
y=y0;
x+=FONT_WIDTH;
} else if (*buf=='\t')
_s++;
} else if (*_s=='\t') {
y=y0+CeilU64(y-y0+FONT_HEIGHT,8*FONT_HEIGHT);
else {
_s++;
} else if (*_s(U32 *)=='$$SY,') {
if (_s[4]=='-') {
_s++;
sx='0'-_s[4];
} else
sx=_s[4]-'0';
_s+=6;
} else if (*_s(U32 *)=='$$SX,') {
if (_s[4]=='-') {
_s++;
sy='0'-_s[4];
} else
sy=_s[4]-'0';
_s+=6;
} else {
*buf=*_s++;
res+=GrPutS(dc,x,y,buf);
y+=FONT_HEIGHT;
}
@@ -1629,7 +1662,7 @@ gr_done:
}
public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0)
{//3D. No transformation or pen width.
{//3D. No transformation or thick.
//Returns cnt of pixs changed
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 dist,dx,dz,z,res=0,i,j,d;
@@ -1798,7 +1831,7 @@ gr_done:
}
public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0)
{//3D. No transformation or pen width.
{//3D. No transformation or thick.
//Returns cnt of pixs changed
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 dist,dy,dz,z,res=0,i,j,d;
+8 -8
View File
@@ -92,7 +92,7 @@ public I64 GrRect3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,I64 w,I64 h)
public U0 GrBorder(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2,
I64 step=1,I64 start=0)
{//2D. Transformation with pen width.
{//2D. Transformation with thick.
//Can be used with ROPF_DITHER+WHITE<<16+BLACK for dotted rect.
GrLine3(dc,x1,y1,0,x2,y1,0,step,start);
GrLine3(dc,x2,y1,0,x2,y2,0,step,start);
@@ -102,7 +102,7 @@ public U0 GrBorder(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2,
public Bool GrArrow3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,
I64 x2,I64 y2,I64 z2,F64 w=2.75,I64 step=1,I64 start=0)
{//3D. Transformation with pen width.
{//3D. Transformation with thick.
I64 _x1,_y1,_z1,_x2,_y2,_z2,dx,dy;
F64 d;
Bool res=FALSE,was_transform=FALSE,was_symmetry=FALSE;
@@ -121,7 +121,7 @@ public Bool GrArrow3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,
res=Line(dc,_x1,_y1,_z1,_x2,_y2,_z2,&GrPlot3,step,start);
dx=_x2-_x1; dy=_y2-_y1;
if (d=Sqrt(dx*dx+dy*dy)) {
d=w*dc->pen_width/d;
d=w*dc->thick/d;
res|=Line(dc,_x2-dx*d+dy*d+0.5,_y2-dy*d-dx*d+0.5,_z2,
_x2,_y2,_z2,&GrPlot3,step);
res|=Line(dc,_x2-dx*d-dy*d+0.5,_y2-dy*d+dx*d+0.5,_z2,
@@ -134,7 +134,7 @@ public Bool GrArrow3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,
res|=Line(dc,x1,y1,z1,x2,y2,z2,&GrPlot3,step,start);
dx=x2-x1; dy=y2-y1;
if (d=Sqrt(dx*dx+dy*dy)) {
d=w*dc->pen_width/d;
d=w*dc->thick/d;
res|=Line(dc,x2-dx*d+dy*d+0.5,y2-dy*d-dx*d+0.5,z2,
x2,y2,z2,&GrPlot3,step);
res|=Line(dc,x2-dx*d-dy*d+0.5,y2-dy*d+dx*d+0.5,z2,
@@ -299,7 +299,7 @@ public U0 DrawStdMs(CDC *dc,I64 x,I64 y)
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.HC"$.
//Called by $LK,"DrawMs",A="MN:DrawMs"$() which is
//called by $LK,"WinFinalUpdate",A="MN:WinFinalUpdate"$().
dc->pen_width=1;
dc->thick=1;
dc->flags&=~(DCF_TRANSFORMATION|DCF_SYMMETRY);
GrArrow3(dc,x+8,y+8,0,x,y,0);
}
@@ -308,16 +308,16 @@ gr.fp_draw_ms=&DrawStdMs;
public U0 DrawWaitMs(CDC *dc,I64 x,I64 y)
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.HC"$.
I64 old_pen_width=dc->pen_width;
I64 old_pen_width=dc->thick;
CColorROPU32 old_color=dc->color;
dc->pen_width=3;
dc->thick=3;
dc->color=LTRED;
GrCircle3(dc,x,y,0,7);
GrLine3(dc,x-6,y+6,0,x+6,y-6,0);
dc->color=RED;
GrCircle(dc,x,y,7);
GrLine(dc,x-6,y+6,x+6,y-6);
dc->pen_width=old_pen_width;
dc->thick=old_pen_width;
dc->color=old_color;
}
+4 -4
View File
@@ -46,7 +46,7 @@ public I64 Mat4x4NormSqr65536(I64 *r)
public U0 DCMat4x4Set(CDC *dc=NULL,I64 *r)
{//Set device context's rot matrix. Will be $LK,"Free",A="MN:Free"$d() in $LK,"DCDel",A="MN:DCDel"$().Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
//The main purpose is to set matrix norm for pen width scaling.
//The main purpose is to set matrix norm for thick scaling.
//NULL as dc means gr.dc
if (!dc) dc=gr.dc;
dc->r=r;
@@ -95,7 +95,7 @@ public U0 DCLighting(CDC *dc,
//TempleOS will generate a random U16
//and compare to dither_probability_u16 and
//will pick from two colors.
//Probability dithering does not work with pen_width>1 at this time.
//Probability dithering does not work with thick>1 at this time.
if (color.c0.rop&ROPBF_TWO_SIDED) {
color.c0.rop&=~ROPBF_TWO_SIDED;
i=AbsI64(i)<<1;
@@ -137,7 +137,7 @@ public U0 DCRst(CDC *dc)
dc->color2=BLACK;
dc->bkcolor=BLACK;
dc->collision_cnt=0;
dc->pen_width=1;
dc->thick=1;
dc->ls.x=37837; //1<<16/Sqrt(3)
dc->ls.y=37837;
dc->ls.z=37837;
@@ -365,7 +365,7 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL)
MemCpy(res->body,ptr,body_size);
ptr+=body_size;
}
res->pen_width=1;
res->thick=1;
res->r=Mat4x4IdentNew(task);
res->r_norm.u32[1]=1;
res->dc_signature=DCS_SIGNATURE_VAL;
+3
View File
@@ -3,3 +3,6 @@ extern U8 *GrBitMap4ToBitMap8(U8 *dst,U8 *src,I64 src_size,I64 bkcolor);
extern I64 GrBlot3(CDC *dc,I64 x1,I64 y1,I64 z1,CDC *img);
extern I64 *Mat4x4New(I64 *src,CTask *mem_task=NULL);
extern U8 *SpriteQue2Sprite(CSprite *head,I64 *_size=NULL);
extern CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
I64 x=0,I64 y=0,CColorROPU32 *_color=NULL,I64 *_thick=NULL,
I64 *_xx=NULL,I64 *_yy=NULL);
+2 -2
View File
@@ -4,7 +4,7 @@ U0 GrInit1()
{
DefineLstLoad("ST_SPRITE_ELEM_TYPES",
"End\0Color\0Dither Color\0"
"Width\0Planar Symmetry\0Transform On\0Transform Off\0Shift\0"
"Thick\0Planar Symmetry\0Transform On\0Transform Off\0Shift\0"
"Point\0PolyPoint\0Line\0PolyLine\0Rect\0Rotated Rect\0"
"Circle\0Ellipse\0Polygon\0BSpline2\0BSpline2 Closed\0"
"BSpline3\0BSpline3 Closed\0"
@@ -12,7 +12,7 @@ U0 GrInit1()
"Arrow\0Text\0Text Box\0Text Diamond\0");
DefineLstLoad("ST_SPRITE_ELEM_CODES",
"End\0Color\0Color\0"
"Width\0PlanarSymmetry\0Transform\0Transform\0Shift\0"
"Thick\0PlanarSymmetry\0Transform\0Transform\0Shift\0"
"Pt\0PolyPt\0Line\0PolyLine\0Rect\0Rect\0"
"Circle\0Ellipse\0Polygon\0BSpline2\0BSpline2\0BSpline3\0BSpline3\0"
"FloodFill\0FloodFill\0BitMap\0Mesh\0Mesh\0"
+7 -7
View File
@@ -160,15 +160,15 @@ public I64 *Mat4x4Scale(I64 *m,F64 s)
return m;
}
public U0 DCPenWidthScale(CDC *dc=gr.dc)
{//Scale device context's pen width by norm of transformation.
public U0 DCThickScale(CDC *dc=gr.dc)
{//Scale device context's thick by norm of transformation.
I64 d;
if (dc->flags&DCF_TRANSFORMATION) {
if (dc->pen_width) {
d=dc->pen_width*dc->r_norm+0x80000000; //Round
dc->pen_width=d.i32[1];
if (dc->pen_width<1)
dc->pen_width=1;
if (dc->thick) {
d=dc->thick*dc->r_norm+0x80000000; //Round
dc->thick=d.i32[1];
if (dc->thick<1)
dc->thick=1;
}
}
}
+37 -37
View File
@@ -49,7 +49,7 @@ Bool DCClipLine(CDC *dc=gr.dc,I64 *x1,I64 *y1,I64 *x2,I64 *y2,
}
public Bool GrPlot(CDC *dc=gr.dc,I64 x,I64 y)
{//2D. Clipping but No transformation or pen width.
{//2D. Clipping but No transformation or thick.
I32 *db=dc->depth_buf;
CTask *win_task;
CColorROPU32 old_color;
@@ -79,7 +79,7 @@ public Bool GrPlot(CDC *dc=gr.dc,I64 x,I64 y)
}
Bool GrPlot1(CDC *dc=gr.dc,I64 x,I64 y)
{//Clipping but No transformation or pen width, called with db_z set
{//Clipping but No transformation or thick, called with db_z set
CTask *win_task;
CColorROPU32 old_color;
if (dc->brush) {
@@ -410,7 +410,7 @@ public I64 GrFillCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter)
}
public Bool GrPlot3B(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
{//3D. Clipping and transformation but no pen_width.
{//3D. Clipping and transformation but no thick.
I64 _x,_y,_z;
Bool was_transform=FALSE,was_symmetry=FALSE;
if (dc->flags & DCF_TRANSFORMATION) {
@@ -439,7 +439,7 @@ gr_done:
}
public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
{//3D. Clipping and transformation and pen width.
{//3D. Clipping and transformation and thick.
I64 _x,_y,_z,w,dist;
CColorROPU32 old_color=dc->color;
Bool record,was_transform=FALSE,was_symmetry=FALSE;
@@ -458,57 +458,57 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
if (dc->flags&DCF_JUST_MIRROR)
goto gr_done;
}
w=dc->pen_width>>1;
w=dc->thick>>1;
dc->db_z=z;
if (dc->brush || w<=0)
GrPlot1(dc,x,y);
else if (dc->pen_width<GR_PEN_BRUSHES_NUM) {
else if (dc->thick<GR_PEN_BRUSHES_NUM) {
if (dc->color.c0.rop!=ROPB_COLLISION)
dc->color.c0.rop=ROPB_MONO;
if (dc->depth_buf) {
if (dc->color.c1.rop&ROPBF_DITHER) {
dc->color.c1.rop=dc->color.c0.rop;
if (((x-w)^(y-w))&1) {
record=GrBlot3(dc,x-w,y-w,z,gr.odd_pen_brushes[dc->pen_width]);
record=GrBlot3(dc,x-w,y-w,z,gr.odd_pen_brushes[dc->thick]);
dc->color.c0=dc->color.c1;
record=GrBlot3(dc,x-w,y-w,z,gr.even_pen_brushes[dc->pen_width]);
record=GrBlot3(dc,x-w,y-w,z,gr.even_pen_brushes[dc->thick]);
} else {
record=GrBlot3(dc,x-w,y-w,z,gr.even_pen_brushes[dc->pen_width]);
record=GrBlot3(dc,x-w,y-w,z,gr.even_pen_brushes[dc->thick]);
dc->color.c0=dc->color.c1;
record=GrBlot3(dc,x-w,y-w,z,gr.odd_pen_brushes[dc->pen_width]);
record=GrBlot3(dc,x-w,y-w,z,gr.odd_pen_brushes[dc->thick]);
}
} else {
if (dc->color.c0.rop==ROPB_COLLISION) {
if (dc->color.c0.color!=dc->bkcolor.c0.color &&
dc->color.c0.color!=TRANSPARENT)
record=GrBlot3(dc,x-w,y-w,z,
gr.collision_pen_brushes[dc->pen_width]);
gr.collision_pen_brushes[dc->thick]);
else
record=FALSE;
} else
record=GrBlot3(dc,x-w,y-w,z,gr.pen_brushes[dc->pen_width]);
record=GrBlot3(dc,x-w,y-w,z,gr.pen_brushes[dc->thick]);
}
} else {
if (dc->color.c1.rop&ROPBF_DITHER) {
dc->color.c1.rop=dc->color.c0.rop;
if (((x-w)^(y-w))&1) {
record=GrBlot(dc,x-w,y-w,gr.odd_pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.odd_pen_brushes[dc->thick]);
dc->color.c0=dc->color.c1;
record=GrBlot(dc,x-w,y-w,gr.even_pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.even_pen_brushes[dc->thick]);
} else {
record=GrBlot(dc,x-w,y-w,gr.even_pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.even_pen_brushes[dc->thick]);
dc->color.c0=dc->color.c1;
record=GrBlot(dc,x-w,y-w,gr.odd_pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.odd_pen_brushes[dc->thick]);
}
} else {
if (dc->color.c0.rop==ROPB_COLLISION) {
if (dc->color.c0.color!=dc->bkcolor.c0.color &&
dc->color.c0.color!=TRANSPARENT)
record=GrBlot(dc,x-w,y-w,gr.collision_pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.collision_pen_brushes[dc->thick]);
else
record=FALSE;
} else
record=GrBlot(dc,x-w,y-w,gr.pen_brushes[dc->pen_width]);
record=GrBlot(dc,x-w,y-w,gr.pen_brushes[dc->thick]);
}
}
if (record) {
@@ -525,7 +525,7 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
if (dc->flags & DCF_RECORD_EXTENTS) {
if (x-w<dc->min_x) dc->min_x=x-w;
if (y-w<dc->min_y) dc->min_y=y-w;
if (dc->pen_width & 1) {
if (dc->thick & 1) {
if (x+w>dc->max_x) dc->max_x=x+w;
if (y+w>dc->max_y) dc->max_y=y+w;
} else {
@@ -535,7 +535,7 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
}
}
} else
GrFillCircle(dc,x,y,dc->db_z,dc->pen_width);
GrFillCircle(dc,x,y,dc->db_z,dc->thick);
gr_done:
dc->color=old_color;
if (was_transform)
@@ -615,7 +615,7 @@ public Bool GrRegPoly(CDC *dc=gr.dc,
I64 step=1,
F64 start_radians=0,
F64 len_radians=2*ã)
{//2D. Clipping but no transform or pen width.
{//2D. Clipping but no transform or thick.
Bool res;
I32 *db=dc->depth_buf;
dc->depth_buf=NULL;
@@ -626,22 +626,22 @@ public Bool GrRegPoly(CDC *dc=gr.dc,
}
public Bool Gr2Bezier(CDC *dc=gr.dc,CD3I32 *ctrl)
{//2nd order. Clipping but no transform or pen width.
{//2nd order. Clipping but no transform or thick.
return Bezier2(dc,ctrl,&GrLinePlot);
}
public Bool Gr3Bezier(CDC *dc=gr.dc,CD3I32 *ctrl)
{//3rd order. Clipping but no transform or pen width.
{//3rd order. Clipping but no transform or thick.
return Bezier3(dc,ctrl,&GrLinePlot);
}
public Bool Gr2BSpline(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE)
{//2nd order. Clipping but no transform or pen width.
{//2nd order. Clipping but no transform or thick.
return BSpline2(dc,ctrl,cnt,&GrLinePlot,closed);
}
public Bool Gr3BSpline(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE)
{//3rd order. Clipping but no transform or pen width.
{//3rd order. Clipping but no transform or thick.
return BSpline3(dc,ctrl,cnt,&GrLinePlot,closed);
}
@@ -769,7 +769,7 @@ I64 GrLineFat3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
public Bool GrLine3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
I64 step=1,I64 start=0)
{//3D. Transformation with pen width.
{//3D. Transformation with thick.
I64 _x1,_y1,_z1,_x2,_y2,_z2;
Bool res=FALSE,was_transform=FALSE,was_symmetry=FALSE;
if (dc->flags & DCF_TRANSFORMATION) {
@@ -785,11 +785,11 @@ public Bool GrLine3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
DCReflect(dc,&_x2,&_y2,&_z2);
dc->flags&=~DCF_SYMMETRY;
if (step==1 && !dc->brush) {
if (!start && dc->pen_width<2 && !dc->depth_buf) {//TODO: clip z depbuf
if (!start && dc->thick<2 && !dc->depth_buf) {//TODO: clip z depbuf
if (DCClipLine(dc,&_x1,&_y1,&_x2,&_y2))
res=Line(dc,_x1,_y1,0,_x2,_y2,0,&GrLinePlot0,step,start);
} else {
if (GrLineFat3(dc,_x1,_y1,_z1,_x2,_y2,_z2,dc->pen_width,start))
if (GrLineFat3(dc,_x1,_y1,_z1,_x2,_y2,_z2,dc->thick,start))
res=TRUE;
}
} else
@@ -799,11 +799,11 @@ public Bool GrLine3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
goto gr_done;
}
if (step==1 && !dc->brush) {
if (!start && dc->pen_width<2 && !dc->depth_buf) {//TODO: clip z depbuf
if (!start && dc->thick<2 && !dc->depth_buf) {//TODO: clip z depbuf
if (DCClipLine(dc,&x1,&y1,&x2,&y2))
res|=Line(dc,x1,y1,0,x2,y2,0,&GrLinePlot0,step,start);
} else {
if (GrLineFat3(dc,x1,y1,z1,x2,y2,z2,dc->pen_width,start))
if (GrLineFat3(dc,x1,y1,z1,x2,y2,z2,dc->thick,start))
res=TRUE;
}
} else
@@ -856,7 +856,7 @@ public Bool GrEllipse3(CDC *dc=gr.dc,
I64 step=1,
F64 start_radians=0,
F64 len_radians=2*ã)
{//3D. Transformation with pen width.
{//3D. Transformation with thick.
Bool res;
I64 x,y,z,xx,yy,zz;
F64 m1,arg1,m2,arg2,s,c;
@@ -905,7 +905,7 @@ public Bool GrEllipse3(CDC *dc=gr.dc,
public Bool GrCircle3(CDC *dc=gr.dc,I64 cx,I64 cy,I64 cz,I64 radius,
I64 step=1,F64 start_radians=0,F64 len_radians=2*ã)
{//3D. Transformation with pen width.
{//3D. Transformation with thick.
if (dc->flags & DCF_TRANSFORMATION)
return GrEllipse3(dc,cx,cy,cz,radius,radius,0,step,
start_radians,len_radians);
@@ -921,7 +921,7 @@ public Bool GrRegPoly3(CDC *dc=gr.dc,
I64 step=1,
F64 start_radians=0,
F64 len_radians=2*ã)
{//3D. Clipping and transform and pen width.
{//3D. Clipping and transform and thick.
Bool res;
I64 x,y,z,xx,yy,zz;
F64 m1,arg1,m2,arg2,s,c;
@@ -1215,7 +1215,7 @@ Option(OPTf_WARN_HEADER_MISMATCH,ON);
#help_index "Graphics"
public Bool Gr2Bezier3(CDC *dc=gr.dc,CD3I32 *ctrl)
{//2nd order. Clipping and transform and pen width.
{//2nd order. Clipping and transform and thick.
Bool res=FALSE;
I64 i,x,y,z,
old_flags=dc->flags;
@@ -1260,7 +1260,7 @@ gr_done:
}
public Bool Gr3Bezier3(CDC *dc=gr.dc,CD3I32 *ctrl)
{//3rd order. Clipping and transform and pen width.
{//3rd order. Clipping and transform and thick.
Bool res=FALSE;
I64 i,x,y,z,
old_flags=dc->flags;
@@ -1305,7 +1305,7 @@ gr_done:
}
public I64 Gr2BSpline3(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE)
{//2nd order. Clipping and transform and pen width.
{//2nd order. Clipping and transform and thick.
Bool res=FALSE;
I64 i,x,y,z,
old_flags=dc->flags;
@@ -1350,7 +1350,7 @@ gr_done:
}
public Bool Gr3BSpline3(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE)
{//3rd order. Clipping and transform and pen width.
{//3rd order. Clipping and transform and thick.
Bool res=FALSE;
I64 i,x,y,z,
old_flags=dc->flags;
+5 -5
View File
@@ -20,7 +20,7 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
{//Plot a sprite into a CDC.
CSprite *tmpg=elems-offset(CSprite.start);
I64 i,j,k,x1,y1,z1,x2,y2,
*old_r,*r2,old_flags=dc->flags,old_pen_width=dc->pen_width;
*old_r,*r2,old_flags=dc->flags,old_pen_width=dc->thick;
I32 *ptr;
CColorROPU32 old_color=dc->color;
CDC *img;
@@ -39,9 +39,9 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
tmpg->d.dither_color.u8[0]|
tmpg->d.dither_color.u8[1]<<COLORROP_BITS|ROPF_DITHER;
break;
case SPT_WIDTH:
dc->pen_width=tmpg->w.width;
DCPenWidthScale(dc);
case SPT_THICK:
dc->thick=tmpg->t.thick;
DCThickScale(dc);
break;
case SPT_TRANSFORM_ON:
if (!(dc->flags&DCF_TRANSFORMATION)) {
@@ -237,7 +237,7 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
}
MemCpy(&dc->sym,&old_sym,sizeof(CGrSym));
dc->color=old_color;
dc->pen_width=old_pen_width;
dc->thick=old_pen_width;
dc->flags=dc->flags&~(DCF_SYMMETRY|DCF_TRANSFORMATION) |
old_flags&(DCF_SYMMETRY|DCF_TRANSFORMATION);
}
+1
View File
@@ -23,6 +23,7 @@ Cd(__DIR__);;
#include "SpriteMesh"
#include "SpriteBitMap"
#include "SpriteCode"
#include "SpriteSideBar"
#include "SpriteEd"
#include "SpriteMain"
+16 -16
View File
@@ -42,7 +42,7 @@ GrInit4;
I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width)
{
I64 i;
I64 res;
U8 *st1,*st2,buf[STR_LEN];
CDoc *doc=DocNew;
@@ -86,9 +86,9 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width)
"$$MU-UL,\"Exit Sprite\",LE=SPBM_EXIT$$\n"
"$$MU-UL,\"Abort Sprite\",LE=DOCM_CANCEL$$\n"
"\nRight-Click to get back to this menu.",st1,st2,width);
i=PopUpMenu(doc);
res=PopUpMenu(doc);
DocDel(doc);
return i;
return res;
}
U0 GrBitMapEdPrepPersistentDC(CDC *dc,I64 xx1,I64 yy1,CDC *img)
@@ -219,7 +219,7 @@ I64 SpriteBitMapEd(CDoc *,CDocEntry *doc_e,CDC *dc,I64 *_xx1,I64 *_yy1,
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
dc->color=ROPF_DITHER+WHITE<<16+BLACK;
dc->pen_width=1;
dc->thick=1;
GrBorder(dc,xx1-1,yy1-1,xx2,yy2);//This is done little bit too often.
while (msg_code=ScanMsg(&arg1,&arg2,1<<MSG_MS_L_DOWN|1<<MSG_MS_L_UP|
@@ -308,7 +308,7 @@ bm_menu:
if (i>=0) color=i;
goto bm_menu;
case SPBM_WIDTH:
i=PopUpRangeI64(1,16,1,"Pen Width\n");
i=PopUpRangeI64(1,16,1,"Thick\n");
if (i>=0) width=i;
goto bm_menu;
case SPBM_UNDO:
@@ -357,7 +357,7 @@ bm_menu:
switch (mode) {
case SPBM_PT:
img->color=color;
img->pen_width=width;
img->thick=width;
GrPlot3(img,arg1-xx1,arg2-yy1,0);
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
break;
@@ -367,7 +367,7 @@ bm_menu:
x1=arg1; y1=arg2;
down=TRUE;
dc->color=color;
dc->pen_width=width;
dc->thick=width;
case SPBM_LINE:
GrLine3(dc,x1,y1,0,arg1,arg2,0);
break;
@@ -383,7 +383,7 @@ bm_menu:
case SPBM_COPY:
case SPBM_DELETE:
dc->color=ROPF_DITHER+WHITE<<16+BLACK;
dc->pen_width=1;
dc->thick=1;
GrBorder(dc,x1,y1,x1,y1);
break;
end:
@@ -434,7 +434,7 @@ bm_menu:
x1=arg1; y1=arg2;
down=TRUE;
dc->color=color;
dc->pen_width=width;
dc->thick=width;
GrLine3(dc,x1,y1,0,arg1,arg2,0);
}
break;
@@ -442,7 +442,7 @@ bm_menu:
x1=arg1; y1=arg2;
down=TRUE;
img->color=color;
img->pen_width=width;
img->thick=width;
GrLine3(img,x1-xx1,y1-yy1,0,arg1-xx1,arg2-yy1,0);
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
break;
@@ -456,7 +456,7 @@ bm_menu:
if (down) {
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
dc->color=color;
dc->pen_width=width;
dc->thick=width;
if (mode==SPBM_ARROW)
GrArrow3(dc,x1,y1,0,arg1,arg2,0);
else
@@ -503,7 +503,7 @@ bm_menu:
y22=y1;
}
dc->color=ROPF_DITHER+WHITE<<16+BLACK;
dc->pen_width=1;
dc->thick=1;
GrBorder(dc,x11,y11,x22,y22);
}
break;
@@ -511,7 +511,7 @@ bm_menu:
if (down) {
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
dc->color=color;
dc->pen_width=width;
dc->thick=width;
GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(arg1-x1)+SqrI64(arg2-y1)));
}
break;
@@ -549,7 +549,7 @@ bm_menu:
case SPBM_POLYPT:
if (down) {
img->color=color;
img->pen_width=width;
img->thick=width;
GrLine3(img,x1-xx1,y1-yy1,0,arg1-xx1,arg2-yy1,0);
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
x1=arg1; y1=arg2;
@@ -564,7 +564,7 @@ bm_menu:
case SPBM_POLYPT:
case SPBM_POLYLINE:
img->color=color;
img->pen_width=width;
img->thick=width;
if (mode==SPBM_ARROW)
GrArrow3(img,x1-xx1,y1-yy1,0,arg1-xx1,arg2-yy1,0);
else
@@ -621,7 +621,7 @@ bm_menu:
goto bm_menu;
case SPBM_CIRCLE:
img->color=color;
img->pen_width=width;
img->thick=width;
GrCircle3(img,x1-xx1,y1-yy1,0,
Sqrt(SqrI64(arg1-x1)+SqrI64(arg2-y1)));
down=FALSE;
+5 -5
View File
@@ -51,8 +51,8 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tmpg)
case SPT_CIRCLE:
DocPrint(doc,"{(%d,%d):%d}",tmpg->pr.x1,tmpg->pr.y1,tmpg->pr.radius);
break;
case SPT_WIDTH:
DocPrint(doc,"{%d}",tmpg->w.width);
case SPT_THICK:
DocPrint(doc,"{%d}",tmpg->t.thick);
break;
case SPT_ELLIPSE:
DocPrint(doc,"{(%d,%d):(%d,%d),%0.4f}",tmpg->pwha.x1,tmpg->pwha.y1,
@@ -280,10 +280,10 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type)
else
g.type=SPT_FLOOD_FILL;
break;
case SPT_WIDTH:
case SPT_THICK:
Lex(cc); //Skip {
g.w.width=LexExpressionI64(cc);
g.type=SPT_WIDTH;
g.t.thick=LexExpressionI64(cc);
g.type=SPT_THICK;
break;
case SPT_CIRCLE:
Lex(cc); //Skip {
+12 -111
View File
@@ -1,11 +1,11 @@
#help_index "Graphics/Sprite;Sprites"
CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
I64 x=0,I64 y=0,CColorROPU32 *_color=NULL,I64 *_width=NULL,
I64 x=0,I64 y=0,CColorROPU32 *_color=NULL,I64 *_thick=NULL,
I64 *_xx=NULL,I64 *_yy=NULL)
{
CSprite *res=head->next;
I64 width=1,xx=0,yy=0;
I64 thick=1,xx=0,yy=0;
CColorROPU32 color=BLACK;
if (dc) DCRst(dc);
while (elem_num-->0 && res!=head) {
@@ -19,9 +19,9 @@ CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
res->d.dither_color.u8[1]<<COLORROP_BITS|ROPF_DITHER;
if (dc) dc->color=color;
break;
case SPT_WIDTH:
width=res->w.width;
if (dc) dc->pen_width=width;
case SPT_THICK:
thick=res->t.thick;
if (dc) dc->thick=thick;
break;
case SPT_SHIFT:
xx+=res->p.x1;
@@ -43,7 +43,7 @@ CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
res=res->next;
}
if (_color) *_color=color;
if (_width) *_width=width;
if (_thick) *_thick=thick;
if (_xx) *_xx=xx;
if (_yy) *_yy=yy;
return res;
@@ -380,9 +380,9 @@ U0 SpriteTransformQue(CSprite *head,I64 *r)
while (tmpg!=head) {
if (Bt(&tmpg->type,SPf_SEL))
switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_WIDTH:
tmpg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536;
if (tmpg->w.width<0) tmpg->w.width=0;
case SPT_THICK:
tmpg->t.thick*=Sqrt(Mat4x4NormSqr65536(r))/65536;
if (tmpg->t.thick<0) tmpg->t.thick=0;
break;
case SPT_PLANAR_SYMMETRY:
case SPT_ARROW:
@@ -575,105 +575,6 @@ I64 SpriteQueSelAll(CSprite *head,Bool val=TRUE)
return res;
}
CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num)
{//For the side-bar
CSprite *res=CAlloc(sizeof(CSprite)),*tmpg;
CDocEntry *doc_e=doc->head.next;
Bool found=FALSE;
I64 num=0;
QueInit(res);
while (doc_e!=doc) {
if (doc_e->type_u8==DOCT_MENU_VAL && doc_e->left_exp>=0) {
tmpg=SpriteSetSettings(,head,doc_e->left_exp);
if (tmpg!=head) {
tmpg=MAllocIdent(tmpg);
BEqu(&tmpg->type,SPf_SEL,Bt(&doc_e->type,DOCEt_SEL));
if (*_cur_elem_num==doc_e->left_exp) {
*_cur_elem_num=num;
found=TRUE;
}
QueIns(tmpg,res->last);
num++;
}
}
doc_e=doc_e->next;
}
if (!found)
*_cur_elem_num=num;
QueDel(head);
Free(head);
return res;
}
U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num)
{
CSprite *tmpg;
CDocEntry *doc_cur_e=NULL,*doc_e;
I64 cur_elem_num=0;
U8 *st;
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n"
"$$LK+PU+CX,\"Click for Help\","
"A=\"FI:::/Doc/SpriteSideBar.DD.Z\"$$\n\n");
tmpg=head->next;
while (tmpg!=head) {
st=SpriteElem2Summary(tmpg);
if (cur_elem_num==old_num) {
DocPrint(doc,"$$LTRED$$");
doc_e=doc_cur_e=DocPrint(doc,"$$MU-UL,\"%Q\",LE=%d$$\n",st,cur_elem_num++);
} else {
DocPrint(doc,"$$LTBLUE$$");
doc_e=DocPrint(doc,"$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++);
}
BEqu(&doc_e->de_flags,DOCEf_SEL,Bt(&tmpg->type,&SPf_SEL));
BEqu(&doc_e->type,DOCEt_SEL,Bt(&tmpg->type,SPf_SEL));
Free(st);
tmpg=tmpg->next;
}
if (cur_elem_num==old_num) {
DocPrint(doc,"$$LTRED$$");
doc_cur_e=DocPrint(doc,"$$MU-UL,\"END\",LE=%d$$\n",cur_elem_num);
} else {
DocPrint(doc,"$$LTBLUE$$");
DocPrint(doc,"$$MU-UL,\"END\",LE=%d$$\n",cur_elem_num);
}
if (doc_cur_e)
doc->cur_entry=doc_cur_e;
}
U0 SpriteSideBarTask2(CTask *grand_parent)
{
I64 w,h;
CTask *parent=Fs->parent_task,*pu_task;
while (TRUE) {
pu_task=grand_parent->popup_task;
if (TaskValidate(pu_task)) {
w=parent->win_right-parent->win_left;
WinHorz(pu_task->win_right+2,pu_task->win_right+2+w,parent);
h=parent->win_bottom-parent->win_top;
WinVert(pu_task->win_top,pu_task->win_top+h,parent);
}
Refresh;
}
}
U0 SpriteSideBarTask(CTask *parent,CSprite **_head,I64 *_cur_elem_num)
{
CDocEntry *doc_e;
CDoc *doc=DocPut;
Spawn(&SpriteSideBarTask2,parent,"CSpriteTask",,Fs);
doc->flags|=DOCF_SIZE_MIN|DOCF_FORM;
while (TRUE) {
SpriteSideBarPickNew(doc,*_head,*_cur_elem_num);
DocHighlightCursor(,doc);
View;
doc_e=doc->cur_entry;
if (doc_e->type_u8==DOCT_MENU_VAL)
*_cur_elem_num=doc_e->left_exp;
*_head=SpriteSideBar2SpriteQue(doc,*_head,_cur_elem_num);
DocClear(doc);
}
}
Bool SpriteEdText(CSprite **_head,I64 *_cur_elem_num)
{
Bool res;
@@ -741,7 +642,7 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
{
U8 *st;
CTask *pu_task;
I64 i;
I64 res;
CDoc *doc=DocNew;
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n"
@@ -764,13 +665,13 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
st=MStrPrint("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_head,_cur_elem_num);
PopUp(st,NULL,&pu_task);
Free(st);
i=PopUpMenu(doc);
res=PopUpMenu(doc);
if (TaskValidate(pu_task)) {
*_head=SpriteSideBar2SpriteQue(DocPut(pu_task),*_head,_cur_elem_num);
Kill(pu_task);
}
DocDel(doc);
return i;
return res;
}
#define SPEDT_SIMPLE_PT 0
+30 -30
View File
@@ -10,7 +10,7 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num,
CDoc *_doc,CDocEntry *_doc_e)
{
CTask *pu_task;
I64 i;
I64 res;
CDoc *doc=DocNew;
CDocEntry *doc_de;
U8 *st;
@@ -23,7 +23,7 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num,
DocPrint(doc,"$$MU-UL,\"Color (4-bit)\",LE=SPT_COLOR$$\n"
"$$MU-UL,\"Dither Color (4-bit)\",LE=SPT_DITHER_COLOR$$\n"
"$$MU-UL,\"Width\",LE=SPT_WIDTH$$\n"
"$$MU-UL,\"Thick\",LE=SPT_THICK$$\n"
"$$MU-UL,\"Planar Symmetry\",LE=SPT_PLANAR_SYMMETRY$$\n"
"\n$$MU-UL,\"Point\",LE=SPT_PT$$\n"
"$$MU-UL,\"Line\",LE=SPT_LINE$$\n"
@@ -63,7 +63,7 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num,
st=MStrPrint("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_head,_cur_elem_num);
PopUp(st,NULL,&pu_task);
Free(st);
i=PopUpMenu(doc);
res=PopUpMenu(doc);
if (TaskValidate(pu_task)) {
*_head=SpriteSideBar2SpriteQue(DocPut(pu_task),*_head,_cur_elem_num);
Kill(pu_task);
@@ -72,12 +72,12 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num,
_doc_e->tag=StrNew(doc_de->data,_doc->mem_task);
_doc->cur_col=0;
DocDel(doc);
return i;
return res;
}
Bool PopUpExtents(I64 *_x1,I64 *_x2,I64 *_y1,I64 *_y2)
{
I64 i;
I64 res;
CDoc *doc=DocNew;
CDocEntry *doc_e;
doc_e=DocPrint(doc," $$DA,A=\"x1:%%d\"$$\n");
@@ -95,22 +95,22 @@ Bool PopUpExtents(I64 *_x1,I64 *_x2,I64 *_y1,I64 *_y2)
DocPrint(doc," $$BT,\"Use These Extents\",LE=TRUE$$");
DocPrint(doc,"$$CM,3,0$$$$BT,\"Drag-Out New Extents\",LE=FALSE$$\n\n");
do i=PopUpMenu(doc);
while (i!=FALSE && i!=TRUE);
do res=PopUpMenu(doc);
while (res!=FALSE && res!=TRUE);
DocDel(doc);
return i;
return res;
}
U0 SpriteScrnInit(CDC *dc,I64,I64)
{
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 xx,yy,old_pen_width=dc->pen_width;
I64 xx,yy,old_pen_width=dc->thick;
CColorROPU32 old_color=dc->color;
Refresh;
DCFill(dc);
if (dc->flags&DCF_SYMMETRY) {
dc->flags&=~DCF_SYMMETRY;
dc->pen_width=1;
dc->thick=1;
xx=dc->sym.sny*8192;
yy=-dc->sym.snx*8192;
dc->color=RED;
@@ -125,7 +125,7 @@ U0 SpriteScrnInit(CDC *dc,I64,I64)
dc->flags|=DCF_SYMMETRY;
}
dc->color=old_color;
dc->pen_width=old_pen_width;
dc->thick=old_pen_width;
}
CSprite *SMLine(CDC *dc,I64 x,I64 y,I64 arg1,I64 arg2,CColorROPU32 color)
@@ -176,10 +176,10 @@ CSprite *SMPlanarSymmetry(CDC *dc,I64 x,I64 y,I64 arg1,I64 arg2)
{
I64 msg_code,x1=arg1,y1=arg2,x2=arg1,y2=arg2,old_width,old_flags;
CSprite *res;
old_width=dc->pen_width;
old_width=dc->thick;
old_flags=dc->flags;
dc->flags&=~DCF_SYMMETRY;
dc->pen_width=1;
dc->thick=1;
do {
dc->color=ROPF_DITHER+WHITE<<16+BLACK;
GrLine3(dc,x1,y1,0,x2,y2,0);
@@ -188,7 +188,7 @@ CSprite *SMPlanarSymmetry(CDC *dc,I64 x,I64 y,I64 arg1,I64 arg2)
x2=arg1; y2=arg2;
} while (msg_code!=MSG_MS_L_UP);
dc->flags=old_flags&DCF_SYMMETRY|dc->flags&~DCF_SYMMETRY;
dc->pen_width=old_width;
dc->thick=old_width;
res=CAlloc(SpriteElemQuedBaseSize(SPT_PLANAR_SYMMETRY));
res->type=SPT_PLANAR_SYMMETRY;
res->pp.x1=x1-x;
@@ -238,8 +238,8 @@ CSprite *SMScrnBitMap(I64 eletype,CDC *dc,CDC *dc2,I64 x,I64 y,
xx1=arg1,yy1=arg2,xx2=arg1,yy2=arg2,old_width;
CDC *dc3,*img;
CSprite *res;
old_width=dc2->pen_width;
dc2->pen_width=1;
old_width=dc2->thick;
dc2->thick=1;
do {
dc2->color=ROPF_DITHER+WHITE<<16+BLACK;
GrBorder(dc2,xx1+Fs->pix_left+Fs->scroll_x,yy1+Fs->pix_top+Fs->scroll_y,
@@ -279,7 +279,7 @@ CSprite *SMScrnBitMap(I64 eletype,CDC *dc,CDC *dc2,I64 x,I64 y,
MemCpy(&res->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1));
DCDel(img);
DCDel(dc3);
dc2->pen_width=old_width;
dc2->thick=old_width;
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS
-WIF_SELF_BORDER-WIF_SELF_GRAB_SCROLL;
return res;
@@ -596,8 +596,8 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head,
if (sel) {
xx1=arg1; yy1=arg2;
xx2=arg1; yy2=arg2;
old_width=dc->pen_width;
dc->pen_width=1;
old_width=dc->thick;
dc->thick=1;
do {
dc->color=ROPF_DITHER+WHITE<<16+BLACK;
GrBorder(dc,xx1,yy1,xx2,yy2);
@@ -615,7 +615,7 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head,
yy1=y1; yy2=y2;
}
} while (msg_code!=MSG_MS_L_UP);
dc->pen_width=old_width;
dc->thick=old_width;
}
xx2++; yy2++;
@@ -812,7 +812,7 @@ U0 SMTaskTitleSet(I64 eletype)
I64 SpriteMainEd(CDoc *doc)
{
CDocEntry *doc_ce=doc->cur_entry;
I64 res,i,x,y,arg1,arg2,xx,yy,xx1,yy1,xx2,yy2,width,eletype=SPT_MENU,
I64 res,i,x,y,arg1,arg2,xx,yy,xx1,yy1,xx2,yy2,thick,eletype=SPT_MENU,
cur_elem_num,old_border_src=Fs->border_src,old_title_src=Fs->title_src,
old_de_flags=doc_ce->de_flags;
CColorROPU32 bm_bkcolor,color;
@@ -831,7 +831,7 @@ I64 SpriteMainEd(CDoc *doc)
while (TRUE) {
insert_pt=SpriteSetSettings(dc,head,cur_elem_num,xx,yy,
&color,&width,&x,&y);
&color,&thick,&x,&y);
x+=xx; y+=yy;
DCFill;
if (eletype==SPT_MENU) {
@@ -847,7 +847,7 @@ I64 SpriteMainEd(CDoc *doc)
eletype=PopUpSpriteMain(&head,&cur_elem_num,doc,doc_ce);
xx+=StrLen(doc_ce->tag)*FONT_WIDTH;
insert_pt=SpriteSetSettings(dc,head,cur_elem_num,x,y,
&color,&width,&x,&y);
&color,&thick,&x,&y);
x+=xx; y+=yy;
SpriteEdUpdate(doc,doc_ce,head);
@@ -982,14 +982,14 @@ I64 SpriteMainEd(CDoc *doc)
Fs->win_inhibit=WIG_TASK_DFT|WIF_FOCUS_TASK_MS_L|WIF_FOCUS_TASK_MS_R|
WIF_FOCUS_TASK_BORDER-WIF_SELF_FOCUS-WIF_SELF_GRAB_SCROLL;
break;
case SPT_WIDTH:
case SPT_THICK:
doc_ce->de_flags|=DOCEF_DONT_DRAW;
i=PopUpRangeI64(1,16,1,"Pen Width\n");
i=PopUpRangeI64(1,16,1,"Thick\n");
if (i>=1) {
width=i;
tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_WIDTH));
tmpg->type=SPT_WIDTH;
tmpg->w.width=width;
thick=i;
tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_THICK));
tmpg->type=SPT_THICK;
tmpg->t.thick=thick;
QueIns(tmpg,insert_pt->last);
SpriteEdUpdate(doc,doc_ce,head);
cur_elem_num++;
@@ -1027,7 +1027,7 @@ I64 SpriteMainEd(CDoc *doc)
if (eletype!=SPT_MENU) {
insert_pt=SpriteSetSettings(dc,head,cur_elem_num,xx,yy,
&color,&width,&x,&y);
&color,&thick,&x,&y);
x+=xx; y+=yy;
SpriteScrnInit(dc,x,y);
if (eletype==SPT_EXIT) {
+2 -2
View File
@@ -800,7 +800,7 @@ U0 DrawIt(CTask *task,CDC *dc)
else
dc->color=ROP_XOR+TRANSPARENT;
GrPrint(dc,0,0,"%6.3f%% (%d,%d,%d)",e->view_scale*100,x,y,z);
dc->pen_width=1;
dc->thick=1;
dc->color&=0xF;
if (Blink(10))
dc->color^=0xF;
@@ -808,7 +808,7 @@ U0 DrawIt(CTask *task,CDC *dc)
if (e->sel_rect) {
dc->flags&=~DCF_TRANSFORMATION;
dc->pen_width=1;
dc->thick=1;
if (Blink)
dc->color=ROPF_DITHER+RED<<16+WHITE;
else
+4 -4
View File
@@ -7,7 +7,7 @@ I64 sprite_elem_base_sizes[SPT_TYPES_NUM]={
sizeof(CSpriteBase), //SPT_END
sizeof(CSpriteColor), //SPT_COLOR
sizeof(CSpriteDitherColor), //SPT_DITHER_COLOR
sizeof(CSpriteW), //SPT_WIDTH
sizeof(CSpriteT), //SPT_THICK
sizeof(CSpritePtPt), //SPT_PLANAR_SYMMETRY
sizeof(CSpriteBase), //SPT_TRANSFORM_ON
sizeof(CSpriteBase), //SPT_TRANSFORM_OFF
@@ -153,13 +153,13 @@ public U8 *SpriteElem2Summary(CSprite *tmpg)
case SPT_CIRCLE:
CatPrint(buf," (%d,%d):%dR",tmpg->pr.x1,tmpg->pr.y1,tmpg->pr.radius);
break;
case SPT_WIDTH:
CatPrint(buf," %d",tmpg->w.width);
case SPT_THICK:
CatPrint(buf," %d",tmpg->t.thick);
break;
case SPT_TEXT:
case SPT_TEXT_BOX:
case SPT_TEXT_DIAMOND:
CatPrint(buf," %d,%d:%-16tQ",tmpg->ps.x1,tmpg->ps.y1,tmpg->ps.st);
CatPrint(buf," %d,%d:%-16t$$Q",tmpg->ps.x1,tmpg->ps.y1,tmpg->ps.st);
break;
case SPT_POLYLINE:
case SPT_POLYPT:
+95
View File
@@ -0,0 +1,95 @@
#help_index "Graphics/Sprite;Sprites"
CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num)
{//For the side-bar
CSprite *res=CAlloc(sizeof(CSprite)),*tmpg;
CDocEntry *doc_e=doc->head.next;
Bool found=FALSE;
I64 num=0;
QueInit(res);
while (doc_e!=doc) {
if (doc_e->type_u8==DOCT_MENU_VAL && doc_e->left_exp>=0) {
tmpg=SpriteSetSettings(,head,doc_e->left_exp);
if (tmpg!=head) {
tmpg=MAllocIdent(tmpg);
BEqu(&tmpg->type,SPf_SEL,Bt(&doc_e->type,DOCEt_SEL));
if (*_cur_elem_num==doc_e->left_exp) {
*_cur_elem_num=num;
found=TRUE;
}
QueIns(tmpg,res->last);
num++;
}
}
doc_e=doc_e->next;
}
if (!found)
*_cur_elem_num=num;
QueDel(head);
Free(head);
return res;
}
U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num)
{
CSprite *tmpg;
CDocEntry *doc_cur_e=NULL,*doc_e;
I64 cur_elem_num=0;
U8 *st;
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n"
"$$LK+PU+CX,\"Click for Help\","
"A=\"FI:::/Doc/SpriteSideBar.DD.Z\"$$\n\n");
tmpg=head->next;
while (tmpg!=head) {
st=SpriteElem2Summary(tmpg);
if (cur_elem_num==old_num)
doc_cur_e=doc_e=
DocPrint(doc,"$$LTRED$$$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++);
else
doc_e=DocPrint(doc,"$$LTBLUE$$$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++);
BEqu(&doc_e->de_flags,DOCEf_SEL,Bt(&tmpg->type,&SPf_SEL));
BEqu(&doc_e->type,DOCEt_SEL,Bt(&tmpg->type,SPf_SEL));
Free(st);
tmpg=tmpg->next;
}
if (cur_elem_num==old_num)
doc_cur_e=DocPrint(doc,"$$LTRED$$$$MU-UL,\"END\",LE=%d$$\n",cur_elem_num);
else
DocPrint(doc,"$$LTBLUE$$$$MU-UL,\"END\",LE=%d$$\n",cur_elem_num);
if (doc_cur_e)
doc->cur_entry=doc_cur_e;
}
U0 SpriteSideBarTask2(CTask *grand_parent)
{
I64 w,h;
CTask *parent=Fs->parent_task,*pu_task;
while (TRUE) {
pu_task=grand_parent->popup_task;
if (TaskValidate(pu_task)) {
w=parent->win_right-parent->win_left;
WinHorz(pu_task->win_right+2,pu_task->win_right+2+w,parent);
h=parent->win_bottom-parent->win_top;
WinVert(pu_task->win_top,pu_task->win_top+h,parent);
}
Refresh;
}
}
U0 SpriteSideBarTask(CTask *parent,CSprite **_head,I64 *_cur_elem_num)
{
CDocEntry *doc_e;
CDoc *doc=DocPut;
Spawn(&SpriteSideBarTask2,parent,"CSpriteTask",,Fs);
doc->flags|=DOCF_SIZE_MIN|DOCF_FORM;
while (TRUE) {
SpriteSideBarPickNew(doc,*_head,*_cur_elem_num);
DocHighlightCursor(,doc);
View;
doc_e=doc->cur_entry;
if (doc_e->type_u8==DOCT_MENU_VAL)
*_cur_elem_num=doc_e->left_exp;
*_head=SpriteSideBar2SpriteQue(doc,*_head,_cur_elem_num);
DocClear(doc);
}
}
+2 -5
View File
@@ -89,7 +89,6 @@ I64 DrvsSize()
Bool MemRepTask(CTask *task,Bool override_validate=FALSE)
{
I64 i,j,k,m,n;
U8 *st;
CDoc *pdoc,*ddoc,*bdoc;
CCmpCtrl *cc;
CMathODE *o;
@@ -100,10 +99,8 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE)
return FALSE;
if (task==Fs)
task->rsp=GetRSP;
st=MStrUtil(task->task_title,SUF_REM_CTRL_CHARS|SUF_SAFE_DOLLAR);
"$$BLACK$$%-27ts#%08X$$FG$$\n$$ID,2$$",st,task;
Free(st);
"Heap\t:%010X/%010X\n",TaskMemUsed(task,override_validate),
"$$BLACK$$%-27t$$Q#%08X$$FG$$\n",task->task_title,task;
"$$ID,2$$Heap\t:%010X/%010X\n",TaskMemUsed(task,override_validate),
TaskMemAlloced(task,override_validate);
i=UnusedStk(task);
+1 -1
View File
@@ -90,7 +90,7 @@ U0 DrawWinGrid(CDC *dc)
{
F64 d;
dc->color=BLACK;
dc->pen_width=1;
dc->thick=1;
for (d=ms_grid.x_offset;d<GR_WIDTH; d+=ms_grid.x)
GrLine(dc,d,0,d,GR_HEIGHT-1);
for (d=ms_grid.y_offset;d<GR_HEIGHT;d+=ms_grid.y)
+2 -2
View File
@@ -25,13 +25,13 @@ U0 BgtAcctsUpdate()
U0 BgtAcctsWrite()
{
BgtAcctsUpdate;
StrFileWrite(BGT_ACCTS_FILE,accts_table,TRUE);
StrFileWrite(bgt_accts_file,accts_table,TRUE);
}
U0 BgtAcctsRead()
{
I64 i,max_num;
U8 *colors,**s=StrFileRead(BGT_ACCTS_FILE,&max_num,&colors,TRUE);
U8 *colors,**s=StrFileRead(bgt_accts_file,&max_num,&colors,TRUE);
StrFileDel(accts_table);
accts_table=HashTableNew(512);
accts_table_strs=0;
+4 -4
View File
@@ -5,7 +5,7 @@ U0 BgtDataRead()
I64 i,cnt,size;
U8 *b,*ptr;
I64 max_num;
U8 **s=StrFileRead(BGT_STRINGS_FILE,&max_num);
U8 **s=StrFileRead(bgt_string_file,&max_num);
MemSet(&b_head,0,sizeof(CBgtEntry));
QueInit(&b_head);
@@ -14,7 +14,7 @@ U0 BgtDataRead()
QueInit(&t_head);
t_head.b.date=Now;
if (ptr=b=FileRead(BGT_DATA_FILE,&size)) {
if (ptr=b=FileRead(bgt_data_file,&size)) {
cnt=*ptr(I64 *)++;
for (i=0;i<cnt;i++) {
tmpb=CAlloc(sizeof(CBgtEntry));
@@ -84,7 +84,7 @@ U0 BgtDataWrite()
cnt2++;
tmpt=tmpt->next;
}
StrFileWrite(BGT_STRINGS_FILE,table);
StrFileWrite(bgt_string_file,table);
StrFileDel(table);
size=sizeof(I64)*2+cnt1*BE_SIZE+cnt2*(BT_SIZE+BE_SIZE);
@@ -112,7 +112,7 @@ U0 BgtDataWrite()
tmpt=tmpt->next;
}
FileWrite(BGT_DATA_FILE,buf,size);
FileWrite(bgt_data_file,buf,size);
Free(buf);
}
+8 -2
View File
@@ -50,7 +50,7 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc)
PopUpOk( "Set the name and color of your accounts.\n"
"To delete accounts, manually edit\n"
"$$GREEN$$~/Budget/Accts.DD.Z$$FG$$.");
if (PopUpEd(BGT_ACCTS_FILE,Fs)) {
if (PopUpEd(bgt_accts_file,Fs)) {
BgtAcctsRead;
BgtRegen;
}
@@ -167,9 +167,15 @@ U0 BgtRegen()
doc->user_put_key=&BgtPutKey;
}
U0 Budget()
U0 Budget(U8 *dirname="~/Budget")
{
CDoc *pdoc,*ddoc,*old_put,*old_display;
Cd(dirname);
bgt_string_file =FileNameAbs("Strs.DD.Z");
bgt_accts_file =FileNameAbs("Accts.DD.Z");
bgt_data_file =FileNameAbs("Bgt.DATA.Z");
BgtAcctsRead;
BgtDataRead;
CBgtTemplatesExpand;
+3 -3
View File
@@ -1,6 +1,6 @@
#define BGT_STRINGS_FILE "~/Budget/Strs.DD.Z"
#define BGT_ACCTS_FILE "~/Budget/Accts.DD.Z"
#define BGT_DATA_FILE "~/Budget/Bgt.DATA.Z"
U8 *bgt_string_file;
U8 *bgt_accts_file;
U8 *bgt_data_file;
#define BE_NORMAL 0
#define BE_GAS 1
+2 -2
View File
@@ -308,7 +308,7 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->ls.y*=d;
dc->ls.z*=d;
dc->pen_width=2;
dc->thick=2;
dc->color=RED;
GrBorder(dc,COURT_BORDER,COURT_BORDER,
task->pix_width -1-COURT_BORDER,
@@ -715,9 +715,9 @@ ka_done: //Don't goto out of try
} catch
PutExcept;
SettingsPop;
MenuPop;
RegWrite("TempleOS/KeepAway","I64 best_score0=%d,best_score1=%d;\n",
best_score0,best_score1);
MenuPop;
}
Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ
·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ
+1 -1
View File
@@ -7,7 +7,7 @@ CTask *JukeReward(U8 *msg)
res->title_src=TTS_LOCKED_CONST;
doc=DocNew(,res);
DocPrint(doc,"$$WW+H,1$$%s",msg);
DocPrint(doc,"$$WW+H,1$$$$RED$$%s",msg);
buf=MStrPrint("DocEd(0x%X);",doc);
TaskExe(res,NULL,buf,1<<JOBf_EXIT_ON_COMPLETE|1<<JOBf_FREE_ON_COMPLETE);
+1 -1
View File
@@ -19,7 +19,7 @@ F64 base_compression_strength,base_tensile_strength,
base_const,base_cost;
CColorROPU32 color;
I32 pen_width;
I32 thick;
};
CMathODE *ode=NULL;
+10 -10
View File
@@ -33,7 +33,7 @@ U0 DrawIt(CTask *task,CDC *dc)
while (tmps!=&ode->next_spring) {
if (!(tmps->flags&SSF_INACTIVE)) {
dc->color=tmps->color;
dc->pen_width=tmps->pen_width;
dc->thick=tmps->thick;
GrLine3(dc,tmps->end1->x,tmps->end1->y,0,
tmps->end2->x,tmps->end2->y,0);
}
@@ -42,7 +42,7 @@ U0 DrawIt(CTask *task,CDC *dc)
if (cursor_mass) {
dc->color=RED;
dc->pen_width=2;
dc->thick=2;
GrLine3(dc,ms.pos.x-task->pix_left-task->scroll_x,
ms.pos.y-task->pix_top-task->scroll_y,0,
cursor_mass->x,cursor_mass->y,0);
@@ -137,15 +137,15 @@ U0 DrawSpring(CDC *dc,MyMass *tmpm,I64 x,I64 y)
switch (mode_bttn.state) {
case MD_CONCRETE:
dc->color=LTGRAY;
dc->pen_width=2;
dc->thick=2;
break;
case MD_STEEL:
dc->color=DKGRAY;
dc->pen_width=2;
dc->thick=2;
break;
case MD_WIRE:
dc->color=RED;
dc->pen_width=1;
dc->thick=1;
break;
}
GrLine3(dc,tmpm->x,tmpm->y,0,x,y,0);
@@ -164,7 +164,7 @@ U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2)
tmps->base_cost = 0.30*COST_SCALE;
NullSpring(tmps,1.0);
tmps->color=LTGRAY;
tmps->pen_width=2;
tmps->thick=2;
break;
case MD_STEEL:
tmps->base_const = 1.00*SPRING_SCALE;
@@ -173,7 +173,7 @@ U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2)
tmps->base_cost = 1.00*COST_SCALE;
NullSpring(tmps,1.0);
tmps->color=DKGRAY;
tmps->pen_width=2;
tmps->thick=2;
break;
case MD_WIRE:
tmps->base_const = 0.25*SPRING_SCALE;
@@ -182,7 +182,7 @@ U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2)
tmps->base_cost = 0.10*COST_SCALE;
NullSpring(tmps,WIRE_PERCENT);
tmps->color=RED;
tmps->pen_width=1;
tmps->thick=1;
tmps->flags|=SSF_NO_COMPRESSION;
break;
}
@@ -215,9 +215,9 @@ U0 AnimateTask(SpanAnimateStruct *a)
a->saved_ode=SpanSave(ode);
}
a->start_wall_t=tS;
ode->flags&=~ODEF_PAUSED;
ODEPause(ode,OFF);
} else {
ode->flags|=ODEF_PAUSED;
ODEPause(ode);
a->elapsed_t+=tS-a->start_wall_t;
}
old_run=run_bttn.state;
+1 -1
View File
@@ -1,7 +1,7 @@
CMathODE *SpanNew()
{
CMathODE *ode=ODENew(0,1e-4,ODEF_HAS_MASSES|ODEF_PAUSED);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->drag_v2=0.002;
ode->drag_v3=0.00001;
ode->acceleration_limit=5e3;
+5 -5
View File
@@ -300,7 +300,7 @@ U0 Init()
next_action_key='1';
zoom=1.0;
ode=ODENew(0,1e-4,ODEF_HAS_MASSES);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->acceleration_limit=5e3;
ode->drag_v2=0.000002;
ode->drag_v3=0.0000001;
@@ -323,7 +323,7 @@ U0 PlayShip()
I64 arg1,arg2;
F64 last_noise=0;
Bool okay;
ode->flags&=~ODEF_PAUSED;
ODEPause(ode,OFF);
MenuPush(
"File {"
" Abort(,CH_SHIFT_ESC);"
@@ -417,7 +417,7 @@ U0 EditShip()
MyMass *tmpm1=NULL,*tmpm2=NULL;
CCtrl *bt_edit_mode=CtrlBttnNew(0,5*FONT_HEIGHT+4,80,,EMD_MODES_NUM,
Define("ST_EDIT_MODES"),edit_mode_colors,&edit_mode_bttn);
ode->flags|=ODEF_PAUSED;
ODEPause(ode);
MenuPush(
"File {"
" Abort(,CH_SHIFT_ESC);"
@@ -534,7 +534,7 @@ U0 EditShip()
CenterMasses;
break;
case 'd':
ode->flags&=~ODEF_PAUSED;
ODEPause(ode,OFF);
ode->drag_v2=0.002;
ode->drag_v3=0.0001;
break;
@@ -572,7 +572,7 @@ U0 EditShip()
case MSG_KEY_UP:
switch (arg1) {
case 'd':
ode->flags|=ODEF_PAUSED;
ODEPause(ode);
ode->drag_v2=0.000002;
ode->drag_v3=0.0000001;
break;
+1 -1
View File
@@ -339,7 +339,7 @@ U0 DrawIt(CTask *task,CDC *dc)
Sprite3(dc,ls[i].x,yy,0,ls[i].img);
}
dc->pen_width=3;
dc->thick=3;
dc->color=BROWN;
GrLine3(dc,0, (finish_line-scroll_y)&(MAP_HEIGHT-1),0,
GR_WIDTH,(finish_line-scroll_y)&(MAP_HEIGHT-1),0);
Binary file not shown.
+3 -3
View File
@@ -150,10 +150,10 @@ U0 DrawRivers()
rivers[r][c]) {
RowCol2XY(&x2,&y2,r,c);
map_dc->color=LTBLUE;
map_dc->pen_width=4;
map_dc->thick=4;
GrLine3(map_dc,x1,y1,0,x2,y2,0);
map_dc->color=BLUE;
map_dc->pen_width=2;
map_dc->thick=2;
GrLine3(map_dc,x1,y1,0,x2,y2,0);
}
}
@@ -166,7 +166,7 @@ U0 DrawRoads()
I64 i,j,k,r,c;
F64 x1,y1,x2,y2;
map_dc->color=RED;
map_dc->pen_width=3;
map_dc->thick=3;
for (j=0;j<map_rows;j++)
for (i=0;i<map_cols;i++) {
if (roads[j][i]) {
+1 -1
View File
@@ -207,8 +207,8 @@ U0 ToTheFront()
ProgressBarsRst;
SettingsPop;
MenuPop;
DCDel(map_dc);
CleanUp;
MenuPop;
Seed;
}
+3 -3
View File
@@ -1317,7 +1317,7 @@ U0 InitLevel()
PlaceShip(ST_ENEMY1);
PlaceShip(ST_ENEMY2);
show_level_msg=TRUE;
ode->flags|=ODEF_PAUSED;
ODEPause(ode);
}
U0 Init()
@@ -1386,7 +1386,7 @@ U0 XCaliber()
Fs->draw_it=&DrawIt;
do {
ode=ODENew(0,0.01,ODEF_HAS_MASSES);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->min_tolerance=1e-9;
ode->drag_v3=0.00001;
Init;
@@ -1492,7 +1492,7 @@ U0 XCaliber()
ch=GetKey(&sc);
if (ch=='\n')
ch=0;
ode->flags&=~ODEF_PAUSED;
ODEPause(ode,OFF);
show_level_msg=FALSE;
} else if (game_over) {
ch=ScanChar;
Binary file not shown.
-1
View File
@@ -21,7 +21,6 @@ extern U0 StreamDir();
public extern I64 StreamExePrint(U8 *fmt,...);
public extern U0 StreamPrint(U8 *fmt,...);
public extern Bool Trace(Bool val=ON);
#help_index "Compiler/Lex"
#help_file "::/Doc/Lex"
extern U0 ClassMemberLstDel(CHashClass *c);
+1 -1
View File
@@ -7,7 +7,7 @@ Option(OPTf_WARN_DUP_TYPES,ON);
KbdTypeMatic(0);
// Las Vegas is -7 during summer, -8 during winter
local_time_offset=-8*60*60*CDATE_FREQ; //Pacific
local_time_offset=-7*60*60*CDATE_FREQ; //Pacific
// Remember you can set the time in the BIOS.
//$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale
+4 -4
View File
@@ -1,8 +1,8 @@
$MA,"Cd ",LM="Cd;Dir;\n"$$MA,"DrvC ",LM="Drv('C');\n"$$MA,"DrvD ",LM="Drv('D');\n"$$MA,"/ ",LM="Cd(\"/\");Dir;\n"$$MA,"TOS ",LM="Cd(\"/Home/TOS\");Dir;\n"$$MA,"Home ",LM="Cd(\"/Home\");Dir;\n"$$MA,"ChgDskT ",LM="DskChg('T');\n"$$MA,"MergeD ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"D:/*;!*/LineRep*\",\"+r+d\");\n"$$MA,"MergeT ",LM="S2T(\"C:/*\",\"+r+S\");Merge(\"C:/*;!*/LineRep*\",\"T:/*;!*/LineRep*\",\"+r+d\");\n"$$MA,"D:/Wb ",LM="Cd(\"D:/Wb\");Dir;\n"$
$MA,"MakeC ",LM="TOSBootHDIns('C');\n"$$MA+PU,"BootC ",LM="BootRAM(\"C:/Kernel.BIN.C\");"$$MA,"Regen ",LM="TOSRegen;\n"$$MA,"PreRegen",LM="TOSPreRegen;\n"$$MA,"MakeD ",LM="TOSBootHDIns('D');\n"$$MA+PU,"BootD ",LM="BootRAM(\"D:/Kernel.BIN.C\");"$$MA,"CopyDrv ",LM="TOSPmtAndCopyDrv;\n"$
$MA,"MakeC ",LM="TOSBootHDIns('C');\n"$$MA+PU,"BootC ",LM="BootRAM(\"C:/Kernel.BIN.C\");"$$MA,"Regen ",LM="TOSRegen;\n"$$MA,"PreRegen",LM="TOSPreRegen;\n"$$MA,"MakeD ",LM="TOSBootHDIns('D');\n"$$MA+PU,"BootD ",LM="BootRAM(\"D:/Kernel.BIN.C\");"$$MA,"CopyDrv ",LM="TOSPmtAndCopyDrv;\n"$$MA,"Private ",LM="Cd(\"/Home/Private\");Dir;\n"$
$MA,"Kernel ",LM="Cd(\"/Kernel\");Dir;\n"$$MA,"Compiler",LM="Cd(\"/Compiler\");Dir;\n"$$MA,"BlkDev ",LM="Cd(\"/Kernel/BlkDev\");Dir;\n"$$MA,"Mem ",LM="Cd(\"/Kernel/Mem\");Dir;\n"$$MA,"Serial ",LM="Cd(\"/Kernel/SerialDev\");Dir;\n"$$MA,"Bin ",LM="Cd(\"/Home/Sup1/Sup1Bin\");Dir;\n"$$MA,"HDAudio ",LM="Cd(\"/Home/Sup1/Sup1HDAudio\");Dir;\n"$$MA,"Examples",LM="Cd(\"/Home/Sup1/Sup1HDAudio/Examples\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$
$MA,"Adam ",LM="Cd(\"/Adam\");Dir;\n"$$MA,"AutoComp",LM="Cd(\"/Adam/AutoComplete\");Dir;\n"$$MA,"Ctrls ",LM="Cd(\"/Adam/Ctrls\");Dir;\n"$$MA,"ABlkDev ",LM="Cd(\"/Adam/ABlkDev\");Dir;\n"$$MA,"DolDoc ",LM="Cd(\"/Adam/DolDoc\");Dir;\n"$$MA,"Gr ",LM="Cd(\"/Adam/Gr\");Dir;\n"$$MA,"God ",LM="Cd(\"/Adam/God\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Adam/Snd\");Dir;\n"$$MA,"Boot ",LM="Cd(\"/Adam/Opt/Boot\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Adam/Opt/Utils\");Dir;\n"$
$LK+X,"ChgLog ",A="FI:::/Doc/ChgLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="FreshenBlog;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"TOSTheme",LM="TOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$
$LK+X,"ChgLog ",A="FI:::/Doc/ChgLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdGod ",LM="Ed(\"D:/Home/God.DD\");\n"$$MA,"EdNotes ",LM="Ed(\"::/Home/Private/TOSNotes.DD\");\n"$$MA,"BlogDir ",LM="Cd(\"/Home/Web/TAD/BlogDir\");Dir;\n"$$MA,"Partial ",LM="FreshenBlog;\n"$$MA,"CodeWalk",LM="CodeWalkThru;\n"$$MA,"TOSTheme",LM="TOSTheme;\n"$$MA,"Videos ",LM="Cd(\"/Home/Sup1/Sup1Videos\");Dir;\n"$
$MA-X+PU,"EdHymns ",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Hymns\");"$$MA-X+PU,"EdSongs ",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Songs\");"$$MA,"SongsIn ",LM="TOSSongsIn;\n"$$MA,"SongsOut",LM="TOSSongsOut;\n"$$MA,"HomeIn ",LM="TOSHomeIn;\n"$$MA,"HomeOut ",LM="TOSHomeOut;\n"$$MA,"MakeWeb ",LM="FreshenBlog;\n"$
$MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"AppStore",LM="Cd(\"/Home/Web/AppStore\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$
$MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$
@@ -10,7 +10,7 @@ $MA,"Titan ",LM="Cd(\"/Apps/Titanium\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/
$MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"InFile ",LM="Cd(\"/Demo/InFile\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$
$MA,"RevFile ",LM="Cd(\"/Demo/RevFileDemo\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Demo/Snd\");Dir;\n"$$MA,"SortFile",LM="Cd(\"/Demo/SortFileDemo\");Dir;\n"$$MA,"Template",LM="Cd(\"/Demo/Templates\");Dir;\n"$$MA,"HtmlTXT ",LM="Cd(\"/Demo/ToHtmlToTXTDemo\");Dir;\n"$$MA,"WebLog ",LM="Cd(\"/Demo/WebLogDemo\");Dir;\n"$$MA,"Stadium ",LM="Cd(\"/Demo/Games/Stadium\");Dir;\n"$
$MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Tmp ",LM="Cd(\"/Tmp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Tmp/ScrnShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Tmp/*.SND\");DelTree(\"D:/Tmp/ScrnShots\");DirMk(\"D:/Tmp/ScrnShots\");Del(\"C:/Tmp/*.SND\");DelTree(\"C:/Tmp/ScrnShots\");DirMk(\"C:/Tmp/ScrnShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$
$MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Yiddish ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Yiddish.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$
$MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Word1000",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Words1000.TXT*\\\");\");\n"$$MA,"Word10k ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Words10k.TXT*\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$
$MA,"MakeStd ",LM="MakeStdDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSCD.ISO\");\n"$$MA,"MakeStRS",LM="MakeStdRedSeaDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSCDRS.ISO\");\n"$$MA,"MakeUlt ",LM="MakeUltraDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSUltra.ISO\");\n"$$MA,"MakeUtRS",LM="MakeUltraRedSeaDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSUltraRS.ISO\");\n"$$MA,"MakeStaf",LM="MakeStaffDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSStaff.ISO\");\n"$$MA,"MakeDbg ",LM="MakeDbgDistro;DirMk(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSDbg.ISO\");\n"$
$MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnStRS",LM="MakeStdRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnUlt ",LM="MakeUltraDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnUtRS",LM="MakeUltraRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnStaf",LM="MakeStaffDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnDbg ",LM="MakeDbgDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$
@@ -97,7 +97,7 @@ $SP+PU,"ToTheFront",LM="#include \"::/Apps/ToTheFront/Run\"",BI=15$ $SP+PU," Spa
$SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");",BI=24$ $SP+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\";",BI=25$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=26$ $SP+PU,"Logic",LM="#include \"::/Apps/Logic/Run\"",BI=27$ $SP+PU,"Vocab",LM="#include \"::/Apps/Vocabulary/Run\"",BI=28$
$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Hymns\");"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$
$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Hymns\");"$$MA-X+PU,"Budget ",LM="#include \"::/Apps/Budget/Load\";Budget(\"~/Private/Budget\");"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$
C Đ˙˙˙ř˙˙˙BlackŇ˙˙˙Ä˙˙˙#4˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙      ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙şÚ˙˙˙č˙˙˙%˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙"
Ô˙˙˙Ě˙˙˙4.˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙rŘ˙˙˙Ú˙˙˙#˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙   ˙ ˙ ˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˛Ň˙˙˙Ţ˙˙˙'$˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙ ˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙ ˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Line truncated
ű˙˙˙ö˙˙˙ű˙˙˙ö˙˙˙ű˙˙˙ě˙˙˙ç˙˙˙ö˙˙˙ű˙˙˙ö˙˙˙
+18 -4
View File
@@ -1,5 +1,7 @@
$WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Does entire tool chain support super/sub script?
* $LK,"::/Apps/X-Caliber/X-Caliber.HC"$
* Add asteroid harbor defense.
* Afterburner thruster.
@@ -69,7 +71,7 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Reset MPs with $LK,"Core0StartMP",A="MN:Core0StartMP"$() after boot. Free old task memory?
* Use pen_width and pen_height when clipping with pen_width>1.
* Use thick and pen_height when clipping with thick>1.
* $LK,"~/Sup1/Sup1Games/Rocks.HC"$.
@@ -235,6 +237,10 @@ $ID,-5$
$FG,5$$TX+CX,"Committee Needed"$$FG$
* Make binary tree look-up using FUN_SEG symbol addresses, so we can eliminate fun_seg cache and wall-paper kludge? All HolyC functions and glbl vars would have left-right for address search.
* Should we get rid of drive mapping. It's ugly.
* Can we get rid of $LK,"MSG_CMD",A="MN:MSG_CMD"$?
* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
* $LK,"MP DepthBuf",A="FF:::/Adam/Gr/SpriteMesh.HC,dc->depth_buf=e->"$ is a kludge because of dc->depth_buf=NULL in various graphics routines.
@@ -250,7 +256,7 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
* $LK,"TRANSPARENT",A="MN:TRANSPARENT"$ does not work with $LK,"ROPF_DITHER",A="MN:ROPF_DITHER"$.
* $LK,"ROP_XOR",A="MN:ROP_XOR"$ with pen_width>1 is broken.
* $LK,"ROP_XOR",A="MN:ROP_XOR"$ with thick>1 is broken.
* $LK,"GrPutChar3",A="MN:GrPutChar3"$() with depth buf?
@@ -297,6 +303,8 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
$FG,5$$TX+CX,"Inspirational Ideas"$$FG$
* Redo videos, make more professional.
* Add icons.
* Use standard terminology from "the literature".
* Striped and other dither patterns. Brushes?
@@ -437,7 +445,7 @@ $FG,5$$TX+CX,"Misc Notes"$$FG$
Erik van der Karbargenbok: $LK,"TempleBot",A="PI:~/Sup1/Sup1Bin/TempleBot"$.
Intel CEO's name: Brian Krzanich
>$FG,2$lspci -v$FG$
Size:$TX,"17378KB",D="DD_TEMPLEOSCD_K_SIZE"$
Size:$TX,"17400KB",D="DD_TEMPLEOSCD_K_SIZE"$
$FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$
$TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Bookmarks"$
@@ -453,7 +461,10 @@ I made dis $HC,"<center><img src=\"http://i.imgur.com/cZKkxTX.jpg\" width=\"640\
NIST Beacon $HC,"<center><img src=\"http://www.nist.gov/itl/csd/ct/images/beacon_architecture_2013.jpg\" width=\"550\" height=\"278\" alt=\"\"></center>"$
Purple Frog $HC,"<center><img src=\"https://s-media-cache-ak0.pinimg.com/736x/fb/08/2a/fb082a53bd798f5957a474ff9095e6d4.jpg\" width=\"640\" height=\"420\" alt=\"\"></center>"$
Casino (Dog) $HC,"<center><img src=\"http://www.templeos.org/images/Dog1855x1056.jpg\" width=\"640\" height=\"364\" alt=\"\"></center>"$
Sombrero $HC,"<center><img src=\"https://upload.wikimedia.org/wikipedia/commons/5/5e/M104_ngc4594_sombrero_galaxy_hi-res.jpg\" width=\"640\" height=\"359\" alt=\"\"></center>"$
Zinger $HC,"<center><img src=\"http://media.shopwell.com/gladson/00041300000031_full.jpg\" width=\"432\" height=\"234\" alt=\"\"></center>"$
Dianna Throne $HC,"<center><img src=\"http://i.imgur.com/RtcK6iX.jpg%EF%BB%BF\" width=\"640\" height=\"746\" alt=\"\"></center>"$
170310 Terry $HC,"<center><img src=\"http://www.templeos.org/images/170310TerryADavis.jpg\" width=\"640\" height=\"640\" alt=\"\"></center>"$
$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$
$TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$
@@ -503,3 +514,6 @@ $TX,"C64 Programmers Reference Guide",HTML="http://www.commodore.ca/manuals/c64_
$TX,"8-Bit Pixel Art",HTML="http://8bitdecals.com/8-bit-image-gallery"$
$TX,"8-Bit Japanese Pixel Art",HTML="http://designmadeinjapan.com/magazine/illustration-icon/tumblr-gifs-of-japanese-life"$
sha256sum
+12 -5
View File
@@ -2,7 +2,7 @@ $TR-UL,"Adam"$
$ID,2$$TR,"SysMsgFlags"$
$ID,2$sys_msg_flags[0]=0xFF;
$ID,-2$$TR,"SysRegVer"$
$ID,2$registry_version=5.020;
$ID,2$registry_version=5.030;
$ID,-2$$TR,"InsReg"$
$ID,2$#help_index "Registry/Install Registration"
MemSet(&ins_reg,0,sizeof(CInsReg));
@@ -31,7 +31,7 @@ $ID,2$F64 best_score=4.9425;
$ID,-2$$TR,"TOSNIST"$
$ID,2$I64 tos_nist_offset=-8049;
$ID,-2$$TR,"BlackDiamond"$
$ID,2$I64 best_score=23;
$ID,2$I64 best_score=2;
$ID,-2$$TR,"DunGen"$
$ID,2$F64 best_score=20.5295;
$ID,-2$$TR,"CastleFrankenstein"$
@@ -50,7 +50,7 @@ $ID,-2$$TR,"Wenceslas"$
$ID,2$F64 best_score=43.9944;
$ID,-2$$TR,"OSTestSuite"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=228.734;
progress3_tf=0.000;progress4_tf=227.554;
$ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=90;
I64 msg_flags=2;
@@ -62,8 +62,15 @@ $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=196.256;
progress3_tf=0.000;progress4_tf=196.886;
$ID,-2$$TR,"TempleTetris"$
$ID,2$I64 hiscore=1000;
$ID,-2$$ID,-2$$TR,"Once"$
$ID,2$$TR,"Adam"$
$ID,2$$ID,-2$$TR,"User"$
$ID,2$$ID,-2$$ID,-2$
$ID,2$$ID,-2$$ID,-2$$TR,"DemoCompany"$
$ID,2$$TR,"Game1"$
$ID,2$F64 best_score=202.07117;
$TR,"SimpleVal"$
$ID,2$1239;
$ID,-2$$ID,-2$$ID,-2$
+15 -12
View File
@@ -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.
@@ -96,7 +97,6 @@ U0 DistroPrep()
DelTree("/Demo/AcctExample");
CopyTree("/Home","/Demo/AcctExample");
DelTree("/Demo/AcctExample/Budget");
DelTree("/Demo/AcctExample/Private");
DelTree("/Demo/AcctExample/Sup1");
DelTree("/Demo/AcctExample/Books1");
@@ -250,7 +250,7 @@ U0 MakeStaffDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_STAFF_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -277,7 +277,7 @@ U0 MakeDbgDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_DBG_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -303,7 +303,7 @@ U0 MakeStdDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -312,7 +312,7 @@ U0 MakeStdRedSeaDistro()
StdDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -345,7 +345,7 @@ U0 MakeUltraDistro()
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_ULTRA_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -354,7 +354,7 @@ U0 MakeUltraRedSeaDistro()
UltraDistroPrep;
RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
@@ -364,28 +364,28 @@ U0 UpdateISODocDefines()
try {
#if MAKE_STD
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024);
#endif
#if MAKE_STD_RS
DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024);
#endif
#if MAKE_ULTRA
DefinePrint("DD_TEMPLEOS_ULTRA_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOS_ULTRA_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024);
#endif
#if MAKE_ULTRA_RS
DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE",
"Download $TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOS_ULTRA_RS_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024);
@@ -406,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;
@@ -540,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");
@@ -561,6 +563,7 @@ U0 TOSRegen3()
public U0 TOSPreRegen()
{//Copy bookmarks and bins from D:/Home/Sup1 to C:/Home/Sup1
Copy("D:/Home/Private/*","C:/Home/Private");
Copy("D:/Home/Sup1/Sup1Blog/Bookmarks.html","C:/Home/Sup1/Sup1Blog");
Del("C:/Home/Sup1/Sup1Bin/*");
Copy("D:/Home/Sup1/Sup1Bin/*","C:/Home/Sup1/Sup1Bin");
+27 -7
View File
@@ -6,12 +6,13 @@
#define GSRC_NIST_BEACON 0
#define GSRC_HOTBITS 1
#define GSRC_ANU_NIST 2
#define GSRC_RANDOM_ORG 3
#define GSRC_RANDOM_NUMBERS_INFO 4
#define GSRC_PASSWORD 5
#define GSRC_GENERATE_DATA 6
#define GSRC_VIRTUAL_NOTARY 7
#define GSRC_TIMER 8
#define GSRC_GOOGLE 3
#define GSRC_RANDOM_ORG 4
#define GSRC_RANDOM_NUMBERS_INFO 5
#define GSRC_PASSWORD 6
#define GSRC_GENERATE_DATA 7
#define GSRC_VIRTUAL_NOTARY 8
#define GSRC_TIMER 9
#define GBP_SHORT 0
#define GBP_MEDIUM 1
@@ -166,6 +167,25 @@ class CPaintings1000Form
I64 cert;
};
class CPoems100Form
{
I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P,"
"A=\"Poems #00-99 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512];
U8 rnd2[512];
U8 rnd3[512];
U8 rnd4[512];
U8 rnd5[512];
U8 rnd6[512];
U8 rnd7[512];
U8 rnd8[512];
U8 rnd9[512];
U8 rndA[512];
U8 rndB[512];
I64 cert;
};
class CMetallicaForm
{
I64 timestamp;
@@ -258,7 +278,7 @@ extern I64 GodHeaderIns(U8 *type=NULL);
extern U0 GodVideoDigits(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename);
extern U0 GodVideoU32(U32 rand_u32,U8 *filename);
extern U0 GodWebIdx(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
extern U0 GodWordBatch(CHexWordForm *gm);
extern U0 GodWordBatch(CHexWordForm *gm,I64 radix,I64 digits);
extern U0 TOSBookLines(U8 *book_filename,I64 book_lines,U8 *st,I64 num_lines,
I64 radix,Bool modulo,Bool plus_one);
extern U0 TOSGodDoodle(I64 god_src,CNISTBeaconHexWordForm *gm=NULL);
+80 -48
View File
@@ -174,43 +174,16 @@ public U0 GodBooksPassageU32(U32 rand_u32,U8 *files_find_mask,
}
}
U8 *FileDblRead(U8 *filename,I64 line)
{//FileDbl's are DolDoc files with 2-line entries.
U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
if (DocGoToLine(doc,line-1) && doc->cur_entry->type_u8==DOCT_TEXT)
res=StrNew(doc->cur_entry->tag);
DocDel(doc);
return res;
}
U8 *FileDblWrite(U8 *filename,I64 line,U8 *st)
{//FileDbl's are DolDoc files with 2-line entries.
U8 *res=NULL;
CDoc *doc=DocRead(filename,DOCF_PLAIN_TEXT_TABS|DOCF_NO_CURSOR);
if (DocGoToLine(doc,line-1)) {
if (doc->cur_entry->type_u8==DOCT_TEXT) {
Free(doc->cur_entry->tag);
doc->cur_entry->tag=StrNew(st);
} else
DocPrint(doc,"%s",st);
DocTop(doc);
DocWrite(doc);
}
DocDel(doc);
return res;
}
U0 GodVideoDigits(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
{
U8 *st,*st2;
CGodVideoForm *gvf=CAlloc(sizeof(CGodVideoForm));
I64 i=ExtDecFromHex(rnd,digits);
if (!i) i=Round(10`digits);
if (st=FileDblRead(filename,i*2)) {
if (st=DocLineRead(filename,i*2+1)) {
StrCpy(gvf->title,st);
Free(st);
if (!(st=FileDblRead(filename,i*2+1))||!*st) {
if (!(st=DocLineRead(filename,i*2+2))||!*st) {
Free(st);
if (DocForm(gvf) && *gvf->serial) {
if (gvf->min || gvf->sec)
@@ -218,7 +191,7 @@ U0 GodVideoDigits(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
gvf->serial,gvf->min*60+gvf->sec);
else
st=StrNew(gvf->serial);
FileDblWrite(filename,i*2+1,st);
DocLineWrite(filename,i*2+2,st);
} else
st=NULL;
}
@@ -261,8 +234,8 @@ U0 GodVideoU32(U32 rand_u32,U8 *filename)
Silent(old_silent);
if (num) {
i=rand_u32%num;
if (st=FileDblRead(filename,i*2)) {
st2=FileDblRead(filename,i*2+1);
if (st=DocLineRead(filename,i*2+1)) {
st2=DocLineRead(filename,i*2+2);
PutFileLink(filename);
"\nGod's response:\n"
"%08X-->#%d out of %d\n%s\n",rand_u32,i,num,st;
@@ -288,8 +261,8 @@ U0 GodWebIdx(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
I64 i=ExtDecFromHex(rnd,digits);
if (!i) i=Round(10`digits);
"'%s'-->(Taking first %d decimal digits) #%02d\n",rnd,digits,i;
st1=FileDblRead(filename,i*2);
st2=FileDblRead(filename,i*2+1);
st1=DocLineRead(filename,i*2+1);
st2=DocLineRead(filename,i*2+2);
"God's response:\n";
"$$TX,\"%s\",HTML=\"%s\"$$\n",title,webpage;
PutFileLink(filename);
@@ -301,10 +274,11 @@ U0 GodWebIdx(U8 *title,U8 *webpage,U8 *rnd,I64 digits,U8 *filename)
Free(st2);
}
U0 GodWordBatch(CHexWordForm *gm)
U0 GodWordBatch(CHexWordForm *gm,I64 radix,I64 digits)
{//Insert batch of words from rand hex.
I64 i=0;
I64 i=0,j,k,min;
CDirEntry *tmpde,*tmpde1;
U8 *filename;
FifoU8Flush(god.fifo);
GodHexIns(gm->rnd0);
@@ -319,6 +293,8 @@ U0 GodWordBatch(CHexWordForm *gm)
GodHexIns(gm->rnd9);
GodHexIns(gm->rndA);
GodHexIns(gm->rndB);
if (radix==16) {
tmpde=tmpde1=FilesFind(god.word_file_mask,god.word_fuf_flags);
while (tmpde) {
PutFileLink(tmpde->full_name);
@@ -326,6 +302,14 @@ U0 GodWordBatch(CHexWordForm *gm)
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
} else {
if (digits==3)
filename="::/Home/Sup1/Sup1Blog/NumWords1000.TXT";
else
filename="::/Home/Sup1/Sup1Blog/NumWords10k.TXT";
PutFileLink(filename);
'\n';
}
"\n$$RED$$";
if (*gm->rnd0)
@@ -353,9 +337,33 @@ U0 GodWordBatch(CHexWordForm *gm)
if (*gm->rndB)
"%s\n",gm->rndB;
'\n';
while (FifoU8Cnt(god.fifo)>20) {
"%02d: ",i++;
GodWord(20,TRUE);
if (radix==16)
min=digits*4;
else
min=4;
while (FifoU8Cnt(god.fifo)>=min) {
if (radix==16) {
j=GodBits(digits*4);
if (god.num_words) {
"%02d: %0*X Mod %0*X = %0*X (Line:%0*d):",i++,
digits,j,digits,god.num_words,digits,j%god.num_words,
ToI64(Log10(god.num_words)+1),j%god.num_words+1;
"%s\n",god.words[j%god.num_words];
}
} else {
i=digits;
j=0;
do {
k=GodBits(4);
if (k<=9) {
j=j*10+k;
if (!--i) {
"%s\n",DocLineRead(filename,j+1);
break;
}
}
} while (FifoU8Cnt(god.fifo)>=4);
}
}
FifoU8Flush(god.fifo);
"$$FG$$\n";
@@ -427,7 +435,7 @@ I64 GodHeaderIns(U8 *type=NULL)
CDateStruct ds;
I64 res;
if (type) {//If NISTBeacon
res=FloorI64(CDate2Unix(Now+2*60*CDATE_FREQ),60);
res=FloorI64(CDate2Unix(Now+1*60*CDATE_FREQ),60);
Date2Struct(&ds,Unix2CDate(res)+local_time_offset+30*CDATE_FREQ);
"Response of %s at %02d:%02d Timestamp:%d.\n\n",type,ds.hour,ds.min,res;
In("%c//Response of %s at %02d:%02d Timestamp:%d.\n\n",
@@ -445,7 +453,7 @@ U0 TimerGodIns()
FifoU8Flush(god.fifo);
GodBitsIns(GOD_GOOD_BITS,KbdMsEvtTime>>GOD_BAD_BITS);
switch (PopUpPickLst("Hex5Bible\0Hex8Books\0Doodle\0Movie100\0Painting100\0"
"Painting1000\0Metallica\0")) {
"Painting1000\0Poems100\0Metallica\0")) {
case:
StrPrint(buf,"%05X",GodBits(5*4));
"$$TX,\"How this random Bible passage was chosen.\","
@@ -479,6 +487,12 @@ U0 TimerGodIns()
"nsf/ListOfTop1000MostPopularPainting",
buf,3,"~/Sup1/Sup1Blog/Paintings1000.DD.Z");
break;
case:
StrPrint(buf,"%05X",GodBits(2*5*4)); //Little bit risky if no dec.
GodWebIdx("Top 100 Poems",
"http://100.best-poems.net/top-100-best-poems.html",
buf,2,"~/Sup1/Sup1Blog/Poems100.DD.Z");
break;
case:
StrPrint(buf,"%05X",GodBits(2*5*4)); //Little bit risky if no dec.
GodVideoDigits("Metallica Song",
@@ -493,7 +507,7 @@ public U0 GodIns()
{//<ALT-F7> Insert misc rand God item into blog.
U8 *st,*tag;
CRandExtDec5Form *gm=CAlloc(sizeof(CRandExtDec5Form));
I64 god_src=PopUpPickLst("NISTBeacon\0HotBits\0ANU_NIST\0Random.org\0"
I64 god_src=PopUpPickLst("NISTBeacon\0HotBits\0ANU_NIST\0Google\0Random.org\0"
"RandomNumbers.info\0Password\0GenerateData\0VirtualNotary\0Timer\0");
if (god_src>=GSRC_NIST_BEACON) {
switch (god_src) {
@@ -510,9 +524,9 @@ public U0 GodIns()
end:
GodHeaderIns;
"$$TX,\"%$$Q\",HTML=\"%$$Q\"$$\n",tag,tag;
switch (PopUpPickLst("ExtDec5Bible\0LinuxWords\0"
"HappyWords\0Hex5Bible\0Hex8Books\0Doodle\0Movie100\0"
"Painting100\0Painting1000\0Metallica\0")) {
switch (PopUpPickLst("ExtDec5Bible\0LinuxWords\0HappyWords\0"
"Words1000\0Words10k\0Hex5Bible\0Hex8Books\0Doodle\0Movie100\0"
"Painting100\0Painting1000\0Poems100\0Metallica\0")) {
case:
if (DocForm(gm(CRandExtDec5Form *)))
TOSBookLines("~/Sup1/Sup1Blog/NumBible.TXT",ST_BIBLE_LINES,
@@ -521,15 +535,23 @@ public U0 GodIns()
case:
if (DocForm(gm(CHexWordForm *))) {
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
GodWordBatch(gm);
GodWordBatch(gm,16,5);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
Adam("GodInit(\"~/Sup1/Sup1Words/HappyWords.TXT*\");");
GodWordBatch(gm);
GodWordBatch(gm,16,5);
}
break;
case:
if (DocForm(gm(CHexWordForm *)))
GodWordBatch(gm,10,3);
break;
case:
if (DocForm(gm(CHexWordForm *)))
GodWordBatch(gm,10,4);
break;
case:
if (DocForm(gm(CRandHex5Form *))) {
"$$TX,\"How this random Bible passage was chosen.\","
@@ -573,6 +595,13 @@ public U0 GodIns()
gm->rnd0,3,"~/Sup1/Sup1Blog/Paintings1000.DD.Z");
}
break;
case:
if (DocForm(gm(CPoems100Form *))) {
GodWebIdx("Top 100 Poems",
"http://100.best-poems.net/top-100-best-poems.html",
gm->rnd0,2,"~/Sup1/Sup1Blog/Poems100.DD.Z");
}
break;
case:
if (DocForm(gm(CMetallicaForm *)))
GodVideoDigits("Metallica Song",
@@ -583,6 +612,9 @@ public U0 GodIns()
}
break;
start:
case GSRC_GOOGLE:
tag="http://www.google.com";
break;
case GSRC_RANDOM_ORG:
tag="http://www.random.org";
break;
@@ -606,7 +638,7 @@ public U0 GodIns()
break;
case:
if (DocForm(gm(CHexWordForm *)))
GodWordBatch(gm);
GodWordBatch(gm,16,5);
break;
case:
if (DocForm(gm(CRandHex5Form *))) {
+28 -5
View File
@@ -47,19 +47,22 @@ U0 NISTBeaconURL(I64 timestamp)
U0 NISTGodIns1()
{
tos_type=PopUpPickLst("ExtDec5Bible\0LinuxWords\0HappyWords\0"
"Hex5Bible\0Hex8Books\0Doodle\0Movie100\0Painting100\0Painting1000\0"
"Metallica\0");
tos_type=PopUpPickLst("ExtDec5Bible\0LinuxWords\0HappyWords\0Words1000\0"
"Words10k\0Hex5Bible\0Hex8Books\0Doodle\0Movie100\0Painting100\0"
"Painting1000\0Poems100\0Metallica\0");
switch (tos_type) {
case: tos_timestamp=GodHeaderIns("Bible"); break;
case: tos_timestamp=GodHeaderIns("LinuxWords"); break;
case: tos_timestamp=GodHeaderIns("HappyWords"); break;
case: tos_timestamp=GodHeaderIns("Words1000"); break;
case: tos_timestamp=GodHeaderIns("Words10k"); break;
case: tos_timestamp=GodHeaderIns("Bible"); break;
case: tos_timestamp=GodHeaderIns("BookPick"); break;
case: tos_timestamp=GodHeaderIns("Doodle"); break;
case: tos_timestamp=GodHeaderIns("Movie100"); break;
case: tos_timestamp=GodHeaderIns("Painting100"); break;
case: tos_timestamp=GodHeaderIns("Painting1000"); break;
case: tos_timestamp=GodHeaderIns("Poems100"); break;
case: tos_timestamp=GodHeaderIns("Metallica"); break;
}
Once("tos_timestamp=%d;\ntos_type=%d;\n"
@@ -83,14 +86,26 @@ U0 NISTGodIns2()
if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/LinuxDict.TXT*\");");
GodWordBatch(gm);
GodWordBatch(gm,16,5);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
Adam("GodInit(\"~/Sup1/Sup1Words/HappyWords.TXT*\");");
GodWordBatch(gm);
GodWordBatch(gm,16,5);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
GodWordBatch(gm,10,3);
}
break;
case:
if (DocForm(gm(CHexWordForm *))) {
NISTBeaconURL(gm->timestamp);
GodWordBatch(gm,10,4);
}
break;
case:
@@ -144,6 +159,14 @@ U0 NISTGodIns2()
gm->rnd0,3,"~/Sup1/Sup1Blog/Paintings1000.DD.Z");
}
break;
case:
if (DocForm(gm(CPoems100Form *))) {
NISTBeaconURL(gm->timestamp);
GodWebIdx("Top 100 Poems",
"http://100.best-poems.net/top-100-best-poems.html",
gm->rnd0,2,"~/Sup1/Sup1Blog/Poems100.DD.Z");
}
break;
case:
if (DocForm(gm(CMetallicaForm *))) {
NISTBeaconURL(gm->timestamp);
+17
View File
@@ -162,6 +162,23 @@ When I solicit line-of-code reducing optimizations, I plan to make it 100% objec
If you have ideas on how to make TempleOS more like Linux, I'm not interested. However, if you have ideas to make it more like the 8-bit computer generation operating systems or like DOS, I am interested. We want the creative spirit of the 8-bit generation of computers.
$FG,5$$TX+CX,"TOS Linux SetUp"$$FG$
My Linux home directory is /home/tad
I place all my files in /home/tad/TAD
I place my scripts in /home/tad/TAD/Bin
/home/tad/TAD/Bin is in my path.
I place my icons in /home/tad/TAD/Desktop
I copy D:/Home in and out of /home/tad/TAD/Home
When I make a back-up, I copy /home/tad/TAD to /home/tad/Archives/TAD170131
http://www.templeos.org /home/tad/TAD/Site1
/home/tad/TAD/Site1Stale
Every month, I transfer my blog directory from Site1 to Site1Stale and remove it from TempleOS.
$FG,8$
* "Linux" is a trademark owned by Linus Torvalds.
* "Windows" is a trademark owned by MicroSoft Corp.
+2 -3
View File
@@ -189,7 +189,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
"<head>\n"
"<meta http-equiv=\"Content-Type\" "
"content=\"text/html;charset=US-ASCII\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$\">\n";
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$\">\n";
if (!body_header) body_header=
"<body>\n"
"<pre style=\"font-family:courier;font-size:10pt\">\n";
@@ -430,7 +430,7 @@ U0 TOSWebFile(U8 *name,Bool line_nums=FALSE)
"<meta name=\"keywords\" "
"content=\"Operating System,64-Bit,64 Bit,"
"Temple,OS,TempleOS,Free,Open Source,Public Domain,x86_64\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$\">\n",
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$\">\n",
"<body style=\"background-color:#55FFFF; border-style:solid;
border-width:8px; border-color:#0000AA;
@@ -480,7 +480,6 @@ public U0 FreshenSite()
Cd("D:/Wb");
DelTree("D:/Wb/Home/Books1");
DelTree("D:/Wb/Home/Books2");
DelTree("D:/Wb/Home/Budget");
DelTree("D:/Wb/Home/Private");
Del("D:/Wb/Home/*");
Touch("D:/Wb/Home/Web/index.DD.Z","");
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -341,7 +341,7 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->y=task->pix_height-2*map_height;
dc->z=0;
dc->transform=&DCTransform;
dc->pen_width=2;
dc->thick=2;
for (i=0;i<map_height;i++)
for (j=0;j<map_width;j++) {
dc->color=map[(map_height-1-i)*map_width+j];
+1 -1
View File
@@ -437,9 +437,9 @@ dg_done:
} catch
PutExcept;
SettingsPop;
CleanUp;
MenuPop;
RegWrite("TempleOS/DunGen","F64 best_score=%5.4f;\n",best_score);
CleanUp;
}
DunGen;
Binary file not shown.
+1 -1
View File
@@ -844,9 +844,9 @@ nv_done:
GetMsg(,,1<<MSG_KEY_UP);
} catch
PutExcept;
MenuPop;
SettingsPop;
CleanUp;
MenuPop;
}
FlatTops;
+1 -1
View File
@@ -80,7 +80,7 @@ U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2)
U0 Init()
{
ode=ODENew(0,1e-4,ODEF_HAS_MASSES);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->drag_v2=0.002;
ode->drag_v3=0.00001;
ode->acceleration_limit=5e3;
+5 -5
View File
@@ -102,7 +102,7 @@ U0 RiverMake()
for (y=MAP_BORDER;y<MAP_HEIGHT-MAP_BORDER;y++) {
if (!(waterfall_y-9<y<waterfall_y+WATERFALL_HEIGHT+9)) {
map_dc->color=YELLOW;
map_dc->pen_width=r_width[y]+10;
map_dc->thick=r_width[y]+10;
GrPlot3(map_dc,r_x[y]+x.i32[1],y,0);
}
x=ClampI64(x+RandI32,-6*U32_MAX,6*U32_MAX);
@@ -111,7 +111,7 @@ U0 RiverMake()
//Plot water
for (y=MAP_BORDER;y<MAP_HEIGHT-MAP_BORDER;y++) {
map_dc->color=BLUE;
map_dc->pen_width=r_width[y];
map_dc->thick=r_width[y];
GrPlot3(map_dc,r_x[y],y,0);
}
}
@@ -471,7 +471,7 @@ U0 ReInit()
//Plot fence
for (i=FENCE_WIDTH;i>0;i-=16)
Sprite3(map_dc,i,FENCE_HEIGHT,0,$IB,"<9>",BI=9$);
map_dc->pen_width=1;
map_dc->thick=1;
map_dc->color=BROWN;
for (i=0;i<FENCE_HEIGHT-16;i+=16)
GrLine(map_dc,FENCE_WIDTH-1,i,FENCE_WIDTH-1,i+7);
@@ -479,7 +479,7 @@ U0 ReInit()
GrLine(map_dc,FENCE_WIDTH,0,FENCE_WIDTH,FENCE_HEIGHT-6);
RedrawGate;
map_dc->pen_width=MAP_BORDER;
map_dc->thick=MAP_BORDER;
map_dc->color=RED;
GrBorder(map_dc,MAP_BORDER/2,MAP_BORDER/2,
MAP_WIDTH-(MAP_BORDER+1)/2,MAP_HEIGHT-(MAP_BORDER+1)/2);
@@ -582,9 +582,9 @@ rh_done:
GetMsg(,,1<<MSG_KEY_UP);
} catch
PutExcept;
MenuPop;
SettingsPop;
CleanUp;
MenuPop;
RegWrite("TempleOS/RawHide","F64 best_score=%5.4f;\n",best_score);
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4 -4
View File
@@ -462,14 +462,14 @@ U0 ClawDraw(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2,I64 w,I64 segments,Bool talon)
{
I64 i,j;
for (i=0,j=segments;i<segments;i++,j--) {
dc->pen_width=w;
dc->thick=w;
dc->color=BLACK;
GrLine3(dc,
j*x1/segments+i*x2/segments,
j*y1/segments+i*y2/segments,0,
(j-1)*x1/segments+(i+1)*x2/segments,
(j-1)*y1/segments+(i+1)*y2/segments,0);
dc->pen_width=w-2;
dc->thick=w-2;
dc->color=YELLOW;
GrLine3(dc,
j*x1/segments+i*x2/segments,
@@ -907,7 +907,7 @@ U0 Core0Talons()
}
}
dc->pen_width=2;
dc->thick=2;
if (game_tf && fish_left)
dc->color=WHITE;
else
@@ -1226,8 +1226,8 @@ U0 Talons()
SettingsPop;
CleanUp;
PostCleanUp;
RegWrite("TempleOS/Talons","F64 best_score=%5.4f;\n",best_score);
MenuPop;
RegWrite("TempleOS/Talons","F64 best_score=%5.4f;\n",best_score);
}
Talons;
+3 -3
View File
@@ -4,14 +4,14 @@ I64 board_y[9]={150,150,150,250,250,250,350,350,350};
U0 DrawX(CDC *dc,I64 x,I64 y)
{
dc->pen_width=5;
dc->thick=5;
GrLine3(dc,x-20,y-20,0,x+20,y+20,0);
GrLine3(dc,x+20,y-20,0,x-20,y+20,0);
}
U0 DrawO(CDC *dc,I64 x,I64 y)
{
dc->pen_width=5;
dc->thick=5;
GrCircle3(dc,x,y,0,25);
}
@@ -20,7 +20,7 @@ U0 DrawBoard(I64 player)
I64 i;
CDC *dc=DCAlias;
DCFill;
dc->pen_width=5;
dc->thick=5;
GrLine3(dc,200,100,0,200,400,0);
GrLine3(dc,300,100,0,300,400,0);
GrLine3(dc,100,200,0,400,200,0);
+1 -1
View File
@@ -79,7 +79,7 @@ U0 DrawIt(CTask *task,CDC *dc)
GrLine(dc,u[i].x,u[i].y,u[u[i].link].x,u[u[i].link].y);
if (Blink) {
dc->color=BLUE;
dc->pen_width=6;
dc->thick=6;
GrPlot3(dc,(u[i].x+u[u[i].link].x)>>1,(u[i].y+u[u[i].link].y)>>1,0);
}
}
+4 -4
View File
@@ -313,7 +313,7 @@ U0 InitTrack()
GrRect(track_map,0,0,track_map->width,track_map->height);
tmpt=track_head.next;
track_map->color=YELLOW;
track_map->pen_width=3;
track_map->thick=3;
while (tmpt!=&track_head) {
GrPlot3(track_map,track_map->width-(tmpt->x-t_minx)>>MAP_BITS,
(tmpt->z-t_minz)>>MAP_BITS,0);
@@ -473,7 +473,7 @@ U0 DrawIt(CTask *task,CDC *dc)
//Map
GrBlot(dc,w-track_map->width,h-track_map->height,track_map);
dc->pen_width=2;
dc->thick=2;
for (i=0;i<CARS_NUM;i++) {
if (i)
dc->color=LTPURPLE;
@@ -571,7 +571,7 @@ U0 InitBushes()
Bush *tmpb;
I64 i,j,x,z;
track_map->color=LTGREEN;
track_map->pen_width=1;
track_map->thick=1;
for (i=0;i<BUSHES_NUM;i++) {
tmpb=&b[i];
@@ -694,8 +694,8 @@ U0 Varoom()
vr_done: //Don't goto out of try
} catch
PutExcept;
CleanUp;
SettingsPop;
CleanUp;
MenuPop;
RegWrite("TempleOS/Varoom","F64 best_score=%5.4f;\n",best_score);
}
+6 -6
View File
@@ -126,7 +126,7 @@ U0 DrawIt(CTask *task,CDC *dc)
Peasant *tmpp;
F64 tt;
dc->pen_width=1;
dc->thick=1;
for (i=0;i<TREES_NUM;i++) {
if (trees[i].y<=h/2) {//Draw trees behind house
if (trees[i].fire_frame_idx) {
@@ -163,14 +163,14 @@ U0 DrawIt(CTask *task,CDC *dc)
dc->color=DKGRAY;
else
dc->color=LTGRAY;
dc->pen_width=4;
dc->thick=4;
GrPlot3(dc,tmpst->x,tmpst->y,0);
tmpst=tmpst->next;
}
DCDepthBufAlloc(dc);
dc->flags|=DCF_TRANSFORMATION;
dc->pen_width=1;
dc->thick=1;
tmpp=peasant_head.next;
while (tmpp!=&peasant_head) {
Mat4x4IdentEqu(r);
@@ -188,7 +188,7 @@ U0 DrawIt(CTask *task,CDC *dc)
tmpp=tmpp->next;
}
dc->pen_width=1;
dc->thick=1;
Mat4x4IdentEqu(r);
Mat4x4RotY(r,king_é+ã/2);
Mat4x4RotX(r,ã/6);
@@ -202,7 +202,7 @@ U0 DrawIt(CTask *task,CDC *dc)
Free(tmps);
}
dc->pen_width=1;
dc->thick=1;
dc->color=ROP_MONO|WHITE;
for (y=snow_y%SNOW_TILE_SIZE-SNOW_TILE_SIZE;y<=h;y+=SNOW_TILE_SIZE)
for (x=snow_x%SNOW_TILE_SIZE-SNOW_TILE_SIZE;x<=w;x+=SNOW_TILE_SIZE)
@@ -584,8 +584,8 @@ ws_done:
} catch
PutExcept;
SettingsPop;
MenuPop;
CleanUp;
MenuPop;
RegWrite("TempleOS/Wenceslas","F64 best_score=%5.4f;\n",best_score);
}
+1 -1
View File
@@ -120,7 +120,7 @@ U0 Whap()
" Exit(,CH_ESC);"
"}"
);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->drag_v2=0.002;
ode->drag_v3=0.00001;
ode->acceleration_limit=5e3;
Binary file not shown.
+2 -2
View File
@@ -3,7 +3,7 @@ CDC *img1=DCNew(64,64);
CDC *img2=DCNew(512,512);
img1->color=COLOR_MONO;
img1->pen_width=3;
img1->thick=3;
GrCircle(img1,30,30,20);
GrFloodFill3(img1,30,30,0,TRUE);
GrLine3(img1,60,0,0,0,60,0);
@@ -13,7 +13,7 @@ img2->color=RED;
img2->brush=img1;
GrCircle(img2,256-30,256-30,128,67);
img2->color=BLUE;
img2->pen_width=6;
img2->thick=6;
img2->brush=NULL;
GrLine3(img2,128,128,0,256+128,256+128,0);
GrLine3(img2,256+128,128,0,128,256+128,0);
+1 -1
View File
@@ -3,7 +3,7 @@ I64 glbl_r[4][4];
U0 DrawIt(CTask *,CDC *dc)
{
I64 *old_r=dc->r;
dc->pen_width=2;
dc->thick=2;
dc->color=RED;
dc->x=200;
dc->y=200;
+4 -5
View File
@@ -25,14 +25,13 @@ U0 Doodle()
x1=arg1; y1=arg2;
x2=arg1; y2=arg2;
dc->color=ROP_XOR+color^TRANSPARENT;
dc->pen_width=7;
while (msg_code!=MSG_MS_L_UP) {
dc->thick=7;
do {
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
msg_code=GetMsg(&arg1,&arg2,1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
GrLine3(dc,x1,y1,0,x2,y2,0);
x2=arg1; y2=arg2;
}
} while (msg_code!=MSG_MS_L_UP);
GrLine3(dc,x1,y1,0,x2,y2,0);
break;
case MSG_KEY_DOWN:
Binary file not shown.
+1 -1
View File
@@ -2,7 +2,7 @@
U0 DrawMyMs(CDC *dc,I64 x,I64 y)
{
dc->pen_width=1;
dc->thick=1;
dc->flags&=~(DCF_TRANSFORMATION|DCF_SYMMETRY);
GrRect(dc,x,y,GRID,GRID);
}
+1 -1
View File
@@ -75,7 +75,7 @@ public U0 Life()
while (msg_code!=MSG_MS_L_UP) {
restart=TRUE;
dc[cur_dc]->color=GREEN;
dc[cur_dc]->pen_width=0.04*ms.speed;
dc[cur_dc]->thick=0.04*ms.speed;
GrLine3(dc[cur_dc],x1,y1,0,x2,y2,0);
restart=TRUE;
msg_code=GetMsg(&arg1,&arg2,1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
+650
View File
@@ -0,0 +1,650 @@
/*
There is a coarse and a fine-grained.
The coarse gets flood-filled but the
fine grained is only outlines.
*/
class Photon
{
Photon *next,*last;
CD3 p,v,n,p_normal_inhibit;
} p_root[mp_cnt];
I64 p_root_locks;
#define ANIMATE_JIFFIES (JIFFY_FREQ*0.01)
I64 master_sleep_jiffy;
CTask *animate_tasks[mp_cnt];
#define LENS_COLOR WHITE
#define MIRROR_COLOR DKGRAY
CDC *map;
I64 photon_cnt,mirror_cnt,snell_cnt,normal_inhibit,zero_normal;
Bool full_speed,show_normals;
U8 *bmp_refract,*bmp_reflect;
F64 bmp_scale,find_normal_dist_sqr;
I64 bmp_mem,bmp_width,bmp_height,bmp_norm_radius;
#define BORDER 10
I64 BmpPeek(U8 *bmp,I64 x,I64 y)
{
return Bt(bmp,y*bmp_width+x);
}
U0 BmpPlot(U8 *bmp,I64 x,I64 y,I64)
{
if (0<=x<bmp_width && 0<=y<bmp_height)
Bts(bmp,y*bmp_width+x);
}
U0 BmpLine(U8 *bmp,F64 x1,F64 y1,F64 x2,F64 y2)
{
Line(bmp,x1*bmp_scale,y1*bmp_scale,0,x2*bmp_scale,y2*bmp_scale,0,&BmpPlot);
}
Photon *PhotonNew()
{
I64 num=photon_cnt++%mp_cnt;
Photon *res=CAlloc(sizeof(Photon));
while (LBts(&p_root_locks,num))
Yield;
QueIns(res,p_root[num].last);
LBtr(&p_root_locks,num);
return res;
}
#define VECTOR 20
U0 DrawIt(CTask *,CDC *dc)
{
I64 i;
Photon *tmpp;
GrBlot(dc,0,0,map);
dc->color=WHITE;
GrPrint(dc,0,0,"Mem:0x%X %,dMeg Scale:%0.3f (%d,%d)-->(%d,%d)",
bmp_mem,bmp_mem/1024/1024,bmp_scale,
map->width,map->height,bmp_width,bmp_height);
GrPrint(dc,0,FONT_HEIGHT,
"PhotonCnt:%d MirrorCnt:%d SnellCnt:%d SnellInhibit:%d ZeroNormal:%d",
photon_cnt,mirror_cnt,snell_cnt,normal_inhibit,zero_normal);
for (i=0;i<mp_cnt;i++) {
while (LBts(&p_root_locks,i))
Yield;
tmpp=p_root[i].next;
while (tmpp!=&p_root[i]) {
dc->color=LTRED;
GrLine(dc,tmpp->p.x-VECTOR*tmpp->v.x,tmpp->p.y-VECTOR*tmpp->v.y,
tmpp->p.x,tmpp->p.y);
if (show_normals) {
dc->color=LTGREEN;
GrLine(dc,tmpp->p.x,tmpp->p.y,
tmpp->p.x+VECTOR*tmpp->n.x,tmpp->p.y+VECTOR*tmpp->n.y);
}
tmpp=tmpp->next;
}
LBtr(&p_root_locks,i);
}
}
#define WING 9
U0 RayBurst(I64 x1,I64 y1,I64 x2,I64 y2)
{
CD3 p,v,n,n2;
I64 i;
Photon *tmpp;
if ((x1!=x2 || y1!=y2) && BORDER+WING<x2<map->width-BORDER-WING &&
BORDER+WING<y2<map->height-BORDER-WING) {
D3Equ(&p,x2,y2);
D3Equ(&v,x2-x1,y2-y1);
D3Unit(&v);
D3Equ(&n,v.y,-v.x);
tmpp=PhotonNew;
D3Copy(&tmpp->p,&p);
D3Copy(&tmpp->v,&v);
for (i=2;i<=WING;i+=3) {
D3Mul(&n2,i,&n);
tmpp=PhotonNew;
D3Add(&tmpp->p,&p,&n2);
D3Copy(&tmpp->v,&v);
tmpp=PhotonNew;
D3Sub(&tmpp->p,&p,&n2);
D3Copy(&tmpp->v,&v);
}
}
}
U0 RandomBurst()
{
I64 i;
F64 é;
Photon *tmpp;
for (i=0;i<256;i++) {
tmpp=PhotonNew;
D3Equ(&tmpp->p,(Fs->pix_width-BORDER*2)*Rand+BORDER,
(Fs->pix_height-BORDER*2)*Rand+BORDER);
é=2*ã*Rand;
D3Equ(&tmpp->v,Cos(é),Sin(é));
}
}
U0 FindNormal(U8 *bmp,Photon *tmpp)
{
CD3 p,p1,p2;
F64 step,x,y,é=Arg(tmpp->v.x,tmpp->v.y),è;
I64 state;
D3Copy(&tmpp->p_normal_inhibit,&tmpp->p);
//Coarse grains has black and white filled-in BSplines.
//Fine grained has only white outline without being filled-in.
//Back-up a step and move fwd to get a fined-grained value
//for the point of contact.
D3SubEqu(&tmpp->p,&tmpp->v);
D3Mul(&p,bmp_scale,&tmpp->p);
D3Copy(&p1,&p);
while (BmpPeek(bmp,p1.x,p1.y)==BLACK &&
D3DistSqr(&p,&p1)<find_normal_dist_sqr)
D3AddEqu(&p1,&tmpp->v);
D3Copy(&p,&p1);
D3Div(&tmpp->p,&p,bmp_scale);
//Draw an arc one direction, finding point of contact.
for (step=1.0;step>=0.01;step/=4) {
for (è=0;è<=ã/4;è+=step*ã/bmp_norm_radius) {
x=p.x+bmp_norm_radius*Cos(é+ã-ã/4-è);
y=p.y+bmp_norm_radius*Sin(é+ã-ã/4-è);
if (state=BmpPeek(bmp,x,y))
goto fn_p1;
x=p.x+bmp_norm_radius*Cos(é+ã-ã/4+è);
y=p.y+bmp_norm_radius*Sin(é+ã-ã/4+è);
if (state=BmpPeek(bmp,x,y))
goto fn_p1;
}
for (;è<=3*ã/4;è+=step*ã/bmp_norm_radius) {
x=p.x+bmp_norm_radius*Cos(é+ã-ã/4-è);
y=p.y+bmp_norm_radius*Sin(é+ã-ã/4-è);
if (state=BmpPeek(bmp,x,y))
goto fn_p1;
}
}
fn_p1:
if (state)
D3Equ(&p1,x,y);
else
D3Copy(&p1,&tmpp->p);
//Draw an arc other direction, finding point of contact.
for (step=1.0;step>=0.01;step/=4) {
for (è=0;è<=ã/4;è+=step*ã/bmp_norm_radius) {
x=p.x+bmp_norm_radius*Cos(é+ã+ã/4+è);
y=p.y+bmp_norm_radius*Sin(é+ã+ã/4+è);
if (state=BmpPeek(bmp,x,y))
goto fn_p2;
x=p.x+bmp_norm_radius*Cos(é+ã+ã/4-è);
y=p.y+bmp_norm_radius*Sin(é+ã+ã/4-è);
if (state=BmpPeek(bmp,x,y))
goto fn_p2;
}
for (;è<=3*ã/4;è+=step*ã/bmp_norm_radius) {
x=p.x+bmp_norm_radius*Cos(é+ã+ã/4+è);
y=p.y+bmp_norm_radius*Sin(é+ã+ã/4+è);
if (state=BmpPeek(bmp,x,y))
goto fn_p2;
}
}
fn_p2:
if (state)
D3Equ(&p2,x,y);
else
D3Copy(&p2,&tmpp->p);
D3Sub(&p,&p1,&p2);
if (D3NormSqr(&p)<0.01) {
D3Equ(&tmpp->n,Cos(é),Sin(é));
lock {zero_normal++;}
} else {
D3Equ(&tmpp->n,p.y,-p.x);
if (D3Dot(&tmpp->n,&tmpp->v)<0)
D3Equ(&tmpp->n,-p.y,p.x);
D3Unit(&tmpp->n);
}
}
U0 Mirror(Photon *tmpp)
{/*$SP,"<1>",BI=1$
é$SY,3$out$SY,0$ = ã+é$SY,3$n$SY,0$ - (é$SY,3$in$SY,0$-é$SY,3$n$SY,0$)
*/
F64 é=Arg(tmpp->v.x,tmpp->v.y),é$SY,3$n$SY,0$;
FindNormal(bmp_reflect,tmpp);
é$SY,3$n$SY,0$=Arg(tmpp->n.x,tmpp->n.y);
D3Equ(&tmpp->v,Cos(2*é$SY,3$n$SY,0$+ã-é),Sin(2*é$SY,3$n$SY,0$+ã-é));
lock {mirror_cnt++;}
}
U0 SnellsLaw(Photon *tmpp,I64 last,I64 next)
{
//n1 and n2 are refraction index.
//n1 Sin(é1) == n2 Sin(é2)
F64 é=Arg(tmpp->v.x,tmpp->v.y),é$SY,3$n$SY,0$,n1,n2,é1,é2;
if (last==LENS_COLOR)
n1=1.5;
else
n1=1.0;
if (next==LENS_COLOR)
n2=1.5;
else
n2=1.0;
FindNormal(bmp_refract,tmpp);
é$SY,3$n$SY,0$=Arg(tmpp->n.x,tmpp->n.y);
//Dot=m1m2Cos(é);
é1=ACos(D3Dot(&tmpp->n,&tmpp->v));
é2=ASin(n1*Sin(é1)/n2);
if (Wrap(é-é$SY,3$n$SY,0$)>=0)
é=é$SY,3$n$SY,0$+é2;
else
é=é$SY,3$n$SY,0$-é2;
D3Equ(&tmpp->v,Cos(é),Sin(é));
lock {snell_cnt++;}
}
U0 AnimateTask(I64)
{
while (TRUE) {
master_sleep_jiffy+=ANIMATE_JIFFIES;
if (cnts.jiffies>=master_sleep_jiffy)
master_sleep_jiffy=cnts.jiffies+ANIMATE_JIFFIES;
SleepUntil(master_sleep_jiffy);
}
}
#define BABY_STEPS 4
U0 MPAnimateTask(I64)
{
I64 i,last_master_jiffy=0,
timeout_jiffy=master_sleep_jiffy+ANIMATE_JIFFIES,
last,next;
Bool inhibit;
CD3 step;
Photon *tmpp,*root=&p_root[Gs->num];
while (TRUE) {
while (LBts(&p_root_locks,Gs->num))
Yield;
tmpp=root->next;
while (tmpp!=root) {
for (i=0;i<BABY_STEPS;i++) {
last=GrPeek(map,tmpp->p.x,tmpp->p.y);
D3Div(&step,&tmpp->v,BABY_STEPS);
D3AddEqu(&tmpp->p,&step);
if (tmpp->p.x<BORDER) {
tmpp->p.x=2*BORDER-tmpp->p.x;
tmpp->v.x=-tmpp->v.x;
}
if (tmpp->p.x>=map->width-BORDER) {
tmpp->p.x-=tmpp->p.x-map->width+BORDER;
tmpp->v.x=-tmpp->v.x;
}
if (tmpp->p.y<BORDER) {
tmpp->p.y=2*BORDER-tmpp->p.y;
tmpp->v.y=-tmpp->v.y;
}
if (tmpp->p.y>=map->height-BORDER) {
tmpp->p.y-=tmpp->p.y-map->height+BORDER;
tmpp->v.y=-tmpp->v.y;
}
next=GrPeek(map,tmpp->p.x,tmpp->p.y);
if (D3DistSqr(&tmpp->p_normal_inhibit,&tmpp->p)<4.0)
inhibit=TRUE;
else
inhibit=FALSE;
if (last!=next) {
if ((last==BLACK && next==LENS_COLOR) ||
(last==LENS_COLOR && next==BLACK)) {
if (inhibit)
lock {normal_inhibit++;}
else
SnellsLaw(tmpp,last,next);
} else if (last==BLACK && next==MIRROR_COLOR) {
if (inhibit)
lock {normal_inhibit++;}
else
Mirror(tmpp);
} else if (!inhibit)
D3Zero(&tmpp->p_normal_inhibit);
} else if (!inhibit)
D3Zero(&tmpp->p_normal_inhibit);
}
tmpp=tmpp->next;
if (cnts.jiffies>=timeout_jiffy)
break;
}
LBtr(&p_root_locks,Gs->num);
if (cnts.jiffies>=timeout_jiffy) {
Sleep(1);
timeout_jiffy=master_sleep_jiffy+ANIMATE_JIFFIES;
}
if (!full_speed) {
while (master_sleep_jiffy==last_master_jiffy)
Sleep(1);
last_master_jiffy=master_sleep_jiffy;
SleepUntil(master_sleep_jiffy);
timeout_jiffy=master_sleep_jiffy+ANIMATE_JIFFIES;
}
}
}
U0 Init()
{
I64 i;
master_sleep_jiffy=cnts.jiffies;
full_speed=show_normals=FALSE;
photon_cnt=mirror_cnt=snell_cnt=normal_inhibit=zero_normal=0;
map=DCNew(Fs->pix_width,Fs->pix_height);
for (i=0;i<mp_cnt;i++) {
while (LBts(&p_root_locks,i))
Yield;
QueInit(&p_root[i]);
LBtr(&p_root_locks,i);
}
//x*y=bmp_mem*8
//x/y=640/480
//x=640/480*y
//640/480*y^2=bmp_mem*8
//y=Sqrt(bmp_mem*8*480/640)
//bmp_scale=Sqrt(bmp_mem*8*480/640)/480
bmp_scale=Sqrt(bmp_mem/2*8*Fs->pix_height/Fs->pix_width)/Fs->pix_height;
find_normal_dist_sqr=2*Sqr(bmp_scale);
#assert Sqrt(2)<=BORDER
bmp_width =bmp_scale*Fs->pix_width;
bmp_height=bmp_scale*Fs->pix_height;
bmp_refract=CAlloc(bmp_width*bmp_height/8);
bmp_reflect=CAlloc(bmp_width*bmp_height/8);
bmp_norm_radius=Min(10*bmp_scale,250);
#assert 10<=BORDER
}
U0 CleanUp()
{
I64 i;
for (i=0;i<mp_cnt;i++) {
while (LBts(&p_root_locks,i))
Yield;
QueDel(&p_root[i],TRUE);
LBtr(&p_root_locks,i);
}
DCDel(map);
Free(bmp_refract);
Free(bmp_reflect);
}
#define LTM_REFLECT_LINE 0
#define LTM_REFLECT_SPLINE 1
#define LTM_REFRACT_LINE 2
#define LTM_REFRACT_SPLINE 3
#define LTM_REFRACT_FLOOD_FILL 4
#define LTM_TEST_RAY 5
U0 LTMenuSet(I64 mode)
{
CMenuEntry *entry=MenuEntryFind(Fs->cur_menu,"View/ToggleNormals");
if (show_normals)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/ReflectLine");
if (mode==LTM_REFLECT_LINE)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/ReflectSpline");
if (mode==LTM_REFLECT_SPLINE)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/RefractLine");
if (mode==LTM_REFRACT_LINE)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/RefractSpline");
if (mode==LTM_REFRACT_SPLINE)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/RefractFloodFill");
if (mode==LTM_REFRACT_FLOOD_FILL)
entry->checked=TRUE;
else
entry->checked=FALSE;
entry=MenuEntryFind(Fs->cur_menu,"Mode/TestRay");
if (mode==LTM_TEST_RAY)
entry->checked=TRUE;
else
entry->checked=FALSE;
}
#define PTS_NUM 1024
U0 LightTable()
{
I64 msg_code,mode=LTM_REFLECT_LINE,i,cnt,arg1,arg2,x1,y1,x2,y2;
CD3I32 *c=MAlloc(PTS_NUM*sizeof(CD3I32));
p_root_locks=0;
MenuPush(
"File {"
" Restart(,'\n');"
" Abort(,CH_SHIFT_ESC);"
" Exit(,CH_ESC);"
"}"
"Mode {"
" ReflectLine(,'0');"
" ReflectSpline(,'1');"
" RefractLine(,'2');"
" RefractSpline(,'3');"
" RefractFloodFill(,'4');"
" TestRay(,'5');"
"}"
"Play {"
" RandomBurst(,'r');"
" ElapseTime(,'e');"
"}"
"View {"
" ToggleNormals(,'n');"
"}"
);
LTMenuSet(mode);
MemBIOSRep;
bmp_mem=GetI64("\n\n\nHow much memory for the high resolution\n"
"shadow bitmap that helps improve the\n"
"accuracy of the normal vector estimate?\n"
"You can choose up to the largest\n"
"contiguous chunk of physical memory.\n\n"
"Mem (0x%0X):",1024*1024*16);
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-
WIF_SELF_BORDER-WIF_FOCUS_TASK_MENU;
Fs->text_attr=BLACK<<4+WHITE; //Current $LK,"CTask",A="MN:CTask"$ is Fs segment register.
AutoComplete;
WinBorder;
WinMax;
DocCursor;
DocClear;
Init;
Fs->draw_it=&DrawIt;
Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
for (i=0;i<mp_cnt;i++)
animate_tasks[i]=Spawn(&MPAnimateTask,NULL,"MPAnimate",i);
try {
while (TRUE) {
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_DOWN+1<<MSG_MS_L_UP+1<<MSG_MS_R_UP);
lt_restart:
switch (msg_code) {
case MSG_MS_L_UP:
Sweep(100,90,100);
x2=arg1; y2=arg2;
switch (mode) {
case LTM_REFRACT_FLOOD_FILL:
map->color=LENS_COLOR;
GrFloodFill(map,x2,y2);
mode=LTM_REFLECT_LINE;
LTMenuSet(mode);
break;
case LTM_TEST_RAY:
RayBurst(x1,y1,x2,y2);
break;
}
break;
case MSG_MS_L_DOWN:
x1=arg1; y1=arg2;
switch (mode) {
case LTM_REFLECT_LINE:
case LTM_REFRACT_LINE:
if (mode==LTM_REFLECT_LINE)
map->color=ROP_XOR+MIRROR_COLOR;
else
map->color=ROP_XOR+LENS_COLOR;
while (TRUE) {
x2=arg1; y2=arg2;
GrLine(map,x1,y1,x2,y2);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_KEY_DOWN+1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
GrLine(map,x1,y1,x2,y2);
if (msg_code==MSG_KEY_DOWN)
goto lt_restart;
else if (msg_code==MSG_MS_L_UP) {
Sweep(100,90,100);
x2=arg1; y2=arg2;
break;
}
}
if (mode==LTM_REFLECT_LINE)
map->color=MIRROR_COLOR;
else
map->color=LENS_COLOR;
GrLine(map,x1,y1,x2,y2);
if (mode==LTM_REFLECT_LINE)
BmpLine(bmp_reflect,x1,y1,x2,y2);
else
BmpLine(bmp_refract,x1,y1,x2,y2);
break;
case LTM_REFLECT_SPLINE:
case LTM_REFRACT_SPLINE:
cnt=0;
if (mode==LTM_REFLECT_SPLINE)
map->color=ROP_XOR+MIRROR_COLOR;
else
map->color=ROP_XOR+LENS_COLOR;
do {
c[cnt].x=arg1; c[cnt].y=arg2; c[cnt].z=0;
Gr2BSpline(map,c,cnt+1);
msg_code=GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN+1<<MSG_MS_L_UP+
1<<MSG_MS_MOVE+1<<MSG_MS_R_UP);
Gr2BSpline(map,c,cnt+1);
if (msg_code==MSG_KEY_DOWN)
goto lt_restart;
else if (msg_code==MSG_MS_L_UP) {
Sweep(100,90,100);
cnt++;
}
} while (cnt<PTS_NUM-1 && msg_code!=MSG_MS_R_UP);
if (mode==LTM_REFLECT_SPLINE)
map->color=MIRROR_COLOR;
else
map->color=LENS_COLOR;
Gr2BSpline3(map,c,cnt);
for (i=0;i<cnt;i++) {
c[i].x*=bmp_scale;
c[i].y*=bmp_scale;
}
if (mode==LTM_REFLECT_SPLINE)
BSpline2(bmp_reflect,c,cnt,&BmpPlot);
else
BSpline2(bmp_refract,c,cnt,&BmpPlot);
mode=LTM_REFLECT_LINE;
LTMenuSet(mode);
break;
}
break;
case MSG_MS_R_UP:
i=PopUpPickLst("Reflect Line\0Reflect Spline\0Refract Line\0"
"Refract Spline\0Refract Flood Fill\0TestRay\0");
if (i>=0) {
mode=i;
LTMenuSet(mode);
}
break;
case MSG_KEY_DOWN:
switch (arg1) {
case '\n':
CleanUp;
Init;
mode=LTM_REFLECT_LINE;
LTMenuSet(mode);
break;
case 'r':
RandomBurst;
break;
case 'e':
full_speed=TRUE;
Sleep(1500);
FlushMsgs;
full_speed=FALSE;
break;
case 'n':
show_normals=!show_normals;
LTMenuSet(mode);
break;
case '0'...'5':
mode=arg1-'0';
LTMenuSet(mode);
break;
case CH_ESC:
case CH_SHIFT_ESC:
goto lt_done;
}
break;
}
}
lt_done:
GetMsg(,,1<<MSG_KEY_UP);
} catch
PutExcept;
Free(c);
SettingsPop;
for (i=0;i<mp_cnt;i++)
Kill(animate_tasks[i]);
CleanUp;
MenuPop;
}
LightTable;
ªF0*G1HG1 HPé$SY,3$n$SY,0$G2HNK<ã+é$SY,3$n$SY,0$1 é$SY,3$in$SY,0$%Fé$SY,3$out$SY,0$
Binary file not shown.
-1
View File
@@ -101,7 +101,6 @@ U0 PoleZeros()
"Drag the poles and zeros with left mouse.\n"
"Hold right mouse for phase plot.\n"
);
Refresh;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
Binary file not shown.
+1 -1
View File
@@ -39,7 +39,7 @@ U0 Lighting(CDC *dc,CD3I32 *ls,CD3I32 *poly,I64 color)
//TempleOS will generate a random U16
//and compare to dither_probability_u16 and
//will pick from two colors.
//Probability dithering does not work with pen_width>1 at this time.
//Probability dithering does not work with thick>1 at this time.
if (i<0) {
dc->color=ROPF_PROBABILITY_DITHER+BLACK<<16+color;
dc->dither_probability_u16=-i;
+1 -1
View File
@@ -28,7 +28,7 @@ public U0 SpeedLineDemo()
x2=arg1; y2=arg2;
cnt=0;
while (msg_code!=MSG_MS_L_UP) {
dc->pen_width=0.04*ms.speed;
dc->thick=0.04*ms.speed;
GrLine3(dc,x1,y1,0,x2,y2,0);
msg_code=GetMsg(&arg1,&arg2,
1<<MSG_MS_L_UP+1<<MSG_MS_MOVE);
Binary file not shown.
+1 -1
View File
@@ -69,7 +69,7 @@ U0 MPAdd()
for (i=0;i<TESTS_NUM-1;i++) {
dc->color=RED;
dc->pen_width=2;
dc->thick=2;
GrLine3(dc,i*h/(TESTS_NUM-1), v-ress[i ]/PERCENT_MAX*v,0,
(i+1)*h/(TESTS_NUM-1),v-ress[i+1]/PERCENT_MAX*v,0);
dc->color=GREEN;
+25
View File
@@ -0,0 +1,25 @@
// See $LK,"InFile",A="HI:InFile"$
U0 InEdUtil(U8 *filename)
{
I64 i;
"Ed(\"%s\");\n",filename;
//Go to start of file
Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
for (i=0;i<10000;i++) {
if (i)
Msg(MSG_KEY_DOWN_UP,0,SC_F3);
else
"%c0x%c",CH_CTRLF,CH_ESC;
Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);
"%02X",i;
Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);
Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);
"%c%c",CH_BACKSPACE,CH_BACKSPACE;
}
}
InEdUtil("MyFile");
+1 -1
View File
@@ -26,7 +26,7 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
U0 Init()
{
ode=ODENew(0,1e-4,ODEF_HAS_MASSES);
ode->derivative=&MyDerivative;
ode->derive=&MyDerivative;
ode->drag_v2=0.002;
ode->drag_v3=0.00001;
ode->acceleration_limit=5e3;
+143 -4
View File
@@ -16,11 +16,150 @@ $TX,"Source Code By Sym",HTML="http://www.templeos.org/Wb/Home/Web/SymsAlpha.htm
$LK,"TempleOS Credits",A="FI:::/Doc/Credits.DD"$ $LK,"History of TempleOS",A="FI:~/Web/History.DD"$
$LK,"Why 640x480?",A="FI:~/Web/640x480.DD"$
$LK,"Why 640x480?",A="FI:~/Web/640x480.DD"$ $LK,"Dianna Cowern",A="FI:~/Web/DLC/DLC.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,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/JKPARXPvozk\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/JKPARXPvozk\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
The IRA beat Sherlock Holmes with the grace of God. Ghandi was a faggot. God said boys should be taught military things.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/qGyPuey-1Jw\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/qGyPuey-1Jw\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
God said he wanted to "compact" the Jews. God said Jews were guilty because they did not warn their brother sinners, so suffered their sin. Reputation is worth more than gold. Niggers have a reputation -- no fathers. Irish have a reputation. Germans have a reputation. Attacker has the advantage. Jews have a reputation. God said the French once stood for character. ($TX,"Code of Chivalry",HTML="http://www.lordsandladies.org/knights-code-of-chivalry.htm"$) Ironic. I guess Jews did, too. Woah! God is boss. Too bad the Jews were cowards and didn't assassinate NAZI's.
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. The 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. <shrug> 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 white people.
$WW,1$$FG,5$$TX+CX,"Counter-Renaissance",HTML="http://www.templeos.org/Wb/Home/Web/TAD/TAD.html"$$FG$
I, Terry A. Davis, am the Father of the Counter-Renaissance. I am not interested in backward technology, but a society that places the same importance and spends the same GDP on God as 1200 A.D., with rejection of rationalism replaced with trust in perfect divine justice on Earth, with rejection of proud-of-heart liberalism replaced with colonialism, with rejection of love of neighbor replaced with love of God, with rejection of charity replaced with prayer and offerings to God, with the priest facing God instead of the people, and not rejecting such ideas as divine right of kings and class.
A Renaissance, rational, modern man like Richard Dawkins, or any confused Chinaman Marxist nigger might very proudly and earnestly, state this five-year-old logic: "Goliath kills David unless David is clever." I, however, believe the better man wins in fights because God, in an oracle, told me the World is perfectly just. Or, you can turn the other cheek and perfect justice will still be done.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/GHAhRyfNSBo\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/GHAhRyfNSBo\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/cV0tCphFMr8\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/cV0tCphFMr8\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/VXnAP6YUwZU\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/VXnAP6YUwZU\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$. $LK,"God's world has perfect justice.",A="FI:::/Home/Web/TAD/Justice.DD"$
Work in a patent office or change a diaper and you at least have a remote chance of going farther then the most honored MIT physicist. He has zero chance. To kiss the sky, you must horribly kneel.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/wirRZsAvJGQ\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/wirRZsAvJGQ\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/7J6aH7Ga7N0\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/7J6aH7Ga7N0\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/hnU7MKGz0tc\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/hnU7MKGz0tc\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/t8g1e-JLrhM\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/t8g1e-JLrhM\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/lK_cdkpazjI\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/lK_cdkpazjI\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/x9ffXnJQ0xE\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/x9ffXnJQ0xE\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
God's favorite national anthem. God hates America the Beautiful. He said they made themselves cry.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/PFx-56KkweM\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/PFx-56KkweM\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
Armor makes your body horribly inferior. God said the military should not use helmets.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/8kG9j5Io6yw\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/8kG9j5Io6yw\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/4mhrWnEJZEU\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/4mhrWnEJZEU\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/HgGAzBDE454\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/HgGAzBDE454\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/6zLpf1XDNko\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/6zLpf1XDNko\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/5C2nhCM8LEE\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/5C2nhCM8LEE\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/KZaz7OqyTHQ\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/KZaz7OqyTHQ\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/QK8mJJJvaes\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/QK8mJJJvaes\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/wsrvmNtWU4E\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/wsrvmNtWU4E\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
TempleOS is a trading post with a space alien. What do you have to trade? Entertainment? God's favorite thing on TV is soap operas. God mocked German music.
God's favorite movie.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/b36mjDR-9WU\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/b36mjDR-9WU\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
God's favorite band is Beatles.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/VJDJs9dumZI\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/VJDJs9dumZI\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/Cv6tuzHUuuk\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/Cv6tuzHUuuk\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
God said this makes a mockery of classical music. Germans are cows who cannot hear the music. Blue eyes come from Neanderthals.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/OZEMT6Ts6sg\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/OZEMT6Ts6sg\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$WW,1$================================================================================
i cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno’t mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghi t pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! if you can raed tihs forwrad it.
================================================================================
Grammar is for vain arrogant niggers, full of redundancy. Secretaries are niggers. Don't be vain. Getting humiliated by "potatoe" adds grace.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/VAu_no-uT-o\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/VAu_no-uT-o\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
America is special because of God and we have been exceptional since the Pilgrims, with manifest destiny. Japan and China are inferior, nigger cultures. We will force them to use an alphabet. We will put the English King James TempleOS into every Intel chip in a factory ROM, with 8-bit ASCII only. We will pay the national debt with $LK,"The TempleOS Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$.
I saw a program on Amazon uncontacted tribes. I said, "How precious!" God said, "Heathens." We are a superior culture. There is a YouTube video which says capitalism doesn't work in China because it only works in Christian cultures. God said we are the Roman Empire and Muslims are the barbarians. English is the new Latin. We will force the world to use A.D./B.C. instead of C.E./B.C.E.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/ExWfh6sGyso\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/ExWfh6sGyso\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
A Counter-Renaissance man knows what "humble of heart" means. Jesus said, "I am meek and humble of heart." What does "humble of head" mean? It means you look around and decide you are not the smartest. A person who is humble of heart looks around and decides he is not the most compassionate. A proud of heart *person believes he is more compassionate than others and says, "You are mean, selfish people and do not love the poor as much as Judas and I love the poor!" I say that Africa imports 60% of its food and they need white-owned farms.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/jkje4FiH9Qc\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/jkje4FiH9Qc\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/2YpQhxqnaNw\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/2YpQhxqnaNw\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
Animals have pecking order. If two big niggers walk on the sidewalk toward me, I go in the gutter. It is okay for men to hurt feelings, like one high school football team making another very sad by beating them. Jews did animal sacrifices. e.g. I'm sorry, cow, I like meat so you must die. Thanks, Jesus, for dying so I can sin. Grace, not works, is humble of heart. Fuck-it. I didn't ask Jesus to die, He just did it. Thanks.
A Renaissance proud-of-heart man, like Pope Francis, loves neighbor, not God. He focuses on rational acts, such as charity instead of irrational acts, such as prayer. A Counter-Renaissance man believes that if the World is perfectly just, there is nothing wrong with niggers living in teepees and shitting in buckets. After all, monks take vows of poverty, for God's sake! Read $TX,"Numbers 11",HTML="http://www.biblegateway.com/passage/?search=Numbers%2011&version=NIV"$. The odds of a rich man going to Heaven are like a $LK,"camel going through a needle",A="BF:Matthew,19:24"$. Sale of indulgences is perfectly reasonable, since God is perfectly just and if a rich man gives-up something, he is compensated. God purposely antagonizes those who envy. God said of Arabs and Jews, "Oil funny, hopefully!" God likes the Beverly Hillbillies. The original German Martin Luthur was a low class nigger who seethed with anger at the church getting money. As a matter of fact, God purposely burns money in front of the greedy to punish them. Martin Luther was nothing but a run-of-the-mill populist Marxist nigger who had problems accepting lawful authority.
A Renaissance man attempts to use philosophy to prove God exists. A Counter-Renaissance man knows that belief in God comes not philosophy, but from the occult. A Counter-Renaissance man enquires of the Lord at oracles, like $LK,"King Solomon's Oracle",A="BF:1 Kings,6:21"$, providing he has made an offering like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$.
I am not in favor of ignorance, although, Galileo means nothing when you are not an atheist. People believe the Dark Age Church created ignorance on purpose. Good an evil, light and dark are clear. Today, the CIA, the liberal elites, and scheming wicked Jew-niggers create ignorance. I am shocked when people speak of code obfuscation. That is the most wicked thing, and paywall barriers. Obfuscation is code that is more complicated than necessary. I try to make my code the opposite of obsfucated -- more simple than necessary. Bill Gates said a company is a castle -- build walls or fight everybody who comes along. God said, "You ate your children in the siege."
God said Creationists brought shame with their stupidity. However, evolution loses all it's significance when you are not an atheist. By the way, God said the IQ obsessed people are, "vain", as though they look in the mirror frequently during the day and say to themselves, "You know? I really am smart. I should reproduce and help the gene pool. <sigh> Damn-it! Those niggers really really should not reproduce. We need more abortions and birth control." That's what they are obsessed with 16 hours a day, instead of something more healthy and less ugly, like God.
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/A_hzz2XSAaI\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/A_hzz2XSAaI\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
@@ -28,7 +167,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.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html"$, 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,152",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 +183,7 @@ $HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://w
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/W_b4zMxfLvA\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/W_b4zMxfLvA\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
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,834",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.6",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.
+1 -1
View File
@@ -184,7 +184,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
"<head>\n"
"<meta http-equiv=\"Content-Type\" "
"content=\"text/html;charset=US-ASCII\">\n"
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.02",D="DD_OS_NAME_VERSION"$\">\n";
"<meta name=\"generator\" content=\"$TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$\">\n";
if (!body_header) body_header=
"<body>\n"
"<pre style=\"font-family:courier;font-size:10pt\">\n";
+16 -10
View File
@@ -48,7 +48,7 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
LogStruct *tmplg;
CDateStruct ds;
I64 i;
"%Q\n",name;
"%$$Q\n",name;
while (doc_e!=doc) {
if (doc_e->type_u8==DOCT_TEXT) {
tmplg=CAlloc(sizeof(LogStruct));
@@ -124,7 +124,7 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
throw;
} catch {
Fs->catch_except=TRUE;
"%Q\n",doc_e->tag;
"%$$Q\n",doc_e->tag;
LogStructDel(tmplg);
}
}
@@ -317,7 +317,7 @@ U0 LinkTreeTraverse(LinkStruct *root)
{
if (root) {
LinkTreeTraverse(root->left);
"%3d:%Q\n",root->cnt,root->link;
"%3d:%$$Q\n",root->cnt,root->link;
LinkTreeTraverse(root->right);
}
}
@@ -335,7 +335,7 @@ U0 FileTreeTraverse(LinkStruct *root)
{
if (root) {
FileTreeTraverse(root->left);
"%3d:%Q\n",root->cnt,root->file;
"%3d:%$$Q\n",root->cnt,root->file;
FileTreeTraverse(root->right);
}
}
@@ -378,8 +378,11 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
"\n\nDownloads of /TempleOSCD.ISO\n";
for (i=start;i<=end;i+=1<<32)
"%D:%5d%5d\n",i,day_dup_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start];
"%D Dups:%5d Total:%5d Uniques:%5d\n",i,
day_dup_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start]-
day_dup_cnts[(i+local_time_offset)>>32-days_start];
"\n\nDownloads of /TempleOSCD.ISO\n"
"'-' is a dup. '+' is not a dup.\n";
@@ -396,7 +399,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
'+';
'\n';
}
"Total:%d Dups:%d\n",cnt,dups;
"Total:%d Dups:%d Uniques:%d\n",cnt,dups,cnt-dups;
"\n\nDownloads of /TempleOSCD.ISO\n";
LinkTreeTraverse(link_root);
@@ -463,8 +466,11 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
"\n\nHits on /index.html\n"
"'-' is a dup. '+' is not a dup.\n";
for (i=start;i<=end;i+=1<<32)
"%D:%5d%5d\n",i,day_dup_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start];
"%D Dups:%5d Total:%5d Uniques:%5d\n",i,
day_dup_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start],
day_cnts[(i+local_time_offset)>>32-days_start]-
day_dup_cnts[(i+local_time_offset)>>32-days_start];
"\n\nHits on /index.html\n";
if (hours_end-hours_start>=HOURS_MAX)
@@ -480,7 +486,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
'+';
'\n';
}
"Total:%d Dups:%d\n",cnt,dups;
"Total:%d Dups:%d Uniques:%d\n",cnt,dups,cnt-dups;
"\n\nHits on /index.html\n";
LinkTreeTraverse(link_root);
+1 -1
View File
@@ -7,7 +7,7 @@ $TX,"www.templeos.org",HTML="http://www.templeos.org"$
$FG,5$Owner/President:$FG$
$TX,"Terry A. Davis",HTML="mailto:tdavis@templeos.org"$
$HC,"<center><img src=\"http://www.templeos.org/images/140414TerryADavis.jpg\" width=\"432\" height=\"324\" alt=\"\"></center>"$
$HC,"<center><img src=\"http://www.templeos.org/images/170310TerryADavis.jpg\" width=\"320\" height=\"320\" alt=\"\"></center>"$
8144 Sickle Lane
Las Vegas, NV 89128
+20
View File
@@ -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.
+20
View File
@@ -2,6 +2,26 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
Use $LK,"R",A="MN:R"$() to rename if I change a label.
$IV,1$----03/14/17 01:47:41----$IV,0$
$IV,1$----03/14/17 00:14:39----$IV,0$
* $BK,1$TempleOS version 5.03 Released$BK,0$
* $LK,"R",A="MN:R"$("pen_width","thick");
$IV,1$----02/05/17 16:37:39----$IV,0$
* Added $LK,"::/Doc/BlkChain.DD"$.
$IV,1$----02/03/17 17:27:36----$IV,0$
* Added multicore $LK,"::/Adam/AMathODE.HC"$.
* Improved support for sub and super scripts.
$IV,1$----01/31/17 10:22:10----$IV,0$
* Added $LK,"::/Demo/Graphics/LightTable.HC"$.
* Added $LK,"TOS Linux Setup",A="FF:::/Demo/AcctExample/TOS/TOSPolicies.DD,TOS Linux Setup"$.
$IV,1$----01/27/17 08:13:37----$IV,0$
* Added $LK,"DocLineRead",A="MN:DocLineRead"$() and $LK,"DocLineWrite",A="MN:DocLineWrite"$().
$IV,1$----01/25/17 20:44:17----$IV,0$
* $LK,"R",A="MN:R"$("DocLineNumGoto","DocGoToLine");
* $LK,"R",A="MN:R"$("Clipboard","Clip");
+1
View File
@@ -108,6 +108,7 @@ $MA-X+PU,"::/Apps/KeepAway",LM="Cd(\"::/Apps/KeepAway\");Dir;View;\n"$
$LK,"::/Demo/Games/Rocket.HC"$
$LK,"::/Demo/Games/RocketScience.HC"$
$LK,"::/Demo/Games/MassSpring.HC"$
$LK,"::/Demo/Graphics/LightTable.HC"$
$LK,"::/Demo/Games/Whap.HC"$
$LK,"::/Demo/Games/Squirt.HC"$
$MA-X+PU,"::/Apps/X-Caliber",LM="Cd(\"::/Apps/X-Caliber\");Dir;View;\n"$
Binary file not shown.
Loaded 100 of 111 files, more files were not shown because too many files have changed in this diff. Show more