TempleOS V5.03 Nightly (ISO SHA-1 aed1efc)

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-09 11:35:02 +02:00
1 parent bbd014d8e9
commit da84afbaf7
123 files changed
+3404 -3358

No files matched your search

Binary file not shown.
+1 -1
View File
@@ -226,7 +226,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=I64_MIN)
DirNew(dv,cur_dir,&de,FALSE); DirNew(dv,cur_dir,&de,FALSE);
} }
} else } else
PrintErr("File not found.\n"); PrintErr("File not found: \"%s\".\n",filename);
Free(cur_dir); Free(cur_dir);
} }
public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?", public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?",
+13 -31
View File
@@ -141,6 +141,9 @@ CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_head,Bool init)
return tmpde; return tmpde;
} }
#define DEF2_PROCESSED 1
#define DEF2_NOT_INITIALIZED 2
U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode)
{ {
CDrv *dv; CDrv *dv;
@@ -222,7 +225,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode)
tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE);
else { else {
tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,FALSE); tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,FALSE);
tmpde->flags|=DEF_NOT_INITIALIZED; tmpde->user_data2|=DEF2_NOT_INITIALIZED;
} }
} else if (dv->fs_type==FSt_REDSEA || dv->fs_type==FSt_FAT32) } else if (dv->fs_type==FSt_REDSEA || dv->fs_type==FSt_FAT32)
FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE);
@@ -388,11 +391,10 @@ U0 FMFmtDrv(CDoc *doc)
Free(st); Free(st);
} }
U0 FMMakeISO(CDoc *doc,I64 type) U0 FMMakeISO(CDoc *doc)
{ {
CDocEntry *doc_ce=doc->cur_entry; CDocEntry *doc_ce=doc->cur_entry;
CDirEntry *tmpde; CDirEntry *tmpde;
U8 *st;
if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL)
tmpde=doc_ce->user_data; tmpde=doc_ce->user_data;
else else
@@ -402,19 +404,7 @@ U0 FMMakeISO(CDoc *doc,I64 type)
tmpde=tmpde->parent; tmpde=tmpde->parent;
if (tmpde && *tmpde->full_name) { if (tmpde && *tmpde->full_name) {
Silent; Silent;
switch (type) {
case FSt_REDSEA:
RedSeaISO(,tmpde->full_name); RedSeaISO(,tmpde->full_name);
break;
case FSt_ISO9660:
if (tmpde->full_name[StrLen(tmpde->full_name)-1]=='/')
st=MStrPrint("%s*",tmpde->full_name);
else
st=MStrPrint("%s/*",tmpde->full_name);
ISO9660ISO(,st);
Free(st);
break;
}
Silent(OFF); Silent(OFF);
} }
} }
@@ -455,18 +445,18 @@ U0 FMCopy(CDoc *doc)
while (doc_e!=doc2) { while (doc_e!=doc2) {
if (doc_e->type_u8==DOCT_MENU_VAL) { if (doc_e->type_u8==DOCT_MENU_VAL) {
tmpde=doc_e->user_data; tmpde=doc_e->user_data;
tmpde->flags|=DEF_PROCESSED; tmpde->user_data2|=DEF2_PROCESSED;
tmpde2=tmpde->parent; tmpde2=tmpde->parent;
if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) {
Silent; Silent;
Copy(tmpde->full_name,tmpde1->full_name); Copy(tmpde->full_name,tmpde1->full_name);
Silent(OFF); Silent(OFF);
} }
} else if (doc_e->type_u8==DOCT_TREE) { } else if (doc_e->type_u8==DOCT_TREE) {
tmpde=doc_e->user_data; tmpde=doc_e->user_data;
tmpde->flags|=DEF_PROCESSED; tmpde->user_data2|=DEF2_PROCESSED;
tmpde2=tmpde->parent; tmpde2=tmpde->parent;
if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) {
Silent; Silent;
if (*tmpde1->name) if (*tmpde1->name)
st=MStrPrint("%s/%s",tmpde1->full_name,tmpde->name); st=MStrPrint("%s/%s",tmpde1->full_name,tmpde->name);
@@ -496,9 +486,8 @@ U0 FMCopy(CDoc *doc)
#define FMR_MOUNT_REDSEA_ISO_C 9 #define FMR_MOUNT_REDSEA_ISO_C 9
#define FMR_UNMOUNT 10 #define FMR_UNMOUNT 10
#define FMR_MAKE_REDSEA_ISO_C 11 #define FMR_MAKE_REDSEA_ISO_C 11
#define FMR_MAKE_ISO9660 12 #define FMR_BURN_ISO 12
#define FMR_BURN_ISO 13 #define FMR_HELP 13
#define FMR_HELP 14
I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL) I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL)
{ {
@@ -518,8 +507,7 @@ I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL)
"LE=FMR_MOUNT_REDSEA_ISO_C$$" "LE=FMR_MOUNT_REDSEA_ISO_C$$"
"$$CM+LX,29,0$$$$BT,\"UNMOUNT \",LE=FMR_UNMOUNT$$" "$$CM+LX,29,0$$$$BT,\"UNMOUNT \",LE=FMR_UNMOUNT$$"
"$$CM+LX,1,3 $$$$BT,\"MAKE ISO.C (CD/DVD) FILE\",LE=FMR_MAKE_REDSEA_ISO_C$$" "$$CM+LX,1,3 $$$$BT,\"MAKE ISO.C (CD/DVD) FILE\",LE=FMR_MAKE_REDSEA_ISO_C$$"
"$$CM+LX,29,0$$$$BT,\"MAKE ISO (CD/DVD) FILE \",LE=FMR_MAKE_ISO9660$$" "$$CM+LX,29,0$$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$"
"$$CM+LX,1,3 $$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$"
"$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$" "$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$"
"$$CM+LX,29,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n"); "$$CM+LX,29,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n");
if (footer) DocPrint(doc,"%s",footer); if (footer) DocPrint(doc,"%s",footer);
@@ -567,9 +555,6 @@ U0 FMRightClick()
case FMR_MAKE_REDSEA_ISO_C: case FMR_MAKE_REDSEA_ISO_C:
Msg(MSG_KEY_DOWN,'m',0); Msg(MSG_KEY_DOWN,'m',0);
break; break;
case FMR_MAKE_ISO9660:
Msg(MSG_KEY_DOWN,'M',0);
break;
case FMR_BURN_ISO: case FMR_BURN_ISO:
Msg(MSG_KEY_DOWN,'B',0); Msg(MSG_KEY_DOWN,'B',0);
break; break;
@@ -724,11 +709,8 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL)
case 'u': case 'u':
FMUnmount(doc); FMUnmount(doc);
break; break;
case 'M':
FMMakeISO(doc,FSt_ISO9660);
break;
case 'm': case 'm':
FMMakeISO(doc,FSt_REDSEA); FMMakeISO(doc);
break; break;
case 'B': case 'B':
FMBurnISO(doc); FMBurnISO(doc);
+3 -7
View File
@@ -8,19 +8,15 @@ U0 LoadDocDefines()
DefinePrint("DD_TEMPLEOS_AGE","%0.1f", DefinePrint("DD_TEMPLEOS_AGE","%0.1f",
(Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS); (Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS);
//This is cut and replaced when I generate a distro.
//See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOS/TOSDistro.HC,DD_TEMPLEOS_LOC"$.
DefinePrint("DD_KERNEL","%08X",bfh); DefinePrint("DD_KERNEL","%08X",bfh);
bfh(I64)+=bfh->file_size-1; bfh(I64)+=bfh->file_size-1;
DefinePrint("DD_KERNEL_END","%08X",bfh); DefinePrint("DD_KERNEL_END","%08X",bfh);
//$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$ //$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$
$TR-C,"LineRep"$ $TR,"LineRep"$
$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,860"); $ID,2$DefinePrint("DD_TEMPLEOS_LOC","80,800");
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,136"); $ID,-2$
$ID,-4$
DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR); DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR);
DefinePrint("DD_MP_VECT_END","%08X", DefinePrint("DD_MP_VECT_END","%08X",
MP_VECT_ADDR+COREAP_16BIT_INIT_END-COREAP_16BIT_INIT-1); MP_VECT_ADDR+COREAP_16BIT_INIT_END-COREAP_16BIT_INIT-1);
-5
View File
@@ -5,13 +5,10 @@ extern U0 ACFillIn(I64 n);
extern U0 ACMan(I64 n,CTask *parent_task=NULL); extern U0 ACMan(I64 n,CTask *parent_task=NULL);
extern I64 AdamFile(U8 *filename,Bool warn_ext=TRUE); extern I64 AdamFile(U8 *filename,Bool warn_ext=TRUE);
extern Bool AutoComplete(Bool val=OFF); extern Bool AutoComplete(Bool val=OFF);
extern I64 BMPWrite(U8 *filename,CDC *dc,I64 bits=4);
extern U0 ClipDel(); extern U0 ClipDel();
extern CCtrl *CtrlFindUnique(CTask *haystack_task,I64 needle_type); extern CCtrl *CtrlFindUnique(CTask *haystack_task,I64 needle_type);
extern Bool CtrlInside(CCtrl *c,I64 x,I64 y); extern Bool CtrlInside(CCtrl *c,I64 x,I64 y);
extern U8 *DC2Sprite(CDC *tmpb); extern U8 *DC2Sprite(CDC *tmpb);
extern U0 DocBMP(CDoc *doc=NULL,U8 *filename,
Bool dither_probability=FALSE,Bool use_ms_paint_palette=FALSE);
extern U0 DocBinDel(CDoc *doc,CDocBin *b); extern U0 DocBinDel(CDoc *doc,CDocBin *b);
extern U0 DocBinsValidate(CDoc *doc); extern U0 DocBinsValidate(CDoc *doc);
extern U0 DocBottom(CDoc *doc=NULL); extern U0 DocBottom(CDoc *doc=NULL);
@@ -51,8 +48,6 @@ extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0);
extern I64 FindWiz(); extern I64 FindWiz();
extern I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=I64_MIN,I64 hi=I64_MAX); extern I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=I64_MIN,I64 hi=I64_MAX);
extern Bool GrPlot0(CDC *dc,I64 x,I64 y); extern Bool GrPlot0(CDC *dc,I64 x,I64 y);
extern I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask,
U8 *fu_flags=NULL,U8 *_stage2_filename=NULL);
extern CMenuEntry *MenuEntryFind(CMenu *haystack_menu,U8 *needle_full_name); extern CMenuEntry *MenuEntryFind(CMenu *haystack_menu,U8 *needle_full_name);
extern CMenu *MenuFilePush(U8 *filename); extern CMenu *MenuFilePush(U8 *filename);
extern U0 MenuPop(); extern U0 MenuPop();
+7 -4
View File
@@ -272,14 +272,17 @@ per second. It defaults to
} }
ona=Note2Ona(note,octave); ona=Note2Ona(note,octave);
} else } else
ona=0; ona=ONA_REST;
if (words && (word=LstSub(i++,words)) && StrCmp(word," ")) if (words && (word=LstSub(i++,words)) && StrCmp(word," "))
"%s",word; "%s",word;
d=JIFFY_FREQ*music.note_len/music.tempo; d=JIFFY_FREQ*music.note_len/music.tempo;
if (tie) {
on_jiffies =d;
off_jiffies =0;
} else {
on_jiffies =d*music.stacatto_factor; on_jiffies =d*music.stacatto_factor;
off_jiffies =d*(1.0-music.stacatto_factor); off_jiffies =d*(1.0-music.stacatto_factor);
}
timeout_val+=on_jiffies; timeout_val+=on_jiffies;
timeout_val2=timeout_val+off_jiffies; timeout_val2=timeout_val+off_jiffies;
@@ -288,7 +291,7 @@ per second. It defaults to
SleepUntil(timeout_val); SleepUntil(timeout_val);
music.tM_correction+=on_jiffies-ToI64(on_jiffies); music.tM_correction+=on_jiffies-ToI64(on_jiffies);
if (!music.mute && !tie) if (!music.mute)
Snd; Snd;
SleepUntil(timeout_val2); SleepUntil(timeout_val2);
music.tM_correction+=off_jiffies-ToI64(off_jiffies); music.tM_correction+=off_jiffies-ToI64(off_jiffies);
+4 -4
View File
@@ -258,13 +258,13 @@ U0 ACTask(I64)
public Bool AutoComplete(Bool val=OFF) public Bool AutoComplete(Bool val=OFF)
{//Turn AutoComplete OFF or ON. {//Turn AutoComplete OFF or ON.
Bool old_autocomplete=FALSE; Bool old_val=FALSE;
while (Bt(&ac.flags,ACf_INIT_IN_PROGRESS)) while (Bt(&ac.flags,ACf_INIT_IN_PROGRESS))
Sleep(10); Sleep(10);
if (val) { if (val) {
if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) { if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) {
if (TaskValidate(ac.task)) if (TaskValidate(ac.task))
old_autocomplete=TRUE; old_val=TRUE;
else { else {
ac.task=Spawn(&ACTask,NULL,"AutoComplete"); ac.task=Spawn(&ACTask,NULL,"AutoComplete");
TaskWait(ac.task); TaskWait(ac.task);
@@ -274,10 +274,10 @@ public Bool AutoComplete(Bool val=OFF)
} else { } else {
if (TaskValidate(ac.task)) { if (TaskValidate(ac.task)) {
if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) if (Bt(&sys_run_level,RLf_AUTO_COMPLETE))
old_autocomplete=TRUE; old_val=TRUE;
Kill(ac.task); Kill(ac.task);
DeathWait(&ac.task); DeathWait(&ac.task);
} }
} }
return old_autocomplete; return old_val;
} }
+3 -10
View File
@@ -264,9 +264,9 @@ Bool DocCaptureUndo(CDoc *doc,Bool force=FALSE)
doc->undo_cnt++; doc->undo_cnt++;
u->doc_flags=doc->flags; u->doc_flags=doc->flags;
res=TRUE; res=TRUE;
}
if (doc->flags&DOCF_AUTO_SAVE) if (doc->flags&DOCF_AUTO_SAVE)
DocWrite(doc); DocWrite(doc);
}
if (unlock) if (unlock)
DocUnlock(doc); DocUnlock(doc);
} }
@@ -296,8 +296,7 @@ U0 DocUndoRestore(CDoc *doc)
DocUnlock(doc); DocUnlock(doc);
} }
#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ #help_index "Graphics/GR Files;DolDoc/Output;StdOut/DolDoc"
"DolDoc/Output;StdOut/DolDoc"
public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1)
{//Output txt or graphic file to document. {//Output txt or graphic file to document.
Bool res=FALSE; Bool res=FALSE;
@@ -311,12 +310,6 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1)
DocDump(doc2,100000); DocDump(doc2,100000);
DocDel(doc2); DocDel(doc2);
res=TRUE; res=TRUE;
} else if (FilesFindMatch(filename,"*.BMP.Z")) {
DocBMP(doc,filename,,FALSE);
res=TRUE;
} else if (FilesFindMatch(filename,"*.BMP;*.bmp")) {
DocBMP(doc,filename,,TRUE);
res=TRUE;
} else if (FilesFindMatch(filename,"*.GR*")) { } else if (FilesFindMatch(filename,"*.GR*")) {
DocGR(doc,filename); DocGR(doc,filename);
res=TRUE; res=TRUE;
@@ -326,7 +319,7 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1)
return res; return res;
} }
#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ #help_index "Graphics/GR Files;"\
"File/Cmd Line (Typically);DolDoc/Cmd Line (Typically);"\ "File/Cmd Line (Typically);DolDoc/Cmd Line (Typically);"\
"StdOut;Cmd Line (Typically)" "StdOut;Cmd Line (Typically)"
public Bool Type(U8 *filename,I64 trailing_new_lines=1) public Bool Type(U8 *filename,I64 trailing_new_lines=1)
+1 -1
View File
@@ -572,7 +572,7 @@ Bool sel=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE)
class CEdLineGoTo class CEdLineGoTo
{ {
I64 line fmtstr "$$DA,A=\"Go to Line:%d\"$$"; I64 line format "$$DA,A=\"Go to Line:%d\"$$";
}; };
U0 EdGoToLine(CDoc *doc) U0 EdGoToLine(CDoc *doc)
+5 -5
View File
@@ -208,11 +208,11 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e)
#help_index "DolDoc/Input;StdIn/DolDoc" #help_index "DolDoc/Input;StdIn/DolDoc"
public Bool DocForm(U8 *_d,U8 *class_name=lastclass, public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
I64 dof_flags=0,U8 *header=NULL,U8 *footer=NULL) I64 dof_flags=0,U8 *header=NULL,U8 *footer=NULL)
{//User input. Supply a class name that has fmtstr definitions. {//User input. Supply a class name that has format definitions.
//See $LK,"::/Demo/DolDoc/Form.HC"$ and $LK,"::/Demo/LastClass.HC"$. //See $LK,"::/Demo/DolDoc/Form.HC"$ and $LK,"::/Demo/LastClass.HC"$.
CMemberLst *ml; CMemberLst *ml;
CDocEntry *doc_e; CDocEntry *doc_e;
U8 *fmtstr; U8 *format;
CHashClass *tmpc,*tmpc2; CHashClass *tmpc,*tmpc2;
CDoc *doc; CDoc *doc;
Bool res=FALSE; Bool res=FALSE;
@@ -227,8 +227,8 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
doc->flags|=DOCF_SIZE_MIN; doc->flags|=DOCF_SIZE_MIN;
ml=tmpc->member_lst_and_root; ml=tmpc->member_lst_and_root;
while (ml) { while (ml) {
if ((fmtstr=MemberMetaData("fmtstr",ml)) && if ((format=MemberMetaData("format",ml)) &&
(doc_e=DocPrint(doc,"%s",fmtstr))) { (doc_e=DocPrint(doc,"%s",format))) {
tmpc2=ml->member_class; tmpc2=ml->member_class;
if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST || if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST ||
doc_e->type_u8==DOCT_CHECK_BOX) && !tmpc2->ptr_stars_cnt) { doc_e->type_u8==DOCT_CHECK_BOX) && !tmpc2->ptr_stars_cnt) {
@@ -254,7 +254,7 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
doc_e->data=*doc_e->user_data(U8 **); doc_e->data=*doc_e->user_data(U8 **);
} else } else
doc_e->data=_d+ml->offset; doc_e->data=_d+ml->offset;
doc_e->my_fmt_data=MemberMetaData("fmtdata",ml); doc_e->my_fmt_data=MemberMetaData("data",ml);
DocDataFmt(doc,doc_e); DocDataFmt(doc,doc_e);
} }
ml=ml->next; ml=ml->next;
+9 -9
View File
@@ -53,16 +53,16 @@ public I64 PopUpColorLighting(U8 *header=NULL)
class CTransformForm class CTransformForm
{ {
F64 x_scale fmtstr "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n"; F64 x_scale format "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n";
F64 y_scale fmtstr "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n"; F64 y_scale format "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n";
F64 z_scale fmtstr "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n"; F64 z_scale format "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n";
F64 é_z fmtstr "\nAngles are in degrees\n" F64 é_z format "\nAngles are in degrees\n"
"$$DA-TRM,A=\"Z-Axis :%12.6f\"$$\n"; "$$DA-TRM,A=\"Z-Axis :%12.6f\"$$\n";
F64 é_y fmtstr "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n"; F64 é_y format "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n";
F64 é_x fmtstr "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n"; F64 é_x format "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n";
F64 x_offset fmtstr "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n"; F64 x_offset format "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n";
F64 y_offset fmtstr "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n"; F64 y_offset format "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n";
F64 z_offset fmtstr "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n"; F64 z_offset format "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n";
}; };
#help_index "Graphics/Input;Graphics/Math/3D Transformation" #help_index "Graphics/Input;Graphics/Math/3D Transformation"
+11 -11
View File
@@ -70,17 +70,17 @@ I64 PopUpTermRight(U8 *header)
if (header) DocPrint(doc,"%s",header); if (header) DocPrint(doc,"%s",header);
DocPrint(doc,"\n\n" DocPrint(doc,"\n\n"
"TXT=%s\nDD =%s\nJIT=%s\nGR =%s" "TXT=%s\nDD =%s\nJIT=%s\nGR =%s"
"$$CM+LX,1,3 $$$$BT,\"INCLUDE JIT\",LE=RIGHT_INCLUDE$$" "$$CM+LX,1,3 $$$$BT,\"Include JIT\",LE=RIGHT_INCLUDE$$"
"$$CM+LX,25,0$$$$BT,\"ADAM_INCLUDE JIT\",LE=RIGHT_AINCLUDE$$" "$$CM+LX,25,0$$$$BT,\"Adam Include JIT\",LE=RIGHT_AINCLUDE$$"
"$$CM+LX,1,3 $$$$BT,\"COPY \",LE=RIGHT_COPY$$" "$$CM+LX,1,3 $$$$BT,\"Copy \",LE=RIGHT_COPY$$"
"$$CM+LX,25,0$$$$BT,\"MOVE OR RENAME \",LE=RIGHT_MOVE$$" "$$CM+LX,25,0$$$$BT,\"Move or Rename \",LE=RIGHT_MOVE$$"
"$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=RIGHT_DELETE$$" "$$CM+LX,1,3 $$$$BT,\"Delete \",LE=RIGHT_DELETE$$"
"$$CM+LX,25,0$$$$BT,\"TYPE TXT;GR\",LE=RIGHT_TYPE$$" "$$CM+LX,25,0$$$$BT,\"Type TXT;GR\",LE=RIGHT_TYPE$$"
"$$CM+LX,1,3 $$$$BT,\"DOLDOC EDIT DD\",LE=RIGHT_ED$$" "$$CM+LX,1,3 $$$$BT,\"DolDoc Edit DD\",LE=RIGHT_ED$$"
"$$CM+LX,25,0$$$$BT,\"MOUNT ISO.C\",LE=RIGHT_MOUNT$$" "$$CM+LX,25,0$$$$BT,\"Mount ISO.C\",LE=RIGHT_MOUNT$$"
"$$CM+LX,1,3 $$$$BT,\"PLAIN TEXT EDIT TXT\",LE=RIGHT_PLAIN$$" "$$CM+LX,1,3 $$$$BT,\"Plain Text Edit TXT\",LE=RIGHT_PLAIN$$"
"$$CM+LX,25,0$$$$BT,\"INFILE IN\",LE=RIGHT_INFILE$$" "$$CM+LX,25,0$$$$BT,\"Infile IN\",LE=RIGHT_INFILE$$"
"$$CM+LX,1,3 $$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n", "$$CM+LX,1,3 $$$$BT,\"Cancel \",LE=DOCM_CANCEL$$\n",
FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR); FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR);
i=PopUpMenu(doc); i=PopUpMenu(doc);
DocDel(doc); DocDel(doc);
+153 -153
View File
@@ -31,132 +31,132 @@ I64 PopUpLinkType(Bool include_anchor)
class CEdFileLink class CEdFileLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; file[512] format "$$DA-P,A=\"File :%s\"$$\n";
I64 book; I64 book;
U8 aux[512]; U8 aux[512];
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdFileAnchorLink class CEdFileAnchorLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; file[512] format "$$DA-P,A=\"File :%s\"$$\n";
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n";
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdFileFindLink class CEdFileFindLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; file[512] format "$$DA-P,A=\"File :%s\"$$\n";
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Str :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Str :%s\"$$\n";
I64 num fmtstr "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n"; I64 num format "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n";
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdFileLineLink class CEdFileLineLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; file[512] format "$$DA-P,A=\"File :%s\"$$\n";
I64 book; I64 book;
U8 aux[512]; U8 aux[512];
I64 num fmtstr "$$DA-TRM,A=\"Line Num :%04d\"$$\n"; I64 num format "$$DA-TRM,A=\"Line Num :%04d\"$$\n";
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdManPageLink class CEdManPageLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512]; file[512];
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Label :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Label :%s\"$$\n";
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdAddrLink class CEdAddrLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512]; file[512];
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Addr Exp :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Addr Exp :%s\"$$\n";
I64 num fmtstr "$$DA-TRM,A=\"Bin Size :%04d\"$$\n"; I64 num format "$$DA-TRM,A=\"Bin Size :%04d\"$$\n";
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdPlaceAnchor class CEdPlaceAnchor
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512]; file[512];
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n";
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up, Bool pop_up,
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide fmtstr "$$CB,\"Hide\"$$\n"; hide format "$$CB,\"Hide\"$$\n";
}; };
class CEdBibleLink class CEdBibleLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512]; file[512];
I64 book fmtstr "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n"; I64 book format "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n";
U8 aux[512] fmtstr "$$DA-P,A=\"Chapter Verse :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Chapter Verse :%s\"$$\n";
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdDefLink class CEdDefLink
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512]; file[512];
I64 book; I64 book;
U8 aux[512] fmtstr "$$DA-P,A=\"Word :%s\"$$\n"; U8 aux[512] format "$$DA-P,A=\"Word :%s\"$$\n";
I64 num fmtstr "$$DA-TRM,A=\"Def Num :%4d\"$$\n"; I64 num format "$$DA-TRM,A=\"Def Num :%4d\"$$\n";
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
class CEdProject class CEdProject
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; file[512] format "$$DA-P,A=\"File :%s\"$$\n";
I64 book; I64 book;
U8 aux[512]; U8 aux[512];
I64 num; I64 num;
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", Bool pop_up format "$$CB,\"PopUp\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n", quote format "$$CB,\"Quote\"$$\n",
hide; hide;
}; };
@@ -434,14 +434,14 @@ U0 EdInsColor()
class CEdPageSetting1 class CEdPageSetting1
{ {
U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n";
Bool winrel; Bool winrel;
}; };
class CEdPageSetting2 class CEdPageSetting2
{ {
U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n";
Bool winrel fmtstr "$$CB,\"Win Relative\"$$\n"; Bool winrel format "$$CB,\"Win Relative\"$$\n";
}; };
U0 EdInsPageSetting() U0 EdInsPageSetting()
@@ -508,21 +508,21 @@ I64 PopUpWidgetType()
class CEdText class CEdText
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
Bool left_x fmtstr "$$CB,\"Left X\"$$\n", Bool left_x format "$$CB,\"Left X\"$$\n",
center_x fmtstr "$$CB,\"Center X\"$$\n", center_x format "$$CB,\"Center X\"$$\n",
right_x fmtstr "$$CB,\"Right X\"$$\n", right_x format "$$CB,\"Right X\"$$\n",
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", margin_rel format "$$CB,\"Margin Rel X\"$$\n",
blink fmtstr "$$CB,\"Blink\"$$\n", blink format "$$CB,\"Blink\"$$\n",
invert fmtstr "$$CB,\"Invert\"$$\n", invert format "$$CB,\"Invert\"$$\n",
underline fmtstr "$$CB,\"Underline\"$$\n", underline format "$$CB,\"Underline\"$$\n",
tree fmtstr "$$CB,\"Tree\"$$\n", tree format "$$CB,\"Tree\"$$\n",
collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; collapsed format "$$CB,\"Collapsed\"$$\n";
U8 scroll_x [512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", U8 scroll_x [512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
shift_x [512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", shift_x [512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
shift_y [512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n", shift_y [512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n",
define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n", define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n",
html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
}; };
U0 EdInsText() U0 EdInsText()
@@ -566,8 +566,8 @@ U0 EdInsText()
class CEdSong class CEdSong
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
song[512] fmtstr "$$DA-P,A=\"Song :%s\"$$\n"; song[512] format "$$DA-P,A=\"Song :%s\"$$\n";
}; };
U0 EdInsSong() U0 EdInsSong()
@@ -580,7 +580,7 @@ U0 EdInsSong()
class CEdHtmlCode class CEdHtmlCode
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Html Code:%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Html Code:%s\"$$\n";
}; };
U0 EdInsHtml() U0 EdInsHtml()
@@ -593,22 +593,22 @@ U0 EdInsHtml()
class CEdMacroMenu class CEdMacroMenu
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro :%s\"$$\n", left_macro[512] format "$$DA-P,A=\"Left Click Macro :%s\"$$\n",
left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression :%s\"$$\n"; left_exp[512] format "$$DA-P,A=\"Left Click Expression :%s\"$$\n";
Bool popup fmtstr "$$CB,\"PopUp\"$$\n", Bool popup format "$$CB,\"PopUp\"$$\n",
left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n", left_is_in_str format "$$CB,\"Left is InStr\"$$\n",
left_x fmtstr "$$CB,\"Left X \"$$\n", left_x format "$$CB,\"Left X \"$$\n",
center_x fmtstr "$$CB,\"Center X \"$$\n", center_x format "$$CB,\"Center X \"$$\n",
right_x fmtstr "$$CB,\"Right X \"$$\n", right_x format "$$CB,\"Right X \"$$\n",
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", margin_rel format "$$CB,\"Margin Rel X\"$$\n",
blink fmtstr "$$CB,\"Blink\"$$\n", blink format "$$CB,\"Blink\"$$\n",
invert fmtstr "$$CB,\"Invert\"$$\n", invert format "$$CB,\"Invert\"$$\n",
underline fmtstr "$$CB,\"Underline\"$$\n", underline format "$$CB,\"Underline\"$$\n",
escape fmtstr "$$CB,\"Escape\"$$\n"; escape format "$$CB,\"Escape\"$$\n";
U8 scroll_x[512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", U8 scroll_x[512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
shift_x[512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", shift_x[512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
shift_y[512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n"; shift_y[512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n";
}; };
U0 EdInsMacroMenu(Bool is_macro) U0 EdInsMacroMenu(Bool is_macro)
@@ -663,17 +663,17 @@ U0 EdInsMacroMenu(Bool is_macro)
class CEdBttn class CEdBttn
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
Bool popup fmtstr "$$CB,\"PopUp\"$$\n", Bool popup format "$$CB,\"PopUp\"$$\n",
left_x fmtstr "$$CB,\"Left X \"$$\n", left_x format "$$CB,\"Left X \"$$\n",
center_x fmtstr "$$CB,\"Center X \"$$\n", center_x format "$$CB,\"Center X \"$$\n",
right_x fmtstr "$$CB,\"Right X \"$$\n", right_x format "$$CB,\"Right X \"$$\n",
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", margin_rel format "$$CB,\"Margin Rel X\"$$\n",
escape fmtstr "$$CB,\"Escape\"$$\n"; escape format "$$CB,\"Escape\"$$\n";
U8 left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro:%s\"$$\n"; U8 left_macro[512] format "$$DA-P,A=\"Left Click Macro:%s\"$$\n";
Bool left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n"; Bool left_is_in_str format "$$CB,\"Left is InStr\"$$\n";
U8 left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression:%s\"$$\n"; U8 left_exp[512] format "$$DA-P,A=\"Left Click Expression:%s\"$$\n";
Bool quote fmtstr "$$CB,\"Quote\"$$\n"; Bool quote format "$$CB,\"Quote\"$$\n";
}; };
U0 EdInsBttn() U0 EdInsBttn()
@@ -723,17 +723,17 @@ U0 EdInsBttn()
class CEdCursorMovement class CEdCursorMovement
{ {
U8 left_exp[512] fmtstr "$$DA-P,A=\"X Expression (LE):%s\"$$\n", U8 left_exp[512] format "$$DA-P,A=\"X Expression (LE):%s\"$$\n",
right_exp[512] fmtstr "$$DA-P,A=\"Y Expression (RE):%s\"$$\n"; right_exp[512] format "$$DA-P,A=\"Y Expression (RE):%s\"$$\n";
Bool left_x fmtstr "$$CB,\"Left X \"$$\n", Bool left_x format "$$CB,\"Left X \"$$\n",
center_x fmtstr "$$CB,\"Center X \"$$\n", center_x format "$$CB,\"Center X \"$$\n",
right_x fmtstr "$$CB,\"Right X \"$$\n", right_x format "$$CB,\"Right X \"$$\n",
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", margin_rel format "$$CB,\"Margin Rel X\"$$\n",
top_y fmtstr "$$CB,\"Top Y \"$$\n", top_y format "$$CB,\"Top Y \"$$\n",
center_y fmtstr "$$CB,\"Center Y \"$$\n", center_y format "$$CB,\"Center Y \"$$\n",
bottom_y fmtstr "$$CB,\"Bottom Y \"$$\n", bottom_y format "$$CB,\"Bottom Y \"$$\n",
page_rel fmtstr "$$CB,\"Page Rel Y\"$$\n", page_rel format "$$CB,\"Page Rel Y\"$$\n",
quote fmtstr "$$CB,\"Quote\"$$\n"; quote format "$$CB,\"Quote\"$$\n";
}; };
U0 EdInsCursorMovement() U0 EdInsCursorMovement()
@@ -768,22 +768,22 @@ U0 EdInsCursorMovement()
class CEdDataNum class CEdDataNum
{ {
U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n";
I64 len; I64 len;
Bool term fmtstr "$$CB,\"Form Field Terminator\"$$\n", Bool term format "$$CB,\"Form Field Terminator\"$$\n",
remalloc, remalloc,
refresh fmtstr "$$CB,\"Refresh Data\"$$\n", refresh format "$$CB,\"Refresh Data\"$$\n",
update fmtstr "$$CB,\"Update Data\"$$\n"; update format "$$CB,\"Update Data\"$$\n";
}; };
class CEdDataStr class CEdDataStr
{ {
U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n";
I64 len fmtstr "$$DA,A=\"Length:%d\"$$\n"; I64 len format "$$DA,A=\"Length:%d\"$$\n";
Bool term fmtstr "$$CB,\"Zero Terminator\"$$\n", Bool term format "$$CB,\"Zero Terminator\"$$\n",
remalloc fmtstr "$$CB,\"Remalloc for Unlimited Length\"$$\n", remalloc format "$$CB,\"Remalloc for Unlimited Length\"$$\n",
refresh fmtstr "$$CB,\"Refresh Data\"$$\n", refresh format "$$CB,\"Refresh Data\"$$\n",
update fmtstr "$$CB,\"Update Data\"$$\n"; update format "$$CB,\"Update Data\"$$\n";
}; };
U0 EdInsData() U0 EdInsData()
@@ -834,9 +834,9 @@ U0 EdInsData()
class CEdCheckBox class CEdCheckBox
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; Bool refresh format "$$CB,\"Refresh Data\"$$\n";
I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
}; };
U0 EdInsCheckBox() U0 EdInsCheckBox()
@@ -861,10 +861,10 @@ U0 EdInsCheckBox()
class CEdLst class CEdLst
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Dft Sel :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Dft Sel :%s\"$$\n",
define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n"; define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n";
Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; Bool refresh format "$$CB,\"Refresh Data\"$$\n";
I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
}; };
U0 EdInsLst() U0 EdInsLst()
@@ -897,10 +897,10 @@ U0 EdInsLst()
class CEdHexEd class CEdHexEd
{ {
I64 cnt fmtstr "$$DA,A=\"Count:%d\"$$\n", I64 cnt format "$$DA,A=\"Count:%d\"$$\n",
cols fmtstr "$$DA,A=\"Columns:%d\"$$\n"; cols format "$$DA,A=\"Columns:%d\"$$\n";
Bool zero fmtstr "$$CB,\"Zero Based\"$$\n", Bool zero format "$$CB,\"Zero Based\"$$\n",
refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; refresh format "$$CB,\"Refresh Data\"$$\n";
}; };
U0 EdInsHexEd() U0 EdInsHexEd()
@@ -921,11 +921,11 @@ U0 EdInsHexEd()
class CEdBin class CEdBin
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
I64 bin_num fmtstr "$$DA,A=\"Bin Num:%d\"$$\n"; I64 bin_num format "$$DA,A=\"Bin Num:%d\"$$\n";
U8 bin_ptr_link_file[512] fmtstr "$$DA-P,A=\"File:%s\"$$\n"; U8 bin_ptr_link_file[512] format "$$DA-P,A=\"File:%s\"$$\n";
I64 bin_ptr_link_bin_num fmtstr "$$DA,A=\"File Bin Num:%d\"$$\n"; I64 bin_ptr_link_bin_num format "$$DA,A=\"File Bin Num:%d\"$$\n";
U8 bin_ptr_link_tag[512] fmtstr "$$DA-P,A=\"File Bin Tag:%s\"$$\n"; U8 bin_ptr_link_tag[512] format "$$DA-P,A=\"File Bin Tag:%s\"$$\n";
}; };
U0 EdInsBin(I64 bin_num,I64 type) U0 EdInsBin(I64 bin_num,I64 type)
@@ -958,9 +958,9 @@ U0 EdInsBin(I64 bin_num,I64 type)
class CEdTree class CEdTree
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
I64 indent fmtstr "$$DA,A=\"Indention:%d\"$$\n"; I64 indent format "$$DA,A=\"Indention:%d\"$$\n";
Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; Bool collapsed format "$$CB,\"Collapsed\"$$\n";
}; };
U0 EdInsTree() U0 EdInsTree()
@@ -1075,18 +1075,18 @@ I64 PopUpSpriteType()
class CEdMacroSprite class CEdMacroSprite
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
exp[512] fmtstr "$$DA-P,A=\"Macro :%s\"$$\n"; exp[512] format "$$DA-P,A=\"Macro :%s\"$$\n";
Bool escape fmtstr "$$CB,\"Escape\"$$\n", Bool escape format "$$CB,\"Escape\"$$\n",
popup fmtstr "$$CB,\"PopUp\"$$\n", popup format "$$CB,\"PopUp\"$$\n",
is_in_str fmtstr "$$CB,\"InStr\"$$\n"; is_in_str format "$$CB,\"InStr\"$$\n";
}; };
class CEdMenuSprite class CEdMenuSprite
{ {
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
exp[512] fmtstr "$$DA-P,A=\"Expression :%s\"$$\n"; exp[512] format "$$DA-P,A=\"Expression :%s\"$$\n";
Bool escape fmtstr "$$CB,\"Escape\"$$\n", Bool escape format "$$CB,\"Escape\"$$\n",
popup, popup,
is_in_str; is_in_str;
}; };
+4 -4
View File
@@ -4,10 +4,10 @@ DefineLstLoad("ST_RHYTHM_COMPLEXITY","Simple\0Normal\0Complex\0");
class CMakeSongSettings class CMakeSongSettings
{ {
I64 complexity fmtstr "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n"; I64 complexity format "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n";
Bool rests fmtstr "$$CB,\"Rests\"$$\n"; Bool rests format "$$CB,\"Rests\"$$\n";
Bool six_eight fmtstr "$$CB,\"Six Eight\"$$\n"; Bool six_eight format "$$CB,\"Six Eight\"$$\n";
I64 octave fmtstr "$$DA-TRM,A=\"Octave:%d\"$$\n"; I64 octave format "$$DA-TRM,A=\"Octave:%d\"$$\n";
I64 octave_state; I64 octave_state;
}; };
+1 -1
View File
@@ -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? 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:30-32",A="BF:1 Kings,4:30-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",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." 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."
+54
View File
@@ -634,6 +634,60 @@ public CDC *DCExt(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2,
return res; return res;
} }
public CDC *DCDiff(CDC *base,CDC *update)
{//Trim to win of what has chged.
I64 i,x1=0,y1=0,x2=update->width-1,y2=update->height-1; //inclusive
U32 *ptr_base,*ptr_update;
CDC *res;
ptr_base =base->body;
ptr_update=update->body;
while (y1<=y2) {
i=update->width>>2;
while (i--)
if (*ptr_base++!=*ptr_update++)
goto df_y2;
i=update->width&3;
while (i--)
if (*ptr_base(U8 *)++!=*ptr_update(U8 *)++)
goto df_y2;
y1++;
}
return NULL;
df_y2:
ptr_base =base->body +base->width_internal *base->height;
ptr_update=update->body+update->width_internal*update->height;
while (y1<y2) {
i=update->width>>2;
while (i--)
if (*--ptr_base!=*--ptr_update)
goto df_x1;
i=update->width&3;
while (i--)
if (*--ptr_base(U8 *)!=*--ptr_update(U8 *))
goto df_x1;
y2--;
}
df_x1:
while (x1<x2) {
for (i=y1;i<=y2;i++)
if (GrPeek0(base,x1,i)!=GrPeek0(update,x1,i))
goto df_x2;
x1++;
}
df_x2:
while (x1<x2) {
for (i=y1;i<=y2;i++)
if (GrPeek0(base,x2,i)!=GrPeek0(update,x2,i))
goto df_done;
x2--;
}
df_done:
res=DCExt(update,x1,y1,x2,y2);
res->x0=x1;
res->y0=y1;
return res;
}
#help_index "Graphics/Char;Char/Graphics" #help_index "Graphics/Char;Char/Graphics"
public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
+5 -1
View File
@@ -376,6 +376,10 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL)
#help_index "Graphics/GR Files" #help_index "Graphics/GR Files"
#help_file "::/Doc/GRFiles" #help_file "::/Doc/GRFiles"
#help_index "Graphics/Device Contexts;Graphics/GR Files" #help_index "Graphics/Device Contexts;Graphics/GR Files"
#define GR_FILE_MAX (offset(CDC.end)-offset(CDC.start)+\
COLORS_NUM*sizeof(CBGR48)+sizeof(CArcCtrl)+GR_WIDTH*GR_HEIGHT)
public I64 GRWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED) public I64 GRWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED)
{//TempleOS GR File. {//TempleOS GR File.
I64 size; I64 size;
@@ -414,7 +418,7 @@ public CDC *DCScrnCapture(Bool include_zoom=TRUE,CTask *task=NULL)
{//Capture scrn to a device context. {//Capture scrn to a device context.
CDC *dc; CDC *dc;
U8 *dst; U8 *dst;
Refresh(2,TRUE); Refresh(0,FALSE);
if (include_zoom) if (include_zoom)
dc=DCCopy(gr.scrn_image,task); dc=DCCopy(gr.scrn_image,task);
else else
+1
View File
@@ -14,6 +14,7 @@ Cd(__DIR__);;
#include "GrBitMap" #include "GrBitMap"
#include "GrPrimatives" #include "GrPrimatives"
#include "GrComposites" #include "GrComposites"
#include "GrMV"
#define SPE_ABORT (-1) #define SPE_ABORT (-1)
#define SPE_EXIT 0 #define SPE_EXIT 0
+4 -11
View File
@@ -26,8 +26,7 @@
#define SPBM_ADD_OUTLINE 23 #define SPBM_ADD_OUTLINE 23
#define SPBM_ETCH 24 #define SPBM_ETCH 24
#define SPBM_UNDO 25 #define SPBM_UNDO 25
#define SPBM_SAVE_BMP 26 #define SPBM_SAVE_GR 26
#define SPBM_SAVE_GRA 27
U0 GrInit4() U0 GrInit4()
{ {
@@ -36,7 +35,7 @@ U0 GrInit4()
"Rect\0Circle\0Text\0Text Box\0Text Diamond\0Flood Fill\0" "Rect\0Circle\0Text\0Text Box\0Text Diamond\0Flood Fill\0"
"Flood Fill Not Color\0PolyLine\0PolyPoint\0Copy\0Delete\0Paste\0" "Flood Fill Not Color\0PolyLine\0PolyPoint\0Copy\0Delete\0Paste\0"
"Paste Transparent\0Find and Replace\0Trim to Extents\0Add Outline\0" "Paste Transparent\0Find and Replace\0Trim to Extents\0Add Outline\0"
"Etch\0Undo\0Save BMP\0Save GR\0"); "Etch\0Undo\0Save GR\0");
} }
GrInit4; GrInit4;
@@ -79,8 +78,7 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width)
"$$MU-UL,\"Delete to Clip\",LE=SPBM_DELETE$$\n" "$$MU-UL,\"Delete to Clip\",LE=SPBM_DELETE$$\n"
"$$MU-UL,\"Paste Clip\",LE=SPBM_PASTE$$\n" "$$MU-UL,\"Paste Clip\",LE=SPBM_PASTE$$\n"
"$$MU-UL,\"Paste Transparent Clip\",LE=SPBM_PASTE_TRANSPARENT$$\n" "$$MU-UL,\"Paste Transparent Clip\",LE=SPBM_PASTE_TRANSPARENT$$\n"
"\n$$MU-UL,\"Save BMP File\",LE=SPBM_SAVE_BMP$$\n" "\n$$MU-UL,\"Save GR File\",LE=SPBM_SAVE_GR$$\n"
"$$MU-UL,\"Save GR File\",LE=SPBM_SAVE_GRA$$\n"
"\n$$MU-UL,\"Undo\",LE=SPBM_UNDO$$\n" "\n$$MU-UL,\"Undo\",LE=SPBM_UNDO$$\n"
"\n$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=SPBM_MAIN_MENU$$$$LTBLUE$$\n" "\n$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=SPBM_MAIN_MENU$$$$LTBLUE$$\n"
"$$MU-UL,\"Exit Sprite\",LE=SPBM_EXIT$$\n" "$$MU-UL,\"Exit Sprite\",LE=SPBM_EXIT$$\n"
@@ -293,12 +291,7 @@ bm_menu:
GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img);
} }
goto bm_menu; goto bm_menu;
case SPBM_SAVE_BMP: case SPBM_SAVE_GR:
*filename.name=0;
if (DocForm(&filename) && *filename.name)
BMPWrite(filename.name,img);
goto bm_menu;
case SPBM_SAVE_GRA:
*filename.name=0; *filename.name=0;
if (DocForm(&filename) && *filename.name) if (DocForm(&filename) && *filename.name)
GRWrite(filename.name,img,DCSF_COMPRESSED|DCSF_PALETTE_GET); GRWrite(filename.name,img,DCSF_COMPRESSED|DCSF_PALETTE_GET);
+1 -1
View File
@@ -6,7 +6,7 @@ Cd(__DIR__);;
#include "TaskRep" #include "TaskRep"
#include "AMathODE" #include "AMathODE"
#include "Gr/MakeGr" #include "Gr/MakeGr"
#include "Snd/MakeSnd" #include "ASnd"
#include "ABlkDev/MakeABlkDev" #include "ABlkDev/MakeABlkDev"
#include "Menu" #include "Menu"
#include "Win" #include "Win"
+1 -2
View File
@@ -1,9 +1,8 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootDVD" #include "BootDVD"
#include "DskISORedSea" #include "DskISORedSea"
#include "DskISO9660"
#help_index "Install" #help_index "Install"
+1 -1
View File
@@ -1,4 +1,4 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootHD" #include "BootHD"
+1 -1
View File
@@ -1,4 +1,4 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootMHD" #include "BootMHD"
+5 -5
View File
@@ -48,7 +48,7 @@ U0 RedSeaISO9660Stage1(U8 *iso_filename,U8 *stage2_filename)
U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let) U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let)
{ {
CDrv *dv=Let2Drv(drv_let); CDrv *dv=Let2Drv(drv_let);
CISO1PriDesc *iso_pri=CAlloc(DVD_BLK_SIZE), CISOPriDesc *iso_pri=CAlloc(DVD_BLK_SIZE),
*iso_boot=CAlloc(DVD_BLK_SIZE), *iso_boot=CAlloc(DVD_BLK_SIZE),
*iso_sup=CAlloc(DVD_BLK_SIZE), *iso_sup=CAlloc(DVD_BLK_SIZE),
*iso_term=CAlloc(DVD_BLK_SIZE); *iso_term=CAlloc(DVD_BLK_SIZE);
@@ -63,7 +63,7 @@ U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let)
for (i=0;i<dv->bd->drv_offset;i+=4) for (i=0;i<dv->bd->drv_offset;i+=4)
FBlkWrite(out_file,zero_buf,i,4); FBlkWrite(out_file,zero_buf,i,4);
iso_pri->type=ISO1T_PRI_VOL_DESC; iso_pri->type=ISOT_PRI_VOL_DESC;
StrCpy(iso_pri->id,"CD001"); StrCpy(iso_pri->id,"CD001");
iso_pri->version=1; iso_pri->version=1;
FillU16Palindrome(&iso_pri->vol_set_size,1); FillU16Palindrome(&iso_pri->vol_set_size,1);
@@ -75,15 +75,15 @@ U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let)
StrCpy(iso_pri->publisher_id,"TempleOS RedSea"); StrCpy(iso_pri->publisher_id,"TempleOS RedSea");
MemCpy(iso_sup,iso_pri,DVD_BLK_SIZE); MemCpy(iso_sup,iso_pri,DVD_BLK_SIZE);
iso_sup->type=ISO1T_SUPPLEMENTARY_DESC; iso_sup->type=ISOT_SUPPLEMENTARY_DESC;
iso_boot->type=ISO1T_BOOT_RECORD; iso_boot->type=ISOT_BOOT_RECORD;
StrCpy(iso_boot->id,"CD001"); StrCpy(iso_boot->id,"CD001");
iso_boot->version=1; iso_boot->version=1;
StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION"); StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION");
FBlkWrite(out_file,iso_pri,16<<2,4); FBlkWrite(out_file,iso_pri,16<<2,4);
iso_term->type=ISO1T_TERMINATOR; iso_term->type=ISOT_TERMINATOR;
StrCpy(iso_term->id,"CD001"); StrCpy(iso_term->id,"CD001");
iso_term->version=1; iso_term->version=1;
+47 -4
View File
@@ -35,13 +35,13 @@ public CFileBMP *BMP4To(CDC *dc)
CFileBMP *bmp =CAlloc(size); CFileBMP *bmp =CAlloc(size);
bmp->type ='BM'; bmp->type ='BM';
bmp->planes =1; bmp->planes =1;
bmp->file_size =size; bmp->file_size=size;
bmp->data_offset=sizeof(CFileBMP); bmp->data_offset=sizeof(CFileBMP);
bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size); bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size);
bmp->width =dc->width; bmp->width =dc->width;
bmp->height =dc->height; bmp->height =dc->height;
bmp->bit_cnt =4; bmp->bit_cnt =4;
bmp->image_size =dc->width*dc->height>>1; bmp->image_size=dc->width*dc->height>>1;
GrPaletteGet(palette); GrPaletteGet(palette);
#assert COLORS_NUM==BMP_COLORS_NUM #assert COLORS_NUM==BMP_COLORS_NUM
for (i=0;i<BMP_COLORS_NUM;i++) { for (i=0;i<BMP_COLORS_NUM;i++) {
@@ -128,13 +128,13 @@ public CFileBMP *BMP24To(CDC *dc)
CFileBMP *bmp =CAlloc(size); CFileBMP *bmp =CAlloc(size);
bmp->type ='BM'; bmp->type ='BM';
bmp->planes =1; bmp->planes =1;
bmp->file_size =size; bmp->file_size=size;
bmp->data_offset=offset(CFileBMP.end); bmp->data_offset=offset(CFileBMP.end);
bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size); bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size);
bmp->width =dc->width; bmp->width =dc->width;
bmp->height =dc->height; bmp->height =dc->height;
bmp->bit_cnt =32; bmp->bit_cnt =32;
bmp->image_size =dc->width*dc->height<<2; bmp->image_size=dc->width*dc->height<<2;
bgr=bmp(U8 *)+bmp->data_offset; bgr=bmp(U8 *)+bmp->data_offset;
for (y=dc->height-1;y>=0;y--) { for (y=dc->height-1;y>=0;y--) {
@@ -341,3 +341,46 @@ public I64 BMPScrnCapture(U8 *filename,I64 bits=4,Bool include_zoom=TRUE)
DCDel(dc); DCDel(dc);
return size; return size;
} }
public I64 GR2BMPLst(U8 *files_find_mask,U8 *fu_flags=NULL,
U8 *out_print_fmt="~:/Tmp/VID%05d.BMP.Z",F64 fps=30000.0/1001)
{/*Cvt movie from GR lst to BMP lst
"+d" will delete GRLst files.
*/
I64 res=0,fuf_flags=0;
CDirEntry *tmpde,*tmpde1;
CDC *dc,*base=DCNew(GR_WIDTH,GR_HEIGHT);
U8 *st,*last_st;
CDate cdt=I64_MIN;
Bool old_silent;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F");
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND);
last_st=MStrPrint(out_print_fmt,0);
progress1_max=LinkedLstCnt(tmpde);
while (tmpde) {
dc=GRRead(tmpde->full_name);
GrBlot(base,dc->x0,dc->y0,dc);
if (cdt==I64_MIN)
cdt=dc->cdt;
while (cdt<=dc->cdt) {
st=MStrPrint(out_print_fmt,res++);
BMPWrite(st,base);
Free(st);
cdt+=CDATE_FREQ/fps;
}
if (fuf_flags&FUF_DEL) {
old_silent=Silent;
Del(tmpde->full_name);
Silent(old_silent);
}
DCDel(dc);
progress1++;
tmpde=tmpde->next;
}
progress1=progress1_max=0;
DirTreeDel(tmpde1);
Free(last_st);
DCDel(base);
return res;
}
+7 -7
View File
@@ -197,15 +197,15 @@ public I64 FileOcc(U8 *needle_str,
class CFind class CFind
{ {
U8 find_text[STR_LEN] fmtstr "$$DA-P," U8 find_text[STR_LEN] format "$$DA-P,"
"A=\"FIND :%s\"$$\n"; "A=\"FIND :%s\"$$\n";
U8 replace_text[STR_LEN] fmtstr "$$DA-P," U8 replace_text[STR_LEN] format "$$DA-P,"
"A=\"REPLACE :%s\"$$\n"; "A=\"REPLACE :%s\"$$\n";
Bool replace fmtstr "$$CB,\"REPLACE\"$$\n"; Bool replace format "$$CB,\"REPLACE\"$$\n";
Bool match_case fmtstr "$$CB,\"MATCH CASE\"$$\n"; Bool match_case format "$$CB,\"MATCH CASE\"$$\n";
Bool whole_labels fmtstr "$$CB,\"WHOLE LABELS\"$$\n"; Bool whole_labels format "$$CB,\"WHOLE LABELS\"$$\n";
U8 filemask[STR_LEN] fmtstr "$$DA-P,A=\"FILE MASK :%s\"$$\n"; U8 filemask[STR_LEN] format "$$DA-P,A=\"FILE MASK :%s\"$$\n";
Bool recurse fmtstr "$$CB,\"RECURSE\"$$\n"; Bool recurse format "$$CB,\"RECURSE\"$$\n";
}; };
I64 FindWiz() I64 FindWiz()
-1
View File
@@ -1,6 +1,5 @@
Cd(__DIR__);; Cd(__DIR__);;
#include "Diff" #include "Diff"
#include "FileBMP"
#include "Find" #include "Find"
#include "HeapLog" #include "HeapLog"
#include "LineRep" #include "LineRep"
+4
View File
@@ -136,6 +136,10 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE)
if (task==sys_winmgr_task) { if (task==sys_winmgr_task) {
"gr.pen_brushes\t:%010X\n",PenBrushesSize; "gr.pen_brushes\t:%010X\n",PenBrushesSize;
"gr.scrn_zoom_tbles\t:%010X\n",ScrnZoomTablesSize; "gr.scrn_zoom_tbles\t:%010X\n",ScrnZoomTablesSize;
"winmgr.scrn_cast_dc\t:%010X\n",
DCSize(winmgr.scrn_cast_dc);
"winmgr.dc2_alias\t:%010X\n",
DCSize(winmgr.dc2_alias);
} else if (task==adam_task) { } else if (task==adam_task) {
j=0;k=0;m=0;n=0; j=0;k=0;m=0;n=0;
for (i=0;i<mp_cnt;i++) { for (i=0;i<mp_cnt;i++) {
+1 -1
View File
@@ -182,7 +182,7 @@ U0 SUFile(U8 *filename,I64 suf_flags,F64 indent_scale_factor)
} }
public U0 SU(U8 *files_find_mask,I64 suf_flags,U8 *fu_flags=NULL, public U0 SU(U8 *files_find_mask,I64 suf_flags,U8 *fu_flags=NULL,
F64 indent_scale_factor=0) F64 indent_scale_factor=0)
{//Apply $LK,"StrUtil",A="MN:StrUtil"$() on files {//Apply $LK,"StrUtil",A="MN:StrUtil"$() on files.
//You can convert spaces to tabs, for example, //You can convert spaces to tabs, for example,
//or removing trailing spaces on lines. //or removing trailing spaces on lines.
//See $LK,"SUF Flags",A="MN:SUF_SINGLE_SPACE"$. //See $LK,"SUF Flags",A="MN:SUF_SINGLE_SPACE"$.
+10 -26
View File
@@ -1,30 +1,24 @@
#help_index "Misc/TOS" #help_index "Misc/TOS"
U0 TOSStaffIns() U0 TOSStaffIns()
{//Completes TOS install from TempleOSStaff.ISO {//Completes TOS install from TOS_Staff.ISO
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
AutoComplete; AutoComplete;
WinBorder; WinBorder;
WinMax; WinMax;
DocClear; DocClear;
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSStaff.ISO\"$$$$FG$$\n\n\n\n"; "$$PURPLE$$$$TX+CX,\"Complete TOS install from TOS_Staff.ISO\"$$$$FG$$\n\n\n\n";
InsRereg; InsRereg;
"\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\n" "\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n";
"Download TempleOSBooks1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks2.ISO.C\tfrom http://www.templeos.org AppStore.\n\n";
if (PressAKey!=CH_SHIFT_ESC) { if (PressAKey!=CH_SHIFT_ESC) {
if (HostChgDsk("/home/tad/TempleOSSup1.ISO.C")) if (HostChgDsk("/home/tad/TOS_Supplemental1.ISO.C"))
CopyTree("T:/","~/Sup1"); CopyTree("T:/","~/Sup1");
if (HostChgDsk("/home/tad/TempleOSBooks1.ISO.C"))
CopyTree("T:/","~/Books1");
if (HostChgDsk("/home/tad/TempleOSBooks2.ISO.C"))
CopyTree("T:/","~/Books2");
Once("TOSBootHDIns;"); Once("TOSBootHDIns;");
"\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the " "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the "
"distro ISO's and the website image, $FG,2$D:/Wb$FG$ "; "distro ISO's ";
if (YorN) { if (YorN) {
Once("TOSRegen;"); Once("TOSRegen;");
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available. BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
@@ -38,35 +32,25 @@ U0 TOSStaffIns()
} }
public U0 TOSStdIns() public U0 TOSStdIns()
{//Completes TOS install from TempleOSCD.ISO {//Completes TOS install from TOS_Distro.ISO
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
AutoComplete; AutoComplete;
WinBorder; WinBorder;
WinMax; WinMax;
DocClear; DocClear;
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSCD.ISO\"$$$$FG$$\n\n\n\n"; "$$PURPLE$$$$TX+CX,\"Complete TOS install from TOS_Distro.ISO\"$$$$FG$$\n\n\n\n";
InsRereg; InsRereg;
"\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\n" "\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n";
"Download TempleOSWeb.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks2.ISO.C\tfrom http://www.templeos.org AppStore.\n\n";
if (PressAKey!=CH_SHIFT_ESC) { if (PressAKey!=CH_SHIFT_ESC) {
if (FileFind("/Demo/AcctExample")) if (FileFind("/Demo/AcctExample"))
CopyTree("::/Demo/AcctExample","~"); CopyTree("::/Demo/AcctExample","~");
if (HostChgDsk("/home/tad/Downloads/TempleOSSup1.ISO.C")) if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental1.ISO.C"))
CopyTree("T:/","~/Sup1"); CopyTree("T:/","~/Sup1");
if (HostChgDsk("/home/tad/Downloads/TempleOSWeb.ISO.C"))
CopyTree("T:/","~/Web");
if (HostChgDsk("/home/tad/Downloads/TempleOSBooks1.ISO.C"))
CopyTree("T:/","~/Books1");
if (HostChgDsk("/home/tad/Downloads/TempleOSBooks2.ISO.C"))
CopyTree("T:/","~/Books2");
Once("TOSBootHDIns;"); Once("TOSBootHDIns;");
"\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the " "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the distro ISO's ";
"distro ISO's and the website image, $FG,2$D:/Wb$FG$ ";
if (YorN) { if (YorN) {
Once("TOSRegen;"); Once("TOSRegen;");
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available. BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
+8 -5
View File
@@ -23,7 +23,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,
//Averaging should be a num from 0.0 to 0.999. //Averaging should be a num from 0.0 to 0.999.
//Vol should be from 0.0 to 1.0. //Vol should be from 0.0 to 1.0.
//Set reverb_delay to like 0.3 sec and reverb_intensity to like 0.4. //Set reverb_delay to like 0.3 sec and reverb_intensity to like 0.4.
I64 i,k,cnt,cnt2,level,file_num; I64 i,i1,k,cnt,cnt2,level,file_num;
F64 avg,dt; F64 avg,dt;
CFileSND *s; CFileSND *s;
CSndWaveCtrl *swc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1); CSndWaveCtrl *swc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1);
@@ -63,13 +63,16 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,
d=snd.record_head.next; d=snd.record_head.next;
k=0; k=0;
i=d->time*SNDFILE_SAMPLE_RATE;
while (d->next!=&snd.record_head) { while (d->next!=&snd.record_head) {
d1=d->next; d1=d->next;
dt=d1->time-d->time; i1=d1->time*SNDFILE_SAMPLE_RATE;
cnt2=dt*SNDFILE_SAMPLE_RATE; if (i1-i) {
SndWaveAddBuf(swc,&s->body[k],cnt2, SndWaveAddBuf(swc,&s->body[k],i1-i,
Ona2Freq(d->ona),waveform,normalized_vol); Ona2Freq(d->ona),waveform,normalized_vol);
k+=cnt2; k+=i1-i;
i=i1;
}
QueRem(d); QueRem(d);
Free(d); Free(d);
d=d1; d=d1;
+7 -2
View File
@@ -127,7 +127,7 @@ per second. It defaults to
2.5 and gets faster when bigger. 2.5 and gets faster when bigger.
*/ */
U8 *word,*last_st; U8 *word,*last_st;
I64 note,i=0,ona,timeout_val,timeout_val2; I64 note,octave,i=0,ona,timeout_val,timeout_val2;
Bool tie; Bool tie;
F64 d,on_jiffies,off_jiffies; F64 d,on_jiffies,off_jiffies;
music.play_note_num=0; music.play_note_num=0;
@@ -151,14 +151,19 @@ per second. It defaults to
note=*st++-'A'; note=*st++-'A';
if (note<7) { if (note<7) {
note=music.note_map[note]; note=music.note_map[note];
octave=music.octave;
if (*st=='b') { if (*st=='b') {
note--; note--;
if (note==2)
octave--;
st++; st++;
} else if (*st=='#') { } else if (*st=='#') {
note++; note++;
if (note==3)
octave++;
st++; st++;
} }
ona=Note2Ona(note,music.octave); ona=Note2Ona(note,octave);
} else } else
ona=ONA_REST; ona=ONA_REST;
if (words && (word=LstSub(i++,words)) && StrCmp(word," ")) if (words && (word=LstSub(i++,words)) && StrCmp(word," "))
+2 -1
View File
@@ -6,7 +6,8 @@ CMsStateGlbls old_ms={{-1000,-1000,0},{-1000,-1000,0},{-1000,-1000,0},
FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE
}; };
public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,NULL,FALSE,FALSE,FALSE}; public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,tS,NULL,
Now,tS,NULL,NULL,NULL,FALSE,FALSE,FALSE,FALSE};
winmgr.t=CAlloc(sizeof(CWinMgrTimingGlbls)); winmgr.t=CAlloc(sizeof(CWinMgrTimingGlbls));
winmgr.t->last_calc_idle_time=tS; winmgr.t->last_calc_idle_time=tS;
+51 -4
View File
@@ -2,7 +2,7 @@
public U0 Refresh(I64 cnt=1,Bool force=FALSE) public U0 Refresh(I64 cnt=1,Bool force=FALSE)
{//Wait for 30fps WinMgr to start & finish scrn refresh. {//Wait for 30fps WinMgr to start & finish scrn refresh.
//0,FALSE Cnt Sync to WinMgr. (not used) //0,FALSE Cnt Sync to WinMgr.
//0,TRUE Pump Msgs. //0,TRUE Pump Msgs.
//1 Cnt Wait and Pump Msgs. //1 Cnt Wait and Pump Msgs.
//2 Cnt Make Sure to do a Full Refresh //2 Cnt Make Sure to do a Full Refresh
@@ -31,6 +31,24 @@ public U0 Refresh(I64 cnt=1,Bool force=FALSE)
LBEqu(&Fs->task_flags,TASKf_IDLE,old_idle); LBEqu(&Fs->task_flags,TASKf_IDLE,old_idle);
} }
#help_index "Windows;Cmd Line (Typically)"
public Bool ScrnCast(Bool val=ON,U8 *print_fmt="B:/Tmp/%X.GR")
{//WinMgr saves GR files to a dir.
Bool old_val;
if (val) {
if (!(old_val=LBtr(&winmgr.scrn_cast,0))) {
Free(winmgr.scrn_cast_print_fmt);
winmgr.scrn_cast_print_fmt=AStrNew(print_fmt);
winmgr.scrn_cast_now=Now;
winmgr.scrn_cast_tS=tS;
LBts(&winmgr.scrn_cast,0);
}
} else
old_val=LBtr(&winmgr.scrn_cast,0);
return old_val;
}
#help_index "Windows" #help_index "Windows"
I64 WinQueIPMsgs(Bool que) I64 WinQueIPMsgs(Bool que)
@@ -223,8 +241,11 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE)
CCtrl *c; CCtrl *c;
Bool que; Bool que;
F64 t,t_delta; F64 t,t_delta;
U8 *st;
CDC *diff;
CDate cdt;
TimeStampFreqCal; TimeCal;
if ((t_delta=(t=tS)-winmgr.last_refresh_tS)>0.01) if ((t_delta=(t=tS)-winmgr.last_refresh_tS)>0.01)
winmgr.fps=Max(1.0/t_delta,1); winmgr.fps=Max(1.0/t_delta,1);
else else
@@ -260,11 +281,36 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE)
WinMsUpdate; WinMsUpdate;
if (!LBtr(&sys_semas[SEMA_JUST_PUMP_MSGS],0)) { if (!LBtr(&sys_semas[SEMA_JUST_PUMP_MSGS],0)) {
timeout_val=cnts.jiffies+JIFFY_FREQ/WINMGR_FPS; t=tS+WINMGR_PERIOD/8;
while (winmgr.ideal_refresh_tS<t)
winmgr.ideal_refresh_tS+=WINMGR_PERIOD;
timeout_val=cnts.jiffies+(winmgr.ideal_refresh_tS-tS)*JIFFY_FREQ;
LBts(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0); LBts(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0);
GrUpdateScrn; GrUpdateScrn;
LBtr(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0); LBtr(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0);
if (winmgr.scrn_cast) {
cdt=winmgr.scrn_cast_now+ToI64(CDATE_FREQ*(tS-winmgr.scrn_cast_tS));
if (!winmgr.scrn_cast_dc) {
winmgr.scrn_cast_dc=DCCopy(winmgr.dc2_alias);
winmgr.scrn_cast_dc->cdt=cdt;
st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt);
GRWrite(st,winmgr.scrn_cast_dc);
Free(st);
} else if (MemCmp(winmgr.scrn_cast_dc->body,
winmgr.dc2_alias->body,MSize(winmgr.dc2_alias->body))) {
diff=DCDiff(winmgr.scrn_cast_dc,winmgr.dc2_alias);
diff->cdt=cdt;
st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt);
GRWrite(st,diff);
Free(st);
DCDel(diff);
Free(winmgr.scrn_cast_dc->body);
winmgr.scrn_cast_dc->body=MAllocIdent(winmgr.dc2_alias->body);
}
} else if (winmgr.scrn_cast_dc) {
DCDel(winmgr.scrn_cast_dc); //TODO: $LK,"MemRep",A="MN:MemRep"$ can crash.
winmgr.scrn_cast_dc=NULL;
}
if (sys_focus_task && !Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) { if (sys_focus_task && !Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) {
Free(music.cur_song); Free(music.cur_song);
music.cur_song=NULL; music.cur_song=NULL;
@@ -404,6 +450,7 @@ U0 WinMgrTask(I64)
gr.dc->win_task=Fs; gr.dc->win_task=Fs;
Fs->win_inhibit&=~WIF_SELF_CTRLS; Fs->win_inhibit&=~WIF_SELF_CTRLS;
GrSetUpTables; GrSetUpTables;
winmgr.dc2_alias=DCAlias(gr.dc2);
WinZBufUpdate; WinZBufUpdate;
LBts(&sys_run_level,RLf_WINMGR); LBts(&sys_run_level,RLf_WINMGR);
while (TRUE) { while (TRUE) {
+5 -5
View File
@@ -35,11 +35,11 @@ U0 BgtIns(CBgtEntry *tmpb)
class CBgtEntryForm class CBgtEntryForm
{ {
U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n"; U8 date[512] format "$$DA-P,A=\"Date :%s\"$$\n";
F64 amount fmtstr "Amount $$$$$$DA,A=\"%10.2f\"$$\n"; F64 amount format "Amount $$$$$$DA,A=\"%10.2f\"$$\n";
U8 credit[512] fmtstr "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n"; U8 credit[512] format "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n";
U8 debit [512] fmtstr "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n"; U8 debit [512] format "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n";
U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n"; U8 desc [512] format "$$DA-P,A=\"Desc :%s\"$$\n";
}; };
CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL) CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL)
+4 -4
View File
@@ -42,11 +42,11 @@ class CBgtTemplate
CBgtTemplate *next,*last; CBgtTemplate *next,*last;
U0 start; U0 start;
U16 type fmtstr "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n"; U16 type format "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n";
U16 flags; U16 flags;
U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n"; U8 start_date[16] format "$$DA-P,A=\"Start Date:%s\"$$\n";
U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n"; U8 end_date[16] format "$$DA-P,A=\"End Date :%s\"$$\n";
F64 period fmtstr "$$DA,A=\"Period :%8.2f\"$$\n"; F64 period format "$$DA,A=\"Period :%8.2f\"$$\n";
U0 end; U0 end;
CBgtEntry b; CBgtEntry b;
+3 -3
View File
@@ -13,9 +13,9 @@ class Ball
class BallDefineStruct class BallDefineStruct
{ {
F64 radius fmtstr "$$DA-TRM,A=\"Radius :%8.3f\"$$\n"; F64 radius format "$$DA-TRM,A=\"Radius :%8.3f\"$$\n";
I64 n_longitude fmtstr "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n"; I64 n_longitude format "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n";
I64 n_lattitude fmtstr "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n"; I64 n_lattitude format "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n";
}; };
U0 BDInit(BallDefineStruct *bd) U0 BDInit(BallDefineStruct *bd)
+28 -28
View File
@@ -13,66 +13,66 @@ class Man
class ManDefineStruct class ManDefineStruct
{ {
F64 head_rad fmtstr F64 head_rad format
"$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n"; "$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n";
F64 torso_len fmtstr F64 torso_len format
"$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n"; "$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n";
F64 arm_len fmtstr F64 arm_len format
"$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n"; "$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n";
F64 hand_len fmtstr F64 hand_len format
"$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n"; "$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n";
F64 leg_len fmtstr F64 leg_len format
"$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n"; "$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n";
F64 foot_len fmtstr F64 foot_len format
"$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n"; "$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n";
F64 torso_width fmtstr F64 torso_width format
"$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n"; "$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n";
F64 torso_depth fmtstr F64 torso_depth format
"$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n"; "$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n";
F64 arm_rad fmtstr F64 arm_rad format
"$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n"; "$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n";
F64 hand_rad fmtstr F64 hand_rad format
"$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n"; "$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n";
F64 leg_rad fmtstr F64 leg_rad format
"$$DA-TRM,A=\"Leg Radius :%8.3f\"$$\n"; "$$DA-TRM,A=\"Leg Radius :%8.3f\"$$\n";
F64 foot_rad fmtstr F64 foot_rad format
"$$DA-TRM,A=\"Foot Radius :%8.3f\"$$\n\n"; "$$DA-TRM,A=\"Foot Radius :%8.3f\"$$\n\n";
F64 r_shoulder_a1 fmtstr F64 r_shoulder_a1 format
"$$DA-TRM,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n";
F64 l_shoulder_a1 fmtstr F64 l_shoulder_a1 format
"$$DA-TRM,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n";
F64 r_hip_a1 fmtstr F64 r_hip_a1 format
"$$DA-TRM,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n";
F64 l_hip_a1 fmtstr F64 l_hip_a1 format
"$$DA-TRM,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n";
F64 r_shoulder_a2 fmtstr F64 r_shoulder_a2 format
"$$DA-TRM,A=\"R.Shoulder Side Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Shoulder Side Angle :%8.3f\"$$\n";
F64 l_shoulder_a2 fmtstr F64 l_shoulder_a2 format
"$$DA-TRM,A=\"L.Shoulder Side Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Shoulder Side Angle :%8.3f\"$$\n";
F64 r_hip_a2 fmtstr F64 r_hip_a2 format
"$$DA-TRM,A=\"R.Hip Side Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Hip Side Angle :%8.3f\"$$\n";
F64 l_hip_a2 fmtstr F64 l_hip_a2 format
"$$DA-TRM,A=\"L.Hip Side Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Hip Side Angle :%8.3f\"$$\n";
F64 r_elbow_a fmtstr F64 r_elbow_a format
"$$DA-TRM,A=\"R.Elbow Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Elbow Angle :%8.3f\"$$\n";
F64 l_elbow_a fmtstr F64 l_elbow_a format
"$$DA-TRM,A=\"L.Elbow Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Elbow Angle :%8.3f\"$$\n";
F64 r_knee_a fmtstr F64 r_knee_a format
"$$DA-TRM,A=\"R.Knee Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Knee Angle :%8.3f\"$$\n";
F64 l_knee_a fmtstr F64 l_knee_a format
"$$DA-TRM,A=\"L.Knee Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Knee Angle :%8.3f\"$$\n";
F64 r_wrist_a fmtstr F64 r_wrist_a format
"$$DA-TRM,A=\"R.Wrist Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Wrist Angle :%8.3f\"$$\n";
F64 l_wrist_a fmtstr F64 l_wrist_a format
"$$DA-TRM,A=\"L.Wrist Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Wrist Angle :%8.3f\"$$\n";
F64 r_ankle_a fmtstr F64 r_ankle_a format
"$$DA-TRM,A=\"R.Ankle Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"R.Ankle Angle :%8.3f\"$$\n";
F64 l_ankle_a fmtstr F64 l_ankle_a format
"$$DA-TRM,A=\"L.Ankle Angle :%8.3f\"$$\n"; "$$DA-TRM,A=\"L.Ankle Angle :%8.3f\"$$\n";
}; };
-11
View File
@@ -11,14 +11,3 @@ $WW,1$$FG,5$$TX+CX,"Psalmody Help"$$FG$
* You can take the $LK,"Play",A="MN:Play"$() stmts out of a song file and place them in your programs. You can also add a song to a document with $FG,2$<CTRL-l>$FG$, but you should do it after pressing $FG,2$<CTRL-t>$FG$ because the clip-insert in $FG,2$<CTRL-l>$FG$ is screwy. See this $SO,"<Song>",A="4qG5EC4BeGG5qCeFD4sB5G4B5G4qG5EC4BeGG5qCeFD4sB5G4B5GqEeEFqE4BeG5FetC4A5GqFCEeEFqE4BeG5FetC4A5GqFC"$ after pressing $FG,2$<CTRL-t>$FG$, now. * You can take the $LK,"Play",A="MN:Play"$() stmts out of a song file and place them in your programs. You can also add a song to a document with $FG,2$<CTRL-l>$FG$, but you should do it after pressing $FG,2$<CTRL-t>$FG$ because the clip-insert in $FG,2$<CTRL-l>$FG$ is screwy. See this $SO,"<Song>",A="4qG5EC4BeGG5qCeFD4sB5G4B5G4qG5EC4BeGG5qCeFD4sB5G4B5GqEeEFqE4BeG5FetC4A5GqFCEeEFqE4BeG5FetC4A5GqFC"$ after pressing $FG,2$<CTRL-t>$FG$, now.
* You can call $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$("~/Psalmody"); to play your songs. * You can call $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$("~/Psalmody"); to play your songs.
* To create a $FG,2$.SND$FG$ file which can be exported and played under Windows, set the $FG,2$Bool$FG$ $LK,"snd.record",A="MN:CSndGlbls"$ to $FG,2$TRUE$FG$, play music, and set it to $FG,2$FALSE$FG$. Then, call $LK,"SndFileCreate",A="MN:SndFileCreate"$(). You might wish to make a $FG,2$<CTRL-ALT-key>$FG$ to toggle this system level recording feat. See $LK,"Snd",A="MN:Snd"$(). Add this code to your $LK,"~/HomeKeyPlugIns.HC"$ file.
$FG,5$U0 CtrlAltR(I64)
{
snd.record=!snd.record;
}
CtrlAltCBSet('R',&CtrlAltR,"Cmd /Toggle snd.record");$FG$
* When calling $LK,"SndFileCreate",A="MN:SndFileCreate"$() you can set a waveform. The PC speaker is $LK,"WF_SQUARE",A="MN:WF_SQUARE"$. You can sel reverb and averaging, also.
+3 -3
View File
@@ -945,14 +945,14 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags)
LexExcept(cc,"Missing ';' at"); LexExcept(cc,"Missing ';' at");
Lex(cc); //skip ';'; Lex(cc); //skip ';';
break; break;
case AKW_MODULE_ORG: case AKW_ORG:
if (cc->htc.local_var_lst) if (cc->htc.local_var_lst)
LexExcept(cc,"ORG not allowed in fun asm blk "); LexExcept(cc,"ORG not allowed in fun asm blk ");
if (aotc->module_org!=INVALID_PTR) if (aotc->org!=INVALID_PTR)
LexExcept(cc,"Just one org allowed "); LexExcept(cc,"Just one org allowed ");
if (aotc->rip) if (aotc->rip)
LexExcept(cc,"ORG must be at beginning "); LexExcept(cc,"ORG must be at beginning ");
aotc->module_org=AsmLexExpression(cc); aotc->org=AsmLexExpression(cc);
break; break;
case AKW_ALIGN: case AKW_ALIGN:
if (cc->htc.local_var_lst) if (cc->htc.local_var_lst)
+5 -5
View File
@@ -55,7 +55,7 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0)
aotc->bin=CAlloc(sizeof(CAOTBinBlk)); aotc->bin=CAlloc(sizeof(CAOTBinBlk));
aotc->max_align_bits=0; aotc->max_align_bits=0;
aotc->module_org=INVALID_PTR; aotc->org=INVALID_PTR;
MemCpy(htc,&cc->htc,sizeof(CLexHashTableContext)); MemCpy(htc,&cc->htc,sizeof(CLexHashTableContext));
if (cc->htc.fun) if (cc->htc.fun)
@@ -120,10 +120,10 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0)
if (cc->flags&CCF_AOT_COMPILE) if (cc->flags&CCF_AOT_COMPILE)
res->buf=MAlloc(aotc->num_bin_U8s); res->buf=MAlloc(aotc->num_bin_U8s);
else { else {
if (aotc->module_org==INVALID_PTR) if (aotc->org==INVALID_PTR)
res->buf=MAlloc(aotc->num_bin_U8s,Fs->code_heap); res->buf=MAlloc(aotc->num_bin_U8s,Fs->code_heap);
else else
res->buf=aotc->module_org; res->buf=aotc->org;
} }
res->aot_U8s=aotc->num_bin_U8s; res->aot_U8s=aotc->num_bin_U8s;
tmpbin=aotc->bin; tmpbin=aotc->bin;
@@ -143,7 +143,7 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0)
res->abss=aotc->abss; res->abss=aotc->abss;
res->heap_glbls=aotc->heap_glbls; res->heap_glbls=aotc->heap_glbls;
res->max_align_bits=aotc->max_align_bits; res->max_align_bits=aotc->max_align_bits;
res->module_org=aotc->module_org; res->org=aotc->org;
} }
cc->aot=parent; cc->aot=parent;
MemCpy(&cc->htc,htc,sizeof(CLexHashTableContext)); MemCpy(&cc->htc,htc,sizeof(CLexHashTableContext));
@@ -541,7 +541,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0)
#assert sizeof(CBinFile)-2<=I8_MAX #assert sizeof(CBinFile)-2<=I8_MAX
bfh->reserved=0; bfh->reserved=0;
bfh->bin_signature=BIN_SIGNATURE_VAL; bfh->bin_signature=BIN_SIGNATURE_VAL;
bfh->module_org=tmpaot->module_org; bfh->org=tmpaot->org;
bfh->module_align_bits=tmpaot->max_align_bits; bfh->module_align_bits=tmpaot->max_align_bits;
bfh->patch_table_offset=sizeof(CBinFile)+aot_U8s; bfh->patch_table_offset=sizeof(CBinFile)+aot_U8s;
bfh->file_size=size; bfh->file_size=size;
+5
View File
@@ -129,10 +129,15 @@ U8 *CmdLinePmt()
I64 i; I64 i;
U8 *res,*st; U8 *res,*st;
if (Fs->new_answer) { if (Fs->new_answer) {
if (Fs->answer_type&~1!=RT_I0) {
if (Fs->answer_type==RT_F64) if (Fs->answer_type==RT_F64)
"%8.6fs ansf=%15.7g\n",Fs->answer_time,Fs->answer; "%8.6fs ansf=%15.7g\n",Fs->answer_time,Fs->answer;
else else
"%8.6fs ans=0x%08X=%d\n",Fs->answer_time,Fs->answer,Fs->answer; "%8.6fs ans=0x%08X=%d\n",Fs->answer_time,Fs->answer,Fs->answer;
} else {
"%8.6fs\n",Fs->answer_time;
Fs->answer=0;
}
Fs->new_answer=FALSE; Fs->new_answer=FALSE;
} }
if (st=DirCur) { if (st=DirCur) {
Binary file not shown.
+77 -78
View File
@@ -49,7 +49,7 @@ $LK,"AOTStoreCodeU64",A="FL:::/Compiler/AsmLib.HC.Z,68",BI=39$
$LK,"LexPopNoRestore",A="FL:::/Compiler/LexLib.HC.Z,38",BI=40$ $LK,"LexPopNoRestore",A="FL:::/Compiler/LexLib.HC.Z,38",BI=40$
$LK,"ExePrint",A="FL:::/Compiler/CMain.HC.Z,605",BI=41$ $LK,"ExePrint",A="FL:::/Compiler/CMain.HC.Z,605",BI=41$
$LK,"SLASH_OP_NEG",A="FL:::/Compiler/BackLib.HC.Z,261"$ $LK,"SLASH_OP_NEG",A="FL:::/Compiler/BackLib.HC.Z,261"$
$LK,"PrsVarLst",A="FL:::/Compiler/PrsVar.HC.Z,416",BI=42$ $LK,"PrsVarLst",A="FL:::/Compiler/PrsVar.HC.Z,408",BI=42$
$LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.HC.Z,814",BI=43$ $LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.HC.Z,814",BI=43$
$LK,"PrsAddOp",A="FL:::/Compiler/PrsExp.HC.Z,15",BI=44$ $LK,"PrsAddOp",A="FL:::/Compiler/PrsExp.HC.Z,15",BI=44$
$LK,"LexWarn",A="FL:::/Compiler/CExcept.HC.Z,65",BI=45$ $LK,"LexWarn",A="FL:::/Compiler/CExcept.HC.Z,65",BI=45$
@@ -287,7 +287,7 @@ $LK,"ICCopyTemplate",A="FL:::/Compiler/BackFA.HC.Z,77",BI=225$
$LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.HC.Z,904",BI=226$ $LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.HC.Z,904",BI=226$
$LK,"PrsFun",A="FL:::/Compiler/PrsStmt.HC.Z,140",BI=227$ $LK,"PrsFun",A="FL:::/Compiler/PrsStmt.HC.Z,140",BI=227$
$LK,"LexIncludeStr",A="FL:::/Compiler/Lex.HC.Z,293",BI=228$ $LK,"LexIncludeStr",A="FL:::/Compiler/Lex.HC.Z,293",BI=228$
$LK,"PrsType",A="FL:::/Compiler/PrsVar.HC.Z,287",BI=229$ $LK,"PrsType",A="FL:::/Compiler/PrsVar.HC.Z,285",BI=229$
$LK,"CmpCtrlNew",A="FL:::/Compiler/Lex.HC.Z,28",BI=230$ $LK,"CmpCtrlNew",A="FL:::/Compiler/Lex.HC.Z,28",BI=230$
$LK,"MODR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.HC.Z,131"$ $LK,"MODR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.HC.Z,131"$
$LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.HC.Z,322"$ $LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.HC.Z,322"$
@@ -340,84 +340,83 @@ $LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.HC.Z,805",BI=264$
$LK,"MODR_RIP_REL_IMM_U32",A="FL:::/Compiler/BackLib.HC.Z,134"$ $LK,"MODR_RIP_REL_IMM_U32",A="FL:::/Compiler/BackLib.HC.Z,134"$
$LK,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.HC.Z,44"$ $LK,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.HC.Z,44"$
$LK,"InstEntryFind",A="FL:::/Compiler/UAsm.HC.Z,66",BI=265$ $LK,"InstEntryFind",A="FL:::/Compiler/UAsm.HC.Z,66",BI=265$
$LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.HC.Z,381",BI=266$ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.HC.Z,373",BI=266$
$LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,285",BI=267$ $LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,285",BI=267$
$LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$
$LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,791",BI=269$ $LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,791",BI=269$
H2@2#2#;#A#\#a#Œ#�#Ã#­#Ó#Ú#ë#ş#¨­Óç`ç`ı`aaa<aaKaQaQa{a‚a­a»a»aèa H2@2#2#;#A#\#a#Œ#�#Ã#­#Ó#Ú#ë#ş#¨­Ó‡a‡a�a¥a°a¼aÜa¾aëañañab"bMb[b[bˆbªbÂb¯bÑbıbêbccFcFcMcqc‡c‡c‡c‘cH>Lwşwş‘ş›şŸş£ş¨şªşÂşÚşÚşäşp©Á‡‡±³ºÀÆÈÎÔêı "7M`…—(®å®åÂåãåçåçåïå8~å~å‡åŒå—å å§å©å®åd`µfÙfلوٕٗ٤٦ٲٲٿÙÁÙÎÙĞÙÜÙÜÙ÷ÙÚÚÚÚ&Ú1Ú7Ú<Ú>ÚJÚQÚ`ÚkÚqÚvÚxÚ„Ú´ÚÚÚêÚúÚ
b"bb1b]bJbtb{b¦b¦b­bÑbçbçbçbñbH>L×ı×ıñıûıÿışş Û ÛÛ,Û<Û<ÛAÛTÛ[ÛbÛbÛbÛbÛiÛÛ‹Û‘Û—Û�Û¡Û¡Û¡ÛÎÛÕÛëÛ÷ÛıÛÜ Ü Ü ÜÜDÃÜÜ4Ü7Ü:ÜGÜMÜZÜ]Ü`ÜfÜhÜrÜ ,cjp‹p‹~‹ˆ‹“‹�‹¤‹ª‹
ş"ş:ş:şDşp©Áçç &(.4J]lqsx‚—­Àå÷(åå2åSåWåWå_å8îäîä÷äüäåååååd`µÖØÖØôØøØÙÙÙÙ"Ù"Ù/Ù1Ù>Ù@ÙLÙLÙgÙuÙuـهٖ١٧٬ٮٺÙÁÙĞÙÛÙáÙæÙèÙôÙ$ÚJÚZÚjÚzÚ|ڌڜڬڬڱÚÄÚËÚÒÚÒÚÒÚÒÚÙÚïÚûÚÛÛ␍ÛÛÛÛ>ÛEÛ[ÛgÛmÛsÛyÛ{Û{Û‰ÛDÃ�Û�Û¤Û§ÛªÛ·Û½ÛÊÛÍÛĞÛÖÛØÛâÛ ,cjàŠàŠîŠøŠ‹‹‹‹ os..<QW P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Ş7ç7í7ô7ú7 ”;\ßLßLçLëLMM;M\MeMvMšM±M±MĞMßMèMõMüM.N?NCNKNKN^NnNrNvN␍Œ×ö¦¦ÆÎÒàæìì . B P g m y ~ Œ ¨ ± Á à Ê Ê Ğ Ğ à |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"#
os��¬ÁÇ P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Ş7ç7í7ô7ú7 ”;\?L?LGLKLdL~L›L¼LÅLÖLúLMM0M?MHMUM\M�MŸM£M«M«M¾MÎMÒMÖM␍Œ×ö6>BPV\\ˆ�²À×İéîü ! 1 3 : : @ @ P |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# ###!#$#$#.#0 '¸‰¸‰Æ‰æ‰ì‰ò‰ò‰ø‰„“°X¢X¢l¢s¢z¢~¢¢¢µ¢¼¢Í¢ò¢ı¢£
###!#$#$#.#0 '(‰(‰6‰V‰\‰b‰b‰h‰„“°È¡È¡Ü¡ã¡ê¡î¡¢%¢,¢=¢b¢m¢x¢z¢…¢ª¢µ¢À¢Â¢É¢Ò¢Ô¢ß¢æ¢£("ÿàÿàá%á@á@áFá ŸàŸà®àÄàÊà ˆP´P´u´|´“´Ÿ´ª´¼´Í´¾´¼´í´µµµ!µ-µ7µ>µEµIµKµQµ]µgµnµuµyµyµƒµˆµ“µ¥µ¶µ§µ¥µÖµ÷µ ££:£E£P£R£Y£b£d£o£v£ £("ŸáŸá®áÅáàáàáæá ?á?áNádájá ˆà´à´µ µ#µ/µ:µLµ]µNµLµ}µ˜µ¤µ«µ±µ½µÇµÎµÕµÙµÛµáµíµ÷µşµ#¶5¶F¶7¶5¶f¶‡¶“¶š¶ ¶¬¶¶¶½¶Ä¶È¶Ê¶Ğ¶Ü¶æ¶í¶ô¶ø¶ø¶··#·5·F·7·5·f·‡·“·š· ·¬·¶·½·Ä·È·Ê·Ğ·Ü·æ·í·ô·ø·ø·¸¸$¸5¸&¸$¸U¸\¸b¸n¸x¸¸†¸Š¸Œ¸’¸�¸¨¸¯¸¶¸º¸º¸Ä¸Ò¸Û¸ô¸¹¹¹¹¹†¹ÔW„W„t„Bª|„‹„®„¹„˄҄ã„ë„ï„ò„……0…0…E…G…G…S…[…_…l…l…x…€…„…‘…‘…‘…­…¸…É…É…Î…æ…õ…ú…† ††††-†<†A†G†R†W†W†e†n†z†‚†І’†•†›† †©†»†ĆÕ†å†å†ê†ò†ú†ı†‡‡‡‡‡‡‡‡#‡8‡]‡t‡�‡‰‡‘‡�‡©‡¯‡¶‡¿‡ÇƇÒ‡؇߇ä‡ä‡ò‡ˆˆˆˆˆ ˆ(ˆ7ˆ<ˆ<ˆCˆNˆTˆ\ˆbˆmˆrˆrˆ�ˆŒˆ�ˆ¤ˆ¬ˆ²ˆ·ˆˆÔˆÚˆâˆèˆíˆíˆ‰‰‰‰‰*‰0‰0‰U‰|‰�‰�‰•‰›‰±‰‰ȉ͉æ‰ì‰ü‰Š ŠŠŠŠ+Š1ŠGŠXŠ^ŠcŠ|Š‚Š’ŠšŠ¢Š¨Š­Š­ŠÊÉŠߊğŠöŠûŠ
&¶-¶4¶8¶:¶@¶L¶V¶]¶d¶h¶h¶u¶ƒ¶“¶¥¶¶¶§¶¥¶Ö¶÷¶· ‹‹!‹)‹1‹7‹>‹C‹C‹Y‹_‹u‹†‹Œ‹Ž‹�‹£‹­‹µ‹½‹Ëʋʋʋ܋å‹ö‹ŒŒ Œ ŒŒ!Œ2ŒEŒLŒRŒZŒ`ŒpŒvŒ~Œ„Œ„Œ„Œ‰Œ‰Œ‰Œ‰Œ‰Œ¨Œ´Œ¹Œ¹ŒÈŒÑŒÜŒåŒðŒûŒ����2�C�I�N�`�f�k�„�¢�¢�§�§�³�»�¾�Ä�Ê�Ï�Ï�ó�û�ŽŽŽ Ž Ž0ŽNŽNŽSŽSŽ_ŽgŽjŽqŽwŽ|Ž|ŽœŽ¤Ž´ŽºŽÁŽߎîŽöŽ��� �&�>�F�^�f�i�p�v�v�v�•�¥�±�¹�¼�Ã�É�Ù�è�ô����!�'�?�K�f�n�q�x�~�~�~�~�ƒ�ƒ�Œ�œ�²�¸�Ð�ã�é�î�‘‘ ‘'‘-‘9‘A‘D‘K‘Q‘z‘‚‘’‘˜‘Ÿ‘Ÿ‘Ÿ‘¤‘¤‘­‘őۑá‘ù‘ ’’’B’H’[’’’¤’Á’É’Ï’Ô’Ô’î’ú’“““““0“<“H“S“S“X“X“r“~“Š“•“•“š“š“°“¶““ȓ͓ߓå“ê“ù“””””$”7”B”K”W”_”b”h”n”s”‡”–”ž”¶”¾”Á”ǔ͔å”í” •'•/•2•8•>•>•O•X•d•l•o•v•|•�•“•¢•ª••ʕ͕ԕڕò•ú•–3–;–>–E–K–K–[–d–p–x–{–�–‡–Œ– –¯–·–Ñ–Ù–Ü–â–è–——*—F—N—Q—W—]—]—n—w—ƒ—‹—Ž—•—›— —²—Á—É—ä—ì—ï—ö—ü—˜˜>˜[˜c˜f˜m˜s˜s˜s˜s˜s˜x˜x˜Ž˜”˜ ˜¦˜«˜½˜ØȘÖ˜â˜ë˜÷˜ÿ˜™ ™™™&™5™=™U™]™`™g™m™…™�™¬™Æ™ΙÑ™Ø™Þ™Þ™Þ™ï™ø™š šššš3šBšNšišqštš{š�š™š¥šÇšäšìšïšöšüšüšüšüšüš›››/›5›@›E›E›X›n›t››�›�›”›·›½›È›È›Ú›ã›ô›ù› œœœ œ œ3œIœOœ]œlœqœqœ„œšœ œ®œ½œœœØœÞœûœ��=�C�H�T�]�l�l�q�q�‡���ª�Â�Â�ì�ò�÷�ž žžž ž ž6ž<žYžqžqž›ž¡ž¦ž²ž»žÊžÊžÏžÏžåžëžŸ Ÿ ŸJŸPŸRŸ^ŸgŸrŸrŸrŸrŸwŸ…ŸŽŸŸŸ¡Ÿ³ŸÀŸÀŸÀŸПàŸåŸ     0 M ] � ‘ — — — œ ¡ ¶ É ¡¡¡ ¡$¡5¡D¡v¡~¡„¡†¡‹¡’¡’¡›¡­¡À¡É¡Ø¡Ø¡Ý¡â¡ñ¡ú¡¢¢¢¢¢<¢C¢I¢Q¢\¢b¢r¢x¢€¢‹¢‘¢‘¢–¢›¢¢¢©¢°¢·¢À¢Ï¢Ï¢Ï¢Ô¢Ô¢Ô¢æ¢ë¢ë¢ý¢££££££#£#£.£?£B£N£W£c£j£p£u£u£€£‘£”£ £©£µ£¼££Ç£Ç£Ç£Ç£Ì£Ñ£Ñ£Ü£à£à£ì£õ£ø£ø£¤¤¤"¤(¤7¤B¤M¤S¤_¤c¤c¤o¤x¤{¤{¤†¤ˆ¤ž¤¥¤«¤³¤¾¤ɤϤÙ¤ܤà¤à¤è¤ï¤ò¤ô¤ÿ¤¥ ¥¥¥¥¥:¥A¥L¥W¥Z¥`¥e¥e¥p¥t¥t¥€¥‰¥Œ¥Œ¥—¥™¥¯¥¶¥¼¥Ë¥Ö¥á¥ç¥ó¥÷¥÷¥¦ ¦¦¦¦¦2¦9¦?¦G¦R¦]¦c¦m¦p¦t¦t¦|¦ƒ¦†¦ˆ¦“¦—¦ ¦£¦£¦®¦°¦ΦÕ¦à¦ë¦î¦ô¦ù¦ù¦ §§§§$§'§'§2§4§J§Q§W§i§t§§…§ЧЧ•§š§š§¥§ª§ª§µ§¸§¼§çȧͧÒ§Ò§æ§ë§ë§ø§ü§ ¨¨¨-¨4¨8¨8¨E¨Q¨Y¨_¨o¨s¨„¨–¨¡¨¥¨¥¨²¨º¨¨ȨȨȨȨȨʨʨبߨì¨ø¨©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© ©'©3©3©T©c©{©}©‰©–©–©¹©Æ©Ñ©Ú©ã©î©õ©õ©ÿ©ÿ©ªª2ª>ª>ªi¬xÝ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lbyO}O}e}t}y}Ž}{}�} } }­}Â}¯}Ñ}×}ð} ~"~;~T~^~„ž�m�m­mµm»mÂmÉmËmÎmÕmÜmÜmímñm÷m÷m nnnn7nZn{n€n¡n¦n²n½nÂnÒnÕnénïnônúnünoo oooo$o4oWoeo}o‚o†o«o¾oÃoÑoéoîoòop'pJp]pbphpmppprpxp~p„p‰p�p—p—p¡pªp¸pÐpÕpÙpþpq1qDqIqYq|qŠq¢q§q«qÐqãqãqþqþqþq r$r&r&r&r4rLrNrNr\rtrtrLine truncated
···&·-·4·8·:·@·L·V·]·d·h·h·r·‚·”·¥·–·”·Å·Ì·Ò·Ş·è·ï·ö·ú·ü·¸¸¸ ¸&¸*¸*¸4¸B¸K¸d¸p¸t¸t¸w¸€¸ö¸Ô·ƒ·ƒÔƒ¢©܃냄„+„2„C„K„O„R„`„d„�„�„¥„§„§„³„»„¿„̄̄؄à„ä„ñ„ñ„ñ„␍……)…)….…F…U…Z…`…k…p…p…u…�…œ…¡…§…²…·…·…Å…Î…Ú…â…ê…ò…õ…û…† ††$†5†E†E†J†R†Z†]†c†c†h†h†h†n†q†x†ƒ†˜†½†Ô†á†é†ñ†ı† ‡‡‡ ‡#‡&‡2‡8‡?‡D‡D‡R‡b‡b‡o‡o‡w‡‡ˆ‡—‡œ‡œ‡£‡®‡´‡¼‡‡͇Ò‡Ò‡á‡ì‡ş‡ˆ ˆˆˆ"ˆ4ˆ:ˆBˆHˆMˆMˆaˆgˆrˆxˆzˆŠˆ�ˆ�ˆµˆ܈áˆáˆõˆûˆ‰"‰(‰-‰F‰L‰\‰d‰l‰r‰w‰w‰‹‰‘‰§‰¸‰¾‰É܉â‰ò‰ú‰ŠŠ␍Š␍Š#Š)Š?ŠPŠVŠ[ŠjŠpŠ�ЉБЗŠ�Š£Š£Š¹Š¿ŠÕŠæŠìŠîŠıŠ‹␍‹‹‹#‹*‹*‹*‹<‹E‹V‹f‹f‹k‹k‹y‹�‹’‹¥‹¬‹²‹º‹À‹Ğ‹Ö‹Ş‹ä‹ä‹ä‹é‹é‹é‹é‹é‹ŒŒŒŒ(Œ1Œ<ŒEŒPŒ[Œ`Œ`ŒvŒ|Œ’Œ£Œ©Œ®ŒÀŒÆŒËŒäŒ�������$�*�/�/�S�[�c�s�y�����®�®�³�³�¿�Ç�Ê�Ñ�×�Ü�Ü�ü����!�?�N�V�n�v�y�€�†���¦�¾�Æ�É�Ğ�Ö�Ö�Ö�õ�����#�)�9�H�T�o�w�z���‡�Ÿ�«�Æ�Î�Ñ�Ø�Ş�Ş�Ş�Ş�ã�ã�ì�ü���0�C�I�N�`�f�k�‡���™�¡�¤�«�±�Ú�â�ò�ø�ÿ�ÿ�ÿ�‘‘␍‘%‘;‘A‘Y‘l‘r‘w‘¢‘¨‘»‘ò‘’!’)’/’4’4’N’Z’f’q’q’v’v’�’œ’¨’³’³’¸’¸’Ò’Ş’ê’õ’õ’ú’ú’““"“(“-“?“E“J“Y“e“q“w“}“„“—“¢“«“·“¿““È“ΓÓ“ç“ö“ş“””!”'”-”E”M”m”‡”�”’”˜”�”�”¯”¸”Ĕ̔ϔ֔ܔá”ó”• "7"707<7M7_7h7v7|70€À\. . P W e p – – Ÿ ¡ ¡ ¨ Ô Û Û ê ù ␍ ␍ ␍-␍5␍F␍O␍m␍x␍z␍“␍™␍¤␍´␍Æ␍Ï␍Ú␍ß␍å␍ì␍'007F]]lu‰�—œ§­µÛäëğû*/7CUUqx€�¢¨±±ÀÆÚßï*=EYw�’�µÑãéô &//AEQh„–œ§³ÃÓåëëğòò÷÷ �1ŒÄãvÜvÜ’Ü�ܢܦܭܴÜÃÜÎÜÔÜÙÜÛÜçÜîÜöÜüÜİİİİİ$İ*İ0İ2İ2İ>İ28 2/2/@/F/R/]/n/x//…/3@‡“íí�í˜íŸí¾íËíËíÎíĞíÖí4ÜS  - @ G N U [ ] d k n n € € ’ � ± ¹  Ê Ï Õ ë û 
•"•*•-•4•:•R•Z•y•“•›•�•¥•«•«•»•ĕЕؕەá•ç•ì•–––1–9–<–B–H–`–h–Š–¦–®–±–·–½–½–Ζ×–ã–ë–î–õ–û–——!—)—D—L—O—V—\—t—|—�—»—ׯ—͗ӗӗӗӗӗؗؗî—ô—˜˜ ˜˜#˜(˜6˜B˜K˜W˜_˜b˜i˜o˜t˜†˜•˜�˜µ˜½˜À˜ǘ͘å˜í˜ ™&™.™1™8™>™>™>™O™X™d™l™o™v™|™“™¢™®™É™Ñ™Ô™Û™á™ù™š'šDšLšOšVš\š\š\š\š\šašaštš�š•š š¥š¥š¸šΚÔšßšášášôš››(›(›:›C›T›Y›k›{›{›€›€›“›©›¯›½›Ì›Ñ›Ñ›ä›ú›œœœ"œ"œ8œ>œ[œsœsœ�œ£œ¨œ´œ½œÌœÌœÑœÑœçœíœ 
�"�"�L�R�W�c�l�{�{�€�€�–�œ�¹�Ñ�Ñ�û�����*�*�/�/�E�K�h�€�€�ª�°�²�¾�Ç�Ò�Ò�Ò�Ò�×�å�î�ÿ�ŸŸ Ÿ Ÿ Ÿ0Ÿ@ŸEŸiŸuŸvŸ{Ÿ�Ÿ­Ÿ½ŸáŸñŸ÷Ÿ÷Ÿ÷ŸüŸ  ) g w }  „ • ¤ Ö Ş ä æ ë ò ò û ␍¡ ¡)¡8¡8¡=¡B¡Q¡Z¡e¡g¡p¡{¡{¡œ¡£¡©¡±¡¼¡¡Ò¡Ø¡à¡ë¡ñ¡ñ¡ö¡û¡¢ ¢¢¢ ¢/¢/¢/¢4¢4¢4¢F¢K¢K¢]¢h¢p¢x¢~¢~¢~¢ƒ¢ƒ¢�¢Ÿ¢¢¢®¢·¢âʢТբբà¢ñ¢ô¢£ £££"£'£'£'£'£,£1£1£<£@£@£L£U£X£X£c£e£{£‚£ˆ£—£¢£­£³£¿£ããϣأۣۣæ£è£ş£¤ ¤¤¤)¤/¤9¤<¤@¤@¤H¤O¤R¤T¤_¤c¤l¤o¤o¤z¤|¤š¤¡¤¬¤·¤º¤À¤ŤŤФÔ¤Ô¤à¤é¤ì¤ì¤÷¤ù¤¥¥¥+¥6¥A¥G¥S¥W¥W¥c¥l¥o¥o¥z¥|¥’¥™¥Ÿ¥§¥²¥½¥Ã¥Í¥Ğ¥Ô¥Ô¥Ü¥ã¥æ¥è¥ó¥÷¥¦¦¦¦¦.¦5¦@¦K¦N¦T¦Y¦Y¦k¦o¦o¦{¦„¦‡¦‡¦’¦”¦ª¦±¦·¦ɦÔ¦ߦå¦ê¦ê¦õ¦ú¦ú¦§ .
§ F
§§§§#§(§-§2§2§F§K§K§X§\§m§u§y§�§”§˜§˜§¥§±§¹§¿§ϧÓ§ä§ö§¨¨¨¨¨"¨(¨(¨(¨(¨(¨*¨*¨8¨?¨L¨X¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨h¨h¨¨‡¨“¨“¨´¨èÛ¨ݨé¨ö¨ö¨©&©1©:©C©N©U©U©_©_©b©t©’©�©�©É«xİ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lby¯|¯|Å|Ô|Ù|î|Û|ı|}}␍}"}}1}7}P}i}‚}›}´}¾}„�ïlïl␍mmm"m)m+m.m5m<m<mMmQmWmWmlmvmvm~m—mºmÛmàmnnnn"n2n5nInOnTnZn\nbnenknpnsn{n„n”n·nÅnİnânæn oo#o1oIoNoRowo‡oªo½oÂoÈoÍoĞoÒoØoŞoäoéoïo÷o÷op J
pp0p5p9p^pnp‘p¤p©p¹pÜpêpqq q0qCqCq^q^q^qlq„q†q†q†q”q¬q®q®q¼qÔqÔqåqåqîqûqr1rKrSr^rqrururur|r‚rœr¤r¯rÊrÌrÒrìrôrÿr␍sss2sH�›x†x†�†¥†µ†¼†Ó†î†‡‡G‡L’¡Ï~Ï~ã~ğ~ò~0IT_g4IR^Ø^ØgØgØjØx؆؉Ø�Øì=·û·ûßûâûüü(ü(üCüIüNüNüiüoütütü}ü‹ü¨üÀüÅüÌüÒüÔüñüıı␍ıııı(ı.ı.ı.ı>ı3ıOı_ıqıvıvıvı}ı„ı‹ı ı§ıÃıÃıÕıÌM¼ˆ¦ˆ¦¢¦­¦¸¦Á¦É¦Ì¦Ó¦×¦à¦ó¦÷¦ı¦ §(§5§D§I§U§Z§a§m§r§u§§w§�§˜§©§§§Ÿ§·§À§Æ§Æ§Ô§×§ë§ô§ı§¨¨␍¨$¨<¨E¨S¨o¨{¨{¨“¨¤¨¤¨«¨Ä¨Ğ¨Ø¨ë¨ò¨©©©©%©*©1©N©{©‚©†©ˆ©“©Ÿ©£©¸©º©Ë©Õ©à©ê©ù©ª!ª!ª$ª,ª1ª³ªPw‡×N×NóNOO.OKOfOlOuOƒO‰OŒO˜OŒ xbxbˆb¬b¬bºbºbºbºbÃbÃbÊbåbúbcc␍c␍cc+c+c9c?c?cWcWc]cƒc (kq ‹ ‹.‹:‹J‹Q‹W‹ @^jëë�ë•ëœë»ëÈëÈëËëÍëÓë!$/4§á§á´áÉáÎáÔá"$).wáwá„á™á�á¤á#$#(GáGáVáláqáwá$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô ş !!!&!0!:!D!N!\!%¤CÈ�È�Ş�å�ú� �� �&�,�<�G�Q�\�s�v�x�Š��� �ª�´�»�Æ�Û�ã�ã�ù�ù�ù�␍Ÿ&$5:×á×áåáúáÿáâ'¤DiŸŸ&Ÿ-Ÿ4ŸBŸSŸeŸgŸnŸtŸ„Ÿ�Ÿ™Ÿ¤Ÿ»Ÿ¾ŸÀŸÒŸÙŸéŸóŸıŸ  # + + A A A V ((&,ú/ú/000 0%0)0]e×M×MíMNNNN N*ø Úv%v%˜% %¦%³%º%Ö%Ü%Ü%ç%ñ%ñ%ş%&&!&'&1&7&H&H&S&]&]&o&u&…&‹&�&—&—&¸&¾&Ğ&ã&é&ì&ò&ò&ô&ú&''''''"'"'7'A'A'U'^'d'j'€'…'�'£'§'§'¯'µ'»'Å'Ì'Ó'Ü'î'î'(((#(5(H(N(R(X(^(d(d(f(j(p(v(|(�(�(�(�(¬(½(½(Ô(á(å(í(ÿ( ) )%)(),)2)2)D)U)j)~)†)—)›)¡)®)°)¼)Ú)à)ë)** *%*+*4*:*L*]*e*i*o*|*~*Š*¨*®*´*º*Ã*É*æ*Ù*+ +++$+)+)+0+:+O+T+T+T+q+s+�+’+¯+µ+½+Á+È+ë+ñ+÷+,,!,',2,7,7,>,B,L,Z,\,d,i,q,|,‚,‘,–,œ,¡,©,®,½,Ô,ä,ñ,ü,--6-6-=-R-W-`-m-r-x-}-}-„-ˆ-’- -¢-ª-®-²-½-Ç-Ç-Ñ-İ-ä-è-ğ-ø-.. .%.1.1.9.9.\.\.j.p.u.y.~.~.~.~.„.†.†.©.¯.µ.¼.Ò.Ô.Ô.Ô.ß.ß.ß.ä.␍0+4.w6Ê6ÊPÊTÊlÊtÊ|Ê†ÊŠÊ‘Ê—Ê«Ê³Ê¸Ê»ÊÆÊÑÊÙÊäÊïÊñÊËËË Ë+Ë-Ë8ËCËEËQËZËZËpË{˓˙ˢ˳˹ËÂËÔËÚËÚËâËæËñËöËÌÌÌ%Ì'Ì+Ì:Ì:Ì:ÌKÌKÌPÌbÌhÌÖÌ,Ô@fæfæ|æƒæ†æªæªæÇæÚæíæççç#ç1çDçWç_ç_çaçaçaçtçvçvçvç}ç�ç£ç£ç£ç¶çÁçÔçêçïçóçúçè"è)è)è,èQè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~�¨‹¨‹¶‹Ã‹Ñ‹ã‹î‹ü‹ ŒŒ)Œ4ŒBŒHŒNŒ/4 J
"7"707<7M7_7h7v7|70€À\� � À Ç Õ à       D K K Z i … � � � ¥  ¿ İ è ê ␍ ␍␍$␍6␍?␍J␍O␍U␍\␍„␍‰␍—␍ ␍ ␍§␍¶␍Í␍Í␍Ü␍å␍ù␍ %KT[`kw†šŸ§³ÅÅáèğ!!06JO_s…Šš­µÉçş%ASYdp€�–ŸŸ±µÁØô #3CU[[`bbggv|‚‚†ÿ1ŒÄãæÛæÛÜÜÜÜÜ$Ü3Ü>ÜDÜIÜKÜWÜ^ÜfÜlÜrÜvÜv܅܌ܔܚܠܢܢܮÜ28 2/2/@/F/R/]/n/x//…/3@‡“ßìßìíìøìÿìí+í+í.í0í6í4ÜSgg� §®µ»½ÄËÎÎààòı  " * / 5 K [ p u � ¦ ª ª ¯ ¸  Ö Ş ç ï ô û  O
 X
2 b
4 v
M ~
e ‡
i �
i ”
}
…
�
–
› ›
¡ ­
· ½
Ç Ò
Ü Ô
á í
ú     % . 6 ; A W g | � š ²  É É É Û Î ı ğ   # ; S X c w  ˆ � ’ ˜ ª º Ï Ñ ê ␍␍␍␍"␍+␍3␍8␍?␍U␍e␍z␍␍˜␍°␍´␍Ç␍Ç␍Ç␍Ù␍Ì␍û␍î␍!9QQQ]cmxŠš±Èßöö $$$EUcclvƒ�«²ÅÇæõî␍77P5D‚�ÆÚãéûûÿ
  ) ) ) ; . ] P r } ƒ › ³ ¸ à × ß è ğ ò ø  6\ObÈŠÈŠèŠ÷Š‹ ‹ ‹‹‹"‹'‹'‹8‹<‹D‹\‹_‹k‹70üVåVå_ådåmåtåvå{å8�áÇÇéð÷*CCNR]Šqd™°ÁÕÙÞó .!Maeejˆ{ê�Òðû-2FNW_dk}�£¥¾ÖÚÚï 'FZ^mmmm€†�—ªÅÅáñÿÿ!/DW\{Šƒ¢²¹ÊðáDDD\O�’�£®Ðê×ù!<PTYwj™ŒÁ®Ðîùÿ+0DLU]bi{‹¡£¼ÔØØØú'+:::MS]dw’’’®¾ÌÌàîü-2Q`Yxˆ™··ÙÙà   # 9Dt�^^n‚‹‘££§ª²:lz‘_~_~u~„~‰~ž~‹~­~°~°~½~Ò~¿~á~ç~2Kdn;<�›/8>BM<¨.¦ï¦ï®ï²ï¾ïÏïÑïáïìïþï ðð#ð4ð;ðTðXðiðiðsðzð�ð–ð�ð¸ðÇðÞðÞðúðÿð+ñ=d(=ø‰ø‰ŠŠŠ/Š7Š;ŠEŠOŠWŠZŠ`Š>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHÝHÝHãHóHóHþHII3I;IAIAIUIUI^IaI!J?Ä no¬o¬Œ¬”¬—¬¥¬³¬ȬѬ쬭­"­3­7­I­L­W­`­l­­°­¥­‹­À­×­ë­÷­®&®;®_®s®u®–®|®±®´®¹®¼®¼®îÙ®à®í®ò®¯¯!¯!¯9¯=¯j¯j¯‚¯‡¯‡¯—¯›¯¬¯¶¯ǯѯä¯é¯é¯ù¯ý¯°°)°3°F°R°W°W°W°y°а�°œ°±°±°¶°À°ϰÔ°Ú°ß°ß°ä°î°ý°±± ± ±±±±±&±9±E±R±^±m±w±}±†±�±±±±ϱÔ±ì±ÿ±²#²+²:²D²J²S²\²\²a²a²a²a²a²q²q²q²‰²Ÿ²§²²Ó²à²â²ï²ô²ô²ô²ÿ² ³³³³'³,³D³P³b³n³t³|³‚³‹³±³½³óɳسà³è³´&´3´5´C´C´H´H´O´]´b´u´�´�´“´™´¢´§´§´§´§´§´¿´Ä´Ä´Ä´Ä´Ä´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´í´µ µ&µ7µDµFµSµcµhµhµhµqµ‹µ—µœµ¾µʵʵϵϵϵϵϵϵϵϵäµéµéµéµúµ#¶;¶P¶q¶’¶�®¶³¶³¶³¶¼¶â¶ë¶ü¶·#·<·D·L·Z·„·�·“·´·Í·Í·Í·Í·Í·ï·(¸1¸7¸=¸B¸K¸T¸Y¸Y¸Y¸Y¸h¸|¸š¸ª¸°¸µ¸µ¸ȸܸ¹¹¹¹ ¹ ¹/¹C¹a¹q¹w¹|¹|¹�¹£¹ɹܹâ¹â¹ç¹ç¹ç¹ÿ¹ºº8ºIºVºXºgºiºiºiºiºiº}º}º}º}º}º}º}º}º}º}º}º}º}º}º}º}ºŒº›º¦º¨º¨º±º³º³ºǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺɺɺàºèºôºôºøºýº »)»A»P»\»r»Œ»�»™»¥»Ë»ë» ¼/¼1¼D¼r¼J¼�¼�¼�¼ ¼¨¼üÔ¼×¼ñ¼ÿ¼ ½#½#½N½Q½`½t½•½©½Ž±½á½ö½¾I¾G¾<¾1¾"¾W¾W¾W¾Z¾_¾b¾|¾о¸¾Ú¾Ú¾¿¿¿+¿L¿`¿|¿h¿˜¿˜¿¶¿ë¿é¿Þ¿Ó¿Ä¿ù¿ù¿ù¿ü¿ÀÀÀÀ9ÀEÀ–Ã@Ä…²ÈÈ-È1È<ÈCÈNÈbÈbÈmÈ~ȅȒȞȫȯÈÀÈÀÈÉÈÎÈÖÈæÈôÈÉÉ!É!É9É9ÉTɀɀɔɖɖɠɨɨɲɺɺɺÉËÉËÉËÉÑÉÙÉßÉäÉäÉêÉòÉöÉüÉÊÊÊ'Ê1Ê@ÊEÊMÊMÊRÊRÊYÊoÊʉʑʗʦʫʳʹʹʾÊÅÊÐÊËËË%Ë+Ë@ËFËKËKËKËKËKËKËKËKËKËVËdLine truncated
 / 1 J b f f z ‚ ‹ “ ˜ Ÿ µ Å Ú ß ø ␍␍'␍'␍'␍9␍,␍[␍N␍p␍{␍�␍™␍±␍±␍±␍½␍Ã␍Í␍Ø␍ê␍ú␍(?VVi„„„¥µÃÃÌÖãı %'FUNm}——°5D‚�&&6JSYkkorz6\Ob8Š8ŠXŠgŠpŠyŠ}Š�Š�ВЗЗЍЬдŠÌŠÏŠÛŠ70üÆäÆäÏäÔäİäääæäëä8�á''IPWbxxŠ££®²½êÑÄù!59>Skpx|��­ÁÅÅÊèÛ# ßßßß$ß2ßAßIßXß`߃߉ß�ߑߗß�ß�ß�ßÂßÇßäßçßçßîßûßÿß
ı2P[au�’¦®·¿ÄËİí6::Ogltx‡z¦º¾ÍÍÍÍàæğ÷ à$à0à@àSàoà„àŒà–àµàÉàÉà=áC ?Cw1w1�1‰1�1DôÑÊO[O[p[{[Œ[{[¦[´[´[Ä[Í[Ô[Ø[á[á[é[í[␍\\'\-\8\\\\\m\x\~\…\Š\Š\�\¨\¹\Ä\Ï\Ö\à\í\í\ÿ\]]]]](](];]@]Q]W]`]u]‰]‰]�]�]œ]¡]¡]¦]­]µ]¼]¾]Æ]Í]Í]Ü]â]ï]ö]ş]"^"^*^9^D^K^M^a^p^u^z^z^z^�^’^¡^¨^±^Æ^Ú^Ú^ß^ß^ç^ı^___"_"_._=_O_^_y_„_�_°_Â_Ñ_ğ_û_``#`*`1`D`F`T`g`i`w`…`•`œ`³`º`Æ`Ó`Ó`Ş`ò`ÿ`a aa/a6aGaUawa~aŠa¨a¨a¨a°a»a¿aÇaËaÓaÚaêaõabb!b,b5b=bBbBbQb^blbwb‚b�b–bœb¢b«b±bÀbØbØbébôböbc c&c,c2c;cLcsc{c…c“c«c²c¾cÍcâcâcïcôcd d d d deEDTaÏ|Ï|ã|ğ|}ò|}}/}G}O}FœfÉOSOSqS{S£S²S½SÖSÛSßSçSğSÿSTTT)T:TYTaTcT‚TŠT™T T¬T±T¸TÀTÆTÈTÙTŞTôTàTU U UUU)UHUOUQUpUwUwUwU�U—U£U§UµUËUÀUãUèUùUşUVV#V)V0V8V>V@VQVVVlVXV{V�V�V‰V’V’VœVœV´VäVíVùVıV W!WW9W9WKWG ;z§â§âÆâÏâÒâäâúâüâã
%%AQ__s��¤·¼Ûêã*PAvx¤¤¤¼¯íòı0J7Yp�œ°´¹×Êùì!0NY_s‹�¤¬µ½ÂÉÛë4888Zs‡‹ššš­³½Ä×òòò,,@Ng\z�’±À¹Øèù99@cccƒ9Dt�ÎÎŞòû":lz‘¿}¿}Õ}ä}é}ş}ë}␍~~~~2~ ~A~G~`~y~’~«~Ä~Î~;<�›~~�Ÿ¨®²½<¨.ïïï"ï.ï?ïAïQï\ïnïyï„ï“ï¤ï«ïÄïÈïÙïÙïãïêïıïğ␍ğ(ğ7ğNğNğjğoğ›ğ=d(=h‰h‰t‰ˆ‰‹‰Ÿ‰§‰«‰µ‰¿‰Ç‰Ê‰Ğ‰>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHİHİHãHóHóHşHII3I;IAIAIUIUI^IaI!J?Ä nϫϫì«ô«÷«¬¬(¬1¬L¬e¬w¬‚¬“¬—¬©¬¬¬·¬À¬̬߬­­ë¬ ­7­K­W­e­†­›­¿­Ó­Õ­ö­Ü­®®®®®#®9®@®M®R®a®n®�®�®™®�®Ê®Ê®â®ç®ç®÷®û® ¯¯'¯1¯D¯I¯I¯Y¯]¯n¯x¯‰¯“¯¦¯²¯·¯·¯·¯Ù¯ê¯ï¯ü¯°°° °/°4°:°?°?°D°N°]°b°h°m°m°s°y°~°~°†°™°¥°²°¾°Ͱ×°ݰæ°ı°±"±/±4±L±_±v±ƒ±‹±š±¤±ª±³±¼±¼±Á±Á±Á±Á±Á±ѱѱѱé±ÿ±²"²3²@²B²O²T²T²T²_²m²r²r²y²‡²Œ²¤²°²²βÔ²ܲâ²ë²³³#³)³8³@³H³u³†³“³•³£³£³¨³¨³¯³½³³Õ³á³í³ó³ù³´´´´´´ ´$´$´$´$´$´5´5´5´5´5´5´5´5´5´5´M´c´k´†´—´¤´¦´³´ôÈ´È´È´Ñ´ë´÷´ü´µ*µ*µ/µ/µ/µ/µ/µ/µ/µ/µDµIµIµIµZµaµfµfµqµƒµ›µ°µѵòµıµB¶K¶\¶b¶ƒ¶œ¶¤¶¬¶º¶ä¶í¶ó¶·-·-·-·-·-·O·ˆ·‘·—·�·¢·«·´·¹·¹·¹·¹·È·Ü·ú· ã+ãIãXãvãŠã¢ã©ãÏãíãüãä*äAäEäEäIäNäSä]ä`äjäoäˆä‹ä‹ä‹ä‹ä�ä–ä²äÀäÌäÕäéäñäúäå!å-å6åJåJåYå^å^ålåHPcs'A'AHA5AjAWAyAˆA�A›A�A¨A³A³AÕAÛAIPµÅ§û§û»ûÀûÏûÏûÖûüüü6ü(üNüVüJŒ•´'ú'úZú†ú†ú™ú�ú¿úÏúÔúÔúÛúãúëúû ûû"û3ûGûLûNûNûNûjûˆûˆû¥ûKP�­>>0>2>@>F>a>p>>�>œ>§>ª>º>Lè7ß/ß/
¸¸¸¸(¸<¸b¸u¸{¸{¸€¸€¸�¸£¸Á¸Ѹ׸ܸܸ︹)¹<¹B¹B¹G¹G¹G¹_¹u¹}¹˜¹©¹¶¹¸¹ǹɹɹɹɹɹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹì¹û¹ºººººº'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º)º)º@ºHºTºTºXº]ºmº‰º¡º°º¼ºÒºìºïºùº»+»K»k»�»‘»¤»Ò»ª»í»í»ğ»¼¼#¼4¼7¼Q¼_¼k¼ƒ¼ƒ¼®¼±¼À¼Ô¼õ¼ ½%½½A½V½t½©½§½œ½‘½‚½·½·½·½º½¿½½ܽê½¾:¾:¾e¾h¾w¾‹¾¬¾À¾ܾȾø¾ø¾¿K¿I¿>¿3¿$¿Y¿Y¿Y¿\¿a¿a¿h¿x¿™¿¥¿öÂ@Ä…²wÇwÇ�ǑǜǣǮÇÂÇÂÇÍÇŞÇåÇòÇşÇ ÈÈ È È)È.È6ÈFÈTÈcÈnÈ�È�șșȴÈàÈàÈôÈöÈöÈÉÉÉÉÉÉÉ+É+É+É1É9É?ÉDÉDÉJÉRÉVÉ\ÉaÉaÉwɇɑɠɥɭɭɲɲɹÉÏÉßÉéÉñÉ÷ÉÊ ÊÊÊÊÊ%Ê0ÊdÊsÊ}ʅʋʠʦʫʫʫʫʫʫʫʫʫʶÊÄÊÔÊÚÊâÊñÊöÊË ËËËËË!Ë*Ë7Ë?ËKËVˊ˒ˡ˫ËÅËËËĞËĞË×ËêËòËÌÌÌ,Ì.Ì9ÌAÌVÌVÌ^ÌoÌwÌ~̄̊Ì�Ì—ÌœÌÀÌÌÌÔÌéÌõÌúÌÍÍÍÍÍ,ÍIÍNÍVÍgÍoÍw͌͑ͤ͜͹;;ÍâÍîÍöÍ ÎÎÎ(Î3Î8Î8Î8Î8Î8Î8ÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎNÎ]Î`ÎnÎ~΄ΌΛΠΨΰβκÎÉÎÏÎ×ÎßÎáÎéÎÏÏÏ Ï&Ï:ÏCÏLÏTÏ^ÏhÏpÏ~σψϚÏÎÏÖÏåÏïÏ ĞĞĞĞĞ Ğ(Ğ+Ğ5ĞCĞUĞWĞiĞ{Ğ{Ğ{Ğ†Ğ‹Ğ¨Ğ­Ğ­Ğ¶Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»Ğ»ĞÆĞÒĞêĞıĞÑÑÑ!Ñ(Ñ5Ñ>ÑGÑOÑVÑ[Ñ[ÑcÑkщёєіѦѰѰѰѲÑÇÑØÑÛÑŞÑæÑëÑëÑôÑùÑÒÒÒ*Ò1ÒBÒNÒkÒ„Ò™Ò®ÒµÒµÒºÒºÒºÒºÒºÒºÒºÒÂÒÍÒÙÒèÒíÒíÒõÒıÒ 0␍000020I0`0„0 0£0Â0Ü0î0û01"1'121:1:1D1D1O1T1i1o1�1­1¯1Ä1Ê1é12222%2%272u2�2Ÿ2M$ ÷Z÷Z"[ [,[4[NLx‡fÍfÍxÍ�Í�ͯͶ;ÍÎÍÙÍêÍğÍ"ÎOTHYÀeÀeÒeÔeİeæeôeùeff
ÓÓÓÓÓÓÓ(Ó-Ó-Ó-Ó9Ó@ÓFÓPÓUÓlÓ{ӃӔӜӿÓÅÓÌÓÎÓÔÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓİÓİÓøÓÔÔÔÔ Ô'ÔCÔPÔPÔPÔTÔ_Ô}Ô‹ÔÖAx[ÖÖ•ÖœÖ£Ö®ÖµÖÆÖĞÖ×ÖáÖôÖüÖüÖ×1×7×@×G×J×U×^×e×h×m×xׂהךװ׷׿×Õ×Ü×Ü×Ü×êרØ"Ø4Ø<Ø<Ø<ØGØQØcØiØØ†Ø�ؕتػػØÂØÂØÂØĞØ÷ØÙ␍ÙÙ'Ù/Ù/Ù/Ù=ÙEÙEÙHÙSÙmÙyÙ¾ÙBx`ºÏÜÏÜçÜ÷ÜşÜİİ#İ&İ.İ5İ8İHİVİaİlİoİzİ�ݛݦݱݼİÃİÖİâİÿİŞŞ0Ş3Ş9Ş>ŞMŞSŞ[ŞjŞpŞxŞxބޒޡީ޸ŞÀŞãŞéŞïŞñŞ÷ŞıŞıŞıŞ"ß'ßDßGßGßNß[ß_ßjß„ß�ß ß³ßÏßäßìßößà)à)à�àC ?C/1/191A1F1DôÑʯZ¯ZĞZÛZìZÛZ[[[$[-[4[8[A[A[I[M[m[{[‡[�[˜[¼[¼[Í[Ø[Ş[å[ê[ê[ı[\\$\/\6\@\M\M\_\d\d\r\w\w\ˆ\ˆ\›\ \±\·\À\Õ\é\é\î\î\ü\]]]␍]]]]&]-]-]<]B]O]V]^]‚]‚]Š]™]¤]«]­]Á]Ğ]Õ]Ú]Ú]Ú]í]ò]^^^&^:^:^?^?^G^]^b^v^}^‚^‚^�^�^¯^¾^Ù^ä^ş^_"_1_P_[_`_o_ƒ_Š_‘_¤_¦_´_Ç_É_×_å_õ_ü_``&`3`3`>`R`_`g`i`}`�`–`§`µ`×`Ş`ê`aaaaa a'a+a3a:aJaUasaxa�aŒa•a�a¢a¢a±a¾aÌa×aâağaöaüab bb b8b8bIbTbVbbb€b†bŒb’b›b¬bÓbÛbåbób ccc-cBcBcOcTcfclclclclcvdEDTa/|/|C|P|f|R|u|w|�|§|¯|FœfɯR¯RÑRÛRSSS6S;S?SGSPS_SfSoStS‰SšS¹SÁSÃSâSêSùST TTT T&T(T9T>TTT@TcTiTiTqTzT‰T¨T¯T±TĞT×T×T×TîT÷TUUU+U UCUHUYU^UtU`UƒU‰U�U˜U�U U±U¶UÌU¸UÛUáUáUéUòUòUüUüUVDVMVYV]VkV�VvV™V™V«VG ;zââ&â/â2âDâZâ\âeâjâ‹â©â¸âÖâêâã ã/ãMã\ãyãŠã¡ã¥ã¥ã©ã®ã³ã½ãÀãÊãÏãèãëãëãëãëãğãöãä ä,ä5äIäQäZävä�ä�ä–äªäªä¹ä¾ä¾äÌäHPcs‡@‡@¨@•@Ê@·@Ù@è@ğ@û@ı@AAA5A;AIPµÅûûû û/û/û6ûcûyûeû–ûˆû®û¶ûJŒ•´‡ù‡ùºùæùæùùùıù ú/ú4ú4ú;úCúKú`úlú}ú‚ú“ú§ú¬ú®ú®ú®úÊúèúèúûKP�­g=g=�=’= =¦=Á=Ğ=ß=î=ü=> ff"f%f/fP¨!Gdd(d1dDdQd]didud�d˜d˜d§d²d»dÂdËdâdùdşde e+e=e=eFeieieke~e€eše¦e©eÀeQlõŒ°p°pÉpÔpäp-q4qHqOqWq_qhqpqxqzq‚qŠq‘q˜q·qÏqØqØq␍r7r@rbr|r™rÃrÏrñrórúrss$s@sgsƒsªsÆsís t0tLtst�t¶t¶tÅtÒt×t×tætótøtøtÿt
>>Lè7?/?/j/m/p/v/{/’/©/À/ä/00"0<0N0[0q0‚0‡0’0š0š0¤0¤0¯0´0É0Ï0î0␍11$1*1I1h1p1{1{1…1…1—1Õ1í1ÿ1M$ WZWZ‚ZkZŒZ”ZNLx‡ÖÌÖÌèÌıÌÍ Í&Í.Í>ÍIÍZÍ`Í’ÍOTHY0e0eBeDeMeVedeiereuezeˆe’e•eŸeP¨!Gˆcˆc˜c¡c´cÁcÍcÙcåcñcddd"d+d2d;dRdidnd€d�d›d­d­d¶dÙdÙdÛdîdğd uu4uLudufufufumumuzuuuu�u�u±uÆuv v v vv.v<vZvcvlvyv‡v¡v½v½v½vÏvİvùvwww"w%wTwVwmwsw„w�w�wœw�w«w­wºwºwŞwàwçwøwxxxx!x#x1x1xQxQxQxQxqx¥xËxÓx×xßxãxñxÿxy y␍yyy'y5y5yOyZypy„y¤y½yÈyÒyÙyòyşyzzz0z5z7z=zNz_znzuz†z�z‘zŸz¡z¯z±z¿z¿z¿zãzãz{ {{{ {"{0{4{B{F{T{X{X{q{x{}{‹{�{¥{À{à{ó{||||$|.|.|<|E|[|b|‡|Œ|µ|å|ê|ø|ú|}}+}-}/}6}G}P}R}`}b}p}r}€}€} } } } } }¿}¿}¿}Ê}æ} ~$~)~)~)~K~P~P~P~p~u~u~u~”~™~™~ ~¢~¢~ª~¬~¬~³~³~¶~»~Ú~ğ~1EJJertƒŒ¦¨¨­¨ÎĞĞØÓ€€€2€2€2€S€X€X€X€z€€€€Ÿ€¤€¤€¤€Ã€È€È€ã€ñ€ó€� �%�'�'�,�'�M�O�O�W�R�’�’�’�����Ç�Ç�ñ� ‚!‚,‚B‚V‚o‚‡‚Ÿ‚½‚¿‚Ђ킃 ƒ‡R„7éé5éCéYésé�éŸéªéÆéÆéÆéÓéîéğéğéğéıéêêê(ê5êPêPêuêyê�êŸêSæd>İ>İXİaİ�İ�݇İ�ݗݟݧݭݺݺİÔİÙİÙİßİäİäİêİïİïİõİúİúİŞ%Ş+Ş0Ş0Ş9ŞYŞYŞYŞ`ŞbŞbŞiŞkŞkŞqŞqŞxŞzŞzހހއމމŞ�Ş�Ş–Ş–Ş�Ş¤ŞªŞ²Ş²Ş²Ş²Ş¾ŞÆŞÎŞÖŞŞŞæŞîŞôŞ ßß%ß(ß(ß2ß8ß>ß>ßBßJßQßUß]ßeßkßsßz߂ߊß�ߔߟߥ߲߾ßÄßÌßĞß×ßßßçßëßñßùßààààà%à*à@àQàVàYàşàTLœ«؇؇ñ‡ó‡ú‡ˆ ˆ&ˆ>ˆVˆYˆkˆ³ˆUÔ/`.ñ.ñBñWñfñjñxñ�ñ�ñ�ñŸñªñµñÀñÇñ×ñîñò òòò'ò'ò=ò?òIòmòxòzò“ò—ò¥òªòªò±òÀòÈòÛòEóV$·Z·ZâZËZìZôZWP©¹ODODpD]D’DD¡D°D¸DÃDÅDĞDÛDÛDıDEX,Î×Î×××İ×å×î×÷×ü×Y�_�_�€�•�£�°�ã�ğ��"�2�2�?�?�F�Y�W�g�g�r�|�‚�ˆ�‹�™� �¸�¿�Â�×�Ü�ç�ò� ‘&‘7‘=‘C‘J‘a‘P‘q‘w‘}‘…‘¥‘�‘®‘´‘º‘‘‘É‘à‘Ï‘ğ‘ö‘ü‘’$’ ’-’3’9’A’A’A’W’W’W’W’b’l’u’•’¡’²’·’È’Ü’á’á’ì’ô’ÿ’““(“8“M“b““„“„“�“—“¤“¯“¿“Γë“”” ”%”%”0”F”[”g”x”}”�”¢”¢”­”¢”Ŕʔʔٔޔޔí”ò”ò”••••••1•@•E•E•X•g•l•z•l•�•“•¡•“•µ•º•È•º•Ü•á•ï•á•–––%–*–L–Q–_–Q–s–x–x–•–š–¼–Á–Ï–Á–ã–è–è–—
eee0eQlõŒ p p9pDpTp�p¤p¸p¿pÇpÏpØpàpèpêpòpúpqq'q?qHqHq}q§q°qÒqìq r3r?rarcrjrqrqr”r°r×rórs6s]sys s¼sãsÿs&t&t5tBtGtGtVtcththtotztŒt¤t¼tÔtÖtÖtÖtİtİtêtïtïtïtuu!u6uruyuyuyu�u�u¬uÊuÓuÜuéu÷uv-v-v-v?vMviv‡v‡v‡v’v•vÄvÆvİvãvôvıvÿv wwww*w*wNwPwWwhwqwsw�wƒw‘w“w¡w¡wÁwÁwÁwÁwáwx;xCxGxOxSxaxoxqxyx}x�x‰x—x¥x¥x¿xÊxàxôxy-y8yByIybynyuy�y�y y¥y§y­y¾yÏyŞyåyöyÿyzzz z!z/z/z/zSzSzrzyz€zƒz�z’z z¤z²z¶zÄzÈzÈzázèzízûz{{0{P{c{r{t{ƒ{…{”{�{�{¬{µ{Ë{Ò{÷{ü{%|U|Z|h|j|x|�|›|�|Ÿ|¦|·|À|Â|Ğ|Ò|à|â|ğ|ğ|}}}}}/}/}/}:}V}{}”}™}™}™}»}À}À}À}à}å}å}å}~ ~ ~~~~~~~#~#~&~+~J~`~…~¡~µ~º~º~Õ~â~ä~ó~ü~>@@HCƒƒƒ¢¢¢ÃÈÈÈêïï€€3€8€8€S€a€c€r€{€•€—€—€œ€—€½€¿€¿€Ç€Â€���␍�␍�7�7�a�y�‘�œ�²�Æ�ß�÷�‚-‚/‚@‚]‚t‚{‚s†R„7wèwè•è£è¹èÓèáèÿè —,—1—?—1—S—X—X—u—z—œ—¡—¯—¡—×È—È—ã—è—è—˜˜˜#˜(˜(˜C˜H˜H˜c˜h˜h˜ƒ˜ˆ˜ˆ˜£˜¨˜¨˜ØȘȘÙ˜ޘޘï˜ô˜ô˜™ ™ ™%™%™1™J™O™u™|™†™‹™œ™¦™»™Æ™Ë™Ü™ç™ï™ô™ô™ø™ü™š␍ššš*š/š/š/š3šLšUšUš{š€š€šˆšœš¥š¿šÌšךâšíšÿš ›››››*›G›R›\›g›l›w››„›„›�›—› ›«›»›Ó›ë›ÿ›œœœ"œ,œ7œXœdœuœzœ‹œ�œ”œ”œ¤œ¯œ·œ¼œÇœלæœ��-�8�=�H�P�U�`�p��œ�±�Æ�Æ�Æ�Æ�Ë�Ğ�Ğ�Ü�í�í���1�1�;�O�Y�[�g�o�Œ���§�²�Õ�æ�÷�ŸŸ+Ÿ;Ÿ@Ÿ@ŸKŸPŸPŸXŸcŸhŸhŸpŸ{Ÿ€Ÿ€ŸˆŸ©Ÿ’Ÿ�ŸÁŸÆŸÆŸΟïŸØŸÖŸ       8 = = J O O W \ \ n € … … ™ … ± ¶ ¶ ¾ ààÖ Û Û î ó ó ␍¡¡"¡"¡<¡L¡Q¡Q¡k¡{¡€¡€¡š¡ª¡¯¡Æ¡¯¡Ş¡ã¡ã¡î¡ó¡/¢¢ ¢ó¡G¢L¢ˆ¢v¢d¢L¢ ¢¥¢¥¢´¢Ä¢É¢É¢Ø¢è¢í¢í¢ü¢
é&é&é&é3éNéPéPéPé]éxézézéˆé•é°é°éÕéÙéíéÿéSæd®Ü®ÜÈÜÑÜñÜñÜ÷ÜÿÜİİİİ*İ*İDİIİIİOİTİTİZİ_İ_İeİjİj݂ݕݛݠݠݩİÉİÉİÉİĞİÒİÒİÙİÛİÛİáİáİèİêİêİğİğİ÷İùİùİÿİÿİŞŞŞŞŞ"Ş"Ş"Ş"Ş.Ş6Ş>ŞFŞNŞVŞ^ŞdŞ|ދޕޘޘޢިޮޮ޲޺ŞÁŞÅŞÍŞÕŞÛŞãŞêŞòŞúŞşŞßßß"ß.ß4ß<ß@ßGßOßWß[ßaßißpßx߀߄ߊߕߚ߰ßÁ߯ßÉßnàTLœ«H‡H‡a‡c‡j‡€‡�‡–‡®‡Æ‡É‡Û‡#ˆUÔ/`�ğ�ğ²ğÇğÖğÚğèğñğññññ%ñ0ñ7ñGñ^ñuñ{ñ€ñ„ñ—ñ—ñ­ñ¯ñ¹ñİñèñêñòòòòò!ò0ò8òKòµòV$ZZBZ+ZLZTZWP©¹¯C¯CĞC½CòCßCDDD#D%D0D;D;D]DcDX,>×>×G×M×U×^×g×l×Y�¿�¿�à�õ���C�P�b�‚�’�’�Ÿ�Ÿ�¦�¹�·�Ç�Ç�Ò�Ü�â�è�ë�ù��� �"�7�<�G�R�l�†�—���£�ª�Á�°�Ñ�×�İ�å�‘í�‘‘‘"‘"‘)‘@‘/‘P‘V‘\‘d‘„‘l‘�‘“‘™‘¡‘¡‘¡‘·‘·‘·‘·‘‘̑Ցõ‘’’’(’<’A’A’L’T’_’h’t’ˆ’˜’­’Â’ß’ä’ä’ï’÷’““ “.“K“`“u“€“…“…“�“¦“»“Ǔؓݓ”␍””%”*”*”9”>”>”M”R”R”c”h”h”y”~”~”‘” ”¥”¥”¸”ǔ̔ڔ̔î”ó”•ó”••(••<•A•O•A•c•h•h•…•Š•¬•±•¿•±•ӕؕؕõ•ú•–!–/–!–C–H–H–e–j–Œ–‘–Ÿ–‘–³–¸–¸–Õ–Ú–ü–———#—(—(—C—H—H—c—h—h—ƒ—ˆ—ˆ—£—¨—¨—×È—È—ã—è—è—˜˜˜#˜(˜(˜9˜>˜>˜O˜T˜T˜`˜k˜€˜…˜…˜‘˜ª˜¯˜Õ˜ܘæ˜ë˜ü˜™™&™+™<™G™O™T™T™X™\™c™m™w™w™Š™�™�™�™“™¬™µ™µ™Û™à™à™è™ü™š š,š7šBšMš_škštšyšyšyšŠš§š²š¼šÇšÌšךßšäšäšïš÷š› ››3›K›_›d›d›o›‚›Œ›—›¸›Ä›Õ›Ú›ë›ï›ô›ô›œœœœ'œ7œFœcœxœ�œ˜œ�œ¨œ°œµœÀœĞœßœüœ�&�&�&�&�+�0�0�<�M�M�r�t�‘�‘�›�¯�¹�»�Ç�Ï�ì�ı���5�F�W�h�s�‹�›� � �«�°�°�¸�Ã�È�È�Ğ�Û�à�à�è� Ÿò�ğ�!Ÿ&Ÿ&Ÿ.ŸOŸ8Ÿ6ŸgŸlŸ€ŸlŸ˜Ÿ�Ÿ�ŸªŸ¯Ÿ¯Ÿ·Ÿ¼Ÿ¼ŸΟàŸåŸåŸùŸåŸ    # # 6 ; ; N S S m } ‚ ‚ œ ¬ ± ± Ë Û à à ú  ££7£%££O£T£|£j£T£”£™£Á£¯£™£Ù£Ş£Ş£û£å£%¤5¤:¤:¤U¤A¤¤�¤”¤”¤ ¤¥¤¥¤±¤¶¤¶¤ɤÙ¤ޤޤñ¤¥¥¥¥)¥.¥.¥A¥Q¥V¥V¥^¥c¥c¥k¥p¥p¥x¥}¥}¥…¥Š¥Š¥�¥¢¥¢¥µ¥º¥¦ö¥ä¥Ò¥º¥¦¦h¦V¦D¦2¦¦u¦z¦z¦‰¦¤¦©¦©¦º¦Õ¦Ú¦Ú¦ë¦ù¦ş¦ş¦§ § §§§§ §%§%§]§K§9§,§|§—§œ§œ§Ô§§°§£§ó§¨¨H¨6¨+¨¨`¨e¨š¨ˆ¨}¨e¨²¨·¨Ѩ»¨·¨é¨î¨ ©õ¨î¨#©(©(©4©M©]©n©n©“©•©«©±©±©ΩÛ© ª=ª+ª`ªhªhªhªtªyªyªŒª—ª¡ª¦ª±ª»ªÀªÀªÚªߪߪçªìª«ìª«« «3« «B«M«R«R«]«n«s«s«~«‰«�«�«Ÿ«¤«¤«¾«É«ΫÙ«Ϋè«í«¬í«¬¬ ¬¬/¬4¬H¬4¬W¬\¬\¬p¬\¬¬¬¬„¬�¬„¬£¬¨¬¨¬´¬¨¬Ǭ̬̬ج̬ë¬ğ¬ğ¬ü¬ğ¬­­(­­7­C­N­Y­^­r­^­�­�­˜­£­¨­¼­¨­Ó­Ë­Ü­á­á­é­î­î­÷­ü­ü­®
¡¡&¡¡>¡C¡C¡N¡S¡�¡}¡k¡S¡§¡¬¡è¡Ö¡Ä¡¬¡¢¢¢¢$¢)¢)¢8¢H¢M¢M¢\¢j¢o¢—¢…¢o¢¯¢´¢Ü¢Ê¢´¢ô¢ù¢!££ù¢9£>£>£[£E£…£•£š£š£µ£¡£ߣï£ô£ô£¤¤¤¤¤¤)¤9¤>¤>¤Q¤a¤f¤f¤y¤‰¤�¤�¤¡¤±¤¶¤¶¤¾¤ääˤФФؤݤݤå¤ê¤ê¤ı¤¥¥¥¥h¥V¥D¥2¥¥u¥z¥È¥¶¥¤¥’¥z¥Õ¥Ú¥Ú¥é¥¦ ¦ ¦¦5¦:¦:¦K¦Y¦^¦^¦f¦k¦k¦s¦x¦x¦€¦…¦…¦½¦«¦™¦Œ¦ܦ÷¦ü¦ü¦4§"§§§S§n§s§¨§–§‹§s§À§ŧú§è§ݧŧ¨¨1¨¨¨I¨N¨k¨U¨N¨ƒ¨ˆ¨ˆ¨”¨­¨½¨ΨΨó¨õ¨ ©©©.©;©l©�©‹©À©È©È©È©Ô©Ù©Ù©ì©÷©ªªªª ª ª:ª?ª?ªGªLª`ªLªoªzªª“ªª¢ª­ª²ª²ª½ªΪÓªÓªުéªîªîªÿª«««)«.«9«.«H«M«a«M«p«u«€«u«�«”«¨«”«·«¼«¼«Ğ«¼«ß«ß«ß«ä«ğ«ä«¬¬¬¬¬'¬,¬,¬8¬,¬K¬P¬P¬\¬P¬o¬t¬ˆ¬t¬—¬£¬®¬¹¬¾¬Ò¬¾¬á¬í¬ø¬­­­­3­+­<­A­A­I­N­N­W­\­\­e­j­j­s­x­x­ƒ­ˆ­ˆ­“­˜­˜­£­¨­¨­³­¸­¸­íȭȭӭححã­è­ü­è­ ®®!®,®1®1®;®@®@®J®O®O®Y®^®^®h®m®m®u®z®z®‡®Œ®Œ®™®�®�®�®�®�®¦®«®«®³®¸®¸®À®Å®Å®Í®Ò®Ò®Ú®ß®ó®ß®¯¯¯¯ ¯*¯J¯O¯e¯p¯‰¯u¯˜¯£¯®¯³¯³¯º¯ůå¯ê¯° °$°°3°>°I°N°N°U°`°€°…°›°¦°¿°«°ΰÙ°ä°é°é°±ğ°±3±8±N±Y±r±^±•±�±¤±¯±´±´±ϱ»±ޱş±²²$²=²)²`²L²o²z²²²š²†²©²ɲβä²ï²³ô²+³³:³E³J³J³Y³^³^³m³r³r³r³x³}³}³}³‡³‰³‰³“³š³½³¿³¿³ɳɳɳɳɳ˳˳â³é³ô³ô³ÿ³´ ´´"´-´'´H´e´Z´}´}´‹´…´±´¦´É´É´É´Ò´Ù´ì´ñ´ÿ´µµ1µ<µSµsµsµsµ”µ¤µ¹µ˵ÛµÛµ(¶(¶,¶1¶8¶H¶g¶g¶k¶‚¶‰¶��’¶�©¶·¶ä¶í¶ş¶ ·?·K·P·f·~·Š·›· ·±·Ğ·ş·'¸*¸:¸<¸<¸@¸_¸j¸j¸m¸~¸¯¸Ò¸Ò¸Õ¸úºZ, n×n×|ׂ׆×�ט×�×[`EYφφå†ó†ú†ş†␍‡&‡*‡0‡F‡c‡e‡e‡–‡„‡e‡µ‡¿‡\8 ®
§Y§YÈYµY×YâYíYøYZZZ]\’¡¡¡ ¡+¡3¡>¡I¡T¡V¡l¡l¡~¡Š¡“¡–¡Å¡^l½”§î§îÌîÑîŞî ®®®®#®(®(®3®8®8®C®H®H®S®X®X®c®h®h®s®x®x®ƒ®ˆ®œ®ˆ®«®¶®Á®Ì®Ñ®Ñ®Û®à®à®ê®ï®ï®ù®ş®ş®¯␍¯␍¯¯¯¯'¯,¯,¯9¯>¯>¯>¯>¯>¯F¯K¯K¯S¯X¯X¯`¯e¯e¯m¯r¯r¯z¯¯“¯¯¢¯³¯¸¯¸¯¿¯ʯê¯ï¯°°)°°8°C°N°S°S°Z°e°…°а °«°İ°°Ó°ްé°î°î°õ°± ±%±;±F±_±K±n±y±„±‰±‰±¤±�±³±Ó±رî±ù±²ş±5²!²D²O²T²T²o²[²~²�²£²¹²IJݲɲ³ì²³³ ³ ³:³&³I³i³n³„³�³¨³”³˳·³Ú³å³ê³ê³ù³ş³ş³␍´´´´´´´´'´)´)´3´:´]´_´_´i´i´i´i´i´k´k´‚´‰´”´”´Ÿ´¥´¬´·´´Í´Ç´è´µú´µµ+µ%µQµFµiµiµiµrµyµŒµ‘µŸµ²µ²µѵܵóµ4¶D¶Y¶k¶{¶{¶ ¶§¶¶¶ȶȶ̶Ѷضè¶·· ·"·)·.·.·2·=·I·W·„·�·�·¬·ß·ë·ğ·¸¸*¸;¸@¸Q¸p¸�¸ǸʸÚ¸ܸܸà¸ÿ¸
ï ¹
ïï"ï@ïHïuïzï£ïÃïßïåïéï ğ2ğ7ğ`ğ}ğ£ğºğÀğÄğİğåğêğûğñ"ñ(ñ,ñEñMñlñqñ‚ñŠñ©ñ®ñ¶ñ¼ñÀñÄñÖñŞñãñòòòòò%ò=òLòYòyòyò�ò•ò•ò¬ò®ò®òÂòÄòÄòÛòİòİòôòöòöò␍ó␍ó ó$ó$ó3ó3óló…ó…ó˜ó�ó�ó�ó�óÀóÜóøóøóøóôôôô␍ôôôôôôFôHôhôˆôˆôˆôˆôˆô¢ô¥ôºôÁôÃôÌôßôáôíôíôõôõõõ&õ=õGõoõ�õ�õ½õŞõöõö;öJöhö�ö¥ö´öËöçöìöìö ÷%÷%÷8÷8÷D÷V÷[÷[÷s÷’÷¸÷Ç÷å÷ ¹␍¹¹O¹r¹r¹u¹š»Z, ş×ş× ØØØ Ø(Ø.Ø[`EYo‡o‡…‡“‡š‡�‡­‡ƇʇЇæ‡ˆˆˆ6ˆ$ˆˆUˆ_ˆ\8
ø*ø9øgøzø„ø¦ø¨ø¨ø¨ø´ø´ø´øÒøùùùùùùùùùù/ù4ùGù†ù_\ GZGZhZUZwZ‚Z�Z˜Z£Z¯ZµZ]\’ ¡ ¡®¡°¡»¡Ã¡Î¡Ù¡ä¡æ¡ü¡ü¡¢¢#¢&¢U¢^l½”GïGïlïqï~ïªïªïµïÂïàïèïğğCğcğğ…ğ‰ğ¬ğÒğ×ğññCñZñ`ñdñ}ñ…ñŠñ›ñ£ñÂñÈñÌñåñíñ òò"ò*òIòNòVò\ò`òdòvò~òƒò¡ò¦ò³ò¸ò¸òÅòİòìòùòóó0ó5ó5óLóNóNóbódódó{ó}ó}ó”ó–ó–ó­ó­ó¿óÄóÄóÓóÓó ô%ô%ô8ô=ô=ô=ô=ô`ô|ô˜ô˜ô˜ô ô¥ô¥ô¥ô­ô²ô²ôºôºô¼ôæôèôõ(õ(õ(õ(õ(õBõEõZõaõcõlõõ�õ�õ�õ•õ§õ§õ³õÆõİõçõö!ö=ö]ö~ö–öµöÛöêö÷-÷E÷T÷k÷‡÷Œ÷Œ÷À÷Å÷Å÷Ø÷Ø÷ä÷ö÷û÷û÷ø2øXøgø…øªøÊøÙøùù$ùFùHùHùHùTùTùTùrù¢ù¤ù¤ù³ù³ù¸ù¸ù¸ù¸ù¸ùÏùÔùçù&ú_\
÷N÷N O O;OHO_OtOO”O�O£O«O¶OÌOÂOäOêO`à7:7:U:X:_:f:m:q:s:z:�:…:‰:œ:Ä:ß:Ì:÷:ü: ; ;,;4;C;};‚;¯;·;¼;Å;Ñ;Ù;à;<<*<,<N<m<Z<|<‚<‰<‰<�<’<–<§<§<Ê<Ü<a$ÏàÏàŞàùàùàÿàb|k†×ë×ëñëìì<ìLìNìNìNìNìUì]ìxì‘ì“ì“ì“ì›ì¶ì¸ì¸ìÂìÂìÚìc”"§5§5É5Ó5ß5ä5ô5ú56#636A6O6f6n6x6‡6�6œ6¤6§6§6§6©6¸6Â6Ë6Ó6Ö6è6dô¦ß'7'7P7]7`7i7o7†7�7´7¿7õ788 8*8D8V8c8y8‹8¢8§8¹8¾8Á8á89 99969V9^9f9h9ˆ9�9•9š9¥9¥9°9°9¼9¼9Î9:':':7:ed¤¹����#�)�1�?�R�^�x�…�…�ˆ�–�¦�À�Ä�Ì�f(¸şr*r*ˆ*�*¡*Ğ*à*ç*÷*+ —O—O©O¿OÛOèOÿOP P4P!PCPKPVPlPbP„PŠP`à×:×:õ:ø:ÿ:;␍;;;;!;%;);<;d;;l;—;œ;À;À;Ì;Ô;ã;<"<O<W<\<e<q<y<€<¢<¨<Ê<Ì<î<␍=ú<="=)=)=/=2=6=G=G=j=|=a$oáoá~á™á™áŸáb|k†wìwì‘ì½ì½ìÜìììîìîìîìîìõìıìí1í3í3í3í;íVíXíXíbíbízíc”"G6G6i6s66„6”6š6¯6Ã6Ó6á6ï6777'7/7<7D7G7G7G7I7X7b7k7s7v7ˆ7dô¦ßÇ7Ç7ğ7ı78 88&8=8T8_8•8µ8º8¿8Ê8ä8ö899+9B9G9Y9^9a9�9¡9©9±99Ö9ö9ş9::(:0:5:::E:E:P:P:\:\:n:®:Ç:Ç:×:ed¤¹���� �§�³�¹�Á�Ï�â�î�����&�6�P�T�\�f(¸şr*r*ˆ*�*¡*Ğ*à*ç*÷*+
++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¬÷V V p v } … � � › ­ ­ Ä Ë Î Ğ Ü í í ğ ø    " % , 0 8 F X k n ½ h(ÈÎÿ€ÿ€&��5�G�O�i=ÏQÏQòQR RRR$R1R7R@RFRKRjRƒRˆR�R�R’RŸRŸR¤R­RµR¾RÆRÈRĞRØRàRíRóRşRSS S/SPSWSbSkS|S€SˆSˆSœS¬S´S·STj8-7*0*0>0B0G0R0]0`0d0l0kˆZø¿‡¿‡Ù‡ô‡ú‡ˆˆˆ-ˆ2ˆ=ˆ[ˆEˆjˆ}ˆ�ˆ˜ˆ ˆªˆȈÚˆãˆëˆõˆ‰úˆ ‰1‰;‰C‰[‰E‰€‰j‰�‰¡‰«‰³‰³‰¼‰ĉÚ‰ó‰ŠŠŠŠ Š$ŠBŠDŠIŠTŠjŠjŠjŠnŠzЛХНЏŠÙŠãŠíŠïŠïŠ ‹‹(‹+‹D‹H‹c‹g‹†‹Š‹¥‹©‹©‹©‹¯‹½‹Ç‹à‹æ‹ñ‹ı‹ÿ‹Œ␍Œ&Œ1Œ?ŒIŒbŒeŒmŒyŒ{ŒƒŒ†ŒŸŒ¡Œ­Œ¯Œ·Œ½ŒÖŒîŒúŒ��)�9�R�c�c�n�y�‘���²�·�Ì�Ü�õ��� �� �-�4�F�leãnànàˆà‘à±à±à·à¿àÇàÏà×àİàêàêàøàıàıàááááááááá6áIáOáTáTá]á}á}á}á„á†á†á�á�á�á•á•áœá�á�á¤á¤á«á­á­á³á³áºáºáÂáÈáÎáÖáÖáÖáÖáâáêáòáúáâ ++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¤÷æ æ ø   ! % 0 B B ] ` b n   ‹ ’ ™ ™ § ¯ ² ´ · ¼ ¿ à Ë İ ğ ğ ;!h(ÈΟ�Ÿ�Æ�³�Õ�ç�ï�i=oRoR’R§R¬R´R¼RÄRÑR×RàRæRëR
âââ0â?âIâLâLâVâ\âbâbâfânâuâ}â…â‰â�â—â�â¦â®â²â¸âÃâÉâÖâââèâğâôâûâã ãããã$ã,ã4ã8ã>ãIãNãdãuãzã}ã"äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Ò8•8•N•_•p•�•’•£•¶•¾•Ì•ê•õ•û•–––0–A–G–\–w–w–ƒ–‹–“–™–®–¶–º––Ж֖ۖۖ𖗠———"—E—X—d—h—r—‹—‘—“— —¢—´—´—»—×՗՗˜˜'˜+˜5˜9˜E˜I˜U˜Y˜e˜i˜i˜˜’˜˜˜œ˜¦˜ª˜¹˜½˜Ì˜Ğ˜ã˜ç˜ç˜ç˜ç˜ş˜ ™™!™8™H™V™a™w™„™“™›™¨™Ã™Ó™ã™è™è™è™è™õ™š šš'š6šKš\šlšršršrš„šŠš–šœš©šÄšÔšàšæšóš››5›¿œoÔÃô0n0nBnSn^nin‚n”n¬n±nÀnÇnÔnÛnénğnònõnúnünoo6oLodoioxooŒo£oÁoÈoÊoÍoÒoõop pp$hm&& &4&;&U&qxKe¿Q¿QçQÓQöQRıQ R%R,R4R;RFRQRYRaRlRwR�R‚R¥R­RrJ‡·t·tÓtÚtòt S#S(S.S0S2S?S?SDSMSUS^SfShSpSxS€S�S“S�S¥SµSÀSÏSğS÷ST TT T(T(T<TLTTTWT½Tj8-7*0*0>0B0G0R0]0`0d0l0kˆZø_ˆ_ˆyˆ”ˆšˆ¡ˆ¡ˆ¨ˆ͈Òˆ݈ûˆåˆ
uu u u$u/u;uFuTudutu{u�u–u«u«u¿uÇu×uäuóuvv"v0v>vEvKv`vuvuv‰v–v§v·vÀvÑvÑv×våvövwwuws8³½QQƒQˆQ�Q�Q¬QµQºQ¿QÁQt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�ŸOŸOµOÈOÕOÛOŞOæOvÜt¾¾àëöÿ!'-3I8]jmu‡�’µÈÌÒéïÿ $2KYbrt{€ˆ§µÁÛú  &,2Hi}‰ «ºÈ×äô%*8Tf}†Œ—œ¢¹ÄÑØØæõ÷&&.Q\�w`0DÏ…Ï…å…÷…ş…††0†4†:†P†m†o†o† †�†o†¿†ɆxDˆÕÏäÏäáäéäôäúäååå4å4å;å>åCåUåYå€å„å‰å‰å�å“å˜å¤åµå¹åÊåÜåàåâåôåøåææææ1æ4æBæLæSæyæ„æˆæ�æÃæÜæçæëæüæç ç␍çççç0ç4ç6ç6çAçEçYç]ç]ç]çaçƒçy¼Ö‡ç‡ç›ç±ç±ç±ç¶ç¶ç½çÂçÂçÉçÎçÎçÛçàçàçíçôçöçöçè ‰‰/‰8‰@‰J‰h‰z‰ƒ‰‹‰•‰°‰š‰¿‰щÛ‰ã‰û‰å‰ Š
è è è(è(è(è+è-è-è-è1è3è3è7è7è7èSèXèXèqèz°0X[[ ['[2[–[|[q[W[@[œ[®[�[Î[Î[å[Ù[\\(\=\*\L\R\Y\}\l\`\”\–\²\²\¹\ã\ã\ã\ï\{ÈQ¿FüFüdüoüzü ü ü¢ü¯üºüÀüÑüàüïüüüüüıı ı"ı5ı@ıDıVıcıkıvırı�ı›ı›ı›ı¦ıÁı¬ıÉıÜıŞıúıæışşşş.ş.ş5ş;şDşKşNşpş„şwşŒş’ş›ş›ş›ş®ş³ş³ş»ş»şÆşÛşäşäşäşäşÿÿÿ"ÿ"ÿ7ÿ=ÿBÿBÿNÿkÿ‹ÿ�ÿ•ÿ•ÿ¡ÿ¾ÿÍÿÜÿäÿéÿïÿôÿôÿûÿ%BDLavv||‰’’°ÆÑÖãî÷ÿ&&66HN}††ˆ�””¡¬²»»ÎÛíø>GRW^fy�“š§®ÀÕÜâëëô(8FFLS\\o�„„•�¥±ÎÕâäëÿ888EEZew„��¨·¾¾×êìû 55;DDQWiivy„–�¨­µ¼ÇÌáãı!2@RRX_hm‘šš ©©ÈÈÕØáêòı  -09BJUgmxx…ˆ‘šœ¾Ñæì÷ "› |t·ĞR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ı45}`2ïOïOPP&PKP7PZP_PfPnPuP€PˆP“P©P�PÁPÉP~À-¸g¸gÖgægğgğgúgúghh#h&h(h1h>h>hLh`h`h„h‘h‘h¡h®h®hÑhŞhŞhóhi*iLiUibibi…i�i�iÂiõiûiûiûi␍jt�Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34␍4␍4!4!4$4'4<4B4D4D4L4€¸ºäĞ�Ğ�è�ê�ö�ú�� Š/ŠAŠKŠSŠSŠ\ŠdŠzŠ“Š¥Š´Š¸Š¸Š¿ŠÄŠâŠäŠéŠôŠ
�$�$�$�*�.�6�A�U�a�c�c�l�n�n�w�y�y�‚�„�„�����–�œ�Ÿ�©�º�À�Ì�Ì�4��œ&ï(ï(␍))6)=)Y)N)q)‘)}) )±)¶)×)Ã)ï) **/*$*G*g*S*v*‡*�*‰*µ*Â*Â*Ú*Ú*ä*‚¨¥Ç3Ç3Ó3ã3î34H4Y4j4|4ƒ4Š4�4¥4¥4´4Â4Ñ4é4ø455!5$5)5@5P5`5d5k5¡5ƒx± (±(±>±E±L±k±z±‰±˜±§±¶±À±À±Å±Ì±ß±î±ó±²(²(²>²P²T²b²i²n²n²u²‡²�²’² ²²²²²²²Ä²Ï²á²ì²ù²ş²³³#³/³4³A³F³V³[³k³m³}³³�³‘³¢³«³«³­³½³Ä³Ô³Ô³ï³´´%´5´5´5´8´K´„\åø8�8�S�Z�_�m�‚�‰�“�¡�¤�¦�°�Â�Â�É�ÿ�…0ÎÖ��öêÀ¾ ‹
†`/ττå„÷„ş„……0…4…:…P…m…o…o… …�…o…¿…É…‡L[j?2?2M2_2e2m22…2�2 2¦2©2å2ˆ(–œ*3*383G3K3N3T3‰\k~ç2ç2õ23␍33'3-363H3N3W3i3o3r3À3Š, ××$×+×3×8×>׋„$··Õçîõ ++0RgTv…‡©©©¸ÔÊìöŒ`B?i?i\idiki�i�i i®i»iÁiÌiãiòiıij jj j+jBjYjljƒj�j›j­j¯j½jÏjÏjØjéjïjÿjÿjkk<k<kAkAkJkVkckok„k›kªkµkÇkÓkêkl#l#l,l1l1l1l1lAlJlRlWlelslƒlˆlˆl–l–l›l›l¥l°lÂlÈlÔlälïlùlılm m"m2m9mWm`m`momm�m–mœm¨m°m»mÂmÆmÙmßmìm÷mım␍nnnJnhntn|n‡n�n™n©n¹n¹nÉnÎnÎnØnãnõnûn oo#o-o1o:oSoVofomororo†o†o‹o�oŸo¨oºoÀoÂoÂoĞoÖoßoğoùoppppp2p2pApDpXpvp�pªp¼pÇpÙpİpâpépûp q&q-q1q7q?qJqYr�8øO(O(i(~(”(µ(¢(Í(å(å(ï(�`j~X X x  ‡ ’ œ § ¯ ¾ È Ë ğ ò ¡¡¡�_×Ú×ÚùÚÛÛ Û#Û5Û?ÛEÛWÛ\ÛhÛpÛsÛuÛÛ‰Û‰Û�Û•Û�Û¥Û¯Û¸ÛÀÛÃÛÌÛçÛøÛÿÛÜÜÜÜ$Ü$Ü+Ü.Ü3ÜBÜHÜPÜPÜ^ÜaÜfÜu܀܈܈ܓܧܮܵÜÌÜ�83=ö×ö×ÿ×ÿ×␍ØØ Ø"Ø'Ø‘8>H.Ø.Ø7Ø7ØEØIØPØSØXØ’DDQG1G1a1t1~1…1‘1©1²1¶1È1Î1í1“Ä{¨©¬³¸¾ÀÅËËİäú␍"$+1;;OQX^hhh‘˜§©¿ÒÒä”0RZï1ï1ø12/25252=2•„a~¶ò¶òÈòİòçòğòòòùò óóó ó ó)ó:ó=ó=óaólónó‡ó�ó’ó¡ó´óô–  ‹
>0>0G0d0i0—hú—f—f­f¸fÃfÑfÜfåföfÿfgg"g9g9gKg\gigrgƒg‰g×g˜„=Z—J—JÇJÍJÖJâJêJñJõJşJşJK ‹‹‹;‹E‹O‹X‹y‹ƒ‹�‹�‹�‹¬‹º‹È‹Ë‹ä‹è‹ŒŒ&Œ*ŒEŒIŒIŒIŒOŒ]ŒgŒ€Œ†Œ‘Œ�ŒŸŒ§Œ­ŒÆŒÑŒߌéŒ��␍���#�&�?�A�M�O�W�]�v���š�¯�´�É�Ù�ò�����1�=�R�W�l�|�•�¦�¦�¬�·�¿�Í�Ô�æ�leãşàşàá!áAáAáGáOáWá_ágámázázáˆá�á�á“á˜á˜á�á£á£á©á®á®áÆáÙáßáäáäáíá␍â␍â␍âââââ â â%â%â,â.â.â4â4â;â=â=âCâCâJâJâRâXâ^âfâfâfâfârâzâ‚âŠâ’âšâ¢â¨âÀâÏâÙâÜâÜâæâìâòâòâöâşâã␍ããã ã'ã.ã6ã>ãBãHãSãYãfãrãxã€ã„ã‹ã“ã›ãŸã¥ã­ã´ã¼ãÄãÈãÎãÙãŞãôãä
K"KLKQKuK}KK—K¯KÓKòKL™lò §§¿ÑØß%:'\Ikk}„¦¦®š y}ˆ‹ˆ‹‘‹�‹¢‹›(AVèVèxè€è†è�è�è�è¡è¡è¡è©è±èÃèÒèÃèçèéèéèééééé0é5é5é5éJéLéYé[éhéjéwéé‡é�é¢é¯é±éÂéÏéÏéÏéØéêéıéê ê␍êêê/ê/ê/ê:êDê\êaêaêaêoêuêzê‚ê�êŸêªê¯ê¯ê¶êºêÈêÌêÕêÜêúêëëë3ë8ë8ë8ë8ë@ëKëYëYëyëyëyë€ë�ë�ë°ëÃëÅëÅëÅëØëØëßëæëëëñëì␍ì)ìSìYìYìmìrì–ì�ì©ìÇìÚìåìììğìğìğìğìûìíí5í@í]ígígíuí“íÃíÖíçíşíîîîîî)î;îFîKîKîKî]î‡î�î�î�î˜î¢î®î¹î»î»î»îÀîÌîÌîïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 NN¦N“NµNÑNÇNéNñN�Lè÷?'?'Y'n'„'¥'’'½'Â'í'(û'&(>(>(H(Ÿğ[“LL<LELQLYLdLƒLƒL�L�LªL’L¹L¹LÇLÑLØLøLúLMMM7M7M^McM‚M›M¸M»MÃMÊMêMìMN␍N␍N)N)NFNFNmNN T]n)/5FTbtx~Œ�™¡0 ä␍ä²äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Òȕȕޕ–"–3–F–N–\–z–…–‹–˜–­–­–À–Ñ–×–ì–————#—)—>—F—J—R—`—f—k—k—€—•—œ—¤—¬—²—Õ—è—ô—ø—˜˜!˜#˜0˜2˜D˜D˜K˜S˜e˜e˜–˜¤˜·˜»˜Å˜É˜Õ˜Ù˜å˜é˜õ˜ù˜ù˜™"™(™,™6™:™I™M™\™`™s™w™w™w™w™�™œ™©™±™È™Ø™æ™ñ™šš#š+š8šSšcšsšxšxšxšxš…š”šœš¢š·šÆšÛšìšüš›››››&›,›9›T›d›p›v›ƒ›•›£›Å›O�oÔÃôÀnÀnÒnãnînùno$o<oAoPoWodokoyo€o‚o…oŠoŒo’o¬oÆoÜoôoùoppp3pQpXpZp]pbp…p£p¯pp$hm&& &4&;&U&qxKe_R_R‡RsR–R±R�RÀRÅRÌRÔRÛRæRñRùRS SS-S"SESMSrJ‡WuWusuzu’uªu´u¿u¿uÄuÏuÛuæuôuvvv!v6vKvKv_vgvwv„v“v v±vÂvĞvŞvåvëvwww)w6wGwWw`wqwqwww…w–w£w³wxs8³½ R R#R(R-R>RLRURZR_RaRt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�?P?PUPhPuP{P~P†PvÜtNNp{†�Ÿ±·½ÃÙÈíúı"EX\by�•¡¯´ÂÛéò 7EQkŠ‘›ª°¼ÂØù␍0;JXgt„’©µºÈäö␍',2ITahhv…‡•¤¾áì w`0Do†o†…†—†�†¢†±†ІÔ†Ú†ğ†␍‡‡‡@‡.‡‡_‡i‡xDˆÕoåoå�å‰å”åšå å¤å¨åÔåÔåÛåŞåãåõåùå æ$æ)æ)æ0æ3æ8æDæUæYæjæ|æ€æ‚æ”æ˜æ´æ¸æ½æ½æÑæÔæâæìæóæç$ç(ç-çcç|ç‡ç‹çœç§ç«ç­ç¸ç¼ç¼çĞçÔçÖçÖçáçåçùçıçıçıçè#èy¼Ö'è'è;èQèQèQèVèVè]èbèbèiènènè{è€è€è�è”è–è–è£èªè¬è¬èÈèÈèÈèËèÍèÍèÍèÑèÓèÓè×è×è×èóèøèøèéz°0X§[§[¿[Ç[Ò[6\\\÷[à[<\N\>\n\n\…\y\·\¼\È\İ\Ê\ì\ò\ù\] ]]4]6]R]R]Y]ƒ]ƒ]ƒ]�]{ÈQ¿ÖüÖüôüÿü
R¯¯ŞÓÿë"1=BN^er}‰”œ¡­²ÆÍÑÜáì 3:>>C\az�¡¦±¹¹¹»Ôéôş  .#Ff¢àZ� e eºeÈeÍeÚeèeñe ff?fHfXfsf~f�f�f’fœf¨f¬f¹fÅf×fßf÷fûfûfûfûfgg8g8g?gBgJgVg_gµg£d'<ç*ç*++.+5+Q+F+i+‰+u+˜+©+¿+«+×+ä+ä+ü+ü+,¤ü%`÷÷!,Y?3h‰�‹Ó¹­âÿÿÿ..czn¬±Ä¸ìÚû4!OCwe†£££µÒÒóú$¥(fåfåtå—å�å¢å¢å¨å¦(!'�×�×§×µ×»×½×Â×§D]j : :::A:J:V:k:s:y::�:�:‘:¨„½Ú¸ª¸ªëª÷ªûª« ««««"«&«.«3«7«H«Y«[«_«p«�«�«£«««¶«¶«¶«È«©€ÀœÀœÙœàœçœîœôœ���$�;�>�@�[�e�o�v���“�›�›�±�±�Ã�ª Ê ¯V¯VÕVòVúVWWW"W=WSWlWrWzW}W’W—W©WËWÑWÙWŞWäWçWıWXX*X2XGXLX[X}XƒXˆXˆXˆX•X¦X±X¾XÊXİXêX÷XY#Y-Y/YFYVY[YfYmY�Y�Y�Y¢Y«<ÑÜ ı0ı0ı2ı?ıJıPıaıpııŒıŒı’ı—ıœı²ıÅıĞıÔıæıóıûışşş+ş+ş+ş6şQş<şYşlşnşŠşvş’ş ş ş¢ş¾ş¾şÅşËşÔşÛşŞşÿÿÿÿ"ÿ+ÿ+ÿ+ÿ>ÿCÿCÿKÿKÿVÿkÿtÿtÿtÿtÿ�ÿ§ÿ­ÿ²ÿ²ÿÇÿÍÿÒÿÒÿŞÿûÿ %%1N]lty„„‹’µÒÔÜñ  ""@Vafs~‡�ŸÆÆØŞ␍ $$1<BKK^k}ˆ–Ÿ¤Î×âçîö #*7>Pelr{{„�¥ª¸ÈÖÖÜãììÿ%-5A^ert{����ÈÈÈÕÕêõ -8GNNgz|‹ ¢°ÅÅËÔÔáçùù &-8=ELW\qs�¢¢¢¤«±ÂĞââèïøı!**099XXehqz‚�Ÿ¥°°½ÀÉÒÚå÷ı!*,Nav|‡™Ÿ§§§§²+ |t·ĞR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ı45}`2�P�P·P£PÆPëP×PúPÿPQQQ Q(Q3QIQ>QaQiQ~À-HhHhfhvh€h€hŠhŠh”h¦h³h¶h¸hÁhÎhÎhÜhğhğhi!i!i1i>i>iaininiƒi¥iºiÜiåiòiòij j jRj…j‹j‹j‹j�jt�Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34␍4␍4!4!4$4'4<4B4D4D4L4€¸ºä`�`�x�z�†�Š�—�š�´�´�´�º�¾�Æ�Ñ�å�ñ�ó�ó�ü�ş�ş�� � ������&�,�/�9�J�P�\�\�Ä��œ&�)�)­)¾)Ö)İ)ù)î)*1**@*Q*V*w*c*�*¬*³*Ï*Ä*ç*+ó*+'+=+)+U+b+b+z+z+„+‚¼ª444/4L4W4�4±4³4Í4á4ò4555#575>5>5M5[5j5‚5‘5�5¡5º5½5Â5Ù5é5ù5ı56B6ƒx± ¸±¸±Î±Õ±Ü±û±
²²(²7²F²P²P²U²\²o²~²ƒ²�²¸²¸²Î²à²ä²ò²ù²ş²ş²³³ ³"³0³B³B³B³T³_³q³|³‰³�³�³£³³³¿³Ä³Ñ³Ö³æ³ë³û³ı³␍´´ ´!´2´;´;´=´M´T´d´d´´‘´£´µ´Å´Å´Å´È´Û´„\åøÈ�È�ã�ê�ï�ı���#�1�4�6�@�R�R�Y���…0ÎÖ..F†zPNš¢†`/o…o………—…�…¨…·…Ğ…Ô…Ú…ğ…␍†††@†.††_†i†‡L[j‡2‡2•2§2­2µ2Ç2Í2Ö2è2î2ñ2-3ˆ(–œ*3*383G3K3N3T3‰\k~/3/3=3O3U3]3o3u3~3�3–3Ÿ3±3·3º34Š, ¦×¦×´×»×Ã×È×Î׋„$WWu‡�•¤©ËËĞòô%'IIIXtjŒ–Œ`Bßißiüij j0j>j@jNj[jajljƒj’j�j¡j¬j¸j¿jËjâjùj k#k-k;kMkOk]kokokxk‰k�kŸkŸk·k·kÜkÜkákákêkökll$l;lJlUlglslŠl¢lÃlÃlÌlÑlÑlÑlÑlálêlòl÷lmm#m(m(m6m6m;m;mEmPmbmhmtm„m�m™m�m¦m¿mÂmÒmÙm÷mnnn n/n6n<nHnPn[nbnfnynnŒn—n�n­n½n½nênooo'o.o9oIoYoYoiononoxoƒo•o›o©o¶oÃoÍoÑoÚoóoöop␍ppp&p&p+p/p?pHpZp`pbpbpppvpp�p™p¥pµpµpµpºpÒpÒpápäpøpq!qJq\qgqyq}q‚q‰q›q«qÆqÍqÑq×qßqêqùr�8øï(ï( ))4)U)B)m)…)…)�)�`j~è è ¡¡¡"¡,¡7¡?¡N¡X¡[¡€¡‚¡’¡’¡ ¡�_wÛwÛ™Û Û§Û¬ÛÃÛÕÛßÛåÛ÷ÛüÛÜÜÜÜ Ü)Ü)Ü-Ü5Ü=ÜEÜOÜXÜ`ÜcÜl܇ܘܟܢܧܼܶÜÄÜÄÜËÜÎÜÓÜâÜèÜğÜğÜşÜİİİ İ(İ(İ3İGİNİUİlİ�83=†Ø†Ø�Ø�Ø�ءدزطؑ8>H¾Ø¾ØÇØÇØÕØÙØàØãØèØ’DDQ�1�1©1¼1Æ1Í1Ù1ñ1ú1ş12252“Ä{¨  ILSX^`ekk}„š­¼ÂÄËÑÛÛïñøş 18GI_rr„”0RZ7272@2f2w2}2}2…2•„a~FóFóXómówó€ó‚ó‰ó™ó¤ó¦ó°ó°ó¹óÊóÍóÍóñóüóşóôô"ô1ôDô—ô– 
†0†0�0¬0±0—hú7g7gMgXgcgqg|g…g–gŸg°g¶gÂgÙgÙgëgüg hh#h)hwh˜„=Z7K7KgKmKvK‚KŠK‘K•K�K�K£KªKÂKìKñKLL L7LOLsL’L¤L™lò GG_qx¡£ÅÚÇüé  $FFNš y}ŒŒ!Œ-Œ2Œ›(Aæèæèéééé é é1é1é1é9éAéSébéSéwéyéyé“é•é•é é¦éÀéÅéÅéÅéÚéÜéééëéøéúéêêêê2ê?êAêRê_ê_ê_êhêzê�ê“ê›ê�êªêªê¿ê¿ê¿êÊêÔêìêñêñêñêÿêë
ëëë/ë:ë?ë?ëFëJëXë\ëeëlëŠë—ë�ë§ëÃëÈëÈëÈëÈëĞëÛëéëéë ì ì ììì-ì@ìSìUìUìUìhìhìoìvì{ì�ì“ì�ì¹ìãìéìéìıìí&í-í9íWíjíuí|í€í€í€í€í‹í•í£íÅíĞííí÷í÷íî#îSîfîwî�î¡î¦î¦î¦î®î¹îËîÖîÛîÛîÛîíîïïïï(ï2ï>ïIïKïKïKïPï\ï\ï¦ïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 O OFO3OUOqOgO‰O‘O�Lè÷ß'ß'ù'($(E(2(](b(�(®(›(Æ(Ş(Ş(è(Ÿğ[“§L§LÜLåLñLùLM#M#M-M/MJM2MYMYMgMqMxM˜MšM´M»M»M×M×MşMN"N;NXN[NcNjNŠNŒN¦N­N­NÉNÉNæNæN␍O O T]n––¬¹¿ÅÖäò )¡0
ROO~sŸ‹Â®Ñİâîş)4<AMRfmq|�Œ¥®º¿ÓÚŞŞãü/AFQYYY[t‰”�©«¾¾ÎÃæ ¢àZ�0f0fJfXf]fjfxf�fœfªfÏfØfèfggg g"g,g8g<gIgUgggog‡g‹g‹g‹g‹g�g®gÈgÈgÏgÒgÚgægïgEh£d'<‡+‡+¥+½+Î+Õ+ñ+æ+ ,),,8,I,_,K,w,„,„,œ,œ,¦,¤ü%`——¯ÁÌùßÓ)>+sYM‚ŸŸŸ±ÎÎLQdXŒz›¼ÔÁïã&CCCUrr“š¼¼Ä¥(öåöåæ'æ-æ2æ2æ8æ¦(!'.Ø.Ø7ØEØKØMØRاD]j : :::A:J:V:k:s:y::�:�:‘:¨„½ÚH«H«{«‡«‹«“«›«Ÿ«ª«®«²«¶«¾«Ã«Ç«Ø«é«ë«ï«¬¬ ¬3¬;¬F¬F¬F¬X¬©€P�P�i�p�w�~�„�”�Ÿ�©�´�Ë�Î�Ğ�ë�õ�ÿ���#�+�+�A�A�S�ª Ê OWOWuW’WšW¥WµW¾WÂWİWóW XXXX2X7XIXkXqXyX~X„X‡X�X¦X¨XÊXÒXçXìXûXY#Y(Y(Y(Y5YFYQY^YjY}YŠY—Y®YÃYÍYÏYæYöYûYZ␍Z0Z0Z0ZBZ«<ÑÜ
5 5
555$5,545<5C5S5S5X5¬´*££3£@£E£I£R£a£m£x£ƒ£‹£–£�£¡£­£µ£Ï£õ£ï£¤¤C¤/¤S¤S¤k¤v¤’¤™¤½¤Ä¤ö¤ö¤ö¤ö¤W¥­˜‹-ş¸ş¸¹"¹*¹5¹L¹V¹V¹m¹w¹’¹¨¹¹º¹Ú¹î¹º º␍º&º0ºAºNºNºUº\ºaºfºkºrºyº“ºšºªº®º®º¸ºÎºÒºÒºãºöº » »»»!»)»4»;»C»N»U»U»`»~»‚»š»‹»µ»µ»»»Â»Ñ»Û»é»ğ»ô»ö»¼¼¼¼"¼H¼V¼V¼Z¼o¼w¼‡¼’¼§¼¬¼º¼É¼Ó¼á¼ì¼ğ¼õ¼ı¼½½½!½#½2½4½C½J½N½b½l½z½�½…½•½ ½¥½Ã½Í½Û½â½æ½ğ½ş½¾ ¾¾'¾/¾:¾>¾>¾>¾I¾T¾d¾p¾†¾�¾™¾¨¾°¾»¾À¾È¾Ó¾ß¾ã¾î¾ó¾¿¿¿¿¿¿7¿T¿`¿h¿x¿ˆ¿¦¿ª¿Ù¿Î¿¿¿é¿é¿ó¿ú¿ ÀÀ"À0À7À;À=ÀLÀVÀdÀkÀoÀoÀqÀƒÀƒÀ•À•À•À›À§À¹ÀÁÀÙÀÁÁÁ5Á<ÁCÁNÁdÁiÁpÁƒÁ�Á›Á¢Á¦Á¨Á»ÁÅÁÓÁÚÁŞÁŞÁŞÁŞÁìÁ÷ÁÂÂÂ)Â-Â-Â2Â:Â>ÂMÂOÂ^Â`ÂoÂq€‡‹Ÿ©·¾ÂÂÂÒÂİÂâÂà 555$5,545<5C5S5S5X5¬´* £ £Ã£Ğ£Õ£Ù£â£ñ£ı£¤¤¤&¤.¤1¤=¤E¤_¤…¤¤•¤�¤Ó¤¿¤ã¤ã¤û¤¥"¥)¥M¥T¥†¥†¥†¥†¥ç¥­˜‹-�¹�¹«¹²¹º¹Å¹Ü¹æ¹æ¹ı¹º"º8ºFºJºjº~º’º™º�ººÀºÑºŞºŞºåºìºñºöºûº» »#»*»:»>»>»H»^»b»b»s»†»™»™»Ÿ»ª»±»¹»Ä»Ë»Ó»Ş»å»å»ğ»¼¼*¼¼E¼E¼K¼R¼a¼k¼y¼€¼„¼†¼˜¼˜¼˜¼ª¼²¼Ø¼æ¼æ¼ê¼ÿ¼½½"½7½<½J½Y½c½q½|½€½…½�½‘½ ½¢½±½³½Â½Ä½Ó½Ú½Ş½ò½ü½
Ãà Ã#Ã-Ã;ÃBÃFÃPÃdÃlÃwÃ{Ã{Ã{ÆÃ�ÛõÃÅÃĞÃåÃêÃõÃÄÄ'Ä/Ä:ÄIÄQÄ\ÄaÄiÄtĀĄÄ�ĔĨİĻĻĻĻÄÏÄßÄôÄÅÅÅ*Å?ÅLÅPÅ^ÅsŃŚųÅÌÅÎÅÙÅáÅáÅêÅÆÆ/ÆHÆVÆaÆmÆuÆwƂƊƊƊƧƵÆÃÆÚÆñÆÇ␍Ç-Ç4Ç4ÇDÇXÇrÇrÇvnjǛÇÇÁÇØÇàÇàÇÈÈÈ3È<ÈSÈmÈ|ȉȩȷÈÍÈéÈùÈÉÉ)É)É5ÉPÉhÉqÉqÉqÉ}É�ɦɯɯɶɿÉÅÉÑÉ0Ê®<ùD��%�1�<�F�L�V�\�f�t�~���š� �ª�°�º�Á�Í�Ó�Ü�‘‘‘‘%‘7‘A‘S‘]‘r‘r‘u‘‘”‘™‘©‘´‘¹‘͑ϑà‘’’␍’"’0’9’A’O’`’p’�’�’�’›’›’£’±’ø’¯$› _P_PsP{P†PŒP°l£:§F§FÀFØFèFGG2GMGMGwGGƒG†GŠG�G™GœG£G©G°G¶GºG¿GÉGÚGáGèGêGîG÷GHHHHH/H:H@HGHPHiHzHƒHŒH”HŸHªH¶HÇHØHäHòHôHûHII II IBIPIZIdImI†I—I I©I±IºIÀIÄIÉIÍIÚIáIïIùIJJ!J:JKJTJ]JeJnJtJxJ}JƒJ�J—J¶JÄJÊJÏJ×JßJçJôJüJKK0K9KTKhK{K‚K‹K”K›K¤K­K¶KÏK¿KßKãK=L±  €ˆ€ˆ�ˆ°ˆ¶ˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(�(�(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´„÷Â÷ ÃÃÃÃ$Ã0Ã0ÃFÃ\ÃnÃuÃyÉéûÃÁÃĞÃÙÃİÃãÃìÃÄÄ#ÄAÄSÄYÄhÄzĆĈĔĜĠĦįįįÄÁÄÌÄÒÄèÄïÄ÷Ä␍ÅÅÅÅ"ÅIÅRÅZÅlÅtÅ}ňÅ�ŤūųźÅÏÅàÅàÅçÅçÅçÅõÅÆ)Æ2Æ:ÆLÆTÆ]Æ]ÆhÆoÆ}Æ�Æ�ƥƭƳÆÂÆËÆÏÆׯàÆàÆîÆöÆüÆÇ"Ç*Ç0Ç6Ç6Ç6Ç=ÇDÇSÇ[ÇaÇgÇgÇiÇsǵx¿Ù¿ÙÍÙâÙéÙôÙ ¾¾¾%¾0¾5¾S¾]¾k¾r¾v¾€¾�¾•¾™¾£¾·¾¿¾Ê¾Î¾Î¾Î¾Ù¾ä¾ô¾¿¿¿)¿8¿@¿K¿P¿X¿c¿o¿s¿~¿ƒ¿—¿Ÿ¿ª¿ª¿ª¿ª¿Ç¿ä¿ğ¿ø¿ÀÀ6À:ÀiÀ^ÀOÀyÀyÀƒÀŠÀ™À¨À²ÀÀÀÇÀËÀÍÀÜÀæÀôÀûÀÿÀÿÀÁÁÁ%Á%Á%Á+Á7ÁIÁQÁiÁ•Á£Á§ÁÅÁÌÁÓÁŞÁôÁùÁÂÂÂ+Â2Â6Â8ÂKÂUÂcÂjÂnÂnÂnÂnÂ|‡– ®¹½½ÂÂÂÊÂÎÂİÂßÂîÂğÂÿÂÃÃÃÃ/Ã9ÃGÃNÃRÃbÃmÃrÃ�ÚèïóýÃËÃÒÃÖÃàÃôÃüÃÄ Ä Ä ÄÄÄ+ÄEÄUÄ`ÄuÄząĕġķĿÄÊÄÙÄáÄìÄñÄùÄÅÅÅ Å$Å8Å@ÅKÅKÅKÅKÅ_ÅońőŕũźÅÏÅÜÅàÅîÅÆÆ*ÆCÆ\Æ^ÆiÆqÆqÆzÆ—Æ¨Æ¿ÆØÆæÆñÆıÆÇÇÇÇÇÇ7ÇEÇSÇjÇ�Ç�Ç�ǽÇÄÇÄÇÔÇèÇÈÈÈÈ+ÈFÈQÈhÈpÈpȕȕȨÈÃÈÌÈãÈıÈ ÉÉ9ÉGÉ]ÉyɉɡɡɹɹÉÅÉàÉøÉÊÊÊ␍ÊÊ6Ê?Ê?ÊFÊOÊUÊaÊÀÊ®<ùD����µ�Á�Ì�Ö�Ü�æ�ì�ö�‘‘ ‘*‘0‘:‘@‘J‘Q‘]‘c‘l‘—‘¦‘©‘«‘µ‘Ǒёã‘í‘’’’’$’)’9’D’I’]’_’p’“’“’�’²’À’É’Ñ’ß’ğ’““““+“+“3“A“ˆ“¯$› ÿPÿPQQ&Q,Q°l£:GGGG`GxGˆG¨GºGÒGíGíGH H#H&H*H/H9H<HCHIHPHVHZH_HiHzH�HˆHŠH�H—H¡H¤H¯H»H¾HÏHÚHàHçHğH II#I,I4I?IJIVIgIxI„I’I”I›I¢I§I«I¸I¿IâIğIúIJ␍J&J7J@JIJQJZJ`JdJiJmJzJ�J�J™J®J¸JÁJÚJëJôJıJKKKKK#K-K7KVKdKjKoKwKK‡K”KœK»K®KĞKÙKôKLL"L+L4L;LDLMLVLoL_LLƒLİL±  ‰‰‰@‰F‰²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(�(�(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´„—×éøøûÃÄÃĞÃĞÃæÃüÃÄÄÄ)ÄIÄ[ÄaÄpÄyÄ}ăČĢĦÄÃÄáÄóÄùÄÅÅ&Å(Å4Å<Å@ÅFÅOÅOÅOÅaÅlÅrňÅ�Å—Å­Å´Å´Å´ÅÂÅéÅòÅúÅ ÆÆÆ(Æ.ÆDÆKÆSÆZÆoƀƀƇƇƇƕƼÆÉÆÒÆÚÆìÆôÆıÆıÆÇÇÇ!Ç-ÇEÇMÇSÇbÇkÇoÇwǀǀÇ�ǖǜǹÇÂÇÊÇĞÇÖÇÖÇÖÇİÇäÇóÇûÇÈÈÈ Èȵx_Ú_ÚmÚ‚Ú‰Ú”ÚªÚÔÚğÚ÷ÚÛÛ$Û-Û5Û=Û?ÛEÛKÛZÛbÛhÛjÛpÛ¼Ô—c—cºcÂcÒcÚcşcdd!d)d/d8dDdLdLdTd„dÃd�dædëdódeee3e9eBeIeQeYeeemeueˆe�e•eŸe¿eÆeÈeÒeáeff
Ú4ÚPÚWÚoÚuÚ„Ú�Ú•Ú�ÚŸÚ¥Ú«ÚºÚÂÚÈÚÊÚÐÚ¼Ô÷b÷bc"c2c:c^cucyc�c‰c�c˜c¤c¬c¬c´cäc#dþcFdKdSdcdzded“d™d¢d©d±d¹dÅdÍdÕdèdðdõdÿd e&e(e2eAeaehejeŠe‘e‘e‘eše¡eºeÀeÈeÈeÍeÑeÝeæeïeûefAf,fZf]fyf†fšf°f´fÓfáfgífg!g8g#gQgTgTgpg}g‘g§g¯g³g¾gÆgÖgígØgh hh!h8h#hQhWhWhahahlh�h¥h¥h¥h¥h®hºhÐhéhühiiii)i-i-i-i4i9iLiSi_ififi€i‚i‡iši¡i­i´i´iÁiËiËiÐióióij·àt¨?A?ATArA_A§A�A�A¶AÅAÍAØAÚAåAðAðAõA*B/BdB|BiBžB‹B²B­BÎBÝBåBðBòBýBCC C.C0CQCQCXC]CC�C£C£C£C«C¸\æù§e§e½eÏeÕeàeîeúeff#f)f4fDfOf]fjf–f¹$â燇¥¸¿ÆÍÑÓÚáååí   $ / = N R W k o x | � ‡ ¤ ¤ ² É Î ç ø ü ü ü     0 4 9 M U ^ b d k } � ¤ ¦ ¿ Ò Ö Ö Ö ê î ÷ û !!#!#!1!H!M!f!w!{!�!�!�!’!¡!£!Å!Å!ç!ò!ø!" "$"/"C"G"P"T"V"\"u"u"ƒ"š"œ"µ"Æ"Ê"Ê"Ñ"ä"è"ú"ÿ"##$#(#-#4#J#Z#q#v#�#¢#¦#¸#¸#¸#¸#Ê#½#ß#î#ð#$$#$9$J$J$J$Q$d$}$}$}$Œ$Œ$Ÿ$¶$Á$Ò$×$Ý$ç$é$õ$õ$ü$%%%)%>%J%L%W%c%s%z%�%‹%“%—%›%�%¢%ª%®%À%Â%Ç%Ï%Ó%Õ%Õ%Þ%ë%&!&;&I&U&\&\&o&s&s&s&z&&™&§&³&º&º&Ô&Ö&Û&õ&''''#'-'-'?'º¤ ¹ž(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:K<K[K`KK„KŠKŠK£K¦KÍKÚKòKLLL L>L,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•NžN¡N¡N¯NÀNÂNêNO OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPßPøPQ#Q<Q>QDQFQIQTQVQVQ\QbQbQjQsQyQ…Q…QŒQ�Q®Q¹QÁQÉQÎQÎQÕQÙQÞQðQõQÿQ R RR=R=RFRTReRqRxR†R•R«R±R¶R¶R»RÑRÝRåRõRÿRSSS S(S(S2S@SLScSyS�S–S˜S¯S´S´SÔSÔSæSìSõSûSTTTT.T4T6TATSTiTiT}T�TŸT¤T°T¶T¹TÐTÒTÕTåTïTòTòTUU*U/U;UAUDU[U]U`UpUtU|UŠU�U”U”UšU¢U§U§U­U­U»UÁUÇUÑUÛUéUþUVV V VVVV!V&V&V,V4V9V9V>VIVNVSV^VcV‰V‹V�V•VšVŸV¤V©V®V®V³V¸VÔVÞVòVW WWW"W(W.W8WBWPWeWhWjWtWƒWˆWˆWˆW�W•WžWžW£W£W©W±W¶W¶W»WÆWËWÐWÕWäWäWõWûWûW XXX X)X7XLXOXQX[XjXoXoXoXwX|X…XŠXŠX�X˜X�X�X¢X­X²X·X¼XËXËXÜXâXâXðXöXüXYYY3Y6Y8YBYQYVYVYVY^YcYlYqYqYwYY„Y„Y‘Y—Y—Y¥Y«Y±Y»YÅYÓYèYëYíY÷YZ Z Z ZZZ!Z&Z&Z,Z4Z9Z9ZFZLZLZZZ`ZfZpZzZˆZ�Z Z¢Z¬Z»ZÀZÀZÀZÈZÍZÖZÛZÛZåZíZòZòZòZøZ[[[![!['[1[7[<[<[E[S[\[j[o[o[x[†[’[£[°[·[¿[É[×[×[Ü[Ü[ç[ç[ç[ë[ð[ð[÷[û[\\\\\(\0\5\;\;\C\L\Z\e\j\p\x\}\}\}\}\}\}\}\}\}\}\–\œ\¥\«\³\¸\½\Æ\Ñ\Ú\â\ç\ç\ç\í\õ\ú\ú\þ\]] ]]&]/]5]5]>]T]T]Z]c]y]y]‚]„]Š]“]©]©]²]Line truncated f*f1f1f1f:fAfZf`fhfhfmfqf}f†f�f›f¾fáfÌfúfıfg&g:gPgTgsg�g¢g�g»gÁgØgÃgñgôgôghh1hGhOhSh^hfhvh�hxh¦h©h±hÁhØhÃhñh÷h÷hii i=iEiEiEiEiNiZipi‰iœi£i¯i¶i¶iÉiÍiÍiÍiÔiÙiìióiÿijj j"j'j:jAjMjTjTjajkjkjpj“j“j¥j·àt¨ßAßAôABÿAGB-B!BVBeBmBxBzB…B�B�B•BÊBÏBCC C>C+CRCMCnC}C…C�C’C�C¨C¨C­CÎCĞCñCñCøCıC D!DCDCDCDKD¸\æùGfGf]fofuf€f�fšf±f±fÃfÉfÔfäfïfıf
77$787G7d7q7ƒ7¥7Í7Û7÷7 8!888C8d8‚8‘8¬8·8Ò8ë8ë89/9I9d9v9…9”9”9Ÿ9²9Ã9Ö9æ9ó9ÿ9:+:+:3:3:3:D:Q:X:w:€:‘:•:�:¨:À:Ø:á:ñ:ù:ş:";2;B;M;a;f;n;”;–;¡;Ô;î;î;<<<,<5<=<O<q<y<�<Œ<�<�<¶<Î<æ<ş<='=0=9=K=Y=]=a=à ¸ˆ¸ˆÁˆàˆåˆÄ\ˆ[–͖ͰͷÍÄÍÏÍÔÍÚÍìÍòÍ g6g¹$âç' ' E X _ f m q s z � … … � ¦ ° ° Ä Ï İ î ò ÷     ! ' D D R i n ‡ ˜ œ œ œ ¡ ¬ ½ Ğ Ô Ù í õ ş !! !!-!D!F!_!r!v!v!v!Š!�!—!›! !¦!Ã!Ã!Ñ!è!í!"""-"-"-"2"A"C"e"e"‡"’"˜"®"¿"Ä"Ï"ã"ç"ğ"ô"ö"ü"####:#<#U#f#j#j#q#„#ˆ#š#Ÿ#³#»#Ä#È#Í#Ô#ê#ú#$$/$B$F$X$X$X$X$j$]$$�$�$²$½$Ã$Ù$ê$ê$ê$ñ$%%%%,%,%?%V%a%r%w%}%‡%‰%•%•%œ%§%¼%¾%É%Ş%ê%ì%÷%&&&!&+&3&7&;&=&B&J&N&`&b&g&o&s&u&u&~&‹&¡&Á&Û&é&õ&ü&ü&''''' '9'G'S'Z'Z't'v'{'•'£'¯'¶'¶'Ã'Í'Í'ß'ºÜ ¹¬(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:K<K[K`KK„KŠKŠK£K¦KÍKÚKòKLLL L>L,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•N�N¡N¡N¯NÀNÂNêNO␍OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPåPşP Q)QBQDQJQLQPQ[Q]Q]QcQiQiQqQzQ€QŒQŒQ“Q–QµQÀQÈQĞQÕQÕQÜQàQåQ÷QüQRRRRDRDRMR[RlRxRR�RœR²R¸R½R½RÂRØRäRìRüRSSS$S&S/S2S2S<SJSVSmSƒSšS S¢S¹S¾SÈSŞSôSôST TT T)T7T<T<TSTYTdTvT|T“T©T«T±T·T¼T¼TÎTäTúTúTUU0U5UAUGUJUaUcUfUvU€UƒUƒU’U©U»UÀUÌUÒUÕUìUîUñUVV␍VV V%V%V+V3V8V8V>V>VLVRVXVbVlVzV�V’V”V�V�V V¨V­V²V·V·V½VÅVÊVÊVÏVÚVßVäVïVôVWW!W&W+W0W5W:W?W?WDWIWeWoWƒW—W�W¥W¥W³W¹W¿WÉWÓWáWöWùWûWXXXXX!X&X/X/X4X4X:XBXGXGXLXWX\XaXfXuXuX†XŒXŒXšX X¦X°XºXÈXİXàXâXìXûXYYYY␍YYYY!Y)Y.Y.Y3Y>YCYHYMY\Y\YmYsYsY�Y‡Y�Y—Y¡Y¯YÄYÇYÉYÓYâYçYçYçYïYôYıYZZZZZZ"Z(Z(Z6Z<ZBZLZVZdZyZ|Z~ZˆZ—ZœZœZœZ¤Z©Z²Z·Z·Z½ZÅZÊZÊZ×ZİZİZëZñZ÷Z[ [[.[1[3[=[L[Q[Q[Q[Y[^[g[l[l[v[~[ƒ[ƒ[ƒ[‰[“[™[­[²[²[¸[Â[È[Í[Í[Ö[ä[í[û[\\ \\#\4\A\H\P\Z\h\h\m\m\x\x\x\|\�\�\ˆ\Œ\‘\™\Ÿ\¡\ª\¹\Á\Æ\Ì\Ì\Ô\İ\ë\ö\û\] ]]]]]]]]]]]']-]6]<]D]I]N]W]b]k]s]x]x]x]~]†]‹]‹]�]”]”]�]«]·]À]Æ]Æ]Ï]å]å]ë]ô]
ÎÎ.ÎDÎOÎUÎwÎw·ΜÎ�ΡέενÎÅÎÓÎÙÎâÎîÎîÎğÎÏÏ␍Ï␍Ï$Ï$ÏBÏBÏUÏbÏgÏgÏ~χϖϬϷÏÅÏĞÏàÏíÏÿÏĞĞĞ(Ğ*Ğ*Ğ2Ğ7Ğ7Ğ?ĞDĞDĞLĞQĞQĞYĞ^Ğ^ĞdĞiĞiĞpĞuĞuĞ|Ğ�Ğ�ЌББМССЬббммĞ×ĞŞĞäĞçĞòĞõĞ ÑÑ%Ñ,Ñ/ÑAÑCÑIÑ]ÑjÑyÑyÑyÑyуÑ�ѲÑÄÑÕÑŞÑïÑõÑúÑÒÒ(Ò7Ò=ÒNÒYÒcÒsÒ‚ÒˆÒ“Ò™Ò®Ò´ÒÅÒĞÒÖÒæÒæÒöÒ ÓÓÓ-Ó4Ó:ÓKÓVÓ[ÓxÓ�Ó›Ó«Ó·ÓÉÓÔÓãÓåÓ÷ÓÿÓÔ ÔÔÔ'Ô-Ô7Ô=ÔHÔNÔPÔ]ÔjÔtÔ�Ô›Ô›Ô¡Ô¨ÔìÖÅD#°ø¬ø¬­9­A­A­O­b­|­­ˆ­¤­¤­¤­¬­®­®­¶­¸­¸­À­Â­Â­Ê­Ê­Ó­Ù­Ş­Ş­ç­ö­ú­ÿ­® ^
® ^^^^$^:^:^C^C^C^L^Q^Q^Y^^^^^{^‰^•^š^ ^ª^²^·^·^·^Ë^Ô^Ú^ì^ö^ö^ş^ş^___!_+_4_6_6_6_<_@_B_B_B_B_G_M_S_W_Îb»Ì€¯§j§jÉjÔjêjkk*k?kJk`kLkokwkwk†k†k�kšk°kÅkÔkßkòkøkøkøkıklll6l8l=lLlWldlnlnl|l¼”+Lè¥è¥¦¦¦¦¦¦ ¦$¦)¦K¦8¦[¦c¦k¦n¦p¦€¦‰¦’¦˜¦›¦¬¦Ê¦Û¦æ¦§½à.¢WCWCuC€C‘C”C˜C¡C¨C¶CÅCÛCìCıCD!D0D?DPD_D_DmDqDuDzD~D‹D’D D´D½DÃDÑDêDìDğDúDúDÿDÿDÿDEEEE$E:E:E:E?E?EWEcEnEsEsEvE{E{EšE¦E³EµEµE¹E»E»EÚEæEòEôEôE÷EùEùEFFF F FFF F;F;F;F;F;F;F;F;F;F;F;F;F=FNF`FoF~F~F‚F‚FŠF£F§F¬FGG¾,~×~׌דכנצ׿l3JoQoQ…QŸQ‹Q®QÓQ¿QâQçQîQîQôQ÷QûQRR&R<R1RTR^RÀPQaâ$â$ğ$ş$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+>æ>æRæ`æfæ‰æ�æ•æºæÀæÆæÌæÌæÔæÂô#œ�7�7—7¦7ª7·7Ä7Ø7ç788#8E8m8{8—8©8Á8Ø8ã89"919L9W9r9‹9‹9¦9Ï9é9::%:4:4:?:R:c:v:†:“:Ÿ:®:Ë:Ë:Ó:Ó:Ó:ä:ñ:ø:; ;1;5;=;H;`;x;�;‘;™;�;Â;Ò;â;í;<<<4<6<A<t<�<�<¦<µ<½<Ì<Õ<İ<ï<==!=,=.=>=V=n=†=�=°=Ç=Ğ=Ù=ë=ù=ı=>à H‰H‰Q‰p‰u‰Ä\ˆ[&Î&Î@ÎGÎTÎ_ÎdÎjÎ|΂ΚΠξÎÔÎßÎåÎÏÏÏ,Ï.Ï1Ï=ÏEÏMÏUÏcÏiÏrÏ~Ï~πϒϘÏ�Ï�Ï´Ï´ÏÒÏÒÏåÏòÏ÷Ï÷ÏĞĞ&Ğ<ĞGĞUĞ`ĞpĞ}Ğ�ЕПЫиккĞÂĞÇĞÇĞÏĞÔĞÔĞÜĞáĞáĞéĞîĞîĞôĞùĞùĞÑÑÑ ÑÑÑÑ!Ñ!Ñ,Ñ1Ñ1Ñ<ÑAÑAÑLÑLÑgÑnÑtÑwтхљѦѵѼѿÑÑÑÓÑÙÑíÑúÑ Ò Ò Ò ÒÒ-ÒBÒTÒeÒnÒÒ…ÒŠÒ•Ò§Ò¸ÒÇÒÍÒŞÒéÒóÒÓÓÓ#Ó)Ó>ÓDÓUÓ`ÓfÓvÓvÓ†Ó™Ó¥Ó­Ó½ÓÄÓÊÓÛÓæÓëÓÔÔ+Ô;ÔGÔYÔdÔsÔuÔ‡Ô�Ô”Ô›ÔŸÔ­Ô·Ô½ÔÇÔÍÔØÔŞÔàÔíÔúÔÕÕ+Õ+Õ1Õ8Õ|×ÅD#°ˆ­ˆ­§­É­Ñ­Ñ­ß­ò­ ®®®4®4®4®<®>®>®F®H®H®P®R®R®Z®Z®c®i®n®n®w®†®Š®�®•®š®š®š®š®¢®«®±®¶®¶®»®È®á®¯¯¯8¯8¯8¯@¯B¯B¯B¯J¯L¯L¯L¯T¯V¯V¯V¯^¯`¯`¯k¯k¯q¯v¯v¯v¯v¯}¯ˆ¯š¯¨¯¶¯À¯À¯À¯Ğ¯Ğ¯×¯Û¯á¯ù¯°°'°P°S°\°c°w°°ˆ°“°“°�°¤°©°©°©°°°¶°Ë°Ó°Ù°ä°û°±±$±)±)±0±;±;±@±R±X±X±X±X±´±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ğ0Ğ0Ô0Ù0ì0ï0ô0ô0ş011111É8(2VØVØ_Ø_ØmØqØxØ{Ø€ØÊ¨Y�]�]§]¯]º]Í]Á]ÿ]c^I^>^$^␍^i^~^n^�^£^À^Å^Ú^Ç^é^ï^ï^ö^ _K_._b_€_€_€_Œ_ËlQhÇ-Ç-á-
® .ì-.9.U.K.m.….r.”.­.Í.ß.ø.ø.ÿ.!/!/+/Ì4�¦7î7îKîPîVîZî^î}î…îÍxÏéï�ï�‚‚)‚3‚:‚P‚U‚Z‚^‚`‚f‚l‚‚‚o‚‘‚ª‚²‚Ä‚ç‚İ‚ö‚ƒΔ"X¬X¬f¬x¬|¬„¬Œ¬—¬¢¬ª¬µ¬À¬Å¬Û¬â¬é¬ô¬ÿ¬­ ­­­%­0­;­D­L­L­P­‡­Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6İ6î6õ6ü6ü6 77к<EE7EBEgEIE�E·E¼E¼E¿EÉEáEğEòEúEF=FOF\FwF‡FŒF¦F°F²F·FÎFõFGG/GKGAGeGkGkGtG”G G£G¥GÀGªGÏGÏGáGáGïGùG$HH>H>HCHFH\HhH}H¡H«H±HÁHéHØHøHúH I I4I*IIIOI^I†IuI•I—I©I³IÇIÑIÚIñIûIıIJJJ:J@J@J@JIJiJ‘J€J J¥J·J¿JêJàJÿJÿJÿJ%K%K7KÑÄ8¥Ÿ2Ÿ2Ö2İ2å2î2ù2333 3#3,3:3D3I3q3v3ƒ3¯3´3Á3á3æ3õ3!4)4.4C4o4w4|4|4�4¢4µ4¹4Û4ë4ğ4ğ45555505H5M5P5S5S5€5…5…5’5–5±5Ì5Ú5å56666%6'6'6'646K6M6M6Z6q6q6�6†6©6Ì6Ô6Ù6õ67#717;7=7=7=7Y7a7c7c7‹7Á7Ò¤8]ŸêŸê¹êåêåêëëëë(ë:ëTë\ëcëhëƒë‹ë‹ë‹ë�ë�ë�ë�ë©ë©ë©ë©ëÀëÂëÂëÂëÂëİëèëìÓĞꃃƒ)ƒ.ƒ.ƒ:ƒ?ƒDƒOƒTƒTƒTƒ‰ƒvƒ˜ƒ¿ƒ¿ƒ؃ñƒ
® „#„(„(„A„Z„s„Œ„‘„‘„ª„ÄÜ„õ„÷„÷„…)…B…[…[…[…m…Ô0”œ×í×íåíëíïíî/î/î5îÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ı& '('*':':'?'A'H'z'×ĞŸÏ×s×sëst
®®®!®&®&®+®8®Q®p®s®‰®¨®¨®¨®°®²®²®²®º®¼®¼®¼®Ä®Æ®Æ®Æ®Î®Ğ®Ğ®Û®Û®á®æ®æ®æ®æ®í®ø® tös5tgtMt@t’t—t¢t°t¿tÎtÖtótLu?u4u uRu]u‰u�u–uµu½uâu×uÃuõuvúu1vvHvOv{v{v{v{vƒvØLix////M/_/f/ˆ/ˆ/š/§/·/­/Ï/Ù/Ù$qvGOGO[OcOnOtOÚÈg•j1j1�1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Ş2*3Û ¸ˆ¸ˆÆˆİˆãˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ğ9ş9: ::İ<ùç�ç�ğ�û����&�D�O�_�Ş 5whwh�h¡h§h³h¾hÌhØhïhúh
¯¯&¯0¯0¯0¯@¯@¯G¯K¯Q¯i¯w¯Š¯—¯À¯Ã¯Ì¯Ó¯ç¯ï¯ø¯°°°°°°° °&°;°C°I°T°k°‚°�°”°™°™° °«°«°°°Â°È°È°È°È°$±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ğ0Ğ0Ô0Ù0ì0ï0ô0ô0ş011111É8(2Æ×Æ×Ï×Ï×İ×á×è×ë×ğ×ʨYï\ï\]]]-]!]_]Ã]©]�]„]m]É]Ş]Î]ş]^ ^%^:^'^I^O^O^V^€^«^�^Â^à^à^à^ì^ËlQh'-'-A-j-L-y-™-µ-«-Í-å-Ò-ô-␍.-.?.X.X._.�.�.‹.Ì4�¦—í—í«í°í¶íºí¾íİíåíÍxÏéO�O�z�g�‰�“�š�°�µ�º�¾�À�Æ�Ì�â�Ï�ñ� ii"i(i.iAiGiPiVihiniyi�i�iœiÙiß,29111&1?1S1V1\1à4x‰x‰†‰�‰™‰ ‰§‰±‰±‰·‰áÄMzçşçşÿÿÿ(ÿ-ÿ?ÿAÿEÿIÿLÿ_ÿxÿ�ÿ§ÿ²ÿ¹ÿÒÿøÿıÿ<AHa‡‰¢ÈÈÈàú â ˆÇxx5x8x>xRxZxkxxx~xƒxƒx�x™xŸx¯x½x¿xŞxòxùxyyy#y6yAyEyVyVyVy[y[ygyvy‰y�y”y¨y®y¶yÈyÎyĞyßyìyòyøyıyz zzz#z%z*z2z4z9zEzGzLzTzVz[zczezjzrztzyz�z�z�z‘z‘z‘z¨z®z´z¿zÄzİzãzîzöz{{
‚‚$‚G‚=‚V‚b‚Δ"ȫȫ֫è«ì«ô«ü«¬¬¬%¬0¬5¬K¬R¬Y¬d¬o¬q¬|¬‡¬‰¬•¬ ¬«¬´¬¼¬¼¬À¬÷¬Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6İ6î6õ6ü6ü6 77к<gDgD—D¢DÇD©DáDEEE E)EAEPEREZE|E�E¯E¼E×EçEìEFFFF.FUFgFtF�F«F¡FÅFËFËFÔFôFGGG G {#{.{9{?{L{Q{V{V{k{s{}{…{�{®{¹{Ä{Ğ{Ê{Ù{â{ç{ì{||||#|/|3|8|=|H|S|^|`|f|s|x|}|–|¡|¬|¬|²|¿|Á|Æ|Ï|è|ó|ş|}}}}}}+}-}-}@}B}B}U}W}W}j}l}l}}�}�}“}“}™}�}�}µ}É}¾}Ö}Ş}å}ë}ó}~~~!~!~#~;~>~@~O~a~q~}~”~®~³~Ç~×~ê~ï~ï~ø~ )19=KQVV\p€……‹‘–––œ«¾ËÏÔÔØİİâíù€)€5€5€;€H€J€W€c€r€…€…€’€�€�€�€�€¢€§€¸€Ê€Õ€İ€å€ç€ù€ş€ ��!�.�.�E�U�U�i�u�w�€�Œ�£�£�©��¸�Ê�Ê�Õ�Õ�Õ�Õ�Õ�Q„ã ŒĞwWwW•W£WºW¿WäWêWïWõWX
G/G/GAGAGOGYG„GzG�G�G£G¦G¼GÈGİGH HH!HIH8HXHZHlH€H”HŠH©H¯H¾HæHÕHõH÷H II'I1I:IQI[I]IqI{I{IšI I I I©IÉIñIàIJJJ JJJ@J_J_J_J…J…J—JÑÄ8¥ÿ1ÿ162=2E2N2Y2`2x2}2€2ƒ2Œ2š2¤2©2Ñ2Ö2ã233!3A3F3U3�3‰3�3£3Ï3×3Ü3Ü3ï3444;4K4P4P4|4|4|4|4|4�4¨4­4°4³4³4à4å4å4ò4ö45,5:5E5a5a5a5n5…5‡5‡5‡5”5«5­5­5º5Ñ5Ñ5á5æ5 6,64696U6u6ƒ6‘6›6�6�6�6¹6Á6Ã6Ã6ë6!7Ò¤8]ÿéÿéêEêEêdêtêyêyêˆêšê´ê¼êÃêÈêãêëêëêëêíêíêíêíê ë ë ë ë ë"ë"ë"ë"ë=ëHë}ëÓĞêg‚g‚}‚‰‚�‚�‚š‚Ÿ‚¤‚¯‚´‚´‚´‚é‚Ö‚ø‚ ƒ ƒ8ƒQƒjƒƒƒˆƒˆƒ¡ƒºƒÓƒìƒñƒñƒ XXX*X<X<XZXeXxXX™X¶XÂXİXõXYY)Y1Y>YGYLY\YjYŠY�Y—Y°YÂYÒYØYãYìYòY8Z"ZZHZƒZmZ^Z“Z–Z»ZJ[ä<%0 D DÁDÇDĞDâDûDEE)Eålt>!>!`!k!n!v!y!y!‰!”!”!—!�!¥!«!±!·!¾!Ä!Õ!Õ!×!à!ì!ò!"""&"."3"3":"C"T"Z"c"n"""ˆ"�"—"�"¥"­"³"µ"Ã"Ú"İ"ì"ù"#### ##'#8#Y#j#x#�#ˆ#”#¤#¯#¯#¯#Ã#×#ç#ê#¥$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í&&Q[ny‹™Ÿ°·¿Õİğ !1AJPU\bhny„‡�¨°Êßìï÷û␍#+Fcgpw‰‘˜œ¥§¹ĞŞäèê÷÷÷ù(è 
„#„<„U„W„W„p„‰„¢„»„»„»„Í„Ô0”œ7í7íEíKíOíní�í�í•íÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ı& '('*':':'?'A'H'z'×ĞŸÏ7s7sKsusjsVs•sÇs­s sòs÷stt t.t6tSt¬tŸt”t€t²t½tétîtötuuBu7u#uUunuZu‘u}u¨u¯uÛuÛuÛuÛuãuØLix�.�.­.¿.Æ.è.è.ú.//␍///9/Ù$qv§N§N»NÃNÎNÔNÚÈg•j1j1�1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Ş2*3Û (ˆ(ˆ6ˆMˆSˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ğ9ş9: ::İ<ùG�G�P�[�f�q�|�†�¤�¯�¿�Ş 5×g×gïghhhh,h8hOhZhjh|h‚hˆh�h¡h§h°h¶hÈhÎhÙháhïhüh9iß,29¿0¿0Í0Ş0÷0 111à4èˆèˆöˆ‰ ‰‰‰!‰!‰'‰áÄMzGşGşsşvş{şˆş�şŸş¡ş¥ş©ş¬ş¿şØşşşÿÿÿ2ÿXÿ]ÿvÿœÿ¡ÿ¨ÿÁÿçÿéÿ(((@Zi{â ˆÇwwww•w˜w�w²wºwËwØwŞwãwãwğwùwÿwxx x>xRxYxexuxuxƒx–x¡x¥x¶x¶x¶x»x»xÇxÖxéxïxôxyyy(y.y0y?yLyRyXy]ycyiypy|yƒy…yŠy’y”y™y¥y§y¬y´y¶y»yÃyÅyÊyÒyÔyÙyáyáyáyñyñyñyzzz z$z=zCzNzVz`zdzjzƒz�z™zŸz¬z±z¶z¶zËzÓzİzåzíz{{${0{*{9{B{G{L{a{h{q{}{ƒ{�{“{˜{�{¨{³{¾{À{Æ{Ó{Ø{İ{ö{| | || |!|&|/|H|S|^|d|q|q|u|z|z|‹|�|�| |¢|¢|µ|·|·|Ê|Ì|Ì|ß|á|á|ó|ó|ù|ş|ş|})}}6}>}E}K}S}f}q}h}�}�}ƒ}›}�} }¯}Á}Ñ}İ}ô}~~'~7~J~O~O~X~l~~~‰~‘~™~�~«~±~¶~¶~¼~Ğ~à~å~å~ë~ñ~ö~ö~ö~ü~ +/448==BMYs‰••›¨ª·ÃÒååòşşşş€€€*€5€=€E€G€Y€^€l€{€�€�€�€¥€µ€µ€É€Õ€×€à€ì€�� ���*�*�5�5�5�5�5�±ƒã ŒĞ×V×VõVWW WDWJWOWUWcWjWyW~WŠWœWœWºWÅWØWßWùWX"X=XUXqXzX‰X‘X�X§X¬X¼XÊXêXïX÷XY"Y2Y8YCYLYRY˜Y‚YsY¨YãYÍY¾YóYöYZªZä<%0 D DÁDÇDĞDâDûDEE)Eå„ |¾ ¾ à ë ò ú ı ı ␍!!!!"!)!/!5!;!B!H!Y!Y![!d!p!v!›!Ÿ!¢!²!º!¿!¿!Æ!Ï!à!æ!ï!ú! " """#"*"1"9"?"A"O"f"i"x"…"’"’"’"’"˜"ª"³"Ä"å"ö"## #'#.#.#7#>#J#Z#e#e#e#y#�#�# #[$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í––ÁËŞéû  '/EM`u…�‘¡±ºÀÅÌÒØŞéô÷ş :O\_gk}Œ“›Ó×àçù )@NTXZgggi€††˜è  èˆèˆñˆ‰
XˆXˆaˆuˆzˆé¤¢Çggƒ‰› ¦©­­ĞÕ€î€*€€9€O€;€^€f€k€q€t€x€z€“€€¢€¢€¢€½€ì€ø€ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËåwdwd•d§d­d¹dĞdĞdâdèdódeeee$e/e=eJeVedesese£eìd§¼çíçíëíşíşíî î+î+îBîBîYîYîpîpî‡î‡î�î î î¤îíÌÂñ÷÷ +AAS^rv{�‡™¥º¼Õäèèèû",7EL[]v��¢îP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®- > >9>D>H>Q>X>_>u>†>—>©>»>Ê>Ù>ê>ù>ù>??␍??!?*?1?5?U?U?U?U?U?a?e?h?p?~?†?“?›?£?´?¿?Ä?Ä?Ñ?×?æ?ı?ÿ? ‰é¤¢Ç€€#€)€;€@€F€I€M€M€p€u€¢€�€±€Ê€€Ù€ï€Û€ş€� �����3� �B�B�B�]�Œ�˜�ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËåee5eGeMeYepepe‚eˆe“e£e¯e¸e¾eÄeÏeİeêeöefffCfìd§¼‡î‡î‹î�î�î¸î¿îËîËîâîâîùîùîïï'ï'ï>ï@ï@ïDïíÌÂñ——¹ÀËááóş !'9EZ\u„ˆˆˆ›°°¼ÂÌ×åìûı00BîP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®-¿>¿>Ù>ä>è>ñ>ø>ÿ>?&?7?I?[?j?y?Š?™?™? ?¤?­?º?Á?Ê?Ñ?Õ?õ?õ?õ?õ?õ?@@@@@&@3@;@C@T@_@d@d@q@w@†@�@Ÿ@ª@·@Â@Å@Ë@Ç@ß@ö@ø@AAAAA!A!A3A:APAPAPAUAUAmA{A†A‹A‹A�A“A“A²AÀAÍAÏAÏAÓAÕAÕAôABBBBBBB"B$B$B'B'B'B'B'B0B6B:BFBfBsB�BˆBPCğ(rxè‹è‹ö‹ı‹␍ŒŒŒñ(ntZ&Z&c&m&~&‰&‰&§&òTP�ô�ô¼ôÂôÅôÎôØôğôõ õõõõõ0õ@õMõSõWõ]õ_õbõfõfõ‰õ�õ“õ“õšõÁõÖõéõüõö ööö"ö%ö,ö2ö6ö<öMöSöXö]öjölö~ö€ö‡ö”ö–ö¨ö¨ö¨ö¨ö¨öÌö×öãöúöúö÷÷8÷\÷v÷{÷’÷—÷¥÷¼÷Á÷Ç÷Ø÷í÷ó÷øø$ø+ø7øOø[ø[ø[øaødøgø€ø†øšø ø¥ø°ø°øµøÂøÏøÏøÕøãøúøùùù␍ùùùù"ù/ù<ù<ùBùPùgùmùpùsùzùzù‹ù’ùŸù¬ù¬ù³ù½ùÄùÊùÑùÜùğùğù
@@"@%@+@'@?@V@X@f@h@s@y@y@�@�@“@š@°@°@°@µ@µ@Í@Û@æ@ë@ë@î@ó@ó@A A-A/A/A3A5A5ATAbAnApApAsAuAuA‚A„A„A‡A‡A‡A‡A‡A�A–AšA¦AÆAÓAáAèA°Bğ(rxX‹X‹f‹m‹}‹€‹†‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTPôô,ô2ô5ô>ôHô`ôpôyôô‚ô†ôˆô ô°ô½ôÃôÇôÍôÏôÒôÖôÖôùôıôõõ úúúú%ú5ú9úBúZú_úfúˆú“ú™ú¡úºúÎúÎúéúéúûûû ûAûTûxûzû„û¦û¦û¦û¿ûËûÜûûûÿûÔüóÀ€¬�_�_§_«_°_¿_Ê_Ö_÷_Ø_` ` `0`a`D`7`„`‰`²`·`Ã`ä`Å`ó`ø`aa;aQaQawawaƒaô V0V0e0~0„0õ4‘š‡P‡PŸPÂPÏPÕPÛPŞPşPö8 ê.ê.ø.ÿ.
õ1õFõYõlõrõyõ„õ�õ’õ•õœõ¢õ¦õ¬õ½õÃõÈõÍõÚõÜõîõğõ÷õööööööö<öGöSöjöjöö‹ö¨öÌöæöëö÷÷÷,÷1÷7÷H÷]÷c÷s÷€÷”÷›÷§÷¿÷Ë÷Ë÷Ë÷Ñ÷Ô÷×÷ğ÷ö÷ /// /%/%/+/÷ :>_1_1i1q1v1øĞS‡v‡v¥vµvÀvÖvóvw&wTwZw`whwjwrw‡wŠw•w¡w·wÔwãwx5x;xAxIxNxVxkxnxyx…xŠx�x–x�x¦x®x¾xÖxäxyyy%y5y7y[y‰y�y”y”y¥y°y»yØyğyüyzzzz*zAzCz`zxz„zŒzšzšzŸz²z¿zÉzàzùz{${1{S{j{ƒ{‘{“{ª{À{À{É{Õ{ë{||"|5|9|9|9|@|E|X|c|}||„|—|¢|¯|¹|¹|Ë|ù€k˜:˜:®:º:º:Ğ:Û:İ:ı:ı:ı:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ğll�l¥l±lÇlÜlêlõlm
øøø ø ø%ø2ø?ø?øEøSøjøpøsøvø}ø†ø�ø�ø’øŸø¬ø¬ø²øÀø×øİøàøãøêøêøûøùùùù#ù-ù4ù:ùAùLù`ù`ùzùù†ù�ù•ù¥ù©ù²ùÊùÏùÖùøùú úú*ú>ú>úYúYúsú�úˆú�ú±úÄúèúêúôúûûû/û;ûLûkûoûDüóÀ€¬ï^ï^_ __ _*_6_W_8_f_k_k_�_Á_¤_—_ä_é_``#`D`%`S`X`q`x`›`±`±`×`×`ã`ô 00060<0õ4‘šçOçOÿO"P/P5P;P>P^Pö8 ê.ê.ø.ÿ. m
/// /%/%/+/÷ :>11!1)1.1øĞSçuçuvv v6vSvbv†v´vºvÀvÈvÊvÒvçvêvõvww4wCwgw•w›w¡w©w®w¶wËwÎwÙwåwêwğwöwşwxxx6xDxrxxx}x…x•x—x»xéxïxôxôxyyy8yPy\ydyryrywyŠy¡y£yÀyØyäyìyúyúyÿyz z)z@zYzrz„z‘z³zÊzãzñzóz m
{ { {){5{K{d{w{‚{•{™{™{™{ {¥{¸{Ã{İ{ß{ä{÷{||||+|ù€k˜:˜:®:º:º:Ğ:Û:İ:ı:ı:ı:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ğßkßkıkll'l<lJlUldljljljloltl‚l�l¦l¨l­l»lÆlÓlÚlèlü\=P,,!,F,(,U,q,g,‰,�,‹,­,Æ,Ø,ñ,ñ,ø,--$-ı8fp'N'N?NNNbNqNwN}N€N Nş0�—PŒPŒdŒpŒ~Œ�Œ™ŒœŒ¤Œÿ0S[�Ø�آتطØÁØÔØP>NЉЉ܉ğ‰ó‰ŠŠŠŠ'Š/Š2Š8ŠT¡²�P�P©P¼P¿PÉPÖPëPíPÿP QQQ#Q&QzQ<˜£¨Œ¨Œ¼ŒÃŒÏŒÛŒëŒğŒóŒ÷ŒÿŒ 26FæFæTæ`æH!/—Z—Z«Z·ZÍZ¹ZÜZŞZåZğZüZ[D>‹ T TATLTQTYTsTzT|T|T˜T�T T«T²T²T¶TÅTÎTÖTßTçTîTõTùTUUUUU2U6ULU_UeUyU~U‹U‹UŸUªU±UºUÈUÑUôUúUşUVV VVV&V/VCVJV\VpVwVwV~V�VÓVläû&ä&ä:äPä^äiämätäxä�ä�ä’ä’ä¦ä¨ä±ä·ä·ä·ä·ä¿ä´EnÀEÀEæE÷EüEF␍F␍FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I÷r÷rss s/sGsMs[slsts{s”sÁsÛsèsõst t␍tt@tGtMt[tctyt„tŠt�t³t BÂjj*j-j4j?jNjPj[jjjjjwj…jˆjŠjŠj�j”j�j¨j®j·jÊjÏjäjïjùjùjkk<kFkPkgkmkrkykk†k‹k‹k‘k—kœkœk¯k½kËkÕkÛkàkêkôkşklll"l=lClHlHlslxlxl£lÊlÏlÏlÏlÒlÙlßlælëlëlñl÷lülülmm'm-m;mPmVmfmrmxm†m�m�m™m£m©m°m°m²m²m²m·m½mÂmÆmÈmËmÖmåmèmêmîmîmómómn+n mmm"m-mFmHmMm[mfmsmzmˆmü\=P§,§,Á,æ,È,õ,--)->-+-M-f-x-‘-‘-˜-º-º-Ä-ı8fpÇNÇNßNîNOOOO O@Oş0�—àŒàŒôŒ���)�,�4�ÿ0S[ÙÙ2Ù:ÙGÙQÙdÙP>N`Š`ŠlŠ€ŠƒŠ—ŠŸŠ£Š­Š·Š¿ŠÂŠÈŠT¡²/Q/QIQ\Q_QiQvQ‹Q�QŸQ©Q½Q½QÃQÆQR<˜£8�8�L�S�_�k�{�€�ƒ�‡��� 26ÖæÖæäæğæH!/7[7[K[W[m[Y[|[~[…[�[œ[¤[D>‹¿T¿TáTìTñTùTUUUU8U>U@UKURURUVUeUnUvUU‡U�U•U™U U¨U®U³U»UÒUÖUìUÿUVVV+V+V?VJVQVZVhVqV”VšV�V£V¨V«VµVºVÆVÏVãVêVüVWWWW!WsWläûääÊäàäîäùäıäååå å"å"å6å8åAåGåGåGåGåOå´EnÀEÀEæE÷EüEF␍F␍FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I—s—s§s³s¿sÏsçsísûs ttt4tat{tˆt•t¥t«t­t¾tàtçtítûtuu$u*u0uSu B j jºj½jÄjÏjŞjàjëjújújkkkkk k$k-k8k>kGkZk_ktkk‰k‰kŸkŸkÌkÖkàk÷kıkl lllll!l'l,l,l?lMl[lelklplzl„l�l•l•l¤l²lÍlÓlØlØlmmm3mZm_m_m_mbmimomvm{m{m�m‡mŒmŒm£m­m·m½mËmàmæmömnnnn n)n3n9n@n@nBnBnBnGnMnRnVnXn[nfnunxnzn~n~nƒnƒn‘n»n
˜}Ÿ^$^$z$$†$�$–$¡$±$¹$Á$Æ$Ñ$Û$á$ì$ü$%%%#%+%3%;%@%K%Y%Y%o% $bß<ß<÷<ş<=9=D=Q=_=S=ˆ=ˆ=”=œ=«=å=ç=>>>Q>i>V>Š>x>™>Ÿ>®>Ã>Å>Ğ>Ø>Ø>ù>ş>???9?&?n?T?H?}?š?…?º?Ò?¿?ô?á?@@$@6@,@M@M@M@T@v@v@‚@ Ğ1ø’ø’ “ “2“2“R“V“[“[“[“g“l“|“�“�“�“†“†“Ÿ“¦“µ“Ó̓ܓå“ç“ç“ç“ç“î“õ“ü“” ˜u—¦$¦$Â$Ç$Î$Ø$Ş$é$ù$% %%%#%)%4%D%L%\%c%k%s%{%ƒ%ˆ%“%¡%¡%·% $b==—=�=±=Ù=ä=ñ=ÿ=ó=(>(>4><>K>…>‡>´>¼>¼>ñ> ?ö>*??9???N?c?e?p?x?x?™?�?§?³?»?Ù?Æ?@ô?è?@:@%@Z@r@_@”@�@µ@£@Ä@Ö@Ì@í@í@í@ô@AA"A Ğ1ˆ“ˆ“œ“œ“Â“Â“â“æ“ë“ë“ë“÷“ü“ ””””””/”6”E”S”\”l”u”w”w”w”w”~”…”Œ”“”𔡔¨”¯”¯”±”±”·”¼”Õ␍D$ÿrÿr␍ss!s1s6s?sKsMs_s_sas‘s
””” ” ”!”!”'”,”3•␍D$_r_rmrwr�r‘r–rŸr«r­r¿r¿rÁrñr
+1 -1
View File
@@ -286,7 +286,7 @@ class CIntermediateStruct
#define KW_NOARGPOP 47 #define KW_NOARGPOP 47
#define AKW_ALIGN 64 #define AKW_ALIGN 64
#define AKW_MODULE_ORG 65 #define AKW_ORG 65
#define AKW_I0 66 #define AKW_I0 66
#define AKW_I8 67 #define AKW_I8 67
#define AKW_I16 68 #define AKW_I16 68
+1
View File
@@ -21,6 +21,7 @@ extern U0 StreamDir();
public extern I64 StreamExePrint(U8 *fmt,...); public extern I64 StreamExePrint(U8 *fmt,...);
public extern U0 StreamPrint(U8 *fmt,...); public extern U0 StreamPrint(U8 *fmt,...);
public extern Bool Trace(Bool val=ON); public extern Bool Trace(Bool val=ON);
#help_index "Compiler/Lex" #help_index "Compiler/Lex"
#help_file "::/Doc/Lex" #help_file "::/Doc/Lex"
extern U0 ClassMemberLstDel(CHashClass *c); extern U0 ClassMemberLstDel(CHashClass *c);
+22 -8
View File
@@ -442,7 +442,7 @@ I64 Lex(CCmpCtrl *cc)
{//Fetch next token. {//Fetch next token.
I64 i,j,k,l,ch; I64 i,j,k,l,ch;
CHash *tmph; CHash *tmph;
Bool str_done,neg_e; Bool str_done,in_str,neg_e;
U8 *fbuf,*buf2,*buf3,buf[STR_LEN]; U8 *fbuf,*buf2,*buf3,buf[STR_LEN];
cc->last_line_num=cc->lex_include_stk->line_num; cc->last_line_num=cc->lex_include_stk->line_num;
while (TRUE) { while (TRUE) {
@@ -722,6 +722,7 @@ lex_float_start:
i=j=0; i=j=0;
buf2=NULL; buf2=NULL;
if (ch) { if (ch) {
in_str=FALSE;
do { do {
if (ch=='\\') { if (ch=='\\') {
if (ch=LexGetChar(cc)) { if (ch=LexGetChar(cc)) {
@@ -734,14 +735,16 @@ lex_float_start:
buf[j++]='\\'; buf[j++]='\\';
break; break;
} }
} else if (ch!='\n') } else if (ch!='\n') {
if (ch=='\"')
in_str=!in_str;
buf[j++]=ch; buf[j++]=ch;
else } else
break; break;
while (ch=LexGetChar(cc)) { while (ch=LexGetChar(cc)) {
if (ch=='/') { if (ch=='/') {
ch=LexGetChar(cc); ch=LexGetChar(cc);
if (ch=='/') { if (ch=='/' && !in_str) {
do ch=LexGetChar(cc); do ch=LexGetChar(cc);
while (Bt(char_bmp_non_eol,ch)); while (Bt(char_bmp_non_eol,ch));
break; break;
@@ -749,11 +752,22 @@ lex_float_start:
buf[j++]='/'; buf[j++]='/';
cc->flags|=CCF_USE_LAST_U16; cc->flags|=CCF_USE_LAST_U16;
} }
} else if (ch=='\\') } else if (ch=='\\') {
break; if (ch=LexGetChar(cc)) {
else if (Bt(char_bmp_non_eol,ch)) if (ch=='\"') {
buf[j++]='\\';
buf[j++]=ch; buf[j++]=ch;
else } else {
cc->flags|=CCF_USE_LAST_U16;
ch='\\';
break;
}
}
} else if (Bt(char_bmp_non_eol,ch)) {
if (ch=='\"')
in_str=!in_str;
buf[j++]=ch;
} else
break; break;
if (j>=STR_LEN-4) {//Spot for ['\'][ch],[ch],[0] if (j>=STR_LEN-4) {//Spot for ['\'][ch],[ch],[0]
buf[j++]=0; buf[j++]=0;
+1 -1
View File
@@ -187,7 +187,7 @@ KEYWORD argpop 46;
KEYWORD noargpop 47; KEYWORD noargpop 47;
ASM_KEYWORD ALIGN 64; ASM_KEYWORD ALIGN 64;
ASM_KEYWORD MODULE_ORG 65; ASM_KEYWORD ORG 65;
ASM_KEYWORD I0 66; ASM_KEYWORD I0 66;
ASM_KEYWORD I8 67; ASM_KEYWORD I8 67;
ASM_KEYWORD I16 68; ASM_KEYWORD I16 68;
+16 -24
View File
@@ -244,12 +244,10 @@ U0 PrsStaticInit(CCmpCtrl *cc,CMemberLst *tmpm,I64 pass)
} }
} }
Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) U0 PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim)
{//Returns false on empty [] {//dim->next!=0 for array
//dim->next!=0 for array
CArrayDim *tmpad,*tmpad1; CArrayDim *tmpad,*tmpad1;
I64 j; I64 j;
Bool res=TRUE;
dim->next=NULL; dim->next=NULL;
dim->cnt=0; dim->cnt=0;
dim->total_cnt=1; dim->total_cnt=1;
@@ -258,30 +256,30 @@ Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim)
if (mode.u8[1]==PRS1B_FUN_ARG) if (mode.u8[1]==PRS1B_FUN_ARG)
LexExcept(cc,"No arrays in fun args at "); LexExcept(cc,"No arrays in fun args at ");
do { do {
if (Lex(cc)==']' && !dim->next) { if (Lex(cc)==']' && !dim->next)
j=-1; j=0;
res=FALSE; else {
} else {
if ((j=LexExpressionI64(cc))<0) if ((j=LexExpressionI64(cc))<0)
LexExcept(cc,"Invalid array size at "); LexExcept(cc,"Invalid array size at ");
} }
tmpad1=&dim->next;
while (tmpad1->next) {
tmpad1->next->total_cnt*=j;
tmpad1=tmpad1->next;
}
tmpad=MAlloc(sizeof(CArrayDim)); tmpad=MAlloc(sizeof(CArrayDim));
tmpad1->next=tmpad;
tmpad1=tmpad;
tmpad->next=NULL; tmpad->next=NULL;
tmpad1=&dim;
do {
tmpad1->total_cnt*=j;
if (!tmpad1->next) {
tmpad1->next=tmpad;
break;
}
tmpad1=tmpad1->next;
} while (tmpad1);
tmpad1=tmpad;
tmpad->cnt=j; tmpad->cnt=j;
tmpad->total_cnt=1; tmpad->total_cnt=1;
dim->total_cnt*=j;
if (cc->token!=']') if (cc->token!=']')
LexExcept(cc,"Missing ']' at "); LexExcept(cc,"Missing ']' at ");
} while (Lex(cc)=='['); } while (Lex(cc)=='[');
} }
return res;
} }
CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1,
@@ -292,7 +290,6 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1,
CHashClass *tmpc1=*_tmpc1,*tmpc2; CHashClass *tmpc1=*_tmpc1,*tmpc2;
CHashFun *fun_ptr=NULL; CHashFun *fun_ptr=NULL;
CHashExport *tmpex=NULL; CHashExport *tmpex=NULL;
CArrayDim *tmpad2;
pt_start: pt_start:
if (!tmpc1 || !(tmpc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) if (!tmpc1 || !(tmpc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE)))
@@ -358,12 +355,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1,
fun_ptr=PrsFunJoin(cc,tmpc1,NULL,fsp_flags)+ptr_stars_cnt; fun_ptr=PrsFunJoin(cc,tmpc1,NULL,fsp_flags)+ptr_stars_cnt;
tmpc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt; tmpc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt;
} }
if (!PrsArrayDims(cc,mode,tmpad) && cc->token!='=') { PrsArrayDims(cc,mode,tmpad);
tmpc1++;
tmpad2=tmpad->next->next;
Free(tmpad->next);
tmpad->next=tmpad2;
}
tmpc2=OptClassFwd(tmpc1); tmpc2=OptClassFwd(tmpc1);
if (tmpc2->ptr_stars_cnt) { if (tmpc2->ptr_stars_cnt) {
+30 -62
View File
@@ -126,38 +126,6 @@ Bool MyPutKey(I64 ch,I64 sc)
"$$BLUE$$"; "$$BLUE$$";
} }
return TRUE; return TRUE;
case SC_F5:
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /GodOffer");
else
GodOffer;
return TRUE;
case SC_F6:
if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /TOSIns");
else
TOSIns;
} else {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /TimeIns");
else
TimeIns;
}
return TRUE;
case SC_F7:
if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /NISTGodIns2");
else
NISTGodIns2;
} else {
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /GodIns");
else
GodIns;
}
return TRUE;
case SC_F8: case SC_F8:
if (sc&SCF_SHIFT) { if (sc&SCF_SHIFT) {
if (sc&SCF_KEY_DESC) if (sc&SCF_KEY_DESC)
@@ -185,6 +153,22 @@ Bool MyPutKey(I64 ch,I64 sc)
else else
AutoComplete; AutoComplete;
return TRUE; return TRUE;
case 'f': //With sync
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /FrameGrabber Sync");
else if (fg_on)
FrameGrabberToggle(FALSE,FALSE,FALSE);
else
FrameGrabberToggle(TRUE,FALSE,FALSE);
return TRUE;
case 'F': //With sync and intro TOS theme
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /FrameGrabber Intro");
else if (fg_on)
FrameGrabberToggle(FALSE,FALSE,TRUE);
else
FrameGrabberToggle(TRUE,TRUE,FALSE);
return TRUE;
case 'h': case 'h':
if (sc&SCF_KEY_DESC) if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /WinTileHorz"); KeyDescSet("Cmd /WinTileHorz");
@@ -211,12 +195,6 @@ Bool MyPutKey(I64 ch,I64 sc)
else else
WinTileVert; WinTileVert;
return TRUE; return TRUE;
case 'V':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /FrameGrabberToggle");
else
FrameGrabberToggle;
return TRUE;
case 'l': case 'l':
if (sc&SCF_KEY_DESC) if (sc&SCF_KEY_DESC)
KeyDescSet("Edit/Put Link to Cur Pos on Clip"); KeyDescSet("Edit/Put Link to Cur Pos on Clip");
@@ -246,6 +224,20 @@ Bool MyPutKey(I64 ch,I64 sc)
"$$AN,\"<TODO>\",A=\"ANC%d\"$$",i; "$$AN,\"<TODO>\",A=\"ANC%d\"$$",i;
} }
return TRUE; return TRUE;
case 'p':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /JukeBox");
else
PopUp("#include \"::/Apps/Psalmody/Load\";"
"JukeBox(\"::/Home/Sup1/Sup1Hymns\");");
return TRUE;
case 'P':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /Psalmody");
else
PopUp("#include \"::/Apps/Psalmody/Load\";"
"Psalmody(\"~/Sup1/Sup1Hymns\");");
return TRUE;
//Ins your own ALT-key plug-ins //Ins your own ALT-key plug-ins
case '1': case '1':
@@ -284,30 +276,6 @@ Bool MyPutKey(I64 ch,I64 sc)
else else
"$$ID,-5$$"; "$$ID,-5$$";
return TRUE; return TRUE;
case 'b':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /Jump to Bad Code");
else //$LK,"::/Adam/God/HSNotes.DD"$
GodCodeJmp;
return TRUE;
case 'g':
if (sc&SCF_KEY_DESC)
KeyDescSet("Edit/BlogScrnShot");
else
BlogScrnShot;
return TRUE;
case 'p':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /JukeBox(Home/Sup1Hymns)");
else
JukeBox("~/Sup1/Sup1Hymns");
return TRUE;
case 'P':
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /JukeBox(Home/Sup1Songs)");
else
JukeBox("~/Sup1/Sup1Songs");
return TRUE;
} }
} }
return FALSE; return FALSE;
+1 -1
View File
@@ -9,7 +9,7 @@ U0 UserStartUp()
WinToTop; WinToTop;
WinZBufUpdate; WinZBufUpdate;
Dir; Dir;
"$TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; "$TX,"82,150",D="DD_TEMPLEOS_LOC"$LOC:";
CPURep; CPURep;
} }
+1 -1
View File
@@ -2,7 +2,7 @@
#define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"\ #define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"\
"!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\ "!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\
"!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*" "!*/God/Vocab.DD*"
public I64 F(U8 *needle_str,U8 *fu_flags=NULL) public I64 F(U8 *needle_str,U8 *fu_flags=NULL)
{//Find text in all text files. {//Find text in all text files.
Binary file not shown.
+14 -83
View File
@@ -1,5 +1,11 @@
$WW,1$$FG,5$$TX+CX,"TODO"$$FG$ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Make MV files combine disjoint rects for same frame.
* God said to reconsider switch start/end, perhaps preface portion?
* 170605 Alec Murphy said MountFile() of a red sea supplemental1 ISO failed.
* Does entire tool chain support super/sub script? * Does entire tool chain support super/sub script?
* $LK,"::/Apps/X-Caliber/X-Caliber.HC"$ * $LK,"::/Apps/X-Caliber/X-Caliber.HC"$
@@ -13,9 +19,9 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Helicopters. * Helicopters.
* Anti-Aircraft. * Anti-Aircraft.
* $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented. * Fix $LK,"::/Home/Sup1/Sup1Graphics/ICOFile.HC"$
* Cursor in $LK,"~/TOS/TOSToHtml.HC"$. * $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented.
* Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$. * Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$.
@@ -192,8 +198,6 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$
* $LK,"StrPrintJoin",A="MN:StrPrintJoin"$(,st); With st="\n\\"; (Forgot what this is talking about.) * $LK,"StrPrintJoin",A="MN:StrPrintJoin"$(,st); With st="\n\\"; (Forgot what this is talking about.)
* $LK,"BMPRLE4To",A="MN:BMPRLE4To"$() has files_size too big by 108. Fixed?
$FG,5$$TX+CX,"TODO? Not really, just angst."$$FG$ $FG,5$$TX+CX,"TODO? Not really, just angst."$$FG$
* Should these be moved into $LK,"CHashClass",A="MN:CHashClass"$ from $LK,"CMemberLst",A="MN:CMemberLst"$ and $LK,"CHashGlblVar",A="MN:CHashGlblVar"$? * Should these be moved into $LK,"CHashClass",A="MN:CHashClass"$ from $LK,"CMemberLst",A="MN:CMemberLst"$ and $LK,"CHashGlblVar",A="MN:CHashGlblVar"$?
@@ -273,8 +277,6 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
* Import Intel datasheets so we can use links in $LK,"Code",A="FI:::/Kernel/Mem/PageTables.HC"$ for documentation. I tried a PDF-to-text convertor and it wasn't acceptible. * Import Intel datasheets so we can use links in $LK,"Code",A="FI:::/Kernel/Mem/PageTables.HC"$ for documentation. I tried a PDF-to-text convertor and it wasn't acceptible.
* Why are BMP file $LK,"CBGR24",A="MN:CBGR24"$'s wrong? $LK,"::/Adam/Opt/Utils/FileBMP.HC"$.
* Switch stmt with sparse cases? Maybe, ban sparse switch stmts. * Switch stmt with sparse cases? Maybe, ban sparse switch stmts.
* Compiler Optimization: Postpone LocalVar init until last possible moment in case of return. * Compiler Optimization: Postpone LocalVar init until last possible moment in case of return.
@@ -441,84 +443,13 @@ Thousand songs of Solomon $TX,"1 Kings 4:32",HTML="http://www.biblegateway.com/
Not rich, nor poor, but my portion $TX,"Proverbs 30:8",HTML="http://www.biblegateway.com/verse/en/Proverbs%2030:8"$ Not rich, nor poor, but my portion $TX,"Proverbs 30:8",HTML="http://www.biblegateway.com/verse/en/Proverbs%2030:8"$
Be hot or cold. Lukewarm I spit you out $TX,"Revelation 3:16",HTML="http://www.biblegateway.com/verse/en/Revelation%203:16"$ Be hot or cold. Lukewarm I spit you out $TX,"Revelation 3:16",HTML="http://www.biblegateway.com/verse/en/Revelation%203:16"$
$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,"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"$
Machine $HC,"<center><img src=\"http://www.templeos.org/images/Machine.jpg\" width=\"600\" height=\"400\" alt=\"\"></center>"$
Frosting $HC,"<center><img src=\"http://www.templeos.org/images/Frosting.jpg\" width=\"600\" height=\"400\" alt=\"\"></center>"$
Soap Carvings $HC,"<center><img src=\"http://www.templeos.org/images/SoapCarvings.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
CottonTail $HC,"<center><img src=\"http://www.templeos.org/images/CttnTail.jpg\" width=\"644\" height=\"1113\" alt=\"\"></center>"$
TempleOS Logo $HC,"<center><img src=\"http://www.templeos.org/images/Logo128x152.jpg\" width=\"640\" height=\"760\" alt=\"\"></center>"$
T-Shirts & Mug $HC,"<img src=\"http://www.templeos.org/Wb/Home/Web/Imgs/Gear2387x2849.jpg\" width=\"477\" height=\"569\" alt=\"\">"$
Pew Pew Pew $HC,"<center><img src=\"http://i.imgur.com/sMpJ0ch.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
Iceberg $HC,"<center><img src=\"https://upload.wikimedia.org/wikipedia/commons/3/38/Blue_ice_in_South_Greenland_-_Visit_Greenland.jpg\" width=\"640\" height=\"480\" alt=\"\"></center>"$
I made dis $HC,"<center><img src=\"http://i.imgur.com/cZKkxTX.jpg\" width=\"640\" height=\"800\" alt=\"\"></center>"$
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>"$
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,"Linus Torvalds (Dec 28, 1969)",HTML="https://en.wikipedia.org/wiki/Linus_Torvalds"$ $TX,"Linus Torvalds (Dec 28, 1969)",HTML="https://en.wikipedia.org/wiki/Linus_Torvalds"$
$TX,"John Carmack (Aug 20, 1970)",HTML="https://en.wikipedia.org/wiki/John_Carmack"$ $TX,"John Carmack (Aug 20, 1970)",HTML="https://en.wikipedia.org/wiki/John_Carmack"$
$TX,"Terry A. Davis (Dec 15, 1969)",HTML="https://motherboard.vice.com/en_us/article/gods-lonely-programmer"$ $TX,"Terry A. Davis (Dec 15, 1969)",HTML="https://motherboard.vice.com/en_us/article/gods-lonely-programmer"$
$TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$
$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$
$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"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$
$TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$ $TX,"Peter Gadwa",HTML="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"$
$TX,"Peter Gadwa",HTML="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"$ $TX,"Ticketmaster",HTML="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"$ $TX,"Ticketmaster",HTML="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"$
$TX,"Tom Foley",HTML="http://web.gccaz.edu/~tfoley/perspage.html"$ $TX,"Tom Foley",HTML="http://web.gccaz.edu/~tfoley/perspage.html"$
$TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$ $TX,"Lexmark vs Static Control",HTML="https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v._Static_Control_Components,_Inc."$ $TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$
$TX,"Stephen Davis",HTML="https://photos.google.com/share/AF1QipM4HI3mb_9qe8wDQ--nRfjIzOKyGG8heqWH-tbGBIIoxChWe4GeBegNzgHRy4Z1Qw?key=eGR0R0tyZG5tenRWd0tDN2RHRFRNTmI4NXdhc25B"$
3qEeEGCAsBABAqFDBeE2G33qEeEGCAsBABAqFDBeE2G33qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF3qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF
qFeDAsBDeDqCeF2G3sGGeF2sG3C2G3CBCeF
$FG,5$$TX+CX,"Web Bookmarks"$$FG$
Cop tying shoe $HC,"<center><img src=\"https://goodtimestories.files.wordpress.com/2013/04/cop-tying-shoe-cambridge-county-pd.jpg\" width=\"480\" height=\"376\" alt=\"\"></center>"$
$TX,"Unikernels",HTML="https://ma.ttias.be/what-is-a-unikernel"$
$TX,"Handford school",HTML="https:/pinterest.com/pin/255368241346360278"$
$TX,"Look at PCI interrupt routing.",HTML="http://forum.osdev.org/viewtopic.php?f=1&t=29558"$
$TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$
$TX,"Stalin's Tanks",HTML="https://boardgamegeek.com/boardgame/5198/stalins-tanks"$
$TX,"Wisdom for the Way",HTML="https://www.amazon.com/Wisdom-Way-Wise-Words-People/dp/1404113258#reader_1404113258"$
$TX,"Lamp shades",HTML="http://www.lampsplus.com/products/lamp-shades"$
$TX,"The Original Jewish Temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$
$TX,"Top 1000 Movies",HTML="http://www.theyshootpictures.com/gf1000_all1000films.htm"$
$TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$
$TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$
$TX,"The Number Bleem",HTML="http://www.strangehorizons.com/2000/20001120/secret_number.shtml"$
$TX,"Dwight: Nerd torture",HTML="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form"$
$TX,"TOSZ Compression",HTML="http://www.templeos.org/Wb/Linux/TOSZ.CPP"$
$TX,"ATA/ATAPI spec",HTML="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf"$
$TX,"Patton Prayer",HTML="http://www.pattonhq.com/prayer.html"$
$TX,"Streaming Terry A. Davis",HTML="https://www.youtube.com/channel/UCdX4uJUwSFwiY3XBvu-F_-Q/live"$
$TX,"Bleem",HTML="http://strangehorizons.com/fiction/the-secret-number/"$
$TX,"WWW.OSDEV.ORG",HTML="http://www.osdev.org"$
$TX,"NIST Beacon",HTML="http://www.nist.gov/itl/csd/ct/nist_beacon.cfm"$
$TX,"The Perfect Coin Toss",HTML="http://hackaday.com/2014/12/19/nist-randomness-beacon"$
$TX,"BBC",HTML="http://www.knpr.org"$
$TX,"KNPR",HTML="http://www.knpr.org"$
$TX,"BBC_News_24",HTML="http://www.wherever.tv/tv-channels/BBC-News-24.jsf"$
$TX,"BBC_Five_Live",HTML="http://www.bbc.co.uk/radio/player/bbc_radio_five_live"$
$TX,"CBS News",HTML="http://www.cbsnews.com/live/?ftag= NM14632fc"$
$TX,"C64 Users Guide",HTML="http://www.commodore.ca/manuals/c64_users_guide/c64-users_guide.htm"$
$TX,"Mapping the Commodore 64",HTML="http://unusedino.de/ec64/technical/project64/mapping_c64.html"$
$TX,"C64 Programmers Reference Guide",HTML="http://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference.htm"$
$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
+5 -9
View File
@@ -8,7 +8,7 @@ $ID,2$#help_index "Registry/Install Registration"
MemSet(&ins_reg,0,sizeof(CInsReg)); MemSet(&ins_reg,0,sizeof(CInsReg));
ins_reg.registered=1; ins_reg.registered=1;
ins_reg.host_os=2; ins_reg.host_os=2;
ins_reg.host_vm=2; ins_reg.host_vm=3;
#define INS_REG_PERSONAL_INITIALS "TAD" #define INS_REG_PERSONAL_INITIALS "TAD"
StrCpy(ins_reg.initials,"TAD"); StrCpy(ins_reg.initials,"TAD");
@@ -28,8 +28,6 @@ $ID,-2$$TR,"DiningStars"$
$ID,2$F64 best_score=9999.0000; $ID,2$F64 best_score=9999.0000;
$ID,-2$$TR,"CircleTrace"$ $ID,-2$$TR,"CircleTrace"$
$ID,2$F64 best_score=4.9425; $ID,2$F64 best_score=4.9425;
$ID,-2$$TR,"TOSNIST"$
$ID,2$I64 tos_nist_offset=-8049;
$ID,-2$$TR,"BlackDiamond"$ $ID,-2$$TR,"BlackDiamond"$
$ID,2$I64 best_score=2; $ID,2$I64 best_score=2;
$ID,-2$$TR,"DunGen"$ $ID,-2$$TR,"DunGen"$
@@ -50,7 +48,7 @@ $ID,-2$$TR,"Wenceslas"$
$ID,2$F64 best_score=43.9944; $ID,2$F64 best_score=43.9944;
$ID,-2$$TR,"OSTestSuite"$ $ID,-2$$TR,"OSTestSuite"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000; $ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=227.554; progress3_tf=0.000;progress4_tf=223.150;
$ID,-2$$TR,"XCaliber"$ $ID,-2$$TR,"XCaliber"$
$ID,2$I64 best_score=90; $ID,2$I64 best_score=90;
I64 msg_flags=2; I64 msg_flags=2;
@@ -62,15 +60,13 @@ $ID,-2$$TR,"Titanium"$
$ID,2$I64 best_score=16469; $ID,2$I64 best_score=16469;
$ID,-2$$TR,"TOSRegen"$ $ID,-2$$TR,"TOSRegen"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000; $ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=188.144; progress3_tf=0.000;progress4_tf=279.384;
$ID,-2$$TR,"TempleTetris"$
$ID,2$I64 hiscore=1000;
$ID,-2$$ID,-2$$TR,"Once"$ $ID,-2$$ID,-2$$TR,"Once"$
$ID,2$$TR,"Adam"$ $ID,2$$TR,"Adam"$
$ID,2$$ID,-2$$TR,"User"$ $ID,2$$ID,-2$$TR,"User"$
$ID,2$$ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$$ID,-2$$ID,-2$$TR,"DemoCompany"$
$ID,2$$TR,"Game1"$ $ID,2$$TR,"Game1"$
$ID,2$F64 best_score=202.07117; $ID,2$F64 best_score=187.05180;
$TR,"SimpleVal"$ $TR,"SimpleVal"$
$ID,2$1239; $ID,2$1245;
$ID,-2$$ID,-2$$ID,-2$ $ID,-2$$ID,-2$$ID,-2$
-5
View File
@@ -3,11 +3,6 @@ Cd(__DIR__);;
#include "TOSExt" #include "TOSExt"
#include "TOSCfg" #include "TOSCfg"
#include "TOSMisc" #include "TOSMisc"
#include "TOSToHtml"
#include "TOSDistro" #include "TOSDistro"
#include "TOSBlog"
#include "TOSNIST"
#include "TOSHolySpirit"
#include "TOSIns"
Cd("..");; Cd("..");;
+2 -10
View File
@@ -1,14 +1,7 @@
#help_index "Misc/TOS/Cfg" #help_index "Misc/TOS/Cfg"
#define PERSONAL_WEB "http:/" "/www.templeos.org/Wb"
#define BLOG_BASE "/Home/Web/"\
INS_REG_PERSONAL_INITIALS "/BlogDir"
#define DAILY_BASE "/Home/Web/"\
INS_REG_PERSONAL_INITIALS "/DailyBlog"
#define BLOG_LOCAL_BASE "::" BLOG_BASE
#define BLOG_WEB_BASE PERSONAL_WEB BLOG_BASE
#define SLOP BLK_SIZE #define SLOP BLK_SIZE
U0 TOSDbgDistro1() U0 TOSDbgDistro1()
{ {
CBinFile *bfh=mem_boot_base-sizeof(CBinFile); CBinFile *bfh=mem_boot_base-sizeof(CBinFile);
@@ -51,8 +44,7 @@ U0 TOSInit()
} }
} TOSInit; } TOSInit;
#define TOS_ISO_NAME "B:/TempleOSCD.ISO" #define TOS_ISO_NAME "B:/TOS_Distro.ISO.C"
#define TOS_ISO_C_NAME "B:/TempleOSCD.ISO.C"
#define TOS_DISTRO_DIR "B:/Distro" #define TOS_DISTRO_DIR "B:/Distro"
#define CFG_OPTS "StaffMode\nMountIDEAuto\nCT\n" #define CFG_OPTS "StaffMode\nMountIDEAuto\nCT\n"
#define CFG_DBG_OPTS "StaffMode\nMountIDEAuto\nCT"\ #define CFG_DBG_OPTS "StaffMode\nMountIDEAuto\nCT"\
+47 -328
View File
@@ -2,17 +2,8 @@
#help_index "Misc/TOS/Distro" #help_index "Misc/TOS/Distro"
#define MAKE_STD 1
#define MAKE_STD_RS 0
#define MAKE_ULTRA 1
#define MAKE_ULTRA_RS 0
#define MAKE_SUP1 1
#define MAKE_WEB 1
#define MAKE_BOOKS1 0
#define MAKE_BOOKS2 0
#define MAKE_DBG 0 #define MAKE_DBG 0
#define MAKE_STAFF 1 #define MAKE_STAFF 1
#define PROFANITY_CHK 0
public U8 TOSGetDrv() public U8 TOSGetDrv()
{//Pmt for drv let. {//Pmt for drv let.
@@ -59,25 +50,6 @@ public U0 TOSPmtAndCopyDrv()
TOSCopyDrv(src,dst); TOSCopyDrv(src,dst);
} }
U0 DistroSongsPrep(U8 threshold='7')
{
CDoc *doc;
CDocEntry *doc_e;
CDirEntry *tmpde=FilesFind("/Home/Sup1/Sup1Hymns/*.HC*",
FUF_CLUS_ORDER),*tmpde1=tmpde;
DelTree("/Apps/Psalmody/Examples");
DirMk("/Apps/Psalmody/Examples");
while (tmpde) {
doc=DocRead(tmpde->full_name);
doc_e=doc->head.next;
if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold)
Copy(tmpde->full_name,"/Apps/Psalmody/Examples");
DocDel(doc);
tmpde=tmpde->next;
}
DirTreeDel(tmpde1);
}
U0 DistroPrep() U0 DistroPrep()
{ {
AOnceFlush; //Don't want in Registry AOnceFlush; //Don't want in Registry
@@ -85,8 +57,6 @@ U0 DistroPrep()
Del("/Home/Demo*"); Del("/Home/Demo*");
DelTree("/Home/*Tmp.DD.Z"); DelTree("/Home/*Tmp.DD.Z");
if (FileFind("/Home/Sup1/Sup1Hymns"))
DistroSongsPrep;
DelTree("/Tmp"); DelTree("/Tmp");
DirMk("/Tmp"); DirMk("/Tmp");
@@ -97,22 +67,12 @@ U0 DistroPrep()
DelTree("/Demo/AcctExample"); DelTree("/Demo/AcctExample");
CopyTree("/Home","/Demo/AcctExample"); CopyTree("/Home","/Demo/AcctExample");
DelTree("/Demo/AcctExample/Private"); DelTree("/Demo/AcctExample/TAD");
DelTree("/Demo/AcctExample/Sup1"); DelTree("/Demo/AcctExample/Sup1");
DelTree("/Demo/AcctExample/Books1");
DelTree("/Demo/AcctExample/Books2");
DelTree("/Demo/AcctExample/Web");
Del("/Demo/AcctExample/Test*"); Del("/Demo/AcctExample/Test*");
Copy("/Home/Web/index.DD.Z",
"/Demo/ToHtmlToTXTDemo/DemoInPage.DD.Z");
if (FileFind("~/Sup1/Sup1Utils/SortHeaders.HC.Z")) if (FileFind("~/Sup1/Sup1Utils/SortHeaders.HC.Z"))
ExeFile("~/Sup1/Sup1Utils/SortHeaders.HC.Z"); ExeFile("~/Sup1/Sup1Utils/SortHeaders.HC.Z");
if (FileFind("~/Sup1/Sup1Blog/YouTube.DD.Z"))
Sort("~/Sup1/Sup1Blog/YouTube.DD.Z",,2);
//Once in a while, do ~/Sup1/Sup1Utils/DblSpaceScan.HC.
CursorRem("/*"); CursorRem("/*");
DelTree("/Demo/*.BI*"); DelTree("/Demo/*.BI*");
S2T("/*","+r+S"); S2T("/*","+r+S");
@@ -155,81 +115,6 @@ U0 DbgDistroFilePrep()
bd->RAM_dsk,(bd->max_blk+1)<<BLK_SIZE_BITS); bd->RAM_dsk,(bd->max_blk+1)<<BLK_SIZE_BITS);
} }
U0 MakeSymFiles()
{
CDoc *doc;
U8 *st;
DocClear;
DocMax;
HashTablePurge(adam_task->hash_table);
Who;
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,"D:/Wb/Home/Web/SymsAlpha.DD.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
DocMax;
Who("+m");
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,"D:/Wb/Home/Web/SymsAddress.DD.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
}
I64 MakeLineRepFile()
{
U8 *st;
CDoc *doc;
I64 res,official;
DocClear;
Drv('C');
DistroPrep;
Cd("C:/");
DelTree("B:/TOS/TOS");
CopyTree("C:/Home","B:/TOS/TOS");
DelTree("C:/Home");
DocMax;
DocClear;
res=LineRep;
if (doc=DocPut) {
st=StrNew(doc->filename.name);
StrCpy(doc->filename.name,"B:/TOS/TOS/Web/LineRep.DD.Z");
DocWrite(doc);
StrCpy(doc->filename.name,st);
Free(st);
}
DocClear;
official=LineRep("C:/*","-r")+
LineRep("C:/Adam/*")+
LineRep("C:/Compiler/*","-S+$$")+
LineRep("C:/Kernel/*");
DocClear;
CopyTree("B:/TOS/TOS","C:/Home");
DelTree("B:/TOS/TOS");
DocTreeFWrite("C:/Adam/ADefine.HC.Z","LineRep",
"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res);
DocTreeFAppend("C:/Adam/ADefine.HC.Z","LineRep",
"DefinePrint(\"DD_TEMPLEOS_LOC_OFFICIAL\",\"%,d\");\n",official);
DefinePrint("DD_TEMPLEOS_LOC","%,d",res);
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","%,d",official);
"Total LOC:%12,d\n\n",res;
return res;
}
U0 StaffDistroPrep() U0 StaffDistroPrep()
{ {
Drv('C'); Drv('C');
@@ -240,15 +125,12 @@ U0 StaffDistroPrep()
DelTree(TOS_DISTRO_DIR); DelTree(TOS_DISTRO_DIR);
CopyTree("C:/",TOS_DISTRO_DIR "/"); CopyTree("C:/",TOS_DISTRO_DIR "/");
DelTree(TOS_DISTRO_DIR "/Home/Sup1"); DelTree(TOS_DISTRO_DIR "/Home/Sup1");
DelTree(TOS_DISTRO_DIR "/Home/Books1");
DelTree(TOS_DISTRO_DIR "/Home/Books2");
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C);
} }
U0 MakeStaffDistro() U0 MakeStaffDistro()
{ {
StaffDistroPrep; StaffDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_STAFF_SIZE", DefinePrint("DD_TEMPLEOS_STAFF_SIZE",
"Download $TX,"TempleOS V5.03",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)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
@@ -274,8 +156,7 @@ U0 DbgDistroPrep()
U0 MakeDbgDistro() U0 MakeDbgDistro()
{ {
DbgDistroPrep; DbgDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_DBG_SIZE", DefinePrint("DD_TEMPLEOS_DBG_SIZE",
"Download $TX,"TempleOS V5.03",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)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
@@ -300,96 +181,49 @@ U0 StdDistroPrep()
U0 MakeStdDistro() U0 MakeStdDistro()
{ {
StdDistroPrep; StdDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOSCD_SIZE", DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V5.03",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)); 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
} }
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.03",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)",
0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C');
}
U0 UltraDistroPrep() I64 UpdateLineCnts()
{ {
StdDistroPrep; I64 res;
DelTree(TOS_DISTRO_DIR "/Linux");
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C);
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DATA*");
Del(TOS_DISTRO_DIR "/Misc/PCIDevices.DD.Z");
Del(TOS_DISTRO_DIR "/Misc/Bible.TXT.Z");
DelTree(TOS_DISTRO_DIR "/Apps"); DocClear;
DirMk(TOS_DISTRO_DIR "/Apps");
DelTree(TOS_DISTRO_DIR "/Demo");
DelTree(TOS_DISTRO_DIR "/Misc/Tour");
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C);
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DATA*");
Del(TOS_DISTRO_DIR "/Adam/God/Vocab.DD.Z");
Del(TOS_DISTRO_DIR "/Misc/OSTestSuite.HC.Z");
Copy("C:/Home/Sup1/Sup1Distro/UltraMenu.DD.Z",
TOS_DISTRO_DIR "/PersonalMenu.DD.Z");
Copy("C:/Demo/Games/Talons.HC.Z",
TOS_DISTRO_DIR "/Misc");
}
U0 MakeUltraDistro()
{
UltraDistroPrep;
ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",,
TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
DefinePrint("DD_TEMPLEOS_ULTRA_SIZE",
"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');
}
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.03",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)",
0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024));
Drv('C'); Drv('C');
DistroPrep;
Cd("C:/");
DelTree("B:/TOS/TOS");
CopyTree("C:/Home","B:/TOS/TOS");
DelTree("C:/Home");
DocMax;
DocClear;
res=LineRep("C:/*","-r")+LineRep("C:/Adam/*")+
LineRep("C:/Compiler/*","-S+$$")+LineRep("C:/Kernel/*");
CopyTree("B:/TOS/TOS","C:/Home");
DelTree("B:/TOS/TOS");
DocTreeFWrite("C:/Adam/ADefine.HC.Z","LineRep",
"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res);
DefinePrint("DD_TEMPLEOS_LOC","%,d",res);
"Total LOC:%12,d\n\n",res;
return res;
} }
U0 UpdateISODocDefines() U0 UpdateISODocDefines()
{ {
try { try {
#if MAKE_STD
DefinePrint("DD_TEMPLEOSCD_SIZE", DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V5.03",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)); 0.1*(10*Size("D:/TOS_Distro.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_K_SIZE", DefinePrint("DD_TEMPLEOSCD_K_SIZE",
"%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); "%dKB",Size("D:/TOS_Distro.ISO","+s")/1024);
#endif
#if MAKE_STD_RS
DefinePrint("DD_TEMPLEOSCD_RS_SIZE",
"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.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.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);
#endif
} catch } catch
Fs->catch_except=TRUE; Fs->catch_except=TRUE;
} }
@@ -405,8 +239,7 @@ U0 TOSProgress(U8 *st)
progress4=tos_progress; progress4=tos_progress;
progress3_max=1; progress3_max=1;
*progress4_desc=0; *progress4_desc=0;
progress4_max=13+MAKE_STD+MAKE_STD_RS+MAKE_ULTRA+MAKE_ULTRA_RS+MAKE_SUP1+ progress4_max=8+MAKE_DBG+MAKE_STAFF;
MAKE_WEB+MAKE_BOOKS1+MAKE_BOOKS2+MAKE_DBG+MAKE_STAFF+PROFANITY_CHK;
progress4_t0=tos_progress_t0; progress4_t0=tos_progress_t0;
StrPrint(buf,"%d. %s",++progress4,st); StrPrint(buf,"%d. %s",++progress4,st);
"$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf; "$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf;
@@ -414,31 +247,7 @@ U0 TOSProgress(U8 *st)
tos_progress=progress4; tos_progress=progress4;
} }
I64 TOSProfanity() U0 TOSRegen2()
{
I64 res;
if (res=Profanity(,"D:/Wb/*;"
"!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"
"!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Blog/Profanity.DD*;"
"!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*")) {
while (PressAKey!=CH_SHIFT_ESC) {
ProgressBarsRst;
if (Profanity(,"C:/Home/*;"
"!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"
"!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Blog/Profanity.DD*;"
"!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*")) {
"\n\nEdit profanity and press $FG,2$ESC$FG$.\n";
if (!View)
break;
DocBottom;
} else
break;
}
}
return res;
}
U0 TOSRegen3()
{ {
I64 slash_home=0; I64 slash_home=0;
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
@@ -452,71 +261,31 @@ U0 TOSRegen3()
WinMax; WinMax;
DskChkAll; DskChkAll;
TOSProgress("Make LineRep"); TOSProgress("Update Line Cnts");
MakeLineRepFile; UpdateLineCnts;
TOSProgress("Copy C to D"); TOSProgress("Copy C to D");
TOSCopyDrv('C','D'); TOSCopyDrv('C','D');
TOSProgress("Del D:/Wb");
DelTree ("D:/Wb");
TOSProgress("Copy C to D:/Wb");
CopyTree("C:/","D:/Wb");
DocClear;
#if MAKE_STD
TOSProgress("Make Standard Distro ISO"); TOSProgress("Make Standard Distro ISO");
MakeStdDistro; MakeStdDistro;
DocClear; DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO"); Move(TOS_ISO_NAME,"D:/TOS_Distro.ISO");
#endif
#if MAKE_STD_RS TOSProgress("Make Supplemental1 ISO");
TOSProgress("Make Standard RedSea Distro ISO"); RedSeaISO("D:/TOS_Supplemental1","C:/Home/Sup1");
MakeStdRedSeaDistro;
DocClear;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSCDRS.ISO");
#endif
#if MAKE_ULTRA
TOSProgress("Make Ultra Distro ISO");
MakeUltraDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO");
#endif
#if MAKE_ULTRA_RS
TOSProgress("Make Ultra RedSea Distro ISO");
MakeUltraRedSeaDistro;
DocClear;
Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSUltraRS.ISO");
#endif
#if MAKE_DBG #if MAKE_DBG
TOSProgress("Make Dbg Distro ISO"); TOSProgress("Make Dbg Distro ISO");
MakeDbgDistro; MakeDbgDistro;
DocClear; DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO"); Move(TOS_ISO_NAME,"D:/TOS_Dbg.ISO");
#endif #endif
#if MAKE_STAFF #if MAKE_STAFF
TOSProgress("Make Staff Distro ISO"); TOSProgress("Make Staff Distro ISO");
MakeStaffDistro; MakeStaffDistro;
DocClear; DocClear;
Move(TOS_ISO_NAME,"D:/Wb/TempleOSStaff.ISO"); Move(TOS_ISO_NAME,"D:/TOS_Staff.ISO");
#endif
#if MAKE_SUP1
TOSProgress("Make Supplemental #1 ISO");
RedSeaISO("D:/Wb/TempleOSSup1","C:/Home/Sup1");
#endif
#if MAKE_WEB
TOSProgress("Make www.templeos.org ISO");
RedSeaISO("D:/Wb/TempleOSWeb","C:/Home/Web");
#endif
#if MAKE_BOOKS1
TOSProgress("Make Books #1 ISO");
RedSeaISO("D:/Wb/TempleOSBooks1","C:/Home/Books1");
#endif
#if MAKE_BOOKS2
TOSProgress("Make Books #2 ISO");
RedSeaISO("D:/Wb/TempleOSBooks2","C:/Home/Books2");
#endif #endif
UpdateISODocDefines; UpdateISODocDefines;
@@ -532,21 +301,6 @@ U0 TOSRegen3()
if (LinkChk) if (LinkChk)
throw; throw;
DocClear;
TOSProgress("Make Symbol Files");
MakeSymFiles;
DocClear;
TOSProgress("Freshen WebSite");
FreshenSite;
#if PROFANITY_CHK
DocClear;
TOSProgress("Check WebSite for Profanity");
if (TOSProfanity)
throw;
#endif
TOSProgress("Find /Home"); TOSProgress("Find /Home");
slash_home=F2("/Home","-i+la"); slash_home=F2("/Home","-i+la");
@@ -563,53 +317,18 @@ U0 TOSRegen3()
public U0 TOSPreRegen() public U0 TOSPreRegen()
{//Copy bookmarks and bins from D:/Home/Sup1 to C:/Home/Sup1 {//Copy bookmarks and bins from D:/Home/Sup1 to C:/Home/Sup1
Copy("D:/Home/Private/*","C:/Home/Private"); Copy("D:/Home/" INS_REG_PERSONAL_INITIALS "/*",
Copy("D:/Home/Sup1/Sup1Blog/Bookmarks.html","C:/Home/Sup1/Sup1Blog"); "C:/Home/" INS_REG_PERSONAL_INITIALS);
Del("C:/Home/Sup1/Sup1Bin/*"); DelTree("C:/Home/Sup1/Sup1Bin");
Copy("D:/Home/Sup1/Sup1Bin/*","C:/Home/Sup1/Sup1Bin"); CopyTree("D:/Home/Sup1/Sup1Bin","C:/Home/Sup1/Sup1Bin");
Copy("D:/Home/Sup1/Sup1CodeScraps/Comm/TOSSocket*", Copy("D:/Home/Sup1/Sup1CodeScraps/Comm/TOSSocket*",
"C:/Home/Sup1/Sup1CodeScraps/Comm"); "C:/Home/Sup1/Sup1CodeScraps/Comm");
Copy("D:/Home/Sup1/Sup1Bin/God*","C:/Linux"); DelTree("C:/Linux");
} CopyTree("D:/Linux","C:/Linux");
public U0 TOSHomeIn()
{//Copy D:/Home to C:/Home
DelTree("C:/Home");
CopyTree("D:/Home","C:/Home");
}
public U0 TOSHomeOut()
{//Copy C:/Home to D:/Home
DelTree("D:/Home");
CopyTree("C:/Home","D:/Home");
}
public U0 TOSSongsIn()
{//Copy songs from D:/Home/Sup1 to C:/Home/Sup1
Del("C:/Home/Sup1/Sup1Hymns/*");
Del("C:/Home/Sup1/Sup1Songs/*");
Copy("D:/Home/Sup1/Sup1Hymns/*","C:/Home/Sup1/Sup1Hymns");
Copy("D:/Home/Sup1/Sup1Songs/*","C:/Home/Sup1/Sup1Songs");
}
public U0 TOSSongsOut()
{//Copy songs from C:/Home/Sup1 to D:/Home/Sup1
Del("D:/Home/Sup1/Sup1Hymns/*");
Del("D:/Home/Sup1/Sup1Songs/*");
Copy("C:/Home/Sup1/Sup1Hymns/*","D:/Home/Sup1/Sup1Hymns");
Copy("C:/Home/Sup1/Sup1Songs/*","D:/Home/Sup1/Sup1Songs");
}
U0 TOSRegen2()
{
TOSChgLog; //$LK,"::/Doc/ChgLog.DD"$ datetime matches Kernel $LK,"sys_compile_time",A="MN:sys_compile_time"$.
TOSBootHDIns('C');
Once("TOSRegen3;");
BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot new Kernel and Compiler.
} }
public U0 TOSRegen() public U0 TOSRegen()
{//Generate distro ISO's and website image, D:/Wb. {//Generate distro ISO's
TOSBootHDIns('C'); TOSBootHDIns('C');
Once("TOSRegen2;"); Once("TOSRegen2;");
BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot to load $LK,"TOS_CFG",A="PF:::/Demo/AcctExample/TOS/TOSCfg.HC,TOS_CFG"$. BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot to load $LK,"TOS_CFG",A="PF:::/Demo/AcctExample/TOS/TOSCfg.HC,TOS_CFG"$.
+77 -51
View File
@@ -21,7 +21,7 @@
class CRandExtDec5Form class CRandExtDec5Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n"; U8 rnd0[512] format "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
@@ -39,43 +39,43 @@ class CRandExtDec5Form
class CHexWordForm class CHexWordForm
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; U8 rnd0[512] format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n";
U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; U8 rnd1[512] format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; U8 rnd2[512] format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; U8 rnd3[512] format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; U8 rnd4[512] format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; U8 rnd5[512] format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; U8 rnd6[512] format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; U8 rnd7[512] format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; U8 rnd8[512] format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; U8 rnd9[512] format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; U8 rndA[512] format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; U8 rndB[512] format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
I64 cert; I64 cert;
}; };
class CNISTBeaconHexWordForm class CNISTBeaconHexWordForm
{ {
I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; I64 timestamp format "$$DA,A=\"TimeStamp:%d\"$$\n";
U8 rnd0[512] fmtstr "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; U8 rnd0[512] format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n";
U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; U8 rnd1[512] format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n";
U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; U8 rnd2[512] format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n";
U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; U8 rnd3[512] format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n";
U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; U8 rnd4[512] format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n";
U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; U8 rnd5[512] format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n";
U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; U8 rnd6[512] format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n";
U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; U8 rnd7[512] format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n";
U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; U8 rnd8[512] format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n";
U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; U8 rnd9[512] format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n";
U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; U8 rndA[512] format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n";
U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; U8 rndB[512] format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n";
I64 cert; I64 cert;
}; };
class CRandHex5Form class CRandHex5Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=5," U8 rnd0[512] format "$$DA-P-TRM,LEN=5,"
"A=\"Line (5-Digit Hex):%5s\"$$\n"; "A=\"Line (5-Digit Hex):%5s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -94,7 +94,7 @@ class CRandHex5Form
class CRandHex8Form class CRandHex8Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=8," U8 rnd0[512] format "$$DA-P-TRM,LEN=8,"
"A=\"Line (8-Digit Hex):%8s\"$$\n"; "A=\"Line (8-Digit Hex):%8s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -113,7 +113,7 @@ class CRandHex8Form
class CMoviesForm class CMoviesForm
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] format "$$DA-P,"
"A=\"Movie #1-100 (2 Decimal Digits from Hex):%s\"$$\n"; "A=\"Movie #1-100 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -132,7 +132,7 @@ class CMoviesForm
class CPaintings100Form class CPaintings100Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] format "$$DA-P,"
"A=\"Painting #00-99 (2 Decimal Digits from Hex):%s\"$$\n"; "A=\"Painting #00-99 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -151,7 +151,7 @@ class CPaintings100Form
class CPaintings1000Form class CPaintings1000Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] format "$$DA-P,"
"A=\"Painting #000-999 (3 Decimal Digits from Hex):%s\"$$\n"; "A=\"Painting #000-999 (3 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -170,7 +170,7 @@ class CPaintings1000Form
class CPoems100Form class CPoems100Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] format "$$DA-P,"
"A=\"Poems #00-99 (2 Decimal Digits from Hex):%s\"$$\n"; "A=\"Poems #00-99 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -189,7 +189,7 @@ class CPoems100Form
class CMetallicaForm class CMetallicaForm
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P," U8 rnd0[512] format "$$DA-P,"
"A=\"Song #1-99 (2 Decimal Digits from Hex):%s\"$$\n"; "A=\"Song #1-99 (2 Decimal Digits from Hex):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
@@ -208,7 +208,7 @@ class CMetallicaForm
class CCertRandDec5Form class CCertRandDec5Form
{ {
I64 timestamp; I64 timestamp;
U8 rnd0[512] fmtstr "$$DA-P,A=\"Line (Dec):%s\"$$\n"; U8 rnd0[512] format "$$DA-P,A=\"Line (Dec):%s\"$$\n";
U8 rnd1[512]; U8 rnd1[512];
U8 rnd2[512]; U8 rnd2[512];
U8 rnd3[512]; U8 rnd3[512];
@@ -220,57 +220,83 @@ class CCertRandDec5Form
U8 rnd9[512]; U8 rnd9[512];
U8 rndA[512]; U8 rndA[512];
U8 rndB[512]; U8 rndB[512];
I64 cert fmtstr "$$DA,A=\"Certificate:%d\"$$\n"; I64 cert format "$$DA,A=\"Certificate:%d\"$$\n";
}; };
class CGodVideoForm class CGodVideoForm
{ {
U8 title[STR_LEN] fmtstr "$$DA-P,A=\"Title:%s\"$$\n"; U8 title[STR_LEN] format "$$DA-P,A=\"Title:%s\"$$\n";
U8 serial[STR_LEN] fmtstr "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; U8 serial[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n";
I64 min fmtstr "$$DA,A=\"Minutes:%d\"$$\n"; I64 min format "$$DA,A=\"Minutes:%d\"$$\n";
I64 sec fmtstr "$$DA,A=\"Seconds:%d\"$$\n"; I64 sec format "$$DA,A=\"Seconds:%d\"$$\n";
}; };
class CWebBibleForm class CWebBibleForm
{ {
U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n";
U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Bible Passage:%s\"$$\n"; U8 special[STR_LEN] format "$$DA-P,A=\"Bible Passage:%s\"$$\n";
I64 min; I64 min;
I64 sec; I64 sec;
}; };
class CYouTubeForm class CYouTubeForm
{ {
U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Title:%s\"$$\n"; U8 tag[STR_LEN] format "$$DA-P,A=\"Title:%s\"$$\n";
U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; U8 special[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n";
I64 min fmtstr "$$DA,A=\"Minutes:%d\"$$\n"; I64 min format "$$DA,A=\"Minutes:%d\"$$\n";
I64 sec fmtstr "$$DA,A=\"Seconds:%d\"$$\n"; I64 sec format "$$DA,A=\"Seconds:%d\"$$\n";
}; };
class CImgurForm class CImgurForm
{ {
U8 tag[STR_LEN]; U8 tag[STR_LEN];
U8 special[STR_LEN] fmtstr "$$DA-P,A=\"SerialNum:%s\"$$\n"; U8 special[STR_LEN] format "$$DA-P,A=\"SerialNum:%s\"$$\n";
I64 min fmtstr "$$DA,A=\"Width :%d\"$$\n"; I64 min format "$$DA,A=\"Width :%d\"$$\n";
I64 sec fmtstr "$$DA,A=\"Height :%d\"$$\n"; I64 sec format "$$DA,A=\"Height :%d\"$$\n";
}; };
class CWikipediaForm class CWikipediaForm
{ {
U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n";
U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Index :%s\"$$\n"; U8 special[STR_LEN] format "$$DA-P,A=\"Index :%s\"$$\n";
I64 min; I64 min;
I64 sec; I64 sec;
}; };
class CWebBookMarkForm class CWebBookMarkForm
{ {
U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n";
U8 special[STR_LEN]; U8 special[STR_LEN];
I64 min; I64 min;
I64 sec; I64 sec;
}; };
DefineLstLoad("ST_FAMLY_PHOTOS","Family1_58-78\0Family2_78-86\0"
"Family3_86-99\0Family4_99\0");
class CFamilyPhotoForm
{
I64 volume format "$$LS,D=\"ST_FAMLY_PHOTOS\"$$\n";
I64 part format "$$DA,A=\"Part :%d\"$$\n";
U8 picture[STR_LEN] format "$$DA-P,A=\"Picture:%s\"$$\n";
I64 width format "$$GREEN$$640x427 or 640x960$$FG$$\n"
"$$DA,A=\"Width :%d\"$$\n";
I64 height format "$$DA,A=\"Height :%d\"$$\n";
};
class CBlogImgForm
{
U8 picture[STR_LEN] format "$$DA-P,A=\"Picture:%s\"$$\n";
I64 width format "$$DA,A=\"Width :%d\"$$\n";
I64 height format "$$DA,A=\"Height :%d\"$$\n";
};
class CBlogVideoForm
{
U8 video[STR_LEN] format "$$DA-P,A=\"Video:%s\"$$\n";
Bool big format "$$CB,\"Big\"$$\n";
};
extern U0 FreshenBlog(); extern U0 FreshenBlog();
extern U0 GodBooksPassageU32(U32 rand_u32,U8 *files_find_mask, extern U0 GodBooksPassageU32(U32 rand_u32,U8 *files_find_mask,
U8 *file_mask="*",I64 len=512,I64 verbosity=GBP_MEDIUM); U8 *file_mask="*",I64 len=512,I64 verbosity=GBP_MEDIUM);
+47 -132
View File
@@ -1,64 +1,41 @@
#help_index "Misc/TOS" #help_index "Misc/TOS"
#define VIDEO_FRAME_RATE 29.97
#define FG_JUST_AUDIO 0
#define FG_BOOT_DRV 1
#define FG_RAM_DRV 2
I64 fg_mode=FG_RAM_DRV;
Bool fg_on =FALSE; Bool fg_on =FALSE;
U0 FrameGrabberTask(I64) I64 CopyVideo(Bool reverb)
{//#!/bin/bash
//for f in ./ScrnShots/*.Z; do ./Bin/TOSZ $$f; done
//ffmpeg -r 8 -i VID%05d.BMP -y Movie.avi
I64 frame_num=0;
U8 buf[STR_LEN],buf2[STR_LEN],*st_dir;
F64 end_time=tS;
Silent; //no output to scrn
if (fg_mode==FG_RAM_DRV)
st_dir="B:/Tmp/ScrnShots";
else
st_dir="::/Tmp/ScrnShots";
DirMk(st_dir);
while (fg_on) {
StrPrint(buf,"%s/VID%05d.BMP.Z",st_dir,frame_num++);
StrCpy(buf2,buf);
BMPScrnCapture(buf);
while (TRUE) {
end_time+=1.0/VIDEO_FRAME_RATE;
if (end_time<tS) {
StrPrint(buf,"%s/VID%05d.BMP.Z",st_dir,frame_num++);
Copy(buf2,buf);
} else
break;
}
SleepUntil(cnts.jiffies+(end_time-tS)*JIFFY_FREQ);
}
}
I64 CopyVideo()
{ {
I64 res=0; I64 res=0;
Del("D:/Tmp/*.SND"); F64 delay=0,intensity=0;
if (fg_mode==FG_JUST_AUDIO) Bool old_silent=Silent;
SndFileCreate("D:/Tmp/Audio",0.115,0.0,WF_SQUARE,0.45,0.35,2.5); if (reverb) {
else { delay=0.45;
SndFileCreate("D:/Tmp/Audio",0.115,0.0,WF_SQUARE,0.45,0.35); intensity=0.35;
DelTree("D:/Tmp/ScrnShots");
if (fg_mode==FG_RAM_DRV) {
res=CopyTree("B:/Tmp/ScrnShots","D:/Tmp/ScrnShots");
"Unused Space: %12.6fMeg\n",DrvUnused('B')/1024.0/1024.0;
} else
res=CopyTree("::/Tmp/ScrnShots","D:/Tmp/ScrnShots");
"$$BK,1$$Files Copied:%d$$BK,0$$ Time:%8.3fm\n",
res,res/60.0/VIDEO_FRAME_RATE;
} }
Del("D:/Tmp/*.SND");
Del("D:/Tmp/*.MV");
Silent(old_silent);
RunFile("~/Sup1/Sup1Snd/SndFile",,
"D:/Tmp/AUD%03d.SND",0.115,0.0,1,delay,intensity,0.185);
GR2MV("D:/Tmp/VID%03d.MV","B:/Tmp","+d");
return res; return res;
} }
public U0 FrameGrabberToggle() #help_index "Misc/TOS"
{//The frame grabber saves BMP files to D:/Tmp/ScrnShots. U0 DelScrnShots()
{
Bool old_silent=Silent;
DelTree("B:/Tmp");
DirMk("B:/Tmp");
Del("D:/Tmp/*.SND");
Del("D:/Tmp/*.MV");
Del("C:/Tmp/*.SND");
Del("C:/Tmp/*.MV");
Silent(old_silent);
}
public U0 FrameGrabberToggle(Bool sync_tone,Bool tos_theme,
Bool reverb,Bool just_audio=FALSE)
{//The frame grabber saves GR files to B:/Tmp.
static F64 last_time=0; static F64 last_time=0;
if (tS-last_time>3.0) { if (tS-last_time>3.0) {
last_time=tS; last_time=tS;
@@ -66,34 +43,42 @@ public U0 FrameGrabberToggle()
fg_on=FALSE; fg_on=FALSE;
Snd; Snd;
wall->record=snd.record=FALSE; wall->record=snd.record=FALSE;
Sleep(1000); ScrnCast(OFF);
User("CopyVideo;Exit;\n"); User("CopyVideo(%d);Exit;\n",reverb);
} else { } else {
DelScrnShots;
fg_on=TRUE; fg_on=TRUE;
if (fg_mode!=FG_JUST_AUDIO) if (!just_audio)
Spawn(&FrameGrabberTask,NULL,"Frame Grabber"); ScrnCast(ON);
wall->record=snd.record=TRUE; wall->record=snd.record=TRUE;
Snd; Snd;
if (sync_tone) {Beep;}
if (tos_theme) {User("ExeFile(\"~/TOS/TOSTheme\");Exit;\n");}
} }
} }
} }
public U0 JukeSong(I64 num) public U0 JukeSong(I64 num,I64 passes=2)
{//Make movie of one song. {//Make movie of one song.
if (!fg_on) if (!fg_on)
FrameGrabberToggle; FrameGrabberToggle(FALSE,FALSE,FALSE);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,num,num+1); JukeSongsPuppet("~/Sup1/Sup1Hymns",passes,num,num+1);
if (fg_on) if (fg_on)
FrameGrabberToggle; FrameGrabberToggle(FALSE,FALSE,TRUE);
} }
public U0 JukeLines(I64 start_line,I64 end_line) public U0 JukeLines(I64 start_line,I64 end_line)
{//Make movie of many lines of songs. {//Make movie of many lines of songs, starting at 0.
if (!fg_on) if (!fg_on)
FrameGrabberToggle; FrameGrabberToggle(FALSE,FALSE,FALSE);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,start_line*5,end_line*5); JukeSongsPuppet("~/Sup1/Sup1Hymns",,start_line*5,end_line*5);
if (fg_on) if (fg_on)
FrameGrabberToggle; FrameGrabberToggle(FALSE,FALSE,TRUE);
}
public U0 TADHymn(I64 num)
{//Make 2-lines of songs movie starting at 1.
JukeLines((num-1)*2,num*2);
} }
public U0 DskChkAll() public U0 DskChkAll()
@@ -150,41 +135,6 @@ public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL)
return doc; return doc;
} }
public U0 BMP2Doc(U8 *_in_name,U8 *_out_name=NULL)
{//Use OCR to make a text DolDoc from BMP file.
U8 *in_name,*out_name;
I64 dx,dy,score,best_score=I64_MAX;
CDC *dc;
CDoc *doc;
in_name=ExtDft(_in_name,"BMP");
if (_out_name)
out_name=ExtDft(_out_name,"DD.Z");
else
out_name=ExtChg(_in_name,"DD.Z");
if (dc=BMPRead(in_name)) {
for (dy=-3;dy<=4;dy++)
for (dx=-3;dx<=4;dx++) {
doc=DC2Doc(dc,dx,dy,&score);
if (score<best_score) {
best_score=score;
StrCpy(&doc->filename.name,out_name);
DocWrite(doc);
}
DocDel(doc);
}
}
Free(in_name);
Free(out_name);
}
U0 TOSTheme()
{
if (!fg_on)
PopUp("Sleep(50);FrameGrabberToggle;");
ExeFile("~/Sup1/Sup1Graphics/TOS/TOSTheme.HC");
DocClear;
}
#define MEM_TEST_SIZE 1024*1024 #define MEM_TEST_SIZE 1024*1024
U0 MemTest() U0 MemTest()
{ {
@@ -202,38 +152,3 @@ U0 MemTest()
Yield; Yield;
} }
} }
public I64 Profanity(
U8 *needle_filename="~/Sup1/Sup1Blog/Profanity.DD.Z",
U8 *files_find_mask="/*",U8 *fu_flags=NULL)
{//Scan for profanity.
CCmpCtrl *cc;
I64 res=0;
if (FileFind(needle_filename)) {
cc=CmpCtrlNew(MStrPrint("#include \"%s\"",needle_filename));
while (Lex(cc))
if (cc->token==TK_IDENT)
res+=Find(cc->cur_str,files_find_mask,fu_flags);
CmpCtrlDel(cc);
}
return res;
}
U0 TOSChgLog2()
{
InStr("\"Ed(\\\"::/Doc/ChgLog.DD.Z\\\");\n\";
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
Msg(MSG_KEY_DOWN_UP,CH_CTRLY,0);
Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT);
Msg(MSG_KEY_DOWN_UP,CH_ESC,0);"
"\"Exit;\n\";");
}
public U0 TOSChgLog()
{//Opdate ChgLog file.
User("TOSChgLog2;\n");
}
+2 -2
View File
@@ -76,5 +76,5 @@ The flag arrays $LK,"doldoc.type_flags_form",A="MN:CDolDocGlbls"$, etc
are useful. are useful.
*/ */
DocProfile("::/Doc/ChgLog.DD",0); DocProfile("::/Doc/Welcome.DD",0);
DocProfile("::/Doc/ChgLog.DD",DOCF_PLAIN_TEXT); DocProfile("::/Doc/Welcome.DD",DOCF_PLAIN_TEXT);
+11 -11
View File
@@ -1,16 +1,16 @@
class FDStruct class FDStruct
{//Use <CTRL-l> and sel "Data", "List" or "Check Box" {//Use <CTRL-l> and sel "Data", "List" or "Check Box"
//to generate the fmtstrs. //to generate the formats.
F64 num1 fmtstr "$$DA-TRM,A=\"Float 1:%12.8f\"$$\n"; F64 num1 format "$$DA-TRM,A=\"Float 1:%12.8f\"$$\n";
F64 num2 fmtstr "$$DA-TRM,A=\"Float 2:%12e\"$$\n"; F64 num2 format "$$DA-TRM,A=\"Float 2:%12e\"$$\n";
I64 num3 fmtstr "$$DA-TRM,A=\"Int 1:0x%016X\"$$\n"; I64 num3 format "$$DA-TRM,A=\"Int 1:0x%016X\"$$\n";
I64 num4 fmtstr "$$DA-TRM,A=\"Int 2:%12d\"$$\n"; I64 num4 format "$$DA-TRM,A=\"Int 2:%12d\"$$\n";
I64 type fmtstr "$$LS,D=\"ST_PERSON_TYPE\"$$\n"; I64 type format "$$LS,D=\"ST_PERSON_TYPE\"$$\n";
U8 name[32] fmtstr "$$DA-P,A=\"Name :%s\"$$\n"; U8 name[32] format "$$DA-P,A=\"Name :%s\"$$\n";
U8 *address1 fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. U8 *address1 format "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *.
U8 *address2 fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. U8 *address2 format "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *.
CDate datetime fmtstr "$$DA-TRM,A=\"Date :%8D\"$$\n"; CDate datetime format "$$DA-TRM,A=\"Date :%8D\"$$\n";
Bool check fmtstr "$$CB,\"Check\"$$\n"; Bool check format "$$CB,\"Check\"$$\n";
}; };
U0 FormDemo() U0 FormDemo()
+3 -3
View File
@@ -3,9 +3,9 @@
#define DB_ACCT_BLKS 1 #define DB_ACCT_BLKS 1
class Acct class Acct
{//Use <CTRL-l> to help generate fmtstrs. {//Use <CTRL-l> to help generate formats.
U8 name[32] fmtstr "$$DA-P,LEN=32,A=\"Name:%s\"$$\n"; U8 name[32] format "$$DA-P,LEN=32,A=\"Name:%s\"$$\n";
U8 addr[64] fmtstr "$$DA-P,LEN=64,A=\"Addr:%s\"$$\n"; U8 addr[64] format "$$DA-P,LEN=64,A=\"Addr:%s\"$$\n";
U8 pad[DB_ACCT_BLKS*BLK_SIZE-64-32]; U8 pad[DB_ACCT_BLKS*BLK_SIZE-64-32];
}; };
Binary file not shown.
+1 -1
View File
@@ -262,7 +262,7 @@ ti_restart:
for (j=0;j<UNITS_NUM/2;j++) { for (j=0;j<UNITS_NUM/2;j++) {
if (i!=j) { if (i!=j) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y); dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (u[j].x<=u[i].x && dd<best_dd) { if ((u[j].x<u[i].x || u[j].king) && dd<best_dd ) {
best_dd=dd; best_dd=dd;
best=j; best=j;
} }
+1 -1
View File
@@ -125,7 +125,7 @@ U0 FontEd()
break; break;
case MSG_MS_L_DOWN: case MSG_MS_L_DOWN:
case MSG_MS_R_DOWN: case MSG_MS_R_DOWN:
if (0<=arg1<FONT_WIDTH*16 && FONT_HEIGHT*2<=arg2<FONT_HEIGHT*16) { if (0<=arg1<FONT_WIDTH*16 && 0<=arg2-2*FONT_HEIGHT<FONT_HEIGHT*16) {
cur_ch=(arg2/FONT_HEIGHT-2)*16+arg1/FONT_WIDTH; cur_ch=(arg2/FONT_HEIGHT-2)*16+arg1/FONT_WIDTH;
break; break;
} //fall through } //fall through
+6 -186
View File
@@ -1,191 +1,11 @@
$WW,1$$FG,5$$TX+CX,"The Temple Operating System"$$FG,0$ $WW,1$$FG,5$$TX+CX,"The Temple Operating System",HTML="http://www.templeos.org"$$FG,0$
$FG,4$
$LK,"Download Operating System",A="FI:~/Web/DownloadOS.DD"$ $LK,"App Store",A="FI:~/Web/AppStore/AppStore.DD"$
$FG,4$$TX,"Terry's Linux Bash Scripts for QEMU, VMware and VirtualBox",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Bin"$ $FG,4$$TX,"Downloads (100% Public Domain)",HTML="http://www.templeos.org/files"$$FG$
$LK,"Screen Shots",A="FI:~/Web/ScrnShots.DD"$ $LK,"Instructional Videos",A="FI:~/Web/TOSVideos.DD"$ TempleOS is a free, public domain, open source, x86_64, non-preemptive multi-tasking, multi-cored, ring-0-only, single-address-map (identity-mapped), non-networked, PC operating system. Paging is, basically, not used.
$LK,"Introduction",A="FI:::/Doc/Welcome.DD"$ $LK,"F.A.Q.",A="FI:::/Doc/FAQ.DD"$ The CIA obsfucates to foil India, China, Russia and Korea. They make things more complicated than necessary. TempleOS is more simple than necessary. It is obnoxiously simple. If you look at this $TX,"\"Hello World\" joke",HTML="http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html"$, you can see why I capped the line count of TempleOS at 100,000.
$LK,"Features",A="FI:::/Doc/Features.DD"$ $LK,"The Charter",A="FI:::/Doc/Charter.DD"$ God said TempleOS must be perfect, so backward compatibility is not promised.
$LK,"Source Code By File",A="FF:~/Web/LineRep.DD,KStart16.HC"$ $TX,"Source Code (Raw)",HTML="http://www.templeos.org/Wb/"$ I, Terry Davis, wrote all $TX,"81,281",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.9",D="DD_TEMPLEOS_AGE"$ years, including the 64-bit compiler. I have been a professional operating system developer since 1990 when I worked on Ticketmaster's VAX OS.
$TX,"Source Code By Sym",HTML="http://www.templeos.org/Wb/Home/Web/SymsAlpha.html"$ $TX,"Source Code By Address",HTML="http://www.templeos.org/Wb/Home/Web/SymsAddress.html"$
$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"$
$FG$
$LK,"Change Log",A="FI:::/Doc/ChgLog.DD"$ $LK,"Terry Davis",A="FI:~/Web/TAD/TAD.DD"$
$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>"$
TempleOS is a free, public domain, open source, $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, non-preemptive multi-tasking, multi-cored, $FG,4$$TX,"ring-0-only",HTML="http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$, single-address-map ($FG,4$$TX,"identity-mapped",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$), non-networked, PC operating system. Paging is, basically, not used.
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.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.
A troll might ask, "Why not just use $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$ was 16-bit, with segmentation -- awful! TempleOS is 64-bit, flat, non-segmented and multi-cored. It has a C64-like shell with $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$, a dialect of C/C++, instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned char source code to support European languages. Also, the source code supports binary sprite graphics.
A troll might say, "It can crash!" We used $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of $FG,4$$TX,"ring-0-only",HTML="http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX,"identity-mapping",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory.
It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX,"Mapping the Commodore 64",HTML="http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports.
TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is $FG,4$$TX,"identity-mapped",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system?
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/AIEJjpVlZu0\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/AIEJjpVlZu0\" 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/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,"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.
* "Linux" is a trademark owned by Linus Torvalds.
* "Windows" and "DOS" are trademarks owned by MicroSoft Corp.
-5
View File
@@ -12,11 +12,6 @@ http://www.templeos.org if you want file that come on the
TempleOS distribution. TempleOS distribution.
You can pass html meta data as args to $LK,"ToHtml",A="FF:::/Demo/ToHtmlToTXTDemo/ToHtml.HC,ToHtml"$(). You can pass html meta data as args to $LK,"ToHtml",A="FF:::/Demo/ToHtmlToTXTDemo/ToHtml.HC,ToHtml"$().
If you want to blog like I do, see these files...
$LK,"::/Demo/AcctExample/TOS/TOSToHtml.HC"$
$LK,"::/Demo/AcctExample/HomeKeyPlugIns.HC"$
$LK,"::/Demo/AcctExample/TOS/TOSHolySpirit.HC"$
*/ */
Cd(__DIR__);; Cd(__DIR__);;
+51 -58
View File
@@ -1,11 +1,5 @@
#define DOWNLOAD_FILE1 "TempleOSCD.ISO" #define DOWNLOAD_FILE1 "TOS_Distro.ISO"
#define DOWNLOAD_FILE1_SIZE 17000000 #define DOWNLOAD_FILE1_SIZE 16000000
#define DOWNLOAD_FILE2 "TempleOSUltra.ISO"
#define DOWNLOAD_FILE2_SIZE 1900000
#define DOWNLOAD_FILE3 "TempleOSCDRS.ISO"
#define DOWNLOAD_FILE3_SIZE 16000000
#define DOWNLOAD_FILE4 "TempleOSUltraRS.ISO"
#define DOWNLOAD_FILE4_SIZE 1600000
#define HOURS_MAX (24*3) #define HOURS_MAX (24*3)
@@ -39,7 +33,7 @@ U0 LogStructDel(LogStruct *tmplg)
Free(tmplg); Free(tmplg);
} }
U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end) U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_dstart,CDate *_dend)
{ {
CDoc *doc=DocRead(name, CDoc *doc=DocRead(name,
DOCF_PLAIN_TEXT_TABS|DOCF_DBL_DOLLARS|DOCF_NO_CURSOR); DOCF_PLAIN_TEXT_TABS|DOCF_DBL_DOLLARS|DOCF_NO_CURSOR);
@@ -84,9 +78,10 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
if (*src++!=CH_SPACE) throw; if (*src++!=CH_SPACE) throw;
i=Str2I64(src,10,&src); i=Str2I64(src,10,&src);
tmplg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60; tmplg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60;
if (!(Str2Date("1/1/2017")<=tmplg->datetime<Str2Date("1/1/2050")))
if (tmplg->datetime<*_start) *_start=tmplg->datetime; throw;
if (tmplg->datetime>*_end) *_end =tmplg->datetime; if (tmplg->datetime<*_dstart) *_dstart=tmplg->datetime;
if (tmplg->datetime>*_dend) *_dend =tmplg->datetime;
do if (!*src) throw; do if (!*src) throw;
while (*src++!=']'); while (*src++!=']');
@@ -133,13 +128,13 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
DocDel(doc); DocDel(doc);
} }
LogStruct *PrsLogFiles(U8 *files_find_mask,CDate *_start,CDate *_end) LogStruct *PrsLogFiles(U8 *files_find_mask,CDate *_dstart,CDate *_dend)
{ {
LogStruct *head=CAlloc(sizeof(LogStruct)); LogStruct *head=CAlloc(sizeof(LogStruct));
CDirEntry *tmpde=FilesFind(files_find_mask),*tmpde1=tmpde; CDirEntry *tmpde=FilesFind(files_find_mask),*tmpde1=tmpde;
QueInit(head); QueInit(head);
while (tmpde) { while (tmpde) {
PrsSingleLogFile(head,tmpde->full_name,_start,_end); PrsSingleLogFile(head,tmpde->full_name,_dstart,_dend);
tmpde=tmpde->next; tmpde=tmpde->next;
} }
DirTreeDel(tmpde1); DirTreeDel(tmpde1);
@@ -181,13 +176,7 @@ U0 BlockIPNuip(LogStruct *head)
QueInit(&blocked_head); QueInit(&blocked_head);
BlockedStructAdd(&blocked_head,70<<24+173<<16+110<<8+214); BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+6);
BlockedStructAdd(&blocked_head,68<<24+224<<16+130<<8+96);
BlockedStructAdd(&blocked_head,68<<24+96<<16+100<<8+126);
BlockedStructAdd(&blocked_head,68<<24+96<<16+110<<8+213);
BlockedStructAdd(&blocked_head,68<<24+96<<16+242<<8+108);
BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+11);
BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+139);
//pass 1: collect robot lst //pass 1: collect robot lst
while (tmplg!=head) { while (tmplg!=head) {
@@ -214,13 +203,7 @@ U0 BlockIPNuip(LogStruct *head)
Bool IsDownLoad(LogStruct *tmplg) Bool IsDownLoad(LogStruct *tmplg)
{ {
if (StrMatch(DOWNLOAD_FILE1,tmplg->file)&&tmplg->size>= if (StrMatch(DOWNLOAD_FILE1,tmplg->file)&&tmplg->size>=
DOWNLOAD_FILE1_SIZE || DOWNLOAD_FILE1_SIZE)
StrMatch(DOWNLOAD_FILE2,tmplg->file)&&tmplg->size>=
DOWNLOAD_FILE2_SIZE ||
StrMatch(DOWNLOAD_FILE3,tmplg->file)&&tmplg->size>=
DOWNLOAD_FILE3_SIZE ||
StrMatch(DOWNLOAD_FILE4,tmplg->file)&&tmplg->size>=
DOWNLOAD_FILE4_SIZE)
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@@ -228,9 +211,15 @@ Bool IsDownLoad(LogStruct *tmplg)
Bool IsIndex(LogStruct *tmplg) Bool IsIndex(LogStruct *tmplg)
{ {
if (!StrCmp(tmplg->file,"/index.html") || if (!StrCmp(tmplg->file,"/index.html") || !StrCmp(tmplg->file,"/"))
!StrNCmp(tmplg->file+StrLen(tmplg->file)-14,"/TempleOS.html",14) || return TRUE;
!StrCmp(tmplg->file,"/")) else
return FALSE;
}
Bool IsKeeper(LogStruct *tmplg,CDate dstart,CDate dend)
{
if (dstart<=tmplg->datetime<=dend && !StrOcc(tmplg->file,'?'))
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@@ -340,7 +329,7 @@ U0 FileTreeTraverse(LinkStruct *root)
} }
} }
U0 DownLoadRep(LogStruct *head,CDate start,CDate end) U0 DownLoadRep(LogStruct *head,CDate dstart,CDate dend)
{ {
I64 i,j,cnt,dups, I64 i,j,cnt,dups,
hours_start,hours_end,*hour_cnts,*dup_cnts, hours_start,hours_end,*hour_cnts,*dup_cnts,
@@ -349,11 +338,11 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
LinkStruct *link_root=NULL; LinkStruct *link_root=NULL;
CDateStruct ds; CDateStruct ds;
i=start*24;hours_start=i.u32[1]; i=dstart*24;hours_start=i.u32[1];
i=end *24;hours_end =i.u32[1]; i=dend *24;hours_end =i.u32[1];
days_start=(start+local_time_offset)>>32; days_start=(dstart+local_time_offset)>>32;
days_end =(end+local_time_offset)>>32; days_end =(dend+local_time_offset)>>32;
hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64));
dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64));
@@ -361,7 +350,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64));
dups=cnt=0; dups=cnt=0;
while (tmplg!=head) { while (tmplg!=head) {
if (start<=tmplg->datetime<=end && IsDownLoad(tmplg)) { if (IsKeeper(tmplg,dstart,dend) && IsDownLoad(tmplg)) {
i=tmplg->datetime*24; i=tmplg->datetime*24;
hour_cnts[i.u32[1]-hours_start]++; hour_cnts[i.u32[1]-hours_start]++;
day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++; day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
@@ -376,15 +365,15 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
tmplg=tmplg->next; tmplg=tmplg->next;
} }
"\n\nDownloads of /TempleOSCD.ISO\n"; "\n\nDownloads of /TOS_Distro.ISO\n";
for (i=start;i<=end;i+=1<<32) for (i=dstart;i<=dend;i+=1<<32)
"%D Dups:%5d Total:%5d Uniques:%5d\n",i, "%D Dups:%5d Total:%5d Uniques:%5d\n",i,
day_dup_cnts[(i+local_time_offset)>>32-days_start], 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_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]; day_dup_cnts[(i+local_time_offset)>>32-days_start];
"\n\nDownloads of /TempleOSCD.ISO\n" "\n\nDownloads of /TOS_Distro.ISO\n"
"'-' is a dup. '+' is not a dup.\n"; "'-' is a dup. '+' is not a dup.\n";
if (hours_end-hours_start>=HOURS_MAX) if (hours_end-hours_start>=HOURS_MAX)
i=hours_end-HOURS_MAX+1; i=hours_end-HOURS_MAX+1;
@@ -401,7 +390,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
} }
"Total:%d Dups:%d Uniques:%d\n",cnt,dups,cnt-dups; "Total:%d Dups:%d Uniques:%d\n",cnt,dups,cnt-dups;
"\n\nDownloads of /TempleOSCD.ISO\n"; "\n\nDownloads of /TOS_Distro.ISO\n";
LinkTreeTraverse(link_root); LinkTreeTraverse(link_root);
'\n'; '\n';
@@ -412,12 +401,12 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
Free(day_dup_cnts); Free(day_dup_cnts);
} }
U0 FileRep(LogStruct *head,CDate start,CDate end) U0 FileRep(LogStruct *head,CDate dstart,CDate dend)
{ {
LogStruct *tmplg=head->next; LogStruct *tmplg=head->next;
LinkStruct *file_root=NULL; LinkStruct *file_root=NULL;
while (tmplg!=head) { while (tmplg!=head) {
if (start<=tmplg->datetime<=end) if (IsKeeper(tmplg,dstart,dend))
FileTreeAdd(&file_root,tmplg); FileTreeAdd(&file_root,tmplg);
tmplg=tmplg->next; tmplg=tmplg->next;
} }
@@ -427,7 +416,7 @@ U0 FileRep(LogStruct *head,CDate start,CDate end)
FileTreeDel(file_root); FileTreeDel(file_root);
} }
U0 IndexRep(LogStruct *head,CDate start,CDate end) U0 IndexRep(LogStruct *head,CDate dstart,CDate dend)
{ {
I64 i,j,cnt,dups, I64 i,j,cnt,dups,
hours_start,hours_end,*hour_cnts,*dup_cnts, hours_start,hours_end,*hour_cnts,*dup_cnts,
@@ -436,11 +425,11 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
LinkStruct *link_root=NULL; LinkStruct *link_root=NULL;
CDateStruct ds; CDateStruct ds;
i=start*24;hours_start=i.u32[1]; i=dstart*24;hours_start=i.u32[1];
i=end *24;hours_end =i.u32[1]; i=dend *24;hours_end =i.u32[1];
days_start=(start+local_time_offset)>>32; days_start=(dstart+local_time_offset)>>32;
days_end =(end+local_time_offset)>>32; days_end =(dend+local_time_offset)>>32;
hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64));
dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64));
@@ -448,7 +437,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64));
dups=cnt=0; dups=cnt=0;
while (tmplg!=head) { while (tmplg!=head) {
if (start<=tmplg->datetime<=end && IsIndex(tmplg)) { if (IsKeeper(tmplg,dstart,dend) && IsIndex(tmplg)) {
i=tmplg->datetime*24; i=tmplg->datetime*24;
hour_cnts[i.u32[1]-hours_start]++; hour_cnts[i.u32[1]-hours_start]++;
day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++; day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
@@ -465,7 +454,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
"\n\nHits on /index.html\n" "\n\nHits on /index.html\n"
"'-' is a dup. '+' is not a dup.\n"; "'-' is a dup. '+' is not a dup.\n";
for (i=start;i<=end;i+=1<<32) for (i=dstart;i<=dend;i+=1<<32)
"%D Dups:%5d Total:%5d Uniques:%5d\n",i, "%D Dups:%5d Total:%5d Uniques:%5d\n",i,
day_dup_cnts[(i+local_time_offset)>>32-days_start], 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],
@@ -502,29 +491,33 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
U0 WebLogRep(U8 *mask,U8 *output_filename) U0 WebLogRep(U8 *mask,U8 *output_filename)
{ {
LogStruct *head; LogStruct *head;
CDate start=I64_MAX,end=I64_MIN; CDate dstart=I64_MAX,dend=I64_MIN;
DocMax; DocMax;
head=PrsLogFiles(mask,&start,&end); head=PrsLogFiles(mask,&dstart,&dend);
start=GetDate("Start(%D):",start); if (dstart>dend)
end =GetDate("End (%D):",end); PrintErr("No Data.\n");
else {
dstart=GetDate("Start(%D):",dstart);
dend =GetDate("End (%D):",dend);
BlockIPNuip(head); BlockIPNuip(head);
DocClear; DocClear;
"$$WW,0$$"; "$$WW,0$$";
IndexRep(head,start,end); IndexRep(head,dstart,dend);
FileRep(head,start,end); FileRep(head,dstart,dend);
DownLoadRep(head,start,end); DownLoadRep(head,dstart,dend);
StrCpy(DocPut->filename.name,output_filename); StrCpy(DocPut->filename.name,output_filename);
DocWrite(DocPut,TRUE); DocWrite(DocPut,TRUE);
"$$WW,1$$"; "$$WW,1$$";
}
LogLstDel(head); LogLstDel(head);
} }
#if __CMD_LINE__ #if __CMD_LINE__
Cd(__DIR__);; Cd(__DIR__);;
WebLogRep("*.LOG*","~/DemoWebLog.DD.Z"); WebLogRep("*.log*","~/DemoWebLog.DD.Z");
#endif #endif
+2 -2
View File
@@ -60,10 +60,10 @@ U0 LogScrambleDemo()
U8 *dirname; U8 *dirname;
Cd(__DIR__); Cd(__DIR__);
dirname=DirCur; dirname=DirCur;
ST_WARN_ST "This will scramble all .LOG files in '%s'.\n\n",dirname; ST_WARN_ST "This will scramble all .log files in '%s'.\n\n",dirname;
Free(dirname); Free(dirname);
if (AreYouSure) if (AreYouSure)
WebLogScramble("*.LOG*"); WebLogScramble("*.log*");
} }
LogScrambleDemo; LogScrambleDemo;
+1 -1
View File
@@ -39,7 +39,7 @@ $FG,2$LIST$FG$, $FG,2$NOLIST$FG$
$FG,2$ALIGN$FG$ $FG,4$num$FG$, $FG,4$fill_byte$FG$ $FG,2$ALIGN$FG$ $FG,4$num$FG$, $FG,4$fill_byte$FG$
Align to $FG,4$num$FG$ boundary and fill with $FG,4$fill_byte$FG$. Align to $FG,4$num$FG$ boundary and fill with $FG,4$fill_byte$FG$.
$FG,2$MODULE_ORG$FG$ $FG,4$num$FG$ $FG,2$ORG$FG$ $FG,4$num$FG$
Set code addr for JIT or set module $LK,"Load",A="MN:Load"$() addr -- has 16-byte $LK,"CBinFile",A="MN:CBinFile"$ header and patch table trailing. Set code addr for JIT or set module $LK,"Load",A="MN:Load"$() addr -- has 16-byte $LK,"CBinFile",A="MN:CBinFile"$ header and patch table trailing.
$FG,2$BINFILE$FG,4$ "FileName.BIN"$FG$; $FG,2$BINFILE$FG,4$ "FileName.BIN"$FG$;
BIN
View File
Binary file not shown.
+6 -4
View File
@@ -19,7 +19,7 @@ $ID,-5$
* TempleOS is God's official temple. Just like Solomon's temple, this is a community focal point where offerings are made and God's oracle is consulted. * TempleOS is God's official temple. Just like Solomon's temple, this is a community focal point where offerings are made and God's oracle is consulted.
* God said $FG,2$640x480 16 color$FG$ graphics is a covenant like circumcision. Children will do offerings. Think of 16 colors like the Simpson's cartoons. In the future, even if one GPU were universal, we would keep 640x480 16 color and not use GPU acceleration. Graphics operations should be transparent, not hidden in a GPU. * God said $FG,2$640x480 16 color$FG$ graphics is a covenant like circumcision. Children will do offerings. Think of 16 colors like the Simpson's cartoons. In the future, even if one GPU were universal, we would still keep 640x480 16 color and not use GPU acceleration. Graphics operations should be transparent, not hidden in a GPU.
* God said to use a single-voice 8-bit signed MIDI-like sample for sound. God does not want death screams, perhaps, because God has PTSD or soldiers have PTSD. (Imagine wounded on battlefields.) * God said to use a single-voice 8-bit signed MIDI-like sample for sound. God does not want death screams, perhaps, because God has PTSD or soldiers have PTSD. (Imagine wounded on battlefields.)
@@ -31,15 +31,17 @@ $ID,-5$
* Low line count is the highest good, so it is easy to learn the whole thing. Users should see the light at the end of the tunnel. One file system, for example, is better than many file systems. * Low line count is the highest good, so it is easy to learn the whole thing. Users should see the light at the end of the tunnel. One file system, for example, is better than many file systems.
* There is a limit of 100,000 lines of code for all time, not including applications and demos. $FG,4$Code comments count$FG$, however. Currently, there are $TX,"81,390",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code. $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit. The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell that is no longer blissful. * There is a limit of 100,000 lines of code for all time, not including applications and demos. $FG,4$Code comments count$FG$, however. Currently, there are $TX,"81,494",D="DD_TEMPLEOS_LOC"$ lines of code. $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit. The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell that is no longer blissful.
* The metric for resolving all TempleOS code governance issues is how fast the compiler compiles itself and the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$(). The $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ language should be changed to optimize this metric, as I did when I changed type casting from prefix standard C to postfix $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$, but we need a rule to prevent degenerating into a brainfuck language.
* Minimal abstraction is a goal. Sheep are fools. They always respect a design that is more complicated than another. Any genius can make it complicated. Like in physics, it takes a supra-genius to make it simple. * Minimal abstraction is a goal. Sheep are fools. They always respect a design that is more complicated than another. Any genius can make it complicated. Like in physics, it takes a supra-genius to make it simple.
* One platform. $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ PC compatibles. Desk-tops are all we design for, but laptops can tag along. * It is for one platformc -- $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles.
* All hardware access will be done through x86 IN/OUT instructions, not PCI drivers. A frame buffer for VGA is an exception. * All hardware access will be done through x86 IN/OUT instructions, not PCI drivers. A frame buffer for VGA is an exception.
* One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare for user applications and what is gained? A three bttn mouse is like a leg you cannot put weight on. * One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare for user applications and what is gained? A three buuton mouse is like a leg you cannot put weight on.
* $FG,2$Ring-0-only$FG$. Everything runs in kernel mode, including user applications. * $FG,2$Ring-0-only$FG$. Everything runs in kernel mode, including user applications.
+1 -3
View File
@@ -1,6 +1,6 @@
$WW,1$$FG,5$$TX+CX,"Credits"$$FG$ $WW,1$$FG,5$$TX+CX,"Credits"$$FG$
I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"119,241",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the past $TX,"13.4",D="DD_TEMPLEOS_AGE"$ years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders! It is public domain, not GPL. I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.8",D="DD_TEMPLEOS_AGE"$ years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders! It is public domain, not GPL.
*) $LK,"::/Kernel/FontStd.HC"$, is taken from $FG,4$$TX,"FreeDOS",HTML="http://www.freedos.org"$$FG$. It's public domain. *) $LK,"::/Kernel/FontStd.HC"$, is taken from $FG,4$$TX,"FreeDOS",HTML="http://www.freedos.org"$$FG$. It's public domain.
@@ -24,8 +24,6 @@ I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"119,241",D="DD_TEMPLEOS_LOC"$ lines
*) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.HC.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$. I'm a novice on web stuff and you helped me with html. See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$. *) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.HC.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$. I'm a novice on web stuff and you helped me with html. See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
*) I used $FG,4$$TX,"MagicISO",HTML="http://www.magiciso.com"$$FG$ to burn test CD's to help me understand the ISO9660 file system format. I mostly used the $FG,4$$TX,"ISO9660",HTML="http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html"$$FG$ spec.
*) I looked at bootable CD boot sects, but didn't learn anything, finding it easier to make my own. *) I looked at bootable CD boot sects, but didn't learn anything, finding it easier to make my own.
*) I think I got my original PC speaker code from $FG,2$Borland C$FG$. *) I think I got my original PC speaker code from $FG,2$Borland C$FG$.
+1 -3
View File
@@ -4,13 +4,11 @@ I, Terry Davis, am high priest of God's $FG,4$$TX,"official third temple",HTML="
$HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://www.youtube.com/v/RvL7T4gIJN8\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/RvL7T4gIJN8\" 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/RvL7T4gIJN8\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/RvL7T4gIJN8\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" width=\"640\" height=\"520\"></embed></object>"$
* Windows, Linux and VMware (because of mounted drives) must support $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system so I can get rid of 2,000 lines of redundant, blemished code -- FAT32 and ISO9660. God's temple must be perfect. Redundant code for multiple file systems is imperfect. For this operating system, we want low line count. More than one file system type is actually bad, just as more than one driver for the same type of device is bad. * Windows, Linux and VMware (because of mounted drives) must support $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system so I can get rid of 1,000 lines of redundant, blemished code -- FAT32. God's temple must be perfect. Redundant code for multiple file systems is imperfect. For this operating system, we want low line count. More than one file system type is actually bad, just as more than one driver for the same type of device is bad.
See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.HC"$. See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.HC"$.
$LK,"::/Kernel/BlkDev/FileSysFAT.HC"$ :974 lines for FAT32 gets eliminated. $LK,"::/Kernel/BlkDev/FileSysFAT.HC"$ :974 lines for FAT32 gets eliminated.
$LK,"::/Kernel/BlkDev/FileSysISO.HC"$ :233 lines for ISO9660 gets eliminated.
$LK,"::/Adam/Opt/Boot/DskISO9660.HC"$ :507 lines for making ISO files.
$LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk. $LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk.
* Microsoft must cancel SecureBoot because it makes dual booting impossible. TempleOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement. It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image. God said the C64/Apple II generation owned ancestral lands. VMware is like being taken off of our land and moved onto a reservation. In this case, however, it will not stand. * Microsoft must cancel SecureBoot because it makes dual booting impossible. TempleOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement. It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image. God said the C64/Apple II generation owned ancestral lands. VMware is like being taken off of our land and moved onto a reservation. In this case, however, it will not stand.
+3 -3
View File
@@ -123,7 +123,7 @@ Examples: <CTRL-t> to see
$ID,-2$$TR,"BT Bttn"$ $ID,-2$$TR,"BT Bttn"$
$ID,2$See $LK,"::/Demo/DolDoc/MenuBttn.HC"$. $ID,2$See $LK,"::/Demo/DolDoc/MenuBttn.HC"$.
$ID,-2$$TR,"DA Data"$ $ID,-2$$TR,"DA Data"$
$ID,2$Used for forms that prompt for data or just displaying a value. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$, $LK,"::/Demo/Dsk/DataBase.HC"$, and $LK,"::/Adam/DolDoc/DocWidgetWiz.HC"$. $ID,2$Used for forms that prompt for data or just displaying a value. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$, $LK,"::/Demo/Dsk/DataBase.HC"$, and $LK,"::/Adam/DolDoc/DocWidgetWiz.HC"$.
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$DA...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$. If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$DA...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
@@ -135,13 +135,13 @@ The default field length is $FG,2$LEN=64$FG$ characters. For U8 arrays[], $LK,"
The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.HC,DataTagWidth"$. The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.HC,DataTagWidth"$.
$ID,-2$$TR,"CB Check Box"$ $ID,-2$$TR,"CB Check Box"$
$ID,2$Used for forms. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$$FG$ and $LK,"CEdFindText",A="MN:CEdFindText"$. $ID,2$Used for forms. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$$FG$ and $LK,"CEdFindText",A="MN:CEdFindText"$.
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$CB...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$. If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$CB...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
The default raw data type for the $FG,2$$$CB...$$$FG$ command is $FG,2$RT=I8$FG$ which is $FG,2$Bool$FG$. $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition if you leave it set to the default. Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$. See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$(). The default raw data type for the $FG,2$$$CB...$$$FG$ command is $FG,2$RT=I8$FG$ which is $FG,2$Bool$FG$. $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition if you leave it set to the default. Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$. See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
$ID,-2$$TR,"LS List Widget"$ $ID,-2$$TR,"LS List Widget"$
$ID,2$Used for forms that prompt for data. You must specify a define list, $FG,2$D=""$FG$. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$. $ID,2$Used for forms that prompt for data. You must specify a define list, $FG,2$D=""$FG$. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$.
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$LS...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the data addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$. If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$LS...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the data addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
+2 -2
View File
@@ -1,7 +1,7 @@
$WW,1$$FG,5$$TX+CX,"Frequently Asked Questions"$$FG$ $WW,1$$FG,5$$TX+CX,"Frequently Asked Questions"$$FG$
$TR,"How come it is public domain, not GPL?"$ $TR,"How come it is public domain, not GPL?"$
$ID,2$I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"118,851",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the past $TX,"12.5",D="DD_TEMPLEOS_AGE"$ years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders! See $LK,"::/Doc/Credits.DD"$. $ID,2$I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.8",D="DD_TEMPLEOS_AGE"$ years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders! See $LK,"::/Doc/Credits.DD"$.
$ID,-2$$TR,"Shouldn't it be GNU/TempleOS?"$ $ID,-2$$TR,"Shouldn't it be GNU/TempleOS?"$
$ID,2$TempleOS executes no code not written by me at any time except for a few $FG,2$BIOS$FG$ calls for configuration. I even wrote boot-loaders, so I do not need Grub. See $LK,"::/Doc/Credits.DD"$. $ID,2$TempleOS executes no code not written by me at any time except for a few $FG,2$BIOS$FG$ calls for configuration. I even wrote boot-loaders, so I do not need Grub. See $LK,"::/Doc/Credits.DD"$.
$ID,-2$$TR,"Don't you use GNU's gcc?"$ $ID,-2$$TR,"Don't you use GNU's gcc?"$
@@ -35,7 +35,7 @@ $ID,2$TempleOS is 100% open src. All the src code is included in the distro. U
$ID,-2$$TR,"Where are object files? How do I link?"$ $ID,-2$$TR,"Where are object files? How do I link?"$
$ID,2$TempleOS does not use object files or a linker. $LK,"AOT Compile Mode",A="FF:::/Doc/Glossary.DD,AOT Compile Mode"$ is used to directly create flat binary files, $LK,"::/Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ and $LK,"::/Compiler/Compiler.BIN",A="FI:::/Compiler/Compiler.PRJ"$ with no object files and linking.$FG$ $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ place code in memory, ready to run, with no object files or linking. Linking is done when $FG,2$BIN$FG$ modules are $LK,"Load",A="MN:Load"$()ed. $ID,2$TempleOS does not use object files or a linker. $LK,"AOT Compile Mode",A="FF:::/Doc/Glossary.DD,AOT Compile Mode"$ is used to directly create flat binary files, $LK,"::/Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ and $LK,"::/Compiler/Compiler.BIN",A="FI:::/Compiler/Compiler.PRJ"$ with no object files and linking.$FG$ $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ place code in memory, ready to run, with no object files or linking. Linking is done when $FG,2$BIN$FG$ modules are $LK,"Load",A="MN:Load"$()ed.
$ID,-2$$TR,"What is the FPS refresh rate?"$ $ID,-2$$TR,"What is the FPS refresh rate?"$
$ID,2$The refresh rate is $TX,"30",D="WINMGR_FPS"$ frames-per-second. That is how often TempleOS updates scrn mem. It is not syncronized to the hardware. $ID,2$The refresh rate is $TX,"(30000.0/1001)",D="WINMGR_FPS"$ frames-per-second. That is how often TempleOS updates scrn mem. It is not syncronized to the hardware.
$ID,-2$$TR,"How does a task own the speaker?"$ $ID,-2$$TR,"How does a task own the speaker?"$
$ID,2$No task or application has a lock on the speaker so apps will interfere with each other. $ID,2$No task or application has a lock on the speaker so apps will interfere with each other.
$ID,-2$$TR,"Why does it leak memory?"$ $ID,-2$$TR,"Why does it leak memory?"$
+1 -1
View File
@@ -18,7 +18,7 @@
* ATA PIO Hard drives, support for $FG,2$FAT32$FG$ and $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file systems with file compression. * ATA PIO Hard drives, support for $FG,2$FAT32$FG$ and $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file systems with file compression.
* ATAPI PIO $FG,2$CD/DVD$FG$ support with $FG,2$ISO9660$FG$ file system. Can make bootable $FG,2$ISO9660$FG$ ISO files so you can roll-your-own distro's. * ATAPI PIO $FG,2$CD/DVD$FG$ support with $FG,2$RedSea$FG$ file system. Can make bootable ISO files so you can roll-your-own distro's.
* $LK,"Partitioning",A="MN:DskPrt"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk. * $LK,"Partitioning",A="MN:DskPrt"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk.
-3
View File
@@ -51,9 +51,6 @@ $ID,-2$
$FG,2$'m'$FG$ $FG,2$'m'$FG$
$ID,2$Make CD/DVD ISO.C file. This creates a $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ ISO file image of the dir the cursor is on. The name of the ISO file is $FG,2$$TX,"\"::/Tmp/CDDVD.ISO.C\"",D="DFT_ISO_C_FILENAME"$$FG$ $LK,"blkdev.dft_iso_c_filename",A="MN:CBlkDevGlbls"$ and can be redefined in your start-up scripts. You may wish to place it on a different drive. $ID,2$Make CD/DVD ISO.C file. This creates a $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ ISO file image of the dir the cursor is on. The name of the ISO file is $FG,2$$TX,"\"::/Tmp/CDDVD.ISO.C\"",D="DFT_ISO_C_FILENAME"$$FG$ $LK,"blkdev.dft_iso_c_filename",A="MN:CBlkDevGlbls"$ and can be redefined in your start-up scripts. You may wish to place it on a different drive.
$ID,-2$ $ID,-2$
$FG,2$'M'$FG$
$ID,2$Make CD/DVD ISO file. This creates a ISO9660 file image of the dir the cursor is on. The name of the ISO file is $FG,2$$TX,"\"::/Tmp/CDDVD.ISO\"",D="DFT_ISO_FILENAME"$$FG$ $LK,"blkdev.dft_iso_filename",A="MN:CBlkDevGlbls"$ and can be redefined in your start-up scripts. You may wish to place it on a different drive.
$ID,-2$
$FG,2$'B'$FG$ $FG,2$'B'$FG$
$ID,2$Burn CD/DVD ISO file. This burns a CD/DVD using the image file, $FG,2$$TX,"\"::/Tmp/CDDVD.ISO\"",D="DFT_ISO_FILENAME"$$FG$ $LK,"blkdev.dft_iso_filename",A="MN:CBlkDevGlbls"$ to the drive the cursor is on. $ID,2$Burn CD/DVD ISO file. This burns a CD/DVD using the image file, $FG,2$$TX,"\"::/Tmp/CDDVD.ISO\"",D="DFT_ISO_FILENAME"$$FG$ $LK,"blkdev.dft_iso_filename",A="MN:CBlkDevGlbls"$ to the drive the cursor is on.
$ID,-2$ $ID,-2$
-1
View File
@@ -22,7 +22,6 @@ CDDVD
DskChg(,'c'); DskChg(,'c');
MountISOC(,'i'); MountISOC(,'i');
MakeRedSeaISOC(,'m'); MakeRedSeaISOC(,'m');
MakeISO9660ISO(,'M');
BurnISOFile(,'B'); BurnISOFile(,'B');
} }
+1 -1
View File
@@ -235,7 +235,7 @@ $FG,5$*.BIN.Z;*.BIN.C;*.BIN$FG$
$FG,5$*.DATA.Z;*.DATA$FG$ $FG,5$*.DATA.Z;*.DATA$FG$
Data files Data files
$FG,5$*.ISO$FG$ $FG,5$*.ISO$FG$
CD/DVD image file--ISO9660. CD/DVD image file.
$FG,5$*.IN.Z;*.IN$FG$ $FG,5$*.IN.Z;*.IN$FG$
$FG,2$InFile$FG$ Basically a HolyC program whose stdout goes to the input of a task when $LK,"InFile",A="MN:InFile"$() is called. $FG,2$InFile$FG$ Basically a HolyC program whose stdout goes to the input of a task when $LK,"InFile",A="MN:InFile"$() is called.
$FG,5$*.GR.Z;*.GR$FG$ $FG,5$*.GR.Z;*.GR$FG$
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -209,7 +209,7 @@ $FG$$ID,-2$
* You can use $LK,"Option",A="MN:Option"$($LK,"OPTf_WARN_DUP_TYPES",A="MN:OPTf_WARN_DUP_TYPES"$,ON) to find dup local var type stmts. * You can use $LK,"Option",A="MN:Option"$($LK,"OPTf_WARN_DUP_TYPES",A="MN:OPTf_WARN_DUP_TYPES"$,ON) to find dup local var type stmts.
* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled. See $LK,"#exe {}",A="FF:::/Kernel/KEnd.HC,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program. $LK,"StreamPrint",A="MN:StreamPrint"$() places text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk. * With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled. See $LK,"#exe {}",A="FF:::/Kernel/KMain.HC,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program. $LK,"StreamPrint",A="MN:StreamPrint"$() places text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk.
* No $FG,2$#define$FG$ functions exist (I'm not a fan) * No $FG,2$#define$FG$ functions exist (I'm not a fan)
@@ -223,7 +223,7 @@ $FG$$ID,-2$
* $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it. Some common unions are declared in $LK,"KernelA.HH",A="MN:U16"$ for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by itself. See $LK,"::/Demo/SubIntAccess.HC"$. * $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it. Some common unions are declared in $LK,"KernelA.HH",A="MN:U16"$ for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by itself. See $LK,"::/Demo/SubIntAccess.HC"$.
* $FG,2$class$FG$ member vars can have meta data. $FG,2$fmtstr$FG$ and $FG,2$fmtdata$FG$ are two meta data types now used. All compiler structures are saved and you can access the compiler's info about classes and vars. See $LK,"::/Demo/ClassMeta.HC"$ and $LK,"DocForm",A="MN:DocForm"$(). * $FG,2$class$FG$ member vars can have meta data. $FG,2$format$FG$ and $FG,2$data$FG$ are two meta data types now used. All compiler structures are saved and you can access the compiler's info about classes and vars. See $LK,"::/Demo/ClassMeta.HC"$ and $LK,"DocForm",A="MN:DocForm"$().
* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg. It is set to the class name of the prev arg. See $LK,"::/Demo/LastClass.HC"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/Dsk/BlkDevRep.HC"$. * There is a keyword $FG,2$lastclass$FG$ you use as a dft arg. It is set to the class name of the prev arg. See $LK,"::/Demo/LastClass.HC"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/Dsk/BlkDevRep.HC"$.
+1 -1
View File
@@ -6,7 +6,7 @@ Dual booting with another operating system is the best way to use TempleOS. I o
The $LK,"::/Misc/OSInstall.HC"$ script will automate much of this. It runs if you boot the CD/DVD-ROM. The $LK,"::/Misc/OSInstall.HC"$ script will automate much of this. It runs if you boot the CD/DVD-ROM.
See $LK,"Boot.DD",A="FI:::/Doc/Boot.DD"$ for an overview of booting. See $LK,"Requirements",A="FI:::/Doc/Requirements.DD"$ for supported hardware. See $LK,"Upgrading",A="FI:::/Doc/Upgrade.DD"$ if you are upgrading. See $LK,"Boot.DD",A="FI:::/Doc/Boot.DD"$ for an overview of booting. See $LK,"Requirements",A="FI:::/Doc/Requirements.DD"$ for supported hardware.
Two TempleOS partitions are highly recommended, so you can boot to a back-up and fix the primary when you work on it. Odds are, you only need a couple gigabytes for your TempleOS partitions. Two TempleOS partitions are highly recommended, so you can boot to a back-up and fix the primary when you work on it. Odds are, you only need a couple gigabytes for your TempleOS partitions.
+3 -3
View File
@@ -8,7 +8,7 @@ You can create new, independent heaps using $LK,"HeapCtrlInit",A="MN:HeapCtrlIni
Memory alloced by a task will be freed when the task is killed. The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is a task that never dies. His memory is like kernel memory in other operating systems. See $LK,"ACAlloc",A="MN:ACAlloc"$(), $LK,"AMAlloc",A="MN:AMAlloc"$(), $LK,"AMAllocIdent",A="MN:AMAllocIdent"$() and $LK,"AStrNew",A="MN:AStrNew"$(). Memory alloced by a task will be freed when the task is killed. The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is a task that never dies. His memory is like kernel memory in other operating systems. See $LK,"ACAlloc",A="MN:ACAlloc"$(), $LK,"AMAlloc",A="MN:AMAlloc"$(), $LK,"AMAllocIdent",A="MN:AMAllocIdent"$() and $LK,"AStrNew",A="MN:AStrNew"$().
All of the regular page tables are marked, "cached". When accessing hardware, however, you need uncached page table. The lowest 4Gig addresses have an alias to access hardware located toward the top of mapped space, $FG,2$0x$TX,"01AA000000",D="DD_UNCACHED_ALIAS"$$FG$. See $LK,"dev.uncached_alias",A="FF:::/Kernel/KEnd.HC,dev.uncached_alias"$. All of the regular page tables are marked, "cached". When accessing hardware, however, you need uncached page table. The lowest 4Gig addresses have an alias to access hardware located toward the top of mapped space, $FG,2$0x$TX,"01AA000000",D="DD_UNCACHED_ALIAS"$$FG$. See $LK,"dev.uncached_alias",A="FF:::/Kernel/KMain.HC,dev.uncached_alias"$.
During an extended powered-on session of TempleOS, in theory, memory will become fragmented, requiring a reboot. It has never happens to me. During an extended powered-on session of TempleOS, in theory, memory will become fragmented, requiring a reboot. It has never happens to me.
@@ -55,8 +55,8 @@ In 2003, I wanted to make a no-paging ring-0-only 64-bit operating system for su
I needed VGA A0000-BFFFF memory to be write-through and 0xE0000000-0xFFFFFFFF to be uncached for various devices. All 64-bit computers allow stopping address translation at 2Meg page size, not using 4K. I wanted to use 2Meg for everything because it's faster, with one less level of page tables. I had to make A0000-BFFFF write-through, though, so I could not use 2Meg size on the lowest page. I did the lowest 2Meg area as 4K pages. I also unmapped the first 4K to cause a fault when dereferencing NULL. I needed VGA A0000-BFFFF memory to be write-through and 0xE0000000-0xFFFFFFFF to be uncached for various devices. All 64-bit computers allow stopping address translation at 2Meg page size, not using 4K. I wanted to use 2Meg for everything because it's faster, with one less level of page tables. I had to make A0000-BFFFF write-through, though, so I could not use 2Meg size on the lowest page. I did the lowest 2Meg area as 4K pages. I also unmapped the first 4K to cause a fault when dereferencing NULL.
In 2016, I came-up with an alternate idea. I double mapped the lowest memory with an alias that was uncached. Accessing the lowest 2Meg area directly was cached but the alias I created up at the top of address space was uncached. See $LK,"UncachedAliasAlloc",A="MN:UncachedAliasAlloc"$(). Unfortunately, I could no longer boast of the simplicity of identity mapping everything. Since many of my users are familiar with A0000-BFFFF, it is actually pretty seriously unfortunate that they cannot use the easy-to-understand numbers of A0000-BFFFF, but must access the relocated alias location. See $LK,"text.vga_alias",A="FF:::/Kernel/KEnd.HC,text.vga_alias"$. I also no longer cause a fault when dereferencing NULL. In 2016, I came-up with an alternate idea. I double mapped the lowest memory with an alias that was uncached. Accessing the lowest 2Meg area directly was cached but the alias I created up at the top of address space was uncached. See $LK,"UncachedAliasAlloc",A="MN:UncachedAliasAlloc"$(). Unfortunately, I could no longer boast of the simplicity of identity mapping everything. Since many of my users are familiar with A0000-BFFFF, it is actually pretty seriously unfortunate that they cannot use the easy-to-understand numbers of A0000-BFFFF, but must access the relocated alias location. See $LK,"text.vga_alias",A="FF:::/Kernel/KMain.HC,text.vga_alias"$. I also no longer cause a fault when dereferencing NULL.
Then, I switched to 1Gig page sizes. For the lowest 4Gig, I set-up an alias up at the top of address space. See $LK,"UncachedAliasAlloc",A="MN:UncachedAliasAlloc"$(). Not all computers support 1Gig page tables, however, so I also support 2Meg. Then, I switched to 1Gig page sizes. For the lowest 4Gig, I set-up an alias up at the top of address space. See $LK,"UncachedAliasAlloc",A="MN:UncachedAliasAlloc"$(). Not all computers support 1Gig page tables, however, so I also support 2Meg.
My original plan was to allow changing the page tables as needed, so I had code for taking control of 2Meg pages and marking them uncached or whatever. When I did a HDAudio driver, I requested some 32-bit address space as uncached. Today, all of the first 4Gig can be accessed without caching at the $LK,"dev.uncached_alias",A="FF:::/Kernel/KEnd.HC,dev.uncached_alias"$. My original plan was to allow changing the page tables as needed, so I had code for taking control of 2Meg pages and marking them uncached or whatever. When I did a HDAudio driver, I requested some 32-bit address space as uncached. Today, all of the first 4Gig can be accessed without caching at the $LK,"dev.uncached_alias",A="FF:::/Kernel/KMain.HC,dev.uncached_alias"$.
+4
View File
@@ -35,8 +35,12 @@ $FG,2$"%$$F"$FG$ $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ file in memory.
$FG,2$"%p"$FG$ ptr. $FG,2$"%p"$FG$ ptr.
$FG,2$"%,p"$FG$ ptr with no offset.
$FG,2$"%P"$FG$ link to ptr. $FG,2$"%P"$FG$ link to ptr.
$FG,2$"%,P"$FG$ link to ptr with no offset.
$FG,2$"%D"$FG$ date. Pass a $LK,"CDate",A="MN:CDate"$. $FG,2$"%D"$FG$ date. Pass a $LK,"CDate",A="MN:CDate"$.
$FG,2$"%T"$FG$ time. Pass a $LK,"CDate",A="MN:CDate"$. $FG,2$"%T"$FG$ time. Pass a $LK,"CDate",A="MN:CDate"$.
+3 -1
View File
@@ -39,4 +39,6 @@ To replace ISO9660, make hard-drive partition image of a measured size and copy
RedSea file system has no bad block table and no redundant allocation table. RedSea file system has no bad block table and no redundant allocation table.
Read $LK,"Block Chain",A="FI:::/Doc/BlkChain.DD"$ for a philosophical explaination of RedSea reasoning. See $LK,"Block Chain",A="FI:::/Doc/BlkChain.DD"$ for RedSea allocation bitmap discussion.
See $LK,"Reliability",A="FI:::/Doc/Reliability.DD"$ for RedSea reliability discussion.
+1 -1
View File
@@ -14,7 +14,7 @@ $FG,5$Supported Hardware$FG$
* Internal PC Speakers. * Internal PC Speakers.
* CD/DVD-ROMs (not SCSI). ISO9660 file system. * CD/DVD-ROMs (not SCSI) but only RedSea file system.
* ATA and SATA hard drives. * ATA and SATA hard drives.
+2 -2
View File
@@ -1,4 +1,4 @@
$WW,1$$FG,5$$TX+CX,"The Standard TempleOS PC",HTML="http://www.templeos.org/Wb/Home/Web/TAD/TAD.html"$$FG$ $WW,1$$FG,5$$TX+CX,"The Standard TempleOS PC"$$FG$
All desktop PCs will have 8-channel OCTART super-simple high speed serial ports to replace USB. They are simpler because the driver is as simple as old school $LK,"RS232 Serial",A="FI:::/Doc/Comm.HC"$, they have no USB end-points and they have no USB human interface device reports. Computer mice will all have exactly two bttns and one wheel. Game controllers will all be the standard deluxe $TX,"game console controllers",HTML="http://www.gamestop.com/pc/accessories/steam-controller/121865"$ that are popular today. It will have 8 big TX and 8 big RX fifos that allow flow control characters to jump the queue. It should be locked-down to as few options as possible, like 8-1-N only, although hardware may use a USB frame, not an RS232, so stop bits might not be relevant. Perhaps, just two baud rates -- high and low speed are needed. Low speed is good for slow microcontrollers and allows longer cable length. Keyboard, mouse and game controller can be low speed. All desktop PCs will have 8-channel OCTART super-simple high speed serial ports to replace USB. They are simpler because the driver is as simple as old school $LK,"RS232 Serial",A="FI:::/Doc/Comm.HC"$, they have no USB end-points and they have no USB human interface device reports. Computer mice will all have exactly two bttns and one wheel. Game controllers will all be the standard deluxe $TX,"game console controllers",HTML="http://www.gamestop.com/pc/accessories/steam-controller/121865"$ that are popular today. It will have 8 big TX and 8 big RX fifos that allow flow control characters to jump the queue. It should be locked-down to as few options as possible, like 8-1-N only, although hardware may use a USB frame, not an RS232, so stop bits might not be relevant. Perhaps, just two baud rates -- high and low speed are needed. Low speed is good for slow microcontrollers and allows longer cable length. Keyboard, mouse and game controller can be low speed.
@@ -58,7 +58,7 @@ We will make a spec for a $$8,000, perfectly standardized, cryogenically-cooled,
The Standard Temple IBM PC will be a full-sized tower. Perhaps, stain-glass will decorate the case because God is sentimentally attached to stained-glass. We should set the size at exactly 2.5 feet by 1.5 feet by 1.5 feet as in the $LK,"Exodus,25:10-10",A="BF:Exodus,25:10-10"$ for all time. If there is extra room, make a storage shelf for DVDs. We do not want a race-to-the-bottom, shrinking the size. Instead of making it smaller, make it more powerful. We want to remove all cost pressure from making things small. It must have a CD/DVD/Blu-ray drive. The vision is CD/DVDs used for a library of games, not installed on the hard-drive. We need a network connection, possibly implemented as a super-simple high speed serial device. What about standard monitor and speakers? The C64's success was partially due to wide spread, completely standard, hardware. I think TempleOS will not do bad block devices, so we need a hard drive, not just NV-memory or SSD. The Standard Temple IBM PC will be a full-sized tower. Perhaps, stain-glass will decorate the case because God is sentimentally attached to stained-glass. We should set the size at exactly 2.5 feet by 1.5 feet by 1.5 feet as in the $LK,"Exodus,25:10-10",A="BF:Exodus,25:10-10"$ for all time. If there is extra room, make a storage shelf for DVDs. We do not want a race-to-the-bottom, shrinking the size. Instead of making it smaller, make it more powerful. We want to remove all cost pressure from making things small. It must have a CD/DVD/Blu-ray drive. The vision is CD/DVDs used for a library of games, not installed on the hard-drive. We need a network connection, possibly implemented as a super-simple high speed serial device. What about standard monitor and speakers? The C64's success was partially due to wide spread, completely standard, hardware. I think TempleOS will not do bad block devices, so we need a hard drive, not just NV-memory or SSD.
TempleOS will have the priority over Windows or Linux on hardware decisions. We could make it heterogenious multicore. I think we want 16 non-hyperthreaded cores. Core#0 is the only full-featured core needed. The other cores will have long mode, but not some of these: real mode, protected mode, ring-3, paging, interrupts, in/out port instructions, SSE instructions, MMX instructions. This $LK,"Graphics Job",A="FI:~/Web/TAD/GraphicsPerformance.DD"$ is what to optimize for. TempleOS will have the priority over Windows or Linux on hardware decisions. We could make it heterogenious multicore. I think we want 16 non-hyperthreaded cores. Core#0 is the only full-featured core needed. The other cores will have long mode, but not some of these: real mode, protected mode, ring-3, paging, interrupts, in/out port instructions, SSE instructions, MMX instructions.
God said Intel should do a simulation of heat produced by gates and try spreading-out the heat producing gate circuits on the chip. God said Intel should do a simulation of heat produced by gates and try spreading-out the heat producing gate circuits on the chip.
+3 -3
View File
@@ -73,7 +73,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
* Use $FG,2$<CTRL-ALT-s>$FG$ will capture the scrn as a sprite on the clip. You can save the cmd line doc as text with $FG,2$<CTRL-a>$FG$. * Use $FG,2$<CTRL-ALT-s>$FG$ will capture the scrn as a sprite on the clip. You can save the cmd line doc as text with $FG,2$<CTRL-a>$FG$.
* You can save a sprite as a $FG,2$.BMP$FG$ file in $FG,2$<CTRL-r>$FG$ on the Sprite BitMap Menu. * You can save a sprite as a $FG,2$.GR$FG$ file in $FG,2$<CTRL-r>$FG$ on the Sprite BitMap Menu.
* You can eye-dropper colors in the $FG,2$<CTRL-r>$FG$ sprite editor by pressing $FG,2$'c'$FG$. Press $FG,2$'t'$FG$ for transparent. * You can eye-dropper colors in the $FG,2$<CTRL-r>$FG$ sprite editor by pressing $FG,2$'c'$FG$. Press $FG,2$'t'$FG$ for transparent.
@@ -85,7 +85,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
* When using $FG,2$<CTRL-l>$FG$ to insert links in documents, you can usually leave the $FG,2$Tag Text$FG$ blank and it will be filled-in automatically based on other entries. * When using $FG,2$<CTRL-l>$FG$ to insert links in documents, you can usually leave the $FG,2$Tag Text$FG$ blank and it will be filled-in automatically based on other entries.
* There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into the compilation stream. Click here for an example: $LK,"#exe {",A="FF:::/Kernel/KEnd.HC,#exe {"$. * There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into the compilation stream. Click here for an example: $LK,"#exe {",A="FF:::/Kernel/KMain.HC,#exe {"$.
* If you output to the cmd line and wish to allow users to scroll around and view data, you can use $LK,"View",A="MN:View"$(). * If you output to the cmd line and wish to allow users to scroll around and view data, you can use $LK,"View",A="MN:View"$().
@@ -131,7 +131,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
* For advanced heap debugging, play with $LK,"_CFG_HEAP_DBG",A="MN:_CFG_HEAP_DBG"$. You're on your own. * For advanced heap debugging, play with $LK,"_CFG_HEAP_DBG",A="MN:_CFG_HEAP_DBG"$. You're on your own.
* You can use $LK,"Type",A="MN:Type"$() to display $FG,2$.BMP$FG$ or $FG,2$.GR$FG$ files. * You can use $LK,"Type",A="MN:Type"$() to display $FG,2$.GR$FG$ files.
* Use $LK,"Man",A="MN:Man"$() to jump to short sym name src code. * Use $LK,"Man",A="MN:Man"$() to jump to short sym name src code.
+1 -1
View File
@@ -7,7 +7,7 @@ $ID,2$* Professionals doing hobby projects
* Teenagers doing projects * Teenagers doing projects
* Non-professional, older-persons projects * Non-professional, older-persons projects
$ID,-2$ $ID,-2$
Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.DD"$, so it's easy to tinker with. As it turns-out, simplicity makes it faster in some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed. It's only $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.DD"$ application in one line of code and can put graphics on the scrn with a three line program! Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.DD"$, so it's easy to tinker with. As it turns-out, simplicity makes it faster in some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed. It's only $TX,"82,150",D="DD_TEMPLEOS_LOC"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.DD"$ application in one line of code and can put graphics on the scrn with a three line program!
It's a kayak, not a Titanic -- it will crash if you do something wrong. You quickly reboot, however. DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection. The resulting simplicity of no protections is why TempleOS has value. In facts, that's the point of TempleOS. See the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.DD"$. It's a kayak, not a Titanic -- it will crash if you do something wrong. You quickly reboot, however. DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection. The resulting simplicity of no protections is why TempleOS has value. In facts, that's the point of TempleOS. See the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.DD"$.
+1 -1
View File
@@ -12,7 +12,7 @@ I have made an incredible accomplishment by getting it to work on practically ev
Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12, boot mode and regular mode for keyboard/mouse and a diversity of HID reports. It's hopeless. I could never offer anything but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would I gain? Nothing. A keyboard or mouse would not be improved. Solid State USB drives would be really nice, but it's not going to happen. Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12, boot mode and regular mode for keyboard/mouse and a diversity of HID reports. It's hopeless. I could never offer anything but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would I gain? Nothing. A keyboard or mouse would not be improved. Solid State USB drives would be really nice, but it's not going to happen.
The same story is basically true for GPUs, audio, networking and AHCI hard drive drivers. God said 640x480 16 color was a covenant like circumcision, so the video will never change, even if a $LK,"Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$ was made. If you attempt multimedia, everything will break because memory will get fragmented with huge multimedia files. Some day, if super-simple high speed serial allows networking, there will be no browser within the 100,000 line limit and, with only 16 colors, the world wide web is not tolerable. FTP and telnet might be possible, in the far distant future, if they could fit within the 100,000 line limit. Currently, there are $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code. The same story is basically true for GPUs, audio, networking and AHCI hard drive drivers. God said 640x480 16 color was a covenant like circumcision, so the video will never change, even if a $LK,"Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$ was made. If you attempt multimedia, everything will break because memory will get fragmented with huge multimedia files. Some day, if super-simple high speed serial allows networking, there will be no browser within the 100,000 line limit and, with only 16 colors, the world wide web is not tolerable. FTP and telnet might be possible, in the far distant future, if they could fit within the 100,000 line limit. Currently, there are $TX,"82,150",D="DD_TEMPLEOS_LOC"$ lines of code.
I don't stand a chance working on native hardware, anymore. I could install and run natively on hardware from about 2005-2010. It requires BIOS's being nice enough to write USB mode PS/2 legacy keyboard/mouse support. As it turns-out, sometimes the BIOS has PS/2 drivers but purposely disables them, just to be mean. The CIA and whole industry is trying to mess everything up, on purpose. Perhaps, at a point of sale in a store, a thief could hack a credit card machine. Therefore, the BIOS companies actually want it difficult to make drivers and purposely make it broken. I don't stand a chance working on native hardware, anymore. I could install and run natively on hardware from about 2005-2010. It requires BIOS's being nice enough to write USB mode PS/2 legacy keyboard/mouse support. As it turns-out, sometimes the BIOS has PS/2 drivers but purposely disables them, just to be mean. The CIA and whole industry is trying to mess everything up, on purpose. Perhaps, at a point of sale in a store, a thief could hack a credit card machine. Therefore, the BIOS companies actually want it difficult to make drivers and purposely make it broken.
+1 -1
View File
@@ -28,7 +28,7 @@ $FG,5$Tree$FG$ The item will behave like a tree widget, with this as the root.
$FG,5$Collapsed$FG$ The tree or hidden widget will begin collapsed. $FG,5$Collapsed$FG$ The tree or hidden widget will begin collapsed.
$FG,5$Define Str$FG$ will substitute a $FG,2$#define$FG$ or $LK,"DefineLoad",A="MN:DefineLoad"$() string for the tag. $FG,5$Define Str$FG$ will substitute a $FG,2$#define$FG$ or $LK,"DefineLoad",A="MN:DefineLoad"$() string for the tag.
$FG,5$Quote$FG$ Make the res suitable for including in a program, in quotes, especially $FG,2$fmtstr$FG$ entries in class definitions. $FG,5$Quote$FG$ Make the res suitable for including in a program, in quotes, especially $FG,2$format$FG$ entries in class definitions.
$FG,5$X Expression$FG$ For cursor movements, the horizontal value. $FG,5$X Expression$FG$ For cursor movements, the horizontal value.
$FG,5$Y Expression$FG$ For cursor movements, the vertical value. $FG,5$Y Expression$FG$ For cursor movements, the vertical value.
+6 -10
View File
@@ -1,13 +1,9 @@
//ISO1 is ISO9660
//ISO2 is ISO13490
//ISO3 is ISO13346
Bool ISOInit(CDrv *dv,I64 blk) Bool ISOInit(CDrv *dv,I64 blk)
{ {
CBlkDev *bd=dv->bd; CBlkDev *bd=dv->bd;
I64 spc=bd->blk_size>>BLK_SIZE_BITS,i=blk/spc,drv_offset=0; I64 spc=bd->blk_size>>BLK_SIZE_BITS,i=blk/spc,drv_offset=0;
CISO1PriDesc *iso=MAlloc(bd->blk_size); CISOPriDesc *iso=MAlloc(bd->blk_size);
CISO1DirEntry *de; CISODirEntry *de;
Bool unlock,res=FALSE; Bool unlock,res=FALSE;
U8 buf[8]; U8 buf[8];
@@ -25,10 +21,10 @@ Bool ISOInit(CDrv *dv,I64 blk)
LMF_EXACT)) { LMF_EXACT)) {
case 0: case 0:
switch (iso->type) { switch (iso->type) {
case ISO1T_BOOT_RECORD: case ISOT_BOOT_RECORD:
drv_offset+=(2*DVD_BLK_SIZE+DVD_BLK_SIZE)/BLK_SIZE; drv_offset+=(2*DVD_BLK_SIZE+DVD_BLK_SIZE)/BLK_SIZE;
break; break;
case ISO1T_SUPPLEMENTARY_DESC: case ISOT_SUPPLEMENTARY_DESC:
de=&iso->root_dir_record; de=&iso->root_dir_record;
dv->size=iso->vol_space_size.little*bd->blk_size>>BLK_SIZE_BITS; dv->size=iso->vol_space_size.little*bd->blk_size>>BLK_SIZE_BITS;
if (!StrCmp(iso->publisher_id,"TempleOS RedSea")) { if (!StrCmp(iso->publisher_id,"TempleOS RedSea")) {
@@ -41,11 +37,11 @@ Bool ISOInit(CDrv *dv,I64 blk)
dv->root_clus=de->loc.little; dv->root_clus=de->loc.little;
res=TRUE; res=TRUE;
goto di_done; goto di_done;
case ISO1T_TERMINATOR: case ISOT_TERMINATOR:
throw('Drv'); throw('Drv');
} }
break; break;
default: //Its normal for ISO13346 to read NULL blk as terminator default: //Its normal for ISO3346 to read NULL blk as terminator
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
throw('Drv'); throw('Drv');
} }
-6
View File
@@ -6,7 +6,6 @@ I64 ClusNumNext(CDrv *dv,I64 c,I64 cnt=1)
try { try {
unlock=DrvLock(dv); unlock=DrvLock(dv);
switch (dv->fs_type) { switch (dv->fs_type) {
case FSt_ISO9660:
case FSt_REDSEA: case FSt_REDSEA:
c+=cnt; c+=cnt;
break; break;
@@ -35,7 +34,6 @@ I64 Clus2Blk(CDrv *dv,I64 c)
switch (dv->fs_type) { switch (dv->fs_type) {
case FSt_REDSEA: case FSt_REDSEA:
return c; return c;
case FSt_ISO9660:
case FSt_FAT32: case FSt_FAT32:
return dv->data_area+c*dv->spc; return dv->data_area+c*dv->spc;
default: default:
@@ -52,10 +50,6 @@ I64 ClusBlkRead(CDrv *dv,U8 *buf,I64 c,I64 blks)
try { try {
unlock=DrvLock(dv); unlock=DrvLock(dv);
switch (dv->fs_type) { switch (dv->fs_type) {
case FSt_ISO9660:
BlkRead(dv,buf,dv->data_area+c*dv->spc,blks);
c+=(blks+dv->spc-1)/dv->spc;
break;
case FSt_REDSEA: case FSt_REDSEA:
BlkRead(dv,buf,c,blks); BlkRead(dv,buf,c,blks);
c+=blks; c+=blks;
+4 -7
View File
@@ -13,9 +13,9 @@ Bool CopySingleZ(U8 *f1,U8 *f2) //Just one file
Free(file_buf); Free(file_buf);
return ToBool(c); return ToBool(c);
} else } else
PrintErr("File not found.\n"); PrintErr("File not found: \"%s\".\n",f1);
} else } else
PrintErr("File not found.\n"); PrintErr("File not found: \"%s\".\n",f1);
return FALSE; return FALSE;
} }
@@ -71,10 +71,10 @@ Bool CopySingle(U8 *f1,U8 *f2) //Just one file
Free(buf); Free(buf);
return TRUE; return TRUE;
} else } else
PrintErr("File not found.\n"); PrintErr("File not found: \"%s\".\n",f2);
FClose(in_file); FClose(in_file);
} else } else
PrintErr("File not found.\n"); PrintErr("File not found: \"%s\".\n",f1);
Free(buf); Free(buf);
return FALSE; return FALSE;
} }
@@ -94,9 +94,6 @@ I64 Del(U8 *files_find_mask,Bool make_mask=FALSE,
res=FAT32FilesDel(dirc->dv,Fs->cur_dir,dirc->mask, res=FAT32FilesDel(dirc->dv,Fs->cur_dir,dirc->mask,
0,del_dir,print_msg); 0,del_dir,print_msg);
break; break;
case FSt_ISO9660:
PrintErr("Not Writable\n");
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
} }
-3
View File
@@ -5,9 +5,6 @@ Bool DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,Bool free_old_chain=TRUE)
return RedSeaDirNew(dv,cur_dir,tmpde,free_old_chain); return RedSeaDirNew(dv,cur_dir,tmpde,free_old_chain);
case FSt_FAT32: case FSt_FAT32:
return FAT32DirNew(dv,cur_dir,tmpde,free_old_chain); return FAT32DirNew(dv,cur_dir,tmpde,free_old_chain);
case FSt_ISO9660:
PrintErr("Not Writable\n");
return FALSE;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
return FALSE; return FALSE;
+1 -7
View File
@@ -60,9 +60,6 @@ Bool Cd(U8 *dirname=NULL,Bool make_dirs=FALSE)
case FSt_FAT32: case FSt_FAT32:
res=FAT32Cd(buf,cur_dir_clus); res=FAT32Cd(buf,cur_dir_clus);
break; break;
case FSt_ISO9660:
res=ISO1Cd(buf,cur_dir_clus);
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
res=FALSE; res=FALSE;
@@ -173,7 +170,7 @@ Bool DirMk(U8 *filename,I64 entry_cnt=0)
if (dirc=DirContextNew(filename)) { if (dirc=DirContextNew(filename)) {
if (*dirc->mask) { if (*dirc->mask) {
if (!FileNameChk(dirc->mask)) if (!FileNameChk(dirc->mask))
PrintErr("Invalid FileName.\n"); PrintErr("Invalid FileName: \"%s\".\n",dirc->mask);
else { else {
"Make Directory:%s\n",filename; "Make Directory:%s\n",filename;
name=MStrUtil(dirc->mask, name=MStrUtil(dirc->mask,
@@ -185,9 +182,6 @@ Bool DirMk(U8 *filename,I64 entry_cnt=0)
case FSt_FAT32: case FSt_FAT32:
res=FAT32MkDir(dirc->dv,Fs->cur_dir,name,entry_cnt); res=FAT32MkDir(dirc->dv,Fs->cur_dir,name,entry_cnt);
break; break;
case FSt_ISO9660:
PrintErr("Not Writable\n");
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
} }
-1
View File
@@ -278,7 +278,6 @@ Bool Drv(U8 drv_let)
switch (dv->fs_type) { switch (dv->fs_type) {
case FSt_REDSEA: case FSt_REDSEA:
case FSt_FAT32: case FSt_FAT32:
case FSt_ISO9660:
return TRUE; return TRUE;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
+2 -13
View File
@@ -28,9 +28,6 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
case FSt_FAT32: case FSt_FAT32:
res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr); res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
break; break;
case FSt_ISO9660:
res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
} }
@@ -54,9 +51,6 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
case FSt_FAT32: case FSt_FAT32:
res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr); res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
break; break;
case FSt_ISO9660:
res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
} }
@@ -64,10 +58,8 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
DirContextDel(dirc); DirContextDel(dirc);
} }
} }
if (!res) { if (!res)
"%s ",filename; PrintErr("File not found: \"%s\".\n",filename);
PrintErr("File not found.\n");
}
if (res && attr & RS_ATTR_RESIDENT) if (res && attr & RS_ATTR_RESIDENT)
HashGenericAdd(curname,HTT_FILE,AMAllocIdent(res),size,0,adam_task); HashGenericAdd(curname,HTT_FILE,AMAllocIdent(res),size,0,adam_task);
} }
@@ -106,9 +98,6 @@ I64 FileWrite(U8 *filename,U8 *fbuf,I64 size,CDate cdt=0,I64 attr=0)
case FSt_FAT32: case FSt_FAT32:
c=FAT32FileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,size,cdt,attr); c=FAT32FileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,size,cdt,attr);
break; break;
case FSt_ISO9660:
PrintErr("Not Writable\n");
break;
default: default:
PrintErr("File System Not Supported\n"); PrintErr("File System Not Supported\n");
} }
Loaded 100 of 123 files, more files were not shown because too many files have changed in this diff. Show more