Update to latest TOS distro
This commit is contained in:
1 parent
7e46072c81
commit
70ff1e2f75
142 files changed
+6371
-9877
No files matched your search
Binary file not shown.
@@ -226,7 +226,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=I64_MIN)
|
||||
DirNew(dv,cur_dir,&de,FALSE);
|
||||
}
|
||||
} else
|
||||
PrintErr("File not found.\n");
|
||||
PrintErr("File not found: \"%s\".\n",filename);
|
||||
Free(cur_dir);
|
||||
}
|
||||
public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?",
|
||||
|
||||
@@ -1,444 +0,0 @@
|
||||
#help_index "Info;File/Cmd Line (Typically);Cmd Line (Typically)"
|
||||
Bool ChkDskConfirm(Bool *_fix,Bool *_confirm)
|
||||
{
|
||||
if (*_fix && *_confirm) {
|
||||
"Fix ";
|
||||
if (!YorN)
|
||||
*_fix=FALSE;
|
||||
*_confirm=FALSE;
|
||||
}
|
||||
return *_fix;
|
||||
}
|
||||
|
||||
I64 RedSeaChkDskLst(CDrv *dv,CDirEntry *tmpde1,
|
||||
U8 *bits,U8 *bits2,I64 size,I64 bpc)
|
||||
{
|
||||
CDirEntry *tmpde2;
|
||||
I64 i,j,errs=0;
|
||||
while (tmpde1) {
|
||||
tmpde2=tmpde1->next;
|
||||
if (tmpde1->attr & RS_ATTR_DIR && tmpde1->sub)
|
||||
errs+=RedSeaChkDskLst(dv,tmpde1->sub,bits,bits2,size,bpc);
|
||||
j=(tmpde1->size+bpc-1)/bpc;
|
||||
for (i=0;i<j;i++) {
|
||||
if (i+tmpde1->cluster-dv->data_area>size) {
|
||||
PrintErr("Invalid Cluster:%s Cluster:%X\n",tmpde1->full_name,
|
||||
i+tmpde1->cluster);
|
||||
errs++;
|
||||
break;
|
||||
}
|
||||
if (LBts(bits,i+tmpde1->cluster-dv->data_area)) {
|
||||
PrintErr("Dbl Alloc:%s Cluster:%X\n",tmpde1->full_name,
|
||||
i+tmpde1->cluster);
|
||||
errs++;
|
||||
}
|
||||
if (!LBtr(bits2,i+tmpde1->cluster-dv->data_area)) {
|
||||
PrintErr("UnAlloc:%s Cluster:%X\n",tmpde1->full_name,
|
||||
i+tmpde1->cluster);
|
||||
errs++;
|
||||
}
|
||||
}
|
||||
DirEntryDel(tmpde1);
|
||||
tmpde1=tmpde2;
|
||||
}
|
||||
return errs;
|
||||
}
|
||||
|
||||
I64 RedSeaChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm)
|
||||
{
|
||||
I64 i,j,bpc,size,errs=0;
|
||||
CDrv *dv=Let2Drv(drv_let),*old_dv=Fs->cur_dv;
|
||||
U8 *files_find_mask=MStrPrint("%c:/*",Drv2Let(dv)),
|
||||
*old_dir=StrNew(Fs->cur_dir),
|
||||
*bits,*bits2;
|
||||
CDirEntry *ptr,*ptr2;
|
||||
|
||||
Drv(drv_let);
|
||||
"Scanning...\n";
|
||||
size=(dv->size-(dv->data_area-dv->drv_offset))/dv->spc;
|
||||
bpc=dv->spc<<BLK_SIZE_BITS;
|
||||
bits=CAlloc((size+7)>>3);
|
||||
bits2=CAlloc((size+7)>>3+BLK_SIZE);
|
||||
RBlks(dv,bits2,dv->fat1,((size+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS);
|
||||
|
||||
//Get Root Dir size
|
||||
ptr2=MAlloc(bpc);
|
||||
RBlks(dv,ptr2,dv->root_cluster,1);
|
||||
ptr=ptr2(U8 *)-offset(CDirEntry.start);
|
||||
j=(ptr->size+bpc-1)/bpc;
|
||||
Free(ptr2);
|
||||
|
||||
for (i=0;i<j;i++) {
|
||||
if (i+dv->root_cluster-dv->data_area>size) {
|
||||
PrintErr("Invalid Cluster: RootDir Cluster:%X\n",i+dv->root_cluster);
|
||||
errs++;
|
||||
break;
|
||||
}
|
||||
if (LBts(bits,i+dv->root_cluster-dv->data_area)) {
|
||||
PrintErr("Dbl Alloc: RootDir Cluster:%X\n",i+dv->root_cluster);
|
||||
errs++;
|
||||
}
|
||||
if (!LBtr(bits2,i+dv->root_cluster-dv->data_area)) {
|
||||
PrintErr("UnAlloc: RootDir Cluster:%X\n",i+dv->root_cluster);
|
||||
errs++;
|
||||
}
|
||||
}
|
||||
|
||||
errs+=RedSeaChkDskLst(dv,FilesFind(files_find_mask,FUF_RECURSE),
|
||||
bits,bits2,size,bpc);
|
||||
for (i=1;i<size;i++)
|
||||
if (Bt(bits2,i)) {
|
||||
PrintWarn("Shouldn't Alloc Cluster:%0X\n",i+dv->data_area);
|
||||
errs++;
|
||||
if (ChkDskConfirm(_fix,_confirm))
|
||||
RedSeaFreeClusters(dv,i+dv->data_area,1);
|
||||
}
|
||||
|
||||
Free(files_find_mask);
|
||||
Free(bits);
|
||||
Free(bits2);
|
||||
Drv(Drv2Let(old_dv));
|
||||
Cd(old_dir);
|
||||
Free(old_dir);
|
||||
return errs;
|
||||
}
|
||||
|
||||
I64 FAT32ChkDskLst(CDrv *dv,CDirEntry *tmpde1,
|
||||
U8 *bits,U32 *bits2,I64 size,I64 bpc)
|
||||
{
|
||||
CDirEntry *tmpde2;
|
||||
I64 i,c,errs=0;
|
||||
while (tmpde1) {
|
||||
tmpde2=tmpde1->next;
|
||||
if (tmpde1->attr & RS_ATTR_DIR && tmpde1->sub)
|
||||
errs+=FAT32ChkDskLst(dv,tmpde1->sub,bits,bits2,size,bpc);
|
||||
i=0;
|
||||
c=tmpde1->cluster;
|
||||
while (0<c<0x0FFFFFF8) {
|
||||
if (c>size) {
|
||||
PrintErr("Invalid Cluster:%s Cluster:%X\n",tmpde1->full_name,c);
|
||||
errs++;
|
||||
break;
|
||||
}
|
||||
if (LBts(bits,c)) {
|
||||
PrintErr("Dbl Alloc:%s Cluster:%X\n",tmpde1->full_name,c);
|
||||
errs++;
|
||||
}
|
||||
if (!bits2[c]) {
|
||||
PrintErr("UnAlloc:%s Cluster:%X\n",tmpde1->full_name,c);
|
||||
errs++;
|
||||
} else
|
||||
bits2[c]=0;
|
||||
c=ClusterNumNext(dv,c);
|
||||
i++;
|
||||
}
|
||||
if (!(tmpde1->attr & RS_ATTR_DIR)) {
|
||||
i*=bpc;
|
||||
if (tmpde1->size>i) {
|
||||
PrintErr("Alloced File Too Short:%s\n",tmpde1->full_name);
|
||||
errs++;
|
||||
}
|
||||
if (i>tmpde1->size+bpc-1) {
|
||||
PrintWarn("Alloced File Too Long:%s\n",tmpde1->full_name);
|
||||
errs++;
|
||||
}
|
||||
}
|
||||
DirEntryDel(tmpde1);
|
||||
tmpde1=tmpde2;
|
||||
}
|
||||
return errs;
|
||||
}
|
||||
|
||||
I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm)
|
||||
{
|
||||
I64 i,bpc,size,c,errs=0;
|
||||
CDrv *dv=Let2Drv(drv_let),*old_dv=Fs->cur_dv;
|
||||
U8 *files_find_mask=MStrPrint("%c:/*",Drv2Let(dv)),
|
||||
*old_dir=StrNew(Fs->cur_dir),
|
||||
*bits;
|
||||
U32 *bits2;
|
||||
Drv(drv_let);
|
||||
"Scanning...\n";
|
||||
size=(dv->size-(dv->data_area-dv->drv_offset))/dv->spc;
|
||||
bpc=dv->spc<<BLK_SIZE_BITS;
|
||||
bits=CAlloc((size+7)>>3);
|
||||
bits2=CAlloc(size*4+BLK_SIZE);
|
||||
RBlks(dv,bits2,dv->fat1,(size*4+BLK_SIZE-1)>>BLK_SIZE_BITS);
|
||||
|
||||
c=dv->root_cluster;
|
||||
while (0<c<0x0FFFFFF8) {
|
||||
if (c>size) {
|
||||
PrintErr("Invalid Cluster: RootDir Cluster:%X\n",c);
|
||||
errs++;
|
||||
break;
|
||||
}
|
||||
if (LBts(bits,c)) {
|
||||
PrintErr("Dbl Alloc: RootDir Cluster:%X\n",c);
|
||||
errs++;
|
||||
}
|
||||
if (!bits2[c]) {
|
||||
PrintErr("UnAlloc: RootDir Cluster:%X\n",c);
|
||||
errs++;
|
||||
} else
|
||||
bits2[c]=0;
|
||||
c=ClusterNumNext(dv,c);
|
||||
}
|
||||
|
||||
errs+=FAT32ChkDskLst(dv,FilesFind(files_find_mask,FUF_RECURSE),
|
||||
bits,bits2,size,bpc);
|
||||
|
||||
bits2[1]=0; //See $LK,"FAT32Fmt",A="MN:FAT32Fmt"$()
|
||||
for (i=1;i<size;i++)
|
||||
if (bits2[i]) {
|
||||
PrintWarn("Shouldn't Alloc Cluster:%0X\n",i);
|
||||
errs++;
|
||||
if (ChkDskConfirm(_fix,_confirm))
|
||||
FAT32FreeClusters(dv,i);
|
||||
}
|
||||
Free(files_find_mask);
|
||||
Free(bits);
|
||||
Free(bits2);
|
||||
Drv(Drv2Let(old_dv));
|
||||
Cd(old_dir);
|
||||
Free(old_dir);
|
||||
return errs;
|
||||
}
|
||||
|
||||
public I64 ChkDsk(U8 drv_let=0,Bool fix=FALSE,Bool confirm=TRUE)
|
||||
{//Check disk for allocation errors and, optionally, fix.
|
||||
//You probably want to reformat and reinstall.
|
||||
I64 errs=0;
|
||||
CDrv *dv=Let2Drv(drv_let);
|
||||
switch (dv->fs_type) {
|
||||
case FSt_REDSEA:
|
||||
errs=RedSeaChkDsk(drv_let,&fix,&confirm);
|
||||
break;
|
||||
case FSt_FAT32:
|
||||
errs=FAT32ChkDsk(drv_let,&fix,&confirm);
|
||||
break;
|
||||
default:
|
||||
PrintErr("File System Not Supported\n");
|
||||
}
|
||||
if (errs) {
|
||||
if (fix)
|
||||
"It might be a little better. ";
|
||||
"Copy files to another partition or CD/DVD, "
|
||||
"reformat, and copy back. "
|
||||
"Or, copy from a back-up.\n";
|
||||
}
|
||||
return errs;
|
||||
}
|
||||
|
||||
U0 RedSeaDrvView(U8 drv_let=0)
|
||||
{
|
||||
CDrv *dv=Let2Drv(drv_let);
|
||||
I64 lohi,c1,i,x,y,l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1),
|
||||
s=dv->size+dv->drv_offset-dv->data_area;
|
||||
U8 *bitmap;
|
||||
CDC *dc=DCAlias;
|
||||
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
WinMax;
|
||||
WinBorder(ON);
|
||||
DocCursor;
|
||||
DocClear;
|
||||
DCFill;
|
||||
try {
|
||||
i=((s+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS;
|
||||
bitmap=MAlloc(i<<BLK_SIZE_BITS);
|
||||
RBlks(dv,bitmap,dv->fat1,i);
|
||||
i=0;
|
||||
for (y=0;y<GR_HEIGHT-3*FONT_HEIGHT;y++) {
|
||||
if (ScanKey)
|
||||
break;
|
||||
for (x=0;x<GR_WIDTH-FONT_WIDTH<<1;x++) {
|
||||
lohi=i*s;
|
||||
c1=lohi/l;
|
||||
if (Bt(bitmap,c1))
|
||||
dc->color=ROP_XOR+BLUE^TRANSPARENT;
|
||||
else
|
||||
dc->color=ROP_XOR+WHITE^TRANSPARENT;
|
||||
GrPlot(dc,x,y);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
Free(bitmap);
|
||||
} catch
|
||||
DrvUnlock(dv);
|
||||
GetChar;
|
||||
|
||||
SettingsPop;
|
||||
DCFill;
|
||||
DCDel(dc);
|
||||
}
|
||||
U0 FAT32DrvView(U8 drv_let=0)
|
||||
{
|
||||
CDrv *dv=Let2Drv(drv_let);
|
||||
I64 lohi,c1,i,x,y,l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1),
|
||||
s=(dv->size+dv->spc-1)/dv->spc-(2+dv->data_area-dv->drv_offset);
|
||||
U32 *bitmap;
|
||||
CDC *dc=DCAlias;
|
||||
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
WinMax;
|
||||
WinBorder(ON);
|
||||
DocCursor;
|
||||
DocClear;
|
||||
DCFill;
|
||||
try {
|
||||
i=(s*4+BLK_SIZE-1)>>BLK_SIZE_BITS;
|
||||
bitmap=MAlloc(i<<BLK_SIZE_BITS);
|
||||
RBlks(dv,bitmap,dv->fat1,i);
|
||||
i=0;
|
||||
for (y=0;y<GR_HEIGHT-3*FONT_HEIGHT;y++) {
|
||||
if (ScanKey)
|
||||
break;
|
||||
for (x=0;x<GR_WIDTH-FONT_WIDTH<<1;x++) {
|
||||
lohi=i*s;
|
||||
c1=lohi/l;
|
||||
if (bitmap[c1])
|
||||
dc->color=ROP_XOR+BLUE^TRANSPARENT;
|
||||
else
|
||||
dc->color=ROP_XOR+WHITE^TRANSPARENT;
|
||||
GrPlot(dc,x,y);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
Free(bitmap);
|
||||
} catch
|
||||
DrvUnlock(dv);
|
||||
GetChar;
|
||||
|
||||
SettingsPop;
|
||||
DCFill;
|
||||
DCDel(dc);
|
||||
}
|
||||
public U0 DrvView(U8 drv_let=0)
|
||||
{//Drive view. Graph the allocation map's fragmentation.
|
||||
CDrv *dv=Let2Drv(drv_let),*old_dv=Fs->cur_dv;
|
||||
Drv(drv_let);
|
||||
switch (dv->fs_type) {
|
||||
case FSt_REDSEA:
|
||||
RedSeaDrvView(drv_let);
|
||||
break;
|
||||
case FSt_FAT32:
|
||||
FAT32DrvView(drv_let);
|
||||
break;
|
||||
default:
|
||||
PrintErr("File System Not Supported\n");
|
||||
}
|
||||
Drv(Drv2Let(old_dv));
|
||||
}
|
||||
|
||||
public U0 DskView(U8 drv_let=0)
|
||||
{//Disk view. Pie chart of partition sizes.
|
||||
I64 i,j,attr,
|
||||
h=Fs->pix_width,
|
||||
v=Fs->pix_height,
|
||||
radius;
|
||||
CDrv *dv;
|
||||
CBlkDev *bd=Let2BlkDev(drv_let);
|
||||
CDC *dc=DCAlias;
|
||||
F64 sect_start,sect_end;
|
||||
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
DocCursor;
|
||||
DocClear;
|
||||
DCFill;
|
||||
if (h<v)
|
||||
radius=0.4*h;
|
||||
else
|
||||
radius=0.4*v;
|
||||
dc->color=BLACK;
|
||||
GrCircle(dc,h>>1,v>>1,radius);
|
||||
|
||||
j=1;
|
||||
for (i=0;i<DRVS_NUM;i++) {
|
||||
dv=&blkdev.drvs[i];
|
||||
if (bd==dv->bd && dv->fs_type) {
|
||||
sect_start=-(dv->drv_offset*2*ã/(bd->max_blk+1));
|
||||
sect_end =-((dv->drv_offset+dv->size)*2*ã/(bd->max_blk+1));
|
||||
dc->color=BLACK;
|
||||
GrLine(dc,h>>1,v>>1,
|
||||
h>>1+radius*Cos(sect_start),
|
||||
v>>1+radius*Sin(sect_start));
|
||||
GrLine(dc,h>>1,v>>1,
|
||||
h>>1+radius*Cos(sect_end),
|
||||
v>>1+radius*Sin(sect_end));
|
||||
|
||||
attr=DrvTextAttrGet(Drv2Let(dv));
|
||||
dc->color=attr&15;
|
||||
GrPrint(dc,0,v-FONT_HEIGHT*j,"%C %-8Z",Drv2Let(dv),
|
||||
dv->fs_type,"ST_DRV_TYPES");
|
||||
dc->color.c1=attr>>4;
|
||||
dc->color|=ROPF_DITHER;
|
||||
GrFloodFill(dc,
|
||||
h>>1+(radius-4)*Cos((sect_start+sect_end)/2),
|
||||
v>>1+(radius-4)*Sin((sect_start+sect_end)/2),FALSE);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
GetChar(,FALSE);
|
||||
SettingsPop;
|
||||
DCFill;
|
||||
DCDel(dc);
|
||||
}
|
||||
|
||||
I64 RedSeaUnusedDrvSpace(U8 drv_let=0)
|
||||
{
|
||||
CDrv *dv=Let2Drv(drv_let);
|
||||
I64 res=0,i,l;
|
||||
U8 *bitmap;
|
||||
try {
|
||||
l=dv->size+dv->drv_offset-dv->data_area;
|
||||
i=((l+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS;
|
||||
bitmap=MAlloc(i<<BLK_SIZE_BITS);
|
||||
RBlks(dv,bitmap,dv->fat1,i);
|
||||
for (i=0;i<l;i++)
|
||||
if (!Bt(bitmap,i))
|
||||
res++;
|
||||
Free(bitmap);
|
||||
} catch
|
||||
DrvUnlock(dv);
|
||||
return res*BLK_SIZE*dv->spc;
|
||||
}
|
||||
I64 FAT32UnusedDrvSpace(U8 drv_let=0)
|
||||
{
|
||||
CDrv *dv=Let2Drv(drv_let);
|
||||
I64 res=0,i,l;
|
||||
U32 *bitmap;
|
||||
try {
|
||||
l=(dv->size+dv->spc-1)/dv->spc-(2+dv->data_area-dv->drv_offset);
|
||||
i=(l*4+BLK_SIZE-1)>>BLK_SIZE_BITS;
|
||||
bitmap=MAlloc(i<<BLK_SIZE_BITS);
|
||||
RBlks(dv,bitmap,dv->fat1,i);
|
||||
for (i=0;i<l;i++)
|
||||
if (!bitmap[i])
|
||||
res++;
|
||||
Free(bitmap);
|
||||
} catch
|
||||
DrvUnlock(dv);
|
||||
return res*BLK_SIZE*dv->spc;
|
||||
}
|
||||
public I64 UnusedDrvSpace(U8 drv_let=0)
|
||||
{//Returns unused size in bytes.
|
||||
CDrv *dv=Let2Drv(drv_let),*old_dv=Fs->cur_dv;
|
||||
U8 *old_dir=StrNew(Fs->cur_dir);
|
||||
I64 res=0;
|
||||
Drv(drv_let);
|
||||
switch (dv->fs_type) {
|
||||
case FSt_REDSEA:
|
||||
res=RedSeaUnusedDrvSpace(drv_let);
|
||||
break;
|
||||
case FSt_FAT32:
|
||||
res=FAT32UnusedDrvSpace(drv_let);
|
||||
break;
|
||||
default:
|
||||
PrintErr("File System Not Supported\n");
|
||||
}
|
||||
Drv(Drv2Let(old_dv));
|
||||
Cd(old_dir);
|
||||
Free(old_dir);
|
||||
return res;
|
||||
}
|
||||
@@ -141,6 +141,9 @@ CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_head,Bool init)
|
||||
return tmpde;
|
||||
}
|
||||
|
||||
#define DEF2_PROCESSED 1
|
||||
#define DEF2_NOT_INITIALIZED 2
|
||||
|
||||
U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode)
|
||||
{
|
||||
CDrv *dv;
|
||||
@@ -222,7 +225,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode)
|
||||
tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE);
|
||||
else {
|
||||
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)
|
||||
FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE);
|
||||
@@ -388,11 +391,10 @@ U0 FMFmtDrv(CDoc *doc)
|
||||
Free(st);
|
||||
}
|
||||
|
||||
U0 FMMakeISO(CDoc *doc,I64 type)
|
||||
U0 FMMakeISO(CDoc *doc)
|
||||
{
|
||||
CDocEntry *doc_ce=doc->cur_entry;
|
||||
CDirEntry *tmpde;
|
||||
U8 *st;
|
||||
if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL)
|
||||
tmpde=doc_ce->user_data;
|
||||
else
|
||||
@@ -402,19 +404,7 @@ U0 FMMakeISO(CDoc *doc,I64 type)
|
||||
tmpde=tmpde->parent;
|
||||
if (tmpde && *tmpde->full_name) {
|
||||
Silent;
|
||||
switch (type) {
|
||||
case FSt_REDSEA:
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -455,18 +445,18 @@ U0 FMCopy(CDoc *doc)
|
||||
while (doc_e!=doc2) {
|
||||
if (doc_e->type_u8==DOCT_MENU_VAL) {
|
||||
tmpde=doc_e->user_data;
|
||||
tmpde->flags|=DEF_PROCESSED;
|
||||
tmpde->user_data2|=DEF2_PROCESSED;
|
||||
tmpde2=tmpde->parent;
|
||||
if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) {
|
||||
if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) {
|
||||
Silent;
|
||||
Copy(tmpde->full_name,tmpde1->full_name);
|
||||
Silent(OFF);
|
||||
}
|
||||
} else if (doc_e->type_u8==DOCT_TREE) {
|
||||
tmpde=doc_e->user_data;
|
||||
tmpde->flags|=DEF_PROCESSED;
|
||||
tmpde->user_data2|=DEF2_PROCESSED;
|
||||
tmpde2=tmpde->parent;
|
||||
if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) {
|
||||
if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) {
|
||||
Silent;
|
||||
if (*tmpde1->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_UNMOUNT 10
|
||||
#define FMR_MAKE_REDSEA_ISO_C 11
|
||||
#define FMR_MAKE_ISO9660 12
|
||||
#define FMR_BURN_ISO 13
|
||||
#define FMR_HELP 14
|
||||
#define FMR_BURN_ISO 12
|
||||
#define FMR_HELP 13
|
||||
|
||||
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$$"
|
||||
"$$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,29,0$$$$BT,\"MAKE ISO (CD/DVD) FILE \",LE=FMR_MAKE_ISO9660$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$"
|
||||
"$$CM+LX,29,0$$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$"
|
||||
"$$CM+LX,29,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n");
|
||||
if (footer) DocPrint(doc,"%s",footer);
|
||||
@@ -567,9 +555,6 @@ U0 FMRightClick()
|
||||
case FMR_MAKE_REDSEA_ISO_C:
|
||||
Msg(MSG_KEY_DOWN,'m',0);
|
||||
break;
|
||||
case FMR_MAKE_ISO9660:
|
||||
Msg(MSG_KEY_DOWN,'M',0);
|
||||
break;
|
||||
case FMR_BURN_ISO:
|
||||
Msg(MSG_KEY_DOWN,'B',0);
|
||||
break;
|
||||
@@ -724,11 +709,8 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL)
|
||||
case 'u':
|
||||
FMUnmount(doc);
|
||||
break;
|
||||
case 'M':
|
||||
FMMakeISO(doc,FSt_ISO9660);
|
||||
break;
|
||||
case 'm':
|
||||
FMMakeISO(doc,FSt_REDSEA);
|
||||
FMMakeISO(doc);
|
||||
break;
|
||||
case 'B':
|
||||
FMBurnISO(doc);
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
#help_index "Install;File/Cmd Line (Typically);Cmd Line (Typically)"
|
||||
|
||||
#define ROUND_DRV_TO (63*255)
|
||||
#define DRV_HEADER 63
|
||||
|
||||
class CPlannedDrv
|
||||
{
|
||||
CPlannedDrv *next,*last;
|
||||
I64 size;
|
||||
Bool pri;
|
||||
};
|
||||
|
||||
public I64 PrtDsk(U8 drv_let=0,...)
|
||||
{/*Partition the disk containing partition drv_let.
|
||||
|
||||
drv_let=0 means add new drive that is not already mounted.
|
||||
|
||||
>PrtDsk('C',0.5,0.25,0.25); //Make three. 50% C, 25% D, 25% E, round-up to blk.
|
||||
|
||||
*/
|
||||
CBlkDev *bd;
|
||||
CPlannedDrv head,*tmppp;
|
||||
CMasterBoot mbr;
|
||||
Bool pri=TRUE;
|
||||
I64 ext_base,drv_let2,pri_cnt=0,i,start_offset,offset,
|
||||
total,remaining,cur_arg=0;
|
||||
"This command does not play well\n"
|
||||
"with other operating systems.\n"
|
||||
"You really should use another\n"
|
||||
"operating system's partitioner.\n"
|
||||
"If you use this, it may, in fact,\n"
|
||||
"make your hard drive impossible\n"
|
||||
"to repartition with other operating\n"
|
||||
"until you set block zero to zero\n"
|
||||
"with $$LK,\"BootMHDZero\",\"MN:BootMHDZero\"$$()\n\n\n"
|
||||
"Continue";
|
||||
if (argc<=cur_arg && !YorN)
|
||||
return 0;
|
||||
'\n';
|
||||
|
||||
if (drv_let && !Let2BlkDev(drv_let,FALSE))
|
||||
drv_let=0;
|
||||
if (!drv_let && !(drv_let=Mount(TRUE)) ||
|
||||
!(bd=Let2BlkDev(drv_let,FALSE)) || bd->type!=BDT_ATA)
|
||||
return 0;
|
||||
|
||||
total=bd->max_blk+1;
|
||||
QueInit(&head);
|
||||
drv_let2=bd->first_drv_let;
|
||||
remaining=FloorU64(bd->max_blk+1,ROUND_DRV_TO);
|
||||
while (FloorU64(remaining,ROUND_DRV_TO)>=ROUND_DRV_TO) {
|
||||
tmppp=MAlloc(sizeof(CPlannedDrv));
|
||||
do {
|
||||
"$$RED$$Partition %C$$FG$$\n",drv_let2;
|
||||
tmppp->pri=FALSE;
|
||||
if (pri) {
|
||||
"Primary Partition";
|
||||
if (argc>cur_arg || YorN) {
|
||||
pri_cnt++;
|
||||
tmppp->pri=TRUE;
|
||||
if (pri_cnt==3)
|
||||
pri=FALSE;
|
||||
} else
|
||||
pri=FALSE;
|
||||
}
|
||||
"\nBlocks Remaining:%d (0x%X)\n",
|
||||
remaining-DRV_HEADER,remaining-DRV_HEADER;
|
||||
if (argc>cur_arg)
|
||||
tmppp->size=MinI64(CeilU64(MaxI64(remaining,DRV_HEADER),ROUND_DRV_TO),
|
||||
CeilU64(argv[cur_arg++](F64)*total,ROUND_DRV_TO));
|
||||
else
|
||||
tmppp->size=CeilU64(GetI64("Size in Blocks :",
|
||||
remaining-DRV_HEADER)+DRV_HEADER,ROUND_DRV_TO);
|
||||
} while (!(ROUND_DRV_TO<=tmppp->size<=FloorU64(remaining,ROUND_DRV_TO)));
|
||||
QueIns(tmppp,head.last);
|
||||
remaining-=tmppp->size;
|
||||
drv_let2++;
|
||||
}
|
||||
|
||||
"\n\n!!! Repartition Drive !!!\n\n";
|
||||
tmppp=head.next;
|
||||
drv_let2=bd->first_drv_let;
|
||||
while (tmppp!=&head) {
|
||||
"Drive %C:%08X ",drv_let2,tmppp->size;
|
||||
if (tmppp->pri)
|
||||
"Primary\n";
|
||||
else
|
||||
"Logical\n";
|
||||
tmppp=tmppp->next;
|
||||
drv_let2++;
|
||||
}
|
||||
if (!argc && !AreYouSure)
|
||||
goto pd_done;
|
||||
|
||||
remaining=FloorU64(bd->max_blk+1,ROUND_DRV_TO)-ROUND_DRV_TO;
|
||||
tmppp=head.next;
|
||||
MemSet(&mbr,0,BLK_SIZE);
|
||||
mbr.signature=0xAA55;
|
||||
offset=0;
|
||||
for (i=0;i<pri_cnt;i++) {
|
||||
mbr.p[i].active=0x80;
|
||||
mbr.p[i].start_head=0;
|
||||
mbr.p[i].start_cyl=0x101;
|
||||
mbr.p[i].type=1; //Will get set different.
|
||||
mbr.p[i].end_head=0xFE;
|
||||
mbr.p[i].end_cyl=0xFFFF;
|
||||
mbr.p[i].offset=DRV_HEADER+offset;
|
||||
mbr.p[i].size=tmppp->size-DRV_HEADER;
|
||||
offset+=tmppp->size;
|
||||
remaining-=tmppp->size;
|
||||
tmppp=tmppp->next;
|
||||
}
|
||||
if (!i) i++;
|
||||
if (tmppp!=&head) {
|
||||
mbr.p[i].active=0x80;
|
||||
mbr.p[i].start_head=0;
|
||||
mbr.p[i].start_cyl=0x101;
|
||||
mbr.p[i].type=0xF;
|
||||
mbr.p[i].end_head=0xFE;
|
||||
mbr.p[i].end_cyl=0xFFFF;
|
||||
mbr.p[i].offset=offset;
|
||||
mbr.p[i].size=remaining;
|
||||
ext_base=offset;
|
||||
}
|
||||
ATAWriteBlks(bd,&mbr,0,1);
|
||||
|
||||
while (tmppp!=&head) {
|
||||
start_offset=offset;
|
||||
MemSet(&mbr,0,BLK_SIZE);
|
||||
mbr.signature=0xAA55;
|
||||
|
||||
mbr.p[0].active=0x80;
|
||||
mbr.p[0].start_head=1;
|
||||
mbr.p[0].start_cyl=0x101;
|
||||
mbr.p[0].type=1; //Will get set different.
|
||||
mbr.p[0].end_head=0xFE;
|
||||
mbr.p[0].end_cyl=0xFFFF;
|
||||
mbr.p[0].offset=DRV_HEADER;
|
||||
mbr.p[0].size=tmppp->size-DRV_HEADER;
|
||||
offset+=tmppp->size;
|
||||
tmppp=tmppp->next;
|
||||
if (tmppp!=&head) {
|
||||
mbr.p[1].active=0x80;
|
||||
mbr.p[1].start_head=0;
|
||||
mbr.p[1].start_cyl=0x101;
|
||||
mbr.p[1].type=5;
|
||||
mbr.p[1].end_head=0xFE;
|
||||
mbr.p[1].end_cyl=0xFFFF;
|
||||
mbr.p[1].offset=offset-ext_base;
|
||||
mbr.p[1].size=tmppp->size;
|
||||
}
|
||||
ATAWriteBlks(bd,&mbr,start_offset,1);
|
||||
}
|
||||
|
||||
bd->flags&=~(BDF_INITIALIZED | BDF_INIT_IN_PROGRESS);
|
||||
BlkDevAdd(bd,,FALSE,TRUE);
|
||||
for (i=bd->first_drv_let;i<drv_let2;i++)
|
||||
Fmt(i,,FALSE);
|
||||
|
||||
pd_done:
|
||||
while (head.next!=&head) {
|
||||
tmppp=head.next;
|
||||
QueRem(tmppp);
|
||||
Free(tmppp);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
@@ -8,19 +8,15 @@ U0 LoadDocDefines()
|
||||
DefinePrint("DD_TEMPLEOS_AGE","%0.1f",
|
||||
(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);
|
||||
bfh(I64)+=bfh->file_size-1;
|
||||
DefinePrint("DD_KERNEL_END","%08X",bfh);
|
||||
|
||||
//$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$
|
||||
|
||||
$TR-C,"LineRep"$
|
||||
$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,860");
|
||||
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,136");
|
||||
$ID,-4$
|
||||
$TR,"LineRep"$
|
||||
$ID,2$DefinePrint("DD_TEMPLEOS_LOC","81,445");
|
||||
$ID,-2$
|
||||
DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR);
|
||||
DefinePrint("DD_MP_VECT_END","%08X",
|
||||
MP_VECT_ADDR+COREAP_16BIT_INIT_END-COREAP_16BIT_INIT-1);
|
||||
|
||||
@@ -51,8 +51,6 @@ extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0);
|
||||
extern I64 FindWiz();
|
||||
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 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 CMenu *MenuFilePush(U8 *filename);
|
||||
extern U0 MenuPop();
|
||||
|
||||
@@ -258,13 +258,13 @@ U0 ACTask(I64)
|
||||
|
||||
public Bool AutoComplete(Bool val=OFF)
|
||||
{//Turn AutoComplete OFF or ON.
|
||||
Bool old_autocomplete=FALSE;
|
||||
Bool old_val=FALSE;
|
||||
while (Bt(&ac.flags,ACf_INIT_IN_PROGRESS))
|
||||
Sleep(10);
|
||||
if (val) {
|
||||
if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) {
|
||||
if (TaskValidate(ac.task))
|
||||
old_autocomplete=TRUE;
|
||||
old_val=TRUE;
|
||||
else {
|
||||
ac.task=Spawn(&ACTask,NULL,"AutoComplete");
|
||||
TaskWait(ac.task);
|
||||
@@ -274,10 +274,10 @@ public Bool AutoComplete(Bool val=OFF)
|
||||
} else {
|
||||
if (TaskValidate(ac.task)) {
|
||||
if (Bt(&sys_run_level,RLf_AUTO_COMPLETE))
|
||||
old_autocomplete=TRUE;
|
||||
old_val=TRUE;
|
||||
Kill(ac.task);
|
||||
DeathWait(&ac.task);
|
||||
}
|
||||
}
|
||||
return old_autocomplete;
|
||||
return old_val;
|
||||
}
|
||||
@@ -264,9 +264,9 @@ Bool DocCaptureUndo(CDoc *doc,Bool force=FALSE)
|
||||
doc->undo_cnt++;
|
||||
u->doc_flags=doc->flags;
|
||||
res=TRUE;
|
||||
}
|
||||
if (doc->flags&DOCF_AUTO_SAVE)
|
||||
DocWrite(doc);
|
||||
}
|
||||
if (unlock)
|
||||
DocUnlock(doc);
|
||||
}
|
||||
|
||||
@@ -572,7 +572,7 @@ Bool sel=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE)
|
||||
|
||||
class CEdLineGoTo
|
||||
{
|
||||
I64 line fmtstr "$$DA,A=\"Go to Line:%d\"$$";
|
||||
I64 line format "$$DA,A=\"Go to Line:%d\"$$";
|
||||
};
|
||||
|
||||
U0 EdGoToLine(CDoc *doc)
|
||||
|
||||
@@ -208,11 +208,11 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e)
|
||||
#help_index "DolDoc/Input;StdIn/DolDoc"
|
||||
public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
|
||||
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"$.
|
||||
CMemberLst *ml;
|
||||
CDocEntry *doc_e;
|
||||
U8 *fmtstr;
|
||||
U8 *format;
|
||||
CHashClass *tmpc,*tmpc2;
|
||||
CDoc *doc;
|
||||
Bool res=FALSE;
|
||||
@@ -227,8 +227,8 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
|
||||
doc->flags|=DOCF_SIZE_MIN;
|
||||
ml=tmpc->member_lst_and_root;
|
||||
while (ml) {
|
||||
if ((fmtstr=MemberMetaData("fmtstr",ml)) &&
|
||||
(doc_e=DocPrint(doc,"%s",fmtstr))) {
|
||||
if ((format=MemberMetaData("format",ml)) &&
|
||||
(doc_e=DocPrint(doc,"%s",format))) {
|
||||
tmpc2=ml->member_class;
|
||||
if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST ||
|
||||
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 **);
|
||||
} else
|
||||
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);
|
||||
}
|
||||
ml=ml->next;
|
||||
|
||||
@@ -53,16 +53,16 @@ public I64 PopUpColorLighting(U8 *header=NULL)
|
||||
|
||||
class CTransformForm
|
||||
{
|
||||
F64 x_scale fmtstr "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n";
|
||||
F64 y_scale fmtstr "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n";
|
||||
F64 z_scale fmtstr "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n";
|
||||
F64 é_z fmtstr "\nAngles are in degrees\n"
|
||||
F64 x_scale format "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n";
|
||||
F64 y_scale format "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n";
|
||||
F64 z_scale format "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n";
|
||||
F64 é_z format "\nAngles are in degrees\n"
|
||||
"$$DA-TRM,A=\"Z-Axis :%12.6f\"$$\n";
|
||||
F64 é_y fmtstr "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n";
|
||||
F64 é_x fmtstr "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n";
|
||||
F64 x_offset fmtstr "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n";
|
||||
F64 y_offset fmtstr "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n";
|
||||
F64 z_offset fmtstr "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n";
|
||||
F64 é_y format "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n";
|
||||
F64 é_x format "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n";
|
||||
F64 x_offset format "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n";
|
||||
F64 y_offset format "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n";
|
||||
F64 z_offset format "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n";
|
||||
};
|
||||
|
||||
#help_index "Graphics/Input;Graphics/Math/3D Transformation"
|
||||
|
||||
@@ -70,17 +70,17 @@ I64 PopUpTermRight(U8 *header)
|
||||
if (header) DocPrint(doc,"%s",header);
|
||||
DocPrint(doc,"\n\n"
|
||||
"TXT=%s\nDD =%s\nJIT=%s\nGR =%s"
|
||||
"$$CM+LX,1,3 $$$$BT,\"INCLUDE JIT\",LE=RIGHT_INCLUDE$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"ADAM_INCLUDE JIT\",LE=RIGHT_AINCLUDE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"COPY \",LE=RIGHT_COPY$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"MOVE OR RENAME \",LE=RIGHT_MOVE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=RIGHT_DELETE$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"TYPE TXT;GR\",LE=RIGHT_TYPE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"DOLDOC EDIT DD\",LE=RIGHT_ED$$"
|
||||
"$$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,25,0$$$$BT,\"INFILE IN\",LE=RIGHT_INFILE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n",
|
||||
"$$CM+LX,1,3 $$$$BT,\"Include JIT\",LE=RIGHT_INCLUDE$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"Adam Include JIT\",LE=RIGHT_AINCLUDE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"Copy \",LE=RIGHT_COPY$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"Move or Rename \",LE=RIGHT_MOVE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"Delete \",LE=RIGHT_DELETE$$"
|
||||
"$$CM+LX,25,0$$$$BT,\"Type TXT;GR\",LE=RIGHT_TYPE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"DolDoc Edit DD\",LE=RIGHT_ED$$"
|
||||
"$$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,25,0$$$$BT,\"Infile IN\",LE=RIGHT_INFILE$$"
|
||||
"$$CM+LX,1,3 $$$$BT,\"Cancel \",LE=DOCM_CANCEL$$\n",
|
||||
FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR);
|
||||
i=PopUpMenu(doc);
|
||||
DocDel(doc);
|
||||
|
||||
@@ -31,132 +31,132 @@ I64 PopUpLinkType(Bool include_anchor)
|
||||
|
||||
class CEdFileLink
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] format "$$DA-P,A=\"File :%s\"$$\n";
|
||||
I64 book;
|
||||
U8 aux[512];
|
||||
I64 num;
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
class CEdFileAnchorLink
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] format "$$DA-P,A=\"File :%s\"$$\n";
|
||||
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;
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
class CEdFileFindLink
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] format "$$DA-P,A=\"File :%s\"$$\n";
|
||||
I64 book;
|
||||
U8 aux[512] fmtstr "$$DA-P,A=\"Str :%s\"$$\n";
|
||||
I64 num fmtstr "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n";
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 aux[512] format "$$DA-P,A=\"Str :%s\"$$\n";
|
||||
I64 num format "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n";
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
class CEdFileLineLink
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] format "$$DA-P,A=\"File :%s\"$$\n";
|
||||
I64 book;
|
||||
U8 aux[512];
|
||||
I64 num fmtstr "$$DA-TRM,A=\"Line Num :%04d\"$$\n";
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
I64 num format "$$DA-TRM,A=\"Line Num :%04d\"$$\n";
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
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];
|
||||
I64 book;
|
||||
U8 aux[512] fmtstr "$$DA-P,A=\"Label :%s\"$$\n";
|
||||
U8 aux[512] format "$$DA-P,A=\"Label :%s\"$$\n";
|
||||
I64 num;
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
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];
|
||||
I64 book;
|
||||
U8 aux[512] fmtstr "$$DA-P,A=\"Addr Exp :%s\"$$\n";
|
||||
I64 num fmtstr "$$DA-TRM,A=\"Bin Size :%04d\"$$\n";
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 aux[512] format "$$DA-P,A=\"Addr Exp :%s\"$$\n";
|
||||
I64 num format "$$DA-TRM,A=\"Bin Size :%04d\"$$\n";
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
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];
|
||||
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;
|
||||
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,
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
hide fmtstr "$$CB,\"Hide\"$$\n";
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide format "$$CB,\"Hide\"$$\n";
|
||||
};
|
||||
|
||||
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];
|
||||
I64 book fmtstr "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n";
|
||||
U8 aux[512] fmtstr "$$DA-P,A=\"Chapter Verse :%s\"$$\n";
|
||||
I64 book format "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n";
|
||||
U8 aux[512] format "$$DA-P,A=\"Chapter Verse :%s\"$$\n";
|
||||
I64 num;
|
||||
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
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];
|
||||
I64 book;
|
||||
U8 aux[512] fmtstr "$$DA-P,A=\"Word :%s\"$$\n";
|
||||
I64 num fmtstr "$$DA-TRM,A=\"Def Num :%4d\"$$\n";
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 aux[512] format "$$DA-P,A=\"Word :%s\"$$\n";
|
||||
I64 num format "$$DA-TRM,A=\"Def Num :%4d\"$$\n";
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
class CEdProject
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
file[512] format "$$DA-P,A=\"File :%s\"$$\n";
|
||||
I64 book;
|
||||
U8 aux[512];
|
||||
I64 num;
|
||||
U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n",
|
||||
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
Bool pop_up format "$$CB,\"PopUp\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n",
|
||||
hide;
|
||||
};
|
||||
|
||||
@@ -434,14 +434,14 @@ U0 EdInsColor()
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
class CEdPageSetting2
|
||||
{
|
||||
U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n";
|
||||
Bool winrel fmtstr "$$CB,\"Win Relative\"$$\n";
|
||||
U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n";
|
||||
Bool winrel format "$$CB,\"Win Relative\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsPageSetting()
|
||||
@@ -508,21 +508,21 @@ I64 PopUpWidgetType()
|
||||
|
||||
class CEdText
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool left_x fmtstr "$$CB,\"Left X\"$$\n",
|
||||
center_x fmtstr "$$CB,\"Center X\"$$\n",
|
||||
right_x fmtstr "$$CB,\"Right X\"$$\n",
|
||||
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n",
|
||||
blink fmtstr "$$CB,\"Blink\"$$\n",
|
||||
invert fmtstr "$$CB,\"Invert\"$$\n",
|
||||
underline fmtstr "$$CB,\"Underline\"$$\n",
|
||||
tree fmtstr "$$CB,\"Tree\"$$\n",
|
||||
collapsed fmtstr "$$CB,\"Collapsed\"$$\n";
|
||||
U8 scroll_x [512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
|
||||
shift_x [512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
|
||||
shift_y [512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n",
|
||||
define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n",
|
||||
html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool left_x format "$$CB,\"Left X\"$$\n",
|
||||
center_x format "$$CB,\"Center X\"$$\n",
|
||||
right_x format "$$CB,\"Right X\"$$\n",
|
||||
margin_rel format "$$CB,\"Margin Rel X\"$$\n",
|
||||
blink format "$$CB,\"Blink\"$$\n",
|
||||
invert format "$$CB,\"Invert\"$$\n",
|
||||
underline format "$$CB,\"Underline\"$$\n",
|
||||
tree format "$$CB,\"Tree\"$$\n",
|
||||
collapsed format "$$CB,\"Collapsed\"$$\n";
|
||||
U8 scroll_x [512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
|
||||
shift_x [512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
|
||||
shift_y [512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n",
|
||||
define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n",
|
||||
html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsText()
|
||||
@@ -566,8 +566,8 @@ U0 EdInsText()
|
||||
|
||||
class CEdSong
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
song[512] fmtstr "$$DA-P,A=\"Song :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
song[512] format "$$DA-P,A=\"Song :%s\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsSong()
|
||||
@@ -580,7 +580,7 @@ U0 EdInsSong()
|
||||
|
||||
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()
|
||||
@@ -593,22 +593,22 @@ U0 EdInsHtml()
|
||||
|
||||
class CEdMacroMenu
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro :%s\"$$\n",
|
||||
left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression :%s\"$$\n";
|
||||
Bool popup fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n",
|
||||
left_x fmtstr "$$CB,\"Left X \"$$\n",
|
||||
center_x fmtstr "$$CB,\"Center X \"$$\n",
|
||||
right_x fmtstr "$$CB,\"Right X \"$$\n",
|
||||
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n",
|
||||
blink fmtstr "$$CB,\"Blink\"$$\n",
|
||||
invert fmtstr "$$CB,\"Invert\"$$\n",
|
||||
underline fmtstr "$$CB,\"Underline\"$$\n",
|
||||
escape fmtstr "$$CB,\"Escape\"$$\n";
|
||||
U8 scroll_x[512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
|
||||
shift_x[512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
|
||||
shift_y[512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
left_macro[512] format "$$DA-P,A=\"Left Click Macro :%s\"$$\n",
|
||||
left_exp[512] format "$$DA-P,A=\"Left Click Expression :%s\"$$\n";
|
||||
Bool popup format "$$CB,\"PopUp\"$$\n",
|
||||
left_is_in_str format "$$CB,\"Left is InStr\"$$\n",
|
||||
left_x format "$$CB,\"Left X \"$$\n",
|
||||
center_x format "$$CB,\"Center X \"$$\n",
|
||||
right_x format "$$CB,\"Right X \"$$\n",
|
||||
margin_rel format "$$CB,\"Margin Rel X\"$$\n",
|
||||
blink format "$$CB,\"Blink\"$$\n",
|
||||
invert format "$$CB,\"Invert\"$$\n",
|
||||
underline format "$$CB,\"Underline\"$$\n",
|
||||
escape format "$$CB,\"Escape\"$$\n";
|
||||
U8 scroll_x[512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n",
|
||||
shift_x[512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n",
|
||||
shift_y[512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsMacroMenu(Bool is_macro)
|
||||
@@ -663,17 +663,17 @@ U0 EdInsMacroMenu(Bool is_macro)
|
||||
|
||||
class CEdBttn
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool popup fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
left_x fmtstr "$$CB,\"Left X \"$$\n",
|
||||
center_x fmtstr "$$CB,\"Center X \"$$\n",
|
||||
right_x fmtstr "$$CB,\"Right X \"$$\n",
|
||||
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n",
|
||||
escape fmtstr "$$CB,\"Escape\"$$\n";
|
||||
U8 left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro:%s\"$$\n";
|
||||
Bool left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n";
|
||||
U8 left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression:%s\"$$\n";
|
||||
Bool quote fmtstr "$$CB,\"Quote\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool popup format "$$CB,\"PopUp\"$$\n",
|
||||
left_x format "$$CB,\"Left X \"$$\n",
|
||||
center_x format "$$CB,\"Center X \"$$\n",
|
||||
right_x format "$$CB,\"Right X \"$$\n",
|
||||
margin_rel format "$$CB,\"Margin Rel X\"$$\n",
|
||||
escape format "$$CB,\"Escape\"$$\n";
|
||||
U8 left_macro[512] format "$$DA-P,A=\"Left Click Macro:%s\"$$\n";
|
||||
Bool left_is_in_str format "$$CB,\"Left is InStr\"$$\n";
|
||||
U8 left_exp[512] format "$$DA-P,A=\"Left Click Expression:%s\"$$\n";
|
||||
Bool quote format "$$CB,\"Quote\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsBttn()
|
||||
@@ -723,17 +723,17 @@ U0 EdInsBttn()
|
||||
|
||||
class CEdCursorMovement
|
||||
{
|
||||
U8 left_exp[512] fmtstr "$$DA-P,A=\"X Expression (LE):%s\"$$\n",
|
||||
right_exp[512] fmtstr "$$DA-P,A=\"Y Expression (RE):%s\"$$\n";
|
||||
Bool left_x fmtstr "$$CB,\"Left X \"$$\n",
|
||||
center_x fmtstr "$$CB,\"Center X \"$$\n",
|
||||
right_x fmtstr "$$CB,\"Right X \"$$\n",
|
||||
margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n",
|
||||
top_y fmtstr "$$CB,\"Top Y \"$$\n",
|
||||
center_y fmtstr "$$CB,\"Center Y \"$$\n",
|
||||
bottom_y fmtstr "$$CB,\"Bottom Y \"$$\n",
|
||||
page_rel fmtstr "$$CB,\"Page Rel Y\"$$\n",
|
||||
quote fmtstr "$$CB,\"Quote\"$$\n";
|
||||
U8 left_exp[512] format "$$DA-P,A=\"X Expression (LE):%s\"$$\n",
|
||||
right_exp[512] format "$$DA-P,A=\"Y Expression (RE):%s\"$$\n";
|
||||
Bool left_x format "$$CB,\"Left X \"$$\n",
|
||||
center_x format "$$CB,\"Center X \"$$\n",
|
||||
right_x format "$$CB,\"Right X \"$$\n",
|
||||
margin_rel format "$$CB,\"Margin Rel X\"$$\n",
|
||||
top_y format "$$CB,\"Top Y \"$$\n",
|
||||
center_y format "$$CB,\"Center Y \"$$\n",
|
||||
bottom_y format "$$CB,\"Bottom Y \"$$\n",
|
||||
page_rel format "$$CB,\"Page Rel Y\"$$\n",
|
||||
quote format "$$CB,\"Quote\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsCursorMovement()
|
||||
@@ -768,22 +768,22 @@ U0 EdInsCursorMovement()
|
||||
|
||||
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;
|
||||
Bool term fmtstr "$$CB,\"Form Field Terminator\"$$\n",
|
||||
Bool term format "$$CB,\"Form Field Terminator\"$$\n",
|
||||
remalloc,
|
||||
refresh fmtstr "$$CB,\"Refresh Data\"$$\n",
|
||||
update fmtstr "$$CB,\"Update Data\"$$\n";
|
||||
refresh format "$$CB,\"Refresh Data\"$$\n",
|
||||
update format "$$CB,\"Update Data\"$$\n";
|
||||
};
|
||||
|
||||
class CEdDataStr
|
||||
{
|
||||
U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n";
|
||||
I64 len fmtstr "$$DA,A=\"Length:%d\"$$\n";
|
||||
Bool term fmtstr "$$CB,\"Zero Terminator\"$$\n",
|
||||
remalloc fmtstr "$$CB,\"Remalloc for Unlimited Length\"$$\n",
|
||||
refresh fmtstr "$$CB,\"Refresh Data\"$$\n",
|
||||
update fmtstr "$$CB,\"Update Data\"$$\n";
|
||||
U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n";
|
||||
I64 len format "$$DA,A=\"Length:%d\"$$\n";
|
||||
Bool term format "$$CB,\"Zero Terminator\"$$\n",
|
||||
remalloc format "$$CB,\"Remalloc for Unlimited Length\"$$\n",
|
||||
refresh format "$$CB,\"Refresh Data\"$$\n",
|
||||
update format "$$CB,\"Update Data\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsData()
|
||||
@@ -834,9 +834,9 @@ U0 EdInsData()
|
||||
|
||||
class CEdCheckBox
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n";
|
||||
I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
Bool refresh format "$$CB,\"Refresh Data\"$$\n";
|
||||
I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsCheckBox()
|
||||
@@ -861,10 +861,10 @@ U0 EdInsCheckBox()
|
||||
|
||||
class CEdLst
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Dft Sel :%s\"$$\n",
|
||||
define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n";
|
||||
Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n";
|
||||
I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Dft Sel :%s\"$$\n",
|
||||
define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n";
|
||||
Bool refresh format "$$CB,\"Refresh Data\"$$\n";
|
||||
I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsLst()
|
||||
@@ -897,10 +897,10 @@ U0 EdInsLst()
|
||||
|
||||
class CEdHexEd
|
||||
{
|
||||
I64 cnt fmtstr "$$DA,A=\"Count:%d\"$$\n",
|
||||
cols fmtstr "$$DA,A=\"Columns:%d\"$$\n";
|
||||
Bool zero fmtstr "$$CB,\"Zero Based\"$$\n",
|
||||
refresh fmtstr "$$CB,\"Refresh Data\"$$\n";
|
||||
I64 cnt format "$$DA,A=\"Count:%d\"$$\n",
|
||||
cols format "$$DA,A=\"Columns:%d\"$$\n";
|
||||
Bool zero format "$$CB,\"Zero Based\"$$\n",
|
||||
refresh format "$$CB,\"Refresh Data\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsHexEd()
|
||||
@@ -921,11 +921,11 @@ U0 EdInsHexEd()
|
||||
|
||||
class CEdBin
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
I64 bin_num fmtstr "$$DA,A=\"Bin Num:%d\"$$\n";
|
||||
U8 bin_ptr_link_file[512] fmtstr "$$DA-P,A=\"File:%s\"$$\n";
|
||||
I64 bin_ptr_link_bin_num fmtstr "$$DA,A=\"File Bin Num:%d\"$$\n";
|
||||
U8 bin_ptr_link_tag[512] fmtstr "$$DA-P,A=\"File Bin Tag:%s\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
I64 bin_num format "$$DA,A=\"Bin Num:%d\"$$\n";
|
||||
U8 bin_ptr_link_file[512] format "$$DA-P,A=\"File:%s\"$$\n";
|
||||
I64 bin_ptr_link_bin_num format "$$DA,A=\"File Bin Num:%d\"$$\n";
|
||||
U8 bin_ptr_link_tag[512] format "$$DA-P,A=\"File Bin Tag:%s\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsBin(I64 bin_num,I64 type)
|
||||
@@ -958,9 +958,9 @@ U0 EdInsBin(I64 bin_num,I64 type)
|
||||
|
||||
class CEdTree
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
I64 indent fmtstr "$$DA,A=\"Indention:%d\"$$\n";
|
||||
Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n";
|
||||
I64 indent format "$$DA,A=\"Indention:%d\"$$\n";
|
||||
Bool collapsed format "$$CB,\"Collapsed\"$$\n";
|
||||
};
|
||||
|
||||
U0 EdInsTree()
|
||||
@@ -1075,18 +1075,18 @@ I64 PopUpSpriteType()
|
||||
|
||||
class CEdMacroSprite
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
exp[512] fmtstr "$$DA-P,A=\"Macro :%s\"$$\n";
|
||||
Bool escape fmtstr "$$CB,\"Escape\"$$\n",
|
||||
popup fmtstr "$$CB,\"PopUp\"$$\n",
|
||||
is_in_str fmtstr "$$CB,\"InStr\"$$\n";
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
exp[512] format "$$DA-P,A=\"Macro :%s\"$$\n";
|
||||
Bool escape format "$$CB,\"Escape\"$$\n",
|
||||
popup format "$$CB,\"PopUp\"$$\n",
|
||||
is_in_str format "$$CB,\"InStr\"$$\n";
|
||||
};
|
||||
|
||||
class CEdMenuSprite
|
||||
{
|
||||
U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
exp[512] fmtstr "$$DA-P,A=\"Expression :%s\"$$\n";
|
||||
Bool escape fmtstr "$$CB,\"Escape\"$$\n",
|
||||
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n",
|
||||
exp[512] format "$$DA-P,A=\"Expression :%s\"$$\n";
|
||||
Bool escape format "$$CB,\"Escape\"$$\n",
|
||||
popup,
|
||||
is_in_str;
|
||||
};
|
||||
|
||||
@@ -4,10 +4,10 @@ DefineLstLoad("ST_RHYTHM_COMPLEXITY","Simple\0Normal\0Complex\0");
|
||||
|
||||
class CMakeSongSettings
|
||||
{
|
||||
I64 complexity fmtstr "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n";
|
||||
Bool rests fmtstr "$$CB,\"Rests\"$$\n";
|
||||
Bool six_eight fmtstr "$$CB,\"Six Eight\"$$\n";
|
||||
I64 octave fmtstr "$$DA-TRM,A=\"Octave:%d\"$$\n";
|
||||
I64 complexity format "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n";
|
||||
Bool rests format "$$CB,\"Rests\"$$\n";
|
||||
Bool six_eight format "$$CB,\"Six Eight\"$$\n";
|
||||
I64 octave format "$$DA-TRM,A=\"Octave:%d\"$$\n";
|
||||
I64 octave_state;
|
||||
};
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ There's something obviously different about people in the Bible compared to peop
|
||||
|
||||
You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken?
|
||||
|
||||
Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses comics for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4: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."
|
||||
|
||||
|
||||
@@ -634,6 +634,60 @@ public CDC *DCExt(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2,
|
||||
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"
|
||||
|
||||
public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
|
||||
|
||||
@@ -414,7 +414,7 @@ public CDC *DCScrnCapture(Bool include_zoom=TRUE,CTask *task=NULL)
|
||||
{//Capture scrn to a device context.
|
||||
CDC *dc;
|
||||
U8 *dst;
|
||||
Refresh(2,TRUE);
|
||||
Refresh(0,FALSE);
|
||||
if (include_zoom)
|
||||
dc=DCCopy(gr.scrn_image,task);
|
||||
else
|
||||
|
||||
@@ -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"$
|
||||
|
||||
#include "BootDVD"
|
||||
#include "DskISORedSea"
|
||||
#include "DskISO9660"
|
||||
|
||||
#help_index "Install"
|
||||
|
||||
|
||||
@@ -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"$
|
||||
|
||||
#include "BootHD"
|
||||
|
||||
@@ -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"$
|
||||
|
||||
#include "BootMHD"
|
||||
|
||||
@@ -1,506 +0,0 @@
|
||||
#help_index "File/CD DVD"
|
||||
|
||||
class CCDVDUserData //Create DVD
|
||||
{
|
||||
I64 loc,path_entry_num,
|
||||
short_dir_blks,long_dir_blks;
|
||||
};
|
||||
|
||||
I64 DVDFileCreate2(CFile *out_file,CDirEntry *tmpde,CISO1DirEntry *tmpi,
|
||||
CISO1DirEntry *tmpi2,I64 *_cur_blk,CDirEntry *parent,Bool write,
|
||||
U8 *stage2_filename,I64 *_stage2_blk)
|
||||
{
|
||||
CCDVDUserData *tmpc;
|
||||
CDirEntry *tmpde1,*tmpde2;
|
||||
CFile *in_file;
|
||||
U8 *buf=MAlloc(DVD_BLK_SIZE),*ptr1,*ptr2;
|
||||
CISO1DirEntry *dir_blk_buf =CAlloc(DVD_BLK_SIZE*128),
|
||||
*de =dir_blk_buf, *de1,
|
||||
*dir_blk_buf2=CAlloc(DVD_BLK_SIZE*128),
|
||||
*de2=dir_blk_buf2,*de12;
|
||||
I64 i,n;
|
||||
|
||||
tmpc=parent->user_data;
|
||||
|
||||
de->len=sizeof(CISO1DirEntry)-1;
|
||||
de->ext_attr_len=0;
|
||||
FillU16Palindrome(&de->vol_seq_num,1);
|
||||
Date2ISO1(&de->date,tmpde->datetime);
|
||||
de->flags=ISO1_ATTR_DIR;
|
||||
de->name_len=1;
|
||||
de->name=0;
|
||||
de->len+=de->name_len;
|
||||
de(U8 *)+=de->len;
|
||||
|
||||
de->len=sizeof(CISO1DirEntry)-1;
|
||||
de->ext_attr_len=0;
|
||||
FillU32Palindrome(&de->loc,tmpc->loc);
|
||||
FillU32Palindrome(&de->size,tmpc->short_dir_blks*DVD_BLK_SIZE);
|
||||
FillU16Palindrome(&de->vol_seq_num,1);
|
||||
Date2ISO1(&de->date,parent->datetime);
|
||||
de->flags=ISO1_ATTR_DIR;
|
||||
de->name_len=1;
|
||||
de->name=1;
|
||||
de->len+=de->name_len;
|
||||
de(U8 *)+=de->len;
|
||||
|
||||
de2->len=sizeof(CISO1DirEntry)-1;
|
||||
de2->ext_attr_len=0;
|
||||
FillU16Palindrome(&de2->vol_seq_num,1);
|
||||
Date2ISO1(&de2->date,tmpde->datetime);
|
||||
de2->flags=ISO1_ATTR_DIR;
|
||||
de2->name_len=1;
|
||||
de2->name=0;
|
||||
de2->len+=de2->name_len;
|
||||
de2(U8 *)+=de2->len;
|
||||
|
||||
de2->len=sizeof(CISO1DirEntry)-1;
|
||||
de2->ext_attr_len=0;
|
||||
FillU32Palindrome(&de2->loc,tmpc->loc+tmpc->short_dir_blks);
|
||||
FillU32Palindrome(&de2->size,tmpc->long_dir_blks*DVD_BLK_SIZE);
|
||||
FillU16Palindrome(&de2->vol_seq_num,1);
|
||||
Date2ISO1(&de2->date,parent->datetime);
|
||||
de2->flags=ISO1_ATTR_DIR;
|
||||
de2->name_len=1;
|
||||
de2->name=1;
|
||||
de2->len+=de2->name_len;
|
||||
de2(U8 *)+=de2->len;
|
||||
|
||||
tmpde1=tmpde->sub;
|
||||
while (tmpde1) {
|
||||
tmpde2=tmpde1->next;
|
||||
if (!write) tmpde1->user_data=CAlloc(sizeof(CCDVDUserData));
|
||||
de1=de;
|
||||
de12=de2;
|
||||
if (tmpde1->attr & RS_ATTR_DIR) {
|
||||
n=DVDFileCreate2(out_file,tmpde1,de,de2,_cur_blk,
|
||||
tmpde,write,stage2_filename,_stage2_blk);
|
||||
de(U8 *)+=sizeof(CISO1DirEntry)-1+n;
|
||||
de2(U8 *)+=sizeof(CISO1DirEntry)-1+n<<1;
|
||||
} else {
|
||||
tmpc=tmpde1->user_data;
|
||||
de->len=sizeof(CISO1DirEntry)-1;
|
||||
de->ext_attr_len=0;
|
||||
FillU32Palindrome(&de->loc,*_cur_blk);
|
||||
tmpc->loc=*_cur_blk;
|
||||
if (write) {
|
||||
if (stage2_filename && !StrCmp(tmpde1->full_name,stage2_filename)) {
|
||||
"$$RED$$!!! Boot Stage 2 !!!$$FG$$\n";
|
||||
if (_stage2_blk) *_stage2_blk=*_cur_blk;
|
||||
}
|
||||
"%X:%s\n",*_cur_blk,tmpde1->full_name;
|
||||
}
|
||||
FillU32Palindrome(&de->size,tmpde1->size);
|
||||
FillU16Palindrome(&de->vol_seq_num,1);
|
||||
Date2ISO1(&de->date,tmpde1->datetime);
|
||||
de->flags=0;
|
||||
de->name_len=StrLen(tmpde1->name);
|
||||
StrCpy(&de->name,tmpde1->name);
|
||||
de->len=de->len+de->name_len;
|
||||
de(U8 *)+=de->len;
|
||||
|
||||
de2->len=sizeof(CISO1DirEntry)-1;
|
||||
de2->ext_attr_len=0;
|
||||
FillU32Palindrome(&de2->loc,*_cur_blk);
|
||||
FillU32Palindrome(&de2->size,tmpde1->size);
|
||||
FillU16Palindrome(&de2->vol_seq_num,1);
|
||||
Date2ISO1(&de2->date,tmpde1->datetime);
|
||||
de2->flags=0;
|
||||
de2->name_len=StrLen(tmpde1->name)<<1;
|
||||
ptr1=&de2->name;
|
||||
ptr2=&tmpde1->name;
|
||||
for (i=0;i<de2->name_len;i=i+2) {
|
||||
ptr1++;
|
||||
*ptr1++=*ptr2++;
|
||||
}
|
||||
de2->len+=de2->name_len;
|
||||
de2(U8 *)+=de2->len;
|
||||
|
||||
in_file=FOpen(tmpde1->full_name,"r");
|
||||
for (i=0;i<(FSize(in_file)+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;i++) {
|
||||
n=4;
|
||||
if ((i+1)<<2>(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS) {
|
||||
n=(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS&3;
|
||||
MemSet(buf,0,DVD_BLK_SIZE);
|
||||
}
|
||||
if (write) {
|
||||
FBlkRead(in_file,buf,i<<2,n);
|
||||
FBlkWrite(out_file,buf,*_cur_blk<<2,n);
|
||||
}
|
||||
*_cur_blk+=1;
|
||||
}
|
||||
FClose(in_file);
|
||||
}
|
||||
if ((de1(U8 *)-dir_blk_buf(U8 *))/DVD_BLK_SIZE!=
|
||||
(de(U8 *) -dir_blk_buf(U8 *))/DVD_BLK_SIZE) {
|
||||
i=de1->len;
|
||||
MemCpy(buf,de1,i);
|
||||
MemSet(de1,0,i);
|
||||
de=dir_blk_buf(U8 *)+(de(U8 *)
|
||||
-dir_blk_buf(U8 *))/DVD_BLK_SIZE*DVD_BLK_SIZE;
|
||||
MemCpy(de,buf,i);
|
||||
de(U8 *)+=i;
|
||||
}
|
||||
if ((de12(U8 *)-dir_blk_buf2(U8 *))/DVD_BLK_SIZE!=
|
||||
(de2(U8 *) -dir_blk_buf2(U8 *))/DVD_BLK_SIZE) {
|
||||
i=de12->len;
|
||||
MemCpy(buf,de12,i);
|
||||
MemSet(de12,0,i);
|
||||
de2(U8 *)=dir_blk_buf2(U8 *)+(de2(U8 *)
|
||||
-dir_blk_buf2(U8 *))/DVD_BLK_SIZE*DVD_BLK_SIZE;
|
||||
MemCpy(de2,buf,i);
|
||||
de2(U8 *)+=i;
|
||||
}
|
||||
tmpde1=tmpde2;
|
||||
}
|
||||
|
||||
tmpc=tmpde->user_data;
|
||||
|
||||
tmpi->len=sizeof(CISO1DirEntry)-1;
|
||||
tmpi->ext_attr_len=0;
|
||||
tmpi->flags=ISO1_ATTR_DIR;
|
||||
if (!tmpde->name[0]) {
|
||||
tmpi->name_len=1;
|
||||
tmpi->name=1;
|
||||
} else {
|
||||
tmpi->name_len=StrLen(tmpde->name);
|
||||
StrCpy(&tmpi->name,tmpde->name);
|
||||
}
|
||||
tmpi->len+=tmpi->name_len;
|
||||
|
||||
n=de(U8 *)+1-dir_blk_buf(U8 *);
|
||||
n=(n+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;
|
||||
FillU32Palindrome(&tmpi->size,n*DVD_BLK_SIZE);
|
||||
FillU32Palindrome(&tmpi->loc,*_cur_blk);
|
||||
tmpc->short_dir_blks=n;
|
||||
tmpc->loc=*_cur_blk;
|
||||
FillU32Palindrome(&dir_blk_buf->size,n*DVD_BLK_SIZE);
|
||||
FillU32Palindrome(&dir_blk_buf->loc,*_cur_blk);
|
||||
FillU16Palindrome(&tmpi->vol_seq_num,1);
|
||||
Date2ISO1(&tmpi->date,tmpde->datetime);
|
||||
if (write)
|
||||
"%X:%s\n",*_cur_blk,tmpde->full_name;
|
||||
if (write)
|
||||
FBlkWrite(out_file,dir_blk_buf,*_cur_blk<<2,n<<2);
|
||||
*_cur_blk+=n;
|
||||
|
||||
tmpi2->len=sizeof(CISO1DirEntry)-1;
|
||||
tmpi2->ext_attr_len=0;
|
||||
tmpi2->flags=ISO1_ATTR_DIR;
|
||||
if (!tmpde->name[0]) {
|
||||
tmpi2->name_len=1;
|
||||
tmpi->name=1;
|
||||
} else {
|
||||
tmpi2->name_len=StrLen(tmpde->name)<<1;
|
||||
ptr1=&tmpi2->name;
|
||||
ptr2=&tmpde->name;
|
||||
for (i=0;i<tmpi2->name_len;i=i+2) {
|
||||
ptr1++;
|
||||
*ptr1++=*ptr2++;
|
||||
}
|
||||
}
|
||||
tmpi2->len+=tmpi2->name_len;
|
||||
n=de2(U8 *)+1-dir_blk_buf2(U8 *);
|
||||
n=(n+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;
|
||||
FillU32Palindrome(&tmpi2->size,n*DVD_BLK_SIZE);
|
||||
FillU32Palindrome(&tmpi2->loc,*_cur_blk);
|
||||
tmpc->long_dir_blks=n;
|
||||
FillU32Palindrome(&dir_blk_buf2->size,n*DVD_BLK_SIZE);
|
||||
FillU32Palindrome(&dir_blk_buf2->loc,*_cur_blk);
|
||||
FillU16Palindrome(&tmpi2->vol_seq_num,1);
|
||||
Date2ISO1(&tmpi2->date,tmpde->datetime);
|
||||
if (write)
|
||||
"%X:%s\n",*_cur_blk,tmpde->full_name;
|
||||
if (write)
|
||||
FBlkWrite(out_file,dir_blk_buf2,*_cur_blk<<2,n<<2);
|
||||
*_cur_blk+=n;
|
||||
|
||||
Free(dir_blk_buf);
|
||||
Free(dir_blk_buf2);
|
||||
Free(buf);
|
||||
return tmpi->name_len;
|
||||
}
|
||||
|
||||
I64 DVDTableLen(CDirEntry *tmpde,I64 *size1,I64 *size2,I64 cur_depth)
|
||||
{//Returns depth
|
||||
CDirEntry *tmpde1=tmpde->sub;
|
||||
I64 max_depth=cur_depth,i;
|
||||
while (tmpde1) {
|
||||
if (tmpde1->attr & RS_ATTR_DIR) {
|
||||
*size1+=sizeof(CISO1PathEntry)-2+ (StrLen(tmpde1->name)+1)&-0x2;
|
||||
*size2+=sizeof(CISO1PathEntry)-2+StrLen(tmpde1->name)<<1;
|
||||
i=DVDTableLen(tmpde1,size1,size2,cur_depth+1);
|
||||
if (i>max_depth) max_depth=i;
|
||||
}
|
||||
tmpde1=tmpde1->next;
|
||||
}
|
||||
return max_depth;
|
||||
}
|
||||
|
||||
U0 DVDFillPathTable(CDirEntry *tmpde,
|
||||
CISO1PathEntry **_itabbuf,CISO1PathEntry **_itabbuf2,
|
||||
I64 parent_entry_num,Bool big_endian,I64 *first_free,
|
||||
I64 cur_level,I64 output_level)
|
||||
{
|
||||
U8 *ptr1,*ptr2;
|
||||
I64 i;
|
||||
CISO1PathEntry *tabbuf=*_itabbuf,*tabbuf2=*_itabbuf2;
|
||||
CDirEntry *tmpde1=tmpde->sub,*tmpde2;
|
||||
CCDVDUserData *tmpc;
|
||||
|
||||
if (cur_level==output_level) {
|
||||
while (tmpde1) {
|
||||
if (tmpde1->attr & RS_ATTR_DIR) {
|
||||
tmpc=tmpde1->user_data;
|
||||
tmpc->path_entry_num=*first_free;
|
||||
tabbuf->name_len=StrLen(tmpde1->name);
|
||||
if (big_endian) {
|
||||
tabbuf->blk=EndianU32(tmpc->loc);
|
||||
tabbuf->parent_entry_num=EndianU16(parent_entry_num);
|
||||
} else {
|
||||
tabbuf->blk=tmpc->loc;
|
||||
tabbuf->parent_entry_num=parent_entry_num;
|
||||
}
|
||||
StrCpy(&tabbuf->name,tmpde1->name);
|
||||
|
||||
tabbuf(U8 *)+=sizeof(CISO1PathEntry)-2+
|
||||
(StrLen(tmpde1->name)+1) & -0x2;
|
||||
|
||||
tabbuf2->name_len=StrLen(tmpde1->name)<<1;
|
||||
if (big_endian) {
|
||||
tabbuf2->blk=EndianU32(tmpc->loc+tmpc->short_dir_blks);
|
||||
tabbuf2->parent_entry_num=EndianU16(parent_entry_num);
|
||||
} else {
|
||||
tabbuf2->blk=tmpc->loc+tmpc->short_dir_blks;
|
||||
tabbuf2->parent_entry_num=parent_entry_num;
|
||||
}
|
||||
ptr1=&tabbuf2->name;
|
||||
ptr2=&tmpde1->name;
|
||||
for (i=0;i<tabbuf2->name_len;i=i+2) {
|
||||
ptr1++;
|
||||
*ptr1++=*ptr2++;
|
||||
}
|
||||
tabbuf2(U8 *)+=sizeof(CISO1PathEntry)-2+
|
||||
StrLen(tmpde1->name)<<1;
|
||||
*first_free+=1;
|
||||
}
|
||||
tmpde1=tmpde1->next;
|
||||
}
|
||||
*_itabbuf=tabbuf;
|
||||
*_itabbuf2=tabbuf2;
|
||||
}
|
||||
tmpde1=tmpde->sub;
|
||||
while (tmpde1) {
|
||||
tmpde2=tmpde1->next;
|
||||
if (tmpde1->attr & RS_ATTR_DIR) {
|
||||
tmpc=tmpde1->user_data;
|
||||
DVDFillPathTable(tmpde1,_itabbuf,_itabbuf2,tmpc->path_entry_num,
|
||||
big_endian,first_free,cur_level+1,output_level);
|
||||
}
|
||||
tmpde1=tmpde2;
|
||||
}
|
||||
}
|
||||
|
||||
public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask,
|
||||
U8 *fu_flags=NULL,U8 *_stage2_filename=NULL)
|
||||
{//See $LK,"::/Misc/DoDistro.HC"$
|
||||
//Use "C:/Distro/*" if you want all files in the C:/Distro directory.
|
||||
//Default flags are "+r" recurse.
|
||||
CISO1PriDesc *iso_pri=CAlloc(DVD_BLK_SIZE),
|
||||
*iso_boot=CAlloc(DVD_BLK_SIZE),
|
||||
*iso_sup=CAlloc(DVD_BLK_SIZE),
|
||||
*iso_term=CAlloc(DVD_BLK_SIZE);
|
||||
CDirEntry *headdir=CAlloc(sizeof(CDirEntry));
|
||||
I64 i,j,stage2_blk=(20<<2+1<<2+DVD_BOOT_LOADER_SIZE/BLK_SIZE)>>2,
|
||||
stage2_size,cur_blk=0,tabsize,tabsize2,first_free,max_depth,fuf_flags=0;
|
||||
U32 *d;
|
||||
CElTorito *et=CAlloc(DVD_BLK_SIZE);
|
||||
U8 *filename,*stage2_filename,
|
||||
*stage1_buf=CAlloc(DVD_BOOT_LOADER_SIZE),
|
||||
*zero_buf=CAlloc(DVD_BLK_SIZE);
|
||||
CISO1PathEntry *tabbuf=NULL,*tabbuf2=NULL,*itabbuf,*itabbuf2;
|
||||
CFile *out_file=NULL;
|
||||
CISO1DirEntry *tmpi;
|
||||
CCDVDUserData *tmpc;
|
||||
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
|
||||
|
||||
if (!_filename)
|
||||
_filename=blkdev.dft_iso_filename;
|
||||
filename=ExtDft(_filename,"ISO");
|
||||
|
||||
if (_stage2_filename)
|
||||
stage2_filename=FileNameAbs(_stage2_filename);
|
||||
else
|
||||
stage2_filename=NULL;
|
||||
|
||||
headdir->attr=RS_ATTR_DIR;
|
||||
headdir->sub=FilesFind(src_files_find_mask,fuf_flags);
|
||||
headdir->datetime=Now;
|
||||
headdir->user_data=CAlloc(sizeof(CCDVDUserData));
|
||||
tmpc=headdir->user_data;
|
||||
tmpc->path_entry_num=1;
|
||||
|
||||
cur_blk=20<<2>>2;
|
||||
if (stage2_filename) //preboot and bootloader
|
||||
cur_blk+=1+DVD_BOOT_LOADER_SIZE/DVD_BLK_SIZE;
|
||||
DVDFileCreate2(out_file,headdir,&iso_pri->root_dir_record,
|
||||
&iso_sup->root_dir_record,&cur_blk,headdir,FALSE,
|
||||
stage2_filename,&stage2_blk);
|
||||
tabsize=sizeof(CISO1PathEntry);
|
||||
tabsize2=sizeof(CISO1PathEntry);
|
||||
max_depth=DVDTableLen(headdir,&tabsize,&tabsize2,1);
|
||||
FillU32Palindrome(&iso_pri->path_table_size,tabsize);
|
||||
FillU32Palindrome(&iso_sup->path_table_size,tabsize2);
|
||||
tabsize=(tabsize+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;
|
||||
cur_blk+=tabsize<<1;
|
||||
tabsize2=(tabsize2+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;
|
||||
cur_blk+=tabsize2<<1;
|
||||
|
||||
if (FileAttr(filename) & RS_ATTR_CONTIGUOUS)
|
||||
out_file=FOpen(filename,"wc",cur_blk<<2);
|
||||
else
|
||||
out_file=FOpen(filename,"w",cur_blk<<2);
|
||||
cur_blk=0;
|
||||
if (!out_file)
|
||||
goto cf_done;
|
||||
|
||||
while (cur_blk<20<<2>>2)
|
||||
FBlkWrite(out_file,zero_buf,cur_blk++<<2,4);
|
||||
|
||||
iso_pri->type=ISO1T_PRI_VOL_DESC;
|
||||
StrCpy(iso_pri->id,"CD001");
|
||||
iso_pri->version=1;
|
||||
FillU16Palindrome(&iso_pri->vol_set_size,1);
|
||||
FillU16Palindrome(&iso_pri->vol_seq_num,1);
|
||||
FillU16Palindrome(&iso_pri->log_block_size,DVD_BLK_SIZE);
|
||||
iso_pri->file_structure_version=1;
|
||||
|
||||
iso_sup->type=ISO1T_SUPPLEMENTARY_DESC;
|
||||
StrCpy(iso_sup->id,"CD001");
|
||||
iso_sup->version=1;
|
||||
FillU16Palindrome(&iso_sup->vol_set_size,1);
|
||||
FillU16Palindrome(&iso_sup->vol_seq_num,1);
|
||||
FillU16Palindrome(&iso_sup->log_block_size,DVD_BLK_SIZE);
|
||||
iso_sup->file_structure_version=1;
|
||||
|
||||
iso_boot->type=ISO1T_BOOT_RECORD;
|
||||
StrCpy(iso_boot->id,"CD001");
|
||||
iso_boot->version=1;
|
||||
StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION");
|
||||
|
||||
cur_blk=20<<2>>2;
|
||||
|
||||
if (stage2_filename) {
|
||||
d=iso_boot(U8 *)+0x47;
|
||||
*d=cur_blk;
|
||||
et->w[0]=1;
|
||||
StrCpy(&et->w[2],"TempleOS");
|
||||
et->w[15]=0xAA55;
|
||||
j=0;
|
||||
for (i=0;i<16;i++) //Checksum
|
||||
j+=et->w[i];
|
||||
et->w[14]=-j;
|
||||
et->bootable=0x88;
|
||||
et->media_type=0;//0=no emu 2=1.44meg 4=hard drive
|
||||
et->sect_cnt=4; //5 seems like the limit, 4 is safer
|
||||
et->load_rba=cur_blk+1;
|
||||
"%X: Pre Boot Blk\n",cur_blk;
|
||||
FBlkWrite(out_file,et,cur_blk++<<2,4);
|
||||
"%X: Boot Stage 1\n",cur_blk;
|
||||
cur_blk+=DVD_BOOT_LOADER_SIZE/DVD_BLK_SIZE;
|
||||
}
|
||||
|
||||
DVDFileCreate2(out_file,headdir,&iso_pri->root_dir_record,
|
||||
&iso_sup->root_dir_record,&cur_blk,headdir,TRUE,
|
||||
stage2_filename,&stage2_blk);
|
||||
|
||||
tabbuf=CAlloc(tabsize*DVD_BLK_SIZE);
|
||||
iso_pri->type_l_path_table=cur_blk;
|
||||
tabbuf->name_len=2; //Fill-in adam entry
|
||||
tmpi=&iso_pri->root_dir_record;
|
||||
tabbuf->blk=tmpi->loc.little;
|
||||
tabbuf->parent_entry_num=1;
|
||||
tabbuf2=CAlloc(tabsize2*DVD_BLK_SIZE);
|
||||
iso_sup->type_l_path_table=cur_blk+tabsize;
|
||||
tabbuf2->name_len=2; //Fill-in adam entry
|
||||
tmpi=&iso_sup->root_dir_record;
|
||||
tabbuf2->blk=tmpi->loc.little;
|
||||
tabbuf2->parent_entry_num=1;
|
||||
itabbuf=tabbuf+1;
|
||||
itabbuf2=tabbuf2+1;
|
||||
first_free=2;
|
||||
for (i=1;i<=max_depth;i++)
|
||||
DVDFillPathTable(headdir,&itabbuf,&itabbuf2,1,FALSE,&first_free,1,i);
|
||||
"%X: Path Table 0\n",cur_blk;
|
||||
FBlkWrite(out_file,tabbuf,cur_blk<<2,tabsize<<2);
|
||||
cur_blk+=tabsize;
|
||||
"%X: Path Table 1\n",cur_blk;
|
||||
FBlkWrite(out_file,tabbuf2,cur_blk<<2,tabsize2<<2);
|
||||
cur_blk+=tabsize2;
|
||||
|
||||
MemSet(tabbuf,0,tabsize*DVD_BLK_SIZE);
|
||||
iso_pri->type_m_path_table=EndianU32(cur_blk);
|
||||
tabbuf->name_len=2; //Fill-in adam entry
|
||||
tmpi=&iso_pri->root_dir_record;
|
||||
tabbuf->blk=tmpi->loc.big;
|
||||
tabbuf->parent_entry_num=EndianU16(1);
|
||||
MemSet(tabbuf2,0,tabsize2*DVD_BLK_SIZE);
|
||||
iso_sup->type_m_path_table=EndianU32(cur_blk+tabsize);
|
||||
tabbuf2->name_len=2; //Fill-in adam entry
|
||||
tmpi=&iso_sup->root_dir_record;
|
||||
tabbuf2->blk=tmpi->loc.big;
|
||||
tabbuf2->parent_entry_num=EndianU16(1);
|
||||
itabbuf=tabbuf+1;
|
||||
itabbuf2=tabbuf2+1;
|
||||
first_free=2;
|
||||
for (i=1;i<=max_depth;i++)
|
||||
DVDFillPathTable(headdir,&itabbuf,&itabbuf2,1,TRUE,&first_free,1,i);
|
||||
"%X: Path Table 2\n",cur_blk;
|
||||
FBlkWrite(out_file,tabbuf,cur_blk<<2,tabsize<<2);
|
||||
cur_blk+=tabsize;
|
||||
"%X: Path Table 3\n",cur_blk;
|
||||
FBlkWrite(out_file,tabbuf2,cur_blk<<2,tabsize2<<2);
|
||||
cur_blk+=tabsize2;
|
||||
|
||||
DirTreeDel2(headdir);
|
||||
FillU32Palindrome(&iso_pri->vol_space_size,cur_blk);
|
||||
FillU32Palindrome(&iso_sup->vol_space_size,cur_blk);
|
||||
FBlkWrite(out_file,iso_pri,16<<2,4);
|
||||
|
||||
iso_term->type=ISO1T_TERMINATOR;
|
||||
StrCpy(iso_term->id,"CD001");
|
||||
iso_term->version=1;
|
||||
if (stage2_filename) {
|
||||
FBlkWrite(out_file,iso_boot,17<<2,4);
|
||||
FBlkWrite(out_file,iso_sup,18<<2,4);
|
||||
FBlkWrite(out_file,iso_term,19<<2,4);
|
||||
stage2_size=(Size(stage2_filename,"+s")+DVD_BLK_SIZE-1)/DVD_BLK_SIZE;
|
||||
MemCpy(stage1_buf,BDVD_START,BDVD_END-BDVD_START);
|
||||
*(BDVD_BLK_CNT-BDVD_START+stage1_buf)(U16 *)=stage2_size;
|
||||
*(BDVD_BLK_LO -BDVD_START+stage1_buf)(U32 *)=stage2_blk;
|
||||
"$$RED$$!!! Boot Stage 2 !!! %X-%X$$FG$$\n",
|
||||
stage2_blk,stage2_blk+stage2_size-1;
|
||||
FBlkWrite(out_file,stage1_buf,
|
||||
20<<2+1<<2,DVD_BOOT_LOADER_SIZE/BLK_SIZE);
|
||||
} else {
|
||||
FBlkWrite(out_file,iso_sup,17<<2,4);
|
||||
FBlkWrite(out_file,iso_term,18<<2,4);
|
||||
}
|
||||
|
||||
cf_done:
|
||||
FClose(out_file);
|
||||
Free(tabbuf);
|
||||
Free(tabbuf2);
|
||||
Free(stage2_filename);
|
||||
Free(filename);
|
||||
Free(zero_buf);
|
||||
Free(stage1_buf);
|
||||
Free(et);
|
||||
Free(iso_pri);
|
||||
Free(iso_boot);
|
||||
Free(iso_sup);
|
||||
Free(iso_term);
|
||||
return cur_blk;
|
||||
}
|
||||
@@ -48,7 +48,7 @@ U0 RedSeaISO9660Stage1(U8 *iso_filename,U8 *stage2_filename)
|
||||
U0 RedSeaISO9660(U8 *iso_filename,U8 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_sup=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)
|
||||
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");
|
||||
iso_pri->version=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");
|
||||
|
||||
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");
|
||||
iso_boot->version=1;
|
||||
StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION");
|
||||
|
||||
FBlkWrite(out_file,iso_pri,16<<2,4);
|
||||
iso_term->type=ISO1T_TERMINATOR;
|
||||
iso_term->type=ISOT_TERMINATOR;
|
||||
StrCpy(iso_term->id,"CD001");
|
||||
iso_term->version=1;
|
||||
|
||||
|
||||
@@ -341,3 +341,46 @@ public I64 BMPScrnCapture(U8 *filename,I64 bits=4,Bool include_zoom=TRUE)
|
||||
DCDel(dc);
|
||||
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;
|
||||
}
|
||||
@@ -197,15 +197,15 @@ public I64 FileOcc(U8 *needle_str,
|
||||
|
||||
class CFind
|
||||
{
|
||||
U8 find_text[STR_LEN] fmtstr "$$DA-P,"
|
||||
U8 find_text[STR_LEN] format "$$DA-P,"
|
||||
"A=\"FIND :%s\"$$\n";
|
||||
U8 replace_text[STR_LEN] fmtstr "$$DA-P,"
|
||||
U8 replace_text[STR_LEN] format "$$DA-P,"
|
||||
"A=\"REPLACE :%s\"$$\n";
|
||||
Bool replace fmtstr "$$CB,\"REPLACE\"$$\n";
|
||||
Bool match_case fmtstr "$$CB,\"MATCH CASE\"$$\n";
|
||||
Bool whole_labels fmtstr "$$CB,\"WHOLE LABELS\"$$\n";
|
||||
U8 filemask[STR_LEN] fmtstr "$$DA-P,A=\"FILE MASK :%s\"$$\n";
|
||||
Bool recurse fmtstr "$$CB,\"RECURSE\"$$\n";
|
||||
Bool replace format "$$CB,\"REPLACE\"$$\n";
|
||||
Bool match_case format "$$CB,\"MATCH CASE\"$$\n";
|
||||
Bool whole_labels format "$$CB,\"WHOLE LABELS\"$$\n";
|
||||
U8 filemask[STR_LEN] format "$$DA-P,A=\"FILE MASK :%s\"$$\n";
|
||||
Bool recurse format "$$CB,\"RECURSE\"$$\n";
|
||||
};
|
||||
|
||||
I64 FindWiz()
|
||||
|
||||
@@ -136,6 +136,10 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE)
|
||||
if (task==sys_winmgr_task) {
|
||||
"gr.pen_brushes\t:%010X\n",PenBrushesSize;
|
||||
"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) {
|
||||
j=0;k=0;m=0;n=0;
|
||||
for (i=0;i<mp_cnt;i++) {
|
||||
|
||||
@@ -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,
|
||||
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,
|
||||
//or removing trailing spaces on lines.
|
||||
//See $LK,"SUF Flags",A="MN:SUF_SINGLE_SPACE"$.
|
||||
|
||||
@@ -1,30 +1,24 @@
|
||||
#help_index "Misc/TOS"
|
||||
|
||||
U0 TOSStaffIns()
|
||||
{//Completes TOS install from TempleOSStaff.ISO
|
||||
{//Completes TOS install from TOS_Staff.ISO
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
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;
|
||||
|
||||
"\nDownload TempleOSSup1.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";
|
||||
"\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n";
|
||||
|
||||
if (PressAKey!=CH_SHIFT_ESC) {
|
||||
if (HostChgDsk("/home/tad/TempleOSSup1.ISO.C"))
|
||||
if (HostChgDsk("/home/tad/TOS_Supplemental1.ISO.C"))
|
||||
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;");
|
||||
"\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) {
|
||||
Once("TOSRegen;");
|
||||
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
|
||||
@@ -38,35 +32,25 @@ U0 TOSStaffIns()
|
||||
}
|
||||
|
||||
public U0 TOSStdIns()
|
||||
{//Completes TOS install from TempleOSCD.ISO
|
||||
{//Completes TOS install from TOS_Distro.ISO
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
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;
|
||||
|
||||
"\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\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";
|
||||
"\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n";
|
||||
|
||||
if (PressAKey!=CH_SHIFT_ESC) {
|
||||
if (FileFind("/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");
|
||||
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;");
|
||||
"\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$ ";
|
||||
"\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the distro ISO's ";
|
||||
if (YorN) {
|
||||
Once("TOSRegen;");
|
||||
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
|
||||
|
||||
@@ -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.
|
||||
//Vol should be from 0.0 to 1.0.
|
||||
//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;
|
||||
CFileSND *s;
|
||||
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;
|
||||
k=0;
|
||||
i=d->time*SNDFILE_SAMPLE_RATE;
|
||||
while (d->next!=&snd.record_head) {
|
||||
d1=d->next;
|
||||
dt=d1->time-d->time;
|
||||
cnt2=dt*SNDFILE_SAMPLE_RATE;
|
||||
SndWaveAddBuf(swc,&s->body[k],cnt2,
|
||||
i1=d1->time*SNDFILE_SAMPLE_RATE;
|
||||
if (i1-i) {
|
||||
SndWaveAddBuf(swc,&s->body[k],i1-i,
|
||||
Ona2Freq(d->ona),waveform,normalized_vol);
|
||||
k+=cnt2;
|
||||
k+=i1-i;
|
||||
i=i1;
|
||||
}
|
||||
QueRem(d);
|
||||
Free(d);
|
||||
d=d1;
|
||||
|
||||
@@ -127,7 +127,7 @@ per second. It defaults to
|
||||
2.5 and gets faster when bigger.
|
||||
*/
|
||||
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;
|
||||
F64 d,on_jiffies,off_jiffies;
|
||||
music.play_note_num=0;
|
||||
@@ -151,14 +151,19 @@ per second. It defaults to
|
||||
note=*st++-'A';
|
||||
if (note<7) {
|
||||
note=music.note_map[note];
|
||||
octave=music.octave;
|
||||
if (*st=='b') {
|
||||
note--;
|
||||
if (note==2)
|
||||
octave--;
|
||||
st++;
|
||||
} else if (*st=='#') {
|
||||
note++;
|
||||
if (note==3)
|
||||
octave++;
|
||||
st++;
|
||||
}
|
||||
ona=Note2Ona(note,music.octave);
|
||||
ona=Note2Ona(note,octave);
|
||||
} else
|
||||
ona=ONA_REST;
|
||||
if (words && (word=LstSub(i++,words)) && StrCmp(word," "))
|
||||
|
||||
@@ -6,7 +6,8 @@ CMsStateGlbls old_ms={{-1000,-1000,0},{-1000,-1000,0},{-1000,-1000,0},
|
||||
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->last_calc_idle_time=tS;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
public U0 Refresh(I64 cnt=1,Bool force=FALSE)
|
||||
{//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.
|
||||
//1 Cnt Wait and Pump Msgs.
|
||||
//2 Cnt Make Sure to do a Full Refresh
|
||||
@@ -31,6 +31,25 @@ public U0 Refresh(I64 cnt=1,Bool force=FALSE)
|
||||
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,old_silent=Silent;
|
||||
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);
|
||||
Silent(old_silent);
|
||||
return old_val;
|
||||
}
|
||||
|
||||
#help_index "Windows"
|
||||
|
||||
I64 WinQueIPMsgs(Bool que)
|
||||
@@ -223,8 +242,11 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE)
|
||||
CCtrl *c;
|
||||
Bool que;
|
||||
F64 t,t_delta;
|
||||
U8 *st;
|
||||
CDC *diff;
|
||||
CDate cdt;
|
||||
|
||||
TimeStampFreqCal;
|
||||
TimeCal;
|
||||
if ((t_delta=(t=tS)-winmgr.last_refresh_tS)>0.01)
|
||||
winmgr.fps=Max(1.0/t_delta,1);
|
||||
else
|
||||
@@ -260,11 +282,36 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE)
|
||||
WinMsUpdate;
|
||||
|
||||
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);
|
||||
GrUpdateScrn;
|
||||
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)) {
|
||||
Free(music.cur_song);
|
||||
music.cur_song=NULL;
|
||||
@@ -404,6 +451,7 @@ U0 WinMgrTask(I64)
|
||||
gr.dc->win_task=Fs;
|
||||
Fs->win_inhibit&=~WIF_SELF_CTRLS;
|
||||
GrSetUpTables;
|
||||
winmgr.dc2_alias=DCAlias(gr.dc2);
|
||||
WinZBufUpdate;
|
||||
LBts(&sys_run_level,RLf_WINMGR);
|
||||
while (TRUE) {
|
||||
|
||||
@@ -35,11 +35,11 @@ U0 BgtIns(CBgtEntry *tmpb)
|
||||
|
||||
class CBgtEntryForm
|
||||
{
|
||||
U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n";
|
||||
F64 amount fmtstr "Amount $$$$$$DA,A=\"%10.2f\"$$\n";
|
||||
U8 credit[512] fmtstr "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n";
|
||||
U8 debit [512] fmtstr "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n";
|
||||
U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n";
|
||||
U8 date[512] format "$$DA-P,A=\"Date :%s\"$$\n";
|
||||
F64 amount format "Amount $$$$$$DA,A=\"%10.2f\"$$\n";
|
||||
U8 credit[512] format "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n";
|
||||
U8 debit [512] format "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n";
|
||||
U8 desc [512] format "$$DA-P,A=\"Desc :%s\"$$\n";
|
||||
};
|
||||
|
||||
CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL)
|
||||
|
||||
@@ -42,11 +42,11 @@ class CBgtTemplate
|
||||
CBgtTemplate *next,*last;
|
||||
|
||||
U0 start;
|
||||
U16 type fmtstr "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n";
|
||||
U16 type format "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n";
|
||||
U16 flags;
|
||||
U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n";
|
||||
U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n";
|
||||
F64 period fmtstr "$$DA,A=\"Period :%8.2f\"$$\n";
|
||||
U8 start_date[16] format "$$DA-P,A=\"Start Date:%s\"$$\n";
|
||||
U8 end_date[16] format "$$DA-P,A=\"End Date :%s\"$$\n";
|
||||
F64 period format "$$DA,A=\"Period :%8.2f\"$$\n";
|
||||
U0 end;
|
||||
|
||||
CBgtEntry b;
|
||||
|
||||
@@ -13,9 +13,9 @@ class Ball
|
||||
|
||||
class BallDefineStruct
|
||||
{
|
||||
F64 radius fmtstr "$$DA-TRM,A=\"Radius :%8.3f\"$$\n";
|
||||
I64 n_longitude fmtstr "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n";
|
||||
I64 n_lattitude fmtstr "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n";
|
||||
F64 radius format "$$DA-TRM,A=\"Radius :%8.3f\"$$\n";
|
||||
I64 n_longitude format "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n";
|
||||
I64 n_lattitude format "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n";
|
||||
};
|
||||
|
||||
U0 BDInit(BallDefineStruct *bd)
|
||||
|
||||
@@ -13,66 +13,66 @@ class Man
|
||||
|
||||
class ManDefineStruct
|
||||
{
|
||||
F64 head_rad fmtstr
|
||||
F64 head_rad format
|
||||
"$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n";
|
||||
|
||||
F64 torso_len fmtstr
|
||||
F64 torso_len format
|
||||
"$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n";
|
||||
F64 arm_len fmtstr
|
||||
F64 arm_len format
|
||||
"$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n";
|
||||
F64 hand_len fmtstr
|
||||
F64 hand_len format
|
||||
"$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n";
|
||||
F64 leg_len fmtstr
|
||||
F64 leg_len format
|
||||
"$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n";
|
||||
F64 foot_len fmtstr
|
||||
F64 foot_len format
|
||||
"$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n";
|
||||
F64 torso_width fmtstr
|
||||
F64 torso_width format
|
||||
"$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n";
|
||||
F64 torso_depth fmtstr
|
||||
F64 torso_depth format
|
||||
"$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n";
|
||||
F64 arm_rad fmtstr
|
||||
F64 arm_rad format
|
||||
"$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n";
|
||||
F64 hand_rad fmtstr
|
||||
F64 hand_rad format
|
||||
"$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n";
|
||||
F64 leg_rad fmtstr
|
||||
F64 leg_rad format
|
||||
"$$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";
|
||||
|
||||
F64 r_shoulder_a1 fmtstr
|
||||
F64 r_shoulder_a1 format
|
||||
"$$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";
|
||||
F64 r_hip_a1 fmtstr
|
||||
F64 r_hip_a1 format
|
||||
"$$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";
|
||||
|
||||
F64 r_shoulder_a2 fmtstr
|
||||
F64 r_shoulder_a2 format
|
||||
"$$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";
|
||||
F64 r_hip_a2 fmtstr
|
||||
F64 r_hip_a2 format
|
||||
"$$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";
|
||||
|
||||
F64 r_elbow_a fmtstr
|
||||
F64 r_elbow_a format
|
||||
"$$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";
|
||||
F64 r_knee_a fmtstr
|
||||
F64 r_knee_a format
|
||||
"$$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";
|
||||
|
||||
F64 r_wrist_a fmtstr
|
||||
F64 r_wrist_a format
|
||||
"$$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";
|
||||
F64 r_ankle_a fmtstr
|
||||
F64 r_ankle_a format
|
||||
"$$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";
|
||||
|
||||
};
|
||||
|
||||
@@ -71,7 +71,7 @@ U0 JukeSongPuppet(CTask *juke_task,I64 passes,I64 song_num,U8 *name)
|
||||
}
|
||||
|
||||
public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2,
|
||||
I64 start_song=0,I64 end_song=I64_MAX)
|
||||
I64 start_song=0,I64 end_song=I64_MAX,F64 start_delay=0)
|
||||
{//Help make music video by puppeting JukeBox task.
|
||||
I64 i;
|
||||
CDirEntry *tmpde,*tmpde1;
|
||||
@@ -80,6 +80,7 @@ public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2,
|
||||
tmpde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES);
|
||||
for (tmpde=tmpde1,i=0;tmpde && i<start_song;i++)
|
||||
tmpde=tmpde->next;
|
||||
Sleep(start_delay*1000);
|
||||
for (i=start_song;tmpde && i<end_song;i++) {
|
||||
JukeSongPuppet(juke_task,passes,i,tmpde->name);
|
||||
tmpde=tmpde->next;
|
||||
|
||||
@@ -945,14 +945,14 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags)
|
||||
LexExcept(cc,"Missing ';' at");
|
||||
Lex(cc); //skip ';';
|
||||
break;
|
||||
case AKW_MODULE_ORG:
|
||||
case AKW_ORG:
|
||||
if (cc->htc.local_var_lst)
|
||||
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 ");
|
||||
if (aotc->rip)
|
||||
LexExcept(cc,"ORG must be at beginning ");
|
||||
aotc->module_org=AsmLexExpression(cc);
|
||||
aotc->org=AsmLexExpression(cc);
|
||||
break;
|
||||
case AKW_ALIGN:
|
||||
if (cc->htc.local_var_lst)
|
||||
|
||||
@@ -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->max_align_bits=0;
|
||||
aotc->module_org=INVALID_PTR;
|
||||
aotc->org=INVALID_PTR;
|
||||
|
||||
MemCpy(htc,&cc->htc,sizeof(CLexHashTableContext));
|
||||
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)
|
||||
res->buf=MAlloc(aotc->num_bin_U8s);
|
||||
else {
|
||||
if (aotc->module_org==INVALID_PTR)
|
||||
if (aotc->org==INVALID_PTR)
|
||||
res->buf=MAlloc(aotc->num_bin_U8s,Fs->code_heap);
|
||||
else
|
||||
res->buf=aotc->module_org;
|
||||
res->buf=aotc->org;
|
||||
}
|
||||
res->aot_U8s=aotc->num_bin_U8s;
|
||||
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->heap_glbls=aotc->heap_glbls;
|
||||
res->max_align_bits=aotc->max_align_bits;
|
||||
res->module_org=aotc->module_org;
|
||||
res->org=aotc->org;
|
||||
}
|
||||
cc->aot=parent;
|
||||
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
|
||||
bfh->reserved=0;
|
||||
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->patch_table_offset=sizeof(CBinFile)+aot_U8s;
|
||||
bfh->file_size=size;
|
||||
|
||||
@@ -129,10 +129,15 @@ U8 *CmdLinePmt()
|
||||
I64 i;
|
||||
U8 *res,*st;
|
||||
if (Fs->new_answer) {
|
||||
if (Fs->answer_type&~1!=RT_I0) {
|
||||
if (Fs->answer_type==RT_F64)
|
||||
"%8.6fs ansf=%15.7g\n",Fs->answer_time,Fs->answer;
|
||||
else
|
||||
"%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;
|
||||
}
|
||||
if (st=DirCur) {
|
||||
|
||||
Binary file not shown.
@@ -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,"ExePrint",A="FL:::/Compiler/CMain.HC.Z,605",BI=41$
|
||||
$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,"PrsAddOp",A="FL:::/Compiler/PrsExp.HC.Z,15",BI=44$
|
||||
$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,"PrsFun",A="FL:::/Compiler/PrsStmt.HC.Z,140",BI=227$
|
||||
$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,"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"$
|
||||
@@ -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,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.HC.Z,44"$
|
||||
$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,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$
|
||||
$LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,791",BI=269$
|
||||
| ||||