diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index dcd686b..9048f82 100644 Binary files a/0000Boot/0000Kernel.BIN.C and b/0000Boot/0000Kernel.BIN.C differ diff --git a/Adam/ABlkDev/ADskA.HC b/Adam/ABlkDev/ADskA.HC index 5352838..9aa8429 100644 --- a/Adam/ABlkDev/ADskA.HC +++ b/Adam/ABlkDev/ADskA.HC @@ -65,28 +65,28 @@ public Bool Copy(U8 *src_files_find_mask,U8 *dst_files_find_mask=".") //it will be stored uncompressed. Bool res=TRUE; CDirContext *dirc; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; U8 *st; - if (!(tempde1=FilesFind(src_files_find_mask,FUF_CLUSTER_ORDER))) + if (!(tmpde1=FilesFind(src_files_find_mask,FUF_CLUSTER_ORDER))) return FALSE; if (IsDir(dst_files_find_mask)) { if (dirc=DirContextNew(dst_files_find_mask,TRUE)) { - tempde=tempde1; - while (tempde) { - if (!(tempde->attr & RS_ATTR_DIR)) { - st=FileNameAbs(tempde->name); - if (!CopySingle(tempde->full_name,st)) + tmpde=tmpde1; + while (tmpde) { + if (!(tmpde->attr & RS_ATTR_DIR)) { + st=FileNameAbs(tmpde->name); + if (!CopySingle(tmpde->full_name,st)) res=FALSE; Free(st); } - tempde=tempde->next; + tmpde=tmpde->next; } DirContextDel(dirc); } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return res; } else { - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return CopySingle(src_files_find_mask,dst_files_find_mask); } } @@ -100,22 +100,22 @@ public Bool Move(U8 *f1,U8 *f2) return FALSE; } -I64 CopyTree2(CDirEntry *tempde,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) +I64 CopyTree2(CDirEntry *tmpde,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) { U8 *st; I64 res=1; - while (tempde) { - st=MAlloc(StrLen(tempde->full_name)+dst_dir_len+2); + while (tmpde) { + st=MAlloc(StrLen(tmpde->full_name)+dst_dir_len+2); MemCpy(st,dst_dir,dst_dir_len); - StrCpy(st+dst_dir_len,tempde->full_name+src_dir_len); - if (tempde->attr & RS_ATTR_DIR) { - MkDir(st,LinkedLstCnt(tempde->sub)); - res+=CopyTree2(tempde->sub,src_dir_len,dst_dir_len,dst_dir); + StrCpy(st+dst_dir_len,tmpde->full_name+src_dir_len); + if (tmpde->attr & RS_ATTR_DIR) { + MkDir(st,LinkedLstCnt(tmpde->sub)); + res+=CopyTree2(tmpde->sub,src_dir_len,dst_dir_len,dst_dir); } else - if (CopySingle(tempde->full_name,st)) + if (CopySingle(tmpde->full_name,st)) res++; Free(st); - tempde=tempde->next; + tmpde=tmpde->next; } return res; } @@ -124,7 +124,7 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask, {//Copy directory tree. //Returns the count of copied files (not dirs). CDirContext *dirc; - CDirEntry *tempde=NULL; + CDirEntry *tmpde=NULL; I64 res=0,i1,i2; U8 *st1,*st2; @@ -139,7 +139,7 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask, Free(st1); Free(st2); if (dirc=DirContextNew(src_files_find_mask,TRUE,,no_mask)) { - tempde=FilesFind(dirc->mask,FUF_RECURSE); + tmpde=FilesFind(dirc->mask,FUF_RECURSE); st1=CurDir; DirContextDel(dirc); i1=StrLen(st1); @@ -148,45 +148,45 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask, st2=CurDir; i2=StrLen(st2); if (i2==3) i2--; - res=CopyTree2(tempde,i1,i2,st2); + res=CopyTree2(tmpde,i1,i2,st2); DirContextDel(dirc); Free(st2); } - DirTreeDel(tempde); + DirTreeDel(tmpde); Free(st1); } return res; } -I64 DelTreeDirs(CDirEntry *tempde1) +I64 DelTreeDirs(CDirEntry *tmpde1) { I64 res=0; - CDirEntry *tempde2; - while (tempde1) { - tempde2=tempde1->next; - if (tempde1->attr & RS_ATTR_DIR) { - if (tempde1->sub) - res+=DelTreeDirs(tempde1->sub); - res+=Del(tempde1->full_name,TRUE,TRUE); + CDirEntry *tmpde2; + while (tmpde1) { + tmpde2=tmpde1->next; + if (tmpde1->attr & RS_ATTR_DIR) { + if (tmpde1->sub) + res+=DelTreeDirs(tmpde1->sub); + res+=Del(tmpde1->full_name,TRUE,TRUE); } - DirEntryDel(tempde1); - tempde1=tempde2; + DirEntryDel(tmpde1); + tmpde1=tmpde2; } return res; } -I64 DelTreeFiles(CDirEntry *tempde1) +I64 DelTreeFiles(CDirEntry *tmpde1) { I64 res=0; - CDirEntry *tempde2; - while (tempde1) { - tempde2=tempde1->next; - if (tempde1->attr & RS_ATTR_DIR) { - if (tempde1->sub) - res+=DelTreeFiles(tempde1->sub); + CDirEntry *tmpde2; + while (tmpde1) { + tmpde2=tmpde1->next; + if (tmpde1->attr & RS_ATTR_DIR) { + if (tmpde1->sub) + res+=DelTreeFiles(tmpde1->sub); } else - res+=Del(tempde1->full_name,FALSE,TRUE); - DirEntryDel(tempde1); - tempde1=tempde2; + res+=Del(tmpde1->full_name,FALSE,TRUE); + DirEntryDel(tmpde1); + tmpde1=tmpde2; } return res; } @@ -240,13 +240,13 @@ To Set DateL: Touch(filename,"",,datetime); */ I64 fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - TouchFile(tempde->full_name,attr,cdt); - tempde=tempde->next; + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + TouchFile(tmpde->full_name,attr,cdt); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } diff --git a/Adam/ABlkDev/ADskB.HC b/Adam/ABlkDev/ADskB.HC index d1820db..4ec6df4 100644 --- a/Adam/ABlkDev/ADskB.HC +++ b/Adam/ABlkDev/ADskB.HC @@ -1,102 +1,102 @@ #help_index "File/Internal" -I64 DirTreeSerializeSize(CDirEntry *tempde) +I64 DirTreeSerializeSize(CDirEntry *tmpde) { I64 res=0; - while (tempde) { + while (tmpde) { res+=CDIR_SIZE+1; - if (tempde->attr & RS_ATTR_DIR) - res+=DirTreeSerializeSize(tempde->sub); - tempde=tempde->next; + if (tmpde->attr & RS_ATTR_DIR) + res+=DirTreeSerializeSize(tmpde->sub); + tmpde=tmpde->next; } return res+1; } -I64 DirTreeSerializeFill(CDirEntry *tempde,U8 *dst) +I64 DirTreeSerializeFill(CDirEntry *tmpde,U8 *dst) { I64 res=0,i; - while (tempde) { + while (tmpde) { *dst++=1; res++; - MemCpy(dst,&tempde->start,CDIR_SIZE); + MemCpy(dst,&tmpde->start,CDIR_SIZE); dst+=CDIR_SIZE; res+=CDIR_SIZE; - if (tempde->attr & RS_ATTR_DIR) { - i=DirTreeSerializeFill(tempde->sub,dst); + if (tmpde->attr & RS_ATTR_DIR) { + i=DirTreeSerializeFill(tmpde->sub,dst); dst+=i; res+=i; } - tempde=tempde->next; + tmpde=tmpde->next; } *dst=0; return res+1; } -public U8 *DirTreeSerialize(CDirEntry *tempde,I64 *_size=NULL) +public U8 *DirTreeSerialize(CDirEntry *tmpde,I64 *_size=NULL) {//Serialize tree returned from $LK,"FilesFind",A="MN:FilesFind"$() into a one contiguous U8 array. - I64 size=DirTreeSerializeSize(tempde); + I64 size=DirTreeSerializeSize(tmpde); U8 *buf=MAlloc(size); - DirTreeSerializeFill(tempde,buf); + DirTreeSerializeFill(tmpde,buf); if (_size) *_size=size; return buf; } -U8 *DirTreeUnserialize2(U8 *src,CDirEntry **tempde) +U8 *DirTreeUnserialize2(U8 *src,CDirEntry **tmpde) { - CDirEntry *tempde1; + CDirEntry *tmpde1; if (*src++) { - tempde1=CAlloc(sizeof(CDirEntry)); - *tempde=tempde1; - MemCpy(&tempde1->start,src,CDIR_SIZE); + tmpde1=CAlloc(sizeof(CDirEntry)); + *tmpde=tmpde1; + MemCpy(&tmpde1->start,src,CDIR_SIZE); src+=CDIR_SIZE; - if (tempde1->attr & RS_ATTR_DIR) - src=DirTreeUnserialize2(src,&tempde1->sub); - src=DirTreeUnserialize2(src,&tempde1->next); + if (tmpde1->attr & RS_ATTR_DIR) + src=DirTreeUnserialize2(src,&tmpde1->sub); + src=DirTreeUnserialize2(src,&tmpde1->next); } else - *tempde=NULL; + *tmpde=NULL; return src; } public CDirEntry *DirTreeUnserialize(U8 *src) {//Unserialize tree to make it like a tree returned from $LK,"FilesFind",A="MN:FilesFind"$(). - CDirEntry *tempde=NULL; - DirTreeUnserialize2(src,&tempde); - return tempde; + CDirEntry *tmpde=NULL; + DirTreeUnserialize2(src,&tmpde); + return tmpde; } #help_index "File/Program Routines" -U0 FOFlatten(CDirEntry *tempde,CDirEntry **a,I64 *i) +U0 FOFlatten(CDirEntry *tmpde,CDirEntry **a,I64 *i) { - CDirEntry *tempde1; - while (tempde) { - tempde1=tempde->next; - if (tempde->attr&RS_ATTR_DIR) { - FOFlatten(tempde->sub,a,i); - DirEntryDel(tempde); + CDirEntry *tmpde1; + while (tmpde) { + tmpde1=tmpde->next; + if (tmpde->attr&RS_ATTR_DIR) { + FOFlatten(tmpde->sub,a,i); + DirEntryDel(tmpde); } else { - a[*i]=tempde; + a[*i]=tmpde; *i=*i+1; } - tempde=tempde1; + tmpde=tmpde1; } } -I64 Size1(CDirEntry *tempde,I64 *_fuf_flags,I64 round_to) +I64 Size1(CDirEntry *tmpde,I64 *_fuf_flags,I64 round_to) { U8 buf[BLK_SIZE]; I64 res=0,i; CDrv *dv; - while (tempde) { - if ((i=tempde->size) && Bt(_fuf_flags,FUf_EXPAND) && - !(tempde->attr&RS_ATTR_DIR) && - FileAttr(tempde->name)&RS_ATTR_COMPRESSED) { - dv=Let2Drv(*tempde->full_name); - RBlks(dv,buf,Cluster2Blk(dv,tempde->cluster),1); + while (tmpde) { + if ((i=tmpde->size) && Bt(_fuf_flags,FUf_EXPAND) && + !(tmpde->attr&RS_ATTR_DIR) && + FileAttr(tmpde->name)&RS_ATTR_COMPRESSED) { + dv=Let2Drv(*tmpde->full_name); + RBlks(dv,buf,Cluster2Blk(dv,tmpde->cluster),1); i=(&buf)(CArcCompress *)->expanded_size; } if (round_to) - i=CeilU64(tempde->size,round_to); - if (tempde->attr&RS_ATTR_DIR) - i+=Size1(tempde->sub,_fuf_flags,round_to); - tempde->user_data=i; + i=CeilU64(tmpde->size,round_to); + if (tmpde->attr&RS_ATTR_DIR) + i+=Size1(tmpde->sub,_fuf_flags,round_to); + tmpde->user_data=i; res+=i; - tempde=tempde->next; + tmpde=tmpde->next; } return res; } @@ -105,26 +105,26 @@ public I64 Size(U8 *files_find_mask="/*",U8 *fu_flags=NULL,I64 round_to=0) //Does not include directory size of base directory, but //does include size of sub directories. I64 fuf_flags=0,res=0; - CDirEntry *tempde1=NULL; + CDirEntry *tmpde1=NULL; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) { + if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) { fuf_flags&=FUF_EXPAND; - res=Size1(tempde1,&fuf_flags,round_to); - DirTreeDel(tempde1); + res=Size1(tmpde1,&fuf_flags,round_to); + DirTreeDel(tmpde1); } return res; } -public I64 FileCnt(CDirEntry *tempde) +public I64 FileCnt(CDirEntry *tmpde) {//Cnt of files in $LK,"CDirEntry",A="MN:CDirEntry"$ tree. I64 cnt=0; - while (tempde) { - if (tempde->attr&RS_ATTR_DIR) - cnt+=FileCnt(tempde->sub); + while (tmpde) { + if (tmpde->attr&RS_ATTR_DIR) + cnt+=FileCnt(tmpde->sub); else cnt++; - tempde=tempde->next; + tmpde=tmpde->next; } return cnt; } @@ -133,37 +133,37 @@ public I64 FileCnt(CDirEntry *tempde) public I64 FF(U8 *files_find_mask,U8 *fu_flags=NULL) {//Files find. List files matching mask. I64 cnt=0,fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - PutFileLink(tempde->full_name); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + PutFileLink(tmpde->full_name); '\n'; cnt++; - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return cnt; } public I64 Zip(U8 *files_find_mask="*",U8 *fu_flags=NULL) {//Compress files by moving to .Z filename. U8 *st; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; I64 res=0,fuf_flags=0; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - if (!IsDotZ(tempde->full_name)) { - st=MStrPrint("%s.Z",tempde->full_name); - res+=Move(tempde->full_name,st); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + if (!IsDotZ(tmpde->full_name)) { + st=MStrPrint("%s.Z",tmpde->full_name); + res+=Move(tmpde->full_name,st); Free(st); } - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return res; } @@ -172,20 +172,20 @@ public I64 Unzip(U8 *files_find_mask="*.Z",U8 *fu_flags=NULL) //You don't have to do this for normal operation. //It automatically unzips ".Z" files. U8 *st; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; I64 res=0,fuf_flags=0; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - if (IsDotZ(tempde->full_name)) { - st=StrNew(tempde->full_name); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + if (IsDotZ(tmpde->full_name)) { + st=StrNew(tmpde->full_name); StrLastRem(st,"."); - res+=Move(tempde->full_name,st); + res+=Move(tmpde->full_name,st); Free(st); } - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return res; } diff --git a/Adam/ABlkDev/ChkDsk.HC b/Adam/ABlkDev/ChkDsk.HC index 0d46b4d..f691467 100644 --- a/Adam/ABlkDev/ChkDsk.HC +++ b/Adam/ABlkDev/ChkDsk.HC @@ -10,36 +10,36 @@ Bool ChkDskConfirm(Bool *_fix,Bool *_confirm) return *_fix; } -I64 RedSeaChkDskLst(CDrv *dv,CDirEntry *tempde1, +I64 RedSeaChkDskLst(CDrv *dv,CDirEntry *tmpde1, U8 *bits,U8 *bits2,I64 size,I64 bpc) { - CDirEntry *tempde2; + CDirEntry *tmpde2; I64 i,j,errs=0; - while (tempde1) { - tempde2=tempde1->next; - if (tempde1->attr & RS_ATTR_DIR && tempde1->sub) - errs+=RedSeaChkDskLst(dv,tempde1->sub,bits,bits2,size,bpc); - j=(tempde1->size+bpc-1)/bpc; + 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;icluster-dv->data_area>size) { - PrintErr("Invalid Cluster:%s Cluster:%X\n",tempde1->full_name, - i+tempde1->cluster); + 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+tempde1->cluster-dv->data_area)) { - PrintErr("Dbl Alloc:%s Cluster:%X\n",tempde1->full_name, - i+tempde1->cluster); + 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+tempde1->cluster-dv->data_area)) { - PrintErr("UnAlloc:%s Cluster:%X\n",tempde1->full_name, - i+tempde1->cluster); + if (!LBtr(bits2,i+tmpde1->cluster-dv->data_area)) { + PrintErr("UnAlloc:%s Cluster:%X\n",tmpde1->full_name, + i+tmpde1->cluster); errs++; } } - DirEntryDel(tempde1); - tempde1=tempde2; + DirEntryDel(tmpde1); + tmpde1=tmpde2; } return errs; } @@ -103,48 +103,48 @@ I64 RedSeaChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) return errs; } -I64 FAT32ChkDskLst(CDrv *dv,CDirEntry *tempde1, +I64 FAT32ChkDskLst(CDrv *dv,CDirEntry *tmpde1, U8 *bits,U32 *bits2,I64 size,I64 bpc) { - CDirEntry *tempde2; + CDirEntry *tmpde2; I64 i,c,errs=0; - while (tempde1) { - tempde2=tempde1->next; - if (tempde1->attr & RS_ATTR_DIR && tempde1->sub) - errs+=FAT32ChkDskLst(dv,tempde1->sub,bits,bits2,size,bpc); + 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=tempde1->cluster; + c=tmpde1->cluster; while (0size) { - PrintErr("Invalid Cluster:%s Cluster:%X\n",tempde1->full_name,c); + PrintErr("Invalid Cluster:%s Cluster:%X\n",tmpde1->full_name,c); errs++; break; } if (LBts(bits,c)) { - PrintErr("Dbl Alloc:%s Cluster:%X\n",tempde1->full_name,c); + PrintErr("Dbl Alloc:%s Cluster:%X\n",tmpde1->full_name,c); errs++; } if (!bits2[c]) { - PrintErr("UnAlloc:%s Cluster:%X\n",tempde1->full_name,c); + PrintErr("UnAlloc:%s Cluster:%X\n",tmpde1->full_name,c); errs++; } else bits2[c]=0; c=ClusterNumNext(dv,c); i++; } - if (!(tempde1->attr & RS_ATTR_DIR)) { + if (!(tmpde1->attr & RS_ATTR_DIR)) { i*=bpc; - if (tempde1->size>i) { - PrintErr("Alloced File Too Short:%s\n",tempde1->full_name); + if (tmpde1->size>i) { + PrintErr("Alloced File Too Short:%s\n",tmpde1->full_name); errs++; } - if (i>tempde1->size+bpc-1) { - PrintWarn("Alloced File Too Long:%s\n",tempde1->full_name); + if (i>tmpde1->size+bpc-1) { + PrintWarn("Alloced File Too Long:%s\n",tmpde1->full_name); errs++; } } - DirEntryDel(tempde1); - tempde1=tempde2; + DirEntryDel(tmpde1); + tmpde1=tmpde2; } return errs; } diff --git a/Adam/ABlkDev/FileMgr.HC b/Adam/ABlkDev/FileMgr.HC index 071319e..eb8e768 100644 --- a/Adam/ABlkDev/FileMgr.HC +++ b/Adam/ABlkDev/FileMgr.HC @@ -1,18 +1,18 @@ #help_index "DolDoc/Output;StdOut/DolDoc" -U0 DirFileDoc(CDoc *doc,CDirEntry *tempde) +U0 DirFileDoc(CDoc *doc,CDirEntry *tmpde) { - while (tempde) { - if (tempde->attr & RS_ATTR_DIR) { - tempde->user_data=DocPrint(doc,"$$TR,\"%s\",U=0x%X$$",tempde->name,tempde); + while (tmpde) { + if (tmpde->attr & RS_ATTR_DIR) { + tmpde->user_data=DocPrint(doc,"$$TR,\"%s\",U=0x%X$$",tmpde->name,tmpde); DocPrint(doc,"\n$$ID,+2$$"); - if (tempde->sub) - DirFileDoc(doc,tempde->sub); + if (tmpde->sub) + DirFileDoc(doc,tmpde->sub); DocPrint(doc,"$$ID,-2$$"); } else { - tempde->user_data=DocPrint(doc,"$$MU,\"%s\",U=0x%X$$",tempde->name,tempde); + tmpde->user_data=DocPrint(doc,"$$MU,\"%s\",U=0x%X$$",tmpde->name,tmpde); DocPrint(doc,"\n"); } - tempde=tempde->next; + tmpde=tmpde->next; } } @@ -31,16 +31,16 @@ class CFMUncollapsedLst CFMUncollapsedLst *FMCollectUncollapsedLst(CDoc *doc) { CDocEntry *doc_e=doc->head.next; - CFMUncollapsedLst *res=NULL,*tempc; - CDirEntry *tempde; + CFMUncollapsedLst *res=NULL,*tmpc; + CDirEntry *tmpde; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { if (!(doc_e->de_flags&DOCEF_CHECKED_COLLAPSED)) { - if (tempde=doc_e->user_data) { - tempc=MAlloc(sizeof(CFMUncollapsedLst)); - tempc->next=res; - res=tempc; - tempc->name=StrNew(tempde->full_name); + if (tmpde=doc_e->user_data) { + tmpc=MAlloc(sizeof(CFMUncollapsedLst)); + tmpc->next=res; + res=tmpc; + tmpc->name=StrNew(tmpde->full_name); } } } @@ -49,49 +49,49 @@ CFMUncollapsedLst *FMCollectUncollapsedLst(CDoc *doc) return res; } -U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedLst *tempc, +U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedLst *tmpc, U8 *cur_entry,U8 *next_entry) { CDocEntry *doc_e=doc->head.next; - CFMUncollapsedLst *tempc1; - CDirEntry *tempde; + CFMUncollapsedLst *tmpc1; + CDirEntry *tmpde; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { - tempde=doc_e->user_data; - tempc1=tempc; - while (tempc1) { - if (!StrCmp(tempc1->name,tempde->full_name)) { + tmpde=doc_e->user_data; + tmpc1=tmpc; + while (tmpc1) { + if (!StrCmp(tmpc1->name,tmpde->full_name)) { doc_e->de_flags&=~DOCEF_CHECKED_COLLAPSED; break; } - tempc1=tempc1->next; + tmpc1=tmpc1->next; } if (cur_entry) { - if (!StrNCmp(cur_entry,tempde->full_name,StrLen(tempde->full_name))) { + if (!StrNCmp(cur_entry,tmpde->full_name,StrLen(tmpde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempde->full_name)==StrLen(cur_entry)) + if (StrLen(tmpde->full_name)==StrLen(cur_entry)) cur_entry=NULL; } else if (next_entry) { if (!StrNCmp(next_entry, - tempde->full_name,StrLen(tempde->full_name))) { + tmpde->full_name,StrLen(tmpde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempde->full_name)==StrLen(next_entry)) + if (StrLen(tmpde->full_name)==StrLen(next_entry)) cur_entry=NULL; } } } } else if (doc_e->type_u8==DOCT_MENU_VAL) { - tempde=doc_e->user_data; + tmpde=doc_e->user_data; if (cur_entry) { - if (!StrNCmp(cur_entry,tempde->full_name,StrLen(tempde->full_name))) { + if (!StrNCmp(cur_entry,tmpde->full_name,StrLen(tmpde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempde->full_name)==StrLen(cur_entry)) + if (StrLen(tmpde->full_name)==StrLen(cur_entry)) cur_entry=NULL; } else if (next_entry) { if (!StrNCmp(next_entry, - tempde->full_name,StrLen(tempde->full_name))) { + tmpde->full_name,StrLen(tmpde->full_name))) { doc->cur_entry=doc_e; - if (StrLen(tempde->full_name)==StrLen(next_entry)) + if (StrLen(tmpde->full_name)==StrLen(next_entry)) cur_entry=NULL; } } @@ -101,44 +101,44 @@ U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedLst *tempc, } } -U0 FMDelUncollapsedLst(CFMUncollapsedLst *tempc) +U0 FMDelUncollapsedLst(CFMUncollapsedLst *tmpc) { - CFMUncollapsedLst *tempc1; - while (tempc) { - tempc1=tempc->next; - Free(tempc->name); - Free(tempc); - tempc=tempc1; + CFMUncollapsedLst *tmpc1; + while (tmpc) { + tmpc1=tmpc->next; + Free(tmpc->name); + Free(tmpc); + tmpc=tmpc1; } } CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_head,Bool init) { - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; U8 *st; - tempde=CAlloc(sizeof(CDirEntry)); - tempde->full_name=MStrPrint("%C:/",drv_let); - tempde->attr=RS_ATTR_DIR; + tmpde=CAlloc(sizeof(CDirEntry)); + tmpde->full_name=MStrPrint("%C:/",drv_let); + tmpde->attr=RS_ATTR_DIR; st=MStrPrint("%c:/*",drv_let); if (init) - tempde->sub=tempde1=FilesFind(st,FUF_RECURSE); + tmpde->sub=tmpde1=FilesFind(st,FUF_RECURSE); else - tempde1=NULL; + tmpde1=NULL; Free(st); - tempde->user_data=DocPrint(doc,"$$TR,\"%s\",U=0x%X$$",tempde->full_name,tempde); - tempde->next=*_head; - *_head=tempde; + tmpde->user_data=DocPrint(doc,"$$TR,\"%s\",U=0x%X$$",tmpde->full_name,tmpde); + tmpde->next=*_head; + *_head=tmpde; DocPrint(doc,"\n$$ID,+2$$"); DocBottom(doc); if (init) { - DirFileDoc(doc,tempde1); - while (tempde1) { - tempde1->parent=tempde; - tempde1=tempde1->next; + DirFileDoc(doc,tmpde1); + while (tmpde1) { + tmpde1->parent=tmpde; + tmpde1=tmpde1->next; } } DocPrint(doc,"$$ID,-2$$"); - return tempde; + return tmpde; } U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) @@ -146,17 +146,17 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) CDrv *dv; I64 i; CDoc *doc=*_doc,*doc2=sys_clipboard_doc,*parent_doc; - CFMUncollapsedLst *tempc=NULL; + CFMUncollapsedLst *tmpc=NULL; U8 *cur_entry=NULL,*next_entry=NULL; CDocEntry *doc_ce; - CDirEntry *tempde,*tempde1,*cur_tree_entry; + CDirEntry *tmpde,*tmpde1,*cur_tree_entry; if (!doc) parent_doc=DocPut; else { parent_doc=doc->parent_doc; Fs->put_doc=Fs->display_doc=NULL; DocUnlock(doc); - WinMgrSync; + Refresh; DocLock(doc); cur_tree_entry=NULL; doc_ce=doc->cur_entry; @@ -164,32 +164,32 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) cur_tree_entry=doc_ce->user_data; if (cur_tree_entry) cur_entry=StrNew(cur_tree_entry->full_name); - tempde=NULL; + tmpde=NULL; if (doc_ce!=doc) doc_ce=doc_ce->next; while (doc_ce!=doc) { if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { - tempde1=tempde->parent; - while (tempde1) { - if (tempde1==cur_tree_entry) { - tempde=NULL; + tmpde=NULL; + if (tmpde) { + tmpde1=tmpde->parent; + while (tmpde1) { + if (tmpde1==cur_tree_entry) { + tmpde=NULL; break; } else - tempde1=tempde1->parent; + tmpde1=tmpde1->parent; } - if (tempde) + if (tmpde) break; } doc_ce=doc_ce->next; } - if (tempde) - next_entry=StrNew(tempde->full_name); + if (tmpde) + next_entry=StrNew(tmpde->full_name); - tempc=FMCollectUncollapsedLst(doc); + tmpc=FMCollectUncollapsedLst(doc); DocDel(doc); } if (*_head) { @@ -219,19 +219,19 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) dv=&blkdev.drvs[i]; if (dv->bd->type==BDT_ATAPI) { if (dv->bd->flags&BDF_INITIALIZED) - tempde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); + tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); else { - tempde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,FALSE); - tempde->flags|=DEF_NOT_INITIALIZED; + tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,FALSE); + tmpde->flags|=DEF_NOT_INITIALIZED; } } else if (dv->fs_type==FSt_REDSEA || dv->fs_type==FSt_FAT32) FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); } DocTop(doc); - FMMarkUncollapsed(doc,tempc,cur_entry,next_entry); + FMMarkUncollapsed(doc,tmpc,cur_entry,next_entry); DocCenter(doc); DocRst(doc2,TRUE); - FMDelUncollapsedLst(tempc); + FMDelUncollapsedLst(tmpc); Free(cur_entry); Free(next_entry); *_doc=doc; @@ -243,28 +243,28 @@ U0 FMRename(CDoc *doc) { CEdFileName fn; CDocEntry *doc_e=doc->cur_entry; - CDirEntry *tempde=NULL,*parent; + CDirEntry *tmpde=NULL,*parent; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempde=doc_e->user_data; - if (parent=tempde->parent) { + tmpde=doc_e->user_data; + if (parent=tmpde->parent) { Cd(parent->full_name); - StrCpy(fn.name,tempde->name); + StrCpy(fn.name,tmpde->name); if (DocForm(&fn)) { Silent; - Move(tempde->name,fn.name); + Move(tmpde->name,fn.name); Silent(OFF); } } } else if (doc_e->type_u8==DOCT_TREE) { - tempde=doc_e->user_data; - if (parent=tempde->parent) { + tmpde=doc_e->user_data; + if (parent=tmpde->parent) { Cd(parent->full_name); - StrCpy(fn.name,tempde->name); + StrCpy(fn.name,tmpde->name); if (DocForm(&fn)) { - if (StrCmp(tempde->name,fn.name)) { + if (StrCmp(tmpde->name,fn.name)) { Silent; - if (CopyTree(tempde->name,fn.name)) - DelTree(tempde->name); + if (CopyTree(tmpde->name,fn.name)) + DelTree(tmpde->name); Silent(OFF); } } @@ -276,11 +276,11 @@ U0 FMMkDir(CDoc *doc) { CEdFileName fn; CDocEntry *doc_e=doc->cur_entry; - CDirEntry *tempde=NULL,*parent; + CDirEntry *tmpde=NULL,*parent; *fn.name=0; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempde=doc_e->user_data; - if (parent=tempde->parent) { + tmpde=doc_e->user_data; + if (parent=tmpde->parent) { Cd(parent->full_name); if (DocForm(&fn)) { Silent; @@ -289,8 +289,8 @@ U0 FMMkDir(CDoc *doc) } } } else if (doc_e->type_u8==DOCT_TREE) { - tempde=doc_e->user_data; - Cd(tempde->full_name); + tmpde=doc_e->user_data; + Cd(tmpde->full_name); if (DocForm(&fn)) { Silent; MkDir(fn.name); @@ -303,21 +303,21 @@ U0 FMDelete(CDoc *doc) { U8 *st; CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; if (doc_ce->type_u8==DOCT_MENU_VAL) { - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; Silent; - st=MStrPrint("Delete: %s",tempde->full_name); + st=MStrPrint("Delete: %s",tmpde->full_name); if (PopUpCancelOk(st)) - Del(tempde->full_name); + Del(tmpde->full_name); Free(st); Silent(OFF); } else if (doc_ce->type_u8==DOCT_TREE) { - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; Silent; - st=MStrPrint("Delete: %s",tempde->full_name); + st=MStrPrint("Delete: %s",tmpde->full_name); if (PopUpCancelOk(st)) - DelTree(tempde->full_name); + DelTree(tmpde->full_name); Free(st); Silent(OFF); } @@ -326,16 +326,16 @@ U0 FMDelete(CDoc *doc) U0 FMChgDsk(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { - while (tempde->parent) - tempde=tempde->parent; + tmpde=NULL; + if (tmpde) { + while (tmpde->parent) + tmpde=tmpde->parent; Silent; - ChgDsk(*tempde->full_name); + ChgDsk(*tmpde->full_name); Silent(OFF); } } @@ -343,24 +343,24 @@ U0 FMChgDsk(CDoc *doc) U0 FMMountISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; - if (doc_ce->type_u8==DOCT_MENU_VAL && (tempde=doc_ce->user_data)) - MountFile(tempde->full_name); + CDirEntry *tmpde; + if (doc_ce->type_u8==DOCT_MENU_VAL && (tmpde=doc_ce->user_data)) + MountFile(tmpde->full_name); } U0 FMUnmount(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; I64 drv_let; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { - while (tempde->parent) - tempde=tempde->parent; - drv_let=*tempde->full_name; + tmpde=NULL; + if (tmpde) { + while (tmpde->parent) + tmpde=tmpde->parent; + drv_let=*tmpde->full_name; if (Let2BlkDev(drv_let)!=Let2BlkDev(':')) Unmount(drv_let); } @@ -369,19 +369,19 @@ U0 FMUnmount(CDoc *doc) U0 FMFmtDrv(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; U8 *st=NULL; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { - while (tempde->parent) - tempde=tempde->parent; - st=MStrPrint("Format Drive '%c'?\nAre You Sure?\n",*tempde->full_name); + tmpde=NULL; + if (tmpde) { + while (tmpde->parent) + tmpde=tmpde->parent; + st=MStrPrint("Format Drive '%c'?\nAre You Sure?\n",*tmpde->full_name); if (PopUpCancelOk(st)) { Silent; - Fmt(*tempde->full_name,,FALSE); + Fmt(*tmpde->full_name,,FALSE); Silent(OFF); } } @@ -391,21 +391,21 @@ U0 FMFmtDrv(CDoc *doc) U0 FMMakeISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; U8 *st; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { + tmpde=NULL; + if (tmpde) { if (doc_ce->type_u8==DOCT_MENU_VAL) - tempde=tempde->parent; - if (tempde && *tempde->full_name) { + tmpde=tmpde->parent; + if (tmpde && *tmpde->full_name) { Silent; - if (tempde->full_name[StrLen(tempde->full_name)-1]=='/') - st=MStrPrint("%s*",tempde->full_name); + if (tmpde->full_name[StrLen(tmpde->full_name)-1]=='/') + st=MStrPrint("%s*",tmpde->full_name); else - st=MStrPrint("%s/*",tempde->full_name); + st=MStrPrint("%s/*",tmpde->full_name); ISO9660ISO(,st); Free(st); Silent(OFF); @@ -416,16 +416,16 @@ U0 FMMakeISO(CDoc *doc) U0 FMBurnISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; - CDirEntry *tempde; + CDirEntry *tmpde; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; else - tempde=NULL; - if (tempde) { - while (tempde->parent) - tempde=tempde->parent; + tmpde=NULL; + if (tmpde) { + while (tmpde->parent) + tmpde=tmpde->parent; Silent; - DVDImageWrite(*tempde->full_name); + DVDImageWrite(*tmpde->full_name); Silent(OFF); } } @@ -435,37 +435,37 @@ U0 FMCopy(CDoc *doc) CDoc *doc2=sys_clipboard_doc; U8 *st; CDocEntry *doc_ce=doc->cur_entry,*doc_e; - CDirEntry *tempde,*tempde1=NULL,*tempde2; + CDirEntry *tmpde,*tmpde1=NULL,*tmpde2; Bool unlock_doc2=DocLock(doc2); doc_e=doc2->head.next; - tempde1=doc_ce->user_data; + tmpde1=doc_ce->user_data; if (doc_ce->type_u8==DOCT_MENU_VAL) - tempde1=tempde1->parent; + tmpde1=tmpde1->parent; else if (doc_ce->type_u8!=DOCT_TREE) - tempde1=NULL; - if (tempde1) { + tmpde1=NULL; + if (tmpde1) { while (doc_e!=doc2) { if (doc_e->type_u8==DOCT_MENU_VAL) { - tempde=doc_e->user_data; - tempde->flags|=DEF_PROCESSED; - tempde2=tempde->parent; - if (!tempde2 || !(tempde2->flags&DEF_PROCESSED)) { + tmpde=doc_e->user_data; + tmpde->flags|=DEF_PROCESSED; + tmpde2=tmpde->parent; + if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { Silent; - Copy(tempde->full_name,tempde1->full_name); + Copy(tmpde->full_name,tmpde1->full_name); Silent(OFF); } } else if (doc_e->type_u8==DOCT_TREE) { - tempde=doc_e->user_data; - tempde->flags|=DEF_PROCESSED; - tempde2=tempde->parent; - if (!tempde2 || !(tempde2->flags&DEF_PROCESSED)) { + tmpde=doc_e->user_data; + tmpde->flags|=DEF_PROCESSED; + tmpde2=tmpde->parent; + if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { Silent; - if (*tempde1->name) - st=MStrPrint("%s/%s",tempde1->full_name,tempde->name); + if (*tmpde1->name) + st=MStrPrint("%s/%s",tmpde1->full_name,tmpde->name); else - st=MStrPrint("%s%s",tempde1->full_name,tempde->name); - CopyTree(tempde->full_name,st); + st=MStrPrint("%s%s",tmpde1->full_name,tmpde->name); + CopyTree(tmpde->full_name,st); Free(st); Silent(OFF); } @@ -567,20 +567,20 @@ U0 FMRightClick() } U8 *fm_ip_str=NULL; -U0 (*fp_old_final_screen_update)(CDC *dc); +U0 (*fp_old_final_scrn_update)(CDC *dc); -U0 FMFinalScreenUpdate(CDC *dc) +U0 FMFinalScrnUpdate(CDC *dc) { if (fm_ip_str) { dc->color=LTRED; GrPrint(dc,ip.pos.x,ip.pos.y,"%s",fm_ip_str); } - (*fp_old_final_screen_update)(dc); + (*fp_old_final_scrn_update)(dc); } public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) {//File manager. Also, used to choose files and dirs. - CDirEntry *head=NULL,*tempde,*tempde1,*tempde2; + CDirEntry *head=NULL,*tmpde,*tmpde1,*tmpde2; I64 sc,ch,a1,a2,msg_code; CDoc *doc=NULL,*old_put_doc=DocPut,*old_display_doc=DocDisplay; U8 *res=NULL,*st,*st2,*old_cur_dir=CurDir; @@ -588,15 +588,15 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) Bool okay; SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ - fp_old_final_screen_update=gr.fp_final_screen_update; + fp_old_final_scrn_update=gr.fp_final_scrn_update; MenuFilePush("::/Doc/FileMgrPullDown.DD"); FMRebuildDoc(&doc,&head,mode); - if (tempde1=Cd2DirEntry(head,old_cur_dir)) - doc->cur_entry=tempde1->user_data; - while (tempde1) { - if (tempde1->attr&RS_ATTR_DIR) - tempde1->user_data(CDocEntry *)->de_flags&=~DOCEF_CHECKED_COLLAPSED; - tempde1=tempde1->parent; + if (tmpde1=Cd2DirEntry(head,old_cur_dir)) + doc->cur_entry=tmpde1->user_data; + while (tmpde1) { + if (tmpde1->attr&RS_ATTR_DIR) + tmpde1->user_data(CDocEntry *)->de_flags&=~DOCEF_CHECKED_COLLAPSED; + tmpde1=tmpde1->parent; } do { DocUnlock(doc); @@ -613,51 +613,51 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) case MSG_IP_L_DOWN: doc_ce=doc->cur_entry; fm_ip_str=doc_ce->tag; - gr.fp_final_screen_update=&FMFinalScreenUpdate; + gr.fp_final_scrn_update=&FMFinalScrnUpdate; break; case MSG_IP_L_UP: if (doc_ce) { - gr.fp_final_screen_update=fp_old_final_screen_update; + gr.fp_final_scrn_update=fp_old_final_scrn_update; if (WinCursorPosSet(Fs,a1+Fs->pix_left+Fs->scroll_x, a2+Fs->pix_top+Fs->scroll_y,TRUE)) { doc_e=doc->cur_entry; if (doc_e!=doc_ce) { st2=NULL; if (doc_e->type_u8==DOCT_MENU_VAL) { - tempde1=doc_e->user_data; - if (tempde1=tempde1->parent) - st2=StrNew(tempde1->full_name); + tmpde1=doc_e->user_data; + if (tmpde1=tmpde1->parent) + st2=StrNew(tmpde1->full_name); } else if (doc_e->type_u8==DOCT_TREE) { - tempde1=doc_e->user_data; - st2=StrNew(tempde1->full_name); + tmpde1=doc_e->user_data; + st2=StrNew(tmpde1->full_name); } if (st2 && doc_ce->type_u8==DOCT_MENU_VAL) { - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; Silent; - Move(tempde->full_name,st2); + Move(tmpde->full_name,st2); Silent(OFF); FMRebuildDoc(&doc,&head,mode); } else if (st2 && doc_ce->type_u8==DOCT_TREE) { - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; okay=TRUE; - tempde2=tempde1; - while (tempde2) { - if (tempde2!=tempde) - tempde2=tempde2->parent; + tmpde2=tmpde1; + while (tmpde2) { + if (tmpde2!=tmpde) + tmpde2=tmpde2->parent; else { okay=FALSE; break; } } if (okay) { - if (*tempde1->name) - st=MStrPrint("%s/%s",tempde1->full_name,tempde->name); + if (*tmpde1->name) + st=MStrPrint("%s/%s",tmpde1->full_name,tmpde->name); else - st=MStrPrint("%s%s",tempde1->full_name,tempde->name); - if (StrCmp(tempde->full_name,st)) { + st=MStrPrint("%s%s",tmpde1->full_name,tmpde->name); + if (StrCmp(tmpde->full_name,st)) { Silent; - CopyTree(tempde->full_name,st); - DelTree(tempde->full_name); + CopyTree(tmpde->full_name,st); + DelTree(tmpde->full_name); Silent(OFF); FMRebuildDoc(&doc,&head,mode); } @@ -743,15 +743,15 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) break; case CH_ESC: doc_ce=doc->cur_entry; - tempde=doc_ce->user_data; + tmpde=doc_ce->user_data; if (mode==FM_PICK_FILE && doc_ce->type_u8==DOCT_MENU_VAL) - res=StrNew(tempde->full_name,mem_task); + res=StrNew(tmpde->full_name,mem_task); else if (mode==FM_PICK_DIR) { if (doc_ce->type_u8==DOCT_TREE) - res=StrNew(tempde->full_name,mem_task); + res=StrNew(tmpde->full_name,mem_task); else if (doc_ce->type_u8==DOCT_MENU_VAL && - (tempde=tempde->parent)) - res=StrNew(tempde->full_name,mem_task); + (tmpde=tmpde->parent)) + res=StrNew(tmpde->full_name,mem_task); } break; default: @@ -760,12 +760,12 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) FMRebuildDoc(&doc,&head,mode); } else if (sc.u8[0]==SC_F5) { if (doc->cur_entry->type_u8==DOCT_MENU_VAL) { - tempde=doc->cur_entry->user_data; + tmpde=doc->cur_entry->user_data; DocUnlock(doc); if (sc&SCF_SHIFT) - AdamFile(tempde->full_name); + AdamFile(tmpde->full_name); else - PopUpFile(tempde->full_name); + PopUpFile(tmpde->full_name); DocLock(doc); } } else { @@ -778,7 +778,7 @@ fm_regular_key: break; } } while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); - gr.fp_final_screen_update=fp_old_final_screen_update; + gr.fp_final_scrn_update=fp_old_final_scrn_update; Fs->put_doc =old_put_doc; Fs->display_doc=old_display_doc; SettingsPop; diff --git a/Adam/ABlkDev/Mount.HC b/Adam/ABlkDev/Mount.HC index 1241ae5..01df9ef 100644 --- a/Adam/ABlkDev/Mount.HC +++ b/Adam/ABlkDev/Mount.HC @@ -4,7 +4,7 @@ I64 Mount2(U8 boot_drv_let,CDoc *_doc,Bool repartition) I64 cnt,res=0,num_hints,drv_let,type,unit; U8 blks_buf[STR_LEN],addr_buf[STR_LEN],base0_buf[STR_LEN],base1_buf[STR_LEN], *filename=NULL,*filename2=NULL; - CATARep *head=NULL,*tempha; + CATARep *head=NULL,*tmpha; Bool one_drv,make_free; CDoc *doc; boot_drv_let=ToUpper(boot_drv_let); @@ -57,10 +57,10 @@ I64 Mount2(U8 boot_drv_let,CDoc *_doc,Bool repartition) GetS(base0_buf,STR_LEN); } while (!Str2I64(base0_buf) && (type!=BDT_ATAPI || !boot_drv_let)); if (1<=Str2I64(base0_buf)<=num_hints) { - tempha=ATARepFind(head,Str2I64(base0_buf)); - StrPrint(base0_buf,"0x%X",tempha->base0); - StrPrint(base1_buf,"0x%X",tempha->base1); - unit=tempha->unit; + tmpha=ATARepFind(head,Str2I64(base0_buf)); + StrPrint(base0_buf,"0x%X",tmpha->base0); + StrPrint(base1_buf,"0x%X",tmpha->base1); + unit=tmpha->unit; } else if (type!=BDT_ATAPI || *base0_buf) { if (type==BDT_ATAPI) StrCpy(base1_buf,"0"); diff --git a/Adam/ABlkDev/PrtDsk.HC b/Adam/ABlkDev/PrtDsk.HC index d663e64..22adfaf 100644 --- a/Adam/ABlkDev/PrtDsk.HC +++ b/Adam/ABlkDev/PrtDsk.HC @@ -18,7 +18,7 @@ public I64 PrtDsk(U8 drv_let=0) //drv_let=0 means add new drive that //is not already mounted. CBlkDev *bd; - CPlannedDrv head,*temppp; + CPlannedDrv head,*tmppp; CMasterBoot mbr; Bool pri=TRUE; I64 ext_base,drv_let2,pri_cnt=0, @@ -49,15 +49,15 @@ public I64 PrtDsk(U8 drv_let=0) drv_let2=bd->first_drv_let; remaining=FloorU64(bd->max_blk+1,ROUND_DRV_TO); while (FloorU64(remaining,ROUND_DRV_TO)>=ROUND_DRV_TO) { - temppp=MAlloc(sizeof(CPlannedDrv)); + tmppp=MAlloc(sizeof(CPlannedDrv)); do { "$$RED$$Partition %C$$FG$$\n",drv_let2; - temppp->pri=FALSE; + tmppp->pri=FALSE; if (pri) { "Primary Partition"; if (YorN) { pri_cnt++; - temppp->pri=TRUE; + tmppp->pri=TRUE; if (pri_cnt==3) pri=FALSE; } else @@ -65,31 +65,31 @@ public I64 PrtDsk(U8 drv_let=0) } "Blocks Remaining:%d (0x%X)\n", remaining-DRV_HEADER,remaining-DRV_HEADER; - temppp->size=CeilU64(GetI64("Size in Blocks :", + tmppp->size=CeilU64(GetI64("Size in Blocks :", remaining-DRV_HEADER)+DRV_HEADER,ROUND_DRV_TO); - } while (!(ROUND_DRV_TO<=temppp->size<=FloorU64(remaining,ROUND_DRV_TO))); - QueIns(temppp,head.last); - remaining-=temppp->size; + } 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"; - temppp=head.next; + tmppp=head.next; drv_let2=bd->first_drv_let; - while (temppp!=&head) { - "Drive %C:%08X ",drv_let2,temppp->size; - if (temppp->pri) + while (tmppp!=&head) { + "Drive %C:%08X ",drv_let2,tmppp->size; + if (tmppp->pri) "Primary\n"; else "Logical\n"; - temppp=temppp->next; + tmppp=tmppp->next; drv_let2++; } if (!AreYouSure) goto pd_done; remaining=FloorU64(bd->max_blk+1,ROUND_DRV_TO)-ROUND_DRV_TO; - temppp=head.next; + tmppp=head.next; MemSet(&mbr,0,BLK_SIZE); mbr.signature=0xAA55; offset=0; @@ -101,13 +101,13 @@ public I64 PrtDsk(U8 drv_let=0) mbr.p[i].end_head=0xFE; mbr.p[i].end_cyl=0xFFFF; mbr.p[i].offset=DRV_HEADER+offset; - mbr.p[i].size=temppp->size-DRV_HEADER; - offset+=temppp->size; - remaining-=temppp->size; - temppp=temppp->next; + mbr.p[i].size=tmppp->size-DRV_HEADER; + offset+=tmppp->size; + remaining-=tmppp->size; + tmppp=tmppp->next; } if (!i) i++; - if (temppp!=&head) { + if (tmppp!=&head) { mbr.p[i].active=0x80; mbr.p[i].start_head=0; mbr.p[i].start_cyl=0x101; @@ -120,7 +120,7 @@ public I64 PrtDsk(U8 drv_let=0) } ATAWriteBlks(bd,&mbr,0,1); - while (temppp!=&head) { + while (tmppp!=&head) { start_offset=offset; MemSet(&mbr,0,BLK_SIZE); mbr.signature=0xAA55; @@ -132,10 +132,10 @@ public I64 PrtDsk(U8 drv_let=0) mbr.p[0].end_head=0xFE; mbr.p[0].end_cyl=0xFFFF; mbr.p[0].offset=DRV_HEADER; - mbr.p[0].size=temppp->size-DRV_HEADER; - offset+=temppp->size; - temppp=temppp->next; - if (temppp!=&head) { + 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; @@ -143,7 +143,7 @@ public I64 PrtDsk(U8 drv_let=0) mbr.p[1].end_head=0xFE; mbr.p[1].end_cyl=0xFFFF; mbr.p[1].offset=offset-ext_base; - mbr.p[1].size=temppp->size; + mbr.p[1].size=tmppp->size; } ATAWriteBlks(bd,&mbr,start_offset,1); } @@ -155,9 +155,9 @@ public I64 PrtDsk(U8 drv_let=0) pd_done: while (head.next!=&head) { - temppp=head.next; - QueRem(temppp); - Free(temppp); + tmppp=head.next; + QueRem(tmppp); + Free(tmppp); } return drv_dsk_dsk_size; } diff --git a/Adam/ADbg.HC b/Adam/ADbg.HC index ef7750e..5e3a564 100644 --- a/Adam/ADbg.HC +++ b/Adam/ADbg.HC @@ -6,32 +6,32 @@ Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass, CMemberLst *ml; CDocEntry *doc_e; Bool unlock; - CHashClass *tempc,*tempc2; + CHashClass *tmpc,*tmpc2; if (depth>=max_depth) return TRUE; - if (!(tempc=HashFind(class_name,Fs->hash_table,types))) { + if (!(tmpc=HashFind(class_name,Fs->hash_table,types))) { DocPrint(doc,"Class Not Found.\n"); return FALSE; } - if (!ChkPtr(_d) || !ChkPtr(_d(U8 *)+tempc->size)) { + if (!ChkPtr(_d) || !ChkPtr(_d(U8 *)+tmpc->size)) { DocPrint(doc,"Bad Ptr:%016X\n",_d); return FALSE; } - if (tempc->base_class && !ClassRep2(doc,_d,tempc->base_class->str, + if (tmpc->base_class && !ClassRep2(doc,_d,tmpc->base_class->str, depth,max_depth,dynamic,types,offset)) return FALSE; unlock=DocLock(doc); DocPrint(doc,"Class:\"%s\"\n",class_name); - ml=tempc->member_lst_and_root; + ml=tmpc->member_lst_and_root; while (ml) { - tempc2=ml->member_class; + tmpc2=ml->member_class; ptr=_d(U8 *)+ml->offset; DocPrint(doc,"%08X ",ptr(U8 *)+offset); - stars=tempc2->ptr_stars_cnt; - tempc2=OptClassFwd(tempc2); - tempc2-=tempc2->ptr_stars_cnt; - if (tempc2->type & HTT_INTERNAL_TYPE) { + stars=tmpc2->ptr_stars_cnt; + tmpc2=OptClassFwd(tmpc2); + tmpc2-=tmpc2->ptr_stars_cnt; + if (tmpc2->type & HTT_INTERNAL_TYPE) { DocPrint(doc,"$$GREEN$$%-20ts:$$FG$$",ml->str); - if (stars==1 && (tempc2->raw_type==RT_I8 || tempc2->raw_type==RT_U8)) { + if (stars==1 && (tmpc2->raw_type==RT_I8 || tmpc2->raw_type==RT_U8)) { ptr=*ptr; if (ChkPtr(ptr)) { if (dynamic) { @@ -43,7 +43,7 @@ Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass, } } else if (!stars) { j=MinI64(ml->dim.total_cnt,32); - if (tempc2->raw_type==RT_I8 || tempc2->raw_type==RT_U8) { + if (tmpc2->raw_type==RT_I8 || tmpc2->raw_type==RT_U8) { if (j==1) { if (dynamic) { doc_e=DocPrint(doc,"$$DA-TRM+RD+UD,RT=U8,A=\"%%c\"$$\n"); @@ -60,7 +60,7 @@ Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass, } } for (i=0;iraw_type) { + switch (tmpc2->raw_type) { case RT_I0: case RT_U0: break; @@ -143,9 +143,9 @@ Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass, DocPrint(doc,"$$TR,\"%s\"$$\n",ml->str); DocPrint(doc,"$$ID,2$$"); if (!stars) - ClassRep2(doc,ptr,tempc2->str,depth+1,max_depth,dynamic); + ClassRep2(doc,ptr,tmpc2->str,depth+1,max_depth,dynamic); else if (stars==1) - ClassRep2(doc,*ptr,tempc2->str,depth+1,max_depth,dynamic); + ClassRep2(doc,*ptr,tmpc2->str,depth+1,max_depth,dynamic); DocPrint(doc,"$$ID,-2$$"); } } else @@ -202,15 +202,15 @@ public U0 ClassRepD(U8 *_d,U8 *class_name=lastclass, } } -U0 UpdateRegVarImg(CHashFun *tempf,U8 *_b,CTask *task) +U0 UpdateRegVarImg(CHashFun *tmpf,U8 *_b,CTask *task) { CMemberLst *ml; - CHashClass *tempc; - ml=tempf->member_lst_and_root; + CHashClass *tmpc; + ml=tmpf->member_lst_and_root; while (ml) { if (ml->reg!=REG_NONE) { - tempc=OptClassFwd(ml->member_class); - MemCpy(_b+ml->offset,TaskRegAddr(task,ml->reg),tempc->size); + tmpc=OptClassFwd(ml->member_class); + MemCpy(_b+ml->offset,TaskRegAddr(task,ml->reg),tmpc->size); } ml=ml->next; } @@ -220,32 +220,32 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) {//Shows names and vals of a fun's local vars using compiler's info. I64 size; U8 *img; - CHashFun *tempf=HashFind(st,Fs->hash_table,HTT_FUN); - CMemberLst *tempm; - if (tempf) { + CHashFun *tmpf=HashFind(st,Fs->hash_table,HTT_FUN); + CMemberLst *tmpm; + if (tmpf) { if (rbp) { if (task) { -//tempf->size is negative. It's the bottom +//tmpf->size is negative. It's the bottom //of the fun local var space relative to RBP . - size=tempf->arg_cnt*8-tempf->size+16; + size=tmpf->arg_cnt*8-tmpf->size+16; img=MAlloc(size); - MemCpy(img,rbp+tempf->size,size); - UpdateRegVarImg(tempf,img-tempf->size,task); - ClassRep(img-tempf->size,st,max_depth,TRUE,rbp-img+tempf->size); + MemCpy(img,rbp+tmpf->size,size); + UpdateRegVarImg(tmpf,img-tmpf->size,task); + ClassRep(img-tmpf->size,st,max_depth,TRUE,rbp-img+tmpf->size); Free(img); } else ClassRep(rbp,st,max_depth,TRUE); } else { - tempm=tempf->member_lst_and_root; - while (tempm) { - if (0<=tempm->regreg,"ST_U64_REGS",tempm->str; + tmpm=tmpf->member_lst_and_root; + while (tmpm) { + if (0<=tmpm->regreg,"ST_U64_REGS",tmpm->str; else - "%08tX %s\n",tempm->offset,tempm->str; - tempm=tempm->next; + "%08tX %s\n",tmpm->offset,tmpm->str; + tmpm=tmpm->next; } - "%08tX Stk Size\n",tempf->size; + "%08tX Stk Size\n",tmpf->size; } } } @@ -254,17 +254,17 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) public U0 Uf(U8 *st) {//Unassembles a named fun I64 i; - CHashSrcSym *tempf; + CHashSrcSym *tmpf; CDbgInfo *dbg_info; - if (tempf=HashFind(st,Fs->hash_table,HTT_FUN|HTT_EXPORT_SYS_SYM)) { - if (tempf->type&HTT_FUN) + if (tmpf=HashFind(st,Fs->hash_table,HTT_FUN|HTT_EXPORT_SYS_SYM)) { + if (tmpf->type&HTT_FUN) FunRep(st); - if (dbg_info=tempf->dbg_info) { + if (dbg_info=tmpf->dbg_info) { i=dbg_info->body[dbg_info->max_line+1-dbg_info->min_line] -dbg_info->body[0]; Un(dbg_info->body[0],i); "Code Size:%04X\n",i; } else - U(HashVal(tempf)); + U(HashVal(tmpf)); } } diff --git a/Adam/ADefine.HC b/Adam/ADefine.HC index 6087c33..c0e3edf 100644 --- a/Adam/ADefine.HC +++ b/Adam/ADefine.HC @@ -11,8 +11,8 @@ U0 LoadDocDefines() //This is cut and replaced when I generate a distro. //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.HC,DD_TEMPLEOS_LOC"$. $TR-C,"LineRep"$ - $ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,264"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,209"); + $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,939"); +DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,264"); $ID,-4$ DefinePrint("DD_KERNEL","%08X",bfh); bfh(I64)+=bfh->file_size-1; @@ -29,11 +29,11 @@ $ID,-4$ SYS_FIXED_AREA+sizeof(CSysFixedArea)-1); DefinePrint("DD_SYS_HEAP_BASE","%08X",sys_heap_base); DefinePrint("DD_SYS_HEAP_LIMIT","%08X",sys_heap_limit); - DefinePrint("DD_MEM_MIN_MEG","%d Meg",MEM_MIN_MEG); + DefinePrint("DD_MEM_MIN_MEG","%dMeg",MEM_MIN_MEG); DefinePrint("DD_UNCACHED_ALIAS","%010X",dev.uncached_alias); - DefinePrint("DD_MEM_MAPPED_SPACE_GIG","%d Gig",MEM_MAPPED_SPACE/0x40000000); + DefinePrint("DD_MEM_MAPPED_SPACE_GIG","%dGig",MEM_MAPPED_SPACE/0x40000000); DefinePrint("DD_MEM_MAPPED_SPACE_END","%010X",MEM_MAPPED_SPACE-1); - DefinePrint("DD_JIFFY_HZ","%d Hz",JIFFY_FREQ); + DefinePrint("DD_JIFFY_HZ","%dHz",JIFFY_FREQ); } LoadDocDefines; diff --git a/Adam/AExts.HC b/Adam/AExts.HC index 38f2ec5..bcc724a 100644 --- a/Adam/AExts.HC +++ b/Adam/AExts.HC @@ -10,7 +10,7 @@ extern I64 BMPWrite(U8 *filename,CDC *dc,I64 bits=4); extern U0 ClipboardDel(); extern CCtrl *CtrlFindUnique(CTask *haystack_task,I64 needle_type); extern Bool CtrlInside(CCtrl *c,I64 x,I64 y); -extern U8 *DC2Sprite(CDC *tempb); +extern U8 *DC2Sprite(CDC *tmpb); extern U0 DocBMP(CDoc *doc=NULL,U8 *filename, Bool dither_probability=FALSE,Bool use_ms_paint_palette=FALSE); extern U0 DocBinDel(CDoc *doc,CDocBin *b); @@ -78,6 +78,7 @@ extern Bool PopUpOk(U8 *header=NULL,U8 *footer=NULL); extern I64 PopUpRangeI64( I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL); extern Bool PopUpTransform(I64 *r); +extern U0 Refresh(I64 cnt=1,Bool force=FALSE); extern U0 RegOneTimePopUp(I64 flag_num,U8 *msg); extern U0 SettingsPop(CTask *task=NULL,I64 flags=0); extern CTaskSettings *SettingsPush(CTask *task=NULL,I64 flags=0); @@ -89,7 +90,6 @@ extern Bool WinBorder(Bool val=OFF,CTask *task=NULL); extern CDoc *WinCursorPosSet(CTask *task,I64 ipx,I64 ipy,Bool set_cursor=TRUE); extern Bool WinHorz(I64 left,I64 right,CTask *task=NULL); extern U0 WinMax(CTask *task=NULL); -extern U0 WinMgrSync(I64 cnt=1,Bool force=FALSE); extern U0 WinScrollNull(CTask *task,CD3I64 *s); extern U0 WinScrollRestore(CTask *task,CD3I64 *s); extern U0 WinScrollsInit(CTask *task); diff --git a/Adam/AHash.HC b/Adam/AHash.HC index fa5f160..a02b2b8 100644 --- a/Adam/AHash.HC +++ b/Adam/AHash.HC @@ -17,13 +17,13 @@ I64 HashEntriesCompare(CWho *h1,CWho *h2) I64 HashEntriesCompare2(CWho *h1,CWho *h2) { - CHashFun *tempf1=h1->h,*tempf2=h2->h; - I64 i1=HashVal(tempf1),i2=HashVal(tempf2); + CHashFun *tmpf1=h1->h,*tmpf2=h2->h; + I64 i1=HashVal(tmpf1),i2=HashVal(tmpf2); if (i1==i2) { - i1=HashTypeNum(tempf1); - i2=HashTypeNum(tempf2); + i1=HashTypeNum(tmpf1); + i2=HashTypeNum(tmpf2); if (i1==i2) - return StrCmp(tempf1->str,tempf2->str); + return StrCmp(tmpf1->str,tmpf2->str); } return i1-i2; } @@ -67,7 +67,7 @@ U8 *HelpIndexStr(U8 **_ptr,U8 *idx) return NULL; } -U8 *HelpComment(CTask *task,CHash *temph,U8 *_src_link) +U8 *HelpComment(CTask *task,CHash *tmph,U8 *_src_link) { CDoc *doc; CDocEntry *doc_e; @@ -80,9 +80,9 @@ U8 *HelpComment(CTask *task,CHash *temph,U8 *_src_link) doc=DocPut(task); doc_e=doc->cur_entry; - if (temph->type&HTT_FUN) { - if (Bt(&temph(CHashFun *)->flags,Ff__EXTERN) || - Bt(&temph(CHashFun *)->flags,Ff_INTERNAL)) + if (tmph->type&HTT_FUN) { + if (Bt(&tmph(CHashFun *)->flags,Ff__EXTERN) || + Bt(&tmph(CHashFun *)->flags,Ff_INTERNAL)) while (doc_e!=doc && (!(doc_e->de_flags&DOCEF_TAG)||!StrOcc(doc_e->tag,';'))) doc_e=doc_e->next; @@ -153,7 +153,7 @@ U8 *idx=NULL,CDoc *doc=NULL) // "+m" to order by number (normally alphabetical) // "-r" just local hash table CHashTable *table; - CHashSrcSym *temph; + CHashSrcSym *tmph; CHashGeneric *ptr; CWho *lst; I64 cnt,i,j,k,f=0; @@ -182,16 +182,16 @@ U8 *idx=NULL,CDoc *doc=NULL) table=h; while (table) { for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - while (temph) { - if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && - (temph->type & HTF_PUBLIC || !publics)) { + tmph=table->body[i]; + while (tmph) { + if (!(tmph->type & (HTF_IMPORT | HTF_PRIVATE)) && + (tmph->type & HTF_PUBLIC || !publics)) { if (!idx) cnt++; - else if (temph->type&HTG_SRC_SYM && (cur_idx=temph->idx)) + else if (tmph->type&HTG_SRC_SYM && (cur_idx=tmph->idx)) cnt+=HelpIndexCnt(cur_idx,idx); } - temph=temph->next; + tmph=tmph->next; } } if (recurse) @@ -206,19 +206,19 @@ U8 *idx=NULL,CDoc *doc=NULL) table=h; while (table) { for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - while (temph) { - if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && - (temph->type & HTF_PUBLIC || !publics)) + tmph=table->body[i]; + while (tmph) { + if (!(tmph->type & (HTF_IMPORT | HTF_PRIVATE)) && + (tmph->type & HTF_PUBLIC || !publics)) if (!idx) - lst[j++].h=temph; - else if (temph->type&HTG_SRC_SYM && (cur_idx=temph->idx) && + lst[j++].h=tmph; + else if (tmph->type&HTG_SRC_SYM && (cur_idx=tmph->idx) && (k=HelpIndexCnt(cur_idx,idx))) while (k--) { lst[j].idx=HelpIndexStr(&cur_idx,idx); - lst[j++].h=temph; + lst[j++].h=tmph; } - temph=temph->next; + tmph=tmph->next; } } if (recurse) @@ -331,13 +331,13 @@ public I64 HashDepthRep(CHashTable *table=NULL) {//Hash table linked-list chain depth report. //Histogram of collision count. I64 i,j,longest=0,cnt=0,a[HDR_MAX]; - CHash *temph; + CHash *tmph; if (!table) table=Fs->hash_table; MemSet(a,0,sizeof(a)); for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - if (temph) { - j=LinkedLstCnt(temph); + tmph=table->body[i]; + if (tmph) { + j=LinkedLstCnt(tmph); if (j2 && - (temph=HashSingleTableFind(absname+2,Fs->hash_table,HTT_MODULE))) - base=temph(CHashGeneric *)->user_data0+sizeof(CBinFile); + (tmph=HashSingleTableFind(absname+2,Fs->hash_table,HTT_MODULE))) + base=tmph(CHashGeneric *)->user_data0+sizeof(CBinFile); if (!doc) return; doc_e=doc->head.next; @@ -394,11 +394,11 @@ public U0 MapFileLoad(U8 *filename) st=MStrUtil(doc_e->tag,SUF_REM_TRAILING); else st=MStrUtil(doc_e->aux_str,SUF_REM_TRAILING); - if (temph=HashSingleTableFind(st,Fs->hash_table,HTG_SRC_SYM)) { + if (tmph=HashSingleTableFind(st,Fs->hash_table,HTG_SRC_SYM)) { if (*doc_e->tag) { - Free(temph->src_link); - temph->src_link=doc_e->aux_str; - ptr=temph->src_link; + Free(tmph->src_link); + tmph->src_link=doc_e->aux_str; + ptr=tmph->src_link; if (ptr[0] && ptr[1] && ptr[2]==':') { if (ptr[3]==':') ptr[3]=blkdev.boot_drv_let; @@ -407,14 +407,14 @@ public U0 MapFileLoad(U8 *filename) } doc_e->aux_str=NULL; } - if (temph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM) && - !(dbg_info=temph->dbg_info) && doc_e->bin_data && + if (tmph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM) && + !(dbg_info=tmph->dbg_info) && doc_e->bin_data && (dbg_info=doc_e->bin_data->data)) { if (doc_e->bin_data->size>MSize(dbg_info)) "Corrupt Map Entry\n"; else { doc_e->bin_data->data=NULL; - temph->dbg_info=dbg_info; + tmph->dbg_info=dbg_info; for (i=dbg_info->min_line;i<=dbg_info->max_line+1;i++) { j=i-dbg_info->min_line; if (dbg_info->body[j]) diff --git a/Adam/AMathODE.HC b/Adam/AMathODE.HC index 844b773..90dfc48 100644 --- a/Adam/AMathODE.HC +++ b/Adam/AMathODE.HC @@ -17,14 +17,14 @@ U0 ODERstPtrs(CMathODE *ode) ode->state_scale=ptr; ptr(I64)+=s; ode->DstateDt=ptr; ptr(I64)+=s; ode->initial_state=ptr; ptr(I64)+=s; - ode->temp0=ptr; ptr(I64)+=s; - ode->temp1=ptr; ptr(I64)+=s; - ode->temp2=ptr; ptr(I64)+=s; - ode->temp3=ptr; ptr(I64)+=s; - ode->temp4=ptr; ptr(I64)+=s; - ode->temp5=ptr; ptr(I64)+=s; - ode->temp6=ptr; ptr(I64)+=s; - ode->temp7=ptr; + ode->tmp0=ptr; ptr(I64)+=s; + ode->tmp1=ptr; ptr(I64)+=s; + ode->tmp2=ptr; ptr(I64)+=s; + ode->tmp3=ptr; ptr(I64)+=s; + ode->tmp4=ptr; ptr(I64)+=s; + ode->tmp5=ptr; ptr(I64)+=s; + ode->tmp6=ptr; ptr(I64)+=s; + ode->tmp7=ptr; } public CMathODE *ODENew(I64 n,F64 max_tolerance=1e-6,I64 flags=0) @@ -79,26 +79,26 @@ U0 ODESetMassesPtrs(CMathODE *ode,F64 *state,F64 *DstateDt) { COrder2D3 *ptr1=state(F64 *)+ode->n, *ptr2=DstateDt(F64 *)+ode->n; - CMass *tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - tempm->state=ptr1++; - tempm->DstateDt=ptr2++; - tempm=tempm->next; + CMass *tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + tmpm->state=ptr1++; + tmpm->DstateDt=ptr2++; + tmpm=tmpm->next; } } U0 ODEState2Internal(CMathODE *ode) { - CMass *tempm; + CMass *tmpm; F64 *old_array_base; I64 mass_cnt; if (ode->flags&ODEF_HAS_MASSES) { mass_cnt=0; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { mass_cnt++; - tempm=tempm->next; + tmpm=tmpm->next; } old_array_base=ode->array_base; ode->n_internal=ode->n+6*mass_cnt; @@ -107,10 +107,10 @@ U0 ODEState2Internal(CMathODE *ode) ODERstPtrs(ode); ODESetMassesPtrs(ode,ode->state_internal,ode->state_internal); - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - MemCpy(tempm->state,&tempm->saved_state,sizeof(COrder2D3)); - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + MemCpy(tmpm->state,&tmpm->saved_state,sizeof(COrder2D3)); + tmpm=tmpm->next; } } MemCpy(ode->state_internal,ode->state,ode->n*sizeof(F64)); @@ -118,14 +118,14 @@ U0 ODEState2Internal(CMathODE *ode) U0 ODEInternal2State(CMathODE *ode) { - CMass *tempm; + CMass *tmpm; MemCpy(ode->state,ode->state_internal,ode->n*sizeof(F64)); if (ode->flags&ODEF_HAS_MASSES) { ODESetMassesPtrs(ode,ode->state_internal,ode->state_internal); - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - MemCpy(&tempm->saved_state,tempm->state,sizeof(COrder2D3)); - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + MemCpy(&tmpm->saved_state,tmpm->state,sizeof(COrder2D3)); + tmpm=tmpm->next; } } } @@ -133,58 +133,58 @@ U0 ODEInternal2State(CMathODE *ode) public U0 ODERenum(CMathODE *ode) {//Renumber masses and springs. I64 i; - CSpring *temps; - CMass *tempm; + CSpring *tmps; + CMass *tmpm; i=0; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - tempm->num=i++; - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + tmpm->num=i++; + tmpm=tmpm->next; } i=0; - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - temps->num=i++; - temps->end1_num=temps->end1->num; - temps->end2_num=temps->end2->num; - temps=temps->next; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + tmps->num=i++; + tmps->end1_num=tmps->end1->num; + tmps->end2_num=tmps->end2->num; + tmps=tmps->next; } } public CMass *MassFind(CMathODE *ode,F64 x,F64 y,F64 z=0) {//Search for mass nearest to x,y,z. - CMass *tempm,*best_mass=NULL; + CMass *tmpm,*best_mass=NULL; F64 dd,best_dd=MAX_F64; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - dd=Sqr(tempm->x-x)+Sqr(tempm->y-y)+Sqr(tempm->z-z); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + dd=Sqr(tmpm->x-x)+Sqr(tmpm->y-y)+Sqr(tmpm->z-z); if (ddnext; + tmpm=tmpm->next; } return best_mass; } public CSpring *SpringFind(CMathODE *ode,F64 x,F64 y,F64 z=0) {//Find spring midpoint nearest x,y,z. - CSpring *temps,*best_spring=NULL; + CSpring *tmps,*best_spring=NULL; F64 dd,best_dd=MAX_F64; - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - dd=Sqr((temps->end1->x+temps->end2->x)/2-x)+ - Sqr((temps->end1->y+temps->end2->y)/2-y)+ - Sqr((temps->end1->z+temps->end2->z)/2-z); + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + dd=Sqr((tmps->end1->x+tmps->end2->x)/2-x)+ + Sqr((tmps->end1->y+tmps->end2->y)/2-y)+ + Sqr((tmps->end1->z+tmps->end2->z)/2-z); if (ddnext; + tmps=tmps->next; } return best_spring; } @@ -193,31 +193,31 @@ public U0 MassOrSpringFind( CMathODE *ode,CMass **res_mass,CSpring **res_spring, F64 x,F64 y,F64 z=0) {//Find spring or mass nearest x,y,z. - CMass *tempm,*best_mass=NULL; - CSpring *temps,*best_spring=NULL; + CMass *tmpm,*best_mass=NULL; + CSpring *tmps,*best_spring=NULL; F64 dd,best_dd=MAX_F64; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - dd=Sqr(tempm->x-x)+Sqr(tempm->y-y)+Sqr(tempm->z-z); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + dd=Sqr(tmpm->x-x)+Sqr(tmpm->y-y)+Sqr(tmpm->z-z); if (ddnext; + tmpm=tmpm->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - dd=Sqr((temps->end1->x+temps->end2->x)/2-x)+ - Sqr((temps->end1->y+temps->end2->y)/2-y)+ - Sqr((temps->end1->z+temps->end2->z)/2-z); + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + dd=Sqr((tmps->end1->x+tmps->end2->x)/2-x)+ + Sqr((tmps->end1->y+tmps->end2->y)/2-y)+ + Sqr((tmps->end1->z+tmps->end2->z)/2-z); if (ddnext; + tmps=tmps->next; } if (res_mass) *res_mass =best_mass; if (res_spring) *res_spring=best_spring; @@ -225,126 +225,126 @@ public U0 MassOrSpringFind( public CMass *MassFindNum(CMathODE *ode,I64 num) {//Return mass number N. - CMass *tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (tempm->num==num) - return tempm; - tempm=tempm->next; + CMass *tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (tmpm->num==num) + return tmpm; + tmpm=tmpm->next; } return NULL; } public U0 ODERstInactive(CMathODE *ode) {//Set all masses and springs to ACTIVE for new trial. - CMass *tempm; - CSpring *temps; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - tempm->flags&=~MSF_INACTIVE; - tempm=tempm->next; + CMass *tmpm; + CSpring *tmps; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + tmpm->flags&=~MSF_INACTIVE; + tmpm=tmpm->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - temps->flags&=~SSF_INACTIVE; - temps=temps->next; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + tmps->flags&=~SSF_INACTIVE; + tmps=tmps->next; } } U0 ODECalcSprings(CMathODE *ode) { - CSpring *temps=ode->next_spring; + CSpring *tmps=ode->next_spring; CMass *e1,*e2; F64 d; CD3 p; - while (temps!=&ode->next_spring) { - if (temps->flags&SSF_INACTIVE) { - temps->displacement=0; - temps->f=0; + while (tmps!=&ode->next_spring) { + if (tmps->flags&SSF_INACTIVE) { + tmps->displacement=0; + tmps->f=0; } else { - e1=temps->end1; - e2=temps->end2; + e1=tmps->end1; + e2=tmps->end2; d=D3Norm(D3Sub(&p,&e2->state->x,&e1->state->x)); - temps->displacement=d-temps->rest_len; - temps->f=temps->displacement*temps->const; - if (temps->f>0 && temps->flags&SSF_NO_TENSION) - temps->f=0; - else if (temps->f<0 && temps->flags&SSF_NO_COMPRESSION) - temps->f=0; + tmps->displacement=d-tmps->rest_len; + tmps->f=tmps->displacement*tmps->const; + if (tmps->f>0 && tmps->flags&SSF_NO_TENSION) + tmps->f=0; + else if (tmps->f<0 && tmps->flags&SSF_NO_COMPRESSION) + tmps->f=0; if (d>0) { - D3MulEqu(&p,temps->f/d); + D3MulEqu(&p,tmps->f/d); D3AddEqu(&e1->DstateDt->DxDt,&p); D3SubEqu(&e2->DstateDt->DxDt,&p); } } - temps=temps->next; + tmps=tmps->next; } } U0 ODECalcDrag(CMathODE *ode) { - CMass *tempm; + CMass *tmpm; F64 d,dd; CD3 p; if (ode->drag_v || ode->drag_v2 || ode->drag_v3) { - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (!(tempm->flags & MSF_INACTIVE) && - tempm->drag_profile_factor && - (dd=D3NormSqr(&tempm->state->DxDt))) { + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (!(tmpm->flags & MSF_INACTIVE) && + tmpm->drag_profile_factor && + (dd=D3NormSqr(&tmpm->state->DxDt))) { d=ode->drag_v; if (ode->drag_v2) d+=ode->drag_v2*Sqrt(dd); if (ode->drag_v3) d+=dd*ode->drag_v3; - D3SubEqu(&tempm->DstateDt->DxDt, - D3Mul(&p,d*tempm->drag_profile_factor,&tempm->state->DxDt)); + D3SubEqu(&tmpm->DstateDt->DxDt, + D3Mul(&p,d*tmpm->drag_profile_factor,&tmpm->state->DxDt)); } - tempm=tempm->next; + tmpm=tmpm->next; } } } U0 ODEApplyAccelerationLimit(CMathODE *ode) { - CMass *tempm; + CMass *tmpm; F64 d; if (ode->acceleration_limit) { - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (!(tempm->flags & MSF_INACTIVE) && - (d=D3Norm(&tempm->DstateDt->DxDt))>ode->acceleration_limit) - D3MulEqu(&tempm->DstateDt->DxDt,ode->acceleration_limit/d); - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (!(tmpm->flags & MSF_INACTIVE) && + (d=D3Norm(&tmpm->DstateDt->DxDt))>ode->acceleration_limit) + D3MulEqu(&tmpm->DstateDt->DxDt,ode->acceleration_limit/d); + tmpm=tmpm->next; } } } U0 ODECallDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt) { - CMass *tempm; + CMass *tmpm; if (ode->flags&ODEF_HAS_MASSES) { ODESetMassesPtrs(ode,state,DstateDt); - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (!(tempm->flags&MSF_INACTIVE)) { - D3Zero(&tempm->DstateDt->DxDt); - D3Copy(&tempm->DstateDt->x,&tempm->state->DxDt); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (!(tmpm->flags&MSF_INACTIVE)) { + D3Zero(&tmpm->DstateDt->DxDt); + D3Copy(&tmpm->DstateDt->x,&tmpm->state->DxDt); } - tempm=tempm->next; + tmpm=tmpm->next; } ODECalcSprings(ode); ODECalcDrag(ode); (*ode->derivative)(ode,t,state,DstateDt); - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (!(tempm->flags&MSF_INACTIVE)) { - if (tempm->flags&MSF_FIXED) { - D3Zero(&tempm->DstateDt->DxDt); - D3Zero(&tempm->DstateDt->x); - } else if (tempm->mass) - D3DivEqu(&tempm->DstateDt->DxDt,tempm->mass); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (!(tmpm->flags&MSF_INACTIVE)) { + if (tmpm->flags&MSF_FIXED) { + D3Zero(&tmpm->DstateDt->DxDt); + D3Zero(&tmpm->DstateDt->x); + } else if (tmpm->mass) + D3DivEqu(&tmpm->DstateDt->DxDt,tmpm->mass); } - tempm=tempm->next; + tmpm=tmpm->next; } ODEApplyAccelerationLimit(ode); } else @@ -365,10 +365,10 @@ U0 ODERK4OneStep(CMathODE *ode) I64 i,n=ode->n_internal; F64 xh,hh,h6,*dym,*dyt,*yt,*DstateDt; - dym =ode->temp0; - dyt =ode->temp1; - yt =ode->temp2; - DstateDt=ode->temp3; + dym =ode->tmp0; + dyt =ode->tmp1; + yt =ode->tmp2; + DstateDt=ode->tmp3; hh =0.5*ode->h; h6 =ode->h / 6.0; xh =ode->t + hh; @@ -425,34 +425,34 @@ U0 ODECashKarp(CMathODE *ode) I64 i,n=ode->n_internal; F64 h=ode->h,*state=ode->state_internal, *DstateDt=ode->DstateDt,*ak2,*ak3,*ak4,*ak5,*ak6, - *tempstate,*stateerr,*outstate; + *tmpstate,*stateerr,*outstate; - ak2=ode->temp0; - ak3=ode->temp1; - ak4=ode->temp2; - ak5=ode->temp3; - ak6=ode->temp4; - tempstate=ode->temp5; - outstate=ode->temp6; - stateerr=ode->temp7; + ak2=ode->tmp0; + ak3=ode->tmp1; + ak4=ode->tmp2; + ak5=ode->tmp3; + ak6=ode->tmp4; + tmpstate=ode->tmp5; + outstate=ode->tmp6; + stateerr=ode->tmp7; for (i=0;it+ODEa2*h,tempstate,ak2); + tmpstate[i]=state[i]+ODEb21*h*DstateDt[i]; + ODECallDerivative(ode,ode->t+ODEa2*h,tmpstate,ak2); for (i=0;it+ODEa3*h,tempstate,ak3); + tmpstate[i]=state[i]+h*(ODEb31*DstateDt[i]+ODEb32*ak2[i]); + ODECallDerivative(ode,ode->t+ODEa3*h,tmpstate,ak3); for (i=0;it+ODEa4*h,tempstate,ak4); + tmpstate[i]=state[i]+h*(ODEb41*DstateDt[i]+ODEb42*ak2[i]+ODEb43*ak3[i]); + ODECallDerivative(ode,ode->t+ODEa4*h,tmpstate,ak4); for (i=0;it+ODEa5*h,tempstate,ak5); + ODECallDerivative(ode,ode->t+ODEa5*h,tmpstate,ak5); for (i=0;it+ODEa6*h,tempstate,ak6); + ODECallDerivative(ode,ode->t+ODEa6*h,tmpstate,ak6); for (i=0;itemp6,*stateerr=ode->temp7; + F64 errmax,tmp,*tmpstate=ode->tmp6,*stateerr=ode->tmp7; while (TRUE) { ode->h=Clamp(ode->h,ode->h_min,ode->h_max); ODECashKarp(ode); errmax=0.0; for (i=0;in_internal;i++) { - temp=Abs(stateerr[i]/ode->state_scale[i]); - if (temp>errmax) - errmax=temp; + tmp=Abs(stateerr[i]/ode->state_scale[i]); + if (tmp>errmax) + errmax=tmp; } errmax/=ode->tolerance_internal; if (errmax<=1.0 || ode->h==ode->h_min) break; - temp=ode->h*SAFETY*errmax`PSHRNK; - if (temp<0.1*ode->h) + tmp=ode->h*SAFETY*errmax`PSHRNK; + if (tmp<0.1*ode->h) ode->h*=0.1; else - ode->h=temp; + ode->h=tmp; } ode->t+=ode->h; if (errmax>ERRCON) @@ -493,13 +493,13 @@ U0 ODERK5OneStep(CMathODE *ode) else ode->h*=5.0; ode->h=Clamp(ode->h,ode->h_min,ode->h_max); - MemCpy(ode->state_internal,tempstate,sizeof(F64)*ode->n_internal); + MemCpy(ode->state_internal,tmpstate,sizeof(F64)*ode->n_internal); } F64 ode_alloced_factor=0.75; U0 ODEsUpdate(CTask *task) -{/* This routine is called by the $LK,"window mgr",A="FF:::/Adam/Gr/GrScreen.HC,ODEsUpdate"$ on a continuous +{/* This routine is called by the $LK,"window mgr",A="FF:::/Adam/Gr/GrScrn.HC,ODEsUpdate"$ on a continuous basis to allow real-time simulation. It is intended to provide ress good enough for games. It uses a runge-kutta integrator which is a better algorithm than doing it with Euler. diff --git a/Adam/AutoComplete/ACDefs.DAT b/Adam/AutoComplete/ACDefs.DATA similarity index 100% rename from Adam/AutoComplete/ACDefs.DAT rename to Adam/AutoComplete/ACDefs.DATA diff --git a/Adam/AutoComplete/ACFill.HC b/Adam/AutoComplete/ACFill.HC index 78ed253..8c6b0eb 100644 --- a/Adam/AutoComplete/ACFill.HC +++ b/Adam/AutoComplete/ACFill.HC @@ -2,16 +2,16 @@ public U8 *ACDDefGet(U8 *st,I64 def_num=1) {//MAlloc str holding single dict definition of word. CFile *f; - CHashGeneric *temph; + CHashGeneric *tmph; U8 *res=NULL,*buf,*in_ptr, *st2=MStrUtil(st,SUF_TO_UPPER); - temph=HashFind(st2,ac.hash_table,HTT_DICT_WORD); + tmph=HashFind(st2,ac.hash_table,HTT_DICT_WORD); Free(st2); - if (temph) { + if (tmph) { if (f=FOpen(ACD_DEF_FILENAME,"r")) { buf=MAlloc(ACD_BLK_SIZE*2+1); buf[ACD_BLK_SIZE*2]=0; //terminate - FRBlks(f,buf,temph->user_data0*ACD_BLK_SIZE/BLK_SIZE, + FRBlks(f,buf,tmph->user_data0*ACD_BLK_SIZE/BLK_SIZE, ACD_BLK_SIZE*2/BLK_SIZE); FClose(f); in_ptr=buf; @@ -46,16 +46,16 @@ public U8 *ACDDefGet(U8 *st,I64 def_num=1) public U8 *ACDDefsGet(U8 *st) {//MAlloc str with all dict definitions of word. CFile *f; - CHashGeneric *temph; + CHashGeneric *tmph; U8 *res=NULL,*buf,*in_ptr,*in_ptr2, *st2=MStrUtil(st,SUF_TO_UPPER); - temph=HashFind(st2,ac.hash_table,HTT_DICT_WORD); + tmph=HashFind(st2,ac.hash_table,HTT_DICT_WORD); Free(st2); - if (temph) { + if (tmph) { if (f=FOpen(ACD_DEF_FILENAME,"r")) { buf=MAlloc(ACD_BLK_SIZE*2+1); buf[ACD_BLK_SIZE*2]=0; //terminate - FRBlks(f,buf,temph->user_data0*ACD_BLK_SIZE/BLK_SIZE, + FRBlks(f,buf,tmph->user_data0*ACD_BLK_SIZE/BLK_SIZE, ACD_BLK_SIZE*2/BLK_SIZE); FClose(f); in_ptr=buf; @@ -143,7 +143,7 @@ U0 ACDFillin(I64 n) s=acd.fillins[n]+1; len=StrLen(s); if (len>ac.partial_len) - Auto(s+ac.partial_len); + In(s+ac.partial_len); } } @@ -246,16 +246,16 @@ U0 ACFillIn(I64 n) if (0<=--nstr; if (StrLen(s)>ac.partial_len) - Auto(s+ac.partial_len); + In(s+ac.partial_len); } } U0 ACMan(I64 n,CTask *parent_task=NULL) { - CHashAC *tempw; - CHashSrcSym *temph; - if (0<=--nstr,Fs->hash_table,HTG_SRC_SYM)) && - temph->src_link) - PopUpEd(temph->src_link,parent_task); + CHashAC *tmpw; + CHashSrcSym *tmph; + if (0<=--nstr,Fs->hash_table,HTG_SRC_SYM)) && + tmph->src_link) + PopUpEd(tmph->src_link,parent_task); } diff --git a/Adam/AutoComplete/ACInit.HC b/Adam/AutoComplete/ACInit.HC index 890e04b..3aac528 100644 --- a/Adam/AutoComplete/ACInit.HC +++ b/Adam/AutoComplete/ACInit.HC @@ -5,7 +5,7 @@ acd.has_defs =FileFind(ACD_DEF_FILENAME)||FileFind(ACD_DEF_FILENAME_Z); public U0 ACDWordsLoad() {//Put words from word list into hash table. I64 size; - CHashGeneric *temph; + CHashGeneric *tmph; U8 *in_ptr,*in_start,*st2; U16 *d; acd.num_words=0; @@ -21,17 +21,17 @@ public U0 ACDWordsLoad() in_ptr++; if (*in_ptr) { st2=MStrUtil(in_ptr,SUF_TO_UPPER); - temph=ACAlloc(sizeof(CHashGeneric)+StrLen(st2)+1); - StrCpy(temph+1,st2); + tmph=ACAlloc(sizeof(CHashGeneric)+StrLen(st2)+1); + StrCpy(tmph+1,st2); Free(st2); in_ptr+=StrLen(in_ptr)+1; - temph->str=temph+1; - temph->use_cnt=1; - temph->type=HTT_DICT_WORD; + tmph->str=tmph+1; + tmph->use_cnt=1; + tmph->type=HTT_DICT_WORD; d=in_ptr; - temph->user_data0=*d; + tmph->user_data0=*d; in_ptr+=2; - HashAdd(temph,ac.hash_table); + HashAdd(tmph,ac.hash_table); acd.num_words++; } else in_ptr+=3; @@ -43,19 +43,19 @@ public U0 ACDWordsLoad() #help_index "AutoComplete" CHashAC *ACHashAdd(U8 *w) { - CHashAC *tempw=HashFind(w,ac.hash_table,HTT_WORD); - if (tempw) { - tempw->hits++; - return tempw; + CHashAC *tmpw=HashFind(w,ac.hash_table,HTT_WORD); + if (tmpw) { + tmpw->hits++; + return tmpw; } - tempw=ACAlloc(sizeof(CHashAC)); - tempw->str=AStrNew(w); - tempw->type=HTT_WORD; - tempw->use_cnt=1; - tempw->hits=1; - HashAdd(tempw,ac.hash_table); + tmpw=ACAlloc(sizeof(CHashAC)); + tmpw->str=AStrNew(w); + tmpw->type=HTT_WORD; + tmpw->use_cnt=1; + tmpw->hits=1; + HashAdd(tmpw,ac.hash_table); ac.num_words++; - return tempw; + return tmpw; } U0 ACSingleFileAdd(U8 *buf) @@ -93,20 +93,20 @@ U0 ACSingleFileAdd(U8 *buf) U0 ACMainFileLstTraverse(U8 *files_find_mask) { U8 *buf; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; try { - tempde=tempde1=FilesFind(files_find_mask, + tmpde=tmpde1=FilesFind(files_find_mask, FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES|FUF_CLUSTER_ORDER); - while (tempde) { - "%s\n",tempde->full_name; - buf=FileRead(tempde->full_name); + while (tmpde) { + "%s\n",tmpde->full_name; + buf=FileRead(tmpde->full_name); ACSingleFileAdd(buf); Free(buf); - tempde=tempde->next; + tmpde=tmpde->next; } } catch Fs->catch_except=TRUE; - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } U0 ACProgressTask(Bool *_start_flag) diff --git a/Adam/AutoComplete/ACTask.HC b/Adam/AutoComplete/ACTask.HC index 26fe077..5920d3b 100644 --- a/Adam/AutoComplete/ACTask.HC +++ b/Adam/AutoComplete/ACTask.HC @@ -60,21 +60,21 @@ I64 ACPriorWordInStr(U8 *src,U8 *dst,I64 len,I64 buf_size) return i+1; } -U0 ACFillInAdd(CHashAC *tempw) +U0 ACFillInAdd(CHashAC *tmpw) { I64 k; if (ac.num_fillinshits>ac.fillin_hits[ac.num_fillins-1]) { + tmpw->hits>ac.fillin_hits[ac.num_fillins-1]) { for (k=ac.num_fillins-1;k>=0;k--) { - if (tempw->hits<=ac.fillin_hits[k]) + if (tmpw->hits<=ac.fillin_hits[k]) break; else { ac.fillin_matches[k+1]=ac.fillin_matches[k]; ac.fillin_hits[k+1] =ac.fillin_hits[k]; } } - ac.fillin_matches[k+1]=tempw; - ac.fillin_hits[k+1] =tempw->hits; + ac.fillin_matches[k+1]=tmpw; + ac.fillin_hits[k+1] =tmpw->hits; if (ac.num_fillinsmask && tSbody[i]; - while (tempw) { - if (!MemCmp(ac.cur_word,tempw->str,StrLen(ac.cur_word))) - ACFillInAdd(tempw); - tempw=tempw->next; + tmpw=ac.hash_table->body[i]; + while (tmpw) { + if (!MemCmp(ac.cur_word,tmpw->str,StrLen(ac.cur_word))) + ACFillInAdd(tmpw); + tmpw=tmpw->next; } } ACDocRst(51,13); @@ -122,11 +122,11 @@ U0 ACPutChoices(CDoc *focus_l,CDocEntry *doc_e,CTask *focus_task, st=ac.fillin_matches[i]->str; "$$GREEN$$F%02d$$FG$$ ",i+1; if (TaskValidate(focus_task) && - (temph=HashFind(st,focus_task->hash_table,HTG_SRC_SYM)) && - temph->src_link) { - if (temph->type&HTF_PUBLIC) + (tmph=HashFind(st,focus_task->hash_table,HTG_SRC_SYM)) && + tmph->src_link) { + if (tmph->type&HTF_PUBLIC) "$$RED$$"; - "$$TX+UL+L+PU,\"%$$Q\",A=\"%s\"$$$$FG$$\n",st,temph->src_link; + "$$TX+UL+L+PU,\"%$$Q\",A=\"%s\"$$$$FG$$\n",st,tmph->src_link; } else "%s\n",st; } diff --git a/Adam/AutoComplete/ACWords.DAT b/Adam/AutoComplete/ACWords.DATA similarity index 100% rename from Adam/AutoComplete/ACWords.DAT rename to Adam/AutoComplete/ACWords.DATA diff --git a/Adam/Ctrls/CtrlsA.HC b/Adam/Ctrls/CtrlsA.HC index 4d3eb78..45ef509 100644 --- a/Adam/Ctrls/CtrlsA.HC +++ b/Adam/Ctrls/CtrlsA.HC @@ -18,15 +18,15 @@ U0 CtrlsUpdate(CTask *task) if (c->update_derived_vals) (*c->update_derived_vals)(c); if (c->flags&CTRLF_BORDER) { - c->screen_left =gr.pan_text_x+task->pix_left+c->left-FONT_WIDTH; - c->screen_right =gr.pan_text_x+task->pix_left+c->right-FONT_WIDTH; - c->screen_top =gr.pan_text_y+task->pix_top+c->top-FONT_HEIGHT; - c->screen_bottom=gr.pan_text_y+task->pix_top+c->bottom-FONT_HEIGHT; + c->scrn_left =gr.pan_text_x+task->pix_left+c->left-FONT_WIDTH; + c->scrn_right =gr.pan_text_x+task->pix_left+c->right-FONT_WIDTH; + c->scrn_top =gr.pan_text_y+task->pix_top+c->top-FONT_HEIGHT; + c->scrn_bottom=gr.pan_text_y+task->pix_top+c->bottom-FONT_HEIGHT; } else { - c->screen_left =gr.pan_text_x+task->pix_left+c->left; - c->screen_right =gr.pan_text_x+task->pix_left+c->right; - c->screen_top =gr.pan_text_y+task->pix_top+c->top; - c->screen_bottom=gr.pan_text_y+task->pix_top+c->bottom; + c->scrn_left =gr.pan_text_x+task->pix_left+c->left; + c->scrn_right =gr.pan_text_x+task->pix_left+c->right; + c->scrn_top =gr.pan_text_y+task->pix_top+c->top; + c->scrn_bottom=gr.pan_text_y+task->pix_top+c->bottom; } c=c->next; } @@ -35,9 +35,9 @@ U0 CtrlsUpdate(CTask *task) fp_update_ctrls=&CtrlsUpdate; Bool CtrlInsideRect(CCtrl *c,I64 x,I64 y) -{//screen coordinates - if (c->screen_left<=x<=c->screen_right && - c->screen_top<=y<=c->screen_bottom) +{//scrn coordinates + if (c->scrn_left<=x<=c->scrn_right && + c->scrn_top<=y<=c->scrn_bottom) return TRUE; else return FALSE; diff --git a/Adam/Ctrls/CtrlsSlider.HC b/Adam/Ctrls/CtrlsSlider.HC index 373d58f..397407e 100644 --- a/Adam/Ctrls/CtrlsSlider.HC +++ b/Adam/Ctrls/CtrlsSlider.HC @@ -14,7 +14,7 @@ class CTemplateCS CTemplateCS *CtrlSliderGet() { - CTemplateCSSlider *temps; + CTemplateCSSlider *tmps; U8 *st,pmt[STR_LEN]; CTemplateCS *res=CAlloc(sizeof(CTemplateCS)); @@ -33,10 +33,10 @@ CTemplateCS *CtrlSliderGet() Free(st); break; } - temps=CAlloc(sizeof(CTemplateCSSlider)); - temps->name=st; - QueIns(temps,res->last_slider); - temps->num=res->num_sliders++; + tmps=CAlloc(sizeof(CTemplateCSSlider)); + tmps->name=st; + QueIns(tmps,res->last_slider); + tmps->num=res->num_sliders++; } return res; } @@ -45,7 +45,7 @@ U0 TemplateCtrlSlider(CDoc *doc) { CTask *task; CTemplateCS *m=NULL; - CTemplateCSSlider *temps; + CTemplateCSSlider *tmps; I64 i; DocUnlock(doc); @@ -65,10 +65,10 @@ class CSliderState { ",m->range,m->spacing,m->border); - temps=m->next_slider; - while (temps!=&m->next_slider) { - DocPrint(doc," I64 %s;\n",temps->name); - temps=temps->next; + tmps=m->next_slider; + while (tmps!=&m->next_slider) { + DocPrint(doc," I64 %s;\n",tmps->name); + tmps=tmps->next; } if (*m->glbl_name) DocPrint(doc,"} %s;\n",m->glbl_name); @@ -98,32 +98,32 @@ U0 DrawCtrlSlider(CDC *dc,CCtrl *c) DocPrint(doc," dc->color=LTRED;\n"); - temps=m->next_slider; - while (temps!=&m->next_slider) { + tmps=m->next_slider; + while (tmps!=&m->next_slider) { DocPrint(doc, " GrPrint(dc,c->left+%d*SLIDER_SPACING+%d-FONT_WIDTH/2, c->top+SLIDER_SPACING+SLIDER_RANGE+3, \"%%d\",s->%s*10/SLIDER_RANGE);\n", - temps->num+1,temps->num,temps->name); - temps=temps->next; + tmps->num+1,tmps->num,tmps->name); + tmps=tmps->next; } - temps=m->next_slider; - while (temps!=&m->next_slider) { + tmps=m->next_slider; + while (tmps!=&m->next_slider) { DocPrint(doc, " GrRect(dc,c->left+%d*SLIDER_SPACING+%d-3," "c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-2,7,5);\n", - temps->num+1,temps->num,temps->name); - temps=temps->next; + tmps->num+1,tmps->num,tmps->name); + tmps=tmps->next; } DocPrint(doc," dc->color=YELLOW;\n"); - temps=m->next_slider; - while (temps!=&m->next_slider) { + tmps=m->next_slider; + while (tmps!=&m->next_slider) { DocPrint(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-2," "c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-1,5,3);\n", - temps->num+1,temps->num,temps->name); - temps=temps->next; + tmps->num+1,tmps->num,tmps->name); + tmps=tmps->next; } DocPrint(doc, "} @@ -137,11 +137,11 @@ U0 UpdateDerivedCtrlSlider(CCtrl *c) c->bottom=c->top+SLIDER_SPACING*2+SLIDER_RANGE; ",m->num_sliders+1,m->num_sliders); - temps=m->next_slider; - while (temps!=&m->next_slider) { + tmps=m->next_slider; + while (tmps!=&m->next_slider) { DocPrint(doc," s->%s=ClampI64(s->%s,0,SLIDER_RANGE-1);\n", - temps->name,temps->name); - temps=temps->next; + tmps->name,tmps->name); + tmps=tmps->next; } DocPrint(doc, "} @@ -152,19 +152,19 @@ U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool down) CSliderState *s=c->state; "); - temps=m->next_slider; - while (temps!=&m->next_slider) { + tmps=m->next_slider; + while (tmps!=&m->next_slider) { DocPrint(doc," "); - if (temps!=m->next_slider) + if (tmps!=m->next_slider) DocPrint(doc,"else "); - if (temps->next==&m->next_slider) + if (tmps->next==&m->next_slider) DocPrint(doc,"\n"); else DocPrint(doc,"if (xleft+%d*SLIDER_SPACING+%d+SLIDER_SPACING/2)\n", - temps->num+1,temps->num); + tmps->num+1,tmps->num); DocPrint(doc," s->%s=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING));\n", - temps->name); - temps=temps->next; + tmps->name); + tmps=tmps->next; } DocPrint(doc, diff --git a/Adam/DevInfo.HC b/Adam/DevInfo.HC index 896c604..ad3f3c2 100644 --- a/Adam/DevInfo.HC +++ b/Adam/DevInfo.HC @@ -117,7 +117,7 @@ U0 PCILookUpSingle(CDoc *doc,I64 m,I64 d,U8 **_vendor,U8 **_dev) U0 PCILookUpDevs() { - CPCIDev *temppci; + CPCIDev *tmppci; I64 w1,w2,b,d,f,timeout=32*8*2; CDoc *doc; if (dev.pci_head.next!=&dev.pci_head) @@ -128,16 +128,16 @@ U0 PCILookUpDevs() for (f=0;f<8;f++) { w1=PCIReadU16(b,d,f,0); if (w1!=0xFFFF) { - temppci=ACAlloc(sizeof(CPCIDev)); - temppci->bus=b; - temppci->dev=d; - temppci->fun=f; - temppci->vendor=w1; - temppci->dev_id=w2=PCIReadU16(b,d,f,2); - temppci->sub_code=PCIReadU8(b,d,f,0xA); - temppci->base_code=PCIReadU8(b,d,f,0xB); - PCILookUpSingle(doc,w1,w2,&temppci->vendor_str,&temppci->dev_id_str); - QueIns(temppci,dev.pci_head.last); + tmppci=ACAlloc(sizeof(CPCIDev)); + tmppci->bus=b; + tmppci->dev=d; + tmppci->fun=f; + tmppci->vendor=w1; + tmppci->dev_id=w2=PCIReadU16(b,d,f,2); + tmppci->sub_code=PCIReadU8(b,d,f,0xA); + tmppci->base_code=PCIReadU8(b,d,f,0xB); + PCILookUpSingle(doc,w1,w2,&tmppci->vendor_str,&tmppci->dev_id_str); + QueIns(tmppci,dev.pci_head.last); timeout=32*8*2; } else if (sys_pci_busses==256 && --timeout<=0) goto lud_done; @@ -148,20 +148,20 @@ lud_done: public U0 PCIRep() {//Report description of PCI devices. - CPCIDev *temppci; + CPCIDev *tmppci; "PCI Busses:%d\n",sys_pci_busses; if (!FileFind(PCI_DEV_FILE)) { "You don't have the PCI device file.\n"; return; } PCILookUpDevs; - temppci=dev.pci_head.next; - while (temppci!=&dev.pci_head) { + tmppci=dev.pci_head.next; + while (tmppci!=&dev.pci_head) { "%02X:%02X:%01X %02X%02X $$GREEN$$%s $$CYAN$$%s$$FG$$\n", - temppci->bus,temppci->dev,temppci->fun, - temppci->base_code,temppci->sub_code, - temppci->vendor_str,temppci->dev_id_str; - temppci=temppci->next; + tmppci->bus,tmppci->dev,tmppci->fun, + tmppci->base_code,tmppci->sub_code, + tmppci->vendor_str,tmppci->dev_id_str; + tmppci=tmppci->next; } } @@ -243,18 +243,18 @@ public U0 MemBIOSRep() {//Report the memory ranges reported by the BIOS at boot. U16 *m01=SYS_MEM_E801; CMemE820 *m20=SYS_MEM_E820; - CMemRange *tempmr; + CMemRange *tmpmr; "Standard Addresses\n" "0x000A0000-0x000BFFFF VGA\n" "0xFEE00000-0xFEE00FFF See $$LK,\"APIC\",A=\"MN:LAPIC_BASE\"$$\n\n" "32 Bit Device Mem\n"; while (LBts(&sys_semas[SYS_SEMA_DEV_MEM],0)) Yield; - tempmr=dev.mem32_head.next; - while (tempmr!=&dev.mem32_head) { + tmpmr=dev.mem32_head.next; + while (tmpmr!=&dev.mem32_head) { "%02X:0x%016X-0x%016X\n", - tempmr->type,tempmr->base,tempmr->base+tempmr->size-1; - tempmr=tempmr->next; + tmpmr->type,tmpmr->base,tmpmr->base+tmpmr->size-1; + tmpmr=tmpmr->next; } LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0); diff --git a/Adam/DolDoc/DocBin.HC b/Adam/DolDoc/DocBin.HC index 8f0ae72..6d15d17 100644 --- a/Adam/DolDoc/DocBin.HC +++ b/Adam/DolDoc/DocBin.HC @@ -34,7 +34,7 @@ U0 DocBinsValidate(CDoc *doc) b=doc->bin_head.next; while (b!=&doc->bin_head) { b->use_cnt=0; - b->temp_use_cnt=0; + b->tmp_use_cnt=0; b->renum_num=-1; Free(b->tag); b->tag=NULL; @@ -46,7 +46,7 @@ U0 DocBinsValidate(CDoc *doc) if (doc_e->de_flags & DOCEF_HAS_BIN) { if (b=doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num)) { if (doc_e->de_flags & DOCEF_BIN_PTR_LINK) - b->temp_use_cnt=MAX_I32; + b->tmp_use_cnt=MAX_I32; if (!b->use_cnt++) b->renum_num=++renum_num; doc_e->bin_num=b->renum_num; @@ -98,7 +98,7 @@ I64 DocBinPtrRst(CDoc *doc,CDocEntry *doc_e) { U8 *st,*st2; CDoc *doc2; - CDocBin *tempb,*tempb2; + CDocBin *tmpb,*tmpb2; I64 i,bin_num=0; if (doc_e->de_flags&DOCEF_HAS_BIN && doc_e->bin_ptr_link && StrLen(doc_e->bin_ptr_link)) { @@ -109,26 +109,26 @@ I64 DocBinPtrRst(CDoc *doc,CDocEntry *doc_e) i=Str2I64(st2); if (i>0||*st2) { doc2=DocRead(st); - if (i>0 && (tempb2=DocBinFindNum(doc2,i)) || - i==0 && (tempb2=DocBinFindTag(doc2,st2))) { + if (i>0 && (tmpb2=DocBinFindNum(doc2,i)) || + i==0 && (tmpb2=DocBinFindTag(doc2,st2))) { i=1; if (bin_num>0) { - if (tempb=DocBinFindNum(doc,bin_num)) { - i=tempb->use_cnt; - DocBinDel(doc,tempb); + if (tmpb=DocBinFindNum(doc,bin_num)) { + i=tmpb->use_cnt; + DocBinDel(doc,tmpb); } } else bin_num=doc->cur_bin_num++; - tempb=MAllocIdent(tempb2,doc->mem_task); - tempb->use_cnt=i; - tempb->data=MAllocIdent(tempb2->data,doc->mem_task); - tempb->num=bin_num; - doc_e->bin_data=tempb; + tmpb=MAllocIdent(tmpb2,doc->mem_task); + tmpb->use_cnt=i; + tmpb->data=MAllocIdent(tmpb2->data,doc->mem_task); + tmpb->num=bin_num; + doc_e->bin_data=tmpb; if (doc_e->de_flags&DOCEF_TAG && doc_e->tag && *doc_e->tag) - tempb->tag=StrNew(doc_e->tag,doc->mem_task); + tmpb->tag=StrNew(doc_e->tag,doc->mem_task); else - tempb->tag=NULL; - QueIns(tempb,doc->bin_head.last); + tmpb->tag=NULL; + QueIns(tmpb,doc->bin_head.last); } else bin_num=0; DocDel(doc2); diff --git a/Adam/DolDoc/DocChar.HC b/Adam/DolDoc/DocChar.HC index 1bf4a6f..93ca78d 100644 --- a/Adam/DolDoc/DocChar.HC +++ b/Adam/DolDoc/DocChar.HC @@ -344,7 +344,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) if ((doc_ce2->yxde_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP) || doc_ce2->x==x && !doc_ce2->max_col && - Bt(doldoc.type_flags_nontag_invisible,doc_ce2->type_u8)) && sc>=0) + Bt(doldoc.type_flags_nontag_invis,doc_ce2->type_u8)) && sc>=0) BEqu(&doc_ce2->type,DOCEt_SEL,sc&SCF_SHIFT); if (doc_ce2==doc_ce) break; doc_ce2=doc_ce2->next; @@ -455,7 +455,7 @@ U0 EdCharIns(I64 ch,I64 sc,CDoc *doc) } else { doc->dollar_buf[doc->dollar_buf_ptr]=0; doc->flags&=~DOCF_IN_DOLLAR; - DocPrint(doc,doc->dollar_buf); + DocPrint(doc,"%s",doc->dollar_buf); doc->dollar_buf_ptr=0; goto ic_done; } @@ -475,8 +475,8 @@ U0 EdCharIns(I64 ch,I64 sc,CDoc *doc) !(sc & (SCF_CTRL|SCF_SHIFT)) && doc_ce->de_flags & (DOCEF_LINK|DOCEF_TREE|DOCEF_LST|DOCEF_CHECK_COLLAPSABLE| - DOCEF_LEFT_MACRO|DOCEF_LEFT_EXP|DOCEF_LEFT_CB|DOCEF_LEFT_AUTO | - DOCEF_RIGHT_MACRO|DOCEF_RIGHT_EXP|DOCEF_RIGHT_CB|DOCEF_RIGHT_AUTO)) { + DOCEF_LEFT_MACRO|DOCEF_LEFT_EXP|DOCEF_LEFT_CB|DOCEF_LEFT_IN_STR | + DOCEF_RIGHT_MACRO|DOCEF_RIGHT_EXP|DOCEF_RIGHT_CB|DOCEF_RIGHT_IN_STR)) { doc->cmd_U8=ch; DocEntryRun(doc,doc_ce,FALSE); DocLock(doc); diff --git a/Adam/DolDoc/DocCodeTools.HC b/Adam/DolDoc/DocCodeTools.HC index c93c58f..490990c 100644 --- a/Adam/DolDoc/DocCodeTools.HC +++ b/Adam/DolDoc/DocCodeTools.HC @@ -66,7 +66,7 @@ I64 EdRILex(CRILex *rx) { rx->is_not_cont=FALSE; I64 i; - CLexFile *tempf; + CLexFile *tmpf; do { Lex(rx->cc1); Lex(rx->cc2); @@ -77,10 +77,10 @@ I64 EdRILex(CRILex *rx) rx->is_not_cont=TRUE; if (rx->was_new_line && (rx->cc1->token!=':' || i==KW_CASE || i==KW_DFT || i==KW_START || i==KW_END)) { - tempf=rx->cc2->lex_include_stk; - while (tempf->next) - tempf=tempf->next; - QueVectU8Put(rx->indent,tempf->cur_entry->y,rx->depth+rx->one_shot); + tmpf=rx->cc2->lex_include_stk; + while (tmpf->next) + tmpf=tmpf->next; + QueVectU8Put(rx->indent,tmpf->cur_entry->y,rx->depth+rx->one_shot); rx->one_shot=0; } if (rx->cc2->token=='\n') @@ -346,7 +346,7 @@ I64 EdRAGetU8(CDoc *doc) U0 EdRACollect(CDoc *doc,CRenum *head) { I64 ch,i; - CRenum *tempr; + CRenum *tmpr; U8 buf[sizeof(CEdFindText.find_text)]; ch=EdRAGetU8(doc); while (ch>=0) { @@ -371,9 +371,9 @@ U0 EdRACollect(CDoc *doc,CRenum *head) ch=EdRAGetU8(doc); if (ch==':') { ch=EdRAGetU8(doc); - tempr=MAlloc(sizeof(CRenum)); - StrCpy(tempr->label,buf); - QueIns(tempr,head->last); + tmpr=MAlloc(sizeof(CRenum)); + StrCpy(tmpr->label,buf); + QueIns(tmpr,head->last); } } } @@ -388,7 +388,7 @@ U0 EdRenumAsm(CDoc *doc) { Bool unlock=DocLock(doc); I64 num=0; - CRenum head,*tempr,*tempr1; + CRenum head,*tmpr,*tmpr1; U8 buf[sizeof(CEdFindText.find_text)], buf2[sizeof(CEdFindText.find_text)]; @@ -396,14 +396,14 @@ U0 EdRenumAsm(CDoc *doc) EdSelFun(doc,TRUE); EdRACollect(doc,&head); - tempr=head.next; - while (tempr!=&head) { - tempr1=tempr->next; + tmpr=head.next; + while (tmpr!=&head) { + tmpr1=tmpr->next; num+=ASM_RENUM_SPACING; StrPrint(buf,"@#%02d",num); - EdReplace(doc,tempr->label,buf,TRUE,TRUE,TRUE); - Free(tempr); - tempr=tempr1; + EdReplace(doc,tmpr->label,buf,TRUE,TRUE,TRUE); + Free(tmpr); + tmpr=tmpr1; } while (num) { @@ -426,7 +426,7 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE) I64 i,start_y,end_y,x,r,goto_line_num; U8 *b,*st,*st2,*prj_file; CTask *task=NULL; - CSrvCmd *tempc; + CSrvCmd *tmpc; CQueVectU8 *indent; DocRecalc(doc); @@ -442,12 +442,12 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE) task=Spawn(&SrvCmdLine,NULL,"Srv",,Fs); st2=CurDir; st=MStrPrint("Cd(\"%s\");",st2); - tempc=TaskExe(task,Fs,st,1<win_left,Fs->win_right, task); WinVert(Fs->win_top, Fs->win_bottom,task); - if (JobResScan(tempc,&r)) { + if (JobResScan(tmpc,&r)) { st=DirFile(doc->filename.name,,"PRJ.Z"); prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z); Free(st); @@ -455,24 +455,24 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE) st2=DirFile(prj_file), st=MStrPrint("Cd(\"%s\");",st2); Free(st2); - tempc=TaskExe(task,Fs,st,1<filename.name,"Load","HC.Z"); @@ -483,9 +483,9 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE) else st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);", doc->filename.name); - tempc=TaskExe(task,Fs,st,1<flags&DOCF_MIN_SIZE) - WinMgrSync(2,TRUE); + Refresh(2,TRUE); } res=View; diff --git a/Adam/DolDoc/DocFile.HC b/Adam/DolDoc/DocFile.HC index 1e9aaf2..776155f 100644 --- a/Adam/DolDoc/DocFile.HC +++ b/Adam/DolDoc/DocFile.HC @@ -5,24 +5,24 @@ public U0 DocLoad(CDoc *doc,U8 *src2,I64 size) I64 i; U8 *src; Bool unlock=DocLock(doc); - CDocBin *tempb; + CDocBin *tmpb; doc->find_replace->filter_lines=0; if (src2) { DocPutS(doc,src2); //Too big $LK,"DocPrint",A="MN:DocPrint"$() is wasteful. src=src2+StrLen(src2)+1; i=size-(offset(CDocBin.end)-offset(CDocBin.start)); while (src<=src2+i) { - tempb=CAlloc(sizeof(CDocBin),doc->mem_task); - MemCpy(&tempb->start,src,offset(CDocBin.end)-offset(CDocBin.start)); + tmpb=CAlloc(sizeof(CDocBin),doc->mem_task); + MemCpy(&tmpb->start,src,offset(CDocBin.end)-offset(CDocBin.start)); src+=offset(CDocBin.end)-offset(CDocBin.start); - tempb->data=MAlloc(tempb->size,doc->mem_task); - if (tempb->size) { - MemCpy(tempb->data,src,tempb->size); - src+=tempb->size; + tmpb->data=MAlloc(tmpb->size,doc->mem_task); + if (tmpb->size) { + MemCpy(tmpb->data,src,tmpb->size); + src+=tmpb->size; } - QueIns(tempb,doc->bin_head.last); - if (tempb->num>=doc->cur_bin_num) - doc->cur_bin_num=tempb->num+1; + QueIns(tmpb,doc->bin_head.last); + if (tmpb->num>=doc->cur_bin_num) + doc->cur_bin_num=tmpb->num+1; } } if (!(doc->flags & (DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_TABS))) @@ -38,7 +38,7 @@ public CDoc *DocRead(U8 *name=NULL,I64 flags=0) U8 *src,*name2; I64 size=0; CDirContext *dirc; - if (!name) name=blkdev.temp_filename; + if (!name) name=blkdev.tmp_filename; doc->flags|=flags; name2=FileNameAbs(name); StrCpy(doc->filename.name,name2); @@ -104,7 +104,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) } } for (b=doc->bin_head.next;b!=&doc->bin_head;b=b->next) - if (b->use_cnt>b->temp_use_cnt) + if (b->use_cnt>b->tmp_use_cnt) cnt+=offset(CDocBin.end)-offset(CDocBin.start)+b->size; res=MAlloc(cnt); dst=res; @@ -157,7 +157,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) b=doc->bin_head.next; if (b!=&doc->bin_head) { do { - if (b->use_cnt>b->temp_use_cnt) { + if (b->use_cnt>b->tmp_use_cnt) { MemCpy(dst,&b->start,offset(CDocBin.end)-offset(CDocBin.start)); dst+=offset(CDocBin.end)-offset(CDocBin.start); MemCpy(dst,b->data,b->size); @@ -297,7 +297,7 @@ U0 DocUndoRestore(CDoc *doc) DocUnlock(doc); } -#help_index "Graphics/Windows BMP Files;Graphics/GRA Files;"\ +#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ "DolDoc/Output;StdOut/DolDoc" public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) {//Output txt or graphic file to document. @@ -318,8 +318,8 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) } else if (FilesFindMatch(filename,"*.BMP;*.bmp")) { DocBMP(doc,filename,,TRUE); res=TRUE; - } else if (FilesFindMatch(filename,"*.GRA*")) { - DocGRA(doc,filename); + } else if (FilesFindMatch(filename,"*.GR*")) { + DocGR(doc,filename); res=TRUE; } if (res) @@ -327,7 +327,7 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) return res; } -#help_index "Graphics/Windows BMP Files;Graphics/GRA Files;"\ +#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ "File/Cmd Line (Typically);DolDoc/Cmd Line (Typically);"\ "StdOut;Cmd Line (Typically)" public Bool Type(U8 *filename,I64 trailing_new_lines=1) diff --git a/Adam/DolDoc/DocForm.HC b/Adam/DolDoc/DocForm.HC index 8cfe211..7d160ec 100644 --- a/Adam/DolDoc/DocForm.HC +++ b/Adam/DolDoc/DocForm.HC @@ -60,7 +60,7 @@ U0 DocDataFmt(CDoc *doc,CDocEntry *doc_e,I64 d=DOCM_CANCEL) { I64 i; U8 *ptr,*ptr2; - CHashDefineStr *temph; + CHashDefineStr *tmph; if (doc_e->type_u8==DOCT_DATA && doc_e->de_flags&DOCEF_AUX_STR || doc_e->type_u8==DOCT_CHECK_BOX || doc_e->de_flags & DOCEF_LST) { if (d==DOCM_CANCEL) { @@ -109,9 +109,9 @@ U0 DocDataFmt(CDoc *doc,CDocEntry *doc_e,I64 d=DOCM_CANCEL) } doc_e->max_col=i; } else if (doc_e->de_flags & DOCEF_LST) { - if (doc_e->de_flags & DOCEF_DEFINE && (temph=HashFind(doc_e->define_str, - doc->win_task->hash_table,HTT_DEFINE_STR)) && 0<=dcnt) { - ptr=MStrPrint("[%s]",temph->sub_idx[d]); + if (doc_e->de_flags & DOCEF_DEFINE && (tmph=HashFind(doc_e->define_str, + doc->win_task->hash_table,HTT_DEFINE_STR)) && 0<=dcnt) { + ptr=MStrPrint("[%s]",tmph->sub_idx[d]); Free(doc_e->tag); doc_e->tag=StrNew(ptr,doc->mem_task); Free(ptr); @@ -132,7 +132,7 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e) { I64 i,d; U8 *ptr,*ptr1,*ptr2; - CHashDefineStr *temph; + CHashDefineStr *tmph; if (doc_e->type_u8==DOCT_DATA && doc_e->de_flags&DOCEF_AUX_STR || doc_e->type_u8==DOCT_CHECK_BOX || doc_e->de_flags & DOCEF_LST) { if (doc_e->de_flags&DOCEF_DEREF_DATA && @@ -166,7 +166,7 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e) } else if (doc_e->de_flags & DOCEF_LST) { d=0; if (doc_e->tag && doc_e->de_flags & DOCEF_DEFINE && - (temph=HashFind(doc_e->define_str, + (tmph=HashFind(doc_e->define_str, doc->win_task->hash_table,HTT_DEFINE_STR))) { ptr1=ptr2=StrNew(doc_e->tag); if (*ptr2=='[') { @@ -175,7 +175,7 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e) if (ptr2[i-1]==']') ptr2[i-1]=0; } - d=LstMatch(ptr2,temph->data); + d=LstMatch(ptr2,tmph->data); Free(ptr1); } } else { @@ -213,11 +213,11 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, CMemberLst *ml; CDocEntry *doc_e; U8 *fmtstr; - CHashClass *tempc,*tempc2; + CHashClass *tmpc,*tmpc2; CDoc *doc; Bool res=FALSE; I64 old_border_src=Fs->border_src,has_action; - if (!(tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS))) + if (!(tmpc=HashFind(class_name,Fs->hash_table,HTT_CLASS))) return FALSE; doc=DocNew; doc->desc='Form'; @@ -225,18 +225,18 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; if (dof_flags&DOF_MIN_SIZE) doc->flags|=DOCF_MIN_SIZE; - ml=tempc->member_lst_and_root; + ml=tmpc->member_lst_and_root; while (ml) { if ((fmtstr=MemberMetaData("fmtstr",ml)) && (doc_e=DocPrint(doc,"%s",fmtstr))) { - tempc2=ml->member_class; + tmpc2=ml->member_class; if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST || - doc_e->type_u8==DOCT_CHECK_BOX) && !tempc2->ptr_stars_cnt) { - tempc2=OptClassFwd(tempc2); - tempc2-=tempc2->ptr_stars_cnt; - if (tempc2->type & HTT_INTERNAL_TYPE) { + doc_e->type_u8==DOCT_CHECK_BOX) && !tmpc2->ptr_stars_cnt) { + tmpc2=OptClassFwd(tmpc2); + tmpc2-=tmpc2->ptr_stars_cnt; + if (tmpc2->type & HTT_INTERNAL_TYPE) { if (ml->dim.next) { //Array - if (tempc2->raw_type==RT_U8 && + if (tmpc2->raw_type==RT_U8 && LBtr(&doc_e->de_flags,&DOCEf_DFT_LEN)) { doc_e->len=ml->dim.total_cnt; if (doc_e->de_flags&DOCEF_HAS_TERMINATOR) @@ -246,7 +246,7 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, doc->mem_task); //+2 because "_\0" } } else if (LBtr(&doc_e->de_flags,DOCEf_DFT_RAW_TYPE)) - doc_e->raw_type=tempc2->raw_type; + doc_e->raw_type=tmpc2->raw_type; } } if (doc_e->de_flags&DOCEF_REMALLOC_DATA) { diff --git a/Adam/DolDoc/DocHighlight.HC b/Adam/DolDoc/DocHighlight.HC index 42560f5..f76b3c2 100644 --- a/Adam/DolDoc/DocHighlight.HC +++ b/Adam/DolDoc/DocHighlight.HC @@ -1,33 +1,33 @@ #help_index "DolDoc/Misc" -U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _temp_u32_attr) +U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _tmp_u32_attr) {//Be aware of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$. U32 *res=MAlloc((len+1)*sizeof(U32)),*dst=res; U8 *ptr; CDocSettings *s=&doc_e->settings; - I64 ch,ch1,last_ch,temp_u32_attr,mask_temp_u32_attr=_temp_u32_attr&0xFFFFF000, + I64 ch,ch1,last_ch,tmp_u32_attr,mask_tmp_u32_attr=_tmp_u32_attr&0xFFFFF000, comment_depth,brace_depth=s->brace_depth,paren_depth=s->paren_depth; - CHash *temph; + CHash *tmph; switch [s->state] { case DOCSS_NORMAL: hl_normal: while (len) { while (len && !Bt(chars_bmp_alpha_numeric,*src)) { - temp_u32_attr=_temp_u32_attr; + tmp_u32_attr=_tmp_u32_attr; ch1=*src++; switch (ch1) { case '/': if (len>=2) { if (*src=='/') { - temp_u32_attr=DOC_COLOR_COMMENT<<8|mask_temp_u32_attr; - *dst++=ch1+temp_u32_attr; - *dst++=*src++ +temp_u32_attr; + tmp_u32_attr=DOC_COLOR_COMMENT<<8|mask_tmp_u32_attr; + *dst++=ch1+tmp_u32_attr; + *dst++=*src++ +tmp_u32_attr; len-=2; goto hl_cpp_comment; } else if (*src=='*') { - temp_u32_attr=DOC_COLOR_COMMENT<<8|mask_temp_u32_attr; - *dst++=ch1+temp_u32_attr; - *dst++=*src++ +temp_u32_attr; + tmp_u32_attr=DOC_COLOR_COMMENT<<8|mask_tmp_u32_attr; + *dst++=ch1+tmp_u32_attr; + *dst++=*src++ +tmp_u32_attr; len-=2; comment_depth=1; goto hl_comment; @@ -35,33 +35,33 @@ hl_normal: } break; case '\'': - temp_u32_attr=DOC_COLOR_QUOTE<<8|mask_temp_u32_attr; - *dst++=ch1+temp_u32_attr; + tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; + *dst++=ch1+tmp_u32_attr; len--; goto hl_single_quote; case '\"': - temp_u32_attr=DOC_COLOR_QUOTE<<8|mask_temp_u32_attr; - *dst++=ch1+temp_u32_attr; + tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; + *dst++=ch1+tmp_u32_attr; len--; goto hl_dbl_quote; case '(': if (paren_depth++&1) - temp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_tmp_u32_attr; break; case ')': if (--paren_depth&1) - temp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_tmp_u32_attr; break; case '{': if (brace_depth++&1) - temp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_tmp_u32_attr; break; case '}': if (--brace_depth&1) - temp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_ALT_TEXT<<8|mask_tmp_u32_attr; break; } - *dst++=ch1+temp_u32_attr; + *dst++=ch1+tmp_u32_attr; if (!--len) goto hl_normal_done; } ptr=src; @@ -71,16 +71,16 @@ hl_normal: } ch=*src; *src=0; - if (temph=HashFind(ptr,cmp.asm_hash, + if (tmph=HashFind(ptr,cmp.asm_hash, HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE|HTT_REG)) { - if (temph->type&(HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE)) - temp_u32_attr=DOC_COLOR_KEYWORD<<8|mask_temp_u32_attr; + if (tmph->type&(HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE)) + tmp_u32_attr=DOC_COLOR_KEYWORD<<8|mask_tmp_u32_attr; else - temp_u32_attr=DOC_COLOR_KEYWORD2<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_KEYWORD2<<8|mask_tmp_u32_attr; } else - temp_u32_attr=_temp_u32_attr; + tmp_u32_attr=_tmp_u32_attr; while (ch1=*ptr++) - *dst++=ch1+temp_u32_attr; + *dst++=ch1+tmp_u32_attr; *src=ch; } hl_normal_done: @@ -88,12 +88,12 @@ hl_normal_done: s->comment_depth=0; break; case DOCSS_SINGLE_QUOTE: - temp_u32_attr=DOC_COLOR_QUOTE<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; hl_single_quote: last_ch=0; while (len--) { ch1=*src++; - *dst++=ch1+temp_u32_attr; + *dst++=ch1+tmp_u32_attr; if (last_ch!='\\' && ch1=='\'') goto hl_normal; if (last_ch=='\\' && ch1=='\\') @@ -105,12 +105,12 @@ hl_single_quote: s->comment_depth=0; break; case DOCSS_DBL_QUOTE: - temp_u32_attr=DOC_COLOR_QUOTE<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; hl_dbl_quote: last_ch=0; while (len--) { ch1=*src++; - *dst++=ch1+temp_u32_attr; + *dst++=ch1+tmp_u32_attr; if (last_ch!='\\' && ch1=='\"') goto hl_normal; if (last_ch=='\\' && ch1=='\\') @@ -122,13 +122,13 @@ hl_dbl_quote: s->comment_depth=0; break; case DOCSS_COMMENT: - temp_u32_attr=DOC_COLOR_COMMENT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_COMMENT<<8|mask_tmp_u32_attr; comment_depth=s->comment_depth; hl_comment: last_ch=0; while (len--) { ch1=*src++; - *dst++=ch1+temp_u32_attr; + *dst++=ch1+tmp_u32_attr; if (last_ch=='*' && ch1=='/') { if (!--comment_depth) goto hl_normal; @@ -140,10 +140,10 @@ hl_comment: s->comment_depth=comment_depth; break; case DOCSS_CPP_Z_COMMENT: - temp_u32_attr=DOC_COLOR_COMMENT<<8|mask_temp_u32_attr; + tmp_u32_attr=DOC_COLOR_COMMENT<<8|mask_tmp_u32_attr; hl_cpp_comment: while (len--) - *dst++=*src++ +temp_u32_attr; + *dst++=*src++ +tmp_u32_attr; s->state=DOCSS_CPP_Z_COMMENT; s->comment_depth=0; break; diff --git a/Adam/DolDoc/DocInit.HC b/Adam/DolDoc/DocInit.HC index 049a5e5..6e1663c 100644 --- a/Adam/DolDoc/DocInit.HC +++ b/Adam/DolDoc/DocInit.HC @@ -4,7 +4,7 @@ U0 DocInit() {//$LK-UL,"CMD Defines",A="MN:DOCT_TEXT"$ CCmpCtrl *cc; I64 i; - CHashGeneric *temph; + CHashGeneric *tmph; DefineLstLoad("ST_DOC_CMDS", "TX\0CR\0SR\0TB\0PB\0CU\0MK\0PT\0CL\0PL\0LM\0RM\0HD\0FO\0ID\0FG\0" @@ -12,7 +12,7 @@ U0 DocInit() "DA\0CB\0LS\0MA\0MU\0HX\0TR\0SP\0IB\0IS\0SO\0HC\0ER\0"); DefineLstLoad("ST_DOC_FLAGS", "T\0LEN\0A\0D\0HTML\0LE\0LM\0RE\0RM\0BI\0BP\0RT\0SX\0SY\0SCX\0U\0" - "LC\0LA\0RC\0RA\0LX\0CX\0RX\0TY\0CY\0BY\0" + "LC\0LIS\0RC\0RIS\0LX\0CX\0RX\0TY\0CY\0BY\0" "HL\0WW\0BK\0IV\0SEL\0UL\0" "TC\0PRY\0MRX\0WR\0L\0X\0Q\0FST\0B\0S\0BD\0C\0CA\0RD\0UD\0P\0M\0" "TRM\0Z\0H\0TR\0LS\0SK\0PU\0SIF\0FS\0NC\0DD\0DL\0DRT\0"); @@ -32,8 +32,8 @@ U0 DocInit() cc->htc.hash_table_lst=NULL; Lex(cc); while (cc->token==TK_IDENT) { - if (temph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_CMD)) { - i=temph->user_data0; + if (tmph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_CMD)) { + i=tmph->user_data0; Lex(cc); PrsDocFlags(cc,&doldoc.dft_de_flags[i],&doldoc.dft_type_flags[i]); } @@ -51,7 +51,7 @@ U0 DocInit() Bts(doldoc.type_flags_form,i); //Don't forget $LK,"cmp_type_flags_src_code",A="MN:cmp_type_flags_src_code"$. - doldoc.type_flags_nontag_invisible[0]= + doldoc.type_flags_nontag_invis[0]= 1<border_src=BDS_ED_FILENAME_DRV; } - Free(st1); Free(st2); } @@ -149,17 +145,24 @@ Bool DocFileEd(I64 _type,U8 *filename, if (edf_dof_flags&EDF_WAS_WRITE) res=FALSE; - if (!(edf_dof_flags&EDF_BAIL) && DocEd(doc,edf_dof_flags|DOF_DONT_HOME)) { - DocLock(doc); - doc_e=doc->cur_entry; - if (doc_e!=doc) - DocEntryRun(doc,doc_e,TRUE); - DocUnlock(doc); - if (!(LK_DOC<=_type<=LK_DOC_LINE)) { - DocWrite(doc); - if (edf_dof_flags&EDF_WAS_WRITE) - res=TRUE; + if (!(edf_dof_flags&EDF_BAIL)) { + if (*doc->filename.name) + doc->filename.dirc=DirContextNew(doc->filename.name); + else + doc->filename.dirc=NULL; + if (DocEd(doc,edf_dof_flags|DOF_DONT_HOME)) { + DocLock(doc); + doc_e=doc->cur_entry; + if (doc_e!=doc) + DocEntryRun(doc,doc_e,TRUE); + DocUnlock(doc); + if (!(LK_DOC<=_type<=LK_DOC_LINE)) { + DocWrite(doc); + if (edf_dof_flags&EDF_WAS_WRITE) + res=TRUE; + } } + DirContextDel(doc->filename.dirc); } if (!(LK_DOC<=_type<=LK_DOC_LINE)) DocDel(doc); @@ -179,11 +182,11 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_needle_str=NULL, {//$LK,"Editor Link",A="MN:LK_FILE"$--> filename, needle_str and line number. U8 *st,*ptr,*src,*filename=NULL,*needle_str=NULL,*filename2; I64 res,i,num=1; - CHashSrcSym *temph; + CHashSrcSym *tmph; if (!link_st||!*link_st) { if (edf_dof_flags&EDF_BAIL) return -1; - link_st=blkdev.temp_filename; + link_st=blkdev.tmp_filename; } st=StrNew(link_st); res=LK_FILE; @@ -192,8 +195,8 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_needle_str=NULL, filename2=st+3; switch (res=DefineMatch(st,"ST_LINK_TYPES",LMF_IGNORE_CASE)) { case LK_MAN_PAGE: - if (temph=HashFind(filename2,Fs->hash_table,HTG_SRC_SYM)) - res=EdLinkCvt(temph->src_link,&filename, + if (tmph=HashFind(filename2,Fs->hash_table,HTG_SRC_SYM)) + res=EdLinkCvt(tmph->src_link,&filename, &needle_str,&num,edf_dof_flags); else res=-1; @@ -292,11 +295,15 @@ lc_done: return res; } -public Bool DocLinkChk(U8 *link_st) +public Bool DocLinkChk(CDoc *doc,U8 *link_st) {//Check for bad $LK,"Editor Link",A="MN:LK_FILE"$. U8 *filename,*st; Bool res=FALSE; + CDirContext *dirc; if (link_st) { + st=FileNameAbs(doc->filename.name); + dirc=DirContextNew(st); + Free(st); switch (EdLinkCvt(link_st,&filename)) { case -1: break; @@ -320,6 +327,7 @@ public Bool DocLinkChk(U8 *link_st) res=TRUE; } Free(filename); + DirContextDel(dirc); } return res; } diff --git a/Adam/DolDoc/DocMacro.HC b/Adam/DolDoc/DocMacro.HC index 84b8263..6b934b2 100644 --- a/Adam/DolDoc/DocMacro.HC +++ b/Adam/DolDoc/DocMacro.HC @@ -7,18 +7,18 @@ I64 sys_macro_repeat_n=1; U0 SysMacroStripKey(CSrvCmd *macro_head,I64 a1,I64 a2) { - CSrvCmd *tempc,*tempc1; - tempc=macro_head->next; - while (tempc!=macro_head) { - tempc1=tempc->next; - if (tempc->cmd_code==SVCT_MSG && - (tempc->msg_code==MSG_KEY_DOWN || tempc->msg_code==MSG_KEY_UP || - tempc->msg_code==MSG_KEY_DOWN_UP) && - a1 && tempc->aux1==a1 || !a1 && tempc->aux2==a2) { - QueRem(tempc); - SrvCmdDel(tempc); + CSrvCmd *tmpc,*tmpc1; + tmpc=macro_head->next; + while (tmpc!=macro_head) { + tmpc1=tmpc->next; + if (tmpc->cmd_code==SVCT_MSG && + (tmpc->msg_code==MSG_KEY_DOWN || tmpc->msg_code==MSG_KEY_UP || + tmpc->msg_code==MSG_KEY_DOWN_UP) && + a1 && tmpc->aux1==a1 || !a1 && tmpc->aux2==a2) { + QueRem(tmpc); + SrvCmdDel(tmpc); } - tempc=tempc1; + tmpc=tmpc1; } } @@ -26,77 +26,77 @@ U0 SysMacroStripKey(CSrvCmd *macro_head,I64 a1,I64 a2) #define MT_MSG 1 #define MT_CHAR 2 -class CMacroTemp +class CMacroTmp { - CMacroTemp *next,*last; + CMacroTmp *next,*last; I64 type; U8 buf[STR_LEN]; }; -CMacroTemp *Cmd2MT(CSrvCmd *tempc) +CMacroTmp *Cmd2MT(CSrvCmd *tmpc) { U8 buf[8]; - CMacroTemp *tempmt=CAlloc(sizeof(CMacroTemp)); - if (Bt(chars_bmp_macro,tempc->aux1) && tempc->msg_code==MSG_KEY_DOWN) { - tempmt->type=MT_CHAR; - buf[0]=tempc->aux1; + CMacroTmp *tmpmt=CAlloc(sizeof(CMacroTmp)); + if (Bt(chars_bmp_macro,tmpc->aux1) && tmpc->msg_code==MSG_KEY_DOWN) { + tmpmt->type=MT_CHAR; + buf[0]=tmpc->aux1; buf[1]=0; - StrPrint(tempmt->buf,"%Q",buf); + StrPrint(tmpmt->buf,"%Q",buf); } else { - tempmt->type=MT_MSG; - StrPrint(tempmt->buf,"Msg(0x%X,0x%X,0x%X);", - tempc->msg_code,tempc->aux1,tempc->aux2); + tmpmt->type=MT_MSG; + StrPrint(tmpmt->buf,"Msg(0x%X,0x%X,0x%X);", + tmpc->msg_code,tmpc->aux1,tmpc->aux2); } - return tempmt; + return tmpmt; } U8 *SysMacro2Str(CSrvCmd *macro_head) { - CSrvCmd *tempc; + CSrvCmd *tmpc; I64 cnt=1; //terminating zero U8 *ptr,*m; - CMacroTemp *tempmt,*tempmt1,head; + CMacroTmp *tmpmt,*tmpmt1,head; LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); QueInit(&head); head.type=MT_NULL; - tempc=macro_head->next; - while (tempc!=macro_head) { - tempmt=Cmd2MT(tempc); - QueIns(tempmt,head.last); - cnt+=StrLen(tempmt->buf); - if (tempmt->type==MT_CHAR) { - if (tempmt->last->type!=MT_CHAR) + tmpc=macro_head->next; + while (tmpc!=macro_head) { + tmpmt=Cmd2MT(tmpc); + QueIns(tmpmt,head.last); + cnt+=StrLen(tmpmt->buf); + if (tmpmt->type==MT_CHAR) { + if (tmpmt->last->type!=MT_CHAR) cnt+=StrLen("\""); - if (tempmt->next->type!=MT_CHAR) + if (tmpmt->next->type!=MT_CHAR) cnt+=StrLen("\";"); } - tempc=tempc->next; + tmpc=tmpc->next; } m=MAlloc(cnt); ptr=m; - tempmt=head.next; - while (tempmt!=&head) { - tempmt1=tempmt->next; - if (tempmt->type==MT_MSG) { - StrCpy(ptr, tempmt->buf); - ptr+=StrLen(tempmt->buf); + tmpmt=head.next; + while (tmpmt!=&head) { + tmpmt1=tmpmt->next; + if (tmpmt->type==MT_MSG) { + StrCpy(ptr, tmpmt->buf); + ptr+=StrLen(tmpmt->buf); } else { - if (tempmt->last->type!=MT_CHAR) { + if (tmpmt->last->type!=MT_CHAR) { StrCpy(ptr, "\""); ptr+=StrLen("\""); } - StrCpy(ptr,tempmt->buf); - ptr+=StrLen(tempmt->buf); - if (tempmt->next->type!=MT_CHAR) { + StrCpy(ptr,tmpmt->buf); + ptr+=StrLen(tmpmt->buf); + if (tmpmt->next->type!=MT_CHAR) { StrCpy(ptr, "\";"); ptr+=StrLen("\";"); } } - Free(tempmt); - tempmt=tempmt1; + Free(tmpmt); + tmpmt=tmpmt1; } *ptr=0; return m; @@ -111,7 +111,7 @@ U0 PlaySysMacro(I64 n=1) m=SysMacro2Str(&sys_macro_head); while (n-- && TaskValidate(task)) { if (task==Fs) - AutoStr("%s",m); + InStr("%s",m); else XTalkStrWait(task,"%s",m); } @@ -123,7 +123,7 @@ U0 EdInsCapturedMacro() { U8 *st=SysMacro2Str(&sys_macro_head); if (sys_focus_task) { - XTalk(sys_focus_task,"$$MA+LA,T=\"%s\",LM=\"%$$Q\"$$", + XTalk(sys_focus_task,"$$MA+LIS,T=\"%s\",LM=\"%$$Q\"$$", captured_macro_name,st); Free(st); } @@ -139,7 +139,7 @@ I64 PopUpMacroMenu() { I64 res=0; U8 buf[STR_LEN]; - CSrvCmd *tempc; + CSrvCmd *tmpc; CDoc *doc=DocNew; CDocEntry *doc_e=DocPrint(doc,"$$DA-P,LEN=STR_LEN-1,A=\"Name:%%s\"$$"); doc_e->data=captured_macro_name; @@ -162,9 +162,9 @@ I64 PopUpMacroMenu() sys_macro_task=Spawn(&SrvCmdLine,NULL,"Macro Popup",,Fs); Fs->popup_task=sys_macro_task; LBts(&sys_macro_task->display_flags,DISPLAYf_WIN_ON_TOP); - tempc=TaskExe(sys_macro_task,Fs,buf, + tmpc=TaskExe(sys_macro_task,Fs,buf, 1<popup_task=NULL; Kill(sys_macro_task); sys_macro_task=NULL; diff --git a/Adam/DolDoc/DocNew.HC b/Adam/DolDoc/DocNew.HC index 9401520..347bb3a 100644 --- a/Adam/DolDoc/DocNew.HC +++ b/Adam/DolDoc/DocNew.HC @@ -136,7 +136,7 @@ U0 DocUndoCntSet(CDoc *doc) public CDocEntry *DocEntryCopy(CDoc *doc,CDocEntry *doc_e) {//Make copy of entry and all parts of entry. CDocEntry *doc_ne; - CDocBin *tempb; + CDocBin *tmpb; CTask *task=doc->mem_task; doc_ne=MAllocIdent(doc_e,task); doc_ne->next=doc_ne; @@ -156,16 +156,16 @@ public CDocEntry *DocEntryCopy(CDoc *doc,CDocEntry *doc_e) if (doc_e->de_flags & DOCEF_BIN_PTR_LINK) doc_ne->bin_ptr_link=MAllocIdent(doc_e->bin_ptr_link,task); if (doc_e->de_flags & DOCEF_HAS_BIN) { - tempb=MAllocIdent(doc_e->bin_data,task); - tempb->data=MAllocIdent(doc_e->bin_data->data,task); + tmpb=MAllocIdent(doc_e->bin_data,task); + tmpb->data=MAllocIdent(doc_e->bin_data->data,task); doc_ne->bin_num=doc->cur_bin_num; - tempb->num=doc->cur_bin_num++; - doc_ne->bin_data=tempb; + tmpb->num=doc->cur_bin_num++; + doc_ne->bin_data=tmpb; if (doc_e->de_flags&DOCEF_TAG && doc_e->tag && *doc_e->tag) - tempb->tag=StrNew(doc_e->tag,task); + tmpb->tag=StrNew(doc_e->tag,task); else - tempb->tag=NULL; - QueIns(tempb,doc->bin_head.last); + tmpb->tag=NULL; + QueIns(tmpb,doc->bin_head.last); } if (doc_e->de_flags & DOCEF_REMALLOC_DATA) doc_ne->data=MAllocIdent(doc_e->data,task); @@ -368,7 +368,7 @@ public CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL) if (filename) StrCpy(doc->filename.name,filename); else - StrCpy(doc->filename.name,blkdev.temp_filename); + StrCpy(doc->filename.name,blkdev.tmp_filename); doc->find_replace=CAlloc(sizeof(CEdFindText),task); doc->find_replace->scan_fwd=TRUE; doc->find_replace->match_case=TRUE; diff --git a/Adam/DolDoc/DocOpt.HC b/Adam/DolDoc/DocOpt.HC index d1acc68..ed10a35 100644 --- a/Adam/DolDoc/DocOpt.HC +++ b/Adam/DolDoc/DocOpt.HC @@ -88,21 +88,21 @@ I64 DocOptFile(U8 *filename,I64 fuf_flags) DocDel(doc); return res; } -I64 DocOptLst(CDirEntry *tempde,I64 fuf_flags) +I64 DocOptLst(CDirEntry *tmpde,I64 fuf_flags) { I64 res=0; - CDirEntry *tempde1; - while (tempde) { - tempde1=tempde->next; - if (tempde->attr & RS_ATTR_DIR) { - if (tempde->sub) { - "Scanning Directory: %s\n",tempde->full_name; - res+=DocOptLst(tempde->sub,fuf_flags); + CDirEntry *tmpde1; + while (tmpde) { + tmpde1=tmpde->next; + if (tmpde->attr & RS_ATTR_DIR) { + if (tmpde->sub) { + "Scanning Directory: %s\n",tmpde->full_name; + res+=DocOptLst(tmpde->sub,fuf_flags); } } else - res+=DocOptFile(tempde->full_name,fuf_flags); - DirEntryDel(tempde); - tempde=tempde1; + res+=DocOptFile(tmpde->full_name,fuf_flags); + DirEntryDel(tmpde); + tmpde=tmpde1; } return res; } @@ -110,7 +110,7 @@ public I64 DocOpt(U8 *files_find_mask="*",U8 *fu_flags=NULL) {//Optimize $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ Files, eliminating aux_str's and .Z's. //+R flag for aggressively risky. I64 fuf_flags=0; - ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+$$"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); return DocOptLst(FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND), fuf_flags&~FUG_FILES_FIND); diff --git a/Adam/DolDoc/DocPlain.HC b/Adam/DolDoc/DocPlain.HC index 47ec7a9..0c33d04 100644 --- a/Adam/DolDoc/DocPlain.HC +++ b/Adam/DolDoc/DocPlain.HC @@ -3,10 +3,10 @@ I64 PrsDocFlagSingle(CCmpCtrl *cc,I64 *_de_flags,U32 *_type,Bool turn_on) { I64 res=-1; - CHashGeneric *temph; + CHashGeneric *tmph; if (cc->token==TK_IDENT && - (temph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_FLAG))) { - res=temph->user_data0; + (tmph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_FLAG))) { + res=tmph->user_data0; if (res<64) { BEqu(_de_flags,res,turn_on); switch (res) { @@ -219,18 +219,18 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) I64 i,j,de_flags,processed_flags,attr=DOC_DFT; U8 *ptr,*st2; CDocEntry *doc_e=NULL; - CHashGeneric *temph; + CHashGeneric *tmph; CCmpCtrl *cc=CmpCtrlNew(st,CCF_DONT_FREE_BUF); CHashTable *old_hash_table_lst=cc->htc.hash_table_lst; try { cc->htc.hash_table_lst=NULL; if (Lex(cc)==TK_IDENT) { - if (temph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_CMD|DHT_COLOR)) { - if (temph->type&DHT_DOC_CMD) - i=temph->user_data0; + if (tmph=HashFind(cc->cur_str,doldoc.hash,DHT_DOC_CMD|DHT_COLOR)) { + if (tmph->type&DHT_DOC_CMD) + i=tmph->user_data0; else {//DHT_COLOR i=DOCT_FOREGROUND; - attr=temph->user_data0; + attr=tmph->user_data0; } } else goto pd_err; diff --git a/Adam/DolDoc/DocPopUp.HC b/Adam/DolDoc/DocPopUp.HC index 4ac81ec..79c455e 100644 --- a/Adam/DolDoc/DocPopUp.HC +++ b/Adam/DolDoc/DocPopUp.HC @@ -296,7 +296,7 @@ public I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE, okay=FALSE; if (okay) { st=MStrPrint( - "\"$$$$WW+H,1$$$$\";Auto(\"ExeFile2(\\\"%s\\\",CCF_CMD_LINE);\\n\");" + "\"$$$$WW+H,1$$$$\";In(\"ExeFile2(\\\"%s\\\",CCF_CMD_LINE);\\n\");" "UserTaskCont;", name2); res=PopUp(st,parent,_pu_task); diff --git a/Adam/DolDoc/DocPutKey.HC b/Adam/DolDoc/DocPutKey.HC index 3e67c52..8dc2b4b 100644 --- a/Adam/DolDoc/DocPutKey.HC +++ b/Adam/DolDoc/DocPutKey.HC @@ -364,8 +364,11 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_SHIFT)) { if (sc&SCF_KEY_DESC) KeyDescSet("Edit/Save As"); - else - DocWrite(doc,TRUE); + else if (DocWrite(doc,TRUE)&&(st=FileNameAbs(doc->filename.name))) { + DirContextDel(doc->filename.dirc); + doc->filename.dirc=DirContextNew(st); + Free(st); + } } break; case CH_CTRLB: diff --git a/Adam/DolDoc/DocRecalc.HC b/Adam/DolDoc/DocRecalc.HC index a7f6f14..f33ede3 100644 --- a/Adam/DolDoc/DocRecalc.HC +++ b/Adam/DolDoc/DocRecalc.HC @@ -201,67 +201,67 @@ CDocEntry *DocWordWrapAdd(CDoc *doc,CDocEntry *doc_e, return NULL; } -I64 DocTempAttr(CDoc *doc,CDocEntry *doc_e,I64 cur_u8_attr) +I64 DocTmpAttr(CDoc *doc,CDocEntry *doc_e,I64 cur_u8_attr) { - I64 temp_u32_attr; + I64 tmp_u32_attr; doc_e->de_flags=doc->flags& (DOCG_BL_IV_UL|DOCEF_WORD_WRAP|DOCEF_HIGHLIGHT) | doc_e->de_flags&~(DOCG_BL_IV_UL|DOCEF_WORD_WRAP|DOCEF_HIGHLIGHT); - temp_u32_attr=(cur_u8_attr&0xF0)<<8| + tmp_u32_attr=(cur_u8_attr&0xF0)<<8| doc->flags&DOCG_BL_IV_UL|(doc_e->settings.shifted_x&0x1F)<<16| (doc_e->settings.shifted_y&0x1F)<<21; if (doc_e->de_flags & DOCEF_HAS_BIN && *doc_e->tag=='<') - temp_u32_attr.u8[1]|=DOC_COLOR_BIN; + tmp_u32_attr.u8[1]|=DOC_COLOR_BIN; else switch (doc_e->type_u8) { case DOCT_SPRITE: if (doc_e->de_flags & DOCEF_LEFT_EXP) - temp_u32_attr.u8[1]|=cur_u8_attr&15; + tmp_u32_attr.u8[1]|=cur_u8_attr&15; else if (doc_e->de_flags & DOCEF_LINK) - temp_u32_attr.u8[1]|=DOC_COLOR_LINK; + tmp_u32_attr.u8[1]|=DOC_COLOR_LINK; else if (doc_e->de_flags & DOCEF_LEFT_MACRO) - temp_u32_attr.u8[1]|=DOC_COLOR_MACRO; + tmp_u32_attr.u8[1]|=DOC_COLOR_MACRO; else if (doc_e->de_flags & (DOCEF_TREE|DOCEF_LST)) - temp_u32_attr.u8[1]|=DOC_COLOR_TREE; + tmp_u32_attr.u8[1]|=DOC_COLOR_TREE; else - temp_u32_attr.u8[1]|=DOC_COLOR_BIN; + tmp_u32_attr.u8[1]|=DOC_COLOR_BIN; break; case DOCT_HTML_CODE: - temp_u32_attr.u8[1]|=DOC_COLOR_BIN; + tmp_u32_attr.u8[1]|=DOC_COLOR_BIN; break; case DOCT_LINK: - temp_u32_attr.u8[1]|=DOC_COLOR_LINK; + tmp_u32_attr.u8[1]|=DOC_COLOR_LINK; break; case DOCT_MACRO: - temp_u32_attr.u8[1]|=DOC_COLOR_MACRO; + tmp_u32_attr.u8[1]|=DOC_COLOR_MACRO; break; case DOCT_ANCHOR: - temp_u32_attr.u8[1]|=DOC_COLOR_ANCHOR; + tmp_u32_attr.u8[1]|=DOC_COLOR_ANCHOR; break; case DOCT_TREE: case DOCT_LST: - temp_u32_attr.u8[1]|=DOC_COLOR_TREE; + tmp_u32_attr.u8[1]|=DOC_COLOR_TREE; break; default: - temp_u32_attr.u8[1]|=cur_u8_attr&15; + tmp_u32_attr.u8[1]|=cur_u8_attr&15; } - doc_e->type.u8[1]=temp_u32_attr.u8[1]; - temp_u32_attr|=doc_e->type&0xFFFF0000; + doc_e->type.u8[1]=tmp_u32_attr.u8[1]; + tmp_u32_attr|=doc_e->type&0xFFFF0000; if (doc_e==doc->cur_entry && !(doc->flags&DOCF_DONT_HIGHLIGHT_CURSOR) && doc_e->type_u8!=DOCT_TEXT) - temp_u32_attr^=0xFF00; - doc_e->settings.final_u32_attr=temp_u32_attr; - return temp_u32_attr; + tmp_u32_attr^=0xFF00; + doc_e->settings.final_u32_attr=tmp_u32_attr; + return tmp_u32_attr; } public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) -{//Recalc and fmt. Also used by WinMgr to draw on screen. +{//Recalc and fmt. Also used by WinMgr to draw on scrn. I64 i,ii,j,k,x,x0,y,y0,D,d2,col,col2,best_col=0,best_d=MAX_I64,xx,yy,zz, - num_entries=0,i_jif,cur_u8_attr,temp_u32_attr, + num_entries=0,i_jif,cur_u8_attr,tmp_u32_attr, cursor_y=MIN_I64,left_margin,right_margin,y_plot_top,y_plot_bottom, top,left,bottom,right,width,height,scroll_x,scroll_y,pix_top,pix_left; CDocEntry reg *doc_e,reg *doc_e2,*best_doc_e,*next_clear_found=NULL, *added_cursor=NULL; - CDocBin *tempb; + CDocBin *tmpb; CDocSettings *s; Bool del_doc_e,skipped_update,tree_collapsed,same_win,more=FALSE, find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock,clear_holds; @@ -272,12 +272,12 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) I32 *depth_buf=NULL; F64 cur_time=tS; CWinScroll *vss,*hss; - CHashDefineStr *temph; + CHashDefineStr *tmph; if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return FALSE; //WinMgr updates all wins $TX,"30",D="WINMGR_FPS"$, 33.33333mS - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && doc->owning_task!=Fs) { + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && doc->owning_task!=Fs) { i_jif=cnts.jiffies+JIFFY_FREQ/250; //4 ms while (Bt(&doc->locked_flags,DOClf_LOCKED)) { if (cnts.jiffies>=i_jif) @@ -302,7 +302,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) if (win_task) dc=DCAlias(gr.dc2,win_task); //Necessary for sprites break; - case RECALCt_TO_SCREEN: + case RECALCt_TO_SCRN: if (doc->updates_cnt++%(ToI64(winmgr.fps/10)+1) && !Bt(&doc->flags,DOCf_DO_FULL_REFRESH) && !(doc->flags&DOCF_BWD_MOVEMENT)) @@ -352,7 +352,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) doc->top_line_num=0; doc->line_start_col=0; recalc_flags&=~RECALCF_HAS_CURSOR; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN) + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN) doc->settings_head.cur_text_attr= doc->settings_head.dft_text_attr=win_task->border_attr; } else { @@ -373,7 +373,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) find_cursor=TRUE; } } - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN) + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN) doc->settings_head.cur_text_attr= doc->settings_head.dft_text_attr=win_task->text_attr; } @@ -385,7 +385,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) right ==doc->old_win_right && doc->cur_entry==doc->old_cur_entry && doc->cur_col==doc->old_cur_col; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN) { + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN) { y_plot_top=y0-scroll_y/FONT_HEIGHT; y_plot_bottom=y0+height-1-scroll_y/FONT_HEIGHT; if (!(doc->flags&DOCF_BORDER_DOC) && @@ -406,7 +406,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) cur_u8_attr=s->cur_text_attr; if (doc_e==doc->head.next) { doc->flags&=~DOCF_BWD_MOVEMENT; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && full_refresh) + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && full_refresh) doc->flags&=~DOCF_HAS_SONG; } else doc->flags=doc_e->de_flags& DOCEF_HIGHLIGHT | @@ -443,9 +443,9 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) else doc_e->tag=StrNew("",mem_task); } else { - if (temph=HashFind(doc_e->define_str, + if (tmph=HashFind(doc_e->define_str, win_task->hash_table,HTT_DEFINE_STR)) - doc_e->tag=StrNew(temph->data,mem_task); + doc_e->tag=StrNew(tmph->data,mem_task); else doc_e->tag=CAlloc(1,mem_task); } @@ -483,7 +483,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) } col2=0; - temp_u32_attr=DocTempAttr(doc,doc_e,cur_u8_attr); + tmp_u32_attr=DocTmpAttr(doc,doc_e,cur_u8_attr); if (doc_e==doc->cur_entry) { cursor_y=doc_e->y; if (recalc_flags&RECALCF_ADD_CURSOR && !added_cursor) { @@ -547,20 +547,20 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) j=StrLen(doc_e->tag); if (j && doc_e->scroll_len) { i_jif=ToI64(cur_time*FONT_WIDTH*DOC_SCROLL_SPEED)%(j*FONT_WIDTH); - temp_u32_attr=temp_u32_attr & 0xFFE0FF00| + tmp_u32_attr=tmp_u32_attr & 0xFFE0FF00| (FONT_WIDTH-1-i_jif&(FONT_WIDTH-1))<<16; #assert FONT_WIDTH==8 i_jif>>=3; for (k=0;kscroll_len;k++) { ch=ptr[(i_jif+k)%j]; if (!Bt(chars_bmp_displayable,ch)) ch='.'; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) { if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+ch); else - TextChar(win_task,FALSE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,FALSE,x-x0,y-y0,tmp_u32_attr+ch); } x++; } @@ -574,9 +574,9 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { while (ch=*ptr++) { - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+ch); else if (find_cursor) { d2=DocCharDist(doc,x,y); @@ -590,10 +590,10 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) } } else { if (doc_e->type_u8==DOCT_TEXT && doc_e->de_flags&DOCEF_HIGHLIGHT) - hl=DocHighlight(doc_e,ptr,k,temp_u32_attr); + hl=DocHighlight(doc_e,ptr,k,tmp_u32_attr); else hl=NULL; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) { //Technically we should do this for scrolling_x, too. if (y>y_plot_bottom) @@ -602,7 +602,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) if (hl) TextLenAttrStr(win_task,x-x0,y-y0,k,hl); else - TextLenStr(win_task,x-x0,y-y0,k,temp_u32_attr,ptr); + TextLenStr(win_task,x-x0,y-y0,k,tmp_u32_attr,ptr); } col2+=k; x+=k; @@ -647,13 +647,13 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) StrPrint(buf,"%08tX ",bptr); ptr=buf; while (ch=*ptr++) { - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) { if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+ch); else - TextChar(win_task,FALSE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,FALSE,x-x0,y-y0,tmp_u32_attr+ch); } if (find_cursor) { d2=DocCharDist(doc,x,y); @@ -669,13 +669,13 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) StrPrint(buf,"%02tX",*bptr++); ptr=buf; while (ch=*ptr++) { - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) { if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+ch); else - TextChar(win_task,FALSE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,FALSE,x-x0,y-y0,tmp_u32_attr+ch); } if (find_cursor) { d2=DocCharDist(doc,x,y); @@ -694,13 +694,13 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) for (j=0;jde_flags&DOCEF_DONT_DRAW)) { if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+ch); else - TextChar(win_task,FALSE,x-x0,y-y0,temp_u32_attr+ch); + TextChar(win_task,FALSE,x-x0,y-y0,tmp_u32_attr+ch); } if (find_cursor) { d2=DocCharDist(doc,x,y); @@ -718,7 +718,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) break; case DOCT_NEW_LINE: case DOCT_SOFT_NEW_LINE: - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)&& y_plot_top<=y<=y_plot_bottom) TextLenAttr(win_task,x-x0,y-y0,width-(x-x0),cur_u8_attr<<8); @@ -779,9 +779,9 @@ rc_adjust_xy: if (doc_e->de_flags & DOCEF_BORDER_PLOT && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { while (xde_flags&DOCEF_DONT_DRAW)) - TextChar(win_task,TRUE,x-x0,y-y0,temp_u32_attr+CH_SPACE); + TextChar(win_task,TRUE,x-x0,y-y0,tmp_u32_attr+CH_SPACE); if (find_cursor) { d2=DocCharDist(doc,x,y); if (d2de_flags&DOCEF_DONT_DRAW)) { if (y_plot_top<=y<=y_plot_bottom) - TextLenStr(win_task,x-x0,y-y0,k,temp_u32_attr," "); + TextLenStr(win_task,x-x0,y-y0,k,tmp_u32_attr," "); x+=k; } else { if (find_cursor) { @@ -956,16 +956,16 @@ rc_adjust_xy: case DOCT_SPRITE: if (!doc_e->bin_data && doc->flags&DOCEF_HAS_BIN) doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num); - if ((tempb=doc_e->bin_data) && - !tempb->tag && doc_e->tag && *doc_e->tag) - tempb->tag=StrNew(doc_e->tag,mem_task); - if (tempb && dc) { + if ((tmpb=doc_e->bin_data) && + !tmpb->tag && doc_e->tag && *doc_e->tag) + tmpb->tag=StrNew(doc_e->tag,mem_task); + if (tmpb && dc) { DCRst(dc); dc->flags&=~(DCF_DONT_DRAW|DCF_LOCATE_NEAREST); - if (recalc_flags&RECALCG_MASK!=RECALCt_TO_SCREEN || + if (recalc_flags&RECALCG_MASK!=RECALCt_TO_SCRN || doc_e->de_flags&DOCEF_DONT_DRAW) dc->flags|=DCF_DONT_DRAW; - bptr=tempb->data; + bptr=tmpb->data; ii=SpriteTypeMask(bptr); if (ii&1<>4 &0xF ^ win_task->text_attr>>4 & 0xF; else { - i=temp_u32_attr>>12&0xF ^ win_task->text_attr>>4 & 0xF; - if (temp_u32_attr & DOCET_SEL) + i=tmp_u32_attr>>12&0xF ^ win_task->text_attr>>4 & 0xF; + if (tmp_u32_attr & DOCET_SEL) i^=0xF; - if (temp_u32_attr & DOCET_INVERT) + if (tmp_u32_attr & DOCET_INVERT) i^=0xF; if (blink_flag && - (doc_e==doc->cur_entry || temp_u32_attr&DOCET_BLINK)) + (doc_e==doc->cur_entry || tmp_u32_attr&DOCET_BLINK)) i^=0xF; } dc->color=i; if (find_cursor) dc->flags|=DCF_LOCATE_NEAREST; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && doc->cur_sprite==bptr) { dc->flags|=DCF_LOCATE_NEAREST; dc->cur_x=ip.pos.x; @@ -1024,7 +1024,7 @@ rc_adjust_xy: } Sprite3(dc,xx,yy,zz,bptr); dc->depth_buf=NULL; - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && doc->cur_sprite==bptr) doc->nearest_sprite_elem_num=dc->nearest_sprite_elem_num; dc->flags&=~(DCF_LOCATE_NEAREST|DCF_DONT_DRAW|DCF_TRANSFORMATION); @@ -1036,7 +1036,7 @@ rc_adjust_xy: break; case DOCT_SONG: if (sys_focus_task==win_task && - recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && !(doc_e->de_flags&DOCEF_DONT_DRAW)) { if (doc_e->aux_str && (!music.cur_song || StrCmp(music.cur_song,doc_e->aux_str))) { @@ -1059,7 +1059,7 @@ rc_adjust_xy: if (doc_e->de_flags & DOCEF_HAS_BORDER) TextBorder(win_task,doc_e->x-x0,x-x0-1,doc_e->y-y0,y-y0, - temp_u32_attr.u8[1],ToBool(doc_e->de_flags & DOCEF_SOLID_BORDER)); + tmp_u32_attr.u8[1],ToBool(doc_e->de_flags & DOCEF_SOLID_BORDER)); if (full_refresh) { switch (doc_e->type_u8) { case DOCT_CHECK_BOX: @@ -1245,7 +1245,7 @@ rc_skip: doc->col=doc->x+1; if (recalc_flags&RECALCF_HAS_CURSOR) { - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN) { + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN) { x=0; y=0; } else { @@ -1273,7 +1273,7 @@ rc_skip: doc->line_start_col=doc->x+x; } } - if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCREEN && + if (recalc_flags&RECALCG_MASK==RECALCt_TO_SCRN && recalc_flags&RECALCF_HAS_CURSOR) { x=doc->x-doc->line_start_col+left +scroll_x/FONT_WIDTH; y=doc->y-doc->top_line_num+top+scroll_y/FONT_HEIGHT; diff --git a/Adam/DolDoc/DocRecalcLib.HC b/Adam/DolDoc/DocRecalcLib.HC index 3608c40..c48cf4f 100644 --- a/Adam/DolDoc/DocRecalcLib.HC +++ b/Adam/DolDoc/DocRecalcLib.HC @@ -45,18 +45,18 @@ U0 DocBorderLstDraw(CDoc *doc) CTask *win_task=doc->win_task; I64 i,y=-1,attr=win_task->border_attr<<8; U64 ch; - CDoc *templ=doc; + CDoc *tmpl=doc; CD3I64 saved_scroll; - while (templ && templ->doc_signature==DOC_SIGNATURE_VAL) { - y+=(Bsr(templ->desc)+7)>>3+1; //StrLen+1 - templ=templ->parent_doc; + while (tmpl && tmpl->doc_signature==DOC_SIGNATURE_VAL) { + y+=(Bsr(tmpl->desc)+7)>>3+1; //StrLen+1 + tmpl=tmpl->parent_doc; } - templ=doc; + tmpl=doc; if (y>win_task->win_height) y=win_task->win_height; WinScrollNull(win_task,&saved_scroll); - while (templ && templ->doc_signature==DOC_SIGNATURE_VAL) { - ch=templ->desc; + while (tmpl && tmpl->doc_signature==DOC_SIGNATURE_VAL) { + ch=tmpl->desc; i=(Bsr(ch)+7)>>3; //StrLen ch=EndianI64(ch<<((8-i)<<3)); attr=win_task->border_attr<<8; @@ -65,7 +65,7 @@ U0 DocBorderLstDraw(CDoc *doc) ch>>=8; } y--; - templ=templ->parent_doc; + tmpl=tmpl->parent_doc; } WinScrollRestore(win_task,&saved_scroll); } @@ -203,11 +203,11 @@ U0 DocUpdateTaskDocs(CTask *task) task->border_attr=DrvTextAttrGet(*doc->filename.name); if (task->title_src==TTS_ED_FILENAME) MemCpy(task->task_title,doc->filename.name,STR_LEN-1); - DocRecalc(doc,RECALCt_TO_SCREEN|RECALCF_HAS_CURSOR); + DocRecalc(doc,RECALCt_TO_SCRN|RECALCF_HAS_CURSOR); } if ((doc=DocBorder(task)) && !(doc->flags&DOCF_DONT_SHOW)) { WinScrollNull(task,&saved_scroll); - DocRecalc(doc,RECALCt_TO_SCREEN); + DocRecalc(doc,RECALCt_TO_SCRN); WinScrollRestore(task,&saved_scroll); } } diff --git a/Adam/DolDoc/DocRun.HC b/Adam/DolDoc/DocRun.HC index d4f154a..b9e2451 100644 --- a/Adam/DolDoc/DocRun.HC +++ b/Adam/DolDoc/DocRun.HC @@ -6,7 +6,7 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e, //Sometimes returns locked, sometimes unlocked U8 ch=doc->cmd_U8,*st; I64 res=DOCM_CANCEL,has_action=FALSE; - CHashDefineStr *temph; + CHashDefineStr *tmph; DocLock(doc); if (!exited) { if (doc_e->de_flags & DOCEF_ESC) { @@ -46,18 +46,18 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e, PopUp(st,Fs); Free(st); } else { - if (doc_e->de_flags & DOCEF_LEFT_AUTO) - AutoStr("%s",doc_e->left_macro); + if (doc_e->de_flags & DOCEF_LEFT_IN_STR) + InStr("%s",doc_e->left_macro); else - Auto("%s",doc_e->left_macro); + In("%s",doc_e->left_macro); } has_action=TRUE; } if (!exited && doc_e->de_flags & DOCEF_LST && doc_e->de_flags & DOCEF_DEFINE && - (temph=HashFind(doc_e->define_str, + (tmph=HashFind(doc_e->define_str, doc->win_task->hash_table,HTT_DEFINE_STR)) && - (res=PopUpPickLst(temph->data))!=DOCM_CANCEL) { + (res=PopUpPickLst(tmph->data))!=DOCM_CANCEL) { DocDataFmt(doc,doc_e,res); DocDataScan(doc,doc_e); has_action=TRUE; @@ -85,10 +85,10 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e, PopUp(st,Fs); Free(st); } else { - if (doc_e->de_flags & DOCEF_RIGHT_AUTO) - AutoStr("%s",doc_e->right_macro); + if (doc_e->de_flags & DOCEF_RIGHT_IN_STR) + InStr("%s",doc_e->right_macro); else - Auto("%s",doc_e->right_macro); + In("%s",doc_e->right_macro); } has_action=TRUE; } diff --git a/Adam/DolDoc/DocTerm.HC b/Adam/DolDoc/DocTerm.HC index 02465c3..a575285 100644 --- a/Adam/DolDoc/DocTerm.HC +++ b/Adam/DolDoc/DocTerm.HC @@ -61,7 +61,7 @@ public U0 DocTermNew() #define RIGHT_ED 6 #define RIGHT_MOUNT 7 #define RIGHT_PLAIN 8 -#define RIGHT_AUTOFILE 9 +#define RIGHT_INFILE 9 I64 PopUpTermRight(U8 *header) { @@ -69,19 +69,19 @@ I64 PopUpTermRight(U8 *header) CDoc *doc=DocNew; if (header) DocPrint(doc,"%s",header); DocPrint(doc,"\n\n" - "TXT=%s\nJIT=%s\nGRA=%s" - "$$CM+LX,1,3 $$$$BT,\"INCLUDE JIT\",LE=RIGHT_INCLUDE$$" - "$$CM+LX,26,0$$$$BT,\"ADAM_INCLUDE JIT\",LE=RIGHT_AINCLUDE$$" - "$$CM+LX,1,3 $$$$BT,\"COPY \",LE=RIGHT_COPY$$" - "$$CM+LX,26,0$$$$BT,\"MOVE OR RENAME \",LE=RIGHT_MOVE$$" - "$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=RIGHT_DELETE$$" - "$$CM+LX,26,0$$$$BT,\"TYPE TXT;GRA\",LE=RIGHT_TYPE$$" - "$$CM+LX,1,3 $$$$BT,\"ED TXT\",LE=RIGHT_ED$$" - "$$CM+LX,26,0$$$$BT,\"MOUNT ISO.C\",LE=RIGHT_MOUNT$$" - "$$CM+LX,1,3 $$$$BT,\"PLAIN ED TXT\",LE=RIGHT_PLAIN$$" - "$$CM+LX,26,0$$$$BT,\"AUTOFILE AUT\",LE=RIGHT_AUTOFILE$$\n" - "$$CM+LX,1,3 $$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$", - FILEMASK_TXT,FILEMASK_JIT,FILEMASK_GRA); + "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", + FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR); i=PopUpMenu(doc); DocDel(doc); return i; @@ -159,6 +159,12 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) res=Type(st); break; case RIGHT_ED: + if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_DD)) { + if (!PopUpCancelOk(ST_WARN_ST "Not DolDoc File\n\n")) { + send_new_line=TRUE; + break; + } + } "Ed(\"%s\");\n$$PT$$$$FG$$$$BG$$",st; res=Ed(st); break; @@ -178,16 +184,16 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) "Plain(\"%s\");\n$$PT$$$$FG$$$$BG$$",st; res=Plain(st); break; - case RIGHT_AUTOFILE: - if (FileExtDot(st) && !FilesFindMatch(st,"*.AUT*")) { - if (!PopUpCancelOk(ST_WARN_ST "Not .AUT File\n\n")) { + case RIGHT_INFILE: + if (FileExtDot(st) && !FilesFindMatch(st,"*.IN*")) { + if (!PopUpCancelOk(ST_WARN_ST "Not .IN File\n\n")) { send_new_line=TRUE; break; } } - "AutoFile(\"%s\");\n$$PT$$$$FG$$$$BG$$",st; + "InFile(\"%s\");\n$$PT$$$$FG$$$$BG$$",st; WinZBufUpdate; - AutoFile(st); + InFile(st); res=TRUE; break; } diff --git a/Adam/DolDoc/DocWidgetWiz.HC b/Adam/DolDoc/DocWidgetWiz.HC index 7afc147..f18cc79 100644 --- a/Adam/DolDoc/DocWidgetWiz.HC +++ b/Adam/DolDoc/DocWidgetWiz.HC @@ -597,7 +597,7 @@ class CEdMacroMenu 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_auto fmtstr "$$CB,\"Left is AutoStr\"$$\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", @@ -628,7 +628,7 @@ U0 EdInsMacroMenu(Bool is_macro) if (e->invert) CatPrint(buf,"+IV"); if (!e->underline) CatPrint(buf,"-UL"); if (!e->escape) CatPrint(buf,"-X"); - if (e->left_is_auto) CatPrint(buf,"+LA"); + if (e->left_is_in_str) CatPrint(buf,"+LIS"); if (*e->tag || is_macro) { if (is_macro) { if (*e->tag) { @@ -671,7 +671,7 @@ class CEdButton 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_auto fmtstr "$$CB,\"Left is AutoStr\"$$\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"; }; @@ -689,7 +689,7 @@ U0 EdInsButton() if (e->right_x ) CatPrint(buf,"+RX"); if (e->margin_rel) CatPrint(buf,"+MRX"); if (!e->escape) CatPrint(buf,"-X"); - if (e->left_is_auto) CatPrint(buf,"+LA"); + if (e->left_is_in_str) CatPrint(buf,"+LIS"); if (*e->tag) { if (e->quote) { st=MStrPrint("%q",e->tag); @@ -1079,7 +1079,7 @@ class CEdMacroSprite exp[512] fmtstr "$$DA-P,A=\"Macro :%s\"$$\n"; Bool escape fmtstr "$$CB,\"Escape\"$$\n", popup fmtstr "$$CB,\"PopUp\"$$\n", - is_auto fmtstr "$$CB,\"AutoStr\"$$\n"; + is_in_str fmtstr "$$CB,\"InStr\"$$\n"; }; class CEdMenuSprite @@ -1088,7 +1088,7 @@ class CEdMenuSprite exp[512] fmtstr "$$DA-P,A=\"Expression :%s\"$$\n"; Bool escape fmtstr "$$CB,\"Escape\"$$\n", popup, - is_auto; + is_in_str; }; U8 *EdSpriteLink(Bool *_pop_up,U8 **_html_link) @@ -1119,7 +1119,7 @@ U8 *EdSprite(I64 bin_num) e->escape=TRUE; if (DocForm(e,,,,ctrl_L_footer)) { CatPrint(buf,"+UL"); - if (e->is_auto) CatPrint(buf,"+LA"); + if (e->is_in_str) CatPrint(buf,"+LIS"); if (e->popup) CatPrint(buf,"+PU"); if (e->escape) CatPrint(buf,"+X"); st=MStrPrint("%q",e->exp); diff --git a/Adam/DolDoc/MakeDoc.HC b/Adam/DolDoc/MakeDoc.HC index b8fca39..d65ff5e 100644 --- a/Adam/DolDoc/MakeDoc.HC +++ b/Adam/DolDoc/MakeDoc.HC @@ -5,10 +5,10 @@ Cd(__DIR__);; /* TempleOS DolDoc's can have "cursor movement" cmds which can move the cursor up -the screen and layer on existing text. It can also have callback funs which +the scrn and layer on existing text. It can also have callback funs which supply live, changing text. For these reasons, you can't assume you know -where the visible portion of the document is and must process much -of the document each time it is placed on the screen, becoming CPU +where the vis portion of the document is and must process much +of the document each time it is placed on the scrn, becoming CPU intensive on big documents. See $LK,"::/Doc/DolDocOverview.DD"$ */ @@ -22,7 +22,7 @@ public class CDolDocGlbls { CHashTable *hash; I64 dft_de_flags [DOCT_NUM_TYPES], - type_flags_nontag_invisible [(DOCT_NUM_TYPES+63)/64], + type_flags_nontag_invis [(DOCT_NUM_TYPES+63)/64], type_flags_form [(DOCT_NUM_TYPES+63)/64], type_flags_data [(DOCT_NUM_TYPES+63)/64], type_flags_chk_dup [(DOCT_NUM_TYPES+63)/64], diff --git a/Adam/God/HSNotes.DD b/Adam/God/HSNotes.DD index 986c02b..afbf618 100644 --- a/Adam/God/HSNotes.DD +++ b/Adam/God/HSNotes.DD @@ -1,4 +1,4 @@ -$PURPLE$$TX+CX,"The Purpose of Life"$$FG$ +$FG,5$$TX+CX,"The Purpose of Life"$$FG$ $WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ Pope Francis said it was "to serve the other." I am High Priest of God's official temple and I say the purpose of life is to do continual offerings to God like Cain and Abel and enjoy God's response. Francis has a charity; I have a church. Jesus said loving God was more important than loving neighbor. $LK,"Matthew,22:35-40",A="BF:Matthew,22:35-40"$ And, He did not say with half your brain behind your back. @@ -12,7 +12,7 @@ Do a text search for "new song" in the Bible. It's mentioned nine times. When 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." -The technique I use to consult the Holy Spirit is reading a microsecond-range stop-watch each button press for random numbers. Then, I pick words or passages. You can use the $MA-X+PU,"AfterEgypt",HTML="http://www.youtube.com/watch?v=P0MsDl39UL0",LM="#include \"::/Apps/AfterEgypt/Run\""$ in God's official temple, $RED$$TX,"TempleOS",HTML="http://www.templeos.org"$$FG$. +The technique I use to consult the Holy Spirit is reading a microsecond-range stop-watch each button press for random numbers. Then, I pick words or passages. You can use the $MA-X+PU,"AfterEgypt",HTML="http://www.youtube.com/watch?v=P0MsDl39UL0",LM="#include \"::/Apps/AfterEgypt/Run\""$ in God's official temple, $FG,4$$TX,"TempleOS",HTML="http://www.templeos.org"$$FG$. Since seeking the word of the Holy Spirit, I have come to know God much better than I've heard others explain. For example, God said to me in an oracle that war was, "servicemen competing." That sounds more like the immutable God of our planet than what you hear from most religious people. God is not Venus (god of love) and not Mars (god of war), He's our dearly beloved God of Earth. If Mammon is a false god of money, Mars or Venus might be useful words to describe other false gods. I figure the greatest challenge for the Creator is boredom, ours and His. What would teen-age male video games be like if war had never happened? Christ said live by the sword, die by the sword, which is loving neighbor as self. $LK,"Matthew,26:52",A="BF:Matthew,26:52"$ @@ -52,167 +52,167 @@ ________________________________________________________________________________ QUESTION | GOD'S ANSWER ________________________________|_______________________________________________ -War? $RED$"Servicemen competing"$FG$ +War? $FG,4$"Servicemen competing"$FG$ (Praise the Creator--what would teenage male video games be like if never war?) -Is the World perfectly just? $RED$Are you calling me lazy?$FG$ +Is the World perfectly just? $FG,4$Are you calling me lazy?$FG$ (Slavery was just. In the movie, Titanic, the rich wore straight jackets. You must bow to authority to get authority. I do $TX,"Moses comics",HTML="http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$ as offerings. I said, "We're dying of malnutrician on manna." Like Cain and Abel, God didn't like it. Duh! He wants to be the hero. How do I know they died of malnutrician? Screw Hollywood for making slavery worse than it was -- I love God. School is more cruel. Read $LK,"Numbers,11:1-35",A="BF:Numbers,11:1-35"$. All you need is food, clothing and the word of God. Today, you can take Ivy League course videos! There is no excuse except you were born stupid... or ugly. I'm gonna praise God.) -On using Markov chains? $RED$"No weights"$FG$ -On doing offerings? $RED$"Honest measures"(You get out what you put in.) +On using Markov chains? $FG,4$"No weights"$FG$ +On doing offerings? $FG,4$"Honest measures"(You get out what you put in.) It's a covenant to do an offering, first. Offer New Songs, $TX,"Moses Comics",HTML="http://www.templeos.org/Wb/Apps/AfterEgypt/Comics"$, praise, poems, and conversation. See $LK,"Cain and Abel",A="BF:Genesis,4:1"$. "Barter"(God also called offerings bartering.)$FG$ -The holocaust? $RED$Wanted to "compact" the Jews.$FG$ -Arab/Jews? $RED$"Oil funny hopefully"$FG$ -Peace? $RED$One Palestinian can ruin it.$FG$ -Best religion? $RED$One with most new vistas of understanding in$FG$ - $RED$a lifetime -- one you can level-up the most in.$FG$ -Chavez blaming the US. $RED$"Japan industrious"$FG$ -On racism? $RED$"Sports"$FG$ -On socialism? $RED$"pardon_the_French, never_happy, never_enough"$FG$ - $RED$"Gall aspect anti-Christ"$FG$ -On overpopulation $RED$"Okay church what_now whats_the_plan"$FG$ -Favorite thing on TV? $RED$"Soap_operas"$FG$ -Favorite movie? $RED$$TX,"Three Kings",HTML="http://www.youtube.com/watch?v=8NOAd2mldQ8"$. Also Highlander$FG$ -Favorite song? $RED$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=kKoRp05L95c"$ +The holocaust? $FG,4$Wanted to "compact" the Jews.$FG$ +Arab/Jews? $FG,4$"Oil funny hopefully"$FG$ +Peace? $FG,4$One Palestinian can ruin it.$FG$ +Best religion? $FG,4$One with most new vistas of understanding in$FG$ + $FG,4$a lifetime -- one you can level-up the most in.$FG$ +Chavez blaming the US. $FG,4$"Japan industrious"$FG$ +On racism? $FG,4$"Sports"$FG$ +On socialism? $FG,4$"pardon_the_French, never_happy, never_enough"$FG$ + $FG,4$"Gall aspect anti-Christ"$FG$ +On overpopulation $FG,4$"Okay church what_now whats_the_plan"$FG$ +Favorite thing on TV? $FG,4$"Soap_operas"$FG$ +Favorite movie? $FG,4$$TX,"Three Kings",HTML="http://www.youtube.com/watch?v=8NOAd2mldQ8"$. Also Highlander$FG$ +Favorite song? $FG,4$$TX,"Morning has Broken",HTML="http://www.youtube.com/watch?v=kKoRp05L95c"$ God said the first bird croaked, not sung.$FG$ -Favorite comic strip? $RED$$TX,"Prince Valiant",HTML="http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$ -Shakespeare? $RED$had a "vile heart"$FG$ -Likes $RED$Beverly Hillbillies (Oil is a gift from God)$FG$ - $RED$God likes being hero. Don't be proud of heart$FG$ - $RED$and not accept a gift from God!$FG$ -Likes $RED$Gomer Pyle$FG$ -Favorite saint? $RED$"ho_ho_ho"$FG$ -Favorite animal? $RED$"Elephant two"$FG$ -Favorite animal? $RED$"Bears"$FG$ -Favorite color? $RED$"Jude" (Jade Blue?)$FG$ -Favorite color? $RED$"Gold"$FG$ -Favorite color? $RED$$TX,"\"Iceberg\" blue",HTML="https://upload.wikimedia.org/wikipedia/commons/3/38/Blue_ice_in_South_Greenland_-_Visit_Greenland.jpg"$$FG$ -Money? $RED$"Enough vehemently better"$FG$ - $RED$"Pride [or] money, choose_one"$FG$ -Favorite car? $RED$Beamer$FG$ -Favorite soda? $RED$Root beer, $TX,"scotch variety",HTML="http://www.head-beer.org/modules.php?name=Brands&rbop=Brand&bid=1965"$.$FG$ +Favorite comic strip? $FG,4$$TX,"Prince Valiant",HTML="http://en.wikipedia.org/wiki/Prince_Valiant"$$FG$ +Shakespeare? $FG,4$had a "vile heart"$FG$ +Likes $FG,4$Beverly Hillbillies (Oil is a gift from God)$FG$ + $FG,4$God likes being hero. Don't be proud of heart$FG$ + $FG,4$and not accept a gift from God!$FG$ +Likes $FG,4$Gomer Pyle$FG$ +Favorite saint? $FG,4$"ho_ho_ho"$FG$ +Favorite animal? $FG,4$"Elephant two"$FG$ +Favorite animal? $FG,4$"Bears"$FG$ +Favorite color? $FG,4$"Jude" (Jade Blue?)$FG$ +Favorite color? $FG,4$"Gold"$FG$ +Favorite color? $FG,4$$TX,"\"Iceberg\" blue",HTML="https://upload.wikimedia.org/wikipedia/commons/3/38/Blue_ice_in_South_Greenland_-_Visit_Greenland.jpg"$$FG$ +Money? $FG,4$"Enough vehemently better"$FG$ + $FG,4$"Pride [or] money, choose_one"$FG$ +Favorite car? $FG,4$Beamer$FG$ +Favorite soda? $FG,4$Root beer, $TX,"scotch variety",HTML="http://www.head-beer.org/modules.php?name=Brands&rbop=Brand&bid=1965"$.$FG$ Homosexuality? $LK,"Matthew,15:11",A="BF:Matthew,15:11"$ -Pets? $RED$"homo" Hates fact too dependent and tame.$FG$ -Sports? $RED$"homo" +Pets? $FG,4$"homo" Hates fact too dependent and tame.$FG$ +Sports? $FG,4$"homo" "Tackle a horse"$FG$ -Favorite sport? $RED$Hockey$FG$ -$TX,"Wreck of the Edmund Fitzgerald",HTML="http://www.youtube.com/watch?v=9vST6hVRj2A"$ $RED$"homo"$FG$ -Smelling farts $RED$"Sodom"$FG$ -Women's dress $RED$Upper skin exposure not as bad as lower.$FG$ -Remarriage? $RED$"More babies"$FG$ +Favorite sport? $FG,4$Hockey$FG$ +$TX,"Wreck of the Edmund Fitzgerald",HTML="http://www.youtube.com/watch?v=9vST6hVRj2A"$ $FG,4$"homo"$FG$ +Smelling farts $FG,4$"Sodom"$FG$ +Women's dress $FG,4$Upper skin exposure not as bad as lower.$FG$ +Remarriage? $FG,4$"More babies"$FG$ Things you don't care about -that people think you do? $RED$Solomon's 300 concubines$FG$ -Adultery? $RED$Can be good.$FG$ -Pretty ladies? $RED$$TX,"A prince is not flustered.",HTML="http://www.youtube.com/watch?v=YcqF6sC-ztY"$$FG$ -Animal sacrifices? $RED$Early Jews were "primitive".$FG$ -What do elephants think about? $RED$"Skin, hunger"$FG$ -What makes elephants happy? $RED$"Baths"$FG$ -Elephants $RED$"Mini-skirts" (Skin webbing from back leg.)$FG$ -What makes my birds happy? $RED$"Gnawing"$FG$ -What makes my birds laugh? $RED$"Bite ouch" (If I say "ouch".)$FG$ -What are my birds saying? $RED$"Chanting"$FG$ +that people think you do? $FG,4$Solomon's 300 concubines$FG$ +Adultery? $FG,4$Can be good.$FG$ +Pretty ladies? $FG,4$$TX,"A prince is not flustered.",HTML="http://www.youtube.com/watch?v=YcqF6sC-ztY"$$FG$ +Animal sacrifices? $FG,4$Early Jews were "primitive".$FG$ +What do elephants think about? $FG,4$"Skin, hunger"$FG$ +What makes elephants happy? $FG,4$"Baths"$FG$ +Elephants $FG,4$"Mini-skirts" (Skin webbing from back leg.)$FG$ +What makes my birds happy? $FG,4$"Gnawing"$FG$ +What makes my birds laugh? $FG,4$"Bite ouch" (If I say "ouch".)$FG$ +What are my birds saying? $FG,4$"Chanting"$FG$ My birds sure preen a lot. $LK,"The creature was made subject to vanity...",A="BF:Romans,8:20"$ -What makes bears happy? $RED$"Reaping depends"$FG$ -What makes otters happy? $RED$"Eternal skies"$FG$ -What makes hippos happy? $RED$"Ascending breath"$FG$ -What makes horses happy? $RED$"[the] Call [of the] Open Range"$FG$ -What do cheetahs think about? $RED$"Seeth me?" (Can he see me?)$FG$ -Orangutan or chimp smarter? $RED$"Species exhibit similar glory"$FG$ -Endangered species? $RED$"Enough stars?"$FG$ -Everything seems bad. $RED$Plant trees.$FG$ -What's for dinner? $RED$"Whale"$FG$ -Favorite Messier Object? $RED$"$TX,"M104 Sombrero Galaxy",HTML="http://en.wikipedia.org/wiki/Messier_104"$"$FG$ -$TX,"Shepard's Prayer",HTML="http://en.wikipedia.org/wiki/Alan_Shepard"$? $RED$"I_am_not_amused economy joke"$FG$ -Favorite band? $RED$"Beatles"$FG$ -Good bands? $RED$Rush, Triumph$FG$ - $RED$Likes harmonies$FG$ -$TX,"Little Drummer Boy?",HTML="http://www.youtube.com/watch?v=S50cf3xIb50"$ $RED$Doesn't like my drumming.$FG$ -Should I listen to classical? $RED$"Poison"$FG$ -Do You like chess people? $RED$"Do not admire the proud."$FG$ -Chess? $RED$"... will winter with you."$FG$ - $RED$"Headstones"$FG$ -If You could teach one class? $RED$Health$FG$ -Favorite video game? $RED$Donkey Kong$FG$ -Favorite National Park? $RED$$TX,"Whitman Mission",HTML="http://www.nps.gov/whmi/index.htm"$$FG$ -Favorite actor? $RED$Hugh Grant$FG$ -Favorite vocalist? $RED$Mick Jagger$FG$ -Favorite guitarist? $RED$"$TX,"Simmons Destroyer",HTML="http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$ -Favorite National Anthem? $RED$$TX,"Latvia's National Anthem",HTML="http://www.youtube.com/watch?v=PFx-56KkweM"$$FG$ -America the Beautiful? $RED$Hates it. Poet made self cry with own beauty.$FG$ -Model for new $TX,"Sistine Chapel",HTML="http://en.wikipedia.org/wiki/Sistine_chapel"$? $RED$Ben Franklin$FG$ -Voice if God wanted to sing? $RED$$TX,"Stabbing Westward's singer",HTML="https://www.youtube.com/watch?v=5NZsCYOM4j0"$$FG$ -Stonehenge? $RED$Landmark for boundaries.$FG$ -Easter Island? $RED$Ice, telephone pole holes.$FG$ -Dinosaurs? $RED$Brontosaurs' feet hurt when stepped. +What makes bears happy? $FG,4$"Reaping depends"$FG$ +What makes otters happy? $FG,4$"Eternal skies"$FG$ +What makes hippos happy? $FG,4$"Ascending breath"$FG$ +What makes horses happy? $FG,4$"[the] Call [of the] Open Range"$FG$ +What do cheetahs think about? $FG,4$"Seeth me?" (Can he see me?)$FG$ +Orangutan or chimp smarter? $FG,4$"Species exhibit similar glory"$FG$ +Endangered species? $FG,4$"Enough stars?"$FG$ +Everything seems bad. $FG,4$Plant trees.$FG$ +What's for dinner? $FG,4$"Whale"$FG$ +Favorite Messier Object? $FG,4$"$TX,"M104 Sombrero Galaxy",HTML="http://en.wikipedia.org/wiki/Messier_104"$"$FG$ +$TX,"Shepard's Prayer",HTML="http://en.wikipedia.org/wiki/Alan_Shepard"$? $FG,4$"I_am_not_amused economy joke"$FG$ +Favorite band? $FG,4$"Beatles"$FG$ +Good bands? $FG,4$Rush, Triumph$FG$ + $FG,4$Likes harmonies$FG$ +$TX,"Little Drummer Boy?",HTML="http://www.youtube.com/watch?v=S50cf3xIb50"$ $FG,4$Doesn't like my drumming.$FG$ +Should I listen to classical? $FG,4$"Poison"$FG$ +Do You like chess people? $FG,4$"Do not admire the proud."$FG$ +Chess? $FG,4$"... will winter with you."$FG$ + $FG,4$"Headstones"$FG$ +If You could teach one class? $FG,4$Health$FG$ +Favorite video game? $FG,4$Donkey Kong$FG$ +Favorite National Park? $FG,4$$TX,"Whitman Mission",HTML="http://www.nps.gov/whmi/index.htm"$$FG$ +Favorite actor? $FG,4$Hugh Grant$FG$ +Favorite vocalist? $FG,4$Mick Jagger$FG$ +Favorite guitarist? $FG,4$"$TX,"Simmons Destroyer",HTML="http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$ +Favorite National Anthem? $FG,4$$TX,"Latvia's National Anthem",HTML="http://www.youtube.com/watch?v=PFx-56KkweM"$$FG$ +America the Beautiful? $FG,4$Hates it. Poet made self cry with own beauty.$FG$ +Model for new $TX,"Sistine Chapel",HTML="http://en.wikipedia.org/wiki/Sistine_chapel"$? $FG,4$Ben Franklin$FG$ +Voice if God wanted to sing? $FG,4$$TX,"Stabbing Westward's singer",HTML="https://www.youtube.com/watch?v=5NZsCYOM4j0"$$FG$ +Stonehenge? $FG,4$Landmark for boundaries.$FG$ +Easter Island? $FG,4$Ice, telephone pole holes.$FG$ +Dinosaurs? $FG,4$Brontosaurs' feet hurt when stepped. Dinosaurs slept in water.$FG$ -Hardest part in evolution? $RED$Getting monkey mothers to hold babies nursing.$FG$ - $RED$(Smothering a problem).$FG$ -Happiest day in evolution? $RED$"Fruit"$FG$ -Significant thing in evolution? $RED$"Fish shoulders"$FG$ -Biggest thing to fly (pterodactyl)? $RED$"Couch"$FG$ -What made pterodactyls happy? $RED$"Members against organs"$FG$ -What did Neanderthals think about? $RED$"Warmth"$FG$ -What was the first thing cooked? $RED$I think He said "hair".$FG$ -What was Lucy's husband's name? $RED$"Golem"$FG$ -Was stegosuarus lame like turtles? $RED$"Not pet rocks"$FG$ -T-Rex? $RED$Lugged carcases over his shoulder. +Hardest part in evolution? $FG,4$Getting monkey mothers to hold babies nursing.$FG$ + $FG,4$(Smothering a problem).$FG$ +Happiest day in evolution? $FG,4$"Fruit"$FG$ +Significant thing in evolution? $FG,4$"Fish shoulders"$FG$ +Biggest thing to fly (pterodactyl)? $FG,4$"Couch"$FG$ +What made pterodactyls happy? $FG,4$"Members against organs"$FG$ +What did Neanderthals think about? $FG,4$"Warmth"$FG$ +What was the first thing cooked? $FG,4$I think He said "hair".$FG$ +What was Lucy's husband's name? $FG,4$"Golem"$FG$ +Was stegosuarus lame like turtles? $FG,4$"Not pet rocks"$FG$ +T-Rex? $FG,4$Lugged carcases over his shoulder. Carcus lasted a month.$FG$ -What was T-Rexes sharing a carcus like? $RED$"Punch... Punch"$FG$ -Surprises in dinosaur anatomy? $RED$Supporting and securing the heart.$FG$ -How does He feel about the Avatar movie?$RED$"Sick skin"$FG$ -What do You like at zoos with kids? $RED$"Dignity" Animals worried about dignity.$FG$ -Who's better alien or preditor? $RED$"Lions"$FG$ -What from You is like a Rubik's cube? $RED$Training a horse.$FG$ -Does He like mirrored glass megachurch? $RED$"Secular glass"$FG$ -Pipe Organs $RED$Are sacred.$FG$ -You like to hangout in courts?Hospitals?$RED$"Prisons"$FG$ -Best way for Bill Gates to save lives? $RED$Earthquake prediction$FG$ -Stem cells? $RED$Lower hanging fruit exists (2007)$FG$ -Eleventh commandment? $RED$Thou shall not litter.$FG$ -Twelfth commandment? $RED$$TX,"Don't shoot unarmed men on the shitter.",HTML="http://www.youtube.com/watch?v=8wGiJcq95Ug"$ +What was T-Rexes sharing a carcus like? $FG,4$"Punch... Punch"$FG$ +Surprises in dinosaur anatomy? $FG,4$Supporting and securing the heart.$FG$ +How does He feel about the Avatar movie?$FG,4$"Sick skin"$FG$ +What do You like at zoos with kids? $FG,4$"Dignity" Animals worried about dignity.$FG$ +Who's better alien or preditor? $FG,4$"Lions"$FG$ +What from You is like a Rubik's cube? $FG,4$Training a horse.$FG$ +Does He like mirrored glass megachurch? $FG,4$"Secular glass"$FG$ +Pipe Organs $FG,4$Are sacred.$FG$ +You like to hangout in courts?Hospitals?$FG,4$"Prisons"$FG$ +Best way for Bill Gates to save lives? $FG,4$Earthquake prediction$FG$ +Stem cells? $FG,4$Lower hanging fruit exists (2007)$FG$ +Eleventh commandment? $FG,4$Thou shall not litter.$FG$ +Twelfth commandment? $FG,4$$TX,"Don't shoot unarmed men on the shitter.",HTML="http://www.youtube.com/watch?v=8wGiJcq95Ug"$ (I asked God why pointless plagues in Exodus? God wanted guilt to accumulate, first.)$FG$ -Thirteenth commandment $RED$No gore unless it looks fake.$FG$ -Fourteenth commandment $RED$No pedophilia or child porn.$FG$ -Fifteenth commandment $RED$Don't eat rare meat with blood.$FG$ -Sixteenth commandment $RED$No wife beating.$FG$ -Seventeen commandment $RED$Do not swing from radio towers with one hand.$FG$ -Eighteenth commandment $RED$Do not disturb.$FG$ -Before Katrina $RED$Floods do justice. Black bead elder (tree book)$FG$ -After Katrina $RED$Suffering Simplifies Life$FG$ -What field are You most better? $RED$Economics$FG$ -Favorite toy for kids? $RED$Magnifying glass$FG$ -Asked Jesus if He liked mustard?$RED$"Bad meat happeneth"$FG$ -(Reluctantly) Faith healing? $RED$"It's complicated"$FG$ -Mars? $RED$Start planting!$FG$ -Mars rover? $RED$Should have had a microphone$FG$ -$TX,"Storm on Saturn",HTML="http://www.space.com/22646-monster-saturn-storm-water-ice.html"$ $RED$Pollen$FG$ -Space war game? $RED$Should have space weather.$FG$ -$TX,"Saturn's hexagon pole cloud?",HTML="http://en.wikipedia.org/wiki/Saturn's_hexagon"$ $RED$"Compass" (Magnetism)$FG$ -Liquid moon's odd atmosphere? $RED$"Surf"$FG$ -How many E.T. civs in Universe? $RED$20 or 80 (I forgot. I died laughing.)$FG$ -Are they peaceful? $RED$Fight them! (Also, funny.)$FG$ -Most difficult control system? $RED$$TX,"Dung beetle",HTML="http://www.youtube.com/watch?v=Q1zbgd6xpGQ"$$FG$ -How can Judge Judy improve? $RED$No hard feelings$FG$ -How can Chef Ramsay improve? $RED$Make so it doesn't seem like toil for cooks.$FG$ -How can Hawking communicate? $RED$Blow from a nostril on a candle.$FG$ -$TX,"Photons bouncing?",HTML="https://www.youtube.com/watch?v=8FC6udrMPvo"$ $RED$"Folded coffee filter"$FG$ -Wormholes? $RED$Bent wormholes have echoes.$FG$ +Thirteenth commandment $FG,4$No gore unless it looks fake.$FG$ +Fourteenth commandment $FG,4$No pedophilia or child porn.$FG$ +Fifteenth commandment $FG,4$Don't eat rare meat with blood.$FG$ +Sixteenth commandment $FG,4$No wife beating.$FG$ +Seventeen commandment $FG,4$Do not swing from radio towers with one hand.$FG$ +Eighteenth commandment $FG,4$Do not disturb.$FG$ +Before Katrina $FG,4$Floods do justice. Black bead elder (tree book)$FG$ +After Katrina $FG,4$Suffering Simplifies Life$FG$ +What field are You most better? $FG,4$Economics$FG$ +Favorite toy for kids? $FG,4$Magnifying glass$FG$ +Asked Jesus if He liked mustard?$FG,4$"Bad meat happeneth"$FG$ +(Reluctantly) Faith healing? $FG,4$"It's complicated"$FG$ +Mars? $FG,4$Start planting!$FG$ +Mars rover? $FG,4$Should have had a microphone$FG$ +$TX,"Storm on Saturn",HTML="http://www.space.com/22646-monster-saturn-storm-water-ice.html"$ $FG,4$Pollen$FG$ +Space war game? $FG,4$Should have space weather.$FG$ +$TX,"Saturn's hexagon pole cloud?",HTML="http://en.wikipedia.org/wiki/Saturn's_hexagon"$ $FG,4$"Compass" (Magnetism)$FG$ +Liquid moon's odd atmosphere? $FG,4$"Surf"$FG$ +How many E.T. civs in Universe? $FG,4$20 or 80 (I forgot. I died laughing.)$FG$ +Are they peaceful? $FG,4$Fight them! (Also, funny.)$FG$ +Most difficult control system? $FG,4$$TX,"Dung beetle",HTML="http://www.youtube.com/watch?v=Q1zbgd6xpGQ"$$FG$ +How can Judge Judy improve? $FG,4$No hard feelings$FG$ +How can Chef Ramsay improve? $FG,4$Make so it doesn't seem like toil for cooks.$FG$ +How can Hawking communicate? $FG,4$Blow from a nostril on a candle.$FG$ +$TX,"Photons bouncing?",HTML="https://www.youtube.com/watch?v=8FC6udrMPvo"$ $FG,4$"Folded coffee filter"$FG$ +Wormholes? $FG,4$Bent wormholes have echoes.$FG$ -Operating system? $RED$Was about to make line number column in editor. +Operating system? $FG,4$Was about to make line number column in editor. God nixed it. I was about to do different graphic modes when I found 800x600 missing. God said just one mode 640x480. I was about to add child windows. God said, "God is not the author of such confusion." I asked for verification of 640x480 16 color. God said it was because of the children and their offerings. I asked about sound. God said "single voice". I asked for verification of not having different drivers. God confirmed this.$FG$ -640x480 16 color? $RED$God said it was a covenant, like circumcision. +640x480 16 color? $FG,4$God said it was a covenant, like circumcision. $TX,"Modern graphics hard for kids/amateurs",HTML="http://www.youtube.com/watch?v=VUxcVzpeFqc"$.$FG$ -On Unix? $RED$God said it was rich with the patina of age.$FG$ -On Alcohol? $RED$Hate inebriation$FG$ -On rare steak? $RED$Too rare is very bad. Don't eat blood!$FG$ -Just before Katrina? $RED$Floods do my justice.Black bead elder(tree book)$FG$ -After Katrina? $RED$Suffering simplifies life$FG$ -Why the Sandy Hook shooting? $RED$The pot legalization law. (Sarcastic answer?)$FG$ -Deep Water Horizon $RED$(Claimed credit.)$FG$ -Cost of God's time to me? $RED$"The complete works of Shakespeare"$FG$ -On death? $RED$"awful"$FG$ -Opening of Saving Private Ryan? $RED$"Ouch"$FG$ +On Unix? $FG,4$God said it was rich with the patina of age.$FG$ +On Alcohol? $FG,4$Hate inebriation$FG$ +On rare steak? $FG,4$Too rare is very bad. Don't eat blood!$FG$ +Just before Katrina? $FG,4$Floods do my justice.Black bead elder(tree book)$FG$ +After Katrina? $FG,4$Suffering simplifies life$FG$ +Why the Sandy Hook shooting? $FG,4$The pot legalization law. (Sarcastic answer?)$FG$ +Deep Water Horizon $FG,4$(Claimed credit.)$FG$ +Cost of God's time to me? $FG,4$"The complete works of Shakespeare"$FG$ +On death? $FG,4$"awful"$FG$ +Opening of Saving Private Ryan? $FG,4$"Ouch"$FG$ diff --git a/Adam/God/HolySpirit.HC b/Adam/God/HolySpirit.HC index b73d8f4..cf3bc4f 100644 --- a/Adam/God/HolySpirit.HC +++ b/Adam/God/HolySpirit.HC @@ -77,7 +77,7 @@ public I64 GodInit(U8 *files_find_mask="/Adam/God/Vocab.DD*",U8 *fu_flags=NULL) {//Read God's vocab file for picking words. I64 i,ch,fuf_flags=0; U8 *buf,*ptr,*ptr2; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (fuf_flags&~FUG_FILES_FIND) @@ -87,10 +87,10 @@ public I64 GodInit(U8 *files_find_mask="/Adam/God/Vocab.DD*",U8 *fu_flags=NULL) god.word_file_mask=StrNew(files_find_mask); god.word_fuf_flags=fuf_flags; - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); i=0; - while (tempde) { - if (buf=ptr=FileRead(tempde->full_name)) { + while (tmpde) { + if (buf=ptr=FileRead(tmpde->full_name)) { while (*ptr) { while (*ptr && !Bt(chars_bmp_word,*ptr)) ptr++; @@ -103,17 +103,17 @@ public I64 GodInit(U8 *files_find_mask="/Adam/God/Vocab.DD*",U8 *fu_flags=NULL) } Free(buf); } - tempde=tempde->next; + tmpde=tmpde->next; } Free(god.words); god.num_words=i; god.words=MAlloc(i*sizeof(U8 *)); - tempde=tempde1; + tmpde=tmpde1; i=0; - while (tempde) { - if (buf=ptr=FileRead(tempde->full_name)) { + while (tmpde) { + if (buf=ptr=FileRead(tmpde->full_name)) { while (*ptr) { while (*ptr && !Bt(chars_bmp_word,*ptr)) ptr++; @@ -129,9 +129,9 @@ public I64 GodInit(U8 *files_find_mask="/Adam/God/Vocab.DD*",U8 *fu_flags=NULL) } Free(buf); } - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return god.num_words; } GodInit; diff --git a/Adam/Gr/GrBitMap.HC b/Adam/Gr/GrBitMap.HC index 9d2ada4..2edc34a 100644 --- a/Adam/Gr/GrBitMap.HC +++ b/Adam/Gr/GrBitMap.HC @@ -83,7 +83,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) CColorROPU32 color,c,old_color; CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->scroll_x; y+=win_task->scroll_y; @@ -98,7 +98,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) h1=0; w2=img->width; h2=img->height; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x+=win_task->pix_left; y+=win_task->pix_top; } @@ -109,7 +109,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } } - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x+w1<0) w1=-x; if (x+w2>win_task->pix_right+1) w2=win_task->pix_right+1-x; @@ -165,7 +165,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) case ROPB_MONO: color_mask=gr.to_8_colors[color.c0.color]; if (img->flags&DCF_NO_TRANSPARENTS) { - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) win_z_buf_ptr=NULL; else { win_z_num=win_task->win_z_num; @@ -273,7 +273,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) } } else { k=h1*img->width_internal; - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) { for (j=h1;jbody[k+i]) @@ -318,7 +318,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) break; case ROPB_EQU: if (img->flags&DCF_NO_TRANSPARENTS) { - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) win_z_buf_ptr=NULL; else { win_z_num=win_task->win_z_num; @@ -423,7 +423,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) } else { here1a: k=h1*img->width_internal; - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) { for (j=h1;jbody[k+i]; @@ -477,7 +477,7 @@ here1a: break; case ROPB_XOR: if (img->flags&DCF_NO_TRANSPARENTS) { - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) win_z_buf_ptr=NULL; else { win_z_num=win_task->win_z_num; @@ -625,7 +625,7 @@ public CDC *DCExt(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2, CTask *win_task; if (x1>x2) SwapI64(&x1,&x2); if (y1>y2) SwapI64(&y1,&y2); - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x1+=win_task->pix_left+win_task->scroll_x; y1+=win_task->pix_top +win_task->scroll_y; @@ -648,7 +648,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) CColorROPU32 color,c; CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->scroll_x; y+=win_task->scroll_y; @@ -665,7 +665,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) w2=FONT_WIDTH; h2=FONT_HEIGHT; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x+=win_task->pix_left; y+=win_task->pix_top; } @@ -676,7 +676,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } } - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x+w1<0) w1=-x; if (x+w2>win_task->pix_right+1) w2=win_task->pix_right+1-x; @@ -729,7 +729,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) color_mask=gr.to_8_colors[color.c0.color]; k1=x+w1; kk1=(h1+y)*dc->width_internal+k1; - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) { if (leading_pixels) { dst=dc->body+kk1&~7; src=font_ptr; @@ -937,7 +937,7 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h) Bool dither,probability_dither; CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->scroll_x; y+=win_task->scroll_y; @@ -954,7 +954,7 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h) w2=w; h2=h; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x+=win_task->pix_left; y+=win_task->pix_top; } @@ -968,7 +968,7 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h) dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } } - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x+w1<0) w1=-x; if (x+w2>win_task->pix_right+1) w2=win_task->pix_right+1-x; @@ -1028,7 +1028,7 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h) } res+=dc->collision_cnt; } else { - if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + if (!(dc->flags & DCF_SCRN_BITMAP) || dc->flags&DCF_ON_TOP) win_z_buf_ptr=NULL; else { win_z_num=win_task->win_z_num; @@ -1380,7 +1380,7 @@ I64 GrRayLenMinus(CDC *dc,I64 x,I64 y) Bool not_color=ToBool(dc->flags&DCF_FILL_NOT_COLOR); CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->scroll_x; y+=win_task->scroll_y; @@ -1389,7 +1389,7 @@ I64 GrRayLenMinus(CDC *dc,I64 x,I64 y) y3=y; if (x3<0 || y3<0) goto gr_done; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x3+=win_task->pix_left; y3+=win_task->pix_top; if (!(0<=x3<=win_task->pix_right) || !(0<=y3<=win_task->pix_bottom) || @@ -1404,7 +1404,7 @@ I64 GrRayLenMinus(CDC *dc,I64 x,I64 y) while (TRUE) { x3=x; if (x3&(FONT_WIDTH-1)==FONT_WIDTH-1) { - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x3<0) break; x3+=win_task->pix_left; if (!(0<=x3<=win_task->pix_right) || x3>=dc->width || @@ -1413,7 +1413,7 @@ I64 GrRayLenMinus(CDC *dc,I64 x,I64 y) } else if (!(0<=x3width)) break; - } else if (dc->flags & DCF_SCREEN_BITMAP) + } else if (dc->flags & DCF_SCRN_BITMAP) x3+=win_task->pix_left; dst=dst2+x3; c=*dst; @@ -1447,7 +1447,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) I32 *db2; CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->scroll_x; y+=win_task->scroll_y; @@ -1458,7 +1458,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) y3=y; if (x3<0 || y3<0) goto gr_done; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x3+=win_task->pix_left; y3+=win_task->pix_top; if (!(0<=x3<=win_task->pix_right) || !(0<=y3<=win_task->pix_bottom) || @@ -1487,7 +1487,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) while (TRUE) { x3=x; if (!(x3&(FONT_WIDTH-1))) { - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x3<0) break; x3+=win_task->pix_left; if (!(0<=x3<=win_task->pix_right) || x3>=dc->width || @@ -1497,7 +1497,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) if (!(0<=x3width)) break; } - } else if (dc->flags & DCF_SCREEN_BITMAP) + } else if (dc->flags & DCF_SCRN_BITMAP) x3+=win_task->pix_left; dst=dst2+x3; @@ -1558,7 +1558,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) } else break; } - if (dc->flags & DCF_SCREEN_BITMAP) + if (dc->flags & DCF_SCRN_BITMAP) *x1=x-1-win_task->scroll_x; else *x1=x-1; @@ -1566,7 +1566,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) while (TRUE) { x3=x; if (x3&(FONT_WIDTH-1)==FONT_WIDTH-1) { - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { if (x3<0) break; x3+=win_task->pix_left; if (!(0<=x3<=win_task->pix_right) || x3>=dc->width || @@ -1575,7 +1575,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) } else if (!(0<=x3width)) break; - } else if (dc->flags & DCF_SCREEN_BITMAP) + } else if (dc->flags & DCF_SCRN_BITMAP) x3+=win_task->pix_left; dst=dst2+x3; @@ -1656,7 +1656,7 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) return GrRect(dc,x1,y,x2-x1+1,1); } - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x1+=win_task->scroll_x; x2+=win_task->scroll_x; @@ -1685,7 +1685,7 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) } else i=0; j=0; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { x1+=win_task->pix_left; x2+=win_task->pix_left; if (x1>win_task->pix_right) @@ -1731,7 +1731,7 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) if (dc->flags & DCF_DONT_DRAW) goto gr_done; - if (!(dc->flags & DCF_SCREEN_BITMAP) || + if (!(dc->flags & DCF_SCRN_BITMAP) || win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x1,y)) char_clear=TRUE; @@ -1799,7 +1799,7 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) db++; z+=dz; if (!(x1&(FONT_WIDTH-1)) && x1<=x2) { - if (!(dc->flags & DCF_SCREEN_BITMAP)|| + if (!(dc->flags & DCF_SCRN_BITMAP)|| win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x1,y)) char_clear=TRUE; @@ -1827,7 +1827,7 @@ public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0) return GrRect(dc,x,y1,1,y2-y1+1); } - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x +=win_task->scroll_x; y1+=win_task->scroll_y; @@ -1856,7 +1856,7 @@ public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0) } else i=0; j=0; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { y1+=win_task->pix_top; y2+=win_task->pix_top; if (y1>win_task->pix_bottom) @@ -1902,7 +1902,7 @@ public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0) if (dc->flags & DCF_DONT_DRAW) goto gr_done; - if (!(dc->flags & DCF_SCREEN_BITMAP) || + if (!(dc->flags & DCF_SCRN_BITMAP) || win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x,y1)) char_clear=TRUE; @@ -1970,7 +1970,7 @@ public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0) db+=dc->width_internal; z+=dz; if (!(y1&(FONT_HEIGHT-1)) && y1<=y2) { - if (!(dc->flags & DCF_SCREEN_BITMAP)|| + if (!(dc->flags & DCF_SCRN_BITMAP)|| win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x,y1)) char_clear=TRUE; diff --git a/Adam/Gr/GrDC.HC b/Adam/Gr/GrDC.HC index 584eeef..e80e096 100644 --- a/Adam/Gr/GrDC.HC +++ b/Adam/Gr/GrDC.HC @@ -373,13 +373,13 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL) return res; } -#help_index "Graphics/GRA Files" -#help_file "::/Doc/GRAFiles" -#help_index "Graphics/Device Contexts;Graphics/GRA Files" -public I64 GRAWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED) -{//TempleOS GRA File. +#help_index "Graphics/GR Files" +#help_file "::/Doc/GRFiles" +#help_index "Graphics/Device Contexts;Graphics/GR Files" +public I64 GRWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED) +{//TempleOS GR File. I64 size; - U8 *st=DftExt(filename,"GRA.Z"), + U8 *st=DftExt(filename,"GR.Z"), *src=DCSave(dc,&size,dcsf_flags); FileWrite(st,src,size); Free(st); @@ -387,10 +387,10 @@ public I64 GRAWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED) return size; } -public CDC *GRARead(U8 *filename,CTask *task=NULL) -{//TempleOS GRA File. +public CDC *GRRead(U8 *filename,CTask *task=NULL) +{//TempleOS GR File. CDC *dc=NULL; - U8 *st=DftExt(filename,"GRA.Z"), + U8 *st=DftExt(filename,"GR.Z"), *src=FileRead(st); if (src) dc=DCLoad(src,,task); @@ -399,27 +399,27 @@ public CDC *GRARead(U8 *filename,CTask *task=NULL) return dc; } -#help_index "Graphics/Sprite;Graphics/GRA Files;DolDoc/Output;StdOut/DolDoc" -public U0 DocGRA(CDoc *doc=NULL,U8 *filename) -{//Put a GRA file into a document as asprite. - CDC *dc=GRARead(filename); +#help_index "Graphics/Sprite;Graphics/GR Files;DolDoc/Output;StdOut/DolDoc" +public U0 DocGR(CDoc *doc=NULL,U8 *filename) +{//Put a GR file into a document as asprite. + CDC *dc=GRRead(filename); CSprite *elems=DC2Sprite(dc); DocSprite(doc,elems); Free(elems); DCDel(dc); } -#help_index "Graphics/Device Contexts;Graphics/Screen" -public CDC *DCScreenCapture(Bool include_zoom=TRUE,CTask *task=NULL) -{//Capture screen to a device context. +#help_index "Graphics/Device Contexts;Graphics/Scrn" +public CDC *DCScrnCapture(Bool include_zoom=TRUE,CTask *task=NULL) +{//Capture scrn to a device context. CDC *dc; U8 *dst; - WinMgrSync(2,TRUE); + Refresh(2,TRUE); if (include_zoom) - dc=DCCopy(gr.screen_image,task); + dc=DCCopy(gr.scrn_image,task); else dc=DCCopy(gr.dc1,task); - dc->flags&=~DCF_SCREEN_BITMAP; + dc->flags&=~DCF_SCRN_BITMAP; dst=MAlloc(dc->width_internal*dc->height,task); //Pick background color that never occurs. COLOR_INVALID GrBitMap4ToBitMap8(dst,dc->body, @@ -429,12 +429,12 @@ public CDC *DCScreenCapture(Bool include_zoom=TRUE,CTask *task=NULL) return dc; } -#help_index "Graphics/GRA Files;Graphics/Screen" -public I64 GRAScreenCapture(U8 *filename,Bool include_zoom=TRUE) -{//Capture screen to a TempleOS GRA File. +#help_index "Graphics/GR Files;Graphics/Scrn" +public I64 GRScrnCapture(U8 *filename,Bool include_zoom=TRUE) +{//Capture scrn to a TempleOS GR File. I64 size; - CDC *dc=DCScreenCapture(include_zoom); - size=GRAWrite(filename,dc,DCSF_COMPRESSED|DCSF_PALETTE_GET); + CDC *dc=DCScrnCapture(include_zoom); + size=GRWrite(filename,dc,DCSF_COMPRESSED|DCSF_PALETTE_GET); DCDel(dc); return size; } diff --git a/Adam/Gr/GrEnd.HC b/Adam/Gr/GrEnd.HC index 8673094..1cbfe83 100644 --- a/Adam/Gr/GrEnd.HC +++ b/Adam/Gr/GrEnd.HC @@ -1,4 +1,4 @@ -#help_index "Graphics/Screen" +#help_index "Graphics/Scrn" U0 CtrlAltZ(I64 sc) { @@ -10,9 +10,9 @@ U0 CtrlAltZ(I64 sc) CtrlAltCBSet('Z',&CtrlAltZ,"Cmd /Zoom In", "Cmd /Zoom Out"); -U0 Screen2Clipboard(I64) +U0 Scrn2Clipboard(I64) { - CDC *dc=DCScreenCapture; + CDC *dc=DCScrnCapture; U8 *elems=DC2Sprite(dc); Bool unlock_doc=DocLock(sys_clipboard_doc); ClipboardDel; @@ -24,6 +24,6 @@ U0 Screen2Clipboard(I64) } U0 CtrlAltS(I64) { - Spawn(&Screen2Clipboard); + Spawn(&Scrn2Clipboard); } -CtrlAltCBSet('S',&CtrlAltS,"Cmd /Screen Shot to Clipboard"); +CtrlAltCBSet('S',&CtrlAltS,"Cmd /Scrn Shot to Clipboard"); diff --git a/Adam/Gr/GrGlbls.HC b/Adam/Gr/GrGlbls.HC index 733fbe0..19d5dfe 100644 --- a/Adam/Gr/GrGlbls.HC +++ b/Adam/Gr/GrGlbls.HC @@ -3,7 +3,7 @@ public class CGrGlbls { I64 *to_8_bits,*to_8_colors; - CDC *screen_image, //Read only. + CDC *scrn_image, //Read only. *dc, //Persistent *dc1, *dc2, //Updated every refresh @@ -19,7 +19,7 @@ public class CGrGlbls I64 highest_uncovered; U16 *vga_text_cache; I64 pan_text_x,pan_text_y; //[-7,7] - U0 (*fp_final_screen_update)(CDC *dc);//Mouse cursor is handled here. + U0 (*fp_final_scrn_update)(CDC *dc);//Mouse cursor is handled here. U0 (*fp_wall_paper)(CTask *task); U0 (*fp_draw_input_ptr)(CDC *dc,I64 x,I64 y); U0 (*fp_draw_grab_input_ptr)(CDC *dc,I64 x,I64 y,Bool closed); @@ -33,9 +33,9 @@ public class CGrGlbls I8 circle_lo[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES], circle_hi[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES]; - #define GR_MAX_SCREEN_ZOOM 8 - U8 *screen_zoom_tables[GR_MAX_SCREEN_ZOOM+1]; - I64 screen_zoom,sx,sy; + #define GR_MAX_SCRN_ZOOM 8 + U8 *scrn_zoom_tables[GR_MAX_SCRN_ZOOM+1]; + I64 scrn_zoom,sx,sy; //When zoomed, this keeps the mouse centered. Bool continuous_scroll, diff --git a/Adam/Gr/GrInitB.HC b/Adam/Gr/GrInitB.HC index 492bc26..0184703 100644 --- a/Adam/Gr/GrInitB.HC +++ b/Adam/Gr/GrInitB.HC @@ -1,4 +1,4 @@ -#help_index "Graphics/Screen" +#help_index "Graphics/Scrn" U0 GrSetUpTables() { @@ -75,10 +75,10 @@ U0 GrSetUpTables() OutU8(VGAP_DATA,0x0F); //Virtual Box crashes on the following for some reason. // MemSet(text.vga_alias,0,GR_HEIGHT*GR_WIDTH>>3); - MemSet(gr.screen_image->body,0,GR_WIDTH*GR_HEIGHT>>1); + MemSet(gr.scrn_image->body,0,GR_WIDTH*GR_HEIGHT>>1); } - for (i=1;i<=GR_MAX_SCREEN_ZOOM;i++) { - dst=gr.screen_zoom_tables[i]=MAlloc(256*i); + for (i=1;i<=GR_MAX_SCRN_ZOOM;i++) { + dst=gr.scrn_zoom_tables[i]=MAlloc(256*i); for (j=0;j<256;j++) { m=0; for (k=0;k<8;k++) { @@ -93,7 +93,7 @@ U0 GrSetUpTables() } } -#help_index "Graphics/Screen;Windows" +#help_index "Graphics/Scrn;Windows" U0 WinZBufFill(CTask *task) {//Not public @@ -175,7 +175,7 @@ U0 GrInit2() MemSet(&gr,0,sizeof(CGrGlbls)); gr.sprite_hash=HashTableNew(512); HashDefineLstAdd("ST_SPRITE_ELEM_CODES",SPHT_ELEM_CODE,gr.sprite_hash); - gr.screen_zoom=1; + gr.scrn_zoom=1; PaletteSetStd; fp_set_std_palette=&PaletteSetStd; @@ -191,19 +191,19 @@ U0 GrInit2() gr.win_z_buf=MAlloc(TEXT_ROWS*TEXT_COLS*sizeof(U16)); gr.dc2=DCNew(GR_WIDTH,GR_HEIGHT); - gr.dc2->flags|=DCF_SCREEN_BITMAP; + gr.dc2->flags|=DCF_SCRN_BITMAP; gr.dc_cache=DCNew(GR_WIDTH,GR_HEIGHT); gr.dc=DCNew(GR_WIDTH,GR_HEIGHT); - gr.dc->flags|=DCF_SCREEN_BITMAP|DCF_ON_TOP; + gr.dc->flags|=DCF_SCRN_BITMAP|DCF_ON_TOP; DCFill; gr.dc1=DCNew(GR_WIDTH,GR_HEIGHT); - gr.dc1->flags|=DCF_SCREEN_BITMAP; + gr.dc1->flags|=DCF_SCRN_BITMAP; - gr.screen_image=DCNew(GR_WIDTH,GR_HEIGHT); //4-bit + gr.scrn_image=DCNew(GR_WIDTH,GR_HEIGHT); //4-bit gr.zoomed_dc =DCNew(GR_WIDTH,GR_HEIGHT); //4-bit - gr.zoomed_dc->flags|=DCF_SCREEN_BITMAP; + gr.zoomed_dc->flags|=DCF_SCRN_BITMAP; } GrInit2; diff --git a/Adam/Gr/GrMath.HC b/Adam/Gr/GrMath.HC index d5f5c17..267884e 100644 --- a/Adam/Gr/GrMath.HC +++ b/Adam/Gr/GrMath.HC @@ -277,8 +277,8 @@ public U0 DCReflect(CDC *dc,I64 *_x,I64 *_y,I64 *_z) } #help_index "Graphics/Math" -#define SCALE1 24 -#define SCALE2 8 +#define GR_SCALE1_BITS 24 +#define GR_SCALE2_BITS 8 public Bool Circle(U8 *aux_data,I64 cx,I64 cy,I64 cz,I64 radius, Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) @@ -288,13 +288,13 @@ public Bool Circle(U8 *aux_data,I64 cx,I64 cy,I64 cz,I64 radius, F64 t; if (radius<=0||!step) return TRUE; t=1.0/radius; - c=1<>SCALE2,cy+y>>SCALE2,cz)) + if (!(*fp_plot)(aux_data,cx+x>>GR_SCALE2_BITS,cy+y>>GR_SCALE2_BITS,cz)) return FALSE; for (j=0;j>SCALE1; - y1=(s2*x+c*y)>>SCALE1; + x1=(c*x+s1*y)>>GR_SCALE1_BITS; + y1=(s2*x+c*y)>>GR_SCALE1_BITS; x=x1; y=y1; } } @@ -336,18 +336,18 @@ public Bool Ellipse(U8 *aux_data,I64 cx,I64 cy,I64 cz, len=Ceil(len_radians*y_radius); } - c=1<>SCALE1; - y=(s22*x2+c2*y1)>>SCALE1; + x=(c2*x2+s12*y1)>>GR_SCALE1_BITS; + y=(s22*x2+c2*y1)>>GR_SCALE1_BITS; for (i=0;i<=len;i+=step) { - if ((x>>SCALE2!=_x || y>>SCALE2!=_y || first) && - !(*fp_plot)(aux_data,cx+x>>SCALE2,cy+y>>SCALE2,cz)) + if ((x>>GR_SCALE2_BITS!=_x || y>>GR_SCALE2_BITS!=_y || first) && + !(*fp_plot)(aux_data,cx+x>>GR_SCALE2_BITS,cy+y>>GR_SCALE2_BITS,cz)) return FALSE; - _x=x>>SCALE2; _y=y>>SCALE2; first=FALSE; + _x=x>>GR_SCALE2_BITS; _y=y>>GR_SCALE2_BITS; first=FALSE; for (j=0;j>SCALE1; - y1=(s2*x2+c*y2)>>SCALE1; + x1=(c*x2+s1*y2)>>GR_SCALE1_BITS; + y1=(s2*x2+c*y2)>>GR_SCALE1_BITS; x2=x1; y2=y1; y1=y1*y_radius/x_radius; - x=(c2*x1+s12*y1)>>SCALE1; - y=(s22*x1+c2*y1)>>SCALE1; + x=(c2*x1+s12*y1)>>GR_SCALE1_BITS; + y=(s22*x1+c2*y1)>>GR_SCALE1_BITS; } } return TRUE; @@ -401,13 +401,13 @@ public Bool RegPoly(U8 *aux_data,I64 cx,I64 cy,I64 cz, angle_step=2*ã/sides; n=len_radians*sides/(2*ã); - s1=1<>SCALE1; - y=(s22*x2+c2*y1)>>SCALE1; + x=(c2*x2+s12*y1)>>GR_SCALE1_BITS; + y=(s22*x2+c2*y1)>>GR_SCALE1_BITS; - xx1=cx+x>>SCALE2; - yy1=cy+y>>SCALE2; + xx1=cx+x>>GR_SCALE2_BITS; + yy1=cy+y>>GR_SCALE2_BITS; for (i=0;i>SCALE1; - y1=(s2*x2+c*y2)>>SCALE1; + x1=(c*x2+s1*y2)>>GR_SCALE1_BITS; + y1=(s2*x2+c*y2)>>GR_SCALE1_BITS; x2=x1; y2=y1; y1=y1*y_radius/x_radius; - x=(c2*x1+s12*y1)>>SCALE1; - y=(s22*x1+c2*y1)>>SCALE1; - xx2=cx+x>>SCALE2; - yy2=cy+y>>SCALE2; + x=(c2*x1+s12*y1)>>GR_SCALE1_BITS; + y=(s22*x1+c2*y1)>>GR_SCALE1_BITS; + xx2=cx+x>>GR_SCALE2_BITS; + yy2=cy+y>>GR_SCALE2_BITS; if (!Line(aux_data,xx1,yy1,cz,xx2,yy2,cz,fp_plot,step)) return FALSE; xx1=xx2; yy1=yy2; diff --git a/Adam/Gr/GrPrimatives.HC b/Adam/Gr/GrPrimatives.HC index acc1f54..bc3dce5 100644 --- a/Adam/Gr/GrPrimatives.HC +++ b/Adam/Gr/GrPrimatives.HC @@ -2,13 +2,13 @@ public Bool GrClamp(CDC *dc=gr.dc,I64 *left,I64 *top,I64 *right,I64 *bottom, I64 width=0,I64 height=0) -{//Returns screen, not window coordinates. +{//Returns scrn, not window coordinates. CTask *win_task; *left=0; *top=0; *right=dc->width-1; *bottom=dc->height-1; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; if (GR_WIDTH-1<*right) *right=GR_WIDTH-1; @@ -32,11 +32,11 @@ public Bool GrClamp(CDC *dc=gr.dc,I64 *left,I64 *top,I64 *right,I64 *bottom, Bool DCClipLine(CDC *dc=gr.dc,I64 *x1,I64 *y1,I64 *x2,I64 *y2, I64 width=0,I64 height=0) -{//Also converts window to screen coordinates +{//Also converts window to scrn coordinates I64 left,top,right,bottom; CTask *win_task; if (GrClamp(dc,&left,&top,&right,&bottom,width,height)) { - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; *x1+=win_task->pix_left+win_task->scroll_x; *y1+=win_task->pix_top+win_task->scroll_y; @@ -60,12 +60,12 @@ public Bool GrPlot(CDC *dc=gr.dc,I64 x,I64 y) dc->color.c0.rop=ROPB_MONO; GrBlot(dc,x,y,dc->brush); dc->color=old_color; - } else if (dc->flags & DCF_SCREEN_BITMAP) { + } else if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->pix_left+win_task->scroll_x; y+=win_task->pix_top+win_task->scroll_y; if (win_task->pix_left<=x<=win_task->pix_right && - win_task->pix_top <=y<=win_task->pix_bottom && + win_task->pix_top<=y<=win_task->pix_bottom && 0<=xwidth && 0<=yheight && (win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || @@ -91,7 +91,7 @@ Bool GrPlot1(CDC *dc=gr.dc,I64 x,I64 y) else GrBlot(dc,x,y,dc->brush); dc->color=old_color; - } else if (dc->flags & DCF_SCREEN_BITMAP) { + } else if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->pix_left+win_task->scroll_x; y+=win_task->pix_top+win_task->scroll_y; @@ -110,9 +110,9 @@ Bool GrPlot1(CDC *dc=gr.dc,I64 x,I64 y) public I64 GrPeek(CDC *dc=gr.dc,I64 x,I64 y) {//2D. Clipping but no transformation. -//Returns pix color or -1 if off-screen or covered. +//Returns pix color or -1 if off-scrn or covered. CTask *win_task; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->pix_left+win_task->scroll_x; y+=win_task->pix_top+win_task->scroll_y; @@ -512,7 +512,7 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z) } } if (record) { - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; x+=win_task->pix_left+win_task->scroll_x; y+=win_task->pix_top+win_task->scroll_y; @@ -550,7 +550,7 @@ gr_done: Bool GrLinePlot0(CDC *dc,I64 x,I64 y,I64 z) {//This is a callback. CTask *win_task=dc->win_task; - if (!(dc->flags & DCF_SCREEN_BITMAP) || + if (!(dc->flags & DCF_SCRN_BITMAP) || win_task->next_task==sys_winmgr_task || dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x,y)) { @@ -1204,7 +1204,7 @@ normal_image: x1+=dx1; y1+=dy1; z1+=dz1; x+=dw; } - res=1; //TODO: check off screen + res=1; //TODO: check off scrn } else res=GrBlot(dc,x1,y1,img); gr_done: @@ -1415,7 +1415,7 @@ public I64 GrFillTri0(CDC *dc=gr.dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p4) min=0; max=dc->height; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; min-=win_task->scroll_y+win_task->pix_top; max-=win_task->scroll_y+win_task->pix_top; @@ -1623,7 +1623,7 @@ public I64 GrFillTri0(CDC *dc=gr.dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p4) min=0; max=dc->width; - if (dc->flags & DCF_SCREEN_BITMAP) { + if (dc->flags & DCF_SCRN_BITMAP) { win_task=dc->win_task; min-=win_task->scroll_x+win_task->pix_left; max-=win_task->scroll_x+win_task->pix_left; diff --git a/Adam/Gr/GrScreen.HC b/Adam/Gr/GrScrn.HC similarity index 87% rename from Adam/Gr/GrScreen.HC rename to Adam/Gr/GrScrn.HC index d29e112..fe6da85 100644 --- a/Adam/Gr/GrScreen.HC +++ b/Adam/Gr/GrScrn.HC @@ -1,8 +1,8 @@ -#help_index "Graphics/Screen" +#help_index "Graphics/Scrn" U0 GrUpdateTaskODEs(CTask *task) { - sys_task_being_screen_updated=task; + sys_task_being_scrn_updated=task; try ODEsUpdate(task); catch { @@ -12,14 +12,14 @@ U0 GrUpdateTaskODEs(CTask *task) Sleep(3000); VGAFlush; } - sys_task_being_screen_updated=NULL; + sys_task_being_scrn_updated=NULL; } U0 GrUpdateTaskWin(CTask *task) -{ //Draw a win. Only core0 tasks have a win. +{ //Draw a win. Only Core0 tasks have a win. CDC *dc; CD3I64 saved_scroll; - sys_task_being_screen_updated=task; + sys_task_being_scrn_updated=task; try { if (!Bt(&task->display_flags,DISPLAYf_NO_BORDER)) TextBorder(Fs,task->win_left,task->win_right,task->win_top, @@ -52,7 +52,7 @@ U0 GrUpdateTaskWin(CTask *task) VGAFlush; } } - sys_task_being_screen_updated=NULL; + sys_task_being_scrn_updated=NULL; } U0 GrUpdateTasks() @@ -64,7 +64,7 @@ U0 GrUpdateTasks() if (Bt(&sys_semas[SYS_SEMA_UPDATE_WIN_Z_BUF],0)) WinZBufUpdate; task1=task=sys_winmgr_task; - do { //Loop through core0 tasks. + do { //Loop through Core0 tasks. if (!TaskValidate(task)) break; if (Bt(&task->display_flags,DISPLAYf_SHOW) && Bt(gr.win_uncovered_bitmap,task->win_z_num)) @@ -89,62 +89,62 @@ U0 GrUpdateTasks() winmgr.last_ode_time=winmgr.ode_time; ode_alloced_factor=LowPass1(0.1,ode_alloced_factor, Clamp(Gs->idle_factor-0.1,0.2,0.8),1/winmgr.fps); - sys_task_being_screen_updated=NULL; + sys_task_being_scrn_updated=NULL; } U0 GrFixZoomScale() { - gr.screen_zoom=ClampI64(gr.screen_zoom,1,GR_MAX_SCREEN_ZOOM); - if (gr.screen_zoom==1) { + gr.scrn_zoom=ClampI64(gr.scrn_zoom,1,GR_MAX_SCRN_ZOOM); + if (gr.scrn_zoom==1) { gr.sx=0; gr.sy=0; } else { - gr.sx=ClampI64(gr.sx,0,GR_WIDTH-GR_WIDTH/gr.screen_zoom)&~7; - gr.sy=ClampI64(gr.sy,0,GR_HEIGHT-GR_HEIGHT/gr.screen_zoom); + gr.sx=ClampI64(gr.sx,0,GR_WIDTH-GR_WIDTH/gr.scrn_zoom)&~7; + gr.sy=ClampI64(gr.sy,0,GR_HEIGHT-GR_HEIGHT/gr.scrn_zoom); } } public U0 GrScaleZoom(F64 scale) {//Multiply zoom factor larger or smaller. - F64 s=gr.screen_zoom; - gr.screen_zoom=gr.screen_zoom*scale; + F64 s=gr.scrn_zoom; + gr.scrn_zoom=gr.scrn_zoom*scale; GrFixZoomScale; - s/=gr.screen_zoom; + s/=gr.scrn_zoom; ip.scale.x*=s; ip.scale.y*=s; ip.scale.z*=s; ip.offset.x=ip.pos.x-(ip.pos.x-ip.offset.x)*s; ip.offset.y=ip.pos.y-(ip.pos.y-ip.offset.y)*s; ip.offset.z=ip.pos.z-(ip.pos.z-ip.offset.z)*s; - gr.sx=ip.pos.x-gr.zoomed_dc->width >>1/gr.screen_zoom; - gr.sy=ip.pos.y-gr.zoomed_dc->height>>1/gr.screen_zoom; + gr.sx=ip.pos.x-gr.zoomed_dc->width >>1/gr.scrn_zoom; + gr.sy=ip.pos.y-gr.zoomed_dc->height>>1/gr.scrn_zoom; GrFixZoomScale; } -U0 GrZoomInScreen() +U0 GrZoomInScrn() { GrFixZoomScale; I64 plane,row,col,k,l, - d2=gr.zoomed_dc->width>>3/gr.screen_zoom, + d2=gr.zoomed_dc->width>>3/gr.scrn_zoom, d4=gr.zoomed_dc->width_internal>>3, - d5=d4-d2*gr.screen_zoom, - d3=gr.zoomed_dc->height/gr.screen_zoom, + d5=d4-d2*gr.scrn_zoom, + d3=gr.zoomed_dc->height/gr.scrn_zoom, d6=(gr.zoomed_dc->height-d3)*gr.dc1->width_internal>>3, - d7=gr.zoomed_dc->height%gr.screen_zoom*d4; - U8 *src,*src2,*dst,*src3,*map=gr.screen_zoom_tables[gr.screen_zoom]; + d7=gr.zoomed_dc->height%gr.scrn_zoom*d4; + U8 *src,*src2,*dst,*src3,*map=gr.scrn_zoom_tables[gr.scrn_zoom]; src=gr.dc1->body+gr.sx>>3+gr.sy*gr.dc1->width_internal>>3; dst=gr.zoomed_dc->body; for (plane=1;plane<0x10;plane<<=1) { row=d3; while (row--) { - k=gr.screen_zoom; + k=gr.scrn_zoom; while (k--) { src2=src; col=d2; while (col--) { src3=&map[*src2++]; - l=gr.screen_zoom; + l=gr.scrn_zoom; while (l--) { *dst++=*src3; src3+=256; @@ -367,13 +367,13 @@ U0 GrUpdateVGAGraphics() {//Update Graphic Card I64 row,plane,d=gr.zoomed_dc->width_internal>>6; U32 *src,*vga,*dst; - if (gr.screen_zoom==1) + if (gr.scrn_zoom==1) src=gr.dc1->body; else { - GrZoomInScreen; + GrZoomInScrn; src=gr.zoomed_dc->body; } - dst=gr.screen_image->body; + dst=gr.scrn_image->body; if (LBtr(&sys_semas[SYS_SEMA_FLUSH_VGA_IMAGE],0)) { for (plane=1;plane<0x10;plane<<=1) { OutU8(VGAP_IDX,VGAR_MAP_MASK); @@ -395,8 +395,8 @@ U0 GrUpdateVGAGraphics() } } -U0 GrUpdateScreen() -{//Called by the Window Manager $LK,"HERE",A="FF:::/Adam/WinB.HC,GrUpdateScreen"$, 30 times a second. +U0 GrUpdateScrn() +{//Called by the Window Manager $LK,"HERE",A="FF:::/Adam/WinMgr.HC,GrUpdateScrn"$, 30 times a second. CDC *dc; if (!Bt(&sys_run_level,RLf_VGA)) //if text mode GrUpdateTasks; @@ -409,8 +409,8 @@ U0 GrUpdateScreen() dc=DCAlias(gr.dc2,Fs); dc->flags|=DCF_ON_TOP; - if (gr.fp_final_screen_update) - (*gr.fp_final_screen_update)(dc); + if (gr.fp_final_scrn_update) + (*gr.fp_final_scrn_update)(dc); DCDel(dc); if (!Bt(&sys_run_level,RLf_VGA)) //if text mode diff --git a/Adam/Gr/GrSpritePlot.HC b/Adam/Gr/GrSpritePlot.HC index 158476a..638392b 100644 --- a/Adam/Gr/GrSpritePlot.HC +++ b/Adam/Gr/GrSpritePlot.HC @@ -18,7 +18,7 @@ one of the most complicated. public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, Bool just_one_elem=FALSE) {//Plot a sprite into a CDC. - CSprite *tempg=elems-offset(CSprite.start); + CSprite *tmpg=elems-offset(CSprite.start); I64 i,j,k,x1,y1,z1,x2,y2, cur_sprite_elem_num=0,*old_r,*r2, old_flags=dc->flags, @@ -33,19 +33,19 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, dc->nearest_sprite_elem_num=0; dc->nearest_dist=MAX_I64; } - while (tempg->type) { + while (tmpg->type) { dc->cur_sprite_elem_num=cur_sprite_elem_num; - switch (tempg->type) { + switch (tmpg->type) { case SPT_COLOR: - dc->color=dc->color&~(COLORROP_COLORS_MASK|ROPF_DITHER)|tempg->c.color; + dc->color=dc->color&~(COLORROP_COLORS_MASK|ROPF_DITHER)|tmpg->c.color; break; case SPT_DITHER_COLOR: dc->color=dc->color&~COLORROP_COLORS_MASK| - tempg->d.dither_color.u8[0]| - tempg->d.dither_color.u8[1]<d.dither_color.u8[0]| + tmpg->d.dither_color.u8[1]<pen_width=tempg->w.width; + dc->pen_width=tmpg->w.width; DCPenWidthScale(dc); break; case SPT_TRANSFORM_ON: @@ -65,94 +65,94 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, dc->flags&=~DCF_TRANSFORMATION; break; case SPT_PT: - GrPlot3(dc,tempg->p.x1+x,tempg->p.y1+y,z); + GrPlot3(dc,tmpg->p.x1+x,tmpg->p.y1+y,z); break; case SPT_TEXT: - GrPrint3(dc,tempg->ps.x1+x,tempg->ps.y1+y,z,"%s",tempg->ps.st); + GrPrint3(dc,tmpg->ps.x1+x,tmpg->ps.y1+y,z,"%s",tmpg->ps.st); break; case SPT_TEXT_BOX: - GrTextBox3(dc,tempg->ps.x1+x,tempg->ps.y1+y,z,tempg->ps.st); + GrTextBox3(dc,tmpg->ps.x1+x,tmpg->ps.y1+y,z,tmpg->ps.st); break; case SPT_TEXT_DIAMOND: - GrTextDiamond3(dc,tempg->ps.x1+x,tempg->ps.y1+y,z,tempg->ps.st); + GrTextDiamond3(dc,tmpg->ps.x1+x,tmpg->ps.y1+y,z,tmpg->ps.st); break; case SPT_FLOOD_FILL: - GrFloodFill3(dc,tempg->p.x1+x,tempg->p.y1+y,z,FALSE); + GrFloodFill3(dc,tmpg->p.x1+x,tmpg->p.y1+y,z,FALSE); break; case SPT_FLOOD_FILL_NOT: i=dc->color; dc->color=dc->color.c0; - GrFloodFill3(dc,tempg->p.x1+x,tempg->p.y1+y,z,TRUE); + GrFloodFill3(dc,tmpg->p.x1+x,tmpg->p.y1+y,z,TRUE); dc->color=i; break; case SPT_SHIFT: - x+=tempg->p.x1; - y+=tempg->p.y1; + x+=tmpg->p.x1; + y+=tmpg->p.y1; break; case SPT_LINE: - GrLine3(dc,tempg->pp.x1+x,tempg->pp.y1+y,z, - tempg->pp.x2+x,tempg->pp.y2+y,z); + GrLine3(dc,tmpg->pp.x1+x,tmpg->pp.y1+y,z, + tmpg->pp.x2+x,tmpg->pp.y2+y,z); break; case SPT_ARROW: - GrArrow3(dc,tempg->pp.x1+x,tempg->pp.y1+y,z, - tempg->pp.x2+x,tempg->pp.y2+y,z); + GrArrow3(dc,tmpg->pp.x1+x,tmpg->pp.y1+y,z, + tmpg->pp.x2+x,tmpg->pp.y2+y,z); break; case SPT_PLANAR_SYMMETRY: - if (DCSymmetry3Set(dc,tempg->pp.x1+x,tempg->pp.y1+y,z, - tempg->pp.x2+x,tempg->pp.y2+y,z, - tempg->pp.x2+x,tempg->pp.y2+y,z+1)) + if (DCSymmetry3Set(dc,tmpg->pp.x1+x,tmpg->pp.y1+y,z, + tmpg->pp.x2+x,tmpg->pp.y2+y,z, + tmpg->pp.x2+x,tmpg->pp.y2+y,z+1)) dc->flags|=DCF_SYMMETRY; else dc->flags&=~DCF_SYMMETRY; break; case SPT_BITMAP: img=CAlloc(sizeof(CDC)); - img->width=tempg->pwhu.width; - img->width_internal=(tempg->pwhu.width+7)&~7; - img->height=tempg->pwhu.height; - img->body=&tempg->pwhu.u; + img->width=tmpg->pwhu.width; + img->width_internal=(tmpg->pwhu.width+7)&~7; + img->height=tmpg->pwhu.height; + img->body=&tmpg->pwhu.u; img->dc_signature=DCS_SIGNATURE_VAL; - GrBlot3(dc,tempg->pwhu.x1+x,tempg->pwhu.y1+y,z,img); + GrBlot3(dc,tmpg->pwhu.x1+x,tmpg->pwhu.y1+y,z,img); Free(img); break; case SPT_RECT: - GrRect3(dc,tempg->pp.x1+x,tempg->pp.y1+y,z, - tempg->pp.x2-tempg->pp.x1,tempg->pp.y2-tempg->pp.y1); + GrRect3(dc,tmpg->pp.x1+x,tmpg->pp.y1+y,z, + tmpg->pp.x2-tmpg->pp.x1,tmpg->pp.y2-tmpg->pp.y1); break; case SPT_ROTATED_RECT: - x1=tempg->ppa.x1+x; - y1=tempg->ppa.y1+y; + x1=tmpg->ppa.x1+x; + y1=tmpg->ppa.y1+y; z1=z; Mat4x4MulXYZ(dc->r,&x1,&y1,&z1); old_r=dc->r; dc->flags|=DCF_TRANSFORMATION; r2=Mat4x4IdentNew; - Mat4x4RotZ(r2,-tempg->ppa.angle); + Mat4x4RotZ(r2,-tmpg->ppa.angle); Mat4x4TranslationEqu(r2,x1,y1,z1); DCMat4x4Set(dc,Mat4x4MulMat4x4New(old_r,r2)); GrRect3(dc,0,0,0, - tempg->ppa.x2-tempg->ppa.x1,tempg->ppa.y2-tempg->ppa.y1); + tmpg->ppa.x2-tmpg->ppa.x1,tmpg->ppa.y2-tmpg->ppa.y1); Free(dc->r); Free(r2); DCMat4x4Set(dc,old_r); dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; break; case SPT_CIRCLE: - GrCircle3(dc,tempg->pr.x1+x,tempg->pr.y1+y,z,tempg->pr.radius); + GrCircle3(dc,tmpg->pr.x1+x,tmpg->pr.y1+y,z,tmpg->pr.radius); break; case SPT_ELLIPSE: - GrEllipse3(dc,tempg->pwha.x1+x,tempg->pwha.y1+y,z,tempg->pwha.width, - tempg->pwha.height,tempg->pwha.angle); + GrEllipse3(dc,tmpg->pwha.x1+x,tmpg->pwha.y1+y,z,tmpg->pwha.width, + tmpg->pwha.height,tmpg->pwha.angle); break; case SPT_POLYGON: - GrRegPoly3(dc,tempg->pwhas.x1+x,tempg->pwhas.y1+y,z,tempg->pwhas.width, - tempg->pwhas.height,tempg->pwhas.sides,tempg->pwhas.angle); + GrRegPoly3(dc,tmpg->pwhas.x1+x,tmpg->pwhas.y1+y,z,tmpg->pwhas.width, + tmpg->pwhas.height,tmpg->pwhas.sides,tmpg->pwhas.angle); break; case SPT_POLYLINE: - ptr=&tempg->nu.u; + ptr=&tmpg->nu.u; x1=ptr[0]; y1=ptr[1]; - for (i=1;inu.num;i++) { + for (i=1;inu.num;i++) { x2=ptr[i<<1]; y2=ptr[i<<1+1]; GrLine3(dc,x1+x,y1+y,z,x2+x,y2+y,z); @@ -160,10 +160,10 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, } break; case SPT_POLYPT: - x1=tempg->npu.x; - y1=tempg->npu.y; - ptr=&tempg->npu.u; - k=tempg->npu.num*3; + x1=tmpg->npu.x; + y1=tmpg->npu.y; + ptr=&tmpg->npu.u; + k=tmpg->npu.num*3; GrPlot3(dc,x1+x,y1+y,z); for (i=0;inu.num*sizeof(CD3I32)); - MemCpy(p,&tempg->nu.u,tempg->nu.num*sizeof(CD3I32)); - for (i=0;inu.num;i++,p2++) { + p2=p=MAlloc(tmpg->nu.num*sizeof(CD3I32)); + MemCpy(p,&tmpg->nu.u,tmpg->nu.num*sizeof(CD3I32)); + for (i=0;inu.num;i++,p2++) { p2->x+=x; p2->y+=y; p2->z+=z; } case SPT_BSPLINE2: - Gr2BSpline3(dc,p,tempg->nu.num,FALSE); + Gr2BSpline3(dc,p,tmpg->nu.num,FALSE); break; case SPT_BSPLINE3: - Gr3BSpline3(dc,p,tempg->nu.num,FALSE); + Gr3BSpline3(dc,p,tmpg->nu.num,FALSE); break; case SPT_BSPLINE2_CLOSED: - Gr2BSpline3(dc,p,tempg->nu.num,TRUE); + Gr2BSpline3(dc,p,tmpg->nu.num,TRUE); break; case SPT_BSPLINE3_CLOSED: - Gr3BSpline3(dc,p,tempg->nu.num,TRUE); + Gr3BSpline3(dc,p,tmpg->nu.num,TRUE); break; end: Free(p); break; case SPT_MESH: - p2=p=MAlloc(tempg->mu.vertex_cnt*sizeof(CD3I32)); - MemCpy(p,&tempg->mu.u,tempg->mu.vertex_cnt*sizeof(CD3I32)); - for (i=0;imu.vertex_cnt;i++,p2++) { + p2=p=MAlloc(tmpg->mu.vertex_cnt*sizeof(CD3I32)); + MemCpy(p,&tmpg->mu.u,tmpg->mu.vertex_cnt*sizeof(CD3I32)); + for (i=0;imu.vertex_cnt;i++,p2++) { p2->x+=x; p2->y+=y; p2->z+=z; } - Gr3Mesh(dc,tempg->mu.vertex_cnt,p,tempg->mu.tri_cnt, - (&tempg->mu.u)(U8 *)+sizeof(CD3I32)*tempg->mu.vertex_cnt); + Gr3Mesh(dc,tmpg->mu.vertex_cnt,p,tmpg->mu.tri_cnt, + (&tmpg->mu.u)(U8 *)+sizeof(CD3I32)*tmpg->mu.vertex_cnt); Free(p); break; case SPT_SHIFTABLE_MESH: if (dc->flags&DCF_TRANSFORMATION) { - dc->x+=tempg->pmu.x; - dc->y+=tempg->pmu.y; - dc->z+=tempg->pmu.z; + dc->x+=tmpg->pmu.x; + dc->y+=tmpg->pmu.y; + dc->z+=tmpg->pmu.z; x1=x; y1=y; z1=z; } else { - x1=tempg->pmu.x+x; - y1=tempg->pmu.y+y; - z1=tempg->pmu.z+z; + x1=tmpg->pmu.x+x; + y1=tmpg->pmu.y+y; + z1=tmpg->pmu.z+z; } - p2=p=MAlloc(tempg->pmu.vertex_cnt*sizeof(CD3I32)); - MemCpy(p,&tempg->pmu.u,tempg->pmu.vertex_cnt*sizeof(CD3I32)); - for (i=0;ipmu.vertex_cnt;i++,p2++) { + p2=p=MAlloc(tmpg->pmu.vertex_cnt*sizeof(CD3I32)); + MemCpy(p,&tmpg->pmu.u,tmpg->pmu.vertex_cnt*sizeof(CD3I32)); + for (i=0;ipmu.vertex_cnt;i++,p2++) { p2->x+=x1; p2->y+=y1; p2->z+=z1; } - Gr3Mesh(dc,tempg->pmu.vertex_cnt,p,tempg->pmu.tri_cnt, - (&tempg->pmu.u)(U8 *)+sizeof(CD3I32)*tempg->pmu.vertex_cnt); + Gr3Mesh(dc,tmpg->pmu.vertex_cnt,p,tmpg->pmu.tri_cnt, + (&tmpg->pmu.u)(U8 *)+sizeof(CD3I32)*tmpg->pmu.vertex_cnt); Free(p); if (dc->flags&DCF_TRANSFORMATION) { - dc->x-=tempg->pmu.x; - dc->y-=tempg->pmu.y; - dc->z-=tempg->pmu.z; + dc->x-=tmpg->pmu.x; + dc->y-=tmpg->pmu.y; + dc->z-=tmpg->pmu.z; } break; } cur_sprite_elem_num++; if (just_one_elem) break; - tempg(U8 *)+=SpriteElemSize(tempg); + tmpg(U8 *)+=SpriteElemSize(tmpg); } MemCpy(&dc->sym,&old_sym,sizeof(CGrSym)); dc->color=old_color; @@ -334,8 +334,8 @@ public U8 *SpriteInterpolate(F64 t,U8 *elems0,U8 *elems1) I32 *ptr0,*ptr1,*ptrr; CD3I32 *p0,*p1,*pr; U8 *res; - CSprite *tempg0=elems0-offset(CSprite.start), - *tempg1=elems1-offset(CSprite.start),*tempgr; + CSprite *tmpg0=elems0-offset(CSprite.start), + *tmpg1=elems1-offset(CSprite.start),*tmpgr; if (t<0.5) { i=SpriteSize(elems0), res=MAlloc(i); @@ -345,19 +345,19 @@ public U8 *SpriteInterpolate(F64 t,U8 *elems0,U8 *elems1) res=MAlloc(i); MemCpy(res,elems1,i); } - tempgr=res-offset(CSprite.start); - while (tempg0->type) { - if (tempg0->type!=tempg1->type) + tmpgr=res-offset(CSprite.start); + while (tmpg0->type) { + if (tmpg0->type!=tmpg1->type) throw('Graphics'); - switch (tempg0->type) { + switch (tmpg0->type) { case SPT_ROTATED_RECT: - tempgr->ppa.angle=(tempg0->ppa.angle*t0+tempg1->ppa.angle*t1)/GR_SCALE; + tmpgr->ppa.angle=(tmpg0->ppa.angle*t0+tmpg1->ppa.angle*t1)/GR_SCALE; case SPT_RECT: case SPT_LINE: case SPT_ARROW: case SPT_PLANAR_SYMMETRY: - tempgr->pp.x2=(tempg0->pp.x2*t0+tempg1->pp.x2*t1)>>32; - tempgr->pp.y2=(tempg0->pp.y2*t0+tempg1->pp.y2*t1)>>32; + tmpgr->pp.x2=(tmpg0->pp.x2*t0+tmpg1->pp.x2*t1)>>32; + tmpgr->pp.y2=(tmpg0->pp.y2*t0+tmpg1->pp.y2*t1)>>32; case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: @@ -365,75 +365,75 @@ public U8 *SpriteInterpolate(F64 t,U8 *elems0,U8 *elems1) case SPT_FLOOD_FILL: case SPT_FLOOD_FILL_NOT: case SPT_SHIFT: - tempgr->p.x1=(tempg0->p.x1*t0+tempg1->p.x1*t1)>>32; - tempgr->p.y1=(tempg0->p.y1*t0+tempg1->p.y1*t1)>>32; + tmpgr->p.x1=(tmpg0->p.x1*t0+tmpg1->p.x1*t1)>>32; + tmpgr->p.y1=(tmpg0->p.y1*t0+tmpg1->p.y1*t1)>>32; break; case SPT_CIRCLE: - tempgr->pr.radius=(tempg0->pr.radius*t0+tempg1->pr.radius*t1)>>32; - tempgr->pr.x1=(tempg0->pr.x1*t0+tempg1->pr.x1*t1)>>32; - tempgr->pr.y1=(tempg0->pr.y1*t0+tempg1->pr.y1*t1)>>32; + tmpgr->pr.radius=(tmpg0->pr.radius*t0+tmpg1->pr.radius*t1)>>32; + tmpgr->pr.x1=(tmpg0->pr.x1*t0+tmpg1->pr.x1*t1)>>32; + tmpgr->pr.y1=(tmpg0->pr.y1*t0+tmpg1->pr.y1*t1)>>32; break; case SPT_ELLIPSE: case SPT_POLYGON: - tempgr->pwha.x1=(tempg0->pwha.x1*t0+tempg1->pwha.x1*t1)>>32; - tempgr->pwha.y1=(tempg0->pwha.y1*t0+tempg1->pwha.y1*t1)>>32; - tempgr->pwha.width =(tempg0->pwha.width *t0+tempg1->pwha.width*t1)>>32; - tempgr->pwha.height=(tempg0->pwha.height*t0+tempg1->pwha.height*t1)>>32; + tmpgr->pwha.x1=(tmpg0->pwha.x1*t0+tmpg1->pwha.x1*t1)>>32; + tmpgr->pwha.y1=(tmpg0->pwha.y1*t0+tmpg1->pwha.y1*t1)>>32; + tmpgr->pwha.width =(tmpg0->pwha.width *t0+tmpg1->pwha.width*t1)>>32; + tmpgr->pwha.height=(tmpg0->pwha.height*t0+tmpg1->pwha.height*t1)>>32; break; case SPT_BITMAP: - tempgr->pwhu.x1=(tempg0->pwhu.x1*t0+tempg1->pwhu.x1*t1)>>32; - tempgr->pwhu.y1=(tempg0->pwhu.y1*t0+tempg1->pwhu.y1*t1)>>32; + tmpgr->pwhu.x1=(tmpg0->pwhu.x1*t0+tmpg1->pwhu.x1*t1)>>32; + tmpgr->pwhu.y1=(tmpg0->pwhu.y1*t0+tmpg1->pwhu.y1*t1)>>32; break; case SPT_POLYLINE: - ptr0=&tempg0->nu.u; - ptr1=&tempg1->nu.u; - ptrr=&tempgr->nu.u; - for (i=0;inu.num;i++) { + ptr0=&tmpg0->nu.u; + ptr1=&tmpg1->nu.u; + ptrr=&tmpgr->nu.u; + for (i=0;inu.num;i++) { ptrr[i<<1]=(ptr0[i<<1]*t0+ptr1[i<<1]*t1)>>32; ptrr[i<<1+1]=(ptr0[i<<1+1]*t0+ptr1[i<<1+1]*t1)>>32; } break; case SPT_POLYPT: - tempgr->npu.x=(tempg0->npu.x*t0+tempg1->npu.x*t1)>>32; - tempgr->npu.y=(tempg0->npu.y*t0+tempg1->npu.y*t1)>>32; + tmpgr->npu.x=(tmpg0->npu.x*t0+tmpg1->npu.x*t1)>>32; + tmpgr->npu.y=(tmpg0->npu.y*t0+tmpg1->npu.y*t1)>>32; break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - p0=&tempg0->nu.u; - p1=&tempg1->nu.u; - pr=&tempgr->nu.u; - for (i=0;inu.num;i++) { + p0=&tmpg0->nu.u; + p1=&tmpg1->nu.u; + pr=&tmpgr->nu.u; + for (i=0;inu.num;i++) { pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; } break; case SPT_MESH: - p0=&tempg0->mu.u; - p1=&tempg1->mu.u; - pr=&tempgr->mu.u; - for (i=0;imu.vertex_cnt;i++) { + p0=&tmpg0->mu.u; + p1=&tmpg1->mu.u; + pr=&tmpgr->mu.u; + for (i=0;imu.vertex_cnt;i++) { pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; } break; case SPT_SHIFTABLE_MESH: - p0=&tempg0->pmu.u; - p1=&tempg1->pmu.u; - pr=&tempgr->pmu.u; - for (i=0;ipmu.vertex_cnt;i++) { + p0=&tmpg0->pmu.u; + p1=&tmpg1->pmu.u; + pr=&tmpgr->pmu.u; + for (i=0;ipmu.vertex_cnt;i++) { pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; } break; } - tempg0(U8 *)+=SpriteElemSize(tempg0); - tempg1(U8 *)+=SpriteElemSize(tempg1); - tempgr(U8 *)+=SpriteElemSize(tempgr); + tmpg0(U8 *)+=SpriteElemSize(tmpg0); + tmpg1(U8 *)+=SpriteElemSize(tmpg1); + tmpgr(U8 *)+=SpriteElemSize(tmpgr); } return res; } @@ -446,26 +446,26 @@ public CDocEntry *DocSprite(CDoc *doc=NULL,U8 *elems,U8 *fmt=NULL) U8 *st; Bool unlock; CDocEntry *doc_e; - CDocBin *tempb; + CDocBin *tmpb; if (!doc && !(doc=DocPut)) return NULL; unlock=DocLock(doc); size=SpriteSize(elems); - tempb=CAlloc(sizeof(CDocBin),doc->mem_task); - tempb->size=size; - tempb->data=MAlloc(size,doc->mem_task); - MemCpy(tempb->data,elems,size); - tempb->num=doc->cur_bin_num; - tempb->use_cnt=1; - QueIns(tempb,doc->bin_head.last); + tmpb=CAlloc(sizeof(CDocBin),doc->mem_task); + tmpb->size=size; + tmpb->data=MAlloc(size,doc->mem_task); + MemCpy(tmpb->data,elems,size); + tmpb->num=doc->cur_bin_num; + tmpb->use_cnt=1; + QueIns(tmpb,doc->bin_head.last); if (fmt) st=MStrPrint(fmt,doc->cur_bin_num++); else st=MStrPrint("$$SP,\"\",BI=%d$$",doc->cur_bin_num++); doc_e=DocPrint(doc,"%s",st); Free(st); - doc_e->bin_data=tempb; + doc_e->bin_data=tmpb; if (doc_e && doc_e->de_flags&DOCEF_TAG && doc_e->tag && *doc_e->tag) - tempb->tag=StrNew(doc_e->tag,doc->mem_task); + tmpb->tag=StrNew(doc_e->tag,doc->mem_task); if (unlock) DocUnlock(doc); return doc_e; diff --git a/Adam/Gr/MakeGr.HC b/Adam/Gr/MakeGr.HC index 2332f06..2332a1d 100644 --- a/Adam/Gr/MakeGr.HC +++ b/Adam/Gr/MakeGr.HC @@ -10,14 +10,14 @@ Cd(__DIR__);; #include "GrDC" #include "GrInitB" #include "GrMath" -#include "GrScreen" +#include "GrScrn" #include "GrBitMap" #include "GrPrimatives" #include "GrComposites" -#define GE_ABORT (-1) -#define GE_EXIT 0 -#define GE_CONT 1 +#define SPE_ABORT (-1) +#define SPE_EXIT 0 +#define SPE_CONT 1 #include "SpriteNew" #include "GrSpritePlot" #include "SpriteMesh" diff --git a/Adam/Gr/SpriteBitMap.HC b/Adam/Gr/SpriteBitMap.HC index 2aab312..eaeffab 100644 --- a/Adam/Gr/SpriteBitMap.HC +++ b/Adam/Gr/SpriteBitMap.HC @@ -1,33 +1,33 @@ #help_index "Graphics/Sprite;Sprites" -#define GBM_EXIT 0 -#define GBM_MAIN_MENU 1 -#define GBM_COLOR 2 -#define GBM_DITHER_COLOR 3 -#define GBM_WIDTH 4 -#define GBM_PT 5 -#define GBM_LINE 6 -#define GBM_ARROW 7 -#define GBM_RECT 8 -#define GBM_CIRCLE 9 -#define GBM_TEXT 10 -#define GBM_TEXT_BOX 11 -#define GBM_TEXT_DIAMOND 12 -#define GBM_FLOOD_FILL 13 -#define GBM_FLOOD_FILL_NOT 14 -#define GBM_POLYLINE 15 -#define GBM_POLYPT 16 -#define GBM_COPY 17 -#define GBM_DELETE 18 -#define GBM_PASTE 19 -#define GBM_PASTE_TRANSPARENT 20 -#define GBM_FIND_AND_REPLACE 21 -#define GBM_TRIM_TO_EXTENTS 22 -#define GBM_ADD_OUTLINE 23 -#define GBM_ETCH 24 -#define GBM_UNDO 25 -#define GBM_SAVE_BMP 26 -#define GBM_SAVE_GRA 27 +#define SPBM_EXIT 0 +#define SPBM_MAIN_MENU 1 +#define SPBM_COLOR 2 +#define SPBM_DITHER_COLOR 3 +#define SPBM_WIDTH 4 +#define SPBM_PT 5 +#define SPBM_LINE 6 +#define SPBM_ARROW 7 +#define SPBM_RECT 8 +#define SPBM_CIRCLE 9 +#define SPBM_TEXT 10 +#define SPBM_TEXT_BOX 11 +#define SPBM_TEXT_DIAMOND 12 +#define SPBM_FLOOD_FILL 13 +#define SPBM_FLOOD_FILL_NOT 14 +#define SPBM_POLYLINE 15 +#define SPBM_POLYPT 16 +#define SPBM_COPY 17 +#define SPBM_DELETE 18 +#define SPBM_PASTE 19 +#define SPBM_PASTE_TRANSPARENT 20 +#define SPBM_FIND_AND_REPLACE 21 +#define SPBM_TRIM_TO_EXTENTS 22 +#define SPBM_ADD_OUTLINE 23 +#define SPBM_ETCH 24 +#define SPBM_UNDO 25 +#define SPBM_SAVE_BMP 26 +#define SPBM_SAVE_GRA 27 U0 GrInit4() { @@ -36,7 +36,7 @@ U0 GrInit4() "Rect\0Circle\0Text\0Text Box\0Text Diamond\0Flood Fill\0" "Flood Fill Not Color\0PolyLine\0PolyPoint\0Copy\0Delete\0Paste\0" "Paste Transparent\0Find and Replace\0Trim to Extents\0Add Outline\0" - "Etch\0Undo\0Save BMP\0Save GRA\0"); + "Etch\0Undo\0Save BMP\0Save GR\0"); } GrInit4; @@ -56,34 +56,34 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width) } DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite BitMap Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteBitMap.DD.Z\"$$\n" - "\n$$LTBLUE$$$$MU-UL,\"Color %s\",LE=GBM_COLOR$$\n" - "$$MU-UL,\"Dither Color %s\",LE=GBM_DITHER_COLOR$$\n" - "$$MU-UL,\"Width %d\",LE=GBM_WIDTH$$\n" - "$$MU-UL,\"Find & Replace Color\",LE=GBM_FIND_AND_REPLACE$$\n" - "$$MU-UL,\"Trim to Extents\",LE=GBM_TRIM_TO_EXTENTS$$\n" - "$$MU-UL,\"Add Outline\",LE=GBM_ADD_OUTLINE$$\n" - "$$MU-UL,\"Etch\",LE=GBM_ETCH$$\n" - "\n$$MU-UL,\"Point\",LE=GBM_PT$$\n" - "$$MU-UL,\"Line\",LE=GBM_LINE$$\n" - "$$MU-UL,\"Arrow\",LE=GBM_ARROW$$\n" - "$$MU-UL,\"Rect\",LE=GBM_RECT$$\n" - "$$MU-UL,\"Circle\",LE=GBM_CIRCLE$$\n" - "$$MU-UL,\"Text\",LE=GBM_TEXT$$\n" - "$$MU-UL,\"Text Box\",LE=GBM_TEXT_BOX$$\n" - "$$MU-UL,\"Text Diamond\",LE=GBM_TEXT_DIAMOND$$\n" - "$$MU-UL,\"Flood Fill\",LE=GBM_FLOOD_FILL$$\n" - "$$MU-UL,\"Flood Fill Not Color\",LE=GBM_FLOOD_FILL_NOT$$\n" - "$$MU-UL,\"PolyLine\",LE=GBM_POLYLINE$$\n" - "$$MU-UL,\"PolyPoint\",LE=GBM_POLYPT$$\n" - "\n$$MU-UL,\"Copy to Clipboard\",LE=GBM_COPY$$\n" - "$$MU-UL,\"Delete to Clipboard\",LE=GBM_DELETE$$\n" - "$$MU-UL,\"Paste Clipboard\",LE=GBM_PASTE$$\n" - "$$MU-UL,\"Paste Transparent Clipboard\",LE=GBM_PASTE_TRANSPARENT$$\n" - "\n$$MU-UL,\"Save BMP File\",LE=GBM_SAVE_BMP$$\n" - "$$MU-UL,\"Save GRA File\",LE=GBM_SAVE_GRA$$\n" - "\n$$MU-UL,\"Undo\",LE=GBM_UNDO$$\n" - "\n$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=GBM_MAIN_MENU$$$$LTBLUE$$\n" - "$$MU-UL,\"Exit Sprite\",LE=GBM_EXIT$$\n" + "\n$$LTBLUE$$$$MU-UL,\"Color %s\",LE=SPBM_COLOR$$\n" + "$$MU-UL,\"Dither Color %s\",LE=SPBM_DITHER_COLOR$$\n" + "$$MU-UL,\"Width %d\",LE=SPBM_WIDTH$$\n" + "$$MU-UL,\"Find & Replace Color\",LE=SPBM_FIND_AND_REPLACE$$\n" + "$$MU-UL,\"Trim to Extents\",LE=SPBM_TRIM_TO_EXTENTS$$\n" + "$$MU-UL,\"Add Outline\",LE=SPBM_ADD_OUTLINE$$\n" + "$$MU-UL,\"Etch\",LE=SPBM_ETCH$$\n" + "\n$$MU-UL,\"Point\",LE=SPBM_PT$$\n" + "$$MU-UL,\"Line\",LE=SPBM_LINE$$\n" + "$$MU-UL,\"Arrow\",LE=SPBM_ARROW$$\n" + "$$MU-UL,\"Rect\",LE=SPBM_RECT$$\n" + "$$MU-UL,\"Circle\",LE=SPBM_CIRCLE$$\n" + "$$MU-UL,\"Text\",LE=SPBM_TEXT$$\n" + "$$MU-UL,\"Text Box\",LE=SPBM_TEXT_BOX$$\n" + "$$MU-UL,\"Text Diamond\",LE=SPBM_TEXT_DIAMOND$$\n" + "$$MU-UL,\"Flood Fill\",LE=SPBM_FLOOD_FILL$$\n" + "$$MU-UL,\"Flood Fill Not Color\",LE=SPBM_FLOOD_FILL_NOT$$\n" + "$$MU-UL,\"PolyLine\",LE=SPBM_POLYLINE$$\n" + "$$MU-UL,\"PolyPoint\",LE=SPBM_POLYPT$$\n" + "\n$$MU-UL,\"Copy to Clipboard\",LE=SPBM_COPY$$\n" + "$$MU-UL,\"Delete to Clipboard\",LE=SPBM_DELETE$$\n" + "$$MU-UL,\"Paste Clipboard\",LE=SPBM_PASTE$$\n" + "$$MU-UL,\"Paste Transparent Clipboard\",LE=SPBM_PASTE_TRANSPARENT$$\n" + "\n$$MU-UL,\"Save BMP File\",LE=SPBM_SAVE_BMP$$\n" + "$$MU-UL,\"Save GR File\",LE=SPBM_SAVE_GRA$$\n" + "\n$$MU-UL,\"Undo\",LE=SPBM_UNDO$$\n" + "\n$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=SPBM_MAIN_MENU$$$$LTBLUE$$\n" + "$$MU-UL,\"Exit Sprite\",LE=SPBM_EXIT$$\n" "$$MU-UL,\"Abort Sprite\",LE=DOCM_CANCEL$$\n" "\nRight-Click to get back to this menu.",st1,st2,width); i=PopUpMenu(doc); @@ -201,7 +201,7 @@ U0 GrBitMapEdEtch(CDC *img,I64 width,CColorROPU32 bkcolor) I64 SpriteBitMapEd(CDoc *,CDocEntry *doc_e,CDC *dc,I64 *_xx1,I64 *_yy1, I64 *_xx2,I64 *_yy2,CDC **_img,CColorROPU32 bkcolor) { - I64 i,j,mode=GBM_LINE,color=BLACK,width=1,msg_code,a1,a2,x1,y1,x11,y11, + I64 i,j,mode=SPBM_LINE,color=BLACK,width=1,msg_code,a1,a2,x1,y1,x11,y11, x22,y22,res,xx1=*_xx1,yy1=*_yy1,xx2=*_xx2,yy2=*_yy2, old_de_flags=doc_e->de_flags; Bool down=FALSE; @@ -228,13 +228,13 @@ I64 SpriteBitMapEd(CDoc *,CDocEntry *doc_e,CDC *dc,I64 *_xx1,I64 *_yy1, case MSG_KEY_DOWN: switch (a1) { case CH_SHIFT_ESC: - res=GE_ABORT; + res=SPE_ABORT; goto bm_key_up_done; case CH_ESC: - res=GE_CONT; + res=SPE_CONT; goto bm_key_up_done; case 'c': //eye-dropper - dc2=DCScreenCapture(FALSE); + dc2=DCScrnCapture(FALSE); color=GrPeek(dc2,ip.pos.x,ip.pos.y)^15;//Mouse cursor is XORed. DCDel(dc2); break; @@ -253,19 +253,19 @@ bm_menu: StrCpy(Fs->task_title,DefineSub(i,"ST_SPRITE_BITMAP_MENU")); switch (i) { case DOCM_CANCEL: - res=GE_ABORT; + res=SPE_ABORT; goto bm_done; - case GBM_EXIT: - res=GE_EXIT; + case SPBM_EXIT: + res=SPE_EXIT; goto bm_done; - case GBM_MAIN_MENU: - res=GE_CONT; + case SPBM_MAIN_MENU: + res=SPE_CONT; goto bm_done; - case GBM_COLOR: + case SPBM_COLOR: i=PopUpColor(,,FALSE); if (i>=0) color=i; goto bm_menu; - case GBM_FIND_AND_REPLACE: + case SPBM_FIND_AND_REPLACE: i=PopUpColor("Find Color\n",,FALSE); if (i>=0) { j=PopUpColor("Replace Color\n",,FALSE); @@ -275,43 +275,43 @@ bm_menu: } } goto bm_menu; - case GBM_TRIM_TO_EXTENTS: + case SPBM_TRIM_TO_EXTENTS: GrBitMapEdTrimToExtents(&img,&xx1,&yy1,&xx2,&yy2,bkcolor); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); goto bm_menu; - case GBM_ADD_OUTLINE: + case SPBM_ADD_OUTLINE: i=PopUpRangeI64(1,16,1,"Outline Width\n"); if (i>=0) { GrBitMapEdAddOutline(img,i,color,bkcolor); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); } goto bm_menu; - case GBM_ETCH: + case SPBM_ETCH: i=PopUpRangeI64(1,16,1,"Etch Width\n"); if (i>=0) { GrBitMapEdEtch(img,i,bkcolor); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); } goto bm_menu; - case GBM_SAVE_BMP: + case SPBM_SAVE_BMP: *filename.name=0; if (DocForm(&filename) && *filename.name) BMPWrite(filename.name,img); goto bm_menu; - case GBM_SAVE_GRA: + case SPBM_SAVE_GRA: *filename.name=0; if (DocForm(&filename) && *filename.name) - GRAWrite(filename.name,img,DCSF_COMPRESSED|DCSF_PALETTE_GET); + GRWrite(filename.name,img,DCSF_COMPRESSED|DCSF_PALETTE_GET); goto bm_menu; - case GBM_DITHER_COLOR: + case SPBM_DITHER_COLOR: i=PopUpColorDither; if (i>=0) color=i; goto bm_menu; - case GBM_WIDTH: + case SPBM_WIDTH: i=PopUpRangeI64(1,16,1,"Pen Width\n"); if (i>=0) width=i; goto bm_menu; - case GBM_UNDO: + case SPBM_UNDO: if (undo) { DCFill(img,bkcolor); img->color=ROP_EQU; @@ -320,24 +320,24 @@ bm_menu: undo=NULL; } goto bm_menu; - case GBM_PT: - case GBM_LINE: - case GBM_ARROW: - case GBM_RECT: - case GBM_CIRCLE: - case GBM_FLOOD_FILL: - case GBM_FLOOD_FILL_NOT: - case GBM_POLYPT: - case GBM_POLYLINE: - case GBM_COPY: - case GBM_DELETE: - case GBM_PASTE: - case GBM_PASTE_TRANSPARENT: + case SPBM_PT: + case SPBM_LINE: + case SPBM_ARROW: + case SPBM_RECT: + case SPBM_CIRCLE: + case SPBM_FLOOD_FILL: + case SPBM_FLOOD_FILL_NOT: + case SPBM_POLYPT: + case SPBM_POLYLINE: + case SPBM_COPY: + case SPBM_DELETE: + case SPBM_PASTE: + case SPBM_PASTE_TRANSPARENT: mode=i; break; - case GBM_TEXT: - case GBM_TEXT_BOX: - case GBM_TEXT_DIAMOND: + case SPBM_TEXT: + case SPBM_TEXT_BOX: + case SPBM_TEXT_DIAMOND: Free(st); st=PopUpGetStr("Enter text and press .\n"); if (st && *st) @@ -349,13 +349,13 @@ bm_menu: DCDel(undo); undo=DCExt(img,0,0,img->width-1,img->height-1); undo->bkcolor=bkcolor; - WinMgrSync(2,TRUE); //Let popup close + Refresh(2,TRUE); //Let popup close GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); down=FALSE; break; case MSG_IP_L_DOWN: switch (mode) { - case GBM_PT: + case SPBM_PT: img->color=color; img->pen_width=width; GrPlot3(img,a1-xx1,a2-yy1,0); @@ -368,31 +368,31 @@ bm_menu: down=TRUE; dc->color=color; dc->pen_width=width; - case GBM_LINE: + case SPBM_LINE: GrLine3(dc,x1,y1,0,a1,a2,0); break; - case GBM_ARROW: + case SPBM_ARROW: GrArrow3(dc,x1,y1,0,a1,a2,0); break; - case GBM_RECT: + case SPBM_RECT: GrRect(dc,x1,y1,1,1); break; - case GBM_CIRCLE: + case SPBM_CIRCLE: GrCircle3(dc,x1,y1,0,1); break; - case GBM_COPY: - case GBM_DELETE: + case SPBM_COPY: + case SPBM_DELETE: dc->color=ROPF_DITHER+WHITE<<16+BLACK; dc->pen_width=1; GrBorder(dc,x1,y1,x1,y1); break; end: break; - case GBM_PASTE: - case GBM_PASTE_TRANSPARENT: + case SPBM_PASTE: + case SPBM_PASTE_TRANSPARENT: if (clipboard) { GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); - if (mode==GBM_PASTE) { + if (mode==SPBM_PASTE) { clipboard->flags|=DCF_NO_TRANSPARENTS; GrBlot(dc,a1,a2,clipboard); clipboard->flags&=~DCF_NO_TRANSPARENTS; @@ -404,32 +404,32 @@ bm_menu: } } break; - case GBM_TEXT: + case SPBM_TEXT: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrPrint(dc,a1,a2,"%s",st); break; - case GBM_TEXT_BOX: + case SPBM_TEXT_BOX: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrTextBox3(dc,a1,a2,0,st); break; - case GBM_TEXT_DIAMOND: + case SPBM_TEXT_DIAMOND: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrTextDiamond3(dc,a1,a2,0,st); break; - case GBM_FLOOD_FILL: + case SPBM_FLOOD_FILL: img->color=color; GrFloodFill(img,a1-xx1,a2-yy1); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); break; - case GBM_FLOOD_FILL_NOT: + case SPBM_FLOOD_FILL_NOT: img->color=color; GrFloodFill(img,a1-xx1,a2-yy1,TRUE); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); break; - case GBM_POLYLINE: + case SPBM_POLYLINE: if (!down) { x1=a1; y1=a2; down=TRUE; @@ -438,7 +438,7 @@ bm_menu: GrLine3(dc,x1,y1,0,a1,a2,0); } break; - case GBM_POLYPT: + case SPBM_POLYPT: x1=a1; y1=a2; down=TRUE; img->color=color; @@ -450,20 +450,20 @@ bm_menu: break; case MSG_IP_MOVE: switch (mode) { - case GBM_LINE: - case GBM_ARROW: - case GBM_POLYLINE: + case SPBM_LINE: + case SPBM_ARROW: + case SPBM_POLYLINE: if (down) { GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; dc->pen_width=width; - if (mode==GBM_ARROW) + if (mode==SPBM_ARROW) GrArrow3(dc,x1,y1,0,a1,a2,0); else GrLine3(dc,x1,y1,0,a1,a2,0); } break; - case GBM_RECT: + case SPBM_RECT: if (down) { GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); if (x1color=color; @@ -515,11 +515,11 @@ bm_menu: GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(a1-x1)+SqrI64(a2-y1))); } break; - case GBM_PASTE: - case GBM_PASTE_TRANSPARENT: + case SPBM_PASTE: + case SPBM_PASTE_TRANSPARENT: if (clipboard) { GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); - if (mode==GBM_PASTE) { + if (mode==SPBM_PASTE) { clipboard->flags|=DCF_NO_TRANSPARENTS; GrBlot(dc,a1,a2,clipboard); clipboard->flags&=~DCF_NO_TRANSPARENTS; @@ -531,22 +531,22 @@ bm_menu: } } break; - case GBM_TEXT: + case SPBM_TEXT: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrPrint(dc,a1,a2,"%s",st); break; - case GBM_TEXT_BOX: + case SPBM_TEXT_BOX: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrTextBox3(dc,a1,a2,0,st); break; - case GBM_TEXT_DIAMOND: + case SPBM_TEXT_DIAMOND: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); dc->color=color; GrTextDiamond3(dc,a1,a2,0,st); break; - case GBM_POLYPT: + case SPBM_POLYPT: if (down) { img->color=color; img->pen_width=width; @@ -559,23 +559,23 @@ bm_menu: break; case MSG_IP_L_UP: switch (mode) { - case GBM_LINE: - case GBM_ARROW: - case GBM_POLYPT: - case GBM_POLYLINE: + case SPBM_LINE: + case SPBM_ARROW: + case SPBM_POLYPT: + case SPBM_POLYLINE: img->color=color; img->pen_width=width; - if (mode==GBM_ARROW) + if (mode==SPBM_ARROW) GrArrow3(img,x1-xx1,y1-yy1,0,a1-xx1,a2-yy1,0); else GrLine3(img,x1-xx1,y1-yy1,0,a1-xx1,a2-yy1,0); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); - if (mode==GBM_POLYLINE) { + if (mode==SPBM_POLYLINE) { x1=a1; y1=a2; } else down=FALSE; break; - case GBM_RECT: + case SPBM_RECT: img->color=color; if (x1bkcolor=bkcolor; - if (mode==GBM_DELETE) { + if (mode==SPBM_DELETE) { img->color=bkcolor; GrRect(img,x11-xx1,y11-yy1,x22-x11+1,y22-y11+1); } goto bm_menu; - case GBM_CIRCLE: + case SPBM_CIRCLE: img->color=color; img->pen_width=width; GrCircle3(img,x1-xx1,y1-yy1,0,Sqrt(SqrI64(a1-x1)+SqrI64(a2-y1))); down=FALSE; GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); break; - case GBM_PASTE: - case GBM_PASTE_TRANSPARENT: + case SPBM_PASTE: + case SPBM_PASTE_TRANSPARENT: if (clipboard) { GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); - if (mode==GBM_PASTE) { + if (mode==SPBM_PASTE) { clipboard->flags|=DCF_NO_TRANSPARENTS; GrBlot(img,a1-xx1,a2-yy1,clipboard); clipboard->flags&=~DCF_NO_TRANSPARENTS; @@ -643,15 +643,15 @@ bm_menu: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); } break; - case GBM_TEXT: + case SPBM_TEXT: img->color=color; GrPrint(img,a1-xx1,a2-yy1,"%s",st); goto bm_menu; - case GBM_TEXT_BOX: + case SPBM_TEXT_BOX: img->color=color; GrTextBox3(img,a1-xx1,a2-yy1,0,st); goto bm_menu; - case GBM_TEXT_DIAMOND: + case SPBM_TEXT_DIAMOND: img->color=color; GrTextDiamond3(img,a1-xx1,a2-yy1,0,st); goto bm_menu; @@ -659,7 +659,7 @@ bm_menu: break; } } - WinMgrSync; + Refresh; } bm_key_up_done: GetMsg(,,1<type,"ST_SPRITE_ELEM_CODES"); - switch (tempg->type) { + DocPrint(doc,"%Z",tmpg->type,"ST_SPRITE_ELEM_CODES"); + switch (tmpg->type) { case SPT_COLOR: DocPrint(doc,"{%s}", - Color2Str(buf1,tempg->c.color)); + Color2Str(buf1,tmpg->c.color)); break; case SPT_DITHER_COLOR: DocPrint(doc,"{%s}", - Color2Str(buf2,ROPF_DITHER|tempg->d.dither_color.u8[0]| - tempg->d.dither_color.u8[1]<d.dither_color.u8[0]| + tmpg->d.dither_color.u8[1]<pp.x1,tempg->pp.y1, - tempg->pp.x2,tempg->pp.y2); + DocPrint(doc,"{(%d,%d),(%d,%d)}",tmpg->pp.x1,tmpg->pp.y1, + tmpg->pp.x2,tmpg->pp.y2); break; case SPT_RECT: - DocPrint(doc,"{(%d,%d):(%d,%d)}",tempg->pp.x1,tempg->pp.y1, - tempg->pp.x2-tempg->pp.x1,tempg->pp.y2-tempg->pp.y1); + DocPrint(doc,"{(%d,%d):(%d,%d)}",tmpg->pp.x1,tmpg->pp.y1, + tmpg->pp.x2-tmpg->pp.x1,tmpg->pp.y2-tmpg->pp.y1); break; case SPT_ROTATED_RECT: - DocPrint(doc,"{(%d,%d):(%d,%d),%0.4f}",tempg->ppa.x1,tempg->ppa.y1, - tempg->ppa.x2-tempg->ppa.x1,tempg->ppa.y2-tempg->ppa.y1, - 180/ã*Wrap(tempg->ppa.angle)); + DocPrint(doc,"{(%d,%d):(%d,%d),%0.4f}",tmpg->ppa.x1,tmpg->ppa.y1, + tmpg->ppa.x2-tmpg->ppa.x1,tmpg->ppa.y2-tmpg->ppa.y1, + 180/ã*Wrap(tmpg->ppa.angle)); break; case SPT_PT: case SPT_FLOOD_FILL: case SPT_SHIFT: - DocPrint(doc,"{(%d,%d)}",tempg->p.x1,tempg->p.y1); + DocPrint(doc,"{(%d,%d)}",tmpg->p.x1,tmpg->p.y1); break; case SPT_FLOOD_FILL_NOT: - DocPrint(doc,"{(%d,%d),TRUE}",tempg->p.x1,tempg->p.y1); + DocPrint(doc,"{(%d,%d),TRUE}",tmpg->p.x1,tmpg->p.y1); break; case SPT_CIRCLE: - DocPrint(doc,"{(%d,%d):%d}",tempg->pr.x1,tempg->pr.y1,tempg->pr.radius); + DocPrint(doc,"{(%d,%d):%d}",tmpg->pr.x1,tmpg->pr.y1,tmpg->pr.radius); break; case SPT_WIDTH: - DocPrint(doc,"{%d}",tempg->w.width); + DocPrint(doc,"{%d}",tmpg->w.width); break; case SPT_ELLIPSE: - DocPrint(doc,"{(%d,%d):(%d,%d),%0.4f}",tempg->pwha.x1,tempg->pwha.y1, - tempg->pwha.width,tempg->pwha.height,180/ã*Wrap(tempg->pwha.angle)); + DocPrint(doc,"{(%d,%d):(%d,%d),%0.4f}",tmpg->pwha.x1,tmpg->pwha.y1, + tmpg->pwha.width,tmpg->pwha.height,180/ã*Wrap(tmpg->pwha.angle)); break; case SPT_POLYGON: - DocPrint(doc,"{%d,(%d,%d):(%d,%d),%0.4f}",tempg->pwhas.sides, - tempg->pwhas.x1,tempg->pwhas.y1, - tempg->pwhas.width,tempg->pwhas.height, - 180/ã*Wrap(tempg->pwhas.angle)); + DocPrint(doc,"{%d,(%d,%d):(%d,%d),%0.4f}",tmpg->pwhas.sides, + tmpg->pwhas.x1,tmpg->pwhas.y1, + tmpg->pwhas.width,tmpg->pwhas.height, + 180/ã*Wrap(tmpg->pwhas.angle)); break; case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: - DocPrint(doc,"{(%d,%d),\"%Q\"}",tempg->ps.x1,tempg->ps.y1,tempg->ps.st); + DocPrint(doc,"{(%d,%d),\"%Q\"}",tmpg->ps.x1,tmpg->ps.y1,tmpg->ps.st); break; case SPT_POLYLINE: - ptr=&tempg->nu.u; + ptr=&tmpg->nu.u; DocPrint(doc,"{"); - for (i=0;inu.num;i++,ptr+=2) { + for (i=0;inu.num;i++,ptr+=2) { DocPrint(doc,"(%d,%d)",ptr[0],ptr[1]); - if (i+1nu.num) DocPrint(doc,","); - if (i&3==3 && i+1nu.num) + if (i+1nu.num) DocPrint(doc,","); + if (i&3==3 && i+1nu.num) DocPrint(doc,"\n"); } DocPrint(doc,"}"); @@ -84,26 +84,26 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - ptr=&tempg->nu.u; + ptr=&tmpg->nu.u; DocPrint(doc,"{"); - for (i=0;inu.num;i++,ptr+=3) { + for (i=0;inu.num;i++,ptr+=3) { DocPrint(doc,"(%d,%d,%d)",ptr[0],ptr[1],ptr[2]); - if (i+1nu.num) DocPrint(doc,","); - if (i&3==3 && i+1nu.num) + if (i+1nu.num) DocPrint(doc,","); + if (i&3==3 && i+1nu.num) DocPrint(doc,"\n"); } - if (tempg->type==SPT_BSPLINE2||tempg->type==SPT_BSPLINE3) + if (tmpg->type==SPT_BSPLINE2||tmpg->type==SPT_BSPLINE3) DocPrint(doc,",FALSE}"); else DocPrint(doc,",TRUE}"); break; case SPT_POLYPT: - DocPrint(doc,"{(%d,%d),",tempg->npu.x,tempg->npu.y); - ptr=&tempg->npu.u; + DocPrint(doc,"{(%d,%d),",tmpg->npu.x,tmpg->npu.y); + ptr=&tmpg->npu.u; col=16; - for (i=0;inpu.num;i++) { + for (i=0;inpu.num;i++) { DocPrint(doc,"%d",BFieldExtU32(ptr,i*3,3)); - if (++col>=64 && i+1npu.num) { + if (++col>=64 && i+1npu.num) { DocPrint(doc,"\n"); col=0; } @@ -111,24 +111,24 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) DocPrint(doc,"}"); break; case SPT_BITMAP: - DocPrint(doc,"{(%d,%d):(%d,%d),\n",tempg->pwhu.x1,tempg->pwhu.y1, - tempg->pwhu.width,tempg->pwhu.height); - width_internal=(tempg->pwhu.width+7)&~7; + DocPrint(doc,"{(%d,%d):(%d,%d),\n",tmpg->pwhu.x1,tmpg->pwhu.y1, + tmpg->pwhu.width,tmpg->pwhu.height); + width_internal=(tmpg->pwhu.width+7)&~7; if (width_internal<80) k=width_internal; else k=64; - ptr=&tempg->pwhu.u; + ptr=&tmpg->pwhu.u; col=0; - for (j=0;jpwhu.height;j++) + for (j=0;jpwhu.height;j++) for (i=0;i=tempg->pwhu.width) + if (i>=tmpg->pwhu.width) DocPrint(doc,"_"); else if (*ptr(U8 *)<16) DocPrint(doc,"%X",*ptr(U8 *)); else DocPrint(doc,"%c",CH_SHIFT_SPACE); - if (++col>=k && (i+1pwhu.height)) { + if (++col>=k && (i+1pwhu.height)) { DocPrint(doc,"\n"); col=0; } @@ -137,11 +137,11 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) break; case SPT_MESH: DocPrint(doc,"{FALSE,"); - p=&tempg->mu.u; + p=&tmpg->mu.u; col=0; - for (i=0;imu.vertex_cnt;i++,p++) { + for (i=0;imu.vertex_cnt;i++,p++) { DocPrint(doc,"(%d,%d,%d)",p->x,p->y,p->z); - if (i+1mu.vertex_cnt) DocPrint(doc,","); + if (i+1mu.vertex_cnt) DocPrint(doc,","); if (++col==4) { DocPrint(doc,"\t//%d\n",i); col=0; @@ -149,11 +149,11 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) } DocPrint(doc,":"); tri=p; - for (i=0;imu.tri_cnt;i++,tri++) { + for (i=0;imu.tri_cnt;i++,tri++) { DocPrint(doc,"(%s,%d,%d,%d)",Color2Str(buf1,tri->color), tri->nums[0],tri->nums[1],tri->nums[2]); - if (i+1mu.tri_cnt) DocPrint(doc,","); - if (++col>=3 && i+1mu.tri_cnt) { + if (i+1mu.tri_cnt) DocPrint(doc,","); + if (++col>=3 && i+1mu.tri_cnt) { DocPrint(doc,"\n"); col=0; } @@ -161,12 +161,12 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) DocPrint(doc,"}"); break; case SPT_SHIFTABLE_MESH: - DocPrint(doc,"{TRUE,(%d,%d,%d):",tempg->pmu.x,tempg->pmu.y,tempg->pmu.z); - p=&tempg->pmu.u; + DocPrint(doc,"{TRUE,(%d,%d,%d):",tmpg->pmu.x,tmpg->pmu.y,tmpg->pmu.z); + p=&tmpg->pmu.u; col=1; - for (i=0;ipmu.vertex_cnt;i++,p++) { + for (i=0;ipmu.vertex_cnt;i++,p++) { DocPrint(doc,"(%d,%d,%d)",p->x,p->y,p->z); - if (i+1pmu.vertex_cnt) DocPrint(doc,","); + if (i+1pmu.vertex_cnt) DocPrint(doc,","); if (++col==4) { DocPrint(doc,"\t//%d\n",i); col=0; @@ -174,11 +174,11 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) } DocPrint(doc,":"); tri=p; - for (i=0;ipmu.tri_cnt;i++,tri++) { + for (i=0;ipmu.tri_cnt;i++,tri++) { DocPrint(doc,"(%s,%d,%d,%d)",Color2Str(buf1,tri->color), tri->nums[0],tri->nums[1],tri->nums[2]); - if (i+1pmu.tri_cnt) DocPrint(doc,","); - if (++col>=3 && i+1pmu.tri_cnt) { + if (i+1pmu.tri_cnt) DocPrint(doc,","); + if (++col>=3 && i+1pmu.tri_cnt) { DocPrint(doc,"\n"); col=0; } @@ -191,10 +191,10 @@ U0 SpriteElem2Code(CDoc *doc,CSprite *tempg) public U0 Sprite2Code(CDoc *doc=NULL,U8 *elems) {//Sprite to text. - CSprite *tempg=elems-offset(CSprite.start); - while (tempg->type) { - SpriteElem2Code(doc,tempg); - tempg(U8 *)+=SpriteElemSize(tempg); + CSprite *tmpg=elems-offset(CSprite.start); + while (tmpg->type) { + SpriteElem2Code(doc,tmpg); + tmpg(U8 *)+=SpriteElemSize(tmpg); } } @@ -204,9 +204,9 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) CSprite *res,g; CColorROPU32 color; U8 *st,*ptr; - CQueD3I32 headp,*tempp,*tempa1; - CQueMeshTri headt,*tempt,*tempt1; - CQueVectU8 *tempv; + CQueD3I32 headp,*tmpp,*tmpa1; + CQueMeshTri headt,*tmpt,*tmpt1; + CQueVectU8 *tmpv; MemSet(&g,0,sizeof(CSprite)); switch (type) { start: @@ -340,9 +340,9 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) g.type=SPT_POLYLINE; QueInit(&headp); while (cc->token=='(') { - tempp=CAlloc(sizeof(CQueD3I32)); - LexD2I32(cc,&tempp->p); - QueIns(tempp,headp.last); + tmpp=CAlloc(sizeof(CQueD3I32)); + LexD2I32(cc,&tmpp->p); + QueIns(tmpp,headp.last); g.nu.num++; if (cc->token==',') Lex(cc); //Skip , @@ -353,13 +353,13 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) res=MAlloc(size+g.nu.num*sizeof(CD2I32)); MemCpy(res,&g,size); ptr=&res->nu.u; - tempp=headp.next; - while (tempp!=&headp) { - tempa1=tempp->next; - MemCpy(ptr,&tempp->p,sizeof(CD2I32)); + tmpp=headp.next; + while (tmpp!=&headp) { + tmpa1=tmpp->next; + MemCpy(ptr,&tmpp->p,sizeof(CD2I32)); ptr+=sizeof(CD2I32); - Free(tempp); - tempp=tempa1; + Free(tmpp); + tmpp=tmpa1; } break; case SPT_BSPLINE2: @@ -369,9 +369,9 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip { QueInit(&headp); while (cc->token=='(') { - tempp=CAlloc(sizeof(CQueD3I32)); - LexD3I32(cc,&tempp->p); - QueIns(tempp,headp.last); + tmpp=CAlloc(sizeof(CQueD3I32)); + LexD3I32(cc,&tmpp->p); + QueIns(tmpp,headp.last); g.nu.num++; if (cc->token==',') Lex(cc); //Skip , @@ -393,13 +393,13 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) } MemCpy(res,&g,size); ptr=&res->nu.u; - tempp=headp.next; - while (tempp!=&headp) { - tempa1=tempp->next; - MemCpy(ptr,&tempp->p,sizeof(CD3I32)); + tmpp=headp.next; + while (tmpp!=&headp) { + tmpa1=tmpp->next; + MemCpy(ptr,&tmpp->p,sizeof(CD3I32)); ptr+=sizeof(CD3I32); - Free(tempp); - tempp=tempa1; + Free(tmpp); + tmpp=tmpa1; } break; case SPT_POLYPT: @@ -407,14 +407,14 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) LexD2I32(cc,&g.npu.x); if (cc->token!=',') LexExcept(cc,"Expecting ',' at "); - tempv=QueVectU8New; + tmpv=QueVectU8New; while (TRUE) { if (!(i=LexGetChar(cc))) LexExcept(cc,"Expecting '}' at "); if (i=='}') break; if ('0'<=i<='7') - QueVectU8Put(tempv,g.npu.num++,i-'0'); + QueVectU8Put(tmpv,g.npu.num++,i-'0'); } Bts(&cc->flags,CCf_USE_LAST_U16); Lex(cc); //Load '}' @@ -424,8 +424,8 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) MemCpy(res,&g,size); ptr=&res->npu.u; for (i=0;itoken!=',') LexExcept(cc,"Expecting ',' at "); - tempv=QueVectU8New; + tmpv=QueVectU8New; num1=0; while (TRUE) { if (!(i=ToUpper(LexGetChar(cc)))) @@ -444,13 +444,13 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) if (i=='}') break; if ('0'<=i<='9') - QueVectU8Put(tempv,num1++,i-'0'); + QueVectU8Put(tmpv,num1++,i-'0'); else if ('A'<=i<='F') - QueVectU8Put(tempv,num1++,i-'A'+10); + QueVectU8Put(tmpv,num1++,i-'A'+10); else if (i==CH_SPACE||i==CH_SHIFT_SPACE) - QueVectU8Put(tempv,num1++,TRANSPARENT); + QueVectU8Put(tmpv,num1++,TRANSPARENT); else if (i=='_') - QueVectU8Put(tempv,num1++,0); + QueVectU8Put(tmpv,num1++,0); } Bts(&cc->flags,CCf_USE_LAST_U16); Lex(cc); //Load '}' @@ -460,8 +460,8 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) MemCpy(res,&g,size); ptr=&res->pwhu.u; for (i=0;itoken=='(') { - tempp=CAlloc(sizeof(CQueD3I32)); - LexD3I32(cc,&tempp->p); - QueIns(tempp,headp.last); + tmpp=CAlloc(sizeof(CQueD3I32)); + LexD3I32(cc,&tmpp->p); + QueIns(tmpp,headp.last); num1++; if (cc->token==',') Lex(cc); //Skip , @@ -497,27 +497,27 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) num2=0; QueInit(&headt); while (cc->token=='(') { - tempt=CAlloc(sizeof(CQueMeshTri)); + tmpt=CAlloc(sizeof(CQueMeshTri)); st=LexFirstRem(cc,","); - tempt->color=Str2ColorU32(st); + tmpt->color=Str2ColorU32(st); Free(st); Lex(cc); //Skip color if (cc->token!=',') LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , - tempt->nums[0]=LexExpressionI64(cc); + tmpt->nums[0]=LexExpressionI64(cc); if (cc->token!=',') LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , - tempt->nums[1]=LexExpressionI64(cc); + tmpt->nums[1]=LexExpressionI64(cc); if (cc->token!=',') LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , - tempt->nums[2]=LexExpressionI64(cc); + tmpt->nums[2]=LexExpressionI64(cc); if (cc->token!=')') LexExcept(cc,"Expecting ')' at "); Lex(cc); //Skip ) - QueIns(tempt,headt.last); + QueIns(tmpt,headt.last); num2++; if (cc->token==',') Lex(cc); //Skip , @@ -534,21 +534,21 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) res=MAlloc(size+num1*sizeof(CD3I32)+num2*sizeof(CMeshTri)); MemCpy(res,&g,size); ptr=res(U8 *)+size; - tempp=headp.next; - while (tempp!=&headp) { - tempa1=tempp->next; - MemCpy(ptr,&tempp->p,sizeof(CD3I32)); + tmpp=headp.next; + while (tmpp!=&headp) { + tmpa1=tmpp->next; + MemCpy(ptr,&tmpp->p,sizeof(CD3I32)); ptr+=sizeof(CD3I32); - Free(tempp); - tempp=tempa1; + Free(tmpp); + tmpp=tmpa1; } - tempt=headt.next; - while (tempt!=&headt) { - tempt1=tempt->next; - MemCpy(ptr,&tempt->start,sizeof(CMeshTri)); + tmpt=headt.next; + while (tmpt!=&headt) { + tmpt1=tmpt->next; + MemCpy(ptr,&tmpt->start,sizeof(CMeshTri)); ptr+=sizeof(CMeshTri); - Free(tempt); - tempt=tempt1; + Free(tmpt); + tmpt=tmpt1; } break; } @@ -566,7 +566,7 @@ public U8 *Code2Sprite(CDoc *doc,I64 *_size=NULL) Bool okay=TRUE,unlock_doc=DocLock(doc); CCmpCtrl *cc=CmpCtrlNew(,CCF_DONT_FREE_BUF); CHashTable *old_hash_table_lst=cc->htc.hash_table_lst; - CHashGeneric *temph; + CHashGeneric *tmph; I64 i,size=0; QueInit(&head); LexAttachDoc(cc,,doc); @@ -574,8 +574,8 @@ public U8 *Code2Sprite(CDoc *doc,I64 *_size=NULL) do { cc->htc.hash_table_lst=NULL; if (Lex(cc)==TK_IDENT && //Skip ; - (temph=HashFind(cc->cur_str,gr.sprite_hash,SPHT_ELEM_CODE))) { - i=temph->user_data0; + (tmph=HashFind(cc->cur_str,gr.sprite_hash,SPHT_ELEM_CODE))) { + i=tmph->user_data0; cc->htc.hash_table_lst=old_hash_table_lst; if (Lex(cc)=='{') //Skip ident QueIns(Code2SpriteElem(cc,i),head.last); diff --git a/Adam/Gr/SpriteEd.HC b/Adam/Gr/SpriteEd.HC index c00648f..dd2b9cb 100644 --- a/Adam/Gr/SpriteEd.HC +++ b/Adam/Gr/SpriteEd.HC @@ -51,11 +51,11 @@ CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num, Bool SpritePolyPtPlot(CSprite *head,I64 x,I64 y,I64) { - CSprite *tempg=CAlloc(SpriteElemQuedBaseSize(SPT_PT)); - tempg->type=SPT_PT; - tempg->p.x1=x; - tempg->p.y1=y; - QueIns(tempg,head->last); + CSprite *tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_PT)); + tmpg->type=SPT_PT; + tmpg->p.x1=x; + tmpg->p.y1=y; + QueIns(tmpg,head->last); return TRUE; } @@ -63,15 +63,15 @@ CSprite *Sprite2SpriteQue(U8 *elems) { I64 s; CSprite *res=CAlloc(sizeof(CSprite)), - *tempg=elems-offset(CSprite.start),*tempg1; + *tmpg=elems-offset(CSprite.start),*tmpg1; QueInit(res); - while (tempg->type) { - tempg1=MAlloc(SpriteElemSize(tempg)+offset(CSprite.start)); - s=SpriteElemSize(tempg); - MemCpy(&tempg1->start,&tempg->start,s); - tempg1->sel=FALSE; - QueIns(tempg1,res->last); - tempg(U8 *)+=s; + while (tmpg->type) { + tmpg1=MAlloc(SpriteElemSize(tmpg)+offset(CSprite.start)); + s=SpriteElemSize(tmpg); + MemCpy(&tmpg1->start,&tmpg->start,s); + tmpg1->sel=FALSE; + QueIns(tmpg1,res->last); + tmpg(U8 *)+=s; } return res; } @@ -79,20 +79,20 @@ CSprite *Sprite2SpriteQue(U8 *elems) U8 *SpriteQue2Sprite(CSprite *head,I64 *_size=NULL) { I64 i,size=sprite_elem_base_sizes[SPT_END]; - CSprite *tempg=head->next; + CSprite *tmpg=head->next; U8 *res,*dst; - while (tempg!=head) { - size+=SpriteElemSize(tempg); - tempg=tempg->next; + while (tmpg!=head) { + size+=SpriteElemSize(tmpg); + tmpg=tmpg->next; } if (_size) *_size=size; res=dst=MAlloc(size); - tempg=head->next; - while (tempg!=head) { - i=SpriteElemSize(tempg); - MemCpy(dst,&tempg->start,i); + tmpg=head->next; + while (tmpg!=head) { + i=SpriteElemSize(tmpg); + MemCpy(dst,&tmpg->start,i); dst+=i; - tempg=tempg->next; + tmpg=tmpg->next; } *dst=SPT_END; return res; @@ -100,12 +100,12 @@ U8 *SpriteQue2Sprite(CSprite *head,I64 *_size=NULL) U0 SpriteEdUpdate(CDoc *doc,CDocEntry *doc_ce,CSprite *head) { - CDocBin *tempb=doc_ce->bin_data; + CDocBin *tmpb=doc_ce->bin_data; I64 size; Bool unlock=DocLock(doc); - Free(tempb->data); - tempb->data=SpriteQue2Sprite(head,&size); - tempb->size=size; + Free(tmpb->data); + tmpb->data=SpriteQue2Sprite(head,&size); + tmpb->size=size; if (unlock) DocUnlock(doc); } @@ -115,17 +115,17 @@ U0 SpriteSetOrigin(CSprite *head,I64 dx,I64 dy,I64 dz) I64 i; I32 *ptr; CD3I32 *p; - CSprite *tempg=head->next; - while (tempg!=head) { - if (tempg->sel) - switch (tempg->type) { + CSprite *tmpg=head->next; + while (tmpg!=head) { + if (tmpg->sel) + switch (tmpg->type) { case SPT_ARROW: case SPT_LINE: case SPT_PLANAR_SYMMETRY: case SPT_RECT: case SPT_ROTATED_RECT: - tempg->pp.x2+=dx; - tempg->pp.y2+=dy; + tmpg->pp.x2+=dx; + tmpg->pp.y2+=dy; case SPT_PT: case SPT_FLOOD_FILL: case SPT_FLOOD_FILL_NOT: @@ -136,60 +136,60 @@ U0 SpriteSetOrigin(CSprite *head,I64 dx,I64 dy,I64 dz) case SPT_BITMAP: case SPT_ELLIPSE: case SPT_POLYGON: - tempg->p.x1+=dx; - tempg->p.y1+=dy; + tmpg->p.x1+=dx; + tmpg->p.y1+=dy; break; case SPT_POLYLINE: - ptr=&tempg->nu.u; - for (i=0;inu.num;i++) { + ptr=&tmpg->nu.u; + for (i=0;inu.num;i++) { ptr[i<<1]+=dx; ptr[i<<1+1]+=dy; } break; case SPT_POLYPT: - tempg->npu.x+=dx; - tempg->npu.y+=dy; + tmpg->npu.x+=dx; + tmpg->npu.y+=dy; break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - p=&tempg->nu.u; - for (i=0;inu.num;i++,p++) { + p=&tmpg->nu.u; + for (i=0;inu.num;i++,p++) { p->x+=dx; p->y+=dy; p->z+=dz; } break; case SPT_MESH: - p=&tempg->mu.u; - for (i=0;imu.vertex_cnt;i++,p++) { + p=&tmpg->mu.u; + for (i=0;imu.vertex_cnt;i++,p++) { p->x+=dx; p->y+=dy; p->z+=dz; } break; case SPT_SHIFTABLE_MESH: - tempg->pmu.x+=dx; - tempg->pmu.y+=dy; - tempg->pmu.z+=dz; + tmpg->pmu.x+=dx; + tmpg->pmu.y+=dy; + tmpg->pmu.z+=dz; break; } - tempg=tempg->next; + tmpg=tmpg->next; } } -CSprite *SpriteTransformCircle(I64 *r,CSprite *tempg) +CSprite *SpriteTransformCircle(I64 *r,CSprite *tmpg) { I64 x,y,z; - F64 m1,a1,m2,radius=tempg->pr.radius<<16; - CSprite *tempg1=CAlloc(SpriteElemQuedBaseSize(SPT_ELLIPSE)); - tempg1->type=SPT_ELLIPSE; + F64 m1,a1,m2,radius=tmpg->pr.radius<<16; + CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(SPT_ELLIPSE)); + tmpg1->type=SPT_ELLIPSE; - x=tempg->pr.x1; y=tempg->pr.y1; z=0; + x=tmpg->pr.x1; y=tmpg->pr.y1; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg1->pwha.x1=x; - tempg1->pwha.y1=y; + tmpg1->pwha.x1=x; + tmpg1->pwha.y1=y; x=radius; y=0; z=0; Mat4x4MulXYZ(r,&x,&y,&z); @@ -199,31 +199,31 @@ CSprite *SpriteTransformCircle(I64 *r,CSprite *tempg) Mat4x4MulXYZ(r,&x,&y,&z); m2=Sqrt(x*x+y*y); - tempg1->pwha.width =ToI64(m1)/0x10000; - tempg1->pwha.height=ToI64(m2)/0x10000; - tempg1->pwha.angle=-a1; + tmpg1->pwha.width =ToI64(m1)/0x10000; + tmpg1->pwha.height=ToI64(m2)/0x10000; + tmpg1->pwha.angle=-a1; - tempg1->sel=tempg->sel; - return tempg1; + tmpg1->sel=tmpg->sel; + return tmpg1; } -CSprite *SpriteTransformEllipse(I64 *r,CSprite *tempg) +CSprite *SpriteTransformEllipse(I64 *r,CSprite *tmpg) { I64 x,y,z; - F64 m1,a1,m2,a2,s,c,x_radius=tempg->pwha.width<<16, - y_radius=tempg->pwha.height<<16; - CSprite *tempg1=CAlloc(SpriteElemQuedBaseSize(tempg->type)); - tempg1->type=tempg->type; - if (tempg->type==SPT_POLYGON) - tempg1->pwhas.sides=tempg->pwhas.sides; + F64 m1,a1,m2,a2,s,c,x_radius=tmpg->pwha.width<<16, + y_radius=tmpg->pwha.height<<16; + CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(tmpg->type)); + tmpg1->type=tmpg->type; + if (tmpg->type==SPT_POLYGON) + tmpg1->pwhas.sides=tmpg->pwhas.sides; - x=tempg->pwha.x1; y=tempg->pwha.y1; z=0; + x=tmpg->pwha.x1; y=tmpg->pwha.y1; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg1->pwha.x1=x; - tempg1->pwha.y1=y; + tmpg1->pwha.x1=x; + tmpg1->pwha.y1=y; - c=Cos(-tempg->pwha.angle); - s=Sin(-tempg->pwha.angle); + c=Cos(-tmpg->pwha.angle); + s=Sin(-tmpg->pwha.angle); x=x_radius*c; y=x_radius*s; @@ -238,29 +238,29 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tempg) R2P(&m2,&a2,x,y); m2*=Abs(Sin(a2-a1)); - tempg1->pwha.width=ToI64(m1)/0x10000; - if (tempg1->pwha.width<1) tempg1->pwha.width=1; - tempg1->pwha.height=ToI64(m2)/0x10000; - if (tempg1->pwha.height<1) tempg1->pwha.height=1; - tempg1->pwha.angle=-a1; + tmpg1->pwha.width=ToI64(m1)/0x10000; + if (tmpg1->pwha.width<1) tmpg1->pwha.width=1; + tmpg1->pwha.height=ToI64(m2)/0x10000; + if (tmpg1->pwha.height<1) tmpg1->pwha.height=1; + tmpg1->pwha.angle=-a1; - tempg1->sel=tempg->sel; - return tempg1; + tmpg1->sel=tmpg->sel; + return tmpg1; } -CSprite *SpriteTransformRect(I64 *r,CSprite *tempg,F64 é) +CSprite *SpriteTransformRect(I64 *r,CSprite *tmpg,F64 é) { I64 x,y,z,w,h; F64 m1,a1,m2,a2,s,c, - x_radius=(tempg->pp.x2-tempg->pp.x1)<<16, - y_radius=(tempg->pp.y2-tempg->pp.y1)<<16; - CSprite *tempg1=CAlloc(SpriteElemQuedBaseSize(SPT_ROTATED_RECT)); - tempg1->type=SPT_ROTATED_RECT; + x_radius=(tmpg->pp.x2-tmpg->pp.x1)<<16, + y_radius=(tmpg->pp.y2-tmpg->pp.y1)<<16; + CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(SPT_ROTATED_RECT)); + tmpg1->type=SPT_ROTATED_RECT; - x=tempg->pp.x1; y=tempg->pp.y1; z=0; + x=tmpg->pp.x1; y=tmpg->pp.y1; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg1->ppa.x1=x; - tempg1->ppa.y1=y; + tmpg1->ppa.x1=x; + tmpg1->ppa.y1=y; c=Cos(-é); s=Sin(-é); @@ -282,20 +282,20 @@ CSprite *SpriteTransformRect(I64 *r,CSprite *tempg,F64 if (w<1) w=1; h=ToI64(m2)/0x10000; if (h<1) h=1; - tempg1->ppa.x2=tempg1->ppa.x1+w; - tempg1->ppa.y2=tempg1->ppa.y1+h; - tempg1->ppa.angle=-a1; + tmpg1->ppa.x2=tmpg1->ppa.x1+w; + tmpg1->ppa.y2=tmpg1->ppa.y1+h; + tmpg1->ppa.angle=-a1; - tempg1->sel=tempg->sel; - return tempg1; + tmpg1->sel=tmpg->sel; + return tmpg1; } -CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) +CSprite *SpriteTransformBitMap(I64 *r,CSprite *tmpg) { CDC *img,*dc3; U8 *elems; I64 x,y,z,minx,maxx,miny,maxy,minz,maxz; - CSprite *tempg1; + CSprite *tmpg1; x=0; y=0; z=0; Mat4x4MulXYZ(r,&x,&y,&z); @@ -303,7 +303,7 @@ CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) miny=maxy=y; minz=maxz=z; - x=0; y=tempg->pwhu.height; z=0; + x=0; y=tmpg->pwhu.height; z=0; Mat4x4MulXYZ(r,&x,&y,&z); if (xmaxx) maxx=x; @@ -312,7 +312,7 @@ CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) if (zmaxx) maxz=z; - x=tempg->pwhu.width; y=0; z=0; + x=tmpg->pwhu.width; y=0; z=0; Mat4x4MulXYZ(r,&x,&y,&z); if (xmaxx) maxx=x; @@ -321,7 +321,7 @@ CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) if (zmaxx) maxz=z; - x=tempg->pwhu.width; y=tempg->pwhu.height; z=0; + x=tmpg->pwhu.width; y=tmpg->pwhu.height; z=0; Mat4x4MulXYZ(r,&x,&y,&z); if (xmaxx) maxx=x; @@ -333,10 +333,10 @@ CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) dc3=DCNew(maxx-minx+1,maxy-miny+1); img=CAlloc(sizeof(CDC)); - img->width=tempg->pwhu.width; - img->width_internal=(tempg->pwhu.width+7)&~7; - img->height=tempg->pwhu.height; - img->body=&tempg->pwhu.u; + img->width=tmpg->pwhu.width; + img->width_internal=(tmpg->pwhu.width+7)&~7; + img->height=tmpg->pwhu.height; + img->body=&tmpg->pwhu.u; img->dc_signature=DCS_SIGNATURE_VAL; dc3->color=TRANSPARENT; @@ -355,21 +355,21 @@ CSprite *SpriteTransformBitMap(I64 *r,CSprite *tempg) elems=DC2Sprite(dc3); dc3->r=NULL; DCDel(dc3); - tempg1=CAlloc(offset(CSprite.start)+MSize(elems)); - MemCpy(tempg1(U8 *)+offset(CSprite.start),elems,MSize(elems)); - tempg1->type=tempg->type; + tmpg1=CAlloc(offset(CSprite.start)+MSize(elems)); + MemCpy(tmpg1(U8 *)+offset(CSprite.start),elems,MSize(elems)); + tmpg1->type=tmpg->type; - x=tempg->pwhu.x1; y=tempg->pwhu.y1; z=0; + x=tmpg->pwhu.x1; y=tmpg->pwhu.y1; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg1->pwhu.x1=x; - tempg1->pwhu.y1=y; + tmpg1->pwhu.x1=x; + tmpg1->pwhu.y1=y; x=0; y=0; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg1->pwhu.x1+=minx-x; - tempg1->pwhu.y1+=miny-y; + tmpg1->pwhu.x1+=minx-x; + tmpg1->pwhu.y1+=miny-y; - return tempg1; + return tmpg1; } U0 SpriteTransform(I64 *r,CSprite *head) @@ -378,71 +378,71 @@ U0 SpriteTransform(I64 *r,CSprite *head) x,y,z,x1,y1,z1,x2,y2,z2,x3,y3,z3; I32 *ptr; CD3I32 *p; - CSprite *tempg=head->next,head2,*tempg1,*tempg2,*tempg3; - while (tempg!=head) { - if (tempg->sel) - switch (tempg->type) { + CSprite *tmpg=head->next,head2,*tmpg1,*tmpg2,*tmpg3; + while (tmpg!=head) { + if (tmpg->sel) + switch (tmpg->type) { case SPT_WIDTH: - tempg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536; - if (tempg->w.width<0) tempg->w.width=0; + tmpg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536; + if (tmpg->w.width<0) tmpg->w.width=0; break; case SPT_PLANAR_SYMMETRY: case SPT_ARROW: case SPT_LINE: - x=tempg->pp.x2; y=tempg->pp.y2; z=0; + x=tmpg->pp.x2; y=tmpg->pp.y2; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg->pp.x2=x; - tempg->pp.y2=y; + tmpg->pp.x2=x; + tmpg->pp.y2=y; case SPT_PT: case SPT_FLOOD_FILL: case SPT_FLOOD_FILL_NOT: case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: - x=tempg->p.x1; y=tempg->p.y1; z=0; + x=tmpg->p.x1; y=tmpg->p.y1; z=0; Mat4x4MulXYZ(r,&x,&y,&z); - tempg->p.x1=x; - tempg->p.y1=y; + tmpg->p.x1=x; + tmpg->p.y1=y; break; case SPT_BITMAP: - tempg1=SpriteTransformBitMap(r,tempg); - QueIns(tempg1,tempg); - QueRem(tempg); - Free(tempg); - tempg=tempg1; + tmpg1=SpriteTransformBitMap(r,tmpg); + QueIns(tmpg1,tmpg); + QueRem(tmpg); + Free(tmpg); + tmpg=tmpg1; break; case SPT_ROTATED_RECT: - tempg1=SpriteTransformRect(r,tempg,tempg->ppa.angle); - QueIns(tempg1,tempg); - QueRem(tempg); - Free(tempg); - tempg=tempg1; + tmpg1=SpriteTransformRect(r,tmpg,tmpg->ppa.angle); + QueIns(tmpg1,tmpg); + QueRem(tmpg); + Free(tmpg); + tmpg=tmpg1; break; case SPT_RECT: - tempg1=SpriteTransformRect(r,tempg,0); - QueIns(tempg1,tempg); - QueRem(tempg); - Free(tempg); - tempg=tempg1; + tmpg1=SpriteTransformRect(r,tmpg,0); + QueIns(tmpg1,tmpg); + QueRem(tmpg); + Free(tmpg); + tmpg=tmpg1; break; case SPT_CIRCLE: - tempg1=SpriteTransformCircle(r,tempg); - QueIns(tempg1,tempg); - QueRem(tempg); - Free(tempg); - tempg=tempg1; + tmpg1=SpriteTransformCircle(r,tmpg); + QueIns(tmpg1,tmpg); + QueRem(tmpg); + Free(tmpg); + tmpg=tmpg1; break; case SPT_ELLIPSE: case SPT_POLYGON: - tempg1=SpriteTransformEllipse(r,tempg); - QueIns(tempg1,tempg); - QueRem(tempg); - Free(tempg); - tempg=tempg1; + tmpg1=SpriteTransformEllipse(r,tmpg); + QueIns(tmpg1,tmpg); + QueRem(tmpg); + Free(tmpg); + tmpg=tmpg1; break; case SPT_POLYLINE: - ptr=&tempg->nu.u; - for (i=0;inu.num;i++) { + ptr=&tmpg->nu.u; + for (i=0;inu.num;i++) { x=ptr[i<<1]; y=ptr[i<<1+1]; z=0; Mat4x4MulXYZ(r,&x,&y,&z); ptr[i<<1]=x; @@ -451,11 +451,11 @@ U0 SpriteTransform(I64 *r,CSprite *head) break; case SPT_POLYPT: QueInit(&head2); - x=tempg->npu.x; y=tempg->npu.y; z=0; + x=tmpg->npu.x; y=tmpg->npu.y; z=0; x1=x; y1=y; z1=z; //unrotated cur coordinates Mat4x4MulXYZ(r,&x,&y,&z); - ptr=&tempg->npu.u; - k=tempg->npu.num*3; + ptr=&tmpg->npu.u; + k=tmpg->npu.num*3; x2=x; y2=y; z2=z; //rotated start coordinates x3=x; y3=y; z3=z; //lag 1 rotated coordinates for (i=0;inext; - if (tempg1->p.x1==x3 && tempg1->p.y1==y3) { - QueRem(tempg1); - Free(tempg1); + while (tmpg1!=&head2) { + tmpg2=tmpg1->next; + if (tmpg1->p.x1==x3 && tmpg1->p.y1==y3) { + QueRem(tmpg1); + Free(tmpg1); } else { num++; - x3=tempg1->p.x1; - y3=tempg1->p.y1; + x3=tmpg1->p.x1; + y3=tmpg1->p.y1; } - tempg1=tempg2; + tmpg1=tmpg2; } - tempg3=CAlloc(SpriteElemQuedBaseSize(SPT_POLYPT)+(num*3+7)>>3); - tempg3->npu.x=x2; - tempg3->npu.y=y2; - ptr=&tempg3->npu.u; + tmpg3=CAlloc(SpriteElemQuedBaseSize(SPT_POLYPT)+(num*3+7)>>3); + tmpg3->npu.x=x2; + tmpg3->npu.y=y2; + ptr=&tmpg3->npu.u; x3=0;y3=0; z3=0; i=0; - tempg1=head2.next; - while (tempg1!=&head2) { - tempg2=tempg1->next; + tmpg1=head2.next; + while (tmpg1!=&head2) { + tmpg2=tmpg1->next; BFieldOrU32(ptr,i, - polypt_map[SignI64(tempg1->p.x1-x3)+1+ - 3*(SignI64(tempg1->p.y1-y3)+1)]); + polypt_map[SignI64(tmpg1->p.x1-x3)+1+ + 3*(SignI64(tmpg1->p.y1-y3)+1)]); i+=3; - x3=tempg1->p.x1;y3=tempg1->p.y1; - QueRem(tempg1); - Free(tempg1); - tempg1=tempg2; + x3=tmpg1->p.x1;y3=tmpg1->p.y1; + QueRem(tmpg1); + Free(tmpg1); + tmpg1=tmpg2; } - tempg3->type=SPT_POLYPT; - tempg3->npu.num=num; - QueIns(tempg3,tempg); - QueRem(tempg); - tempg3->sel=tempg->sel; - Free(tempg); - tempg=tempg3; + tmpg3->type=SPT_POLYPT; + tmpg3->npu.num=num; + QueIns(tmpg3,tmpg); + QueRem(tmpg); + tmpg3->sel=tmpg->sel; + Free(tmpg); + tmpg=tmpg3; break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - p=&tempg->nu.u; - for (i=0;inu.num;i++,p++) { + p=&tmpg->nu.u; + for (i=0;inu.num;i++,p++) { x=p->x; y=p->y; z=p->z; Mat4x4MulXYZ(r,&x,&y,&z); p->x=x; @@ -524,13 +524,13 @@ U0 SpriteTransform(I64 *r,CSprite *head) } break; case SPT_SHIFTABLE_MESH: - x=tempg->pmu.x; y=tempg->pmu.y; z=tempg->pmu.z; + x=tmpg->pmu.x; y=tmpg->pmu.y; z=tmpg->pmu.z; Mat4x4MulXYZ(r,&x,&y,&z); - tempg->pmu.x=x; - tempg->pmu.y=y; - tempg->pmu.z=z; - p=&tempg->pmu.u; - for (i=0;ipmu.vertex_cnt;i++,p++) { + tmpg->pmu.x=x; + tmpg->pmu.y=y; + tmpg->pmu.z=z; + p=&tmpg->pmu.u; + for (i=0;ipmu.vertex_cnt;i++,p++) { x=p->x; y=p->y; z=p->z; Mat4x4MulXYZ(r,&x,&y,&z); p->x=x; @@ -539,8 +539,8 @@ U0 SpriteTransform(I64 *r,CSprite *head) } break; case SPT_MESH: - p=&tempg->mu.u; - for (i=0;imu.vertex_cnt;i++,p++) { + p=&tmpg->mu.u; + for (i=0;imu.vertex_cnt;i++,p++) { x=p->x; y=p->y; z=p->z; Mat4x4MulXYZ(r,&x,&y,&z); p->x=x; @@ -549,19 +549,19 @@ U0 SpriteTransform(I64 *r,CSprite *head) } break; } - tempg=tempg->next; + tmpg=tmpg->next; } } I64 SpriteQueSelCnt(CSprite *head,Bool val=TRUE) { I64 res=0; - CSprite *tempg=head->next; + CSprite *tmpg=head->next; val=ToBool(val); - while (tempg!=head) { - if (ToBool(tempg->sel)==val) + while (tmpg!=head) { + if (ToBool(tmpg->sel)==val) res++; - tempg=tempg->next; + tmpg=tmpg->next; } return res; } @@ -569,33 +569,33 @@ I64 SpriteQueSelCnt(CSprite *head,Bool val=TRUE) I64 SpriteQueSelAll(CSprite *head,Bool val=TRUE) { I64 res=0; - CSprite *tempg=head->next; - while (tempg!=head) { - tempg->sel=val; + CSprite *tmpg=head->next; + while (tmpg!=head) { + tmpg->sel=val; res++; - tempg=tempg->next; + tmpg=tmpg->next; } return res; } CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num) {//For the side-bar - CSprite *res=CAlloc(sizeof(CSprite)),*tempg; + CSprite *res=CAlloc(sizeof(CSprite)),*tmpg; CDocEntry *doc_e=doc->head.next; Bool found=FALSE; I64 num=0; QueInit(res); while (doc_e!=doc) { if (doc_e->type_u8==DOCT_MENU_VAL && doc_e->left_exp>=0) { - tempg=SpriteSetSettings(,head,doc_e->left_exp); - if (tempg!=head) { - tempg=MAllocIdent(tempg); - tempg->sel=Bt(&doc_e->type,DOCEt_SEL); + tmpg=SpriteSetSettings(,head,doc_e->left_exp); + if (tmpg!=head) { + tmpg=MAllocIdent(tmpg); + tmpg->sel=Bt(&doc_e->type,DOCEt_SEL); if (*_cur_elem_num==doc_e->left_exp) { *_cur_elem_num=num; found=TRUE; } - QueIns(tempg,res->last); + QueIns(tmpg,res->last); num++; } } @@ -610,16 +610,16 @@ CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num) U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num) { - CSprite *tempg; + CSprite *tmpg; CDocEntry *doc_cur_e=NULL,*doc_e; I64 cur_elem_num=0; U8 *st; DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n" "$$LK+PU+CX,\"Click for Help\"," "A=\"FI:::/Doc/SpriteSideBar.DD.Z\"$$\n\n"); - tempg=head->next; - while (tempg!=head) { - st=SpriteElem2Summary(tempg); + tmpg=head->next; + while (tmpg!=head) { + st=SpriteElem2Summary(tmpg); if (cur_elem_num==old_num) { DocPrint(doc,"$$LTRED$$"); doc_e=doc_cur_e=DocPrint(doc,"$$MU-UL,\"%Q\",LE=%d$$\n",st,cur_elem_num++); @@ -627,10 +627,10 @@ U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num) DocPrint(doc,"$$LTBLUE$$"); doc_e=DocPrint(doc,"$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++); } - BEqu(&doc_e->de_flags,DOCEf_SEL,tempg->sel); - BEqu(&doc_e->type,DOCEt_SEL,tempg->sel); + BEqu(&doc_e->de_flags,DOCEf_SEL,tmpg->sel); + BEqu(&doc_e->type,DOCEt_SEL,tmpg->sel); Free(st); - tempg=tempg->next; + tmpg=tmpg->next; } if (cur_elem_num==old_num) { DocPrint(doc,"$$LTRED$$"); @@ -655,7 +655,7 @@ U0 SpriteSideBarTask2(CTask *grand_parent) h=parent->win_bottom-parent->win_top; WinVert(pu_task->win_top,pu_task->win_top+h,parent); } - WinMgrSync; + Refresh; } } @@ -715,19 +715,19 @@ Bool SpriteEdText(CSprite **_head,I64 *_cur_elem_num) return res; } -#define GED_SEL_UNSEL_ALL 0 -#define GED_SEL 1 -#define GED_UNSEL 2 -#define GED_SHIFT_PTS 3 -#define GED_SHIFT_RECTS 4 -#define GED_SHIFT_SEL 5 -#define GED_TRANSFORM_SEL 6 -#define GED_SET_ORIGIN 7 -#define GED_SHIFT_SUB_ORIGIN 8 -#define GED_TEXT_ED 9 -#define GED_INS_CLIPBOARD 10 -#define GED_MAIN_MENU 11 -#define GED_EXIT 12 +#define SPED_SEL_UNSEL_ALL 0 +#define SPED_SEL 1 +#define SPED_UNSEL 2 +#define SPED_SHIFT_PTS 3 +#define SPED_SHIFT_RECTS 4 +#define SPED_SHIFT_SEL 5 +#define SPED_TRANSFORM_SEL 6 +#define SPED_SET_ORIGIN 7 +#define SPED_SHIFT_SUB_ORIGIN 8 +#define SPED_TEXT_ED 9 +#define SPED_INS_CLIPBOARD 10 +#define SPED_MAIN_MENU 11 +#define SPED_EXIT 12 U0 GrInit3() { @@ -746,19 +746,19 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num) CDoc *doc=DocNew; DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n" - "$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=GED_SEL_UNSEL_ALL$$\n" - "$$MU-UL,\"Select Elems\",LE=GED_SEL$$\n" - "$$MU-UL,\"Unsel Elems\",LE=GED_UNSEL$$\n\n" - "$$MU-UL,\"Shift Points\",LE=GED_SHIFT_PTS$$\n" - "$$MU-UL,\"Shift Points with Rects\",LE=GED_SHIFT_RECTS$$\n" - "$$MU-UL,\"Shift Selected Elems\",LE=GED_SHIFT_SEL$$\n" - "$$MU-UL,\"Transform Selected Elems\",LE=GED_TRANSFORM_SEL$$\n\n" - "$$MU-UL,\"Set Origin\",LE=GED_SET_ORIGIN$$\n" - "$$MU-UL,\"Insert Shift SubOrigin\",LE=GED_SHIFT_SUB_ORIGIN$$\n\n" - "$$MU-UL,\"Edit as Text\",LE=GED_TEXT_ED$$\n" - "$$MU-UL,\"Insert Clipboard Sprite's\",LE=GED_INS_CLIPBOARD$$\n\n" - "$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=GED_MAIN_MENU$$$$LTBLUE$$\n" - "$$MU-UL,\"Exit Sprite\",LE=GED_EXIT$$\n" + "$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=SPED_SEL_UNSEL_ALL$$\n" + "$$MU-UL,\"Select Elems\",LE=SPED_SEL$$\n" + "$$MU-UL,\"Unsel Elems\",LE=SPED_UNSEL$$\n\n" + "$$MU-UL,\"Shift Points\",LE=SPED_SHIFT_PTS$$\n" + "$$MU-UL,\"Shift Points with Rects\",LE=SPED_SHIFT_RECTS$$\n" + "$$MU-UL,\"Shift Selected Elems\",LE=SPED_SHIFT_SEL$$\n" + "$$MU-UL,\"Transform Selected Elems\",LE=SPED_TRANSFORM_SEL$$\n\n" + "$$MU-UL,\"Set Origin\",LE=SPED_SET_ORIGIN$$\n" + "$$MU-UL,\"Insert Shift SubOrigin\",LE=SPED_SHIFT_SUB_ORIGIN$$\n\n" + "$$MU-UL,\"Edit as Text\",LE=SPED_TEXT_ED$$\n" + "$$MU-UL,\"Insert Clipboard Sprite's\",LE=SPED_INS_CLIPBOARD$$\n\n" + "$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=SPED_MAIN_MENU$$$$LTBLUE$$\n" + "$$MU-UL,\"Exit Sprite\",LE=SPED_EXIT$$\n" "$$MU-UL,\"Abort Sprite\",LE=DOCM_CANCEL$$"); st=MStrPrint("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_head,_cur_elem_num); PopUp(st,NULL,&pu_task); @@ -772,10 +772,10 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num) return i; } -#define GSPT_SIMPLE_PT 0 -#define GSPT_WIDTH_HEIGHT 1 +#define SPEDT_SIMPLE_PT 0 +#define SPEDT_WIDTH_HEIGHT 1 -#define GSPF_SEL 1 +#define SPEDF_SEL 1 class CEdSprite { @@ -789,37 +789,37 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head) I64 i,num=0; I32 *ptr; CD3I32 *p; - CEdSprite *temppe; - CSprite *tempg=elems-offset(CSprite.start); + CEdSprite *tmpes; + CSprite *tmpg=elems-offset(CSprite.start); QueInit(head); - while (tempg->type) { - switch (tempg->type) { + while (tmpg->type) { + switch (tmpg->type) { case SPT_ELLIPSE: case SPT_POLYGON: - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_WIDTH_HEIGHT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&tempg->pwha.x1; - temppe->y=&tempg->pwha.y1; - temppe->w=&tempg->pwha.width; - temppe->h=&tempg->pwha.height; - temppe->num=num; - QueIns(temppe,head->last); + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_WIDTH_HEIGHT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&tmpg->pwha.x1; + tmpes->y=&tmpg->pwha.y1; + tmpes->w=&tmpg->pwha.width; + tmpes->h=&tmpg->pwha.height; + tmpes->num=num; + QueIns(tmpes,head->last); goto pq_x1_y1; case SPT_RECT: case SPT_ROTATED_RECT: case SPT_LINE: case SPT_ARROW: case SPT_PLANAR_SYMMETRY: - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&tempg->pp.x2; - temppe->y=&tempg->pp.y2; - temppe->num=num; - QueIns(temppe,head->last); + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&tmpg->pp.x2; + tmpes->y=&tmpg->pp.y2; + tmpes->num=num; + QueIns(tmpes,head->last); case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: @@ -829,74 +829,74 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head) case SPT_FLOOD_FILL_NOT: case SPT_CIRCLE: pq_x1_y1: - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&tempg->p.x1; - temppe->y=&tempg->p.y1; - temppe->num=num; - QueIns(temppe,head->last); + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&tmpg->p.x1; + tmpes->y=&tmpg->p.y1; + tmpes->num=num; + QueIns(tmpes,head->last); break; case SPT_SHIFT: - x+=tempg->p.x1; - y+=tempg->p.y1; + x+=tmpg->p.x1; + y+=tmpg->p.y1; break; case SPT_POLYLINE: - ptr=&tempg->nu.u; - for (i=0;inu.num;i++) { - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&ptr[i<<1]; - temppe->y=&ptr[i<<1+1]; - temppe->num=num; - QueIns(temppe,head->last); + ptr=&tmpg->nu.u; + for (i=0;inu.num;i++) { + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&ptr[i<<1]; + tmpes->y=&ptr[i<<1+1]; + tmpes->num=num; + QueIns(tmpes,head->last); } break; case SPT_POLYPT: - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&tempg->npu.x; - temppe->y=&tempg->npu.y; - temppe->num=num; - QueIns(temppe,head->last); + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&tmpg->npu.x; + tmpes->y=&tmpg->npu.y; + tmpes->num=num; + QueIns(tmpes,head->last); break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - p=&tempg->nu.u; - for (i=0;inu.num;i++) { - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&p[i].x; - temppe->y=&p[i].y; - temppe->z=&p[i].z; - temppe->num=num; - QueIns(temppe,head->last); + p=&tmpg->nu.u; + for (i=0;inu.num;i++) { + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&p[i].x; + tmpes->y=&p[i].y; + tmpes->z=&p[i].z; + tmpes->num=num; + QueIns(tmpes,head->last); } break; case SPT_MESH: break; case SPT_SHIFTABLE_MESH: - temppe=CAlloc(sizeof(CEdSprite)); - temppe->type=GSPT_SIMPLE_PT; - temppe->xx=x; - temppe->yy=y; - temppe->x=&tempg->pmu.x; - temppe->y=&tempg->pmu.y; - temppe->z=&tempg->pmu.z; - temppe->num=num; - QueIns(temppe,head->last); + tmpes=CAlloc(sizeof(CEdSprite)); + tmpes->type=SPEDT_SIMPLE_PT; + tmpes->xx=x; + tmpes->yy=y; + tmpes->x=&tmpg->pmu.x; + tmpes->y=&tmpg->pmu.y; + tmpes->z=&tmpg->pmu.z; + tmpes->num=num; + QueIns(tmpes,head->last); break; } - tempg(U8 *)+=SpriteElemSize(tempg); + tmpg(U8 *)+=SpriteElemSize(tmpg); num++; } } @@ -904,51 +904,51 @@ pq_x1_y1: U0 SpriteCtrlPtsDraw(CDC *dc,CEdSprite *head) { I64 x,y; - CEdSprite *temppe; - WinMgrSync; + CEdSprite *tmpes; + Refresh; DCFill(dc); if (Blink(20)) { - temppe=head->next; - while (temppe!=head) { - switch (temppe->type) { - case GSPT_SIMPLE_PT: - x=*temppe->x+temppe->xx; - y=*temppe->y+temppe->yy; + tmpes=head->next; + while (tmpes!=head) { + switch (tmpes->type) { + case SPEDT_SIMPLE_PT: + x=*tmpes->x+tmpes->xx; + y=*tmpes->y+tmpes->yy; break; - case GSPT_WIDTH_HEIGHT: - x=*temppe->w+*temppe->x+temppe->xx; - y=*temppe->h+*temppe->y+temppe->yy; + case SPEDT_WIDTH_HEIGHT: + x=*tmpes->w+*tmpes->x+tmpes->xx; + y=*tmpes->h+*tmpes->y+tmpes->yy; break; } - if (temppe->flags&GSPF_SEL) + if (tmpes->flags&SPEDF_SEL) dc->color=RED; else dc->color=BLACK; GrRect(dc,x-2,y-2,4,4); dc->color=WHITE; GrRect(dc,x-1,y-1,2,2); - temppe=temppe->next; + tmpes=tmpes->next; } } } U0 SpriteCtrlPtsMove(CEdSprite *head,I64 dx,I64 dy) { - CEdSprite *temppe; - temppe=head->next; - while (temppe!=head) { - if (temppe->flags&GSPF_SEL) - switch (temppe->type) { - case GSPT_SIMPLE_PT: - if (temppe->x) *temppe->x+=dx; - if (temppe->y) *temppe->y+=dy; + CEdSprite *tmpes; + tmpes=head->next; + while (tmpes!=head) { + if (tmpes->flags&SPEDF_SEL) + switch (tmpes->type) { + case SPEDT_SIMPLE_PT: + if (tmpes->x) *tmpes->x+=dx; + if (tmpes->y) *tmpes->y+=dy; break; - case GSPT_WIDTH_HEIGHT: - if (temppe->w) *temppe->w+=dx; - if (temppe->h) *temppe->h+=dy; + case SPEDT_WIDTH_HEIGHT: + if (tmpes->w) *tmpes->w+=dx; + if (tmpes->h) *tmpes->h+=dy; break; } - temppe=temppe->next; + tmpes=tmpes->next; } } @@ -957,42 +957,42 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) I64 msg_code,a1,a2,xx,yy,xx2,yy2,dd,best_dd,cur_elem_num; Bool res=TRUE; CDC *dc=DCAlias; - CEdSprite head,*temppe,*best_pe; + CEdSprite head,*tmpes,*best_es; SpritePtQueNew(elems,x,y,&head); cur_elem_num=0; if (head.next!=&head) { while (TRUE) { - SpriteCtrlPtsDraw(dc,&head); //has WinMgrSync + SpriteCtrlPtsDraw(dc,&head); //has Refresh switch (msg_code=ScanMsg(&a1,&a2, 1<type) { - case GSPT_SIMPLE_PT: - dd=SqrI64(*temppe->x+temppe->xx-xx)+ - SqrI64(*temppe->y+temppe->yy-yy); + tmpes=head.next; + while (tmpes!=&head) { + switch (tmpes->type) { + case SPEDT_SIMPLE_PT: + dd=SqrI64(*tmpes->x+tmpes->xx-xx)+ + SqrI64(*tmpes->y+tmpes->yy-yy); break; - case GSPT_WIDTH_HEIGHT: - dd=SqrI64(*temppe->x+*temppe->w+temppe->xx-xx)+ - SqrI64(*temppe->y+*temppe->h+temppe->yy-yy); + case SPEDT_WIDTH_HEIGHT: + dd=SqrI64(*tmpes->x+*tmpes->w+tmpes->xx-xx)+ + SqrI64(*tmpes->y+*tmpes->h+tmpes->yy-yy); break; } if (ddnext; + tmpes=tmpes->next; } - cur_elem_num=best_pe->num; - best_pe->flags|=GSPF_SEL; + cur_elem_num=best_es->num; + best_es->flags|=SPEDF_SEL; break; - case GED_SHIFT_RECTS: + case SPED_SHIFT_RECTS: xx2=xx=a1; yy2=yy=a2; while (TRUE) { SpriteCtrlPtsDraw(dc,&head); @@ -1007,21 +1007,21 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) } if (xx2type) { - case GSPT_SIMPLE_PT: - if (xx<=*temppe->x+temppe->xx<=xx2 && - yy<=*temppe->y+temppe->yy<=yy2) - temppe->flags|=GSPF_SEL; + tmpes=head.next; + while (tmpes!=&head) { + switch (tmpes->type) { + case SPEDT_SIMPLE_PT: + if (xx<=*tmpes->x+tmpes->xx<=xx2 && + yy<=*tmpes->y+tmpes->yy<=yy2) + tmpes->flags|=SPEDF_SEL; break; - case GSPT_WIDTH_HEIGHT: - if (xx<=*temppe->x+*temppe->w+temppe->xx<=xx2 && - yy<=*temppe->y+*temppe->h+temppe->yy<=yy2) - temppe->flags|=GSPF_SEL; + case SPEDT_WIDTH_HEIGHT: + if (xx<=*tmpes->x+*tmpes->w+tmpes->xx<=xx2 && + yy<=*tmpes->y+*tmpes->h+tmpes->yy<=yy2) + tmpes->flags|=SPEDF_SEL; break; } - temppe=temppe->next; + tmpes=tmpes->next; } do { SpriteCtrlPtsDraw(dc,&head); @@ -1038,10 +1038,10 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) xx=a1;yy=a2; } } while (msg_code!=MSG_IP_L_UP); - temppe=head.next; - while (temppe!=&head) { - temppe->flags&=~GSPF_SEL; - temppe=temppe->next; + tmpes=head.next; + while (tmpes!=&head) { + tmpes->flags&=~SPEDF_SEL; + tmpes=tmpes->next; } break; case MSG_KEY_DOWN: @@ -1054,11 +1054,11 @@ gs_key: goto gs_done; case 'p': case 'P': - mode=GED_SHIFT_PTS; + mode=SPED_SHIFT_PTS; break; case 'r': case 'R': - mode=GED_SHIFT_RECTS; + mode=SPED_SHIFT_RECTS; break; } break; @@ -1080,14 +1080,14 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, CSprite **_head,I64 *_cur_elem_num) { CDocEntry *doc_e2; - CDocBin *tempb; + CDocBin *tmpb; Bool unlock; I64 i,r[16],msg_code,a1,a2,xx,yy, old_de_flags; - CSprite *cur_elem,*head2,*next,*last,*tempg,*insert_pt; + CSprite *cur_elem,*head2,*next,*last,*tmpg,*insert_pt; old_de_flags=doc_ce->de_flags; - tempb=doc_ce->bin_data; + tmpb=doc_ce->bin_data; DocUnlock(doc); SpriteQueSelAll(*_head,FALSE); do { @@ -1096,33 +1096,33 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, StrCpy(Fs->task_title,"Sprite Edit Menu"); i=PopUpSpriteEd(_head,_cur_elem_num); SpriteEdUpdate(doc,doc_ce,*_head); - if (0<=itask_title,DefineSub(i,"ST_SPRITE_ED_MENU")); switch (i) { - case GED_SEL_UNSEL_ALL: + case SPED_SEL_UNSEL_ALL: if (!SpriteQueSelCnt(*_head)) SpriteQueSelAll(*_head); else SpriteQueSelAll(*_head,FALSE); break; - case GED_SEL: - case GED_UNSEL: + case SPED_SEL: + case SPED_UNSEL: doc_ce->de_flags=old_de_flags; - doc->cur_sprite=tempb->data; + doc->cur_sprite=tmpb->data; do { doc->nearest_sprite_elem_num=0; msg_code=GetMsg(&a1,&a2,1<nearest_sprite_elem_num; cur_elem=SpriteSetSettings(,*_head,*_cur_elem_num); - cur_elem->sel=ToBool(i==GED_SEL); + cur_elem->sel=ToBool(i==SPED_SEL); GetMsg(,,1<cur_sprite=NULL; break; - case GED_SET_ORIGIN: + case SPED_SET_ORIGIN: SpriteQueSelAll(*_head); doc_ce->de_flags=old_de_flags; GetMsg(&a1,&a2,1<de_flags=old_de_flags; @@ -1146,22 +1146,22 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, if (!SpriteQueSelCnt(*_head,FALSE)) SpriteQueSelAll(*_head,FALSE); break; - case GED_SHIFT_PTS: - case GED_SHIFT_RECTS: + case SPED_SHIFT_PTS: + case SPED_SHIFT_RECTS: RegOneTimePopUp(ARf_CSPRITE_PTS_RECTANGLES, "You can switch between points\n" "and rectangles with '$$GREEN$$p$$FG$$' and '$$GREEN$$r$$FG$$'.\n" "Press '$$GREEN$$r$$FG$$' after one rectangle\n" "to OR another rectangle.\n"); doc_ce->de_flags=old_de_flags; - if (SpriteShiftPts(tempb->data,x,y,_cur_elem_num,i)) { + if (SpriteShiftPts(tmpb->data,x,y,_cur_elem_num,i)) { QueDel(*_head); Free(*_head); - *_head=Sprite2SpriteQue(tempb->data); + *_head=Sprite2SpriteQue(tmpb->data); } else SpriteEdUpdate(doc,doc_ce,*_head); break; - case GED_TRANSFORM_SEL: + case SPED_TRANSFORM_SEL: if (!SpriteQueSelCnt(*_head)) SpriteQueSelAll(*_head); if (PopUpTransform(r)) { @@ -1171,26 +1171,26 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, if (!SpriteQueSelCnt(*_head,FALSE)) SpriteQueSelAll(*_head,FALSE); break; - case GED_SHIFT_SUB_ORIGIN: + case SPED_SHIFT_SUB_ORIGIN: doc_ce->de_flags=old_de_flags; insert_pt=SpriteSetSettings(,*_head,*_cur_elem_num); - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_SHIFT)); - tempg->type=SPT_SHIFT; - tempg->p.x1=0; - tempg->p.y1=0; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_SHIFT)); + tmpg->type=SPT_SHIFT; + tmpg->p.x1=0; + tmpg->p.y1=0; + QueIns(tmpg,insert_pt->last); GetMsg(&a1,&a2,1<p.x1=a1-xx; - tempg->p.y1=a2-yy; + tmpg->p.x1=a1-xx; + tmpg->p.y1=a2-yy; SpriteEdUpdate(doc,doc_ce,*_head); } while (msg_code!=MSG_IP_L_UP); *_cur_elem_num+=1; break; - case GED_INS_CLIPBOARD: + case SPED_INS_CLIPBOARD: RegOneTimePopUp(ARf_CSPRITE_INS_CLIPBOARD, "You will probably want to shift around\n" "the location of element groups. Use\n" @@ -1204,10 +1204,10 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, if (doc_e2->type_u8==DOCT_SPRITE) { head2=Sprite2SpriteQue(doc_e2->bin_data->data); if (head2->next!=head2) { - tempg=head2->next; - while (tempg!=head2) { + tmpg=head2->next; + while (tmpg!=head2) { *_cur_elem_num+=1; - tempg=tempg->next; + tmpg=tmpg->next; } next=head2->next; last=head2->last; @@ -1224,18 +1224,18 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, DocUnlock(sys_clipboard_doc); SpriteEdUpdate(doc,doc_ce,*_head); break; - case GED_TEXT_ED: + case SPED_TEXT_ED: if (SpriteEdText(_head,_cur_elem_num)) SpriteEdUpdate(doc,doc_ce,*_head); break; } } - } while (i!=DOCM_CANCEL && i!=GED_EXIT && i!=GED_MAIN_MENU); + } while (i!=DOCM_CANCEL && i!=SPED_EXIT && i!=SPED_MAIN_MENU); doc_ce->de_flags=old_de_flags; switch (i) { - case DOCM_CANCEL: return GE_ABORT; - case GED_EXIT: return GE_EXIT; - case GED_MAIN_MENU: return GE_CONT; + case DOCM_CANCEL: return SPE_ABORT; + case SPED_EXIT: return SPE_EXIT; + case SPED_MAIN_MENU: return SPE_CONT; } } diff --git a/Adam/Gr/SpriteMain.HC b/Adam/Gr/SpriteMain.HC index c1da4e6..2ca8f18 100644 --- a/Adam/Gr/SpriteMain.HC +++ b/Adam/Gr/SpriteMain.HC @@ -1,8 +1,8 @@ #help_index "Graphics/Sprite;Sprites" #define SPT_MENU -2 -#define SPT_INS_SCREEN_BITMAP -3 -#define SPT_INS_TRANSPARENT_SCREEN_BITMAP -4 +#define SPT_INS_SCRN_BITMAP -3 +#define SPT_INS_TRANSPARENT_SCRN_BITMAP -4 #define SPT_ED_MENU -5 #define SPT_EXIT -6 @@ -43,9 +43,9 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num, "$$MU-UL,\"BSpline3\",LE=SPT_BSPLINE3$$\n" "$$MU-UL,\"BSpline2 Closed\",LE=SPT_BSPLINE2_CLOSED$$\n" "$$MU-UL,\"BSpline3 Closed\",LE=SPT_BSPLINE3_CLOSED$$\n" - "$$MU-UL,\"Insert Screen-Captured BitMap\",LE=SPT_INS_SCREEN_BITMAP$$\n" - "$$MU-UL,\"Insert Transparent Screen-Captured BitMap\"," - "LE=SPT_INS_TRANSPARENT_SCREEN_BITMAP$$\n" + "$$MU-UL,\"Insert Scrn-Captured BitMap\",LE=SPT_INS_SCRN_BITMAP$$\n" + "$$MU-UL,\"Insert Transparent Scrn-Captured BitMap\"," + "LE=SPT_INS_TRANSPARENT_SCRN_BITMAP$$\n" "$$PURPLE$$$$MU-UL,\"+] Create or Edit 3D Mesh\",LE=SPT_MESH$$\n" "$$MU-UL,\"+] Create or Edit Shiftable 3D Mesh\"," "LE=SPT_SHIFTABLE_MESH$$\n" @@ -101,12 +101,12 @@ Bool PopUpExtents(I64 *_x1,I64 *_x2,I64 *_y1,I64 *_y2) return i; } -U0 SpriteScreenInit(CDC *dc,I64,I64) +U0 SpriteScrnInit(CDC *dc,I64,I64) { //Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$. I64 xx,yy,old_pen_width=dc->pen_width; CColorROPU32 old_color=dc->color; - WinMgrSync; + Refresh; DCFill(dc); if (dc->flags&DCF_SYMMETRY) { dc->flags&=~DCF_SYMMETRY; @@ -136,7 +136,7 @@ CSprite *SMLine(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) dc->color=color&COLORROP_NO_ROP0_MASK; GrLine3(dc,x1,y1,0,x2,y2,0); msg_code=GetMsg(&a1,&a2,1<color=color&COLORROP_NO_ROP0_MASK; @@ -158,7 +158,7 @@ CSprite *SMArrow(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) dc->color=color&COLORROP_NO_ROP0_MASK; GrArrow3(dc,x1,y1,0,x2,y2,0); msg_code=GetMsg(&a1,&a2,1<color=color&COLORROP_NO_ROP0_MASK; @@ -184,7 +184,7 @@ CSprite *SMPlanarSymmetry(CDC *dc,I64 x,I64 y,I64 a1,I64 a2) dc->color=ROPF_DITHER+WHITE<<16+BLACK; GrLine3(dc,x1,y1,0,x2,y2,0); msg_code=GetMsg(&a1,&a2,1<flags=old_flags&DCF_SYMMETRY|dc->flags&~DCF_SYMMETRY; @@ -206,7 +206,7 @@ CSprite *SMRect(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) dc->color=color&COLORROP_NO_ROP0_MASK; GrRect3(dc,xx1,yy1,0,xx2-xx1,yy2-yy1); msg_code=GetMsg(&a1,&a2,1<pix_left+Fs->scroll_x,yy1+Fs->pix_top+Fs->scroll_y, xx2+Fs->pix_left+Fs->scroll_x,yy2+Fs->pix_top+Fs->scroll_y); msg_code=GetMsg(&a1,&a2,1<pwhu.height=yy2-yy1; res->pwhu.x1=0; res->pwhu.y1=0; - SpriteScreenInit(dc,x,y); - i=gr.screen_zoom; + SpriteScrnInit(dc,x,y); + i=gr.scrn_zoom; GrScaleZoom(1.0/i); - WinMgrSync(2,TRUE); + Refresh(2,TRUE); - dc3=DCScreenCapture; + dc3=DCScrnCapture; img=DCExt(dc3,Fs->pix_left+Fs->scroll_x+xx1,Fs->pix_top+Fs->scroll_y+yy1, Fs->pix_left+Fs->scroll_x+xx2-1,Fs->pix_top+Fs->scroll_y+yy2-1); - if (eletype==SPT_INS_TRANSPARENT_SCREEN_BITMAP) + if (eletype==SPT_INS_TRANSPARENT_SCRN_BITMAP) DCColorChg(img,bm_bkcolor); GrScaleZoom(i); MemCpy(&res->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); @@ -291,7 +291,7 @@ CSprite *SMCircle(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) dc->color=color&COLORROP_NO_ROP0_MASK; GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2))); msg_code=GetMsg(&a1,&a2,1<color=color&COLORROP_NO_ROP0_MASK; @@ -313,7 +313,7 @@ CSprite *SMEllipse(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) dc->color=color&COLORROP_NO_ROP0_MASK; GrEllipse3(dc,(x1+x2)>>1,(y1+y2)>>1,0,AbsI64(x1-x2)>>1,AbsI64(y1-y2)>>1); msg_code=GetMsg(&a1,&a2,1<pwha.x1+x,res->pwha.y1+y,0, res->pwha.width,res->pwha.height,res->pwha.angle); msg_code=GetMsg(&a1,&a2,1<pwha.x1+x),y2-(res->pwha.y1+y)); @@ -360,7 +360,7 @@ CSprite *SMPolygon(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,I64 sides, GrRegPoly3(dc,(x1+x2)>>1,(y1+y2)>>1,0, AbsI64(x1-x2)>>1,AbsI64(y1-y2)>>1,sides); msg_code=GetMsg(&a1,&a2,1<pwhas.width,res->pwhas.height, res->pwhas.sides,res->pwhas.angle); msg_code=GetMsg(&a1,&a2,1<pwhas.x1+x),y2-(res->pwhas.y1+y)); @@ -405,7 +405,7 @@ CSprite *SMPolyLineFamily(I64 eletype,CDC *dc,I64 x,I64 y,I64 a1,I64 a2, I64 i,num=0,msg_code,x1=a1,y1=a2,x2=a1,y2=a2; I32 *ptr; CD3I32 *p; - CSprite *res,*tempg,*tempg1,head2; + CSprite *res,*tmpg,*tmpg1,head2; QueInit(&head2); do { @@ -438,22 +438,22 @@ CSprite *SMPolyLineFamily(I64 eletype,CDC *dc,I64 x,I64 y,I64 a1,I64 a2, if (num>1) { res=CAlloc(SpriteElemQuedBaseSize(SPT_POLYLINE)+num*sizeof(CD2I32)); ptr=&res->nu.u; - tempg1=head2.next; + tmpg1=head2.next; for (i=0;inext; - ptr[i<<1]=tempg1->p.x1; - ptr[i<<1+1]=tempg1->p.y1; - Free(tempg1); - tempg1=tempg; + tmpg=tmpg1->next; + ptr[i<<1]=tmpg1->p.x1; + ptr[i<<1+1]=tmpg1->p.y1; + Free(tmpg1); + tmpg1=tmpg; } res->type=SPT_POLYLINE; res->nu.num=num; } else { - tempg1=head2.next; + tmpg1=head2.next; for (i=0;inext; - Free(tempg1); - tempg1=tempg; + tmpg=tmpg1->next; + Free(tmpg1); + tmpg1=tmpg; } res=NULL; } @@ -465,22 +465,22 @@ CSprite *SMPolyLineFamily(I64 eletype,CDC *dc,I64 x,I64 y,I64 a1,I64 a2, if (num>2) { res=CAlloc(SpriteElemQuedBaseSize(eletype)+num*sizeof(CD3I32)); p=&res->nu.u; - tempg1=head2.next; + tmpg1=head2.next; for (i=0;inext; - p[i].x=tempg1->p.x1; - p[i].y=tempg1->p.y1; - Free(tempg1); - tempg1=tempg; + tmpg=tmpg1->next; + p[i].x=tmpg1->p.x1; + p[i].y=tmpg1->p.y1; + Free(tmpg1); + tmpg1=tmpg; } res->type=eletype; res->nu.num=num; } else { - tempg1=head2.next; + tmpg1=head2.next; for (i=0;inext; - Free(tempg1); - tempg1=tempg; + tmpg=tmpg1->next; + Free(tmpg1); + tmpg1=tmpg; } res=NULL; } @@ -493,7 +493,7 @@ CSprite *SMPolyPoint(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) { I64 i,num=0,msg_code,x1=a1,y1=a2,x2=a1,y2=a2,x3,y3; I32 *ptr; - CSprite *res,*tempg,*tempg1,head2; + CSprite *res,*tmpg,*tmpg1,head2; QueInit(&head2); x3=a1-x; y3=a2-y; @@ -510,7 +510,7 @@ CSprite *SMPolyPoint(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) res=head2.next; x1=x3; y1=y3; while (res!=&head2) { - tempg=res->next; + tmpg=res->next; if (res->p.x1==x1 && res->p.y1==y1) { QueRem(res); Free(res); @@ -519,7 +519,7 @@ CSprite *SMPolyPoint(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) x1=res->p.x1; y1=res->p.y1; } - res=tempg; + res=tmpg; } res=CAlloc(SpriteElemQuedBaseSize(SPT_POLYPT)+(num*3+7)>>3); @@ -528,16 +528,16 @@ CSprite *SMPolyPoint(CDC *dc,I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color) ptr=&res->npu.u; x1=x3; y1=y3; i=0; - tempg1=head2.next; - while (tempg1!=&head2) { - tempg=tempg1->next; - BFieldOrU32(ptr,i,polypt_map[SignI64(tempg1->p.x1-x1)+1+ - 3*(SignI64(tempg1->p.y1-y1)+1)]); + tmpg1=head2.next; + while (tmpg1!=&head2) { + tmpg=tmpg1->next; + BFieldOrU32(ptr,i,polypt_map[SignI64(tmpg1->p.x1-x1)+1+ + 3*(SignI64(tmpg1->p.y1-y1)+1)]); i+=3; - x1=tempg1->p.x1;y1=tempg1->p.y1; - QueRem(tempg1); - Free(tempg1); - tempg1=tempg; + x1=tmpg1->p.x1;y1=tmpg1->p.y1; + QueRem(tmpg1); + Free(tmpg1); + tmpg1=tmpg; } res->type=SPT_POLYPT; res->npu.num=num; @@ -548,7 +548,7 @@ U0 SMTextFamily(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head,CDC *dc, I64 x,I64 y,I64 a1,I64 a2,CColorROPU32 color,I64 *_cur_elem_num, I64 old_de_flags) { - CSprite *tempg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num); + CSprite *tmpg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num); I64 msg_code,x1,y1; U8 *st; doc_ce->de_flags|=DOCEF_DONT_DRAW; @@ -564,15 +564,15 @@ U0 SMTextFamily(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head,CDC *dc, case SPT_TEXT_DIAMOND: GrTextDiamond3(dc,x1,y1,0,st); break; } msg_code=GetMsg(&a1,&a2,1<type=eletype; - tempg->ps.x1=x1-x; - tempg->ps.y1=y1-y; - StrCpy(tempg->ps.st,st); - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(eletype)+StrLen(st)+1); + tmpg->type=eletype; + tmpg->ps.x1=x1-x; + tmpg->ps.y1=y1-y; + StrCpy(tmpg->ps.st,st); + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); *_cur_elem_num+=1; } @@ -584,7 +584,7 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head, Bool sel,I64 xx1=0,I64 yy1=0,I64 xx2=0,I64 yy2=0,I64 *_cur_elem_num) { I64 i,msg_code,x=xx,y=yy,x1=a1,y1=a2,x2=a1,y2=a2,old_width; - CSprite *tempg,*tempg1,*insert_pt; + CSprite *tmpg,*tmpg1,*insert_pt; CDC *img; insert_pt=SpriteSetSettings(,head,*_cur_elem_num,xx,yy,,,&x,&y); @@ -599,7 +599,7 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head, dc->color=ROPF_DITHER+WHITE<<16+BLACK; GrBorder(dc,xx1,yy1,xx2,yy2); msg_code=GetMsg(&a1,&a2,1<type=SPT_BITMAP; - tempg->pwhu.width=xx2-xx1; - tempg->pwhu.height=yy2-yy1; - tempg->pwhu.x1=xx1-x; - tempg->pwhu.y1=yy1-y; - img=DCNew(tempg->pwhu.width,tempg->pwhu.height,Fs); + tmpg->type=SPT_BITMAP; + tmpg->pwhu.width=xx2-xx1; + tmpg->pwhu.height=yy2-yy1; + tmpg->pwhu.x1=xx1-x; + tmpg->pwhu.y1=yy1-y; + img=DCNew(tmpg->pwhu.width,tmpg->pwhu.height,Fs); img->color=bm_bkcolor; - GrRect(img,0,0,tempg->pwhu.width,tempg->pwhu.height); - tempg1=insert_pt; - if (tempg1==head || tempg1->type!=SPT_BITMAP) { + GrRect(img,0,0,tmpg->pwhu.width,tmpg->pwhu.height); + tmpg1=insert_pt; + if (tmpg1==head || tmpg1->type!=SPT_BITMAP) { SpriteSetSettings(img,head,0,-(xx1-x),-(yy1-y)); x=xx; y=yy; Sprite3(img,-(xx1-x),-(yy1-y),0,doc_ce->bin_data->data); @@ -636,29 +636,29 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head, *_cur_elem_num=1; } else { SpriteSetSettings(img,head,*_cur_elem_num,-(xx1-x),-(yy1-y)); - Sprite3(img,-(xx1-x),-(yy1-y),0,&tempg1->start,TRUE); - insert_pt=tempg1->next; - QueRem(tempg1); - Free(tempg1); + Sprite3(img,-(xx1-x),-(yy1-y),0,&tmpg1->start,TRUE); + insert_pt=tmpg1->next; + QueRem(tmpg1); + Free(tmpg1); } - MemCpy(&tempg->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); + MemCpy(&tmpg->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); switch (i=SpriteBitMapEd(doc,doc_ce,dc,&xx1,&yy1, &xx2,&yy2,&img,bm_bkcolor)) { - case GE_EXIT: - case GE_CONT: - Free(tempg); - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_BITMAP)+ + case SPE_EXIT: + case SPE_CONT: + Free(tmpg); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_BITMAP)+ ((xx2-xx1+7)&~7)*(yy2-yy1)); - tempg->type=eletype; - tempg->pwhu.width=xx2-xx1; - tempg->pwhu.height=yy2-yy1; - tempg->pwhu.x1=xx1-x; - tempg->pwhu.y1=yy1-y; - MemCpy(&tempg->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); + tmpg->type=eletype; + tmpg->pwhu.width=xx2-xx1; + tmpg->pwhu.height=yy2-yy1; + tmpg->pwhu.x1=xx1-x; + tmpg->pwhu.y1=yy1-y; + MemCpy(&tmpg->pwhu.u,img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); break; } - QueIns(tempg,insert_pt->last); + QueIns(tmpg,insert_pt->last); DCDel(img); SpriteEdUpdate(doc,doc_ce,head); return i; @@ -666,46 +666,46 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *head, U0 SMMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,I64 *_cur_elem_num) { - CSprite *tempg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num), - *tempg1=insert_pt; + CSprite *tmpg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num), + *tmpg1=insert_pt; CD3I32 *p; I64 i,size,x1,y1,z1; I32 *mesh,*old_mesh; - if (tempg1!=head && tempg1->type==SPT_MESH) - old_mesh=&tempg1->mu.vertex_cnt; - else if (tempg1!=head && tempg1->type==SPT_SHIFTABLE_MESH) { - x1=tempg1->pmu.x; - y1=tempg1->pmu.y; - z1=tempg1->pmu.z; - p=&tempg1->pmu.u; - for (i=0;ipmu.vertex_cnt;i++,p++) { + if (tmpg1!=head && tmpg1->type==SPT_MESH) + old_mesh=&tmpg1->mu.vertex_cnt; + else if (tmpg1!=head && tmpg1->type==SPT_SHIFTABLE_MESH) { + x1=tmpg1->pmu.x; + y1=tmpg1->pmu.y; + z1=tmpg1->pmu.z; + p=&tmpg1->pmu.u; + for (i=0;ipmu.vertex_cnt;i++,p++) { p->x+=x1; p->y+=y1; p->z+=z1; } - old_mesh=&tempg1->pmu.vertex_cnt; + old_mesh=&tmpg1->pmu.vertex_cnt; } else old_mesh=NULL; if (mesh=SpriteMeshEd(old_mesh,&size,TRUE)) { - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_MESH)-sizeof(I32)*2+size); - tempg->type=SPT_MESH; - MemCpy(&tempg->mu.vertex_cnt,mesh,size); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_MESH)-sizeof(I32)*2+size); + tmpg->type=SPT_MESH; + MemCpy(&tmpg->mu.vertex_cnt,mesh,size); Free(mesh); - QueIns(tempg,insert_pt->last); + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); if (old_mesh) { - insert_pt=tempg; - QueRem(tempg1); - Free(tempg1); + insert_pt=tmpg; + QueRem(tmpg1); + Free(tmpg1); SpriteEdUpdate(doc,doc_ce,head); } else *_cur_elem_num+=1; - } else if (old_mesh && tempg1->type==SPT_SHIFTABLE_MESH) { - x1=tempg1->pmu.x; - y1=tempg1->pmu.y; - z1=tempg1->pmu.z; - p=&tempg1->pmu.u; - for (i=0;ipmu.vertex_cnt;i++,p++) { + } else if (old_mesh && tmpg1->type==SPT_SHIFTABLE_MESH) { + x1=tmpg1->pmu.x; + y1=tmpg1->pmu.y; + z1=tmpg1->pmu.z; + p=&tmpg1->pmu.u; + for (i=0;ipmu.vertex_cnt;i++,p++) { p->x-=x1; p->y-=y1; p->z-=z1; @@ -716,72 +716,72 @@ U0 SMMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head,I64 *_cur_elem_num) U0 SMShiftableMesh(CDoc *doc,CDocEntry *doc_ce,CSprite *head, I64 x,I64 y,I64 a1,I64 a2,I64 *_cur_elem_num) { - CSprite *tempg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num), - *tempg1=insert_pt; + CSprite *tmpg,*insert_pt=SpriteSetSettings(,head,*_cur_elem_num), + *tmpg1=insert_pt; CD3I32 *p; I64 i,size,z,x1,y1,z1; I32 *mesh,*old_mesh; - if (tempg1!=head && tempg1->type==SPT_MESH) { + if (tmpg1!=head && tmpg1->type==SPT_MESH) { z=0; x1=-(a1-x); y1=-(a2-y); z1=z; - p=&tempg1->mu.u; - for (i=0;imu.vertex_cnt;i++,p++) { + p=&tmpg1->mu.u; + for (i=0;imu.vertex_cnt;i++,p++) { p->x+=x1; p->y+=y1; p->z+=z1; } - old_mesh=&tempg1->mu.vertex_cnt; - } else if (tempg1!=head && tempg1->type==SPT_SHIFTABLE_MESH) { - z=-tempg1->pmu.z; - x1=tempg1->pmu.x-(a1-x); - y1=tempg1->pmu.y-(a2-y); - z1=tempg1->pmu.z+z; - p=&tempg1->pmu.u; - for (i=0;ipmu.vertex_cnt;i++,p++) { + old_mesh=&tmpg1->mu.vertex_cnt; + } else if (tmpg1!=head && tmpg1->type==SPT_SHIFTABLE_MESH) { + z=-tmpg1->pmu.z; + x1=tmpg1->pmu.x-(a1-x); + y1=tmpg1->pmu.y-(a2-y); + z1=tmpg1->pmu.z+z; + p=&tmpg1->pmu.u; + for (i=0;ipmu.vertex_cnt;i++,p++) { p->x+=x1; p->y+=y1; p->z+=z1; } - old_mesh=&tempg1->pmu.vertex_cnt; + old_mesh=&tmpg1->pmu.vertex_cnt; } else { z=0; old_mesh=NULL; } if (mesh=SpriteMeshEd(old_mesh,&size,TRUE)) { - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_SHIFTABLE_MESH)-sizeof(I32)*2+size); - tempg->type=SPT_SHIFTABLE_MESH; - MemCpy(&tempg->pmu.vertex_cnt,mesh,size); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_SHIFTABLE_MESH)-sizeof(I32)*2+size); + tmpg->type=SPT_SHIFTABLE_MESH; + MemCpy(&tmpg->pmu.vertex_cnt,mesh,size); Free(mesh); - tempg->pmu.x=a1-x; - tempg->pmu.y=a2-y; - tempg->pmu.z=-z; - QueIns(tempg,insert_pt->last); + tmpg->pmu.x=a1-x; + tmpg->pmu.y=a2-y; + tmpg->pmu.z=-z; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); if (old_mesh) { - insert_pt=tempg; - QueRem(tempg1); - Free(tempg1); + insert_pt=tmpg; + QueRem(tmpg1); + Free(tmpg1); SpriteEdUpdate(doc,doc_ce,head); } else *_cur_elem_num+=1; - } else if (old_mesh && tempg1->type==SPT_SHIFTABLE_MESH) { - x1=tempg1->pmu.x-(a1-x); - y1=tempg1->pmu.y-(a2-y); - z1=tempg1->pmu.z+z; - p=&tempg1->pmu.u; - for (i=0;ipmu.vertex_cnt;i++,p++) { + } else if (old_mesh && tmpg1->type==SPT_SHIFTABLE_MESH) { + x1=tmpg1->pmu.x-(a1-x); + y1=tmpg1->pmu.y-(a2-y); + z1=tmpg1->pmu.z+z; + p=&tmpg1->pmu.u; + for (i=0;ipmu.vertex_cnt;i++,p++) { p->x-=x1; p->y-=y1; p->z-=z1; } - } else if (old_mesh && tempg1->type==SPT_MESH) { + } else if (old_mesh && tmpg1->type==SPT_MESH) { x1=-(a1-x); y1=-(a2-y); z1= z; - p=&tempg1->mu.u; - for (i=0;imu.vertex_cnt;i++,p++) { + p=&tmpg1->mu.u; + for (i=0;imu.vertex_cnt;i++,p++) { p->x-=x1; p->y-=y1; p->z-=z1; @@ -793,11 +793,11 @@ U0 SMTaskTitleSet(I64 eletype) { Fs->title_src=TTS_CONST; //Violates TTS_LOCKED_CONST switch (eletype) { - case SPT_INS_SCREEN_BITMAP: - StrCpy(Fs->task_title,"Insert Screen BitMap"); + case SPT_INS_SCRN_BITMAP: + StrCpy(Fs->task_title,"Insert Scrn BitMap"); break; - case SPT_INS_TRANSPARENT_SCREEN_BITMAP: - StrCpy(Fs->task_title,"Insert Transparent Screen BitMap"); + case SPT_INS_TRANSPARENT_SCRN_BITMAP: + StrCpy(Fs->task_title,"Insert Transparent Scrn BitMap"); break; default: if (eletype>=0) @@ -813,13 +813,13 @@ I64 SpriteMainEd(CDoc *doc) cur_elem_num,old_border_src=Fs->border_src,old_title_src=Fs->title_src, old_de_flags=doc_ce->de_flags; CColorROPU32 bm_bkcolor,color; - CSprite *head,*tempg,*insert_pt; + CSprite *head,*tmpg,*insert_pt; CDC *dc=DCAlias(,Fs),*dc2=DCAlias(,sys_winmgr_task),*dc3; U8 *old_task_title=StrNew(Fs->task_title); SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ AutoComplete; - WinMgrSync(2,TRUE); + Refresh(2,TRUE); dc2->flags|=DCF_ON_TOP; head=Sprite2SpriteQue(doc_ce->bin_data->data); cur_elem_num=QueCnt(head); @@ -873,10 +873,10 @@ I64 SpriteMainEd(CDoc *doc) i=PopUpColor(,,FALSE); if (i>=0) { color=i; - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_COLOR)); - tempg->type=SPT_COLOR; - tempg->c.color=color; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_COLOR)); + tmpg->type=SPT_COLOR; + tmpg->c.color=color; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; } @@ -888,10 +888,10 @@ I64 SpriteMainEd(CDoc *doc) i=PopUpColorDither; if (i>=0) { color=i; - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_DITHER_COLOR)); - tempg->type=SPT_DITHER_COLOR; - tempg->d.dither_color=color.c0.color|color.c1.color<<8; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_DITHER_COLOR)); + tmpg->type=SPT_DITHER_COLOR; + tmpg->d.dither_color=color.c0.color|color.c1.color<<8; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; } @@ -900,9 +900,9 @@ I64 SpriteMainEd(CDoc *doc) break; case SPT_ED_MENU: switch (SpriteEd(doc,doc_ce,x,y,&head,&cur_elem_num)) { - case GE_ABORT: eletype=DOCM_CANCEL; break; - case GE_EXIT: eletype=SPT_EXIT; break; - case GE_CONT: eletype=SPT_MENU; break; + case SPE_ABORT: eletype=DOCM_CANCEL; break; + case SPE_EXIT: eletype=SPT_EXIT; break; + case SPE_CONT: eletype=SPT_MENU; break; } break; case SPT_MESH: @@ -934,7 +934,7 @@ I64 SpriteMainEd(CDoc *doc) PopUpOk("Select Origin.\n"); doc_ce->de_flags=old_de_flags; break; - case SPT_INS_SCREEN_BITMAP: + case SPT_INS_SCRN_BITMAP: doc_ce->de_flags|=DOCEF_DONT_DRAW; PopUpOk("Drag-out a rect for the extents of the\nbitmap.\n"); doc_ce->de_flags=old_de_flags; @@ -957,8 +957,8 @@ I64 SpriteMainEd(CDoc *doc) xx1+=xx; yy1+=yy; xx2+=xx; yy2+=yy; if (SMBitMap(eletype,doc,doc_ce,head,dc,xx,yy,a1,a2,bm_bkcolor, - FALSE,xx1,yy1,xx2,yy2,&cur_elem_num)==GE_EXIT) { - res=GE_EXIT; + FALSE,xx1,yy1,xx2,yy2,&cur_elem_num)==SPE_EXIT) { + res=SPE_EXIT; goto ei_done; } eletype=SPT_MENU; @@ -966,7 +966,7 @@ I64 SpriteMainEd(CDoc *doc) } doc_ce->de_flags=old_de_flags; break; - case SPT_INS_TRANSPARENT_SCREEN_BITMAP: + case SPT_INS_TRANSPARENT_SCRN_BITMAP: doc_ce->de_flags|=DOCEF_DONT_DRAW; i=PopUpColor("Color to Become Transparent\n\n",,FALSE); if (i<0) @@ -984,10 +984,10 @@ I64 SpriteMainEd(CDoc *doc) i=PopUpRangeI64(1,16,1,"Pen Width\n"); if (i>=1) { width=i; - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_WIDTH)); - tempg->type=SPT_WIDTH; - tempg->w.width=width; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_WIDTH)); + tmpg->type=SPT_WIDTH; + tmpg->w.width=width; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; } @@ -996,12 +996,12 @@ I64 SpriteMainEd(CDoc *doc) break; case SPT_TRANSFORM_ON: case SPT_TRANSFORM_OFF: - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_TRANSFORM_ON)); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_TRANSFORM_ON)); if (eletype==SPT_TRANSFORM_ON) - tempg->type=SPT_TRANSFORM_ON; + tmpg->type=SPT_TRANSFORM_ON; else - tempg->type=SPT_TRANSFORM_OFF; - QueIns(tempg,insert_pt->last); + tmpg->type=SPT_TRANSFORM_OFF; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; eletype=SPT_MENU; @@ -1026,39 +1026,39 @@ I64 SpriteMainEd(CDoc *doc) insert_pt=SpriteSetSettings(dc,head,cur_elem_num,xx,yy, &color,&width,&x,&y); x+=xx; y+=yy; - SpriteScreenInit(dc,x,y); + SpriteScrnInit(dc,x,y); if (eletype==SPT_EXIT) { - res=GE_EXIT; + res=SPE_EXIT; goto ei_done; } else if (eletype==DOCM_CANCEL) { - res=GE_ABORT; + res=SPE_ABORT; goto ei_done; } switch (GetMsg(&a1,&a2,1<type=SPT_COLOR; - tempg->c.color=color; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_COLOR)); + tmpg->type=SPT_COLOR; + tmpg->c.color=color; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; break; case 't': //Set to transparent color - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_COLOR)); - tempg->type=SPT_COLOR; - tempg->c.color=TRANSPARENT; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_COLOR)); + tmpg->type=SPT_COLOR; + tmpg->c.color=TRANSPARENT; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; break; @@ -1066,9 +1066,9 @@ I64 SpriteMainEd(CDoc *doc) break; case MSG_IP_R_UP: if (eletype==SPT_PLANAR_SYMMETRY) { - tempg=CAlloc(SpriteElemQuedBaseSize(SPT_PLANAR_SYMMETRY)); - tempg->type=SPT_PLANAR_SYMMETRY; - QueIns(tempg,insert_pt->last); + tmpg=CAlloc(SpriteElemQuedBaseSize(SPT_PLANAR_SYMMETRY)); + tmpg->type=SPT_PLANAR_SYMMETRY; + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; eletype=SPT_MENU; @@ -1079,62 +1079,62 @@ I64 SpriteMainEd(CDoc *doc) switch (eletype) { start: case SPT_LINE: - tempg=SMLine(dc,x,y,a1,a2,color); + tmpg=SMLine(dc,x,y,a1,a2,color); break; case SPT_ARROW: - tempg=SMArrow(dc,x,y,a1,a2,color); + tmpg=SMArrow(dc,x,y,a1,a2,color); break; case SPT_PLANAR_SYMMETRY: - tempg=SMPlanarSymmetry(dc,x,y,a1,a2); + tmpg=SMPlanarSymmetry(dc,x,y,a1,a2); eletype=SPT_MENU; break; case SPT_RECT: - tempg=SMRect(dc,x,y,a1,a2,color); + tmpg=SMRect(dc,x,y,a1,a2,color); break; - case SPT_INS_SCREEN_BITMAP: - case SPT_INS_TRANSPARENT_SCREEN_BITMAP: - tempg=SMScreenBitMap(eletype,dc,dc2,x,y,a1,a2,bm_bkcolor); + case SPT_INS_SCRN_BITMAP: + case SPT_INS_TRANSPARENT_SCRN_BITMAP: + tmpg=SMScrnBitMap(eletype,dc,dc2,x,y,a1,a2,bm_bkcolor); eletype=SPT_MENU; break; case SPT_CIRCLE: - tempg=SMCircle(dc,x,y,a1,a2,color); + tmpg=SMCircle(dc,x,y,a1,a2,color); break; case SPT_ELLIPSE: - tempg=SMEllipse(dc,x,y,a1,a2,color); + tmpg=SMEllipse(dc,x,y,a1,a2,color); break; case SPT_POLYGON: - tempg=SMPolygon(dc,x,y,a1,a2,i,color); + tmpg=SMPolygon(dc,x,y,a1,a2,i,color); eletype=SPT_MENU; break; case SPT_PT: case SPT_FLOOD_FILL: case SPT_FLOOD_FILL_NOT: - tempg=CAlloc(SpriteElemQuedBaseSize(eletype)); - tempg->type=eletype; - tempg->p.x1=a1-x; - tempg->p.y1=a2-y; + tmpg=CAlloc(SpriteElemQuedBaseSize(eletype)); + tmpg->type=eletype; + tmpg->p.x1=a1-x; + tmpg->p.y1=a2-y; break; case SPT_POLYLINE: case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - tempg=SMPolyLineFamily(eletype,dc,x,y,a1,a2,color); + tmpg=SMPolyLineFamily(eletype,dc,x,y,a1,a2,color); break; case SPT_POLYPT: - tempg=SMPolyPoint(dc,x,y,a1,a2,color); + tmpg=SMPolyPoint(dc,x,y,a1,a2,color); break; end: - if (tempg) { - QueIns(tempg,insert_pt->last); + if (tmpg) { + QueIns(tmpg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,head); cur_elem_num++; } break; case SPT_BITMAP: if (SMBitMap(eletype,doc,doc_ce,head,dc,xx,yy,a1,a2,bm_bkcolor, - TRUE,,,,,&cur_elem_num)==GE_EXIT) { - res=GE_EXIT; + TRUE,,,,,&cur_elem_num)==SPE_EXIT) { + res=SPE_EXIT; goto ei_done; } doc_ce->de_flags=old_de_flags; @@ -1172,33 +1172,33 @@ U0 EdSpriteIns(CDoc *doc) Bool unlock; U8 *st; CDocEntry *doc_e; - CDocBin *tempb; + CDocBin *tmpb; if (Fs!=doc->mem_task) throw('Graphics'); if (st=EdSprite(doc->cur_bin_num)) { unlock=DocLock(doc); - tempb=CAlloc(sizeof(CDocBin),doc->mem_task); - tempb->size=sprite_elem_base_sizes[SPT_END]; - tempb->data=CAlloc(tempb->size,doc->mem_task); - tempb->num=doc->cur_bin_num++; - tempb->use_cnt=1; - QueIns(tempb,doc->bin_head.last); + tmpb=CAlloc(sizeof(CDocBin),doc->mem_task); + tmpb->size=sprite_elem_base_sizes[SPT_END]; + tmpb->data=CAlloc(tmpb->size,doc->mem_task); + tmpb->num=doc->cur_bin_num++; + tmpb->use_cnt=1; + QueIns(tmpb,doc->bin_head.last); doc_e=DocPrint(doc,"%s",st); - doc_e->bin_data=tempb; + doc_e->bin_data=tmpb; Free(st); if (doc_e) { if (doc_e->de_flags&DOCEF_TAG && doc_e->tag && *doc_e->tag) - tempb->tag=StrNew(doc_e->tag,doc->mem_task); + tmpb->tag=StrNew(doc_e->tag,doc->mem_task); doc->cur_entry=doc_e; doc->cur_col=0; DocUnlock(doc); DocRecalc(doc); - if (SpriteMainEd(doc)==GE_ABORT) { + if (SpriteMainEd(doc)==SPE_ABORT) { DocLock(doc); DocEntryDel(doc,doc_e); } } else - DocBinDel(doc,tempb); + DocBinDel(doc,tmpb); if (unlock) DocUnlock(doc); } @@ -1209,21 +1209,21 @@ U0 EdSpriteIns(CDoc *doc) U0 EdSpriteEd(CDoc *doc) { CDocEntry *doc_ce; - CDocBin *tempb; + CDocBin *tmpb; CSprite *old_csprite; I64 old_size; Bool unlock=DocLock(doc); doc_ce=doc->cur_entry; - tempb=doc_ce->bin_data; - old_size=tempb->size; - old_csprite=tempb->data; - tempb->data=MAllocIdent(old_csprite,doc->mem_task); + tmpb=doc_ce->bin_data; + old_size=tmpb->size; + old_csprite=tmpb->data; + tmpb->data=MAllocIdent(old_csprite,doc->mem_task); DocUnlock(doc); - if (SpriteMainEd(doc)==GE_ABORT) { + if (SpriteMainEd(doc)==SPE_ABORT) { DocLock(doc); - Free(tempb->data); - tempb->data=old_csprite; - tempb->size=old_size; + Free(tmpb->data); + tmpb->data=old_csprite; + tmpb->size=old_size; } else Free(old_csprite); if (unlock) diff --git a/Adam/Gr/SpriteMesh.HC b/Adam/Gr/SpriteMesh.HC index 348a7de..24fe31b 100644 --- a/Adam/Gr/SpriteMesh.HC +++ b/Adam/Gr/SpriteMesh.HC @@ -13,7 +13,7 @@ class CMeshEdVertex CD3I32 p; //World coordinates of the point. U0 end; CD3I32 p0, - pt; //Transformed coordinates. (Screen) + pt; //Transformed coordinates. (Scrn) I32 num,flags; }; @@ -42,7 +42,7 @@ class CMeshFrame F64 view_scale; CDC *dc; I32 *depth_buf; - I64 *w2s,*s2w; //Screen-to-world and world-to-screen transform matrices. + I64 *w2s,*s2w; //Scrn-to-world and world-to-scrn transform matrices. I64 vertex_cnt,tri_cnt; //Set by MeshSize CMeshEdVertex vertex_head,*cur_vertex,*chain_pred; CMeshEdTri tri_head,*cur_tri; @@ -51,128 +51,128 @@ class CMeshFrame CMeshEdVertex *MeshVertexNew(CMeshFrame *e,I64 x,I64 y,I64 z) { - CMeshEdVertex *tempv=CAlloc(sizeof(CMeshEdVertex)); - tempv->p.x=x; - tempv->p.y=y; - tempv->p.z=z; - QueIns(tempv,e->vertex_head.last); - return tempv; + CMeshEdVertex *tmpv=CAlloc(sizeof(CMeshEdVertex)); + tmpv->p.x=x; + tmpv->p.y=y; + tmpv->p.z=z; + QueIns(tmpv,e->vertex_head.last); + return tmpv; } CMeshEdTri *MeshTriNew(CMeshFrame *e,CColorROPU32 color, CMeshEdVertex *v1,CMeshEdVertex *v2,CMeshEdVertex *v3) { static I64 cpu_num=0; - CMeshEdTri *tempt=CAlloc(sizeof(CMeshEdTri)); - tempt->cpu_num=cpu_num++%mp_cnt; - tempt->mt.color=color; - tempt->t[0]=v1; - tempt->t[1]=v2; - tempt->t[2]=v3; - QueIns(tempt,e->tri_head.last); - return tempt; + CMeshEdTri *tmpt=CAlloc(sizeof(CMeshEdTri)); + tmpt->cpu_num=cpu_num++%mp_cnt; + tmpt->mt.color=color; + tmpt->t[0]=v1; + tmpt->t[1]=v2; + tmpt->t[2]=v3; + QueIns(tmpt,e->tri_head.last); + return tmpt; } CMeshEdVertex *MeshVertexFindScrPt(CMeshFrame *e,I64 x,I64 y) -{//Screen coordinates - CMeshEdVertex *res=NULL,*tempv=e->vertex_head.next; +{//Scrn coordinates + CMeshEdVertex *res=NULL,*tmpv=e->vertex_head.next; I64 dd,dz,best_dd=MAX_I64,best_dz=MAX_I64; - while (tempv!=&e->vertex_head) { - if (!(tempv->flags&VF_IGNORE)) { - dd=SqrI64(x-tempv->pt.x)+SqrI64(y-tempv->pt.y); - dz=AbsI64(e->ip_z-tempv->p.z); + while (tmpv!=&e->vertex_head) { + if (!(tmpv->flags&VF_IGNORE)) { + dd=SqrI64(x-tmpv->pt.x)+SqrI64(y-tmpv->pt.y); + dz=AbsI64(e->ip_z-tmpv->p.z); if (ddnext; + tmpv=tmpv->next; } return res; } CMeshEdVertex *MeshVertexFindNum(CMeshFrame *haystack_e,I64 needle_num) { - CMeshEdVertex *tempv=haystack_e->vertex_head.next; - while (tempv!=&haystack_e->vertex_head) { - if (tempv->num==needle_num) - return tempv; - tempv=tempv->next; + CMeshEdVertex *tmpv=haystack_e->vertex_head.next; + while (tmpv!=&haystack_e->vertex_head) { + if (tmpv->num==needle_num) + return tmpv; + tmpv=tmpv->next; } return NULL; } -U0 MeshTriDel(CMeshFrame *e,CMeshEdTri *tempt) +U0 MeshTriDel(CMeshFrame *e,CMeshEdTri *tmpt) { - if (tempt) { - if (tempt==e->cur_tri) + if (tmpt) { + if (tmpt==e->cur_tri) e->cur_tri=NULL; - QueRem(tempt); - Free(tempt); + QueRem(tmpt); + Free(tmpt); } } -U0 MeshVertexDel(CMeshFrame *e,CMeshEdVertex *tempv) +U0 MeshVertexDel(CMeshFrame *e,CMeshEdVertex *tmpv) { I64 i; - CMeshEdTri *tempt,*tempt1; - if (tempv) { - tempt=e->tri_head.next; - while (tempt!=&e->tri_head) { - tempt1=tempt->next; + CMeshEdTri *tmpt,*tmpt1; + if (tmpv) { + tmpt=e->tri_head.next; + while (tmpt!=&e->tri_head) { + tmpt1=tmpt->next; for (i=0;i<3;i++) - if (tempt->t[i]==tempv) + if (tmpt->t[i]==tmpv) break; if (i<3) - MeshTriDel(e,tempt); - tempt=tempt1; + MeshTriDel(e,tmpt); + tmpt=tmpt1; } - if (tempv==e->cur_vertex) + if (tmpv==e->cur_vertex) e->cur_vertex=NULL; - if (tempv==e->chain_pred) + if (tmpv==e->chain_pred) e->chain_pred=NULL; - QueRem(tempv); - Free(tempv); + QueRem(tmpv); + Free(tmpv); } } U0 MeshFence(CMeshFrame *e) { - CMeshEdVertex *tempv,*tempv1,*tempv_last=NULL,*tempv1_last=NULL, + CMeshEdVertex *tmpv,*tmpv1,*tmpv_last=NULL,*tmpv1_last=NULL, *start=e->chain_pred->next,*end=e->vertex_head.last; - tempv=start; + tmpv=start; while (TRUE) { - tempv1=MeshVertexNew(e,tempv->p.x,tempv->p.y,tempv->p.z+e->thickness); - if (tempv_last) { - MeshTriNew(e,e->cur_color,tempv_last,tempv,tempv1); - MeshTriNew(e,e->cur_color,tempv1,tempv1_last,tempv_last); + tmpv1=MeshVertexNew(e,tmpv->p.x,tmpv->p.y,tmpv->p.z+e->thickness); + if (tmpv_last) { + MeshTriNew(e,e->cur_color,tmpv_last,tmpv,tmpv1); + MeshTriNew(e,e->cur_color,tmpv1,tmpv1_last,tmpv_last); } - tempv_last=tempv; - tempv1_last=tempv1; - if (tempv==end) + tmpv_last=tmpv; + tmpv1_last=tmpv1; + if (tmpv==end) break; - tempv=tempv->next; + tmpv=tmpv->next; } - if (e->closed && tempv_last) { - MeshTriNew(e,e->cur_color,tempv_last,start,end->next); - MeshTriNew(e,e->cur_color,end->next,tempv1_last,tempv_last); + if (e->closed && tmpv_last) { + MeshTriNew(e,e->cur_color,tmpv_last,start,end->next); + MeshTriNew(e,e->cur_color,end->next,tmpv1_last,tmpv_last); } } U0 MeshPolygon(CMeshFrame *e,CMeshEdVertex *start,CMeshEdVertex *end,Bool rev) { - CMeshEdVertex *tempv,*tempv1; + CMeshEdVertex *tmpv,*tmpv1; if (start!=end) { - tempv=start; - tempv1=tempv->next; - while (tempv1!=end) { + tmpv=start; + tmpv1=tmpv->next; + while (tmpv1!=end) { if (rev) - MeshTriNew(e,e->cur_color,tempv1,tempv,end); + MeshTriNew(e,e->cur_color,tmpv1,tmpv,end); else - MeshTriNew(e,e->cur_color,tempv,tempv1,end); - tempv=tempv->next; - tempv1=tempv1->next; + MeshTriNew(e,e->cur_color,tmpv,tmpv1,end); + tmpv=tmpv->next; + tmpv1=tmpv1->next; } } } @@ -187,58 +187,58 @@ U0 MeshPrism(CMeshFrame *e) U0 MeshVertexSelAll(CMeshFrame *e,Bool val) { - CMeshEdVertex *tempv=e->vertex_head.next; - while (tempv!=&e->vertex_head) { + CMeshEdVertex *tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { if (val) - tempv->flags|=VF_SEL; + tmpv->flags|=VF_SEL; else - tempv->flags&=~VF_SEL; - tempv=tempv->next; + tmpv->flags&=~VF_SEL; + tmpv=tmpv->next; } } U0 MeshTriSelAll(CMeshFrame *e,Bool val) { - CMeshEdTri *tempt=e->tri_head.next; - while (tempt!=&e->tri_head) { + CMeshEdTri *tmpt=e->tri_head.next; + while (tmpt!=&e->tri_head) { if (val) - tempt->flags|=TF_SEL; + tmpt->flags|=TF_SEL; else - tempt->flags&=~TF_SEL; - tempt=tempt->next; + tmpt->flags&=~TF_SEL; + tmpt=tmpt->next; } } U0 MeshVertexIgnoreSet(CMeshFrame *e,Bool val) { - CMeshEdVertex *tempv=e->vertex_head.next; - while (tempv!=&e->vertex_head) { - tempv->flags&=~VF_IGNORE; - if (tempv->flags&VF_SEL && val) - tempv->flags|=VF_IGNORE; - tempv=tempv->next; + CMeshEdVertex *tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { + tmpv->flags&=~VF_IGNORE; + if (tmpv->flags&VF_SEL && val) + tmpv->flags|=VF_IGNORE; + tmpv=tmpv->next; } } U0 MeshP0Capture(CMeshFrame *e) { - CMeshEdVertex *tempv=e->vertex_head.next; - while (tempv!=&e->vertex_head) { - MemCpy(&tempv->p0,&tempv->p,sizeof(CD3I32)); - tempv=tempv->next; + CMeshEdVertex *tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { + MemCpy(&tmpv->p0,&tmpv->p,sizeof(CD3I32)); + tmpv=tmpv->next; } } U0 MeshP0Offset(CMeshFrame *e,I64 dx,I64 dy,I64 dz) { - CMeshEdVertex *tempv=e->vertex_head.next; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) { - tempv->p.x=tempv->p0.x+dx; - tempv->p.y=tempv->p0.y+dy; - tempv->p.z=tempv->p0.z+dz; + CMeshEdVertex *tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) { + tmpv->p.x=tmpv->p0.x+dx; + tmpv->p.y=tmpv->p0.y+dy; + tmpv->p.z=tmpv->p0.z+dz; } - tempv=tempv->next; + tmpv=tmpv->next; } } @@ -248,69 +248,69 @@ U0 MeshP0Offset(CMeshFrame *e,I64 dx,I64 dy,I64 dz) U0 MeshVertexSelRect(CMeshFrame *e,I64 sel_mode,I64 x1,I64 x2,I64 y1,I64 y2) { - CMeshEdVertex *tempv=e->vertex_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; if (x1>x2) SwapI64(&x1,&x2); if (y1>y2) SwapI64(&y1,&y2); - while (tempv!=&e->vertex_head) { - if (x1<=tempv->pt.x<=x2 && - y1<=tempv->pt.y<=y2) { + while (tmpv!=&e->vertex_head) { + if (x1<=tmpv->pt.x<=x2 && + y1<=tmpv->pt.y<=y2) { if (sel_mode==SEL_MESH_AND) - tempv->flags&=~VF_SEL; + tmpv->flags&=~VF_SEL; else - tempv->flags|=VF_SEL; + tmpv->flags|=VF_SEL; } else if (sel_mode==SEL_MESH_EQU) - tempv->flags&=~VF_SEL; - tempv=tempv->next; + tmpv->flags&=~VF_SEL; + tmpv=tmpv->next; } } U0 MeshTriSelRect(CMeshFrame *e,I64 sel_mode,I64 x1,I64 x2,I64 y1,I64 y2) { - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdTri *tmpt=e->tri_head.next; if (x1>x2) SwapI64(&x1,&x2); if (y1>y2) SwapI64(&y1,&y2); - while (tempt!=&e->tri_head) { - if (x1<=tempt->t[0]->pt.x<=x2 && - y1<=tempt->t[0]->pt.y<=y2 && - x1<=tempt->t[1]->pt.x<=x2 && - y1<=tempt->t[1]->pt.y<=y2 && - x1<=tempt->t[2]->pt.x<=x2 && - y1<=tempt->t[2]->pt.y<=y2) { + while (tmpt!=&e->tri_head) { + if (x1<=tmpt->t[0]->pt.x<=x2 && + y1<=tmpt->t[0]->pt.y<=y2 && + x1<=tmpt->t[1]->pt.x<=x2 && + y1<=tmpt->t[1]->pt.y<=y2 && + x1<=tmpt->t[2]->pt.x<=x2 && + y1<=tmpt->t[2]->pt.y<=y2) { if (sel_mode==SEL_MESH_AND) - tempt->flags&=~TF_SEL; + tmpt->flags&=~TF_SEL; else - tempt->flags|=TF_SEL; + tmpt->flags|=TF_SEL; } else { if (sel_mode==SEL_MESH_EQU) - tempt->flags&=~TF_SEL; + tmpt->flags&=~TF_SEL; else if (sel_mode==SEL_MESH_AND) { - if (x1<=tempt->t[0]->pt.x<=x2 && - y1<=tempt->t[0]->pt.y<=y2 || - x1<=tempt->t[1]->pt.x<=x2 && - y1<=tempt->t[1]->pt.y<=y2 || - x1<=tempt->t[2]->pt.x<=x2 && - y1<=tempt->t[2]->pt.y<=y2) - tempt->flags&=~TF_SEL; + if (x1<=tmpt->t[0]->pt.x<=x2 && + y1<=tmpt->t[0]->pt.y<=y2 || + x1<=tmpt->t[1]->pt.x<=x2 && + y1<=tmpt->t[1]->pt.y<=y2 || + x1<=tmpt->t[2]->pt.x<=x2 && + y1<=tmpt->t[2]->pt.y<=y2) + tmpt->flags&=~TF_SEL; } } - tempt=tempt->next; + tmpt=tmpt->next; } } I64 MeshSelCnt(CMeshFrame *e) { I64 res=0; - CMeshEdVertex *tempv=e->vertex_head.next; - CMeshEdTri *tempt=e->tri_head.next; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) + CMeshEdVertex *tmpv=e->vertex_head.next; + CMeshEdTri *tmpt=e->tri_head.next; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) res++; - tempv=tempv->next; + tmpv=tmpv->next; } - while (tempt!=&e->tri_head) { - if (tempt->flags&TF_SEL) + while (tmpt!=&e->tri_head) { + if (tmpt->flags&TF_SEL) res++; - tempt=tempt->next; + tmpt=tmpt->next; } return res; } @@ -318,16 +318,16 @@ I64 MeshSelCnt(CMeshFrame *e) U0 MeshSwapAxes(CMeshFrame *e,I64 o1,I64 o2) { Bool unsel; - CMeshEdVertex *tempv=e->vertex_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; if (!MeshSelCnt(e)) { MeshVertexSelAll(e,TRUE); unsel=TRUE; } else unsel=FALSE; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) - SwapU32((&tempv->p)(U8 *)+o1,(&tempv->p)(U8 *)+o2); - tempv=tempv->next; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) + SwapU32((&tmpv->p)(U8 *)+o1,(&tmpv->p)(U8 *)+o2); + tmpv=tmpv->next; } if (unsel) MeshVertexSelAll(e,FALSE); @@ -336,16 +336,16 @@ U0 MeshSwapAxes(CMeshFrame *e,I64 o1,I64 o2) U0 MeshInvertAxis(CMeshFrame *e,I64 o) { Bool unsel; - CMeshEdVertex *tempv=e->vertex_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; if (!MeshSelCnt(e)) { MeshVertexSelAll(e,TRUE); unsel=TRUE; } else unsel=FALSE; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) - *((&tempv->p)(U8 *)+o)(I32 *)=-*((&tempv->p)(U8 *)+o)(I32 *); - tempv=tempv->next; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) + *((&tmpv->p)(U8 *)+o)(I32 *)=-*((&tmpv->p)(U8 *)+o)(I32 *); + tmpv=tmpv->next; } if (unsel) MeshVertexSelAll(e,FALSE); @@ -355,20 +355,20 @@ U0 MeshTransformSel(CMeshFrame *e) { Bool unsel; I64 r[16],x,y,z; - CMeshEdVertex *tempv=e->vertex_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; if (PopUpTransform(r)) { if (!MeshSelCnt(e)) { MeshVertexSelAll(e,TRUE); unsel=TRUE; } else unsel=FALSE; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) { - x=tempv->p.x; y=tempv->p.y; z=tempv->p.z; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) { + x=tmpv->p.x; y=tmpv->p.y; z=tmpv->p.z; Mat4x4MulXYZ(r,&x,&y,&z); - tempv->p.x=x; tempv->p.y=y; tempv->p.z=z; + tmpv->p.x=x; tmpv->p.y=y; tmpv->p.z=z; } - tempv=tempv->next; + tmpv=tmpv->next; } if (unsel) MeshVertexSelAll(e,FALSE); @@ -378,16 +378,16 @@ U0 MeshTransformSel(CMeshFrame *e) U0 MeshColorTris(CMeshFrame *e) { Bool unsel; - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdTri *tmpt=e->tri_head.next; if (!MeshSelCnt(e)) { MeshTriSelAll(e,TRUE); unsel=TRUE; } else unsel=FALSE; - while (tempt!=&e->tri_head) { - if (tempt->flags & TF_SEL) - tempt->mt.color=e->cur_color; - tempt=tempt->next; + while (tmpt!=&e->tri_head) { + if (tmpt->flags & TF_SEL) + tmpt->mt.color=e->cur_color; + tmpt=tmpt->next; } if (unsel) MeshTriSelAll(e,FALSE); @@ -396,16 +396,16 @@ U0 MeshColorTris(CMeshFrame *e) U0 MeshRevTris(CMeshFrame *e) { Bool unsel; - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdTri *tmpt=e->tri_head.next; if (!MeshSelCnt(e)) { MeshTriSelAll(e,TRUE); unsel=TRUE; } else unsel=FALSE; - while (tempt!=&e->tri_head) { - if (tempt->flags & TF_SEL) - SwapI64(&tempt->t[1],&tempt->t[2]); - tempt=tempt->next; + while (tmpt!=&e->tri_head) { + if (tmpt->flags & TF_SEL) + SwapI64(&tmpt->t[1],&tmpt->t[2]); + tmpt=tmpt->next; } if (unsel) MeshTriSelAll(e,FALSE); @@ -451,7 +451,7 @@ U0 MPDrawIt(CMeshFrame *e) //Makes a copy of e->dc so we can change dc->color member and stuff. CDC *dc=DCAlias(e->dc,e->dc->win_task); - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdTri *tmpt=e->tri_head.next; I64 i,*old_r=dc->r; //$LK,"DCAlias",A="MN:DCAlias"$() allocs a new identity rotation matrix. @@ -493,21 +493,21 @@ U0 MPDrawIt(CMeshFrame *e) GrLine3(dc,0,0,-500,0,0,0); } - while (tempt!=&e->tri_head) { - if (tempt->cpu_num==Gs->num) { - if (tempt->flags & TF_SEL) { + while (tmpt!=&e->tri_head) { + if (tmpt->cpu_num==Gs->num) { + if (tmpt->flags & TF_SEL) { if (Blink) dc->color=ROPF_DITHER+WHITE<<16+RED; else dc->color=ROPF_DITHER+RED<<16+WHITE; - GrFillTri0(dc,&tempt->t[0]->pt,&tempt->t[1]->pt,&tempt->t[2]->pt); + GrFillTri0(dc,&tmpt->t[0]->pt,&tmpt->t[1]->pt,&tmpt->t[2]->pt); } else { - (*dc->lighting)(dc,&tempt->t[0]->pt,&tempt->t[1]->pt, - &tempt->t[2]->pt,tempt->mt.color); - GrFillTri0(dc,&tempt->t[0]->pt,&tempt->t[1]->pt,&tempt->t[2]->pt); + (*dc->lighting)(dc,&tmpt->t[0]->pt,&tmpt->t[1]->pt, + &tmpt->t[2]->pt,tmpt->mt.color); + GrFillTri0(dc,&tmpt->t[0]->pt,&tmpt->t[1]->pt,&tmpt->t[2]->pt); } } - tempt=tempt->next; + tmpt=tmpt->next; } dc->r=old_r; @@ -519,7 +519,7 @@ U0 MPDrawIt(CMeshFrame *e) } I64 *MeshW2S(CMeshFrame *e,CTask *task) -{//World to screen coordinate transform matrix. +{//World to scrn coordinate transform matrix. CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); CViewAngles *s=c->state; I64 *r=Mat4x4IdentNew(task); @@ -534,7 +534,7 @@ I64 *MeshW2S(CMeshFrame *e,CTask *task) } I64 *MeshS2W(CMeshFrame *e,CTask *task) -{//Screen to world coordinate transform matrix. +{//Scrn to world coordinate transform matrix. CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); CViewAngles *s=c->state; I64 *r=Mat4x4IdentNew(task); @@ -565,7 +565,7 @@ U0 MeshCursorW(CMeshFrame *e,CTask *task,I64 *_x,I64 *_y,I64 *_z) yc=ip.pos.y-task->pix_top-task->scroll_y-e->cy,zc=0, x=0,y=0,z=e->ip_z, i,x2,y2,z2; - Mat4x4MulXYZ(e->w2s,&x,&y,&z); //screen of Z vect + Mat4x4MulXYZ(e->w2s,&x,&y,&z); //scrn of Z vect //Converges onto a solution for zc, an unknown. for (i=0;i<128;i++) { @@ -606,97 +606,97 @@ U0 MeshClipboardRst() U0 MeshClipboardCopy(CMeshFrame *e) { - CMeshEdVertex *tempv=e->vertex_head.next,*tempv2; - CMeshEdTri *tempt=e->tri_head.next,*tempt2; + CMeshEdVertex *tmpv=e->vertex_head.next,*tmpv2; + CMeshEdTri *tmpt=e->tri_head.next,*tmpt2; MeshClipboardRst; - while (tempv!=&e->vertex_head) { - if (tempv->flags&VF_SEL) { - tempv->copy=tempv2=ACAlloc(sizeof(CMeshEdVertex)); - MemCpy(&tempv2->p,&tempv->p,sizeof(CD3I32)); - QueIns(tempv2,sys_clipboard_vertex_head.last); - tempv->flags|=VF_COPIED; - tempv->flags&=~VF_SEL; + while (tmpv!=&e->vertex_head) { + if (tmpv->flags&VF_SEL) { + tmpv->copy=tmpv2=ACAlloc(sizeof(CMeshEdVertex)); + MemCpy(&tmpv2->p,&tmpv->p,sizeof(CD3I32)); + QueIns(tmpv2,sys_clipboard_vertex_head.last); + tmpv->flags|=VF_COPIED; + tmpv->flags&=~VF_SEL; } else { - tempv->copy=NULL; - tempv->flags&=~(VF_COPIED|VF_SEL); + tmpv->copy=NULL; + tmpv->flags&=~(VF_COPIED|VF_SEL); } - tempv=tempv->next; + tmpv=tmpv->next; } - while (tempt!=&e->tri_head) { - if (tempt->flags&TF_SEL && - tempt->t[0]->copy && tempt->t[1]->copy && tempt->t[2]->copy) { - tempt2=ACAlloc(sizeof(CMeshEdTri)); - tempt2->t[0]=tempt->t[0]->copy; - tempt2->t[1]=tempt->t[1]->copy; - tempt2->t[2]=tempt->t[2]->copy; - tempt2->mt.color=tempt->mt.color; - QueIns(tempt2,sys_clipboard_tri_head.last); - tempt->flags|=TF_COPIED; - tempt->flags&=~TF_SEL; + while (tmpt!=&e->tri_head) { + if (tmpt->flags&TF_SEL && + tmpt->t[0]->copy && tmpt->t[1]->copy && tmpt->t[2]->copy) { + tmpt2=ACAlloc(sizeof(CMeshEdTri)); + tmpt2->t[0]=tmpt->t[0]->copy; + tmpt2->t[1]=tmpt->t[1]->copy; + tmpt2->t[2]=tmpt->t[2]->copy; + tmpt2->mt.color=tmpt->mt.color; + QueIns(tmpt2,sys_clipboard_tri_head.last); + tmpt->flags|=TF_COPIED; + tmpt->flags&=~TF_SEL; } else - tempt->flags&=~(TF_COPIED|TF_SEL); - tempt=tempt->next; + tmpt->flags&=~(TF_COPIED|TF_SEL); + tmpt=tmpt->next; } } U0 MeshClipboardCut(CMeshFrame *e) { - CMeshEdVertex *tempv=e->vertex_head.next,*tempv1; - CMeshEdTri *tempt=e->tri_head.next,*tempt1; + CMeshEdVertex *tmpv=e->vertex_head.next,*tmpv1; + CMeshEdTri *tmpt=e->tri_head.next,*tmpt1; MeshClipboardCopy(e); - while (tempt!=&e->tri_head) { - tempt1=tempt->next; - if (tempt->flags&TF_COPIED) - MeshTriDel(e,tempt); - tempt=tempt1; + while (tmpt!=&e->tri_head) { + tmpt1=tmpt->next; + if (tmpt->flags&TF_COPIED) + MeshTriDel(e,tmpt); + tmpt=tmpt1; } - while (tempv!=&e->vertex_head) { - tempv1=tempv->next; - if (tempv->flags&VF_COPIED) - MeshVertexDel(e,tempv); - tempv=tempv1; + while (tmpv!=&e->vertex_head) { + tmpv1=tmpv->next; + if (tmpv->flags&VF_COPIED) + MeshVertexDel(e,tmpv); + tmpv=tmpv1; } } U0 MeshClipboardDel(CMeshFrame *e) {//Technically not clipboard - CMeshEdVertex *tempv=e->vertex_head.next,*tempv1; - CMeshEdTri *tempt=e->tri_head.next,*tempt1; - while (tempt!=&e->tri_head) { - tempt1=tempt->next; - if (tempt->flags&TF_SEL) - MeshTriDel(e,tempt); - tempt=tempt1; + CMeshEdVertex *tmpv=e->vertex_head.next,*tmpv1; + CMeshEdTri *tmpt=e->tri_head.next,*tmpt1; + while (tmpt!=&e->tri_head) { + tmpt1=tmpt->next; + if (tmpt->flags&TF_SEL) + MeshTriDel(e,tmpt); + tmpt=tmpt1; } - while (tempv!=&e->vertex_head) { - tempv1=tempv->next; - if (tempv->flags&VF_SEL) - MeshVertexDel(e,tempv); - tempv=tempv1; + while (tmpv!=&e->vertex_head) { + tmpv1=tmpv->next; + if (tmpv->flags&VF_SEL) + MeshVertexDel(e,tmpv); + tmpv=tmpv1; } } U0 MeshClipboardPaste(CMeshFrame *e) { - CMeshEdVertex *tempv2=sys_clipboard_vertex_head.next,*tempv; - CMeshEdTri *tempt2=sys_clipboard_tri_head.next,*tempt; + CMeshEdVertex *tmpv2=sys_clipboard_vertex_head.next,*tmpv; + CMeshEdTri *tmpt2=sys_clipboard_tri_head.next,*tmpt; MeshVertexSelAll(e,FALSE); MeshTriSelAll(e,FALSE); - while (tempv2!=&sys_clipboard_vertex_head) { - tempv2->copy=tempv=CAlloc(sizeof(CMeshEdVertex)); - MemCpy(&tempv->p,&tempv2->p,sizeof(CD3I32)); - QueIns(tempv,e->vertex_head.last); - tempv->flags|=VF_SEL; - tempv2=tempv2->next; + while (tmpv2!=&sys_clipboard_vertex_head) { + tmpv2->copy=tmpv=CAlloc(sizeof(CMeshEdVertex)); + MemCpy(&tmpv->p,&tmpv2->p,sizeof(CD3I32)); + QueIns(tmpv,e->vertex_head.last); + tmpv->flags|=VF_SEL; + tmpv2=tmpv2->next; } - while (tempt2!=&sys_clipboard_tri_head) { - tempt=MeshTriNew(e,tempt2->mt.color,tempt2->t[0]->copy, - tempt2->t[1]->copy,tempt2->t[2]->copy); - tempt->flags|=TF_SEL; - tempt2=tempt2->next; + while (tmpt2!=&sys_clipboard_tri_head) { + tmpt=MeshTriNew(e,tmpt2->mt.color,tmpt2->t[0]->copy, + tmpt2->t[1]->copy,tmpt2->t[2]->copy); + tmpt->flags|=TF_SEL; + tmpt2=tmpt2->next; } } @@ -708,7 +708,7 @@ U0 DrawIt(CTask *task,CDC *dc) CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); F64 d; I64 i,x,y,z; - CMeshEdVertex *tempv; + CMeshEdVertex *tmpv; task->horz_scroll.min=-(MESH_WORKSPACE_SIZE-task->pix_width)/2; task->horz_scroll.max= (MESH_WORKSPACE_SIZE-task->pix_width)/2; @@ -724,7 +724,7 @@ U0 DrawIt(CTask *task,CDC *dc) dc->x=e->cx; dc->y=e->cy; -//z-vals less than zero are in front of screen and not drawn. +//z-vals less than zero are in front of scrn and not drawn. //we want to shift all Z-vals into a drawable range. //GR_Z_ALL is set to half of the Z-range which is an I32. dc->z=GR_Z_ALL; @@ -741,12 +741,12 @@ U0 DrawIt(CTask *task,CDC *dc) DCDepthBufAlloc(dc); - tempv=e->vertex_head.next; - while (tempv!=&e->vertex_head) { - x=tempv->p.x; y=tempv->p.y; z=tempv->p.z; + tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { + x=tmpv->p.x; y=tmpv->p.y; z=tmpv->p.z; (*dc->transform)(dc,&x,&y,&z); - tempv->pt.x=x; tempv->pt.y=y; tempv->pt.z=z; - tempv=tempv->next; + tmpv->pt.x=x; tmpv->pt.y=y; tmpv->pt.z=z; + tmpv=tmpv->next; } e->mp_not_done_flags=1<vertex_head.next; - while (tempv!=&e->vertex_head) { - x=tempv->pt.x; y=tempv->pt.y; z=tempv->pt.z; + tmpv=e->vertex_head.next; + while (tmpv!=&e->vertex_head) { + x=tmpv->pt.x; y=tmpv->pt.y; z=tmpv->pt.z; if (e->vertex_on) { if (Blink(10)) //This blinks at 10 Hz. dc->color=ROPF_DITHER+BLACK<<16+WHITE; @@ -766,7 +766,7 @@ U0 DrawIt(CTask *task,CDC *dc) GrLine(dc,x-3,y-3,x+3,y+3); GrLine(dc,x-3,y+3,x+3,y-3); } - if (tempv->flags&VF_SEL) { + if (tmpv->flags&VF_SEL) { if (e->ed_mode=='t') { if (Blink(10)) //This blinks at 10 Hz. dc->color=ROPF_DITHER+e->cur_color.c0.color<<16+ @@ -782,7 +782,7 @@ U0 DrawIt(CTask *task,CDC *dc) } GrCircle(dc,x,y,3); } - tempv=tempv->next; + tmpv=tmpv->next; } if (CtrlInside(c,ip.presnap.x,ip.presnap.y)||winmgr.show_menu) { @@ -847,7 +847,7 @@ U0 MeshLoad(CMeshFrame *e,U8 *src) { I64 i,j,x,y,z; CColorROPU32 color; - CMeshEdVertex *tempv,*va[3]; + CMeshEdVertex *tmpv,*va[3]; QueInit(&e->vertex_head); QueInit(&e->tri_head); @@ -858,8 +858,8 @@ U0 MeshLoad(CMeshFrame *e,U8 *src) x=*src(I32 *)++; y=*src(I32 *)++; z=*src(I32 *)++; - tempv=MeshVertexNew(e,x,y,z); - tempv->num=i; + tmpv=MeshVertexNew(e,x,y,z); + tmpv->num=i; } for (i=0;itri_cnt;i++) { color=*src(I32 *)++; @@ -872,21 +872,21 @@ U0 MeshLoad(CMeshFrame *e,U8 *src) I64 MeshSize(CMeshFrame *e) { I64 i; - CMeshEdVertex *tempv=e->vertex_head.next; - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; + CMeshEdTri *tmpt=e->tri_head.next; e->vertex_cnt=0; - while (tempv!=&e->vertex_head) { - tempv->num=e->vertex_cnt++; - tempv=tempv->next; + while (tmpv!=&e->vertex_head) { + tmpv->num=e->vertex_cnt++; + tmpv=tmpv->next; } e->tri_cnt=0; - while (tempt!=&e->tri_head) { + while (tmpt!=&e->tri_head) { e->tri_cnt++; for (i=0;i<3;i++) - tempt->mt.nums[i]=tempt->t[i]->num; - tempt=tempt->next; + tmpt->mt.nums[i]=tmpt->t[i]->num; + tmpt=tmpt->next; } return sizeof(I32)*2+ (offset(CMeshEdVertex.end)-offset(CMeshEdVertex.start))*e->vertex_cnt+ @@ -897,25 +897,25 @@ I32 *MeshSave(CMeshFrame *e,I64 *_size=NULL) { I64 size=MeshSize(e); U8 *res=MAlloc(size),*dst=res; - CMeshEdVertex *tempv=e->vertex_head.next; - CMeshEdTri *tempt=e->tri_head.next; + CMeshEdVertex *tmpv=e->vertex_head.next; + CMeshEdTri *tmpt=e->tri_head.next; *dst(I32 *)++=e->vertex_cnt; *dst(I32 *)++=e->tri_cnt; e->vertex_cnt=0; - while (tempv!=&e->vertex_head) { - MemCpy(dst,&tempv->start,offset(CMeshEdVertex.end) + while (tmpv!=&e->vertex_head) { + MemCpy(dst,&tmpv->start,offset(CMeshEdVertex.end) -offset(CMeshEdVertex.start)); dst+=offset(CMeshEdVertex.end)-offset(CMeshEdVertex.start); - tempv=tempv->next; + tmpv=tmpv->next; } e->tri_cnt=0; - while (tempt!=&e->tri_head) { - MemCpy(dst,&tempt->start,offset(CMeshEdTri.end)-offset(CMeshEdTri.start)); + while (tmpt!=&e->tri_head) { + MemCpy(dst,&tmpt->start,offset(CMeshEdTri.end)-offset(CMeshEdTri.start)); dst+=offset(CMeshEdTri.end)-offset(CMeshEdTri.start); - tempt=tempt->next; + tmpt=tmpt->next; } if (_size) *_size=size; return res; @@ -931,27 +931,27 @@ U0 MeshCleanUp(CMeshFrame *e) U0 MeshUpdateMenu(CMeshFrame *e) { - CMenuEntry *tempse; - if (tempse=MenuEntryFind(Fs->cur_menu,"View/Grid")) - tempse->checked=ToBool(e->grid_on); - if (tempse=MenuEntryFind(Fs->cur_menu,"View/Vertex")) - tempse->checked=ToBool(e->vertex_on); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/PlaceVertex")) - tempse->checked=ToBool(e->ed_mode=='v'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertex")) - tempse->checked=ToBool(e->ed_mode=='m'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertexZ")) - tempse->checked=ToBool(e->ed_mode=='M'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Triangle")) - tempse->checked=ToBool(e->ed_mode=='t'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Polygon")) - tempse->checked=ToBool(e->ed_mode=='n'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Fence")) - tempse->checked=ToBool(e->ed_mode=='f'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Prism")) - tempse->checked=ToBool(e->ed_mode=='p'); - if (tempse=MenuEntryFind(Fs->cur_menu,"View/FlipY")) - tempse->checked=ToBool(e->flip_y); + CMenuEntry *tmpse; + if (tmpse=MenuEntryFind(Fs->cur_menu,"View/Grid")) + tmpse->checked=ToBool(e->grid_on); + if (tmpse=MenuEntryFind(Fs->cur_menu,"View/Vertex")) + tmpse->checked=ToBool(e->vertex_on); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/PlaceVertex")) + tmpse->checked=ToBool(e->ed_mode=='v'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertex")) + tmpse->checked=ToBool(e->ed_mode=='m'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertexZ")) + tmpse->checked=ToBool(e->ed_mode=='M'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/Triangle")) + tmpse->checked=ToBool(e->ed_mode=='t'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/Polygon")) + tmpse->checked=ToBool(e->ed_mode=='n'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/Fence")) + tmpse->checked=ToBool(e->ed_mode=='f'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"Mode/Prism")) + tmpse->checked=ToBool(e->ed_mode=='p'); + if (tmpse=MenuEntryFind(Fs->cur_menu,"View/FlipY")) + tmpse->checked=ToBool(e->flip_y); } I32 *SpriteMeshEd(I32 *head=NULL,I64 *_size=NULL,Bool flip_y=FALSE) @@ -973,7 +973,7 @@ $WW,0$*/ CViewAngles *s,*old_s; I64 i,msg_code,sel_mode,a1,a2,make_tri_vertex_num=0,x,y,z; CD3I32 p0a,p0b; - CMeshEdVertex *va[3],*tempv; + CMeshEdVertex *va[3],*tmpv; Bool adjusting_z=FALSE,moving,save_and_exit; CMeshFrame e; @@ -1060,7 +1060,7 @@ $WW,0$*/ "$$GREEN$$'p'$$FG$$: Prism Mode\n" "$$GREEN$$'c'$$FG$$: Set color\n" "$$GREEN$$'s'$$FG$$: Set snap\n" - "\nSee menu at top of screen for more.\n"); + "\nSee menu at top of scrn for more.\n"); Fs->win_inhibit=WIG_TASK_DFT|WIF_SELF_DOC-WIF_SELF_FOCUS-WIF_SELF_BORDER -WIF_SELF_CTRLS-WIF_FOCUS_TASK_MENU-WIF_SELF_GRAB_SCROLL; @@ -1267,11 +1267,11 @@ me_clipboard_cut: case 'j': if (moving) MeshVertexIgnoreSet(&e,TRUE); - if (tempv=MeshVertexFindScrPt(&e, + if (tmpv=MeshVertexFindScrPt(&e, ip.pos.x-Fs->pix_left-Fs->scroll_x, ip.pos.y-Fs->pix_top-Fs->scroll_y)) { Noise(25,2000,8000); - e.ip_z=RoundI64(tempv->p.z,e.cur_snap); + e.ip_z=RoundI64(tmpv->p.z,e.cur_snap); } else { Beep; Beep; e.ip_z=0; @@ -1324,9 +1324,9 @@ me_clipboard_cut: case 'm': if (!moving) { if (!MeshSelCnt(&e) && - (tempv=MeshVertexFindScrPt(&e,a1,a2))) { - tempv->flags|=VF_SEL; - e.ip_z=RoundI64(tempv->p.z,e.cur_snap); + (tmpv=MeshVertexFindScrPt(&e,a1,a2))) { + tmpv->flags|=VF_SEL; + e.ip_z=RoundI64(tmpv->p.z,e.cur_snap); } if (MeshSelCnt(&e)) { MeshCursorW(&e,Fs,&x,&y,&z); @@ -1341,9 +1341,9 @@ me_clipboard_cut: case 'M': if (!adjusting_z && !moving) { if (!MeshSelCnt(&e) && - (tempv=MeshVertexFindScrPt(&e,a1,a2))) { - tempv->flags|=VF_SEL; - e.ip_z=RoundI64(tempv->p.z,e.cur_snap); + (tmpv=MeshVertexFindScrPt(&e,a1,a2))) { + tmpv->flags|=VF_SEL; + e.ip_z=RoundI64(tmpv->p.z,e.cur_snap); } if (MeshSelCnt(&e)) { MeshCursorW(&e,Fs,&x,&y,&z); @@ -1394,16 +1394,16 @@ me_clipboard_cut: } break; case 't': - if (tempv=MeshVertexFindScrPt(&e,a1,a2)) { + if (tmpv=MeshVertexFindScrPt(&e,a1,a2)) { for (i=0;iflags|=VF_SEL; + va[make_tri_vertex_num++]=tmpv; + tmpv->flags|=VF_SEL; if (make_tri_vertex_num==3) { e.cur_tri=MeshTriNew(&e,e.cur_color,va[0],va[1],va[2]); for (i=0;itype]; - switch (tempg->type) { + I64 i=sprite_elem_base_sizes[tmpg->type]; + switch (tmpg->type) { case SPT_POLYLINE: - i+=tempg->nu.num*sizeof(CD2I32); + i+=tmpg->nu.num*sizeof(CD2I32); break; case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: - i+=StrLen(tempg->ps.st)+1; + i+=StrLen(tmpg->ps.st)+1; break; case SPT_BITMAP: - i+=((tempg->pwhu.width+7)&~7)*tempg->pwhu.height; + i+=((tmpg->pwhu.width+7)&~7)*tmpg->pwhu.height; break; case SPT_POLYPT: - i+=(tempg->npu.num*3+7)>>3; + i+=(tmpg->npu.num*3+7)>>3; break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - i+=tempg->nu.num*sizeof(CD3I32); + i+=tmpg->nu.num*sizeof(CD3I32); break; case SPT_MESH: - i+=tempg->mu.vertex_cnt*sizeof(CD3I32)+ - tempg->mu.tri_cnt*sizeof(CMeshTri); + i+=tmpg->mu.vertex_cnt*sizeof(CD3I32)+ + tmpg->mu.tri_cnt*sizeof(CMeshTri); break; case SPT_SHIFTABLE_MESH: - i+=tempg->pmu.vertex_cnt*sizeof(CD3I32)+ - tempg->pmu.tri_cnt*sizeof(CMeshTri); + i+=tmpg->pmu.vertex_cnt*sizeof(CD3I32)+ + tmpg->pmu.tri_cnt*sizeof(CMeshTri); break; } return i; @@ -79,101 +79,101 @@ I64 SpriteElemSize(CSprite *tempg) public I64 SpriteSize(U8 *elems) {//Walk sprite elements and return size of sprite as binary data. - CSprite *tempg=elems-offset(CSprite.start),*tempg1=tempg; - while (tempg->type) - tempg(U8 *)+=SpriteElemSize(tempg); - return tempg(U8 *)-tempg1(U8 *)+sprite_elem_base_sizes[SPT_END]; + CSprite *tmpg=elems-offset(CSprite.start),*tmpg1=tmpg; + while (tmpg->type) + tmpg(U8 *)+=SpriteElemSize(tmpg); + return tmpg(U8 *)-tmpg1(U8 *)+sprite_elem_base_sizes[SPT_END]; } I64 SpriteTypeMask(U8 *elems) { I64 res=0; - CSprite *tempg=elems-offset(CSprite.start); - while (tempg->type) { - if (tempg->type>=SPT_NUM_TYPES) + CSprite *tmpg=elems-offset(CSprite.start); + while (tmpg->type) { + if (tmpg->type>=SPT_NUM_TYPES) return 1<type); - tempg(U8 *)+=SpriteElemSize(tempg); + Bts(&res,tmpg->type); + tmpg(U8 *)+=SpriteElemSize(tmpg); } return res; } -public U8 *DC2Sprite(CDC *tempb) +public U8 *DC2Sprite(CDC *tmpb) {//Convert device context to sprite. - CSprite *tempg; - tempg=CAlloc(sprite_elem_base_sizes[SPT_BITMAP]+ - tempb->width_internal*tempb->height+ + CSprite *tmpg; + tmpg=CAlloc(sprite_elem_base_sizes[SPT_BITMAP]+ + tmpb->width_internal*tmpb->height+ sprite_elem_base_sizes[SPT_END]) (U8 *)-offset(CSprite.start); - tempg->type=SPT_BITMAP; - tempg->pwhu.width=tempb->width; - tempg->pwhu.height=tempb->height; - tempg->pwhu.x1=0; - tempg->pwhu.y1=0; - MemCpy(&tempg->pwhu.u,tempb->body,tempb->width_internal*tempb->height); - return tempg(U8 *)+offset(CSprite.start); + tmpg->type=SPT_BITMAP; + tmpg->pwhu.width=tmpb->width; + tmpg->pwhu.height=tmpb->height; + tmpg->pwhu.x1=0; + tmpg->pwhu.y1=0; + MemCpy(&tmpg->pwhu.u,tmpb->body,tmpb->width_internal*tmpb->height); + return tmpg(U8 *)+offset(CSprite.start); } -public U8 *SpriteElem2Summary(CSprite *tempg) +public U8 *SpriteElem2Summary(CSprite *tmpg) {//Study $LK,"::/Demo/Graphics/SpriteText.HC"$. U8 buf[STR_LEN],buf2[STR_LEN]; I32 *ptr; - StrPrint(buf,"%Z",tempg->type,"ST_SPRITE_ELEM_TYPES"); - switch (tempg->type) { + StrPrint(buf,"%Z",tmpg->type,"ST_SPRITE_ELEM_TYPES"); + switch (tmpg->type) { case SPT_COLOR: - CatPrint(buf," %s",Color2Str(buf2,tempg->c.color)); + CatPrint(buf," %s",Color2Str(buf2,tmpg->c.color)); break; case SPT_DITHER_COLOR: - CatPrint(buf," %s",Color2Str(buf2,ROPF_DITHER|tempg->d.dither_color.u8[0]| - tempg->d.dither_color.u8[1]<d.dither_color.u8[0]| + tmpg->d.dither_color.u8[1]<p.x1,tempg->p.y1); + CatPrint(buf," (%d,%d)",tmpg->p.x1,tmpg->p.y1); break; case SPT_LINE: case SPT_ARROW: case SPT_PLANAR_SYMMETRY: case SPT_RECT: case SPT_ROTATED_RECT: - CatPrint(buf," (%d,%d),(%d,%d)",tempg->pp.x1,tempg->pp.y1, - tempg->pp.x2,tempg->pp.y2); + CatPrint(buf," (%d,%d),(%d,%d)",tmpg->pp.x1,tmpg->pp.y1, + tmpg->pp.x2,tmpg->pp.y2); break; case SPT_CIRCLE: - CatPrint(buf," (%d,%d):%dR",tempg->pr.x1,tempg->pr.y1,tempg->pr.radius); + CatPrint(buf," (%d,%d):%dR",tmpg->pr.x1,tmpg->pr.y1,tmpg->pr.radius); break; case SPT_WIDTH: - CatPrint(buf," %d",tempg->w.width); + CatPrint(buf," %d",tmpg->w.width); break; case SPT_TEXT: case SPT_TEXT_BOX: case SPT_TEXT_DIAMOND: - CatPrint(buf," %d,%d:%-16tQ",tempg->ps.x1,tempg->ps.y1,tempg->ps.st); + CatPrint(buf," %d,%d:%-16tQ",tmpg->ps.x1,tmpg->ps.y1,tmpg->ps.st); break; case SPT_POLYLINE: case SPT_POLYPT: - ptr=&tempg->npu.x; - CatPrint(buf," %d (%d,%d)",tempg->npu.num,ptr[0],ptr[1]); + ptr=&tmpg->npu.x; + CatPrint(buf," %d (%d,%d)",tmpg->npu.num,ptr[0],ptr[1]); break; case SPT_ELLIPSE: case SPT_POLYGON: case SPT_BITMAP: - CatPrint(buf," (%d,%d):%dW,%dH",tempg->pwhu.x1,tempg->pwhu.y1, - tempg->pwhu.width,tempg->pwhu.height); + CatPrint(buf," (%d,%d):%dW,%dH",tmpg->pwhu.x1,tmpg->pwhu.y1, + tmpg->pwhu.width,tmpg->pwhu.height); break; case SPT_BSPLINE2: case SPT_BSPLINE3: case SPT_BSPLINE2_CLOSED: case SPT_BSPLINE3_CLOSED: - CatPrint(buf," %d",tempg->nu.num); + CatPrint(buf," %d",tmpg->nu.num); break; case SPT_MESH: - CatPrint(buf," %dV,%dT",tempg->mu.vertex_cnt,tempg->mu.tri_cnt); + CatPrint(buf," %dV,%dT",tmpg->mu.vertex_cnt,tmpg->mu.tri_cnt); break; case SPT_SHIFTABLE_MESH: - CatPrint(buf," %dV,%dT",tempg->pmu.vertex_cnt,tempg->pmu.tri_cnt); + CatPrint(buf," %dV,%dT",tmpg->pmu.vertex_cnt,tmpg->pmu.tri_cnt); break; } return StrNew(buf); diff --git a/Adam/AutoFile.HC b/Adam/InFile.HC similarity index 79% rename from Adam/AutoFile.HC rename to Adam/InFile.HC index fc5dd5e..f6b1686 100644 --- a/Adam/AutoFile.HC +++ b/Adam/InFile.HC @@ -1,7 +1,7 @@ -#help_index "AutoFile;Help System/Training" -#help_file "::/Doc/AutoFile" +#help_index "InFile;Help System/Training" +#help_file "::/Doc/InFile" -public U0 AFGetStr(U8 *st) +public U0 InGetStr(U8 *st) {//Wait for user to type certain str. I64 ch,sc; U8 buf[256],*st2; @@ -23,7 +23,7 @@ public U0 AFGetStr(U8 *st) } } -public U0 AFPrint(I64 ms=100,U8 *fmt,...) +public U0 InPrint(I64 ms=100,U8 *fmt,...) {//Print message with delay after each char. U8 *buf=StrPrintJoin(NULL,fmt,argc,argv),*st=buf; I64 ch; @@ -34,7 +34,7 @@ public U0 AFPrint(I64 ms=100,U8 *fmt,...) Free(buf); } -public U0 AFGetKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) +public U0 InGetKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) {//Wait for user to press certain key. I64 sc,ch; U8 buf[STR_LEN],*st; @@ -55,7 +55,7 @@ public U0 AFGetKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) Msg(MSG_KEY_DOWN,ch,sc); } -public I64 AFGetChar(...) +public I64 InGetChar(...) {//Wait for user to press one of set of chars. I64 i,sc,ch; U8 buf[512],*st; @@ -84,7 +84,7 @@ public I64 AFGetChar(...) } } -public U0 AFUntilKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) +public U0 InUntilKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) {//Let user type until he presses certain key. I64 sc,ch; do { @@ -93,7 +93,7 @@ public U0 AFUntilKey(I64 scan_code,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) } while (sc&sc_mask!=scan_code&sc_mask); } -public I64 AFUntilChar(...) +public I64 InUntilChar(...) {//Let user type until he presses one of set of chars. I64 i,sc,ch; while (TRUE) { @@ -105,16 +105,24 @@ public I64 AFUntilChar(...) } } -I64 af_l,af_r; +public Bool InView() +{//Let user type until or . + Bool res=View; + DocBottom; + return res; +} -Bool AFSetIPPlot(I64 ms,I64 x,I64 y,I64 z) +#help_index "InFile;Help System/Training;Input Pointer" +I64 in_plot_l,in_plot_r; + +Bool InSetIPPlot(I64 ms,I64 x,I64 y,I64 z) { - IPSet(x,y,z,af_l,af_r); + IPSet(x,y,z,in_plot_l,in_plot_r); Sleep(ms); return TRUE; } -public U0 AFSetIP(I64 ms=7,I64 x=MAX_I64,I64 y=MAX_I64,I64 z=MAX_I64, +public U0 InSetIP(I64 ms=7,I64 x=MAX_I64,I64 y=MAX_I64,I64 z=MAX_I64, I64 l=MAX_I64,I64 r=MAX_I64) {//Move input pointer (mouse) to spot at certain speed. if (!(0<=x or . - Bool res=View; - DocBottom; - return res; + in_plot_l=l; in_plot_r=r; + Line(ms,ip.pos.x,ip.pos.y,ip.pos.z,x,y,z,&InSetIPPlot); } diff --git a/Adam/MakeAdam.HC b/Adam/MakeAdam.HC index 6538551..d507071 100644 --- a/Adam/MakeAdam.HC +++ b/Adam/MakeAdam.HC @@ -9,14 +9,14 @@ Cd(__DIR__);; #include "Snd/MakeSnd" #include "ABlkDev/MakeABlkDev" #include "Menu" -#include "WinA" -#include "WinB" +#include "Win" +#include "WinMgr" #include "ADbg" #include "::/Adam/God/GodExt" #include "DolDoc/MakeDoc" LBts(&sys_run_level,RLf_DOC); #include "Ctrls/MakeCtrls" -#include "AutoFile" +#include "InFile" #include "ARegistry" #include "AutoComplete/MakeAC" #include "God/MakeGod" diff --git a/Adam/Menu.HC b/Adam/Menu.HC index 299d8a5..5b7965b 100644 --- a/Adam/Menu.HC +++ b/Adam/Menu.HC @@ -26,41 +26,41 @@ public CMenuEntry *MenuEntryFind(CMenu *haystack_menu,U8 *needle_full_name) {//Find pulldown entry. Fs->cur_menu is probably the menu you want. //Just 2 levels -- across top and down are valid, currently. U8 *st,*st2; - CMenuEntry *tempse; + CMenuEntry *tmpse; if (!haystack_menu || !needle_full_name) return NULL; st=StrNew(needle_full_name); st2=StrNew(needle_full_name); - tempse=(&haystack_menu->sub)(U8 *)-offset(CMenuEntry.sub); - while (*st && tempse) { + tmpse=(&haystack_menu->sub)(U8 *)-offset(CMenuEntry.sub); + while (*st && tmpse) { StrFirstRem(st,"/",st2); - tempse=MenuSubEntryFind(tempse->sub,st2); + tmpse=MenuSubEntryFind(tmpse->sub,st2); } Free(st); Free(st2); - return tempse; + return tmpse; } CMenuEntry *MenuNewSub(CCmpCtrl *cc,CTask *task) { - CMenuEntry *tempme=NULL,*tempse; + CMenuEntry *tmpme=NULL,*tmpse; if (cc->token==TK_IDENT) { - tempme=CAlloc(sizeof(CMenuEntry),task); + tmpme=CAlloc(sizeof(CMenuEntry),task); if (StrLen(cc->cur_str)>31) cc->cur_str[31]=0; - StrCpy(tempme->name,cc->cur_str); + StrCpy(tmpme->name,cc->cur_str); if (Lex(cc)=='(') { - tempme->msg_code=MSG_KEY_DOWN_UP; + tmpme->msg_code=MSG_KEY_DOWN_UP; if (Lex(cc)!=',' && cc->token!=')') - tempme->msg_code=LexExpressionI64(cc); + tmpme->msg_code=LexExpressionI64(cc); if (cc->token==',') Lex(cc); if (cc->token!=',' && cc->token!=')') - tempme->a1=LexExpressionI64(cc); + tmpme->a1=LexExpressionI64(cc); if (cc->token==',') Lex(cc); if (cc->token!=',' && cc->token!=')') - tempme->a2=LexExpressionI64(cc); + tmpme->a2=LexExpressionI64(cc); if (cc->token!=')') LexExcept(cc,"Missing ')' at "); if (Lex(cc)!=';') @@ -68,10 +68,10 @@ CMenuEntry *MenuNewSub(CCmpCtrl *cc,CTask *task) Lex(cc); //Skip ; } else if (cc->token=='{') { Lex(cc); //Skip { - tempme->dir=TRUE; - tempse=&tempme->sub; - while (tempse && cc->token!='}') - tempse=tempse->next=MenuNewSub(cc,task); + tmpme->dir=TRUE; + tmpse=&tmpme->sub; + while (tmpse && cc->token!='}') + tmpse=tmpse->next=MenuNewSub(cc,task); if (cc->token!='}') LexExcept(cc,"Missing '}' at "); else @@ -79,13 +79,13 @@ CMenuEntry *MenuNewSub(CCmpCtrl *cc,CTask *task) } else LexExcept(cc,"Expecting '{' at "); } - return tempme; + return tmpme; } public CMenu *MenuNew(U8 *st,I64 flags=0,CTask *task=NULL) {//Parse a menu. You probably don't need this. CMenu *m; - CMenuEntry *tempse; + CMenuEntry *tmpse; CCmpCtrl *cc=CmpCtrlNew(st,CCF_DONT_FREE_BUF); if (!task) task=Fs; Lex(cc); @@ -93,9 +93,9 @@ public CMenu *MenuNew(U8 *st,I64 flags=0,CTask *task=NULL) m->task=task; m->flags=flags; m->attr =BLUE<<4+YELLOW; - tempse=&m->sub; - while (tempse) - tempse=tempse->next=MenuNewSub(cc,task); + tmpse=&m->sub; + while (tmpse) + tmpse=tmpse->next=MenuNewSub(cc,task); CmpCtrlDel(cc); return m; } @@ -109,40 +109,40 @@ public CMenu *MenuFile(U8 *filename,I64 flags=0,CTask *task=NULL) return m; } -U0 MenuDelSub(CMenuEntry *tempme) +U0 MenuDelSub(CMenuEntry *tmpme) { - CMenuEntry *tempse,*tempse1; - if (tempme) { - tempse=tempme->sub; - while (tempse) { - tempse1=tempse->next; - MenuDelSub(tempse); - tempse=tempse1; + CMenuEntry *tmpse,*tmpse1; + if (tmpme) { + tmpse=tmpme->sub; + while (tmpse) { + tmpse1=tmpse->next; + MenuDelSub(tmpse); + tmpse=tmpse1; } - Free(tempme); + Free(tmpme); } } public U0 MenuDel(CMenu *m) {//Delete a manu. You probably don't need this. - CMenuEntry *tempme,*tempme1; + CMenuEntry *tmpme,*tmpme1; if (!m) return; - tempme=m->sub; - while (tempme) { - tempme1=tempme->next; - MenuDelSub(tempme); - tempme=tempme1; + tmpme=m->sub; + while (tmpme) { + tmpme1=tmpme->next; + MenuDelSub(tmpme); + tmpme=tmpme1; } Free(m); } -I64 MenuEntryWidth(CMenuEntry *tempme) +I64 MenuEntryWidth(CMenuEntry *tmpme) { - I64 res=StrLen(tempme->name); - CMenuEntry *tempse=tempme->sub; - while (tempse) { - res=MaxI64(res,StrLen(tempse->name)); - tempse=tempse->next; + I64 res=StrLen(tmpme->name); + CMenuEntry *tmpse=tmpme->sub; + while (tmpse) { + res=MaxI64(res,StrLen(tmpse->name)); + tmpse=tmpse->next; } return res+1; } @@ -174,7 +174,7 @@ public U0 MenuPop() U0 DrawMenu(CDC *dc) { CMenu *m; - CMenuEntry *tempme,*tempse,*cur_submenu=NULL; + CMenuEntry *tmpme,*tmpse,*cur_submenu=NULL; U8 *st=NULL; CTask *task=MenuTask; I64 i,w,x0,y0,x1=ip.pos.x,y1=ip.pos.y; @@ -185,9 +185,9 @@ U0 DrawMenu(CDC *dc) dc->color=m->attr>>4; GrRect(dc,0,0,GR_WIDTH,FONT_HEIGHT); x0=0; - tempme=m->sub; - while (tempme) { - w=MenuEntryWidth(tempme)*FONT_WIDTH; + tmpme=m->sub; + while (tmpme) { + w=MenuEntryWidth(tmpme)*FONT_WIDTH; if (x0<=x1color=m->attr&15; @@ -195,26 +195,26 @@ U0 DrawMenu(CDC *dc) dc->color=m->attr>>4; } else dc->color=m->attr&15; - GrPrint(dc,x0,0,"%s",tempme->name); + GrPrint(dc,x0,0,"%s",tmpme->name); y0=FONT_HEIGHT; - tempse=tempme->sub; - while (tempse) { - if (tempse->checked) + tmpse=tmpme->sub; + while (tmpse) { + if (tmpse->checked) i=m->attr^0xFF; else i=m->attr; if (y0<=y1msg_code==MSG_KEY_DOWN|| - tempse->msg_code==MSG_KEY_DOWN_UP) { - if (!tempse->a2) - tempse->a2=Char2ScanCode(tempse->a1); - st=ScanCode2KeyName(tempse->a2); + if (tmpse->msg_code==MSG_KEY_DOWN|| + tmpse->msg_code==MSG_KEY_DOWN_UP) { + if (!tmpse->a2) + tmpse->a2=Char2ScanCode(tmpse->a1); + st=ScanCode2KeyName(tmpse->a2); } - sys_cur_submenu_entry=cur_submenu=tempse; + sys_cur_submenu_entry=cur_submenu=tmpse; dc->color=i&15; GrRect(dc,x0,y0,w,FONT_HEIGHT); dc->color=i>>4; - GrPrint(dc,x0,y0,"%s",tempse->name); + GrPrint(dc,x0,y0,"%s",tmpse->name); if (st) { dc->color=i>>4; GrRect(dc,x0+w,y0-FONT_HEIGHT, @@ -227,17 +227,17 @@ U0 DrawMenu(CDC *dc) dc->color=i>>4; GrRect(dc,x0,y0,w,FONT_HEIGHT); dc->color=i&15; - GrPrint(dc,x0,y0,"%s",tempse->name); + GrPrint(dc,x0,y0,"%s",tmpse->name); } y0+=FONT_HEIGHT; - tempse=tempse->next; + tmpse=tmpse->next; } } else { dc->color=m->attr&15; - GrPrint(dc,x0,0,"%s",tempme->name); + GrPrint(dc,x0,0,"%s",tmpme->name); } x0+=w; - tempme=tempme->next; + tmpme=tmpme->next; } sys_cur_submenu_entry=cur_submenu; } diff --git a/Adam/Opt/Boot/DskISO9660.HC b/Adam/Opt/Boot/DskISO9660.HC index 9c65c86..a1aa05f 100644 --- a/Adam/Opt/Boot/DskISO9660.HC +++ b/Adam/Opt/Boot/DskISO9660.HC @@ -6,12 +6,12 @@ class CCDVDUserData //Create DVD short_dir_blks,long_dir_blks; }; -I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, - CISO1DirEntry *tempi2,I64 *_cur_blk,CDirEntry *parent,Bool write, +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 *tempc; - CDirEntry *tempde1,*tempde2; + 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), @@ -20,12 +20,12 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, *de2=dir_blk_buf2,*de12; I64 i,n; - tempc=parent->user_data; + tmpc=parent->user_data; de->len=sizeof(CISO1DirEntry)-1; de->ext_attr_len=0; FillU16Palindrome(&de->vol_seq_num,1); - Date2ISO1(&de->date,tempde->datetime); + Date2ISO1(&de->date,tmpde->datetime); de->flags=ISO1_ATTR_DIR; de->name_len=1; de->name=0; @@ -34,8 +34,8 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, de->len=sizeof(CISO1DirEntry)-1; de->ext_attr_len=0; - FillU32Palindrome(&de->loc,tempc->loc); - FillU32Palindrome(&de->size,tempc->short_dir_blks*DVD_BLK_SIZE); + 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; @@ -47,7 +47,7 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, de2->len=sizeof(CISO1DirEntry)-1; de2->ext_attr_len=0; FillU16Palindrome(&de2->vol_seq_num,1); - Date2ISO1(&de2->date,tempde->datetime); + Date2ISO1(&de2->date,tmpde->datetime); de2->flags=ISO1_ATTR_DIR; de2->name_len=1; de2->name=0; @@ -56,8 +56,8 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, de2->len=sizeof(CISO1DirEntry)-1; de2->ext_attr_len=0; - FillU32Palindrome(&de2->loc,tempc->loc+tempc->short_dir_blks); - FillU32Palindrome(&de2->size,tempc->long_dir_blks*DVD_BLK_SIZE); + 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; @@ -66,49 +66,49 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, de2->len+=de2->name_len; de2(U8 *)+=de2->len; - tempde1=tempde->sub; - while (tempde1) { - tempde2=tempde1->next; - if (!write) tempde1->user_data=CAlloc(sizeof(CCDVDUserData)); + tmpde1=tmpde->sub; + while (tmpde1) { + tmpde2=tmpde1->next; + if (!write) tmpde1->user_data=CAlloc(sizeof(CCDVDUserData)); de1=de; de12=de2; - if (tempde1->attr & RS_ATTR_DIR) { - n=DVDFileCreate2(out_file,tempde1,de,de2,_cur_blk, - tempde,write,stage2_filename,_stage2_blk); + 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 { - tempc=tempde1->user_data; + tmpc=tmpde1->user_data; de->len=sizeof(CISO1DirEntry)-1; de->ext_attr_len=0; FillU32Palindrome(&de->loc,*_cur_blk); - tempc->loc=*_cur_blk; + tmpc->loc=*_cur_blk; if (write) { - if (stage2_filename && !StrCmp(tempde1->full_name,stage2_filename)) { + 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,tempde1->full_name; + "%X:%s\n",*_cur_blk,tmpde1->full_name; } - FillU32Palindrome(&de->size,tempde1->size); + FillU32Palindrome(&de->size,tmpde1->size); FillU16Palindrome(&de->vol_seq_num,1); - Date2ISO1(&de->date,tempde1->datetime); + Date2ISO1(&de->date,tmpde1->datetime); de->flags=0; - de->name_len=StrLen(tempde1->name); - StrCpy(&de->name,tempde1->name); + 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,tempde1->size); + FillU32Palindrome(&de2->size,tmpde1->size); FillU16Palindrome(&de2->vol_seq_num,1); - Date2ISO1(&de2->date,tempde1->datetime); + Date2ISO1(&de2->date,tmpde1->datetime); de2->flags=0; - de2->name_len=StrLen(tempde1->name)<<1; + de2->name_len=StrLen(tmpde1->name)<<1; ptr1=&de2->name; - ptr2=&tempde1->name; + ptr2=&tmpde1->name; for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; @@ -116,7 +116,7 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, de2->len+=de2->name_len; de2(U8 *)+=de2->len; - in_file=FOpen(tempde1->full_name,"r"); + 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) { @@ -151,66 +151,66 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, MemCpy(de2,buf,i); de2(U8 *)+=i; } - tempde1=tempde2; + tmpde1=tmpde2; } - tempc=tempde->user_data; + tmpc=tmpde->user_data; - tempi->len=sizeof(CISO1DirEntry)-1; - tempi->ext_attr_len=0; - tempi->flags=ISO1_ATTR_DIR; - if (!tempde->name[0]) { - tempi->name_len=1; - tempi->name=1; + 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 { - tempi->name_len=StrLen(tempde->name); - StrCpy(&tempi->name,tempde->name); + tmpi->name_len=StrLen(tmpde->name); + StrCpy(&tmpi->name,tmpde->name); } - tempi->len+=tempi->name_len; + tmpi->len+=tmpi->name_len; n=de(U8 *)+1-dir_blk_buf(U8 *); n=(n+DVD_BLK_SIZE-1)/DVD_BLK_SIZE; - FillU32Palindrome(&tempi->size,n*DVD_BLK_SIZE); - FillU32Palindrome(&tempi->loc,*_cur_blk); - tempc->short_dir_blks=n; - tempc->loc=*_cur_blk; + 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(&tempi->vol_seq_num,1); - Date2ISO1(&tempi->date,tempde->datetime); + FillU16Palindrome(&tmpi->vol_seq_num,1); + Date2ISO1(&tmpi->date,tmpde->datetime); if (write) - "%X:%s\n",*_cur_blk,tempde->full_name; + "%X:%s\n",*_cur_blk,tmpde->full_name; if (write) FWBlks(out_file,dir_blk_buf,*_cur_blk<<2,n<<2); *_cur_blk+=n; - tempi2->len=sizeof(CISO1DirEntry)-1; - tempi2->ext_attr_len=0; - tempi2->flags=ISO1_ATTR_DIR; - if (!tempde->name[0]) { - tempi2->name_len=1; - tempi->name=1; + 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 { - tempi2->name_len=StrLen(tempde->name)<<1; - ptr1=&tempi2->name; - ptr2=&tempde->name; - for (i=0;iname_len;i=i+2) { + tmpi2->name_len=StrLen(tmpde->name)<<1; + ptr1=&tmpi2->name; + ptr2=&tmpde->name; + for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; } } - tempi2->len+=tempi2->name_len; + tmpi2->len+=tmpi2->name_len; n=de2(U8 *)+1-dir_blk_buf2(U8 *); n=(n+DVD_BLK_SIZE-1)/DVD_BLK_SIZE; - FillU32Palindrome(&tempi2->size,n*DVD_BLK_SIZE); - FillU32Palindrome(&tempi2->loc,*_cur_blk); - tempc->long_dir_blks=n; + 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(&tempi2->vol_seq_num,1); - Date2ISO1(&tempi2->date,tempde->datetime); + FillU16Palindrome(&tmpi2->vol_seq_num,1); + Date2ISO1(&tmpi2->date,tmpde->datetime); if (write) - "%X:%s\n",*_cur_blk,tempde->full_name; + "%X:%s\n",*_cur_blk,tmpde->full_name; if (write) FWBlks(out_file,dir_blk_buf2,*_cur_blk<<2,n<<2); *_cur_blk+=n; @@ -218,26 +218,26 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, Free(dir_blk_buf); Free(dir_blk_buf2); Free(buf); - return tempi->name_len; + return tmpi->name_len; } -I64 DVDTableLen(CDirEntry *tempde,I64 *size1,I64 *size2,I64 cur_depth) +I64 DVDTableLen(CDirEntry *tmpde,I64 *size1,I64 *size2,I64 cur_depth) {//Returns depth - CDirEntry *tempde1=tempde->sub; + CDirEntry *tmpde1=tmpde->sub; I64 max_depth=cur_depth,i; - while (tempde1) { - if (tempde1->attr & RS_ATTR_DIR) { - *size1+=sizeof(CISO1PathEntry)-2+ (StrLen(tempde1->name)+1)&-0x2; - *size2+=sizeof(CISO1PathEntry)-2+StrLen(tempde1->name)<<1; - i=DVDTableLen(tempde1,size1,size2,cur_depth+1); + 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; } - tempde1=tempde1->next; + tmpde1=tmpde1->next; } return max_depth; } -U0 DVDFillPathTable(CDirEntry *tempde, +U0 DVDFillPathTable(CDirEntry *tmpde, CISO1PathEntry **_itabbuf,CISO1PathEntry **_itabbuf2, I64 parent_entry_num,Bool big_endian,I64 *first_free, I64 cur_level,I64 output_level) @@ -245,59 +245,59 @@ U0 DVDFillPathTable(CDirEntry *tempde, U8 *ptr1,*ptr2; I64 i; CISO1PathEntry *tabbuf=*_itabbuf,*tabbuf2=*_itabbuf2; - CDirEntry *tempde1=tempde->sub,*tempde2; - CCDVDUserData *tempc; + CDirEntry *tmpde1=tmpde->sub,*tmpde2; + CCDVDUserData *tmpc; if (cur_level==output_level) { - while (tempde1) { - if (tempde1->attr & RS_ATTR_DIR) { - tempc=tempde1->user_data; - tempc->path_entry_num=*first_free; - tabbuf->name_len=StrLen(tempde1->name); + 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(tempc->loc); + tabbuf->blk=EndianU32(tmpc->loc); tabbuf->parent_entry_num=EndianU16(parent_entry_num); } else { - tabbuf->blk=tempc->loc; + tabbuf->blk=tmpc->loc; tabbuf->parent_entry_num=parent_entry_num; } - StrCpy(&tabbuf->name,tempde1->name); + StrCpy(&tabbuf->name,tmpde1->name); tabbuf(U8 *)+=sizeof(CISO1PathEntry)-2+ - (StrLen(tempde1->name)+1) & -0x2; + (StrLen(tmpde1->name)+1) & -0x2; - tabbuf2->name_len=StrLen(tempde1->name)<<1; + tabbuf2->name_len=StrLen(tmpde1->name)<<1; if (big_endian) { - tabbuf2->blk=EndianU32(tempc->loc+tempc->short_dir_blks); + tabbuf2->blk=EndianU32(tmpc->loc+tmpc->short_dir_blks); tabbuf2->parent_entry_num=EndianU16(parent_entry_num); } else { - tabbuf2->blk=tempc->loc+tempc->short_dir_blks; + tabbuf2->blk=tmpc->loc+tmpc->short_dir_blks; tabbuf2->parent_entry_num=parent_entry_num; } ptr1=&tabbuf2->name; - ptr2=&tempde1->name; + ptr2=&tmpde1->name; for (i=0;iname_len;i=i+2) { ptr1++; *ptr1++=*ptr2++; } tabbuf2(U8 *)+=sizeof(CISO1PathEntry)-2+ - StrLen(tempde1->name)<<1; + StrLen(tmpde1->name)<<1; *first_free+=1; } - tempde1=tempde1->next; + tmpde1=tmpde1->next; } *_itabbuf=tabbuf; *_itabbuf2=tabbuf2; } - tempde1=tempde->sub; - while (tempde1) { - tempde2=tempde1->next; - if (tempde1->attr & RS_ATTR_DIR) { - tempc=tempde1->user_data; - DVDFillPathTable(tempde1,_itabbuf,_itabbuf2,tempc->path_entry_num, + 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); } - tempde1=tempde2; + tmpde1=tmpde2; } } @@ -320,8 +320,8 @@ public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, *zero_buf=CAlloc(DVD_BLK_SIZE); CISO1PathEntry *tabbuf=NULL,*tabbuf2=NULL,*itabbuf,*itabbuf2; CFile *out_file=NULL; - CISO1DirEntry *tempi; - CCDVDUserData *tempc; + CISO1DirEntry *tmpi; + CCDVDUserData *tmpc; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); @@ -339,8 +339,8 @@ public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, headdir->sub=FilesFind(src_files_find_mask,fuf_flags); headdir->datetime=Now; headdir->user_data=CAlloc(sizeof(CCDVDUserData)); - tempc=headdir->user_data; - tempc->path_entry_num=1; + tmpc=headdir->user_data; + tmpc->path_entry_num=1; cur_blk=20<<2>>2; if (stage2_filename) //preboot and bootloader @@ -419,14 +419,14 @@ public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, tabbuf=CAlloc(tabsize*DVD_BLK_SIZE); iso_pri->type_l_path_table=cur_blk; tabbuf->name_len=2; //Fill-in adam entry - tempi=&iso_pri->root_dir_record; - tabbuf->blk=tempi->loc.little; + 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 - tempi=&iso_sup->root_dir_record; - tabbuf2->blk=tempi->loc.little; + tmpi=&iso_sup->root_dir_record; + tabbuf2->blk=tmpi->loc.little; tabbuf2->parent_entry_num=1; itabbuf=tabbuf+1; itabbuf2=tabbuf2+1; @@ -443,14 +443,14 @@ public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, MemSet(tabbuf,0,tabsize*DVD_BLK_SIZE); iso_pri->type_m_path_table=EndianU32(cur_blk); tabbuf->name_len=2; //Fill-in adam entry - tempi=&iso_pri->root_dir_record; - tabbuf->blk=tempi->loc.big; + 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 - tempi=&iso_sup->root_dir_record; - tabbuf2->blk=tempi->loc.big; + tmpi=&iso_sup->root_dir_record; + tabbuf2->blk=tmpi->loc.big; tabbuf2->parent_entry_num=EndianU16(1); itabbuf=tabbuf+1; itabbuf2=tabbuf2+1; diff --git a/Adam/Opt/Boot/DskISORedSea.HC b/Adam/Opt/Boot/DskISORedSea.HC index 6eaac22..2509eb0 100644 --- a/Adam/Opt/Boot/DskISORedSea.HC +++ b/Adam/Opt/Boot/DskISORedSea.HC @@ -108,18 +108,18 @@ U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let,I64 stage2_blk=0,I64 stage2_size=0) Free(iso_term); } -I64 RedSeaISOPass1(CDirEntry *tempde) +I64 RedSeaISOPass1(CDirEntry *tmpde) { - I64 dir_entry_cnt=3+LinkedLstCnt(tempde),res=0; - while (tempde) { - if (tempde->attr & RS_ATTR_DIR) { - if (tempde->sub) - res+=RedSeaISOPass1(tempde->sub); + I64 dir_entry_cnt=3+LinkedLstCnt(tmpde),res=0; + while (tmpde) { + if (tmpde->attr & RS_ATTR_DIR) { + if (tmpde->sub) + res+=RedSeaISOPass1(tmpde->sub); else res+=BLK_SIZE; //Empty dir } else - res+=CeilU64(tempde->size,BLK_SIZE); - tempde=tempde->next; + res+=CeilU64(tmpde->size,BLK_SIZE); + tmpde=tmpde->next; } res+=CeilU64(dir_entry_cnt<<6,BLK_SIZE); //Size in bytes #assert CDIR_SIZE==64 @@ -129,7 +129,7 @@ public I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir, U8 *_stage2_filename=NULL) {//See $LK,"::/Misc/DoDistro.HC"$. Must be ISO.C I64 i,res,root_cnt,root_dir_blks,bitmap_blks,bitmap_blks1; - CDirEntry *tempde,de; + CDirEntry *tmpde,de; U8 buf[STR_LEN],*iso_filename,*src_dir,*stage2_filename; CDrv *dv=DrvMakeFreeSlot(DrvNextFreeLet('Q')); //First $LK,"BDT_ISO_FILE_WRITE",A="MN:BDT_ISO_FILE_WRITE"$ CBlkDev *bd=BlkDevNextFreeSlot(dv->drv_let,BDT_ISO_FILE_WRITE); @@ -147,10 +147,10 @@ public I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir, StrCpy(stage2_filename+3,stage2_filename+i); } else stage2_filename=NULL; - tempde=FilesFind(src_dir,FUF_RECURSE); - root_cnt=LinkedLstCnt(tempde)+3; + tmpde=FilesFind(src_dir,FUF_RECURSE); + root_cnt=LinkedLstCnt(tmpde)+3; root_dir_blks=CeilU64(root_cnt<<6,BLK_SIZE)>>BLK_SIZE_BITS; - if (res=RedSeaISOPass1(tempde)>>BLK_SIZE_BITS) { + if (res=RedSeaISOPass1(tmpde)>>BLK_SIZE_BITS) { bd->drv_offset=19<<2+(DVD_BLK_SIZE*2+DVD_BOOT_LOADER_SIZE)/BLK_SIZE; bitmap_blks=1; do { diff --git a/Adam/Opt/Utils/Diff.HC b/Adam/Opt/Utils/Diff.HC index 399f968..11905d7 100644 --- a/Adam/Opt/Utils/Diff.HC +++ b/Adam/Opt/Utils/Diff.HC @@ -219,17 +219,17 @@ Bool DiffSub(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi,I64 j2_lo,I64 j2_hi, Bool DiffBins(CDoc *doc1,CDoc *doc2) { - CDocBin *tempb1=doc1->bin_head.next, - *tempb2=doc2->bin_head.next; + CDocBin *tmpb1=doc1->bin_head.next, + *tmpb2=doc2->bin_head.next; - if (tempb1->last->last->num!=tempb2->last->last->num) + if (tmpb1->last->last->num!=tmpb2->last->last->num) return TRUE; - while (tempb1!=&doc1->bin_head) { - if (tempb1->size!=tempb2->size || - MemCmp(tempb1->data,tempb2->data,tempb1->size)) + while (tmpb1!=&doc1->bin_head) { + if (tmpb1->size!=tmpb2->size || + MemCmp(tmpb1->data,tmpb2->data,tmpb1->size)) return TRUE; - tempb1=tempb1->next; - tempb2=tempb2->next; + tmpb1=tmpb1->next; + tmpb2=tmpb2->next; } return FALSE; } @@ -323,24 +323,24 @@ public U0 ZipRep(U8 *files_find_mask="/*",U8 *fu_flags=NULL, //Dft is just src files. (Used to spot //src files with redundancy in them.) I64 i=0,cnt,size,fuf_flags=0; - CDirEntry *tempde,*tempde1,**sort_buf; + CDirEntry *tmpde,*tmpde1,**sort_buf; U8 *buf; CArcCompress *arc; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+F+S"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - cnt=FileCnt(tempde); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + cnt=FileCnt(tmpde); sort_buf=MAlloc(sizeof(CDirEntry *)*cnt); - while (tempde) { - sort_buf[i++]=tempde; - buf=FileRead(tempde->full_name,&size); + while (tmpde) { + sort_buf[i++]=tmpde; + buf=FileRead(tmpde->full_name,&size); if (just_text_not_graphics) size=StrLen(buf); arc=CompressBuf(buf,size); Free(buf); - tempde->user_data(F64)=100.0*arc->compressed_size/arc->expanded_size; + tmpde->user_data(F64)=100.0*arc->compressed_size/arc->expanded_size; Free(arc); - tempde=tempde->next; + tmpde=tmpde->next; } QSortI64(sort_buf,cnt,&ZRepCompare); for (i=0;ifull_name,&fuf_flags,replace_text); - tempde=tempde->next; + while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) { + cnt+=FindFile(needle_str,tmpde->full_name,&fuf_flags,replace_text); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return cnt; } diff --git a/Adam/Opt/Utils/HeapLog.HC b/Adam/Opt/Utils/HeapLog.HC index d7c1d1c..e809bef 100644 --- a/Adam/Opt/Utils/HeapLog.HC +++ b/Adam/Opt/Utils/HeapLog.HC @@ -25,19 +25,19 @@ CHeapLogHash *heaplog_head=NULL; U0 HeapLogMAlloc(U8 *addr) { - CHeapLog *temphl; + CHeapLog *tmphl; I64 i; if (MHeapCtrl(addr)==heaplog_hc_watched) { - temphl=MAlloc(sizeof(CHeapLog),heaplog_hc); - temphl->addr=addr; + tmphl=MAlloc(sizeof(CHeapLog),heaplog_hc); + tmphl->addr=addr; for (i=0;icaller[i]=Caller(i+2); + tmphl->caller[i]=Caller(i+2); i=addr>>3 &(HL_HASH_SIZE-1); PUSHFD CLI while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) PAUSE - QueIns(temphl,heaplog_head[i].last); + QueIns(tmphl,heaplog_head[i].last); LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); POPFD } @@ -46,7 +46,7 @@ U0 HeapLogMAlloc(U8 *addr) U0 HeapLogFree(U8 *addr) { I64 i; - CHeapLog *temphl; + CHeapLog *tmphl; if (!addr) return; if (MHeapCtrl(addr)==heaplog_hc_watched) { i=addr>>3 &(HL_HASH_SIZE-1); @@ -54,16 +54,16 @@ U0 HeapLogFree(U8 *addr) CLI while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) PAUSE - temphl=heaplog_head[i].next; - while (temphl!=&heaplog_head[i]) { - if (addr==temphl->addr) { - QueRem(temphl); + tmphl=heaplog_head[i].next; + while (tmphl!=&heaplog_head[i]) { + if (addr==tmphl->addr) { + QueRem(tmphl); LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); POPFD - Free(temphl); + Free(tmphl); return; } - temphl=temphl->next; + tmphl=tmphl->next; } LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); POPFD @@ -115,7 +115,7 @@ public Bool HeapLog(Bool val=ON,CTask *task=NULL) public U0 HeapLogAddrRep(Bool leave_it=OFF) {//Call $LK,"HeapLog",A="MN:HeapLog"$() first and collect data. I64 i,j,total=0; - CHeapLog *temphl,hl; + CHeapLog *tmphl,hl; if (!LBtr(&sys_semas[SYS_SEMA_HEAPLOG_ACTIVE],0)) { "HeapLog Not Active\n"; return; @@ -124,16 +124,16 @@ public U0 HeapLogAddrRep(Bool leave_it=OFF) while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) PAUSE for (i=0;i>3+hla.caller[0])&(HL_HASH_SIZE-1); - temphls=size_head[k].next; - while (temphls!=&size_head[k]) { - if (MSize(hla.addr)==temphls->size) { + tmphls=size_head[k].next; + while (tmphls!=&size_head[k]) { + if (MSize(hla.addr)==tmphls->size) { for (j=0;jcaller[j]) + if (hla.caller[j]!=tmphls->caller[j]) goto hl_next; - temphls->cnt++; + tmphls->cnt++; goto hl_found; } hl_next: - temphls=temphls->next; + tmphls=tmphls->next; } - temphls=MAlloc(sizeof(CHeapLog),heaplog_hc); - MemCpy(temphls,&hla,sizeof(CHeapLog)); - temphls->cnt=1; - temphls->size=MSize(hla.addr); - QueIns(temphls,size_head[k].last); + tmphls=MAlloc(sizeof(CHeapLog),heaplog_hc); + MemCpy(tmphls,&hla,sizeof(CHeapLog)); + tmphls->cnt=1; + tmphls->size=MSize(hla.addr); + QueIns(tmphls,size_head[k].last); hl_found: - temphla=hla.next; + tmphla=hla.next; } } LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); for (i=0;inext; - "%08X*%08X=%08X",temphls->size,temphls->cnt,temphls->size*temphls->cnt; + tmphls=size_head[i].next; + while (tmphls!=&size_head[i]) { + tmphls1=tmphls->next; + "%08X*%08X=%08X",tmphls->size,tmphls->cnt,tmphls->size*tmphls->cnt; for (j=0;jcaller[j]; + " %P",tmphls->caller[j]; '\n'; - total+=temphls->size*temphls->cnt; - Free(temphls); - temphls=temphls1; + total+=tmphls->size*tmphls->cnt; + Free(tmphls); + tmphls=tmphls1; } } Free(size_head); diff --git a/Adam/Opt/Utils/LineRep.HC b/Adam/Opt/Utils/LineRep.HC index 6951198..d3cc410 100644 --- a/Adam/Opt/Utils/LineRep.HC +++ b/Adam/Opt/Utils/LineRep.HC @@ -1,107 +1,107 @@ #help_index "Cmd Line (Typically)" -I64 LineRep1(CDirEntry *tempde) +I64 LineRep1(CDirEntry *tmpde) { CDoc *doc; I64 res=0,i; - while (tempde) { + while (tmpde) { i=0; - if (tempde->attr&RS_ATTR_DIR) - i=LineRep1(tempde->sub); + if (tmpde->attr&RS_ATTR_DIR) + i=LineRep1(tmpde->sub); else { - doc=DocRead(tempde->full_name); + doc=DocRead(tmpde->full_name); if (doc->head.next!=doc) i=doc->head.last->y+2; DocDel(doc); } - tempde->user_data=i; + tmpde->user_data=i; res+=i; - tempde=tempde->next; + tmpde=tmpde->next; } return res; } -U0 LineRep2(CDoc *doc,CDirEntry *tempde) +U0 LineRep2(CDoc *doc,CDirEntry *tmpde) { - while (tempde) { - if (tempde->attr&RS_ATTR_DIR) { - DocPrint(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempde->user_data,tempde->name); - LineRep2(doc,tempde->sub); + while (tmpde) { + if (tmpde->attr&RS_ATTR_DIR) { + DocPrint(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",tmpde->user_data,tmpde->name); + LineRep2(doc,tmpde->sub); DocPrint(doc,"$$ID,-2$$"); } else DocPrint(doc,"%8,d $$LK,\"%s\",A=\"FI:%s\"$$\n", - tempde->user_data,tempde->name,tempde->full_name); - tempde=tempde->next; + tmpde->user_data,tmpde->name,tmpde->full_name); + tmpde=tmpde->next; } } public I64 LineRep(U8 *files_find_mask="/*",U8 *fu_flags=NULL) {//Source line-of-code count report. I64 fuf_flags=0,res=0; CDoc *doc=DocNew; - CDirEntry *tempde1=NULL; + CDirEntry *tmpde1=NULL; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+S"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempde1=FilesFind(files_find_mask,fuf_flags)) { - res=LineRep1(tempde1); + if (tmpde1=FilesFind(files_find_mask,fuf_flags)) { + res=LineRep1(tmpde1); DocPrint(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",res,files_find_mask); - LineRep2(doc,tempde1); + LineRep2(doc,tmpde1); DocPrint(doc,"$$ID,-2$$"); - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } DocInsDoc(DocPut,doc); DocDel(doc); return res; } -I64 SizeRep1(CDirEntry *tempde,I64 *_fuf_flags) +I64 SizeRep1(CDirEntry *tmpde,I64 *_fuf_flags) { I64 res=0,i; U8 buf[BLK_SIZE]; CDrv *dv; - while (tempde) { - if (tempde->attr&RS_ATTR_DIR) - i=SizeRep1(tempde->sub,_fuf_flags); - else if ((i=tempde->size) && Bt(_fuf_flags,FUf_EXPAND) && - FileAttr(tempde->name)&RS_ATTR_COMPRESSED) { - dv=Let2Drv(*tempde->full_name); - RBlks(dv,buf,Cluster2Blk(dv,tempde->cluster),1); + while (tmpde) { + if (tmpde->attr&RS_ATTR_DIR) + i=SizeRep1(tmpde->sub,_fuf_flags); + else if ((i=tmpde->size) && Bt(_fuf_flags,FUf_EXPAND) && + FileAttr(tmpde->name)&RS_ATTR_COMPRESSED) { + dv=Let2Drv(*tmpde->full_name); + RBlks(dv,buf,Cluster2Blk(dv,tmpde->cluster),1); i=(&buf)(CArcCompress *)->expanded_size; } - tempde->user_data=i; + tmpde->user_data=i; res+=i; - tempde=tempde->next; + tmpde=tmpde->next; } return res; } -U0 SizeRep2(CDoc *doc,CDirEntry *tempde) +U0 SizeRep2(CDoc *doc,CDirEntry *tmpde) { - while (tempde) { - if (tempde->attr&RS_ATTR_DIR) { + while (tmpde) { + if (tmpde->attr&RS_ATTR_DIR) { DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$", - tempde->user_data,tempde->name); - SizeRep2(doc,tempde->sub); + tmpde->user_data,tmpde->name); + SizeRep2(doc,tmpde->sub); DocPrint(doc,"$$ID,-2$$"); } else { - DocPrint(doc,"%10,d ",tempde->user_data); + DocPrint(doc,"%10,d ",tmpde->user_data); DocPrint(doc,"$$LK,\"%s\",A=\"FI:%s\"$$\n", - tempde->name,tempde->full_name); + tmpde->name,tmpde->full_name); } - tempde=tempde->next; + tmpde=tmpde->next; } } public I64 SizeRep(U8 *files_find_mask="/*",U8 *fu_flags=NULL) {//Report file sizes. "+x" for expanded size of compressed files. I64 fuf_flags=0,res=0; CDoc *doc=DocNew; - CDirEntry *tempde1=NULL; + CDirEntry *tmpde1=NULL; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) { + if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) { fuf_flags&=FUF_EXPAND; - res=SizeRep1(tempde1,&fuf_flags); + res=SizeRep1(tmpde1,&fuf_flags); DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",res,files_find_mask); - SizeRep2(doc,tempde1); + SizeRep2(doc,tmpde1); DocPrint(doc,"$$ID,-2$$"); - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } DocInsDoc(DocPut,doc); DocDel(doc); diff --git a/Adam/Opt/Utils/LinkChk.HC b/Adam/Opt/Utils/LinkChk.HC index 40b796e..55c2262 100644 --- a/Adam/Opt/Utils/LinkChk.HC +++ b/Adam/Opt/Utils/LinkChk.HC @@ -16,7 +16,7 @@ I64 LinkChkDoc(CDoc *doc,I64 *_fuf_flags) old_doc=DocPut; DocLock(old_doc); Fs->put_doc=doc; - found=DocLinkChk(st); + found=DocLinkChk(doc,st); Fs->put_doc=old_doc; DocUnlock(old_doc); if (!found) { @@ -47,14 +47,14 @@ I64 LinkChkFile(U8 *filename,I64 *_fuf_flags) public I64 LinkChk(U8 *files_find_mask="/*",U8 *fu_flags=NULL) {//Check documents for broken file links. I64 fuf_flags=0,res=0; - CDirEntry *tempde,*tempde1; - ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F+O"); + CDirEntry *tmpde,*tmpde1; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+$$+f+F+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) { - res+=LinkChkFile(tempde->full_name,&fuf_flags); - tempde=tempde->next; + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) { + res+=LinkChkFile(tmpde->full_name,&fuf_flags); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return res; } diff --git a/Adam/Opt/Utils/MemRep.HC b/Adam/Opt/Utils/MemRep.HC index b5137bc..0a77e66 100644 --- a/Adam/Opt/Utils/MemRep.HC +++ b/Adam/Opt/Utils/MemRep.HC @@ -14,46 +14,46 @@ I64 PenBrushesSize() return res; } -I64 ScreenZoomTablesSize() +I64 ScrnZoomTablesSize() { I64 res=0,i; - for (i=1;i<=GR_MAX_SCREEN_ZOOM;i++) - res+=MSize2(gr.screen_zoom_tables[i]); + for (i=1;i<=GR_MAX_SCRN_ZOOM;i++) + res+=MSize2(gr.scrn_zoom_tables[i]); return res; } I64 TaskStkSize(CTask *task) { - CTaskStk *temps=task->stk; + CTaskStk *tmps=task->stk; I64 res=0; - while (temps) { - res+=MSize2(temps); - temps=temps->next_stk; + while (tmps) { + res+=MSize2(tmps); + tmps=tmps->next_stk; } return res; } I64 TaskQueSize(CTask *task) { - CSrvCmd *tempc,*tempc1; + CSrvCmd *tmpc,*tmpc1; I64 res=0; PUSHFD CLI while (LBts(&task->srv_ctrl.flags,SVCRf_LOCKED)) PAUSE - tempc1=&task->srv_ctrl.next_waiting; - tempc=tempc1->next; - while (tempc!=tempc1) { - res+=MSize2(tempc)+MSize2(tempc->aux_str); - tempc=tempc->next; + tmpc1=&task->srv_ctrl.next_waiting; + tmpc=tmpc1->next; + while (tmpc!=tmpc1) { + res+=MSize2(tmpc)+MSize2(tmpc->aux_str); + tmpc=tmpc->next; } - tempc1=&task->srv_ctrl.next_done; - tempc=tempc1->next; - while (tempc!=tempc1) { - res+=MSize2(tempc)+MSize2(tempc->aux_str); - tempc=tempc->next; + tmpc1=&task->srv_ctrl.next_done; + tmpc=tmpc1->next; + while (tmpc!=tmpc1) { + res+=MSize2(tmpc)+MSize2(tmpc->aux_str); + tmpc=tmpc->next; } LBtr(&task->srv_ctrl.flags,SVCRf_LOCKED); @@ -136,7 +136,7 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE) if (task==sys_winmgr_task) { "gr.pen_brushes\t:%010X\n",PenBrushesSize; - "gr_screen_zoom_tbles:%010X\n",ScreenZoomTablesSize; + "gr_scrn_zoom_tbles:%010X\n",ScrnZoomTablesSize; } else if (task==adam_task) { j=0;k=0;m=0;n=0; for (i=0;ifull_name; + CDirEntry *tmpde; + while (tmpde1 && !(*_df_flags & DF_ABORT_ALL_FILES)) { + tmpde=MGFind(tmpde1,tmpde2); + if (!tmpde) + "$$BROWN$$Does Not Exist:%s$$FG$$\n",tmpde1->full_name; else { - if (tempde1->attr & RS_ATTR_DIR) - Merge2(tempde1->sub,tempde->sub,_fuf_flags,_df_flags); + if (tmpde1->attr & RS_ATTR_DIR) + Merge2(tmpde1->sub,tmpde->sub,_fuf_flags,_df_flags); else { - if (AbsI64(tempde1->datetime-tempde->datetime)>CDATE_FREQ*2) {//slop - "%s",tempde1->full_name; + if (AbsI64(tmpde1->datetime-tmpde->datetime)>CDATE_FREQ*2) {//slop + "%s",tmpde1->full_name; '\n'; if (Bt(_fuf_flags,FUf_DIFF)) { - if (FilesFindMatch(tempde1->full_name,FILEMASK_TXT)) - Diff(tempde->full_name,tempde1->full_name,_df_flags); + if (FilesFindMatch(tmpde1->full_name,FILEMASK_TXT)) + Diff(tmpde->full_name,tmpde1->full_name,_df_flags); } } } } - tempde1=tempde1->next; + tmpde1=tmpde1->next; } } public U0 Merge(U8 *dst_files_find_mask="/*",U8 *src_files_find_mask="/*", @@ -44,18 +44,18 @@ merge changes from source files into destination files. */ I64 df_flags=0,fuf_flags=0; - CDirEntry *tempde1=NULL,*tempde2=NULL; + CDirEntry *tmpde1=NULL,*tmpde2=NULL; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (fuf_flags&~(FUG_FILES_FIND|FUF_DIFF)) throw('FUF'); PrintWarn("This is based strictly on file dates.\n"); - tempde1=FilesFind(src_files_find_mask,fuf_flags&FUG_FILES_FIND); - tempde2=FilesFind(dst_files_find_mask,fuf_flags&FUG_FILES_FIND); + tmpde1=FilesFind(src_files_find_mask,fuf_flags&FUG_FILES_FIND); + tmpde2=FilesFind(dst_files_find_mask,fuf_flags&FUG_FILES_FIND); fuf_flags&=FUF_DIFF; - Merge2(tempde1,tempde2,&fuf_flags,&df_flags); - DirTreeDel(tempde1); - DirTreeDel(tempde2); + Merge2(tmpde1,tmpde2,&fuf_flags,&df_flags); + DirTreeDel(tmpde1); + DirTreeDel(tmpde2); } #help_index "Utils;Cmd Line (Typically)" @@ -63,15 +63,15 @@ destination files. public U0 NewFiles(U8 *files_find_mask="/*",CDate cdt=0,U8 *fu_flags=NULL) {//Report files newer than a certain date. I64 fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; if (!cdt) cdt=sys_compile_time; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+F"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - if (tempde->datetime>cdt) - "%s\n",tempde->full_name; - tempde=tempde->next; + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + if (tmpde->datetime>cdt) + "%s\n",tmpde->full_name; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } diff --git a/Adam/Opt/Utils/Profiler.HC b/Adam/Opt/Utils/Profiler.HC index 2259c92..6617a33 100644 --- a/Adam/Opt/Utils/Profiler.HC +++ b/Adam/Opt/Utils/Profiler.HC @@ -27,7 +27,7 @@ U0 ProfTimerInt(CTask *task) public U0 Prof(I64 depth=0,I64 cpu_num=0) {/*Start collecting profiler statistics. Profilers report where time is spent -by sampling RIP during the $TX,"1000 Hz",D="DD_JIFFY_HZ"$ +by sampling RIP during the $TX,"1000Hz",D="DD_JIFFY_HZ"$ timer interrupt. Do a $LK,"ProfRep",A="MN:ProfRep"$(), (profiler report) diff --git a/Adam/Opt/Utils/StrUtils.HC b/Adam/Opt/Utils/StrUtils.HC index 3e4c457..aae2100 100644 --- a/Adam/Opt/Utils/StrUtils.HC +++ b/Adam/Opt/Utils/StrUtils.HC @@ -105,15 +105,15 @@ public I64 Words(U8 *files_find_mask="*",U32 *chars_bmp=chars_bmp_alpha, {//Break file into list of not-unique words. I64 fuf_flags=0,res=0; CDoc *doc_out=DocNew; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - res+=DocWordsFile(doc_out,tempde->full_name,chars_bmp); - tempde=tempde->next; + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + res+=DocWordsFile(doc_out,tmpde->full_name,chars_bmp); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); DocInsDoc(NULL,doc_out); DocDel(doc_out); return res; @@ -140,16 +140,16 @@ I64 LongLinesFile(U8 *filename,I64 cols) public I64 LongLines(U8 *files_find_mask="*",I64 cols=80,U8 *fu_flags=NULL) {//Report files with lines of too many cols. I64 res=0,fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+S"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - if (LongLinesFile(tempde->full_name,cols)) + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + if (LongLinesFile(tmpde->full_name,cols)) res++; - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); return res; } @@ -187,15 +187,15 @@ public U0 SU(U8 *files_find_mask,I64 suf_flags,U8 *fu_flags=NULL, //or removing trailing spaces on lines. //See $LK,"SUF Flags",A="MN:SUF_SINGLE_SPACE"$. I64 fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F+T"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - SUFile(tempde->full_name,suf_flags,indent_scale_factor); - tempde=tempde->next; + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + SUFile(tmpde->full_name,suf_flags,indent_scale_factor); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } public U0 S2T(U8 *files_find_mask,U8 *fu_flags=NULL) diff --git a/Adam/Opt/Utils/ToDolDoc.HC b/Adam/Opt/Utils/ToDolDoc.HC index b82038f..3ee32e7 100644 --- a/Adam/Opt/Utils/ToDolDoc.HC +++ b/Adam/Opt/Utils/ToDolDoc.HC @@ -4,16 +4,16 @@ public U0 ToDolDoc(U8 *files_find_mask,U8 *fu_flags=NULL) {//Convert text file to $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ by making double $$'s. CDoc *doc; I64 fuf_flags=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - tempde=tempde1=FilesFind(files_find_mask,fuf_flags); - while (tempde) { - "%s\n",tempde->full_name; - doc=DocRead(tempde->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); + while (tmpde) { + "%s\n",tmpde->full_name; + doc=DocRead(tmpde->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS); DocWrite(doc); DocDel(doc); - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } diff --git a/Adam/Snd/SndMusic.HC b/Adam/Snd/SndMusic.HC index bb6a9f6..56a2fc7 100644 --- a/Adam/Snd/SndMusic.HC +++ b/Adam/Snd/SndMusic.HC @@ -197,7 +197,7 @@ U0 MusicSettingsRst() music.note_len=1.0; music.meter_top=4; music.meter_bottom=4; - + SndRst; PUSHFD CLI if (mp_cnt>1) diff --git a/Adam/TaskRep.HC b/Adam/TaskRep.HC index 2ba503c..87db4a1 100644 --- a/Adam/TaskRep.HC +++ b/Adam/TaskRep.HC @@ -2,14 +2,11 @@ U0 TaskRepTask(CTask *task,I64 indent) { CTask *task1; - U8 *st,*desc=MStrUtil(task->task_title,SUF_SAFE_DOLLAR); - st=MStrPrint("$$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$$",task,task,task); - "%h*c%s $$TX,\"%$$Q...\",SCX=16$$\n",indent,CH_SPACE, - st,desc; + "%h*c$$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$$ $$BLACK$$#%d$$FG$$ " + "$$TX,\"%$$Q...\",SCX=16$$\n",indent,CH_SPACE,task,task,task->task_num, + task->task_title; "%h*c%08X %04X:%04X:%08X\n",indent+2,CH_SPACE,TaskMemAlloced(task), task->task_flags,task->display_flags,task->win_inhibit; - Free(st); - Free(desc); task1=task->next_child_task; while (task1!=(&task->next_child_task)(U8 *) -offset(CTask.next_sibling_task)) { diff --git a/Adam/TaskSettings.HC b/Adam/TaskSettings.HC index 625ab61..80b78ff 100644 --- a/Adam/TaskSettings.HC +++ b/Adam/TaskSettings.HC @@ -5,116 +5,116 @@ public CTaskSettings *SettingsPush(CTask *task=NULL,I64 flags=0) //It saves many settings so they can be restored //at the end of the application with $LK,"SettingsPop",A="MN:SettingsPop"$(). - CTaskSettings *tempse; + CTaskSettings *tmpse; CDoc *doc; if (!task) task=Fs; if (!TaskValidate(task)) return NULL; - tempse=CAlloc(sizeof(CTaskSettings),task); - tempse->cur_dir=CurDir(task,task); - tempse->draw_it=task->draw_it; - GrPaletteGet(tempse->palette); - tempse->task_end_cb=task->task_end_cb; + tmpse=CAlloc(sizeof(CTaskSettings),task); + tmpse->cur_dir=CurDir(task,task); + tmpse->draw_it=task->draw_it; + GrPaletteGet(tmpse->palette); + tmpse->task_end_cb=task->task_end_cb; if (!(flags&TSF_SAME_SONG)) { - if (tempse->song_task=task->song_task) { + if (tmpse->song_task=task->song_task) { Suspend(task->song_task); Snd(0); } task->song_task=NULL; } - if (tempse->animate_task=task->animate_task) + if (tmpse->animate_task=task->animate_task) Suspend(task->animate_task); task->animate_task=NULL; if (doc=DocPut(task)) { - tempse->hide_cursor=!Bt(&doc->flags,DOCf_HIDE_CURSOR); - tempse->highlight_cursor=!Bt(&doc->flags,DOCf_DONT_HIGHLIGHT_CURSOR); - tempse->scroll=!Bt(&doc->flags,DOCf_NO_SCROLL_BARS); + tmpse->hide_cursor=!Bt(&doc->flags,DOCf_HIDE_CURSOR); + tmpse->highlight_cursor=!Bt(&doc->flags,DOCf_DONT_HIGHLIGHT_CURSOR); + tmpse->scroll=!Bt(&doc->flags,DOCf_NO_SCROLL_BARS); } - tempse->left=task->win_left; - tempse->right=task->win_right; - tempse->top=task->win_top; - tempse->bottom=task->win_bottom; + tmpse->left=task->win_left; + tmpse->right=task->win_right; + tmpse->top=task->win_top; + tmpse->bottom=task->win_bottom; - tempse->scroll_x=task->scroll_x; - tempse->scroll_y=task->scroll_y; - tempse->scroll_z=task->scroll_z; + tmpse->scroll_x=task->scroll_x; + tmpse->scroll_y=task->scroll_y; + tmpse->scroll_z=task->scroll_z; - tempse->win_inhibit=task->win_inhibit; - tempse->text_attr=task->text_attr; - StrCpy(tempse->task_title,task->task_title); - tempse->title_src =task->title_src; - tempse->border_attr=task->border_attr; - tempse->border_src =task->border_src; - tempse->border=!Bt(&task->display_flags,DISPLAYf_NO_BORDER); + tmpse->win_inhibit=task->win_inhibit; + tmpse->text_attr=task->text_attr; + StrCpy(tmpse->task_title,task->task_title); + tmpse->title_src =task->title_src; + tmpse->border_attr=task->border_attr; + tmpse->border_src =task->border_src; + tmpse->border=!Bt(&task->display_flags,DISPLAYf_NO_BORDER); if (TaskValidate(ac.task)) - tempse->autocomplete=TRUE; + tmpse->autocomplete=TRUE; else - tempse->autocomplete=FALSE; + tmpse->autocomplete=FALSE; - tempse->next=task->next_settings; - task->next_settings=tempse; - return tempse; + tmpse->next=task->next_settings; + task->next_settings=tmpse; + return tmpse; } -U0 SettingsPop2(CTask *task,CTaskSettings *tempse) +U0 SettingsPop2(CTask *task,CTaskSettings *tmpse) { CDoc *doc; if (doc=DocPut(task)) { - LBEqu(&doc->flags,DOCf_HIDE_CURSOR,!tempse->hide_cursor); - LBEqu(&doc->flags,DOCf_DONT_HIGHLIGHT_CURSOR,!tempse->highlight_cursor); - LBEqu(&doc->flags,DOCf_NO_SCROLL_BARS,!tempse->scroll); + LBEqu(&doc->flags,DOCf_HIDE_CURSOR,!tmpse->hide_cursor); + LBEqu(&doc->flags,DOCf_DONT_HIGHLIGHT_CURSOR,!tmpse->highlight_cursor); + LBEqu(&doc->flags,DOCf_NO_SCROLL_BARS,!tmpse->scroll); } - WinBorder(tempse->border,task); - WinHorz(tempse->left,tempse->right,task); - WinVert(tempse->top,tempse->bottom,task); - task->scroll_x=tempse->scroll_x; - task->scroll_y=tempse->scroll_y; - task->scroll_z=tempse->scroll_z; - task->win_inhibit=tempse->win_inhibit; - task->text_attr=tempse->text_attr; - task->border_attr=tempse->border_attr; - task->border_src =tempse->border_src; - task->title_src =tempse->title_src; - StrCpy(task->task_title,tempse->task_title); - AutoComplete(tempse->autocomplete); - GrPaletteSet(tempse->palette); + WinBorder(tmpse->border,task); + WinHorz(tmpse->left,tmpse->right,task); + WinVert(tmpse->top,tmpse->bottom,task); + task->scroll_x=tmpse->scroll_x; + task->scroll_y=tmpse->scroll_y; + task->scroll_z=tmpse->scroll_z; + task->win_inhibit=tmpse->win_inhibit; + task->text_attr=tmpse->text_attr; + task->border_attr=tmpse->border_attr; + task->border_src =tmpse->border_src; + task->title_src =tmpse->title_src; + StrCpy(task->task_title,tmpse->task_title); + AutoComplete(tmpse->autocomplete); + GrPaletteSet(tmpse->palette); Snd(0); } public U0 SettingsPop(CTask *task=NULL,I64 flags=0) {//Typically, called at end of an application. - CTaskSettings *tempse; + CTaskSettings *tmpse; if (!task) task=Fs; if (!TaskValidate(task)) return; - if (tempse=task->next_settings) { - task->next_settings=tempse->next; - Cd(tempse->cur_dir); - Free(tempse->cur_dir); - task->draw_it=tempse->draw_it; - task->task_end_cb=tempse->task_end_cb; + if (tmpse=task->next_settings) { + task->next_settings=tmpse->next; + Cd(tmpse->cur_dir); + Free(tmpse->cur_dir); + task->draw_it=tmpse->draw_it; + task->task_end_cb=tmpse->task_end_cb; if (task->animate_task) Kill(task->animate_task); - if (task->animate_task=tempse->animate_task) + if (task->animate_task=tmpse->animate_task) Suspend(task->animate_task,FALSE); if (!(flags&TSF_SAME_SONG)) { if (task->song_task) Kill(task->song_task); - if (task->song_task=tempse->song_task) + if (task->song_task=tmpse->song_task) Suspend(task->song_task,FALSE); } - SettingsPop2(task,tempse); //Do it to get ress fast - WinMgrSync(,TRUE); - SettingsPop2(task,tempse); //Redo in case was lost by old update + SettingsPop2(task,tmpse); //Do it to get ress fast + Refresh(,TRUE); + SettingsPop2(task,tmpse); //Redo in case was lost by old update - Free(tempse); + Free(tmpse); } } diff --git a/Adam/Training.HC b/Adam/Training.HC index 304a0c1..a2927ce 100644 --- a/Adam/Training.HC +++ b/Adam/Training.HC @@ -109,7 +109,7 @@ U0 KeyMapFamily2(U8 **entries,CTask *task,I64 scf) PutKey(a1,a2); else PostMsg(task,MSG_KEY_DOWN,a1,a2); - WinMgrSync(0,TRUE); + Refresh(0,TRUE); Sleep(1); //Open loop because might be no response. TODO: Drops msgs. } if (*keydev.desc && StrNCmp(keydev.desc,"Char /",7)) diff --git a/Adam/WinA.HC b/Adam/Win.HC similarity index 98% rename from Adam/WinA.HC rename to Adam/Win.HC index 796ab61..122c1fd 100644 --- a/Adam/WinA.HC +++ b/Adam/Win.HC @@ -190,7 +190,7 @@ U0 WinFinalUpdate(CDC *dc) DrawInputPtr(dc); } -gr.fp_final_screen_update=&WinFinalUpdate; +gr.fp_final_scrn_update=&WinFinalUpdate; U0 WinIPUpdate() { @@ -215,15 +215,15 @@ U0 WinIPUpdate() } } else ip.speed*=0.95; - if (gr.screen_zoom!=1) { + if (gr.scrn_zoom!=1) { if (gr.continuous_scroll) GrScaleZoom(1.0); else { - dd=(ip.pos.x-gr.sx)*gr.screen_zoom; + dd=(ip.pos.x-gr.sx)*gr.scrn_zoom; if (!(8<=ddtask_flags,TASKf_IDLE); CDoc *old_doc=DocPut; @@ -266,7 +266,7 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE) if (!LBtr(&sys_semas[SYS_SEMA_JUST_PUMP_MSGS],0)) { timeout_val=cnts.jiffies+JIFFY_FREQ/WINMGR_FPS; LBts(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0); - GrUpdateScreen; + GrUpdateScrn; LBtr(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0); if (sys_focus_task && !Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) { @@ -331,7 +331,7 @@ Bool WinKeyNavMenu() I64 i,old_key_cnt; CD3I64 old_pos,new_pos; CMenu *m; - CMenuEntry *tempme; + CMenuEntry *tmpme; CTask *focus=MenuTask; if (Bt(kbd.down_bitmap,SC_GUI) && focus && (m=focus->cur_menu)) { winmgr.show_menu=TRUE; @@ -345,14 +345,14 @@ Bool WinKeyNavMenu() WinMgrSleep(TRUE); if (new_pos.x) { i=0; - tempme=m->sub; - while (tempme) { - if (i+MenuEntryWidth(tempme)*FONT_WIDTH==new_pos.x) { + tmpme=m->sub; + while (tmpme) { + if (i+MenuEntryWidth(tmpme)*FONT_WIDTH==new_pos.x) { new_pos.x=i; break; } - i+=MenuEntryWidth(tempme)*FONT_WIDTH; - tempme=tempme->next; + i+=MenuEntryWidth(tmpme)*FONT_WIDTH; + tmpme=tmpme->next; } } new_pos.y=0; @@ -360,15 +360,15 @@ Bool WinKeyNavMenu() while (Bt(kbd.down_bitmap,SC_CURSOR_RIGHT) && kbd.cnt==old_key_cnt) WinMgrSleep(TRUE); i=0; - tempme=m->sub; - while (tempme) { + tmpme=m->sub; + while (tmpme) { if (i==new_pos.x) { - if (tempme->next) - new_pos.x=i+MenuEntryWidth(tempme)*FONT_WIDTH; + if (tmpme->next) + new_pos.x=i+MenuEntryWidth(tmpme)*FONT_WIDTH; break; } - i+=MenuEntryWidth(tempme)*FONT_WIDTH; - tempme=tempme->next; + i+=MenuEntryWidth(tmpme)*FONT_WIDTH; + tmpme=tmpme->next; } new_pos.y=0; } else if (Bt(kbd.down_bitmap,SC_CURSOR_UP)) { diff --git a/Apps/AfterEgypt/AfterEgypt.HC b/Apps/AfterEgypt/AfterEgypt.HC index 3d83fa6..1ea640a 100644 --- a/Apps/AfterEgypt/AfterEgypt.HC +++ b/Apps/AfterEgypt/AfterEgypt.HC @@ -132,7 +132,7 @@ Bool TakeTurn() } res=TRUE; } - WinMgrSync; + Refresh; Fs->song_task=NULL; return res; } @@ -151,7 +151,7 @@ U0 TMsg(CDC *dc,U8 *msg) dc->color=YELLOW; GrPrint(dc,(GR_WIDTH-StrLen(msg)*FONT_WIDTH)/2, GR_HEIGHT-5*FONT_HEIGHT/2,"%s",msg); - WinMgrSync; + Refresh; if (ScanChar) throw; } diff --git a/Apps/AfterEgypt/Battle.HC b/Apps/AfterEgypt/Battle.HC index 56ebb87..2267a4a 100644 Binary files a/Apps/AfterEgypt/Battle.HC and b/Apps/AfterEgypt/Battle.HC differ diff --git a/Apps/AfterEgypt/Comics.HC b/Apps/AfterEgypt/Comics.HC index aed4b02..9c53398 100644 --- a/Apps/AfterEgypt/Comics.HC +++ b/Apps/AfterEgypt/Comics.HC @@ -2,25 +2,25 @@ U0 ViewComics() { I64 i=0; U8 *st; - CDirEntry *tempde=FilesFind("Comics/*.DD*"),*tempde1=tempde; + CDirEntry *tmpde=FilesFind("Comics/*.DD*"),*tmpde1=tmpde; CDoc *doc=DocNew; DocPrint(doc,"$$LTBLUE$$"); - while (tempde) { - st=StrNew(tempde->name); + while (tmpde) { + st=StrNew(tmpde->name); FileExtRem(st); - tempde->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tempde); + tmpde->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tmpde); Free(st); - tempde=tempde->next; + tmpde=tmpde->next; if ((i++&3)==3) DocPrint(doc,"\n"); } while (TRUE) { - if ((tempde=PopUpMenu(doc))>0) - Ed(tempde->full_name); + if ((tmpde=PopUpMenu(doc))>0) + Ed(tmpde->full_name); else break; } DocDel(doc); - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } diff --git a/Apps/AfterEgypt/HorebBMP.HC b/Apps/AfterEgypt/HorebBMP.HC index de37028..43586cf 100644 --- a/Apps/AfterEgypt/HorebBMP.HC +++ b/Apps/AfterEgypt/HorebBMP.HC @@ -7,47 +7,47 @@ U0 MPDrawHoreb(CDC *dc2) CDC *dc=DCAlias(dc2,task); I64 i,j,dx,dy,dz,w=task->pix_width,h=task->pix_height,r[16],cx=w>>1; F64 s,m,a,x1,y1,x2,y2; - Obj *tempo; + Obj *tmpo; Mat4x4IdentEqu(r); Mat4x4RotY(r,-é); Mat4x4RotX(r,77*ã/180); for (i=Gs->num;ix1=tempo->x+vx; tempo->y1=tempo->y; tempo->z1=tempo->z+vz; - Mat4x4MulXYZ(r,&tempo->x1,&tempo->y1,&tempo->z1); - if (tempo->type==OT_SHEEP || - tempo->type==OT_GOAT1 || tempo->type==OT_GOAT2) { - dx=100*tempo->dx; dy=100*tempo->dy; dz=100*tempo->dz; + tmpo=&objs[i]; + tmpo->x1=tmpo->x+vx; tmpo->y1=tmpo->y; tmpo->z1=tmpo->z+vz; + Mat4x4MulXYZ(r,&tmpo->x1,&tmpo->y1,&tmpo->z1); + if (tmpo->type==OT_SHEEP || + tmpo->type==OT_GOAT1 || tmpo->type==OT_GOAT2) { + dx=100*tmpo->dx; dy=100*tmpo->dy; dz=100*tmpo->dz; Mat4x4MulXYZ(r,&dx,&dy,&dz); if (dx<0) - tempo->sym=TRUE; + tmpo->sym=TRUE; else - tempo->sym=FALSE; + tmpo->sym=FALSE; } - if (tempo->z1>=0) { - s=100.0/(AbsI64(tempo->z1)+50); - if (tempo->type) { + if (tmpo->z1>=0) { + s=100.0/(AbsI64(tmpo->z1)+50); + if (tmpo->type) { Mat4x4IdentEqu(dc->r); Mat4x4Scale(dc->r,s*2); DCMat4x4Set(dc,dc->r); dc->flags|=DCF_TRANSFORMATION; - if (tempo->sym) { + if (tmpo->sym) { dc->flags|=DCF_SYMMETRY|DCF_JUST_MIRROR; - DCSymmetrySet(dc,s*tempo->x1+cx,s*tempo->y1+h, - s*tempo->x1+cx,s*tempo->y1+h+10); + DCSymmetrySet(dc,s*tmpo->x1+cx,s*tmpo->y1+h, + s*tmpo->x1+cx,s*tmpo->y1+h+10); } - Sprite3B(dc,s*tempo->x1+cx,s*tempo->y1+h,tempo->z1,imgs[tempo->type]); + Sprite3B(dc,s*tmpo->x1+cx,s*tmpo->y1+h,tmpo->z1,imgs[tmpo->type]); } else { dc->flags&=~DCF_TRANSFORMATION; - dc->color=pebble_colors[tempo->num&3]; - GrPlot3(dc,s*tempo->x1+cx,s*tempo->y1+h,tempo->z1); + dc->color=pebble_colors[tmpo->num&3]; + GrPlot3(dc,s*tmpo->x1+cx,s*tmpo->y1+h,tmpo->z1); } dc->flags&=~(DCF_SYMMETRY|DCF_JUST_MIRROR); - if (tempo==&objs[O_BURNING_BUSH]) {//draw burning bush - dc->x=s*tempo->x1+cx; - dc->y=s*tempo->y1+h; - dc->z=tempo->z1; + if (tmpo==&objs[O_BURNING_BUSH]) {//draw burning bush + dc->x=s*tmpo->x1+cx; + dc->y=s*tmpo->y1+h; + dc->z=tmpo->z1; dc->pen_width=1; dc->color=winmgr.updates&15; for (j=0;j<45;j++) { @@ -57,7 +57,7 @@ U0 MPDrawHoreb(CDC *dc2) P2R(&x2,&y2,m,a); GrLine3(dc,20*x1,20*y1-25,0,20*x2,20*y2-25,0); } - if (SqrI64(s*tempo->x1)+SqrI64(s*tempo->y1)<300*300) + if (SqrI64(s*tmpo->x1)+SqrI64(s*tmpo->y1)<300*300) horeb_done=TRUE; } } diff --git a/Apps/AfterEgypt/HorebBSP.HC b/Apps/AfterEgypt/HorebBSP.HC index 949b68e..4fcf136 100644 --- a/Apps/AfterEgypt/HorebBSP.HC +++ b/Apps/AfterEgypt/HorebBSP.HC @@ -12,7 +12,7 @@ U0 DrawHoreb(CTask *task,CDC *dc) h=task->pix_height,r[16], cx=w>>1,cy=h>>1; F64 s,m,a,x1,y1,x2,y2; - Obj *o_sort[O_NUM_OBJS+O_NUM_PEBBLES],*tempo; + Obj *o_sort[O_NUM_OBJS+O_NUM_PEBBLES],*tmpo; Mat4x4IdentEqu(r); Mat4x4RotY(r,-é); @@ -30,46 +30,46 @@ U0 DrawHoreb(CTask *task,CDC *dc) } for (i=0;ix1=tempo->x+vx; tempo->y1=tempo->y; tempo->z1=tempo->z+vz; - Mat4x4MulXYZ(r,&tempo->x1,&tempo->y1,&tempo->z1); - if (tempo->type==OT_SHEEP || - tempo->type==OT_GOAT1 || tempo->type==OT_GOAT2) { - dx=100*tempo->dx; dy=100*tempo->dy; dz=100*tempo->dz; + tmpo=&objs[i]; + o_sort[i]=tmpo; + tmpo->x1=tmpo->x+vx; tmpo->y1=tmpo->y; tmpo->z1=tmpo->z+vz; + Mat4x4MulXYZ(r,&tmpo->x1,&tmpo->y1,&tmpo->z1); + if (tmpo->type==OT_SHEEP || + tmpo->type==OT_GOAT1 || tmpo->type==OT_GOAT2) { + dx=100*tmpo->dx; dy=100*tmpo->dy; dz=100*tmpo->dz; Mat4x4MulXYZ(r,&dx,&dy,&dz); if (dx<0) - tempo->sym=TRUE; + tmpo->sym=TRUE; else - tempo->sym=FALSE; + tmpo->sym=FALSE; } } QSortI64(o_sort,O_NUM_OBJS+O_NUM_PEBBLES,&ObjCompare); for (i=0;iz1<0) break; - s=100.0/(AbsI64(tempo->z1)+50); - if (tempo->type) { + tmpo=o_sort[i]; + if (tmpo->z1<0) break; + s=100.0/(AbsI64(tmpo->z1)+50); + if (tmpo->type) { Mat4x4IdentEqu(dc->r); Mat4x4Scale(dc->r,s*2); DCMat4x4Set(dc,dc->r); dc->flags|=DCF_TRANSFORMATION; - if (tempo->sym) { + if (tmpo->sym) { dc->flags|=DCF_SYMMETRY|DCF_JUST_MIRROR; - DCSymmetrySet(dc,s*tempo->x1+cx,s*tempo->y1+h, - s*tempo->x1+cx,s*tempo->y1+h+10); + DCSymmetrySet(dc,s*tmpo->x1+cx,s*tmpo->y1+h, + s*tmpo->x1+cx,s*tmpo->y1+h+10); } - Sprite3B(dc,s*tempo->x1+cx,s*tempo->y1+h,0,imgs[tempo->type]); + Sprite3B(dc,s*tmpo->x1+cx,s*tmpo->y1+h,0,imgs[tmpo->type]); } else { dc->flags&=~DCF_TRANSFORMATION; - dc->color=pebble_colors[tempo->num&3]; - GrPlot3(dc,s*tempo->x1+cx,s*tempo->y1+h,tempo->z1); + dc->color=pebble_colors[tmpo->num&3]; + GrPlot3(dc,s*tmpo->x1+cx,s*tmpo->y1+h,tmpo->z1); } dc->flags&=~(DCF_SYMMETRY|DCF_JUST_MIRROR); if (o_sort[i]==&objs[O_BURNING_BUSH]) {//draw burning bush - dc->x=s*tempo->x1+cx; - dc->y=s*tempo->y1+h; + dc->x=s*tmpo->x1+cx; + dc->y=s*tmpo->y1+h; dc->z=0; dc->pen_width=1; @@ -82,7 +82,7 @@ U0 DrawHoreb(CTask *task,CDC *dc) GrLine3(dc,20*x1,20*y1-25,0,20*x2,20*y2-25,0); } - if (SqrI64(s*tempo->x1)+SqrI64(s*tempo->y1)<300*300) + if (SqrI64(s*tmpo->x1)+SqrI64(s*tmpo->y1)<300*300) horeb_done=TRUE; } } diff --git a/Apps/AfterEgypt/HorebC.HC b/Apps/AfterEgypt/HorebC.HC index 86041a5..f0592dd 100644 --- a/Apps/AfterEgypt/HorebC.HC +++ b/Apps/AfterEgypt/HorebC.HC @@ -2,18 +2,18 @@ U0 AnimateTask(I64) { I64 i; F64 t; - Obj *tempo; + Obj *tmpo; while (TRUE) { t=tS; for (i=0;itype==OT_SHEEP || - tempo->type==OT_GOAT1 || tempo->type==OT_GOAT2) { - tempo->x+=tempo->dx; - tempo->y+=tempo->dy; - tempo->z+=tempo->dz; - tempo->dx=5*Cos(0.5*t+tempo->é); - tempo->dz=5*Sin(0.5*t+tempo->é); + tmpo=&objs[i]; + if (tmpo->type==OT_SHEEP || + tmpo->type==OT_GOAT1 || tmpo->type==OT_GOAT2) { + tmpo->x+=tmpo->dx; + tmpo->y+=tmpo->dy; + tmpo->z+=tmpo->dz; + tmpo->dx=5*Cos(0.5*t+tmpo->é); + tmpo->dz=5*Sin(0.5*t+tmpo->é); } } Sleep(20); @@ -22,7 +22,7 @@ U0 AnimateTask(I64) U0 Init() { - Obj *tempo; + Obj *tmpo; I64 i,j,k,total=0; for (i=0;inum=i; - tempo->x=RandU32&0x1FFF-0x1000; - tempo->y=0; - tempo->z=RandU32&0x1FFF-0x1000; - tempo->é=2*ã*Rand; - tempo->sym=RandU16&1; + tmpo=&objs[i]; + tmpo->num=i; + tmpo->x=RandU32&0x1FFF-0x1000; + tmpo->y=0; + tmpo->z=RandU32&0x1FFF-0x1000; + tmpo->é=2*ã*Rand; + tmpo->sym=RandU16&1; if (itype=k; + tmpo->type=k; } else - tempo->type=OT_PEBBLE; + tmpo->type=OT_PEBBLE; } objs[O_BURNING_BUSH].type=OT_BUSH1; diff --git a/Apps/AfterEgypt/Quail.HC b/Apps/AfterEgypt/Quail.HC index b9cc1ae..244f3a1 100644 Binary files a/Apps/AfterEgypt/Quail.HC and b/Apps/AfterEgypt/Quail.HC differ diff --git a/Apps/AfterEgypt/WaterRock.HC b/Apps/AfterEgypt/WaterRock.HC index 9081caa..39f94c1 100644 Binary files a/Apps/AfterEgypt/WaterRock.HC and b/Apps/AfterEgypt/WaterRock.HC differ diff --git a/Apps/Budget/BgtAccts.HC b/Apps/Budget/BgtAccts.HC index 8c10561..1fc6a5b 100644 --- a/Apps/Budget/BgtAccts.HC +++ b/Apps/Budget/BgtAccts.HC @@ -1,24 +1,24 @@ U0 BgtAcctsUpdate() { - CBgtEntry *tempb; - CBgtTemplate *tempt; - tempb=b_head.next; - while (tempb!=&b_head) { - if (tempb->type!=BE_TEMPLATE_COPY) { - tempb->credit_idx=StrFileAdd(tempb->credit, + CBgtEntry *tmpb; + CBgtTemplate *tmpt; + tmpb=b_head.next; + while (tmpb!=&b_head) { + if (tmpb->type!=BE_TEMPLATE_COPY) { + tmpb->credit_idx=StrFileAdd(tmpb->credit, &accts_table_strs,accts_table); - tempb->debit_idx =StrFileAdd(tempb->debit, + tmpb->debit_idx =StrFileAdd(tmpb->debit, &accts_table_strs,accts_table); } - tempb=tempb->next; + tmpb=tmpb->next; } - tempt=t_head.next; - while (tempt!=&t_head) { - tempt->b.credit_idx=StrFileAdd(tempt->b.credit, + tmpt=t_head.next; + while (tmpt!=&t_head) { + tmpt->b.credit_idx=StrFileAdd(tmpt->b.credit, &accts_table_strs,accts_table); - tempt->b.debit_idx =StrFileAdd(tempt->b.debit, + tmpt->b.debit_idx =StrFileAdd(tmpt->b.debit, &accts_table_strs,accts_table); - tempt=tempt->next; + tmpt=tmpt->next; } } @@ -44,9 +44,9 @@ U0 BgtAcctsRead() I64 BgtAcctColor(U8 *st) { - CHashGeneric *temph; - if (temph=HashFind(st,accts_table,SFT_GENERIC)) - return temph->user_data1; + CHashGeneric *tmph; + if (tmph=HashFind(st,accts_table,SFT_GENERIC)) + return tmph->user_data1; else return BLACK; } @@ -57,19 +57,19 @@ U8 *BgtPopUpAcct(U8 *header=NULL,U8 *dft=NULL) U8 *res; CDoc *doc=DocNew; CDocEntry *doc_e,*doc_dft=NULL; - CHashGeneric *temph; + CHashGeneric *tmph; if (header) DocPrint(doc,"%s",header); for (i=0;i<=accts_table->mask;i++) { - temph=accts_table->body[i]; - while (temph) { + tmph=accts_table->body[i]; + while (tmph) { doc_e=DocPrint(doc,"$$FG,%d$$$$MU-UL,\"%s\",LE=0x%X$$\n", - temph->user_data1,temph->str,temph->str); - if (dft && !StrCmp(dft,temph->str)) + tmph->user_data1,tmph->str,tmph->str); + if (dft && !StrCmp(dft,tmph->str)) doc_dft=doc_e; - temph=temph->next; + tmph=tmph->next; } } diff --git a/Apps/Budget/BgtEntry.HC b/Apps/Budget/BgtEntry.HC index 37c9cfd..7cb338f 100644 --- a/Apps/Budget/BgtEntry.HC +++ b/Apps/Budget/BgtEntry.HC @@ -1,24 +1,24 @@ -U0 BgtEntryDel2(CBgtEntry *tempb) +U0 BgtEntryDel2(CBgtEntry *tmpb) { - if (tempb->type!=BE_TEMPLATE_COPY) { - Free(tempb->credit); - Free(tempb->debit); - Free(tempb->desc); + if (tmpb->type!=BE_TEMPLATE_COPY) { + Free(tmpb->credit); + Free(tmpb->debit); + Free(tmpb->desc); } } -U0 BgtEntryDel(CBgtEntry *tempb) +U0 BgtEntryDel(CBgtEntry *tmpb) { - BgtEntryDel2(tempb); - Free(tempb); + BgtEntryDel2(tmpb); + Free(tmpb); } -U0 BgtIns(CBgtEntry *tempb) +U0 BgtIns(CBgtEntry *tmpb) { - CBgtEntry *tempb1=b_head.next; - while (tempb1!=&b_head && tempb1->datedate) - tempb1=tempb1->next; - QueIns(tempb,tempb1->last); + CBgtEntry *tmpb1=b_head.next; + while (tmpb1!=&b_head && tmpb1->datedate) + tmpb1=tmpb1->next; + QueIns(tmpb,tmpb1->last); } class CBgtEntryForm @@ -33,7 +33,7 @@ class CBgtEntryForm CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL) { CBgtEntryForm b; - CBgtEntry *tempb; + CBgtEntry *tmpb; U8 *st; MemSet(&b,0,sizeof(CBgtEntryForm)); StrCpy(&b.date,"*"); @@ -55,16 +55,16 @@ CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL) if (st!=DOCM_CANCEL) StrCpy(b.debit,st); } else { - tempb=CAlloc(sizeof(CBgtEntry)); - tempb->date =Str2Date(b.date); - tempb->amount=b.amount; - tempb->credit=StrNew(b.credit); - tempb->debit =StrNew(b.debit); - tempb->desc =StrNew(b.desc); - tempb->type =BE_NORMAL; - StrFileAdd(tempb->credit,&accts_table_strs,accts_table); - StrFileAdd(tempb->debit,&accts_table_strs,accts_table); - return tempb; + tmpb=CAlloc(sizeof(CBgtEntry)); + tmpb->date =Str2Date(b.date); + tmpb->amount=b.amount; + tmpb->credit=StrNew(b.credit); + tmpb->debit =StrNew(b.debit); + tmpb->desc =StrNew(b.desc); + tmpb->type =BE_NORMAL; + StrFileAdd(tmpb->credit,&accts_table_strs,accts_table); + StrFileAdd(tmpb->debit,&accts_table_strs,accts_table); + return tmpb; } } else return NULL; diff --git a/Apps/Budget/BgtFile.HC b/Apps/Budget/BgtFile.HC index ef512a4..a58a6c5 100644 --- a/Apps/Budget/BgtFile.HC +++ b/Apps/Budget/BgtFile.HC @@ -1,7 +1,7 @@ U0 BgtDataRead() { - CBgtEntry *tempb; - CBgtTemplate *tempt; + CBgtEntry *tmpb; + CBgtTemplate *tmpt; I64 i,cnt,size; U8 *b,*ptr; I64 max_num; @@ -17,26 +17,26 @@ U0 BgtDataRead() if (ptr=b=FileRead(BGT_DATA_FILE,&size)) { cnt=*ptr(I64 *)++; for (i=0;istart,ptr,BE_SIZE); - tempb->credit=StrNew(s[tempb->credit_idx]); - tempb->debit =StrNew(s[tempb->debit_idx]); - tempb->desc =StrNew(s[tempb->desc_idx]); - QueIns(tempb,b_head.last); + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(&tmpb->start,ptr,BE_SIZE); + tmpb->credit=StrNew(s[tmpb->credit_idx]); + tmpb->debit =StrNew(s[tmpb->debit_idx]); + tmpb->desc =StrNew(s[tmpb->desc_idx]); + QueIns(tmpb,b_head.last); ptr+=BE_SIZE; } cnt=*ptr(I64 *)++; for (i=0;istart,ptr,BT_SIZE); + tmpt=CAlloc(sizeof(CBgtTemplate)); + MemCpy(&tmpt->start,ptr,BT_SIZE); ptr+=BT_SIZE; - MemCpy(&tempt->b.start,ptr,BE_SIZE); + MemCpy(&tmpt->b.start,ptr,BE_SIZE); ptr+=BE_SIZE; - tempt->b.credit=StrNew(s[tempt->b.credit_idx]); - tempt->b.debit =StrNew(s[tempt->b.debit_idx]); - tempt->b.desc =StrNew(s[tempt->b.desc_idx]); - QueIns(tempt,t_head.last); + tmpt->b.credit=StrNew(s[tmpt->b.credit_idx]); + tmpt->b.debit =StrNew(s[tmpt->b.debit_idx]); + tmpt->b.desc =StrNew(s[tmpt->b.desc_idx]); + QueIns(tmpt,t_head.last); } } @@ -50,39 +50,39 @@ U0 BgtDataWrite() { I64 i,num=0,size,cnt1,cnt2; CHashTable *table=HashTableNew(1024); - CBgtEntry *tempb; - CBgtTemplate *tempt; - CHashGeneric *temph; + CBgtEntry *tmpb; + CBgtTemplate *tmpt; + CHashGeneric *tmph; U8 *buf,*ptr; for (i=0;i<=accts_table->mask;i++) { - temph=accts_table->body[i]; - while (temph) { - StrFileAdd(temph->str,&num,table); //Cosmetics -- make accts appear first. - temph=temph->next; + tmph=accts_table->body[i]; + while (tmph) { + StrFileAdd(tmph->str,&num,table); //Cosmetics -- make accts appear first. + tmph=tmph->next; } } - tempb=b_head.next; + tmpb=b_head.next; cnt1=0; - while (tempb!=&b_head) { - if (tempb->type!=BE_TEMPLATE_COPY) { - tempb->credit_idx =StrFileAdd(tempb->credit,&num,table); - tempb->debit_idx =StrFileAdd(tempb->debit,&num,table); - tempb->desc_idx =StrFileAdd(tempb->desc,&num,table); + while (tmpb!=&b_head) { + if (tmpb->type!=BE_TEMPLATE_COPY) { + tmpb->credit_idx =StrFileAdd(tmpb->credit,&num,table); + tmpb->debit_idx =StrFileAdd(tmpb->debit,&num,table); + tmpb->desc_idx =StrFileAdd(tmpb->desc,&num,table); cnt1++; } - tempb=tempb->next; + tmpb=tmpb->next; } - tempt=t_head.next; + tmpt=t_head.next; cnt2=0; - while (tempt!=&t_head) { - tempt->b.credit_idx =StrFileAdd(tempt->b.credit,&num,table); - tempt->b.debit_idx =StrFileAdd(tempt->b.debit,&num,table); - tempt->b.desc_idx =StrFileAdd(tempt->b.desc,&num,table); + while (tmpt!=&t_head) { + tmpt->b.credit_idx =StrFileAdd(tmpt->b.credit,&num,table); + tmpt->b.debit_idx =StrFileAdd(tmpt->b.debit,&num,table); + tmpt->b.desc_idx =StrFileAdd(tmpt->b.desc,&num,table); cnt2++; - tempt=tempt->next; + tmpt=tmpt->next; } StrFileWrite(BGT_STRINGS_FILE,table); StrFileDel(table); @@ -92,24 +92,24 @@ U0 BgtDataWrite() MemCpy(ptr,&cnt1,sizeof(I64)); ptr+=sizeof(I64); - tempb=b_head.next; - while (tempb!=&b_head) { - if (tempb->type!=BE_TEMPLATE_COPY) { - MemCpy(ptr,&tempb->start,BE_SIZE); + tmpb=b_head.next; + while (tmpb!=&b_head) { + if (tmpb->type!=BE_TEMPLATE_COPY) { + MemCpy(ptr,&tmpb->start,BE_SIZE); ptr+=BE_SIZE; } - tempb=tempb->next; + tmpb=tmpb->next; } MemCpy(ptr,&cnt2,sizeof(I64)); ptr+=sizeof(I64); - tempt=t_head.next; - while (tempt!=&t_head) { - MemCpy(ptr,&tempt->start,BT_SIZE); + tmpt=t_head.next; + while (tmpt!=&t_head) { + MemCpy(ptr,&tmpt->start,BT_SIZE); ptr+=BT_SIZE; - MemCpy(ptr,&tempt->b.start,BE_SIZE); + MemCpy(ptr,&tmpt->b.start,BE_SIZE); ptr+=BE_SIZE; - tempt=tempt->next; + tmpt=tmpt->next; } FileWrite(BGT_DATA_FILE,buf,size); @@ -118,21 +118,21 @@ U0 BgtDataWrite() U0 BgtDel() { - CBgtEntry *tempb,*tempb1; - CBgtTemplate *tempt,*tempt1; - tempb=b_head.next; - while (tempb!=&b_head) { - tempb1=tempb->next; - BgtEntryDel2(tempb); - Free(tempb); - tempb=tempb1; + CBgtEntry *tmpb,*tmpb1; + CBgtTemplate *tmpt,*tmpt1; + tmpb=b_head.next; + while (tmpb!=&b_head) { + tmpb1=tmpb->next; + BgtEntryDel2(tmpb); + Free(tmpb); + tmpb=tmpb1; } - tempt=t_head.next; - while (tempt!=&t_head) { - tempt1=tempt->next; - BgtEntryDel2(&tempt->b); - Free(tempt); - tempt=tempt1; + tmpt=t_head.next; + while (tmpt!=&t_head) { + tmpt1=tmpt->next; + BgtEntryDel2(&tmpt->b); + Free(tmpt); + tmpt=tmpt1; } StrFileDel(accts_table); accts_table=NULL; diff --git a/Apps/Budget/BgtMain.HC b/Apps/Budget/BgtMain.HC index cd83b73..cb95328 100644 --- a/Apps/Budget/BgtMain.HC +++ b/Apps/Budget/BgtMain.HC @@ -3,30 +3,30 @@ extern U0 BgtRegen(); Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) {//ch=ASCII; sc=scan_code no_warn sc; - CBgtEntry *tempb,*tempb1; - CBgtTemplate *tempt,*tempt1; + CBgtEntry *tmpb,*tmpb1; + CBgtTemplate *tmpt,*tmpt1; CDocEntry *doc_ce; U8 *st; switch (ch) { case '\n': if ((doc_ce=doc->cur_entry) && doc_ce!=doc && doc_ce->type_u8==DOCT_MENU_VAL) { - tempb=doc_ce->user_data; - if (tempt=tempb->template) { - if (tempt1=BgtTemplatePmt(tempt)) { - QueRem(tempt); - BgtTemplatePurge(tempt); - BgtEntryDel2(&tempt->b); - Free(tempt); - QueIns(tempt1,t_head.last); - BgtTemplateExpand(tempt1); + tmpb=doc_ce->user_data; + if (tmpt=tmpb->template) { + if (tmpt1=BgtTemplatePmt(tmpt)) { + QueRem(tmpt); + BgtTemplatePurge(tmpt); + BgtEntryDel2(&tmpt->b); + Free(tmpt); + QueIns(tmpt1,t_head.last); + BgtTemplateExpand(tmpt1); BgtRegen; } } else { - if (tempb1=BgtEntryPmt(tempb)) { - QueRem(tempb); - BgtEntryDel(tempb); - BgtIns(tempb1); + if (tmpb1=BgtEntryPmt(tmpb)) { + QueRem(tmpb); + BgtEntryDel(tmpb); + BgtIns(tmpb1); BgtRegen; } } @@ -35,15 +35,15 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) case CH_CTRLY: if ((doc_ce=doc->cur_entry) && doc_ce!=doc && doc_ce->type_u8==DOCT_MENU_VAL) { - tempb=doc_ce->user_data; - if (tempt=tempb->template) { - QueRem(tempt); - BgtTemplatePurge(tempt); - BgtEntryDel2(&tempt->b); - Free(tempt); + tmpb=doc_ce->user_data; + if (tmpt=tmpb->template) { + QueRem(tmpt); + BgtTemplatePurge(tmpt); + BgtEntryDel2(&tmpt->b); + Free(tmpt); } else { - QueRem(tempb); - BgtEntryDel(tempb); + QueRem(tmpb); + BgtEntryDel(tmpb); } BgtRegen; } @@ -64,26 +64,26 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) } return TRUE; case 'n': - if (tempb1=BgtEntryPmt) { - BgtIns(tempb1); + if (tmpb1=BgtEntryPmt) { + BgtIns(tmpb1); BgtRegen; } return TRUE; case 't': - if (tempt1=BgtTemplatePmt) { - QueIns(tempt1,t_head.last); - BgtTemplateExpand(tempt1); + if (tmpt1=BgtTemplatePmt) { + QueIns(tmpt1,t_head.last); + BgtTemplateExpand(tmpt1); BgtRegen; } return TRUE; case 'c': if ((doc_ce=doc->cur_entry) && doc_ce!=doc && doc_ce->type_u8==DOCT_MENU_VAL) - tempb=doc_ce->user_data; + tmpb=doc_ce->user_data; else - tempb=NULL; - if (tempb1=BgtEntryPmt(tempb)) { - BgtIns(tempb1); + tmpb=NULL; + if (tmpb1=BgtEntryPmt(tmpb)) { + BgtIns(tmpb1); BgtRegen; } return TRUE; @@ -97,24 +97,24 @@ U0 BgtRegen() F64 balance=0; CDoc *doc,*pdoc,*ddoc; CDocEntry *doc_ce; - CBgtEntry *tempb=b_head.next,*tempb_ce; + CBgtEntry *tmpb=b_head.next,*tmpb_ce; doc=DocNew; doc->flags|=DOCF_FORM; - while (tempb!=&b_head) { - if (!StrCmp(view_acct,tempb->credit)) - balance-=tempb->amount; - if (!StrCmp(view_acct,tempb->debit)) - balance+=tempb->amount; - c=BgtAcctColor(tempb->credit); + while (tmpb!=&b_head) { + if (!StrCmp(view_acct,tmpb->credit)) + balance-=tmpb->amount; + if (!StrCmp(view_acct,tmpb->debit)) + balance+=tmpb->amount; + c=BgtAcctColor(tmpb->credit); if (c!=color) { color=c; DocPrint(doc,"$$FG,%d$$",color); } - tempb->doc_e=DocPrint(doc, + tmpb->doc_e=DocPrint(doc, "$$MU-UL,\"%D %8ts %8ts:%8.2f %8.2f:%$$Q\",U=0x%X$$\n", - tempb->date,tempb->credit,tempb->debit,balance, - tempb->amount,tempb->desc,tempb); - tempb=tempb->next; + tmpb->date,tmpb->credit,tmpb->debit,balance, + tmpb->amount,tmpb->desc,tmpb); + tmpb=tmpb->next; } DocRecalc(doc); @@ -130,19 +130,19 @@ U0 BgtRegen() doc_ce=pdoc->cur_entry; timeout_jiffy=cnts.jiffies+JIFFY_FREQ; //Max one second. while (doc_ce!=pdoc && cnts.jiffiestype_u8!=DOCT_MENU_VAL || !(tempb_ce=doc_ce->user_data)) { + while (doc_ce->type_u8!=DOCT_MENU_VAL || !(tmpb_ce=doc_ce->user_data)) { doc_ce=doc_ce->next; if (doc_ce==pdoc) goto br_cont; } - tempb=b_head.next; - while (tempb!=&b_head) { - if (tempb==tempb_ce) { - doc->cur_entry=tempb->doc_e; + tmpb=b_head.next; + while (tmpb!=&b_head) { + if (tmpb==tmpb_ce) { + doc->cur_entry=tmpb->doc_e; doc->cur_col=0; DocCenter(doc); goto br_cont; } - tempb=tempb->next; + tmpb=tmpb->next; } doc_ce=doc_ce->next; } diff --git a/Apps/Budget/BgtStrs.HC b/Apps/Budget/BgtStrs.HC index d035b20..6170eec 100644 --- a/Apps/Budget/BgtStrs.HC +++ b/Apps/Budget/BgtStrs.HC @@ -57,18 +57,18 @@ public U0 StrFileArrDel(U8 **a,I64 max_num) public I64 StrFileAdd(U8 *st,I64 *_num, CHashTable *table,I64 color=COLOR_INVALID) { - CHashGeneric *temph; + CHashGeneric *tmph; if (!st) return 0; - if (!(temph=HashFind(st,table,SFT_GENERIC))) { - temph=CAlloc(sizeof(CHashGeneric)); - temph->type=SFT_GENERIC; - temph->str=StrNew(st); - temph->user_data0=(*_num)++; - HashAdd(temph,table); + if (!(tmph=HashFind(st,table,SFT_GENERIC))) { + tmph=CAlloc(sizeof(CHashGeneric)); + tmph->type=SFT_GENERIC; + tmph->str=StrNew(st); + tmph->user_data0=(*_num)++; + HashAdd(tmph,table); } if (color!=COLOR_INVALID) - temph->user_data1=color; - return temph->user_data0; + tmph->user_data1=color; + return tmph->user_data0; } I64 StrEntriesCompare(CHashGeneric *h1,CHashGeneric *h2) @@ -80,7 +80,7 @@ public U0 StrFileWrite(U8 *name,CHashTable *table,Bool no_nums=FALSE) { I64 i,j,cnt,color=BLACK; CDoc *doc=DocNew(name); - CHashGeneric *temph,**a; + CHashGeneric *tmph,**a; if (table) { cnt=0; //Count Strings for (i=0;i<=table->mask;i++) @@ -88,23 +88,23 @@ public U0 StrFileWrite(U8 *name,CHashTable *table,Bool no_nums=FALSE) a=MAlloc(cnt*sizeof(CHashGeneric *)); j=0; //Load Strings for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - while (temph) { - a[j++]=temph; - temph=temph->next; + tmph=table->body[i]; + while (tmph) { + a[j++]=tmph; + tmph=tmph->next; } } QSortI64(a,cnt,&StrEntriesCompare); for (i=0;iuser_data1&15!=color) { - DocPrint(doc,"$$FG,%d$$",temph->user_data1&15); - color=temph->user_data1&15; + tmph=a[i]; + if (tmph->user_data1&15!=color) { + DocPrint(doc,"$$FG,%d$$",tmph->user_data1&15); + color=tmph->user_data1&15; } if (no_nums) - DocPrint(doc,"%s\n",temph->str); + DocPrint(doc,"%s\n",tmph->str); else - DocPrint(doc,"%d,%s\n",temph->user_data0,temph->str); + DocPrint(doc,"%d,%s\n",tmph->user_data0,tmph->str); } Free(a); } @@ -116,15 +116,15 @@ public U0 StrFileWrite(U8 *name,CHashTable *table,Bool no_nums=FALSE) public U0 StrFileDel(CHashTable *table) { I64 i; - CHashGeneric *temph,*temph1; + CHashGeneric *tmph,*tmph1; if (!table) return; for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - while (temph) { - temph1=temph->next; - Free(temph->str); - Free(temph); - temph=temph1; + tmph=table->body[i]; + while (tmph) { + tmph1=tmph->next; + Free(tmph->str); + Free(tmph); + tmph=tmph1; } } Free(table->body); diff --git a/Apps/Budget/BgtTemplate.HC b/Apps/Budget/BgtTemplate.HC index 4d5dd59..00ec2b4 100644 --- a/Apps/Budget/BgtTemplate.HC +++ b/Apps/Budget/BgtTemplate.HC @@ -1,37 +1,37 @@ -U0 BgtTemplatePurge(CBgtTemplate *tempt) +U0 BgtTemplatePurge(CBgtTemplate *tmpt) { - CBgtEntry *tempb,*tempb1; - tempb=b_head.next; - while (tempb!=&b_head) { - tempb1=tempb->next; - if (tempb->template==tempt) { - QueRem(tempb); - BgtEntryDel2(tempb); - Free(tempb); + CBgtEntry *tmpb,*tmpb1; + tmpb=b_head.next; + while (tmpb!=&b_head) { + tmpb1=tmpb->next; + if (tmpb->template==tmpt) { + QueRem(tmpb); + BgtEntryDel2(tmpb); + Free(tmpb); } - tempb=tempb1; + tmpb=tmpb1; } } -U0 BgtTemplateExpand(CBgtTemplate *tempt) +U0 BgtTemplateExpand(CBgtTemplate *tmpt) { CDate d,start,end; CDateStruct ds; - CBgtEntry *tempb; + CBgtEntry *tmpb; - start=MyStr2Date(tempt->start_date); - end =MyStr2Date(tempt->end_date); - tempt->b.template=tempt; - switch (tempt->type) { + start=MyStr2Date(tmpt->start_date); + end =MyStr2Date(tmpt->end_date); + tmpt->b.template=tmpt; + switch (tmpt->type) { case BT_INTERVAL: d=start; while (d<=end) { - tempb=CAlloc(sizeof(CBgtEntry)); - MemCpy(tempb,&tempt->b,sizeof(CBgtEntry)); - tempb->date=d; - tempb->type=BE_TEMPLATE_COPY; - BgtIns(tempb); - d+=tempt->period*0x100000000; + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); + tmpb->date=d; + tmpb->type=BE_TEMPLATE_COPY; + BgtIns(tmpb); + d+=tmpt->period*0x100000000; } break; case BT_MONTHLY: @@ -39,11 +39,11 @@ U0 BgtTemplateExpand(CBgtTemplate *tempt) while (TRUE) { d=Struct2Date(&ds); if (d<=end) { - tempb=CAlloc(sizeof(CBgtEntry)); - MemCpy(tempb,&tempt->b,sizeof(CBgtEntry)); - tempb->date=d; - tempb->type=BE_TEMPLATE_COPY; - BgtIns(tempb); + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); + tmpb->date=d; + tmpb->type=BE_TEMPLATE_COPY; + BgtIns(tmpb); } else break; if (++ds.mon>11) { @@ -57,11 +57,11 @@ U0 BgtTemplateExpand(CBgtTemplate *tempt) while (TRUE) { d=Struct2Date(&ds); if (d<=end) { - tempb=CAlloc(sizeof(CBgtEntry)); - MemCpy(tempb,&tempt->b,sizeof(CBgtEntry)); - tempb->date=d; - tempb->type=BE_TEMPLATE_COPY; - BgtIns(tempb); + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); + tmpb->date=d; + tmpb->type=BE_TEMPLATE_COPY; + BgtIns(tmpb); } else break; ds.mon+=2; @@ -76,11 +76,11 @@ U0 BgtTemplateExpand(CBgtTemplate *tempt) while (TRUE) { d=Struct2Date(&ds); if (d<=end) { - tempb=CAlloc(sizeof(CBgtEntry)); - MemCpy(tempb,&tempt->b,sizeof(CBgtEntry)); - tempb->date=d; - tempb->type=BE_TEMPLATE_COPY; - BgtIns(tempb); + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); + tmpb->date=d; + tmpb->type=BE_TEMPLATE_COPY; + BgtIns(tmpb); } else break; ds.mon+=6; @@ -95,11 +95,11 @@ U0 BgtTemplateExpand(CBgtTemplate *tempt) while (TRUE) { d=Struct2Date(&ds); if (d<=end) { - tempb=CAlloc(sizeof(CBgtEntry)); - MemCpy(tempb,&tempt->b,sizeof(CBgtEntry)); - tempb->date=d; - tempb->type=BE_TEMPLATE_COPY; - BgtIns(tempb); + tmpb=CAlloc(sizeof(CBgtEntry)); + MemCpy(tmpb,&tmpt->b,sizeof(CBgtEntry)); + tmpb->date=d; + tmpb->type=BE_TEMPLATE_COPY; + BgtIns(tmpb); } else break; ds.year++; @@ -110,17 +110,17 @@ U0 BgtTemplateExpand(CBgtTemplate *tempt) U0 CBgtTemplatesExpand() { - CBgtTemplate *tempt=t_head.next; - while (tempt!=&t_head) { - BgtTemplateExpand(tempt); - tempt=tempt->next; + CBgtTemplate *tmpt=t_head.next; + while (tmpt!=&t_head) { + BgtTemplateExpand(tmpt); + tmpt=tmpt->next; } } CBgtTemplate *BgtTemplatePmt(CBgtTemplate *dft_t=NULL) { - CBgtTemplate t,*tempt; - CBgtEntry *tempb,*dft_b; + CBgtTemplate t,*tmpt; + CBgtEntry *tmpb,*dft_b; MemSet(&t,0,sizeof(CBgtTemplate)); if (dft_t) { MemCpy(&t.start,&dft_t->start,BT_SIZE); @@ -134,12 +134,12 @@ CBgtTemplate *BgtTemplatePmt(CBgtTemplate *dft_t=NULL) while (TRUE) if (PopUpForm(&t) && ((t.type==BT_INTERVAL && t.period>0) || t.type>BT_INTERVAL)) { - if (tempb=BgtEntryPmt(dft_b)) { - tempt=CAlloc(sizeof(CBgtTemplate)); - MemCpy(&tempt->start,&t.start,BT_SIZE); - MemCpy(&tempt->b,tempb,sizeof(CBgtEntry)); - Free(tempb); - return tempt; + if (tmpb=BgtEntryPmt(dft_b)) { + tmpt=CAlloc(sizeof(CBgtTemplate)); + MemCpy(&tmpt->start,&t.start,BT_SIZE); + MemCpy(&tmpt->b,tmpb,sizeof(CBgtEntry)); + Free(tmpb); + return tmpt; } } else break; diff --git a/Apps/Budget/Budget.HC b/Apps/Budget/Budget.HC index fa88d1f..a7e8cf8 100644 --- a/Apps/Budget/Budget.HC +++ b/Apps/Budget/Budget.HC @@ -1,6 +1,6 @@ #define BGT_STRINGS_FILE "~/Budget/Strs.DD.Z" #define BGT_ACCTS_FILE "~/Budget/Accts.DD.Z" -#define BGT_DATA_FILE "~/Budget/Bgt.DAT.Z" +#define BGT_DATA_FILE "~/Budget/Bgt.DATA.Z" #define BE_NORMAL 0 #define BE_GAS 1 diff --git a/Apps/KeepAway/KeepAway.HC b/Apps/KeepAway/KeepAway.HC index 386f676..b54d3f9 100644 --- a/Apps/KeepAway/KeepAway.HC +++ b/Apps/KeepAway/KeepAway.HC @@ -267,7 +267,7 @@ just to be different. U0 DrawObj(CDC *dc,Obj *o,F64 tt) { - U8 *temps; + U8 *tmps; F64 r1=Max(9-0.1*o->z,1),r2=Max(r1/4,1); if (o==human) @@ -280,11 +280,11 @@ U0 DrawObj(CDC *dc,Obj *o,F64 tt) if (o==ball) Sprite3(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,$IB,"<1>",BI=1$); else { - temps=SpriteInterpolate((tt-o->last_t0)/(o->next_t0-o->last_t0), + tmps=SpriteInterpolate((tt-o->last_t0)/(o->next_t0-o->last_t0), imgs[o->last_img].img[o->team], imgs[o->next_img].img[o->team]); - SpriteY3B(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,temps,o->é); - Free(temps); + SpriteY3B(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,tmps,o->é); + Free(tmps); } } @@ -616,7 +616,7 @@ U0 AnimateTask(CTask *parent_task) } } } - WinMgrSync; + Refresh; } } diff --git a/Apps/Logic/Logic.HC b/Apps/Logic/Logic.HC index e0c663b..9b9aebe 100644 --- a/Apps/Logic/Logic.HC +++ b/Apps/Logic/Logic.HC @@ -580,7 +580,7 @@ U0 DigitalLogic() Fs->draw_it=&DrawIt; GetChar; DocClear; - WinMgrSync(2,TRUE); + Refresh(2,TRUE); DocBottom; } } catch diff --git a/Apps/Psalmody/JukeBox.HC b/Apps/Psalmody/JukeBox.HC index 19c8930..91719ad 100644 --- a/Apps/Psalmody/JukeBox.HC +++ b/Apps/Psalmody/JukeBox.HC @@ -18,20 +18,20 @@ CTask *SingleSong(U8 *msg,U8 *name) Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) {//ch=ASCII; sc=scan_code CDocEntry *doc_ce=doc->cur_entry,*doc_e; - CDirEntry *tempde; + CDirEntry *tmpde; CDoc *s; if (!(sc&(SCF_ALT|SCF_CTRL|SCF_SHIFT)) && doc_ce->type_u8==DOCT_MENU_VAL && doc_ce->left_exp>=0) { - tempde=doc_ce->left_exp; + tmpde=doc_ce->left_exp; if (sc.u8[0]==SC_DELETE ) { Beep; Silent; - Del(tempde->full_name); + Del(tmpde->full_name); Silent(OFF); } else if ('0'<=ch<='9') { if (StrLen(doc_ce->tag)>1) doc_ce->tag[0]=ch; - s=DocRead(tempde->full_name); + s=DocRead(tmpde->full_name); doc_e=s->head.next; while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT) doc_e=doc_e->next; @@ -42,7 +42,7 @@ Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) DocDel(s); return TRUE; } else if (ch==CH_SPACE||ch==CH_ESC) - tempde->user_data++; //JB_RUN_LEVEL++ + tmpde->user_data++; //JB_RUN_LEVEL++ // is followed by --> JB_RUN_LEVEL_TWO //Actual just exits --> JB_RUN_LEVEL_ONE } @@ -53,7 +53,7 @@ public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) {//_filename is for using this as a song-chooser program. I64 i=0,rating; U8 *st,*st2; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; CDoc *doc=DocNew,*s; CDocEntry *doc_e; CTask *task=NULL; @@ -61,7 +61,7 @@ public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) *_filename=NULL; dirname=StrNew(dirname); st=MStrPrint("%s/*.HC.Z",dirname); - tempde=tempde1=FilesFind(st); + tmpde=tmpde1=FilesFind(st); Free(st); Free(dirname); doc->user_put_key=&JBPutKey; @@ -70,13 +70,13 @@ public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) "$$BLACK$$Incomplete $$CYAN$$Special$$FG$$\n\n" "$$GREEN$$$$FG$$ to delete a song.\n" "Press a number to rate a song.\n"); - while (tempde) { + while (tmpde) { if (!(i++%5)) DocPrint(doc,"\n"); - if (FileOcc("Play(",tempde->full_name,"")) { - st=StrNew(tempde->name); + if (FileOcc("Play(",tmpde->full_name,"")) { + st=StrNew(tmpde->name); FileExtRem(st); - s=DocRead(tempde->full_name); + s=DocRead(tmpde->full_name); doc_e=s->head.next; while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT) doc_e=doc_e->next; @@ -94,7 +94,7 @@ public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) DocPrint(doc,"$$CYAN$$"); else if (StrMatch("no nothing",doc_e->tag)) { DocPrint(doc,"$$RED$$"); - if (FileOcc("\\0",tempde->full_name,"")) { + if (FileOcc("\\0",tmpde->full_name,"")) { s->cur_entry=doc_e->next; s->cur_col=0; DocEntryDel(s,doc_e); @@ -102,37 +102,37 @@ public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) DocWrite(s); } } - DocPrint(doc,"$$MU-UL,\"%c%-8ts\",LE=%d$$ ",rating,st,tempde); - tempde->user_data=JB_RUN_LEVEL_NULL; + DocPrint(doc,"$$MU-UL,\"%c%-8ts\",LE=%d$$ ",rating,st,tmpde); + tmpde->user_data=JB_RUN_LEVEL_NULL; } DocDel(s); Free(st); } - tempde=tempde->next; + tmpde=tmpde->next; } DocPrint(doc,"\n$$CYAN$$$$MU-UL,\"DONE\",LE=%d$$\n",DOCM_CANCEL); while (TRUE) { if (_filename) - tempde=PopUpMenu(doc,DOF_INTERCEPT_TASK_END); + tmpde=PopUpMenu(doc,DOF_INTERCEPT_TASK_END); else - tempde=PopUpMenu(doc); + tmpde=PopUpMenu(doc); if (task) Kill(task); - if (tempde<=0) break; - st2=StrNew(tempde->name); + if (tmpde<=0) break; + st2=StrNew(tmpde->name); if (_filename) { Free(*_filename); - *_filename=StrNew(tempde->full_name); + *_filename=StrNew(tmpde->full_name); } - if (tempde->user_data==JB_RUN_LEVEL_ONE) break; // - tempde->user_data=JB_RUN_LEVEL_NULL; //Rst from + if (tmpde->user_data==JB_RUN_LEVEL_ONE) break; // + tmpde->user_data=JB_RUN_LEVEL_NULL; //Rst from FileExtRem(st2); - st=MStrPrint("ExeFile(\"%s\");",tempde->full_name); + st=MStrPrint("ExeFile(\"%s\");",tmpde->full_name); MusicSettingsRst; task=SingleSong(st,st2); Free(st2); Free(st); } DocDel(doc); - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } diff --git a/Apps/Psalmody/JukePuppet.HC b/Apps/Psalmody/JukePuppet.HC index 0210e44..123ba93 100644 --- a/Apps/Psalmody/JukePuppet.HC +++ b/Apps/Psalmody/JukePuppet.HC @@ -2,13 +2,13 @@ U0 SongPuppet(CTask *task,I64 passes) { CDbgInfo *dbg_info; I64 i,start,end,rip,last_rip; - CHashFun *tempf=NULL; + CHashFun *tmpf=NULL; for (i=0;i<250 && TaskValidate(task);i++) { - if (tempf=HashFind("Song",task->hash_table,HTT_FUN)) + if (tmpf=HashFind("Song",task->hash_table,HTT_FUN)) break; Sleep(1); } - if (tempf && (dbg_info=tempf->dbg_info)) { + if (tmpf && (dbg_info=tmpf->dbg_info)) { start=dbg_info->body[0]; end =dbg_info->body[dbg_info->max_line+1-dbg_info->min_line]; last_rip=0; @@ -74,16 +74,16 @@ public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2, I64 start_song=0,I64 end_song=MAX_I64) {//Help make music video by puppeting JukeBox task. I64 i; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; CTask *juke_task=User("JukeBox(0x%X);\n",dirname); Cd(dirname); - tempde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES); - for (tempde=tempde1,i=0;tempde && inext; - for (i=start_song;tempde && iname); - tempde=tempde->next; + tmpde1=FilesFind("*",FUF_RECURSE|FUF_JUST_TXT|FUF_JUST_FILES); + for (tmpde=tmpde1,i=0;tmpde && inext; + for (i=start_song;tmpde && iname); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); Kill(juke_task); } diff --git a/Apps/Psalmody/Psalmody.HC b/Apps/Psalmody/Psalmody.HC index dbea3f4..99ffb2f 100644 --- a/Apps/Psalmody/Psalmody.HC +++ b/Apps/Psalmody/Psalmody.HC @@ -19,7 +19,7 @@ This uses four types of output 4) The Fs->next_ctrl for the tempo/stacatto sliders. -See $LK,"GrUpdateTaskWin",A="MN:GrUpdateTaskWin"$(), $LK,"GrUpdateTasks",A="MN:GrUpdateTasks"$() and $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$(). +See $LK,"GrUpdateTaskWin",A="MN:GrUpdateTaskWin"$(), $LK,"GrUpdateTasks",A="MN:GrUpdateTasks"$() and $LK,"GrUpdateScrn",A="MN:GrUpdateScrn"$(). $WW,1$$WW,0$*/ #define NOTE_REST MIN_I64 @@ -62,20 +62,13 @@ class PsmCtrl PsmNote head; PsmNote clipboard; CMenuEntry *incomplete_entry,*record_entry; - I64 screen_x, + I64 scrn_x, tool; PsmNote *cur_note; CDC *dc2; Bool playing; -} oc; +} psm; U8 *psm_note_lst="A\0A#\0B\0C\0C#\0D\0D#\0E\0F\0F#\0G\0G#\0"; U8 psm_note_map[12]={6,6,5,4,4,3,3,2,1,1,0,0}; U8 psm_note_inverse_map[7]={10,8,7,5,3,2,0}; - -#define PSMPM_NORMAL 0 -#define PSMPM_REVERB1 1 -#define PSMPM_NUM_PLAY_MODES 2 -I64 psm_play_mode=0; -F64 psm_play_f=0; - diff --git a/Apps/Psalmody/PsalmodyDraw.HC b/Apps/Psalmody/PsalmodyDraw.HC index 739f5b4..438b0f4 100644 --- a/Apps/Psalmody/PsalmodyDraw.HC +++ b/Apps/Psalmody/PsalmodyDraw.HC @@ -63,7 +63,7 @@ Bool psm_triplet_durations[PSM_NUM_DURATIONS]={TRUE,FALSE,TRUE, Bool PsmBlink() { - if (Blink || oc.playing) + if (Blink || psm.playing) return TRUE; else return FALSE; @@ -88,27 +88,27 @@ Bool PsmIsDotted(I64 duration) U0 PsmMarkSel(I64 x1,I64 x2,Bool sel) { - PsmNote *tempo=oc.head.next; - while (tempo!=&oc.head) { + PsmNote *tmpn=psm.head.next; + while (tmpn!=&psm.head) { if (sel) { - if (x1<=tempo->x<=x2) - tempo->flags|=PSMF_SEL; + if (x1<=tmpn->x<=x2) + tmpn->flags|=PSMF_SEL; } else - tempo->flags&=~PSMF_SEL; - tempo=tempo->next; + tmpn->flags&=~PSMF_SEL; + tmpn=tmpn->next; } } -U0 PsmSetWidth(PsmNote *tempo) +U0 PsmSetWidth(PsmNote *tmpn) { - if (tempo->type==PSMT_METER) - tempo->width=12; + if (tmpn->type==PSMT_METER) + tmpn->width=12; else { - tempo->width=PSM_NOTE_SPACING; - if (PsmIsDotted(tempo->duration)) - tempo->width+=PSM_NOTE_SPACING/2; - if (Bt(&tempo->flags,PSMf_SHARP) || Bt(&tempo->flags,PSMf_FLAT)) - tempo->width+=PSM_NOTE_SPACING; + tmpn->width=PSM_NOTE_SPACING; + if (PsmIsDotted(tmpn->duration)) + tmpn->width+=PSM_NOTE_SPACING/2; + if (Bt(&tmpn->flags,PSMf_SHARP) || Bt(&tmpn->flags,PSMf_FLAT)) + tmpn->width+=PSM_NOTE_SPACING; } } @@ -116,18 +116,16 @@ U0 PsmSetOctave(I64 octave) { I64 i; U8 buf[STR_LEN]; - CMenuEntry *tempse; + CMenuEntry *tmpse; for (i=0;i<=6;i++) { StrPrint(buf,"Snd/Octave%d",i); - if (tempse=MenuEntryFind(Fs->cur_menu,buf)) { + if (tmpse=MenuEntryFind(Fs->cur_menu,buf)) { if (i==octave) - tempse->checked=TRUE; + tmpse->checked=TRUE; else - tempse->checked=FALSE; + tmpse->checked=FALSE; } } - if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Reverb")) - tempse->checked=psm_play_mode==1; } U0 DrawNote(CDC *dc,I64 x,I64 y,I64 duration) @@ -150,21 +148,21 @@ U0 DrawTimeSignature(CDC *dc,I64 x,I64 y,I64 top,I64 bottom) U0 PsmRecalcNoteXY() { F64 measure_len=4,measure_left=measure_len; - PsmNote *tempo=oc.head.next; - I64 x=8-oc.screen_x,note,octave; + PsmNote *tmpn=psm.head.next; + I64 x=8-psm.scrn_x,note,octave; while (TRUE) { - tempo->x=x; - tempo->y=50; - if (tempo==&oc.head) + tmpn->x=x; + tmpn->y=50; + if (tmpn==&psm.head) break; else { - if (tempo->type!=PSMT_METER) { - octave=tempo->octave; + if (tmpn->type!=PSMT_METER) { + octave=tmpn->octave; if (octave!=OCTAVE_REST) { - note=tempo->note; - if (Bt(&tempo->flags,PSMf_SHARP)) + note=tmpn->note; + if (Bt(&tmpn->flags,PSMf_SHARP)) note--; - if (Bt(&tempo->flags,PSMf_FLAT)) + if (Bt(&tmpn->flags,PSMf_FLAT)) note++; if (note<0) { note=11; @@ -174,27 +172,27 @@ U0 PsmRecalcNoteXY() octave++; } note=music.note_map[*LstSub(note,psm_note_lst)-'A']; - tempo->y=(15+(psm_note_map[note]-7*(octave-2)))*4; + tmpn->y=(15+(psm_note_map[note]-7*(octave-2)))*4; } } - x+=tempo->width; - if (tempo->type==PSMT_METER) { - measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + x+=tmpn->width; + if (tmpn->type==PSMT_METER) { + measure_len=tmpn->meter_top*4.0/tmpn->meter_bottom; measure_left=0; } else - measure_left-=psm_durations[tempo->duration]; + measure_left-=psm_durations[tmpn->duration]; if (measure_left<0.001) { x+=PSM_NOTE_SPACING; measure_left=measure_len; } } - tempo=tempo->next; + tmpn=tmpn->next; } } U0 DrawIt(CTask *task,CDC *dc) { - PsmNote *tempo; + PsmNote *tmpn; I64 i,x,y, w=task->pix_width; F64 measure_len=4,measure_left=measure_len; @@ -206,63 +204,63 @@ U0 DrawIt(CTask *task,CDC *dc) GrLine(dc,0,i*8,w,i*8); PsmRecalcNoteXY; - if (oc.cur_note->x<64) { - oc.screen_x-=128; + if (psm.cur_note->x<64) { + psm.scrn_x-=128; PsmRecalcNoteXY; } - if (oc.cur_note->x>=GR_WIDTH-64) { - oc.screen_x+=128; + if (psm.cur_note->x>=GR_WIDTH-64) { + psm.scrn_x+=128; PsmRecalcNoteXY; } - tempo=oc.head.next; - while (tempo!=&oc.head) { - x=tempo->x; - y=tempo->y; + tmpn=psm.head.next; + while (tmpn!=&psm.head) { + x=tmpn->x; + y=tmpn->y; if (measure_left<0.001) { dc->color=BLACK; GrLine(dc,x-PSM_NOTE_SPACING,8,x-PSM_NOTE_SPACING,11*8); measure_left=measure_len; } - if (tempo->type==PSMT_METER) { - if (tempo==oc.cur_note && PsmBlink) + if (tmpn->type==PSMT_METER) { + if (tmpn==psm.cur_note && PsmBlink) dc->color=BROWN; else dc->color=BLACK; - DrawTimeSignature(dc,x,5*8,tempo->meter_top,tempo->meter_bottom); - measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + DrawTimeSignature(dc,x,5*8,tmpn->meter_top,tmpn->meter_bottom); + measure_len=tmpn->meter_top*4.0/tmpn->meter_bottom; measure_left=0; } else { - if (tempo==oc.cur_note && PsmBlink) { + if (tmpn==psm.cur_note && PsmBlink) { dc->color=BROWN; - GrPrint(dc,x+8,y,"%s",tempo->word); - } else if (tempo->flags&PSMF_SEL) + GrPrint(dc,x+8,y,"%s",tmpn->word); + } else if (tmpn->flags&PSMF_SEL) dc->color=RED; else { - if (tempo->note!=NOTE_REST) + if (tmpn->note!=NOTE_REST) dc->color=BLACK; else dc->color=LTGRAY; - if (PsmHasWords(tempo->word)) + if (PsmHasWords(tmpn->word)) dc->color=GREEN; } - DrawNote(dc,x,y,tempo->duration); - if (PsmIsDotted(tempo->duration)) + DrawNote(dc,x,y,tmpn->duration); + if (PsmIsDotted(tmpn->duration)) x+=PSM_NOTE_SPACING/2; - if (Bt(&tempo->flags,PSMf_SHARP)) + if (Bt(&tmpn->flags,PSMf_SHARP)) Sprite3(dc,x,y,0,$IB,"<13>",BI=13$); - else if (Bt(&tempo->flags,PSMf_FLAT)) + else if (Bt(&tmpn->flags,PSMf_FLAT)) Sprite3(dc,x,y,0,$IB,"<14>",BI=14$); - measure_left-=psm_durations[tempo->duration]; + measure_left-=psm_durations[tmpn->duration]; } - tempo=tempo->next; + tmpn=tmpn->next; } - if (oc.cur_note==&oc.head && PsmBlink) + if (psm.cur_note==&psm.head && PsmBlink) dc->color=BROWN; else dc->color=BLACK; - Sprite3(dc,oc.head.x,50,0,$IB,"<12>",BI=12$); + Sprite3(dc,psm.head.x,50,0,$IB,"<12>",BI=12$); } #define PSM_NOTE_BOX_X 220 @@ -298,12 +296,12 @@ U0 DrawPickNoteBox() for (i=0;icolor=RED; + psm.dc2->color=RED; else if (psm_triplet_durations[i]) - oc.dc2->color=LTRED; + psm.dc2->color=LTRED; else - oc.dc2->color=BLACK; - DrawNote(oc.dc2,x,PSM_NOTE_BOX_Y,i); + psm.dc2->color=BLACK; + DrawNote(psm.dc2,x,PSM_NOTE_BOX_Y,i); } } @@ -312,19 +310,19 @@ U0 DrawPickNoteBox() U0 DrawPickTools() { - if (oc.tool==PSMTT_BOX_TOOL) - oc.dc2->color=ROPF_DITHER+WHITE<<16+RED; + if (psm.tool==PSMTT_BOX_TOOL) + psm.dc2->color=ROPF_DITHER+WHITE<<16+RED; else - oc.dc2->color=ROPF_DITHER+WHITE<<16+BLACK; - GrBorder(oc.dc2,PSM_TOOLS_X,PSM_TOOLS_Y, + psm.dc2->color=ROPF_DITHER+WHITE<<16+BLACK; + GrBorder(psm.dc2,PSM_TOOLS_X,PSM_TOOLS_Y, PSM_TOOLS_X+10,PSM_TOOLS_Y+10); - if (oc.tool==PSMTT_PTR_TOOL) - oc.dc2->color=RED; + if (psm.tool==PSMTT_PTR_TOOL) + psm.dc2->color=RED; else - oc.dc2->color=BLACK; - (*gr.fp_draw_input_ptr)(oc.dc2,PSM_TOOLS_X+15,PSM_TOOLS_Y); - oc.dc2->color=BLACK; + psm.dc2->color=BLACK; + (*gr.fp_draw_input_ptr)(psm.dc2,PSM_TOOLS_X+15,PSM_TOOLS_Y); + psm.dc2->color=BLACK; } Bool PsmGetPickToolBox(I64 xx,I64 yy) @@ -333,9 +331,9 @@ Bool PsmGetPickToolBox(I64 xx,I64 yy) PSM_TOOLS_Y<=yycolor=BLACK; + psm.dc2->color=BLACK; for (i=0;i$$FG$$\tDeletes Last Note\n" "$$LTGREEN$$Left Mouse$$FG$$\tDrag note or shift word\n" "$$LTGREEN$$Right Mouse$$FG$$\tChange duration or set word\n"; - Sprite($IB,"<6>",BI=6$,"$$SP+LA,\"\"," + Sprite($IB,"<6>",BI=6$,"$$SP+LIS,\"\"," "LM=\"Msg(MSG_KEY_DOWN,0,SCF_CTRL|SC_CURSOR_LEFT);\",BI=%d$$"); " "; - if (oc.playing) + if (psm.playing) Sprite($IB,"<9>",BI=9$,"$$SP,\"\",LM=\"x\",BI=%d$$"); else Sprite($IB,"<8>",BI=8$,"$$SP,\"\",LM=\"x\",BI=%d$$"); " "; - if (oc.record_entry->checked) { - oc.record_entry->checked=TRUE; + if (psm.record_entry->checked) { + psm.record_entry->checked=TRUE; Sprite($IB,"<10>",BI=10$,"$$SP,\"\",LM=\"z\",BI=%d$$"); } else Sprite($IB,"<11>",BI=11$,"$$SP,\"\",LM=\"z\",BI=%d$$"); " "; - Sprite($IB,"<7>",BI=7$,"$$SP+LA,\"\"," + Sprite($IB,"<7>",BI=7$,"$$SP+LIS,\"\"," "LM=\"Msg(MSG_KEY_DOWN,0,SCF_CTRL|SC_CURSOR_RIGHT);\",BI=%d$$"); "$$CM+LX,0,6$$"; PsmSetOctave(psm_octave); - WinMgrSync(2); + Refresh(2); } " òÿÿÿñÿÿÿ diff --git a/Apps/Psalmody/PsalmodyFile.HC b/Apps/Psalmody/PsalmodyFile.HC index 9cc6d23..add1313 100644 --- a/Apps/Psalmody/PsalmodyFile.HC +++ b/Apps/Psalmody/PsalmodyFile.HC @@ -1,83 +1,83 @@ -U0 PsmNoteDel(PsmNote *tempo) +U0 PsmNoteDel(PsmNote *tmpn) { - Free(tempo->word); - Free(tempo); + Free(tmpn->word); + Free(tmpn); } -PsmNote *PsmNoteCopy(PsmNote *tempo) +PsmNote *PsmNoteCopy(PsmNote *tmpn) { - PsmNote *tempo1=MAllocIdent(tempo); - if (tempo->word) - tempo1->word=StrNew(tempo->word); + PsmNote *tmpn1=MAllocIdent(tmpn); + if (tmpn->word) + tmpn1->word=StrNew(tmpn->word); else - tempo1->word=NULL; - return tempo1; + tmpn1->word=NULL; + return tmpn1; } U0 PsmSongDel(PsmNote *head) { - PsmNote *tempo,*tempo1; - tempo=head->next; - while (tempo!=head) { - tempo1=tempo->next; - PsmNoteDel(tempo); - tempo=tempo1; + PsmNote *tmpn,*tmpn1; + tmpn=head->next; + while (tmpn!=head) { + tmpn1=tmpn->next; + PsmNoteDel(tmpn); + tmpn=tmpn1; } QueInit(head); } U0 PsmCutToClipboard() { - PsmNote *tempo,*tempo1; - PsmSongDel(&oc.clipboard); - tempo=oc.head.next; - while (tempo!=&oc.head) { - tempo1=tempo->next; - if (tempo->flags&PSMF_SEL) { - if (oc.cur_note==tempo) - oc.cur_note=tempo->next; - QueRem(tempo); - tempo->flags&=~PSMF_SEL; - QueIns(tempo,oc.clipboard.last); + PsmNote *tmpn,*tmpn1; + PsmSongDel(&psm.clipboard); + tmpn=psm.head.next; + while (tmpn!=&psm.head) { + tmpn1=tmpn->next; + if (tmpn->flags&PSMF_SEL) { + if (psm.cur_note==tmpn) + psm.cur_note=tmpn->next; + QueRem(tmpn); + tmpn->flags&=~PSMF_SEL; + QueIns(tmpn,psm.clipboard.last); } - tempo=tempo1; + tmpn=tmpn1; } } U0 PsmPasteClipboard() { - PsmNote *tempo,*tempo1; - tempo=oc.clipboard.next; - while (tempo!=&oc.clipboard) { - tempo1=PsmNoteCopy(tempo); - QueIns(tempo1,oc.cur_note->last); - tempo=tempo->next; + PsmNote *tmpn,*tmpn1; + tmpn=psm.clipboard.next; + while (tmpn!=&psm.clipboard) { + tmpn1=PsmNoteCopy(tmpn); + QueIns(tmpn1,psm.cur_note->last); + tmpn=tmpn->next; } } U0 PsmCopyToClipboard() { - PsmNote *tempo,*tempo1; - PsmSongDel(&oc.clipboard); - tempo=oc.head.next; - while (tempo!=&oc.head) { - if (tempo->flags&PSMF_SEL) { - tempo->flags&=~PSMF_SEL; - tempo1=PsmNoteCopy(tempo); - QueIns(tempo1,oc.clipboard.last); + PsmNote *tmpn,*tmpn1; + PsmSongDel(&psm.clipboard); + tmpn=psm.head.next; + while (tmpn!=&psm.head) { + if (tmpn->flags&PSMF_SEL) { + tmpn->flags&=~PSMF_SEL; + tmpn1=PsmNoteCopy(tmpn); + QueIns(tmpn1,psm.clipboard.last); } - tempo=tempo->next; + tmpn=tmpn->next; } } PsmNote *PsmFindNote(I64 x,I64) { - PsmNote *tempo=oc.head.next; + PsmNote *tmpn=psm.head.next; PsmRecalcNoteXY; x+=PSM_NOTE_SPACING/2; - while (x>tempo->next->x && tempo!=&oc.head) - tempo=tempo->next; - return tempo; + while (x>tmpn->next->x && tmpn!=&psm.head) + tmpn=tmpn->next; + return tmpn; } U8 *PsmMusicSetOctave(U8 *st,I64 *psm_octave) @@ -109,48 +109,48 @@ U8 *PsmMusicSetNoteLen(U8 *st,F64 *psm_duration) U0 PsmLoadSongStr(U8 *st,I64 *psm_octave,F64 *psm_duration) { - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; I64 note,i=0; while (*st) { - tempo=CAlloc(sizeof(PsmNote)); + tmpn=CAlloc(sizeof(PsmNote)); while (*st && !('A'<=*st<='G') && *st!='R') { if (*st=='M') { - tempo1=CAlloc(sizeof(PsmNote)); - tempo1->type=PSMT_METER; + tmpn1=CAlloc(sizeof(PsmNote)); + tmpn1->type=PSMT_METER; st++; if ('1'<=*st<='9') - tempo1->meter_top=*st++-'0'; + tmpn1->meter_top=*st++-'0'; else - tempo1->meter_top=4; + tmpn1->meter_top=4; if (*st=='/') st++; if ('1'<=*st<='9') - tempo1->meter_bottom=*st++-'0'; + tmpn1->meter_bottom=*st++-'0'; else - tempo1->meter_bottom=4; - PsmSetWidth(tempo1); - QueIns(tempo1,oc.head.last); + tmpn1->meter_bottom=4; + PsmSetWidth(tmpn1); + QueIns(tmpn1,psm.head.last); } while (*st=='(') { - Bts(&tempo->flags,PSMf_TIE); + Bts(&tmpn->flags,PSMf_TIE); st++; } st=PsmMusicSetOctave(st,psm_octave); st=PsmMusicSetNoteLen(st,psm_duration); } if (!*st) { - PsmNoteDel(tempo); + PsmNoteDel(tmpn); break; } note=*st++-'A'; if (note<7) { note=music.note_map[note]; if (*st=='b') { - Bts(&tempo->flags,PSMf_FLAT); + Bts(&tmpn->flags,PSMf_FLAT); note--; st++; } else if (*st=='#') { - Bts(&tempo->flags,PSMf_SHARP); + Bts(&tmpn->flags,PSMf_SHARP); note++; st++; } @@ -161,11 +161,11 @@ U0 PsmLoadSongStr(U8 *st,I64 *psm_octave,F64 *psm_duration) note=0; *psm_octave+=1; } - tempo->note=note; - tempo->octave=*psm_octave; + tmpn->note=note; + tmpn->octave=*psm_octave; } else { - tempo->note=NOTE_REST; - tempo->octave=OCTAVE_REST; + tmpn->note=NOTE_REST; + tmpn->octave=OCTAVE_REST; } if (*psm_duration<=2*.25/3) i=0; @@ -191,38 +191,38 @@ U0 PsmLoadSongStr(U8 *st,I64 *psm_octave,F64 *psm_duration) i=10; else i=11; - tempo->duration=i; - tempo->type=PSMT_NOTE; - PsmSetWidth(tempo); - QueIns(tempo,oc.cur_note->last); + tmpn->duration=i; + tmpn->type=PSMT_NOTE; + PsmSetWidth(tmpn); + QueIns(tmpn,psm.cur_note->last); } } U0 PsmLoadSong(U8 *filename,I64 *psm_octave,F64 *psm_duration) { U8 *st; - PsmNote *tempo; + PsmNote *tmpn; CCmpCtrl *cc=CmpCtrlNew(MStrPrint("#include \"%s\"",filename)); if (FileOcc("incomplete",filename,"")) - oc.incomplete_entry->checked=TRUE; + psm.incomplete_entry->checked=TRUE; else - oc.incomplete_entry->checked=FALSE; + psm.incomplete_entry->checked=FALSE; while (Lex(cc)) { if (cc->token==TK_IDENT) if (!StrCmp(cc->cur_str,"Play")) { if (Lex(cc)=='(') if (Lex(cc)==TK_STR) { - tempo=oc.head.last; + tmpn=psm.head.last; st=LexExtStr(cc); PsmLoadSongStr(st,psm_octave,psm_duration); if (cc->token==',') { if (Lex(cc)==TK_STR) { st=LexExtStr(cc); do { - do tempo=tempo->next; - while (tempo!=&oc.head && tempo->type==PSMT_METER); - if (tempo!=&oc.head) - tempo->word=StrNew(st); + do tmpn=tmpn->next; + while (tmpn!=&psm.head && tmpn->type==PSMT_METER); + if (tmpn!=&psm.head) + tmpn->word=StrNew(st); st+=StrLen(st)+1; } while (*st); } @@ -249,28 +249,28 @@ U0 PsmLoadSong(U8 *filename,I64 *psm_octave,F64 *psm_duration) U8 *PsmCvtSong() { - PsmNote *tempo; + PsmNote *tmpn; U8 *st,*src,*dst; I64 i,note,octave,last_octave,last_duration; i=0; - tempo=oc.head.next; + tmpn=psm.head.next; last_octave=OCTAVE_REST; last_duration=-1; - while (tempo!=&oc.head) { - dst=&tempo->ascii; - if (tempo->type==PSMT_METER) { + while (tmpn!=&psm.head) { + dst=&tmpn->ascii; + if (tmpn->type==PSMT_METER) { *dst++='M'; - *dst++=tempo->meter_top+'0'; + *dst++=tmpn->meter_top+'0'; *dst++='/'; - *dst++=tempo->meter_bottom+'0'; + *dst++=tmpn->meter_bottom+'0'; } else { - octave=tempo->octave; - note=tempo->note; + octave=tmpn->octave; + note=tmpn->note; if (note!=NOTE_REST) { - if (Bt(&tempo->flags,PSMf_SHARP)) + if (Bt(&tmpn->flags,PSMf_SHARP)) note--; - if (Bt(&tempo->flags,PSMf_FLAT)) + if (Bt(&tmpn->flags,PSMf_FLAT)) note++; if (note<0) { note=11; @@ -281,43 +281,43 @@ U8 *PsmCvtSong() } note=music.note_map[*LstSub(note,psm_note_lst)-'A']; } - if (Bt(&tempo->flags,PSMf_TIE)) + if (Bt(&tmpn->flags,PSMf_TIE)) *dst++='('; if (octave!=last_octave && note!=NOTE_REST) { *dst++=octave+'0'; last_octave=octave; } - if (tempo->duration!=last_duration) { - src=LstSub(tempo->duration,psm_duration_lst); + if (tmpn->duration!=last_duration) { + src=LstSub(tmpn->duration,psm_duration_lst); *dst++=src[0]; if (src[1]) *dst++=src[1]; - last_duration=tempo->duration; + last_duration=tmpn->duration; } if (note!=NOTE_REST) { src=LstSub(note,psm_note_lst); *dst++=src[0]; if (src[1]) *dst++=src[1]; - else if (Bt(&tempo->flags,PSMf_FLAT)) + else if (Bt(&tmpn->flags,PSMf_FLAT)) *dst++='b'; - else if (Bt(&tempo->flags,PSMf_SHARP)) + else if (Bt(&tmpn->flags,PSMf_SHARP)) *dst++='#'; } else *dst++='R'; } *dst++=0; - i+=StrLen(tempo->ascii); - tempo=tempo->next; + i+=StrLen(tmpn->ascii); + tmpn=tmpn->next; } st=MAlloc(i+1); dst=st; - tempo=oc.head.next; - while (tempo!=&oc.head) { - StrCpy(dst,tempo->ascii); - dst+=StrLen(tempo->ascii); - tempo=tempo->next; + tmpn=psm.head.next; + while (tmpn!=&psm.head) { + StrCpy(dst,tmpn->ascii); + dst+=StrLen(tmpn->ascii); + tmpn=tmpn->next; } *dst++=0; return st; @@ -327,23 +327,23 @@ U8 *PsmSaveSong(U8 *dirname,U8 *full_filename) { CDoc *doc=DocNew(full_filename); Bool has_words; - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; F64 measure_len=4,two_measure_left=2*measure_len; I64 ch; U8 *ptr; - Free(PsmCvtSong); //set tempo->ascii; + Free(PsmCvtSong); //set tmpn->ascii; music.tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; music.stacatto_factor=0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; has_words=FALSE; - tempo=oc.head.next; - while (tempo!=&oc.head) { - if (PsmHasWords(tempo->word)) has_words=TRUE; - tempo=tempo->next; + tmpn=psm.head.next; + while (tmpn!=&psm.head) { + if (PsmHasWords(tmpn->word)) has_words=TRUE; + tmpn=tmpn->next; } - if (oc.incomplete_entry->checked) + if (psm.incomplete_entry->checked) DocPrint(doc,"//0 incomplete\n"); else if (has_words) DocPrint(doc,"//0 has words\n"); @@ -361,58 +361,58 @@ U8 *PsmSaveSong(U8 *dirname,U8 *full_filename) " while (!ScanKey) {\n" "\tPlay(\"",music.tempo+0.0005,music.stacatto_factor+0.0005); - tempo=oc.head.next; - tempo1=tempo; + tmpn=psm.head.next; + tmpn1=tmpn; has_words=FALSE; - while (tempo!=&oc.head) { - DocPrint(doc,"%s",tempo->ascii); - if (PsmHasWords(tempo->word)) has_words=TRUE; - if (tempo->type==PSMT_METER) { - measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + while (tmpn!=&psm.head) { + DocPrint(doc,"%s",tmpn->ascii); + if (PsmHasWords(tmpn->word)) has_words=TRUE; + if (tmpn->type==PSMT_METER) { + measure_len=tmpn->meter_top*4.0/tmpn->meter_bottom; two_measure_left=0; } else - two_measure_left-=psm_durations[tempo->duration]; - tempo=tempo->next; - if (two_measure_left<0.001 && tempo!=&oc.head) { + two_measure_left-=psm_durations[tmpn->duration]; + tmpn=tmpn->next; + if (two_measure_left<0.001 && tmpn!=&psm.head) { if (has_words) { DocPrint(doc,"\",\n\t\t\""); - while (tempo1!=tempo) { - if (tempo1->type!=PSMT_METER) { - if (ptr=tempo1->word) { + while (tmpn1!=tmpn) { + if (tmpn1->type!=PSMT_METER) { + if (ptr=tmpn1->word) { while (ch=*ptr) { if (ch==CH_SPACE) *ptr=CH_SHIFT_SPACE; ptr++; } - DocPrint(doc,"%Q\\0",tempo1->word); + DocPrint(doc,"%Q\\0",tmpn1->word); } else DocPrint(doc,"%c\\0",CH_SHIFT_SPACE); } - tempo1=tempo1->next; + tmpn1=tmpn1->next; } } DocPrint(doc,"\");\n" "\tPlay(\""); two_measure_left=2*measure_len; - tempo1=tempo; + tmpn1=tmpn; has_words=FALSE; } } if (has_words) { DocPrint(doc,"\",\n\t\t\""); - while (tempo1!=tempo) { - if (tempo1->type!=PSMT_METER) { - if (ptr=tempo1->word) { + while (tmpn1!=tmpn) { + if (tmpn1->type!=PSMT_METER) { + if (ptr=tmpn1->word) { while (ch=*ptr) { if (ch==CH_SPACE) *ptr=CH_SHIFT_SPACE; ptr++; } - DocPrint(doc,"%Q\\0",tempo1->word); + DocPrint(doc,"%Q\\0",tmpn1->word); } else DocPrint(doc,"%c\\0",CH_SHIFT_SPACE); } - tempo1=tempo1->next; + tmpn1=tmpn1->next; } } DocPrint(doc,"\");\n" @@ -427,7 +427,7 @@ U8 *PsmSaveSong(U8 *dirname,U8 *full_filename) if (full_filename) Free(full_filename); else - StrPrint(doc->filename.name,"%s/Temp.HC.Z",dirname); + StrPrint(doc->filename.name,"%s/Tmp.HC.Z",dirname); DocWrite(doc,TRUE); full_filename=StrNew(doc->filename.name); DocDel(doc); diff --git a/Apps/Psalmody/PsalmodyMain.HC b/Apps/Psalmody/PsalmodyMain.HC index 925f48e..2c986b8 100644 --- a/Apps/Psalmody/PsalmodyMain.HC +++ b/Apps/Psalmody/PsalmodyMain.HC @@ -28,94 +28,94 @@ F64 PopUpDuration() U0 PsmRightClick(I64 x,I64 y) { U8 *st,*st2; - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; I64 i,old_doc_flags; if (DocPut) old_doc_flags=DocPut->flags; - oc.cur_note=tempo=PsmFindNote(x,y); - if (tempo!=&oc.head) { + psm.cur_note=tmpn=PsmFindNote(x,y); + if (tmpn!=&psm.head) { Fs->win_inhibit=WIG_USER_TASK_DFT; i=PopUpDuration; if (0<=itype==PSMT_NOTE) - tempo->duration=i; + if (tmpn->type==PSMT_NOTE) + tmpn->duration=i; } else { switch (i) { case PSMR_REST: - if (tempo->type==PSMT_NOTE) { - tempo->octave=OCTAVE_REST; - tempo->note=NOTE_REST; + if (tmpn->type==PSMT_NOTE) { + tmpn->octave=OCTAVE_REST; + tmpn->note=NOTE_REST; } break; case PSMR_SHARP: - if (tempo->type==PSMT_NOTE && tempo->octave!=OCTAVE_REST) { - if (Btr(&tempo->flags,PSMf_FLAT)) - tempo->note++; - if (Btc(&tempo->flags,PSMf_SHARP)) - tempo->note--; + if (tmpn->type==PSMT_NOTE && tmpn->octave!=OCTAVE_REST) { + if (Btr(&tmpn->flags,PSMf_FLAT)) + tmpn->note++; + if (Btc(&tmpn->flags,PSMf_SHARP)) + tmpn->note--; else - tempo->note++; - if (tempo->note<0) { - tempo->note=11; - tempo->octave--; - } else if (tempo->note>11) { - tempo->note=0; - tempo->octave++; + tmpn->note++; + if (tmpn->note<0) { + tmpn->note=11; + tmpn->octave--; + } else if (tmpn->note>11) { + tmpn->note=0; + tmpn->octave++; } } break; case PSMR_FLAT: - if (tempo->type==PSMT_NOTE && tempo->octave!=OCTAVE_REST) { - if (Btr(&tempo->flags,PSMf_SHARP)) - tempo->note--; - if (Btc(&tempo->flags,PSMf_FLAT)) - tempo->note++; + if (tmpn->type==PSMT_NOTE && tmpn->octave!=OCTAVE_REST) { + if (Btr(&tmpn->flags,PSMf_SHARP)) + tmpn->note--; + if (Btc(&tmpn->flags,PSMf_FLAT)) + tmpn->note++; else - tempo->note--; - if (tempo->note<0) { - tempo->note=11; - tempo->octave--; - } else if (tempo->note>11) { - tempo->note=0; - tempo->octave++; + tmpn->note--; + if (tmpn->note<0) { + tmpn->note=11; + tmpn->octave--; + } else if (tmpn->note>11) { + tmpn->note=0; + tmpn->octave++; } } break; case PSMR_TIE: - if (tempo->type==PSMT_NOTE) - Btc(&tempo->flags,PSMf_TIE); + if (tmpn->type==PSMT_NOTE) + Btc(&tmpn->flags,PSMf_TIE); break; case PSMR_SET_WORD: - if (tempo->type==PSMT_NOTE) { + if (tmpn->type==PSMT_NOTE) { if (DocPut) DocPut->flags&=~DOCF_FORM; - if (PsmHasWords(tempo->word)) - st2=MStrPrint("\nWord(\"%Q\"):",tempo->word); + if (PsmHasWords(tmpn->word)) + st2=MStrPrint("\nWord(\"%Q\"):",tmpn->word); else st2=MStrPrint("\nWord(\"\"):"); DocBottom; st=GetStr(st2); Free(st2); - Free(tempo->word); + Free(tmpn->word); if (*st) { - tempo->word=MStrPrint("%q",st); + tmpn->word=MStrPrint("%q",st); Free(st); } else - tempo->word=StrNew(" "); + tmpn->word=StrNew(" "); if (DocPut) DocPut->flags=DocPut->flags& ~DOCF_FORM|old_doc_flags&DOCF_FORM; } break; case PSMR_INS_NOTE: - tempo1=PsmNoteCopy(tempo); - QueIns(tempo1,tempo); + tmpn1=PsmNoteCopy(tmpn); + QueIns(tmpn1,tmpn); break; case PSMR_DELETE_NOTE: - oc.cur_note=tempo->next; - QueRem(tempo); - PsmNoteDel(tempo); + psm.cur_note=tmpn->next; + QueRem(tmpn); + PsmNoteDel(tmpn); break; } } - PsmSetWidth(oc.cur_note); + PsmSetWidth(psm.cur_note); Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS -WIF_SELF_BORDER-WIF_FOCUS_TASK_MENU-WIF_SELF_CTRLS; } @@ -124,23 +124,23 @@ U0 PsmRightClick(I64 x,I64 y) U0 PsmLeftClickPickNoteBox(I64 duration) { I64 o,n,msg_code,a1,a2; - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; do { msg_code=GetMsg(&a1,&a2,1<oc.head.last->x) - tempo1=oc.head.last; - else if (a1x) - tempo1=&oc.head; + if (a1>psm.head.last->x) + tmpn1=psm.head.last; + else if (a1x) + tmpn1=&psm.head; else - tempo1=PsmFindNote(a1-PSM_NOTE_SPACING/2,a2); - tempo=CAlloc(sizeof(PsmNote)); - tempo->type=PSMT_NOTE; + tmpn1=PsmFindNote(a1-PSM_NOTE_SPACING/2,a2); + tmpn=CAlloc(sizeof(PsmNote)); + tmpn->type=PSMT_NOTE; a2=a2/4-15; n=-a2%7; o=2+a2/-7; @@ -150,12 +150,12 @@ U0 PsmLeftClickPickNoteBox(I64 duration) o++; } n=psm_note_inverse_map[n]; - tempo->note=n; - tempo->octave=o; - tempo->duration=duration; - PsmSetWidth(tempo); - QueIns(tempo,tempo1); - oc.cur_note=tempo->next; + tmpn->note=n; + tmpn->octave=o; + tmpn->duration=duration; + PsmSetWidth(tmpn); + QueIns(tmpn,tmpn1); + psm.cur_note=tmpn->next; } DrawDC2; } @@ -163,53 +163,53 @@ U0 PsmLeftClickPickNoteBox(I64 duration) U0 PsmLeftClickPickMeterBox(I64 top,I64 bottom) { I64 msg_code,a1,a2; - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; do { msg_code=GetMsg(&a1,&a2,1<=oc.head.x) - tempo1=oc.head.last; - else if (a1x) - tempo1=&oc.head; + if (a1>=psm.head.x) + tmpn1=psm.head.last; + else if (a1x) + tmpn1=&psm.head; else - tempo1=PsmFindNote(a1-PSM_NOTE_SPACING/2,a2); - tempo=CAlloc(sizeof(PsmNote)); - tempo->type=PSMT_METER; - tempo->meter_top=top; - tempo->meter_bottom=bottom; - PsmSetWidth(tempo); - QueIns(tempo,tempo1); - oc.cur_note=tempo->next; + tmpn1=PsmFindNote(a1-PSM_NOTE_SPACING/2,a2); + tmpn=CAlloc(sizeof(PsmNote)); + tmpn->type=PSMT_METER; + tmpn->meter_top=top; + tmpn->meter_bottom=bottom; + PsmSetWidth(tmpn); + QueIns(tmpn,tmpn1); + psm.cur_note=tmpn->next; } DrawDC2; } U0 PsmLeftClickStaffPtr(I64 x,I64 y) { - PsmNote *tempo,*tempo1; + PsmNote *tmpn,*tmpn1; I64 o,n,msg_code,a1,a2,n_original,o_original; - oc.cur_note=tempo=PsmFindNote(x,y); - if (tempo!=&oc.head) { - if (tempo->type==PSMT_NOTE) { - n_original=tempo->note; - o_original=tempo->octave; + psm.cur_note=tmpn=PsmFindNote(x,y); + if (tmpn!=&psm.head) { + if (tmpn->type==PSMT_NOTE) { + n_original=tmpn->note; + o_original=tmpn->octave; do { msg_code=GetMsg(&a1,&a2,1<word); - tempo1->word=tempo->word; - tempo->word=NULL; - tempo->note=n_original; - tempo->octave=o_original; + Free(tmpn1->word); + tmpn1->word=tmpn->word; + tmpn->word=NULL; + tmpn->note=n_original; + tmpn->octave=o_original; } } else { move_note: @@ -222,11 +222,11 @@ move_note: o++; } n=psm_note_inverse_map[n]; - tempo->note=n; - tempo->octave=o; + tmpn->note=n; + tmpn->octave=o; } } while (msg_code!=MSG_IP_L_UP); - PsmSetWidth(tempo); + PsmSetWidth(tmpn); } } } @@ -237,8 +237,8 @@ U0 PsmLeftClickStaffBox(I64 x,I64 y) do { msg_code=GetMsg(&a1,&a2,1<color=ROPF_DITHER+WHITE<<16+BLACK; - GrBorder(oc.dc2,x,y,a1,a2); + psm.dc2->color=ROPF_DITHER+WHITE<<16+BLACK; + GrBorder(psm.dc2,x,y,a1,a2); if (msg_code==MSG_IP_L_UP) { if (x>a1) SwapI64(&x,&a1); PsmMarkSel(x,a1,TRUE); @@ -251,7 +251,7 @@ U0 PsmLeftClick(I64 x,I64 y) { I64 duration,top,bottom; if (y<13*FONT_HEIGHT) { - if (oc.tool==PSMTT_PTR_TOOL) + if (psm.tool==PSMTT_PTR_TOOL) PsmLeftClickStaffPtr(x,y); else PsmLeftClickStaffBox(x,y); @@ -266,38 +266,6 @@ U0 PsmLeftClick(I64 x,I64 y) } } -U0 PsmPlayTask(I64) -{ - I64 i=0; - F64 f=0,f2=0; - Fs->task_end_cb=&SndTaskEndCB; - while (TRUE) { - i++; - switch (psm_play_mode) { - case PSMPM_NORMAL: - if (psm_play_f!=f) { - f=psm_play_f; - Snd(f); - } - break; - case PSMPM_REVERB1: - if (psm_play_f!=f) { - if (f>0) - f2=f; - f=psm_play_f; - } - if (!(i&15)) { - if (i&16) - Snd(f); - else - Snd(f2); - } - break; - } - Sleep(1); - } -} - U8 PsmCvtDuration(F64 d) { F64 d1,d2; @@ -403,8 +371,7 @@ U0 Psalmody(U8 *dirname="~/Psalmody") note=NOTE_REST,octave=OCTAVE_REST,psm_octave=3,timeout_val,timeout_val2, old_doc_flags; U8 *filename=NULL,*st,*st2; - CTask *play_task=Spawn(&PsmPlayTask,NULL,"Psalmody Play",,Fs); - PsmNote *tempo; + PsmNote *tmpn; F64 f=0,last_f=0,psm_duration=1.0, d,evt_time=tS,note_down_time=tS; CCtrl *c=TempoNew; @@ -418,12 +385,12 @@ U0 Psalmody(U8 *dirname="~/Psalmody") if (DocPut) DocPut->flags|=DOCF_FORM; - MemSet(&oc,0,sizeof(PsmCtrl)); - oc.screen_x=0; - oc.head.next=oc.head.last=&oc.head; - oc.clipboard.next=oc.clipboard.last=&oc.clipboard; - oc.cur_note=&oc.head; - oc.dc2=DCAlias; + MemSet(&psm,0,sizeof(PsmCtrl)); + psm.scrn_x=0; + psm.head.next=psm.head.last=&psm.head; + psm.clipboard.next=psm.clipboard.last=&psm.clipboard; + psm.cur_note=&psm.head; + psm.dc2=DCAlias; MenuPush( "File {" @@ -454,7 +421,6 @@ U0 Psalmody(U8 *dirname="~/Psalmody") " MarkIncomplete(MSG_CMD,PSMF_INCOMPLETE);" "}" "Snd {" - " Reverb(,'c');" " Octave0(,'0');" " Octave1(,'1');" " Octave2(,'2');" @@ -467,8 +433,8 @@ U0 Psalmody(U8 *dirname="~/Psalmody") " Help(,,SC_F1);" "}" ); - oc.incomplete_entry=MenuEntryFind(Fs->cur_menu,"Song/MarkIncomplete"); - oc.record_entry=MenuEntryFind(Fs->cur_menu,"Song/Record"); + psm.incomplete_entry=MenuEntryFind(Fs->cur_menu,"Song/MarkIncomplete"); + psm.record_entry=MenuEntryFind(Fs->cur_menu,"Song/Record"); AutoComplete; WinBorder; @@ -522,7 +488,7 @@ mo_got_msg: dirname=st2; break; case PSMF_INCOMPLETE: - oc.incomplete_entry->checked=!oc.incomplete_entry->checked; + psm.incomplete_entry->checked=!psm.incomplete_entry->checked; break; } PsmPushMode(psm_octave); @@ -569,31 +535,31 @@ mo_got_msg: switch (a2.u8[0]) { case SC_CURSOR_LEFT: if (a2&SCF_CTRL) { - while (oc.cur_note->last!=&oc.head) { - oc.cur_note=oc.cur_note->last; - if (oc.cur_note!=&oc.head) - LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); + while (psm.cur_note->last!=&psm.head) { + psm.cur_note=psm.cur_note->last; + if (psm.cur_note!=&psm.head) + LBEqu(&psm.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); } } else { - if (oc.cur_note->last!=&oc.head) { - oc.cur_note=oc.cur_note->last; - if (oc.cur_note!=&oc.head) - LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); + if (psm.cur_note->last!=&psm.head) { + psm.cur_note=psm.cur_note->last; + if (psm.cur_note!=&psm.head) + LBEqu(&psm.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); } } break; case SC_CURSOR_RIGHT: if (a2&SCF_CTRL) { - while (oc.cur_note!=&oc.head) { - if (oc.cur_note!=&oc.head) - LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); - oc.cur_note=oc.cur_note->next; + while (psm.cur_note!=&psm.head) { + if (psm.cur_note!=&psm.head) + LBEqu(&psm.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); + psm.cur_note=psm.cur_note->next; } } else { - if (oc.cur_note!=&oc.head) { - if (oc.cur_note!=&oc.head) - LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); - oc.cur_note=oc.cur_note->next; + if (psm.cur_note!=&psm.head) { + if (psm.cur_note!=&psm.head) + LBEqu(&psm.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); + psm.cur_note=psm.cur_note->next; } } break; @@ -601,11 +567,11 @@ mo_got_msg: if (a2&SCF_SHIFT) PsmCutToClipboard; else { - tempo=oc.cur_note; - oc.cur_note=tempo->next; - if (tempo!=&oc.head) { - QueRem(tempo); - PsmNoteDel(tempo); + tmpn=psm.cur_note; + psm.cur_note=tmpn->next; + if (tmpn!=&psm.head) { + QueRem(tmpn); + PsmNoteDel(tmpn); } } break; @@ -647,14 +613,14 @@ mo_got_msg: filename=NULL; JukeBox(dirname,&filename); if (filename) { - oc.screen_x=0; + psm.scrn_x=0; psm_duration=1.0; psm_octave=3; - PsmSongDel(&oc.head); - oc.cur_note=&oc.head; + PsmSongDel(&psm.head); + psm.cur_note=&psm.head; PsmLoadSong(filename,&psm_octave,&psm_duration); - oc.record_entry->checked=FALSE; - oc.cur_note=oc.head.next; + psm.record_entry->checked=FALSE; + psm.cur_note=psm.head.next; } PsmPushMode(psm_octave); col=0; @@ -680,23 +646,23 @@ mo_got_msg: filename=NULL; psm_duration=1.0; psm_octave=3; - PsmSongDel(&oc.head); - oc.cur_note=&oc.head; - oc.screen_x=0; + PsmSongDel(&psm.head); + psm.cur_note=&psm.head; + psm.scrn_x=0; break; case '\n': - if (oc.cur_note!=&oc.head) - PsmRightClick(oc.cur_note->x,oc.cur_note->y); + if (psm.cur_note!=&psm.head) + PsmRightClick(psm.cur_note->x,psm.cur_note->y); break; case 'x': if (was_playing) break; col=0; - oc.playing=TRUE; + psm.playing=TRUE; PsmMenu(psm_octave); - tempo=oc.cur_note; - while (tempo!=&oc.head) { - if (tempo->type!=PSMT_METER) { + tmpn=psm.cur_note; + while (tmpn!=&psm.head) { + if (tmpn->type!=PSMT_METER) { timeout_val=cnts.jiffies; if (ip.pos_text.y-Fs->win_top<18) msg_code=ScanMsg(&a1,&a2,1<win_top>=18 && msg_code==MSG_IP_L_DOWN) @@ -715,26 +681,26 @@ mo_got_msg: else goto mo_got_msg; } - oc.cur_note=tempo; - oc.screen_x+=tempo->x-0.33*GR_WIDTH; - if (PsmHasWords(tempo->word)) - "%s",tempo->word; - note=tempo->note; - octave=tempo->octave; + psm.cur_note=tmpn; + psm.scrn_x+=tmpn->x-0.33*GR_WIDTH; + if (PsmHasWords(tmpn->word)) + "%s",tmpn->word; + note=tmpn->note; + octave=tmpn->octave; if (note!=NOTE_REST) f=Note2Freq(note,octave); else f=-1; //rest if (f>0) - psm_play_f=f; + Snd(f); else - psm_play_f=0; + Snd(0); music.tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; music.stacatto_factor= 0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; - d=JIFFY_FREQ*psm_durations[tempo->duration]/music.tempo; - if (Bt(&tempo->flags,PSMf_TIE)) { + d=JIFFY_FREQ*psm_durations[tmpn->duration]/music.tempo; + if (Bt(&tmpn->flags,PSMf_TIE)) { timeout_val+=d; timeout_val2=timeout_val; } else { @@ -743,44 +709,38 @@ mo_got_msg: d*(1.0-music.stacatto_factor); } SleepUntil(timeout_val); - psm_play_f=0; + Snd(0); SleepUntil(timeout_val2); } - tempo=tempo->next; + tmpn=tmpn->next; } - oc.cur_note=&oc.head; - oc.screen_x+=oc.cur_note->x-GR_WIDTH/2; - oc.playing=FALSE; + psm.cur_note=&psm.head; + psm.scrn_x+=psm.cur_note->x-GR_WIDTH/2; + psm.playing=FALSE; PsmMenu(psm_octave); col=0; f=0; - psm_play_f=0; + Snd(0); break; case CH_BACKSPACE: - tempo=oc.cur_note->last; - if (tempo!=&oc.head) { - QueRem(tempo); - PsmNoteDel(tempo); + tmpn=psm.cur_note->last; + if (tmpn!=&psm.head) { + QueRem(tmpn); + PsmNoteDel(tmpn); } if (col) { '' CH_BACKSPACE; col--; } break; - case 'c': - psm_play_mode++; - if (psm_play_mode>=PSMPM_NUM_PLAY_MODES) psm_play_mode=0; - PsmMenu(psm_octave); - col=0; - break; case 'z': - if (oc.record_entry->checked) - oc.record_entry->checked=FALSE; + if (psm.record_entry->checked) + psm.record_entry->checked=FALSE; else { - oc.record_entry->checked=TRUE; + psm.record_entry->checked=TRUE; psm_duration=1.0; psm_octave=3; - oc.screen_x=0; + psm.scrn_x=0; } PsmMenu(psm_octave); col=0; @@ -818,32 +778,32 @@ mo_got_msg: if (f!=last_f) { if (f>0) { st=LstSub(note,psm_note_lst); - psm_play_f=f; + Snd(f); } else { if (f<0) st="R"; else st=""; - psm_play_f=0; + Snd(0); } - if (oc.record_entry->checked) { + if (psm.record_entry->checked) { if (last_f) { music.tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; music.stacatto_factor=0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; - tempo->duration=PsmCvtDuration( + tmpn->duration=PsmCvtDuration( music.tempo*(evt_time-note_down_time)); - PsmSetWidth(tempo); - QueIns(tempo,oc.cur_note->last); + PsmSetWidth(tmpn); + QueIns(tmpn,psm.cur_note->last); } if (f) { note_down_time=tS; - tempo=CAlloc(sizeof(PsmNote)); - tempo->type=PSMT_NOTE; - tempo->note=note; - tempo->octave=octave; + tmpn=CAlloc(sizeof(PsmNote)); + tmpn->type=PSMT_NOTE; + tmpn->note=note; + tmpn->octave=octave; if (st[1]=='#') - Bts(&tempo->flags,PSMf_SHARP); + Bts(&tmpn->flags,PSMf_SHARP); } } last_f=f; @@ -860,12 +820,11 @@ mo_done: } catch PutExcept; PsmPopMode; - PsmSongDel(&oc.head); - PsmSongDel(&oc.clipboard); + PsmSongDel(&psm.head); + PsmSongDel(&psm.clipboard); TempoDel(c); - Kill(play_task); DCFill; - DCDel(oc.dc2); + DCDel(psm.dc2); DocClear; SettingsPop; if (DocPut) DocPut->flags=DocPut->flags&~DOCF_FORM|old_doc_flags&DOCF_FORM; diff --git a/Apps/Span/SpanBridge.HC b/Apps/Span/SpanBridge.HC index 00ae2bc..608abfc 100644 --- a/Apps/Span/SpanBridge.HC +++ b/Apps/Span/SpanBridge.HC @@ -21,27 +21,27 @@ U0 SpanBridge1Init(CMathODE *) { I64 i; - MyMass *tempm; - tempm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y1); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(GR_WIDTH-FIXED_X2,FIXED_Y1); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y2); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(FIXED_X1,FIXED_Y1); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(FIXED_X2,FIXED_Y1); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(FIXED_X1,FIXED_Y2); - tempm->flags|=MSF_FIXED; - tempm=PlaceMass(FIXED_X3,FIXED_Y3); - tempm->flags|=MSF_FIXED; + MyMass *tmpm; + tmpm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y1); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(GR_WIDTH-FIXED_X2,FIXED_Y1); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y2); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(FIXED_X1,FIXED_Y1); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(FIXED_X2,FIXED_Y1); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(FIXED_X1,FIXED_Y2); + tmpm->flags|=MSF_FIXED; + tmpm=PlaceMass(FIXED_X3,FIXED_Y3); + tmpm->flags|=MSF_FIXED; for (i=0;iload_t=(i+1.0)/LOAD_WEIGHTS; - tempm->color=RED; + tmpm->load_t=(i+1.0)/LOAD_WEIGHTS; + tmpm->color=RED; } DocClear; @@ -62,19 +62,19 @@ U0 SpanBridge1Init(CMathODE *) U0 AdjustLoads(CMathODE *ode) { - MyMass *tempm=ode->next_mass; + MyMass *tmpm=ode->next_mass; F64 d,tt=SpanTime/10.0; - while (tempm!=&ode->next_mass) { - if (tempm->load_t) { + while (tmpm!=&ode->next_mass) { + if (tmpm->load_t) { if (tt) { - d=Abs(Sin(tempm->load_t*ã+tt)); //0.0<=d<=1.0 - tempm->mass=100.0*Sqr(Sqr(d+1.0)); - tempm->radius=7.0*d+2.0; + d=Abs(Sin(tmpm->load_t*ã+tt)); //0.0<=d<=1.0 + tmpm->mass=100.0*Sqr(Sqr(d+1.0)); + tmpm->radius=7.0*d+2.0; } else { - tempm->mass=MASS_MASS; - tempm->radius=MASS_RADIUS; + tmpm->mass=MASS_MASS; + tmpm->radius=MASS_RADIUS; } } - tempm=tempm->next; + tmpm=tmpm->next; } } diff --git a/Apps/Span/SpanDerive.HC b/Apps/Span/SpanDerive.HC index f36a6d4..77ae4b0 100644 --- a/Apps/Span/SpanDerive.HC +++ b/Apps/Span/SpanDerive.HC @@ -7,32 +7,32 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) CTask *task=ode->win_task; F64 d,dd; CD3 p,p2; - MyMass *tempm1,*tempm2; + MyMass *tmpm1,*tmpm2; //Collisions - tempm1=ode->next_mass; - while (tempm1!=&ode->next_mass) { - tempm2=tempm1->next; - while (tempm2!=&ode->next_mass) { - D3Sub(&p,&tempm2->state->x,&tempm1->state->x); + tmpm1=ode->next_mass; + while (tmpm1!=&ode->next_mass) { + tmpm2=tmpm1->next; + while (tmpm2!=&ode->next_mass) { + D3Sub(&p,&tmpm2->state->x,&tmpm1->state->x); dd=D3NormSqr(&p); - if (dd<=Sqr(tempm1->radius+tempm2->radius)) { + if (dd<=Sqr(tmpm1->radius+tmpm2->radius)) { d=Sqrt(dd)+0.0001; - dd=10.0*Sqr(Sqr(Sqr(tempm1->radius+tempm2->radius)-dd)); + dd=10.0*Sqr(Sqr(Sqr(tmpm1->radius+tmpm2->radius)-dd)); D3MulEqu(&p,dd/d); - D3AddEqu(&tempm2->DstateDt->DxDt,&p); - D3SubEqu(&tempm1->DstateDt->DxDt,&p); + D3AddEqu(&tmpm2->DstateDt->DxDt,&p); + D3SubEqu(&tmpm1->DstateDt->DxDt,&p); } - tempm2=tempm2->next; + tmpm2=tmpm2->next; } - tempm1=tempm1->next; + tmpm1=tmpm1->next; } - tempm1=ode->next_mass; - while (tempm1!=&ode->next_mass) { - if (!(tempm1->flags&MSF_FIXED)) - tempm1->DstateDt->DyDt+=10.0*tempm1->mass; //Gravity - tempm1=tempm1->next; + tmpm1=ode->next_mass; + while (tmpm1!=&ode->next_mass) { + if (!(tmpm1->flags&MSF_FIXED)) + tmpm1->DstateDt->DyDt+=10.0*tmpm1->mass; //Gravity + tmpm1=tmpm1->next; } if (cursor_mass) { diff --git a/Apps/Span/SpanMain.HC b/Apps/Span/SpanMain.HC index 3f1cf5b..09632ca 100644 --- a/Apps/Span/SpanMain.HC +++ b/Apps/Span/SpanMain.HC @@ -8,36 +8,36 @@ F64 SpanTime() F64 Cost(CMathODE *ode) { - MyMass *tempm; - MySpring *temps; + MyMass *tmpm; + MySpring *tmps; F64 res=0; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - res+=tempm->cost; - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + res+=tmpm->cost; + tmpm=tmpm->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - res+=temps->cost; - temps=temps->next; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + res+=tmps->cost; + tmps=tmps->next; } return res; } U0 DrawIt(CTask *task,CDC *dc) { - MyMass *tempm; - MySpring *temps; + MyMass *tmpm; + MySpring *tmps; - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - if (!(temps->flags&SSF_INACTIVE)) { - dc->color=temps->color; - dc->pen_width=temps->pen_width; - GrLine3(dc,temps->end1->x,temps->end1->y,0, - temps->end2->x,temps->end2->y,0); + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + if (!(tmps->flags&SSF_INACTIVE)) { + dc->color=tmps->color; + dc->pen_width=tmps->pen_width; + GrLine3(dc,tmps->end1->x,tmps->end1->y,0, + tmps->end2->x,tmps->end2->y,0); } - temps=temps->next; + tmps=tmps->next; } if (cursor_mass) { @@ -48,19 +48,19 @@ U0 DrawIt(CTask *task,CDC *dc) cursor_mass->x,cursor_mass->y,0); } - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (!(tempm->flags&MSF_INACTIVE)) { + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (!(tmpm->flags&MSF_INACTIVE)) { dc->color=BLACK; - GrCircle(dc,tempm->x,tempm->y,tempm->radius); - GrFloodFill(dc,tempm->x,tempm->y,TRUE); - dc->color=tempm->color; - GrCircle(dc,tempm->x,tempm->y,tempm->radius); - GrFloodFill(dc,tempm->x,tempm->y,TRUE); + GrCircle(dc,tmpm->x,tmpm->y,tmpm->radius); + GrFloodFill(dc,tmpm->x,tmpm->y,TRUE); + dc->color=tmpm->color; + GrCircle(dc,tmpm->x,tmpm->y,tmpm->radius); + GrFloodFill(dc,tmpm->x,tmpm->y,TRUE); dc->color=BLACK; - GrCircle(dc,tempm->x,tempm->y,tempm->radius); + GrCircle(dc,tmpm->x,tmpm->y,tmpm->radius); } - tempm=tempm->next; + tmpm=tmpm->next; } dc->color=BLACK; @@ -70,69 +70,69 @@ U0 DrawIt(CTask *task,CDC *dc) MyMass *PlaceMass(I64 x, I64 y) { - MyMass *tempm=CAlloc(sizeof(MyMass)); - tempm->drag_profile_factor=1.0; - tempm->x=x; - tempm->y=y; - tempm->mass=MASS_MASS; - tempm->radius=MASS_RADIUS; - tempm->cost=25.0*COST_SCALE; - tempm->color=YELLOW; - QueIns(tempm,ode->last_mass); - return tempm; + MyMass *tmpm=CAlloc(sizeof(MyMass)); + tmpm->drag_profile_factor=1.0; + tmpm->x=x; + tmpm->y=y; + tmpm->mass=MASS_MASS; + tmpm->radius=MASS_RADIUS; + tmpm->cost=25.0*COST_SCALE; + tmpm->color=YELLOW; + QueIns(tmpm,ode->last_mass); + return tmpm; } -U0 NullSpring(MySpring *temps,F64 scale) +U0 NullSpring(MySpring *tmps,F64 scale) { - F64 d=D3Dist(&temps->end1->x,&temps->end2->x); - temps->rest_len=d*scale; - temps->compression_strength= - temps->base_compression_strength/(temps->rest_len+1.0); - temps->tensile_strength=temps->base_tensile_strength/(temps->rest_len+1.0); - temps->const=temps->base_const/(temps->rest_len+1.0); - temps->cost=temps->base_cost*temps->rest_len; + F64 d=D3Dist(&tmps->end1->x,&tmps->end2->x); + tmps->rest_len=d*scale; + tmps->compression_strength= + tmps->base_compression_strength/(tmps->rest_len+1.0); + tmps->tensile_strength=tmps->base_tensile_strength/(tmps->rest_len+1.0); + tmps->const=tmps->base_const/(tmps->rest_len+1.0); + tmps->cost=tmps->base_cost*tmps->rest_len; } -U0 MoveMass(MyMass *tempm,I64 x, I64 y) +U0 MoveMass(MyMass *tmpm,I64 x, I64 y) { - MySpring *temps; - tempm->x=x; - tempm->y=y; - tempm->DxDt=0; - tempm->DyDt=0; - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - if (temps->end1==tempm || temps->end2==tempm) { - if (temps->flags&SSF_NO_COMPRESSION) - NullSpring(temps,WIRE_PERCENT); + MySpring *tmps; + tmpm->x=x; + tmpm->y=y; + tmpm->DxDt=0; + tmpm->DyDt=0; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + if (tmps->end1==tmpm || tmps->end2==tmpm) { + if (tmps->flags&SSF_NO_COMPRESSION) + NullSpring(tmps,WIRE_PERCENT); else - NullSpring(temps,1.0); + NullSpring(tmps,1.0); } - temps=temps->next; + tmps=tmps->next; } } -U0 DelSpring(MySpring *temps) +U0 DelSpring(MySpring *tmps) { - QueRem(temps); - Free(temps); + QueRem(tmps); + Free(tmps); } -U0 DelMass(MyMass *tempm) +U0 DelMass(MyMass *tmpm) { - MySpring *temps,*temps1; - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - temps1=temps->next; - if (temps->end1==tempm || temps->end2==tempm) - DelSpring(temps); - temps=temps1; + MySpring *tmps,*tmps1; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + tmps1=tmps->next; + if (tmps->end1==tmpm || tmps->end2==tmpm) + DelSpring(tmps); + tmps=tmps1; } - QueRem(tempm); - Free(tempm); + QueRem(tmpm); + Free(tmpm); } -U0 DrawSpring(CDC *dc,MyMass *tempm,I64 x,I64 y) +U0 DrawSpring(CDC *dc,MyMass *tmpm,I64 x,I64 y) { switch (mode_button.state) { case MD_CONCRETE: @@ -148,66 +148,66 @@ U0 DrawSpring(CDC *dc,MyMass *tempm,I64 x,I64 y) dc->pen_width=1; break; } - GrLine3(dc,tempm->x,tempm->y,0,x,y,0); + GrLine3(dc,tmpm->x,tmpm->y,0,x,y,0); } -U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2) +U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2) { - MySpring *temps=CAlloc(sizeof(MySpring)); - temps->end1=tempm1; - temps->end2=tempm2; + MySpring *tmps=CAlloc(sizeof(MySpring)); + tmps->end1=tmpm1; + tmps->end2=tmpm2; switch (mode_button.state) { case MD_CONCRETE: - temps->base_const = 3.00*SPRING_SCALE; - temps->base_compression_strength=10.00*STRENGTH_SCALE; - temps->base_tensile_strength = 0.35*STRENGTH_SCALE; - temps->base_cost = 0.30*COST_SCALE; - NullSpring(temps,1.0); - temps->color=LTGRAY; - temps->pen_width=2; + tmps->base_const = 3.00*SPRING_SCALE; + tmps->base_compression_strength=10.00*STRENGTH_SCALE; + tmps->base_tensile_strength = 0.35*STRENGTH_SCALE; + tmps->base_cost = 0.30*COST_SCALE; + NullSpring(tmps,1.0); + tmps->color=LTGRAY; + tmps->pen_width=2; break; case MD_STEEL: - temps->base_const = 1.00*SPRING_SCALE; - temps->base_compression_strength= 1.00*STRENGTH_SCALE; - temps->base_tensile_strength = 1.00*STRENGTH_SCALE; - temps->base_cost = 1.00*COST_SCALE; - NullSpring(temps,1.0); - temps->color=DKGRAY; - temps->pen_width=2; + tmps->base_const = 1.00*SPRING_SCALE; + tmps->base_compression_strength= 1.00*STRENGTH_SCALE; + tmps->base_tensile_strength = 1.00*STRENGTH_SCALE; + tmps->base_cost = 1.00*COST_SCALE; + NullSpring(tmps,1.0); + tmps->color=DKGRAY; + tmps->pen_width=2; break; case MD_WIRE: - temps->base_const = 0.25*SPRING_SCALE; - temps->base_compression_strength= 0.00; - temps->base_tensile_strength = 0.50*STRENGTH_SCALE; - temps->base_cost = 0.10*COST_SCALE; - NullSpring(temps,WIRE_PERCENT); - temps->color=RED; - temps->pen_width=1; - temps->flags|=SSF_NO_COMPRESSION; + tmps->base_const = 0.25*SPRING_SCALE; + tmps->base_compression_strength= 0.00; + tmps->base_tensile_strength = 0.50*STRENGTH_SCALE; + tmps->base_cost = 0.10*COST_SCALE; + NullSpring(tmps,WIRE_PERCENT); + tmps->color=RED; + tmps->pen_width=1; + tmps->flags|=SSF_NO_COMPRESSION; break; } - QueIns(temps,ode->last_spring); + QueIns(tmps,ode->last_spring); } U0 AnimateTask(SpanAnimateStruct *a) { - MySpring *temps,*temps1; + MySpring *tmps,*tmps1; Bool old_run=FALSE; F64 f; while (TRUE) { - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - temps1=temps->next; - f=temps->f; - if (f>0 && f>temps->compression_strength && - !(temps->flags&SSF_NO_COMPRESSION)|| - f<0 && -f>temps->tensile_strength && - !(temps->flags&SSF_NO_TENSION)) - temps->flags|=SSF_INACTIVE; - temps=temps1; + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + tmps1=tmps->next; + f=tmps->f; + if (f>0 && f>tmps->compression_strength && + !(tmps->flags&SSF_NO_COMPRESSION)|| + f<0 && -f>tmps->tensile_strength && + !(tmps->flags&SSF_NO_TENSION)) + tmps->flags|=SSF_INACTIVE; + tmps=tmps1; } AdjustLoads(ode); - WinMgrSync; //CMathODE updated once per refresh. + Refresh; //CMathODE updated once per refresh. if (old_run!=run_button.state) { if (run_button.state) { if (!a->elapsed_t || !a->saved_ode) { @@ -231,7 +231,7 @@ U0 Init(SpanAnimateStruct *a) ode=SpanNew; run_button.state=0; - WinMgrSync(2); //Allow stop to reg in animate task. + Refresh(2); //Allow stop to reg in animate task. if (a->saved_ode) SpanLoad(ode,a->saved_ode); @@ -258,8 +258,8 @@ U0 SongTask(I64) U0 Span() { I64 msg_code,a1,a2; - MyMass *tempm1=NULL,*tempm2=NULL; - MySpring *temps; + MyMass *tmpm1=NULL,*tmpm2=NULL; + MySpring *tmps; CCtrl *bt_run,*bt_mode; U8 *src; CDC *dc=DCAlias; @@ -328,7 +328,7 @@ U0 Span() DCFill(dc); switch (msg_code) { case MSG_IP_L_DOWN: - cursor_mass=tempm1=tempm2=NULL; + cursor_mass=tmpm1=tmpm2=NULL; switch (mode_button.state) { case MD_MASS: PlaceMass(a1,a2); @@ -336,21 +336,21 @@ U0 Span() case MD_CONCRETE: case MD_STEEL: case MD_WIRE: - tempm1=MassFind(ode,a1,a2); + tmpm1=MassFind(ode,a1,a2); break; case MD_MOVE: if (run_button.state) cursor_mass=MassFind(ode,a1,a2); else - if (tempm1=MassFind(ode,a1,a2)) - MoveMass(tempm1,a1,a2); + if (tmpm1=MassFind(ode,a1,a2)) + MoveMass(tmpm1,a1,a2); break; case MD_DELETE: - MassOrSpringFind(ode,&tempm1,&temps,a1,a2); - if (tempm1) - DelMass(tempm1); - if (temps) - DelSpring(temps); + MassOrSpringFind(ode,&tmpm1,&tmps,a1,a2); + if (tmpm1) + DelMass(tmpm1); + if (tmps) + DelSpring(tmps); break; } break; @@ -359,27 +359,27 @@ U0 Span() case MD_CONCRETE: case MD_STEEL: case MD_WIRE: - if (tempm1 && (tempm2=MassFind(ode,a1,a2)) && tempm1!=tempm2) - PlaceSpring(tempm1,tempm2); + if (tmpm1 && (tmpm2=MassFind(ode,a1,a2)) && tmpm1!=tmpm2) + PlaceSpring(tmpm1,tmpm2); break; case MD_MOVE: - if (!run_button.state && tempm1) - MoveMass(tempm1,a1,a2); + if (!run_button.state && tmpm1) + MoveMass(tmpm1,a1,a2); break; } - cursor_mass=tempm1=tempm2=NULL; + cursor_mass=tmpm1=tmpm2=NULL; break; case MSG_IP_MOVE: switch (mode_button.state) { case MD_MOVE: - if (!run_button.state && tempm1) - MoveMass(tempm1,a1,a2); + if (!run_button.state && tmpm1) + MoveMass(tmpm1,a1,a2); break; case MD_CONCRETE: case MD_STEEL: case MD_WIRE: - if (tempm1) { - DrawSpring(dc,tempm1,a1,a2); + if (tmpm1) { + DrawSpring(dc,tmpm1,a1,a2); } break; } @@ -388,7 +388,7 @@ U0 Span() mode_button.state++; if (mode_button.state>=MD_NUM_MODES) mode_button.state=0; - cursor_mass=tempm1=tempm2=NULL; + cursor_mass=tmpm1=tmpm2=NULL; break; case MSG_KEY_DOWN: switch (a1) { diff --git a/Apps/Span/SpanNew.HC b/Apps/Span/SpanNew.HC index e76ff95..4d4d11e 100644 --- a/Apps/Span/SpanNew.HC +++ b/Apps/Span/SpanNew.HC @@ -26,8 +26,8 @@ U8 *SpanSave(CMathODE *ode,I64 *_size=NULL) { I64 cnt; U8 *res,*ptr; - MyMass *tempm; - MySpring *temps; + MyMass *tmpm; + MySpring *tmps; SpanHeader h; ODERenum(ode); @@ -47,18 +47,18 @@ U8 *SpanSave(CMathODE *ode,I64 *_size=NULL) MemCpy(ptr,&h,sizeof(SpanHeader)); ptr+=sizeof(SpanHeader); - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - MemCpy(ptr,&tempm->start,M_SIZE); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + MemCpy(ptr,&tmpm->start,M_SIZE); ptr+=M_SIZE; - tempm=tempm->next; + tmpm=tmpm->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - MemCpy(ptr,&temps->start,S_SIZE); + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + MemCpy(ptr,&tmps->start,S_SIZE); ptr+=S_SIZE; - temps=temps->next; + tmps=tmps->next; } if (_size) *_size=cnt; return res; @@ -71,7 +71,7 @@ Bool SpanWrite(CMathODE *ode) Bool res=FALSE,old_silent=Silent; MkDir("~/Span"); Silent(old_silent); - if (name=PopUpFileName("~/Span/Game.DAT")) { + if (name=PopUpFileName("~/Span/Game.DATA")) { if (buf=SpanSave(ode,&size)) { FileWrite(name,buf,size); Free(buf); @@ -85,8 +85,8 @@ Bool SpanWrite(CMathODE *ode) U0 SpanLoad(CMathODE *ode,U8 *src) { I64 i; - MyMass *tempm; - MySpring *temps; + MyMass *tmpm; + MySpring *tmps; SpanHeader h; if (!src) return; @@ -95,19 +95,19 @@ U0 SpanLoad(CMathODE *ode,U8 *src) src+=sizeof(SpanHeader); for (i=0;istart,src,M_SIZE); + tmpm=CAlloc(sizeof(MyMass)); + MemCpy(&tmpm->start,src,M_SIZE); src+=M_SIZE; - QueIns(tempm,ode->last_mass); + QueIns(tmpm,ode->last_mass); } for (i=0;istart,src,S_SIZE); + tmps=CAlloc(sizeof(MySpring)); + MemCpy(&tmps->start,src,S_SIZE); src+=S_SIZE; - QueIns(temps,ode->last_spring); - temps->end1=MassFindNum(ode,temps->end1_num); - temps->end2=MassFindNum(ode,temps->end2_num); + QueIns(tmps,ode->last_spring); + tmps->end1=MassFindNum(ode,tmps->end1_num); + tmps->end2=MassFindNum(ode,tmps->end2_num); } } diff --git a/Apps/Strut/Strut.HC b/Apps/Strut/Strut.HC index 9c4fd13..1c6e964 100644 --- a/Apps/Strut/Strut.HC +++ b/Apps/Strut/Strut.HC @@ -80,13 +80,13 @@ U0 DrawIt(CTask *,CDC *dc) { I64 i; F64 é,d,x1,y1,x2,y2; - MyMass *tempm; - MySpring *temps; + MyMass *tmpm; + MySpring *tmps; - tempm=ode->next_mass; - if (tempm!=&ode->next_mass) { - task->scroll_x=-tempm->x*zoom+task->pix_width >>1; - task->scroll_y=-tempm->y*zoom+task->pix_height>>1; + tmpm=ode->next_mass; + if (tmpm!=&ode->next_mass) { + task->scroll_x=-tmpm->x*zoom+task->pix_width >>1; + task->scroll_y=-tmpm->y*zoom+task->pix_height>>1; } dc->flags|=DCF_TRANSFORMATION; @@ -117,34 +117,34 @@ U0 DrawIt(CTask *,CDC *dc) } } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - if (temps->type==EMD_SPRING) { + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + if (tmps->type==EMD_SPRING) { dc->color=LTCYAN; - GrLine3(dc,temps->end1->x,temps->end1->y,0, - temps->end2->x,temps->end2->y,0); - } else if (temps->type==EMD_CONNECTOR) { + GrLine3(dc,tmps->end1->x,tmps->end1->y,0, + tmps->end2->x,tmps->end2->y,0); + } else if (tmps->type==EMD_CONNECTOR) { dc->color=CYAN; - GrLine3(dc,temps->end1->x,temps->end1->y,0, - temps->end2->x,temps->end2->y,0); + GrLine3(dc,tmps->end1->x,tmps->end1->y,0, + tmps->end2->x,tmps->end2->y,0); } - temps=temps->next; + tmps=tmps->next; } dc->color=LTGRAY; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - Sprite3(dc,tempm->x,tempm->y,0,tempm->img); - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + Sprite3(dc,tmpm->x,tmpm->y,0,tmpm->img); + tmpm=tmpm->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - x1=temps->end1->x; y1=temps->end1->y; - x2=temps->end2->x; y2=temps->end2->y; - if (temps->type==EMD_THRUSTER) { + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + x1=tmps->end1->x; y1=tmps->end1->y; + x2=tmps->end2->x; y2=tmps->end2->y; + if (tmps->type==EMD_THRUSTER) { é=Arg(x2-x1,y2-y1); - if (Bt(kbd.down_bitmap,action_scan_codes[temps->action_key-'0'])) { + if (Bt(kbd.down_bitmap,action_scan_codes[tmps->action_key-'0'])) { dc->flags|=DCF_SYMMETRY; DCSymmetry3Set(dc,x1,y1,256,x1,y1,0,x1-256*Cos(é),y1-256*Sin(é),0); for (i=0;i<8;i++) { @@ -167,15 +167,15 @@ U0 DrawIt(CTask *,CDC *dc) SpriteZ3B(dc,x1,y1,0,$IB,"<3>",BI=3$,é); if (zoom>0.5) { dc->color=YELLOW; - GrPutChar3(dc,(x1*7+x2)/8,(y1*7+y2)/8,0,temps->action_key); + GrPutChar3(dc,(x1*7+x2)/8,(y1*7+y2)/8,0,tmps->action_key); } - } else if (temps->type==EMD_CONNECTOR) { + } else if (tmps->type==EMD_CONNECTOR) { if (zoom>0.5) { dc->color=CYAN; - GrPutChar3(dc,(x1*7+x2)/8,(y1*7+y2)/8,0,temps->action_key); + GrPutChar3(dc,(x1*7+x2)/8,(y1*7+y2)/8,0,tmps->action_key); } } - temps=temps->next; + tmps=tmps->next; } } @@ -187,103 +187,103 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) //here. F64 d,dd; CD3 p; - MyMass *tempm1,*tempm2; - MySpring *temps; + MyMass *tmpm1,*tmpm2; + MySpring *tmps; - tempm1=ode->next_mass; - while (tempm1!=&ode->next_mass) { - tempm2=tempm1->next; - while (tempm2!=&ode->next_mass) { - D3Sub(&p,&tempm2->state->x,&tempm1->state->x); + tmpm1=ode->next_mass; + while (tmpm1!=&ode->next_mass) { + tmpm2=tmpm1->next; + while (tmpm2!=&ode->next_mass) { + D3Sub(&p,&tmpm2->state->x,&tmpm1->state->x); dd=D3NormSqr(&p); if (dd<=Sqr(2*RADIUS)) { d=Sqrt(dd)+0.0001; dd=10.0*Sqr(Sqr(Sqr(2*RADIUS)-dd)); D3MulEqu(&p,dd/d); - D3AddEqu(&tempm2->DstateDt->DxDt,&p); - D3SubEqu(&tempm1->DstateDt->DxDt,&p); + D3AddEqu(&tmpm2->DstateDt->DxDt,&p); + D3SubEqu(&tmpm1->DstateDt->DxDt,&p); } - tempm2=tempm2->next; + tmpm2=tmpm2->next; } - tempm1=tempm1->next; + tmpm1=tmpm1->next; } - temps=ode->next_spring; - while (temps!=&ode->next_spring) { - if (main_mode_button.state==MMD_PLAY && temps->type==EMD_THRUSTER && - Bt(kbd.down_bitmap,action_scan_codes[temps->action_key-'0'])) { - D3Sub(&p,&temps->end2->state->x,&temps->end1->state->x); + tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + if (main_mode_button.state==MMD_PLAY && tmps->type==EMD_THRUSTER && + Bt(kbd.down_bitmap,action_scan_codes[tmps->action_key-'0'])) { + D3Sub(&p,&tmps->end2->state->x,&tmps->end1->state->x); D3Unit(&p); D3MulEqu(&p,2000); - D3AddEqu(&temps->end1->DstateDt->DxDt,&p); + D3AddEqu(&tmps->end1->DstateDt->DxDt,&p); } - temps=temps->next; + tmps=tmps->next; } } MyMass *PlaceMass(I64 x, I64 y) { - MyMass *tempm=CAlloc(sizeof(MyMass)); - tempm->mass=1.0; - tempm->drag_profile_factor=100.0; - tempm->x=x; - tempm->y=y; - QueIns(tempm,ode->last_mass); - return tempm; + MyMass *tmpm=CAlloc(sizeof(MyMass)); + tmpm->mass=1.0; + tmpm->drag_profile_factor=100.0; + tmpm->x=x; + tmpm->y=y; + QueIns(tmpm,ode->last_mass); + return tmpm; } -MySpring *PlaceSpring(MyMass *tempm1,MyMass *tempm2,I64 type) +MySpring *PlaceSpring(MyMass *tmpm1,MyMass *tmpm2,I64 type) { - MySpring *temps=CAlloc(sizeof(MySpring)); - F64 d=D3Dist(&tempm1->x,&tempm2->x); - temps->end1=tempm1; - temps->end2=tempm2; - temps->rest_len=d; - temps->type=type; + MySpring *tmps=CAlloc(sizeof(MySpring)); + F64 d=D3Dist(&tmpm1->x,&tmpm2->x); + tmps->end1=tmpm1; + tmps->end2=tmpm2; + tmps->rest_len=d; + tmps->type=type; if (type==EMD_THRUSTER) - temps->const=0; + tmps->const=0; else - temps->const=2500000/Sqr(d); - temps->action_key=next_action_key; - QueIns(temps,ode->last_spring); - return temps; + tmps->const=2500000/Sqr(d); + tmps->action_key=next_action_key; + QueIns(tmps,ode->last_spring); + return tmps; } U0 CenterMasses() { CD3 p; - MyMass *tempm1,*tempm2; - tempm1=ode->next_mass; - if (tempm1!=&ode->next_mass) { - D3Copy(&p,&tempm1->x); - tempm2=ode->next_mass; - while (tempm2!=&ode->next_mass) { - D3SubEqu(&tempm2->x,&p); - tempm2=tempm2->next; + MyMass *tmpm1,*tmpm2; + tmpm1=ode->next_mass; + if (tmpm1!=&ode->next_mass) { + D3Copy(&p,&tmpm1->x); + tmpm2=ode->next_mass; + while (tmpm2!=&ode->next_mass) { + D3SubEqu(&tmpm2->x,&p); + tmpm2=tmpm2->next; } } } U0 NullSprings() { - MySpring *temps=ode->next_spring; - while (temps!=&ode->next_spring) { - temps->rest_len=D3Dist(&temps->end1->x,&temps->end2->x); - temps=temps->next; + MySpring *tmps=ode->next_spring; + while (tmps!=&ode->next_spring) { + tmps->rest_len=D3Dist(&tmps->end1->x,&tmps->end2->x); + tmps=tmps->next; } } U0 BreakConnectors() { - MySpring *temps=ode->next_spring,*temps1; - while (temps!=&ode->next_spring) { - temps1=temps->next; - if (temps->type==EMD_CONNECTOR && - Bt(kbd.down_bitmap,action_scan_codes[temps->action_key-'0'])) { - QueRem(temps); - Free(temps); + MySpring *tmps=ode->next_spring,*tmps1; + while (tmps!=&ode->next_spring) { + tmps1=tmps->next; + if (tmps->type==EMD_CONNECTOR && + Bt(kbd.down_bitmap,action_scan_codes[tmps->action_key-'0'])) { + QueRem(tmps); + Free(tmps); } - temps=temps1; + tmps=tmps1; } } @@ -396,7 +396,7 @@ U0 PlayShip() } break; } - WinMgrSync; + Refresh; } ps_done: //Don't goto out of try okay=TRUE; @@ -414,7 +414,7 @@ U0 EditShip() I64 a1,a2; F64 wx,wy; Bool okay; - MyMass *tempm1=NULL,*tempm2=NULL; + MyMass *tmpm1=NULL,*tmpm2=NULL; CCtrl *bt_edit_mode=CtrlButtonNew(0,5*FONT_HEIGHT+4,80,,EMD_NUM_MODES, Define("ST_EDIT_MODES"),edit_mode_colors,&edit_mode_button); ode->flags|=ODEF_PAUSED; @@ -460,20 +460,20 @@ U0 EditShip() switch (edit_mode_button.state) { case EMD_MASS: S2W(ip.pos.x,ip.pos.y,&wx,&wy); - tempm1=PlaceMass(wx,wy); - if (ode->next_mass==tempm1) - tempm1->img=$IB,"<1>",BI=1$; + tmpm1=PlaceMass(wx,wy); + if (ode->next_mass==tmpm1) + tmpm1->img=$IB,"<1>",BI=1$; else - tempm1->img=$IB,"<2>",BI=2$; - tempm1=NULL; + tmpm1->img=$IB,"<2>",BI=2$; + tmpm1=NULL; break; case EMD_SPRING: case EMD_CONNECTOR: case EMD_THRUSTER: case EMD_MOVE: S2W(ip.pos.x,ip.pos.y,&wx,&wy); - tempm1=MassFind(ode,wx,wy); - tempm2=NULL; + tmpm1=MassFind(ode,wx,wy); + tmpm2=NULL; break; } break; @@ -485,19 +485,19 @@ U0 EditShip() case EMD_CONNECTOR: case EMD_THRUSTER: S2W(ip.pos.x,ip.pos.y,&wx,&wy); - if (tempm1 && (tempm2=MassFind(ode,wx,wy)) && tempm1!=tempm2) - PlaceSpring(tempm1,tempm2,edit_mode_button.state); - tempm1=tempm2=NULL; + if (tmpm1 && (tmpm2=MassFind(ode,wx,wy)) && tmpm1!=tmpm2) + PlaceSpring(tmpm1,tmpm2,edit_mode_button.state); + tmpm1=tmpm2=NULL; break; case EMD_MOVE: S2W(ip.pos.x,ip.pos.y,&wx,&wy); - if (tempm1) { - tempm1->x=wx; - tempm1->y=wy; - tempm1->z=0; + if (tmpm1) { + tmpm1->x=wx; + tmpm1->y=wy; + tmpm1->z=0; NullSprings; } - tempm1=tempm2=NULL; + tmpm1=tmpm2=NULL; break; } break; @@ -505,10 +505,10 @@ U0 EditShip() switch (edit_mode_button.state) { case EMD_MOVE: S2W(ip.pos.x,ip.pos.y,&wx,&wy); - if (tempm1) { - tempm1->x=wx; - tempm1->y=wy; - tempm1->z=0; + if (tmpm1) { + tmpm1->x=wx; + tmpm1->y=wy; + tmpm1->z=0; NullSprings; } break; @@ -578,7 +578,7 @@ U0 EditShip() } break; } - WinMgrSync; + Refresh; } es_done: //Don't goto out of try okay=TRUE; diff --git a/Apps/TimeClock/TimeClk.HC b/Apps/TimeClock/TimeClk.HC index 64d71ab..70d89c1 100644 --- a/Apps/TimeClock/TimeClk.HC +++ b/Apps/TimeClock/TimeClk.HC @@ -1,4 +1,4 @@ -#define TIME_FILENAME "~/TimeClock/TimeFile.DAT.Z" +#define TIME_FILENAME "~/TimeClock/TimeFile.DATA.Z" #define TET_EOF 0 #define TET_PUNCH_IN 1 @@ -16,19 +16,19 @@ U0 TimeFileRead(TimeEntry *header) { U8 *buf,*ptr; I64 type; - TimeEntry *tempt; + TimeEntry *tmpt; buf=FileRead(TIME_FILENAME); if (!buf) buf=CAlloc(1); QueInit(header); ptr=buf; while (type=*ptr++) { - tempt=CAlloc(sizeof(TimeEntry)); - tempt->type=type; - tempt->datetime=*ptr(CDate *)++; - tempt->desc=StrNew(ptr); + tmpt=CAlloc(sizeof(TimeEntry)); + tmpt->type=type; + tmpt->datetime=*ptr(CDate *)++; + tmpt->desc=StrNew(ptr); ptr+=StrLen(ptr)+1; - QueIns(tempt,header->last); + QueIns(tmpt,header->last); } Free(buf); } @@ -36,24 +36,24 @@ U0 TimeFileRead(TimeEntry *header) U0 TimeFileWrite(TimeEntry *header) { U8 *buf,*ptr; - TimeEntry *tempt; + TimeEntry *tmpt; I64 size=1; //for EOF - tempt=header->next; - while (tempt!=header) { - size+=sizeof(U8)+sizeof(CDate)+StrLen(tempt->desc)+1; - tempt=tempt->next; + tmpt=header->next; + while (tmpt!=header) { + size+=sizeof(U8)+sizeof(CDate)+StrLen(tmpt->desc)+1; + tmpt=tmpt->next; } buf=MAlloc(size); ptr=buf; - tempt=header->next; - while (tempt!=header) { - *ptr++=tempt->type; - *ptr(CDate *)++=tempt->datetime; - StrCpy(ptr,tempt->desc); - ptr+=StrLen(tempt->desc)+1; - tempt=tempt->next; + tmpt=header->next; + while (tmpt!=header) { + *ptr++=tmpt->type; + *ptr(CDate *)++=tmpt->datetime; + StrCpy(ptr,tmpt->desc); + ptr+=StrLen(tmpt->desc)+1; + tmpt=tmpt->next; } *ptr=TET_EOF; FileWrite(TIME_FILENAME,buf,size); @@ -62,12 +62,12 @@ U0 TimeFileWrite(TimeEntry *header) U0 TimeEntriesDel(TimeEntry *header) { - TimeEntry *tempt=header->next,*tempt1; - while (tempt!=header) { - tempt1=tempt->next; - Free(tempt->desc); - Free(tempt); - tempt=tempt1; + TimeEntry *tmpt=header->next,*tmpt1; + while (tmpt!=header) { + tmpt1=tmpt->next; + Free(tmpt->desc); + Free(tmpt); + tmpt=tmpt1; } Free(header); } @@ -76,12 +76,12 @@ public Bool TimeRep(TimeEntry **_header=NULL) { Bool is_in=FALSE,first=TRUE; I64 week,cur_week=-1,week_total; - TimeEntry *tempt,*header=MAlloc(sizeof(TimeEntry)); + TimeEntry *tmpt,*header=MAlloc(sizeof(TimeEntry)); if (_header) *_header=header; TimeFileRead(header); - tempt=header->next; - while (tempt!=header) { - week=tempt->datetime.date/7; //TODO + tmpt=header->next; + while (tmpt!=header) { + week=tmpt->datetime.date/7; //TODO if (week!=cur_week) { if (!first) { if (is_in) @@ -92,19 +92,19 @@ public Bool TimeRep(TimeEntry **_header=NULL) cur_week=week; week_total=0; } - if (tempt->type==TET_PUNCH_IN) { + if (tmpt->type==TET_PUNCH_IN) { "$$RED$$IN "; if (!is_in) - week_total-=tempt->datetime; + week_total-=tmpt->datetime; is_in=TRUE; } else { "$$RED$$OUT"; if (is_in) - week_total+=tempt->datetime; + week_total+=tmpt->datetime; is_in=FALSE; } - " %D %T:$$FG$$\n%s\n",tempt->datetime,tempt->datetime,tempt->desc; - tempt=tempt->next; + " %D %T:$$FG$$\n%s\n",tmpt->datetime,tmpt->datetime,tmpt->desc; + tmpt=tmpt->next; } if (is_in) week_total+=Now; @@ -116,17 +116,17 @@ public Bool TimeRep(TimeEntry **_header=NULL) public U0 PunchOut() { - TimeEntry *tempt,*header; + TimeEntry *tmpt,*header; if (!TimeRep(&header)) "$$BK,1$$Already Punched-Out$$BK,0$$\n"; else { - tempt=MAlloc(sizeof(TimeEntry)); - tempt->type=TET_PUNCH_OUT; - tempt->datetime=Now; + tmpt=MAlloc(sizeof(TimeEntry)); + tmpt->type=TET_PUNCH_OUT; + tmpt->datetime=Now; "\nEnter Description.\nPress when done.\n"; - if (!(tempt->desc=GetStr(,,GSF_WITH_NEW_LINE))) - tempt->desc=CAlloc(1); - QueIns(tempt,header->last); + if (!(tmpt->desc=GetStr(,,GSF_WITH_NEW_LINE))) + tmpt->desc=CAlloc(1); + QueIns(tmpt,header->last); TimeFileWrite(header); } TimeEntriesDel(header); @@ -134,17 +134,17 @@ public U0 PunchOut() public U0 PunchIn() { - TimeEntry *tempt,*header; + TimeEntry *tmpt,*header; if (TimeRep(&header)) "$$BK,1$$Already Punched-In$$BK,0$$\n"; else { - tempt=MAlloc(sizeof(TimeEntry)); - tempt->type=TET_PUNCH_IN; - tempt->datetime=Now; + tmpt=MAlloc(sizeof(TimeEntry)); + tmpt->type=TET_PUNCH_IN; + tmpt->datetime=Now; "\nEnter Description.\nPress when done.\n"; - if (!(tempt->desc=GetStr(,,GSF_WITH_NEW_LINE))) - tempt->desc=CAlloc(1); - QueIns(tempt,header->last); + if (!(tmpt->desc=GetStr(,,GSF_WITH_NEW_LINE))) + tmpt->desc=CAlloc(1); + QueIns(tmpt,header->last); TimeFileWrite(header); } TimeEntriesDel(header); diff --git a/Apps/TimeOut/TimeOut.HC b/Apps/TimeOut/TimeOut.HC index 4d0e10b..8597270 100644 --- a/Apps/TimeOut/TimeOut.HC +++ b/Apps/TimeOut/TimeOut.HC @@ -172,35 +172,35 @@ U0 MPDrawMen(CDC *dc2) CDC *dc=DCAlias(dc2,task); I64 i,r[16],lo=Gs->num*MAX_MAN/mp_cnt,hi=(Gs->num+1)*MAX_MAN/mp_cnt, yy,phase,scroll_y=MAP_HEIGHT-100-100*(tS-t0); - Man *tempm; - U8 *temps,**_temps; + Man *tmpm; + U8 *tmps,**_tmps; F64 tt,ts=tS; for (i=lo;iy-scroll_y)&(MAP_HEIGHT-1); - if (-32<=yy<=task->pix_bottom+32 && !tempm->dead) { + tmpm=&m[i]; + yy=(tmpm->y-scroll_y)&(MAP_HEIGHT-1); + if (-32<=yy<=task->pix_bottom+32 && !tmpm->dead) { Mat4x4IdentEqu(r); - Mat4x4RotY(r,tempm->é+ã/2); + Mat4x4RotY(r,tmpm->é+ã/2); Mat4x4RotX(r,ã/6); Mat4x4Scale(r,0.3); - if (tempm->best_dd<(2*HACK_DIST)*(2*HACK_DIST)) {//It's neat so times 2. - if (tempm->friendly) - _temps=friendly_hacking_imgs; + if (tmpm->best_dd<(2*HACK_DIST)*(2*HACK_DIST)) {//It's neat so times 2. + if (tmpm->friendly) + _tmps=friendly_hacking_imgs; else - _temps=enemy_hacking_imgs; - tt=4*Wrap(tempm->phase+20*ts,0)/(2*ã); + _tmps=enemy_hacking_imgs; + tt=4*Wrap(tmpm->phase+20*ts,0)/(2*ã); } else { - if (tempm->friendly) - _temps=friendly_imgs; + if (tmpm->friendly) + _tmps=friendly_imgs; else - _temps=enemy_imgs; - tt=4*Wrap(tempm->phase+5*ts,0)/(2*ã); + _tmps=enemy_imgs; + tt=4*Wrap(tmpm->phase+5*ts,0)/(2*ã); } phase=tt; tt%=1.0; - temps=SpriteInterpolate(tt,_temps[phase&3],_temps[(phase+1)&3]); - SpriteMat3B(dc,tempm->x,yy,GR_Z_ALL,temps,r); - Free(temps); + tmps=SpriteInterpolate(tt,_tmps[phase&3],_tmps[(phase+1)&3]); + SpriteMat3B(dc,tmpm->x,yy,GR_Z_ALL,tmps,r); + Free(tmps); } } @@ -213,9 +213,9 @@ U0 DrawIt(CTask *task,CDC *dc) { I64 i,yy,scroll_y=MAP_HEIGHT-100-100*(tS-t0); F64 tt,ts=tS; - Man *tempm; - Bullet *tempb; - U8 *temps; + Man *tmpm; + Bullet *tmpb; + U8 *tmps; for (i=0;icolor=LTRED; - for (i=0,tempb=b;idead) - GrLine(dc,tempb->x>>32,tempb->y>>32, - (tempb->x+tempb->dx*BULLET_LEN)>>32, - (tempb->y+tempb->dy*BULLET_LEN)>>32); + for (i=0,tmpb=b;idead) + GrLine(dc,tmpb->x>>32,tmpb->y>>32, + (tmpb->x+tmpb->dx*BULLET_LEN)>>32, + (tmpb->y+tmpb->dy*BULLET_LEN)>>32); DCDepthBufAlloc(dc); mp_not_done_flags=1<color=LTRED; - for (i=0,tempb=b;idead) - GrLine(dc2,tempb->x>>32,tempb->y>>32, - (tempb->x+tempb->dx*BULLET_LEN)>>32, - (tempb->y+tempb->dy*BULLET_LEN)>>32); + for (i=0,tmpb=b;idead) + GrLine(dc2,tmpb->x>>32,tmpb->y>>32, + (tmpb->x+tmpb->dx*BULLET_LEN)>>32, + (tmpb->y+tmpb->dy*BULLET_LEN)>>32); dc2->color =ROP_COLLISION; dc2->bkcolor=BLACK; - for (i=0,tempm=m;idead) { - x=tempm->x; - y=(tempm->y-scroll_y)&(MAP_HEIGHT-1); + for (i=0,tmpm=m;idead) { + x=tmpm->x; + y=(tmpm->y-scroll_y)&(MAP_HEIGHT-1); if (0<=xcollision_cnt=0; GrRect(dc2,x-3,y-9,6,8); if (dc2->collision_cnt) { - tempm->dead=TRUE; - tempm->corpse_timeout=tS+30.0; - if (tempm->friendly) { + tmpm->dead=TRUE; + tmpm->corpse_timeout=tS+30.0; + if (tmpm->friendly) { friendly_fire++; friendly_left--; } else enemy_left--; if (!snd_timeout) { snd_timeout=tS+0.01; - if (tempm->friendly) + if (tmpm->friendly) Snd(200); else Snd(50); @@ -311,7 +311,7 @@ U0 CheckCollisions() U0 Init() { I64 i,xx,yy,scroll_y=MAP_HEIGHT-100; - Man *tempm; + Man *tmpm; snd_timeout=0; Snd(0); @@ -337,27 +337,27 @@ U0 Init() ls[2].img=landscape_imgs[LANDSCAPE_TYPES-1]; //castle MemSet(m,0,sizeof(m)); - for (i=0,tempm=m;ifriendly=TRUE; + tmpm->friendly=TRUE; if (!(i&7)) { xx=(Fs->pix_width-200)*RandU32/MAX_U32; yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; } } else { - tempm->friendly=FALSE; + tmpm->friendly=FALSE; if (!(i&31)) { xx=(Fs->pix_width-200)*RandU32/MAX_U32; yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; } } - tempm->dead=FALSE; - tempm->x=xx+64*RandI32/MAX_I32+100; - tempm->y=yy+64*RandU32/MAX_I32-64+100; - tempm->best_dd=MAX_I64; - tempm->é=0; - tempm->phase=2*ã*Rand; - tempm->corpse_timeout=0; + tmpm->dead=FALSE; + tmpm->x=xx+64*RandI32/MAX_I32+100; + tmpm->y=yy+64*RandU32/MAX_I32-64+100; + tmpm->best_dd=MAX_I64; + tmpm->é=0; + tmpm->phase=2*ã*Rand; + tmpm->corpse_timeout=0; } for (i=0;ix=j<<32; + tmpb->x=j<<32; j=y-24.0*Cos(é); - tempb->y=j<<32; + tmpb->y=j<<32; - tempb->dx2=(BULLET_SPEED*Sin(é)+dx)*0x100000000; - tempb->dy2=-BULLET_SPEED*Cos(é)*0x100000000; - a=Arg(tempb->dx2,tempb->dy2); - tempb->dx=Cos(a)*0x100000000; - tempb->dy=Sin(a)*0x100000000; + tmpb->dx2=(BULLET_SPEED*Sin(é)+dx)*0x100000000; + tmpb->dy2=-BULLET_SPEED*Cos(é)*0x100000000; + a=Arg(tmpb->dx2,tmpb->dy2); + tmpb->dx=Cos(a)*0x100000000; + tmpb->dy=Sin(a)*0x100000000; bullets_fired++; - tempb->dead=FALSE; + tmpb->dead=FALSE; if (!snd_timeout) { snd_timeout=tS+0.0005; Snd(1000); diff --git a/Apps/ToTheFront/AIs/Human.HC b/Apps/ToTheFront/AIs/Human.HC index 138f13a..c48f89a 100644 --- a/Apps/ToTheFront/AIs/Human.HC +++ b/Apps/ToTheFront/AIs/Human.HC @@ -1,158 +1,164 @@ -U0 TanksPlot() +U0 PlayerIndirect() { - Unit *tempu=NULL; - I64 msg_code,a1,a2; + Unit *tmpu=NULL; + I64 i,remaining=0,msg_code,a1,a2; F64 target_x,target_y; - SetViewPlayer(cur_player); - while (TRUE) { + ViewPlayerSet(cur_player); + for (i=0;ilife>0 && tmpu->indirect_fire) + remaining++; + } + while (remaining) { if (!alive_cnt[0] || !alive_cnt[1]) throw('GameOver',TRUE); - msg_code=GetMsg(&a1,&a2,1<player==enemy_player || tempu->fired || - !tempu->indirect_fire) - tempu=NULL; + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); + if (tmpu=UnitFind(cursor_row,cursor_col)) { + if (tmpu->player==enemy_player || tmpu->fired || + !tmpu->indirect_fire) + tmpu=NULL; else { - RowCol2XY(&fire_radius_x,&fire_radius_y,tempu->row,tempu->col); - fire_radius=tempu->range*2*HEX_RADIUS; + RowCol2XY(&fire_radius_x,&fire_radius_y,tmpu->row,tmpu->col); + fire_radius=tmpu->range*2*HEX_RADIUS; } } } break; case MSG_IP_L_UP: - if (CursorInWindow(Fs,a1,a2)) { - UpdateCursor(Fs,a1,a2); + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); RowCol2XY(&target_x,&target_y,cursor_row,cursor_col); - if (!tempu) + if (!tmpu) Beep; else { if (Sqrt(Sqr(fire_radius_x-target_x)+Sqr(fire_radius_y-target_y))> fire_radius) Beep; - else - PlotShot(tempu,cursor_row,cursor_col); + else { + IndirectAdd(tmpu,cursor_row,cursor_col); + remaining--; + } } } - tempu=NULL; + tmpu=NULL; fire_radius=0; break; case MSG_IP_R_UP: - if (CursorInWindow(Fs,a1,a2)) + if (CursorInWin(Fs,a1,a2)) throw('PhaseOvr',TRUE); break; } } + throw('PhaseOvr',TRUE); } -U0 TanksMove() +U0 PlayerMove() { - Unit *tempu=NULL,*target; + Unit *tmpu=NULL; I64 msg_code,a1,a2; - SetViewPlayer(cur_player); + ViewPlayerSet(cur_player); while (TRUE) { if (!alive_cnt[0] || !alive_cnt[1]) throw('GameOver',TRUE); - msg_code=GetMsg(&a1,&a2,1<player==enemy_player || !tempu->remaining_movement) - tempu=NULL; + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); + if (tmpu=UnitFind(cursor_row,cursor_col)) { + if (tmpu->player==enemy_player || !tmpu->remaining_movement) + tmpu=NULL; } } break; case MSG_IP_L_UP: - if (CursorInWindow(Fs,a1,a2)) { - UpdateCursor(Fs,a1,a2); - target=FindUnit(cursor_row,cursor_col); - if (!tempu) + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); + if (!tmpu) Beep; else { - if (target) - Beep; - else - MoveUnit(tempu,a1+Fs->horz_scroll.pos, - a2+Fs->vert_scroll.pos); + UnitMove(tmpu,a1,a2); break; } } - tempu=NULL; + tmpu=NULL; break; case MSG_IP_R_UP: - if (CursorInWindow(Fs,a1,a2)) + if (CursorInWin(Fs,a1,a2)) throw('PhaseOvr',TRUE); break; } } } -U0 TanksFire() +U0 PlayerDirect() { - Unit *tempu=NULL,*target; + Unit *tmpu=NULL,*target; I64 msg_code,a1,a2; - SetViewPlayer(cur_player); + ViewPlayerSet(cur_player); while (TRUE) { if (!alive_cnt[0] || !alive_cnt[1]) throw('GameOver',TRUE); - msg_code=GetMsg(&a1,&a2,1<player==enemy_player || tempu->fired || - tempu->indirect_fire) - tempu=NULL; + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); + if (tmpu=UnitFind(cursor_row,cursor_col)) { + if (tmpu->player==enemy_player || tmpu->fired || + tmpu->indirect_fire) + tmpu=NULL; else { - RVSetUp(cur_player); - RowCol2XY(&fire_radius_x,&fire_radius_y,tempu->row,tempu->col); - fire_radius=tempu->range*2*HEX_RADIUS; - RecalcVisible(RV_ONE_FRIENDLY_UNIT,tempu); + VRSetUp(cur_player); + RowCol2XY(&fire_radius_x,&fire_radius_y,tmpu->row,tmpu->col); + fire_radius=tmpu->range*2*HEX_RADIUS; + VisRecalc(VR_ONE_FRIENDLY_UNIT,tmpu); } } } break; case MSG_IP_L_UP: - if (CursorInWindow(Fs,a1,a2)) { - UpdateCursor(Fs,a1,a2); - target=FindUnit(cursor_row,cursor_col); - if (!tempu) + if (CursorInWin(Fs,a1,a2)) { + a1-=x0; a2-=y0; + CursorUpdate(Fs,a1,a2); + target=UnitFind(cursor_row,cursor_col); + if (!tmpu) Beep; else { if (!target || target->player!=enemy_player || - !Bt(&target->visible,0)) + !Bt(&target->vis,0)) Beep; else - FireShot(tempu,target); - RecalcVisible(RV_UPDATE_FRIENDLY_UNIT,tempu); + UnitDirectFire(tmpu,target); + VisRecalc(VR_UPDATE_FRIENDLY_UNIT,tmpu); } } - tempu=NULL; + tmpu=NULL; fire_radius=0; break; case MSG_IP_R_UP: - if (CursorInWindow(Fs,a1,a2)) + if (CursorInWin(Fs,a1,a2)) throw('PhaseOvr',TRUE); break; } diff --git a/Apps/ToTheFront/AIs/SimpleAI.HC b/Apps/ToTheFront/AIs/SimpleAI.HC index 7ce490c..c0aa2e4 100644 --- a/Apps/ToTheFront/AIs/SimpleAI.HC +++ b/Apps/ToTheFront/AIs/SimpleAI.HC @@ -1,4 +1,4 @@ -Unit *FindNearestUnit(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1) +Unit *UnitNearestFind(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1) { I64 i; F64 dd,best_dd=MAX_F64,x1,y1,x2,y2; @@ -23,36 +23,36 @@ Unit *FindNearestUnit(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1) return best; } -U0 TanksPlot() +U0 PlayerIndirect() { - Unit *target,*tempu; + Unit *target,*tmpu; I64 i; for (i=0;ilife>0 && tempu->indirect_fire && - (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,TRUE, - tempu->range*2*HEX_RADIUS))) - PlotShot(tempu,target->row,target->col); + UserChk; + tmpu=&units[cur_player][i]; + if (tmpu->life>0 && tmpu->indirect_fire && + (target=UnitNearestFind(tmpu->row,tmpu->col,enemy_player,TRUE, + tmpu->range*2*HEX_RADIUS))) + IndirectAdd(tmpu,target->row,target->col); } throw('PhaseOvr',TRUE); } -U0 TanksMove() +U0 PlayerMove() { - Unit *target,*tempu; + Unit *target,*tmpu; I64 i; F64 x,y; for (i=0;ilife>0) { + UserChk; + tmpu=&units[cur_player][i]; + if (tmpu->life>0) { //Cheats because it violates Line-of-Sight - if (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,FALSE)) { + if (target=UnitNearestFind(tmpu->row,tmpu->col,enemy_player,FALSE)) { RowCol2XY(&x,&y,target->row,target->col); - if (!MoveUnit(tempu,x,y)) { - RowCol2XY(&x,&y,tempu->row,tempu->col); - MoveUnit(tempu,x+RandI16,y+RandI16); + if (!UnitMove(tmpu,x,y)) { + RowCol2XY(&x,&y,tmpu->row,tmpu->col); + UnitMove(tmpu,x+RandI16,y+RandI16); } } } @@ -60,18 +60,18 @@ U0 TanksMove() throw('PhaseOvr',TRUE); } -U0 TanksFire() +U0 PlayerDirect() { - Unit *target,*tempu; + Unit *target,*tmpu; I64 i; for (i=0;ilife>0 && !tempu->indirect_fire && - (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,TRUE, - tempu->range*2*HEX_RADIUS))) { - FireShot(tempu,target); - Sleep(250*ANIMATION_DELAY); + UserChk; + tmpu=&units[cur_player][i]; + if (tmpu->life>0 && !tmpu->indirect_fire && + (target=UnitNearestFind(tmpu->row,tmpu->col,enemy_player,TRUE, + tmpu->range*2*HEX_RADIUS))) { + UnitDirectFire(tmpu,target); + Sleep(250*animation_delay); } } throw('PhaseOvr',TRUE); diff --git a/Apps/ToTheFront/Load.HC b/Apps/ToTheFront/Load.HC index 53aec1b..82ba865 100644 --- a/Apps/ToTheFront/Load.HC +++ b/Apps/ToTheFront/Load.HC @@ -1,6 +1,13 @@ #help_index "Games" Cd(__DIR__);; +#include "TTFGlbls" +#include "TTFLib" +#include "TTFInit" +#include "TTFVis" +#include "TTFFire" +#include "TTFMove" +#include "TTFDraw" #include "ToTheFront" #help_index "" diff --git a/Apps/ToTheFront/TTFDraw.HC b/Apps/ToTheFront/TTFDraw.HC new file mode 100644 index 0000000..72f9f9b Binary files /dev/null and b/Apps/ToTheFront/TTFDraw.HC differ diff --git a/Apps/ToTheFront/TTFFire.HC b/Apps/ToTheFront/TTFFire.HC new file mode 100644 index 0000000..428b354 --- /dev/null +++ b/Apps/ToTheFront/TTFFire.HC @@ -0,0 +1,278 @@ +U0 AttackHeader(Unit *tmpu,U8 *st,Unit *target) +{ + I64 i=9+StrLen(st); + if (target) { + i+=9; + if (target->armor) + i+=8; + else + i+=10; + } + '\n\n'; + "$$BLACK$$%h*c$$FG$$\n",i,'-'; + if (tmpu->player) + "$$PURPLE$$Player 2$$FG$$ "; + else + "$$CYAN$$Player 1$$FG$$ "; + "%s",st; + if (target) { + if (target->player) + " $$PURPLE$$Player 2"; + else + " $$CYAN$$Player 1"; + if (target->armor) + " Armored"; + else + " Unarmored"; + '$$FG$$'; + } + '\n'; + "$$BLACK$$%h*c$$FG$$\n",i,'-'; +} + +F64 HitDamage(Unit *tmpu,Unit *target,I64 facing=1,F64 range_factor=0) +{ + F64 d,res=200.0*Rand; + "\nRoll Out of 200\t\t:%6.2f Damage\n",res; + if (target->armor) { + d=target->armor/100.0*(5-facing)/5.0; + if (d>=0) { + "Armor Attack\t\t:%6.2f\n",ToF64(tmpu->armored_attack); + res*=(tmpu->armored_attack/100.0)/d; + } else + res=0; + "Armor(%z) Defense\t:%6.2f\n",facing, + "Front\0FrontSide\0RearSide\0Rear\0",100*d; + } else { + d=1.0-range_factor; + if (d>0) { + "Unarmored Attack\t:%6.2f\n",ToF64(tmpu->unarmored_attack); + "Range Adjust\t\t:%6.2f%%\n",100*d; + res*=(tmpu->unarmored_attack/100.0)*d; + } else + res=0; + } + "Attack/Defense Adjusted\t:%6.2f Damage\n",res; + return Round(res); +} + +Bool DamageDo(Unit *target,F64 damage) +{ + if (damage>0) { + if (target->armor) + "Armor Hit Score %6.2f\t:",damage; + else + "%3d Life - %3f Damage\t=",target->life,damage; + if (damage>=target->life) { + "$$RED$$Killed$$FG$$\n"; + Noise(1000*animation_delay,1000,4000); + Sleep(1000*animation_delay); + target->life=0; + VisRecalc(VR_FRIENDLY_UNIT_DIED,target); + alive_cnt[target->player]--; + return TRUE; + } else { + if (target->armor) { + if (damage>0.6*target->life) { + target->movement=0; + "$$RED$$Immobilized$$FG$$\n"; + } else + "$$GREEN$$No Penetration$$FG$$\n"; + } else { + target->life-=damage; + "$$RED$$%6.2f Life$$FG$$\n",ToF64(target->life); + } + return FALSE; + } + } else + return FALSE; +} + +U0 IndirectAdd(Unit *tmpu,I64 row,I64 col) +{ + IndirectOrders *tmpi; + if (tmpu->life<=0 || tmpu->range<=0) + return; + tmpu->fired=TRUE; + tmpi=CAlloc(sizeof(IndirectOrders)); + tmpi->attacker=tmpu; + tmpi->row=row; + tmpi->col=col; + QueIns(tmpi,indirect_head.last); +} + +Bool BulletPlot(U0,I64 x,I64 y,I64) +{ + fire_x=x; fire_y=y; + firing=TRUE; + Sleep(3*animation_delay); + return TRUE; +} + +U0 UnitDirectFire(Unit *tmpu,Unit *target) +{ + I64 r,c,facing, + t1=terrain[tmpu->row][tmpu->col],t2=terrain[target->row][target->col]; + F64 x1,y1,x2,y2,d,a,range_factor; + if (tmpu->life<=0 || target->life<=0 || tmpu->range<=0) + return; + AttackHeader(tmpu,"DirectFire",target); + RowCol2XY(&x1,&y1,tmpu->row,tmpu->col); + RowCol2XY(&x2,&y2,target->row,target->col); + d=100*Rand; + "+%5.2f Roll\n",d; + d+=tmpu->accuracy; + "+%2d.00 Accuracy\n",tmpu->accuracy; + + range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tmpu->range*2*DSIN); + "-%5.2f%% of Range\n",100*range_factor; + d-=100*range_factor; + if (t2==TREES) { + "-30.00 Target in Trees Penalty\n"; + d-=30; + } + if (t1==MOUNTAINS && t2!=MOUNTAINS) { + "+30.00 High Ground Bonus\n"; + d+=30; + } + "_______\n"; + target_unit=target; + if (d>=0) { + "+%5.2f Hit\n",d; + target_hit=TRUE; + Noise(500*animation_delay,100,150); + Sleep(500*animation_delay); + Line(NULL,x1,y1,0,x2,y2,0,&BulletPlot); + } else { + "-%5.2f Miss\n",-d; + target_hit=FALSE; + Noise(1000*animation_delay,750,1000); + Sleep(1000*animation_delay); + a=ã*2*Rand; + d=(0.5-d/100)*HEX_SIDE; + Line(NULL,x1,y1,0,x2+d*Cos(a),y2+d*Sin(a),0,&BulletPlot); + } + firing=FALSE; + tmpu->fired=TRUE; + if (target_hit) { + r=target->row;c=target->col; + if ((facing=HexMoveOne(&r,&c,x1,y1))>=0) + facing=FacingChg(facing,target->facing); + else + facing=0; + DamageDo(target,HitDamage(tmpu,target,facing,range_factor)); + } + while (snd.freq) //see $LK,"Snd",A="MN:Snd"$() + Yield; + target_unit=NULL; +} + +Bool HexOccupy(Bool overrun,Unit *tmpu,Unit *target) +{ + I64 t2=terrain[target->row][target->col]; + F64 damage; + if (tmpu->life<=0 || target->life<=0) + return FALSE; + if (overrun) + AttackHeader(tmpu,"OverRun",target); + else + AttackHeader(tmpu,"CloseAssault",target); + Noise(500*animation_delay,100,150); + Sleep(500*animation_delay); + tmpu->fired=TRUE; + target->fired=TRUE; + damage=HitDamage(tmpu,target); + if (overrun) { + damage*=2.0; + "x2 OverRun Bonus\t=%6.2f Damage\n",damage; + if (t2!=PLAINS) { + damage/=2.0; + "/2 Terrain Penalty\t=%6.2f Damage\n",damage; + } + } else { + damage*=3.0; + "x3 CloseAssault Bonus\t=%6.2f Damage\n",damage; + } + if (DamageDo(target,Round(damage))) { + "$$RED$$Success$$FG$$\n"; + while (snd.freq) //see $LK,"Snd",A="MN:Snd"$() + Yield; + return TRUE; + } else { + tmpu->life=0; + VisRecalc(VR_FRIENDLY_UNIT_DIED,tmpu); + alive_cnt[tmpu->player]--; + "$$RED$$Failure$$FG$$\n"; + while (snd.freq) //see $LK,"Snd",A="MN:Snd"$() + Yield; + return FALSE; + } +} + +U0 IndirectResolveAll() +{ + I64 i,r,c; + F64 x1,y1,x2,y2,d,range_factor; + Unit *tmpu,*target; + IndirectOrders *tmpi=indirect_head.next,*tmpi1; + while (tmpi!=*indirect_head) { + tmpi1=tmpi->next; + tmpu=tmpi->attacker; + AttackHeader(tmpu,"IndirectFire",NULL); + RowCol2XY(&x1,&y1,tmpu->row,tmpu->col); + RowCol2XY(&x2,&y2,tmpi->row,tmpi->col); + d=100*Rand; + "+%5.2f Roll\n",d; + d+=tmpu->accuracy; + "+%2d.00 Accuracy\n",tmpu->accuracy; + range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tmpu->range*2*DSIN); + "-%5.2f%% of Range\n",100*range_factor; + d-=100*range_factor; + '_______\n'; + + + if (d>=0) { + "+%5.2f Hit\n",d; + Noise(500*animation_delay,100,150); + Sleep(500*animation_delay); + } else { + "-%5.2f Miss\n",-d; + Noise(1000*animation_delay,750,1000); + Sleep(1000*animation_delay); + i=RandU16%6; + if (tmpi->row&1) + tmpi->col+=col_offsets_odd[i]; + else + tmpi->col+=col_offsets_even[i]; + tmpi->row+=row_offsets[i]; + RowCol2XY(&x2,&y2,tmpi->row,tmpi->col); + } + + Line(NULL,x1,y1,0,x2,y2,0,&BulletPlot); + firing=FALSE; + tmpu->fired=TRUE; + indirect_row=tmpi->row; + indirect_col=tmpi->col; + indirect_explosion=TRUE; + for (i=0;i<7;i++) { + if (tmpi->row&1) + c=tmpi->col+col_offsets_odd[i]; + else + c=tmpi->col+col_offsets_even[i]; + r=tmpi->row+row_offsets[i]; + if (0<=r>3]; + +#define PHASE_START 0 +#define PHASE_INDIRECT 0 +#define PHASE_INDIRECT0 0 +#define PHASE_INDIRECT1 1 +#define PHASE_MOVE 2 +#define PHASE_MOVE0 2 +#define PHASE_MOVE1 3 +#define PHASE_DIRECT 4 +#define PHASE_DIRECT0 4 +#define PHASE_DIRECT1 5 +#define PHASE_END 6 + +I64 phase,cur_player,enemy_player,view_player,turn, + cursor_row,cursor_col,alive_cnt[2], + player_indirect[2],player_move[2],player_direct[2]; +F64 animation_delay=0.5; + +Bool moving=FALSE; +I64 move_x,move_y; +F64 move_facing; +Unit *moving_unit; +extern I64 HexMoveOne(I64 *_row,I64 *_col,F64 x,F64 y); + +class IndirectOrders +{ + IndirectOrders *next,*last; + Unit *attacker; + I64 row,col; +} indirect_head; + +Bool firing=FALSE; +I64 fire_x,fire_y; +Unit *target_unit; +Bool target_hit; + +Bool indirect_explosion=FALSE; +I64 indirect_row,indirect_col; + +I64 row_offsets[7]={-1,-2,-1,1,2,1,0}; +I64 col_offsets_even[7]={-1, 0, 0,0,0,-1,0}; +I64 col_offsets_odd [7]={ 0, 0, 1,1,0, 0,0}; diff --git a/Apps/ToTheFront/TTFInit.HC b/Apps/ToTheFront/TTFInit.HC new file mode 100644 index 0000000..d8913e6 --- /dev/null +++ b/Apps/ToTheFront/TTFInit.HC @@ -0,0 +1,436 @@ +/*I got tricky by not defining a color +right away in these $LK,"CSprite",A="MN:CSprite"$s so they can +work for both players by setting dc->color +before drawing them. I actually made these +graphics by defining a color in the +menu, drawing the unit and deleting the color. + +I had to leave a gap between the tank tread +and body because of how it is rendered when rotated. +*/ + +$SP,"<1>",BI=1$ + +$SP,"<2>",BI=2$ + +//This is an infantry. + +$SP,"<3>",BI=3$ + +$SP,"<4>",BI=4$ + + +U0 DrawHexes() +{ + F64 dx=2*HEX_SIDE+2*DCOS,dy=2*DSIN, + x,y,x1,y1,x2,y2; + I64 i,j; + map_dc->color=WHITE; + GrRect(map_dc,0,0,map_dc->width,map_dc->height); + map_dc->color=BLACK; + y=0; + for (j=0;jcolor=terrain[j][i]; + RowCol2XY(&x,&y,j,i); + GrFloodFill(map_dc,x,y); + } +} + +U0 DrawRivers() +{ + I64 i,j,k,r,c; + F64 x1,y1,x2,y2; + for (j=0;jcolor=LTBLUE; + map_dc->pen_width=4; + GrLine3(map_dc,x1,y1,0,x2,y2,0); + map_dc->color=BLUE; + map_dc->pen_width=2; + GrLine3(map_dc,x1,y1,0,x2,y2,0); + } + } + } + } +} + +U0 DrawRoads() +{ + I64 i,j,k,r,c; + F64 x1,y1,x2,y2; + map_dc->color=RED; + map_dc->pen_width=3; + for (j=0;jcolor=BLACK; + for (j=0;jplayer=j; + tmpu->num=i; + tmpu->life=100; + tmpu->facing=RandU16%6; + if (!j) { + if (i>=MAX_UNITS/2) { + if (i>=15*MAX_UNITS/16) + type=UT_ARTILLERY; + else + type=UT_INFANTRY; + } else { + if (i>=MAX_UNITS/4) + type=UT_MD_TANK; + else + type=UT_LT_TANK; + } + } else { + if (i>=MAX_UNITS/2) { + if (i>=15*MAX_UNITS/16) + type=UT_ARTILLERY; + else + type=UT_INFANTRY; + } else { + if (i>=MAX_UNITS/4) + type=UT_MD_TANK; + else + type=UT_LT_TANK; + } + } + tmpu->type=type; + switch (type) { + case UT_INFANTRY: + tmpu->infantry=TRUE; + tmpu->indirect_fire=FALSE; + tmpu->armor =0; + tmpu->armored_attack =15; + tmpu->unarmored_attack=180; + tmpu->accuracy=45; + tmpu->range =5; + tmpu->movement=4; + tmpu->img =$IB,"<1>",BI=1$; + break; + case UT_ARTILLERY: + tmpu->infantry=TRUE; + tmpu->indirect_fire=TRUE; + tmpu->armor =0; + tmpu->armored_attack =60; + tmpu->unarmored_attack=180; + tmpu->accuracy=25; + tmpu->range =20; + tmpu->movement=2; + tmpu->img =$IB,"<2>",BI=2$; + break; + case UT_LT_TANK: + tmpu->infantry=FALSE; + tmpu->indirect_fire=FALSE; + tmpu->armor =30; + tmpu->armored_attack =40; + tmpu->unarmored_attack=60; + tmpu->accuracy=25; + tmpu->range =8; + tmpu->movement=24; + tmpu->img =$IB,"<3>",BI=3$; + break; + case UT_MD_TANK: + tmpu->infantry=FALSE; + tmpu->indirect_fire=FALSE; + tmpu->armor =60; + tmpu->armored_attack =60; + tmpu->unarmored_attack=80; + tmpu->accuracy=25; + tmpu->range =12; + tmpu->movement=16; + tmpu->img =$IB,"<4>",BI=4$; + break; + } + do { + row=RandU32%map_rows; + col=RandU32%(map_cols/3); + if (j) + col+=2*map_cols/3; + } while (UnitFind(row,col)); + tmpu->row=row; + tmpu->col=col; + LBts(&tmpu->vis[cur_player],0); + } +} + +U0 ViewPlayerSet(I8 p) +{ + CMenuEntry *tmpse; + view_player=p; + if (tmpse=MenuEntryFind(Fs->cur_menu,"View/Player1")) + tmpse->checked= view_player==0; + if (tmpse=MenuEntryFind(Fs->cur_menu,"View/Player2")) + tmpse->checked= view_player==1; +} + +U0 Init() +{ + DocClear; + "GameSeed(0x%X)\n",Seed(PopUpGetI64("GameSeed(0x%X):",Seed)); + moving_unit=NULL; + InitMap; + ViewPlayerSet(cur_player=0); + enemy_player=1; + if (map_width>1; + y0=(MAP_HEIGHT-map_height)>>1+FONT_HEIGHT; + } else { + x0=0; + y0=FONT_HEIGHT; + } + InitUnits; + QueInit(&indirect_head); + turn=0; + fire_radius=0; + show_vis_row=-1; + show_vis_col=-1; + *msg_buf=0; + msg_off_timeout=0; + phase=PHASE_END; +} + +U0 CleanUp() +{ + QueDel(&indirect_head,TRUE); +} + +U0 PlayerPick(U8 *dirname,I64 player) +{ + I64 i=0; + U8 *st; + CDirEntry *tmpde,*tmpde1,*tmpde2; + CDoc *doc=DocNew; + Bool *old_silent=Silent; + st=MStrPrint("%s/*.HC*",dirname); + tmpde=FilesFind(st); + Free(st); + tmpde2=FilesFind("~/ToTheFront/*.HC*"); + tmpde1=tmpde; + Silent(old_silent); + + DocPrint(doc,"Player %d Type\n\n$$LTBLUE$$",player+1); + while (tmpde1) { + if (!(i++&3)) + DocPrint(doc,"\n"); + st=StrNew(tmpde1->name); + FileExtRem(st); + tmpde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tmpde1); + Free(st); + tmpde1=tmpde1->next; + } + tmpde1=tmpde2; + while (tmpde1) { + if (!(i++&3)) + DocPrint(doc,"\n"); + st=StrNew(tmpde1->name); + FileExtRem(st); + tmpde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tmpde1); + Free(st); + tmpde1=tmpde1->next; + } + DocPrint(doc,"\n\n\n$$FG$$Create your own AI in ~/ToTheFront."); + while ((tmpde1=PopUpMenu(doc))<=0); + ExeFile(tmpde1->full_name); + DocDel(doc); + DirTreeDel(tmpde); + DirTreeDel(tmpde2); + ExePrint("player_indirect[%d]=&PlayerIndirect;" + "player_move[%d]=&PlayerMove;" + "player_direct[%d]=&PlayerDirect;", + player,player,player); +} +L ÿÿÿÿüÿÿÿ úÿÿÿ üÿÿÿúÿÿÿþÿÿÿ +øÿÿÿ üÿÿÿüÿÿÿ +ûÿÿÿûÿÿÿûÿÿÿ +ûÿÿÿ +ûÿÿÿ +ûÿÿÿûÿÿÿûÿÿÿ +üÿÿÿüÿÿÿ +üÿÿÿüÿÿÿG ÿÿÿÿýÿÿÿ +üÿÿÿ +þÿÿÿüÿÿÿþÿÿÿ +úÿÿÿÏ þÿÿÿþÿÿÿ +ÿÿÿÿýÿÿÿýÿÿÿ +ÿÿÿÿüÿÿÿüÿÿÿ +üÿÿÿ +ýÿÿÿ +þÿÿÿûÿÿÿûÿÿÿ +ýÿÿÿüÿÿÿ +þÿÿÿýÿÿÿþÿÿÿüÿÿÿ +ýÿÿÿýÿÿÿýÿÿÿ +ýÿÿÿ + +ÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/Apps/ToTheFront/TTFLib.HC b/Apps/ToTheFront/TTFLib.HC new file mode 100644 index 0000000..1751f5c --- /dev/null +++ b/Apps/ToTheFront/TTFLib.HC @@ -0,0 +1,121 @@ +U0 Toward(I64 *_row,I64 *_col,I64 direction) +{ + switch (direction) { + case 0: + *_row-=2; + break; + case 1: + if (*_row&1) *_col+=1; + *_row-=1; + break; + case 2: + if (*_row&1) *_col+=1; + *_row+=1; + break; + case 3: + *_row+=2; + break; + case 4: + if (!(*_row&1)) *_col-=1; + *_row+=1; + break; + case 5: + if (!(*_row&1)) *_col-=1; + *_row-=1; + break; + } +} + +I64 FacingChg(I64 f1,I64 f2) +{ + I64 res=(f1+6-f2)%6; + if (res>=3) + return 6-res; + else + return res; +} + +U0 RowCol2XY(F64 *_x,F64 *_y,I64 row,I64 col) +{ + Pt *c; + row=ClampI64(row,0,map_rows); + col=ClampI64(col,0,map_cols); + c=&hex_centers[row][col]; + *_x=c->x; + *_y=c->y; +} + +U0 XY2RowCol(I64 *_row,I64 *_col,F64 x,F64 y) +{ + *_col=(x-DCOS/2)/(HEX_SIDE+DCOS); + if (*_col&1) + *_row=ToI64((y-DSIN)/(2*DSIN))*2+1; + else + *_row=ToI64(y/(2*DSIN))*2; + *_col>>=1; + *_row=ClampI64(*_row,0,map_rows-1); + *_col=ClampI64(*_col,0,map_cols-1); +} + +Unit *UnitFind(I64 row,I64 col) +{//Finds unit in a hexagon. + I64 i,j; + for (j=0;j<2;j++) + for (i=0;i0 && + units[j][i].row==row && + units[j][i].col==col) + return &units[j][i]; + return NULL; +} + +Bool CursorInWin(CTask *task,I64 x,I64 y) +{ + if (0<=x+task->scroll_xpix_width && + 0<=y+task->scroll_ypix_height) + return TRUE; + else + return FALSE; +} + +U0 CursorUpdate(CTask *task,I64 x,I64 y) +{ + if (CursorInWin(task,x,y)) + XY2RowCol(&cursor_row,&cursor_col,x,y); +} + +class LOSCtrl +{ + I64 r1,c1,r2,c2,distance; +}; + +Bool LOSPlot(LOSCtrl *l,I64 x,I64 y,I64 z) +{//We got tricky and used z as the distance from the start of the line. + I64 row,col; + XY2RowCol(&row,&col,x,y); + if ((row!=l->r1 || col!=l->c1) && + (row!=l->r2 || col!=l->c2) && + terrain[row][col]!=PLAINS) { + if (terrain[l->r1][l->c1]==MOUNTAINS) { + if (terrain[row][col]==MOUNTAINS || z>l->distance>>1) + return FALSE; + } else if (terrain[l->r2][l->c2]==MOUNTAINS) { + if (terrain[row][col]==MOUNTAINS || z<=l->distance>>1) + return FALSE; + } else + return FALSE; + } + return TRUE; +} + +Bool LOS(I64 r1,I64 c1,I64 r2,I64 c2) +{ + F64 x1,y1,x2,y2; + LOSCtrl l; + RowCol2XY(&x1,&y1,r1,c1); + RowCol2XY(&x2,&y2,r2,c2); + l.r1=r1; l.c1=c1; + l.r2=r2; l.c2=c2; + l.distance=Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2)); + return Line(&l,x1,y1,0,x2,y2,l.distance,&LOSPlot); +} diff --git a/Apps/ToTheFront/TTFMove.HC b/Apps/ToTheFront/TTFMove.HC new file mode 100644 index 0000000..e529ae3 --- /dev/null +++ b/Apps/ToTheFront/TTFMove.HC @@ -0,0 +1,129 @@ +U8 movement_costs[16]; +movement_costs[PLAINS]=2; +movement_costs[TREES]=6; +movement_costs[MOUNTAINS]=10; + +I64 HexMoveOneCost(Unit *tmpu,I64 r,I64 c,I64 facing) +{ + I64 res; + if (tmpu->infantry) + res=0; + else { + res=FacingChg(facing,tmpu->facing); + if (res>0) res--; + } + if (roads[r][c] && roads[tmpu->row][tmpu->col]) + res+=1; + else { + if (tmpu->infantry) + res+=2; + else { + res+=movement_costs[terrain[r][c]]; + if (rivers[r][c]) + res=tmpu->movement; + } + } + return res; +} + +I64 HexMoveOne(I64 *_row,I64 *_col,F64 x,F64 y) +{ + I64 direction,best_direction=-1,r,c; + F64 dd,best_dd,x1,y1; + RowCol2XY(&x1,&y1,*_row,*_col); + best_dd=Sqr(x1-x)+Sqr(y1-y); + for (direction=0;direction<6;direction++) { + r=*_row; c=*_col; + Toward(&r,&c,direction); + RowCol2XY(&x1,&y1,r,c); + dd=Sqr(x1-x)+Sqr(y1-y); + if (0<=r=0) { + Toward(_row,_col,best_direction); + return best_direction; + } else + return -1; +} + +Bool UnitMovePlot(U0,I64 x,I64 y,I64) +{ + move_x=x; move_y=y; + Sleep(5*animation_delay); + return TRUE; +} + +U0 UnitMoveAnimation(Unit *tmpu,I64 r,I64 c,I64 facing) +{ + F64 x1,y1,x2,y2,f=facing*60.0*ã/180.0; + moving_unit=tmpu; + RowCol2XY(&x1,&y1,tmpu->row,tmpu->col); + move_x=x1; move_y=y1; + moving=TRUE; + if (tmpu->infantry) + Snd(300); + else { + move_facing=tmpu->facing*60.0*ã/180.0; + Snd(150); + while (Wrap(f-move_facing,-ã)<=0) { + move_facing-=0.03; + Sleep(5*animation_delay); + } + while (Wrap(f-move_facing,-ã)>0) { + move_facing+=0.03; + Sleep(5*animation_delay); + } + Snd(100); + } + move_facing=f; + RowCol2XY(&x2,&y2,r,c); + Line(NULL,x1,y1,0,x2,y2,0,&UnitMovePlot); + Snd(0); + moving_unit=NULL; + moving=FALSE; +} + +Bool UnitMove(Unit *tmpu,I64 x,I64 y) +{ + Unit *target; + I64 r,c,r0=tmpu->row,c0=tmpu->col,i,facing; + while (tmpu->remaining_movement>0) { + r=tmpu->row; + c=tmpu->col; + if ((facing=HexMoveOne(&r,&c,x,y))<0) + break; + else { + i=HexMoveOneCost(tmpu,r,c,facing); + if (i>tmpu->movement) + i=tmpu->movement; + if (!tmpu->fired && tmpu->remaining_movement>=i && + tmpu->remaining_movement>=tmpu->movement>>1 && + (target=UnitFind(r,c)) && target->player!=tmpu->player && + tmpu->infantry!=target->infantry) { + if (!HexOccupy(ToBool(target->infantry),tmpu,target)) { + tmpu=NULL; + break; + } + i=tmpu->remaining_movement; + } + if (tmpu->remaining_movement>=i && !UnitFind(r,c)) { + UnitMoveAnimation(tmpu,r,c,facing); + tmpu->facing=facing; + tmpu->remaining_movement-=i; + tmpu->row=r; + tmpu->col=c; + VisRecalc(VR_UPDATE_FRIENDLY_UNIT,tmpu); + LBEqu(&tmpu->vis[enemy_player],0, + VisRecalc(VR_ONE_ENEMY_UNIT,tmpu)); + } else + break; + } + } + if (!tmpu || tmpu->row!=r0 || tmpu->col!=c0) + return TRUE; + else + return FALSE; +} diff --git a/Apps/ToTheFront/TTFVis.HC b/Apps/ToTheFront/TTFVis.HC new file mode 100644 index 0000000..367c093 --- /dev/null +++ b/Apps/ToTheFront/TTFVis.HC @@ -0,0 +1,223 @@ +#define VR_ONE_FRIENDLY_UNIT 0 +#define VR_UPDATE_FRIENDLY_UNIT 1 +#define VR_FRIENDLY_UNIT_DIED 3 +#define VR_ONE_ENEMY_UNIT 4 +#define VR_ALL_UNITS 5 + +class MPCtrl1 +{ + I64 mode,lo,hi; + Unit *tmpu; +}; + +class MPCtrl2 +{ + I64 lo,hi,row,col; +}; + + +U0 VRSetUp(I64 player) +{ + I64 i; + Unit *ut0,*ut1; + ut0=&units[player][0]; + ut1=&units[player^1][0]; + for (i=0;ivis[player],0); + LBEqu(&ut0->vis[player],0,ut0->life>0); + } +} + +U0 VRMerge(I64 player) +{ + I64 i,j; + Unit *ut1; + U8 *dst,*src,*mask=CAlloc((MAX_UNITS+7)>>3); + for (j=0;j>3]; + dst=mask; + for (i=0;i<(MAX_UNITS+7)>>3;i++) //player1 + *dst++|=*src++; + } + ut1=&units[player^1][0]; + for (j=0;jvis[player],0,Bt(mask,j) && ut1->life>0); + Free(mask); +} + +Bool MPVisRecalc(MPCtrl1 *job) +{ + Bool res=FALSE,seen; + I64 i,j,row,col; + F64 x1,y1,x2,y2,dd,range; + Unit *ut0,*ut1; + ut0=&units[cur_player][job->lo]; + ut1=&units[enemy_player][job->lo]; + if (job->tmpu) { + row=job->tmpu->row; + col=job->tmpu->col; + range=job->tmpu->range*2*HEX_RADIUS; + range*=range; + } + switch (job->mode) { + case VR_UPDATE_FRIENDLY_UNIT: + case VR_ONE_FRIENDLY_UNIT: + if (job->mode==VR_UPDATE_FRIENDLY_UNIT) + range=MAX_F64; + RowCol2XY(&x1,&y1,row,col); + for (i=job->lo;ihi;i++,ut1++) { + seen=FALSE; + if (ut1->life>0 && + LOS(row,col,ut1->row,ut1->col)) { + RowCol2XY(&x2,&y2,ut1->row,ut1->col); + dd=Sqr(x2-x1)+Sqr(y2-y1); + if (ddvis[cur_player],0); + } + } + if (job->mode==VR_UPDATE_FRIENDLY_UNIT) + LBEqu(&vis_unit_bitmap[cur_player], + i+job->tmpu->num*((MAX_UNITS+7)&~7),seen); + } + break; + case VR_ONE_ENEMY_UNIT: + RowCol2XY(&x1,&y1,row,col); + for (i=job->lo;ihi;i++,ut1++) + if (ut1->life>0 && + LOS(row,col,ut1->row,ut1->col)) { + LBts(&vis_unit_bitmap[enemy_player], + job->tmpu->num+i*((MAX_UNITS+7)&~7)); + res=TRUE; + } else + LBtr(&vis_unit_bitmap[enemy_player], + job->tmpu->num+i*((MAX_UNITS+7)&~7)); + break; + case VR_ALL_UNITS: + ut0=&units[cur_player][0]; + for (i=0;ilife>0) { + RowCol2XY(&x1,&y1,ut0->row,ut0->col); + ut1=&units[enemy_player][job->lo]; + for (j=job->lo;jhi;j++,ut1++) { + if (ut1->life>0 && + LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { + LBts(&ut1->vis[cur_player],0); + LBts(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); + } else + LBtr(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); + } + } else + for (j=job->lo;jhi;j++) + LBtr(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); + ut0=&units[enemy_player][0]; + for (i=0;ilife>0) { + RowCol2XY(&x1,&y1,ut0->row,ut0->col); + ut1=&units[cur_player][job->lo]; + for (j=job->lo;jhi;j++,ut1++) { + if (ut1->life>0 && + LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { + LBts(&ut1->vis[enemy_player],0); + LBts(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); + } else + LBtr(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); + } + } else + for (j=job->lo;jhi;j++) + LBtr(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); + break; + } + return res; +} + +Bool VisRecalc(I64 mode,Unit *tmpu=NULL) +{ + I64 i,hi,k,cnt; + Bool res; +/*The compiler doesn't go out of it's way +to know if something is const.;-) This +just compiles with the val at compile +time, an advantage of just-in-time over +AOT binaries. TempleOS has a limited +stk size, so don't get in the habit. +$LK,"MAlloc",A="MN:MAlloc"$() would probably be the better choice. +*/ + MPCtrl1 job[mp_cnt]; + CSrvCmd *cmd[mp_cnt]; + + if (mode==VR_FRIENDLY_UNIT_DIED) { + MemSet((&vis_unit_bitmap[enemy_player])(U8 *)+ + (tmpu->num*((MAX_UNITS+7)&~7))>>3,0,(MAX_UNITS+7)>>3); + VRMerge(enemy_player); + return 0; //Return any value--don't care + } + + cnt=mp_cnt; //Cores + hi=MAX_UNITS; + if (mode==VR_ONE_ENEMY_UNIT) { + for (hi--;hi>=0;hi--) + if (units[enemy_player][hi].life>0) + break; + hi++; + } + k=hi; + if (hi/mp_cnt<2) + cnt=1; + for (i=0;ilo;jhi;j++) + for (i=0;irow,job->col,j,i)) + vis_map[j][i]=TRUE; + else + vis_map[j][i]=FALSE; +} + +U0 VisRecalcMap(I64 row,I64 col) +{ + I64 i,hi,k,cnt; + MPCtrl2 job[mp_cnt]; + CSrvCmd *cmd[mp_cnt]; + + cnt=mp_cnt; //Cores + hi=map_rows; + k=hi; + if (hi/mp_cnt<2) + cnt=1; + for (i=0;i compile chk feature. -*/ -#define HEX_SIDE 11 - -U0 InitDefines1() +U0 AnimationDelaySet() { - CTask *rotate_tank_task; - F64 d; - PopUpFile("/Demo/Graphics/RotateTank.HC",FALSE,NULL,&rotate_tank_task); - PopUpOk("This aspires to be a rip-off of\n" - "the Perfect General, but has tank\n" - "facing like the board game,\n" - "Stalin's Tanks.\n"); - if (!PopUpNoYes("Tournament Settings")) { - d=PopUpRangeF64Log(300,2000,20,"%4f","Map Width In Pixs\n"); - DefinePrint("MAP_WIDTH","%f",d); - DefinePrint("MAP_HEIGHT","%f",480.0/640.0*d); - d=PopUpRangeF64Exp(8,512,2,"%3f","Player 2 Units\n"); - DefinePrint("MAX_UNITS","%f",d); - d=PopUpRangeF64(0.2,1.01,0.05,"%4.2f to 1.00","Player1:Player2 Odds\n"); - DefinePrint("P1_TO_P2_ODDS","%4.2f",d); - d=PopUpRangeF64(0,100,10,"%3f% %%","Player 1 Armor Percent\n"); - DefinePrint("PLAYER_1_ARMOR_PERCENT","%f",d); - d=PopUpRangeF64(0,100,10,"%3f% %%","Player 2 Armor Percent\n"); - DefinePrint("PLAYER_2_ARMOR_PERCENT","%f",d); - } - DefinePrint("DCOS","%12.9f",HEX_SIDE*Cos(60.0/180*ã)); - DefinePrint("DSIN","%12.9f",HEX_SIDE*Sin(60.0/180*ã)); - d=PopUpRangeF64(0,100,25,"%3f% %%","Animation Delay\n"); - DefinePrint("ANIMATION_DELAY","%5.3f",d/100.0); - Seed(PopUpGetI64("Seed(0x%X):",Seed)); - XTalk(rotate_tank_task," "); - TaskWait(rotate_tank_task); - Kill(rotate_tank_task); -} InitDefines1; - -U0 InitDefines2() -{ - DefinePrint("HEX_RADIUS","%12.9f",DSIN+0.01); //slop -} InitDefines2; - -I64 map_cols=(MAP_WIDTH-DCOS)/(2*HEX_SIDE+2*DCOS), - map_rows=ToI64((MAP_HEIGHT-DSIN)/DSIN)&~1, - map_width=map_cols*(2*HEX_SIDE+2*DCOS)+DCOS, - map_height=map_rows*DSIN+DSIN+1; - -CDC *map_dc; -U8 terrain[map_rows][map_cols]; - -//Centers of hexes -class Pt -{ - F64 x,y; -}; -Pt hex_centers[map_rows][map_cols]; - -I64 show_visible_row,show_visible_col; -Bool roads[map_rows][map_cols], - rivers[map_rows][map_cols], - visible_map[map_rows][map_cols]; - -//Other options for PLAINS are WHITE or YELLOW -#define PLAINS LTGREEN -#define TREES GREEN -#define MOUNTAINS DKGRAY - -U8 movement_costs[16]; -movement_costs[PLAINS]=2; -movement_costs[TREES]=6; -movement_costs[MOUNTAINS]=10; - -//These are used to display a range circle when they player -//is firing. -F64 fire_radius,fire_radius_x,fire_radius_y; - -//These display "phase", "turn" and "game over". -U8 msg_buf[STR_LEN]; -I64 msg_off_timeout; //Jiffies. Goes away after a time. - -/*I got tricky by not defining a color -right away in these $LK,"CSprite",A="MN:CSprite"$s so they can -work for both players by setting dc->color -before drawing them. I actually made these -graphics by defining a color in the -menu, drawing the unit and deleting the color. - -I had to leave a gap between the tank tread -and body because of how it is rendered when rotated. -*/ - -$SP,"<1>",BI=1$ - -$SP,"<2>",BI=2$ - -//This is an infantry. - -$SP,"<3>",BI=3$ - -$SP,"<4>",BI=4$ - -$SP,"<5>",BI=5$ - -//Unit types -#define UT_INFANTRY 0 -#define UT_ARTILLERY 1 -#define UT_LT_TANK 2 -#define UT_MD_TANK 3 - -class Unit -{ - U8 *img; - I64 num,row,col, - armored_attack,unarmored_attack,armor; - I8 type,player,facing,movement,life, - range,remaining_movement,accuracy; - Bool visible[2],fired,infantry,indirect_fire,pad[3]; -}; - -Unit units[2][MAX_UNITS]; - -// Bt(visible_unit_bitmap,player1+player0*((MAX_UNITS+7)&~7)) -U8 visible_unit_bitmap[2][(((MAX_UNITS+7)&~7)*MAX_UNITS)>>3]; - -#define PHASE_START 0 -#define PHASE_PLOT 0 -#define PHASE_PLOT0 0 -#define PHASE_PLOT1 1 -#define PHASE_MOVE 2 -#define PHASE_MOVE0 2 -#define PHASE_MOVE1 3 -#define PHASE_FIRE 4 -#define PHASE_FIRE0 4 -#define PHASE_FIRE1 5 -#define PHASE_END 6 - -I64 phase,cur_player,enemy_player,view_player,turn, - cursor_row,cursor_col,alive_cnt[2], - plot_routines[2],move_routines[2],fire_routines[2]; - -U0 Toward(I64 *_row,I64 *_col,I64 direction) -{ - switch (direction) { - case 0: - *_row-=2; - break; - case 1: - if (*_row&1) *_col+=1; - *_row-=1; - break; - case 2: - if (*_row&1) *_col+=1; - *_row+=1; - break; - case 3: - *_row+=2; - break; - case 4: - if (!(*_row&1)) *_col-=1; - *_row+=1; - break; - case 5: - if (!(*_row&1)) *_col-=1; - *_row-=1; - break; - } + animation_delay=PopUpRangeF64(0,100,25,"%3f% %%","Animation Delay\n")/100; } -I64 FacingChg(I64 f1,I64 f2) -{ - I64 res=(f1+6-f2)%6; - if (res>=3) - return 6-res; - else - return res; -} - -U0 RowCol2XY(F64 *_x,F64 *_y,I64 row,I64 col) -{ - Pt *c; - row=ClampI64(row,0,map_rows); - col=ClampI64(col,0,map_cols); - c=&hex_centers[row][col]; - *_x=c->x; - *_y=c->y; -} - -U0 XY2RowCol(I64 *_row,I64 *_col,F64 x,F64 y) -{ - *_col=(x-DCOS/2)/(HEX_SIDE+DCOS); - if (*_col&1) - *_row=ToI64((y-DSIN)/(2*DSIN))*2+1; - else - *_row=ToI64(y/(2*DSIN))*2; - *_col>>=1; - *_row=ClampI64(*_row,0,map_rows-1); - *_col=ClampI64(*_col,0,map_cols-1); -} - -Unit *FindUnit(I64 row,I64 col) -{//Finds unit in a hexagon. - I64 i,j; - for (j=0;j<2;j++) - for (i=0;i0 && - units[j][i].row==row && - units[j][i].col==col) - return &units[j][i]; - return NULL; -} - -Bool CursorInWindow(CTask *task,I64 x,I64 y) -{ - if (0<=x+task->scroll_xpix_width && - 0<=y+task->scroll_ypix_height) - return TRUE; - else - return FALSE; -} - -U0 UpdateCursor(CTask *task,I64 x,I64 y) -{ - if (CursorInWindow(task,x,y)) - XY2RowCol(&cursor_row, - &cursor_col,x+task->horz_scroll.pos,y+task->vert_scroll.pos); -} - -class LOSCtrl -{ - I64 r1,c1,r2,c2,distance; -}; - -Bool LOSPlot(LOSCtrl *l,I64 x,I64 y,I64 z) -{//We got tricky and used z as the distance from the start of the line. - I64 row,col; - XY2RowCol(&row,&col,x,y); - if ((row!=l->r1 || col!=l->c1) && - (row!=l->r2 || col!=l->c2) && - terrain[row][col]!=PLAINS) { - if (terrain[l->r1][l->c1]==MOUNTAINS) { - if (terrain[row][col]==MOUNTAINS || z>l->distance>>1) - return FALSE; - } else if (terrain[l->r2][l->c2]==MOUNTAINS) { - if (terrain[row][col]==MOUNTAINS || z<=l->distance>>1) - return FALSE; - } else - return FALSE; - } - return TRUE; -} - -Bool LOS(I64 r1,I64 c1,I64 r2,I64 c2) -{ - F64 x1,y1,x2,y2; - LOSCtrl l; - RowCol2XY(&x1,&y1,r1,c1); - RowCol2XY(&x2,&y2,r2,c2); - l.r1=r1; l.c1=c1; - l.r2=r2; l.c2=c2; - l.distance=Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2)); - return Line(&l,x1,y1,0,x2,y2,l.distance,&LOSPlot); -} - -#define RV_ONE_FRIENDLY_UNIT 0 -#define RV_UPDATE_FRIENDLY_UNIT 1 -#define RV_FRIENDLY_UNIT_DIED 3 -#define RV_ONE_ENEMY_UNIT 4 -#define RV_ALL_UNITS 5 - -class MPCtrl1 -{ - I64 mode,lo,hi; - Unit *tempu; -}; - -U0 RVSetUp(I64 player) -{ - I64 i; - Unit *ut0,*ut1; - ut0=&units[player][0]; - ut1=&units[player^1][0]; - for (i=0;ivisible[player],0); - LBEqu(&ut0->visible[player],0,ut0->life>0); - } -} - -U0 RVMerge(I64 player) -{ - I64 i,j; - Unit *ut1; - U8 *dst,*src,*mask=CAlloc((MAX_UNITS+7)>>3); - for (j=0;j>3]; - dst=mask; - for (i=0;i<(MAX_UNITS+7)>>3;i++) //player1 - *dst++|=*src++; - } - ut1=&units[player^1][0]; - for (j=0;jvisible[player],0,Bt(mask,j) && ut1->life>0); - Free(mask); -} - -Bool MPRecalcVisible(MPCtrl1 *job) -{ - Bool res=FALSE,seen; - I64 i,j,row,col; - F64 x1,y1,x2,y2,dd,range; - Unit *ut0,*ut1; - ut0=&units[cur_player][job->lo]; - ut1=&units[enemy_player][job->lo]; - if (job->tempu) { - row=job->tempu->row; - col=job->tempu->col; - range=job->tempu->range*2*HEX_RADIUS; - range*=range; - } - switch (job->mode) { - case RV_UPDATE_FRIENDLY_UNIT: - case RV_ONE_FRIENDLY_UNIT: - if (job->mode==RV_UPDATE_FRIENDLY_UNIT) - range=MAX_F64; - RowCol2XY(&x1,&y1,row,col); - for (i=job->lo;ihi;i++,ut1++) { - seen=FALSE; - if (ut1->life>0 && - LOS(row,col,ut1->row,ut1->col)) { - RowCol2XY(&x2,&y2,ut1->row,ut1->col); - dd=Sqr(x2-x1)+Sqr(y2-y1); - if (ddvisible[cur_player],0); - } - } - if (job->mode==RV_UPDATE_FRIENDLY_UNIT) - LBEqu(&visible_unit_bitmap[cur_player], - i+job->tempu->num*((MAX_UNITS+7)&~7),seen); - } - break; - case RV_ONE_ENEMY_UNIT: - RowCol2XY(&x1,&y1,row,col); - for (i=job->lo;ihi;i++,ut1++) - if (ut1->life>0 && - LOS(row,col,ut1->row,ut1->col)) { - LBts(&visible_unit_bitmap[enemy_player], - job->tempu->num+i*((MAX_UNITS+7)&~7)); - res=TRUE; - } else - LBtr(&visible_unit_bitmap[enemy_player], - job->tempu->num+i*((MAX_UNITS+7)&~7)); - break; - case RV_ALL_UNITS: - ut0=&units[cur_player][0]; - for (i=0;ilife>0) { - RowCol2XY(&x1,&y1,ut0->row,ut0->col); - ut1=&units[enemy_player][job->lo]; - for (j=job->lo;jhi;j++,ut1++) { - if (ut1->life>0 && - LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { - LBts(&ut1->visible[cur_player],0); - LBts(&visible_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); - } else - LBtr(&visible_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); - } - } else - for (j=job->lo;jhi;j++) - LBtr(&visible_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); - ut0=&units[enemy_player][0]; - for (i=0;ilife>0) { - RowCol2XY(&x1,&y1,ut0->row,ut0->col); - ut1=&units[cur_player][job->lo]; - for (j=job->lo;jhi;j++,ut1++) { - if (ut1->life>0 && - LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { - LBts(&ut1->visible[enemy_player],0); - LBts(&visible_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); - } else - LBtr(&visible_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); - } - } else - for (j=job->lo;jhi;j++) - LBtr(&visible_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); - break; - } - return res; -} - -Bool RecalcVisible(I64 mode,Unit *tempu=NULL) -{ - I64 i,hi,k,cnt; - Bool res; -/*The compiler doesn't go out of it's way -to know if something is const.;-) This -just compiles with the val at compile -time, an advantage of just-in-time over -AOT binaries. TempleOS has a limited -stk size, so don't get in the habit. -$LK,"MAlloc",A="MN:MAlloc"$() would probably be the better choice. -*/ - MPCtrl1 job[mp_cnt]; - CSrvCmd *cmd[mp_cnt]; - - if (mode==RV_FRIENDLY_UNIT_DIED) { - MemSet((&visible_unit_bitmap[enemy_player])(U8 *)+ - (tempu->num*((MAX_UNITS+7)&~7))>>3,0,(MAX_UNITS+7)>>3); - RVMerge(enemy_player); - return 0; //Return any value--don't care - } - - cnt=mp_cnt; //Cores - hi=MAX_UNITS; - if (mode==RV_ONE_ENEMY_UNIT) { - for (hi--;hi>=0;hi--) - if (units[enemy_player][hi].life>0) - break; - hi++; - } - k=hi; - if (hi/mp_cnt<2) - cnt=1; - for (i=0;ilo;jhi;j++) - for (i=0;irow,job->col,j,i)) - visible_map[j][i]=TRUE; - else - visible_map[j][i]=FALSE; -} - -U0 RecalcVisibleMap(I64 row,I64 col) -{ - I64 i,hi,k,cnt; - MPCtrl2 job[mp_cnt]; - CSrvCmd *cmd[mp_cnt]; - - cnt=mp_cnt; //Cores - hi=map_rows; - k=hi; - if (hi/mp_cnt<2) - cnt=1; - for (i=0;iinfantry) - res=0; - else { - res=FacingChg(facing,tempu->facing); - if (res>0) res--; - } - if (roads[r][c] && roads[tempu->row][tempu->col]) - res+=1; - else { - if (tempu->infantry) - res+=2; - else { - res+=movement_costs[terrain[r][c]]; - if (rivers[r][c]) - res=tempu->movement; - } - } - return res; -} - -I64 MoveOneHex(I64 *_row,I64 *_col,F64 x,F64 y) -{ - I64 direction,best_direction=-1,r,c; - F64 dd,best_dd,x1,y1; - RowCol2XY(&x1,&y1,*_row,*_col); - best_dd=Sqr(x1-x)+Sqr(y1-y); - for (direction=0;direction<6;direction++) { - r=*_row; c=*_col; - Toward(&r,&c,direction); - RowCol2XY(&x1,&y1,r,c); - dd=Sqr(x1-x)+Sqr(y1-y); - if (0<=r=0) { - Toward(_row,_col,best_direction); - return best_direction; - } else - return -1; -} - -Bool moving=FALSE; -I64 move_x,move_y; -F64 move_facing; -Unit *moving_unit; - -Bool MovePlot(U0,I64 x,I64 y,I64) -{ - move_x=x; move_y=y; - Sleep(5*ANIMATION_DELAY); - return TRUE; -} - -U0 MoveUnitAnimation(Unit *tempu,I64 r,I64 c,I64 facing) -{ - F64 x1,y1,x2,y2,f=facing*60.0*ã/180.0; - moving_unit=tempu; - RowCol2XY(&x1,&y1,tempu->row,tempu->col); - move_x=x1; move_y=y1; - moving=TRUE; - if (tempu->infantry) - Snd(300); - else { - move_facing=tempu->facing*60.0*ã/180.0; - Snd(150); - while (Wrap(f-move_facing,-ã)<=0) { - move_facing-=0.03; - Sleep(5*ANIMATION_DELAY); - } - while (Wrap(f-move_facing,-ã)>0) { - move_facing+=0.03; - Sleep(5*ANIMATION_DELAY); - } - Snd(100); - } - move_facing=f; - RowCol2XY(&x2,&y2,r,c); - Line(NULL,x1,y1,0,x2,y2,0,&MovePlot); - Snd(0); - moving_unit=NULL; - moving=FALSE; -} - -Bool MoveUnit(Unit *tempu,I64 x,I64 y) -{ - I64 r,c,r0=tempu->row,c0=tempu->col,i,facing; - while (tempu->remaining_movement>0) { - r=tempu->row; - c=tempu->col; - if ((facing=MoveOneHex(&r,&c,x,y))<0) - break; - else { - i=MoveCost(tempu,r,c,facing); - if (i>tempu->movement) - i=tempu->movement; - if (tempu->remaining_movement>=i && !FindUnit(r,c)) { - MoveUnitAnimation(tempu,r,c,facing); - tempu->facing=facing; - tempu->remaining_movement-=i; - tempu->row=r; - tempu->col=c; - RecalcVisible(RV_UPDATE_FRIENDLY_UNIT,tempu); - LBEqu(&tempu->visible[enemy_player],0, - RecalcVisible(RV_ONE_ENEMY_UNIT,tempu)); - } else - break; - } - } - if (tempu->row!=r0 || tempu->col!=c0) - return TRUE; - else - return FALSE; -} - -class IndirectOrders -{ - IndirectOrders *next,*last; - Unit *attacker; - I64 row,col; -} indirect_head; - -U0 PlotShot(Unit *tempu,I64 row,I64 col) -{ - IndirectOrders *tempi; - if (tempu->life<=0 || tempu->range<=0) - return; - tempu->fired=TRUE; - tempi=CAlloc(sizeof(IndirectOrders)); - tempi->attacker=tempu; - tempi->row=row; - tempi->col=col; - QueIns(tempi,indirect_head.last); -} - -Bool firing=FALSE; -I64 fire_x,fire_y; -Unit *target_unit; -Bool target_hit; -Bool indirect_explosion=FALSE; -I64 indirect_row,indirect_col; - -Bool FirePlot(U0,I64 x,I64 y,I64) -{ - fire_x=x; fire_y=y; - firing=TRUE; - Sleep(3*ANIMATION_DELAY); - return TRUE; -} - -U0 FireShot(Unit *tempu,Unit *target) -{ - I64 r,c,facing, - t1=terrain[tempu->row][tempu->col], - t2=terrain[target->row][target->col]; - F64 x1,y1,x2,y2,d,a,dammage=0,range_factor; - Bool hit; - - if (tempu->life<=0 || target->life<=0 || tempu->range<=0) - return; - RowCol2XY(&x1,&y1,tempu->row,tempu->col); - RowCol2XY(&x2,&y2,target->row,target->col); - - '\n\n'; - - d=100*Rand; - "+%5.2f Roll\n",d; - d+=tempu->accuracy; - "+%2d.00 Accuracy\n",tempu->accuracy; - - range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tempu->range*2*DSIN); - "-%5.2f%% of Range\n",100*range_factor; - d-=100*range_factor; - if (t2==TREES) { - "-30.00 Target in trees\n"; - d-=30; - } - if (t1==MOUNTAINS && t2!=MOUNTAINS) { - "+30.00 Down from mountains\n"; - d+=30; - } - "_______\n"; - if (d>=0) { - "+%5.2f Hit\n",d; - hit=TRUE; - } else { - "-%5.2f Miss\n",-d; - hit=FALSE; - } - - target_unit=target; - if (hit) { - target_hit=TRUE; - Noise(500*ANIMATION_DELAY,100,150); - Sleep(500*ANIMATION_DELAY); - } else { - target_hit=FALSE; - Noise(1000*ANIMATION_DELAY,750,1000); - Sleep(1000*ANIMATION_DELAY); - } - if (hit) - Line(NULL,x1,y1,0,x2,y2,0,&FirePlot); - else { - a=ã*2*Rand; - d=(0.5-d/100)*HEX_SIDE; - Line(NULL,x1,y1,0,x2+d*Cos(a),y2+d*Sin(a),0,&FirePlot); - } - firing=FALSE; - tempu->fired=TRUE; - if (hit) { - r=target->row;c=target->col; - if ((facing=MoveOneHex(&r,&c,x1,y1))>=0) - facing=FacingChg(facing,target->facing); - else - facing=0; - dammage=200.0*Rand; - "Raw dammage roll out of 200: %3f\n",dammage; - if (target->armor) { - d=target->armor/100.0*(5-facing)/5.0; - "Armor:%d-FacingAdjustment(%z) Yields:%5.2f Defense\n", - target->armor,facing,"Front\0Side\0Rear\0",100*d; - if (d>=0) { - dammage*=(tempu->armored_attack/100.0)/d; - "Armored Attack:%d\nRaw*Attack/Defense=%5.2f Dammage\n", - tempu->armored_attack,dammage; - } else - dammage=0; - } else { - d=1.0-range_factor; - if (d>0) { - "Range:%5.2f%% --> %5.2f%% Remaining\n", - 100*range_factor,100*d; - dammage*=(tempu->unarmored_attack/100.0)*d; - "Unarmored Attack:%d\nRaw*Attack*Remaining=%5.2f Dammage\n", - tempu->unarmored_attack,dammage; - } else - dammage=0; - } - dammage=Round(dammage); - if (dammage>0) { - "Life:%3d - Dammage:%3f =",target->life,dammage; - if (dammage>=target->life) { - "Killed\n"; - Noise(1000*ANIMATION_DELAY,1000,4000); - Sleep(1000*ANIMATION_DELAY); - target->life=0; - RecalcVisible(RV_FRIENDLY_UNIT_DIED,target); - alive_cnt[target->player]--; - } else { - if (target->armor) { - if (dammage>0.6*target->life) { - target->movement=0; - "Immobilized\n"; - } else - "No Penetration\n"; - } else { - target->life-=dammage; - "%d\n",target->life; - } - } - } - } - while (snd.freq) //see $LK,"Snd",A="MN:Snd"$() - Yield; - target_unit=NULL; -} - -I64 row_offsets[7]={-1,-2,-1,1,2,1,0}; -I64 col_offsets_even[7]={-1, 0, 0,0,0,-1,0}; -I64 col_offsets_odd [7]={ 0, 0, 1,1,0, 0,0}; - -U0 IndirectFireResolve() -{ - I64 i,r,c,facing; - F64 x1,y1,x2,y2,d,dammage=0,range_factor; - Unit *tempu,*target; - Bool hit; - IndirectOrders *tempi=indirect_head.next,*tempi1; - while (tempi!=*indirect_head) { - tempi1=tempi->next; - tempu=tempi->attacker; - RowCol2XY(&x1,&y1,tempu->row,tempu->col); - RowCol2XY(&x2,&y2,tempi->row,tempi->col); - - '\n\n'; - - d=100*Rand; - "+%5.2f Roll\n",d; - d+=tempu->accuracy; - "+%2d.00 Accuracy\n",tempu->accuracy; - - range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tempu->range*2*DSIN); - "-%5.2f%% of Range\n",100*range_factor; - d-=100*range_factor; - - '_______\n'; - if (d>=0) { - "+%5.2f Hit\n",d; - hit=TRUE; - } else { - "-%5.2f Miss\n",-d; - hit=FALSE; - } - - if (hit) { - Noise(500*ANIMATION_DELAY,100,150); - Sleep(500*ANIMATION_DELAY); - } else { - Noise(1000*ANIMATION_DELAY,750,1000); - Sleep(1000*ANIMATION_DELAY); - } - - if (!hit) { - i=RandU16%6; - if (tempi->row&1) - tempi->col+=col_offsets_odd[i]; - else - tempi->col+=col_offsets_even[i]; - tempi->row+=row_offsets[i]; - RowCol2XY(&x2,&y2,tempi->row,tempi->col); - } - Line(NULL,x1,y1,0,x2,y2,0,&FirePlot); - firing=FALSE; - tempu->fired=TRUE; - indirect_row=tempi->row; - indirect_col=tempi->col; - indirect_explosion=TRUE; - for (i=0;i<7;i++) { - if (tempi->row&1) - c=tempi->col+col_offsets_odd[i]; - else - c=tempi->col+col_offsets_even[i]; - r=tempi->row+row_offsets[i]; - if (0<=rarmor) { - d=target->armor/100.0*(5-facing)/5.0; - "Armor:%d-FacingAdjustment(%z) Yields:%5.2f Defense\n", - target->armor,facing,"Front\0Side\0Rear\0",100*d; - if (d>=0) { - dammage*=(tempu->armored_attack/100.0)/d; - "Armored Attack:%d\nRaw*Attack/Defense=%5.2f Dammage\n", - tempu->armored_attack,dammage; - } else - dammage=0; - } else { - d=1.0-range_factor; - if (d>0) { - "Range:%5.2f%% --> %5.2f%% Remaining\n", - 100*range_factor,100*d; - dammage*=(tempu->unarmored_attack/100.0)*d; - "Unarmored Attack:%d\nRaw*Attack*Remaining=%5.2f Dammage\n", - tempu->unarmored_attack,dammage; - } else - dammage=0; - } - dammage=Round(dammage); - if (dammage>0) { - "Life:%3d - Dammage:%3f =",target->life,dammage; - if (dammage>=target->life) { - 'Killed\n'; - target->life=0; - RecalcVisible(RV_FRIENDLY_UNIT_DIED,target); - alive_cnt[target->player]--; - } else { - if (target->armor) { - if (dammage>0.6*target->life) { - target->movement=0; - "Immobilized\n"; - } else - "No Penetration\n"; - } else { - target->life-=dammage; - "%d\n",target->life; - } - } - } - } - } - Noise(2000*ANIMATION_DELAY,800,1000); - Sleep(2000*ANIMATION_DELAY); - while (snd.freq) //see $LK,"Snd",A="MN:Snd"$() - Yield; - indirect_explosion=FALSE; - - QueRem(tempi); - Free(tempi); - tempi=tempi1; - } -} - -U0 DrawHexes() -{ - F64 dx=2*HEX_SIDE+2*DCOS,dy=2*DSIN, - x,y,x1,y1,x2,y2; - I64 i,j; - map_dc->color=WHITE; - GrRect(map_dc,0,0,map_dc->width,map_dc->height); - map_dc->color=BLACK; - y=0; - for (j=0;jcolor=terrain[j][i]; - RowCol2XY(&x,&y,j,i); - GrFloodFill(map_dc,x,y); - } -} - -U0 DrawRivers() -{ - I64 i,j,k,r,c; - F64 x1,y1,x2,y2; - for (j=0;jcolor=LTBLUE; - map_dc->pen_width=4; - GrLine3(map_dc,x1,y1,0,x2,y2,0); - map_dc->color=BLUE; - map_dc->pen_width=2; - GrLine3(map_dc,x1,y1,0,x2,y2,0); - } - } - } - } -} - -U0 DrawRoads() -{ - I64 i,j,k,r,c; - F64 x1,y1,x2,y2; - map_dc->color=RED; - map_dc->pen_width=3; - for (j=0;jcolor=BLACK; - for (j=0;jplayer=j; - tempu->num=i; - tempu->life=100; - tempu->facing=RandU16%6; - if (!j) { - if (i>=Round(MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)) { - if (Round(i-MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)>= - Round(0.85*(MAX_UNITS-MAX_UNITS*P1_TO_P2_ODDS* - PLAYER_1_ARMOR_PERCENT/100.0))) - type=UT_ARTILLERY; - else - type=UT_INFANTRY; - } else { - if (i>=Round(0.5*MAX_UNITS*P1_TO_P2_ODDS* - PLAYER_1_ARMOR_PERCENT/100.0)) - type=UT_MD_TANK; - else - type=UT_LT_TANK; - } - } else { - if (i>=Round(MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)) { - if (Round(i-MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)>= - Round(0.85*(MAX_UNITS-MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0))) - type=UT_ARTILLERY; - else - type=UT_INFANTRY; - } else { - if (i>=Round(0.5*MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)) - type=UT_MD_TANK; - else - type=UT_LT_TANK; - } - } - tempu->type=type; - switch (type) { - case UT_INFANTRY: - tempu->infantry=TRUE; - tempu->indirect_fire=FALSE; - tempu->armor =0; - tempu->armored_attack =15; - tempu->unarmored_attack=180; - tempu->accuracy=45; - tempu->range =5; - tempu->movement=4; - tempu->img =$IB,"<3>",BI=3$; - break; - case UT_ARTILLERY: - tempu->infantry=TRUE; - tempu->indirect_fire=TRUE; - tempu->armor =0; - tempu->armored_attack =75; - tempu->unarmored_attack=180; - tempu->accuracy=25; - tempu->range =20; - tempu->movement=2; - tempu->img =$IB,"<4>",BI=4$; - break; - case UT_LT_TANK: - tempu->infantry=FALSE; - tempu->indirect_fire=FALSE; - tempu->armor =30; - tempu->armored_attack =40; - tempu->unarmored_attack=60; - tempu->accuracy=25; - tempu->range =8; - tempu->movement=24; - tempu->img =$IB,"<2>",BI=2$; - break; - case UT_MD_TANK: - tempu->infantry=FALSE; - tempu->indirect_fire=FALSE; - tempu->armor =60; - tempu->armored_attack =60; - tempu->unarmored_attack=80; - tempu->accuracy=25; - tempu->range =12; - tempu->movement=16; - tempu->img =$IB,"<1>",BI=1$; - break; - } - do { - row=RandU32%map_rows; - col=RandU32%(map_cols/3); - if (j) - col+=2*map_cols/3; - } while (FindUnit(row,col)); - tempu->row=row; - tempu->col=col; - LBts(&tempu->visible[cur_player],0); - } -} - -U0 NewTurn() +U0 TurnNew() { I64 i,j; for (j=0;j<2;j++) @@ -1238,87 +15,45 @@ U0 NewTurn() moving_unit=NULL; SleepUntil(msg_off_timeout); - msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*ANIMATION_DELAY+1; + msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*animation_delay+1; Snd(1000); StrPrint(msg_buf,"Turn %d",++turn); - RVSetUp(0); - RVSetUp(1); - RecalcVisible(RV_ALL_UNITS); + VRSetUp(0); + VRSetUp(1); + VisRecalc(VR_ALL_UNITS); cur_player=(turn&1)^1; enemy_player=cur_player^1; } -U0 NewPhase() +U0 PhaseNew() { cur_player^=1; enemy_player=cur_player^1; if (++phase>=PHASE_END) { - IndirectFireResolve; - NewTurn; + IndirectResolveAll; + TurnNew; } - Fs->border_src=BDS_CONST; - if (phase&~1==PHASE_PLOT) - Fs->border_attr=WHITE<<4+PURPLE; - else if (phase&~1==PHASE_MOVE) - Fs->border_attr=WHITE<<4+GREEN; - else - Fs->border_attr=WHITE<<4+RED; - SleepUntil(msg_off_timeout); - msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*ANIMATION_DELAY+1; + msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*animation_delay+1; Snd(1000); switch (phase) { - case PHASE_PLOT0: - case PHASE_PLOT1: + case PHASE_INDIRECT0: + case PHASE_INDIRECT1: StrPrint(msg_buf,"Player %d Artillery Plot",cur_player+1); break; case PHASE_MOVE0: case PHASE_MOVE1: StrPrint(msg_buf,"Player %d Move",cur_player+1); break; - case PHASE_FIRE0: - case PHASE_FIRE1: + case PHASE_DIRECT0: + case PHASE_DIRECT1: StrPrint(msg_buf,"Player %d Fire",cur_player+1); break; } } -U0 SetViewPlayer(I8 p) -{ - CMenuEntry *tempse; - view_player=p; - if (tempse=MenuEntryFind(Fs->cur_menu,"View/Player1")) - tempse->checked= view_player==0; - if (tempse=MenuEntryFind(Fs->cur_menu,"View/Player2")) - tempse->checked= view_player==1; -} - -U0 Init() -{ - moving_unit=NULL; - InitMap; - SetViewPlayer(cur_player=0); - enemy_player=1; - Fs->horz_scroll.pos=0; - Fs->vert_scroll.pos=0; - InitUnits; - QueInit(&indirect_head); - turn=0; - fire_radius=0; - show_visible_row=-1; - show_visible_col=-1; - *msg_buf=0; - msg_off_timeout=0; - phase=PHASE_END; -} - -U0 CleanUp() -{ - QueDel(&indirect_head,TRUE); -} - -U0 HandleChar(U8 ch) +U0 CharDo(U8 ch) { I64 old_inhibit,old_draw_it; Bool old_cursor; @@ -1331,297 +66,38 @@ U0 HandleChar(U8 ch) case '\n': throw('NewGame',TRUE); case '1': - SetViewPlayer(0); + ViewPlayerSet(0); break; case '2': - SetViewPlayer(1); + ViewPlayerSet(1); break; - case '3': + case 'c': old_draw_it=Fs->draw_it; old_inhibit=Fs->win_inhibit; Fs->draw_it=Fs->next_settings->draw_it; Fs->win_inhibit=WIG_USER_TASK_DFT; old_cursor=DocCursor(ON); DocBottom; + "\n$$GREEN$$$$FG$$ to return to game.\n"; View; DocBottom; DocCursor(old_cursor); Fs->win_inhibit=old_inhibit; Fs->draw_it=old_draw_it; break; + case 'd': + AnimationDelaySet; + break; } } -U0 CheckUser() +U0 UserChk() { I64 ch; if (!alive_cnt[0] || !alive_cnt[1]) throw('GameOver',TRUE); if (ch=ScanChar) - HandleChar(ch); -} - -U0 PickAI(U8 *dirname,I64 player) -{ - I64 i=0; - U8 *st; - CDirEntry *tempde,*tempde1,*tempde2; - CDoc *doc=DocNew; - Bool *old_silent=Silent; - st=MStrPrint("%s/*.HC*",dirname); - tempde=FilesFind(st); - Free(st); - tempde2=FilesFind("~/ToTheFront/*.HC*"); - tempde1=tempde; - Silent(old_silent); - - DocPrint(doc,"Player %d Type\n\n$$LTBLUE$$",player+1); - while (tempde1) { - if (!(i++&3)) - DocPrint(doc,"\n"); - st=StrNew(tempde1->name); - FileExtRem(st); - tempde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tempde1); - Free(st); - tempde1=tempde1->next; - } - tempde1=tempde2; - while (tempde1) { - if (!(i++&3)) - DocPrint(doc,"\n"); - st=StrNew(tempde1->name); - FileExtRem(st); - tempde1->user_data=DocPrint(doc,"$$MU-UL,\"%-10ts\",LE=%d$$ ",st,tempde1); - Free(st); - tempde1=tempde1->next; - } - DocPrint(doc,"\n\n\n$$FG$$Create your own AI in ~/ToTheFront."); - while ((tempde1=PopUpMenu(doc))<=0); - ExeFile(tempde1->full_name); - DocDel(doc); - DirTreeDel(tempde); - DirTreeDel(tempde2); - ExePrint("plot_routines[%d]=&TanksPlot;" - "move_routines[%d]=&TanksMove;" - "fire_routines[%d]=&TanksFire;",player,player,player); -} - -U0 DrawUnit(CTask *task,CDC *dc,Unit *tempu,I64 x,I64 y,F64 f) -{ - if (tempu->infantry) - Sprite3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0, - tempu->img); - else - SpriteZ3B(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0, - tempu->img,f); - if (phase&~1==PHASE_PLOT && tempu->indirect_fire && - !tempu->fired && tempu->player==cur_player) { - dc->pen_width=2; - if (cur_player) - dc->color=PURPLE; - else - dc->color=CYAN; - GrCircle3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0, - 20*Saw(4*tS,2.0)); - GrCircle3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0, - 20*Saw(4*tS+1.0,2.0)); - dc->pen_width=1; - } -} - -U0 DrawUnits(CTask *task,CDC *dc) -{ - I64 i,j; - F64 x,y; - Unit *tempu; - for (j=0;j<2;j++) { - for (i=0;icolor=RED; - else - dc->color=GREEN; - } else { - if (j) - dc->color=LTPURPLE; - else - dc->color=LTCYAN; - } - if (tempu->life>0 && Bt(&tempu->visible[view_player],0) && - tempu!=moving_unit) { - RowCol2XY(&x,&y,tempu->row,tempu->col); - if (phase&~1==PHASE_MOVE && tempu->remaining_movement || - (phase&~1==PHASE_PLOT&& tempu->indirect_fire|| - phase&~1==PHASE_FIRE&&!tempu->indirect_fire) && !tempu->fired || - Blink(5)) - DrawUnit(task,dc,tempu,x,y,tempu->facing*60.0*ã/180.0); - } - } - } -} - -U0 DrawIt(CTask *task,CDC *dc) -{ - F64 x,y; - I64 h,v,i,j,r,c; - U8 buf[STR_LEN]; - IndirectOrders *tempi; - - task->horz_scroll.min=0; - task->horz_scroll.max=map_width-task->pix_width; - task->vert_scroll.min=-FONT_HEIGHT; - task->vert_scroll.max=map_height-task->pix_height; - TaskDerivedValsUpdate(task); - h=task->horz_scroll.pos; - v=task->vert_scroll.pos; - - map_dc->flags|=DCF_NO_TRANSPARENTS; - GrBlot(dc,-h,-v,map_dc); - - i=ip.pos.x-task->pix_left-task->scroll_x; - j=ip.pos.y-task->pix_top -task->scroll_y; - if (CursorInWindow(task,i,j)) - UpdateCursor(task,i,j); - RowCol2XY(&x,&y,cursor_row,cursor_col); - - //Roads require multiple cursor fills - dc->color=YELLOW; - c=terrain[cursor_row][cursor_col]; - for (i=-(HEX_SIDE+DCOS)/2;i<=(HEX_SIDE+DCOS)/2;i++) { - if (GrPeek(dc,x+i-h,y-v)==c) - GrFloodFill(dc,x+i-h,y-v); - for (j=-HEX_SIDE/2;j<=HEX_SIDE/2;j++) - if (GrPeek(dc,x+j-h,y+i-v)==c) - GrFloodFill(dc,x+j-h,y+i-v); - } - - DrawUnits(task,dc); - if (firing) { - dc->color=BLACK; - GrCircle(dc,fire_x-h,fire_y-v,2); - } - if (indirect_explosion) { - for (i=0;i<7;i++) { - if (indirect_row&1) - c=indirect_col+col_offsets_odd[i]; - else - c=indirect_col+col_offsets_even[i]; - r=indirect_row+row_offsets[i]; - if (0<=rcolor=LTRED; - else - dc->color=YELLOW; - GrCircle(dc,x+RandU16%HEX_SIDE-HEX_SIDE/2-h, - y+RandU16%HEX_SIDE-HEX_SIDE/2-v,2); - } - } - } - } - if (moving_unit && moving_unit->visible[view_player]) { - dc->color=YELLOW; - DrawUnit(task,dc,moving_unit,move_x,move_y,move_facing); - } - ProgressBarsRst; - if (moving_unit) { - if (ip.pos.ymovement; - progress4=moving_unit->remaining_movement; - } else { - progress1_max=moving_unit->movement; - progress1=moving_unit->remaining_movement; - } - } - if (fire_radius) { - dc->color=YELLOW; - GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius-1); - GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius+1); - dc->color=RED; - GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius); - } - if (Blink(10)) { - tempi=indirect_head.next; - while (tempi!=&indirect_head) { - if (tempi->attacker->player==view_player) { - RowCol2XY(&x,&y,tempi->row,tempi->col); - Sprite3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,$IB,"<5>",BI=5$); - } - tempi=tempi->next; - } - } - if (Bt(kbd.down_bitmap,SC_SHIFT)) { - if (show_visible_row!=cursor_row || show_visible_col!=cursor_col) { - show_visible_row=cursor_row; - show_visible_col=cursor_col; - RecalcVisibleMap(show_visible_row,show_visible_col); - } - - dc->color=LTGRAY; - for (j=0;jcolor=BLACK; - GrRect(dc,(task->pix_width-i)>>1-10-task->scroll_x, - (task->pix_height-FONT_HEIGHT)>>1-10-task->scroll_y, - i+20,FONT_HEIGHT+20); - - dc->color=YELLOW; - GrRect(dc,(task->pix_width-i)>>1-7-task->scroll_x, - (task->pix_height-FONT_HEIGHT)>>1-7-task->scroll_y, - i+14,FONT_HEIGHT+14); - - dc->color=RED; - GrPrint(dc,(task->pix_width-i)>>1-task->scroll_x, - (task->pix_height-FONT_HEIGHT)>>1-task->scroll_y, - msg_buf); - if (msg_off_timeout) { - if (msg_off_timeout-cnts.jiffies<3*JIFFY_FREQ/2*ANIMATION_DELAY) - Snd(0); - if (cnts.jiffies>msg_off_timeout) - *msg_buf=0; - } - } - - dc->color=WHITE; - GrRect(dc,-task->scroll_x,-task->scroll_y, - (13+7+10+10)*FONT_WIDTH,FONT_HEIGHT); - - if (phase&~1==PHASE_PLOT) { - dc->color=PURPLE; - StrPrint(buf,"Turn:%2d Artillery",turn); - } else if (phase&~1==PHASE_MOVE) { - dc->color=GREEN; - StrPrint(buf,"Turn:%2d Move",turn); - } else { - dc->color=RED; - StrPrint(buf,"Turn:%2d Fire",turn); - } - GrPrint(dc,-task->scroll_x,-task->scroll_y,buf); - - StrPrint(buf,"%3d Units",alive_cnt[0]); - if (cur_player || Blink) - dc->color=CYAN; - else - dc->color=LTCYAN; - GrPrint(dc,-task->scroll_x+(13+7)*FONT_WIDTH,-task->scroll_y,buf); - - StrPrint(buf,"%3d Units",alive_cnt[1]); - if (!cur_player || Blink) - dc->color=PURPLE; - else - dc->color=LTPURPLE; - GrPrint(dc,-task->scroll_x+(13+7+10)*FONT_WIDTH,-task->scroll_y,buf); + CharDo(ch); } U0 TaskEndCB() @@ -1631,17 +107,17 @@ U0 TaskEndCB() Exit; } -I64 DoPhase() +I64 PhaseDo() { I64 res='ExitGame'; - NewPhase; + PhaseNew; try { - if (phase&~1==PHASE_PLOT) - Call(plot_routines[cur_player]); + if (phase&~1==PHASE_INDIRECT) + Call(player_indirect[cur_player]); else if (phase&~1==PHASE_MOVE) - Call(move_routines[cur_player]); + Call(player_move[cur_player]); else - Call(fire_routines[cur_player]); + Call(player_direct[cur_player]); } catch { res=Fs->except_ch; Fs->catch_except=TRUE; @@ -1670,34 +146,37 @@ U0 ToTheFront() "View {" " Player1(,'1');" " Player2(,'2');" - " ShowOdds(,'3');" + " OddsCalculations(,'c');" " LOS(,0,SCF_SHIFT);" "}" + "Settings {" + " AnimationDelay(,'d');" + "}" ); AutoComplete; - WinBorder(ON); + WinBorder; WinMax; DocCursor; - DocClear; + DocMax; Init; - PickAI("AIs",0); - PickAI("AIs",1); + PlayerPick("AIs",0); + PlayerPick("AIs",1); - PopUpOk("Left-click to move or fire units.\n" - "$$GREEN$$$$FG$$ or right-click to end phase.\n" - "$$GREEN$$\t $$FG$$ to show line-of-sight.\n" - "$$GREEN$$\t $$FG$$ to start new game.\n" - "$$GREEN$$ 1\t $$FG$$ Player 1 view.\n" - "$$GREEN$$ 2\t $$FG$$ Player 2 view.\n" - "$$GREEN$$ 3\t $$FG$$ View odds calculations."); + PopUpOk("$$PURPLE$$$$TX+CX,\"ToTheFront\"$$$$FG$$\n\n" + "$$GREEN$${Left-click}$$FG$$ to move or fire units.\n" + "$$GREEN$$$$FG$$\tor $$GREEN$${Right-click}$$FG$$ to end phase.\n" + "$$GREEN$$$$FG$$\tto show line-of-sight.\n" + "$$GREEN$$$$FG$$\tto start new game.\n" + "$$GREEN$$ 1$$FG$$\tPlayer 1 view.\n" + "$$GREEN$$ 2$$FG$$\tPlayer 2 view.\n" + "$$GREEN$$ c$$FG$$\tView odds calculations.\n" + "$$GREEN$$ d$$FG$$\tSet animation delay."); Fs->task_end_cb=&TaskEndCB; // Fs->draw_it=&DrawIt; - "$$GREEN$$$$FG$$ to return to game.\n"; - try { do { - res=DoPhase; + res=PhaseDo; if (res=='GameOver') { while (TRUE) { msg_off_timeout=0; @@ -1712,9 +191,11 @@ U0 ToTheFront() res='ExitGame'; break; } else if (ch=='1') - SetViewPlayer(0); + ViewPlayerSet(0); else if (ch=='2') - SetViewPlayer(1); + ViewPlayerSet(1); + else if (ch=='d') + AnimationDelaySet; } } else if (res=='NewGame') { CleanUp; @@ -1731,27 +212,3 @@ U0 ToTheFront() CleanUp; Seed; } -L ÿÿÿÿüÿÿÿ úÿÿÿ üÿÿÿúÿÿÿþÿÿÿ -øÿÿÿ üÿÿÿüÿÿÿ -ûÿÿÿûÿÿÿûÿÿÿ -ûÿÿÿ -ûÿÿÿ -ûÿÿÿûÿÿÿûÿÿÿ -üÿÿÿüÿÿÿ -üÿÿÿüÿÿÿG ÿÿÿÿýÿÿÿ -üÿÿÿ -þÿÿÿüÿÿÿþÿÿÿ -úÿÿÿÏ þÿÿÿþÿÿÿ -ÿÿÿÿýÿÿÿýÿÿÿ -ÿÿÿÿüÿÿÿüÿÿÿ -üÿÿÿ -ýÿÿÿ -þÿÿÿûÿÿÿûÿÿÿ -ýÿÿÿüÿÿÿ -þÿÿÿýÿÿÿþÿÿÿüÿÿÿ -ýÿÿÿýÿÿÿýÿÿÿ -ýÿÿÿ - -ÿÿÿÿÿÿÿÿ< -þÿÿÿ -þÿÿÿ \ No newline at end of file diff --git a/Apps/X-Caliber/X-Caliber.HC b/Apps/X-Caliber/X-Caliber.HC index 41e155a..2961dd5 100644 --- a/Apps/X-Caliber/X-Caliber.HC +++ b/Apps/X-Caliber/X-Caliber.HC @@ -140,273 +140,273 @@ $BG$ Bool CheckOverlap() { CD3 p; - MyMass *tempm,*tempm1; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - tempm1=ode->next_mass; - while (tempm1!=&ode->next_mass) { - if (tempm!=tempm1 && !tempm->no_overlap && !tempm1->no_overlap) { - D3Sub(&p,&tempm->x,&tempm1->x); - if (D3NormSqr(&p)<=Sqr(tempm->radius+tempm1->radius)) + MyMass *tmpm,*tmpm1; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + tmpm1=ode->next_mass; + while (tmpm1!=&ode->next_mass) { + if (tmpm!=tmpm1 && !tmpm->no_overlap && !tmpm1->no_overlap) { + D3Sub(&p,&tmpm->x,&tmpm1->x); + if (D3NormSqr(&p)<=Sqr(tmpm->radius+tmpm1->radius)) return TRUE; } - tempm1=tempm1->next; + tmpm1=tmpm1->next; } - tempm=tempm->next; + tmpm=tmpm->next; } return FALSE; } -U0 MissileNew(Ship *tempsp,I64 n) +U0 MissileNew(Ship *tmpsp,I64 n) { I64 i; CD3 p,p1,p2; - Missile *tempmi=&tempsp->missiles[n]; - MemSet(tempmi,0,sizeof(Missile)); + Missile *tmpmi=&tmpsp->missiles[n]; + MemSet(tmpmi,0,sizeof(Missile)); - D3Equ(&tempmi->p_front.x, - (tempsp->p[n+1].x+tempsp->p[n+3].x)/2, - (tempsp->p[n+1].y+tempsp->p[n+3].y)/2,0); - D3Copy(&tempmi->p_back.x,&tempmi->p_front.x); + D3Equ(&tmpmi->p_front.x, + (tmpsp->p[n+1].x+tmpsp->p[n+3].x)/2, + (tmpsp->p[n+1].y+tmpsp->p[n+3].y)/2,0); + D3Copy(&tmpmi->p_back.x,&tmpmi->p_front.x); if (n&1) - StrCpy(tempmi->label,"L"); + StrCpy(tmpmi->label,"L"); else - StrCpy(tempmi->label,"R"); - tempmi->owner=tempsp; - tempmi->explosion_radius=5; - tempmi->p_front.mass=0.1; - tempmi->p_back.mass =0.1; - tempmi->p_front.radius=2; - tempmi->p_back.radius =2; - tempmi->p_front.no_overlap=TRUE; - tempmi->p_back.no_overlap =TRUE; - D3Sub(&p1,&tempsp->p[0].x,&tempsp->p[1].x); - D3Sub(&p2,&tempsp->p[0].x,&tempsp->p[2].x); + StrCpy(tmpmi->label,"R"); + tmpmi->owner=tmpsp; + tmpmi->explosion_radius=5; + tmpmi->p_front.mass=0.1; + tmpmi->p_back.mass =0.1; + tmpmi->p_front.radius=2; + tmpmi->p_back.radius =2; + tmpmi->p_front.no_overlap=TRUE; + tmpmi->p_back.no_overlap =TRUE; + D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x); + D3Sub(&p2,&tmpsp->p[0].x,&tmpsp->p[2].x); D3Unit(D3Add(&p,&p1,&p2)); - D3AddEqu(&tempmi->p_front.x,D3MulEqu(D3Copy(&p1,&p),MISSILE_LEN/2+1)); - D3SubEqu(&tempmi->p_back.x ,D3MulEqu(D3Copy(&p1,&p),MISSILE_LEN/2-1)); - D3Copy(&tempmi->p_front.DxDt,&tempsp->p[n].DxDt); - D3Copy(&tempmi->p_back.DxDt,&tempsp->p[n].DxDt); - QueIns(&tempmi->p_front,ode->last_mass); - QueIns(&tempmi->p_back, ode->last_mass); + D3AddEqu(&tmpmi->p_front.x,D3MulEqu(D3Copy(&p1,&p),MISSILE_LEN/2+1)); + D3SubEqu(&tmpmi->p_back.x ,D3MulEqu(D3Copy(&p1,&p),MISSILE_LEN/2-1)); + D3Copy(&tmpmi->p_front.DxDt,&tmpsp->p[n].DxDt); + D3Copy(&tmpmi->p_back.DxDt,&tmpsp->p[n].DxDt); + QueIns(&tmpmi->p_front,ode->last_mass); + QueIns(&tmpmi->p_back, ode->last_mass); - tempmi->s[0].end1=&tempmi->p_front; - tempmi->s[0].end2=&tempmi->p_back; - tempmi->s[1].end1=&tempmi->p_front; - tempmi->s[1].end2=&tempsp->p[n+1]; - tempmi->s[2].end1=&tempmi->p_back; - tempmi->s[2].end2=&tempsp->p[n+1]; - tempmi->s[3].end1=&tempmi->p_front; - tempmi->s[3].end2=&tempsp->p[n+3]; - tempmi->s[4].end1=&tempmi->p_back; - tempmi->s[4].end2=&tempsp->p[n+3]; + tmpmi->s[0].end1=&tmpmi->p_front; + tmpmi->s[0].end2=&tmpmi->p_back; + tmpmi->s[1].end1=&tmpmi->p_front; + tmpmi->s[1].end2=&tmpsp->p[n+1]; + tmpmi->s[2].end1=&tmpmi->p_back; + tmpmi->s[2].end2=&tmpsp->p[n+1]; + tmpmi->s[3].end1=&tmpmi->p_front; + tmpmi->s[3].end2=&tmpsp->p[n+3]; + tmpmi->s[4].end1=&tmpmi->p_back; + tmpmi->s[4].end2=&tmpsp->p[n+3]; for (i=0;i<5;i++) { - tempmi->s[i].const=10000; - tempmi->s[i].strength =20000; - tempmi->s[i].color=BLACK; - tempmi->s[i].rest_len=D3Dist(&tempmi->s[i].end1->x,&tempmi->s[i].end2->x); - QueIns(&tempmi->s[i],ode->last_spring); + tmpmi->s[i].const=10000; + tmpmi->s[i].strength =20000; + tmpmi->s[i].color=BLACK; + tmpmi->s[i].rest_len=D3Dist(&tmpmi->s[i].end1->x,&tmpmi->s[i].end2->x); + QueIns(&tmpmi->s[i],ode->last_spring); } - tempmi->img=$IB,"<7>",BI=7$; - tempmi->active=TRUE; - QueIns(tempmi,missile_head.last); + tmpmi->img=$IB,"<7>",BI=7$; + tmpmi->active=TRUE; + QueIns(tmpmi,missile_head.last); } Ship *ShipNew(I64 x,I64 y,I64 type) { I64 i; - Ship *tempsp=CAlloc(sizeof(Ship)); + Ship *tmpsp=CAlloc(sizeof(Ship)); - switch (tempsp->type=type) { + switch (tmpsp->type=type) { case ST_HUMAN1: - tempsp->fire_rate=25; - tempsp->masses=5; - tempsp->p[0].x=x; - tempsp->p[0].y=y; - tempsp->p[1].x=x+3; - tempsp->p[1].y=y+10; - tempsp->p[2].x=x-3; - tempsp->p[2].y=y+10; - tempsp->p[3].x=x+20; - tempsp->p[3].y=y+20; - tempsp->p[4].x=x-20; - tempsp->p[4].y=y+20; + tmpsp->fire_rate=25; + tmpsp->masses=5; + tmpsp->p[0].x=x; + tmpsp->p[0].y=y; + tmpsp->p[1].x=x+3; + tmpsp->p[1].y=y+10; + tmpsp->p[2].x=x-3; + tmpsp->p[2].y=y+10; + tmpsp->p[3].x=x+20; + tmpsp->p[3].y=y+20; + tmpsp->p[4].x=x-20; + tmpsp->p[4].y=y+20; - for (i=0;imasses;i++) { - tempsp->p[i].mass=1; + for (i=0;imasses;i++) { + tmpsp->p[i].mass=1; if (i<3) - tempsp->p[i].radius=2.5; + tmpsp->p[i].radius=2.5; else - tempsp->p[i].radius=4; - tempsp->p[i].drag_profile_factor=3; - QueIns(&tempsp->p[i],ode->last_mass); + tmpsp->p[i].radius=4; + tmpsp->p[i].drag_profile_factor=3; + QueIns(&tmpsp->p[i],ode->last_mass); } - tempsp->p[3].mass/=10.0; - tempsp->p[4].mass/=10.0; + tmpsp->p[3].mass/=10.0; + tmpsp->p[4].mass/=10.0; - tempsp->springs=7; - tempsp->s[0].end1=&tempsp->p[0]; - tempsp->s[0].end2=&tempsp->p[1]; - tempsp->s[1].end1=&tempsp->p[2]; - tempsp->s[1].end2=&tempsp->p[0]; - tempsp->s[2].end1=&tempsp->p[1]; - tempsp->s[2].end2=&tempsp->p[2]; - tempsp->s[3].end1=&tempsp->p[1]; - tempsp->s[3].end2=&tempsp->p[3]; - tempsp->s[4].end1=&tempsp->p[0]; - tempsp->s[4].end2=&tempsp->p[3]; - tempsp->s[5].end1=&tempsp->p[2]; - tempsp->s[5].end2=&tempsp->p[4]; - tempsp->s[6].end1=&tempsp->p[0]; - tempsp->s[6].end2=&tempsp->p[4]; + tmpsp->springs=7; + tmpsp->s[0].end1=&tmpsp->p[0]; + tmpsp->s[0].end2=&tmpsp->p[1]; + tmpsp->s[1].end1=&tmpsp->p[2]; + tmpsp->s[1].end2=&tmpsp->p[0]; + tmpsp->s[2].end1=&tmpsp->p[1]; + tmpsp->s[2].end2=&tmpsp->p[2]; + tmpsp->s[3].end1=&tmpsp->p[1]; + tmpsp->s[3].end2=&tmpsp->p[3]; + tmpsp->s[4].end1=&tmpsp->p[0]; + tmpsp->s[4].end2=&tmpsp->p[3]; + tmpsp->s[5].end1=&tmpsp->p[2]; + tmpsp->s[5].end2=&tmpsp->p[4]; + tmpsp->s[6].end1=&tmpsp->p[0]; + tmpsp->s[6].end2=&tmpsp->p[4]; - for (i=0;isprings;i++) { - tempsp->s[i].rest_len= - D3Dist(&tempsp->s[i].end1->x,&tempsp->s[i].end2->x); - tempsp->s[i].const=10000; - tempsp->s[i].strength =30000; + for (i=0;isprings;i++) { + tmpsp->s[i].rest_len= + D3Dist(&tmpsp->s[i].end1->x,&tmpsp->s[i].end2->x); + tmpsp->s[i].const=10000; + tmpsp->s[i].strength =30000; if (i<=2) - tempsp->s[i].color=LTCYAN; + tmpsp->s[i].color=LTCYAN; else - tempsp->s[i].color=LTGRAY; - QueIns(&tempsp->s[i],ode->last_spring); + tmpsp->s[i].color=LTGRAY; + QueIns(&tmpsp->s[i],ode->last_spring); } - MissileNew(tempsp,0); - MissileNew(tempsp,1); + MissileNew(tmpsp,0); + MissileNew(tmpsp,1); remaining=0; break; case ST_ENEMY1: - tempsp->fire_rate=2.5; - tempsp->masses=3; - tempsp->p[0].x=x; - tempsp->p[0].y=y; - tempsp->p[1].x=x+15; - tempsp->p[1].y=y; - tempsp->p[2].x=x; - tempsp->p[2].y=y+15; + tmpsp->fire_rate=2.5; + tmpsp->masses=3; + tmpsp->p[0].x=x; + tmpsp->p[0].y=y; + tmpsp->p[1].x=x+15; + tmpsp->p[1].y=y; + tmpsp->p[2].x=x; + tmpsp->p[2].y=y+15; - for (i=0;imasses;i++) { - tempsp->p[i].mass=1; - tempsp->p[i].radius=7; - tempsp->p[i].drag_profile_factor=3; - QueIns(&tempsp->p[i],ode->last_mass); + for (i=0;imasses;i++) { + tmpsp->p[i].mass=1; + tmpsp->p[i].radius=7; + tmpsp->p[i].drag_profile_factor=3; + QueIns(&tmpsp->p[i],ode->last_mass); } - tempsp->springs=3; - tempsp->s[0].end1=&tempsp->p[0]; - tempsp->s[0].end2=&tempsp->p[1]; - tempsp->s[1].end1=&tempsp->p[1]; - tempsp->s[1].end2=&tempsp->p[2]; - tempsp->s[2].end1=&tempsp->p[2]; - tempsp->s[2].end2=&tempsp->p[0]; + tmpsp->springs=3; + tmpsp->s[0].end1=&tmpsp->p[0]; + tmpsp->s[0].end2=&tmpsp->p[1]; + tmpsp->s[1].end1=&tmpsp->p[1]; + tmpsp->s[1].end2=&tmpsp->p[2]; + tmpsp->s[2].end1=&tmpsp->p[2]; + tmpsp->s[2].end2=&tmpsp->p[0]; - for (i=0;isprings;i++) { - tempsp->s[i].rest_len= - D3Dist(&tempsp->s[i].end1->x,&tempsp->s[i].end2->x); - tempsp->s[i].const=10000; - tempsp->s[i].strength =20000; - tempsp->s[i].color=BLACK; - QueIns(&tempsp->s[i],ode->last_spring); + for (i=0;isprings;i++) { + tmpsp->s[i].rest_len= + D3Dist(&tmpsp->s[i].end1->x,&tmpsp->s[i].end2->x); + tmpsp->s[i].const=10000; + tmpsp->s[i].strength =20000; + tmpsp->s[i].color=BLACK; + QueIns(&tmpsp->s[i],ode->last_spring); } remaining++; break; case ST_ENEMY2: - tempsp->fire_rate=5.0; - tempsp->masses=5; - tempsp->p[0].x=x; - tempsp->p[0].y=y; - tempsp->p[1].x=x-7; - tempsp->p[1].y=y+10; - tempsp->p[2].x=x+7; - tempsp->p[2].y=y+10; - tempsp->p[3].x=x-14; - tempsp->p[3].y=y+20; - tempsp->p[4].x=x+14; - tempsp->p[4].y=y+20; + tmpsp->fire_rate=5.0; + tmpsp->masses=5; + tmpsp->p[0].x=x; + tmpsp->p[0].y=y; + tmpsp->p[1].x=x-7; + tmpsp->p[1].y=y+10; + tmpsp->p[2].x=x+7; + tmpsp->p[2].y=y+10; + tmpsp->p[3].x=x-14; + tmpsp->p[3].y=y+20; + tmpsp->p[4].x=x+14; + tmpsp->p[4].y=y+20; - for (i=0;imasses;i++) { - tempsp->p[i].mass=1; - tempsp->p[i].radius=6; - tempsp->p[i].drag_profile_factor=5; - tempsp->p[i].color=PURPLE; - QueIns(&tempsp->p[i],ode->last_mass); + for (i=0;imasses;i++) { + tmpsp->p[i].mass=1; + tmpsp->p[i].radius=6; + tmpsp->p[i].drag_profile_factor=5; + tmpsp->p[i].color=PURPLE; + QueIns(&tmpsp->p[i],ode->last_mass); } - tempsp->springs=7; - tempsp->s[0].end1=&tempsp->p[0]; - tempsp->s[0].end2=&tempsp->p[1]; - tempsp->s[1].end1=&tempsp->p[0]; - tempsp->s[1].end2=&tempsp->p[2]; - tempsp->s[2].end1=&tempsp->p[1]; - tempsp->s[2].end2=&tempsp->p[2]; - tempsp->s[3].end1=&tempsp->p[1]; - tempsp->s[3].end2=&tempsp->p[3]; - tempsp->s[4].end1=&tempsp->p[2]; - tempsp->s[4].end2=&tempsp->p[4]; - tempsp->s[5].end1=&tempsp->p[2]; - tempsp->s[5].end2=&tempsp->p[3]; - tempsp->s[6].end1=&tempsp->p[1]; - tempsp->s[6].end2=&tempsp->p[4]; + tmpsp->springs=7; + tmpsp->s[0].end1=&tmpsp->p[0]; + tmpsp->s[0].end2=&tmpsp->p[1]; + tmpsp->s[1].end1=&tmpsp->p[0]; + tmpsp->s[1].end2=&tmpsp->p[2]; + tmpsp->s[2].end1=&tmpsp->p[1]; + tmpsp->s[2].end2=&tmpsp->p[2]; + tmpsp->s[3].end1=&tmpsp->p[1]; + tmpsp->s[3].end2=&tmpsp->p[3]; + tmpsp->s[4].end1=&tmpsp->p[2]; + tmpsp->s[4].end2=&tmpsp->p[4]; + tmpsp->s[5].end1=&tmpsp->p[2]; + tmpsp->s[5].end2=&tmpsp->p[3]; + tmpsp->s[6].end1=&tmpsp->p[1]; + tmpsp->s[6].end2=&tmpsp->p[4]; - for (i=0;isprings;i++) { - tempsp->s[i].rest_len= - D3Dist(&tempsp->s[i].end1->x,&tempsp->s[i].end2->x); - tempsp->s[i].const= 40000; - tempsp->s[i].strength =75000; + for (i=0;isprings;i++) { + tmpsp->s[i].rest_len= + D3Dist(&tmpsp->s[i].end1->x,&tmpsp->s[i].end2->x); + tmpsp->s[i].const= 40000; + tmpsp->s[i].strength =75000; if (i>=3) - tempsp->s[i].color=LTPURPLE; + tmpsp->s[i].color=LTPURPLE; else - tempsp->s[i].color=BLACK; - QueIns(&tempsp->s[i],ode->last_spring); + tmpsp->s[i].color=BLACK; + QueIns(&tmpsp->s[i],ode->last_spring); } remaining++; break; } - QueIns(tempsp,ship_head.last); - return tempsp; + QueIns(tmpsp,ship_head.last); + return tmpsp; } -U0 MissileDel(Missile *tempmi) +U0 MissileDel(Missile *tmpmi) { I64 i; - if (tempmi->active) { - QueRem(tempmi); + if (tmpmi->active) { + QueRem(tmpmi); for(i=0;i<5;i++) - QueRem(&tempmi->s[i]); - QueRem(&tempmi->p_front); - QueRem(&tempmi->p_back); - tempmi->active=FALSE; + QueRem(&tmpmi->s[i]); + QueRem(&tmpmi->p_front); + QueRem(&tmpmi->p_back); + tmpmi->active=FALSE; } } -U0 ShipDel(Ship *tempsp) +U0 ShipDel(Ship *tmpsp) { I64 i; - if (!tempsp) return; - for (i=0;imasses;i++) - QueRem(&tempsp->p[i]); - for (i=0;isprings;i++) - QueRem(&tempsp->s[i]); + if (!tmpsp) return; + for (i=0;imasses;i++) + QueRem(&tmpsp->p[i]); + for (i=0;isprings;i++) + QueRem(&tmpsp->s[i]); for (i=0;i<2;i++) - MissileDel(&tempsp->missiles[i]); - QueRem(tempsp); - Free(tempsp); + MissileDel(&tmpsp->missiles[i]); + QueRem(tmpsp); + Free(tmpsp); remaining--; } U0 PlaceShip(I64 type) { - Ship *tempsp; + Ship *tmpsp; if (CheckOverlap) return; while (TRUE) { - tempsp=ShipNew(RandU16%(Fs->pix_width-20)+10, + tmpsp=ShipNew(RandU16%(Fs->pix_width-20)+10, RandU16%(Fs->pix_height-20)+10,type); if (CheckOverlap) - ShipDel(tempsp); + ShipDel(tmpsp); else break; } @@ -436,13 +436,13 @@ I64 Tweaked() U0 AllDel(CMathODE *ode) { - Ship *tempsp,*tempsp1; + Ship *tmpsp,*tmpsp1; QueRem(ode); - tempsp=ship_head.next; - while (tempsp!=&ship_head) { - tempsp1=tempsp->next; - ShipDel(tempsp); - tempsp=tempsp1; + tmpsp=ship_head.next; + while (tmpsp!=&ship_head) { + tmpsp1=tmpsp->next; + ShipDel(tmpsp); + tmpsp=tmpsp1; } human=NULL; QueDel(&shot_head,TRUE); @@ -466,12 +466,12 @@ U0 DrawIt(CTask *task,CDC *dc) { I64 i,j; F64 arg; - Ship *tempsp; - Shot *temps; - Missile *tempmi; + Ship *tmpsp; + Shot *tmps; + Missile *tmpmi; CD3 p,p1,p2; F64 t_left,t_right,spin,d,x,y; - MySpring *tempsps; + MySpring *tmpsps; U8 *img; Bool draw_laser_line=FALSE; @@ -492,49 +492,49 @@ U0 DrawIt(CTask *task,CDC *dc) for (i=0;inext_spring; - while (tempsps!=&ode->next_spring) { - if (!(tempsps->flags&SSF_INACTIVE) && tempsps->color) { - dc->color=tempsps->color; - GrLine(dc,tempsps->end1->x,tempsps->end1->y, - tempsps->end2->x,tempsps->end2->y); + tmpsps=ode->next_spring; + while (tmpsps!=&ode->next_spring) { + if (!(tmpsps->flags&SSF_INACTIVE) && tmpsps->color) { + dc->color=tmpsps->color; + GrLine(dc,tmpsps->end1->x,tmpsps->end1->y, + tmpsps->end2->x,tmpsps->end2->y); } - tempsps=tempsps->next; + tmpsps=tmpsps->next; } - tempmi=missile_head.next; - while (tempmi!=&missile_head) { - if (tempmi->active) { - if (tempmi->launched && tempmi->exploding) { - d=(tS-tempmi->fuse_time)/(tempmi->die_timeout-tempmi->fuse_time); - d=7*Sin(ã*d)*tempmi->explosion_radius+1; + tmpmi=missile_head.next; + while (tmpmi!=&missile_head) { + if (tmpmi->active) { + if (tmpmi->launched && tmpmi->exploding) { + d=(tS-tmpmi->fuse_time)/(tmpmi->die_timeout-tmpmi->fuse_time); + d=7*Sin(ã*d)*tmpmi->explosion_radius+1; for (i=1;icolor=YELLOW; else dc->color=LTRED; - GrCircle(dc,tempmi->p_front.x,tempmi->p_front.y,i); + GrCircle(dc,tmpmi->p_front.x,tmpmi->p_front.y,i); } } else - SpriteZ3B(dc,(tempmi->p_front.x+tempmi->p_back.x)/2, - (tempmi->p_front.y+tempmi->p_back.y)/2,0,tempmi->img, - Arg(tempmi->p_front.x-tempmi->p_back.x, - tempmi->p_front.y-tempmi->p_back.y)); + SpriteZ3B(dc,(tmpmi->p_front.x+tmpmi->p_back.x)/2, + (tmpmi->p_front.y+tmpmi->p_back.y)/2,0,tmpmi->img, + Arg(tmpmi->p_front.x-tmpmi->p_back.x, + tmpmi->p_front.y-tmpmi->p_back.y)); } - tempmi=tempmi->next; + tmpmi=tmpmi->next; } - tempsp=ship_head.next; - while (tempsp!=&ship_head) { - if (!tempsp->exploding) - switch (tempsp->type) { + tmpsp=ship_head.next; + while (tmpsp!=&ship_head) { + if (!tmpsp->exploding) + switch (tmpsp->type) { case ST_HUMAN1: - if (tempsp->spacewalk_side) { + if (tmpsp->spacewalk_side) { t_left=0; t_right=0; } else { - if (d=D3Norm(D3Sub(&p1,&tempsp->p[0].x,&tempsp->p[1].x))) { - D3Sub(&p2,&tempsp->p[0].DxDt,&tempsp->p[1].DxDt); + if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x))) { + D3Sub(&p2,&tmpsp->p[0].DxDt,&tmpsp->p[1].DxDt); D3Cross(&p,&p1,&p2); spin=p.z/d; } else @@ -542,8 +542,8 @@ U0 DrawIt(CTask *task,CDC *dc) t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin, 0,MAX_THRUST); - if (d=D3Norm(D3Sub(&p1,&tempsp->p[0].x,&tempsp->p[2].x))) { - D3Sub(&p2,&tempsp->p[0].DxDt,&tempsp->p[2].DxDt); + if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[2].x))) { + D3Sub(&p2,&tmpsp->p[0].DxDt,&tmpsp->p[2].DxDt); D3Cross(&p,&p1,&p2); spin=p.z/d; } else @@ -552,158 +552,158 @@ U0 DrawIt(CTask *task,CDC *dc) 0,MAX_THRUST); } - D3Sub(&p1,&tempsp->p[1].x,&tempsp->p[0].x); - D3Sub(&p2,&tempsp->p[2].x,&tempsp->p[0].x); + D3Sub(&p1,&tmpsp->p[1].x,&tmpsp->p[0].x); + D3Sub(&p2,&tmpsp->p[2].x,&tmpsp->p[0].x); D3Unit(D3Add(&p,&p1,&p2)); - if (!(tempsp->s[3].flags&SSF_INACTIVE)) { + if (!(tmpsp->s[3].flags&SSF_INACTIVE)) { dc->color=YELLOW; - D3AddEqu(D3Mul(&p1,t_left/25,&p),&tempsp->p[3].x); - GrLine(dc,tempsp->p[1].x,tempsp->p[1].y,p1.x,p1.y); + D3AddEqu(D3Mul(&p1,t_left/25,&p),&tmpsp->p[3].x); + GrLine(dc,tmpsp->p[1].x,tmpsp->p[1].y,p1.x,p1.y); arg=Arg(p.x,p.y); - SpriteZ3B(dc,tempsp->p[3].x,tempsp->p[3].y,0,$IB,"",BI=1$,arg); + SpriteZ3B(dc,tmpsp->p[3].x,tmpsp->p[3].y,0,$IB,"",BI=1$,arg); } - if (!(tempsp->s[5].flags&SSF_INACTIVE)) { + if (!(tmpsp->s[5].flags&SSF_INACTIVE)) { dc->color=YELLOW; - D3AddEqu(D3Mul(&p2,t_right/25,&p),&tempsp->p[4].x); - GrLine(dc,tempsp->p[2].x,tempsp->p[2].y,p2.x,p2.y); + D3AddEqu(D3Mul(&p2,t_right/25,&p),&tmpsp->p[4].x); + GrLine(dc,tmpsp->p[2].x,tmpsp->p[2].y,p2.x,p2.y); arg=Arg(p.x,p.y); - SpriteZ3B(dc,tempsp->p[4].x,tempsp->p[4].y,0,$IB,"",BI=1$,arg); + SpriteZ3B(dc,tmpsp->p[4].x,tmpsp->p[4].y,0,$IB,"",BI=1$,arg); } - if (tS>tempsp->reload_timeout) + if (tS>tmpsp->reload_timeout) img=$IB,"",BI=2$; else img=$IB,"",BI=3$; arg=Arg(p.x,p.y); switch (level) { case 3: - if (!(tempsp->s[3].flags&SSF_INACTIVE)) - SpriteZ3B(dc,tempsp->p[3].x,tempsp->p[3].y,0,img,arg); - if (!(tempsp->s[5].flags&SSF_INACTIVE)) - SpriteZ3B(dc,tempsp->p[4].x,tempsp->p[4].y,0,img,arg); + if (!(tmpsp->s[3].flags&SSF_INACTIVE)) + SpriteZ3B(dc,tmpsp->p[3].x,tmpsp->p[3].y,0,img,arg); + if (!(tmpsp->s[5].flags&SSF_INACTIVE)) + SpriteZ3B(dc,tmpsp->p[4].x,tmpsp->p[4].y,0,img,arg); case 2: - if (!(tempsp->s[1].flags&SSF_INACTIVE)) - SpriteZ3B(dc,tempsp->p[1].x,tempsp->p[1].y,0,img,arg); - if (!(tempsp->s[2].flags&SSF_INACTIVE)) - SpriteZ3B(dc,tempsp->p[2].x,tempsp->p[2].y,0,img,arg); + if (!(tmpsp->s[1].flags&SSF_INACTIVE)) + SpriteZ3B(dc,tmpsp->p[1].x,tmpsp->p[1].y,0,img,arg); + if (!(tmpsp->s[2].flags&SSF_INACTIVE)) + SpriteZ3B(dc,tmpsp->p[2].x,tmpsp->p[2].y,0,img,arg); case 1: - SpriteZ3B(dc,tempsp->p[0].x,tempsp->p[0].y,0,img,arg); + SpriteZ3B(dc,tmpsp->p[0].x,tmpsp->p[0].y,0,img,arg); break; default: - SpriteZ3B(dc,tempsp->p[0].x,tempsp->p[0].y,0,$IB,"",BI=6$,arg); - if (tempsp->lasering && !tempsp->laser_overheat) { + SpriteZ3B(dc,tmpsp->p[0].x,tmpsp->p[0].y,0,$IB,"",BI=6$,arg); + if (tmpsp->lasering && !tmpsp->laser_overheat) { draw_laser_line=TRUE; Snd(1000); } } - ctrl_panel.laser_temperature=tempsp->laser_temperature; + ctrl_panel.laser_temperature=tmpsp->laser_temperature; - if (tempsp->spacewalk_side) { - d=1.0-(tempsp->spacewalk_timeout-tS)/SPACEWALK_TIME; + if (tmpsp->spacewalk_side) { + d=1.0-(tmpsp->spacewalk_timeout-tS)/SPACEWALK_TIME; if (d>1.0) { - tempsp->spacewalk_side=0; + tmpsp->spacewalk_side=0; ctrl_panel.spacewalk=FALSE; } else { if (d<0.5) { d=d*2; - x=tempsp->p[0].x*(1.0-d)+ - tempsp->p[tempsp->spacewalk_side].x*(d); - y=tempsp->p[0].y*(1.0-d)+ - tempsp->p[tempsp->spacewalk_side].y*(d); + x=tmpsp->p[0].x*(1.0-d)+ + tmpsp->p[tmpsp->spacewalk_side].x*(d); + y=tmpsp->p[0].y*(1.0-d)+ + tmpsp->p[tmpsp->spacewalk_side].y*(d); } else { d=(d-0.5)*2; - x=tempsp->p[tempsp->spacewalk_side].x*(1.0-d)+ - tempsp->p[0].x*(d); - y=tempsp->p[tempsp->spacewalk_side].y*(1.0-d)+ - tempsp->p[0].y*(d); + x=tmpsp->p[tmpsp->spacewalk_side].x*(1.0-d)+ + tmpsp->p[0].x*(d); + y=tmpsp->p[tmpsp->spacewalk_side].y*(1.0-d)+ + tmpsp->p[0].y*(d); } SpriteZ3B(dc,x,y,0,$IB,"",BI=4$,arg+0.75*Sin(tS*2)); } } else { if (ctrl_panel.spacewalk) { - if (tempsp->spacewalk_side=Tweaked) - tempsp->spacewalk_timeout=tS+SPACEWALK_TIME; + if (tmpsp->spacewalk_side=Tweaked) + tmpsp->spacewalk_timeout=tS+SPACEWALK_TIME; else ctrl_panel.spacewalk=FALSE; } } break; case ST_ENEMY2: - for (i=3;imasses;i++) { - dc->color=tempsp->p[i].color; - GrCircle(dc,tempsp->p[i].x,tempsp->p[i].y,tempsp->p[i].radius); - GrFloodFill(dc,tempsp->p[i].x,tempsp->p[i].y+2,TRUE); + for (i=3;imasses;i++) { + dc->color=tmpsp->p[i].color; + GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y,tmpsp->p[i].radius); + GrFloodFill(dc,tmpsp->p[i].x,tmpsp->p[i].y+2,TRUE); dc->color=WHITE; - GrCircle(dc,tempsp->p[i].x,tempsp->p[i].y,tempsp->p[i].radius); + GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y,tmpsp->p[i].radius); } case ST_ENEMY1: - D3DivEqu(D3Sub(&p1,&tempsp->p[1].x,&tempsp->p[0].x),2.0); - D3DivEqu(D3Sub(&p2,&tempsp->p[2].x,&tempsp->p[0].x),2.0); + D3DivEqu(D3Sub(&p1,&tmpsp->p[1].x,&tmpsp->p[0].x),2.0); + D3DivEqu(D3Sub(&p2,&tmpsp->p[2].x,&tmpsp->p[0].x),2.0); D3Unit(D3Add(&p,&p1,&p2)); - if (tS>tempsp->reload_timeout) + if (tS>tmpsp->reload_timeout) img=$IB,"",BI=2$; else img=$IB,"",BI=3$; arg=Arg(p.x,p.y); - SpriteZ3B(dc,tempsp->p[0].x,tempsp->p[0].y,0,img,arg); + SpriteZ3B(dc,tmpsp->p[0].x,tmpsp->p[0].y,0,img,arg); arg=Arg(p1.x,p1.y); - SpriteZ3B(dc,tempsp->p[0].x+p1.x,tempsp->p[0].y+p1.y,0, + SpriteZ3B(dc,tmpsp->p[0].x+p1.x,tmpsp->p[0].y+p1.y,0, $IB,"",BI=5$,arg); arg=Arg(p2.x,p2.y); - SpriteZ3B(dc,tempsp->p[0].x+p2.x,tempsp->p[0].y+p2.y,0, + SpriteZ3B(dc,tmpsp->p[0].x+p2.x,tmpsp->p[0].y+p2.y,0, $IB,"",BI=5$,arg); - for (i=0;imasses;i++) { + for (i=0;imasses;i++) { dc->color=YELLOW; - if (tempsp->p[i].temperature>=1.0) - GrCircle(dc,tempsp->p[i].x,tempsp->p[i].y, - tempsp->p[i].temperature); + if (tmpsp->p[i].temperature>=1.0) + GrCircle(dc,tmpsp->p[i].x,tmpsp->p[i].y, + tmpsp->p[i].temperature); } break; } - else if (tempsp->die_time<=tS<=tempsp->die_timeout) - for (j=0;jmasses;j++) { - d=(tS-tempsp->die_time)/(tempsp->die_timeout-tempsp->die_time); + else if (tmpsp->die_time<=tS<=tmpsp->die_timeout) + for (j=0;jmasses;j++) { + d=(tS-tmpsp->die_time)/(tmpsp->die_timeout-tmpsp->die_time); d=7*Sin(ã*d)*(6+j)+1; for (i=1;icolor=YELLOW; else dc->color=LTRED; - GrCircle(dc,tempsp->p[j].x,tempsp->p[j].y,i); + GrCircle(dc,tmpsp->p[j].x,tmpsp->p[j].y,i); } } - tempsp=tempsp->next; + tmpsp=tmpsp->next; } - temps=shot_head.next; - while (temps!=&shot_head) { - if (temps->exploding) { - d=(tS-temps->fuse_time)/(temps->die_timeout-temps->fuse_time); - d=7*Sin(ã*d)*temps->explosion_radius+1; + tmps=shot_head.next; + while (tmps!=&shot_head) { + if (tmps->exploding) { + d=(tS-tmps->fuse_time)/(tmps->die_timeout-tmps->fuse_time); + d=7*Sin(ã*d)*tmps->explosion_radius+1; for (i=1;icolor=YELLOW; else dc->color=LTRED; - GrCircle(dc,temps->p.x,temps->p.y,i); + GrCircle(dc,tmps->p.x,tmps->p.y,i); } } else { - if (temps->radius<1.0) { + if (tmps->radius<1.0) { dc->color=LTGREEN; - GrPlot(dc,temps->p.x,temps->p.y); + GrPlot(dc,tmps->p.x,tmps->p.y); } else { dc->color=YELLOW; - GrCircle(dc,temps->p.x,temps->p.y,temps->radius); - if (temps->radius>=2.0) - GrFloodFill(dc,temps->p.x,temps->p.y,TRUE); + GrCircle(dc,tmps->p.x,tmps->p.y,tmps->radius); + if (tmps->radius>=2.0) + GrFloodFill(dc,tmps->p.x,tmps->p.y,TRUE); dc->color=LTGREEN; - GrCircle(dc,temps->p.x,temps->p.y,temps->radius); + GrCircle(dc,tmps->p.x,tmps->p.y,tmps->radius); } } - temps=temps->next; + tmps=tmps->next; } if (human && draw_laser_line) { @@ -715,28 +715,28 @@ U0 DrawIt(CTask *task,CDC *dc) human->p[0].x-800*p.x,human->p[0].y-800*p.y,0,&LaserPlot); } - tempmi=missile_head.next; - while (tempmi!=&missile_head) { - if (tempsp=tempmi->target) { + tmpmi=missile_head.next; + while (tmpmi!=&missile_head) { + if (tmpsp=tmpmi->target) { dc->color=LTRED; - GrCircle(dc,tempsp->p[0].x,tempsp->p[0].y,10); - GrPrint(dc,tempsp->p[0].x+12,tempsp->p[0].y-4,tempmi->label); + GrCircle(dc,tmpsp->p[0].x,tmpsp->p[0].y,10); + GrPrint(dc,tmpsp->p[0].x+12,tmpsp->p[0].y-4,tmpmi->label); } - tempmi=tempmi->next; + tmpmi=tmpmi->next; } } -U0 Explosion(MyMass *tempm1,MyMass *tempm2,F64 r) +U0 Explosion(MyMass *tmpm1,MyMass *tmpm2,F64 r) { - MyMass *tempm; + MyMass *tmpm; CD3 p1; F64 d; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - if (tempm!=tempm1 && tempm!=tempm2) { - D3Sub(&p1,&tempm->state->x,&tempm1->state->x); - d=D3NormSqr(&p1)-tempm->radius*tempm->radius; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + if (tmpm!=tmpm1 && tmpm!=tmpm2) { + D3Sub(&p1,&tmpm->state->x,&tmpm1->state->x); + d=D3NormSqr(&p1)-tmpm->radius*tmpm->radius; if (d<100.0*100.0) { if (d<1) d=1; @@ -745,36 +745,36 @@ U0 Explosion(MyMass *tempm1,MyMass *tempm2,F64 r) d=2e8*r`7/d`6; if (d>1e5) d=1e5; D3MulEqu(&p1,d); - D3AddEqu(&tempm->DstateDt->DxDt,&p1); + D3AddEqu(&tmpm->DstateDt->DxDt,&p1); } } - tempm=tempm->next; + tmpm=tmpm->next; } } -Ship TargetGet(Missile *tempmi) +Ship TargetGet(Missile *tmpmi) { - Ship *tempsp,*res=NULL; + Ship *tmpsp,*res=NULL; F64 dd,best_dd=MAX_F64; I64 i; CD3 p,p1,p2; - D3Unit(D3Sub(&p,&tempmi->p_front.state->x,&tempmi->p_back.state->x)); - tempsp=ship_head.next; - while (tempsp!=&ship_head) { - if (!tempsp->exploding && tempsp!=tempmi->owner) - for (i=0;imasses;i++) { - D3Sub(&p1,&tempsp->p[i].state->x,&tempmi->p_front.state->x); + D3Unit(D3Sub(&p,&tmpmi->p_front.state->x,&tmpmi->p_back.state->x)); + tmpsp=ship_head.next; + while (tmpsp!=&ship_head) { + if (!tmpsp->exploding && tmpsp!=tmpmi->owner) + for (i=0;imasses;i++) { + D3Sub(&p1,&tmpsp->p[i].state->x,&tmpmi->p_front.state->x); D3Unit(D3Copy(&p2,&p1)); D3Cross(&p1,&p,&p2); if (D3Dot(&p,&p2)>0 && D3Norm(&p1)<=ã/16) { dd=D3NormSqr(&p1); if (ddnext; + tmpsp=tmpsp->next; } return res; } @@ -785,72 +785,72 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) F64 d,dd,dd2,spin,t_left,t_right,é_err,é_thrust,DéDt; CTask *task=ode->win_task; CD3 p,p1,p2; - Ship *tempsp; - Shot *temps; - Missile *tempmi; - MyMass *tempm,*tempm1; + Ship *tmpsp; + Shot *tmps; + Missile *tmpmi; + MyMass *tmpm,*tmpm1; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - d=tempm->state->x; - if (d-tempm->radius<0) - tempm->DstateDt->DxDt+=Sqr(Sqr(Sqr(d-tempm->radius))); - if (d+tempm->radius>task->pix_width) - tempm->DstateDt->DxDt-=Sqr(Sqr(Sqr((d+tempm->radius)-task->pix_width))); + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + d=tmpm->state->x; + if (d-tmpm->radius<0) + tmpm->DstateDt->DxDt+=Sqr(Sqr(Sqr(d-tmpm->radius))); + if (d+tmpm->radius>task->pix_width) + tmpm->DstateDt->DxDt-=Sqr(Sqr(Sqr((d+tmpm->radius)-task->pix_width))); - d=tempm->state->y; - if (d-tempm->radius<0) - tempm->DstateDt->DyDt+=Sqr(Sqr(Sqr(d-tempm->radius))); - if (d+tempm->radius>task->pix_height) - tempm->DstateDt->DyDt-=Sqr(Sqr(Sqr((d+tempm->radius)-task->pix_height))); - tempm1=ode->next_mass; - while (tempm1!=&ode->next_mass) { - if (tempm!=tempm1) { - D3Sub(&p,&tempm->state->x,&tempm1->state->x); + d=tmpm->state->y; + if (d-tmpm->radius<0) + tmpm->DstateDt->DyDt+=Sqr(Sqr(Sqr(d-tmpm->radius))); + if (d+tmpm->radius>task->pix_height) + tmpm->DstateDt->DyDt-=Sqr(Sqr(Sqr((d+tmpm->radius)-task->pix_height))); + tmpm1=ode->next_mass; + while (tmpm1!=&ode->next_mass) { + if (tmpm!=tmpm1) { + D3Sub(&p,&tmpm->state->x,&tmpm1->state->x); dd=D3NormSqr(&p); - dd2=Sqr(tempm->radius+tempm1->radius); + dd2=Sqr(tmpm->radius+tmpm1->radius); if (dd<=dd2) { d=Sqrt(dd)+0.0001; D3MulEqu(&p,Sqr(Sqr(dd2-dd))/d); - D3AddEqu(&tempm ->DstateDt->DxDt,&p); - D3SubEqu(&tempm1->DstateDt->DxDt,&p); + D3AddEqu(&tmpm ->DstateDt->DxDt,&p); + D3SubEqu(&tmpm1->DstateDt->DxDt,&p); } } - tempm1=tempm1->next; + tmpm1=tmpm1->next; } - tempm=tempm->next; + tmpm=tmpm->next; } - tempsp=ship_head.next; - while (tempsp!=&ship_head) { - if (tempsp->exploding && tempsp->die_time<=tS<=tempsp->die_timeout) - for (i=0;imasses;i++) - Explosion(&tempsp->p[i],NULL,tempsp->p[i].radius/3.0); - switch (tempsp->type) { + tmpsp=ship_head.next; + while (tmpsp!=&ship_head) { + if (tmpsp->exploding && tmpsp->die_time<=tS<=tmpsp->die_timeout) + for (i=0;imasses;i++) + Explosion(&tmpsp->p[i],NULL,tmpsp->p[i].radius/3.0); + switch (tmpsp->type) { case ST_HUMAN1: - if (!tempsp->exploding) { - if (tempsp->spacewalk_side) { + if (!tmpsp->exploding) { + if (tmpsp->spacewalk_side) { t_left=0; t_right=0; - d=1.0-(tempsp->spacewalk_timeout-tS)/SPACEWALK_TIME; + d=1.0-(tmpsp->spacewalk_timeout-tS)/SPACEWALK_TIME; if (0.485p[2].state->x,&tempsp->p[1].state->x)); - if (tempsp->spacewalk_side==3) { - tempsp->p[3].DstateDt->DxDt-=10*MAX_THRUST*p.x; - tempsp->p[3].DstateDt->DyDt-=10*MAX_THRUST*p.y; - tempsp->p[1].DstateDt->DxDt+=10*MAX_THRUST*p.x; - tempsp->p[1].DstateDt->DyDt+=10*MAX_THRUST*p.y; + D3Unit(D3Sub(&p,&tmpsp->p[2].state->x,&tmpsp->p[1].state->x)); + if (tmpsp->spacewalk_side==3) { + tmpsp->p[3].DstateDt->DxDt-=10*MAX_THRUST*p.x; + tmpsp->p[3].DstateDt->DyDt-=10*MAX_THRUST*p.y; + tmpsp->p[1].DstateDt->DxDt+=10*MAX_THRUST*p.x; + tmpsp->p[1].DstateDt->DyDt+=10*MAX_THRUST*p.y; } else { - tempsp->p[4].DstateDt->DxDt+=10*MAX_THRUST*p.x; - tempsp->p[4].DstateDt->DyDt+=10*MAX_THRUST*p.y; - tempsp->p[2].DstateDt->DxDt-=10*MAX_THRUST*p.x; - tempsp->p[2].DstateDt->DyDt-=10*MAX_THRUST*p.y; + tmpsp->p[4].DstateDt->DxDt+=10*MAX_THRUST*p.x; + tmpsp->p[4].DstateDt->DyDt+=10*MAX_THRUST*p.y; + tmpsp->p[2].DstateDt->DxDt-=10*MAX_THRUST*p.x; + tmpsp->p[2].DstateDt->DyDt-=10*MAX_THRUST*p.y; } } } else { - if (d=D3Norm(D3Sub(&p1,&tempsp->p[0].state->x, - &tempsp->p[1].state->x))) { - D3Sub(&p2,&tempsp->p[0].state->DxDt,&tempsp->p[1].state->DxDt); + if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].state->x, + &tmpsp->p[1].state->x))) { + D3Sub(&p2,&tmpsp->p[0].state->DxDt,&tmpsp->p[1].state->DxDt); D3Cross(&p,&p1,&p2); spin=p.z/d; } else @@ -858,9 +858,9 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin, 0,MAX_THRUST); - if (d=D3Norm(D3Sub(&p1,&tempsp->p[0].state->x, - &tempsp->p[2].state->x))) { - D3Sub(&p2,&tempsp->p[0].state->DxDt,&tempsp->p[2].state->DxDt); + if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].state->x, + &tmpsp->p[2].state->x))) { + D3Sub(&p2,&tmpsp->p[0].state->DxDt,&tmpsp->p[2].state->DxDt); D3Cross(&p,&p1,&p2); spin=p.z/d; } else @@ -868,47 +868,47 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) t_right=Clamp(human_t_right-SPIN_GAIN*spin*human_antispin, 0,MAX_THRUST); - D3Sub(&p1,&tempsp->p[0].state->x,&tempsp->p[1].state->x); - D3Sub(&p2,&tempsp->p[0].state->x,&tempsp->p[2].state->x); + D3Sub(&p1,&tmpsp->p[0].state->x,&tmpsp->p[1].state->x); + D3Sub(&p2,&tmpsp->p[0].state->x,&tmpsp->p[2].state->x); D3Unit(D3Add(&p,&p1,&p2)); - if (!(tempsp->s[3].flags&SSF_INACTIVE)) { + if (!(tmpsp->s[3].flags&SSF_INACTIVE)) { D3Mul(&p1,t_left,&p); - D3AddEqu(&tempsp->p[3].DstateDt->DxDt,&p1); + D3AddEqu(&tmpsp->p[3].DstateDt->DxDt,&p1); } - if (!(tempsp->s[5].flags&SSF_INACTIVE)) { + if (!(tmpsp->s[5].flags&SSF_INACTIVE)) { D3Mul(&p2,t_right,&p); - D3AddEqu(&tempsp->p[4].DstateDt->DxDt,&p2); + D3AddEqu(&tmpsp->p[4].DstateDt->DxDt,&p2); } } } break; } - tempsp=tempsp->next; + tmpsp=tmpsp->next; } - temps=shot_head.next; - while (temps!=&shot_head) { - if (temps->exploding) - Explosion(&temps->p,NULL,temps->explosion_radius); - temps=temps->next; + tmps=shot_head.next; + while (tmps!=&shot_head) { + if (tmps->exploding) + Explosion(&tmps->p,NULL,tmps->explosion_radius); + tmps=tmps->next; } - tempmi=missile_head.next; - while (tempmi!=&missile_head) { - if (tempmi->active) { - if (tempmi->launched) { - if (tempmi->exploding) - Explosion(&tempmi->p_front,&tempmi->p_back,tempmi->explosion_radius); + tmpmi=missile_head.next; + while (tmpmi!=&missile_head) { + if (tmpmi->active) { + if (tmpmi->launched) { + if (tmpmi->exploding) + Explosion(&tmpmi->p_front,&tmpmi->p_back,tmpmi->explosion_radius); else { //Guide missile - if (tempsp=tempmi->target) { - D3Unit(D3Sub(&p,&tempmi->p_front.state->x, - &tempmi->p_back.state->x)); - D3Sub(&p1,&tempsp->p[0].state->x,&tempmi->p_front.state->x); + if (tmpsp=tmpmi->target) { + D3Unit(D3Sub(&p,&tmpmi->p_front.state->x, + &tmpmi->p_back.state->x)); + D3Sub(&p1,&tmpsp->p[0].state->x,&tmpmi->p_front.state->x); d=D3Norm(&p1); D3Unit(&p1); é_err=D3Dot(&p,&p1); - D3Sub(&p1,&tempmi->p_front.state->DxDt,&tempmi->p_back.state->DxDt); + D3Sub(&p1,&tmpmi->p_front.state->DxDt,&tmpmi->p_back.state->DxDt); D3Cross(&p2,&p,&p1); DéDt=D3Norm(&p2); if (p2.z<0) @@ -917,29 +917,29 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) p2.x=p.x*Cos(é_thrust)-p.y*Sin(é_thrust); p2.y=p.y*Cos(é_thrust)+p.x*Sin(é_thrust); p2.z=0; - D3AddEqu(&tempmi->p_back.DstateDt->DxDt,D3MulEqu(&p2,MAX_THRUST)); + D3AddEqu(&tmpmi->p_back.DstateDt->DxDt,D3MulEqu(&p2,MAX_THRUST)); } } } else - tempmi->target=TargetGet(tempmi); + tmpmi->target=TargetGet(tmpmi); } else - tempmi->target=NULL; - tempmi=tempmi->next; + tmpmi->target=NULL; + tmpmi=tmpmi->next; } } U0 CheckDamage() { I64 i,j,k; - Ship *tempsp,*tempsp1; - MyMass *tempm,*best_mass; + Ship *tmpsp,*tmpsp1; + MyMass *tmpm,*best_mass; CD3 p,p1,p2; F64 d,best_distance; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - tempm->temperature*=0.9; - tempm=tempm->next; + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + tmpm->temperature*=0.9; + tmpm=tmpm->next; } if (human) { human->laser_temperature*=0.975; @@ -962,18 +962,18 @@ U0 CheckDamage() p2.z=0; best_mass=NULL; best_distance=MAX_F64; - tempm=ode->next_mass; - while (tempm!=&ode->next_mass) { - D3Sub(&p1,&human->p[0].x,&tempm->x); - if (Abs(D3Dot(&p1,&p2))radius && + tmpm=ode->next_mass; + while (tmpm!=&ode->next_mass) { + D3Sub(&p1,&human->p[0].x,&tmpm->x); + if (Abs(D3Dot(&p1,&p2))radius && D3Dot(&p1,&p)<0.0) { d=D3NormSqr(&p1); if (dnext; + tmpm=tmpm->next; } if (best_mass) best_mass->temperature+=1.0; @@ -981,31 +981,31 @@ U0 CheckDamage() } } - tempsp=ship_head.next; - while (tempsp!=&ship_head) { - tempsp1=tempsp->next; - switch (tempsp->type) { + tmpsp=ship_head.next; + while (tmpsp!=&ship_head) { + tmpsp1=tmpsp->next; + switch (tmpsp->type) { case ST_HUMAN1: - if (tempsp->exploding) { - if (tS>tempsp->die_timeout) { - ShipDel(tempsp); + if (tmpsp->exploding) { + if (tS>tmpsp->die_timeout) { + ShipDel(tmpsp); human=NULL; } } else - for (i=0;isprings;i++) { - if (Abs(tempsp->s[i].f)>tempsp->s[i].strength) { - tempsp->s[i].flags|=SSF_INACTIVE; + for (i=0;isprings;i++) { + if (Abs(tmpsp->s[i].f)>tmpsp->s[i].strength) { + tmpsp->s[i].flags|=SSF_INACTIVE; if (i==4) - MissileDel(&tempsp->missiles[0]); + MissileDel(&tmpsp->missiles[0]); else if (i==5) - MissileDel(&tempsp->missiles[1]); + MissileDel(&tmpsp->missiles[1]); } - if (tempsp->s[i].flags&SSF_INACTIVE) { + if (tmpsp->s[i].flags&SSF_INACTIVE) { if (i<3) { - if (!tempsp->exploding) { - tempsp->exploding=TRUE; - tempsp->die_time=tS; - tempsp->die_timeout=tS+0.75; + if (!tmpsp->exploding) { + tmpsp->exploding=TRUE; + tmpsp->die_time=tS; + tmpsp->die_timeout=tS+0.75; game_over=TRUE; Noise(750,1000,2000); break; @@ -1015,78 +1015,78 @@ U0 CheckDamage() } break; default: - if (tempsp->exploding) { - if (tS>tempsp->die_timeout) { - ShipDel(tempsp); + if (tmpsp->exploding) { + if (tS>tmpsp->die_timeout) { + ShipDel(tmpsp); score+=level; if (score>best_score) best_score=score; } } else { j=0; - for (i=0;isprings;i++) { - if (tempsp->s[i].flags&SSF_INACTIVE) + for (i=0;isprings;i++) { + if (tmpsp->s[i].flags&SSF_INACTIVE) j++; - else if (Abs(tempsp->s[i].f)>tempsp->s[i].strength) { - tempsp->s[i].flags|=SSF_INACTIVE; + else if (Abs(tmpsp->s[i].f)>tmpsp->s[i].strength) { + tmpsp->s[i].flags|=SSF_INACTIVE; j++; } } k=0; - for (i=0;imasses;i++) { - if (tempsp->p[i].temperature>MASS_MAX_TEMP) + for (i=0;imasses;i++) { + if (tmpsp->p[i].temperature>MASS_MAX_TEMP) k++; } if (j>1 || k) { - tempsp->exploding=TRUE; - tempsp->die_time=tS; - tempsp->die_timeout=tS+0.75; + tmpsp->exploding=TRUE; + tmpsp->die_time=tS; + tmpsp->die_timeout=tS+0.75; Noise(750,1000,3000); } } } - tempsp=tempsp1; + tmpsp=tmpsp1; } } //********************************** Shots -U0 FireOneGun(Ship *tempsp,I64 n,F64 r,F64 fuse_time) +U0 FireOneGun(Ship *tmpsp,I64 n,F64 r,F64 fuse_time) { CD3 p,p1,p2; - Shot *temps; + Shot *tmps; - temps=CAlloc(sizeof(Shot)); - D3Copy(&temps->p.x,&tempsp->p[n].x); - temps->explosion_radius=temps->radius=r; - temps->fuse_time=tS+1.5*fuse_time; - temps->die_timeout=temps->fuse_time+0.125; - temps->p.mass=0.3*r*r*r; - D3Sub(&p1,&tempsp->p[0].x,&tempsp->p[1].x); - D3Sub(&p2,&tempsp->p[0].x,&tempsp->p[2].x); + tmps=CAlloc(sizeof(Shot)); + D3Copy(&tmps->p.x,&tmpsp->p[n].x); + tmps->explosion_radius=tmps->radius=r; + tmps->fuse_time=tS+1.5*fuse_time; + tmps->die_timeout=tmps->fuse_time+0.125; + tmps->p.mass=0.3*r*r*r; + D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x); + D3Sub(&p2,&tmpsp->p[0].x,&tmpsp->p[2].x); D3Unit(D3Add(&p,&p1,&p2)); - D3AddEqu(&temps->p.x,D3MulEqu(D3Copy(&p1,&p),r+tempsp->p[0].radius+5)); - D3AddEqu(D3MulEqu(&p,1000/(r+1)),&tempsp->p[n].DxDt); - D3Copy(&temps->p.DxDt,&p); - D3MulEqu(&p,temps->p.mass/tempsp->p[n].mass/100.0); - D3SubEqu(&tempsp->p[n].DxDt,&p); - QueIns(&temps->p,ode->last_mass); - QueIns(temps,shot_head.last); - tempsp->reload_timeout=tS+r/tempsp->fire_rate; + D3AddEqu(&tmps->p.x,D3MulEqu(D3Copy(&p1,&p),r+tmpsp->p[0].radius+5)); + D3AddEqu(D3MulEqu(&p,1000/(r+1)),&tmpsp->p[n].DxDt); + D3Copy(&tmps->p.DxDt,&p); + D3MulEqu(&p,tmps->p.mass/tmpsp->p[n].mass/100.0); + D3SubEqu(&tmpsp->p[n].DxDt,&p); + QueIns(&tmps->p,ode->last_mass); + QueIns(tmps,shot_head.last); + tmpsp->reload_timeout=tS+r/tmpsp->fire_rate; Noise(100,r*200,r*400); } -U0 FireOneMissile(Ship *tempsp,I64 n) +U0 FireOneMissile(Ship *tmpsp,I64 n) { I64 i; - Missile *tempmi=&tempsp->missiles[n]; - if (!tempmi->launched && tempmi->target) { - tempmi->fuse_time=tS+1.0; - tempmi->die_timeout=tempmi->fuse_time+0.125; - tempmi->img=$IB,"<8>",BI=8$; + Missile *tmpmi=&tmpsp->missiles[n]; + if (!tmpmi->launched && tmpmi->target) { + tmpmi->fuse_time=tS+1.0; + tmpmi->die_timeout=tmpmi->fuse_time+0.125; + tmpmi->img=$IB,"<8>",BI=8$; for (i=1;i<5;i++) - tempmi->s[i].flags|=SSF_INACTIVE; - tempmi->launched=TRUE; + tmpmi->s[i].flags|=SSF_INACTIVE; + tmpmi->launched=TRUE; Sweep(250,300,350); } } @@ -1138,18 +1138,18 @@ U0 HumanFireLaserEnd() U0 ExpireShots() { - Shot *temps=shot_head.next,*temps1; - while (temps!=&shot_head) { - temps1=temps->next; - if (!temps->exploding && tS>temps->fuse_time) { - temps->exploding=TRUE; + Shot *tmps=shot_head.next,*tmps1; + while (tmps!=&shot_head) { + tmps1=tmps->next; + if (!tmps->exploding && tS>tmps->fuse_time) { + tmps->exploding=TRUE; Noise(50,3000,6000); - } else if (tS>temps->die_timeout) { - QueRem(temps); - QueRem(&temps->p); - Free(temps); + } else if (tS>tmps->die_timeout) { + QueRem(tmps); + QueRem(&tmps->p); + Free(tmps); } - temps=temps1; + tmps=tmps1; } } @@ -1157,26 +1157,26 @@ U0 ExpireMissiles() { I64 i; F64 dd,best_dd; - Missile *tempmi=missile_head.next,*tempm1; - while (tempmi!=&missile_head) { - tempm1=tempmi->next; - if (tempmi->launched) { + Missile *tmpmi=missile_head.next,*tmpm1; + while (tmpmi!=&missile_head) { + tmpm1=tmpmi->next; + if (tmpmi->launched) { best_dd=MAX_F64; - if (tempmi->target) - for (i=0;itarget->masses;i++) { - dd=D3DistSqr(&tempmi->p_front.x,&tempmi->target->p[i].x); + if (tmpmi->target) + for (i=0;itarget->masses;i++) { + dd=D3DistSqr(&tmpmi->p_front.x,&tmpmi->target->p[i].x); if (ddexploding && (best_dd<30*30 || tS>tempmi->fuse_time)) { - tempmi->p_front.mass=10.0; //They go flying, if too light. - tempmi->p_back.mass =10.0; - tempmi->exploding=TRUE; + if (!tmpmi->exploding && (best_dd<30*30 || tS>tmpmi->fuse_time)) { + tmpmi->p_front.mass=10.0; //They go flying, if too light. + tmpmi->p_back.mass =10.0; + tmpmi->exploding=TRUE; Noise(50,3000,6000); - } else if (tS>tempmi->die_timeout) - MissileDel(tempmi); + } else if (tS>tmpmi->die_timeout) + MissileDel(tmpmi); } - tempmi=tempm1; + tmpmi=tmpm1; } } @@ -1185,18 +1185,18 @@ U0 ExpireMissiles() U0 AI() { CD3 p,p1,p2; - Ship *tempsp=ship_head.next; + Ship *tmpsp=ship_head.next; if (human && !human->exploding) { - while (tempsp!=&ship_head) { - D3Sub(&p1,&tempsp->p[0].x,&tempsp->p[1].x); - D3Sub(&p2,&tempsp->p[0].x,&tempsp->p[2].x); + while (tmpsp!=&ship_head) { + D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[1].x); + D3Sub(&p2,&tmpsp->p[0].x,&tmpsp->p[2].x); D3Add(&p,&p1,&p2); - D3Sub(&p1,&human->p[0].x,&tempsp->p[0].x); + D3Sub(&p1,&human->p[0].x,&tmpsp->p[0].x); if (D3Dot(D3Unit(&p),D3Unit(&p1))>0.995 && - tS>tempsp->reload_timeout) { - FireOneGun(tempsp,0,1.5+.5,.4); + tS>tmpsp->reload_timeout) { + FireOneGun(tmpsp,0,1.5+.5,.4); } - tempsp=tempsp->next; + tmpsp=tmpsp->next; } } } @@ -1381,7 +1381,7 @@ U0 XCaliber() ExpireShots; ExpireMissiles; CheckDamage; - WinMgrSync; //msgs are only qued by winmngr + Refresh; //msgs are only qued by winmgr if (show_level_msg) { ch=GetKey(&sc); if (ch=='\n') diff --git a/Compiler/Asm.HC b/Compiler/Asm.HC index 3422d9d..70cce5d 100644 --- a/Compiler/Asm.HC +++ b/Compiler/Asm.HC @@ -34,8 +34,8 @@ Bool PrsAsmImm(CCmpCtrl *cc,CAsmArg *arg) U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) { - CHashGeneric *temph,*temph1; - CHashReg *tempr; + CHashGeneric *tmph,*tmph1; + CHashReg *tmpr; MemSet(arg,0,sizeof(CAsmArg)); arg->seg =REG_NONE; arg->reg1=REG_NONE; @@ -43,11 +43,11 @@ U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) arg->scale=1; while (TRUE) { if (cc->token==TK_IDENT) { - if (temph=cc->hash_entry) { - if (temph->type&HTG_TYPE_MASK==HTT_REG) { - tempr=temph; - arg->reg1_type=tempr->reg_type; - switch (tempr->reg_type) { + if (tmph=cc->hash_entry) { + if (tmph->type&HTG_TYPE_MASK==HTT_REG) { + tmpr=tmph; + arg->reg1_type=tmpr->reg_type; + switch (tmpr->reg_type) { start: case REGT_R8: arg->size=1; @@ -62,11 +62,11 @@ U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) arg->size=8; break; end: - arg->reg1=tempr->reg_num; + arg->reg1=tmpr->reg_num; Lex(cc); return; case REGT_SEG: - arg->seg=tempr->reg_num; + arg->seg=tmpr->reg_num; if (Lex(cc)!=':') { arg->just_seg=TRUE; return; @@ -77,17 +77,17 @@ U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) case REGT_MM: case REGT_XMM: arg->size=8; - arg->reg1=tempr->reg_num; + arg->reg1=tmpr->reg_num; Lex(cc); return; } } else { - if ((temph->type&HTG_TYPE_MASK==HTT_CLASS|| - temph->type&HTG_TYPE_MASK==HTT_INTERNAL_TYPE) && - (temph1=HashFind(cc->cur_str,cmp.asm_hash,HTT_ASM_KEYWORD))) - temph=temph1; - if (temph->type&HTG_TYPE_MASK==HTT_ASM_KEYWORD) { - switch (temph->user_data0) { + if ((tmph->type&HTG_TYPE_MASK==HTT_CLASS|| + tmph->type&HTG_TYPE_MASK==HTT_INTERNAL_TYPE) && + (tmph1=HashFind(cc->cur_str,cmp.asm_hash,HTT_ASM_KEYWORD))) + tmph=tmph1; + if (tmph->type&HTG_TYPE_MASK==HTT_ASM_KEYWORD) { + switch (tmph->user_data0) { case AKW_I8: case AKW_U8: arg->size=1; @@ -129,19 +129,19 @@ pa_asm_direct_imm: Lex(cc); // skip [ while (cc->token && cc->token!=']') { if (cc->token==TK_IDENT) { - if (temph=cc->hash_entry) { - if (temph->type&HTG_TYPE_MASK==HTT_REG && - REGT_R16<=temph(CHashReg *)->reg_type<=REGT_R64) { - tempr=temph; - arg->reg2_type=tempr->reg_type; + if (tmph=cc->hash_entry) { + if (tmph->type&HTG_TYPE_MASK==HTT_REG && + REGT_R16<=tmph(CHashReg *)->reg_type<=REGT_R64) { + tmpr=tmph; + arg->reg2_type=tmpr->reg_type; if (arg->reg1==REG_NONE) { - if (tempr->reg_num&7==REG_RSP) { + if (tmpr->reg_num&7==REG_RSP) { arg->reg1=4; - arg->reg2=tempr->reg_num; + arg->reg2=tmpr->reg_num; } else - arg->reg1=tempr->reg_num; + arg->reg1=tmpr->reg_num; } else - arg->reg2=tempr->reg_num; + arg->reg2=tmpr->reg_num; Lex(cc); } else goto pa_asm_indirect_imm; @@ -269,7 +269,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) { CAOTCtrl *aotc=cc->aotc; I64 i; - CAOTAbsAddr *tempa; + CAOTAbsAddr *tmpa; if (!num2->imm_flag) num2->num.i-=num2->rel; @@ -284,19 +284,19 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_ADD_U8; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_ADD_U8; } } else { if (num2->num.abs_cnts.c_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_SUB_U8; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_SUB_U8; } } AOTStoreCodeU8(cc,num2->num.i); @@ -311,19 +311,19 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_ADD_U16; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_ADD_U16; } } else { if (num2->num.abs_cnts.c_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_SUB_U16; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_SUB_U16; } } AOTStoreCodeU8(cc,num2->num.i.u8[0]); @@ -338,19 +338,19 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_ADD_U32; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_ADD_U32; } } else { if (num2->num.abs_cnts.c_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_SUB_U32; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_SUB_U32; } } AOTStoreCodeU32(cc,num2->num.i); @@ -362,19 +362,19 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) U8_avail); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_ADD_U64; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_ADD_U64; } } else { if (num2->num.abs_cnts.c_addres&1) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - aotc->abss=tempa; - tempa->ip=aotc->ip; - tempa->type=AAT_SUB_U64; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + aotc->abss=tmpa; + tmpa->ip=aotc->ip; + tmpa->type=AAT_SUB_U64; } } AOTStoreCodeU64(cc,num2->num.i); @@ -392,17 +392,16 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) U8 asm_seg_prefixes[6]={0x26,0x2E,0x36,0x3E,0x64,0x65}; -Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) +Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tmpo,I64 argcnt) { CAOTCtrl *aotc=cc->aotc; I64 i,j,a1,a2,om,seg,arg1mask,arg2mask; - CAsmArg *tempa1,*tempa2; + CAsmArg *tmpa1,*tmpa2; Bool ModrM_complete,U8_avail=FALSE,found_second_possible=FALSE; - CInst *tempi; - + CInst *tmpins; CAsmIns cur,best; - best.U8_cnt=255; + best.U8_cnt=255; if (argcnt>0) arg1mask=AsmMakeArgMask(cc,&aotc->arg1); else @@ -411,38 +410,38 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) arg2mask=AsmMakeArgMask(cc,&aotc->arg2); else arg2mask=1; - for (i=0;iinst_entry_cnt;i++) { - tempi=&tempo->ins[i]; - if (tempi->arg1==ARGT_REL8 || tempi->arg2==ARGT_REL8) + for (i=0;iinst_entry_cnt;i++) { + tmpins=&tmpo->ins[i]; + if (tmpins->arg1==ARGT_REL8 || tmpins->arg2==ARGT_REL8) U8_avail=TRUE; - if (Bt(&arg1mask,tempi->arg1) && Bt(&arg2mask,tempi->arg2) && - (!(tempi->flags&IEF_NOT_IN_64_BIT) || aotc->seg_size!=64)) { + if (Bt(&arg1mask,tmpins->arg1) && Bt(&arg2mask,tmpins->arg2) && + (!(tmpins->flags&IEF_NOT_IN_64_BIT) || aotc->seg_size!=64)) { MemSet(&cur,0,sizeof(CAsmIns)); - cur.tempi=tempi; + cur.tmpins=tmpins; ModrM_complete=FALSE; - cur.is_dft=ToBool(tempi->flags & IEF_DFT); + cur.is_dft=ToBool(tmpins->flags & IEF_DFT); if (aotc->seg_size==64) { - if (tempi->flags & IEF_48_REX) + if (tmpins->flags & IEF_48_REX) cur.REX=0x48; else cur.REX=0x40; } cur.disp.imm_flag=TRUE; cur.imm.imm_flag=TRUE; - om=tempi->opcode_modifier; - a1=tempi->arg1; - a2=tempi->arg2; - tempa1=&aotc->arg1; - tempa2=&aotc->arg2; - cur.last_opcode_U8=tempi->opcode[tempi->opcode_cnt-1]; + om=tmpins->opcode_modifier; + a1=tmpins->arg1; + a2=tmpins->arg2; + tmpa1=&aotc->arg1; + tmpa2=&aotc->arg2; + cur.last_opcode_U8=tmpins->opcode[tmpins->opcode_cnt-1]; - if (tempi->slash_val<8) { - cur.ModrM|=tempi->slash_val<<3; + if (tmpins->slash_val<8) { + cur.ModrM|=tmpins->slash_val<<3; cur.has_ModrM=TRUE; } - if (aotc->seg_size==16 && tempi->flags & IEF_OP_SIZE32 || - aotc->seg_size!=16 && tempi->flags & IEF_OP_SIZE16) + if (aotc->seg_size==16 && tmpins->flags & IEF_OP_SIZE32 || + aotc->seg_size!=16 && tmpins->flags & IEF_OP_SIZE16) cur.has_operand_prefix=TRUE; if (om==OM_IB) cur.imm.U8_cnt=1; @@ -468,16 +467,16 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cc->lex_include_stk->full_name, cc->lex_include_stk->line_num-1); } - if (tempi->flags & IEF_PLUS_OPCODE) { - if (tempi->slash_val==SV_R_REG) { - cur.last_opcode_U8|=tempa1->reg1&7; - if (tempa1->reg1&15>7) + if (tmpins->flags & IEF_PLUS_OPCODE) { + if (tmpins->slash_val==SV_R_REG) { + cur.last_opcode_U8|=tmpa1->reg1&7; + if (tmpa1->reg1&15>7) cur.REX|=1; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } else {//SV_I_REG - if (tempa1->reg1_type==REGT_FSTK) - cur.last_opcode_U8+=tempa1->reg1; + if (tmpa1->reg1_type==REGT_FSTK) + cur.last_opcode_U8+=tmpa1->reg1; } } if (a1==ARGT_R64 || a1==ARGT_RM64 || a1==ARGT_M64) @@ -487,52 +486,52 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.has_addr_prefix=TRUE; cur.has_ModrM=TRUE; - if (tempa1->imm_or_off_present && tempa1->indirect && - tempa1->reg1==REG_NONE) { + if (tmpa1->imm_or_off_present && tmpa1->indirect && + tmpa1->reg1==REG_NONE) { cur.ModrM=cur.ModrM+5; - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); cur.disp.U8_cnt=4; if (aotc->seg_size==64) cur.disp.imm_flag=FALSE; } else { - if (tempa1->reg2==REG_NONE && tempa1->scale==1) { - cur.ModrM|=tempa1->reg1&7; - if (tempa1->reg1&15>7) + if (tmpa1->reg2==REG_NONE && tmpa1->scale==1) { + cur.ModrM|=tmpa1->reg1&7; + if (tmpa1->reg1&15>7) cur.REX|=1; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } else { cur.ModrM|=4; cur.has_SIB=TRUE; - if (tempa1->scale==1) + if (tmpa1->scale==1) cur.SIB=0; - else if (tempa1->scale==2) + else if (tmpa1->scale==2) cur.SIB=0x40; - else if (tempa1->scale==4) + else if (tmpa1->scale==4) cur.SIB=0x80; - else if (tempa1->scale==8) + else if (tmpa1->scale==8) cur.SIB=0xC0; - if (tempa1->reg2==REG_NONE) { + if (tmpa1->reg2==REG_NONE) { ModrM_complete=TRUE; - cur.SIB|=(tempa1->reg1&7)<<3+REG_RBP; - if (tempa1->reg1&15>7) + cur.SIB|=(tmpa1->reg1&7)<<3+REG_RBP; + if (tmpa1->reg1&15>7) cur.REX|=2; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); cur.disp.U8_cnt=4; } else { - cur.SIB|=(tempa1->reg1&7)<<3+tempa1->reg2&7; - if (tempa1->reg1&15>7) + cur.SIB|=(tmpa1->reg1&7)<<3+tmpa1->reg2&7; + if (tmpa1->reg1&15>7) cur.REX|=2; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - if (tempa1->reg2&15>7) + if (tmpa1->reg2&15>7) cur.REX|=1; - if (tempa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - if (tempa1->reg2&7==REG_RBP && - !tempa1->imm_or_off_present && tempa1->indirect) { + if (tmpa1->reg2&7==REG_RBP && + !tmpa1->imm_or_off_present && tmpa1->indirect) { cur.ModrM|=0x40; cur.disp.U8_cnt=1; ModrM_complete=TRUE; @@ -540,8 +539,8 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } } if (!ModrM_complete) { - if (tempa1->imm_or_off_present) { - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + if (tmpa1->imm_or_off_present) { + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); if (!cur.disp.num.machine_code && MIN_I8<=cur.disp.num.i<=MAX_I8) { cur.ModrM|=0x40; @@ -553,11 +552,11 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.ModrM|=0x80; cur.disp.U8_cnt=4; } - } else if (!tempa1->indirect) { + } else if (!tmpa1->indirect) { cur.has_addr_prefix=FALSE; cur.ModrM|=0xC0; } else { - if (tempa1->reg1&7==REG_RBP) { + if (tmpa1->reg1&7==REG_RBP) { cur.ModrM|=0x40; cur.disp.U8_cnt=1; } @@ -568,7 +567,7 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) ARGT_UIMM8<=a1<=ARGT_UIMM64) { if (a1==ARGT_IMM64 || a2==ARGT_UIMM64) cur.REX|=8; - MemCpy(&cur.imm.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.imm.num,&tmpa1->num,sizeof(CAsmNum)); } } else if (argcnt==2) { if (best.U8_cnt!=255 && !found_second_possible && !best.is_dft) { @@ -578,26 +577,26 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cc->lex_include_stk->full_name, cc->lex_include_stk->line_num-1); } - if (tempi->flags & IEF_PLUS_OPCODE) { - if (tempi->slash_val==SV_R_REG) { + if (tmpins->flags & IEF_PLUS_OPCODE) { + if (tmpins->slash_val==SV_R_REG) { if (ARGT_AL<=a1<=ARGT_RAX) { - cur.last_opcode_U8|=tempa2->reg1&7; - if (tempa2->reg1&15>7) + cur.last_opcode_U8|=tmpa2->reg1&7; + if (tmpa2->reg1&15>7) cur.REX|=1; - if (tempa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } else { - cur.last_opcode_U8|=tempa1->reg1&7; - if (tempa1->reg1&15>7) + cur.last_opcode_U8|=tmpa1->reg1&7; + if (tmpa1->reg1&15>7) cur.REX|=1; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } } else {//SV_I_REG - if (tempa1->reg1_type==REGT_FSTK) - cur.last_opcode_U8|=tempa1->reg1; - if (tempa2->reg1_type==REGT_FSTK) - cur.last_opcode_U8|=tempa2->reg1; + if (tmpa1->reg1_type==REGT_FSTK) + cur.last_opcode_U8|=tmpa1->reg1; + if (tmpa2->reg1_type==REGT_FSTK) + cur.last_opcode_U8|=tmpa2->reg1; } } if (a1==ARGT_RM64 || a2==ARGT_RM64 || a1==ARGT_M64 || a2==ARGT_M64 || @@ -609,68 +608,68 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.has_addr_prefix=TRUE; cur.has_ModrM=TRUE; if (ARGT_RM8<=a2<=ARGT_RM64 || ARGT_M8<=a2<=ARGT_M64) { - tempa1=&aotc->arg2; - tempa2=&aotc->arg1; + tmpa1=&aotc->arg2; + tmpa2=&aotc->arg1; } - if (tempi->slash_val==SV_R_REG) { - if (tempa2->just_seg) - cur.ModrM|=tempa2->seg<<3; + if (tmpins->slash_val==SV_R_REG) { + if (tmpa2->just_seg) + cur.ModrM|=tmpa2->seg<<3; else { - if (tempa2->reg1==REG_NONE) { - cur.ModrM|=(tempa1->reg1&7)<<3; - if (tempa1->reg1&15>7) + if (tmpa2->reg1==REG_NONE) { + cur.ModrM|=(tmpa1->reg1&7)<<3; + if (tmpa1->reg1&15>7) cur.REX|=4; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } else { - cur.ModrM|=(tempa2->reg1&7)<<3; - if (tempa2->reg1&15>7) + cur.ModrM|=(tmpa2->reg1&7)<<3; + if (tmpa2->reg1&15>7) cur.REX|=4; - if (tempa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } } } - if (tempa1->reg2==REG_NONE && tempa1->scale==1) { - if (tempa1->reg1!=REG_NONE) { - cur.ModrM|=tempa1->reg1&7; - if (tempa1->reg1&15>7) + if (tmpa1->reg2==REG_NONE && tmpa1->scale==1) { + if (tmpa1->reg1!=REG_NONE) { + cur.ModrM|=tmpa1->reg1&7; + if (tmpa1->reg1&15>7) cur.REX|=1; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; } } else { cur.ModrM|=4; cur.has_SIB=TRUE; - if (tempa1->scale==1) + if (tmpa1->scale==1) cur.SIB=0; - else if (tempa1->scale==2) + else if (tmpa1->scale==2) cur.SIB=0x40; - else if (tempa1->scale==4) + else if (tmpa1->scale==4) cur.SIB=0x80; - else if (tempa1->scale==8) + else if (tmpa1->scale==8) cur.SIB=0xC0; - if (tempa1->reg2==REG_NONE) { + if (tmpa1->reg2==REG_NONE) { ModrM_complete=TRUE; - cur.SIB|=(tempa1->reg1&7)<<3+5; - if (tempa1->reg1&15>7) + cur.SIB|=(tmpa1->reg1&7)<<3+5; + if (tmpa1->reg1&15>7) cur.REX|=2; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); cur.disp.U8_cnt=4; } else { - cur.SIB|=(tempa1->reg1&7)<<3+tempa1->reg2&7; - if (tempa1->reg1&15>7) + cur.SIB|=(tmpa1->reg1&7)<<3+tmpa1->reg2&7; + if (tmpa1->reg1&15>7) cur.REX|=2; - if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - if (tempa1->reg2&15>7) + if (tmpa1->reg2&15>7) cur.REX|=1; - if (tempa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + if (tmpa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? cur.has_REX=TRUE; - if (tempa1->reg2&7==REG_RBP && - !tempa1->imm_or_off_present && tempa1->indirect) { + if (tmpa1->reg2&7==REG_RBP && + !tmpa1->imm_or_off_present && tmpa1->indirect) { cur.ModrM|=0x40; cur.disp.U8_cnt=1; ModrM_complete=TRUE; @@ -678,16 +677,16 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } } if (!ModrM_complete) { - if (tempa1->imm_or_off_present && - tempa1->indirect && tempa1->reg1==REG_NONE) { + if (tmpa1->imm_or_off_present && + tmpa1->indirect && tmpa1->reg1==REG_NONE) { cur.ModrM=cur.ModrM&0xF8+5; - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); cur.disp.U8_cnt=4; if (aotc->seg_size==64) cur.disp.imm_flag=FALSE; } else { - if (tempa1->imm_or_off_present) { - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + if (tmpa1->imm_or_off_present) { + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); if (!cur.disp.num.machine_code && MIN_I8<=cur.disp.num.i<=MAX_I8) { cur.ModrM|=0x40; @@ -699,11 +698,11 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.ModrM|=0x80; cur.disp.U8_cnt=4; } - } else if (!tempa1->indirect) { + } else if (!tmpa1->indirect) { cur.has_addr_prefix=FALSE; cur.ModrM|=0xC0; } else { - if (tempa1->reg1&7==REG_RBP) { + if (tmpa1->reg1&7==REG_RBP) { cur.ModrM|=0x40; cur.disp.U8_cnt=1; } @@ -711,14 +710,14 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } } } else if (ARGT_MOFFS8<=a1<=ARGT_MOFFS64) { - MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); if (aotc->seg_size==16) cur.disp.U8_cnt=2; else cur.disp.U8_cnt=4; cur.has_addr_prefix=FALSE; } else if (ARGT_MOFFS8<=a2<=ARGT_MOFFS64) { - MemCpy(&cur.disp.num,&tempa2->num,sizeof(CAsmNum)); + MemCpy(&cur.disp.num,&tmpa2->num,sizeof(CAsmNum)); if (aotc->seg_size==16) cur.disp.U8_cnt=2; else @@ -726,7 +725,7 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.has_addr_prefix=FALSE; } else if (ARGT_IMM8<=a1<=ARGT_IMM64 || ARGT_UIMM8<=a1<=ARGT_UIMM64) { - MemCpy(&cur.imm.num,&tempa1->num,sizeof(CAsmNum)); + MemCpy(&cur.imm.num,&tmpa1->num,sizeof(CAsmNum)); if (a1==ARGT_IMM8 || a1==ARGT_UIMM8) cur.imm.U8_cnt=1; else if (a1==ARGT_IMM16 || a1==ARGT_UIMM16) cur.imm.U8_cnt=2; else if (a1==ARGT_IMM32 || a1==ARGT_UIMM32) cur.imm.U8_cnt=4; @@ -737,12 +736,12 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } if (ARGT_IMM8<=a2<=ARGT_IMM64 || ARGT_UIMM8<=a2<=ARGT_UIMM64) { - MemCpy(&cur.imm.num,&tempa2->num,sizeof(CAsmNum)); + MemCpy(&cur.imm.num,&tmpa2->num,sizeof(CAsmNum)); if (a2==ARGT_IMM8 || a2==ARGT_UIMM8) cur.imm.U8_cnt=1; else if (a2==ARGT_IMM16 || a2==ARGT_UIMM16) cur.imm.U8_cnt=2; else if (a2==ARGT_IMM32 || a2==ARGT_UIMM32) { cur.imm.U8_cnt=4; - if (tempi->flags&IEF_REX_ONLY_R8_R15 && a2==ARGT_UIMM32) + if (tmpins->flags&IEF_REX_ONLY_R8_R15 && a2==ARGT_UIMM32) cur.REX&=~8; } else { cur.imm.U8_cnt=8; @@ -750,23 +749,23 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } } } - cur.U8_cnt=tempi->opcode_cnt+cur.disp.U8_cnt+cur.imm.U8_cnt; + cur.U8_cnt=tmpins->opcode_cnt+cur.disp.U8_cnt+cur.imm.U8_cnt; if (cur.has_ModrM) cur.U8_cnt++; if (cur.has_SIB) cur.U8_cnt++; if (aotc->seg_size==64 && cur.REX&0x40==0x40 && (cur.REX!=0x40 || cur.has_REX) && - (cur.REX&7 || !(tempi->flags&IEF_REX_ONLY_R8_R15 || - tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && + (cur.REX&7 || !(tmpins->flags&IEF_REX_ONLY_R8_R15 || + tmpins->flags&IEF_REX_XOR_LIKE && tmpa1->reg1==tmpa2->reg1 && cur.ModrM&0xC0==0xC0))) cur.U8_cnt++; if (cur.U8_cntflags & IEF_DONT_SWITCH_MODES && + !(tmpins->flags & IEF_DONT_SWITCH_MODES && (cur.has_addr_prefix || cur.has_operand_prefix))) MemCpy(&best,&cur,sizeof(CAsmIns)); } } if (best.U8_cnt<255) { - tempi=best.tempi; + tmpins=best.tmpins; seg=REG_NONE; if (argcnt>1 && aotc->arg2.seg!=REG_NONE && !aotc->arg2.just_seg) seg=aotc->arg2.seg; @@ -780,12 +779,12 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) AOTStoreCodeU8(cc,OC_ADDR_SIZE_PREFIX); //Operand size override if (aotc->seg_size==64 && best.REX&0x40==0x40 && (best.REX!=0x40 || best.has_REX) && - (best.REX&7||!(tempi->flags&IEF_REX_ONLY_R8_R15 || - tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && + (best.REX&7||!(tmpins->flags&IEF_REX_ONLY_R8_R15 || + tmpins->flags&IEF_REX_XOR_LIKE && tmpa1->reg1==tmpa2->reg1 && best.ModrM&0xC0==0xC0))) AOTStoreCodeU8(cc,best.REX); - for (j=0;jopcode_cnt-1;j++) - AOTStoreCodeU8(cc,tempi->opcode[j]); + for (j=0;jopcode_cnt-1;j++) + AOTStoreCodeU8(cc,tmpins->opcode[j]); AOTStoreCodeU8(cc,best.last_opcode_U8); if (best.has_ModrM) @@ -804,7 +803,7 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) if (!AsmStoreNum(cc,&best.imm,1,U8_avail)) return FALSE; } - if (tempi->flags&IEF_ENDING_ZERO) //ENTER inst + if (tmpins->flags&IEF_ENDING_ZERO) //ENTER inst AOTStoreCodeU8(cc,0); return TRUE; } @@ -906,8 +905,8 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) CAOTCtrl *aotc=cc->aotc; I64 i,j,k,argcnt, old_flags=cc->flags & CCF_ASM_EXPRESSIONS; - CHashOpcode *tempo; - CHashExport *tempex; + CHashOpcode *tmpo; + CHashExport *tmpex; U8 *next_last_label; CCodeMisc *g_lb; @@ -930,13 +929,13 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) if (cc->token!=TK_IDENT) LexExcept(cc,"Expecting identifier at "); else { - tempex=NULL; - tempex=CAlloc(sizeof(CHashExport)); - tempex->str=cc->cur_str; + tmpex=NULL; + tmpex=CAlloc(sizeof(CHashExport)); + tmpex->str=cc->cur_str; cc->cur_str=0; - tempex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED; - HashAdd(tempex,cc->htc.glbl_hash_table); - tempex->type|=HTF_IMPORT; + tmpex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED; + HashAdd(tmpex,cc->htc.glbl_hash_table); + tmpex->type|=HTF_IMPORT; if (Lex(cc)==',') Lex(cc); //skip ',' } @@ -1006,29 +1005,29 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) LexExcept(cc,"Syntax error at "); } } else if (cc->hash_entry->type & HTT_OPCODE) { - tempo=cc->hash_entry; + tmpo=cc->hash_entry; Lex(cc); //skip opcode argcnt=0; - if (tempo->ins[0].arg1) { + if (tmpo->ins[0].arg1) { argcnt++; - if (ARGT_REL8<=tempo->ins[0].arg1<=ARGT_REL32) + if (ARGT_REL8<=tmpo->ins[0].arg1<=ARGT_REL32) PrsAsmArg(cc,&aotc->arg1,TRUE); else PrsAsmArg(cc,&aotc->arg1,FALSE); - if (tempo->ins[0].arg2) { + if (tmpo->ins[0].arg2) { argcnt++; if (cc->token!=',') LexExcept(cc,"Expecting ',' at "); else { Lex(cc); //skip ',' - if (ARGT_REL8<=tempo->ins[0].arg2<=ARGT_REL32) + if (ARGT_REL8<=tmpo->ins[0].arg2<=ARGT_REL32) PrsAsmArg(cc,&aotc->arg2,TRUE); else PrsAsmArg(cc,&aotc->arg2,FALSE); } } } - PrsAsmInst(cc,tempo,argcnt); + PrsAsmInst(cc,tmpo,argcnt); } else if (cc->hash_entry->type & HTT_EXPORT_SYS_SYM) { if (Btr(&cc->hash_entry->type,HTf_UNRESOLVED)) { if (cc->hash_entry->type & HTF_LOCAL) { @@ -1063,25 +1062,25 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) } else LexExcept(cc,"Syntax error at "); } else if (cc->token==TK_IDENT) { - tempex=CAlloc(sizeof(CHashExport)); - tempex->str=cc->cur_str; + tmpex=CAlloc(sizeof(CHashExport)); + tmpex->str=cc->cur_str; cc->cur_str=0; - tempex->type=HTT_EXPORT_SYS_SYM; - tempex->val=aotc->ip; + tmpex->type=HTT_EXPORT_SYS_SYM; + tmpex->val=aotc->ip; Lex(cc); //Skip cur_str if (cc->token!=':' && cc->token!=TK_DBL_COLON) LexExcept(cc,"Expecting ':' at "); else { - if (*tempex->str=='@' && tempex->str[1]=='@') { + if (*tmpex->str=='@' && tmpex->str[1]=='@') { if (cc->token==TK_DBL_COLON) LexExcept(cc,"No local glbl exports at "); - HashAdd(tempex,cc->htc.local_hash_table); + HashAdd(tmpex,cc->htc.local_hash_table); } else - HashAdd(tempex,cc->htc.glbl_hash_table); + HashAdd(tmpex,cc->htc.glbl_hash_table); if (cc->htc.local_var_lst) {//AsmBlk in fun? Also add goto-like label. - if (!(g_lb=COCGoToLabelFind(cc,tempex->str))) { + if (!(g_lb=COCGoToLabelFind(cc,tmpex->str))) { g_lb=COCMiscNew(cc,CMT_ASM_LABEL); - g_lb->str=StrNew(tempex->str); + g_lb->str=StrNew(tmpex->str); } else if (g_lb->flags&CMF_DEFINED) LexExcept(cc,"Duplicate goto label at "); g_lb->type=CMT_ASM_LABEL; @@ -1091,11 +1090,11 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) ICAdd(cc,IC_LABEL,g_lb,0); } if (cc->token==TK_DBL_COLON) { - tempex->type|=HTF_EXPORT; - HashSrcFileSet(cc,tempex); + tmpex->type|=HTF_EXPORT; + HashSrcFileSet(cc,tmpex); AOTLocalsResolve(cc); - aotc->last_label=tempex->str; + aotc->last_label=tmpex->str; } Lex(cc); } @@ -1104,8 +1103,8 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) else LexExcept(cc,"Syntax error at "); if (cmp_flags&CMPF_ONE_ASM_INS && (cc->token!=TK_IDENT || - !(tempo=cc->hash_entry) || - !(tempo->type&(HTT_OPCODE|HTT_ASM_KEYWORD)))) + !(tmpo=cc->hash_entry) || + !(tmpo->type&(HTT_OPCODE|HTT_ASM_KEYWORD)))) break; } AOTLocalsResolve(cc); diff --git a/Compiler/AsmInit.HC b/Compiler/AsmInit.HC index 204ba14..3982572 100644 --- a/Compiler/AsmInit.HC +++ b/Compiler/AsmInit.HC @@ -1,45 +1,45 @@ -U0 AsmPrsInsFlags(CCmpCtrl *cc,CInst *tempi) +U0 AsmPrsInsFlags(CCmpCtrl *cc,CInst *tmpins) { I64 i; while (TRUE) { switch (cc->token) { case TK_IDENT: if ((i=LstMatch(cc->cur_str,"NO\0CB\0CW\0CD\0CP\0IB\0IW\0ID\0"))>=0) { - tempi->opcode_modifier=i; + tmpins->opcode_modifier=i; break; } else return; case TK_I64: if (cc->cur_i64==16) - tempi->flags|=IEF_OP_SIZE16; + tmpins->flags|=IEF_OP_SIZE16; else if (cc->cur_i64==32) - tempi->flags|=IEF_OP_SIZE32; + tmpins->flags|=IEF_OP_SIZE32; else return; break; case '+': - tempi->flags|=IEF_PLUS_OPCODE; + tmpins->flags|=IEF_PLUS_OPCODE; case '/': if (Lex(cc)==TK_I64 && cc->cur_i64<8) - tempi->slash_val=cc->cur_i64; + tmpins->slash_val=cc->cur_i64; else if (cc->token==TK_IDENT) { if (!StrCmp(cc->cur_str,"R")) - tempi->slash_val=SV_R_REG; + tmpins->slash_val=SV_R_REG; else if (!StrCmp(cc->cur_str,"I")) - tempi->slash_val=SV_I_REG; + tmpins->slash_val=SV_I_REG; else return; } else return; break; - case '!': tempi->flags|=IEF_DONT_SWITCH_MODES; break; - case '&': tempi->flags|=IEF_DFT; break; - case '%': tempi->flags|=IEF_NOT_IN_64_BIT; break; - case '=': tempi->flags|=IEF_48_REX; break; - case '`': tempi->flags|=IEF_REX_ONLY_R8_R15; break; - case '^': tempi->flags|=IEF_REX_XOR_LIKE; break; - case '*': tempi->flags|=IEF_STI_LIKE; break; - case '$$': tempi->flags|=IEF_ENDING_ZERO; break; + case '!': tmpins->flags|=IEF_DONT_SWITCH_MODES; break; + case '&': tmpins->flags|=IEF_DFT; break; + case '%': tmpins->flags|=IEF_NOT_IN_64_BIT; break; + case '=': tmpins->flags|=IEF_48_REX; break; + case '`': tmpins->flags|=IEF_REX_ONLY_R8_R15; break; + case '^': tmpins->flags|=IEF_REX_XOR_LIKE; break; + case '*': tmpins->flags|=IEF_STI_LIKE; break; + case '$$': tmpins->flags|=IEF_ENDING_ZERO; break; default: return; } @@ -50,13 +50,13 @@ U0 AsmPrsInsFlags(CCmpCtrl *cc,CInst *tempi) U0 AsmHashLoad() {//See $LK,"::/Compiler/OpCodes.DD"$. I64 i,j,size,size_max; - CInternalType *tempit; + CInternalType *tmpit; CCmpCtrl *cc; - CHashGeneric *temph; - CHashReg *tempr; - CHashOpcode *tempo,*tempo2,*tempo_max; - CInst *tempi; - CHashClass *tempc; + CHashGeneric *tmph; + CHashReg *tmpr; + CHashOpcode *tmpo,*tmpo2,*tmpo_max; + CInst *tmpins; + CHashClass *tmpc; cmp.size_arg_mask[0]=0x3FF0FFFFFE; cmp.size_arg_mask[1]=0x1110111112; @@ -66,7 +66,7 @@ U0 AsmHashLoad() cmp.asm_hash=HashTableNew(1024); size_max=offset(CHashOpcode.ins)+sizeof(CInst)<<5; - tempo_max=MAlloc(size_max); + tmpo_max=MAlloc(size_max); cc=CmpCtrlNew(FileRead("OpCodes.DD"),,"OpCodes.DD.Z"); cc->htc.hash_table_lst=NULL; @@ -83,33 +83,33 @@ U0 AsmHashLoad() LexExcept(cc,"Expecting identifier at "); switch (i) { case REGT_R8...REGT_XMM: - tempr=CAlloc(sizeof(CHashReg)); - tempr->str=cc->cur_str; + tmpr=CAlloc(sizeof(CHashReg)); + tmpr->str=cc->cur_str; cc->cur_str=NULL; Lex(cc); //skip keyword name if (cc->token!=TK_I64) LexExcept(cc,"Expecting int at "); - tempr->type=HTT_REG; - tempr->reg_type=i; - tempr->reg_num=cc->cur_i64; - HashAdd(tempr,cmp.asm_hash); + tmpr->type=HTT_REG; + tmpr->reg_type=i; + tmpr->reg_num=cc->cur_i64; + HashAdd(tmpr,cmp.asm_hash); Lex(cc); //Skip INT break; case: //OPCODE if (cc->token!=TK_IDENT) LexExcept(cc,"Expecting opcode at "); - MemSet(tempo_max,0,size_max); - tempo_max->type=HTT_OPCODE; - tempo_max->inst_entry_cnt=0; - tempo_max->str=cc->cur_str; + MemSet(tmpo_max,0,size_max); + tmpo_max->type=HTT_OPCODE; + tmpo_max->inst_entry_cnt=0; + tmpo_max->str=cc->cur_str; cc->cur_str=0; Lex(cc); //Skip OPCODE while (cc->token && cc->token!=';' && cc->token!=':') { - tempi=&tempo_max->ins[tempo_max->inst_entry_cnt]; - tempi->ins_entry_num=tempo_max->inst_entry_cnt++; - tempi->slash_val=SV_NONE; //Not zero!! + tmpins=&tmpo_max->ins[tmpo_max->inst_entry_cnt]; + tmpins->ins_entry_num=tmpo_max->inst_entry_cnt++; + tmpins->slash_val=SV_NONE; //Not zero!! while (cc->token==TK_I64) { - tempi->opcode[tempi->opcode_cnt++]=cc->cur_i64; + tmpins->opcode[tmpins->opcode_cnt++]=cc->cur_i64; Lex(cc); } if (cc->token==',') @@ -117,74 +117,74 @@ U0 AsmHashLoad() else if (cc->token!=';') LexExcept(cc,"Expecting ',' at "); - AsmPrsInsFlags(cc,tempi); + AsmPrsInsFlags(cc,tmpins); - tempi->uasm_slash_val=tempi->slash_val; - if (tempi->flags&IEF_STI_LIKE && tempi->slash_val!=SV_I_REG) - tempi->uasm_slash_val=SV_STI_LIKE; + tmpins->uasm_slash_val=tmpins->slash_val; + if (tmpins->flags&IEF_STI_LIKE && tmpins->slash_val!=SV_I_REG) + tmpins->uasm_slash_val=SV_STI_LIKE; - tempi->arg1=tempi->arg2=tempi->size1=tempi->size2=0; + tmpins->arg1=tmpins->arg2=tmpins->size1=tmpins->size2=0; if (cc->token==TK_IDENT) { j=DefineMatch(cc->cur_str,"ST_ARG_TYPES"); - tempi->arg1=j; + tmpins->arg1=j; if (Bt(&cmp.size_arg_mask[1],j)) - tempi->size1=8; + tmpins->size1=8; else if (Bt(&cmp.size_arg_mask[2],j)) - tempi->size1=16; + tmpins->size1=16; else if (Bt(&cmp.size_arg_mask[4],j)) - tempi->size1=32; + tmpins->size1=32; else if (Bt(&cmp.size_arg_mask[8],j)) - tempi->size1=64; + tmpins->size1=64; if (Lex(cc)==TK_IDENT) { j=DefineMatch(cc->cur_str,"ST_ARG_TYPES"); Lex(cc); - tempi->arg2=j; + tmpins->arg2=j; if (Bt(&cmp.size_arg_mask[1],j)) - tempi->size2=8; + tmpins->size2=8; else if (Bt(&cmp.size_arg_mask[2],j)) - tempi->size2=16; + tmpins->size2=16; else if (Bt(&cmp.size_arg_mask[4],j)) - tempi->size2=32; + tmpins->size2=32; else if (Bt(&cmp.size_arg_mask[8],j)) - tempi->size2=64; + tmpins->size2=64; } } } - size=offset(CHashOpcode.ins)+sizeof(CInst)*tempo_max->inst_entry_cnt; - tempo=MAlloc(size); - MemCpy(tempo,tempo_max,size); - tempo->use_cnt=0; - if (HashFind(tempo->str,cmp.asm_hash,HTT_OPCODE)) + size=offset(CHashOpcode.ins)+sizeof(CInst)*tmpo_max->inst_entry_cnt; + tmpo=MAlloc(size); + MemCpy(tmpo,tmpo_max,size); + tmpo->use_cnt=0; + if (HashFind(tmpo->str,cmp.asm_hash,HTT_OPCODE)) LexExcept(cc,"Duplicate OPCODE entry "); - HashAdd(tempo,cmp.asm_hash); + HashAdd(tmpo,cmp.asm_hash); //Parse aliases. if (cc->token==':') { while (Lex(cc)==TK_IDENT) { - tempo2=MAllocIdent(tempo); - tempo2->str=cc->cur_str; + tmpo2=MAllocIdent(tmpo); + tmpo2->str=cc->cur_str; cc->cur_str=0; - tempo2->oc_flags|=OCF_ALIAS; - if (HashFind(tempo2->str,cmp.asm_hash,HTT_OPCODE)) + tmpo2->oc_flags|=OCF_ALIAS; + if (HashFind(tmpo2->str,cmp.asm_hash,HTT_OPCODE)) LexExcept(cc,"Duplicate OPCODE ALIAS entry "); - HashAdd(tempo2,cmp.asm_hash); + HashAdd(tmpo2,cmp.asm_hash); } } break; case: //KEYWORD case: //ASM_KEYWORD - temph=CAlloc(sizeof(CHashGeneric)); - temph->str=cc->cur_str; + tmph=CAlloc(sizeof(CHashGeneric)); + tmph->str=cc->cur_str; cc->cur_str=NULL; Lex(cc); //skip keyword name if (cc->token!=TK_I64) LexExcept(cc,"Expecting int at "); - temph->user_data0=cc->cur_i64; + tmph->user_data0=cc->cur_i64; if (i==10) - temph->type=HTT_KEYWORD; + tmph->type=HTT_KEYWORD; else - temph->type=HTT_ASM_KEYWORD; - HashAdd(temph,cmp.asm_hash); + tmph->type=HTT_ASM_KEYWORD; + HashAdd(tmph,cmp.asm_hash); Lex(cc); //Skip INT break; } @@ -192,18 +192,18 @@ U0 AsmHashLoad() LexExcept(cc,"Missing ';' at"); Lex(cc); //Skip ';' } - Free(tempo_max); + Free(tmpo_max); CmpCtrlDel(cc); for (i=0;itype=HTT_INTERNAL_TYPE; - tempc->raw_type=tempit->type; - Bts(&tempc->flags,Cf_INTERNAL_TYPE); - tempc->size=tempit->size; - tempc->str=AStrNew(tempit->name); - HashAdd(tempc,cmp.asm_hash); - cmp.internal_types[tempc->raw_type]=tempc; + tmpit=&internal_types_table[i]; + tmpc=PrsClassNew; + tmpc->type=HTT_INTERNAL_TYPE; + tmpc->raw_type=tmpit->type; + Bts(&tmpc->flags,Cf_INTERNAL_TYPE); + tmpc->size=tmpit->size; + tmpc->str=AStrNew(tmpit->name); + HashAdd(tmpc,cmp.asm_hash); + cmp.internal_types[tmpc->raw_type]=tmpc; } adam_task->hash_table->next=cmp.asm_hash; } diff --git a/Compiler/AsmLib.HC b/Compiler/AsmLib.HC index 7ec3510..937e59b 100644 --- a/Compiler/AsmLib.HC +++ b/Compiler/AsmLib.HC @@ -2,19 +2,19 @@ U0 AOTStoreCodeU8(CCmpCtrl *cc,U8 b) { CAOTCtrl *aotc=cc->aotc; I64 i=aotc->ip>>AOT_BIN_BLK_BITS; - CAOTBinBlk *tempbin=aotc->bin; + CAOTBinBlk *tmpbin=aotc->bin; while (i--) - if (!(tempbin=tempbin->next)) { + if (!(tmpbin=tmpbin->next)) { i=aotc->ip>>AOT_BIN_BLK_BITS+1; - tempbin=&aotc->bin; + tmpbin=&aotc->bin; while (i--) { - if (!tempbin->next) - tempbin->next=CAlloc(sizeof(CAOTBinBlk)); - tempbin=tempbin->next; + if (!tmpbin->next) + tmpbin->next=CAlloc(sizeof(CAOTBinBlk)); + tmpbin=tmpbin->next; } break; } - tempbin->body[aotc->ip++ & (AOT_BIN_BLK_SIZE-1)]=b; + tmpbin->body[aotc->ip++ & (AOT_BIN_BLK_SIZE-1)]=b; if (aotc->lst) { if (aotc->lst_col>=24) { '\n'; @@ -32,24 +32,24 @@ U0 AOTStoreCodeU32(CCmpCtrl *cc,U32 d) CAOTCtrl *aotc=cc->aotc; I64 i=aotc->ip>>AOT_BIN_BLK_BITS,j=(aotc->ip+sizeof(U32))>>AOT_BIN_BLK_BITS; U32 *_d; - CAOTBinBlk *tempbin; + CAOTBinBlk *tmpbin; if (i!=j) for (i=0;ibin; + tmpbin=aotc->bin; while (i--) - if (!(tempbin=tempbin->next)) { + if (!(tmpbin=tmpbin->next)) { i=aotc->ip>>AOT_BIN_BLK_BITS+1; - tempbin=&aotc->bin; + tmpbin=&aotc->bin; while (i--) { - if (!tempbin->next) - tempbin->next=CAlloc(sizeof(CAOTBinBlk)); - tempbin=tempbin->next; + if (!tmpbin->next) + tmpbin->next=CAlloc(sizeof(CAOTBinBlk)); + tmpbin=tmpbin->next; } break; } - _d=tempbin->body+ aotc->ip&(AOT_BIN_BLK_SIZE-1); + _d=tmpbin->body+ aotc->ip&(AOT_BIN_BLK_SIZE-1); *_d=d; aotc->ip+=sizeof(U32); if (aotc->lst) { @@ -70,24 +70,24 @@ U0 AOTStoreCodeU64(CCmpCtrl *cc,U64 q) CAOTCtrl *aotc=cc->aotc; I64 i=aotc->ip>>AOT_BIN_BLK_BITS,j=(aotc->ip+sizeof(I64))>>AOT_BIN_BLK_BITS, *_q; - CAOTBinBlk *tempbin; + CAOTBinBlk *tmpbin; if (i!=j) for (i=0;ibin; + tmpbin=aotc->bin; while (i--) - if (!(tempbin=tempbin->next)) { + if (!(tmpbin=tmpbin->next)) { i=aotc->ip>>AOT_BIN_BLK_BITS+1; - tempbin=&aotc->bin; + tmpbin=&aotc->bin; while (i--) { - if (!tempbin->next) - tempbin->next=CAlloc(sizeof(CAOTBinBlk)); - tempbin=tempbin->next; + if (!tmpbin->next) + tmpbin->next=CAlloc(sizeof(CAOTBinBlk)); + tmpbin=tmpbin->next; } break; } - _q=tempbin->body+ aotc->ip&(AOT_BIN_BLK_SIZE-1); + _q=tmpbin->body+ aotc->ip&(AOT_BIN_BLK_SIZE-1); *_q=q; aotc->ip+=sizeof(I64); if (aotc->lst) { @@ -106,19 +106,19 @@ U0 AOTStoreCodeU64(CCmpCtrl *cc,U64 q) U0 AOTStoreCodeU8At(CCmpCtrl *cc,I64 ip,...) { CAOTCtrl *aotc=cc->aotc; - CAOTBinBlk *tempbin; + CAOTBinBlk *tmpbin; I64 i,j; for (j=0;j>AOT_BIN_BLK_BITS+1; - tempbin=&aotc->bin; + tmpbin=&aotc->bin; while (i--) { - if (!tempbin->next) { - tempbin->next=CAlloc(sizeof(CAOTBinBlk)); - tempbin->next->next=NULL; + if (!tmpbin->next) { + tmpbin->next=CAlloc(sizeof(CAOTBinBlk)); + tmpbin->next->next=NULL; } - tempbin=tempbin->next; + tmpbin=tmpbin->next; } - tempbin->body[ip++ & (AOT_BIN_BLK_SIZE-1)]=argv[j]; + tmpbin->body[ip++ & (AOT_BIN_BLK_SIZE-1)]=argv[j]; } if (ip>aotc->num_bin_U8s) aotc->num_bin_U8s=ip; @@ -147,11 +147,11 @@ I64 AsmLexExpression(CCmpCtrl *cc) U0 AsmLineLst(CCmpCtrl *cc) { CAOTCtrl *aotc=cc->aotc; - CLexFile *tempf=cc->lex_include_stk; - CDocEntry *doc_e=tempf->line_start,*doc_e2; - if (aotc->lst && aotc->lst_last_lfn==tempf && doc_e) { + CLexFile *tmpf=cc->lex_include_stk; + CDocEntry *doc_e=tmpf->line_start,*doc_e2; + if (aotc->lst && aotc->lst_last_lfn==tmpf && doc_e) { if (doc_e2=aotc->lst_last_line) { - if (tempf->flags& LFSF_DOC) { + if (tmpf->flags& LFSF_DOC) { while (doc_e2->yy) { "%h*c%08X ",24-aotc->lst_col,CH_SPACE,aotc->lst_last_ip; aotc->lst_col=0; @@ -169,7 +169,7 @@ U0 AsmLineLst(CCmpCtrl *cc) aotc->lst_last_line=doc_e; } else { aotc->lst_last_line=NULL; - aotc->lst_last_lfn=tempf; + aotc->lst_last_lfn=tmpf; } aotc->lst_last_ip=aotc->ip; } diff --git a/Compiler/AsmResolve.HC b/Compiler/AsmResolve.HC index 0138657..0157292 100644 --- a/Compiler/AsmResolve.HC +++ b/Compiler/AsmResolve.HC @@ -1,40 +1,40 @@ -U0 AsmResolve(CCmpCtrl *cc,CAsmUnresolvedRef *tempu,U8 *label,Bool undefined) +U0 AsmResolve(CCmpCtrl *cc,CAsmUnresolvedRef *tmpu,U8 *label,Bool undefined) { - CAOTImportExport *tempie; - CAsmUndefHash *tempauh; - I64 r=Call(tempu->machine_code); + CAOTImportExport *tmpie; + CAsmUndefHash *tmpauh; + I64 r=Call(tmpu->machine_code); if (undefined) { - tempauh=tempu->asm_undef_hash; - while (tempauh) { - if (tempauh->hash->type & HTF_UNRESOLVED) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->next=tempauh->hash->ie_lst; - tempauh->hash->ie_lst=tempie; - tempie->ip=tempu->ip; - tempie->aot=cc->aot; - tempie->type=tempu->type; + tmpauh=tmpu->asm_undef_hash; + while (tmpauh) { + if (tmpauh->hash->type & HTF_UNRESOLVED) { + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->next=tmpauh->hash->ie_lst; + tmpauh->hash->ie_lst=tmpie; + tmpie->ip=tmpu->ip; + tmpie->aot=cc->aot; + tmpie->type=tmpu->type; } - tempauh=tempauh->next; //Technically, more than one won't work. + tmpauh=tmpauh->next; //Technically, more than one won't work. } - } else if (!(tempu->type&IEF_IMM_NOT_REL)) { - r-=tempu->rel_ip; - if (tempu->type==IET_REL_I8 && !(MIN_I8<=r<=MAX_I8) || - tempu->type==IET_REL_I16 && !(MIN_I16<=r<=MAX_I16)) { + } else if (!(tmpu->type&IEF_IMM_NOT_REL)) { + r-=tmpu->rel_ip; + if (tmpu->type==IET_REL_I8 && !(MIN_I8<=r<=MAX_I8) || + tmpu->type==IET_REL_I16 && !(MIN_I16<=r<=MAX_I16)) { PrintErr("Branch out of range at line:%04d %s\n", - tempu->line_num,label); + tmpu->line_num,label); LexExcept(cc); } - if (tempu->U8_avail && tempu->type>IET_IMM_U8 && -124<=r<=123) + if (tmpu->U8_avail && tmpu->type>IET_IMM_U8 && -124<=r<=123) PrintWarn("could use I8 displacement at line:%04d %s %s\n", - tempu->line_num,cc->aotc->last_label,label); + tmpu->line_num,cc->aotc->last_label,label); } - AOTStoreCodeU8At(cc,tempu->ip,r.u8[0]); - if (tempu->type>=IET_REL_I16) { - AOTStoreCodeU8At(cc,tempu->ip+1,r.u8[1]); - if (tempu->type>=IET_REL_I32) { - AOTStoreCodeU8At(cc,tempu->ip+2,r.u8[2],r.u8[3]); - if (tempu->type>=IET_REL_I64) - AOTStoreCodeU8At(cc,tempu->ip+4,r.u8[4],r.u8[5],r.u8[6],r.u8[7]); + AOTStoreCodeU8At(cc,tmpu->ip,r.u8[0]); + if (tmpu->type>=IET_REL_I16) { + AOTStoreCodeU8At(cc,tmpu->ip+1,r.u8[1]); + if (tmpu->type>=IET_REL_I32) { + AOTStoreCodeU8At(cc,tmpu->ip+2,r.u8[2],r.u8[3]); + if (tmpu->type>=IET_REL_I64) + AOTStoreCodeU8At(cc,tmpu->ip+4,r.u8[4],r.u8[5],r.u8[6],r.u8[7]); } } } @@ -42,30 +42,30 @@ U0 AsmResolve(CCmpCtrl *cc,CAsmUnresolvedRef *tempu,U8 *label,Bool undefined) U0 AOTLocalsResolve(CCmpCtrl *cc) { CAOTCtrl *aotc=cc->aotc; - CAsmUnresolvedRef *tempu=aotc->local_unresolved,*tempu1; - CAsmUndefHash *tempauh; + CAsmUnresolvedRef *tmpu=aotc->local_unresolved,*tmpu1; + CAsmUndefHash *tmpauh; Bool undefined; U8 *label=NULL; - while (tempu) { + while (tmpu) { undefined=FALSE; - tempu1=tempu->next; - tempauh=tempu->asm_undef_hash; - while (tempauh) { - if (tempauh->hash->type & HTF_UNRESOLVED) { + tmpu1=tmpu->next; + tmpauh=tmpu->asm_undef_hash; + while (tmpauh) { + if (tmpauh->hash->type & HTF_UNRESOLVED) { PrintErr("Undefined sym at line:%04d %s %s\n", - tempu->line_num,aotc->last_label,tempauh->hash->str); + tmpu->line_num,aotc->last_label,tmpauh->hash->str); LexExcept(cc); } - label=tempauh->hash->str; - tempauh=tempauh->next; + label=tmpauh->hash->str; + tmpauh=tmpauh->next; } if (!undefined) - AsmResolve(cc,tempu,label,FALSE); - Free(tempu->machine_code); - LinkedLstDel(tempu->asm_undef_hash); - Free(tempu); - tempu=tempu1; + AsmResolve(cc,tmpu,label,FALSE); + Free(tmpu->machine_code); + LinkedLstDel(tmpu->asm_undef_hash); + Free(tmpu); + tmpu=tmpu1; } HashTableDel(cc->htc.local_hash_table); cc->htc.hash_table_lst=cc->htc.local_hash_table=HashTableNew(16); @@ -73,114 +73,114 @@ U0 AOTLocalsResolve(CCmpCtrl *cc) aotc->local_unresolved=NULL; } -U0 AOTGlblsResolve(CCmpCtrl *cc,CAOT *tempaot) +U0 AOTGlblsResolve(CCmpCtrl *cc,CAOT *tmpaot) { CAOTCtrl *aotc=cc->aotc; - CHashFun *tempf; - CAsmUnresolvedRef *tempu=aotc->glbl_unresolved,*tempu1; + CHashFun *tmpf; + CAsmUnresolvedRef *tmpu=aotc->glbl_unresolved,*tmpu1; I64 i,j; - CAOTImportExport *tempie,*tempie1; - CAsmUndefHash *tempauh; - CHashExport *tempex; + CAOTImportExport *tmpie,*tmpie1; + CAsmUndefHash *tmpauh; + CHashExport *tmpex; U8 *label; Bool undefined; - CExternUsage *tempeu,*tempeu8; + CExternUsage *tmpeu,*tmpeu8; - while (tempu) { + while (tmpu) { label=NULL; undefined=FALSE; - tempu1=tempu->next; - tempauh=tempu->asm_undef_hash; - while (tempauh) { - if (tempauh->hash->type & HTF_UNRESOLVED) { - tempex=tempauh->hash; - if (tempex->type & HTT_EXPORT_SYS_SYM&& tempex->type & HTF_UNRESOLVED && - !(tempex->type & HTF_IMPORT) && - (tempf=HashFind(tempex->str,cc->htc.hash_table_lst,HTT_FUN)) && - !Bt(&tempf->flags,Cf_EXTERN)) { - tempex->val=tempf->exe_addr; - tempex->type&=~HTF_UNRESOLVED; - label=tempauh->hash->str; + tmpu1=tmpu->next; + tmpauh=tmpu->asm_undef_hash; + while (tmpauh) { + if (tmpauh->hash->type & HTF_UNRESOLVED) { + tmpex=tmpauh->hash; + if (tmpex->type & HTT_EXPORT_SYS_SYM&& tmpex->type & HTF_UNRESOLVED && + !(tmpex->type & HTF_IMPORT) && + (tmpf=HashFind(tmpex->str,cc->htc.hash_table_lst,HTT_FUN)) && + !Bt(&tmpf->flags,Cf_EXTERN)) { + tmpex->val=tmpf->exe_addr; + tmpex->type&=~HTF_UNRESOLVED; + label=tmpauh->hash->str; } else { - if (!(tempex->type & HTF_IMPORT)) { + if (!(tmpex->type & HTF_IMPORT)) { if (cc->htc.local_var_lst) { - tempex->type|=HTF_GOTO_LABEL; - tempex->use_cnt++; + tmpex->type|=HTF_GOTO_LABEL; + tmpex->use_cnt++; } else { PrintErr("Undefined sym at line:%04d %s\n", - tempu->line_num,tempex->str); + tmpu->line_num,tmpex->str); LexExcept(cc); } } else if (undefined) { PrintErr("Two imports in same expression " "not allowed at line:%04d %s\n", - tempu->line_num,tempex->str); + tmpu->line_num,tmpex->str); LexExcept(cc); } undefined=TRUE; } } else - label=tempauh->hash->str; - tempauh=tempauh->next; + label=tmpauh->hash->str; + tmpauh=tmpauh->next; } - AsmResolve(cc,tempu,label,undefined); - Free(tempu->machine_code); - LinkedLstDel(tempu->asm_undef_hash); - Free(tempu); - tempu=tempu1; + AsmResolve(cc,tmpu,label,undefined); + Free(tmpu->machine_code); + LinkedLstDel(tmpu->asm_undef_hash); + Free(tmpu); + tmpu=tmpu1; } for (i=0;i<=cc->htc.glbl_hash_table->mask;i++) { - tempex=cc->htc.glbl_hash_table->body[i]; - while (tempex) { - if (tempex->type & (HTF_IMPORT|HTF_GOTO_LABEL)) { - if (tempex->use_cnt && (tempie=tempex->ie_lst)) { - if (tempex->type&HTF_GOTO_LABEL) - tempie->flags|=IEF_GOTO_LABEL; - if (tempex->import_name) - tempie->str=StrNew(tempex->import_name); + tmpex=cc->htc.glbl_hash_table->body[i]; + while (tmpex) { + if (tmpex->type & (HTF_IMPORT|HTF_GOTO_LABEL)) { + if (tmpex->use_cnt && (tmpie=tmpex->ie_lst)) { + if (tmpex->type&HTF_GOTO_LABEL) + tmpie->flags|=IEF_GOTO_LABEL; + if (tmpex->import_name) + tmpie->str=StrNew(tmpex->import_name); else - tempie->str=StrNew(tempex->str); + tmpie->str=StrNew(tmpex->str); do { - tempie1=tempie->next; - QueIns(tempie,tempaot->last_ie); - } while (tempie=tempie1); - tempex->ie_lst=NULL; + tmpie1=tmpie->next; + QueIns(tmpie,tmpaot->last_ie); + } while (tmpie=tmpie1); + tmpex->ie_lst=NULL; } - } else if (tempex->type & (HTF_EXPORT|HTF_RESOLVE)) { - if (tempex->type & HTF_UNRESOLVED) { - PrintErr("Undefined sym at %s\n",tempex->str); + } else if (tmpex->type & (HTF_EXPORT|HTF_RESOLVE)) { + if (tmpex->type & HTF_UNRESOLVED) { + PrintErr("Undefined sym at %s\n",tmpex->str); LexExcept(cc); } - if (tempex->type & HTF_RESOLVE) { - tempf=tempex; - tempeu=tempf->ext_lst; - while (tempeu) { - tempeu8=tempeu->next; - j=tempf->exe_addr-(tempeu->ip+4); - AOTStoreCodeU8At(cc,tempeu->ip,j.u8[0],j.u8[1],j.u8[2],j.u8[3]); - Free(tempeu); - tempeu=tempeu8; + if (tmpex->type & HTF_RESOLVE) { + tmpf=tmpex; + tmpeu=tmpf->ext_lst; + while (tmpeu) { + tmpeu8=tmpeu->next; + j=tmpf->exe_addr-(tmpeu->ip+4); + AOTStoreCodeU8At(cc,tmpeu->ip,j.u8[0],j.u8[1],j.u8[2],j.u8[3]); + Free(tmpeu); + tmpeu=tmpeu8; } } - if (tempex->type & HTF_EXPORT) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_REL32_EXPORT; - if (tempex->type & HTT_FUN) - tempie->ip=tempf->exe_addr; - else if (tempex->type & HTT_GLBL_VAR) - tempie->ip=tempex(CHashGlblVar *)->data_addr_ip; + if (tmpex->type & HTF_EXPORT) { + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_REL32_EXPORT; + if (tmpex->type & HTT_FUN) + tmpie->ip=tmpf->exe_addr; + else if (tmpex->type & HTT_GLBL_VAR) + tmpie->ip=tmpex(CHashGlblVar *)->data_addr_ip; else - tempie->ip=tempex->val; - tempie->aot=cc->aot; - if (tempex->type & HTF_IMM) - tempie->type++; - tempie->str=StrNew(tempex->str); - tempie->src_link=StrNew(tempex->src_link); - QueIns(tempie,tempaot->last_ie); + tmpie->ip=tmpex->val; + tmpie->aot=cc->aot; + if (tmpex->type & HTF_IMM) + tmpie->type++; + tmpie->str=StrNew(tmpex->str); + tmpie->src_link=StrNew(tmpex->src_link); + QueIns(tmpie,tmpaot->last_ie); } } - tempex=tempex->next; + tmpex=tmpex->next; } } } @@ -189,28 +189,28 @@ U0 AsmUnresolvedAdd(CCmpCtrl *cc,U8 *machine_code,I64 type,I64 ip,I64 rel_ip, CAsmUndefHash *local_asm_undef_hash,CAsmUndefHash *glbl_asm_undef_hash, I64 line_num,Bool U8_avail) { - CAsmUnresolvedRef *tempu=MAlloc(sizeof(CAsmUnresolvedRef)); - tempu->machine_code=machine_code; - tempu->type=type; - tempu->ip=ip; - tempu->rel_ip=rel_ip; - tempu->aot=cc->aot; - tempu->imm_flag=FALSE; - tempu->line_num=line_num; - tempu->U8_avail=U8_avail; - tempu->str=NULL; + CAsmUnresolvedRef *tmpu=MAlloc(sizeof(CAsmUnresolvedRef)); + tmpu->machine_code=machine_code; + tmpu->type=type; + tmpu->ip=ip; + tmpu->rel_ip=rel_ip; + tmpu->aot=cc->aot; + tmpu->imm_flag=FALSE; + tmpu->line_num=line_num; + tmpu->U8_avail=U8_avail; + tmpu->str=NULL; if (local_asm_undef_hash) { - tempu->asm_undef_hash=local_asm_undef_hash; - tempu->next=cc->aotc->local_unresolved; - cc->aotc->local_unresolved=tempu; + tmpu->asm_undef_hash=local_asm_undef_hash; + tmpu->next=cc->aotc->local_unresolved; + cc->aotc->local_unresolved=tmpu; } else { - tempu->asm_undef_hash=glbl_asm_undef_hash; - tempu->next=cc->aotc->glbl_unresolved; - cc->aotc->glbl_unresolved=tempu; + tmpu->asm_undef_hash=glbl_asm_undef_hash; + tmpu->next=cc->aotc->glbl_unresolved; + cc->aotc->glbl_unresolved=tmpu; if (glbl_asm_undef_hash->hash->type & HTF_IMPORT) { - tempu->str=StrNew(glbl_asm_undef_hash->hash->str); + tmpu->str=StrNew(glbl_asm_undef_hash->hash->str); if (glbl_asm_undef_hash->hash->type & HTF_IMM) - tempu->imm_flag=TRUE; + tmpu->imm_flag=TRUE; } } } diff --git a/Compiler/BackA.HC b/Compiler/BackA.HC index e4b5bcf..6e5484f 100644 --- a/Compiler/BackA.HC +++ b/Compiler/BackA.HC @@ -1,7 +1,7 @@ -U0 ICAddEct(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, +U0 ICAddEct(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1, CICType t2,I64 r2,I64 d2,CICType t3,I64 r3,I64 d3,I64 op,I64 ip) { - I64 i,temp,res_reg=REG_RAX; + I64 i,tmp,res_reg=REG_RAX; Bool swap=FALSE; if (r3!=res_reg) { swap^=TRUE; @@ -12,48 +12,48 @@ U0 ICAddEct(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, if (t2.raw_type>=RT_I64 && r2!=res_reg && t2&MDG_REG_DISP_SIB_RIP) { if (t1&MDF_REG && !(r2==r1 && t2&MDG_REG_DISP_SIB)) res_reg=r1; - ICMov(tempi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); i=ICModr1(res_reg,t2,r2,d2); - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op); - ICModr2(tempi,i,d2,ip+4); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op); + ICModr2(tmpi,i,d2,ip+4); } else { if (t2&MDF_REG) - temp=r2; + tmp=r2; else - temp=REG_RCX; + tmp=REG_RCX; if (t1&MDF_REG) res_reg=r1; - if (temp==res_reg) + if (tmp==res_reg) res_reg=REG_RDX; if (swap) { - if (r3==temp && t3&MDG_REG_DISP_SIB) - temp=REG_RCX; - ICMov(tempi,MDF_REG+RT_I64,temp,0,t2,r2,d2,ip); - ICMov(tempi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); + if (r3==tmp && t3&MDG_REG_DISP_SIB) + tmp=REG_RCX; + ICMov(tmpi,MDF_REG+RT_I64,tmp,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); } else { if (r2==res_reg && t2&MDG_REG_DISP_SIB) res_reg=REG_RDX; - ICMov(tempi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); - ICMov(tempi,MDF_REG+RT_I64,temp,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,res_reg,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,tmp,0,t2,r2,d2,ip); } i=0x48; if (res_reg>7) i+=4; - if (temp>7) + if (tmp>7) i++; - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICU24(tempi,0xC00000+i+(temp&7)<<16+(res_reg&7)<<19+op<<8); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICU24(tmpi,0xC00000+i+(tmp&7)<<16+(res_reg&7)<<19+op<<8); } - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); } -U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, +U0 ICAddSubEctImm(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1, CICType t2,I64 r2,I64 d2,I64 d,I64 op,I64 ip) { I64 i,r; @@ -63,7 +63,7 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, } if (t1&MDF_REG) { if (!(t2&MDF_REG)) { - ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); + ICMov(tmpi,t1,r1,d1,t2,r2,d2,ip); t2=t1; r2=r1; d2=d1; @@ -77,18 +77,18 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, (op.u8[0]==0x03||op.u8[0]==0x2B||op.u8[0]==0x33||op.u8[0]==0x0B)) return; else if (d==1 && op.u8[0]==0x03) { - ICU24(tempi,0xC0FF00+op.u8[1]<<19+i+(r1&7)<<16); + ICU24(tmpi,0xC0FF00+op.u8[1]<<19+i+(r1&7)<<16); return; } else if (d==-1 && op.u8[0]==0x03) { - ICU24(tempi,0xC8FF00+i+(r1&7)<<16); + ICU24(tmpi,0xC8FF00+i+(r1&7)<<16); return; } else if (MIN_I8<=d<=MAX_I8) { - ICU24(tempi,0xC08300+op.u8[1]<<19+i+(r1&7)<<16); - ICU8(tempi,d); + ICU24(tmpi,0xC08300+op.u8[1]<<19+i+(r1&7)<<16); + ICU8(tmpi,d); return; } else if (MIN_I32<=d<=MAX_I32) { - ICU24(tempi,0xC08100+op.u8[1]<<19+i+(r1&7)<<16); - ICU32(tempi,d); + ICU24(tmpi,0xC08100+op.u8[1]<<19+i+(r1&7)<<16); + ICU32(tmpi,d); return; } } @@ -96,8 +96,8 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, !Bt(&cmp.non_ptr_vars_mask,r2)) { i=ICModr1(r1,MDF_DISP+RT_I64,r2,d); i.u8[1]|=0x48; - ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); - ICModr2(tempi,i,d,ip+4); + ICU24(tmpi,i.u8[2]<<16+0x8D00+i.u8[1]); + ICModr2(tmpi,i,d,ip+4); return; } } @@ -107,7 +107,7 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, case MDf_SIB: case MDf_RIP_DISP32: if (t1!=t2 || r1!=r2 || d1!=d2) { - ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); + ICMov(tmpi,t1,r1,d1,t2,r2,d2,ip); t2=t1; r2=r1; d2=d1; @@ -121,88 +121,88 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, if (op.u8[0]==0x03 && (d==1 || d==-1)) { //Add i=ICModr1(r,t1,r1,d1); - if (!(t1&MDF_REG) && tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); + if (!(t1&MDF_REG) && tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); switch (t1.raw_type) { case RT_I8: case RT_U8: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0xFE); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0xFE); break; case RT_I16: case RT_U16: - ICOpSizeRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0xFF); + ICOpSizeRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0xFF); break; default: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0xFF); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0xFF); } - ICModr2(tempi,i,d1,ip+4); + ICModr2(tmpi,i,d1,ip+4); return; } if (MIN_I8<=d<=MAX_I8 || t1&(RTG_MASK-RTF_UNSIGNED)==RT_I8) { i=ICModr1(r,t1,r1,d1); - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); switch (t1.raw_type) { case RT_I8: case RT_U8: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x80); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x80); break; case RT_I16: case RT_U16: - ICOpSizeRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x83); + ICOpSizeRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x83); break; default: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x83); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x83); } - ICModr2(tempi,i,d1,ip+5); - ICU8(tempi,d); + ICModr2(tmpi,i,d1,ip+5); + ICU8(tmpi,d); return; } if (MIN_I32<=d<=MAX_I32 || t1.raw_typeic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); switch (t1.raw_type) { case RT_I16: case RT_U16: - ICOpSizeRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x81); + ICOpSizeRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x81); break; default: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x81); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x81); } if (i.u8[0]!=MODR_RIP_REL) - ICModr2(tempi,i,d1,); + ICModr2(tmpi,i,d1,); else { if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16) - ICU32(tempi,d1-(ip+tempi->ic_cnt+6)); + ICU32(tmpi,d1-(ip+tmpi->ic_cnt+6)); else - ICU32(tempi,d1-(ip+tempi->ic_cnt+8)); - tempi->ic_flags&=~ICF_CODE_FINAL; + ICU32(tmpi,d1-(ip+tmpi->ic_cnt+8)); + tmpi->ic_flags&=~ICF_CODE_FINAL; } if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16) - ICU16(tempi,d); + ICU16(tmpi,d); else - ICU32(tempi,d); + ICU32(tmpi,d); return; } break; case MDf_STK: - ICAddSubEctImm(tempi,MDF_REG+RT_I64,REG_RAX,0,t2,r2,d2,d,op,ip); - ICPushRegs(tempi,1<=RT_I64 && r2.u8[0]!=REG_RAX && (!(t2&MDF_SIB) || r2.u8[1]&15!=REG_RAX) && t2&MDG_REG_DISP_SIB_RIP) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); if (!swap) { op=0x03; - ICU24(tempi,0xD8F748); + ICU24(tmpi,0xD8F748); } i=ICModr1(REG_RAX,t2,r2,d2); - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op); - ICModr2(tempi,i,d2,ip+4); - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op); + ICModr2(tmpi,i,d2,ip+4); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,REG_RAX,0,ip); } else { if (!(t3&MDF_REG) || t3.raw_type7) i++; if (r2>7) i+=4; - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICU24(tempi,0xC00000+i+(r3&7)<<16+(r2&7)<<19+op<<8); - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,r2,0,ip); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICU24(tmpi,0xC00000+i+(r3&7)<<16+(r2&7)<<19+op<<8); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,r2,0,ip); } } -U0 ICMul(CIntermediateCode *tempi,I64 ip) +U0 ICMul(CIntermediateCode *tmpi,I64 ip) { I64 i,r2,r=REG_RAX,j; CICArg *a1,*a2; Bool alt; - if (tempi->a1.type&MDF_IMM) { - a1=&tempi->a2; - a2=&tempi->a1; + if (tmpi->a1.type&MDF_IMM) { + a1=&tmpi->a2; + a2=&tmpi->a1; alt=TRUE; } else { - a1=&tempi->a1; - a2=&tempi->a2; + a1=&tmpi->a1; + a2=&tmpi->a2; alt=FALSE; } i=a2->disp; - if (!(tempi->ic_class->raw_type&RTF_UNSIGNED) && + if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) && a2->type&MDF_IMM && MIN_I32<=i<=MAX_I32) { - if (tempi->r.type==MDF_REG+RT_I64) { - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->r.type==MDF_REG+RT_I64) { + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, a1->type,a1->reg,a1->disp,ip); - r=tempi->r.reg; + r=tmpi->r.reg; } else - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip); if (r>7) j=0xC0004D; else j=0xC00048; if (MIN_I8<=i<=MAX_I8) - ICU32(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); + ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); else { - ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); - ICU32(tempi,i); + ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19); + ICU32(tmpi,i); } } else { - if (tempi->ic_class->raw_type&RTF_UNSIGNED) + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) i=0xE0F748; else i=0xE8F748; if (alt) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); r2=REG_RCX; - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); if (!(a1->type&MDF_REG) || a1->type.raw_typetype,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); r2=REG_RCX; } else r2=a1->reg; @@ -314,196 +314,196 @@ U0 ICMul(CIntermediateCode *tempi,I64 ip) i++; r2&=7; } - ICU24(tempi,i+r2<<16); + ICU24(tmpi,i+r2<<16); } - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,MDF_REG+RT_I64,r,0,ip); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp,MDF_REG+RT_I64,r,0,ip); } -U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) +U0 ICMulEqu(CIntermediateCode *tmpi,I64 ip) { - I64 i=tempi->a2.disp,r=REG_RAX,j; - if (!(tempi->ic_class->raw_type&RTF_UNSIGNED) && - tempi->a2.type&MDF_IMM && MIN_I32<=i<=MAX_I32) { - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempi->a1.type==MDF_REG+RT_I64) - r=tempi->a1.reg; + I64 i=tmpi->a2.disp,r=REG_RAX,j; + if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) && + tmpi->a2.type&MDF_IMM && MIN_I32<=i<=MAX_I32) { + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpi->a1.type==MDF_REG+RT_I64) + r=tmpi->a1.reg; else - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); if (r>7) j=0xC0004D; else j=0xC00048; if (MIN_I8<=i<=MAX_I8) - ICU32(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); + ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); else { - ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); - ICU32(tempi,i); + ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19); + ICU32(tmpi,i); } - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,r,0,ip); + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,MDF_REG+RT_I64,r,0,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); r=REG_RBX; if (MIN_I8<=i<=MAX_I8) - ICU32(tempi,i<<24+0xDB6B48); + ICU32(tmpi,i<<24+0xDB6B48); else { - ICU24(tempi,0xDB6948); - ICU32(tempi,i); + ICU24(tmpi,0xDB6948); + ICU32(tmpi,i); } - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RBX,0,ip); } } else { - if (tempi->ic_class->raw_type&RTF_UNSIGNED) + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) i=0xE3F748; else i=0xEBF748; - if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - ICU24(tempi,i); - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tmpi->ic_flags & ICF_BY_VAL) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); + ICU24(tmpi,i); + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); - ICU24(tempi,i); - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); + ICU24(tmpi,i); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RAX,0,ip); } } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,MDF_REG+RT_I64,r,0,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp,MDF_REG+RT_I64,r,0,ip); } -U0 ICDiv(CIntermediateCode *tempi,I64 ip) +U0 ICDiv(CIntermediateCode *tmpi,I64 ip) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->ic_class->raw_type&RTF_UNSIGNED) { - ICZero(tempi,REG_RDX); - ICU24(tempi,0xF1F748); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) { + ICZero(tmpi,REG_RDX); + ICU24(tmpi,0xF1F748); } else { - ICU16(tempi,0x9948); - ICU24(tempi,0xF9F748); + ICU16(tmpi,0x9948); + ICU24(tmpi,0xF9F748); } - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) +U0 ICDivEqu(CIntermediateCode *tmpi,Bool is_mod,I64 ip) { - if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->ic_class->raw_type&RTF_UNSIGNED) { - ICZero(tempi,REG_RDX); - ICU24(tempi,0xF1F748); + if (tmpi->ic_flags & ICF_BY_VAL) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) { + ICZero(tmpi,REG_RDX); + ICU24(tmpi,0xF1F748); } else { - ICU16(tempi,0x9948); - ICU24(tempi,0xF9F748); + ICU16(tmpi,0x9948); + ICU24(tmpi,0xF9F748); } if (is_mod) - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RDX,0,ip); + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); //dangerous might clobber RBX in Mov, but it doesn't - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+tempi->a1_type_pointed_to, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+tmpi->a1_type_pointed_to, REG_RBX,0,ip); - if (tempi->ic_class->raw_type&RTF_UNSIGNED) { - ICZero(tempi,REG_RDX); - ICU24(tempi,0xF1F748); + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) { + ICZero(tmpi,REG_RDX); + ICU24(tmpi,0xF1F748); } else { - ICU16(tempi,0x9948); - ICU24(tempi,0xF9F748); + ICU16(tmpi,0x9948); + ICU24(tmpi,0xF9F748); } if (is_mod) - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RBX,0, + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RBX,0, MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RBX,0, + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RBX,0, MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type.mode) { + if (tmpi->r.type.mode) { if (is_mod) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } } -U0 ICMod(CIntermediateCode *tempi,I64 ip) +U0 ICMod(CIntermediateCode *tmpi,I64 ip) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->ic_class->raw_type&RTF_UNSIGNED) { - ICZero(tempi,REG_RDX); - ICU24(tempi,0xF1F748); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->ic_class->raw_type&RTF_UNSIGNED) { + ICZero(tmpi,REG_RDX); + ICU24(tmpi,0xF1F748); } else { - ICU16(tempi,0x9948); - ICU24(tempi,0xF9F748); + ICU16(tmpi,0x9948); + ICU24(tmpi,0xF9F748); } - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RDX,0,ip); } -U0 ICAddSubEctEqu(CIntermediateCode *tempi,U8 type_pointed_to, +U0 ICAddSubEctEqu(CIntermediateCode *tmpi,U8 type_pointed_to, CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2, CICType t3,I64 r3,I64 d3,I64 op,I64 ip) { Bool done; - I64 res_reg,temp,i; - if (tempi->ic_flags & ICF_BY_VAL) { + I64 res_reg,tmp,i; + if (tmpi->ic_flags & ICF_BY_VAL) { if (t3&MDF_IMM) { - ICAddSubEctImm(tempi,t2&MDG_MASK+type_pointed_to,r2,d2,t2&MDG_MASK+ + ICAddSubEctImm(tmpi,t2&MDG_MASK+type_pointed_to,r2,d2,t2&MDG_MASK+ type_pointed_to,r2,d2,d3,op,ip); if (t1.mode) - ICMov(tempi,t1,r1,d1,t2&MDG_MASK+type_pointed_to,r2,d2,ip); + ICMov(tmpi,t1,r1,d1,t2&MDG_MASK+type_pointed_to,r2,d2,ip); return; } else { done=FALSE; if (type_pointed_to>=RT_I64) { if (!t1.mode && t2&MDG_REG_DISP_SIB_RIP) { if (t3&MDF_REG) - temp=r3; + tmp=r3; else { - temp=REG_RCX; - ICMov(tempi,MDF_REG+RT_I64,temp,0,t3,r3,d3,ip); + tmp=REG_RCX; + ICMov(tmpi,MDF_REG+RT_I64,tmp,0,t3,r3,d3,ip); } - i=ICModr1(temp,t2&MDG_MASK+type_pointed_to,r2,d2); - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op.u8[5]); - ICModr2(tempi,i,d2,ip+4); + i=ICModr1(tmp,t2&MDG_MASK+type_pointed_to,r2,d2); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op.u8[5]); + ICModr2(tmpi,i,d2,ip+4); return; } if (t3.raw_type>=RT_I64 && t3&MDG_REG_DISP_SIB_RIP) { @@ -511,36 +511,36 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,U8 type_pointed_to, res_reg=r2; else { res_reg=REG_RCX; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); } i=ICModr1(res_reg,t3&MDG_MASK+type_pointed_to,r3,d3); - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op.u8[0]); - ICModr2(tempi,i,d3,ip+4); - ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op.u8[0]); + ICModr2(tmpi,i,d3,ip+4); + ICMov(tmpi,t2&MDG_MASK+type_pointed_to,r2,d2, MDF_REG+RT_I64,res_reg,0,ip); done=TRUE; } } if (!done) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); if (t2&MDF_REG && r2!=REG_RAX) res_reg=r2; else { res_reg=REG_RCX; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, t2&MDG_MASK+type_pointed_to,r2,d2,ip); } - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); if (res_reg>7) - ICU8(tempi,0x4C); + ICU8(tmpi,0x4C); else - ICU8(tempi,0x48); - ICU16(tempi,0xC000+op.u8[0]+(res_reg&7)<<11); - ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + ICU8(tmpi,0x48); + ICU16(tmpi,0xC000+op.u8[0]+(res_reg&7)<<11); + ICMov(tmpi,t2&MDG_MASK+type_pointed_to,r2,d2, MDF_REG+RT_I64,res_reg,0,ip); } } @@ -548,71 +548,71 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,U8 type_pointed_to, done=FALSE; if (t3&MDF_IMM && op.u8[2]) { if (!d3.u32[1]) { - if (tempi->ic_flags&ICF_RES_NOT_USED && + if (tmpi->ic_flags&ICF_RES_NOT_USED && t2&MDF_REG && d3(U64)<=MAX_I8) { - ICSlashOp(tempi,MDF_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip); - ICU8(tempi,d3); + ICSlashOp(tmpi,MDF_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip); + ICU8(tmpi,d3); done=TRUE; } else if (op.u8[2]==0x24) {//AND - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, MDF_DISP+type_pointed_to,REG_RCX,0,ip); res_reg=REG_RAX; - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICU16(tempi,op.u8[3]<<8+0x40); - ICU32(tempi,d3); - ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICU16(tmpi,op.u8[3]<<8+0x40); + ICU32(tmpi,d3); + ICMov(tmpi,MDF_DISP+type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,res_reg,0,ip); done=TRUE; } else if (type_pointed_toic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); if (d3.u16[1]) { - ICU16(tempi,op.u8[3]<<8+0x40); - ICU32(tempi,d3); + ICU16(tmpi,op.u8[3]<<8+0x40); + ICU32(tmpi,d3); } else if (d3.u8[1]) { - ICU24(tempi,op.u8[3]<<16+0x4000+OC_OP_SIZE_PREFIX); - ICU16(tempi,d3); + ICU24(tmpi,op.u8[3]<<16+0x4000+OC_OP_SIZE_PREFIX); + ICU16(tmpi,d3); } else { - ICU16(tempi,op.u8[2]<<8+0x40); - ICU8(tempi,d3); + ICU16(tmpi,op.u8[2]<<8+0x40); + ICU8(tmpi,d3); } - ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + ICMov(tmpi,MDF_DISP+type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,res_reg,0,ip); done=TRUE; } } } if (!done) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, MDF_DISP+type_pointed_to,REG_RCX,0,ip); res_reg=REG_RBX; - if (tempi->ic_flags&ICF_LOCK) - ICU8(tempi,OC_LOCK_PREFIX); - ICU8(tempi,0x48); - ICU16(tempi,0xC000+op.u8[0]+(res_reg&7)<<11); - ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + if (tmpi->ic_flags&ICF_LOCK) + ICU8(tmpi,OC_LOCK_PREFIX); + ICU8(tmpi,0x48); + ICU16(tmpi,0xC000+op.u8[0]+(res_reg&7)<<11); + ICMov(tmpi,MDF_DISP+type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,res_reg,0,ip); } } if (t1.mode) - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); } -U0 ICShift(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, +U0 ICShift(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1, CICType t2,I64 r2,I64 d2,CICType t3,I64 r3,I64 d3, I64 us,I64 is,I64 ip) { I64 i=0x48,res_reg; - if (tempi->ic_class->raw_type&RTF_UNSIGNED || - tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_class->raw_type&RTF_UNSIGNED || + tmpi->ic_flags & ICF_USE_UNSIGNED) is=us; if (t1&MDF_REG) { res_reg=r1; @@ -621,74 +621,74 @@ U0 ICShift(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, } else res_reg=REG_RAX; if (t3&MDF_IMM) { - ICMov(tempi,MDF_REG+RT_I64,res_reg,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,res_reg,0,t2,r2,d2,ip); if (d3==1) - ICU24(tempi,i+is.u16[2]<<8+(res_reg&7)<<16); + ICU24(tmpi,i+is.u16[2]<<8+(res_reg&7)<<16); else { - ICU24(tempi,i+is.u16[0]<<8+(res_reg&7)<<16); - ICU8(tempi,d3); + ICU24(tmpi,i+is.u16[0]<<8+(res_reg&7)<<16); + ICU8(tmpi,d3); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - ICMov(tempi,MDF_REG+RT_I64,res_reg,0,t2,r2,d2,ip); - ICU24(tempi,i+is.u16[1]<<8+(res_reg&7)<<16); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,res_reg,0,t2,r2,d2,ip); + ICU24(tmpi,i+is.u16[1]<<8+(res_reg&7)<<16); } - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); } -U0 ICShiftEqu(CIntermediateCode *tempi,U8 type_pointed_to, +U0 ICShiftEqu(CIntermediateCode *tmpi,U8 type_pointed_to, CICType t1,I64 r1,I64 d1, CICType t2,I64 r2,I64 d2, CICType t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) { I64 res_reg; - if (tempi->ic_class->raw_type&RTF_UNSIGNED || - tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_class->raw_type&RTF_UNSIGNED || + tmpi->ic_flags & ICF_USE_UNSIGNED) is=us; - if (tempi->ic_flags & ICF_BY_VAL) { + if (tmpi->ic_flags & ICF_BY_VAL) { if (!(t3&MDF_IMM)) - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); if (t2&MDF_REG) res_reg=r2; else { res_reg=REG_RAX; - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, t2&MDG_MASK+type_pointed_to,r2,d2,ip); } if (res_reg>7) - ICU8(tempi,0x49); + ICU8(tmpi,0x49); else - ICU8(tempi,0x48); + ICU8(tmpi,0x48); if (t3&MDF_IMM) { if (d3==1) - ICU16(tempi,is.u16[2]+(res_reg&7)<<8); + ICU16(tmpi,is.u16[2]+(res_reg&7)<<8); else { - ICU16(tempi,is.u16[0]+(res_reg&7)<<8); - ICU8(tempi,d3); + ICU16(tmpi,is.u16[0]+(res_reg&7)<<8); + ICU8(tmpi,d3); } } else - ICU16(tempi,is.u16[1]+(res_reg&7)<<8); - ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + ICU16(tmpi,is.u16[1]+(res_reg&7)<<8); + ICMov(tmpi,t2&MDG_MASK+type_pointed_to,r2,d2, MDF_REG+RT_I64,res_reg,0,ip); } else { if (!(t3&MDF_IMM)) - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+type_pointed_to,REG_RDX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+type_pointed_to,REG_RDX,0,ip); res_reg=REG_RAX; - ICU8(tempi,0x48); + ICU8(tmpi,0x48); if (t3&MDF_IMM) { if (d3==1) - ICU16(tempi,is.u16[2]+(res_reg&7)<<8); + ICU16(tmpi,is.u16[2]+(res_reg&7)<<8); else { - ICU16(tempi,is.u16[0]+(res_reg&7)<<8); - ICU8(tempi,d3); + ICU16(tmpi,is.u16[0]+(res_reg&7)<<8); + ICU8(tmpi,d3); } } else - ICU16(tempi,is.u16[1]+(res_reg&7)<<8); - ICMov(tempi, + ICU16(tmpi,is.u16[1]+(res_reg&7)<<8); + ICMov(tmpi, MDF_DISP+type_pointed_to,REG_RDX,0,MDF_REG+RT_I64,res_reg,0,ip); } if (t1.mode) - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,res_reg,0,ip); } diff --git a/Compiler/BackB.HC b/Compiler/BackB.HC index de6701d..0b78544 100644 --- a/Compiler/BackB.HC +++ b/Compiler/BackB.HC @@ -1,114 +1,114 @@ -U0 ICUnaries(CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICUnaries(CIntermediateCode *tmpi,I64 op,I64 ip) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICSlashOp(tempi,MDF_REG+RT_I64,REG_RAX,0,op,ip); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICSlashOp(tmpi,MDF_REG+RT_I64,REG_RAX,0,op,ip); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICNot(CIntermediateCode *tempi,I64 ip) +U0 ICNot(CIntermediateCode *tmpi,I64 ip) { I64 i; - if (tempi->a1.type.raw_type<=RT_U8 && tempi->a1.type&MDG_DISP_SIB_RIP) { - i=ICModr1(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0xF6); //TEST ?,0xFF - ICModr2(tempi,i,tempi->a1.disp,ip+5); - ICU8(tempi,0xFF); + if (tmpi->a1.type.raw_type<=RT_U8 && tmpi->a1.type&MDG_DISP_SIB_RIP) { + i=ICModr1(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0xF6); //TEST ?,0xFF + ICModr2(tmpi,i,tmpi->a1.disp,ip+5); + ICU8(tmpi,0xFF); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICTest(tempi,REG_RAX); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICTest(tmpi,REG_RAX); } - ICU24(tempi,0xC0940F); //SETZ AL - ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICU24(tmpi,0xC0940F); //SETZ AL + ICU32(tmpi,0xC0B60F48); //MOVZX RAX,AL + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_U64,REG_RAX,0,ip); } -U0 ICAndAnd(CIntermediateCode *tempi,I64 ip) +U0 ICAndAnd(CIntermediateCode *tmpi,I64 ip) { I64 r2; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg==REG_RAX) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (!(tmpi->a1.type&MDF_REG) || tmpi->a1.reg==REG_RAX) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r2=REG_RDX; } else - r2=tempi->a1.reg; - ICZero(tempi,REG_RAX); - ICTest(tempi,r2); - ICU16(tempi,0x0874); - ICTest(tempi,REG_RCX); - ICU16(tempi,0x0374); - ICU24(tempi,0xC0FF48); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + r2=tmpi->a1.reg; + ICZero(tmpi,REG_RAX); + ICTest(tmpi,r2); + ICU16(tmpi,0x0874); + ICTest(tmpi,REG_RCX); + ICU16(tmpi,0x0374); + ICU24(tmpi,0xC0FF48); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICOrOr(CIntermediateCode *tempi,I64 ip) +U0 ICOrOr(CIntermediateCode *tmpi,I64 ip) { I64 i=0x48,r2; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg==REG_RAX) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (!(tmpi->a1.type&MDF_REG) || tmpi->a1.reg==REG_RAX) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r2=REG_RDX; } else - r2=tempi->a1.reg; + r2=tmpi->a1.reg; if (r2>7) { i++; r2&=7; } - ICZero(tempi,REG_RAX); - ICU24(tempi,0xC80B00+i+r2<<16); - ICU16(tempi,0x0374); - ICU24(tempi,0xC0FF48); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICZero(tmpi,REG_RAX); + ICU24(tmpi,0xC80B00+i+r2<<16); + ICU16(tmpi,0x0374); + ICU24(tmpi,0xC0FF48); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICXorXor(CIntermediateCode *tempi,I64 ip) +U0 ICXorXor(CIntermediateCode *tmpi,I64 ip) { I64 r2; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (!(tempi->a1.type&MDF_REG)) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (!(tmpi->a1.type&MDF_REG)) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r2=REG_RDX; } else - r2=tempi->a1.reg; - ICZero(tempi,REG_RBX); - ICTest(tempi,r2); - ICU16(tempi,0x0374); - ICU24(tempi,0xC3FF48); + r2=tmpi->a1.reg; + ICZero(tmpi,REG_RBX); + ICTest(tmpi,r2); + ICU16(tmpi,0x0374); + ICU24(tmpi,0xC3FF48); - ICZero(tempi,REG_RAX); - ICTest(tempi,REG_RCX); - ICU16(tempi,0x0374); - ICU24(tempi,0xC0FF48); + ICZero(tmpi,REG_RAX); + ICTest(tmpi,REG_RCX); + ICU16(tmpi,0x0374); + ICU24(tmpi,0xC0FF48); - ICU24(tempi,0xC33348); + ICU24(tmpi,0xC33348); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) +U0 ICCmp(CIntermediateCode *tmpi,I64 us,I64 is,I64 ip) { - I64 r1,d1,r2,i=0x48,j=tempi->a2.disp; - if (tempi->a2.type&MDF_IMM && MIN_I32<=j<=MAX_I32) { - if (!(tempi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) && - tempi->a1.type&MDF_DISP && //TODO - tempi->a1.type.raw_type>=RT_I64 && tempi->a1.reg!=REG_RAX) { - r1=tempi->a1.reg; - d1=tempi->a1.disp; - ICZero(tempi,REG_RAX); + I64 r1,d1,r2,i=0x48,j=tmpi->a2.disp; + if (tmpi->a2.type&MDF_IMM && MIN_I32<=j<=MAX_I32) { + if (!(tmpi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) && + tmpi->a1.type&MDF_DISP && //TODO + tmpi->a1.type.raw_type>=RT_I64 && tmpi->a1.reg!=REG_RAX) { + r1=tmpi->a1.reg; + d1=tmpi->a1.disp; + ICZero(tmpi,REG_RAX); if (r1>7) i++; if (MIN_I8<=j<=MAX_I8) @@ -116,101 +116,101 @@ U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) else i+=0x388100; if (!d1) { - ICU24(tempi,0x000000+i+(r1&7)<<16); + ICU24(tmpi,0x000000+i+(r1&7)<<16); } else if (MIN_I8<=d1<=MAX_I8) { - ICU24(tempi,0x400000+i+(r1&7)<<16); - ICU8(tempi,d1); + ICU24(tmpi,0x400000+i+(r1&7)<<16); + ICU8(tmpi,d1); } else { - ICU24(tempi,0x800000+i+(r1&7)<<16); - ICU32(tempi,d1); + ICU24(tmpi,0x800000+i+(r1&7)<<16); + ICU32(tmpi,d1); } if (MIN_I8<=j<=MAX_I8) - ICU8(tempi,j); + ICU8(tmpi,j); else - ICU32(tempi,j); + ICU32(tmpi,j); } else { - if (tempi->ic_flags & ICF_POP_CMP) { - ICPopRegs(tempi,1<ic_flags & ICF_POP_CMP) { + ICPopRegs(tmpi,1<a1.type&MDF_REG && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG && tmpi->a1.reg!=REG_RAX) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r1=REG_RCX; } } - ICZero(tempi,REG_RAX); + ICZero(tmpi,REG_RAX); if (r1>7) i++; if (MIN_I8<=j<=MAX_I8) { - ICU24(tempi,0xF88300+i+(r1&7)<<16); - ICU8(tempi,j); + ICU24(tmpi,0xF88300+i+(r1&7)<<16); + ICU8(tmpi,j); } else { - ICU24(tempi,0xF88100+i+(r1&7)<<16); - ICU32(tempi,j); + ICU24(tmpi,0xF88100+i+(r1&7)<<16); + ICU32(tmpi,j); } } - if (tempi->ic_flags & ICF_PUSH_CMP) - ICPush(tempi,MDF_IMM+RT_I64,0,j,ip); - if (tempi->ic_class->raw_type&RTF_UNSIGNED || - tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_flags & ICF_PUSH_CMP) + ICPush(tmpi,MDF_IMM+RT_I64,0,j,ip); + if (tmpi->ic_class->raw_type&RTF_UNSIGNED || + tmpi->ic_flags & ICF_USE_UNSIGNED) is=us; - ICU16(tempi,0x300+is); - ICU24(tempi,0xC0FF48); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICU16(tmpi,0x300+is); + ICU24(tmpi,0xC0FF48); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else { - if (tempi->a2.type&MDF_REG && tempi->a2.reg!=REG_RAX) - r2=tempi->a2.reg; + if (tmpi->a2.type&MDF_REG && tmpi->a2.reg!=REG_RAX) + r2=tmpi->a2.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); r2=REG_RCX; } - if (tempi->ic_flags & ICF_POP_CMP) { - ICPopRegs(tempi,1<ic_flags & ICF_POP_CMP) { + ICPopRegs(tmpi,1<a1.type&MDF_REG && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG && tmpi->a1.reg!=REG_RAX) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r1=REG_RDX; } } - ICZero(tempi,REG_RAX); + ICZero(tmpi,REG_RAX); if (r2>7) i++; if (r1>7) i+=4; - if (tempi->ic_flags & ICF_PUSH_CMP) - ICPushRegs(tempi,1<ic_class->raw_type&RTF_UNSIGNED || - tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_flags & ICF_PUSH_CMP) + ICPushRegs(tmpi,1<ic_class->raw_type&RTF_UNSIGNED || + tmpi->ic_flags & ICF_USE_UNSIGNED) is=us; - ICU16(tempi,0x300+is); - ICU24(tempi,0xC0FF48); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICU16(tmpi,0x300+is); + ICU24(tmpi,0xC0FF48); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } } -U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, - CIntermediateCode *tempi2,I64 op,I64 op_imm,I64 ip) +U0 ICBitOps(CIntermediateCode *tmpi,CICArg *a1,CICArg *a2, + CIntermediateCode *tmpi2,I64 op,I64 op_imm,I64 ip) {//TODO:not fully utilizing Modr - Bool res_not_used=ToBool(tempi2->ic_flags&ICF_RES_NOT_USED); + Bool res_not_used=ToBool(tmpi2->ic_flags&ICF_RES_NOT_USED); I64 r1,t2,r2,d2,i=0x48; - if (tempi->ic_flags & ICF_BY_VAL) { + if (tmpi->ic_flags & ICF_BY_VAL) { t2=a2->type&MDG_MASK+RT_I64; //TODO: check overflow r2=a2->reg; d2=a2->disp; if (!(t2&MDG_REG_DISP_SIB_RIP) || !(r2.u8[0]!=REG_RAX&&(!(t2&MDF_SIB) || r2.u8[1]&15!=REG_RAX) || res_not_used)) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); t2=MDF_REG+RT_I64; r2=REG_RCX; d2=0; @@ -218,7 +218,7 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, if (a1->type&MDF_REG && (a1->reg!=REG_RAX||res_not_used)) r1=a1->reg; else if (!(a1->type&MDF_IMM) || a1->disp>63) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); r1=REG_RDX; } else r1=0; @@ -228,251 +228,251 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, if (a2->type&MDF_REG && (a2->reg!=REG_RAX||res_not_used)) r2=a2->reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip); r2=REG_RCX; } if (a1->type&MDF_REG && (a1->reg!=REG_RAX||res_not_used)) r1=a1->reg; else if (!(a1->type&MDF_IMM) || a1->disp>63) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); r1=REG_RDX; } else r1=0; } if (!res_not_used) - ICZero(tempi,REG_RAX); - if (tempi->ic_flags&ICF_LOCK && op!=0xA30F) - ICU8(tempi,OC_LOCK_PREFIX); + ICZero(tmpi,REG_RAX); + if (tmpi->ic_flags&ICF_LOCK && op!=0xA30F) + ICU8(tmpi,OC_LOCK_PREFIX); if (a1->type&MDF_IMM && a1->disp<32) t2=t2&MDG_MASK+RT_U32; i=ICModr1(r1,t2,r2,d2); - ICRex(tempi,i.u8[1]); + ICRex(tmpi,i.u8[1]); if (a1->type&MDF_IMM && a1->disp<64) { - ICU24(tempi,i.u8[2]<<16+op_imm); - ICModr2(tempi,i,d2,ip+5); - ICU8(tempi,a1->disp); + ICU24(tmpi,i.u8[2]<<16+op_imm); + ICModr2(tmpi,i,d2,ip+5); + ICU8(tmpi,a1->disp); } else { - ICU24(tempi,i.u8[2]<<16+op); - ICModr2(tempi,i,d2,ip+4); + ICU24(tmpi,i.u8[2]<<16+op); + ICModr2(tmpi,i,d2,ip+4); } if (!res_not_used) { - ICU24(tempi,0xC0920F); //SETC AL - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICU24(tmpi,0xC0920F); //SETC AL + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } } -U0 ICToUpper(CIntermediateCode *tempi,I64 ip) +U0 ICToUpper(CIntermediateCode *tmpi,I64 ip) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICU32(tempi,0x61F88348); - ICU16(tempi,0x0A7C); - ICU32(tempi,0x7AF88348); - ICU16(tempi,0x047F); - ICU32(tempi,0xE0C08348); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICU32(tmpi,0x61F88348); + ICU16(tmpi,0x0A7C); + ICU32(tmpi,0x7AF88348); + ICU16(tmpi,0x047F); + ICU32(tmpi,0xE0C08348); } -U0 ICToI64(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) +U0 ICToI64(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 ip) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,TRUE,CN_MAIN,ip); + ICFCvt(cc,tmpi,REG_RAX, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,TRUE,CN_MAIN,ip); } -U0 ICToF64(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) +U0 ICToF64(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 ip) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,FALSE,CN_MAIN,ip); + ICFCvt(cc,tmpi,REG_RAX, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,FALSE,CN_MAIN,ip); } -U0 ICToBool(CCmpCtrl *,CIntermediateCode *tempi,I64 ip) +U0 ICToBool(CCmpCtrl *,CIntermediateCode *tmpi,I64 ip) { I64 r; - if (tempi->a1.type&MDF_REG) - r=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RAX; } - ICTest(tempi,r); - ICU24(tempi,0xC0950F); //SETNZ AL - ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL + ICTest(tmpi,r); + ICU24(tmpi,0xC0950F); //SETNZ AL + ICU32(tmpi,0xC0B60F48); //MOVZX RAX,AL } -U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICPreIncDec(CIntermediateCode *tmpi,I64 op,I64 ip) { I64 r; - CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempc->ptr_stars_cnt && tempc1->size!=1) { - ICAddSubEctImm(tempi, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); + CHashClass *tmpc=tmpi->ic_class,*tmpc1=tmpc-1; + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpc->ptr_stars_cnt && tmpc1->size!=1) { + ICAddSubEctImm(tmpi, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,tmpc1->size,op.u16[3],ip); } else - ICSlashOp(tempi, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,op,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); + ICSlashOp(tmpi, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,op,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); } else { - if (tempi->a1.type&MDF_REG) - r=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RCX; } - if (tempc->ptr_stars_cnt && - tempc1->size!=1) { - ICAddSubEctImm(tempi,MDF_DISP+tempi->a1_type_pointed_to,r,0, - MDF_DISP+tempi->a1_type_pointed_to,r,0, - tempc1->size,op.u16[3],ip); + if (tmpc->ptr_stars_cnt && + tmpc1->size!=1) { + ICAddSubEctImm(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,r,0, + MDF_DISP+tmpi->a1_type_pointed_to,r,0, + tmpc1->size,op.u16[3],ip); } else - ICSlashOp(tempi, - MDF_DISP+tempi->a1_type_pointed_to,r,0,op,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_DISP+tempi->a1_type_pointed_to,r,0,ip); + ICSlashOp(tmpi, + MDF_DISP+tmpi->a1_type_pointed_to,r,0,op,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + MDF_DISP+tmpi->a1_type_pointed_to,r,0,ip); } } -U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICPostIncDec(CIntermediateCode *tmpi,I64 op,I64 ip) { I64 r; - CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - if (tempc->ptr_stars_cnt && tempc1->size!=1) - ICAddSubEctImm(tempi, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); + CHashClass *tmpc=tmpi->ic_class,*tmpc1=tmpc-1; + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpc->ptr_stars_cnt && tmpc1->size!=1) + ICAddSubEctImm(tmpi, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,op,ip); + ICSlashOp(tmpi, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,op,ip); } else { - if (tempi->a1.type&MDF_REG && - !(tempi->r.type&MDF_REG && tempi->r.reg==tempi->a1.reg)) - r=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG && + !(tmpi->r.type&MDF_REG && tmpi->r.reg==tmpi->a1.reg)) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RCX; } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_DISP+tempi->a1_type_pointed_to,r,0,ip); - if (tempc->ptr_stars_cnt && tempc1->size!=1) - ICAddSubEctImm(tempi,MDF_DISP+tempi->a1_type_pointed_to,r,0, - MDF_DISP+tempi->a1_type_pointed_to,r,0,tempc1->size,op.u16[3],ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + MDF_DISP+tmpi->a1_type_pointed_to,r,0,ip); + if (tmpc->ptr_stars_cnt && tmpc1->size!=1) + ICAddSubEctImm(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,r,0, + MDF_DISP+tmpi->a1_type_pointed_to,r,0,tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi,MDF_DISP+tempi->a1_type_pointed_to,r,0,op,ip); + ICSlashOp(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,r,0,op,ip); } } -U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICDerefPostIncDec(CIntermediateCode *tmpi,I64 op,I64 ip) { CICType t; I64 r; - CHashClass *tempc1=tempi->ic_class; - t=tempi->r.type.raw_type; - if (t>tempi->a1_type_pointed_to) - t=tempi->a1_type_pointed_to; - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempi->a1.type&MDF_REG) - r=tempi->a1.reg; + CHashClass *tmpc1=tmpi->ic_class; + t=tmpi->r.type.raw_type; + if (t>tmpi->a1_type_pointed_to) + t=tmpi->a1_type_pointed_to; + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpi->a1.type&MDF_REG) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RDX; } - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_DISP+t,r,0,ip); - if (tempc1->size!=1) - ICAddSubEctImm(tempi, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, - tempc1->size,op.u16[3],ip); + if (tmpc1->size!=1) + ICAddSubEctImm(tmpi, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp, + tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,op,ip); + ICSlashOp(tmpi, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,op,ip); } else { - if (tempi->a1.type&MDF_REG) - r=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RCX; } - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r,0,ip); - if (tempc1->size!=1) - ICAddSubEctImm(tempi,MDF_DISP+RT_I64,r,0,MDF_DISP+RT_I64,r,0, - tempc1->size,op.u16[3],ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r,0,ip); + if (tmpc1->size!=1) + ICAddSubEctImm(tmpi,MDF_DISP+RT_I64,r,0,MDF_DISP+RT_I64,r,0, + tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi,MDF_DISP+RT_I64,r,0,op,ip); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICSlashOp(tmpi,MDF_DISP+RT_I64,r,0,op,ip); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_DISP+t,REG_RDX,0,ip); } } -U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICAssignPostIncDec(CIntermediateCode *tmpi,I64 op,I64 ip) { - CHashClass *tempc1=tempi->ic_class2-1; + CHashClass *tmpc1=tmpi->ic_class2-1; I64 r; - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempi->a1.type&MDF_REG) - r=tempi->a1.reg; + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpi->a1.type&MDF_REG) + r=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,ip); r=REG_RDX; } - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,r,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempc1->size!=1 || tempi->a1.type&MDF_STK) - ICAddSubEctImm(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - MDF_REG+RT_I64,r,0,tempc1->size,op.u16[3],ip); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,r,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpc1->size!=1 || tmpi->a1.type&MDF_STK) + ICAddSubEctImm(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + MDF_REG+RT_I64,r,0,tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp,op,ip); + ICSlashOp(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,op,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_I64,REG_RDX,0,ip); - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempc1->size!=1) - ICAddSubEctImm(tempi,MDF_DISP+RT_I64,REG_RDX,0, - MDF_REG+RT_I64,REG_RCX,0,tempc1->size,op.u16[3],ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_I64,REG_RDX,0,ip); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpc1->size!=1) + ICAddSubEctImm(tmpi,MDF_DISP+RT_I64,REG_RDX,0, + MDF_REG+RT_I64,REG_RCX,0,tmpc1->size,op.u16[3],ip); else - ICSlashOp(tempi,MDF_DISP+RT_I64,REG_RDX,0,op,ip); + ICSlashOp(tmpi,MDF_DISP+RT_I64,REG_RDX,0,op,ip); } } -U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_res,I64 ip, +U0 ICCmpAndBranch(CIntermediateCode *tmpi,Bool has_res,I64 ip, I64 us,I64 is,I64 not_us,I64 not_is,U8 *buf,I64 ip2) { I64 r1,r2,i=0x48,j,res_reg; CICType t1,t2; Bool short_jmp,swap,done; CCodeMisc *lb; - CICArg *a1=&tempi->a1,*a2=&tempi->a2; + CICArg *a1=&tmpi->a1,*a2=&tmpi->a2; j=a1->disp; if (a1->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { @@ -482,52 +482,52 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_res,I64 ip, is=not_is; } else swap=FALSE; - if (tempi->ic_class->raw_type&RTF_UNSIGNED || - tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_class->raw_type&RTF_UNSIGNED || + tmpi->ic_flags & ICF_USE_UNSIGNED) is=us; j=a2->disp; if (a2->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { if (!has_res && a1->type&MDG_REG_DISP_SIB_RIP) - ICAddSubEctImm(tempi,a1->type,a1->reg,a1->disp, + ICAddSubEctImm(tmpi,a1->type,a1->reg,a1->disp, a1->type,a1->reg,a1->disp,j,0x073B,ip2); else { if (a1->type&MDF_REG) r1=a1->reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); r1=REG_RDX; } if (!j) { if (is.u8[2]==0x7C) { - ICTest(tempi,r1); + ICTest(tmpi,r1); is=0x78880F; } else if (is.u8[2]==0x7D) { - ICTest(tempi,r1); + ICTest(tmpi,r1); is=0x79890F; } else if (is.u8[2]==0x74 || is.u8[2]==0x75) - ICTest(tempi,r1); + ICTest(tmpi,r1); else { if (r1>7) i++; - ICU24(tempi,0xF88300+i+(r1&7)<<16); - ICU8(tempi,j); + ICU24(tmpi,0xF88300+i+(r1&7)<<16); + ICU8(tmpi,j); } } else { if (r1>7) i++; if (MIN_I8<=j<=MAX_I8) { - ICU24(tempi,0xF88300+i+(r1&7)<<16); - ICU8(tempi,j); + ICU24(tmpi,0xF88300+i+(r1&7)<<16); + ICU8(tmpi,j); } else { - ICU24(tempi,0xF88100+i+(r1&7)<<16); - ICU32(tempi,j); + ICU24(tmpi,0xF88100+i+(r1&7)<<16); + ICU32(tmpi,j); } } } if (has_res) { if (!swap) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_IMM+RT_I64,0,j,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_IMM+RT_I64,0,j,ip2); res_reg=REG_RCX; } else res_reg=r1; @@ -540,28 +540,28 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_res,I64 ip, t2=a2->type; if (t2.raw_type>=RT_I64 && !has_res && t2&MDG_DISP_SIB_RIP) { if (!(t1&MDF_REG) || t1.raw_typetype,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); r1=REG_RAX; } i=ICModr1(r1,t2,r2,a2->disp); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x3B); - ICModr2(tempi,i,a2->disp,ip2+4); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x3B); + ICModr2(tmpi,i,a2->disp,ip2+4); done=TRUE; } else if (t1.raw_type>=RT_I64 && t1&MDG_REG_DISP_SIB_RIP) { if (!(t2&MDF_REG) || t2.raw_typetype,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); r2=REG_RCX; } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); r2=REG_RAX; } } i=ICModr1(r2,t1,r1,a1->disp); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x39); - ICModr2(tempi,i,a1->disp,ip2+4); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x39); + ICModr2(tmpi,i,a1->disp,ip2+4); if (has_res) res_reg=r2; done=TRUE; @@ -570,32 +570,32 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_res,I64 ip, if (a2->type&MDF_REG) r2=a2->reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); r2=REG_RAX; } if (a1->type&MDF_REG) r1=a1->reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); r1=REG_RCX; } if (r2>7) i++; if (r1>7) i+=4; - ICU24(tempi,0xC03B00+i+(r2&7)<<16+(r1&7)<<19); + ICU24(tmpi,0xC03B00+i+(r2&7)<<16+(r1&7)<<19); if (has_res) res_reg=r2; } } - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; @@ -605,56 +605,56 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_res,I64 ip, } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; } - ICU16(tempi,i<<8+is.u8[2]); + ICU16(tmpi,i<<8+is.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; } - ICU16(tempi,is.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,is.u16[0]); + ICU32(tmpi,i); } if (has_res) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,res_reg,0,ip2); } -U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) +U0 ICTestAndBranch(CIntermediateCode *tmpi,I64 ip,I64 is,U8 *buf,I64 ip2) { I64 i; Bool short_jmp; CCodeMisc *lb; - if (!(tempi->a1.type&MDF_REG)) { - if (tempi->a1.type.raw_type<=RT_U8 && tempi->a1.type&MDG_DISP_SIB_RIP) { - i=ICModr1(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp); - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0xF6); - ICModr2(tempi,i,tempi->a1.disp,ip2+5); - ICU8(tempi,0xFF); + if (!(tmpi->a1.type&MDF_REG)) { + if (tmpi->a1.type.raw_type<=RT_U8 && tmpi->a1.type&MDG_DISP_SIB_RIP) { + i=ICModr1(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0xF6); + ICModr2(tmpi,i,tmpi->a1.disp,ip2+5); + ICU8(tmpi,0xFF); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICTest(tempi,REG_RAX); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICTest(tmpi,REG_RAX); } } else - ICTest(tempi,tempi->a1.reg); + ICTest(tmpi,tmpi->a1.reg); - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) @@ -664,30 +664,30 @@ U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,i<<8+is.u8[2]); + ICU16(tmpi,i<<8+is.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,is.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,is.u16[0]); + ICU32(tmpi,i); } } -U0 ICFlagBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf) +U0 ICFlagBranch(CIntermediateCode *tmpi,I64 ip,I64 is,U8 *buf) { I64 i; Bool short_jmp; CCodeMisc *lb; - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) @@ -697,17 +697,17 @@ U0 ICFlagBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf) } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,i<<8+is.u8[2]); + ICU16(tmpi,i<<8+is.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,is.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,is.u16[0]); + ICU32(tmpi,i); } } diff --git a/Compiler/BackC.HC b/Compiler/BackC.HC index 800923e..d16ca9f 100644 --- a/Compiler/BackC.HC +++ b/Compiler/BackC.HC @@ -1,4 +1,4 @@ -U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) +U0 ICAndBranch(CIntermediateCode *tmpi,I64 ip,I64 is,U8 *buf,I64 ip2) { U64 i; I64 it,t1,r1,d1,r2; @@ -6,14 +6,14 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) CCodeMisc *lb; CICArg *a1,*a2; - if (tempi->a1.type&MDF_IMM) { + if (tmpi->a1.type&MDF_IMM) { swap=TRUE; - a1=&tempi->a2; - a2=&tempi->a1; + a1=&tmpi->a2; + a2=&tmpi->a1; } else { swap=FALSE; - a1=&tempi->a1; - a2=&tempi->a2; + a1=&tmpi->a1; + a2=&tmpi->a2; } if (a2->type&MDF_IMM && a2->disp>MAX_U32) @@ -28,14 +28,14 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) i=a2->disp; if (a2->type&MDF_IMM && i<=MAX_U32) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); if (i<=MAX_U8) - ICU16(tempi,i<<8+0xA8); + ICU16(tmpi,i<<8+0xA8); else if (i<=MAX_U16) - ICU32(tempi,i<<16+0xA900+OC_OP_SIZE_PREFIX); + ICU32(tmpi,i<<16+0xA900+OC_OP_SIZE_PREFIX); else { - ICU8(tempi,0xA9); - ICU32(tempi,i); + ICU8(tmpi,0xA9); + ICU32(tmpi,i); } } else { t1=MDF_REG+it; @@ -55,13 +55,13 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) r2=REG_RDX; if (swap) { if (!(a1->type&MDF_REG) || r1!=a1->reg) - ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); if (a2->type&MDG_REG_DISP_SIB_RIP) { t1=a2->type&MDG_MASK+it; r2=a2->reg; d1=a2->disp; } else - ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); i=ICModr1(r1,t1,r2,d1); } else { if (a1->type&MDG_REG_DISP_SIB_RIP) { @@ -69,9 +69,9 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) r1=a1->reg; d1=a1->disp; } else - ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); if (!(a2->type&MDF_REG) || r2!=a2->reg) - ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); i=ICModr1(r2,t1,r1,d1); } } else { @@ -95,43 +95,43 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) r2=a2->reg; d1=a2->disp; } else - ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); if (!(a1->type&MDF_REG) || r1!=a1->reg) - ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); i=ICModr1(r1,t1,r2,d1); } else { if (!(a2->type&MDF_REG) || r2!=a2->reg) - ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); if (a1->type&MDG_REG_DISP_SIB_RIP) { t1=a1->type&MDG_MASK+it; r1=a1->reg; d1=a1->disp; } else - ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); i=ICModr1(r2,t1,r1,d1); } } switch (it) { case RT_I8: case RT_U8: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x84); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x84); break; case RT_U16: case RT_I16: - ICOpSizeRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x85); + ICOpSizeRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x85); break; default: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+0x85); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+0x85); } - ICModr2(tempi,i,d1,ip2+4); + ICModr2(tmpi,i,d1,ip2+4); } - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) @@ -141,82 +141,82 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,i<<8+is.u8[2]); + ICU16(tmpi,i<<8+is.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,is.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,is.u16[0]); + ICU32(tmpi,i); } } -U0 ICAssign(CIntermediateCode *tempi,I64 ip) +U0 ICAssign(CIntermediateCode *tmpi,I64 ip) { - CIntermediateCode *tempi1; - if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->r.reg,tempi->r.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); + CIntermediateCode *tmpi1; + if (tmpi->ic_flags & ICF_BY_VAL) { + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); } else { - if (tempi->a1.type&MDF_REG) { - if (!(tempi1=OptLag1(tempi)) || tempi1->ic_code!=IC_ADD_CONST || - tempi1->r.type!=MDF_REG+RT_I64 || tempi1->r.reg!=tempi->a1.reg || - tempi1->a1.type!=MDF_REG+RT_I64 || tempi1->a1.reg!=tempi->a1.reg || - (tempi->a2.type&MDF_REG || tempi->a2.type&MDF_DISP) && - tempi->a2.reg==tempi->a1.reg || - tempi->r.type.mode || tempi1->ic_flags&~ICG_NO_CVT_MASK) { - ICMov(tempi, - MDF_DISP+tempi->a1_type_pointed_to,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + if (tmpi->a1.type&MDF_REG) { + if (!(tmpi1=OptLag1(tmpi)) || tmpi1->ic_code!=IC_ADD_CONST || + tmpi1->r.type!=MDF_REG+RT_I64 || tmpi1->r.reg!=tmpi->a1.reg || + tmpi1->a1.type!=MDF_REG+RT_I64 || tmpi1->a1.reg!=tmpi->a1.reg || + (tmpi->a2.type&MDF_REG || tmpi->a2.type&MDF_DISP) && + tmpi->a2.reg==tmpi->a1.reg || + tmpi->r.type.mode || tmpi1->ic_flags&~ICG_NO_CVT_MASK) { + ICMov(tmpi, + MDF_DISP+tmpi->a1_type_pointed_to,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } else { - tempi->ic_flags=(tempi->ic_flags|tempi1->ic_flags)& + tmpi->ic_flags=(tmpi->ic_flags|tmpi1->ic_flags)& ~ICF_CODE_FINAL|ICF_DONT_RESTORE; - tempi->a1.disp=tempi1->ic_data; - OptSetNOP1(tempi1); //This better not be last pass! - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + tmpi->a1.disp=tmpi1->ic_data; + OptSetNOP1(tmpi1); //This better not be last pass! + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } } } -U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, +U0 ICBrBitOps(CIntermediateCode *tmpi,I64 ip, I64 op,I64 op_imm,I64 is,U8 *buf,I64 ip2) { I64 i,t,r1,r2,d1,d2,t1,t2; - CICArg *a1=&tempi->a1,*a2=&tempi->a2; + CICArg *a1=&tmpi->a1,*a2=&tmpi->a2; Bool short_jmp; CCodeMisc *lb; - if (tempi->ic_flags & ICF_BY_VAL) { - if (tempi->ic_flags&ICF_SWAP && !(a2->type&MDF_REG) && + if (tmpi->ic_flags & ICF_BY_VAL) { + if (tmpi->ic_flags&ICF_SWAP && !(a2->type&MDF_REG) && (!(a2->type&MDF_IMM) ||a2->disp>63)|| - !(tempi->ic_flags&ICF_SWAP) && a2->type&MDF_IMM && + !(tmpi->ic_flags&ICF_SWAP) && a2->type&MDF_IMM && a2->disp<64 || a2->type&MDF_STK) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); t2=MDF_REG+RT_I64; r2=REG_RCX; d2=0; @@ -228,11 +228,11 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, r2=a2->reg; d2=a2->disp; } - if (!(tempi->ic_flags&ICF_SWAP) && !(a1->type&MDF_REG) && + if (!(tmpi->ic_flags&ICF_SWAP) && !(a1->type&MDF_REG) && (!(a1->type&MDF_IMM) || a1->disp>63) || - tempi->ic_flags&ICF_SWAP && a1->type&MDF_IMM && + tmpi->ic_flags&ICF_SWAP && a1->type&MDF_IMM && a1->disp<64 || a1->type&MDF_STK) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); t1=MDF_REG+RT_I64; r1=REG_RDX; d1=0; @@ -251,23 +251,23 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, d2=0; if (a2->type&MDF_REG) r2=a2->reg; - else if (!(tempi->ic_flags&ICF_SWAP) || !(a2->type&MDF_IMM) || + else if (!(tmpi->ic_flags&ICF_SWAP) || !(a2->type&MDF_IMM) || a2->disp>63) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); r2=REG_RCX; } else r2=0; if (a1->type&MDF_REG) r1=a1->reg; - else if (tempi->ic_flags&ICF_SWAP || !(a1->type&MDF_IMM) || a1->disp>63) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + else if (tmpi->ic_flags&ICF_SWAP || !(a1->type&MDF_IMM) || a1->disp>63) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); r1=REG_RDX; } else r1=0; } - if (tempi->ic_flags&ICF_LOCK && op!=0xA30F) - ICU8(tempi,OC_LOCK_PREFIX); - if (tempi->ic_flags&ICF_SWAP) { + if (tmpi->ic_flags&ICF_LOCK && op!=0xA30F) + ICU8(tmpi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_SWAP) { if (a2->type&MDF_IMM && a2->disp<32) { if (op==0xA30F && a2->disp<8) { t=t1&MDG_MASK+RT_U8; @@ -289,27 +289,27 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, t=t2; i=ICModr1(r1,t,r2,d2); } - ICRex(tempi,i.u8[1]); + ICRex(tmpi,i.u8[1]); if (op_imm==0xF6) {//TEST - ICU16(tempi,i.u8[2]<<8+op_imm); - ICModr2(tempi,i,a2->disp,ip2+5); - ICU8(tempi,1<disp); + ICU16(tmpi,i.u8[2]<<8+op_imm); + ICModr2(tmpi,i,a2->disp,ip2+5); + ICU8(tmpi,1<disp); if (is==0x72820F) is=0x75850F; else is=0x74840F; } else if (a1->type&MDF_IMM && a1->disp<64) { - ICU24(tempi,i.u8[2]<<16+op_imm); - ICModr2(tempi,i,a2->disp,ip2+5); - ICU8(tempi,a1->disp); + ICU24(tmpi,i.u8[2]<<16+op_imm); + ICModr2(tmpi,i,a2->disp,ip2+5); + ICU8(tmpi,a1->disp); } else { - ICU24(tempi,i.u8[2]<<16+op); - ICModr2(tempi,i,a2->disp,ip2+4); + ICU24(tmpi,i.u8[2]<<16+op); + ICModr2(tmpi,i,a2->disp,ip2+4); } - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) @@ -319,180 +319,180 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,i<<8+is.u8[2]); + ICU16(tmpi,i<<8+is.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) i+=8; - ICU16(tempi,is.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,is.u16[0]); + ICU32(tmpi,i); } } -U0 ICQueInit(CIntermediateCode *tempi,I64 ip2) +U0 ICQueInit(CIntermediateCode *tmpi,I64 ip2) { I64 r1; - if (tempi->a1.type==MDF_REG+RT_I64) - r1=tempi->a1.reg; + if (tmpi->a1.type==MDF_REG+RT_I64) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); r1=REG_RAX; } - ICMov(tempi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r1,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); } -U0 ICQueIns(CIntermediateCode *tempi,I64 ip2) +U0 ICQueIns(CIntermediateCode *tmpi,I64 ip2) { I64 r1,r2; - if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RDX) - r2=tempi->a2.reg; + if (tmpi->a2.type==MDF_REG+RT_I64 && tmpi->a2.reg!=REG_RDX) + r2=tmpi->a2.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); r2=REG_RAX; } - if (tempi->a1.type==MDF_REG+RT_I64) - r1=tempi->a1.reg; + if (tmpi->a1.type==MDF_REG+RT_I64) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); r1=REG_RDX; } - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,REG_RBX,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,REG_RBX,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,REG_RBX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,REG_RBX,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); } -U0 ICQueInsRev(CIntermediateCode *tempi,I64 ip2) +U0 ICQueInsRev(CIntermediateCode *tmpi,I64 ip2) { I64 r1,r2; - if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RDX) - r2=tempi->a2.reg; + if (tmpi->a2.type==MDF_REG+RT_I64 && tmpi->a2.reg!=REG_RDX) + r2=tmpi->a2.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); r2=REG_RAX; } - if (tempi->a1.type==MDF_REG+RT_I64) - r1=tempi->a1.reg; + if (tmpi->a1.type==MDF_REG+RT_I64) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); r1=REG_RDX; } - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); - ICMov(tempi,MDF_DISP+RT_I64,REG_RBX,0,MDF_REG+RT_I64,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,r1,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,REG_RBX,0,ip2); - ICMov(tempi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); + ICMov(tmpi,MDF_DISP+RT_I64,REG_RBX,0,MDF_REG+RT_I64,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,REG_RBX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); } -U0 ICQueRem(CIntermediateCode *tempi,I64 ip2) +U0 ICQueRem(CIntermediateCode *tmpi,I64 ip2) { I64 r1; - if (tempi->a1.type==MDF_REG+RT_I64) - r1=tempi->a1.reg; + if (tmpi->a1.type==MDF_REG+RT_I64) + r1=tmpi->a1.reg; else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); r1=REG_RAX; } - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); - ICU24(tempi,0x1A8948); - ICU32(tempi,sizeof(U8 *)<<24+0x538948); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); + ICU24(tmpi,0x1A8948); + ICU32(tmpi,sizeof(U8 *)<<24+0x538948); } -U0 ICMinMax(CIntermediateCode *tempi,I64 op,I64 ip2) +U0 ICMinMax(CIntermediateCode *tmpi,I64 op,I64 ip2) { I64 r1,i1=0x48; - if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RAX) { - r1=tempi->a2.reg; + if (tmpi->a2.type==MDF_REG+RT_I64 && tmpi->a2.reg!=REG_RAX) { + r1=tmpi->a2.reg; if (r1>7) { i1++; r1&=7; } - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); } else { - if (tempi->a1.reg==REG_RAX && tempi->a1.type&MDG_REG_DISP_SIB) { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + if (tmpi->a1.reg==REG_RAX && tmpi->a1.type&MDG_REG_DISP_SIB) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); r1=REG_RDX; - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - if (tempi->a1.type==MDF_REG+RT_I64) { - r1=tempi->a1.reg; + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + if (tmpi->a1.type==MDF_REG+RT_I64) { + r1=tmpi->a1.reg; if (r1>7) { i1++; r1&=7; } } else { r1=REG_RDX; - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); } } } - ICU24(tempi,0xC03B00+r1<<16+i1); - ICU32(tempi,0xC0000F00+op<<16+r1<<24+i1); + ICU24(tmpi,0xC03B00+r1<<16+i1); + ICU32(tmpi,0xC0000F00+op<<16+r1<<24+i1); } -U0 ICSqr(CIntermediateCode *tempi,I64 op,I64 ip2) +U0 ICSqr(CIntermediateCode *tmpi,I64 op,I64 ip2) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICSlashOp(tempi,MDF_REG+RT_I64,REG_RAX,0,op,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICSlashOp(tmpi,MDF_REG+RT_I64,REG_RAX,0,op,ip2); } -U0 ICModU64(CIntermediateCode *tempi,I64 ip2) +U0 ICModU64(CIntermediateCode *tmpi,I64 ip2) { CICType t1; I64 r1,d1; - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - if (tempi->a1.reg!=REG_RAX && tempi->a1.reg!=REG_RDX && - tempi->a1.type&MDG_REG_DISP_SIB && - tempi->a1.type.raw_type>=RT_I64) { - t1=tempi->a1.type; - r1=tempi->a1.reg; - d1=tempi->a1.disp; + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + if (tmpi->a1.reg!=REG_RAX && tmpi->a1.reg!=REG_RDX && + tmpi->a1.type&MDG_REG_DISP_SIB && + tmpi->a1.type.raw_type>=RT_I64) { + t1=tmpi->a1.type; + r1=tmpi->a1.reg; + d1=tmpi->a1.disp; } else { t1=MDF_REG+RT_I64; r1=REG_RBX; d1=0; - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); } - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip2); - ICZero(tempi,REG_RDX); - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_DIV,ip2); - ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip2); + ICZero(tmpi,REG_RDX); + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_DIV,ip2); + ICMov(tmpi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, MDF_REG+RT_I64,REG_RDX,0,ip2); } -U0 ICSwap(CIntermediateCode *tempi,I64 ip2) +U0 ICSwap(CIntermediateCode *tmpi,I64 ip2) { I64 r1,r2; - if (tempi->a1.type&MDF_REG) - r1=tempi->a1.reg; + if (tmpi->a1.type&MDF_REG) + r1=tmpi->a1.reg; else r1=REG_RAX; - if (tempi->a2.type&MDF_REG) - r2=tempi->a2.reg; + if (tmpi->a2.type&MDF_REG) + r2=tmpi->a2.reg; else r2=REG_RAX; if (r1==r2) { @@ -501,166 +501,166 @@ U0 ICSwap(CIntermediateCode *tempi,I64 ip2) else r2=REG_RAX; } - ICMov(tempi,MDF_REG+RT_I64,r2,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,r1,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - switch (tempi->ic_code) { + ICMov(tmpi,MDF_REG+RT_I64,r2,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r1,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + switch (tmpi->ic_code) { case IC_SWAP_U8: - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U8,r1,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U8,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_U8,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,MDF_DISP+RT_U8,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U8,r1,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U8,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U8,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U8,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_U16: - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U16,r1,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U16,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_U16,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,MDF_DISP+RT_U16,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U16,r1,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U16,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U16,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U16,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_U32: - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U32,r1,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U32,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_U32,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,MDF_DISP+RT_U32,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U32,r1,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U32,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U32,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U32,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_I64: - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U64,r1,0,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U64,r2,0,ip2); - ICMov(tempi,MDF_DISP+RT_U64,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,MDF_DISP+RT_U64,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U64,r1,0,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U64,r2,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U64,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tmpi,MDF_DISP+RT_U64,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; } } -U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2) +U0 ICAndEqu(CIntermediateCode *tmpi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && - tempi->ic_flags&ICF_RES_NOT_USED) { - i=~tempi->a2.disp; + if (tmpi->a2.type&MDF_IMM && !(tmpi->a1.type&MDF_STK) && + tmpi->ic_flags&ICF_RES_NOT_USED) { + i=~tmpi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i)) { - tempi->a2.disp=bit; - tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; - ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xB30F,0x30BA0F,ip2); + tmpi->a2.disp=bit; + tmpi->a2.reg=0; + tmpi->a1.type=tmpi->a1.type&MDG_MASK+RT_I64; + ICBitOps(tmpi,&tmpi->a2,&tmpi->a1,tmpi,0xB30F,0x30BA0F,ip2); return; } } - ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x210425240423,ip2); + ICAddSubEctEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x210425240423,ip2); } -U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2) +U0 ICOrEqu(CIntermediateCode *tmpi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && - tempi->ic_flags&ICF_RES_NOT_USED) { - i=tempi->a2.disp; + if (tmpi->a2.type&MDF_IMM && !(tmpi->a1.type&MDF_STK) && + tmpi->ic_flags&ICF_RES_NOT_USED) { + i=tmpi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i) && i>MAX_I8) { - tempi->a2.disp=bit; - tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; - ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xAB0F,0x28BA0F,ip2); + tmpi->a2.disp=bit; + tmpi->a2.reg=0; + tmpi->a1.type=tmpi->a1.type&MDG_MASK+RT_I64; + ICBitOps(tmpi,&tmpi->a2,&tmpi->a1,tmpi,0xAB0F,0x28BA0F,ip2); return; } } - ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x09010D0C010B,ip2); + ICAddSubEctEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x09010D0C010B,ip2); } -U0 ICXorEqu(CIntermediateCode *tempi,I64 ip2) +U0 ICXorEqu(CIntermediateCode *tmpi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && - tempi->ic_flags&ICF_RES_NOT_USED) { - i=tempi->a2.disp; + if (tmpi->a2.type&MDF_IMM && !(tmpi->a1.type&MDF_STK) && + tmpi->ic_flags&ICF_RES_NOT_USED) { + i=tmpi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i)) { - tempi->a2.disp=bit; - tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; - ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xBB0F,0x38BA0F,ip2); + tmpi->a2.disp=bit; + tmpi->a2.reg=0; + tmpi->a1.type=tmpi->a1.type&MDG_MASK+RT_I64; + ICBitOps(tmpi,&tmpi->a2,&tmpi->a1,tmpi,0xBB0F,0x38BA0F,ip2); return; } } - ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x310635340633,ip2); + ICAddSubEctEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x310635340633,ip2); } -U0 ICSwitch(CIntermediateCode *tempi,I64 ip, +U0 ICSwitch(CIntermediateCode *tmpi,I64 ip, Bool nobound,CCmpCtrl *cc,U8 *buf,I64 ip2) { I64 i,j,cnt,min,max,begin,r; CCodeMisc *lb; Bool short_jmp; - CAOTAbsAddr *tempa; - if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg&7==REG_RSP) + CAOTAbsAddr *tmpa; + if (!(tmpi->a1.type&MDF_REG) || tmpi->a1.reg&7==REG_RSP) r=REG_RDX; else - r=tempi->a1.reg; + r=tmpi->a1.reg; if (nobound) - ICMov(tempi,MDF_REG+RT_I64,r,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); else { - if (tempi->a2.type&MDF_IMM) { - j=tempi->a2.disp; - ICMov(tempi,MDF_REG+RT_I64,r,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + if (tmpi->a2.type&MDF_IMM) { + j=tmpi->a2.disp; + ICMov(tmpi,MDF_REG+RT_I64,r,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); if (MIN_I8<=j<=MAX_I8) { i=0xF88348+(r&7)<<16; if (r>7) i++; - ICU24(tempi,i); - ICU8(tempi,j); + ICU24(tmpi,i); + ICU8(tmpi,j); } else if (MIN_I32<=j<=MAX_I32) { i=0xF88148+(r&7)<<16; if (r>7) i++; - ICU24(tempi,i); - ICU32(tempi,j); + ICU24(tmpi,i); + ICU32(tmpi,j); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); i=0xC13B48+(r&7)<<19; if (r>7) i+=4; - ICU24(tempi,i); + ICU24(tmpi,i); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,r,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,r,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); i=0xC13B48+(r&7)<<19; if (r>7) i+=4; - ICU24(tempi,i); + ICU24(tmpi,i); } - ip+=tempi->ic_cnt; - lb=tempi->ic_data(CCodeMisc *)->dft; - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=tmpi->ic_data(CCodeMisc *)->dft; + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (MIN_I8<=i<=MAX_I8) short_jmp=TRUE; } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - ICU16(tempi,(lb->addr-(ip+2))<<8+0x73); + tmpi->ic_flags|=ICF_SHORT_JMP; + ICU16(tmpi,(lb->addr-(ip+2))<<8+0x73); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - ICU16(tempi,0x830F); - ICU32(tempi,lb->addr-(ip+6)); + tmpi->ic_flags&=~ICF_SHORT_JMP; + ICU16(tmpi,0x830F); + ICU32(tmpi,lb->addr-(ip+6)); } } - lb=tempi->ic_data; + lb=tmpi->ic_data; begin=lb->begin->addr; if (!buf && begin!=INVALID_PTR) { min=MAX_I64; @@ -688,81 +688,81 @@ U0 ICSwitch(CIntermediateCode *tempi,I64 ip, if (lb->flags&CMF_I8_JMP_TABLE) { if (r<8) - ICU8(tempi,0x48); + ICU8(tmpi,0x48); else - ICU8(tempi,0x49); - ICU24(tempi,0x98BE0F+(r&7)<<16); + ICU8(tmpi,0x49); + ICU24(tmpi,0x98BE0F+(r&7)<<16); cnt=1; } else if (lb->flags&CMF_U8_JMP_TABLE) { if (r<8) cnt=2; else { - ICU8(tempi,0x49); + ICU8(tmpi,0x49); cnt=1; } - ICU24(tempi,0x98B60F+(r&7)<<16); + ICU24(tmpi,0x98B60F+(r&7)<<16); } else if (lb->flags&CMF_I16_JMP_TABLE) { if (r<8) - ICU8(tempi,0x48); + ICU8(tmpi,0x48); else - ICU8(tempi,0x4A); - ICU32(tempi,0x451CBF0F+(r&7)<<27); + ICU8(tmpi,0x4A); + ICU32(tmpi,0x451CBF0F+(r&7)<<27); cnt=0; } else if (lb->flags&CMF_U16_JMP_TABLE) { if (r<8) cnt=1; else { - ICU8(tempi,0x4A); + ICU8(tmpi,0x4A); cnt=0; } - ICU32(tempi,0x451CB70F+(r&7)<<27); + ICU32(tmpi,0x451CB70F+(r&7)<<27); } else { if (r<8) cnt=2; else { - ICU8(tempi,0x42); + ICU8(tmpi,0x42); cnt=1; } - ICU24(tempi,0x851C8B+(r&7)<<19); + ICU24(tmpi,0x851C8B+(r&7)<<19); } if (buf && cc->flags&CCF_AOT_COMPILE) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=cc->aotc->abss; - tempa->type=AAT_ADD_U32; - cc->aotc->abss=tempa; - tempa->ip=ip2+tempi->ic_cnt; - ICU32(tempi,lb->addr+cc->aotc->ip); + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=cc->aotc->abss; + tmpa->type=AAT_ADD_U32; + cc->aotc->abss=tmpa; + tmpa->ip=ip2+tmpi->ic_cnt; + ICU32(tmpi,lb->addr+cc->aotc->ip); } else - ICU32(tempi,lb->addr+buf); + ICU32(tmpi,lb->addr+buf); if (lb->flags&(CMF_I8_JMP_TABLE|CMF_U8_JMP_TABLE| CMF_I16_JMP_TABLE|CMF_U16_JMP_TABLE)) { - ICU16(tempi,0xC381); //ADD EBX,0x12345678 + ICU16(tmpi,0xC381); //ADD EBX,0x12345678 if (buf && cc->flags&CCF_AOT_COMPILE) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=cc->aotc->abss; - tempa->type=AAT_ADD_U32; - cc->aotc->abss=tempa; - tempa->ip=ip2+tempi->ic_cnt; - ICU32(tempi,begin+cc->aotc->ip); + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=cc->aotc->abss; + tmpa->type=AAT_ADD_U32; + cc->aotc->abss=tmpa; + tmpa->ip=ip2+tmpi->ic_cnt; + ICU32(tmpi,begin+cc->aotc->ip); } else - ICU32(tempi,begin+buf); + ICU32(tmpi,begin+buf); } else cnt+=6; - ICU16(tempi,0xE3FF); //JMP EBX + ICU16(tmpi,0xE3FF); //JMP EBX for (i=0;iic_flags&=~ICF_CODE_FINAL; + ICU8(tmpi,OC_NOP); + tmpi->ic_flags&=~ICF_CODE_FINAL; } -U0 ICLocalVarInit(CIntermediateCode *tempi) +U0 ICLocalVarInit(CIntermediateCode *tmpi) { - ICU24(tempi,0xC48B48); - ICU16(tempi,0x5748); - ICU24(tempi,0xF88B48); - ICU24(tempi,0xC1C748); - ICU32(tempi,tempi->ic_data); - ICU16(tempi,sys_var_init_val<<8+0xB0); - ICU16(tempi,0xAAF3); - ICU16(tempi,0x5F48); + ICU24(tmpi,0xC48B48); + ICU16(tmpi,0x5748); + ICU24(tmpi,0xF88B48); + ICU24(tmpi,0xC1C748); + ICU32(tmpi,tmpi->ic_data); + ICU16(tmpi,sys_var_init_val<<8+0xB0); + ICU16(tmpi,0xAAF3); + ICU16(tmpi,0x5F48); } diff --git a/Compiler/BackFA.HC b/Compiler/BackFA.HC index 198723d..f1c60f9 100644 --- a/Compiler/BackFA.HC +++ b/Compiler/BackFA.HC @@ -3,7 +3,7 @@ #define CN_MAIN 2 #define CN_R 3 -U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, +U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tmpi, Bool dont_pushable,Bool dont_popable,I64 pos) { Bool link=FALSE; @@ -11,34 +11,34 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, cc->last_dont_popable && dont_pushable) { switch [pos] { case CN_A2: - if (cc->last_float_op_ic!=tempi && cc->dont_push_float) + if (cc->last_float_op_ic!=tmpi && cc->dont_push_float) link=TRUE; break; case CN_A1: - if (cc->last_float_op_ic!=tempi && cc->dont_push_float) + if (cc->last_float_op_ic!=tmpi && cc->dont_push_float) link=TRUE; break; case CN_MAIN: - if (cc->last_float_op_ic!=tempi) { + if (cc->last_float_op_ic!=tmpi) { if (cc->dont_push_float) { - if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG && + if (intermediate_code_table[tmpi->ic_code].arg_cnt==IS_2_ARG && cc->last_float_op_ic->r.reg!=REG_R8) - tempi->ic_flags|=ICF_ALT_TEMPLATE; + tmpi->ic_flags|=ICF_ALT_TEMPLATE; else - tempi->ic_flags&=~ICF_ALT_TEMPLATE; + tmpi->ic_flags&=~ICF_ALT_TEMPLATE; link=TRUE; } } else { - if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG && + if (intermediate_code_table[tmpi->ic_code].arg_cnt==IS_2_ARG && cc->last_float_op_pos!=CN_A1) - tempi->ic_flags|=ICF_ALT_TEMPLATE; + tmpi->ic_flags|=ICF_ALT_TEMPLATE; else - tempi->ic_flags&=~ICF_ALT_TEMPLATE; + tmpi->ic_flags&=~ICF_ALT_TEMPLATE; link=TRUE; } break; case CN_R: - if (cc->last_float_op_ic==tempi && cc->last_float_op_pos==CN_MAIN) + if (cc->last_float_op_ic==tmpi && cc->last_float_op_pos==CN_MAIN) link=TRUE; break; } @@ -46,11 +46,11 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, if (!Bts(&cc->last_float_op_ic->ic_flags, ICf_DONT_POP_FLOAT0+cc->last_ic_float_op_num)) cc->last_float_op_ic->ic_flags&=~ICF_CODE_FINAL; - if (!Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+cc->cur_ic_float_op_num)) - tempi->ic_flags&=~ICF_CODE_FINAL; + if (!Bts(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0+cc->cur_ic_float_op_num)) + tmpi->ic_flags&=~ICF_CODE_FINAL; } } - cc->last_float_op_ic=tempi; + cc->last_float_op_ic=tmpi; cc->last_dont_pushable=dont_pushable; cc->last_dont_popable=dont_popable; cc->last_ic_float_op_num=cc->cur_ic_float_op_num++; @@ -59,33 +59,33 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, throw('Compiler'); } -U0 CmpSetFloatOpPushPop(CCmpCtrl *cc,CIntermediateCode *tempi, +U0 CmpSetFloatOpPushPop(CCmpCtrl *cc,CIntermediateCode *tmpi, Bool *dont_push_float,Bool *dont_pop_float) { if (cc->pass==7) { *dont_push_float=FALSE; *dont_pop_float =FALSE; - tempi->ic_flags&=~ICF_CODE_FINAL; + tmpi->ic_flags&=~ICF_CODE_FINAL; } else { - *dont_push_float=Bt(&tempi->ic_flags, + *dont_push_float=Bt(&tmpi->ic_flags, ICf_DONT_PUSH_FLOAT0+cc->cur_ic_float_op_num); - *dont_pop_float=Bt(&tempi->ic_flags, + *dont_pop_float=Bt(&tmpi->ic_flags, ICf_DONT_POP_FLOAT0+cc->cur_ic_float_op_num); } } -U0 ICCopyTemplate(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op, +U0 ICCopyTemplate(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op, Bool off_the_record,Bool dont_pushable,Bool dont_popable,I64 pos) { Bool dont_push_float,dont_pop_float,alt; U8 *ptr; I64 i=0; if (!off_the_record) { - if (tempi->ic_flags&ICF_ALT_TEMPLATE) + if (tmpi->ic_flags&ICF_ALT_TEMPLATE) alt=TRUE; else alt=FALSE; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); } else { dont_push_float=FALSE; dont_pop_float=FALSE; @@ -114,13 +114,13 @@ U0 ICCopyTemplate(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op, } } } - MemCpy(&tempi->ic_body[tempi->ic_cnt],ptr,i); + MemCpy(&tmpi->ic_body[tmpi->ic_cnt],ptr,i); if (!off_the_record) - CmpNoteFloatOp(cc,tempi,dont_pushable,dont_popable,pos); - tempi->ic_cnt+=i; + CmpNoteFloatOp(cc,tmpi,dont_pushable,dont_popable,pos); + tmpi->ic_cnt+=i; } -U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, +U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 r1, CICType t2,I64 r2,I64 d2,Bool to_int,I64 pos,I64 ip) { I64 rsp_size=0,op1,op2; @@ -134,39 +134,39 @@ U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, op2=SLASH_OP_FSTP; } - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (!dont_push_float) { if (!(t2.raw_type>=RT_I64 && t2&MDG_DISP_SIB_RIP)) { - ICPush(tempi,t2,r2,d2,ip); + ICPush(tmpi,t2,r2,d2,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size=8; } else { if (!dont_pop_float) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } } - ICSlashOp(tempi,t2,r2,d2,op1,ip); + ICSlashOp(tmpi,t2,r2,d2,op1,ip); } else { if (!dont_pop_float) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } } if (to_int) - CmpNoteFloatOp(cc,tempi,TRUE,FALSE,pos); + CmpNoteFloatOp(cc,tmpi,TRUE,FALSE,pos); else - CmpNoteFloatOp(cc,tempi,FALSE,TRUE,pos); + CmpNoteFloatOp(cc,tmpi,FALSE,TRUE,pos); if (dont_pop_float) { if (rsp_size) - ICAddRSP(tempi,rsp_size); + ICAddRSP(tmpi,rsp_size); } else { - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); - ICPop(tempi,MDF_REG+RT_I64,r1,0,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); + ICPop(tmpi,MDF_REG+RT_I64,r1,0,ip); } } -U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, +U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 r1, CICType t2,I64 r2,I64 d2,Bool to_int,I64 ip) { I64 rsp_size=0,op1,op2; @@ -178,29 +178,29 @@ U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, op2=SLASH_OP_FSTP; } if (!(t2.raw_type>=RT_I64 && t2&MDG_DISP_SIB_RIP)) { - ICPush(tempi,t2,r2,d2,ip); + ICPush(tmpi,t2,r2,d2,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size=8; } else { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } - ICSlashOp(tempi,t2,r2,d2,op1,ip); - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); - ICPop(tempi,MDF_REG+RT_I64,r1,0,ip); + ICSlashOp(tmpi,t2,r2,d2,op1,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); + ICPop(tmpi,MDF_REG+RT_I64,r1,0,ip); cc->last_dont_pushable=cc->last_dont_popable=FALSE; //TODO: improve this } -U0 ICFUnaryMinus(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf2,I64 ip) +U0 ICFUnaryMinus(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf2,I64 ip) { - CICArg *a1=&tempi->a1; + CICArg *a1=&tmpi->a1; I64 rsp_size=0,builtin1=0,t1,r1,d1; Bool dont_push_float,dont_pop_float; if (cc->flags&CCF_AOT_COMPILE) buf2=cc->aotc->ip; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (!dont_push_float) { if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; @@ -214,148 +214,148 @@ U0 ICFUnaryMinus(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf2,I64 ip) d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { - ICPush(tempi,a1->type,a1->reg,a1->disp,ip); + ICPush(tmpi,a1->type,a1->reg,a1->disp,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } if (builtin1) - ICU16(tempi,builtin1); + ICU16(tmpi,builtin1); else - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip); + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_FLD,ip); } if (!dont_pop_float && !rsp_size) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } - ICU16(tempi,0xE0D9); //FCHS - CmpNoteFloatOp(cc,tempi,TRUE,TRUE,CN_MAIN); + ICU16(tmpi,0xE0D9); //FCHS + CmpNoteFloatOp(cc,tmpi,TRUE,TRUE,CN_MAIN); if (dont_pop_float) { if (rsp_size) - ICAddRSP(tempi,rsp_size); + ICAddRSP(tmpi,rsp_size); } else { - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); - ICPop(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICPop(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp,ip); } } -U0 ICFMod(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) +U0 ICFMod(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 ip) {//for MOD Bool dont_push_float,dont_pop_float; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (tempi->ic_flags&ICF_ALT_TEMPLATE) - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + if (tmpi->ic_flags&ICF_ALT_TEMPLATE) + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); else - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); } //TODO: unpushable,unpop? Not sure - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); if (!dont_pop_float) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) +U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 ip) {//for POW I64 i; - CAOTImportExport *tempie; - CHashExport *tempex=HashFind("SYS_POW", + CAOTImportExport *tmpie; + CHashExport *tmpex=HashFind("SYS_POW", cc->htc.hash_table_lst,HTT_EXPORT_SYS_SYM); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); if (cc->flags&CCF_AOT_COMPILE) { - if (!tempex) { - tempex=CAlloc(sizeof(CHashExport)); - tempex->str=StrNew("SYS_POW"); - tempex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED|HTF_IMPORT; - HashAdd(tempex,cc->htc.glbl_hash_table); + if (!tmpex) { + tmpex=CAlloc(sizeof(CHashExport)); + tmpex->str=StrNew("SYS_POW"); + tmpex->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED|HTF_IMPORT; + HashAdd(tmpex,cc->htc.glbl_hash_table); } - if (tempex->type&HTF_IMPORT) { + if (tmpex->type&HTF_IMPORT) { if (GetOption(OPTf_USE_IMM64)) { - ICU16(tempi,0xBB48); - ICU64(tempi,0); + ICU16(tmpi,0xBB48); + ICU64(tmpi,0); if (buf) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_IMM_I64; - tempie->ip=ip+tempi->ic_cnt-8; - tempie->next=tempex->ie_lst; - tempex->ie_lst=tempie; + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_IMM_I64; + tmpie->ip=ip+tmpi->ic_cnt-8; + tmpie->next=tmpex->ie_lst; + tmpex->ie_lst=tmpie; } - ICU16(tempi,0xD3FF); + ICU16(tmpi,0xD3FF); } else { - ICU8(tempi,0xE8); - ICU32(tempi,-(ip+tempi->ic_cnt+4)); + ICU8(tmpi,0xE8); + ICU32(tmpi,-(ip+tmpi->ic_cnt+4)); if (buf) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_REL_I32; - tempie->ip=ip+tempi->ic_cnt-4; - tempie->next=tempex->ie_lst; - tempex->ie_lst=tempie; + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_REL_I32; + tmpie->ip=ip+tmpi->ic_cnt-4; + tmpie->next=tmpex->ie_lst; + tmpex->ie_lst=tmpie; } } } else {//Kernel - if (tempex->type&HTF_UNRESOLVED) + if (tmpex->type&HTF_UNRESOLVED) throw('Compiler'); else { - i=tempex->val-(ip+tempi->ic_cnt+5); + i=tmpex->val-(ip+tmpi->ic_cnt+5); if (!(MIN_I32<=i<=MAX_I32)) { throw('Compiler'); -// ICU16(tempi,0xBB48); - // ICU64(tempi,tempex->val); - // ICU16(tempi,0xD3FF); +// ICU16(tmpi,0xBB48); + // ICU64(tmpi,tmpex->val); + // ICU16(tmpi,0xD3FF); } else { - ICU8(tempi,0xE8); - ICU32(tempi,i); + ICU8(tmpi,0xE8); + ICU32(tmpi,i); } } } } else { - i=tempex->val-(ip+tempi->ic_cnt+5); + i=tmpex->val-(ip+tmpi->ic_cnt+5); if (!(MIN_I32<=i<=MAX_I32)) { - ICU16(tempi,0xBB48); - ICU64(tempi,tempex->val); - ICU16(tempi,0xD3FF); + ICU16(tmpi,0xBB48); + ICU64(tmpi,tmpex->val); + ICU16(tmpi,0xD3FF); } else { - ICU8(tempi,0xE8); - ICU32(tempi,i); + ICU8(tmpi,0xE8); + ICU32(tmpi,i); } } - tempi->ic_flags&=~ICF_CODE_FINAL; - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tmpi->ic_flags&=~ICF_CODE_FINAL; + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) +U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,U8 *buf2,I64 ip) {//for ADD,SUB,DIV,MUL CICArg *a1,*a2; Bool dont_push_float,dont_pop_float,alt; I64 rsp_size=0,builtin1=0,builtin2=0,t1,r1,d1,t2,r2,d2; - if (tempi->ic_flags&ICF_ALT_TEMPLATE) { - a1=&tempi->a2; - a2=&tempi->a1; + if (tmpi->ic_flags&ICF_ALT_TEMPLATE) { + a1=&tmpi->a2; + a2=&tmpi->a1; alt=TRUE; } else { - a1=&tempi->a1; - a2=&tempi->a2; + a1=&tmpi->a1; + a2=&tmpi->a2; alt=FALSE; } if (cc->flags&CCF_AOT_COMPILE) buf2=cc->aotc->ip; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_push_float) { if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; @@ -369,7 +369,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } @@ -389,7 +389,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { - ICPush(tempi,a1->type,a1->reg,a1->disp,ip); + ICPush(tmpi,a1->type,a1->reg,a1->disp,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } @@ -406,7 +406,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; if (r1==REG_RSP+REG_RSP<<8) @@ -414,9 +414,9 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -435,7 +435,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } @@ -452,7 +452,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { - ICPush(tempi,a1->type,a1->reg,a1->disp,ip); + ICPush(tmpi,a1->type,a1->reg,a1->disp,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) @@ -460,9 +460,9 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -471,7 +471,7 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } if (!dont_pop_float && !rsp_size) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } if (!dont_push_float) { if (builtin2 && !builtin1) { @@ -482,9 +482,9 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) SwapI64(&builtin1,&builtin2); } if (builtin1) - ICU16(tempi,builtin1); + ICU16(tmpi,builtin1); else - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip); + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_FLD,ip); } if (alt) switch (op.u8[0]) { @@ -492,112 +492,112 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) case 6: op=SLASH_OP_FDIVR; break; } if (builtin2) { - ICU16(tempi,builtin2); - ICU16(tempi,op.u16[2]); + ICU16(tmpi,builtin2); + ICU16(tmpi,op.u16[2]); } else - ICSlashOp(tempi,t2,r2,d2,op,ip); - CmpNoteFloatOp(cc,tempi,TRUE,TRUE,CN_MAIN); + ICSlashOp(tmpi,t2,r2,d2,op,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,TRUE,CN_MAIN); if (dont_pop_float) { if (rsp_size) - ICAddRSP(tempi,rsp_size); + ICAddRSP(tmpi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); - ICAddRSP(tempi,rsp_size-8); + ICAddRSP(tmpi,rsp_size-8); } - ICPop(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,ip); + ICPop(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp,ip); } } -U0 ICFCmp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICFCmp(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,I64 ip) { Bool dont_push_float,dont_pop_float; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (tempi->ic_flags&ICF_ALT_TEMPLATE) { - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<ic_flags&ICF_ALT_TEMPLATE) { + if (tmpi->ic_flags&ICF_POP_CMP) + ICPopRegs(tmpi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); } else - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + if (tmpi->ic_flags&ICF_POP_CMP) + ICPopRegs(tmpi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); } - if (tempi->ic_flags&ICF_PUSH_CMP) - ICPushRegs(tempi,1<r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->ic_flags&ICF_PUSH_CMP) + ICPushRegs(tmpi,1<r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) +U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 ip) { Bool dont_push_float,dont_pop_float; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); - if (tempi->ic_flags & ICF_BY_VAL) { + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); + if (tmpi->ic_flags & ICF_BY_VAL) { if (dont_push_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tmpi,tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to, + tmpi->a1.reg,tmpi->a1.disp,ip); } else { if (dont_push_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,tempi->a1.type, - tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,tmpi->a1.type, + tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,tempi->a1.type, - tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,tmpi->a1.type, + tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RAX,0,ip); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } } diff --git a/Compiler/BackFB.HC b/Compiler/BackFB.HC index 8838208..59cbff9 100644 --- a/Compiler/BackFB.HC +++ b/Compiler/BackFB.HC @@ -1,7 +1,7 @@ -U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) +U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,U8 *buf2,I64 ip) {//for ADD,SUB,DIV,MUL - CICArg *a1=&tempi->a1, - *a2=&tempi->a2; + CICArg *a1=&tmpi->a1, + *a2=&tmpi->a2; Bool dont_push_float,dont_pop_float,p1_mem; I64 rsp_size=0,builtin2=0, t1,r1,d1,t2,r2,d2; @@ -9,41 +9,41 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) if (cc->flags&CCF_AOT_COMPILE) buf2=cc->aotc->ip; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_pop_float) throw('Compiler'); - if (tempi->ic_flags & ICF_BY_VAL) { + if (tmpi->ic_flags & ICF_BY_VAL) { p1_mem=FALSE; if (dont_push_float) { - if (tempi->a1_type_pointed_to!=RT_F64) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg,a1->disp,ip); - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); - ICPush(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + a1->type&MDG_MASK+tmpi->a1_type_pointed_to,a1->reg,a1->disp,ip); + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICPush(tmpi,MDF_REG+RT_I64,REG_RAX,0,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { - if (tempi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { - t1=a1->type&MDG_MASK+tempi->a1_type_pointed_to; + if (tmpi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+tmpi->a1_type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to, + ICPush(tmpi,a1->type&MDG_MASK+tmpi->a1_type_pointed_to, a1->reg,a1->disp,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } } else { - if (tempi->a1_type_pointed_to!=RT_F64 || a1->type&MDF_STK) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg,a1->disp,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + if (tmpi->a1_type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + a1->type&MDG_MASK+tmpi->a1_type_pointed_to,a1->reg,a1->disp,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -60,18 +60,18 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - if (tempi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { - t1=a1->type&MDG_MASK+tempi->a1_type_pointed_to; + if (tmpi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+tmpi->a1_type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to, + ICPush(tmpi,a1->type&MDG_MASK+tmpi->a1_type_pointed_to, a1->reg,a1->disp,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; @@ -80,71 +80,71 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } - if (!rsp_size && !(p1_mem && tempi->a1_type_pointed_to==RT_F64)) { + if (!rsp_size && !(p1_mem && tmpi->a1_type_pointed_to==RT_F64)) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } if (!dont_push_float) { if (builtin2) - ICU16(tempi,builtin2); + ICU16(tmpi,builtin2); else - ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip); + ICSlashOp(tmpi,t2,r2,d2,SLASH_OP_FLD,ip); } switch (op.u8[0]) { case 4: op=SLASH_OP_FSUBR; break; case 6: op=SLASH_OP_FDIVR; break; } - ICSlashOp(tempi,t1,r1,d1,op,ip); - CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); - if (p1_mem && tempi->a1_type_pointed_to==RT_F64) { - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FSTP,ip); + ICSlashOp(tmpi,t1,r1,d1,op,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,FALSE,CN_MAIN); + if (p1_mem && tmpi->a1_type_pointed_to==RT_F64) { + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_FSTP,ip); if (rsp_size) - ICAddRSP(tempi,rsp_size); + ICAddRSP(tmpi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); - ICAddRSP(tempi,rsp_size-8); + ICAddRSP(tmpi,rsp_size-8); } - if (tempi->a1_type_pointed_to!=RT_F64) { - ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg, + if (tmpi->a1_type_pointed_to!=RT_F64) { + ICPop(tmpi,MDF_REG+RT_I64,REG_RAX,0,ip); + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tmpi,a1->type&MDG_MASK+tmpi->a1_type_pointed_to,a1->reg, a1->disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else - ICPop(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to, + ICPop(tmpi,a1->type&MDG_MASK+tmpi->a1_type_pointed_to, a1->reg,a1->disp,ip); } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg,a1->disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + a1->type&MDG_MASK+tmpi->a1_type_pointed_to,a1->reg,a1->disp,ip); } else { - if (tempi->a1_type_pointed_to>=RT_I64) + if (tmpi->a1_type_pointed_to>=RT_I64) p1_mem=TRUE; else p1_mem=FALSE; if (dont_push_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - if (tempi->a1_type_pointed_to!=RT_F64) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); - ICPush(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICPush(tmpi,MDF_REG+RT_I64,REG_RAX,0,ip); } else - ICPush(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + ICPush(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { - if (tempi->a1_type_pointed_to!=RT_F64 || a1->type&MDF_STK) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + if (tmpi->a1_type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -161,62 +161,62 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - ICPush(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICPush(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0,ip); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; } } - if (!rsp_size && !(p1_mem && tempi->a1_type_pointed_to==RT_F64)) { + if (!rsp_size && !(p1_mem && tmpi->a1_type_pointed_to==RT_F64)) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } if (!dont_push_float) { if (builtin2) - ICU16(tempi,builtin2); + ICU16(tmpi,builtin2); else - ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip); + ICSlashOp(tmpi,t2,r2,d2,SLASH_OP_FLD,ip); } switch (op.u8[0]) { case 4: op=SLASH_OP_FSUBR; break; case 6: op=SLASH_OP_FDIVR; break; } - ICSlashOp(tempi,t1,r1,d1,op,ip); - CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); - if (p1_mem && tempi->a1_type_pointed_to==RT_F64) { - ICSlashOp(tempi,MDF_DISP+tempi->a1_type_pointed_to, + ICSlashOp(tmpi,t1,r1,d1,op,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,FALSE,CN_MAIN); + if (p1_mem && tmpi->a1_type_pointed_to==RT_F64) { + ICSlashOp(tmpi,MDF_DISP+tmpi->a1_type_pointed_to, REG_RCX,0,SLASH_OP_FSTP,ip); if (rsp_size) - ICAddRSP(tempi,rsp_size); + ICAddRSP(tmpi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tmpi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); - ICAddRSP(tempi,rsp_size-8); + ICAddRSP(tmpi,rsp_size-8); } - ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); - if (tempi->a1_type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, + ICPop(tmpi,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tmpi->a1_type_pointed_to!=RT_F64) + ICFCvt2(cc,tmpi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tmpi,MDF_DISP+tmpi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } } -U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, +U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 ip, I64 us,I64 not_us,U8 *buf,I64 ip2) { CICArg *a1,*a2; @@ -225,13 +225,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, CCodeMisc *lb; U8 *buf2; - if (tempi->ic_flags&ICF_ALT_TEMPLATE) { - a1=&tempi->a2; - a2=&tempi->a1; + if (tmpi->ic_flags&ICF_ALT_TEMPLATE) { + a1=&tmpi->a2; + a2=&tmpi->a1; alt=TRUE; } else { - a1=&tempi->a1; - a2=&tempi->a2; + a1=&tmpi->a1; + a2=&tmpi->a2; alt=FALSE; } @@ -240,9 +240,9 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, else buf2=buf; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (tempi->ic_flags&ICF_POP_CMP && alt) { + if (tmpi->ic_flags&ICF_POP_CMP && alt) { t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } else { @@ -253,13 +253,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } else { if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || - tempi->ic_flags&ICF_PUSH_CMP) { + tmpi->ic_flags&ICF_PUSH_CMP) { t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip2); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } @@ -268,7 +268,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } else { if (alt) { if (!(a2->type&MDF_STK)) { - if (tempi->ic_flags&ICF_POP_CMP) { + if (tmpi->ic_flags&ICF_POP_CMP) { t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { @@ -284,7 +284,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { - ICPush(tempi,a1->type,a1->reg,a1->disp,ip2); + ICPush(tmpi,a1->type,a1->reg,a1->disp,ip2); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } @@ -297,13 +297,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } else { if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || - tempi->ic_flags&ICF_PUSH_CMP) { + tmpi->ic_flags&ICF_PUSH_CMP) { t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip2); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; if (r1==REG_RSP+REG_RSP<<8) @@ -311,12 +311,12 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } } } else { - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<ic_flags&ICF_POP_CMP) + ICPopRegs(tmpi,1<type,a1->reg,a1->disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -330,18 +330,18 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } else { if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || - tempi->ic_flags&ICF_PUSH_CMP) { + tmpi->ic_flags&ICF_PUSH_CMP) { t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); + ICPush(tmpi,a2->type,a2->reg,a2->disp,ip2); t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - if (tempi->ic_flags&ICF_POP_CMP) { + if (tmpi->ic_flags&ICF_POP_CMP) { t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) @@ -359,7 +359,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { - ICPush(tempi,a1->type,a1->reg,a1->disp,ip2); + ICPush(tmpi,a1->type,a1->reg,a1->disp,ip2); t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) @@ -368,12 +368,12 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<type,a2->reg,a2->disp,ip2); + if (tmpi->ic_flags&ICF_POP_CMP) + ICPopRegs(tmpi,1<type,a1->reg,a1->disp,ip2); - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICU16(tmpi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; @@ -382,66 +382,66 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } if (!dont_push_float) { if (builtin1) - ICU16(tempi,builtin1); + ICU16(tmpi,builtin1); else - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip2); + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_FLD,ip2); } if (!alt) us=not_us; if (builtin2) - ICU16(tempi,builtin2); + ICU16(tmpi,builtin2); else - ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip2); - if (tempi->ic_flags&ICF_PUSH_CMP) { + ICSlashOp(tmpi,t2,r2,d2,SLASH_OP_FLD,ip2); + if (tmpi->ic_flags&ICF_PUSH_CMP) { t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; if (!rsp_size) { rsp_size=8; - ICAddRSP(tempi,-8); + ICAddRSP(tmpi,-8); } else if (rsp_size==16) d2=8; if (alt) { - ICU16(tempi,0xF1DF); //FCOMIP - ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FSTP,ip2); + ICU16(tmpi,0xF1DF); //FCOMIP + ICSlashOp(tmpi,t2,r2,d2,SLASH_OP_FSTP,ip2); } else { - ICU16(tempi,0xF1DB); //FCOMI - ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FSTP,ip2); - ICU32(tempi,0xF7D9C0DD); //FFREE,FINCSTP + ICU16(tmpi,0xF1DB); //FCOMI + ICSlashOp(tmpi,t2,r2,d2,SLASH_OP_FSTP,ip2); + ICU32(tmpi,0xF7D9C0DD); //FFREE,FINCSTP } } else { - ICU16(tempi,0xF1DF); //FCOMIP - ICU32(tempi,0xF7D9C0DD); //FFREE,FINCSTP + ICU16(tmpi,0xF1DF); //FCOMIP + ICU32(tmpi,0xF7D9C0DD); //FFREE,FINCSTP } - CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); + CmpNoteFloatOp(cc,tmpi,TRUE,FALSE,CN_MAIN); - if (tempi->ic_flags&ICF_PUSH_CMP) { + if (tmpi->ic_flags&ICF_PUSH_CMP) { if (r2.u8[0]==REG_RSP) { while (d2 && rsp_size) { - ICU8(tempi,0x5B); //POP RBX (Dont change flags) + ICU8(tmpi,0x5B); //POP RBX (Dont change flags) rsp_size-=8; d2-=8; } } else { while (rsp_size) { - ICU8(tempi,0x5B); //POP RBX (Dont change flags) + ICU8(tmpi,0x5B); //POP RBX (Dont change flags) rsp_size-=8; } - ICPush(tempi,t2,r2,d2,ip2); + ICPush(tmpi,t2,r2,d2,ip2); } } else { while (rsp_size) { - ICU8(tempi,0x5B); //POP RBX (Dont change flags) + ICU8(tmpi,0x5B); //POP RBX (Dont change flags) rsp_size-=8; } } - ip+=tempi->ic_cnt; - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + ip+=tmpi->ic_cnt; + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR) { i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; @@ -451,170 +451,170 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; } - ICU16(tempi,i<<8+us.u8[2]); + ICU16(tmpi,i<<8+us.u8[2]); } else { - tempi->ic_flags&=~ICF_SHORT_JMP; + tmpi->ic_flags&=~ICF_SHORT_JMP; i=lb->addr-(ip+6); if (lb->flags&CMF_POP_CMP) { - if(tempi->ic_flags&ICF_PUSH_CMP) + if(tmpi->ic_flags&ICF_PUSH_CMP) i+=4; else i+=8; } - ICU16(tempi,us.u16[0]); - ICU32(tempi,i); + ICU16(tmpi,us.u16[0]); + ICU32(tmpi,i); } } -U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) +U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 ip) { - if (tempi->a1.type&MDF_IMM && tempi->a1.type&RTG_MASK==RT_F64 && - tempi->a1.disp(F64)==1.0) { - CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else if (tempi->a2.type&MDF_IMM && - tempi->a2.type&RTG_MASK==RT_F64&& tempi->a2.disp(F64)==1.0) { - CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + if (tmpi->a1.type&MDF_IMM && tmpi->a1.type&RTG_MASK==RT_F64 && + tmpi->a1.disp(F64)==1.0) { + CmpNoteFloatOp(cc,tmpi,FALSE,FALSE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + } else if (tmpi->a2.type&MDF_IMM && + tmpi->a2.type&RTG_MASK==RT_F64&& tmpi->a2.disp(F64)==1.0) { + CmpNoteFloatOp(cc,tmpi,FALSE,FALSE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); } else - ICFOp(cc,tempi,SLASH_OP_FMUL,buf,ip); + ICFOp(cc,tmpi,SLASH_OP_FMUL,buf,ip); } -U0 ICFDiv(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) +U0 ICFDiv(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 ip) { - if (tempi->a2.type&MDF_IMM && tempi->a2.type&RTG_MASK==RT_F64 && - tempi->a2.disp(F64)==1.0) { - CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + if (tmpi->a2.type&MDF_IMM && tmpi->a2.type&RTG_MASK==RT_F64 && + tmpi->a2.disp(F64)==1.0) { + CmpNoteFloatOp(cc,tmpi,FALSE,FALSE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); } else - ICFOp(cc,tempi,SLASH_OP_FDIV,buf,ip); + ICFOp(cc,tmpi,SLASH_OP_FDIV,buf,ip); } -U0 ICFAdd(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) +U0 ICFAdd(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 ip) { Bool dont_push_float,dont_pop_float; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); - if (tempi->a1.type&MDF_IMM && !tempi->a1.disp) { + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); + if (tmpi->a1.type&MDF_IMM && !tmpi->a1.disp) { if (dont_push_float) { - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { - CmpNoteFloatOp(cc,tempi,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip); } - } else if (tempi->a2.type&MDF_IMM && !tempi->a2.disp) { + } else if (tmpi->a2.type&MDF_IMM && !tmpi->a2.disp) { if (dont_push_float) { - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - CmpNoteFloatOp(cc,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,TRUE,CN_MAIN); } } else - ICFOp(cc,tempi,SLASH_OP_FADD,buf,ip); + ICFOp(cc,tmpi,SLASH_OP_FADD,buf,ip); } -U0 ICFSub(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) +U0 ICFSub(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 ip) { Bool dont_push_float,dont_pop_float; - if (tempi->a2.type&MDF_IMM && !tempi->a2.disp) { - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + if (tmpi->a2.type&MDF_IMM && !tmpi->a2.disp) { + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - CmpNoteFloatOp(cc,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + CmpNoteFloatOp(cc,tmpi,TRUE,TRUE,CN_MAIN); } } else - ICFOp(cc,tempi,SLASH_OP_FSUB,buf,ip); + ICFOp(cc,tmpi,SLASH_OP_FSUB,buf,ip); } -U0 ICFPreIncDec(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICFPreIncDec(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,I64 ip) { - if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); - ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, + if (tmpi->ic_flags & ICF_BY_VAL) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,ip); + ICCopyTemplate(cc,tmpi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); - ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); + ICCopyTemplate(cc,tmpi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } -U0 ICFPostIncDec(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICFPostIncDec(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,I64 ip) { - if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->r.type.mode) - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); - ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, + if (tmpi->ic_flags & ICF_BY_VAL) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type&MDG_MASK+RT_I64,tmpi->a1.reg,tmpi->a1.disp,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); + ICCopyTemplate(cc,tmpi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); - if (tempi->r.type.mode) - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); - ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); + if (tmpi->r.type.mode) + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); + ICCopyTemplate(cc,tmpi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tmpi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RDX,0,ip); } -U0 ICFTemplateFun(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) +U0 ICFTemplateFun(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 op,I64 ip) { Bool dont_push_float,dont_pop_float; - CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); + CmpSetFloatOpPushPop(cc,tmpi,&dont_push_float,&dont_pop_float); if (!dont_push_float) - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); - ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - if (tempi->r.type.mode && !(tempi->ic_flags & ICF_R_TO_F64) && - !(tempi->ic_flags & ICF_R_TO_INT)) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICCopyTemplate(cc,tmpi,op,FALSE,TRUE,TRUE,CN_MAIN); + if (tmpi->r.type.mode && !(tmpi->ic_flags & ICF_R_TO_F64) && + !(tmpi->ic_flags & ICF_R_TO_INT)) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); } diff --git a/Compiler/BackLib.HC b/Compiler/BackLib.HC index c44f235..8d22415 100644 --- a/Compiler/BackLib.HC +++ b/Compiler/BackLib.HC @@ -14,113 +14,113 @@ found it's way into a reg has been sign or zero extended to 64-bits. */ -U0 ICU8(CIntermediateCode *tempi,U8 b) +U0 ICU8(CIntermediateCode *tmpi,U8 b) { - tempi->ic_body[tempi->ic_cnt++]=b; + tmpi->ic_body[tmpi->ic_cnt++]=b; } -U0 ICRex(CIntermediateCode *tempi,U8 b) +U0 ICRex(CIntermediateCode *tmpi,U8 b) { if (b) - tempi->ic_body[tempi->ic_cnt++]=b; + tmpi->ic_body[tmpi->ic_cnt++]=b; } -U0 ICOpSizeRex(CIntermediateCode *tempi,U8 b) +U0 ICOpSizeRex(CIntermediateCode *tmpi,U8 b) { - tempi->ic_body[tempi->ic_cnt++]=OC_OP_SIZE_PREFIX; + tmpi->ic_body[tmpi->ic_cnt++]=OC_OP_SIZE_PREFIX; if (b) - tempi->ic_body[tempi->ic_cnt++]=b; + tmpi->ic_body[tmpi->ic_cnt++]=b; } -U0 ICU16(CIntermediateCode *tempi,U16 w) +U0 ICU16(CIntermediateCode *tmpi,U16 w) { - *(&tempi->ic_body[tempi->ic_cnt])(U16)=w; - tempi->ic_cnt+=2; + *(&tmpi->ic_body[tmpi->ic_cnt])(U16)=w; + tmpi->ic_cnt+=2; } -U0 ICU24(CIntermediateCode *tempi,U32 d) +U0 ICU24(CIntermediateCode *tmpi,U32 d) {//Writes extra harmless overhanging byte. - *(&tempi->ic_body[tempi->ic_cnt])(U32)=d; - tempi->ic_cnt+=3; + *(&tmpi->ic_body[tmpi->ic_cnt])(U32)=d; + tmpi->ic_cnt+=3; } -U0 ICU32(CIntermediateCode *tempi,U32 d) +U0 ICU32(CIntermediateCode *tmpi,U32 d) { - *(&tempi->ic_body[tempi->ic_cnt])(U32)=d; - tempi->ic_cnt+=4; + *(&tmpi->ic_body[tmpi->ic_cnt])(U32)=d; + tmpi->ic_cnt+=4; } -U0 ICU64(CIntermediateCode *tempi,U64 q) +U0 ICU64(CIntermediateCode *tmpi,U64 q) { - *(&tempi->ic_body[tempi->ic_cnt])(U64)=q; - tempi->ic_cnt+=8; + *(&tmpi->ic_body[tmpi->ic_cnt])(U64)=q; + tmpi->ic_cnt+=8; } -U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) +U0 ICAddRSP(CIntermediateCode *tmpi,I64 i,Bool optimize=TRUE) { I64 j,last_start; - CIntermediateCode *tempil1; + CIntermediateCode *tmpil1; if (optimize) { - tempil1=tempi; - if (tempi->ic_last_start<0 && !tempi->ic_cnt && - (tempil1=OptLag1(tempi)) && tempil1->ic_last_start<0) - tempil1=NULL; - if (tempil1) { - j=tempil1->ic_cnt; - if (tempil1->ic_last_start==j-4 && tempil1->ic_body[j-3]==0x83 && - tempil1->ic_body[j-4]==0x48) { - if (tempil1->ic_body[j-2]==0xEC) - j=-tempil1->ic_body[j-1](I8); - else if (tempil1->ic_body[j-2]==0xC4) - j=tempil1->ic_body[j-1](I8); + tmpil1=tmpi; + if (tmpi->ic_last_start<0 && !tmpi->ic_cnt && + (tmpil1=OptLag1(tmpi)) && tmpil1->ic_last_start<0) + tmpil1=NULL; + if (tmpil1) { + j=tmpil1->ic_cnt; + if (tmpil1->ic_last_start==j-4 && tmpil1->ic_body[j-3]==0x83 && + tmpil1->ic_body[j-4]==0x48) { + if (tmpil1->ic_body[j-2]==0xEC) + j=-tmpil1->ic_body[j-1](I8); + else if (tmpil1->ic_body[j-2]==0xC4) + j=tmpil1->ic_body[j-1](I8); else j=0; - } else if (tempil1->ic_last_start==j-7 && tempil1->ic_body[j-6]==0x81 && - tempil1->ic_body[j-7]==0x48) { - if (tempil1->ic_body[j-5]==0xEC) - j=-tempil1->ic_body[j-4](I32); - else if (tempil1->ic_body[j-5]==0xC4) - j=tempil1->ic_body[j-4](I32); + } else if (tmpil1->ic_last_start==j-7 && tmpil1->ic_body[j-6]==0x81 && + tmpil1->ic_body[j-7]==0x48) { + if (tmpil1->ic_body[j-5]==0xEC) + j=-tmpil1->ic_body[j-4](I32); + else if (tmpil1->ic_body[j-5]==0xC4) + j=tmpil1->ic_body[j-4](I32); else j=0; } else j=0; if (j) { - if (tempi==tempil1) { - tempi->ic_cnt=tempi->ic_last_start; + if (tmpi==tmpil1) { + tmpi->ic_cnt=tmpi->ic_last_start; i+=j; - } else if (!(tempi->ic_flags&ICF_PREV_DELETED)) { - tempil1->ic_flags|=ICF_DEL_PREV_INS; - tempi->ic_flags=tempi->ic_flags&~ICF_CODE_FINAL|ICF_PREV_DELETED; + } else if (!(tmpi->ic_flags&ICF_PREV_DELETED)) { + tmpil1->ic_flags|=ICF_DEL_PREV_INS; + tmpi->ic_flags=tmpi->ic_flags&~ICF_CODE_FINAL|ICF_PREV_DELETED; i+=j; } } } } - last_start=tempi->ic_cnt; + last_start=tmpi->ic_cnt; if (i>0) { if (i<=MAX_I8) - ICU32(tempi,0xC48348+i<<24); + ICU32(tmpi,0xC48348+i<<24); else if (i<=MAX_I32) { - ICU24(tempi,0xC48148); - ICU32(tempi,i); + ICU24(tmpi,0xC48148); + ICU32(tmpi,i); } else throw('Compiler'); } else if (i<0) { i=-i; if (i<=MAX_I8) - ICU32(tempi,0xEC8348+i<<24); + ICU32(tmpi,0xEC8348+i<<24); else if (i<=MAX_I32) { - ICU24(tempi,0xEC8148); - ICU32(tempi,i); + ICU24(tmpi,0xEC8148); + ICU32(tmpi,i); } else throw('Compiler'); } - if (optimize && tempi->ic_cnt>last_start) - tempi->ic_last_start=last_start; + if (optimize && tmpi->ic_cnt>last_start) + tmpi->ic_last_start=last_start; } -extern U0 ICMov(CIntermediateCode *tempi, +extern U0 ICMov(CIntermediateCode *tmpi, CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2,I64 ip); #define MODR_REG 0 @@ -210,7 +210,7 @@ I64 ICModr1(I64 r,CICType t2,I64 r2,I64 d2) return res; } -U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) +U0 ICModr2(CIntermediateCode *tmpi,I64 i,I64 d,I64 ip=0) {//t=0 means no SIB switch [i.u8[0]] { case MODR_REG: @@ -218,25 +218,25 @@ U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) case MODR_INDIRECT_REG: break; case MODR_D8_INDIRECT_REG: - ICU8(tempi,d); + ICU8(tmpi,d); break; case MODR_D32_INDIRECT_REG: - ICU32(tempi,d); + ICU32(tmpi,d); break; case MODR_SIB_INDIRECT_REG: - ICU8(tempi,i.u8[3]); + ICU8(tmpi,i.u8[3]); break; case MODR_SIB_D8_INDIRECT_REG: - ICU8(tempi,i.u8[3]); - ICU8(tempi,d); + ICU8(tmpi,i.u8[3]); + ICU8(tmpi,d); break; case MODR_SIB_D32_INDIRECT_REG: - ICU8(tempi,i.u8[3]); - ICU32(tempi,d); + ICU8(tmpi,i.u8[3]); + ICU32(tmpi,d); break; case MODR_RIP_REL: - ICU32(tempi,d-(ip+tempi->ic_cnt)); - tempi->ic_flags&=~ICF_CODE_FINAL; + ICU32(tmpi,d-(ip+tmpi->ic_cnt)); + tmpi->ic_flags&=~ICF_CODE_FINAL; break; } } @@ -262,52 +262,52 @@ U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) #define SLASH_OP_FISTTP 0x0000000001DDDD01 #define SLASH_OP_FILD 0x0000000001DFDF05 -U0 ICSlashOp(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 op,I64 ip) +U0 ICSlashOp(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 op,I64 ip) { I64 i; if (t1&MDF_REG && !op.u8[3]) t1=t1&(MDG_MASK|RTF_UNSIGNED)+RT_I64; //Set to 64 bit,preserving unsigned i=ICModr1(op.u8[0],t1,r1,d1); - if (tempi->ic_flags&ICF_LOCK && op!=SLASH_OP_MOV && !(t1&MDF_REG)) - ICU8(tempi,OC_LOCK_PREFIX); + if (tmpi->ic_flags&ICF_LOCK && op!=SLASH_OP_MOV && !(t1&MDF_REG)) + ICU8(tmpi,OC_LOCK_PREFIX); switch (t1.raw_type) { case RT_I8: case RT_U8: - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op.u8[1]); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op.u8[1]); break; case RT_I16: case RT_U16: - ICOpSizeRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op.u8[2]); + ICOpSizeRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op.u8[2]); break; default: if (i.u8[1]!=0x48 || !op.u8[3]) - ICRex(tempi,i.u8[1]); - ICU16(tempi,i.u8[2]<<8+op.u8[2]); + ICRex(tmpi,i.u8[1]); + ICU16(tmpi,i.u8[2]<<8+op.u8[2]); } - ICModr2(tempi,i,d1,ip+4); + ICModr2(tmpi,i,d1,ip+4); } -U0 ICPush(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 ip) +U0 ICPush(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 ip) { switch (Bsr(t1)) { case MDf_REG: if (r1>7) - ICU16(tempi,0x5049+(r1&7)<<8); + ICU16(tmpi,0x5049+(r1&7)<<8); else - ICU8(tempi,0x50+r1); + ICU8(tmpi,0x50+r1); return; case MDf_IMM: if (MIN_I8<=d1<=MAX_I8) - ICU16(tempi,0x6A+d1<<8); + ICU16(tmpi,0x6A+d1<<8); else if (MIN_I32<=d1<=MAX_I32) { - ICU8(tempi,0x68); - ICU32(tempi,d1); + ICU8(tmpi,0x68); + ICU32(tmpi,d1); } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); - ICU8(tempi,0x50+REG_RBX); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); + ICU8(tmpi,0x50+REG_RBX); } return; case MDf_STK: @@ -319,86 +319,86 @@ U0 ICPush(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 ip) case RT_I64: case RT_U64: case RT_F64: - ICSlashOp(tempi,t1,r1,d1,SLASH_OP_PUSH,ip); + ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_PUSH,ip); return; } break; } - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); - ICU16(tempi,0x5048+REG_RBX<<8); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); + ICU16(tmpi,0x5048+REG_RBX<<8); } -U0 ICPushRegs(CIntermediateCode *tempi,I64 mask) +U0 ICPushRegs(CIntermediateCode *tmpi,I64 mask) { I64 i; for (i=0;i7) - ICU16(tempi,0x5049+(i&7)<<8); + ICU16(tmpi,0x5049+(i&7)<<8); else - ICU8(tempi,0x50+i); + ICU8(tmpi,0x50+i); } } } -U0 ICPop(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 ip) +U0 ICPop(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 ip) { switch (Bsr(t1)) { case MDf_REG: if (r1>7) - ICU16(tempi,0x5849+(r1&7)<<8); + ICU16(tmpi,0x5849+(r1&7)<<8); else - ICU8(tempi,0x58+r1); + ICU8(tmpi,0x58+r1); break; case MDf_DISP: case MDf_RIP_DISP32: case MDf_SIB: if (t1.raw_type=0;i--) { if (Bt(&mask,i)) { if (i>7) - ICU16(tempi,0x5849+(i&7)<<8); + ICU16(tmpi,0x5849+(i&7)<<8); else - ICU8(tempi,0x58+i); + ICU8(tmpi,0x58+i); } } } -U0 ICZero(CIntermediateCode *tempi,I64 r) +U0 ICZero(CIntermediateCode *tmpi,I64 r) { if (r>7) { r&=7; - ICU24(tempi,0xC0334D+r<<16+r<<19); + ICU24(tmpi,0xC0334D+r<<16+r<<19); } else - ICU16(tempi,0xC033+r<<8+r<<11); + ICU16(tmpi,0xC033+r<<8+r<<11); } -U0 ICTest(CIntermediateCode *tempi,I64 r) +U0 ICTest(CIntermediateCode *tmpi,I64 r) { I64 i=0xC08548; //TEST R,R if (r>7) { i+=5; r&=7; } - ICU24(tempi,i+r<<16+r<<19); + ICU24(tmpi,i+r<<16+r<<19); } I64 ICBuiltInFloatConst(F64 d) @@ -423,57 +423,57 @@ I64 ICBuiltInFloatConst(F64 d) return 0; } -U0 ICMov(CIntermediateCode *tempi, +U0 ICMov(CIntermediateCode *tmpi, CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2,I64 ip) { I64 i,cnt1,cnt2,b1_rex,b2_rex,b1,b2,b1_modr,b2_modr, - b1_r1,b1_r2,b2_r1,b2_r2,last_start=tempi->ic_cnt; - CIntermediateCode *tempil1; - Bool old_lock=Btr(&tempi->ic_flags,ICf_LOCK); + b1_r1,b1_r2,b2_r1,b2_r2,last_start=tmpi->ic_cnt; + CIntermediateCode *tmpil1; + Bool old_lock=Btr(&tmpi->ic_flags,ICf_LOCK); switch (Bsr(t1)) { case MDf_REG: if (t2&MDF_IMM) { if (!d2) - ICZero(tempi,r1); + ICZero(tmpi,r1); else if (0<=d2<=MAX_U8) { - ICZero(tempi,r1); + ICZero(tmpi,r1); if (r1>7) - ICU24(tempi,d2<<16+(0xB0+r1&7)<<8+0x41); + ICU24(tmpi,d2<<16+(0xB0+r1&7)<<8+0x41); else if (r1>3) - ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x40); + ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x40); else - ICU16(tempi,d2<<8+0xB0+r1); + ICU16(tmpi,d2<<8+0xB0+r1); } else if (MIN_I8<=d2<0) { if (r1>7) { r1&=7; - ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x41); - ICU32(tempi,0xC0BE0F4D+r1<<24+r1<<27); + ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x41); + ICU32(tmpi,0xC0BE0F4D+r1<<24+r1<<27); } else { if (r1>3) - ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x40); + ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x40); else - ICU16(tempi,d2<<8+0xB0+r1); - ICU32(tempi,0xC0BE0F48+r1<<24+r1<<27); + ICU16(tmpi,d2<<8+0xB0+r1); + ICU32(tmpi,0xC0BE0F48+r1<<24+r1<<27); } } else if (0<=d2<=MAX_U32) { if (r1>7) { r1&=7; - ICU16(tempi,(0xB8+r1)<<8+0x41); - ICU32(tempi,d2); + ICU16(tmpi,(0xB8+r1)<<8+0x41); + ICU32(tmpi,d2); } else { - ICU8(tempi,0xB8+r1); - ICU32(tempi,d2); + ICU8(tmpi,0xB8+r1); + ICU32(tmpi,d2); } } else if (MIN_I32<=d2<0) { if (r1>7) { r1&=7; - ICU16(tempi,(0xB8+r1)<<8+0x41); - ICU32(tempi,d2); - ICU24(tempi,0xC0634D+r1<<16+r1<<19); + ICU16(tmpi,(0xB8+r1)<<8+0x41); + ICU32(tmpi,d2); + ICU24(tmpi,0xC0634D+r1<<16+r1<<19); } else { - ICU8(tempi,0xB8+r1); - ICU32(tempi,d2); - ICU24(tempi,0xC06348+r1<<16+r1<<19); + ICU8(tmpi,0xB8+r1); + ICU32(tmpi,d2); + ICU24(tmpi,0xC06348+r1<<16+r1<<19); } } else { i=0xB848; @@ -481,11 +481,11 @@ U0 ICMov(CIntermediateCode *tempi, i++; r1&=7; } - ICU16(tempi,i+r1<<8); - ICU64(tempi,d2); + ICU16(tmpi,i+r1<<8); + ICU64(tmpi,d2); } } else if (t2&MDF_STK) - ICPop(tempi,t1,r1,d1,ip); + ICPop(tmpi,t1,r1,d1,ip); else { if (r1==r2 && t2&MDF_REG) goto move_done; @@ -494,39 +494,39 @@ U0 ICMov(CIntermediateCode *tempi, i=ICModr1(r1,t2,r2,d2); if (t2.raw_type!=RT_U32) i|=0x4800; - ICRex(tempi,i.u8[1]); + ICRex(tmpi,i.u8[1]); switch (t2.raw_type) { case RT_I8: - ICU24(tempi,i.u8[2]<<16+0xBE0F); + ICU24(tmpi,i.u8[2]<<16+0xBE0F); break; case RT_I16: - ICU24(tempi,i.u8[2]<<16+0xBF0F); + ICU24(tmpi,i.u8[2]<<16+0xBF0F); break; case RT_I32: - ICU16(tempi,i.u8[2]<<8+0x63); + ICU16(tmpi,i.u8[2]<<8+0x63); break; case RT_U8: - ICU24(tempi,i.u8[2]<<16+0xB60F); + ICU24(tmpi,i.u8[2]<<16+0xB60F); break; case RT_U16: - ICU24(tempi,i.u8[2]<<16+0xB70F); + ICU24(tmpi,i.u8[2]<<16+0xB70F); break; default: - ICU16(tempi,i.u8[2]<<8+0x8B); + ICU16(tmpi,i.u8[2]<<8+0x8B); } - ICModr2(tempi,i,d2,ip+4); + ICModr2(tmpi,i,d2,ip+4); } break; case MDf_STK: - if (tempi->ic_flags&ICF_PUSH_CMP) - ICPopRegs(tempi,1<ic_flags&ICF_PUSH_CMP) + ICPopRegs(tmpi,1<ic_flags&ICF_PUSH_CMP) - ICPushRegs(tempi,1<ic_flags&ICF_PUSH_CMP) + ICPushRegs(tmpi,1<ic_cnt+4); + i=d1-(ip+tmpi->ic_cnt+4); switch (t1.raw_type) { case RT_I8: case RT_U8: @@ -564,62 +564,62 @@ U0 ICMov(CIntermediateCode *tempi, default: i-=4; } - ICU32(tempi,i); - tempi->ic_flags&=~ICF_CODE_FINAL; + ICU32(tmpi,i); + tmpi->ic_flags&=~ICF_CODE_FINAL; } switch (t1.raw_type) { case RT_I8: case RT_U8: - ICU8(tempi,d2); + ICU8(tmpi,d2); break; case RT_I16: case RT_U16: - ICU16(tempi,d2); + ICU16(tmpi,d2); break; default: - ICU32(tempi,d2); + ICU32(tmpi,d2); } } else { if (t2&MDF_REG) - ICSlashOp(tempi,t1,r1,d1,r2+SLASH_OP_MOV,ip); + ICSlashOp(tmpi,t1,r1,d1,r2+SLASH_OP_MOV,ip); else { - ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t2,r2,d2,ip); - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RBX,0,ip); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,t2,r2,d2,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,REG_RBX,0,ip); } } break; } move_done: if (!((t1|t2)&(MDF_STK|MDF_RIP_DISP32))) { - tempil1=tempi; - if (tempi->ic_last_start<0 && (tempil1=OptLag1(tempi)) && - tempil1->ic_last_start<0) - tempil1=NULL; - if (tempil1) { - if (tempil1==tempi) - cnt1=last_start-tempil1->ic_last_start; + tmpil1=tmpi; + if (tmpi->ic_last_start<0 && (tmpil1=OptLag1(tmpi)) && + tmpil1->ic_last_start<0) + tmpil1=NULL; + if (tmpil1) { + if (tmpil1==tmpi) + cnt1=last_start-tmpil1->ic_last_start; else { - if (!(tempil1->ic_flags&ICF_CODE_FINAL)) - tempi->ic_flags&=~ICF_CODE_FINAL; + if (!(tmpil1->ic_flags&ICF_CODE_FINAL)) + tmpi->ic_flags&=~ICF_CODE_FINAL; if (last_start) cnt1=0; else - cnt1=tempil1->ic_cnt-tempil1->ic_last_start; + cnt1=tmpil1->ic_cnt-tmpil1->ic_last_start; } - cnt2=tempi->ic_cnt-last_start; + cnt2=tmpi->ic_cnt-last_start; if (cnt1 && cnt1==cnt2) { - b1_rex=tempil1->ic_body[tempil1->ic_last_start]; - b2_rex=tempi->ic_body[last_start]; + b1_rex=tmpil1->ic_body[tmpil1->ic_last_start]; + b2_rex=tmpi->ic_body[last_start]; if (b1_rex&0x48==0x48 && b2_rex&0x48==0x48) { for (i=1;iic_body[tempil1->ic_last_start+i])== - (b2=tempi->ic_body[last_start+i])) { + if ((b1=tmpil1->ic_body[tmpil1->ic_last_start+i])== + (b2=tmpi->ic_body[last_start+i])) { if (i==1 && (b2==0x89 || b2==0x8B)) { - b1_modr=tempil1->ic_body[tempil1->ic_last_start+2]; + b1_modr=tmpil1->ic_body[tmpil1->ic_last_start+2]; b1_r1=b1_modr&7 +Bt(&b1_rex,0)<<3; b1_r2=b1_modr>>3&7+Bt(&b1_rex,2)<<3; - b2_modr=tempi->ic_body[last_start+2]; + b2_modr=tmpi->ic_body[last_start+2]; b2_r1=b2_modr&7 +Bt(&b2_rex,0)<<3; b2_r2=b2_modr>>3&7+Bt(&b2_rex,2)<<3; if (cnt1==3 && b2_modr&0xC0==0xC0) { @@ -638,10 +638,10 @@ move_done: else if (b2!=0x89 && b2!=0x8B) break; else { - b1_modr=tempil1->ic_body[tempil1->ic_last_start+2]; + b1_modr=tmpil1->ic_body[tmpil1->ic_last_start+2]; b1_r1=b1_modr&7 +Bt(&b1_rex,0)<<3; b1_r2=b1_modr>>3&7+Bt(&b1_rex,2)<<3; - b2_modr=tempi->ic_body[last_start+2]; + b2_modr=tmpi->ic_body[last_start+2]; b2_r1=b2_modr&7 +Bt(&b2_rex,0)<<3; b2_r2=b2_modr>>3&7+Bt(&b2_rex,2)<<3; if (cnt1==3 && b2_modr&0xC0==0xC0) { @@ -663,62 +663,62 @@ move_done: } if (i==cnt1) { move_redundant: - tempi->ic_cnt=last_start; + tmpi->ic_cnt=last_start; } } } } } - if (tempi->ic_cnt>last_start>tempi->ic_last_start) - tempi->ic_last_start=last_start; - BEqu(&tempi->ic_flags,ICf_LOCK,old_lock); + if (tmpi->ic_cnt>last_start>tmpi->ic_last_start) + tmpi->ic_last_start=last_start; + BEqu(&tmpi->ic_flags,ICf_LOCK,old_lock); } -U0 ICLea(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, +U0 ICLea(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1, CICType t2,I64 r2,I64 d2,CCmpCtrl *cc,U8 *buf,I64 ip) { I64 i; - CAOTAbsAddr *tempa; + CAOTAbsAddr *tmpa; switch (Bsr(t1)) { case MDf_REG: i=ICModr1(r1,t2,r2,d2); i.u8[1]|=0x48; - ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); - ICModr2(tempi,i,d2,ip+4); + ICU24(tmpi,i.u8[2]<<16+0x8D00+i.u8[1]); + ICModr2(tmpi,i,d2,ip+4); break; case MDf_STK: if (t2&MDF_RIP_DISP32) { - ICU8(tempi,0x68); - ICU32(tempi,d2); + ICU8(tmpi,0x68); + ICU32(tmpi,d2); if (cc->flags&CCF_AOT_COMPILE && buf && !(cc->flags&CCF_NO_ABSS)) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=cc->aotc->abss; - tempa->type=AAT_ADD_U32; - cc->aotc->abss=tempa; - tempa->ip=ip+tempi->ic_cnt-4; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=cc->aotc->abss; + tmpa->type=AAT_ADD_U32; + cc->aotc->abss=tmpa; + tmpa->ip=ip+tmpi->ic_cnt-4; } - tempi->ic_flags&=~ICF_CODE_FINAL; + tmpi->ic_flags&=~ICF_CODE_FINAL; break; } // Fall thru default: - ICLea(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,cc,buf,ip); - ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RCX,0,ip); + ICLea(tmpi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,cc,buf,ip); + ICMov(tmpi,t1,r1,d1,MDF_REG+RT_I64,REG_RCX,0,ip); } } -U0 ICDeref(CIntermediateCode *tempi,I64 ip) +U0 ICDeref(CIntermediateCode *tmpi,I64 ip) { CICType t; - t=tempi->r.type.raw_type; - if (t>tempi->a1_type_pointed_to) - t=tempi->a1_type_pointed_to; - if (tempi->a1.type&MDF_REG) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_DISP+t,tempi->a1.reg,tempi->a1.disp,ip); + t=tmpi->r.type.raw_type; + if (t>tmpi->a1_type_pointed_to) + t=tmpi->a1_type_pointed_to; + if (tmpi->a1.type&MDF_REG) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + MDF_DISP+t,tmpi->a1.reg,tmpi->a1.disp,ip); else { - ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,MDF_REG+RT_I64,REG_RCX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_DISP+t,REG_RCX,0,ip); } } diff --git a/Compiler/CExcept.HC b/Compiler/CExcept.HC index 0ab1c53..6d1c14d 100644 --- a/Compiler/CExcept.HC +++ b/Compiler/CExcept.HC @@ -101,9 +101,9 @@ U0 UndefinedExtern() throw('UndefExt'); } -U0 UnusedExternWarning(CCmpCtrl *cc,CHashClass *tempc) +U0 UnusedExternWarning(CCmpCtrl *cc,CHashClass *tmpc) { - PrintWarn("Unused extern '%s'\n",tempc->str); + PrintWarn("Unused extern '%s'\n",tmpc->str); cc->warning_cnt++; } @@ -181,73 +181,73 @@ U0 ICArgPut(CICArg *a,I64 type_pointed_to) '' CH_SPACE; } -U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) +U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tmpi) { - I64 opcode=tempi->ic_code,i; + I64 opcode=tmpi->ic_code,i; if (opcode>=IC_END_EXP && opcode!=IC_NOP2) { - "%15ts %016X ",intermediate_code_table[opcode].name,tempi->ic_data; + "%15ts %016X ",intermediate_code_table[opcode].name,tmpi->ic_data; if (cc->pass) { - if (tempi->r.type.mode) { + if (tmpi->r.type.mode) { "$$PURPLE$$R:$$FG$$"; - ICArgPut(&tempi->r,0); + ICArgPut(&tmpi->r,0); } - if (tempi->a1.type.mode) { + if (tmpi->a1.type.mode) { "$$PURPLE$$A1:$$FG$$"; - if (intermediate_code_table[tempi->ic_code].type==IST_DEREF || - intermediate_code_table[tempi->ic_code].type==IST_ASSIGN) - ICArgPut(&tempi->a1,tempi->a1_type_pointed_to); + if (intermediate_code_table[tmpi->ic_code].type==IST_DEREF || + intermediate_code_table[tmpi->ic_code].type==IST_ASSIGN) + ICArgPut(&tmpi->a1,tmpi->a1_type_pointed_to); else - ICArgPut(&tempi->a1,0); + ICArgPut(&tmpi->a1,0); } - if (tempi->a2.type.mode) { + if (tmpi->a2.type.mode) { "$$PURPLE$$A2:$$FG$$"; - ICArgPut(&tempi->a2,0); + ICArgPut(&tmpi->a2,0); } "$$PURPLE$$:$$FG$$"; } - ICClassPut(tempi->ic_class); - if (tempi->ic_flags & ICF_LOCK) + ICClassPut(tmpi->ic_class); + if (tmpi->ic_flags & ICF_LOCK) "$$BROWN$$lock$$FG$$ "; - if (tempi->ic_flags & ICF_A2_TO_F64) + if (tmpi->ic_flags & ICF_A2_TO_F64) "$$LTBLUE$$a2d$$FG$$ "; - if (tempi->ic_flags & ICF_A2_TO_INT) + if (tmpi->ic_flags & ICF_A2_TO_INT) "$$GREEN$$a2i$$FG$$ "; - if (tempi->ic_flags & ICF_A1_TO_F64) + if (tmpi->ic_flags & ICF_A1_TO_F64) "$$LTBLUE$$a1d$$FG$$ "; - if (tempi->ic_flags & ICF_A1_TO_INT) + if (tmpi->ic_flags & ICF_A1_TO_INT) "$$GREEN$$a1i$$FG$$ "; - if (tempi->ic_flags & ICF_R_TO_F64) + if (tmpi->ic_flags & ICF_R_TO_F64) "$$LTBLUE$$rd$$FG$$ "; - if (tempi->ic_flags & ICF_R_TO_INT) + if (tmpi->ic_flags & ICF_R_TO_INT) "$$GREEN$$ri$$FG$$ "; - if (tempi->ic_flags & ICF_USE_F64) + if (tmpi->ic_flags & ICF_USE_F64) "[F64] "; - if (tempi->ic_flags & ICF_USE_UNSIGNED) + if (tmpi->ic_flags & ICF_USE_UNSIGNED) "[unsigned] "; - if (tempi->ic_flags & ICF_USE_INT) + if (tmpi->ic_flags & ICF_USE_INT) "[int] "; - if (tempi->ic_flags & ICF_RES_NOT_USED) + if (tmpi->ic_flags & ICF_RES_NOT_USED) "NO_RES "; - if (tempi->ic_flags & ICF_BY_VAL) + if (tmpi->ic_flags & ICF_BY_VAL) "BY_VAL "; - if (tempi->ic_flags & ICF_PUSH_RES) + if (tmpi->ic_flags & ICF_PUSH_RES) "PUSH "; - if (tempi->ic_flags & ICF_PUSH_CMP) + if (tmpi->ic_flags & ICF_PUSH_CMP) "PUSH_CMP "; - if (tempi->ic_flags & ICF_POP_CMP) + if (tmpi->ic_flags & ICF_POP_CMP) "POP_CMP "; - if (tempi->ic_flags & ICF_DEL_PREV_INS) + if (tmpi->ic_flags & ICF_DEL_PREV_INS) "DEL_PREV "; - if (tempi->ic_flags & ICF_PREV_DELETED) + if (tmpi->ic_flags & ICF_PREV_DELETED) "PREV_DEL "; for (i=0;i<3;i++) { - if (Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+i)) + if (Bt(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0+i)) "DONT_PUSH#%d ",i; - if (Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+i)) + if (Bt(&tmpi->ic_flags,ICf_DONT_POP_FLOAT0+i)) "DONT_POP#%d ",i; } - if (tempi->ic_flags & ICF_ALT_TEMPLATE) - "ALT_TEMP "; + if (tmpi->ic_flags & ICF_ALT_TEMPLATE) + "ALT_TMP "; '\n'; } } diff --git a/Compiler/CExts.HC b/Compiler/CExts.HC index 2e53f15..7322bc5 100644 --- a/Compiler/CExts.HC +++ b/Compiler/CExts.HC @@ -8,7 +8,7 @@ import CDocEntry *DocPutLine(CDoc *doc,CDocEntry *doc_e); import I64 DocSize(CDoc *doc); import Bool DocWrite(CDoc *doc,Bool prompt=FALSE); extern U8 *CmdLinePmt(); -extern I64 HashEntrySize2(CHashSrcSym *temph); +extern I64 HashEntrySize2(CHashSrcSym *tmph); extern Bool IsLexExpression2Bin(CCmpCtrl *cc,U8 **_machine_code); extern I64 Lex(CCmpCtrl *cc); extern I64 LexExpression(CCmpCtrl *cc); @@ -24,21 +24,21 @@ extern I64 OptPass789A( extern CHashClass *PrsClass( CCmpCtrl *cc,I64 keyword,I64 fsp_flags,Bool is_extern); extern CHashFun *PrsFunJoin( - CCmpCtrl *cc,CHashClass *temp_return,U8 *name,I64 fsp_flags); + CCmpCtrl *cc,CHashClass *tmp_return,U8 *name,I64 fsp_flags); extern I64 PrsKeyWord(CCmpCtrl *cc); extern Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, CCodeMisc *lb_break=NULL,I64 cmp_flags=CMPF_PRS_SEMICOLON); extern U0 PrsStreamBlk(CCmpCtrl *cc); -extern CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, - I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr, - CHashExport **_tempex,CArrayDim *tempad,I64 fsp_flags); +extern CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, + I64 *_mode,CMemberLst *tmpm,U8 **_ident,CHashFun **_fun_ptr, + CHashExport **_tmpex,CArrayDim *tmpad,I64 fsp_flags); extern I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps, - CMemberLst **_local_var,CArrayDim **_tempad,I64 *unary_post_prec); + CMemberLst **_local_var,CArrayDim **_tmpad,I64 *unary_post_prec); extern I64 PrsUnaryTerm( - CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad, + CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tmpad, I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec); -extern U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc, - CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass); +extern U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tmpc, + CArrayDim *tmpad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass); _extern CMP_TEMPLATES U32 cmp_templates[1]; _extern CMP_TEMPLATES_DONT_POP U32 cmp_templates_dont_pop[1]; _extern CMP_TEMPLATES_DONT_PUSH2 U32 cmp_templates_dont_push2[1]; diff --git a/Compiler/CHash.HC b/Compiler/CHash.HC index b66f5b1..d4dde42 100644 --- a/Compiler/CHash.HC +++ b/Compiler/CHash.HC @@ -1,85 +1,85 @@ -I64 HashEntrySize(CHashSrcSym *temph) +I64 HashEntrySize(CHashSrcSym *tmph) {//Logical size of a std system hash entry. CDbgInfo *dbg_info; CBinFile *bfh; - switch (HashTypeNum(temph)) { + switch (HashTypeNum(tmph)) { case HTt_DEFINE_STR: - return MSize(temph(CHashDefineStr *)->data); + return MSize(tmph(CHashDefineStr *)->data); case HTt_GLBL_VAR: case HTt_CLASS: case HTt_INTERNAL_TYPE: - return temph(CHashClass *)->size; + return tmph(CHashClass *)->size; case HTt_FUN: - if (dbg_info=temph->dbg_info) + if (dbg_info=tmph->dbg_info) return dbg_info->body[dbg_info->max_line+1-dbg_info->min_line] -dbg_info->body[0]; else return -1; case HTt_FILE: - return MSize(temph(CHashGeneric *)->user_data0); + return MSize(tmph(CHashGeneric *)->user_data0); case HTt_MODULE: - if (StrCmp(temph->str,KERNEL_MODULE_NAME)) - return MSize(temph(CHashGeneric *)->user_data0); + if (StrCmp(tmph->str,KERNEL_MODULE_NAME)) + return MSize(tmph(CHashGeneric *)->user_data0); else { bfh=sys_boot_base-sizeof(CBinFile); return bfh->file_size; } case HTt_WORD: - return StrLen(temph->str); + return StrLen(tmph->str); } return -1; } -I64 HashEntrySize2(CHashSrcSym *temph) +I64 HashEntrySize2(CHashSrcSym *tmph) {//Memory size of a std system hash entry. CDbgInfo *dbg_info; - I64 res=MSize2(temph); - if (!(temph->type&HTT_DICT_WORD)) - res+=MSize2(temph->str); - if (temph->type & HTG_SRC_SYM) { - res+=MSize2(temph->src_link); - res+=MSize2(temph->idx); - res+=MSize2(temph->import_name); - res+=LinkedLstSize(temph->ie_lst); - if (temph->type & (HTT_FUN | HTT_EXPORT_SYS_SYM)) - res+=MSize2(temph->dbg_info); - if (temph->type & HTT_CLASS) - res+=MemberLstSize(temph); - else if (temph->type & HTT_FUN) { - res+=MemberLstSize(temph); - if (dbg_info=temph->dbg_info) + I64 res=MSize2(tmph); + if (!(tmph->type&HTT_DICT_WORD)) + res+=MSize2(tmph->str); + if (tmph->type & HTG_SRC_SYM) { + res+=MSize2(tmph->src_link); + res+=MSize2(tmph->idx); + res+=MSize2(tmph->import_name); + res+=LinkedLstSize(tmph->ie_lst); + if (tmph->type & (HTT_FUN | HTT_EXPORT_SYS_SYM)) + res+=MSize2(tmph->dbg_info); + if (tmph->type & HTT_CLASS) + res+=MemberLstSize(tmph); + else if (tmph->type & HTT_FUN) { + res+=MemberLstSize(tmph); + if (dbg_info=tmph->dbg_info) //This should be $LK,"MSize",A="MN:MSize"$() but it would crash on AOT .BIN.Z file funs. res+=dbg_info->body[dbg_info->max_line+1-dbg_info->min_line] -dbg_info->body[0]; - } else if (temph->type&HTT_DEFINE_STR) - res+=MSize2(temph(CHashDefineStr *)->data); - else if (temph->type & HTT_GLBL_VAR) { - res+=LinkedLstSize(temph(CHashGlblVar *)->dim.next); - if (!(temph(CHashGlblVar *)->flags&GVF_ALIAS)) - res+=MSize2(temph(CHashGlblVar *)->data_addr); - if (temph(CHashGlblVar *)->fun_ptr) - res+=HashEntrySize2(temph(CHashGlblVar *)->fun_ptr - -temph(CHashGlblVar *)->fun_ptr->ptr_stars_cnt); + } else if (tmph->type&HTT_DEFINE_STR) + res+=MSize2(tmph(CHashDefineStr *)->data); + else if (tmph->type & HTT_GLBL_VAR) { + res+=LinkedLstSize(tmph(CHashGlblVar *)->dim.next); + if (!(tmph(CHashGlblVar *)->flags&GVF_ALIAS)) + res+=MSize2(tmph(CHashGlblVar *)->data_addr); + if (tmph(CHashGlblVar *)->fun_ptr) + res+=HashEntrySize2(tmph(CHashGlblVar *)->fun_ptr + -tmph(CHashGlblVar *)->fun_ptr->ptr_stars_cnt); } - } else if (temph->type & HTT_FILE) - res+=MSize2(temph(CHashGeneric *)->user_data0); - else if (temph->type & HTT_MODULE && - StrCmp(temph->str,KERNEL_MODULE_NAME)) - res+=MSize2(temph(CHashGeneric *)->user_data0); + } else if (tmph->type & HTT_FILE) + res+=MSize2(tmph(CHashGeneric *)->user_data0); + else if (tmph->type & HTT_MODULE && + StrCmp(tmph->str,KERNEL_MODULE_NAME)) + res+=MSize2(tmph(CHashGeneric *)->user_data0); return res; } I64 HashTableSize2(CHashTable *table) {//Memory size of std system hash table and all entries. I64 i,res=0; - CHashSrcSym *temph; + CHashSrcSym *tmph; if (!table) return 0; for (i=0;i<=table->mask;i++) { - temph=table->body[i]; - while (temph) { - res+=HashEntrySize2(temph); - temph=temph->next; + tmph=table->body[i]; + while (tmph) { + res+=HashEntrySize2(tmph); + tmph=tmph->next; } } res+=MSize2(table->body); @@ -89,23 +89,23 @@ I64 HashTableSize2(CHashTable *table) U0 MapFileWrite(CHashTable *h,U8 *map_name,U8 drv_let) { - CHashSrcSym *temph; + CHashSrcSym *tmph; I64 i,size; U8 *src_link; CDoc *doc; - CDocBin *tempb; + CDocBin *tmpb; CDbgInfo *dbg_info; doc=DocNew(map_name); doc->flags|=DOCF_NO_CURSOR; for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->src_link && !(temph->type & (HTF_IMPORT | HTF_PRIVATE))) { - src_link=StrNew(temph->src_link); + tmph=h->body[i]; + while (tmph) { + if (tmph->src_link && !(tmph->type & (HTF_IMPORT | HTF_PRIVATE))) { + src_link=StrNew(tmph->src_link); if (drv_let && StrLen(src_link)>=4) src_link[3]=drv_let; - if (dbg_info=temph->dbg_info) { + if (dbg_info=tmph->dbg_info) { size=offset(CDbgInfo.body)+ sizeof(U32)*(dbg_info->max_line+2-dbg_info->min_line); if (size>MSize(dbg_info)) { @@ -113,26 +113,26 @@ U0 MapFileWrite(CHashTable *h,U8 *map_name,U8 drv_let) dbg_info=NULL; } else { if (dbg_info->min_line<=dbg_info->max_line) { - tempb=CAlloc(sizeof(CDocBin)); - tempb->size=size; - tempb->data=MAlloc(size); - MemCpy(tempb->data,dbg_info,size); - tempb->num=doc->cur_bin_num++; - tempb->use_cnt=1; - QueIns(tempb,doc->bin_head.last); + tmpb=CAlloc(sizeof(CDocBin)); + tmpb->size=size; + tmpb->data=MAlloc(size); + MemCpy(tmpb->data,dbg_info,size); + tmpb->num=doc->cur_bin_num++; + tmpb->use_cnt=1; + QueIns(tmpb,doc->bin_head.last); } else dbg_info=NULL; } } if (dbg_info) DocPrint(doc,"$$LK,\"%s\",A=\"%s\",BI=%d$$\n", - temph->str,src_link,tempb->num); + tmph->str,src_link,tmpb->num); else - DocPrint(doc,"$$LK,\"%s\",A=\"%s\"$$\n",temph->str,src_link); + DocPrint(doc,"$$LK,\"%s\",A=\"%s\"$$\n",tmph->str,src_link); Free(src_link); } - temph=temph->next; + tmph=tmph->next; } } DocBinsValidate(doc); diff --git a/Compiler/CMain.HC b/Compiler/CMain.HC index bc3cf7c..f05fe24 100644 --- a/Compiler/CMain.HC +++ b/Compiler/CMain.HC @@ -1,7 +1,7 @@ U8 *LexStmt2Bin(CCmpCtrl *cc,I64 *_type,I64 cmp_flags=0) {//Compile one cc stmt to bin code. I64 size,i,j,k,*res=INVALID_PTR; - CCodeCtrl *tempcbh; + CCodeCtrl *tmpcbh; if (_type) *_type=RT_I64; Btr(&cc->flags,CCf_PASS_TRACE_PRESENT); if (cc->aot_depth==2) @@ -26,8 +26,8 @@ U8 *LexStmt2Bin(CCmpCtrl *cc,I64 *_type,I64 cmp_flags=0) } else //TODO: too dangerous to del Misc? QueDel(&cc->coc.coc_head.next); if (cc->aot_depth==2) { - tempcbh=COCPopNoFree(cc); - COCAppend(cc,tempcbh); + tmpcbh=COCPopNoFree(cc); + COCAppend(cc,tmpcbh); } return res; } @@ -37,8 +37,8 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) CAOTCtrl *aotc,*old_aot=cc->aotc; I64 i,j,l; U8 *buf; - CAOTBinBlk *tempbin; - CAOTImportExport *tempie; + CAOTBinBlk *tmpbin; + CAOTImportExport *tmpie; Bool okay=TRUE; CLexHashTableContext *htc=MAlloc(sizeof(CLexHashTableContext)); CAOT *res=CAlloc(sizeof(CAOT)),*parent; @@ -83,10 +83,10 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) while (cc->token!=TK_EOF) { buf=LexStmt2Bin(cc,NULL,cmp_flags); if (buf!=INVALID_PTR) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_MAIN; - tempie->ip=buf; - QueIns(tempie,res->last_ie); + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_MAIN; + tmpie->ip=buf; + QueIns(tmpie,res->last_ie); } if (cmp_flags&CMPF_ASM_BLK) break; @@ -126,17 +126,17 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) res->buf=aotc->module_org; } res->aot_U8s=aotc->num_bin_U8s; - tempbin=aotc->bin; + tmpbin=aotc->bin; j=0; l=aotc->num_bin_U8s; - while (tempbin) { + while (tmpbin) { i=l; if (i>AOT_BIN_BLK_SIZE) i=AOT_BIN_BLK_SIZE; - MemCpy(res->buf+j,tempbin->body,i); + MemCpy(res->buf+j,tmpbin->body,i); j+=i; l-=i; - tempbin=tempbin->next; + tmpbin=tmpbin->next; } } LinkedLstDel(aotc->bin); @@ -171,20 +171,20 @@ CAOT *CmpBuf(U8 *buf,U8 *map_name=NULL, return res; } -U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot) +U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tmpaot) { - I64 i,ip2=tempaot->buf+tempaot->ip,*str=NULL; + I64 i,ip2=tmpaot->buf+tmpaot->ip,*str=NULL; U8 *ptr; CCodeMisc *g_lb; - CAOTAbsAddr *tempa,*tempa1; - CAOTImportExport *tempie,*tempie1; - CHashExport *tempex; + CAOTAbsAddr *tmpa,*tmpa1; + CAOTImportExport *tmpie,*tmpie1; + CHashExport *tmpex; - tempa=tempaot->abss; - while (tempa) { - tempa1=tempa->next; - ptr=ip2+tempa->ip; - switch [tempa->type] { + tmpa=tmpaot->abss; + while (tmpa) { + tmpa1=tmpa->next; + ptr=ip2+tmpa->ip; + switch [tmpa->type] { case AAT_ADD_U8: *ptr(U8 *) +=ip2; break; case AAT_SUB_U8: *ptr(U8 *) -=ip2; break; case AAT_ADD_U16: *ptr(U16 *)+=ip2; break; @@ -194,63 +194,63 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot) case AAT_ADD_U64: *ptr(I64 *)+=ip2; break; case AAT_SUB_U64: *ptr(I64 *)-=ip2; break; } - Free(tempa); - tempa=tempa1; + Free(tmpa); + tmpa=tmpa1; } - tempie=tempaot->next_ie; - while (tempie!=&tempaot->next_ie) { - tempie1=tempie->next; - if (tempie->str) { + tmpie=tmpaot->next_ie; + while (tmpie!=&tmpaot->next_ie) { + tmpie1=tmpie->next; + if (tmpie->str) { Free(str); - str=tempie->str; + str=tmpie->str; } - switch (tempie->type) { + switch (tmpie->type) { case IET_REL32_EXPORT: case IET_IMM32_EXPORT: case IET_REL64_EXPORT: case IET_IMM64_EXPORT: - tempex=CAlloc(sizeof(CHashExport)); - tempex->str=str; + tmpex=CAlloc(sizeof(CHashExport)); + tmpex->str=str; str=NULL; - tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM; - if (tempie->type==IET_IMM32_EXPORT||tempie->type==IET_IMM64_EXPORT) - tempex->val=tempie->ip; + tmpex->type=HTT_EXPORT_SYS_SYM|HTF_IMM; + if (tmpie->type==IET_IMM32_EXPORT||tmpie->type==IET_IMM64_EXPORT) + tmpex->val=tmpie->ip; else - tempex->val=tempie->ip+ip2; - tempex->src_link=tempie->src_link; - tempie->src_link=NULL; - HashAdd(tempex,Fs->hash_table); - SysSymImportsResolve(tempex->str); + tmpex->val=tmpie->ip+ip2; + tmpex->src_link=tmpie->src_link; + tmpie->src_link=NULL; + HashAdd(tmpex,Fs->hash_table); + SysSymImportsResolve(tmpex->str); break; case IET_REL_I0...IET_IMM_I64: - if (tempie->str) { - if (tempie->flags&IEF_GOTO_LABEL) { + if (tmpie->str) { + if (tmpie->flags&IEF_GOTO_LABEL) { if(!(g_lb=COCGoToLabelFind(cc,str))) "Unresolved Reference:%s\n",str; else { g_lb->use_cnt++; g_lb=OptLabelFwd(g_lb); - i=g_lb->addr+tempaot->buf; + i=g_lb->addr+tmpaot->buf; } - tempex=NULL; + tmpex=NULL; } else { - if (!(tempex=HashFind(str,Fs->hash_table, + if (!(tmpex=HashFind(str,Fs->hash_table, HTG_ALL-HTT_IMPORT_SYS_SYM))) "Unresolved Reference:%s\n",str; else { - if (tempex->type & HTT_FUN) - i=tempex(CHashFun *)->exe_addr; - else if (tempex->type & HTT_GLBL_VAR) - i=tempex(CHashGlblVar *)->data_addr; + if (tmpex->type & HTT_FUN) + i=tmpex(CHashFun *)->exe_addr; + else if (tmpex->type & HTT_GLBL_VAR) + i=tmpex(CHashGlblVar *)->data_addr; else - i=tempex->val; + i=tmpex->val; } g_lb=NULL; } } - if (tempex || g_lb) { - ptr=tempie->ip+ip2; - switch [tempie->type] { + if (tmpex || g_lb) { + ptr=tmpie->ip+ip2; + switch [tmpie->type] { case IET_REL_I0: case IET_IMM_U0: break; @@ -288,32 +288,32 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot) } break; } - Free(tempie->src_link); - Free(tempie); - tempie=tempie1; + Free(tmpie->src_link); + Free(tmpie); + tmpie=tmpie1; } Free(str); if (!cc->aot_depth && Bt(&cc->opts,OPTf_TRACE)) - Un(ip2,tempaot->aot_U8s,64); - QueRem(tempaot); - Free(tempaot); + Un(ip2,tmpaot->aot_U8s,64); + QueRem(tmpaot); + Free(tmpaot); } -U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) +U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tmpaot) { CAOTCtrl *aotc=cc->aotc; - I64 i,ip2=tempaot->ip+cc->aotc->ip; + I64 i,ip2=tmpaot->ip+cc->aotc->ip; U8 *ptr; CCodeMisc *g_lb=NULL; - CAOTAbsAddr *tempa,*tempa1; - CAOTImportExport *tempie,*tempie1; + CAOTAbsAddr *tmpa,*tmpa1; + CAOTImportExport *tmpie,*tmpie1; - tempa=tempaot->abss; - while (tempa) { - tempa1=tempa->next; - tempa->next=aotc->abss; - ptr=tempaot->buf+tempaot->ip+tempa->ip; - switch [tempa->type] { + tmpa=tmpaot->abss; + while (tmpa) { + tmpa1=tmpa->next; + tmpa->next=aotc->abss; + ptr=tmpaot->buf+tmpaot->ip+tmpa->ip; + switch [tmpa->type] { case AAT_ADD_U8: *ptr(U8 *)+=ip2; break; case AAT_SUB_U8: *ptr(U8 *)-=ip2; break; case AAT_ADD_U16: *ptr(U16 *)+=ip2; break; @@ -323,20 +323,20 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) case AAT_ADD_U64: *ptr(I64 *)+=ip2; break; case AAT_SUB_U64: *ptr(I64 *)-=ip2; break; } - aotc->abss=tempa; - tempa->ip+=ip2; - tempa=tempa1; + aotc->abss=tmpa; + tmpa->ip+=ip2; + tmpa=tmpa1; } - tempie=tempaot->next_ie; - while (tempie!=&tempaot->next_ie) { - tempie1=tempie->next; - QueRem(tempie); - if (IET_REL_I0<=tempie->type<=IET_IMM_I64) { - if (tempie->str) { - if (tempie->flags&IEF_GOTO_LABEL) { - if(!(g_lb=COCGoToLabelFind(cc,tempie->str))) - "Unresolved Reference:%s\n",tempie->str; + tmpie=tmpaot->next_ie; + while (tmpie!=&tmpaot->next_ie) { + tmpie1=tmpie->next; + QueRem(tmpie); + if (IET_REL_I0<=tmpie->type<=IET_IMM_I64) { + if (tmpie->str) { + if (tmpie->flags&IEF_GOTO_LABEL) { + if(!(g_lb=COCGoToLabelFind(cc,tmpie->str))) + "Unresolved Reference:%s\n",tmpie->str; else { g_lb->use_cnt++; g_lb=OptLabelFwd(g_lb); @@ -347,10 +347,10 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) } else g_lb=NULL; - ptr=tempaot->buf+tempaot->ip+tempie->ip; + ptr=tmpaot->buf+tmpaot->ip+tmpie->ip; if (g_lb) { - i=g_lb->addr+tempaot->buf; - switch [tempie->type] { + i=g_lb->addr+tmpaot->buf; + switch [tmpie->type] { case IET_REL_I0: case IET_IMM_U0: break; @@ -385,10 +385,10 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) *ptr(I64 *)=i; break; } - Free(tempie->src_link); - Free(tempie); + Free(tmpie->src_link); + Free(tmpie); } else { - switch (tempie->type) { + switch (tmpie->type) { start: case IET_REL32_EXPORT: case IET_IMM32_EXPORT: @@ -406,13 +406,13 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) case IET_REL_I32: *ptr(U32 *)-=ip2; break; case IET_REL_I64: *ptr(I64 *)-=ip2; break; end: - tempie->ip+=ip2; + tmpie->ip+=ip2; break; } - tempie->aot=NULL; - QueIns(tempie,tempaot->parent_aot->last_ie); + tmpie->aot=NULL; + QueIns(tmpie,tmpaot->parent_aot->last_ie); } - tempie=tempie1; + tmpie=tmpie1; } } @@ -420,115 +420,115 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) {//AOT Compile HC or PRJ file a and output BIN file. Returns err_cnt. U8 *ptr,*fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL, *patch_table=MAlloc(0x20000); - CAOT *tempaot; + CAOT *tmpaot; I64 i,cnt,size=0,error_cnt=0,warning_cnt=0,aot_U8s=0; CBinFile *bfh; - CAOTImportExport *tempie,*tempie1; - CAOTAbsAddr *tempa,*tempa1; - CAOTHeapGlblRef *temphgr,*temphgr1; - CAOTHeapGlbl *temphg,*temphg1; + CAOTImportExport *tmpie,*tmpie1; + CAOTAbsAddr *tmpa,*tmpa1; + CAOTHeapGlblRef *tmphgr,*tmphgr1; + CAOTHeapGlbl *tmphg,*tmphg1; fbuf=DftExt(filename,"PRJ.Z"); fbuf2=MStrPrint("#include \"%s\"",fbuf); if (map_name) fbuf3=DftExt(map_name,"MAP.Z"); - if (tempaot=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv_let)) { - aot_U8s=tempaot->aot_U8s; + if (tmpaot=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv_let)) { + aot_U8s=tmpaot->aot_U8s; ptr=patch_table; //See $LK,"Load",A="MN:Load"$() cnt=0; - tempa=tempaot->abss; - while (tempa) { - if (!(tempa->type&IEF_IMM_NOT_REL)) + tmpa=tmpaot->abss; + while (tmpa) { + if (!(tmpa->type&IEF_IMM_NOT_REL)) cnt++; - tempa=tempa->next; + tmpa=tmpa->next; } if (cnt) { *ptr++=IET_ABS_ADDR; *ptr(U32 *)++=cnt; *ptr++=0; - tempa=tempaot->abss; - while (tempa) { - tempa1=tempa->next; - if (!(tempa->type&IEF_IMM_NOT_REL)) - *ptr(U32 *)++ =tempa->ip; - Free(tempa); - tempa=tempa1; + tmpa=tmpaot->abss; + while (tmpa) { + tmpa1=tmpa->next; + if (!(tmpa->type&IEF_IMM_NOT_REL)) + *ptr(U32 *)++ =tmpa->ip; + Free(tmpa); + tmpa=tmpa1; } } - temphg=tempaot->heap_glbls; - while (temphg) { - temphg1=temphg->next; + tmphg=tmpaot->heap_glbls; + while (tmphg) { + tmphg1=tmphg->next; cnt=0; - temphgr=temphg->references; - while (temphgr) { + tmphgr=tmphg->references; + while (tmphgr) { cnt++; - temphgr=temphgr->next; + tmphgr=tmphgr->next; } if (cnt) { *ptr++=IET_DATA_HEAP; *ptr(U32 *)++=cnt; - if (temphg->str) { - i=StrLen(temphg->str); - MemCpy(ptr,temphg->str,i+1); - Free(temphg->str); + if (tmphg->str) { + i=StrLen(tmphg->str); + MemCpy(ptr,tmphg->str,i+1); + Free(tmphg->str); ptr+=i+1; } else *ptr++=0; - *ptr(I64 *)++=temphg->size; - temphgr=temphg->references; - while (temphgr) { - temphgr1=temphgr->next; - *ptr(U32 *)++=temphgr->ip; - Free(temphgr); - temphgr=temphgr1; + *ptr(I64 *)++=tmphg->size; + tmphgr=tmphg->references; + while (tmphgr) { + tmphgr1=tmphgr->next; + *ptr(U32 *)++=tmphgr->ip; + Free(tmphgr); + tmphgr=tmphgr1; } } - Free(temphg); - temphg=temphg1; + Free(tmphg); + tmphg=tmphg1; } //Do exports first - tempie=tempaot->next_ie; - while (tempie!=&tempaot->next_ie) { - tempie1=tempie->next; - if (!tempie->type || IET_REL32_EXPORT<=tempie->type<=IET_IMM64_EXPORT) { - QueRem(tempie); - *ptr++=tempie->type; - *ptr(U32 *)++=tempie->ip; - if (tempie->str) { - i=StrLen(tempie->str); - MemCpy(ptr,tempie->str,i+1); - Free(tempie->str); + tmpie=tmpaot->next_ie; + while (tmpie!=&tmpaot->next_ie) { + tmpie1=tmpie->next; + if (!tmpie->type || IET_REL32_EXPORT<=tmpie->type<=IET_IMM64_EXPORT) { + QueRem(tmpie); + *ptr++=tmpie->type; + *ptr(U32 *)++=tmpie->ip; + if (tmpie->str) { + i=StrLen(tmpie->str); + MemCpy(ptr,tmpie->str,i+1); + Free(tmpie->str); ptr+=i+1; } else *ptr++=0; - Free(tempie->src_link); - Free(tempie); + Free(tmpie->src_link); + Free(tmpie); } - tempie=tempie1; + tmpie=tmpie1; } //Do imports second - tempie=tempaot->next_ie; - while (tempie!=&tempaot->next_ie) { - tempie1=tempie->next; - QueRem(tempie); - *ptr++=tempie->type; - if (tempie->aot) - tempie->ip+=tempie->aot->ip2; - *ptr(U32 *)++=tempie->ip; - if (tempie->str) { - i=StrLen(tempie->str); - MemCpy(ptr,tempie->str,i+1); - Free(tempie->str); + tmpie=tmpaot->next_ie; + while (tmpie!=&tmpaot->next_ie) { + tmpie1=tmpie->next; + QueRem(tmpie); + *ptr++=tmpie->type; + if (tmpie->aot) + tmpie->ip+=tmpie->aot->ip2; + *ptr(U32 *)++=tmpie->ip; + if (tmpie->str) { + i=StrLen(tmpie->str); + MemCpy(ptr,tmpie->str,i+1); + Free(tmpie->str); ptr+=i+1; } else *ptr++=0; - Free(tempie->src_link); - Free(tempie); - tempie=tempie1; + Free(tmpie->src_link); + Free(tmpie); + tmpie=tmpie1; } *ptr++=IET_END; @@ -541,11 +541,11 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) #assert sizeof(CBinFile)-2<=MAX_I8 bfh->reserved=0; bfh->bin_signature=BIN_SIGNATURE_VAL; - bfh->module_org=tempaot->module_org; - bfh->module_align_bits=tempaot->max_align_bits; + bfh->module_org=tmpaot->module_org; + bfh->module_align_bits=tmpaot->max_align_bits; bfh->patch_table_offset=sizeof(CBinFile)+aot_U8s; bfh->file_size=size; - MemCpy(bfh(U8 *)+sizeof(CBinFile),tempaot->buf,aot_U8s); + MemCpy(bfh(U8 *)+sizeof(CBinFile),tmpaot->buf,aot_U8s); MemCpy(bfh(U8 *)+sizeof(CBinFile)+aot_U8s,patch_table, size-aot_U8s-sizeof(CBinFile)); Free(fbuf2); @@ -555,9 +555,9 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) fbuf2=ChgExt(fbuf,"BIN.Z"); FileWrite(fbuf2,bfh,size); Free(bfh); - Free(tempaot->buf); - QueDel(tempaot); - Free(tempaot); + Free(tmpaot->buf); + QueDel(tmpaot); + Free(tmpaot); } Free(patch_table); Free(fbuf); @@ -575,7 +575,7 @@ I64 ExePutS(U8 *buf,U8 *filename=NULL, Bool okay=TRUE; CCmpCtrl *cc; if (!filename) - filename=blkdev.temp_filename; + filename=blkdev.tmp_filename; cc=CmpCtrlNew(buf,ccf_flags|CCF_DONT_FREE_BUF,filename); if (Fs->last_cc!=&Fs->next_cc) { cc->opts=Fs->last_cc->opts; @@ -633,7 +633,7 @@ I64 ExePutS2(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0) I64 res; CCmpCtrl *cc; if (!filename) - filename=blkdev.temp_filename; + filename=blkdev.tmp_filename; cc=CmpCtrlNew(buf,ccf_flags|CCF_DONT_FREE_BUF,filename); if (Fs->last_cc!=&Fs->next_cc) cc->opts=Fs->last_cc->opts; diff --git a/Compiler/CMisc.HC b/Compiler/CMisc.HC index 0e2b9a2..92e03ee 100644 --- a/Compiler/CMisc.HC +++ b/Compiler/CMisc.HC @@ -69,11 +69,11 @@ U0 StreamPrint(U8 *fmt,...) {//Injects text into the compile stream. Used in #exe{} blocks. U8 *buf=StrPrintJoin(NULL,fmt,argc,argv),*st; CCmpCtrl *cc=Fs->last_cc; - CStreamBlk *tempe=cc->last_stream_blk; - if (tempe!=&cc->next_stream_blk) { - st=MStrPrint("%s%s",tempe->body,buf); - Free(tempe->body); - tempe->body=st; + CStreamBlk *tmpe=cc->last_stream_blk; + if (tmpe!=&cc->next_stream_blk) { + st=MStrPrint("%s%s",tmpe->body,buf); + Free(tmpe->body); + tmpe->body=st; } else PrintErr("No exe{} blk\n"); Free(buf); @@ -140,9 +140,12 @@ U8 *CmdLinePmt() Free(st); } '>'; - if (IsDbg&&IsRaw) + if (IsDbgMode&&IsRaw) RawDr; + + LBts(&Fs->task_flags,TASKf_CMD_LINE_PMT); st=GetStr(,,GSF_SHIFT_ESC_EXIT); + LBtr(&Fs->task_flags,TASKf_CMD_LINE_PMT); i=StrLen(st); res=MAlloc(i+1+2); diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN index 0c89d2e..157f0af 100644 Binary files a/Compiler/Compiler.BIN and b/Compiler/Compiler.BIN differ diff --git a/Compiler/Compiler.MAP b/Compiler/Compiler.MAP index c335306..19b7d69 100644 --- a/Compiler/Compiler.MAP +++ b/Compiler/Compiler.MAP @@ -51,7 +51,7 @@ $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,247"$ $LK,"PrsVarLst",A="FL:::/Compiler/PrsVar.HC.Z,416",BI=42$ -$LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.HC.Z,814",BI=43$ +$LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.HC.Z,813",BI=43$ $LK,"PrsAddOp",A="FL:::/Compiler/PrsExp.HC.Z,15",BI=44$ $LK,"LexWarn",A="FL:::/Compiler/CExcept.HC.Z,65",BI=45$ $LK,"PE_POP_ALL1",A="FL:::/Compiler/PrsExp.HC.Z,12"$ @@ -99,7 +99,7 @@ $LK,"CmpBuf",A="FL:::/Compiler/CMain.HC.Z,157",BI=75$ $LK,"CMP_TEMPLATES_DONT_PUSH_POP",A="FL:::/Compiler/Templates.HC.Z,385"$ $LK,"ICAddEct",A="FL:::/Compiler/BackA.HC.Z,1",BI=76$ $LK,"ICToF64",A="FL:::/Compiler/BackB.HC.Z,283",BI=77$ -$LK,"PrsBinFile",A="FL:::/Compiler/Asm.HC.Z,888",BI=78$ +$LK,"PrsBinFile",A="FL:::/Compiler/Asm.HC.Z,887",BI=78$ $LK,"HashTableSize2",A="FL:::/Compiler/CHash.HC.Z,72",BI=79$ $LK,"HashEntrySize2",A="FL:::/Compiler/CHash.HC.Z,33",BI=80$ $LK,"Ui",A="FL:::/Compiler/UAsm.HC.Z,238",BI=81$ @@ -248,7 +248,7 @@ $LK,"CmpJoin",A="FL:::/Compiler/CMain.HC.Z,35",BI=194$ $LK,"PrsPop2",A="FL:::/Compiler/PrsLib.HC.Z,16",BI=195$ $LK,"CMP_TEMPLATES",A="FL:::/Compiler/Templates.HC.Z,4"$ $LK,"MODR_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.HC.Z,128"$ -$LK,"PrsAsmBlk",A="FL:::/Compiler/Asm.HC.Z,904",BI=196$ +$LK,"PrsAsmBlk",A="FL:::/Compiler/Asm.HC.Z,903",BI=196$ $LK,"PrsAsmArg",A="FL:::/Compiler/Asm.HC.Z,35",BI=197$ $LK,"LexFirstRem",A="FL:::/Compiler/Lex.HC.Z,277",BI=198$ $LK,"MemberClassBaseFind",A="FL:::/Compiler/LexLib.HC.Z,87",BI=199$ @@ -340,91 +340,89 @@ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.HC.Z,381",BI=266$ $LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,322",BI=267$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$ $LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,799",BI=269$ -H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­Ó§c§c½cÅcÐcÜcücÞc ddd;dBdmd{d{d¨dÊdâdÏdñde -e4e;efefeme‘e§e§e§e±eH>Lçþçþÿ ÿÿÿÿÿ2ÿJÿJÿTÿp©Á÷÷!#*068>DZm|�ƒˆ’§½Ðõ(FåFåZå{ååå‡å8åå å$å/å8å?åAåFåd`µþØþØÙ Ù-Ù/Ù<Ù>ÙJÙJÙWÙYÙfÙhÙtÙtÙ�Ù�Ù�٨ٯپÙÉÙÏÙÔÙÖÙâÙéÙøÙÚ ÚÚÚÚLÚrÚ‚Ú’Ú¢Ú¤Ú´ÚÄÚÔÚÔÚÙÚìÚóÚúÚúÚúÚúÚÛÛ#Û)Û/Û5Û9Û9Û9ÛfÛmÛƒÛ�Û•Û›Û¡Û£Û£Û±ÛD¶Ã¶Û¶ÛÌÛÏÛÒÛßÛåÛòÛõÛøÛþÛÜ +H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­ÓÇcÇcÝcåcðcücdþc+d1d1d[dbd�d›d›dÈdêdeïde=e*eTe[e†e†e�e±eÇeÇeÇeÑeH>Lÿÿ!ÿ+ÿ/ÿ3ÿ8ÿ:ÿRÿjÿjÿtÿp©ÁACJPVX^dz�œ¡£¨²ÇÝð'(FåFåZå{ååå‡å8åå å$å/å8å?åAåFåd`µþØþØÙ Ù-Ù/Ù<Ù>ÙJÙJÙWÙYÙfÙhÙtÙtÙ�Ù�Ù�٨ٯپÙÉÙÏÙÔÙÖÙâÙéÙøÙÚ ÚÚÚÚLÚrÚ‚Ú’Ú¢Ú¤Ú´ÚÄÚÔÚÔÚÙÚìÚóÚúÚúÚúÚúÚÛÛ#Û)Û/Û5Û9Û9Û9ÛfÛmÛƒÛ�Û•Û›Û¡Û£Û£Û±ÛD¶Ã¶Û¶ÛÌÛÏÛÒÛßÛåÛòÛõÛøÛþÛÜ Ü ,cj‹‹‹ ‹+‹6‹<‹B‹ - hlfft‰� P z7z7ˆ7—7³7¹7Ë7Ë7Ö7ß7å7ì7ò7 ”;\?L?LGLKLdL~L›L¼LÅLÖLúLMM0M?MHMUM\MŽMŸM£M«M«M¾MÎMÒMÖM Œ×öÞÞþ + hlfft‰� P z7z7ˆ7—7³7¹7Ë7Ë7Ö7ß7å7ì7ò7 ”;\_L_LgLkL„LžL»LÜLåLöLM1M1MPM_MhMuM|M®M¿MÃMËMËMÞMîMòMöM Œ×öÞÞþ $$PfzˆŸ¥±¶Äàéùû     |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# -###!#$#$#.#0 'P‰P‰^‰~‰„‰Š‰Š‰�‰„“°ð¡ð¡¢ ¢¢¢:¢M¢T¢e¢Š¢•¢ ¢¢¢­¢Ò¢Ý¢è¢ê¢ñ¢ú¢ü¢££8£("wáwá†á�á¸á¸á¾á áá&á<áBá ˆx´x´�´¤´»´Ç´Ò´ä´õ´æ´ä´µ0µ<µCµIµUµ_µfµmµqµsµyµ…µ�µ–µ�µ¡µ¡µ«µ°µ»µÍµÞµÏµÍµþµ ¶+¶2¶8¶D¶N¶U¶\¶`¶b¶h¶t¶~¶…¶Œ¶�¶�¶�¶«¶»¶Í¶Þ¶Ï¶Í¶þ¶ ·+·2·8·D·N·U·\·`·b·h·t·~·…·Œ·�·�·š·ª·¼·Í·¾·¼·í·ô·ú·¸¸¸¸"¸$¸*¸6¸@¸G¸N¸R¸R¸\¸j¸s¸Œ¸˜¸œ¸œ¸Ÿ¸¨¸¹Ô „ „<„ -ªD„S„v„�„“„š„«„³„·„º„Ȅ̄ø„ø„ …………#…'…4…4…@…H…L…Y…Y…Y…u…€…‘…‘…–…®…½……ȅӅ؅؅݅õ…† ††† † †-†6†B†J†R†Z†]†c†h†q†ƒ†Œ†�†­†­†²†º††ņˆˆІІІÖ†Ù†à†ë†‡%‡<‡I‡Q‡Y‡e‡q‡w‡~‡‡‡‹‡އš‡ ‡§‡¬‡¬‡º‡ʇʇׇׇ߇ç‡ð‡ÿ‡ˆˆ ˆˆˆ$ˆ*ˆ5ˆ:ˆ:ˆIˆTˆfˆlˆtˆzˆˆŠˆœˆ¢ˆªˆ°ˆµˆµˆɈψÚˆàˆâˆòˆøˆøˆ‰D‰I‰I‰]‰c‰y‰Љ�‰•‰®‰´‰ĉ̉Ô‰Ú‰߉߉ó‰ù‰Š Š&Š+ŠDŠJŠZŠbŠjŠpŠuŠuЋБЧЏоŠÊÒŠØŠéŠñŠùŠÿŠ‹ ‹ ‹!‹'‹=‹N‹T‹V‹e‹k‹u‹}‹…‹‹‹’‹’‹’‹¤‹­‹¾‹΋΋Ó‹Ó‹á‹é‹ú‹ ŒŒŒ"Œ(Œ8Œ>ŒFŒLŒLŒLŒQŒQŒQŒQŒQŒpŒ|Œ�Œ�Œ�Œ™Œ¤Œ­Œ¸ŒÃŒÈŒÈŒÞŒäŒúŒ ���(�.�3�L�j�j�o�o�{�ƒ�†�Œ�’�—�—�»�Ã�Ë�Û�á�ç�ç�ø�ŽŽŽŽ'Ž/Ž2Ž9Ž?ŽDŽDŽdŽlŽ|ނމާ޶޾ŽÖŽÞŽáŽèŽîŽ��&�.�1�8�>�>�>�]�m�y���„�‹�‘�¡�°�¼�×�ß�â�é�ï���.�6�9�@�F�F�F�F�K�K�T�d�z�€�˜�«�±�¶�È�Î�Ó�ï�õ�‘ ‘ ‘‘‘B‘J‘Z‘`‘g‘g‘g‘l‘l‘u‘�‘£‘©‘Á‘Ô‘Ú‘ß‘ -’’#’Z’l’‰’‘’—’œ’œ’¶’’Βْْޒޒø’““““ “ “:“F“R“]“]“b“b“x“~“Š“�“•“§“­“²“Á“͓ٓߓå“ì“ÿ“ -”” ”'”*”0”6”;”O”^”f”~”†”‰”�”•”­”µ”Õ”ï”÷”ú”•••• •,•4•7•>•D•I•[•j•r•Š•’•••œ•¢•º••á•û•–– –––#–,–8–@–C–I–O–T–h–w––™–¡–¤–ª–°–È–Жò–——— —%—%—6—?—K—S—V—]—c—h—z—‰—‘—¬—´—·—¾—Ä—Ü—ä—˜#˜+˜.˜5˜;˜;˜;˜;˜;˜@˜@˜V˜\˜h˜n˜s˜…˜‹˜�˜ž˜ª˜³˜¿˜ǘʘјטܘî˜ý˜™™%™(™/™5™M™U™t™Ž™–™™™ ™¦™¦™¦™·™À™Ì™Ô™×™Þ™ä™û™ -šš1š9š<šCšIšašmš�š¬š´š·š¾šÄšÄšÄšÄšÄšÉšÉšÜš÷šýš› › › ›6›<›G›I›I›\››…›�›�›¢›«›¼›Á›Ó›ã›ã›è›è›û›œœ%œ4œ9œ9œLœbœhœvœ…œŠœŠœ œ¦œÜۜۜ� ���%�4�4�9�9�O�U�r�Š�Š�´�º�¿�Ë�Ô�ã�ã�è�è�þ�ž!ž9ž9žcžižnžzžƒž’ž’ž—ž—ž­ž³žОèžèžŸŸŸ&Ÿ/Ÿ:Ÿ:Ÿ:Ÿ:Ÿ?ŸMŸVŸgŸiŸ{ŸˆŸˆŸˆŸ˜Ÿ¨Ÿ­ŸÑŸÝŸÞŸãŸøŸ % I Y _ _ _ d i ~ ‘ Ï ß å ç ì ý  ¡>¡F¡L¡N¡S¡Z¡Z¡c¡u¡ˆ¡‘¡ ¡ ¡¥¡ª¡¹¡¡Í¡Ï¡Ø¡ã¡ã¡¢ ¢¢¢$¢*¢:¢@¢H¢S¢Y¢Y¢^¢c¢j¢q¢x¢¢ˆ¢—¢—¢—¢œ¢œ¢œ¢®¢³¢³¢Å¢ТØ¢à¢æ¢æ¢æ¢ë¢ë¢ö¢£ -££ £+£2£8£=£=£H£Y£\£h£q£}£„£Š£�£�£�£�£”£™£™£¤£¨£¨£´£½£À£À£Ë£Í£ã£ê£ð£ÿ£ -¤¤¤'¤+¤+¤7¤@¤C¤C¤N¤P¤f¤m¤s¤{¤†¤‘¤—¤¡¤¤¤¨¤¨¤°¤·¤º¤¼¤ǤˤÔ¤פפâ¤ä¤¥ ¥¥ ¥"¥(¥-¥-¥8¥<¥<¥H¥Q¥T¥T¥_¥a¥w¥~¥„¥“¥ž¥©¥¯¥»¥¿¥¿¥Ë¥Ô¥×¥×¥â¥ä¥ú¥¦¦¦¦%¦+¦5¦8¦<¦<¦D¦K¦N¦P¦[¦_¦h¦k¦k¦v¦x¦–¦�¦¨¦³¦¶¦¼¦Á¦Á¦Ó¦צצã¦ì¦ï¦ï¦ú¦ü¦§§ §1§<§G§M§R§R§]§b§b§m§r§r§}§€§„§‹§�§•§š§š§®§³§³§À§ħÕ§ݧá§õ§ü§¨¨ ¨¨!¨'¨7¨;¨L¨^¨i¨m¨m¨z¨‚¨Ѝ�¨�¨�¨�¨�¨’¨’¨ ¨§¨´¨À¨ΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨΨШШç¨ï¨û¨û¨©+©C©E©Q©^©^©�©Ž©™©¢©«©¶©½©½©Ç©Ç©Ê©Ü©ú©ªª3¬xÝ÷R5R5d5f5j5s55‹5 5 5Ï5Ó5Ø5ä5÷566666$6l_vww�œ¡¶£ÅÈÈÕê×ùÿ€1€J€c€|€†€„ž·o·oÕoÝoãoêoñoóoöoýopppp p p4p>p>pFp_p‚p£p¨pÉpÎpÚpåpêpúpýpqqq"q$q*q-q3q8q;qCqLq\qq�q¥qªq®qÓqæqëqùqrrr?rOrrr…rŠr�r•r˜ršr r¦r¬r±r·r¿r¿rÉrÒràrørýrs&s6sYslsqs�s¤s²sÊsÏsÓsøs t t&t&t&t4tLtNtNtNt\tttvtvt„tœtœt®t®t·tÄtÚtútuu'u:u>u>u>uEuKueumuxu“u•u›uµu½uÈuÖuáuáuûuH…“ † †·†Í†Ý†ä†û†‡(‡,‡o‡L�ž—�—�«�¸�Î�º�Ý�ß�ø�‚‚'‚/‚4IR†Ø†Ø�Ø�ؒؠخرضØì=ÇüÇüïüòüý'ý8ý8ýSýYý^ý^ýyýý„ý„ý�ý›ý¸ýÐýÕýÜýâýäýþþþþ#þ%þ%þ8þ>þ>þ>þNþCþ_þoþ�þ†þ†þ†þ�þ”þ›þ°þ·þÓþÓþåþÌL»°¦°¦Ê¦Õ¦à¦é¦ñ¦ô¦û¦ÿ¦§§ §%§3§P§]§l§q§}§‚§‰§•§š§�§§§Ÿ§·§À§Ñ§Ï§Ç§ß§è§î§î§ü§ÿ§¨¨%¨,¨0¨5¨L¨d¨m¨{¨—¨£¨£¨»¨Ì¨Ì¨Ó¨ì¨ø¨©©©.©7©>©B©M©R©Y©v©£©ª©®©°©»©Ç©Ë©à©â©ó©ý©ªª!ª0ªIªIªLªTªYªÛªPw‡×N×NóNOO.OKOfOlOuOƒO‰OŒO˜OŒ  b b°bÔbÔbâbâbâbâbëbëbòb c"c*c*c5c5cCcScScacgcgccc…c«c (kqH‹H‹V‹b‹r‹y‹‹ @KWoëoë}ë…ëŒë«ë¸ë¸ë»ë½ëÃë!$/4 â â,âAâFâLâ"$).ïáïáüáâââ#$#(¿á¿áÎáäáéáïá$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤Cð�ð�ž ž"ž3žEžGžNžTždžožyž„ž›žžž ž²ž¸žÈžÒžÜžãžîžŸ Ÿ Ÿ!Ÿ!Ÿ!Ÿ5Ÿ&$5:OâOâ]ârâwâ}â'¤Di8Ÿ8ŸNŸUŸjŸ{Ÿ�Ÿ�Ÿ–ŸœŸ¬Ÿ·ŸÁŸÌŸãŸæŸèŸúŸ   % , 7 K S S i i i ~ ((&,ò/ò/00000)0]e×M×MíMNNNN N*  ß>%>%`%h%n%{%‚%ž%¤%¤%¤%±%³%¾%È%Ï%Þ%é%ï%ù%ÿ%&&&%&%&7&=&M&S&X&_&_&€&†&˜&«&±&´&º&º&¼&Â&È&Ê&Ê&Ê&Û&å&ê&ê&ÿ& ' ''&','2'H'M'U'k'o'o'w'}'ƒ'�'”'›'¤'¶'¶'Û'ß'å'ë'ý'((( (&(,(,(.(2(8(>(D(I(I(I(I(t(…(…(œ(©(­(µ(Ç(ç(ç(í(ð(ô(ú(ú( ))2)F)N)_)c)t)x)~)—)™)Ÿ)¬)®)º)Ø)Þ)é) ***#*)*2*8*J*[*c*g*x*|*‚*›*�*£*°*²*¾*Ü*â*è*î*÷*ý*+ +4+=+C+C+X+]+]+d+n+ƒ+ˆ+ˆ+ˆ+¥+§+Ä+Æ+ã+é+ñ+õ+ü+ ,%,+,7,N,U,[,f,k,k,r,v,€,Ž,�,˜,�,¥,°,¶,Å,Ê,Ð,Õ,Ý,â,ñ,--%-0-L-N-j-j-q-†-‹-”-¡-¦-¬-±-±-¸-¼-Æ-Ô-Ö-Þ-â-æ-ð-ü-.... .1.?.D.P.P.X.X.{.{.‰.�.”.˜.�.�.�.�.£.¥.¥.È.Î.Ô.Û.ñ.ó.ó.ó.þ.þ.þ./,0+4.w^Ê^ÊxÊ|ʔʜʤʮʲʹʿÊÓÊÛÊàÊãÊîÊùÊË ËËË/Ë6Ë=ËHËSËUË`ËkËmËy˂˂˘ˣ˻ËÁËÊËÛËáËêËüËÌÌ +###!#$#$#.#0 'P‰P‰^‰~‰„‰Š‰Š‰�‰„“°ð¡ð¡¢ ¢¢¢:¢M¢T¢e¢Š¢•¢ ¢¢¢­¢Ò¢Ý¢è¢ê¢ñ¢ú¢ü¢££8£("—á—á¦á½áØáØáÞá 7á7áFá\ábá ˆx´x´�´¤´»´Ç´Ò´ä´õ´æ´ä´µ0µ<µCµIµUµ_µfµmµqµsµyµ…µ�µ–µ�µ¡µ¡µ«µ°µ»µÍµÞµÏµÍµþµ ¶+¶2¶8¶D¶N¶U¶\¶`¶b¶h¶t¶~¶…¶Œ¶�¶�¶�¶«¶»¶Í¶Þ¶Ï¶Í¶þ¶ ·+·2·8·D·N·U·\·`·b·h·t·~·…·Œ·�·�·š·ª·¼·Í·¾·¼·í·ô·ú·¸¸¸¸"¸$¸*¸6¸@¸G¸N¸R¸R¸\¸j¸s¸Œ¸˜¸œ¸œ¸Ÿ¸¨¸¹Ô?„?„\„*ªd„s„–„¡„³„º„˄ӄׄÚ„è„ì„……-…/…/…;…C…G…T…T…`…h…l…y…y…y…•… …±…±…¶…Î…Ý…â…è…ó…ø…ø…ý…†$†)†/†:†?†?†M†V†b†j†r†z†}†ƒ†ˆ†‘†£†¬†½†͆͆Ò†Ú†â†å†ë†ë†ð†ð†ð†ö†ù†‡ ‡ ‡E‡\‡i‡q‡y‡…‡‘‡—‡ž‡§‡«‡®‡º‡À‡LJ̇̇Ú‡ê‡ê‡÷‡÷‡ÿ‡ˆˆ ˆ$ˆ$ˆ+ˆ6ˆ<ˆDˆJˆUˆZˆZˆiˆtˆ†ˆŒˆ”ˆšˆŸˆªˆ¼ˆˆʈЈÕˆÕˆéˆïˆúˆ‰‰‰‰‰=‰d‰i‰i‰}‰ƒ‰™‰ª‰°‰µ‰ΉÔ‰ä‰ì‰ô‰ú‰ÿ‰ÿ‰ŠŠ/Š@ŠFŠKŠdŠjŠzŠ‚ŠŠŠ�ЕЕЫбŠÇŠØŠÞŠãŠòŠøŠ ‹‹‹ ‹&‹+‹+‹A‹G‹]‹n‹t‹v‹…‹‹‹•‹�‹¥‹«‹²‹²‹²‹Ä‹Í‹Þ‹î‹î‹ó‹ó‹Œ ŒŒ-Œ4Œ:ŒBŒHŒXŒ^ŒfŒlŒlŒlŒqŒqŒqŒqŒqŒ�ŒœŒ¡Œ¡Œ°Œ¹ŒÄŒÍŒØŒãŒèŒèŒþŒ��+�1�6�H�N�S�l�Š�Š�����›�£�¦�¬�²�·�·�Û�ã�ë�û�ŽŽŽŽ6Ž6Ž;Ž;ŽGŽOŽRŽYŽ_ŽdŽdŽ„ŽŒŽœŽ¢Ž©ŽÇŽÖŽÞŽöŽþŽ���&�.�F�N�Q�X�^�^�^�}���™�¡�¤�«�±�Á�Ð�Ü�÷�ÿ�� ��'�3�N�V�Y�`�f�f�f�f�k�k�t�„�š� �¸�Ë�Ñ�Ö�è�î�ó�‘‘!‘)‘,‘3‘9‘b‘j‘z‘€‘‡‘‡‘‡‘Œ‘Œ‘•‘­‘ÑÉ‘á‘ô‘ú‘ÿ‘*’0’C’z’Œ’©’±’·’¼’¼’Ö’â’î’ù’ù’þ’þ’“$“0“;“;“@“@“Z“f“r“}“}“‚“‚“˜“ž“ª“°“µ“Ǔ͓ғá“í“ù“ÿ“” ” ”*”3”?”G”J”P”V”[”o”~”†”ž”¦”©”¯”µ”͔Քõ”••• •&•&•7•@•L•T•W•^•d•i•{•Š•’•ª•²•µ•¼••Ú•â•––#–&–-–3–3–C–L–X–`–c–i–o–t–ˆ–—–Ÿ–¹–Á–Ä–Ê–Жè–ð–—.—6—9—?—E—E—V—_—k—s—v—}—ƒ—ˆ—š—©—±—Ì—Ô—×—Þ—ä—ü—˜&˜C˜K˜N˜U˜[˜[˜[˜[˜[˜`˜`˜v˜|˜ˆ˜Ž˜“˜¥˜«˜°˜¾˜ʘÓ˜ߘç˜ê˜ñ˜÷˜ü˜™™%™=™E™H™O™U™m™u™”™®™¶™¹™À™Æ™Æ™Æ™×™à™ì™ô™÷™þ™šš*š6šQšYš\šcšiš�š�š¯šÌšÔšךÞšäšäšäšäšäšéšéšüš››(›-›-›@›V›\›g›i›i›|›Ÿ›¥›°›°››Ë›Ü›á›ó›œœœœœ1œ7œEœTœYœYœlœ‚œˆœ–œ¥œªœªœÀœÆœãœûœûœ%�+�0�<�E�T�T�Y�Y�o�u�’�ª�ª�Ô�Ú�ß�ë�ô�žžžžž$žAžYžYžƒž‰žŽžšž£ž²ž²ž·ž·žÍžÓžðžŸŸ2Ÿ8Ÿ:ŸFŸOŸZŸZŸZŸZŸ_ŸmŸvŸ‡Ÿ‰Ÿ›Ÿ¨Ÿ¨Ÿ¨Ÿ¸ŸÈŸÍŸñŸýŸþŸ  5 E i y    „ ‰ ž ± ï ÿ ¡¡ ¡¡,¡^¡f¡l¡n¡s¡z¡z¡ƒ¡•¡¨¡±¡À¡À¡Å¡Ê¡Ù¡â¡í¡ï¡ø¡¢¢$¢+¢1¢9¢D¢J¢Z¢`¢h¢s¢y¢y¢~¢ƒ¢Š¢‘¢˜¢Ÿ¢¨¢·¢·¢·¢¼¢¼¢¼¢΢Ó¢Ó¢å¢ð¢ø¢££££ £ ££'£*£6£?£K£R£X£]£]£h£y£|£ˆ£‘£�£¤£ª£¯£¯£¯£¯£´£¹£¹£Ä£È£È£Ô£Ý£à£à£ë£í£¤ +¤¤ ¤*¤5¤;¤G¤K¤K¤W¤`¤c¤c¤n¤p¤†¤�¤“¤›¤¦¤±¤·¤Á¤ĤȤȤФפÚ¤ܤç¤ë¤ô¤÷¤÷¤¥¥"¥)¥4¥?¥B¥H¥M¥M¥X¥\¥\¥h¥q¥t¥t¥¥�¥—¥ž¥¤¥³¥¾¥É¥Ï¥Û¥ߥߥë¥ô¥÷¥÷¥¦¦¦!¦'¦/¦:¦E¦K¦U¦X¦\¦\¦d¦k¦n¦p¦{¦¦ˆ¦‹¦‹¦–¦˜¦¶¦½¦ȦÓ¦Ö¦ܦá¦á¦ó¦÷¦÷¦§ §§§§§2§9§?§Q§\§g§m§r§r§}§‚§‚§�§’§’§�§ §¤§«§°§µ§º§º§ΧÓ§Ó§à§ä§õ§ý§¨¨¨ ¨ ¨-¨9¨A¨G¨W¨[¨l¨~¨‰¨�¨�¨š¨¢¨ª¨°¨°¨°¨°¨°¨²¨²¨À¨ǨÔ¨à¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨î¨ð¨ð¨©©©©<©K©c©e©q©~©~©¡©®©¹©©Ë©Ö©Ý©Ý©ç©ç©ê©ü©ª&ª&ªS¬xÝ÷R5R5d5f5j5s55‹5 5 5Ï5Ó5Ø5ä5÷566666$6l_v——­¼ÁÖÃåèèõ +€÷€ €8€Q€j€ƒ€œ€¦€„ž×o×oõoýop +ppppp$p$p5p9p?p?pTp^p^pfpp¢pÃpÈpépîpúpq +qqq1q7q©B©M©R©Y©v©£©ª©®©°©»©Ç©Ë©à©â©ó©ý©ªª!ª0ªIªIªLªTªYªÛªPw‡÷N÷NO$O7ONOkO†OŒO•O£O©O¬O¸OŒ  b b°bÔbÔbâbâbâbâbëbëbòb c"c*c*c5c5cCcScScacgcgccc…c«c (kqH‹H‹V‹b‹r‹y‹‹ @KW�ë�ë�ë¥ë¬ëËëØëØëÛëÝëãë!$/4?â?âLâaâfâlâ"$).âââ1â6â<â#$#(ßáßáîáâ ââ$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤Cð�ð�ž ž"ž3žEžGžNžTždžožyž„ž›žžž ž²ž¸žÈžÒžÜžãžîžŸ Ÿ Ÿ!Ÿ!Ÿ!Ÿ5Ÿ&$5:oâoâ}â’â—â�â'¤Di8Ÿ8ŸNŸUŸjŸ{Ÿ�Ÿ�Ÿ–ŸœŸ¬Ÿ·ŸÁŸÌŸãŸæŸèŸúŸ   % , 7 K S S i i i ~ ((&,ò/ò/00000)0]e÷M÷M N N/N5N8N@N*  ß>%>%`%h%n%{%‚%ž%¤%¤%¤%±%³%¾%È%Ï%Þ%é%ï%ù%ÿ%&&&%&%&7&=&M&S&X&_&_&€&†&˜&«&±&´&º&º&¼&Â&È&Ê&Ê&Ê&Û&å&ê&ê&ÿ& ' ''&','2'H'M'U'k'o'o'w'}'ƒ'�'”'›'¤'¶'¶'Û'ß'å'ë'ý'((( (&(,(,(.(2(8(>(D(I(I(I(I(t(…(…(œ(©(­(µ(Ç(ç(ç(í(ð(ô(ú(ú( ))2)F)N)_)c)t)x)~)—)™)Ÿ)¬)®)º)Ø)Þ)é) ***#*)*2*8*J*[*c*g*x*|*‚*›*�*£*°*²*¾*Ü*â*è*î*÷*ý*+ +4+=+C+C+X+]+]+d+n+ƒ+ˆ+ˆ+ˆ+¥+§+Ä+Æ+ã+é+ñ+õ+ü+ ,%,+,7,N,U,[,f,k,k,r,v,€,Ž,�,˜,�,¥,°,¶,Å,Ê,Ð,Õ,Ý,â,ñ,--%-0-L-N-j-j-q-†-‹-”-¡-¦-¬-±-±-¸-¼-Æ-Ô-Ö-Þ-â-æ-ð-ü-.... .1.?.D.P.P.X.X.{.{.‰.�.”.˜.�.�.�.�.£.¥.¥.È.Î.Ô.Û.ñ.ó.ó.ó.þ.þ.þ./,0+4-v^Ê^ÊxÊ|ʔʜʤʮʲʹʿÊÓÊÛÊàÊãÊîÊùÊË ËËË/Ë6Ë=ËHËSËUË`ËkËmËy˂˂˘ˣ˻ËÁËÊËÛËáËêËüËÌÌ ÌÌÌÌ0Ì;Ì?ÌMÌOÌSÌbÌbÌbÌsÌsÌxÌŠÌ�ÌþÌ,Ô@޿޿¤æ«æ®æÒæÒæïæçç(ç-ç-çKçYçlçç‡ç‡ç‰ç‰ç‰çœçžçžçžç¥ç¸çËçËçËçÞçéçüçèèè"è7èJèQèQèTèyè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ŽÐ‹Ð‹Þ‹ë‹ù‹ ŒŒ$Œ1Œ?ŒQŒ\ŒjŒpŒvŒ/4 -77(747E7W7`7n7t70|ºU~ ~   § µ À æ æ ï ñ ñ ø  & & 5 D ` k k w  � ™ ·  Ä Ý ã î þ   $ ) / 6 ^ c q z z � � § § ¶ ¿ Ó Ú á æ ñ ÷ ÿ %.5:EQ`ty��ŸŸ¶½ÅÕçíöö  $4CUZj}…™·ÎÒÞõ#)4@P`enn€„�§ÃÕÛæò$**/1166EKQQUÎ1ŒÄãÜÜ*Ü6Ü:Ü>ÜEÜLÜ[ÜfÜlÜqÜsÜ܆܎ܔܚܞܞܭܴܼÜÂÜÈÜÊÜÊÜÖÜ28 */*/8/>/J/U/f/p/w/}/3@t€ÏìÏìÝìèìïìíííí í&í4ÌSw w � ° · ¾ Å Ë Í Ô Û Þ Þ ð ð  - -! -) -2 -: -? -E -[ -k -€ -… -ž -¶ -º -º -¿ -È -Ò -æ -î -÷ -ÿ -   - B D ] u y y � • ž ¦ « ± Ç × ì ñ  - " & 9 9 9 > ` ‚ � “ « à È Ó ç ï ø     * ? A Z r v v Š ’ › £ ¨ ¯ Å Õ ê ï  $777<^€‹‘©ÁÁÁÍÓÝèú -!8Offy”””µÅÓÓÜæó "57Ve^}�§§À5D{ˆîîþ!337:B6\Ob`Š`Š€Š�Š˜Š¡Š¥Š©ŠµŠºŠ¿Š¿ŠÐŠÔŠÜŠôŠ÷Š‹70üîäîä÷äüäå ååå8tÚ77Y`grˆˆš³³¾ÂÍúÔ  1EINc{€ˆŒž‘½ÑÕÕÚë3 B`kq…�¢¶¾ÇÏÔÛíý.FJJ_w|„ˆ—жÊÎÝÝÝÝðö55Qaooƒ‘Ÿ´ÇÌëúó"):`Q†ˆ´´´¿ý @ZGi€‘¬ÀÄÉÚü1@^ioƒ› ´¼ÅÍÒÙëû,DHHjƒ—›ªªª½ÃÍÔç.<<P^wlŠ�¢ÁÐÉèø ' ' I I P s s s “ 9Dmz––¦ºÃÉÛÛßâê:lwއ€‡€�€¬€±€Æ€³€Õ€Ø€Ø€å€ú€ç€ ��(�A�Z�s�Œ�–�;<‰”FFVgpvz…<”)>ï>ïFïJïVïgïiïyï„ï–ï¡ï¬ï»ïÌïÓïìïðïðð ðð%ð.ð<ðPðlðqðŽð=d(=�‰�‰œ‰°‰³‰Ç‰Ï‰Ó‰Ý‰ç‰ï‰ò‰ø‰>4u¾8G8G^GaGeGrG{G†G–GžG¨GÐGÐGàGåGåGõGúGúG -HHH H$H$H4H9H9HIHNHNH^HcHcHsHxHxHˆH�H�H�H�H™H²HÀH×HêHìHòHôH÷HI I II#I#I.I>IKIcIkIqIqI…I…IŽI‘IQJ?Ä n7¬7¬T¬\¬_¬m¬{¬�¬™¬´¬ͬ߬ê¬û¬ÿ¬­­ ­(­4­G­x­m­S­ˆ­Ÿ­³­¿­Í­î­®'®;®=®^®D®y®|®�®„®„®‹®¡®¨®µ®º®É®Ö®é®é®¯¯2¯2¯J¯O¯O¯_¯c¯t¯~¯�¯™¯¬¯±¯±¯Á¯ůÖ¯à¯ñ¯û¯°° ° ° °A°R°W°d°y°y°~°ˆ°—°œ°¢°§°§°¬°¶°ŰʰаÕ°Õ°Û°á°æ°æ°î°± ±±&±5±?±E±N±e±y±б—±œ±´±DZÞ±ë±ó±² ²²²$²$²)²)²)²)²)²9²9²9²Q²g²o²в›²¨²ª²·²¼²¼²¼²DzÕ²Ú²Ú²á²ï²ô² ³³*³6³<³D³J³S³y³…³‹³‘³ ³¨³°³ݳî³û³ý³ ´ ´´´´%´*´=´I´U´[´a´j´o´o´o´o´o´‡´Œ´Œ´Œ´Œ´Œ´�´�´�´�´�´�´�´�´�´�´µ´Ë´Ó´î´ÿ´ µµµ+µ0µ0µ0µ9µSµ_µdµ†µ’µ’µ—µ—µ—µ—µ—µ—µ—µ—µ¬µ±µ±µ±µµɵεεٵ뵶¶9¶Z¶e¶v¶{¶{¶{¶„¶ª¶³¶Ķʶë¶· ··"·L·U·[·|·•·•·•·•·•···ð·ù·ÿ·¸ -¸¸¸!¸!¸!¸!¸0¸D¸b¸r¸x¸}¸}¸�¸¤¸ʸݸã¸ã¸è¸è¸÷¸ ¹)¹9¹?¹D¹D¹W¹k¹‘¹¤¹ª¹ª¹¯¹¯¹¯¹ǹݹ幺ºº º/º1º1º1º1º1ºEºEºEºEºEºEºEºEºEºEºEºEºEºEºEºEºTºcºnºpºpºyº{º{º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º�º‘º‘º¨º°º¼º¼ºÀºźÕºñº »»$»:»T»W»a»m»“»³»Ó»÷»ù» ¼:¼¼U¼U¼X¼h¼p¼‹¼œ¼Ÿ¼¹¼ǼÓ¼ë¼ë¼½½(½<½]½q½�½y½©½¾½ܽ¾¾¾ù½ê½ ¾ ¾ ¾"¾'¾*¾D¾R¾€¾¢¾¢¾;оß¾ó¾¿(¿D¿0¿`¿`¿~¿³¿±¿¦¿›¿Œ¿Á¿Á¿Á¿Ä¿É¿É¿пà¿À À`Ã@À„°çÇçÇýÇÈ ÈÈÈ2È2È=ÈNÈUÈbÈnÈ{ÈÈ�È�șȞȦȶÈÄÈÓÈÞÈñÈñÈ É É$ÉPÉPÉdÉfÉfÉpÉxÉxɂɊɊɊɛɛɛɡɩɯɴɴɺÉÂÉÆÉÌÉÑÉÑÉçÉ÷ÉÊÊÊÊÊ"Ê"Ê)Ê?ÊOÊYÊaÊgÊvÊ{ʃʉʉʎʕʠÊÔÊãÊíÊõÊûÊËËËËËËËËËËË&Ë4ËDËJËRËaËfËsË{Ë€Ë€Ë€ËˆË‘ËšË§Ë¯Ë»ËÆËúËÌÌÌ5Ì;Ì@Ì@ÌGÌZÌbÌwÌÌ‡ÌœÌžÌ©Ì±ÌÆÌÆÌÎÌßÌçÌîÌôÌúÌþÌÍ Í0Í<ÍDÍYÍeÍjÍvÍ�Í†Í†Í†ÍœÍ¹Í¾ÍÆÍ×ÍßÍçÍüÍÎ ÎÎ)Î.Î.ÎRÎ^ÎfÎ{·ΌΘΣΨΨΨΨΨΨγγγγγγγγγγγγξÎÍÎÐÎÞÎîÎôÎüÎ ÏÏÏ Ï"Ï*Ï9Ï?ÏGÏOÏQÏYÏvÏχÏ�ϖϪϳϼÏÄÏÎÏØÏàÏîÏóÏøÏ -Ð>ÐFÐUÐ_ÐyÐ�ІІІÐ�ИЛХгÐÅÐÇÐÙÐëÐëÐëÐöÐûÐÑÑÑ&Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ+Ñ6ÑBÑZÑmÑuÑ„Ñ‰Ñ‘Ñ˜Ñ¥Ñ®Ñ·Ñ¿ÑÆÑËÑËÑÓÑÛÑùÑÒÒÒÒ Ò Ò Ò"Ò7ÒHÒKÒNÒVÒ[Ò[ÒdÒiÒqÒxÒ…ÒšÒ¡Ò²Ò¾ÒÛÒôÒ ÓÓ%Ó%Ó*Ó*Ó*Ó*Ó*Ó*Ó*Ó2Ó=ÓIÓXÓ]Ó]ÓeÓmÓzÓÓÓÓƒÓˆÓˆÓ˜Ó�Ó�Ó�Ó©Ó°Ó¶ÓÀÓÅÓÜÓëÓóÓÔ Ô/Ô5Ô<Ô>ÔDÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔKÔMÔMÔhÔrÔ€Ô€Ô…Ô�Ô—Ô³ÔÀÔÀÔÀÔÄÔÏÔíÔûÔñÖAx[÷Ö÷Ö ×××&×-×>×H×O×Y×l×t×t×�שׯ׸׿×Â×Í×Ö×Ý×à×å×ð×ú× ØØ(Ø/Ø7ØMØTØTØTØb؉ؚؒجشششؿØÉØÛØáØ÷ØþØÙ Ù"Ù3Ù3Ù:Ù:Ù:ÙHÙoÙ|Ù…Ù�ٟ٧٧٧ٵٽٽÙÀÙËÙåÙñÙ6ÚBt`¹GÝGÝ_ÝoÝvÝ}݈ݛݞݦݭݰÝÀÝÎÝÙÝäÝçÝòÝÞÞÞ)Þ4Þ;ÞNÞZÞwÞ€ÞˆÞ¨Þ«Þ±Þ¶ÞÅÞËÞÓÞâÞèÞðÞðÞüÞ -ßß!ß0ß8ß[ßaßgßißoßußußußšßŸß¼ß¿ß¿ßÆßÓß×ßâßüßàà+àGà\àdànà�à¡à¡àáC ?CO1O1Y1a1f1DÑÒ¯Z¯ZÐZÛZìZÛZ[[[$[-[4[8[A[A[I[M[m[{[‡[�[˜[¼[¼[Í[Ø[Þ[å[ê[ê[ý[\\$\/\6\@\M\M\_\d\d\r\w\w\ˆ\ˆ\›\ \±\·\À\Õ\é\é\î\î\ü\]]] ]]]]&]-]-]<]B]O]V]^]‚]‚]Š]™]¤]«]­]Á]Ð]Õ]Ú]Ú]Ú]í]ò]^^^&^:^:^?^?^G^]^b^v^}^‚^‚^Ž^�^¯^¾^Ù^ä^þ^_"_1_P_[_`_o_ƒ_Š_‘_¤_¦_´_Ç_É_×_å_õ_ü_``&`7`N`P`\`g`i`i`t`ˆ`•`�`Ÿ`³`Å`Ì`Ý`ë` aa a>a>a>aFaQaUa]aaaiapa€a‹a©a®a·aÂaËaÓaØaØaçaôab bb&b,b2b8bAbGbVbnbvb‚b�b§b©b²b½b¿bËbébïbõbûbcc ->>Lè7O0O0z0}0€0†0‹0¢0¹0Ð0ô01121L1^1k1�1”1™1¤1¬1¬1¶1¶1Á1Æ1Û1á12 2!262<2[2z2‚2�2�2—2—2©2ç2ÿ23M$ ]]B]+]L]T]NLx‡þÌþÌÍ%Í6ÍGÍNÍVÍfÍq͈͂ͺÍOTHYXeXejeleue~eŒe‘eše�e¢e°eºe½eÇeP¨!G°c°cÀcÉcÜcécõcd dd0d0d?dJdSdZdcdzd‘d–d¨d·dÃdÕdÕdÞdeeeee2e>eAeXeQhî„HpHpaplp|pÅpÌpàpçpïp÷pqqqqq"q)q0qOqgqpqpq¥qÏqØqúqr1r[rgr‰r‹r’r™r™r¼rØrÿrsBs^s…s¡sÈsäs t'tNtNt]tjtotot~t‹t�t�t—t¢t´tÌtätütþtþtþtuuuuuu(u6uIu^ušu¡u¡u¡u©uÆuÔuòuûuvv v9vUvUvUvgvuv‘v¯v¯v¯vºv½vìvîvw ww%w'w4w6wCwEwRwRwvwxww�w™w›w©w«w¹w»wÉwÉwéwéwéwéw x=xcxkxoxwx{x‰x—x™x¡x¥x©x±x¿xÍxÍxçxòxyyÜEÜLÜ[ÜfÜlÜqÜsÜ܆܎ܔܚܞܞܭܴܼÜÂÜÈÜÊÜÊÜÖÜ28 */*/8/>/J/U/f/p/w/}/3@t€ïìïìýìíí.í;í;í>í@íFí4ÌS— — ½ Ð × Þ å ë í ô û þ þ  + +" +- +A +I +R +Z +_ +e +{ +‹ +  +¥ +¾ +Ö +Ú +Ú +ß +è +ò +    $ + = M b d } • ™ ™ ­ µ ¾ Æ Ë Ñ ç ÷   * B F Y Y Y ^ € ¢ ­ ³ Ë ã è ó     " ( : J _ a z ’ – – ª ² » à È Ï å õ  +(@DWWW\~ «±Éáááíóý*AXo††™´´´Õåóóü-;BUWv…~�­ÇÇà5D{ˆîîþ!337:B6\Ob`Š`Š€Š�Š˜Š¡Š¥Š©ŠµŠºŠ¿Š¿ŠÐŠÔŠÜŠôŠ÷Š‹70üîäîä÷äüäå ååå8tÚWWy€‡’¨¨ºÓÓÞâíô)@Qeinƒ› ¨¬¾±Ýñõõú S-b€‹‘¥½ÂÖÞçïôû 35Nfjj—œ¤¨·ªÖêîýýýý ':UUq���£±¿Ôçì 2BIZ€q¦¨ÔÔÔß"-3>`zg‰ ±ÌàäéúQ>`~‰�£»ÀÔÜåíòù 13LdhhŠ£·»ÊÊÊÝãíô""">N\\p~—Œª½Âáðé  ) G G i i p “ “ “ ³ 9Dmz––¦ºÃÉÛÛßâê:lwާ€§€½€Ì€Ñ€æ€Ó€õ€ø€ø€���)�/�H�a�z�“�¬�¶�;<‰”FFVgpvz…<”)>ï>ïFïJïVïgïiïyï„ï–ï¡ï¬ï»ïÌïÓïìïðïðð ðð%ð.ð<ðPðlðqðŽð=d(=�‰�‰œ‰°‰³‰Ç‰Ï‰Ó‰Ý‰ç‰ï‰ò‰ø‰>4u¾8G8G^GaGeGrG{G†G–GžG¨GÐGÐGàGåGåGõGúGúG +HHH H$H$H4H9H9HIHNHNH^HcHcHsHxHxHˆH�H�H�H�H™H²HÀH×HêHìHòHôH÷HI I II#I#I.I>IKIcIkIqIqI…I…IŽI‘IQJ?Ä nW¬W¬t¬|¬¬�¬›¬°¬¹¬Ô¬í¬ÿ¬ +­­ ­1­4­?­H­T­g­˜­�­s­¨­¿­Ó­ß­í­®#®G®[®]®~®d®™®œ®¡®¤®¤®«®Á®È®Õ®Ú®é®ö® ¯ ¯!¯%¯R¯R¯j¯o¯o¯¯ƒ¯”¯ž¯¯¯¹¯̯ѯѯá¯å¯ö¯°°°.°:°?°?°?°a°r°w°„°™°™°ž°¨°·°¼°°ǰǰ̰Ö°å°ê°ð°õ°õ°û°±±±±!±-±:±F±U±_±e±n±…±™±ª±·±¼±Ô±ç±þ± ²²"²,²2²;²D²D²I²I²I²I²I²Y²Y²Y²q²‡²�²ª²»²Ȳʲײܲܲܲç²õ²ú²ú²³³³,³8³J³V³\³d³j³s³™³¥³«³±³À³ȳгý³´´´+´+´0´0´7´E´J´]´i´u´{´�´Š´�´�´�´�´�´§´¬´¬´¬´¬´¬´½´½´½´½´½´½´½´½´½´½´Õ´ë´ó´µ µ,µ.µ;µKµPµPµPµYµsµµ„µ¦µ²µ²µ·µ·µ·µ·µ·µ·µ·µ·µ̵ѵѵѵâµéµîµîµùµ ¶#¶8¶Y¶z¶…¶–¶›¶›¶›¶¤¶ʶÓ¶ä¶ê¶ ·$·,·4·B·l·u·{·œ·µ·µ·µ·µ·µ·×·¸¸ ¸%¸*¸3¸<¸A¸A¸A¸A¸P¸d¸‚¸’¸˜¸�¸�¸°¸ĸê¸ý¸¹¹¹¹¹+¹I¹Y¹_¹d¹d¹w¹‹¹±¹ĹʹʹϹϹϹç¹ý¹º º1º>º@ºOºQºQºQºQºQºeºeºeºeºeºeºeºeºeºeºeºeºeºeºeºeºtºƒºŽº�º�º™º›º›º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º¯º±º±ºȺкܺܺàºåºõº»)»8»D»Z»t»w»�»�»³»Ó»ó»¼¼,¼Z¼2¼u¼u¼x¼ˆ¼�¼«¼¼¼¿¼Ù¼ç¼ó¼ ½ ½6½9½H½\½}½‘½­½™½ɽÞ½ü½1¾/¾$¾¾ +¾?¾?¾?¾B¾G¾J¾d¾r¾ ¾¾¾í¾ð¾ÿ¾¿4¿H¿d¿P¿€¿€¿ž¿Ó¿Ñ¿Æ¿»¿¬¿á¿á¿á¿ä¿é¿é¿ð¿À!À-À€Ã@À„°ÈÈÈ!È,È3È>ÈRÈRÈ]ÈnÈuÈ‚ÈŽÈ›ÈŸÈ°È°È¹È¾ÈÆÈÖÈäÈóÈþÈÉÉ)É)ÉDÉpÉpɄɆɆÉ�ɘɘɢɪɪɪɻɻɻÉÁÉÉÉÏÉÔÉÔÉÚÉâÉæÉìÉñÉñÉÊÊ!Ê0Ê5Ê=Ê=ÊBÊBÊIÊ_ÊoÊyÊ�ʇʖʛʣʩʩʮʵÊÀÊôÊË ËËË0Ë6Ë;Ë;Ë;Ë;Ë;Ë;Ë;Ë;Ë;ËFËTËdËjËrË�ˆ˓˛ˠˠˠ˨˱˺ËÇËÏËÛËæËÌ"Ì1Ì;ÌUÌ[Ì`Ì`ÌgÌẑ̧̗̟̼̾ÌÉÌÑÌæÌæÌîÌÿÌÍÍÍÍÍ'Í,ÍPÍ\ÍdÍy͖͊ͦͦͦ͡ͅͼÍÙÍÞÍæÍ÷ÍÿÍÎÎ!Î,Î4ÎIÎNÎNÎrÎ~ΆΛΧάθÎÃÎÈÎÈÎÈÎÈÎÈÎÈÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÓÎÞÎíÎðÎþÎÏÏÏ+Ï0Ï8Ï@ÏBÏJÏYÏ_ÏgÏoÏqÏyϖϟϧϯ϶ÏÊÏÓÏÜÏäÏîÏøÏÐÐÐÐ*Ð^ÐfÐuÐЙСЦЦЦЯилÐÅÐÓÐåÐçÐùÐ Ñ Ñ ÑÑÑ8Ñ=Ñ=ÑFÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑKÑVÑbÑzÑ�ѕѤѩѱѸÑÅÑÎÑ×ÑßÑæÑëÑëÑóÑûÑÒ!Ò$Ò&Ò6Ò@Ò@Ò@ÒBÒWÒhÒkÒnÒvÒ{Ò{Ò„Ò‰Ò‘Ò˜Ò¥ÒºÒÁÒÒÒÞÒûÒÓ)Ó>ÓEÓEÓJÓJÓJÓJÓJÓJÓJÓRÓ]ÓiÓxÓ}Ó}Ó…Ó�ÓšÓŸÓŸÓŸÓ£Ó¨Ó¨Ó¸Ó½Ó½Ó½ÓÉÓÐÓÖÓàÓåÓüÓ ÔÔ$Ô,ÔOÔUÔ\Ô^ÔdÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔkÔmÔmÔˆÔ’Ô Ô Ô¥Ô°Ô·ÔÓÔàÔàÔàÔäÔïÔ ÕÕ×Ax[××-×4×;×F×M×^×h×o×y׌ההׯ×É×Ïר×ß×â×í×ö×ý×ØØØØ,Ø2ØHØOØWØmØtØtØt؂ةزغØÌØÔØÔØÔØߨéØûØÙÙÙ&Ù-ÙBÙSÙSÙZÙZÙZÙhÙ�ٜ٥٭ٿÙÇÙÇÙÇÙÕÙÝÙÝÙàÙëÙÚÚVÚBt`¹gÝgÝÝ�Ý–Ý�Ý¨Ý»Ý¾ÝÆÝÍÝÐÝàÝîÝùÝÞÞÞ(Þ3Þ>ÞIÞTÞ[ÞnÞzÞ—Þ Þ¨ÞÈÞËÞÑÞÖÞåÞëÞóÞßßßßß*ß9ßAßPßXß{ß�߇߉ß�ߕߕߕߺ߿ßÜßßßßßæßóß÷ßàà(à8àKàgà|à„àŽà­àÁàÁà5áC ?CO1O1Y1a1f1DÑÒÏZÏZðZûZ [ûZ&[4[4[D[M[T[X[a[a[i[m[�[›[§[­[¸[Ü[Ü[í[ø[þ[\ +\ +\\(\9\D\O\V\`\m\m\\„\„\’\—\—\¨\¨\»\À\Ñ\×\à\õ\ ] ]]]]!]!]&]-]5]<]>]F]M]M]\]b]o]v]~]¢]¢]ª]¹]Ä]Ë]Í]á]ð]õ]ú]ú]ú] ^^!^(^1^F^Z^Z^_^_^g^}^‚^–^�^¢^¢^®^½^Ï^Þ^ù^__0_B_Q_p_{_€_�_£_ª_±_Ä_Æ_Ô_ç_é_÷_```3`:`F`W`n`p`|`‡`‰`‰`”`¨`µ`½`¿`Ó`å`ì`ý` a-a4a@a^a^a^afaqaua}a�a‰a�a a«aÉaÎa×aâaëaóaøaøabb"b-b8bFbLbRbXbabgbvbŽb–b¢b°bÇbÉbÒbÝbßbëb cccc$c5c\cdcnc|c”c›c§c¶cËcËcØcÝcïcõcõcõcõcÿdEDQ^+8N:]_w�—FœfÉ�U�U±U»UãUòUýUVV V'V0V?VFVOVTViVzV™V¡V£VÂVÊVÙVàVìVñVøVWWWWW4W WCWIWIWQWZWiWˆW�W‘W°W·W·W·WÎW×WãWçWõW XX#X(X9X>XTX@XcXiXpXxX~X€X‘X–X¬X˜X»XÁXÁXÉXÒXÒXÜXÜXôX$Y-Y9Y=YKYaYVYyYyY‹YG ;zŸâŸâ¾âÇâÊâÜâòâôâýâã#ãAãPãnã‚ãšã¡ãÇãåãôãä"ä9ä=ä=äAäFäKäUäXäbägä€äƒäƒäƒäƒäˆäŽäªä¸äÄäÍäáäéäòäåå%å.åBåBåQåVåVådåHP‡—_C_C€CmC¢C�C±CÀCÈCÓCÕCàCëCëC DDIPÅÕ7ü7üKüPü_ü_üfü“ü©ü•üÆü¸üÞüæüJŒ¥Ä¯ú¯úâúûû!û%ûGû[û`û`ûgûoûwûŒû˜û©û®û¿ûÓûØûÚûÚûÚûöûüü1üKP�­‡=‡=°=²=À=Æ=á=ð=ÿ=>>'>*>:>Lè7o0o0š0�0 0¦0«0Â0Ù0ð010131R1l1~1‹1¡1´1¹1Ä1Ì1Ì1Ö1Ö1á1æ1û12 2?2A2V2\2{2š2¢2­2­2·2·2É23 313M$ 7]7]b]K]l]t]NLw†þÌþÌÍ%Í6ÍGÍNÍVÍfÍq͈͂ͺÍOTHYXeXejeleue~eŒe‘eše�e¢e°eºe½eÇeP¨!G°c°cÀcÉcÜcécõcd dd0d0d?dJdSdZdcdzd‘d–d¨d·dÃdÕdÕdÞdeeeee2e>eAeXeQhî„HpHpaplp|pÅpÌpàpçpïp÷pqqqqq"q)q0qOqgqpqpq¥qÏqØqúqr1r[rgr‰r‹r’r™r™r¼rØrÿrsBs^s…s¡sÈsäs t'tNtNt]tjtotot~t‹t�t�t—t¢t´tÌtätütþtþtþtuuuuuu(u6uIu^ušu¡u¡u¡u©uÆuÔuòuûuvv v9vUvUvUvgvuv‘v¯v¯v¯vºv½vìvîvw ww%w'w4w6wCwEwRwRwvwxww�w™w›w©w«w¹w»wÉwÉwéwéwéwéw x=xcxkxoxwx{x‰x—x™x¡x¥x©x±x¿xÍxÍxçxòxyy@@E@fhhpk«««ÊÊÊëððð€€€€7€<€<€<€[€`€`€{€‰€‹€š€£€½€¿€¿€Ä€¿€å€ç€ç€ï€ê€*�*�*�5�5�_�_�‰�¡�¹�Ä�Ú�î�‚ ‚7‚U‚W‚h‚…‚œ‚£‚›†R| $§è§èÅèÓèéèéé&éBéBéBéOéjéléléléyé”é–é–é¤é±éÌéÌéÜéîéSædÖÜÖÜðÜùÜÝÝ Ý'Ý/Ý7Ý?ÝEÝRÝRÝlÝqÝqÝwÝ|Ý|݂݇݇Ý�ݒݒݪݽÝÃÝÈÝÈÝÑÝñÝñÝñÝøÝúÝúÝÞÞÞ Þ ÞÞÞÞÞÞ Þ!Þ!Þ'Þ'Þ.Þ.Þ6Þ<ÞBÞJÞJÞJÞJÞVÞ^ÞfÞnÞvÞ~ކތޤ޳޽ÞÀÞÀÞÊÞÐÞÖÞÖÞÚÞâÞéÞíÞõÞýÞß ßßß"ß&ß,ß7ß=ßJßVß\ßdßhßoßwß߃߉ߑߘߠߨ߲߽߬ßÂߨßéßîßñß–àTL”£p‡p‡‰‡‹‡’‡¨‡¸‡¾‡Ö‡î‡ñ‡ˆKˆUÔ*[ŽðŽð¢ð·ðÆðÊðØðáðððððÿð + $>@@E@fhhpk«««ÊÊÊëððð€€€€7€<€<€<€[€`€`€{€‰€‹€š€£€½€¿€¿€Ä€¿€å€ç€ç€ï€ê€*�*�*�5�5�_�_�‰�¡�¹�Ä�Ú�î�‚ ‚7‚U‚W‚h‚…‚œ‚£‚›†R| $ÇèÇèåèóè é#é;éFébébébéoéŠéŒéŒéŒé™é´é¶é¶éÄéÑéìéìéüéêSædÖÜÖÜðÜùÜÝÝ Ý'Ý/Ý7Ý?ÝEÝRÝRÝlÝqÝqÝwÝ|Ý|݂݇݇Ý�ݒݒݪݽÝÃÝÈÝÈÝÑÝñÝñÝñÝøÝúÝúÝÞÞÞ Þ ÞÞÞÞÞÞ Þ!Þ!Þ'Þ'Þ.Þ.Þ6Þ<ÞBÞJÞJÞJÞJÞVÞ^ÞfÞnÞvÞ~ކތޤ޳޽ÞÀÞÀÞÊÞÐÞÖÞÖÞÚÞâÞéÞíÞõÞýÞß ßßß"ß&ß,ß7ß=ßJßVß\ßdßhßoßwß߃߉ߑߘߠߨ߲߽߬ßÂߨßéßîßñß–àTL”£p‡p‡‰‡‹‡’‡¨‡¸‡¾‡Ö‡î‡ñ‡ˆKˆUÔ*[ŽðŽð¢ð·ðÆðÊðØðáðððððÿð ññ ñ'ñ7ñNñeñkñpñtñ‡ñ‡ñ�ñŸñ©ñÍñØñÚñóñ÷ñò ò -òò ò(ò;ò¥òV$×\×\]ë\ ]]WPÍÝgFgFˆFuFªF—F¹FÈFÐFÛFÝFèFóFóFGGX,f×f×o×u×}׆×�×”×Y�‡‘‡‘¨‘½‘ˑؑ ’’*’J’Z’Z’g’g’n’�’’�’�’š’¤’ª’°’³’Á’È’à’ç’ê’ÿ’“““4“N“_“e“k“r“�“x“™“Ÿ“¥“­“Í“µ“Ö“Ü“â“ê“ê“ñ“”÷“””$”,”L”4”U”[”a”i”i”i”””””Š”””�”½”ɔڔߔ𔕠• •••'•0•<•P•`•u•Š•§•¬•¬•·•¿•Ì•וç•ö•–(–=–H–M–M–X–n–ƒ–�– –¥–¶–Ê–Ê–Õ–Ê–í–ò–ò–——————+—0—0—A—F—F—Y—h—m—m—€—�—”—¢—”—¶—»—É—»—Ý—â—ð—â—˜ ˜˜ ˜+˜0˜0˜M˜R˜t˜y˜‡˜y˜›˜ ˜ ˜½˜˜ä˜é˜÷˜é˜ ™™™-™2™T™Y™g™Y™{™€™€™�™¢™Ä™É™×™É™ë™ð™ð™ ššš+š0š0šKšPšPškšpšpš‹š�š�š«š°š°šËšККëšðšðš››››››(›3›H›M›M›Y›r›w›�›¤›®›³›Ä›Λã›î›ó›œœœœœ œ$œ+œ5œ?œ?œRœWœWœWœ[œtœ}œ}œ£œ¨œ¨œ°œÄœÍœçœôœÿœ -��'�3�<�A�A�A�R�o�z�„���”�Ÿ�§�¬�¬�·�¿�È�Ó�ã�û�ž'ž,ž,ž7žJžTž_ž€žŒž�ž¢ž³ž·ž¼ž¼žÌžמßžäžïžÿžŸ+Ÿ@ŸUŸ`ŸeŸpŸxŸ}ŸˆŸ˜Ÿ§ŸÄŸÙŸîŸîŸîŸîŸóŸøŸøŸ   : < Y Y c w � ƒ � — ´ Å Ï Ú ý ¡ ¡0¡;¡S¡c¡h¡h¡s¡x¡x¡€¡‹¡�¡�¡˜¡£¡¨¡¨¡°¡Ñ¡º¡¸¡é¡î¡î¡ö¡¢¢þ¡/¢4¢H¢4¢`¢e¢e¢r¢w¢w¢¢„¢„¢–¢¨¢­¢­¢Á¢­¢Ù¢Þ¢Þ¢æ¢ë¢ë¢þ¢£££££5£E£J£J£d£t£y£y£“£££¨£¨££Ò£×£î£×£¤ ¤ ¤¤¤W¤E¤3¤¤o¤t¤°¤ž¤Œ¤t¤Ȥͤͤܤì¤ñ¤ñ¤¥¥¥¥$¥2¥7¥_¥M¥7¥w¥|¥¤¥’¥|¥¼¥Á¥é¥×¥Á¥¦¦¦#¦ ¦M¦]¦b¦b¦}¦i¦§¦·¦¼¦¼¦ȦͦͦÙ¦Þ¦Þ¦ñ¦§§§§)§.§.§A§Q§V§V§i§y§~§~§†§‹§‹§“§˜§˜§ §¥§¥§­§²§²§ŧʧʧݧâ§0¨¨ ¨ú§â§=¨B¨�¨~¨l¨Z¨B¨�¨¢¨¢¨±¨̨ѨѨâ¨ý¨©©©!©&©&©.©3©3©;©@©@©H©M©M©…©s©a©T©¤©¿©Ä©Ä©ü©ê©Ø©Ë©ª6ª;ªpª^ªSª;ªˆª�ªª°ª¥ª�ªÚªߪùªãªߪ««3«««K«P«P«\«u«…«–«–«»«½«Ó«Ù«Ù«ö«¬4¬e¬S¬ˆ¬�¬�¬�¬œ¬¡¬¡¬´¬¿¬ɬάÙ¬ã¬è¬è¬­­­­­(­­7­B­G­[­G­j­u­z­z­…­–­›­›­¦­±­¶­¶­Ç­Ì­Ì­æ­ñ­ö­®ö­®®)®®8®=®H®=®W®\®p®\®®„®„®˜®„®§®§®§®¬®¸®¬®Ë®ЮЮÜ®Юï®ô®ô®¯ô®¯¯¯$¯¯7¯<¯P¯<¯_¯k¯v¯�¯†¯š¯†¯©¯µ¯À¯˯Яä¯Яû¯ó¯° ° °°°° °$°$°-°2°2°;°@°@°K°P°P°[°`°`°k°p°p°{°€°€°‹°�°�°›° ° °«°°°İ°°Ó°Þ°é°ô°ù°ù°±±±±±±!±&±&±0±5±5±=±B±B±O±T±T±a±f±f±f±f±f±n±s±s±{±€±€±ˆ±�±�±•±š±š±¢±§±»±§±ʱÛ±à±à±ç±ò±²²-²8²Q²=²`²k²v²{²{²‚²�²­²²²ȲÓ²ì²زû²³³³³³(³H³M³c³n³‡³s³–³¡³¬³±³±³̳¸³Û³û³´´!´:´&´]´I´l´w´|´|´—´ƒ´¦´Æ´Ë´á´ì´µñ´(µµ7µBµGµGµbµNµqµ‘µ–µ¬µ·µе¼µóµßµ¶ ¶¶¶!¶&¶&¶5¶:¶:¶:¶@¶E¶E¶E¶O¶Q¶Q¶[¶b¶…¶‡¶‡¶‘¶‘¶‘¶‘¶‘¶“¶“¶ª¶±¶¼¶¼¶ǶͶÔ¶ß¶ê¶õ¶ï¶·-·"·E·E·S·M·y·n·‘·‘·‘·š·¡·´·¹·Ç·Ú·Ú·ù·¸¸;¸;¸;¸\¸l¸�¸“¸£¸£¸ȸϸÞ¸ð¸ð¸ô¸ù¸¹¹/¹/¹3¹J¹Q¹V¹V¹Z¹e¹q¹¹¬¹µ¹ƹÔ¹ººº.ºFºRºcºhºyº˜ºƺïºòº»»»»'»2»2»5»F»w»š»š»�»ĽZ, –זפת׮׷×Àׯ×[`BV—‰—‰­‰»‰‰ƉÕ‰î‰ò‰ø‰Š+Š-Š-Š^ŠLŠ-Š}ЇŠ\8 -g\g\ˆ\u\—\¢\­\¸\Ã\Ï\Õ\]\’8¡8¡F¡H¡S¡[¡f¡q¡|¡~¡”¡”¡¦¡²¡»¡¾¡í¡^øª¤—î—î¼îÁîÎîúîúîïï0ï8ïeïjï“ï³ïÏïÕïÙïüï"ð'ðPðmð“ðªð°ð´ðÍðÕðÚðëðóðñññ5ñ=ñ\ñañrñzñ™ñžñ¦ñ¬ñ°ñ´ñÆñÎñÓñññöñòòòò-ò<òIòiòiò€ò…ò…òœòžòžò²ò´ò´òËòÍòÍòäòæòæòýòýòóóó&ó&ó_óxóxó‹ó�ó�ó�ó�ó¿ó×óóóóóóóôôôôô&ô=ô?ô?ôLôcôcôzô|ô—ô³ô³ô³ô·ô¹ô¹ô¹ô¾ôÀôÀôÅôÅôÏôÔôÔôðôðôðôøôýôýôýôõ -õ -õõõõ>õ@õ`õ€õ€õ€õ€õ€õšõ�õ²õ¹õ»õÄõ×õÙõåõåõíõÿõÿõ öö5ö?ögöyö•öµöÖöêö÷-÷@÷_÷…÷ž÷­÷Ã÷ß÷ä÷ä÷øøø0ø0ø<øNøSøSøgø…øªø½øÜøù#ù2ù`ùrù|ùžù ù ù ù¬ù¬ù¬ùÊùúùüùüù ú úúúúúú'ú,ú?úŽú_\ -·Q·QÉQßQûQR R2R=RRR?RaRiRtRŠR€R¢R¨R`øAï<ï< ====%=)=+=2=9===A=T=|=—=„=¯=´=Ø=Ø=ä=ì=û=5>:>g>o>t>}>‰>‘>˜>º>À>â>ä>??4?:?A?A?G?J?N?_?‚?”?a$GáGáVáqáqáwáb|XsÇëÇëáë ì ì,ì<ì>ì>ì>ì>ìEìMìhì�ìƒìƒìƒì‹ì¦ì¨ì¨ì²ì²ìÊìc”"§5§5É5Ó5ß5ä5ô5ú56#636A6O6f6n6x6‡6�6œ6¤6§6§6§6©6¸6Â6Ë6Ó6Ö6è6dôÍ×9×9: ::: :6:M:d:o:¥:Å:Ê:Ï:Ú:ô:;;);?;V;[;m;r;u;•;µ;½;Å;Ê;ê; -<<<<<<D<I<N<Y<Y<d<d<p<p<‚<Â<Û<Û<ë<ed¤¹(�(�8�?�K�Q�Y�g�z�†� �­�­�°�¾�Î�è�ì�ô�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ -++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-á.g¬÷  8 > E M U X c u u Œ “ – ˜ ¤ µ µ ¸ À Ö Ù ç ê í ô ø    3 6 … h(ÅËǃǃîƒÛƒýƒ„„i=ÏQÏQòQR RRR$R1R7R@RFRKRjRƒRˆRŽR�R’RŸRŸR¤R­RµR¾RÆRÈRÐRØRàRíRóRþRSS S/SPSWSbSkS|S€SˆSˆSœS¬S´S·STj8-7"0"060:0?0J0U0X0\0d0kˆWõ‡Š‡Š¡Š¼ŠŠÉŠÉŠЊõŠúŠ‹#‹ ‹2‹E‹W‹`‹h‹r‹�‹¢‹«‹³‹½‹Ø‹‹ç‹ù‹Œ Œ#Œ ŒHŒ2ŒWŒiŒsŒ{Œ{Œ„ŒŒŒ¢Œ»ŒÍŒÜŒàŒàŒçŒìŒ -� ���2�2�2�6�B�c�m�w�€�¡�«�µ�·�·�Ô�â�ð�ó� ŽŽ+Ž/ŽNŽRŽmŽqŽqŽqŽwŽ…Ž�ލޮ޹ŽÅŽÇŽÏŽÕŽîŽùŽ��*�-�5�A�C�K�N�g�i�u�w��…�ž�¶�Â�×�Ü�ñ���+�+�6�A�Y�e�z��”�¤�½�Î�Î�Ô�ß�ç�õ�ü�‘leã–à–à°à¹àÙàÙàßàçàïà÷àÿàááá á%á%á+á0á0á6á;á;áAáFáFá^áqáwá|á|á…á¥á¥á¥á¬á®á®áµá·á·á½á½áÄáÆáÆáÌáÌáÓáÕáÕáÛáÛáâáâáêáðáöáþáþáþáþá +òò ò(ò;ò¥òV$÷\÷\"] ],]4]WPÍ݇F‡F¨F•FÊF·FÙFèFðFûFýFGGG5G;GX,f×f×o×u×}׆×�×”×Y�§‘§‘È‘Ý‘ë‘ø‘+’8’J’j’z’z’‡’‡’Ž’¡’Ÿ’¯’¯’º’Ä’Ê’Ð’Ó’á’è’““ +“ “$“/“:“T“n““…“‹“’“°“˜“¹“¿“œ͓í“Õ“ö“ü“” +” +””/””8”>”D”L”l”T”u”{”�”‰”‰”‰”Ÿ”Ÿ”Ÿ”Ÿ”ª”´”½”Ý”é”ú”ÿ”•$•)•)•4•<•G•P•\•p•€•••ª•Ǖ̕̕וß•ì•÷•––3–H–]–h–m–m–x–Ž–£–¯–À–Å–Ö–ê–ê–õ–ê– ———!—&—&—5—:—:—K—P—P—a—f—f—y—ˆ—�—�— —¯—´——´—Ö—Û—é—Û—ý—˜˜˜$˜)˜7˜)˜K˜P˜P˜m˜r˜”˜™˜§˜™˜»˜À˜À˜ݘ☙ ™™ ™+™0™0™M™R™t™y™‡™y™›™ ™ ™½™™ä™é™÷™é™ ššš+š0š0šKšPšPškšpšpš‹š�š�š«š°š°šËšККëšðšðš ›››!›&›&›7›<›<›H›S›h›m›m›y›’›—›½›Ä›ΛÓ›ä›î›œœœ$œ/œ7œ<œ<œ@œDœKœUœ_œ_œrœwœwœwœ{œ”œ�œ�œÜȜȜМäœíœ�� �*�5�G�S�\�a�a�a�r���š�¤�¯�´�¿�Ç�Ì�Ì�×�ß�è�ó�žž3žGžLžLžWžjžtžž ž¬ž½žžÓžמܞܞìž÷žÿžŸŸ Ÿ.ŸKŸ`ŸuŸ€Ÿ…Ÿ�Ÿ˜Ÿ�Ÿ¨Ÿ¸ŸÇŸäŸùŸ       $ 5 5 Z \ y y ƒ — ¡ £ ¯ · Ô å ï ú ¡.¡?¡P¡[¡s¡ƒ¡ˆ¡ˆ¡“¡˜¡˜¡ ¡«¡°¡°¡¸¡áȡȡСñ¡Ú¡Ø¡ ¢¢¢¢7¢ ¢¢O¢T¢h¢T¢€¢…¢…¢’¢—¢—¢Ÿ¢¤¢¤¢¶¢È¢Í¢Í¢á¢Í¢ù¢þ¢þ¢£ £ ££#£#£6£;£;£U£e£j£j£„£”£™£™£³£ãȣȣâ£ò£÷£¤÷£&¤+¤+¤6¤;¤w¤e¤S¤;¤�¤”¤Ф¾¤¬¤”¤è¤í¤í¤ü¤ ¥¥¥ ¥0¥5¥5¥D¥R¥W¥¥m¥W¥—¥œ¥Ä¥²¥œ¥Ü¥á¥ ¦÷¥á¥!¦&¦&¦C¦-¦m¦}¦‚¦‚¦�¦‰¦Ǧצܦܦè¦í¦í¦ù¦þ¦þ¦§!§&§&§9§I§N§N§a§q§v§v§‰§™§ž§ž§¦§«§«§³§¸§¸§À§ŧŧͧÒ§Ò§å§ê§ê§ý§¨P¨>¨,¨¨¨]¨b¨°¨ž¨Œ¨z¨b¨½¨¨¨Ѩì¨ñ¨ñ¨©©"©"©3©A©F©F©N©S©S©[©`©`©h©m©m©¥©“©�©t©Ä©ß©ä©ä©ª +ªø©ë©;ªVª[ª�ª~ªsª[ª¨ª­ªâªЪŪ­ªúªÿª««ÿª1«6«S«=«6«k«p«p«|«•«¥«¶«¶«Û«Ý«ó«ù«ù«¬#¬T¬…¬s¬¨¬°¬°¬°¬¼¬Á¬Á¬Ô¬߬é¬î¬ù¬­­­"­'­'­/­4­H­4­W­b­g­{­g­Š­•­š­š­¥­¶­»­»­Æ­Ñ­Ö­Ö­ç­ì­ì­®®®!®®0®5®I®5®X®]®h®]®w®|®�®|®Ÿ®¤®¤®¸®¤®Ç®Ç®Ç®Ì®Ø®Ì®ë®ð®ð®ü®ð®¯¯¯ ¯¯3¯8¯8¯D¯8¯W¯\¯p¯\¯¯‹¯–¯¡¯¦¯º¯¦¯ɯÕ¯à¯ë¯ð¯°ð¯°°$°)°)°1°6°6°?°D°D°M°R°R°[°`°`°k°p°p°{°€°€°‹°�°�°›° ° °«°°°°°»°À°À°˰аä°аó°þ° ±±±±#±(±(±2±7±7±A±F±F±P±U±U±]±b±b±o±t±t±�±†±†±†±†±†±ޱ“±“±›± ± ±¨±­±­±µ±º±º±±DZÛ±DZê±û±²²²²2²7²M²X²q²]²€²‹²–²›²›²¢²­²ͲÒ²è²ó² ³ø²³&³1³6³6³=³H³h³m³ƒ³޳§³“³¶³Á³̳ѳѳì³سû³´ ´6´A´Z´F´}´i´Œ´—´œ´œ´·´£´Æ´æ´ë´µ µ%µµHµ4µWµbµgµgµ‚µnµ‘µ±µ¶µ̵×µðµܵ¶ÿµ"¶-¶2¶2¶A¶F¶F¶U¶Z¶Z¶Z¶`¶e¶e¶e¶o¶q¶q¶{¶‚¶¥¶§¶§¶±¶±¶±¶±¶±¶³¶³¶ʶѶܶܶç¶í¶ô¶ÿ¶ +···0·M·B·e·e·s·m·™·Ž·±·±·±·º·Á·Ô·Ù·ç·ú·ú·¸$¸;¸[¸[¸[¸|¸Œ¸¡¸³¸øøè¸ï¸þ¸¹¹¹¹ ¹0¹O¹O¹S¹j¹q¹v¹v¹z¹…¹‘¹Ÿ¹̹Õ¹æ¹ô¹'º3º8ºNºfºrºƒºˆº™º¸ºæº»»"»$»$»(»G»R»R»U»f»—»º»º»½»ä½Z, –זפת׮׷×Àׯ×[`BV·‰·‰͉Û‰â‰æ‰õ‰ŠŠŠ.ŠKŠMŠMŠ~ŠlŠMŠ�ЧŠ\8 +‡\‡\¨\•\·\Â\Í\Ø\ã\ï\õ\]\’8¡8¡F¡H¡S¡[¡f¡q¡|¡~¡”¡”¡¦¡²¡»¡¾¡í¡^øª¤·î·îÜîáîîîïï%ï2ïPïXï…ïŠï³ïÓïïïõïùïðBðGðpð�ð³ðÊðÐðÔðíðõðúð ññ2ñ8ñ<ñUñ]ñ|ñ�ñ’ñšñ¹ñ¾ñÆñÌñÐñÔñæñîñóñòò#ò(ò(ò5òMò\òiò‰ò‰ò ò¥ò¥ò¼ò¾ò¾òÒòÔòÔòëòíòíòóóóóó2ó7ó7óFóFóó˜ó˜ó«ó°ó°ó°ó°óßó÷óôôô ô7ô9ô9ô9ôFô]ô_ô_ôlôƒôƒôšôœô·ôÓôÓôÓô×ôÙôÙôÙôÞôàôàôåôåôïôôôôôõõõõõõõ%õ*õ*õ2õ2õ4õ^õ`õ€õ õ õ õ õ õºõ½õÒõÙõÛõäõ÷õùõöö ö ö ö+ö>öUö_ö‡ö™öµöÕööö +÷(÷M÷`÷÷¥÷¾÷Í÷ã÷ÿ÷øø8ø=ø=øPøPø\ønøsøsø‡ø¥øÊøÝøüø"ùCùRù€ù’ùœù¾ùÀùÀùÀùÌùÌùÌùêùúúú+ú+ú0ú0ú0ú0ú0úGúLú_ú®ú_\ +×Q×QéQÿQR(R?RRR]RrR_R�R‰R”RªR RÂRÈR`øA==-=0=7=>=E=I=K=R=Y=]=a=t=œ=·=¤=Ï=Ô=ø=ø=> >>U>Z>‡>�>”>�>©>±>¸>Ú>à>??&?2?T?Z?a?a?g?j?n??¢?´?a$gágává‘á‘á—áb|Xsçëçëì-ì-ìLì\ì^ì^ì^ì^ìeìmìˆì¡ì£ì£ì£ì«ìÆìÈìÈìÒìÒìêìc”"Ç5Ç5é5ó5ÿ5666/6C6S6a6o6†6Ž6˜6§6¯6¼6Ä6Ç6Ç6Ç6É6Ø6â6ë6ó6ö67dôÍ÷9÷9 :-:0:9:?:V:m:„:�:Å:å:ê:ï:ú:;&;3;I;_;v;{;�;’;•;µ;Õ;Ý;å;ê; +<*<2<:<<<\<d<i<n<y<y<„<„<�<�<¢<â<û<û< =ed¤¹(�(�8�?�K�Q�Y�g�z�†� �­�­�°�¾�Î�è�ì�ô�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ +++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-à.g¬÷  8 > E M U X c u u Œ “ – ˜ ¤ µ µ ¸ À Ö Ù ç ê í ô ø    3 6 … h(ÅËçƒçƒ„ûƒ„/„7„i=ïQïQR'R,R4RýKýSý^ýZýuýƒýƒýƒýŽý©ý”ý±ýÄýÆýâýÎýêýøýøýúýþþþ#þ,þ3þ6þXþlþ_þtþzþƒþƒþƒþ–þ›þ›þ£þ£þ®þÃþÌþÌþÌþÌþèþÿþÿ ÿ ÿ ÿ%ÿ*ÿ*ÿ6ÿSÿsÿxÿ}ÿ}ÿ‰ÿ¦ÿµÿÄÿÌÿÑÿ×ÿÜÿÜÿãÿêÿ *,I^^ddqzz˜®¹¾ËÖßç÷06_hhjqvvƒŽ”��°½ÏÚèñö )49@H[pu|‰�¢·¾ÄÍÍÖð÷ü -((.5>>Qcffw‡“°·ÄÆÍáððð''<GYfqŠ™  ¹ÌÎÝòô&&39KKX[fxŠ�—ž©®ÃÅßôôôöý"44:AJOs||‚‹‹ªª·ºÃÌÔßñ÷$,7IOZZgjs|~ ³ÈÎÙëñùùùù} |t·ÐJ4J4\4e4h4q4z4Œ4Œ4¸4¼4Á4Ä4Í4Ü4â4å4í4ð4õ4ÿ4}`2¯R¯R×RÃRæR S÷RS S&S.S5S@SHSSSiS^S�S‰S~À-àgàgþghhh"h"h,h>hKhNhPhYhfhfhthˆhˆh¬h¹h¹hÉhÖhÖhùhiii=iRiti}iŠiŠi­i·i·iêij#j#j#j5jt�¶R3R3f3‡3™3­3´3À3Ú3ã3é3ü344444 444:4<4<4D4€¸ºäø�ø�ŽŽŽ"Ž/Ž2ŽLŽLŽLŽRŽVŽ^ŽiŽ}Ž‰Ž‹Ž‹Ž”Ž–Ž–ŽŸŽ¡Ž¡ŽªŽ¬Ž¬ŽµŽµŽ¾ŽÄŽÇŽÑŽâŽèŽôŽôŽ\��œøÿ)ÿ)*.*F*M*i*^*�*¡*�*°*Á*Æ*ç*Ó*ÿ*+#+?+4+W+w+c+†+—+­+™+Å+Ò+Ò+ê+ê+ô+‚œ¢ç3ç3ó34484h4y4Š4œ4£4ª4¾4Å4Ó4ë4ú45 -5#5&5+5B5R5b5f5m5£5ƒx± P±P±f±m±t±“±¢±±±À±Ï±Þ±è±è±í±ô±²²²6²P²P²f²x²|²Š²‘²–²–²�²¯²¸²º²È²Ú²Ú²Ú²ì²÷² ³³!³&³6³;³K³W³\³i³n³~³ƒ³“³•³¥³§³·³¹³Ê³Ó³Ó³Õ³å³ì³ü³ü³´)´;´M´]´]´]´`´s´„\åø`�`�{�‚�‡�•�ª�±�»�É�Ì�Î�Ø�ê�ê�ñ�'�…0ÎÖff~¾²ˆ†ÒÚ†`,—‡—‡­‡¿‡ƇЇ߇ø‡ü‡ˆˆ5ˆ7ˆ7ˆhˆVˆ7ˆ‡ˆ‘ˆ‡L[j_2_2m22…2�2Ÿ2¥2®2À2Æ2É23ˆ(–œ"3"303?3C3F3L3‰\k~333'3-353G3M3V3h3n3w3‰3�3’3à3Š, >×>×L×S×[×`×f׋„ ÇÇå÷þ;;@bwd†•—¹¹¹ÈäÚüŒ`J§i§iÄiÌiÓiøijjj#j)j4jKjZjejijtj€j‡j“jªjÁjÔjëjõjkkk%k7k7k@kQkWkgkgkkk¤k¤k©k©k²k¾kËk×kìklll/l;lRljl‹l‹l”l™l™l™l™l©l²lºl¿lÍlÛlëlðlðlþlþlmm mm*m0mpGpXpapmp}p}p}p‚pšpšp©p¬pÀpÞpépq$q/qAqEqJqQqcqsqŽq•q™qŸq§q²qÁr�8í÷_)_)y)Ž)¤)Å)²)Ý)õ)õ)ÿ)Ž`j~€ €   § ¯ º Ä Ï × æ ð ó ¡¡*¡*¡8¡�_OÛOÛqÛxÛÛ„Û›Û­Û·Û½ÛÏÛÔÛàÛèÛëÛíÛ÷ÛÜÜÜ ÜÜÜ'Ü0Ü8Ü;ÜDÜ_ÜpÜwÜzÜ܎ܔܜܜܣܦܫܺÜÀÜÈÜÈÜÖÜÙÜÞÜíÜøÜÝÝ Ý Ý&Ý-ÝDÝ�83=ØØ'Ø'Ø5Ø9ØGØJØOØ‘8>HVØVØ_Ø_ØmØqØxØ{؀ؒDDQg1g1�1”1ž1¥1±1É1Ò1Ö1è1î1 2“Ä{¨��¹¼ÃÈÎÐÕÛÛíô -,24;AKK_ahnxxx�¡¨·¹Ïââô”0RZ222>2O2U2U2]2•„\y¦ò¦ò¸òÍò×òàòâòéòùòóóóóó*ó-ó-óQó\ó^ówó~ó‚ó‘ó¤ó÷ó–  -^0^0g0„0‰0—hÿfÿfg g+g9gDgMg^gggxg~gŠg¡g¡g³gÄgÑgÚgëgñg?h˜„a~WMWM‡M�M–M¢MªM±MµM¾M¾MÃMÊMâM NN5N=N?NWNoN“N²NÄN™lò ··Ïáèï5J7lY{{�”¶¶¾š y}°‹°‹¹‹Å‹Ê‹›(A~è~è è¨è®è¶è¸è¸èÉèÉèÉèÑèÙèëèúèëèééé+é-é-é8é=éWé\é\é\éqésé€é‚é�é‘éžé¦é®éµéÄéÑéÓéäéñéñéñéúé ê ê%ê-ê/ê<ê<êQêQêQê\êfê~êƒêƒêƒê‘ê—êœê¤ê¯êÁêÌêÑêÑêØêÜêêêîê÷êþêë)ë0ë9ëUëZëZëZëZëbëmë{ë{ë›ë›ë›ë¢ë°ë¿ëÒëåëçëçëçëúëúëìì ìì%ì/ìKìuì{ì{ì�ì”ì¸ì¿ìËìéìüìííííííí'í5íWíbíí‰í‰í—íµíåíøí î î3î8î8î8î@îKî]îhîmîmîmîî©î¯î¯î¯îºîÄîÐîÛîÝîÝîÝîâîîîîî8ïœH%‚/‚/�/—/¢/¯/º/Â/Â/Ú/ä/ê/ð/�0 ?Q?QfQSQuQ‘Q‡Q©Q±QžLÝìO(O(i(~(”(µ(¢(Í(Ò(ý() )6)N)N)X)Ÿð·ÇNÇNüNOOO$OCOCOMOOOjOROyOyO‡O‘O˜O¸OºOÔOÛOÛO÷O÷OP#PBP[PxP{PƒPŠPªP¬PÆPÍPÍPéPéPQQ-Q?Q TVgÎÎäñ÷ý*<@FTWa¡0 -R¿¿îãû2AMR^nu‚�™¤¬±½ÂÖÝáìñü*/CJNNSlqŠŸ±¶ÁÉÉÉËäù    & . . > 3 V v ¢àZŽÈeÈeâeðeõefff4fBfgfpf€f›f¦f¶f¸fºfÄfÐfÔfáfífÿfg g#g#g#g#g(gFg`g`gggjgrg~g‡gÝg£d1÷+÷+,-,>,E,a,V,y,™,…,¨,¹,Ï,»,ç,ô,ô, - --¤ü!\ 1<iOCx™®›ãɽò!>>sŠ~¼ÁÔÈüê ,D1_S‡u–³³³Åââ -,,4¥(ŽåŽåœå¿åÅåÊåÊåÐå¦(!'Æ×Æ×Ï×Ý×ã×å×ê×§D]j::2:9:B:N:c:k:q:w:y:y:‰:¨„¼Ùàªàª« «#«+«3«7«B«F«J«N«V«[«_«p«�«ƒ«‡«˜«©«¸«Ë«Ó«Þ«Þ«Þ«ð«©€èœèœ�����,�7�A�L�c�f�h�ƒ���—�ž�©�»�Ã�Ã�Ù�Ù�ë�ª Ê oYoY•Y²YºYÅYÕYÞYâYýYZ,Z2Z:Z=ZRZWZiZ‹Z‘Z™ZžZ¤Z§Z½ZÆZÈZêZòZ[ [[=[C[H[H[H[U[f[q[~[Š[�[ª[·[Î[â[ì[î[\\\)\0\S\S\S\e\«<ÑÜ55 555$5,545;5K5K5P5¬°)8£8£[£h£m£q£z£‰£•£ £«£³£¾£Æ£É£Õ£Ý£÷£¤¤-¤6¤k¤W¤{¤{¤“¤ž¤º¤Á¤å¤¥¥¥¥¥­˜‹-&¹&¹C¹J¹R¹]¹t¹~¹~¹•¹Ÿ¹º¹Ð¹Þ¹â¹ºº*º1º5ºNºXºiºvºvº}º„º‰ºŽº“ºšº¡º»ºÂºÒºÖºÖºàºöºúºúº »»1»1»7»B»I»Q»\»c»k»v»}»}»ˆ»¦»ª»Â»³»Ý»Ý»ã»ê»ù»¼¼¼¼¼0¼0¼0¼B¼J¼p¼~¼~¼‚¼—¼Ÿ¼¯¼º¼Ï¼Ô¼â¼ñ¼û¼ ½½½½%½)½8½:½I½K½Z½\½k½r½v½Š½”½¢½©½­½½½È½Í½ë½õ½¾ +((.5>>Qcffw‡“°·ÄÆÍáððð''<GYfqŠ™  ¹ÌÎÝòô&&39KKX[fxŠ�—ž©®ÃÅßôôôöý"44:AJOs||‚‹‹ªª·ºÃÌÔßñ÷$,7IOZZgjs|~ ³ÈÎÙëñùùùù} |t·ÐJ4J4\4e4h4q4z4Œ4Œ4¸4¼4Á4Ä4Í4Ü4â4å4í4ð4õ4ÿ4}`2ÏRÏR÷RãRS+SS:S?SFSNSUS`ShSsS‰S~S¡S©S~À-àgàgþghhh"h"h,h>hKhNhPhYhfhfhthˆhˆh¬h¹h¹hÉhÖhÖhùhiii=iRiti}iŠiŠi­i·i·iêij#j#j#j5jt�¶R3R3f3‡3™3­3´3À3Ú3ã3é3ü344444 444:4<4<4D4€¸ºäø�ø�ŽŽŽ"Ž/Ž2ŽLŽLŽLŽRŽVŽ^ŽiŽ}Ž‰Ž‹Ž‹Ž”Ž–Ž–ŽŸŽ¡Ž¡ŽªŽ¬Ž¬ŽµŽµŽ¾ŽÄŽÇŽÑŽâŽèŽôŽôŽ\��œø * *=*N*f*m*‰*~*¡*Á*­*Ð*á*æ*+ó* +<+C+_+T+w+—+ƒ+¦+·+Í+¹+å+ò+ò+ +, +,,‚¨¥ç3ç3ó34484h4y4Š4œ4£4ª4¾4Å4Å4Ô4â4ñ4 55%5(5A5D5I5`5p5€5„5‹5Á5ƒx± P±P±f±m±t±“±¢±±±À±Ï±Þ±è±è±í±ô±²²²6²P²P²f²x²|²Š²‘²–²–²�²¯²¸²º²È²Ú²Ú²Ú²ì²÷² ³³!³&³6³;³K³W³\³i³n³~³ƒ³“³•³¥³§³·³¹³Ê³Ó³Ó³Õ³å³ì³ü³ü³´)´;´M´]´]´]´`´s´„\åø`�`�{�‚�‡�•�ª�±�»�É�Ì�Î�Ø�ê�ê�ñ�'�…0ÎÖff~¾²ˆ†ÒÚ†`,·‡·‡͇߇æ‡ð‡ÿ‡ˆˆ"ˆ8ˆUˆWˆWˆˆˆvˆWˆ§ˆ±ˆ‡L[j_2_2m22…2�2Ÿ2¥2®2À2Æ2É23ˆ(–œ"3"303?3C3F3L3‰\k~333'3-353G3M3V3h3n3w3‰3�3’3à3Š, >×>×L×S×[×`×f׋„ çç%49[[`‚—„¦µ·ÙÙÙèú&Œ`JÇiÇiäiìióij&j(j6jCjIjTjkjzj…j‰j”j j§j³jÊjájôj kk#k5k7kEkWkWk`kqkwk‡k‡kŸkŸkÄkÄkÉkÉkÒkÞkëk÷k l#l2l=lOl[lrlŠl«l«l´l¹l¹l¹l¹lÉlÒlÚlßlílûl mmmmm#m#m-m8mJmPm\mlmwm�m…mŽm§mªmºmÁmßmèmèm÷mnnn$n0n8nCnJnNnangntnn…n•n¥n¥nÒnðnünooo!o1oAoAoQoVoVo`oko}oƒo‘ožo«oµo¹oÂoÛoÞoîoõoúoúopppp'p0pBpHpJpJpXp^pgpxp�p�p�p�p�p¢pºpºpÉpÌpàpþp q2qDqOqaqeqjqqqƒq“q®qµq¹q¿qÇqÒqár�8í÷))™)®)Ä)å)Ò)ý)** *Ž`j~€ €   § ¯ º Ä Ï × æ ð ó ¡¡*¡*¡8¡�_oÛoÛ‘Û˜ÛŸÛ¤Û»ÛÍÛ×ÛÝÛïÛôÛÜÜ Ü ÜÜ!Ü!Ü%Ü-Ü5Ü=ÜGÜPÜXÜ[ÜdÜÜ�ܗܚܟܮܴܼܼÜÃÜÆÜËÜÚÜàÜèÜèÜöÜùÜþÜ ÝÝ Ý Ý+Ý?ÝFÝMÝdÝ�83=ØØ'Ø'Ø5Ø9ØGØJØOØ‘8>HVØVØ_Ø_ØmØqØxØ{؀ؒDDQg1g1�1”1ž1¥1±1É1Ò1Ö1è1î1 2“Ä{¨¯¯ÙÜãèîðõûû *=LRT[akk�ˆŽ˜˜˜¯ÁÈ×Ùï”0RZ222>2O2U2U2]2•„\y¦ò¦ò¸òÍò×òàòâòéòùòóóóóó*ó-ó-óQó\ó^ówó~ó‚ó‘ó¤ó÷ó–  +^0^0g0„0‰0—h g g5g@gKgYgdgmg~g‡g˜gžgªgÁgÁgÓgägñgúg hh_h˜„a~wMwM§M­M¶MÂMÊMÑMÕMÞMÞMãMêMN,N1NUN]N_NwN�N³NÒNäN™lò ××ï13UjWŒy››­´ÖÖÞš y}°‹°‹¹‹Å‹Ê‹›(A~è~è è¨è®è¶è¸è¸èÉèÉèÉèÑèÙèëèúèëèééé+é-é-é8é=éWé\é\é\éqésé€é‚é�é‘éžé¦é®éµéÄéÑéÓéäéñéñéñéúé ê ê%ê-ê/ê<ê<êQêQêQê\êfê~êƒêƒêƒê‘ê—êœê¤ê¯êÁêÌêÑêÑêØêÜêêêîê÷êþêë)ë0ë9ëUëZëZëZëZëbëmë{ë{ë›ë›ë›ë¢ë°ë¿ëÒëåëçëçëçëúëúëìì ìì%ì/ìKìuì{ì{ì�ì”ì¸ì¿ìËìéìüìííííííí'í5íWíbíí‰í‰í—íµíåíøí î î3î8î8î8î@îKî]îhîmîmîmîî©î¯î¯î¯îºîÄîÐîÛîÝîÝîÝîâîîîîî8ïœH%‚/‚/�/—/¢/¯/º/Â/Â/Ú/ä/ê/ð/�0 _Q_Q†QsQ•Q±Q§QÉQÑQžLÝìo(o(‰(ž(´(Õ(Â(í(ò()>)+)V)n)n)x)Ÿð·çNçNO%O1O9ODOcOcOmOoOŠOrO™O™O§O±O¸OØOÚOôOûOûOPP>PCPbP{P˜P›P£PªPÊPÌPæPíPíP Q Q&Q&QMQ_Q TVgÎÎäñ÷ý*<@FTWa¡0 +Rßß/R>amr~Ž•¢­¹ÄÌÑÝâöý 5>JOcjnnsŒ‘ª¿ÑÖáéééë  $ . 9 ; F N N ^ S v – ¢àZŽÈeÈeâeðeõefff4fBfgfpf€f›f¦f¶f¸fºfÄfÐfÔfáfífÿfg g#g#g#g#g(gFg`g`gggjgrg~g‡gÝg£d1,,5,M,^,e,�,v,™,¹,¥,È,Ù,ï,Û,---,-,-6-¤ü!\''?Q\‰oc˜¹Î»éÝ///A^^“ªžÜáôè ++LdQs§•¶ÓÓÓå#*LLT¥(ŽåŽåœå¿åÅåÊåÊåÐå¦(!'Æ×Æ×Ï×Ý×ã×å×ê×§D]j::2:9:B:N:c:k:q:w:y:y:‰:¨„¼Ùàªàª« «#«+«3«7«B«F«J«N«V«[«_«p«�«ƒ«‡«˜«©«¸«Ë«Ó«Þ«Þ«Þ«ð«©€èœèœ�����,�7�A�L�c�f�h�ƒ���—�ž�©�»�Ã�Ã�Ù�Ù�ë�ª Ê �Y�YµYÒYÚYåYõYþYZZ3ZLZRZZZ]ZrZwZ‰Z«Z±Z¹Z¾ZÄZÇZÝZæZèZ +[['[,[;[][c[h[h[h[u[†[‘[ž[ª[½[Ê[×[î[\ \\%\9\>\I\P\s\s\s\…\«<ÑÜ55 555$5,545;5K5K5P5¬°)8£8£[£h£m£q£z£‰£•£ £«£³£¾£Æ£É£Õ£Ý£÷£¤¤-¤6¤k¤W¤{¤{¤“¤ž¤º¤Á¤å¤¥¥¥¥¥­”‹,&¹&¹C¹J¹R¹]¹t¹~¹~¹•¹Ÿ¹º¹Ð¹Þ¹â¹ºº*º1º5ºNºXºiºvºvº}º„º‰ºŽº“ºšº¡º»ºÂºÒºÖºÖºàºöºúºúº »»1»1»7»B»I»Q»\»c»k»v»}»}»ˆ»¦»ª»Â»³»Ý»Ý»ã»ê»ù»¼¼¼¼¼0¼0¼0¼B¼J¼p¼~¼~¼‚¼—¼Ÿ¼¯¼º¼Ï¼Ô¼â¼ñ¼û¼ ½½½½%½)½8½:½I½K½Z½\½k½r½v½Š½”½¢½©½­½½½È½Í½ë½õ½¾ ¾¾¾&¾-¾1¾;¾O¾W¾b¾f¾f¾f¾q¾|¾Œ¾˜¾®¾¶¾Á¾Ð¾Ø¾ã¾è¾ð¾û¾¿ ¿¿¿/¿7¿B¿B¿B¿B¿_¿|¿ˆ¿�¿ ¿°¿Î¿Ò¿Àö¿ç¿ÀÀÀ"À1À@ÀJÀXÀ_ÀcÀeÀtÀ~ÀŒÀ“À—À—À™À«À«À½À½À½ÀÏÀáÀéÀÁ-Á;Á?Á]ÁdÁkÁvÁŒÁ‘Á˜Á«ÁµÁÃÁÊÁÎÁÐÁãÁíÁûÁ Â.Â8ÂFÂQÂUÂUÂZÂbÂfÂuÂw†ˆ—™¨¯³ÂÇÂÑÂßÂæÂêÂúÂà -Ã(Ã2Ã@ÃGÃKÃUÃcÃjÃnÃxÌÔßãããîõÃÃÃÝÃíÃøÃ ÄÄÄ-Ä9ÄOÄWÄbÄqÄyĄĉđĜĨĬķļÄÐÄØÄãÄãÄãÄãÄ÷ÄÅÅ)Å-ÅAÅRÅgÅtÅxņśūÅÂÅÛÅôÅöÅÆ Æ ÆÆ/Æ@ÆWÆpÆ~ƉƕÆ�ƟƪƲƲƲÆÏÆÝÆëÆÇÇ(Ç5ÇUÇ\Ç\ÇlǀǚǚǞǴÇÃÇÞÇéÇÈÈÈ-È-È@È[ÈdÈ{ȕȤȱÈÑÈßÈõÈÉ!É9É9ÉQÉQÉ]ÉxÉ�əəəɥɶÉÎÉ×É×ÉÞÉçÉíÉùÉXÊ®<ùD(�(�M�Y�d�n�t�~�„�Ž�œ�¦�¸�Â�È�Ò�Ø�â�é�õ�û�‘/‘>‘A‘C‘M‘_‘i‘{‘…‘š‘š‘�‘§‘¼‘Á‘ёܑá‘õ‘÷‘’+’+’5’J’X’a’i’w’ˆ’˜’©’¶’¶’Ã’Ã’Ë’Ù’ “¯$› _P_PsP{P†PŒP°l£:§F§FÀFØFèFGG2GMGMGwGGƒG†GŠG�G™GœG£G©G°G¶GºG¿GÉGÚGáGèGêGîG÷GHHHHH/H:H@HGHPHiHzHƒHŒH”HŸHªH¶HÇHØHäHòHôHûHII II IBIPIZIdImI†I—I I©I±IºIÀIÄIÉIÍIÚIáIïIùIJJ!J:JKJTJ]JeJnJtJxJ}JƒJ�J—J¶JÄJÊJÏJ×JßJçJôJüJKK0K9KTKhK{K‚K‹K”K›K¤K­K¶KÏK¿KßKãK=L±  ¨ˆ¨ˆ¶ˆØˆÞˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´ƒgÃgÃyÈÈËÔààöÃÌÃÞÃåÃéÃùÃÄ+Ä1Ä@ÄIÄMÄSÄ\ÄrÄvēıÄÃÄÉÄØÄêÄöÄøÄÅ ÅÅÅ Å Å Å1Å<ÅBÅXÅ_ÅgÅ}ńńńŒŹÅÂÅÊÅÜÅäÅíÅøÅþÅÆÆ#Æ*Æ?ÆPÆPÆWÆWÆWÆeƌƙƢƪƼÆÄÆÍÆÍÆØÆ߯íÆñÆýÆÇÇ#Ç2Ç;Ç?ÇGÇPÇPÇ^ÇfÇlljǒǚǠǦǦǦǭǴÇÃÇËÇÑÇ×Ç×ÇÙÇãǵx7Ú7ÚEÚZÚaÚlÚ‚Ú¬ÚÈÚÏÚçÚíÚüÚÛ ÛÛÛÛ#Û2Û:Û@ÛBÛHÛ¶¤Ôy·e·eÚeâeòeúef5f9fAfIfOfXfdflflftf¤fãf¾fg gg#g%gSgYgbgigqgyg…g�g•g¨g°gµg¿gßgægègògh!h(h*hJhQhQhQhZhahzh€hˆhˆh�h‘h�h¦h¯h»hÞhìhii9iFiZitixi—i¥i±ißiåiçijjj4jAjUjojwj{j†jŽjžj jÎjÑjÙjéjëjk k k)k)k4kekmkmkmkmkvk‚k˜k±kÄkËk×kÞkÞkñkõkõkõküklll'l.l.lHlJlOlblilul|l|l‰l“l“l˜l»l»lÍl·à˜Ì÷C÷C D*DD_DED9DnD}D…D�D’D�D¨D¨D­DâDçDE4E!EVECEjEeE†E•E�E¨EªEµEÀEÀEÅEæEèE F FFF7F9F[F[F[FcF¸\îff%f7f=fHfVfbfyfyf‹f‘fœf¬f·fÅfÒfþf¹ÛÜ— — µ È Ï Ö Ý á ã ê ñ õ õ ý    4 ? M ^ b g {  ˆ Œ ‘ — ´ ´  Ù Þ ÷ ! ! ! !!!&!-!@!D!I!]!e!n!r!t!{!�!�!´!¶!Ï!â!æ!æ!æ!ú!þ!" """3"3"A"X"]"v"‡"‹"�"�"�"¢"±"Õ"÷"###/#4#?#S#W#`#d#f#l#…#…#“#ª#¬#Å#Ö#Ú#Ú#á#ô#ø# -$$#$+$4$8$=$D$Z$j$�$†$Ÿ$²$¶$È$È$È$È$Í$ï$þ$"%-%3%I%Z%Z%Z%a%t%�%�%�%œ%œ%¯%Æ%Ñ%â%ç%í%÷%ù%&& &&,&.&9&N&Z&\&g&s&ƒ&Š&‘&›&£&§&«&­&²&º&¾&Ð&Ò&×&ß&ã&å&å&î&û&'1'K'Y'e'l'l''ƒ'ƒ'ƒ'Š'�'©'·'Ã'Ê'Ê'ä'æ'ë'(( (&(&(3(=(=(O(º  ¿£XJXJuJ„J„J„J¡J¡J²J²J¸JºJºJÀJÂJÂJÈJÊJÊJÑJÕJÚJÚJÚJÚJÚJÚJâJúJúJKK$K1KIKKKjKlK‹K�K¯K´KºKºKÓKÖKýK +Ã(Ã2Ã@ÃGÃKÃUÃcÃjÃnÃxÌÔßãããîõÃÃÃÝÃíÃøÃ ÄÄÄ-Ä9ÄOÄWÄbÄqÄyĄĉđĜĨĬķļÄÐÄØÄãÄãÄãÄãÄ÷ÄÅÅ)Å-ÅAÅRÅgÅtÅxņśūÅÂÅÛÅôÅöÅÆ Æ ÆÆ/Æ@ÆWÆpÆ~ƉƕÆ�ƟƪƲƲƲÆÏÆÝÆëÆÇÇ(Ç5ÇUÇ\Ç\ÇlǀǚǚǞǴÇÃÇÞÇéÇÈÈÈ-È-È@È[ÈdÈ{ȕȤȱÈÑÈßÈõÈÉ!É9É9ÉQÉQÉ]ÉxÉ�əəəɥɶÉÎÉ×É×ÉÞÉçÉíÉùÉXÊ®<ùD(�(�M�Y�d�n�t�~�„�Ž�œ�¦�¸�Â�È�Ò�Ø�â�é�õ�û�‘/‘>‘A‘C‘M‘_‘i‘{‘…‘š‘š‘�‘§‘¼‘Á‘ёܑá‘õ‘÷‘’+’+’5’J’X’a’i’w’ˆ’˜’©’¶’¶’Ã’Ã’Ë’Ù’ “¯$› PP“P›P¦P¬P°l£:ÇFÇFàFøFG(G:GRGmGmG—GŸG£G¦GªG¯G¹G¼GÃGÉGÐGÖGÚGßGéGúGHH +HHH!H$H/H;H>HOHZH`HgHpH‰HšH£H¬H´H¿HÊHÖHçHøHIIII"I'I+I8I?IbIpIzI„I�I¦I·IÀIÉIÑIÚIàIäIéIíIúIJJJ.J8JAJZJkJtJ}J…JŽJ”J˜J�J£J­J·JÖJäJêJïJ÷JÿJKKK;K.KPKYKtKˆK›K¢K«K´K»KÄKÍKÖKïKßKÿKL]L±  ¨ˆ¨ˆ¶ˆØˆÞˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´ƒ‡Ã‡Ã™Ã¨Ã¨Ã«Ã´ÃÀÃÀÃÖÃìÃþÃÄ ÄÄ9ÄKÄQÄ`ÄiÄmÄsÄ|ĒĖijÄÑÄãÄéÄøÄ +ÅÅÅ$Å,Å0Å6Å?Å?Å?ÅQÅ\ÅbÅxÅŇÅ�ŤŤŤŲÅÙÅâÅêÅüÅÆ ÆÆÆ4Æ;ÆCÆJÆ_ÆpÆpÆwÆwÆwƅƬƹÆÂÆÊÆÜÆäÆíÆíÆøÆÿÆ ÇÇÇ5Ç=ÇCÇRÇ[Ç_ÇgÇpÇpÇ~džnjǩDzǺÇÀÇÆÇÆÇÆÇÍÇÔÇãÇëÇñÇ÷Ç÷ÇùÇȵxWÚWÚeÚzÚ�ڌڢÚÌÚèÚïÚÛ ÛÛ%Û-Û5Û7Û=ÛCÛRÛZÛ`ÛbÛhÛ¶¤Ôy×e×eúefff>fUfYfafifofxf„fŒfŒf”fÄfgÞf&g+g3gCgEgsgyg‚g‰g‘g™g¥g­gµgÈgÐgÕgßgÿghhh!hAhHhJhjhqhqhqhzh�hšh h¨h¨h­h±h½hÆhÏhÛhþh i:i=iYifizi”i˜i·iÅiÑiÿijj5j8j8jTjajuj�j—j›j¦j®j¾jÀjîjñjùj k k9k?k?kIkIkTk…k�k�k�k�k–k¢k¸kÑkäkëk÷kþkþklllll!l4l;lGlNlNlhljlol‚l‰l•lœlœl©l³l³l¸lÛlÛlíl·à˜ÌDD,DJD7DDeDYDŽD�D¥D°D²D½DÈDÈDÍDEE#O#T#_#s#w#€#„#†#Œ#¥#¥#³#Ê#Ì#å#ö#ú#ú#$$$*$/$C$K$T$X$]$d$z$Š$¡$¦$¿$Ò$Ö$è$è$è$è$í$%%B%M%S%i%z%z%z%�%”%­%­%­%¼%¼%Ï%æ%ñ%&& &&&%&%&,&7&L&N&Y&n&z&|&‡&“&£&ª&±&»&Ã&Ç&Ë&Í&Ò&Ú&Þ&ð&ò&÷&ÿ&'''''1'Q'k'y'…'Œ'Œ'Ÿ'£'£'£'ª'¯'É'×'ã'ê'ê'(( (%(3(?(F(F(S(](](o(º  ¿£XJXJuJ„J„J„J¡J¡J²J²J¸JºJºJÀJÂJÂJÈJÊJÊJÑJÕJÚJÚJÚJÚJÚJÚJâJúJúJKK$K1KIKKKjKlK‹K�K¯K´KºKºKÓKÖKýK L"LBLBLKLPLnL\LtLƒLˆL�L˜L«L³L»LÀLÀLÀLÉLâLèLèLMM,MEMGMOMUM]MbMbMhMhMqM‚M„M™M›M£M©M±M¶M¶M¶M¶MÄMÛMÝMñMñMùMÿMN NNN&N,N2N4N4N4N]J]S]Y]Y]b]x]x]~]‡]�]�]¦]¨]®]·]Í]Í]Ö]Ö]Ö]ß]ä]ä]ì]ñ]ñ]^^(^-^3^=^E^J^J^J^^^g^m^^‰^‰^‘^‘^™^›^›^´^¾^Ç^É^É^É^Ï^Ó^Õ^Õ^Õ^Õ^Ú^à^æ^ê^ab»Ìz©ÏlÏlñlülm.m;mRmempm†mrm•m�m�m¬m¬m´mÀmÖmëmúmnnnnn#n(n7nBn\n^ncnrn}nŠn”n”n¢n¼”*K€¥€¥˜¥Ÿ¥¦¥©¥²¥µ¥¸¥¼¥Á¥ã¥Ð¥ó¥û¥¦¦¦¦!¦*¦0¦3¦D¦b¦s¦~¦°¦½à.¢·B·BÕBàBñBôBøBCCC%C;CLC]CoC�C�CŸC°C¿C¿CÍCÑCÕCÚCÞCëCòCDDD#D1DJDLDPDZDZD_D_D_DdDdDsD|D„DšDšDšDŸDŸD·DÃDÎDÓDÓDÖDÛDÛDúDEEEEEEE:EFERETETEWEYEYEfEhEhEkEkEtEzEE›E›E›E›E›E›E›E›E›E›E›E›E�E®EÀEÏEÞEÞEâEâEêEFF F§F¾,××$×+×3×8×>׿l3J�S�S¥S¿S«SÎSóSßSTTTTTTT#T;TFT\TQTtT~TÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+ÖåÖåêåøåþå!æ'æ-æRæXæ^ædædælæÂô#œï6ï6÷67 -77$787G7d7q7ƒ7¥7Í7Û7÷7 8!888C8d8‚8‘8¬8·8Ò8ë8ë89/9I9d9v9…9”9”9Ÿ9²9Ã9Ö9æ9ó9ÿ9:+:+:3:3:3:D:Q:X:w:€:‘:•:�:¨:À:Ø:á:ñ:ù:þ:";2;B;M;a;f;n;”;–;¡;Ô;î;î;<<<,<5<=<O<q<y<�<Œ<Ž<ž<¶<Î<æ<þ<='=0=9=K=Y=]=a=à àˆàˆéˆ‰ ‰Ä\ˆ[¾Í¾ÍØÍßÍìÍ÷ÍüÍÎÎÎ2Î8ÎVÎlÎwÎ}ΟΟίÎÄÎÆÎÉÎÕÎÝÎåÎíÎûÎÏ +TTT T(T6T;T;TRTXTZTeTwT�T�T¡T±TÃTÈTÔTÚTÝTôTöTùT UUUU%U]J]S]Y]Y]b]x]x]~]‡]�]�]¦]¨]®]·]Í]Í]Ö]Ö]Ö]ß]ä]ä]ì]ñ]ñ]^^(^-^3^=^E^J^J^J^^^g^m^^‰^‰^‘^‘^™^›^›^´^¾^Ç^É^É^É^Ï^Ó^Õ^Õ^Õ^Õ^Ú^à^æ^ê^ab»Ìz©ïlïlmm2mNm[mrm…m�m¦m’mµm½m½mÌmÌmÔmàmöm nn%n8n>n>n>nCnHnWnbn|n~nƒn’n�nªn´n´nÂn¼”*K€¥€¥˜¥Ÿ¥¦¥©¥²¥µ¥¸¥¼¥Á¥ã¥Ð¥ó¥û¥¦¦¦¦!¦*¦0¦3¦D¦b¦s¦~¦°¦½à.¢×B×BõBCCCC!C(C6CEC[ClC}C�C¡C°C¿CÐCßCßCíCñCõCúCþC DD D4D=DCDQDjDlDpDzDzDDDD„D„D“DœD¤DºDºDºD¿D¿D×DãDîDóDóDöDûDûDE&E3E5E5E9E;E;EZEfErEtEtEwEyEyE†EˆEˆE‹E‹E”EšEŸE»E»E»E»E»E»E»E»E»E»E»E»E½EÎEàEïEþEþEFF +F#F'F,FÇF¾,××$×+×3×8×>׿l3J¯S¯SÅSßSËSîSTÿS"T'T.T.T4T7T;TCT[TfT|TqT”TžTÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+ÖåÖåêåøåþå!æ'æ-æRæXæ^ædædælæÂô#œ777&7*777D7X7g7„7‘7£7Å7í7û78)8A8X8c8„8¢8±8Ì8×8ò8 9 9&9O9i9„9–9¥9´9´9¿9Ò9ã9ö9:: :.:K:K:S:S:S:d:q:x:—: :±:µ:½:È:à:ø:;;;;B;R;b;m;�;†;Ž;´;¶;Á;ô;<<&<5<=<L<U<]<o<‘<™<¡<¬<®<¾<Ö<î<==0=G=P=Y=k=y=}=�=à àˆàˆéˆ‰ ‰Ä\‡Z¾Í¾ÍØÍßÍìÍ÷ÍüÍÎÎÎ2Î8ÎVÎlÎwÎ}ΟΟίÎÄÎÆÎÉÎÕÎÝÎåÎíÎûÎÏ ÏÏÏÏ*Ï0Ï5Ï5ÏLÏLÏjÏjÏ}ÏŠÏ�Ï�ϦϯϾÏÔÏßÏíÏøÏÐÐ'Ð-Ð7ÐCÐPÐRÐRÐZÐ_Ð_ÐgÐlÐlÐtÐyÐyÐ�ІІЌББИÐ�Ð�ФЩЩдййÐÄÐÉÐÉÐÔÐÙÐÙÐäÐäÐÿÐÑ ÑÑÑÑ1Ñ>ÑMÑTÑWÑiÑkÑqхђѡѡѡѡѫÑÅÑÚÑìÑýÑÒÒÒ"Ò-Ò?ÒPÒ_ÒeÒvÒ�Ò‹Ò›ÒªÒ°Ò»ÒÁÒÖÒÜÒíÒøÒþÒÓÓÓ1Ó=ÓEÓUÓ\ÓbÓsÓ~ÓƒÓ ÓµÓÃÓÓÓßÓñÓüÓ Ô Ô Ô'Ô,Ô3Ô7ÔEÔOÔUÔ_ÔeÔpÔvÔxԅԒԜԵÔÃÔÃÔÉÔÐÔ×ÅD#° ­ ­?­a­i­i­w­Š­¤­§­°­Ì­Ì­Ì­Ô­Ö­Ö­Þ­à­à­è­ê­ê­ò­ò­û­®®®®®"®'®-®2®2®2®2®:®C®I®N®N®S®`®y®˜®›®±®Ð®Ð®Ð®Ø®Ú®Ú®Ú®â®ä®ä®ä®ì®î®î®î®ö®ø®ø®¯¯ ¯¯¯¯¯¯ ¯2¯@¯N¯X¯X¯X¯h¯h¯o¯s¯y¯‘¯Ÿ¯²¯¿¯è¯ë¯ô¯û¯°° °+°+°6°<°A°A°A°H°N°c°k°q°|°“°ª°¶°¼°Á°Á°È°Ó°Ó°Ø°ê°ð°ð°ð°ð°L±Æd*DD2DyQyWy\ypyvy~y�y–y˜y§y´yºyÀyÅyËyÑyØyäyëyíyòyúyüyz zzzzz#z+z-z2z:z…J…Δ"ð«ð«þ«¬¬¬$¬/¬:¬B¬M¬X¬]¬s¬z¬�¬Œ¬—¬™¬¤¬¯¬±¬½¬È¬Ó¬Ü¬ä¬ä¬è¬ ­Ï€ø*6*6H6L6P6X6f6i6l6‚6ˆ6Š6œ6 6¤6¬6´6À6Õ6æ6í6ô6ô677ÐÞ`?G?GoGzGŸG�G¹GïGôGôG÷GHH(H*H2HTHuH‡H”H¯HÃHÈHâHìHîHóH +I1ICIPIkI‹I�I¥I«I«I´IÔIàIãIåIJêIJJ!J!J/J9JdJZJ~J~JƒJ†JœJ¨J½JáJëJñJK)KK8K:KLK`KtKjK‰K�KžKÆKµKÕK×KéKóKLLL1L;L=LQL[L[LzL€L€L€L‰L©LÑLÀLàLåL÷LÿL*M M?M?M?MeMeMwMÑ`8Ì7373n3u3}3†3‘3˜3°3µ3¸3»3Ä3Ò3Ü3á3 444G4L4Y4y4~4�4¹4Á4Æ4Û45555'5:5N5R5t5…5Š5Š5¶5¶5¶5¶5¶5Ê5â5ç5ê5í5í56 6(656=6X6o6}6ˆ6¤6¤6¤6±6È6Ê6Ê6Ê6×6î6ð6ð6ý677$7)7P7g7y7•7•7•7¢7¹7»7»7»7È7ß7á7á7î78888"8B8Y8k8‡8‡8‡8”8«8­8­8º8Ñ8Ñ8å8ç8õ8959:9H9V9`9b9b9b99‡9‰9‰9±9÷9Ò¤%Jêê)êUêUêtê„ê‰ê‰ê˜êªêÄêÌêÓêØêóêûêûêûêýêýêýêýêëëëë0ë2ë2ë2ë2ëMëXë�ëÓÐçO…O…e…q…v…v…‚…‡…Œ…—…œ…œ…œ…Ñ…¾…à…†† †9†R†k†p†p†‰†¢†»†Ô†Ù†Ù†ò† ‡$‡=‡?‡?‡X‡q‡Ї£‡£‡£‡µ‡Ô0�‰GíGíUí[í_í~íŸíŸí¥íÕ<:E99#9.9<9H9T9]9f9o9u9z9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ÈŸÍ v v3v]vRv>v}v¯v•vˆvÚvßvêvøvww;w”w|whwšw¥wÑwÖwÞwýwx*x x x=xVxBxyxex�x—xÃxÃxÃxÃxËxØL^m¿/¿/Ý/ï/ö/00*070G0=0_0i0Ù$qvÇNÇNÛNãNîNôNÚÈg•b1b1†1Š1©1Ë1×1Þ1é1÷12 2 22242?2O2[2b2m2~2€2‘2“2•2•2•2�2�2§2§2¯2·2¿2Ç2Ë2Ö2"3Û PˆPˆ^ˆuˆ{ˆÜ`FZz9z9Š9‘9“9˜9§9­9Â9Â9Ð9Ð9Ü9å9è9ö9:: :Ý<ö/‘/‘8‘C‘N‘Y‘d‘n‘Œ‘—‘§‘Þ =_h_hwh‰h�h›h¦h´hÀh×hâhòhi +iii)i/i8i>iPiViaiiiwi„iÁiß,29ß0ß0í0þ01+1.141à4‰‰‰(‰1‰8‰?‰I‰I‰O‰áÄMzwÿwÿ£ÿ¦ÿ«ÿ¸ÿ½ÿÏÿÑÿÕÿÙÿÜÿïÿ.7BIbˆ�¦ÌÑØñ2XXXpŠ™«â �Ïÿwÿwx x&x:xBxSx`xfxkxkxxx�x‡x—x¥x§xÆxÚxáxíxýxýx yy)y-y>y>y>yCyCyOy^yqywy|y�y–yžy°y¶y¸yÇyÔyÚyàyåyëyñyøyz z zzzz!z-z/z4zzCzKzMzRzZz\zazizizizyzyzyz�z–zœz§z¬zÅzËzÖzÞzèzìzòz {{!{'{4{9{>{>{S{[{e{m{u{–{¡{¬{¸{²{Á{Ê{Ï{Ô{é{ð{ù{| ||| |%|0|;|F|H|N|[|`|e|~|‰|”|”|š|§|©|®|·|Ð|Û|æ|ì|ù|ù|ý|}}}}}(}*}*}=}?}?}R}T}T}g}i}i}{}{}�}†}†}�}±}¦}¾}Æ}Í}Ó}Û}î}ù}ð} ~ ~ ~#~&~(~7~I~Y~e~|~–~›~¯~¿~Ò~×~×~à~ô~!%39>>DXhmmsy~~~„“¦³·¼¼ÀÅÅÊÕáû€€€#€0€2€?€K€Z€m€m€z€†€†€†€†€Š€�€ €²€½€Å€Í€Ï€á€æ€ô€� ���-�=�=�Q�]�_�h�t�‹�‹�‘�ž� �²�²�½�½�½�½�½�9„ã ŒÐ÷V÷VW#W:W?WdWjWoWuWƒWŠW™WžWªW¼W¼WÚWåWøWÿWX6XBX]XuX‘XšX©X±X¾XÇXÌXÜXêX +YYY0YBYRYXYcYlYrY¸Y¢Y“YÈYZíYÞYZZ;ZÊZä<+6ÐDÐDñD÷DEE+E3EMEYEå„ |† † ¨ ³ º  Å Å Õ à à ã ê ñ ÷ ý ! !!!!!!#!,!8!>!c!g!j!z!‚!‡!‡!Ž!—!¨!®!·!Â!Ó!Ó!Ü!á!ë!ò!ù!"" ""."1"@"M"Z"Z"Z"Z"`"r"{"Œ"­"¾"Ö"Ý"ç"ï"ö"ö"ÿ"##"#-#-#-#A#U#e#h##$æ„9ò7ò788$8(8>8k8�8’8›8©8»8Ô8Ô8æ899 99çX{Í^^‰“¦±ÃÑ×èï÷ (=MWYiy‚ˆ�”𠦱¼¿Æàè$'/3ET[c~›Ÿ¨¯ÁÉÐÔÝßñ "///1HNN`è  -€ˆ€ˆ‰ˆ�ˆ¢ˆé¤ŸÄ/‚/‚K‚Q‚c‚h‚n‚q‚u‚u‚˜‚�‚Ê‚¶‚Ù‚ò‚Þ‚ƒƒƒ&ƒ.ƒ3ƒ9ƒ<ƒ@ƒBƒ[ƒGƒjƒjƒjƒ…ƒ´ƒÀƒê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxÓíßdßdýdee!e8e8eJePe[ekewe€e†eŒe—e¥e²e¾eÌeÛeÛe fìd”©×í×íÛíîíîíîîîî2î2îIîIî`î`îwîwîŽî�î�î”îíÌÂñ)0;QQcn‚†‹�‘—©µÊÌåôøøø   ,2<GU\km†  ²îP7G`E`EvE‚EŠEŽEŸE­E³E¿EÇEÒEØEÛEåEï ®- > >9>D>H>Q>X>_>u>†>—>©>»>Ê>Ù>ê>ù>ù>?? ??!?*?1?5?U?U?U?U?U?a?e?h?p?~?†?“?›?£?´?¿?Ä?Ä?Ñ?×?æ?ý?ÿ? -@@"@%@+@'@?@V@X@f@h@s@y@y@�@�@“@š@°@°@°@µ@µ@Í@Û@æ@ë@ë@î@ó@ó@A A-A/A/A3A5A5ATAbAnApApAsAuAuA‚A„A„A‡A‡A‡A‡A‡A�A–AšA¦AÆAÓAáAèA°Bð(rx€‹€‹Ž‹•‹¥‹¨‹®‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTzKþóþóô"ô%ô.ô8ôPô`ôiôoôrôvôxô�ô ô­ô³ô·ô½ô¿ôÂôÆôÆôéôíôóôóôúôõ1õDõWõ]õdõoõyõ}õ€õ‡õ�õ‘õ—õ¨õ®õ³õ¸õÅõÇõÙõÛõâõïõñõööööö'ö2ö>öUöUöjövö“ö·öÑöÖöíöòö÷÷÷"÷3÷H÷N÷^÷k÷÷†÷’÷ª÷¶÷¶÷¶÷¼÷¿÷Â÷Û÷á÷õ÷û÷ø ø øøø*ø*ø0ø>øUø[ø^øaøhøqøxøxø}øŠø—ø—ø�ø«øÂøÈøËøÎøÕøÕøæøíøúøùùùù ù%ù,ù7ùKùKùeùjùqùyù€ù�ù”ù�ùµùºùÁùãùîùôùüùú)ú)úDúDú^úlúsúzúœú¯úÓúÕúßúûûûû&û7ûPûTû)üóÀ€¬¯a¯aÇaËaÐaßaêaöabøa&b+b+bPb�bdbWb¤b©bÒb×bãbcåbcc1c8c[cqcqc—c—c£cô .0.0=0V0\0õ4‘šçOçOÿO"P/P5P;P>P^Pö8 â.â.ð.÷./ -/////#/÷ :>7171A1I1N1øÎP¯x¯xÍxÝxèxþxy*yNy|y‚yˆy�y’yšy¯y²y½yÉyßyüy z/z]zczizqzvz~z“z–z¡z­z²z¸z¾zÆzÎzÖzæzþz {:{@{E{M{]{ƒ{±{·{¼{¼{Í{Ø{ã{||$|,|:|:|?|R|i|k|ˆ| |¬|´|Â|Â|Ç|Ú|ç|ñ|} }8}J}W}y}�}§}µ}·}Î}å}å}î}ú}~)~<~G~Z~^~^~^~e~j~}~ˆ~¢~¤~©~¼~Ç~Ô~Þ~Þ~ð~ù˜k �:�:¦:²:²:È:Ó:Õ:õ:õ:õ:ü:; -;;;;;;4;4;j;v;ˆ;˜;¯;´;·;¼;¼;¼;Ø;ß;ì;ó;û;<<<(<0<5<5<Q<^<f<k<k<‡<“<œ<¤<¬<¸<Î<Ù<ü<=====7=Q=[=g=o=t=t=“=Ÿ=±=¶=Ò=Þ=í=ò=>>>>>>>>>>:>F>X>Z>]>b>b>b>l>t>{>ƒ>Œ>—>�>ª>¸>¸>Â>Ë>Ó>???$?>?C?C?V?^?^?`?`?`?e?e?l?r?v?}?�?�?�?�?�?�?µ?¾?¾?Â?ÝCú(àCàCîC÷CD Dû�ªÊ§n§nÅnÍnÙnïnooo,o2o2o2o7oNø‰ø‰ŠŠŠ/Š7Š;ŠEŠOŠWŠZŠ`ŠT¡²�P�P©P¼P¿PÉPÖPëPíPÿP QQQ#Q&QzQ<˜£ÐŒÐŒäŒëŒ÷Œ���� �'� 26nænæ|æˆæH!/W]W]k]w]�]y]œ]ž]¥]°]¼]Ä]D>‹ T TATLTQTYTsTzT|T|T˜TžT T«T²T²T¶TÅTÎTÖTßTçTîTõTùTUUUUU2U6ULU_UeUyU~U‹U‹UŸUªU±UºUÈUÑUôUúUþUVV VVV&V/VCVJV\VpVwVwV~V�VÓVläûNäNäbäxä†ä‘ä•äœä ä©ä¸äºäºäÎäÐäÙäßäßäßäßäçä´KtðEðEF'F,F3F=F=FEFXF\FaFvFxF{FF†FšFžF¦F²F¹F½FÅFÇFÏFÝFåFçFêFG GG!G%G3G -Q_s_sos{s‡s—s¯sµsÃsÔsÜsãsüs)tCtPt]tmtstut†t¨t¯tµtÃtËtátìtòtøtu ôB»8j8jRjUj\jgjvjxjƒj’j’jŸj­j°j²j²j·j¼jÅjÐjÖjßjòj÷j kk!k!k7k7kdkxk�k•kšk¡k§k®k³k³k¹k¿kÄkÄk×kåkýklll&l-l-lJlelklplpl›l l lËlòl÷l÷l÷lúlmmmmmm m$m$m;mOmUmxm~mŽmšm m®mµm·mËmÑmØmØmÚmÚmÚmßmåmêmîmðmómþm nnnnnnn)nSn -˜}Ÿ&$&$B$G$N$X$^$i$y$�$‰$Ž$™$£$©$´$Ä$Ì$Ü$ã$ë$ó$û$%%%!%!%7%  B†—?—?¯?¶?É?ñ?ü? @@ @@@@@L@T@c@�@Ÿ@Ì@Ô@Ô@ A!AABA0AQAWAfA{A}AˆA�A�A±A¶A¿AËAÓAñAÞA&B BB5BRB=BrBŠBwB¬B™BÍB»BÜBîBäBCCC.C.C:C Ð1 “ “4“4“Z“Z“z“~“ƒ“ƒ“ƒ“�“”“¤“©“©“©“®“®“ǓΓݓë“ô“” ”””””””$”+”2”9”@”G”G”I”I”O”T”[• D ,ÇrÇrÕrßrérùrþrsss's's)sYs \ No newline at end of file +€ˆ€ˆ‰ˆ�ˆ¢ˆé¤ŸÄO‚O‚k‚q‚ƒ‚ˆ‚Ž‚‘‚•‚•‚¸‚½‚ê‚Ö‚ù‚ƒþ‚!ƒ7ƒ#ƒFƒNƒSƒYƒ\ƒ`ƒbƒ{ƒgƒŠƒŠƒŠƒ¥ƒÔƒàƒê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxÓíÿdÿde/e5eAeXeXejepe{e‹e—e e¦e¬e·eÅeÒeÞeìeûeûe+fìd”©÷í÷íûíîî(î/î;î;îRîRîiîiî€î€î—î—î®î°î°î´îíÌÂñ''IP[qqƒŽ¢¦«¯±·ÉÕêì+@@LR\gu|‹�¦ÀÀÒîP7G`E`EvE‚EŠEŽEŸE­E³E¿EÇEÒEØEÛEåEï ®-?>?>Y>d>h>q>x>>•>¦>·>É>Û>ê>ù> +??? ?$?-?:?A?J?Q?U?u?u?u?u?u?�?…?ˆ?�?ž?¦?³?»?Ã?Ô?ß?ä?ä?ñ?÷?@@ @*@7@B@E@K@G@_@v@x@†@ˆ@“@™@™@¡@¡@³@º@Ð@Ð@Ð@Õ@Õ@í@û@A A AAAA2A@AMAOAOASAUAUAtA‚AŽA�A�A“A•A•A¢A¤A¤A§A§A§A§A§A°A¶AºAÆAæAóABBÐBð(rx€‹€‹Ž‹•‹¥‹¨‹®‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTzKþóþóô"ô%ô.ô8ôPô`ôiôoôrôvôxô�ô ô­ô³ô·ô½ô¿ôÂôÆôÆôéôíôóôóôúôõ1õDõWõ]õdõoõyõ}õ€õ‡õ�õ‘õ—õ¨õ®õ³õ¸õÅõÇõÙõÛõâõïõñõööööö'ö2ö>öUöUöjövö“ö·öÑöÖöíöòö÷÷÷"÷3÷H÷N÷^÷k÷÷†÷’÷ª÷¶÷¶÷¶÷¼÷¿÷Â÷Û÷á÷õ÷û÷ø ø øøø*ø*ø0ø>øUø[ø^øaøhøqøxøxø}øŠø—ø—ø�ø«øÂøÈøËøÎøÕøÕøæøíøúøùùùù ù%ù,ù7ùKùKùeùjùqùyù€ù�ù”ù�ùµùºùÁùãùîùôùüùú)ú)úDúDú^úlúsúzúœú¯úÓúÕúßúûûûû&û7ûPûTû)üóÀ€¬ÏaÏaçaëaðaÿa +bb7bbFbKbKbpb¡b„bwbÄbÉbòb÷bc$cc3c8cQcXc{c‘c‘c·c·cÃcô .0.0=0V0\0õ4‘šPP PBPOPUP[P^P~Pö8 â.â.ð.÷./ +/////#/÷ :>7171A1I1N1øÎPÏxÏxíxýxyy;yJynyœy¢y¨y°y²yºyÏyÒyÝyéyÿyz+zOz}zƒz‰z‘z–zžz³z¶zÁzÍzÒzØzÞzæzîzöz{{,{Z{`{e{m{}{£{Ñ{×{Ü{Ü{í{ø{| |8|D|L|Z|Z|_|r|‰|‹|¨|À|Ì|Ô|â|â|ç|ú|}}(}?}X}j}w}™}°}Ç}Õ}×}î}~~~~0~I~\~g~z~~~~~~~…~Š~�~¨~Â~Ä~É~Ü~ç~ô~þ~þ~ù˜k �:�:¦:²:²:È:Ó:Õ:õ:õ:õ:ü:; +;;;;;;4;4;j;v;ˆ;˜;¯;´;·;¼;¼;¼;Ø;ß;ì;ó;û;<<<(<0<5<5<Q<^<f<k<k<‡<“<œ<¤<¬<¸<Î<Ù<ü<=====7=Q=[=g=o=t=t=“=Ÿ=±=¶=Ò=Þ=í=ò=>>>>>>>>>>:>F>X>Z>]>b>b>b>l>t>{>ƒ>Œ>—>�>ª>¸>¸>Â>Ë>Ó>???$?>?C?C?V?^?^?`?`?`?e?e?l?r?v?}?�?�?�?�?�?�?µ?¾?¾?Â?ÝCú(àCàCîC÷CD Dû�ªÊÇnÇnånínùno$o2o=oLoRoRoRoWo\ojouoŽo�o•o£o®o»oÂoÐoü\2E7-7-Q-v-X-…-¡-—-¹-Î-»-Ý-ö-.!.!.(.J.J.T.ý8fpGNGN_NnN‚N‘N—N�N NÀNþ0�—xŒxŒŒŒ˜Œ¦Œ©ŒÁŒÄŒÌŒÿ0S[¶Ø¶ØÊØÒØßØéØüØP>Nø‰ø‰ŠŠŠ/Š7Š;ŠEŠOŠWŠZŠ`ŠT¡²¯P¯PÉPÜPßPéPöP Q Q Q)Q=Q=QCQFQšQ<˜£ÐŒÐŒäŒëŒ÷Œ���� �'� 26nænæ|æˆæH!/w]w]‹]—]­]™]¼]¾]Å]Ð]Ü]ä]D>‹?T?TaTlTqTyT“TšTœTœT¸T¾TÀTËTÒTÒTÖTåTîTöTÿTUUUU U(U.U3U;URUVUlUU…U™UžU«U«U¿UÊUÑUÚUèUñUVVV#V(V+V5V:VFVOVcVjV|V�V—V—VžV¡VóVläûNäNäbäxä†ä‘ä•äœä ä©ä¸äºäºäÎäÐäÙäßäßäßäßäçä´KtðEðEF'F,F3F=F=FEFXF\FaFvFxF{FF†FšFžF¦F²F¹F½FÅFÇFÏFÝFåFçFêFG GG!G%G3G -Qss�s›s§s·sÏsÕsãsôsüsttItctpt}t�t“t•t¦tÈtÏtÕtãtëtu uuu;u ôB»8j8jRjUj\jgjvjxjƒj’j’jŸj­j°j²j²j·j¼jÅjÐjÖjßjòj÷j kk!k!k7k7kdkxk�k•kšk¡k§k®k³k³k¹k¿kÄkÄk×kåkýklll&l-l-lJlelklplpl›l l lËlòl÷l÷l÷lúlmmmmmm m$m$m;mOmUmxm~mŽmšm m®mµm·mËmÑmØmØmÚmÚmÚmßmåmêmîmðmómþm nnnnnnn)nSn +˜}Ÿ&$&$B$G$N$X$^$i$y$�$‰$Ž$™$£$©$´$Ä$Ì$Ü$ã$ë$ó$û$%%%!%!%7%  B†·?·?Ï?Ö?é?@@)@7@+@`@`@l@t@ƒ@½@¿@ì@ô@ô@)AAA.AbAPAqAwA†A›A�A¨A°A°AÑAÖAßAëAóABþAFB,B BUBrB]B’BªB—BÌB¹BíBÛBüBCC%C%C%CNCNCZC Ð1 “ “4“4“Z“Z“z“~“ƒ“ƒ“ƒ“�“”“¤“©“©“©“®“®“ǓΓݓë“ô“” ”””””””$”+”2”9”@”G”G”I”I”O”T”[• D ,çrçrõrÿr sss's3s5sGsGsIsys \ No newline at end of file diff --git a/Compiler/CompilerB.HH b/Compiler/CompilerB.HH index 5db759f..90f9e7d 100644 --- a/Compiler/CompilerB.HH +++ b/Compiler/CompilerB.HH @@ -31,7 +31,7 @@ public extern I64 CmpCtrlSize(CCmpCtrl *cc); public extern I64 IsLexExpression2Bin( CCmpCtrl *cc,U8 **machine_code); //FALSE=no err public extern I64 Lex(CCmpCtrl *cc); -public extern U0 LexAttachDoc(CCmpCtrl *cc,CLexFile *tempf=NULL, +public extern U0 LexAttachDoc(CCmpCtrl *cc,CLexFile *tmpf=NULL, CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0); public extern CD2I32 *LexD2I32(CCmpCtrl *cc,CD2I32 *p); public extern CD3I32 *LexD3I32(CCmpCtrl *cc,CD3I32 *p); @@ -56,12 +56,11 @@ public extern U0 LexWarn(CCmpCtrl *cc,U8 *str=NULL); extern CMemberLst *MemberClassBaseFind( CHashClass *needle_class,CHashClass *haystack_class); public extern CMemberLst *MemberFind(U8 *needle_str,CHashClass *haystack_class); -extern U0 MemberLstDel(CMemberLst *tempm); +extern U0 MemberLstDel(CMemberLst *tmpm); public extern I64 MemberMetaData(U8 *st,CMemberLst *ml); public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml); -public extern CHashClass *OptClassFwd(CHashClass *tempc); +public extern CHashClass *OptClassFwd(CHashClass *tmpc); public extern I64 PrsKeyWord(CCmpCtrl *cc); - #help_index "Compiler;Cmd Line (Typically)" extern I64 Cmp(U8 *filename, U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0); @@ -74,6 +73,6 @@ public extern I64 Un(U8 *ip,I64 cnt=0x80,I64 seg_size=64); extern CUAsmGlbls uasm; #help_index "Hash/System" -public extern I64 HashEntrySize(CHashSrcSym *temph); -public extern I64 HashEntrySize2(CHashSrcSym *temph); +public extern I64 HashEntrySize(CHashSrcSym *tmph); +public extern I64 HashEntrySize2(CHashSrcSym *tmph); public extern I64 HashTableSize2(CHashTable *table); diff --git a/Compiler/Lex.HC b/Compiler/Lex.HC index 453f132..c885e36 100644 --- a/Compiler/Lex.HC +++ b/Compiler/Lex.HC @@ -10,17 +10,17 @@ CLexFile *LexFilePush(CCmpCtrl *cc) CLexFile *LexFilePop(CCmpCtrl *cc) {//#include file pop. - CLexFile *tempf; - if (tempf=cc->lex_include_stk) { - if ((cc->lex_include_stk=tempf->next) || !(cc->flags & CCF_DONT_FREE_BUF)) { - if (tempf->flags & LFSF_DOC) { - if (tempf->doc) - DocDel(tempf->doc); + CLexFile *tmpf; + if (tmpf=cc->lex_include_stk) { + if ((cc->lex_include_stk=tmpf->next) || !(cc->flags & CCF_DONT_FREE_BUF)) { + if (tmpf->flags & LFSF_DOC) { + if (tmpf->doc) + DocDel(tmpf->doc); } else - Free(tempf->buf);; + Free(tmpf->buf);; } - Free(tempf->full_name); - Free(tempf); + Free(tmpf->full_name); + Free(tmpf); } return cc->lex_include_stk; } @@ -31,7 +31,7 @@ CCmpCtrl *CmpCtrlNew(U8 *buf=NULL,I64 flags=0,U8 *filename=NULL) //FileName is for error reporting. If files are #included, //new names are used. See $LK,"Psalmody CmpCtrlNew",A="FF:::/Apps/Psalmody/PsalmodyFile.HC,CmpCtrlNew"$. CCmpCtrl *cc=CAlloc(sizeof(CCmpCtrl)); - CLexFile *tempf; + CLexFile *tmpf; QueInit(cc); cc->flags=flags; cc->opts=1<chars_bmp_alpha_numeric=chars_bmp_alpha_numeric_no_at; else cc->chars_bmp_alpha_numeric=chars_bmp_alpha_numeric; - tempf=LexFilePush(cc); + tmpf=LexFilePush(cc); QueInit(&cc->next_stream_blk); if (filename) - tempf->full_name=FileNameAbs(filename); + tmpf->full_name=FileNameAbs(filename); else - tempf->full_name=StrNew(blkdev.temp_filename); + tmpf->full_name=StrNew(blkdev.tmp_filename); if (flags & CCF_PMT) buf=CAlloc(8); - tempf->buf=tempf->buf_ptr=tempf->line_start=cc->cur_buf_ptr=buf; - tempf->line_num=1; + tmpf->buf=tmpf->buf_ptr=tmpf->line_start=cc->cur_buf_ptr=buf; + tmpf->line_num=1; return cc; } @@ -69,19 +69,19 @@ U0 CmpCtrlDel(CCmpCtrl *cc) I64 CmpCtrlSize(CCmpCtrl *cc) {//Mem size of CCmpCtrl and its members. - CLexFile *tempf=cc->lex_include_stk; + CLexFile *tmpf=cc->lex_include_stk; I64 res=0; - while (tempf) { - if (tempf->next || !(cc->flags & CCF_DONT_FREE_BUF)) { - if (tempf->flags & LFSF_DOC) { - if (tempf->doc) - res+=DocSize(tempf->doc); + while (tmpf) { + if (tmpf->next || !(cc->flags & CCF_DONT_FREE_BUF)) { + if (tmpf->flags & LFSF_DOC) { + if (tmpf->doc) + res+=DocSize(tmpf->doc); } else - res+=MSize2(tempf->buf); + res+=MSize2(tmpf->buf); } - res+=MSize2(tempf->full_name); - res+=MSize2(tempf); - tempf=tempf->next; + res+=MSize2(tmpf->full_name); + res+=MSize2(tmpf); + tmpf=tmpf->next; } res+=MSize2(cc->cur_str); res+=MSize2(cc); @@ -107,7 +107,7 @@ Bool LexDollar(CCmpCtrl *cc,CDoc *doc,CDocEntry *doc_e) I64 LexGetChar(CCmpCtrl *cc) {//Get one char from stream. Allow put-back one. U8 *ptr,*src; - CLexFile *tempf; + CLexFile *tmpf; CDoc *doc; CDocEntry *doc_e; if (!Btr(&cc->flags,CCf_USE_LAST_U16)) { @@ -119,50 +119,50 @@ lgc_start1: switch [cc->last_U16=*src++] { case 0: lgc_here: - tempf=cc->lex_include_stk; - if (tempf->flags & LFSF_DOC) { - doc=tempf->doc; - doc_e=tempf->cur_entry; + tmpf=cc->lex_include_stk; + if (tmpf->flags & LFSF_DOC) { + doc=tmpf->doc; + doc_e=tmpf->cur_entry; doc_e=doc_e->next; lgc_start2: if (doc_e!=doc) { - tempf->cur_entry=doc_e; + tmpf->cur_entry=doc_e; switch [doc_e->type_u8] { case DOCT_TEXT: if (doc_e->de_flags & ~(DOCEF_TAG|DOCEF_DEFINE|DOCEF_TAG_CB| DOCG_BL_IV_UL|DOCEF_WORD_WRAP|DOCEF_HIGHLIGHT| DOCEF_SKIP|DOCEF_FILTER_SKIP) && LexDollar(cc,doc,doc_e) && *(src=cc->dollar_buf)) { - tempf->line_num=doc_e->y+1; - tempf->buf_ptr=cc->cur_buf_ptr=src; + tmpf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=src; } else if (*(src=doc_e->tag)) - tempf->buf_ptr=cc->cur_buf_ptr=src; + tmpf->buf_ptr=cc->cur_buf_ptr=src; else { doc_e=doc_e->next; goto lgc_start2; } break; case DOCT_NEW_LINE: - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; - tempf->line_start=doc_e->next; - tempf->line_num=doc_e->y+2;//+1 because NEW_LINE is on prev line + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->line_start=doc_e->next; + tmpf->line_num=doc_e->y+2;//+1 because NEW_LINE is on prev line //+1 because doc y starts at zero cmp.compiled_lines++; cc->last_U16='\n'; goto lgc_done; case DOCT_TAB: - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; - tempf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->line_num=doc_e->y+1; cc->last_U16='\t'; goto lgc_done; case DOCT_PAGE_BREAK: - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; - tempf->line_num=doc_e->y+2; //TODO: should be a page down + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->line_num=doc_e->y+2; //TODO: should be a page down cc->last_U16=CH_FORM_FEED; goto lgc_done; case DOCT_INS_BIN: - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; - tempf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->line_num=doc_e->y+1; Free(cc->cur_str); cc->cur_str=NULL; cc->cur_str_len=0; @@ -176,21 +176,21 @@ lgc_start2: cc->last_U16=TK_INS_BIN; goto lgc_done; case DOCT_INS_BIN_SIZE: - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; if (doc_e->bin_data) cc->cur_i64=doc_e->bin_data->size; else cc->cur_i64=0; - tempf->line_num=doc_e->y+1; + tmpf->line_num=doc_e->y+1; cc->last_U16=TK_INS_BIN_SIZE; goto lgc_done; case DOCT_SHIFTED_Y: if (LexDollar(cc,doc,doc_e) && *(src=cc->dollar_buf)) { - tempf->line_num=doc_e->y+1; - tempf->buf_ptr=cc->cur_buf_ptr=src; + tmpf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=src; } else { - tempf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; - tempf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=&lex_zeros; + tmpf->line_num=doc_e->y+1; if (doc_e->attr<0) cc->last_U16=TK_SUPERSCRIPT; else if (doc_e->attr>0) @@ -207,8 +207,8 @@ lgc_start2: case 0xFF: //nobound switch default: if (LexDollar(cc,doc,doc_e) && *(src=cc->dollar_buf)) { - tempf->line_num=doc_e->y+1; - tempf->buf_ptr=cc->cur_buf_ptr=src; + tmpf->line_num=doc_e->y+1; + tmpf->buf_ptr=cc->cur_buf_ptr=src; } else { doc_e=doc_e->next; goto lgc_start2; @@ -217,25 +217,25 @@ lgc_start2: } if (doc_e!=doc) goto lgc_start1; - tempf->cur_entry=doc->head.last; //When take next, will still be end. + tmpf->cur_entry=doc->head.last; //When take next, will still be end. } - tempf=cc->lex_include_stk; - if (tempf->next) { - tempf=LexFilePop(cc); - cc->cur_buf_ptr=tempf->buf_ptr; + tmpf=cc->lex_include_stk; + if (tmpf->next) { + tmpf=LexFilePop(cc); + cc->cur_buf_ptr=tmpf->buf_ptr; cc->flags&=~CCF_USE_LAST_U16; - if (!(cc->last_U16=tempf->last_U16)) + if (!(cc->last_U16=tmpf->last_U16)) goto lgc_start1; } else { if (cc->flags & CCF_PMT) { - Free(tempf->buf); + Free(tmpf->buf); ptr=CmdLinePmt; if (StrCmp(ptr,"\n") && !cc->pmt_line++ && !StrCmp(ptr,"?\n") && cc->flags & CCF_QUESTION_HELP) { Free(ptr); ptr=StrNew("Help;;\n"); } - tempf->buf=tempf->buf_ptr=tempf->line_start=cc->cur_buf_ptr=ptr; + tmpf->buf=tmpf->buf_ptr=tmpf->line_start=cc->cur_buf_ptr=ptr; goto lgc_start1; } else { if (src) @@ -248,11 +248,11 @@ lgc_start2: case CH_FORM_FEED: goto lgc_start1; case '\n': - tempf=cc->lex_include_stk; - if (!(tempf->flags & LFSF_DOC)) { - tempf->line_num++; + tmpf=cc->lex_include_stk; + if (!(tmpf->flags & LFSF_DOC)) { + tmpf->line_num++; cmp.compiled_lines++; - tempf->line_start=src; + tmpf->line_start=src; } break; case 0xFF: //nobound switch @@ -277,21 +277,21 @@ U0 LexSkipEol(CCmpCtrl *cc) U8 *LexFirstRem(CCmpCtrl *cc,U8 *marker,I64 _len=NULL) {//$LK,"LexGetChar",A="MN:LexGetChar"$() chars making str until marker. U8 *res,*ptr; - CQueVectU8 *tempv=QueVectU8New; + CQueVectU8 *tmpv=QueVectU8New; I64 i,len=0; while (TRUE) { i=LexGetChar(cc); if (!i||StrOcc(marker,i)) break; - QueVectU8Put(tempv,len++,i); + QueVectU8Put(tmpv,len++,i); } if (i) Bts(&cc->flags,CCf_USE_LAST_U16); res=ptr=MAlloc(len+1); for (i=0;ifull_name=StrNew(abs_filename); + tmpf->full_name=StrNew(abs_filename); else - tempf->full_name=StrNew(blkdev.temp_filename); - tempf->line_num=1; - tempf->buf=tempf->buf_ptr=tempf->line_start=cc->cur_buf_ptr=src; + tmpf->full_name=StrNew(blkdev.tmp_filename); + tmpf->line_num=1; + tmpf->buf=tmpf->buf_ptr=tmpf->line_start=cc->cur_buf_ptr=src; } CDoc *LexDocRead(U8 *abs_filename,I64 flags) @@ -328,19 +328,19 @@ CDoc *LexDocRead(U8 *abs_filename,I64 flags) I64 cmp_type_flags_src_code[(DOCT_NUM_TYPES+63)/64]={ 1<head.next; - tempf->full_name=StrNew(doc->filename.name); - tempf->doc=doc; + tmpf->full_name=StrNew(doc->filename.name); + tmpf->doc=doc; while (doc_e!=doc) { if (Bt(cmp_type_flags_src_code,doc_e->type_u8)) break; @@ -349,25 +349,25 @@ U0 LexAttachDoc(CCmpCtrl *cc,CLexFile *tempf=NULL, } if (doc_e!=doc) { col=ClampI64(col,doc_e->min_col,doc_e->max_col); - tempf->line_start=doc_e; - tempf->buf=NULL; - tempf->line_num=doc_e->y+1; + tmpf->line_start=doc_e; + tmpf->buf=NULL; + tmpf->line_num=doc_e->y+1; if (doc_e->type_u8==DOCT_TEXT) { - tempf->cur_entry=doc_e; - tempf->buf_ptr=doc_e->tag; + tmpf->cur_entry=doc_e; + tmpf->buf_ptr=doc_e->tag; } else { - tempf->cur_entry=doc_e->last; //TODO: might be problem at begin of file - tempf->buf_ptr=&lex_zeros; + tmpf->cur_entry=doc_e->last; //TODO: might be problem at begin of file + tmpf->buf_ptr=&lex_zeros; } - tempf->flags=LFSF_DOC; + tmpf->flags=LFSF_DOC; } else {//TODO: DocDel(doc)? col=0; - tempf->buf=tempf->buf_ptr=tempf->line_start=CAlloc(1); - tempf->line_num=1; - tempf->flags=0; + tmpf->buf=tmpf->buf_ptr=tmpf->line_start=CAlloc(1); + tmpf->line_num=1; + tmpf->flags=0; } - cc->cur_buf_ptr=tempf->buf_ptr+col; - tempf->last_U16=0; + cc->cur_buf_ptr=tmpf->buf_ptr+col; + tmpf->last_U16=0; } I64 LexInStr(CCmpCtrl *cc,U8 *buf,I64 size,Bool *done) @@ -447,7 +447,7 @@ I64 LexInStr(CCmpCtrl *cc,U8 *buf,I64 size,Bool *done) I64 Lex(CCmpCtrl *cc) {//Fetch next token. I64 i,j,k,l,ch; - CHash *temph; + CHash *tmph; Bool str_done,neg_e; U8 *fbuf,*buf2,*buf3,buf[STR_LEN]; cc->last_line_num=cc->lex_include_stk->line_num; @@ -496,23 +496,23 @@ lex_ident: } } buf[i++]=0; - temph=NULL; + tmph=NULL; if (cc->htc.local_var_lst) cc->local_var_entry=MemberFind(buf,cc->htc.local_var_lst); else cc->local_var_entry=NULL; if (!cc->local_var_entry && cc->htc.hash_table_lst) - temph=HashFind(buf,cc->htc.hash_table_lst,cc->htc.hash_mask); - if (temph) - j=temph->type; + tmph=HashFind(buf,cc->htc.hash_table_lst,cc->htc.hash_mask); + if (tmph) + j=tmph->type; else j=0; if (j & HTT_DEFINE_STR && !(cc->flags & CCF_NO_DEFINES)) { LexIncludeStr(cc, - temph->str,StrNew(temph(CHashDefineStr *)->data),FALSE); + tmph->str,StrNew(tmph(CHashDefineStr *)->data),FALSE); cc->lex_include_stk->flags|=LFSF_DEFINE; } else { - cc->hash_entry=temph; + cc->hash_entry=tmph; Free(cc->cur_str); cc->cur_str=StrNew(buf); cc->cur_str_len=i; @@ -694,11 +694,11 @@ lex_float_start: } if (Lex(cc)!=TK_IDENT) //skip '#' goto lex_end; - if (!(temph=cc->hash_entry)) + if (!(tmph=cc->hash_entry)) goto lex_end; - if (!(temph->type & HTT_KEYWORD)) + if (!(tmph->type & HTT_KEYWORD)) goto lex_end; - switch (i=temph(CHashGeneric *)->user_data0) { + switch (i=tmph(CHashGeneric *)->user_data0) { case KW_INCLUDE: if (Lex(cc)!=TK_STR) goto lex_end; @@ -714,11 +714,11 @@ lex_float_start: case KW_DEFINE: cc->flags|=CCF_NO_DEFINES; if (Lex(cc)==TK_IDENT) { - temph=CAlloc(sizeof(CHashDefineStr)); - temph->str=cc->cur_str; + tmph=CAlloc(sizeof(CHashDefineStr)); + tmph->str=cc->cur_str; cc->cur_str=0; - temph->type=HTT_DEFINE_STR; - HashSrcFileSet(cc,temph); + tmph->type=HTT_DEFINE_STR; + HashSrcFileSet(cc,tmph); do ch=LexGetChar(cc); //skip space between define name and start while (Bt(chars_bmp_non_eol_white_space,ch)); @@ -788,9 +788,9 @@ lex_float_start: buf2=buf3; MemCpy(buf2,buf,j); } - temph(CHashDefineStr *)->data=buf2; - temph(CHashDefineStr *)->cnt=-1; - HashAdd(temph,cc->htc.define_hash_table); + tmph(CHashDefineStr *)->data=buf2; + tmph(CHashDefineStr *)->cnt=-1; + HashAdd(tmph,cc->htc.define_hash_table); } cc->flags&=~CCF_NO_DEFINES; break; @@ -1032,13 +1032,13 @@ lex_ifjit: case KW_HELP_FILE: if (Lex(cc)!=TK_STR) goto lex_end; - temph=CAlloc(sizeof(CHashSrcSym)); + tmph=CAlloc(sizeof(CHashSrcSym)); fbuf=DftExt(cc->cur_str,"DD.Z"); - temph->str=FileNameAbs(fbuf); + tmph->str=FileNameAbs(fbuf); Free(fbuf); - temph->type=HTT_HELP_FILE|HTF_PUBLIC; - HashSrcFileSet(cc,temph); - HashAdd(temph,cc->htc.glbl_hash_table); + tmph->type=HTT_HELP_FILE|HTF_PUBLIC; + HashSrcFileSet(cc,tmph); + HashAdd(tmph,cc->htc.glbl_hash_table); break; } break; diff --git a/Compiler/LexLib.HC b/Compiler/LexLib.HC index 0e102d4..12bec88 100644 --- a/Compiler/LexLib.HC +++ b/Compiler/LexLib.HC @@ -1,45 +1,45 @@ U0 LexBackupLastChar(CCmpCtrl *cc) { - CLexFile *tempf=cc->lex_include_stk; - tempf->buf_ptr=cc->cur_buf_ptr; + CLexFile *tmpf=cc->lex_include_stk; + tmpf->buf_ptr=cc->cur_buf_ptr; if (cc->flags & CCF_USE_LAST_U16) { - tempf->last_U16=cc->last_U16; + tmpf->last_U16=cc->last_U16; cc->flags&=~CCF_USE_LAST_U16; } else - tempf->last_U16=0; + tmpf->last_U16=0; } U0 LexPush(CCmpCtrl *cc) {//Create token-stream save point. - CLexFile *tempf; + CLexFile *tmpf; LexBackupLastChar(cc); if (cc->lex_include_stk->last_U16) cc->flags|=CCF_USE_LAST_U16; - tempf=MAllocIdent(cc->lex_include_stk); - tempf->next=cc->lex_prs_stk; - cc->lex_prs_stk=tempf; + tmpf=MAllocIdent(cc->lex_include_stk); + tmpf->next=cc->lex_prs_stk; + cc->lex_prs_stk=tmpf; } U0 LexPopRestore(CCmpCtrl *cc) {//Restore token-stream saved-point. //Bad things can happen if you cross an #include file boundary. - CLexFile *tempf=cc->lex_prs_stk; - cc->cur_buf_ptr=tempf->buf_ptr; - if (cc->last_U16=tempf->last_U16) + CLexFile *tmpf=cc->lex_prs_stk; + cc->cur_buf_ptr=tmpf->buf_ptr; + if (cc->last_U16=tmpf->last_U16) cc->flags|=CCF_USE_LAST_U16; else cc->flags&=~CCF_USE_LAST_U16; - MemCpy(cc->lex_include_stk(U8 *)+sizeof(U8 *),tempf(U8 *)+sizeof(U8 *), + MemCpy(cc->lex_include_stk(U8 *)+sizeof(U8 *),tmpf(U8 *)+sizeof(U8 *), sizeof(CLexFile)-sizeof(U8 *)); - cc->lex_prs_stk=tempf->next; - Free(tempf); + cc->lex_prs_stk=tmpf->next; + Free(tmpf); } U0 LexPopNoRestore(CCmpCtrl *cc) {//Don't restore token-stream saved-point. - CLexFile *tempf=cc->lex_prs_stk; - cc->lex_prs_stk=tempf->next; - Free(tempf); + CLexFile *tmpf=cc->lex_prs_stk; + cc->lex_prs_stk=tmpf->next; + Free(tmpf); } I64 MemberMetaData(U8 *needle_str,CMemberLst *haystack_member_lst) @@ -67,18 +67,18 @@ CMemberLstMeta *MemberMetaFind(U8 *needle_str,CMemberLst *haystack_member_lst) CMemberLst *MemberFind(U8 *needle_str,CHashClass *haystack_class) {//Find class member. See $LK,"ClassRep",A="MN:ClassRep"$() and $LK,"DocForm",A="MN:DocForm"$(). I64 i; - CMemberLst *tempm; + CMemberLst *tmpm; do { - tempm=haystack_class->member_lst_and_root; - while (tempm) { - if (!(i=StrCmp(tempm->str,needle_str))) { - tempm->use_cnt++; - return tempm; + tmpm=haystack_class->member_lst_and_root; + while (tmpm) { + if (!(i=StrCmp(tmpm->str,needle_str))) { + tmpm->use_cnt++; + return tmpm; } if (i<=0) - tempm=tempm->left; + tmpm=tmpm->left; else - tempm=tempm->right; + tmpm=tmpm->right; } } while (haystack_class=haystack_class->base_class); return NULL; @@ -87,64 +87,64 @@ CMemberLst *MemberFind(U8 *needle_str,CHashClass *haystack_class) CMemberLst *MemberClassBaseFind(CHashClass *needle_class, CHashClass *haystack_class) {//Find class member class base. For finding dup class local vars. - CMemberLst *tempm; - tempm=haystack_class->member_class_base_root; - while (tempm) { - if (needle_class==tempm->member_class_base) - return tempm; - if (needle_classmember_class_base) - tempm=tempm->left_class_base; + CMemberLst *tmpm; + tmpm=haystack_class->member_class_base_root; + while (tmpm) { + if (needle_class==tmpm->member_class_base) + return tmpm; + if (needle_classmember_class_base) + tmpm=tmpm->left_class_base; else - tempm=tempm->right_class_base; + tmpm=tmpm->right_class_base; } return NULL; } -U0 MemberAdd(CCmpCtrl *cc,CMemberLst *tempm,CHashClass *tempc,I64 mode) +U0 MemberAdd(CCmpCtrl *cc,CMemberLst *tmpm,CHashClass *tmpc,I64 mode) { - U8 *st=tempm->str; - CMemberLst **tempm1,*tempm2; + U8 *st=tmpm->str; + CMemberLst **tmpm1,*tmpm2; - if (MemberFind(st,tempc) && StrCmp(st,"pad") && + if (MemberFind(st,tmpc) && StrCmp(st,"pad") && StrCmp(st,"reserved") && StrCmp(st,"_anon_")) LexExcept(cc,"Duplicate member at "); - tempm1=&tempc->member_lst_and_root; - while (tempm2=*tempm1) { - if (StrCmp(tempm2->str,st)<=0) - tempm1=&tempm2->left; + tmpm1=&tmpc->member_lst_and_root; + while (tmpm2=*tmpm1) { + if (StrCmp(tmpm2->str,st)<=0) + tmpm1=&tmpm2->left; else - tempm1=&tempm2->right; + tmpm1=&tmpm2->right; } - *tempm1=tempm; + *tmpm1=tmpm; if (mode==PRS1B_LOCAL_VAR) { - tempm->member_class_base= - tempm->member_class-tempm->member_class->ptr_stars_cnt; + tmpm->member_class_base= + tmpm->member_class-tmpm->member_class->ptr_stars_cnt; if (Bt(&cc->opts,OPTf_WARN_DUP_TYPES) && - MemberClassBaseFind(tempm->member_class_base,tempc)) + MemberClassBaseFind(tmpm->member_class_base,tmpc)) LexWarn(cc,"Duplicate type at "); - tempm1=&tempc->member_class_base_root; - while (tempm2=*tempm1) { - if (tempm->member_class_basemember_class_base) - tempm1=&tempm2->left_class_base; - else if (tempm->member_class_base>tempm2->member_class_base) - tempm1=&tempm2->right_class_base; + tmpm1=&tmpc->member_class_base_root; + while (tmpm2=*tmpm1) { + if (tmpm->member_class_basemember_class_base) + tmpm1=&tmpm2->left_class_base; + else if (tmpm->member_class_base>tmpm2->member_class_base) + tmpm1=&tmpm2->right_class_base; else { - tempm1=NULL; + tmpm1=NULL; break; } } - if (tempm1) - *tempm1=tempm; + if (tmpm1) + *tmpm1=tmpm; } else - tempm->member_class_base=NULL; + tmpm->member_class_base=NULL; - tempm->left=NULL; - tempm->right=NULL; - tempm->left_class_base=NULL; - tempm->right_class_base=NULL; - tempm2=tempc->last_in_member_lst; - tempm2->next=tempc->last_in_member_lst=tempm; + tmpm->left=NULL; + tmpm->right=NULL; + tmpm->left_class_base=NULL; + tmpm->right_class_base=NULL; + tmpm2=tmpc->last_in_member_lst; + tmpm2->next=tmpc->last_in_member_lst=tmpm; } CMemberLst *MemberLstNew(I64 _reg) @@ -154,93 +154,93 @@ CMemberLst *MemberLstNew(I64 _reg) return res; } -Bool MemberLstCmp(CMemberLst *tempm1,CMemberLst *tempm2,I64 cnt=MAX_I64) +Bool MemberLstCmp(CMemberLst *tmpm1,CMemberLst *tmpm2,I64 cnt=MAX_I64) { - while (tempm1 && tempm2 && cnt--) { - if (StrCmp(tempm1->str,tempm2->str) || - tempm1->member_class!=tempm2->member_class || - tempm1->member_class_base!=tempm2->member_class_base) + while (tmpm1 && tmpm2 && cnt--) { + if (StrCmp(tmpm1->str,tmpm2->str) || + tmpm1->member_class!=tmpm2->member_class || + tmpm1->member_class_base!=tmpm2->member_class_base) return FALSE; - if (tempm1->flags&MLF_DFT_AVAILABLE || tempm2->flags&MLF_DFT_AVAILABLE) { - if (tempm1->flags&(MLF_DFT_AVAILABLE|MLF_STR_DFT_AVAILABLE)!= - tempm2->flags&(MLF_DFT_AVAILABLE|MLF_STR_DFT_AVAILABLE)) + if (tmpm1->flags&MLF_DFT_AVAILABLE || tmpm2->flags&MLF_DFT_AVAILABLE) { + if (tmpm1->flags&(MLF_DFT_AVAILABLE|MLF_STR_DFT_AVAILABLE)!= + tmpm2->flags&(MLF_DFT_AVAILABLE|MLF_STR_DFT_AVAILABLE)) return FALSE; - if (tempm1->flags&MLF_STR_DFT_AVAILABLE) { - if (StrCmp(tempm1->dft_val,tempm2->dft_val)) + if (tmpm1->flags&MLF_STR_DFT_AVAILABLE) { + if (StrCmp(tmpm1->dft_val,tmpm2->dft_val)) return FALSE; - } else if (tempm1->dft_val!=tempm2->dft_val) + } else if (tmpm1->dft_val!=tmpm2->dft_val) return FALSE; } - tempm1=tempm1->next; - tempm2=tempm2->next; + tmpm1=tmpm1->next; + tmpm2=tmpm2->next; } - if (cnt<0 || !tempm1 && !tempm2) + if (cnt<0 || !tmpm1 && !tmpm2) return TRUE; else return FALSE; } -U0 MemberLstDel(CMemberLst *tempm) +U0 MemberLstDel(CMemberLst *tmpm) { - CMemberLst *tempm1; - CMemberLstMeta *temp_meta,*temp_meta1; - while (tempm) { - tempm1=tempm->next; - Free(tempm->str); - LinkedLstDel(tempm->dim.next); - if (tempm->flags & MLF_STR_DFT_AVAILABLE) - Free(tempm->dft_val); - if (tempm->flags & MLF_FUN) - HashDel(tempm->fun_ptr-tempm->fun_ptr->ptr_stars_cnt); - temp_meta=tempm->meta; - while (temp_meta) { - temp_meta1=temp_meta->next; - Free(temp_meta->str); - if (temp_meta->flags&MLMF_IS_STR) - Free(temp_meta->user_data); - Free(temp_meta); - temp_meta=temp_meta1; + CMemberLst *tmpm1; + CMemberLstMeta *tmp_meta,*tmp_meta1; + while (tmpm) { + tmpm1=tmpm->next; + Free(tmpm->str); + LinkedLstDel(tmpm->dim.next); + if (tmpm->flags & MLF_STR_DFT_AVAILABLE) + Free(tmpm->dft_val); + if (tmpm->flags & MLF_FUN) + HashDel(tmpm->fun_ptr-tmpm->fun_ptr->ptr_stars_cnt); + tmp_meta=tmpm->meta; + while (tmp_meta) { + tmp_meta1=tmp_meta->next; + Free(tmp_meta->str); + if (tmp_meta->flags&MLMF_IS_STR) + Free(tmp_meta->user_data); + Free(tmp_meta); + tmp_meta=tmp_meta1; } - Free(tempm); - tempm=tempm1; + Free(tmpm); + tmpm=tmpm1; } } -U0 ClassMemberLstDel(CHashClass *tempc) +U0 ClassMemberLstDel(CHashClass *tmpc) { - MemberLstDel(tempc->member_lst_and_root); - tempc->size=0; - tempc->last_in_member_lst=&tempc->member_lst_and_root; - tempc->member_lst_and_root=NULL; - tempc->member_class_base_root=NULL; - tempc->member_cnt=0; - if (tempc->type&HTT_FUN) - tempc(CHashFun *)->arg_cnt=0; + MemberLstDel(tmpc->member_lst_and_root); + tmpc->size=0; + tmpc->last_in_member_lst=&tmpc->member_lst_and_root; + tmpc->member_lst_and_root=NULL; + tmpc->member_class_base_root=NULL; + tmpc->member_cnt=0; + if (tmpc->type&HTT_FUN) + tmpc(CHashFun *)->arg_cnt=0; } -I64 MemberLstSize(CHashClass *tempc) +I64 MemberLstSize(CHashClass *tmpc) { - CMemberLst *tempm; - CMemberLstMeta *temp_meta; + CMemberLst *tmpm; + CMemberLstMeta *tmp_meta; I64 res=0; - tempm=tempc->member_lst_and_root; - while (tempm) { - res+=MSize2(tempm->str); - res+=LinkedLstSize(tempm->dim.next); - if (tempm->flags & MLF_STR_DFT_AVAILABLE) - res+=MSize2(tempm->dft_val); - if (tempm->flags & MLF_FUN) - res+=HashEntrySize2(tempm->fun_ptr-tempm->fun_ptr->ptr_stars_cnt); - temp_meta=tempm->meta; - while (temp_meta) { - res+=MSize2(temp_meta->str); - if (temp_meta->flags&MLMF_IS_STR) - res+=MSize2(temp_meta->user_data); - res+=MSize2(temp_meta); - temp_meta=temp_meta->next; + tmpm=tmpc->member_lst_and_root; + while (tmpm) { + res+=MSize2(tmpm->str); + res+=LinkedLstSize(tmpm->dim.next); + if (tmpm->flags & MLF_STR_DFT_AVAILABLE) + res+=MSize2(tmpm->dft_val); + if (tmpm->flags & MLF_FUN) + res+=HashEntrySize2(tmpm->fun_ptr-tmpm->fun_ptr->ptr_stars_cnt); + tmp_meta=tmpm->meta; + while (tmp_meta) { + res+=MSize2(tmp_meta->str); + if (tmp_meta->flags&MLMF_IS_STR) + res+=MSize2(tmp_meta->user_data); + res+=MSize2(tmp_meta); + tmp_meta=tmp_meta->next; } - res+=MSize2(tempm); - tempm=tempm->next; + res+=MSize2(tmpm); + tmpm=tmpm->next; } return res; } diff --git a/Compiler/OpCodes.DD b/Compiler/OpCodes.DD index f6cb2da..d44120e 100644 --- a/Compiler/OpCodes.DD +++ b/Compiler/OpCodes.DD @@ -1005,7 +1005,7 @@ OPCODE STD 0xFD; OPCODE STI 0xFB; OPCODE STOSB 0xAA; OPCODE STOSW 0xAB, 16; -OPCODE STOSD $MA+LA,"",LM="NO;"$0xAB, 32; +OPCODE STOSD 0xAB, 32; OPCODE STOSQ 0xAB, 32=; OPCODE STR 0x0F 0x00,/1 16 RM16 diff --git a/Compiler/OptLib.HC b/Compiler/OptLib.HC index 4264dbd..2e4a04c 100644 --- a/Compiler/OptLib.HC +++ b/Compiler/OptLib.HC @@ -6,78 +6,78 @@ CCodeMisc *OptLabelFwd(CCodeMisc *lb) return lb; } -CHashClass *OptClassFwd(CHashClass *tempc) +CHashClass *OptClassFwd(CHashClass *tmpc) {//Class forwarding for unions and subclasses. - CHashClass *tempc1; - while (tempc1=tempc->fwd_class) - tempc=tempc1; - return tempc; + CHashClass *tmpc1; + while (tmpc1=tmpc->fwd_class) + tmpc=tmpc1; + return tmpc; } -U0 OptSetNOP1(CIntermediateCode *tempi) +U0 OptSetNOP1(CIntermediateCode *tmpi) { - tempi->ic_code=IC_NOP1; - tempi->ic_flags=0; - tempi->a1.type=MDF_NULL+tempi->a1.type.raw_type; - tempi->r.type =MDF_NULL+tempi->r.type.raw_type; + tmpi->ic_code=IC_NOP1; + tmpi->ic_flags=0; + tmpi->a1.type=MDF_NULL+tmpi->a1.type.raw_type; + tmpi->r.type =MDF_NULL+tmpi->r.type.raw_type; } -U0 OptSetNOP2(CIntermediateCode *tempi,I64 stk_delta=1) +U0 OptSetNOP2(CIntermediateCode *tmpi,I64 stk_delta=1) { - tempi->ic_code=IC_NOP2; - tempi->ic_data=stk_delta; - tempi->a1.type=MDF_NULL+tempi->a1.type.raw_type; - tempi->r.type =MDF_NULL+tempi->r.type.raw_type; + tmpi->ic_code=IC_NOP2; + tmpi->ic_data=stk_delta; + tmpi->a1.type=MDF_NULL+tmpi->a1.type.raw_type; + tmpi->r.type =MDF_NULL+tmpi->r.type.raw_type; } -CIntermediateCode *OptFree(CIntermediateCode *tempi) +CIntermediateCode *OptFree(CIntermediateCode *tmpi) {//We might access freed entries in CICTreeLinks - QueRem(tempi); - Free(tempi); + QueRem(tmpi); + Free(tmpi); return NULL; } -CIntermediateCode *OptLag(CIntermediateCode *tempi) +CIntermediateCode *OptLag(CIntermediateCode *tmpi) { do { - if (!tempi->ic_code) + if (!tmpi->ic_code) return NULL; else - tempi=tempi->last; - } while (tempi->ic_code<=IC_END_EXP); - return tempi; + tmpi=tmpi->last; + } while (tmpi->ic_code<=IC_END_EXP); + return tmpi; } -CIntermediateCode *OptLag1(CIntermediateCode *tempi) +CIntermediateCode *OptLag1(CIntermediateCode *tmpi) { do { - if (!tempi->ic_code) + if (!tmpi->ic_code) return NULL; else - tempi=tempi->last; - } while (tempi->ic_code==IC_NOP1||tempi->ic_code==IC_NOP2); - return tempi; + tmpi=tmpi->last; + } while (tmpi->ic_code==IC_NOP1||tmpi->ic_code==IC_NOP2); + return tmpi; } -CIntermediateCode *OptLag2(CIntermediateCode *tempi) +CIntermediateCode *OptLag2(CIntermediateCode *tmpi) { do { - if (!tempi->ic_code) + if (!tmpi->ic_code) return NULL; else - tempi=tempi->last; - } while (tempi->ic_codelast; + } while (tmpi->ic_codenext; - if (!tempi->ic_code) + tmpi=tmpi->next; + if (!tmpi->ic_code) return NULL; - } while (tempi->ic_code==IC_NOP1||tempi->ic_code==IC_NOP2); - return tempi; + } while (tmpi->ic_code==IC_NOP1||tmpi->ic_code==IC_NOP2); + return tmpi; } I64 CmpOffset2Reg(I64 offset,COptReg *reg_offsets) @@ -93,64 +93,64 @@ I64 CmpOffset2Reg(I64 offset,COptReg *reg_offsets) #define FBO1_INT 1 #define FBO1_F64 2 -Bool OptFixupBinaryOp1(CIntermediateCode *tempi, - CIntermediateCode *tempi1,CIntermediateCode *tempi2, +Bool OptFixupBinaryOp1(CIntermediateCode *tmpi, + CIntermediateCode *tmpi1,CIntermediateCode *tmpi2, Bool *is_unsigned) { - CIntermediateCode *tempii; - CHashClass *tempc=tempi->ic_class,*tempc1,*tempc2; + CIntermediateCode *tmpii; + CHashClass *tmpc=tmpi->ic_class,*tmpc1,*tmpc2; - if (tempi1->ic_flags&ICF_R_TO_INT) - tempc1=cmp.internal_types[RT_I64]; - else if (tempi1->ic_flags&ICF_R_TO_F64) - tempc1=cmp.internal_types[RT_F64]; + if (tmpi1->ic_flags&ICF_R_TO_INT) + tmpc1=cmp.internal_types[RT_I64]; + else if (tmpi1->ic_flags&ICF_R_TO_F64) + tmpc1=cmp.internal_types[RT_F64]; else { - tempc1=OptClassFwd(tempi1->ic_class); + tmpc1=OptClassFwd(tmpi1->ic_class); } - if (tempi2->ic_flags&ICF_R_TO_INT) - tempc2=cmp.internal_types[RT_I64]; - else if (tempi2->ic_flags&ICF_R_TO_F64) - tempc2=cmp.internal_types[RT_F64]; + if (tmpi2->ic_flags&ICF_R_TO_INT) + tmpc2=cmp.internal_types[RT_I64]; + else if (tmpi2->ic_flags&ICF_R_TO_F64) + tmpc2=cmp.internal_types[RT_F64]; else { - tempc2=OptClassFwd(tempi2->ic_class); + tmpc2=OptClassFwd(tmpi2->ic_class); } - if (tempc1->raw_type>tempc2->raw_type) - tempc=tempi->ic_class=tempc1; + if (tmpc1->raw_type>tmpc2->raw_type) + tmpc=tmpi->ic_class=tmpc1; else - tempc=tempi->ic_class=tempc2; + tmpc=tmpi->ic_class=tmpc2; - if (tempc->raw_type==RT_F64) { - if (tempi1->ic_code==IC_IMM_I64) { - tempi1->ic_data(F64)=tempi1->ic_data; - tempi1->ic_class=cmp.internal_types[RT_F64]; - tempi1->ic_code=IC_IMM_F64; - tempi1->ic_flags&=~ICF_R_TO_F64; + if (tmpc->raw_type==RT_F64) { + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi1->ic_data(F64)=tmpi1->ic_data; + tmpi1->ic_class=cmp.internal_types[RT_F64]; + tmpi1->ic_code=IC_IMM_F64; + tmpi1->ic_flags&=~ICF_R_TO_F64; } else - if (tempc1->raw_type!=RT_F64) - tempi1->ic_flags|=ICF_R_TO_F64; - if (tempi2->ic_code==IC_IMM_I64) { - tempi2->ic_data(F64)=tempi2->ic_data; - tempi2->ic_class=cmp.internal_types[RT_F64]; - tempi2->ic_code=IC_IMM_F64; - tempi2->ic_flags&=~ICF_R_TO_F64; + if (tmpc1->raw_type!=RT_F64) + tmpi1->ic_flags|=ICF_R_TO_F64; + if (tmpi2->ic_code==IC_IMM_I64) { + tmpi2->ic_data(F64)=tmpi2->ic_data; + tmpi2->ic_class=cmp.internal_types[RT_F64]; + tmpi2->ic_code=IC_IMM_F64; + tmpi2->ic_flags&=~ICF_R_TO_F64; } else - if (tempc2->raw_type!=RT_F64) - tempi2->ic_flags|=ICF_R_TO_F64; - if (IC_LESS<=tempi->ic_code<=IC_GREATER_EQU && (tempii=OptLead1(tempi)) && - tempii->ic_code!=IC_PUSH_CMP && tempii->ic_code!=IC_AND_AND) { + if (tmpc2->raw_type!=RT_F64) + tmpi2->ic_flags|=ICF_R_TO_F64; + if (IC_LESS<=tmpi->ic_code<=IC_GREATER_EQU && (tmpii=OptLead1(tmpi)) && + tmpii->ic_code!=IC_PUSH_CMP && tmpii->ic_code!=IC_AND_AND) { //We are looking for float comparisons to zero to convert to int. - if (tempi1->ic_code==IC_IMM_F64 && !tempi1->ic_data && - tempi2->ic_code==IC_DEREF && tempc2==cmp.internal_types[RT_F64]) { - tempi1->ic_code==IC_IMM_I64; + if (tmpi1->ic_code==IC_IMM_F64 && !tmpi1->ic_data && + tmpi2->ic_code==IC_DEREF && tmpc2==cmp.internal_types[RT_F64]) { + tmpi1->ic_code==IC_IMM_I64; goto fb_here1; - } else if (tempi2->ic_code==IC_IMM_F64 && !tempi2->ic_data && - tempi1->ic_code==IC_DEREF && tempc1==cmp.internal_types[RT_F64]) { - tempi2->ic_code==IC_IMM_I64; + } else if (tmpi2->ic_code==IC_IMM_F64 && !tmpi2->ic_data && + tmpi1->ic_code==IC_DEREF && tmpc1==cmp.internal_types[RT_F64]) { + tmpi2->ic_code==IC_IMM_I64; fb_here1: - tempi1->ic_flags&=~ICF_R_TO_F64; - tempi->ic_class=tempi1->ic_class=tempi2->ic_class= + tmpi1->ic_flags&=~ICF_R_TO_F64; + tmpi->ic_class=tmpi1->ic_class=tmpi2->ic_class= cmp.internal_types[RT_I64]; *is_unsigned=FALSE; return FBO1_NOT_CONST; @@ -158,399 +158,399 @@ fb_here1: goto fb_here2; } else { fb_here2: - if (tempi1->ic_code==IC_IMM_F64 && tempi2->ic_code==IC_IMM_F64 && - !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - OptSetNOP1(tempi1); - OptSetNOP1(tempi2); + if (tmpi1->ic_code==IC_IMM_F64 && tmpi2->ic_code==IC_IMM_F64 && + !(tmpi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { + tmpi->ic_flags|=tmpi1->ic_flags|tmpi2->ic_flags; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi2); return FBO1_F64; } else return FBO1_NOT_CONST; } } - *is_unsigned=tempc1->raw_type&RTF_UNSIGNED || tempc2->raw_type&RTF_UNSIGNED; - if (tempi1->ic_code==IC_IMM_I64 && tempi2->ic_code==IC_IMM_I64 && - !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - OptSetNOP1(tempi1); - OptSetNOP1(tempi2); + *is_unsigned=tmpc1->raw_type&RTF_UNSIGNED || tmpc2->raw_type&RTF_UNSIGNED; + if (tmpi1->ic_code==IC_IMM_I64 && tmpi2->ic_code==IC_IMM_I64 && + !(tmpi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { + tmpi->ic_flags|=tmpi1->ic_flags|tmpi2->ic_flags; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi2); return FBO1_INT; } else return FBO1_NOT_CONST; } -Bool OptFixupBinaryOp2(CIntermediateCode **tempi1,CIntermediateCode **tempi2) +Bool OptFixupBinaryOp2(CIntermediateCode **tmpi1,CIntermediateCode **tmpi2) { - CIntermediateCode *tempii1=*tempi1, - *tempii2=*tempi2; - if (tempii1->ic_code==IC_IMM_I64 && !(tempii1->ic_flags & ICF_R_TO_F64)) + CIntermediateCode *tmpii1=*tmpi1, + *tmpii2=*tmpi2; + if (tmpii1->ic_code==IC_IMM_I64 && !(tmpii1->ic_flags & ICF_R_TO_F64)) return TRUE; - if (tempii2->ic_code==IC_IMM_I64 && !(tempii2->ic_flags & ICF_R_TO_F64)) { - *tempi1=tempii2; - *tempi2=tempii1; + if (tmpii2->ic_code==IC_IMM_I64 && !(tmpii2->ic_flags & ICF_R_TO_F64)) { + *tmpi1=tmpii2; + *tmpi2=tmpii1; return TRUE; } return FALSE; } -Bool OptFixupUnaryOp(CIntermediateCode *tempi, CIntermediateCode *tempi1, +Bool OptFixupUnaryOp(CIntermediateCode *tmpi, CIntermediateCode *tmpi1, Bool *is_unsigned) { - CHashClass *tempc,*tempc1; - tempc1=OptClassFwd(tempi1->ic_class); - tempi->ic_class=tempc1; - tempc=tempi->ic_class; - if (tempc->raw_type==RT_F64) { - if (tempi1->ic_code==IC_IMM_I64) { - tempi1->ic_data(F64)=tempi1->ic_data; - tempi1->ic_class=cmp.internal_types[RT_F64]; - tempi1->ic_code=IC_IMM_F64; - tempi1->ic_flags&=~ICF_R_TO_F64; + CHashClass *tmpc,*tmpc1; + tmpc1=OptClassFwd(tmpi1->ic_class); + tmpi->ic_class=tmpc1; + tmpc=tmpi->ic_class; + if (tmpc->raw_type==RT_F64) { + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi1->ic_data(F64)=tmpi1->ic_data; + tmpi1->ic_class=cmp.internal_types[RT_F64]; + tmpi1->ic_code=IC_IMM_F64; + tmpi1->ic_flags&=~ICF_R_TO_F64; } else - if (tempc1->raw_type!=RT_F64) - tempi1->ic_flags|=ICF_R_TO_F64; - if (tempi1->ic_code==IC_IMM_F64) { - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpc1->raw_type!=RT_F64) + tmpi1->ic_flags|=ICF_R_TO_F64; + if (tmpi1->ic_code==IC_IMM_F64) { + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); return FBO1_F64; } else return FBO1_NOT_CONST; } - *is_unsigned=tempc1->raw_type&RTF_UNSIGNED; - if (tempi1->ic_code==IC_IMM_I64) { - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + *is_unsigned=tmpc1->raw_type&RTF_UNSIGNED; + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); return FBO1_INT; } else return FBO1_NOT_CONST; } -extern CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tempi); +extern CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tmpi); -CIntermediateCode *OptBrZero(CCmpCtrl *cc,CIntermediateCode *tempi) +CIntermediateCode *OptBrZero(CCmpCtrl *cc,CIntermediateCode *tmpi) { CCodeMisc *lb_true,*lb_false; - CIntermediateCode *tempii=OptLag(tempi),*tempii2; - switch (tempii->ic_code) { + CIntermediateCode *tmpii=OptLag(tmpi),*tmpii2; + switch (tmpii->ic_code) { case IC_NOT: - tempi->ic_code=IC_BR_NOT_ZERO; - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->t.a1c=tempii->t.a1c; - tempi->t.a1t=tempii->t.a1t; - OptFree(tempii); - return OptBrNotZero(cc,tempi); + tmpi->ic_code=IC_BR_NOT_ZERO; + tmpi->ic_class=tmpii->ic_class; + tmpi->ic_flags|=tmpii->ic_flags; + tmpi->t.a1c=tmpii->t.a1c; + tmpi->t.a1t=tmpii->t.a1t; + OptFree(tmpii); + return OptBrNotZero(cc,tmpi); case IC_EQU_EQU...IC_LESS_EQU: - tempi->ic_code=(tempii->ic_code-IC_EQU_EQU)^1+IC_BR_EQU_EQU; + tmpi->ic_code=(tmpii->ic_code-IC_EQU_EQU)^1+IC_BR_EQU_EQU; break; case IC_OR_OR: - tempi->ic_code=IC_BR_OR_OR_ZERO; + tmpi->ic_code=IC_BR_OR_OR_ZERO; break; case IC_AND_AND: - tempi->ic_code=IC_BR_AND_AND_ZERO; + tmpi->ic_code=IC_BR_AND_AND_ZERO; break; case IC_AND: - tempi->ic_code=IC_BR_AND_ZERO; + tmpi->ic_code=IC_BR_AND_ZERO; break; case IC_MM_: - if (cc->pass==2 && !(tempii->ic_flags&ICF_R_TO_F64) && - tempii->ic_class->raw_type!=RT_F64) - tempi->ic_code=IC_BR_MM_ZERO; + if (cc->pass==2 && !(tmpii->ic_flags&ICF_R_TO_F64) && + tmpii->ic_class->raw_type!=RT_F64) + tmpi->ic_code=IC_BR_MM_ZERO; break; case IC_CALL_END: - tempii2=OptLag(tempii); - switch (tempii2->ic_code) { + tmpii2=OptLag(tmpii); + switch (tmpii2->ic_code) { start: case IC_CARRY: - tempii2->ic_code=IC_BR_NOT_CARRY; + tmpii2->ic_code=IC_BR_NOT_CARRY; break; case IC_BT: - tempii2->ic_code=IC_BR_NOT_BT; + tmpii2->ic_code=IC_BR_NOT_BT; break; case IC_LBTS: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTS: - tempii2->ic_code=IC_BR_NOT_BTS; + tmpii2->ic_code=IC_BR_NOT_BTS; break; case IC_LBTR: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTR: - tempii2->ic_code=IC_BR_NOT_BTR; + tmpii2->ic_code=IC_BR_NOT_BTR; break; case IC_LBTC: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTC: - tempii2->ic_code=IC_BR_NOT_BTC; + tmpii2->ic_code=IC_BR_NOT_BTC; break; end: - tempii2->ic_data=tempi->ic_data; - tempii->ic_code=IC_CALL_END2; - OptSetNOP1(tempi); - return tempii; + tmpii2->ic_data=tmpi->ic_data; + tmpii->ic_code=IC_CALL_END2; + OptSetNOP1(tmpi); + return tmpii; } break; } - if (tempi->ic_code!=IC_BR_ZERO) { - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->t.a1c=tempii->t.a1c; - tempi->t.a2c=tempii->t.a2c; - tempi->t.a1t=tempii->t.a1t; - tempi->t.a2t=tempii->t.a2t; - OptFree(tempii); + if (tmpi->ic_code!=IC_BR_ZERO) { + tmpi->ic_class=tmpii->ic_class; + tmpi->ic_flags|=tmpii->ic_flags; + tmpi->t.a1c=tmpii->t.a1c; + tmpi->t.a2c=tmpii->t.a2c; + tmpi->t.a1t=tmpii->t.a1t; + tmpi->t.a2t=tmpii->t.a2t; + OptFree(tmpii); - if (tempi->ic_flags&ICF_PUSH_CMP && - IC_BR_NOT_EQU<=tempi->ic_code<=IC_BR_LESS_EQU && - !(tempi->ic_flags&ICF_USE_F64)) { - tempi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; - tempi->ic_flags&=~ICF_PUSH_CMP; - tempii=tempi->next; //IC_PUSH_CMP inst - while (tempii->ic_code!=IC_PUSH_CMP) - tempii=tempii->next; - tempii->t.a1t=tempi; - OptSetNOP1(tempii); + if (tmpi->ic_flags&ICF_PUSH_CMP && + IC_BR_NOT_EQU<=tmpi->ic_code<=IC_BR_LESS_EQU && + !(tmpi->ic_flags&ICF_USE_F64)) { + tmpi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; + tmpi->ic_flags&=~ICF_PUSH_CMP; + tmpii=tmpi->next; //IC_PUSH_CMP inst + while (tmpii->ic_code!=IC_PUSH_CMP) + tmpii=tmpii->next; + tmpii->t.a1t=tmpi; + OptSetNOP1(tmpii); } - lb_true=tempi->ic_data; - if (tempi->ic_code==IC_BR_AND_AND_ZERO) { - tempii=tempi->t.a1t->next; - tempii->ic_data=lb_true; - tempii->t.a1t=tempi->t.a1t; - tempii->t.a1c=tempi->t.a1c; - tempii->ic_code=IC_BR_ZERO; - OptBrZero(cc,tempii); - tempii=tempi->t.a2t->next; - tempii->t.a1t=tempi->t.a2t; - tempii->t.a1c=tempi->t.a2c; - tempii->ic_data=lb_true; - tempii->ic_code=IC_BR_ZERO; - tempii=OptBrZero(cc,tempii); - OptSetNOP1(tempi); - } else if (tempi->ic_code==IC_BR_OR_OR_ZERO) { + lb_true=tmpi->ic_data; + if (tmpi->ic_code==IC_BR_AND_AND_ZERO) { + tmpii=tmpi->t.a1t->next; + tmpii->ic_data=lb_true; + tmpii->t.a1t=tmpi->t.a1t; + tmpii->t.a1c=tmpi->t.a1c; + tmpii->ic_code=IC_BR_ZERO; + OptBrZero(cc,tmpii); + tmpii=tmpi->t.a2t->next; + tmpii->t.a1t=tmpi->t.a2t; + tmpii->t.a1c=tmpi->t.a2c; + tmpii->ic_data=lb_true; + tmpii->ic_code=IC_BR_ZERO; + tmpii=OptBrZero(cc,tmpii); + OptSetNOP1(tmpi); + } else if (tmpi->ic_code==IC_BR_OR_OR_ZERO) { lb_false=COCMiscNew(cc,CMT_LABEL); - tempi->ic_code=IC_LABEL; - tempi->ic_flags=0; - tempi->ic_data=lb_false; - tempii=tempi->t.a1t->next; - tempii->t.a1t=tempi->t.a1t; - tempii->t.a1c=tempi->t.a1c; - tempii->ic_data=lb_false; - tempii->ic_code=IC_BR_NOT_ZERO; - OptBrNotZero(cc,tempii); - tempii=tempi->t.a2t->next; - tempii->t.a1t=tempi->t.a2t; - tempii->t.a1c=tempi->t.a2c; - tempii->ic_data=lb_true; - tempii->ic_code=IC_BR_ZERO; - tempii=OptBrZero(cc,tempii); + tmpi->ic_code=IC_LABEL; + tmpi->ic_flags=0; + tmpi->ic_data=lb_false; + tmpii=tmpi->t.a1t->next; + tmpii->t.a1t=tmpi->t.a1t; + tmpii->t.a1c=tmpi->t.a1c; + tmpii->ic_data=lb_false; + tmpii->ic_code=IC_BR_NOT_ZERO; + OptBrNotZero(cc,tmpii); + tmpii=tmpi->t.a2t->next; + tmpii->t.a1t=tmpi->t.a2t; + tmpii->t.a1c=tmpi->t.a2c; + tmpii->ic_data=lb_true; + tmpii->ic_code=IC_BR_ZERO; + tmpii=OptBrZero(cc,tmpii); } else - tempii=tempi; - if (tempi->ic_flags&ICF_POP_CMP && tempi->t.a1t->ic_code==IC_NOP1) { - tempi->t.a1t=tempi->t.a1t->t.a1t; - tempi->ic_flags&=~ICF_POP_CMP; + tmpii=tmpi; + if (tmpi->ic_flags&ICF_POP_CMP && tmpi->t.a1t->ic_code==IC_NOP1) { + tmpi->t.a1t=tmpi->t.a1t->t.a1t; + tmpi->ic_flags&=~ICF_POP_CMP; } - return tempii; + return tmpii; } - return tempi; + return tmpi; } -CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tempi) +CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tmpi) { CCodeMisc *lb_true,*lb_false; - CIntermediateCode *tempii=OptLag(tempi),*tempii2; - switch (tempii->ic_code) { + CIntermediateCode *tmpii=OptLag(tmpi),*tmpii2; + switch (tmpii->ic_code) { case IC_NOT: - tempi->ic_code=IC_BR_ZERO; - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->t.a1c=tempii->t.a1c; - tempi->t.a1t=tempii->t.a1t; - OptFree(tempii); - return OptBrZero(cc,tempi); + tmpi->ic_code=IC_BR_ZERO; + tmpi->ic_class=tmpii->ic_class; + tmpi->ic_flags|=tmpii->ic_flags; + tmpi->t.a1c=tmpii->t.a1c; + tmpi->t.a1t=tmpii->t.a1t; + OptFree(tmpii); + return OptBrZero(cc,tmpi); case IC_EQU_EQU...IC_LESS_EQU: - tempi->ic_code=tempii->ic_code+IC_BR_EQU_EQU-IC_EQU_EQU; + tmpi->ic_code=tmpii->ic_code+IC_BR_EQU_EQU-IC_EQU_EQU; break; case IC_OR_OR: - tempi->ic_code=IC_BR_OR_OR_NOT_ZERO; + tmpi->ic_code=IC_BR_OR_OR_NOT_ZERO; break; case IC_AND_AND: - tempi->ic_code=IC_BR_AND_AND_NOT_ZERO; + tmpi->ic_code=IC_BR_AND_AND_NOT_ZERO; break; case IC_AND: - tempi->ic_code=IC_BR_AND_NOT_ZERO; + tmpi->ic_code=IC_BR_AND_NOT_ZERO; break; case IC_MM_: - if (cc->pass==2 && !(tempii->ic_flags&ICF_R_TO_F64) && - tempii->ic_class->raw_type!=RT_F64) - tempi->ic_code=IC_BR_MM_NOT_ZERO; + if (cc->pass==2 && !(tmpii->ic_flags&ICF_R_TO_F64) && + tmpii->ic_class->raw_type!=RT_F64) + tmpi->ic_code=IC_BR_MM_NOT_ZERO; break; case IC_CALL_END: - tempii2=OptLag(tempii); - switch (tempii2->ic_code) { + tmpii2=OptLag(tmpii); + switch (tmpii2->ic_code) { start: case IC_CARRY: - tempii2->ic_code=IC_BR_CARRY; + tmpii2->ic_code=IC_BR_CARRY; break; case IC_BT: - tempii2->ic_code=IC_BR_BT; + tmpii2->ic_code=IC_BR_BT; break; case IC_LBTS: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTS: - tempii2->ic_code=IC_BR_BTS; + tmpii2->ic_code=IC_BR_BTS; break; case IC_LBTR: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTR: - tempii2->ic_code=IC_BR_BTR; + tmpii2->ic_code=IC_BR_BTR; break; case IC_LBTC: - tempii2->ic_flags|=ICF_LOCK; + tmpii2->ic_flags|=ICF_LOCK; case IC_BTC: - tempii2->ic_code=IC_BR_BTC; + tmpii2->ic_code=IC_BR_BTC; break; end: - tempii2->ic_data=tempi->ic_data; - tempii->ic_code=IC_CALL_END2; - OptSetNOP1(tempi); - return tempii; + tmpii2->ic_data=tmpi->ic_data; + tmpii->ic_code=IC_CALL_END2; + OptSetNOP1(tmpi); + return tmpii; } break; } - if (tempi->ic_code!=IC_BR_NOT_ZERO) { - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->t.a1c=tempii->t.a1c; - tempi->t.a2c=tempii->t.a2c; - tempi->t.a1t=tempii->t.a1t; - tempi->t.a2t=tempii->t.a2t; - OptFree(tempii); + if (tmpi->ic_code!=IC_BR_NOT_ZERO) { + tmpi->ic_class=tmpii->ic_class; + tmpi->ic_flags|=tmpii->ic_flags; + tmpi->t.a1c=tmpii->t.a1c; + tmpi->t.a2c=tmpii->t.a2c; + tmpi->t.a1t=tmpii->t.a1t; + tmpi->t.a2t=tmpii->t.a2t; + OptFree(tmpii); - if (tempi->ic_flags&ICF_PUSH_CMP && - IC_BR_NOT_EQU<=tempi->ic_code<=IC_BR_LESS_EQU && - !(tempi->ic_flags&ICF_USE_F64)) { - tempi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; - tempi->ic_flags&=~ICF_PUSH_CMP; - tempii=tempi->next; //IC_PUSH_CMP inst - while (tempii->ic_code!=IC_PUSH_CMP) - tempii=tempii->next; - tempii->t.a1t=tempi; - OptSetNOP1(tempii); + if (tmpi->ic_flags&ICF_PUSH_CMP && + IC_BR_NOT_EQU<=tmpi->ic_code<=IC_BR_LESS_EQU && + !(tmpi->ic_flags&ICF_USE_F64)) { + tmpi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; + tmpi->ic_flags&=~ICF_PUSH_CMP; + tmpii=tmpi->next; //IC_PUSH_CMP inst + while (tmpii->ic_code!=IC_PUSH_CMP) + tmpii=tmpii->next; + tmpii->t.a1t=tmpi; + OptSetNOP1(tmpii); } - lb_true=tempi->ic_data; - if (tempi->ic_code==IC_BR_OR_OR_NOT_ZERO) { - tempii=tempi->t.a1t->next; - tempii->t.a1t=tempi->t.a1t; - tempii->t.a1c=tempi->t.a1c; - tempii->ic_data=lb_true; - tempii->ic_code=IC_BR_NOT_ZERO; - OptBrNotZero(cc,tempii); - tempii=tempi->t.a2t->next; - tempii->t.a1t=tempi->t.a2t; - tempii->t.a1c=tempi->t.a2c; - tempii->ic_data=lb_true; - tempii->ic_code=IC_BR_NOT_ZERO; - tempii=OptBrNotZero(cc,tempii); - OptSetNOP1(tempi); - } else if (tempi->ic_code==IC_BR_AND_AND_NOT_ZERO) { + lb_true=tmpi->ic_data; + if (tmpi->ic_code==IC_BR_OR_OR_NOT_ZERO) { + tmpii=tmpi->t.a1t->next; + tmpii->t.a1t=tmpi->t.a1t; + tmpii->t.a1c=tmpi->t.a1c; + tmpii->ic_data=lb_true; + tmpii->ic_code=IC_BR_NOT_ZERO; + OptBrNotZero(cc,tmpii); + tmpii=tmpi->t.a2t->next; + tmpii->t.a1t=tmpi->t.a2t; + tmpii->t.a1c=tmpi->t.a2c; + tmpii->ic_data=lb_true; + tmpii->ic_code=IC_BR_NOT_ZERO; + tmpii=OptBrNotZero(cc,tmpii); + OptSetNOP1(tmpi); + } else if (tmpi->ic_code==IC_BR_AND_AND_NOT_ZERO) { lb_false=COCMiscNew(cc,CMT_LABEL); - tempi->ic_code=IC_LABEL; - tempi->ic_flags=0; - tempi->ic_data=lb_false; - tempii=tempi->t.a1t->next; - tempii->t.a1t=tempi->t.a1t; - tempii->t.a1c=tempi->t.a1c; - tempii->ic_data=lb_false; - tempii->ic_code=IC_BR_ZERO; - OptBrZero(cc,tempii); - tempii=tempi->t.a2t->next; - tempii->t.a1t=tempi->t.a2t; - tempii->t.a1c=tempi->t.a2c; - tempii->ic_data=lb_true; - tempii->ic_code=IC_BR_NOT_ZERO; - tempii=OptBrNotZero(cc,tempii); + tmpi->ic_code=IC_LABEL; + tmpi->ic_flags=0; + tmpi->ic_data=lb_false; + tmpii=tmpi->t.a1t->next; + tmpii->t.a1t=tmpi->t.a1t; + tmpii->t.a1c=tmpi->t.a1c; + tmpii->ic_data=lb_false; + tmpii->ic_code=IC_BR_ZERO; + OptBrZero(cc,tmpii); + tmpii=tmpi->t.a2t->next; + tmpii->t.a1t=tmpi->t.a2t; + tmpii->t.a1c=tmpi->t.a2c; + tmpii->ic_data=lb_true; + tmpii->ic_code=IC_BR_NOT_ZERO; + tmpii=OptBrNotZero(cc,tmpii); } else - tempii=tempi; - if (tempi->ic_flags&ICF_POP_CMP && tempi->t.a1t->ic_code==IC_NOP1) { - tempi->t.a1t=tempi->t.a1t->t.a1t; - tempi->ic_flags&=~ICF_POP_CMP; + tmpii=tmpi; + if (tmpi->ic_flags&ICF_POP_CMP && tmpi->t.a1t->ic_code==IC_NOP1) { + tmpi->t.a1t=tmpi->t.a1t->t.a1t; + tmpi->ic_flags&=~ICF_POP_CMP; } - return tempii; + return tmpii; } - return tempi; + return tmpi; } -U0 OptFixSizeOf(CIntermediateCode *tempi1, - CIntermediateCode *tempi_push,CHashClass *tempcc) +U0 OptFixSizeOf(CIntermediateCode *tmpi1, + CIntermediateCode *tmpi_push,CHashClass *tmpcc) { - if (tempi1->ic_code==IC_MUL && tempi1->t.a2t->ic_code==IC_SIZEOF) { - tempi1->t.a2t->ic_code=IC_IMM_I64; - tempi1->t.a2t->ic_class=tempcc; - tempi_push->ic_class=tempcc; - if (tempcc->ptr_stars_cnt) { - tempcc--; - if (tempcc->size==1) + if (tmpi1->ic_code==IC_MUL && tmpi1->t.a2t->ic_code==IC_SIZEOF) { + tmpi1->t.a2t->ic_code=IC_IMM_I64; + tmpi1->t.a2t->ic_class=tmpcc; + tmpi_push->ic_class=tmpcc; + if (tmpcc->ptr_stars_cnt) { + tmpcc--; + if (tmpcc->size==1) goto here; - tempi1->t.a2t->ic_data=tempcc->size; + tmpi1->t.a2t->ic_data=tmpcc->size; } else { here: - if (tempi_push==tempi1) - tempi1->t.a2t->ic_data=1; + if (tmpi_push==tmpi1) + tmpi1->t.a2t->ic_data=1; else { - OptSetNOP1(tempi1->t.a2t); - OptSetNOP1(tempi1); + OptSetNOP1(tmpi1->t.a2t); + OptSetNOP1(tmpi1); } } } } -I64 CmpRawType(CHashClass *tempc) +I64 CmpRawType(CHashClass *tmpc) { - if (tempc) { - tempc=OptClassFwd(tempc); - return tempc->raw_type; + if (tmpc) { + tmpc=OptClassFwd(tmpc); + return tmpc->raw_type; } return 0; } -I64 CmpRawTypePointed(CHashClass *tempc) +I64 CmpRawTypePointed(CHashClass *tmpc) { - if (tempc) { - if (tempc->ptr_stars_cnt) - tempc--; - tempc=OptClassFwd(tempc); - return tempc->raw_type; + if (tmpc) { + if (tmpc->ptr_stars_cnt) + tmpc--; + tmpc=OptClassFwd(tmpc); + return tmpc->raw_type; } return 0; } -U0 CmpMinTypePointed(CIntermediateCode *tempi,I64 pt1) +U0 CmpMinTypePointed(CIntermediateCode *tmpi,I64 pt1) { I64 pt; - if ((pt=tempi->a1_type_pointed_to) && pt!=RT_F64 && 0a1_type_pointed_to=pt; + if ((pt=tmpi->a1_type_pointed_to) && pt!=RT_F64 && 0a1_type_pointed_to=pt; } -U0 CmpF1PushPop(CIntermediateCode *tempi,CIntermediateCode *tempi2) +U0 CmpF1PushPop(CIntermediateCode *tmpi,CIntermediateCode *tmpi2) { - if (intermediate_code_table[tempi2->ic_code].fpop|| - tempi2->ic_flags&ICF_R_TO_F64) - Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); + if (intermediate_code_table[tmpi2->ic_code].fpop|| + tmpi2->ic_flags&ICF_R_TO_F64) + Bts(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0); } -U0 CmpF2PushPop(CIntermediateCode *tempi, - CIntermediateCode *tempi1,CIntermediateCode *tempi2) +U0 CmpF2PushPop(CIntermediateCode *tmpi, + CIntermediateCode *tmpi1,CIntermediateCode *tmpi2) { - if ((tempi2->ic_code==IC_MOV || tempi2->ic_code==IC_IMM_F64) && - !(tempi2->ic_flags&ICF_R_TO_F64) && - (intermediate_code_table[tempi1->ic_code].fpop || - tempi1->ic_flags&ICF_R_TO_F64)) - Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); - else if ((intermediate_code_table[tempi2->ic_code].fpop || - tempi2->ic_flags&ICF_R_TO_F64)&& - !(tempi1->ic_flags&ICF_R_TO_F64)) - Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); + if ((tmpi2->ic_code==IC_MOV || tmpi2->ic_code==IC_IMM_F64) && + !(tmpi2->ic_flags&ICF_R_TO_F64) && + (intermediate_code_table[tmpi1->ic_code].fpop || + tmpi1->ic_flags&ICF_R_TO_F64)) + Bts(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0); + else if ((intermediate_code_table[tmpi2->ic_code].fpop || + tmpi2->ic_flags&ICF_R_TO_F64)&& + !(tmpi1->ic_flags&ICF_R_TO_F64)) + Bts(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0); } class COptMemberVar diff --git a/Compiler/OptPass012.HC b/Compiler/OptPass012.HC index 8477423..f7ce8b8 100644 --- a/Compiler/OptPass012.HC +++ b/Compiler/OptPass012.HC @@ -29,8 +29,8 @@ args. */ I64 code,i; Bool is_unsigned; - CHashClass *tempc,*tempc1,*tempc2; - CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempi_push, + CHashClass *tmpc,*tmpc1,*tmpc2; + CIntermediateCode *tmpi,*tmpi1,*tmpi2,*tmpi3,*tmpi_push, *last_with_class=NULL; CCodeMisc *lb,*lb1,*lb2; CPrsStk *ps; @@ -38,27 +38,27 @@ args. ps=cc->ps=MAlloc(sizeof(CPrsStk)); ps->ptr=0; ps->ptr2=0; - tempi=cc->coc.coc_head.next; - while (code=tempi->ic_code) { - tempc=tempi->ic_class; - tempi->ic_class2=tempc; - tempi_push=tempi; - MemSet(&tempi->a1,0,3*sizeof(CICArg)); - tempi->a1_type_pointed_to=0; + tmpi=cc->coc.coc_head.next; + while (code=tmpi->ic_code) { + tmpc=tmpi->ic_class; + tmpi->ic_class2=tmpc; + tmpi_push=tmpi; + MemSet(&tmpi->a1,0,3*sizeof(CICArg)); + tmpi->a1_type_pointed_to=0; switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: - ps->ptr-=tempi->ic_data>>2; + ps->ptr-=tmpi->ic_data>>2; break; case IS_2_ARG: - tempi2=PrsPop(ps); - tempc2=tempi2->ic_class; - tempi->t.a2t=tempi2; - tempi->t.a2c=PrsPop(ps); + tmpi2=PrsPop(ps); + tmpc2=tmpi2->ic_class; + tmpi->t.a2t=tmpi2; + tmpi->t.a2c=PrsPop(ps); case IS_1_ARG: - tempi1=PrsPop(ps); - tempc1=tempi1->ic_class; - tempi->t.a1t=tempi1; - tempi->t.a1c=PrsPop(ps); + tmpi1=PrsPop(ps); + tmpc1=tmpi1->ic_class; + tmpi->t.a1t=tmpi1; + tmpi->t.a1c=PrsPop(ps); break; case IS_0_ARG: //nobound switch break; @@ -67,224 +67,224 @@ args. cc->flags|=CCF_NOT_CONST; switch [code] { case IC_IMM_F64: - tempi->ic_flags&=~ICF_R_TO_F64; - if (cc->pass==2 && tempi->ic_flags&ICF_R_TO_INT) { - tempi->ic_data=ToI64(tempi->ic_data(F64)); - tempi->ic_flags&=~ICF_R_TO_INT; - tempi->ic_code=IC_IMM_I64; - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_flags&=~ICF_R_TO_F64; + if (cc->pass==2 && tmpi->ic_flags&ICF_R_TO_INT) { + tmpi->ic_data=ToI64(tmpi->ic_data(F64)); + tmpi->ic_flags&=~ICF_R_TO_INT; + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_class=cmp.internal_types[RT_I64]; } break; case IC_IMM_I64: - tempi->ic_flags&=~ICF_R_TO_INT; - if (cc->pass==2 && tempi->ic_flags&ICF_R_TO_F64) { - tempi->ic_data(F64)=ToF64(tempi->ic_data); - tempi->ic_flags&=~ICF_R_TO_F64; - tempi->ic_code=IC_IMM_F64; - tempi->ic_class=cmp.internal_types[RT_F64]; + tmpi->ic_flags&=~ICF_R_TO_INT; + if (cc->pass==2 && tmpi->ic_flags&ICF_R_TO_F64) { + tmpi->ic_data(F64)=ToF64(tmpi->ic_data); + tmpi->ic_flags&=~ICF_R_TO_F64; + tmpi->ic_code=IC_IMM_F64; + tmpi->ic_class=cmp.internal_types[RT_F64]; } break; case IC_HOLYC_TYPECAST: - if (tempi1->ic_code==IC_IMM_I64 || tempi1->ic_code==IC_IMM_F64) { - if (tempi->ic_class->raw_type==RT_F64) - tempi1->ic_code=IC_IMM_F64; + if (tmpi1->ic_code==IC_IMM_I64 || tmpi1->ic_code==IC_IMM_F64) { + if (tmpi->ic_class->raw_type==RT_F64) + tmpi1->ic_code=IC_IMM_F64; else - tempi1->ic_code=IC_IMM_I64; - tempi1->ic_class=tempi->ic_class; - tempi1->ic_flags|=tempi->ic_flags; - tempi_push=tempi1; - OptSetNOP1(tempi); + tmpi1->ic_code=IC_IMM_I64; + tmpi1->ic_class=tmpi->ic_class; + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi_push=tmpi1; + OptSetNOP1(tmpi); } else { - if (tempi->ic_data) {//was paren - if (!tempi_push->ic_class->ptr_stars_cnt) { - if (tempi_push->ic_class->raw_type==RT_F64) - tempi_push->ic_class2=cmp.internal_types[RT_F64]; + if (tmpi->ic_data) {//was paren + if (!tmpi_push->ic_class->ptr_stars_cnt) { + if (tmpi_push->ic_class->raw_type==RT_F64) + tmpi_push->ic_class2=cmp.internal_types[RT_F64]; else - tempi_push->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push->ic_class2=cmp.internal_types[RT_I64]; } } else { - tempi1->ic_class=tempi->ic_class; - tempi1->ic_flags|=tempi->ic_flags; - tempi_push=tempi1; - OptSetNOP1(tempi); + tmpi1->ic_class=tmpi->ic_class; + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi_push=tmpi1; + OptSetNOP1(tmpi); } } break; case IC_FS: case IC_GS: //CALL,FS/GS,CALL_END,IMM,ADD,DEREF-->MOV_FS/GS - tempi1=tempi->next->next; //IMM - tempi2=tempi1->next; //ADD - tempi3=tempi2->next; //DEREF - if (tempi1->ic_code==IC_IMM_I64 && tempi2->ic_code==IC_ADD && - tempi3->ic_code==IC_DEREF && - !(tempi3->ic_flags&~ICG_NO_CVT_MASK)) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags|tempi3->ic_flags; - if (tempi->ic_code==IC_FS) - tempi->ic_code=IC_MOV_FS; + tmpi1=tmpi->next->next; //IMM + tmpi2=tmpi1->next; //ADD + tmpi3=tmpi2->next; //DEREF + if (tmpi1->ic_code==IC_IMM_I64 && tmpi2->ic_code==IC_ADD && + tmpi3->ic_code==IC_DEREF && + !(tmpi3->ic_flags&~ICG_NO_CVT_MASK)) { + tmpi->ic_flags|=tmpi1->ic_flags|tmpi2->ic_flags|tmpi3->ic_flags; + if (tmpi->ic_code==IC_FS) + tmpi->ic_code=IC_MOV_FS; else - tempi->ic_code=IC_MOV_GS; - tempi->ic_data=tempi1->ic_data; - tempi->ic_class =tempi3->ic_class; - tempi->ic_class2=tempi3->ic_class2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi2); - OptSetNOP1(tempi3); + tmpi->ic_code=IC_MOV_GS; + tmpi->ic_data=tmpi1->ic_data; + tmpi->ic_class =tmpi3->ic_class; + tmpi->ic_class2=tmpi3->ic_class2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi3); - tempi1=tempi->last; //CALL - tempi2=tempi->next; //CALL_END - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - OptSetNOP1(tempi1); - OptSetNOP1(tempi2); + tmpi1=tmpi->last; //CALL + tmpi2=tmpi->next; //CALL_END + tmpi->ic_flags|=tmpi1->ic_flags|tmpi2->ic_flags; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi2); } break; case IC_PUSH_CMP: - if (tempi1=OptLag(tempi)) { - if (tempi1->ic_code==IC_AND_AND) - tempi1=OptLag(tempi1); - if (tempi1) - tempi->ic_class=tempi1->ic_class; + if (tmpi1=OptLag(tmpi)) { + if (tmpi1->ic_code==IC_AND_AND) + tmpi1=OptLag(tmpi1); + if (tmpi1) + tmpi->ic_class=tmpi1->ic_class; } - tempi->ic_class2=tempi->ic_class; - tempi->ic_data=0; - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + tmpi->ic_class2=tmpi->ic_class; + tmpi->ic_data=0; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; break; case IC_COM: - if (tempi1->ic_code==IC_IMM_I64) { - tempi->ic_data=~tempi1->ic_data; - tempi->ic_code=IC_IMM_I64; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi->ic_data=~tmpi1->ic_data; + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } - tempi_push->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push->ic_class2=cmp.internal_types[RT_I64]; break; start: case IC_NOT: - if (tempc->raw_type==RT_F64) { - if (tempi1->ic_code==IC_IMM_F64) { - tempi->ic_data(F64)=!tempi1->ic_data(F64); - tempi->ic_code=IC_IMM_F64; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpc->raw_type==RT_F64) { + if (tmpi1->ic_code==IC_IMM_F64) { + tmpi->ic_data(F64)=!tmpi1->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } break; } - if (tempi1->ic_code==IC_IMM_I64) { - tempi->ic_data=!tempi1->ic_data; - tempi->ic_code=IC_IMM_I64; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi->ic_data=!tmpi1->ic_data; + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } break; case IC_UNARY_MINUS: - if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i=OptFixupUnaryOp(tmpi,tmpi1,&is_unsigned)) { if (i==FBO1_INT) { - tempi->ic_data=-tempi1->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=-tmpi1->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=-tempi1->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=-tmpi1->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } } - if (tempc1->type&HTT_INTERNAL_TYPE && tempc1->raw_type&RTF_UNSIGNED) - tempi->ic_class=cmp.internal_types[tempc1->raw_type-1]; + if (tmpc1->type&HTT_INTERNAL_TYPE && tmpc1->raw_type&RTF_UNSIGNED) + tmpi->ic_class=cmp.internal_types[tmpc1->raw_type-1]; break; case IC_SHL_CONST: - if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i=OptFixupUnaryOp(tmpi,tmpi1,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)<ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)<ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)<ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)<ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)<ic_data; - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)<ic_data; + tmpi->ic_code=IC_IMM_F64; } - } else if (tempi1->ic_code==IC_SHL_CONST) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->ic_data+=tempi1->ic_data; - OptSetNOP1(tempi1); + } else if (tmpi1->ic_code==IC_SHL_CONST) { + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->ic_data+=tmpi1->ic_data; + OptSetNOP1(tmpi1); } break; case IC_SHR_CONST: - if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i=OptFixupUnaryOp(tmpi,tmpi1,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)>>tempi->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)>>tmpi->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)>>tempi->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)>>tmpi->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)>>tempi->ic_data; - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)>>tmpi->ic_data; + tmpi->ic_code=IC_IMM_F64; } - } else if (tempi1->ic_code==IC_SHR_CONST) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->ic_data+=tempi1->ic_data; - OptSetNOP1(tempi1); + } else if (tmpi1->ic_code==IC_SHR_CONST) { + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->ic_data+=tmpi1->ic_data; + OptSetNOP1(tmpi1); } break; case IC_SHL: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)<ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)<ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)<ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)<ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64) << tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64) << tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } - } else if (tempi2->ic_code==IC_IMM_I64) { - tempi->ic_flags|=tempi2->ic_flags; - tempi->ic_data=tempi2->ic_data; - tempi->ic_code=IC_SHL_CONST; - OptSetNOP1(tempi2); + } else if (tmpi2->ic_code==IC_IMM_I64) { + tmpi->ic_flags|=tmpi2->ic_flags; + tmpi->ic_data=tmpi2->ic_data; + tmpi->ic_code=IC_SHL_CONST; + OptSetNOP1(tmpi2); } break; case IC_SHR: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)>>tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)>>tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)>>tempi2->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)>>tmpi2->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64) >> tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64) >> tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } - } else if (tempi2->ic_code==IC_IMM_I64) { - tempi->ic_flags|=tempi2->ic_flags; - tempi->ic_data=tempi2->ic_data; - tempi->ic_code=IC_SHR_CONST; - OptSetNOP1(tempi2); + } else if (tmpi2->ic_code==IC_IMM_I64) { + tmpi->ic_flags|=tmpi2->ic_flags; + tmpi->ic_data=tmpi2->ic_data; + tmpi->ic_code=IC_SHR_CONST; + OptSetNOP1(tmpi2); } break; end: - if (!tempi_push->ic_class->ptr_stars_cnt) { - if (tempi_push->ic_class->raw_type==RT_F64) - tempi_push->ic_class2=cmp.internal_types[RT_F64]; + if (!tmpi_push->ic_class->ptr_stars_cnt) { + if (tmpi_push->ic_class->raw_type==RT_F64) + tmpi_push->ic_class2=cmp.internal_types[RT_F64]; else - tempi_push->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push->ic_class2=cmp.internal_types[RT_I64]; } break; case IC_DEREF: if (cc->pass==2) { - if (!tempc->size) + if (!tmpc->size) LexWarn(cc,"Dereference U0 "); - if (tempi1->ic_class->raw_type!=RT_F64) { - if (tempi1->ic_code==IC__PP) { - tempi->ic_code=IC_DEREF_PP; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); - } else if (tempi1->ic_code==IC__MM) { - tempi->ic_code=IC_DEREF_MM; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpi1->ic_class->raw_type!=RT_F64) { + if (tmpi1->ic_code==IC__PP) { + tmpi->ic_code=IC_DEREF_PP; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); + } else if (tmpi1->ic_code==IC__MM) { + tmpi->ic_code=IC_DEREF_MM; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } } } @@ -293,323 +293,323 @@ args. case IC__MM: case IC_PP_: case IC_MM_: - if (cc->pass==2 && !tempc->size) + if (cc->pass==2 && !tmpc->size) LexWarn(cc,"Dereference U0 "); break; case IC_POWER: - tempc=tempi->ic_class=cmp.internal_types[RT_F64]; - if (tempc1->raw_type!=RT_F64) - tempi1->ic_flags|=ICF_R_TO_F64; - if (tempc2->raw_type!=RT_F64) - tempi2->ic_flags|=ICF_R_TO_F64; - tempi_push->ic_class2=cmp.internal_types[RT_F64]; + tmpc=tmpi->ic_class=cmp.internal_types[RT_F64]; + if (tmpc1->raw_type!=RT_F64) + tmpi1->ic_flags|=ICF_R_TO_F64; + if (tmpc2->raw_type!=RT_F64) + tmpi2->ic_flags|=ICF_R_TO_F64; + tmpi_push->ic_class2=cmp.internal_types[RT_F64]; break; start: case IC_MUL: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)*tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)*tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)*tempi2->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)*tmpi2->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)*tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)*tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } } else { - if (tempi1->ic_code==IC_IMM_I64 && cc->pass==2) { - switch (i=tempi1->ic_data) { + if (tmpi1->ic_code==IC_IMM_I64 && cc->pass==2) { + switch (i=tmpi1->ic_data) { case 0: break; case 1: - tempi2->ic_flags|=tempi->ic_flags|tempi1->ic_flags; - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); + tmpi2->ic_flags|=tmpi->ic_flags|tmpi1->ic_flags; + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); break; default: if (Bsf(i)==Bsr(i)) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->t.a1c=tempi->t.a2c; - tempi->ic_data=Bsf(i); - tempi->ic_code=IC_SHL_CONST; - OptSetNOP1(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->t.a1c=tmpi->t.a2c; + tmpi->ic_data=Bsf(i); + tmpi->ic_code=IC_SHL_CONST; + OptSetNOP1(tmpi1); } } - } else if (tempi2->ic_code==IC_IMM_I64) { - switch (i=tempi2->ic_data) { + } else if (tmpi2->ic_code==IC_IMM_I64) { + switch (i=tmpi2->ic_data) { case 0: break; case 1: - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); break; default: if (Bsf(i)==Bsr(i)) { - tempi->ic_flags|=tempi2->ic_flags; - tempi->ic_data=Bsf(i); - tempi->ic_code=IC_SHL_CONST; - OptSetNOP1(tempi2); - } else if (tempi1->ic_code==IC_MUL && cc->pass==2) { - if (tempi1->t.a1t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - tempi1->t.a1t->ic_data*=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - tempi1->t.a2t->ic_data*=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi->ic_flags|=tmpi2->ic_flags; + tmpi->ic_data=Bsf(i); + tmpi->ic_code=IC_SHL_CONST; + OptSetNOP1(tmpi2); + } else if (tmpi1->ic_code==IC_MUL && cc->pass==2) { + if (tmpi1->t.a1t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi1->t.a1t->ic_data*=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi1->t.a2t->ic_data*=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } } - } else if (tempi2->ic_code==IC_IMM_F64 && cc->pass==2) { - if (tempi2->ic_data(F64)==1.0) { - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->ic_code==IC_MUL) { - if (tempi1->t.a1t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - tempi1->t.a1t->ic_data(F64)*=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - tempi1->t.a2t->ic_data(F64)*=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + } else if (tmpi2->ic_code==IC_IMM_F64 && cc->pass==2) { + if (tmpi2->ic_data(F64)==1.0) { + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->ic_code==IC_MUL) { + if (tmpi1->t.a1t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + tmpi1->t.a1t->ic_data(F64)*=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + tmpi1->t.a2t->ic_data(F64)*=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } } } break; case IC_DIV: - if ((tempi2->ic_data || tempi2->ic_code!=IC_IMM_I64 && - tempi2->ic_code!=IC_IMM_F64) && - (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned))) { + if ((tmpi2->ic_data || tmpi2->ic_code!=IC_IMM_I64 && + tmpi2->ic_code!=IC_IMM_F64) && + (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned))) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)/tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)/tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)/tempi2->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)/tmpi2->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)/ - tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)/ + tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } } else { - if (tempi2->ic_code==IC_IMM_I64 && (i=tempi2->ic_data)) { + if (tmpi2->ic_code==IC_IMM_I64 && (i=tmpi2->ic_data)) { if (i==1) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->ic_flags|=tmpi2->ic_flags|tmpi->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } else if (Bsf(i)==Bsr(i)) { - tempi->ic_flags|=tempi2->ic_flags; - tempi->ic_data=Bsf(i); - tempi->ic_code=IC_SHR_CONST; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi2->ic_flags; + tmpi->ic_data=Bsf(i); + tmpi->ic_code=IC_SHR_CONST; + OptSetNOP1(tmpi2); } } } break; case IC_MOD: - if ((tempi2->ic_data || tempi2->ic_code!=IC_IMM_I64 && - tempi2->ic_code!=IC_IMM_F64) && - (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned))) { + if ((tmpi2->ic_data || tmpi2->ic_code!=IC_IMM_I64 && + tmpi2->ic_code!=IC_IMM_F64) && + (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned))) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)%tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)%tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)%tempi2->ic_data(I64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(I64)%tmpi2->ic_data(I64); + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)% - tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)% + tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } - } else if (cc->pass==2 && tempi2->ic_code==IC_IMM_I64 && - (i=tempi2->ic_data) && Bsf(i)==Bsr(i) && - tempi_push->ic_class->raw_type!=RT_F64 && - tempi_push->ic_class->raw_type&RTF_UNSIGNED) {//do only unsigned - tempi2->ic_data=i-1; - tempi->ic_code=IC_AND; + } else if (cc->pass==2 && tmpi2->ic_code==IC_IMM_I64 && + (i=tmpi2->ic_data) && Bsf(i)==Bsr(i) && + tmpi_push->ic_class->raw_type!=RT_F64 && + tmpi_push->ic_class->raw_type&RTF_UNSIGNED) {//do only unsigned + tmpi2->ic_data=i-1; + tmpi->ic_code=IC_AND; } break; case IC_AND: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data&tempi2->ic_data; + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data&tmpi2->ic_data; if (i==FBO1_INT) - tempi->ic_code=IC_IMM_I64; + tmpi->ic_code=IC_IMM_I64; else - tempi->ic_code=IC_IMM_F64; + tmpi->ic_code=IC_IMM_F64; } break; case IC_OR: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data|tempi2->ic_data; + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data|tmpi2->ic_data; if (i==FBO1_INT) - tempi->ic_code=IC_IMM_I64; + tmpi->ic_code=IC_IMM_I64; else - tempi->ic_code=IC_IMM_F64; + tmpi->ic_code=IC_IMM_F64; } break; case IC_XOR: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data^tempi2->ic_data; + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data^tmpi2->ic_data; if (i==FBO1_INT) - tempi->ic_code=IC_IMM_I64; + tmpi->ic_code=IC_IMM_I64; else - tempi->ic_code=IC_IMM_F64; + tmpi->ic_code=IC_IMM_F64; } break; case IC_ADD: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { - tempi->ic_data=tempi1->ic_data+tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data+tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)+ - tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)+ + tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } } else { - if (tempi1->ic_code==IC_ABS_ADDR&&tempi2->ic_code==IC_IMM_I64) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - tempi->ic_data=tempi1->ic_data+tempi2->ic_data; - tempi->ic_code=IC_ABS_ADDR; - OptSetNOP1(tempi1); - OptSetNOP1(tempi2); + if (tmpi1->ic_code==IC_ABS_ADDR&&tmpi2->ic_code==IC_IMM_I64) { + tmpi->ic_flags|=tmpi1->ic_flags|tmpi2->ic_flags; + tmpi->ic_data=tmpi1->ic_data+tmpi2->ic_data; + tmpi->ic_code=IC_ABS_ADDR; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi2); } else if (cc->pass==2) { - if (tempi1->ic_code==IC_IMM_I64) { - if (!tempi1->ic_data) { - tempi2->ic_flags|=tempi1->ic_flags|tempi->ic_flags; - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); - } else if (tempi2->ic_code==IC_ADD|| - tempi2->ic_code==IC_SUB) { - if (tempi2->t.a1t->ic_code==IC_IMM_I64) { - tempi2->ic_flags|=tempi->ic_flags; - tempi2->t.a1t->ic_data+=tempi1->ic_data; - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); - } else if (tempi2->t.a2t->ic_code==IC_IMM_I64) { - tempi2->ic_flags|=tempi->ic_flags; - if (tempi2->ic_code==IC_ADD) - tempi2->t.a2t->ic_data+=tempi1->ic_data; + if (tmpi1->ic_code==IC_IMM_I64) { + if (!tmpi1->ic_data) { + tmpi2->ic_flags|=tmpi1->ic_flags|tmpi->ic_flags; + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); + } else if (tmpi2->ic_code==IC_ADD|| + tmpi2->ic_code==IC_SUB) { + if (tmpi2->t.a1t->ic_code==IC_IMM_I64) { + tmpi2->ic_flags|=tmpi->ic_flags; + tmpi2->t.a1t->ic_data+=tmpi1->ic_data; + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); + } else if (tmpi2->t.a2t->ic_code==IC_IMM_I64) { + tmpi2->ic_flags|=tmpi->ic_flags; + if (tmpi2->ic_code==IC_ADD) + tmpi2->t.a2t->ic_data+=tmpi1->ic_data; else - tempi2->t.a2t->ic_data-=tempi1->ic_data; - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); + tmpi2->t.a2t->ic_data-=tmpi1->ic_data; + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); } } - } else if (tempi2->ic_code==IC_IMM_I64) { - if (!tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->ic_code==IC_ADD || - tempi1->ic_code==IC_SUB) { - if (tempi1->t.a1t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - tempi1->t.a1t->ic_data+=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - if (tempi1->ic_code==IC_ADD) - tempi1->t.a2t->ic_data+=tempi2->ic_data; + } else if (tmpi2->ic_code==IC_IMM_I64) { + if (!tmpi2->ic_data) { + tmpi1->ic_flags|=tmpi2->ic_flags|tmpi->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->ic_code==IC_ADD || + tmpi1->ic_code==IC_SUB) { + if (tmpi1->t.a1t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi1->t.a1t->ic_data+=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + if (tmpi1->ic_code==IC_ADD) + tmpi1->t.a2t->ic_data+=tmpi2->ic_data; else - tempi1->t.a2t->ic_data-=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->t.a2t->ic_data-=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } - } else if (tempi1->ic_code==IC_IMM_F64) { - if (!tempi1->ic_data) { - tempi2->ic_flags|=tempi1->ic_flags|tempi->ic_flags; - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); - } else if (tempi2->ic_code==IC_ADD|| - tempi2->ic_code==IC_SUB) { - if (tempi2->t.a1t->ic_code==IC_IMM_F64) { - tempi2->ic_flags|=tempi->ic_flags; - tempi2->t.a1t->ic_data(F64)+=tempi1->ic_data(F64); - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); - } else if (tempi2->t.a2t->ic_code==IC_IMM_F64) { - tempi2->ic_flags|=tempi->ic_flags; - if (tempi2->ic_code==IC_ADD) - tempi2->t.a2t->ic_data(F64)+=tempi1->ic_data(F64); + } else if (tmpi1->ic_code==IC_IMM_F64) { + if (!tmpi1->ic_data) { + tmpi2->ic_flags|=tmpi1->ic_flags|tmpi->ic_flags; + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); + } else if (tmpi2->ic_code==IC_ADD|| + tmpi2->ic_code==IC_SUB) { + if (tmpi2->t.a1t->ic_code==IC_IMM_F64) { + tmpi2->ic_flags|=tmpi->ic_flags; + tmpi2->t.a1t->ic_data(F64)+=tmpi1->ic_data(F64); + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); + } else if (tmpi2->t.a2t->ic_code==IC_IMM_F64) { + tmpi2->ic_flags|=tmpi->ic_flags; + if (tmpi2->ic_code==IC_ADD) + tmpi2->t.a2t->ic_data(F64)+=tmpi1->ic_data(F64); else - tempi2->t.a2t->ic_data(F64)-=tempi1->ic_data(F64); - tempi2->ic_class2=tempi->ic_class2; - tempi_push=tempi2; - OptSetNOP1(tempi1); - OptSetNOP1(tempi); + tmpi2->t.a2t->ic_data(F64)-=tmpi1->ic_data(F64); + tmpi2->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi2; + OptSetNOP1(tmpi1); + OptSetNOP1(tmpi); } } - } else if (tempi2->ic_code==IC_IMM_F64) { - if (!tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->ic_code==IC_ADD || - tempi1->ic_code==IC_SUB) { - if (tempi1->t.a1t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags; - tempi1->t.a1t->ic_data(F64)+=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags; - if (tempi1->ic_code==IC_ADD) - tempi1->t.a2t->ic_data(F64)+=tempi2->ic_data(F64); + } else if (tmpi2->ic_code==IC_IMM_F64) { + if (!tmpi2->ic_data) { + tmpi1->ic_flags|=tmpi2->ic_flags|tmpi->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->ic_code==IC_ADD || + tmpi1->ic_code==IC_SUB) { + if (tmpi1->t.a1t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi1->t.a1t->ic_data(F64)+=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags; + if (tmpi1->ic_code==IC_ADD) + tmpi1->t.a2t->ic_data(F64)+=tmpi2->ic_data(F64); else - tempi1->t.a2t->ic_data(F64)-=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->t.a2t->ic_data(F64)-=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } } @@ -617,73 +617,73 @@ args. } break; case IC_SUB: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { - tempi->ic_data=tempi1->ic_data-tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data-tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } else { - tempi->ic_data(F64)=tempi1->ic_data(F64)- - tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=tmpi1->ic_data(F64)- + tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_F64; } } else { if (cc->pass==2) { - if (tempi2->ic_code==IC_IMM_I64) { - if (!tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + if (tmpi2->ic_code==IC_IMM_I64) { + if (!tmpi2->ic_data) { + tmpi1->ic_flags|=tmpi2->ic_flags|tmpi->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } else - if (tempi1->ic_code==IC_ADD || - tempi1->ic_code==IC_SUB) { - if (tempi1->t.a1t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - tempi1->t.a1t->ic_data-=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_I64) { - tempi1->ic_flags|=tempi->ic_flags; - if (tempi1->ic_code==IC_ADD) - tempi1->t.a2t->ic_data-=tempi2->ic_data; + if (tmpi1->ic_code==IC_ADD || + tmpi1->ic_code==IC_SUB) { + if (tmpi1->t.a1t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + tmpi1->t.a1t->ic_data-=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_I64) { + tmpi1->ic_flags|=tmpi->ic_flags; + if (tmpi1->ic_code==IC_ADD) + tmpi1->t.a2t->ic_data-=tmpi2->ic_data; else - tempi1->t.a2t->ic_data+=tempi2->ic_data; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->t.a2t->ic_data+=tmpi2->ic_data; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } } else - if (tempi2->ic_code==IC_IMM_F64) { - if (!tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + if (tmpi2->ic_code==IC_IMM_F64) { + if (!tmpi2->ic_data) { + tmpi1->ic_flags|=tmpi2->ic_flags|tmpi->ic_flags; + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } else - if (tempi1->ic_code==IC_ADD || tempi1->ic_code==IC_SUB) { - if (tempi1->t.a1t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - tempi1->t.a1t->ic_data(F64)-=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); - } else if (tempi1->t.a2t->ic_code==IC_IMM_F64) { - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - if (tempi1->ic_code==IC_ADD) - tempi1->t.a2t->ic_data(F64)-=tempi2->ic_data(F64); + if (tmpi1->ic_code==IC_ADD || tmpi1->ic_code==IC_SUB) { + if (tmpi1->t.a1t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + tmpi1->t.a1t->ic_data(F64)-=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); + } else if (tmpi1->t.a2t->ic_code==IC_IMM_F64) { + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + if (tmpi1->ic_code==IC_ADD) + tmpi1->t.a2t->ic_data(F64)-=tmpi2->ic_data(F64); else - tempi1->t.a2t->ic_data(F64)+=tempi2->ic_data(F64); - tempi1->ic_class2=tempi->ic_class2; - tempi_push=tempi1; - OptSetNOP1(tempi2); - OptSetNOP1(tempi); + tmpi1->t.a2t->ic_data(F64)+=tmpi2->ic_data(F64); + tmpi1->ic_class2=tmpi->ic_class2; + tmpi_push=tmpi1; + OptSetNOP1(tmpi2); + OptSetNOP1(tmpi); } } } @@ -691,197 +691,197 @@ args. } break; case IC_AND_AND: - if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data&&tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + if (OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data&&tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class=cmp.internal_types[RT_I64]; break; case IC_OR_OR: - if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data||tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + if (OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data||tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class=cmp.internal_types[RT_I64]; break; case IC_XOR_XOR: - if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data^^tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + if (OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data^^tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class=cmp.internal_types[RT_I64]; break; end: - if (!tempi_push->ic_class->ptr_stars_cnt) { - if (tempi_push->ic_class->raw_type==RT_F64) - tempi_push->ic_class2=cmp.internal_types[RT_F64]; + if (!tmpi_push->ic_class->ptr_stars_cnt) { + if (tmpi_push->ic_class->raw_type==RT_F64) + tmpi_push->ic_class2=cmp.internal_types[RT_F64]; else if (is_unsigned) - tempi_push->ic_class2=cmp.internal_types[RT_U64]; + tmpi_push->ic_class2=cmp.internal_types[RT_U64]; else - tempi_push->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push->ic_class2=cmp.internal_types[RT_I64]; } break; start: case IC_EQU_EQU: - if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data==tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + if (OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data==tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } else - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; break; case IC_NOT_EQU: - if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data!=tempi2->ic_data; - tempi->ic_code=IC_IMM_I64; + if (OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { + tmpi->ic_data=tmpi1->ic_data!=tmpi2->ic_data; + tmpi->ic_code=IC_IMM_I64; } else - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; break; case IC_LESS: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)ic_data(I64); + tmpi->ic_data=tmpi1->ic_data(I64)ic_data(I64); } else - tempi->ic_data=tempi1->ic_data(F64)ic_data(F64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(F64)ic_data(F64); + tmpi->ic_code=IC_IMM_I64; } else { if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + tmpi->ic_flags|=ICF_USE_UNSIGNED; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; } break; case IC_GREATER_EQU: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)>=tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)>=tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)>=tempi2->ic_data(I64); + tmpi->ic_data=tmpi1->ic_data(I64)>=tmpi2->ic_data(I64); } else - tempi->ic_data=tempi1->ic_data(F64)>=tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(F64)>=tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_I64; } else { if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + tmpi->ic_flags|=ICF_USE_UNSIGNED; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; } break; case IC_GREATER: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)>tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)>tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)>tempi2->ic_data(I64); + tmpi->ic_data=tmpi1->ic_data(I64)>tmpi2->ic_data(I64); } else - tempi->ic_data=tempi1->ic_data(F64)>tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(F64)>tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_I64; } else { if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + tmpi->ic_flags|=ICF_USE_UNSIGNED; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; } break; case IC_LESS_EQU: - if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i=OptFixupBinaryOp1(tmpi,tmpi1,tmpi2,&is_unsigned)) { if (i==FBO1_INT) { if (is_unsigned) - tempi->ic_data=tempi1->ic_data(U64)<=tempi2->ic_data(U64); + tmpi->ic_data=tmpi1->ic_data(U64)<=tmpi2->ic_data(U64); else - tempi->ic_data=tempi1->ic_data(I64)<=tempi2->ic_data(I64); + tmpi->ic_data=tmpi1->ic_data(I64)<=tmpi2->ic_data(I64); } else - tempi->ic_data=tempi1->ic_data(F64)<=tempi2->ic_data(F64); - tempi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data(F64)<=tmpi2->ic_data(F64); + tmpi->ic_code=IC_IMM_I64; } else { if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_USE_F64; + tmpi->ic_flags|=ICF_USE_UNSIGNED; + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_USE_F64; } break; end: - tempi->ic_flags&=~ICF_R_TO_INT; - if (!tempi_push->ic_class->ptr_stars_cnt) { - if (tempi_push->ic_class->raw_type==RT_F64) - tempi_push->ic_class2=cmp.internal_types[RT_F64]; + tmpi->ic_flags&=~ICF_R_TO_INT; + if (!tmpi_push->ic_class->ptr_stars_cnt) { + if (tmpi_push->ic_class->raw_type==RT_F64) + tmpi_push->ic_class2=cmp.internal_types[RT_F64]; else if (is_unsigned) - tempi_push->ic_class2=cmp.internal_types[RT_U64]; + tmpi_push->ic_class2=cmp.internal_types[RT_U64]; else - tempi_push->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push->ic_class2=cmp.internal_types[RT_I64]; } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->ic_class2; + if (tmpi_push->ic_flags & ICF_PUSH_CMP) + tmpi->ic_class=tmpi->ic_class2; else - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class=cmp.internal_types[RT_I64]; break; start: - if (cc->pass==2 && (!tempc->size||!tempc2->size)) + if (cc->pass==2 && (!tmpc->size||!tmpc2->size)) LexWarn(cc,"Assign U0 "); start: case IC_MUL_EQU: - if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && - tempc2->raw_type!=RT_F64) { - if (i=tempi2->ic_data) { + if (tmpi2->ic_code==IC_IMM_I64 && tmpc->raw_type!=RT_F64 && + tmpc2->raw_type!=RT_F64) { + if (i=tmpi2->ic_data) { if (Bsf(i)==Bsr(i)) { - tempi2->ic_data=Bsf(i); - tempi->ic_code=IC_SHL_EQU; + tmpi2->ic_data=Bsf(i); + tmpi->ic_code=IC_SHL_EQU; } } } break; case IC_DIV_EQU: - if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && - tempc2->raw_type!=RT_F64 && - (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { - tempi2->ic_data=Bsf(i); - tempi->ic_code=IC_SHR_EQU; + if (tmpi2->ic_code==IC_IMM_I64 && tmpc->raw_type!=RT_F64 && + tmpc2->raw_type!=RT_F64 && + (i=tmpi2->ic_data) && Bsf(i)==Bsr(i)) { + tmpi2->ic_data=Bsf(i); + tmpi->ic_code=IC_SHR_EQU; } break; case IC_MOD_EQU: - if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && - tempc2->raw_type!=RT_F64 && - (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { - tempi2->ic_data=i-1; - tempi->ic_code=IC_AND_EQU; + if (tmpi2->ic_code==IC_IMM_I64 && tmpc->raw_type!=RT_F64 && + tmpc2->raw_type!=RT_F64 && + (i=tmpi2->ic_data) && Bsf(i)==Bsr(i)) { + tmpi2->ic_data=i-1; + tmpi->ic_code=IC_AND_EQU; } break; case IC_ADD_EQU: case IC_SUB_EQU: break; end: - if (tempi2->ic_class->raw_type==RT_F64) - tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; - if (tempc->raw_type==RT_F64) { - if (tempc2->raw_type!=RT_F64) - tempi2->ic_flags|=ICF_R_TO_F64; + if (tmpi2->ic_class->raw_type==RT_F64) + tmpi->ic_flags=tmpi->ic_flags|ICF_USE_F64; + if (tmpc->raw_type==RT_F64) { + if (tmpc2->raw_type!=RT_F64) + tmpi2->ic_flags|=ICF_R_TO_F64; } break; case IC_ASSIGN: - if (tempc->raw_type==RT_F64) { - if (tempc2->raw_type!=RT_F64) - tempi2->ic_flags|=ICF_R_TO_F64; + if (tmpc->raw_type==RT_F64) { + if (tmpc2->raw_type!=RT_F64) + tmpi2->ic_flags|=ICF_R_TO_F64; } else { - if (tempc2->raw_type==RT_F64) - tempi2->ic_flags|=ICF_R_TO_INT; + if (tmpc2->raw_type==RT_F64) + tmpi2->ic_flags|=ICF_R_TO_INT; } - if (cc->pass==2 && tempi1->ic_class->raw_type!=RT_F64) { - if (tempi1->ic_code==IC__PP) { - tempi->ic_code=IC_ASSIGN_PP; - tempi->ic_flags|=tempi1->ic_flags; - tempi->t.class2=tempi1->ic_class; - OptSetNOP1(tempi1); - } else if (tempi1->ic_code==IC__MM) { - tempi->ic_code=IC_ASSIGN_MM; - tempi->ic_flags|=tempi1->ic_flags; - tempi->t.class2=tempi1->ic_class; - OptSetNOP1(tempi1); + if (cc->pass==2 && tmpi1->ic_class->raw_type!=RT_F64) { + if (tmpi1->ic_code==IC__PP) { + tmpi->ic_code=IC_ASSIGN_PP; + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->t.class2=tmpi1->ic_class; + OptSetNOP1(tmpi1); + } else if (tmpi1->ic_code==IC__MM) { + tmpi->ic_code=IC_ASSIGN_MM; + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->t.class2=tmpi1->ic_class; + OptSetNOP1(tmpi1); } } break; @@ -890,249 +890,249 @@ args. case IC_AND_EQU: case IC_OR_EQU: case IC_XOR_EQU: - if (tempc2->raw_type==RT_F64) - tempi2->ic_flags|=ICF_R_TO_INT; + if (tmpc2->raw_type==RT_F64) + tmpi2->ic_flags|=ICF_R_TO_INT; break; end: break; case IC_ENTER: case IC_LEAVE: - tempi->ic_data=-cc->htc.fun->size; + tmpi->ic_data=-cc->htc.fun->size; break; case IC_ADD_RSP: - if (tempi1=OptLag(tempi)) { - if (tempi1->ic_code==IC_ADD_RSP) { - tempi->ic_data+=tempi1->ic_data; - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + if (tmpi1=OptLag(tmpi)) { + if (tmpi1->ic_code==IC_ADD_RSP) { + tmpi->ic_data+=tmpi1->ic_data; + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } } case IC_ADD_RSP1: break; case IC_BSF: - if (tempi1->ic_code==IC_IMM_I64) { - tempi1->ic_data=Bsf(tempi1->ic_data); - tempi_push=tempi1; - OptSetNOP1(OptLag(tempi1)); //CALL_START - tempi2=OptLead1(tempi); - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - OptSetNOP1(tempi2); //CALL_END - OptSetNOP1(tempi); //BSF + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi1->ic_data=Bsf(tmpi1->ic_data); + tmpi_push=tmpi1; + OptSetNOP1(OptLag(tmpi1)); //CALL_START + tmpi2=OptLead1(tmpi); + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + OptSetNOP1(tmpi2); //CALL_END + OptSetNOP1(tmpi); //BSF } break; case IC_BSR: - if (tempi1->ic_code==IC_IMM_I64) { - tempi1->ic_data=Bsr(tempi1->ic_data); - tempi_push=tempi1; - OptSetNOP1(OptLag(tempi1)); //CALL_START - tempi2=OptLead1(tempi); - tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; - OptSetNOP1(tempi2); //CALL_END - OptSetNOP1(tempi); //BSR + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi1->ic_data=Bsr(tmpi1->ic_data); + tmpi_push=tmpi1; + OptSetNOP1(OptLag(tmpi1)); //CALL_START + tmpi2=OptLead1(tmpi); + tmpi1->ic_flags|=tmpi->ic_flags|tmpi2->ic_flags; + OptSetNOP1(tmpi2); //CALL_END + OptSetNOP1(tmpi); //BSR } break; case IC_LBTS: case IC_LBTR: case IC_LBTC: - tempi->ic_flags|=ICF_LOCK; + tmpi->ic_flags|=ICF_LOCK; break; case IC_TO_I64: - if (tempi1->ic_code==IC_IMM_F64) { - tempi2=tempi1->last; - while (tempi2->ic_code!=IC_CALL_START) - tempi2=tempi2->last; - OptSetNOP1(tempi2); + if (tmpi1->ic_code==IC_IMM_F64) { + tmpi2=tmpi1->last; + while (tmpi2->ic_code!=IC_CALL_START) + tmpi2=tmpi2->last; + OptSetNOP1(tmpi2); - tempi2=tempi->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi1->ic_flags&~ICF_R_TO_INT|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi->ic_code=IC_IMM_I64; - tempi->ic_data=ToI64(tempi1->ic_data(F64)); - tempi->ic_class=cmp.internal_types[RT_I64]; - tempi->ic_class2=cmp.internal_types[RT_I64]; - OptSetNOP1(tempi1); - } else if (tempi1->ic_code==IC_IMM_I64) { - tempi2=tempi1->last; - while (tempi2->ic_code!=IC_CALL_START) - tempi2=tempi2->last; - OptSetNOP1(tempi2); + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_data=ToI64(tmpi1->ic_data(F64)); + tmpi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class2=cmp.internal_types[RT_I64]; + OptSetNOP1(tmpi1); + } else if (tmpi1->ic_code==IC_IMM_I64) { + tmpi2=tmpi1->last; + while (tmpi2->ic_code!=IC_CALL_START) + tmpi2=tmpi2->last; + OptSetNOP1(tmpi2); - tempi2=tempi->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi1->ic_flags&~ICF_R_TO_F64|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi->ic_code=IC_IMM_I64; - tempi->ic_data=tempi1->ic_data; - tempi->ic_class=cmp.internal_types[RT_I64]; - tempi->ic_class2=cmp.internal_types[RT_I64]; - OptSetNOP1(tempi1); + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_data=tmpi1->ic_data; + tmpi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class2=cmp.internal_types[RT_I64]; + OptSetNOP1(tmpi1); } - if (tempi1->ic_flags&ICF_R_TO_F64) { + if (tmpi1->ic_flags&ICF_R_TO_F64) { i=0; - tempi2=tempi1->last; + tmpi2=tmpi1->last; while (TRUE) { - if (tempi2->ic_code==IC_CALL_START) { + if (tmpi2->ic_code==IC_CALL_START) { if (!i) break; i--; - } else if (tempi2->ic_code==IC_CALL_END) + } else if (tmpi2->ic_code==IC_CALL_END) i++; - tempi2=tempi2->last; + tmpi2=tmpi2->last; } - OptSetNOP1(tempi2); + OptSetNOP1(tmpi2); - tempi2=tempi1->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi1->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags& - ~(ICF_R_TO_F64|ICF_PUSH_RES)|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi1->ic_flags=tmpi->ic_flags|tmpi1->ic_flags& + ~(ICF_R_TO_F64|ICF_PUSH_RES)|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi1->ic_class=cmp.internal_types[RT_I64]; - tempi1->ic_class2=cmp.internal_types[RT_I64]; - tempi_push=tempi1; - OptSetNOP1(tempi); + tmpi1->ic_class=cmp.internal_types[RT_I64]; + tmpi1->ic_class2=cmp.internal_types[RT_I64]; + tmpi_push=tmpi1; + OptSetNOP1(tmpi); } break; case IC_TO_F64: - if (tempi1->ic_code==IC_IMM_I64) { - tempi2=tempi1->last; - while (tempi2->ic_code!=IC_CALL_START) - tempi2=tempi2->last; - OptSetNOP1(tempi2); + if (tmpi1->ic_code==IC_IMM_I64) { + tmpi2=tmpi1->last; + while (tmpi2->ic_code!=IC_CALL_START) + tmpi2=tmpi2->last; + OptSetNOP1(tmpi2); - tempi2=tempi->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi1->ic_flags&~ICF_R_TO_F64|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi->ic_code=IC_IMM_F64; - tempi->ic_data(F64)=ToF64(tempi1->ic_data); - tempi->ic_class=cmp.internal_types[RT_F64]; - tempi->ic_class2=cmp.internal_types[RT_F64]; - OptSetNOP1(tempi1); - } else if (tempi1->ic_code==IC_IMM_F64) { - tempi2=tempi1->last; - while (tempi2->ic_code!=IC_CALL_START) - tempi2=tempi2->last; - OptSetNOP1(tempi2); + tmpi->ic_code=IC_IMM_F64; + tmpi->ic_data(F64)=ToF64(tmpi1->ic_data); + tmpi->ic_class=cmp.internal_types[RT_F64]; + tmpi->ic_class2=cmp.internal_types[RT_F64]; + OptSetNOP1(tmpi1); + } else if (tmpi1->ic_code==IC_IMM_F64) { + tmpi2=tmpi1->last; + while (tmpi2->ic_code!=IC_CALL_START) + tmpi2=tmpi2->last; + OptSetNOP1(tmpi2); - tempi2=tempi->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi1->ic_flags&~ICF_R_TO_INT|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi->ic_code=IC_IMM_F64; - tempi->ic_data=tempi1->ic_data; - tempi->ic_class=cmp.internal_types[RT_F64]; - tempi->ic_class2=cmp.internal_types[RT_F64]; - OptSetNOP1(tempi1); + tmpi->ic_code=IC_IMM_F64; + tmpi->ic_data=tmpi1->ic_data; + tmpi->ic_class=cmp.internal_types[RT_F64]; + tmpi->ic_class2=cmp.internal_types[RT_F64]; + OptSetNOP1(tmpi1); } - if (tempi1->ic_flags&ICF_R_TO_INT) { + if (tmpi1->ic_flags&ICF_R_TO_INT) { i=0; - tempi2=tempi1->last; + tmpi2=tmpi1->last; while (TRUE) { - if (tempi2->ic_code==IC_CALL_START) { + if (tmpi2->ic_code==IC_CALL_START) { if (!i) break; i--; - } else if (tempi2->ic_code==IC_CALL_END) + } else if (tmpi2->ic_code==IC_CALL_END) i++; - tempi2=tempi2->last; + tmpi2=tmpi2->last; } - OptSetNOP1(tempi2); + OptSetNOP1(tmpi2); - tempi2=tempi1->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi1->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags& - ~(ICF_R_TO_INT|ICF_PUSH_RES)|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi1->ic_flags=tmpi->ic_flags|tmpi1->ic_flags& + ~(ICF_R_TO_INT|ICF_PUSH_RES)|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi1->ic_class=cmp.internal_types[RT_F64]; - tempi1->ic_class2=cmp.internal_types[RT_F64]; - tempi_push=tempi1; - OptSetNOP1(tempi); + tmpi1->ic_class=cmp.internal_types[RT_F64]; + tmpi1->ic_class2=cmp.internal_types[RT_F64]; + tmpi_push=tmpi1; + OptSetNOP1(tmpi); } break; case IC_TO_BOOL: - if (tempi1->ic_code==IC_IMM_I64 || tempi1->ic_code==IC_IMM_F64) { - tempi2=tempi1->last; - while (tempi2->ic_code!=IC_CALL_START) - tempi2=tempi2->last; - OptSetNOP1(tempi2); + if (tmpi1->ic_code==IC_IMM_I64 || tmpi1->ic_code==IC_IMM_F64) { + tmpi2=tmpi1->last; + while (tmpi2->ic_code!=IC_CALL_START) + tmpi2=tmpi2->last; + OptSetNOP1(tmpi2); - tempi2=tempi->next; - while (tempi2->ic_code!=IC_CALL_END) - tempi2=tempi2->next; + tmpi2=tmpi->next; + while (tmpi2->ic_code!=IC_CALL_END) + tmpi2=tmpi2->next; - tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64|tempi2->ic_flags; - OptSetNOP1(tempi2); + tmpi->ic_flags|=tmpi1->ic_flags&~ICF_R_TO_F64|tmpi2->ic_flags; + OptSetNOP1(tmpi2); - tempi->ic_code=IC_IMM_I64; - tempi->ic_data=ToBool(tempi1->ic_data); - tempi->ic_class=cmp.internal_types[RT_I64]; - tempi->ic_class2=cmp.internal_types[RT_I64]; - OptSetNOP1(tempi1); + tmpi->ic_code=IC_IMM_I64; + tmpi->ic_data=ToBool(tmpi1->ic_data); + tmpi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class2=cmp.internal_types[RT_I64]; + OptSetNOP1(tmpi1); } break; case IC_BR_ZERO: - tempi_push=OptBrZero(cc,tempi); + tmpi_push=OptBrZero(cc,tmpi); break; case IC_BR_NOT_ZERO: - tempi_push=OptBrNotZero(cc,tempi); + tmpi_push=OptBrNotZero(cc,tmpi); break; case IC_NOP1: - if (tempi->ic_flags&ICF_PUSH_RES) { - tempi1=tempi; - do tempi1=tempi1->last; - while (tempi1->ic_code==IC_NOP1); - tempi1->ic_flags|=ICF_PUSH_RES; - tempi->ic_flags&=~ICF_PUSH_RES; + if (tmpi->ic_flags&ICF_PUSH_RES) { + tmpi1=tmpi; + do tmpi1=tmpi1->last; + while (tmpi1->ic_code==IC_NOP1); + tmpi1->ic_flags|=ICF_PUSH_RES; + tmpi->ic_flags&=~ICF_PUSH_RES; } break; case IC_NOP2: - ps->ptr+=tempi->ic_data<<1; + ps->ptr+=tmpi->ic_data<<1; break; case IC_LABEL: - lb=OptLabelFwd(tempi->ic_data); - lb1=tempi->ic_data; + lb=OptLabelFwd(tmpi->ic_data); + lb1=tmpi->ic_data; while (lb2=lb1->fwd) { lb1->fwd=lb; lb1=lb2; } - if (tempi1=OptLag(tempi)) { - if (tempi1->ic_code==IC_JMP) { - lb1=tempi1->ic_data; + if (tmpi1=OptLag(tmpi)) { + if (tmpi1->ic_code==IC_JMP) { + lb1=tmpi1->ic_data; while (lb1->fwd) lb1=lb1->fwd; if (lb1==lb) { - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } - } else if (tempi1->ic_code==IC_LABEL) { - lb1=tempi1->ic_data; + } else if (tmpi1->ic_code==IC_LABEL) { + lb1=tmpi1->ic_data; if (!lb1->fwd) lb1->fwd=lb; - if (tempi1=OptLag(tempi1)) { - if (tempi1->ic_code==IC_JMP) { - lb1=tempi1->ic_data; + if (tmpi1=OptLag(tmpi1)) { + if (tmpi1->ic_code==IC_JMP) { + lb1=tmpi1->ic_data; while (lb1->fwd) lb1=lb1->fwd; if (lb1==lb) { - tempi->ic_flags|=tempi1->ic_flags; - OptSetNOP1(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + OptSetNOP1(tmpi1); } } } @@ -1140,10 +1140,10 @@ args. } break; case IC_JMP: - if (tempi1=OptLag(tempi)) { - if (tempi1->ic_code==IC_LABEL) { - lb=OptLabelFwd(tempi->ic_data); - lb1=OptLabelFwd(tempi1->ic_data); + if (tmpi1=OptLag(tmpi)) { + if (tmpi1->ic_code==IC_LABEL) { + lb=OptLabelFwd(tmpi->ic_data); + lb1=OptLabelFwd(tmpi1->ic_data); if (lb!=lb1) lb1->fwd=lb; } @@ -1253,30 +1253,30 @@ args. break; default: "Pass:%d Missing IC handler\n",cc->pass; - ICPut(cc,tempi); + ICPut(cc,tmpi); LexExcept(cc,"Compiler Optimization Error at "); } if (intermediate_code_table[code].arg_cnt==IS_2_ARG) { - if (tempi_push->ic_precedence&~ASSOC_MASK==PREC_ASSIGN) - OptFixSizeOf(tempi2,tempi_push,tempi1->ic_class-1); + if (tmpi_push->ic_precedence&~ASSOC_MASK==PREC_ASSIGN) + OptFixSizeOf(tmpi2,tmpi_push,tmpi1->ic_class-1); else { - OptFixSizeOf(tempi1,tempi_push,tempi2->ic_class); - OptFixSizeOf(tempi2,tempi_push,tempi1->ic_class); + OptFixSizeOf(tmpi1,tmpi_push,tmpi2->ic_class); + OptFixSizeOf(tmpi2,tmpi_push,tmpi1->ic_class); } } - if (intermediate_code_table[tempi_push->ic_code].res_cnt) { - PrsPush(ps,tempi->ic_class2); - PrsPush(ps,tempi_push); + if (intermediate_code_table[tmpi_push->ic_code].res_cnt) { + PrsPush(ps,tmpi->ic_class2); + PrsPush(ps,tmpi_push); } - if (tempi->ic_class) { - if (tempi->ic_class->raw_type==RT_F64) - tempi->ic_flags&=~ICF_R_TO_F64; + if (tmpi->ic_class) { + if (tmpi->ic_class->raw_type==RT_F64) + tmpi->ic_flags&=~ICF_R_TO_F64; else - tempi->ic_flags&=~ICF_R_TO_INT; + tmpi->ic_flags&=~ICF_R_TO_INT; if (code>IC_END_EXP) - last_with_class=tempi; + last_with_class=tmpi; } - tempi=tempi->next; + tmpi=tmpi->next; } if (ps->ptr>2) { "Pass:%d Stk:%08X\n",cc->pass,ps->ptr; diff --git a/Compiler/OptPass3.HC b/Compiler/OptPass3.HC index cd8c92f..b58db9e 100644 --- a/Compiler/OptPass3.HC +++ b/Compiler/OptPass3.HC @@ -1,14 +1,14 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) { - CHashClass *tempc,*tempc1,*tempc2; + CHashClass *tmpc,*tmpc1,*tmpc2; CCodeMisc *lb; - CIntermediateCode *tempi,*tempi1,*tempi2,*tempi_next, - *tempil1,*tempil2; + CIntermediateCode *tmpi,*tmpi1,*tmpi2,*tmpi_next, + *tmpil1,*tmpil2; I64 code,i,j,l,member_cnt,used_reg_mask=0; - CMemberLst *tempm; + CMemberLst *tmpm; COptMemberVar *mv=NULL; - CAOT *tempaot; - CAOTImportExport *tempie; + CAOT *tmpaot; + CAOTImportExport *tmpie; CPrsStk *ps=cc->ps; ps->ptr=0; ps->ptr2=0; @@ -23,126 +23,126 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) member_cnt+=2; mv=CAlloc(member_cnt*sizeof(COptMemberVar)); member_cnt=0; - tempm=cc->htc.fun->member_lst_and_root; - while (tempm) { - tempc=OptClassFwd(tempm->member_class); - if (0<=tempm->regreg)) + tmpm=cc->htc.fun->member_lst_and_root; + while (tmpm) { + tmpc=OptClassFwd(tmpm->member_class); + if (0<=tmpm->regreg)) PrintWarn("Reg in use\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name, - cc->lex_include_stk->line_num,tempm->str,cc->htc.fun->str); - reg_offsets[tempm->reg].offset=tempm->offset; - reg_offsets[tempm->reg].m=tempm; - } else if (tempc->raw_type!=RT_F64 && tempm->reg!=REG_NONE || - tempm->reg==REG_ALLOC) { - if (tempm->reg==REG_ALLOC) + cc->lex_include_stk->line_num,tmpm->str,cc->htc.fun->str); + reg_offsets[tmpm->reg].offset=tmpm->offset; + reg_offsets[tmpm->reg].m=tmpm; + } else if (tmpc->raw_type!=RT_F64 && tmpm->reg!=REG_NONE || + tmpm->reg==REG_ALLOC) { + if (tmpm->reg==REG_ALLOC) mv[member_cnt].score=MAX_I64/2; //big but not too big - mv[member_cnt].offset_start=tempm->offset; - mv[member_cnt].offset_end=tempm->offset+MaxI64(1,tempm->size); - mv[member_cnt++].m=tempm; - } else if (tempm->reg==REG_ALLOC) + mv[member_cnt].offset_start=tmpm->offset; + mv[member_cnt].offset_end=tmpm->offset+MaxI64(1,tmpm->size); + mv[member_cnt++].m=tmpm; + } else if (tmpm->reg==REG_ALLOC) PrintWarn("Can't reg var\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name, - cc->lex_include_stk->line_num,tempm->str,cc->htc.fun->str); - tempm=tempm->next; + cc->lex_include_stk->line_num,tmpm->str,cc->htc.fun->str); + tmpm=tmpm->next; } } else member_cnt=0; - tempi=cc->coc.coc_head.next; - while (code=tempi->ic_code) { - tempi_next=tempi->next; + tmpi=cc->coc.coc_head.next; + while (code=tmpi->ic_code) { + tmpi_next=tmpi->next; if (code==IC_NOP1) - OptFree(tempi); + OptFree(tmpi); else { - if (tempil1=OptLag(tempi)) { - if (!(tempil2=OptLag(tempil1))) - tempil2=&cmp.ic_nop; + if (tmpil1=OptLag(tmpi)) { + if (!(tmpil2=OptLag(tmpil1))) + tmpil2=&cmp.ic_nop; } else - tempil1=tempil2=&cmp.ic_nop; - tempc=tempi->ic_class; + tmpil1=tmpil2=&cmp.ic_nop; + tmpc=tmpi->ic_class; switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: - ps->ptr-=tempi->ic_data>>3; + ps->ptr-=tmpi->ic_data>>3; break; case IS_2_ARG: - tempi2=PrsPop(ps); - if (tempi2->ic_flags&ICF_R_TO_F64) - tempc2=cmp.internal_types[RT_F64]; - else if (tempi2->ic_flags & ICF_R_TO_INT) - tempc2=cmp.internal_types[RT_I64]; + tmpi2=PrsPop(ps); + if (tmpi2->ic_flags&ICF_R_TO_F64) + tmpc2=cmp.internal_types[RT_F64]; + else if (tmpi2->ic_flags & ICF_R_TO_INT) + tmpc2=cmp.internal_types[RT_I64]; else - tempc2=tempi->t.a2c; - tempi->a2.type=MDF_STK+CmpRawType(tempc2); - tempi->ic_flags|=ICF_A2_WAS_STK; + tmpc2=tmpi->t.a2c; + tmpi->a2.type=MDF_STK+CmpRawType(tmpc2); + tmpi->ic_flags|=ICF_A2_WAS_STK; case IS_1_ARG: - tempi1=PrsPop(ps); - if (tempi1->ic_flags&ICF_R_TO_F64) - tempc1=cmp.internal_types[RT_F64]; - else if (tempi1->ic_flags & ICF_R_TO_INT) - tempc1=cmp.internal_types[RT_I64]; + tmpi1=PrsPop(ps); + if (tmpi1->ic_flags&ICF_R_TO_F64) + tmpc1=cmp.internal_types[RT_F64]; + else if (tmpi1->ic_flags & ICF_R_TO_INT) + tmpc1=cmp.internal_types[RT_I64]; else - tempc1=tempi->t.a1c; - tempi->a1.type=MDF_STK+CmpRawType(tempc1); - tempi->a1_type_pointed_to=CmpRawTypePointed(tempc1); - tempi->ic_flags|=ICF_A1_WAS_STK; + tmpc1=tmpi->t.a1c; + tmpi->a1.type=MDF_STK+CmpRawType(tmpc1); + tmpi->a1_type_pointed_to=CmpRawTypePointed(tmpc1); + tmpi->ic_flags|=ICF_A1_WAS_STK; break; case IS_0_ARG: //nobound switch break; } if (intermediate_code_table[code].res_cnt) { - tempi->r.type=MDF_STK+CmpRawType(tempc); - tempi->ic_flags|=ICF_R_WAS_STK; - PrsPush(ps,tempi); + tmpi->r.type=MDF_STK+CmpRawType(tmpc); + tmpi->ic_flags|=ICF_R_WAS_STK; + PrsPush(ps,tmpi); } switch [code] { case IC_IMM_F64: - tempi->ic_flags&=~ICF_R_TO_F64; - if (tempi->ic_flags&ICF_R_TO_INT) { - tempi->ic_data=ToI64(tempi->ic_data(F64)); - tempi->ic_flags&=~ICF_R_TO_INT; - tempi->ic_code=IC_IMM_I64; + tmpi->ic_flags&=~ICF_R_TO_F64; + if (tmpi->ic_flags&ICF_R_TO_INT) { + tmpi->ic_data=ToI64(tmpi->ic_data(F64)); + tmpi->ic_flags&=~ICF_R_TO_INT; + tmpi->ic_code=IC_IMM_I64; } break; case IC_IMM_I64: - tempi->ic_flags&=~ICF_R_TO_INT; - if (tempi->ic_flags&ICF_R_TO_F64) { - tempi->ic_data(F64)=ToF64(tempi->ic_data); - tempi->ic_flags&=~ICF_R_TO_F64; - tempi->ic_code=IC_IMM_F64; + tmpi->ic_flags&=~ICF_R_TO_INT; + if (tmpi->ic_flags&ICF_R_TO_F64) { + tmpi->ic_data(F64)=ToF64(tmpi->ic_data); + tmpi->ic_flags&=~ICF_R_TO_F64; + tmpi->ic_code=IC_IMM_F64; } break; case IC_RBP: - tempi->ic_code=IC_REG; - tempi->a1.reg=REG_RBP; + tmpi->ic_code=IC_REG; + tmpi->a1.reg=REG_RBP; break; case IC_DEREF: - tempi->a1_type_pointed_to=tempi->r.type.raw_type; - if (tempi1->ic_code==IC_LEA) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.reg=tempi1->a1.reg; - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=MDF_DISP+tempi->r.type.raw_type; - tempi->a1_type_pointed_to=CmpRawTypePointed(tempc); - tempi->ic_code=IC_MOV; - OptFree(tempi1); - if (tempi->a1.reg==REG_RBP) + tmpi->a1_type_pointed_to=tmpi->r.type.raw_type; + if (tmpi1->ic_code==IC_LEA) { + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.reg=tmpi1->a1.reg; + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.type=MDF_DISP+tmpi->r.type.raw_type; + tmpi->a1_type_pointed_to=CmpRawTypePointed(tmpc); + tmpi->ic_code=IC_MOV; + OptFree(tmpi1); + if (tmpi->a1.reg==REG_RBP) for (i=0;ia1.disp) { + if (mv[i].offset_start==tmpi->a1.disp) { mv[i].lea_balance--; mv[i].score++; break; } - } else if (tempil1->ic_code==IC_ADD_CONST) { - if (tempil2->ic_code==IC_REG) { - tempi->ic_flags|=tempil2->ic_flags|tempil1->ic_flags; - tempi->a1.reg=tempil2->a1.reg; - tempi->a1.disp=tempi->ic_data; - tempi->a1.type=MDF_DISP+tempi->r.type.raw_type; - tempi->a1_type_pointed_to=CmpRawTypePointed(tempc); - tempi->ic_code=IC_MOV; - OptFree(tempil2); - OptFree(tempil1); + } else if (tmpil1->ic_code==IC_ADD_CONST) { + if (tmpil2->ic_code==IC_REG) { + tmpi->ic_flags|=tmpil2->ic_flags|tmpil1->ic_flags; + tmpi->a1.reg=tmpil2->a1.reg; + tmpi->a1.disp=tmpi->ic_data; + tmpi->a1.type=MDF_DISP+tmpi->r.type.raw_type; + tmpi->a1_type_pointed_to=CmpRawTypePointed(tmpc); + tmpi->ic_code=IC_MOV; + OptFree(tmpil2); + OptFree(tmpil1); } } break; @@ -150,82 +150,82 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC__MM: case IC_PP_: case IC_MM_: - CmpMinTypePointed(tempi,CmpRawTypePointed(tempi->t.a1c)); + CmpMinTypePointed(tmpi,CmpRawTypePointed(tmpi->t.a1c)); case IC_DEREF_PP: case IC_DEREF_MM: - if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && - tempi1->a1.reg==REG_RBP) + if (tmpi1->ic_code==IC_LEA && tmpi1->a1.type&MDF_DISP && + tmpi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { + if (mv[i].offset_start==tmpi1->a1.disp) { mv[i].lea_balance--; mv[i].score++; break; } - tempi->a1_type_pointed_to=tempi->r.type.raw_type; + tmpi->a1_type_pointed_to=tmpi->r.type.raw_type; break; case IC_MUL: case IC_DIV: - if (tempc->raw_type==RT_F64) { - CmpF2PushPop(tempi,tempi1,tempi2); + if (tmpc->raw_type==RT_F64) { + CmpF2PushPop(tmpi,tmpi1,tmpi2); break; } break; case IC_ADD: - if (tempc->raw_type==RT_F64) { - CmpF2PushPop(tempi,tempi1,tempi2); + if (tmpc->raw_type==RT_F64) { + CmpF2PushPop(tmpi,tmpi1,tmpi2); break; } - if (OptFixupBinaryOp2(&tempi1,&tempi2)) { - tempi->ic_flags|=tempi1->ic_flags; - if (tempi->t.a1t!=tempi2) - tempi->t.a1c=tempi->t.a2c; - tempi->ic_data=tempi1->ic_data; - tempi->ic_code=IC_ADD_CONST; - tempi->a1_type_pointed_to=tempi->r.type.raw_type; - tempi->a2.type=MDF_NULL; - OptFree(tempi1); - if (tempil2->ic_code==IC_REG && tempil2->a1.reg==REG_RBP) { - tempi->ic_flags|=tempil2->ic_flags; - tempi->ic_code=IC_LEA; - tempi->a1.reg=REG_RBP; - tempi->a1.type=MDF_DISP+tempi->a1.type.raw_type; - tempi->a1.disp=tempi->ic_data; + if (OptFixupBinaryOp2(&tmpi1,&tmpi2)) { + tmpi->ic_flags|=tmpi1->ic_flags; + if (tmpi->t.a1t!=tmpi2) + tmpi->t.a1c=tmpi->t.a2c; + tmpi->ic_data=tmpi1->ic_data; + tmpi->ic_code=IC_ADD_CONST; + tmpi->a1_type_pointed_to=tmpi->r.type.raw_type; + tmpi->a2.type=MDF_NULL; + OptFree(tmpi1); + if (tmpil2->ic_code==IC_REG && tmpil2->a1.reg==REG_RBP) { + tmpi->ic_flags|=tmpil2->ic_flags; + tmpi->ic_code=IC_LEA; + tmpi->a1.reg=REG_RBP; + tmpi->a1.type=MDF_DISP+tmpi->a1.type.raw_type; + tmpi->a1.disp=tmpi->ic_data; for (i=0;iic_dataic_dataraw_type==RT_F64) { - CmpF2PushPop(tempi,tempi1,tempi2); + if (tmpc->raw_type==RT_F64) { + CmpF2PushPop(tmpi,tmpi1,tmpi2); break; } - if (tempi2->ic_code==IC_IMM_I64) { - tempi->ic_flags|=tempi2->ic_flags; - tempi->ic_data=tempi2->ic_data; - tempi->ic_code=IC_SUB_CONST; - tempi->a2.type=MDF_NULL; - OptFree(tempi2); + if (tmpi2->ic_code==IC_IMM_I64) { + tmpi->ic_flags|=tmpi2->ic_flags; + tmpi->ic_data=tmpi2->ic_data; + tmpi->ic_code=IC_SUB_CONST; + tmpi->a2.type=MDF_NULL; + OptFree(tmpi2); } break; case IC_LESS: case IC_GREATER_EQU: case IC_GREATER: case IC_LESS_EQU: - if (tempi->ic_flags&ICF_USE_F64) - CmpF2PushPop(tempi,tempi1,tempi2); + if (tmpi->ic_flags&ICF_USE_F64) + CmpF2PushPop(tmpi,tmpi1,tmpi2); break; case IC_MUL_EQU: case IC_DIV_EQU: case IC_ADD_EQU: case IC_SUB_EQU: - if (tempc->raw_type==RT_F64) - CmpF1PushPop(tempi,tempi2); + if (tmpc->raw_type==RT_F64) + CmpF1PushPop(tmpi,tmpi2); case IC_ASSIGN_PP: case IC_ASSIGN_MM: case IC_ASSIGN: @@ -235,25 +235,25 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC_AND_EQU: case IC_OR_EQU: case IC_XOR_EQU: - if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && - tempi1->a1.reg==REG_RBP) + if (tmpi1->ic_code==IC_LEA && tmpi1->a1.type&MDF_DISP && + tmpi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { + if (mv[i].offset_start==tmpi1->a1.disp) { mv[i].lea_balance--; mv[i].score++; break; } - tempi->a1_type_pointed_to=tempi->r.type.raw_type; - CmpMinTypePointed(tempi,CmpRawTypePointed(tempi->t.a1c)); + tmpi->a1_type_pointed_to=tmpi->r.type.raw_type; + CmpMinTypePointed(tmpi,CmpRawTypePointed(tmpi->t.a1c)); break; case IC_RETURN_VAL: case IC_RETURN_VAL2: - if (tempc) { - if (tempc->raw_type==RT_F64 && tempil1->ic_class->raw_type!=RT_F64) - tempil1->ic_flags|=ICF_R_TO_F64; - else if (tempc->raw_type!=RT_F64 && - tempil1->ic_class->raw_type==RT_F64) - tempil1->ic_flags|=ICF_R_TO_INT; + if (tmpc) { + if (tmpc->raw_type==RT_F64 && tmpil1->ic_class->raw_type!=RT_F64) + tmpil1->ic_flags|=ICF_R_TO_F64; + else if (tmpc->raw_type!=RT_F64 && + tmpil1->ic_class->raw_type==RT_F64) + tmpil1->ic_flags|=ICF_R_TO_INT; } break; case IC_SQR: @@ -263,118 +263,118 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC_COS: case IC_TAN: case IC_ATAN: - if (tempc->raw_type==RT_F64) - CmpF1PushPop(tempi,tempi1); + if (tmpc->raw_type==RT_F64) + CmpF1PushPop(tmpi,tmpi1); break; case IC_NOBOUND_SWITCH: case IC_SWITCH: - lb=OptLabelFwd(tempi->ic_data(CCodeMisc *)->dft); + lb=OptLabelFwd(tmpi->ic_data(CCodeMisc *)->dft); lb->use_cnt++; break; case IC_ASM: - tempaot=tempi->ic_data; - tempie=tempaot->next_ie; - while (tempie!=&tempaot->next_ie) { - if (IET_REL_I0<=tempie->type<=IET_IMM_I64 && - tempie->str && tempie->flags&IEF_GOTO_LABEL && - (lb=COCGoToLabelFind(cc,tempie->str))) + tmpaot=tmpi->ic_data; + tmpie=tmpaot->next_ie; + while (tmpie!=&tmpaot->next_ie) { + if (IET_REL_I0<=tmpie->type<=IET_IMM_I64 && + tmpie->str && tmpie->flags&IEF_GOTO_LABEL && + (lb=COCGoToLabelFind(cc,tmpie->str))) lb->use_cnt++; //Prevent deadcode elimination. - tempie=tempie->next; + tmpie=tmpie->next; } break; case IC_BR_NOT_EQU: case IC_BR_EQU_EQU: - if ((tempi1->ic_code==IC_IMM_I64 || - tempi1->ic_code==IC_IMM_F64) && !tempi1->ic_data) { - OptFree(tempi1); - MemCpy(&tempi->a1,&tempi->a2,sizeof(CICArg)); - tempi->a2.type=MDF_NULL; + if ((tmpi1->ic_code==IC_IMM_I64 || + tmpi1->ic_code==IC_IMM_F64) && !tmpi1->ic_data) { + OptFree(tmpi1); + MemCpy(&tmpi->a1,&tmpi->a2,sizeof(CICArg)); + tmpi->a2.type=MDF_NULL; if (code==IC_BR_EQU_EQU) - code=tempi->ic_code=IC_BR_ZERO; + code=tmpi->ic_code=IC_BR_ZERO; else - code=tempi->ic_code=IC_BR_NOT_ZERO; - tempi1=tempi2; - tempc1=tempc2; - } else if ((tempi2->ic_code==IC_IMM_I64 || - tempi2->ic_code==IC_IMM_F64) && !tempi2->ic_data) { - OptFree(tempi2); - tempi->a2.type=MDF_NULL; + code=tmpi->ic_code=IC_BR_NOT_ZERO; + tmpi1=tmpi2; + tmpc1=tmpc2; + } else if ((tmpi2->ic_code==IC_IMM_I64 || + tmpi2->ic_code==IC_IMM_F64) && !tmpi2->ic_data) { + OptFree(tmpi2); + tmpi->a2.type=MDF_NULL; if (code==IC_BR_EQU_EQU) - code=tempi->ic_code=IC_BR_ZERO; + code=tmpi->ic_code=IC_BR_ZERO; else - code=tempi->ic_code=IC_BR_NOT_ZERO; + code=tmpi->ic_code=IC_BR_NOT_ZERO; } else goto here1; case IC_BR_ZERO: case IC_BR_NOT_ZERO: - if (tempi1->ic_code==IC_IMM_I64 || tempi1->ic_code==IC_IMM_F64) { - if (code==IC_BR_ZERO ^^ tempi1->ic_data) { - OptFree(tempi1); - tempi->a1.type=MDF_NULL; - tempi->ic_code=IC_JMP; + if (tmpi1->ic_code==IC_IMM_I64 || tmpi1->ic_code==IC_IMM_F64) { + if (code==IC_BR_ZERO ^^ tmpi1->ic_data) { + OptFree(tmpi1); + tmpi->a1.type=MDF_NULL; + tmpi->ic_code=IC_JMP; } else { - OptFree(tempi1); - tempi=OptFree(tempi); + OptFree(tmpi1); + tmpi=OptFree(tmpi); break; } } goto here1; case IC_BR_AND_ZERO: - if (tempi1->ic_code==IC_IMM_I64) { - i=Bsr(tempi1->ic_data); - if (0<=i==Bsf(tempi1->ic_data)) { - tempi1->ic_data=i; - tempi->ic_flags|=ICF_BY_VAL; - tempi->ic_code=IC_BR_NOT_BT; + if (tmpi1->ic_code==IC_IMM_I64) { + i=Bsr(tmpi1->ic_data); + if (0<=i==Bsf(tmpi1->ic_data)) { + tmpi1->ic_data=i; + tmpi->ic_flags|=ICF_BY_VAL; + tmpi->ic_code=IC_BR_NOT_BT; goto here1; } } - if (tempi2->ic_code==IC_IMM_I64) { - i=Bsr(tempi2->ic_data); - if (0<=i==Bsf(tempi2->ic_data)) { - tempi2->ic_data=i; - tempi->ic_flags|=ICF_SWAP|ICF_BY_VAL; - tempi->ic_code=IC_BR_NOT_BT; + if (tmpi2->ic_code==IC_IMM_I64) { + i=Bsr(tmpi2->ic_data); + if (0<=i==Bsf(tmpi2->ic_data)) { + tmpi2->ic_data=i; + tmpi->ic_flags|=ICF_SWAP|ICF_BY_VAL; + tmpi->ic_code=IC_BR_NOT_BT; } } goto here1; case IC_BR_AND_NOT_ZERO: - if (tempi1->ic_code==IC_IMM_I64) { - i=Bsr(tempi1->ic_data); - if (0<=i==Bsf(tempi1->ic_data)) { - tempi1->ic_data=i; - tempi->ic_flags|=ICF_BY_VAL; - tempi->ic_code=IC_BR_BT; + if (tmpi1->ic_code==IC_IMM_I64) { + i=Bsr(tmpi1->ic_data); + if (0<=i==Bsf(tmpi1->ic_data)) { + tmpi1->ic_data=i; + tmpi->ic_flags|=ICF_BY_VAL; + tmpi->ic_code=IC_BR_BT; goto here1; } } - if (tempi2->ic_code==IC_IMM_I64) { - i=Bsr(tempi2->ic_data); - if (0<=i==Bsf(tempi2->ic_data)) { - tempi2->ic_data=i; - tempi->ic_flags|=ICF_SWAP|ICF_BY_VAL; - tempi->ic_code=IC_BR_BT; + if (tmpi2->ic_code==IC_IMM_I64) { + i=Bsr(tmpi2->ic_data); + if (0<=i==Bsf(tmpi2->ic_data)) { + tmpi2->ic_data=i; + tmpi->ic_flags|=ICF_SWAP|ICF_BY_VAL; + tmpi->ic_code=IC_BR_BT; } } goto here1; case IC_BR_MM_ZERO: case IC_BR_MM_NOT_ZERO: - if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && - tempi1->a1.reg==REG_RBP) + if (tmpi1->ic_code==IC_LEA && tmpi1->a1.type&MDF_DISP && + tmpi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { + if (mv[i].offset_start==tmpi1->a1.disp) { mv[i].lea_balance--; mv[i].score++; break; } - tempi->a1_type_pointed_to=CmpRawType(tempc); + tmpi->a1_type_pointed_to=CmpRawType(tmpc); goto here1; case IC_BR_LESS: case IC_BR_GREATER_EQU: case IC_BR_GREATER: case IC_BR_LESS_EQU: - if (tempi->ic_flags&ICF_USE_F64) - CmpF2PushPop(tempi,tempi1,tempi2); + if (tmpi->ic_flags&ICF_USE_F64) + CmpF2PushPop(tmpi,tmpi1,tmpi2); case IC_BR_EQU_EQU2...IC_BR_LESS_EQU2: case IC_BR_CARRY: case IC_BR_NOT_CARRY: @@ -390,17 +390,17 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC_JMP: case IC_SUB_CALL: here1: - if (tempi->ic_flags&ICF_PUSH_CMP) - lb=tempi->ic_data; + if (tmpi->ic_flags&ICF_PUSH_CMP) + lb=tmpi->ic_data; else - lb=OptLabelFwd(tempi->ic_data); + lb=OptLabelFwd(tmpi->ic_data); lb->use_cnt++; break; case IC_NOP1: - tempi=OptFree(tempi); + tmpi=OptFree(tmpi); break; case IC_NOP2: - ps->ptr+=tempi->ic_data; + ps->ptr+=tmpi->ic_data; break; case IC_SHL_CONST: case IC_SHR_CONST: @@ -505,11 +505,11 @@ here1: break; default: "Pass:%d Missing IC handler\n",cc->pass; - ICPut(cc,tempi); + ICPut(cc,tmpi); LexExcept(cc,"Compiler Optimization Error at "); } } - tempi=tempi_next; + tmpi=tmpi_next; } /* REGISTER VARIABLE ASSIGNMENT @@ -557,56 +557,56 @@ R12 and R13 as non-pointer register variables, such as index variables i,j,k. if (j>cmp.num_reg_vars) { l=0; for (i=0;imember_class); - if (!tempc->ptr_stars_cnt && !tempm->dim.next) { + tmpm=mv[i].m; + tmpc=OptClassFwd(tmpm->member_class); + if (!tmpc->ptr_stars_cnt && !tmpm->dim.next) { while (lhtc.fun->used_reg_mask,cmp.non_ptr_vars_map[l])) l++; if (lreg=cmp.non_ptr_vars_map[l++]; - reg_offsets[tempm->reg].offset=mv[i].offset_start; - reg_offsets[tempm->reg].m=tempm; + tmpm->reg=cmp.non_ptr_vars_map[l++]; + reg_offsets[tmpm->reg].offset=mv[i].offset_start; + reg_offsets[tmpm->reg].m=tmpm; if (Bt(&cc->flags,CCf_PASS_TRACE_PRESENT)) - "Reg %Z Var \"%-15ts\" %016X[RBP]\n",tempm->reg,"ST_U64_REGS", - tempm->str,reg_offsets[tempm->reg].offset; + "Reg %Z Var \"%-15ts\" %016X[RBP]\n",tmpm->reg,"ST_U64_REGS", + tmpm->str,reg_offsets[tmpm->reg].offset; mv[i].offset_start=0; //flag as reg var - if (tempm->size<8 && - !StrIMatch("Bool",tempm->member_class->str) && - tempm->member_class->type&HTT_INTERNAL_TYPE) + if (tmpm->size<8 && + !StrIMatch("Bool",tmpm->member_class->str) && + tmpm->member_class->type&HTT_INTERNAL_TYPE) PrintWarn("Using 64-bit reg var.\n " "$$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name, cc->lex_include_stk->line_num, - tempm->str,cc->htc.fun->str); + tmpm->str,cc->htc.fun->str); } } } } l=0; for (i=0;idim.next|| - tempm->offset>0 && StrCmp(tempm->str,"argv"))) { + tmpm->offset>0 && StrCmp(tmpm->str,"argv"))) { while (lhtc.fun->used_reg_mask,cmp.to_reg_vars_map[l])) l++; if (lreg=cmp.to_reg_vars_map[l++]; - reg_offsets[tempm->reg].offset=mv[i].offset_start; - reg_offsets[tempm->reg].m=tempm; + tmpm->reg=cmp.to_reg_vars_map[l++]; + reg_offsets[tmpm->reg].offset=mv[i].offset_start; + reg_offsets[tmpm->reg].m=tmpm; if (Bt(&cc->flags,CCf_PASS_TRACE_PRESENT)) - "Reg %Z Var \"%-15ts\" %016X[RBP]\n",tempm->reg,"ST_U64_REGS", - tempm->str,reg_offsets[tempm->reg].offset; - if (tempm->size<8 && - !StrIMatch("Bool",tempm->member_class->str) && - tempm->member_class->type&HTT_INTERNAL_TYPE) + "Reg %Z Var \"%-15ts\" %016X[RBP]\n",tmpm->reg,"ST_U64_REGS", + tmpm->str,reg_offsets[tmpm->reg].offset; + if (tmpm->size<8 && + !StrIMatch("Bool",tmpm->member_class->str) && + tmpm->member_class->type&HTT_INTERNAL_TYPE) PrintWarn("Using 64-bit reg var.\n " "$$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name, cc->lex_include_stk->line_num, - tempm->str,cc->htc.fun->str); + tmpm->str,cc->htc.fun->str); } } } diff --git a/Compiler/OptPass4.HC b/Compiler/OptPass4.HC index 7fa5038..b0007a5 100644 --- a/Compiler/OptPass4.HC +++ b/Compiler/OptPass4.HC @@ -1,128 +1,128 @@ -Bool OptIC4(CIntermediateCode *tempi) +Bool OptIC4(CIntermediateCode *tmpi) { I64 i; - CIntermediateCode *tempil1,*tempil2; + CIntermediateCode *tmpil1,*tmpil2; - if (tempi->ic_codeic_coder.type&MDF_STK && !(tempil2->ic_flags&ICF_PUSH_RES)) { - if (tempil1->ic_code==IC_ADD_CONST && tempil1->a1.type&MDF_STK) { - if ((tempil2->ic_code==IC_REG || tempil2->ic_code==IC_MOV) && - tempil2->a1.type&MDF_REG) { - i=tempil1->ic_data; + if (tmpil2->r.type&MDF_STK && !(tmpil2->ic_flags&ICF_PUSH_RES)) { + if (tmpil1->ic_code==IC_ADD_CONST && tmpil1->a1.type&MDF_STK) { + if ((tmpil2->ic_code==IC_REG || tmpil2->ic_code==IC_MOV) && + tmpil2->a1.type&MDF_REG) { + i=tmpil1->ic_data; if (MIN_I32<=i<=MAX_I32 && - !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { - tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; - tempil1->ic_code=IC_LEA; - tempil1->a1.type=MDF_DISP+tempil1->a1.type.raw_type; - tempil1->a1.reg=tempil2->a1.reg; - tempil1->a1.disp=i; - OptFree(tempil2); + !Bt(&cmp.non_ptr_vars_mask,tmpil2->a1.reg)) { + tmpil1->ic_flags|=tmpil2->ic_flags&ICG_NO_CVT_MASK; + tmpil1->ic_code=IC_LEA; + tmpil1->a1.type=MDF_DISP+tmpil1->a1.type.raw_type; + tmpil1->a1.reg=tmpil2->a1.reg; + tmpil1->a1.disp=i; + OptFree(tmpil2); return TRUE; } - } else if (tempil2->ic_code==IC_SHL_CONST && tempil2->a1.type&MDF_REG) { - i=tempil1->ic_data; - if (MIN_I32<=i<=MAX_I32 && tempil2->a1.reg!=REG_RSP && - 1<=tempil2->ic_data<=3) { - tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; - tempil1->ic_code=IC_LEA; - tempil1->a1.type=MDF_SIB+tempil1->a1.type.raw_type; - tempil1->a1.reg=tempil2->a1.reg<<8+REG_NONE; - if (tempil2->ic_data==1) - tempil1->a1.reg|=0x4000; - else if (tempil2->ic_data==2) - tempil1->a1.reg|=0x8000; + } else if (tmpil2->ic_code==IC_SHL_CONST && tmpil2->a1.type&MDF_REG) { + i=tmpil1->ic_data; + if (MIN_I32<=i<=MAX_I32 && tmpil2->a1.reg!=REG_RSP && + 1<=tmpil2->ic_data<=3) { + tmpil1->ic_flags|=tmpil2->ic_flags&ICG_NO_CVT_MASK; + tmpil1->ic_code=IC_LEA; + tmpil1->a1.type=MDF_SIB+tmpil1->a1.type.raw_type; + tmpil1->a1.reg=tmpil2->a1.reg<<8+REG_NONE; + if (tmpil2->ic_data==1) + tmpil1->a1.reg|=0x4000; + else if (tmpil2->ic_data==2) + tmpil1->a1.reg|=0x8000; else - tempil1->a1.reg|=0xC000; - tempil1->a1.disp=i; - OptFree(tempil2); + tmpil1->a1.reg|=0xC000; + tmpil1->a1.disp=i; + OptFree(tmpil2); return TRUE; } } } - if (tempil2->ic_code==IC_MOV || tempil2->ic_code==IC_REG) { - if (tempil1->a2.type&MDF_STK) { - if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->a1.type&MDF_IMM) - tempil2->a1.disp=tempil2->a1.disp(F64); + if (tmpil2->ic_code==IC_MOV || tmpil2->ic_code==IC_REG) { + if (tmpil1->a2.type&MDF_STK) { + if (tmpil2->ic_flags & ICF_R_TO_INT) { + if (tmpil2->a1.type&MDF_IMM) + tmpil2->a1.disp=tmpil2->a1.disp(F64); else - tempil1->ic_flags|=ICF_A2_TO_INT; - } else if (tempil2->ic_flags&ICF_R_TO_F64) { - if (tempil2->a1.type&MDF_IMM) - tempil2->a1.disp(F64)=tempil2->a1.disp; + tmpil1->ic_flags|=ICF_A2_TO_INT; + } else if (tmpil2->ic_flags&ICF_R_TO_F64) { + if (tmpil2->a1.type&MDF_IMM) + tmpil2->a1.disp(F64)=tmpil2->a1.disp; else - tempil1->ic_flags|=ICF_A2_TO_F64; + tmpil1->ic_flags|=ICF_A2_TO_F64; } - tempil1->a2.type=tempil2->a1.type&MDG_MASK+ - MinI64(tempil1->a2.type.raw_type, - MinI64(tempil2->r.type.raw_type,tempil2->a1.type.raw_type)); - tempil1->a2.reg=tempil2->a1.reg; - tempil1->a2.disp=tempil2->a1.disp; - tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; - OptSetNOP2(tempil2); + tmpil1->a2.type=tmpil2->a1.type&MDG_MASK+ + MinI64(tmpil1->a2.type.raw_type, + MinI64(tmpil2->r.type.raw_type,tmpil2->a1.type.raw_type)); + tmpil1->a2.reg=tmpil2->a1.reg; + tmpil1->a2.disp=tmpil2->a1.disp; + tmpil1->ic_flags|=tmpil2->ic_flags&ICG_NO_CVT_MASK; + OptSetNOP2(tmpil2); return TRUE; } - if (tempil1->a1.type&MDF_STK) { - if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->a1.type&MDF_IMM) - tempil2->a1.disp=tempil2->a1.disp(F64); + if (tmpil1->a1.type&MDF_STK) { + if (tmpil2->ic_flags & ICF_R_TO_INT) { + if (tmpil2->a1.type&MDF_IMM) + tmpil2->a1.disp=tmpil2->a1.disp(F64); else - tempil1->ic_flags|=ICF_A1_TO_INT; - } else if (tempil2->ic_flags&ICF_R_TO_F64) { - if (tempil2->a1.type&MDF_IMM) { - if (tempil2->a1.type&RTF_UNSIGNED) - tempil2->a1.disp(F64)=tempil2->a1.disp(U64); + tmpil1->ic_flags|=ICF_A1_TO_INT; + } else if (tmpil2->ic_flags&ICF_R_TO_F64) { + if (tmpil2->a1.type&MDF_IMM) { + if (tmpil2->a1.type&RTF_UNSIGNED) + tmpil2->a1.disp(F64)=tmpil2->a1.disp(U64); else - tempil2->a1.disp(F64)=tempil2->a1.disp(I64); + tmpil2->a1.disp(F64)=tmpil2->a1.disp(I64); } else - tempil1->ic_flags|=ICF_A1_TO_F64; + tmpil1->ic_flags|=ICF_A1_TO_F64; } - tempil1->a1.type=tempil2->a1.type&MDG_MASK+ - MinI64(tempil1->a1.type.raw_type, - MinI64(tempil2->r.type.raw_type,tempil2->a1.type.raw_type)); - CmpMinTypePointed(tempil1,tempil2->a1_type_pointed_to); - tempil1->a1.reg=tempil2->a1.reg; - tempil1->a1.disp=tempil2->a1.disp; - tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; - OptSetNOP2(tempil2); + tmpil1->a1.type=tmpil2->a1.type&MDG_MASK+ + MinI64(tmpil1->a1.type.raw_type, + MinI64(tmpil2->r.type.raw_type,tmpil2->a1.type.raw_type)); + CmpMinTypePointed(tmpil1,tmpil2->a1_type_pointed_to); + tmpil1->a1.reg=tmpil2->a1.reg; + tmpil1->a1.disp=tmpil2->a1.disp; + tmpil1->ic_flags|=tmpil2->ic_flags&ICG_NO_CVT_MASK; + OptSetNOP2(tmpil2); return TRUE; } } - if (tempil1->ic_code==IC_DEREF) { - if (tempil2->ic_code==IC_ADD_CONST && tempil2->a1.type&MDF_REG && - tempil1->a1.type&MDF_STK) { - i=tempil2->ic_data; + if (tmpil1->ic_code==IC_DEREF) { + if (tmpil2->ic_code==IC_ADD_CONST && tmpil2->a1.type&MDF_REG && + tmpil1->a1.type&MDF_STK) { + i=tmpil2->ic_data; if (MIN_I32<=i<=MAX_I32 && - !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { - tempil1->ic_flags|=tempil2->ic_flags; - tempil1->ic_code=IC_MOV; - tempil1->a1.type=MDF_DISP+tempil1->a1_type_pointed_to; - tempil1->a1.reg=tempil2->a1.reg; - tempil1->a1.disp=i; - OptSetNOP2(tempil2,-1); + !Bt(&cmp.non_ptr_vars_mask,tmpil2->a1.reg)) { + tmpil1->ic_flags|=tmpil2->ic_flags; + tmpil1->ic_code=IC_MOV; + tmpil1->a1.type=MDF_DISP+tmpil1->a1_type_pointed_to; + tmpil1->a1.reg=tmpil2->a1.reg; + tmpil1->a1.disp=i; + OptSetNOP2(tmpil2,-1); return TRUE; } } - if (tempil2->ic_code==IC_LEA && tempil1->a1.type&MDF_STK) { - tempil1->ic_flags|=tempil2->ic_flags; - tempil1->ic_code=IC_MOV; - tempil1->a1.type=tempil2->a1.type&MDG_MASK+tempil1->a1_type_pointed_to; - tempil1->a1.reg=tempil2->a1.reg; - tempil1->a1.disp=tempil2->a1.disp; - OptFree(tempil2); + if (tmpil2->ic_code==IC_LEA && tmpil1->a1.type&MDF_STK) { + tmpil1->ic_flags|=tmpil2->ic_flags; + tmpil1->ic_code=IC_MOV; + tmpil1->a1.type=tmpil2->a1.type&MDG_MASK+tmpil1->a1_type_pointed_to; + tmpil1->a1.reg=tmpil2->a1.reg; + tmpil1->a1.disp=tmpil2->a1.disp; + OptFree(tmpil2); return TRUE; } } } - if (tempil1->ic_code==IC_DEREF) { - if (tempil1->a1.type&MDF_REG) { - tempil1->a1.type=MDF_DISP+tempil1->a1_type_pointed_to; - tempil1->a1.disp=0; - tempil1->ic_code=IC_MOV; + if (tmpil1->ic_code==IC_DEREF) { + if (tmpil1->a1.type&MDF_REG) { + tmpil1->a1.type=MDF_DISP+tmpil1->a1_type_pointed_to; + tmpil1->a1.disp=0; + tmpil1->ic_code=IC_MOV; return TRUE; } } @@ -131,9 +131,9 @@ Bool OptIC4(CIntermediateCode *tempi) U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) { - CHashClass *tempc,*tempc1,*tempc2; - CIntermediateCode *tempi,*tempi1,*tempi2,*tempil1,*tempil2,*tempil3, - *tempi_next; + CHashClass *tmpc,*tmpc1,*tmpc2; + CIntermediateCode *tmpi,*tmpi1,*tmpi2,*tmpil1,*tmpil2,*tmpil3, + *tmpi_next; I64 code,i; Bool dead_code=FALSE; CCodeMisc *lb; @@ -144,37 +144,37 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) if (_type) *_type=RT_I64; - tempi=cc->coc.coc_head.next; - while (code=tempi->ic_code) { - tempi_next=tempi->next; + tmpi=cc->coc.coc_head.next; + while (code=tmpi->ic_code) { + tmpi_next=tmpi->next; if (dead_code&&code!=IC_LABEL) { if (code==IC_JMP||code==IC_SUB_CALL) { - lb=OptLabelFwd(tempi->ic_data); + lb=OptLabelFwd(tmpi->ic_data); if (lb->use_cnt>0) lb->use_cnt--; } - tempi=OptFree(tempi); + tmpi=OptFree(tmpi); } else { - tempc=tempi->ic_class; - tempi1=tempi2=&cmp.ic_nop; - if (tempil1=OptLag2(tempi)) { - if (tempil2=OptLag2(tempil1)) { - if (!(tempil3=OptLag2(tempil2))) - tempil3=&cmp.ic_nop; + tmpc=tmpi->ic_class; + tmpi1=tmpi2=&cmp.ic_nop; + if (tmpil1=OptLag2(tmpi)) { + if (tmpil2=OptLag2(tmpil1)) { + if (!(tmpil3=OptLag2(tmpil2))) + tmpil3=&cmp.ic_nop; } else - tempil2=tempil3=&cmp.ic_nop; + tmpil2=tmpil3=&cmp.ic_nop; } else - tempil1=tempil2=tempil3=&cmp.ic_nop; + tmpil1=tmpil2=tmpil3=&cmp.ic_nop; switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: - ps->ptr-=tempi->ic_data>>3; + ps->ptr-=tmpi->ic_data>>3; break; case IS_2_ARG: - tempi2=PrsPop(ps); - tempc2=tempi2->ic_class; + tmpi2=PrsPop(ps); + tmpc2=tmpi2->ic_class; case IS_1_ARG: - tempi1=PrsPop(ps); - tempc1=tempi1->ic_class; + tmpi1=PrsPop(ps); + tmpc1=tmpi1->ic_class; break; case IS_0_ARG: //nobound switch break; @@ -182,52 +182,52 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) switch [code] { case IC_IMM_I64: case IC_TYPE: - tempi->a1.type=MDF_IMM+RT_I64; - tempi->a1.disp=tempi->ic_data; - tempi->ic_code=IC_MOV; + tmpi->a1.type=MDF_IMM+RT_I64; + tmpi->a1.disp=tmpi->ic_data; + tmpi->ic_code=IC_MOV; break; case IC_IMM_F64: - tempi->a1.type=MDF_IMM+RT_I64; - tempi->a1.disp=tempi->ic_data; - tempi->a1_type_pointed_to=RT_F64; - tempi->ic_code=IC_MOV; + tmpi->a1.type=MDF_IMM+RT_I64; + tmpi->a1.disp=tmpi->ic_data; + tmpi->a1_type_pointed_to=RT_F64; + tmpi->ic_code=IC_MOV; break; case IC_MOV: - if (tempi->a1.type&MDF_DISP && tempi->a1.reg==REG_RBP) { - i=CmpOffset2Reg(tempi->a1.disp,reg_offsets); + if (tmpi->a1.type&MDF_DISP && tmpi->a1.reg==REG_RBP) { + i=CmpOffset2Reg(tmpi->a1.disp,reg_offsets); if (i>=0) { - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.reg=i; - tempi->a1.disp=0; + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.reg=i; + tmpi->a1.disp=0; } } break; case IC_DEREF: - if (tempi1->ic_code==IC_LEA) { - if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { - i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); + if (tmpi1->ic_code==IC_LEA) { + if (tmpi1->a1.type&MDF_DISP && tmpi1->a1.reg==REG_RBP) { + i=CmpOffset2Reg(tmpi1->a1.disp,reg_offsets); if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->ic_code=IC_REG; - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.reg=i; - tempi->a1.disp=0; - OptFree(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->ic_code=IC_REG; + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.reg=i; + tmpi->a1.disp=0; + OptFree(tmpi1); } } - } else if ((tempi1->ic_code==IC_ABS_ADDR || - tempi1->ic_code==IC_MOV && - tempi1->a1.type==MDF_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { - if (tempi1->ic_code==IC_ABS_ADDR) - tempi->a1.disp=tempi1->ic_data; + } else if ((tmpi1->ic_code==IC_ABS_ADDR || + tmpi1->ic_code==IC_MOV && + tmpi1->a1.type==MDF_IMM+RT_I64 && + 0<=tmpi1->a1.disp<=MAX_I32)&& !(tmpi1->ic_flags&ICF_NO_RIP)) { + if (tmpi1->ic_code==IC_ABS_ADDR) + tmpi->a1.disp=tmpi1->ic_data; else - tempi->a1.disp=tempi1->a1.disp; - tempi->ic_flags|=tempi1->ic_flags; - tempi->ic_code=IC_MOV; - tempi->a1.type=MDF_RIP_DISP32+tempi->a1_type_pointed_to; - tempi->a1.reg=REG_RIP; - OptFree(tempi1); + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->ic_code=IC_MOV; + tmpi->a1.type=MDF_RIP_DISP32+tmpi->a1_type_pointed_to; + tmpi->a1.reg=REG_RIP; + OptFree(tmpi1); } break; case IC_BR_MM_ZERO: @@ -239,106 +239,106 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) case IC__MM: case IC_PP_: case IC_MM_: - if (tempi1->ic_code==IC_LEA) { - if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { - i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); + if (tmpi1->ic_code==IC_LEA) { + if (tmpi1->a1.type&MDF_DISP && tmpi1->a1.reg==REG_RBP) { + i=CmpOffset2Reg(tmpi1->a1.disp,reg_offsets); if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.reg=i; - tempi->a1.disp=0; - tempi->ic_flags|=ICF_BY_VAL; - OptSetNOP2(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.reg=i; + tmpi->a1.disp=0; + tmpi->ic_flags|=ICF_BY_VAL; + OptSetNOP2(tmpi1); } else goto p4_lea_gone; } else { p4_lea_gone: - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=tempi1->a1.type; - tempi->a1.reg=tempi1->a1.reg; - tempi->a1.disp=tempi1->a1.disp; - tempi->ic_flags|=ICF_BY_VAL; - OptSetNOP2(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.type=tmpi1->a1.type; + tmpi->a1.reg=tmpi1->a1.reg; + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->ic_flags|=ICF_BY_VAL; + OptSetNOP2(tmpi1); } - } else if ((tempi1->ic_code==IC_ABS_ADDR || tempi1->ic_code==IC_MOV && - tempi1->a1.type==MDF_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { - tempi->ic_flags|=tempi1->ic_flags; - if (tempi1->ic_code==IC_ABS_ADDR) - tempi->a1.disp=tempi1->ic_data; + } else if ((tmpi1->ic_code==IC_ABS_ADDR || tmpi1->ic_code==IC_MOV && + tmpi1->a1.type==MDF_IMM+RT_I64 && + 0<=tmpi1->a1.disp<=MAX_I32)&& !(tmpi1->ic_flags&ICF_NO_RIP)) { + tmpi->ic_flags|=tmpi1->ic_flags; + if (tmpi1->ic_code==IC_ABS_ADDR) + tmpi->a1.disp=tmpi1->ic_data; else - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=MDF_RIP_DISP32+tempi->a1_type_pointed_to; - tempi->a1.reg=REG_RIP; - tempi->ic_flags|=ICF_BY_VAL; - OptFree(tempi1); + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.type=MDF_RIP_DISP32+tmpi->a1_type_pointed_to; + tmpi->a1.reg=REG_RIP; + tmpi->ic_flags|=ICF_BY_VAL; + OptFree(tmpi1); } break; case IC_ADD: - if (tempi1->ic_code==IC_MOV && tempi1->a1.type==MDF_REG+RT_I64 || - tempi1->ic_code==IC_REG) { - if (tempi2->ic_code==IC_MOV && tempi2->a1.type==MDF_REG+RT_I64 || - tempi2->ic_code==IC_REG) { - if (tempi2->a1.reg!=REG_RSP) { - tempi->a1.disp=0; - tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; + if (tmpi1->ic_code==IC_MOV && tmpi1->a1.type==MDF_REG+RT_I64 || + tmpi1->ic_code==IC_REG) { + if (tmpi2->ic_code==IC_MOV && tmpi2->a1.type==MDF_REG+RT_I64 || + tmpi2->ic_code==IC_REG) { + if (tmpi2->a1.reg!=REG_RSP) { + tmpi->a1.disp=0; + tmpi->a1.reg=tmpi1->a1.reg+tmpi2->a1.reg<<8; goto p4_sib; - } else if (tempi1->a1.reg!=REG_RSP) { - tempi->a1.disp=0; - tempi->a1.reg=tempi2->a1.reg+tempi1->a1.reg<<8; + } else if (tmpi1->a1.reg!=REG_RSP) { + tmpi->a1.disp=0; + tmpi->a1.reg=tmpi2->a1.reg+tmpi1->a1.reg<<8; p4_sib: - tempi->ic_flags|=(tempi1->ic_flags|tempi2->ic_flags) + tmpi->ic_flags|=(tmpi1->ic_flags|tmpi2->ic_flags) &ICG_NO_CVT_MASK; - OptSetNOP2(tempi1); - OptFree(tempi2); + OptSetNOP2(tmpi1); + OptFree(tmpi2); - tempi->ic_code=IC_LEA; - tempi->a1.type=MDF_SIB+RT_I64; - tempi->a1_type_pointed_to=RT_I64; + tmpi->ic_code=IC_LEA; + tmpi->a1.type=MDF_SIB+RT_I64; + tmpi->a1_type_pointed_to=RT_I64; - tempi->a2.type=MDF_NULL+tempi->a2.type.raw_type; + tmpi->a2.type=MDF_NULL+tmpi->a2.type.raw_type; } - } else if (tempi2->ic_code==IC_SHL_CONST && - tempi2->a1.type==MDF_REG+RT_I64 && tempi2->ic_data<=3) { - if (tempi2->a1.reg!=REG_RSP) { - tempi->a1.disp=0; - tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; - if (tempi2->ic_data==1) - tempi->a1.reg|=0x4000; - else if (tempi2->ic_data==2) - tempi->a1.reg|=0x8000; + } else if (tmpi2->ic_code==IC_SHL_CONST && + tmpi2->a1.type==MDF_REG+RT_I64 && tmpi2->ic_data<=3) { + if (tmpi2->a1.reg!=REG_RSP) { + tmpi->a1.disp=0; + tmpi->a1.reg=tmpi1->a1.reg+tmpi2->a1.reg<<8; + if (tmpi2->ic_data==1) + tmpi->a1.reg|=0x4000; + else if (tmpi2->ic_data==2) + tmpi->a1.reg|=0x8000; else - tempi->a1.reg|=0xC000; + tmpi->a1.reg|=0xC000; goto p4_sib; } } - } else if (tempi1->ic_code==IC_LEA && - tempi1->a1.type&MDF_DISP) { - if (tempi1->a1.reg==REG_RBP && - CmpOffset2Reg(tempi1->a1.disp,reg_offsets)>=0) + } else if (tmpi1->ic_code==IC_LEA && + tmpi1->a1.type&MDF_DISP) { + if (tmpi1->a1.reg==REG_RBP && + CmpOffset2Reg(tmpi1->a1.disp,reg_offsets)>=0) break; - if (tempi2->ic_code==IC_MOV && tempi2->a1.type==MDF_REG+RT_I64 || - tempi2->ic_code==IC_REG) { - if (tempi2->a1.reg!=REG_RSP) { - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; + if (tmpi2->ic_code==IC_MOV && tmpi2->a1.type==MDF_REG+RT_I64 || + tmpi2->ic_code==IC_REG) { + if (tmpi2->a1.reg!=REG_RSP) { + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.reg=tmpi1->a1.reg+tmpi2->a1.reg<<8; goto p4_sib; - } else if (tempi1->a1.reg!=REG_RSP) { - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.reg=tempi2->a1.reg+tempi1->a1.reg<<8; + } else if (tmpi1->a1.reg!=REG_RSP) { + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.reg=tmpi2->a1.reg+tmpi1->a1.reg<<8; goto p4_sib; } - } else if (tempi2->ic_code==IC_SHL_CONST && - tempi2->a1.type==MDF_REG+RT_I64 && tempi2->ic_data<=3) { - if (tempi2->a1.reg!=REG_RSP) { - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; - if (tempi2->ic_data==1) - tempi->a1.reg|=0x4000; - else if (tempi2->ic_data==2) - tempi->a1.reg|=0x8000; + } else if (tmpi2->ic_code==IC_SHL_CONST && + tmpi2->a1.type==MDF_REG+RT_I64 && tmpi2->ic_data<=3) { + if (tmpi2->a1.reg!=REG_RSP) { + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.reg=tmpi1->a1.reg+tmpi2->a1.reg<<8; + if (tmpi2->ic_data==1) + tmpi->a1.reg|=0x4000; + else if (tmpi2->ic_data==2) + tmpi->a1.reg|=0x8000; else - tempi->a1.reg|=0xC000; + tmpi->a1.reg|=0xC000; goto p4_sib; } } @@ -347,7 +347,7 @@ p4_sib: case IC_ASSIGN_PP: case IC_ASSIGN_MM: //this val was stashed during pass012 for pointer arithmetic - tempi->ic_class2=tempi->t.class2; //See $LK,"ic_class2",A="FF:::/Compiler/BackB.HC,ic_class2"$ + tmpi->ic_class2=tmpi->t.class2; //See $LK,"ic_class2",A="FF:::/Compiler/BackB.HC,ic_class2"$ case IC_ASSIGN: case IC_SHL_EQU: case IC_SHR_EQU: @@ -359,79 +359,79 @@ p4_sib: case IC_XOR_EQU: case IC_ADD_EQU: case IC_SUB_EQU: - if (tempi1->ic_code==IC_LEA) { - if (tempi1->a1.type&(MDF_DISP|MDF_SIB)) { - tempi2=tempi->next; - if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { - i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); + if (tmpi1->ic_code==IC_LEA) { + if (tmpi1->a1.type&(MDF_DISP|MDF_SIB)) { + tmpi2=tmpi->next; + if (tmpi1->a1.type&MDF_DISP && tmpi1->a1.reg==REG_RBP) { + i=CmpOffset2Reg(tmpi1->a1.disp,reg_offsets); if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.reg=i; - tempi->a1.disp=0; - OptSetNOP2(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.reg=i; + tmpi->a1.disp=0; + OptSetNOP2(tmpi1); } else { - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=MDF_DISP+tempi->a1.type.raw_type; - tempi->a1.reg=REG_RBP; - tempi->a1.disp=tempi1->a1.disp; - OptSetNOP2(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.type=MDF_DISP+tmpi->a1.type.raw_type; + tmpi->a1.reg=REG_RBP; + tmpi->a1.disp=tmpi1->a1.disp; + OptSetNOP2(tmpi1); } } else { - tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=tempi1->a1.type&MDG_MASK+tempi->a1.type.raw_type; - tempi->a1.reg=tempi1->a1.reg; - tempi->a1.disp=tempi1->a1.disp; - OptSetNOP2(tempi1); + tmpi->ic_flags|=tmpi1->ic_flags; + tmpi->a1.type=tmpi1->a1.type&MDG_MASK+tmpi->a1.type.raw_type; + tmpi->a1.reg=tmpi1->a1.reg; + tmpi->a1.disp=tmpi1->a1.disp; + OptSetNOP2(tmpi1); } - if (tempi->r.type&MDF_STK && tempi2->a2.type&MDF_STK && + if (tmpi->r.type&MDF_STK && tmpi2->a2.type&MDF_STK && code!=IC_ASSIGN_PP && code!=IC_ASSIGN_MM) { - tempi->r.type=tempi->a1.type; - tempi->r.reg=tempi->a1.reg; - tempi->r.disp=tempi->a1.disp; - tempi2->a2.type=tempi->a1.type; - tempi2->a2.reg=tempi->a1.reg; - tempi2->a2.disp=tempi->a1.disp; - CmpMinTypePointed(tempi2,tempi->a1_type_pointed_to); + tmpi->r.type=tmpi->a1.type; + tmpi->r.reg=tmpi->a1.reg; + tmpi->r.disp=tmpi->a1.disp; + tmpi2->a2.type=tmpi->a1.type; + tmpi2->a2.reg=tmpi->a1.reg; + tmpi2->a2.disp=tmpi->a1.disp; + CmpMinTypePointed(tmpi2,tmpi->a1_type_pointed_to); } - tempi->ic_flags|=ICF_BY_VAL; + tmpi->ic_flags|=ICF_BY_VAL; } - } else if ((tempi1->ic_code==IC_ABS_ADDR || - tempi1->ic_code==IC_MOV && tempi1->a1.type==MDF_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { - tempi->ic_flags|=tempi1->ic_flags; - if (tempi1->ic_code==IC_ABS_ADDR) - tempi->a1.disp=tempi1->ic_data; + } else if ((tmpi1->ic_code==IC_ABS_ADDR || + tmpi1->ic_code==IC_MOV && tmpi1->a1.type==MDF_IMM+RT_I64 && + 0<=tmpi1->a1.disp<=MAX_I32)&& !(tmpi1->ic_flags&ICF_NO_RIP)) { + tmpi->ic_flags|=tmpi1->ic_flags; + if (tmpi1->ic_code==IC_ABS_ADDR) + tmpi->a1.disp=tmpi1->ic_data; else - tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=MDF_RIP_DISP32+tempi->a1.type.raw_type; - tempi->a1.reg=REG_RIP; - tempi->ic_flags|=ICF_BY_VAL; - OptSetNOP2(tempi1); + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->a1.type=MDF_RIP_DISP32+tmpi->a1.type.raw_type; + tmpi->a1.reg=REG_RIP; + tmpi->ic_flags|=ICF_BY_VAL; + OptSetNOP2(tmpi1); } break; case IC_RETURN_VAL: case IC_RETURN_VAL2: - if (!tempi->ic_class) { + if (!tmpi->ic_class) { if (_type) { - tempil1=tempi; - while (tempil1=OptLag1(tempil1)) - if (tempil1->ic_class) { - if (tempil1->ic_flags & ICF_R_TO_F64) + tmpil1=tmpi; + while (tmpil1=OptLag1(tmpil1)) + if (tmpil1->ic_class) { + if (tmpil1->ic_flags & ICF_R_TO_F64) *_type=RT_F64; - else if (tempil1->ic_flags & ICF_R_TO_INT) + else if (tmpil1->ic_flags & ICF_R_TO_INT) *_type=RT_I64; else - *_type=tempil1->ic_class->raw_type; + *_type=tmpil1->ic_class->raw_type; break; } } - tempi->ic_class=cmp.internal_types[RT_I64]; + tmpi->ic_class=cmp.internal_types[RT_I64]; } else if (_type) - *_type=tempi->ic_class->raw_type; + *_type=tmpi->ic_class->raw_type; break; case IC_NOP1: - tempi=OptFree(tempi); + tmpi=OptFree(tmpi); break; case IC_BR_BT: case IC_BR_BTS: @@ -448,66 +448,66 @@ p4_sib: case IC_LBTS: case IC_LBTR: case IC_LBTC: - if (!(tempi->ic_flags&ICF_BY_VAL)) { - if (tempi2->ic_code==IC_ADDR) { - if (tempi2->a1.type&MDF_STK && - tempi2->r.type&MDF_STK) { - if (tempil2=OptLag1(tempi2)) { - if (tempil2->ic_code==IC_LEA) { - if (tempil2->a1.type&(MDF_IMM|MDG_REG_DISP_SIB_RIP)) { - if (tempi2) { - tempi->ic_flags|=tempi2->ic_flags; - OptFree(tempi2); + if (!(tmpi->ic_flags&ICF_BY_VAL)) { + if (tmpi2->ic_code==IC_ADDR) { + if (tmpi2->a1.type&MDF_STK && + tmpi2->r.type&MDF_STK) { + if (tmpil2=OptLag1(tmpi2)) { + if (tmpil2->ic_code==IC_LEA) { + if (tmpil2->a1.type&(MDF_IMM|MDG_REG_DISP_SIB_RIP)) { + if (tmpi2) { + tmpi->ic_flags|=tmpi2->ic_flags; + OptFree(tmpi2); } - tempi->ic_flags|=tempil2->ic_flags|ICF_BY_VAL; - tempi->a2.type=tempil2->a1.type; - tempi->a2.reg =tempil2->a1.reg; - tempi->a2.disp=tempil2->a1.disp; - OptFree(tempil2); + tmpi->ic_flags|=tmpil2->ic_flags|ICF_BY_VAL; + tmpi->a2.type=tmpil2->a1.type; + tmpi->a2.reg =tmpil2->a1.reg; + tmpi->a2.disp=tmpil2->a1.disp; + OptFree(tmpil2); } break; - } else if (tempil2->ic_code!=IC_ABS_ADDR && - !(tempil2->ic_code==IC_MOV && - tempil2->a1.type==MDF_IMM+RT_I64 && - 0<=tempil2->a1.disp<=MAX_I32) || - tempil2->ic_flags&ICF_NO_RIP) - tempil2=NULL; + } else if (tmpil2->ic_code!=IC_ABS_ADDR && + !(tmpil2->ic_code==IC_MOV && + tmpil2->a1.type==MDF_IMM+RT_I64 && + 0<=tmpil2->a1.disp<=MAX_I32) || + tmpil2->ic_flags&ICF_NO_RIP) + tmpil2=NULL; else { - if (tempil2->ic_code==IC_ABS_ADDR) - tempi->a2.disp=tempil2->ic_data; + if (tmpil2->ic_code==IC_ABS_ADDR) + tmpi->a2.disp=tmpil2->ic_data; else - tempi->a2.disp=tempil2->a1.disp; + tmpi->a2.disp=tmpil2->a1.disp; } } } else { - if (tempi2->a1.type==MDF_IMM+RT_I64 && - 0<=tempi2->a1.disp<=MAX_I32 && - !(tempi2->ic_flags&ICF_NO_RIP)) { - tempil2=tempi2; - tempi2=NULL; - tempi->a2.disp=tempil2->a1.disp; + if (tmpi2->a1.type==MDF_IMM+RT_I64 && + 0<=tmpi2->a1.disp<=MAX_I32 && + !(tmpi2->ic_flags&ICF_NO_RIP)) { + tmpil2=tmpi2; + tmpi2=NULL; + tmpi->a2.disp=tmpil2->a1.disp; } else - tempil2=NULL; + tmpil2=NULL; } - if (tempil2) { - if (tempi2) { - tempi->ic_flags|=tempi2->ic_flags; - OptFree(tempi2); + if (tmpil2) { + if (tmpi2) { + tmpi->ic_flags|=tmpi2->ic_flags; + OptFree(tmpi2); } - tempi->ic_flags|=tempil2->ic_flags|ICF_BY_VAL; - tempi->a2.type=MDF_RIP_DISP32+tempi->a2.type.raw_type; - tempi->a2.reg=REG_RIP; - OptFree(tempil2); + tmpi->ic_flags|=tmpil2->ic_flags|ICF_BY_VAL; + tmpi->a2.type=MDF_RIP_DISP32+tmpi->a2.type.raw_type; + tmpi->a2.reg=REG_RIP; + OptFree(tmpil2); } - } else if (tempi2->ic_code==IC_MOV && tempi2->r.type&MDF_STK && - tempi2->a1.type==MDF_IMM+RT_I64 && - 0<=tempi2->a1.disp<=MAX_I32 && - !(tempi2->ic_flags&ICF_NO_RIP)) { - tempi->a2.disp=tempi2->a1.disp; - tempi->ic_flags|=tempi2->ic_flags|ICF_BY_VAL; - tempi->a2.type=MDF_RIP_DISP32+tempi->a2.type.raw_type; - tempi->a2.reg=REG_RIP; - OptFree(tempi2); + } else if (tmpi2->ic_code==IC_MOV && tmpi2->r.type&MDF_STK && + tmpi2->a1.type==MDF_IMM+RT_I64 && + 0<=tmpi2->a1.disp<=MAX_I32 && + !(tmpi2->ic_flags&ICF_NO_RIP)) { + tmpi->a2.disp=tmpi2->a1.disp; + tmpi->ic_flags|=tmpi2->ic_flags|ICF_BY_VAL; + tmpi->a2.type=MDF_RIP_DISP32+tmpi->a2.type.raw_type; + tmpi->a2.reg=REG_RIP; + OptFree(tmpi2); } } break; @@ -517,14 +517,14 @@ p4_sib: case IC_BR_NOT_CARRY: case IC_BR_ZERO: case IC_BR_NOT_ZERO: - lb=tempi->ic_data; - if (tempi->ic_flags&ICF_PUSH_CMP) { + lb=tmpi->ic_data; + if (tmpi->ic_flags&ICF_PUSH_CMP) { lb->flags|=CMF_POP_CMP; lb->fwd=NULL; } break; case IC_LABEL: - lb=tempi->ic_data; + lb=tmpi->ic_data; if (lb->use_cnt) dead_code=FALSE; break; @@ -533,26 +533,26 @@ p4_sib: dead_code=TRUE; break; case IC_NOP2: - ps->ptr+=tempi->ic_data; + ps->ptr+=tmpi->ic_data; break; case IC_CALL_END: case IC_END_EXP: - if (!(tempil1->ic_flags&ICF_PUSH_RES)) { - if (tempi->ic_flags&ICF_RES_NOT_USED) { - tempil1->ic_flags|=ICF_RES_NOT_USED; - tempil1->r.type=MDF_NULL+tempil1->r.type.raw_type; - } else if (tempi->a1.type&MDF_STK && - tempil1->r.type&MDF_STK) { - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.disp=0; - tempil1->r.type=MDF_REG+tempil1->r.type.raw_type; - tempil1->r.disp=0; - if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG) { - tempi->a1.reg=REG_R8; - tempil1->r.reg=REG_R8; + if (!(tmpil1->ic_flags&ICF_PUSH_RES)) { + if (tmpi->ic_flags&ICF_RES_NOT_USED) { + tmpil1->ic_flags|=ICF_RES_NOT_USED; + tmpil1->r.type=MDF_NULL+tmpil1->r.type.raw_type; + } else if (tmpi->a1.type&MDF_STK && + tmpil1->r.type&MDF_STK) { + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.disp=0; + tmpil1->r.type=MDF_REG+tmpil1->r.type.raw_type; + tmpil1->r.disp=0; + if (intermediate_code_table[tmpi->ic_code].arg_cnt==IS_2_ARG) { + tmpi->a1.reg=REG_R8; + tmpil1->r.reg=REG_R8; } else { - tempi->a1.reg=REG_RAX; - tempil1->r.reg=REG_RAX; + tmpi->a1.reg=REG_RAX; + tmpil1->r.reg=REG_RAX; } } } @@ -668,17 +668,17 @@ p4_sib: break; default: "Pass:%d Missing IC handler\n",cc->pass; - ICPut(cc,tempi); + ICPut(cc,tmpi); LexExcept(cc,"Compiler Optimization Error at "); } - if (tempi) { - while (OptIC4(tempi)); - code=tempi->ic_code; + if (tmpi) { + while (OptIC4(tmpi)); + code=tmpi->ic_code; if (intermediate_code_table[code].res_cnt) - PrsPush(ps,tempi); + PrsPush(ps,tmpi); } } - tempi=tempi_next; + tmpi=tmpi_next; } if (ps->ptr>2) { "Pass:%d Stk:%08X\n",cc->pass,ps->ptr; diff --git a/Compiler/OptPass5.HC b/Compiler/OptPass5.HC index 25a1aab..c1f7795 100644 --- a/Compiler/OptPass5.HC +++ b/Compiler/OptPass5.HC @@ -1,87 +1,87 @@ U0 OptPass5(CCmpCtrl *cc) { - CIntermediateCode *tempi,*tempi1; + CIntermediateCode *tmpi,*tmpi1; I64 code,i; CPrsStk *ps=cc->ps; ps->ptr=0; ps->ptr2=0; - tempi=cc->coc.coc_head.next; - while (code=tempi->ic_code) { + tmpi=cc->coc.coc_head.next; + while (code=tmpi->ic_code) { if (code>IC_NOP2) { - if (tempi->ic_flags&ICF_PASS_TRACE) { + if (tmpi->ic_flags&ICF_PASS_TRACE) { if (Bt(&cc->saved_pass_trace,5)) { "%2d:",ps->ptr; - ICPut(cc,tempi); + ICPut(cc,tmpi); } } if (intermediate_code_table[code].arg_cnt==IS_V_ARG) - ps->ptr-=tempi->ic_data>>3; + ps->ptr-=tmpi->ic_data>>3; if (code==IC_PUSH_REGS) { for (i=0;iic_data,i)) + if (Bt(&tmpi->ic_data,i)) ps->ptr++; } else if (code==IC_POP_REGS) { for (i=0;iic_data,i)) + if (Bt(&tmpi->ic_data,i)) ps->ptr--; } - if (tempi->a2.type&MDF_STK) { - tempi1=PrsPop(ps); - if (tempi1->ic_code==IC_MOV || tempi1->ic_code==IC_REG) { - if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->a1.type&MDF_IMM) - tempi1->a1.disp=tempi1->a1.disp(F64); + if (tmpi->a2.type&MDF_STK) { + tmpi1=PrsPop(ps); + if (tmpi1->ic_code==IC_MOV || tmpi1->ic_code==IC_REG) { + if (tmpi1->ic_flags & ICF_R_TO_INT) { + if (tmpi1->a1.type&MDF_IMM) + tmpi1->a1.disp=tmpi1->a1.disp(F64); else - tempi->ic_flags|=ICF_A2_TO_INT; - } else if (tempi1->ic_flags&ICF_R_TO_F64) { - if (tempi1->a1.type&MDF_IMM) - tempi1->a1.disp(F64)=tempi1->a1.disp; + tmpi->ic_flags|=ICF_A2_TO_INT; + } else if (tmpi1->ic_flags&ICF_R_TO_F64) { + if (tmpi1->a1.type&MDF_IMM) + tmpi1->a1.disp(F64)=tmpi1->a1.disp; else - tempi->ic_flags|=ICF_A2_TO_F64; + tmpi->ic_flags|=ICF_A2_TO_F64; } - tempi->a2.type=tempi1->a1.type&MDG_MASK+ - MinI64(tempi->a2.type.raw_type, - MinI64(tempi1->r.type.raw_type,tempi1->a1.type.raw_type)); - tempi->a2.reg=tempi1->a1.reg; - tempi->a2.disp=tempi1->a1.disp; - tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK; - OptSetNOP2(tempi1); + tmpi->a2.type=tmpi1->a1.type&MDG_MASK+ + MinI64(tmpi->a2.type.raw_type, + MinI64(tmpi1->r.type.raw_type,tmpi1->a1.type.raw_type)); + tmpi->a2.reg=tmpi1->a1.reg; + tmpi->a2.disp=tmpi1->a1.disp; + tmpi->ic_flags|=tmpi1->ic_flags&ICG_NO_CVT_MASK; + OptSetNOP2(tmpi1); } } - if (tempi->a1.type&MDF_STK) { - tempi1=PrsPop(ps); - if (tempi1->ic_code==IC_MOV || tempi1->ic_code==IC_REG) { - if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->a1.type&MDF_IMM) - tempi1->a1.disp=tempi1->a1.disp(F64); + if (tmpi->a1.type&MDF_STK) { + tmpi1=PrsPop(ps); + if (tmpi1->ic_code==IC_MOV || tmpi1->ic_code==IC_REG) { + if (tmpi1->ic_flags & ICF_R_TO_INT) { + if (tmpi1->a1.type&MDF_IMM) + tmpi1->a1.disp=tmpi1->a1.disp(F64); else - tempi->ic_flags|=ICF_A1_TO_INT; - } else if (tempi1->ic_flags&ICF_R_TO_F64) { - if (tempi1->a1.type&MDF_IMM) { - if (tempi1->a1.type&RTF_UNSIGNED) - tempi1->a1.disp(F64)=tempi1->a1.disp(U64); + tmpi->ic_flags|=ICF_A1_TO_INT; + } else if (tmpi1->ic_flags&ICF_R_TO_F64) { + if (tmpi1->a1.type&MDF_IMM) { + if (tmpi1->a1.type&RTF_UNSIGNED) + tmpi1->a1.disp(F64)=tmpi1->a1.disp(U64); else - tempi1->a1.disp(F64)=tempi1->a1.disp(I64); + tmpi1->a1.disp(F64)=tmpi1->a1.disp(I64); } else - tempi->ic_flags|=ICF_A1_TO_F64; + tmpi->ic_flags|=ICF_A1_TO_F64; } - tempi->a1.type=tempi1->a1.type&MDG_MASK+ - MinI64(tempi->a1.type.raw_type, - MinI64(tempi1->r.type.raw_type,tempi1->a1.type.raw_type)); - CmpMinTypePointed(tempi,tempi1->a1_type_pointed_to); - tempi->a1.reg=tempi1->a1.reg; - tempi->a1.disp=tempi1->a1.disp; - tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK; - OptSetNOP2(tempi1); + tmpi->a1.type=tmpi1->a1.type&MDG_MASK+ + MinI64(tmpi->a1.type.raw_type, + MinI64(tmpi1->r.type.raw_type,tmpi1->a1.type.raw_type)); + CmpMinTypePointed(tmpi,tmpi1->a1_type_pointed_to); + tmpi->a1.reg=tmpi1->a1.reg; + tmpi->a1.disp=tmpi1->a1.disp; + tmpi->ic_flags|=tmpi1->ic_flags&ICG_NO_CVT_MASK; + OptSetNOP2(tmpi1); } } - if (tempi->r.type&MDF_STK && - !(tempi->ic_flags&ICF_RES_NOT_USED)) - PrsPush(ps,tempi); + if (tmpi->r.type&MDF_STK && + !(tmpi->ic_flags&ICF_RES_NOT_USED)) + PrsPush(ps,tmpi); } - tempi=tempi->next; + tmpi=tmpi->next; } if (ps->ptr>2) { "Pass:%d Stk:%08X\n",cc->pass,ps->ptr; diff --git a/Compiler/OptPass6.HC b/Compiler/OptPass6.HC index b543690..4f78a88 100644 --- a/Compiler/OptPass6.HC +++ b/Compiler/OptPass6.HC @@ -1,101 +1,101 @@ -Bool OptIC6(CIntermediateCode *tempi) +Bool OptIC6(CIntermediateCode *tmpi) { - CIntermediateCode *tempil1; - if (tempi->ic_codeic_codeic_code==IC_ADD_CONST && tempi->ic_code==IC_DEREF && - tempi->ic_flags&ICF_A1_WAS_STK && tempi->a1.type&MDF_REG && - tempil1->r.type&MDF_REG && MIN_I32<=tempil1->ic_data<=MAX_I32 && - !Bt(&cmp.non_ptr_vars_mask,tempil1->a1.reg)) { - if (tempil1->a1.type&MDF_REG) { - tempi->ic_flags=tempi->ic_flags&~ICF_A1_WAS_STK | tempil1->ic_flags; - tempi->ic_code=IC_MOV; - tempi->a1.type=MDF_DISP+tempi->a1_type_pointed_to; - tempi->a1.reg=tempil1->a1.reg; - tempi->a1.disp=tempil1->ic_data; - OptSetNOP2(tempil1,-1); + if (tmpil1->ic_code==IC_ADD_CONST && tmpi->ic_code==IC_DEREF && + tmpi->ic_flags&ICF_A1_WAS_STK && tmpi->a1.type&MDF_REG && + tmpil1->r.type&MDF_REG && MIN_I32<=tmpil1->ic_data<=MAX_I32 && + !Bt(&cmp.non_ptr_vars_mask,tmpil1->a1.reg)) { + if (tmpil1->a1.type&MDF_REG) { + tmpi->ic_flags=tmpi->ic_flags&~ICF_A1_WAS_STK | tmpil1->ic_flags; + tmpi->ic_code=IC_MOV; + tmpi->a1.type=MDF_DISP+tmpi->a1_type_pointed_to; + tmpi->a1.reg=tmpil1->a1.reg; + tmpi->a1.disp=tmpil1->ic_data; + OptSetNOP2(tmpil1,-1); } else { - tempil1->ic_code=IC_MOV; - tempi->ic_code=IC_MOV; - tempi->a1.type=MDF_DISP+tempi->a1_type_pointed_to; - tempi->a1.disp=tempil1->ic_data; + tmpil1->ic_code=IC_MOV; + tmpi->ic_code=IC_MOV; + tmpi->a1.type=MDF_DISP+tmpi->a1_type_pointed_to; + tmpi->a1.disp=tmpil1->ic_data; } return TRUE; } return FALSE; } -U0 OptPass6Lag(CCmpCtrl *cc,CPrsStk *ps,CIntermediateCode *tempi, +U0 OptPass6Lag(CCmpCtrl *cc,CPrsStk *ps,CIntermediateCode *tmpi, I64 *_stk_ptr,I64 reg_stk_size,I64 *_clobbered_reg_mask) { I64 stk_ptr=*_stk_ptr,code, - clobbered_stk_temp_mask,clobbered_reg_mask=*_clobbered_reg_mask; - CHashFun *tempf; - code=tempi->ic_code; - if (tempi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,6)) { + clobbered_stk_tmp_mask,clobbered_reg_mask=*_clobbered_reg_mask; + CHashFun *tmpf; + code=tmpi->ic_code; + if (tmpi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,6)) { "%2d:",stk_ptr; - ICPut(cc,tempi); + ICPut(cc,tmpi); } if (code==IC_CALL_START) { if (reg_stk_size==1 && stk_ptr>0) - clobbered_stk_temp_mask=REGG_STK_TEMP; + clobbered_stk_tmp_mask=REGG_STK_TMP; else - clobbered_stk_temp_mask=0; - if (tempf=tempi->ic_data) { - if (Bt(&tempf->flags,Ff_INTERNAL)) - clobbered_stk_temp_mask=0; + clobbered_stk_tmp_mask=0; + if (tmpf=tmpi->ic_data) { + if (Bt(&tmpf->flags,Ff_INTERNAL)) + clobbered_stk_tmp_mask=0; else { - clobbered_stk_temp_mask&=tempf->clobbered_reg_mask; - clobbered_reg_mask|=tempf->clobbered_reg_mask; + clobbered_stk_tmp_mask&=tmpf->clobbered_reg_mask; + clobbered_reg_mask|=tmpf->clobbered_reg_mask; } } - tempi->ic_data=clobbered_stk_temp_mask; + tmpi->ic_data=clobbered_stk_tmp_mask; PrsPush(ps,stk_ptr); - PrsPush(ps,clobbered_stk_temp_mask); + PrsPush(ps,clobbered_stk_tmp_mask); } else if (code==IC_CALL_END) { - tempi->ic_data=PrsPop(ps); + tmpi->ic_data=PrsPop(ps); stk_ptr=PrsPop(ps); } else if (code==IC_CALL_END2) { ps->ptr--; stk_ptr=PrsPop(ps); } if (intermediate_code_table[code].arg_cnt==IS_V_ARG) - stk_ptr-=tempi->ic_data>>3; - if (tempi->a2.type&MDF_STK) { + stk_ptr-=tmpi->ic_data>>3; + if (tmpi->a2.type&MDF_STK) { stk_ptr--; if (stk_ptra2.type=MDF_REG+tempi->a2.type.raw_type; - tempi->a2.reg=Bsf(REGG_STK_TEMP); - tempi->a2.disp=0; + tmpi->a2.type=MDF_REG+tmpi->a2.type.raw_type; + tmpi->a2.reg=Bsf(REGG_STK_TMP); + tmpi->a2.disp=0; } } - if (tempi->a1.type&MDF_STK) { + if (tmpi->a1.type&MDF_STK) { stk_ptr--; if (stk_ptra1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.reg=Bsf(REGG_STK_TEMP); - tempi->a1.disp=0; + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.reg=Bsf(REGG_STK_TMP); + tmpi->a1.disp=0; } } - if (tempi->r.type&MDF_STK && !(tempi->ic_flags & ICF_PUSH_RES)) { + if (tmpi->r.type&MDF_STK && !(tmpi->ic_flags & ICF_PUSH_RES)) { stk_ptr++; if (stk_ptr<=reg_stk_size) { - tempi->r.type=MDF_REG+tempi->r.type.raw_type; - tempi->r.reg=Bsf(REGG_STK_TEMP); - clobbered_reg_mask|=REGG_STK_TEMP; - tempi->r.disp=0; + tmpi->r.type=MDF_REG+tmpi->r.type.raw_type; + tmpi->r.reg=Bsf(REGG_STK_TMP); + clobbered_reg_mask|=REGG_STK_TMP; + tmpi->r.disp=0; } } - while (OptIC6(tempi)); - if (tempi->r.type.raw_type!=RT_F64 && !(tempi->ic_flags&ICF_USE_F64)) - tempi->ic_flags|=ICF_USE_INT; + while (OptIC6(tmpi)); + if (tmpi->r.type.raw_type!=RT_F64 && !(tmpi->ic_flags&ICF_USE_F64)) + tmpi->ic_flags|=ICF_USE_INT; *_stk_ptr=stk_ptr; *_clobbered_reg_mask=clobbered_reg_mask; } U0 OptPass6(CCmpCtrl *cc) { - CIntermediateCode *tempi,*tempi_next,*tempil1,*tempil2,*old_tempil2; + CIntermediateCode *tmpi,*tmpi_next,*tmpil1,*tmpil2,*old_tmpil2; I64 stk_ptr=0,reg_stk_size,clobbered_reg_mask=REGG_CLOBBERED; CPrsStk *ps=cc->ps; ps->ptr=0; @@ -104,75 +104,75 @@ U0 OptPass6(CCmpCtrl *cc) reg_stk_size=0; else reg_stk_size=1; -#assert REGG_STK_TEMP==1<<9 - tempi=cc->coc.coc_head.next; - old_tempil2=NULL; - tempil1=tempil2=&cmp.ic_nop; - while (tempi->ic_code) { - if (tempi->ic_code>IC_NOP2) { - if (tempil1->ic_code>IC_NOP2) - tempil2=tempil1; - tempil1=tempi; - if (tempi->a2.type&MDF_STK) { - if (tempil2->r.type&MDF_STK && - !(tempil2->ic_flags&ICF_PUSH_RES)) { - if (tempi->ic_code==IC_ASSIGN && tempi->ic_flags&ICF_BY_VAL && - tempi->ic_flags&ICF_RES_NOT_USED && - tempil2->ic_code!=IC_CALL_END && - tempil2->ic_code!=IC_CALL_END2 && - tempil2->ic_code!=IC_SET_RAX && - !(tempi->ic_flags&(ICF_A2_TO_F64|ICF_A2_TO_INT)) && - !(tempil2->ic_flags&(ICF_R_TO_F64|ICF_R_TO_INT))) { - tempil2->r.type =tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to; - tempil2->r.reg =tempi->a1.reg; - tempil2->r.disp =tempi->a1.disp; - tempil2->ic_flags=tempil2->ic_flags +#assert REGG_STK_TMP==1<<9 + tmpi=cc->coc.coc_head.next; + old_tmpil2=NULL; + tmpil1=tmpil2=&cmp.ic_nop; + while (tmpi->ic_code) { + if (tmpi->ic_code>IC_NOP2) { + if (tmpil1->ic_code>IC_NOP2) + tmpil2=tmpil1; + tmpil1=tmpi; + if (tmpi->a2.type&MDF_STK) { + if (tmpil2->r.type&MDF_STK && + !(tmpil2->ic_flags&ICF_PUSH_RES)) { + if (tmpi->ic_code==IC_ASSIGN && tmpi->ic_flags&ICF_BY_VAL && + tmpi->ic_flags&ICF_RES_NOT_USED && + tmpil2->ic_code!=IC_CALL_END && + tmpil2->ic_code!=IC_CALL_END2 && + tmpil2->ic_code!=IC_SET_RAX && + !(tmpi->ic_flags&(ICF_A2_TO_F64|ICF_A2_TO_INT)) && + !(tmpil2->ic_flags&(ICF_R_TO_F64|ICF_R_TO_INT))) { + tmpil2->r.type =tmpi->a1.type&MDG_MASK+tmpi->a1_type_pointed_to; + tmpil2->r.reg =tmpi->a1.reg; + tmpil2->r.disp =tmpi->a1.disp; + tmpil2->ic_flags=tmpil2->ic_flags &~(ICF_RES_NOT_USED|ICF_R_WAS_STK) - |tempi->ic_flags&~(ICF_BY_VAL|ICF_A1_WAS_STK|ICF_A2_WAS_STK); - old_tempil2=NULL; - OptSetNOP1(tempi); + |tmpi->ic_flags&~(ICF_BY_VAL|ICF_A1_WAS_STK|ICF_A2_WAS_STK); + old_tmpil2=NULL; + OptSetNOP1(tmpi); } else { - tempi->a2.type=MDF_REG+tempi->a2.type.raw_type; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - tempil2->r.type=MDF_REG+tempil2->r.type.raw_type; - tempil2->r.reg=REG_RAX; - tempil2->r.disp=0; + tmpi->a2.type=MDF_REG+tmpi->a2.type.raw_type; + tmpi->a2.reg=REG_RAX; + tmpi->a2.disp=0; + tmpil2->r.type=MDF_REG+tmpil2->r.type.raw_type; + tmpil2->r.reg=REG_RAX; + tmpil2->r.disp=0; } } - } else if (tempi->a1.type&MDF_STK && tempil2->r.type&MDF_STK && - !(tempil2->ic_flags&ICF_PUSH_RES)) { - tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; - tempi->a1.disp=0; - tempil2->r.type=MDF_REG+tempil2->r.type.raw_type; - tempil2->r.disp=0; - if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG) { - tempi->a1.reg=REG_R8; - tempil2->r.reg=REG_R8; + } else if (tmpi->a1.type&MDF_STK && tmpil2->r.type&MDF_STK && + !(tmpil2->ic_flags&ICF_PUSH_RES)) { + tmpi->a1.type=MDF_REG+tmpi->a1.type.raw_type; + tmpi->a1.disp=0; + tmpil2->r.type=MDF_REG+tmpil2->r.type.raw_type; + tmpil2->r.disp=0; + if (intermediate_code_table[tmpi->ic_code].arg_cnt==IS_2_ARG) { + tmpi->a1.reg=REG_R8; + tmpil2->r.reg=REG_R8; } else { - tempi->a1.reg=REG_RAX; - tempil2->r.reg=REG_RAX; + tmpi->a1.reg=REG_RAX; + tmpil2->r.reg=REG_RAX; } } - if (tempi->ic_flags & ICF_PUSH_RES) - tempi->r.type==MDF_STK+tempi->r.type.raw_type; - if (old_tempil2!=tempil2) { - if (tempil2->ic_code>IC_NOP2) - OptPass6Lag(cc,ps,tempil2,&stk_ptr,reg_stk_size,&clobbered_reg_mask); - old_tempil2=tempil2; + if (tmpi->ic_flags & ICF_PUSH_RES) + tmpi->r.type==MDF_STK+tmpi->r.type.raw_type; + if (old_tmpil2!=tmpil2) { + if (tmpil2->ic_code>IC_NOP2) + OptPass6Lag(cc,ps,tmpil2,&stk_ptr,reg_stk_size,&clobbered_reg_mask); + old_tmpil2=tmpil2; } } - tempi_next=tempi->next; - if (tempi->ic_code<=IC_NOP2) - OptFree(tempi); - tempi=tempi_next; + tmpi_next=tmpi->next; + if (tmpi->ic_code<=IC_NOP2) + OptFree(tmpi); + tmpi=tmpi_next; } if (ps->ptr>2) { "Pass:%d Stk:%08X\n",cc->pass,ps->ptr; LexExcept(cc,"Compiler Optimization Error at "); } if (cc->htc.fun) { - cc->htc.fun->used_reg_mask&=~REGG_STK_TEMP; + cc->htc.fun->used_reg_mask&=~REGG_STK_TMP; cc->htc.fun->used_reg_mask|=clobbered_reg_mask; cc->htc.fun->clobbered_reg_mask=clobbered_reg_mask; if (Bt(&cc->flags,CCf_PASS_TRACE_PRESENT) && diff --git a/Compiler/OptPass789A.HC b/Compiler/OptPass789A.HC index 3491d62..e341c5a 100644 --- a/Compiler/OptPass789A.HC +++ b/Compiler/OptPass789A.HC @@ -6,22 +6,22 @@ cc->pass==9 is fourth time and repeated until size stops shrinking size is now known cc->pass==10 is final pass, code is placed into buf. */ - CIntermediateCode *tempi,*tempi_next; + CIntermediateCode *tmpi,*tmpi_next; I64 i,cnt,num_lines=cc->max_line+1-cc->min_line,ip=0,ip2; U8 *ptr,saved_a1_a2_r[3*sizeof(CICArg)]; CCodeMisc *lb; - CAOT *tempaot; - CAOTAbsAddr *tempa; - CAOTImportExport *tempie; - CAOTHeapGlbl *temphg; - CAOTHeapGlblRef *temphgr; + CAOT *tmpaot; + CAOTAbsAddr *tmpa; + CAOTImportExport *tmpie; + CAOTHeapGlbl *tmphg; + CAOTHeapGlblRef *tmphgr; CDbgInfo *dbg_info; CAOTCtrl *aotc=cc->aotc; Bool short_jmp; - CHashClass *tempc; - CHashFun *tempf; - CHashGlblVar *tempg; - CExternUsage *tempeu; + CHashClass *tmpc; + CHashFun *tmpf; + CHashGlblVar *tmpg; + CExternUsage *tmpeu; if (_dbg) { *_dbg=dbg_info=CAlloc(offset(CDbgInfo.body)+sizeof(U32)*(num_lines+1)); @@ -40,997 +40,997 @@ cc->pass==10 is final pass, code is placed into buf. "$$FG$$$$IV,0$$$$BK,0$$"; cc->last_float_op_ic=NULL; - tempi=&cc->coc.coc_head; - tempi->ic_last_start=-1; - tempi->ic_cnt=0; - tempi=tempi->next; - while (tempi->ic_code) { - tempi_next=tempi->next; - if (tempi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,cc->pass)) - ICPut(cc,tempi); + tmpi=&cc->coc.coc_head; + tmpi->ic_last_start=-1; + tmpi->ic_cnt=0; + tmpi=tmpi->next; + while (tmpi->ic_code) { + tmpi_next=tmpi->next; + if (tmpi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,cc->pass)) + ICPut(cc,tmpi); ip2=ip; if (cc->flags&CCF_AOT_COMPILE) ip2+=aotc->ip; else ip2+=buf; cc->cur_ic_float_op_num=0; - if (!(tempi->ic_flags &ICF_CODE_FINAL)) { - tempi->ic_flags=tempi->ic_flags& + if (!(tmpi->ic_flags &ICF_CODE_FINAL)) { + tmpi->ic_flags=tmpi->ic_flags& ~(ICF_PREV_DELETED|ICF_DONT_RESTORE)|ICF_CODE_FINAL; if (cc->pass==7) - cc->dont_push_float=Btr(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); - MemCpy(saved_a1_a2_r,&tempi->a1,3*sizeof(CICArg)); - tempi->ic_cnt=0; - tempi->ic_last_start=-1; - if (tempi->a2.type.mode) { - if (tempi->ic_flags & ICF_A2_TO_F64) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,FALSE,CN_A2,ip2); - tempi->a2.type=MDF_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - } else if (tempi->ic_flags & ICF_A2_TO_INT) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,TRUE,CN_A2,ip2); - tempi->a2.type=MDF_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; + cc->dont_push_float=Btr(&tmpi->ic_flags,ICf_DONT_PUSH_FLOAT0); + MemCpy(saved_a1_a2_r,&tmpi->a1,3*sizeof(CICArg)); + tmpi->ic_cnt=0; + tmpi->ic_last_start=-1; + if (tmpi->a2.type.mode) { + if (tmpi->ic_flags & ICF_A2_TO_F64) { + ICFCvt(cc,tmpi,REG_RAX, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,FALSE,CN_A2,ip2); + tmpi->a2.type=MDF_REG+RT_I64; + tmpi->a2.reg=REG_RAX; + tmpi->a2.disp=0; + } else if (tmpi->ic_flags & ICF_A2_TO_INT) { + ICFCvt(cc,tmpi,REG_RAX, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,TRUE,CN_A2,ip2); + tmpi->a2.type=MDF_REG+RT_I64; + tmpi->a2.reg=REG_RAX; + tmpi->a2.disp=0; } } - if (tempi->a1.type.mode) { - if (tempi->ic_flags & ICF_A1_TO_F64) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,FALSE,CN_A1,ip2); - tempi->a1.type=MDF_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - } else if (tempi->ic_flags & ICF_A1_TO_INT) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,TRUE,CN_A1,ip2); - tempi->a1.type=MDF_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; + if (tmpi->a1.type.mode) { + if (tmpi->ic_flags & ICF_A1_TO_F64) { + ICFCvt(cc,tmpi,REG_RDX, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,FALSE,CN_A1,ip2); + tmpi->a1.type=MDF_REG+RT_I64; + tmpi->a1.reg=REG_RDX; + tmpi->a1.disp=0; + } else if (tmpi->ic_flags & ICF_A1_TO_INT) { + ICFCvt(cc,tmpi,REG_RDX, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,TRUE,CN_A1,ip2); + tmpi->a1.type=MDF_REG+RT_I64; + tmpi->a1.reg=REG_RDX; + tmpi->a1.disp=0; } } - switch [tempi->ic_code] { + switch [tmpi->ic_code] { start: start: case IC_ABS_ADDR: - ICU16(tempi,0xB848); - ICU64(tempi,tempi->ic_data); + ICU16(tmpi,0xB848); + ICU64(tmpi,tmpi->ic_data); if (buf && cc->flags&CCF_AOT_COMPILE && !(cc->flags&(CCF_NO_ABSS|CCF_ASM_EXPRESSIONS))) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - tempa->type=AAT_ADD_U64; - aotc->abss=tempa; - tempa->ip=ip2+tempi->ic_cnt-8; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + tmpa->type=AAT_ADD_U64; + aotc->abss=tmpa; + tmpa->ip=ip2+tmpi->ic_cnt-8; } break; case IC_HEAP_GLBL: - ICU16(tempi,0xB848); - ICU64(tempi,0); - temphg=tempi->ic_data; + ICU16(tmpi,0xB848); + ICU64(tmpi,0); + tmphg=tmpi->ic_data; if (buf && cc->flags&CCF_AOT_COMPILE && //TODO:is this necessary--flags? !(cc->flags&(CCF_NO_ABSS|CCF_ASM_EXPRESSIONS))) { - temphgr=CAlloc(sizeof(CAOTHeapGlblRef)); - temphgr->next=temphg->references; - temphg->references=temphgr; - temphgr->ip=ip2+tempi->ic_cnt-8; + tmphgr=CAlloc(sizeof(CAOTHeapGlblRef)); + tmphgr->next=tmphg->references; + tmphg->references=tmphgr; + tmphgr->ip=ip2+tmpi->ic_cnt-8; } break; case IC_ADDR_IMPORT: - ICU8(tempi,0xB8); - ICU32(tempi,0); + ICU8(tmpi,0xB8); + ICU32(tmpi,0); if (buf && !(cc->flags&CCF_NO_ABSS)) { - tempg=tempi->ic_data; - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_IMM_U32; - tempie->ip=ip2+tempi->ic_cnt-4; - tempie->next=tempg->ie_lst; - tempg->ie_lst=tempie; + tmpg=tmpi->ic_data; + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_IMM_U32; + tmpie->ip=ip2+tmpi->ic_cnt-4; + tmpie->next=tmpg->ie_lst; + tmpg->ie_lst=tmpie; } - ICU24(tempi,0xC06348); + ICU24(tmpi,0xC06348); break; case IC_RIP: - ICU16(tempi,0xB848); - ICU64(tempi,ip2+tempi->ic_cnt-2); + ICU16(tmpi,0xB848); + ICU64(tmpi,ip2+tmpi->ic_cnt-2); if (cc->flags&CCF_AOT_COMPILE && buf &&!(cc->flags&CCF_NO_ABSS)) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - tempa->type=AAT_ADD_U64; - aotc->abss=tempa; - tempa->ip=ip2+tempi->ic_cnt-8; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + tmpa->type=AAT_ADD_U64; + aotc->abss=tmpa; + tmpa->ip=ip2+tmpi->ic_cnt-8; } break; end: - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_BR_CARRY: - ICFlagBranch(tempi,ip,0x72820F,buf); + ICFlagBranch(tmpi,ip,0x72820F,buf); break; case IC_BR_NOT_CARRY: - ICFlagBranch(tempi,ip,0x73830F,buf); + ICFlagBranch(tmpi,ip,0x73830F,buf); break; case IC_BR_ZERO: - ICTestAndBranch(tempi,ip,0x74840F,buf,ip2); + ICTestAndBranch(tmpi,ip,0x74840F,buf,ip2); break; case IC_BR_NOT_ZERO: - ICTestAndBranch(tempi,ip,0x75850F,buf,ip2); + ICTestAndBranch(tmpi,ip,0x75850F,buf,ip2); break; case IC_BR_MM_ZERO: - ICPreIncDec(tempi,SLASH_OP_DEC,ip2); - ICFlagBranch(tempi,ip,0x74840F,buf); + ICPreIncDec(tmpi,SLASH_OP_DEC,ip2); + ICFlagBranch(tmpi,ip,0x74840F,buf); break; case IC_BR_MM_NOT_ZERO: - ICPreIncDec(tempi,SLASH_OP_DEC,ip2); - ICFlagBranch(tempi,ip,0x75850F,buf); + ICPreIncDec(tmpi,SLASH_OP_DEC,ip2); + ICFlagBranch(tmpi,ip,0x75850F,buf); break; case IC_BR_EQU_EQU: - ICCmpAndBranch(tempi,FALSE,ip,0x74840F,0x74840F, + ICCmpAndBranch(tmpi,FALSE,ip,0x74840F,0x74840F, 0x74840F,0x74840F,buf,ip2); break; case IC_BR_EQU_EQU2: - ICCmpAndBranch(tempi,TRUE,ip,0x74840F,0x74840F, + ICCmpAndBranch(tmpi,TRUE,ip,0x74840F,0x74840F, 0x74840F,0x74840F,buf,ip2); break; case IC_BR_NOT_EQU: - ICCmpAndBranch(tempi,FALSE,ip,0x75850F,0x75850F, + ICCmpAndBranch(tmpi,FALSE,ip,0x75850F,0x75850F, 0x75850F,0x75850F,buf,ip2); break; case IC_BR_NOT_EQU2: - ICCmpAndBranch(tempi,TRUE,ip,0x75850F,0x75850F, + ICCmpAndBranch(tmpi,TRUE,ip,0x75850F,0x75850F, 0x75850F,0x75850F,buf,ip2); break; case IC_BR_LESS: - if (tempi->ic_flags&ICF_USE_F64) - ICFCmpAndBranch(cc,tempi, ip,0x72820F,0x77870F,buf,ip2); + if (tmpi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(cc,tmpi, ip,0x72820F,0x77870F,buf,ip2); else - ICCmpAndBranch(tempi,FALSE,ip,0x72820F,0x7C8C0F, + ICCmpAndBranch(tmpi,FALSE,ip,0x72820F,0x7C8C0F, 0x77870F,0x7F8F0F,buf,ip2); break; case IC_BR_LESS2: - ICCmpAndBranch(tempi,TRUE,ip,0x72820F,0x7C8C0F, + ICCmpAndBranch(tmpi,TRUE,ip,0x72820F,0x7C8C0F, 0x77870F,0x7F8F0F,buf,ip2); break; case IC_BR_GREATER_EQU: - if (tempi->ic_flags&ICF_USE_F64) - ICFCmpAndBranch(cc,tempi, ip,0x73830F,0x76860F,buf,ip2); + if (tmpi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(cc,tmpi, ip,0x73830F,0x76860F,buf,ip2); else - ICCmpAndBranch(tempi,FALSE,ip,0x73830F,0x7D8D0F, + ICCmpAndBranch(tmpi,FALSE,ip,0x73830F,0x7D8D0F, 0x76860F,0x7E8E0F,buf,ip2); break; case IC_BR_GREATER_EQU2: - ICCmpAndBranch(tempi,TRUE,ip,0x73830F,0x7D8D0F, + ICCmpAndBranch(tmpi,TRUE,ip,0x73830F,0x7D8D0F, 0x76860F,0x7E8E0F,buf,ip2); break; case IC_BR_GREATER: - if (tempi->ic_flags&ICF_USE_F64) - ICFCmpAndBranch(cc,tempi, ip,0x77870F,0x72820F,buf,ip2); + if (tmpi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(cc,tmpi, ip,0x77870F,0x72820F,buf,ip2); else - ICCmpAndBranch(tempi,FALSE,ip,0x77870F,0x7F8F0F, + ICCmpAndBranch(tmpi,FALSE,ip,0x77870F,0x7F8F0F, 0x72820F,0x7C8C0F,buf,ip2); break; case IC_BR_GREATER2: - ICCmpAndBranch(tempi,TRUE,ip,0x77870F,0x7F8F0F, + ICCmpAndBranch(tmpi,TRUE,ip,0x77870F,0x7F8F0F, 0x72820F,0x7C8C0F,buf,ip2); break; case IC_BR_LESS_EQU: - if (tempi->ic_flags&ICF_USE_F64) - ICFCmpAndBranch(cc,tempi, ip,0x76860F,0x73830F,buf,ip2); + if (tmpi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(cc,tmpi, ip,0x76860F,0x73830F,buf,ip2); else - ICCmpAndBranch(tempi,FALSE,ip,0x76860F,0x7E8E0F, + ICCmpAndBranch(tmpi,FALSE,ip,0x76860F,0x7E8E0F, 0x73830F,0x7D8D0F,buf,ip2); break; case IC_BR_LESS_EQU2: - ICCmpAndBranch(tempi,TRUE,ip,0x76860F,0x7E8E0F, + ICCmpAndBranch(tmpi,TRUE,ip,0x76860F,0x7E8E0F, 0x73830F,0x7D8D0F,buf,ip2); break; case IC_BR_BT: - ICBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x72820F,buf,ip2); + ICBrBitOps(tmpi,ip,0xA30F,0x20BA0F,0x72820F,buf,ip2); break; case IC_BR_BTS: - ICBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x72820F,buf,ip2); + ICBrBitOps(tmpi,ip,0xAB0F,0x28BA0F,0x72820F,buf,ip2); break; case IC_BR_BTR: - ICBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x72820F,buf,ip2); + ICBrBitOps(tmpi,ip,0xB30F,0x30BA0F,0x72820F,buf,ip2); break; case IC_BR_BTC: - ICBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x72820F,buf,ip2); + ICBrBitOps(tmpi,ip,0xBB0F,0x38BA0F,0x72820F,buf,ip2); break; case IC_BR_NOT_BT: - ICBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x73830F,buf,ip2); + ICBrBitOps(tmpi,ip,0xA30F,0x20BA0F,0x73830F,buf,ip2); break; case IC_BR_NOT_BTS: - ICBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x73830F,buf,ip2); + ICBrBitOps(tmpi,ip,0xAB0F,0x28BA0F,0x73830F,buf,ip2); break; case IC_BR_NOT_BTR: - ICBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x73830F,buf,ip2); + ICBrBitOps(tmpi,ip,0xB30F,0x30BA0F,0x73830F,buf,ip2); break; case IC_BR_NOT_BTC: - ICBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x73830F,buf,ip2); + ICBrBitOps(tmpi,ip,0xBB0F,0x38BA0F,0x73830F,buf,ip2); break; case IC_BR_AND_ZERO: - ICAndBranch(tempi,ip,0x74840F,buf,ip2); + ICAndBranch(tmpi,ip,0x74840F,buf,ip2); break; case IC_BR_AND_NOT_ZERO: - ICAndBranch(tempi,ip,0x75850F,buf,ip2); + ICAndBranch(tmpi,ip,0x75850F,buf,ip2); break; case IC_SUB_CALL: - lb=OptLabelFwd(tempi->ic_data); - ICU8(tempi,0xE8); - ICU32(tempi,lb->addr-(ip+5)); + lb=OptLabelFwd(tmpi->ic_data); + ICU8(tmpi,0xE8); + ICU32(tmpi,lb->addr-(ip+5)); break; case IC_JMP: - lb=OptLabelFwd(tempi->ic_data); - short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + lb=OptLabelFwd(tmpi->ic_data); + short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); if (!buf && lb->addr!=INVALID_PTR && MIN_I8+5addr-ipic_flags|=ICF_SHORT_JMP; + tmpi->ic_flags|=ICF_SHORT_JMP; i=lb->addr-(ip+2); if (buf || i) - ICU16(tempi,i<<8+0xEB); + ICU16(tmpi,i<<8+0xEB); else - tempi->ic_code=IC_NOP1; + tmpi->ic_code=IC_NOP1; } else { i=lb->addr-(ip+5); - ICU8(tempi,0xE9); - ICU32(tempi,i); + ICU8(tmpi,0xE9); + ICU32(tmpi,i); } break; case IC_LABEL: - lb=tempi->ic_data; + lb=tmpi->ic_data; lb->addr=ip; if (lb->flags&CMF_POP_CMP) { - ICAddRSP(tempi,-8,FALSE); - ICAddRSP(tempi,8,FALSE); + ICAddRSP(tmpi,-8,FALSE); + ICAddRSP(tmpi,8,FALSE); } if (lb->type==CMT_ASM_LABEL) lb->addr+=lb->ip; break; case IC_STR_CONST: case IC_GET_LABEL: - lb=tempi->ic_data; + lb=tmpi->ic_data; if (cc->flags&CCF_AOT_COMPILE) i=lb->addr+aotc->ip; else i=lb->addr+buf; - ICLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICLea(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_RIP_DISP32+RT_PTR,0,i,cc,buf,ip2); break; case IC_ASM: - tempaot=tempi->ic_data; - tempi->ic_cnt+=tempaot->aot_U8s; + tmpaot=tmpi->ic_data; + tmpi->ic_cnt+=tmpaot->aot_U8s; if (buf) { - MemCpy(buf+ip,tempaot->buf,tempaot->aot_U8s); - Free(tempaot->buf); - tempaot->buf=buf; - tempaot->ip=ip; - tempaot->ip2=ip2; + MemCpy(buf+ip,tmpaot->buf,tmpaot->aot_U8s); + Free(tmpaot->buf); + tmpaot->buf=buf; + tmpaot->ip=ip; + tmpaot->ip2=ip2; if (cc->flags&CCF_AOT_COMPILE) - CmpFixUpAOTAsm(cc,tempaot); + CmpFixUpAOTAsm(cc,tmpaot); else - CmpFixUpJITAsm(cc,tempaot); - cnt=tempi->ic_cnt; + CmpFixUpJITAsm(cc,tmpaot); + cnt=tmpi->ic_cnt; goto op789A_skip_copy; } break; case IC_CALL: - i=tempi->ic_data-(ip2+5); + i=tmpi->ic_data-(ip2+5); if (!(MIN_I32<=i<=MAX_I32) && !(cc->flags&CCF_AOT_COMPILE)) { - ICU16(tempi,0xBB48); - ICU64(tempi,tempi->ic_data); - ICU16(tempi,0xD3FF); + ICU16(tmpi,0xBB48); + ICU64(tmpi,tmpi->ic_data); + ICU16(tmpi,0xD3FF); } else { - ICU8(tempi,0xE8); - ICU32(tempi,i); + ICU8(tmpi,0xE8); + ICU32(tmpi,i); } break; case IC_CALL_EXTERN: //Only for static modules - ICU8(tempi,0xE8); - ICU32(tempi,0); + ICU8(tmpi,0xE8); + ICU32(tmpi,0); if (buf) { - tempf=tempi->ic_data; - tempeu=CAlloc(sizeof(CExternUsage)); - tempeu->next=tempf->ext_lst; - tempf->ext_lst=tempeu; - tempeu->ip=ip2+1; + tmpf=tmpi->ic_data; + tmpeu=CAlloc(sizeof(CExternUsage)); + tmpeu->next=tmpf->ext_lst; + tmpf->ext_lst=tmpeu; + tmpeu->ip=ip2+1; } break; case IC_CALL_INDIRECT2: - ICU16(tempi,0xBB48); - if (cc->flags&CCF_AOT_COMPILE) i=ip2+tempi->ic_cnt; - ICU64(tempi,tempi->ic_data); - ICU16(tempi,0x13FF); + ICU16(tmpi,0xBB48); + if (cc->flags&CCF_AOT_COMPILE) i=ip2+tmpi->ic_cnt; + ICU64(tmpi,tmpi->ic_data); + ICU16(tmpi,0x13FF); if (buf && cc->flags&CCF_AOT_COMPILE&& !(cc->flags&CCF_NO_ABSS)) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - tempa->type=AAT_ADD_U64; - aotc->abss=tempa; - tempa->ip=i; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + tmpa->type=AAT_ADD_U64; + aotc->abss=tmpa; + tmpa->ip=i; } break; case IC_CALL_IMPORT: if (GetOption(OPTf_USE_IMM64)) { - ICU16(tempi,0xBB48); - ICU64(tempi,0); + ICU16(tmpi,0xBB48); + ICU64(tmpi,0); if (buf) { - tempf=tempi->ic_data; - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_IMM_I64; - tempie->ip=ip2+tempi->ic_cnt-8; - tempie->next=tempf->ie_lst; - tempf->ie_lst=tempie; + tmpf=tmpi->ic_data; + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_IMM_I64; + tmpie->ip=ip2+tmpi->ic_cnt-8; + tmpie->next=tmpf->ie_lst; + tmpf->ie_lst=tmpie; } - ICU16(tempi,0xD3FF); + ICU16(tmpi,0xD3FF); } else { - ICU8(tempi,0xE8); - ICU32(tempi,0); + ICU8(tmpi,0xE8); + ICU32(tmpi,0); if (buf) { - tempf=tempi->ic_data; - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_REL_I32; - tempie->ip=ip2+tempi->ic_cnt-4; - tempie->next=tempf->ie_lst; - tempf->ie_lst=tempie; + tmpf=tmpi->ic_data; + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_REL_I32; + tmpie->ip=ip2+tmpi->ic_cnt-4; + tmpie->next=tmpf->ie_lst; + tmpf->ie_lst=tmpie; } } break; end: - tempi->ic_flags&=~ICF_CODE_FINAL; + tmpi->ic_flags&=~ICF_CODE_FINAL; break; case IC_LEAVE: if (cc->htc.fun) { if (Bt(&cc->htc.fun->flags,Ff_INTERRUPT)) - ICPopRegs(tempi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& - (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TEMP)); + ICPopRegs(tmpi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& + (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TMP)); else - ICPopRegs(tempi,cc->htc.fun->used_reg_mask& + ICPopRegs(tmpi,cc->htc.fun->used_reg_mask& (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS)); } - if (tempi->ic_data<=MAX_I16) { - if (tempi->ic_data) - ICU8(tempi,0xC9); //LEAVE + if (tmpi->ic_data<=MAX_I16) { + if (tmpi->ic_data) + ICU8(tmpi,0xC9); //LEAVE else - ICU8(tempi,0x5D); //POP RBP + ICU8(tmpi,0x5D); //POP RBP } else { - ICAddRSP(tempi,tempi->ic_data); - ICU8(tempi,0x5D); //POP RBP + ICAddRSP(tmpi,tmpi->ic_data); + ICU8(tmpi,0x5D); //POP RBP } if (cc->htc.fun && Bt(&cc->htc.fun->flags,Ff_INTERRUPT)) { if (Bt(&cc->htc.fun->flags,Ff_HASERRCODE)) - ICAddRSP(tempi,8); - ICU16(tempi,0xCF48); + ICAddRSP(tmpi,8); + ICU16(tmpi,0xCF48); } else if (cc->htc.fun && cc->htc.fun->arg_cnt && (Bt(&cc->htc.fun->flags,Ff_RET1) || Bt(&cc->htc.fun->flags,Ff_ARGPOP)) && !Bt(&cc->htc.fun->flags,Ff_NOARGPOP)) { - ICU8(tempi,0xC2); - ICU16(tempi,cc->htc.fun->arg_cnt<<3); + ICU8(tmpi,0xC2); + ICU16(tmpi,cc->htc.fun->arg_cnt<<3); } else - ICU8(tempi,0xC3); + ICU8(tmpi,0xC3); break; case IC_RET: - ICU8(tempi,0xC3); + ICU8(tmpi,0xC3); break; case IC_FS: - ICZero(tempi,REG_RAX); - ICU32(tempi,0x8B4864); + ICZero(tmpi,REG_RAX); + ICU32(tmpi,0x8B4864); break; case IC_GS: - ICZero(tempi,REG_RAX); - ICU32(tempi,0x8B4865); + ICZero(tmpi,REG_RAX); + ICU32(tmpi,0x8B4865); break; case IC_MOV_FS: - ICZero(tempi,REG_RAX); - ICU8(tempi,0x64); + ICZero(tmpi,REG_RAX); + ICU8(tmpi,0x64); //It's ugly to use ic_class here - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + MDF_DISP+CmpRawType(tmpi->ic_class),REG_RAX,tmpi->ic_data, ip2); break; case IC_MOV_GS: - ICZero(tempi,REG_RAX); - ICU8(tempi,0x65); + ICZero(tmpi,REG_RAX); + ICU8(tmpi,0x65); //It's ugly to use ic_class here - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + MDF_DISP+CmpRawType(tmpi->ic_class),REG_RAX,tmpi->ic_data, ip2); break; case IC_HOLYC_TYPECAST: - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_COM: - ICUnaries(tempi,SLASH_OP_NOT,ip2); + ICUnaries(tmpi,SLASH_OP_NOT,ip2); break; case IC_NOT: - ICNot(tempi,ip2); + ICNot(tmpi,ip2); break; case IC_UNARY_MINUS: - if (tempi->r.type.raw_type==RT_F64) - ICFUnaryMinus(cc,tempi,buf,ip2); + if (tmpi->r.type.raw_type==RT_F64) + ICFUnaryMinus(cc,tmpi,buf,ip2); else - ICUnaries(tempi,SLASH_OP_NEG,ip2); + ICUnaries(tmpi,SLASH_OP_NEG,ip2); break; case IC_ADDR: case IC_MOV: - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_DEREF: - ICDeref(tempi,ip2); + ICDeref(tmpi,ip2); break; case IC_DEREF_PP: - ICDerefPostIncDec(tempi,SLASH_OP_INC,ip2); + ICDerefPostIncDec(tmpi,SLASH_OP_INC,ip2); break; case IC_DEREF_MM: - ICDerefPostIncDec(tempi,SLASH_OP_DEC,ip2); + ICDerefPostIncDec(tmpi,SLASH_OP_DEC,ip2); break; case IC__PP: - if (tempi->ic_flags&ICF_USE_INT) - ICPostIncDec(tempi,SLASH_OP_INC,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICPostIncDec(tmpi,SLASH_OP_INC,ip2); else - ICFPostIncDec(cc,tempi,CMP_TEMPLATE_INC,ip2); + ICFPostIncDec(cc,tmpi,CMP_TEMPLATE_INC,ip2); break; case IC__MM: - if (tempi->ic_flags&ICF_USE_INT) - ICPostIncDec(tempi,SLASH_OP_DEC,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICPostIncDec(tmpi,SLASH_OP_DEC,ip2); else - ICFPostIncDec(cc,tempi,CMP_TEMPLATE_DEC,ip2); + ICFPostIncDec(cc,tmpi,CMP_TEMPLATE_DEC,ip2); break; case IC_PP_: - if (tempi->ic_flags&ICF_USE_INT) - ICPreIncDec(tempi,SLASH_OP_INC,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICPreIncDec(tmpi,SLASH_OP_INC,ip2); else - ICFPreIncDec(cc,tempi,CMP_TEMPLATE_INC,ip2); + ICFPreIncDec(cc,tmpi,CMP_TEMPLATE_INC,ip2); break; case IC_MM_: - if (tempi->ic_flags&ICF_USE_INT) - ICPreIncDec(tempi,SLASH_OP_DEC,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICPreIncDec(tmpi,SLASH_OP_DEC,ip2); else - ICFPreIncDec(cc,tempi,CMP_TEMPLATE_DEC,ip2); + ICFPreIncDec(cc,tmpi,CMP_TEMPLATE_DEC,ip2); break; case IC_LEA: - ICLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,cc,buf,ip2); + ICLea(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,cc,buf,ip2); break; case IC_POWER: - ICFPow(cc,tempi,buf,ip2); + ICFPow(cc,tmpi,buf,ip2); break; case IC_SHL: - ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + ICShift(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR: - ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + ICShift(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); break; case IC_MUL: - if (tempi->ic_flags&ICF_USE_INT) - ICMul(tempi,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICMul(tmpi,ip2); else - ICFMul(cc,tempi,buf,ip2); + ICFMul(cc,tmpi,buf,ip2); break; case IC_DIV: - if (tempi->ic_flags&ICF_USE_INT) - ICDiv(tempi,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICDiv(tmpi,ip2); else - ICFDiv(cc,tempi,buf,ip2); + ICFDiv(cc,tmpi,buf,ip2); break; case IC_MOD: - if (tempi->ic_flags&ICF_USE_INT) - ICMod(tempi,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICMod(tmpi,ip2); else - ICFMod(cc,tempi,ip2); + ICFMod(cc,tmpi,ip2); break; case IC_AND: - ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x23,ip2); + ICAddEct(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x23,ip2); break; case IC_OR: - ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x0B,ip2); + ICAddEct(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x0B,ip2); break; case IC_XOR: - ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x33,ip2); + ICAddEct(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x33,ip2); break; case IC_ADD: - if (tempi->ic_flags&ICF_USE_INT) - ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x03,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICAddEct(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,0x03,ip2); else - ICFAdd(cc,tempi,buf,ip2); + ICFAdd(cc,tmpi,buf,ip2); break; case IC_SUB: - if (tempi->ic_flags&ICF_USE_INT) - ICSub(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICSub(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); else - ICFSub(cc,tempi,buf,ip2); + ICFSub(cc,tmpi,buf,ip2); break; case IC_EQU_EQU: - ICCmp(tempi,0x75,0x75,ip2); + ICCmp(tmpi,0x75,0x75,ip2); break; case IC_NOT_EQU: - ICCmp(tempi,0x74,0x74,ip2); + ICCmp(tmpi,0x74,0x74,ip2); break; case IC_LESS: - if (tempi->ic_flags&ICF_USE_INT) - ICCmp(tempi,0x73,0x7D,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICCmp(tmpi,0x73,0x7D,ip2); else - ICFCmp(cc,tempi,CMP_TEMPLATE_LESS,ip2); + ICFCmp(cc,tmpi,CMP_TEMPLATE_LESS,ip2); break; case IC_GREATER_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICCmp(tempi,0x72,0x7C,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICCmp(tmpi,0x72,0x7C,ip2); else - ICFCmp(cc,tempi,CMP_TEMPLATE_GREATER_EQU,ip2); + ICFCmp(cc,tmpi,CMP_TEMPLATE_GREATER_EQU,ip2); break; case IC_GREATER: - if (tempi->ic_flags&ICF_USE_INT) - ICCmp(tempi,0x76,0x7E,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICCmp(tmpi,0x76,0x7E,ip2); else - ICFCmp(cc,tempi,CMP_TEMPLATE_GREATER,ip2); + ICFCmp(cc,tmpi,CMP_TEMPLATE_GREATER,ip2); break; case IC_LESS_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICCmp(tempi,0x77,0x7F,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICCmp(tmpi,0x77,0x7F,ip2); else - ICFCmp(cc,tempi,CMP_TEMPLATE_LESS_EQU,ip2); + ICFCmp(cc,tmpi,CMP_TEMPLATE_LESS_EQU,ip2); break; case IC_AND_AND: - ICAndAnd(tempi,ip2); + ICAndAnd(tmpi,ip2); break; case IC_OR_OR: - ICOrOr(tempi,ip2); + ICOrOr(tmpi,ip2); break; case IC_XOR_XOR: - ICXorXor(tempi,ip2); + ICXorXor(tmpi,ip2); break; case IC_ASSIGN: - ICAssign(tempi,ip2); + ICAssign(tmpi,ip2); break; case IC_ASSIGN_PP: - ICAssignPostIncDec(tempi,SLASH_OP_INC,ip2); + ICAssignPostIncDec(tmpi,SLASH_OP_INC,ip2); break; case IC_ASSIGN_MM: - ICAssignPostIncDec(tempi,SLASH_OP_DEC,ip2); + ICAssignPostIncDec(tmpi,SLASH_OP_DEC,ip2); break; case IC_SHL_EQU: - ICShiftEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + ICShiftEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR_EQU: - ICShiftEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + ICShiftEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); break; case IC_MUL_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICMulEqu(tempi,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICMulEqu(tmpi,ip2); else - ICFOpEqu(cc,tempi,SLASH_OP_FMUL,buf,ip2); + ICFOpEqu(cc,tmpi,SLASH_OP_FMUL,buf,ip2); break; case IC_DIV_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICDivEqu(tempi,FALSE,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICDivEqu(tmpi,FALSE,ip2); else - ICFOpEqu(cc,tempi,SLASH_OP_FDIV,buf,ip2); + ICFOpEqu(cc,tmpi,SLASH_OP_FDIV,buf,ip2); break; case IC_MOD_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICDivEqu(tempi,TRUE,ip2); + if (tmpi->ic_flags&ICF_USE_INT) + ICDivEqu(tmpi,TRUE,ip2); else - ICFModEqu(cc,tempi,ip2); + ICFModEqu(cc,tmpi,ip2); break; case IC_AND_EQU: - ICAndEqu(tempi,ip2); + ICAndEqu(tmpi,ip2); break; case IC_OR_EQU: - ICOrEqu(tempi,ip2); + ICOrEqu(tmpi,ip2); break; case IC_XOR_EQU: - ICXorEqu(tempi,ip2); + ICXorEqu(tmpi,ip2); break; case IC_ADD_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + if (tmpi->ic_flags&ICF_USE_INT) + ICAddSubEctEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0x010000000003,ip2); else - ICFOpEqu(cc,tempi,SLASH_OP_FADD,buf,ip2); + ICFOpEqu(cc,tmpi,SLASH_OP_FADD,buf,ip2); break; case IC_SUB_EQU: - if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp, + if (tmpi->ic_flags&ICF_USE_INT) + ICAddSubEctEqu(tmpi,tmpi->a1_type_pointed_to, + tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp, 0x29000000052B,ip2); else - ICFOpEqu(cc,tempi,SLASH_OP_FSUB,buf,ip2); + ICFOpEqu(cc,tmpi,SLASH_OP_FSUB,buf,ip2); break; case IC_SHL_CONST: - ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - MDF_IMM+RT_I64,0,tempi->ic_data, + ICShift(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + MDF_IMM+RT_I64,0,tmpi->ic_data, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR_CONST: - ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - MDF_IMM+RT_I64,0,tempi->ic_data, + ICShift(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp, + MDF_IMM+RT_I64,0,tmpi->ic_data, 0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); break; case IC_ADD_CONST: - ICAddSubEctImm(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,tempi->ic_data, + ICAddSubEctImm(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,tmpi->ic_data, 0x0003,ip2); break; case IC_SUB_CONST: - ICAddSubEctImm(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,tempi->ic_data, + ICAddSubEctImm(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,tmpi->ic_data, 0x052B,ip2); break; case IC_ENTER: - ICU32(tempi,0xEC8B4855); - if (tempi->ic_data) - ICAddRSP(tempi,-tempi->ic_data,FALSE); + ICU32(tmpi,0xEC8B4855); + if (tmpi->ic_data) + ICAddRSP(tmpi,-tmpi->ic_data,FALSE); if (cc->htc.fun) { if (Bt(&cc->htc.fun->flags,Ff_INTERRUPT)) - ICPushRegs(tempi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& - (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TEMP)); + ICPushRegs(tmpi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& + (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TMP)); else { if (sys_var_init_flag && i) - ICLocalVarInit(tempi); - ICPushRegs(tempi,cc->htc.fun->used_reg_mask + ICLocalVarInit(tmpi); + ICPushRegs(tmpi,cc->htc.fun->used_reg_mask &(REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS)); } for (i=0;i0 && reg_offsets[i].offset!=MAX_I64) { - tempc=OptClassFwd(reg_offsets[i].m->member_class); - ICMov(tempi,MDF_REG+RT_I64,i,0,MDF_DISP+tempc->raw_type, + tmpc=OptClassFwd(reg_offsets[i].m->member_class); + ICMov(tmpi,MDF_REG+RT_I64,i,0,MDF_DISP+tmpc->raw_type, REG_RBP,reg_offsets[i].offset,ip2); } } break; case IC_ADD_RSP: - ICAddRSP(tempi,tempi->ic_data); + ICAddRSP(tmpi,tmpi->ic_data); break; case IC_CALL_INDIRECT: - if (MIN_I8<=tempi->ic_data<=MAX_I8) { - ICU24(tempi,0x2454FF); //CALL disp[RSP] - ICU8(tempi,tempi->ic_data); + if (MIN_I8<=tmpi->ic_data<=MAX_I8) { + ICU24(tmpi,0x2454FF); //CALL disp[RSP] + ICU8(tmpi,tmpi->ic_data); } else { - ICU24(tempi,0x2494FF); //CALL disp[RSP] - ICU32(tempi,tempi->ic_data); + ICU24(tmpi,0x2494FF); //CALL disp[RSP] + ICU32(tmpi,tmpi->ic_data); } break; case IC_PUSH: - ICPush(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICPush(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_POP: - ICU8(tempi,0x58); + ICU8(tmpi,0x58); break; case IC_INVLPG: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU24(tempi,0x38010F); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU24(tmpi,0x38010F); break; case IC_CLFLUSH: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU24(tempi,0x38AE0F); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU24(tmpi,0x38AE0F); break; case IC_GET_RFLAGS: - ICU8(tempi,0x9C); - ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip2); + ICU8(tmpi,0x9C); + ICPop(tmpi,MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_CARRY: - ICU24(tempi,0xC0920F); //SETC AL - ICU24(tempi,0x01E083); //AND EAX,1 + ICU24(tmpi,0xC0920F); //SETC AL + ICU24(tmpi,0x01E083); //AND EAX,1 break; case IC_RDTSC: - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_RDTSC,TRUE,FALSE,FALSE,CN_MAIN); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_RDTSC,TRUE,FALSE,FALSE,CN_MAIN); break; case IC_SET_RFLAGS: - ICPush(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU8(tempi,0x9D); + ICPush(tmpi,tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU8(tmpi,0x9D); break; case IC_GET_RBP: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, MDF_REG+RT_I64,REG_RBP,0,ip2); break; case IC_SET_RBP: - ICMov(tempi,MDF_REG+RT_I64,REG_RBP,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RBP,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_GET_RSP: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, MDF_REG+RT_I64,REG_RSP,0,ip2); break; case IC_SET_RSP: - ICMov(tempi,MDF_REG+RT_I64,REG_RSP,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RSP,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_RETURN_VAL: case IC_SET_RAX: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); break; case IC_RETURN_VAL2: case IC_GET_RAX: break; case IC_BT: - ICBitOps(tempi,&tempi->a1,&tempi->a2,tempi->next, + ICBitOps(tmpi,&tmpi->a1,&tmpi->a2,tmpi->next, 0xA30F,0x20BA0F,ip2); break; case IC_BTS: case IC_LBTS: - ICBitOps(tempi,&tempi->a1,&tempi->a2,tempi->next, + ICBitOps(tmpi,&tmpi->a1,&tmpi->a2,tmpi->next, 0xAB0F,0x28BA0F,ip2); break; case IC_BTR: case IC_LBTR: - ICBitOps(tempi,&tempi->a1,&tempi->a2,tempi->next, + ICBitOps(tmpi,&tmpi->a1,&tmpi->a2,tmpi->next, 0xB30F,0x30BA0F,ip2); break; case IC_BTC: case IC_LBTC: - ICBitOps(tempi,&tempi->a1,&tempi->a2,tempi->next, + ICBitOps(tmpi,&tmpi->a1,&tmpi->a2,tmpi->next, 0xBB0F,0x38BA0F,ip2); break; case IC_BSF: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU32(tempi,0xC0BC0F48); - ICU16(tempi,0x0375); - ICU24(tempi,0xD0F748); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU32(tmpi,0xC0BC0F48); + ICU16(tmpi,0x0375); + ICU24(tmpi,0xD0F748); break; case IC_BSR: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU32(tempi,0xC0BD0F48); - ICU16(tempi,0x0375); - ICU24(tempi,0xD0F748); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU32(tmpi,0xC0BD0F48); + ICU16(tmpi,0x0375); + ICU24(tmpi,0xD0F748); break; case IC_SIGN_I64: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_SIGN_I64, + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_SIGN_I64, TRUE,FALSE,FALSE,CN_MAIN); break; case IC_TOUPPER: - ICToUpper(tempi,ip2); + ICToUpper(tmpi,ip2); break; case IC_TO_I64: - ICToI64(cc,tempi,ip2); + ICToI64(cc,tmpi,ip2); break; case IC_TO_F64: - ICToF64(cc,tempi,ip2); + ICToF64(cc,tmpi,ip2); break; case IC_TO_BOOL: - ICToBool(cc,tempi,ip2); + ICToBool(cc,tmpi,ip2); break; case IC_SQR: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_SQR,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_SQR,ip2); break; case IC_ABS: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_ABS,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_ABS,ip2); break; case IC_SQRT: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_SQRT,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_SQRT,ip2); break; case IC_SIN: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_SIN,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_SIN,ip2); break; case IC_COS: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_COS,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_COS,ip2); break; case IC_TAN: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_TAN,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_TAN,ip2); break; case IC_ATAN: - ICFTemplateFun(cc,tempi,CMP_TEMPLATE_ATAN,ip2); + ICFTemplateFun(cc,tmpi,CMP_TEMPLATE_ATAN,ip2); break; case IC_ABS_I64: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU24(tempi,0xC08548); - ICU16(tempi,0x0379); - ICU24(tempi,0xD8F748); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU24(tmpi,0xC08548); + ICU16(tmpi,0x0379); + ICU24(tmpi,0xD8F748); break; case IC_MIN_I64: - ICMinMax(tempi,0x4F,ip2); + ICMinMax(tmpi,0x4F,ip2); break; case IC_MAX_I64: - ICMinMax(tempi,0x4C,ip2); + ICMinMax(tmpi,0x4C,ip2); break; case IC_MIN_U64: - ICMinMax(tempi,0x47,ip2); + ICMinMax(tmpi,0x47,ip2); break; case IC_MAX_U64: - ICMinMax(tempi,0x42,ip2); + ICMinMax(tmpi,0x42,ip2); break; case IC_MOD_U64: - ICModU64(tempi,ip2); + ICModU64(tmpi,ip2); break; case IC_SQR_I64: - ICSqr(tempi,SLASH_OP_IMUL,ip2); + ICSqr(tmpi,SLASH_OP_IMUL,ip2); break; case IC_SQR_U64: - ICSqr(tempi,SLASH_OP_MUL,ip2); + ICSqr(tmpi,SLASH_OP_MUL,ip2); break; case IC_SWAP_U8: case IC_SWAP_U16: case IC_SWAP_U32: case IC_SWAP_I64: - ICSwap(tempi,ip2); + ICSwap(tmpi,ip2); break; case IC_QUE_INIT: - ICQueInit(tempi,ip2); + ICQueInit(tmpi,ip2); break; case IC_QUE_INS: - ICQueIns(tempi,ip2); + ICQueIns(tmpi,ip2); break; case IC_QUE_INS_REV: - ICQueInsRev(tempi,ip2); + ICQueInsRev(tmpi,ip2); break; case IC_QUE_REM: - ICQueRem(tempi,ip2); + ICQueRem(tmpi,ip2); break; case IC_STRLEN: - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICCopyTemplate(cc,tempi,CMP_TEMPLATE_STRLEN,TRUE,FALSE,FALSE,CN_MAIN); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICCopyTemplate(cc,tmpi,CMP_TEMPLATE_STRLEN,TRUE,FALSE,FALSE,CN_MAIN); break; case IC_IN_U32: - if (tempi->a1.type&MDF_IMM) { - ICU16(tempi,0xC033); - if (tempi->a1.disp<=MAX_U8) - ICU16(tempi,0xE5+tempi->a1.disp<<8); + if (tmpi->a1.type&MDF_IMM) { + ICU16(tmpi,0xC033); + if (tmpi->a1.disp<=MAX_U8) + ICU16(tmpi,0xE5+tmpi->a1.disp<<8); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a1.disp<<16); - ICU8(tempi,0xED); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a1.disp<<16); + ICU8(tmpi,0xED); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU16(tempi,0xC033); - ICU8(tempi,0xED); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU16(tmpi,0xC033); + ICU8(tmpi,0xED); } break; case IC_IN_U16: - if (tempi->a1.type&MDF_IMM) { - ICU16(tempi,0xC033); - if (tempi->a1.disp<=MAX_U8) - ICU24(tempi,0xE500+OC_OP_SIZE_PREFIX+tempi->a1.disp<<16); + if (tmpi->a1.type&MDF_IMM) { + ICU16(tmpi,0xC033); + if (tmpi->a1.disp<=MAX_U8) + ICU24(tmpi,0xE500+OC_OP_SIZE_PREFIX+tmpi->a1.disp<<16); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a1.disp<<16); - ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a1.disp<<16); + ICU16(tmpi,0xED00+OC_OP_SIZE_PREFIX); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU16(tempi,0xC033); - ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU16(tmpi,0xC033); + ICU16(tmpi,0xED00+OC_OP_SIZE_PREFIX); } break; case IC_IN_U8: - if (tempi->a1.type&MDF_IMM) { - ICU16(tempi,0xC033); - if (tempi->a1.disp<=MAX_U8) - ICU16(tempi,0xE4+tempi->a1.disp<<8); + if (tmpi->a1.type&MDF_IMM) { + ICU16(tmpi,0xC033); + if (tmpi->a1.disp<=MAX_U8) + ICU16(tmpi,0xE4+tmpi->a1.disp<<8); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a1.disp<<16); - ICU8(tempi,0xEC); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a1.disp<<16); + ICU8(tmpi,0xEC); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU16(tempi,0xC033); - ICU8(tempi,0xEC); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU16(tmpi,0xC033); + ICU8(tmpi,0xEC); } break; case IC_OUT_U32: - if (tempi->a2.type&MDF_IMM) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - if (tempi->a2.disp<=MAX_U8) - ICU16(tempi,0xE7+tempi->a2.disp<<8); + if (tmpi->a2.type&MDF_IMM) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + if (tmpi->a2.disp<=MAX_U8) + ICU16(tmpi,0xE7+tmpi->a2.disp<<8); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a2.disp<<16); - ICU8(tempi,0xEF); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a2.disp<<16); + ICU8(tmpi,0xEF); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU8(tempi,0xEF); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU8(tmpi,0xEF); } break; case IC_OUT_U16: - if (tempi->a2.type&MDF_IMM) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - if (tempi->a2.disp<=MAX_U8) - ICU24(tempi,0xE700+OC_OP_SIZE_PREFIX+tempi->a2.disp<<16); + if (tmpi->a2.type&MDF_IMM) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + if (tmpi->a2.disp<=MAX_U8) + ICU24(tmpi,0xE700+OC_OP_SIZE_PREFIX+tmpi->a2.disp<<16); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a2.disp<<16); - ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a2.disp<<16); + ICU16(tmpi,0xEF00+OC_OP_SIZE_PREFIX); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU16(tmpi,0xEF00+OC_OP_SIZE_PREFIX); } break; case IC_OUT_U8: - if (tempi->a2.type&MDF_IMM) { - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - if (tempi->a2.disp<=MAX_U8) - ICU16(tempi,0xE6+tempi->a2.disp<<8); + if (tmpi->a2.type&MDF_IMM) { + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + if (tmpi->a2.disp<=MAX_U8) + ICU16(tmpi,0xE6+tmpi->a2.disp<<8); else { - ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->a2.disp<<16); - ICU8(tempi,0xEE); + ICU32(tmpi,0xBA00+OC_OP_SIZE_PREFIX+tmpi->a2.disp<<16); + ICU8(tmpi,0xEE); } } else { - ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICU8(tempi,0xEE); + ICMov(tmpi,MDF_REG+RT_I64,REG_RDX,0, + tmpi->a2.type,tmpi->a2.reg,tmpi->a2.disp,ip2); + ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0, + tmpi->a1.type,tmpi->a1.reg,tmpi->a1.disp,ip2); + ICU8(tmpi,0xEE); } break; case IC_NOBOUND_SWITCH: - ICSwitch(tempi,ip,TRUE,cc,buf,ip2); + ICSwitch(tmpi,ip,TRUE,cc,buf,ip2); break; case IC_SWITCH: - ICSwitch(tempi,ip,FALSE,cc,buf,ip2); + ICSwitch(tmpi,ip,FALSE,cc,buf,ip2); break; case IC_NOP1: case IC_NOP2: - OptFree(tempi); + OptFree(tmpi); goto op789A_next; case IC_CALL_START: case IC_PUSH_REGS: - ICPushRegs(tempi,tempi->ic_data); + ICPushRegs(tmpi,tmpi->ic_data); break; case IC_CALL_END: - ICPopRegs(tempi,tempi->ic_data); - if (tempi->r.type.mode) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICPopRegs(tmpi,tmpi->ic_data); + if (tmpi->r.type.mode) + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_POP_REGS: - ICPopRegs(tempi,tempi->ic_data); + ICPopRegs(tmpi,tmpi->ic_data); break; case IC_PUSH_CMP: case IC_CALL_END2: @@ -1039,60 +1039,60 @@ cc->pass==10 is final pass, code is placed into buf. break; default: "Pass:%d Missing IC handler\n",cc->pass; - ICPut(cc,tempi); + ICPut(cc,tmpi); LexExcept(cc,"Compiler Optimization Error at "); } - if (tempi->r.type.mode) { - if (tempi->ic_flags & ICF_R_TO_F64) { - if (tempi->ic_code==IC_PUSH_CMP) { - ICU24(tempi,0x242CDF); //FILD U64 [RSP] - ICU24(tempi,0x241CDD); //FSTP U64 [RSP] + if (tmpi->r.type.mode) { + if (tmpi->ic_flags & ICF_R_TO_F64) { + if (tmpi->ic_code==IC_PUSH_CMP) { + ICU24(tmpi,0x242CDF); //FILD U64 [RSP] + ICU24(tmpi,0x241CDD); //FSTP U64 [RSP] } else { - ICFCvt(cc,tempi,REG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICFCvt(cc,tmpi,REG_RAX,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, FALSE,CN_R,ip2); - if (!Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+ + if (!Bt(&tmpi->ic_flags,ICf_DONT_POP_FLOAT0+ cc->cur_ic_float_op_num-1)) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip2); } - } else if (tempi->ic_flags & ICF_R_TO_INT) { - ICFCvt(cc,tempi,REG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp, + } else if (tmpi->ic_flags & ICF_R_TO_INT) { + ICFCvt(cc,tmpi,REG_RAX,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, TRUE,CN_R,ip2); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + ICMov(tmpi,tmpi->r.type,tmpi->r.reg,tmpi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip2); } } } - cnt=tempi->ic_cnt; - if (tempi->ic_flags&ICF_DEL_PREV_INS) { + cnt=tmpi->ic_cnt; + if (tmpi->ic_flags&ICF_DEL_PREV_INS) { if (cc->pass>8) - cnt=tempi->ic_last_start; - tempi->ic_flags&=~ICF_DEL_PREV_INS; + cnt=tmpi->ic_last_start; + tmpi->ic_flags&=~ICF_DEL_PREV_INS; } if (cnt && buf) - MemCpy(buf+ip,tempi->ic_body,cnt); + MemCpy(buf+ip,tmpi->ic_body,cnt); op789A_skip_copy: - if (dbg_info && cc->min_line<=tempi->ic_line<=cc->max_line) { - i=tempi->ic_line-cc->min_line; + if (dbg_info && cc->min_line<=tmpi->ic_line<=cc->max_line) { + i=tmpi->ic_line-cc->min_line; if (!dbg_info->body[i]) dbg_info->body[i]=ip2; } - if (tempi->ic_flags&ICF_PASS_TRACE && + if (tmpi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,cc->pass) && cnt) { "$$RED$$"; if (buf) Un(buf+ip,cnt,64); else - Un(tempi->ic_body,cnt,64); + Un(tmpi->ic_body,cnt,64); "$$FG$$"; } - if (!(tempi->ic_flags&(ICF_CODE_FINAL|ICF_DONT_RESTORE))) - MemCpy(&tempi->a1,saved_a1_a2_r,3*sizeof(CICArg)); + if (!(tmpi->ic_flags&(ICF_CODE_FINAL|ICF_DONT_RESTORE))) + MemCpy(&tmpi->a1,saved_a1_a2_r,3*sizeof(CICArg)); ip+=cnt; - if (tempi->ic_cnt>=IC_BODY_SIZE && tempi->ic_code!=IC_ASM) + if (tmpi->ic_cnt>=IC_BODY_SIZE && tmpi->ic_code!=IC_ASM) throw('Compiler'); op789A_next: - tempi=tempi_next; + tmpi=tmpi_next; } lb=cc->coc.coc_next_misc; @@ -1121,11 +1121,11 @@ op789A_next: if (buf) for (i=0;irange;i++) { if (cc->flags&CCF_AOT_COMPILE && !(cc->flags&CCF_NO_ABSS)) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - tempa->type=AAT_ADD_U32; - aotc->abss=tempa; - tempa->ip=aotc->ip+lb->addr+i<<2; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + tmpa->type=AAT_ADD_U32; + aotc->abss=tmpa; + tmpa->ip=aotc->ip+lb->addr+i<<2; *ptr(U32 *)++=lb->jmp_table[i]->addr+aotc->ip; } else *ptr(U32 *)++=lb->jmp_table[i]->addr+buf; diff --git a/Compiler/PrsExp.HC b/Compiler/PrsExp.HC index 1f6bf53..99a5732 100644 --- a/Compiler/PrsExp.HC +++ b/Compiler/PrsExp.HC @@ -12,21 +12,21 @@ #define PE_POP_ALL1 11 #define PE_POP_ALL2 12 -CIntermediateCode *PrsAddOp(CCmpCtrl *cc,I64 stk_op,CHashClass *tempc) +CIntermediateCode *PrsAddOp(CCmpCtrl *cc,I64 stk_op,CHashClass *tmpc) { - CIntermediateCode *tempi=cc->coc.coc_head.last; + CIntermediateCode *tmpi=cc->coc.coc_head.last; Bool div_sizeof=FALSE; switch (stk_op.u16[0]) { case IC_ADD: - if (tempc->ptr_stars_cnt && !tempi->ic_class->ptr_stars_cnt && - tempi->ic_class->raw_type!=RT_F64) { + if (tmpc->ptr_stars_cnt && !tmpi->ic_class->ptr_stars_cnt && + tmpi->ic_class->raw_type!=RT_F64) { ICAdd(cc,IC_SIZEOF,1,cmp.internal_types[RT_I64]); ICAdd(cc,IC_MUL,0,cmp.internal_types[RT_I64]); } break; case IC_SUB: - if (tempc->ptr_stars_cnt && tempi->ic_class->raw_type!=RT_F64) { - if (!tempi->ic_class->ptr_stars_cnt) { + if (tmpc->ptr_stars_cnt && tmpi->ic_class->raw_type!=RT_F64) { + if (!tmpi->ic_class->ptr_stars_cnt) { ICAdd(cc,IC_SIZEOF,1,cmp.internal_types[RT_I64]); ICAdd(cc,IC_MUL,0,cmp.internal_types[RT_I64]); } else @@ -39,37 +39,37 @@ CIntermediateCode *PrsAddOp(CCmpCtrl *cc,I64 stk_op,CHashClass *tempc) break; case IC_ADD_EQU: case IC_SUB_EQU: - if (tempc->ptr_stars_cnt) { + if (tmpc->ptr_stars_cnt) { ICAdd(cc,IC_SIZEOF,1,cmp.internal_types[RT_I64]); ICAdd(cc,IC_MUL,0,cmp.internal_types[RT_I64]); } break; } - tempi=ICAdd(cc,stk_op,0,tempc); + tmpi=ICAdd(cc,stk_op,0,tmpc); if (stk_op.u8[3]&ECF_HAS_PUSH_CMP) { - tempi->ic_flags|=ICF_POP_CMP; + tmpi->ic_flags|=ICF_POP_CMP; ICAdd(cc,IC_NOP1,0,cmp.internal_types[RT_I64]); ICAdd(cc,IC_AND_AND,0,cmp.internal_types[RT_I64],ICF_POP_CMP); } if (div_sizeof) { - tempc--; - if (tempc->size!=1) { - ICAdd(cc,IC_IMM_I64,tempc->size,cmp.internal_types[RT_I64]); + tmpc--; + if (tmpc->size!=1) { + ICAdd(cc,IC_IMM_I64,tmpc->size,cmp.internal_types[RT_I64]); ICAdd(cc,IC_DIV,0,cmp.internal_types[RT_I64]); - tempc=cmp.internal_types[RT_I64]; + tmpc=cmp.internal_types[RT_I64]; } } - return tempi; + return tmpi; } U0 PrsExpression2(CCmpCtrl *cc,I64 *_max_prec,CPrsStk *ps) { I64 i,cur_op,stk_op,state,max_prec=PREC_NULL,unary_pre_prec,paren_prec, unary_post_prec,left_prec=PREC_MAX; - CIntermediateCode *tempi; - CHashClass *tempc; + CIntermediateCode *tmpi; + CHashClass *tmpc; CMemberLst *local_var; - CArrayDim *tempad=NULL; + CArrayDim *tmpad=NULL; goto pe_unary_term1; while (TRUE) { @@ -81,16 +81,16 @@ pe_unary_term1: cc->flags&=~(CCF_PAREN+CCF_PREINC+CCF_PREDEC+CCF_POSTINC+ CCF_POSTDEC+CCF_FUN_EXP); case PE_UNARY_TERM2: - state=PrsUnaryTerm(cc,ps,&local_var,&tempad, + state=PrsUnaryTerm(cc,ps,&local_var,&tmpad, &max_prec,&unary_pre_prec,&paren_prec); break; case PE_UNARY_MODIFIERS: - state=PrsUnaryModifier(cc,ps,&local_var,&tempad,&unary_post_prec); + state=PrsUnaryModifier(cc,ps,&local_var,&tmpad,&unary_post_prec); break; case PE_MAYBE_MODIFIERS: if (cc->token=='(') { //Typecast or fun_ptr cc->flags|=CCF_RAX; - state=PrsUnaryModifier(cc,ps,&local_var,&tempad,&unary_post_prec); + state=PrsUnaryModifier(cc,ps,&local_var,&tmpad,&unary_post_prec); } else goto pe_check_binary_ops1; break; @@ -108,13 +108,13 @@ pe_unary_term1: i=IC_PP_+PREC_UNARY_PRE<<16; cc->flags&=~(CCF_PREINC|CCF_PREDEC|CCF_POSTINC|CCF_POSTDEC); } - tempi=cc->coc.coc_head.last; + tmpi=cc->coc.coc_head.last; if (cc->flags & (CCF_RAX|CCF_ARRAY)) { - if (tempi->ic_code==IC_DEREF) - tempi->ic_code=i; + if (tmpi->ic_code==IC_DEREF) + tmpi->ic_code=i; } else { - tempc=OptClassFwd(tempi->ic_class-1); - ICAdd(cc,i,0,tempc); + tmpc=OptClassFwd(tmpi->ic_class-1); + ICAdd(cc,i,0,tmpc); } case PE_CHECK_BINARY_OPS1: pe_check_binary_ops1: @@ -131,7 +131,7 @@ pe_check_binary_ops1: case PE_CHECK_BINARY_OPS2: pe_check_binary_ops2: stk_op=PrsPop(ps); - tempc=PrsPop(ps); + tmpc=PrsPop(ps); if (!(0coc.coc_head.last->ic_class); PrsPush(ps,cur_op); goto pe_unary_term1; } else { - tempi=cc->coc.coc_head.last; - tempc=tempi->ic_class; - if (stk_op.u16[0]==IC_DEREF && tempc->ptr_stars_cnt) - tempc--; + tmpi=cc->coc.coc_head.last; + tmpc=tmpi->ic_class; + if (stk_op.u16[0]==IC_DEREF && tmpc->ptr_stars_cnt) + tmpc--; else if (stk_op.u16[0]==IC_ADDR) { cc->abs_cnts.c_addres++; - if (intermediate_code_table[tempi->ic_code].type==IST_DEREF) - OptFree(tempi); - tempc++; + if (intermediate_code_table[tmpi->ic_code].type==IST_DEREF) + OptFree(tmpi); + tmpc++; } - tempc=OptClassFwd(tempc); + tmpc=OptClassFwd(tmpc); if (stk_op) - ICAdd(cc,stk_op,0,tempc); + ICAdd(cc,stk_op,0,tmpc); goto pe_check_binary_ops2; } case PE_DO_BINARY_OP: pe_do_binary_op: - PrsPush(ps,tempc); + PrsPush(ps,tmpc); PrsPush(ps,stk_op); if (!cur_op) goto pe_pop_all1; @@ -172,9 +172,9 @@ pe_do_binary_op: switch (cur_op.u16[0]) { case IC_ADD: case IC_SUB: - tempi=cc->coc.coc_head.last; - if (!tempi->ic_class->ptr_stars_cnt && - tempi->ic_class->raw_type!=RT_F64) { + tmpi=cc->coc.coc_head.last; + if (!tmpi->ic_class->ptr_stars_cnt && + tmpi->ic_class->raw_type!=RT_F64) { ICAdd(cc,IC_SIZEOF,1,cmp.internal_types[RT_I64]); ICAdd(cc,IC_MUL,0,cmp.internal_types[RT_I64]); } @@ -199,19 +199,19 @@ pe_do_binary_op: max_prec=cur_op.u8[2]; left_prec=cur_op.u8[2]; if (intermediate_code_table[cur_op.u16[0]].type==IST_ASSIGN) { - tempi=cc->coc.coc_head.last; - tempc=OptClassFwd(tempi->ic_class); - if (intermediate_code_table[tempi->ic_code].type!=IST_DEREF || - !tempc->ptr_stars_cnt && !Bt(&tempc->flags,Cf_INTERNAL_TYPE)) + tmpi=cc->coc.coc_head.last; + tmpc=OptClassFwd(tmpi->ic_class); + if (intermediate_code_table[tmpi->ic_code].type!=IST_DEREF || + !tmpc->ptr_stars_cnt && !Bt(&tmpc->flags,Cf_INTERNAL_TYPE)) LexExcept(cc,"Invalid lval at "); - tempi->ic_code=IC_NOP1; //Important for setting class (pretty sure) + tmpi->ic_code=IC_NOP1; //Important for setting class (pretty sure) cur_op.u8[2]=PREC_ASSIGN|ASSOCF_RIGHT; } case PE_POP_HIGHER: pe_pop_higher: stk_op=PrsPop(ps); //pop ops of higher prec - tempc=PrsPop(ps); + tmpc=PrsPop(ps); if (!stk_op) goto pe_push_lower; else if (cur_op.u8[2]&~ASSOC_MASK==stk_op.u8[2]&~ASSOC_MASK) { @@ -220,13 +220,13 @@ pe_pop_higher: } else if (cur_op.u8[2]&~ASSOC_MASK<=stk_op.u8[2]&~ASSOC_MASK) goto pe_push_lower; - tempi=PrsAddOp(cc,stk_op,tempc); + tmpi=PrsAddOp(cc,stk_op,tmpc); if (intermediate_code_table[cur_op.u16[0]].type==IST_CMP && intermediate_code_table[stk_op.u16[0]].type==IST_CMP) { - tempi->ic_flags|=ICF_PUSH_CMP; + tmpi->ic_flags|=ICF_PUSH_CMP; ICAdd(cc,IC_NOP1,0,cmp.internal_types[RT_I64]); - ICAdd(cc,IC_PUSH_CMP,0,tempc); + ICAdd(cc,IC_PUSH_CMP,0,tmpc); cur_op.u8[3]|=ECF_HAS_PUSH_CMP; } else if (cur_op.u16[0]==IC_AND_AND || cur_op.u16[0]==IC_OR_OR) ICAdd(cc,IC_NOP1,0,cmp.internal_types[RT_I64]); @@ -234,7 +234,7 @@ pe_pop_higher: case PE_PUSH_LOWER: pe_push_lower: - PrsPush(ps,tempc); + PrsPush(ps,tmpc); PrsPush(ps,stk_op); PrsPush(ps,cc->coc.coc_head.last->ic_class); PrsPush(ps,cur_op); @@ -249,10 +249,10 @@ pe_pop_all1: case PE_POP_ALL2: pe_pop_all2: stk_op=PrsPop(ps); - tempc=PrsPop(ps); + tmpc=PrsPop(ps); if (!stk_op.u16[0]) goto pe_done; - PrsAddOp(cc,stk_op,tempc); + PrsAddOp(cc,stk_op,tmpc); goto pe_pop_all2; } } @@ -297,44 +297,44 @@ Bool PrsExpression(CCmpCtrl *cc,I64 *_max_prec,Bool end_exp,CPrsStk *_ps=NULL) U0 PrsSizeOf(CCmpCtrl *cc) { - CHashClass *tempc; - CMemberLst *tempm; + CHashClass *tmpc; + CMemberLst *tmpm; CDbgInfo *dbg_info; I64 i; if (cc->token!=TK_IDENT) LexExcept(cc,"Invalid class at "); - if (tempm=cc->local_var_entry) { - tempc=tempm->member_class; - i=tempc->size*tempm->dim.total_cnt; + if (tmpm=cc->local_var_entry) { + tmpc=tmpm->member_class; + i=tmpc->size*tmpm->dim.total_cnt; if (Lex(cc)=='.') goto pu_sizeof_member; } else { - if (!(tempc=cc->hash_entry) || !(tempc->type & + if (!(tmpc=cc->hash_entry) || !(tmpc->type & (HTT_CLASS|HTT_INTERNAL_TYPE|HTT_GLBL_VAR| HTT_FUN|HTT_EXPORT_SYS_SYM))) LexExcept(cc,"Invalid class at "); - if (tempc->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) { - if (!(dbg_info=tempc(CHashFun *)->dbg_info)) + if (tmpc->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) { + if (!(dbg_info=tmpc(CHashFun *)->dbg_info)) LexExcept(cc,"Size not defined at "); i=dbg_info->body[dbg_info->max_line+1-dbg_info->min_line] -dbg_info->body[0]; Lex(cc); } else { - i=tempc->size; + i=tmpc->size; while (Lex(cc)=='.') { pu_sizeof_member: - if (!(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) + if (!(tmpc->type & (HTT_CLASS|HTT_GLBL_VAR))) LexExcept(cc,"Invalid class at "); - else if (tempc->type & HTT_GLBL_VAR) - tempc=tempc(CHashGlblVar *)->var_class; - if (Lex(cc)!=TK_IDENT || !(tempm=MemberFind(cc->cur_str,tempc))) + else if (tmpc->type & HTT_GLBL_VAR) + tmpc=tmpc(CHashGlblVar *)->var_class; + if (Lex(cc)!=TK_IDENT || !(tmpm=MemberFind(cc->cur_str,tmpc))) LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; - tempc=tempm->member_class; + tmpc=tmpm->member_class; //Probably others like this: #assert offset(CHashClass.size)==offset(CHashGlblVar.size) - i=tempc->size*tempm->dim.total_cnt; + i=tmpc->size*tmpm->dim.total_cnt; } } } @@ -347,55 +347,55 @@ pu_sizeof_member: U0 PrsOffsetOf(CCmpCtrl *cc) { - CHashClass *tempc; - CMemberLst *tempm; + CHashClass *tmpc; + CMemberLst *tmpm; I64 i; if (cc->token!=TK_IDENT) LexExcept(cc,"Invalid class at "); - if (tempm=cc->local_var_entry) - tempc=tempm->member_class; + if (tmpm=cc->local_var_entry) + tmpc=tmpm->member_class; else { - tempc=cc->hash_entry; - if (!tempc || !(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) + tmpc=cc->hash_entry; + if (!tmpc || !(tmpc->type & (HTT_CLASS|HTT_GLBL_VAR))) LexExcept(cc,"Invalid class at "); - else if (tempc->type & HTT_GLBL_VAR) - tempc=tempc(CHashGlblVar *)->var_class; + else if (tmpc->type & HTT_GLBL_VAR) + tmpc=tmpc(CHashGlblVar *)->var_class; } if (Lex(cc)!='.') LexExcept(cc,"Expecting '.' at "); i=0; do { - if (Lex(cc)!=TK_IDENT || !(tempm=MemberFind(cc->cur_str,tempc))) + if (Lex(cc)!=TK_IDENT || !(tmpm=MemberFind(cc->cur_str,tmpc))) LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; - i+=tempm->offset; - tempc=tempm->member_class; + i+=tmpm->offset; + tmpc=tmpm->member_class; } while (Lex(cc)=='.'); ICAdd(cc,IC_IMM_I64,i,cmp.internal_types[RT_I64]); } -I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) +I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tmpf) { I64 i,argc_cnt,dft_val; Bool is_first_arg=TRUE,needs_right_paren,is_print,is_putchars, is_template_fun; - CHashClass *tempc2,*last_class=NULL; - CMemberLst *tempm; - CCodeCtrl *tempcbh,*tempcbh1; + CHashClass *tmpc2,*last_class=NULL; + CMemberLst *tmpm; + CCodeCtrl *tmpcbh,*tmpcbh1; CCodeMisc *cm; - CIntermediateCode *tempi; + CIntermediateCode *tmpi; - if (!tempf) { + if (!tmpf) { if (cc->token==TK_CHAR_CONST) { - if (!(tempf=HashFind("PutChars",cc->htc.hash_table_lst,HTT_FUN))) + if (!(tmpf=HashFind("PutChars",cc->htc.hash_table_lst,HTT_FUN))) LexExcept(cc,"Missing header for Print() and PutChars() at "); if (!cc->cur_i64) //empty char signals PutChars with variable Lex(cc); is_print=FALSE; is_putchars=TRUE; } else { - if (!(tempf=HashFind("Print",cc->htc.hash_table_lst,HTT_FUN))) + if (!(tmpf=HashFind("Print",cc->htc.hash_table_lst,HTT_FUN))) LexExcept(cc,"Missing header for Print() and PutChars() at "); if (!*cc->cur_str) //empty string signals Print with variable fmt_str Lex(cc); @@ -407,7 +407,7 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) is_putchars=FALSE; } - if (Bt(&tempf->flags,Ff_INTERNAL)&& IC_SQR<=tempf->exe_addr<=IC_ATAN) + if (Bt(&tmpf->flags,Ff_INTERNAL)&& IC_SQR<=tmpf->exe_addr<=IC_ATAN) is_template_fun=TRUE; else is_template_fun=FALSE; @@ -420,10 +420,10 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) ICAdd(cc,IC_NOP2,1,cmp.internal_types[RT_PTR]); //balance the books } COCPush(cc); - tempcbh=cc->coc.coc_next; + tmpcbh=cc->coc.coc_next; cc->coc.coc_next=NULL; - i=tempf->arg_cnt; - tempm=tempf->member_lst_and_root; + i=tmpf->arg_cnt; + tmpm=tmpf->member_lst_and_root; argc_cnt=0; if (cc->token=='(') { Lex(cc); @@ -447,12 +447,12 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) } } } - if (tempm->flags & MLF_DFT_AVAILABLE && + if (tmpm->flags & MLF_DFT_AVAILABLE && (cc->token==')' || cc->token==',' || !needs_right_paren)) { - dft_val=tempm->dft_val; - if (tempm->flags & MLF_LASTCLASS && last_class) + dft_val=tmpm->dft_val; + if (tmpm->flags & MLF_LASTCLASS && last_class) dft_val=(last_class-last_class->ptr_stars_cnt)->str; - if (tempm->flags & (MLF_STR_DFT_AVAILABLE|MLF_LASTCLASS) && + if (tmpm->flags & (MLF_STR_DFT_AVAILABLE|MLF_LASTCLASS) && cc->flags&CCF_AOT_COMPILE) { cm=COCMiscNew(cc,CMT_STR_CONST); ICAdd(cc,IC_STR_CONST,cm,cmp.internal_types[RT_U8]+1); @@ -460,32 +460,32 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) cm->str=StrNew(dft_val); cc->flags|=CCF_HAS_MISC_DATA; } else - ICAdd(cc,IC_IMM_I64,dft_val,tempm->member_class); + ICAdd(cc,IC_IMM_I64,dft_val,tmpm->member_class); } else { if (!PrsExpression(cc,NULL,FALSE,ps)) throw('Compiler'); else { COCPush(cc); cc->pass=0; OptPass012(cc); - cc->pass=1; tempi=OptPass012(cc); + cc->pass=1; tmpi=OptPass012(cc); COCPop(cc); - last_class=OptClassFwd(tempi->ic_class); - tempc2=OptClassFwd(tempm->member_class); - if (tempc2->raw_type==RT_F64 && !tempm->dim.next && + last_class=OptClassFwd(tmpi->ic_class); + tmpc2=OptClassFwd(tmpm->member_class); + if (tmpc2->raw_type==RT_F64 && !tmpm->dim.next && last_class->raw_type!=RT_F64) - tempi->ic_flags|=ICF_R_TO_F64; + tmpi->ic_flags|=ICF_R_TO_F64; else - if (tempc2->raw_type!=RT_F64 && last_class->raw_type==RT_F64) - tempi->ic_flags|=ICF_R_TO_INT; + if (tmpc2->raw_type!=RT_F64 && last_class->raw_type==RT_F64) + tmpi->ic_flags|=ICF_R_TO_INT; } } COCPush(cc); is_first_arg=FALSE; - tempm=tempm->next; + tmpm=tmpm->next; } - if (tempm && tempm->flags & MLF_DOT_DOT_DOT) { + if (tmpm && tmpm->flags & MLF_DOT_DOT_DOT) { COCInit(cc); - tempi=ICAdd(cc,IC_IMM_I64,0,tempm->member_class); + tmpi=ICAdd(cc,IC_IMM_I64,0,tmpm->member_class); COCPush(cc); if (is_print) { if (cc->token!=';') { @@ -522,7 +522,7 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) } while (cc->token==','); } } - tempi->ic_data=argc_cnt++; //++ so add_esp latter works + tmpi->ic_data=argc_cnt++; //++ so add_esp latter works } if (needs_right_paren) { if (cc->token==')') @@ -530,55 +530,55 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) else LexExcept(cc,"Missing ')' at "); } - tempcbh1=tempcbh->coc_next; - tempcbh->coc_next=cc->coc.coc_next; - cc->coc.coc_next=tempcbh; + tmpcbh1=tmpcbh->coc_next; + tmpcbh->coc_next=cc->coc.coc_next; + cc->coc.coc_next=tmpcbh; COCPop(cc); - tempcbh=cc->coc.coc_next; - cc->coc.coc_next=tempcbh1; + tmpcbh=cc->coc.coc_next; + cc->coc.coc_next=tmpcbh1; if (!is_template_fun) - ICAdd(cc,IC_CALL_START,tempf,0); + ICAdd(cc,IC_CALL_START,tmpf,0); if (indirect) - ICAdd(cc,IC_PUSH_REGS,1<return_class); - while (tempcbh) { - tempcbh1=tempcbh->coc_next; - COCAppend(cc,tempcbh); - if (!Bt(&tempf->flags,Ff_INTERNAL)) + ICAdd(cc,IC_PUSH_REGS,1<return_class); + while (tmpcbh) { + tmpcbh1=tmpcbh->coc_next; + COCAppend(cc,tmpcbh); + if (!Bt(&tmpf->flags,Ff_INTERNAL)) cc->coc.coc_head.last->ic_flags|=ICF_PUSH_RES; - tempcbh=tempcbh1; + tmpcbh=tmpcbh1; } - if (Bt(&tempf->flags,Ff_INTERNAL)) - ICAdd(cc,tempf->exe_addr,0,tempf->return_class); + if (Bt(&tmpf->flags,Ff_INTERNAL)) + ICAdd(cc,tmpf->exe_addr,0,tmpf->return_class); else { if (indirect) ICAdd(cc,IC_CALL_INDIRECT, - (argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); - else if (Bt(&tempf->flags,Cf_EXTERN)) { + (argc_cnt+tmpf->arg_cnt)<<3,tmpf->return_class); + else if (Bt(&tmpf->flags,Cf_EXTERN)) { cc->abs_cnts.externs++; if (cc->flags&CCF_AOT_COMPILE) { - if (tempf->type&HTF_IMPORT) - ICAdd(cc,IC_CALL_IMPORT,tempf,tempf->return_class); + if (tmpf->type&HTF_IMPORT) + ICAdd(cc,IC_CALL_IMPORT,tmpf,tmpf->return_class); else - ICAdd(cc,IC_CALL_EXTERN,tempf,tempf->return_class); + ICAdd(cc,IC_CALL_EXTERN,tmpf,tmpf->return_class); } else - ICAdd(cc,IC_CALL_INDIRECT2,&tempf->exe_addr,tempf->return_class); + ICAdd(cc,IC_CALL_INDIRECT2,&tmpf->exe_addr,tmpf->return_class); } else - ICAdd(cc,IC_CALL,tempf->exe_addr,tempf->return_class); - if ((Bt(&tempf->flags,Ff_RET1) || Bt(&tempf->flags,Ff_ARGPOP)) && - !Bt(&tempf->flags,Ff_NOARGPOP)) { + ICAdd(cc,IC_CALL,tmpf->exe_addr,tmpf->return_class); + if ((Bt(&tmpf->flags,Ff_RET1) || Bt(&tmpf->flags,Ff_ARGPOP)) && + !Bt(&tmpf->flags,Ff_NOARGPOP)) { if (indirect) { - ICAdd(cc,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); - ICAdd(cc,IC_ADD_RSP,8,tempf->return_class); + ICAdd(cc,IC_ADD_RSP1,(argc_cnt+tmpf->arg_cnt)<<3,tmpf->return_class); + ICAdd(cc,IC_ADD_RSP,8,tmpf->return_class); } else - ICAdd(cc,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + ICAdd(cc,IC_ADD_RSP1,(argc_cnt+tmpf->arg_cnt)<<3,tmpf->return_class); } else { if (indirect) argc_cnt++; - ICAdd(cc,IC_ADD_RSP,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + ICAdd(cc,IC_ADD_RSP,(argc_cnt+tmpf->arg_cnt)<<3,tmpf->return_class); } } if (!is_template_fun) - ICAdd(cc,IC_CALL_END,tempf,tempf->return_class); + ICAdd(cc,IC_CALL_END,tmpf,tmpf->return_class); if (is_print||is_putchars) ICAdd(cc,IC_END_EXP,0,0,ICF_RES_NOT_USED); cc->flags=(cc->flags|CCF_RAX) & ~(CCF_ARRAY|CCF_FUN_EXP); @@ -586,15 +586,15 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) } I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, - CArrayDim **_tempad,I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec) + CArrayDim **_tmpad,I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec) { I64 i,j; - CHashExport *tempex; - CHashClass *tempc; - CHashFun *tempf; - CHashGlblVar *tempg; - CMemberLst *tempm; - CAsmUndefHash *tempauh; + CHashExport *tmpex; + CHashClass *tmpc; + CHashFun *tmpf; + CHashGlblVar *tmpg; + CMemberLst *tmpm; + CAsmUndefHash *tmpauh; CCodeMisc *cm; Bool paren_warn; @@ -615,14 +615,14 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, break; case '&': if (Lex(cc)==TK_IDENT) { - if (tempc=cc->hash_entry) { - if (tempc->type & HTT_FUN) { - tempf=tempc; - if (!Bt(&tempf->flags,Ff_INTERNAL)) { - if (Bt(&tempf->flags,Cf_EXTERN)) { + if (tmpc=cc->hash_entry) { + if (tmpc->type & HTT_FUN) { + tmpf=tmpc; + if (!Bt(&tmpf->flags,Ff_INTERNAL)) { + if (Bt(&tmpf->flags,Cf_EXTERN)) { if (cc->flags&CCF_AOT_COMPILE) { if (cc->flags&CCF_ASM_EXPRESSIONS) { - if (tempex=HashFind(tempf->str,cc->htc.hash_table_lst, + if (tmpex=HashFind(tmpf->str,cc->htc.hash_table_lst, HTT_EXPORT_SYS_SYM)) goto pu_export_sys_sym; else @@ -632,29 +632,29 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, } cc->abs_cnts.externs++; ICAdd(cc,IC_IMM_I64, - &tempf->exe_addr,cmp.internal_types[RT_PTR]); + &tmpf->exe_addr,cmp.internal_types[RT_PTR]); ICAdd(cc,IC_DEREF,0,cmp.internal_types[RT_PTR]); } else { if (cc->flags&CCF_AOT_COMPILE) { ICAdd(cc,IC_ABS_ADDR, - tempf->exe_addr,cmp.internal_types[RT_PTR]); + tmpf->exe_addr,cmp.internal_types[RT_PTR]); if (cc->flags&CCF_ASM_EXPRESSIONS) cc->abs_cnts.abs_addres++; } else ICAdd(cc,IC_IMM_I64, - tempf->exe_addr,cmp.internal_types[RT_PTR]); + tmpf->exe_addr,cmp.internal_types[RT_PTR]); } cc->abs_cnts.c_addres++; Lex(cc); return PE_MAYBE_MODIFIERS; } - } else if (tempc->type & HTT_EXPORT_SYS_SYM) { - tempex=tempc; + } else if (tmpc->type & HTT_EXPORT_SYS_SYM) { + tmpex=tmpc; if (cc->flags&CCF_ASM_EXPRESSIONS && - !(cc->flags&CCF_AOT_COMPILE) && tempex->type&HTF_IMM) { + !(cc->flags&CCF_AOT_COMPILE) && tmpex->type&HTF_IMM) { cc->abs_cnts.c_addres++; ICAdd(cc,IC_IMM_I64, - tempex->val,cmp.internal_types[RT_PTR]); + tmpex->val,cmp.internal_types[RT_PTR]); Lex(cc); return PE_MAYBE_MODIFIERS; } else @@ -666,7 +666,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, i=IC_ADDR; break; end: - PrsPush(ps,tempc); + PrsPush(ps,tmpc); PrsPush(ps,PREC_UNARY_PRE<<16+i); return PE_UNARY_TERM2; @@ -753,102 +753,102 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, return PE_UNARY_TERM2; case TK_IDENT: - if (tempm=cc->local_var_entry) { + if (tmpm=cc->local_var_entry) { if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; cc->flags&=~(CCF_RAX|CCF_ARRAY|CCF_FUN_EXP); - tempc=tempm->member_class+1; - if (tempm->flags & MLF_FUN && !(cc->flags&CCF_ASM_EXPRESSIONS)) { + tmpc=tmpm->member_class+1; + if (tmpm->flags & MLF_FUN && !(cc->flags&CCF_ASM_EXPRESSIONS)) { PrsPopDeref(ps); cc->flags|=CCF_FUN_EXP; - PrsPush2(ps,tempm->fun_ptr-tempm->fun_ptr->ptr_stars_cnt); + PrsPush2(ps,tmpm->fun_ptr-tmpm->fun_ptr->ptr_stars_cnt); } - if (tempm->dim.next) { - *_tempad=tempm->dim.next; + if (tmpm->dim.next) { + *_tmpad=tmpm->dim.next; cc->flags|=CCF_ARRAY; } - if (tempm->flags&MLF_STATIC) { + if (tmpm->flags&MLF_STATIC) { if (cc->flags&CCF_AOT_COMPILE) { -// if (tempg->flags&GVF_DATA_HEAP) //TODO - // ICAdd(cc,IC_HEAP_GLBL,tempm->static_data,tempc); +// if (tmpg->flags&GVF_DATA_HEAP) //TODO + // ICAdd(cc,IC_HEAP_GLBL,tmpm->static_data,tmpc); // else - ICAdd(cc,IC_ABS_ADDR,tempm->static_data_ip,tempc); + ICAdd(cc,IC_ABS_ADDR,tmpm->static_data_ip,tmpc); } else - ICAdd(cc,IC_IMM_I64,tempm->static_data,tempc); + ICAdd(cc,IC_IMM_I64,tmpm->static_data,tmpc); } else { if (cc->flags&CCF_ASM_EXPRESSIONS) { i=PrsPop(ps); ps->ptr--; if (i.u16[0]!=IC_ADDR) LexExcept(cc,"Expecting '&' at "); - ICAdd(cc,IC_IMM_I64,tempm->offset,cmp.internal_types[RT_PTR]); - *_local_var=tempm; + ICAdd(cc,IC_IMM_I64,tmpm->offset,cmp.internal_types[RT_PTR]); + *_local_var=tmpm; Lex(cc); return PE_MAYBE_MODIFIERS; } else { - if (tempm->dim.next && tempm->offset>0 && - StrCmp(tempm->str,"argv")) { - tempc++; + if (tmpm->dim.next && tmpm->offset>0 && + StrCmp(tmpm->str,"argv")) { + tmpc++; cc->flags&=~CCF_ARRAY; } - ICAdd(cc,IC_RBP,0,tempc); - ICAdd(cc,IC_IMM_I64,tempm->offset,tempc); - ICAdd(cc,IC_ADD,0,tempc); + ICAdd(cc,IC_RBP,0,tmpc); + ICAdd(cc,IC_IMM_I64,tmpm->offset,tmpc); + ICAdd(cc,IC_ADD,0,tmpc); } } Lex(cc); //skip var name - *_local_var=tempm; + *_local_var=tmpm; return PE_UNARY_MODIFIERS; } pu_ident_but_not_local_var: - if (!(tempex=cc->hash_entry)) { + if (!(tmpex=cc->hash_entry)) { if (!(cc->flags & CCF_ASM_EXPRESSIONS)) LexExcept(cc,"Invalid lval at "); - tempc=NULL; + tmpc=NULL; pu_new_sys_sym: - tempex=CAlloc(sizeof(CHashExport),Fs->code_heap); - tempex->str=cc->cur_str; + tmpex=CAlloc(sizeof(CHashExport),Fs->code_heap); + tmpex->str=cc->cur_str; cc->cur_str=NULL; if (!cc->htc.local_var_lst && - *tempex->str=='@' && tempex->str[1]=='@') { - tempex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED | HTF_LOCAL; - HashAdd(tempex,cc->htc.local_hash_table); + *tmpex->str=='@' && tmpex->str[1]=='@') { + tmpex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED | HTF_LOCAL; + HashAdd(tmpex,cc->htc.local_hash_table); } else { - tempex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED; - if (tempc) - HashAddAfter(tempex,tempc,cc->htc.glbl_hash_table); + tmpex->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED; + if (tmpc) + HashAddAfter(tmpex,tmpc,cc->htc.glbl_hash_table); else - HashAdd(tempex,cc->htc.glbl_hash_table); + HashAdd(tmpex,cc->htc.glbl_hash_table); } } - switch (Bsf(tempex->type)) { + switch (Bsf(tmpex->type)) { case HTt_EXPORT_SYS_SYM: pu_export_sys_sym: if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; - if (!(tempex->type & (HTF_IMM|HTF_IMPORT))) + if (!(tmpex->type & (HTF_IMM|HTF_IMPORT))) cc->abs_cnts.abs_addres++; - if (tempex->type & HTF_UNRESOLVED) { + if (tmpex->type & HTF_UNRESOLVED) { if (!(cc->flags&CCF_ASM_EXPRESSIONS)) LexExcept(cc,"Illegal fwd ref at "); - tempauh=MAlloc(sizeof(CAsmUndefHash)); - tempauh->hash=tempex; - tempauh->next=cc->asm_undef_hash; - cc->asm_undef_hash=tempauh; - if (tempex->type & HTF_LOCAL) + tmpauh=MAlloc(sizeof(CAsmUndefHash)); + tmpauh->hash=tmpex; + tmpauh->next=cc->asm_undef_hash; + cc->asm_undef_hash=tmpauh; + if (tmpex->type & HTF_LOCAL) cc->flags|=CCF_UNRESOLVED|CCF_LOCAL; else cc->flags|=CCF_UNRESOLVED; ICAdd(cc,IC_IMM_I64, - &tempex->val,cmp.internal_types[RT_PTR],ICF_NO_RIP); + &tmpex->val,cmp.internal_types[RT_PTR],ICF_NO_RIP); ICAdd(cc,IC_DEREF,0,cmp.internal_types[RT_PTR]); } else { - if (cc->flags&CCF_AOT_COMPILE && !(tempex->type & HTF_IMM)) - ICAdd(cc,IC_ABS_ADDR,tempex->val,cmp.internal_types[RT_PTR]); + if (cc->flags&CCF_AOT_COMPILE && !(tmpex->type & HTF_IMM)) + ICAdd(cc,IC_ABS_ADDR,tmpex->val,cmp.internal_types[RT_PTR]); else { - if (tempex->type&HTF_IMM) + if (tmpex->type&HTF_IMM) cc->abs_cnts.c_addres++; - ICAdd(cc,IC_IMM_I64,tempex->val,cmp.internal_types[RT_PTR]); + ICAdd(cc,IC_IMM_I64,tmpex->val,cmp.internal_types[RT_PTR]); } } Lex(cc); @@ -857,50 +857,50 @@ pu_export_sys_sym: if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; Lex(cc); //skip fun name - return PrsFunCall(cc,ps,FALSE,tempex); + return PrsFunCall(cc,ps,FALSE,tmpex); case HTt_GLBL_VAR: if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; - tempg=tempex; - tempc=tempg->var_class+1; + tmpg=tmpex; + tmpc=tmpg->var_class+1; cc->flags&=~(CCF_RAX|CCF_ARRAY|CCF_FUN_EXP); - if (tempg->flags&GVF_ARRAY) { - *_tempad=tempg->dim.next; + if (tmpg->flags&GVF_ARRAY) { + *_tmpad=tmpg->dim.next; cc->flags|=CCF_ARRAY; } if (cc->flags&CCF_AOT_COMPILE) { - if (tempg->flags & GVF_EXTERN) //TODO + if (tmpg->flags & GVF_EXTERN) //TODO LexExcept(cc,"Feature not implemented "); else { - if (tempg->flags & GVF_IMPORT) - ICAdd(cc,IC_ADDR_IMPORT,tempg,tempc); + if (tmpg->flags & GVF_IMPORT) + ICAdd(cc,IC_ADDR_IMPORT,tmpg,tmpc); else { - if (tempg->flags&GVF_DATA_HEAP) - ICAdd(cc,IC_HEAP_GLBL,tempg->heap_glbl,tempc); + if (tmpg->flags&GVF_DATA_HEAP) + ICAdd(cc,IC_HEAP_GLBL,tmpg->heap_glbl,tmpc); else - ICAdd(cc,IC_ABS_ADDR,tempg->data_addr_ip,tempc); + ICAdd(cc,IC_ABS_ADDR,tmpg->data_addr_ip,tmpc); } } } else { - if (tempg->flags & GVF_EXTERN) { + if (tmpg->flags & GVF_EXTERN) { cc->abs_cnts.externs++; - ICAdd(cc,IC_IMM_I64,&tempg->data_addr,tempc); - ICAdd(cc,IC_DEREF,0,tempc); + ICAdd(cc,IC_IMM_I64,&tmpg->data_addr,tmpc); + ICAdd(cc,IC_DEREF,0,tmpc); } else - ICAdd(cc,IC_IMM_I64,tempg->data_addr,tempc); + ICAdd(cc,IC_IMM_I64,tmpg->data_addr,tmpc); } Lex(cc); - if (tempg->flags & GVF_FUN) { + if (tmpg->flags & GVF_FUN) { PrsPopDeref(ps); cc->flags|=CCF_FUN_EXP; - PrsPush2(ps,tempg->fun_ptr-tempg->fun_ptr->ptr_stars_cnt); + PrsPush2(ps,tmpg->fun_ptr-tmpg->fun_ptr->ptr_stars_cnt); } return PE_UNARY_MODIFIERS; case HTt_CLASS: PrsOffsetOf(cc); return PE_MAYBE_MODIFIERS; case HTt_KEYWORD: - switch (tempex(CHashGeneric *)->user_data0) { + switch (tmpex(CHashGeneric *)->user_data0) { case KW_SIZEOF: if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; @@ -952,59 +952,59 @@ pu_export_sys_sym: } I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, - CArrayDim **_tempad,I64 *unary_post_prec) + CArrayDim **_tmpad,I64 *unary_post_prec) { - CHashClass *tempc,*tempc1; + CHashClass *tmpc,*tmpc1; CHashFun *fun_ptr; - CMemberLst *tempm=*_local_var; - CIntermediateCode *tempi,*tempi1; - CArrayDim *tempad1,tempad2; + CMemberLst *tmpm=*_local_var; + CIntermediateCode *tmpi,*tmpi1; + CArrayDim *tmpad1,tmpad2; CCodeMisc *cm; I64 mode,old_flags; Bool was_paren=Btr(&cc->flags,CCf_PAREN); *_local_var=NULL; switch (cc->token) { case '.': - if (tempm) - tempm->reg=REG_NONE; + if (tmpm) + tmpm->reg=REG_NONE; goto um_join; case TK_DEREFERENCE: - tempi=cc->coc.coc_head.last; + tmpi=cc->coc.coc_head.last; if (!(cc->flags & (CCF_RAX | CCF_ARRAY))) - ICAdd(cc,IC_DEREF+PREC_UNARY_PRE<<16,0,tempi->ic_class-1); + ICAdd(cc,IC_DEREF+PREC_UNARY_PRE<<16,0,tmpi->ic_class-1); else - tempi->ic_class--; + tmpi->ic_class--; um_join: if (!*unary_post_prec) *unary_post_prec=PREC_TERM; - tempc=cc->coc.coc_head.last->ic_class; - if ((!tempc->ptr_stars_cnt || cc->flags & CCF_ARRAY) && cc->token=='.') + tmpc=cc->coc.coc_head.last->ic_class; + if ((!tmpc->ptr_stars_cnt || cc->flags & CCF_ARRAY) && cc->token=='.') LexExcept(cc,"Must be address, not value "); if (!(cc->flags & CCF_RAX)) - tempc--; - if (!(tempc->type & HTT_CLASS)) + tmpc--; + if (!(tmpc->type & HTT_CLASS)) LexExcept(cc,"Invalid class at "); if (Lex(cc)!=TK_IDENT || - !(tempm=MemberFind(cc->cur_str,tempc))) + !(tmpm=MemberFind(cc->cur_str,tmpc))) LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; Lex(cc); //skip member name - tempc1=tempm->member_class+1; - ICAdd(cc,IC_IMM_I64,tempm->offset,tempc1); + tmpc1=tmpm->member_class+1; + ICAdd(cc,IC_IMM_I64,tmpm->offset,tmpc1); cc->flags&=~(CCF_RAX|CCF_ARRAY|CCF_FUN_EXP); - if (tempm->dim.next) { - *_tempad=tempm->dim.next; + if (tmpm->dim.next) { + *_tmpad=tmpm->dim.next; cc->flags|=CCF_ARRAY; } - if(tempm->flags & MLF_FUN) { + if(tmpm->flags & MLF_FUN) { PrsPopDeref(ps); - PrsPush2(ps,tempm->fun_ptr-tempm->fun_ptr->ptr_stars_cnt); + PrsPush2(ps,tmpm->fun_ptr-tmpm->fun_ptr->ptr_stars_cnt); cc->flags|=CCF_FUN_EXP; } - ICAdd(cc,IC_ADD,0,tempc1); + ICAdd(cc,IC_ADD,0,tmpc1); return PE_UNARY_MODIFIERS; case '(': if (cc->flags & CCF_FUN_EXP) { @@ -1019,10 +1019,10 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (Btr(&cc->flags,CCf_FUN_EXP)) ps->ptr2--; cc->flags&=~CCF_ARRAY; - tempc=cc->hash_entry; + tmpc=cc->hash_entry; Lex(cc); mode=PRS0_TYPECAST|PRS1_NULL; - tempc=PrsType(cc,&tempc,&mode,NULL,NULL,&fun_ptr,NULL,&tempad2,0); + tmpc=PrsType(cc,&tmpc,&mode,NULL,NULL,&fun_ptr,NULL,&tmpad2,0); if (fun_ptr) { PrsPopDeref(ps); Bts(&cc->flags,CCf_FUN_EXP); @@ -1030,17 +1030,17 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, cm=COCMiscNew(cc,CMT_HASH_ENTRY); cm->h=fun_ptr; } - if (*_tempad=tempad2.next) { + if (*_tmpad=tmpad2.next) { cc->flags|=CCF_ARRAY; - tempc++; + tmpc++; cm=COCMiscNew(cc,CMT_ARRAY_DIM); - cm->dim=*_tempad; + cm->dim=*_tmpad; } if (!(cc->flags&(CCF_RAX|CCF_ARRAY))) - tempc++; - tempi=cc->coc.coc_head.last; - tempi->ic_class=tempc; - ICAdd(cc,IC_HOLYC_TYPECAST,was_paren,tempc); + tmpc++; + tmpi=cc->coc.coc_head.last; + tmpi->ic_class=tmpc; + ICAdd(cc,IC_HOLYC_TYPECAST,was_paren,tmpc); if (cc->token!=')') LexExcept(cc,"Missing ')' at "); Lex(cc); @@ -1049,19 +1049,19 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (!*unary_post_prec) *unary_post_prec=PREC_TERM; Lex(cc); - tempc=OptClassFwd(cc->coc.coc_head.last->ic_class); - if (!tempc->ptr_stars_cnt) + tmpc=OptClassFwd(cc->coc.coc_head.last->ic_class); + if (!tmpc->ptr_stars_cnt) LexExcept(cc,"Not array or ptr "); if (!(cc->flags & (CCF_ARRAY | CCF_RAX))) { - tempc=OptClassFwd(tempc-1); - if (!tempc->ptr_stars_cnt) + tmpc=OptClassFwd(tmpc-1); + if (!tmpc->ptr_stars_cnt) LexExcept(cc,"Not array or ptr "); - ICAdd(cc,IC_DEREF+PREC_UNARY_PRE<<16,0,tempc); + ICAdd(cc,IC_DEREF+PREC_UNARY_PRE<<16,0,tmpc); } - tempc1=tempc-1; - if (tempad1=*_tempad) { - ICAdd(cc,IC_IMM_I64,tempad1->total_cnt*tempc1->size,tempc); - if (*_tempad=tempad1->next) { + tmpc1=tmpc-1; + if (tmpad1=*_tmpad) { + ICAdd(cc,IC_IMM_I64,tmpad1->total_cnt*tmpc1->size,tmpc); + if (*_tmpad=tmpad1->next) { old_flags=cc->flags; if (!PrsExpression(cc,NULL,FALSE,ps)) throw('Compiler'); @@ -1069,15 +1069,15 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (cc->token!=']') LexExcept(cc,"Missing ']' at "); Lex(cc); //skip ] - tempi1=cc->coc.coc_head.last; - tempi1->ic_flags|=ICF_R_TO_INT; - ICAdd(cc,IC_MUL,0,tempc); - ICAdd(cc,IC_ADD,0,tempc); + tmpi1=cc->coc.coc_head.last; + tmpi1->ic_flags|=ICF_R_TO_INT; + ICAdd(cc,IC_MUL,0,tmpc); + ICAdd(cc,IC_ADD,0,tmpc); cc->flags|=CCF_RAX; return PE_UNARY_MODIFIERS; } } else - ICAdd(cc,IC_IMM_I64,tempc1->size,tempc); + ICAdd(cc,IC_IMM_I64,tmpc1->size,tmpc); old_flags=cc->flags; if (!PrsExpression(cc,NULL,FALSE,ps)) throw('Compiler'); @@ -1085,10 +1085,10 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (cc->token!=']') LexExcept(cc,"Missing ']' at "); Lex(cc); //skip ] - tempi1=cc->coc.coc_head.last; - tempi1->ic_flags|=ICF_R_TO_INT; - ICAdd(cc,IC_MUL,0,tempc); - ICAdd(cc,IC_ADD,0,tempc); + tmpi1=cc->coc.coc_head.last; + tmpi1->ic_flags|=ICF_R_TO_INT; + ICAdd(cc,IC_MUL,0,tmpc); + ICAdd(cc,IC_ADD,0,tmpc); cc->flags&=~(CCF_RAX|CCF_ARRAY); return PE_UNARY_MODIFIERS; start: diff --git a/Compiler/PrsLib.HC b/Compiler/PrsLib.HC index 8c828b6..29820ce 100644 --- a/Compiler/PrsLib.HC +++ b/Compiler/PrsLib.HC @@ -21,18 +21,18 @@ I64 PrsPop2(CPrsStk *ps) U0 PrsPopDeref(CPrsStk *ps) { I64 i=PrsPop(ps); - CHashClass *tempc=PrsPop(ps); + CHashClass *tmpc=PrsPop(ps); if (i.u16[0]!=IC_DEREF) { - PrsPush(ps,tempc); + PrsPush(ps,tmpc); PrsPush(ps,i); } } I64 PrsKeyWord(CCmpCtrl *cc) {//Cvt cur token to $LK,"KEYWORD",A="FF:::/Compiler/OpCodes.DD,KEYWORD"$ or -1. - CHashGeneric *temph; - if (cc->token==TK_IDENT &&(temph=cc->hash_entry) && temph->type&HTT_KEYWORD) - return temph->user_data0; + CHashGeneric *tmph; + if (cc->token==TK_IDENT &&(tmph=cc->hash_entry) && tmph->type&HTT_KEYWORD) + return tmph->user_data0; else return -1; } @@ -46,13 +46,13 @@ for one * and two fwd for two **. */ I64 i; CHashClass *res=CAlloc(sizeof(CHashClass)*(MAX_PTR_STARS+1),Fs->code_heap), - *tempc=res; + *tmpc=res; for (i=0;i<=MAX_PTR_STARS;i++) { - tempc->type=HTT_CLASS; - tempc->raw_type=RT_PTR; - tempc->size=sizeof(U8 *); - tempc->ptr_stars_cnt=i; - tempc++; + tmpc->type=HTT_CLASS; + tmpc->raw_type=RT_PTR; + tmpc->size=sizeof(U8 *); + tmpc->ptr_stars_cnt=i; + tmpc++; } res->last_in_member_lst=&res->member_lst_and_root; res->size=0; @@ -63,13 +63,13 @@ CHashFun *PrsFunNew() { I64 i; CHashFun *res=CAlloc(sizeof(CHashFun)*(MAX_PTR_STARS+1),Fs->code_heap), - *tempf=res; + *tmpf=res; for (i=0;i<=MAX_PTR_STARS;i++) { - tempf->type=HTT_FUN; - tempf->raw_type=RT_PTR; - tempf->size=sizeof(U8 *); - tempf->ptr_stars_cnt=i; - tempf++; + tmpf->type=HTT_FUN; + tmpf->raw_type=RT_PTR; + tmpf->size=sizeof(U8 *); + tmpf->ptr_stars_cnt=i; + tmpf++; } res->last_in_member_lst=&res->member_lst_and_root; res->size=0; @@ -79,43 +79,43 @@ CHashFun *PrsFunNew() CIntermediateCode *ICAdd(CCmpCtrl *cc, I64 opcode_and_precedence,I64 arg, CHashClass *c,I64 flags=0) { - CIntermediateCode *tempi=MAlloc(sizeof(CIntermediateCode)); - tempi->ic_code=opcode_and_precedence.u16[0]; - tempi->ic_precedence=opcode_and_precedence.u16[1]; - tempi->ic_data=arg; - tempi->ic_class=c; + CIntermediateCode *tmpi=MAlloc(sizeof(CIntermediateCode)); + tmpi->ic_code=opcode_and_precedence.u16[0]; + tmpi->ic_precedence=opcode_and_precedence.u16[1]; + tmpi->ic_data=arg; + tmpi->ic_class=c; if (cc->pass_trace) { Bts(&cc->flags,CCf_PASS_TRACE_PRESENT); flags|=ICF_PASS_TRACE; } if (cc->lock_cnt) flags|=ICF_LOCK; - tempi->ic_flags=flags; - tempi->ic_line=cc->last_line_num; - QueIns(tempi,cc->coc.coc_head.last); - return tempi; + tmpi->ic_flags=flags; + tmpi->ic_line=cc->last_line_num; + QueIns(tmpi,cc->coc.coc_head.last); + return tmpi; } U0 COCInit(CCmpCtrl *cc) { - CCodeCtrl *tempcbh=&cc->coc; - QueInit(&tempcbh->coc_head.next); - QueInit(&tempcbh->coc_next_misc); - tempcbh->coc_head.ic_code=IC_END; + CCodeCtrl *tmpcbh=&cc->coc; + QueInit(&tmpcbh->coc_head.next); + QueInit(&tmpcbh->coc_next_misc); + tmpcbh->coc_head.ic_code=IC_END; } U0 COCPush(CCmpCtrl *cc) { - CCodeCtrl *tempcbh=MAlloc(sizeof(CCodeCtrl)); - MemCpy(tempcbh,&cc->coc,sizeof(CCodeCtrl)); - cc->coc.coc_next=tempcbh; + CCodeCtrl *tmpcbh=MAlloc(sizeof(CCodeCtrl)); + MemCpy(tmpcbh,&cc->coc,sizeof(CCodeCtrl)); + cc->coc.coc_next=tmpcbh; } CCmpCtrl *COCPopNoFree(CCmpCtrl *cc) { - CCodeCtrl *tempcbh=cc->coc.coc_next; - MemCpy(&cc->coc,tempcbh,sizeof(CCodeCtrl)); - return tempcbh; + CCodeCtrl *tmpcbh=cc->coc.coc_next; + MemCpy(&cc->coc,tmpcbh,sizeof(CCodeCtrl)); + return tmpcbh; } U0 COCPop(CCmpCtrl *cc) @@ -123,21 +123,21 @@ U0 COCPop(CCmpCtrl *cc) Free(COCPopNoFree(cc)); } -U0 COCAppend(CCmpCtrl *cc, CCodeCtrl *tempcbh) +U0 COCAppend(CCmpCtrl *cc, CCodeCtrl *tmpcbh) { - if (tempcbh->coc_head.next!=&cc->coc.coc_head.next) { - cc->coc.coc_head.last->next=tempcbh->coc_head.next; - tempcbh->coc_head.next->last=cc->coc.coc_head.last; - cc->coc.coc_head.last=tempcbh->coc_head.last; - tempcbh->coc_head.last->next=&cc->coc.coc_head.next; + if (tmpcbh->coc_head.next!=&cc->coc.coc_head.next) { + cc->coc.coc_head.last->next=tmpcbh->coc_head.next; + tmpcbh->coc_head.next->last=cc->coc.coc_head.last; + cc->coc.coc_head.last=tmpcbh->coc_head.last; + tmpcbh->coc_head.last->next=&cc->coc.coc_head.next; } - if (tempcbh->coc_next_misc!=&cc->coc.coc_next_misc) { - cc->coc.coc_last_misc->next=tempcbh->coc_next_misc; - tempcbh->coc_next_misc->last=cc->coc.coc_last_misc; - cc->coc.coc_last_misc=tempcbh->coc_last_misc; - tempcbh->coc_last_misc->next=&cc->coc.coc_next_misc; + if (tmpcbh->coc_next_misc!=&cc->coc.coc_next_misc) { + cc->coc.coc_last_misc->next=tmpcbh->coc_next_misc; + tmpcbh->coc_next_misc->last=cc->coc.coc_last_misc; + cc->coc.coc_last_misc=tmpcbh->coc_last_misc; + tmpcbh->coc_last_misc->next=&cc->coc.coc_next_misc; } - Free(tempcbh); + Free(tmpcbh); } CCodeMisc *COCMiscNew(CCmpCtrl *cc,I64 ty) @@ -228,16 +228,16 @@ U0 COCDel(CCmpCtrl *cc,CCodeCtrl *coc) U0 COCHeaderPut(CCmpCtrl *cc,I64 pass,Bool put) { - CIntermediateCode *tempi; + CIntermediateCode *tmpi; if (Bt(&cc->flags,CCf_PASS_TRACE_PRESENT)) { if (put) { if (Bt(&cc->saved_pass_trace,pass-1)) { "$$IV,1$$Pass %d:$$IV,0$$\n",pass-1; - tempi=cc->coc.coc_head.next; - while (tempi->ic_code) { - if (tempi->ic_flags&ICF_PASS_TRACE) - ICPut(cc,tempi); - tempi=tempi->next; + tmpi=cc->coc.coc_head.next; + while (tmpi->ic_code) { + if (tmpi->ic_flags&ICF_PASS_TRACE) + ICPut(cc,tmpi); + tmpi=tmpi->next; } } } else if (Bt(&cc->saved_pass_trace,pass)) diff --git a/Compiler/PrsStmt.HC b/Compiler/PrsStmt.HC index daf4ea4..b130c0e 100644 --- a/Compiler/PrsStmt.HC +++ b/Compiler/PrsStmt.HC @@ -1,145 +1,145 @@ CHashClass *PrsClass(CCmpCtrl *cc,I64 keyword,I64 fsp_flags,Bool is_extern) { - CHashClass *tempc,*base_class; + CHashClass *tmpc,*base_class; if (cc->token!=TK_IDENT) LexExcept(cc,"Expecting identifier at "); if (is_extern) { - tempc=PrsClassNew; - tempc->str=cc->cur_str; + tmpc=PrsClassNew; + tmpc->str=cc->cur_str; cc->cur_str=NULL; - HashAdd(tempc,cc->htc.glbl_hash_table); - LBts(&tempc->flags,Cf_EXTERN); - HashSrcFileSet(cc,tempc); + HashAdd(tmpc,cc->htc.glbl_hash_table); + LBts(&tmpc->flags,Cf_EXTERN); + HashSrcFileSet(cc,tmpc); Lex(cc); } else { if (cc->flags&CCF_AOT_COMPILE) - tempc=HashFind(cc->cur_str,cc->htc.glbl_hash_table,HTT_CLASS); + tmpc=HashFind(cc->cur_str,cc->htc.glbl_hash_table,HTT_CLASS); else - tempc=HashSingleTableFind(cc->cur_str,cc->htc.glbl_hash_table,HTT_CLASS); - if (tempc) { - if (!Bt(&tempc->flags,Cf_EXTERN)) - tempc=NULL; - else if (tempc->use_cnt<3) - UnusedExternWarning(cc,tempc); + tmpc=HashSingleTableFind(cc->cur_str,cc->htc.glbl_hash_table,HTT_CLASS); + if (tmpc) { + if (!Bt(&tmpc->flags,Cf_EXTERN)) + tmpc=NULL; + else if (tmpc->use_cnt<3) + UnusedExternWarning(cc,tmpc); } - if (tempc) { - Free(tempc->src_link); - tempc->src_link=NULL; - Free(tempc->idx); - tempc->idx=NULL; + if (tmpc) { + Free(tmpc->src_link); + tmpc->src_link=NULL; + Free(tmpc->idx); + tmpc->idx=NULL; } else { - tempc=PrsClassNew; - tempc->str=cc->cur_str; + tmpc=PrsClassNew; + tmpc->str=cc->cur_str; cc->cur_str=NULL; - HashAdd(tempc,cc->htc.glbl_hash_table); + HashAdd(tmpc,cc->htc.glbl_hash_table); } - LBtr(&tempc->flags,Cf_EXTERN); + LBtr(&tmpc->flags,Cf_EXTERN); if (fsp_flags&FSF_PUBLIC) - tempc->type|=HTF_PUBLIC; - tempc->use_cnt=0; + tmpc->type|=HTF_PUBLIC; + tmpc->use_cnt=0; if (cc->last_U16=='\n') - HashSrcFileSet(cc,tempc,-1); + HashSrcFileSet(cc,tmpc,-1); else - HashSrcFileSet(cc,tempc,0); + HashSrcFileSet(cc,tmpc,0); if (Lex(cc)==':') { if (Lex(cc)!=TK_IDENT || !(base_class=cc->hash_entry) || !(base_class->type&HTT_CLASS)) LexExcept(cc,"Invalid class at "); if (Lex(cc)==',') LexExcept(cc,"Only one base class allowed at this time at "); - tempc->base_class=base_class; - tempc->size+=base_class->size; + tmpc->base_class=base_class; + tmpc->size+=base_class->size; } if (keyword==KW_UNION) - PrsVarLst(cc,tempc,PRS0_NULL|PRS1_CLASS|PRSF_UNION); + PrsVarLst(cc,tmpc,PRS0_NULL|PRS1_CLASS|PRSF_UNION); else - PrsVarLst(cc,tempc,PRS0_NULL|PRS1_CLASS); - tempc->size+=tempc->neg_offset; + PrsVarLst(cc,tmpc,PRS0_NULL|PRS1_CLASS); + tmpc->size+=tmpc->neg_offset; } - return tempc; + return tmpc; } -CHashFun *PrsFunJoin(CCmpCtrl *cc,CHashClass *temp_return, +CHashFun *PrsFunJoin(CCmpCtrl *cc,CHashClass *tmp_return, U8 *name,I64 fsp_flags) { - CMemberLst *tempm,*header_lst; + CMemberLst *tmpm,*header_lst; CAOTCtrl *aotc=cc->aotc; CHashClass *header_return; - CHashFun *tempf; + CHashFun *tmpf; I64 header_arg_cnt; if (name) {//if not fun_ptr if (cc->flags&CCF_AOT_COMPILE) { - if ((tempf=HashFind(name,cc->htc.glbl_hash_table,HTT_FUN)) && - tempf->type & HTF_IMPORT) - tempf=NULL; + if ((tmpf=HashFind(name,cc->htc.glbl_hash_table,HTT_FUN)) && + tmpf->type & HTF_IMPORT) + tmpf=NULL; } else - if ((tempf=HashSingleTableFind(name,cc->htc.glbl_hash_table,HTT_FUN)) && - !Bt(&tempf->flags,Cf_EXTERN)) - tempf=NULL; - if (tempf && tempf->use_cnt<3) - UnusedExternWarning(cc,tempf); + if ((tmpf=HashSingleTableFind(name,cc->htc.glbl_hash_table,HTT_FUN)) && + !Bt(&tmpf->flags,Cf_EXTERN)) + tmpf=NULL; + if (tmpf && tmpf->use_cnt<3) + UnusedExternWarning(cc,tmpf); } else - tempf=NULL; - if (tempf) { - tempf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TEMP; - Free(tempf->src_link); - tempf->src_link=NULL; - Free(tempf->idx); - tempf->idx=NULL; + tmpf=NULL; + if (tmpf) { + tmpf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TMP; + Free(tmpf->src_link); + tmpf->src_link=NULL; + Free(tmpf->idx); + tmpf->idx=NULL; Free(name); - header_arg_cnt=tempf->arg_cnt; - header_lst=tempf->member_lst_and_root; - header_return=tempf->return_class; - tempf->member_lst_and_root=NULL; - ClassMemberLstDel(tempf); + header_arg_cnt=tmpf->arg_cnt; + header_lst=tmpf->member_lst_and_root; + header_return=tmpf->return_class; + tmpf->member_lst_and_root=NULL; + ClassMemberLstDel(tmpf); } else { - tempf=PrsFunNew; + tmpf=PrsFunNew; header_return=NULL; - tempf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TEMP; - tempf->clobbered_reg_mask=REGG_CLOBBERED+REGG_STK_TEMP; - tempf->str=name; + tmpf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TMP; + tmpf->clobbered_reg_mask=REGG_CLOBBERED+REGG_STK_TMP; + tmpf->str=name; if (cc->flags&CCF_AOT_COMPILE) - tempf->exe_addr=aotc->ip; + tmpf->exe_addr=aotc->ip; else - tempf->exe_addr=&UndefinedExtern; - LBts(&tempf->flags,Cf_EXTERN); - tempf->flags|=fsp_flags&FSG_FUN_FLAGS1; + tmpf->exe_addr=&UndefinedExtern; + LBts(&tmpf->flags,Cf_EXTERN); + tmpf->flags|=fsp_flags&FSG_FUN_FLAGS1; if (name) //if not fun_ptr - HashAdd(tempf,cc->htc.glbl_hash_table); + HashAdd(tmpf,cc->htc.glbl_hash_table); } - BEqu(&tempf->type,HTf_PUBLIC,fsp_flags&FSF_PUBLIC); - tempf->return_class=temp_return; - tempf->use_cnt=0; - HashSrcFileSet(cc,tempf); - PrsVarLst(cc,tempf,PRS0_NULL|PRS1_FUN_ARG); - tempf->arg_cnt=tempf->member_cnt; - if (0arg_cnt<<3<=MAX_I16 && !Bt(&tempf->flags,Ff_DOT_DOT_DOT)) - LBts(&tempf->flags,Ff_RET1); - tempm=tempf->member_lst_and_root; - while (tempm) { - tempm->offset+=16; //RBP+RETURN - tempm=tempm->next; + BEqu(&tmpf->type,HTf_PUBLIC,fsp_flags&FSF_PUBLIC); + tmpf->return_class=tmp_return; + tmpf->use_cnt=0; + HashSrcFileSet(cc,tmpf); + PrsVarLst(cc,tmpf,PRS0_NULL|PRS1_FUN_ARG); + tmpf->arg_cnt=tmpf->member_cnt; + if (0arg_cnt<<3<=MAX_I16 && !Bt(&tmpf->flags,Ff_DOT_DOT_DOT)) + LBts(&tmpf->flags,Ff_RET1); + tmpm=tmpf->member_lst_and_root; + while (tmpm) { + tmpm->offset+=16; //RBP+RETURN + tmpm=tmpm->next; } - tempf->size=0; + tmpf->size=0; if (header_return) { if (GetOption(OPTf_WARN_HEADER_MISMATCH)) { - if (tempf->return_class!=header_return) { - PrintWarn("Fun Header return mismatch '%s'\n",tempf->str); + if (tmpf->return_class!=header_return) { + PrintWarn("Fun Header return mismatch '%s'\n",tmpf->str); cc->warning_cnt++; } - if (!MemberLstCmp(tempf->member_lst_and_root,header_lst,header_arg_cnt)) { - PrintWarn("Fun header args mismatch '%s'\n",tempf->str); + if (!MemberLstCmp(tmpf->member_lst_and_root,header_lst,header_arg_cnt)) { + PrintWarn("Fun header args mismatch '%s'\n",tmpf->str); cc->warning_cnt++; } } MemberLstDel(header_lst); } - return tempf; + return tmpf; } -U0 PrsFun(CCmpCtrl *cc,CHashClass *temp_return,U8 *name,I64 fsp_flags) +U0 PrsFun(CCmpCtrl *cc,CHashClass *tmp_return,U8 *name,I64 fsp_flags) { - CMemberLst *tempm; + CMemberLst *tmpm; CCodeMisc *saved_leave_label; I64 i,j,size,*r; Bool old_trace; @@ -148,7 +148,7 @@ U0 PrsFun(CCmpCtrl *cc,CHashClass *temp_return,U8 *name,I64 fsp_flags) cc->min_line=cc->max_line=cc->lex_include_stk->line_num; cc->flags&=~CCF_NO_REG_OPT; - cc->htc.local_var_lst=cc->htc.fun=PrsFunJoin(cc,temp_return,name,fsp_flags); + cc->htc.local_var_lst=cc->htc.fun=PrsFunJoin(cc,tmp_return,name,fsp_flags); COCPush(cc); Btr(&cc->flags,CCf_PASS_TRACE_PRESENT); @@ -190,77 +190,77 @@ U0 PrsFun(CCmpCtrl *cc,CHashClass *temp_return,U8 *name,I64 fsp_flags) } LBtr(&cc->htc.fun->flags,Cf_EXTERN); COCPop(cc); - tempm=cc->htc.fun->member_lst_and_root; - while (tempm) { - if (tempm->flags & MLF_NO_UNUSED_WARN) { - if (tempm->use_cnt>1&&StrCmp(tempm->str,"_anon_")) + tmpm=cc->htc.fun->member_lst_and_root; + while (tmpm) { + if (tmpm->flags & MLF_NO_UNUSED_WARN) { + if (tmpm->use_cnt>1&&StrCmp(tmpm->str,"_anon_")) PrintWarn("Unneeded no_warn\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name,cc->lex_include_stk->line_num, - tempm->str,cc->htc.fun->str); - } else if (!tempm->use_cnt && GetOption(OPTf_WARN_UNUSED_VAR)) + tmpm->str,cc->htc.fun->str); + } else if (!tmpm->use_cnt && GetOption(OPTf_WARN_UNUSED_VAR)) PrintWarn("Unused var\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", cc->lex_include_stk->full_name,cc->lex_include_stk->line_num, - tempm->str,cc->htc.fun->str); - tempm=tempm->next; + tmpm->str,cc->htc.fun->str); + tmpm=tmpm->next; } cc->htc.local_var_lst=cc->htc.fun=cc->fun_lex_file=NULL; } -U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, +U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tmpc, I64 saved_val,I64 fsp_flags) { I64 i,j,mode,k,val; U8 *st; - CHashExport *tempex; - CHashGlblVar *tempg; + CHashExport *tmpex; + CHashGlblVar *tmpg; CAOTCtrl *aotc=cc->aotc; - CAOTHeapGlbl *temphg; - CHashClass *tempc; - CHashFun *tempf,*tempf_fun_ptr; - CArrayDim tempad; + CAOTHeapGlbl *tmphg; + CHashClass *tmpc; + CHashFun *tmpf,*tmpf_fun_ptr; + CArrayDim tmpad; Bool has_alias,undef_array_size,is_array; while (TRUE) { - tempc=PrsType(cc,&saved_tempc,&saved_mode,NULL,&st, - &tempf_fun_ptr,&tempex,&tempad,fsp_flags); + tmpc=PrsType(cc,&saved_tmpc,&saved_mode,NULL,&st, + &tmpf_fun_ptr,&tmpex,&tmpad,fsp_flags); if (!st) return; - if (tempad.next) + if (tmpad.next) is_array=TRUE; - else if (tempad.total_cnt<0) { + else if (tmpad.total_cnt<0) { is_array=TRUE; - tempc--; + tmpc--; } else is_array=FALSE; val=saved_val; mode=saved_mode; - if (tempex && mode&255==PRS0_EXTERN && !(cc->flags&CCF_AOT_COMPILE) && - tempex->type&HTT_EXPORT_SYS_SYM) { - val=tempex->val; + if (tmpex && mode&255==PRS0_EXTERN && !(cc->flags&CCF_AOT_COMPILE) && + tmpex->type&HTT_EXPORT_SYS_SYM) { + val=tmpex->val; mode=PRS0__EXTERN|PRS1_NOT_REALLY__EXTERN; } if (cc->token=='(') { switch (mode&255) { case PRS0__INTERN: - tempf=PrsFunJoin(cc,tempc,st,fsp_flags); - tempf->exe_addr=val; - Bts(&tempf->flags,Ff_INTERNAL); - LBtr(&tempf->flags,Cf_EXTERN); + tmpf=PrsFunJoin(cc,tmpc,st,fsp_flags); + tmpf->exe_addr=val; + Bts(&tmpf->flags,Ff_INTERNAL); + LBtr(&tmpf->flags,Cf_EXTERN); return; case PRS0__EXTERN: if (!(fsp_flags&FSF__) && !(mode&PRS1_NOT_REALLY__EXTERN)) LexExcept(cc,"Expecting label with underscore at "); - tempf=PrsFunJoin(cc,tempc,st,fsp_flags); - tempf->exe_addr=val; - SysSymImportsResolve(tempf->str); - LBtr(&tempf->flags,Cf_EXTERN); + tmpf=PrsFunJoin(cc,tmpc,st,fsp_flags); + tmpf->exe_addr=val; + SysSymImportsResolve(tmpf->str); + LBtr(&tmpf->flags,Cf_EXTERN); if (saved_mode&255==PRS0__EXTERN) - LBts(&tempf->flags,Ff__EXTERN); + LBts(&tmpf->flags,Ff__EXTERN); if (cc->flags&CCF_AOT_COMPILE) - tempf->type|=HTF_RESOLVE; + tmpf->type|=HTF_RESOLVE; return; case PRS0_EXTERN: - PrsFunJoin(cc,tempc,st,fsp_flags); + PrsFunJoin(cc,tmpc,st,fsp_flags); return; case PRS0__IMPORT: if (!(fsp_flags&FSF__)) @@ -269,66 +269,66 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, if (!(cc->flags&CCF_AOT_COMPILE)) LexExcept(cc,"import not needed at "); else { - tempf=PrsFunJoin(cc,tempc,st,fsp_flags); - tempf->type|=HTF_IMPORT; + tmpf=PrsFunJoin(cc,tmpc,st,fsp_flags); + tmpf->type|=HTF_IMPORT; if (mode&255==PRS0__IMPORT) - tempf->import_name=StrNew(val); + tmpf->import_name=StrNew(val); else - tempf->import_name=StrNew(st); + tmpf->import_name=StrNew(st); } return; default: - PrsFun(cc,tempc,st,fsp_flags); + PrsFun(cc,tmpc,st,fsp_flags); return; } } else { - if (tempad.total_cnt<0) { + if (tmpad.total_cnt<0) { i=0; undef_array_size=TRUE; } else { - i=tempad.total_cnt; + i=tmpad.total_cnt; undef_array_size=FALSE; } - if (tempf_fun_ptr) + if (tmpf_fun_ptr) j=sizeof(U8 *); else - j=tempc->size; + j=tmpc->size; j*=i; has_alias=FALSE; - temphg=NULL; + tmphg=NULL; switch (mode&255) { case PRS0__EXTERN: if (cc->flags&CCF_AOT_COMPILE) { - tempg=CAlloc(sizeof(CHashGlblVar)); - tempg->data_addr_ip=val; - tempg->type=HTT_GLBL_VAR | HTF_EXPORT; + tmpg=CAlloc(sizeof(CHashGlblVar)); + tmpg->data_addr_ip=val; + tmpg->type=HTT_GLBL_VAR | HTF_EXPORT; } else { - tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); - tempg->data_addr=val; - tempg->type=HTT_GLBL_VAR; + tmpg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tmpg->data_addr=val; + tmpg->type=HTT_GLBL_VAR; } - tempg->flags|=GVF_ALIAS; + tmpg->flags|=GVF_ALIAS; break; case PRS0__IMPORT: case PRS0_IMPORT: if (!(cc->flags&CCF_AOT_COMPILE)) LexExcept(cc,"import not needed at "); else { - tempg=CAlloc(sizeof(CHashGlblVar)); - tempg->type=HTT_GLBL_VAR | HTF_IMPORT; + tmpg=CAlloc(sizeof(CHashGlblVar)); + tmpg->type=HTT_GLBL_VAR | HTF_IMPORT; if (mode&255==PRS0__IMPORT) - tempg->import_name=StrNew(val); + tmpg->import_name=StrNew(val); else - tempg->import_name=StrNew(st); + tmpg->import_name=StrNew(st); } break; case PRS0_EXTERN: if (cc->flags&CCF_AOT_COMPILE) { - tempg=CAlloc(sizeof(CHashGlblVar)); - tempg->type=HTT_GLBL_VAR; + tmpg=CAlloc(sizeof(CHashGlblVar)); + tmpg->type=HTT_GLBL_VAR; } else { - tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); - tempg->type=HTT_GLBL_VAR|HTF_UNRESOLVED; + tmpg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tmpg->type=HTT_GLBL_VAR|HTF_UNRESOLVED; } break; default: @@ -336,32 +336,32 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, if (Bt(&cc->opts,OPTf_GLBLS_ON_DATA_HEAP)) { if (cc->token=='=') LexExcept(cc,"Can't init glbl var on data heap in AOT module "); - tempg=CAlloc(sizeof(CHashGlblVar)); - temphg=tempg->heap_glbl=CAlloc(sizeof(CAOTHeapGlbl)); - temphg->size=j; - temphg->str=StrNew(st); - temphg->next=aotc->heap_glbls; - aotc->heap_glbls=temphg; - tempg->flags=GVF_DATA_HEAP; - tempg->type=HTT_GLBL_VAR; //TODO: HTF_EXPORT - if (tempex && tempex->type & HTT_GLBL_VAR) //TODO!! extern + tmpg=CAlloc(sizeof(CHashGlblVar)); + tmphg=tmpg->heap_glbl=CAlloc(sizeof(CAOTHeapGlbl)); + tmphg->size=j; + tmphg->str=StrNew(st); + tmphg->next=aotc->heap_glbls; + aotc->heap_glbls=tmphg; + tmpg->flags=GVF_DATA_HEAP; + tmpg->type=HTT_GLBL_VAR; //TODO: HTF_EXPORT + if (tmpex && tmpex->type & HTT_GLBL_VAR) //TODO!! extern LexExcept(cc,"Feature not implemented "); } else { - tempg=CAlloc(sizeof(CHashGlblVar)); + tmpg=CAlloc(sizeof(CHashGlblVar)); if (cc->token=='=') - tempg->data_addr=CAlloc(j); - if (tempc->size>=8) //align + tmpg->data_addr=CAlloc(j); + if (tmpc->size>=8) //align while (aotc->ip&7) AOTStoreCodeU8(cc,0); - else if (tempc->size==4) + else if (tmpc->size==4) while (aotc->ip&3) AOTStoreCodeU8(cc,0); - else if (tempc->size==2) + else if (tmpc->size==2) while (aotc->ip&1) AOTStoreCodeU8(cc,0); - tempg->data_addr_ip=aotc->ip; - tempg->type=HTT_GLBL_VAR | HTF_EXPORT; - if (tempex && tempex->type & HTT_GLBL_VAR) + tmpg->data_addr_ip=aotc->ip; + tmpg->type=HTT_GLBL_VAR | HTF_EXPORT; + if (tmpex && tmpex->type & HTT_GLBL_VAR) has_alias=TRUE; if (sys_var_init_flag) for (k=0;kopts,OPTf_GLBLS_ON_DATA_HEAP)) { - tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); - tempg->data_addr=MAlloc(j); - tempg->flags=GVF_DATA_HEAP; + tmpg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tmpg->data_addr=MAlloc(j); + tmpg->flags=GVF_DATA_HEAP; } else { - tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); - tempg->data_addr=MAlloc(j,Fs->code_heap); + tmpg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tmpg->data_addr=MAlloc(j,Fs->code_heap); } - tempg->type=HTT_GLBL_VAR; - if (tempex && tempex->type&HTT_GLBL_VAR && - tempex->type&HTF_UNRESOLVED && - MHeapCtrl(tempex)==MHeapCtrl(tempg)) + tmpg->type=HTT_GLBL_VAR; + if (tmpex && tmpex->type&HTT_GLBL_VAR && + tmpex->type&HTF_UNRESOLVED && + MHeapCtrl(tmpex)==MHeapCtrl(tmpg)) has_alias=TRUE; if (sys_var_init_flag) - MemSet(tempg->data_addr,sys_var_init_val,j); + MemSet(tmpg->data_addr,sys_var_init_val,j); } } - tempg->dim.next=tempad.next; + tmpg->dim.next=tmpad.next; if (fsp_flags&FSF_PUBLIC) - tempg->type|=HTF_PUBLIC; - tempg->var_class=tempc; - tempg->str=st; - tempg->size=j; - tempg->dim.total_cnt=i; - tempg->use_cnt=0; + tmpg->type|=HTF_PUBLIC; + tmpg->var_class=tmpc; + tmpg->str=st; + tmpg->size=j; + tmpg->dim.total_cnt=i; + tmpg->use_cnt=0; if (cc->last_U16=='\n') - HashSrcFileSet(cc,tempg,-1); + HashSrcFileSet(cc,tmpg,-1); else - HashSrcFileSet(cc,tempg,0); + HashSrcFileSet(cc,tmpg,0); if (mode&255==PRS0_IMPORT || mode&255==PRS0__IMPORT) - tempg->flags|=GVF_IMPORT; + tmpg->flags|=GVF_IMPORT; if (mode&255==PRS0_EXTERN) - tempg->flags|=GVF_EXTERN; - if (tempf_fun_ptr) { - tempg->fun_ptr=tempf_fun_ptr; - tempg->flags|=GVF_FUN; + tmpg->flags|=GVF_EXTERN; + if (tmpf_fun_ptr) { + tmpg->fun_ptr=tmpf_fun_ptr; + tmpg->flags|=GVF_FUN; } if (is_array) - tempg->flags|=GVF_ARRAY; - HashAdd(tempg,cc->htc.glbl_hash_table); - if (!(cc->flags&CCF_AOT_COMPILE) && !(tempg->flags&GVF_EXTERN)) - SysSymImportsResolve(tempg->str); + tmpg->flags|=GVF_ARRAY; + HashAdd(tmpg,cc->htc.glbl_hash_table); + if (!(cc->flags&CCF_AOT_COMPILE) && !(tmpg->flags&GVF_EXTERN)) + SysSymImportsResolve(tmpg->str); if (cc->token=='=') { if (undef_array_size) { LexPush(cc); LexPush(cc); Lex(cc); - PrsGlblInit(cc,tempg,1); + PrsGlblInit(cc,tmpg,1); LexPopNoRestore(cc); - tempg->size=tempg->dim.total_cnt*tempc->size; - if (temphg) - temphg->size=tempg->size; + tmpg->size=tmpg->dim.total_cnt*tmpc->size; + if (tmphg) + tmphg->size=tmpg->size; if (cc->flags&CCF_AOT_COMPILE) { if (sys_var_init_flag) - for (k=0;ksize;k++) + for (k=0;ksize;k++) AOTStoreCodeU8(cc,sys_var_init_val); else - for (k=0;ksize;k++) + for (k=0;ksize;k++) AOTStoreCodeU8(cc,0); } else if (sys_var_init_flag) - MemSet(tempg->data_addr,sys_var_init_val,k); + MemSet(tmpg->data_addr,sys_var_init_val,k); LexPopRestore(cc); } LexPush(cc); Lex(cc); - PrsGlblInit(cc,tempg,2); + PrsGlblInit(cc,tmpg,2); if (cc->flags&CCF_AOT_COMPILE) - for (k=0;ksize;k++) - AOTStoreCodeU8At(cc,tempg->data_addr_ip+k,tempg->data_addr[k]); + for (k=0;ksize;k++) + AOTStoreCodeU8At(cc,tmpg->data_addr_ip+k,tmpg->data_addr[k]); LexPopNoRestore(cc); } if (has_alias) { - if (tempex(CHashGlblVar *)->use_cnt<2) { - PrintWarn("Unused extern '%s'\n",tempex(CHashGlblVar *)->str); + if (tmpex(CHashGlblVar *)->use_cnt<2) { + PrintWarn("Unused extern '%s'\n",tmpex(CHashGlblVar *)->str); cc->warning_cnt++; } - tempex(CHashGlblVar *)->flags|=GVF_ALIAS; - tempex(CHashGlblVar *)->data_addr=tempg->data_addr; - tempex(CHashGlblVar *)->data_addr_ip=tempg->data_addr_ip; + tmpex(CHashGlblVar *)->flags|=GVF_ALIAS; + tmpex(CHashGlblVar *)->data_addr=tmpg->data_addr; + tmpex(CHashGlblVar *)->data_addr_ip=tmpg->data_addr_ip; } if (cc->token==',') Lex(cc); @@ -536,7 +536,7 @@ U0 PrsDoWhile(CCmpCtrl *cc,I64 try_cnt) U0 PrsFor(CCmpCtrl *cc,I64 try_cnt) { - CCodeCtrl *tempcbh; + CCodeCtrl *tmpcbh; CCodeMisc *lb,*lb_done; if (cc->token!='(') @@ -559,14 +559,14 @@ U0 PrsFor(CCmpCtrl *cc,I64 try_cnt) if (cc->token!=')') PrsStmt(cc,try_cnt,NULL,0); COCPush(cc); - tempcbh=COCPopNoFree(cc); + tmpcbh=COCPopNoFree(cc); COCPop(cc); if (cc->token!=')') LexExcept(cc,"Missing ')' at "); Lex(cc); PrsStmt(cc,try_cnt,lb_done); - COCAppend(cc,tempcbh); + COCAppend(cc,tmpcbh); ICAdd(cc,IC_JMP,lb,0); ICAdd(cc,IC_LABEL,lb_done,0); } @@ -585,10 +585,10 @@ class CSwitchCase { U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) { - CSwitchCase *header=NULL,*temps,*temps1; //Leaks on except - CSubSwitch head,*tempss; //Leaks on except + CSwitchCase *header=NULL,*tmps,*tmps1; //Leaks on except + CSubSwitch head,*tmpss; //Leaks on except CCodeMisc *lb_dft,*lb_fwd_case,*mc_jt,*lb_entry,**jmp_table; - CIntermediateCode *tempi_sub,*tempi_cmp,*tempi_jmp,*tempi_start; + CIntermediateCode *tmpi_sub,*tmpi_cmp,*tmpi_jmp,*tmpi_start; Bool dft_found=FALSE,nobound; I64 i,k_start=MIN_I64,k_end,lo=MAX_I64,hi=MIN_I64,range; @@ -610,9 +610,9 @@ U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) mc_jt->begin->use_cnt++; if (!PrsExpression(cc,NULL,FALSE)) throw('Compiler'); - tempi_sub=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); + tmpi_sub=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); ICAdd(cc,IC_SUB,0,cmp.internal_types[RT_I64]); - tempi_cmp=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); + tmpi_cmp=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); if (nobound) { ICAdd(cc,IC_NOBOUND_SWITCH,mc_jt,0); if (cc->token!=']') @@ -637,30 +637,30 @@ sw_cont: Lex(cc); else LexExcept(cc,"Expecting ':' at "); - tempss=MAlloc(sizeof(CSubSwitch)); - QueIns(tempss,head.last); + tmpss=MAlloc(sizeof(CSubSwitch)); + QueIns(tmpss,head.last); head.last->lb_break=COCMiscNew(cc,CMT_LABEL); head.last->lb_break->use_cnt++; lb_fwd_case=COCMiscNew(cc,CMT_LABEL); - tempi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0); + tmpi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0); - tempss->lb_start=COCMiscNew(cc,CMT_LABEL); - tempi_start=ICAdd(cc,IC_LABEL,tempss->lb_start,0); + tmpss->lb_start=COCMiscNew(cc,CMT_LABEL); + tmpi_start=ICAdd(cc,IC_LABEL,tmpss->lb_start,0); while (cc->token && cc->token!='}') { switch (PrsKeyWord(cc)) { case KW_END: - OptFree(tempi_jmp); + OptFree(tmpi_jmp); goto sw_sub_end; case KW_START: case KW_CASE: case KW_DFT: - if (cc->coc.coc_head.last==tempi_start) { - OptFree(tempi_jmp); - tempss->lb_start=NULL; + if (cc->coc.coc_head.last==tmpi_start) { + OptFree(tmpi_jmp); + tmpss->lb_start=NULL; } else { ICAdd(cc,IC_RET,0,0); ICAdd(cc,IC_LABEL,lb_fwd_case,0); - ICAdd(cc,IC_SUB_CALL,tempss->lb_start,0);//In case fall-thru + ICAdd(cc,IC_SUB_CALL,tmpss->lb_start,0);//In case fall-thru } goto sw_cont; default: @@ -671,18 +671,18 @@ sw_cont: case KW_CASE: if (head.next!=&head) { lb_fwd_case=COCMiscNew(cc,CMT_LABEL); - tempi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0);//In case fall-thru + tmpi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0);//In case fall-thru } Lex(cc); lb_entry=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_LABEL,lb_entry,0); lb_entry->use_cnt++; if (head.next!=&head) { - tempss=head.next; - while (tempss!=&head) { - if (tempss->lb_start) - ICAdd(cc,IC_SUB_CALL,tempss->lb_start,0); - tempss=tempss->next; + tmpss=head.next; + while (tmpss!=&head) { + if (tmpss->lb_start) + ICAdd(cc,IC_SUB_CALL,tmpss->lb_start,0); + tmpss=tmpss->next; } ICAdd(cc,IC_LABEL,lb_fwd_case,0); } @@ -697,11 +697,11 @@ sw_cont: if (k_start>hi) hi=k_start; if (cc->token==':') { Lex(cc); - temps=MAlloc(sizeof(CSwitchCase)); - temps->label=lb_entry; - temps->val=k_start; - temps->next=header; - header=temps; + tmps=MAlloc(sizeof(CSwitchCase)); + tmps->label=lb_entry; + tmps->val=k_start; + tmps->next=header; + header=tmps; } else if (cc->token==TK_ELLIPSIS) { Lex(cc); k_end=LexExpressionI64(cc); @@ -712,11 +712,11 @@ sw_cont: if (k_start>k_end) SwapI64(&k_start,&k_end); for (i=k_start;i<=k_end;i++) { - temps=MAlloc(sizeof(CSwitchCase)); - temps->label=lb_entry; - temps->val=i; - temps->next=header; - header=temps; + tmps=MAlloc(sizeof(CSwitchCase)); + tmps->label=lb_entry; + tmps->val=i; + tmps->next=header; + header=tmps; } k_start=k_end; } else @@ -727,7 +727,7 @@ sw_cont: case KW_DFT: if (head.next!=&head) { lb_fwd_case=COCMiscNew(cc,CMT_LABEL); - tempi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0);//In case fall-thru + tmpi_jmp=ICAdd(cc,IC_JMP,lb_fwd_case,0);//In case fall-thru } Lex(cc); ICAdd(cc,IC_LABEL,lb_dft,0); @@ -736,11 +736,11 @@ sw_cont: else LexExcept(cc,"Expecting ':' at "); if (head.next!=&head) { - tempss=head.next; - while (tempss!=&head) { - if (tempss->lb_start) - ICAdd(cc,IC_SUB_CALL,tempss->lb_start,0); - tempss=tempss->next; + tmpss=head.next; + while (tmpss!=&head) { + if (tmpss->lb_start) + ICAdd(cc,IC_SUB_CALL,tmpss->lb_start,0); + tmpss=tmpss->next; } ICAdd(cc,IC_LABEL,lb_fwd_case,0); } @@ -751,16 +751,16 @@ sw_cont: } } sw_sub_end: - tempss=head.last; - ICAdd(cc,IC_LABEL,tempss->lb_break,0); - if (tempss==&head) { + tmpss=head.last; + ICAdd(cc,IC_LABEL,tmpss->lb_break,0); + if (tmpss==&head) { if (cc->token!='}') LexExcept(cc,"Missing '}' at "); Lex(cc); break; } else { - QueRem(tempss); - Free(tempss); + QueRem(tmpss); + Free(tmpss); if (PrsKeyWord(cc)!=KW_END) LexExcept(cc,"Missing 'end' at "); if (Lex(cc)==':') @@ -779,17 +779,17 @@ sw_sub_end: LexExcept(cc,"switch range error at "); jmp_table=MAlloc((sizeof(CCodeMisc *)*range+0x1FF)&~0x1FF); MemSetI64(jmp_table,lb_dft,range); - tempi_sub->ic_data=lo; - tempi_cmp->ic_data=range; - temps=header; - while (temps) { - temps1=temps->next; - if (jmp_table[temps->val-lo]!=lb_dft) + tmpi_sub->ic_data=lo; + tmpi_cmp->ic_data=range; + tmps=header; + while (tmps) { + tmps1=tmps->next; + if (jmp_table[tmps->val-lo]!=lb_dft) LexExcept(cc,"Duplicate case at "); else - jmp_table[temps->val-lo]=temps->label; - Free(temps); - temps=temps1; + jmp_table[tmps->val-lo]=tmps->label; + Free(tmps); + tmps=tmps1; } mc_jt->dft=lb_dft; mc_jt->jmp_table=jmp_table; @@ -798,11 +798,11 @@ sw_sub_end: U0 PrsNoWarn(CCmpCtrl *cc) { - CMemberLst *tempm; + CMemberLst *tmpm; while (cc->token==TK_IDENT) { - if (!(tempm=cc->local_var_entry)) + if (!(tmpm=cc->local_var_entry)) LexExcept(cc,"Expecting local var at "); - tempm->flags|=MLF_NO_UNUSED_WARN; + tmpm->flags|=MLF_NO_UNUSED_WARN; if (Lex(cc)==',') Lex(cc); else if (cc->token!=';') @@ -813,9 +813,9 @@ U0 PrsNoWarn(CCmpCtrl *cc) U0 PrsStreamBlk(CCmpCtrl *cc) { CLexHashTableContext *htc=MAlloc(sizeof(CLexHashTableContext)); - CStreamBlk *tempe=MAlloc(sizeof(CStreamBlk)); - tempe->body=StrNew(""); - QueIns(tempe,cc->last_stream_blk); + CStreamBlk *tmpe=MAlloc(sizeof(CStreamBlk)); + tmpe->body=StrNew(""); + QueIns(tmpe,cc->last_stream_blk); COCPush(cc); QueInit(&cc->coc.coc_next_misc); @@ -838,23 +838,23 @@ U0 PrsStreamBlk(CCmpCtrl *cc) htc->old_flags & (CCF_ASM_EXPRESSIONS|CCF_EXE_BLK|CCF_AOT_COMPILE); Free(htc); COCPop(cc); - QueRem(tempe); - if (*tempe->body) - LexIncludeStr(cc,"StreamBlk",tempe->body,FALSE); + QueRem(tmpe); + if (*tmpe->body) + LexIncludeStr(cc,"StreamBlk",tmpe->body,FALSE); else - Free(tempe->body); - Free(tempe); + Free(tmpe->body); + Free(tmpe); Lex(cc); //Skip '}' } U0 PrsTryBlk(CCmpCtrl *cc,I64 try_cnt) { CCodeMisc *lb_catch,*lb_done,*lb_untry; - CHashClass *tempc=cmp.internal_types[RT_PTR]; - CHashFun *temp_try=HashFind("SysTry",cc->htc.hash_table_lst,HTT_FUN), - *temp_untry=HashFind("SysUntry",cc->htc.hash_table_lst,HTT_FUN); + CHashClass *tmpc=cmp.internal_types[RT_PTR]; + CHashFun *tmp_try=HashFind("SysTry",cc->htc.hash_table_lst,HTT_FUN), + *tmp_untry=HashFind("SysUntry",cc->htc.hash_table_lst,HTT_FUN); - if (!temp_try || !temp_untry) + if (!tmp_try || !tmp_untry) LexExcept(cc,"Missing header for SysTry() and SysUntry() at "); cc->flags|=CCF_NO_REG_OPT; //TODO:Currently no reg vars in funs with try/catch @@ -864,37 +864,37 @@ U0 PrsTryBlk(CCmpCtrl *cc,I64 try_cnt) lb_untry=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_CALL_START,0,0); - ICAdd(cc,IC_GET_LABEL,lb_untry,tempc,ICF_PUSH_RES); - ICAdd(cc,IC_GET_LABEL,lb_catch,tempc,ICF_PUSH_RES); - if (Bt(&temp_try->flags,Cf_EXTERN)) { + ICAdd(cc,IC_GET_LABEL,lb_untry,tmpc,ICF_PUSH_RES); + ICAdd(cc,IC_GET_LABEL,lb_catch,tmpc,ICF_PUSH_RES); + if (Bt(&tmp_try->flags,Cf_EXTERN)) { cc->abs_cnts.externs++; if (cc->flags&CCF_AOT_COMPILE) - ICAdd(cc,IC_CALL_IMPORT,temp_try,tempc); + ICAdd(cc,IC_CALL_IMPORT,tmp_try,tmpc); else - ICAdd(cc,IC_CALL_INDIRECT2,&temp_try->exe_addr,tempc); + ICAdd(cc,IC_CALL_INDIRECT2,&tmp_try->exe_addr,tmpc); } else - ICAdd(cc,IC_CALL,temp_try->exe_addr,tempc); - if ((Bt(&temp_try->flags,Ff_RET1) || - Bt(&temp_try->flags,Ff_ARGPOP)) && !Bt(&temp_try->flags,Ff_NOARGPOP)) - ICAdd(cc,IC_ADD_RSP1,16,tempc); + ICAdd(cc,IC_CALL,tmp_try->exe_addr,tmpc); + if ((Bt(&tmp_try->flags,Ff_RET1) || + Bt(&tmp_try->flags,Ff_ARGPOP)) && !Bt(&tmp_try->flags,Ff_NOARGPOP)) + ICAdd(cc,IC_ADD_RSP1,16,tmpc); else - ICAdd(cc,IC_ADD_RSP,16,tempc); - ICAdd(cc,IC_CALL_END,0,tempc); + ICAdd(cc,IC_ADD_RSP,16,tmpc); + ICAdd(cc,IC_CALL_END,0,tmpc); ICAdd(cc,IC_END_EXP,0,0,ICF_RES_NOT_USED); PrsStmt(cc,try_cnt+1); ICAdd(cc,IC_LABEL,lb_untry,0); ICAdd(cc,IC_CALL_START,0,0); - if (Bt(&temp_untry->flags,Cf_EXTERN)) { + if (Bt(&tmp_untry->flags,Cf_EXTERN)) { cc->abs_cnts.externs++; if (cc->flags&CCF_AOT_COMPILE) - ICAdd(cc,IC_CALL_IMPORT,temp_untry,tempc); + ICAdd(cc,IC_CALL_IMPORT,tmp_untry,tmpc); else - ICAdd(cc,IC_CALL_INDIRECT2,&temp_untry->exe_addr,tempc); + ICAdd(cc,IC_CALL_INDIRECT2,&tmp_untry->exe_addr,tmpc); } else - ICAdd(cc,IC_CALL,temp_untry->exe_addr,tempc); - ICAdd(cc,IC_CALL_END,0,tempc); + ICAdd(cc,IC_CALL,tmp_untry->exe_addr,tmpc); + ICAdd(cc,IC_CALL_END,0,tmpc); ICAdd(cc,IC_END_EXP,0,0,ICF_RES_NOT_USED); ICAdd(cc,IC_JMP,lb_done,0); @@ -905,7 +905,7 @@ U0 PrsTryBlk(CCmpCtrl *cc,I64 try_cnt) Lex(cc); ICAdd(cc,IC_LABEL,lb_catch,0); PrsStmt(cc,try_cnt+1); - ICAdd(cc,IC_RET,0,tempc); + ICAdd(cc,IC_RET,0,tmpc); ICAdd(cc,IC_LABEL,lb_done,0); } @@ -913,16 +913,16 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, CCodeMisc *lb_break=NULL,I64 cmp_flags=CMPF_PRS_SEMICOLON) { I64 i,fsp_flags=0; - CHashExport *tempex; + CHashExport *tmpex; CCodeMisc *g_lb; U8 *import_name; - CHashFun *temp_untry; - CAOT *tempaot; + CHashFun *tmp_untry; + CAOT *tmpaot; if (cmp_flags&CMPF_ONE_ASM_INS) { if (cc->flags&CCF_AOT_COMPILE || cc->aot_depth) PrsAsmBlk(cc,CMPF_ONE_ASM_INS); - else if (tempaot=CmpJoin(cc,CMPF_ASM_BLK|CMPF_ONE_ASM_INS)) - CmpFixUpJITAsm(cc,tempaot); + else if (tmpaot=CmpJoin(cc,CMPF_ASM_BLK|CMPF_ONE_ASM_INS)) + CmpFixUpJITAsm(cc,tmpaot); fsp_flags=FSF_ASM; } else while (TRUE) { @@ -941,9 +941,9 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, if (cc->token!=',') goto sm_done; } else { if (cc->token==TK_IDENT) { - if (tempex=cc->hash_entry) { - if (tempex->type & HTT_KEYWORD) { - i=tempex(CHashGeneric *)->user_data0; + if (tmpex=cc->hash_entry) { + if (tmpex->type & HTT_KEYWORD) { + i=tmpex(CHashGeneric *)->user_data0; switch [i] { case KW_NUM_KEYWORDS-1: //nobound switch default: //A keyword that is not valid here is just a symbol. @@ -951,8 +951,8 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, start: case KW_ASM: if (cc->htc.fun) { - if (tempaot=CmpJoin(cc,CMPF_ASM_BLK)) - ICAdd(cc,IC_ASM,tempaot,0); + if (tmpaot=CmpJoin(cc,CMPF_ASM_BLK)) + ICAdd(cc,IC_ASM,tmpaot,0); Lex(cc); //Skip '}' of asm{} } else { if (cc->flags&CCF_AOT_COMPILE || cc->aot_depth) { @@ -961,8 +961,8 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, if (cc->flags&CCF_AOT_COMPILE && cc->aot_depth==1) Lex(cc); //Skip '}' of asm{} } else { - if (tempaot=CmpJoin(cc,CMPF_ASM_BLK)) - CmpFixUpJITAsm(cc,tempaot); + if (tmpaot=CmpJoin(cc,CMPF_ASM_BLK)) + CmpFixUpJITAsm(cc,tmpaot); Lex(cc); //Skip '}' of asm{} } fsp_flags=FSF_ASM; @@ -1004,18 +1004,18 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, case KW__EXTERN: if (Bt(&cc->opts,OPTf_EXTERNS_TO_IMPORTS)) goto sm_underscore_import; - if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || - !(tempex->type & HTT_EXPORT_SYS_SYM)) + if (cc->token!=TK_IDENT || !(tmpex=cc->hash_entry) || + !(tmpex->type & HTT_EXPORT_SYS_SYM)) LexExcept(cc,"Expecting system sym at "); if (*cc->cur_str=='_') fsp_flags|=FSF__; - i=tempex->val; + i=tmpex->val; Lex(cc); - if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || - !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (cc->token!=TK_IDENT || !(tmpex=cc->hash_entry) || + !(tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); Lex(cc); - PrsGlblVarLst(cc,PRS0__EXTERN|PRS1_NULL,tempex,i,fsp_flags); + PrsGlblVarLst(cc,PRS0__EXTERN|PRS1_NULL,tmpex,i,fsp_flags); break; case KW__IMPORT: sm_underscore_import: @@ -1025,18 +1025,18 @@ sm_underscore_import: fsp_flags|=FSF__; import_name=cc->cur_str; cc->cur_str=0; - if (Lex(cc)!=TK_IDENT || !(tempex=cc->hash_entry) || - !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (Lex(cc)!=TK_IDENT || !(tmpex=cc->hash_entry) || + !(tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); Lex(cc); - PrsGlblVarLst(cc,PRS0__IMPORT|PRS1_NULL,tempex, + PrsGlblVarLst(cc,PRS0__IMPORT|PRS1_NULL,tmpex, import_name,fsp_flags); Free(import_name); break; case KW_EXTERN: if (cc->token!=TK_IDENT) LexExcept(cc,"Expecting type at "); - tempex=cc->hash_entry; + tmpex=cc->hash_entry; i=PrsKeyWord(cc); if (i==KW_CLASS||i==KW_UNION) { Lex(cc); @@ -1044,29 +1044,29 @@ sm_underscore_import: fsp_flags&=FSF_ASM; goto sm_semicolon; } - if (!tempex || - !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (!tmpex || + !(tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); if (Bt(&cc->opts,OPTf_EXTERNS_TO_IMPORTS)) goto sm_import; Lex(cc); - PrsGlblVarLst(cc,PRS0_EXTERN|PRS1_NULL,tempex,0,fsp_flags); + PrsGlblVarLst(cc,PRS0_EXTERN|PRS1_NULL,tmpex,0,fsp_flags); break; case KW_IMPORT: - if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || - !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (cc->token!=TK_IDENT || !(tmpex=cc->hash_entry) || + !(tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); sm_import: Lex(cc); - PrsGlblVarLst(cc,PRS0_IMPORT|PRS1_NULL,tempex,0,fsp_flags); + PrsGlblVarLst(cc,PRS0_IMPORT|PRS1_NULL,tmpex,0,fsp_flags); break; case KW__INTERN: i=LexExpressionI64(cc); - if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || - !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (cc->token!=TK_IDENT || !(tmpex=cc->hash_entry) || + !(tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); Lex(cc); - PrsGlblVarLst(cc,PRS0__INTERN|PRS1_NULL,tempex,i,fsp_flags); + PrsGlblVarLst(cc,PRS0__INTERN|PRS1_NULL,tmpex,i,fsp_flags); break; end: fsp_flags&=FSF_ASM; @@ -1098,20 +1098,20 @@ sm_import: if (!cc->htc.fun) LexExcept(cc,"Not in fun. Can't return a val "); if (try_cnt) { - temp_untry=HashFind("SysUntry", + tmp_untry=HashFind("SysUntry", cc->htc.hash_table_lst,HTT_FUN); for (i=0;iflags,Cf_EXTERN)) { + if (Bt(&tmp_untry->flags,Cf_EXTERN)) { cc->abs_cnts.externs++; if (cc->flags&CCF_AOT_COMPILE) ICAdd(cc,IC_CALL_IMPORT, - temp_untry,cmp.internal_types[RT_PTR]); + tmp_untry,cmp.internal_types[RT_PTR]); else ICAdd(cc,IC_CALL_INDIRECT2, - &temp_untry->exe_addr, + &tmp_untry->exe_addr, cmp.internal_types[RT_PTR]); } else - ICAdd(cc,IC_CALL,temp_untry->exe_addr, + ICAdd(cc,IC_CALL,tmp_untry->exe_addr, cmp.internal_types[RT_PTR]); } } @@ -1151,9 +1151,9 @@ sm_import: case KW_UNION: case KW_CLASS: Lex(cc); - tempex=PrsClass(cc,i,fsp_flags,FALSE); + tmpex=PrsClass(cc,i,fsp_flags,FALSE); if (!cc->htc.fun && cc->token!=';') { - PrsGlblVarLst(cc,PRS0_NULL|PRS1_NULL,tempex,0,fsp_flags); + PrsGlblVarLst(cc,PRS0_NULL|PRS1_NULL,tmpex,0,fsp_flags); fsp_flags&=FSF_ASM; break; } else { @@ -1163,7 +1163,7 @@ sm_import: } } else {//Ident, found in hash table, not keyword sm_not_keyword_afterall: - if (tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) { + if (tmpex->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) { if (cc->htc.fun) { if (fsp_flags&FSF_STATIC) PrsVarLst(cc,cc->htc.fun,PRS0_NULL|PRS1_STATIC_LOCAL_VAR); @@ -1172,13 +1172,13 @@ sm_not_keyword_afterall: if (cc->token=='}') goto sm_done; } else { Lex(cc); - PrsGlblVarLst(cc,PRS0_NULL|PRS1_NULL,tempex,0,fsp_flags); + PrsGlblVarLst(cc,PRS0_NULL|PRS1_NULL,tmpex,0,fsp_flags); } } else { - if (tempex->type & (HTT_OPCODE|HTT_ASM_KEYWORD)) { + if (tmpex->type & (HTT_OPCODE|HTT_ASM_KEYWORD)) { if (cc->htc.fun) { - if (tempaot=CmpJoin(cc,CMPF_ASM_BLK|CMPF_ONE_ASM_INS)) - ICAdd(cc,IC_ASM,tempaot,0); + if (tmpaot=CmpJoin(cc,CMPF_ASM_BLK|CMPF_ONE_ASM_INS)) + ICAdd(cc,IC_ASM,tmpaot,0); } else LexExcept(cc,"Use Asm Blk at "); if (cc->token!=',') goto sm_done; diff --git a/Compiler/PrsVar.HC b/Compiler/PrsVar.HC index d5843b6..84ecb83 100644 --- a/Compiler/PrsVar.HC +++ b/Compiler/PrsVar.HC @@ -1,37 +1,37 @@ -U0 PrsVarInit(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc,CArrayDim *tempad, +U0 PrsVarInit(CCmpCtrl *cc,U8 **_dst,CHashClass *tmpc,CArrayDim *tmpad, U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass) { U8 *dst=*_dst,*machine_code; I64 i,j,r,old_flags,type,size; - CMemberLst *tempm; - CIntermediateCode *tempi; + CMemberLst *tmpm; + CIntermediateCode *tmpi; CAOTCtrl *aotc=cc->aotc; - CAOTAbsAddr *tempa; - CAOTImportExport *tempie; + CAOTAbsAddr *tmpa; + CAOTImportExport *tmpie; Bool is_str; - tempc=OptClassFwd(tempc); - if (tempm=tempc->member_lst_and_root) { + tmpc=OptClassFwd(tmpc); + if (tmpm=tmpc->member_lst_and_root) { if (cc->token!='{') LexExcept(cc,"Expecting '{' at "); LexPopNoRestore(cc); LexPush(cc); Lex(cc); - while (tempm) { - PrsVarInit2(cc,&dst,tempm->member_class,&tempm->dim, + while (tmpm) { + PrsVarInit2(cc,&dst,tmpm->member_class,&tmpm->dim, data_addr_ip,_base,data_heap,pass); if (cc->token==',') Lex(cc); - tempm=tempm->next; + tmpm=tmpm->next; } LexPopNoRestore(cc); if (cc->token!='}') LexExcept(cc,"Missing '}' at "); Lex(cc); } else { - if (tempc->ptr_stars_cnt==1 && - ((tempc-1)->raw_type==RT_I8 || (tempc-1)->raw_type==RT_U8) && - !tempad && cc->token==TK_STR) + if (tmpc->ptr_stars_cnt==1 && + ((tmpc-1)->raw_type==RT_I8 || (tmpc-1)->raw_type==RT_U8) && + !tmpad && cc->token==TK_STR) is_str=TRUE; else is_str=FALSE; @@ -39,11 +39,11 @@ U0 PrsVarInit(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc,CArrayDim *tempad, LexPopNoRestore(cc); machine_code=LexExtStr(cc,&i); if (pass==2) { - tempa=CAlloc(sizeof(CAOTAbsAddr)); - tempa->next=aotc->abss; - tempa->type=AAT_ADD_U64; - aotc->abss=tempa; - tempa->ip=data_addr_ip+dst-*_base; + tmpa=CAlloc(sizeof(CAOTAbsAddr)); + tmpa->next=aotc->abss; + tmpa->type=AAT_ADD_U64; + aotc->abss=tmpa; + tmpa->ip=data_addr_ip+dst-*_base; *dst(I64 *)=aotc->ip; for (j=0;jflags=cc->flags&~CCF_NO_ABSS|CCF_AOT_COMPILE; Free(machine_code); if (pass==2) { - MemSet(dst,0,tempc->size); + MemSet(dst,0,tmpc->size); LexPopRestore(cc); Lex(cc); COCPush(cc); COCInit(cc); - ICAdd(cc,IC_ABS_ADDR,data_addr_ip,tempc+1); - ICAdd(cc,IC_IMM_I64,dst-*_base,tempc+1); - ICAdd(cc,IC_ADD,0,tempc+1); + ICAdd(cc,IC_ABS_ADDR,data_addr_ip,tmpc+1); + ICAdd(cc,IC_IMM_I64,dst-*_base,tmpc+1); + ICAdd(cc,IC_ADD,0,tmpc+1); if (!PrsExpression(cc,NULL,TRUE)) throw('Compiler'); - tempi=cc->coc.coc_head.last; - if (tempi->ic_code==IC_END_EXP) { - tempi->ic_code=IC_NOP1; - tempi->ic_flags=0; + tmpi=cc->coc.coc_head.last; + if (tmpi->ic_code==IC_END_EXP) { + tmpi->ic_code=IC_NOP1; + tmpi->ic_flags=0; } - ICAdd(cc,IC_ASSIGN,0,tempc); - ICAdd(cc,IC_END_EXP,0,tempc,ICF_RES_NOT_USED); + ICAdd(cc,IC_ASSIGN,0,tmpc); + ICAdd(cc,IC_END_EXP,0,tmpc,ICF_RES_NOT_USED); ICAdd(cc,IC_RET,0,0); if (machine_code=COCCompile(cc,&size,NULL,NULL)) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_MAIN; - tempie->ip=cc->aotc->ip; - QueIns(tempie,cc->aot->last_ie); + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_MAIN; + tmpie->ip=cc->aotc->ip; + QueIns(tmpie,cc->aot->last_ie); for (i=0;iraw_type!=RT_F64) + tmpc->raw_type!=RT_F64) r=r(F64); else if (type!=RT_F64 && - tempc->raw_type==RT_F64) + tmpc->raw_type==RT_F64) r(F64)=r; - MemCpy(dst,&r,tempc->size); + MemCpy(dst,&r,tmpc->size); } } - dst+=tempc->size; + dst+=tmpc->size; cc->flags=cc->flags& ~CCF_NO_ABSS|old_flags&(CCF_HAS_MISC_DATA|CCF_AOT_COMPILE); } @@ -120,23 +120,23 @@ class CVI2 U0 base; }; -U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc, - CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass) +U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tmpc, + CArrayDim *tmpad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass) { I64 i,j,cnt; U8 *st,*_b; - CVI2 head,*tempvi,*tempvi1; - CArrayDim *tempad1; - tempc=OptClassFwd(tempc); - if (tempad1=tempad->next) { - if (!tempc->ptr_stars_cnt && - (tempc->raw_type==RT_I8 || tempc->raw_type==RT_U8) && + CVI2 head,*tmpvi,*tmpvi1; + CArrayDim *tmpad1; + tmpc=OptClassFwd(tmpc); + if (tmpad1=tmpad->next) { + if (!tmpc->ptr_stars_cnt && + (tmpc->raw_type==RT_I8 || tmpc->raw_type==RT_U8) && cc->token==TK_STR) { LexPopNoRestore(cc); st=LexExtStr(cc,&i); - if (tempad1->cnt<0) {//[] - tempad1->cnt=i; - tempad->total_cnt=i*tempad1->total_cnt; + if (tmpad1->cnt<0) {//[] + tmpad1->cnt=i; + tmpad->total_cnt=i*tmpad1->total_cnt; Free(*_base); if (data_heap) *_base=MAlloc(i); @@ -145,8 +145,8 @@ U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc, MemCpy(*_base,st,i); *_dst=*_base+i; } else { - MemCpy(*_dst,st,tempad1->cnt); - *_dst+=tempad1->cnt; + MemCpy(*_dst,st,tmpad1->cnt); + *_dst+=tmpad1->cnt; } Free(st); LexPush(cc); @@ -156,41 +156,41 @@ U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc, LexPush(cc); Lex(cc); } - if (tempad1->cnt<0) {//[] + if (tmpad1->cnt<0) {//[] QueInit(&head); cnt=0; while (cc->token!='}') { - tempvi=MAlloc(offset(CVI2.base)+tempad1->total_cnt*tempc->size); - _b=&tempvi->base; - PrsVarInit2(cc,&_b,tempc,tempad1,data_addr_ip,_base,data_heap,pass); - QueIns(tempvi,head.last); + tmpvi=MAlloc(offset(CVI2.base)+tmpad1->total_cnt*tmpc->size); + _b=&tmpvi->base; + PrsVarInit2(cc,&_b,tmpc,tmpad1,data_addr_ip,_base,data_heap,pass); + QueIns(tmpvi,head.last); if (cc->token==',') Lex(cc); cnt++; } Lex(cc); //skip '}' - tempad1->cnt=cnt; - tempad->total_cnt=cnt*tempad1->total_cnt; - j=tempad1->total_cnt*tempc->size; + tmpad1->cnt=cnt; + tmpad->total_cnt=cnt*tmpad1->total_cnt; + j=tmpad1->total_cnt*tmpc->size; i=cnt*j; Free(*_base); if (data_heap) *_base=_b=MAlloc(i); else *_base=_b=MAlloc(i,Fs->code_heap); - tempvi=head.next; - while (tempvi!=&head) { - tempvi1=tempvi->next; - MemCpy(_b,&tempvi->base,j); + tmpvi=head.next; + while (tmpvi!=&head) { + tmpvi1=tmpvi->next; + MemCpy(_b,&tmpvi->base,j); _b+=j; - Free(tempvi); - tempvi=tempvi1; + Free(tmpvi); + tmpvi=tmpvi1; } *_dst=_b; } else { - for (i=0;icnt;i++) { - PrsVarInit2(cc,_dst,tempc,tempad1,data_addr_ip,_base,data_heap,pass); - if (tempad1->cnt>1 && cc->token==',') + for (i=0;icnt;i++) { + PrsVarInit2(cc,_dst,tmpc,tmpad1,data_addr_ip,_base,data_heap,pass); + if (tmpad1->cnt>1 && cc->token==',') Lex(cc); } if (cc->token=='}') @@ -198,42 +198,42 @@ U0 PrsVarInit2(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc, } } } else { - PrsVarInit(cc,_dst,tempc,tempad1,data_addr_ip,_base,data_heap,pass); + PrsVarInit(cc,_dst,tmpc,tmpad1,data_addr_ip,_base,data_heap,pass); LexPush(cc); } } -U0 PrsGlblInit(CCmpCtrl *cc,CHashGlblVar *tempg,I64 pass) +U0 PrsGlblInit(CCmpCtrl *cc,CHashGlblVar *tmpg,I64 pass) { - U8 *dst=tempg->data_addr; - PrsVarInit2(cc,&dst,tempg->var_class,&tempg->dim, - tempg->data_addr_ip,&tempg->data_addr, + U8 *dst=tmpg->data_addr; + PrsVarInit2(cc,&dst,tmpg->var_class,&tmpg->dim, + tmpg->data_addr_ip,&tmpg->data_addr, Bt(&cc->opts,OPTf_GLBLS_ON_DATA_HEAP)|| Bt(&cc->flags,CCf_AOT_COMPILE),pass); } -U0 PrsStaticInit(CCmpCtrl *cc,CMemberLst *tempm,I64 pass) +U0 PrsStaticInit(CCmpCtrl *cc,CMemberLst *tmpm,I64 pass) { - U8 *machine_code,*dst=tempm->static_data; - CHashClass *tempc=tempm->member_class; + U8 *machine_code,*dst=tmpm->static_data; + CHashClass *tmpc=tmpm->member_class; I64 i,size; - CAOTImportExport *tempie; + CAOTImportExport *tmpie; if (cc->flags&CCF_AOT_COMPILE && pass==2) { COCPush(cc); COCInit(cc); } - PrsVarInit2(cc,&dst,tempc,&tempm->dim,tempm->static_data_ip, - &tempm->static_data,Bt(&cc->flags,CCf_AOT_COMPILE),pass); + PrsVarInit2(cc,&dst,tmpc,&tmpm->dim,tmpm->static_data_ip, + &tmpm->static_data,Bt(&cc->flags,CCf_AOT_COMPILE),pass); if (cc->flags&CCF_AOT_COMPILE && pass==2) { if (cc->coc.coc_head.next!=&cc->coc.coc_head) { ICAdd(cc,IC_RET,0,0); if (machine_code=COCCompile(cc,&size,NULL,NULL)) { if (pass==2) { - tempie=CAlloc(sizeof(CAOTImportExport)); - tempie->type=IET_MAIN; - tempie->ip=cc->aotc->ip; - QueIns(tempie,cc->aot->last_ie); + tmpie=CAlloc(sizeof(CAOTImportExport)); + tmpie->type=IET_MAIN; + tmpie->ip=cc->aotc->ip; + QueIns(tmpie,cc->aot->last_ie); for (i=0;inext!=0 for array - CArrayDim *tempad,*tempad1; + CArrayDim *tmpad,*tmpad1; I64 j; Bool res=TRUE; dim->next=NULL; dim->cnt=0; dim->total_cnt=1; - tempad1=&dim->next; + tmpad1=&dim->next; if (cc->token=='[') { if (mode.u8[1]==PRS1B_FUN_ARG) LexExcept(cc,"No arrays in fun args at "); @@ -265,17 +265,17 @@ Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) if ((j=LexExpressionI64(cc))<0) LexExcept(cc,"Invalid array size at "); } - tempad1=&dim->next; - while (tempad1->next) { - tempad1->next->total_cnt*=j; - tempad1=tempad1->next; + tmpad1=&dim->next; + while (tmpad1->next) { + tmpad1->next->total_cnt*=j; + tmpad1=tmpad1->next; } - tempad=MAlloc(sizeof(CArrayDim)); - tempad1->next=tempad; - tempad1=tempad; - tempad->next=NULL; - tempad->cnt=j; - tempad->total_cnt=1; + tmpad=MAlloc(sizeof(CArrayDim)); + tmpad1->next=tmpad; + tmpad1=tmpad; + tmpad->next=NULL; + tmpad->cnt=j; + tmpad->total_cnt=1; dim->total_cnt*=j; if (cc->token!=']') LexExcept(cc,"Missing ']' at "); @@ -284,18 +284,18 @@ Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) return res; } -CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, - I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr, - CHashExport **_tempex,CArrayDim *tempad,I64 fsp_flags) +CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, + I64 *_mode,CMemberLst *tmpm,U8 **_ident,CHashFun **_fun_ptr, + CHashExport **_tmpex,CArrayDim *tmpad,I64 fsp_flags) { I64 k,ptr_stars_cnt,mode=*_mode; - CHashClass *tempc1=*_tempc1,*tempc2; + CHashClass *tmpc1=*_tmpc1,*tmpc2; CHashFun *fun_ptr=NULL; - CHashExport *tempex=NULL; - CArrayDim *tempad2; + CHashExport *tmpex=NULL; + CArrayDim *tmpad2; pt_start: - if (!tempc1 || !(tempc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (!tmpc1 || !(tmpc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Invalid class at "); ptr_stars_cnt=0; @@ -305,7 +305,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, LexPush(cc); } Lex(cc); - tempc1++; + tmpc1++; if (++ptr_stars_cnt>MAX_PTR_STARS) LexExcept(cc,"Too many *'s at "); } @@ -313,10 +313,10 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, k=PrsKeyWord(cc); if (k==KW_UNION || k==KW_CLASS) { Lex(cc); - tempc2=PrsClass(cc,k,fsp_flags,mode&255==PRS0_EXTERN); - tempc2->fwd_class=tempc1; - tempc1=tempc2; - if (_tempc1) *_tempc1=tempc1; + tmpc2=PrsClass(cc,k,fsp_flags,mode&255==PRS0_EXTERN); + tmpc2->fwd_class=tmpc1; + tmpc1=tmpc2; + if (_tmpc1) *_tmpc1=tmpc1; mode=PRS0_NULL|PRS1_NULL; goto pt_start; } @@ -334,7 +334,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, if (_ident) { if (cc->token==TK_IDENT) { - tempex=cc->hash_entry; + tmpex=cc->hash_entry; *_ident=cc->cur_str; cc->cur_str=NULL; Lex(cc); @@ -342,9 +342,9 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, if (!mode.u8[1]) *_ident=NULL; else if (cc->token==',' || cc->token==';' || cc->token==')') { - tempex=NULL; + tmpex=NULL; *_ident=StrNew("_anon_"); - tempm->flags|=MLF_NO_UNUSED_WARN; + tmpm->flags|=MLF_NO_UNUSED_WARN; } else LexExcept(cc,"Expecting identifier at "); } @@ -355,71 +355,71 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, LexExcept(cc,"Missing ')' at "); if (Lex(cc)!='(') LexExcept(cc,"Expecting '(' at "); - fun_ptr=PrsFunJoin(cc,tempc1,NULL,fsp_flags)+ptr_stars_cnt; - tempc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt; + fun_ptr=PrsFunJoin(cc,tmpc1,NULL,fsp_flags)+ptr_stars_cnt; + tmpc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt; } - if (!PrsArrayDims(cc,mode,tempad) && cc->token!='=') { - tempc1++; - tempad2=tempad->next->next; - Free(tempad->next); - tempad->next=tempad2; + if (!PrsArrayDims(cc,mode,tmpad) && cc->token!='=') { + tmpc1++; + tmpad2=tmpad->next->next; + Free(tmpad->next); + tmpad->next=tmpad2; } - tempc2=OptClassFwd(tempc1); - if (tempc2->ptr_stars_cnt) { - tempc2-=tempc2->ptr_stars_cnt; - if (tempc2->type&HTT_INTERNAL_TYPE && !tempc2->size) + tmpc2=OptClassFwd(tmpc1); + if (tmpc2->ptr_stars_cnt) { + tmpc2-=tmpc2->ptr_stars_cnt; + if (tmpc2->type&HTT_INTERNAL_TYPE && !tmpc2->size) LexWarn(cc,"use \"U8 *\" instead of \"U0 *\" at "); } if (_mode) *_mode=mode; if (_fun_ptr) *_fun_ptr=fun_ptr; - if (_tempex) *_tempex=tempex; - return tempc1; + if (_tmpex) *_tmpex=tmpex; + return tmpc1; } -U0 PrsDotDotDot(CCmpCtrl *cc,CHashFun *tempf,I64 _reg) +U0 PrsDotDotDot(CCmpCtrl *cc,CHashFun *tmpf,I64 _reg) { - CMemberLst *tempm; - CArrayDim *tempad; + CMemberLst *tmpm; + CArrayDim *tmpad; - Bts(&tempf->flags,Ff_DOT_DOT_DOT); + Bts(&tmpf->flags,Ff_DOT_DOT_DOT); Lex(cc); - tempm=MemberLstNew(_reg); - tempm->flags=MLF_DOT_DOT_DOT; - tempm->member_class=cmp.internal_types[RT_I64]; - tempm->str=StrNew("argc"); - tempm->offset=tempf->size; - tempm->size=8; - tempf->size+=8; - MemberAdd(cc,tempm,tempf,PRS1B_FUN_ARG); + tmpm=MemberLstNew(_reg); + tmpm->flags=MLF_DOT_DOT_DOT; + tmpm->member_class=cmp.internal_types[RT_I64]; + tmpm->str=StrNew("argc"); + tmpm->offset=tmpf->size; + tmpm->size=8; + tmpf->size+=8; + MemberAdd(cc,tmpm,tmpf,PRS1B_FUN_ARG); - tempm=MemberLstNew(_reg); - tempm->flags=MLF_DOT_DOT_DOT; - tempm->member_class=cmp.internal_types[RT_I64]; - tempm->str=StrNew("argv"); - tempm->dim.total_cnt=127; //arbitrary - tempm->dim.next=tempad=MAlloc(sizeof(CArrayDim)); - tempad->next=NULL; - tempad->cnt=127; //arbitrary - tempad->total_cnt=1; - tempm->offset=tempf->size; - tempm->size=8; //Close enough - tempf->size+=8;//Close enough - MemberAdd(cc,tempm,tempf,PRS1B_FUN_ARG); + tmpm=MemberLstNew(_reg); + tmpm->flags=MLF_DOT_DOT_DOT; + tmpm->member_class=cmp.internal_types[RT_I64]; + tmpm->str=StrNew("argv"); + tmpm->dim.total_cnt=127; //arbitrary + tmpm->dim.next=tmpad=MAlloc(sizeof(CArrayDim)); + tmpad->next=NULL; + tmpad->cnt=127; //arbitrary + tmpad->total_cnt=1; + tmpm->offset=tmpf->size; + tmpm->size=8; //Close enough + tmpf->size+=8;//Close enough + MemberAdd(cc,tmpm,tmpf,PRS1B_FUN_ARG); if (cc->token==')') Lex(cc); } -U0 PrsVarLst(CCmpCtrl *cc,CHashClass *tempc,I64 mode,I64 union_base=0) +U0 PrsVarLst(CCmpCtrl *cc,CHashClass *tmpc,I64 mode,I64 union_base=0) { I64 i,k,old_flags=cc->flags,old_flags2,type,_reg; - CHashClass *tempc1,*tempc2; - CHash *temph; - CMemberLst *tempm; - CMemberLstMeta *temp_meta; + CHashClass *tmpc1,*tmpc2; + CHash *tmph; + CMemberLst *tmpm; + CMemberLstMeta *tmp_meta; U8 *machine_code; Bool undef_array_size,first; cc->flags|=CCF_DONT_MAKE_RES; @@ -434,18 +434,18 @@ U0 PrsVarLst(CCmpCtrl *cc,CHashClass *tempc,I64 mode,I64 union_base=0) if (mode&PRSF_UNION) cc->class_ip=union_base; else - cc->class_ip=tempc->size; + cc->class_ip=tmpc->size; while (cc->token=='$$') { if (Lex(cc)!='=') //skip $$ LexExcept(cc,"Expecting '=' at "); Lex(cc); //skip = cc->class_ip=LexExpression(cc); - if (-cc->class_ip>tempc->neg_offset) - tempc->neg_offset=-cc->class_ip; + if (-cc->class_ip>tmpc->neg_offset) + tmpc->neg_offset=-cc->class_ip; if (mode&PRSF_UNION) union_base=cc->class_ip; else - tempc->size=cc->class_ip; + tmpc->size=cc->class_ip; if (cc->token!=';') LexExcept(cc,"Missing ';' at"); Lex(cc); //skip ; @@ -474,44 +474,44 @@ pvl_restart1: } if (cc->token==TK_ELLIPSIS && mode.u8[1]==PRS1B_FUN_ARG) { - PrsDotDotDot(cc,tempc,_reg); + PrsDotDotDot(cc,tmpc,_reg); goto pvl_done; } if (cc->token==TK_IDENT) - temph=cc->hash_entry; + tmph=cc->hash_entry; else - temph=NULL; - if (!temph) + tmph=NULL; + if (!tmph) LexExcept(cc,"Expecting type at "); k=PrsKeyWord(cc); if (k==KW_UNION) { Lex(cc); - PrsVarLst(cc,tempc,mode|PRSF_UNION,tempc->size); + PrsVarLst(cc,tmpc,mode|PRSF_UNION,tmpc->size); } else { - if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + if (!(tmph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) LexExcept(cc,"Expecting type at "); first=TRUE; pvl_restart2: - tempc1=temph; + tmpc1=tmph; LexPush(cc); Lex(cc); //skip type or ',' - tempm=MemberLstNew(_reg); + tmpm=MemberLstNew(_reg); _reg=REG_UNDEF; if (mode.u8[1]==PRS1B_STATIC_LOCAL_VAR) { - tempm->flags|=MLF_STATIC; - tempm->reg=REG_NONE; + tmpm->flags|=MLF_STATIC; + tmpm->reg=REG_NONE; } if (mode.u8[1]==PRS1B_FUN_ARG || mode.u8[1]==PRS1B_LOCAL_VAR) { pvl_restart3: switch (PrsKeyWord(cc)) { case KW_REG: - tempm->reg=REG_ALLOC; + tmpm->reg=REG_ALLOC; LexPopNoRestore(cc); LexPush(cc); if (Lex(cc)==TK_IDENT) { k=DefineMatch(cc->cur_str,"ST_U64_REGS"); if (k>=0) { - tempm->reg=k; + tmpm->reg=k; LexPopNoRestore(cc); LexPush(cc); Lex(cc); @@ -519,25 +519,25 @@ pvl_restart3: } goto pvl_restart3; case KW_NOREG: - tempm->reg=REG_NONE; + tmpm->reg=REG_NONE; LexPopNoRestore(cc); LexPush(cc); Lex(cc); goto pvl_restart3; } } - tempm->member_class=PrsType(cc,&tempc1,&mode,tempm,&tempm->str, - &tempm->fun_ptr,NULL,&tempm->dim,0); - if (tempm->fun_ptr) - tempm->flags|=MLF_FUN; + tmpm->member_class=PrsType(cc,&tmpc1,&mode,tmpm,&tmpm->str, + &tmpm->fun_ptr,NULL,&tmpm->dim,0); + if (tmpm->fun_ptr) + tmpm->flags|=MLF_FUN; if (first) - MemberAdd(cc,tempm,tempc,mode.u8[1]); + MemberAdd(cc,tmpm,tmpc,mode.u8[1]); else - MemberAdd(cc,tempm,tempc,PRS1B_NULL); - tempc->member_cnt++; + MemberAdd(cc,tmpm,tmpc,PRS1B_NULL); + tmpc->member_cnt++; - tempc2=tempm->member_class; - i=tempc2->size*tempm->dim.total_cnt; + tmpc2=tmpm->member_class; + i=tmpc2->size*tmpm->dim.total_cnt; switch (mode.u8[1]) { case PRS1B_STATIC_LOCAL_VAR: if (i<0) { @@ -549,11 +549,11 @@ pvl_restart3: LexExcept(cc,"Static unions are not implemented "); k=(i+7)&~7; if (cc->flags&CCF_AOT_COMPILE) - tempm->static_data=MAlloc(k); + tmpm->static_data=MAlloc(k); else - tempm->static_data=MAlloc(k,Fs->code_heap); + tmpm->static_data=MAlloc(k,Fs->code_heap); if (cc->flags&CCF_AOT_COMPILE) { - tempm->static_data_ip=cc->aotc->ip; + tmpm->static_data_ip=cc->aotc->ip; k>>=3; if (sys_var_init_flag) { k<<=3; @@ -564,7 +564,7 @@ pvl_restart3: AOTStoreCodeU64(cc,0); } else if (sys_var_init_flag) - MemSet(tempm->static_data,sys_var_init_val,k); + MemSet(tmpm->static_data,sys_var_init_val,k); LexPopNoRestore(cc); if (cc->token=='=') { cc->flags=cc->flags& @@ -573,9 +573,9 @@ pvl_restart3: LexPush(cc); LexPush(cc); Lex(cc); //skip = - PrsStaticInit(cc,tempm,1); + PrsStaticInit(cc,tmpm,1); LexPopNoRestore(cc); - i=tempc2->size*tempm->dim.total_cnt; + i=tmpc2->size*tmpm->dim.total_cnt; k=(i+7)&~7; if (cc->flags&CCF_AOT_COMPILE) { k>>=3; @@ -588,40 +588,40 @@ pvl_restart3: AOTStoreCodeU64(cc,0); } else if (sys_var_init_flag) - MemSet(tempm->static_data,sys_var_init_val,k); + MemSet(tmpm->static_data,sys_var_init_val,k); LexPopRestore(cc); } LexPush(cc); Lex(cc); //skip = - PrsStaticInit(cc,tempm,2); + PrsStaticInit(cc,tmpm,2); LexPopNoRestore(cc); if (cc->flags&CCF_AOT_COMPILE) for (k=0;kstatic_data_ip+k, - tempm->static_data[k]); - tempm->use_cnt=0; + AOTStoreCodeU8At(cc,tmpm->static_data_ip+k, + tmpm->static_data[k]); + tmpm->use_cnt=0; cc->flags|=CCF_DONT_MAKE_RES; } if (cc->flags&CCF_AOT_COMPILE) - Free(tempm->static_data); + Free(tmpm->static_data); break; case PRS1B_LOCAL_VAR: if (mode&PRSF_UNION) { - if (union_base-tempc->sizesize; + if (union_base-tmpc->sizesize; else i=0; } if (i>=8) - tempc->size=(tempc->size-i)&~7; + tmpc->size=(tmpc->size-i)&~7; else if (i>=4) - tempc->size=(tempc->size-i)&~3; + tmpc->size=(tmpc->size-i)&~3; else if (i>=2) - tempc->size=(tempc->size-i)&~1; + tmpc->size=(tmpc->size-i)&~1; else - tempc->size-=i; - tempm->offset=tempc->size; - tempm->size=i; + tmpc->size-=i; + tmpm->offset=tmpc->size; + tmpm->size=i; if (cc->token=='=') { cc->flags=cc->flags&~CCF_DONT_MAKE_RES| old_flags&CCF_DONT_MAKE_RES; @@ -629,25 +629,25 @@ pvl_restart3: Lex(cc); if (!PrsExpression(cc,NULL,TRUE)) throw('Compiler'); - tempm->use_cnt=0; + tmpm->use_cnt=0; cc->flags|=CCF_DONT_MAKE_RES; } else LexPopNoRestore(cc); break; case PRS1B_FUN_ARG: if (mode&PRSF_UNION) { - tempm->offset=union_base; - if (tempc->size-union_base<8) - tempc->size=8+union_base; + tmpm->offset=union_base; + if (tmpc->size-union_base<8) + tmpc->size=8+union_base; } else { - tempm->offset=tempc->size; - tempc->size+=8; + tmpm->offset=tmpc->size; + tmpc->size+=8; } - tempm->size=8; + tmpm->size=8; if (cc->token=='=') { Lex(cc); if (PrsKeyWord(cc)==KW_LASTCLASS) { - tempm->flags|=MLF_LASTCLASS; + tmpm->flags|=MLF_LASTCLASS; Lex(cc); } else { old_flags2=cc->flags; @@ -655,48 +655,48 @@ pvl_restart3: machine_code=LexExpression2Bin(cc,&type); if (!machine_code) throw('Compiler'); - tempm->dft_val=Call(machine_code); - tempc2=OptClassFwd(tempc2); - if (tempc2->raw_type==RT_F64) { + tmpm->dft_val=Call(machine_code); + tmpc2=OptClassFwd(tmpc2); + if (tmpc2->raw_type==RT_F64) { if (type!=RT_F64) - tempm->dft_val(F64)=tempm->dft_val; + tmpm->dft_val(F64)=tmpm->dft_val; } else { if (type==RT_F64) - tempm->dft_val=tempm->dft_val(F64); + tmpm->dft_val=tmpm->dft_val(F64); } if (cc->flags & CCF_HAS_MISC_DATA) { - tempm->dft_val=StrNew(tempm->dft_val); - tempm->flags|=MLF_STR_DFT_AVAILABLE; + tmpm->dft_val=StrNew(tmpm->dft_val); + tmpm->flags|=MLF_STR_DFT_AVAILABLE; } Free(machine_code); cc->flags|=old_flags2&CCF_HAS_MISC_DATA; } - tempm->flags|=MLF_DFT_AVAILABLE; + tmpm->flags|=MLF_DFT_AVAILABLE; } LexPopNoRestore(cc); break; case PRS1B_CLASS: if (mode&PRSF_UNION) { - tempm->offset=union_base; - if (tempc->size-union_basesize=i+union_base; + tmpm->offset=union_base; + if (tmpc->size-union_basesize=i+union_base; } else { - tempm->offset=tempc->size; - tempc->size+=i; + tmpm->offset=tmpc->size; + tmpc->size+=i; } - tempm->size=i; + tmpm->size=i; while (cc->token==TK_IDENT) { - temp_meta=MAlloc(sizeof(CMemberLstMeta)); - temp_meta->next=tempm->meta; - tempm->meta=temp_meta; - temp_meta->str=cc->cur_str; - temp_meta->flags=0; + tmp_meta=MAlloc(sizeof(CMemberLstMeta)); + tmp_meta->next=tmpm->meta; + tmpm->meta=tmp_meta; + tmp_meta->str=cc->cur_str; + tmp_meta->flags=0; cc->cur_str=NULL; if (Lex(cc)==TK_STR) { - temp_meta->user_data=LexExtStr(cc); - temp_meta->flags|=MLMF_IS_STR; + tmp_meta->user_data=LexExtStr(cc); + tmp_meta->flags|=MLMF_IS_STR; } else - temp_meta->user_data=LexExpression(cc); + tmp_meta->user_data=LexExpression(cc); } LexPopNoRestore(cc); break; diff --git a/Compiler/UAsm.HC b/Compiler/UAsm.HC index 6abb219..f712957 100644 --- a/Compiler/UAsm.HC +++ b/Compiler/UAsm.HC @@ -1,55 +1,55 @@ -I64 InstEntriesCompare(CInst *tempi1,CInst *tempi2) +I64 InstEntriesCompare(CInst *tmpins1,CInst *tmpins2) { - I64 i1,i2,j=0,res=0,oc_cnt1=tempi1->opcode_cnt,oc_cnt2=tempi2->opcode_cnt; - if (tempi1->flags&IEF_STI_LIKE) + I64 i1,i2,j=0,res=0,oc_cnt1=tmpins1->opcode_cnt,oc_cnt2=tmpins2->opcode_cnt; + if (tmpins1->flags&IEF_STI_LIKE) oc_cnt1--; - if (tempi2->flags&IEF_STI_LIKE) + if (tmpins2->flags&IEF_STI_LIKE) oc_cnt2--; while (TRUE) { if (jopcode[j]-tempi2->opcode[j]) + if (res=tmpins1->opcode[j]-tmpins2->opcode[j]) return res; j++; } else { if (res=oc_cnt1-oc_cnt2) return res; - if (tempi1->flags&IEF_STI_LIKE && tempi2->flags&IEF_STI_LIKE) - return tempi1->opcode[j]-tempi2->opcode[j]; + if (tmpins1->flags&IEF_STI_LIKE && tmpins2->flags&IEF_STI_LIKE) + return tmpins1->opcode[j]-tmpins2->opcode[j]; - if (res=tempi1->flags&IEF_STI_LIKE - tempi2->flags&IEF_STI_LIKE) + if (res=tmpins1->flags&IEF_STI_LIKE - tmpins2->flags&IEF_STI_LIKE) return res; - if (res=tempi1->slash_val-tempi2->slash_val) + if (res=tmpins1->slash_val-tmpins2->slash_val) return res; - if (res=tempi1->flags&IEF_OP_SIZE32 - tempi2->flags&IEF_OP_SIZE32) + if (res=tmpins1->flags&IEF_OP_SIZE32 - tmpins2->flags&IEF_OP_SIZE32) return res; - i1=Bt(&uasm.ins64_arg_mask,tempi1->arg1) || - Bt(&uasm.ins64_arg_mask,tempi1->arg2); - i2=Bt(&uasm.ins64_arg_mask,tempi2->arg1) || - Bt(&uasm.ins64_arg_mask,tempi2->arg2); + i1=Bt(&uasm.ins64_arg_mask,tmpins1->arg1) || + Bt(&uasm.ins64_arg_mask,tmpins1->arg2); + i2=Bt(&uasm.ins64_arg_mask,tmpins2->arg1) || + Bt(&uasm.ins64_arg_mask,tmpins2->arg2); if (res=i1-i2) return res; - if (res=tempi1->flags&IEF_48_REX - tempi2->flags&IEF_48_REX) + if (res=tmpins1->flags&IEF_48_REX - tmpins2->flags&IEF_48_REX) return res; - i1=tempi1->arg2==ARGT_IMM64 || tempi1->arg2==ARGT_UIMM64; - i2=tempi2->arg2==ARGT_IMM64 || tempi2->arg2==ARGT_UIMM64; + i1=tmpins1->arg2==ARGT_IMM64 || tmpins1->arg2==ARGT_UIMM64; + i2=tmpins2->arg2==ARGT_IMM64 || tmpins2->arg2==ARGT_UIMM64; return i1-i2; } } } /* -U0 DumpUAsmIns(CInst *tempi) +U0 DumpUAsmIns(CInst *tmpins) { - CHashOpcode *tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInst) + CHashOpcode *tmpo=tmpins(U8 *)-tmpins->ins_entry_num*sizeof(CInst) -offset(CHashOpcode.ins); - "%10s:%02d,%02d SV:%02d\n",tempo->str, - tempi->arg1,tempi->arg2,tempi->slash_val; + "%10s:%02d,%02d SV:%02d\n",tmpo->str, + tmpins->arg1,tmpins->arg2,tmpins->slash_val; } U0 DumpUAsmTables() { @@ -66,7 +66,7 @@ U0 DumpUAsmTables() CInst *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) {//Binary Search I64 i,j,n,m,k,a1,a2,o1,o2,oc_cnt; - CInst *tempi,**table; + CInst *tmpins,**table; i=0; if (seg_size==64) { table=uasm.table_64; @@ -77,50 +77,50 @@ CInst *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) } while (TRUE) { k=(i+j)>>1; //binary search - tempi=table[k]; -//DumpUAsmIns(tempi); + tmpins=table[k]; +//DumpUAsmIns(tmpins); m=0; n=0; while (TRUE) { //ief_compare_start - a1=tempi->arg1; - a2=tempi->arg2; - oc_cnt=tempi->opcode_cnt; - if (tempi->flags&IEF_STI_LIKE) + a1=tmpins->arg1; + a2=tmpins->arg2; + oc_cnt=tmpins->opcode_cnt; + if (tmpins->flags&IEF_STI_LIKE) oc_cnt--; if (nopcode_cnt-1 && tempi->flags & IEF_PLUS_OPCODE) + if (n==tmpins->opcode_cnt-1 && tmpins->flags & IEF_PLUS_OPCODE) o1&=-8; - o2=tempi->opcode[n++]; + o2=tmpins->opcode[n++]; if (m=o1-o2) goto ief_compare_done; } else - switch [tempi->uasm_slash_val] { + switch [tmpins->uasm_slash_val] { case 0...7: - if (!(m=ip[n]>>3&7-tempi->slash_val)) { + if (!(m=ip[n]>>3&7-tmpins->slash_val)) { if ((Bt(&uasm.mem_arg_mask,a1) || Bt(&uasm.mem_arg_mask,a2)) && ip[n]&0xC0==0xC0) { m=1; goto ief_compare_done; } if (opsize==16) { - if (tempi->flags & IEF_OP_SIZE32) { + if (tmpins->flags & IEF_OP_SIZE32) { m=-1; goto ief_compare_done; } } else { - if (tempi->flags & IEF_OP_SIZE16) { + if (tmpins->flags & IEF_OP_SIZE16) { m=1; goto ief_compare_done; } } if (opsize==64||a1==ARGT_M64||a2==ARGT_M64) { if (!Bt(&uasm.ins64_arg_mask,a1)&& - !Bt(&uasm.ins64_arg_mask,a2)&&!(tempi->flags&IEF_48_REX)) + !Bt(&uasm.ins64_arg_mask,a2)&&!(tmpins->flags&IEF_48_REX)) m=1; } else { if (Bt(&uasm.ins64_arg_mask,a1)||Bt(&uasm.ins64_arg_mask,a2) || - tempi->flags&IEF_48_REX) + tmpins->flags&IEF_48_REX) m=-1; } } else if ((Bt(&uasm.mem_arg_mask,a1)||Bt(&uasm.mem_arg_mask,a2)) && @@ -128,39 +128,39 @@ CInst *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) m=1; goto ief_compare_done; case SV_I_REG: - m=ip[n]>>3-tempi->opcode[tempi->opcode_cnt-1]>>3; + m=ip[n]>>3-tmpins->opcode[tmpins->opcode_cnt-1]>>3; goto ief_compare_done; case SV_STI_LIKE: - if (!(m=ip[n]>>3-tempi->opcode[tempi->opcode_cnt-1]>>3)) - m=ip[n]-tempi->opcode[tempi->opcode_cnt-1]; + if (!(m=ip[n]>>3-tmpins->opcode[tmpins->opcode_cnt-1]>>3)) + m=ip[n]-tmpins->opcode[tmpins->opcode_cnt-1]; goto ief_compare_done; case SV_R_REG: case SV_NONE: m=0; if (opsize==16) { - if (tempi->flags & IEF_OP_SIZE32) { + if (tmpins->flags & IEF_OP_SIZE32) { m=-1; goto ief_compare_done; } } else { - if (tempi->flags & IEF_OP_SIZE16) { + if (tmpins->flags & IEF_OP_SIZE16) { m=1; goto ief_compare_done; } } if (opsize==64 || a1==ARGT_M64 || a2==ARGT_M64) { if (!Bt(&uasm.ins64_arg_mask,a1) &&!Bt(&uasm.ins64_arg_mask,a2) && - !(tempi->flags&IEF_48_REX)&& !(a2==ARGT_NONE && + !(tmpins->flags&IEF_48_REX)&& !(a2==ARGT_NONE && (ARGT_UIMM8<=a1<=ARGT_UIMM64 || ARGT_IMM8<=a1<=ARGT_IMM64))) m=1; - else if (tempi->arg2==ARGT_IMM64 || tempi->arg2==ARGT_UIMM64) { + else if (tmpins->arg2==ARGT_IMM64 || tmpins->arg2==ARGT_UIMM64) { if (a2!=ARGT_IMM64&&a2!=ARGT_UIMM64) m=1; } else if (a2==ARGT_IMM64||a2==ARGT_UIMM64) m=-1; } else { if (Bt(&uasm.ins64_arg_mask,a1) || Bt(&uasm.ins64_arg_mask,a2) || - tempi->flags&IEF_48_REX) + tmpins->flags&IEF_48_REX) m=-1; } goto ief_compare_done; @@ -187,8 +187,8 @@ ief_compare_done: U0 UAsmHashLoad() { - CHashOpcode *temph; - CInst *tempi; + CHashOpcode *tmph; + CInst *tmpins; I64 i,j1,j2,k; uasm.ins64_arg_mask=0x0880888880+1<mask;i++) { - temph=cmp.asm_hash->body[i]; - while (temph) { - if (temph->type==HTT_OPCODE && !(temph->oc_flags&OCF_ALIAS)) { - tempi=&temph->ins; - for (k=0;kinst_entry_cnt;k++) { + tmph=cmp.asm_hash->body[i]; + while (tmph) { + if (tmph->type==HTT_OPCODE && !(tmph->oc_flags&OCF_ALIAS)) { + tmpins=&tmph->ins; + for (k=0;kinst_entry_cnt;k++) { uasm.table_16_32_entries++; - if (!(tempi->flags&IEF_NOT_IN_64_BIT)) + if (!(tmpins->flags&IEF_NOT_IN_64_BIT)) uasm.table_64_entries++; - tempi++; + tmpins++; } } - temph=temph->next; + tmph=tmph->next; } } @@ -217,18 +217,18 @@ U0 UAsmHashLoad() uasm.table_16_32=MAlloc(uasm.table_16_32_entries*sizeof(U8 *)); uasm.table_64 =MAlloc(uasm.table_64_entries *sizeof(U8 *)); for (i=0;i<=cmp.asm_hash->mask;i++) { - temph=cmp.asm_hash->body[i]; - while (temph) { - if (temph->type==HTT_OPCODE && !(temph->oc_flags&OCF_ALIAS)) { - tempi=&temph->ins; - for (k=0;kinst_entry_cnt;k++) { - uasm.table_16_32[j1++]=tempi; - if (!(tempi->flags&IEF_NOT_IN_64_BIT)) - uasm.table_64[j2++]=tempi; - tempi++; + tmph=cmp.asm_hash->body[i]; + while (tmph) { + if (tmph->type==HTT_OPCODE && !(tmph->oc_flags&OCF_ALIAS)) { + tmpins=&tmph->ins; + for (k=0;kinst_entry_cnt;k++) { + uasm.table_16_32[j1++]=tmpins; + if (!(tmpins->flags&IEF_NOT_IN_64_BIT)) + uasm.table_64[j2++]=tmpins; + tmpins++; } } - temph=temph->next; + tmph=tmph->next; } } QSortI64(uasm.table_16_32,uasm.table_16_32_entries,&InstEntriesCompare); @@ -243,8 +243,8 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) ModrM=-1,SIB=-1,scale,r1,r2, Mod=-1,RM1=-1,RM2=-1,REX=-1,REX_r=0,REX_x=0,REX_b=0; Bool cont; - CInst *tempi,*tempi2; - CHashOpcode *tempo; + CInst *tmpins,*tmpins2; + CHashOpcode *tmpo; U8 *ip=*_ip,*ptr,*reloced_a1_st,*reloced_a2_st, *bin_data_area1,*bin_data_area2, line1[512],line2[512],buf2[512],a1_st[512],a2_st[512],seg_overrides[32]; @@ -325,41 +325,41 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) break; } - tempi=InstEntryFind(ip,opsize,seg_size); + tmpins=InstEntryFind(ip,opsize,seg_size); if (opsize==32 && seg_size==64) { - tempi2=InstEntryFind(ip,64,seg_size); - if (tempi2!=tempi && tempi2->flags&IEF_REX_ONLY_R8_R15 || - tempi2->flags&IEF_REX_XOR_LIKE&& ip[1]>>3&7==ip[1]&7) - tempi=tempi2; + tmpins2=InstEntryFind(ip,64,seg_size); + if (tmpins2!=tmpins && tmpins2->flags&IEF_REX_ONLY_R8_R15 || + tmpins2->flags&IEF_REX_XOR_LIKE&& ip[1]>>3&7==ip[1]&7) + tmpins=tmpins2; } - ip+=tempi->opcode_cnt; - tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInst) + ip+=tmpins->opcode_cnt; + tmpo=tmpins(U8 *)-tmpins->ins_entry_num*sizeof(CInst) -offset(CHashOpcode.ins); if (just_ins) *line1=0; - CatPrint(line1,tempo->str); + CatPrint(line1,tmpo->str); - a1=tempi->arg1; - a2=tempi->arg2; + a1=tmpins->arg1; + a2=tmpins->arg2; - if (a1_size=tempi->size1) { + if (a1_size=tmpins->size1) { if (Bt(&uasm.signed_arg_mask,a1)) CatPrint(a1_st,"I%d ",a1_size); else CatPrint(a1_st,"U%d ",a1_size); } - if (a2_size=tempi->size2) { + if (a2_size=tmpins->size2) { if (Bt(&uasm.signed_arg_mask,a2)) CatPrint(a2_st,"I%d ",a2_size); else CatPrint(a2_st,"U%d ",a2_size); } - if (tempi->flags & IEF_PLUS_OPCODE) { + if (tmpins->flags & IEF_PLUS_OPCODE) { ip--; - RM1=*ip++ - tempi->opcode[tempi->opcode_cnt-1]+REX_b; + RM1=*ip++ - tmpins->opcode[tmpins->opcode_cnt-1]+REX_b; ptr=NULL; if (ARGT_R8<=a1<=ARGT_R64) { if (a1_size==8) { @@ -424,7 +424,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) disp=*ip(U32 *)++; CatPrint(reloced_a1_st,"%08X",disp); } - if (tempi->slash_val<8) + if (tmpins->slash_val<8) RM2=-1; else { ptr=NULL; @@ -522,7 +522,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) case ARGT_UIMM8: imm=*ip(U8 *)++; CatPrint(a1_st,"%02X",imm); - if (tempi->opcode[0]==0xCD && (ptr=DefineSub(imm,"ST_INT_NAMES"))) + if (tmpins->opcode[0]==0xCD && (ptr=DefineSub(imm,"ST_INT_NAMES"))) CatPrint(a1_st," %s",ptr); break; case ARGT_IMM16: @@ -549,7 +549,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) break; end: disp+=ip; - if (IsDbg) + if (IsDbgMode) CatPrint(a1_st,"%p ",disp); else if (PutSrcLink(disp,512,buf2)) CatPrint(a1_st,"%s ",buf2); @@ -574,7 +574,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) break; case ARGT_STI: ip--; - CatPrint(a1_st,"%Z",*ip++ - tempi->opcode[tempi->opcode_cnt-1], + CatPrint(a1_st,"%Z",*ip++ - tmpins->opcode[tmpins->opcode_cnt-1], "ST_FSTK_REGS"); break; } @@ -613,11 +613,11 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) break; case ARGT_STI: ip--; - CatPrint(a2_st,"%Z",*ip++ -tempi->opcode[tempi->opcode_cnt-1], + CatPrint(a2_st,"%Z",*ip++ -tmpins->opcode[tmpins->opcode_cnt-1], "ST_FSTK_REGS"); break; } - if (tempi->flags&IEF_ENDING_ZERO) + if (tmpins->flags&IEF_ENDING_ZERO) ip++; if (*a1_st) diff --git a/Demo/AcctExample/DoOnce.HC b/Demo/AcctExample/DoOnce.HC index 4b2a7d0..2fcf97c 100644 --- a/Demo/AcctExample/DoOnce.HC +++ b/Demo/AcctExample/DoOnce.HC @@ -37,11 +37,11 @@ U0 DoOnce() } break; } - if (FileFind("D:/Temp/Logs/access.log")) { - Auto("\n\n%C",CH_ESC); + if (FileFind("D:/Tmp/Logs/access.log")) { + In("\n\n%C",CH_ESC); RunFile("::/Demo/WebLogDemo/WebLogRep",, - "D:/Temp/Logs/*.log","D:/Home/WebLogRep.DD"); - Del("D:/Temp/Logs/*.log"); + "D:/Tmp/Logs/*.log","D:/Home/WebLogRep.DD"); + Del("D:/Tmp/Logs/*.log"); } } diff --git a/Demo/AcctExample/HomeKeyPlugIns.HC b/Demo/AcctExample/HomeKeyPlugIns.HC index 6933de5..ece0ff8 100644 --- a/Demo/AcctExample/HomeKeyPlugIns.HC +++ b/Demo/AcctExample/HomeKeyPlugIns.HC @@ -18,17 +18,17 @@ U0 InsFileLink() U0 InsDirLinks() { - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; U8 *st=PopUpPickDir,*st2; st[0]=':'; //This is my personal code, not production. LOL st2=MStrPrint("%s/*",st); - tempde=tempde1=FilesFind(st2,FUF_JUST_FILES); - while (tempde) { - tempde->full_name[0]=':'; - "$$LK,\"%s\",A=\"FI:%s\"$$\n",tempde->full_name+2,tempde->full_name; - tempde=tempde->next; + tmpde=tmpde1=FilesFind(st2,FUF_JUST_FILES); + while (tmpde) { + tmpde->full_name[0]=':'; + "$$LK,\"%s\",A=\"FI:%s\"$$\n",tmpde->full_name+2,tmpde->full_name; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); Free(st); Free(st2); } @@ -309,9 +309,9 @@ Bool MyPutKey(I64 ch,I64 sc) return TRUE; case 'g': if (sc&SCF_KEY_DESC) - KeyDescSet("Edit/BlogScreenShot"); + KeyDescSet("Edit/BlogScrnShot"); else - BlogScreenShot; + BlogScrnShot; return TRUE; case 'p': if (sc&SCF_KEY_DESC) diff --git a/Demo/AcctExample/HomeSys.HC b/Demo/AcctExample/HomeSys.HC index a69529e..fe696ba 100644 --- a/Demo/AcctExample/HomeSys.HC +++ b/Demo/AcctExample/HomeSys.HC @@ -9,7 +9,7 @@ U0 UserStartUp() WinToTop; WinZBufUpdate; Dir; - "$TX,"81,208",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; + "$TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; CPURep; } @@ -38,8 +38,8 @@ U0 StartUpTasks() } if (DrvIsWritable(':')) { - DelTree("::/Temp/ScreenShots"); - MkDir("::/Temp/ScreenShots"); + DelTree("::/Tmp/ScrnShots"); + MkDir("::/Tmp/ScrnShots"); } StartUpTasks; diff --git a/Demo/AcctExample/HomeWrappers.HC b/Demo/AcctExample/HomeWrappers.HC index 5f8f08f..c16451f 100644 --- a/Demo/AcctExample/HomeWrappers.HC +++ b/Demo/AcctExample/HomeWrappers.HC @@ -2,7 +2,7 @@ #define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"\ "!*/Sup1/Sup1Texts/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\ - "!*/God/Vocab.DD*" + "!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*" public I64 F(U8 *needle_str,U8 *fu_flags=NULL) {//Find text in all text files. diff --git a/Demo/AcctExample/PersonalMenu.DD b/Demo/AcctExample/PersonalMenu.DD index b58e3a9..132904c 100644 --- a/Demo/AcctExample/PersonalMenu.DD +++ b/Demo/AcctExample/PersonalMenu.DD @@ -6,9 +6,9 @@ $LK+X,"ChangeLg",A="FI:::/Doc/ChangeLog.DD"$$MA,"Blog ",LM="Blog;\n"$$MA,"EdG $MA,"Web ",LM="Cd(\"/Home/Web\");Dir;\n"$$MA,"TAD ",LM="Cd(\"/Home/Web/TAD\");Dir;\n"$$MA,"Sup1 ",LM="Cd(\"/Home/Sup1\");Dir;\n"$$MA,"Blog ",LM="Cd(\"/Home/Sup1/Sup1Blog\");Dir;\n"$$MA,"Code ",LM="Cd(\"/Home/Sup1/Sup1CodeScraps\");Dir;\n"$$MA,"Dist ",LM="Cd(\"/Home/Sup1/Sup1Distro\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Home/Sup1/Sup1Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Home/Sup1/Sup1Graphics\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Home/Sup1/Sup1Psalmody\");Dir;\n"$$MA,"Utils ",LM="Cd(\"/Home/Sup1/Sup1Utils\");Dir;\n"$ $MA,"Apps ",LM="Cd(\"/Apps\");Dir;\n"$$MA,"AfterEgp",LM="Cd(\"/Apps/AfterEgypt\");Dir;\n"$$MA,"Budget ",LM="Cd(\"/Apps/Budget\");Dir;\n"$$MA,"GrModels",LM="Cd(\"/Apps/GrModels\");Dir;\n"$$MA,"KeepAway",LM="Cd(\"/Apps/KeepAway\");Dir;\n"$$MA,"Logic ",LM="Cd(\"/Apps/Logic\");Dir;\n"$$MA,"Psalmody",LM="Cd(\"/Apps/Psalmody\");Dir;\n"$$MA,"Span ",LM="Cd(\"/Apps/Span\");Dir;\n"$$MA,"Strut ",LM="Cd(\"/Apps/Strut\");Dir;\n"$$MA,"TimeClk ",LM="Cd(\"/Apps/TimeClock\");Dir;\n"$ $MA,"TimeOut ",LM="Cd(\"/Apps/TimeOut\");Dir;\n"$$MA,"ToTheFrt",LM="Cd(\"/Apps/ToTheFront\");Dir;\n"$$MA,"Vocab ",LM="Cd(\"/Apps/Vocabulary\");Dir;\n"$$MA,"XCaliber",LM="Cd(\"/Apps/X-Caliber\");Dir;\n"$$SP,"",BI=1$ -$MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"AutoFile",LM="Cd(\"/Demo/AutoFile\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$ +$MA,"Demo ",LM="Cd(\"/Demo\");Dir;\n"$$MA,"AcctEmpl",LM="Cd(\"/Demo/AcctExample\");Dir;\n"$$MA,"Asm ",LM="Cd(\"/Demo/Asm\");Dir;\n"$$MA,"DocDoc ",LM="Cd(\"/Demo/DolDoc\");Dir;\n"$$MA,"Dsk ",LM="Cd(\"/Demo/Dsk\");Dir;\n"$$MA,"Games ",LM="Cd(\"/Demo/Games\");Dir;\n"$$MA,"Graphics",LM="Cd(\"/Demo/Graphics\");Dir;\n"$$MA,"InFile ",LM="Cd(\"/Demo/InFile\");Dir;\n"$$MA,"Lectures",LM="Cd(\"/Demo/Lectures\");Dir;\n"$$MA,"MultCore",LM="Cd(\"/Demo/MultiCore\");Dir;\n"$ $MA,"RevFile ",LM="Cd(\"/Demo/RevFileDemo\");Dir;\n"$$MA,"Snd ",LM="Cd(\"/Demo/Snd\");Dir;\n"$$MA,"SortFile",LM="Cd(\"/Demo/SortFileDemo\");Dir;\n"$$MA,"Template",LM="Cd(\"/Demo/Templates\");Dir;\n"$$MA,"HtmlTXT ",LM="Cd(\"/Demo/ToHtmlToTXTDemo\");Dir;\n"$$MA,"WebLog ",LM="Cd(\"/Demo/WebLogDemo\");Dir;\n"$$MA,"Stadium ",LM="Cd(\"/Demo/Games/Stadium\");Dir;\n"$ -$MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Temp ",LM="Cd(\"/Temp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Temp/ScreenShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Temp/*.SND\");DelTree(\"D:/Temp/ScreenShots\");MkDir(\"D:/Temp/ScreenShots\");Del(\"C:/Temp/*.SND\");DelTree(\"C:/Temp/ScreenShots\");MkDir(\"C:/Temp/ScreenShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$ +$MA,"Doc ",LM="Cd(\"/Doc\");Dir;\n"$$MA,"Misc ",LM="Cd(\"/Misc\");Dir;\n"$$MA,"Tour ",LM="Cd(\"/Misc/Tour\");Dir;\n"$$MA,"Tmp ",LM="Cd(\"/Tmp\");Dir;\n"$$MA,"ScrnShot",LM="Cd(\"/Tmp/ScrnShots\");Dir;\n"$$MA,"DelScrSt",LM="Del(\"D:/Tmp/*.SND\");DelTree(\"D:/Tmp/ScrnShots\");MkDir(\"D:/Tmp/ScrnShots\");Del(\"C:/Tmp/*.SND\");DelTree(\"C:/Tmp/ScrnShots\");MkDir(\"C:/Tmp/ScrnShots\");\n"$$MA,"0000Boot",LM="Cd(\"/0000Boot\");Dir;\n"$$MA,"Linux ",LM="Cd(\"/Linux\");Dir;\n"$ $MA,"LinxDict",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/LinuxDict.TXT**\\\");\");\n"$$MA,"August ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/AugustWords.TXT**\\\");\");\n"$$MA,"Happy ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HappyWords.TXT*\\\");\");\n"$$MA,"Bible ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/BibleWords.TXT*\\\");\");\n"$$MA,"Huck ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/HuckWords.TXT*\\\");\");\n"$$MA,"Ingreds ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Ingredients.TXT*\\\");\");\n"$$MA,"Chess ",LM="Adam(\"GodInit(\\\"~/Sup1/Sup1Words/Chess.DD*\\\");\");\n"$$MA,"Texts ",LM="Cd(\"/Home/Sup1/Sup1Texts\");Dir;\n"$$MA,"Words ",LM="Cd(\"/Home/Sup1/Sup1Words\");Dir;\n"$ $MA,"MakeStd ",LM="MakeStdDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSCD.ISO\");\n"$$MA,"MakeStRS",LM="MakeStdRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSCDRS.ISO\");\n"$$MA,"MakeUlt ",LM="MakeUltraDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSUltra.ISO\");\n"$$MA,"MakeUtRS",LM="MakeUltraRedSeaDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_C_NAME,\"D:/Wb/TempleOSUltraRS.ISO\");\n"$$MA,"MakeStaf",LM="MakeStaffDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSStaff.ISO\");\n"$$MA,"MakeDbg ",LM="MakeDbgDistro;MkDir(\"D:/Wb\");Move(TOS_ISO_NAME,\"D:/Wb/TempleOSDbg.ISO\");\n"$ $MA,"BurnStd ",LM="MakeStdDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnStRS",LM="MakeStdRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnUlt ",LM="MakeUltraDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnUtRS",LM="MakeUltraRedSeaDistro;DVDImageWrite('T',TOS_ISO_C_NAME);\n"$$MA,"BurnStaf",LM="MakeStaffDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$$MA,"BurnDbg ",LM="MakeDbgDistro;DVDImageWrite('T',TOS_ISO_NAME);\n"$ @@ -75,7 +75,7 @@ $SP+PU,"JukeBox",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmo $SP+PU,"BigGuns",LM="#include \"::/Demo/Games/BigGuns\"",BI=27$ $SP+PU,"Budget",LM="#include \"::/Apps/Budget/Run\"",BI=28$ $SP+PU,"Digits",LM="#include \"::/Demo/Games/Digits\"",BI=29$ $SP+PU,"Checkers",LM="#include \"::/Demo/Games/TreeCheckers.HC.Z\"",BI=30$ -$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;AutoFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Psalmody\");"$$MA,"Comics ",LM="Cd(\"/Home/Sup1/Sup1Comics\");Dir;\n"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$ +$MA,"TestSuit",LM="#include \"::/Misc/OSTestSuite\";\n"$$MA,"TakeTour",LM="Cd(\"::/Misc/Tour\");;InFile(\"Tour\");\n"$$MA+PU,"PsalSup1",LM="#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup1/Sup1Psalmody\");"$$MA,"Comics ",LM="Cd(\"/Home/Sup1/Sup1Comics\");Dir;\n"$$MA-X+PU,"SymAlpha",LM="DocMax;Who;View;"$$MA-X+PU,"SymNum ",LM="DocMax;Who(\"+m\");View;"$ yÓÿÿÿÜÿÿÿ<H÷ÿÿÿ'ûÿÿÿ÷ÿÿÿõÿÿÿüÿÿÿ õÿÿÿ'ûÿÿÿ ' èÿÿÿòÿÿÿèÿÿÿüÿÿÿèÿÿÿèÿÿÿáÿÿÿúÿÿÿáÿÿÿúÿÿÿ èÿÿÿáÿÿÿèÿÿÿüÿÿÿèÿÿÿòÿÿÿèÿÿÿüÿÿÿúÿÿÿõÿÿÿ÷ÿÿÿ  $$÷ÿÿÿ$õÿÿÿ$ èÿÿÿõÿÿÿèÿÿÿòÿÿÿüÿÿÿõÿÿÿüÿÿÿ üÿÿÿéÿÿÿ üÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿ ÿÿÿÿéÿÿÿõÿÿÿÿÿÿÿòÿÿÿÿÿÿÿûÿÿÿãÿÿÿýÿÿÿåÿÿÿãÿÿÿÿÿÿÿãÿÿÿåÿÿÿúÿÿÿáÿÿÿþÿÿÿãÿÿÿõÿÿÿ$÷ÿÿÿ$÷ÿÿÿ' $$õÿÿÿ'' ' ' diff --git a/Demo/AcctExample/PersonalNotes.DD b/Demo/AcctExample/PersonalNotes.DD index 34e3543..f555766 100644 --- a/Demo/AcctExample/PersonalNotes.DD +++ b/Demo/AcctExample/PersonalNotes.DD @@ -1,4 +1,6 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ +* $LK,"::/Demo/RandDemo.HC"$ Rand is kinda crappy. + * Cursor in $LK,"::/Home/TOSToHtml.HC"$. * Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$. @@ -139,7 +141,7 @@ $FG,5$$TX+CX,"Bugs"$$FG$ $FG,5$$TX+CX,"3rd Party Bugs"$$FG$ -* VMware: Stretch to full screen +* VMware: Stretch to full scrn * VMware: PC speaker sound distorted. * VMware: 8/2/2015 start-up. Probably multicore. * VMware: $LK,"CtrlAltDel",A="FF:::/Kernel/SerialDev/Keyboard.HC,CtrlAltDel"$ on @@ -149,7 +151,7 @@ $FG,5$$TX+CX,"3rd Party Bugs"$$FG$ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$ * $LK,"Mount",A="MN:Mount"$() crashes on bad drive. -* Graphics clipping: screen y+top<0 for top<0? +* Graphics clipping: scrn y+top<0 for top<0? * 1/1/2015 Bug messing-up keyboard, like no CTRL key. Was working on Sprites. @@ -159,9 +161,8 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$ * 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just twice. Not a bug. -* 5/7/14:Something like $LK,"AFSetIP",A="MN:AFSetIP"$ caused hang, then reboot in TestSuite. +* 5/7/14:Something like $LK,"InSetIP",A="MN:InSetIP"$ caused hang, then reboot in TestSuite. * 5/7/14:#63 Maybe, $LK,"::/Demo/Graphics/Pick3D.HC"$ crashed in TestSuite. -* 6/8/14:After or in $LK,"PageTableEntries",A="FF:::/Misc/OSTestSuite.HC,PageTableEntries"$ in TestSuite crash. * $LK,"StrPrintJoin",A="MN:StrPrintJoin"$(,st); With st="\n\\"; (Forgot what this is talking about.) @@ -264,7 +265,7 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$ * Note: We will never put multiple $LK,"Keyboard Tables",A="FI:::/Kernel/SerialDev/Keyboard.HC"$. Each country must make their own version of TempleOS. The $LK,"Intel Factory ROM",A="FF:::/Doc/Demands.DD,English"$ will have just English. Our $LK,"Charter",A="FI:::/Doc/Charter.DD"$ bans multiple country or architectures in the same version. -* 12 border chars in screen font codes 0x02-0x0D. $LK,"TextBorder",A="MN:TextBorder"$() $LK,"RawDr",A="MN:RawDr"$() $LK,"::/Demo/Games/CharDemo.HC"$. LineFeed shows-up in $FG,2$$FG$ PersonalMenu. +* 12 border chars in scrn font codes 0x02-0x0D. $LK,"TextBorder",A="MN:TextBorder"$() $LK,"RawDr",A="MN:RawDr"$() $LK,"::/Demo/Games/CharDemo.HC"$. LineFeed shows-up in $FG,2$$FG$ PersonalMenu. * Super-simple high speed serial needs flow control. $FG,2$$FG$ and $FG,2$$FG$? @@ -338,7 +339,7 @@ $FG,5$$TX+CX,"Test"$$FG$ * $LK,"ICDivEqu",A="MN:ICDivEqu"$() assumes RBX. Is it okay? -* Autofile PopUp of PopUp? +* InFile PopUp of PopUp? * $LK,"FileMgr",A="MN:FileMgr"$() help link scrolls out of window. @@ -359,8 +360,8 @@ $FG,5$$TX+CX,"Uncategorized"$$FG$ * MOV U8 [RSP+RCX],DL -* $LK,"gr.screen_image",A="MN:CGrGlbls"$ - >Might want to do ZOOM in U8 graphics and convert screen capture to U8 +* $LK,"gr.scrn_image",A="MN:CGrGlbls"$ + >Might want to do ZOOM in U8 graphics and convert scrn capture to U8 >Might want to rev bit order * This $LK,"Fs->catch_except=TRUE",A="FF:::/Kernel/SrvCmd.HC,Fs->catch_except=TRUE"$ causes problems because it @@ -410,7 +411,7 @@ $FG,5$$TX+CX,"Misc Notes"$$FG$ Erik van der Karbargenbok: $LK,"TempleBot",A="PI:::/Home/Sup1/Sup1Bin/TempleBot"$. Intel CEO's name: Brian Krzanich >$FG,2$lspci -v$FG$ -Size:$TX,"20932 KB",D="DD_TEMPLEOSCD_K_SIZE"$ +Size:$TX,"17416KB",D="DD_TEMPLEOSCD_K_SIZE"$ $FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$ $TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/Bookmarks"$ @@ -444,7 +445,7 @@ $TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-ne $TX,"Stalin's Tanks",HTML="https://boardgamegeek.com/boardgame/5198/stalins-tanks"$ $TX,"Lamp shades",HTML="http://www.lampsplus.com/products/lamp-shades"$ $TX,"The Original Jewish Temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$ -$TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.DD"$ +$TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ $TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$ $TX,"The Number Bleem",HTML="http://www.strangehorizons.com/2000/20001120/secret_number.shtml"$ $TX,"Dwight: Nerd torture",HTML="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form"$ diff --git a/Demo/AcctExample/Registry.HC b/Demo/AcctExample/Registry.HC index b845a00..347aa4d 100644 --- a/Demo/AcctExample/Registry.HC +++ b/Demo/AcctExample/Registry.HC @@ -2,7 +2,7 @@ $TR-UL,"Adam"$ $ID,2$$TR,"SysMsgFlags"$ $ID,2$sys_msg_flags[0]=0xFF; $ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=4.110; +$ID,2$registry_version=4.120; $ID,-2$$ID,-2$$TR-UL,"TempleOS"$ $ID,2$$TR,"TOS"$ $ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46; @@ -10,6 +10,9 @@ $ID,-2$$TR,"CircleTrace"$ $ID,2$F64 best_score=4.9425; $ID,-2$$TR,"DiningStars"$ $ID,2$F64 best_score=9999.0000; +$ID,-2$$TR,"Staff"$ +$ID,2$#define PERSONAL_INITIALS "TAD" +#define MACHINE_CFG 0 $ID,-2$$TR,"BlackDiamond"$ $ID,2$I64 best_score=1; $ID,-2$$TR,"EagleDive"$ @@ -25,7 +28,7 @@ $ID,2$F64 best_score=46.2643; $ID,-2$$TR,"FlapBat"$ $ID,2$F64 best_score=16.3077; $ID,-2$$TR,"TimeOut"$ -$ID,2$I64 best_score=22202; +$ID,2$I64 best_score=28128; $ID,-2$$TR,"RawHide"$ $ID,2$F64 best_score=96.1279; $ID,-2$$TR,"KeepAway"$ @@ -37,13 +40,10 @@ $ID,-2$$TR,"Wenceslas"$ $ID,2$F64 best_score=43.9944; $ID,-2$$TR,"BomberGolf"$ $ID,2$I64 best_score=175; -$ID,-2$$TR,"Staff"$ -$ID,2$#define PERSONAL_INITIALS "TAD" -#define MACHINE_CFG 0 $ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$ $TR,"Game1"$ -$ID,2$F64 best_score=197.62089; +$ID,2$F64 best_score=511.36611; $TR,"SimpleVal"$ -$ID,2$1344; +$ID,2$1387; $ID,-2$$ID,-2$ \ No newline at end of file diff --git a/Demo/AcctExample/TOSBlog.HC b/Demo/AcctExample/TOSBlog.HC index 79bdc63..ed2a10c 100644 --- a/Demo/AcctExample/TOSBlog.HC +++ b/Demo/AcctExample/TOSBlog.HC @@ -46,9 +46,9 @@ U8 *BlogWebFile(CDate cdt=0) public U8 *FileNameNumNext(U8 *files_find_mask,U8 *fmt) { - CDirEntry *tempde=FilesFind(files_find_mask); - U8 *res=MStrPrint(fmt,FileCnt(tempde)); - DirTreeDel(tempde); + CDirEntry *tmpde=FilesFind(files_find_mask); + U8 *res=MStrPrint(fmt,FileCnt(tmpde)); + DirTreeDel(tmpde); return res; } @@ -67,14 +67,14 @@ U0 BlogDCImgWrite(CDC *dc,CDate cdt=0) Free(st2); } -U0 BlogScreenShot() +U0 BlogScrnShot() { Bool old_cursor=DocCursor; CDC *dc1,*dc2; U8 *old_fp_draw_input_ptr=gr.fp_draw_input_ptr; gr.fp_draw_input_ptr=NULL; - WinMgrSync(2); - dc1=DCScreenCapture; + Refresh(2); + dc1=DCScrnCapture; dc2=DCExt(dc1,0,FONT_HEIGHT,GR_WIDTH-1,GR_HEIGHT-1); BlogDCImgWrite(dc2); gr.fp_draw_input_ptr=old_fp_draw_input_ptr; diff --git a/Demo/AcctExample/TOSCfg.HC b/Demo/AcctExample/TOSCfg.HC index a6b0f17..9b099c7 100644 --- a/Demo/AcctExample/TOSCfg.HC +++ b/Demo/AcctExample/TOSCfg.HC @@ -22,7 +22,7 @@ U0 TOSBootRescueDrv1() DefinePrint("TOS_BOOT_RESCUE_DRV_END", "0x%X",FloorI64( (BOOT_RAM_LIMIT-(BOOT_STK_SIZE+DVD_BOOT_LOADER_SIZE))>>4<<4- (bfh(I64)-SYS_KERNEL_END)-SLOP,BLK_SIZE)); - DefinePrint("CFG_BOOT_RESCUE_DRV_FILE","\"/Temp/BootRescueDrv.BIN.Z\""); + DefinePrint("CFG_BOOT_RESCUE_DRV_FILE","\"/Tmp/BootRescueDrv.BIN.Z\""); } TOSBootRescueDrv1; U0 TOSBootRescueDrv2() diff --git a/Demo/AcctExample/TOSDistro.HC b/Demo/AcctExample/TOSDistro.HC index a225444..b154963 100644 --- a/Demo/AcctExample/TOSDistro.HC +++ b/Demo/AcctExample/TOSDistro.HC @@ -14,7 +14,7 @@ U8 TOSGetDrv() U0 TOSBootHDIns(U8 drv_let) { drv_let=ToUpper(drv_let); - Auto(TOS_CFG); + In(TOS_CFG); BootHDIns(drv_let); if (StrOcc(TOS_MASTER_BOOT_DRVS,drv_let)) BootMHDIns(drv_let); @@ -51,31 +51,31 @@ public U0 CopySongs(U8 threshold='7') { CDoc *doc; CDocEntry *doc_e; - CDirEntry *tempde=FilesFind("/Home/Sup1/Sup1Psalmody/*.HC*", - FUF_CLUSTER_ORDER),*tempde1=tempde; + CDirEntry *tmpde=FilesFind("/Home/Sup1/Sup1Psalmody/*.HC*", + FUF_CLUSTER_ORDER),*tmpde1=tmpde; DelTree("/Apps/Psalmody/Examples"); MkDir("/Apps/Psalmody/Examples"); - while (tempde) { - doc=DocRead(tempde->full_name); + while (tmpde) { + doc=DocRead(tmpde->full_name); doc_e=doc->head.next; if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold) - Copy(tempde->full_name,"/Apps/Psalmody/Examples"); + Copy(tmpde->full_name,"/Apps/Psalmody/Examples"); DocDel(doc); - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } U0 DistroPrep() { Del("/Home/Demo*"); - DelTree("/Home/*Temp.DD.Z"); + DelTree("/Home/*Tmp.DD.Z"); if (FileFind("/Home/Sup1/Sup1Psalmody")) CopySongs; - DelTree("/Temp"); - MkDir("/Temp"); - MkDir("/Temp/ScreenShots"); + DelTree("/Tmp"); + MkDir("/Tmp"); + MkDir("/Tmp/ScrnShots"); Touch("/PersonalMenu.DD.Z","+T"); Touch("/Home/PersonalMenu.DD.Z","+T"); @@ -108,7 +108,7 @@ U0 MakeBootRescueDrvFile() { CBlkDev *bd; if (!Let2Drv('A',FALSE)) { - Auto(CFG_BOOT_RESCUE_DRV "\n"); + In(CFG_BOOT_RESCUE_DRV "\n"); Mount; } bd=Let2BlkDev('A'); @@ -198,7 +198,7 @@ I64 MakeLineRepFile() DocClear; official=LineRep("C:/*","-r")+ LineRep("C:/Adam/*")+ - LineRep("C:/Compiler/*","-S+T")+ + LineRep("C:/Compiler/*","-S+$$")+ LineRep("C:/Kernel/*"); DocClear; CopyTree("B:/TOS","C:/Home"); @@ -225,7 +225,7 @@ U0 StaffDistroPrep() { Drv('C'); DistroPrep; - Auto(TOS_DVD_CFG); + In(TOS_DVD_CFG); BootDVDIns('C'); Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); @@ -238,7 +238,7 @@ U0 MakeStaffDistro() ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSSTAFF_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -248,7 +248,7 @@ U0 DbgDistroPrep() Drv('C'); DistroPrep; MakeBootRescueDrvFile; - Auto(TOS_DVD_DBG_CFG); + In(TOS_DVD_DBG_CFG); BootDVDIns('C'); Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); @@ -266,7 +266,7 @@ U0 MakeDbgDistro() ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSDBG_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -275,7 +275,7 @@ U0 StdDistroPrep() { Drv('C'); DistroPrep; - Auto(STD_DISTRO_DVD_CFG); + In(STD_DISTRO_DVD_CFG); BootDVDIns('C'); Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); @@ -292,7 +292,7 @@ U0 MakeStdDistro() ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSCD_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -301,7 +301,7 @@ U0 MakeStdRedSeaDistro() StdDistroPrep; RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSCD_RS_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); Drv('C'); } @@ -311,7 +311,7 @@ U0 UltraDistroPrep() StdDistroPrep; DelTree(TOS_DISTRO_DIR "/Linux"); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); - Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DAT*"); + Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DATA*"); Del(TOS_DISTRO_DIR "/Misc/PCIDevices.DD.Z"); Del(TOS_DISTRO_DIR "/Misc/Bible.TXT.Z"); @@ -320,7 +320,7 @@ U0 UltraDistroPrep() DelTree(TOS_DISTRO_DIR "/Demo"); DelTree(TOS_DISTRO_DIR "/Misc/Tour"); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); - Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DAT*"); + Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DATA*"); Del(TOS_DISTRO_DIR "/Adam/God/Vocab.DD.Z"); Del(TOS_DISTRO_DIR "/Misc/OSTestSuite.HC.Z"); Copy("C:/Home/Sup1/Sup1Distro/UltraMenu.DD.Z", @@ -334,7 +334,7 @@ U0 MakeUltraDistro() ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", 0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -343,7 +343,7 @@ U0 MakeUltraRedSeaDistro() UltraDistroPrep; RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); Drv('C'); } @@ -351,8 +351,7 @@ U0 MakeUltraRedSeaDistro() U0 MakeSup1ISO() { RedSeaISO(TOS_ISO_C_NAME,"::/Home/Sup1"); - DefinePrint("DD_TEMPLEOS_SUP1_SIZE", - "Supplemental ISO #1 (%0.2f MB)", + DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)", 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); Drv('C'); } @@ -361,40 +360,39 @@ U0 UpdateISODocDefines() { try { DefinePrint("DD_TEMPLEOSCD_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", 0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSCD_K_SIZE", - "%d KB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); + "%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); // DefinePrint("DD_TEMPLEOSCD_RS_SIZE", -// "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1f MB)", +// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", // 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024)); // DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE", -// "%d KB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024); +// "%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2f MB)", + "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", 0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSULTRA_K_SIZE", - "%d KB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); + "%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); // DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", -// "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2f MB)", +// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", // 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024)); // DefinePrint("DD_TEMPLEOSULTRA_RS_K_SIZE", -// "%d KB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024); +// "%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024); // DefinePrint("DD_TEMPLEOSDBG_SIZE", -// "Download $TX,"TempleOS V4.10",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.2f MB)", +// "Download $TX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.2fMB)", // 0.01*(100*Size("D:/Wb/TempleOSDbg.ISO","+s")/1024/1024)); // DefinePrint("DD_TEMPLEOSDBG_K_SIZE", -// "%d KB",Size("D:/Wb/TempleOSDbg.ISO","+s")/1024); +// "%dKB",Size("D:/Wb/TempleOSDbg.ISO","+s")/1024); - DefinePrint("DD_TEMPLEOS_SUP1_SIZE", - "Supplemental ISO #1 (%0.2f MB)", + DefinePrint("DD_TEMPLEOS_SUP1_SIZE","Supplemental ISO #1 (%0.2fMB)", 0.01*(100*Size("D:/Wb/TempleOSSup1.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOS_SUP1_K_SIZE", - "%d KB",Size("D:/Wb/TempleOSSup1.ISO","+s")/1024); + "%dKB",Size("D:/Wb/TempleOSSup1.ISO","+s")/1024); } catch Fs->catch_except=TRUE; } diff --git a/Demo/AcctExample/TOSHolySpirit.HC b/Demo/AcctExample/TOSHolySpirit.HC index 1286a7d..ec16c55 100644 --- a/Demo/AcctExample/TOSHolySpirit.HC +++ b/Demo/AcctExample/TOSHolySpirit.HC @@ -76,11 +76,11 @@ U0 TOSBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) DocPrint(doc_out,"-->Line:%d\n",start); verse=BibleLine2Verse(start); - DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.DD"$ (%s)\n\nGod says...\n$$RED$$",verse); + DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ (%s)\n\nGod says...\n$$RED$$",verse); Free(verse); doc_in=DocNew; - BibleLines(doc_in,start,num_lines,"::/Home/Sup1/Sup1Blog/NumBible.DD"); + BibleLines(doc_in,start,num_lines,"::/Home/Sup1/Sup1Blog/NumBible.TXT"); while (TRUE) {//Del leading blanks doc_e=doc_in->head.next; if (doc_e==doc_in) @@ -116,23 +116,23 @@ U0 TOSBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, I64 rand_i32=MIN_I64,I64 verbosity=GBP_SHORT) {//Make God pick a book passage. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.DD"$ - CDirEntry *tempde=FilesFind(files_find_mask, + CDirEntry *tmpde=FilesFind(files_find_mask, FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT), - *tempde1=tempde; + *tmpde1=tmpde; I64 i=0; U8 *st,*st2=NULL; - while (tempde) { - st=FileRead(tempde->full_name); - tempde->user_data=StrLen(st); + while (tmpde) { + st=FileRead(tmpde->full_name); + tmpde->user_data=StrLen(st); if (verbosity==GBP_LONG) "%08X-",i; - if (tempde->user_data>=len) - i+=tempde->user_data+1-len; + if (tmpde->user_data>=len) + i+=tmpde->user_data+1-len; if (verbosity==GBP_LONG) "%08X:$$LK,\"%s\",A=\"FI:%s\"$$\n", - i-1,tempde->full_name+2,tempde->full_name; + i-1,tmpde->full_name+2,tmpde->full_name; Free(st); - tempde=tempde->next; + tmpde=tmpde->next; } if (rand_i32<0) rand_i32=GodBits(32); @@ -144,21 +144,21 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, if (verbosity>=GBP_MEDIUM) "=%08X.%08X\n",i.u32[1],i.u32[0]; i=i.u32[1]; - tempde=tempde1; - while (tempde) { - if (!st2 && tempde->user_data>=len) { - i-=tempde->user_data+1-len; + tmpde=tmpde1; + while (tmpde) { + if (!st2 && tmpde->user_data>=len) { + i-=tmpde->user_data+1-len; if (i<0) { - st=FileRead(tempde->full_name); - st2=st+(tempde->user_data+1-len)+i; + st=FileRead(tmpde->full_name); + st2=st+(tmpde->user_data+1-len)+i; st2[len]=0; - "%s\nGod says...\n$$RED$$%s$$FG$$\n",tempde->full_name,st2; + "%s\nGod says...\n$$RED$$%s$$FG$$\n",tmpde->full_name,st2; Free(st); } } - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } U8 *GodVideoRead(U8 *filename,I64 line) @@ -386,20 +386,20 @@ class CCertRandDec5Form U0 GodWordBatch(CHexWordForm *url) { I64 i=0; - CDirEntry *tempde,*tempde1; + CDirEntry *tmpde,*tmpde1; FifoU8Flush(god.fifo); GodHexIns(url->rnd0); GodHexIns(url->rnd1); GodHexIns(url->rnd2); GodHexIns(url->rnd3); - tempde=tempde1=FilesFind(god.word_file_mask,god.word_fuf_flags); - while (tempde) { - PutFileLink(tempde->full_name); + tmpde=tmpde1=FilesFind(god.word_file_mask,god.word_fuf_flags); + while (tmpde) { + PutFileLink(tmpde->full_name); '\n'; - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); "\n$$RED$$"; if (*url->rnd0) @@ -443,7 +443,7 @@ U0 NISTBeaconURL(I64 timestamp) U8 *tag; CDateStruct ds; CDate dt=(timestamp-NIST_TIME_OFFSET)*CDATE_FREQ+Str2Date("1/1/1970"); - Date2Struct(&ds,dt+local_time_offset); + Date2Struct(&ds,dt+local_time_offset+30*CDATE_FREQ); "$$TX,\"NIST Beacon Date:%D Time:%02d:%02d Unix TimeStamp:%u\"," "HTML=\"https://beacon.nist.gov/home\"$$\n",dt,ds.hour,ds.min,timestamp; tag=MStrPrint("https:/beacon.nist.gov/rest/record/%d",timestamp); @@ -816,34 +816,34 @@ U0 TOSInsMisc() U0 GodCodeJmp() {//$LK,"::/Adam/God/HSNotes.DD"$ - CDirEntry *tempde1=FilesFind("/*", + CDirEntry *tmpde1=FilesFind("/*", FUF_JUST_FILES|FUF_RECURSE|FUF_JUST_SRC|FUF_CLUSTER_ORDER), - *tempde=tempde1; + *tmpde=tmpde1; I64 cnt=0,num; CDoc *doc; U8 *st; - while (tempde) { - doc=DocRead(tempde->full_name); - tempde->user_data=doc->head.y; + while (tmpde) { + doc=DocRead(tmpde->full_name); + tmpde->user_data=doc->head.y; cnt+=doc->head.y; DocDel(doc); - tempde=tempde->next; + tmpde=tmpde->next; } FifoU8Flush(god.fifo); GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS); num=GodBits(GOD_GOOD_BITS)%cnt; - tempde=tempde1; - while (tempde) { - num-=tempde->user_data; + tmpde=tmpde1; + while (tmpde) { + num-=tmpde->user_data; if (num<0) { - st=MStrPrint("FL:%s,%d",tempde->full_name,-num); + st=MStrPrint("FL:%s,%d",tmpde->full_name,-num); break; } - tempde=tempde->next; + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); Ed(st); Free(st); } diff --git a/Demo/AcctExample/TOSMisc.HC b/Demo/AcctExample/TOSMisc.HC index b665523..cf46df7 100644 --- a/Demo/AcctExample/TOSMisc.HC +++ b/Demo/AcctExample/TOSMisc.HC @@ -10,13 +10,13 @@ public U0 CursorRem(U8 *files_find_mask="*") { I64 fuf_flags=0; ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F+O"); - CDirEntry *tempde=FilesFind(files_find_mask,fuf_flags),*tempde1=tempde; - while (tempde) { - CursorRemFile(tempde->full_name); - Touch(tempde->full_name,"",,tempde->datetime); - tempde=tempde->next; + CDirEntry *tmpde=FilesFind(files_find_mask,fuf_flags),*tmpde1=tmpde; + while (tmpde) { + CursorRemFile(tmpde->full_name); + Touch(tmpde->full_name,"",,tmpde->datetime); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } U0 UncollapseFile(U8 *filename,I64 *) @@ -29,15 +29,15 @@ U0 UncollapseFile(U8 *filename,I64 *) public U0 Uncollapse(U8 *files_find_mask="*",U8 *fu_flags=NULL) { I64 fuf_flags=0; - ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+T+O"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F+$$+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - CDirEntry *tempde=FilesFind(files_find_mask,fuf_flags),*tempde1=tempde; - while (tempde && !Bt(&fuf_flags,FUf_CANCEL)) { - UncollapseFile(tempde->full_name,&fuf_flags); - Touch(tempde->full_name,"",,tempde->datetime); - tempde=tempde->next; + CDirEntry *tmpde=FilesFind(files_find_mask,fuf_flags),*tmpde1=tmpde; + while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) { + UncollapseFile(tmpde->full_name,&fuf_flags); + Touch(tmpde->full_name,"",,tmpde->datetime); + tmpde=tmpde->next; } - DirTreeDel(tempde1); + DirTreeDel(tmpde1); } #define VIDEO_FRAME_RATE 30 @@ -50,21 +50,21 @@ Bool fg_on =FALSE; U0 FrameGrabberTask(I64) {//#!/bin/bash -//for f in ./ScreenShots/*.Z; do ./Bin/TOSZ $$f; done +//for f in ./ScrnShots/*.Z; do ./Bin/TOSZ $$f; done //ffmpeg -r 8 -i VID%05d.BMP -y Movie.avi I64 frame_num=0; U8 buf[STR_LEN],buf2[STR_LEN],*st_dir; F64 end_time=tS; - Silent; //no output to screen + Silent; //no output to scrn if (fg_mode==FG_RAM_DRV) - st_dir="B:/Temp/ScreenShots"; + st_dir="B:/Tmp/ScrnShots"; else - st_dir="::/Temp/ScreenShots"; + st_dir="::/Tmp/ScrnShots"; MkDir(st_dir); while (fg_on) { StrPrint(buf,"%s/VID%05d.BMP.Z",st_dir,frame_num++); StrCpy(buf2,buf); - BMPScreenCapture(buf); + BMPScrnCapture(buf); while (TRUE) { end_time+=1.0/VIDEO_FRAME_RATE; if (end_time\n" "\n" - "\n"; + "\n"; if (!body_header) body_header= "\n" "
\n";
@@ -393,7 +393,7 @@ U0 TOSWebFile(U8 *name)
 	  "\n"
-	  "\n",
+	  "\n",
 
 	  "full_name);
-    tempde=tempde->next;
+  while (tmpde) {
+    TOSWebFile(tmpde->full_name);
+    tmpde=tmpde->next;
   }
-  DirTreeDel(tempde1);
+  DirTreeDel(tmpde1);
   Drv('C');
 }
 
 U0 FreshenWebDir(U8 *dirname)
 {//No recurse
-  CDirEntry *tempde,*tempde1;
+  CDirEntry *tmpde,*tmpde1;
   U8 *src,*dst;
 
   src=MStrPrint("D:/Wb%s",dirname);
@@ -449,11 +449,11 @@ U0 FreshenWebDir(U8 *dirname)
   Free(dst);
 
   src=MStrPrint("D:/Wb%s/*",dirname);
-  tempde=tempde1=FilesFind(src,FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
-  while (tempde) {
-    TOSWebFile(tempde->full_name);
-    tempde=tempde->next;
+  tmpde=tmpde1=FilesFind(src,FUF_JUST_FILES|FUF_JUST_TXT|FUF_CLUSTER_ORDER);
+  while (tmpde) {
+    TOSWebFile(tmpde->full_name);
+    tmpde=tmpde->next;
   }
-  DirTreeDel(tempde1);
+  DirTreeDel(tmpde1);
 }
 
diff --git a/Demo/Asm/AsmAndC1.HC b/Demo/Asm/AsmAndC1.HC
index c00b385..d553fd4 100644
--- a/Demo/Asm/AsmAndC1.HC
+++ b/Demo/Asm/AsmAndC1.HC
@@ -13,7 +13,7 @@ asm {
 
 _BEEPS::
 //You can always clobber RAX,RBX,RCX,RDX,R8,R9.  The compiler expects that.
-//See $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TEMP",A="MN:REGG_STK_TEMP"$.
+//See $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TMP",A="MN:REGG_STK_TMP"$.
 	PUSH	RBP
 	MOV	RBP,RSP
 	MOV	RCX,U64 SF_ARG1[RBP]  //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HH,SF_ARG1"$
diff --git a/Demo/Asm/AsmAndC2.HC b/Demo/Asm/AsmAndC2.HC
index adbda14..0f77bdf 100644
--- a/Demo/Asm/AsmAndC2.HC
+++ b/Demo/Asm/AsmAndC2.HC
@@ -19,7 +19,7 @@ JIFFIES_MSG:	DU8 "Jiffies:",0;
 
 _BEEPS2::
 //You can clobber RAX,RBX,RCX,RDX,R8,R9.  The compiler expects that.
-//See $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TEMP",A="MN:REGG_STK_TEMP"$.
+//See $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TMP",A="MN:REGG_STK_TMP"$.
 	PUSH	RBP
 	MOV	RBP,RSP
 	MOV	RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HH,SF_ARG1"$
diff --git a/Demo/AutoFile/AFPopUp.HC b/Demo/AutoFile/AFPopUp.HC
deleted file mode 100644
index 9d4eae8..0000000
--- a/Demo/AutoFile/AFPopUp.HC
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This is not an AutoFile.  It uses $LK,"AutoStr",A="MN:AutoStr"$
-to run text as though from an AutoFile.
-
-This example shows how you can drive pop-up
-windows.
-*/
-
-Auto(" ");
-"PopUp #1:%X\n",PopUpNoYes;
-
-AutoStr("Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);'' CH_SPACE;");
-"PopUp #2:%X\n",PopUpNoYes;
diff --git a/Demo/AutoFile/AFProfile.AUT b/Demo/AutoFile/AFProfile.AUT
deleted file mode 100644
index b7fb167..0000000
--- a/Demo/AutoFile/AFProfile.AUT
+++ /dev/null
@@ -1,11 +0,0 @@
-/* To run this, do a directory, right click on
-this file's name and sel "AutoFile".
-Or, type $LK,"AutoFile",A="MN:AutoFile"$(filename);
-See $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$ in the glossary for more info.
-
-Profiling does not $UL,1$require$UL,0$ autofiles.
-*/
-"$$RED$$Prof;$$FG$$\n";
-"$$RED$$//Collecting Data$$FG$$";
-PressAKey;
-"\n$$RED$$ProfRep;$$FG$$\n";
\ No newline at end of file
diff --git a/Demo/Carry.HC b/Demo/Carry.HC
index 91d0566..c733007 100644
--- a/Demo/Carry.HC
+++ b/Demo/Carry.HC
@@ -31,15 +31,15 @@ BigShift;
 U0 Branch()
 {
   U64 i=0xFFCC3311,j;
-  "Branch\n";
+  'Branch\n';
   for (j=0;j<64;j++) {
     i<<=1;
     if (Carry)
-      "1";
+      '1';
     else
-      "0";
+      '0';
   }
-  "\n";
+  '\n';
 }
 
 Branch;
diff --git a/Demo/ClassMeta.HC b/Demo/ClassMeta.HC
index 4578291..88eed93 100644
--- a/Demo/ClassMeta.HC
+++ b/Demo/ClassMeta.HC
@@ -29,14 +29,14 @@ class Test2Struct
 
 U0 DumpStruct(U8 *_d,U8 *class_name=lastclass)
 {//lastclass is keyword.  See $LK,"::/Demo/LastClass.HC"$.
-  CHashClass *tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS);
+  CHashClass *tmpc=HashFind(class_name,Fs->hash_table,HTT_CLASS);
   U8 *print_str;
   I64 *q,dft_val;
   U0 (* fp_output_fun)(I64 i);
   F64 percentile;
-  if (!tempc) return;
+  if (!tmpc) return;
   CMemberLst *ml;
-  ml=tempc->member_lst_and_root;
+  ml=tmpc->member_lst_and_root;
   while (ml) {
     "%s:",ml->str;
 
diff --git a/Demo/Directives.HC b/Demo/Directives.HC
index 7032462..57488e0 100644
--- a/Demo/Directives.HC
+++ b/Demo/Directives.HC
@@ -1,13 +1,13 @@
 U0 Directives()
 {
-  "Date   :%s\n",__DATE__;
-  "Time   :%s\n",__TIME__;
-  "File   :%s\n",__FILE__;
-  "Dir    :%s\n",__DIR__;
-  "Line   :%d\n",__LINE__;
-  "CmdLine:%d\n",__CMD_LINE__;
-  "Inst1  :%P:%08X\n",$$,$$;
-  "Inst2  :%P:%08X\n",$$,$$;
+  "Date\t:%s\n",__DATE__;
+  "Time\t:%s\n",__TIME__;
+  "File\t:%s\n",__FILE__;
+  "Dir\t:%s\n",__DIR__;
+  "Line\t:%d\n",__LINE__;
+  "CmdLine\t:%d\n",__CMD_LINE__;
+  "Inst1\t:%P:%08X\n",$$,$$;
+  "Inst2\t:%P:%08X\n",$$,$$;
 }
 
 Directives;
diff --git a/Demo/DolDoc/FileRead.HC b/Demo/DolDoc/FileRead.HC
index 3e59260..9a9f6b6 100644
--- a/Demo/DolDoc/FileRead.HC
+++ b/Demo/DolDoc/FileRead.HC
@@ -38,7 +38,7 @@ public U0 DocProfile(U8 *filename,I64 flags)
       "%4Z:%d\n",i,"ST_DOC_CMDS",cmd_stats[i];
 
   "\n$$GREEN$$'$$PURPLE$$doc_e->type.u8[1]$$GREEN$$' is "
-	"the screen color attr of the "
+	"the scrn color attr of the "
 	"entry.  '$$PURPLE$$doc_e->type.u16[1]"
 	"$$GREEN$$' is some flags for blinking and "
 	"stuff.  See $$LK,\"Doc Type Flag "
diff --git a/Demo/DolDoc/TreeDemo.HC b/Demo/DolDoc/TreeDemo.HC
index 9797b77..a0dea47 100644
--- a/Demo/DolDoc/TreeDemo.HC
+++ b/Demo/DolDoc/TreeDemo.HC
@@ -1,25 +1,25 @@
-U0 TreeSub(CDoc *doc,CDirEntry *tempde)
+U0 TreeSub(CDoc *doc,CDirEntry *tmpde)
 {
-  CDirEntry *tempde1;
-  while (tempde) {
-    tempde1=tempde->next;
-    if (tempde->attr & RS_ATTR_DIR) {
+  CDirEntry *tmpde1;
+  while (tmpde) {
+    tmpde1=tmpde->next;
+    if (tmpde->attr & RS_ATTR_DIR) {
       DocPrint(doc,"$$TR,\"\"$$");
       DocPrint(doc,"$$MA,T=\"%s\",LM=\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
-	    tempde->name,tempde->full_name);
-      if (tempde->sub) {
+	    tmpde->name,tmpde->full_name);
+      if (tmpde->sub) {
 	DocPrint(doc,"$$ID,+2$$");
-	TreeSub(doc,tempde->sub);
+	TreeSub(doc,tmpde->sub);
 	DocPrint(doc,"$$ID,-2$$");
       }
     } else
       DocPrint(doc,"$$LK,\"%s\",A=\"FI:%s\"$$\n",
-	    tempde->name,tempde->full_name);
+	    tmpde->name,tmpde->full_name);
 //Note there is also a routine
       //to delete an entire CDirEntry tree.
       //See $LK,"DirTreeDel",A="MN:DirTreeDel"$().
-    DirEntryDel(tempde);
-    tempde=tempde1;
+    DirEntryDel(tmpde);
+    tmpde=tmpde1;
   }
 }
 
diff --git a/Demo/DolDoc/UnusedDefine.HC b/Demo/DolDoc/UnusedDefine.HC
index 57a05d0..b143393 100644
--- a/Demo/DolDoc/UnusedDefine.HC
+++ b/Demo/DolDoc/UnusedDefine.HC
@@ -16,7 +16,7 @@ U0 UnusedDefineScan()
   CDoc *old_put_doc,*old_display_doc,*doc;
   I64 i,cnt=0;
   CHashTable *table;
-  CHash *temph;
+  CHash *tmph;
   CDocEntry *doc_e,*doc_e2;
   Bool old_silent=IsSilent;
 
@@ -24,11 +24,11 @@ U0 UnusedDefineScan()
     table=Fs->hash_table;
     while (table) {
       for (i=0;i<=table->mask;i++) {
-	temph=table->body[i];
-	while (temph) {
-	  if (temph->type&HTT_DEFINE_STR)
+	tmph=table->body[i];
+	while (tmph) {
+	  if (tmph->type&HTT_DEFINE_STR)
 	    cnt++;
-	  temph=temph->next;
+	  tmph=tmph->next;
 	}
       }
       table=table->next;
@@ -41,22 +41,22 @@ U0 UnusedDefineScan()
     table=Fs->hash_table;
     while (table) {
       for (i=0;i<=table->mask;i++) {
-	temph=table->body[i];
-	while (temph) {
-	  if (temph->type&HTT_DEFINE_STR) {
+	tmph=table->body[i];
+	while (tmph) {
+	  if (tmph->type&HTT_DEFINE_STR) {
 	    progress1++;
-	    if (FileOcc(temph->str,"/*","+l-i+T")==1) {
+	    if (FileOcc(tmph->str,"/*","+l-i+$$")==1) {
 	      doc=DocNew;
 	      old_put_doc=DocPut;
 	      old_display_doc=DocDisplay;
 	      Fs->put_doc=Fs->display_doc=doc;
-	      Find(temph->str,"/*","+l-i+T");
+	      Find(tmph->str,"/*","+l-i+$$");
 	      Fs->put_doc=old_put_doc;
 	      Fs->display_doc=old_display_doc;
 	      doc_e=doc->head.next;
 	      while (doc_e!=doc) {
 		if (doc_e->type_u8==DOCT_LINK) {
-		  "%s ",temph->str;
+		  "%s ",tmph->str;
 		  doc_e2=DocEntryCopy(doc,doc_e);
 		  DocInsEntry(old_put_doc,doc_e2);
 		  '\n';
@@ -66,7 +66,7 @@ U0 UnusedDefineScan()
 	      DocDel(doc);
 	    }
 	  }
-	  temph=temph->next;
+	  tmph=tmph->next;
 	}
       }
       table=table->next;
diff --git a/Demo/Dsk/FPrintF.HC b/Demo/Dsk/FPrintF.HC
index 3316f7a..a25e845 100644
--- a/Demo/Dsk/FPrintF.HC
+++ b/Demo/Dsk/FPrintF.HC
@@ -4,28 +4,28 @@ hold the file until you are done.  The $LK,"CDoc",A="MN:CDoc"$
 framework is convenient for this.
 */
 
-U0 TreeSub(CDoc *doc,CDirEntry *tempde)
+U0 TreeSub(CDoc *doc,CDirEntry *tmpde)
 {
-  CDirEntry *tempde1;
-  while (tempde) {
-    tempde1=tempde->next;
-    if (tempde->attr & RS_ATTR_DIR) {
+  CDirEntry *tmpde1;
+  while (tmpde) {
+    tmpde1=tmpde->next;
+    if (tmpde->attr & RS_ATTR_DIR) {
       DocPrint(doc,"$$TR,\"\"$$");
       DocPrint(doc,"$$MA,T=\"%s\",LM=\"Cd(\\\"%s\\\");Dir;\n\"$$\n",
-	    tempde->name,tempde->full_name);
-      if (tempde->sub) {
+	    tmpde->name,tmpde->full_name);
+      if (tmpde->sub) {
 	DocPrint(doc,"$$ID,+2$$");
-	TreeSub(doc,tempde->sub);
+	TreeSub(doc,tmpde->sub);
 	DocPrint(doc,"$$ID,-2$$");
       }
     } else
       DocPrint(doc,"$$LK,\"%s\",A=\"FI:%s\"$$\n",
-	    tempde->name,tempde->full_name);
+	    tmpde->name,tmpde->full_name);
 //Note there is also a routine
       //to delete an entire CDirEntry tree.
       //See $LK,"DirTreeDel",A="MN:DirTreeDel"$().
-    DirEntryDel(tempde);
-    tempde=tempde1;
+    DirEntryDel(tmpde);
+    tmpde=tmpde1;
   }
 }
 
diff --git a/Demo/Dsk/SerializeTree.HC b/Demo/Dsk/SerializeTree.HC
index d754e62..9c77336 100644
--- a/Demo/Dsk/SerializeTree.HC
+++ b/Demo/Dsk/SerializeTree.HC
@@ -6,16 +6,16 @@ other end.
 
 U0 SerializeTree()
 {
-  CDirEntry *tempde=FilesFind("/Demo/*.DD*",FUF_RECURSE);
+  CDirEntry *tmpde=FilesFind("/Demo/*.DD*",FUF_RECURSE);
   I64 size;
   U8 *ptr;
   CArcCompress *arc;
 
-  LineRep1(tempde); //We have $LK,"CDirEntry",A="MN:CDirEntry"$.fullname
-  LineRep2(DocPut,tempde);
+  LineRep1(tmpde); //We have $LK,"CDirEntry",A="MN:CDirEntry"$.fullname
+  LineRep2(DocPut,tmpde);
   "$$GREEN$$***************$$FG$$\n";
-  ptr=DirTreeSerialize(tempde,&size);
-  DirTreeDel(tempde);
+  ptr=DirTreeSerialize(tmpde,&size);
+  DirTreeDel(tmpde);
   D(ptr,size);
   "$$GREEN$$***************:%7d$$FG$$\n",size;
   arc=CompressBuf(ptr,size);
@@ -27,9 +27,9 @@ U0 SerializeTree()
   Free(arc);
   D(ptr,size);
   "$$GREEN$$***************:%7d$$FG$$\n",size;
-  tempde=DirTreeUnserialize(ptr);
-  LineRep2(DocPut,tempde); //We don't have $LK,"CDirEntry",A="MN:CDirEntry"$.fullname
-  DirTreeDel(tempde);
+  tmpde=DirTreeUnserialize(ptr);
+  LineRep2(DocPut,tmpde); //We don't have $LK,"CDirEntry",A="MN:CDirEntry"$.fullname
+  DirTreeDel(tmpde);
 }
 
 SerializeTree;
diff --git a/Demo/ExtChars.HC b/Demo/ExtChars.HC
index eb92cd0..7164c30 100644
--- a/Demo/ExtChars.HC
+++ b/Demo/ExtChars.HC
@@ -1,4 +1,3 @@
-
 U8 face[8]={
 
 0b00111100,
@@ -30,7 +29,7 @@ U0 SrcExample()
 }
 
 SrcExample;
-//See $LK,"::/Demo/ScreenCodes.HC"$, $LK,"::/Demo/Graphics/CharAnimation.HC"$,
+//See $LK,"::/Demo/ScrnCodes.HC"$, $LK,"::/Demo/Graphics/CharAnimation.HC"$,
 //$LK,"::/Demo/Games/CharDemo.HC"$ and $LK,"::/Demo/Graphics/FontEd.HC"$.
 
 //See $LK,"chars_bmp_alpha",A="MN:chars_bmp_alpha"$ and $LK,"chars_bmp_alpha_numeric",A="MN:chars_bmp_alpha_numeric"$.
diff --git a/Demo/Games/BattleLines.HC b/Demo/Games/BattleLines.HC
index 4d0f74a..bdde3f9 100644
Binary files a/Demo/Games/BattleLines.HC and b/Demo/Games/BattleLines.HC differ
diff --git a/Demo/Games/BigGuns.HC b/Demo/Games/BigGuns.HC
index 1a0bc9a..4a9ef5b 100644
Binary files a/Demo/Games/BigGuns.HC and b/Demo/Games/BigGuns.HC differ
diff --git a/Demo/Games/BlackDiamond.HC b/Demo/Games/BlackDiamond.HC
index 745a21d..62ef23e 100644
Binary files a/Demo/Games/BlackDiamond.HC and b/Demo/Games/BlackDiamond.HC differ
diff --git a/Demo/Games/BomberGolf.HC b/Demo/Games/BomberGolf.HC
index 57f4337..ac0b54e 100644
Binary files a/Demo/Games/BomberGolf.HC and b/Demo/Games/BomberGolf.HC differ
diff --git a/Demo/Games/CastleFrankenstein.HC b/Demo/Games/CastleFrankenstein.HC
index bd612e6..59da621 100644
--- a/Demo/Games/CastleFrankenstein.HC
+++ b/Demo/Games/CastleFrankenstein.HC
@@ -83,7 +83,7 @@ $SP,"<1>",BI=1$
 
 
 
-#define SCREEN_SCALE		512
+#define SCRN_SCALE		512
 #define PLOT_GRID_WIDTH		24
 #define PLOT_GRID_HEIGHT	24
 #define MAN_HEIGHT		125
@@ -110,10 +110,10 @@ U0 CFTransform(CDC *dc,I64 *x,I64 *y,I64 *z)
 {
   I64 zz;
   Mat4x4MulXYZ(dc->r,x,y,z);
-  zz=SCREEN_SCALE/3+*z;
+  zz=SCRN_SCALE/3+*z;
   if (zz<1) zz=1;
-  *x=SCREEN_SCALE/2* *x/zz;
-  *y=SCREEN_SCALE/2* (*y+MAN_HEIGHT)/zz;
+  *x=SCRN_SCALE/2* *x/zz;
+  *y=SCRN_SCALE/2* (*y+MAN_HEIGHT)/zz;
   *x+=dc->x;
   *y+=dc->y;
   *z+=dc->z;
@@ -131,8 +131,8 @@ Bool LOSPlot(U8 *,I64 x,I64 y,I64)
 
 Bool LOS(I64 x1,I64 y1,I64 x2,I64 y2)
 {//Line of sight
-  return Line(NULL,x1*LOS_SCALE/SCREEN_SCALE,y1*LOS_SCALE/SCREEN_SCALE,0,
-	x2*LOS_SCALE/SCREEN_SCALE,y2*LOS_SCALE/SCREEN_SCALE,0,&LOSPlot);
+  return Line(NULL,x1*LOS_SCALE/SCRN_SCALE,y1*LOS_SCALE/SCRN_SCALE,0,
+	x2*LOS_SCALE/SCRN_SCALE,y2*LOS_SCALE/SCRN_SCALE,0,&LOSPlot);
 }
 
 U0 DrawIt(CTask *task,CDC *dc)
@@ -141,28 +141,28 @@ U0 DrawIt(CTask *task,CDC *dc)
 	c,x1w,y1w,x1h,y1h,xh,yh,zh,
 	cx=task->pix_width/2,
 	cy=task->pix_height/2;
-  U8 *temps;
+  U8 *tmps;
   F64 tt;
   CD3I32 poly[4];
-  Monster *tempm;
+  Monster *tmpm;
 
   DCDepthBufAlloc(dc);
   MemSet(panels_processed_bitmap,0,(map_width*map_height+7)>>3);
 
-  //World to screen
+  //World to scrn
   Mat4x4RotZ(dc->r,man_é+ã/2);
   Mat4x4RotX(dc->r,ã/2);
   DCMat4x4Set(dc,dc->r);
 
-  xh=-man_xx/SCREEN_SCALE; yh=-man_yy/SCREEN_SCALE; zh=0;
+  xh=-man_xx/SCRN_SCALE; yh=-man_yy/SCRN_SCALE; zh=0;
   Mat4x4MulXYZ(dc->r,&xh,&yh,&zh);
   Mat4x4TranslationEqu(dc->r,xh,yh,zh);
 
-  //Screen to world
+  //Scrn to world
   s2w=Mat4x4IdentNew(task);
   Mat4x4RotX(s2w,-ã/2);
   Mat4x4RotZ(s2w,-man_é-ã/2);
-  xh=0; yh=0; zh=SCREEN_SCALE;
+  xh=0; yh=0; zh=SCRN_SCALE;
   Mat4x4MulXYZ(s2w,&xh,&yh,&zh);
 
   //Rotate light source
@@ -194,12 +194,12 @@ U0 DrawIt(CTask *task,CDC *dc)
     x1w=x1h;
     y1w=y1h;
     for (i=0;icolor=DKGRAY;
@@ -208,62 +208,62 @@ U0 DrawIt(CTask *task,CDC *dc)
 	  poly[0].x=x;
 	  poly[0].y=y;
 	  poly[0].z=0;
-	  poly[1].x=x+SCREEN_SCALE;
+	  poly[1].x=x+SCRN_SCALE;
 	  poly[1].y=y;
 	  poly[1].z=0;
-	  poly[2].x=x+SCREEN_SCALE;
-	  poly[2].y=y+SCREEN_SCALE;
+	  poly[2].x=x+SCRN_SCALE;
+	  poly[2].y=y+SCRN_SCALE;
 	  poly[2].z=0;
 	  poly[3].x=x;
-	  poly[3].y=y+SCREEN_SCALE;
+	  poly[3].y=y+SCRN_SCALE;
 	  poly[3].z=0;
 	  GrFillPoly3(dc,4,poly);
 	  if (c==GREEN) {
-	    x1=x+SCREEN_SCALE/2;
-	    y1=y+SCREEN_SCALE/2;
+	    x1=x+SCRN_SCALE/2;
+	    y1=y+SCRN_SCALE/2;
 	    z1=0;
 	    DCTransform(dc,&x1,&y1,&z1);
 	    if (z1>0)
-	      SpriteMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",BI=5$,r3);
+	      SpriteMat3B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<5>",BI=5$,r3);
 	  } else if (c==YELLOW) {
-	    x1=x+SCREEN_SCALE/2;
-	    y1=y+SCREEN_SCALE/2;
+	    x1=x+SCRN_SCALE/2;
+	    y1=y+SCRN_SCALE/2;
 	    z1=0;
 	    DCTransform(dc,&x1,&y1,&z1);
 	    if (z1>0)
-	      SpriteMat3B(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<6>",BI=6$,r3);
+	      SpriteMat3B(dc,x+SCRN_SCALE/2,y+SCRN_SCALE/2,0,$IB,"<6>",BI=6$,r3);
 	  }
 
 	  if (!map[(yy+1)*map_width+xx]) {
 	    dc->color=LTGRAY;
 	    poly[0].x=x;
-	    poly[0].y=y+SCREEN_SCALE;
+	    poly[0].y=y+SCRN_SCALE;
 	    poly[0].z=0;
-	    poly[1].x=x+SCREEN_SCALE;
-	    poly[1].y=y+SCREEN_SCALE;
+	    poly[1].x=x+SCRN_SCALE;
+	    poly[1].y=y+SCRN_SCALE;
 	    poly[1].z=0;
-	    poly[2].x=x+SCREEN_SCALE;
-	    poly[2].y=y+SCREEN_SCALE;
-	    poly[2].z=SCREEN_SCALE;
+	    poly[2].x=x+SCRN_SCALE;
+	    poly[2].y=y+SCRN_SCALE;
+	    poly[2].z=SCRN_SCALE;
 	    poly[3].x=x;
-	    poly[3].y=y+SCREEN_SCALE;
-	    poly[3].z=SCREEN_SCALE;
+	    poly[3].y=y+SCRN_SCALE;
+	    poly[3].z=SCRN_SCALE;
 	    GrFillPoly3(dc,4,poly);
 	  }
 	  if (!map[yy*map_width+xx+1]) {
 	    dc->color=WHITE;
-	    poly[0].x=x+SCREEN_SCALE;
+	    poly[0].x=x+SCRN_SCALE;
 	    poly[0].y=y;
 	    poly[0].z=0;
-	    poly[1].x=x+SCREEN_SCALE;
-	    poly[1].y=y+SCREEN_SCALE;
+	    poly[1].x=x+SCRN_SCALE;
+	    poly[1].y=y+SCRN_SCALE;
 	    poly[1].z=0;
-	    poly[2].x=x+SCREEN_SCALE;
-	    poly[2].y=y+SCREEN_SCALE;
-	    poly[2].z=SCREEN_SCALE;
-	    poly[3].x=x+SCREEN_SCALE;
+	    poly[2].x=x+SCRN_SCALE;
+	    poly[2].y=y+SCRN_SCALE;
+	    poly[2].z=SCRN_SCALE;
+	    poly[3].x=x+SCRN_SCALE;
 	    poly[3].y=y;
-	    poly[3].z=SCREEN_SCALE;
+	    poly[3].z=SCRN_SCALE;
 	    GrFillPoly3(dc,4,poly);
 	  }
 	  if (!map[(yy-1)*map_width+xx]) {
@@ -271,15 +271,15 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    poly[0].x=x;
 	    poly[0].y=y;
 	    poly[0].z=0;
-	    poly[1].x=x+SCREEN_SCALE;
+	    poly[1].x=x+SCRN_SCALE;
 	    poly[1].y=y;
 	    poly[1].z=0;
-	    poly[2].x=x+SCREEN_SCALE;
+	    poly[2].x=x+SCRN_SCALE;
 	    poly[2].y=y;
-	    poly[2].z=SCREEN_SCALE;
+	    poly[2].z=SCRN_SCALE;
 	    poly[3].x=x;
 	    poly[3].y=y;
-	    poly[3].z=SCREEN_SCALE;
+	    poly[3].z=SCRN_SCALE;
 	    GrFillPoly3(dc,4,poly);
 	  }
 	  if (!map[yy*map_width+xx-1]) {
@@ -288,14 +288,14 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    poly[0].y=y;
 	    poly[0].z=0;
 	    poly[1].x=x;
-	    poly[1].y=y+SCREEN_SCALE;
+	    poly[1].y=y+SCRN_SCALE;
 	    poly[1].z=0;
 	    poly[2].x=x;
-	    poly[2].y=y+SCREEN_SCALE;
-	    poly[2].z=SCREEN_SCALE;
+	    poly[2].y=y+SCRN_SCALE;
+	    poly[2].z=SCRN_SCALE;
 	    poly[3].x=x;
 	    poly[3].y=y;
-	    poly[3].z=SCREEN_SCALE;
+	    poly[3].z=SCRN_SCALE;
 	    GrFillPoly3(dc,4,poly);
 	  }
 	}
@@ -308,9 +308,9 @@ U0 DrawIt(CTask *task,CDC *dc)
   }
 
   //Draw Monsters
-  for (i=0,tempm=monsters;ix;
-    y=tempm->y;
+  for (i=0,tmpm=monsters;ix;
+    y=tmpm->y;
     if (LOS(x,y,man_xx,man_yy)) {
       x-=man_xx;
       y-=man_yy;
@@ -319,13 +319,13 @@ U0 DrawIt(CTask *task,CDC *dc)
       zz=0;
       DCTransform(dc,&xx,&yy,&zz);
       if (zz>0) {
-	if (tempm->dead)
+	if (tmpm->dead)
 	  SpriteMat3B(dc,x,y,0,$IB,"<2>",BI=2$,r2);
 	else {
 	  tt=Tri(tS,1.0);
-	  temps=SpriteInterpolate(tt,$IB,"<3>",BI=3$,$IB,"<4>",BI=4$);
-	  SpriteMat3B(dc,x,y,0,temps,r1);
-	  Free(temps);
+	  tmps=SpriteInterpolate(tt,$IB,"<3>",BI=3$,$IB,"<4>",BI=4$);
+	  SpriteMat3B(dc,x,y,0,tmps,r1);
+	  Free(tmps);
 	}
       }
     }
@@ -350,12 +350,12 @@ U0 DrawIt(CTask *task,CDC *dc)
 
     //Draw Things on heads-up Map
   dc->color=LTPURPLE;
-  for (i=0,tempm=monsters;idead)
-      GrPlot3(dc,2*(tempm->x/SCREEN_SCALE),
-	    2*(map_height-1-tempm->y/SCREEN_SCALE),0);
+  for (i=0,tmpm=monsters;idead)
+      GrPlot3(dc,2*(tmpm->x/SCRN_SCALE),
+	    2*(map_height-1-tmpm->y/SCRN_SCALE),0);
   dc->color=LTCYAN;
-  GrPlot3(dc,2*(man_xx/SCREEN_SCALE),2*(map_height-1-man_yy/SCREEN_SCALE),0);
+  GrPlot3(dc,2*(man_xx/SCRN_SCALE),2*(map_height-1-man_yy/SCRN_SCALE),0);
 
   if (tf) {
     dc->color=LTRED;
@@ -378,13 +378,13 @@ U0 Fire()
 {
   I64 i,x,y;
   F64 d,dx,dy,xx=Cos(man_é),yy=Sin(man_é);
-  Monster *tempm;
+  Monster *tmpm;
 
   Noise(100,300,1000);
-  for (i=0,tempm=monsters;ix;
-    y=tempm->y;
-    if (!tempm->dead &&
+  for (i=0,tmpm=monsters;ix;
+    y=tmpm->y;
+    if (!tmpm->dead &&
 	  LOS(x,y,man_xx,man_yy)) {
       dx=x-man_xx;
       dy=man_yy-y;
@@ -392,7 +392,7 @@ U0 Fire()
 	dx/=d;
 	dy/=d;
 	if (dx*xx+dy*yy>0.995) {
-	  tempm->dead=TRUE;
+	  tmpm->dead=TRUE;
 	  if (!--monsters_left) {
 	    tf=tS;
 	    if (tf-t0dead=FALSE;
+  for (i=0,tmpm=monsters;idead=FALSE;
     do {
-      tempm->x=RandU64%((map_width-2)*SCREEN_SCALE)+SCREEN_SCALE;
-      tempm->y=RandU64%((map_height-2)*SCREEN_SCALE)+SCREEN_SCALE;
-    } while (!map[(tempm->y/SCREEN_SCALE)*map_width+tempm->x/SCREEN_SCALE]);
+      tmpm->x=RandU64%((map_width-2)*SCRN_SCALE)+SCRN_SCALE;
+      tmpm->y=RandU64%((map_height-2)*SCRN_SCALE)+SCRN_SCALE;
+    } while (!map[(tmpm->y/SCRN_SCALE)*map_width+tmpm->x/SCRN_SCALE]);
   }
   monsters_left=NUM_MONSTERS;
   tf=0;
@@ -443,33 +443,33 @@ U0 Init()
 U0 AnimateTask(I64)
 {
   I64 i,x,y,dd;
-  Monster *tempm;
+  Monster *tmpm;
 
   while (TRUE) {
-    dd=0.25*SCREEN_SCALE*Sin(tS/2);
-    for (i=0,tempm=monsters;idead) {
-	x=tempm->x;
-	y=tempm->y;
+    dd=0.25*SCRN_SCALE*Sin(tS/2);
+    for (i=0,tmpm=monsters;idead) {
+	x=tmpm->x;
+	y=tmpm->y;
 	if (i&1)
 	  x+=dd;
 	else
 	  y+=dd;
-	if (0<=x<=map_width*SCREEN_SCALE &&
-	      0<=y<=map_height*SCREEN_SCALE &&
-	      map[(y/SCREEN_SCALE)*map_width+x/SCREEN_SCALE]) {
-	  if (!map[(y/SCREEN_SCALE)*map_width+x/SCREEN_SCALE+1] &&
-		x-RoundI64(x,SCREEN_SCALE)>SCREEN_SCALE/2 ||
-		!map[(y/SCREEN_SCALE)*map_width+x/SCREEN_SCALE-1] &&
-		x-RoundI64(x,SCREEN_SCALE)SCREEN_SCALE/2 ||
-		!map[(y/SCREEN_SCALE-1)*map_width+x/SCREEN_SCALE] &&
-		y-RoundI64(y,SCREEN_SCALE)x=x;
-	  tempm->y=y;
+	if (0<=x<=map_width*SCRN_SCALE &&
+	      0<=y<=map_height*SCRN_SCALE &&
+	      map[(y/SCRN_SCALE)*map_width+x/SCRN_SCALE]) {
+	  if (!map[(y/SCRN_SCALE)*map_width+x/SCRN_SCALE+1] &&
+		x-RoundI64(x,SCRN_SCALE)>SCRN_SCALE/2 ||
+		!map[(y/SCRN_SCALE)*map_width+x/SCRN_SCALE-1] &&
+		x-RoundI64(x,SCRN_SCALE)SCRN_SCALE/2 ||
+		!map[(y/SCRN_SCALE-1)*map_width+x/SCRN_SCALE] &&
+		y-RoundI64(y,SCRN_SCALE)x=x;
+	  tmpm->y=y;
 	}
       }
     Sleep(20);
@@ -497,13 +497,13 @@ U0 SongTask(I64)
 
 U0 MoveMan(F64 é)
 {
-  I64 x,y,color,step=SCREEN_SCALE/2;
+  I64 x,y,color,step=SCRN_SCALE/2;
   do {
     x=man_xx+step*Cos(é);
     y=man_yy-step*Sin(é);
-    x=Clamp(x,0,map_width*SCREEN_SCALE);
-    y=Clamp(y,0,map_height*SCREEN_SCALE);
-    color=map[y/SCREEN_SCALE*map_width+x/SCREEN_SCALE];
+    x=Clamp(x,0,map_width*SCRN_SCALE);
+    y=Clamp(y,0,map_height*SCRN_SCALE);
+    color=map[y/SCRN_SCALE*map_width+x/SCRN_SCALE];
     if (color==DKGRAY || color==GREEN) {
       man_xx=x;
       man_yy=y;
diff --git a/Demo/Games/CharDemo.HC b/Demo/Games/CharDemo.HC
index 68cf082..97093d9 100644
--- a/Demo/Games/CharDemo.HC
+++ b/Demo/Games/CharDemo.HC
@@ -1,7 +1,7 @@
 /*
 Char graphics are how games on the C64 were made.  You don't need to do it
 this way, unless for fun.  You can just make device context bigger than
-the screen and scroll around.
+the scrn and scroll around.
 
 See  $LK,"::/Demo/Games/RawHide.HC"$ or $LK,"::/Demo/Games/BigGuns.HC"$.
 
@@ -17,17 +17,17 @@ The nice thing about character graphics are the animations.
 
 U16 map[MAP_HEIGHT][MAP_WIDTH];
 
-I64 screen_pix_x,screen_pix_y;
+I64 scrn_pix_x,scrn_pix_y;
 
 U0 DrawIt(CTask *task,CDC *)
 {
   U16 *ptr;
-  I64 i,j,y=screen_pix_y>>3;
+  I64 i,j,y=scrn_pix_y>>3;
   gr.hide_col=gr.hide_row=TRUE;
-  gr.pan_text_x=7-screen_pix_x&7;
-  gr.pan_text_y=7-screen_pix_y&7;
+  gr.pan_text_x=7-scrn_pix_x&7;
+  gr.pan_text_y=7-scrn_pix_y&7;
   for (i=0;iwin_height;i++) {
-    ptr=&map[y++][screen_pix_x>>3];
+    ptr=&map[y++][scrn_pix_x>>3];
     for (j=0;jwin_width;j++)
 	//By the time you clip to window and handle Fs->scroll_x,Fs->scroll_y,
 	//it is too much trouble to do raw access to gr.text_base like we do
@@ -58,7 +58,7 @@ U0 AnimateTask(I64)
   while (TRUE) {
     font[CH_WATER]=waves[i++&0x3];
     Sleep(200);
-    WinMgrSync;
+    Refresh;
   }
 }
 
@@ -66,9 +66,9 @@ U0 ScrollTaskX(I64 sign)
 {
   I64 i;
   for (i=0;i<32;i++) {
-    screen_pix_x=ClampI64(screen_pix_x+sign,0,
+    scrn_pix_x=ClampI64(scrn_pix_x+sign,0,
 	  (MAP_WIDTH-TEXT_COLS+1)*FONT_WIDTH);
-    WinMgrSync;
+    Refresh;
   }
 }
 
@@ -76,17 +76,17 @@ U0 ScrollTaskY(I64 sign)
 {
   I64 i;
   for (i=0;i<32;i++) {
-    screen_pix_y=ClampI64(screen_pix_y+sign,0,
+    scrn_pix_y=ClampI64(scrn_pix_y+sign,0,
 	  (MAP_HEIGHT-TEXT_ROWS+2)*FONT_HEIGHT);
-    WinMgrSync;
+    Refresh;
   }
 }
 
 U0 Init()
 {
   I64 i,j,x,y;
-  screen_pix_x=(MAP_WIDTH-TEXT_COLS)>>1*FONT_WIDTH;
-  screen_pix_y=(MAP_HEIGHT-TEXT_ROWS)>>1*FONT_HEIGHT;
+  scrn_pix_x=(MAP_WIDTH-TEXT_COLS)>>1*FONT_WIDTH;
+  scrn_pix_y=(MAP_HEIGHT-TEXT_ROWS)>>1*FONT_HEIGHT;
 
   MemSetU16(map,CH_WATER+(BLUE<<4+LTBLUE)<<8,MAP_WIDTH*MAP_HEIGHT);
   for (i=1;i",BI=7$ ,$IB,"<5>",BI=5$ ,NULL,NULL,NULL,NULL,NULL,
 U8 *tiles2[16]={NULL,$IB,"<8>",BI=8$ ,$IB,"<5>",BI=5$ ,NULL,NULL,NULL,NULL,NULL,
   $IB,"<6>",BI=6$ ,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
 
-#define SCREEN_SCALE	24
-#define SCREEN_WIDTH	24
-#define SCREEN_HEIGHT	24
-I64 screen_x,screen_y;
+#define SCRN_SCALE	24
+#define SCRN_WIDTH	24
+#define SCRN_HEIGHT	24
+I64 scrn_x,scrn_y;
 
 #define MAP_SCALE	4
 I64 map_width,map_height;
@@ -97,7 +97,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   CD3I32 poly[4];
   U8 **_tiles;
   F64 tt;
-  Monster *tempm;
+  Monster *tmpm;
 
   if (Blink(5))
     _tiles=tiles1;
@@ -115,32 +115,32 @@ U0 DrawIt(CTask *task,CDC *dc)
   //if you did it like $LK,"::/Demo/Games/BigGuns.HC"$
   //with a $LK,"CDC",A="MN:CDC"$.
 
-  for (y=-SCREEN_HEIGHT/2;ycolor=color;
 	      GrFillPoly3(dc_t,4,poly);
@@ -150,23 +150,23 @@ U0 DrawIt(CTask *task,CDC *dc)
       }
   }
 
-  for (y=-SCREEN_HEIGHT/2;y",BI=9$);
 	    }
 	    if (xx+1",BI=10$);
@@ -176,13 +176,13 @@ U0 DrawIt(CTask *task,CDC *dc)
       }
   }
 
-  for (i=0,tempm=monsters;idead && LOS(tempm->x,tempm->y,man_x,man_y)) {
-      x1=(tempm->x-screen_x)*SCREEN_SCALE+SCREEN_SCALE/2;
-      y1=(tempm->y-screen_y)*SCREEN_SCALE+SCREEN_SCALE/2;
+  for (i=0,tmpm=monsters;idead && LOS(tmpm->x,tmpm->y,man_x,man_y)) {
+      x1=(tmpm->x-scrn_x)*SCRN_SCALE+SCRN_SCALE/2;
+      y1=(tmpm->y-scrn_y)*SCRN_SCALE+SCRN_SCALE/2;
       z1=0;
       DCTransform(dc_t,&x1,&y1,&z1);
-      if (tempm->dx<0) {
+      if (tmpm->dx<0) {
 	dc->flags|=DCF_SYMMETRY|DCF_JUST_MIRROR;
 	DCSymmetrySet(dc,x1,y1,x1,y1+1);
       } else
@@ -190,14 +190,14 @@ U0 DrawIt(CTask *task,CDC *dc)
       Sprite3(dc,x1,y1,z1,$IB,"<4>",BI=4$);
     }
 
-  x1=(man_x-screen_x)*SCREEN_SCALE+SCREEN_SCALE/2;
-  y1=(man_y-screen_y)*SCREEN_SCALE+SCREEN_SCALE/2;
+  x1=(man_x-scrn_x)*SCRN_SCALE+SCRN_SCALE/2;
+  y1=(man_y-scrn_y)*SCRN_SCALE+SCRN_SCALE/2;
   z1=0;
   if (tS-man_attack_t0<0.2) {
-    x1+=Tri(tS-man_attack_t0,0.2)*SCREEN_SCALE*man_dx;
-    y1+=Tri(tS-man_attack_t0,0.2)*SCREEN_SCALE*man_dy;
+    x1+=Tri(tS-man_attack_t0,0.2)*SCRN_SCALE*man_dx;
+    y1+=Tri(tS-man_attack_t0,0.2)*SCRN_SCALE*man_dy;
     if (man_dy!=1)
-      y1-=Saw(tS-man_attack_t0,0.2)*SCREEN_SCALE;
+      y1-=Saw(tS-man_attack_t0,0.2)*SCRN_SCALE;
   }
   DCTransform(dc_t,&x1,&y1,&z1);
   if (man_dx<0) {
@@ -229,14 +229,14 @@ U0 DrawIt(CTask *task,CDC *dc)
 U0 Attack()
 {
   I64 i;
-  Monster *tempm;
+  Monster *tmpm;
 
   man_attack_t0=tS;
   Noise(100,300,1000);
-  for (i=0,tempm=monsters;idead &&
-	  man_x+man_dx==tempm->x && man_y+man_dy==tempm->y) {
-      tempm->dead=TRUE;
+  for (i=0,tmpm=monsters;idead &&
+	  man_x+man_dx==tmpm->x && man_y+man_dy==tmpm->y) {
+      tmpm->dead=TRUE;
       if (!--monsters_left) {
 	tf=tS;
 	if (tf-t0",BI=1$);
   map_width =dc->width/MAP_SCALE;
@@ -268,16 +268,16 @@ U0 Init()
   man_y=4;
   man_dx=0;
   man_dy=0;
-  screen_x=0;
-  screen_y=0;
-  for (i=0,tempm=monsters;idead=FALSE;
-    tempm->dx=0;
-    tempm->dy=0;
+  scrn_x=0;
+  scrn_y=0;
+  for (i=0,tmpm=monsters;idead=FALSE;
+    tmpm->dx=0;
+    tmpm->dy=0;
     do {
-      tempm->x=RandU64%(map_width-2)+1;
-      tempm->y=RandU64%(map_height-2)+1;
-    } while (!map[(tempm->y)*map_width+tempm->x]);
+      tmpm->x=RandU64%(map_width-2)+1;
+      tmpm->y=RandU64%(map_height-2)+1;
+    } while (!map[(tmpm->y)*map_width+tmpm->x]);
   }
   monsters_left=NUM_MONSTERS;
   tf=0;
@@ -293,20 +293,20 @@ U0 CleanUp()
 U0 AnimateTask(I64)
 {
   I64 i,x,y,dx,dy;
-  Monster *tempm;
+  Monster *tmpm;
 
   while (TRUE) {
-    for (i=0,tempm=monsters;idead) {
+    for (i=0,tmpm=monsters;idead) {
 	dx=RandU16%3-1;
 	dy=RandU16%3-1;
-	x=tempm->x+dx;
-	y=tempm->y+dy;
+	x=tmpm->x+dx;
+	y=tmpm->y+dy;
 	if (0<=xx=x;
-	  tempm->y=y;
-	  tempm->dx=dx;
-	  tempm->dy=dy;
+	  tmpm->x=x;
+	  tmpm->y=y;
+	  tmpm->dx=dx;
+	  tmpm->dy=dy;
 	}
       }
     Sleep(1000);
@@ -368,10 +368,10 @@ U0 DunGen()
 		    if (man_x+1SCREEN_WIDTH/2-3) {
-			screen_x+=SCREEN_WIDTH/2;
-			if (screen_x+SCREEN_WIDTH/2>map_width)
-			  screen_x=map_width-SCREEN_WIDTH/2;
+		      if (man_x-scrn_x>SCRN_WIDTH/2-3) {
+			scrn_x+=SCRN_WIDTH/2;
+			if (scrn_x+SCRN_WIDTH/2>map_width)
+			  scrn_x=map_width-SCRN_WIDTH/2;
 		      }
 		    }
 		  break;
@@ -384,10 +384,10 @@ U0 DunGen()
 		    if (man_x-1>=0 &&
 			  map[man_y*map_width+(man_x-1)]==DKGRAY) {
 		      man_x--;
-		      if (man_x-screen_x<-SCREEN_WIDTH/2+3) {
-			screen_x-=SCREEN_WIDTH/2;
-			if (screen_x-SCREEN_WIDTH/2<0)
-			  screen_x=SCREEN_WIDTH/2;
+		      if (man_x-scrn_x<-SCRN_WIDTH/2+3) {
+			scrn_x-=SCRN_WIDTH/2;
+			if (scrn_x-SCRN_WIDTH/2<0)
+			  scrn_x=SCRN_WIDTH/2;
 		      }
 		    }
 		  break;
@@ -400,10 +400,10 @@ U0 DunGen()
 		    if (man_y-1>=0 &&
 			  map[(man_y-1)*map_width+man_x]==DKGRAY) {
 		      man_y--;
-		      if (man_y-screen_y<-SCREEN_HEIGHT/2+3) {
-			screen_y-=SCREEN_HEIGHT/2;
-			if (screen_y-SCREEN_HEIGHT/2<0)
-			  screen_y=SCREEN_HEIGHT/2;
+		      if (man_y-scrn_y<-SCRN_HEIGHT/2+3) {
+			scrn_y-=SCRN_HEIGHT/2;
+			if (scrn_y-SCRN_HEIGHT/2<0)
+			  scrn_y=SCRN_HEIGHT/2;
 		      }
 		    }
 		  break;
@@ -416,10 +416,10 @@ U0 DunGen()
 		    if (man_y+1SCREEN_HEIGHT/2-3) {
-			screen_y+=SCREEN_HEIGHT/2;
-			if (screen_y+SCREEN_HEIGHT/2>map_height)
-			  screen_y=map_height-SCREEN_HEIGHT/2;
+		      if (man_y-scrn_y>SCRN_HEIGHT/2-3) {
+			scrn_y+=SCRN_HEIGHT/2;
+			if (scrn_y+SCRN_HEIGHT/2>map_height)
+			  scrn_y=map_height-SCRN_HEIGHT/2;
 		      }
 		    }
 		  break;
diff --git a/Demo/Games/EagleDive.HC b/Demo/Games/EagleDive.HC
index 4a02aee..b52e966 100644
--- a/Demo/Games/EagleDive.HC
+++ b/Demo/Games/EagleDive.HC
@@ -21,7 +21,7 @@ RegExeBranch("TempleOS/EagleDive");
 #define ROCK_ELEVATION		45
 #define SNOW_ELEVATION		55
 
-//Too big makes off-screen draws take place.
+//Too big makes off-scrn draws take place.
 #define MAX_PANEL_SIZE		16
 
 
@@ -294,9 +294,9 @@ U0 MPDoPanels(CTask *task)
 {
   I64 i,j,l,k1,k2,w,h,threshold,lo,hi;
   Bool cont;
-  Panel *tempp,*start_ptr=NULL,*end_ptr=NULL;
+  Panel *tmpp,*start_ptr=NULL,*end_ptr=NULL;
   CD3I32 *poly;
-  Obj *tempo;
+  Obj *tmpo;
   lo=Gs->num*(MAP_HEIGHT-1)/mp_cnt;
   hi=(Gs->num+1)*(MAP_HEIGHT-1)/mp_cnt;
   for (threshold=8;threshold>=1;threshold--)
@@ -317,75 +317,75 @@ U0 MPDoPanels(CTask *task)
 	    }
 	  } while (cont);
 	  if (w>=threshold || h>=threshold) {
-	    tempp=CAlloc(sizeof(Panel),task);
-	    QueInit(&tempp->next_obj);
+	    tmpp=CAlloc(sizeof(Panel),task);
+	    QueInit(&tmpp->next_obj);
 	    l=elevations[j][i];
 	    if (l<=WATER_ELEVATION*MAP_SCALE &&
 		  elevations[j][i+w-1]<=WATER_ELEVATION*MAP_SCALE &&
 		  elevations[j+h-1][i]<=WATER_ELEVATION*MAP_SCALE &&
 		  elevations[j+h-1][i+w-1]<=WATER_ELEVATION*MAP_SCALE) {
-	      tempp->color=BLUE;
+	      tmpp->color=BLUE;
 	      if (Rand<0.05) {
-		tempo=MAlloc(sizeof(Obj),task);
-		tempo->p.x=(i+w/2)*MAP_SCALE;
-		tempo->p.y=(j+h/2)*MAP_SCALE;
+		tmpo=MAlloc(sizeof(Obj),task);
+		tmpo->p.x=(i+w/2)*MAP_SCALE;
+		tmpo->p.y=(j+h/2)*MAP_SCALE;
 		if (Rand<0.1) {
-		  tempo->fish=FALSE;
+		  tmpo->fish=FALSE;
 		  if (RandI16&1)
-		    tempo->img=$IB,"<2>",BI=2$; //Boat
+		    tmpo->img=$IB,"<2>",BI=2$; //Boat
 		  else
-		    tempo->img=$IB,"<3>",BI=3$; //Boat
-		  tempo->p.z=(WATER_ELEVATION+2)*MAP_SCALE;
+		    tmpo->img=$IB,"<3>",BI=3$; //Boat
+		  tmpo->p.z=(WATER_ELEVATION+2)*MAP_SCALE;
 		} else {
-		  tempo->fish=TRUE;
-		  tempo->img=$IB,"<1>",BI=1$; //Fish
-		  tempo->p.z=WATER_ELEVATION*MAP_SCALE;
+		  tmpo->fish=TRUE;
+		  tmpo->img=$IB,"<1>",BI=1$; //Fish
+		  tmpo->p.z=WATER_ELEVATION*MAP_SCALE;
 		}
-		QueIns(tempo,tempp->last_obj);
+		QueIns(tmpo,tmpp->last_obj);
 	      }
 	    } else {
 	      if (lcolor=LTGREEN;
+		  tmpp->color=LTGREEN;
 		else
-		  tempp->color=GREEN+LTGREEN<<16+ROPF_DITHER;
+		  tmpp->color=GREEN+LTGREEN<<16+ROPF_DITHER;
 		if (Rand<0.03) {
-		  tempo=MAlloc(sizeof(Obj),task);
-		  tempo->p.x=(i+w/2)*MAP_SCALE;
-		  tempo->p.y=(j+h/2)*MAP_SCALE;
-		  tempo->p.z=l;
-		  tempo->img=$IB,"<4>",BI=4$; //Tree
-		  tempo->fish=FALSE;
-		  QueIns(tempo,tempp->last_obj);
+		  tmpo=MAlloc(sizeof(Obj),task);
+		  tmpo->p.x=(i+w/2)*MAP_SCALE;
+		  tmpo->p.y=(j+h/2)*MAP_SCALE;
+		  tmpo->p.z=l;
+		  tmpo->img=$IB,"<4>",BI=4$; //Tree
+		  tmpo->fish=FALSE;
+		  QueIns(tmpo,tmpp->last_obj);
 		}
 	      } else if (lcolor=LTGRAY;
+		    tmpp->color=LTGRAY;
 		  else
-		    tempp->color=DKGRAY+LTGRAY<<16+ROPF_DITHER;
+		    tmpp->color=DKGRAY+LTGRAY<<16+ROPF_DITHER;
 		} else {
 		  if (RandI16&1)
-		    tempp->color=LTGREEN;
+		    tmpp->color=LTGREEN;
 		  else
-		    tempp->color=GREEN+LTGREEN<<16+ROPF_DITHER;
+		    tmpp->color=GREEN+LTGREEN<<16+ROPF_DITHER;
 		}
 	      } else {
 		if (!(RandU16&3)) {
 		  if (RandI16&1)
-		    tempp->color=WHITE;
+		    tmpp->color=WHITE;
 		  else
-		    tempp->color=LTGRAY;
+		    tmpp->color=LTGRAY;
 		} else {
 		  if (RandI16&1)
-		    tempp->color=LTGRAY+WHITE<<16+ROPF_DITHER;
+		    tmpp->color=LTGRAY+WHITE<<16+ROPF_DITHER;
 		  else
-		    tempp->color=DKGRAY+LTGRAY<<16+ROPF_DITHER;
+		    tmpp->color=DKGRAY+LTGRAY<<16+ROPF_DITHER;
 		}
 	      }
 	    }
-	    tempp->num_sides=4;
-	    poly=tempp->pts=MAlloc(sizeof(CD3I32)*tempp->num_sides,task);
+	    tmpp->num_sides=4;
+	    poly=tmpp->pts=MAlloc(sizeof(CD3I32)*tmpp->num_sides,task);
 	    poly[0].x=MAP_SCALE*i;
 	    poly[0].y=MAP_SCALE*j;
 	    poly[0].z=elevations[j][i];
@@ -398,13 +398,13 @@ U0 MPDoPanels(CTask *task)
 	    poly[3].x=MAP_SCALE*i;
 	    poly[3].y=MAP_SCALE*(j+h);
 	    poly[3].z=elevations[j+h][i];
-	    tempp->next=start_ptr;
-	    start_ptr=tempp;
+	    tmpp->next=start_ptr;
+	    start_ptr=tmpp;
 	    if (!end_ptr)
-	      end_ptr=tempp;
+	      end_ptr=tmpp;
 	    for (k2=0;k2pix_width>>1,
 	cy=task->pix_height>>1;
-  Panel reg *tempp;
-  Obj	*tempo;
+  Panel reg *tmpp;
+  Obj	*tmpo;
   Bool	w_on_map,h_on_map;
 
   xx=x/(MAP_SCALE*COORDINATE_SCALE);
   yy=y/(MAP_SCALE*COORDINATE_SCALE);
 
-  //World to screen coordinates
+  //World to scrn coordinates
   Mat4x4IdentEqu(dc->r);
   Mat4x4RotZ(dc->r,heading);
   Mat4x4RotX(dc->r,è);
   Mat4x4RotZ(dc->r,roll);
   DCMat4x4Set(dc,dc->r);
 
-  //Screen to world coordinates
+  //Scrn to world coordinates
 
   //This gives us the vects for stepping through the grid in
   //the direction the plane is facing. we step horizontally and vertically
@@ -635,7 +635,7 @@ U0 MPDrawIt(CTask *task,CDC *dc)
 
   //The layer for core1 is not cleared automatically
   //it is persistent.  I have carefully syncronized to the update
-  //cycle initiated by core0 to prevent flicker.
+  //cycle initiated by Core0 to prevent flicker.
 
   dc->flags|=DCF_TRANSFORMATION;
   dc->transform=&EDTransform;
@@ -691,17 +691,17 @@ U0 MPDrawIt(CTask *task,CDC *dc)
     for (j=0;j>8; y1=y1h>>8;
       if (0<=x1update!=update) {
-	  tempp->update=update;
-	  if (tempp->cnt>8*(1.1-Gs->idle_factor)) {
-	    dc->color=tempp->color;
-	    tempp->cnt=GrFillPoly3(dc,tempp->num_sides,tempp->pts);
+	if ((tmpp=panels[y1][x1]) && tmpp->update!=update) {
+	  tmpp->update=update;
+	  if (tmpp->cnt>8*(1.1-Gs->idle_factor)) {
+	    dc->color=tmpp->color;
+	    tmpp->cnt=GrFillPoly3(dc,tmpp->num_sides,tmpp->pts);
 	  } else
-	    tempp->cnt++;
-	  tempo=tempp->next_obj;
-	  while (tempo!=&tempp->next_obj) {
-	    Sprite3(dc,tempo->p.x,tempo->p.y,tempo->p.z,tempo->img);
-	    tempo=tempo->next;
+	    tmpp->cnt++;
+	  tmpo=tmpp->next_obj;
+	  while (tmpo!=&tmpp->next_obj) {
+	    Sprite3(dc,tmpo->p.x,tmpo->p.y,tmpo->p.z,tmpo->img);
+	    tmpo=tmpo->next;
 	  }
 	}
 	h_on_map=TRUE;
@@ -938,28 +938,28 @@ U0 Core0EagleDive()
   //We made an alias of this we don't want freed.
   dc->depth_buf=NULL;
   DCDel(dc);
-  WinMgrSync;
+  Refresh;
 }
 
 
 Obj *FishFind(I64 x1,I64 y1,I64 *_dd)
 {
   I64 dd,best_dd=MAX_I64;
-  Obj *res=NULL,*tempo;
-  Panel *tempp=panel_head;
-  while (tempp) {
-    tempo=tempp->next_obj;
-    while (tempo!=&tempp->next_obj) {
-      if (tempo->fish) {
-	dd=SqrI64(tempo->p.x-x1)+SqrI64(tempo->p.y-y1);
+  Obj *res=NULL,*tmpo;
+  Panel *tmpp=panel_head;
+  while (tmpp) {
+    tmpo=tmpp->next_obj;
+    while (tmpo!=&tmpp->next_obj) {
+      if (tmpo->fish) {
+	dd=SqrI64(tmpo->p.x-x1)+SqrI64(tmpo->p.y-y1);
 	if (ddnext;
+      tmpo=tmpo->next;
     }
-    tempp=tempp->next;
+    tmpp=tmpp->next;
   }
   *_dd=best_dd;
   return res;
@@ -971,12 +971,12 @@ U0 AnimateTask(I64)
 {//Steadily moves the airplane fwd.
   I64 *s2w,x1,y1,z1,dx,dy,dz,dd;
   F64 t0=tS,ms,é,d;
-  Obj *tempo;
+  Obj *tmpo;
   while (TRUE) {
     ms=1000*(tS-t0);
     t0=tS;
     if (!game_tf) {
-//Screen to world coordinates
+//Scrn to world coordinates
       s2w=Mat4x4IdentNew;
       Mat4x4RotZ(s2w,-roll);
       Mat4x4RotX(s2w,-è);
@@ -1000,12 +1000,12 @@ U0 AnimateTask(I64)
 	  WrapAngles;
 	}
 	speed=1.0;
-	if (rolled_over || !(tempo=FishFind(x1,y1,&dd)))
+	if (rolled_over || !(tmpo=FishFind(x1,y1,&dd)))
 	  claws_down=0;
 	else {
 	  d=Sqrt(dd);
-	  x1-=tempo->p.x;
-	  y1-=tempo->p.y;
+	  x1-=tmpo->p.x;
+	  y1-=tmpo->p.y;
 	  é=ACos((dx*x1+dy*y1)/(d*1<<16));
 	  if (é>0 && dnext;
-    QueDel(&tempp->next_obj);
-    Free(tempp->pts);
-    Free(tempp);
-    tempp=tempp1;
+  while (tmpp) {
+    tmpp1=tmpp->next;
+    QueDel(&tmpp->next_obj);
+    Free(tmpp->pts);
+    Free(tmpp);
+    tmpp=tmpp1;
   }
   DCDel(main_dc);
 }
@@ -1171,7 +1171,7 @@ U0 EagleDive()
 	  case '\n':
 	    Fs->draw_it=NULL;
 	    CleanUp;
-	    WinMgrSync;
+	    Refresh;
 	    Init;
 	    Fs->draw_it=&DrawIt;
 	    break;
diff --git a/Demo/Games/ElephantWalk.HC b/Demo/Games/ElephantWalk.HC
index fa5b857..cd61fee 100644
Binary files a/Demo/Games/ElephantWalk.HC and b/Demo/Games/ElephantWalk.HC differ
diff --git a/Demo/Games/FlapBat.HC b/Demo/Games/FlapBat.HC
index 8d54796..a697e3a 100644
Binary files a/Demo/Games/FlapBat.HC and b/Demo/Games/FlapBat.HC differ
diff --git a/Demo/Games/FlatTops.HC b/Demo/Games/FlatTops.HC
index 60437ff..74de9c6 100644
--- a/Demo/Games/FlatTops.HC
+++ b/Demo/Games/FlatTops.HC
@@ -96,36 +96,36 @@ Obj *ObjFind(F64 x,F64 y,
 	     I64 flag_mask=OF_ACTIVE|OF_RETURNING,I64 flag_val=OF_ACTIVE,
 	     I64 type_mask=-1,I64 player_mask=-1,F64 *_d=NULL)
 {
-  Obj *tempo=obj_head.next,*best=NULL;
+  Obj *tmpo=obj_head.next,*best=NULL;
   F64 dd,best_dd=MAX_F64;
-  while (tempo!=&obj_head) {
-    if (tempo->flags&flag_mask==flag_val &&
-	  Bt(&type_mask,tempo->type)&&Bt(&player_mask,tempo->player)) {
-      dd=Sqr(tempo->x-x)+Sqr(tempo->y-y);
+  while (tmpo!=&obj_head) {
+    if (tmpo->flags&flag_mask==flag_val &&
+	  Bt(&type_mask,tmpo->type)&&Bt(&player_mask,tmpo->player)) {
+      dd=Sqr(tmpo->x-x)+Sqr(tmpo->y-y);
       if (ddnext;
+    tmpo=tmpo->next;
   }
   if (_d) *_d=Sqrt(best_dd);
   return best;
 }
 
-U0 ObjDel(Obj *tempo)
+U0 ObjDel(Obj *tmpo)
 {
-  if (tempo) {
-    if (tSdeath_time)
-      tempo->flags&=~OF_ACTIVE;
+  if (tmpo) {
+    if (tSdeath_time)
+      tmpo->flags&=~OF_ACTIVE;
     else {
-      if (tempo->squadron>=0)
-	SquadronRem(tempo);
-      QueRem(tempo);
-      if (tempo->squadron>=0)
-	LBts(&squadrons[tempo->squadron].dead_mask,tempo->member_num);
-      num_alive[tempo->player]--;
-      Free(tempo);
+      if (tmpo->squadron>=0)
+	SquadronRem(tmpo);
+      QueRem(tmpo);
+      if (tmpo->squadron>=0)
+	LBts(&squadrons[tmpo->squadron].dead_mask,tmpo->member_num);
+      num_alive[tmpo->player]--;
+      Free(tmpo);
     }
   }
 }
@@ -160,53 +160,53 @@ U0 DrawIt(CTask *task,CDC *dc)
 {
   I64 i,j,k;
   F64 d,cur_time=tS;
-  Obj *tempo;
-  Torpedo *tempt;
+  Obj *tmpo;
+  Torpedo *tmpt;
 
-  tempt=torpedo_head.next;
-  while (tempt!=&torpedo_head) {
+  tmpt=torpedo_head.next;
+  while (tmpt!=&torpedo_head) {
     dc->color=WHITE;
-    GrPlot(dc,tempt->x,tempt->y);
-    tempt=tempt->next;
+    GrPlot(dc,tmpt->x,tmpt->y);
+    tmpt=tmpt->next;
   }
 
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    if (tempo->flags&OF_ACTIVE && tempo->flags&OF_SHIP) {
-      SpriteZ3B(dc,tempo->x,tempo->y,0,
-	    imgs[tempo->player][tempo->type],tempo->é+ã/2);
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    if (tmpo->flags&OF_ACTIVE && tmpo->flags&OF_SHIP) {
+      SpriteZ3B(dc,tmpo->x,tmpo->y,0,
+	    imgs[tmpo->player][tmpo->type],tmpo->é+ã/2);
 
       k=0;
       for (j=0;jfire,k++)) {
+	  if (Bt(tmpo->fire,k++)) {
 	    dc->color=fire_colors[ToI64(k+10*tS)&(FIRE_COLORS-1)];
 	    GrPlot(dc,
-		  tempo->x+FIRE_X_SCALE*(i-FIRE_WIDTH /2+(11*tS+i)%1.7)
-	    *Cos(tempo->é)-
-		  FIRE_Y_SCALE*(j-FIRE_HEIGHT/2+(12*tS+j)%1.7)*Sin(tempo->é),
-		  tempo->y+FIRE_Y_SCALE*(j-FIRE_HEIGHT/2+(19*tS+j)%1.7)
-	    *Cos(tempo->é)+
-		  FIRE_X_SCALE*(i-FIRE_WIDTH /2+(13*tS+i)%1.7)*Sin(tempo->é));
+		  tmpo->x+FIRE_X_SCALE*(i-FIRE_WIDTH /2+(11*tS+i)%1.7)
+	    *Cos(tmpo->é)-
+		  FIRE_Y_SCALE*(j-FIRE_HEIGHT/2+(12*tS+j)%1.7)*Sin(tmpo->é),
+		  tmpo->y+FIRE_Y_SCALE*(j-FIRE_HEIGHT/2+(19*tS+j)%1.7)
+	    *Cos(tmpo->é)+
+		  FIRE_X_SCALE*(i-FIRE_WIDTH /2+(13*tS+i)%1.7)*Sin(tmpo->é));
 	  }
       if (Blink) {
 	dc->color=BLACK;
-	GrLine(dc,tempo->x+5,tempo->y,tempo->x+5+10,tempo->y);
+	GrLine(dc,tmpo->x+5,tmpo->y,tmpo->x+5+10,tmpo->y);
 
-	if (tempo->life_percent>0) {
-	  if (tempo->life_percent<33)
+	if (tmpo->life_percent>0) {
+	  if (tmpo->life_percent<33)
 	    dc->color=RED;
-	  else if (tempo->life_percent<66)
+	  else if (tmpo->life_percent<66)
 	    dc->color=YELLOW;
 	  else
 	    dc->color=GREEN;
-	  GrLine(dc,tempo->x+5,tempo->y,
-		tempo->x+5+10*tempo->life_percent/100,tempo->y);
+	  GrLine(dc,tmpo->x+5,tmpo->y,
+		tmpo->x+5+10*tmpo->life_percent/100,tmpo->y);
 	}
 
 	dc->color=BLACK;
-	GrLine(dc,tempo->x+5,tempo->y+2,tempo->x+5+10,tempo->y+2);
-	d=tempo->fuel*100/tempo->max_fuel;
+	GrLine(dc,tmpo->x+5,tmpo->y+2,tmpo->x+5+10,tmpo->y+2);
+	d=tmpo->fuel*100/tmpo->max_fuel;
 	if (d>0) {
 	  if (d<33)
 	    dc->color=RED;
@@ -214,23 +214,23 @@ U0 DrawIt(CTask *task,CDC *dc)
 	    dc->color=YELLOW;
 	  else
 	    dc->color=GREEN;
-	  GrLine(dc,tempo->x+5,tempo->y+2,tempo->x+5+10*d/100,tempo->y+2);
+	  GrLine(dc,tmpo->x+5,tmpo->y+2,tmpo->x+5+10*d/100,tmpo->y+2);
 	}
       }
     }
-    tempo=tempo->next;
+    tmpo=tmpo->next;
   }
 
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    if (tempo->flags&OF_ACTIVE && !(tempo->flags&OF_SHIP))
-      SpriteZ3B(dc,tempo->x,tempo->y,0,
-	    imgs[tempo->player][tempo->type],tempo->é+ã/2);
-    if (tempo->flags&OF_SHOOTING) {
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    if (tmpo->flags&OF_ACTIVE && !(tmpo->flags&OF_SHIP))
+      SpriteZ3B(dc,tmpo->x,tmpo->y,0,
+	    imgs[tmpo->player][tmpo->type],tmpo->é+ã/2);
+    if (tmpo->flags&OF_SHOOTING) {
       dc->color=LTRED;
-      GrLine(dc,tempo->x,tempo->y,tempo->target_x,tempo->target_y,3);
+      GrLine(dc,tmpo->x,tmpo->y,tmpo->target_x,tmpo->target_y,3);
     }
-    tempo=tempo->next;
+    tmpo=tmpo->next;
   }
 
   dc->flags|=DCF_TRANSFORMATION;
@@ -277,8 +277,8 @@ U0 Init()
 {
   I64 i,fighter,ship,player,squadron,
 	w=Fs->pix_width,h=Fs->pix_height;
-  Squadron *temps;
-  Obj *tempo,*tempo1;
+  Squadron *tmps;
+  Obj *tmpo,*tmpo1;
   QueInit(&obj_head);
   QueInit(&torpedo_head);
 
@@ -292,83 +292,83 @@ U0 Init()
   for (player=0;playertype=OT_CRUISER;	tempo1->player=player;
-      tempo1->squadron=-1;	tempo1->member_num=ship;
-      tempo1->flags=OF_ACTIVE|OF_SHIP;
-      tempo1->x=0.8*w*(Rand-0.5)+w>>1; tempo1->y=0.8*h*(Rand-0.5)+h>>1;
-      tempo1->host=NULL;
-      tempo1->speed=35.0;	tempo1->turn_rate=2.5;
-      tempo1->é=2*ã*(Rand-0.5);	tempo1->dé=0;
-      tempo1->life_percent=100.0;
-      tempo1->fuel=tempo1->max_fuel=100000;
-      tempo1->fuel_burn_rate=100.0;
-      tempo1->air_guns =5000;	tempo1->air_guns_range =30.0;
-      tempo1->ship_guns=10000;	tempo1->ship_guns_range=30.0;
-      tempo1->torpedos =tempo1->max_torpedos=0;
-      tempo1->torpedos_range =0.0;
-      tempo1->next_action_time=0;
-      QueIns(tempo1,obj_head.last);
+      tmpo1->type=OT_CRUISER;	tmpo1->player=player;
+      tmpo1->squadron=-1;	tmpo1->member_num=ship;
+      tmpo1->flags=OF_ACTIVE|OF_SHIP;
+      tmpo1->x=0.8*w*(Rand-0.5)+w>>1; tmpo1->y=0.8*h*(Rand-0.5)+h>>1;
+      tmpo1->host=NULL;
+      tmpo1->speed=35.0;	tmpo1->turn_rate=2.5;
+      tmpo1->é=2*ã*(Rand-0.5);	tmpo1->dé=0;
+      tmpo1->life_percent=100.0;
+      tmpo1->fuel=tmpo1->max_fuel=100000;
+      tmpo1->fuel_burn_rate=100.0;
+      tmpo1->air_guns =5000;	tmpo1->air_guns_range =30.0;
+      tmpo1->ship_guns=10000;	tmpo1->ship_guns_range=30.0;
+      tmpo1->torpedos =tmpo1->max_torpedos=0;
+      tmpo1->torpedos_range =0.0;
+      tmpo1->next_action_time=0;
+      QueIns(tmpo1,obj_head.last);
     }
 
     for (ship=0;shiptype=OT_CARRIER;	tempo1->player=player;
-      tempo1->squadron=-1;	tempo1->member_num=ship;
-      tempo1->flags=OF_ACTIVE|OF_SHIP;
-      tempo1->x=0.8*w*(Rand-0.5)+w>>1; tempo1->y=0.8*h*(Rand-0.5)+h>>1;
-      tempo1->host=NULL;
-      tempo1->speed=28.0;	tempo1->turn_rate=1.0;
-      tempo1->é=2*ã*(Rand-0.5);	tempo1->dé=0;
-      tempo1->life_percent=100.0;
-      tempo1->fuel=tempo1->max_fuel=750000;
-      tempo1->fuel_burn_rate=500.0;
-      tempo1->air_guns =5000;	tempo1->air_guns_range =20.0;
-      tempo1->ship_guns=2000;	tempo1->ship_guns_range=30.0;
-      tempo1->torpedos =tempo1->max_torpedos=0;
-      tempo1->torpedos_range =0.0;
-      tempo1->next_action_time=0;
-      QueIns(tempo1,obj_head.last);
+      tmpo1->type=OT_CARRIER;	tmpo1->player=player;
+      tmpo1->squadron=-1;	tmpo1->member_num=ship;
+      tmpo1->flags=OF_ACTIVE|OF_SHIP;
+      tmpo1->x=0.8*w*(Rand-0.5)+w>>1; tmpo1->y=0.8*h*(Rand-0.5)+h>>1;
+      tmpo1->host=NULL;
+      tmpo1->speed=28.0;	tmpo1->turn_rate=1.0;
+      tmpo1->é=2*ã*(Rand-0.5);	tmpo1->dé=0;
+      tmpo1->life_percent=100.0;
+      tmpo1->fuel=tmpo1->max_fuel=750000;
+      tmpo1->fuel_burn_rate=500.0;
+      tmpo1->air_guns =5000;	tmpo1->air_guns_range =20.0;
+      tmpo1->ship_guns=2000;	tmpo1->ship_guns_range=30.0;
+      tmpo1->torpedos =tmpo1->max_torpedos=0;
+      tmpo1->torpedos_range =0.0;
+      tmpo1->next_action_time=0;
+      QueIns(tmpo1,obj_head.last);
 
       for (squadron=0;squadrontype=OT_FIGHTER;	 tempo->player=player;
-	  tempo->squadron=num_squadrons; tempo->member_num=fighter;
-	  tempo->flags=0;
-	  tempo->host=tempo1;
-	  tempo->speed=300.0;		tempo->turn_rate=25.0;
-	  tempo->life_percent=100.0;
-	  tempo->fuel=tempo->max_fuel=1000;
-	  tempo->fuel_burn_rate=1.0;
-	  tempo->air_guns =35000;	tempo->air_guns_range =8.0;
-	  tempo->ship_guns=0;		tempo->ship_guns_range=0.0;
-	  tempo->torpedos =tempo->max_torpedos=1;
-	  tempo->torpedos_range =20.0;
-	  QueIns(tempo,obj_head.last);
+	  tmpo->type=OT_FIGHTER;	 tmpo->player=player;
+	  tmpo->squadron=num_squadrons; tmpo->member_num=fighter;
+	  tmpo->flags=0;
+	  tmpo->host=tmpo1;
+	  tmpo->speed=300.0;		tmpo->turn_rate=25.0;
+	  tmpo->life_percent=100.0;
+	  tmpo->fuel=tmpo->max_fuel=1000;
+	  tmpo->fuel_burn_rate=1.0;
+	  tmpo->air_guns =35000;	tmpo->air_guns_range =8.0;
+	  tmpo->ship_guns=0;		tmpo->ship_guns_range=0.0;
+	  tmpo->torpedos =tmpo->max_torpedos=1;
+	  tmpo->torpedos_range =20.0;
+	  QueIns(tmpo,obj_head.last);
 	}
       }
     }
   }
   squadrons=CAlloc(num_squadrons*sizeof(Squadron));
-  for (i=0,temps=squadrons;inext_in_squadron=temps->last_in_squadron=temps;
-    temps->squadron=i;
+  for (i=0,tmps=squadrons;inext_in_squadron=tmps->last_in_squadron=tmps;
+    tmps->squadron=i;
   }
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    if (tempo->squadron>=0) {
-      temps=&squadrons[tempo->squadron];
-      temps->host  =tempo->host;
-      temps->player=tempo->player;
-      temps->total_mask=1<player]-1;
-      SquadronIns(tempo,temps->last_in_squadron);
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    if (tmpo->squadron>=0) {
+      tmps=&squadrons[tmpo->squadron];
+      tmps->host  =tmpo->host;
+      tmps->player=tmpo->player;
+      tmps->total_mask=1<player]-1;
+      SquadronIns(tmpo,tmps->last_in_squadron);
     }
-    tempo=tempo->next;
+    tmpo=tmpo->next;
   }
 }
 
@@ -382,36 +382,36 @@ U0 CleanUp()
 Obj *ObjLaunch(I64 player,I64 squadron=-1,
 	Obj *host=NULL,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64)
 {
-  Obj *tempo;
+  Obj *tmpo;
   F64 cur_time=tS;
   if (!host)
     host=ObjFind(x,y,,,1<host->next_action_time) {
     if (é==MAX_F64)
       é=Arg(x-host->x,y-host->y);
-    tempo=obj_head.next;
-    while (tempo!=&obj_head) {
-      if (tempo->host==host && (squadron<0||tempo->squadron==squadron) &&
-	    !(tempo->flags&OF_ACTIVE) &&
-	    (tempo->squadron<0||squadrons[tempo->squadron].action==SA_PARKED||
-	    squadrons[tempo->squadron].action==SA_LAUNCHING)) {
-	if (tempo->fuel<=0.0)
+    tmpo=obj_head.next;
+    while (tmpo!=&obj_head) {
+      if (tmpo->host==host && (squadron<0||tmpo->squadron==squadron) &&
+	    !(tmpo->flags&OF_ACTIVE) &&
+	    (tmpo->squadron<0||squadrons[tmpo->squadron].action==SA_PARKED||
+	    squadrons[tmpo->squadron].action==SA_LAUNCHING)) {
+	if (tmpo->fuel<=0.0)
 //When low on fuel, not zero, gets launched and captured.
-	  LBts(&squadrons[tempo->squadron].dead_mask,tempo->member_num);
+	  LBts(&squadrons[tmpo->squadron].dead_mask,tmpo->member_num);
 	else {
-	  tempo->flags=tempo->flags&~OF_RETURNING|OF_ACTIVE;
-	  tempo->é=host->é;
+	  tmpo->flags=tmpo->flags&~OF_RETURNING|OF_ACTIVE;
+	  tmpo->é=host->é;
 	  if (x==MAX_F64 || y==MAX_F64 || Sqr(x-host->x)+Sqr(y-host->y)>3*3)
-	    tempo->dé=Wrap(é-tempo->é,-ã);
+	    tmpo->dé=Wrap(é-tmpo->é,-ã);
 	  else
-	    tempo->dé=0;
-	  tempo->x=host->x;
-	  tempo->y=host->y;
+	    tmpo->dé=0;
+	  tmpo->x=host->x;
+	  tmpo->y=host->y;
 	  host->next_action_time=cur_time+0.25/game_speed;
-	  return tempo;
+	  return tmpo;
 	}
       }
-      tempo=tempo->next;
+      tmpo=tmpo->next;
     }
   }
   return NULL;
@@ -419,23 +419,23 @@ Obj *ObjLaunch(I64 player,I64 squadron=-1,
 
 Squadron *SquadronLaunch(I64 player,F64 x=MAX_F64,F64 y=MAX_F64)
 {
-  Squadron *temps;
-  Obj *tempo;
-  if (tempo=ObjLaunch(player,,,x,y)) {
+  Squadron *tmps;
+  Obj *tmpo;
+  if (tmpo=ObjLaunch(player,,,x,y)) {
     if (player==0) {
-      launch_unit_x1=tempo->x;
-      launch_unit_y1=tempo->y;
+      launch_unit_x1=tmpo->x;
+      launch_unit_y1=tmpo->y;
       launch_unit_x2=ip.pos.x-main_task->pix_left-main_task->scroll_x;
       launch_unit_y2=ip.pos.y-main_task->pix_top -main_task->scroll_y;
       launch_t=tS+0.5;
     }
-    if (tempo->squadron>=0) {
-      temps=&squadrons[tempo->squadron];
-      if (temps->action==SA_PARKED) {
-	temps->action=SA_LAUNCHING;
-	temps->é=tempo->é+tempo->dé;
+    if (tmpo->squadron>=0) {
+      tmps=&squadrons[tmpo->squadron];
+      if (tmps->action==SA_PARKED) {
+	tmps->action=SA_LAUNCHING;
+	tmps->é=tmpo->é+tmpo->dé;
       }
-      return temps;
+      return tmps;
     }
   }
   return NULL;
@@ -443,31 +443,31 @@ Squadron *SquadronLaunch(I64 player,F64 x=MAX_F64,F64 y=MAX_F64)
 
 Obj *ObjReturn(I64 player,F64 x,F64 y)
 {
-  Obj *tempo;
-  if (tempo=ObjFind(x,y,OF_ACTIVE,OF_ACTIVE,1<flags|=OF_RETURNING;
-  return tempo;
+  Obj *tmpo;
+  if (tmpo=ObjFind(x,y,OF_ACTIVE,OF_ACTIVE,1<flags|=OF_RETURNING;
+  return tmpo;
 }
 
 Squadron *SquadronReturn(I64 player,F64 x,F64 y)
 {
-  Squadron *temps;
-  Obj *tempo;
-  if (tempo=ObjReturn(player,x,y)) {
+  Squadron *tmps;
+  Obj *tmpo;
+  if (tmpo=ObjReturn(player,x,y)) {
     if (player==0) {
-      return_unit_x1=tempo->x;
-      return_unit_y1=tempo->y;
-      if (tempo->host) {
-	return_unit_x2=tempo->host->x;
-	return_unit_y2=tempo->host->y;
+      return_unit_x1=tmpo->x;
+      return_unit_y1=tmpo->y;
+      if (tmpo->host) {
+	return_unit_x2=tmpo->host->x;
+	return_unit_y2=tmpo->host->y;
 	return_t=tS+0.5;
       }
     }
-    if (tempo->squadron>=0) {
-      temps=&squadrons[tempo->squadron];
-      if (temps->action==SA_FLYING)
-	temps->action=SA_RETURNING;
-      return temps;
+    if (tmpo->squadron>=0) {
+      tmps=&squadrons[tmpo->squadron];
+      if (tmps->action==SA_FLYING)
+	tmps->action=SA_RETURNING;
+      return tmps;
     }
   }
   return NULL;
@@ -475,36 +475,36 @@ Squadron *SquadronReturn(I64 player,F64 x,F64 y)
 
 Obj *ObjSeté(I64 player,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64)
 {
-  Obj *tempo;
-  if ((tempo=ObjFind(x,y,,,,1<flags&OF_ACTIVE &&
-	!(tempo->flags&OF_RETURNING)) {
+  Obj *tmpo;
+  if ((tmpo=ObjFind(x,y,,,,1<flags&OF_ACTIVE &&
+	!(tmpo->flags&OF_RETURNING)) {
     if (é==MAX_F64)
-      é=Arg(x-tempo->x,y-tempo->y);
-    tempo->dé+=Wrap(é-(tempo->é+tempo->dé),-ã);
-    return tempo;
+      é=Arg(x-tmpo->x,y-tmpo->y);
+    tmpo->dé+=Wrap(é-(tmpo->é+tmpo->dé),-ã);
+    return tmpo;
   }
   return NULL;
 }
 
 Squadron *SquadronSeté(I64 player,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64)
 {
-  Squadron *temps;
-  Obj *tempo;
-  if (tempo=ObjSeté(player,x,y,é)) {
+  Squadron *tmps;
+  Obj *tmpo;
+  if (tmpo=ObjSeté(player,x,y,é)) {
     if (player==0) {
-      set_é_unit_x1=tempo->x;
-      set_é_unit_y1=tempo->y;
+      set_é_unit_x1=tmpo->x;
+      set_é_unit_y1=tmpo->y;
       set_é_unit_x2=ip.pos.x-main_task->pix_left-main_task->scroll_x;
       set_é_unit_y2=ip.pos.y-main_task->pix_top -main_task->scroll_y;
       set_é_t=tS+0.5;
     }
-    if (tempo->squadron>=0) {
-      temps=&squadrons[tempo->squadron];
-      if (temps->action==SA_FLYING) {
-	temps->action=SA_SET_é;
-	temps->é=tempo->é+tempo->dé;
+    if (tmpo->squadron>=0) {
+      tmps=&squadrons[tmpo->squadron];
+      if (tmps->action==SA_FLYING) {
+	tmps->action=SA_SET_é;
+	tmps->é=tmpo->é+tmpo->dé;
       }
-      return temps;
+      return tmps;
     }
   }
   return NULL;
@@ -513,76 +513,76 @@ Squadron *SquadronSet
 U0 SquadronActions()
 {
   I64 i,completed_mask;
-  Obj *tempo;
-  Squadron *temps;
-  for (i=0,temps=squadrons;iaction) {
+    switch (tmps->action) {
       case SA_LAUNCHING:
-	ObjLaunch(temps->player,i,temps->host,,,temps->é);
-	tempo=temps->next_in_squadron;
-	while (tempo!=temps) {
-	  LBEqu(&completed_mask,tempo->member_num,tempo->flags&OF_ACTIVE);
-	  tempo=tempo->next_in_squadron;
+	ObjLaunch(tmps->player,i,tmps->host,,,tmps->é);
+	tmpo=tmps->next_in_squadron;
+	while (tmpo!=tmps) {
+	  LBEqu(&completed_mask,tmpo->member_num,tmpo->flags&OF_ACTIVE);
+	  tmpo=tmpo->next_in_squadron;
 	}
-	if (completed_mask|temps->dead_mask==temps->total_mask)
-	  temps->action=SA_FLYING;
+	if (completed_mask|tmps->dead_mask==tmps->total_mask)
+	  tmps->action=SA_FLYING;
 	break;
       case SA_FLYING:
-	tempo=temps->next_in_squadron;
-	while (tempo!=temps) {
-	  LBEqu(&completed_mask,tempo->member_num,!(tempo->flags&OF_ACTIVE));
-	  tempo=tempo->next_in_squadron;
+	tmpo=tmps->next_in_squadron;
+	while (tmpo!=tmps) {
+	  LBEqu(&completed_mask,tmpo->member_num,!(tmpo->flags&OF_ACTIVE));
+	  tmpo=tmpo->next_in_squadron;
 	}
-	if (completed_mask|temps->dead_mask==temps->total_mask)
-	  temps->action=SA_PARKED;
+	if (completed_mask|tmps->dead_mask==tmps->total_mask)
+	  tmps->action=SA_PARKED;
 	break;
       case SA_SET_é:
-	tempo=temps->next_in_squadron;
-	while (tempo!=temps) {
-	  tempo->dé+=Wrap(temps->é-(tempo->é+tempo->dé),-ã);
-	  tempo=tempo->next_in_squadron;
+	tmpo=tmps->next_in_squadron;
+	while (tmpo!=tmps) {
+	  tmpo->dé+=Wrap(tmps->é-(tmpo->é+tmpo->dé),-ã);
+	  tmpo=tmpo->next_in_squadron;
 	}
-	temps->action=SA_FLYING;
+	tmps->action=SA_FLYING;
 	break;
       case SA_RETURNING:
-	tempo=temps->next_in_squadron;
-	while (tempo!=temps) {
-	  tempo->flags|=OF_RETURNING;
-	  LBEqu(&completed_mask,tempo->member_num,!(tempo->flags&OF_ACTIVE));
-	  tempo=tempo->next_in_squadron;
+	tmpo=tmps->next_in_squadron;
+	while (tmpo!=tmps) {
+	  tmpo->flags|=OF_RETURNING;
+	  LBEqu(&completed_mask,tmpo->member_num,!(tmpo->flags&OF_ACTIVE));
+	  tmpo=tmpo->next_in_squadron;
 	}
-	if (completed_mask|temps->dead_mask==temps->total_mask)
-	  temps->action=SA_PARKED;
+	if (completed_mask|tmps->dead_mask==tmps->total_mask)
+	  tmps->action=SA_PARKED;
 	break;
     }
-    if (temps->dead_mask==temps->total_mask)
-      temps->action=SA_DEAD;
+    if (tmps->dead_mask==tmps->total_mask)
+      tmps->action=SA_DEAD;
   }
 }
 
 U0 AI(I64 player,F64 period)
 {
-  Obj *tempo;
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    if (tempo->player==player) {
-      if (tempo->type==OT_CARRIER && Rand<5*period)
-	SquadronLaunch(player,tempo->x,tempo->y);
-      if (tempo->flags&OF_ACTIVE && !(tempo->flags&OF_RETURNING) &&
+  Obj *tmpo;
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    if (tmpo->player==player) {
+      if (tmpo->type==OT_CARRIER && Rand<5*period)
+	SquadronLaunch(player,tmpo->x,tmpo->y);
+      if (tmpo->flags&OF_ACTIVE && !(tmpo->flags&OF_RETURNING) &&
 	    Rand<10.0*period)
-	SquadronSeté(player,tempo->x,tempo->y,tempo->é+pi/2*(Rand-0.5));
+	SquadronSeté(player,tmpo->x,tmpo->y,tmpo->é+pi/2*(Rand-0.5));
     }
-    tempo=tempo->next;
+    tmpo=tmpo->next;
   }
 }
 
-U0 ShipDammage(Obj *tempo,F64 d)
+U0 ShipDamage(Obj *tmpo,F64 d)
 {
   I64 i,x=Rand*FIRE_WIDTH,y=Rand*FIRE_HEIGHT;
-  tempo->life_percent-=d;
+  tmpo->life_percent-=d;
   while (d>0) {
-    if (!Bts(tempo->fire,y*FIRE_WIDTH+x))
+    if (!Bts(tmpo->fire,y*FIRE_WIDTH+x))
       d-=500.0/(FIRE_WIDTH*FIRE_HEIGHT);
     else
       d-=25.0/(FIRE_WIDTH*FIRE_HEIGHT);
@@ -600,16 +600,16 @@ U0 ShipDammage(Obj *tempo,F64 d)
   }
 }
 
-U0 ShipFix(Obj *tempo,F64 d)
+U0 ShipFix(Obj *tmpo,F64 d)
 {
-  tempo->life_percent+=d;
-  if (tempo->life_percent>=100.0) {
-    tempo->life_percent=100.0;
-    MemSet(tempo->fire,0,sizeof(Obj.fire));
+  tmpo->life_percent+=d;
+  if (tmpo->life_percent>=100.0) {
+    tmpo->life_percent=100.0;
+    MemSet(tmpo->fire,0,sizeof(Obj.fire));
     return;
   }
   while (d>0)
-    if (Btr(tempo->fire,FIRE_WIDTH*FIRE_HEIGHT*Rand))
+    if (Btr(tmpo->fire,FIRE_WIDTH*FIRE_HEIGHT*Rand))
       d-=400.0/(FIRE_WIDTH*FIRE_HEIGHT);
     else
       d-=20.0/(FIRE_WIDTH*FIRE_HEIGHT);
@@ -618,35 +618,35 @@ U0 ShipFix(Obj *tempo,F64 d)
 U0 Combat(F64 period)
 {
   F64 d;
-  Obj *tempo,*tempo1;
-  Torpedo *tempt;
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    tempo->flags&=~OF_SHOOTING;
-    if (tempo->flags&OF_ACTIVE &&
-	  (tempo1=ObjFind(tempo->x,tempo->y,OF_ACTIVE,OF_ACTIVE,,
-	  1<<(tempo->player^1),&d))) {
-      tempo->target_x=tempo1->x;
-      tempo->target_y=tempo1->y;
-      if (tempo1->flags&OF_SHIP) {
-	if (tempo->torpedos && dtorpedos_range && Rand<125*period) {
-	  tempo->torpedos--;
-	  tempt=CAlloc(sizeof(Torpedo));
-	  tempt->x=tempo->x;
-	  tempt->y=tempo->y;
-	  tempt->speed=100;
-	  d/=tempt->speed*(GAME_SPEED_SCALE*game_speed);
-	  tempo1->death_time=tempt->timeout=tS+d;
-	  tempt->target=tempo1;
-	  tempt->é=Arg(tempo1->x-tempo->x,tempo1->y-tempo->y);
-	  QueIns(tempt,torpedo_head.last);
+  Obj *tmpo,*tmpo1;
+  Torpedo *tmpt;
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    tmpo->flags&=~OF_SHOOTING;
+    if (tmpo->flags&OF_ACTIVE &&
+	  (tmpo1=ObjFind(tmpo->x,tmpo->y,OF_ACTIVE,OF_ACTIVE,,
+	  1<<(tmpo->player^1),&d))) {
+      tmpo->target_x=tmpo1->x;
+      tmpo->target_y=tmpo1->y;
+      if (tmpo1->flags&OF_SHIP) {
+	if (tmpo->torpedos && dtorpedos_range && Rand<125*period) {
+	  tmpo->torpedos--;
+	  tmpt=CAlloc(sizeof(Torpedo));
+	  tmpt->x=tmpo->x;
+	  tmpt->y=tmpo->y;
+	  tmpt->speed=100;
+	  d/=tmpt->speed*(GAME_SPEED_SCALE*game_speed);
+	  tmpo1->death_time=tmpt->timeout=tS+d;
+	  tmpt->target=tmpo1;
+	  tmpt->é=Arg(tmpo1->x-tmpo->x,tmpo1->y-tmpo->y);
+	  QueIns(tmpt,torpedo_head.last);
 	  Sweep(2000,2000,300);
-	} else if (tempo->ship_guns>0 && dship_guns_range) {
-	  tempo->flags|=OF_SHOOTING;
+	} else if (tmpo->ship_guns>0 && dship_guns_range) {
+	  tmpo->flags|=OF_SHOOTING;
 	  if (Rand<125.0*period) {
-	    ShipDammage(tempo1,tempo->ship_guns*Rand*period);
+	    ShipDamage(tmpo1,tmpo->ship_guns*Rand*period);
 	    if (Rand<10.0*period)
-	      tempo1->fuel*=0.75*Rand+0.25;
+	      tmpo1->fuel*=0.75*Rand+0.25;
 	  }
 	  if (tS>next_noise) {
 	    Noise(100,75,200);
@@ -654,12 +654,12 @@ U0 Combat(F64 period)
 	  }
 	}
       } else {
-	if (tempo->air_guns>0 && dair_guns_range) {
-	  tempo->flags|=OF_SHOOTING;
+	if (tmpo->air_guns>0 && dair_guns_range) {
+	  tmpo->flags|=OF_SHOOTING;
 	  if (Rand<125.0*period) {
-	    tempo1->life_percent-=tempo->air_guns*Rand*period;
+	    tmpo1->life_percent-=tmpo->air_guns*Rand*period;
 	    if (Rand<10.0*period)
-	      tempo1->fuel*=0.75*Rand+0.25;
+	      tmpo1->fuel*=0.75*Rand+0.25;
 	  }
 	  if (tS>next_noise) {
 	    Noise(25,500,2000);
@@ -668,109 +668,109 @@ U0 Combat(F64 period)
 	}
       }
     }
-    tempo=tempo->next;
+    tmpo=tmpo->next;
   }
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    tempo1=tempo->next;
-    if (tempo->type==OT_FIGHTER &&
-	  (tempo->life_percent<=0.0 || tempo->flags&OF_ACTIVE &&
-	  tempo->fuel<=0.0 || tempo->host &&
-	  !(tempo->flags&OF_ACTIVE) && tempo->host->life_percent<=0.0))
-      ObjDel(tempo);
-    tempo=tempo1;
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    tmpo1=tmpo->next;
+    if (tmpo->type==OT_FIGHTER &&
+	  (tmpo->life_percent<=0.0 || tmpo->flags&OF_ACTIVE &&
+	  tmpo->fuel<=0.0 || tmpo->host &&
+	  !(tmpo->flags&OF_ACTIVE) && tmpo->host->life_percent<=0.0))
+      ObjDel(tmpo);
+    tmpo=tmpo1;
   }
-  tempo=obj_head.next;
-  while (tempo!=&obj_head) {
-    tempo1=tempo->next;
-    if (tempo->life_percent<=0.0)
-      ObjDel(tempo);
-    tempo=tempo1;
+  tmpo=obj_head.next;
+  while (tmpo!=&obj_head) {
+    tmpo1=tmpo->next;
+    if (tmpo->life_percent<=0.0)
+      ObjDel(tmpo);
+    tmpo=tmpo1;
   }
 }
 
 #define ANIMATE_FREQ	50
 U0 AnimateTask(I64)
 {
-  Obj *tempo;
-  Torpedo *tempt,*tempt1;
+  Obj *tmpo;
+  Torpedo *tmpt,*tmpt1;
   F64 d,period;
 
   while (TRUE) {
     period=GAME_SPEED_SCALE*game_speed/ANIMATE_FREQ;
     SquadronActions;
 
-    tempo=obj_head.next;
-    while (tempo!=&obj_head) {
-      if (tempo->flags&OF_ACTIVE && tempo->fuel>0) {
-	if (tempo->dé) {
-	  d=tempo->dé;
-	  if (d> tempo->turn_rate*period) d= tempo->turn_rate*period;
-	  if (d<-tempo->turn_rate*period) d=-tempo->turn_rate*period;
-	  tempo->é +=d;
-	  tempo->dé-=d;
+    tmpo=obj_head.next;
+    while (tmpo!=&obj_head) {
+      if (tmpo->flags&OF_ACTIVE && tmpo->fuel>0) {
+	if (tmpo->dé) {
+	  d=tmpo->dé;
+	  if (d> tmpo->turn_rate*period) d= tmpo->turn_rate*period;
+	  if (d<-tmpo->turn_rate*period) d=-tmpo->turn_rate*period;
+	  tmpo->é +=d;
+	  tmpo->dé-=d;
 	}
-	tempo->x+=tempo->speed*Cos(tempo->é)*period*tempo->life_percent/100.0;
-	tempo->y+=tempo->speed*Sin(tempo->é)*period*tempo->life_percent/100.0;
-	tempo->fuel-=tempo->speed*tempo->fuel_burn_rate*period;
+	tmpo->x+=tmpo->speed*Cos(tmpo->é)*period*tmpo->life_percent/100.0;
+	tmpo->y+=tmpo->speed*Sin(tmpo->é)*period*tmpo->life_percent/100.0;
+	tmpo->fuel-=tmpo->speed*tmpo->fuel_burn_rate*period;
       }
-      tempo=tempo->next;
+      tmpo=tmpo->next;
     }
 
-    tempt=torpedo_head.next;
-    while (tempt!=&torpedo_head) {
-      tempt1=tempt->next;
-      if (tS>tempt->timeout) {
-	tempo=tempt->target;
+    tmpt=torpedo_head.next;
+    while (tmpt!=&torpedo_head) {
+      tmpt1=tmpt->next;
+      if (tS>tmpt->timeout) {
+	tmpo=tmpt->target;
 	if (Rand<0.333333) {
-	  ShipDammage(tempo,150*Rand*Rand);
+	  ShipDamage(tmpo,150*Rand*Rand);
 	  if (Rand<0.333333)
-	    tempo->fuel*=0.75*Rand+0.25;
+	    tmpo->fuel*=0.75*Rand+0.25;
 	}
-	QueRem(tempt);
-	Free(tempt);
+	QueRem(tmpt);
+	Free(tmpt);
       } else {
-	tempt->x+=tempt->speed*Cos(tempt->é)*period;
-	tempt->y+=tempt->speed*Sin(tempt->é)*period;
+	tmpt->x+=tmpt->speed*Cos(tmpt->é)*period;
+	tmpt->y+=tmpt->speed*Sin(tmpt->é)*period;
       }
-      tempt=tempt1;
+      tmpt=tmpt1;
     }
 
-    tempo=obj_head.next;
-    while (tempo!=&obj_head) {
-      if (tempo->host && !(tempo->flags&OF_ACTIVE)) {
-	tempo->x=tempo->host->x;
-	tempo->y=tempo->host->y;
+    tmpo=obj_head.next;
+    while (tmpo!=&obj_head) {
+      if (tmpo->host && !(tmpo->flags&OF_ACTIVE)) {
+	tmpo->x=tmpo->host->x;
+	tmpo->y=tmpo->host->y;
       }
-      tempo=tempo->next;
+      tmpo=tmpo->next;
     }
 
-    tempo=obj_head.next;
-    while (tempo!=&obj_head) {
-      if (tempo->flags&OF_ACTIVE) {
-	if (tempo->host) {
-	  d=Sqrt(Sqr(tempo->x-tempo->host->x)+Sqr(tempo->y-tempo->host->y));
-	  if (d<8 && tempo->max_fuel-tempo->fuel>30) {
-	    tempo->life_percent=100.0;
-	    if (tempo->host->fuel>0) {
-	      d=tempo->max_fuel-tempo->fuel;
-	      if (d>tempo->host->fuel) d=tempo->host->fuel;
-	      tempo->host->fuel-=d;
-	      tempo->fuel+=d;
+    tmpo=obj_head.next;
+    while (tmpo!=&obj_head) {
+      if (tmpo->flags&OF_ACTIVE) {
+	if (tmpo->host) {
+	  d=Sqrt(Sqr(tmpo->x-tmpo->host->x)+Sqr(tmpo->y-tmpo->host->y));
+	  if (d<8 && tmpo->max_fuel-tmpo->fuel>30) {
+	    tmpo->life_percent=100.0;
+	    if (tmpo->host->fuel>0) {
+	      d=tmpo->max_fuel-tmpo->fuel;
+	      if (d>tmpo->host->fuel) d=tmpo->host->fuel;
+	      tmpo->host->fuel-=d;
+	      tmpo->fuel+=d;
 	    }
-	    tempo->torpedos=tempo->max_torpedos;
-	    tempo->x=tempo->host->x;
-	    tempo->y=tempo->host->y;
-	    tempo->flags&=~OF_ACTIVE;
-	  } else if (d>tempo->fuel-250)
-	    tempo->flags|=OF_RETURNING;
-	  if (tempo->flags&OF_RETURNING)
-	    tempo->dé+=Wrap(Arg(tempo->host->x-tempo->x,
-		  tempo->host->y-tempo->y)-(tempo->é+tempo->dé),-ã);
-	} else if (tempo->type==OT_CARRIER)
-	  ShipFix(tempo,2.5*period);
+	    tmpo->torpedos=tmpo->max_torpedos;
+	    tmpo->x=tmpo->host->x;
+	    tmpo->y=tmpo->host->y;
+	    tmpo->flags&=~OF_ACTIVE;
+	  } else if (d>tmpo->fuel-250)
+	    tmpo->flags|=OF_RETURNING;
+	  if (tmpo->flags&OF_RETURNING)
+	    tmpo->dé+=Wrap(Arg(tmpo->host->x-tmpo->x,
+		  tmpo->host->y-tmpo->y)-(tmpo->é+tmpo->dé),-ã);
+	} else if (tmpo->type==OT_CARRIER)
+	  ShipFix(tmpo,2.5*period);
       }
-      tempo=tempo->next;
+      tmpo=tmpo->next;
     }
 
     AI(1,period);
@@ -793,7 +793,7 @@ U0 FlatTops()
   PopUpOk("$$GREEN$${Left-Mouse}$$FG$$\t\tChange Course\n"
 	"$$GREEN$${Right-Mouse}$$FG$$\t\tLaunch Squadron\n"
 	"$$GREEN$${Right-Double-Mouse}$$FG$$\tReturn Squadron\n"
-	"$$GREEN$${Ctrl-Left Grab}$$FG$$\tScroll Screen\n");
+	"$$GREEN$${Ctrl-Left Grab}$$FG$$\tScroll Scrn\n");
   MenuPush(
 	"File {"
 	"  Abort(,CH_SHIFT_ESC);"
diff --git a/Demo/Games/MassSpring.HC b/Demo/Games/MassSpring.HC
index 2572366..0b4a5d8 100644
--- a/Demo/Games/MassSpring.HC
+++ b/Demo/Games/MassSpring.HC
@@ -11,22 +11,22 @@ CMathODE *ode=NULL;
 
 U0 DrawIt(CTask *,CDC *dc)
 {
-  MyMass   *tempm;
-  MySpring *temps;
+  MyMass   *tmpm;
+  MySpring *tmps;
 
   dc->color=RED;
-  temps=ode->next_spring;
-  while (temps!=&ode->next_spring) {
-    GrLine(dc,temps->end1->x,temps->end1->y,
-	  temps->end2->x,temps->end2->y);
-    temps=temps->next;
+  tmps=ode->next_spring;
+  while (tmps!=&ode->next_spring) {
+    GrLine(dc,tmps->end1->x,tmps->end1->y,
+	  tmps->end2->x,tmps->end2->y);
+    tmps=tmps->next;
   }
 
   dc->color=BLACK;
-  tempm=ode->next_mass;
-  while (tempm!=&ode->next_mass) {
-    GrCircle(dc,tempm->x,tempm->y,tempm->radius);
-    tempm=tempm->next;
+  tmpm=ode->next_mass;
+  while (tmpm!=&ode->next_mass) {
+    GrCircle(dc,tmpm->x,tmpm->y,tmpm->radius);
+    tmpm=tmpm->next;
   }
 }
 
@@ -36,46 +36,46 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
   //We can add new forces here.
   F64 d,dd;
   CD3 p;
-  MyMass *tempm1,*tempm2;
+  MyMass *tmpm1,*tmpm2;
 
-  tempm1=ode->next_mass;
-  while (tempm1!=&ode->next_mass) {
-    tempm2=tempm1->next;
-    while (tempm2!=&ode->next_mass) {
-      D3Sub(&p,&tempm2->state->x,&tempm1->state->x);
+  tmpm1=ode->next_mass;
+  while (tmpm1!=&ode->next_mass) {
+    tmpm2=tmpm1->next;
+    while (tmpm2!=&ode->next_mass) {
+      D3Sub(&p,&tmpm2->state->x,&tmpm1->state->x);
       dd=D3NormSqr(&p);
-      if (dd<=Sqr(tempm1->radius+tempm2->radius)) {
+      if (dd<=Sqr(tmpm1->radius+tmpm2->radius)) {
 	d=Sqrt(dd)+0.0001;
-	dd=10.0*Sqr(Sqr(Sqr(tempm1->radius+tempm2->radius)-dd));
+	dd=10.0*Sqr(Sqr(Sqr(tmpm1->radius+tmpm2->radius)-dd));
 	D3MulEqu(&p,dd/d);
-	D3AddEqu(&tempm2->DstateDt->DxDt,&p);
-	D3SubEqu(&tempm1->DstateDt->DxDt,&p);
+	D3AddEqu(&tmpm2->DstateDt->DxDt,&p);
+	D3SubEqu(&tmpm1->DstateDt->DxDt,&p);
       }
-      tempm2=tempm2->next;
+      tmpm2=tmpm2->next;
     }
-    tempm1=tempm1->next;
+    tmpm1=tmpm1->next;
   }
 }
 
 U0 PlaceMass(I64 x, I64 y)
 {
-  MyMass *tempm=CAlloc(sizeof(MyMass));
-  tempm->mass=1.0;
-  tempm->drag_profile_factor=100.0;
-  tempm->x=x;
-  tempm->y=y;
-  tempm->radius=10*(Rand+0.25);
-  QueIns(tempm,ode->last_mass);
+  MyMass *tmpm=CAlloc(sizeof(MyMass));
+  tmpm->mass=1.0;
+  tmpm->drag_profile_factor=100.0;
+  tmpm->x=x;
+  tmpm->y=y;
+  tmpm->radius=10*(Rand+0.25);
+  QueIns(tmpm,ode->last_mass);
 }
 
-U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2)
+U0 PlaceSpring(MyMass *tmpm1,MyMass *tmpm2)
 {
-  MySpring *temps=CAlloc(sizeof(MySpring));
-  temps->end1=tempm1;
-  temps->end2=tempm2;
-  temps->const=10000;
-  temps->rest_len=100;
-  QueIns(temps,ode->last_spring);
+  MySpring *tmps=CAlloc(sizeof(MySpring));
+  tmps->end1=tmpm1;
+  tmps->end2=tmpm2;
+  tmps->const=10000;
+  tmps->rest_len=100;
+  QueIns(tmps,ode->last_spring);
 }
 
 U0 Init()
@@ -100,7 +100,7 @@ U0 CleanUp()
 U0 MassSpringDemo()
 {
   I64 msg_code,a1,a2;
-  MyMass *tempm1=NULL,*tempm2=NULL;
+  MyMass *tmpm1=NULL,*tmpm2=NULL;
 
   PopUpOk("Left-Click to place mas\n"
 	"Right-Click and drag to\n"
@@ -137,13 +137,13 @@ U0 MassSpringDemo()
 	  PlaceMass(a1,a2);
 	  break;
 	case MSG_IP_R_DOWN:
-	  tempm1=MassFind(ode,a1,a2);
-	  tempm2=NULL;
+	  tmpm1=MassFind(ode,a1,a2);
+	  tmpm2=NULL;
 	  break;
 	case MSG_IP_R_UP:
-	  if (tempm1 && (tempm2=MassFind(ode,a1,a2)) && tempm1!=tempm2)
-	    PlaceSpring(tempm1,tempm2);
-	  tempm1=tempm2=NULL;
+	  if (tmpm1 && (tmpm2=MassFind(ode,a1,a2)) && tmpm1!=tmpm2)
+	    PlaceSpring(tmpm1,tmpm2);
+	  tmpm1=tmpm2=NULL;
 	  break;
 	case MSG_KEY_DOWN:
 	  switch (a1) {
diff --git a/Demo/Games/Maze.HC b/Demo/Games/Maze.HC
index 82915f1..1120014 100644
--- a/Demo/Games/Maze.HC
+++ b/Demo/Games/Maze.HC
@@ -102,7 +102,7 @@ U0 Maze()
 	  ch=GetChar;
 	  break;
 	}
-	WinMgrSync;
+	Refresh;
       }
     } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC);
   catch
diff --git a/Demo/Games/RawHide.HC b/Demo/Games/RawHide.HC
index e3475f7..d87b849 100644
--- a/Demo/Games/RawHide.HC
+++ b/Demo/Games/RawHide.HC
@@ -17,23 +17,18 @@ CDC *map_dc;
 #define GATE_HEIGHT	7
 F64 gate_é,gate_t;
 
-$BG,10$#define GE_COW		0
-
+$BG,10$
 
 $SP,"<1>",BI=1$	$SP,"<2>",BI=2$	$SP,"<3>",BI=3$
-#define GE_BULL		1
 
 
 $SP,"<4>",BI=4$	$SP,"<5>",BI=5$	$SP,"<6>",BI=6$
-#define GE_HORSE	2
 
 
 $SP,"<7>",BI=7$	$SP,"<8>",BI=8$
-#define GE_NUM		3
 
 
 $SP,"<9>",BI=9$
-
 	$SP,"<10>",BI=10$
 
 
@@ -148,35 +143,35 @@ U0 RiverDropsDel()
 
 U0 RiverDropsNext(CTask *mem_task)
 {
-  RiverDrop *tempr,*tempr1;
+  RiverDrop *tmpr,*tmpr1;
   while (LBts(&rd_lock,0))
     Yield;
-  tempr=rd_head.next;
-  while (tempr!=&rd_head) {
-    tempr1=tempr->next;
-    if (++tempr->y>=MAP_HEIGHT-MAP_BORDER) {
-      QueRem(tempr);
-      Free(tempr);
+  tmpr=rd_head.next;
+  while (tmpr!=&rd_head) {
+    tmpr1=tmpr->next;
+    if (++tmpr->y>=MAP_HEIGHT-MAP_BORDER) {
+      QueRem(tmpr);
+      Free(tmpr);
     } else {
       do {
-	if (RandU16&1 && GrPeek(map_dc,r_x[tempr->y]+tempr->dx,
-	      tempr->y+tempr->dy)==BLUE)
+	if (RandU16&1 && GrPeek(map_dc,r_x[tmpr->y]+tmpr->dx,
+	      tmpr->y+tmpr->dy)==BLUE)
 	  break;
-	tempr->dx=ClampI64(tempr->dx+RandU16%3-1,-r_width[tempr->y]/2,
-	      r_width[tempr->y]/2);
-	tempr->dy=ClampI64(tempr->dy+RandU16%3-1,-r_width[tempr->y]/2,
-	      r_width[tempr->y]/2);
-      } while (GrPeek(map_dc,r_x[tempr->y]+tempr->dx,
-	    tempr->y+tempr->dy)!=BLUE &&
-	    GrPeek(map_dc,r_x[tempr->y],tempr->y)==BLUE);//Might be reiniting
+	tmpr->dx=ClampI64(tmpr->dx+RandU16%3-1,-r_width[tmpr->y]/2,
+	      r_width[tmpr->y]/2);
+	tmpr->dy=ClampI64(tmpr->dy+RandU16%3-1,-r_width[tmpr->y]/2,
+	      r_width[tmpr->y]/2);
+      } while (GrPeek(map_dc,r_x[tmpr->y]+tmpr->dx,
+	    tmpr->y+tmpr->dy)!=BLUE &&
+	    GrPeek(map_dc,r_x[tmpr->y],tmpr->y)==BLUE);//Might be reiniting
     }
-    tempr=tempr1;
+    tmpr=tmpr1;
   }
-  tempr=MAlloc(sizeof(RiverDrop),mem_task);
-  tempr->y=MAP_BORDER;
-  tempr->dx=0;
-  tempr->dy=0;
-  QueIns(tempr,rd_head.last);
+  tmpr=MAlloc(sizeof(RiverDrop),mem_task);
+  tmpr->y=MAP_BORDER;
+  tmpr->dx=0;
+  tmpr->dy=0;
+  QueIns(tmpr,rd_head.last);
   LBtr(&rd_lock,0);
 }
 
@@ -184,14 +179,14 @@ U0 RiverDropsDraw(CDC *dc,I64 cx,I64 cy)
 {
   I64 i;
   F64 t=tS;
-  RiverDrop *tempr;
+  RiverDrop *tmpr;
   while (LBts(&rd_lock,0))
     Yield;
-  tempr=rd_head.next;
+  tmpr=rd_head.next;
   dc->color=LTBLUE;
-  while (tempr!=&rd_head) {
-    GrPlot(dc,r_x[tempr->y]+tempr->dx-cx,tempr->y+tempr->dy-cy);
-    tempr=tempr->next;
+  while (tmpr!=&rd_head) {
+    GrPlot(dc,r_x[tmpr->y]+tmpr->dx-cx,tmpr->y+tmpr->dy-cy);
+    tmpr=tmpr->next;
   }
   LBtr(&rd_lock,0);
 
@@ -336,7 +331,7 @@ U0 AnimateTask(CTask *parent)
   I64 i,cx,cy,cursor_x,cursor_y,dd,ddx,ddy,cnt,max_speed=MAX_I64,updates=0,
 	my_outside_cnt;
   F64 f,d,dx,dy,s,stress;
-  Animal *tempa,*tempa1;
+  Animal *tmpa,*tmpa1;
   while (TRUE) {
     max_speed=ClampU64(max_speed,MAX_U32/3,200*MAX_U32);
     cx=(MAP_WIDTH -parent->pix_width)/2,
@@ -349,30 +344,30 @@ U0 AnimateTask(CTask *parent)
       gate_t=tS;
     RedrawGate;
     for (i=0;idead) {
+      tmpa=&a[i];
+      if (!tmpa->dead) {
 //Move away from horse
-	ddx=tempa->x.i32[1]-cursor_x;
-	ddy=tempa->y.i32[1]-cursor_y;
+	ddx=tmpa->x.i32[1]-cursor_x;
+	ddy=tmpa->y.i32[1]-cursor_y;
 	if (dd=SqrI64(ddx)+SqrI64(ddy)) {
 	  d=Sqrt(dd);
 	  dx=ddx/d;
 	  dy=ddy/d;
 	  f=5.0e2*MAX_U32/dd;
-	  tempa->dx+=f*dx;
-	  tempa->dy+=f*dy;
+	  tmpa->dx+=f*dx;
+	  tmpa->dy+=f*dy;
 	}
 
 	//Resel buddy about every NUM_ANIMALS*10ms=5.12 seconds
-	tempa1=&a[tempa->buddy];
-	if (tempa1->dead || i==updates%NUM_ANIMALS) {
+	tmpa1=&a[tmpa->buddy];
+	if (tmpa1->dead || i==updates%NUM_ANIMALS) {
 	  BuddySel(i);
-	  tempa1=&a[tempa->buddy];
+	  tmpa1=&a[tmpa->buddy];
 	}
 
 	//Move toward buddy
-	ddx=tempa->x.i32[1]-tempa1->x.i32[1];
-	ddy=tempa->y.i32[1]-tempa1->y.i32[1];
+	ddx=tmpa->x.i32[1]-tmpa1->x.i32[1];
+	ddy=tmpa->y.i32[1]-tmpa1->y.i32[1];
 	if (dd=SqrI64(ddx)+SqrI64(ddy)) {
 	  d=Sqrt(dd);
 	  s=d`1.25-80;
@@ -380,42 +375,42 @@ U0 AnimateTask(CTask *parent)
 	  dx=ddx/d;
 	  dy=ddy/d;
 	  f=-0.001*s*MAX_U32;
-	  tempa->dx+=f*dx;
-	  tempa->dy+=f*dy;
+	  tmpa->dx+=f*dx;
+	  tmpa->dy+=f*dy;
 	}
 
 	//Make velocity similar to buddy
-	tempa->dx+=0.1*(tempa1->dx-tempa->dx);
-	tempa->dy+=0.1*(tempa1->dy-tempa->dy);
+	tmpa->dx+=0.1*(tmpa1->dx-tmpa->dx);
+	tmpa->dy+=0.1*(tmpa1->dy-tmpa->dy);
 
 	//Add random movement, limit speed and dampen speed
-	tempa->dx=0.995*ClampI64(tempa->dx+RandI32/32,-max_speed,max_speed);
-	tempa->dy=0.995*ClampI64(tempa->dy+RandI32/32,-max_speed,max_speed);
+	tmpa->dx=0.995*ClampI64(tmpa->dx+RandI32/32,-max_speed,max_speed);
+	tmpa->dy=0.995*ClampI64(tmpa->dy+RandI32/32,-max_speed,max_speed);
 
 	//Slow in river
-	if (GrPeek(map_dc,tempa->x.i32[1],tempa->y.i32[1])!=LTGREEN) {
-	  tempa->dx/=2;
-	  tempa->dy/=2;
+	if (GrPeek(map_dc,tmpa->x.i32[1],tmpa->y.i32[1])!=LTGREEN) {
+	  tmpa->dx/=2;
+	  tmpa->dy/=2;
 	}
 
-	if (CheckMap((tempa->x+tempa->dx)>>32,(tempa->y+tempa->dy)>>32)) {
-	  tempa->x+=tempa->dx;
-	  tempa->y+=tempa->dy;
+	if (CheckMap((tmpa->x+tmpa->dx)>>32,(tmpa->y+tmpa->dy)>>32)) {
+	  tmpa->x+=tmpa->dx;
+	  tmpa->y+=tmpa->dy;
 	}
 
 	//Keep on map
 	if (!(MAP_BORDER+ANIMAL_WIDTH/2
-	      <=tempa->x.i32[1]x -=tempa->dx;
-	  tempa->dx=-tempa->dx;
+	      <=tmpa->x.i32[1]x -=tmpa->dx;
+	  tmpa->dx=-tmpa->dx;
 	}
 	if (!(MAP_BORDER+ANIMAL_HEIGHT
-	      <=tempa->y.i32[1]y -=tempa->dy;
-	  tempa->dy=-tempa->dy;
+	      <=tmpa->y.i32[1]y -=tmpa->dy;
+	  tmpa->dy=-tmpa->dy;
 	}
 	cnt++;
-	if (tempa->x>>32>=FENCE_WIDTH || tempa->y>>32>=FENCE_HEIGHT)
+	if (tmpa->x>>32>=FENCE_WIDTH || tmpa->y>>32>=FENCE_HEIGHT)
 	  my_outside_cnt++;
       }
     }
diff --git a/Demo/Games/Squirt.HC b/Demo/Games/Squirt.HC
index 23ff3a7..e25da4b 100644
Binary files a/Demo/Games/Squirt.HC and b/Demo/Games/Squirt.HC differ
diff --git a/Demo/Games/Stadium/Stadium.HC b/Demo/Games/Stadium/Stadium.HC
index 397719f..b91a66d 100644
Binary files a/Demo/Games/Stadium/Stadium.HC and b/Demo/Games/Stadium/Stadium.HC differ
diff --git a/Demo/Games/Stadium/StadiumBG.GRA b/Demo/Games/Stadium/StadiumBG.GR
similarity index 100%
rename from Demo/Games/Stadium/StadiumBG.GRA
rename to Demo/Games/Stadium/StadiumBG.GR
diff --git a/Demo/Games/Stadium/StadiumGen.HC b/Demo/Games/Stadium/StadiumGen.HC
index 95d27f8..8104740 100644
--- a/Demo/Games/Stadium/StadiumGen.HC
+++ b/Demo/Games/Stadium/StadiumGen.HC
@@ -1,4 +1,4 @@
-//Generate "StadiumBG.GRA.Z" from "StadiumBG.DD.Z"
+//Generate "StadiumBG.GR.Z" from "StadiumBG.DD.Z"
 
 U0 StadiumGen()
 {
@@ -13,19 +13,19 @@ U0 StadiumGen()
   DocClear;
   Type("StadiumBG.DD");
   "$$CM,0,%d$$",TEXT_ROWS-3;
-  fp_old_update=gr.fp_final_screen_update; //hide mouse cursor
-  gr.fp_final_screen_update=NULL;
+  fp_old_update=gr.fp_final_scrn_update; //hide mouse cursor
+  gr.fp_final_scrn_update=NULL;
 
-  WinMgrSync(2,TRUE);
-  dc2=DCScreenCapture;
+  Refresh(2,TRUE);
+  dc2=DCScrnCapture;
   dc=DCExt(dc2,0,FONT_HEIGHT,GR_WIDTH,GR_HEIGHT);
   DCDel(dc2);
 
-  GRAWrite("StadiumBG",dc,DCSF_COMPRESSED|DCSF_PALETTE_GET);
+  GRWrite("StadiumBG",dc,DCSF_COMPRESSED|DCSF_PALETTE_GET);
   DCDel(dc);
 
   DocCursor(ON);
-  gr.fp_final_screen_update=fp_old_update;
+  gr.fp_final_scrn_update=fp_old_update;
   DocClear;
 }
 
diff --git a/Demo/Games/TicTacToe.HC b/Demo/Games/TicTacToe.HC
index 17f1f4f..ab1c750 100644
--- a/Demo/Games/TicTacToe.HC
+++ b/Demo/Games/TicTacToe.HC
@@ -54,11 +54,11 @@ U0 TakeTurn(I64 player)
       Beep(1000);
     while (!ip.lb) {
       DrawBoard(player);
-      WinMgrSync;
+      Refresh;
     }
     while (ip.lb) {
       DrawBoard(player);
-      WinMgrSync;
+      Refresh;
     }
     x=ip.pos.x-Fs->pix_left;
     y=ip.pos.y-Fs->pix_top;
diff --git a/Demo/Games/TreeCheckers.HC b/Demo/Games/TreeCheckers.HC
index 02c54c8..55c7849 100644
--- a/Demo/Games/TreeCheckers.HC
+++ b/Demo/Games/TreeCheckers.HC
@@ -96,7 +96,7 @@ U0 DrawIt(CTask *task,CDC *dc)
   }
 }
 
-Unit *FindUnit(I64 x,I64 y,I64 player)
+Unit *UnitFind(I64 x,I64 y,I64 player)
 {
   I64 i,dd,best_dd=MAX_I64;
   Unit *res=NULL;
@@ -112,7 +112,7 @@ Unit *FindUnit(I64 x,I64 y,I64 player)
   return res;
 }
 
-U0 CheckForKills(I64 x1,I64 y1,I64 player)
+U0 KillsChk(I64 x1,I64 y1,I64 player)
 {
   I64 i,j,x2,y2,dd;
   Bool found;
@@ -141,7 +141,7 @@ U0 CheckForKills(I64 x1,I64 y1,I64 player)
   }
 }
 
-Bool MoveUnit(Unit *tempu,I64 x2,I64 y2)
+Bool UnitMove(Unit *tmpu,I64 x2,I64 y2)
 {
   I64 i,r,c,r2,c2,x=start_x,y=start_y;
   S2W(&x2,&y2);
@@ -151,8 +151,8 @@ Bool MoveUnit(Unit *tempu,I64 x2,I64 y2)
     c=x; r=y;
     S2Circle(&c,&r);
     if (c==c2 && r==r2) {
-      end_x=tempu->x=x2;
-      end_y=tempu->y=y2;
+      end_x=tmpu->x=x2;
+      end_y=tmpu->y=y2;
       return TRUE;
     }
     if (r2!=r) {
@@ -284,7 +284,7 @@ U0 CleanUp()
 U0 TreeCheckers()
 {
   I64 msg_code,a1,a2,ch,sc;
-  Unit *tempu;
+  Unit *tmpu;
 
   SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
   MenuPush(
@@ -307,7 +307,7 @@ U0 TreeCheckers()
   try {
 cn_start:
     Init;
-    tempu=NULL;
+    tmpu=NULL;
     show_start=FALSE;
     Fs->draw_it=&DrawIt;
     while (TRUE) {
@@ -326,21 +326,21 @@ cn_start:
 	  break;
 	case MSG_IP_L_DOWN:
 	  if (num_alive[0]>1 && num_alive[1]>1) {
-	    tempu=FindUnit(a1,a2,cur_player);
-	    end_x=start_x=tempu->x;
-	    end_y=start_y=tempu->y;
+	    tmpu=UnitFind(a1,a2,cur_player);
+	    end_x=start_x=tmpu->x;
+	    end_y=start_y=tmpu->y;
 	    show_start=TRUE;
 	  }
 	  break;
 	case MSG_IP_MOVE:
-	  if (tempu)
-	    MoveUnit(tempu,a1,a2);
+	  if (tmpu)
+	    UnitMove(tmpu,a1,a2);
 	  break;
 	case MSG_IP_L_UP:
-	  MoveUnit(tempu,a1,a2);
-	  CheckForKills(tempu->x,tempu->y,cur_player);
+	  UnitMove(tmpu,a1,a2);
+	  KillsChk(tmpu->x,tmpu->y,cur_player);
 	  show_start=FALSE;
-	  tempu=NULL;
+	  tmpu=NULL;
 	  cur_player=1-cur_player;
 	  break;
       }
diff --git a/Demo/Games/Varoom.HC b/Demo/Games/Varoom.HC
index a20b0fe..a4e9745 100644
--- a/Demo/Games/Varoom.HC
+++ b/Demo/Games/Varoom.HC
@@ -150,32 +150,32 @@ F64 Dip
   return ASin((y_front-y_back)/CAR_LENGTH);
 }
 
-Track *TrackFind(Track *_tempt,I64 x,I64 z)
+Track *TrackFind(Track *_tmpt,I64 x,I64 z)
 {
-  Track *res=_tempt,*tempt;
+  Track *res=_tmpt,*tmpt;
   I64 dd,best=SqrI64(res->x-x)+SqrI64(res->z-z);
 
-  tempt=_tempt;
+  tmpt=_tmpt;
   while (TRUE) {
-    tempt=tempt->next;
-    if (tempt==&track_head)
-      tempt=tempt->next;
-    dd=SqrI64(tempt->x-x)+SqrI64(tempt->z-z);
+    tmpt=tmpt->next;
+    if (tmpt==&track_head)
+      tmpt=tmpt->next;
+    dd=SqrI64(tmpt->x-x)+SqrI64(tmpt->z-z);
     if (ddlast;
-    if (tempt==&track_head)
-      tempt=tempt->last;
-    dd=SqrI64(tempt->x-x)+SqrI64(tempt->z-z);
+    tmpt=tmpt->last;
+    if (tmpt==&track_head)
+      tmpt=tmpt->last;
+    dd=SqrI64(tmpt->x-x)+SqrI64(tmpt->z-z);
     if (ddcenter[0],&last->center[3],sizeof(CD3I32));
-    MemCpy(&tempt->center[1],&last->center[2],sizeof(CD3I32));
+    MemCpy(&tmpt->center[0],&last->center[3],sizeof(CD3I32));
+    MemCpy(&tmpt->center[1],&last->center[2],sizeof(CD3I32));
   }
-  tempt->center[2].x=x+(WIDTH/2)*c+dx;
-  tempt->center[2].z=z+(WIDTH/2)*s+dz;
-  tempt->center[2].y=DipY(tempt->center[2].x,tempt->center[2].z);
-  tempt->center[3].x=x-(WIDTH/2)*c+dx;
-  tempt->center[3].z=z-(WIDTH/2)*s+dz;
-  tempt->center[3].y=DipY(tempt->center[3].x,tempt->center[3].z);
+  tmpt->center[2].x=x+(WIDTH/2)*c+dx;
+  tmpt->center[2].z=z+(WIDTH/2)*s+dz;
+  tmpt->center[2].y=DipY(tmpt->center[2].x,tmpt->center[2].z);
+  tmpt->center[3].x=x-(WIDTH/2)*c+dx;
+  tmpt->center[3].z=z-(WIDTH/2)*s+dz;
+  tmpt->center[3].y=DipY(tmpt->center[3].x,tmpt->center[3].z);
 
   if (last) {
-    MemCpy(&tempt->left[0],&last->left[3],sizeof(CD3I32));
-    MemCpy(&tempt->left[1],&last->left[2],sizeof(CD3I32));
+    MemCpy(&tmpt->left[0],&last->left[3],sizeof(CD3I32));
+    MemCpy(&tmpt->left[1],&last->left[2],sizeof(CD3I32));
   }
-  tempt->left[2].x=x-(WIDTH/2)*c+dx;
-  tempt->left[2].z=z-(WIDTH/2)*s+dz;
-  tempt->left[2].y=DipY(tempt->left[2].x,tempt->left[2].z);
-  tempt->left[3].x=x-(WIDTH/2+SHOULDER)*c+dx;
-  tempt->left[3].z=z-(WIDTH/2+SHOULDER)*s+dz;
-  tempt->left[3].y=DipY(tempt->left[3].x,tempt->left[3].z);
+  tmpt->left[2].x=x-(WIDTH/2)*c+dx;
+  tmpt->left[2].z=z-(WIDTH/2)*s+dz;
+  tmpt->left[2].y=DipY(tmpt->left[2].x,tmpt->left[2].z);
+  tmpt->left[3].x=x-(WIDTH/2+SHOULDER)*c+dx;
+  tmpt->left[3].z=z-(WIDTH/2+SHOULDER)*s+dz;
+  tmpt->left[3].y=DipY(tmpt->left[3].x,tmpt->left[3].z);
 
   if (last) {
-    MemCpy(&tempt->right[0],&last->right[3],sizeof(CD3I32));
-    MemCpy(&tempt->right[1],&last->right[2],sizeof(CD3I32));
+    MemCpy(&tmpt->right[0],&last->right[3],sizeof(CD3I32));
+    MemCpy(&tmpt->right[1],&last->right[2],sizeof(CD3I32));
   }
-  tempt->right[2].x=x+(WIDTH/2+SHOULDER)*c+dx;
-  tempt->right[2].z=z+(WIDTH/2+SHOULDER)*s+dz;
-  tempt->right[2].y=DipY(tempt->right[2].x,tempt->right[2].z);
-  tempt->right[3].x=x+(WIDTH/2)*c+dx;
-  tempt->right[3].z=z+(WIDTH/2)*s+dz;
-  tempt->right[3].y=DipY(tempt->right[3].x,tempt->right[3].z);
+  tmpt->right[2].x=x+(WIDTH/2+SHOULDER)*c+dx;
+  tmpt->right[2].z=z+(WIDTH/2+SHOULDER)*s+dz;
+  tmpt->right[2].y=DipY(tmpt->right[2].x,tmpt->right[2].z);
+  tmpt->right[3].x=x+(WIDTH/2)*c+dx;
+  tmpt->right[3].z=z+(WIDTH/2)*s+dz;
+  tmpt->right[3].y=DipY(tmpt->right[3].x,tmpt->right[3].z);
 
-  tempt->x=x;
-  tempt->z=z;
-  tempt->é=é;
-  tempt->num=track_head.last->num+1;
-  tempt->d  =track_head.last->d+d;
+  tmpt->x=x;
+  tmpt->z=z;
+  tmpt->é=é;
+  tmpt->num=track_head.last->num+1;
+  tmpt->d  =track_head.last->d+d;
 
-  QueIns(tempt,track_head.last);
+  QueIns(tmpt,track_head.last);
 
-  if (tempt->num&1)
-    tempt->c=RED;
+  if (tmpt->num&1)
+    tmpt->c=RED;
   else
-    tempt->c=WHITE;
+    tmpt->c=WHITE;
 
   if (xt_maxx) t_maxx=x;
@@ -266,7 +266,7 @@ U0 CoupleEnds()
 U0 InitTrack()
 {
   I64 i,j;
-  Track *tempt;
+  Track *tmpt;
   F64 x,z,é,d;
 
   MemSet(&track_head,0,sizeof(Track));
@@ -295,13 +295,13 @@ U0 InitTrack()
 
   CoupleEnds;
 
-  tempt=track_head.next;
+  tmpt=track_head.next;
   for (i=0;inum/mp_cnt+1;
-    track_start[i]=tempt;
-    while (tempt!=&track_head && tempt->num!=j)
-      tempt=tempt->next;
-    track_end[i]=tempt;
+    track_start[i]=tmpt;
+    while (tmpt!=&track_head && tmpt->num!=j)
+      tmpt=tmpt->next;
+    track_end[i]=tmpt;
   }
 
   t_minx-=BORDER; t_minz-=BORDER;
@@ -311,13 +311,13 @@ U0 InitTrack()
 
   track_map->color=LTGRAY;
   GrRect(track_map,0,0,track_map->width,track_map->height);
-  tempt=track_head.next;
+  tmpt=track_head.next;
   track_map->color=YELLOW;
   track_map->pen_width=3;
-  while (tempt!=&track_head) {
-    GrPlot3(track_map,track_map->width-(tempt->x-t_minx)>>MAP_BITS,
-	  (tempt->z-t_minz)>>MAP_BITS,0);
-    tempt=tempt->next;
+  while (tmpt!=&track_head) {
+    GrPlot3(track_map,track_map->width-(tmpt->x-t_minx)>>MAP_BITS,
+	  (tmpt->z-t_minz)>>MAP_BITS,0);
+    tmpt=tmpt->next;
   }
 }
 
@@ -350,9 +350,9 @@ U0 MPUpdateWin(CDC *dc2)
   I64	i,x,y,z,
 	w=task->pix_width,h=task->pix_height,r[16],cx=w>>1;
   F64	s,dip_é=Dipé(c[0].p.x,c[0].p.z,c[0].é);
-  Car	*tempc;
+  Car	*tmpc;
   CD3I32 poly[4];
-  Track	*tempt,*tempt1;
+  Track	*tmpt,*tmpt1;
   CDC	*dc=DCAlias(gr.dc2,task);
 
   Mat4x4IdentEqu(r);
@@ -362,19 +362,19 @@ U0 MPUpdateWin(CDC *dc2)
   dc->depth_buf=dc2->depth_buf;
 
   //Track
-  tempt =track_start[Gs->num];
-  tempt1=track_end  [Gs->num];
-  while (tempt!=tempt1) {
+  tmpt =track_start[Gs->num];
+  tmpt1=track_end  [Gs->num];
+  while (tmpt!=tmpt1) {
     dc->color=DKGRAY;
-    if (PrepPoly(&tempt->center,r,cx,h,poly)) {
+    if (PrepPoly(&tmpt->center,r,cx,h,poly)) {
       GrFillPoly3(dc,4,poly);
-      dc->color=tempt->c;
-      if (PrepPoly(&tempt->left,r,cx,h,poly))
+      dc->color=tmpt->c;
+      if (PrepPoly(&tmpt->left,r,cx,h,poly))
 	GrFillPoly3(dc,4,poly);
-      if (PrepPoly(&tempt->right,r,cx,h,poly))
+      if (PrepPoly(&tmpt->right,r,cx,h,poly))
 	GrFillPoly3(dc,4,poly);
     }
-    tempt=tempt->next;
+    tmpt=tmpt->next;
   }
 
   dc->flags|=DCF_TRANSFORMATION;
@@ -395,17 +395,17 @@ U0 MPUpdateWin(CDC *dc2)
     }
   }
   for (i=Gs->num+1;ip.x-c[0].p.x; y=tempc->p.y-c[0].p.y; z=tempc->p.z-c[0].p.z;
+    tmpc=&c[i];
+    x=tmpc->p.x-c[0].p.x; y=tmpc->p.y-c[0].p.y; z=tmpc->p.z-c[0].p.z;
     Mat4x4MulXYZ(r,&x,&y,&z);
     if (z>0) {
       s=100.0/(AbsI64(z)+50);
       Mat4x4IdentEqu(dc->r);
       Mat4x4Scale(dc->r,s*2);
-      Mat4x4RotX(dc->r,Dipé(tempc->p.x,tempc->p.z,-tempc->é));
-      Mat4x4RotY(dc->r,tempc->é-c[0].é);
+      Mat4x4RotX(dc->r,Dipé(tmpc->p.x,tmpc->p.z,-tmpc->é));
+      Mat4x4RotY(dc->r,tmpc->é-c[0].é);
       DCMat4x4Set(dc,dc->r);
-      Sprite3B(dc,s*x+cx,s*y+h,z+GR_Z_ALL,tempc->img);
+      Sprite3B(dc,s*x+cx,s*y+h,z+GR_Z_ALL,tmpc->img);
     }
   }
   dc->depth_buf=NULL;
@@ -433,7 +433,7 @@ U0 DrawIt(CTask *task,CDC *dc)
 	h=task->pix_height,r[16],
 	cx=w>>1;
   F64	s,dip_é=Dipé(c[0].p.x,c[0].p.z,c[0].é);
-  Car	*tempc=&c[0];
+  Car	*tmpc=&c[0];
 
   dc->color=LTCYAN;
   GrRect(dc,0,0,w,HORIZON_DIP*Sin(dip_é)+FONT_HEIGHT*4.5);
@@ -462,7 +462,7 @@ U0 DrawIt(CTask *task,CDC *dc)
     Yield;
 
   Mat4x4IdentEqu(r);
-  Mat4x4RotY(r,tempc->dé);
+  Mat4x4RotY(r,tmpc->dé);
   Mat4x4RotX(r,0.4-8*dip_é); //Made this up
   dc->transform=&VRTransform;
   dc->x=task->pix_width>>1;
@@ -503,40 +503,40 @@ U0 DrawIt(CTask *task,CDC *dc)
 
 U0 AnimateTask(I64)
 {
-  Car  *tempc;
+  Car  *tmpc;
   I64 i,x,z;
   Bool on_track;
-  Track *tempt,*tempt2;
+  Track *tmpt,*tmpt2;
   while (TRUE) {
     if (!game_over)
       Snd(0.01*c[0].speed*3+10);
     else
       Snd(0);
     for (i=0;ip.x-=0.01*tempc->speed*Cos(tempc->é-ã/2);
-      tempc->p.z+=0.01*tempc->speed*Sin(tempc->é-ã/2);
-      tempt=TrackFind(tempc->t,tempc->p.x,tempc->p.z);
+      tmpc=&c[i];
+      tmpc->p.x-=0.01*tmpc->speed*Cos(tmpc->é-ã/2);
+      tmpc->p.z+=0.01*tmpc->speed*Sin(tmpc->é-ã/2);
+      tmpt=TrackFind(tmpc->t,tmpc->p.x,tmpc->p.z);
       if (i) {
-	if (tempt!=tempc->t) {
-	  tempt2=tempt->next;
-	  if (tempt2==&track_head)
-	    tempt2=tempt2->next;
-	  tempc->é=Arg(-tempt2->z+tempc->p.z,-tempt2->x+tempc->p.x);
+	if (tmpt!=tmpc->t) {
+	  tmpt2=tmpt->next;
+	  if (tmpt2==&track_head)
+	    tmpt2=tmpt2->next;
+	  tmpc->é=Arg(-tmpt2->z+tmpc->p.z,-tmpt2->x+tmpc->p.x);
 	}
       } else {
-	tempc->é+=0.01*tempc->dé;
-	x=track_map->width-(tempc->p.x-t_minx)>>MAP_BITS;
-	z=(tempc->p.z-t_minz)>>MAP_BITS;
+	tmpc->é+=0.01*tmpc->dé;
+	x=track_map->width-(tmpc->p.x-t_minx)>>MAP_BITS;
+	z=(tmpc->p.z-t_minz)>>MAP_BITS;
 	if (GrPeek(track_map,x,z)!=YELLOW) {
 	  on_track=FALSE;
-	  tempc->speed-=0.01*tempc->speed;
-	  if (tempc->speed<0) tempc->speed=0;
+	  tmpc->speed-=0.01*tmpc->speed;
+	  if (tmpc->speed<0) tmpc->speed=0;
 	} else
 	  on_track=TRUE;
       }
-      tempc->t=tempt;
-      tempc->p.y=DipY(tempc->p.x,tempc->p.z);
+      tmpc->t=tmpt;
+      tmpc->p.y=DipY(tmpc->p.x,tmpc->p.z);
     }
     if (!game_over && on_track) {
       for (i=1;i",BI=1$,$IB,"<1>",BI=1$,$IB,"<2>",BI=2$,$IB,"<2>",BI=2$,$IB
 
 U0 InitBushes()
 {
-  Bush *tempb;
+  Bush *tmpb;
   I64 i,j,x,z;
   track_map->color=LTGREEN;
   track_map->pen_width=1;
   for (i=0;ip.x=Rand*(t_maxx-t_minx)+t_minx;
-    tempb->p.z=Rand*(t_maxz-t_minz)+t_minz;
-    x=track_map->width-(tempb->p.x-t_minx)>>MAP_BITS;
-    z=(tempb->p.z-t_minz)>>MAP_BITS;
+    tmpb->p.x=Rand*(t_maxx-t_minx)+t_minx;
+    tmpb->p.z=Rand*(t_maxz-t_minz)+t_minz;
+    x=track_map->width-(tmpb->p.x-t_minx)>>MAP_BITS;
+    z=(tmpb->p.z-t_minz)>>MAP_BITS;
     for (j=0;j<8;j++)
       if (GrPeek(track_map,x+gr_x_offsets[j],z+gr_y_offsets[j])!=LTGRAY)
 	goto ib_restart;
 
     GrPlot(track_map,x,z);
-    tempb->p.y=DipY(tempb->p.x,tempb->p.z);
-    tempb->sym=RandU16&1;
-    tempb->img=imgs[i&7];
+    tmpb->p.y=DipY(tmpb->p.x,tmpb->p.z);
+    tmpb->sym=RandU16&1;
+    tmpb->img=imgs[i&7];
   }
 }
 
 
 U0 Init()
 {
-  Car	*tempc;
-  Track *tempt;
+  Car	*tmpc;
+  Track *tmpt;
   F64	d;
   I64	i;
 
   InitTrack;
   InitBushes;
-  tempt=track_head.next;
+  tmpt=track_head.next;
   for (i=0;it=tempt;
-    tempc->p.x=tempt->x;
-    tempc->p.z=tempt->z;
-    tempc->p.y=DipY(tempc->p.x,tempc->p.z);
-    tempc->é  =-tempt->é;
-    tempc->dé=0;
+    tmpc=&c[i];
+    tmpc->t=tmpt;
+    tmpc->p.x=tmpt->x;
+    tmpc->p.z=tmpt->z;
+    tmpc->p.y=DipY(tmpc->p.x,tmpc->p.z);
+    tmpc->é  =-tmpt->é;
+    tmpc->dé=0;
     if (!i) {
-      tempc->img=$IB,"<5>",BI=5$;
-      tempc->speed=0;
+      tmpc->img=$IB,"<5>",BI=5$;
+      tmpc->speed=0;
     } else {
-      tempc->img=$IB,"<6>",BI=6$;
-      tempc->speed=2500.0;
+      tmpc->img=$IB,"<6>",BI=6$;
+      tmpc->speed=2500.0;
     }
     d=(i+1)*track_head.last->d/NUM_CARS;
-    while (tempt->next!=&track_head && tempt->dnext;
+    while (tmpt->next!=&track_head && tmpt->dnext;
   }
   distance=0;
   tf=0;
diff --git a/Demo/Games/Wenceslas.HC b/Demo/Games/Wenceslas.HC
index 98da405..5ef4677 100644
--- a/Demo/Games/Wenceslas.HC
+++ b/Demo/Games/Wenceslas.HC
@@ -121,9 +121,9 @@ class Step
 U0 DrawIt(CTask *task,CDC *dc)
 {
   I64 r[16],i,w=task->pix_width,h=task->pix_height,x,y;
-  U8 *img,*temps;
-  Step *tempst;
-  Peasant *tempp;
+  U8 *img,*tmps;
+  Step *tmpst;
+  Peasant *tmpp;
   F64 tt;
 
   dc->pen_width=1;
@@ -157,35 +157,35 @@ U0 DrawIt(CTask *task,CDC *dc)
     }
   }
 
-  tempst=step_head.next;
-  while (tempst!=&step_head) {
-    if (tS-tempst->t0<2.0)
+  tmpst=step_head.next;
+  while (tmpst!=&step_head) {
+    if (tS-tmpst->t0<2.0)
       dc->color=DKGRAY;
     else
       dc->color=LTGRAY;
     dc->pen_width=4;
-    GrPlot3(dc,tempst->x,tempst->y,0);
-    tempst=tempst->next;
+    GrPlot3(dc,tmpst->x,tmpst->y,0);
+    tmpst=tmpst->next;
   }
 
   DCDepthBufAlloc(dc);
   dc->flags|=DCF_TRANSFORMATION;
   dc->pen_width=1;
-  tempp=peasant_head.next;
-  while (tempp!=&peasant_head) {
+  tmpp=peasant_head.next;
+  while (tmpp!=&peasant_head) {
     Mat4x4IdentEqu(r);
-    Mat4x4RotY(r,tempp->é+ã/2);
+    Mat4x4RotY(r,tmpp->é+ã/2);
     Mat4x4RotX(r,ã/6);
-    if (tempp->stopped)
-      SpriteMat3B(dc,tempp->x,tempp->y,GR_Z_ALL,peasant_imgs[0],r);
+    if (tmpp->stopped)
+      SpriteMat3B(dc,tmpp->x,tmpp->y,GR_Z_ALL,peasant_imgs[0],r);
     else {
-      temps=SpriteInterpolate(Saw(animate_mS/250.0,1.0),
+      tmps=SpriteInterpolate(Saw(animate_mS/250.0,1.0),
 	    peasant_imgs[ animate_phase   &3],
 	    peasant_imgs[(animate_phase+1)&3]);
-      SpriteMat3B(dc,tempp->x,tempp->y,GR_Z_ALL,temps,r);
-      Free(temps);
+      SpriteMat3B(dc,tmpp->x,tmpp->y,GR_Z_ALL,tmps,r);
+      Free(tmps);
     }
-    tempp=tempp->next;
+    tmpp=tmpp->next;
   }
 
   dc->pen_width=1;
@@ -195,11 +195,11 @@ U0 DrawIt(CTask *task,CDC *dc)
   if (tS>king_timeout)
     SpriteMat3B(dc,king_x,king_y,GR_Z_ALL,king_imgs[0],r);
   else {
-    temps=SpriteInterpolate(Saw(king_mS/250.0,1.0),
+    tmps=SpriteInterpolate(Saw(king_mS/250.0,1.0),
 	  king_imgs[ king_phase   &3],
 	  king_imgs[(king_phase+1)&3]);
-    SpriteMat3B(dc,king_x,king_y,GR_Z_ALL,temps,r);
-    Free(temps);
+    SpriteMat3B(dc,king_x,king_y,GR_Z_ALL,tmps,r);
+    Free(tmps);
   }
 
   dc->pen_width=1;
@@ -223,38 +223,38 @@ U0 DrawIt(CTask *task,CDC *dc)
 
 U0 StepNew(CTask *task,I64 x,I64 y,F64 é,Bool left_right,Bool king)
 {
-  Step *temps;
+  Step *tmps;
 
   if (king) {
-    temps=MAlloc(sizeof(Step),task);
-    temps->x=x;
-    temps->y=y;
-    temps->t0=tS;
-    QueIns(temps,king_step_head.last);
+    tmps=MAlloc(sizeof(Step),task);
+    tmps->x=x;
+    tmps->y=y;
+    tmps->t0=tS;
+    QueIns(tmps,king_step_head.last);
   }
 
   if (left_right) {
-    temps=MAlloc(sizeof(Step),task);
-    temps->x=x-3.5*Sin(é)+2.0*Cos(é);
-    temps->y=y+3.5*Cos(é)+2.0*Sin(é);
-    temps->t0=tS;
-    QueIns(temps,step_head.last);
-    temps=MAlloc(sizeof(Step),task);
-    temps->x=x-3.5*Sin(é)+5.0*Cos(é);
-    temps->y=y+3.5*Cos(é)+5.0*Sin(é);
-    temps->t0=tS;
-    QueIns(temps,step_head.last);
+    tmps=MAlloc(sizeof(Step),task);
+    tmps->x=x-3.5*Sin(é)+2.0*Cos(é);
+    tmps->y=y+3.5*Cos(é)+2.0*Sin(é);
+    tmps->t0=tS;
+    QueIns(tmps,step_head.last);
+    tmps=MAlloc(sizeof(Step),task);
+    tmps->x=x-3.5*Sin(é)+5.0*Cos(é);
+    tmps->y=y+3.5*Cos(é)+5.0*Sin(é);
+    tmps->t0=tS;
+    QueIns(tmps,step_head.last);
   } else {
-    temps=MAlloc(sizeof(Step),task);
-    temps->x=x+3.5*Sin(é)+0.0*Cos(é);
-    temps->y=y-3.5*Cos(é)+0.0*Sin(é);
-    temps->t0=tS;
-    QueIns(temps,step_head.last);
-    temps=MAlloc(sizeof(Step),task);
-    temps->x=x+3.5*Sin(é)+3.0*Cos(é);
-    temps->y=y-3.5*Cos(é)+3.0*Sin(é);
-    temps->t0=tS;
-    QueIns(temps,step_head.last);
+    tmps=MAlloc(sizeof(Step),task);
+    tmps->x=x+3.5*Sin(é)+0.0*Cos(é);
+    tmps->y=y-3.5*Cos(é)+0.0*Sin(é);
+    tmps->t0=tS;
+    QueIns(tmps,step_head.last);
+    tmps=MAlloc(sizeof(Step),task);
+    tmps->x=x+3.5*Sin(é)+3.0*Cos(é);
+    tmps->y=y-3.5*Cos(é)+3.0*Sin(é);
+    tmps->t0=tS;
+    QueIns(tmps,step_head.last);
   }
 }
 
@@ -262,7 +262,7 @@ U0 Init()
 {
   I64 i,min_x,max_x,min_y,max_y,
 	w=Fs->pix_width,h=Fs->pix_height;
-  Peasant *tempp;
+  Peasant *tmpp;
 
   snow_x=snow_y=0;
   new_snow_mS=0;
@@ -281,13 +281,13 @@ U0 Init()
   SpriteExtents($IB,"<12>",BI=12$,&min_x,&max_x,&min_y,&max_y);
   QueInit(&peasant_head);
   for (i=0;ix=RandU16%(w-2*BORDER-(max_x-min_x+1))+BORDER-min_x;
-    tempp->y=RandU16%(h-2*BORDER-(max_y-min_y+1))+BORDER-min_y;
-    tempp->é=ã*2*Rand;
-    tempp->door_opened_t0=0;
-    tempp->stopped=FALSE;
-    QueIns(tempp,peasant_head.last);
+    tmpp=MAlloc(sizeof(Peasant));
+    tmpp->x=RandU16%(w-2*BORDER-(max_x-min_x+1))+BORDER-min_x;
+    tmpp->y=RandU16%(h-2*BORDER-(max_y-min_y+1))+BORDER-min_y;
+    tmpp->é=ã*2*Rand;
+    tmpp->door_opened_t0=0;
+    tmpp->stopped=FALSE;
+    QueIns(tmpp,peasant_head.last);
   }
   animate_phase=0;
   animate_mS=0;
@@ -310,88 +310,88 @@ U0 CleanUp()
   QueDel(&king_step_head,TRUE);
 }
 
-U0 Follow(CTask *,Peasant *tempp)
+U0 Follow(CTask *,Peasant *tmpp)
 {
-  Step *temps=king_step_head.next;
+  Step *tmps=king_step_head.next;
   F64 d,best_d=MAX_F64;
-  while (temps!=&king_step_head) {
-    if ((d=Sqr(temps->x-tempp->x)+Sqr(temps->y-tempp->y)) &&
+  while (tmps!=&king_step_head) {
+    if ((d=Sqr(tmps->x-tmpp->x)+Sqr(tmps->y-tmpp->y)) &&
 	  d<15*15) {
-      d+=1000*Sqr(tS-temps->t0);
+      d+=1000*Sqr(tS-tmps->t0);
       if (dé=Arg(temps->x-tempp->x,temps->y-tempp->y);
+	tmpp->é=Arg(tmps->x-tmpp->x,tmps->y-tmpp->y);
       }
     }
-    temps=temps->next;
+    tmps=tmps->next;
   }
 }
 
 U0 AnimateTask(I64)
 {
-  Step *temps,*temps1;
-  Peasant *tempp;
+  Step *tmps,*tmps1;
+  Peasant *tmpp;
   I64 i,w,h;
   while (TRUE) {
     w=Fs->parent_task->pix_width;
     h=Fs->parent_task->pix_height;
 
-    temps=step_head.next;
-    while (temps!=&step_head) {
-      temps1=temps->next;
-      if (tS-temps->t0>5.0) {
-	QueRem(temps);
-	Free(temps);
+    tmps=step_head.next;
+    while (tmps!=&step_head) {
+      tmps1=tmps->next;
+      if (tS-tmps->t0>5.0) {
+	QueRem(tmps);
+	Free(tmps);
       }
-      temps=temps1;
+      tmps=tmps1;
     }
 
-    temps=king_step_head.next;
-    while (temps!=&king_step_head) {
-      temps1=temps->next;
-      if (tS-temps->t0>3.0) {
-	QueRem(temps);
-	Free(temps);
+    tmps=king_step_head.next;
+    while (tmps!=&king_step_head) {
+      tmps1=tmps->next;
+      if (tS-tmps->t0>3.0) {
+	QueRem(tmps);
+	Free(tmps);
       }
-      temps=temps1;
+      tmps=tmps1;
     }
 
     not_stopped_cnt=0;
-    tempp=peasant_head.next;
-    while (tempp!=&peasant_head) {
-      if (tempp->stopped) {
-	if (tempp->door_opened_t0 && tS>tempp->door_opened_t0+1.0) {
-	  tempp->door_opened_t0=0;
-	  tempp->y=tempp->x=-9999;
+    tmpp=peasant_head.next;
+    while (tmpp!=&peasant_head) {
+      if (tmpp->stopped) {
+	if (tmpp->door_opened_t0 && tS>tmpp->door_opened_t0+1.0) {
+	  tmpp->door_opened_t0=0;
+	  tmpp->y=tmpp->x=-9999;
 	}
       } else {
-	if (Sqr(tempp->x-w/2)+Sqr(tempp->y-h/2)<20*20) {
-	  tempp->stopped=TRUE;
-	  tempp->door_opened_t0=door_open_t0=tS;
+	if (Sqr(tmpp->x-w/2)+Sqr(tmpp->y-h/2)<20*20) {
+	  tmpp->stopped=TRUE;
+	  tmpp->door_opened_t0=door_open_t0=tS;
 	}
 	for (i=0;ix-trees[i].x)+Sqr(tempp->y-trees[i].y)<20*20) {
-	    tempp->stopped=TRUE;
+		Sqr(tmpp->x-trees[i].x)+Sqr(tmpp->y-trees[i].y)<20*20) {
+	    tmpp->stopped=TRUE;
 	    break;
 	  }
-	if (!tempp->stopped) {
-	  Follow(Fs->parent_task,tempp);
-	  tempp->x+=Cos(tempp->é)/100;
-	  tempp->y+=Sin(tempp->é)/100;
-	  if (!(BORDER/2<=tempp->xyé+=ã;
-	    tempp->x+=3*Cos(tempp->é)/100;
-	    tempp->y+=3*Sin(tempp->é)/100;
+	if (!tmpp->stopped) {
+	  Follow(Fs->parent_task,tmpp);
+	  tmpp->x+=Cos(tmpp->é)/100;
+	  tmpp->y+=Sin(tmpp->é)/100;
+	  if (!(BORDER/2<=tmpp->xyé+=ã;
+	    tmpp->x+=3*Cos(tmpp->é)/100;
+	    tmpp->y+=3*Sin(tmpp->é)/100;
 	  }
 	  if (!animate_mS && animate_phase&1)
-	    StepNew(Fs->parent_task,tempp->x,tempp->y,tempp->é,
+	    StepNew(Fs->parent_task,tmpp->x,tmpp->y,tmpp->é,
 		  animate_phase&2,FALSE);
 	  not_stopped_cnt++;
 	}
       }
-      tempp=tempp->next;
+      tmpp=tmpp->next;
     }
     if (!not_stopped_cnt && !tf) {
       tf=tS;
diff --git a/Demo/Games/Zing.HC b/Demo/Games/Zing.HC
index c519ffe..0ac1de2 100644
Binary files a/Demo/Games/Zing.HC and b/Demo/Games/Zing.HC differ
diff --git a/Demo/Games/ZoneOut.HC b/Demo/Games/ZoneOut.HC
index 5b159c1..a753a28 100644
Binary files a/Demo/Games/ZoneOut.HC and b/Demo/Games/ZoneOut.HC differ
diff --git a/Demo/Graphics/3DPoly.HC b/Demo/Graphics/3DPoly.HC
index 23e34af..a0148ac 100644
--- a/Demo/Graphics/3DPoly.HC
+++ b/Demo/Graphics/3DPoly.HC
@@ -101,7 +101,7 @@ U0 Main()
       poly[3].z=0;
       GrFillPoly3(dc,4,poly);
 
-      WinMgrSync;
+      Refresh;
       DCFill;
       é+=2.1*ã/180.0;
       è+=1.1*ã/180.0;
diff --git a/Demo/Graphics/BSpline.HC b/Demo/Graphics/BSpline.HC
index c43ef87..51f45ee 100644
--- a/Demo/Graphics/BSpline.HC
+++ b/Demo/Graphics/BSpline.HC
@@ -1,8 +1,10 @@
+#define MAX_PTS	16
+
 U0 BSplineDemo()
 {
   CDC *dc=DCAlias;
   I64 a1,a2,i=0,msg_code;
-  CD3I32 c[64];
+  CD3I32 c[MAX_PTS];
 
   SettingsPush;
   Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
@@ -18,7 +20,7 @@ U0 BSplineDemo()
       GrCircle(dc,a1,a2,10);
       i++;
     }
-  } while (msg_code!=MSG_IP_R_UP);
+  } while (icolor=RED;
   Gr2BSpline(dc,c,i,TRUE);
   dc->color=BLUE;
diff --git a/Demo/Graphics/Blot.HC b/Demo/Graphics/Blot.HC
index 56901b4..9bca124 100644
--- a/Demo/Graphics/Blot.HC
+++ b/Demo/Graphics/Blot.HC
@@ -23,14 +23,14 @@ GrRect(img2,256-20,256-20,40,40);
 
 I64 i;
 for (i=0;i<256;i+=4) {
-  WinMgrSync;
+  Refresh;
   DCFill;
   GrBlot(dc,i-256,i-256,img2);
   Sleep(10);
 }
-U8 *tempg=DC2Sprite(img1);
-Sprite(tempg);
-Free(tempg);
+U8 *tmpg=DC2Sprite(img1);
+Sprite(tmpg);
+Free(tmpg);
 "%h9c",'\n';
 
 DCDel(img1);
diff --git a/Demo/Graphics/Box.HC b/Demo/Graphics/Box.HC
index e6a5aa1..8ad6256 100644
--- a/Demo/Graphics/Box.HC
+++ b/Demo/Graphics/Box.HC
@@ -1,10 +1,14 @@
-CDC *dc;
+I64 glbl_r[4][4];
 
-U0 DrawIt(CTask *,CDC *)
-{//This technique is weird, but clever.  In Box() we
-//created an alias of the system $LK,"gr.dc2",A="MN:CGrGlbls"$.
+U0 DrawIt(CTask *,CDC *dc)
+{
+  I64 *old_r=dc->r;
   dc->pen_width=2;
   dc->color=RED;
+  dc->x=200;
+  dc->y=200;
+  dc->flags|=DCF_TRANSFORMATION;
+  DCMat4x4Set(dc,glbl_r); //This assigns to dc->r and sets r_norm.
   GrLine3(dc,-100,-100,-100, -100, 100,-100);
   GrLine3(dc,-100, 100,-100,  100, 100,-100);
   GrLine3(dc, 100, 100,-100,  100,-100,-100);
@@ -17,27 +21,21 @@ U0 DrawIt(CTask *,CDC *)
   GrLine3(dc,-100, 100, 100, -100, 100,-100);
   GrLine3(dc, 100, 100, 100,  100, 100,-100);
   GrLine3(dc, 100,-100, 100,  100,-100,-100);
+  dc->r=old_r;
 }
 
 U0 Box()
 {
   F64 é=0,è=0,ê=0,s=1,s1=1.05;
-  dc=DCAlias(gr.dc2,Fs);
-
   SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
   DocClear;
   Fs->draw_it=&DrawIt;
-
-  dc->x=200;
-  dc->y=200;
-  dc->flags|=DCF_TRANSFORMATION;
   while (!ScanChar) {
-    Mat4x4IdentEqu(dc->r);
-    Mat4x4RotZ(dc->r,é);
-    Mat4x4RotX(dc->r,è);
-    Mat4x4RotZ(dc->r,ê);
-    Mat4x4Scale(dc->r,s);
-    DCMat4x4Set(dc,dc->r);
+    Mat4x4IdentEqu(glbl_r);
+    Mat4x4RotZ(glbl_r,é);
+    Mat4x4RotX(glbl_r,è);
+    Mat4x4RotZ(glbl_r,ê);
+    Mat4x4Scale(glbl_r,s);
 
     Sleep(20);
     é+=2*ã/70;
@@ -47,7 +45,6 @@ U0 Box()
     if ( !(0.2left) {
-      ShowTree(dc,tempn->left,&node_x,_tree_x,y+Y_SPACING);
+  if (tmpn) {
+    if (tmpn->left) {
+      ShowTree(dc,tmpn->left,&node_x,_tree_x,y+Y_SPACING);
       dc->color=BLUE;
       GrArrow3(dc,*_tree_x,y,0,
 	    node_x+ARROW_SPACING,y+Y_SPACING-ARROW_SPACING,0);
     }
-    if (tempn->n==n1 || tempn->n==n2) {
-      if (tempn->n==common_ancestor)
+    if (tmpn->n==n1 || tmpn->n==n2) {
+      if (tmpn->n==common_ancestor)
 	dc->color=YELLOW;
       else
 	dc->color=RED;
-    } else if (tempn->n==common_ancestor)
+    } else if (tmpn->n==common_ancestor)
       dc->color=GREEN;
     else
       dc->color=BLUE;
 
     *_node_x=*_tree_x;
-    GrPrint(dc,*_node_x,y,"%d",tempn->n);
+    GrPrint(dc,*_node_x,y,"%d",tmpn->n);
     *_tree_x+=X_SPACING;
 
-    if (tempn->right) {
-      ShowTree(dc,tempn->right,&node_x,_tree_x,y+Y_SPACING);
+    if (tmpn->right) {
+      ShowTree(dc,tmpn->right,&node_x,_tree_x,y+Y_SPACING);
       dc->color=BLUE;
       GrArrow3(dc,*_node_x,y,0,
 	    node_x-ARROW_SPACING,y+Y_SPACING-ARROW_SPACING,0);
@@ -52,33 +52,33 @@ U0 DrawIt(CTask *,CDC *dc)
   ShowTree(dc,root,&node_x,&tree_x,20);
 }
 
-U0 TreeAdd(Node **_root,Node *tempn)
+U0 TreeAdd(Node **_root,Node *tmpn)
 {
   Node *root=*_root;
   if (!root)
-    *_root=tempn;
-  else if (tempn->n==root->n)
-    Free(tempn);
-  else if (tempn->nn)
-    TreeAdd(&root->left,tempn);
+    *_root=tmpn;
+  else if (tmpn->n==root->n)
+    Free(tmpn);
+  else if (tmpn->nn)
+    TreeAdd(&root->left,tmpn);
   else
-    TreeAdd(&root->right,tempn);
+    TreeAdd(&root->right,tmpn);
 }
 
 U0 TreeNew()
 {
   I64 i;
-  Node *tempn;
+  Node *tmpn;
   for (i=0;in=RandU16%N;
+    tmpn=CAlloc(sizeof(Node));
+    tmpn->n=RandU16%N;
 
     if (i==N-1)
-      n1=tempn->n;
+      n1=tmpn->n;
     else if (i==N-2)
-      n2=tempn->n;
+      n2=tmpn->n;
 
-    TreeAdd(&root,tempn);
+    TreeAdd(&root,tmpn);
     Sleep(50);
   }
 }
diff --git a/Demo/Graphics/Doodle.HC b/Demo/Graphics/Doodle.HC
index 6ef9a1c..b01a7cf 100644
--- a/Demo/Graphics/Doodle.HC
+++ b/Demo/Graphics/Doodle.HC
@@ -14,9 +14,7 @@ U0 Doodle()
   DocClear;
   DCFill;
   do {
-    msg_code=GetMsg(&a1,&a2,
-	  1<cur_menu,buf)) {
+    if (tmpse=MenuEntryFind(Fs->cur_menu,buf)) {
       if (i==tt.z)
-	tempse->checked=TRUE;
+	tmpse->checked=TRUE;
       else
-	tempse->checked=FALSE;
+	tmpse->checked=FALSE;
     }
   }
-  if (tempse=MenuEntryFind(Fs->cur_menu,"Settings/Ends")) {
+  if (tmpse=MenuEntryFind(Fs->cur_menu,"Settings/Ends")) {
     if (tt.ends)
-      tempse->checked=TRUE;
+      tmpse->checked=TRUE;
     else
-      tempse->checked=FALSE;
+      tmpse->checked=FALSE;
   }
 }
 
diff --git a/Demo/Graphics/Pick.HC b/Demo/Graphics/Pick.HC
index 21736d9..a9588df 100644
Binary files a/Demo/Graphics/Pick.HC and b/Demo/Graphics/Pick.HC differ
diff --git a/Demo/Graphics/Pick3D.HC b/Demo/Graphics/Pick3D.HC
index 253f899..ad5d6f0 100644
Binary files a/Demo/Graphics/Pick3D.HC and b/Demo/Graphics/Pick3D.HC differ
diff --git a/Demo/Graphics/PoleZeros.HC b/Demo/Graphics/PoleZeros.HC
index f82a889..a7dca59 100644
--- a/Demo/Graphics/PoleZeros.HC
+++ b/Demo/Graphics/PoleZeros.HC
@@ -65,16 +65,16 @@ F64 MPDraw(CTask *task)
 
 U0 Draw()
 {
-  CSrvCmd *tempm[MP_MAX_PROCESSORS];
+  CSrvCmd *tmpm[MP_MAX_PROCESSORS];
   F64 y_total,old_y_total=MAX_F64;
   I64 i,w=Fs->pix_width,h=Fs->pix_height,cx=w/2,cy=h/2;
   CDC *dc=DCAlias;
   while (TRUE) {
     for (i=0;iwin_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
@@ -125,10 +125,10 @@ pz_msg:
       cy=Fs->pix_height/2;
       switch (msg_code) {
 	case MSG_IP_L_DOWN:
-	  tempc=PoleZeroFind(a1-cx,cy-a2);
+	  tmpc=PoleZeroFind(a1-cx,cy-a2);
 	  break;
 	case MSG_IP_MOVE:
-	  if (tempc) {
+	  if (tmpc) {
 	    p11=a1;p22=a2;
 //get to last mouse move
 	    while (msg_code=ScanMsg(&a1,&a2,1<x=p11-cx;
-	    tempc->y=cy-p22;
+	    tmpc->x=p11-cx;
+	    tmpc->y=cy-p22;
 	    Draw;
 	  }
 	  break;
 	case MSG_IP_L_UP:
-	  if (tempc) {
-	    tempc->x=a1-cx;
-	    tempc->y=cy-a2;
-	    tempc=NULL;
+	  if (tmpc) {
+	    tmpc->x=a1-cx;
+	    tmpc->y=cy-a2;
+	    tmpc=NULL;
 	    Draw;
 	  }
 	  break;
@@ -160,7 +160,7 @@ pz_msg:
 	  if (a1==CH_SHIFT_ESC||a1==CH_ESC)
 	    goto pz_done;
       }
-      WinMgrSync;
+      Refresh;
     }
 pz_done:
     GetMsg(,,1<color=BLACK;
     GrLine(dc,OX,0,OX,GR_HEIGHT-FONT_HEIGHT-1);
diff --git a/Demo/Graphics/RotateTank.HC b/Demo/Graphics/RotateTank.HC
index 47cb9b4..e264c6a 100644
Binary files a/Demo/Graphics/RotateTank.HC and b/Demo/Graphics/RotateTank.HC differ
diff --git a/Demo/Graphics/ScreenCapture.HC b/Demo/Graphics/ScrnCapture.HC
similarity index 50%
rename from Demo/Graphics/ScreenCapture.HC
rename to Demo/Graphics/ScrnCapture.HC
index 6f578e7..0415cff 100644
--- a/Demo/Graphics/ScreenCapture.HC
+++ b/Demo/Graphics/ScrnCapture.HC
@@ -1,9 +1,9 @@
 //See $LK,"::/Demo/Games/Stadium/StadiumGen.HC"$.
 
-U0 ViewScreenCapture(U8 *filename)
+U0 ViewScrnCapture(U8 *filename)
 {
   CDC	*dc=DCAlias(,Fs),
-	*dc2=GRARead(filename);
+	*dc2=GRRead(filename);
   GrBlot(dc,0,0,dc2);
   DCDel(dc2);
   DCDel(dc);
@@ -11,13 +11,13 @@ U0 ViewScreenCapture(U8 *filename)
 
 U0 Main()
 {
-  "Capture screen...\n";
+  "Capture scrn...\n";
   PressAKey;
-  GRAScreenCapture("~/DemoScreenShot");
+  GRScrnCapture("~/DemoScrnShot");
 
-  "View captured screen...\n";
+  "View captured scrn...\n";
   PressAKey;
-  ViewScreenCapture("~/DemoScreenShot");
+  ViewScrnCapture("~/DemoScrnShot");
 
   PressAKey;
   DCFill;
diff --git a/Demo/Graphics/Shadow.HC b/Demo/Graphics/Shadow.HC
index b7ddae0..aff8f95 100644
Binary files a/Demo/Graphics/Shadow.HC and b/Demo/Graphics/Shadow.HC differ
diff --git a/Demo/Graphics/Speedline.HC b/Demo/Graphics/Speedline.HC
index dd456ac..cf4d269 100644
--- a/Demo/Graphics/Speedline.HC
+++ b/Demo/Graphics/Speedline.HC
@@ -15,9 +15,7 @@ public U0 SpeedLineDemo()
   DocClear;
   DCFill;
   do {
-    msg_code=GetMsg(&a1,&a2,
-	  1<",BI=1,BP="::/Demo/Graphics/SpritePut.HC,2"$$
 That imports an external sprite.  It's
 called a $LK,"DOCEF_BIN_PTR_LINK",A="MN:DOCEF_BIN_PTR_LINK"$.  See $LK,"BP=\"\"",A="FF:::/Doc/DolDocOverview.DD,BP=\"\""$.
 
-Press  and "pointer to sprite".
+Press  and "Ptr to Sprite".
 Then, enter a file and the number of
 the sprite in the file.  Note: the
 number can get messed-up if you change
@@ -19,7 +19,7 @@ U0 SpritePutExt()
   for (i=0;i<3;i++) {
     "US Map:";
     Sprite($IB,"<1>",BI=1,BP="::/Demo/Graphics/SpritePut.HC,2"$);
-    "%h12c",'\n';
+    "%h12c",'\n'; //"h" is a secondary arg.  $LK,"Print",A="FI:::/Doc/Print.DD"$ 12 newline chars.
   }
 }
 
diff --git a/Demo/Graphics/SpriteText.HC b/Demo/Graphics/SpriteText.HC
index d7d4349..cff60e4 100644
Binary files a/Demo/Graphics/SpriteText.HC and b/Demo/Graphics/SpriteText.HC differ
diff --git a/Demo/Graphics/SunMoon.HC b/Demo/Graphics/SunMoon.HC
index ac5fb9c..2fbbb6e 100644
--- a/Demo/Graphics/SunMoon.HC
+++ b/Demo/Graphics/SunMoon.HC
@@ -33,7 +33,7 @@ U0 SunMoon()
     gr.dc->dither_probability_u16=2*i;	//U16 can be [0,65535]
     GrFloodFill(gr.dc,x-0.75*radius,y);
 
-    WinMgrSync; //Typically 30 fps
+    Refresh; //Typically 30 fps
     DCFill;
   }
 
diff --git a/Demo/Graphics/WallPaperFish.HC b/Demo/Graphics/WallPaperFish.HC
index 88b61e4..22ee2ae 100644
Binary files a/Demo/Graphics/WallPaperFish.HC and b/Demo/Graphics/WallPaperFish.HC differ
diff --git a/Demo/AutoFile/AFDir.AUT b/Demo/InFile/INDir.IN
similarity index 56%
rename from Demo/AutoFile/AFDir.AUT
rename to Demo/InFile/INDir.IN
index ef455ab..f888fdf 100644
--- a/Demo/AutoFile/AFDir.AUT
+++ b/Demo/InFile/INDir.IN
@@ -1,7 +1,7 @@
 /* To run this, do a directory, right click on
-this file's name and sel "AutoFile".
-Or, type $LK,"AutoFile",A="MN:AutoFile"$(filename);
-See $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$ in the glossary for more info.
+this file's name and sel "InFile".
+Or, type $LK,"InFile",A="MN:InFile"$(filename);
+See $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ in the glossary for more info.
 */
 
 I64 i;
diff --git a/Demo/AutoFile/AFEd.DD b/Demo/InFile/INEd.DD
similarity index 99%
rename from Demo/AutoFile/AFEd.DD
rename to Demo/InFile/INEd.DD
index ce1444c..8ef4b60 100644
--- a/Demo/AutoFile/AFEd.DD
+++ b/Demo/InFile/INEd.DD
@@ -99,7 +99,7 @@
 
 #define IC_JMP			0x52
 #define IC_SWITCH		0x53
-#define IC_NOBOUND_SWITCH		0x54
+#define IC_NOBOUND_SWITCH	0x54
 
 #define IC_ADD_RSP		0x55
 #define IC_ADD_RSP1		0xC1
diff --git a/Demo/AutoFile/AFEd.AUT b/Demo/InFile/INEd.IN
similarity index 61%
rename from Demo/AutoFile/AFEd.AUT
rename to Demo/InFile/INEd.IN
index 2e0b63a..09e5268 100644
--- a/Demo/AutoFile/AFEd.AUT
+++ b/Demo/InFile/INEd.IN
@@ -1,17 +1,17 @@
 /* To run this, do a directory, right click on
-this file's name and sel "AutoFile".
-Or, type $LK,"AutoFile",A="MN:AutoFile"$(filename);
-See $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$ in the glossary for more info.
+this file's name and sel "InFile".
+Or, type $LK,"InFile",A="MN:InFile"$(filename);
+See $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ in the glossary for more info.
 
-This autofile will renum the defines in
-AFEd.DD.Z.  Test it by numbering a few wrong
+This InFile will renum the defines in
+INEd.DD.Z.  Test it by numbering a few wrong
 and running this demo.
 
 */
 
 U8 i;
 
-"Ed(\"AFEd.DD.Z\");\n";
+"Ed(\"INEd.DD.Z\");\n";
 //Go to start of file
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 for (i=0;i<=0xC3;i++) {
diff --git a/Demo/InFile/INPopUp.HC b/Demo/InFile/INPopUp.HC
new file mode 100644
index 0000000..ff53069
--- /dev/null
+++ b/Demo/InFile/INPopUp.HC
@@ -0,0 +1,12 @@
+/* This is not an InFile.  It uses $LK,"InStr",A="MN:InStr"$
+to run text as though from an InFile.
+
+This example shows how you can drive pop-up
+windows.
+*/
+
+In(" ");
+"PopUp #1:%X\n",PopUpNoYes;
+
+InStr("Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);'' CH_SPACE;");
+"PopUp #2:%X\n",PopUpNoYes;
diff --git a/Demo/AutoFile/AFPopUpWait.AUT b/Demo/InFile/INPopUpWait.IN
similarity index 100%
rename from Demo/AutoFile/AFPopUpWait.AUT
rename to Demo/InFile/INPopUpWait.IN
diff --git a/Demo/InFile/INProfile.IN b/Demo/InFile/INProfile.IN
new file mode 100644
index 0000000..99037a8
--- /dev/null
+++ b/Demo/InFile/INProfile.IN
@@ -0,0 +1,11 @@
+/* To run this, do a directory, right click on
+this file's name and sel "InFile".
+Or, type $LK,"InFile",A="MN:InFile"$(filename);
+See $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ in the glossary for more info.
+
+Profiling does not $UL,1$require$UL,0$ InFiles.
+*/
+"$$RED$$Prof;$$FG$$\n";
+"$$RED$$//Collecting Data$$FG$$";
+PressAKey;
+"\n$$RED$$ProfRep;$$FG$$\n";
\ No newline at end of file
diff --git a/Demo/AutoFile/AFSetIP.HC b/Demo/InFile/INSetIP.HC
similarity index 66%
rename from Demo/AutoFile/AFSetIP.HC
rename to Demo/InFile/INSetIP.HC
index 9649b2d..edf3b0e 100644
--- a/Demo/AutoFile/AFSetIP.HC
+++ b/Demo/InFile/INSetIP.HC
@@ -1,13 +1,13 @@
-U0 AFSetIPDemo()
+U0 INSetIPDemo()
 {
   I64 t,l;
   WinBorder(ON);
   l=Fs->pix_left+Fs->scroll_x;
   t=Fs->pix_top+Fs->scroll_y;
   IPSet(,,,FALSE,FALSE); //Mouse unclicked
-  AFSetIP(,l-4,t-4);
-  AFSetIP(20,l+20,t+20,,TRUE);
+  InSetIP(,l-4,t-4);
+  InSetIP(20,l+20,t+20,,TRUE);
   IPSet(,,,FALSE,FALSE);
 }
 
-AFSetIPDemo;
+INSetIPDemo;
diff --git a/Demo/Lectures/64BitAsmQuiz.DD b/Demo/Lectures/64BitAsmQuiz.DD
index 9814414..abb6a13 100644
--- a/Demo/Lectures/64BitAsmQuiz.DD
+++ b/Demo/Lectures/64BitAsmQuiz.DD
@@ -74,7 +74,7 @@ ANSWERS:
 
 7) You can access the lowest byte of any reg.  You can access AH but not the second-to-lowest byte of ESI.
 
-8) To call a subroutine farther than 2 Gig away, you put the address into RAX, then CALL RAX.
+8) To call a subroutine farther than 2Gig away, you put the address into RAX, then CALL RAX.
 
 9) CALL REL32 is significantly faster.  See $LK,"::/Demo/Lectures/InterruptDemo.HC"$.
 
diff --git a/Demo/Lectures/AndNotMod.HC b/Demo/Lectures/AndNotMod.HC
index 0be3b6a..59e2028 100644
--- a/Demo/Lectures/AndNotMod.HC
+++ b/Demo/Lectures/AndNotMod.HC
@@ -5,7 +5,7 @@
 U0 TimeIns()
 {
   I64 start1,end1,start2,end2,overhead_time,test_time;
-  I64 reg i,reg temp;
+  I64 reg i,reg tmp;
 
   CPURep;
 
@@ -19,7 +19,7 @@ U0 TimeIns()
   //Measure remainder...
   start2=GetTSC;
   for (i=0;i>32       =%X\n",i>>32;
+  "i&0xFFFFFFFF\t=%X\n",i&0xFFFFFFFF;
+  "i>>32\t\t=%X\n",i>>32;
 
   /*  Standard int types are declared
 with a special compiler feature which
@@ -74,8 +72,8 @@ For a complete lst of nonstandard compiler
 features, see $LK,"::/Doc/HolyC.DD"$.
 */
 
-  "i.u32[0]    =%X\n",i.u32[0];
-  "i.u32[1]    =%X\n",i.u32[1];
+  "i.u32[0]\t=%X\n",i.u32[0];
+  "i.u32[1]\t=%X\n",i.u32[1];
 }
 
 CPURep;
@@ -86,13 +84,13 @@ DoIt2;
 
 /*Program Output$HL,0$$WW+H,1$$FD,1$
 
-8 Cores 2.660GHz
-Int Sum:2000000199.768689408 Time:	0.787s
-Float	Sum:2000000225.656126208 Time:	3.918s
+$FG$$BG$16 Cores 3.500GHz
+Int Sum		:2000000199.768690240 Time:  0.803s
+Float Sum	:2000000225.656127040 Time:  3.615s
 
-i	    =123456789ABCDEF0
-i&0xFFFFFFFF=9ABCDEF0
-i>>32	    =12345678
-i.u32[0]    =9ABCDEF0
-i.u32[1]    =12345678
+i		=123456789ABCDEF0
+i&0xFFFFFFFF	=9ABCDEF0
+i>>32		=12345678
+i.u32[0]	=9ABCDEF0
+i.u32[1]	=12345678
 $HL,1$*/
diff --git a/Demo/Lectures/FixedPointAdvanced.HC b/Demo/Lectures/FixedPointAdvanced.HC
index d3dd3b6..a4ef676 100644
--- a/Demo/Lectures/FixedPointAdvanced.HC
+++ b/Demo/Lectures/FixedPointAdvanced.HC
@@ -3,18 +3,18 @@ that are scaled by a value.  A common
 example would be using number of pennies
 instead of dollars with a float.
 
-Fixed-point used to be much faster,
+Fixed-point used to be much $TX,"faster",HTML="http://en.wikipedia.org/wiki/X87"$,
 but modern processors do well with
 floats.  It also depends on the compiler
-and my compiler used to do floats poorly.
+and my compiler is poor with floats.
 
 I often use 64-bit ints with upper 32-bits
 as int and lower 32-bits as fraction.
 
 See $LK,"::/Demo/SubIntAccess.HC"$ for how
 to access upper or lower 32-bits.
-
 */
+
 #define SAMPLE_SIZE	10000000
 
 I32 coordinates[65536];
@@ -77,7 +77,7 @@ U0 Main()
 {
   I64 start,end,overhead_time,test_time;
   F64 d1,fsum;
-  I64 reg i,temp,reg d2,reg sum;
+  I64 reg i,tmp,reg d2,reg sum;
 
   CPURep;
 
@@ -113,8 +113,8 @@ U0 Main()
   sum=0;
   start=GetTSC;
   for (i=SAMPLE_SIZE-1;i>=0;i--) {
-    temp=d2*coordinates[i&65535];
-    sum+=temp.i32[1];
+    tmp=d2*coordinates[i&65535];
+    sum+=tmp.i32[1];
   }
   end=GetTSC;
   test_time=end-start;
diff --git a/Demo/Lectures/GraphicsCPULoad.HC b/Demo/Lectures/GraphicsCPULoad.HC
index b8ae22b..80f22b3 100644
--- a/Demo/Lectures/GraphicsCPULoad.HC
+++ b/Demo/Lectures/GraphicsCPULoad.HC
@@ -1,4 +1,4 @@
-//This is the fastest you can update the whole screen.
+//This is the fastest you can update the whole scrn.
 //See $LK,"::/Demo/Lectures/MiniGrLib.HC"$ if this interests you.
 
 F64 VGAPattern(I64 p)
@@ -27,7 +27,7 @@ U0 GrDemo()
     "$$GREEN$$Rate:$$RED$$%5.1f FPS$$FG$$"
 	  "  $$GREEN$$Load@30Hz:$$RED$$%5.1f%%$$FG$$\n",1/t,100*t*30.0;
   }
-// will flush screen VGA cache.
+// will flush scrn VGA cache.
   VGAFlush;
 }
 
diff --git a/Demo/Lectures/Mem/Mem2Meg.HC b/Demo/Lectures/Mem/Mem2Meg.HC
deleted file mode 100644
index 3b9f52b..0000000
--- a/Demo/Lectures/Mem/Mem2Meg.HC
+++ /dev/null
@@ -1,202 +0,0 @@
-//This file is required by $LK,"::/Demo/Lectures/Mem/Uncached.HC"$.
-
-U8 *Mem2MegAlloc(I64 *_pages2Meg,CBlkPool *bp=NULL)
-{/*Alloc 2Meg pages from BlkPool. Don't link to task.
-(Linking to a task means they will be freed when the task dies.)
-It might give you more than you asked for
-so a ptr to a page count is passed.
-
-Return: NULL if out of memory.
-*/
-  I64 i,j,*pte,num=*_pages2Meg;
-  CMemBlk *res=NULL,*m,*m1;
-
-  if (!bp) bp=sys_code_bp;
-  PUSHFD
-  CLI
-  while (LBts(&bp->locked_flags,BPlf_LOCKED))
-    PAUSE
-  num<<=21-MEM_PAGE_BITS;
-
-  m=&bp->mem_free_2meg_lst;
-  while (TRUE) {
-    if (!(res=m->next))
-      break;
-    if (res->pagespages==num) {
-	m->next=res->next;
-	goto am_done;
-      } else {
-	res->pages-=num;
-	res(U8 *)+=res->pages<pages=num;
-	goto am_done;
-      }
-    }
-  }
-
-  m=&bp->mem_free_lst;
-  while (TRUE) {
-    if (!(res=m->next)) {
-      num=0;
-      res=NULL; //Out of memory
-      goto am_done;
-    }
-    if (res->pagespages==num) {
-	if (res(U8 *)&0x1FFFFF)
-	  m=res;
-	else {
-	  m->next=res->next;
-	  goto am_done;
-	}
-      } else {
-	if (i=(res(U8 *)&0x1FFFFF)>>MEM_PAGE_BITS) {
-	  j=1<<(21-MEM_PAGE_BITS)-i;
-	  if (res->pagespages==num+j) {
-	    res->pages-=num;
-	    res(U8 *)+=res->pages<pages=num;
-	    goto am_done;
-	  } else {
-	    m1=res;
-	    res(U8 *)+=j<pages=num;
-	    m=res(U8 *)+num<pages=m1->pages-num-j;
-	    m1->pages=j;
-	    m->next=m1->next;
-	    m1->next=m;
-	    m->mb_signature=MBS_UNUSED_SIGNATURE_VAL;
-	    goto am_done;
-	  }
-	} else {
-	  m=m->next=res(U8 *)+num<next=res->next;
-	  m->pages=res->pages-num;
-	  m->mb_signature=MBS_UNUSED_SIGNATURE_VAL;
-	  res->pages=num;
-	  goto am_done;
-	}
-      }
-    }
-  }
-am_done:
-  i=num<used_u8s+=i;
-  num>>=21-MEM_PAGE_BITS;
-  *_pages2Meg=num;
-  m=res;
-  m1=m(U8 *)+i;
-  while (mlocked_flags,BPlf_LOCKED);
-  POPFD
-  return res;
-}
-
-U8 *Mem2MegUncachedAlloc(I64 *_pages2Meg,CBlkPool *bp=NULL)
-{/*Alloc 2Meg pages from BlkPool. Don't link to task.
-(Linking to a task means they will be freed when the task dies.)
-It will be marked uncached. It might give you more than you asked for
-so a ptr to a page count is passed.
-
-Return: NULL if out of memory.
-*/
-  CMemBlk *res,*m,*m1;
-  I64 num=*_pages2Meg,*pte;
-  if (res=Mem2MegAlloc(_pages2Meg,bp)) {
-    num=*_pages2Meg;
-    m=res;
-    m1=m(U8 *)+num<<21;
-    while (mlocked_flags,BPlf_LOCKED))
-      PAUSE
-    m->mb_signature=MBS_UNUSED_SIGNATURE_VAL;
-    m->pages=pages2Meg<<(21-MEM_PAGE_BITS);
-    bp->used_u8s-=pages2Meg<<21;
-    m->next=bp->mem_free_2meg_lst;
-    bp->mem_free_2meg_lst=m;
-    LBtr(&bp->locked_flags,BPlf_LOCKED);
-    POPFD
-  }
-}
-
-CHeapCtrl *HeapCtrlBPInit(CBlkPool *bp,I64 pages512)
-{//Make mem chunk into HeapCtrl and BlkPool.
-  I64 num;
-  CMemBlk *m;
-  CHeapCtrl *hc;
-  MemSet(bp,0,sizeof(CBlkPool)+sizeof(CHeapCtrl));
-  hc=HeapCtrlInit(bp(U8 *)+sizeof(CBlkPool),,bp);
-  m=(bp(U8 *)+sizeof(CBlkPool)+sizeof(CHeapCtrl)+MEM_PAGE_SIZE-1)&
-	~(MEM_PAGE_SIZE-1);
-  num=(bp(U8 *)+pages512<>MEM_PAGE_BITS;
-  bp->alloced_u8s=(pages512-num)< will flush screen VGA cache.
+  // will flush scrn VGA cache.
   VGAFlush;
 }
  
 MiniGrLibDemo;
 
 //See $LK,"RawPutChar",A="MN:RawPutChar"$() for text.
-//See $LK,"::/Demo/Lectures/ScreenMemory.HC"$ for color.
+//See $LK,"::/Demo/Lectures/ScrnMemory.HC"$ for color.
 //See $LK,"::/Demo/Lectures/GraphicsCPULoad.HC"$.
diff --git a/Demo/Lectures/ScreenMemory.HC b/Demo/Lectures/ScrnMemory.HC
similarity index 82%
rename from Demo/Lectures/ScreenMemory.HC
rename to Demo/Lectures/ScrnMemory.HC
index 64eea69..aa25476 100644
--- a/Demo/Lectures/ScreenMemory.HC
+++ b/Demo/Lectures/ScrnMemory.HC
@@ -1,9 +1,9 @@
-//This just shows how screen memory works.
+//This just shows how scrn memory works.
 //See $LK,"::/Demo/Lectures/MiniGrLib.HC"$
 
 U0 PlotXY(I64 x,I64 y)
 {
-//Screen bits are revd
+//Scrn bits are revd
   LBts(text.vga_alias,y*GR_WIDTH+x^7);
 }
 
@@ -37,9 +37,9 @@ That means no read-modify-writes, too.
 */
   BusyWait(4000000);
 
-  //TempleOS has a 4 plane memory duplicate of the screen, $LK,"gr.screen_image",A="MN:CGrGlbls"$,
+  //TempleOS has a 4 plane memory duplicate of the scrn, $LK,"gr.scrn_image",A="MN:CGrGlbls"$,
   //and only writes actual changes.  See $LK,"GrUpdateVGAGraphics",A="MN:GrUpdateVGAGraphics"$().
-  // will flush screen VGA cache.
+  // will flush scrn VGA cache.
   VGAFlush;
 }
 
diff --git a/Demo/MultiCore/Clouds.HC b/Demo/MultiCore/Clouds.HC
index c50e38c..8dab6cb 100644
--- a/Demo/MultiCore/Clouds.HC
+++ b/Demo/MultiCore/Clouds.HC
@@ -88,7 +88,7 @@ U0 AnimateTask(I64)
   Cloud *c;
   CloudPen *cp;
   while (TRUE) {
-    WinMgrSync;
+    Refresh;
 
     for (i=0,cp=cloud_pens;iimg);
@@ -193,7 +193,7 @@ U0 CloudScene()
 
     Fs->draw_it=&DrawIt;
     GetChar;
-    WinMgrSync;
+    Refresh;
   } catch
     PutExcept;
   SettingsPop;
diff --git a/Demo/MultiCore/Lock.HC b/Demo/MultiCore/Lock.HC
index 6a808a6..a5e9c9d 100644
--- a/Demo/MultiCore/Lock.HC
+++ b/Demo/MultiCore/Lock.HC
@@ -20,12 +20,12 @@ U0 MPUnlockedInc(I64)
 
 U0 UnlockedInc()
 {
-  CSrvCmd *tempm0,*tempm1;
+  CSrvCmd *tmpm0,*tmpm1;
   glbl=0;
-  tempm0=JobQue(&MPUnlockedInc,NULL,0,0);
-  tempm1=JobQue(&MPUnlockedInc,NULL,1,0);
-  JobResGet(tempm0);
-  JobResGet(tempm1);
+  tmpm0=JobQue(&MPUnlockedInc,NULL,0,0);
+  tmpm1=JobQue(&MPUnlockedInc,NULL,1,0);
+  JobResGet(tmpm0);
+  JobResGet(tmpm1);
   "Correct Cnt:%X Actual Cnt:%X\n",CNT*2,glbl;
 }
 
@@ -39,12 +39,12 @@ U0 MPLockedInc(I64)
 
 U0 LockedInc()
 {
-  CSrvCmd *tempm0,*tempm1;
+  CSrvCmd *tmpm0,*tmpm1;
   glbl=0;
-  tempm0=JobQue(&MPLockedInc,NULL,0,0);
-  tempm1=JobQue(&MPLockedInc,NULL,1,0);
-  JobResGet(tempm0);
-  JobResGet(tempm1);
+  tmpm0=JobQue(&MPLockedInc,NULL,0,0);
+  tmpm1=JobQue(&MPLockedInc,NULL,1,0);
+  JobResGet(tmpm0);
+  JobResGet(tmpm1);
   "Correct Cnt:%X Actual Cnt:%X\n",CNT*2,glbl;
 }
 
diff --git a/Demo/MultiCore/MPAdd.HC b/Demo/MultiCore/MPAdd.HC
index 93c76bf..9db9535 100644
--- a/Demo/MultiCore/MPAdd.HC
+++ b/Demo/MultiCore/MPAdd.HC
@@ -12,13 +12,13 @@ I64 MPSum(I64 my_mp_cnt)
 
 I64 Sum(I64 n,I64 my_mp_cnt)
 {
-  CSrvCmd *tempm[MP_MAX_PROCESSORS];
+  CSrvCmd *tmpm[MP_MAX_PROCESSORS];
   I64 res=0,i;
   mp_n=n+1;
   for (i=0;icur_menu,"Misc/Opt1"))
-	      tempse->checked=!tempse->checked;
+	    if (tmpse=MenuEntryFind(Fs->cur_menu,"Misc/Opt1"))
+	      tmpse->checked=!tmpse->checked;
 	    break;
 	  case M_OPTION2:
 	    "Option # 2\n";
-	    if (tempse=MenuEntryFind(Fs->cur_menu,"Misc/Opt2"))
-	      tempse->checked=!tempse->checked;
+	    if (tmpse=MenuEntryFind(Fs->cur_menu,"Misc/Opt2"))
+	      tmpse->checked=!tmpse->checked;
 	    break;
 	}
 	break;
diff --git a/Demo/RandDemo.HC b/Demo/RandDemo.HC
index 959f154..9d781ad 100644
--- a/Demo/RandDemo.HC
+++ b/Demo/RandDemo.HC
@@ -1,9 +1,13 @@
 U0 RandPts()
 {
+  I64 i;
   F64 t0=tS;
   do {
-    gr.dc->color=RandI16&15;
-    GrPlot(gr.dc,RandI32%GR_WIDTH,RandI32%GR_HEIGHT);
+    for (i=0;i<1024;i++) {
+      gr.dc->color=RandU16&15;
+      GrPlot(gr.dc,RandU32%GR_WIDTH,RandU32%GR_HEIGHT);
+    }
+    Yield;
   } while (tS-t0<1);
   DCFill;
 }
diff --git a/Demo/ScreenCodes.HC b/Demo/ScrnCodes.HC
similarity index 94%
rename from Demo/ScreenCodes.HC
rename to Demo/ScrnCodes.HC
index 04779b5..97bc5be 100644
--- a/Demo/ScreenCodes.HC
+++ b/Demo/ScrnCodes.HC
@@ -15,7 +15,7 @@ U0 DrawIt(CTask *task,CDC *)
     TextChar(task,,(i&15)*2,(i/16)*2,i+BLACK<<12+WHITE<<8);
 }
 
-U0 ScreenCodes()
+U0 ScrnCodes()
 {
   SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
   DocClear;
@@ -24,4 +24,4 @@ U0 ScreenCodes()
   SettingsPop;
 }
 
-ScreenCodes;
+ScrnCodes;
diff --git a/Demo/SortFileDemo/F64FileGen.HC b/Demo/SortFileDemo/F64FileGen.HC
index f73eb2b..148b5a6 100644
--- a/Demo/SortFileDemo/F64FileGen.HC
+++ b/Demo/SortFileDemo/F64FileGen.HC
@@ -23,4 +23,4 @@ U0 F64FileGenDAT(U8 *filename,I64 n)
   FileWrite(filename,a,n*sizeof(F64));
   Free(a);
 }
-F64FileGenDAT("~/DemoUnsortedF64.DAT.Z",10);
+F64FileGenDAT("~/DemoUnsortedF64.DATA.Z",10);
diff --git a/Demo/SortFileDemo/F64FileSort.HC b/Demo/SortFileDemo/F64FileSort.HC
index a4798ab..16a6ade 100644
--- a/Demo/SortFileDemo/F64FileSort.HC
+++ b/Demo/SortFileDemo/F64FileSort.HC
@@ -56,7 +56,7 @@ U0 F64FileSortDAT(U8 *in_name,U8 *out_name)
   FileWrite(out_name,a,size);
   Free(a);
 }
-F64FileSortDAT("~/DemoUnsortedF64.DAT.Z","~/DemoSortedF64.DAT.Z");
+F64FileSortDAT("~/DemoUnsortedF64.DATA.Z","~/DemoSortedF64.DATA.Z");
 
 U0 F64FileDumpDAT(U8 *in_name)
 {//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Dsk/DataBase.HC"$
@@ -68,5 +68,5 @@ U0 F64FileDumpDAT(U8 *in_name)
     "%12.6f\n",a[i];
   Free(a);
 }
-F64FileDumpDAT("~/DemoUnsortedF64.DAT.Z");
-F64FileDumpDAT("~/DemoSortedF64.DAT.Z");
+F64FileDumpDAT("~/DemoUnsortedF64.DATA.Z");
+F64FileDumpDAT("~/DemoSortedF64.DATA.Z");
diff --git a/Demo/Spy.HC b/Demo/Spy.HC
index bcde781..c7be3d4 100644
--- a/Demo/Spy.HC
+++ b/Demo/Spy.HC
@@ -9,7 +9,7 @@ U0 SpyStkRep(CTask *task)
     '\n';
     "$$BK,1$$PRESS A KEY$$BK,0$$\n";
     DocDblBufSwap;
-    WinMgrSync;
+    Refresh;
   }
   if (DocPut==doc) DocDblBufSwap;
   DocDblBufEnd;
@@ -23,7 +23,7 @@ U0 SpyCallerRep(CTask *task)
     '\n';
     "$$BK,1$$PRESS A KEY$$BK,0$$\n";
     DocDblBufSwap;
-    WinMgrSync;
+    Refresh;
   }
   if (DocPut==doc) DocDblBufSwap;
   DocDblBufEnd;
diff --git a/Demo/SuggestSpelling.HC b/Demo/SuggestSpelling.HC
index eb2d49e..11bf119 100644
--- a/Demo/SuggestSpelling.HC
+++ b/Demo/SuggestSpelling.HC
@@ -24,7 +24,7 @@ U8 *SuggestMatchForm(U8 *src)
 /*Fmt of word lst entry:
   U8 ACD_WORD_CHAR
   U8 word[] with terminating zero
-  I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DAT
+  I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA
 */
 
 Bool SuggestSpelling(U8 *word)
diff --git a/Demo/Templates/ODE1.HC b/Demo/Templates/ODE1.HC
index 9fec1a0..dc9b4c2 100644
--- a/Demo/Templates/ODE1.HC
+++ b/Demo/Templates/ODE1.HC
@@ -11,15 +11,15 @@ CMathODE *ode=NULL;
 
 U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
 {
-  MyMass *tempm1,*tempm2;
+  MyMass *tmpm1,*tmpm2;
 
-  tempm1=ode->next_mass;
-  while (tempm1!=&ode->next_mass) {
-    tempm2=tempm1->next;
-    while (tempm2!=&ode->next_mass) {
-      tempm2=tempm2->next;
+  tmpm1=ode->next_mass;
+  while (tmpm1!=&ode->next_mass) {
+    tmpm2=tmpm1->next;
+    while (tmpm2!=&ode->next_mass) {
+      tmpm2=tmpm2->next;
     }
-    tempm1=tempm1->next;
+    tmpm1=tmpm1->next;
   }
 }
 
diff --git a/Demo/Templates/Util1.HC b/Demo/Templates/Util1.HC
index 0479c0b..1ad92c4 100644
--- a/Demo/Templates/Util1.HC
+++ b/Demo/Templates/Util1.HC
@@ -1,14 +1,14 @@
 U0 MyUtil(U8 *files_find_mask,U8 *fu_flags=NULL)
 {
   I64 fuf_flags=0;
-  CDirEntry *tempde,*tempde1;
+  CDirEntry *tmpde,*tmpde1;
   ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+f+F");
   ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
-  tempde=tempde1=FilesFind(files_find_mask,fuf_flags);
-  while (tempde) {
-    PutFileLink(tempde->full_name);
+  tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags);
+  while (tmpde) {
+    PutFileLink(tmpde->full_name);
     '\n';
-    tempde=tempde->next;
+    tmpde=tmpde->next;
   }
-  DirTreeDel(tempde1);
+  DirTreeDel(tmpde1);
 }
diff --git a/Demo/Templates/Util2.HC b/Demo/Templates/Util2.HC
index 6351889..8660944 100644
--- a/Demo/Templates/Util2.HC
+++ b/Demo/Templates/Util2.HC
@@ -16,7 +16,7 @@ I64 MyUtilDoc(CDoc *doc,I64 fuf_flags)
 }
 
 I64 MyUtilFile(U8 *filename,I64 fuf_flags)
-{//Optimize File.
+{
   I64 res;
   CDoc *doc=DocRead(filename);
   if (res=MyUtilDoc(doc,fuf_flags)) {
@@ -26,28 +26,28 @@ I64 MyUtilFile(U8 *filename,I64 fuf_flags)
   DocDel(doc);
   return res;
 }
-I64 MyUtilLst(CDirEntry *tempde,I64 fuf_flags)
+I64 MyUtilLst(CDirEntry *tmpde,I64 fuf_flags)
 {
   I64 res=0;
-  CDirEntry *tempde1;
-  while (tempde) {
-    tempde1=tempde->next;
-    if (tempde->attr & RS_ATTR_DIR) {
-      if (tempde->sub) {
-	"Processing Directory: %s\n",tempde->full_name;
-	res+=MyUtilLst(tempde->sub,fuf_flags);
+  CDirEntry *tmpde1;
+  while (tmpde) {
+    tmpde1=tmpde->next;
+    if (tmpde->attr & RS_ATTR_DIR) {
+      if (tmpde->sub) {
+	"Processing Directory: %s\n",tmpde->full_name;
+	res+=MyUtilLst(tmpde->sub,fuf_flags);
       }
     } else
-      res+=MyUtilFile(tempde->full_name,fuf_flags);
-    DirEntryDel(tempde);
-    tempde=tempde1;
+      res+=MyUtilFile(tmpde->full_name,fuf_flags);
+    DirEntryDel(tmpde);
+    tmpde=tmpde1;
   }
   return res;
 }
 I64 MyUtil(U8 *files_find_mask="*",U8 *fu_flags=NULL)
 {
   I64 fuf_flags=0;
-  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T");
+  ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+$$");
   ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
   return MyUtilLst(FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND),
 	fuf_flags&~FUG_FILES_FIND);
diff --git a/Demo/ToHtmlToTXTDemo/DemoInPage.DD b/Demo/ToHtmlToTXTDemo/DemoInPage.DD
index effb398..6912f1e 100644
--- a/Demo/ToHtmlToTXTDemo/DemoInPage.DD
+++ b/Demo/ToHtmlToTXTDemo/DemoInPage.DD
@@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"The Temple Operating System"$$FG,0$
 $FG,4$
 $LK,"Download Operating System",A="FI:::/Home/Web/DownloadOS.DD"$		$LK,"App Store",A="FI:::/Home/Web/AppStore.DD"$
 
-$LK,"Screen Shots",A="FI:::/Home/Web/ScreenShots.DD"$				$LK,"Instructional Videos",A="FI:::/Home/Web/TOSVideos.DD"$
+$LK,"Scrn Shots",A="FI:::/Home/Web/ScrnShots.DD"$				$LK,"Instructional Videos",A="FI:::/Home/Web/TOSVideos.DD"$
 
 $LK,"Introduction",A="FI:::/Doc/Welcome.DD"$				$LK,"F.A.Q.",A="FI:::/Doc/FAQ.DD"$
 
@@ -24,7 +24,7 @@ TempleOS is a free, public domain, open source, $FG,4$$TX,"x86_64",HTML="http://
 
 The CIA encourages code obsfucation.  They make it more complicated than necessary.  TempleOS is, literally, more simple than necessary.  It is obnoxiously simple... to the point it hurts. 
 
-This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up!  That's what TempleOS fixes.  I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity.  It is currently $TX,"81,126",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code.  Backward compatibility is not promised.
+This $TX,"\"Hello World\" joke",HTML="http://www.infiltec.com/j-h-wrld.htm"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up!  That's what TempleOS fixes.  I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity.  It is currently $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code.  Backward compatibility is not promised.
 
 Normally, failure is not an option, but since TempleOS accompanies Windows or Linux, we exclude certain uses.  There is no reason to duplicate browsing, multimedia, desktop publishing, etc.  Linux wants to be a secure, multi-user mainframe.  That's why it has file permissions.  The vision for TempleOS, however, is a modern, 64-bit Commodore 64.  The C64 was a non-networked, home computer mostly used for games.  It trained my generation how to program because it was wide open, completely hackable.  The games were not multimedia works of art, but generated by non-artist.
 
@@ -40,9 +40,9 @@ $HC,""$
 
-I wrote all $LK,"121,489",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.1",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler.  It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$".  Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$.  I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
+I wrote all $LK,"119,996",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.2",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler.  It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$".  Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$.  I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
 
 $FG,8$
-* "Commodore 64" was a trademark owned by Commodore Business Machines.
+* "Commodore 64" is a trademark owned by Polabe Holding NV.
 * "Linux" is a trademark owned by Linus Torvalds.
 * "Windows" and "DOS" are trademarks owned by MicroSoft Corp.
diff --git a/Demo/ToHtmlToTXTDemo/ToHtml.HC b/Demo/ToHtmlToTXTDemo/ToHtml.HC
index 234ed1e..25d575e 100644
--- a/Demo/ToHtmlToTXTDemo/ToHtml.HC
+++ b/Demo/ToHtmlToTXTDemo/ToHtml.HC
@@ -148,7 +148,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
 	  "\n"
 	  "\n"
-	  "\n";
+	  "\n";
   if (!body_header) body_header=
 	  "\n"
 	  "
\n";
diff --git a/Demo/WebLogDemo/WebLogRep.HC b/Demo/WebLogDemo/WebLogRep.HC
index 36542bd..1439762 100644
--- a/Demo/WebLogDemo/WebLogRep.HC
+++ b/Demo/WebLogDemo/WebLogRep.HC
@@ -32,11 +32,11 @@ class BlockedStruct
   U32 ip_num;
 };
 
-U0 LogStructDel(LogStruct *templg)
+U0 LogStructDel(LogStruct *tmplg)
 {
-  Free(templg->file);
-  Free(templg->link);
-  Free(templg);
+  Free(tmplg->file);
+  Free(tmplg->link);
+  Free(tmplg);
 }
 
 U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
@@ -45,22 +45,22 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
 	DOCF_PLAIN_TEXT_TABS|DOCF_DBL_DOLLARS|DOCF_NO_CURSOR);
   CDocEntry *doc_e=doc->head.next;
   U8 *src,*src2,*mon_lst=Define("ST_MONTHS");
-  LogStruct *templg;
+  LogStruct *tmplg;
   CDateStruct ds;
   I64 i;
   "%Q\n",name;
   while (doc_e!=doc) {
     if (doc_e->type_u8==DOCT_TEXT) {
-      templg=CAlloc(sizeof(LogStruct));
+      tmplg=CAlloc(sizeof(LogStruct));
       try {
 	src=doc_e->tag;
-	templg->ip_num.u8[3]=Str2I64(src,10,&src);
+	tmplg->ip_num.u8[3]=Str2I64(src,10,&src);
 	if (*src++!='.') throw;
-	templg->ip_num.u8[2]=Str2I64(src,10,&src);
+	tmplg->ip_num.u8[2]=Str2I64(src,10,&src);
 	if (*src++!='.') throw;
-	templg->ip_num.u8[1]=Str2I64(src,10,&src);
+	tmplg->ip_num.u8[1]=Str2I64(src,10,&src);
 	if (*src++!='.') throw;
-	templg->ip_num.u8[0]=Str2I64(src,10,&src);
+	tmplg->ip_num.u8[0]=Str2I64(src,10,&src);
 
 	do if (!*src) throw;
 	while (*src++!='[');
@@ -80,13 +80,13 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
 	ds.min=Str2I64(src,10,&src);
 	if (*src++!=':') throw;
 	ds.sec=Str2I64(src,10,&src);
-	templg->datetime=Struct2Date(&ds);
+	tmplg->datetime=Struct2Date(&ds);
 	if (*src++!=CH_SPACE) throw;
 	i=Str2I64(src,10,&src);
-	templg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60;
+	tmplg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60;
 
-	if (templg->datetime<*_start) *_start=templg->datetime;
-	if (templg->datetime>*_end)   *_end  =templg->datetime;
+	if (tmplg->datetime<*_start) *_start=tmplg->datetime;
+	if (tmplg->datetime>*_end)   *_end  =tmplg->datetime;
 
 	do if (!*src) throw;
 	while (*src++!=']');
@@ -98,15 +98,15 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
 	  do if (!*src2) throw;
 	  while (*src2++!=CH_SPACE);
 	  * --src2=0;
-	  templg->file=StrNew(src);
+	  tmplg->file=StrNew(src);
 	  src=++src2;
 
 	  do if (!*src) throw;
 	  while (*src++!='\"');
 
-	  templg->code=Str2I64(src,10,&src);
+	  tmplg->code=Str2I64(src,10,&src);
 	  if (*src++!=CH_SPACE) throw;
-	  templg->size=Str2I64(src,10,&src);
+	  tmplg->size=Str2I64(src,10,&src);
 	  if (*src++!=CH_SPACE) throw;
 
 	  if (*src++!='\"') throw;
@@ -114,18 +114,18 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
 	  do if (!*src2) throw;
 	  while (*src2++!='\"');
 	  * --src2=0;
-	  templg->link=StrNew(src);
+	  tmplg->link=StrNew(src);
 	  src=++src2;
 
-	  QueIns(templg,head->last);
+	  QueIns(tmplg,head->last);
 	} else if (!StrNCmp(src,"HEAD ",5)) {
-	  LogStructDel(templg);
+	  LogStructDel(tmplg);
 	} else
 	  throw;
       } catch {
 	Fs->catch_except=TRUE;
 	"%Q\n",doc_e->tag;
-	LogStructDel(templg);
+	LogStructDel(tmplg);
       }
     }
     doc_e=doc_e->next;
@@ -136,40 +136,40 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end)
 LogStruct *PrsLogFiles(U8 *files_find_mask,CDate *_start,CDate *_end)
 {
   LogStruct *head=CAlloc(sizeof(LogStruct));
-  CDirEntry *tempde=FilesFind(files_find_mask),*tempde1=tempde;
+  CDirEntry *tmpde=FilesFind(files_find_mask),*tmpde1=tmpde;
   QueInit(head);
-  while (tempde) {
-    PrsSingleLogFile(head,tempde->full_name,_start,_end);
-    tempde=tempde->next;
+  while (tmpde) {
+    PrsSingleLogFile(head,tmpde->full_name,_start,_end);
+    tmpde=tmpde->next;
   }
-  DirTreeDel(tempde1);
+  DirTreeDel(tmpde1);
   return head;
 }
 
 U0 LogLstDel(LogStruct *head)
 {
-  LogStruct *templg=head->next,*templg1;
-  while (templg!=head) {
-    templg1=templg->next;
-    LogStructDel(templg);
-    templg=templg1;
+  LogStruct *tmplg=head->next,*tmplg1;
+  while (tmplg!=head) {
+    tmplg1=tmplg->next;
+    LogStructDel(tmplg);
+    tmplg=tmplg1;
   }
 }
 
 U0 BlockedStructAdd(BlockedStruct *head,U32 ip_num)
 {
-  BlockedStruct *tempb=CAlloc(sizeof(BlockedStruct));
-  tempb->ip_num=ip_num;
-  QueIns(tempb,head->last);
+  BlockedStruct *tmpb=CAlloc(sizeof(BlockedStruct));
+  tmpb->ip_num=ip_num;
+  QueIns(tmpb,head->last);
 }
 
 Bool IsBlocked(BlockedStruct *head,U32 ip_num)
 {
-  BlockedStruct *tempb=head->next;
-  while (tempb!=head) {
-    if (tempb->ip_num==ip_num)
+  BlockedStruct *tmpb=head->next;
+  while (tmpb!=head) {
+    if (tmpb->ip_num==ip_num)
       return TRUE;
-    tempb=tempb->next;
+    tmpb=tmpb->next;
   }
   return FALSE;
 }
@@ -177,7 +177,7 @@ Bool IsBlocked(BlockedStruct *head,U32 ip_num)
 U0 BlockIPNums(LogStruct *head)
 {
   BlockedStruct blocked_head;
-  LogStruct *templg=head->next,*templg1;
+  LogStruct *tmplg=head->next,*tmplg1;
 
   QueInit(&blocked_head);
 
@@ -190,53 +190,53 @@ U0 BlockIPNums(LogStruct *head)
   BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+139);
 
   //pass 1: collect robot lst
-  while (templg!=head) {
-    if (StrIMatch("ROBOT",templg->file) &&
-	  !IsBlocked(&blocked_head,templg->ip_num))
-      BlockedStructAdd(&blocked_head,templg->ip_num);
-    templg=templg->next;
+  while (tmplg!=head) {
+    if (StrIMatch("ROBOT",tmplg->file) &&
+	  !IsBlocked(&blocked_head,tmplg->ip_num))
+      BlockedStructAdd(&blocked_head,tmplg->ip_num);
+    tmplg=tmplg->next;
   }
 
   //pass 2: removed blocked ip_nums
-  templg=head->next;
-  while (templg!=head) {
-    templg1=templg->next;
-    if (IsBlocked(&blocked_head,templg->ip_num)) {
-      QueRem(templg);
-      LogStructDel(templg);
+  tmplg=head->next;
+  while (tmplg!=head) {
+    tmplg1=tmplg->next;
+    if (IsBlocked(&blocked_head,tmplg->ip_num)) {
+      QueRem(tmplg);
+      LogStructDel(tmplg);
     }
-    templg=templg1;
+    tmplg=tmplg1;
   }
 
   QueDel(&blocked_head);
 }
 
-Bool IsDownLoad(LogStruct *templg)
+Bool IsDownLoad(LogStruct *tmplg)
 {
-  if (StrMatch(DOWNLOAD_FILE1,templg->file)&&templg->size>=
+  if (StrMatch(DOWNLOAD_FILE1,tmplg->file)&&tmplg->size>=
 	DOWNLOAD_FILE1_SIZE ||
-	StrMatch(DOWNLOAD_FILE2,templg->file)&&templg->size>=
+	StrMatch(DOWNLOAD_FILE2,tmplg->file)&&tmplg->size>=
 	DOWNLOAD_FILE2_SIZE ||
-	StrMatch(DOWNLOAD_FILE3,templg->file)&&templg->size>=
+	StrMatch(DOWNLOAD_FILE3,tmplg->file)&&tmplg->size>=
 	DOWNLOAD_FILE3_SIZE ||
-	StrMatch(DOWNLOAD_FILE4,templg->file)&&templg->size>=
+	StrMatch(DOWNLOAD_FILE4,tmplg->file)&&tmplg->size>=
 	DOWNLOAD_FILE4_SIZE)
     return TRUE;
   else
     return FALSE;
 }
 
-Bool IsIndex(LogStruct *templg)
+Bool IsIndex(LogStruct *tmplg)
 {
-  if (!StrCmp(templg->file,"/index.html") ||
-	!StrNCmp(templg->file+StrLen(templg->file)-14,"/TempleOS.html",14) ||
-	!StrCmp(templg->file,"/"))
+  if (!StrCmp(tmplg->file,"/index.html") ||
+	!StrNCmp(tmplg->file+StrLen(tmplg->file)-14,"/TempleOS.html",14) ||
+	!StrCmp(tmplg->file,"/"))
     return TRUE;
   else
     return FALSE;
 }
 
-Bool IPNumTreeAdd(LogStruct **_head,LogStruct *templg)
+Bool IPNumTreeAdd(LogStruct **_head,LogStruct *tmplg)
 {
   LogStruct *head;
   if (UnusedStk<0x200) {
@@ -244,63 +244,63 @@ Bool IPNumTreeAdd(LogStruct **_head,LogStruct *templg)
     ThrowBreak;
   }
   if (head=*_head) {
-    if (templg->ip_num==head->ip_num)
+    if (tmplg->ip_num==head->ip_num)
       return TRUE;
-    else if (templg->ip_numip_num)
-      return IPNumTreeAdd(&head->ip_num_left,templg);
+    else if (tmplg->ip_numip_num)
+      return IPNumTreeAdd(&head->ip_num_left,tmplg);
     else
-      return IPNumTreeAdd(&head->ip_num_right,templg);
+      return IPNumTreeAdd(&head->ip_num_right,tmplg);
   } else {
-    templg->ip_num_left=NULL;
-    templg->ip_num_right=NULL;
-    *_head=templg;
+    tmplg->ip_num_left=NULL;
+    tmplg->ip_num_right=NULL;
+    *_head=tmplg;
     return FALSE;
   }
 }
 
-U0 LinkTreeAdd(LinkStruct **_root,LogStruct *templg)
+U0 LinkTreeAdd(LinkStruct **_root,LogStruct *tmplg)
 {
   I64 i;
-  LinkStruct *root,*templk;
+  LinkStruct *root,*tmplk;
   if (UnusedStk<0x200) {
     PrintErr("Stk Overflow");
     ThrowBreak;
   }
   if (root=*_root) {
-    if (!(i=StrCmp(templg->link,root->link)))
+    if (!(i=StrCmp(tmplg->link,root->link)))
       root->cnt++;
     else if (i<0)
-      LinkTreeAdd(&root->left,templg);
+      LinkTreeAdd(&root->left,tmplg);
     else
-      LinkTreeAdd(&root->right,templg);
+      LinkTreeAdd(&root->right,tmplg);
   } else {
-    templk=CAlloc(sizeof(LinkStruct));
-    templk->link=templg->link;
-    templk->cnt=1;
-    *_root=templk;
+    tmplk=CAlloc(sizeof(LinkStruct));
+    tmplk->link=tmplg->link;
+    tmplk->cnt=1;
+    *_root=tmplk;
   }
 }
 
-U0 FileTreeAdd(LinkStruct **_root,LogStruct *templg)
+U0 FileTreeAdd(LinkStruct **_root,LogStruct *tmplg)
 {
   I64 i;
-  LinkStruct *root,*templk;
+  LinkStruct *root,*tmplk;
   if (UnusedStk<0x200) {
     PrintErr("Stk Overflow");
     ThrowBreak;
   }
   if (root=*_root) {
-    if (!(i=StrCmp(templg->file,root->file)))
+    if (!(i=StrCmp(tmplg->file,root->file)))
       root->cnt++;
     else if (i<0)
-      FileTreeAdd(&root->left,templg);
+      FileTreeAdd(&root->left,tmplg);
     else
-      FileTreeAdd(&root->right,templg);
+      FileTreeAdd(&root->right,tmplg);
   } else {
-    templk=CAlloc(sizeof(LinkStruct));
-    templk->file=templg->file;
-    templk->cnt=1;
-    *_root=templk;
+    tmplk=CAlloc(sizeof(LinkStruct));
+    tmplk->file=tmplg->file;
+    tmplk->cnt=1;
+    *_root=tmplk;
   }
 }
 
@@ -345,7 +345,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
   I64 i,j,cnt,dups,
 	hours_start,hours_end,*hour_cnts,*dup_cnts,
 	days_start,days_end,*day_cnts,*day_dup_cnts;
-  LogStruct *templg=head->next,*dup_head=NULL;
+  LogStruct *tmplg=head->next,*dup_head=NULL;
   LinkStruct *link_root=NULL;
   CDateStruct ds;
 
@@ -360,20 +360,20 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
   day_cnts =CAlloc((days_end-days_start+1)*sizeof(I64));
   day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64));
   dups=cnt=0;
-  while (templg!=head) {
-    if (start<=templg->datetime<=end && IsDownLoad(templg)) {
-      i=templg->datetime*24;
+  while (tmplg!=head) {
+    if (start<=tmplg->datetime<=end && IsDownLoad(tmplg)) {
+      i=tmplg->datetime*24;
       hour_cnts[i.u32[1]-hours_start]++;
-      day_cnts[(templg->datetime+local_time_offset)>>32-days_start]++;
+      day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
       cnt++;
-      if (IPNumTreeAdd(&dup_head,templg)) {
-	day_dup_cnts[(templg->datetime+local_time_offset)>>32-days_start]++;
+      if (IPNumTreeAdd(&dup_head,tmplg)) {
+	day_dup_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
 	dup_cnts[i.u32[1]-hours_start]++;
 	dups++;
       }
-      LinkTreeAdd(&link_root,templg);
+      LinkTreeAdd(&link_root,tmplg);
     }
-    templg=templg->next;
+    tmplg=tmplg->next;
   }
 
   "\n\nDownloads of /TempleOSCD.ISO\n";
@@ -411,12 +411,12 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end)
 
 U0 FileRep(LogStruct *head,CDate start,CDate end)
 {
-  LogStruct *templg=head->next;
+  LogStruct *tmplg=head->next;
   LinkStruct *file_root=NULL;
-  while (templg!=head) {
-    if (start<=templg->datetime<=end)
-      FileTreeAdd(&file_root,templg);
-    templg=templg->next;
+  while (tmplg!=head) {
+    if (start<=tmplg->datetime<=end)
+      FileTreeAdd(&file_root,tmplg);
+    tmplg=tmplg->next;
   }
   "\n\nFile Hits\n";
   FileTreeTraverse(file_root);
@@ -429,7 +429,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
   I64 i,j,cnt,dups,
 	hours_start,hours_end,*hour_cnts,*dup_cnts,
 	days_start,days_end,*day_cnts,*day_dup_cnts;
-  LogStruct *templg=head->next,*dup_head=NULL;
+  LogStruct *tmplg=head->next,*dup_head=NULL;
   LinkStruct *link_root=NULL;
   CDateStruct ds;
 
@@ -444,20 +444,20 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end)
   day_cnts =CAlloc((days_end-days_start+1)*sizeof(I64));
   day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64));
   dups=cnt=0;
-  while (templg!=head) {
-    if (start<=templg->datetime<=end && IsIndex(templg)) {
-      i=templg->datetime*24;
+  while (tmplg!=head) {
+    if (start<=tmplg->datetime<=end && IsIndex(tmplg)) {
+      i=tmplg->datetime*24;
       hour_cnts[i.u32[1]-hours_start]++;
-      day_cnts[(templg->datetime+local_time_offset)>>32-days_start]++;
+      day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
       cnt++;
-      if (IPNumTreeAdd(&dup_head,templg)) {
-	day_dup_cnts[(templg->datetime+local_time_offset)>>32-days_start]++;
+      if (IPNumTreeAdd(&dup_head,tmplg)) {
+	day_dup_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++;
 	dup_cnts[i.u32[1]-hours_start]++;
 	dups++;
       }
-      LinkTreeAdd(&link_root,templg);
+      LinkTreeAdd(&link_root,tmplg);
     }
-    templg=templg->next;
+    tmplg=tmplg->next;
   }
 
   "\n\nHits on /index.html\n"
diff --git a/Demo/WebLogDemo/WebLogScramble.HC b/Demo/WebLogDemo/WebLogScramble.HC
index 61e0493..715a72c 100644
--- a/Demo/WebLogDemo/WebLogScramble.HC
+++ b/Demo/WebLogDemo/WebLogScramble.HC
@@ -45,14 +45,14 @@ U0 LogScrambleFile(U8 *name)
 }
 U0 WebLogScramble(U8 *files_find_mask)
 {
-  CDirEntry *tempde=FilesFind(files_find_mask,FUF_RECURSE|FUF_JUST_FILES),
-	*tempde1=tempde;
+  CDirEntry *tmpde=FilesFind(files_find_mask,FUF_RECURSE|FUF_JUST_FILES),
+	*tmpde1=tmpde;
   InitKey;
-  while (tempde) {
-    LogScrambleFile(tempde->full_name);
-    tempde=tempde->next;
+  while (tmpde) {
+    LogScrambleFile(tmpde->full_name);
+    tmpde=tmpde->next;
   }
-  DirTreeDel(tempde1);
+  DirTreeDel(tmpde1);
 }
 
 U0 LogScrambleDemo()
diff --git a/Demo/WordSearch.HC b/Demo/WordSearch.HC
index 22ad11c..46df90a 100644
--- a/Demo/WordSearch.HC
+++ b/Demo/WordSearch.HC
@@ -93,7 +93,7 @@ I64 WordsCompare(U8 *e1,U8 *e2)
 /*Fmt of word lst entry:
   U8 ACD_WORD_CHAR
   U8 word[] with terminating zero
-  I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DAT
+  I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA
 */
 
 U0 DisplayWords(I64 n)
diff --git a/DoOnce.HC b/DoOnce.HC
index 2fedfed..f349aff 100644
--- a/DoOnce.HC
+++ b/DoOnce.HC
@@ -30,7 +30,7 @@ U0 DoOnce()
 	if (YorN) {
 	  DocBottom;
 	  Cd("::/Misc/Tour");
-	  AutoFile("Tour");
+	  InFile("Tour");
 	}
       }
       break;
@@ -44,7 +44,7 @@ U0 DoOnce()
 	if (YorN) {
 	  DocBottom;
 	  Cd("::/Misc/Tour");
-	  AutoFile("Tour");
+	  InFile("Tour");
 	}
       }
       break;
diff --git a/Doc/AutoComplete.DD b/Doc/AutoComplete.DD
index df837c7..11a24b0 100644
--- a/Doc/AutoComplete.DD
+++ b/Doc/AutoComplete.DD
@@ -1,4 +1,4 @@
-$FG,2$$WW,1$AutoComplete$FG$ is the $FG,7$LTGRAY$FG$ window on the right of the screen.  $LK,"ACInit",A="MN:ACInit"$() collects words from all text files in subdirectories.  Normally, the call to $LK,"ACInit",A="MN:ACInit"$() is in $LK,"HomeSys.HC",A="FF:~/HomeSys.HC,ACInit"$.  It provides auto-complete for typing, jump-to-code and jump-to-dictionary functionality.
+$FG,2$$WW,1$AutoComplete$FG$ is the $FG,7$LTGRAY$FG$ window on the right of the scrn.  $LK,"ACInit",A="MN:ACInit"$() collects words from all text files in subdirectories.  Normally, the call to $LK,"ACInit",A="MN:ACInit"$() is in $LK,"HomeSys.HC",A="FF:~/HomeSys.HC,ACInit"$.  It provides auto-complete for typing, jump-to-code and jump-to-dictionary functionality.
 
 $FG,2$$FG$	Closes the $FG,7$LTGRAY$FG$ AutoComplete window.
 $FG,2$$FG$		Opens the $FG,7$LTGRAY$FG$ AutoComplete window.
diff --git a/Doc/AutoFile.DD b/Doc/AutoFile.DD
deleted file mode 100644
index 356182e..0000000
--- a/Doc/AutoFile.DD
+++ /dev/null
@@ -1,7 +0,0 @@
-$WW,1$$FG,2$AutoFiles$FG$ are used to generate user input to automate operations.  The TempleOS tour is done with an $FG,2$AutoFile$FG$.  It reminds me of a Unix pipe because $FG,2$StdOut$FG$ of one gets chained into $FG,2$StdIn$FG$ of another.
-
-When an $FG,2$AutoFile$FG$ runs, a child task is $LK,"Spawn",A="MN:Spawn"$()ed which intercepts real user input and generates fake input.  AutoFiles are $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ programs run by the child whose stdout goes to the parent's input buffer.  $LK,"Msg",A="MN:Msg"$() can be included in an $FG,2$AutoFile$FG$ to send special keys or mouse cmds to the parent.  While an $FG,2$AutoFile$FG$ is running, the normal input gets diverted to the AutoFile task and can be filtered and sent back to the parent task.  Unless you are driving functions which prompt for data, you can probably use an $FG,2$#include$FG$ file in place of an $FG,2$AutoFile$FG$.
-
-See $LK,"::/Demo/AutoFile/AFDir.AUT"$.
-
-Note: $LK,"Auto",A="MN:Auto"$("") can be used if all you need is to send ASCII characters.  It differs from $LK,"AutoStr",A="MN:AutoStr"$().  You'll probably use $LK,"Auto",A="MN:Auto"$() a lot and not $LK,"AutoStr",A="MN:AutoStr"$().  With $LK,"Auto",A="MN:Auto"$(), for example, you can place answers to the prompts for recompiling the $FG,2$Kernel$FG$ module during $LK,"BootHDIns",A="MN:BootHDIns"$().
diff --git a/Doc/Boot.DD b/Doc/Boot.DD
index b8829e9..00ee834 100644
Binary files a/Doc/Boot.DD and b/Doc/Boot.DD differ
diff --git a/Doc/ChangeLog.DD b/Doc/ChangeLog.DD
index 1a966f6..f35bef4 100644
--- a/Doc/ChangeLog.DD
+++ b/Doc/ChangeLog.DD
@@ -2,7 +2,55 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
 
 Use $LK,"R",A="MN:R"$() to rename if I change a label.
 
-$IV,1$----09/18/16 17:15:54----$IV,0$
+$IV,1$----09/29/16 11:52:04----$IV,0$
+
+$IV,1$----09/29/16 10:13:14----$IV,0$
+* $BK,1$TempleOS version 4.12 Released$BK,0$
+* Added $LK,"TASKf_CMD_LINE_PMT",A="MN:TASKf_CMD_LINE_PMT"$.
+* Improved $LK,"TaskWait",A="MN:TaskWait"$().
+* Improved $LK,"DeathWait",A="MN:DeathWait"$().
+
+$IV,1$----09/27/16 12:40:21----$IV,0$
+* Added $LK,"SndRst",A="MN:SndRst"$().
+* Got rid of crappy reverb in $LK,"::/Apps/Psalmody/PsalmodyMain.HC"$.
+
+$IV,1$----09/27/16 11:09:25----$IV,0$
+* Improved $LK,"::/Misc/OSTestSuite.HC"$.
+* Fixed bug in $LK,"EdCharIns",A="MN:EdCharIns"$() printing $$ cmds.
+* Added $LK,"FUF_JUST_DD",A="MN:FUF_JUST_DD"$ and $LK,"FILEMASK_DD",A="MN:FILEMASK_DD"$.
+
+$IV,1$----09/27/16 01:05:52----$IV,0$
+* Improved $LK,"::/Doc/MemOverview.DD"$.
+* Got rid of $FG,4$::/Demo/Lectures/Mem$FG$.
+* Made filename paths relative to document location in DolDoc links.
+* $LK,"R",A="MN:R"$("Temp","Tmp");
+
+$IV,1$----09/26/16 00:44:42----$IV,0$
+* Added CloseAssault and OverRun to $LK,"::/Apps/ToTheFront/ToTheFront.HC"$.
+
+$IV,1$----09/22/16 07:53:20----$IV,0$
+* Improved $LK,"::/Demo/Graphics/Box.HC"$.
+* Improved $LK,"::/Demo/Graphics/SpritePlot3D.HC"$.
+
+$IV,1$----09/21/16 17:09:40----$IV,0$
+* Fixed bug in $LK,"::/Demo/Games/BomberGolf.HC"$.
+
+$IV,1$----09/20/16 15:57:30----$IV,0$
+* $LK,"R",A="MN:R"$("Screen","Scrn");
+* $LK,"R",A="MN:R"$("WinMgrSync","$LK,"Refresh",A="MN:Refresh"$");
+* $LK,"R",A="MN:R"$("InDbg","$LK,"DbgMode",A="MN:DbgMode"$");
+* Improved $LK,"::/Doc/Boot.DD"$.
+
+$IV,1$----09/20/16 07:31:52----$IV,0$
+* $LK,"R",A="MN:R"$("DAT","DATA");
+* $LK,"R",A="MN:R"$("Auto","In");
+* $LK,"R",A="MN:R"$("AutoStr","InStr");
+* $LK,"R",A="MN:R"$("AutoFile","InFile");
+* $LK,"R",A="MN:R"$("AUT","IN");
+* $LK,"R",A="MN:R"$("GRA","GR");
+
+$IV,1$----09/18/16 20:40:44----$IV,0$
+* Added $LK,"::/Doc/WhyNotMore.DD"$.
 
 $IV,1$----09/18/16 12:52:03----$IV,0$
 * $BK,1$TempleOS version 4.11 Released$BK,0$
@@ -146,7 +194,7 @@ $IV,1$----05/07/16 08:55:59----$IV,0$
 * $BK,1$TempleOS version 4.06 Released$BK,0$
 
 $IV,1$----05/03/16 19:26:45----$IV,0$
-* Made $LK,"FunSegFind",A="MN:FunSegFind"$() search all hash tables when $LK,"IsDbg",A="MN:IsDbg"$.
+* Made $LK,"FunSegFind",A="MN:FunSegFind"$() search all hash tables when $LK,"IsDbgMode",A="MN:IsDbgMode"$.
 * Added missiles to $LK,"::/Apps/X-Caliber/X-Caliber.HC"$.
 * Fixed bug in $LK,"D3Unit",A="MN:D3Unit"$().
 
@@ -216,7 +264,7 @@ $IV,1$----03/19/16 09:15:11----$IV,0$
 $IV,1$----03/19/16 06:22:36----$IV,0$
 * Fixed $LK,"UAsm",A="MN:Ui"$() bug.
 * Got rids of $FG,4$ICF_A1_FIRST$FG$.
-* Cleaned-up compiler $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TEMP",A="MN:REGG_STK_TEMP"$.
+* Cleaned-up compiler $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TMP",A="MN:REGG_STK_TMP"$.
 
 $IV,1$----03/18/16 09:53:33----$IV,0$
 * Made $LK,"SpriteEd",A="MN:SpriteEd"$() sel foreground elem.
@@ -258,7 +306,7 @@ $IV,1$----02/01/16 21:01:15----$IV,0$
 * Made multicore more professional.
 
 $IV,1$----02/01/16 06:02:41----$IV,0$
-* Moved $LK,"Mem2Meg.HC",A="FI:::/Demo/Lectures/Mem/Mem2Meg.HC"$ out of kernel.
+* Moved Sup1CodeScraps/Mem/Mem2Meg.HC out of kernel.
 
 $IV,1$----01/31/16 04:07:50----$IV,0$
 * Fixed scheduler, so doesn't idle so high.
@@ -325,7 +373,7 @@ $IV,1$----01/12/16 19:17:12----$IV,0$
 
 $IV,1$----01/12/16 10:06:18----$IV,0$
 * $BK,1$TempleOS version 4.01 Released$BK,0$
-* Standardized drive letters.  Your $LK,"Auto",A="MN:Auto"$() config scripts for compiling the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$() must be changed.
+* Standardized drive letters.  Your $LK,"In",A="MN:In"$() config scripts for compiling the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$() must be changed.
 * Added $LK,"CCF_QUESTION_HELP",A="MN:CCF_QUESTION_HELP"$.
 
 $IV,1$----01/11/16 00:04:38----$IV,0$
diff --git a/Doc/CharOverview.DD b/Doc/CharOverview.DD
index 8b7a5d5..dc6ff63 100644
--- a/Doc/CharOverview.DD
+++ b/Doc/CharOverview.DD
@@ -8,7 +8,7 @@ ASCII #5  is the cursor location in a saved file.
 ASCII #28 is $FG,2$$FG$.
 ASCII #31 is a $FG,2$$FG$.
 
-TempleOS ASCII is 8-bit instead of 7-bit, so it also uses the range from 128-255.  Press $FG,2$$FG$ to see shapes for 128-255.  Technically, $FG,2$$FG$ are $LK,"screen codes",A="HI:TextBase Layer"$.
+TempleOS ASCII is 8-bit instead of 7-bit, so it also uses the range from 128-255.  Press $FG,2$$FG$ to see shapes for 128-255.  Technically, $FG,2$$FG$ are $LK,"scrn codes",A="HI:TextBase Layer"$.
 
 A $FG,2$Key$FG$ is typically specified with a scan code.  TempleOS scan codes contain the key value in the lowest $FG,2$U8$FG$, and flags in the upper 3 bytes.  See $LK,"Scan Code Flags",A="MN:SCF_CTRL"$ and $LK,"Scan Codes",A="MN:SC_INS"$.
 
diff --git a/Doc/Charter.DD b/Doc/Charter.DD
index cbb70e3..3426e47 100644
--- a/Doc/Charter.DD
+++ b/Doc/Charter.DD
@@ -31,7 +31,7 @@ $ID,-5$
 
 * Low line count is the highest good, so it is easy to learn the whole thing.  Users should see the light at the end of the tunnel.  One file system, for example, is better than many file systems.
 
-* There is a limit of 100,000 lines of code for all time, not including applications and demos.  $FG,4$Code comments count$FG$, however.  Currently, there are $TX,"80,901",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code.  $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit.  The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications.  Dependency on components and libraries creates a hell that is no longer blissful.
+* There is a limit of 100,000 lines of code for all time, not including applications and demos.  $FG,4$Code comments count$FG$, however.  Currently, there are $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code.  $FG,4$3rd party libraries are banned$FG$ because they circumvent the intent of this limit.  The vision is a Commodore 64 ROM -- a fixed core API that is the only dependency of applications.  Dependency on components and libraries creates a hell that is no longer blissful.
  
 * Minimal abstraction is a goal.  Sheep are fools.  They always respect a design that is more complicated than another.  Any genius can make it complicated.  Like in physics, it takes a supra-genius to make it simple.
 
@@ -55,14 +55,14 @@ $ID,-5$
 
 * $FG,2$100% open source$FG$ with all source included.
 
-* Documents are not for printing.  They're dynamic, intended for the screen.
+* Documents are not for printing.  They're dynamic, intended for the scrn.
 
 * Just one 8x8 fixed-width font.  $FG,4$No Unicode, just Extended ASCII$FG$.  Other countries can make their own versions.  The versions should be just for one language and platform.
 
 * $FG,4$No multimedia$FG$.  Sounds and images will be primarily calculated in real-time, not fetched from storage.
 
 $FG,8$
-* "Commodore 64" was a trademark owned by Commodore Business Machines.
+* "Commodore 64" is a trademark owned by Polabe Holding NV.
 * "The Simpsons" is a trademark owned by Fox.
 * "Windows" is a trademark owned by MicroSoft Corp.
 $FG$
diff --git a/Doc/CmdLineOverview.DD b/Doc/CmdLineOverview.DD
index bcdba02..4eeaa4c 100644
--- a/Doc/CmdLineOverview.DD
+++ b/Doc/CmdLineOverview.DD
@@ -1,6 +1,6 @@
 $WW,1$$FG,5$$TX+CX,"Command Line Overview"$$FG$
 
-The cmd line feeds into the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ compiler as you type.  A stmt outside a function executes immediately.  Remember to add a semicolon.$WW,1$
+The cmd line feeds into the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ compiler line-by-line as you type.  A stmt outside a function executes immediately.  Remember to add a semicolon.$WW,1$
 
 Look-up the function headers with $FG,2$AutoComplete$FG$ by hitting $FG,2$$FG$ after typing the first few letters.
 
@@ -24,7 +24,7 @@ Drives are specified with a letter.  The boot drive is specified with a '$FG,2$:
 
 The drive can be specified in a $LK,"Cd",A="MN:Cd"$() command as in:
 
->$FG,2$Cd("B:/Temp");$FG$	B drive
+>$FG,2$Cd("B:/Tmp");$FG$	B drive
 >$FG,2$Cd("::/Demo");$FG$	Boot drive
 
 The home directory is specified with a $FG,2$'~'$FG$.
@@ -39,4 +39,4 @@ You can place macros in your $LK,"PersonalMenu",A="FI:~/PersonalMenu.DD"$ for $L
 
 $LK,"Cmd Line Routines",A="HI:Cmd Line (Typically)"$
 
-$MA-X+PU,"Take Tour",LM="User(\"Cd(\\\"::/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$
+$MA-X+PU,"Take Tour",LM="User(\"Cd(\\\"::/Misc/Tour\\\");;InFile(\\\"Tour\\\");\n\");"$
diff --git a/Doc/Credits.DD b/Doc/Credits.DD
index 03c24f2..4e7527a 100644
--- a/Doc/Credits.DD
+++ b/Doc/Credits.DD
@@ -1,6 +1,6 @@
 $WW,1$$FG,5$$TX+CX,"Credits"$$FG$
 
-I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"120,264",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the past $TX,"13.1",D="DD_TEMPLEOS_AGE"$ years (full-time).  It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources.  Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$.  It is independent and stands alone.  It has no networking, so it certainly doesn't call home.  100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders!  It is public domain, not GPL.
+I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"119,996",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the past $TX,"13.2",D="DD_TEMPLEOS_AGE"$ years (full-time).  It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources.  Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$.  It is independent and stands alone.  It has no networking, so it certainly doesn't call home.  100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders!  It is public domain, not GPL.
 
 *) $LK,"::/Kernel/FontStd.HC"$, is taken from $FG,4$$TX,"FreeDOS",HTML="http://www.freedos.org"$$FG$.  It's public domain.
 
diff --git a/Doc/DbgFunSeg.DD b/Doc/DbgFunSeg.DD
index e2cb2cf..2704710 100644
--- a/Doc/DbgFunSeg.DD
+++ b/Doc/DbgFunSeg.DD
@@ -1,2 +1,2 @@
-$WW,1$Use $GREEN$%p$FG$ to print a pointer with FunSeg+Offset or use $GREEN$%P$FG$ to print a link to a FunSeg+Offset.
+$WW,1$Use $FG,2$%p$FG$ to print a pointer with FunSeg+Offset or use $FG,2$%P$FG$ to print a link to a FunSeg+Offset.
  
\ No newline at end of file
diff --git a/Doc/DbgOverview.DD b/Doc/DbgOverview.DD
index 7cd33e5..06f7374 100644
--- a/Doc/DbgOverview.DD
+++ b/Doc/DbgOverview.DD
@@ -8,7 +8,7 @@ $WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
 
 * I use $LK,"progress1",A="MN:progress1"$-$LK,"progress4",A="MN:progress4"$ for debugging because they show on the wallpaper.  They're just global int vars.
 
-* You can use $LK,"AdamLog",A="MN:AdamLog"$() to send text to the Adam task window.  It works like $LK,"Print",A="MN:Print"$().  I never use that.  Instead, I use $LK,"RawPrint",A="MN:RawPrint"$().
+* You can use $LK,"AdamLog",A="MN:AdamLog"$() to send text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ window.  It works like $LK,"Print",A="MN:Print"$().  I never use that.  Instead, I use $LK,"RawPrint",A="MN:RawPrint"$().
 
 * $LK,"D",A="MN:D"$(), $LK,"DocD",A="MN:DocD"$(), $LK,"RawD",A="MN:RawD"$() to do 16 column hex dump mem with numbering from zero.  With $LK,"DocD",A="MN:DocD"$ the values are updated continually and you can alter mem by editing.
 
@@ -20,9 +20,9 @@ $WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
 
 * $LK,"ClassRep",A="MN:ClassRep"$() and the dynamic version $LK,"ClassRepD",A="MN:ClassRepD"$() can be used to dump structures.
 
-* $LK,"Prof",A="MN:Prof"$() and $LK,"ProfRep",A="MN:ProfRep"$() provide code profiling.  See $LK,"::/Demo/AutoFile/AFProfile.AUT"$ (This is an $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$.)
+* $LK,"Prof",A="MN:Prof"$() and $LK,"ProfRep",A="MN:ProfRep"$() provide code profiling.  See $LK,"::/Demo/InFile/INProfile.IN"$ (This is an $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$.)
 
-* Use $LK,"RawPrint",A="MN:RawPrint"$() to print debug info bypassing the window framework.  You pass these routines a count in milliseconds for how long it should be displayed.  You can use $LK,"Raw",A="MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework.  The $FG,2$WinMgr$FG$ runs on $FG,2$core0$FG$ and will overwrite raw text from other cores when it updates the screen.
+* Use $LK,"RawPrint",A="MN:RawPrint"$() to print debug info bypassing the window framework.  You pass these routines a count in milliseconds for how long it should be displayed.  You can use $LK,"Raw",A="MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework.  The $FG,2$WinMgr$FG$ runs on $FG,2$Core0$FG$ and will overwrite raw text from other cores when it updates the scrn.
 
 * Use $LK,"SysDbg",A="MN:SysDbg"$() to set a flag which you can read with $LK,"IsSysDbg",A="MN:IsSysDbg"$() when you wish to trigger some debug activity.  It's just a handy simple flag, nothing fancy.
 
diff --git a/Doc/Demands.DD b/Doc/Demands.DD
index 34d4642..0a52721 100644
--- a/Doc/Demands.DD
+++ b/Doc/Demands.DD
@@ -17,7 +17,7 @@ $LK,"::/Kernel/BlkDev/DskCluster.HC"$	:152 All the cluster operations become blk
 
 * VMware needs to support ATAPI CD/DVD/Blu-ray disk burning, directly to real hardware.
 
-* VMware has a bug stretching 640x480 16 color to full screen.
+* VMware has a bug stretching 640x480 16 color to full scrn.
 
 * VMware PC speaker's distortion is a good idea, but it is too much for hymns.  VMware should make an adjustment for distortion and an adjustment for reverb.
 
@@ -44,7 +44,7 @@ $LK,"::/Kernel/Mem/PageTables.HC"$	:135 lines to identity-map gets eliminated.
 
 * We do not want UTF, just 8-bit characters.  $FG,2$$FG$ toggles between Cyrillic and Std Fonts.  We need the twelve window $LK,"TextBorder",A="MN:TextBorder"$ characters added to the VGA font 0x02-0x0D.  Japan, China and Korea must switch to alphabets.  Maybe, the United States will change to metric, out of good will. 
 
-* Microsoft Paint and Linux's Gimp must support TempleOS $LK,"GRA Files",A="FI:::/Doc/GRAFiles.DD"$.  They are blemish free, unlike $TX,"BMP files",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$.
+* Microsoft Paint and Linux's Gimp must support TempleOS $LK,"GR Files",A="FI:::/Doc/GRFiles.DD"$.  They are blemish free, unlike $TX,"BMP files",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$.
 
 * We must have a nice dictionary.  Someone needs to do a $LK,"Spell Checker",A="FI:::/Demo/SuggestSpelling.HC"$, too.
 
diff --git a/Doc/DemoIndex.DD b/Doc/DemoIndex.DD
index 4ffbe0a..1268090 100644
--- a/Doc/DemoIndex.DD
+++ b/Doc/DemoIndex.DD
@@ -2,7 +2,7 @@ $FG,5$$TX+CX,"TempleOS Demo Index"$$FG$
 
 $WW,1$These are arranged in increasing order of difficulty, more or less.  This can be used as a tutorial if you start at the beginning and work your way fwd.
 
-$FG,2$$FG$ to edit a file and $FG,2$F5$FG$ to run it.
+$FG,2$$FG$ to edit a file and $FG,2$$FG$ to run it.
 
 $LK,"::/Doc/HelloWorld.DD"$
 
@@ -33,7 +33,7 @@ $LK,"::/Demo/Games/Digits.HC"$
 $LK,"::/Demo/Progress.HC"$ //has some ASM, just ignore
 $LK,"::/Demo/Graphics/Symmetry.HC"$
 $LK,"::/Demo/Graphics/Blot.HC"$
-$LK,"::/Demo/Graphics/ScreenCapture.HC"$
+$LK,"::/Demo/Graphics/ScrnCapture.HC"$
 $LK,"::/Demo/Graphics/EdSprite.HC"$
 $LK,"::/Demo/PullDownMenu.HC"$
 $LK,"::/Demo/Graphics/Palette.HC"$
@@ -56,7 +56,7 @@ $LK,"::/Demo/Graphics/SpritePlot3D.HC"$
 $LK,"::/Demo/Graphics/Balloon.HC"$
 $LK,"::/Demo/Graphics/RotateTank.HC"$
 $LK,"::/Demo/Games/Wenceslas.HC"$
-$LK,"::/Demo/ScreenCodes.HC"$
+$LK,"::/Demo/ScrnCodes.HC"$
 $LK,"::/Demo/Graphics/PanText.HC"$
 $LK,"::/Demo/Graphics/CharAnimation.HC"$
 $LK,"::/Demo/Games/Maze.HC"$
@@ -152,7 +152,7 @@ $MA-X+PU,"::/Apps/Logic",LM="Cd(\"::/Apps/Logic\");Dir;View;\n"$
 $MA-X+PU,"::/Demo/Lectures",LM="Cd(\"::/Demo/Lectures\");Dir;View;\n"$
 $MA-X+PU,"::/Apps/Budget",LM="Cd(\"::/Apps/Budget\");Dir;View;\n"$
 $ID,-2$$TR,"TempleOS Specific"$
-$ID,2$$MA-X+PU,"::/Demo/AutoFile",LM="Cd(\"::/Demo/AutoFile\");Dir;View;\n"$
+$ID,2$$MA-X+PU,"::/Demo/InFile",LM="Cd(\"::/Demo/InFile\");Dir;View;\n"$
 $LK,"::/Demo/Print.HC"$
 $LK,"::/Demo/SubIntAccess.HC"$
 $LK,"::/Demo/ParenWarn.HC"$
diff --git a/Doc/DolDocOverview.DD b/Doc/DolDocOverview.DD
index d89d0d8..99a7caa 100644
--- a/Doc/DolDocOverview.DD
+++ b/Doc/DolDocOverview.DD
@@ -113,7 +113,7 @@ Examples:  to see
 5)$LK,"File find link searching for 5th 'CTRL'",A="FF:::/Kernel/KernelA.HH,CTRL:5"$
 6)$LK,"Manual page link",A="MN:Print"$
 7)$LK,"File line num link",A="FL:::/Kernel/KernelA.HH,200"$
-8)$LK,"File anchor link --  to see anchor after you click",A="FA:::/Kernel/KEnd.HC,Independent HeapCtrl Example"$
+8)$LK,"File anchor link --  to see anchor after you click",A="FA:::/Kernel/Mem/PageTables.HC,ExpandHeap"$
 9)$LK,"Bible Link",A="BF:Acts,2:3"$ The chapter:verse actually just does a text search.
 10) $LK,"Help Index Link",A="HI:Doc"$.
 11) $LK,"Address Link",A="AD:0x12000"$.
@@ -149,9 +149,9 @@ The default raw data type for the $FG,2$$$LS...$$$FG$ command is $FG,2$RT=I64$FG
 $ID,-2$$TR,"MA Macro"$
 $ID,2$A left macro arg, $FG,2$LM=""$FG$, will send text when the left mouse is clicked.
 
-A left auto string, $FG,2$+LA$FG$, flag will cause text to be sent to $LK,"AutoStr",A="MN:AutoStr"$() instead of $LK,"Auto",A="MN:Auto"$().  An AutoStr runs code.  Literal text is in quotes and messages are sent with $LK,"Msg",A="MN:Msg"$().  See $MA-X+PU,LM="Dir(\"::/Demo/AutoFile\");View;"$.
+A left in string, $FG,2$+LIS$FG$, flag will cause text to be sent to $LK,"InStr",A="MN:InStr"$() instead of $LK,"In",A="MN:In"$().  An InStr runs code.  Literal text is in quotes and messages are sent with $LK,"Msg",A="MN:Msg"$().  See $MA-X+PU,LM="Dir(\"::/Demo/InFile\");View;"$.
 
-Macro's are usually in your $LK,"~/PersonalMenu.DD"$ and have the '$FG,2$+X$FG$' flag set by $LK,"default",A="MN:DocInit"$.  Adding '$FG,2$-X$FG$' prevents the usual $FG,2$$FG$ from being sent (which exits the PersonalMenu screen).  Note: When you click a macro on the cmd line, it will go to the bottom and execute unless you cancel the $FG,2$$FG$ with a '$FG,2$-X$FG$'.
+Macro's are usually in your $LK,"~/PersonalMenu.DD"$ and have the '$FG,2$+X$FG$' flag set by $LK,"default",A="MN:DocInit"$.  Adding '$FG,2$-X$FG$' prevents the usual $FG,2$$FG$ from being sent (which exits the PersonalMenu scrn).  Note: When you click a macro on the cmd line, it will go to the bottom and execute unless you cancel the $FG,2$$FG$ with a '$FG,2$-X$FG$'.
 $ID,-2$$TR,"MU Menu Value"$
 $ID,2$A left expression arg, $FG,2$LE=$FG$, will return a number when clicked with the left mouse.
 
@@ -204,13 +204,13 @@ $ID,2$A PopUp flag on a $FG,2$MA$FG$ will cause the cmds to run in a new task, a
 $ID,-2$$TR,"+C Collapsed"$
 $ID,2$A collapsed flag on a $FG,2$TR$FG$ entry will cause it to start collapsed.  A $FG,2$-C$FG$ flag will make it start open.
 $ID,-2$$TR,"+X  (Exit)"$
-$ID,2$The exit flag will cause a $FG,2$$$MA...$$$FG$ macro to send an $FG,2$$FG$ before running to exit the PersonalMenu screen and return to the cmd prompt.  Actually, the default $FG,2$$$MA...$$$FG$ has an exit flag set so you add a $FG,2$-X$FG$ to turn-off $FG,2$ESC$FG$, for a $FG,2$+PU$FG$ pop-up macro.  If an entry is already at the cmd prompt, the $FG,2$+X$FG$ will movement to the bottom of the window.
+$ID,2$The exit flag will cause a $FG,2$$$MA...$$$FG$ macro to send an $FG,2$$FG$ before running to exit the PersonalMenu scrn and return to the cmd prompt.  Actually, the default $FG,2$$$MA...$$$FG$ has an exit flag set so you add a $FG,2$-X$FG$ to turn-off $FG,2$ESC$FG$, for a $FG,2$+PU$FG$ pop-up macro.  If an entry is already at the cmd prompt, the $FG,2$+X$FG$ will movement to the bottom of the window.
 $ID,-2$$TR,"+Q  (Abort Quit)"$
 $ID,2$A quit flag is similar to a $FG,2$+X$FG$ except a $FG,2$$FG$ instead of an $FG,2$$FG$ to exit.
 $ID,-2$$TR,"+Z Zero"$
 $ID,2$A zero flag on a $FG,2$HX$FG$ entry will cause the offset from zero.  A $FG,2$-X$FG$ will show the actual memory addr. By default, $FG,2$HX$FG$ has the zero flag set.
 $ID,-2$$TR,"+RD Refresh Data"$
-$ID,2$The Refresh Data flag on a $FG,2$DA$FG$ or a $FG,2$CB$FG$ makes the value on the screen updated continuously.
+$ID,2$The Refresh Data flag on a $FG,2$DA$FG$ or a $FG,2$CB$FG$ makes the value on the scrn updated continuously.
 $ID,-2$$TR,"+UD Update Data"$
 $ID,2$The Update Data flag on a $FG,2$DA$FG$ or a $FG,2$CB$FG$ makes the value in the $LK,"CDocEntry",A="MN:CDocEntry"$ updated when keys are typed on it.
 $ID,-2$$TR,"+TC Tag CallBack"$
diff --git a/Doc/FAQ.DD b/Doc/FAQ.DD
index 0ca2180..9bf8193 100644
--- a/Doc/FAQ.DD
+++ b/Doc/FAQ.DD
@@ -33,9 +33,9 @@ $ID,2$Files with names ending in $FG,2$.Z$FG$ are individually compressed using
 $ID,-2$$TR,"Is it open source?  How do I build it?"$
 $ID,2$TempleOS is 100% open src.  All the src code is included in the distro.  Use $LK,"BootHDIns",A="MN:BootHDIns"$() to compile the kernel and compiler.  The rest is $LK,"JIT Compiled",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ during boot.  See $LK,"::/StartOS.HC"$. 
 $ID,-2$$TR,"Where are object files?  How do I link?"$
-$ID,2$TempleOS does not use object files or a linker.  $LK,"AOT Compile Mode",A="FF:::/Doc/Glossary.DD,AOT Compile Mode"$ is used to directly create flat binary files, $FG,2$/Kernel.BIN.C$FG$ and $FG,2$/Compiler/Compiler.BIN.Z$FG$ with no object files and linking.$FG$  $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ place code in memory, ready to run, with no object files or linking.  Linking is done when $FG,2$BIN$FG$ modules are $LK,"Load",A="MN:Load"$()ed.
+$ID,2$TempleOS does not use object files or a linker.  $LK,"AOT Compile Mode",A="FF:::/Doc/Glossary.DD,AOT Compile Mode"$ is used to directly create flat binary files, $LK,"::/Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ and $LK,"::/Compiler/Compiler.BIN",A="FI:::/Compiler/Compiler.PRJ"$ with no object files and linking.$FG$  $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ place code in memory, ready to run, with no object files or linking.  Linking is done when $FG,2$BIN$FG$ modules are $LK,"Load",A="MN:Load"$()ed.
 $ID,-2$$TR,"What is the FPS refresh rate?"$
-$ID,2$The refresh rate is $TX,"30",D="WINMGR_FPS"$ frames-per-second.  That is how often TempleOS updates screen mem.  It is not syncronized to the hardware.
+$ID,2$The refresh rate is $TX,"30",D="WINMGR_FPS"$ frames-per-second.  That is how often TempleOS updates scrn mem.  It is not syncronized to the hardware.
 $ID,-2$$TR,"How does a task own the speaker?"$
 $ID,2$No task or application has a lock on the speaker so apps will interfere with each other.
 $ID,-2$$TR,"Why does it leak memory?"$
@@ -45,9 +45,9 @@ $ID,2$The editor periodically takes a snap-shot of the document for $FG,2$UNDO$F
 $ID,-2$$TR,"Why is it in text mode?"$
 $ID,2$TempleOS runs in $FG,2$VGA 640x480 16 color$FG$ graphics mode, not text mode.  It changes to this mode with a $LK,"BIOS call",A="FF:::/Kernel/KStart16.HC,INT 0x10"$ while in real-mode before it switches to 64-bit mode.  The text is $LK,"drawn by hand",A="MN:GrUpdateTextFG"$.  See $LK,"::/Kernel/FontStd.HC"$.  If graphics mode fails, it falls-back on text mode.  You can force text mode with an $LK,"Kernel config",A="FI:::/Kernel/KCfg.HC"$ option.
 $ID,-2$$TR,"Where is the kernel memory?"$
-$ID,2$TempleOS identity-maps all memory, all the time.  It is like paging is not used.  There is no special kernel $FG,2$high half$FG$ memory space.  TempleOS is ring-0-only, so everything is kernel, even user programs.  There is a special task called $FG,2$Adam$FG$ and he doesn't die, so his heap never gets freed.  That's as close to $FG,2$kernel memory$FG$ as it gets.  All code goes in the lowest 2 Gig of addresses, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used.  See $LK,"MemOverview",A="FI:::/Doc/MemOverview.DD"$.
+$ID,2$TempleOS identity-maps all memory, all the time.  It is like paging is not used.  There is no special kernel $FG,2$high half$FG$ memory space.  TempleOS is ring-0-only, so everything is kernel, even user programs.  There is a special task called $FG,2$Adam$FG$ and he doesn't die, so his heap never gets freed.  That's as close to $FG,2$kernel memory$FG$ as it gets.  All code goes in the lowest 2Gig of addresses, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used.  See $LK,"MemOverview",A="FI:::/Doc/MemOverview.DD"$.
 $ID,-2$$TR,"Why does it run code from stack addresses?"$
-$ID,2$TempleOS puts all code in the lowest 2 Gig, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used.  TempleOS is 64-bit, but $FG,2$2 Gig$FG$ is enough for code.  It actually puts global variables there, too, but you can turn that off with $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$.  $LK,"MAlloc",A="MN:MAlloc"$() allocs higher memory.
+$ID,2$TempleOS puts all code in the lowest 2Gig, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used.  TempleOS is 64-bit, but $FG,2$2Gig$FG$ is enough for code.  It actually puts global variables there, too, but you can turn that off with $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$.  $LK,"MAlloc",A="MN:MAlloc"$() allocs higher memory.
 $ID,-2$$TR,"How does it SYSCALL?"$
 $ID,2$TempleOS doesn't use software interrupts or $FG,2$SYSCALL$FG$ insts because it never needs to change out of ring-0, even running user programs.  Calls are always $FG,2$CALL REL32$FG$ insts.
 $ID,-2$$TR,"How do you fault-in stack?"$
diff --git a/Doc/Features.DD b/Doc/Features.DD
index 9daec2e..f260741 100644
--- a/Doc/Features.DD
+++ b/Doc/Features.DD
@@ -28,7 +28,7 @@
 
 * $FG,2$Graphics in source code$FG$, no resource files, $FG,2$graphic sprite editor$FG$. $FG,2$$FG$
 
-* $FG,2$64-bit pointers$FG$.  All memory, even more than 4 Gig, can be directly accessed by all tasks on all cores at all times.
+* $FG,2$64-bit pointers$FG$.  All memory, even more than 4Gig, can be directly accessed by all tasks on all cores at all times.
 
 * $FG,2$Ring-0-only$FG$.  Highest CPU privileged mode at all times.  No off-limits insts.  No time lost changing modes or address maps.  Switches tasks in half a microsecond.
 
@@ -38,7 +38,7 @@
 
 * Auto-completion, jump-to-source tool called $FG,2$AutoComplete$FG$ with Dictionary.
 
-* Window Manager.  Pan screen with $FG,2$$FG$.  Zoom screen on mouse cursor with $FG,2$$FG$/$FG,2$$FG$.
+* Window Manager.  Pan scrn with $FG,2$$FG$.  Zoom scrn on mouse cursor with $FG,2$$FG$/$FG,2$$FG$.
 
 * File Manager, $FG,2$$FG$.
 
diff --git a/Doc/FileMgr.DD b/Doc/FileMgr.DD
index e003a0d..25bfea5 100644
--- a/Doc/FileMgr.DD
+++ b/Doc/FileMgr.DD
@@ -1,13 +1,13 @@
 $WW,1$$FG,5$$TX+CX,"File Manager"$$FG$
 
 $FG,2$$FG$
-$ID,2$Sel files.
+$ID,2$Select files.
 $ID,-2$
 $FG,2$ or $FG$
 $ID,2$Delete file or tree.
 $ID,-2$
 $FG,2$ or $FG$
-$ID,2$Copy sel files to clipboard.
+$ID,2$Copy select files to clipboard.
 $ID,-2$
 $FG,2$ or $FG$
 $ID,2$Paste clipboard.
diff --git a/Doc/FileUtils.DD b/Doc/FileUtils.DD
index 8e16514..77b9ba2 100644
--- a/Doc/FileUtils.DD
+++ b/Doc/FileUtils.DD
@@ -4,7 +4,7 @@ File util $LK,"FilesFind",A="MN:FilesFind"$() wildcard mask consists of a single
 
  
 $FG,2$"/Kernel/*"$FG$		BaseDir: $FG,2$/Kernel$FG$	Mask: $FG,2$*$FG$
-$FG,2$"/Demo/*.BMP*;*.GRA*"$FG$	BaseDir: $FG,2$/Demo$FG$		Mask: $FG,2$*.BMP*$FG$ | $FG,2$*.GRA*$FG$
+$FG,2$"/Demo/*.BMP*;*.GR*"$FG$	BaseDir: $FG,2$/Demo$FG$		Mask: $FG,2$*.BMP*$FG$ | $FG,2$*.GR*$FG$
 $FG,2$"/*.DD*;!*/Bible*"$FG$	BaseDir: $FG,2$Root$FG$		Mask: $FG,2$*.DD*$FG$ but not $FG,2$*/Bible*$FG$
 
 See $LK,"FilesFindMatch",A="MN:FilesFindMatch"$().
@@ -18,9 +18,10 @@ Flags are either text or int values.
   $LK,"FUF_JUST_FILES",A="MN:FUF_JUST_FILES"$	$FG,2$+F$FG$ just files (Flattens trees)
   $LK,"FUF_CLUSTER_ORDER",A="MN:FUF_CLUSTER_ORDER"$	$FG,2$+O$FG$ sort by cluster (move head one direction)
   $LK,"FUF_JUST_TXT",A="MN:FUF_JUST_TXT"$		$FG,2$+T$FG$ just text files	: $LK,"FILEMASK_TXT",A="MN:FILEMASK_TXT"$
+  $LK,"FUF_JUST_DD",A="MN:FUF_JUST_DD"$		$FG,2$+$$$FG$ just $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ files	: $LK,"FILEMASK_DD",A="MN:FILEMASK_DD"$
   $LK,"FUF_JUST_SRC",A="MN:FUF_JUST_SRC"$		$FG,2$+S$FG$ just src files	: $LK,"FILEMASK_SRC",A="MN:FILEMASK_SRC"$
   $LK,"FUF_JUST_AOT",A="MN:FUF_JUST_AOT"$		$FG,2$+A$FG$ just aot files	: $LK,"FILEMASK_AOT",A="MN:FILEMASK_AOT"$
   $LK,"FUF_JUST_JIT",A="MN:FUF_JUST_JIT"$		$FG,2$+J$FG$ just jit files	: $LK,"FILEMASK_JIT",A="MN:FILEMASK_JIT"$
-  $LK,"FUF_JUST_GRA",A="MN:FUF_JUST_GRA"$		$FG,2$+G$FG$ just graphic files	: $LK,"FILEMASK_GRA",A="MN:FILEMASK_GRA"$
+  $LK,"FUF_JUST_GR",A="MN:FUF_JUST_GR"$		$FG,2$+G$FG$ just graphic files	: $LK,"FILEMASK_GR",A="MN:FILEMASK_GR"$
 
 See $LK,"ST_FILE_UTIL_FLAGS",A="MN:ST_FILE_UTIL_FLAGS"$ when used in calling program taking text flags.
diff --git a/Doc/GRAFiles.DD b/Doc/GRFiles.DD
similarity index 74%
rename from Doc/GRAFiles.DD
rename to Doc/GRFiles.DD
index 27f04f2..8972abc 100644
--- a/Doc/GRAFiles.DD
+++ b/Doc/GRFiles.DD
@@ -1,4 +1,4 @@
-$WW,1$GRA graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette.  Compression is the standard TempleOS$FG$ LZW compression.
+$WW,1$GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette.  Compression is the standard TempleOS$FG$ LZW compression.
 $HL,1$
 #define DCF_COMPRESSED		1 //This is the only saved flag.
 #define DCF_PALETTE		2
@@ -32,7 +32,7 @@ CBGR48 gr_palette_std[16]={
 0x555555555555,0x55555555FFFF,0x5555FFFF5555,0x5555FFFFFFFF,
 0xFFFF55555555,0xFFFF5555FFFF,0xFFFFFFFF5555,0xFFFFFFFFFFFF};
 
-class GRAFile
+class GRFile
 {
   I32	width;
   I32   width_internal; //Rounded-up to multiple of 8.
@@ -42,4 +42,4 @@ class GRAFile
   U8	body[];
 };$HL,0$
 
-See $LK,"DCSave",A="MN:DCSave"$(), $LK,"GRAWrite",A="MN:GRAWrite"$(), $LK,"DCLoad",A="MN:DCLoad"$(), and $LK,"GRARead",A="MN:GRARead"$().
+See $LK,"DCSave",A="MN:DCSave"$(), $LK,"GRWrite",A="MN:GRWrite"$(), $LK,"DCLoad",A="MN:DCLoad"$(), and $LK,"GRRead",A="MN:GRRead"$().
diff --git a/Doc/Glossary.DD b/Doc/Glossary.DD
index 97e36d2..d2c7b6c 100644
--- a/Doc/Glossary.DD
+++ b/Doc/Glossary.DD
@@ -121,6 +121,7 @@ $FG,2$Rst$FG$	Reset
 $FG,2$Rot$FG$	Rotation
 $FG,2$Rx$FG$	Receive
 $FG,2$Sched$FG$	Sceduler
+$FG,2$Scrn$FG$	Screen
 $FG,2$Sec$FG$	Second, Secondary
 $FG,2$Sect$FG$	Sector
 $FG,2$Sel$FG$	Select, Selected
@@ -139,23 +140,27 @@ $FG,2$Sync$FG$	Synchronization
 $FG,2$Sys$FG$	System
 $FG,2$Tbl$FG$	Table
 $FG,2$Term$FG$	Terminal
+$FG,2$Tmp$FG$	Temporary
 $FG,2$Tri$FG$	Triangle
 $FG,2$Tx$FG$	Transmit
 $FG,2$UAsm$FG$	Unassemble
 $FG,2$Val$FG$	Value
 $FG,2$Var$FG$	Variable
 $FG,2$Vect$FG$	Vector
+$FG,2$Vis$FG$	Visible
 $FG,2$Vol$FG$	Volume
 $FG,2$Win$FG$	Window
 $FG,2$Wiz$FG$	Wizard
 $ID,-2$$TR,"Task/Process/Thread"$
-$ID,2$There is no distinction between $FG,2$task$FG$, $FG,2$process$FG$ or $FG,2$thread$FG$.  The $FG,2$Fs$FG$ segment reg is kept pointing to the current task's $LK,"CTask",A="MN:CTask"$.  There is only one window per task, and only $FG,2$core0$FG$ tasks can have windows.  Each task has a code and data heap so memory is returned when it dies.  Each task has a $LK,"hash",A="HI:Hash"$ symbol table.
+$ID,2$There is no distinction between $FG,2$task$FG$, $FG,2$process$FG$ or $FG,2$thread$FG$.  The $FG,2$Fs$FG$ segment reg is kept pointing to the current task's $LK,"CTask",A="MN:CTask"$.  There is only one window per task, and only $FG,2$Core0$FG$ tasks can have windows.  Each task has a code and data heap so memory is returned when it dies.  Each task has a $LK,"hash",A="HI:Hash"$ symbol table.
+
+Since there is not friendly disk sharing and all tasks have the same address map, it might be accurate to call TempleOS, "multi-thread/single-process".  You run a single application process on $FG,2$Core0$FG$ and it can create threads on the same core or others.  If you run multiple processes, it should be safe, but one process will wait until another completely finishes a long disk access.  
 $ID,-2$$TR,"Adam Task"$
-$ID,2$This is Adam, as in Adam and Eve, the parent of all tasks and immortal.  This task is created at start-up and appears in the small window at the top beneath the user windows.  On it's heap are all memory objects which you don't want destroyed by a task's death.  When created, Adam runs the file $LK,"::/StartOS.HC"$.  When start-up is finished, the adam task enters a server mode where it accepts requests from other tasks.  The $LK,"Adam",A="MN:Adam"$("") routine will make Adam compile and run text src code.  $FG,2$#include$FG$ stmts can be sent to $LK,"Adam",A="MN:Adam"$(""), creating system-wide code and data which don't disappear when any particular task ends.
-$ID,-2$$TR,"Seth Task"$
-$ID,2$$FG,2$Seth$FG$ is Adam and Eve's child.  Each CPU core has an executive task called $FG,2$Seth$FG$ that is immortal.  The Adam task on $FG,2$CPU#0$FG$ is also it's $FG,2$Seth$FG$ task.
+$ID,2$This is Adam, as in Adam and Eve, the parent of all tasks.  Adam is immortal.  The adam task is created at start-up and appears in the small window at the top beneath the user terminal windows.  Since the Adam task is immortal, on Adam's heap go all memory objects which you don't want destroyed by any single task's death.  When created, Adam runs the file $LK,"::/StartOS.HC"$.  When start-up is finished, the adam task enters a server mode where it accepts requests from other tasks.  The $LK,"Adam",A="MN:Adam"$("") routine will make Adam compile and run text src code.  $FG,2$#include$FG$ stmts can be sent to $LK,"Adam",A="MN:Adam"$(""), creating system-wide code and data which are immortal.
+$ID,-2$$TR,"Seth Tasks"$
+$ID,2$In the Bible, $LK,"Seth",A="BF:Genesis,4:25"$$FG$ is Adam and Eve's child.  Each CPU core has an executive task called $FG,2$Seth$FG$ that is immortal.  The Adam task on $FG,2$Core0$FG$ is also its $FG,2$Seth$FG$ task.
 $ID,-2$$TR,"Code and Data Heaps"$
-$ID,2$TempleOS uses the asm $FG,2$CALL$FG$ inst, exclusively, and that inst is limited to calling routines $FG,2$+/-2 Gig$FG$ from the current code location.  To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest $FG,2$2 Gig$FG$ of memory, addresses $FG,2$00000000$FG$-$FG,2$7FFFFFFF$FG$.  The compiler and $LK,"Load",A="MN:Load"$()er alloc memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used.  When programs call $LK,"MAlloc",A="MN:MAlloc"$() is from the data heap, which in not limited in size, except by physical RAM memory.  You can alloc from any heap in any task at any time on any core, even making $LK,"independent",A="MN:Mem512Alloc"$ heaps.
+$ID,2$TempleOS uses the asm $FG,2$CALL$FG$ inst, exclusively, and that inst is limited to calling routines $FG,2$+/-2Gig$FG$ from the current code location.  To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest $FG,2$2Gig$FG$ of memory, addresses $FG,2$00000000$FG$-$FG,2$7FFFFFFF$FG$.  The compiler and $LK,"Load",A="MN:Load"$()er alloc memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used.  When programs call $LK,"MAlloc",A="MN:MAlloc"$() is from the data heap, which in not limited in size, except by physical RAM memory.  You can alloc from any heap in any task at any time on any core, even making $LK,"independent",A="MN:Mem512Alloc"$ heaps.
 $ID,-2$$TR,"Parent, Child and PopUp Tasks"$
 $ID,2$Often a task will $LK,"Spawn",A="MN:Spawn"$() or $LK,"PopUp",A="MN:PopUp"$() a task as a helper.  The helper is known as a child Task, though you can $LK,"Spawn",A="MN:Spawn"$ a task and assign it a different parent... like $FG,2$Adam$FG$.  Links are kept as to who's whose child, so when one task is $LK,"Kill",A="MN:Kill"$()ed the child helper tasks die, too.  You can get a report of current system tasks with $LK,"TaskRep",A="MN:TaskRep"$().  There is just one window per task, so child tasks are needed for pop-ups.
 $ID,-2$$TR,"HolyC"$
@@ -165,7 +170,7 @@ $ID,2$$FG,2$Ahead-of-Time$FG$ compiling is conventional compilation mode.  Do no
 
 In $FG,2$AOT$FG$ mode, $FG,2$.PRJ$FG$ files are compiled to $FG,2$.BIN$FG$ files, skipping $FG,2$.OBJ$FG$ files.  After compiling, $FG,2$.BIN$FG$ files are $LK,"Load",A="MN:Load"$()ed.
 
-There is no $FG,2$main()$FG$ routine.  Instead, stmts outside functions are automatically executed upon loading.  There is no way to unload except by killing the task.  To invoke $FG,2$AOT Compiled Mode$FG$, $LK,"Cmp",A="MN:Cmp"$() is used.  The $FG,2$Kernel$FG$ module and compiler are made in $FG,2$AOT$FG$ compiled mode.  See $LK,"BootHDIns",A="MN:BootHDIns"$()  which calls $LK,"MakeAll",A="MN:MakeAll"$() where $FG,2$Kernel.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$ are created.
+There is no $FG,2$main()$FG$ routine.  Instead, stmts outside functions are automatically executed upon loading.  There is no way to unload except by killing the task.  To invoke $FG,2$AOT Compiled Mode$FG$, $LK,"Cmp",A="MN:Cmp"$() is used.  The $FG,2$Kernel$FG$ module and compiler are made in $FG,2$AOT$FG$ compiled mode.  See $LK,"BootHDIns",A="MN:BootHDIns"$()  which calls $LK,"MakeAll",A="MN:MakeAll"$() where $LK,"::/Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ and $LK,"::/Compiler/Compiler.BIN",A="FI:::/Compiler/Compiler.PRJ"$ are created.
 $ID,-2$$TR,"JIT Compile Mode"$
 $ID,2$In $FG,2$just-in-time$FG$ mode, the compiler places code and data in memory alloced from the heap, incrementally, making them immediately ready for in-place execution.  This mode is used during cmd line operations.  When you $FG,2$#include$FG$ a file, it is compiled function by function and code ends-up all over in the memory, at least in the first 2Gig of memory.  The $LK,"ExeFile",A="MN:ExeFile"$() routine is the same as $FG,2$#include$FG$ but can be used in programs.  $LK,"ExePrint",A="MN:ExePrint"$() routine will compile and run a string.
 $ID,-2$$TR,"Compiler Intermediate Code"$
@@ -174,15 +179,24 @@ $ID,-2$$TR,"Drive/Partition"$
 $ID,2$There is no distinction between $FG,2$drive$FG$ or $FG,2$partition$FG$.  They are specified with a single letter from $FG,2$A$FG$-$FG,2$Z$FG$.
 
 '$FG,2$:$FG$' is the boot drive.
+'$FG,2$~$FG$' is the home drive.
+
+The letters are reserved for different uses.
+
+$FG,2$A$FG$-$FG,2$B$FG$ are RAM drives.
+$FG,2$C$FG$-$FG,2$L$FG$ are ATA hard drives.
+$FG,2$M$FG$-$FG,2$P$FG$ are ISO file read drives.
+$FG,2$Q$FG$-$FG,2$S$FG$ are ISO file write drives.
+$FG,2$T$FG$-$FG,2$Z$FG$ are ATAPI CD/DVD drives.
 
 For commands taking a drive letter as an argument, char $FG,2$0$FG$ is the current drive.
-$ID,-2$$LK,"AutoFile",A="HI:AutoFile"$
-$LK,"Bt, Bts, Btr, Btc, BEqu",A="HI:Bit"$
+$ID,-2$$LK,"Bt, Bts, Btr, Btc, BEqu",A="HI:Bit"$
 $LK,"Define",A="HI:Define"$
 $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$
 $LK,"Editor Link Types",A="MN:LK_FILE"$
 $LK,"files_find_mask",A="FI:::/Doc/FileUtils.DD"$
 $LK,"Hash Table",A="HI:Hash"$
+$LK,"InFile",A="HI:InFile"$
 $LK,"RedSea File System",A="FI:::/Doc/RedSea.DD"$
 $LK,"Sprite",A="HI:Graphics/Sprite"$
 $TR,"CLI, STI, PUSHFD, POPFD"$
@@ -196,7 +210,7 @@ $ID,2$$FG,5$*.???.Z$FG$
   These files are automatically compressed or uncompresses files when read or written.
 $FG,5$*.???.C$FG$
   Contiguous files--NOT compressed.
-$FG,5$*.DD.Z;*.DD;*.LOG.Z;*.LOG$FG$
+$FG,5$*.DD.Z;*.DD$FG$
   Text Files
 $FG,5$*.HC.Z;*.HC$FG$
   HolyC src files.  The default HolyC compiler type is $FG,2$.HC.Z$FG$.
@@ -208,21 +222,21 @@ $FG,5$*.MAP.Z;*.MAP$FG$
   Compiler "map" files
 $FG,5$*.BIN.Z;*.BIN.C;*.BIN$FG$
   Binary executable files, created by $LK,"Cmp",A="MN:Cmp"$() and read by $LK,"Load",A="MN:Load"$().
-$FG,5$*.DAT.Z;*.DAT$FG$
+$FG,5$*.DATA.Z;*.DATA$FG$
   Data files
 $FG,5$*.ISO$FG$
   CD/DVD image file--ISO9660.
-$FG,5$*.AUT.Z;*.AUT$FG$
-  $FG,2$AutoFile$FG$ Basically a HolyC program whose stdout goes to the input of a task when $LK,"AutoFile",A="MN:AutoFile"$() is called.
-$FG,5$*.GRA.Z;*.GRA$FG$
+$FG,5$*.IN.Z;*.IN$FG$
+  $FG,2$InFile$FG$ Basically a HolyC program whose stdout goes to the input of a task when $LK,"InFile",A="MN:InFile"$() is called.
+$FG,5$*.GR.Z;*.GR$FG$
   Graphics file
 
 $LK,"FILEMASK_TXT",A="MN:FILEMASK_TXT"$
 $LK,"FILEMASK_SRC",A="MN:FILEMASK_SRC"$
 $LK,"FILEMASK_AOT",A="MN:FILEMASK_AOT"$
 $LK,"FILEMASK_JIT",A="MN:FILEMASK_JIT"$
-$LK,"FILEMASK_GRA",A="MN:FILEMASK_GRA"$
-$ID,-2$$TR-C,"Naming Convention"$
+$LK,"FILEMASK_GR",A="MN:FILEMASK_GR"$
+$ID,-2$$TR,"Naming Convention"$
 $ID,2$Since there are no $FG,2$namespaces$FG$ and I don't plan to implement name spaces, I highly recommend putting a 2-3 character module code prefix on syms. e.g. $FG,2$WS$FG$, $FG,2$Doc$FG$, $FG,2$Lex$FG$
 
 $FG,5$ALL_CAPS$FG$
@@ -260,5 +274,5 @@ $ID,2$When two parts of a program have a common low-level routine, that routine
 $ID,-2$$TR,"user_data"$
 $ID,2$Many operating system structures have space set aside for you to store values.  You are on your own managing these with multiple applications and libraries.
 $ID,-2$$TR,"Multicore Core0/CoreAP"$
-$ID,2$Core0, has the $FG,2$Adam task$FG$, and it is the master.  The $FG,2$application processors$FG$ have an executive $FG,2$Seth tasks$FG$ and are the slave processors.  Only $FG,2$core0$FG$ tasks can have windows and can launch applications.  Slave cores are used if the application explicitly $LK,"Spawn",A="MN:Spawn"$s() a task or $LK,"JobQue",A="MN:JobQue"$() a job on them.
+$ID,2$Core0, has the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$, and it is the master.  The $FG,2$application processors$FG$ have an executive $LK,"Seth Tasks",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ and are the slave processors.  Only $FG,2$Core0$FG$ tasks can have windows and can launch applications.  Slave cores are used if the application explicitly $LK,"Spawn",A="MN:Spawn"$s() a task or $LK,"JobQue",A="MN:JobQue"$() a job on them.
 $ID,-2$
diff --git a/Doc/GraphicsOverview.DD b/Doc/GraphicsOverview.DD
index 7b756ee..ae2fccf 100644
Binary files a/Doc/GraphicsOverview.DD and b/Doc/GraphicsOverview.DD differ
diff --git a/Doc/GuideLines.DD b/Doc/GuideLines.DD
index 261847d..f7add04 100644
--- a/Doc/GuideLines.DD
+++ b/Doc/GuideLines.DD
@@ -14,7 +14,7 @@ $FG,2$/Compiler$FG$ The compiler module src code is found here.  The compiler is
 
 $FG,2$/Adam$FG$ The non-kernel part of the operating system is found here.  It is $FG,2$JIT$FG$ compiled during boot.  The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is the father of all tasks, like Adam and Eve.
 
-$FG,2$/0000Boot$FG$ Boot files go here.  Stage 2 of the TempleOS hard drive master boot loader, the old hard drive master boot record which is just blk#0, and the CD/DVD $FG,2$0000Kernel.BIN.C$FG$ file go here.  ASCII $FG,2$0000$FG$ is near the top, alphabetically, in case you use $TX,"MagicISO",HTML="http://www.magiciso.com"$.
+$FG,2$/0000Boot$FG$ Boot files go here.  Stage 2 of the TempleOS hard drive master boot loader, the old hard drive master boot record which is just blk#0, and the CD/DVD $LK,"0000Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ file go here.  ASCII $FG,2$0000$FG$ is near the top, alphabetically, in case you use $TX,"MagicISO",HTML="http://www.magiciso.com"$.
 
 
 
@@ -28,7 +28,7 @@ $LK,"~/PersonalNotes.DD"$ a personal note file viewed with the $FG,2$>1,(GR_HEIGHT-FONT_HEIGHT)>>1,
-  	"Score:%4d",score);  //Print score in the center of the screen.
+  	"Score:%4d",score);  //Print score in the center of the scrn.
   ...
 
 $WW,1$$FG$$ID,-2$
@@ -168,7 +168,7 @@ $ID,2$$FG,2$U0 Main()
   }
 }
 $FG$$ID,-2$
-* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK,"::/Demo/Lectures/Mem/PageTableEntries.HC"$.
+* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK,"IRQKbd",A="MN:IRQKbd"$().
 
 * A single quote can encompass multiple characters.  $FG,2$'ABC'$FG$ is equ to $FG,2$0x434241$FG$.  $LK,"PutChars",A="MN:PutChars"$() takes multiple characters.
 
diff --git a/Doc/InFile.DD b/Doc/InFile.DD
new file mode 100644
index 0000000..ed63e9d
--- /dev/null
+++ b/Doc/InFile.DD
@@ -0,0 +1,7 @@
+$WW,1$$FG,2$InFiles$FG$ are used to generate user input to automate operations.  The TempleOS tour is done with an $FG,2$InFile$FG$.  It reminds me of a Unix pipe because $FG,2$StdOut$FG$ of one gets chained into $FG,2$StdIn$FG$ of another.
+
+When an $FG,2$InFile$FG$ runs, a child task is $LK,"Spawn",A="MN:Spawn"$()ed which intercepts real user input and generates fake input.  InFiles are $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ programs run by the child whose stdout goes to the parent's input buffer.  $LK,"Msg",A="MN:Msg"$() can be included in an $FG,2$InFile$FG$ to send special keys or mouse cmds to the parent.  While an $FG,2$InFile$FG$ is running, the normal input gets diverted to the InFile task and can be filtered and sent back to the parent task.  Unless you are driving functions which prompt for data, you can probably use an $FG,2$#include$FG$ file in place of an $FG,2$InFile$FG$.
+
+See $LK,"::/Demo/InFile/INDir.IN"$.
+
+Note: $LK,"In",A="MN:In"$("") can be used if all you need is to send ASCII characters.  It differs from $LK,"InStr",A="MN:InStr"$().  You'll probably use $LK,"In",A="MN:In"$() a lot and not $LK,"InStr",A="MN:InStr"$().  With $LK,"In",A="MN:In"$(), for example, you can place answers to the prompts for recompiling the $FG,2$Kernel$FG$ module during $LK,"BootHDIns",A="MN:BootHDIns"$().
diff --git a/Doc/InputPointer.DD b/Doc/InputPointer.DD
index 55157dd..05f51dc 100644
--- a/Doc/InputPointer.DD
+++ b/Doc/InputPointer.DD
@@ -1,6 +1,6 @@
 $WW,1$"Input Ptr" is the mouse.  In the future, might be joystick or pad.
 
-$LK,"ip.pos.x",A="MN:ip"$ and $LK,"ip.pos.y",A="MN:ip"$ can be used to access the x and y coordinates of the input ptr.  They are relative to the screen, not window.  These can be used if you don't want to use msg passing.  $LK,"ip.pos.z",A="MN:ip"$ is the wheel.
+$LK,"ip.pos.x",A="MN:ip"$ and $LK,"ip.pos.y",A="MN:ip"$ can be used to access the x and y coordinates of the input ptr.  They are relative to the scrn, not window.  These can be used if you don't want to use msg passing.  $LK,"ip.pos.z",A="MN:ip"$ is the wheel.
 
 $LK,"ip.pos_text.x",A="MN:CIPStateGlbls"$ and $LK,"ip.pos_text.y",A="MN:CIPStateGlbls"$ are the text column and row of the input ptr.  See $LK,"::/Demo/Games/Maze.HC"$.
 
diff --git a/Doc/Install.DD b/Doc/Install.DD
index 759af5b..b1dedb6 100644
--- a/Doc/Install.DD
+++ b/Doc/Install.DD
@@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Installing TempleOS"$$FG$
 
 Burn a CD with software that supports ISO files.  Then, boot it.  It's a live CD, so you can look around with or without installing.
 
-Dual booting with another operating system is the best way to use TempleOS.  I only use it in a virtual machine because it won't boot natively on my machine, though.  For native dual booting, you need a partition for TempleOS.  Windows often comes with a restore disk that does not allow repartitioning.  I recommend connecting a spare additional hard drive and using the $FG,2$BIOS$FG$ to sel which drive to boot.
+Dual booting with another operating system is the best way to use TempleOS.  I only use it in a virtual machine because it won't boot natively on my machine, though.  For native dual booting, you need a partition for TempleOS.  Windows often comes with a restore disk that does not allow repartitioning.  I recommend connecting a spare additional hard drive and using the $FG,2$BIOS$FG$ to select which drive to boot.
 
 The $LK,"::/Misc/OSInstall.HC"$ script will automate much of this.  It runs if you boot the CD/DVD-ROM.
 
@@ -26,7 +26,7 @@ $ID,-2$
 $ID,-2$2) $LK,"Fmt",A="MN:Fmt"$($FG,2$'D'$FG$,$FG,2$TRUE,FALSE,FSt_FAT32$FG$)
 $ID,2$This command formats a drive with $FG,2$FAT32$FG$ or the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system type.  Use the drive letter of the partition in place of $FG,2$'D'$FG$.
 
-$BK,1$WARNING:$BK,0$  If you are upgrading, be sure not to lose the file, $FG,2$/0000Adam/Opt/Boot/OldMBR.BIN.C$FG$.
+$BK,1$WARNING:$BK,0$  If you are upgrading, be sure not to lose the file, $FG,2$/0000Boot/OldMBR.BIN.C$FG$.
 
 $ID,-2$3) $LK,"CopyTree",A="MN:CopyTree"$($FG,2$"T:/"$FG$,$FG,2$"D:/"$FG$)
 $ID,2$This command is used to copy files onto a hard drive partition from the CD/DVD.  Use the drive letter of the partition in place of $FG,2$'D'$FG$.
@@ -36,13 +36,12 @@ $ID,2$This command recompiles the source code on a drive and writes to the $UL,1
 
 $ID,-2$5) Use Linux's Grub or TempleOS' $LK,"BootMHDIns",A="MN:BootMHDIns"$($FG,2$'D'$FG$)
 $ID,2$
-The $LK,"BootMHDIns",A="MN:BootMHDIns"$() command places a boot loader on a drive.  It saves the old master boot record to $FG,2$/0000Adam/Opt/Boot/OldMBR.BIN.C$FG$ and replaces it.  When you boot, you will have the option of booting the old master boot record.  This command can be skipped if you already have a boot loader.  Be sure not to lose the copy of the old boot record, like if you reformat the drive.
+The $LK,"BootMHDIns",A="MN:BootMHDIns"$() command places a boot loader on a drive.  It saves the old master boot record to $FG,2$/0000Boot/OldMBR.BIN.C$FG$ and replaces it.  When you boot, you will have the option of booting the old master boot record.  This command can be skipped if you already have a boot loader.  Be sure not to lose the copy of the old boot record, like if you reformat the drive.
 
-Delete $FG,2$/0000Adam/Opt/Boot/OldMBR.BIN.C$FG$ if you want to get a fresh copy of a mbr, like if installing from your own custom CD containing it's own $FG,2$/0000Adam/Opt/Boot/OldMBR.BIN.C$FG$ onto a system with a non-TempleOS boot loader.
+Delete $FG,2$/0000Boot/OldMBR.BIN.C$FG$ if you want to get a fresh copy of a mbr, like if installing from your own custom CD containing it's own $FG,2$/0000Boot/OldMBR.BIN.C$FG$ onto a system with a non-TempleOS boot loader.
 
 If you have anti-virus software, it might object to having a different master boot record.
 $ID,-2$
-
 $FG,8$
 * "Windows" is a trademark owned by MicroSoft Corp.
 * "Linux" is a trademark owned by Linus Torvalds.
diff --git a/Doc/KeyDev.DD b/Doc/KeyDev.DD
index 5b4a0d3..d0b5a68 100644
--- a/Doc/KeyDev.DD
+++ b/Doc/KeyDev.DD
@@ -5,7 +5,7 @@ $LK,"KeyDevAdd",A="MN:KeyDevAdd"$() defines a putkey device with a priority.  "D
 Priority    Handler
 ---------- ---------
 $FG,2$0x20000000$FG$ $LK,"MyPutKey",A="MN:MyPutKey"$() user handler
-$FG,2$0x40000000$FG$ $LK,"KDInputFilterPutKey",A="MN:KDInputFilterPutKey"$() for $LK,"Auto",A="MN:Auto"$(), $LK,"AutoStr",A="MN:AutoStr"$(), and $LK,"AutoFile",A="MN:AutoFile"$() handling.
+$FG,2$0x40000000$FG$ $LK,"KDInputFilterPutKey",A="MN:KDInputFilterPutKey"$() for $LK,"In",A="MN:In"$(), $LK,"InStr",A="MN:InStr"$(), and $LK,"InFile",A="MN:InFile"$() handling.
 $FG,2$0x60000000$FG$ $LK,"KDRawPutKey",A="MN:KDRawPutKey"$() nonwindowed direct to video mem debug output. 
 $FG,2$0x80000000$FG$ $LK,"KDDocPutKey",A="MN:KDDocPutKey"$() standard document cmds
 
diff --git a/Doc/MemOverview.DD b/Doc/MemOverview.DD
index 9f3a1e9..891bd63 100644
--- a/Doc/MemOverview.DD
+++ b/Doc/MemOverview.DD
@@ -1,20 +1,22 @@
 $WW,1$$FG,5$$TX+CX,"Memory Overview"$$FG$
 
-Paging is practically not used.  64-bit mode requires paging, however, so it is identity-mapped, virtual identical to physical.  All tasks on all cores use the same page table map, just as though all addresses are physical addresses.  2 Meg page table entries are used.  Nothing swaps to disk.  You can adjust $LK,"MEM_MAPPED_SPACE",A="MN:MEM_MAPPED_SPACE"$ for more RAM.
+Paging is practically not used.  64-bit mode requires paging, however, so it is identity-mapped, virtual identical to physical.  All tasks on all cores use the same page table map, just as though all addresses are physical addresses.  2Meg or 1Gig page table entries are used.  Nothing swaps to disk.  You can adjust $LK,"MEM_MAPPED_SPACE",A="MN:MEM_MAPPED_SPACE"$ for more RAM.
 
-In TempleOS, the lowest 2 Gig of memory is called the $FG,2$code heap$FG$.  TempleOS's compiler always uses 32-bit signed relative JMP & CALL insts because 64-bit CALLs take two insts.  With signed +/- 32-bit values, code can only call a function within 2 Gig distance.  Therefore, TempleOS keeps all code in the lowest 2 Gig memory addresses including what would normally be called "the kernel".  Two Gig is plenty for code, don't worry.
+In TempleOS, the lowest 2Gig of memory is called the $FG,2$code heap$FG$.  TempleOS's compiler always uses 32-bit signed relative JMP & CALL insts because 64-bit CALLs take two insts.  With signed +/- 32-bit values, code can only call a function within 2Gig distance.  Therefore, TempleOS keeps all code in the lowest 2Gig memory addresses including what would normally be called "the kernel".  Two Gig is plenty for code, don't worry.
 
 You can create new, independent heaps using $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$().  Then, use the $LK,"CHeapCtrl",A="MN:CHeapCtrl"$ as the 2nd arg to $LK,"MAlloc",A="MN:MAlloc"$().  See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
 
-Memory alloced by a task will be freed when the task is killed.
+Memory alloced by a task will be freed when the task is killed.  The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is a task that never dies.  His memory is like kernel memory in other operating systems.  See $LK,"ACAlloc",A="MN:ACAlloc"$(), $LK,"AMAlloc",A="MN:AMAlloc"$(), $LK,"AMAllocIdent",A="MN:AMAllocIdent"$() and $LK,"AStrNew",A="MN:AStrNew"$().
 
-Eventually, memory will become fragmented, requiring a reboot.
+All of the regular page tables are marked, "cached".  When accessing hardware, however, you need uncached page table.  The lowest 4Gig of addresses have an alias used to access hardware located toward the top of mapped space.  It is currently at $FG,2$0x$TX,"3F00000000",D="DD_UNCACHED_ALIAS"$$FG$ but can change if $LK,"MEM_MAPPED_SPACE",A="MN:MEM_MAPPED_SPACE"$ is adjusted.  See $LK,"dev.uncached_alias",A="FF:::/Kernel/KEnd.HC,dev.uncached_alias"$.
+
+During an extended powered-on session of TempleOS, in theory, memory will become fragmented, requiring a reboot.  It has never happened to me.
 
 See $LK,"MemRep",A="MN:MemRep"$() and $LK,"::/Demo/MemDemo.HC"$.
 
 $FG,5$$TX+CX,"Single System-wide Mem Map"$
 
-$FG,2$ 0x00$TX,"00007C00",D="DD_KERNEL"$- 0x00$TX,"00035F3F",D="DD_KERNEL_END"$$FG$
+$FG,2$ 0x00$TX,"00007C00",D="DD_KERNEL"$- 0x00$TX,"0003654F",D="DD_KERNEL_END"$$FG$
 $ID,2$Kernel module, placed here by the boot-loader, $LK,"BOOT_RAM_BASE",A="MN:BOOT_RAM_BASE"$.
 $ID,-2$
 $FG,2$ 0x00$TX,"00096600",D="DD_BOOT_HIGH_LOC_DVD"$- 0x00$TX,"00096FFF",D="DD_BOOT_HIGH_LOC_DVD_END"$$FG$
@@ -29,14 +31,14 @@ $ID,-2$
 $FG,2$ 0x00000A0000- 0x00000BFFFF$FG$
 $ID,2$VGA graphics mem, marked as write-through cache in $LK,"text",A="MN:text"$.vga_alias.
 $ID,-2$
-$FG,2$ 0x00$TX,"00100000",D="DD_SYS_FIXED_AREA_BASE"$- 0x00$TX,"002037FF",D="DD_SYS_FIXED_AREA_END"$$FG$
-$ID,2$$LK,"CSysFixedArea",A="MN:CSysFixedArea"$ for page tables and misc.  $TX,"256 Gig",D="DD_MEM_MAPPED_SPACE_GIG"$ of address space mapped.
+$FG,2$ 0x00$TX,"00100000",D="DD_SYS_FIXED_AREA_BASE"$- 0x00$TX,"002035FF",D="DD_SYS_FIXED_AREA_END"$$FG$
+$ID,2$$LK,"CSysFixedArea",A="MN:CSysFixedArea"$ for page tables and misc.  $TX,"256Gig",D="DD_MEM_MAPPED_SPACE_GIG"$ of address space mapped.
 $ID,-2$
-$FG,2$ 0x00$TX,"00203800",D="DD_SYS_HEAP_BASE"$- 0x00$TX,"7FFFFFFF",D="DD_SYS_HEAP_LIMIT"$$FG$
+$FG,2$ 0x00$TX,"00203600",D="DD_SYS_HEAP_BASE"$- 0x00$TX,"7FFFFFFF",D="DD_SYS_HEAP_LIMIT"$$FG$
 $ID,2$Code Heap mem.
 $ID,-2$
 $FG,2$             - 0x007FFFFFFF$FG$
-$ID,2$Data Heap mem.  (This exists if there is less than 2 Gig of code heap.)
+$ID,2$Data Heap mem.  (This exists if there is less than 2Gig of code heap.)
 $ID,-2$
 $FG,2$ 0x00E0000000- 0x00FFFFFFFF$FG$
 $ID,2$32-bit devices could alloc memory at 0xF0000000 going up, but this is wrong, since some PCs already have devices at 0xF0000000.  No PCI devices are supported, so $LK,"Mem32DevAlloc",A="MN:Mem32DevAlloc"$() flaws are not an issue.
@@ -46,15 +48,27 @@ $FG,2$ 0x0100000000-~0x$TX,"3FFFFFFFFF",D="DD_MEM_MAPPED_SPACE_END"$$FG$
 $ID,2$Data Heap mem.  (The physical memory that exists in this range is data heap.)
 $ID,-2$
 $FG,2$ 0x$TX,"3F00000000",D="DD_UNCACHED_ALIAS"$- 0x$TX,"3FFFFFFFFF",D="DD_MEM_MAPPED_SPACE_END"$$FG$
-$ID,2$Uncached alias of first 4 Gig.  (For 32-bit device access.)
+$ID,2$Uncached alias of first 4Gig.  (For 32-bit device access.)
 $ID,-2$
 $FG,2$             - 0x$TX,"3FFFFFFFFF",D="DD_MEM_MAPPED_SPACE_END"$$FG$
-$ID,2$64-bit devices are alloced with $LK,"Mem64DevAlloc",A="MN:Mem64DevAlloc"$() counting bwd from $TX,"256 Gig",D="DD_MEM_MAPPED_SPACE_GIG"$, but no PCI devices are actually supported$WW,0$.
+$ID,2$64-bit devices are alloced with $LK,"Mem64DevAlloc",A="MN:Mem64DevAlloc"$() counting bwd from $TX,"256Gig",D="DD_MEM_MAPPED_SPACE_GIG"$, but no PCI devices are actually supported$WW,0$.
 $ID,-2$
 
 
-$WW,1$* Note: There is a break in the data-heap block pool.  This has no effect except the obvious effect that fragmentation has on contiguous requests.  I can $LK,"MAlloc",A="MN:MAlloc"$() an 8 Gig chunk on my 12 Gig machine.
+$WW,1$* Note: There is a break in the data-heap block pool.  This has no effect except the obvious effect that fragmentation has on contiguous requests.  I can $LK,"MAlloc",A="MN:MAlloc"$() an 8Gig chunk on my 12Gig machine.  I can $LK,"MAlloc",A="MN:MAlloc"$() an 32Gig chunk on my 64Gig machine.  
 
-* Note: For systems with less than 2 Gig RAM, the code and data heap block pools are the same.  For systems with 2-4 Gig of RAM, the code heap is 1/4 of the total.  See $LK,"BlkPoolsInit",A="MN:BlkPoolsInit"$().
+* Note: For systems with less than 2Gig RAM, the code and data heap block pools are the same.  For systems with 2-4Gig of RAM, the code heap is 1/4 of the total.  See $LK,"BlkPoolsInit",A="MN:BlkPoolsInit"$().
 
-* See $LK,"Independent HeapCtrl Example",A="FA:::/Kernel/KEnd.HC,Independent HeapCtrl Example"$.
+
+
+$FG,5$$TX+CX,"History"$$FG$
+
+In 2003, I wanted to make a no-paging ring-0-only 64-bit operating system for super speed with simplicity and full access.  With paging, every memory request requires 5 accesses -- it must access the address itself, 4K, 2Meg, 1Gig, and 512Gig page tables, but the CPU's translation look-aside buffer mostly removes the penalty for using paging.  So, I did not want to use paging, but long mode requires it.  I did the next best thing -- I identity-mapped everything and achieved the simplicity I was after with subtle performance boosts, not wasting time changing address maps.  And, I look forward to the day I command Intel to make an optimized no-paging long mode.
+
+I needed VGA A0000-BFFFF memory to be write-through and 0xE0000000-0xFFFFFFFF to be uncached for various devices.  All 64-bit computers allow stopping address translation at 2Meg page size, not using 4K.  I wanted to use 2Meg for everything because it's faster, with one less level of page tables.  I had to make A0000-BFFFF write-through, though, so I could not use 2Meg size on the lowest page.  I did the lowest 2Meg area as 4K pages.  I also unmapped the first 4K to cause a fault when dereferencing NULL.
+
+In 2016, I came-up with an alternate idea.  I double mapped the lowest memory with an alias that was uncached.  Accessing the lowest 2Meg area directly was cached but the alias I created up at the $LK,"top of address space",A="MN:MEM_MAPPED_SPACE"$ was uncached.  Unfortunately, I could no longer boast of the simplicity of identity mapping everything.  Since many of my users are familiar with A0000-BFFFF, it is actually pretty seriously unfortunate that they cannot use the easy-to-understand numbers of A0000-BFFFF, but must access the relocated alias location.  See $LK,"text.vga_alias",A="FF:::/Kernel/KEnd.HC,text.vga_alias"$.  I also no longer cause a fault when dereferencing NULL.
+
+Then, I switched to 1Gig page sizes.  For the lowest 4Gig, I set-up an alias up at the $LK,"top of address space",A="MN:MEM_MAPPED_SPACE"$.  Not all computers support 1Gig page tables, however, so I also support 2Meg.
+
+My original plan was to allow changing the page tables as needed, so I had code for taking control of 2Meg pages and marking them uncached or whatever.  When I did a HDAudio driver, I requested some 32-bit address space as uncached.  Today, all of the first 4Gig can be accessed without caching at the $LK,"dev.uncached_alias",A="FF:::/Kernel/KEnd.HC,dev.uncached_alias"$.
diff --git a/Doc/Menus.DD b/Doc/Menus.DD
index ed946fc..a760998 100644
--- a/Doc/Menus.DD
+++ b/Doc/Menus.DD
@@ -1,4 +1,4 @@
-$WW,1$A pull-down menu appears when you move the mouse to the top of the screen.  Menus are created with $LK,"MenuPush",A="MN:MenuPush"$(), $LK,"MenuFilePush",A="MN:MenuFilePush"$(), $LK,"MenuNew",A="MN:MenuNew"$() or $LK,"MenuFile",A="MN:MenuFile"$() and assigned to $FG,4$Fs->cur_menu$FG$.  The format is:
+$WW,1$A pull-down menu appears when you move the mouse to the top of the scrn.  Menus are created with $LK,"MenuPush",A="MN:MenuPush"$(), $LK,"MenuFilePush",A="MN:MenuFilePush"$(), $LK,"MenuNew",A="MN:MenuNew"$() or $LK,"MenuFile",A="MN:MenuFile"$() and assigned to $FG,4$Fs->cur_menu$FG$.  The format is:
 
 $FG,2$
 File 
diff --git a/Doc/MultiCore.DD b/Doc/MultiCore.DD
index c12b77c..705523a 100644
--- a/Doc/MultiCore.DD
+++ b/Doc/MultiCore.DD
@@ -2,11 +2,11 @@ $WW,1$TempleOS does master-slave multicore instead of SMP.  $FG,2$Core0$FG$ is t
 
 There are multicore safe locks for file access and heap allocations, however, so TempleOS is symmetrical in some sense.  See $LK,"::/Demo/MultiCore/LoadTest.HC"$.
 
-Only tasks on $FG,2$core0$FG$ can have windows, but other cores can help render them.
+Only tasks on $FG,2$Core0$FG$ can have windows, but other cores can help render them.
 
-Each core has an executive $FG,2$seth task$FG$ which is the father of all tasks on that core.  Adam is the seth task on core 0.
+Each core has an executive $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ which is the father of all tasks on that core.  $LK,"Adam",A="FF:::/Doc/Glossary.DD,Adam Task"$ is the $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ on $FG,2$Core0$FG$.
 
-You give a job to a seth task with $LK,"JobQue",A="MN:JobQue"$() and get the res with $LK,"JobResGet",A="MN:JobResGet"$().  You spawn a task on another core with $LK,"Spawn",A="MN:Spawn"$().
+You give a job to a $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ with $LK,"JobQue",A="MN:JobQue"$() and get the res with $LK,"JobResGet",A="MN:JobResGet"$().  You spawn a task on another core with $LK,"Spawn",A="MN:Spawn"$().
 
 Note: You must use the $FG,2$LOCK$FG$ asm prefix when changing shared structures in a multicore environment.  The $LK,"LBts",A="MN:LBts"$(), $LK,"LBtr",A="MN:LBtr"$() and $LK,"LBtc",A="MN:LBtc"$() insts have $FG,2$LOCK$FG$ prefixes.  The compiler has a $FG,2$lock{}$FG$ feature but it doesn't work well.  See $LK,"::/Demo/MultiCore/Lock.HC"$.
 
diff --git a/Doc/Options.DD b/Doc/Options.DD
index 27028bd..4814e23 100644
--- a/Doc/Options.DD
+++ b/Doc/Options.DD
@@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Compiler Options"$$FG$
 
 Use $LK,"Option",A="MN:Option"$().  You might need to do $FG,2$#exe {Option();}$FG$.
 
-$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ without this option, global vars are placed in the code heap which is limited to 2 Gig.  In $FG,2$AOT$FG$ modules, global vars take-up room in the $FG,2$.BIN$FG$ file, so you might want to use this option, instead.  You might wish to turn it on and off around specific vars.  A disadvantage of data heap global vars in $FG,2$AOT$FG$ modules is they can't be initialized.
+$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ without this option, global vars are placed in the code heap which is limited to 2Gig.  In $FG,2$AOT$FG$ modules, global vars take-up room in the $FG,2$.BIN$FG$ file, so you might want to use this option, instead.  You might wish to turn it on and off around specific vars.  A disadvantage of data heap global vars in $FG,2$AOT$FG$ modules is they can't be initialized.
 
 $LK,"OPTf_EXTERNS_TO_IMPORTS",A="MN:OPTf_EXTERNS_TO_IMPORTS"$ and $LK,"OPTf_KEEP_PRIVATE",A="MN:OPTf_KEEP_PRIVATE"$ are strange options, you'll never need.  They're to allow the same header file for $FG,2$Kernel$FG$ to act as $FG,2$extern$FG$s when compiling itself and $FG,2$import$FG$s when compiled by $FG,2$AOT$FG$ modules.
 
diff --git a/Doc/Print.DD b/Doc/Print.DD
index 5ea73f9..5562ef3 100644
--- a/Doc/Print.DD
+++ b/Doc/Print.DD
@@ -56,16 +56,16 @@ $LK,"MStrPrint",A="MN:MStrPrint"$(U8 *fmt,...) is like $LK,"StrPrint",A="MN:StrP
 
 $LK,"CatPrint",A="MN:CatPrint"$(U8 *_dst,U8 *fmt,...) concatenates a formated string.
 
-$LK,"Auto",A="MN:Auto"$(U8 *fmt,...) sends text to the current task's input buffer.
-$LK,"AutoStr",A="MN:AutoStr"$(U8 *fmt,...) sends text of an $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse cmds.
+$LK,"In",A="MN:In"$(U8 *fmt,...) sends text to the current task's input buffer.
+$LK,"InStr",A="MN:InStr"$(U8 *fmt,...) sends text of an $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ to the keyboard stream of the current TASK but can also do mouse cmds.
 
 $LK,"XTalk",A="MN:XTalk"$(CTask *task,U8 *fmt,...) and text to another task's input buffer.
-$LK,"XTalkStr",A="MN:XTalkStr"$(CTask *task,U8 *fmt,...) sends text of an $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$ to the keyboard stream of another TASK but can also do mouse cmds.
+$LK,"XTalkStr",A="MN:XTalkStr"$(CTask *task,U8 *fmt,...) sends text of an $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ to the keyboard stream of another TASK but can also do mouse cmds.
 
 $LK,"DocPrint",A="MN:DocPrint"$(CDoc *doc,U8 *fmt,...) sends text to a document.  You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$.  See $LK,"::/Demo/Dsk/FPrintF.HC"$.
 
-$LK,"Adam",A="MN:Adam"$(U8 *fmt,...) sends text to the adam task to be compiled and run.
-$LK,"AdamLog",A="MN:AdamLog"$(U8 *fmt,...) and $LK,"AdamErr",A="MN:AdamErr"$(U8 *fmt,...) send text to the adam task to be displayed.
+$LK,"Adam",A="MN:Adam"$(U8 *fmt,...) sends text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ to be compiled and run.
+$LK,"AdamLog",A="MN:AdamLog"$(U8 *fmt,...) and $LK,"AdamErr",A="MN:AdamErr"$(U8 *fmt,...) send text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ to be displayed.
 
 $LK,"StreamPrint",A="MN:StreamPrint"$(U8 *fmt,...) sends text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk.
 
@@ -75,9 +75,9 @@ $LK,"TextPrint",A="MN:TextPrint"$(CTask *task,I64 x,I64 y,I64 attr,U8 *fmt,...)
 
 $LK,"ExePrint",A="MN:ExePrint"$(U8 *fmt,...) compiles and execute a string.  Note: It returns the res of the last executed expression.
 
-$LK,"AFPrint",A="MN:AFPrint"$(I64 ms,U8 *fmt,...) $LK,"PutChars",A="MN:PutChars"$()s one at a time with a delay.
+$LK,"InPrint",A="MN:InPrint"$(I64 ms,U8 *fmt,...) $LK,"PutChars",A="MN:PutChars"$()s one at a time with a delay.
 
-$LK,"RawPrint",A="MN:RawPrint"$(I64 ms,U8 *fmt,...) sends direct to screen memory, bypassing window manager.
+$LK,"RawPrint",A="MN:RawPrint"$(I64 ms,U8 *fmt,...) sends direct to scrn memory, bypassing window manager.
 
 $LK,"User",A="MN:User"$(U8 *fmt,...) Spawns a user and execute a string on start-up.
 
diff --git a/Doc/Profiler.DD b/Doc/Profiler.DD
index 36dd2c8..c564e0b 100644
--- a/Doc/Profiler.DD
+++ b/Doc/Profiler.DD
@@ -1,4 +1,4 @@
-$WW,1$The profiler records where the CPU was executing when the $TX,"1000 Hz",D="DD_JIFFY_HZ"$ timer interrupt occured, so you can learn where time is spent.
+$WW,1$The profiler records where the CPU was executing when the $TX,"1000Hz",D="DD_JIFFY_HZ"$ timer interrupt occured, so you can learn where time is spent.
 
 Use the $LK,"Prof",A="MN:Prof"$() depth argument to record a hit in the N routines which called the current routine, as well.
 
diff --git a/Doc/Requirements.DD b/Doc/Requirements.DD
index 3e87d4d..cea2773 100644
--- a/Doc/Requirements.DD
+++ b/Doc/Requirements.DD
@@ -10,7 +10,7 @@ $FG,5$Supported Hardware$FG$
 
 * Most$FG$ keyboards and mice.
 
-* Minimum $TX,"512 Meg",D="DD_MEM_MIN_MEG"$ RAM; Maximum $TX,"256 Gig",D="DD_MEM_MAPPED_SPACE_GIG"$ RAM ($LK,"easily increased",A="MN:MEM_MAPPED_SPACE"$).
+* Minimum $TX,"512Meg",D="DD_MEM_MIN_MEG"$ RAM; Maximum $TX,"256Gig",D="DD_MEM_MAPPED_SPACE_GIG"$ RAM ($LK,"easily increased",A="MN:MEM_MAPPED_SPACE"$).
 
 * Internal PC Speakers.
 
diff --git a/Doc/ScopingLinkage.DD b/Doc/ScopingLinkage.DD
index 5a91f44..03811f1 100644
--- a/Doc/ScopingLinkage.DD
+++ b/Doc/ScopingLinkage.DD
@@ -1,120 +1,120 @@
-$PURPLE$$TX+CX,"Scoping and Linkage"$$FG$
+$FG,5$$TX+CX,"Scoping and Linkage"$$FG$
 $WW,1$
 $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ makes use of the current task's hash sym table and its parent tasks' tables.  It fetches syms from parent tasks' tables if not found locally in the current task's table and it places new syms in the current task's table.  Conceptually, syms are at the scope of environment vars in other operating systems.
 
-When a sym is placed into a table, older syms with ident names will be overshadowed if they exist.  Duplicates are not allowed in many cases, especially in asm blks.  Dupicates are allowed, by design in other cases, so that you can repeatedly $GREEN$#include$FG$ the same file from the cmd line while developing it.  Or, so you can repeatedly declare a function with a standard name, like $GREEN$DrawIt()$FG$.  This case might occur when the $GREEN$adam task$FG$ is starting-up loading-in many little utilities.
+When a sym is placed into a table, older syms with ident names will be overshadowed if they exist.  Duplicates are not allowed in many cases, especially in asm blks.  Dupicates are allowed, by design in other cases, so that you can repeatedly $FG,2$#include$FG$ the same file from the cmd line while developing it.  Or, so you can repeatedly declare a function with a standard name, like $FG,2$DrawIt()$FG$.  This case might occur when the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$ is starting-up loading-in many little utilities.
 
-$GREEN$extern$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to an existing sym of the same name if it exists in the sym table (just in just-in-time code).  It also can be used to generate a fwd reference.
+$FG,2$extern$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to an existing sym of the same name if it exists in the sym table (just in just-in-time code).  It also can be used to generate a fwd reference.
 
-$GREEN$import$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to a sym of the same name imported from the task's sym table at $LK,"Load",A="MN:Load"$() time.  If no sym exists to bind to at $LK,"Load",A="MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined.
+$FG,2$import$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to a sym of the same name imported from the task's sym table at $LK,"Load",A="MN:Load"$() time.  If no sym exists to bind to at $LK,"Load",A="MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined.
 
 $WW,1$
-$GREEN$_extern$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to an existing sym, of a $BK,1$different$BK,0$ name.  It must exists in the sym table.  Basically, this binds C to asm.
+$FG,2$_extern$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to an existing sym, of a $BK,1$different$BK,0$ name.  It must exists in the sym table.  Basically, this binds C to asm.
 
-$GREEN$_import$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to a sym, of a $BK,1$different$BK,0$ name imported from the task's sym table at $LK,"Load",A="MN:Load"$() time.  If no sym exists to bind to at $LK,"Load",A="MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined.  Basically, this binds C to asm from elsewhere.
+$FG,2$_import$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to a sym, of a $BK,1$different$BK,0$ name imported from the task's sym table at $LK,"Load",A="MN:Load"$() time.  If no sym exists to bind to at $LK,"Load",A="MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined.  Basically, this binds C to asm from elsewhere.
 
 
-$WW,0$$PURPLE$Ahead of Time Compilation$FG$
-                    $GREEN$G$FG$lobalScope/$GREEN$F$FG$unctionScope
-                    | $GREEN$C$FG$odeHeap/$GREEN$D$FG$ataHeap/$GREEN$S$FG$tack/$GREEN$R$FG$egister
-                    | | TaskHashEntry:Export$GREEN$S$FG$ysSym/$GREEN$D$FG$efine/$GREEN$F$FG$unction/$GREEN$C$FG$lass
-                    | | | UsageScope: $GREEN$M$FG$odule/$GREEN$A$FG$smLocal/Asm$GREEN$B$FG$lk/$GREEN$T$FG$askAndChildren/$GREEN$F$FG$unction
-                    | | | |UsageScope: $GREEN$G$FG$lbl/Asm$GREEN$L$FG$ocal/$GREEN$R$FG$emainder/$GREEN$g$FG$lblThisBlkAndRemainder
-                    | | | || $GREEN$S$FG$taticVarInit/$GREEN$D$FG$ynamicVarInitAllowed/$GREEN$N$FG$oInitAllowed
+$WW,0$$FG,5$Ahead of Time Compilation$FG$
+                    $FG,2$G$FG$lobalScope/$FG,2$F$FG$unctionScope
+                    | $FG,2$C$FG$odeHeap/$FG,2$D$FG$ataHeap/$FG,2$S$FG$tack/$FG,2$R$FG$egister
+                    | | TaskHashEntry:Export$FG,2$S$FG$ysSym/$FG,2$D$FG$efine/$FG,2$F$FG$unction/$FG,2$C$FG$lass
+                    | | | UsageScope: $FG,2$M$FG$odule/$FG,2$A$FG$smLocal/Asm$FG,2$B$FG$lk/$FG,2$T$FG$askAndChildren/$FG,2$F$FG$unction
+                    | | | |UsageScope: $FG,2$G$FG$lbl/Asm$FG,2$L$FG$ocal/$FG,2$R$FG$emainder/$FG,2$g$FG$lblThisBlkAndRemainder
+                    | | | || $FG,2$S$FG$taticVarInit/$FG,2$D$FG$ynamicVarInitAllowed/$FG,2$N$FG$oInitAllowed
                     | | | || | Are dups allowed within the namespace? A dup overshadows the original.
-                    | | | || | $GREEN$D$FG$upsAllowed/$GREEN$N$FG$oDups/NoDupsBut$GREEN$P$FG$ad/$GREEN$W$FG$arningUnlessClosedOut
+                    | | | || | $FG,2$D$FG$upsAllowed/$FG,2$N$FG$oDups/NoDupsBut$FG,2$P$FG$ad/$FG,2$W$FG$arningUnlessClosedOut
 
-asm export $GREEN$label::$FG$  G C S MG   N
-asm        $GREEN$label:$FG$   G C   MG   N
-asm local  $GREEN$@@label:$FG$ G C   AL   N
-asm $GREEN$IMPORT label;$FG$   G C   MR   N
-asm export $GREEN$label::$FG$  F C S BG   N
-asm        $GREEN$label:$FG$   F C   BG   N
-asm local  $GREEN$@@label:$FG$ F C   AL   N
-asm $GREEN$IMPORT label;$FG$   F C   BR   N
-C   goto   $GREEN$label:$FG$   F C   FG   N
+asm export $FG,2$label::$FG$  G C S MG   N
+asm        $FG,2$label:$FG$   G C   MG   N
+asm local  $FG,2$@@label:$FG$ G C   AL   N
+asm $FG,2$IMPORT label;$FG$   G C   MR   N
+asm export $FG,2$label::$FG$  F C S BG   N
+asm        $FG,2$label:$FG$   F C   BG   N
+asm local  $FG,2$@@label:$FG$ F C   AL   N
+asm $FG,2$IMPORT label;$FG$   F C   BR   N
+C   goto   $FG,2$label:$FG$   F C   FG   N
 
-           $GREEN$#define$FG$  x     MR   D
+           $FG,2$#define$FG$  x     MR   D
            function G C S MR   D
            var      F R   FR   N
            var      F S   FR   N
-$GREEN$static$FG$     var      F C   FR D N
+$FG,2$static$FG$     var      F C   FR D N
            var      G C S MR D D
            var      G D   MR N D
-           $GREEN$class$FG$    G     MR   D
+           $FG,2$class$FG$    G     MR   D
 class      member   G     MR   P
-$GREEN$extern     class$FG$    G     MR   D
-$GREEN$extern$FG$     function G C   MR   W
-$GREEN$import$FG$     function G C   MR   D
-$GREEN$import$FG$     var      G C   MR   D
-$GREEN$_extern$FG$    function G C   MR   D
-$GREEN$_extern$FG$    var      G C   MR   D
-$GREEN$_import$FG$    function G C   MR   D
-$GREEN$_import$FG$    var      G C   MR   D
+$FG,2$extern     class$FG$    G     MR   D
+$FG,2$extern$FG$     function G C   MR   W
+$FG,2$import$FG$     function G C   MR   D
+$FG,2$import$FG$     var      G C   MR   D
+$FG,2$_extern$FG$    function G C   MR   D
+$FG,2$_extern$FG$    var      G C   MR   D
+$FG,2$_import$FG$    function G C   MR   D
+$FG,2$_import$FG$    var      G C   MR   D
 
 
-$PURPLE$Just in Time Compilation$FG$
-                    $GREEN$G$FG$lobalScope/$GREEN$F$FG$unctionScope
-                    | $GREEN$C$FG$odeHeap/$GREEN$D$FG$ataHeap/$GREEN$S$FG$tack/$GREEN$R$FG$egister
-                    | | TaskHashEntry:Export$GREEN$S$FG$ysSym/$GREEN$D$FG$efine/$GREEN$F$FG$unction/$GREEN$C$FG$lass
-                    | | | UsageScope: $GREEN$M$FG$odule/$GREEN$A$FG$smLocal/Asm$GREEN$B$FG$lk/$GREEN$T$FG$askAndChildren/$GREEN$F$FG$unction
-                    | | | |UsageScope: $GREEN$G$FG$lbl/Asm$GREEN$L$FG$ocal/$GREEN$R$FG$emainder/$GREEN$g$FG$lblThisBlkAndRemainder
-                    | | | || $GREEN$S$FG$taticVarInit/$GREEN$D$FG$ynamicVarInitAllowed/$GREEN$N$FG$oInitAllowed
+$FG,5$Just in Time Compilation$FG$
+                    $FG,2$G$FG$lobalScope/$FG,2$F$FG$unctionScope
+                    | $FG,2$C$FG$odeHeap/$FG,2$D$FG$ataHeap/$FG,2$S$FG$tack/$FG,2$R$FG$egister
+                    | | TaskHashEntry:Export$FG,2$S$FG$ysSym/$FG,2$D$FG$efine/$FG,2$F$FG$unction/$FG,2$C$FG$lass
+                    | | | UsageScope: $FG,2$M$FG$odule/$FG,2$A$FG$smLocal/Asm$FG,2$B$FG$lk/$FG,2$T$FG$askAndChildren/$FG,2$F$FG$unction
+                    | | | |UsageScope: $FG,2$G$FG$lbl/Asm$FG,2$L$FG$ocal/$FG,2$R$FG$emainder/$FG,2$g$FG$lblThisBlkAndRemainder
+                    | | | || $FG,2$S$FG$taticVarInit/$FG,2$D$FG$ynamicVarInitAllowed/$FG,2$N$FG$oInitAllowed
                     | | | || | Are dups allowed within the namespace? A dup overshadows the original.
-                    | | | || | $GREEN$D$FG$upsAllowed/$GREEN$N$FG$oDups/NoDupsBut$GREEN$P$FG$ad/$GREEN$W$FG$arningUnlessClosedOut
+                    | | | || | $FG,2$D$FG$upsAllowed/$FG,2$N$FG$oDups/NoDupsBut$FG,2$P$FG$ad/$FG,2$W$FG$arningUnlessClosedOut
 
-asm export $GREEN$label::$FG$  G C S Tg   N
-asm        $GREEN$label:$FG$   G C   BG   N
-asm local  $GREEN$@@label:$FG$ G C   AL   N
-asm $GREEN$IMPORT label;$FG$   G C   TR   N
-asm export $GREEN$label::$FG$  F C   BG   N
-asm        $GREEN$label:$FG$   F C   BG   N
-asm local  $GREEN$@@label:$FG$ F C   AL   N
-asm $GREEN$IMPORT label;$FG$   F C   BR   N
-C   goto   $GREEN$label:$FG$   F C   FG   N
+asm export $FG,2$label::$FG$  G C S Tg   N
+asm        $FG,2$label:$FG$   G C   BG   N
+asm local  $FG,2$@@label:$FG$ G C   AL   N
+asm $FG,2$IMPORT label;$FG$   G C   TR   N
+asm export $FG,2$label::$FG$  F C   BG   N
+asm        $FG,2$label:$FG$   F C   BG   N
+asm local  $FG,2$@@label:$FG$ F C   AL   N
+asm $FG,2$IMPORT label;$FG$   F C   BR   N
+C   goto   $FG,2$label:$FG$   F C   FG   N
 
-           $GREEN$#define$FG$  x   D TR   D
+           $FG,2$#define$FG$  x   D TR   D
            function G C F TR   D
            var      F R   FR   N
            var      F S   FR   N
-$GREEN$static$FG$     var      F C   FR D N
+$FG,2$static$FG$     var      F C   FR D N
            var      G C G TR D D
            var      G D G TR S D
-           $GREEN$class$FG$    G   C TR   D
+           $FG,2$class$FG$    G   C TR   D
 class      member   G     TR   P
-$GREEN$extern     class$FG$    G   C TR   D
-$GREEN$extern$FG$     function G C F TR   W
-$GREEN$extern$FG$     var      G C G TR   D
-$GREEN$extern$FG$     var      G D G TR   D
-$GREEN$_extern$FG$    function G C F TR   D
-$GREEN$_extern$FG$    var      G C G TR   D
+$FG,2$extern     class$FG$    G   C TR   D
+$FG,2$extern$FG$     function G C F TR   W
+$FG,2$extern$FG$     var      G C G TR   D
+$FG,2$extern$FG$     var      G D G TR   D
+$FG,2$_extern$FG$    function G C F TR   D
+$FG,2$_extern$FG$    var      G C G TR   D
 
 $WW,1$
 * Goto labels must not have the same name as global scope objects.  GoTo's are rare and I don't want to slow the compiler and add code to fix this.  You will get errors if a collision happens, so it's not very dangerous, but the error message is baffling.
 
-* The member names $GREEN$pad$FG$ and $GREEN$reserved$FG$ are special because multiple instances with the same name are allowed in a class.
+* The member names $FG,2$pad$FG$ and $FG,2$reserved$FG$ are special because multiple instances with the same name are allowed in a class.
 
-* Use $GREEN$reg$FG$ or $GREEN$noreg$FG$ in front of local var names to override automatic reg var allocation.  You can, optionally, specify a reg after the $GREEN$reg$FG$ keyword.
+* Use $FG,2$reg$FG$ or $FG,2$noreg$FG$ in front of local var names to override automatic reg var allocation.  You can, optionally, specify a reg after the $FG,2$reg$FG$ keyword.
  
-* Local non-reg function vars can be accessed in asm blks with $GREEN$&i[RBP]$FG$ for example.
+* Local non-reg function vars can be accessed in asm blks with $FG,2$&i[RBP]$FG$ for example.
 
-* Glbl vars and functions can be accessed in asm with and $GREEN$&$FG$ as in
-	$GREEN$MOV	RAX,I64 [&glbl_var]
+* Glbl vars and functions can be accessed in asm with and $FG,2$&$FG$ as in
+	$FG,2$MOV	RAX,I64 [&glbl_var]
 	CALL	I32 &Fun
 	CALL	I32 &SYS_SYM$FG$
 
-* In $GREEN$JIT$FG$ asm code, &SYS_SYM and &Fun don't need $GREEN$IMPORT$FG$.
+* In $FG,2$JIT$FG$ asm code, &SYS_SYM and &Fun don't need $FG,2$IMPORT$FG$.
 
 * All offspring tasks of a task inherit syms.
 
-* The $GREEN$sizeof()$FG$ and HolyC structure members can be used in asm blks.
+* The $FG,2$sizeof()$FG$ and HolyC structure members can be used in asm blks.
 
-* Using $GREEN$&i$FG$ in $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ or $GREEN$i.u8[2]$FG$ on a local var, $GREEN$i$FG$, will force it to $GREEN$noreg$FG$.
+* Using $FG,2$&i$FG$ in $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ or $FG,2$i.u8[2]$FG$ on a local var, $FG,2$i$FG$, will force it to $FG,2$noreg$FG$.
 
-* Using $GREEN$try$FG$/$GREEN$catch$FG$ in a function will force all local vars to $GREEN$noreg$FG$.
+* Using $FG,2$try$FG$/$FG,2$catch$FG$ in a function will force all local vars to $FG,2$noreg$FG$.
 
-* An unused gap on the stk is left for $GREEN$reg$FG$ vars.
+* An unused gap on the stk is left for $FG,2$reg$FG$ vars.
 
-* Note: $GREEN$static$FG$ function vars do not go on the data heap, no matter the setting of the $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$$FG$.  They may in the future.
+* Note: $FG,2$static$FG$ function vars do not go on the data heap, no matter the setting of the $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$$FG$.  They may in the future.
 
-* $LK,"OPTf_EXTERNS_TO_IMPORTS",A="MN:OPTf_EXTERNS_TO_IMPORTS"$ will treat $GREEN$_extern$FG$ as $GREEN$_import$FG$ and $GREEN$extern$FG$ as $GREEN$import$FG$.  This allows a header to be used either as a $GREEN$JIT compiled$FG$ or $GREEN$AOT compiled$FG$ header.
+* $LK,"OPTf_EXTERNS_TO_IMPORTS",A="MN:OPTf_EXTERNS_TO_IMPORTS"$ will treat $FG,2$_extern$FG$ as $FG,2$_import$FG$ and $FG,2$extern$FG$ as $FG,2$import$FG$.  This allows a header to be used either as a $FG,2$JIT compiled$FG$ or $FG,2$AOT compiled$FG$ header.
diff --git a/Doc/Start.DD b/Doc/Start.DD
index 58809b9..846564b 100644
--- a/Doc/Start.DD
+++ b/Doc/Start.DD
@@ -1,4 +1,4 @@
-$WW+H,1$$PURPLE$$TX+CX,"TempleOS V2.18",D="DD_OS_NAME_VERSION"$$FG$
+$WW+H,1$$FG,5$$TX+CX,"TempleOS V4.12",D="DD_OS_NAME_VERSION"$$FG$
 
 $TX+CX,"Public Domain Operating System"$
 
diff --git a/Doc/StdOutTask.DD b/Doc/StdOutTask.DD
index ff3f396..3d4e1de 100644
--- a/Doc/StdOutTask.DD
+++ b/Doc/StdOutTask.DD
@@ -1 +1 @@
-$WW,1$There is one $LK,"CDoc",A="MN:CDoc"$ for the task's border: $GREEN$Fs->border_doc$FG$.  There is a pair for the task's client area: $GREEN$Fs->put_doc$FG$ and $GREEN$Fs->display_doc$FG$.  You can, optionally, do double buffering, otherwise $GREEN$Fs->put_doc$FG$ is the same as $GREEN$Fs->display_doc$FG$.  See $LK,"::/Demo/Spy.HC"$.
+$WW,1$There is one $LK,"CDoc",A="MN:CDoc"$ for the task's border: $FG,2$Fs->border_doc$FG$.  There is a pair for the task's client area: $FG,2$Fs->put_doc$FG$ and $FG,2$Fs->display_doc$FG$.  You can, optionally, do double buffering, otherwise $FG,2$Fs->put_doc$FG$ is the same as $FG,2$Fs->display_doc$FG$.  See $LK,"::/Demo/Spy.HC"$.
diff --git a/Doc/StdTempleOSPC.DD b/Doc/StdTempleOSPC.DD
index 02873e7..e8cdb0d 100644
--- a/Doc/StdTempleOSPC.DD
+++ b/Doc/StdTempleOSPC.DD
@@ -45,7 +45,7 @@ God said He wants single audio voice for the sound.  I think we want a word-size
 
 The video will be a linear frame buffer 640x480 16 color with one-byte-per-pixel even though it is only 16 color with is 4-bit.  Perhaps, we have a interrupt to sync with the refresh.
 
-I am tempted to help amateur hardware device designers by making the hardware interface for the PC simple.  I have fond memories of 1993, when I made a wire-wrapped ISA data acquisition card which plugged into my 486 and had some analog-to-digital and digital-to-analog convertors.  I am not designing a bus.  Earlier, I said the super-simple high speed serial port replacement could be USB-like in hardware as long as the software driver interface was simple like old school RS232 serial ports.  Requiring a complicated hardware handshake raises the bar, slightly, for the lowest level hardware designers.  Most people will be connecting a microcontroller or something that already has a serial communication design, but if it's not a problem, maybe we should keep it simple at all stages.  It was nice putting an oscilloscope on my serial port wires.
+I am tmpted to help amateur hardware device designers by making the hardware interface for the PC simple.  I have fond memories of 1993, when I made a wire-wrapped ISA data acquisition card which plugged into my 486 and had some analog-to-digital and digital-to-analog convertors.  I am not designing a bus.  Earlier, I said the super-simple high speed serial port replacement could be USB-like in hardware as long as the software driver interface was simple like old school RS232 serial ports.  Requiring a complicated hardware handshake raises the bar, slightly, for the lowest level hardware designers.  Most people will be connecting a microcontroller or something that already has a serial communication design, but if it's not a problem, maybe we should keep it simple at all stages.  It was nice putting an oscilloscope on my serial port wires.
 
 The original PC had general purpose digital IO through the parallel port.  That was fun.  I have enough battles to fight, so I'll leave being a savior to hobbiest hardware engineers to somebody else.
 
@@ -54,7 +54,7 @@ Digital cameras will be super-simple high speed serial, but TempleOS is forever
 
 $FG,5$$TX+CX,"Version One"$$FG$
 
-We will make a spec for a $$4,000, perfectly standardized, cryogenically-cooled, monster desktop PC.  It will have 16 cores, integrated 4K graphics, and, hopefully, 6 Ghz continuous operation.  Perhaps, 64 Gig of RAM will be standard? God said to help to poor buy them.  It is pointless to have a high powered machine if other people have wimpy machines and cannot run programs you write.  Therefore, everybody in the developed world will buy a Standard TempleOS IBM PC over the next ten years, so that will be a quantity of 400 million, perhaps.  God said to pay the US national debt with the revenue.  We will standardize everything, not just the TempleOS related items.  The display will be 4K (and of course 640x480 16 color) and no others.  Everybody gets just one monitor, unless you buy special PCI cards.  Everybody gets two speakers, a headphone, a mic, a webcam and touch screen.  We make the audio one sample rate and one sample size, but TempleOS still gets just a square wave.  (HD Audio is really screwed-up and requires complicated artificial intelligence, just to route output to speakers.)
+We will make a spec for a $$4,000, perfectly standardized, cryogenically-cooled, monster desktop PC.  It will have 16 cores, integrated 4K graphics, and, hopefully, 6 Ghz continuous operation.  Perhaps, 64 Gig of RAM will be standard? God said to help to poor buy them.  It is pointless to have a high powered machine if other people have wimpy machines and cannot run programs you write.  Therefore, everybody in the developed world will buy a Standard TempleOS IBM PC over the next ten years, so that will be a quantity of 400 million, perhaps.  God said to pay the US national debt with the revenue.  We will standardize everything, not just the TempleOS related items.  The display will be 4K (and of course 640x480 16 color) and no others.  Everybody gets just one monitor, unless you buy special PCI cards.  Everybody gets two speakers, a headphone, a mic, a webcam and touch scrn.  We make the audio one sample rate and one sample size, but TempleOS still gets just a square wave.  (HD Audio is really screwed-up and requires complicated artificial intelligence, just to route output to speakers.)
 
 The Standard Temple IBM PC will be a full-sized tower.  Perhaps, stain-glass will decorate the case because God is sentimentally attached to stained-glass.  We should set the size at exactly 2.5 feet by 1.5 feet by 1.5 feet as in the $LK,"Exodus,25:10-10",A="BF:Exodus,25:10-10"$ for all time.  If there is extra room, make a storage shelf for DVDs.  We do not want a race-to-the-bottom, shrinking the size.  Instead of making it smaller, make it more powerful.  We want to remove all cost pressure from making things small.  It must have a CD/DVD/Blu-ray drive.  The vision is CD/DVDs used for a library of games, not installed on the hard-drive.  We need a network connection, possibly implemented as a super-simple high speed serial device.  What about standard monitor and speakers?  The C64's success was partially due to wide spread, completely standard, hardware.  I think TempleOS will not do bad block devices, so we need a hard drive, not just NV-memory or SSD.
 
@@ -81,6 +81,6 @@ $HC,"draw_it() callback.  You probably want $LK,"GrPrint",A="MN:GrPrint"$() or just $LK,"Print",A="MN:Print"$().  The $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ code takes care of plotting text to $LK,"gr.text_base",A="MN:CGrGlbls"$.
 
-Bits 0-7	8-Bit ASCII Screen Code
+Bits 0-7	8-Bit ASCII Scrn Code
 Bits 8-11	Foreground $LK,"color",A="MN:BLACK"$
 Bits 12-15	Background $LK,"color",A="MN:BLACK"$
 Bits 16-20	Signed X pos shift val
diff --git a/Doc/Tips.DD b/Doc/Tips.DD
index 825ab3b..2f276d0 100644
--- a/Doc/Tips.DD
+++ b/Doc/Tips.DD
@@ -19,7 +19,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
 
 * You can use $FG,2$ans$FG$ in cmd line expressions.  It holds the res the last cmd line operation.  You can use the cmd prompt as a calculator by just entering expressions like $FG,2$1+2*3;$FG$.  $FG,2$F64$FG$ ress can be accessed with $FG,2$ansf$FG$.
 
-* Use the PullDown menu at the top of the screen to learn commands, or for finding the keyboard controls to games.
+* Use the PullDown menu at the top of the scrn to learn commands, or for finding the keyboard controls to games.
 
 * You can adjust the mouse movement rate by setting global vars in your start-up file.  See $LK,"mouse scale",A="FF:~/HomeLocalize.HC,mouse.scale"$.
 
@@ -29,7 +29,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
 
 * You can use $FG,2$filter_lines$FG$ in the editor text search form ($FG,2$$FG$) to temporarily display just lines near each match.  A value of $FG,2$filter lines$FG$ set to $FG,2$5$FG$ will display lines within 5 lines of matches.  Then, you can do another find to a different string and achieve a $FG,2$AND$FG$ search.  When finished, press $FG,2$$FG$.
  
-* You can recompile and reinstall the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$().  You'll probably want to make a function for recompiling that uses the $LK,"Auto",A="MN:Auto"$() function to answer the cfg questions.  See my technique $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$.
+* You can recompile and reinstall the kernel with $LK,"BootHDIns",A="MN:BootHDIns"$().  You'll probably want to make a function for recompiling that uses the $LK,"In",A="MN:In"$() function to answer the cfg questions.  See my technique $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$.
 
 * $LK,"Scale2Mem",A="MN:Scale2Mem"$(min,max,limit=2*1024*1024*1024) can be used for cfg questions when recompiling.  The $LK,"BootHDIns",A="MN:BootHDIns"$() cfg prompts accept expressions, not just numbers.  The dft disk cache is $FG,2$Scale2Mem(0x80000,0x8000000)$FG$.
 
@@ -59,19 +59,19 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
 
 * Use $LK,"Plain",A="MN:Plain"$() to edit a plain text file.  You'll need this if your file has $FG,2$$$$FG$'s.  Use the $LK,"ToDolDoc",A="MN:ToDolDoc"$() utility to convert plain text to DolDoc's by doubling $FG,2$$$$FG$'s.
 
-* Use $LK,"Silent",A="MN:Silent"$() to disable screen text output.
+* Use $LK,"Silent",A="MN:Silent"$() to disable scrn text output.
 
 * Grab-scroll any window at any time with $FG,2${CTRL-LEFT-MOUSE-DRAG}$FG$.  Null grab-scrolling with $FG,2${CTRL-RIGHT-MOUSE}$FG$.
 
 * Use $FG,2$$FG$ to zoom-in and $FG,2$$FG$ to zoom-out.  You can scroll by moving to the edge of the window.  Set $LK,"gr.continuous_scroll",A="MN:CGrGlbls"$ to $FG,2$TRUE$FG$ if you want. 
 
-* Use $FG,2$$FG$ and $FG,2$$FG$ to display a grid on the screen.
+* Use $FG,2$$FG$ and $FG,2$$FG$ to display a grid on the scrn.
 
 * Use $FG,2$$FG$ to enter an extended ASCII char.
 
 * Use $FG,2$$FG$ to toggle between $LK,"Std Font",A="FI:::/Kernel/FontStd.HC"$ and $LK,"Cyrillic Font",A="FI:::/Kernel/FontCyrillic.HC"$.
 
-* Use $FG,2$$FG$ will capture the screen as a sprite on the clipboard.  You can save the cmd line doc as text with $FG,2$$FG$.
+* Use $FG,2$$FG$ will capture the scrn as a sprite on the clipboard.  You can save the cmd line doc as text with $FG,2$$FG$.
 
 * You can save a sprite as a $FG,2$.BMP$FG$ file in $FG,2$$FG$ on the Sprite BitMap Menu.
 
@@ -131,7 +131,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
 
 * For advanced heap debugging, play with $LK,"_CFG_HEAP_DBG",A="MN:_CFG_HEAP_DBG"$.  You're on your own.
 
-* You can use $LK,"Type",A="MN:Type"$() to display $FG,2$.BMP$FG$ or $FG,2$.GRA$FG$ files.
+* You can use $LK,"Type",A="MN:Type"$() to display $FG,2$.BMP$FG$ or $FG,2$.GR$FG$ files.
 
 * Use $LK,"Man",A="MN:Man"$() to jump to short sym name src code.
 
diff --git a/Doc/Upgrade.DD b/Doc/Upgrade.DD
index 66c3e9b..65ccba7 100644
--- a/Doc/Upgrade.DD
+++ b/Doc/Upgrade.DD
@@ -1,5 +1,5 @@
 $WW,1$$FG,5$$TX+CX,"Upgrading TempleOS"$$FG$
 
-To upgrade, you generally boot the new TempleOS CD/DVD, install on top of your drive, modify your files and set it to boot your account by executing $LK,"BootHDIns",A="MN:BootHDIns"$().  Often, your code will have to be modified to work with the new version.  See $LK,"Change Log",A="FI:::/Doc/ChangeLog.DD"$.  You might have to boot an alternate drive or the CD and modify your code until it boots okay.
+To upgrade, you generally boot the new TempleOS CD/DVD, install on top of your drive, modify your files and set it to boot your new $FG,2$/Kernel.BIN.C$FG$ by executing $LK,"BootHDIns",A="MN:BootHDIns"$().  Often, your code will have to be modified to work with the new version.  See $LK,"Change Log",A="FI:::/Doc/ChangeLog.DD"$.  You might have to boot an alternate drive or the CD and modify your code until it boots okay.
 
 See the $LK,"Installing",A="FI:::/Doc/Install.DD"$ documentation.
diff --git a/Doc/Welcome.DD b/Doc/Welcome.DD
index 069c595..568bec3 100644
--- a/Doc/Welcome.DD
+++ b/Doc/Welcome.DD
@@ -7,7 +7,7 @@ $ID,2$* Professionals doing hobby projects
 * Teenagers doing projects
 * Non-professional, older-persons projects
 $ID,-2$
-Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.DD"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX,"81,125",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.DD"$ application in one line of code and can put graphics on the screen with a three line program!
+Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.DD"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.DD"$ application in one line of code and can put graphics on the scrn with a three line program!
 
 It's a kayak, not a Titanic -- it will crash if you do something wrong.  You quickly reboot, however.  DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection.  The resulting simplicity of no protections is why TempleOS has value.  In facts, that's the point of TempleOS.  See the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.DD"$.
 
@@ -81,9 +81,9 @@ TempleOS is geared toward reading and writing whole files.  Since whole files ar
 
 If a file is not found, "$FG,2$.Z$FG$" is added or removed and a search is done, again.  There is no $FG,2$PATH$FG$, but parent directories are searched when a file is not found.  This feature is especially useful for default account files.
 
-The graphic resolution is poor, $FG,2$640x480 16 color$FG$, but God said it was a covenant like circumcision.  Also, that's all I feel comfortable with without GPU acceleration supported.  A $FG,2$1600x1200x24$FG$ bit screen takes 37 times more memory, implying 37 times the CPU power.  Also, a fixed size keeps it simple with everybody machine having the same appearance.  Look on the bright-side -- you won't spend as much time twiddling pixels for your game art and you'll have tons of CPU power available, especially with multicore systems.
+The graphic resolution is poor, $FG,2$640x480 16 color$FG$, but God said it was a covenant like circumcision.  Also, that's all I feel comfortable with without GPU acceleration supported.  A $FG,2$1600x1200x24$FG$ bit scrn takes 37 times more memory, implying 37 times the CPU power.  Also, a fixed size keeps it simple with everybody machine having the same appearance.  Look on the bright-side -- you won't spend as much time twiddling pixels for your game art and you'll have tons of CPU power available, especially with multicore systems.
 
-TempleOS is for hobbyist programmers on single user (at a time) home computers, not mainframes or servers.  The focus task is all-important so symmetrical multiprocessing is almost pointless.  Why does it matter running two apps at the same time twice as fast when you really want to run one faster?  You could say TempleOS does master/slave multiprocessing.  The anticipated use for multicore is primarily putting graphics on the screen.  Hardware graphics acceleration is not used, so this is possible.  See $LK,"TempleOS MultiCore",A="FI:::/Doc/MultiCore.DD"$.
+TempleOS is for hobbyist programmers on single user (at a time) home computers, not mainframes or servers.  The focus task is all-important so symmetrical multiprocessing is almost pointless.  Why does it matter running two apps at the same time twice as fast when you really want to run one faster?  You could say TempleOS does master/slave multiprocessing.  The anticipated use for multicore is primarily putting graphics on the scrn.  Hardware graphics acceleration is not used, so this is possible.  See $LK,"TempleOS MultiCore",A="FI:::/Doc/MultiCore.DD"$.
 
 There is no distinction between the terms $FG,2$task$FG$, $FG,2$process$FG$ or $FG,2$thread$FG$.  All have a task record, $LK,"CTask",A="MN:CTask"$, pointed to by the $FG,2$FS$FG$ segment reg and are accessed with $FG,4$Fs->$FG$ while $FG,4$Gs->$FG$ points to a $LK,"CCPU",A="MN:CCPU"$ for the current CPU core.  Each task can have just one window, but a task can have children with windows.  (The segment regs are just used as extra regs -- there is nothing segmented about TempleOS' memory.)  It is approximately the case that $FG,2$TempleOS$FG$ is multi-threading, single-processing.
 
@@ -124,12 +124,12 @@ Ideally, do not install applications such as games onto your hard drive because
 
 Create a $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ ISO file with $LK,"RedSeaISO",A="MN:RedSeaISO"$().  Send an email to $TX,"tdavis@templeos.org",HTML="mailto:tdavis@templeos.org"$ if you want me to post a link to your TempleOS code in the App Store.
 
-$MA-X+PU,"Take Tour",LM="User(\"Cd(\\\"::/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$
+$MA-X+PU,"Take Tour",LM="User(\"Cd(\\\"::/Misc/Tour\\\");;InFile(\\\"Tour\\\");\n\");"$
 
 $FG,8$
 * "Linux" is a trademark owned by Linus Torvalds.
 * "Windows" is a trademark owned by MicroSoft Corp.
-* "Commodore 64" was a trademark owned by Commodore Business Machines.
+* "Commodore 64" is a trademark owned by Polabe Holding NV.
 * "QEMU" is a trademark owned by Fabrice Bellard.
 * "VMware" is a trademark owned by VMware, Inc.
 * "VirtualBox" is a trademark owned by Oracle.
diff --git a/Doc/WhyNotMore.DD b/Doc/WhyNotMore.DD
new file mode 100644
index 0000000..f1e50ab
--- /dev/null
+++ b/Doc/WhyNotMore.DD
@@ -0,0 +1,32 @@
+$WW,1$$FG,5$$TX+CX,"Why Not More?"$$FG$
+
+If a feature cannot be made to work correctly and consistently, professional companies usually remove the feature.  Because PC hardware is so diverse, getting things to work on all people's computers is really difficult.  For one thing, you practically have to own all the different hardware to write drivers for it.  If a company wanted to sell a PC operating system, they would offer a warranty and, therefore, could not get away with amateur behavior.  TempleOS absolutely requires 64-bit computers, so we leave behind much trouble, but plenty remains.
+
+The PCI bus interface is what modern hardware uses.  Before PCI, life was simple and devices used I/O ports.  After studying $LK,"PCI Interrupts",A="FI:::/Demo/Lectures/PCIInterrupts.HC"$ and attempting to do a HDAudio driver, I came to realize that modern PCI devices require ten times more code and I cannot even come close to making them work on everyone's machine because with PCI devices there are several models to worry about, unlike with the older ISA bus devices which can be done with one driver.
+
+Currently, I have no PCI drivers.  My drivers use I/O ports and operate in ISA bus mode.  At this point, I only have one driver for each type of device and it is delightfully simple that way.  I have one $LK,"keyboard",A="FI:::/Kernel/SerialDev/Keyboard.HC"$ driver, one $LK,"mouse",A="FI:::/Kernel/SerialDev/Mouse.HC"$ driver, one $LK,"ATA hard drive",A="FI:::/Kernel/BlkDev/DskATA.HC"$ driver, one $LK,"ATAPI CD/DVD",A="FI:::/Kernel/BlkDev/DskATA.HC"$ driver, one $LK,"VGA 640x480 16 color",A="FI:::/Adam/Gr/GrScrn.HC"$ video driver and one $LK,"PC Speaker",A="MN:Snd"$ driver.  I use the $LK,"PIT and HPET timers",A="MN:TimersInit"$ and $LK,"PIC Interrupt Controller",A="MN:IntsInit"$.  I use  IRQ0 for timer, IRQ1 for keyboard, and IRQ12 for mouse.  If IRQ12 is not firing, I am able to poll the mouse.
+
+In the CPU department, I have state of the art 64-bit $LK,"long mode",A="FI:::/Kernel/KStart64.HC"$ with $LK,"multicore",A="FI:::/Kernel/MultiProc.HC"$ support.  I use the $LK,"APIC",A="MN:MPAPICInit"$ and start-up $LK,"multicore",A="MN:Core0StartMP"$ operation.
+
+I have made an incredible accomplishment by getting it to work on practically everyone's computer as long as it is 64-bit and they run inside VMware, QEMU or VirtualBox.
+
+Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12, boot mode and regular mode for keyboard/mouse and a diversity of HID reports.  It's hopeless.  I could never offer anything but crappy, limited support and it would just add a ton of crappy code that mostly didn't work.  What would I gain?  Nothing.  A keyboard or mouse would not be improved.  Solid State USB drives would be really nice, but it's not going to happen.
+
+The same story is basically true for GPUs, audio, networking and AHCI hard drive drivers.  God said 640x480 16 color was a covenant like circumcision, so the video will never change, even if a $LK,"Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$ was made.  If you attempt multimedia, everything will break because memory will get fragmented with huge multimedia files.  Some day, if super-simple high speed serial allows networking, there will be no browser within the 100,000 line limit and, with only 16 colors, the world wide web is not tolerable.  FTP and telnet might be possible, in the far distant future, if they could fit within the 100,000 line limit.  Currently, there are $TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code.
+
+I don't stand a chance working on native hardware, anymore.  I could install and run natively on hardware from about 2005-2010.  It requires BIOS's being nice enough to write USB mode PS/2 legacy keyboard/mouse support.  As it turns-out, sometimes the BIOS has PS/2 drivers but purposely disables them, just to be mean.  The CIA and whole industry is trying to mess everything up, on purpose.  Perhaps, at a point of sale in a store, a thief could hack a credit card machine.  Therefore, the BIOS companies actually want it difficult to make drivers and purposely make it broken.
+
+The ATA/ATAPI hard drives often can be run with I/O ports if you can $LK,"find them",A="FI:::/Kernel/BlkDev/DskATAId.HC"$.  $FG,2$lspci -v$FG$ on Linux or system information on Windows can help you locate the SATA IO ports the hard drive and CD/DVD have.  They no longer are enabled by the BIOS.  It's hopeless.  I'm stuck with very slow drive performance, but it works for everybody.
+
+UEFI is pointless.  If I am forced to run in VMware, QEMU or VirtualBox, they will always support non-UEFI mode.  Without working, native hard drive and CD/DVD drivers, you can't get very far with UEFI on a native install, not to mention SecureBoot.  UEFI is, first of all, redundant.  If non-UEFI works in a virtual machine, supporting UEFI would only be redundant, ugly nasty code.  My compiler does not create an ELF or PE format.  I would have to ruin the beauty of my compiler, which would make me cry many tears.
+
+God talks.  It seems reasonable that I will get to make the rules for the whole industry, in the future when God is announced publically to the World.
+
+I made $LK,"::/Doc/Demands.DD"$.
+
+When the PC was created, they wanted flexibility because they did not know the future.  Now, the industry is mature and it is time to make a 100% standard PC that everybody uses.  $LK,"::/Doc/StdTempleOSPC.DD"$
+
+$FG,8$
+* "QEMU" is a trademark owned by Fabrice Bellard.
+* "VMware" is a trademark owned by VMware, Inc.
+* "VirtualBox" is a trademark owned by Oracle.
diff --git a/Doc/Widget.DD b/Doc/Widget.DD
index 2fa9f19..bfd668e 100644
--- a/Doc/Widget.DD
+++ b/Doc/Widget.DD
@@ -4,10 +4,10 @@ $LK,"DolDoc",A="::/Doc/DolDocOverview.DD"$ is a TempleOS document type.
 
 $FG,2$"Expression"$FG$ a num or HolyC algebraic term with operators and HolyC syms can be entered.
 $FG,2$"Macro"$FG$ Most entries can behave like macro entries if you assign them macro strs.
-$FG,2$"AutoStr"$FG$ Like a macro except it is an $LK,"AutoFile",A="FF:::/Doc/Glossary.DD,AutoFile"$.  You can't have both an autostr and macro text defined.  
+$FG,2$"InStr"$FG$ Like a macro except it is an $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$.  You can't have both an in_str and macro text defined.  
 
 $FG,5$Tag Text$FG$ is the text that will be displayed for the item.  For links, you can leave it blank and the details of the link will be shown.
-$FG,5$Hide$FG$ means display nothing, making an entry invisible.
+$FG,5$Hide$FG$ means display nothing, making an entry invis.
 
 $FG,5$Left X$FG$ relative to the left margin.
 $FG,5$Center X$FG$ relative to the horizontal center of the window.
diff --git a/Doc/Windows.DD b/Doc/Windows.DD
index 08419e7..cc73769 100644
--- a/Doc/Windows.DD
+++ b/Doc/Windows.DD
@@ -1 +1 @@
-$WW,1$Only tasks on $FG,2$core0$FG$ can have a window and there can be only one window per task.  The window Z-buffer, top-to-bottom order is determined by the order in the task queue, with the $FG,2$WinMgr$FG$ on the bottom.  A task can have child task popup windows.
+$WW,1$Only tasks on $FG,2$Core0$FG$ can have a window and there can be only one window per task.  The window Z-buffer, top-to-bottom order is determined by the order in the task queue, with the $FG,2$WinMgr$FG$ on the bottom.  A task can have child task popup windows.
diff --git a/HomeSys.HC b/HomeSys.HC
index 4134de8..1112836 100644
--- a/HomeSys.HC
+++ b/HomeSys.HC
@@ -28,9 +28,9 @@ U0 StartUpTasks()
   WinTileVert;
   "Boot Time:%7.3fs\n",tS;
   XTalk(user1,"Cd;#include \"DoOnce\";\n");
-  Silent;	//no output to screen
+  Silent;	//no output to scrn
   ACInit("/*;!*/Bible.TXT*");
-  Silent(OFF); //no output to screen
+  Silent(OFF); //no output to scrn
 }
 
 StartUpTasks;
diff --git a/Kernel/BlkDev/DskATAId.HC b/Kernel/BlkDev/DskATAId.HC
index 8d5a270..91831eb 100644
--- a/Kernel/BlkDev/DskATAId.HC
+++ b/Kernel/BlkDev/DskATAId.HC
@@ -94,7 +94,7 @@ U0 ATARepEntry(I64 base0,I64 base1,I64 unit,I64 irq,U8 *msg,
   I64 type;
   base0&=-8;
   base1&=-4;
-  CATARep *tempha;
+  CATARep *tmpha;
   if (type=ATAProbe(base0,base1,unit)) {
     *num_hints+=1;
     "\n\n$$PURPLE$$ $$BT+X,\"%d\",LM=\"%d\\n\"$$$$FG$$$$LM,4$$",*num_hints,*num_hints;
@@ -105,14 +105,14 @@ U0 ATARepEntry(I64 base0,I64 base1,I64 unit,I64 irq,U8 *msg,
     "%s$$FG$$\nBase0:0x%04X    Base1:0x%04X\nIrq:0x%02X Unit:%d$$LM,0$$\n",
 	  msg,base0,base1,irq,unit;
     if (_head) {
-      tempha=CAlloc(sizeof(CATARep));
-      tempha->next=*_head;
-      *_head=tempha;
-      tempha->num=*num_hints;
-      tempha->type=type;
-      tempha->base0=base0;
-      tempha->base1=base1;
-      tempha->unit=unit;
+      tmpha=CAlloc(sizeof(CATARep));
+      tmpha->next=*_head;
+      *_head=tmpha;
+      tmpha->num=*num_hints;
+      tmpha->type=type;
+      tmpha->base0=base0;
+      tmpha->base1=base1;
+      tmpha->unit=unit;
     }
   }
 }
@@ -204,32 +204,32 @@ CATARep *ATARepFind(CATARep *haystack_head,I64 needle_num)
 
 CATARep *ATAIDDrvs(CATARep *head,CATARep **_ata_drv,CATARep **_atapi_drv)
 {//This is for when trying to sort-out main hard drives and CD/DVD drives.
-  CATARep *res=NULL,*tempha=head,*ata_drv=NULL,*atapi_drv=NULL;
+  CATARep *res=NULL,*tmpha=head,*ata_drv=NULL,*atapi_drv=NULL;
   CBlkDev *bd;
   Bool was_silent=Silent;
   bd=Let2BlkDev(':',FALSE);
   Silent(was_silent);
-  while (tempha) {
-    if (!res && bd && bd->type==tempha->type) {
+  while (tmpha) {
+    if (!res && bd && bd->type==tmpha->type) {
       if (bd->type==BDT_ATAPI &&
-	    bd->base0==tempha->base0 && bd->unit==tempha->unit)
-	res=atapi_drv=tempha;
-      else if (bd->type==BDT_ATA && bd->base0==tempha->base0 &&
-	    bd->base1==tempha->base1 && bd->unit==tempha->unit)
-	res=ata_drv=tempha;
+	    bd->base0==tmpha->base0 && bd->unit==tmpha->unit)
+	res=atapi_drv=tmpha;
+      else if (bd->type==BDT_ATA && bd->base0==tmpha->base0 &&
+	    bd->base1==tmpha->base1 && bd->unit==tmpha->unit)
+	res=ata_drv=tmpha;
     }
-    if (!res || res->type!=tempha->type) {
-      if (tempha->type==BDT_ATA) {
-	if (!ata_drv || tempha->unitunit ||
-	      tempha->unit==ata_drv->unit && tempha->numnum)
-	  ata_drv=tempha;
-      } else if (tempha->type==BDT_ATAPI) {
-	if (!atapi_drv || tempha->unitunit ||
-	      tempha->unit==atapi_drv->unit && tempha->numnum)
-	  atapi_drv=tempha;
+    if (!res || res->type!=tmpha->type) {
+      if (tmpha->type==BDT_ATA) {
+	if (!ata_drv || tmpha->unitunit ||
+	      tmpha->unit==ata_drv->unit && tmpha->numnum)
+	  ata_drv=tmpha;
+      } else if (tmpha->type==BDT_ATAPI) {
+	if (!atapi_drv || tmpha->unitunit ||
+	      tmpha->unit==atapi_drv->unit && tmpha->numnum)
+	  atapi_drv=tmpha;
       }
     }
-    tempha=tempha->next;
+    tmpha=tmpha->next;
   }
   if (_ata_drv)   *_ata_drv  =ata_drv;
   if (_atapi_drv) *_atapi_drv=atapi_drv;
@@ -256,7 +256,7 @@ I64 AutoMountIDE()
 //It uses 'C' and 'T' as first drive letters or whatever you set
   //in config when compiling Kernel.BIN.
   I64 res=0;
-  CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL,*tempha;
+  CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL,*tmpha;
   ATARep(FALSE,TRUE,&head);
   ATAIDDrvs(head,&ata_drv,&atapi_drv);
   if (ata_drv && ATAMount(blkdev.first_hd_drv_let,BDT_ATA,
@@ -265,18 +265,18 @@ I64 AutoMountIDE()
   if (atapi_drv && ATAMount(blkdev.first_dvd_drv_let,BDT_ATAPI,
 	atapi_drv->base0,atapi_drv->base1,atapi_drv->unit))
     res++;
-  tempha=head;
-  while (tempha) {
-    if (tempha!=ata_drv && tempha!=atapi_drv) {
-      if (tempha->type==BDT_ATA && ATAMount(blkdev.first_hd_drv_let,BDT_ATA,
-	    tempha->base0,tempha->base1,tempha->unit))
+  tmpha=head;
+  while (tmpha) {
+    if (tmpha!=ata_drv && tmpha!=atapi_drv) {
+      if (tmpha->type==BDT_ATA && ATAMount(blkdev.first_hd_drv_let,BDT_ATA,
+	    tmpha->base0,tmpha->base1,tmpha->unit))
 	res++;
-      else if (tempha->type==BDT_ATAPI &&
+      else if (tmpha->type==BDT_ATAPI &&
 	    ATAMount(blkdev.first_dvd_drv_let,BDT_ATAPI,
-	    tempha->base0,tempha->base1,tempha->unit))
+	    tmpha->base0,tmpha->base1,tmpha->unit))
 	res++;
     }
-    tempha=tempha->next;
+    tmpha=tmpha->next;
   }
   LinkedLstDel(head);
   blkdev.auto_mount_ide_cnt=res;
diff --git a/Kernel/BlkDev/DskCache.HC b/Kernel/BlkDev/DskCache.HC
index 7154092..33f7946 100644
--- a/Kernel/BlkDev/DskCache.HC
+++ b/Kernel/BlkDev/DskCache.HC
@@ -1,6 +1,6 @@
 U0 DskCacheInit(I64 size_in_U8s)
 {
-  CCacheBlk *tempc;
+  CCacheBlk *tmpc;
   I64 i,cnt;
 
   while (LBts(&sys_semas[SYS_SEMA_DSK_CACHE],0))
@@ -20,18 +20,18 @@ U0 DskCacheInit(I64 size_in_U8s)
     cnt=MSize(blkdev.cache_base)/sizeof(CCacheBlk);
     blkdev.cache_size=cnt*BLK_SIZE;
     for (i=0;ilast_lru);
-      tempc->next_hash=tempc->last_hash=tempc;
-      tempc->dv=NULL;
-      tempc->blk=0;
+      tmpc=blkdev.cache_base+i;
+      QueIns(tmpc,blkdev.cache_ctrl->last_lru);
+      tmpc->next_hash=tmpc->last_hash=tmpc;
+      tmpc->dv=NULL;
+      tmpc->blk=0;
     }
 
     blkdev.cache_hash_table=AMAlloc(DSK_CACHE_HASH_SIZE*sizeof(U8 *)*2);
     for (i=0;inext_hash=tempc->last_hash=tempc;
+      tmpc->next_hash=tmpc->last_hash=tmpc;
     }
   }
   LBtr(&sys_semas[SYS_SEMA_DSK_CACHE],0);
@@ -43,50 +43,50 @@ I64 DskCacheHash(I64 blk)
   return blkdev.cache_hash_table(U8 *)+i<<4-offset(CCacheBlk.next_hash);
 }
 
-U0 DskCacheQueRem(CCacheBlk *tempc)
+U0 DskCacheQueRem(CCacheBlk *tmpc)
 {
-  QueRem(tempc);
-  tempc->next_hash->last_hash=tempc->last_hash;
-  tempc->last_hash->next_hash=tempc->next_hash;
+  QueRem(tmpc);
+  tmpc->next_hash->last_hash=tmpc->last_hash;
+  tmpc->last_hash->next_hash=tmpc->next_hash;
 }
 
-U0 DskCacheQueIns(CCacheBlk *tempc)
+U0 DskCacheQueIns(CCacheBlk *tmpc)
 {
-  CCacheBlk *temp_n,*temp_l;
-  QueIns(tempc,blkdev.cache_ctrl->last_lru);
-  temp_l=DskCacheHash(tempc->blk);
-  temp_n=temp_l->next_hash;
-  tempc->last_hash=temp_l;
-  tempc->next_hash=temp_n;
-  temp_l->next_hash=temp_n->last_hash=tempc;
+  CCacheBlk *tmp_n,*tmp_l;
+  QueIns(tmpc,blkdev.cache_ctrl->last_lru);
+  tmp_l=DskCacheHash(tmpc->blk);
+  tmp_n=tmp_l->next_hash;
+  tmpc->last_hash=tmp_l;
+  tmpc->next_hash=tmp_n;
+  tmp_l->next_hash=tmp_n->last_hash=tmpc;
 }
 
 CCacheBlk *DskCacheFind(CDrv *dv,I64 blk)
 {
-  CCacheBlk *tempc,*tempc1=DskCacheHash(blk);
-  tempc=tempc1->next_hash;
-  while (tempc!=tempc1) {
-    if (tempc->dv==dv && tempc->blk==blk)
-      return tempc;
-    tempc=tempc->next_hash;
+  CCacheBlk *tmpc,*tmpc1=DskCacheHash(blk);
+  tmpc=tmpc1->next_hash;
+  while (tmpc!=tmpc1) {
+    if (tmpc->dv==dv && tmpc->blk==blk)
+      return tmpc;
+    tmpc=tmpc->next_hash;
   }
   return NULL;
 }
 
 U0 DskCacheAdd(CDrv *dv,U8 *buf, I64 blk, I64 cnt)
 {
-  CCacheBlk *tempc;
+  CCacheBlk *tmpc;
   if (blkdev.cache_base) {
     while (LBts(&sys_semas[SYS_SEMA_DSK_CACHE],0))
       Yield;
     while (cnt-->0) {
-      if (!(tempc=DskCacheFind(dv,blk)))
-	tempc=blkdev.cache_ctrl->next_lru;
-      DskCacheQueRem(tempc);
-      MemCpy(&tempc->body,buf,BLK_SIZE);
-      tempc->dv=dv;
-      tempc->blk=blk;
-      DskCacheQueIns(tempc);
+      if (!(tmpc=DskCacheFind(dv,blk)))
+	tmpc=blkdev.cache_ctrl->next_lru;
+      DskCacheQueRem(tmpc);
+      MemCpy(&tmpc->body,buf,BLK_SIZE);
+      tmpc->dv=dv;
+      tmpc->blk=blk;
+      DskCacheQueIns(tmpc);
       blk++;
       buf+=BLK_SIZE;
     }
@@ -96,21 +96,21 @@ U0 DskCacheAdd(CDrv *dv,U8 *buf, I64 blk, I64 cnt)
 
 U0 DskCacheInvalidate2(CDrv *dv)
 {
-  CCacheBlk *tempc,*tempc1;
+  CCacheBlk *tmpc,*tmpc1;
   if (blkdev.cache_base) {
     while (LBts(&sys_semas[SYS_SEMA_DSK_CACHE],0))
       Yield;
-    tempc=blkdev.cache_ctrl->last_lru;
-    while (tempc!=blkdev.cache_ctrl) {
-      tempc1=tempc->last_lru;
-      if (tempc->dv==dv) {
-	DskCacheQueRem(tempc);
-	tempc->dv=NULL;
-	tempc->blk=0;
-	tempc->next_hash=tempc->last_hash=tempc;
-	QueIns(tempc,blkdev.cache_ctrl->last_lru);
+    tmpc=blkdev.cache_ctrl->last_lru;
+    while (tmpc!=blkdev.cache_ctrl) {
+      tmpc1=tmpc->last_lru;
+      if (tmpc->dv==dv) {
+	DskCacheQueRem(tmpc);
+	tmpc->dv=NULL;
+	tmpc->blk=0;
+	tmpc->next_hash=tmpc->last_hash=tmpc;
+	QueIns(tmpc,blkdev.cache_ctrl->last_lru);
       }
-      tempc=tempc1;
+      tmpc=tmpc1;
     }
     LBtr(&sys_semas[SYS_SEMA_DSK_CACHE],0);
   }
@@ -118,14 +118,14 @@ U0 DskCacheInvalidate2(CDrv *dv)
 
 U0 RCache(CDrv *dv,U8 **_buf, I64 *_blk, I64 *_cnt)
 {
-  CCacheBlk *tempc;
+  CCacheBlk *tmpc;
   if (blkdev.cache_base) {
     while (LBts(&sys_semas[SYS_SEMA_DSK_CACHE],0))
       Yield;
 //fetch leading blks from cache
     while (*_cnt>0) {
-      if (tempc=DskCacheFind(dv,*_blk)) {
-	MemCpy(*_buf,&tempc->body,BLK_SIZE);
+      if (tmpc=DskCacheFind(dv,*_blk)) {
+	MemCpy(*_buf,&tmpc->body,BLK_SIZE);
 	*_cnt-=1;
 	*_buf+=BLK_SIZE;
 	*_blk+=1;
@@ -134,8 +134,8 @@ U0 RCache(CDrv *dv,U8 **_buf, I64 *_blk, I64 *_cnt)
     }
 //fetch trailing blks from cache
     while (*_cnt>0) {
-      if (tempc=DskCacheFind(dv,*_blk+*_cnt-1)) {
-	MemCpy(*_buf+(*_cnt-1)<body,BLK_SIZE);
+      if (tmpc=DskCacheFind(dv,*_blk+*_cnt-1)) {
+	MemCpy(*_buf+(*_cnt-1)<body,BLK_SIZE);
 	*_cnt-=1;
       } else
 	break;
diff --git a/Kernel/BlkDev/DskDirA.HC b/Kernel/BlkDev/DskDirA.HC
index b4bcd8e..eb098e4 100644
--- a/Kernel/BlkDev/DskDirA.HC
+++ b/Kernel/BlkDev/DskDirA.HC
@@ -1,10 +1,10 @@
-Bool DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain=TRUE)
+Bool DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,Bool free_old_chain=TRUE)
 {//Makes a directory entry in the directory from a $LK,"CDirEntry",A="MN:CDirEntry"$ node.
   switch (dv->fs_type) {
     case FSt_REDSEA:
-      return RedSeaDirNew(dv,cur_dir,tempde,free_old_chain);
+      return RedSeaDirNew(dv,cur_dir,tmpde,free_old_chain);
     case FSt_FAT32:
-      return FAT32DirNew(dv,cur_dir,tempde,free_old_chain);
+      return FAT32DirNew(dv,cur_dir,tmpde,free_old_chain);
     case FSt_ISO9660:
       PrintErr("Not Writable\n");
       return FALSE;
@@ -14,48 +14,48 @@ Bool DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain=TRUE)
   }
 }
 
-U0 DirEntryDel(CDirEntry *tempde)
+U0 DirEntryDel(CDirEntry *tmpde)
 {//Free node returned from $LK,"FilesFind",A="MN:FilesFind"$().  Doesn't Free user_data.
 //Does not change the directory on disk.
-  if (tempde) {
-    Free(tempde->full_name);
-    Free(tempde);
+  if (tmpde) {
+    Free(tmpde->full_name);
+    Free(tmpde);
   }
 }
 
-U0 DirEntryDel2(CDirEntry *tempde)
+U0 DirEntryDel2(CDirEntry *tmpde)
 {//Free node returned from $LK,"FilesFind",A="MN:FilesFind"$().  Frees user_data
 //Does not change the directory on disk.
-  if (tempde) {
-    Free(tempde->full_name);
-    Free(tempde->user_data);
-    Free(tempde);
+  if (tmpde) {
+    Free(tmpde->full_name);
+    Free(tmpde->user_data);
+    Free(tmpde);
   }
 }
 
-U0 DirTreeDel(CDirEntry *tempde)
+U0 DirTreeDel(CDirEntry *tmpde)
 {//Free tree returned from $LK,"FilesFind",A="MN:FilesFind"$().  Doesn't Free user_data.
 //Does not change the directory on disk.
-  CDirEntry *tempde2;
-  while (tempde) {
-    tempde2=tempde->next;
-    if (tempde->sub)
-      DirTreeDel(tempde->sub);
-    DirEntryDel(tempde);
-    tempde=tempde2;
+  CDirEntry *tmpde2;
+  while (tmpde) {
+    tmpde2=tmpde->next;
+    if (tmpde->sub)
+      DirTreeDel(tmpde->sub);
+    DirEntryDel(tmpde);
+    tmpde=tmpde2;
   }
 }
 
-U0 DirTreeDel2(CDirEntry *tempde)
+U0 DirTreeDel2(CDirEntry *tmpde)
 {//Free tree returned from $LK,"FilesFind",A="MN:FilesFind"$().  Frees user_data
 //Does not change the directory on disk.
-  CDirEntry *tempde2;
-  while (tempde) {
-    tempde2=tempde->next;
-    if (tempde->sub)
-      DirTreeDel2(tempde->sub);
-    DirEntryDel2(tempde);
-    tempde=tempde2;
+  CDirEntry *tmpde2;
+  while (tmpde) {
+    tmpde2=tmpde->next;
+    if (tmpde->sub)
+      DirTreeDel2(tmpde->sub);
+    DirEntryDel2(tmpde);
+    tmpde=tmpde2;
   }
 }
 
@@ -89,19 +89,19 @@ I64 DirEntryCompareCluster(CDirEntry *e1,CDirEntry *e2)
 #define SK_NAME		0
 #define SK_CLUSTER	1
 
-U0 DirFilesSort(CDirEntry **_tempde,I64 key)
+U0 DirFilesSort(CDirEntry **_tmpde,I64 key)
 {
   I64 i,cnt;
-  CDirEntry *tempde=*_tempde,*tempde1,**sort_buf;
-  if (tempde) {
-    cnt=LinkedLstCnt(tempde);
+  CDirEntry *tmpde=*_tmpde,*tmpde1,**sort_buf;
+  if (tmpde) {
+    cnt=LinkedLstCnt(tmpde);
     if (cnt>1) {
       sort_buf=MAlloc(cnt*sizeof(U8 *));
       i=0;
-      tempde1=tempde;
-      while (tempde1) {
-	sort_buf[i++]=tempde1;
-	tempde1=tempde1->next;
+      tmpde1=tmpde;
+      while (tmpde1) {
+	sort_buf[i++]=tmpde1;
+	tmpde1=tmpde1->next;
       }
       switch [key] {
 	case SK_NAME:
@@ -111,48 +111,48 @@ U0 DirFilesSort(CDirEntry **_tempde,I64 key)
 	  QSortI64(sort_buf,cnt,&DirEntryCompareCluster);
 	  break;
       }
-      tempde=sort_buf[0];
-      *_tempde=tempde;
+      tmpde=sort_buf[0];
+      *_tmpde=tmpde;
       for (i=0;inext=sort_buf[i+1];
+	tmpde1=sort_buf[i];
+	tmpde1->next=sort_buf[i+1];
       }
-      tempde1=sort_buf[i];
-      tempde1->next=NULL;
+      tmpde1=sort_buf[i];
+      tmpde1->next=NULL;
       Free(sort_buf);
 
-      tempde1=tempde;
-      while (tempde1) {
-	if (tempde1->sub)
-	  DirFilesSort(&tempde1->sub,key);
-	tempde1=tempde1->next;
+      tmpde1=tmpde;
+      while (tmpde1) {
+	if (tmpde1->sub)
+	  DirFilesSort(&tmpde1->sub,key);
+	tmpde1=tmpde1->next;
       }
     } else
-      if (tempde->sub)
-	DirFilesSort(&tempde->sub,key);
+      if (tmpde->sub)
+	DirFilesSort(&tmpde->sub,key);
   }
 }
 
-CDirEntry *DirFilesFlatten(CDirEntry *tempde,CDirEntry **_res,I64 fuf_flags)
+CDirEntry *DirFilesFlatten(CDirEntry *tmpde,CDirEntry **_res,I64 fuf_flags)
 {//Returns last node
-  CDirEntry *tempde1;
+  CDirEntry *tmpde1;
   Bool del;
-  if (tempde)
+  if (tmpde)
     while (TRUE) {
-      tempde1=tempde->next;
-      if (!(tempde->attr&RS_ATTR_DIR)||!(fuf_flags&FUF_JUST_FILES)) {
-	_res=*_res=tempde;
+      tmpde1=tmpde->next;
+      if (!(tmpde->attr&RS_ATTR_DIR)||!(fuf_flags&FUF_JUST_FILES)) {
+	_res=*_res=tmpde;
 	del=FALSE;
       } else
 	del=TRUE;
-      if (tempde->sub) {
-	_res=DirFilesFlatten(tempde->sub,_res,fuf_flags);
-	tempde->sub=NULL;
+      if (tmpde->sub) {
+	_res=DirFilesFlatten(tmpde->sub,_res,fuf_flags);
+	tmpde->sub=NULL;
       }
       if (del)
-	DirEntryDel(tempde);
-      if (tempde1)
-	tempde=tempde1;
+	DirEntryDel(tmpde);
+      if (tmpde1)
+	tmpde=tmpde1;
       else
 	break;
     }
diff --git a/Kernel/BlkDev/DskDirB.HC b/Kernel/BlkDev/DskDirB.HC
index 0c8581f..429dc87 100644
--- a/Kernel/BlkDev/DskDirB.HC
+++ b/Kernel/BlkDev/DskDirB.HC
@@ -104,28 +104,28 @@ Bool IsDir(U8 *dir_name)
 
 I64 Dir(U8 *files_find_mask,Bool full)
 {//List directory.
-  CDirEntry *tempde1=NULL,*tempde2;
+  CDirEntry *tmpde1=NULL,*tmpde2;
   U8 *st;
   CDateStruct ds;
   I64 csize=0xFFFF,c=0xFFFF,res=0;
-  tempde1=FilesFind(files_find_mask);
+  tmpde1=FilesFind(files_find_mask);
   if (!(st=CurDir))
     PrintErr("Invalid Drive\n");
   else {
-    if (tempde1) {
+    if (tmpde1) {
       Free(st);
-      st=MAllocIdent(tempde1->full_name);
+      st=MAllocIdent(tmpde1->full_name);
       StrLastRem(st,"/");
       if (!st[2])
 	StrCpy(st+2,"/");
 //Find max columns
-      tempde2=tempde1;
-      while (tempde2) {
-	if (tempde2->size>csize)
-	  csize=tempde2->size;
-	if (tempde2->cluster>c)
-	  c=tempde2->cluster;
-	tempde2=tempde2->next;
+      tmpde2=tmpde1;
+      while (tmpde2) {
+	if (tmpde2->size>csize)
+	  csize=tmpde2->size;
+	if (tmpde2->cluster>c)
+	  c=tmpde2->cluster;
+	tmpde2=tmpde2->next;
       }
       csize=Bsr(csize)/4+1;
       c=Bsr(c)/4+1;
@@ -136,24 +136,24 @@ I64 Dir(U8 *files_find_mask,Bool full)
 	      csize,"SIZE",c,"CLUSTER";
       else
 	"DATE_ TIME_ %*ts\n",csize,"SIZE";
-      while (tempde1) {
-	tempde2=tempde1->next;
+      while (tmpde1) {
+	tmpde2=tmpde1->next;
 	res++;
 	if (full)
-	  "%D %T %0*tX %0*tX ",tempde1->datetime,tempde1->datetime,
-		csize,tempde1->size,c,tempde1->cluster;
+	  "%D %T %0*tX %0*tX ",tmpde1->datetime,tmpde1->datetime,
+		csize,tmpde1->size,c,tmpde1->cluster;
 	else {
-	  Date2Struct(&ds,tempde1->datetime+local_time_offset);
+	  Date2Struct(&ds,tmpde1->datetime+local_time_offset);
 	  "%02d/%02d %02d:%02d %0*tX ",ds.mon,ds.day_of_mon,ds.hour,ds.min,
-		csize,tempde1->size;
+		csize,tmpde1->size;
 	}
-	if (tempde1->attr & RS_ATTR_DIR)
-	  PutDirLink(tempde1->name,tempde1->full_name);
+	if (tmpde1->attr & RS_ATTR_DIR)
+	  PutDirLink(tmpde1->name,tmpde1->full_name);
 	else
-	  PutFileLink(tempde1->name,tempde1->full_name);
+	  PutFileLink(tmpde1->name,tmpde1->full_name);
 	'\n';
-	DirEntryDel(tempde1);
-	tempde1=tempde2;
+	DirEntryDel(tmpde1);
+	tmpde1=tmpde2;
       }
     } else
       "No matching entries\n";
diff --git a/Kernel/BlkDev/DskDirContext.HC b/Kernel/BlkDev/DskDirContext.HC
index 08a03e8..7a62e94 100644
--- a/Kernel/BlkDev/DskDirContext.HC
+++ b/Kernel/BlkDev/DskDirContext.HC
@@ -1,17 +1,19 @@
-U0 DirContextDel(CDirContext *dirc)
+U0 DirContextDel(CDirContext *dirc,Bool restore=TRUE)
 {//Change back to old cur_dir and drv.
   CBlkDev *bd;
   if (!dirc) return;
-  bd=dirc->old_dv->bd;
-  if (!(bd->flags & BDF_INIT_IN_PROGRESS)) {
-    if (dirc->old_dir) {
-      Drv(Drv2Let(dirc->old_dv));
-      Cd(dirc->old_dir);
+  if (restore) {
+    bd=dirc->old_dv->bd;
+    if (!(bd->flags & BDF_INIT_IN_PROGRESS)) {
+      if (dirc->old_dir) {
+	Drv(Drv2Let(dirc->old_dv));
+	Cd(dirc->old_dir);
+      }
+    } else {
+      Fs->cur_dv=dirc->old_dv;
+      Free(Fs->cur_dir);
+      Fs->cur_dir=StrNew("/");
     }
-  } else {
-    Fs->cur_dv=dirc->old_dv;
-    Free(Fs->cur_dir);
-    Fs->cur_dir=StrNew("/");
   }
   Free(dirc->old_dir);
   Free(dirc->mask);
@@ -23,12 +25,12 @@ CDirContext *DirContextNew(U8 *_mask,Bool make_mask=FALSE,
 {//Save cur_dir and drv. Change to new dir.
   Bool valid=TRUE,old_silent;
   I64 mask_len=StrLen(_mask);
-  U8 *buf,*mask,*temp_mask,*semicolon_mask;
+  U8 *buf,*mask,*tmp_mask,*semicolon_mask;
   CDirContext *dirc=CAlloc(sizeof(CDirContext));
   dirc->old_dir=StrNew(Fs->cur_dir);
   dirc->old_dv=Fs->cur_dv;
   mask=MStrUtil(_mask,SUF_REM_LEADING|SUF_REM_TRAILING|SUF_REM_CTRL_CHARS);
-  temp_mask=mask;
+  tmp_mask=mask;
   if (*mask && mask[1]==':') {
     if (Fs->cur_dv!=Let2Drv(*mask) && !Drv(*mask))
       valid=FALSE;
@@ -76,7 +78,7 @@ CDirContext *DirContextNew(U8 *_mask,Bool make_mask=FALSE,
     }
   }
   Free(buf);
-  Free(temp_mask);
+  Free(tmp_mask);
   if (!valid) {
     DirContextDel(dirc);
     dirc=NULL;
diff --git a/Kernel/BlkDev/DskFile.HC b/Kernel/BlkDev/DskFile.HC
index bbeb349..279583d 100644
--- a/Kernel/BlkDev/DskFile.HC
+++ b/Kernel/BlkDev/DskFile.HC
@@ -1,19 +1,19 @@
 U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
 {//Read whole file from disk.
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   U8 *absname,*altname,*curname,*res=NULL;
   I64 i,size=0,attr=0;
   CDirContext *dirc;
   CArcCompress *arc;
   absname=FileNameAbs(filename);
   altname=ToggleZorNotZ(absname);
-  if ((temph=HashFind(absname,adam_task->hash_table,HTT_FILE))||
-	(temph=HashFind(altname,adam_task->hash_table,HTT_FILE))) {
-    size=temph->user_data1;
+  if ((tmph=HashFind(absname,adam_task->hash_table,HTT_FILE))||
+	(tmph=HashFind(altname,adam_task->hash_table,HTT_FILE))) {
+    size=tmph->user_data1;
     res=MAlloc(size+1);
-    MemCpy(res,temph->user_data0,size);
+    MemCpy(res,tmph->user_data0,size);
     res[size]=0; //Terminate
-    attr=FileAttr(temph->str,attr);
+    attr=FileAttr(tmph->str,attr);
   } else {
     for (i=0;i<2 && !res;i++) {//Try name, then altname
       if (!i)
@@ -87,7 +87,7 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
 I64 FileWrite(U8 *filename,U8 *fbuf,I64 size,CDate cdt=0,I64 attr=0)
 {//Write whole file to disk.
   I64 c=0;
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   CDirContext *dirc;
   U8 *fbuf2,*absname=FileNameAbs(filename);
   if (dirc=DirContextNew(filename,FALSE,TRUE)) {
@@ -112,13 +112,13 @@ I64 FileWrite(U8 *filename,U8 *fbuf,I64 size,CDate cdt=0,I64 attr=0)
       default:
 	PrintErr("File System Not Supported\n");
     }
-    if (temph=HashFind(absname,adam_task->hash_table,HTT_FILE)) {
+    if (tmph=HashFind(absname,adam_task->hash_table,HTT_FILE)) {
       if (attr & RS_ATTR_RESIDENT) {
-	Free(temph->user_data0);
-	temph->user_data0=AMAllocIdent(fbuf);
-	temph->user_data1=size;
+	Free(tmph->user_data0);
+	tmph->user_data0=AMAllocIdent(fbuf);
+	tmph->user_data1=size;
       } else
-	HashRemDel(temph,adam_task->hash_table);
+	HashRemDel(tmph,adam_task->hash_table);
     } else if (attr & RS_ATTR_RESIDENT)
       HashGenericAdd(absname,HTT_FILE,AMAllocIdent(fbuf),size,0,adam_task);
     Free(fbuf2);
diff --git a/Kernel/BlkDev/DskStrA.HC b/Kernel/BlkDev/DskStrA.HC
index 6ed1e7b..55d00ad 100644
--- a/Kernel/BlkDev/DskStrA.HC
+++ b/Kernel/BlkDev/DskStrA.HC
@@ -71,6 +71,10 @@ Bool FilesFindMatch(U8 *_test_name,U8 *files_find_mask,I64 fuf_flags=0)
 		!FilesFindMatch(_test_name,FILEMASK_TXT)) {
 	    res=FALSE;
 	    break;
+	  } else if (Bt(&fuf_flags,FUf_JUST_DD) &&
+		!FilesFindMatch(_test_name,FILEMASK_DD)) {
+	    res=FALSE;
+	    break;
 	  } else if (Bt(&fuf_flags,FUf_JUST_SRC) &&
 		!FilesFindMatch(_test_name,FILEMASK_SRC)) {
 	    res=FALSE;
@@ -83,8 +87,8 @@ Bool FilesFindMatch(U8 *_test_name,U8 *files_find_mask,I64 fuf_flags=0)
 		!FilesFindMatch(_test_name,FILEMASK_JIT)) {
 	    res=FALSE;
 	    break;
-	  } else if (Bt(&fuf_flags,FUf_JUST_GRA) &&
-		!FilesFindMatch(_test_name,FILEMASK_GRA)) {
+	  } else if (Bt(&fuf_flags,FUf_JUST_GR) &&
+		!FilesFindMatch(_test_name,FILEMASK_GR)) {
 	    res=FALSE;
 	    break;
 	  } else
@@ -214,19 +218,19 @@ U8 *DftExt(U8 *filename,U8 *extension)
   return res;
 }
 
-CDirEntry *Cd2DirEntry(CDirEntry *tempde,U8 *abs_name)
+CDirEntry *Cd2DirEntry(CDirEntry *tmpde,U8 *abs_name)
 {
   I64 i;
-  while (tempde) {
-    i=StrLen(tempde->full_name);
-    if (StrNCmp(tempde->full_name,abs_name,i)||
-	  i && tempde->full_name[i-1]!='/' && abs_name[i] && abs_name[i]!='/')
-      tempde=tempde->next;
+  while (tmpde) {
+    i=StrLen(tmpde->full_name);
+    if (StrNCmp(tmpde->full_name,abs_name,i)||
+	  i && tmpde->full_name[i-1]!='/' && abs_name[i] && abs_name[i]!='/')
+      tmpde=tmpde->next;
     else
       if (StrLen(abs_name)==i)
-	return tempde;
+	return tmpde;
       else
-	return Cd2DirEntry(tempde->sub,abs_name);
+	return Cd2DirEntry(tmpde->sub,abs_name);
   }
   return NULL;
 }
@@ -269,9 +273,9 @@ U8 *ToggleZorNotZ(U8 *name)
   return res;
 }
 
-U8 *FileNameTempTxt()
-{//Make pretty-safe temp filename in home dir.
-  return MStrPrint("~/SysTemp%X.DD.Z",GetTSC>>8&0xFFFFFFFF);
+U8 *FileNameTmpTxt()
+{//Make pretty-safe tmp filename in home dir.
+  return MStrPrint("~/SysTmp%X.DD.Z",GetTSC>>8&0xFFFFFFFF);
 }
 
 U8 *CurDir(CTask *task=NULL,CTask *mem_task=NULL)
diff --git a/Kernel/BlkDev/FileSysFAT.HC b/Kernel/BlkDev/FileSysFAT.HC
index 926111c..0f8bc55 100644
--- a/Kernel/BlkDev/FileSysFAT.HC
+++ b/Kernel/BlkDev/FileSysFAT.HC
@@ -196,50 +196,50 @@ U8 fat_long_name_map[13]={
   offset(CFAT32DirEntryLong.name3)+2
 };
 
-Bool DirLongNameFill(CDirEntry *tempde,CFAT32DirEntryLong *de,I64 *xsum)
+Bool DirLongNameFill(CDirEntry *tmpde,CFAT32DirEntryLong *de,I64 *xsum)
 {
   I64 i;
   U8 *ptr=de;
   if (de->ord&0x40) {
-    MemSet(tempde,0,sizeof(CDirEntry));
+    MemSet(tmpde,0,sizeof(CDirEntry));
     *xsum=de->xsum;
   } else if (de->type || de->zero || de->xsum!=*xsum) {
-    MemSet(tempde,0,sizeof(CDirEntry));
+    MemSet(tmpde,0,sizeof(CDirEntry));
     *xsum=0;
     return FALSE;
   }
   switch (de->ord&0x3F) {
     case 1:
       for (i=0;i<13;i++)
-	if (!(tempde->name[i]=ptr[fat_long_name_map[i]]))
+	if (!(tmpde->name[i]=ptr[fat_long_name_map[i]]))
 	  return TRUE;
       break;
     case 2:
       for (i=0;i<12;i++)
-	if (!(tempde->name[i+13]=ptr[fat_long_name_map[i]]))
+	if (!(tmpde->name[i+13]=ptr[fat_long_name_map[i]]))
 	  return TRUE;
       break;
   }
   return TRUE;
 }
 
-Bool FAT32CDirFill(CDirEntry *tempde,
+Bool FAT32CDirFill(CDirEntry *tmpde,
 	CFAT32DirEntry *de,CDate _local_time_offset)
 {
   Bool res;
-  if (*tempde->name)
+  if (*tmpde->name)
     res=TRUE;
   else
-    res=FATFromName(tempde->name,de->name);
-  tempde->cluster=de->cluster_lo+de->cluster_hi<<16;
-  tempde->size=de->size;
-  tempde->attr=de->attr;
-  tempde->datetime=Dos2CDate(de->WrtTime,de->WrtDate)-_local_time_offset;
+    res=FATFromName(tmpde->name,de->name);
+  tmpde->cluster=de->cluster_lo+de->cluster_hi<<16;
+  tmpde->size=de->size;
+  tmpde->attr=de->attr;
+  tmpde->datetime=Dos2CDate(de->WrtTime,de->WrtDate)-_local_time_offset;
   return res;
 }
 
 Bool FAT32DirFill(CFAT32DirEntry *de,
-	CDirEntry *tempde,I64 *_de_cnt,CDate _local_time_offset)
+	CDirEntry *tmpde,I64 *_de_cnt,CDate _local_time_offset)
 {//Fill up to 3 entries and store cnt of entries.
   I64 de_cnt=0,i,l,xsum,ord;
   U8 *ptr,dname[16];
@@ -247,19 +247,19 @@ Bool FAT32DirFill(CFAT32DirEntry *de,
   Bool res;
 
   MemSet(de,0,sizeof(CFAT32DirEntry));
-  res=FATNameTo(de->name,tempde->name);
+  res=FATNameTo(de->name,tmpde->name);
   FATFromName(dname,de->name);
-  if (StrCmp(dname,tempde->name)) {
+  if (StrCmp(dname,tmpde->name)) {
     ord=0x41;
     xsum=FATNameXSum(de->name);
-    if ((l=StrLen(tempde->name))>13) {
+    if ((l=StrLen(tmpde->name))>13) {
       ptr=&ld[de_cnt];
       MemSet(ptr,0,sizeof(CFAT32DirEntryLong));
       ld[de_cnt].attr=RS_ATTR_LONG_NAME;
       ld[de_cnt].xsum=xsum;
       ld[de_cnt].ord=0x42;
       for (i=13;iname[i];
+	ptr[fat_long_name_map[i-13]]=tmpde->name[i];
       i++;
       for (;i<26;i++)
 	ptr[fat_long_name_map[i-13]](U16)=0xFFFF;
@@ -273,23 +273,23 @@ Bool FAT32DirFill(CFAT32DirEntry *de,
     ld[de_cnt].xsum=xsum;
     ld[de_cnt].ord=ord;
     for (i=0;iname[i];
+      ptr[fat_long_name_map[i]]=tmpde->name[i];
     i++;
     for (;i<13;i++)
       ptr[fat_long_name_map[i]](U16)=0xFFFF;
     de_cnt++;
     MemSet(&de[de_cnt],0,sizeof(CFAT32DirEntry));
-    res=FATNameTo(de[de_cnt].name,tempde->name);
+    res=FATNameTo(de[de_cnt].name,tmpde->name);
   }
-  de[de_cnt].cluster_lo=tempde->cluster.u16[0];
-  de[de_cnt].cluster_hi=tempde->cluster.u16[1];
-  if (!(tempde->attr&RS_ATTR_DIR))
-    de[de_cnt].size=tempde->size;
-  de[de_cnt].attr=tempde->attr;
-  if (!tempde->datetime)
-    tempde->datetime=Now;
+  de[de_cnt].cluster_lo=tmpde->cluster.u16[0];
+  de[de_cnt].cluster_hi=tmpde->cluster.u16[1];
+  if (!(tmpde->attr&RS_ATTR_DIR))
+    de[de_cnt].size=tmpde->size;
+  de[de_cnt].attr=tmpde->attr;
+  if (!tmpde->datetime)
+    tmpde->datetime=Now;
   CDate2Dos(&de[de_cnt].WrtTime,&de[de_cnt].WrtDate,
-	tempde->datetime+_local_time_offset);
+	tmpde->datetime+_local_time_offset);
   if (_de_cnt)
     *_de_cnt=de_cnt+1;
   return res;
@@ -573,17 +573,17 @@ I64 FAT32AllocContiguousClusters(CDrv *dv,I64 cnt)
   return first;
 }
 
-Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
+Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,Bool free_old_chain)
 {
 //See $LK,"::/Doc/CutCorners.DD"$.
-  CFAT32DirEntry *buf,*last_buf,*temp_buf,de[3];
+  CFAT32DirEntry *buf,*last_buf,*tmp_buf,de[3];
   I64 i,attr,avail_cnt,de_cnt,c,
 	cur_dir_entry,entries_per_cluster,
 	cur_dir_cluster,xsum=0,last_dir_cluster=INVALID_CLUSTER;
   U8 ch;
   Bool written=FALSE,unlock,unlock_break;
   CDirEntry long_name;
-  FAT32DirFill(&de,tempde,&de_cnt,dv->fat32_local_time_offset);
+  FAT32DirFill(&de,tmpde,&de_cnt,dv->fat32_local_time_offset);
   MemSet(&long_name,0,sizeof(CDirEntry));
   try {
     unlock_break=BreakLock;
@@ -620,7 +620,7 @@ Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
 	  if (!*long_name.name)
 	    FATFromName(long_name.name,buf[cur_dir_entry].name);
 //Del old entry with same name
-	  if (!StrCmp(long_name.name,tempde->name)) {
+	  if (!StrCmp(long_name.name,tmpde->name)) {
 	    if (free_old_chain)
 	      FAT32FreeClusters(dv,buf[cur_dir_entry].cluster_lo+
 		    buf[cur_dir_entry].cluster_hi<<16);
@@ -662,7 +662,7 @@ Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
       }
       if (++cur_dir_entry==entries_per_cluster) {
 	last_dir_cluster=cur_dir_cluster;
-	temp_buf=buf; buf=last_buf; last_buf=temp_buf;
+	tmp_buf=buf; buf=last_buf; last_buf=tmp_buf;
 	c=ClusterNumNext(dv,cur_dir_cluster);
 	if (!(0spc);
@@ -726,7 +726,7 @@ Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
 I64 FAT32FilesDel(CDrv *dv,U8 *cur_dir,U8 *files_find_mask,I64 fuf_flags,
 		     Bool del_dir,Bool print_msg)
 {
-  CFAT32DirEntry *buf,*last_buf,*temp_buf;
+  CFAT32DirEntry *buf,*last_buf,*tmp_buf;
   I64 i,res=0,attr,xsum=0,last_dir_cluster=INVALID_CLUSTER,
 	cur_dir_entry,entries_per_cluster,cur_dir_cluster;
   U8 ch;
@@ -792,7 +792,7 @@ I64 FAT32FilesDel(CDrv *dv,U8 *cur_dir,U8 *files_find_mask,I64 fuf_flags,
       if (++cur_dir_entry==entries_per_cluster) {
 	last_dir_cluster=cur_dir_cluster;
 	cur_dir_cluster=ClusterNumNext(dv,cur_dir_cluster,1);
-	temp_buf=buf; buf=last_buf; last_buf=temp_buf;
+	tmp_buf=buf; buf=last_buf; last_buf=tmp_buf;
 	RClusters(dv,buf,cur_dir_cluster,1);
 	cur_dir_entry=0;
       }
@@ -851,7 +851,7 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,
   I64 attr,xsum=0,dir_size=0,sub_dir_size,
 	cur_dir_cluster,cur_dir_entry,entries_per_cluster;
   U8 ch;
-  CDirEntry *res=NULL,*tempde,long_name;
+  CDirEntry *res=NULL,*tmpde,long_name;
   if (fuf_flags&~FUG_FILES_FIND)
     throw('FUF');
   try {
@@ -870,41 +870,41 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,
 	  DirLongNameFill(&long_name,&buf[cur_dir_entry],&xsum);
 	else {
 	  if (!(attr&RS_ATTR_VOL_ID)) {
-	    tempde=MAlloc(sizeof(CDirEntry));
+	    tmpde=MAlloc(sizeof(CDirEntry));
 	    if (xsum==FATNameXSum(buf[cur_dir_entry].name))
-	      MemCpy(tempde,&long_name,sizeof(CDirEntry));
+	      MemCpy(tmpde,&long_name,sizeof(CDirEntry));
 	    else
-	      MemSet(tempde,0,sizeof(CDirEntry));
-	    if (FAT32CDirFill(tempde,&buf[cur_dir_entry],
+	      MemSet(tmpde,0,sizeof(CDirEntry));
+	    if (FAT32CDirFill(tmpde,&buf[cur_dir_entry],
 		  dv->fat32_local_time_offset)) {
-	      tempde->parent=parent;
+	      tmpde->parent=parent;
 	      if (Bt(&fuf_flags,FUf_RECURSE) && attr&RS_ATTR_DIR &&
-		    *tempde->name!='.') {
-		tempde->next=res;
-		res=tempde;
-		tempde->full_name=DirNameAbs(tempde->name);
+		    *tmpde->name!='.') {
+		tmpde->next=res;
+		res=tmpde;
+		tmpde->full_name=DirNameAbs(tmpde->name);
 		DrvUnlock(dv);
-		if (Cd(tempde->name)) {
-		  tempde->sub=FAT32FilesFind(files_find_mask,fuf_flags,
-			tempde,&sub_dir_size);
-		  tempde->size=sub_dir_size;
+		if (Cd(tmpde->name)) {
+		  tmpde->sub=FAT32FilesFind(files_find_mask,fuf_flags,
+			tmpde,&sub_dir_size);
+		  tmpde->size=sub_dir_size;
 		  Cd("..");
 		}
 		DrvLock(dv);
 	      } else {
-		tempde->full_name=FileNameAbs(tempde->name);
+		tmpde->full_name=FileNameAbs(tmpde->name);
 		if ((attr&RS_ATTR_DIR || !Bt(&fuf_flags,FUf_JUST_DIRS)) &&
 		      !(Bt(&fuf_flags,FUf_RECURSE) &&
-		      *tempde->name=='.' && attr&RS_ATTR_DIR) &&
-		      FilesFindMatch(tempde->full_name,files_find_mask,
+		      *tmpde->name=='.' && attr&RS_ATTR_DIR) &&
+		      FilesFindMatch(tmpde->full_name,files_find_mask,
 		      fuf_flags)) {
-		  tempde->next=res;
-		  res=tempde;
+		  tmpde->next=res;
+		  res=tmpde;
 		} else
-		  DirEntryDel(tempde);
+		  DirEntryDel(tmpde);
 	      }
 	    } else
-	      DirEntryDel(tempde);
+	      DirEntryDel(tmpde);
 	  }
 	  MemSet(&long_name,0,sizeof(CDirEntry));
 	}
diff --git a/Kernel/BlkDev/FileSysISO.HC b/Kernel/BlkDev/FileSysISO.HC
index d78475d..25bf8de 100644
--- a/Kernel/BlkDev/FileSysISO.HC
+++ b/Kernel/BlkDev/FileSysISO.HC
@@ -53,17 +53,17 @@ Bool ISO1FromName(U8 *dst,U8 *src)
   return FileNameChk(dst);
 }
 
-Bool ISO1CDirFill(CDirEntry *tempde,CISO1DirEntry *de)
+Bool ISO1CDirFill(CDirEntry *tmpde,CISO1DirEntry *de)
 {
   Bool res;
-  MemSet(tempde,0,sizeof(CDirEntry));
-  res=ISO1FromName(tempde->name,&de->name_len);
-  tempde->cluster=de->loc.little;
-  tempde->size=de->size.little;
-  tempde->attr=FileAttr(tempde->name);
+  MemSet(tmpde,0,sizeof(CDirEntry));
+  res=ISO1FromName(tmpde->name,&de->name_len);
+  tmpde->cluster=de->loc.little;
+  tmpde->size=de->size.little;
+  tmpde->attr=FileAttr(tmpde->name);
   if (de->flags & ISO1_ATTR_DIR)
-    tempde->attr|=RS_ATTR_DIR;
-  tempde->datetime=ISO1DateStruct2CDate(&de->date);
+    tmpde->attr|=RS_ATTR_DIR;
+  tmpde->datetime=ISO1DateStruct2CDate(&de->date);
   return res;
 }
 
@@ -176,7 +176,7 @@ CDirEntry *ISO1FilesFind(U8 *files_find_mask,
   CDrv *dv=Fs->cur_dv;
   CISO1DirEntry *buf,*buf2,*isoptr;
   I64 i,cur_dir_cluster=Name2DirCluster(dv,Fs->cur_dir);
-  CDirEntry *res=NULL,*tempde;
+  CDirEntry *res=NULL,*tmpde;
   if (fuf_flags&~FUG_FILES_FIND)
     throw('FUF');
   isoptr=MAlloc(dv->spc<parent=parent;
-	if (Bt(&fuf_flags,FUf_RECURSE) && tempde->attr&RS_ATTR_DIR &&
-	      *tempde->name!='.') {
-	  tempde->next=res;
-	  res=tempde;
-	  tempde->full_name=DirNameAbs(tempde->name);
-	  if (Cd(tempde->name)) {
-	    tempde->sub=ISO1FilesFind(files_find_mask,fuf_flags,tempde);
+      tmpde=MAlloc(sizeof(CDirEntry));
+      if (ISO1CDirFill(tmpde,buf)) {
+	tmpde->parent=parent;
+	if (Bt(&fuf_flags,FUf_RECURSE) && tmpde->attr&RS_ATTR_DIR &&
+	      *tmpde->name!='.') {
+	  tmpde->next=res;
+	  res=tmpde;
+	  tmpde->full_name=DirNameAbs(tmpde->name);
+	  if (Cd(tmpde->name)) {
+	    tmpde->sub=ISO1FilesFind(files_find_mask,fuf_flags,tmpde);
 	    Cd("..");
 	  }
 	} else {
-	  tempde->full_name=FileNameAbs(tempde->name);
-	  if ((tempde->attr & RS_ATTR_DIR ||
+	  tmpde->full_name=FileNameAbs(tmpde->name);
+	  if ((tmpde->attr & RS_ATTR_DIR ||
 		!Bt(&fuf_flags,FUf_JUST_DIRS)) &&
 		!(Bt(&fuf_flags,FUf_RECURSE) &&
-		*tempde->name=='.' && tempde->attr&RS_ATTR_DIR) &&
-		FilesFindMatch(tempde->full_name,files_find_mask,fuf_flags)) {
-	    tempde->next=res;
-	    res=tempde;
+		*tmpde->name=='.' && tmpde->attr&RS_ATTR_DIR) &&
+		FilesFindMatch(tmpde->full_name,files_find_mask,fuf_flags)) {
+	    tmpde->next=res;
+	    res=tmpde;
 	  } else
-	    DirEntryDel(tempde);
+	    DirEntryDel(tmpde);
 	}
       } else
-	DirEntryDel(tempde);
+	DirEntryDel(tmpde);
       i-=buf->len;
       buf(U8 *)+=buf->len;
     }
diff --git a/Kernel/BlkDev/FileSysRedSea.HC b/Kernel/BlkDev/FileSysRedSea.HC
index c0c0d7e..2ea99ef 100644
--- a/Kernel/BlkDev/FileSysRedSea.HC
+++ b/Kernel/BlkDev/FileSysRedSea.HC
@@ -2,15 +2,15 @@
 
 U0 RedSeaFreeFreeLst(CDrv *dv)
 {
-  CFreeLst *tempf,*tempf1;
+  CFreeLst *tmpf,*tmpf1;
   Bool unlock;
   try {
     unlock=DrvLock(dv);
-    if (tempf=dv->next_free) {
-      while (tempf!=&dv->next_free) {
-	tempf1=tempf->next;
-	Free(tempf);
-	tempf=tempf1;
+    if (tmpf=dv->next_free) {
+      while (tmpf!=&dv->next_free) {
+	tmpf1=tmpf->next;
+	Free(tmpf);
+	tmpf=tmpf1;
       }
     }
     dv->next_free=NULL;
@@ -24,7 +24,7 @@ U0 RedSeaFreeFreeLst(CDrv *dv)
 U0 RedSeaFreeLstBuild(CDrv *dv)
 {
   Bool unlock;
-  CFreeLst *tempf;
+  CFreeLst *tmpf;
   I64 i,first=dv->data_area,max_blk=dv->size+dv->drv_offset;
   try {
     unlock=DrvLock(dv);
@@ -41,10 +41,10 @@ U0 RedSeaFreeLstBuild(CDrv *dv)
 	  i++;
       }
       if (i) {
-	tempf=AMAlloc(sizeof(CFreeLst));
-	tempf->size=i;
-	tempf->start=first;
-	QueIns(tempf,dv->last_free);
+	tmpf=AMAlloc(sizeof(CFreeLst));
+	tmpf->size=i;
+	tmpf->start=first;
+	QueIns(tmpf,dv->last_free);
       }
       first+=i+1;
     }
@@ -249,7 +249,7 @@ Bool RedSeaCd(U8 *name,I64 cur_dir_cluster)
 
 U0 RedSeaFreeClusters(CDrv *dv,I64 c,I64 cnt)
 {
-  CFreeLst *tempf;
+  CFreeLst *tmpf;
   Bool found=FALSE,unlock,unlock_break;
   DrvChk(dv);
   if (!c) return;
@@ -261,23 +261,23 @@ U0 RedSeaFreeClusters(CDrv *dv,I64 c,I64 cnt)
       unlock=DrvLock(dv);
       if (!dv->next_free)
 	RedSeaFreeLstBuild(dv);
-      tempf=dv->next_free;
-      while (!found && tempf!=&dv->next_free) {
-	if (tempf->start+tempf->size==c) {
-	  tempf->size+=cnt;
+      tmpf=dv->next_free;
+      while (!found && tmpf!=&dv->next_free) {
+	if (tmpf->start+tmpf->size==c) {
+	  tmpf->size+=cnt;
 	  found=TRUE;
-	} else if (c+cnt==tempf->start) {
-	  tempf->size+=cnt;
-	  tempf->start=c;
+	} else if (c+cnt==tmpf->start) {
+	  tmpf->size+=cnt;
+	  tmpf->start=c;
 	  found=TRUE;
 	}
-	tempf=tempf->next;
+	tmpf=tmpf->next;
       }
       if (!found) {
-	tempf=AMAlloc(sizeof(CFreeLst));
-	tempf->size=cnt;
-	tempf->start=c;
-	QueIns(tempf,dv->last_free);
+	tmpf=AMAlloc(sizeof(CFreeLst));
+	tmpf->size=cnt;
+	tmpf->start=c;
+	QueIns(tmpf,dv->last_free);
       }
       while (cnt-->0) {
 	DrvFATBlkSet(dv,c);
@@ -301,7 +301,7 @@ U0 RedSeaFreeClusters(CDrv *dv,I64 c,I64 cnt)
 
 I64 RedSeaAllocClusters(CDrv *dv,I64 cnt)
 {
-  CFreeLst *tempf,*best_free=NULL;
+  CFreeLst *tmpf,*best_free=NULL;
   I64 i,first,best_size=MAX_I64;
   Bool unlock,unlock_break;
   if (cnt<=0)
@@ -311,15 +311,15 @@ I64 RedSeaAllocClusters(CDrv *dv,I64 cnt)
     unlock=DrvLock(dv);
     if (!dv->next_free)
       RedSeaFreeLstBuild(dv);
-    tempf=dv->next_free;
-    while (tempf!=&dv->next_free) {
-      if (tempf->size>=cnt && tempf->sizesize;
-	if (tempf->size==cnt)
+    tmpf=dv->next_free;
+    while (tmpf!=&dv->next_free) {
+      if (tmpf->size>=cnt && tmpf->sizesize;
+	if (tmpf->size==cnt)
 	  break;
       }
-      tempf=tempf->next;
+      tmpf=tmpf->next;
     }
     if (!best_free)
       throw('Drv');
@@ -349,16 +349,16 @@ I64 RedSeaAllocClusters(CDrv *dv,I64 cnt)
   return first;
 }
 
-Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
+Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,Bool free_old_chain)
 {
   CDirEntry *buf,*buf2,*ptr,de2;
   CRedSeaBoot *br;
   I64 c,ch,i=1,j=0,n=BLK_SIZE/CDIR_SIZE,dir_size,cur_dir_cluster;
   Bool written=FALSE,unlock,unlock_break;
-  U8 *temp,*parent_dir;
+  U8 *tmp,*parent_dir;
   try {
     unlock_break=BreakLock;
-    tempde->attr|=RS_ATTR_CONTIGUOUS;
+    tmpde->attr|=RS_ATTR_CONTIGUOUS;
     unlock=DrvLock(dv);
     cur_dir_cluster=Name2DirCluster(dv,cur_dir);
     buf2=MAlloc(BLK_SIZE);
@@ -374,7 +374,7 @@ Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,Bool free_old_chain)
     while (TRUE) {
       if (!(ch=*ptr->name)) {
 	if (!written)
-	  MemCpy(&ptr->start,&tempde->start,CDIR_SIZE);
+	  MemCpy(&ptr->start,&tmpde->start,CDIR_SIZE);
 	if ((i+1)*CDIR_SIZE+j<root_cluster=c;
 	  } else {
-	    temp=StrNew(cur_dir);
+	    tmp=StrNew(cur_dir);
 	    parent_dir=StrNew(cur_dir);
-	    StrLastRem(parent_dir,"/",temp);
+	    StrLastRem(parent_dir,"/",tmp);
 	    if (!*parent_dir) {
 	      Free(parent_dir);
 	      parent_dir=StrNew("/");
 	    }
 	    if (RedSeaFileFind(dv,Name2DirCluster(dv,parent_dir),
-		  temp,&de2,FUF_JUST_DIRS)) {
+		  tmp,&de2,FUF_JUST_DIRS)) {
 	      de2.cluster=c;
 	      de2.size=dir_size;
 	      RedSeaDirNew(dv,parent_dir,&de2,FALSE);
 	    } else
 	      throw('Drv');
-	    Free(temp);
+	    Free(tmp);
 	    Free(parent_dir);
 	  }
 	}
 	break;
       } else if (ptr->attr & RS_ATTR_DELETED) {
 	if (!written) {
-	  MemCpy(&ptr->start,&tempde->start,CDIR_SIZE);
+	  MemCpy(&ptr->start,&tmpde->start,CDIR_SIZE);
 	  WBlks(dv,buf(U8 *)+j<name,ptr->name)) {
+	if (!StrCmp(tmpde->name,ptr->name)) {
 	  if (free_old_chain)
 	    RedSeaFreeClusters(dv,ptr->cluster,
 		  (ptr->size+BLK_SIZE-1)>>BLK_SIZE_BITS);
 	  if (!written)
-	    MemCpy(&ptr->start,&tempde->start,CDIR_SIZE);
+	    MemCpy(&ptr->start,&tmpde->start,CDIR_SIZE);
 	  else
 	    ptr->attr|=RS_ATTR_DELETED;
 	  WBlks(dv,buf(U8 *)+j<cur_dv;
-  CDirEntry *buf,*buf2,*ptr,*res=NULL,*tempde;
+  CDirEntry *buf,*buf2,*ptr,*res=NULL,*tmpde;
   I64 ch,cur_dir_cluster;
   if (fuf_flags&~FUG_FILES_FIND)
     throw('FUF');
@@ -565,31 +565,31 @@ CDirEntry *RedSeaFilesFind(U8 *files_find_mask,I64 fuf_flags,
       if (!(ch=*ptr->name))
 	break;
       else if (!(ptr->attr & RS_ATTR_DELETED)) {
-	tempde=CAlloc(sizeof(CDirEntry));
-	MemCpy(&tempde->start,&ptr->start,CDIR_SIZE);
-	tempde->parent=parent;
-	if (Bt(&fuf_flags,FUf_RECURSE) && tempde->attr&RS_ATTR_DIR &&
-	      *tempde->name!='.') {
-	  tempde->next=res;
-	  res=tempde;
-	  tempde->full_name=DirNameAbs(tempde->name);
+	tmpde=CAlloc(sizeof(CDirEntry));
+	MemCpy(&tmpde->start,&ptr->start,CDIR_SIZE);
+	tmpde->parent=parent;
+	if (Bt(&fuf_flags,FUf_RECURSE) && tmpde->attr&RS_ATTR_DIR &&
+	      *tmpde->name!='.') {
+	  tmpde->next=res;
+	  res=tmpde;
+	  tmpde->full_name=DirNameAbs(tmpde->name);
 	  DrvUnlock(dv);
-	  if (Cd(tempde->name)) {
-	    tempde->sub=RedSeaFilesFind(files_find_mask,fuf_flags,tempde);
+	  if (Cd(tmpde->name)) {
+	    tmpde->sub=RedSeaFilesFind(files_find_mask,fuf_flags,tmpde);
 	    Cd("..");
 	  }
 	  DrvLock(dv);
 	} else {
-	  tempde->full_name=FileNameAbs(tempde->name);
-	  if ((tempde->attr&RS_ATTR_DIR ||
+	  tmpde->full_name=FileNameAbs(tmpde->name);
+	  if ((tmpde->attr&RS_ATTR_DIR ||
 		!Bt(&fuf_flags,FUf_JUST_DIRS)) &&
-		!(Bt(&fuf_flags,FUf_RECURSE) && *tempde->name=='.' &&
-		tempde->attr&RS_ATTR_DIR) &&
-		FilesFindMatch(tempde->full_name,files_find_mask,fuf_flags)) {
-	    tempde->next=res;
-	    res=tempde;
+		!(Bt(&fuf_flags,FUf_RECURSE) && *tmpde->name=='.' &&
+		tmpde->attr&RS_ATTR_DIR) &&
+		FilesFindMatch(tmpde->full_name,files_find_mask,fuf_flags)) {
+	    tmpde->next=res;
+	    res=tmpde;
 	  } else
-	    DirEntryDel(tempde);
+	    DirEntryDel(tmpde);
 	}
       }
       ptr(U8 *)+=CDIR_SIZE;
diff --git a/Kernel/Compress.HC b/Kernel/Compress.HC
index a042613..304fb0b 100644
--- a/Kernel/Compress.HC
+++ b/Kernel/Compress.HC
@@ -6,7 +6,7 @@ asm {
 U0 ArcEntryGet(CArcCtrl *c)
 {
   I64 i;
-  CArcEntry *temp,*temp1;
+  CArcEntry *tmp,*tmp1;
 
   if (c->entry_used) {
     i=c->free_idx;
@@ -24,15 +24,15 @@ U0 ArcEntryGet(CArcCtrl *c)
       do if (++i==c->free_limit)
 	  i=c->min_table_entry;
       while (c->hash[i]);
-      temp=&c->compress[i];
-      c->next_entry=temp;
-      temp1=&c->hash[temp->basecode];
-      while (temp1) {
-	if (temp1->next==temp) {
-	  temp1->next=temp->next;
+      tmp=&c->compress[i];
+      c->next_entry=tmp;
+      tmp1=&c->hash[tmp->basecode];
+      while (tmp1) {
+	if (tmp1->next==tmp) {
+	  tmp1->next=tmp->next;
 	  break;
 	} else
-	  temp1=temp1->next;
+	  tmp1=tmp1->next;
       }
     }
     c->free_idx=i;
@@ -109,7 +109,7 @@ I64 ArcDetermineCompressionType(U8 *src,I64 size)
 
 U0 ArcCompressBuf(CArcCtrl *c)
 {//Use $LK,"CompressBuf",A="MN:CompressBuf"$() unless doing more than one buf.
-  CArcEntry *temp,*temp1;
+  CArcEntry *tmp,*tmp1;
   I64 ch,basecode;
   U8 *src_ptr,*src_limit;
 
@@ -126,24 +126,24 @@ U0 ArcCompressBuf(CArcCtrl *c)
 ac_start:
     if (src_ptr>=src_limit) goto ac_done;
     ch=*src_ptr++;
-    if (temp=c->hash[basecode])
+    if (tmp=c->hash[basecode])
       do {
-	if (temp->ch==ch) {
-	  basecode=temp-&c->compress[0];
+	if (tmp->ch==ch) {
+	  basecode=tmp-&c->compress[0];
 	  goto ac_start;
 	}
-      } while (temp=temp->next);
+      } while (tmp=tmp->next);
 
     BFieldOrU32(c->dst_buf,c->dst_pos,basecode);
     c->dst_pos+=c->cur_bits_in_use;
 
     c->entry_used=TRUE;
-    temp=c->cur_entry;
-    temp->basecode=basecode;
-    temp->ch=ch;
-    temp1=&c->hash[basecode];
-    temp->next=temp1->next;
-    temp1->next=temp;
+    tmp=c->cur_entry;
+    tmp->basecode=basecode;
+    tmp->ch=ch;
+    tmp1=&c->hash[basecode];
+    tmp->next=tmp1->next;
+    tmp1->next=tmp;
 
     basecode=ch;
   }
@@ -166,7 +166,7 @@ U0 ArcExpandBuf(CArcCtrl *c)
 {//Use $LK,"ExpandBuf",A="MN:ExpandBuf"$() unless you know what you're doing.
   U8 *dst_ptr,*dst_limit;
   I64 basecode,lastcode,code;
-  CArcEntry *temp,*temp1;
+  CArcEntry *tmp,*tmp1;
 
   dst_ptr=c->dst_buf+c->dst_pos;
   dst_limit=c->dst_buf+c->dst_size;
@@ -201,12 +201,12 @@ U0 ArcExpandBuf(CArcCtrl *c)
       c->last_ch=code;
 
       c->entry_used=TRUE;
-      temp=c->cur_entry;
-      temp->basecode=lastcode;
-      temp->ch=c->last_ch;
-      temp1=&c->hash[lastcode];
-      temp->next=temp1->next;
-      temp1->next=temp;
+      tmp=c->cur_entry;
+      tmp->basecode=lastcode;
+      tmp->ch=c->last_ch;
+      tmp1=&c->hash[lastcode];
+      tmp->next=tmp1->next;
+      tmp1->next=tmp;
 
       ArcEntryGet(c);
       while (dst_ptrstk_ptr!=c->stk_base)
diff --git a/Kernel/Display.HC b/Kernel/Display.HC
index 984e51f..a2d8f2d 100644
--- a/Kernel/Display.HC
+++ b/Kernel/Display.HC
@@ -2,9 +2,9 @@ U0 RawPutChar(I64 ch)
 {/*For RAW output during boot and in debugger.
 
 See $LK,"GrUpdateTextFG",A="MN:GrUpdateTextFG"$ for
-the normal screen text output routine.
+the normal scrn text output routine.
 
-See also $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$().
+See also $LK,"GrUpdateScrn",A="MN:GrUpdateScrn"$().
 */
   I64 i,row,col;
   U8 *ptr,*ptr1,*ptr2;
@@ -58,13 +58,13 @@ See also $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$().
       OutU8(VGAP_DATA,0x0F); //All planes -- WHITE
       if (text.raw_flags&RWF_SCROLL && text.raw_col && !row && !col) {
 //Scroll cached image
-	MemCpy(text.raw_screen_image,
-	      text.raw_screen_image+GR_WIDTH*FONT_HEIGHT>>3,
+	MemCpy(text.raw_scrn_image,
+	      text.raw_scrn_image+GR_WIDTH*FONT_HEIGHT>>3,
 	      GR_WIDTH*(GR_HEIGHT-FONT_HEIGHT)>>3);
-	MemSet(text.raw_screen_image+GR_WIDTH*(GR_HEIGHT-FONT_HEIGHT)>>3,0,
+	MemSet(text.raw_scrn_image+GR_WIDTH*(GR_HEIGHT-FONT_HEIGHT)>>3,0,
 	      GR_WIDTH*FONT_HEIGHT>>3);
 
-	MemCpy(text.vga_alias,text.raw_screen_image,GR_WIDTH*GR_HEIGHT>>3);
+	MemCpy(text.vga_alias,text.raw_scrn_image,GR_WIDTH*GR_HEIGHT>>3);
 	text.raw_col-=text.cols;
 	row=text.rows-1;
       }
@@ -72,7 +72,7 @@ See also $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$().
       CLI
       ptr=ptr1=col+row*GR_WIDTH*FONT_HEIGHT>>3;
       ptr+=text.vga_alias;
-      ptr1+=text.raw_screen_image; //Write to cached image as well
+      ptr1+=text.raw_scrn_image; //Write to cached image as well
       ptr2=&text.font[ch&255];
       for (i=0;ilast!=head)
-      templ=templ->last;
+    if (tmpl->last!=head)
+      tmpl=tmpl->last;
   for (i=0;iline[j]=='\t')
+	if (tmpl->line[j]=='\t')
 	  k=(k+8)&~7;
 	else
 	  k++;
       cursor_col=k;
       cursor_row=i;
     }
-    if (templ!=head) {
-      st=templ->line;
+    if (tmpl!=head) {
+      st=tmpl->line;
       k=0;
       j=0;
       while (ch=*st++) {
@@ -42,7 +42,7 @@ U0 EdLiteUpdate(CLine *head,CLine *cur_line,I64 cur_col,I64 line_start_col)
       }
       if (jnext;
+      tmpl=tmpl->next;
     } else {
       if (!done_eof) {
 	'';
@@ -60,13 +60,13 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
   U8 *src,*src2,*src3,*dst,*buf,*bin_data=NULL;
   I64 i,cnt=0,ch,sc,size,bin_size=0,line_start_col=0,cur_col=0,
 	old_raw_flags=text.raw_flags;
-  CLine head,*templ,*templ1,*cur_line;
+  CLine head,*tmpl,*tmpl1,*cur_line;
   Bool	res=FALSE,
 	old_raw=Raw(ON),
-	old_debug=InDbg(ON),
+	old_debug=DbgMode(ON),
 	old_single=SingleUser(ON);
 
-  if (!filename) filename=blkdev.temp_filename;
+  if (!filename) filename=blkdev.tmp_filename;
   buf=FileRead(filename,&size);
 
   PUSHFD
@@ -93,9 +93,9 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	  *dst++=ch;
       *dst=0;
 
-      templ=MAlloc(sizeof(CLine));
-      templ->line=StrNew(src2);
-      QueIns(templ,head.last);
+      tmpl=MAlloc(sizeof(CLine));
+      tmpl->line=StrNew(src2);
+      QueIns(tmpl,head.last);
       cnt++;
     }
 
@@ -145,10 +145,10 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	  case SC_CURSOR_RIGHT:
 	    cur_col++;
 	    if (cur_col>StrLen(cur_line->line)) {
-	      templ=cur_line->next;
-	      if (templ!=&head) {
+	      tmpl=cur_line->next;
+	      if (tmpl!=&head) {
 		cur_col=0;
-		cur_line=templ;
+		cur_line=tmpl;
 	      } else
 		cur_col=StrLen(cur_line->line);
 	    }
@@ -157,10 +157,10 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	    if (cur_col)
 	      cur_col--;
 	    else {
-	      templ=cur_line->last;
-	      if (templ!=&head) {
-		cur_line=templ;
-		cur_col=StrLen(templ->line);
+	      tmpl=cur_line->last;
+	      if (tmpl!=&head) {
+		cur_line=tmpl;
+		cur_col=StrLen(tmpl->line);
 	      }
 	    }
 	    break;
@@ -182,14 +182,14 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	    break;
 	  case SC_DELETE:
 	    if (cur_col==StrLen(cur_line->line)) {
-	      templ=cur_line->next;
-	      if (cur_line!=&head && templ!=&head) {
-		src=MStrPrint("%s%s",cur_line->line,templ->line);
+	      tmpl=cur_line->next;
+	      if (cur_line!=&head && tmpl!=&head) {
+		src=MStrPrint("%s%s",cur_line->line,tmpl->line);
 		Free(cur_line->line);
-		Free(templ->line);
+		Free(tmpl->line);
 		cur_line->line=src;
-		QueRem(templ);
-		Free(templ);
+		QueRem(tmpl);
+		Free(tmpl);
 	      }
 	    } else
 	      StrCpy(cur_line->line+cur_col,cur_line->line+cur_col+1);
@@ -198,11 +198,11 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	break;
       case '\n':
       case '\r':
-	templ=MAlloc(sizeof(CLine));
-	templ->line=StrNew(cur_line->line+cur_col);
+	tmpl=MAlloc(sizeof(CLine));
+	tmpl->line=StrNew(cur_line->line+cur_col);
 	cur_line->line[cur_col]=0;
-	QueIns(templ,cur_line);
-	cur_line=templ;
+	QueIns(tmpl,cur_line);
+	cur_line=tmpl;
 	cur_col=0;
 	break;
       case CH_BACKSPACE:
@@ -210,24 +210,24 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
 	  StrCpy(cur_line->line+cur_col-1,cur_line->line+cur_col);
 	  cur_col--;
 	} else if (cur_line!=&head && cur_line->last!=&head) {
-	  templ=cur_line->last;
-	  src=MStrPrint("%s%s",templ->line,cur_line->line);
-	  cur_col=StrLen(templ->line);
+	  tmpl=cur_line->last;
+	  src=MStrPrint("%s%s",tmpl->line,cur_line->line);
+	  cur_col=StrLen(tmpl->line);
 	  Free(cur_line->line);
-	  Free(templ->line);
-	  templ->line=src;
+	  Free(tmpl->line);
+	  tmpl->line=src;
 	  QueRem(cur_line);
 	  Free(cur_line);
-	  cur_line=templ;
+	  cur_line=tmpl;
 	}
 	break;
       case CH_CTRLY:
 	if (cur_line!=&head) {
-	  templ=cur_line;
+	  tmpl=cur_line;
 	  cur_line=cur_line->next;
-	  QueRem(templ);
-	  Free(templ->line);
-	  Free(templ);
+	  QueRem(tmpl);
+	  Free(tmpl->line);
+	  Free(tmpl);
 	  cur_col=0;
 	}
 	break;
@@ -258,20 +258,20 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
   } else {
     size=bin_size;
 
-    templ=head.next;
-    while (templ!=&head) {
-      size+=StrLen(templ->line)+1;
-      templ=templ->next;
+    tmpl=head.next;
+    while (tmpl!=&head) {
+      size+=StrLen(tmpl->line)+1;
+      tmpl=tmpl->next;
     }
 
     buf=dst=MAlloc(size);
-    templ=head.next;
-    while (templ!=&head) {
-      i=StrLen(templ->line);
-      MemCpy(dst,templ->line,i);
+    tmpl=head.next;
+    while (tmpl!=&head) {
+      i=StrLen(tmpl->line);
+      MemCpy(dst,tmpl->line,i);
       dst+=i;
       *dst++='\n';
-      templ=templ->next;
+      tmpl=tmpl->next;
     }
     if (bin_data)
       MemCpy(dst,bin_data,bin_size);
@@ -282,18 +282,18 @@ Bool EdLite(U8 *filename,I64 num=1,I64 edf_dof_flags=0)
       res=TRUE;
   }
 
-  templ=head.next;
-  while (templ!=&head) {
-    templ1=templ->next;
-    QueRem(templ);
-    Free(templ->line);
-    Free(templ);
-    templ=templ1;
+  tmpl=head.next;
+  while (tmpl!=&head) {
+    tmpl1=tmpl->next;
+    QueRem(tmpl);
+    Free(tmpl->line);
+    Free(tmpl);
+    tmpl=tmpl1;
   }
   Free(head.line);
   Free(bin_data);
   Raw(old_raw);
-  InDbg(old_debug);
+  DbgMode(old_debug);
   SingleUser(old_single);
   text.raw_flags=text.raw_flags&~RWF_SHOW_DOLLAR|old_raw_flags&RWF_SHOW_DOLLAR;
   POPFD
diff --git a/Kernel/FunSeg.HC b/Kernel/FunSeg.HC
index c687c75..42a68a2 100644
--- a/Kernel/FunSeg.HC
+++ b/Kernel/FunSeg.HC
@@ -11,39 +11,39 @@ U0 HashFunSegFind(CHashTable *h,U8 *addr,
 	Bool *_has_lower,U64 *_best,CHash **_res)
 {
   Bool *has_lower=*_has_lower;
-  CHashExport *tempex;
+  CHashExport *tmpex;
   U64 i,j,best=*_best;
   CHash *res=*_res;
   for (i=0;i<=h->mask;i++) {
-    tempex=h->body[i];
-    while (tempex) {
+    tmpex=h->body[i];
+    while (tmpex) {
       j=0;
-      if (tempex->type&HTT_FUN) {
-	if (!Bt(&tempex(CHashFun *)->flags,Cf_EXTERN) &&
-	      !Bt(&tempex(CHashFun *)->flags,Ff_INTERNAL))
-	  j=tempex(CHashFun *)->exe_addr;
-      } else if (tempex->type&HTT_EXPORT_SYS_SYM)
-	j=tempex->val;
+      if (tmpex->type&HTT_FUN) {
+	if (!Bt(&tmpex(CHashFun *)->flags,Cf_EXTERN) &&
+	      !Bt(&tmpex(CHashFun *)->flags,Ff_INTERNAL))
+	  j=tmpex(CHashFun *)->exe_addr;
+      } else if (tmpex->type&HTT_EXPORT_SYS_SYM)
+	j=tmpex->val;
       if (j) {
 	j=addr(I64)-j;
 	if (0<=j<=best) {
-	  if (tempex->type&HTT_EXPORT_SYS_SYM) {
+	  if (tmpex->type&HTT_EXPORT_SYS_SYM) {
 	    if (jstr);
+	      has_lower=HasLower(tmpex->str);
 	      best=j;
-	      res=tempex;
+	      res=tmpex;
 	    }
-	  } else if (tempex->type&HTT_FUN) {
+	  } else if (tmpex->type&HTT_FUN) {
 	    if (jtype&HTT_EXPORT_SYS_SYM||!has_lower)) {
-	      has_lower=HasLower(tempex->str);
+	      has_lower=HasLower(tmpex->str);
 	      best=j;
-	      res=tempex;
+	      res=tmpex;
 	    }
 	  }
 	}
       }
-      tempex=tempex->next;
+      tmpex=tmpex->next;
     }
   }
   *_has_lower=has_lower;
@@ -63,7 +63,7 @@ CHash *FunSegFind(U8 *addr,I64 *_offset)
     *_offset=best;
     return NULL;
   }
-  if (IsDbg)
+  if (IsDbgMode)
     for (i=0;iseth_task;
@@ -89,25 +89,25 @@ fs_abort_task:
   return res;
 }
 
-U0 FunSegCacheAdd(CHash *temps,U8 *addr)
+U0 FunSegCacheAdd(CHash *tmps,U8 *addr)
 {
   I64 i;
   CDbgInfo *dbg_info;
-  CFunSegCache *tempfsc;
-  if (temps && temps->type&HTT_FUN &&
-	(dbg_info=temps(CHashFun *)->dbg_info)) {
+  CFunSegCache *tmpfsc;
+  if (tmps && tmps->type&HTT_FUN &&
+	(dbg_info=tmps(CHashFun *)->dbg_info)) {
     lock i=dbg.fun_seg_cache_index++;
-    tempfsc=&dbg.fun_seg_cache[i&(FUN_SEG_CACHE_SIZE-1)];
-    tempfsc->base=dbg_info->body[0];
-    if (addrbase)
-      tempfsc->base=addr;
-    tempfsc->limit=dbg_info->body[dbg_info->max_line+1-dbg_info->min_line];
-    if (addr>=tempfsc->limit)
-      tempfsc->limit=addr+1;
-    i=MinI64(StrLen(temps->str),FUN_SEG_CACHE_STR_LEN-1);
-    MemCpy(tempfsc->str,temps->str,i);
-    tempfsc->str[i]=0;
-    tempfsc->time_stamp=tS;
+    tmpfsc=&dbg.fun_seg_cache[i&(FUN_SEG_CACHE_SIZE-1)];
+    tmpfsc->base=dbg_info->body[0];
+    if (addrbase)
+      tmpfsc->base=addr;
+    tmpfsc->limit=dbg_info->body[dbg_info->max_line+1-dbg_info->min_line];
+    if (addr>=tmpfsc->limit)
+      tmpfsc->limit=addr+1;
+    i=MinI64(StrLen(tmps->str),FUN_SEG_CACHE_STR_LEN-1);
+    MemCpy(tmpfsc->str,tmps->str,i);
+    tmpfsc->str[i]=0;
+    tmpfsc->time_stamp=tS;
   }
 }
 
@@ -115,17 +115,17 @@ U8 *FunSegCacheFind(U8 *addr,I64 *_offset)
 {
   I64 i;
   F64 timeout;
-  CFunSegCache *tempfsc=dbg.fun_seg_cache;
+  CFunSegCache *tmpfsc=dbg.fun_seg_cache;
   if (addr==SYS_IDLE_PT) {
     *_offset=0;
     return "SYS_IDLE_PT";
   } else {
     timeout=tS+8.0;
-    for (i=0;ibase<=addrlimit &&
-	    tempfsc->time_stamp>timeout) {
-	*_offset=addr-tempfsc->base;
-	return tempfsc->str;
+    for (i=0;ibase<=addrlimit &&
+	    tmpfsc->time_stamp>timeout) {
+	*_offset=addr-tmpfsc->base;
+	return tmpfsc->str;
       }
     return NULL;
   }
@@ -134,21 +134,21 @@ U8 *FunSegCacheFind(U8 *addr,I64 *_offset)
 U0 StrPrintFunSeg(U8 *buf,I64 addr,I64 field_len,I64 flags)
 {
   I64 offset;
-  CHashExport *tempex;
+  CHashExport *tmpex;
   U8 *str,*str2;
   Bool is_fun=FALSE;
-  if (!(flags&SPF_TRUNCATE))
+  if (!(flags&PRTF_TRUNCATE))
     field_len=0;
   if (addr) {
     if (str=FunSegCacheFind(addr,&offset)) {
       if (addr!=SYS_IDLE_PT)
 	is_fun=TRUE;
     } else  {
-      if (tempex=FunSegFind(addr,&offset)) {
-	if (tempex->type&HTT_FUN)
+      if (tmpex=FunSegFind(addr,&offset)) {
+	if (tmpex->type&HTT_FUN)
 	  is_fun=TRUE;
-	FunSegCacheAdd(tempex,addr);
-	str=tempex->str;
+	FunSegCacheAdd(tmpex,addr);
+	str=tmpex->str;
       }
     }
     if (str) {
@@ -156,7 +156,7 @@ U0 StrPrintFunSeg(U8 *buf,I64 addr,I64 field_len,I64 flags)
       if (is_fun) {
 	str2=MStrPrint("&%s",str);
 	if (field_len>7) {
-	  if (flags&SPF_LEFT_JUSTIFY && StrLen(str2)7) {
-	  if (flags&SPF_LEFT_JUSTIFY && StrLen(str)type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) {
-      if (dbg_info=temph->dbg_info) {
+  if (tmph=FunSegFind(addr,&offset)) {
+    if (tmph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) {
+      if (dbg_info=tmph->dbg_info) {
 	num_lines=dbg_info->max_line-dbg_info->min_line+1;
 	body=dbg_info->body;
 
@@ -222,9 +222,9 @@ I64 SrcLineNum(U8 *addr,I64 cnt=1)
 	if (addrmin_line;
 
-      } else if (temph->src_link) {
-	src =StrNew(temph->src_link);
-	src2=StrNew(temph->src_link);
+      } else if (tmph->src_link) {
+	src =StrNew(tmph->src_link);
+	src2=StrNew(tmph->src_link);
 	StrLastRem(src,",",src2);
 	cur_line=Str2I64(src2);
 	Free(src);
@@ -238,14 +238,14 @@ I64 SrcLineNum(U8 *addr,I64 cnt=1)
 
 U8 *SrcFileName(U8 *addr,I64 cnt=1,CTask *mem_task=NULL)
 {//MAlloc filename for src of addr.
-  CHashSrcSym *temph;
+  CHashSrcSym *tmph;
   I64 i,j,ii,offset,best=NULL,d,best_d;
   U32 *body;
   CDbgInfo *dbg_info;
   U8 *src;
-  if ((temph=FunSegFind(addr,&offset)) &&
-	temph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) {
-    if (dbg_info=temph->dbg_info) {
+  if ((tmph=FunSegFind(addr,&offset)) &&
+	tmph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) {
+    if (dbg_info=tmph->dbg_info) {
       j=dbg_info->max_line-dbg_info->min_line+1;
       body=dbg_info->body;
       best_d=MAX_I64;
@@ -258,13 +258,13 @@ U8 *SrcFileName(U8 *addr,I64 cnt=1,CTask *mem_task=NULL)
 	    d=addr(I64)-body[i];
 	    if (dsrc_link;
+	      best=tmph->src_link;
 	    }
 	  }
 	}
       }
     } else
-      best=temph->src_link;
+      best=tmph->src_link;
   }
   if (best) {
     src=StrNew(best,mem_task);
@@ -325,10 +325,10 @@ Bool Man(U8 *st,I64 edf_dof_flags=0)
 {//Owner's manual for symbol.  Edit src code for symbol.
   Bool res=FALSE;
   U8 **st2;
-  CHashSrcSym *temph;
+  CHashSrcSym *tmph;
   if (IsRaw) {
-    if ((temph=HashFind(st,Fs->hash_table,HTG_SRC_SYM)) && temph->src_link)
-      res=EdLiteFileLine(temph->src_link,edf_dof_flags);
+    if ((tmph=HashFind(st,Fs->hash_table,HTG_SRC_SYM)) && tmph->src_link)
+      res=EdLiteFileLine(tmph->src_link,edf_dof_flags);
   } else {
     st2=MStrPrint("MN:%s",st);
     res=Ed(st2,edf_dof_flags);
diff --git a/Kernel/KDataTypes.HC b/Kernel/KDataTypes.HC
index c01ec30..86bbcc6 100644
--- a/Kernel/KDataTypes.HC
+++ b/Kernel/KDataTypes.HC
@@ -1,18 +1,18 @@
 U0 LinkedLstDel(U8 **_lst)
 {//Free entire linked-list.
-  U8 **templ;
+  U8 **tmpl;
   while (_lst) {
-    templ=*_lst;
+    tmpl=*_lst;
     Free(_lst);
-    _lst=templ;
+    _lst=tmpl;
   }
 }
 
 U8 *LinkedLstCopy(U8 **_lst,CTask *mem_task=NULL)
 {//MAlloc ident copy of entire linked-list.
-  U8 *res=NULL,**templ=&res;
+  U8 *res=NULL,**tmpl=&res;
   while (_lst) {
-    templ=*templ=MAllocIdent(_lst,mem_task);
+    tmpl=*tmpl=MAllocIdent(_lst,mem_task);
     _lst=*_lst;
   }
   return res;
@@ -40,46 +40,46 @@ I64 LinkedLstSize(U8 **_lst)
 
 U0 QueDel(CQue *head,Bool querem=FALSE)
 {//Free entries in queue, not head.
-  CQue *tempq=head->next,*tempq1;
-  while (tempq!=head) {
-    tempq1=tempq->next;
+  CQue *tmpq=head->next,*tmpq1;
+  while (tmpq!=head) {
+    tmpq1=tmpq->next;
     if (querem)
-      QueRem(tempq);
-    Free(tempq);
-    tempq=tempq1;
+      QueRem(tmpq);
+    Free(tmpq);
+    tmpq=tmpq1;
   }
 }
 
 CQue *QueCopy(CQue *head,CTask *mem_task=NULL)
 {//MAlloc ident copy of entire queue and head.
-  CQue *res=MAllocIdent(head,mem_task),*tempq=head->next,*tempq1;
+  CQue *res=MAllocIdent(head,mem_task),*tmpq=head->next,*tmpq1;
   QueInit(res);
-  while (tempq!=head) {
-    tempq1=MAllocIdent(tempq,mem_task);
-    QueIns(tempq1,res->last);
-    tempq=tempq->next;
+  while (tmpq!=head) {
+    tmpq1=MAllocIdent(tmpq,mem_task);
+    QueIns(tmpq1,res->last);
+    tmpq=tmpq->next;
   }
   return res;
 }
 
 I64 QueCnt(CQue *head)
 {//Count of nodes in queue, not head.
-  CQue *tempq=head->next;
+  CQue *tmpq=head->next;
   I64 res=0;
-  while (tempq!=head) {
+  while (tmpq!=head) {
     res++;
-    tempq=tempq->next;
+    tmpq=tmpq->next;
   }
   return res;
 }
 
 I64 QueSize(CQue *head)
 {//Mem size of all nodes in queue, not head.
-  CQue *tempq=head->next;
+  CQue *tmpq=head->next;
   I64 res=0;
-  while (tempq!=head) {
-    res+=MSize2(tempq);
-    tempq=tempq->next;
+  while (tmpq!=head) {
+    res+=MSize2(tmpq);
+    tmpq=tmpq->next;
   }
   return res;
 }
@@ -95,34 +95,34 @@ CQueVectU8 *QueVectU8New(I64 min_idx=0)
 
 U0 QueVectU8Put(CQueVectU8 *v,I64 idx,U8 ch)
 {//Put U8 at idx i.
-  CQueVectU8 *tempv;
+  CQueVectU8 *tmpv;
   idx-=v->min_idx;
   if (idx<0) return;
   if (idxtotal_cnt) {
-    tempv=v;
+    tmpv=v;
     do {
-      idx-=tempv->node_cnt;
+      idx-=tmpv->node_cnt;
       if (idx<0) {
-	tempv->body[idx+tempv->node_cnt]=ch;
+	tmpv->body[idx+tmpv->node_cnt]=ch;
 	return;
       }
-      tempv=tempv->next;
-    } while (tempv!=v);
+      tmpv=tmpv->next;
+    } while (tmpv!=v);
   } else
     idx-=v->total_cnt;
 
   while (TRUE) {
-    tempv=v->last;
-    if (tempv->node_cnt>=QUE_VECT_U8_CNT) {
-      tempv=MAlloc(sizeof(CQueVectU8));
-      tempv->node_cnt=0;
-      QueIns(tempv,v->last);
+    tmpv=v->last;
+    if (tmpv->node_cnt>=QUE_VECT_U8_CNT) {
+      tmpv=MAlloc(sizeof(CQueVectU8));
+      tmpv->node_cnt=0;
+      QueIns(tmpv,v->last);
     }
     if (idx--) {
-      tempv->body[tempv->node_cnt++]=0;
+      tmpv->body[tmpv->node_cnt++]=0;
       v->total_cnt++;
     } else {
-      tempv->body[tempv->node_cnt++]=ch;
+      tmpv->body[tmpv->node_cnt++]=ch;
       v->total_cnt++;
       break;
     }
@@ -139,16 +139,16 @@ U0 QueVectU8Del(CQueVectU8 *v)
 
 I64 QueVectU8Get(CQueVectU8 *v,I64 idx)
 {//Get U8 at idx i.
-  CQueVectU8 *tempv;
+  CQueVectU8 *tmpv;
   idx-=v->min_idx;
   if (!(0<=idxtotal_cnt)) return 0;
-  tempv=v;
+  tmpv=v;
   do {
-    idx-=tempv->node_cnt;
+    idx-=tmpv->node_cnt;
     if (idx<0)
-      return tempv->body[idx+tempv->node_cnt];
-    tempv=tempv->next;
-  } while (tempv!=v);
+      return tmpv->body[idx+tmpv->node_cnt];
+    tmpv=tmpv->next;
+  } while (tmpv!=v);
   return 0;
 }
 
diff --git a/Kernel/KDbg.HC b/Kernel/KDbg.HC
index fbec34b..41aedc5 100644
--- a/Kernel/KDbg.HC
+++ b/Kernel/KDbg.HC
@@ -215,7 +215,7 @@ U0 Da(U8 **addr,I64 cnt=0x10)
 }
 
 U0 RawPrint(I64 ms=100,U8 *fmt,...)
-{//Print using $LK,"Raw",A="MN:Raw"$ screen output for a length of time.
+{//Print using $LK,"Raw",A="MN:Raw"$ scrn output for a length of time.
 //$BK,1$Your heap must be good.$BK,0$
   U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
   Bool old_raw,old_input_filter;
@@ -233,7 +233,7 @@ U0 RawPrint(I64 ms=100,U8 *fmt,...)
 
 U0 RawD(I64 ms=100,U8 *addr,I64 cnt=0x80)
 {//Dumps a block of mem using $LK,"Raw",A="MN:Raw"$
-//screen output for a fixed length
+//scrn output for a fixed length
   //of time.
   Bool old_raw,old_input_filter;
   PUSHFD
@@ -249,7 +249,7 @@ U0 RawD(I64 ms=100,U8 *addr,I64 cnt=0x80)
 
 U0 RawDm(I64 ms=100,U8 *addr,I64 cnt=0x80)
 {//Dumps a block of mem using $LK,"Raw",A="MN:Raw"$
-//screen output for a fixed length
+//scrn output for a fixed length
   //of time.
   Bool old_raw,old_input_filter;
   PUSHFD
@@ -343,23 +343,23 @@ U8 *SysGetStr2(I64)
 
 CBpt *BptFind(U8 *needle_addr,CTask *haystack_task=NULL,Bool rem=FALSE)
 {
-  CBpt *res=NULL,*tempb,*tempb1,*tempb2;
+  CBpt *res=NULL,*tmpb,*tmpb1,*tmpb2;
   if (!haystack_task) haystack_task=Fs;
   PUSHFD
   CLI
-  tempb1=&haystack_task->bpt_lst;
-  tempb=haystack_task->bpt_lst;
-  while (tempb) {
-    tempb2=tempb->next;
-    if (tempb->addr==needle_addr) {
-      res=tempb;
+  tmpb1=&haystack_task->bpt_lst;
+  tmpb=haystack_task->bpt_lst;
+  while (tmpb) {
+    tmpb2=tmpb->next;
+    if (tmpb->addr==needle_addr) {
+      res=tmpb;
       if (rem)
-	tempb1->next=tempb2;
+	tmpb1->next=tmpb2;
       else
-	tempb1=&tempb->next;
+	tmpb1=&tmpb->next;
     } else
-      tempb1=&tempb->next;
-    tempb=tempb2;
+      tmpb1=&tmpb->next;
+    tmpb=tmpb2;
   }
   POPFD
   return res;
@@ -367,18 +367,18 @@ CBpt *BptFind(U8 *needle_addr,CTask *haystack_task=NULL,Bool rem=FALSE)
 
 Bool BptS(U8 *addr,CTask *task=NULL,Bool live=TRUE)
 {//Set breakpoint.
-  CBpt *tempb;
+  CBpt *tmpb;
   Bool res=TRUE;
   if (!task) task=Fs;
   PUSHFD
   CLI
-  if (!(tempb=BptFind(addr,task,FALSE))) {
-    tempb=CAlloc(sizeof(CBpt),task);
-    tempb->addr=addr;
-    tempb->val=*addr;
+  if (!(tmpb=BptFind(addr,task,FALSE))) {
+    tmpb=CAlloc(sizeof(CBpt),task);
+    tmpb->addr=addr;
+    tmpb->val=*addr;
     res=FALSE;
-    tempb->next=task->bpt_lst;
-    task->bpt_lst=tempb;
+    tmpb->next=task->bpt_lst;
+    task->bpt_lst=tmpb;
     if (task==Fs && live)
       *addr=OC_BPT;
   }
@@ -388,17 +388,17 @@ Bool BptS(U8 *addr,CTask *task=NULL,Bool live=TRUE)
 
 Bool BptR(U8 *addr,CTask *task=NULL,Bool live=TRUE,Bool rem=TRUE)
 {//Rem breakpoint.
-  CBpt *tempb;
+  CBpt *tmpb;
   Bool res=FALSE;
   if (!task) task=Fs;
   PUSHFD
   CLI
-  if (tempb=BptFind(addr,task,rem)) {
+  if (tmpb=BptFind(addr,task,rem)) {
     if (task==Fs && live)
-      *tempb->addr=tempb->val;
+      *tmpb->addr=tmpb->val;
     res=TRUE;
     if (rem)
-      Free(tempb);
+      Free(tmpb);
   }
   POPFD
   return res;
@@ -423,18 +423,18 @@ I64 B2(CTask *task=NULL,Bool live=TRUE)
 {//Rem all breakpoints.
 //Return: cnt of removed.
   I64 res=0;
-  CBpt *tempb,*tempb1;
+  CBpt *tmpb,*tmpb1;
   if (!task) task=Fs;
   PUSHFD
   CLI
-  tempb=task->bpt_lst;
+  tmpb=task->bpt_lst;
   task->bpt_lst=NULL;
-  while (tempb) {
-    tempb1=tempb->next;
+  while (tmpb) {
+    tmpb1=tmpb->next;
     if (task==Fs && live)
-      *tempb->addr=tempb->val;
-    Free(tempb);
-    tempb=tempb1;
+      *tmpb->addr=tmpb->val;
+    Free(tmpb);
+    tmpb=tmpb1;
     res++;
   }
   POPFD
@@ -451,13 +451,13 @@ U0 G(U8 *ip=INVALID_PTR,CTask *task=NULL)
 	  ">B2;\t\t\t//Clear all break points\n"
 	  ">G2;\t\t\t//Clear all break points and Go\n\n"
 	  "After resuming,  next focus task\n"
-	  "After resuming,  flushes screen VGA cache\n";
+	  "After resuming,  flushes scrn VGA cache\n";
   else {
     LBtr(&task->task_flags,TASKf_DISABLE_BPTS);
     LBtr(&task->rflags,RFLAGf_TRAP);//No single step
     Suspend(task,FALSE);
     if (task==Fs) {
-      if (IsDbg && task->next_cc!=&task->next_cc) {
+      if (IsDbgMode && task->next_cc!=&task->next_cc) {
 	"Exit Dbg\n";
 	Btr(&task->last_cc->flags,CCf_PMT);
       }
@@ -486,7 +486,7 @@ public U0 S(U8 *ip=INVALID_PTR,CTask *task=NULL) //Single-step.
   LBts(&task->rflags,RFLAGf_TRAP);
   Suspend(task,FALSE);
   if (task==Fs) {
-    if (IsDbg) {
+    if (IsDbgMode) {
       if (task->next_cc!=&task->next_cc)
 	Btr(&task->last_cc->flags,CCf_PMT);
     }
@@ -527,7 +527,7 @@ U0 DbgHelp()
 	">G2;\t\t\t\t//B2;VGAFlush;WinFocus;G;\n"
 	">Exit;\t\t\t\t//Exit (kill) task.\n\n"
 	"After resuming,  next focus task.\n"
-	"After resuming,  flushes screen VGA cache.\n\n";
+	"After resuming,  flushes scrn VGA cache.\n\n";
 }
 
 U0 Dbg2()
@@ -595,7 +595,7 @@ U0 Fault2(I64 fault_num,I64 fault_err_code)
   Bool was_raw,was_single_user,was_silent,was_in_dbg;
   I64  i,old_raw_flags=text.raw_flags;
   was_single_user=SingleUser(ON);
-  if (!IsDbg)
+  if (!IsDbgMode)
     dbg.focus_task=sys_focus_task;
   sys_focus_task=NULL;
   if (fault_num==I_BPT)
@@ -612,7 +612,7 @@ U0 Fault2(I64 fault_num,I64 fault_err_code)
     "\"\n";
     "Fault:0x%02X %Z\t\tErr Code:%08X\n",
 	  fault_num,fault_num,"ST_INT_NAMES",fault_err_code;
-    was_in_dbg=InDbg(ON);
+    was_in_dbg=DbgMode(ON);
     "RIP:%08X",Fs->rip; //Sometimes crashes on %p, so do this first
     ":%p  RSP:%08X\n",Fs->rip,Fs->rsp;
     if (fault_num==I_PAGE_FAULT) {
@@ -621,7 +621,7 @@ U0 Fault2(I64 fault_num,I64 fault_err_code)
       "Fault Addr:%08X:%p\n",i,i;
     }
     Fault3(fault_num,fault_err_code);
-    InDbg(was_in_dbg);
+    DbgMode(was_in_dbg);
     Silent(was_silent);
     Raw(was_raw);
     text.raw_flags=old_raw_flags;
diff --git a/Kernel/KDefine.HC b/Kernel/KDefine.HC
index 8a7e365..3f728dd 100644
--- a/Kernel/KDefine.HC
+++ b/Kernel/KDefine.HC
@@ -1,34 +1,34 @@
 CHashDefineStr *DefineLoad(U8 *dname,U8 *st)
 {//Create DEFINE hash entry with string.
-  CHashDefineStr *temph=CAlloc(sizeof(CHashDefineStr));
-  temph->type=HTT_DEFINE_STR;
-  temph->str=StrNew(dname);
-  temph->data=StrNew(st);
-  temph->cnt=-1;
-  temph->src_link=MStrPrint("AD:0x%X",Caller);
-  HashAdd(temph,Fs->hash_table);
-  return temph;
+  CHashDefineStr *tmph=CAlloc(sizeof(CHashDefineStr));
+  tmph->type=HTT_DEFINE_STR;
+  tmph->str=StrNew(dname);
+  tmph->data=StrNew(st);
+  tmph->cnt=-1;
+  tmph->src_link=MStrPrint("AD:0x%X",Caller);
+  HashAdd(tmph,Fs->hash_table);
+  return tmph;
 }
 
 CHashDefineStr *DefineLstLoad(U8 *dname,U8 *lst)
 {//Create DEFINE list. Not efficient, but handy.
   I64 cnt=0;
   U8 *ptr,**idx;
-  CHashDefineStr *temph=CAlloc(sizeof(CHashDefineStr));
-  temph->type=HTT_DEFINE_STR;
-  temph->str=StrNew(dname);
-  temph->src_link=MStrPrint("AD:0x%X",Caller);
+  CHashDefineStr *tmph=CAlloc(sizeof(CHashDefineStr));
+  tmph->type=HTT_DEFINE_STR;
+  tmph->str=StrNew(dname);
+  tmph->src_link=MStrPrint("AD:0x%X",Caller);
   ptr=lst;
   while (*ptr) {
     if (*ptr!='@')
       cnt++;
     while (*ptr++);
   }
-  temph->data=MAlloc(ptr+1-lst);
-  MemCpy(temph->data,lst,ptr+1-lst);
-  temph->cnt=cnt;
+  tmph->data=MAlloc(ptr+1-lst);
+  MemCpy(tmph->data,lst,ptr+1-lst);
+  tmph->cnt=cnt;
 
-  idx=temph->sub_idx=MAlloc(cnt*sizeof(U8 *));
+  idx=tmph->sub_idx=MAlloc(cnt*sizeof(U8 *));
   ptr=lst;
   while (*ptr) {
     if (*ptr!='@')
@@ -36,8 +36,8 @@ CHashDefineStr *DefineLstLoad(U8 *dname,U8 *lst)
     while (*ptr++);
   }
 
-  HashAdd(temph,Fs->hash_table);
-  return temph;
+  HashAdd(tmph,Fs->hash_table);
+  return tmph;
 }
 
 U0 UndefinedDefine(U8 *dname)
@@ -48,9 +48,9 @@ U0 UndefinedDefine(U8 *dname)
 
 U8 *Define(U8 *dname)
 {//Look for DEFINE named in hash table, return ptr string.
-  CHashDefineStr *temph;
-  if (temph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
-    return temph->data;
+  CHashDefineStr *tmph;
+  if (tmph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
+    return tmph->data;
   else if (dname)
     UndefinedDefine(dname);
   else
@@ -59,10 +59,10 @@ U8 *Define(U8 *dname)
 
 U8 *DefineSub(I64 sub,U8 *dname)
 {//Return DEFINE list entry indexed by number.
-  CHashDefineStr *temph;
-  if (temph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR)) {
-    if (0<=subcnt)
-      return temph->sub_idx[sub];
+  CHashDefineStr *tmph;
+  if (tmph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR)) {
+    if (0<=subcnt)
+      return tmph->sub_idx[sub];
     else
       return NULL;
   } else if (dname)
@@ -73,9 +73,9 @@ U8 *DefineSub(I64 sub,U8 *dname)
 
 I64 DefineCnt(U8 *dname)
 {//Return cnt of entries in define list.
-  CHashDefineStr *temph;
-  if (temph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
-    return temph->cnt;
+  CHashDefineStr *tmph;
+  if (tmph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
+    return tmph->cnt;
   else if (dname)
     UndefinedDefine(dname);
   else
@@ -107,7 +107,7 @@ U0 SysDefinesLoad()
 	"June\0July\0August\0September\0October\0November\0December\0");
   DefineLstLoad("ST_FILE_ATTRS","R\0H\0S\0V\0D\0A\0 \0 \0X\0T\0Z\0C\0F\0");
   DefineLstLoad("ST_FILE_UTIL_FLAGS","r\0d\0i\0a\0c\0R\0p\0m\0x\0s\0"
-	"D\0F\0T\0S\0A\0J\0G\0Z\0O\0P\0f\0l\0lb\0la\0");
+	"D\0F\0T\0$$\0S\0A\0J\0G\0Z\0O\0P\0f\0l\0lb\0la\0");
   DefineLstLoad("ST_BLKDEV_TYPES",
 	"NULL\0RAM\0ATA\0FILE_READ\0FILE_WRITE\0ATAPI\0");
   DefineLstLoad("ST_DRV_TYPES",
diff --git a/Kernel/KEnd.HC b/Kernel/KEnd.HC
index e5ca8e7..01dde15 100644
--- a/Kernel/KEnd.HC
+++ b/Kernel/KEnd.HC
@@ -9,8 +9,8 @@ U0 SysGlblsInit()
   sys_focus_task=Fs;
   QueInit(&sys_macro_head);
 
-  blkdev.dft_iso_filename=AStrNew("::/Temp/CDDVD.ISO");
-  blkdev.temp_filename=AStrNew("~/Temp.DD.Z");
+  blkdev.dft_iso_filename=AStrNew("::/Tmp/CDDVD.ISO");
+  blkdev.tmp_filename=AStrNew("~/Tmp.DD.Z");
   blkdev.dvd_boot_is_good=TRUE;
   #exe {
     if (!kernel_cfg->auto_mount_ide_hd_let)
@@ -23,7 +23,7 @@ U0 SysGlblsInit()
 	  kernel_cfg->auto_mount_ide_cd_let);
   }
 
-  InDbg(ON);
+  DbgMode(ON);
   rev_bits_table	=CAlloc(256);
   set_bits_table	=CAlloc(256);
   for (i=0;i<256;i++)
@@ -52,8 +52,6 @@ U0 SysGlblsInit()
 
   ProgressBarsRst;
 
-  //$AN,"Independent HeapCtrl Example",A="Independent HeapCtrl Example"$
-  i=1; //Rqst 1 blk, we might get more.
   QueInit(&dev.pci_head);
   dev.mem64_ptr=MEM_MAPPED_SPACE;
 
@@ -79,7 +77,7 @@ U0 SysGrInit()
     OutU8(VGAP_IDX,VGAR_MAP_MASK);
     OutU8(VGAP_DATA,0x0F);
     MemSet(text.vga_alias,0,GR_WIDTH*GR_HEIGHT>>3);
-    text.raw_screen_image=CAlloc(GR_WIDTH*GR_HEIGHT/8);
+    text.raw_scrn_image=CAlloc(GR_WIDTH*GR_HEIGHT/8);
     text.border_chars[2] (I64)=0x0908070605040302;
     text.border_chars[10](U32)=0x0D0C0B0A;
   }
@@ -159,7 +157,7 @@ U0 KernelMain()
   LBts(&sys_run_level,RLf_RAW);
   TimersInit;
   if (BIOSTotalMemexcept_ch;
-  "%P:%P:%P:%P\n",Fs->except_caller1,Fs->except_caller2,
-	Fs->except_caller3,Fs->except_caller4;
+  "%P:%P:%P:%P:%P:%P\n",Fs->except_caller1,Fs->except_caller2,
+	Fs->except_caller3,Fs->except_caller4,Fs->except_caller5,
+	Fs->except_caller6,Fs->except_caller7,Fs->except_caller8;
   Fs->catch_except=catch_it;
 }
 
@@ -63,46 +64,52 @@ class CTryStk
 U0 SysTry(U8 *catch_start,U8 *untry_start)
 {
   I64 *rbp=GetRBP;
-  CExcept *tempt=MAlloc(sizeof(CExcept));
-  tempt->handler_catch=catch_start;
-  tempt->handler_untry=untry_start;
-  tempt->rsp=rbp(U8 *)+sizeof(CTryStk);
-  tempt->rbp=*rbp;
-  tempt->rflags=GetRFlags;
-  SaveExceptRegs(tempt);
-  QueIns(tempt,Fs->last_except);
+  CExcept *tmpt=MAlloc(sizeof(CExcept));
+  tmpt->handler_catch=catch_start;
+  tmpt->handler_untry=untry_start;
+  tmpt->rsp=rbp(U8 *)+sizeof(CTryStk);
+  tmpt->rbp=*rbp;
+  tmpt->rflags=GetRFlags;
+  SaveExceptRegs(tmpt);
+  QueIns(tmpt,Fs->last_except);
 }
 
 U0 SysUntry()
 {
-  CExcept *tempt=Fs->last_except;
-  QueRem(tempt);
-  Free(tempt);
+  CExcept *tmpt=Fs->last_except;
+  QueRem(tmpt);
+  Free(tmpt);
 }
 
 U0 throw(I64 ch=0,Bool no_log=FALSE)
 {//ch can be up to 8 chars like $LK,"PutChars",A="MN:PutChars"$().
 //In the catcher, fetch ch from Fs->except_ch.
-  CExcept *tempt=Fs->last_except;
+  CExcept *tmpt=Fs->last_except;
   Bool was_raw;
   Fs->except_ch=ch;
   Fs->except_caller1=Caller(1);
   Fs->except_caller2=Caller(2);
   Fs->except_caller3=Caller(3);
   Fs->except_caller4=Caller(4);
+  Fs->except_caller5=Caller(5);
+  Fs->except_caller6=Caller(6);
+  Fs->except_caller7=Caller(7);
+  Fs->except_caller8=Caller(8);
   Fs->except_rbp=GetRBP;
   Fs->catch_except=FALSE;
   if (!no_log)
-    AdamLog("Except:%c:%p:%p:%p:%p\n",ch,Fs->except_caller1,Fs->except_caller2,
-	  Fs->except_caller3,Fs->except_caller4);
+    AdamLog("Except:%c:%p:%p:%p:%p:%p:%p\n",ch,Fs->except_caller1,
+	  Fs->except_caller2,Fs->except_caller3,Fs->except_caller4,
+	  Fs->except_caller5,Fs->except_caller6,Fs->except_caller7,
+	  Fs->except_caller8);
   while (Fs->next_except!=&Fs->next_except) {
     TestExcept;
     if (Fs->catch_except)
       TakeExcept;
     SetRBP(Fs->except_rbp);
-    tempt=Fs->last_except;
-    QueRem(tempt);
-    Free(tempt);
+    tmpt=Fs->last_except;
+    QueRem(tmpt);
+    Free(tmpt);
   }
   was_raw=Raw(ON);
   PutExcept(FALSE);
diff --git a/Kernel/KExts.HC b/Kernel/KExts.HC
index 786f3bc..4abc398 100644
--- a/Kernel/KExts.HC
+++ b/Kernel/KExts.HC
@@ -38,7 +38,7 @@ extern U0 DskCacheInvalidate(CDrv *dv);
 extern U0 Exit();
 extern I64 FAT32AllocClusters(CDrv *dv,I64 c,I64 cnt);
 extern I64 FAT32AllocContiguousClusters(CDrv *dv,I64 cnt);
-extern Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,
+extern Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,
 	Bool free_old_chain);
 extern U0 FAT32DrvInit(CDrv *dv);
 extern Bool FAT32FileFind(CDrv *dv,I64 cur_dir_cluster,U8 *name,
@@ -60,7 +60,7 @@ extern CHeapCtrl *HeapCtrlInit(CHeapCtrl *hc=NULL,
 extern Bool ISO1FileFind(CDrv *dv,I64 cur_dir_cluster,U8 *name,
 	CDirEntry *_res,I64 fuf_flags=0);
 extern Bool ISODrvInit(CDrv *dv,I64 blk);
-extern Bool IsDbg();
+extern Bool IsDbgMode();
 extern Bool IsDir(U8 *dir_name);
 extern Bool IsRaw();
 extern CBlkDev *Let2BlkDev(U8 drv_let=0,Bool except=TRUE);
@@ -77,7 +77,7 @@ extern U0 PutChars(U64 ch);
 extern U0 PutS(U8 *st); //Use $LK,"Print",A="MN:Print"$()
 extern Bool RBlks(CDrv *dv,U8 *buf, I64 blk, I64 cnt);
 extern I64 RedSeaAllocClusters(CDrv *dv,I64 cnt);
-extern Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempde,
+extern Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tmpde,
 	Bool free_old_chain);
 extern U0 RedSeaDrvInit(CDrv *dv);
 extern Bool RedSeaDrvValidate(U8 drv_let);
@@ -88,7 +88,7 @@ extern U0 RedSeaFreeFreeLst(CDrv *dv);
 extern CTask *SpawnQue(U0 (*fp_addr)(U8 *data),U8 *data=NULL,
     U8 *task_name=NULL,I64 target_cpu,CTask *parent=NULL, //NULL means adam
     I64 stk_size=0,I64 flags=1<type&HTG_TYPE_MASK);
+  if (tmph)
+    return Bsf(tmph->type&HTG_TYPE_MASK);
   else
     return -1;
 }
 
-I64 HashVal(CHash *temph)
+I64 HashVal(CHash *tmph)
 {//Returns most likely desired value.
-  switch [HashTypeNum(temph)] {
+  switch [HashTypeNum(tmph)] {
     case HTt_EXPORT_SYS_SYM:
-      return temph(CHashExport *)->val;
+      return tmph(CHashExport *)->val;
     case HTt_IMPORT_SYS_SYM:
-      return temph(CHashImport *)->module_base;
+      return tmph(CHashImport *)->module_base;
     case HTt_DEFINE_STR:
     case HTt_CLASS:
     case HTt_INTERNAL_TYPE:
@@ -20,25 +20,25 @@ I64 HashVal(CHash *temph)
     case HTt_DICT_WORD:
     case HTt_OPCODE:
     case HTt_HELP_FILE:
-      return temph;
+      return tmph;
     case HTt_GLBL_VAR:
-      if (temph(CHashGlblVar *)->flags&GVF_EXTERN)
-	return &temph(CHashGlblVar *)->data_addr;
+      if (tmph(CHashGlblVar *)->flags&GVF_EXTERN)
+	return &tmph(CHashGlblVar *)->data_addr;
       else
-	return temph(CHashGlblVar *)->data_addr;
+	return tmph(CHashGlblVar *)->data_addr;
     case HTt_FUN:
-      if (Bt(&temph(CHashFun *)->flags,Cf_EXTERN))
-	return temph;
+      if (Bt(&tmph(CHashFun *)->flags,Cf_EXTERN))
+	return tmph;
       else
-	return temph(CHashFun *)->exe_addr;
+	return tmph(CHashFun *)->exe_addr;
     case HTt_REG:
-      return temph(CHashReg *)->reg_num|temph(CHashReg *)->reg_type<<8;
+      return tmph(CHashReg *)->reg_num|tmph(CHashReg *)->reg_type<<8;
     case HTt_KEYWORD:
     case HTt_ASM_KEYWORD:
     case HTt_MODULE:
     case HTt_FILE:
     case HTt_FRAME_PTR:
-      return temph(CHashGeneric *)->user_data0;
+      return tmph(CHashGeneric *)->user_data0;
 
     case -1:		//nobound switch
     case HTt_NUM_TYPES: //nobound switch
@@ -56,48 +56,48 @@ CHashTable *HashTableNew(I64 size,CTask *mem_task=NULL)
   return table;
 }
 
-U0 HashDel(CHashSrcSym *temph)
+U0 HashDel(CHashSrcSym *tmph)
 {//Free a std TempleOS system hash entry.
-  if (!temph) return;
-  if (!(temph->type&HTT_DICT_WORD))
-    Free(temph->str);
-  if (temph->type & HTG_SRC_SYM) {
-    Free(temph->src_link);
-    Free(temph->idx);
-    Free(temph->import_name);
-    LinkedLstDel(temph->ie_lst);
-    if (temph->type & (HTT_FUN | HTT_EXPORT_SYS_SYM))
-      Free(temph->dbg_info);
-    if (temph->type & (HTT_FUN | HTT_CLASS))
+  if (!tmph) return;
+  if (!(tmph->type&HTT_DICT_WORD))
+    Free(tmph->str);
+  if (tmph->type & HTG_SRC_SYM) {
+    Free(tmph->src_link);
+    Free(tmph->idx);
+    Free(tmph->import_name);
+    LinkedLstDel(tmph->ie_lst);
+    if (tmph->type & (HTT_FUN | HTT_EXPORT_SYS_SYM))
+      Free(tmph->dbg_info);
+    if (tmph->type & (HTT_FUN | HTT_CLASS))
 //Assumes code not on heap, so doesn't Free.
     //$LK,"ClassMemberLstDel",A="MN:ClassMemberLstDel"$() is an import to the Kernel module
-      ClassMemberLstDel(temph);
-    else if (temph->type&HTT_DEFINE_STR)
-      Free(temph(CHashDefineStr *)->data);
-    else if (temph->type & HTT_GLBL_VAR) {
-      if (!(temph(CHashGlblVar *)->flags&GVF_ALIAS))
-	Free(temph(CHashGlblVar *)->data_addr);
-      LinkedLstDel(temph(CHashGlblVar *)->dim.next);
-      if (temph(CHashGlblVar *)->fun_ptr)
-	HashDel(temph(CHashGlblVar *)->fun_ptr
-	      -temph(CHashGlblVar *)->fun_ptr->ptr_stars_cnt);
+      ClassMemberLstDel(tmph);
+    else if (tmph->type&HTT_DEFINE_STR)
+      Free(tmph(CHashDefineStr *)->data);
+    else if (tmph->type & HTT_GLBL_VAR) {
+      if (!(tmph(CHashGlblVar *)->flags&GVF_ALIAS))
+	Free(tmph(CHashGlblVar *)->data_addr);
+      LinkedLstDel(tmph(CHashGlblVar *)->dim.next);
+      if (tmph(CHashGlblVar *)->fun_ptr)
+	HashDel(tmph(CHashGlblVar *)->fun_ptr
+	      -tmph(CHashGlblVar *)->fun_ptr->ptr_stars_cnt);
     }
-  } else if (temph->type & HTT_FILE)
-    Free(temph(CHashGeneric *)->user_data0);
-  Free(temph);
+  } else if (tmph->type & HTT_FILE)
+    Free(tmph(CHashGeneric *)->user_data0);
+  Free(tmph);
 }
 
 U0 HashTableDel(CHashTable *table)
 {//Free std system hash table, calling $LK,"HashDel",A="MN:HashDel"$() on entries.
   I64 i;
-  CHashSrcSym *temph,*temph1;
+  CHashSrcSym *tmph,*tmph1;
   if (!table) return;
   for (i=0;i<=table->mask;i++) {
-    temph=table->body[i];
-    while (temph) {
-      temph1=temph->next;
-      HashDel(temph);
-      temph=temph1;
+    tmph=table->body[i];
+    while (tmph) {
+      tmph1=tmph->next;
+      HashDel(tmph);
+      tmph=tmph1;
     }
   }
   Free(table->body);
@@ -107,30 +107,30 @@ U0 HashTableDel(CHashTable *table)
 I64 HashTablePurge(CHashTable *table)
 {//Eliminate ExportSysSyms that have been usurped.
   I64 i,res=0;
-  CHashSrcSym *temph,*temph1,*temph2;
+  CHashSrcSym *tmph,*tmph1,*tmph2;
   if (!table) return 0;
   PUSHFD
   CLI	 //Precaution
   for (i=0;i<=table->mask;i++) {
-    temph=table->body[i];
-    while (temph) {
-      temph1=temph->next; //We delete only older ones
-      if (temph->type&(HTT_FUN|HTT_GLBL_VAR)) {
-	temph2=temph->next; //Older always later in chain
-	while (temph2) {
-	  if ((temph2->type&HTT_EXPORT_SYS_SYM ||
-		temph2->type&HTG_TYPE_MASK==HTT_INVALID) &&
-		!StrCmp(temph2->str,temph->str)) {
-	    if (temph2->type&HTG_TYPE_MASK==HTT_INVALID)
-	      temph2->type=HTT_KEYWORD;//Won't delete HTT_INVALID
-	    HashRemDel(temph2,table);
+    tmph=table->body[i];
+    while (tmph) {
+      tmph1=tmph->next; //We delete only older ones
+      if (tmph->type&(HTT_FUN|HTT_GLBL_VAR)) {
+	tmph2=tmph->next; //Older always later in chain
+	while (tmph2) {
+	  if ((tmph2->type&HTT_EXPORT_SYS_SYM ||
+		tmph2->type&HTG_TYPE_MASK==HTT_INVALID) &&
+		!StrCmp(tmph2->str,tmph->str)) {
+	    if (tmph2->type&HTG_TYPE_MASK==HTT_INVALID)
+	      tmph2->type=HTT_KEYWORD;//Won't delete HTT_INVALID
+	    HashRemDel(tmph2,table);
 	    res++;
 	    break;
 	  }
-	  temph2=temph2->next;
+	  tmph2=tmph2->next;
 	}
       }
-      temph=temph1;
+      tmph=tmph1;
     }
   }
   POPFD
@@ -153,11 +153,11 @@ CHashGeneric *HashGenericAdd(U8 *name,I64 type,
 
 U0 HashSrcFileSet(CCmpCtrl *cc,CHashSrcSym *h,I64 line_num_offset=0)
 {//Set $LK,"CHashSrcSym",A="MN:CHashSrcSym"$ link and help_index by cur cc pos.
-  CLexFile *tempf=cc->lex_include_stk;
-  I64 line_num=tempf->line_num+line_num_offset;
+  CLexFile *tmpf=cc->lex_include_stk;
+  I64 line_num=tmpf->line_num+line_num_offset;
   if (line_num<1) line_num=1;
   Free(h->src_link);
-  h->src_link=MStrPrint("FL:%s,%d",tempf->full_name,line_num);
+  h->src_link=MStrPrint("FL:%s,%d",tmpf->full_name,line_num);
   if (Bt(&cc->opts,OPTf_KEEP_PRIVATE))
     h->type|=HTF_PRIVATE;
   Free(h->idx);
@@ -185,18 +185,18 @@ CHashGeneric *HashPublic(U8 *st,I64 mask,Bool val=TRUE)
 I64 HashLstAdd(U8 *lst,I64 type,CHashTable *table)
 {//Add a list to a hash table.
   I64 i=0;
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   if (lst) {
     while (*lst) {
       if (*lst=='@')
 	lst++;
       else
 	i++;
-      temph=CAlloc(sizeof(CHashGeneric));
-      temph->user_data0=i-1;
-      temph->str=StrNew(lst);
-      temph->type=type;
-      HashAdd(temph,table);
+      tmph=CAlloc(sizeof(CHashGeneric));
+      tmph->user_data0=i-1;
+      tmph->str=StrNew(lst);
+      tmph->type=type;
+      HashAdd(tmph,table);
       while (*lst++);
     }
   }
@@ -205,19 +205,19 @@ I64 HashLstAdd(U8 *lst,I64 type,CHashTable *table)
 
 I64 HashDefineLstAdd(U8 *dname,I64 type,CHashTable *table)
 {//Add define list to a hash table. See $LK,"::/Adam/DolDoc/DocInit.HC",A="FF:::/Adam/DolDoc/DocInit.HC,HashDefineLstAdd"$.
-  CHashDefineStr *temph;
-  if (temph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
-    return HashLstAdd(temph->data,type,table);
+  CHashDefineStr *tmph;
+  if (tmph=HashFind(dname,Fs->hash_table,HTT_DEFINE_STR))
+    return HashLstAdd(tmph->data,type,table);
   else
     return 0;
 }
 
 I64 FramePtr(U8 *name,CTask *task=NULL)
 {//Find entry in task->hash_table, Return user_data.
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
-    return temph->user_data0;
+  if (tmph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
+    return tmph->user_data0;
   else
     return 0;
 }
@@ -229,22 +229,22 @@ CHashGeneric *FramePtrAdd(U8 *name,I64 val=0,CTask *task=NULL)
 
 I64 FramePtrSet(U8 *name,I64 val,CTask *task=NULL)
 {//Find hash entry in task->hash_table. Change user_data0.
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
-    return LXchgI64(&temph->user_data0,val);
+  if (tmph=HashFind(name,task->hash_table,HTT_FRAME_PTR))
+    return LXchgI64(&tmph->user_data0,val);
   else
     return 0;
 }
 
 I64 FramePtrDel(U8 *name,CTask *task=NULL)
 {//Remove entry and delete.
-  CHashGeneric *temph;
+  CHashGeneric *tmph;
   I64 res=0;
   if (!task) task=Fs;
-  if (temph=HashFind(name,task->hash_table,HTT_FRAME_PTR)) {
-    res=temph->user_data0;
-    HashRemDel(temph,task->hash_table);
+  if (tmph=HashFind(name,task->hash_table,HTT_FRAME_PTR)) {
+    res=tmph->user_data0;
+    HashRemDel(tmph,task->hash_table);
   }
   return res;
 }
diff --git a/Kernel/KInts.HC b/Kernel/KInts.HC
index bfb39ba..f71b19c 100644
--- a/Kernel/KInts.HC
+++ b/Kernel/KInts.HC
@@ -180,15 +180,15 @@ U8 *IntFaultHandlersNew()
 U0 IntInit1()
 {//Interrupt descriptor table part1.
   I64 i;
-  CSysLimitBase temp_ptr;
+  CSysLimitBase tmp_ptr;
   if (!Gs->num) {//Gs cur $LK,"CCPU",A="MN:CCPU"$ struct
     dev.idt=CAlloc(16*256);
     for (i=0;i<256;i++)
       IntEntrySet(i,&IntNop);
   }
-  temp_ptr.limit=256*16-1;
-  temp_ptr.base =dev.idt;
-  SetRAX(&temp_ptr);
+  tmp_ptr.limit=256*16-1;
+  tmp_ptr.base =dev.idt;
+  SetRAX(&tmp_ptr);
   LIDT U64 [RAX]
 }
 
diff --git a/Kernel/KLoad.HC b/Kernel/KLoad.HC
index b9b8362..cd99443 100644
--- a/Kernel/KLoad.HC
+++ b/Kernel/KLoad.HC
@@ -2,8 +2,8 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 {
   U8 *src=*_src,*ptr2,*st_ptr;
   I64 i,etype;
-  CHashExport *tempex=NULL;
-  CHashImport *tempiss;
+  CHashExport *tmpex=NULL;
+  CHashImport *tmpiss;
   Bool first=TRUE;
 
   while (etype=*src++) {
@@ -16,27 +16,27 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 	return;
       } else {
 	first=FALSE;
-	if (!(tempex=HashFind(st_ptr,
+	if (!(tmpex=HashFind(st_ptr,
 	      Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM))) {
 	  if (!(ld_flags & LDF_SILENT))
 	    "Unresolved Reference:%s\n",st_ptr;
-	  tempiss=CAlloc(sizeof(CHashImport));
-	  tempiss->str=StrNew(st_ptr);
-	  tempiss->type=HTT_IMPORT_SYS_SYM;
-	  tempiss->module_header_entry=st_ptr-5;
-	  tempiss->module_base=module_base;
-	  HashAdd(tempiss,Fs->hash_table);
+	  tmpiss=CAlloc(sizeof(CHashImport));
+	  tmpiss->str=StrNew(st_ptr);
+	  tmpiss->type=HTT_IMPORT_SYS_SYM;
+	  tmpiss->module_header_entry=st_ptr-5;
+	  tmpiss->module_base=module_base;
+	  HashAdd(tmpiss,Fs->hash_table);
 	}
       }
     }
-    if (tempex) {
+    if (tmpex) {
       ptr2=module_base+i;
-      if (tempex->type & HTT_FUN)
-	i=tempex(CHashFun *)->exe_addr;
-      else if (tempex->type & HTT_GLBL_VAR)
-	i=tempex(CHashGlblVar *)->data_addr;
+      if (tmpex->type & HTT_FUN)
+	i=tmpex(CHashFun *)->exe_addr;
+      else if (tmpex->type & HTT_GLBL_VAR)
+	i=tmpex(CHashGlblVar *)->data_addr;
       else
-	i=tempex->val;
+	i=tmpex->val;
       switch (etype) {
 	case IET_REL_I8:  *ptr2(U8 *) =i-ptr2-1; break;
 	case IET_IMM_U8:  *ptr2(U8 *) =i;  break;
@@ -54,13 +54,13 @@ U0 LoadOneImport(U8 **_src,U8 *module_base,I64 ld_flags)
 
 U0 SysSymImportsResolve(U8 *st_ptr,I64 ld_flags)
 {
-  CHashImport *tempiss;
+  CHashImport *tmpiss;
   U8 *ptr;
-  while (tempiss=HashSingleTableFind(st_ptr,
+  while (tmpiss=HashSingleTableFind(st_ptr,
 	Fs->hash_table,HTT_IMPORT_SYS_SYM)) {
-    ptr=tempiss->module_header_entry;
-    LoadOneImport(&ptr,tempiss->module_base,ld_flags);
-    tempiss->type=HTT_INVALID;
+    ptr=tmpiss->module_header_entry;
+    LoadOneImport(&ptr,tmpiss->module_base,ld_flags);
+    tmpiss->type=HTT_INVALID;
   }
 }
 
@@ -68,7 +68,7 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
 {
   U8 *ptr2,*ptr3,*st_ptr;
   I64 i,j,cnt,etype;
-  CHashExport *tempex=NULL;
+  CHashExport *tmpex=NULL;
   while (etype=*src++) {
     i=*src(U32 *)++;
     st_ptr=src;
@@ -78,14 +78,14 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
       case IET_IMM32_EXPORT:
       case IET_REL64_EXPORT:
       case IET_IMM64_EXPORT:
-	tempex=CAlloc(sizeof(CHashExport));
-	tempex->str=StrNew(st_ptr);
-	tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	tmpex=CAlloc(sizeof(CHashExport));
+	tmpex->str=StrNew(st_ptr);
+	tmpex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
 	if (etype==IET_IMM32_EXPORT||etype==IET_IMM64_EXPORT)
-	  tempex->val=i;
+	  tmpex->val=i;
 	else
-	  tempex->val=i+module_base;
-	HashAdd(tempex,Fs->hash_table);
+	  tmpex->val=i+module_base;
+	HashAdd(tmpex,Fs->hash_table);
 	SysSymImportsResolve(st_ptr,ld_flags);
 	break;
       case IET_REL_I0...IET_IMM_I64:
@@ -113,11 +113,11 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
 	  break;
       end:
 	if (*st_ptr) {
-	  tempex=CAlloc(sizeof(CHashExport));
-	  tempex->str=StrNew(st_ptr);
-	  tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
-	  tempex->val=ptr3;
-	  HashAdd(tempex,Fs->hash_table);
+	  tmpex=CAlloc(sizeof(CHashExport));
+	  tmpex->str=StrNew(st_ptr);
+	  tmpex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	  tmpex->val=ptr3;
+	  HashAdd(tmpex,Fs->hash_table);
 	}
 	cnt=i;
 	for (j=0;jstr=StrNew(st_ptr);
-	  tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
-	  tempex->val=ptr3;
-	  HashAdd(tempex,Fs->hash_table);
+	  tmpex=CAlloc(sizeof(CHashExport));
+	  tmpex->str=StrNew(st_ptr);
+	  tmpex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
+	  tmpex->val=ptr3;
+	  HashAdd(tmpex,Fs->hash_table);
 	}
 	cnt=i;
 	for (j=0;jfreq=freq;
       d->time=tS;
@@ -187,6 +187,18 @@ U0 Snd(F64 freq)
   }
 }
 
+U0 SndRst()
+{//Fix stuck sound.
+  if (Bt(&sys_semas[SYS_SEMA_SND],0)) {
+    Sleep(1);
+    if (Bt(&sys_semas[SYS_SEMA_SND],0)) {
+      Sleep(1);
+      LBtr(&sys_semas[SYS_SEMA_SND],0);
+    }
+  }
+  Snd(0);
+}
+
 U0 Beep(I64 freq=500,Bool busy=FALSE)
 {//Make beep at given freq.
   Snd(freq);
@@ -202,7 +214,7 @@ U0 Beep(I64 freq=500,Bool busy=FALSE)
 }
 
 Bool Mute(Bool val)
-{//Turn-off or on sound.
+{//Turn-off sound.
   Bool res;
   if (val) {
     PUSHFD
@@ -221,55 +233,55 @@ Bool IsMute()
 }
 
 Bool Silent(Bool val=ON)
-{//Turns-off StdOut console text output, not sound.
+{//Turn-off StdOut console text. (Not sound.)
   return LBEqu(&Fs->display_flags,DISPLAYf_SILENT,val);
 }
 
 Bool IsSilent()
-{//Is StdOut turned-off?
+{//Return StdOut turned-off?
   return Bt(&Fs->display_flags,DISPLAYf_SILENT);
 }
 
 Bool SysDbg(Bool val)
-{//Sets or resets sysdbg bit you can use while debugging.
+{//Set SysDbg bit you can use while debugging.
   return LBEqu(&sys_semas[SYS_SEMA_DEBUG],0,val);
 }
 
 Bool IsSysDbg()
-{//Is sysdbg bit set?
+{//Return SysDbg bit.
   return Bt(&sys_semas[SYS_SEMA_DEBUG],0);
 }
 
 Bool Raw(Bool val)
-{//Switches to direct screen, non-windowed output.
+{//Set to direct scrn, BLACK & WHITE, non-windowed output mode.
   if (!val)
     VGAFlush;
   return !LBEqu(&Fs->display_flags,DISPLAYf_NOT_RAW,!val);
 }
 
 Bool IsRaw()
-{//Are we in BLACK & WHITE raw screen mode?
+{//Are we in BLACK & WHITE raw scrn mode?
   return !Bt(&Fs->display_flags,DISPLAYf_NOT_RAW);
 }
 
 Bool SingleUser(Bool val)
-{//Sets or resets single-user mode bit.
+{//Set single-user mode.
   return LBEqu(&sys_semas[SYS_SEMA_SINGLE_USER],0,val);
 }
 
 Bool IsSingleUser()
-{//Are we in single-user mode?
+{//Return single-user mode.
   return Bt(&sys_semas[SYS_SEMA_SINGLE_USER],0);
 }
 
-Bool InDbg(Bool val)
-{//Set in-debugger flag.
-  return LBEqu(&sys_semas[SYS_SEMA_IN_DEBUGGER],0,val);
+Bool DbgMode(Bool val)
+{//Set dbg-mode.
+  return LBEqu(&sys_semas[SYS_SEMA_DBG_MODE],0,val);
 }
 
-Bool IsDbg()
-{//Return in-debugger flag.
-  return Bt(&sys_semas[SYS_SEMA_IN_DEBUGGER],0);
+Bool IsDbgMode()
+{//Return dbg-mode.
+  return Bt(&sys_semas[SYS_SEMA_DBG_MODE],0);
 }
 
 U0 ProgressBarsRst()
diff --git a/Kernel/KStart32.HC b/Kernel/KStart32.HC
index 6c9237d..dfa5b77 100644
--- a/Kernel/KStart32.HC
+++ b/Kernel/KStart32.HC
@@ -72,7 +72,7 @@ CORE0_32BIT_INIT:: //Entry point for $LK,"BootRAM",A="MN:BootRAM"$.
 	MOV	FS,AX
 	MOV	GS,AX
 	MOV	SS,AX
-	MOV	ESP,BOOT_RAM_LIMIT //Temp Stk
+	MOV	ESP,BOOT_RAM_LIMIT //Tmp Stk
 
 //Patch abs addresses
 	MOV	ECX,U32 CPatchTableAbsAddr.abs_addres_cnt[ESI]
diff --git a/Kernel/KTask.HC b/Kernel/KTask.HC
index d574cbe..2627023 100644
--- a/Kernel/KTask.HC
+++ b/Kernel/KTask.HC
@@ -1,10 +1,10 @@
 U0 Exit()
 {//Terminate own task.
-  if (Fs==sys_focus_task && IsDbg) {
+  if (Fs==sys_focus_task && IsDbgMode) {
     LBts(&Fs->task_flags,TASKf_KILL_AFTER_DBG);
     G;
   } else {
-    if (!Gs->num && !IsDbg)
+    if (!Gs->num && !IsDbgMode)
       SingleUser(OFF);
     Fs->rflags=GetRFlags;
     Fs->rsp=GetRSP;
@@ -25,14 +25,19 @@ Bool TaskValidate(CTask *task)
     return TRUE;
 }
 
-U0 BirthWait(CTask **_task,I64 task_num=-1)
+I64 BirthWait(CTask **_task,I64 task_num=-1)
 {//Wait for task valid and not task_num.
   while (!TaskValidate(*_task)||(*_task)->task_num==task_num)
     Yield;
+  return (*_task)->task_num;
 }
 
-U0 DeathWait(CTask **_task)
+U0 DeathWait(CTask **_task,Bool send_exit=FALSE)
 {//Wait for task death.
+  if (send_exit && TaskValidate(*_task)) {
+    TaskWait(*_task,TRUE);
+    XTalk(*_task,"Exit;\n");
+  }
   while (TaskValidate(*_task))
     Yield;
 }
@@ -79,11 +84,11 @@ Bool IsSuspended(CTask *task=NULL)
 
 CTaskStk *TaskStkNew(I64 stk_size,CTask *task)
 {
-  CTaskStk *temps=MAlloc(stk_size+offset(CTaskStk.stk_base),task);
-  temps->next_stk=NULL;
-  temps->stk_ptr=NULL;
-  temps->stk_size=MSize(temps)-offset(CTaskStk.stk_base);
-  return temps;
+  CTaskStk *tmps=MAlloc(stk_size+offset(CTaskStk.stk_base),task);
+  tmps->next_stk=NULL;
+  tmps->stk_ptr=NULL;
+  tmps->stk_size=MSize(tmps)-offset(CTaskStk.stk_base);
+  return tmps;
 }
 
 #exe {Option(OPTf_NO_REG_VAR,ON);};
@@ -91,7 +96,7 @@ argpop I64 CallStkGrow(I64 stk_size_threshold,I64 stk_size,
 			/*argpop*/I64 (*fp_addr)(...),...)
 {//Grow stk in call with any fixed num of args.
 //See $LK,"::/Demo/StkGrow.HC"$.
-  CTaskStk *temps,*temps2,**_stk;
+  CTaskStk *tmps,*tmps2,**_stk;
   I64 res,*rsp,*rsp2,*old_stk;
 
   if (UnusedStk>=stk_size_threshold) {
@@ -108,14 +113,14 @@ argpop I64 CallStkGrow(I64 stk_size_threshold,I64 stk_size,
 
   } else {
 
-    temps2=TaskStkNew(stk_size,Fs);
-    temps2->next_stk=temps=Fs->stk;
-    rsp2=(&temps2->stk_base)(U8 *)+temps2->stk_size;
+    tmps2=TaskStkNew(stk_size,Fs);
+    tmps2->next_stk=tmps=Fs->stk;
+    rsp2=(&tmps2->stk_base)(U8 *)+tmps2->stk_size;
     old_stk=rsp=&argv[argc];
     while (argc-->0)
       *--rsp2=*--rsp;
     _stk=&Fs->stk;
-    temps->stk_ptr=rsp=GetRSP;
+    tmps->stk_ptr=rsp=GetRSP;
     asm {
       IMPORT	_FREE;	//We are in a function, not at glbl scope.
 //The compiler treats these in isolation.
@@ -123,9 +128,9 @@ argpop I64 CallStkGrow(I64 stk_size_threshold,I64 stk_size,
       PUSHFD
       POP	RDX	//flags
       CLI
-      MOV	RBX,U64 &temps2[RBP]
+      MOV	RBX,U64 &tmps2[RBP]
       MOV	RAX,&_stk[RBP]
-      MOV	U64 [RAX],RBX	//Fs->stk=temps2
+      MOV	U64 [RAX],RBX	//Fs->stk=tmps2
       MOV	RSP,U64 &rsp2[RBP]
       PUSH	RDX
       POPFD
@@ -136,14 +141,14 @@ argpop I64 CallStkGrow(I64 stk_size_threshold,I64 stk_size,
       PUSHFD
       POP	RDX	//flags
       CLI
-      MOV	RBX,U64 &temps[RBP]
+      MOV	RBX,U64 &tmps[RBP]
       MOV	RAX,&_stk[RBP]
-      MOV	U64 [RAX],RBX	//Fs->stk=temps
+      MOV	U64 [RAX],RBX	//Fs->stk=tmps
       MOV	RSP,U64 &rsp[RBP]
       PUSH	RDX
       POPFD
 
-      PUSH	U64 &temps2[RBP]
+      PUSH	U64 &tmps2[RBP]
       CALL	_FREE
 
       MOV	RDX,U64 &old_stk[RBP]
@@ -161,7 +166,7 @@ argpop I64 CallStkGrow(I64 stk_size_threshold,I64 stk_size,
 
 I64 TaskInit(CTask *task,I64 stk_size)
 {//Returns Fs of task
-  CTaskStk *temps;
+  CTaskStk *tmps;
 
   QueInit(&task->code_heap->next_mem_blk);
   task->code_heap->last_mergable=NULL;
@@ -196,8 +201,8 @@ I64 TaskInit(CTask *task,I64 stk_size)
 
   if (!stk_size)
     stk_size=MEM_DFT_STK;
-  task->stk=temps=TaskStkNew(stk_size,task);
-  task->rsp=(&temps->stk_base)(U8 *)+temps->stk_size;
+  task->stk=tmps=TaskStkNew(stk_size,task);
+  task->rsp=(&tmps->stk_base)(U8 *)+tmps->stk_size;
 
   task->text_attr	=WHITE<<4+BLUE;
   task->border_src	=BDS_CONST;
@@ -426,8 +431,8 @@ U0 TaskDel(CTask *task)
 
 I64 TaskEnd()
 {//Called with irq's off.
-  CTask *task=Fs,*tempt,*tempt1;
-  if (task==sys_task_being_screen_updated) {
+  CTask *task=Fs,*tmpt,*tmpt1;
+  if (task==sys_task_being_scrn_updated) {
     LBts(&task->task_flags,TASKf_KILL_TASK);
     return task->next_task;
   }
@@ -448,13 +453,13 @@ I64 TaskEnd()
 
   DrvsRelease;
   BlkDevsRelease;
-  tempt1=(&task->next_child_task)(U8 *)-offset(CTask.next_sibling_task);
-  tempt=tempt1->next_sibling_task;
-  if (tempt!=tempt1) {
+  tmpt1=(&task->next_child_task)(U8 *)-offset(CTask.next_sibling_task);
+  tmpt=tmpt1->next_sibling_task;
+  if (tmpt!=tmpt1) {
     do {
-      LBts(&tempt->task_flags,TASKf_KILL_TASK);
-      tempt=tempt->next_sibling_task;
-    } while (tempt!=tempt1);
+      LBts(&tmpt->task_flags,TASKf_KILL_TASK);
+      tmpt=tmpt->next_sibling_task;
+    } while (tmpt!=tmpt1);
     return task->next_task;
   }
   if (LBtr(&task->display_flags,DISPLAYf_SHOW))
@@ -482,17 +487,17 @@ I64 TaskEnd()
   //QueRem
   task->task_signature(I64)=0;
 
-  tempt =task->next_input_filter_task;
-  tempt1=task->last_input_filter_task;
-  tempt1->next_input_filter_task=tempt;
-  tempt ->last_input_filter_task=tempt1;
+  tmpt =task->next_input_filter_task;
+  tmpt1=task->last_input_filter_task;
+  tmpt1->next_input_filter_task=tmpt;
+  tmpt ->last_input_filter_task=tmpt1;
 
-  tempt =task->next_sibling_task;
-  tempt1=task->last_sibling_task;
-  tempt1->next_sibling_task=tempt;
-  tempt ->last_sibling_task=tempt1;
+  tmpt =task->next_sibling_task;
+  tmpt1=task->last_sibling_task;
+  tmpt1->next_sibling_task=tmpt;
+  tmpt ->last_sibling_task=tmpt1;
 
-  tempt =task->next_task; //save to return
+  tmpt =task->next_task; //save to return
   TaskQueRem(task);
 
   LBtr(&task->srv_ctrl.flags,SVCRf_LOCKED);
@@ -504,7 +509,7 @@ I64 TaskEnd()
   QueIns(task,Gs->last_dying);
   LBtr(&Gs->cpu_flags,CPUf_DYING_TASK_QUE);
 
-  return tempt;
+  return tmpt;
 }
 
 U0 TaskKillDying()
diff --git a/Kernel/Kernel.MAP b/Kernel/Kernel.MAP
index 130e8fc..3a6107b 100644
--- a/Kernel/Kernel.MAP
+++ b/Kernel/Kernel.MAP
@@ -1,733 +1,738 @@
 $LK,"DrvTextAttrGet",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,312",BI=1$
-$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HH,1897"$
+$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HH,1899"$
 $LK,"MAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,387"$
-$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HH,3882"$
+$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HH,3890"$
 $LK,"KbdTypeMatic",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,86",BI=2$
 $LK,"KbdLEDsSet",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,52",BI=3$
 $LK,"LXchgU32",A="FL:::/Kernel/KernelB.HH,255"$
 $LK,"LXchgU16",A="FL:::/Kernel/KernelB.HH,254"$
-$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HH,3268"$
-$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HH,1341"$
+$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HH,3273"$
+$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HH,1343"$
 $LK,"chars_bmp_word",A="FL:::/Kernel/StrA.HC.Z,340"$
-$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HH,2297"$
-$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HH,1928"$
+$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HH,2300"$
+$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HH,1930"$
 $LK,"c32_eax",A="FL:::/Kernel/PCIBIOS.HC.Z,152"$
-$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HH,1921"$
-$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HH,912"$
-$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HH,852"$
+$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HH,1923"$
+$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HH,913"$
+$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HH,853"$
 $LK,"c32_ebx",A="FL:::/Kernel/PCIBIOS.HC.Z,153"$
 $LK,"MemPageSize",A="FL:::/Kernel/Mem/PageTables.HC.Z,135",BI=4$
 $LK,"D3Add",A="FL:::/Kernel/KernelB.HH,145"$
 $LK,"D3NormSqr",A="FL:::/Kernel/KernelB.HH,158"$
-$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HH,3895"$
-$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HH,1295"$
-$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HH,466"$
-$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HH,447"$
+$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HH,3903"$
+$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HH,1297"$
+$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HH,467"$
+$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HH,448"$
 $LK,"c32_ecx",A="FL:::/Kernel/PCIBIOS.HC.Z,154"$
-$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HH,2157"$
-$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HH,617"$
-$LK,"SSF_INACTIVE",A="FL:::/Kernel/KernelA.HH,223"$
-$LK,"MSF_INACTIVE",A="FL:::/Kernel/KernelA.HH,206"$
-$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HH,2265"$
+$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HH,2159"$
+$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HH,618"$
+$LK,"SSF_INACTIVE",A="FL:::/Kernel/KernelA.HH,224"$
+$LK,"MSF_INACTIVE",A="FL:::/Kernel/KernelA.HH,207"$
+$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HH,2267"$
 $LK,"c32_edx",A="FL:::/Kernel/PCIBIOS.HC.Z,155"$
-$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,2593"$
-$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HH,1800"$
-$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HH,1099"$
-$LK,"KernelMain",A="FL:::/Kernel/KEnd.HC.Z,134",BI=5$
+$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,2597"$
+$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HH,1802"$
+$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HH,1100"$
+$LK,"KernelMain",A="FL:::/Kernel/KEnd.HC.Z,132",BI=5$
 $LK,"KbdCmdSend",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,24",BI=6$
 $LK,"_D3_NORM_SQR",A="FL:::/Kernel/KMathA.HC.Z,22"$
-$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HH,3276"$
-$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HH,2537"$
-$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HH,2158"$
-$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HH,1181"$
-$LK,"CAOT",A="FL:::/Kernel/KernelA.HH,1998"$
+$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HH,3281"$
+$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HH,2540"$
+$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HH,2160"$
+$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HH,1182"$
+$LK,"CAOT",A="FL:::/Kernel/KernelA.HH,2000"$
 $LK,"sys_gig_pages",A="FL:::/Kernel/KernelB.HH,179"$
-$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HH,3185"$
-$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HH,459"$
-$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HH,457"$
-$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HH,440"$
-$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HH,438"$
-$LK,"BreakUnlock",A="FL:::/Kernel/KExcept.HC.Z,146",BI=7$
-$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HH,916"$
-$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HH,915"$
-$LK,"CGDT",A="FL:::/Kernel/KernelA.HH,335"$
-$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HH,3246"$
-$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HH,1609"$
-$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HH,779"$
-$LK,"I_MP_CRASH",A="FL:::/Kernel/KernelA.HH,294"$
-$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2878"$
-$LK,"INVALID_PTR",A="FL:::/Kernel/KernelA.HH,39"$
-$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HH,1345"$
+$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HH,3190"$
+$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HH,460"$
+$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HH,458"$
+$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HH,441"$
+$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HH,439"$
+$LK,"BreakUnlock",A="FL:::/Kernel/KExcept.HC.Z,153",BI=7$
+$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HH,917"$
+$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HH,916"$
+$LK,"CGDT",A="FL:::/Kernel/KernelA.HH,336"$
+$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HH,3251"$
+$LK,"PRTF_NEG_AUX_FMT_NUM",A="FL:::/Kernel/KernelA.HH,3930"$
+$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HH,1611"$
+$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HH,780"$
+$LK,"I_MP_CRASH",A="FL:::/Kernel/KernelA.HH,295"$
+$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2883"$
+$LK,"INVALID_PTR",A="FL:::/Kernel/KernelA.HH,40"$
+$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HH,1347"$
 $LK,"ATAInit",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,303",BI=8$
 $LK,"HashDefineLstAdd",A="FL:::/Kernel/KHashB.HC.Z,206",BI=9$
 $LK,"StrUtil",A="FL:::/Kernel/StrA.HC.Z,524",BI=10$
 $LK,"LstMatch",A="FL:::/Kernel/StrA.HC.Z,421",BI=11$
-$LK,"IET_REL_I32",A="FL:::/Kernel/KernelA.HH,400"$
-$LK,"IET_REL_I16",A="FL:::/Kernel/KernelA.HH,398"$
-$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HH,1679"$
-$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HH,2168"$
+$LK,"IET_REL_I32",A="FL:::/Kernel/KernelA.HH,401"$
+$LK,"IET_REL_I16",A="FL:::/Kernel/KernelA.HH,399"$
+$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HH,1681"$
+$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HH,2170"$
 $LK,"ATAWBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,579",BI=12$
-$LK,"CCPU",A="FL:::/Kernel/KernelA.HH,3438"$
+$LK,"CCPU",A="FL:::/Kernel/KernelA.HH,3445"$
 $LK,"ATABlkSel",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,1",BI=13$
 $LK,"c32_esi",A="FL:::/Kernel/PCIBIOS.HC.Z,156"$
-$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HH,2134"$
-$LK,"LDF_JUST_LOAD",A="FL:::/Kernel/KernelA.HH,368"$
+$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HH,2136"$
+$LK,"DOCEF_RIGHT_IN_STR",A="FL:::/Kernel/KernelA.HH,987"$
+$LK,"LDF_JUST_LOAD",A="FL:::/Kernel/KernelA.HH,369"$
 $LK,"SYS_CACHE_LINE_WIDTH",A="FL:::/Kernel/KStart32.HC.Z,52"$
-$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1700"$
+$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1702"$
 $LK,"FramePtrSet",A="FL:::/Kernel/KHashB.HC.Z,230",BI=14$
-$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HH,2139"$
-$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1701"$
+$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HH,2141"$
+$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1703"$
 $LK,"_STRICMP",A="FL:::/Kernel/StrA.HC.Z,117"$
-$LK,"IET_REL_I64",A="FL:::/Kernel/KernelA.HH,402"$
-$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HH,2336"$
-$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HH,1022"$
-$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HH,2292"$
-$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HH,2069"$
-$LK,"SPF_NEG",A="FL:::/Kernel/KernelA.HH,3920"$
-$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HH,3100"$
-$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HH,1108"$
-$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HH,3893"$
-$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HH,1597"$
+$LK,"IET_REL_I64",A="FL:::/Kernel/KernelA.HH,403"$
+$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HH,2339"$
+$LK,"DOCEf_RIGHT_IN_STR",A="FL:::/Kernel/KernelA.HH,1075"$
+$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HH,1023"$
+$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HH,2295"$
+$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HH,2071"$
+$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HH,3105"$
+$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HH,1109"$
+$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HH,3901"$
+$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HH,1599"$
 $LK,"MemPagesNotPresentMark",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,58",BI=15$
-$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HH,3506"$
+$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HH,3513"$
 $LK,"FloorI64",A="FL:::/Kernel/KMathB.HC.Z,52",BI=16$
-$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HH,3552"$
-$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,2592"$
-$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HH,871"$
+$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HH,3559"$
+$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,2596"$
+$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HH,872"$
 $LK,"DirEntryCompareCluster",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,84",BI=17$
 $LK,"KbdCmdFlush",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,45",BI=18$
-$LK,"CFPU",A="FL:::/Kernel/KernelA.HH,3172"$
-$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HH,3282"$
-$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HH,2564"$
-$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HH,1891"$
-$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HH,1890"$
+$LK,"CFPU",A="FL:::/Kernel/KernelA.HH,3177"$
+$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HH,3287"$
+$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HH,2567"$
+$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HH,1893"$
+$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HH,1892"$
 $LK,"PCIWriteU8",A="FL:::/Kernel/PCIBIOS.HC.Z,220",BI=19$
 $LK,"DefinePrint",A="FL:::/Kernel/KDefine.HC.Z,90",BI=20$
 $LK,"FifoI64Del",A="FL:::/Kernel/KDataTypes.HC.Z,252",BI=21$
-$LK,"CDocUndo",A="FL:::/Kernel/KernelA.HH,1333"$
-$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HH,2934"$
-$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HH,2607"$
-$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HH,2263"$
-$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HH,1731"$
-$LK,"RT_F32",A="FL:::/Kernel/KernelA.HH,1564"$
+$LK,"CDocUndo",A="FL:::/Kernel/KernelA.HH,1335"$
+$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HH,2939"$
+$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HH,2611"$
+$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HH,2265"$
+$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HH,1733"$
+$LK,"RT_F32",A="FL:::/Kernel/KernelA.HH,1566"$
 $LK,"Let2BlkDev",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,175",BI=22$
-$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HH,2581"$
-$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HH,1909"$
-$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1215"$
-$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HH,987"$
-$LK,"RFLAGf_AUX_CARRY",A="FL:::/Kernel/KernelA.HH,309"$
-$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HH,2548"$
-$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HH,1451"$
-$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HH,1075"$
+$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HH,2584"$
+$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HH,1911"$
+$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1216"$
+$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HH,988"$
+$LK,"RFLAGf_AUX_CARRY",A="FL:::/Kernel/KernelA.HH,310"$
+$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HH,2551"$
+$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HH,1453"$
+$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HH,1076"$
 $LK,"Mem64DevFree",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,150",BI=23$
 $LK,"Mem32DevFree",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,114",BI=24$
 $LK,"SYS_GIG_PAGES",A="FL:::/Kernel/KStart32.HC.Z,22"$
-$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HH,1892"$
-$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1303"$
-$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1267"$
+$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HH,1894"$
+$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1305"$
+$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HH,1269"$
 $LK,"ATARepEntry",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,91",BI=25$
-$LK,"BLUE",A="FL:::/Kernel/KernelA.HH,2959"$
+$LK,"BLUE",A="FL:::/Kernel/KernelA.HH,2964"$
 $LK,"sys_ctrl_alt_flags",A="FL:::/Kernel/KernelB.HH,203"$
 $LK,"D3Div",A="FL:::/Kernel/KernelB.HH,151"$
-$LK,"RT_F64",A="FL:::/Kernel/KernelA.HH,1566"$
+$LK,"RT_F64",A="FL:::/Kernel/KernelA.HH,1568"$
 $LK,"EdLite",A="FL:::/Kernel/EdLite.HC.Z,58",BI=26$
-$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HH,2699"$
+$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HH,2704"$
 $LK,"FramePtr",A="FL:::/Kernel/KHashB.HC.Z,215",BI=27$
-$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HH,1899"$
-$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HH,2954"$
-$LK,"RTF_UNSIGNED",A="FL:::/Kernel/KernelA.HH,1569"$
-$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HH,1002"$
-$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HH,2084"$
-$LK,"RT_I32",A="FL:::/Kernel/KernelA.HH,1559"$
-$LK,"RT_I16",A="FL:::/Kernel/KernelA.HH,1557"$
-$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HH,1090"$
-$LK,"SysTry",A="FL:::/Kernel/KExcept.HC.Z,63",BI=28$
-$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HH,1771"$
-$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HH,1728"$
-$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HH,1727"$
-$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,687"$
-$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2661"$
-$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HH,1087"$
+$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HH,1901"$
+$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HH,2959"$
+$LK,"RTF_UNSIGNED",A="FL:::/Kernel/KernelA.HH,1571"$
+$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HH,1003"$
+$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HH,2086"$
+$LK,"RT_I32",A="FL:::/Kernel/KernelA.HH,1561"$
+$LK,"RT_I16",A="FL:::/Kernel/KernelA.HH,1559"$
+$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HH,1091"$
+$LK,"SysTry",A="FL:::/Kernel/KExcept.HC.Z,64",BI=28$
+$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HH,1773"$
+$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HH,1730"$
+$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HH,1729"$
+$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,688"$
+$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2666"$
+$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HH,1088"$
 $LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,136",BI=29$
-$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HH,2715"$
-$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HH,2691"$
+$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HH,2720"$
+$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HH,2696"$
 $LK,"_D3_ADD",A="FL:::/Kernel/KMathA.HC.Z,131"$
-$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HH,620"$
+$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HH,621"$
 $LK,"RCache",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,119",BI=30$
-$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HH,1134"$
+$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HH,1135"$
 $LK,"D3Dot",A="FL:::/Kernel/KernelB.HH,153"$
-$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HH,3196"$
-$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HH,1922"$
-$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,1255"$
-$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,1249"$
-$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HH,1270"$
+$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HH,3201"$
+$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HH,1924"$
+$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,1257"$
+$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,1251"$
+$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HH,1272"$
 $LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,467",BI=31$
-$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HH,1935"$
-$LK,"RT_I64",A="FL:::/Kernel/KernelA.HH,1561"$
+$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HH,1937"$
+$LK,"RT_I64",A="FL:::/Kernel/KernelA.HH,1563"$
 $LK,"FifoI64Cnt",A="FL:::/Kernel/KDataTypes.HC.Z,312",BI=32$
-$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HH,3902"$
-$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HH,3795"$
-$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HH,3592"$
-$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HH,2797"$
-$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,657"$
+$LK,"sys_task_being_scrn_updated",A="FL:::/Kernel/KGlbls.HC.Z,11"$
+$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HH,3910"$
+$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HH,3803"$
+$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HH,3599"$
+$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HH,2802"$
+$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,658"$
 $LK,"RedSeaFileWrite",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,511",BI=33$
-$LK,"AutoStr",A="FL:::/Kernel/SrvCmd.HC.Z,465",BI=34$
-$LK,"CPatchTableAbsAddr",A="FL:::/Kernel/KernelA.HH,383"$
-$LK,"DVDImageRead",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,69",BI=35$
-$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HH,2690"$
-$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HH,411"$
-$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HH,2936"$
-$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HH,1827"$
-$LK,"AutoFile",A="FL:::/Kernel/SrvCmd.HC.Z,475",BI=36$
-$LK,"AMAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,390",BI=37$
-$LK,"ICF_R_TO_INT",A="FL:::/Kernel/KernelA.HH,1592"$
-$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HH,1054"$
-$LK,"B",A="FL:::/Kernel/KDbg.HC.Z,407",BI=38$
-$LK,"ICF_PUSH_RES",A="FL:::/Kernel/KernelA.HH,1604"$
+$LK,"CPatchTableAbsAddr",A="FL:::/Kernel/KernelA.HH,384"$
+$LK,"DVDImageRead",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,69",BI=34$
+$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HH,2695"$
+$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HH,412"$
+$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HH,2941"$
+$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HH,1829"$
+$LK,"AMAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,390",BI=35$
+$LK,"ICF_R_TO_INT",A="FL:::/Kernel/KernelA.HH,1594"$
+$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HH,1055"$
+$LK,"B",A="FL:::/Kernel/KDbg.HC.Z,407",BI=36$
+$LK,"ICF_PUSH_RES",A="FL:::/Kernel/KernelA.HH,1606"$
 $LK,"chars_bmp_dec_numeric",A="FL:::/Kernel/StrA.HC.Z,350"$
 $LK,"D3Equ",A="FL:::/Kernel/KernelB.HH,154"$
-$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HH,2781"$
-$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HH,1690"$
-$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HH,1453"$
-$LK,"D",A="FL:::/Kernel/KDbg.HC.Z,172",BI=39$
-$LK,"StrPrint",A="FL:::/Kernel/StrPrint.HC.Z,876",BI=40$
-$LK,"WINMGR_FPS",A="FL:::/Kernel/KernelA.HH,1467"$
-$LK,"E",A="FL:::/Kernel/FunSeg.HC.Z,310",BI=41$
-$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HH,1596"$
-$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HH,1240"$
-$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HH,910"$
+$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HH,2786"$
+$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HH,1692"$
+$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HH,1455"$
+$LK,"D",A="FL:::/Kernel/KDbg.HC.Z,172",BI=37$
+$LK,"StrPrint",A="FL:::/Kernel/StrPrint.HC.Z,876",BI=38$
+$LK,"WINMGR_FPS",A="FL:::/Kernel/KernelA.HH,1469"$
+$LK,"E",A="FL:::/Kernel/FunSeg.HC.Z,310",BI=39$
+$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HH,1598"$
+$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HH,1241"$
+$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HH,911"$
 $LK,"_STRNCMP",A="FL:::/Kernel/StrA.HC.Z,154"$
-$LK,"MEM_NUM_USED_1GIG",A="FL:::/Kernel/KernelA.HH,3461"$
-$LK,"G",A="FL:::/Kernel/KDbg.HC.Z,444",BI=42$
-$LK,"ScaleIndent",A="FL:::/Kernel/StrB.HC.Z,35",BI=43$
-$LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HH,410"$
-$LK,"PressAKey",A="FL:::/Kernel/StrB.HC.Z,103",BI=44$
-$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HH,1218"$
-$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HH,2017"$
-$LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,100",BI=45$
-$LK,"Mem32DevInit",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,30",BI=46$
+$LK,"MEM_NUM_USED_1GIG",A="FL:::/Kernel/KernelA.HH,3468"$
+$LK,"G",A="FL:::/Kernel/KDbg.HC.Z,444",BI=40$
+$LK,"ScaleIndent",A="FL:::/Kernel/StrB.HC.Z,35",BI=41$
+$LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HH,411"$
+$LK,"PressAKey",A="FL:::/Kernel/StrB.HC.Z,103",BI=42$
+$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HH,1219"$
+$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HH,2019"$
+$LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,100",BI=43$
+$LK,"Mem32DevInit",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,30",BI=44$
 $LK,"_BIT_FIELD_OR_U32",A="FL:::/Kernel/KUtils.HC.Z,154"$
-$LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HH,1306"$
-$LK,"SPutChar",A="FL:::/Kernel/StrPrint.HC.Z,1",BI=47$
-$LK,"TaskQueIns",A="FL:::/Kernel/Sched.HC.Z,287",BI=48$
-$LK,"CYAN",A="FL:::/Kernel/KernelA.HH,2961"$
-$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HH,2070"$
-$LK,"FileNameTempTxt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,272",BI=49$
-$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HH,2535"$
-$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HH,1688"$
-$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HH,461"$
-$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HH,442"$
-$LK,"RedSeaFreeLstBuild",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,24",BI=50$
-$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HH,2082"$
-$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HH,1309"$
-$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HH,1273"$
-$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HH,3479"$
-$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HH,873"$
-$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HH,3480"$
-$LK,"MEM_NUM_1GIG",A="FL:::/Kernel/KernelA.HH,3462"$
-$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HH,1053"$
-$LK,"S",A="FL:::/Kernel/KDbg.HC.Z,479",BI=51$
-$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HH,3481"$
-$LK,"FifoI64Ins",A="FL:::/Kernel/KDataTypes.HC.Z,258",BI=52$
-$LK,"FloorU64",A="FL:::/Kernel/KMathB.HC.Z,36",BI=53$
-$LK,"CH_CTRLD",A="FL:::/Kernel/KernelA.HH,3482"$
-$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1282"$
-$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,919"$
-$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HH,3483"$
-$LK,"BLACK",A="FL:::/Kernel/KernelA.HH,2958"$
-$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HH,1936"$
-$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HH,1774"$
-$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1319"$
-$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HH,1080"$
-$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HH,992"$
-$LK,"FileNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,167",BI=54$
-$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HH,3484"$
-$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HH,2083"$
-$LK,"AutoMountIDE",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,254",BI=55$
-$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HH,3485"$
-$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HH,1012"$
+$LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HH,1308"$
+$LK,"SPutChar",A="FL:::/Kernel/StrPrint.HC.Z,1",BI=45$
+$LK,"TaskQueIns",A="FL:::/Kernel/Sched.HC.Z,287",BI=46$
+$LK,"CYAN",A="FL:::/Kernel/KernelA.HH,2966"$
+$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HH,2072"$
+$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HH,2538"$
+$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HH,1690"$
+$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HH,462"$
+$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HH,443"$
+$LK,"RedSeaFreeLstBuild",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,24",BI=47$
+$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HH,2084"$
+$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HH,1311"$
+$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HH,1275"$
+$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HH,3486"$
+$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HH,874"$
+$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HH,3487"$
+$LK,"MEM_NUM_1GIG",A="FL:::/Kernel/KernelA.HH,3469"$
+$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HH,1054"$
+$LK,"S",A="FL:::/Kernel/KDbg.HC.Z,479",BI=48$
+$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HH,3488"$
+$LK,"FifoI64Ins",A="FL:::/Kernel/KDataTypes.HC.Z,258",BI=49$
+$LK,"FloorU64",A="FL:::/Kernel/KMathB.HC.Z,36",BI=50$
+$LK,"CH_CTRLD",A="FL:::/Kernel/KernelA.HH,3489"$
+$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1284"$
+$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,920"$
+$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HH,3490"$
+$LK,"BLACK",A="FL:::/Kernel/KernelA.HH,2963"$
+$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HH,1938"$
+$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HH,1776"$
+$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1321"$
+$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HH,1081"$
+$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HH,993"$
+$LK,"FileNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,171",BI=51$
+$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HH,3491"$
+$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HH,2085"$
+$LK,"AutoMountIDE",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,254",BI=52$
+$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HH,3492"$
+$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HH,1013"$
 $LK,"_HASH_REM_DEL",A="FL:::/Kernel/KHashA.HC.Z,208"$
-$LK,"TaskQueRem",A="FL:::/Kernel/Sched.HC.Z,301",BI=56$
-$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HH,3486"$
-$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HH,2416"$
-$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HH,2411"$
-$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HH,931"$
-$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HH,3487"$
-$LK,"FifoI64New",A="FL:::/Kernel/KDataTypes.HC.Z,240",BI=57$
-$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HH,3488"$
-$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HH,1945"$
-$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HH,3561"$
-$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HH,3489"$
-$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HH,3285"$
-$LK,"DOCEf_SEL",A="FL:::/Kernel/KernelA.HH,1049"$
-$LK,"RandI32",A="FL:::/Kernel/KMathB.HC.Z,90",BI=58$
-$LK,"RandI16",A="FL:::/Kernel/KMathB.HC.Z,74",BI=59$
-$LK,"CH_CTRLL",A="FL:::/Kernel/KernelA.HH,3490"$
-$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HH,3491"$
-$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HH,1616"$
-$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HH,1615"$
-$LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,163",BI=60$
-$LK,"BreakLock",A="FL:::/Kernel/KExcept.HC.Z,140",BI=61$
-$LK,"HPET",A="FL:::/Kernel/KMisc.HC.Z,80",BI=62$
+$LK,"TaskQueRem",A="FL:::/Kernel/Sched.HC.Z,301",BI=53$
+$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HH,3493"$
+$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HH,2419"$
+$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HH,2414"$
+$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HH,932"$
+$LK,"DCF_SCRN_BITMAP",A="FL:::/Kernel/KernelA.HH,3642"$
+$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HH,3494"$
+$LK,"FileNameTmpTxt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,276",BI=54$
+$LK,"FifoI64New",A="FL:::/Kernel/KDataTypes.HC.Z,240",BI=55$
+$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HH,3495"$
+$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HH,1947"$
+$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HH,3568"$
+$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HH,3496"$
+$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HH,3291"$
+$LK,"DOCEf_SEL",A="FL:::/Kernel/KernelA.HH,1050"$
+$LK,"RandI32",A="FL:::/Kernel/KMathB.HC.Z,90",BI=56$
+$LK,"RandI16",A="FL:::/Kernel/KMathB.HC.Z,74",BI=57$
+$LK,"CH_CTRLL",A="FL:::/Kernel/KernelA.HH,3497"$
+$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HH,3498"$
+$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HH,1618"$
+$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HH,1617"$
+$LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,163",BI=58$
+$LK,"BreakLock",A="FL:::/Kernel/KExcept.HC.Z,147",BI=59$
+$LK,"HPET",A="FL:::/Kernel/KMisc.HC.Z,80",BI=60$
 $LK,"CORE0_32BIT_INIT",A="FL:::/Kernel/KStart32.HC.Z,57"$
 $LK,"CORE0_16BIT_INIT",A="FL:::/Kernel/KStart16.HC.Z,56"$
-$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HH,3492"$
-$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HH,2653"$
-$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HH,2136"$
-$LK,"Let2BlkDevType",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,161",BI=63$
-$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HH,3493"$
-$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HH,1941"$
-$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HH,1098"$
-$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HH,1085"$
-$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HH,997"$
-$LK,"FifoI64Rem",A="FL:::/Kernel/KDataTypes.HC.Z,275",BI=64$
+$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HH,3499"$
+$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HH,2658"$
+$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HH,2138"$
+$LK,"Let2BlkDevType",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,161",BI=61$
+$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HH,3500"$
+$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HH,1943"$
+$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HH,1099"$
+$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HH,1086"$
+$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HH,998"$
+$LK,"FifoI64Rem",A="FL:::/Kernel/KDataTypes.HC.Z,275",BI=62$
 $LK,"_D3_DIV",A="FL:::/Kernel/KMathA.HC.Z,184"$
-$LK,"CH_CTRLP",A="FL:::/Kernel/KernelA.HH,3494"$
+$LK,"CH_CTRLP",A="FL:::/Kernel/KernelA.HH,3501"$
 $LK,"chars_bmp_non_eol",A="FL:::/Kernel/StrA.HC.Z,396"$
-$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HH,3495"$
-$LK,"CTSS",A="FL:::/Kernel/KernelA.HH,3402"$
-$LK,"HomeSet",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,1",BI=65$
-$LK,"FileNameChk",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,245",BI=66$
+$LK,"PRTF_NEG",A="FL:::/Kernel/KernelA.HH,3928"$
+$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HH,3502"$
+$LK,"CTSS",A="FL:::/Kernel/KernelA.HH,3409"$
+$LK,"HomeSet",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,1",BI=63$
+$LK,"FileNameChk",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,249",BI=64$
 $LK,"D3Mul",A="FL:::/Kernel/KernelB.HH,155"$
-$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HH,3496"$
+$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HH,3503"$
 $LK,"SK_NAME",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,89"$
-$LK,"CtrlAltC",A="FL:::/Kernel/KeyDev.HC.Z,133",BI=67$
-$LK,"CallerRep",A="FL:::/Kernel/KDbg.HC.Z,152",BI=68$
-$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HH,3497"$
-$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HH,2942"$
-$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HH,1103"$
-$LK,"CtrlAltD",A="FL:::/Kernel/KeyDev.HC.Z,138",BI=69$
-$LK,"RandI64",A="FL:::/Kernel/KMathB.HC.Z,106",BI=70$
-$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HH,3498"$
-$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2857"$
-$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HH,2215"$
-$LK,"RT_U32",A="FL:::/Kernel/KernelA.HH,1560"$
-$LK,"RT_U16",A="FL:::/Kernel/KernelA.HH,1558"$
-$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HH,817"$
-$LK,"FAT32FreeClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,413",BI=71$
-$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HH,3499"$
-$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HH,1939"$
-$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HH,1131"$
-$LK,"CtrlAltF",A="FL:::/Kernel/KeyDev.HC.Z,148",BI=72$
+$LK,"CtrlAltC",A="FL:::/Kernel/KeyDev.HC.Z,133",BI=65$
+$LK,"CallerRep",A="FL:::/Kernel/KDbg.HC.Z,152",BI=66$
+$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HH,3504"$
+$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HH,2947"$
+$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HH,1104"$
+$LK,"CtrlAltD",A="FL:::/Kernel/KeyDev.HC.Z,138",BI=67$
+$LK,"RandI64",A="FL:::/Kernel/KMathB.HC.Z,106",BI=68$
+$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HH,3505"$
+$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2862"$
+$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HH,2217"$
+$LK,"RT_U32",A="FL:::/Kernel/KernelA.HH,1562"$
+$LK,"RT_U16",A="FL:::/Kernel/KernelA.HH,1560"$
+$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HH,818"$
+$LK,"FAT32FreeClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,413",BI=69$
+$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HH,3506"$
+$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HH,1941"$
+$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HH,1132"$
+$LK,"CtrlAltF",A="FL:::/Kernel/KeyDev.HC.Z,148",BI=70$
 $LK,"ip_grid",A="FL:::/Kernel/KGlbls.HC.Z,23"$
-$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HH,3500"$
-$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HH,1705"$
-$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HH,1219"$
-$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1046"$
-$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1040"$
-$LK,"DrvFATBlkSet",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,117",BI=73$
-$LK,"ISODrvInit",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,5",BI=74$
-$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HH,3501"$
-$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HH,2778"$
-$LK,"ISO1FromName",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,28",BI=75$
-$LK,"MPIntAll",A="FL:::/Kernel/MultiProc.HC.Z,149",BI=76$
+$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HH,3507"$
+$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HH,1707"$
+$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HH,1220"$
+$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1047"$
+$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HH,1041"$
+$LK,"DrvFATBlkSet",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,117",BI=71$
+$LK,"ISODrvInit",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,5",BI=72$
+$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HH,3508"$
+$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HH,2783"$
+$LK,"ISO1FromName",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,28",BI=73$
+$LK,"MPIntAll",A="FL:::/Kernel/MultiProc.HC.Z,149",BI=74$
 $LK,"TaskContextRestore",A="FL:::/Kernel/Sched.HC.Z,283"$
-$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HH,3521"$
-$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HH,3502"$
-$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HH,3503"$
-$LK,"CDoc",A="FL:::/Kernel/KernelA.HH,1354"$
+$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HH,3528"$
+$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HH,3509"$
+$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HH,3510"$
+$LK,"CDoc",A="FL:::/Kernel/KernelA.HH,1356"$
 $LK,"MemSetU8",A="FL:::/Kernel/KernelB.HH,178"$
 $LK,"_FCLEX",A="FL:::/Kernel/KMathA.HC.Z,646"$
 $LK,"_D3_DOT",A="FL:::/Kernel/KMathA.HC.Z,113"$
-$LK,"ARf_CSPRITE_INS_CLIPBOARD",A="FL:::/Kernel/KernelA.HH,3894"$
-$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HH,3504"$
-$LK,"MEM_NUM_2MEG",A="FL:::/Kernel/KernelA.HH,3460"$
-$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HH,733"$
+$LK,"ARf_CSPRITE_INS_CLIPBOARD",A="FL:::/Kernel/KernelA.HH,3902"$
+$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HH,3511"$
+$LK,"MEM_NUM_2MEG",A="FL:::/Kernel/KernelA.HH,3467"$
+$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HH,734"$
 $LK,"SYS_FIND_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.HC.Z,8"$
-$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HH,3096"$
-$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HH,707"$
-$LK,"BCnt",A="FL:::/Kernel/KMisc.HC.Z,39",BI=77$
-$LK,"Mem64DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,131",BI=78$
-$LK,"Mem32DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,81",BI=79$
-$LK,"RT_U64",A="FL:::/Kernel/KernelA.HH,1563"$
-$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HH,903"$
-$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HH,698"$
-$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HH,668"$
-$LK,"ISO1FilesFind",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,173",BI=80$
-$LK,"CtrlAltM",A="FL:::/Kernel/KeyDev.HC.Z,153",BI=81$
-$LK,"DefineLstLoad",A="FL:::/Kernel/KDefine.HC.Z,13",BI=82$
-$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HH,1940"$
-$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HH,1071"$
-$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HH,983"$
-$LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HH,314"$
-$LK,"ClusterNumNext",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,1",BI=83$
-$LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,486",BI=84$
-$LK,"CtrlAltN",A="FL:::/Kernel/KeyDev.HC.Z,158",BI=85$
+$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HH,3101"$
+$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HH,708"$
+$LK,"BCnt",A="FL:::/Kernel/KMisc.HC.Z,39",BI=75$
+$LK,"Mem64DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,131",BI=76$
+$LK,"Mem32DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,81",BI=77$
+$LK,"RT_U64",A="FL:::/Kernel/KernelA.HH,1565"$
+$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HH,904"$
+$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HH,699"$
+$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HH,669"$
+$LK,"ISO1FilesFind",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,173",BI=78$
+$LK,"CtrlAltM",A="FL:::/Kernel/KeyDev.HC.Z,153",BI=79$
+$LK,"DefineLstLoad",A="FL:::/Kernel/KDefine.HC.Z,13",BI=80$
+$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HH,1942"$
+$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HH,1072"$
+$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HH,984"$
+$LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HH,315"$
+$LK,"ClusterNumNext",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,1",BI=81$
+$LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,486",BI=82$
+$LK,"CtrlAltN",A="FL:::/Kernel/KeyDev.HC.Z,158",BI=83$
 $LK,"ip_last",A="FL:::/Kernel/KGlbls.HC.Z,24"$
 $LK,"C:/Doc/MultiCore.DD.Z",A="FL:::/Kernel/KernelB.HH,227"$
-$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HH,2552"$
-$LK,"TK_STR",A="FL:::/Kernel/KernelA.HH,2074"$
-$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HH,1505"$
-$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HH,3903"$
-$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HH,2146"$
+$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HH,2555"$
+$LK,"TK_STR",A="FL:::/Kernel/KernelA.HH,2076"$
+$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HH,1507"$
+$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HH,3911"$
+$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HH,2148"$
 $LK,"D3Sub",A="FL:::/Kernel/KernelB.HH,159"$
-$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HH,3564"$
-$LK,"KeyDevAdd",A="FL:::/Kernel/KeyDev.HC.Z,70",BI=86$
-$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HH,3093"$
+$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HH,3571"$
+$LK,"KeyDevAdd",A="FL:::/Kernel/KeyDev.HC.Z,70",BI=84$
+$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HH,3098"$
 $LK,"_D3_EQU",A="FL:::/Kernel/KMathA.HC.Z,226"$
-$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HH,3724"$
-$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HH,2260"$
-$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HH,709"$
-$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HH,692"$
-$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HH,679"$
-$LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.HC.Z,163",BI=87$
-$LK,"IsSilent",A="FL:::/Kernel/KMisc.HC.Z,228",BI=88$
-$LK,"CBpt",A="FL:::/Kernel/KernelA.HH,3158"$
-$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HH,662"$
-$LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.HC.Z,250",BI=89$
-$LK,"PCIWriteU16",A="FL:::/Kernel/PCIBIOS.HC.Z,235",BI=90$
-$LK,"CtrlAltV",A="FL:::/Kernel/KeyDev.HC.Z,168",BI=91$
-$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HH,2458"$
+$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HH,3732"$
+$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HH,2262"$
+$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HH,710"$
+$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HH,693"$
+$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HH,680"$
+$LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.HC.Z,163",BI=85$
+$LK,"IsSilent",A="FL:::/Kernel/KMisc.HC.Z,240",BI=86$
+$LK,"CBpt",A="FL:::/Kernel/KernelA.HH,3163"$
+$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HH,663"$
+$LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.HC.Z,250",BI=87$
+$LK,"PCIWriteU16",A="FL:::/Kernel/PCIBIOS.HC.Z,235",BI=88$
+$LK,"CtrlAltV",A="FL:::/Kernel/KeyDev.HC.Z,168",BI=89$
+$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HH,2461"$
 $LK,"_LXCHG_U8",A="FL:::/Kernel/KUtils.HC.Z,244"$
-$LK,"CtrlAltX",A="FL:::/Kernel/KeyDev.HC.Z,173",BI=92$
-$LK,"ChgDsk",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,230",BI=93$
-$LK,"UserTaskCont",A="FL:::/Kernel/KTask.HC.Z,364",BI=94$
-$LK,"RFLAGf_NESTED_TASK",A="FL:::/Kernel/KernelA.HH,318"$
+$LK,"CtrlAltX",A="FL:::/Kernel/KeyDev.HC.Z,173",BI=90$
+$LK,"ChgDsk",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,230",BI=91$
+$LK,"UserTaskCont",A="FL:::/Kernel/KTask.HC.Z,369",BI=92$
+$LK,"RFLAGf_NESTED_TASK",A="FL:::/Kernel/KernelA.HH,319"$
 $LK,"BEqu",A="FL:::/Kernel/KernelB.HH,28"$
-$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HH,2479"$
-$LK,"FAT32MkDir",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,933",BI=95$
-$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,3644"$
-$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HH,1599"$
-$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HH,901"$
-$LK,"BIN_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,371"$
-$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HH,1884"$
+$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HH,2482"$
+$LK,"FAT32MkDir",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,933",BI=93$
+$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,3651"$
+$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HH,1601"$
+$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HH,902"$
+$LK,"BIN_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,372"$
+$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HH,1886"$
 $LK,"SYS_HASH_SINGLE_TABLE_FIND1",A="FL:::/Kernel/KHashA.HC.Z,30"$
-$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,1343"$
-$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HH,1042"$
-$LK,"CDateStruct",A="FL:::/Kernel/KernelA.HH,192"$
-$LK,"CHashFun",A="FL:::/Kernel/KernelA.HH,856"$
-$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HH,1741"$
-$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HH,1048"$
-$LK,"DayOfWeek",A="FL:::/Kernel/KDate.HC.Z,30",BI=96$
-$LK,"CDrv",A="FL:::/Kernel/KernelA.HH,2718"$
-$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HH,2079"$
-$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HH,932"$
-$LK,"JobResGet",A="FL:::/Kernel/SrvCmd.HC.Z,198",BI=97$
+$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,1345"$
+$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HH,1043"$
+$LK,"CDateStruct",A="FL:::/Kernel/KernelA.HH,193"$
+$LK,"CHashFun",A="FL:::/Kernel/KernelA.HH,857"$
+$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HH,1743"$
+$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HH,1049"$
+$LK,"DayOfWeek",A="FL:::/Kernel/KDate.HC.Z,30",BI=94$
+$LK,"CDrv",A="FL:::/Kernel/KernelA.HH,2723"$
+$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HH,2081"$
+$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HH,933"$
+$LK,"JobResGet",A="FL:::/Kernel/SrvCmd.HC.Z,198",BI=95$
 $LK,"sys_heap_init_flag",A="FL:::/Kernel/KernelB.HH,181"$
-$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HH,2599"$
-$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HH,2573"$
-$LK,"FALSE",A="FL:::/Kernel/KernelA.HH,20"$
-$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HH,3729"$
-$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HH,3187"$
-$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HH,2230"$
-$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HH,2098"$
-$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HH,2097"$
-$LK,"StrPrintHex",A="FL:::/Kernel/StrA.HC.Z,1",BI=98$
+$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HH,2603"$
+$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HH,2576"$
+$LK,"FALSE",A="FL:::/Kernel/KernelA.HH,21"$
+$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HH,3737"$
+$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HH,3192"$
+$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HH,2232"$
+$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HH,2100"$
+$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HH,2099"$
+$LK,"StrPrintHex",A="FL:::/Kernel/StrA.HC.Z,1",BI=96$
 $LK,"_D3_ADD_EQU",A="FL:::/Kernel/KMathA.HC.Z,239"$
-$LK,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2717"$
-$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HH,907"$
-$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HH,830"$
-$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HH,533"$
+$LK,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2722"$
+$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HH,908"$
+$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HH,831"$
+$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HH,534"$
 $LK,"ATan",A="FL:::/Kernel/KernelB.HH,95"$
-$LK,"MEM_NUM_512GIG",A="FL:::/Kernel/KernelA.HH,3463"$
-$LK,"SysBadFree",A="FL:::/Kernel/Mem/Mem512.HC.Z,1",BI=99$
-$LK,"ATA_ID_DEV",A="FL:::/Kernel/KernelA.HH,2269"$
-$LK,"CHashReg",A="FL:::/Kernel/KernelA.HH,748"$
-$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HH,3529"$
-$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HH,503"$
-$LK,"Scale2Mem",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,192",BI=100$
-$LK,"Mem512TaskFree",A="FL:::/Kernel/Mem/Mem512.HC.Z,154",BI=101$
-$LK,"RandU32",A="FL:::/Kernel/KMathB.HC.Z,98",BI=102$
-$LK,"RandU16",A="FL:::/Kernel/KMathB.HC.Z,82",BI=103$
+$LK,"MEM_NUM_512GIG",A="FL:::/Kernel/KernelA.HH,3470"$
+$LK,"SysBadFree",A="FL:::/Kernel/Mem/Mem512.HC.Z,1",BI=97$
+$LK,"ATA_ID_DEV",A="FL:::/Kernel/KernelA.HH,2271"$
+$LK,"CHashReg",A="FL:::/Kernel/KernelA.HH,749"$
+$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HH,3536"$
+$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HH,504"$
+$LK,"Scale2Mem",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,192",BI=98$
+$LK,"Mem512TaskFree",A="FL:::/Kernel/Mem/Mem512.HC.Z,154",BI=99$
+$LK,"RandU32",A="FL:::/Kernel/KMathB.HC.Z,98",BI=100$
+$LK,"RandU16",A="FL:::/Kernel/KMathB.HC.Z,82",BI=101$
 $LK,"_FLDCW",A="FL:::/Kernel/KMathA.HC.Z,625"$
-$LK,"__DIR__",A="FL:::/Kernel/KernelA.HH,2033"$
-$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HH,1901"$
-$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HH,1900"$
-$LK,"RFLAGf_INT",A="FL:::/Kernel/KernelA.HH,313"$
-$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HH,1445"$
-$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HH,1419"$
-$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HH,780"$
-$LK,"ChgExt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,199",BI=104$
+$LK,"__DIR__",A="FL:::/Kernel/KernelA.HH,2035"$
+$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HH,1903"$
+$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HH,1902"$
+$LK,"RFLAGf_INT",A="FL:::/Kernel/KernelA.HH,314"$
+$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HH,1447"$
+$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HH,1421"$
+$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HH,781"$
+$LK,"ChgExt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,203",BI=102$
 $LK,"str2color_lst",A="FL:::/Kernel/KDefine.HC.Z,156"$
 $LK,"local_time_offset",A="FL:::/Kernel/KGlbls.HC.Z,14"$
-$LK,"RedSeaFilesFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,539",BI=105$
-$LK,"TK_INS_BIN",A="FL:::/Kernel/KernelA.HH,2110"$
+$LK,"RedSeaFilesFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,539",BI=103$
+$LK,"TK_INS_BIN",A="FL:::/Kernel/KernelA.HH,2112"$
 $LK,"_D3_MUL",A="FL:::/Kernel/KMathA.HC.Z,167"$
-$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HH,2521"$
-$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HH,2106"$
-$LK,"RandU64",A="FL:::/Kernel/KMathB.HC.Z,114",BI=106$
-$LK,"PostMsgWait",A="FL:::/Kernel/SrvCmd.HC.Z,251",BI=107$
-$LK,"UndefinedDefine",A="FL:::/Kernel/KDefine.HC.Z,43",BI=108$
-$LK,"ARGT_RM64",A="FL:::/Kernel/KernelA.HH,1902"$
-$LK,"ATAGetRes",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,67",BI=109$
-$LK,"ATAWaitDRQ",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,36",BI=110$
-$LK,"TaskInit",A="FL:::/Kernel/KTask.HC.Z,162",BI=111$
-$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HH,1073"$
-$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HH,985"$
-$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HH,690"$
-$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HH,660"$
-$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HH,448"$
-$LK,"CSpring",A="FL:::/Kernel/KernelA.HH,226"$
-$LK,"CBGR24",A="FL:::/Kernel/KernelA.HH,2990"$
-$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HH,3605"$
-$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HH,2907"$
-$LK,"LastDayOfYear",A="FL:::/Kernel/KDate.HC.Z,110",BI=112$
+$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HH,2524"$
+$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HH,2108"$
+$LK,"RandU64",A="FL:::/Kernel/KMathB.HC.Z,114",BI=104$
+$LK,"PostMsgWait",A="FL:::/Kernel/SrvCmd.HC.Z,252",BI=105$
+$LK,"UndefinedDefine",A="FL:::/Kernel/KDefine.HC.Z,43",BI=106$
+$LK,"ARGT_RM64",A="FL:::/Kernel/KernelA.HH,1904"$
+$LK,"ATAGetRes",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,67",BI=107$
+$LK,"ATAWaitDRQ",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,36",BI=108$
+$LK,"TaskInit",A="FL:::/Kernel/KTask.HC.Z,167",BI=109$
+$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HH,1074"$
+$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HH,986"$
+$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HH,691"$
+$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HH,661"$
+$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HH,449"$
+$LK,"PRTF_DOLLAR",A="FL:::/Kernel/KernelA.HH,3923"$
+$LK,"CSpring",A="FL:::/Kernel/KernelA.HH,227"$
+$LK,"CBGR24",A="FL:::/Kernel/KernelA.HH,2995"$
+$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HH,3612"$
+$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HH,2912"$
+$LK,"LastDayOfYear",A="FL:::/Kernel/KDate.HC.Z,110",BI=110$
 $LK,"SYS_IDLE_PT",A="FL:::/Kernel/Sched.HC.Z,204"$
 $LK,"mp_cnt_initial",A="FL:::/Kernel/KernelB.HH,229"$
-$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HH,3889"$
-$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HH,1806"$
-$LK,"Core0StartMP",A="FL:::/Kernel/MultiProc.HC.Z,284",BI=113$
+$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HH,3897"$
+$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HH,1808"$
+$LK,"Core0StartMP",A="FL:::/Kernel/MultiProc.HC.Z,284",BI=111$
 $LK,"_D3_SUB",A="FL:::/Kernel/KMathA.HC.Z,149"$
-$LK,"CBGR48",A="FL:::/Kernel/KernelA.HH,2994"$
-$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HH,1004"$
-$LK,"IntCore0TimerHandler",A="FL:::/Kernel/KMisc.HC.Z,47",BI=114$
-$LK,"__DATE__",A="FL:::/Kernel/KernelA.HH,2025"$
+$LK,"CBGR48",A="FL:::/Kernel/KernelA.HH,2999"$
+$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HH,1005"$
+$LK,"IntCore0TimerHandler",A="FL:::/Kernel/KMisc.HC.Z,47",BI=112$
+$LK,"__DATE__",A="FL:::/Kernel/KernelA.HH,2027"$
 $LK,"chars_bmp_safe_dollar",A="FL:::/Kernel/StrA.HC.Z,391"$
-$LK,"AdamErr",A="FL:::/Kernel/SrvCmd.HC.Z,434",BI=115$
+$LK,"AdamErr",A="FL:::/Kernel/SrvCmd.HC.Z,435",BI=113$
 $LK,"sys_focus_task",A="FL:::/Kernel/KernelB.HH,197"$
-$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HH,1092"$
-$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HH,696"$
-$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HH,666"$
-$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HH,3182"$
-$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HH,1880"$
-$LK,"GridInit",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,1",BI=116$
-$LK,"FirstDayOfYear",A="FL:::/Kernel/KDate.HC.Z,98",BI=117$
-$LK,"CCf_PMT",A="FL:::/Kernel/KernelA.HH,2129"$
-$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HH,1510"$
-$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HH,1446"$
-$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HH,1420"$
-$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HH,774"$
+$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HH,1093"$
+$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HH,697"$
+$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HH,667"$
+$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HH,3187"$
+$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HH,1882"$
+$LK,"GridInit",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,1",BI=114$
+$LK,"FirstDayOfYear",A="FL:::/Kernel/KDate.HC.Z,98",BI=115$
+$LK,"CCf_PMT",A="FL:::/Kernel/KernelA.HH,2131"$
+$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HH,1512"$
+$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HH,1448"$
+$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HH,1422"$
+$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HH,775"$
 $LK,"COREAP_16BIT_INIT",A="FL:::/Kernel/MultiProc.HC.Z,9"$
-$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HH,3523"$
-$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HH,2536"$
-$LK,"Dbg2",A="FL:::/Kernel/KDbg.HC.Z,533",BI=118$
-$LK,"HashSrcFileSet",A="FL:::/Kernel/KHashB.HC.Z,154",BI=119$
-$LK,"ROP_XOR",A="FL:::/Kernel/KernelA.HH,2943"$
-$LK,"NULL",A="FL:::/Kernel/KernelA.HH,18"$
-$LK,"BlkPoolInit",A="FL:::/Kernel/Mem/BlkPool.HC.Z,18",BI=120$
-$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HH,2645"$
-$LK,"ProgressBarsRst",A="FL:::/Kernel/KMisc.HC.Z,275",BI=121$
+$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HH,3530"$
+$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HH,2539"$
+$LK,"Dbg2",A="FL:::/Kernel/KDbg.HC.Z,533",BI=116$
+$LK,"HashSrcFileSet",A="FL:::/Kernel/KHashB.HC.Z,154",BI=117$
+$LK,"ROP_XOR",A="FL:::/Kernel/KernelA.HH,2948"$
+$LK,"NULL",A="FL:::/Kernel/KernelA.HH,19"$
+$LK,"BlkPoolInit",A="FL:::/Kernel/Mem/BlkPool.HC.Z,18",BI=118$
+$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HH,2650"$
+$LK,"ProgressBarsRst",A="FL:::/Kernel/KMisc.HC.Z,287",BI=119$
 $LK,"sys_boot_blk",A="FL:::/Kernel/KernelB.HH,38"$
-$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HH,3289"$
-$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HH,2655"$
-$LK,"RedSeaAllocClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,302",BI=122$
-$LK,"CQue",A="FL:::/Kernel/KernelA.HH,121"$
-$LK,"MEM_ADAM_STK",A="FL:::/Kernel/KernelA.HH,2884"$
-$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HH,1008"$
-$LK,"AdamLog",A="FL:::/Kernel/SrvCmd.HC.Z,424",BI=123$
-$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HH,3280"$
-$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HH,1502"$
-$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HH,854"$
-$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HH,3194"$
-$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HH,2531"$
-$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HH,1096"$
-$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HH,579"$
-$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HH,2688"$
-$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HH,1538"$
-$LK,"TaskStkNew",A="FL:::/Kernel/KTask.HC.Z,80",BI=124$
-$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HH,1562"$
-$LK,"HashTableDel",A="FL:::/Kernel/KHashB.HC.Z,90",BI=125$
+$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HH,3295"$
+$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HH,2660"$
+$LK,"RedSeaAllocClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,302",BI=120$
+$LK,"CQue",A="FL:::/Kernel/KernelA.HH,122"$
+$LK,"MEM_ADAM_STK",A="FL:::/Kernel/KernelA.HH,2889"$
+$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HH,1009"$
+$LK,"AdamLog",A="FL:::/Kernel/SrvCmd.HC.Z,425",BI=121$
+$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HH,3285"$
+$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HH,1504"$
+$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HH,855"$
+$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HH,3199"$
+$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HH,2534"$
+$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HH,1097"$
+$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HH,580"$
+$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HH,2693"$
+$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HH,1540"$
+$LK,"TaskStkNew",A="FL:::/Kernel/KTask.HC.Z,85",BI=122$
+$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HH,1564"$
+$LK,"HashTableDel",A="FL:::/Kernel/KHashB.HC.Z,90",BI=123$
 $LK,"LBtc",A="FL:::/Kernel/KernelB.HH,22"$
-$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HH,2613"$
+$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HH,2618"$
 $LK,"ClampI64",A="FL:::/Kernel/KernelB.HH,125"$
-$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HH,2587"$
-$LK,"B2",A="FL:::/Kernel/KDbg.HC.Z,422",BI=126$
+$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HH,2591"$
+$LK,"B2",A="FL:::/Kernel/KDbg.HC.Z,422",BI=124$
 $LK,"SLOP",A="FL:::/Kernel/StrPrint.HC.Z,206"$
-$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HH,2782"$
-$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HH,1611"$
+$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HH,2787"$
+$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HH,1613"$
 $LK,"_STRMATCH",A="FL:::/Kernel/StrA.HC.Z,223"$
-$LK,"MSF_FIXED",A="FL:::/Kernel/KernelA.HH,207"$
+$LK,"MSF_FIXED",A="FL:::/Kernel/KernelA.HH,208"$
 $LK,"_CPUID",A="FL:::/Kernel/KUtils.HC.Z,319"$
 $LK,"SYS_HEAP_BASE",A="FL:::/Kernel/KStart32.HC.Z,6"$
 $LK,"_LBEQU",A="FL:::/Kernel/KUtils.HC.Z,104"$
-$LK,"Caller",A="FL:::/Kernel/KDbg.HC.Z,60",BI=127$
-$LK,"SUF_S2T",A="FL:::/Kernel/KernelA.HH,3792"$
-$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HH,2259"$
+$LK,"Caller",A="FL:::/Kernel/KDbg.HC.Z,60",BI=125$
+$LK,"SUF_S2T",A="FL:::/Kernel/KernelA.HH,3800"$
+$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HH,2261"$
 $LK,"INT_MP_CRASH_ADDR",A="FL:::/Kernel/KInts.HC.Z,2"$
-$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HH,3591"$
-$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HH,2538"$
-$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HH,535"$
-$LK,"ARGT_NONE",A="FL:::/Kernel/KernelA.HH,1879"$
-$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HH,930"$
-$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HH,3793"$
-$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HH,3458"$
-$LK,"exp_1",A="FL:::/Kernel/KernelA.HH,51"$
+$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HH,3598"$
+$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HH,2541"$
+$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HH,536"$
+$LK,"ARGT_NONE",A="FL:::/Kernel/KernelA.HH,1881"$
+$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HH,931"$
+$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HH,3801"$
+$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HH,3465"$
+$LK,"exp_1",A="FL:::/Kernel/KernelA.HH,52"$
 $LK,"CTRL_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,15"$
-$LK,"KeyDevRem",A="FL:::/Kernel/KeyDev.HC.Z,64",BI=128$
-$LK,"G2",A="FL:::/Kernel/KDbg.HC.Z,469",BI=129$
-$LK,"DOCEG_HAS_ARG",A="FL:::/Kernel/KernelA.HH,1031"$
-$LK,"TSSNew",A="FL:::/Kernel/MultiProc.HC.Z,76",BI=130$
+$LK,"KeyDevRem",A="FL:::/Kernel/KeyDev.HC.Z,64",BI=126$
+$LK,"G2",A="FL:::/Kernel/KDbg.HC.Z,469",BI=127$
+$LK,"DOCEG_HAS_ARG",A="FL:::/Kernel/KernelA.HH,1032"$
+$LK,"TSSNew",A="FL:::/Kernel/MultiProc.HC.Z,76",BI=128$
 $LK,"SYS_PROGRESS1_DESC",A="FL:::/Kernel/KStart32.HC.Z,33"$
 $LK,"LBtr",A="FL:::/Kernel/KernelB.HH,24"$
-$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HH,2697"$
-$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HH,693"$
-$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HH,663"$
-$LK,"CDATE_YEAR_DAYS_INT",A="FL:::/Kernel/KernelA.HH,183"$
-$LK,"FAT32AllocContiguousClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,514",BI=131$
+$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HH,2702"$
+$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HH,694"$
+$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HH,664"$
+$LK,"CDATE_YEAR_DAYS_INT",A="FL:::/Kernel/KernelA.HH,184"$
+$LK,"FAT32AllocContiguousClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,514",BI=129$
 $LK,"LBts",A="FL:::/Kernel/KernelB.HH,26"$
 $LK,"ArcEntryGet",A="FL:::/Kernel/Compress.HC.Z,100"$
 $LK,"_LOG10",A="FL:::/Kernel/KMathA.HC.Z,592"$
-$LK,"Adam",A="FL:::/Kernel/SrvCmd.HC.Z,407",BI=132$
-$LK,"CTryStk",A="FL:::/Kernel/KExcept.HC.Z,55"$
-$LK,"DCF_PALETTE",A="FL:::/Kernel/KernelA.HH,3620"$
+$LK,"Adam",A="FL:::/Kernel/SrvCmd.HC.Z,408",BI=130$
+$LK,"CTryStk",A="FL:::/Kernel/KExcept.HC.Z,56"$
+$LK,"DCF_PALETTE",A="FL:::/Kernel/KernelA.HH,3627"$
 $LK,"set_bits_table",A="FL:::/Kernel/KGlbls.HC.Z,13"$
 $LK,"rev_bits_table",A="FL:::/Kernel/KGlbls.HC.Z,12"$
-$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HH,3001"$
-$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HH,658"$
-$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HH,2532"$
-$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HH,2090"$
-$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HH,1101"$
-$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HH,1015"$
-$LK,"KDInputFilterPutKey",A="FL:::/Kernel/KeyDev.HC.Z,108",BI=133$
-$LK,"GetOutOfDollar",A="FL:::/Kernel/StrB.HC.Z,75",BI=134$
-$LK,"DOC_COLOR_ALT_TEXT",A="FL:::/Kernel/KernelA.HH,1135"$
-$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HH,2700"$
-$LK,"DbgHelp",A="FL:::/Kernel/KDbg.HC.Z,498",BI=135$
+$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HH,3006"$
+$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HH,659"$
+$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HH,2535"$
+$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HH,2092"$
+$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HH,1102"$
+$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HH,1016"$
+$LK,"KDInputFilterPutKey",A="FL:::/Kernel/KeyDev.HC.Z,108",BI=131$
+$LK,"GetOutOfDollar",A="FL:::/Kernel/StrB.HC.Z,75",BI=132$
+$LK,"DOC_COLOR_ALT_TEXT",A="FL:::/Kernel/KernelA.HH,1136"$
+$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HH,2705"$
+$LK,"DbgHelp",A="FL:::/Kernel/KDbg.HC.Z,498",BI=133$
 $LK,"_FLOOR",A="FL:::/Kernel/KMathA.HC.Z,420"$
-$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HH,2701"$
-$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HH,2702"$
+$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HH,2706"$
+$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HH,2707"$
 $LK,"D3Dist",A="FL:::/Kernel/KernelB.HH,149"$
-$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HH,2703"$
-$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HH,2111"$
-$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HH,3805"$
-$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HH,2704"$
-$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HH,2692"$
-$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HH,2705"$
-$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HH,1703"$
-$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HH,994"$
-$LK,"Str2Date",A="FL:::/Kernel/StrScan.HC.Z,138",BI=136$
-$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HH,1605"$
-$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HH,1082"$
-$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HH,664"$
-$LK,"ChkPtr",A="FL:::/Kernel/KDbg.HC.Z,1",BI=137$
-$LK,"TaskWait",A="FL:::/Kernel/SrvCmd.HC.Z,220",BI=138$
-$LK,"_R10",A="FL:::/Kernel/KernelA.HH,3427"$
-$LK,"SYS_MEM_INIT_VAL",A="FL::/Temp.DD.Z,1"$
-$LK,"_R11",A="FL:::/Kernel/KernelA.HH,3428"$
-$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HH,3879"$
-$LK,"_R12",A="FL:::/Kernel/KernelA.HH,3429"$
+$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HH,2708"$
+$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HH,2113"$
+$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HH,3813"$
+$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HH,2709"$
+$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HH,2697"$
+$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HH,2710"$
+$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HH,1705"$
+$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HH,995"$
+$LK,"Str2Date",A="FL:::/Kernel/StrScan.HC.Z,138",BI=134$
+$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HH,1607"$
+$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HH,1083"$
+$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HH,665"$
+$LK,"ChkPtr",A="FL:::/Kernel/KDbg.HC.Z,1",BI=135$
+$LK,"TaskWait",A="FL:::/Kernel/SrvCmd.HC.Z,220",BI=136$
+$LK,"_R10",A="FL:::/Kernel/KernelA.HH,3434"$
+$LK,"SYS_MEM_INIT_VAL",A="FL::/Tmp.DD.Z,1"$
+$LK,"_R11",A="FL:::/Kernel/KernelA.HH,3435"$
+$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HH,3887"$
+$LK,"_R12",A="FL:::/Kernel/KernelA.HH,3436"$
 $LK,"SK_CLUSTER",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,90"$
-$LK,"SysGetI64",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,169",BI=139$
+$LK,"SysGetI64",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,169",BI=137$
 $LK,"MemSetI64",A="FL:::/Kernel/KernelB.HH,172"$
-$LK,"_R13",A="FL:::/Kernel/KernelA.HH,3430"$
-$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2549"$
+$LK,"_R13",A="FL:::/Kernel/KernelA.HH,3437"$
+$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2552"$
 $LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart16.HC.Z,25"$
-$LK,"_R14",A="FL:::/Kernel/KernelA.HH,3431"$
-$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HH,3089"$
-$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HH,2086"$
-$LK,"ODEF_HAS_MASSES",A="FL:::/Kernel/KernelA.HH,240"$
-$LK,"_R15",A="FL:::/Kernel/KernelA.HH,3432"$
-$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HH,2621"$
-$LK,"TRUE",A="FL:::/Kernel/KernelA.HH,19"$
-$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HH,2686"$
+$LK,"_R14",A="FL:::/Kernel/KernelA.HH,3438"$
+$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HH,3094"$
+$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HH,2088"$
+$LK,"ODEF_HAS_MASSES",A="FL:::/Kernel/KernelA.HH,241"$
+$LK,"_R15",A="FL:::/Kernel/KernelA.HH,3439"$
+$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HH,2626"$
+$LK,"TRUE",A="FL:::/Kernel/KernelA.HH,20"$
+$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HH,2691"$
 $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor",A="FL:::/Kernel/StrA.HC.Z,365"$
-$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HH,1224"$
-$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2879"$
-$LK,"LDF_NO_ABSS",A="FL:::/Kernel/KernelA.HH,367"$
-$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HH,1086"$
-$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HH,998"$
+$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HH,1225"$
+$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2884"$
+$LK,"LDF_NO_ABSS",A="FL:::/Kernel/KernelA.HH,368"$
+$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HH,1087"$
+$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HH,999"$
 $LK,"D3Copy",A="FL:::/Kernel/KernelB.HH,147"$
-$LK,"Beep",A="FL:::/Kernel/KMisc.HC.Z,190",BI=140$
+$LK,"Beep",A="FL:::/Kernel/KMisc.HC.Z,202",BI=138$
 $LK,"_STRNICMP",A="FL:::/Kernel/StrA.HC.Z,183"$
 $LK,"_MEMSET_I64",A="FL:::/Kernel/KUtils.HC.Z,42"$
-$LK,"CH_SPACE",A="FL:::/Kernel/KernelA.HH,3511"$
-$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HH,1970"$
-$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HH,409"$
-$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HH,407"$
+$LK,"CH_SPACE",A="FL:::/Kernel/KernelA.HH,3518"$
+$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HH,1972"$
+$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HH,410"$
+$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HH,408"$
 $LK,"sys_gdt",A="FL:::/Kernel/KernelB.HH,266"$
 $LK,"Call",A="FL:::/Kernel/KernelB.HH,44"$
-$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HH,3465"$
-$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HH,1601"$
+$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HH,3472"$
+$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HH,1603"$
 $LK,"SYS_PROGRESS2_DESC",A="FL:::/Kernel/KStart32.HC.Z,36"$
-$LK,"BlkDevLockFwdingSet",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,1",BI=141$
+$LK,"BlkDevLockFwdingSet",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,1",BI=139$
 $LK,"InU8",A="FL:::/Kernel/KernelB.HH,77"$
-$LK,"ARGT_SREG",A="FL:::/Kernel/KernelA.HH,1926"$
-$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HH,2816"$
-$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HH,1733"$
-$LK,"RECALCt_TO_SCREEN",A="FL:::/Kernel/KernelA.HH,1347"$
-$LK,"ã",A="FL:::/Kernel/KernelA.HH,50"$
-$LK,"Suspend",A="FL:::/Kernel/KTask.HC.Z,57",BI=142$
+$LK,"ARGT_SREG",A="FL:::/Kernel/KernelA.HH,1928"$
+$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HH,2821"$
+$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HH,1735"$
+$LK,"ã",A="FL:::/Kernel/KernelA.HH,51"$
+$LK,"Suspend",A="FL:::/Kernel/KTask.HC.Z,62",BI=140$
 $LK,"ClampU64",A="FL:::/Kernel/KernelB.HH,127"$
-$LK,"ARC_MAX_BITS",A="FL:::/Kernel/KernelA.HH,3740"$
-$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HH,2107"$
-$LK,"FunSegFind",A="FL:::/Kernel/FunSeg.HC.Z,54",BI=143$
-$LK,"Define",A="FL:::/Kernel/KDefine.HC.Z,49",BI=144$
-$LK,"FAT32Fmt",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,60",BI=145$
-$LK,"SrvCmdLine",A="FL:::/Kernel/KTask.HC.Z,386",BI=146$
-$LK,"HashTableNew",A="FL:::/Kernel/KHashB.HC.Z,50",BI=147$
-$LK,"DOCT_INDENT",A="FL:::/Kernel/KernelA.HH,914"$
+$LK,"ARC_MAX_BITS",A="FL:::/Kernel/KernelA.HH,3748"$
+$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HH,2109"$
+$LK,"FunSegFind",A="FL:::/Kernel/FunSeg.HC.Z,54",BI=141$
+$LK,"Define",A="FL:::/Kernel/KDefine.HC.Z,49",BI=142$
+$LK,"FAT32Fmt",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,60",BI=143$
+$LK,"SrvCmdLine",A="FL:::/Kernel/KTask.HC.Z,391",BI=144$
+$LK,"HashTableNew",A="FL:::/Kernel/KHashB.HC.Z,50",BI=145$
+$LK,"DOCT_INDENT",A="FL:::/Kernel/KernelA.HH,915"$
 $LK,"_ARG",A="FL:::/Kernel/KMathA.HC.Z,366"$
-$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HH,2988"$
+$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HH,2993"$
 $LK,"CDualBuf",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,109"$
-$LK,"TaskText",A="FL:::/Kernel/SrvCmd.HC.Z,75",BI=148$
-$LK,"COLORROP_BITS",A="FL:::/Kernel/KernelA.HH,2989"$
-$LK,"BROWN",A="FL:::/Kernel/KernelA.HH,2964"$
-$LK,"Da",A="FL:::/Kernel/KDbg.HC.Z,209",BI=149$
-$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HH,3787"$
-$LK,"Cd",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,9",BI=150$
+$LK,"TaskText",A="FL:::/Kernel/SrvCmd.HC.Z,75",BI=146$
+$LK,"COLORROP_BITS",A="FL:::/Kernel/KernelA.HH,2994"$
+$LK,"BROWN",A="FL:::/Kernel/KernelA.HH,2969"$
+$LK,"Da",A="FL:::/Kernel/KDbg.HC.Z,209",BI=147$
+$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HH,3795"$
+$LK,"Cd",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,9",BI=148$
 $LK,"Ceil",A="FL:::/Kernel/KernelB.HH,123"$
-$LK,"DOCEF_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HH,1020"$
-$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HH,2131"$
-$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HH,412"$
-$LK,"SrcEdLink",A="FL:::/Kernel/FunSeg.HC.Z,278",BI=151$
+$LK,"DOCEF_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HH,1021"$
+$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HH,2133"$
+$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HH,413"$
+$LK,"SrcEdLink",A="FL:::/Kernel/FunSeg.HC.Z,278",BI=149$
 $LK,"GetRBP",A="FL:::/Kernel/KernelB.HH,242"$
-$LK,"GREEN",A="FL:::/Kernel/KernelA.HH,2960"$
-$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HH,1352"$
-$LK,"ì",A="FL:::/Kernel/KernelA.HH,48"$
-$LK,"ON",A="FL:::/Kernel/KernelA.HH,21"$
+$LK,"GREEN",A="FL:::/Kernel/KernelA.HH,2965"$
+$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HH,1354"$
+$LK,"ì",A="FL:::/Kernel/KernelA.HH,49"$
+$LK,"ON",A="FL:::/Kernel/KernelA.HH,22"$
 $LK,"_LXCHG_I64",A="FL:::/Kernel/KUtils.HC.Z,217"$
-$LK,"MDG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HH,1588"$
-$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HH,953"$
-$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HH,947"$
+$LK,"MDG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HH,1590"$
+$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HH,954"$
+$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HH,948"$
 $LK,"sys_clipboard_doc",A="FL:::/Kernel/KGlbls.HC.Z,6"$
-$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HH,2132"$
-$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HH,1106"$
-$LK,"CGDTEntry",A="FL:::/Kernel/KernelA.HH,330"$
-$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HH,1946"$
+$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HH,2134"$
+$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HH,1107"$
+$LK,"CGDTEntry",A="FL:::/Kernel/KernelA.HH,331"$
+$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HH,1948"$
 $LK,"_TASK_END_NOW",A="FL:::/Kernel/Sched.HC.Z,151"$
-$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HH,681"$
+$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HH,682"$
 $LK,"_REP_OUT_U8",A="FL:::/Kernel/KUtils.HC.Z,308"$
 $LK,"GetRAX",A="FL:::/Kernel/KernelB.HH,241"$
 $LK,"sys_boot_src",A="FL:::/Kernel/KernelB.HH,40"$
-$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HH,3543"$
-$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HH,3528"$
-$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HH,1912"$
-$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HH,1911"$
-$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HH,1910"$
-$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HH,1742"$
-$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HH,1621"$
-$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HH,1348"$
-$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HH,701"$
+$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HH,3550"$
+$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HH,3535"$
+$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HH,1914"$
+$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HH,1913"$
+$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HH,1912"$
+$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HH,1744"$
+$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HH,1623"$
+$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HH,1350"$
+$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HH,702"$
 $LK,"ESTIMATED_MISC_ALLOCS",A="FL:::/Kernel/Mem/PageTables.HC.Z,97"$
-$LK,"Pow10I64",A="FL:::/Kernel/KMathB.HC.Z,26",BI=152$
-$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HH,1736"$
-$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HH,671"$
-$LK,"Dm",A="FL:::/Kernel/KDbg.HC.Z,204",BI=153$
-$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HH,2143"$
-$LK,"CQueD3I32",A="FL:::/Kernel/KernelA.HH,131"$
-$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HH,2647"$
-$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HH,2637"$
-$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HH,2976"$
-$LK,"DftExt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,208",BI=154$
+$LK,"Pow10I64",A="FL:::/Kernel/KMathB.HC.Z,26",BI=150$
+$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HH,1738"$
+$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HH,672"$
+$LK,"Dm",A="FL:::/Kernel/KDbg.HC.Z,204",BI=151$
+$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HH,2145"$
+$LK,"CQueD3I32",A="FL:::/Kernel/KernelA.HH,132"$
+$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HH,2652"$
+$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HH,2642"$
+$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HH,2981"$
+$LK,"DftExt",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,212",BI=152$
 $LK,"Bt",A="FL:::/Kernel/KernelB.HH,14"$
-$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HH,1541"$
-$LK,"HashFunSegFind",A="FL:::/Kernel/FunSeg.HC.Z,10",BI=155$
-$LK,"Dr",A="FL:::/Kernel/KDbg.HC.Z,328",BI=156$
+$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HH,1543"$
+$LK,"HashFunSegFind",A="FL:::/Kernel/FunSeg.HC.Z,10",BI=153$
+$LK,"Dr",A="FL:::/Kernel/KDbg.HC.Z,328",BI=154$
 $LK,"CPUId",A="FL:::/Kernel/KernelB.HH,252"$
-$LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.HC.Z,1",BI=157$
-$LK,"TaskKillDying",A="FL:::/Kernel/KTask.HC.Z,510",BI=158$
+$LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.HC.Z,1",BI=155$
+$LK,"TaskKillDying",A="FL:::/Kernel/KTask.HC.Z,515",BI=156$
 $LK,"scan_code_map",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,157"$
-$LK,"UncachedAliasAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,161",BI=159$
+$LK,"UncachedAliasAlloc",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,161",BI=157$
 $LK,"MSize2",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,385"$
 $LK,"MemSetU32",A="FL:::/Kernel/KernelB.HH,176"$
 $LK,"MemSetU16",A="FL:::/Kernel/KernelB.HH,174"$
-$LK,"DirTreeDel",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,36",BI=160$
+$LK,"DirTreeDel",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,36",BI=158$
 $LK,"Fs",A="FL:::/Kernel/KernelB.HH,276"$
-$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HH,3537"$
-$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HH,3522"$
-$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HH,605"$
-$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HH,1516"$
+$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HH,3544"$
+$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HH,3529"$
+$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HH,606"$
+$LK,"In",A="FL:::/Kernel/SrvCmd.HC.Z,484",BI=159$
+$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HH,1518"$
+$LK,"DbgMode",A="FL:::/Kernel/KMisc.HC.Z,277",BI=160$
 $LK,"Gs",A="FL:::/Kernel/KernelB.HH,234"$
 $LK,"SYS_PROGRESS3_DESC",A="FL:::/Kernel/KStart32.HC.Z,39"$
-$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HH,3593"$
-$LK,"REGG_LOCAL_VARS",A="FL:::/Kernel/KernelA.HH,1794"$
+$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HH,3600"$
+$LK,"REGG_LOCAL_VARS",A="FL:::/Kernel/KernelA.HH,1796"$
 $LK,"DrvModelNum",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,294",BI=161$
 $LK,"RepInU8",A="FL:::/Kernel/KernelB.HH,86"$
-$LK,"IsSysDbg",A="FL:::/Kernel/KMisc.HC.Z,238",BI=162$
-$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HH,3864"$
+$LK,"IsSysDbg",A="FL:::/Kernel/KMisc.HC.Z,250",BI=162$
+$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HH,3872"$
 $LK,"_TEST_EXCEPT",A="FL:::/Kernel/KExcept.HC.Z,4"$
 $LK,"_FSTCW",A="FL:::/Kernel/KMathA.HC.Z,632"$
-$LK,"MSG_IP_R_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3242"$
+$LK,"MSG_IP_R_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3247"$
 $LK,"ScanFlags",A="FL:::/Kernel/StrB.HC.Z,123",BI=163$
 $LK,"Ln",A="FL:::/Kernel/KernelB.HH,134"$
 $LK,"INT_WAKE",A="FL:::/Kernel/KInts.HC.Z,6"$
@@ -735,273 +740,271 @@ $LK,"GetS",A="FL:::/Kernel/SerialDev/Message.HC.Z,209",BI=164$
 $LK,"_MEMSET_U32",A="FL:::/Kernel/KUtils.HC.Z,29"$
 $LK,"_MEMSET_U16",A="FL:::/Kernel/KUtils.HC.Z,16"$
 $LK,"SYS_MP_CNT_LOCK",A="FL:::/Kernel/KStart32.HC.Z,49"$
-$LK,"SYS_COMPILE_TIME",A="FL::/Temp.DD.Z,1"$
+$LK,"SYS_COMPILE_TIME",A="FL::/Tmp.DD.Z,1"$
 $LK,"GetTSC",A="FL:::/Kernel/KernelB.HH,280"$
 $LK,"BptR",A="FL:::/Kernel/KDbg.HC.Z,389",BI=165$
-$LK,"DOCT_MARKER",A="FL:::/Kernel/KernelA.HH,906"$
+$LK,"DOCT_MARKER",A="FL:::/Kernel/KernelA.HH,907"$
 $LK,"BptS",A="FL:::/Kernel/KDbg.HC.Z,368",BI=166$
 $LK,"_HASH_BUCKET_FIND",A="FL:::/Kernel/KHashA.HC.Z,158"$
 $LK,"_MHEAP_CTRL",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,368"$
 $LK,"ATAMount",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,239",BI=167$
 $LK,"FifoI64Peek",A="FL:::/Kernel/KDataTypes.HC.Z,290",BI=168$
 $LK,"_EXP",A="FL:::/Kernel/KMathA.HC.Z,558"$
-$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HH,595"$
-$LK,"IET_END",A="FL:::/Kernel/KernelA.HH,392"$
+$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HH,596"$
+$LK,"IET_END",A="FL:::/Kernel/KernelA.HH,393"$
 $LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,441",BI=169$
-$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HH,3781"$
+$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HH,3789"$
 $LK,"SYS_HASH_FIND1",A="FL:::/Kernel/KHashA.HC.Z,81"$
 $LK,"GetRSP",A="FL:::/Kernel/KernelB.HH,244"$
 $LK,"_D3_DIST",A="FL:::/Kernel/KMathA.HC.Z,39"$
-$LK,"SPF_TRUNCATE",A="FL:::/Kernel/KernelA.HH,3913"$
 $LK,"ScanKey",A="FL:::/Kernel/SerialDev/Message.HC.Z,123",BI=170$
 $LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,217",BI=171$
 $LK,"mouse_last",A="FL:::/Kernel/KGlbls.HC.Z,27"$
+$LK,"InFile",A="FL:::/Kernel/SrvCmd.HC.Z,476",BI=172$
 $LK,"D3DistSqr",A="FL:::/Kernel/KernelB.HH,150"$
-$LK,"_RDI",A="FL:::/Kernel/KernelA.HH,3421"$
-$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HH,1740"$
-$LK,"ATARepExitAllApplications",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,120",BI=172$
-$LK,"CeilI64",A="FL:::/Kernel/KMathB.HC.Z,62",BI=173$
-$LK,"_RBP",A="FL:::/Kernel/KernelA.HH,3422"$
-$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HH,2746"$
-$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HH,1539"$
-$LK,"ATAProbe",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,373",BI=174$
+$LK,"_RDI",A="FL:::/Kernel/KernelA.HH,3428"$
+$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HH,1742"$
+$LK,"PRTF_TRUNCATE",A="FL:::/Kernel/KernelA.HH,3921"$
+$LK,"ATARepExitAllApplications",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,120",BI=173$
+$LK,"CeilI64",A="FL:::/Kernel/KMathB.HC.Z,62",BI=174$
+$LK,"_RBP",A="FL:::/Kernel/KernelA.HH,3429"$
+$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HH,2751"$
+$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HH,1541"$
+$LK,"ATAProbe",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,373",BI=175$
 $LK,"_LXCHG_U16",A="FL:::/Kernel/KUtils.HC.Z,235"$
 $LK,"_LXCHG_U32",A="FL:::/Kernel/KUtils.HC.Z,226"$
 $LK,"SYS_PROGRESS1",A="FL:::/Kernel/KStart32.HC.Z,31"$
-$LK,"DOCT_FOOTER",A="FL:::/Kernel/KernelA.HH,913"$
-$LK,"MEM_NUM_E820_ENTRIES",A="FL:::/Kernel/KernelA.HH,356"$
-$LK,"MPAPICInit",A="FL:::/Kernel/MultiProc.HC.Z,171",BI=175$
+$LK,"DOCT_FOOTER",A="FL:::/Kernel/KernelA.HH,914"$
+$LK,"MEM_NUM_E820_ENTRIES",A="FL:::/Kernel/KernelA.HH,357"$
+$LK,"MPAPICInit",A="FL:::/Kernel/MultiProc.HC.Z,171",BI=176$
 $LK,"SYS_PROGRESS2",A="FL:::/Kernel/KStart32.HC.Z,34"$
-$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HH,1104"$
-$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HH,1018"$
+$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HH,1105"$
+$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HH,1019"$
 $LK,"SYS_PROGRESS3",A="FL:::/Kernel/KStart32.HC.Z,37"$
-$LK,"SPF_COMMA",A="FL:::/Kernel/KernelA.HH,3914"$
-$LK,"CCF_DONT_MAKE_RES",A="FL:::/Kernel/KernelA.HH,2166"$
-$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HH,3216"$
-$LK,"DirNew",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,1",BI=176$
+$LK,"CCF_DONT_MAKE_RES",A="FL:::/Kernel/KernelA.HH,2168"$
+$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HH,3221"$
+$LK,"DirNew",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,1",BI=177$
 $LK,"SYS_PROGRESS4",A="FL:::/Kernel/KStart32.HC.Z,40"$
-$LK,"_RAX",A="FL:::/Kernel/KernelA.HH,3416"$
-$LK,"FAT32DirNew",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,576",BI=177$
-$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HH,677"$
-$LK,"LinkedLstDel",A="FL:::/Kernel/KDataTypes.HC.Z,1",BI=178$
-$LK,"Help",A="FL:::/Kernel/StrB.HC.Z,115",BI=179$
+$LK,"_RAX",A="FL:::/Kernel/KernelA.HH,3423"$
+$LK,"FAT32DirNew",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,576",BI=178$
+$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HH,678"$
+$LK,"LinkedLstDel",A="FL:::/Kernel/KDataTypes.HC.Z,1",BI=179$
+$LK,"Help",A="FL:::/Kernel/StrB.HC.Z,115",BI=180$
 $LK,"Log2",A="FL:::/Kernel/KernelB.HH,136"$
-$LK,"_RBX",A="FL:::/Kernel/KernelA.HH,3417"$
-$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HH,935"$
-$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HH,928"$
+$LK,"_RBX",A="FL:::/Kernel/KernelA.HH,3424"$
+$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HH,936"$
+$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HH,929"$
 $LK,"_D3_COPY",A="FL:::/Kernel/KMathA.HC.Z,212"$
 $LK,"PUT_STR",A="FL:::/Kernel/StrA.HC.Z,58"$
 $LK,"_RET",A="FL:::/Kernel/KUtils.HC.Z,456"$
-$LK,"_RCX",A="FL:::/Kernel/KernelA.HH,3418"$
-$LK,"BIOSTotalMem",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,174",BI=180$
-$LK,"_RDX",A="FL:::/Kernel/KernelA.HH,3419"$
-$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HH,463"$
-$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HH,444"$
-$LK,"ScanMsg",A="FL:::/Kernel/SerialDev/Message.HC.Z,37",BI=181$
+$LK,"_RCX",A="FL:::/Kernel/KernelA.HH,3425"$
+$LK,"BIOSTotalMem",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,174",BI=181$
+$LK,"_RDX",A="FL:::/Kernel/KernelA.HH,3426"$
+$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HH,464"$
+$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HH,445"$
+$LK,"ScanMsg",A="FL:::/Kernel/SerialDev/Message.HC.Z,37",BI=182$
 $LK,"SYS_PROGRESS4_DESC",A="FL:::/Kernel/KStart32.HC.Z,42"$
-$LK,"__FILE__",A="FL:::/Kernel/KernelA.HH,2031"$
-$LK,"CDate",A="FL:::/Kernel/KernelA.HH,185"$
+$LK,"__FILE__",A="FL:::/Kernel/KernelA.HH,2033"$
+$LK,"CDate",A="FL:::/Kernel/KernelA.HH,186"$
 $LK,"CLFlush",A="FL:::/Kernel/KernelB.HH,269"$
 $LK,"SYS_HEAP_DBG_FLAG",A="FL:::/Kernel/KStart32.HC.Z,21"$
-$LK,"_RIP",A="FL:::/Kernel/KernelA.HH,3424"$
-$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HH,1734"$
-$LK,"MDF_IMM",A="FL:::/Kernel/KernelA.HH,1581"$
-$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HH,1129"$
-$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HH,3000"$
-$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HH,2975"$
+$LK,"_RIP",A="FL:::/Kernel/KernelA.HH,3431"$
+$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HH,1736"$
+$LK,"MDF_IMM",A="FL:::/Kernel/KernelA.HH,1583"$
+$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HH,1130"$
+$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HH,3005"$
+$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HH,2980"$
 $LK,"ac",A="FL:::/Kernel/KGlbls.HC.Z,18"$
 $LK,"_FSTSW",A="FL:::/Kernel/KMathA.HC.Z,641"$
-$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HH,1886"$
-$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HH,1885"$
-$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,109",BI=182$
-$LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.HC.Z,54",BI=183$
+$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HH,1888"$
+$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HH,1887"$
+$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,109",BI=183$
+$LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.HC.Z,54",BI=184$
 $LK,"Free",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,383"$
-$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HH,1055"$
-$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HH,967"$
-$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,201",BI=184$
-$LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.HC.Z,84",BI=185$
+$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HH,1056"$
+$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HH,968"$
+$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,201",BI=185$
+$LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.HC.Z,84",BI=186$
 $LK,"blkdev",A="FL:::/Kernel/KGlbls.HC.Z,19"$
-$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HH,2112"$
-$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HH,1469"$
-$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HH,1102"$
-$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HH,1016"$
-$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,119",BI=186$
-$LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,70",BI=187$
-$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,3302"$
-$LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.HC.Z,97",BI=188$
-$LK,"Mem512TaskAlloc",A="FL:::/Kernel/Mem/Mem512.HC.Z,115",BI=189$
-$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HH,3459"$
+$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HH,2114"$
+$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HH,1471"$
+$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HH,1103"$
+$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HH,1017"$
+$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,119",BI=187$
+$LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,70",BI=188$
+$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,3308"$
+$LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.HC.Z,97",BI=189$
+$LK,"Mem512TaskAlloc",A="FL:::/Kernel/Mem/Mem512.HC.Z,115",BI=190$
+$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HH,3466"$
 $LK,"D3Norm",A="FL:::/Kernel/KernelB.HH,157"$
 $LK,"_POW",A="FL:::/Kernel/KMathA.HC.Z,515"$
-$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HH,3227"$
-$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HH,1887"$
-$LK,"RTG_MASK",A="FL:::/Kernel/KernelA.HH,1570"$
-$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HH,2889"$
-$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HH,929"$
+$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HH,3232"$
+$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HH,1889"$
+$LK,"RTG_MASK",A="FL:::/Kernel/KernelA.HH,1572"$
+$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HH,2894"$
+$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HH,930"$
 $LK,"drv_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,310"$
 $LK,"PUT_HEX_U8",A="FL:::/Kernel/StrA.HC.Z,44"$
-$LK,"_RSI",A="FL:::/Kernel/KernelA.HH,3420"$
-$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HH,3095"$
-$LK,"CPUStructInit",A="FL:::/Kernel/MultiProc.HC.Z,116",BI=190$
-$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1456"$
-$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1431"$
-$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HH,1655"$
-$LK,"MDF_REG",A="FL:::/Kernel/KernelA.HH,1582"$
-$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HH,1138"$
-$LK,"Str2ColorU32",A="FL:::/Kernel/KDefine.HC.Z,202",BI=191$
-$LK,"Str2ColorU16",A="FL:::/Kernel/KDefine.HC.Z,158",BI=192$
-$LK,"LinkedLstCnt",A="FL:::/Kernel/KDataTypes.HC.Z,21",BI=193$
-$LK,"Auto",A="FL:::/Kernel/SrvCmd.HC.Z,483",BI=194$
-$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HH,3090"$
-$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HH,1088"$
-$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HH,1000"$
+$LK,"_RSI",A="FL:::/Kernel/KernelA.HH,3427"$
+$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HH,3100"$
+$LK,"CPUStructInit",A="FL:::/Kernel/MultiProc.HC.Z,116",BI=191$
+$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1458"$
+$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1433"$
+$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HH,1657"$
+$LK,"MDF_REG",A="FL:::/Kernel/KernelA.HH,1584"$
+$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HH,1139"$
+$LK,"Str2ColorU32",A="FL:::/Kernel/KDefine.HC.Z,202",BI=192$
+$LK,"Str2ColorU16",A="FL:::/Kernel/KDefine.HC.Z,158",BI=193$
+$LK,"LinkedLstCnt",A="FL:::/Kernel/KDataTypes.HC.Z,21",BI=194$
+$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HH,3095"$
+$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HH,1089"$
+$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HH,1001"$
 $LK,"Tabs2Spaces",A="FL:::/Kernel/StrB.HC.Z,1",BI=195$
 $LK,"MaxI64",A="FL:::/Kernel/KernelB.HH,99"$
 $LK,"SYS_GDT_PTR",A="FL:::/Kernel/KStart16.HC.Z,34"$
-$LK,"_RSP",A="FL:::/Kernel/KernelA.HH,3423"$
-$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HH,939"$
+$LK,"_RSP",A="FL:::/Kernel/KernelA.HH,3430"$
+$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HH,940"$
 $LK,"FSetCluster",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,99",BI=196$
 $LK,"WinDerivedValsUpdate",A="FL:::/Kernel/Display.HC.Z,93",BI=197$
 $LK,"fp_update_ctrls",A="FL:::/Kernel/KGlbls.HC.Z,32"$
-$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2744"$
-$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HH,2529"$
-$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1323"$
-$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1286"$
-$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HH,923"$
+$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HH,2749"$
+$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HH,2532"$
+$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1325"$
+$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1288"$
+$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HH,924"$
 $LK,"IntDivZero",A="FL:::/Kernel/KInts.HC.Z,150",BI=198$
 $LK,"_SQR",A="FL:::/Kernel/KMathA.HC.Z,337"$
-$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HH,3297"$
-$LK,"MDF_SIB",A="FL:::/Kernel/KernelA.HH,1584"$
-$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HH,741"$
-$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HH,740"$
-$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HH,1732"$
+$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HH,3303"$
+$LK,"MDF_SIB",A="FL:::/Kernel/KernelA.HH,1586"$
+$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HH,742"$
+$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HH,741"$
+$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HH,1734"$
 $LK,"RedSeaFileFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,155",BI=199$
 $LK,"SYS_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.HC.Z,4"$
 $LK,"tS",A="FL:::/Kernel/KMisc.HC.Z,122",BI=200$
 $LK,"LBEqu",A="FL:::/Kernel/KernelB.HH,34"$
-$LK,"ICF_RES_NOT_USED",A="FL:::/Kernel/KernelA.HH,1600"$
-$LK,"DOCEt_SEL",A="FL:::/Kernel/KernelA.HH,955"$
+$LK,"ICF_RES_NOT_USED",A="FL:::/Kernel/KernelA.HH,1602"$
+$LK,"DOCEt_SEL",A="FL:::/Kernel/KernelA.HH,956"$
 $LK,"ArcDetermineCompressionType",A="FL:::/Kernel/Compress.HC.Z,102",BI=201$
-$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,601"$
+$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,602"$
 $LK,"IntInit1",A="FL:::/Kernel/KInts.HC.Z,180",BI=202$
-$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HH,3505"$
+$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HH,3512"$
 $LK,"IntInit2",A="FL:::/Kernel/KInts.HC.Z,195",BI=203$
-$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HH,905"$
+$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HH,906"$
 $LK,"GetKey",A="FL:::/Kernel/SerialDev/Message.HC.Z,142",BI=204$
-$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HH,2945"$
-$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HH,2396"$
-$LK,"Kill",A="FL:::/Kernel/KTask.HC.Z,40",BI=205$
-$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HH,2539"$
-$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HH,2101"$
-$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HH,742"$
-$LK,"SingleUser",A="FL:::/Kernel/KMisc.HC.Z,255",BI=206$
+$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HH,2950"$
+$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HH,2399"$
+$LK,"Kill",A="FL:::/Kernel/KTask.HC.Z,45",BI=205$
+$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HH,2542"$
+$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HH,2103"$
+$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HH,743"$
+$LK,"SingleUser",A="FL:::/Kernel/KMisc.HC.Z,267",BI=206$
 $LK,"Date2Struct",A="FL:::/Kernel/KDate.HC.Z,39",BI=207$
-$LK,"CFile",A="FL:::/Kernel/KernelA.HH,2787"$
+$LK,"CFile",A="FL:::/Kernel/KernelA.HH,2792"$
 $LK,"Fault2",A="FL:::/Kernel/KDbg.HC.Z,592",BI=208$
 $LK,"Load",A="FL:::/Kernel/KLoad.HC.Z,181",BI=209$
 $LK,"ip",A="FL:::/Kernel/KGlbls.HC.Z,24"$
-$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HH,2709"$
-$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HH,1005"$
-$LK,"CHash",A="FL:::/Kernel/KernelA.HH,623"$
+$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HH,2714"$
+$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HH,1006"$
+$LK,"CHash",A="FL:::/Kernel/KernelA.HH,624"$
 $LK,"RedSeaFreeClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,250",BI=210$
-$LK,"DeathWait",A="FL:::/Kernel/KTask.HC.Z,34",BI=211$
+$LK,"DeathWait",A="FL:::/Kernel/KTask.HC.Z,35",BI=211$
 $LK,"Fault3",A="FL:::/Kernel/KDbg.HC.Z,561",BI=212$
 $LK,"CompressBuf",A="FL:::/Kernel/Compress.HC.Z,281",BI=213$
 $LK,"chars_bmp_hex_numeric",A="FL:::/Kernel/StrA.HC.Z,353"$
-$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HH,2140"$
+$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HH,2142"$
 $LK,"CeilU64",A="FL:::/Kernel/KMathB.HC.Z,41",BI=214$
-$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2892"$
-$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2658"$
-$LK,"TK_ELLIPSIS",A="FL:::/Kernel/KernelA.HH,2109"$
-$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HH,2096"$
+$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2897"$
+$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2663"$
+$LK,"TK_ELLIPSIS",A="FL:::/Kernel/KernelA.HH,2111"$
+$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HH,2098"$
 $LK,"sys_neg_pows_lst",A="FL:::/Kernel/StrPrint.HC.Z,203"$
 $LK,"sys_pos_pows_lst",A="FL:::/Kernel/StrPrint.HC.Z,202"$
 $LK,"MStrPrint",A="FL:::/Kernel/StrPrint.HC.Z,898",BI=215$
-$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2683"$
+$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HH,2688"$
 $LK,"SrcFileName",A="FL:::/Kernel/FunSeg.HC.Z,239",BI=216$
 $LK,"RawD",A="FL:::/Kernel/KDbg.HC.Z,234",BI=217$
-$LK,"IsSingleUser",A="FL:::/Kernel/KMisc.HC.Z,260",BI=218$
+$LK,"IsSingleUser",A="FL:::/Kernel/KMisc.HC.Z,272",BI=218$
 $LK,"adam_task",A="FL:::/Kernel/KGlbls.HC.Z,8"$
 $LK,"_POW10",A="FL:::/Kernel/KMathA.HC.Z,524"$
-$LK,"SVCRf_LOCKED",A="FL:::/Kernel/KernelA.HH,3215"$
-$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,2641"$
-$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HH,926"$
-$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HH,3535"$
-$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HH,3520"$
-$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HH,2105"$
-$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HH,1565"$
-$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HH,2141"$
-$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1050"$
-$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1044"$
-$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HH,956"$
-$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HH,950"$
-$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HH,450"$
-$LK,"pi",A="FL:::/Kernel/KernelA.HH,49"$
-$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,892"$
-$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,897"$
+$LK,"SVCRf_LOCKED",A="FL:::/Kernel/KernelA.HH,3220"$
+$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,2646"$
+$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HH,927"$
+$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HH,3542"$
+$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HH,3527"$
+$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HH,2107"$
+$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HH,1567"$
+$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HH,2143"$
+$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1051"$
+$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1045"$
+$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HH,957"$
+$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HH,951"$
+$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HH,451"$
+$LK,"pi",A="FL:::/Kernel/KernelA.HH,50"$
+$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,893"$
+$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,898"$
 $LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,271",BI=219$
-$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HH,1275"$
-$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HH,608"$
+$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HH,1277"$
+$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HH,609"$
 $LK,"Exit",A="FL:::/Kernel/KTask.HC.Z,1",BI=220$
-$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HH,3290"$
-$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HH,691"$
+$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HH,3296"$
+$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HH,692"$
 $LK,"CopySingleZ",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,1",BI=221$
-$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HH,3621"$
-$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HH,661"$
-$LK,"SYS_SEMA_IN_DEBUGGER",A="FL:::/Kernel/KernelA.HH,597"$
-$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HH,1567"$
-$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HH,1311"$
+$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HH,3628"$
+$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HH,662"$
+$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HH,1569"$
+$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HH,1313"$
 $LK,"GetMsg",A="FL:::/Kernel/SerialDev/Message.HC.Z,95",BI=222$
-$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HH,3855"$
-$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HH,2937"$
-$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HH,1603"$
-$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HH,522"$
+$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HH,3863"$
+$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HH,2942"$
+$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HH,1605"$
+$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HH,523"$
 $LK,"Rand",A="FL:::/Kernel/KMathB.HC.Z,122",BI=223$
-$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HH,2409"$
-$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HH,2073"$
+$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HH,2412"$
+$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HH,2075"$
 $LK,"ArcCompressBuf",A="FL:::/Kernel/Compress.HC.Z,110",BI=224$
-$LK,"MDG_REG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HH,1589"$
+$LK,"MDG_REG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HH,1591"$
 $LK,"ToFileLine",A="FL:::/Kernel/EdLite.HC.Z,303",BI=225$
 $LK,"D3Unit",A="FL:::/Kernel/KernelB.HH,161"$
-$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HH,3088"$
-$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HH,2103"$
+$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HH,3093"$
+$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HH,2105"$
 $LK,"IsDotC",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,31",BI=226$
-$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,2651"$
-$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HH,2087"$
-$LK,"CICArg",A="FL:::/Kernel/KernelA.HH,1632"$
-$LK,"MDF_STK",A="FL:::/Kernel/KernelA.HH,1580"$
-$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HH,1076"$
-$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HH,988"$
-$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HH,552"$
+$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HH,2656"$
+$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HH,2089"$
+$LK,"CICArg",A="FL:::/Kernel/KernelA.HH,1634"$
+$LK,"MDF_STK",A="FL:::/Kernel/KernelA.HH,1582"$
+$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HH,1077"$
+$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HH,989"$
+$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HH,553"$
 $LK,"HashTablePurge",A="FL:::/Kernel/KHashB.HC.Z,107",BI=227$
-$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HH,3610"$
-$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HH,1079"$
-$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HH,991"$
+$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HH,3617"$
+$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HH,1080"$
+$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HH,992"$
 $LK,"Seed",A="FL:::/Kernel/KMathB.HC.Z,128",BI=228$
 $LK,"DrvsRelease",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,27",BI=229$
 $LK,"BlkDevNextFreeSlot",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,120",BI=230$
-$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HH,3284"$
-$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HH,1007"$
-$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HH,1305"$
-$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HH,1269"$
-$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HH,602"$
-$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HH,1543"$
-$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HH,3092"$
-$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HH,1095"$
-$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HH,1058"$
-$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HH,970"$
+$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HH,3290"$
+$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HH,1008"$
+$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HH,1307"$
+$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HH,1271"$
+$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HH,603"$
+$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HH,1545"$
+$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HH,3097"$
+$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HH,1096"$
+$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HH,1059"$
+$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HH,971"$
 $LK,"ISO1FileRead",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,130",BI=231$
 $LK,"ATAPIWaitReady",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,334",BI=232$
-$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HH,3585"$
-$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HH,2598"$
-$LK,"STR_LEN",A="FL:::/Kernel/KernelA.HH,40"$
+$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HH,3592"$
+$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HH,2602"$
+$LK,"STR_LEN",A="FL:::/Kernel/KernelA.HH,41"$
 $LK,"DskCacheQueIns",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,53",BI=233$
-$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HH,3586"$
+$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HH,3593"$
 $LK,"sys_semas",A="FL:::/Kernel/KernelB.HH,231"$
 $LK,"InputFilterTask",A="FL:::/Kernel/SerialDev/Message.HC.Z,1",BI=234$
 $LK,"SYS_HASH_STR",A="FL:::/Kernel/KHashA.HC.Z,4"$
-$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HH,2285"$
-$LK,"I_DBG",A="FL:::/Kernel/KernelA.HH,296"$
+$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HH,2287"$
+$LK,"I_DBG",A="FL:::/Kernel/KernelA.HH,297"$
 $LK,"FATNameTo",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,130",BI=235$
 $LK,"SrvCmdQueDel",A="FL:::/Kernel/SrvCmd.HC.Z,7",BI=236$
 $LK,"MinI64",A="FL:::/Kernel/KernelB.HH,101"$
@@ -1009,1885 +1012,1886 @@ $LK,"MaxU64",A="FL:::/Kernel/KernelB.HH,100"$
 $LK,"CallInd",A="FL:::/Kernel/KernelB.HH,49"$
 $LK,"EndianI64",A="FL:::/Kernel/KMisc.HC.Z,25",BI=237$
 $LK,"_MSIZE",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,337"$
-$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HH,1484"$
-$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HH,867"$
-$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HH,704"$
-$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HH,674"$
-$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HH,2660"$
-$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HH,1729"$
-$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HH,495"$
+$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HH,1486"$
+$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HH,868"$
+$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HH,705"$
+$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HH,675"$
+$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HH,2665"$
+$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HH,1731"$
+$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HH,496"$
 $LK,"mouse",A="FL:::/Kernel/KGlbls.HC.Z,27"$
 $LK,"D3Zero",A="FL:::/Kernel/KernelB.HH,162"$
-$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HH,3514"$
-$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HH,2615"$
+$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HH,3521"$
+$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HH,2620"$
 $LK,"DskCacheInvalidate2",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,97",BI=238$
-$LK,"CCtrl",A="FL:::/Kernel/KernelA.HH,3114"$
-$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HH,2662"$
-$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HH,940"$
-$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HH,936"$
+$LK,"CCtrl",A="FL:::/Kernel/KernelA.HH,3119"$
+$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HH,2667"$
+$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HH,941"$
+$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HH,937"$
 $LK,"progress1_desc",A="FL:::/Kernel/KernelB.HH,208"$
-$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HH,3269"$
-$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HH,900"$
-$LK,"CMathODE",A="FL:::/Kernel/KernelA.HH,244"$
+$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HH,3274"$
+$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HH,901"$
+$LK,"CMathODE",A="FL:::/Kernel/KernelA.HH,245"$
 $LK,"WinInside",A="FL:::/Kernel/Display.HC.Z,110",BI=239$
-$LK,"RFLAGf_ALIGN_CHECK",A="FL:::/Kernel/KernelA.HH,321"$
-$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HH,2589"$
-$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HH,1271"$
-$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HH,797"$
-$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HH,1307"$
+$LK,"RFLAGf_ALIGN_CHECK",A="FL:::/Kernel/KernelA.HH,322"$
+$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HH,2593"$
+$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HH,1273"$
+$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HH,798"$
+$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HH,1309"$
 $LK,"DskCacheQueRem",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,46",BI=240$
 $LK,"_D3_NORM",A="FL:::/Kernel/KMathA.HC.Z,4"$
-$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HH,1047"$
-$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HH,1041"$
+$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HH,1048"$
+$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HH,1042"$
 $LK,"IsDotZ",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,22",BI=241$
 $LK,"HashGenericAdd",A="FL:::/Kernel/KHashB.HC.Z,140",BI=242$
 $LK,"_TASK_CONTEXT_RESTORE",A="FL:::/Kernel/Sched.HC.Z,100"$
 $LK,"BFieldOrU32",A="FL:::/Kernel/KernelB.HH,32"$
-$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HH,2104"$
+$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HH,2106"$
 $LK,"RedSeaFileRead",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,207",BI=243$
 $LK,"MousePktRead",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,1",BI=244$
-$LK,"VGAP_CRTC_DATA",A="FL:::/Kernel/KernelA.HH,3733"$
-$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HH,1882"$
-$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HH,1881"$
+$LK,"VGAP_CRTC_DATA",A="FL:::/Kernel/KernelA.HH,3741"$
+$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HH,1884"$
+$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HH,1883"$
 $LK,"cpu_structs",A="FL:::/Kernel/KernelB.HH,227"$
-$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HH,3570"$
-$LK,"MAX_U64_F64",A="FL:::/Kernel/KernelA.HH,44"$
+$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HH,3577"$
+$LK,"MAX_U64_F64",A="FL:::/Kernel/KernelA.HH,45"$
 $LK,"CLine",A="FL:::/Kernel/EdLite.HC.Z,1"$
 $LK,"C:/Doc/TimeCycles.DD.Z",A="FL:::/Kernel/KernelB.HH,280"$
-$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HH,1521"$
-$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HH,743"$
-$LK,"CMass",A="FL:::/Kernel/KernelA.HH,208"$
+$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HH,1523"$
+$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HH,744"$
+$LK,"CMass",A="FL:::/Kernel/KernelA.HH,209"$
 $LK,"GetStr",A="FL:::/Kernel/SerialDev/Message.HC.Z,193",BI=245$
-$LK,"LTRED",A="FL:::/Kernel/KernelA.HH,2970"$
-$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HH,2695"$
+$LK,"LTRED",A="FL:::/Kernel/KernelA.HH,2975"$
+$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HH,2700"$
 $LK,"StrIMatch",A="FL:::/Kernel/StrA.HC.Z,319"$
-$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HH,699"$
+$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HH,700"$
 $LK,"Sign",A="FL:::/Kernel/KernelB.HH,140"$
 $LK,"ExpandBuf",A="FL:::/Kernel/Compress.HC.Z,250",BI=246$
-$LK,"ICF_ALT_TEMPLATE",A="FL:::/Kernel/KernelA.HH,1614"$
-$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HH,909"$
-$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HH,445"$
+$LK,"ICF_ALT_TEMPLATE",A="FL:::/Kernel/KernelA.HH,1616"$
+$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HH,910"$
+$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HH,446"$
 $LK,"BootDVDProbe",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,1",BI=247$
-$LK,"ToggleZorNotZ",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,261",BI=248$
-$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HH,3722"$
+$LK,"ToggleZorNotZ",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,265",BI=248$
+$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HH,3730"$
 $LK,"D3MulEqu",A="FL:::/Kernel/KernelB.HH,156"$
-$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HH,3267"$
-$LK,"MP_MAX_PROCESSORS",A="FL:::/Kernel/KernelA.HH,303"$
+$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HH,3272"$
+$LK,"MP_MAX_PROCESSORS",A="FL:::/Kernel/KernelA.HH,304"$
 $LK,"SysGlblsInit",A="FL:::/Kernel/KEnd.HC.Z,1",BI=249$
 $LK,"PutSrcLink",A="FL:::/Kernel/FunSeg.HC.Z,295",BI=250$
-$LK,"CMenu",A="FL:::/Kernel/KernelA.HH,3148"$
-$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HH,2634"$
-$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HH,2603"$
-$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HH,2380"$
-$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HH,1509"$
-$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HH,922"$
-$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HH,1694"$
-$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HH,439"$
-$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1454"$
-$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HH,500"$
-$LK,"SC_F1",A="FL:::/Kernel/KernelA.HH,3571"$
+$LK,"CMenu",A="FL:::/Kernel/KernelA.HH,3153"$
+$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HH,2639"$
+$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HH,2607"$
+$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HH,2383"$
+$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HH,1511"$
+$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HH,923"$
+$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HH,1696"$
+$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HH,440"$
+$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1456"$
+$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HH,501"$
+$LK,"SC_F1",A="FL:::/Kernel/KernelA.HH,3578"$
 $LK,"SYS_SEMAS",A="FL:::/Kernel/KStart32.HC.Z,54"$
-$LK,"SC_F2",A="FL:::/Kernel/KernelA.HH,3572"$
+$LK,"SC_F2",A="FL:::/Kernel/KernelA.HH,3579"$
 $LK,"BirthWait",A="FL:::/Kernel/KTask.HC.Z,28",BI=251$
-$LK,"SYS_VAR_INIT_FLAG",A="FL::/Temp.DD.Z,1"$
-$LK,"SYS_MEM_INIT_FLAG",A="FL::/Temp.DD.Z,1"$
-$LK,"SC_F3",A="FL:::/Kernel/KernelA.HH,3573"$
+$LK,"SYS_VAR_INIT_FLAG",A="FL::/Tmp.DD.Z,1"$
+$LK,"SYS_MEM_INIT_FLAG",A="FL::/Tmp.DD.Z,1"$
+$LK,"SC_F3",A="FL:::/Kernel/KernelA.HH,3580"$
 $LK,"SignI64",A="FL:::/Kernel/KernelB.HH,104"$
-$LK,"SC_F4",A="FL:::/Kernel/KernelA.HH,3574"$
-$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HH,3098"$
-$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HH,2528"$
-$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HH,610"$
-$LK,"I_BPT",A="FL:::/Kernel/KernelA.HH,289"$
+$LK,"SC_F4",A="FL:::/Kernel/KernelA.HH,3581"$
+$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HH,3103"$
+$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HH,2531"$
+$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HH,611"$
+$LK,"I_BPT",A="FL:::/Kernel/KernelA.HH,290"$
 $LK,"_TAKE_EXCEPT",A="FL:::/Kernel/KExcept.HC.Z,20"$
 $LK,"DefineCnt",A="FL:::/Kernel/KDefine.HC.Z,74",BI=252$
-$LK,"SC_F5",A="FL:::/Kernel/KernelA.HH,3575"$
-$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HH,1423"$
+$LK,"SC_F5",A="FL:::/Kernel/KernelA.HH,3582"$
+$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HH,1425"$
 $LK,"RedSeaCd",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,236",BI=253$
-$LK,"SC_F6",A="FL:::/Kernel/KernelA.HH,3576"$
-$LK,"SysGrInit",A="FL:::/Kernel/KEnd.HC.Z,64",BI=254$
+$LK,"SC_F6",A="FL:::/Kernel/KernelA.HH,3583"$
+$LK,"SysGrInit",A="FL:::/Kernel/KEnd.HC.Z,62",BI=254$
 $LK,"ArcCtrlDel",A="FL:::/Kernel/Compress.HC.Z,244",BI=255$
 $LK,"SysBadMAlloc",A="FL:::/Kernel/Mem/Mem512.HC.Z,6",BI=256$
-$LK,"SC_F7",A="FL:::/Kernel/KernelA.HH,3577"$
-$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HH,1128"$
-$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HH,868"$
+$LK,"SC_F7",A="FL:::/Kernel/KernelA.HH,3584"$
+$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HH,1129"$
+$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HH,869"$
 $LK,"blkdev_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,309"$
-$LK,"SPF_NEG_E",A="FL:::/Kernel/KernelA.HH,3921"$
-$LK,"SC_F8",A="FL:::/Kernel/KernelA.HH,3578"$
-$LK,"Mute",A="FL:::/Kernel/KMisc.HC.Z,204",BI=257$
+$LK,"SC_F8",A="FL:::/Kernel/KernelA.HH,3585"$
+$LK,"Mute",A="FL:::/Kernel/KMisc.HC.Z,216",BI=257$
 $LK,"INT_FAULT",A="FL:::/Kernel/KInts.HC.Z,62"$
 $LK,"progress2_desc",A="FL:::/Kernel/KernelB.HH,212"$
-$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HH,3642"$
-$LK,"SC_F9",A="FL:::/Kernel/KernelA.HH,3579"$
-$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HH,1003"$
+$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HH,3649"$
+$LK,"SC_F9",A="FL:::/Kernel/KernelA.HH,3586"$
+$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HH,1004"$
 $LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,301",BI=258$
-$LK,"CInst",A="FL:::/Kernel/KernelA.HH,1744"$
-$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HH,512"$
-$LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HH,311"$
-$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HH,2966"$
-$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HH,996"$
+$LK,"CInst",A="FL:::/Kernel/KernelA.HH,1746"$
+$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HH,513"$
+$LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HH,312"$
+$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HH,2971"$
+$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HH,997"$
 $LK,"PutDirLink",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,200",BI=259$
 $LK,"EndianU32",A="FL:::/Kernel/KMisc.HC.Z,15",BI=260$
 $LK,"EndianU16",A="FL:::/Kernel/KMisc.HC.Z,7",BI=261$
-$LK,"DOCEf_SOLID_BORDER",A="FL:::/Kernel/KernelA.HH,1091"$
+$LK,"DOCEf_SOLID_BORDER",A="FL:::/Kernel/KernelA.HH,1092"$
+$LK,"DOCEF_LEFT_IN_STR",A="FL:::/Kernel/KernelA.HH,985"$
 $LK,"sys_pci_busses",A="FL:::/Kernel/KernelB.HH,237"$
-$LK,"SPF_NEG_AUX_FMT_NUM",A="FL:::/Kernel/KernelA.HH,3922"$
-$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HH,3880"$
-$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HH,3273"$
-$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HH,2150"$
-$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HH,2149"$
-$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HH,480"$
+$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HH,3888"$
+$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HH,3278"$
+$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HH,2152"$
+$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HH,2151"$
+$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HH,481"$
 $LK,"PutS",A="FL:::/Kernel/KeyDev.HC.Z,29",BI=262$
-$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HH,1084"$
-$LK,"CDocBin",A="FL:::/Kernel/KernelA.HH,1114"$
-$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HH,477"$
-$LK,"MAX_F64",A="FL:::/Kernel/KernelA.HH,45"$
+$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HH,1085"$
+$LK,"DOCEf_LEFT_IN_STR",A="FL:::/Kernel/KernelA.HH,1073"$
+$LK,"CDocBin",A="FL:::/Kernel/KernelA.HH,1115"$
+$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HH,478"$
+$LK,"MAX_F64",A="FL:::/Kernel/KernelA.HH,46"$
 $LK,"StrPrintJoin",A="FL:::/Kernel/StrPrint.HC.Z,208",BI=263$
-$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HH,523"$
-$LK,"log2_e",A="FL:::/Kernel/KernelA.HH,53"$
-$LK,"CurDir",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,277",BI=264$
+$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HH,524"$
+$LK,"log2_e",A="FL:::/Kernel/KernelA.HH,54"$
+$LK,"CurDir",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,281",BI=264$
 $LK,"MinU64",A="FL:::/Kernel/KernelB.HH,102"$
 $LK,"_SYS_HLT",A="FL:::/Kernel/KUtils.HC.Z,468"$
-$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HH,2160"$
-$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HH,1542"$
-$LK,"MAX_I32",A="FL:::/Kernel/KernelA.HH,32"$
-$LK,"MAX_I16",A="FL:::/Kernel/KernelA.HH,28"$
-$LK,"HTF_EXPORT",A="FL:::/Kernel/KernelA.HH,703"$
-$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HH,673"$
+$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HH,2162"$
+$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HH,1544"$
+$LK,"MAX_I32",A="FL:::/Kernel/KernelA.HH,33"$
+$LK,"MAX_I16",A="FL:::/Kernel/KernelA.HH,29"$
+$LK,"HTF_EXPORT",A="FL:::/Kernel/KernelA.HH,704"$
+$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HH,674"$
 $LK,"DrvDel",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,69",BI=265$
 $LK,"ATAPIReadBlks2",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,385",BI=266$
 $LK,"_D3_UNIT",A="FL:::/Kernel/KMathA.HC.Z,305"$
-$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HH,2161"$
-$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HH,1767"$
+$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HH,2163"$
+$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HH,1769"$
 $LK,"_STRIMATCH",A="FL:::/Kernel/StrA.HC.Z,262"$
 $LK,"DrvChk",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,142",BI=267$
-$LK,"CSema",A="FL:::/Kernel/KernelA.HH,587"$
-$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HH,577"$
-$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HH,3609"$
-$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HH,902"$
+$LK,"CSema",A="FL:::/Kernel/KernelA.HH,588"$
+$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HH,578"$
+$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HH,3616"$
+$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HH,903"$
 $LK,"GetBaseUnit",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,176",BI=268$
 $LK,"FixSet",A="FL:::/Kernel/EdLite.HC.Z,327",BI=269$
 $LK,"IPSet",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,43",BI=270$
-$LK,"DOCf_SEL",A="FL:::/Kernel/KernelA.HH,1322"$
-$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HH,600"$
-$LK,"sqrt2",A="FL:::/Kernel/KernelA.HH,56"$
-$LK,"ATAR0_SEL",A="FL:::/Kernel/KernelA.HH,2283"$
-$LK,"CQueVectU8",A="FL:::/Kernel/KernelA.HH,162"$
+$LK,"DOCf_SEL",A="FL:::/Kernel/KernelA.HH,1324"$
+$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HH,601"$
+$LK,"sqrt2",A="FL:::/Kernel/KernelA.HH,57"$
+$LK,"ATAR0_SEL",A="FL:::/Kernel/KernelA.HH,2285"$
+$LK,"CQueVectU8",A="FL:::/Kernel/KernelA.HH,163"$
 $LK,"IntFaultHandlersNew",A="FL:::/Kernel/KInts.HC.Z,166",BI=271$
-$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HH,3283"$
-$LK,"OM_CB",A="FL:::/Kernel/KernelA.HH,1871"$
-$LK,"MAX_I64",A="FL:::/Kernel/KernelA.HH,36"$
-$LK,"throw",A="FL:::/Kernel/KExcept.HC.Z,83",BI=272$
+$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HH,3289"$
+$LK,"OM_CB",A="FL:::/Kernel/KernelA.HH,1873"$
+$LK,"MAX_I64",A="FL:::/Kernel/KernelA.HH,37"$
+$LK,"throw",A="FL:::/Kernel/KExcept.HC.Z,84",BI=272$
 $LK,"sys_boot_base",A="FL:::/Kernel/KernelB.HH,37"$
-$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HH,2640"$
-$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HH,2088"$
-$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HH,1787"$
-$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HH,1759"$
-$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1416"$
-$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HH,847"$
-$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HH,3845"$
-$LK,"OM_CD",A="FL:::/Kernel/KernelA.HH,1873"$
-$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HH,1969"$
-$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HH,746"$
-$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HH,1132"$
-$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,924"$
+$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HH,2645"$
+$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HH,2090"$
+$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HH,1789"$
+$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HH,1761"$
+$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1418"$
+$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HH,848"$
+$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HH,3853"$
+$LK,"OM_CD",A="FL:::/Kernel/KernelA.HH,1875"$
+$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HH,1971"$
+$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HH,747"$
+$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HH,1133"$
+$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,925"$
 $LK,"PutExcept",A="FL:::/Kernel/KExcept.HC.Z,45",BI=273$
 $LK,"TestExcept",A="FL:::/Kernel/KExcept.HC.Z,41"$
-$LK,"CColorROPU32",A="FL:::/Kernel/KernelA.HH,2983"$
-$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HH,2979"$
-$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,925"$
-$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HH,695"$
-$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HH,684"$
-$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HH,665"$
+$LK,"CColorROPU32",A="FL:::/Kernel/KernelA.HH,2988"$
+$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HH,2984"$
+$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,926"$
+$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HH,696"$
+$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HH,685"$
+$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HH,666"$
 $LK,"Push",A="FL:::/Kernel/KernelB.HH,246"$
-$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HH,3186"$
-$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HH,654"$
+$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HH,3191"$
+$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HH,655"$
 $LK,"STK_REP_LEN",A="FL:::/Kernel/KDbg.HC.Z,102"$
-$LK,"I_NMI",A="FL:::/Kernel/KernelA.HH,288"$
+$LK,"I_NMI",A="FL:::/Kernel/KernelA.HH,289"$
 $LK,"Date2ISO1",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,1",BI=274$
 $LK,"ModU64",A="FL:::/Kernel/KernelB.HH,103"$
-$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HH,3180"$
-$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HH,958"$
+$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HH,3185"$
+$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HH,959"$
 $LK,"JobResScan",A="FL:::/Kernel/SrvCmd.HC.Z,163",BI=275$
-$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HH,1448"$
-$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1442"$
-$LK,"CTask",A="FL:::/Kernel/KernelA.HH,3318"$
+$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HH,1450"$
+$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1444"$
+$LK,"CTask",A="FL:::/Kernel/KernelA.HH,3324"$
 $LK,"C:/Doc/Bit.DD.Z",A="FL:::/Kernel/KernelB.HH,9"$
-$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HH,1763"$
+$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HH,1765"$
 $LK,"_HASH_SINGLE_TABLE_FIND",A="FL:::/Kernel/KHashA.HC.Z,143"$
 $LK,"_D3_ZERO",A="FL:::/Kernel/KMathA.HC.Z,201"$
+$LK,"REGG_STK_TMP",A="FL:::/Kernel/KernelA.HH,1795"$
 $LK,"Str2F64",A="FL:::/Kernel/StrScan.HC.Z,55",BI=276$
 $LK,"_YIELD",A="FL:::/Kernel/Sched.HC.Z,157"$
-$LK,"OM_IB",A="FL:::/Kernel/KernelA.HH,1875"$
+$LK,"OM_IB",A="FL:::/Kernel/KernelA.HH,1877"$
 $LK,"progress3_desc",A="FL:::/Kernel/KernelB.HH,216"$
-$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HH,3626"$
-$LK,"OM_ID",A="FL:::/Kernel/KernelA.HH,1877"$
-$LK,"OM_CP",A="FL:::/Kernel/KernelA.HH,1874"$
-$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HH,1425"$
+$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HH,3633"$
+$LK,"OM_ID",A="FL:::/Kernel/KernelA.HH,1879"$
+$LK,"OM_CP",A="FL:::/Kernel/KernelA.HH,1876"$
+$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HH,1427"$
 $LK,"_ROUND",A="FL:::/Kernel/KMathA.HC.Z,380"$
-$LK,"RFLAGf_TRAP",A="FL:::/Kernel/KernelA.HH,312"$
+$LK,"RFLAGf_TRAP",A="FL:::/Kernel/KernelA.HH,313"$
 $LK,"SYS_HASH_BUCKET_FIND",A="FL:::/Kernel/KHashA.HC.Z,109"$
-$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HH,3886"$
-$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HH,2595"$
-$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HH,2569"$
+$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HH,3894"$
+$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HH,2599"$
+$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HH,2572"$
 $LK,"MemCmp",A="FL:::/Kernel/KernelB.HH,166"$
-$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HH,3184"$
-$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HH,3565"$
-$LK,"User",A="FL:::/Kernel/KTask.HC.Z,406",BI=277$
-$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HH,1427"$
-$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HH,1060"$
-$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HH,972"$
+$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HH,3189"$
+$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HH,3572"$
+$LK,"User",A="FL:::/Kernel/KTask.HC.Z,411",BI=277$
+$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HH,1429"$
+$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HH,1061"$
+$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HH,973"$
 $LK,"DirEntryDel",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,17",BI=278$
-$LK,"CLexFile",A="FL:::/Kernel/KernelA.HH,2037"$
-$LK,"OM_CW",A="FL:::/Kernel/KernelA.HH,1872"$
-$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HH,1277"$
-$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HH,520"$
+$LK,"CLexFile",A="FL:::/Kernel/KernelA.HH,2039"$
+$LK,"OM_CW",A="FL:::/Kernel/KernelA.HH,1874"$
+$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HH,1279"$
+$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HH,521"$
 $LK,"ATACmd",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,59",BI=279$
 $LK,"BusyWait",A="FL:::/Kernel/KMisc.HC.Z,136",BI=280$
-$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,1065"$
-$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HH,1035"$
-$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,977"$
-$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,1066"$
-$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,978"$
+$LK,"FILEMASK_DD",A="FL:::/Kernel/KernelA.HH,2294"$
+$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,1066"$
+$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HH,1036"$
+$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HH,978"$
+$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,1067"$
+$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HH,979"$
 $LK,"Str2I64",A="FL:::/Kernel/StrScan.HC.Z,1",BI=281$
 $LK,"Sqrt",A="FL:::/Kernel/KernelB.HH,109"$
 $LK,"DrvMap",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,242",BI=282$
 $LK,"NowDateTimeStruct",A="FL:::/Kernel/KDate.HC.Z,133",BI=283$
 $LK,"YorN",A="FL:::/Kernel/StrB.HC.Z,87",BI=284$
-$LK,"MT_CD",A="FL:::/Kernel/KernelA.HH,2543"$
-$LK,"RFLAGf_VINT",A="FL:::/Kernel/KernelA.HH,322"$
-$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HH,3638"$
-$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HH,1504"$
-$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HH,975"$
+$LK,"MT_CD",A="FL:::/Kernel/KernelA.HH,2546"$
+$LK,"RFLAGf_VINT",A="FL:::/Kernel/KernelA.HH,323"$
+$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HH,3645"$
+$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HH,1506"$
+$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HH,976"$
 $LK,"SYS_CPU_STRUCTS",A="FL:::/Kernel/KStart32.HC.Z,46"$
-$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HH,3190"$
-$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HH,1313"$
-$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HH,1159"$
-$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HH,776"$
+$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HH,3195"$
+$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HH,1315"$
+$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HH,1160"$
+$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HH,777"$
 $LK,"ArcCtrlNew",A="FL:::/Kernel/Compress.HC.Z,221",BI=285$
-$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,3633"$
-$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HH,599"$
-$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HH,1126"$
-$LK,"ATTRf_SEL",A="FL:::/Kernel/KernelA.HH,896"$
-$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HH,1063"$
-$LK,"SSF_NO_TENSION",A="FL:::/Kernel/KernelA.HH,225"$
-$LK,"I32",A="FL:::/Kernel/KernelA.HH,86"$
-$LK,"I16",A="FL:::/Kernel/KernelA.HH,72"$
+$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,3640"$
+$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HH,600"$
+$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HH,1127"$
+$LK,"ATTRf_SEL",A="FL:::/Kernel/KernelA.HH,897"$
+$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HH,1064"$
+$LK,"SSF_NO_TENSION",A="FL:::/Kernel/KernelA.HH,226"$
+$LK,"I32",A="FL:::/Kernel/KernelA.HH,87"$
+$LK,"I16",A="FL:::/Kernel/KernelA.HH,73"$
 $LK,"MemCpy",A="FL:::/Kernel/KernelB.HH,168"$
-$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HH,3742"$
-$LK,"OM_IW",A="FL:::/Kernel/KernelA.HH,1876"$
-$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HH,3727"$
-$LK,"OM_NO",A="FL:::/Kernel/KernelA.HH,1870"$
-$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,413"$
-$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,869"$
+$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HH,3750"$
+$LK,"OM_IW",A="FL:::/Kernel/KernelA.HH,1878"$
+$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HH,3735"$
+$LK,"OM_NO",A="FL:::/Kernel/KernelA.HH,1872"$
+$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,414"$
+$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,870"$
 $LK,"DefineSub",A="FL:::/Kernel/KDefine.HC.Z,60",BI=286$
-$LK,"WHITE",A="FL:::/Kernel/KernelA.HH,2973"$
-$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HH,2266"$
-$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HH,979"$
-$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HH,1093"$
-$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HH,2480"$
-$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HH,1067"$
+$LK,"WHITE",A="FL:::/Kernel/KernelA.HH,2978"$
+$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HH,2268"$
+$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HH,980"$
+$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HH,1094"$
+$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HH,2483"$
+$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HH,1068"$
 $LK,"MPInt",A="FL:::/Kernel/MultiProc.HC.Z,132",BI=287$
-$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HH,3884"$
-$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HH,2095"$
-$LK,"I64",A="FL:::/Kernel/KernelA.HH,104"$
-$LK,"MAX_U32",A="FL:::/Kernel/KernelA.HH,34"$
-$LK,"MAX_U16",A="FL:::/Kernel/KernelA.HH,30"$
-$LK,"PopUpPrint",A="FL:::/Kernel/SrvCmd.HC.Z,398",BI=288$
+$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HH,3892"$
+$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HH,2097"$
+$LK,"I64",A="FL:::/Kernel/KernelA.HH,105"$
+$LK,"MAX_U32",A="FL:::/Kernel/KernelA.HH,35"$
+$LK,"MAX_U16",A="FL:::/Kernel/KernelA.HH,31"$
+$LK,"PopUpPrint",A="FL:::/Kernel/SrvCmd.HC.Z,399",BI=288$
 $LK,"IntEntryGet",A="FL:::/Kernel/KInts.HC.Z,97",BI=289$
-$LK,"CD2",A="FL:::/Kernel/KernelA.HH,149"$
+$LK,"FILEMASK_GR",A="FL:::/Kernel/KernelA.HH,2296"$
+$LK,"CD2",A="FL:::/Kernel/KernelA.HH,150"$
 $LK,"KeyDevInit",A="FL:::/Kernel/KeyDev.HC.Z,201",BI=290$
-$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HH,2145"$
-$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HH,1846"$
-$LK,"CD3",A="FL:::/Kernel/KernelA.HH,155"$
+$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HH,2147"$
+$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HH,1848"$
+$LK,"CD3",A="FL:::/Kernel/KernelA.HH,156"$
 $LK,"SYS_BOOT_BLK",A="FL:::/Kernel/KStart16.HC.Z,24"$
 $LK,"progress4_desc",A="FL:::/Kernel/KernelB.HH,220"$
-$LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HH,310"$
+$LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HH,311"$
 $LK,"DrvFATBlkClean",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,99",BI=291$
-$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HH,2165"$
-$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HH,1450"$
+$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HH,2167"$
+$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HH,1452"$
 $LK,"PCIReadU8",A="FL:::/Kernel/PCIBIOS.HC.Z,163",BI=292$
-$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HH,596"$
-$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HH,576"$
+$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HH,597"$
+$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HH,577"$
 $LK,"ClustersAlloc",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,134",BI=293$
-$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HH,1412"$
-$LK,"MAX_U64",A="FL:::/Kernel/KernelA.HH,38"$
-$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HH,1440"$
-$LK,"CHashAC",A="FL:::/Kernel/KernelA.HH,753"$
-$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HH,1296"$
-$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HH,1260"$
+$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HH,1414"$
+$LK,"MAX_U64",A="FL:::/Kernel/KernelA.HH,39"$
+$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HH,1442"$
+$LK,"CHashAC",A="FL:::/Kernel/KernelA.HH,754"$
+$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HH,1298"$
+$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HH,1262"$
 $LK,"PrintWarn",A="FL:::/Kernel/StrPrint.HC.Z,914",BI=294$
 $LK,"LoadOneImport",A="FL:::/Kernel/KLoad.HC.Z,1",BI=295$
 $LK,"FOpen",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,9",BI=296$
-$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HH,2159"$
-$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HH,1697"$
-$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HH,1452"$
-$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HH,714"$
+$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HH,2161"$
+$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HH,1699"$
+$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HH,1454"$
+$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HH,715"$
 $LK,"sys_var_init_val",A="FL:::/Kernel/KernelB.HH,186"$
-$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HH,2600"$
-$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HH,2574"$
+$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HH,2604"$
+$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HH,2577"$
 $LK,"DrvRep",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,328",BI=297$
 $LK,"BlkDevUnlock",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,15",BI=298$
-$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HH,2823"$
-$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HH,1414"$
+$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HH,2828"$
+$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HH,1416"$
 $LK,"IntMPCrash",A="FL:::/Kernel/MultiProc.HC.Z,380",BI=299$
 $LK,"JobQue",A="FL:::/Kernel/MultiProc.HC.Z,213",BI=300$
 $LK,"TSSBusy",A="FL:::/Kernel/MultiProc.HC.Z,71",BI=301$
 $LK,"DrvTypeSet",A="FL:::/Kernel/BlkDev/DskFmt.HC.Z,1",BI=302$
-$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HH,2610"$
-$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HH,2584"$
-$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HH,1441"$
-$LK,"DirNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,104",BI=303$
-$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HH,1217"$
-$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HH,3508"$
-$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,1109"$
-$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,1023"$
+$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HH,2615"$
+$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HH,2588"$
+$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HH,1443"$
+$LK,"DirNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,108",BI=303$
+$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HH,1218"$
+$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HH,3515"$
+$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,1110"$
+$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HH,1024"$
 $LK,"DrvFATBlkAlloc",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,89",BI=304$
 $LK,"WildMatch",A="FL:::/Kernel/StrA.HC.Z,656",BI=305$
-$LK,"CDC",A="FL:::/Kernel/KernelA.HH,3653"$
-$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HH,3563"$
-$LK,"IsMute",A="FL:::/Kernel/KMisc.HC.Z,218",BI=306$
-$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HH,908"$
+$LK,"CDC",A="FL:::/Kernel/KernelA.HH,3660"$
+$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HH,3570"$
+$LK,"IsMute",A="FL:::/Kernel/KMisc.HC.Z,230",BI=306$
+$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HH,909"$
 $LK,"DVDImageWrite",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,147",BI=307$
 $LK,"MouseRst",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,37",BI=308$
 $LK,"HashTypeNum",A="FL:::/Kernel/KHashB.HC.Z,1",BI=309$
-$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HH,3436"$
-$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2649"$
-$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2639"$
-$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HH,3630"$
-$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HH,2693"$
-$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HH,1436"$
+$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HH,3443"$
+$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2654"$
+$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2644"$
+$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HH,3637"$
+$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HH,2698"$
+$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HH,1438"$
 $LK,"sys_cache_line_width",A="FL:::/Kernel/KernelB.HH,265"$
 $LK,"XchgI64",A="FL:::/Kernel/KernelB.HH,260"$
-$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HH,3562"$
-$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HH,1220"$
-$LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HH,287"$
+$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HH,3569"$
+$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HH,1221"$
+$LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HH,288"$
 $LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,207",BI=310$
-$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HH,2267"$
-$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HH,1142"$
-$LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.HC.Z,490",BI=311$
-$LK,"FUF_JUST_GRA",A="FL:::/Kernel/KernelA.HH,2612"$
-$LK,"FUf_JUST_GRA",A="FL:::/Kernel/KernelA.HH,2586"$
-$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HH,2142"$
-$LK,"CFifoU8",A="FL:::/Kernel/KernelA.HH,170"$
+$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HH,2269"$
+$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HH,1143"$
+$LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.HC.Z,491",BI=311$
+$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HH,2144"$
+$LK,"CFifoU8",A="FL:::/Kernel/KernelA.HH,171"$
 $LK,"ATAReadNativeMax",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,187",BI=312$
-$LK,"BOOT_SRC_ROM",A="FL:::/Kernel/KernelA.HH,3883"$
-$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HH,473"$
-$LK,"SYS_KERNEL_END",A="FL:::/Kernel/KEnd.HC.Z,218"$
+$LK,"BOOT_SRC_ROM",A="FL:::/Kernel/KernelA.HH,3891"$
+$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HH,474"$
+$LK,"SYS_KERNEL_END",A="FL:::/Kernel/KEnd.HC.Z,216"$
 $LK,"TakeExcept",A="FL:::/Kernel/KExcept.HC.Z,42"$
 $LK,"_MALLOC",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,5"$
-$LK,"CHashDefineStr",A="FL:::/Kernel/KernelA.HH,824"$
+$LK,"CHashDefineStr",A="FL:::/Kernel/KernelA.HH,825"$
 $LK,"MemSet",A="FL:::/Kernel/KernelB.HH,170"$
 $LK,"_TRUNC",A="FL:::/Kernel/KMathA.HC.Z,400"$
-$LK,"SPF_SLASH",A="FL:::/Kernel/KernelA.HH,3916"$
-$LK,"HTF_IMM",A="FL:::/Kernel/KernelA.HH,705"$
-$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HH,2597"$
-$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HH,2571"$
-$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HH,1974"$
-$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HH,1972"$
-$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HH,3044"$
+$LK,"HTF_IMM",A="FL:::/Kernel/KernelA.HH,706"$
+$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HH,2601"$
+$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HH,2574"$
+$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HH,1976"$
+$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HH,1974"$
+$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HH,3049"$
 $LK,"ATAIDDrvs",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,205",BI=313$
-$LK,"UserCmdLine",A="FL:::/Kernel/KTask.HC.Z,395",BI=314$
-$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HH,866"$
-$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HH,519"$
-$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HH,489"$
-$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HH,454"$
+$LK,"UserCmdLine",A="FL:::/Kernel/KTask.HC.Z,400",BI=314$
+$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HH,867"$
+$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HH,520"$
+$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HH,490"$
+$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HH,455"$
 $LK,"PCIClassFind",A="FL:::/Kernel/PCIBIOS.HC.Z,265",BI=315$
-$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HH,1350"$
+$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HH,1352"$
 $LK,"ATARep",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,131",BI=316$
 $LK,"KDInputFilterPutS",A="FL:::/Kernel/KeyDev.HC.Z,117",BI=317$
 $LK,"D3SubEqu",A="FL:::/Kernel/KernelB.HH,160"$
-$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HH,2611"$
-$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HH,2585"$
-$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HH,1834"$
+$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HH,2616"$
+$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HH,2589"$
+$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HH,1836"$
 $LK,"InU32",A="FL:::/Kernel/KernelB.HH,76"$
 $LK,"InU16",A="FL:::/Kernel/KernelB.HH,75"$
-$LK,"TK_IF",A="FL:::/Kernel/KernelA.HH,2100"$
-$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HH,921"$
-$LK,"U32",A="FL:::/Kernel/KernelA.HH,78"$
-$LK,"U16",A="FL:::/Kernel/KernelA.HH,66"$
+$LK,"TK_IF",A="FL:::/Kernel/KernelA.HH,2102"$
+$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HH,922"$
+$LK,"U32",A="FL:::/Kernel/KernelA.HH,79"$
+$LK,"U16",A="FL:::/Kernel/KernelA.HH,67"$
 $LK,"_XCHG_I64",A="FL:::/Kernel/KUtils.HC.Z,184"$
 $LK,"ATANop",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,48",BI=318$
-$LK,"TaskDel",A="FL:::/Kernel/KTask.HC.Z,419",BI=319$
+$LK,"TaskDel",A="FL:::/Kernel/KTask.HC.Z,424",BI=319$
 $LK,"LXchgU8",A="FL:::/Kernel/KernelB.HH,256"$
-$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HH,1976"$
+$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HH,1978"$
 $LK,"HasLower",A="FL:::/Kernel/FunSeg.HC.Z,1",BI=320$
 $LK,"_CALL",A="FL:::/Kernel/KUtils.HC.Z,145"$
-$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HH,518"$
-$LK,"MIN_F64",A="FL:::/Kernel/KernelA.HH,46"$
-$LK,"__LINE__",A="FL:::/Kernel/KernelA.HH,2027"$
-$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HH,2616"$
+$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HH,519"$
+$LK,"MIN_F64",A="FL:::/Kernel/KernelA.HH,47"$
+$LK,"__LINE__",A="FL:::/Kernel/KernelA.HH,2029"$
+$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HH,2621"$
 $LK,"KeyDescSet",A="FL:::/Kernel/KeyDev.HC.Z,56",BI=321$
-$LK,"U64",A="FL:::/Kernel/KernelA.HH,94"$
-$LK,"MIN_I32",A="FL:::/Kernel/KernelA.HH,31"$
-$LK,"MIN_I16",A="FL:::/Kernel/KernelA.HH,27"$
+$LK,"U64",A="FL:::/Kernel/KernelA.HH,95"$
+$LK,"MIN_I32",A="FL:::/Kernel/KernelA.HH,32"$
+$LK,"MIN_I16",A="FL:::/Kernel/KernelA.HH,28"$
 $LK,"FSize",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,1",BI=322$
 $LK,"IntEntrySet",A="FL:::/Kernel/KInts.HC.Z,109",BI=323$
 $LK,"Mem32DevIns",A="FL:::/Kernel/Mem/MemPhysical.HC.Z,1",BI=324$
 $LK,"SYS_MP_CNT_INITIAL",A="FL:::/Kernel/KStart32.HC.Z,48"$
-$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HH,2590"$
+$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HH,2594"$
 $LK,"_CEIL",A="FL:::/Kernel/KMathA.HC.Z,441"$
-$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HH,2300"$
-$LK,"TaskEnd",A="FL:::/Kernel/KTask.HC.Z,427",BI=325$
-$LK,"MIN_I64",A="FL:::/Kernel/KernelA.HH,35"$
+$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HH,2303"$
+$LK,"TaskEnd",A="FL:::/Kernel/KTask.HC.Z,432",BI=325$
+$LK,"MIN_I64",A="FL:::/Kernel/KernelA.HH,36"$
 $LK,"TaskCaller",A="FL:::/Kernel/KDbg.HC.Z,75",BI=326$
-$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HH,1743"$
-$LK,"QUE_VECT_U8_CNT",A="FL:::/Kernel/KernelA.HH,161"$
-$LK,"RT_I0",A="FL:::/Kernel/KernelA.HH,1553"$
-$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HH,971"$
-$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HH,2080"$
-$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HH,1889"$
-$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1276"$
-$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HH,1059"$
+$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HH,1745"$
+$LK,"QUE_VECT_U8_CNT",A="FL:::/Kernel/KernelA.HH,162"$
+$LK,"RT_I0",A="FL:::/Kernel/KernelA.HH,1555"$
+$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HH,972"$
+$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HH,2082"$
+$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HH,1891"$
+$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1278"$
+$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HH,1060"$
 $LK,"SYS_GDT",A="FL:::/Kernel/KStart16.HC.Z,39"$
 $LK,"CDate2Dos",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,1",BI=327$
-$LK,"SrvCmdRunOne",A="FL:::/Kernel/SrvCmd.HC.Z,267",BI=328$
-$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HH,2864"$
-$LK,"MDG_REG_DISP_SIB",A="FL:::/Kernel/KernelA.HH,1587"$
+$LK,"SrvCmdRunOne",A="FL:::/Kernel/SrvCmd.HC.Z,268",BI=328$
+$LK,"TMP_BUF_LEN",A="FL:::/Kernel/StrPrint.HC.Z,205"$
+$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HH,2869"$
+$LK,"MDG_REG_DISP_SIB",A="FL:::/Kernel/KernelA.HH,1589"$
 $LK,"RedSeaFilesDel",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,458",BI=329$
 $LK,"XchgU32",A="FL:::/Kernel/KernelB.HH,262"$
 $LK,"XchgU16",A="FL:::/Kernel/KernelB.HH,261"$
-$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HH,2091"$
-$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HH,537"$
-$LK,"TEMP_BUF_LEN",A="FL:::/Kernel/StrPrint.HC.Z,205"$
+$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HH,2093"$
+$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HH,538"$
 $LK,"LastDayOfMon",A="FL:::/Kernel/KDate.HC.Z,82",BI=330$
-$LK,"RT_I8",A="FL:::/Kernel/KernelA.HH,1555"$
-$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HH,3178"$
-$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HH,1819"$
+$LK,"RT_I8",A="FL:::/Kernel/KernelA.HH,1557"$
+$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HH,3183"$
+$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HH,1821"$
 $LK,"_REP_OUT_U16",A="FL:::/Kernel/KUtils.HC.Z,297"$
 $LK,"_REP_OUT_U32",A="FL:::/Kernel/KUtils.HC.Z,286"$
-$LK,"VGAM_TEXT",A="FL:::/Kernel/KernelA.HH,3719"$
-$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HH,1508"$
+$LK,"VGAM_TEXT",A="FL:::/Kernel/KernelA.HH,3727"$
+$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HH,1510"$
 $LK,"FirstDayOfMon",A="FL:::/Kernel/KDate.HC.Z,71",BI=331$
 $LK,"PutChars",A="FL:::/Kernel/KeyDev.HC.Z,20",BI=332$
 $LK,"_BEQU",A="FL:::/Kernel/KUtils.HC.Z,89"$
-$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1064"$
-$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,976"$
-$LK,"ansf",A="FL:::/Kernel/KernelA.HH,3414"$
+$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1065"$
+$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,977"$
+$LK,"ansf",A="FL:::/Kernel/KernelA.HH,3421"$
 $LK,"BlkDevsInitAll",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,216",BI=333$
-$LK,"SysUntry",A="FL:::/Kernel/KExcept.HC.Z,76",BI=334$
-$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HH,1430"$
+$LK,"SysUntry",A="FL:::/Kernel/KExcept.HC.Z,77",BI=334$
+$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HH,1432"$
 $LK,"_MEMCMP",A="FL:::/Kernel/KUtils.HC.Z,70"$
-$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HH,3298"$
-$LK,"OFF",A="FL:::/Kernel/KernelA.HH,22"$
-$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HH,1278"$
+$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HH,3304"$
+$LK,"OFF",A="FL:::/Kernel/KernelA.HH,23"$
+$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HH,1280"$
 $LK,"SYS_BOOT_SRC",A="FL:::/Kernel/KStart16.HC.Z,23"$
-$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2609"$
-$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2583"$
-$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HH,1762"$
+$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2614"$
+$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2587"$
+$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HH,1764"$
 $LK,"TaskExe",A="FL:::/Kernel/SrvCmd.HC.Z,39",BI=335$
-$LK,"ThrowBreak",A="FL:::/Kernel/KExcept.HC.Z,129",BI=336$
+$LK,"ThrowBreak",A="FL:::/Kernel/KExcept.HC.Z,136",BI=336$
 $LK,"FileWrite",A="FL:::/Kernel/BlkDev/DskFile.HC.Z,87",BI=337$
-$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HH,3898"$
-$LK,"RFLAGf_ID",A="FL:::/Kernel/KernelA.HH,324"$
-$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HH,3532"$
-$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HH,3517"$
+$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HH,3906"$
+$LK,"RFLAGf_ID",A="FL:::/Kernel/KernelA.HH,325"$
+$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HH,3539"$
+$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HH,3524"$
 $LK,"ATAWaitNotBUSY",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,24",BI=338$
 $LK,"_XCHG_U16",A="FL:::/Kernel/KUtils.HC.Z,200"$
 $LK,"_XCHG_U32",A="FL:::/Kernel/KUtils.HC.Z,192"$
-$LK,"SUF_TO_LOWER",A="FL:::/Kernel/KernelA.HH,3791"$
-$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HH,1943"$
-$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1418"$
-$LK,"LDF_SILENT",A="FL:::/Kernel/KernelA.HH,369"$
-$LK,"RED",A="FL:::/Kernel/KernelA.HH,2962"$
-$LK,"RT_U0",A="FL:::/Kernel/KernelA.HH,1554"$
-$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HH,593"$
+$LK,"SUF_TO_LOWER",A="FL:::/Kernel/KernelA.HH,3799"$
+$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HH,1945"$
+$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1420"$
+$LK,"LDF_SILENT",A="FL:::/Kernel/KernelA.HH,370"$
+$LK,"RED",A="FL:::/Kernel/KernelA.HH,2967"$
+$LK,"RT_U0",A="FL:::/Kernel/KernelA.HH,1556"$
+$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HH,594"$
 $LK,"SrvCmdDel",A="FL:::/Kernel/SrvCmd.HC.Z,1",BI=339$
-$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HH,3737"$
-$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HH,2051"$
-$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HH,3540"$
+$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HH,3745"$
+$LK,"PRTF_COMMA",A="FL:::/Kernel/KernelA.HH,3922"$
+$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HH,2053"$
+$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HH,3547"$
 $LK,"TASK_CONTEXT_SAVE",A="FL:::/Kernel/Sched.HC.Z,56"$
-$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HH,3525"$
-$LK,"CDirContext",A="FL:::/Kernel/KernelA.HH,2771"$
+$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HH,3532"$
+$LK,"CDirContext",A="FL:::/Kernel/KernelA.HH,2776"$
 $LK,"BootDVDProbeAll",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,29",BI=340$
-$LK,"SysThrowBreak",A="FL:::/Kernel/KExcept.HC.Z,115",BI=341$
+$LK,"SysThrowBreak",A="FL:::/Kernel/KExcept.HC.Z,122",BI=341$
 $LK,"_MEMCPY",A="FL:::/Kernel/KUtils.HC.Z,55"$
 $LK,"_D3_DIST_SQR",A="FL:::/Kernel/KMathA.HC.Z,61"$
-$LK,"ARGT_XMM64",A="FL:::/Kernel/KernelA.HH,1944"$
+$LK,"ARGT_XMM64",A="FL:::/Kernel/KernelA.HH,1946"$
 $LK,"ATAWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,461",BI=342$
-$LK,"RT_U8",A="FL:::/Kernel/KernelA.HH,1556"$
-$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HH,1068"$
-$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HH,980"$
+$LK,"RT_U8",A="FL:::/Kernel/KernelA.HH,1558"$
+$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HH,1069"$
+$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HH,981"$
 $LK,"COPY_BUF_BLKS",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,22"$
 $LK,"FAT32FileWrite",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,813",BI=343$
-$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HH,2453"$
-$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HH,1252"$
-$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HH,1246"$
+$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HH,2456"$
+$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HH,1254"$
+$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HH,1248"$
 $LK,"ChkCodePtr",A="FL:::/Kernel/KDbg.HC.Z,16",BI=344$
 $LK,"SYS_RAM_REBOOT",A="FL:::/Kernel/KStart64.HC.Z,74"$
-$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HH,2478"$
+$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HH,2481"$
 $LK,"FileFind",A="FL:::/Kernel/BlkDev/DskFind.HC.Z,57",BI=345$
 $LK,"SYS_FIND_PCI_SERVICES",A="FL:::/Kernel/PCIBIOS.HC.Z,38"$
-$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HH,3723"$
-$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,2618"$
-$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HH,2093"$
-$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HH,2085"$
-$LK,"MIN_U32",A="FL:::/Kernel/KernelA.HH,33"$
-$LK,"MIN_U16",A="FL:::/Kernel/KernelA.HH,29"$
+$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HH,3731"$
+$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,2623"$
+$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HH,2095"$
+$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HH,2087"$
+$LK,"MIN_U32",A="FL:::/Kernel/KernelA.HH,34"$
+$LK,"MIN_U16",A="FL:::/Kernel/KernelA.HH,30"$
 $LK,"CFileNameTo",A="FL:::/Kernel/BlkDev/DskStrB.HC.Z,1",BI=346$
 $LK,"IntNop",A="FL:::/Kernel/KInts.HC.Z,143",BI=347$
 $LK,"_D3_MUL_EQU",A="FL:::/Kernel/KMathA.HC.Z,273"$
-$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HH,3295"$
-$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1221"$
-$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HH,702"$
-$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HH,672"$
+$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HH,3301"$
+$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1222"$
+$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HH,703"$
+$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HH,673"$
 $LK,"SYS_HASH_SINGLE_TABLE_FIND",A="FL:::/Kernel/KHashA.HC.Z,41"$
-$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HH,1757"$
-$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,2147"$
-$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HH,777"$
+$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HH,1759"$
+$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,2149"$
+$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HH,778"$
 $LK,"TaskMsg",A="FL:::/Kernel/SrvCmd.HC.Z,119",BI=348$
 $LK,"RBlks",A="FL:::/Kernel/BlkDev/DskBlk.HC.Z,31",BI=349$
-$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HH,1014"$
-$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,708"$
+$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HH,1015"$
+$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,709"$
 $LK,"FAT32Cd",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,399",BI=350$
-$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HH,1100"$
-$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,678"$
-$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HH,525"$
+$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HH,1101"$
+$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HH,679"$
+$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HH,526"$
 $LK,"ATAPIWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,535",BI=351$
 $LK,"cnts",A="FL:::/Kernel/KGlbls.HC.Z,20"$
 $LK,"chars_bmp_displayable",A="FL:::/Kernel/StrA.HC.Z,386"$
-$LK,"SYS_HEAP_INIT_FLAG",A="FL::/Temp.DD.Z,1"$
-$LK,"FUF_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,2617"$
+$LK,"SYS_HEAP_INIT_FLAG",A="FL::/Tmp.DD.Z,1"$
+$LK,"FUF_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,2622"$
 $LK,"ScanChar",A="FL:::/Kernel/SerialDev/Message.HC.Z,110",BI=352$
 $LK,"RepInU32",A="FL:::/Kernel/KernelB.HH,84"$
 $LK,"RepInU16",A="FL:::/Kernel/KernelB.HH,82"$
-$LK,"loge_2",A="FL:::/Kernel/KernelA.HH,55"$
-$LK,"MIN_U64",A="FL:::/Kernel/KernelA.HH,37"$
+$LK,"loge_2",A="FL:::/Kernel/KernelA.HH,56"$
+$LK,"MIN_U64",A="FL:::/Kernel/KernelA.HH,38"$
 $LK,"chars_bmp_white_space",A="FL:::/Kernel/StrA.HC.Z,356"$
 $LK,"FAT32FileFind",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,298",BI=353$
-$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HH,3780"$
-$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,3801"$
-$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,2591"$
-$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HH,1314"$
-$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1308"$
-$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1272"$
+$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HH,3788"$
+$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,3809"$
+$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HH,2595"$
+$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HH,1316"$
+$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1310"$
+$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HH,1274"$
 $LK,"DirTreeDel2",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,49",BI=354$
-$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HH,2608"$
-$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HH,2582"$
-$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HH,918"$
-$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HH,917"$
-$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HH,3885"$
+$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HH,2612"$
+$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HH,2585"$
+$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HH,919"$
+$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HH,918"$
+$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HH,3893"$
 $LK,"HashFind",A="FL:::/Kernel/KHashA.HC.Z,255"$
 $LK,"D3Cross",A="FL:::/Kernel/KernelB.HH,148"$
-$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HH,771"$
-$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HH,999"$
+$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HH,772"$
+$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HH,1000"$
 $LK,"_FREE",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,224"$
 $LK,"SrcLineNum",A="FL:::/Kernel/FunSeg.HC.Z,184",BI=355$
 $LK,"ATAPIClose",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,521",BI=356$
-$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HH,933"$
-$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HH,3509"$
-$LK,"InDbg",A="FL:::/Kernel/KMisc.HC.Z,265",BI=357$
-$LK,"Dbg",A="FL:::/Kernel/KDbg.HC.Z,634",BI=358$
+$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HH,934"$
+$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HH,3516"$
+$LK,"Dbg",A="FL:::/Kernel/KDbg.HC.Z,634",BI=357$
 $LK,"Abs",A="FL:::/Kernel/KernelB.HH,96"$
-$LK,"CDATE_YEAR_DAYS",A="FL:::/Kernel/KernelA.HH,182"$
-$LK,"RFLAGf_OVERFLOW",A="FL:::/Kernel/KernelA.HH,315"$
+$LK,"CDATE_YEAR_DAYS",A="FL:::/Kernel/KernelA.HH,183"$
+$LK,"RFLAGf_OVERFLOW",A="FL:::/Kernel/KernelA.HH,316"$
 $LK,"SYS_POW",A="FL:::/Kernel/KMathA.HC.Z,462"$
 $LK,"StrNICmp",A="FL:::/Kernel/StrA.HC.Z,315"$
-$LK,"DOCf_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1312"$
-$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HH,1077"$
-$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HH,989"$
-$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HH,3636"$
-$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HH,966"$
-$LK,"FileAttr",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,234",BI=359$
+$LK,"DOCf_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1314"$
+$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HH,1078"$
+$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HH,990"$
+$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HH,3643"$
+$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HH,967"$
+$LK,"FileAttr",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,238",BI=358$
 $LK,"_MEMSET",A="FL:::/Kernel/KUtils.HC.Z,3"$
-$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HH,2944"$
-$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HH,2078"$
+$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HH,2949"$
+$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HH,2080"$
 $LK,"sys_heap_init_val",A="FL:::/Kernel/KernelB.HH,182"$
-$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HH,1011"$
-$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HH,3730"$
-$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HH,2604"$
-$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HH,2578"$
-$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HH,1097"$
-$LK,"Del",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,82",BI=360$
+$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HH,1012"$
+$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HH,3738"$
+$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HH,2608"$
+$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HH,2581"$
+$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HH,1098"$
+$LK,"Del",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,82",BI=359$
 $LK,"C:/Doc/Que.DD.Z",A="FL:::/Kernel/KernelB.HH,65"$
-$LK,"IDTET_TASK",A="FL:::/Kernel/KernelA.HH,280"$
-$LK,"TaskValidate",A="FL:::/Kernel/KTask.HC.Z,19",BI=361$
-$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HH,482"$
+$LK,"IDTET_TASK",A="FL:::/Kernel/KernelA.HH,281"$
+$LK,"TaskValidate",A="FL:::/Kernel/KTask.HC.Z,19",BI=360$
+$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HH,483"$
 $LK,"fp_set_std_palette",A="FL:::/Kernel/KGlbls.HC.Z,34"$
 $LK,"keydev",A="FL:::/Kernel/KGlbls.HC.Z,26"$
 $LK,"HashBucketFind",A="FL:::/Kernel/KHashA.HC.Z,260"$
-$LK,"OCF_ALIAS",A="FL:::/Kernel/KernelA.HH,1949"$
-$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HH,1623"$
+$LK,"OCF_ALIAS",A="FL:::/Kernel/KernelA.HH,1951"$
+$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HH,1625"$
 $LK,"chars_bmp_alpha_numeric",A="FL:::/Kernel/StrA.HC.Z,330"$
 $LK,"_LOG2",A="FL:::/Kernel/KMathA.HC.Z,603"$
-$LK,"ROPB_COLLISION",A="FL:::/Kernel/KernelA.HH,2935"$
-$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HH,689"$
-$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HH,659"$
-$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HH,2624"$
-$LK,"I_PAGE_FAULT",A="FL:::/Kernel/KernelA.HH,290"$
-$LK,"DrvUnlock",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,14",BI=362$
-$LK,"CProgress",A="FL:::/Kernel/KernelA.HH,3904"$
+$LK,"ROPB_COLLISION",A="FL:::/Kernel/KernelA.HH,2940"$
+$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HH,690"$
+$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HH,660"$
+$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HH,2629"$
+$LK,"I_PAGE_FAULT",A="FL:::/Kernel/KernelA.HH,291"$
+$LK,"DrvUnlock",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,14",BI=361$
+$LK,"CProgress",A="FL:::/Kernel/KernelA.HH,3912"$
 $LK,"Arg",A="FL:::/Kernel/KernelB.HH,122"$
-$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HH,2689"$
+$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HH,2694"$
 $LK,"CallExtNum",A="FL:::/Kernel/KernelB.HH,55"$
-$LK,"DirFile",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,290",BI=363$
-$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HH,965"$
+$LK,"DirFile",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,294",BI=362$
+$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HH,966"$
 $LK,"Btc",A="FL:::/Kernel/KernelB.HH,16"$
-$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HH,2135"$
-$LK,"MDF_RIP_DISP32",A="FL:::/Kernel/KernelA.HH,1585"$
-$LK,"Dir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,105",BI=364$
+$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HH,2137"$
+$LK,"MDF_RIP_DISP32",A="FL:::/Kernel/KernelA.HH,1587"$
+$LK,"Dir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,105",BI=363$
 $LK,"Bsf",A="FL:::/Kernel/KernelB.HH,10"$
-$LK,"MDf_RIP_DISP32",A="FL:::/Kernel/KernelA.HH,1577"$
-$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HH,1625"$
-$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1444"$
-$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HH,904"$
-$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HH,594"$
-$LK,"IPVarsUpdate",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,9",BI=365$
-$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HH,775"$
-$LK,"_R8",A="FL:::/Kernel/KernelA.HH,3425"$
-$LK,"_R9",A="FL:::/Kernel/KernelA.HH,3426"$
-$LK,"FileRead",A="FL:::/Kernel/BlkDev/DskFile.HC.Z,1",BI=366$
-$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1318"$
-$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1281"$
-$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,920"$
+$LK,"MDf_RIP_DISP32",A="FL:::/Kernel/KernelA.HH,1579"$
+$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HH,1627"$
+$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1446"$
+$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HH,905"$
+$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HH,595"$
+$LK,"IPVarsUpdate",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,9",BI=364$
+$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HH,776"$
+$LK,"_R8",A="FL:::/Kernel/KernelA.HH,3432"$
+$LK,"_R9",A="FL:::/Kernel/KernelA.HH,3433"$
+$LK,"FileRead",A="FL:::/Kernel/BlkDev/DskFile.HC.Z,1",BI=365$
+$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1320"$
+$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1283"$
+$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,921"$
 $LK,"_FAR_CALL32",A="FL:::/Kernel/PCIBIOS.HC.Z,69"$
-$LK,"KbdMouseCmdAck",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,65",BI=367$
-$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HH,1984"$
-$LK,"DOCEF_SEL",A="FL:::/Kernel/KernelA.HH,1043"$
-$LK,"IEF_IMM_NOT_REL",A="FL:::/Kernel/KernelA.HH,404"$
-$LK,"FAT32DirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,241",BI=368$
-$LK,"QueCopy",A="FL:::/Kernel/KDataTypes.HC.Z,53",BI=369$
+$LK,"KbdMouseCmdAck",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,65",BI=366$
+$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HH,1986"$
+$LK,"DOCEF_SEL",A="FL:::/Kernel/KernelA.HH,1044"$
+$LK,"IEF_IMM_NOT_REL",A="FL:::/Kernel/KernelA.HH,405"$
+$LK,"FAT32DirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,241",BI=367$
+$LK,"QueCopy",A="FL:::/Kernel/KDataTypes.HC.Z,53",BI=368$
 $LK,"Carry",A="FL:::/Kernel/KernelB.HH,240"$
 $LK,"Cos",A="FL:::/Kernel/KernelB.HH,98"$
-$LK,"Clamp",A="FL:::/Kernel/KMathB.HC.Z,1",BI=370$
-$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HH,2643"$
-$LK,"Name2DirCluster",A="FL:::/Kernel/BlkDev/DskStrB.HC.Z,10",BI=371$
+$LK,"Clamp",A="FL:::/Kernel/KMathB.HC.Z,1",BI=369$
+$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HH,2648"$
+$LK,"Name2DirCluster",A="FL:::/Kernel/BlkDev/DskStrB.HC.Z,10",BI=370$
 $LK,"Bsr",A="FL:::/Kernel/KernelB.HH,12"$
 $LK,"SYS_PROGRESS1_MAX",A="FL:::/Kernel/KStart32.HC.Z,32"$
-$LK,"GR_Z_ALL",A="FL:::/Kernel/KernelA.HH,3615"$
-$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HH,2314"$
-$LK,"Fix",A="FL:::/Kernel/EdLite.HC.Z,337",BI=372$
+$LK,"GR_Z_ALL",A="FL:::/Kernel/KernelA.HH,3622"$
+$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HH,2317"$
+$LK,"Fix",A="FL:::/Kernel/EdLite.HC.Z,337",BI=371$
 $LK,"Btr",A="FL:::/Kernel/KernelB.HH,18"$
 $LK,"_LN",A="FL:::/Kernel/KMathA.HC.Z,614"$
-$LK,"OPTf_WARN_UNUSED_VAR",A="FL:::/Kernel/KernelA.HH,1537"$
-$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1290"$
-$LK,"RFLAGf_CARRY",A="FL:::/Kernel/KernelA.HH,307"$
-$LK,"FAT32FileRead",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,367",BI=373$
-$LK,"DirFilesFlatten",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,136",BI=374$
-$LK,"FileExtDot",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,1",BI=375$
-$LK,"IsDbg",A="FL:::/Kernel/KMisc.HC.Z,270",BI=376$
+$LK,"OPTf_WARN_UNUSED_VAR",A="FL:::/Kernel/KernelA.HH,1539"$
+$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1292"$
+$LK,"RFLAGf_CARRY",A="FL:::/Kernel/KernelA.HH,308"$
+$LK,"FAT32FileRead",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,367",BI=372$
+$LK,"DirFilesFlatten",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,136",BI=373$
+$LK,"FileExtDot",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,1",BI=374$
 $LK,"Bts",A="FL:::/Kernel/KernelB.HH,20"$
-$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HH,2858"$
-$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HH,1017"$
-$LK,"Man",A="FL:::/Kernel/FunSeg.HC.Z,324",BI=377$
-$LK,"Mem512Alloc",A="FL:::/Kernel/Mem/Mem512.HC.Z,11",BI=378$
-$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HH,2092"$
-$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HH,551"$
-$LK,"FilesFind",A="FL:::/Kernel/BlkDev/DskFind.HC.Z,30",BI=379$
+$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HH,2863"$
+$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HH,1018"$
+$LK,"Man",A="FL:::/Kernel/FunSeg.HC.Z,324",BI=375$
+$LK,"Mem512Alloc",A="FL:::/Kernel/Mem/Mem512.HC.Z,11",BI=376$
+$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HH,2094"$
+$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HH,552"$
+$LK,"FilesFind",A="FL:::/Kernel/BlkDev/DskFind.HC.Z,30",BI=377$
 $LK,"_HASH_FIND",A="FL:::/Kernel/KHashA.HC.Z,129"$
 $LK,"MSize",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,384"$
-$LK,"CSysFixedArea",A="FL:::/Kernel/KernelA.HH,3466"$
-$LK,"Fmt",A="FL:::/Kernel/BlkDev/DskFmt.HC.Z,53",BI=380$
-$LK,"ExeCmdLine",A="FL:::/Kernel/KTask.HC.Z,282",BI=381$
+$LK,"CSysFixedArea",A="FL:::/Kernel/KernelA.HH,3473"$
+$LK,"Fmt",A="FL:::/Kernel/BlkDev/DskFmt.HC.Z,53",BI=378$
+$LK,"ExeCmdLine",A="FL:::/Kernel/KTask.HC.Z,287",BI=379$
 $LK,"Log10",A="FL:::/Kernel/KernelB.HH,135"$
-$LK,"FifoI64Flush",A="FL:::/Kernel/KDataTypes.HC.Z,304",BI=382$
+$LK,"FifoI64Flush",A="FL:::/Kernel/KDataTypes.HC.Z,304",BI=380$
 $LK,"InvlPg",A="FL:::/Kernel/KernelB.HH,273"$
 $LK,"CallExtStr",A="FL:::/Kernel/KernelB.HH,46"$
-$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HH,3718"$
-$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HH,3632"$
-$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HH,849"$
-$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HH,3536"$
-$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HH,3107"$
-$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HH,782"$
-$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HH,1112"$
-$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HH,851"$
-$LK,"Drv",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,253",BI=383$
+$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HH,3726"$
+$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HH,3639"$
+$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HH,850"$
+$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HH,3543"$
+$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HH,3112"$
+$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HH,783"$
+$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HH,1113"$
+$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HH,852"$
+$LK,"Drv",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,253",BI=381$
 $LK,"Fclex",A="FL:::/Kernel/KernelB.HH,129"$
-$LK,"MDF_DISP",A="FL:::/Kernel/KernelA.HH,1583"$
-$LK,"MDf_DISP",A="FL:::/Kernel/KernelA.HH,1575"$
-$LK,"Blink",A="FL:::/Kernel/KMisc.HC.Z,130",BI=384$
-$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HH,718"$
-$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,414"$
-$LK,"RFLAGf_V8086",A="FL:::/Kernel/KernelA.HH,320"$
-$LK,"IDTET_TRAP",A="FL:::/Kernel/KernelA.HH,282"$
+$LK,"MDF_DISP",A="FL:::/Kernel/KernelA.HH,1585"$
+$LK,"MDf_DISP",A="FL:::/Kernel/KernelA.HH,1577"$
+$LK,"Blink",A="FL:::/Kernel/KMisc.HC.Z,130",BI=382$
+$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HH,719"$
+$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,415"$
+$LK,"RFLAGf_V8086",A="FL:::/Kernel/KernelA.HH,321"$
+$LK,"IDTET_TRAP",A="FL:::/Kernel/KernelA.HH,283"$
 $LK,"SetRBP",A="FL:::/Kernel/KernelB.HH,248"$
-$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HH,2968"$
-$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HH,1320"$
-$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HH,1283"$
-$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1045"$
-$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1039"$
-$LK,"SysSymImportsResolve",A="FL:::/Kernel/KLoad.HC.Z,55",BI=385$
-$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HH,2527"$
+$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HH,2973"$
+$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HH,1322"$
+$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HH,1285"$
+$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1046"$
+$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HH,1040"$
+$LK,"SysSymImportsResolve",A="FL:::/Kernel/KLoad.HC.Z,55",BI=383$
+$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HH,2530"$
 $LK,"TaskEndNow",A="FL:::/Kernel/Sched.HC.Z,285"$
-$LK,"Max",A="FL:::/Kernel/KMathB.HC.Z,18",BI=386$
+$LK,"Max",A="FL:::/Kernel/KMathB.HC.Z,18",BI=384$
 $LK,"SYS_HASH_FIND",A="FL:::/Kernel/KHashA.HC.Z,89"$
-$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HH,2953"$
-$LK,"ICF_PREV_DELETED",A="FL:::/Kernel/KernelA.HH,1619"$
-$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HH,1433"$
-$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HH,614"$
+$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HH,2958"$
+$LK,"ICF_PREV_DELETED",A="FL:::/Kernel/KernelA.HH,1621"$
+$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HH,1435"$
+$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HH,615"$
 $LK,"ToF64",A="FL:::/Kernel/KernelB.HH,120"$
 $LK,"SYS_PROGRESS2_MAX",A="FL:::/Kernel/KStart32.HC.Z,35"$
-$LK,"CH_SHIFT_SPACE",A="FL:::/Kernel/KernelA.HH,3510"$
-$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HH,2939"$
-$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HH,2780"$
+$LK,"CH_SHIFT_SPACE",A="FL:::/Kernel/KernelA.HH,3517"$
+$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HH,2944"$
+$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HH,2785"$
 $LK,"SetRAX",A="FL:::/Kernel/KernelB.HH,247"$
-$LK,"Min",A="FL:::/Kernel/KMathB.HC.Z,10",BI=387$
+$LK,"Min",A="FL:::/Kernel/KMathB.HC.Z,10",BI=385$
 $LK,"mp_cnt",A="FL:::/Kernel/KernelB.HH,228"$
 $LK,"Exp",A="FL:::/Kernel/KernelB.HH,128"$
-$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HH,3637"$
-$LK,"FAT32FilesFind",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,846",BI=388$
-$LK,"ISO1Cd",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,159",BI=389$
+$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HH,3644"$
+$LK,"FAT32FilesFind",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,846",BI=386$
+$LK,"ISO1Cd",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,159",BI=387$
 $LK,"_HASH_ADD_AFTER",A="FL:::/Kernel/KHashA.HC.Z,191"$
 $LK,"QueInit",A="FL:::/Kernel/KernelB.HH,66"$
-$LK,"SrvTaskCont",A="FL:::/Kernel/KTask.HC.Z,348",BI=390$
-$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2526"$
-$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HH,1598"$
-$LK,"ATAGetDevId",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,163",BI=391$
-$LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.HC.Z,71",BI=392$
-$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HH,942"$
-$LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,23",BI=393$
-$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HH,575"$
-$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,195",BI=394$
-$LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,253",BI=395$
-$LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,165",BI=396$
-$LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,90",BI=397$
+$LK,"SrvTaskCont",A="FL:::/Kernel/KTask.HC.Z,353",BI=388$
+$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HH,2529"$
+$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HH,1600"$
+$LK,"ATAGetDevId",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,163",BI=389$
+$LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.HC.Z,71",BI=390$
+$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HH,943"$
+$LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.HC.Z,23",BI=391$
+$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HH,576"$
+$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,195",BI=392$
+$LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,253",BI=393$
+$LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,165",BI=394$
+$LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.HC.Z,90",BI=395$
 $LK,"SetMSR",A="FL:::/Kernel/KernelB.HH,258"$
 $LK,"ToI64",A="FL:::/Kernel/KernelB.HH,121"$
-$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HH,415"$
-$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,248",BI=398$
-$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HH,1321"$
-$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HH,1284"$
+$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HH,416"$
+$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,248",BI=396$
+$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HH,1323"$
+$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HH,1286"$
 $LK,"sys_heap_limit",A="FL:::/Kernel/KernelB.HH,194"$
-$LK,"FileExtRem",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,10",BI=399$
+$LK,"FileExtRem",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,10",BI=397$
 $LK,"Tan",A="FL:::/Kernel/KernelB.HH,118"$
 $LK,"SYS_PROGRESS3_MAX",A="FL:::/Kernel/KStart32.HC.Z,38"$
-$LK,"SUF_REM_LEADING",A="FL:::/Kernel/KernelA.HH,3786"$
-$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HH,1547"$
-$LK,"Raw",A="FL:::/Kernel/KMisc.HC.Z,243",BI=400$
-$LK,"Msg",A="FL:::/Kernel/SrvCmd.HC.Z,257",BI=401$
-$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,1544"$
-$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,424",BI=402$
+$LK,"SUF_REM_LEADING",A="FL:::/Kernel/KernelA.HH,3794"$
+$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HH,1549"$
+$LK,"Raw",A="FL:::/Kernel/KMisc.HC.Z,255",BI=398$
+$LK,"Msg",A="FL:::/Kernel/SrvCmd.HC.Z,258",BI=399$
+$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HH,1546"$
+$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,424",BI=400$
 $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor_dollar",A="FL:::/Kernel/StrA.HC.Z,368"$
 $LK,"ToBool",A="FL:::/Kernel/KernelB.HH,119"$
-$LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HH,3291"$
-$LK,"IRQMouse",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,13",BI=403$
+$LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HH,3297"$
+$LK,"IRQMouse",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,13",BI=401$
 $LK,"PUT_HEX_U16",A="FL:::/Kernel/StrA.HC.Z,37"$
 $LK,"PUT_HEX_U32",A="FL:::/Kernel/StrA.HC.Z,30"$
-$LK,"ATAPIStartStop",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,144",BI=404$
+$LK,"ATAPIStartStop",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,144",BI=402$
 $LK,"_SIGN",A="FL:::/Kernel/KMathA.HC.Z,347"$
-$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HH,739"$
-$LK,"log10_2",A="FL:::/Kernel/KernelA.HH,54"$
-$LK,"PrintErr",A="FL:::/Kernel/StrPrint.HC.Z,906",BI=405$
-$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HH,2950"$
-$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HH,2642"$
-$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HH,3544"$
-$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HH,3435"$
-$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HH,2652"$
-$LK,"Snd",A="FL:::/Kernel/KMisc.HC.Z,163",BI=406$
-$LK,"GetChar",A="FL:::/Kernel/SerialDev/Message.HC.Z,182",BI=407$
+$LK,"PRTF_NEG_E",A="FL:::/Kernel/KernelA.HH,3929"$
+$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HH,740"$
+$LK,"log10_2",A="FL:::/Kernel/KernelA.HH,55"$
+$LK,"PrintErr",A="FL:::/Kernel/StrPrint.HC.Z,906",BI=403$
+$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HH,2955"$
+$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HH,2647"$
+$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HH,3551"$
+$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HH,3442"$
+$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HH,2657"$
+$LK,"Snd",A="FL:::/Kernel/KMisc.HC.Z,163",BI=404$
+$LK,"GetChar",A="FL:::/Kernel/SerialDev/Message.HC.Z,182",BI=405$
 $LK,"Sin",A="FL:::/Kernel/KernelB.HH,105"$
-$LK,"SPF_PAD_ZERO",A="FL:::/Kernel/KernelA.HH,3911"$
-$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HH,2089"$
+$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HH,2091"$
 $LK,"SYS_PCIBIOS_SERVICE_CALL",A="FL:::/Kernel/PCIBIOS.HC.Z,46"$
-$LK,"Now",A="FL:::/Kernel/KDate.HC.Z,191",BI=408$
+$LK,"Now",A="FL:::/Kernel/KDate.HC.Z,191",BI=406$
 $LK,"Fldcw",A="FL:::/Kernel/KernelB.HH,130"$
-$LK,"TTS_ED_FILENAME",A="FL:::/Kernel/KernelA.HH,3275"$
-$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HH,1455"$
-$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HH,521"$
+$LK,"TTS_ED_FILENAME",A="FL:::/Kernel/KernelA.HH,3280"$
+$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HH,1457"$
+$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HH,522"$
 $LK,"SetRSP",A="FL:::/Kernel/KernelB.HH,250"$
 $LK,"Pop",A="FL:::/Kernel/KernelB.HH,245"$
 $LK,"sys_progresses",A="FL:::/Kernel/KernelB.HH,223"$
-$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HH,3139"$
-$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HH,1764"$
-$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HH,911"$
+$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HH,3144"$
+$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HH,1766"$
+$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HH,912"$
 $LK,"PUT_HEX_U64",A="FL:::/Kernel/StrA.HC.Z,23"$
 $LK,"SYS_KERNEL",A="FL:::/Kernel/KStart16.HC.Z,17"$
-$LK,"RFLAGf_PARITY",A="FL:::/Kernel/KernelA.HH,308"$
+$LK,"RFLAGf_PARITY",A="FL:::/Kernel/KernelA.HH,309"$
 $LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart32.HC.Z,41"$
-$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HH,3790"$
-$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HH,2707"$
-$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HH,2706"$
-$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,158",BI=409$
-$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3541"$
-$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3526"$
-$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3230"$
-$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HH,481"$
-$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HH,745"$
-$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HH,1105"$
-$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HH,1019"$
-$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HH,607"$
-$LK,"ODEF_PAUSED",A="FL:::/Kernel/KernelA.HH,241"$
-$LK,"FATNameXSum",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,157",BI=410$
+$LK,"PRTF_PAD_ZERO",A="FL:::/Kernel/KernelA.HH,3919"$
+$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HH,3798"$
+$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HH,2712"$
+$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HH,2711"$
+$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,158",BI=407$
+$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3548"$
+$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3533"$
+$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HH,3235"$
+$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HH,482"$
+$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HH,746"$
+$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HH,1106"$
+$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HH,1020"$
+$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HH,608"$
+$LK,"ODEF_PAUSED",A="FL:::/Kernel/KernelA.HH,242"$
+$LK,"FATNameXSum",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,157",BI=408$
 $LK,"Pow",A="FL:::/Kernel/KernelB.HH,137"$
 $LK,"sys_boot_patch_table_base",A="FL:::/Kernel/KernelB.HH,39"$
-$LK,"SPF_DOLLAR",A="FL:::/Kernel/KernelA.HH,3915"$
-$LK,"WIF_SELF_BORDER",A="FL:::/Kernel/KernelA.HH,1417"$
-$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HH,1292"$
-$LK,"MStrUtil",A="FL:::/Kernel/StrB.HC.Z,58",BI=411$
+$LK,"WIF_SELF_BORDER",A="FL:::/Kernel/KernelA.HH,1419"$
+$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HH,1294"$
+$LK,"MStrUtil",A="FL:::/Kernel/StrB.HC.Z,58",BI=409$
 $LK,"_D3_CROSS",A="FL:::/Kernel/KMathA.HC.Z,82"$
-$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HH,3734"$
-$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HH,1329"$
+$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HH,3742"$
+$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HH,1331"$
 $LK,"SYS_HEAP_LIMIT",A="FL:::/Kernel/KStart32.HC.Z,7"$
-$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HH,1443"$
+$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HH,1445"$
 $LK,"text",A="FL:::/Kernel/KGlbls.HC.Z,29"$
-$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HH,2262"$
-$LK,"MPrintQ",A="FL:::/Kernel/StrPrint.HC.Z,56",BI=412$
+$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HH,2264"$
+$LK,"MPrintQ",A="FL:::/Kernel/StrPrint.HC.Z,56",BI=410$
 $LK,"MHeapCtrl",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,386"$
-$LK,"CCF_CMD_LINE",A="FL:::/Kernel/KernelA.HH,2127"$
-$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HH,1346"$
-$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HH,598"$
-$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HH,2156"$
-$LK,"DskCacheInvalidate",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,211",BI=413$
-$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HH,951"$
+$LK,"CCF_CMD_LINE",A="FL:::/Kernel/KernelA.HH,2129"$
+$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HH,1348"$
+$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HH,599"$
+$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HH,2158"$
+$LK,"DskCacheInvalidate",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,211",BI=411$
+$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HH,952"$
 $LK,"HashSingleTableFind",A="FL:::/Kernel/KHashA.HC.Z,257"$
 $LK,"sys_data_bp",A="FL:::/Kernel/KernelB.HH,190"$
 $LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart16.HC.Z,36"$
 $LK,"sys_heap_base",A="FL:::/Kernel/KernelB.HH,193"$
 $LK,"_CLAMP_I64",A="FL:::/Kernel/KUtils.HC.Z,121"$
-$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HH,3725"$
-$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HH,2650"$
-$LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.HC.Z,477",BI=414$
-$LK,"Drv2Let",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,153",BI=415$
-$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HH,2938"$
-$LK,"MEM_E820_ENTRY_SIZE",A="FL:::/Kernel/KernelA.HH,357"$
-$LK,"KDRawPutS",A="FL:::/Kernel/KeyDev.HC.Z,97",BI=416$
+$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HH,3733"$
+$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HH,2655"$
+$LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.HC.Z,477",BI=412$
+$LK,"Drv2Let",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,153",BI=413$
+$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HH,2943"$
+$LK,"MEM_E820_ENTRY_SIZE",A="FL:::/Kernel/KernelA.HH,358"$
+$LK,"KDRawPutS",A="FL:::/Kernel/KeyDev.HC.Z,97",BI=414$
 $LK,"Sqr",A="FL:::/Kernel/KernelB.HH,106"$
-$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HH,1783"$
-$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HH,1788"$
-$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1327"$
-$LK,"SrvCmdsHandler",A="FL:::/Kernel/SrvCmd.HC.Z,350",BI=417$
+$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HH,1785"$
+$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HH,1790"$
+$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1329"$
+$LK,"SrvCmdsHandler",A="FL:::/Kernel/SrvCmd.HC.Z,351",BI=415$
 $LK,"progress1_max",A="FL:::/Kernel/KernelB.HH,209"$
-$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HH,2155"$
-$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HH,1781"$
-$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HH,1021"$
-$LK,"FifoU8Flush",A="FL:::/Kernel/KDataTypes.HC.Z,219",BI=418$
+$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HH,2157"$
+$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HH,1783"$
+$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HH,1022"$
+$LK,"FifoU8Flush",A="FL:::/Kernel/KDataTypes.HC.Z,219",BI=416$
+$LK,"InStr",A="FL:::/Kernel/SrvCmd.HC.Z,466",BI=417$
 $LK,"SYS_PROGRESSES",A="FL:::/Kernel/KStart32.HC.Z,31"$
-$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HH,3788"$
-$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HH,2128"$
-$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HH,1107"$
-$LK,"DskCacheHash",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,40",BI=419$
-$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HH,3538"$
-$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HH,1499"$
+$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HH,3796"$
+$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HH,2130"$
+$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HH,1108"$
+$LK,"DskCacheHash",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,40",BI=418$
+$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HH,3545"$
+$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HH,1501"$
 $LK,"fp_doc_put",A="FL:::/Kernel/KGlbls.HC.Z,33"$
-$LK,"DskCacheFind",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,64",BI=420$
-$LK,"IsRaw",A="FL:::/Kernel/KMisc.HC.Z,250",BI=421$
-$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HH,2081"$
-$LK,"ATAPIReadTrackInfo",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,277",BI=422$
-$LK,"CATARep",A="FL:::/Kernel/KernelA.HH,2251"$
-$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HH,1776"$
-$LK,"ATAReadBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,350",BI=423$
+$LK,"DskCacheFind",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,64",BI=419$
+$LK,"IsRaw",A="FL:::/Kernel/KMisc.HC.Z,262",BI=420$
+$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HH,2083"$
+$LK,"ATAPIReadTrackInfo",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,277",BI=421$
+$LK,"CATARep",A="FL:::/Kernel/KernelA.HH,2253"$
+$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HH,1778"$
+$LK,"ATAReadBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,350",BI=422$
 $LK,"D3AddEqu",A="FL:::/Kernel/KernelB.HH,146"$
 $LK,"ToUpper",A="FL:::/Kernel/KernelB.HH,58"$
-$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HH,1779"$
-$LK,"SCR_DONE",A="FL:::/Kernel/SrvCmd.HC.Z,263"$
-$LK,"MDG_MASK",A="FL:::/Kernel/KernelA.HH,1586"$
-$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HH,1519"$
-$LK,"Reboot",A="FL:::/Kernel/KEnd.HC.Z,121",BI=424$
+$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HH,1781"$
+$LK,"SCR_DONE",A="FL:::/Kernel/SrvCmd.HC.Z,264"$
+$LK,"MDG_MASK",A="FL:::/Kernel/KernelA.HH,1588"$
+$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HH,1521"$
+$LK,"Reboot",A="FL:::/Kernel/KEnd.HC.Z,119",BI=423$
 $LK,"acd",A="FL:::/Kernel/KGlbls.HC.Z,17"$
-$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HH,1777"$
-$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HH,853"$
-$LK,"CHashClass",A="FL:::/Kernel/KernelA.HH,833"$
+$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HH,1779"$
+$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HH,854"$
+$LK,"CHashClass",A="FL:::/Kernel/KernelA.HH,834"$
 $LK,"ZERO_BUF_SIZE",A="FL:::/Kernel/BlkDev/DskBlk.HC.Z,1"$
-$LK,"LoadKernel",A="FL:::/Kernel/KLoad.HC.Z,240",BI=425$
-$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HH,3533"$
-$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HH,3518"$
-$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HH,3236"$
-$LK,"ICF_BY_VAL",A="FL:::/Kernel/KernelA.HH,1602"$
-$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HH,1778"$
-$LK,"ATAPIReadBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,413",BI=426$
-$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HH,1785"$
-$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HH,1001"$
-$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HH,584"$
-$LK,"SCR_CONT",A="FL:::/Kernel/SrvCmd.HC.Z,264"$
+$LK,"LoadKernel",A="FL:::/Kernel/KLoad.HC.Z,240",BI=424$
+$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HH,3540"$
+$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HH,3525"$
+$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HH,3241"$
+$LK,"ICF_BY_VAL",A="FL:::/Kernel/KernelA.HH,1604"$
+$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HH,1780"$
+$LK,"ATAPIReadBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,413",BI=425$
+$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HH,1787"$
+$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HH,1002"$
+$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HH,585"$
+$LK,"SCR_CONT",A="FL:::/Kernel/SrvCmd.HC.Z,265"$
 $LK,"progress2_max",A="FL:::/Kernel/KernelB.HH,213"$
-$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HH,1089"$
-$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HH,613"$
-$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HH,470"$
-$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HH,451"$
+$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HH,1090"$
+$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HH,614"$
+$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HH,471"$
+$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HH,452"$
 $LK,"C:/Doc/D3.DD.Z",A="FL:::/Kernel/KernelB.HH,145"$
-$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HH,3794"$
-$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HH,3743"$
-$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HH,1769"$
-$LK,"MAX_I8",A="FL:::/Kernel/KernelA.HH,24"$
-$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,236",BI=427$
-$LK,"Color2Str",A="FL:::/Kernel/KDefine.HC.Z,127",BI=428$
-$LK,"MAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,407",BI=429$
-$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HH,1247"$
-$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HH,486"$
-$LK,"CDATE_BASE_DAY_OF_WEEK",A="FL:::/Kernel/KernelA.HH,184"$
-$LK,"StrFirstOcc",A="FL:::/Kernel/StrA.HC.Z,572",BI=430$
-$LK,"MSG_NULL",A="FL:::/Kernel/KernelA.HH,3225"$
-$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HH,2130"$
-$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HH,1253"$
-$LK,"MPrintq",A="FL:::/Kernel/StrPrint.HC.Z,113",BI=431$
-$LK,"AMAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,418",BI=432$
-$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HH,2887"$
+$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HH,3802"$
+$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HH,3751"$
+$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HH,1771"$
+$LK,"MAX_I8",A="FL:::/Kernel/KernelA.HH,25"$
+$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,236",BI=426$
+$LK,"Color2Str",A="FL:::/Kernel/KDefine.HC.Z,127",BI=427$
+$LK,"MAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,407",BI=428$
+$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HH,1249"$
+$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HH,487"$
+$LK,"CDATE_BASE_DAY_OF_WEEK",A="FL:::/Kernel/KernelA.HH,185"$
+$LK,"StrFirstOcc",A="FL:::/Kernel/StrA.HC.Z,572",BI=429$
+$LK,"MSG_NULL",A="FL:::/Kernel/KernelA.HH,3230"$
+$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HH,2132"$
+$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HH,1255"$
+$LK,"MPrintq",A="FL:::/Kernel/StrPrint.HC.Z,113",BI=430$
+$LK,"AMAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,418",BI=431$
+$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HH,2892"$
 $LK,"sys_font_cyrillic",A="FL:::/Kernel/FontCyrillic.HC.Z,3"$
 $LK,"SYS_FOCUS_TASK",A="FL:::/Kernel/KStart32.HC.Z,45"$
-$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HH,3311"$
+$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HH,3317"$
+$LK,"FUF_JUST_DD",A="FL:::/Kernel/KernelA.HH,2613"$
+$LK,"FUf_JUST_DD",A="FL:::/Kernel/KernelA.HH,2586"$
 $LK,"dbg",A="FL:::/Kernel/KGlbls.HC.Z,21"$
-$LK,"QSort",A="FL:::/Kernel/QSort.HC.Z,85",BI=433$
+$LK,"QSort",A="FL:::/Kernel/QSort.HC.Z,85",BI=432$
 $LK,"OutU32",A="FL:::/Kernel/KernelB.HH,79"$
 $LK,"OutU16",A="FL:::/Kernel/KernelB.HH,78"$
-$LK,"SYS_SEMA_JUST_PUMP_MSGS",A="FL:::/Kernel/KernelA.HH,612"$
-$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HH,496"$
-$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HH,3804"$
-$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HH,3798"$
+$LK,"SYS_SEMA_JUST_PUMP_MSGS",A="FL:::/Kernel/KernelA.HH,613"$
+$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HH,497"$
+$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HH,3812"$
+$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HH,3806"$
 $LK,"HashRemDel",A="FL:::/Kernel/KHashA.HC.Z,264"$
-$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HH,1782"$
+$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HH,1784"$
 $LK,"HashAdd",A="FL:::/Kernel/KHashA.HC.Z,262"$
 $LK,"mp_cnt_lock",A="FL:::/Kernel/KernelB.HH,230"$
-$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HH,778"$
-$LK,"IsSuspended",A="FL:::/Kernel/KTask.HC.Z,71",BI=434$
-$LK,"CAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,395",BI=435$
-$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2638"$
-$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HH,1856"$
-$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2648"$
-$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HH,937"$
-$LK,"WClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,92",BI=436$
-$LK,"RClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,46",BI=437$
+$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HH,779"$
+$LK,"IsSuspended",A="FL:::/Kernel/KTask.HC.Z,76",BI=433$
+$LK,"CAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,395",BI=434$
+$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2643"$
+$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HH,1858"$
+$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HH,2653"$
+$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HH,938"$
+$LK,"WClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,92",BI=435$
+$LK,"RClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,46",BI=436$
 $LK,"sys_neg_pows_lets",A="FL:::/Kernel/StrPrint.HC.Z,201"$
 $LK,"progress3_max",A="FL:::/Kernel/KernelB.HH,217"$
 $LK,"SqrI64",A="FL:::/Kernel/KernelB.HH,107"$
-$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,2644"$
-$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HH,1549"$
-$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HH,1535"$
-$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HH,484"$
+$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,2649"$
+$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HH,1551"$
+$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HH,1537"$
+$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HH,485"$
 $LK,"sys_pos_pows_lets",A="FL:::/Kernel/StrPrint.HC.Z,200"$
-$LK,"QueSize",A="FL:::/Kernel/KDataTypes.HC.Z,76",BI=438$
-$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HH,3744"$
-$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HH,1780"$
-$LK,"CtrlAltDel",A="FL:::/Kernel/KeyDev.HC.Z,128",BI=439$
-$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HH,3094"$
-$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HH,2036"$
-$LK,"OPTf_WARN_HEADER_MISMATCH",A="FL:::/Kernel/KernelA.HH,1540"$
-$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HH,2296"$
-$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HH,1797"$
-$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HH,688"$
-$LK,"I_DIV_ZERO",A="FL:::/Kernel/KernelA.HH,286"$
-$LK,"SrvCtrlInit",A="FL:::/Kernel/SrvCmd.HC.Z,18",BI=440$
-$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HH,968"$
-$LK,"SPF_LEFT_JUSTIFY",A="FL:::/Kernel/KernelA.HH,3912"$
-$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HH,1056"$
-$LK,"HeapCtrlInit",A="FL:::/Kernel/Mem/HeapCtrl.HC.Z,1",BI=441$
+$LK,"QueSize",A="FL:::/Kernel/KDataTypes.HC.Z,76",BI=437$
+$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HH,3752"$
+$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HH,1782"$
+$LK,"CtrlAltDel",A="FL:::/Kernel/KeyDev.HC.Z,128",BI=438$
+$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HH,3099"$
+$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HH,2038"$
+$LK,"OPTf_WARN_HEADER_MISMATCH",A="FL:::/Kernel/KernelA.HH,1542"$
+$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HH,2299"$
+$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HH,1799"$
+$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HH,689"$
+$LK,"I_DIV_ZERO",A="FL:::/Kernel/KernelA.HH,287"$
+$LK,"SrvCtrlInit",A="FL:::/Kernel/SrvCmd.HC.Z,18",BI=439$
+$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HH,969"$
+$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HH,1057"$
+$LK,"HeapCtrlInit",A="FL:::/Kernel/Mem/HeapCtrl.HC.Z,1",BI=440$
 $LK,"progress1",A="FL:::/Kernel/KernelB.HH,206"$
 $LK,"Floor",A="FL:::/Kernel/KernelB.HH,131"$
-$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HH,3045"$
-$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HH,618"$
+$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HH,3050"$
+$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HH,619"$
 $LK,"progress2",A="FL:::/Kernel/KernelB.HH,210"$
 $LK,"_CLAMP_U64",A="FL:::/Kernel/KUtils.HC.Z,133"$
 $LK,"progress3",A="FL:::/Kernel/KernelB.HH,214"$
-$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HH,505"$
-$LK,"MAX_U8",A="FL:::/Kernel/KernelA.HH,26"$
+$LK,"FUF_JUST_GR",A="FL:::/Kernel/KernelA.HH,2617"$
+$LK,"FUf_JUST_GR",A="FL:::/Kernel/KernelA.HH,2590"$
+$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HH,506"$
+$LK,"MAX_U8",A="FL:::/Kernel/KernelA.HH,27"$
 $LK,"RAWDR_COL",A="FL:::/Kernel/KDbg.HC.Z,289"$
 $LK,"progress4",A="FL:::/Kernel/KernelB.HH,218"$
-$LK,"CtrlAltCBSet",A="FL:::/Kernel/KeyDev.HC.Z,178",BI=442$
-$LK,"SysTimerRead",A="FL:::/Kernel/KMisc.HC.Z,61",BI=443$
+$LK,"CtrlAltCBSet",A="FL:::/Kernel/KeyDev.HC.Z,178",BI=441$
+$LK,"SysTimerRead",A="FL:::/Kernel/KMisc.HC.Z,61",BI=442$
 $LK,"dev",A="FL:::/Kernel/KGlbls.HC.Z,22"$
-$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HH,3233"$
-$LK,"FunSegCacheFind",A="FL:::/Kernel/FunSeg.HC.Z,114",BI=444$
-$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HH,694"$
-$LK,"StrFirstRem",A="FL:::/Kernel/StrA.HC.Z,582",BI=445$
-$LK,"SYS_VAR_INIT_VAL",A="FL::/Temp.DD.Z,1"$
-$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HH,3619"$
-$LK,"ans",A="FL:::/Kernel/KernelA.HH,3413"$
-$LK,"ICF_DEL_PREV_INS",A="FL:::/Kernel/KernelA.HH,1618"$
-$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HH,487"$
-$LK,"BptFind",A="FL:::/Kernel/KDbg.HC.Z,344",BI=446$
+$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HH,3238"$
+$LK,"FunSegCacheFind",A="FL:::/Kernel/FunSeg.HC.Z,114",BI=443$
+$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HH,695"$
+$LK,"StrFirstRem",A="FL:::/Kernel/StrA.HC.Z,582",BI=444$
+$LK,"SYS_VAR_INIT_VAL",A="FL::/Tmp.DD.Z,1"$
+$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HH,3626"$
+$LK,"ans",A="FL:::/Kernel/KernelA.HH,3420"$
+$LK,"ICF_DEL_PREV_INS",A="FL:::/Kernel/KernelA.HH,1620"$
+$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HH,488"$
+$LK,"BptFind",A="FL:::/Kernel/KDbg.HC.Z,344",BI=445$
 $LK,"kbd",A="FL:::/Kernel/KGlbls.HC.Z,25"$
 $LK,"progress4_max",A="FL:::/Kernel/KernelB.HH,221"$
-$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,126",BI=447$
-$LK,"HashDel",A="FL:::/Kernel/KHashB.HC.Z,59",BI=448$
-$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HH,3002"$
+$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,126",BI=446$
+$LK,"HashDel",A="FL:::/Kernel/KHashB.HC.Z,59",BI=447$
+$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HH,3007"$
 $LK,"sys_font_std",A="FL:::/Kernel/FontStd.HC.Z,3"$
-$LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.HC.Z,11",BI=449$
-$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HH,3043"$
-$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HH,1579"$
-$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HH,606"$
-$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HH,1607"$
-$LK,"Let2Drv",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,177",BI=450$
+$LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.HC.Z,11",BI=448$
+$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HH,3048"$
+$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HH,1581"$
+$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HH,607"$
+$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HH,1609"$
+$LK,"Let2Drv",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,177",BI=449$
 $LK,"fat_long_name_map",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,183"$
-$LK,"DskCacheInit",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,1",BI=451$
-$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HH,2162"$
-$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HH,1137"$
-$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HH,485"$
-$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HH,474"$
-$LK,"RClusters",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,87",BI=452$
-$LK,"VGAP_IDX",A="FL:::/Kernel/KernelA.HH,3726"$
-$LK,"ISO1CDirFill",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,56",BI=453$
-$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HH,455"$
-$LK,"SCR_EXIT",A="FL:::/Kernel/SrvCmd.HC.Z,265"$
-$LK,"QueDel",A="FL:::/Kernel/KDataTypes.HC.Z,41",BI=454$
-$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HH,1620"$
-$LK,"RedSeaDirNew",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,352",BI=455$
-$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HH,408"$
-$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HH,406"$
-$LK,"CExcept",A="FL:::/Kernel/KernelA.HH,3165"$
+$LK,"DskCacheInit",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,1",BI=450$
+$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HH,2164"$
+$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HH,1138"$
+$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HH,486"$
+$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HH,475"$
+$LK,"RClusters",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,87",BI=451$
+$LK,"VGAP_IDX",A="FL:::/Kernel/KernelA.HH,3734"$
+$LK,"ISO1CDirFill",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,56",BI=452$
+$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HH,456"$
+$LK,"SCR_EXIT",A="FL:::/Kernel/SrvCmd.HC.Z,266"$
+$LK,"QueDel",A="FL:::/Kernel/KDataTypes.HC.Z,41",BI=453$
+$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HH,1622"$
+$LK,"RedSeaDirNew",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,352",BI=454$
+$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HH,409"$
+$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HH,407"$
+$LK,"CExcept",A="FL:::/Kernel/KernelA.HH,3170"$
 $LK,"QueInsRev",A="FL:::/Kernel/KernelB.HH,70"$
-$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HH,619"$
+$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HH,620"$
 $LK,"SYS_EXTERN_TABLE",A="FL:::/Kernel/KStart32.HC.Z,25"$
-$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HH,2614"$
-$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HH,941"$
-$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HH,494"$
+$LK,"PRTF_SLASH",A="FL:::/Kernel/KernelA.HH,3924"$
+$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HH,2619"$
+$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HH,942"$
+$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HH,495"$
 $LK,"chars_bmp_getkey",A="FL:::/Kernel/StrA.HC.Z,371"$
 $LK,"sys_run_level",A="FL:::/Kernel/KernelB.HH,41"$
-$LK,"JIFFY_FREQ",A="FL:::/Kernel/KernelA.HH,550"$
-$LK,"COrder2D3",A="FL:::/Kernel/KernelA.HH,200"$
-$LK,"TaskRegAddr",A="FL:::/Kernel/KDbg.HC.Z,266",BI=456$
-$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HH,3641"$
-$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HH,492"$
+$LK,"JIFFY_FREQ",A="FL:::/Kernel/KernelA.HH,551"$
+$LK,"COrder2D3",A="FL:::/Kernel/KernelA.HH,201"$
+$LK,"TaskRegAddr",A="FL:::/Kernel/KDbg.HC.Z,266",BI=455$
+$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HH,3648"$
+$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HH,493"$
 $LK,"c32_eflags",A="FL:::/Kernel/PCIBIOS.HC.Z,158"$
 $LK,"Pow10",A="FL:::/Kernel/KernelB.HH,138"$
-$LK,"ATA_WRITE_MULTI_EXT",A="FL:::/Kernel/KernelA.HH,2268"$
-$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HH,2154"$
-$LK,"inf",A="FL:::/Kernel/KernelA.HH,47"$
-$LK,"MIN_I8",A="FL:::/Kernel/KernelA.HH,23"$
+$LK,"ATA_WRITE_MULTI_EXT",A="FL:::/Kernel/KernelA.HH,2270"$
+$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HH,2156"$
+$LK,"inf",A="FL:::/Kernel/KernelA.HH,48"$
+$LK,"MIN_I8",A="FL:::/Kernel/KernelA.HH,24"$
 $LK,"sys_macro_head",A="FL:::/Kernel/KGlbls.HC.Z,4"$
-$LK,"XTalk",A="FL:::/Kernel/SrvCmd.HC.Z,446",BI=457$
+$LK,"XTalk",A="FL:::/Kernel/SrvCmd.HC.Z,447",BI=456$
 $LK,"SYS_ENTER_LONG_MODE",A="FL:::/Kernel/KStart64.HC.Z,44"$
-$LK,"DOCEf_LEFT_AUTO",A="FL:::/Kernel/KernelA.HH,1072"$
-$LK,"DOCEF_LEFT_AUTO",A="FL:::/Kernel/KernelA.HH,984"$
-$LK,"eps",A="FL:::/Kernel/KernelA.HH,57"$
-$LK,"LstSub",A="FL:::/Kernel/StrA.HC.Z,402",BI=458$
-$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HH,460"$
-$LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.HC.Z,266",BI=459$
+$LK,"eps",A="FL:::/Kernel/KernelA.HH,58"$
+$LK,"LstSub",A="FL:::/Kernel/StrA.HC.Z,402",BI=457$
+$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HH,461"$
+$LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.HC.Z,271",BI=458$
 $LK,"_HASH_ADD",A="FL:::/Kernel/KHashA.HC.Z,170"$
-$LK,"FRBlks",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,129",BI=460$
-$LK,"__TIME__",A="FL:::/Kernel/KernelA.HH,2026"$
-$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HH,441"$
-$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HH,2588"$
-$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HH,1498"$
-$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HH,894"$
-$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HH,889"$
+$LK,"FRBlks",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,129",BI=459$
+$LK,"__TIME__",A="FL:::/Kernel/KernelA.HH,2028"$
+$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HH,442"$
+$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HH,2592"$
+$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HH,1500"$
+$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HH,895"$
+$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HH,890"$
 $LK,"XchgU8",A="FL:::/Kernel/KernelB.HH,263"$
-$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HH,3274"$
-$LK,"CKernel",A="FL:::/Kernel/KernelA.HH,418"$
-$LK,"IET_IMM_I64",A="FL:::/Kernel/KernelA.HH,403"$
-$LK,"log2_10",A="FL:::/Kernel/KernelA.HH,52"$
-$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HH,2967"$
-$LK,"FAT32AllocClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,456",BI=461$
-$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HH,1078"$
-$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HH,990"$
+$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HH,3279"$
+$LK,"CKernel",A="FL:::/Kernel/KernelA.HH,419"$
+$LK,"IET_IMM_I64",A="FL:::/Kernel/KernelA.HH,404"$
+$LK,"log2_10",A="FL:::/Kernel/KernelA.HH,53"$
+$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HH,2972"$
+$LK,"FAT32AllocClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,456",BI=460$
+$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HH,1079"$
+$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HH,991"$
 $LK,"_CALLEXTNUM",A="FL:::/Kernel/KUtils.HC.Z,362"$
-$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,3546"$
-$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HH,3531"$
-$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HH,3226"$
-$LK,"IDTET_IRQ",A="FL:::/Kernel/KernelA.HH,281"$
-$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HH,2148"$
-$LK,"QueCnt",A="FL:::/Kernel/KDataTypes.HC.Z,65",BI=462$
+$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,3553"$
+$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HH,3538"$
+$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HH,3231"$
+$LK,"IDTET_IRQ",A="FL:::/Kernel/KernelA.HH,282"$
+$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HH,2150"$
+$LK,"QueCnt",A="FL:::/Kernel/KDataTypes.HC.Z,65",BI=461$
 $LK,"chars_bmp_alpha",A="FL:::/Kernel/StrA.HC.Z,325"$
 $LK,"SwapI64",A="FL:::/Kernel/KernelB.HH,111"$
 $LK,"SqrU64",A="FL:::/Kernel/KernelB.HH,108"$
-$LK,"OPTf_NO_BUILTIN_CONST",A="FL:::/Kernel/KernelA.HH,1546"$
-$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HH,712"$
-$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HH,499"$
-$LK,"RFLAGf_IOPL0",A="FL:::/Kernel/KernelA.HH,316"$
-$LK,"IntsInit",A="FL:::/Kernel/KInts.HC.Z,129",BI=463$
+$LK,"OPTf_NO_BUILTIN_CONST",A="FL:::/Kernel/KernelA.HH,1548"$
+$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HH,713"$
+$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HH,500"$
+$LK,"RFLAGf_IOPL0",A="FL:::/Kernel/KernelA.HH,317"$
+$LK,"IntsInit",A="FL:::/Kernel/KInts.HC.Z,129",BI=462$
 $LK,"_XCHG_U8",A="FL:::/Kernel/KUtils.HC.Z,208"$
-$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HH,1006"$
-$LK,"RFLAGf_IOPL1",A="FL:::/Kernel/KernelA.HH,317"$
-$LK,"FAT32FilesDel",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,726",BI=464$
-$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HH,934"$
-$LK,"Bcd2Bin",A="FL:::/Kernel/KDate.HC.Z,123",BI=465$
-$LK,"CAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,434",BI=466$
-$LK,"MAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,423",BI=467$
+$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HH,1007"$
+$LK,"RFLAGf_IOPL1",A="FL:::/Kernel/KernelA.HH,318"$
+$LK,"FAT32FilesDel",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,726",BI=463$
+$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HH,935"$
+$LK,"Bcd2Bin",A="FL:::/Kernel/KDate.HC.Z,123",BI=464$
+$LK,"CAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,434",BI=465$
+$LK,"MAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,423",BI=466$
 $LK,"ext",A="FL:::/Kernel/KernelB.HH,53"$
-$LK,"FUN_SEG_CACHE_SIZE",A="FL:::/Kernel/KernelA.HH,3844"$
-$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,1483"$
-$LK,"RawDm",A="FL:::/Kernel/KDbg.HC.Z,250",BI=468$
-$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HH,1613"$
-$LK,"DskCacheAdd",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,76",BI=469$
-$LK,"MPNMInt",A="FL:::/Kernel/MultiProc.HC.Z,159",BI=470$
+$LK,"FUN_SEG_CACHE_SIZE",A="FL:::/Kernel/KernelA.HH,3852"$
+$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,1485"$
+$LK,"RawDm",A="FL:::/Kernel/KDbg.HC.Z,250",BI=467$
+$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HH,1615"$
+$LK,"DskCacheAdd",A="FL:::/Kernel/BlkDev/DskCache.HC.Z,76",BI=468$
+$LK,"MPNMInt",A="FL:::/Kernel/MultiProc.HC.Z,159",BI=469$
 $LK,"_MSIZE2",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,353"$
-$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HH,2971"$
-$LK,"RawDr",A="FL:::/Kernel/KDbg.HC.Z,291",BI=471$
+$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HH,2976"$
+$LK,"RawDr",A="FL:::/Kernel/KDbg.HC.Z,291",BI=470$
 $LK,"StrICmp",A="FL:::/Kernel/StrA.HC.Z,311"$
-$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HH,2277"$
-$LK,"MIN_U8",A="FL:::/Kernel/KernelA.HH,25"$
-$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HH,1536"$
-$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HH,710"$
-$LK,"DirFilesSort",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,92",BI=472$
-$LK,"HashLstAdd",A="FL:::/Kernel/KHashB.HC.Z,185",BI=473$
-$LK,"ACAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,402",BI=474$
+$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HH,2279"$
+$LK,"MIN_U8",A="FL:::/Kernel/KernelA.HH,26"$
+$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HH,1538"$
+$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HH,711"$
+$LK,"DirFilesSort",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,92",BI=471$
+$LK,"HashLstAdd",A="FL:::/Kernel/KHashB.HC.Z,185",BI=472$
+$LK,"ACAlloc",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,402",BI=473$
 $LK,"SYS_RUN_LEVEL",A="FL:::/Kernel/KStart16.HC.Z,26"$
-$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HH,3539"$
-$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HH,3524"$
-$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,2654"$
-$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HH,2099"$
-$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HH,2094"$
-$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HH,1761"$
-$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HH,1268"$
-$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HH,515"$
+$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HH,3546"$
+$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HH,3531"$
+$LK,"SndRst",A="FL:::/Kernel/KMisc.HC.Z,190",BI=474$
+$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HH,2659"$
+$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HH,2101"$
+$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HH,2096"$
+$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HH,1763"$
+$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HH,1270"$
+$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HH,516"$
 $LK,"Fstcw",A="FL:::/Kernel/KernelB.HH,132"$
-$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3240"$
-$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HH,493"$
+$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3245"$
+$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HH,494"$
 $LK,"C32_EFLAGS",A="FL:::/Kernel/PCIBIOS.HC.Z,64"$
 $LK,"sys_compile_time",A="FL:::/Kernel/KernelB.HH,201"$
 $LK,"_D3_DIV_EQU",A="FL:::/Kernel/KMathA.HC.Z,289"$
 $LK,"_D3_SUB_EQU",A="FL:::/Kernel/KMathA.HC.Z,256"$
-$LK,"TASKf_SUSPENDED",A="FL:::/Kernel/KernelA.HH,3281"$
-$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HH,2596"$
-$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HH,2570"$
-$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HH,1304"$
-$LK,"CHashImport",A="FL:::/Kernel/KernelA.HH,764"$
-$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HH,1687"$
+$LK,"TASKf_SUSPENDED",A="FL:::/Kernel/KernelA.HH,3286"$
+$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HH,2600"$
+$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HH,2573"$
+$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HH,1306"$
+$LK,"CHashImport",A="FL:::/Kernel/KernelA.HH,765"$
+$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HH,1689"$
 $LK,"C32_ADD",A="FL:::/Kernel/PCIBIOS.HC.Z,122"$
-$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HH,2876"$
-$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2856"$
+$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HH,2881"$
+$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2861"$
 $LK,"HeapCtrlDel",A="FL:::/Kernel/Mem/HeapCtrl.HC.Z,15",BI=475$
 $LK,"_CALLEXTSTR",A="FL:::/Kernel/KUtils.HC.Z,392"$
-$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HH,2785"$
-$LK,"BDT_ISO_FILE_READ",A="FL:::/Kernel/KernelA.HH,2632"$
-$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HH,2164"$
-$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HH,2163"$
-$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,1512"$
-$LK,"CSysLimitBase",A="FL:::/Kernel/KernelA.HH,349"$
-$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,2298"$
+$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HH,2790"$
+$LK,"BDT_ISO_FILE_READ",A="FL:::/Kernel/KernelA.HH,2637"$
+$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HH,2166"$
+$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HH,2165"$
+$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,1514"$
+$LK,"CSysLimitBase",A="FL:::/Kernel/KernelA.HH,350"$
+$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,2301"$
 $LK,"QueIns",A="FL:::/Kernel/KernelB.HH,68"$
-$LK,"CGrSym",A="FL:::/Kernel/KernelA.HH,3646"$
-$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HH,2278"$
-$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HH,472"$
-$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HH,453"$
+$LK,"CGrSym",A="FL:::/Kernel/KernelA.HH,3653"$
+$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HH,2280"$
+$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HH,473"$
+$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HH,454"$
 $LK,"snd",A="FL:::/Kernel/KGlbls.HC.Z,28"$
-$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HH,3554"$
-$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HH,2969"$
-$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,2619"$
-$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HH,2153"$
-$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,683"$
-$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,682"$
+$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HH,3561"$
+$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HH,2974"$
+$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,2624"$
+$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HH,2155"$
+$LK,"RECALCt_TO_SCRN",A="FL:::/Kernel/KernelA.HH,1349"$
+$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,684"$
+$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,683"$
 $LK,"FunSegCacheAdd",A="FL:::/Kernel/FunSeg.HC.Z,92",BI=476$
-$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HH,3087"$
-$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HH,2138"$
-$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HH,2530"$
-$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HH,2152"$
+$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HH,3092"$
+$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HH,2140"$
+$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HH,2533"$
+$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HH,2154"$
 $LK,"DirContextDel",A="FL:::/Kernel/BlkDev/DskDirContext.HC.Z,1",BI=477$
 $LK,"StrPrintFlags",A="FL:::/Kernel/StrB.HC.Z,177",BI=478$
-$LK,"TK_IFNDEF",A="FL:::/Kernel/KernelA.HH,2102"$
-$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HH,1692"$
-$LK,"CBinFile",A="FL:::/Kernel/KernelA.HH,372"$
+$LK,"TK_IFNDEF",A="FL:::/Kernel/KernelA.HH,2104"$
+$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HH,1694"$
+$LK,"CBinFile",A="FL:::/Kernel/KernelA.HH,373"$
 $LK,"SpawnQue",A="FL:::/Kernel/MultiProc.HC.Z,248",BI=479$
-$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HH,490"$
-$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HH,3023"$
+$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HH,491"$
+$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HH,3028"$
 $LK,"StrPrintFunSeg",A="FL:::/Kernel/FunSeg.HC.Z,134",BI=480$
-$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HH,2522"$
+$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HH,2525"$
 $LK,"HashVal",A="FL:::/Kernel/KHashB.HC.Z,9",BI=481$
-$LK,"DOCEF_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1025"$
-$LK,"IET_IMM_U32",A="FL:::/Kernel/KernelA.HH,401"$
-$LK,"IET_IMM_U16",A="FL:::/Kernel/KernelA.HH,399"$
+$LK,"DOCEF_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1026"$
+$LK,"IET_IMM_U32",A="FL:::/Kernel/KernelA.HH,402"$
+$LK,"IET_IMM_U16",A="FL:::/Kernel/KernelA.HH,400"$
 $LK,"QueRem",A="FL:::/Kernel/KernelB.HH,72"$
-$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HH,3286"$
-$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HH,2629"$
+$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HH,3292"$
+$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HH,2634"$
 $LK,"FarCall32",A="FL:::/Kernel/PCIBIOS.HC.Z,161"$
-$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HH,3545"$
-$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HH,3530"$
-$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HH,1916"$
-$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HH,1915"$
+$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HH,3552"$
+$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HH,3537"$
+$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HH,1918"$
+$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HH,1917"$
 $LK,"sys_heap_dbg",A="FL:::/Kernel/KernelB.HH,180"$
-$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HH,2605"$
-$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HH,2579"$
-$LK,"DOCEf_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1111"$
+$LK,"PRTF_LEFT_JUSTIFY",A="FL:::/Kernel/KernelA.HH,3920"$
+$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HH,2609"$
+$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HH,2582"$
+$LK,"DOCEf_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HH,1112"$
 $LK,"DVDImageWriteTask",A="FL:::/Kernel/BlkDev/DskCDDVD.HC.Z,117",BI=482$
-$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HH,2965"$
+$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HH,2970"$
 $LK,"CoreAPSethInit",A="FL:::/Kernel/MultiProc.HC.Z,276",BI=483$
 $LK,"IRQKbd",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,411",BI=484$
 $LK,"QueVectU8Del",A="FL:::/Kernel/KDataTypes.HC.Z,132",BI=485$
 $LK,"SwapU32",A="FL:::/Kernel/KernelB.HH,115"$
 $LK,"SwapU16",A="FL:::/Kernel/KernelB.HH,113"$
-$LK,"ARf_MESH_ED",A="FL:::/Kernel/KernelA.HH,3897"$
-$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HH,1813"$
-$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,653"$
-$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,652"$
+$LK,"ARf_MESH_ED",A="FL:::/Kernel/KernelA.HH,3905"$
+$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HH,1815"$
+$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,654"$
+$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HH,653"$
 $LK,"C32_EDI",A="FL:::/Kernel/PCIBIOS.HC.Z,63"$
 $LK,"pow10_I64",A="FL:::/Kernel/KGlbls.HC.Z,15"$
 $LK,"sys_num_spawned_tasks",A="FL:::/Kernel/KGlbls.HC.Z,9"$
-$LK,"LAPIC_LVT_LINT0",A="FL:::/Kernel/KernelA.HH,501"$
+$LK,"LAPIC_LVT_LINT0",A="FL:::/Kernel/KernelA.HH,502"$
 $LK,"Cluster2Blk",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,32",BI=486$
 $LK,"ArcFinishCompression",A="FL:::/Kernel/Compress.HC.Z,155",BI=487$
-$LK,"LAPIC_LVT_LINT1",A="FL:::/Kernel/KernelA.HH,502"$
+$LK,"LAPIC_LVT_LINT1",A="FL:::/Kernel/KernelA.HH,503"$
 $LK,"sys_winmgr_task",A="FL:::/Kernel/KGlbls.HC.Z,11"$
-$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HH,3558"$
+$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HH,3565"$
 $LK,"SYS_RAM_REBOOT_END",A="FL:::/Kernel/KStart64.HC.Z,99"$
-$LK,"REG_R8",A="FL:::/Kernel/KernelA.HH,1784"$
-$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HH,1693"$
-$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HH,1518"$
-$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HH,744"$
-$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HH,1917"$
-$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HH,1263"$
-$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HH,568"$
+$LK,"REG_R8",A="FL:::/Kernel/KernelA.HH,1786"$
+$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HH,1695"$
+$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HH,1520"$
+$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HH,745"$
+$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HH,1919"$
+$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HH,1265"$
+$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HH,569"$
 $LK,"_SAVE_EXCEPT_REGS",A="FL:::/Kernel/KExcept.HC.Z,26"$
-$LK,"MDf_IMM",A="FL:::/Kernel/KernelA.HH,1573"$
-$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HH,1299"$
+$LK,"MDf_IMM",A="FL:::/Kernel/KernelA.HH,1575"$
+$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HH,1301"$
 $LK,"RoundI64",A="FL:::/Kernel/KMathB.HC.Z,47",BI=488$
-$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HH,3836"$
-$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HH,578"$
+$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HH,3844"$
+$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HH,579"$
 $LK,"DrvSerialNum",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,279",BI=489$
 $LK,"Fstsw",A="FL:::/Kernel/KernelB.HH,133"$
-$LK,"TASKf_TASK_LOCK",A="FL:::/Kernel/KernelA.HH,3279"$
-$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HH,2631"$
-$LK,"RFLAGf_RESUME",A="FL:::/Kernel/KernelA.HH,319"$
+$LK,"TASKf_TASK_LOCK",A="FL:::/Kernel/KernelA.HH,3284"$
+$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HH,2636"$
+$LK,"RFLAGf_RESUME",A="FL:::/Kernel/KernelA.HH,320"$
 $LK,"C32_EAX",A="FL:::/Kernel/PCIBIOS.HC.Z,58"$
 $LK,"PortNop",A="FL:::/Kernel/KMisc.HC.Z,1",BI=490$
 $LK,"StrNCmp",A="FL:::/Kernel/StrA.HC.Z,313"$
-$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HH,2602"$
-$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HH,2576"$
-$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HH,2369"$
-$LK,"SYS_HEAP_INIT_VAL",A="FL::/Temp.DD.Z,1"$
-$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HH,2421"$
+$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HH,2606"$
+$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HH,2579"$
+$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HH,2372"$
+$LK,"SYS_HEAP_INIT_VAL",A="FL::/Tmp.DD.Z,1"$
+$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HH,2424"$
 $LK,"C32_EBX",A="FL:::/Kernel/PCIBIOS.HC.Z,59"$
-$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HH,2144"$
-$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HH,2035"$
-$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HH,1517"$
-$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HH,1506"$
+$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HH,2146"$
+$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HH,2037"$
+$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HH,1519"$
+$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HH,1508"$
 $LK,"C32_ECX",A="FL:::/Kernel/PCIBIOS.HC.Z,60"$
 $LK,"FifoU8Peek",A="FL:::/Kernel/KDataTypes.HC.Z,205",BI=491$
 $LK,"C32_EDX",A="FL:::/Kernel/PCIBIOS.HC.Z,61"$
 $LK,"LoadPass1",A="FL:::/Kernel/KLoad.HC.Z,67",BI=492$
 $LK,"LoadPass2",A="FL:::/Kernel/KLoad.HC.Z,154",BI=493$
-$LK,"ARf_MANAGE_SLIDER",A="FL:::/Kernel/KernelA.HH,3899"$
-$LK,"CSndData",A="FL:::/Kernel/KernelA.HH,3829"$
-$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HH,3566"$
-$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HH,1760"$
-$LK,"SPF_AUX_FMT_NUM",A="FL:::/Kernel/KernelA.HH,3918"$
-$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HH,3228"$
-$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HH,603"$
+$LK,"ARf_MANAGE_SLIDER",A="FL:::/Kernel/KernelA.HH,3907"$
+$LK,"CSndData",A="FL:::/Kernel/KernelA.HH,3837"$
+$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HH,3573"$
+$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HH,1762"$
+$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HH,3233"$
+$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HH,604"$
 $LK,"TimeStampFreqCal",A="FL:::/Kernel/KMisc.HC.Z,85",BI=494$
 $LK,"QueVectU8Get",A="FL:::/Kernel/KDataTypes.HC.Z,140",BI=495$
-$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HH,1261"$
-$LK,"PostMsg",A="FL:::/Kernel/SrvCmd.HC.Z,240",BI=496$
-$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HH,3193"$
-$LK,"MDf_REG",A="FL:::/Kernel/KernelA.HH,1574"$
+$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HH,1263"$
+$LK,"PostMsg",A="FL:::/Kernel/SrvCmd.HC.Z,241",BI=496$
+$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HH,3198"$
+$LK,"MDf_REG",A="FL:::/Kernel/KernelA.HH,1576"$
 $LK,"ATAPISeek",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,131",BI=497$
 $LK,"MPrintDate",A="FL:::/Kernel/StrPrint.HC.Z,49",BI=498$
 $LK,"_BIT_FIELD_EXT_U32",A="FL:::/Kernel/KUtils.HC.Z,167"$
-$LK,"SC_F10",A="FL:::/Kernel/KernelA.HH,3580"$
-$LK,"SC_F11",A="FL:::/Kernel/KernelA.HH,3581"$
-$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HH,609"$
-$LK,"Silent",A="FL:::/Kernel/KMisc.HC.Z,223",BI=499$
-$LK,"SC_F12",A="FL:::/Kernel/KernelA.HH,3582"$
-$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HH,1424"$
-$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HH,2151"$
-$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HH,2133"$
+$LK,"SC_F10",A="FL:::/Kernel/KernelA.HH,3587"$
+$LK,"SC_F11",A="FL:::/Kernel/KernelA.HH,3588"$
+$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HH,610"$
+$LK,"Silent",A="FL:::/Kernel/KMisc.HC.Z,235",BI=499$
+$LK,"SC_F12",A="FL:::/Kernel/KernelA.HH,3589"$
+$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HH,1426"$
+$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HH,2153"$
+$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HH,2135"$
 $LK,"DrvMakeFreeSlot",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,38",BI=500$
 $LK,"HashStr",A="FL:::/Kernel/KHashA.HC.Z,254"$
-$LK,"CHashExport",A="FL:::/Kernel/KernelA.HH,759"$
+$LK,"CHashExport",A="FL:::/Kernel/KernelA.HH,760"$
 $LK,"FifoU8Del",A="FL:::/Kernel/KDataTypes.HC.Z,167",BI=501$
 $LK,"DrvIsWritable",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,199",BI=502$
-$LK,"MDf_SIB",A="FL:::/Kernel/KernelA.HH,1576"$
+$LK,"MDf_SIB",A="FL:::/Kernel/KernelA.HH,1578"$
 $LK,"chars_bmp_printable",A="FL:::/Kernel/StrA.HC.Z,381"$
 $LK,"FWBlks",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,181",BI=503$
-$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HH,468"$
-$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HH,449"$
+$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HH,469"$
+$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HH,450"$
 $LK,"SYS_INIT_PAGE_TABLES",A="FL:::/Kernel/Mem/PageTables.HC.Z,6"$
-$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HH,3303"$
-$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HH,2987"$
+$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HH,3309"$
+$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HH,2992"$
 $LK,"C32_ESI",A="FL:::/Kernel/PCIBIOS.HC.Z,62"$
 $LK,"BlkPoolsInit",A="FL:::/Kernel/Mem/BlkPool.HC.Z,29",BI=504$
 $LK,"SYS_DATA_BP",A="FL:::/Kernel/KStart32.HC.Z,28"$
-$LK,"VGAP_PALETTE_DATA",A="FL:::/Kernel/KernelA.HH,3731"$
-$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HH,2282"$
-$LK,"DOCET_SEL",A="FL:::/Kernel/KernelA.HH,949"$
+$LK,"VGAP_PALETTE_DATA",A="FL:::/Kernel/KernelA.HH,3739"$
+$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HH,2284"$
+$LK,"DOCET_SEL",A="FL:::/Kernel/KernelA.HH,950"$
 $LK,"sys_code_bp",A="FL:::/Kernel/KernelB.HH,189"$
 $LK,"RepOutU32",A="FL:::/Kernel/KernelB.HH,90"$
 $LK,"RepOutU16",A="FL:::/Kernel/KernelB.HH,88"$
-$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HH,2071"$
-$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HH,1434"$
-$LK,"REGT_NONE",A="FL:::/Kernel/KernelA.HH,738"$
-$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HH,3896"$
-$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HH,1057"$
-$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HH,969"$
+$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HH,2073"$
+$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HH,1436"$
+$LK,"REGT_NONE",A="FL:::/Kernel/KernelA.HH,739"$
+$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HH,3904"$
+$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HH,1058"$
+$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HH,970"$
 $LK,"NORMAL_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,3"$
 $LK,"LinkedLstSize",A="FL:::/Kernel/KDataTypes.HC.Z,31",BI=505$
-$LK,"SSF_NO_COMPRESSION",A="FL:::/Kernel/KernelA.HH,224"$
-$LK,"DirContextNew",A="FL:::/Kernel/BlkDev/DskDirContext.HC.Z,21",BI=506$
+$LK,"SSF_NO_COMPRESSION",A="FL:::/Kernel/KernelA.HH,225"$
+$LK,"DirContextNew",A="FL:::/Kernel/BlkDev/DskDirContext.HC.Z,23",BI=506$
 $LK,"_SET_MSR",A="FL:::/Kernel/KUtils.HC.Z,458"$
-$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HH,2904"$
-$LK,"SPF_QUESTION",A="FL:::/Kernel/KernelA.HH,3917"$
-$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HH,1511"$
+$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HH,2909"$
+$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HH,1513"$
 $LK,"SetRFlags",A="FL:::/Kernel/KernelB.HH,249"$
 $LK,"GetRFlags",A="FL:::/Kernel/KernelB.HH,243"$
-$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HH,973"$
-$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HH,3229"$
-$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HH,3189"$
-$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HH,1332"$
-$LK,"CallStkGrow",A="FL:::/Kernel/KTask.HC.Z,90",BI=507$
-$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HH,2279"$
-$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HH,1061"$
-$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HH,469"$
+$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HH,974"$
+$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HH,3234"$
+$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HH,3194"$
+$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HH,1334"$
+$LK,"CallStkGrow",A="FL:::/Kernel/KTask.HC.Z,95",BI=507$
+$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HH,2281"$
+$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HH,1062"$
+$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HH,470"$
 $LK,"chars_bmp_macro",A="FL:::/Kernel/StrA.HC.Z,376"$
 $LK,"OutU8",A="FL:::/Kernel/KernelB.HH,80"$
-$LK,"DCF_ALIAS",A="FL:::/Kernel/KernelA.HH,3634"$
+$LK,"PRTF_QUESTION",A="FL:::/Kernel/KernelA.HH,3925"$
+$LK,"DCF_ALIAS",A="FL:::/Kernel/KernelA.HH,3641"$
 $LK,"CoreAPSethTask",A="FL:::/Kernel/MultiProc.HC.Z,194",BI=508$
-$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HH,848"$
-$LK,"REGG_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HH,1795"$
-$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HH,1258"$
+$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HH,849"$
+$LK,"REGG_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HH,1797"$
+$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HH,1260"$
 $LK,"RawPutChar",A="FL:::/Kernel/Display.HC.Z,1",BI=509$
 $LK,"FifoU8Cnt",A="FL:::/Kernel/KDataTypes.HC.Z,227",BI=510$
-$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HH,1294"$
-$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HH,3745"$
-$LK,"BDT_ISO_FILE_WRITE",A="FL:::/Kernel/KernelA.HH,2633"$
-$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,1798"$
-$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HH,1302"$
-$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HH,1266"$
-$LK,"CHashTable",A="FL:::/Kernel/KernelA.HH,642"$
+$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HH,1296"$
+$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HH,3753"$
+$LK,"BDT_ISO_FILE_WRITE",A="FL:::/Kernel/KernelA.HH,2638"$
+$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HH,1800"$
+$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HH,1304"$
+$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HH,1268"$
+$LK,"CHashTable",A="FL:::/Kernel/KernelA.HH,643"$
 $LK,"QueVectU8New",A="FL:::/Kernel/KDataTypes.HC.Z,87",BI=511$
-$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HH,2886"$
-$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HH,2630"$
-$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HH,1696"$
-$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HH,1610"$
-$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HH,1297"$
-$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HH,788"$
-$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HH,553"$
+$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HH,2891"$
+$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HH,2635"$
+$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HH,1698"$
+$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HH,1612"$
+$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HH,1299"$
+$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HH,789"$
+$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HH,554"$
 $LK,"SET_FS_BASE",A="FL:::/Kernel/KUtils.HC.Z,445"$
-$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HH,2484"$
+$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HH,2487"$
 $LK,"PutHex",A="FL:::/Kernel/StrA.HC.Z,12",BI=512$
-$LK,"PopUp",A="FL:::/Kernel/SrvCmd.HC.Z,377",BI=513$
-$LK,"SCF_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3542"$
-$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3527"$
-$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3234"$
-$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HH,3191"$
-$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HH,1288"$
-$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HH,514"$
-$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HH,1325"$
+$LK,"PopUp",A="FL:::/Kernel/SrvCmd.HC.Z,378",BI=513$
+$LK,"SCF_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3549"$
+$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3534"$
+$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HH,3239"$
+$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HH,3196"$
+$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HH,1290"$
+$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HH,515"$
+$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HH,1327"$
 $LK,"COREAP_16BIT_INIT_END",A="FL:::/Kernel/MultiProc.HC.Z,27"$
-$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HH,3534"$
-$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HH,3519"$
-$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HH,1409"$
+$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HH,3541"$
+$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HH,3526"$
+$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HH,1411"$
 $LK,"StrLastOcc",A="FL:::/Kernel/StrA.HC.Z,599",BI=514$
-$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HH,1438"$
+$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HH,1440"$
 $LK,"FClose",A="FL:::/Kernel/BlkDev/DskCFile.HC.Z,73",BI=515$
-$LK,"MDf_STK",A="FL:::/Kernel/KernelA.HH,1572"$
-$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,1958"$
-$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,1689"$
+$LK,"MDf_STK",A="FL:::/Kernel/KernelA.HH,1574"$
+$LK,"PRTF_AUX_FMT_NUM",A="FL:::/Kernel/KernelA.HH,3926"$
+$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,1960"$
+$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,1691"$
 $LK,"mon_start_days1",A="FL:::/Kernel/KDate.HC.Z,3"$
-$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,706"$
+$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,707"$
 $LK,"mon_start_days2",A="FL:::/Kernel/KDate.HC.Z,5"$
-$LK,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HH,3606"$
-$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HH,3179"$
-$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,676"$
-$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HH,583"$
-$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HH,2281"$
+$LK,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HH,3613"$
+$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HH,3184"$
+$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HH,677"$
+$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HH,584"$
+$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HH,2283"$
 $LK,"MemPagePresentMark",A="FL:::/Kernel/Mem/PageTables.HC.Z,143",BI=516$
-$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HH,1612"$
+$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HH,1614"$
 $LK,"Sleep",A="FL:::/Kernel/KMisc.HC.Z,155",BI=517$
 $LK,"RedSeaMkDir",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,604",BI=518$
 $LK,"PutKey",A="FL:::/Kernel/KeyDev.HC.Z,1",BI=519$
 $LK,"_HASH_STR",A="FL:::/Kernel/KHashA.HC.Z,120"$
-$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HH,2572"$
+$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HH,2575"$
 $LK,"sys_macro_task",A="FL:::/Kernel/KGlbls.HC.Z,5"$
-$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HH,3771"$
-$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HH,1950"$
+$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HH,3779"$
+$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HH,1952"$
 $LK,"FifoU8Ins",A="FL:::/Kernel/KDataTypes.HC.Z,173",BI=520$
-$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HH,3070"$
+$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HH,3075"$
 $LK,"FATFromName",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,168",BI=521$
-$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HH,1973"$
-$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HH,1971"$
-$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HH,3583"$
-$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HH,2957"$
-$LK,"XTalkStrWait",A="FL:::/Kernel/SrvCmd.HC.Z,497",BI=522$
-$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HH,3753"$
-$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HH,3556"$
-$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HH,2534"$
-$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HH,2286"$
-$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HH,1593"$
-$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HH,1351"$
-$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HH,1141"$
-$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HH,850"$
+$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HH,1975"$
+$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HH,1973"$
+$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HH,3590"$
+$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HH,2962"$
+$LK,"XTalkStrWait",A="FL:::/Kernel/SrvCmd.HC.Z,498",BI=522$
+$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HH,3761"$
+$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HH,3563"$
+$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HH,2537"$
+$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HH,2288"$
+$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HH,1595"$
+$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HH,1353"$
+$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HH,1142"$
+$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HH,851"$
 $LK,"EdLiteFileLine",A="FL:::/Kernel/EdLite.HC.Z,316",BI=523$
 $LK,"FifoU8New",A="FL:::/Kernel/KDataTypes.HC.Z,155",BI=524$
-$LK,"SC_HOME",A="FL:::/Kernel/KernelA.HH,3567"$
+$LK,"SC_HOME",A="FL:::/Kernel/KernelA.HH,3574"$
+$LK,"SYS_SEMA_DBG_MODE",A="FL:::/Kernel/KernelA.HH,598"$
 $LK,"ATAPIWritePktWord",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,106",BI=525$
 $LK,"FilesFindMatch",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,40",BI=526$
 $LK,"BlkDevsRelease",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,109",BI=527$
-$LK,"DOC_COLOR_LINK",A="FL:::/Kernel/KernelA.HH,1136"$
-$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HH,1975"$
-$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HH,686"$
-$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HH,656"$
-$LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,217",BI=528$
-$LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HH,395"$
+$LK,"DOC_COLOR_LINK",A="FL:::/Kernel/KernelA.HH,1137"$
+$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HH,1977"$
+$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HH,687"$
+$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HH,657"$
+$LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DskStrA.HC.Z,221",BI=528$
+$LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HH,396"$
 $LK,"FifoU8Rem",A="FL:::/Kernel/KDataTypes.HC.Z,190",BI=529$
 $LK,"StrLastRem",A="FL:::/Kernel/StrA.HC.Z,609",BI=530$
 $LK,"RedSeaDrvInit",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,58",BI=531$
 $LK,"BlkDevAdd",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,27",BI=532$
-$LK,"REGG_CLOBBERED",A="FL:::/Kernel/KernelA.HH,1791"$
-$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HH,2949"$
+$LK,"REGG_CLOBBERED",A="FL:::/Kernel/KernelA.HH,1793"$
+$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HH,2954"$
 $LK,"DirLongNameFill",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,199",BI=533$
 $LK,"QueVectU8Put",A="FL:::/Kernel/KDataTypes.HC.Z,96",BI=534$
 $LK,"StrFind",A="FL:::/Kernel/StrA.HC.Z,624",BI=535$
-$LK,"CMemRange",A="FL:::/Kernel/KernelA.HH,2868"$
-$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HH,1449"$
+$LK,"CMemRange",A="FL:::/Kernel/KernelA.HH,2873"$
+$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HH,1451"$
 $LK,"C32_RSP",A="FL:::/Kernel/PCIBIOS.HC.Z,66"$
 $LK,"OutStr",A="FL:::/Kernel/StrPrint.HC.Z,20",BI=536$
-$LK,"DOCEf_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HH,1094"$
-$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HH,995"$
-$LK,"TimersInit",A="FL:::/Kernel/KEnd.HC.Z,88",BI=537$
-$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HH,2280"$
-$LK,"__CMD_LINE__",A="FL:::/Kernel/KernelA.HH,2029"$
-$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HH,1411"$
-$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HH,1083"$
-$LK,"IET_IMM_U8",A="FL:::/Kernel/KernelA.HH,397"$
-$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HH,3557"$
-$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HH,1914"$
-$LK,"REGG_STK_TEMP",A="FL:::/Kernel/KernelA.HH,1793"$
-$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HH,1439"$
-$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HH,580"$
+$LK,"DOCEf_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HH,1095"$
+$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HH,996"$
+$LK,"TimersInit",A="FL:::/Kernel/KEnd.HC.Z,86",BI=537$
+$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HH,2282"$
+$LK,"__CMD_LINE__",A="FL:::/Kernel/KernelA.HH,2031"$
+$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HH,1413"$
+$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HH,1084"$
+$LK,"IET_IMM_U8",A="FL:::/Kernel/KernelA.HH,398"$
+$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HH,3564"$
+$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HH,1916"$
+$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HH,1441"$
+$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HH,581"$
 $LK,"DefineMatch",A="FL:::/Kernel/KDefine.HC.Z,85",BI=538$
-$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HH,2114"$
-$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HH,464"$
+$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HH,2116"$
+$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HH,465"$
 $LK,"WZeroBlks",A="FL:::/Kernel/BlkDev/DskBlk.HC.Z,2",BI=539$
 $LK,"ATAPISetMaxSpeed",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,118",BI=540$
 $LK,"StkRep",A="FL:::/Kernel/KDbg.HC.Z,104",BI=541$
 $LK,"SwapU8",A="FL:::/Kernel/KernelB.HH,117"$
-$LK,"FUN_SEG_CACHE_STR_LEN",A="FL:::/Kernel/KernelA.HH,3852"$
-$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HH,3623"$
-$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HH,2784"$
-$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HH,3272"$
-$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HH,2481"$
+$LK,"FUN_SEG_CACHE_STR_LEN",A="FL:::/Kernel/KernelA.HH,3860"$
+$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HH,3630"$
+$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HH,2789"$
+$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HH,3277"$
+$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HH,2484"$
 $LK,"SaveExceptRegs",A="FL:::/Kernel/KExcept.HC.Z,43"$
-$LK,"SC_END",A="FL:::/Kernel/KernelA.HH,3568"$
-$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HH,1990"$
+$LK,"SC_END",A="FL:::/Kernel/KernelA.HH,3575"$
+$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HH,1992"$
 $LK,"ArcExpandBuf",A="FL:::/Kernel/Compress.HC.Z,165",BI=542$
-$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HH,2577"$
-$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HH,1310"$
-$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HH,1274"$
+$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HH,2580"$
+$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HH,1312"$
+$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HH,1276"$
 $LK,"chars_bmp_non_eol_white_space",A="FL:::/Kernel/StrA.HC.Z,359"$
-$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HH,2469"$
-$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HH,1792"$
-$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HH,559"$
-$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HH,458"$
-$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HH,2977"$
-$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HH,1514"$
-$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1429"$
-$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HH,948"$
-$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HH,560"$
-$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HH,3560"$
-$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HH,3296"$
-$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HH,954"$
-$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HH,895"$
-$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HH,890"$
-$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HH,561"$
-$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HH,1507"$
-$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HH,562"$
-$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HH,563"$
-$LK,"ODEF_STARTED",A="FL:::/Kernel/KernelA.HH,242"$
-$LK,"TaskFocusNext",A="FL:::/Kernel/Sched.HC.Z,38",BI=543$
-$LK,"Print",A="FL:::/Kernel/StrPrint.HC.Z,890",BI=544$
-$LK,"SFF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,3799"$
-$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HH,2601"$
-$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HH,2575"$
-$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HH,1977"$
-$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HH,564"$
-$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HH,3551"$
-$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HH,1515"$
-$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HH,565"$
-$LK,"FAT32DrvValidate",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,48",BI=545$
+$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HH,2472"$
+$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HH,1794"$
+$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HH,560"$
+$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HH,459"$
+$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HH,2982"$
+$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HH,1516"$
+$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HH,1431"$
+$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HH,949"$
+$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HH,561"$
+$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HH,3567"$
+$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HH,3302"$
+$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HH,955"$
+$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HH,896"$
+$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HH,891"$
+$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HH,562"$
+$LK,"IsDbgMode",A="FL:::/Kernel/KMisc.HC.Z,282",BI=543$
+$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HH,1509"$
+$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HH,563"$
+$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HH,564"$
+$LK,"ODEF_STARTED",A="FL:::/Kernel/KernelA.HH,243"$
+$LK,"TaskFocusNext",A="FL:::/Kernel/Sched.HC.Z,38",BI=544$
+$LK,"Print",A="FL:::/Kernel/StrPrint.HC.Z,890",BI=545$
+$LK,"SFF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HH,3807"$
+$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HH,2605"$
+$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HH,2578"$
+$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HH,1979"$
+$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HH,565"$
+$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HH,3558"$
+$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HH,1517"$
+$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HH,566"$
+$LK,"FAT32DrvValidate",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,48",BI=546$
 $LK,"StrCmp",A="FL:::/Kernel/StrA.HC.Z,309"$
-$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HH,1216"$
-$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HH,566"$
-$LK,"BlkDevDel",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,154",BI=546$
-$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HH,3513"$
-$LK,"BlkDevChk",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,163",BI=547$
-$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HH,3231"$
-$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HH,2687"$
-$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HH,2241"$
-$LK,"DOCEf_DFT_LEN",A="FL:::/Kernel/KernelA.HH,1110"$
-$LK,"DOCEF_DFT_LEN",A="FL:::/Kernel/KernelA.HH,1024"$
+$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HH,1217"$
+$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HH,567"$
+$LK,"BlkDevDel",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,154",BI=547$
+$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HH,3520"$
+$LK,"BlkDevChk",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,163",BI=548$
+$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HH,3236"$
+$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HH,2692"$
+$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HH,2243"$
+$LK,"DOCEf_DFT_LEN",A="FL:::/Kernel/KernelA.HH,1111"$
+$LK,"DOCEF_DFT_LEN",A="FL:::/Kernel/KernelA.HH,1025"$
 $LK,"RepOutU8",A="FL:::/Kernel/KernelB.HH,92"$
-$LK,"DOCEF_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HH,986"$
-$LK,"DrvBlkDevDel",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,78",BI=548$
-$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HH,3728"$
-$LK,"DOCEf_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HH,1074"$
-$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HH,615"$
-$LK,"ATAPISync",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,501",BI=549$
+$LK,"DrvBlkDevDel",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,78",BI=549$
+$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HH,3736"$
+$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HH,616"$
+$LK,"ATAPISync",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,501",BI=550$
 $LK,"TO_UPPER",A="FL:::/Kernel/StrA.HC.Z,110"$
-$LK,"RFLAGG_NORMAL",A="FL:::/Kernel/KernelA.HH,327"$
-$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HH,716"$
-$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HH,604"$
-$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HH,2877"$
-$LK,"SleepUntil",A="FL:::/Kernel/KMisc.HC.Z,147",BI=550$
-$LK,"Spawn",A="FL:::/Kernel/KTask.HC.Z,222",BI=551$
-$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HH,3312"$
-$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HH,3237"$
-$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HH,2323"$
-$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,1421"$
+$LK,"RFLAGG_NORMAL",A="FL:::/Kernel/KernelA.HH,328"$
+$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HH,717"$
+$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HH,605"$
+$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HH,2882"$
+$LK,"SleepUntil",A="FL:::/Kernel/KMisc.HC.Z,147",BI=551$
+$LK,"Spawn",A="FL:::/Kernel/KTask.HC.Z,227",BI=552$
+$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HH,3318"$
+$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HH,3242"$
+$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HH,2326"$
+$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,1423"$
 $LK,"SET_GS_BASE",A="FL:::/Kernel/KUtils.HC.Z,433"$
-$LK,"RFLAGf_VINT_PENDING",A="FL:::/Kernel/KernelA.HH,323"$
-$LK,"DirEntryDel2",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,26",BI=552$
-$LK,"DefineLoad",A="FL:::/Kernel/KDefine.HC.Z,1",BI=553$
+$LK,"RFLAGf_VINT_PENDING",A="FL:::/Kernel/KernelA.HH,324"$
+$LK,"DirEntryDel2",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,26",BI=553$
+$LK,"DefineLoad",A="FL:::/Kernel/KDefine.HC.Z,1",BI=554$
 $LK,"INT_FAULT_ERR_CODE_BITMAP",A="FL:::/Kernel/KInts.HC.Z,94"$
-$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HH,1617"$
-$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HH,3785"$
-$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HH,3555"$
-$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HH,2264"$
-$LK,"StrOcc",A="FL:::/Kernel/StrA.HC.Z,467",BI=554$
+$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HH,1619"$
+$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HH,3793"$
+$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HH,3562"$
+$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HH,2266"$
+$LK,"StrOcc",A="FL:::/Kernel/StrA.HC.Z,467",BI=555$
 $LK,"StrCpy",A="FL:::/Kernel/StrA.HC.Z,321"$
-$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HH,938"$
+$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HH,939"$
 $LK,"StrMatch",A="FL:::/Kernel/StrA.HC.Z,317"$
-$LK,"FlushMsgs",A="FL:::/Kernel/SerialDev/Message.HC.Z,87",BI=555$
-$LK,"CMT_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1691"$
-$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HH,467"$
-$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HH,3584"$
-$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HH,465"$
+$LK,"FlushMsgs",A="FL:::/Kernel/SerialDev/Message.HC.Z,87",BI=556$
+$LK,"CMT_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1693"$
+$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HH,468"$
+$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HH,3591"$
+$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HH,466"$
 $LK,"StrLen",A="FL:::/Kernel/KernelB.HH,61"$
-$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HH,2261"$
-$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HH,1766"$
-$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HH,1735"$
-$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,1447"$
-$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HH,446"$
-$LK,"ISO1DateStruct2CDate",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,14",BI=556$
-$LK,"DOCF_SEL",A="FL:::/Kernel/KernelA.HH,1285"$
-$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HH,471"$
-$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HH,452"$
-$LK,"SC_INS",A="FL:::/Kernel/KernelA.HH,3569"$
-$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HH,2108"$
-$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HH,1568"$
+$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HH,2263"$
+$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HH,1768"$
+$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HH,1737"$
+$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HH,1449"$
+$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HH,447"$
+$LK,"ISO1DateStruct2CDate",A="FL:::/Kernel/BlkDev/FileSysISO.HC.Z,14",BI=557$
+$LK,"DOCF_SEL",A="FL:::/Kernel/KernelA.HH,1287"$
+$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HH,472"$
+$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HH,453"$
+$LK,"SC_INS",A="FL:::/Kernel/KernelA.HH,3576"$
+$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HH,2110"$
+$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HH,1570"$
 $LK,"AbsI64",A="FL:::/Kernel/KernelB.HH,97"$
-$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HH,3553"$
-$LK,"SPF_DECIMAL",A="FL:::/Kernel/KernelA.HH,3919"$
-$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HH,513"$
-$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HH,498"$
+$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HH,3560"$
+$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HH,514"$
+$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HH,499"$
 $LK,"sys_mem_init_flag",A="FL:::/Kernel/KernelB.HH,183"$
-$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,3590"$
-$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HH,3300"$
-$LK,"RedSeaFmt",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,94",BI=557$
+$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,3597"$
+$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HH,3306"$
+$LK,"RedSeaFmt",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,94",BI=558$
 $LK,"sys_var_init_flag",A="FL:::/Kernel/KernelB.HH,185"$
-$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HH,510"$
-$LK,"SysGetStr2",A="FL:::/Kernel/KDbg.HC.Z,337",BI=558$
+$LK,"PRTF_DECIMAL",A="FL:::/Kernel/KernelA.HH,3927"$
+$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HH,511"$
+$LK,"SysGetStr2",A="FL:::/Kernel/KDbg.HC.Z,337",BI=559$
 $LK,"fp_getstr2",A="FL:::/Kernel/KGlbls.HC.Z,31"$
-$LK,"KDRawPutKey",A="FL:::/Kernel/KeyDev.HC.Z,88",BI=559$
-$LK,"DOCF_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1291"$
-$LK,"Dos2CDate",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,9",BI=560$
-$LK,"SYS_START_CR0",A="FL:::/Kernel/KernelA.HH,305"$
-$LK,"QSortI64",A="FL:::/Kernel/QSort.HC.Z,1",BI=561$
-$LK,"RawPrint",A="FL:::/Kernel/KDbg.HC.Z,217",BI=562$
-$LK,"CTextGlbls",A="FL:::/Kernel/KernelA.HH,3595"$
-$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HH,2921"$
+$LK,"KDRawPutKey",A="FL:::/Kernel/KeyDev.HC.Z,88",BI=560$
+$LK,"DOCF_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1293"$
+$LK,"Dos2CDate",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,9",BI=561$
+$LK,"SYS_START_CR0",A="FL:::/Kernel/KernelA.HH,306"$
+$LK,"QSortI64",A="FL:::/Kernel/QSort.HC.Z,1",BI=562$
+$LK,"RawPrint",A="FL:::/Kernel/KDbg.HC.Z,217",BI=563$
+$LK,"CTextGlbls",A="FL:::/Kernel/KernelA.HH,3602"$
+$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HH,2926"$
 $LK,"chars_bmp_zero_cr_nl_cursor",A="FL:::/Kernel/StrA.HC.Z,362"$
-$LK,"AreYouSure",A="FL:::/Kernel/StrB.HC.Z,109",BI=563$
-$LK,"DOCf_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,1326"$
-$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,1289"$
+$LK,"AreYouSure",A="FL:::/Kernel/StrB.HC.Z,109",BI=564$
+$LK,"DOCf_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,1328"$
+$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HH,1291"$
 $LK,"_REP_IN_U16",A="FL:::/Kernel/KUtils.HC.Z,264"$
 $LK,"_REP_IN_U32",A="FL:::/Kernel/KUtils.HC.Z,253"$
-$LK,"CH_FORM_FEED",A="FL:::/Kernel/KernelA.HH,3507"$
-$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HH,506"$
-$LK,"I_WAKE",A="FL:::/Kernel/KernelA.HH,295"$
+$LK,"CH_FORM_FEED",A="FL:::/Kernel/KernelA.HH,3514"$
+$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HH,507"$
+$LK,"I_WAKE",A="FL:::/Kernel/KernelA.HH,296"$
 $LK,"Yield",A="FL:::/Kernel/Sched.HC.Z,284"$
-$LK,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HH,3817"$
-$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HH,2866"$
-$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HH,2756"$
-$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HH,2302"$
-$LK,"StrNew",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,446",BI=564$
-$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HH,685"$
-$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HH,655"$
-$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HH,1426"$
-$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HH,697"$
-$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HH,667"$
+$LK,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HH,3825"$
+$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HH,2871"$
+$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HH,2761"$
+$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HH,2305"$
+$LK,"StrNew",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,446",BI=565$
+$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HH,686"$
+$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HH,656"$
+$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HH,1428"$
+$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HH,698"$
+$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HH,668"$
 $LK,"Round",A="FL:::/Kernel/KernelB.HH,139"$
-$LK,"TaskRstAwaitingMsg",A="FL:::/Kernel/SrvCmd.HC.Z,25",BI=565$
-$LK,"MSG_IP_L_D_DOWN",A="FL:::/Kernel/KernelA.HH,3232"$
-$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HH,2284"$
-$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HH,1140"$
-$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HH,534"$
-$LK,"MPHalt",A="FL:::/Kernel/MultiProc.HC.Z,164",BI=566$
-$LK,"UnusedStk",A="FL:::/Kernel/KDbg.HC.Z,46",BI=567$
-$LK,"DirEntryCompareName",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,62",BI=568$
+$LK,"TaskRstAwaitingMsg",A="FL:::/Kernel/SrvCmd.HC.Z,25",BI=566$
+$LK,"MSG_IP_L_D_DOWN",A="FL:::/Kernel/KernelA.HH,3237"$
+$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HH,2286"$
+$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HH,1141"$
+$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HH,535"$
+$LK,"MPHalt",A="FL:::/Kernel/MultiProc.HC.Z,164",BI=567$
+$LK,"UnusedStk",A="FL:::/Kernel/KDbg.HC.Z,46",BI=568$
+$LK,"DirEntryCompareName",A="FL:::/Kernel/BlkDev/DskDirA.HC.Z,62",BI=569$
 $LK,"BFieldExtU32",A="FL:::/Kernel/KernelB.HH,30"$
-$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1328"$
-$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HH,2273"$
-$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HH,2940"$
-$LK,"StrScan",A="FL:::/Kernel/StrScan.HC.Z,212",BI=569$
+$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HH,1330"$
+$LK,"TASKf_CMD_LINE_PMT",A="FL:::/Kernel/KernelA.HH,3288"$
+$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HH,2275"$
+$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HH,2945"$
+$LK,"StrScan",A="FL:::/Kernel/StrScan.HC.Z,212",BI=570$
 $LK,"CONSERVATIVE_16MEG_SIZE",A="FL:::/Kernel/Mem/PageTables.HC.Z,96"$
-$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HH,1500"$
-$LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,195",BI=570$
-$LK,"QSort2a",A="FL:::/Kernel/QSort.HC.Z,32",BI=571$
+$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HH,1502"$
+$LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.HC.Z,195",BI=571$
+$LK,"QSort2a",A="FL:::/Kernel/QSort.HC.Z,32",BI=572$
 $LK,"num_lock_map",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,179"$
-$LK,"QSort2b",A="FL:::/Kernel/QSort.HC.Z,55",BI=572$
-$LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HH,3808"$
-$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HH,2893"$
-$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HH,3559"$
-$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HH,3235"$
-$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HH,1730"$
-$LK,"I_TIMER",A="FL:::/Kernel/KernelA.HH,292"$
+$LK,"QSort2b",A="FL:::/Kernel/QSort.HC.Z,55",BI=573$
+$LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HH,3816"$
+$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HH,2898"$
+$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HH,3566"$
+$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HH,3240"$
+$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HH,1732"$
+$LK,"I_TIMER",A="FL:::/Kernel/KernelA.HH,293"$
 $LK,"IRQ_TIMER",A="FL:::/Kernel/KInts.HC.Z,16"$
-$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HH,1139"$
-$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HH,1062"$
-$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HH,974"$
+$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HH,1140"$
+$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HH,1063"$
+$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HH,975"$
 $LK,"SYS_BOOT_BASE",A="FL:::/Kernel/KStart16.HC.Z,30"$
-$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HH,3732"$
-$LK,"ATTRF_SEL",A="FL:::/Kernel/KernelA.HH,891"$
-$LK,"DrvNextFreeLet",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,51",BI=573$
-$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,3800"$
-$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HH,2551"$
-$LK,"CFifoI64",A="FL:::/Kernel/KernelA.HH,175"$
-$LK,"PCIReadU32",A="FL:::/Kernel/PCIBIOS.HC.Z,201",BI=574$
-$LK,"PCIReadU16",A="FL:::/Kernel/PCIBIOS.HC.Z,182",BI=575$
-$LK,"YearStartDate",A="FL:::/Kernel/KDate.HC.Z,8",BI=576$
-$LK,"ACD_H1_END",A="FL:::/Kernel/KernelA.HH,1503"$
+$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HH,3740"$
+$LK,"ATTRF_SEL",A="FL:::/Kernel/KernelA.HH,892"$
+$LK,"DrvNextFreeLet",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,51",BI=574$
+$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HH,3808"$
+$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HH,2554"$
+$LK,"CFifoI64",A="FL:::/Kernel/KernelA.HH,176"$
+$LK,"PCIReadU32",A="FL:::/Kernel/PCIBIOS.HC.Z,201",BI=575$
+$LK,"PCIReadU16",A="FL:::/Kernel/PCIBIOS.HC.Z,182",BI=576$
+$LK,"YearStartDate",A="FL:::/Kernel/KDate.HC.Z,8",BI=577$
+$LK,"ACD_H1_END",A="FL:::/Kernel/KernelA.HH,1505"$
 $LK,"_REP_IN_U8",A="FL:::/Kernel/KUtils.HC.Z,275"$
 $LK,"SHIFT_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,9"$
-$LK,"DOCF_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HH,1279"$
-$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HH,1789"$
-$LK,"VGAFlush",A="FL:::/Kernel/Display.HC.Z,88",BI=577$
-$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HH,2290"$
-$LK,"SysDbg",A="FL:::/Kernel/KMisc.HC.Z,233",BI=578$
-$LK,"FramePtrAdd",A="FL:::/Kernel/KHashB.HC.Z,225",BI=579$
-$LK,"DCF_SCREEN_BITMAP",A="FL:::/Kernel/KernelA.HH,3635"$
-$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HH,2783"$
-$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HH,1428"$
-$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HH,1262"$
-$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HH,479"$
-$LK,"MPrintTime",A="FL:::/Kernel/StrPrint.HC.Z,42",BI=580$
-$LK,"CatPrint",A="FL:::/Kernel/StrPrint.HC.Z,881",BI=581$
-$LK,"TK_CHAR_CONST",A="FL:::/Kernel/KernelA.HH,2076"$
-$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HH,3287"$
-$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HH,1594"$
-$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HH,1298"$
-$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HH,1248"$
-$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HH,1027"$
-$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HH,724"$
-$LK,"HashPublic",A="FL:::/Kernel/KHashB.HC.Z,170",BI=582$
-$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2906"$
-$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HH,1254"$
-$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HH,1147"$
-$LK,"BlkDevInit",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,31",BI=583$
-$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HH,3304"$
-$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HH,1458"$
-$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HH,2408"$
-$LK,"ATARBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,442",BI=584$
-$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HH,870"$
-$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HH,3247"$
-$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HH,1737"$
+$LK,"DOCF_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HH,1281"$
+$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HH,1791"$
+$LK,"VGAFlush",A="FL:::/Kernel/Display.HC.Z,88",BI=578$
+$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HH,2292"$
+$LK,"SysDbg",A="FL:::/Kernel/KMisc.HC.Z,245",BI=579$
+$LK,"FramePtrAdd",A="FL:::/Kernel/KHashB.HC.Z,225",BI=580$
+$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HH,2788"$
+$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HH,1430"$
+$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HH,1264"$
+$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HH,480"$
+$LK,"MPrintTime",A="FL:::/Kernel/StrPrint.HC.Z,42",BI=581$
+$LK,"CatPrint",A="FL:::/Kernel/StrPrint.HC.Z,881",BI=582$
+$LK,"TK_CHAR_CONST",A="FL:::/Kernel/KernelA.HH,2078"$
+$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HH,3293"$
+$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HH,1596"$
+$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HH,1300"$
+$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HH,1250"$
+$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HH,1028"$
+$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HH,725"$
+$LK,"HashPublic",A="FL:::/Kernel/KHashB.HC.Z,170",BI=583$
+$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HH,2911"$
+$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HH,1256"$
+$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HH,1148"$
+$LK,"BlkDevInit",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,31",BI=584$
+$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HH,3310"$
+$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HH,1460"$
+$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HH,2411"$
+$LK,"ATARBlks",A="FL:::/Kernel/BlkDev/DskATA.HC.Z,442",BI=585$
+$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HH,871"$
+$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HH,3252"$
+$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HH,1739"$
 $LK,"PUT_CHARS",A="FL:::/Kernel/StrA.HC.Z,51"$
-$LK,"CMemE820",A="FL:::/Kernel/KernelA.HH,358"$
-$LK,"DVD_BOOT_LOADER_SIZE",A="FL:::/Kernel/KernelA.HH,2299"$
-$LK,"FILEMASK_GRA",A="FL:::/Kernel/KernelA.HH,2293"$
-$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HH,2272"$
-$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HH,1265"$
-$LK,"DrvEnable",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,160",BI=585$
-$LK,"BlkDevLock",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,1",BI=586$
-$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,2635"$
-$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HH,1301"$
-$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HH,2865"$
-$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,2694"$
-$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HH,2275"$
-$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,669"$
-$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HH,1606"$
-$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HH,1315"$
+$LK,"CMemE820",A="FL:::/Kernel/KernelA.HH,359"$
+$LK,"DVD_BOOT_LOADER_SIZE",A="FL:::/Kernel/KernelA.HH,2302"$
+$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HH,2274"$
+$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HH,1267"$
+$LK,"DrvEnable",A="FL:::/Kernel/BlkDev/DskAddDev.HC.Z,160",BI=586$
+$LK,"BlkDevLock",A="FL:::/Kernel/BlkDev/DskBlkDev.HC.Z,1",BI=587$
+$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,2640"$
+$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HH,1303"$
+$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HH,2870"$
+$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,2699"$
+$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HH,2277"$
+$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,670"$
+$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HH,1608"$
+$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HH,1317"$
 $LK,"sys_mem_init_val",A="FL:::/Kernel/KernelB.HH,184"$
-$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HH,611"$
-$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HH,2271"$
-$LK,"Struct2Date",A="FL:::/Kernel/KDate.HC.Z,14",BI=587$
-$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HH,2482"$
-$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HH,557"$
+$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HH,612"$
+$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HH,2273"$
+$LK,"Struct2Date",A="FL:::/Kernel/KDate.HC.Z,14",BI=588$
+$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HH,2485"$
+$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HH,558"$
 $LK,"SYS_MP_CNT",A="FL:::/Kernel/KStart32.HC.Z,47"$
-$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1699"$
-$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1698"$
-$LK,"EdLiteUpdate",A="FL:::/Kernel/EdLite.HC.Z,7",BI=588$
+$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1701"$
+$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HH,1700"$
+$LK,"EdLiteUpdate",A="FL:::/Kernel/EdLite.HC.Z,7",BI=589$
 $LK,"_ARC_ENTRY_GET",A="FL:::/Kernel/Compress.HC.Z,43"$
-$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,944"$
+$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HH,945"$
 $LK,"SYS_CTRL_ALT_FLAGS",A="FL:::/Kernel/KStart32.HC.Z,24"$
-$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HH,3878"$
-$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HH,2544"$
-$LK,"FramePtrDel",A="FL:::/Kernel/KHashB.HC.Z,240",BI=589$
+$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HH,3886"$
+$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HH,2547"$
+$LK,"FramePtrDel",A="FL:::/Kernel/KHashB.HC.Z,240",BI=590$
 $LK,"chars_bmp_filename",A="FL:::/Kernel/StrA.HC.Z,345"$
-$LK,"CICType",A="FL:::/Kernel/KernelA.HH,1627"$
-$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HH,1608"$
-$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HH,2289"$
-$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HH,2274"$
-$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HH,1919"$
-$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HH,1646"$
-$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HH,1522"$
+$LK,"CICType",A="FL:::/Kernel/KernelA.HH,1629"$
+$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HH,1610"$
+$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HH,2291"$
+$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HH,2276"$
+$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HH,1921"$
+$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HH,1648"$
+$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HH,1524"$
 $LK,"SYS_CODE_BP",A="FL:::/Kernel/KStart32.HC.Z,27"$
-$LK,"WClusters",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,129",BI=590$
+$LK,"WClusters",A="FL:::/Kernel/BlkDev/DskCluster.HC.Z,129",BI=591$
 $LK,"LXchgI64",A="FL:::/Kernel/KernelB.HH,253"$
-$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3239"$
-$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HH,3292"$
-$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HH,1924"$
-$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HH,1904"$
-$LK,"ChkOnStk",A="FL:::/Kernel/KDbg.HC.Z,31",BI=591$
-$LK,"TaskQueInsChild",A="FL:::/Kernel/Sched.HC.Z,314",BI=592$
-$LK,"TK_F64",A="FL:::/Kernel/KernelA.HH,2077"$
-$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HH,462"$
-$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HH,443"$
-$LK,"I_USER",A="FL:::/Kernel/KernelA.HH,301"$
-$LK,"FAT32CDirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,226",BI=593$
-$LK,"BlkPoolAdd",A="FL:::/Kernel/Mem/BlkPool.HC.Z,1",BI=594$
-$LK,"sys_task_being_screen_updated",A="FL:::/Kernel/KGlbls.HC.Z,11"$
-$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HH,2072"$
-$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HH,558"$
-$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HH,509"$
-$LK,"Complex",A="FL:::/Kernel/KernelA.HH,115"$
+$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3244"$
+$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HH,3298"$
+$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HH,1926"$
+$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HH,1906"$
+$LK,"ChkOnStk",A="FL:::/Kernel/KDbg.HC.Z,31",BI=592$
+$LK,"TaskQueInsChild",A="FL:::/Kernel/Sched.HC.Z,314",BI=593$
+$LK,"TK_F64",A="FL:::/Kernel/KernelA.HH,2079"$
+$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HH,463"$
+$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HH,444"$
+$LK,"I_USER",A="FL:::/Kernel/KernelA.HH,302"$
+$LK,"FAT32CDirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,226",BI=594$
+$LK,"BlkPoolAdd",A="FL:::/Kernel/Mem/BlkPool.HC.Z,1",BI=595$
+$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HH,2074"$
+$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HH,559"$
+$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HH,510"$
+$LK,"Complex",A="FL:::/Kernel/KernelA.HH,116"$
 $LK,"Trunc",A="FL:::/Kernel/KernelB.HH,141"$
-$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HH,2933"$
-$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HH,675"$
+$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HH,2938"$
+$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HH,676"$
 $LK,"sys_pci_services",A="FL:::/Kernel/PCIBIOS.HC.Z,159"$
-$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HH,2011"$
-$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HH,1906"$
-$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HH,1905"$
-$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HH,2882"$
-$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HH,1934"$
-$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HH,1591"$
-$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HH,1145"$
-$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HH,1130"$
+$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HH,2013"$
+$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HH,1908"$
+$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HH,1907"$
+$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HH,2887"$
+$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HH,1936"$
+$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HH,1593"$
+$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HH,1146"$
+$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HH,1131"$
 $LK,"SYS_PCI_SERVICES",A="FL:::/Kernel/PCIBIOS.HC.Z,5"$
 $LK,"_STRCMP",A="FL:::/Kernel/StrA.HC.Z,86"$
-$LK,"ARGT_AX",A="FL:::/Kernel/KernelA.HH,1920"$
-$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HH,483"$
-$LK,"Core0Init",A="FL:::/Kernel/MultiProc.HC.Z,355",BI=595$
-$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HH,1929"$
-$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HH,1894"$
-$LK,"AStrNew",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,461",BI=596$
-$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HH,1930"$
-$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HH,1595"$
-$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HH,1259"$
-$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,831"$
-$LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,22",BI=597$
-$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HH,927"$
-$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,388",BI=598$
-$LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,36",BI=599$
+$LK,"ARGT_AX",A="FL:::/Kernel/KernelA.HH,1922"$
+$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HH,484"$
+$LK,"Core0Init",A="FL:::/Kernel/MultiProc.HC.Z,355",BI=596$
+$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HH,1931"$
+$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HH,1896"$
+$LK,"AStrNew",A="FL:::/Kernel/Mem/MAllocFree.HC.Z,461",BI=597$
+$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HH,1932"$
+$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HH,1597"$
+$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HH,1261"$
+$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HH,832"$
+$LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.HC.Z,22",BI=598$
+$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HH,928"$
+$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,388",BI=599$
+$LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.HC.Z,36",BI=600$
 $LK,"D3DivEqu",A="FL:::/Kernel/KernelB.HH,152"$
-$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HH,1931"$
-$LK,"TK_I64",A="FL:::/Kernel/KernelA.HH,2075"$
-$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HH,1925"$
-$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HH,1907"$
-$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HH,1179"$
-$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HH,1143"$
-$LK,"CD2I32",A="FL:::/Kernel/KernelA.HH,137"$
-$LK,"DrvLock",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,1",BI=600$
-$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HH,1933"$
-$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HH,1639"$
-$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HH,1144"$
+$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HH,1933"$
+$LK,"TK_I64",A="FL:::/Kernel/KernelA.HH,2077"$
+$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HH,1927"$
+$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HH,1909"$
+$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HH,1180"$
+$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HH,1144"$
+$LK,"CD2I32",A="FL:::/Kernel/KernelA.HH,138"$
+$LK,"DrvLock",A="FL:::/Kernel/BlkDev/DskDrv.HC.Z,1",BI=601$
+$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HH,1935"$
+$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HH,1641"$
+$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HH,1145"$
 $LK,"SYS_MEM_E801",A="FL:::/Kernel/KStart16.HC.Z,31"$
-$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HH,2258"$
-$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HH,3181"$
-$LK,"IET_REL_I0",A="FL:::/Kernel/KernelA.HH,394"$
-$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HH,1758"$
+$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HH,2260"$
+$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HH,3186"$
+$LK,"IET_REL_I0",A="FL:::/Kernel/KernelA.HH,395"$
+$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HH,1760"$
 $LK,"SYS_MEM_E820",A="FL:::/Kernel/KStart16.HC.Z,32"$
-$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HH,3789"$
-$LK,"RFLAGG_START",A="FL:::/Kernel/KernelA.HH,326"$
-$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HH,3809"$
-$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3243"$
-$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3241"$
-$LK,"XTalkWait",A="FL:::/Kernel/SrvCmd.HC.Z,455",BI=601$
-$LK,"MemPageTable",A="FL:::/Kernel/Mem/PageTables.HC.Z,127",BI=602$
-$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HH,2137"$
-$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HH,1938"$
+$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HH,3797"$
+$LK,"RFLAGG_START",A="FL:::/Kernel/KernelA.HH,327"$
+$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HH,3817"$
+$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3248"$
+$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3246"$
+$LK,"XTalkWait",A="FL:::/Kernel/SrvCmd.HC.Z,456",BI=602$
+$LK,"MemPageTable",A="FL:::/Kernel/Mem/PageTables.HC.Z,127",BI=603$
+$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HH,2139"$
+$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HH,1940"$
 $LK,"chars_bmp_alpha_numeric_no_at",A="FL:::/Kernel/StrA.HC.Z,335"$
 $LK,"SysHlt",A="FL:::/Kernel/KernelB.HH,259"$
-$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HH,2606"$
-$LK,"CD2I64",A="FL:::/Kernel/KernelA.HH,141"$
-$LK,"CD3I32",A="FL:::/Kernel/KernelA.HH,127"$
+$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HH,2610"$
+$LK,"CD2I64",A="FL:::/Kernel/KernelA.HH,142"$
+$LK,"CD3I32",A="FL:::/Kernel/KernelA.HH,128"$
 $LK,"_STRCPY",A="FL:::/Kernel/StrA.HC.Z,65"$
-$LK,"RedSeaDrvValidate",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,82",BI=603$
-$LK,"YELLOW",A="FL:::/Kernel/KernelA.HH,2972"$
-$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HH,2580"$
-$LK,"RedSeaFreeFreeLst",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,3",BI=604$
-$LK,"IPVarsInit",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,68",BI=605$
-$LK,"IET_REL_I8",A="FL:::/Kernel/KernelA.HH,396"$
-$LK,"MouseGetDevType",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,26",BI=606$
-$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HH,1896"$
-$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HH,1895"$
-$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HH,1157"$
-$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HH,789"$
-$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HH,3299"$
-$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HH,1485"$
-$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HH,1959"$
-$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HH,2885"$
-$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HH,1013"$
-$LK,"CD3I64",A="FL:::/Kernel/KernelA.HH,145"$
+$LK,"RedSeaDrvValidate",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,82",BI=604$
+$LK,"YELLOW",A="FL:::/Kernel/KernelA.HH,2977"$
+$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HH,2583"$
+$LK,"RedSeaFreeFreeLst",A="FL:::/Kernel/BlkDev/FileSysRedSea.HC.Z,3",BI=605$
+$LK,"IPVarsInit",A="FL:::/Kernel/SerialDev/InputPointer.HC.Z,68",BI=606$
+$LK,"IET_REL_I8",A="FL:::/Kernel/KernelA.HH,397"$
+$LK,"MouseGetDevType",A="FL:::/Kernel/SerialDev/Mouse.HC.Z,26",BI=607$
+$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HH,1898"$
+$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HH,1897"$
+$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HH,1158"$
+$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HH,790"$
+$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HH,3305"$
+$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HH,1487"$
+$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HH,1961"$
+$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HH,2890"$
+$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HH,1014"$
+$LK,"CD3I64",A="FL:::/Kernel/KernelA.HH,146"$
 $LK,"c32_edi",A="FL:::/Kernel/PCIBIOS.HC.Z,157"$
 $LK,"_CALL_IND",A="FL:::/Kernel/KUtils.HC.Z,332"$
-$LK,"PURPLE",A="FL:::/Kernel/KernelA.HH,2963"$
-$LK,"TASKf_BREAK_LOCKED",A="FL:::/Kernel/KernelA.HH,3288"$
-$LK,"FILEMASK_SRC",A="FL:::/Kernel/KernelA.HH,2291"$
-L8G›Ý›Ý¥Ý¹Ý»ÝÉÝËÝÜÝòÝÞÞIÞMÞMÞRÞDVcû#û#ÿ#$$&$2$@$L$S$X$i$j$n$@4@«"«"³"·"Î"å"ü"##%#,#=#>#B#,‡ŽSSS'S,S0ST†×H›H›L›d›q›v››„›‰›Ž›“›˜›�›µ›Ö›ç›œœœœ!œ&œ/œ4œ<œZœZœ_œoœuœœ„œ�œ”œ’œ¢œ§œ·œÈœýœ�)�.�3�8�Y�W�g�s�Š�“�š�¦�²�Ô�Ô�Û�â�ç�î�÷�ø�žžÄž<#{!{!Ž!¨!Á!Î!Õ!×!×!à!î!D’Ÿ;;IWems’’›ˆ/Mê±ê±ú±²²²²:²F²U²b²o²t²z²‰²�²–²–²š²š²š²š²§²ª²º²	0ÎÖÓ–Ó–í–————$—
-Ì;X9X9p9v9�9“9Ÿ9´9º9À9Æ9å9ê9ò9ò9:::0:6:8:G:K:Z:`:c:e:t:x:‡:�:�:’:¢:¦:º:½:À:Â:Ñ:Ô:à:Ä¥Òà6à6777 777A7G7J7M7P7Œ7�7’7”7§7ª7­7µ7»7À7À7Æ7Ò7Ô7Ý7Ý7Ý7Ý7ã7æ7ë7î7ö78ˆCaÚ¼Ú¼½½½½½#½)½,½8½8½f½s½}½€½ƒ½н’½˜½¥½¥½»½
h¤¤ˤÙ¤è¤ó¤¥¥#¥3¥B¥Q¥a¥q¥’¥”¥£¥²¥Â¥Ò¥þ¥þ¥¦4æï«—«—Å—Ó—ë—þ—˜˜
-˜h:P a a.a0a=aJaQaXa`ada{a—a«aºaÂaËaÍaÍaÕa44=`I`InIŠIŠI�I§I§I­I TXÃùÃùÑùßù(-3["["c"}"…"š"œ"¦"HÜêQvQvqv~vƒv�v¯vµv»vÈvÑvÒvÞv(Z`®Û®ÛÈÛÚÛâÛèÛðÛ$ü²ˆ²ˆ»ˆÃˆÉˆÎˆ0¯·"Ó"Ó8ÓCÓTÓVÓ^Ó8– ÐcÐcÞcåcðcõc÷cddddPr‚ÈbÈbÖbÝbèbíböbccccc"c(c€[wÂÂ0Â4Â8ÂOÂ_Âu‹Â�Â�¹¾ÂÊÂÐÂÓÂÚÂÞÂâÂæÂêÂêÂê§Ãà:.R†R†k†s†ކ™† †­†º†džÛ†î†‡‡%‡5‡>‡A‡K‡O‡j‡o‡v‡~‡�‡“‡¡‡°‡Á‡LJ͇ه臈ˆ	ˆˆ<ˆKˆRˆYˆYˆ`ˆhˆuˆwˆ‰ˆ‘ˆ“ˆ�ˆ¤ˆ¤ˆ¤ˆ«ˆ³ˆ½ˆȈÔˆâˆøˆ'‰'‰K‰K‰R‰\‰r‰”‰™‰™‰ ‰¨‰¾‰à‰å‰å‰è‰Š
-ŠŠŠŠ:Š:Š?Š?ŠGŠLŠPŠ`ŠcŠ|Š|Š�Š�ДЛХлŠÙŠÜŠÞŠÞŠñŠøŠ‹‹4‹7‹9‹9‹T‹W‹w‹’‹›‹¤‹¨‹¶‹¼‹¼‹Ù‹Ù‹Ù‹Þ‹Þ‹Þ‹ê‹ý‹ŒŒŒ Œ$Œ$Œ)ŒAŒDŒjŒnŒ‰Œ¢Œ«Œ´Œ¸ŒÆŒÌŒÏŒÔŒÔŒäŒçŒêŒøŒ��
-���#�/�;�K�c�ˆ�•�™�¯�É�Û�ä�è�ë�ë�û�ŽŽŽ Ž'Ž3ŽPŽSŽUŽfŽmŽyŽ’ŽŸŽ¢Ž©Ž¬Ž®ŽÆŽÙŽàŽîŽîŽîŽõŽ���"�(�/�:�C�R�a�p���™��4×à+—+—?—M—e—p—r—r—z—@?K³³»ÂÏÞí%.MQ`ˆœ»%»%É%Ö%à%à%ó%û%&&#&#&'&1&6&6&<&|w’º£º£Ú£ê£õ£ú£ü£¤¤&¤6¤G¤W¤Y¤Y¤Y¤_¤x¤•¤¥¤§¤§¤°¤¼¤ XÓåû7û78	88.8:8A8X8Z8q8q8s8v8|8 @8DÚ‰Ú‰è‰ê‰ŠŠŠ#Š!|ÿ##TWenn…–«°ÃÇØëô   + . c "4ÑÚËpËpßpñpqq$q*q3q#¬Elð€ð€���*�<�P�[�a�y�y���›�¥�´�¹�¹�Å�Å�Ë�Ë�5‚:‚:‚b‚b‚p‚s‚v‚„‚Š‚“‚»‚$,Ûâ3q3qAqdqOqtqzq¡q% †Š \ \)\6\;\&H—¥ŽŽ©«¼ÈÍÙÙÝç'Œ¬Ëøø'ø*ø3øOøbøbømørøzø”øœø¯ø¹ø¾øÊøÐø×øäøçøðøóøöøûø"ù( lpîÊîÊËËË)D6C€•€•œ•ž•±•¶•ƕӕٕܕè•*p¼Ônn|Š ¯´ÄÆÌÕÝè!!(((+h#9°v°vÆvÈv×vëvívövøvøvûvwWwdwnw~wˆw“w–w¤w,$gl(y(y,yËAËJËxË{ËË„Ë�˗˹˼˾ËÅËçËêËêËíËøËÿËÌ8@-9QQQQ%Q,Q3Q4Q PTÖëÖëÚëìëîë?L¡°bØbØl؂ؑؗئجػØÁØÐØÖØåØëØíØòØ@H!*‰*‰8‰D‰I‰I‰Z‰l‰q‰q‰w‰A, ^ ^)^2^>^K^Q^V^BLõ:œ:œHœKœWœaœgœtœˆœˆœªœªœÇœËœÏœÕœC …‰NNRaeD\˜«^÷^÷r÷€÷…÷‹÷–÷Ÿ÷Ÿ÷¯÷»÷¿÷×÷Þ÷á÷ã÷øE4Š“ffjt„¥ººº¾F,jqLLLSLcL‰L“L•LG¸�Ç77 7(737R7[7q7…7�7›7¦7¦7µ7Ö7û788&8189898H8i8Ž8›8£8¹8Ä8Ö8Ö8ä8ë8ý8ý8999 9H ”˜¾¾ÂåéIpu�*×*×D×V×r×r×y×{×{׉׋׋חח×�ץש״×Ì׿׿׿×ó×JD`{`{h{t{œ{°{´{Ã{Ï{Ý{ì{1|1|]|z|„|“|‘|À|À|æ|æ|ë|ð|ð|ÿ|}8}S}a}ƒ}›}¶}¿}Ã}Å}Å}Ñ}Ñ}Ó}Ó}ã}ï}ï}ó}ø}~~~(~7~o~x~Š~Š~�~ë€K|7óþóþÿÿÿ(ÿ+ÿ9ÿ<ÿ@ÿBÿEÿHÿPÿSÿ[ÿoÿyÿ�ÿ•ÿ˜ÿšÿ ÿ¬ÿL4•žÂ|Â|Ì|Î|à|ç|}}
}M,'.¦ê¦ê°ê²êºêÔêÙêßêNXƒ•(c(c:c=cHcMcZclclcuc‰c“cœc²c½cÄcÎcO�QqØaØaòaýabbb6b>bFbSb]bdbkbobsb~b„b�b‘bšb b£b±b³bÁbP­é««ÅÌÝà!/Xq}„†‰�“¤®´·º¼ÈØàæóöù(46FSYfz}€ˆˆˆ�—žž¬ÄQ ™�îîòR„
*öØöØÙÙ&Ù3ÙOÙRÙXÙaÙmÙoمٟٛٺٽÙÃÙÐÙÜÙÞÙÞÙîÙñÙÚSˆ åå#å.å>åMåYå}å}å}å…åŠåŠå®å½åÞåöåþåæææææ%æ%æ7æ<æDæT,æíƒ8ƒ8‡8 8§8©8U ž¢!%VTFWÆÆéðúþ-9<JW £§&&*7;X äè.ñ.ñ2ñHñJñYHúqwqw‘wžw£w¯wÏwÕwÛwèwñwòwþwZHëùávávwww w?wEwKwXwawbwnw[ ¨¬>>BGK\ ­±NNRae]<æñÊÚÊÚÛÚçÚëÚ÷ÚùÚÛÛÛÛ^dl�[[[[c[g[g[v[•[¤[­[¶[Í[ß[è[ï[\\#\/\1\_´¥ÎàRàRëRüR S.S9SHSUSnS…S‰S�S•S�S¦SÄSÌSãSçSëSïS÷SÿST&T9TBTSTZTZTkTtT`0&$¢$¢-¢-¢D¢g¢g¢l¢adÆÛSfSfafffvf{fŠf�f‘f—f¦f«f­f¼fÇfËfÑfb8“.“.­.±.´.¿.Ü.à.å./c ’S’S›S¦SµSdDÀÍee2eIeVeVe`e€eŠeeLš©ªVªV¸V½V¿VÎVÐVÞVéVòVòVóVùVf,bi˜K˜KœKÓKãK	LLLg,RY�J�J”JËJÛJKKKh0ÇÏ2š2šFš…šŒš’šŸš²š¾ši[c c k v ~ Ÿ ® · Ë Û î û  , 5 B N Z _ | � � Ž ˜ ¬ ¹ Ò á ô !!$!?!J!_!}!‰!’!—!´!½!Ê!Ù!î!"""&"&"&"+"9"D"K"V"["b"j,ry˜L˜LœLÓLãL	MMMk$û³g³gÓgàgægògl$+0ÚÚÚ(Ú:ÚvÚm¨Ciʧʧó§ø§¨¨¨"¨"¨*¨S¨\¨a¨j¨m¨r¨r¨ЍŸ¨¢¨¥¨«¨²¨¶¨å¨é¨ñ¨ó¨þ¨þ¨©©©"©n<$/ЦЦ˜¦ ¦¨¦¸¦ĦΦý¦ÿ¦§oü¢ÝûSûSTT-T7TFTUTUT{T�T›T¢TÅTÒTàTîTüT
-U*U U6UHUSUeUwU~U…U’U™U¡U±U¹UÉUÕUÿUV&V&V.V1V?Vp@nz,¥,¥9¥A¥D¥R¥V¥Z¥]¥k¥r¥w¥q(b’€’€¥€«€º€Ä€É€É€Õ€Ü€á€ë€ü€
�!�#�>�n�…�ž�©�»�ß�á�ú�‚‚'‚@‚J‚U‚c‚j‚x‚x‚‚‚›‚Â΂å‚ê‚ì‚ö‚ƒƒ#ƒ>ƒrD/<æêæêïêëëë$ë2ë=ëEëJës<²½ónón	oo0o9oSoZopovo|o²ot,››ŸÌó 57u<bmä¤ä¤ñ¤ù¤ü¤
-¥¥¥ ¥$¥)¥v|0®®¿É×ï		6	=	N	[	f	m	~	ˆ	ˆ	™	¡	¦	­	º	Î	Ù	wLš©••/•6•=•I•R•l•w•|•…•›•ª•´•´•É•x8rWrWˆW•W§WÁWÏWØWâWy ~ò~ò‚ò›òzÔ._óóû$3=ITbq‚ž¦²ºÂÂÍÏäðHYf�ž ²»»ÍÍÛâôô{4¨±snsn‡n™n¢n¼nÃnÙnßnòn|0PX[R[RcRyR„R“R­RµR}PZjS“S“e“l“u“ƒ“ˆ“‹“‘“”“™“¤“ª“´“~d¦»îî
-!,14DOUX[]amH<JNôNô^ôdôoôxô{ôˆô‘ô‘ô•ô˜ô ô€$@Ežž§µ»À�4ÕÞ,:BMfkrx‚¬Lsªyªy¼yËyÑyåyøyz"z9zLzczzz‘z¬z°z·z½zÁzÓzìzùzÿz{{%{+{/{A{Z{g{m{p{z{ƒ?°;°;¸;À;Ñ;à;ê;ö;ö;ú;<< <Y<k<<£<¬<µ<µ<º<Í<Ò<Ý<ó<==@=s=„=”=ª=¾=Å=÷=*>;>K>K>R>d>d>r>r>s>…>…>“>—>›>„P—§ËmËmámômn n)n+n7nPn[nanenmn…0lt¶¶ÄÓÞäææì†<KV(x(x1x;xKxMx€x‡x‡x‡xŠx‡˜ò"©ˆ4ŠÓÞÐÞÐöÐþÐÑÑÑ!Ñ'Ñ5ÑJÑOÑUÑlÑqÑwюѓљѰѵѻÑÉÑÍÑéÑüÑÒÒ#Ò0Ò@ÒOÒ\ÒoÒuÒ|Ò~Ò‘Ò«Ò²ÒÀÒÒÒÒÒåÒçÒúÒüÒÓÓ$Ó$Ó@ÓWÓ]ÓcÓnÓ’Ó‰Hžòžò§òÂòËò×òÙòÛòêòêòùòûòûòóŠ\ÜïÓfÓfãfñfüfþfgg%g0g2g7g9g:g:gBg‹(©¯;ô;ôFôZôkômôŒD¾Ë>ð>ðMð[ðjðvð}ðŒð˜ð˜ðžð�t3ï3ïCï]ï]ï_ï_ï_ïsïuïuïuï~ï�ï˜ï©ï´ï·ï¹ï¼ï¾ï¾ï¾ïÌïŽD9FËQËQàQîQîQöQRRRRR�¤6[8Œ8ŒRŒZŒ^ŒfŒrŒyŒ€Œ…ŒšŒ«Œ¯Œ¯Œ¼ŒÃŒÈŒߌâŒëŒñŒôŒöŒ��� �!�(�,�:��81;vÚvÚ„Ú›Ú¦Ú¦Ú±ÚµÚµÚ»Ú‘$<�Û&Û&ã&ó&''$'-';'I'P'['g'|'Š'’'§'´'É'Ö'ë'õ'
-(()(3(H(V(V(d(p(|(�(·(Æ(Õ(ã(ï(û()!)6)G)Q)c)u)‡)™)Ì)Ú)ï)*+*4*C*^*u*~*‰*�*›*¥*®*¾*’0‚Š3\3\7\H\d\y\~\˜\“02:’’/’:’L’T’W’_’”¼Kv“b“b¯bÐbâbéböbc
-ccc(c3cWcfcmctc…c‡c�cšc¥c´c»c¾cÀcÆcÌcäcícícñc
-d•,ÑØFùFùTù`ùwù{ù}ù‘ù–P	YX^X^r^u^{^‡^‰^˜^Ÿ^¥^Î^Õ^_	_
_%_1_N_W_W_W_d_�_©_µ_Â_Õ_ã_ô_``%`<`B`‰`›`È`Ï`î`õ`aaa(a*a*a6a8a8aDaFaFaVaYaYaeaqaŠa–aŸaªaÀaÎaÎaÎaßaøaÿabbbWb—P&H”H”h”{”‡”“”©”¯”º”À”Å”Ç”à”˜4#˜H˜H¡H¶H¶HÃHØHØHÝH™ ÌÐ&ù&ù4ù=ùCùš0ÐØÂššÖš››"›:›=›I››¼
-5‹‹&‹*‹1‹8‹E‹S‹\‹_‹e‹k‹r‹y‹{‹…‹Š‹”‹¢‹¨‹·‹ËÆ‹É‹Ñ‹Ö‹ì‹ø‹û‹þ‹þ‹þ‹þ‹Œ	ŒŒŒ Œ1Œœ0HP&þ&þ4þBþJþmþ†þ®þ�€ÀWÀWÔWÛWãWëWXXXXX'X)X)X7X9X9XIXQXQXZXfXƒXƒX•X•X™XÀXžXþ```1`B`M`i`l`z`€`ƒ`”`¯`³`Ÿ@¡­ d*d2dJdJdSdgdmdvd’d–d @$0ƒøƒø‘ø–ø™ø«ø±ø´ø¶ø¼ø¡H&4
-Ý
-Ý Ý+Ý.Ý7ÝCÝKÝhÝwÝ}݀݌ݢ îòvñvñzñ‡ñ‰ñ£ä{°èyèyzz2z{P{P{P{P{[{[{i{¤ ÑõëJëJ
-KKK"K0KQK_KmKxK�K—K™K™K«K±K·K¹K¿KÅKÈKÎKÐKÙKèKîKîKîKõKL¥T…–*-;;O_jp{{{�¦`p„nÿnÿ‹ÿ‘ÿŸÿŸÿ³ÿ¾ÿÂÿÉÿÌÿÖÿÝÿíÿñÿñÿñÿõÿ§Hïý2Ê2ÊYÊwÊ…Ê�ʔʘʜʦʰʰʲÊÀʨD"/z‰z‰ˆ‰”‰™‰™‰ª‰¯‰¯‰µ‰©t¹ÒË6Ë6Ó6ä677 7D7R7`7i7|7ƒ7�7›7±7Ç7É7ß7õ7õ7õ7÷7ªX{�HH4HDH\HhHtHtH†HŒHŒH˜H¤H¦H¦H®H«XÙëƒAŒA“A©A¾AÔAÜAóAýAB B&B;BBBJBOB¬8x‚ªÃªÃ°Ã®Ã¾ÃÜÃèÃêÃêÃnÄ­8>H°I°I¾IÄIËIáIáIèIJJJ®<u€´´´+´2´6´9´=´D´h´x´¯`«¿R}R}V}m}Ÿ}Ò}ë}ú}	~~~~°L{÷{÷–÷²÷²÷¿÷¿÷Ì÷Ì÷Ü÷à÷à÷ð÷ò÷ò÷)ø±d@Õ > >«>Á>È>æ>÷>??"?6?N?f?y?�?š?Ä?ß?ü?!@&@?@T@t@‹@›@�@Ó@*Aû@ù@IAZAaA�A–A°A°A×A×AöAýA9BGB§BxBvBÆBÍBÒBèBðBðBC%CFCŒCYCaCLCµCçCïCïCD$DEDODfDnDYDÂDÂDÂDÇDÇDØDóDEE2EKEfE~E”E¬EºEÅEÅEØEñEFF8FFHFHFOF]F`FgFgFnF|FFƒF�F�F›F¡F®F¼F¾F¾F¾FÁFÆFÒFÒFÞF÷FúF
G
GGG#G¶4mvS<S<]<]<�<£<ß<í<ñ<·À6b+í+í6í:í^íiíxí„í˜í·í¿í×íçíîî/î1î1îUîWîWî{î}î}î‰î‰î‘î‘î�î±îÁîÉîÉîÛîâîâîôîï
ï0ï¸ÈÉ÷C(C([(e(v(v(ˆ(�(�(Ÿ(¤(¤(¶(»(»(Í(Ò(Ò(ä(é(é(é(é(ð(õ(õ())))#)#):)g)|)|)Ž)•)œ)¥)´)*¹ˆTr:U:UPUUUaUaUmUuU}UˆU‘U™UžU U¤U³U¾UÆUÎUÏUÏUÙUº(w}ó<ó<ü<=#=*=-=»üF�++37Xcl‚–¢ºÍî$F[dfnv�• ­±µ·ÊÑäôû')---9EEJSell~„™¼„a~öÛöÛúÛ	Ü	ÜÜÜ'Ü'Ü6ÜEÜEÜYÜTÜhÜcÜrÜrÜ�Ü�Ü�Üüཨs™ÚUÚUôUV!V(V3V9V9VvAvDvIvKvOv[vlv{v�v„v‡vŠvŠv”v—v©vÄ„c€¸p¸pÛpßpìpñpõpq)q3q3qIqUq\qoqtqxq‹q¬q¶q¶qÊqÊqÍqÛqÅP]mnènèwè…è…è�è³èÂèÛè÷èé é;é<éAéÆL–¥r€r€€€Œ€—€¨€¼€À€Î€ã€õ€þ€��+�ÇÜ›Î[
[
c
g
ˆ
•
 
©
¿
Ò
ç
û
*7Jhq~Š––£­½Óé %*3ELL^d‹È,z�NíNíRí‰í í íªíÉ,fmëŠëŠùŠÿŠ‹‹‹!‹ÊH´Âš�š�£�¯�Â�Í�å�ç�í�ø�ü�‚‚ËdÃØ
-‚
-‚‚+‚6‚R‚T‚j‚€‚“‚©‚Âǂ̬޵³H³HÏHÑHëHúH'I1I6IeIlInInI}I‡I’I—IšI©I®I½IÖIÝIÝIïIûIÿI	JÍP(8CQCQXQlQwQ‰Q’Q�Q¢Q§Q¸Q¾QÀQÈQÎ ÿþñþñòò òÏŒ'Fl¢l¢|¢€¢‰¢¤¢²¢·¢º¢È¢Í¢ì¢ô¢£"£B£D£L£v£z£š£¤£«£Á£Ü£ø£¤0¤7¤?¤Ð´PyVVt{…Š�¨¾ÈÝâìöþ,F<V`zž¤«¿ÇÍÔÛâéúÿÿw
ÑøµïKžKžižzž�ž•žœžœžªž¹žÀžÆžØžØžëžûžŸŸ$Ÿ0ŸGŸIŸaŸcŸfŸhŸhŸlŸlŸxŸŸŸƒŸŽŸ”Ÿ Ÿ¨ŸÍŸãŸôŸ    3 ÒÜú-››£§²ÀÉßóý	"1Qn†Š£»ÊÎÙåðÿ.<Kw„ˆ•§§µ¼ÎÎÜÜÝñÓ$"'QQ$Q,Q6Q8Q=QÔˆ1OÞ	Þ	ç		
-
-%
-9
-Q
-f
-{
-„
-‰
-‰
-™
-¥
-«
-·
-Î
-ñ
-
-TÕ€5K�K�k�w�ƒ�‡�‹�š�®�¶�¼�Ð�ß�ë�÷�û�þ�‘‘ ‘$‘.‘2‘;‘A‘T‘Ö$).IIII1I7I×,‚‰–˖ˬ˿ËÊËÐËÓËÛËØ¨ï““*“-“E“P“`“r“v“„“�“¯“µ“µ“Á“̓ړä“ì“ð“ð“ð“ó“õ“ù“ù“þ“””(”-”/”/”E”ÙLêù>ú>úZúfú€ú‹ú˜ú¬ú²ú¾úÚ &ò&ò*ò7ò9òÛ`#3C3C7CNC^CnC�CˆCŸC¯C¿CÐCáCòCD4DKDVDaD›DÜTÛOÛOßOûO
-PP!P7P>PPPcPvP�P P¥P¥P§PÝ`Ðvévëvóvww+w:w?wRwiwow{w‹w‹w�wÝwÞH_m[G[G{G‰G�G£G©G®G¶G¹GÅGß$zMM!M6MDMOMàÀnš#‹#‹;‹B‹J‹_‹h‹h‹ƒ‹‰‹‰‹“‹š‹¥‹ª‹´‹È‹Ê‹Õ‹Õ‹ä‹ì‹÷‹û‹ŒŒŒŒŒŒ Œ'Œ1ŒAŒá@/;
-�
-�(�4�A�L�X�e�k�n�q�ƒ�â0 'º’º’È’à’““““!“ã�k‹»“»“ѓԓà“à“â“ï“ý“”””””.”@”K”W”a”d”f”i”k”n”s”x”|”Š”ä<€‹PMPM^MlMqMwM‡M‡M�M¡M§Må8%ÔÔÔ$Ô8ÔMÔUÔXÔZÔ^Ôæ”x™¢Ñ¢Ñ¹Ñ»ÑÅÑÜÑÜÑíÑöÑÒÒÒÒÒ Ò6Ò6Ò;Ò=Ò=ÒAÒCÒCÒGÒNÒNÒSÒcÒuÒwÒ‡Ò瀂ž››¦®¹ÄÏØî F\v~š¦±ÉÔÛæëèLN]º²º²òòÒ²á²ò²ö²³³!³!³&³é85?º¡º¡Ê¡æ¡ò¡ö¡ú¡þ¡
-¢¢êœ$›D›D£D©DºDÉDçDEEEE(E4E4EAESEXEE†E—E¡E¦E¦E¦EÆEæEFF
-Fëx‚œÃ*Ã*×*á*ç*ó*++
-++#+&+/+2+D+j+r+{+{+�+­+²+¸+Å+ì8Ó`Ó`ã`æ`ë`î`ü`aaaaíD&VêVê^êfênêvê~ê†êŽê–êžê¢ê¦êîdav££"£2£=£B£O£X£\£b£h£p£x£„£ £££®£®£¶£ï@nzFéFé`énéé…é‡éœéÏéÕéÕéáéð(.4z¡z¡ƒ¡‘¡ ¡¯¡´¡ñ0R’R’`’x’«’±’³’³’¹’òDŒ™‹”‹”·”ŔДԔؔܔà”ì”ù”ü”•ó€Ïë‹‹–ž©´¿ÈÞòû6LfnŠ–¡¹ÄËÖÛïô<«8«8³8Ñ8â8ò899,9D9F9H9õLÁÐkJkJ…J˜J­J³J¹JÈJÖJÖJÙJäJöˆú[�[�q�•�§�§�¹�Ä�Ú�Ú�ê�ì�ì�ì�ý����� �'�-�3�3�6�D�÷|½½Ô½ã½æ½¾*¾:¾c¾s¾€¾°¾¿¾ܾ̾â¾ò¾ò¾¿¿¿¿¿"¿%¿‰¿ø8ڜڜèœóœþœ!�7�:�E�ù?€–€–‰–•–¥–²–ÖÔ–å–ú–——'—9—A—b—v—y—�—‘—¢—É—Ü—î—#˜%˜6˜B˜G˜O˜q˜„˜�˜±˜úH'5à”à”ú”
•&•;•A•G•G•O•Q•}•û$!ãPãPñP
QQQQü8JT.Û.Û<ÛSÛ^Û^ÛiÛqÛqÛwÛýDìùóó'ALL]mošþl@W¸˜¸˜¼˜͘Þ˜÷˜™™$™/™R™c™m™o™z™…™Ž™—™ª™½™Ιؙؙڙÿ$ôù;�;�D�M�S�X� 
-ºSºSÃSÎSßSDÌÙžðžð­ð²ð»ðÌðÍðàðãðéðh-ƒÛ0Û0111"1%1*1.1M1a1d1v1~1…1¤1­1¯1Î1×1×1×1Ü122&202:2A2M2Y2c2c2c2„2„2�2�2�2˜2š2š2£2¥2¥2ª2¬2¬2±2±2±2µ2Ð2æ2ñ2333 3,383D3W3n3€3„3�3¥3µ3×3ô3444444%4,4¬4LÈדý“ý§ý®ý³ýÉýËýÜýàýóýùý&þ4êê&ê.ê6ê>êFêNêRêVê,öéöéþéêêêêêx7nn‚‡‘˜«ÄÄÓéò+24799E|
-Ðkö®ö®¯¯0¯9¯D¯O¯Q¯d¯r¯}¯ˆ¯œ¯§¯ª¯°¯´¯·¯½¯Á¯Ä¯Ç¯Ú¯ï¯÷¯ú¯°"°%°+°.°A°V°^°a°y°‰°Ž°Ž°–°–°¹°¹°¹°½°¿°¿°Ã°Å°Å°É°Ë°Ë°Ï°Ï°Ï°Ò°Ô°Ô°×°Ü°â°å°é°ë°ñ°ô°± ±%±+±.±3±F±a±c±y±y±y±~±~±€±€±…±ˆ±®±®±®±Æ±Ì±ã±ò±²²(²M²R²R²j²ˆ²�²�²¥²Ã²Å²Å²Ý²ù²û²û²³/³/³M³Y³^³^³v³�³’³’³ª³Æ³Ë³Ë³Ï³ç³´	´´´´'´E´I´I´g´l´l´„´›´¢´§´§´¿´Ö´Ý´ë´û´ µ&µ(µ(µ6µ>µgµiµiµ�µ¢µÁµÆµÆµÞµóµ¶	¶-¶L¶m¶p¶u¶u¶�¶¤¶®¶³¶Ä¶Ä¶Ê¶Õ¶ê¶ï¶ù¶	·	·?·M·S·j·r·{·{·‡·‹·‹·”·£·¬·¬·µ·¿·Û·ù·¸%¸+¸@¸H¸T¸^¸^¸v¸x¸ƒ¸›¸�¸½¸½¸Â¸Â¸ø¸¹¹¹¹ ¹ ¹(¹7¹@¹@¹I¹O¹k¹v¹Ž¹�¹›¹³¹µ¹Ñ¹Ñ¹Ñ¹á¹ºººº3º8º8ºPºgºqºvºŒºŒº£º£º¯º³º¹ºÂºÑºÚºÚºãºîº»»$»/»J»L»L»U»m»x»Ž»›»£»Ä»Æ»Î»è»ë»ô»ù»¼$¼$¼?¼I¼T¼p¼ƒ¼š¼¢¼¬¼¬¼µ¼¹¼Ð¼½½½½'½0½4½K½ƒ½ƒ½…½…½¡½«½³½³½¼½À½×½¾ ¾&¾=¾E¾R¾W¾W¾`¾d¾{¾³¾Ä¾Í¾Ò¾Ò¾Ý¾á¾ù¾¿¿ ¿5¿M¿M¿w¿�¿�¿ž¿¢¿µ¿½¿Ä¿Ï¿Ô¿Û¿Û¿à¿À'ÀEÀ\ÀfÀpÀpÀ€ÀªÀºÀÌÀØÀÜÀöÀÁÁÁÁÁÁÁ!Á!Á,Á0ÁHÁ_ÁiÁnÁ„ÁœÁœÁÆÁÐÁõÁúÁúÁúÁÂ	Â!Â8ÂBÂGÂ]Â]ÂuÂu§±ÂÎÂÕÂàÂåÂ
-ÃÃ0ÃBÃJÃLÃeÃsÃ�ààÃÍÃÏÃùÃûÃÄ"Ä,Ä6Ä=ÄZÄcÄcÄ�čīįįįÄËÄÐÄÅÅ5ÅLÅQÅ[ÅeŒŦũÅÀÅÀÅÀÅÀÅÊÅàÅ÷ÅÆÆÆÆ5Æ?ÆOÆOÆkÆƂƔƞƤƻÆÃÆÌÆÑÆÑÆÑÆíÆÇÇÇ(Ç-Ç-ÇEÇ\ÇfÇvÇvǒǦǩǻÇÅÇËÇâÇêÇóÇøÇøÇøÇÈ(È+È=ÈOÈTÈTÈTÈlȃÈ�È�È�ÈÂÈÓÈÝÈãÈúÈÉÉÉÉÉ5ÉFÉXÉ]É]ÉrÉrÉrɎɎɨɯÉìÊ@!Š�Š�ž�¬�¬�¹�Þ�é�í�û�þ�ž	0EM’Õ’Õ›Õ®Õ´ÕÀÕÉÕÖÕÛÕ
-|�œz´z´—´™´§´§´µ´È´ð´µ!µ1µTµ<µnµ޵£µ¨µ¨µ¨µºµ½µɵ8Ž˜ú×ú×	ØØ(Ø,Ø,Ø1Ø1Ø7Ø¬°×sôsôƒô™ô¯ô­ô½ôÅôÌôÐôØôèôöôõõõ õ%õ%õ,õ0õ0õ2õ™ö
4GPÚ�Ú�î�‘‘‘"‘/‘8‘I‘p+C;LSdkk���—¥­­Ø . ; Y Y f f f t D¦³2�2�>�U�`�f�l�r�ˆ���”�š�„Sp‹‹¢¬¼×ò
(;LQ‹§¬·ÁÎØæìøÿF,-4++/]I�²@
+þ+þ=þHþUþ]þeþmþuþ}þ…þ‹þ˜£Å‹e‹e£e²eÀeÐeÖeÖeáeìeïeôeþefff f&f,f/f8f9f9fEfGfSfX7‰¦Î¦ÎÄÎÊÎÑÎáÎèÎðÎöÎýÎÏ!Ï%Ï*Ï0Ï>ÏAÏFÏIÏIÏYÏjÏlÏ~Ï€Ï�ϒϙϛϨϪϪϺÏËÏÎÏÐÏÜÏÞÏþÏÐ
-ÐÐÐ Ð&Ð)Ð)Ð9ÐJÐLÐwЙЛТФааÐÄÐÈÐÈÐÞÐ@–¢#]#]9][]a]f]y]†]Œ]�]—]0+ø+ø4ø9øBøHøHøMø,;BЧЧ™§¥§³§¼§Á§ǧ8ˆ’îîî îKîXîZîaîiîkîqîä6¾Ì¾ÌÜÌßÌâÌöÌþÌÍÍÍÍAÍAÍDÍTÍVÍVÍYÍ[Í[Í^Íu͊ͥͯ͹ÍÁÍÁÍÁÍÃÍÃÍÈÍçÍíÍüÍÎ Î0Î2ÎDÎTÎYÎYÎeÎeÎrÎuÎuΠÎ8òüÛÛ)Û?ÛNÛlÛpÛvÛxÛxÛ~Ûô…¾Ä¥Ä¥Ö¥Ù¥ã¥ð¥ô¥ú¥ú¥¦¦¦¦¦¦#¦)¦0¦6¦=¦C¦J¦P¦W¦]¦d¦j¦w¦}¦„¦�¦•¦•¦ž¦Ÿ¦°¦Ã¦Å¦Õ¦Ü¦ç¦ò¦ý¦§§§§(§LWf�x�x™x©x©xÇxÍxÝxãxéxùxûxûxûx"yhÝó{Ž{Ž�ŽŸŽ¤Ž´Ž¼Ž¼ŽÊŽÔŽãŽëŽ÷Ž���#�.�1�9�D<I¾Ú¾ÚÒÚîÚüÚÛÛÛÛ Û Û'Û P„”||)|2|<|A|S|S|S|U|g|n|Ÿ|»|¼|Â| 0Ž–{m{m‘m¤m¶m¼m¿mÇm!<alú~ú~!%16:@"\É܆†Š�°ÃÎâó7Rmˆ£¾Ùô°#Tct‚Ö‚Ö�Ö¢Ö¨Ö²ÖÊÖÐÖÒÖÝÖõÖ×× × × × ×%×$X£µqtqt‘tžt£t¯tÏtÕtâtïtötÿtuu%X†˜sêsêŽê–ê¡ê½ê½êÆêÆêËêÜêåêðêðêüê	ë&,’™NÌNÌbÌtÌyÌŠÌ·Ì'ä6s˜s˜�˜�˜“˜™˜­˜´˜·˜Ò˜Ü˜á˜è˜í˜í˜þ˜ð˜™#™/™C™L™T™e™e™e™n™u™ƒ™…™�™–™µ™Å™Í™ß™è™ù™šššššš"šeš(	HXmXmxm‡m“mžm©m½mÐmÛmçmømým	nnnn4n@n@n[nmn€nŽn£n©nÍnÕnÕnánånénoo:ooIoTokooovo{o{o�o–oµoºoºoÆoÌoÒoÔoäo) HlSÞSÞgÞwދޘޜޥެ޲޴ÞÇÞÏÞßôÞÙÞ)ß8ßJßQß`ßrßy߅ߙ߹ßÃß›à*LbÌbÌqÌyÌy̷̘̤̬̲̆̽̿̿ÌÅÌ+<|‡êƒêƒøƒ„„#„M„+„[„§„,˜Õ÷’~’~¼~Í~ß~ì~ü~$6DNScl�‡‹�- GKryry�yžy¤y.Ü4`‡`‡~‡Ї“‡±‡±‡³‡º‡º‡ˇÒ‡߇ò‡û‡ˆ
-ˆˆ/ˆJˆJˆ`ˆbˆbˆxˆzˆzˆ†ˆ†ˆ›ˆ¬ˆ²ˆµˆµˆ¸ˆ½ˆňÖˆ݈ãˆôˆ÷ˆ‰‰‰‰‰4‰/h¦’•’•¦••Ò•Ò•æ•ð•ô•ø•–––,–5–9–H–[–a–h–w–z–…–º–Æ–Ò–Ú–ä–ò–——#—4—G—M—”—¦—´—Ê—Ù—ä—ú—˜˜˜8˜D˜O˜V˜\˜c˜l˜o˜–˜04Yb*Ö*Ö3Ö;ÖGÖXÖ`ÖhÖ{Ö€Ö1 �´H=H=b=h=h=w=ƒ=Š=�=�=š=£=£=©=­=°=º=Å=Å=Ô=Ý=Ý=è=í=ð=ó=ö=ù=>>>>>>2 ÚÞîðîðòðÿðñ3¤“ø ƒ ƒ¶ƒƒʃÛƒ߃󃄄%„*„0„5„L„U„m„}„}„Š„˜„¤„´„ƄƄʄЄØ„â„â„æ„ê„ù„	…
…2…2…A…C…I…Q…c…x…‚…‘…–…–…¢…¢…°…¹…¹…È…ö…ú…ý…†††)†>†M†\†g†i†o†|†‚†‰†–†œ†œ†£†¼†Á†ɆцÚ†á†ê†Y‡4,%lã9ã9ë9ï9ö9ý9::::&:+:7:C:S:m:|:�:‰:�:¡:»:Ï:Ö:ç:è:;;";';J;N;W;_;h;‡;Ž;Ÿ; ;¤;Æ;×;ì;÷;<<<-<><D<N<5,[‘[‘d‘‘…‘…‘Š‘64ÏØ;A;A?ADAPA\AhAsAzA|A7(êðrr%r7rCrIrQr8»üª¬ª¬¸¬À¬Ŭˬó¬­­&­1­6­L­Y­b­g­–­�­¥­§­°­¿­Æ­ì­ì­õ­®®<®D®W®g®w®‡®–®¦®¶®Æ®à®å®í®í®ò®¯¯0¯;¯J¯Z¯j¯z¯”¯”¯”¯ ¯¦¯9”ÍîêÈêÈÉÉÉ%É,É5ÉHÉbÉhÉpÉ�ɓɓɢɩɮÉÌÉÏÉØÉÝÉûÉþÉþÉþÉÊÊÊ!Ê1Ê:8‹•›\›\Ÿ\°\Ì\á\ò\û\]];p	!xxx"x'x3x9x@x\x’x›x¤x°x<ƒÂrÄrđĤİİÄÁÄÈÄÈÄÑÄãÄìÄ
ÅÅ+Å2Å2ÅHÅTÅTÅ{Å~Å�żÅÛÅçÅþÅÆÆ(Æ?ÆVÆuƔƠƷÆÎÆÓÆäÆûÆÇÇÇ(Ç9ÇPÇgÇxÇ�ǦǰǹÇÀÇÖÇßÇ·È=8uîîü&.006>80:
-§
-§§;§^§j§w§�§†§?,£ª›]›]¤]­]À]Æ]Ë]@0	ÈŠÈŠÖŠàŠôŠúŠüŠ‹A,8?FFZl}‹‘—B,8m8mAmLmNmNmSmC\m€BBdht…‘š¹ÅÎÔØæD€H_H_X___r_~_¥_¯_¹_Á_É_Ñ_Ý_ï_``'`0`>`D`J`M`T`\`EX«ýË]Ë]×]à]é]ï]û]^^^^#^1^<^D^]^o^z^ƒ^ƒ^ˆ^�^›^¢^§^§^­^´^¹^Å^Í^Ö^Ö^Þ^í^ñ^þ^____#_*_6_A_]_]_]_e_l_s_z_�_ˆ_�_–_�_¤_ª_³_¹_Ì_Ý_ù_```F|Kf¦ô¦ôÅôÓôãôïôõôþôõõõõ!õ+õ+õ2õ5õ;õ;õEõSõZõZõZõhõG,ë#ë#$$4$X$`$HX]+h+h3h>hPhVh^hhh‹h‹h�hªh¾hËhÓháhi*ibigigiyi†iši§i¬i»iði÷ijjjj%j2jFjSjXjgj›j¢j³j¹j»j»jÃjÃjÐjåjëjþj"k/k?kDkJkWkbkhkskskyk‚k�k�k¢kÁkÎkÛkàkàkäkýkIàÊþÃÃËëú
.ANaˆ•¡­­ºÄêý//O\‘}¢§¹½ÅÅÓÞìóþJLRaŒ¤Œ¤™¤¡¤¤¤²¤µ¤¼¤À¤Ã¤Ç¤Õ¤Ü¤á¤K8GQD¤D¤Q¤Y¤\¤j¤n¤|¤€¤…¤L0FFOTcginMTØé›ö›ö¥ö¸öËöÓö÷t÷N(LRSS[i{„†Oœ'Jƒaƒa�a¾aÐa×aäaðaøabbb*b3b:b>b>bDbJbbbkbqbzbbbbƒb�bP8�‹»»ÄÔááè÷þþQ¼W‚HkHknkqkkšk¨k¯k¼k¿kÃkÍkÚkúkúklll8l:l:lJlLlLl\l\l€l‡l�lšlžl·l¹lÞlçlílôl6mR<#
-¦
-¦¦ ¦(¦8¦D¦N¦}¦¦…¦S$³`³`¼`Å`Ë`Ð`TZŠ¿Š¿ž¿¥¿µ¿¼¿¼¿Ò¿Þ¿À$ÀCÀOÀcÀgÀmÀ{ÀÀ…À“À“À“À²ÀÑÀåÀýÀÁÁÁÁ Á1Á1Á1Á1Á4Á9Á>ÁDÁXÁ\ÁbÁmÁqÁwÁ‚Á‚Á‚Á‡Á�Á¡Á¥Á«Á¶ÁºÁÀÁÉÁÉÁÉÁþÁUDs€KKO_uwˆ�”™ ²²´V¬Íôê·ê·¸¸¸¸&¸5¸B¸F¸P¸f¸f¸v¸‚¸‡¸‡¸ ¸«¸³¸¸¸ʸʸʸÒ¸à¸î¸ø¸û¸¹
¹¹¹,¹W�-M�M�M½MÀMÎM×M×MîMÿMNN,N9N>NBNSN}N…N‰NŽN–N¨N·NºNîNXHóóó$ó-ó9ó;ó=óLóLó[ó]ó]óbóY¸9£`Y`Y�Y„Y‡Y¤YÈYÏYÚYèYòYZZZ#Z3ZGZLZ[ZnZŽZ—ZŽZ©Z«Z´Z«ZÆZÈZÑZÈZãZåZåZõZõZ[[[E[l[l[r[u[š[¢[¨[µ[Å[Ù[Þ[í[\#\/\B\b\o\b\}\‚\�\‚\�\¢\¯\¢\½\Â\Â\Ò\Ò\å\ö\û\'])]N]N]T]W]e]j]}]ˆ]—]—] ]^Z0	ëëë#ë)ë2ë9ë=ëCë[(�•2€2€>€D€J€c€n€\¼w¢dd5d8dTdfdmdzd†d•d™d�d¥d¯d¾dÇdàdàdçdídôdeee!e#e%e+e1eIeReReYetewe‰e]¬ F“á“á›áŸá«á»áÆáÕáááêáÿá(â4â<âZâeâ„â„â«â­â­â­âÆâÈâÈâÈâàâàâòâúâããã'ã.ã.ã@ãFãPã^D�œp6p6‚6Ž6¤6¾6É6É6Ú6ê6ì67_¼B²º²ºȺкÚºæºôº»,»O»^»‰»�»•»Ÿ»Ç»ê»ø»¼¼>¼N¼S¼[¼†¼мœ¼¡¼®¼¸¼ƼƼмÚ¼`@nzËGËGÓGôGøGHHHHa *nØ1Ø1ã1ç1ï122.292B2X2k2€2”2 2¸2È2Û2ã233$3.3S3X3b3t3�3œ3©3¾3¶3Ù3ñ3õ3ú3ú344404C4Y4[4[4n4v4v4v4ˆ4ˆ4‘4£4ª4ª4¼4Â4è4b@1=ÃøÃøÑøÖøÙøëøñøôøöøüøcè¸îP‘P‘j‘‚‘Ž‘ž‘°‘´‘·‘À‘ÑÔ‘Ô‘Ô‘Û‘è‘ë‘ð‘í‘J’a’d’f’}’€’‚’Š’š’š’£’²’À’Ð’Þ’ç’î’ó’ó’ó’ù’
“dD	ººº>ºaºnº{º†º¢ºªº²ºe 	
>ò>òHò[ò`òf4zƒ~
~
Œ
•
œ
¥
g8êôú›ú›œœœœ#œ,œ/œ5œhtRkXzXz}zz˜z¸z¾z¸zÕz×zÝz×zôzözöz{{{{{{\{i0«P«P´PÆPÔPØPÜPÜPáPj@ºÓºÓÉÓÑÓåÓïÓ÷ÓÿÓÔ
-ÔÔÔÔkØ"T
-ž
-ž ž/ž:žLžcžcžtžŒž™ž¬ž¸žÞÓžõž÷žŸ!Ÿ!Ÿ!Ÿ2Ÿ^ŸeŸnŸtŸ{Ÿ�Ÿ†ŸŒŸ�Ÿ—Ÿ¢Ÿ¨ŸÒŸlüi¤ÐbÐbïbñbccc-c2c;cBcPc^ctctcwc|c†c†c�c“c©cÁc½cÏcÔcòcdddd dCdEdad[d�d�d¡dµd¼dÂdÅdÊdÚdádädºem”	*;;]…­Õã&i¬®¼ÊØØò);K`y‹›°ÉÐ×óndVHgHg\g^gng|g†gªgÎgÖgègöghhh-h5h:hShshsh”h–h–h·h¹h¹hÚhÜhÜhìhìhòhõhúhiii6iYieiŒiŒi­i¯i¯iÐiÕiÕiöiûiûijjjj#j7jGjSjsjsjjƒj�j�j¦jºjÎjÕjÜjßjGko`AUC#C#K#a#i#i#q#€#Œ#§#°#·#¼#Í#Þ#ð#ô#ù#û#pðñ)È.È.æ.é.ì.ö.//'///9/_/l/w/‰/ž/¯/º/ç/ì/ò/0&0,0/0<0G0Y0n0‚0Š0°0µ0»0Þ0ã0÷01&1=1X1n1€1€1¬1Â1Å1×1q<5@âƒâƒúƒ	„„„ „5„8„=„I„r0	 H H$H8H8HLHPHTHs¼
-5CëCëNëRëvë�ë�ëœë¨ëÇëßëïëìì0ì2ì2ìSìUìUìvìxìxì„ì„ìŒìŒì˜ì¬ì¼ìÄìÄìÖìÝìÝìïìüìíí+ít\QdJ‘J‘Z‘\‘g‘l‘‘ˆ‘�‘’‘¢‘¯‘¯‘µ‘À‘uŒoŽè4è4ó4û4555%5;5O5X5l5“5©5Ã5Ë5á5é566666A6H6S6X6k6vxˆ¢ûû7û<û?ûLûRûUû]ûfûuû}û}ûˆûˆû�û’û’û™ûœû¨ûw0	‘‘БÚ‘ñ‘÷‘ù‘ÿ‘x fòfòjòwòyòyLDSè•è•–––5–C–E–Z–e–k–€–z0SâSâSúSüSTTT!T.T6T;TATCTGTWTeTuT€T…T…TŒTŒT—T—T¶TÄTÏTÑT×TÙTÛTÝTÝTèTêTòTøTúTúTUUUUUUUU&U*U6U{x8ÀXÀXÖXóXúXYYY Y4YBYHYNYQY[Y|´5^8‰8‰\‰g‰o‰~‰ƒ‰ˆ‰˜‰�‰¸‰¸‰Ɖ͉Ó‰Ú‰â‰ð‰ö‰ø‰ŠŠŠŠŠ$Š2Š8Š:Š:ŠJŠLŠLŠ\ŠÁŠ}[CXCX]XkX„X�X¦X³XÅXÚXêXñXY
YY'YCYCYGYRY^Y`Y`Y`YfYfYiYsYsYŽY›Y›Y Y°YÃYÉYÒYÜYìYZ(Z9ZDZDZVZVZVZlZ|Z“ZœZ¢Z²Z¶Z¶Z»Z»ZÑZ~,07º‰º‰Ã‰Í‰Î‰Ó‰tý‚Û‚Û“ÛŸÛ­Û¹ÛÅÛÑÛÑÛãÛéÛéÛöÛÜ Ü;Ü;Ü;Ü;ÜAÜAÜQÜSÜSÜ|Ü€$‚‡®í®í²í¿íõíî�<7Bkškššš›š£š³šºš¼šÄš‚,xHxH|H�H”H”H˜Hƒ,
-XHXH\HpHtHtHxH„hN¤ðNðNûNOOO?ONO_OhO|O”O¤O·OÇOÏOðOPPP?PDPNP[PmP†P•P•P¼PËPÕPòPýPQ Q+Q@QIQcQrQ~Q‡QŒQ©Q¶Q¼QÕQÑQëQöQþQ	R	R	RRR%R%R8RJR]RfRfRyR‰R‘R‘R‘RŸRªR±R¼R½RÑRÕRÜR…DŸ¬!7Q\\m}«†L\kÓZÓZÜZáZèZèZ[*[1[@[O[T[V[X[X[‡l£ºš«š«®«º«È«׫׫ÿ«"¬-¬7¬@¬P¬\¬i¬…¬‹¬�¬—¬›¬£¬ˆ¬GnSãSã[ã_ãkã{ã†ã•ã¡ãªãÆãØãíãä"ä-äLäLäsäuäuäuäŽä�ä�ä�ä¨ä¨äºäÂäÝäÝäÝäïäöäöäå剸Qàwþwx2x6xHxQxZxaxjxsx‹xšx²xÅxÎx×xåxýxyy-y1y7y@yFyQySyVy^ysyˆy‹y–yœy¤y¨yºyÀyÆyÍyÓyãyéyûyzzTzŠ<ÃÎs@s@“@£@¨@Î@ô@A!A(A-A9A‹lýª¯ª¯¾¯ǯد°#°2°?°J°g°z°“°“°©°©°¶°ȰÒ°Ú°Œ ¥ÉÀeÀeØeÚeèeôe
ff'f§T§™ žÂ3?3?A?F?N?V?c?u??„?–?«?Á?×?í?ÿ?@@@)@)@?@N@N@U@\@c@h@p@š8�§Ë+Ë+Ù+á+é+
-, ,),/,›P:J¨w¨wÀwÌwÔwÛwäwêwíwíwxxxx#xœð8p”©”©®©¾©Å©Í©Ô©ð©ªªªª#ª%ª.ª7ª9ª9ªBªQªSªSª\ªeªjªjªsª|ª�ª�ªŠª“ª˜ª˜ª˜ª¡ªªª¯ª¯ª»ªÄªÉªàªäªäªþª««««„«�XÓåòÙòÙúÙÚÚ Ú,Ú5Ú=ÚLÚhÚ™Ú™Ú«Ú²Ú²ÚÄÚÅÚÉÚžÈÝP8P8l8r8|888ˆ8“8�8§8³8µ8»8Â8Å8È8Ð8Ü8â8ç8í8ð8ò8ý89	9999#9)92929292989@9C9S9Ÿ,™ :Ø:ØCØOØWØ\ØaØ 8akvv„Ž˜£«­­³¡x^xlll l.l.l:lElwlwlzl|l|l�l�lƒlƒlƒl…l…l…lŽl‘l”l¡l¢,ÛâÚ‡Ú‡ã‡í‡î‡ó‡£$(-J¡J¡X¡`¡r¡x¡¤<@K¢¢(¢2¢6¢;¢G¢L¢P¢T¢^¢¥ úþÖñÖñÚñúñüñ¦t.Ú°Ú°ê°ö°ÿ°±8±[±j±w±‹±‚±¬±À±Ʊȱʱбұ߱â±ê±§h^t*³*³L³R³[³[³d³s³€³¯³º³³ijÖ³Ö³Ö³ç³ô³ô³´¨@y…››››››#›'›+›A›F›H›©<ðû3 3 H 7 W  ª€�¹ʵʵèµùµ¶¶&¶1¶<¶R¶^¶t¶ж’¶’¶á¶æ¶æ¶	·	· ·@·G·i·«˜ìSBSBcBmBrBwBwB†B‹B¤B­B¸BºB»B»BÇBÒBÔBãBåBñBûB	CCC$C&C&C&C,C¬€›þàþàá
-á!á!á8áLájálá„á—á¢á³áÊáÊáááõáââ-â@â@âCâœâ­8—¡˜\˜\®\·\Á\Ì\Õ\Ø\â\®4<Eà:à:ô:;;; ; ;';¯hqÇ„«„«¢«²«¹«Á«È«ä«è«¬¬)¬)¬)¬2¬4¬4¬=¬?¬?¬H¬J¬J¬S¬U¬U¬^¬`¬`¬i¬k¬k¬t¬v¬v¬¬�¬�¬Š¬Š¬�¬’¬’¬’¬•¬˜¬¡¬»¬Ë¬â¬õ¬÷¬ú¬ü¬ÿ¬
-­­­­­­­&­3­8­8­A­U­X­]­]­f­f­t­x­S®° ¢¦è\è\ñ\þ\]±`UikOkO‹O–OœO§O©OºOÇOÍOÍOÙO²0GO#R#R,R:R@RQRSRSRXR³(‹‘@\@\T\_\h\k\s\´ \€ÃèÃèËèÖèæèõèé%é%é:éBéGéGéTéjévé~é†é˜éÅéÑéäéìéñéñéýéýéêêê(ê-ê4êµ°.V«æ«æ³æ¾æÎæÝæéæ
ç
ç:ç_çdçdçyç�ç†ç†ç­çµç½çÏçüçèè#è(è=è?è?èKèKè]èdèdèvè{è‡è¶8LVz„z„Š„�„�„”„�„ „¥„­„· €„66:IM¸(aaa&a1a9a>a¹Dˆ^ˆ^œ^®^µ^¹^¼^Ç^Ï^ã^æ^î^ºh²ÈffˆŸ©½Ó÷'Jddwwƒ»X=ONëNëXëZëoëwë˜ëŸë¬ë¬ëÃëÌëÐëÔë¼\r…0Ž0ŽFŽMŽ\ŽcŽlŽlކޑޙޭ޶޼ŽÇŽÇŽå޽PFV(;(;F;L;Q;m;s;x;–;˜;¦;¬;¯;½;¾lXoæþæþÿ
-ÿÿÿ$ÿ+ÿ0ÿ3ÿ9ÿ<ÿDÿIÿIÿNÿQÿSÿWÿgÿ¿Œ~�3=3=<=g=’=½=>>>3>3>‚>�>‘>©>©>¹>Ù>à>å>ï>?#?%?*?-?Àˆ;Yc’c’l’v’v’†’“’œ’¥’®’·’Ë’Ë’Ö’Ü’Þ’í’õ’“
““6“6“8“H“N“S“Á4ò‚ò‚ƒƒƒ(ƒ+ƒ1ƒ9ƒÂd±ÆòØòØÙÙÙ'Ù)Ù:ÙPÙ_ÙpÙvÙvÙ‘Ù™Ù¡Ùè'ÒŸÒŸäŸïŸôŸ   # . 9 D I W e s ’ � ¤ ¸ Ô à è ó õ ¡¡¡&¡5¡7¡@¡J¡Ä W[‹è‹è¥è·èÁèÅD8E³ÿ³ÿÇÿÑÿãÿêÿñÿ%Æ<)4’ƒ’ƒ©ƒ¬ƒ±ƒ´ƒÇƒÍƒÐƒÒƒÜƒÇ´`É7>MZgvŠš°½Ðñ
/Rs¦«ÅÙõ )1:L^~“¦ÀÕïû
$6N^j}}°»Æàîú)Blsx˜ŸÄÄçö ""'BITTbwwˆ�¤¤µµ¸ÀÈh
- >û>ûLûgûsûû‹û”û�û¦û¯û¸ûÁûÊûÓûÜûåûîû÷ûüüüÉ0¾Æ³o³oÑoíopppp;pÊX’¤€6€6Ž6—6£6©6¬6±6·6º6¿6¿6Ì6Ð6Ó6Ó6Ù6ËL
-ÓWÓWâWðWðWúWX!X,X5X;XtNtNtZtitntŠt�t’t—t§t²t¹t½tÁtÏtãtêtôtútýtuu!u8u:u=u=u?uYueukutu€u¡u¥u±u¸u¿uÅuÈuÖuìuìuìuñuýuvv$v'v*v0v3vAvWvWvWv_vkvƒv‡v’v•vœv­v­v´vÊvøÀIâWâWöWX	XXX X6X>X>XHXaXoXxXƒXŽX‘X˜X�X¥XªX·X¼XÎXÕXûXþXYYYY"Y0Yù4 (bƒbƒpƒrƒwƒ€ƒƒƒˆƒŽƒúV U U;UAUZUfUxU‚U’U•U¢UÏUÒUÖUVVVV,V4VGVUVdVvVVŒV›V±V¸VÉVÉVÕVàVàVóVöVWWW,W.WAWKW[WdWtW€W€W€W†W�W’W˜WšW¿Wû$ZŸ»R»RÃRÓRâRçRûRS1SNSVSuSˆS¤SòSôSøSüXÂÔ~~#~3~3~4~9~9~C~V~f~l~{~€~�~‘~‘~ýhWåå.å7å=åFåNåWå_ådådålåqåqåyå‡å‡å�å”å”åªå²å¹åÀåÇåÒåÙåïåÿåææ=æSæ`æ§æ�æÅæöæçç+ç.ç2ç7ç@çIç€çqçlç‘çŒç§ç¿çÍç×ç×çìçöçèèè5è9è@èBèCèJèJèZèþ@ãïú‡ú‡ˆ
-ˆ,ˆ9ˆ9ˆ=ˆCˆÿ0W_²„²„À„τքæ„ê„í„ó„,/// /3/H/Q/`y�£l£l¿lälélølmmmm#m+m7mKmSm_mcmcmwm4W`À;À;Ö;Ø;â;ï;ø;ý;<tIbèoèoöoÿopp!p&p=pKpKpgp€p†p”p”p p©p¯p¯pµp<�š2S2SISSS[SjSxS~S‹S,›¢ÎîÎî×îáîïïï˜\~c"c"k"|"—"¦"³"Â"Ì"å"ó"####5#:#H#T#`#l#{#Š#œ#¯#¸#Æ#Í#Í#Û#ä#X¦
¦
º
Ä
Ë
Ú
ó
ó
 469;;;CP­½‡‡‡'‡-‡2‡2‡<‡@‡E‡E‡M‡	H¨¶3,3,K,N,c,l,ƒ,š,¨,¸,Â,Ù,ë,ò,þ,
-,ñøSrSrmr€r‹r‘rŸr8<FŠ�Š�ž�®�À�É�Ì�Ô�<›¦‚†‚†–†¤†¯†º†Â†Ê†Ò†Õ†Ý†
<ju"©"©6©=©G©P©e©q©w©}©(g"“"“<“n“’“•“ “­“¾“Ï“דå“ç“ê“í“í“ú“””””$”5”8”=”=”J”Q”c”f”k”r”„”‡”‰”�”¢”¥”§”®”À”ÔŔ̔ޔá”ã”é”é”é”é”î”î”õ”ü”•	••�•8mwRÑRÑ\ÑdÑuъђѕїћÑPÙéJ›J›^›g›€›‘›¶›¹›Ó›Ý›ê›ê›ì›ô›H¾ÌR‡R‡`‡l‡q‡q‡~‡�‡•‡•‡›‡Hao<<"<3<C<F<H<U<Y<\<f<l:Qëëö		/	A	M	[	d	s	…	¤	¶	Û	ä	ù	
-
-
-
-
- ŸÓïÓïõïøïÿïð.ð2ð:ðLðjðjðjðjðwð}ð…ð‘ð–ð–ð�ð£ð¯ð´ð»ðÂðÉðÒðäðöðûðþðñññ'ñ.ñ;ñZñpñ‰ñ�ñ¬ñÄñøñøñÿñòòòòòòòòò$ò+ò.ò>òDòLòRòTòTò[òdòfòfòfòiòkòkòròuò{ò{ò~ò”ò¡ò¡ò¬òÀòÇòÍòâòåòóó
-ó
-ó
-óóó"ó"ó"ó-ó5ó8óãóxÇá--,-/-4-?-G-d-o-v-}-¥-¥-­-Ó-Þ-ã-ã-ë-.".'.'.+.:.œ`ƒú„ú„……'…-…0…0…7…=…Q…V…Y…^…g…g…g…k…u…„…Œ…¡…¬…Â…Æ…È…Ý…á…á…á…ë…Œp�h<h<†<‰<¡<¡<£<´<Á<Æ<Ì<é<ì<÷<û<û<===)=-=-=6=9=G=d)ܧܧ¨¨&¨1¨4¨:¨B¨V¨f¨s¨u¨ƒ¨�¨ ¨´¨¶¨¶¨Æ¨�Xxà™à™ê™ð™÷™ý™š;šOšOšašhš€š™š²šÄšÈšÔšÖšášìš÷š÷šûš UY~Û~Û’Û¡Û©Û€›à›à¹àÈàßàñàááááá(á4á7á:áFáKáTáYá`áyáyá�á@v‚‚©‚©‹©³©Ö©ã©ð©û©ª&ª+ªÌh—nõnõ‰õ“õ¡õ§õ±õ±õ¾õÄõÈõËõÍõÔõÛõåõñõúõö&öCö3öXöXöföŽö�ö�ö¤ö»öÇöÏöÑöëö÷÷"÷X÷ì¥ÜƒŒƒŒ�Œ¥Œ­Œ¼ŒÍŒÏŒæŒøŒôŒ���#�*�3�Q�M�`�p�‡�˜�›� �¦�Æ�Ü�é�ð�û�ÿ�ŽŽŽ Ž#Ž)Ž8ŽIŽNŽZŽeŽwŽ L&5¨M¨M²M¹MÄMÐM×M×MÝMäMôMöMýMNN ,z�^Ë^Ër˄ˊË�Ë–Ë!<0;s&s&…&•&µ&É&Ï&Ñ&Ñ&×&"0š¢ŠÒŠÒ“Ò™Ò¢Ò«Ò´Ò¾ÒÃÒ#<£®ÊÒÊÒÙÒÞÒùÒÓÓÓÓÓ Ó$8NXâÕâÕòÕúÕÖÖÖ Ö'Ö%\õ2¹2¹@¹E¹M¹T¹Y¹�¹¤¹±¹¾¹ɹæ¹î¹õ¹õ¹ø¹þ¹&,“švîvî„îžî«î°îÃîÉî'¼Þ	CVCVoVuVŽV¦V­V¹VÅVÉV×VöVöVW W'W.W6W@WHW\WmW~W“WšW£W©W±W±WµWÒW(4#SøSø\øaøjøsøyøyø~ø)<nØn؂ؕآخضØÒØâØåØõØ*4ÓÜ8888'8'848<8A8I8+,W^#G#G1G3GEGMGRGXG,D‹þ‹þ˜þ¦þ®þ¶þÄþÌþÔþÜþäþîþóþ-^š‹
-‹
-“
-£
-µ
-Ä
-Í
-Û
-é
-õ
-0GVv…˜¦»ÒÛê#:N[iuŠŸ±¶ÂÎÜñ

%
0
7
B
L
U
Y
.(QW®þ®þ¹þÍþÜþàþ/0X`NNWagmoot0@	c$c$w$…$“$�$®$¿$É$Ó$Ý$ã$1ˆ LL+L5L8L@LPLPLdLnL„LŽL�L¯L´LÅLÓLÞLïLýLMMMM2PÙé–ù–ù´ùÇùÓùíùþùú ú&ú,ú;ú3$mrhyhyly|y�y‘y4H¾Ì^^^^4^?^H^J^V^Y^\^f^5D&CaCaLaZaZa\abamama|a}a‚a6(¤ª2}2}6}A}F}P}R}7D.;æóæóôóôô
-ô)ôCôCôGôMô8d>Sùùù ù,ù,ù8ù8ùEùEùTùcùrù„ù™ù£ù²ù²ù¼ù9ÔT–Ó–Ó´Ó¸Ó»ÓÌÓßÓéÓïÓóÓöÓøÓþÓÔÔÔÔ!Ô9ÔAÔDÔUÔiÔpÔzÔ~Ô‘Ô”Ô Ô¥Ô«Ô³ÔÆÔàÔèÔëÔüÔÕÕÕ*Õ8ÕRÕ_Õ~Õ~Õ�Õ§Õ´Õ¹Õ¹ÕÊÕÞÕåÕêÕêÕûÕÖ&Ö+Ö+Ö1ÖBÖVÖuÖzÖzÖ€Ö‘Ö¥ÖÄÖÉÖÉÖÚÖîÖûÖ×××%×2×7×7×H×\×i×k×k×k×k×k×|×”×£×¥×¥×¶×Ê×Ó×Ó×Ù×Ù×â×â×kØ:4Ã̺ȺÈÈÈÍÈØÈÛÈßÈåÈ;l 7MM9MXÉÛ±u±uÑuÞuãuïuvv"v-v4v=vAvMv?X¶Èuu1u>uCuOuouuu‚u�u–uŸu£u¯u@$
´ ´ Ê ¡#¡1¡A X\^è^èbèkèmèB éíNñNñXñkñpñC áå{—{—�—¡—©—D(*0̨̨٨'©E0qyËË0Ë3Ë3Ë<ËMËPËXËFHª¸Ë•˕敖
–––3–8–:–:–D–GD lÊÌÊÌÕÌîÌõÌÍÍ8Í8ÍEÍg͈͙ÍÄÍÔÍåÍùÍÎÎÎ%Î=ÎwÎ~Î�ΡβÎÝÎöÎÏ	Ï	Ï	ÏÏÏ0ÏÏHÏbÏjÏÏªÏ»ÏæÏøÏÿÏÐÐÐ"Ð1Ð6Ð6ÐEÐYÐЇПЮÐÅÐåÐåÐåÐýÐ	ÑÑ Ñ'ÑMÑHXºÌj·j·Œ·�·–·™·¤·¤·µ··Ì·Ï·Ò·Ø·æ·I0 ¨ãóãóùóô0ô2ô2ô:ôJD
-Ì
-ÌÌÌÌ(Ì:ÌBÌGÌSÌYÌ[Ì[Ì`ÌKL4¡4¡D¡R¡b¡h¡“¡·¡È¡¢¢ ¢LØ9ª„ª„Ą˄τӄބï„ý„…… …)…4…K…P…Y…\…f…n…q…t…ˆ…Ÿ…§…¾…Å…Î…Ñ…Ó…ã…æ…è…ï…ÿ…†
-†
†3†:†L†M<ðû˜˜!˜#˜1˜N˜R˜b˜o˜N �…;ê;êUêgêqêOH -fófózó|óƒó‘ó¹ó¾óÕóÚóÚóÞóæóP@:F=Q=QMQZQaQvQ}Q„Q�QQHâð@.@.Z.g.w.Œ.“.œ.¹.¼.Æ.RPúVúVW0W0W$B$,‡ŽSSS'S,S0ST„Õ���$�1�6�?�D�I�N�S�X�]�u�–�§�Á�Î�×�Ü�á�æ�ï�ô�ü�žž ž/ž5ž?žDžMžTžRžbžgžwžˆž½žžéžîžóžøžŸŸ'Ÿ3ŸJŸSŸZŸfŸrŸ”Ÿ”Ÿ›Ÿ¢Ÿ§Ÿ®Ÿ·Ÿ¸ŸÁŸÆŸƒ <#{"{"Ž"¨"Á"Î"Õ"×"×"à"î"D™¦;;IWems’’›ˆ/Mš³š³ª³µ³À³dzdzê³ö³´´ ´$´*´9´?´F´F´J´J´J´J´W´Z´j´	0ÎÖÓ–Ó–í–————$—
+Ì;X9X9p9v9�9“9Ÿ9´9º9À9Æ9å9ê9ò9ò9:::0:6:8:G:K:Z:`:c:e:t:x:‡:�:�:’:¢:¦:º:½:À:Â:Ñ:Ô:à:Ä¥Òà6à6777 777A7G7J7M7P7Œ7�7’7”7§7ª7­7µ7»7À7À7Æ7Ò7Ô7Ý7Ý7Ý7Ý7ã7æ7ë7î7ö78ˆCaоо°¾´¾¼¾¾˾Ó¾Ù¾ܾè¾è¾¿#¿-¿0¿3¿:¿B¿H¿U¿U¿k¿
hr¦r¦{¦‰¦˜¦£¦³¦æÓ¦ã¦ò¦§§!§B§D§S§b§r§‚§®§®§³§4æï«—«—Å—Ó—ë—þ—˜˜
+˜h:P a a.a0a=aJaQaXa`ada{a—a«aºaÂaËaÍaÍaÕa44=`I`InIŠIŠI�I§I§I­I TXsûsû�û�û(-3[#[#c#}#…#š#œ#¦#HÜêÉwÉwéwöwûwx'x-x3x@xIxJxVx(Z`®Û®ÛÈÛÚÛâÛèÛðÛ$ü²ˆ²ˆ»ˆÃˆÉˆÎˆ0¯·ÒÔÒÔèÔóÔÕÕÕ8– ÐcÐcÞcåcðcõc÷cddddPr‚ÈbÈbÖbÝbèbíböbccccc"c(c€[w²Ã²ÃàÃäÃèÃÿÃÄ%Ä;ÄMÄMÄiÄnÄzĀăĊĎĒĖĚĚĚÄWÅà:.‡‡Û‡ã‡þ‡	ˆˆˆ*ˆ7ˆKˆ^ˆ|ˆ‡ˆ•ˆ¥ˆ®ˆ±ˆ»ˆ¿ˆÚˆ߈æˆîˆ‰‰‰ ‰1‰7‰=‰I‰X‰p‰t‰y‰Œ‰¬‰»‰‰ɉɉЉ؉å‰ç‰ù‰ŠŠ
ŠŠŠŠŠ#Š-Š8ŠDŠRŠhŠ—Š—Š»Š»ŠŠÌŠâŠ‹	‹	‹‹‹.‹P‹U‹U‹X‹w‹z‹†‹‰‹Œ‹ª‹ª‹¯‹¯‹·‹¼‹À‹ЋÓ‹ì‹ì‹ñ‹ñ‹ŒŒŒ+ŒIŒLŒNŒNŒaŒhŒpŒ†Œ¤Œ§Œ©Œ©ŒÄŒÇŒçŒ����&�,�,�I�I�I�N�N�N�Z�m�x�‰�Œ���”�”�™�±�´�Ú�Þ�ù�ŽŽ$Ž(Ž6Ž<Ž?ŽDŽDŽTŽWŽZŽhŽqŽwŽzŽŽŽ“ŽŸŽ«Ž»ŽÓŽøŽ�	� �9�K�T�X�[�[�k�q�ƒ�ˆ���—�£�À�Ã�Å�Ö�Ý�é�������6�I�P�^�^�^�e�q�{�‰�’�˜�Ÿ�ª�³�Â�Ñ�à�‘	‘s‘4×à+—+—?—M—e—p—r—r—z—@@L#*7FUj~�–µ¹`ˆœ»&»&É&Ö&à&à&ó&û&''#'#'''1'6'6'<'|w’j¥j¥Š¥š¥¥¥ª¥¬¥²¥Ä¥Ö¥æ¥÷¥¦	¦	¦	¦¦(¦E¦U¦W¦W¦`¦l¦ XÓåû8û89	99.9:9A9X9Z9q9q9s9v9|9 @8DÚ‰Ú‰è‰ê‰ŠŠŠ#Š!|ÿÓ Ó      5 F [ ` s w ˆ › ¤ ´ ¼ Ì Û Þ !"¬ElÀ‚À‚Ö‚ç‚ë‚ú‚ƒ ƒ+ƒ1ƒIƒIƒ]ƒkƒuƒ„ƒ‰ƒ‰ƒ•ƒ•ƒ›ƒ›ƒ„
+„
+„2„2„@„C„F„T„Z„c„‹„# †Š \ \)\6\;\$H—¥ÆÆáãô %Œ¬Ë>ø>ø_øbøkø‡øšøšø¥øªø²øÌøÔøçøñøöøùùùù ù(ù+ù.ù3ùZù& lpîÊîÊËËË'D6CP—P—l—n—�—†—–—£—©—¬—¸—(p¼Ô¦¦´ÂØçìüþ
 :JYY```O)h#9°v°vÆvÈv×vëvívövøvøvûvwWwdwnw~wˆw“w–w¤w*$gl(y(y,yH!*‰*‰8‰D‰I‰I‰Z‰l‰q‰q‰w‰?,à_à_é_ò_þ_```@Lùê�ê�ø�û�žžž$ž8ž8žZžZžwž{žž…žA …‰††Š™�B\˜«–÷–÷ª÷¸÷½÷Ã÷Î÷×÷×÷ç÷ó÷÷÷øøøø>øC4Š“žž¢¬¼ÝòòòöD,jqLLLSLcL‰L“L•LE¸�ÇÈ8È8Ð8Ø8ã899!959?9K9V9V9e9†9«9¸9À9Ö9á9é9é9ø9:>:K:S:i:t:†:†:”:›:­:­:»:»:¼:Ï:F ”˜ööú!Gpu�ÚØÚØôØÙ"Ù"Ù)Ù+Ù+Ù9Ù;Ù;ÙGÙGÙMÙUÙYÙdÙ|ٖٖٖ٣ÙHD0}0}8}D}l}€}„}“}Ÿ}­}¼}~~-~J~T~c~a~�~�~¶~¶~»~À~À~Ï~ã~#1Sk†�“••¡¡££³¿¿ÃÈÑãêø€?€H€Z€Z€`€»‚I|7££»ÅÌØÛéìðòõø )?EHJP\J4•ž2~2~<~>~P~W~w~x~}~K,'.¦ê¦ê°ê²êºêÔêÙêßêLXƒ•(c(c:c=cHcMcZclclcuc‰c“cœc²c½cÄcÎcM�QqØaØaòaýabbb6b>bFbSb]bdbkbobsb~b„b�b‘bšb b£b±b³bÁbN­é[[u|��±ÄÑß!-469?CT^dgjlxˆ�–£¦©·ÈØäæö	*-0888@GNN\tO ™�&&*?CP„
*öØöØÙÙ&Ù3ÙOÙRÙXÙaÙmÙoمٟٛٺٽÙÃÙÐÙÜÙÞÙÞÙîÙñÙÚQˆ ËæËæÓæÞæîæýæ	ç-ç-ç-ç5ç:ç:ç^çmçŽç¦ç®ç°ç°ç¼ç¼çÎçÕçÕçççìçôçR,æíƒ9ƒ9‡9 9§9©9S ž¢FFJY]TTFWþþ!(26:>HHReqt‚U £§^^bosV ðôfñfñjñ€ñ‚ñWHúéxéx	yyy'yGyMySy`yiyjyvyXHëùYxYxyx†x‹x—x·x½xÃxÐxÙxÚxæxY ¨¬vvzƒZ ­±††Š™�[<æñzÜz܋ܗܛܧܩܼܵÜÂÜÊÜ\dq†£\£\«\¯\¯\¾\Ý\ì\õ\þ\]']0]7][]d]k]w]y]]´¥Î�T�T›T¬TÏTÞTéTøTUU5U9U=UEUMUVUtU|U“U—U›UŸU§U¯U¸UÖUéUòUV
+V
+VV$V^0&$¢$¢-¢-¢D¢g¢g¢l¢_dÆÛ£g£g±g¶gÆgËgÚgßgágçgögûgýghhh!h`8“.“.­.±.´.¿.Ü.à.å./a ’S’S›S¦SµSbDÀÍee2eIeVeVe`e€eŠecLš©ªVªV¸V½V¿VÎVÐVÞVéVòVòVóVùVd,bi˜K˜KœKÓKãK	LLLe,RY�J�J”JËJÛJKKKf0ËÓâ›â›ö›5œ<œBœOœbœnœg[!!!&!.!O!^!g!{!‹!ž!«!¾!Ü!å!ò!þ!
+"","1"1">"H"\"i"‚"‘"¤"Á"Ì"Ô"ï"ú"#-#9#B#G#d#m#z#‰#ž#¸#Ã#Ë#Ö#Ö#Ö#Û#é#ô#û#$$$h,ry˜L˜LœLÓLãL	MMMi$üii;iHiPi\ij$+0ÚÚÚ(Ú:ÚvÚk¨Ciz©z©£©¨©²©¼©Æ©Ò©Ò©Ú©ªªªªª"ª"ª:ªOªRªUª[ªbªfª•ª™ª¡ª£ª®ª®ª³ª³ªªÒªl<$/:¨:¨H¨P¨X¨h¨t¨~¨­¨¯¨µ¨mü§âCUCUWUfUuUUŽU�U�UÃUØUãUêU
VV(V6VDVRVrVhV~V�V›V­V¿VÆVÍVÚVáVéVùVWWWGW]WnWnWvWyW‡Wn@nz,¥,¥9¥A¥D¥R¥V¥Z¥]¥k¥r¥w¥o(b‚‚‚‚*‚4‚9‚9‚E‚L‚Q‚[‚l‚}‚‘‚“‚®‚Þ‚õ‚ƒƒ+ƒOƒQƒjƒtƒ�ƒ—ƒ°ƒºƒŃÓƒÚƒèƒèƒòƒ„3„>„U„Z„\„f„‚„‹„“„®„pD/<æêæêïêëëë$ë2ë=ëEëJëq<³¾cpcpypŒp p©pÃpÊpàpæpìp"qr,››ŸÌó 57s<bmä¤ä¤ñ¤ù¤ü¤
+¥¥¥ ¥$¥)¥t|0ææ÷		'	?	T	n	u	†	“	ž	¥	¶	À	À	Ñ	Ù	Þ	å	ò	
+
+uLš©••/•6•=•I•R•l•w•|•…•›•ª•´•´•É•v8rWrWˆW•W§WÁWÏWØWâWw  #¶ò¶òºòÓòxÔ._££«³ÁÔãíù!2NVbjrr}” ²Æø	1NPbkk}}‹’¤¤²²·»y4©²ãoão÷o	pp,p3pIpOpbpz0U]£S£S«SÁSÌSÛSõSýS{PZjS“S“e“l“u“ƒ“ˆ“‹“‘“”“™“¤“ª“´“|d¦»&&?BPPYdil|‡��“•™¥}H<J†ô†ô–ôœô§ô°ô³ôÀôÉôÉôÍôÐôØô~$@EÖÖßíóø4ÕÞVVdrz…ž£ª°€¬Ls{{,{;{A{U{h{{’{©{¼{Ó{ê{|| |'|-|1|C|\|i|o|Š|Ž|•|›|Ÿ|±|Ê|×|Ý|à|ê|�?`=`=h=p=�=�=š=¦=¦=ª=²=¶=Ï=	>>/>S>\>e>e>j>}>‚>�>£>·>¾>ð>#?4?D?Z?n?u?§?Ú?ë?û?û?@@@"@"@#@5@5@C@G@K@‚P˜¨;o;oQodovo�o™o›o©oÂoÍoÓo×oßoƒ0ltîîü$„<KV(x(x1x;xKxMx€x‡x‡x‡xŠx…˜òFFLJZ߆4ŠÓÞÐÞÐöÐþÐÑÑÑ!Ñ'Ñ5ÑJÑOÑUÑlÑqÑwюѓљѰѵѻÑÉÑÍÑéÑüÑÒÒ#Ò0Ò@ÒOÒ\ÒoÒuÒ|Ò~Ò‘Ò«Ò²ÒÀÒÒÒÒÒåÒçÒúÒüÒÓÓ$Ó$Ó@ÓWÓ]ÓcÓnÓ’Ó‡HÖòÖòßòúòóóóó"ó"ó1ó3ó3ó8óˆ`Üð#h#h:hHhShUh\hfh|h‡h’h”h™h›hœhœh¦h‰(©¯ëõëõöõ
+öööŠDÊ×vðvð…ð“ð¢ð®ðµðÄðÐðÐðÖð‹tãðãðóð
ñ
ññññ#ñ%ñ%ñ%ñ.ñ?ñHñYñdñgñiñlñnñnñnñ|ñŒD>KSS(S6S6S>STSXSXS\SdS�¤6[ŽŽ"Ž*Ž.Ž6ŽBŽIŽPŽUŽjŽ{ŽŽŽŒŽ“Ž˜Ž¯Ž²Ž»ŽÁŽÄŽÆŽÐŽÕŽìŽïŽñŽøŽüŽ
+�Ž81;vÚvÚ„Ú›Ú¦Ú¦Ú±ÚµÚµÚ»Ú�$<�‹(‹(“(£(³(Å(Ô(Ý(ë(ù())),):)B)W)d)y)†)›)¥)º)Ä)Ù)ã)ø)*** *,*@*g*v*…*“*Ÿ*«*¼*Ñ*æ*÷*++%+7+I+|+Š+Ÿ+Ä+Û+ä+ó+,%,.,9,@,K,U,^,n,�0‡�{]{]]�]¬]Á]Æ]à]‘02:’’/’:’L’T’W’_’’¼KvÛcÛc÷cd*d1d>dJdRd]dedpd}d¡d°d·d¾dÏdÑdÙdädïdþdee
+eee.e7e7e;eTe“,ÑØ~ù~ùŒù˜ù¯ù³ùµùÉù”P	Y``2`5`;`G`I`X`_`e`Ž`•`Â`É`Í`å`ñ`aaaa$a]aiaua‚a•a£a´aÇaÔaåaüabIb[bˆb�b®bµbÀbÜbÜbèbêbêböbøbøbcccccc%c1cJcVc_cjc€cŽcŽcŽcŸc¸c¿cÆcÌcÏcd•P&––8–K–W–c–y––Š–�–•–—–°––4#˜H˜H¡H¶H¶HÃHØHØHÝH— ÌÐ^ù^ùlùuù{ù˜0ÔÜrœrœ†œÅœÌœÒœêœíœùœ™¼
+5،،öŒúŒ���#�,�/�5�;�B�I�K�U�Z�d�r�x�‡�“�–�™�¡�¦�¼�È�Ë�Î�Î�Î�Î�Ñ�Ù�á�è�ï�Žš0HP^þ^þlþzþ‚þ¥þ¾þæþ›€€Y€Y”Y›Y£Y«YÇYÇYÕY×Y×YçYéYéY÷YùYùY	ZZZZ&ZCZCZUZUZYZ€ZœX[a[aeayaŠa•a±a´aÂaÈaËaÜa÷aûa�@¡­ d*d2dJdJdSdgdmdvd’d–dž@$03ú3úAúFúIú[úaúdúfúlúŸ(äêss1sMs_ses€s  vòvò€ò“ò˜ò¡H&4ºÞºÞÏÞÛÞÞÞçÞóÞûÞß'ß-ß0ß<ߢ úþ®ñ®ñ²ñ¿ñÁñ£ä{°èyèyzz2z{P{P{P{P{[{[{i{¤ ÑõëKëK
+LLL"L0LQL_LmLxL�L—L™L™L«L±L·L¹L¿LÅLÈLÎLÐLÙLèLîLîLîLõLM¥T…–>>bess‡—¢¨³³³·Å¦`p„¦ÿ¦ÿÃÿÉÿ×ÿ×ÿëÿöÿúÿ%)))-9§HïýâËâË	Ì'Ì5Ì@ÌDÌHÌLÌVÌ`Ì`ÌbÌp̨D"/z‰z‰ˆ‰”‰™‰™‰ª‰¯‰¯‰µ‰©t¹ÒË7Ë7Ó7ä788 8D8R8`8i8|8ƒ8�8›8±8Ç8É8ß8õ8õ8õ8÷8ªX{�II4IDI\IhItItI†IŒIŒI˜I¤I¦I¦I®I«XÙëƒBŒB“B©B¾BÔBÜBóBýBC C&C;CBCJCOC¬,Üã«r«r¹rÜrÇrìròrs­8x‚ZÅZÅ`Å^ÅnÅŒÅ˜ÅšÅšÅÆ®8>H°I°I¾IÄIËIáIáIèIJJJ¯<u€²µ²µ͵Ûµâµæµéµíµôµ¶(¶°`«¿Â~Â~Æ~Ý~B[jy~„†±L+ù+ùFùbùbùoùoù|ù|ùŒù�ù�ù ù¢ù¢ùÙù²d@ÕP@P@[@q@x@–@§@¶@Ã@Ò@æ@þ@A)A?AJAtA�A¬AÑAÖAïAB$B;BKBMBƒBÚB«B©BùB
+CC1CFC`C`C‡C‡C¦C­CéC÷CWD(D&DvD}D‚D˜D D DÅDÕDöDGHGHGOG]G`GgGgGnG|GGƒG�G�G›G¡G®G¼G¾G¾G¾GÁGÆGÒGÒGÞG÷GúG
H
HHH#H·4mvS=S=]=]=�=£=ß=í=ñ=¸À6bÛîÛîæîêîïï(ï4ïHïgïoï‡ï—ï»ï»ïßïáïáïððð+ð-ð-ð9ð9ðAðAðMðaðqðyðyð‹ð’ð’ð¤ð±ð½ðàð¹ÈÉ÷C)C)[)e)v)v)ˆ)�)�)Ÿ)¤)¤)¶)»)»)Í)Ò)Ò)ä)é)é)é)é)ð)õ)õ)****#*#*:*g*|*|*Ž*•*œ*¥*´*+ºˆTr:U:UPUUUaUaUmUuU}UˆU‘U™UžU U¤U³U¾UÆUÎUÏUÏUÙU»(w}ó=ó=ü=>#>*>->¼üF�ÛÛãç2FRj}žÔö&=EP]aegz�”¤«Á×ÙÝÝÝéõõú.4I½„a~öÛöÛúÛ	Ü	ÜÜÜ'Ü'Ü6ÜEÜEÜYÜTÜhÜcÜrÜrÜ�Ü�Ü�Üþྨs™ÚUÚUôUV!V(V3V9V9VvAvDvIvKvOv[vlv{v�v„v‡vŠvŠv”v—v©vÄ„c€ˆrˆr«r¯r¼rÁrÅrØrùrsss%s,s?sDsHs[s|s†s†sšsšs�s«sÅP]mnènèwè…è…è�è³èÂèÛè÷èé é;é<éAéÆL–¥r€r€€€Œ€—€¨€¼€À€Î€ã€õ€þ€��+�ÇÜ›Î8EPYo‚—«·ÇÚçú!.:FFS]mƒ™±ÊÎÐÕÚãõüü;È,z�NíNíRí‰í í íªíÉ,fmëŠëŠùŠÿŠ‹‹‹!‹ÊH´Âš�š�£�¯�Â�Í�å�ç�í�ø�ü�‚‚ËdÃØ
+‚
+‚‚+‚6‚R‚T‚j‚€‚“‚©‚Âǂ̬޵³I³IÏIÑIëIúI'J1J6JeJlJnJnJ}J‡J’J—JšJ©J®J½JÖJÝJÝJïJûJÿJ	KÍP-=‹R‹R R´R¿RÑRÚRåRêRïRSSSSÎ 6ò6ò@òSòXòÏŒ'Fl¢l¢|¢€¢‰¢¤¢²¢·¢º¢È¢Í¢ì¢ô¢£"£B£D£L£v£z£š£¤£«£Á£Ü£ø£¤0¤7¤?¤Ð´PyŽŽ¬³½ÂÕàö$.86Fd~tŽ˜²ÖÜã÷ÿ



!
2
7
7
¯
ÑøµïKžKžižzž�ž•žœžœžªž¹žÀžÆžØžØžëžûžŸŸ$Ÿ0ŸGŸIŸaŸcŸfŸhŸhŸlŸlŸxŸŸŸƒŸŽŸ”Ÿ Ÿ¨ŸÍŸãŸôŸ    3 ÒÜú-KKSWbpy�£­¹ÄÒá6:Skz~‰• ¯¾Þìû'48EWWel~~ŒŒ�¡Ó4#,+R+R:RLRVRiRqR{R}RŠRÔˆ1O
+
+ 
+A
+L
+]
+q
+‰
+ž
+³
+¼
+Á
+Á
+Ñ
+Ý
+ã
+ï
+)99BGHŒÕ€5K�K�k�w�ƒ�‡�‹�š�®�¶�¼�Ð�ß�ë�÷�û�þ�‘‘ ‘$‘.‘2‘;‘A‘T‘Ö$).IIII1I7I×,‚‰–˖ˬ˿ËÊËÐËÓËÛËØ¨ïà”à”ú”ý”• •0•B•F•T•]••…•…•‘•œ•ª•´•¼•À•À•À•ÕŕɕɕΕÜ•ê•ø•ý•ÿ•ÿ•–ÙLêùvúvú’úžú¸úÃúÐúäúêúöúÚ ^ò^òbòoòqòÛ`#3D3D7DND^DnD�DˆDŸD¯D¿DÐDáDòDE4EKEVEaE›EÜTÛPÛPßPûP
+QQ!Q7Q>QPQcQvQ�Q Q¥Q¥Q§QÝ` x¹x»xÃxßxèxûx
+yy"y9y?yKy[y[ymy­yÞH_m[H[H{H‰H�H£H©H®H¶H¹HÅHß$zMM!M6MDMOMàÀnš#‹#‹;‹B‹J‹_‹h‹h‹ƒ‹‰‹‰‹“‹š‹¥‹ª‹´‹È‹Ê‹Õ‹Õ‹ä‹ì‹÷‹û‹ŒŒŒŒŒŒ Œ'Œ1ŒAŒá@/;z‘z‘˜‘¤‘±‘¼‘ȑՑۑޑá‘ó‘â0 '*”*”8”P”ƒ”‰”‹”‹”‘”ã�k‹»“»“ѓԓà“à“â“ï“ý“”””””.”@”K”W”a”d”f”i”k”n”s”x”|”Š”ä<€‹PMPM^MlMqMwM‡M‡M�M¡M§Må8%ÂÕÂÕÌÕÔÕèÕýÕÖÖ
+ÖÖæ”x™RÓRÓiÓkÓuӌӌÓ�Ó¦Ó°Ó´Ó¸Ó¿ÓÆÓÏÓæÓæÓëÓíÓíÓñÓóÓóÓ÷ÓþÓþÓÔÔ%Ô'Ô7Ô瀂žKKV^itˆž²»Ïö&.JVay„‹–›°èLN]j´j´s´s´‚´‘´¢´¦´¶´Í´Ñ´Ñ´Ö´é85?j£j£z£–£¢£¦£ª£®£º££êœ$›E›E£E©EºEÉEçEFFFF(F4F4FAFSFXFF†F—F¡F¦F¦F¦FÆFæFGG
+Gëx‚œs,s,‡,‘,—,£,³,¶,º,Ã,Ó,Ö,ß,â,ô,-"-+-+-1-]-b-h-u-ì8bb+b.b3b6bDbJbMbObWbíD&VêVê^êfênêvê~ê†êŽê–êžê¢ê¦êîdav¤¤Ò¤â¤í¤ò¤ÿ¤¥¥¥¥ ¥(¥4¥P¥S¥^¥^¥f¥ï@nzFéFé`énéé…é‡éœéÏéÕéÕéáéð(.4*£*£3£A£P£_£d£ñ0““Гè“”!”#”#”)”òDŒ™‹”‹”·”ŔДԔؔܔà”ì”ù”ü”•ó€Ïë;;FNYdoxŽ¢«¿æü:FQit{†‹Ÿô<«9«9³9Ñ9â9ò9::,:D:F:H:õLÁÐkKkK…K˜K­K³K¹KÈKÖKÖKÙKäKöˆú[�[�q�•�§�§�¹�Ä�Ú�Ú�ê�ì�ì�ì�ý����� �'�-�3�3�6�D�÷|r¿r¿„¿“¿–¿·¿Ú¿ê¿À#À0À`ÀoÀ|ÀŒÀ’À¢À¢À´À·À¼À¼ÀÌÀÒÀÕÀ9Áø8	ŠžŠž˜ž£ž®žÑžçžêžõžù=P˜P˜Y˜e˜u˜‚˜“˜¤˜µ˜ʘјä˜÷˜	™™2™F™I™Q™a™r™™™¬™¾™ó™õ™ššš9šLšXšwšúH'5°–°–Ê–Ý–ö–———— —!—M—û("ãQãQñQ
RRR$Rü8JT.Û.Û<ÛSÛ^Û^ÛiÛqÛqÛwÛýDìù££µÁ×ñüü
 Jþl>Uxšxš|š�šžš·šКÙšäšïš›#›-›/›:›E›N›W›j›}›Ž›˜›˜›š›ÿ$ôù;�;�D�M�S�X� 
+ºSºSÃSÎSßSDØåÖðÖðåðêðóðññññ!ñh-ƒÛ1Û1222"2%2*2.2M2a2d2v2~2…2¤2­2¯2Î2×2×2×2Ü233&303:3A3M3Y3c3c3c3„3„3�3�3�3˜3š3š3£3¥3¥3ª3¬3¬3±3±3±3µ3Ð3æ3ñ3444 4,484D4W4n4€4„4�4¥4µ4×4ô4555555%5,5¬5LÈ×CÿCÿWÿ^ÿcÿyÿ{ÿŒÿ�ÿ£ÿ©ÿÖÿ4êê&ê.ê6ê>êFêNêRêVê,öéöéþéêêêêêx7¦¦º¿ÉÐãüü!*9@@CMcjloqq}|
+Ðkö®ö®¯¯0¯9¯D¯O¯Q¯d¯r¯}¯ˆ¯œ¯§¯ª¯°¯´¯·¯½¯Á¯Ä¯Ç¯Ú¯ï¯÷¯ú¯°"°%°+°.°A°V°^°a°y°‰°Ž°Ž°–°–°¹°¹°¹°½°¿°¿°Ã°Å°Å°É°Ë°Ë°Ï°Ï°Ï°Ò°Ô°Ô°×°Ü°â°å°é°ë°ñ°ô°± ±%±+±.±3±F±a±c±y±y±y±~±~±€±€±…±ˆ±®±®±®±Æ±Ì±ã±ò±²²(²M²R²R²j²ˆ²�²�²¥²Ã²Å²Å²Ý²ù²û²û²³/³/³M³Y³^³^³v³�³’³’³ª³Æ³Ë³Ë³Ï³ç³´	´´´´'´E´I´I´g´l´l´„´›´¢´§´§´¿´Ö´Ý´ë´û´ µ&µ(µ(µ6µ>µgµiµiµ�µ¢µÁµÆµÆµÞµóµ¶	¶-¶L¶m¶p¶u¶u¶�¶¤¶®¶³¶Ä¶Ä¶Ê¶Õ¶ê¶ï¶ù¶	·	·?·M·S·j·r·{·{·‡·‹·‹·”·£·¬·¬·µ·¿·Û·ù·¸%¸+¸@¸H¸T¸^¸^¸v¸x¸ƒ¸›¸�¸½¸½¸Â¸Â¸ø¸¹¹¹¹ ¹ ¹(¹7¹@¹@¹I¹O¹k¹v¹Ž¹�¹›¹³¹µ¹Ñ¹Ñ¹Ñ¹á¹ºººº3º8º8ºPºgºqºvºŒºŒº£º£º¯º³º¹ºÂºÑºÚºÚºãºîº»»$»/»J»L»L»U»m»x»Ž»›»£»Ä»Æ»Î»è»ë»ô»ù»¼$¼$¼?¼I¼T¼p¼ƒ¼š¼¢¼¬¼¬¼µ¼¹¼Ð¼½½½½'½0½4½K½ƒ½ƒ½…½…½¡½«½³½³½¼½À½×½¾ ¾&¾=¾E¾R¾W¾W¾`¾d¾{¾³¾Ä¾Í¾Ò¾Ò¾Ý¾á¾ù¾¿¿ ¿5¿M¿M¿w¿�¿�¿ž¿¢¿µ¿½¿Ä¿Ï¿Ô¿Û¿Û¿à¿À'ÀEÀ\ÀfÀpÀpÀ€ÀªÀºÀÌÀØÀÜÀöÀÁÁÁÁÁÁÁ!Á!Á,Á0ÁHÁ_ÁiÁnÁ„ÁœÁœÁÆÁÐÁõÁúÁúÁúÁÂ	Â!Â8ÂBÂGÂ]Â]ÂuÂu§±ÂÎÂÕÂàÂåÂ
+ÃÃ0ÃBÃJÃLÃeÃsÃ�ààÃÍÃÏÃùÃûÃÄ"Ä,Ä6Ä=ÄZÄcÄcÄ�čīįįįÄËÄÐÄÅÅ5ÅLÅQÅ[ÅeŒŦũÅÀÅÀÅÀÅÀÅÊÅàÅ÷ÅÆÆÆÆ5Æ?ÆOÆOÆkÆƂƔƞƤƻÆÃÆÌÆÑÆÑÆÑÆíÆÇÇÇ(Ç-Ç-ÇEÇ\ÇfÇvÇvǒǦǩǻÇÅÇËÇâÇêÇóÇøÇøÇøÇÈ(È+È=ÈOÈTÈTÈTÈlȃÈ�È�È�ÈÂÈÓÈÝÈãÈúÈÉÉÉÉÉ5ÉFÉXÉ]É]ÉrÉrÉrɎɎɨɯÉìÊ@%:Ÿ:ŸNŸ\Ÿ\ŸiŸŽŸ™Ÿ�Ÿ«Ÿ®Ÿ¶Ÿ	0EMB×B×K×^×d×p×y׆׋×
+|�œ*¶*¶G¶I¶W¶W¶e¶x¶ ¶öѶá¶·ì¶·>·S·X·X·X·j·m·y·8Ž˜ªÙªÙ¹ÙÇÙØÙÜÙÜÙáÙáÙçÙ¬°×#ö#ö3öIö_ö]ömöuö|ö€öˆö˜ö¦öµö»öÃöÏöÕöÕöÜöàöàöâöIø
4GPJ’J’^’t’’„’’’Ÿ’¨’¹’p+C  ; L S d k k � � � — ¥ ­ ­ Ø  . ; Y Y f f f t D¦³2�2�>�U�`�f�l�r�ˆ���”�š�œTwóó
+$?Zu�«Æáü M/%‡£¨³½ÊÔâèôûH0-5ccg½Ÿ�á@
ÛÿÛÿíÿøÿ
%-5;˜£ÅÛfÛfófgg g&g&g1gÏAÏFÏIÏIÏYÏjÏlÏ~Ï€Ï�ϒϙϛϨϪϪϺÏËÏÎÏÐÏÜÏÞÏþÏÐ
+ÐÐÐ Ð&Ð)Ð)Ð9ÐJÐLÐwЙЛТФааÐÄÐÈÐÈÐÞÐ@›§k^k^�^£^«^°^Ã^Ð^Ö^Ù^á^0ÛùÛùäùéùòùøùøùýù,;B:©:©I©U©c©l©q©w©8ˆ’îîî îKîXîZîaîiîkîqîä6¾Ì¾ÌÜÌßÌâÌöÌþÌÍÍÍÍAÍAÍDÍTÍVÍVÍYÍ[Í[Í^Íu͊ͥͯ͹ÍÁÍÁÍÁÍÃÍÃÍÈÍçÍíÍüÍÎ Î0Î2ÎDÎTÎYÎYÎeÎeÎrÎuÎuΠÎ8òüÊÜÊÜÙÜïÜþÜÝ Ý&Ý(Ý(Ý.Ýô…¾Ä¥Ä¥Ö¥Ù¥ã¥ð¥ô¥ú¥ú¥¦¦¦¦¦¦#¦)¦0¦6¦=¦C¦J¦P¦W¦]¦d¦j¦w¦}¦„¦�¦•¦•¦ž¦Ÿ¦°¦Ã¦Å¦Õ¦Ü¦ç¦ò¦ý¦§§§§(§LWf�x�x™x©x©xÇxÍxÝxãxéxùxûxûxûx"yhÝó{Ž{Ž�ŽŸŽ¤Ž´Ž¼Ž¼ŽÊŽÔŽãŽëŽ÷Ž���#�.�1�9�D<I¾Ú¾ÚÒÚîÚüÚÛÛÛÛ Û Û'Û P„”Š}Š}™}¢}¬}±}Ã}Ã}Ã}Å}×}Þ}~+~,~2~ 0�—ënënoo&o,o/o7o!<alú~ú~!%16:@"\Éܾ¾ÂÕèû+MoŠ¥ÀÛö,è#Tct2Ø2Ø@ØRØXØbØz؀؂Ø�إرØÉØÏØÏØÏØÏØÕØ$X£µéuéu	vvv'vGvMvZvgvnvwv{v‡v%X†˜#ì#ì>ìFìQìmìmìvìvì{ìŒì•ì ì ì¬ì¹ì&,’™NÌNÌbÌtÌyÌŠÌ·Ì'ä6s˜s˜�˜�˜“˜™˜­˜´˜·˜Ò˜Ü˜á˜è˜í˜í˜þ˜ð˜™#™/™C™L™T™e™e™e™n™u™ƒ™…™�™–™µ™Å™Í™ß™è™ù™šššššš"šeš(	H(o(oHoWoconoyo�o o«o·oÈoÍoÙoÞoâoëoppp+p=pPp^pspyp�p¥p¥p±pµp¹pÑpßp
+qåpq$q;q?qHqMqMqbqhq‡qŒqŒq˜qžq¤q¦q¶q) Hlààà'à;àHàLàUà\àbàdàwààÉà¤à‰àÙàèàúàáá"á)á5áIáiásáKâ*LÎÎ!Î)Î)Î6ÎHÎTÎ\ÎbÎgÎmÎoÎoÎuÎ+<|‡Z…Z…h…�…Œ…“…½…›…Ë…†,˜Õ÷€€,€=€O€\€l€t€x€|€€€„€Œ€”€¦€´€¾€ÀӀ܀ñ€÷€û€
�- GKâzâzñz{{.Ü40‰0‰N‰Z‰c‰�‰�‰ƒ‰ЉЉ›‰¢‰¯‰‰ˉ׉Ú‰߉ÿ‰ŠŠ0Š2Š2ŠHŠJŠJŠVŠVŠkŠ|Š‚Š…Š…ŠˆŠ�ЕЦЭгŠÄŠÇŠäŠäŠéŠéŠéŠ‹/lªB—B—V—r—‚—‚—–— —¤—¨—µ—Æ—È—Ü—å—é—ø—˜˜˜'˜*˜5˜j˜v˜‚˜Š˜”˜¢˜³˜ƘÓ˜ä˜÷˜ý˜D™V™d™z™‰™”™ª™¸™¸™Ä™è™ô™ÿ™šššš šFš04YbÚ×Ú×ã×ë×÷×ØØØ+Ø0Ø1 �´H=H=b=h=h=w=ƒ=Š=�=�=š=£=£=©=­=°=º=Å=Å=Ô=Ý=Ý=è=í=ð=ó=ö=ù=>>>>>>2 æê&ñ&ñ*ñ7ñ9ñ3¤“øp…p…†…’…š…«…¯…Ã…Õ…ã…õ…ú…†††%†=†M†M†Z†h†t†„†–†–†š† †¨†²†²†¶†º†ɆÙ†݆‡‡‡‡‡!‡3‡H‡R‡a‡f‡f‡r‡r‡€‡‰‡‰‡˜‡Ƈʇ͇ч؇ã‡ù‡ˆˆ,ˆ7ˆ9ˆ?ˆLˆRˆYˆfˆlˆlˆsˆŒˆ‘ˆ™ˆ¡ˆªˆ±ˆºˆ)‰4,%lã:ã:ë:ï:ö:ý:;;;;&;+;7;C;S;m;|;�;‰;�;¡;»;Ï;Ö;ç;è;<<"<'<J<N<W<_<h<‡<Ž<Ÿ< <¤<Æ<×<ì<÷<===-=>=D=N=5,[‘[‘d‘‘…‘…‘Š‘64ÏØ;B;B?BDBPB\BhBsBzB|B7(ëñƒsƒs�s¯s»sÁsÉs8»üZ®Z®h®p®u®{®£®Æ®ήÖ®á®æ®ü®	¯¯¯F¯M¯U¯W¯`¯o¯v¯œ¯œ¯¥¯¼¯˯ì¯ô¯°°'°7°F°V°f°v°�°•°�°�°¢°°°¿°à°ë°ú°
+±±*±D±D±D±P±V±9”ÍîšÊšÊ²Ê¿ÊÉÊÕÊÜÊåÊøÊËË Ë=ËCËCËRËYË^Ë|ËˈË�˫ˮˮˮ˱˾ËÎËÑËáË:8�šã]ã]ç]ø]^)^:^C^H^d^;p	!yyyy�yšyŸy«y±y¸yÔy
+zzz(z<ƒÂ"Æ"ÆAÆTÆ`Æ`ÆqÆxÆxÆ�ƓƜƽÆÂÆÛÆâÆâÆøÆÇÇ+Ç.ÇMÇlNjǗǮÇÅÇÇÇØÇïÇÈ%ÈDÈPÈgÈ~ȃȔȫÈÂÈÂÈÊÈØÈéÈÉÉ(É?ÉVÉ`ÉiÉpɆÉ�ÉgÊ=8u&&4CM^fhhn>80:º¨º¨è먩©'©1©6©?,¨¯ã^ã^ì^õ^___@0	˜Œ˜Œ¦Œ°ŒÄŒÊŒÌŒÒŒA,8?~~’¤µÃÉÏB,oooooo#oC\m€BBdht…‘š¹ÅÎÔØæD€H_H_X___r_~_¥_¯_¹_Á_É_Ñ_Ý_ï_``'`0`>`D`J`M`T`\`EX°__ _(_1_7_C_O_W_]_c_k_y_„_Œ_¥_·_Â_Ë_Ë_Ð_Õ_ã_ê_ï_ï_õ_ü_`
````&`5`9`F`S`X`b`b`k`r`~`‰`¥`¥`¥`­`´`»`Â`É`Ð`×`Þ`å`ì`ò`û`aa%aAaPaSaYaF|KfÞôÞôýôõõ'õ-õ6õ=õDõIõUõYõcõcõjõmõsõsõ}õ‹õ’õ’õ’õ õG,›%›%³%¾%ä%&&HX^›i›i£i®iÀiÆiÎiØiûiûi
jj.j;jCjQjŒjšjÒj×j×jéjöj
+kkk+k`kgkxk~kƒkƒk•k¢k¶kÃkÈk×kll#l)l+l+l3l3l@lUl[lnl’lŸl¯l´lºlÇlÒlØlãlãlélòlýl
mm1m>mKmPmPmTmmmIàÊþss{›ª´½ÎÞñþ/8EQ]]jtš­Ìßßÿ A - R W i m u u ƒ Ž œ £ ® ¼ ¼ Á Í JLRaŒ¤Œ¤™¤¡¤¤¤²¤µ¤¼¤À¤Ã¤Ç¤Õ¤Ü¤á¤K8GQD¤D¤Q¤Y¤\¤j¤n¤|¤€¤…¤L0~~‡Œ›Ÿ¡¦MTØéKøKøUøhø{øƒø´ø$ùN(MS»»ÃÑãìîOœ'JËbËbåbcc c,c8c@cKcVcccrc{c‚c†c†cŒc’cªc³c¹cÂcÇcÇcÇcËcÕcP8ˆ’»»ÄÔááè÷þþQ¼W‚mm>mAmOmjmxmmŒm�m“m�mªmÊmÊmèmêmêmn
+n
+nnnn,n,nPnWn`njnnn‡n‰n®n·n¿nÆnoR<#º§º§ȧЧاè§ô§þ§-¨/¨5¨S$ûaûab
bbbTZ:Á:ÁNÁUÁeÁlÁlÁ‚ÁŽÁµÁÔÁóÁÿÁÂÂÂ+Â/Â5ÂCÂCÂCÂbÂ�•­±·ÂÅÂÉÂÏÂáÂáÂáÂáÂäÂéÂîÂôÂÃÃÃÃ!Ã'Ã2Ã2Ã2Ã7Ã=ÃQÃUÃ[ÃfÃjÃpÃyÃyÃyîÃUDz‡KKO_uwˆ�”™ ²²´V¬Íôš¹š¹¼¹Á¹ʹʹÖ¹å¹ò¹ö¹ººº&º2º7º7ºPº[ºcºhºzºzºzº‚º�ºžº¨º«º°º½ºʺʺܺW�-M@O@OmOpO~O‡O‡OžO¯OÄOÉOÜOéOîOòOP-P5P9P>PFPXPgPjPžPXH>ó>óGó\óeóqósóuó„ó„ó“ó•ó•óšóY¸9£ [ [A[D[G[d[ˆ[�[š[¨[²[È[Ð[Ö[ã[ó[\\\.\N\W\N\i\k\t\k\†\ˆ\‘\ˆ\£\¥\¥\µ\µ\Ã\Ô\Ù\],],]4]7]\]d]j]w]‡]›] ]¯]Â]å]ñ]^$^1^$^?^D^Q^D^_^d^q^d^^„^„^”^”^§^¸^½^é^ë^____)_._A_L_[_[_d_à_Z0	»ì»ìÉìÓìÙìâìéìíìóì[(�•2€2€>€D€J€c€n€\¼w¢[e[e…eˆe¤e¶e½eÊeÖeåeéeíeõeÿeff0f0f7f=fDfQf\fkfqfsfuf{f�f™f¢f¢f©fÄfÇfÙf]¬ FCãCãKãOã[ãkãvã…ã‘ãšã¯ãØãäãìã
+ää4ä4ä[ä]ä]ä]äväxäxäxä�ä�ä¢äªäÅäÅäÅä×äÞäÞäðäöäå^D�œ 8 828>8T8n8y8y8Š8š8œ8Æ8_¼Bb¼b¼x¼€¼м–¼¤¼´¼ܼÿ¼½9½=½E½O½w½š½¨½¸½ýî½þ½¾¾6¾:¾L¾Q¾^¾h¾v¾v¾€¾о`@nzËHËHÓHôHøHIIIIa *nˆ3ˆ3“3—3Ÿ3À3Í3Þ3é3ò34404D4P4h4x4‹4“4´4É4Ô4Þ4555$5=5L5Y5n5f5‰5¡5¥5ª5ª5»5»5Î5à5ó5	6666&6&6&68686A6S6Z6Z6l6r6˜6b@1=súsú�ú†ú‰ú›ú¡ú¤ú¦ú¬úcè¸î “ “:“R“^“n“€“„“‡“�“““¤“¤“¤“«“¸“»“À“½“”1”4”6”M”P”R”Z”j”j”s”‚”�” ”®”·”¾”ÔÔÔɔݔdD	²»²»Æ»î»¼¼+¼6¼R¼Z¼b¼e4zƒ¶
¶
Ä
Í
Ô
Ý
f8îøª�ª�¸�¾�Ç�Í�Ó�Ü�ß�å�gtRk(|(|M|O|h|ˆ|Ž|ˆ|¥|§|­|§|Ä|Æ|Æ|Ö|Ø|Ø|è|è|ð|.}h0«Q«Q´QÆQÔQØQÜQÜQáQi@jÕjÕyÕ�Õ•ÕŸÕ§Õ¯Õ´ÕºÕ¼Õ¼ÕÂÕjØ&XºŸºŸПߟêŸüŸ  $ < I \ h s ƒ ¥ § Ä Ñ Ñ Ñ â ¡¡¡$¡+¡1¡6¡<¡@¡G¡R¡X¡‚¡küi¤˜d˜d·d¹dÈdÔdàdõdúde
+ee&eæ@æ@æ@æXæXæjæræ�æ�æ�æŸæ¦æ¦æ¸æÈæ‡øQ°yÎyèyzzz!z*z1z:zCz[zjz‚z•zžz§zµzÍzàzézýz{{{{!{#{&{.{C{X{[{f{l{t{x{Š{�{–{�{£{³{¹{Ë{Ò{Ô{$|ˆ<ÃÎsAsA“A£A¨AÎAôAB!B(B-B9B‰lýZ±Z±n±w±ˆ±°±Ó±â±ï±ú±²*²C²C²Y²Y²f²x²‚²вŠ ¥Éˆgˆg g¢g°g¼gÕgægïgh	h hh+hKhKhbhdhdh{h}h}h�h�h�hŸhŸh¦h¦h®hi‹HZhdd,dAdKd_dhdmdqdwd~d�d’dŒàø,++.+5+S+S+q+q+�+�+­+Â+Î+ø+þ+,*,G,d,�,ž,»,Ø,õ,-/-L-i-†-£-À-Ý-ú-.4.Q.n.‹.¨.Å.â.ü./0/J/b/b/b/q/Ù1�<
+r“r“†“•“¥“¨“ª“²“µ“½“Ž(ÿÆñÆñÐñÚñò	ò�$cici}i™i�P¨¸#7#7'767;7G7S7_7h7t7{7€7‘7¨7À7Â7‘@
K:K:Y:`:f:m:�:ˆ:Š:�:œ:’X�¢’¬’¬§¬±¬µ¬µ¬ݬ­­)­:­<­<­D­“,Š‘ÞËÞËòËÌ	ÌÌ ÌGÌ”x£½ïïï$ï3ïDïOïuïŠï�ï–ï�ï°ïÒïÒïæïðïøïðð"ð"ð7ð•8¶ÀKK'K4K9KOKRKgK–(¿Å,§,§4§>§T§— žÂ3@3@A@F@N@V@c@u@@„@–@«@Á@×@í@ÿ@AAA)A)A?ANANAUA\AcAhApA˜8�§{-{-‰-‘-™-º-Ð-Ù-ß-™P:J¨w¨wÀwÌwÔwÛwäwêwíwíwxxxx#xšð8p”©”©®©¾©Å©Í©Ô©ð©ªªªª#ª%ª.ª7ª9ª9ªBªQªSªSª\ªeªjªjªsª|ª�ª�ªŠª“ª˜ª˜ª˜ª¡ªªª¯ª¯ª»ªÄªÉªàªäªäªþª««««„«›XÓå¢Û¢ÛªÛ¶ÛÁÛÐÛÜÛåÛíÛüÛÜIÜIÜ[ÜbÜbÜtÜuÜyÜœÈÝP8P8l8r8|888ˆ8“8�8§8³8µ8»8Â8Å8È8Ð8Ü8â8ç8í8ð8ò8ý89	9999#9)92929292989@9C9S9�,™ êÙêÙóÙÿÙÚÚÚž8ak®®¼ÆÐÛãååëŸx_ysmsm‰m�mžmžmªmµmçmçmêmìmìmñmñmómómómõmõmõmþmnnn ,ÛâÚ‡Ú‡ã‡í‡î‡ó‡¡4ÒÛCrCrWrirxr‰rœr¢r«r¢$(-ú¢ú¢££"£(££<@K££Ø£â£æ£ë£÷£ü£¤¤¤¤ 
+òòò2ò4ò¥t.ввš²¦²¯²À²è²³³'³;³2³\³p³v³x³z³€³‚³�³’³š³¦h^tÚ´Ú´ü´µµµµ#µ0µ_µjµrµtµ†µ†µ†µ—µ¤µ¤µ²µ§@wƒÀœÀœÄœÅœÔœÝœãœçœëœ���¨<ðû3 3 H 7 W  ©€�¹z·z·˜·©·±·Ä·Ö·á·ì·¸¸$¸:¸B¸B¸‘¸–¸–¸¹¸¹¸иð¸÷¸¹ª˜ìSCSCcCmCrCwCwC†C‹C¤C­C¸CºC»C»CÇCÒCÔCãCåCñCûC	DDD$D&D&D&D,D«€›þàþàá
+á!á!á8áLájálá„á—á¢á³áÊáÊáááõáââ-â@â@âCâœâ¬8—¡˜\˜\®\·\Á\Ì\Õ\Ø\â\­4<Eà:à:ô:;;; ; ;';®hqÇ„«„«¢«²«¹«Á«È«ä«è«¬¬)¬)¬)¬2¬4¬4¬=¬?¬?¬H¬J¬J¬S¬U¬U¬^¬`¬`¬i¬k¬k¬t¬v¬v¬¬�¬�¬Š¬Š¬�¬’¬’¬’¬•¬˜¬¡¬»¬Ë¬â¬õ¬÷¬ú¬ü¬ÿ¬
+­­­­­­­&­3­8­8­A­U­X­]­]­f­f­t­x­S®¯ ¢¦è\è\ñ\þ\]°`UikPkP‹P–PœP§P©PºPÇPÍPÍPÙP±0LTkSkStS‚SˆS™S›S›S S²(‹‘@\@\T\_\h\k\s\³ \€sêsê{ê†ê–ê¥ê±êÕêÕêêêòê÷ê÷êëë&ë.ë6ëHëuë�ë”ëœë¡ë¡ë­ë­ë¿ëÆëÆëØëÝëäë´°.V[è[ècènè~è�è™è½è½èêèééé)é1é6é6é]éeéméé¬é¸éËéÓéØéíéïéïéûéûé
êêê&ê+ê7êµ8LVz„z„Š„�„�„”„�„ „¥„­„¶ €„nnr�…·([b[bdbnbyb�b†b¸Dˆ^ˆ^œ^®^µ^¹^¼^Ç^Ï^ã^æ^î^¹h²ÈžžÀ×áõ/II_‚œœ¯¯»ºX=ONëNëXëZëoëwë˜ëŸë¬ë¬ëÃëÌëÐëÔë»\r…����,�3�<�<�V�a�i�}�†�Œ�—�—�µ�¼PFV(;(;F;L;Q;m;s;x;–;˜;¦;¬;¯;½;½lXoÿÿ?ÿBÿPÿPÿ\ÿcÿhÿkÿqÿtÿ|ÿ�ÿ�ÿ†ÿ‰ÿ‹ÿ�ÿŸÿ¾Œ~�3>3><>g>’>½>???3?3?‚?�?‘?©?©?¹?Ù?à?å?ï?@#@%@*@-@¿ˆ;Yc’c’l’v’v’†’“’œ’¥’®’·’Ë’Ë’Ö’Ü’Þ’í’õ’“
““6“6“8“H“N“S“À4ò‚ò‚ƒƒƒ(ƒ+ƒ1ƒ9ƒÁd±Æ¢Ú¢Ú¸ÚÄÚÉÚ×ÚÙÚêÚÛÛ Û&Û&ÛAÛIÛQÛ¨'‚¡‚¡”¡Ÿ¡¤¡²¡¾¡Ê¡Ó¡Þ¡é¡ô¡ù¡¢¢#¢B¢M¢T¢h¢„¢�¢˜¢£¢¥¢¶¢Á¢È¢Ö¢å¢ç¢ð¢ú¢Ã W[;ê;êUêgêqêÄD8Eccw�“𡱼ÊÍÕÅ<)4’ƒ’ƒ©ƒ¬ƒ±ƒ´ƒÇƒÍƒÐƒÒƒÜƒÆ´`É»»Æçîý
+&:J`m€¡°½ÆÆß#V[u‰¥°ÐÙáêü.CVp…Ÿ«½ÂÔæþ--`kv�žª¶¶»ËÙò#(HOtt—¦ÐÒÒ×òù''8?TTeehpÇh
+ vûvû„ûŸû«û·ûÃûÌûÕûÞûçûðûùûüüüü&ü/ü8ü8üPüÈ0¿Ç#q#qAq]qtq€q†qŒq«qÉX’¤€6€6Ž6—6£6©6¬6±6·6º6¿6¿6Ì6Ð6Ó6Ó6Ù6ÊLYY*Y8Y8YBYLYiYtY}YƒY„YŠYËÜ�´°s°sÖsÞsêsÿsÿstt-t¤I¤N¤\¤g¤v¤|¤�¤‘¤•¤›¤ž¤¥¤°¤°¤¼¤Õ Ÿ£‚~‚~†~Ÿ~¡~Ö #GVüVükürü|üŠüŠü’ü«üÎüÐüïüý%ýKýjýtý~ýŒý¤ý¼ýÅýÅýÞýèýþþþþ þXþ×¼\‡“û“û¯û²û»ûÄûÎûàûãûæûëûþûüüü(ü*ü*ü>ü>üAüDüRüVülürüyü€üƒüˆü�ü ü¢ü¢ü·ü·ü·üÉüØ`¹ÍK–K–g–j–o–u–~–ƒ–�–—–£–§–¯–»–½–½–À–Ì–Ù ’–x\x\�\Ž\“\Ú<¾É>ð>ðBðKðRð[ðbðkðkðrðtðÛ\"ð^ð^____ _#_*_-_5_<_D_Üd\q��(�1�L�[�p�v�~�¡�¯�Ó�ã�é�ò�ò�þ�Ýd(V(V=VGVLVSVYVbVpV{V}V�V™V¶V¶V¿VÈVÎVØVÞ<±¼p{p{„{‡{�{ {¥{¹{Ê{ß|ø��H�<�X�^�m�r�ƒ�‡�‹�•�š�ª�°�·�º�Ì�àÔ†·¸�¸�Þ�á�ê�ó�‘‘‘‘2‘?‘H‘L‘L‘U‘g‘p‘„‘Š‘´‘Ë‘ì‘ì‘’’’’A’W’w’w’�’�’‘’‘’‘’¬’Á’Á’ “á°	1‹‘‹‘”‘¯‘¯‘µ‘µ‘»‘»‘»‘»‘»‘»‘»‘»‘À‘À‘Ì‘Ò‘Ò‘Ø‘Ý‘æ‘æ‘ù‘ù‘ù‘ù‘ù‘ù‘ÿ‘ÿ‘ÿ‘ÿ‘’’’â„u’�„�„¦„­„»„Õ„ê„ð„þ„…
+……… …%…,…7…E…I…L…O…X…k…ã,Ò�Ò�Ö�Û�õ�ú�ü�ä@›§Ë6Ë6Ù6à6ç6ñ6ø6ú6777å,„‹ò…ò…û…†††††æD -ûçûç	èè-è-è2è2è2è?è?èKèKèUèç4›¤CŒCŒLŒZŒnŒvŒ|Œ~Œ~ŒƒŒè /38I8IFIZI`IéH%2Þ2ÞGÞSÞVÞ_ÞkÞsÞ�ÞŸÞ¥Þ¨Þ´Þê$æéæéêéîéðéëDÍÚ¢‡¢‡°‡¼‡Á‡Á‡Î‡Ó‡Ó‡Ù‡ìhC™ËšËšåšçš›››,›G›G›G›G›G›S›_›f›t›x›ƒ›“›�›¢›¢›«›»›À›À›Ñ›Ö›Ù›å›ö›œœœœ%œ'œ'œDœDœJœVœbœiœmœ}œ€œŒœ�œ®œ°œ°œÆœÈœÈœÞœÞœäœðœüœ����&�7�I�K�K�K�P�”�íxš´›�›�³�Â�È�Ë�æ�žžž
ž
žžžžž$ž&ž&ž&ž1ž1ž1ž6žHžî Uyììì ì-ìQìcìeì†ì˜ì˜ì­ì¯ìÅìÝìäìäìåìåìóìþì
+ííí#í3í;íNíïHŒš††.†5†G†J†J†Q†k†n†s†u†}†ð8ñû«h«hËhÖhähÜh÷hiiiiñ@ƒ�â«â«ð«¬;¬H¬U¬`¬‚¬Ь�¬ò(17,©,©9©N©z©Ž©ó ëï>ñ>ñHñ[ñ`ñô@&2ÖÖ#Ö:ÖHÖTÖhÖuÖ|ÖÖ‡Öõ$§¬â†â†ë†ó†ù†þ†ö<ÇÒRÛRÛhÛ~Û�Û“Û“Û˜Û˜Û Û÷dµ
+°u°uÒuÖuÞuïuïuvvvv*v9v>vZv]vbvgvwv‚v‰v�v‘vŸv³vºvÄvÊvÍvÛvávñvw
+w
w
ww)w5w;wDwPwqwuw�wˆw�w•w˜w¦w¼w¼w¼wÁwÍwåwéwôw÷wúwxxx'x'x'x/x;xSxWxbxexlx}x}x„xšxøÀIâWâWöWX	XXX X6X>X>XHXaXoXxXƒXŽX‘X˜X�X¥XªX·X¼XÎXÕXûXþXYYYY"Y0Yù4 (bƒbƒpƒrƒwƒ€ƒƒƒˆƒŽƒúXØVØVóVùVWW0W:WJWMWZW‡WŠWŽW¹W¼WÇWÒWäWìWÿW
XX.X7XDXSXiXpX�X�X�X˜X˜X«X®X¾XËXÔXäXæXùXYYY,Y8Y8Y8Y>YEYJYRYTYyYû$_¤TTTT*T/TCT`TyT–TžT½TÐTìT:U÷J÷Z÷�÷ì¥ÜƒŒƒŒ�Œ¥Œ­Œ¼ŒÍŒÏŒæŒøŒôŒ���#�*�3�Q�M�`�p�‡�˜�›� �¦�Æ�Ü�é�ð�û�ÿ�ŽŽŽ Ž#Ž)Ž8ŽIŽNŽZŽeŽwŽ  žòžò¢ò¯ò±ò L&5¨M¨M²M¹MÄMÐM×M×MÝMäMôMöMýMNN!,z�^Ë^Ër˄ˊË�Ë–Ë"<0;#(#(5(E(e(y((�(�(‡(#0š¢:Ô:ÔCÔIÔRÔ[ÔdÔnÔsÔ$<£®zÔzÔ‰ÔŽÔ©ÔÀÔÄÔÄÔÉÔÉÔÏÔ%8NX’געת׾×Ê×Í×Ï×××&\õâºâºðºõºýº»	»1»T»a»n»y»–»ž»¥»¥»¨»®»',“švîvî„îžî«î°îÃîÉî(¼ã‹W‹W·W½WÖWîWõWX
XX X>X>X]XgXoXvX~XˆX�X¤XµXÆXÛXâXëXñXùXùXýXY)4#úúúúú#ú)ú)ú.ú*<nØn؂ؕآخضØÒØâØåØõØ+4ÓÜ8888'8'848<8A8I8,,W^#H#H1H3HEHMHRHXH-D;;HV^ft|„Œ”ž£.^š;;CSet}‹™¥¶Ëà÷
&
5
H
V
k
‚
‹
š
µ
Ó
ê
þ
%:Oafr~Œ¡³ÌÕàçòü	/(QWæþæþñþÿÿÿ00X`††�™Ÿ¥§§¬1@	&&'&5&C&M&^&o&y&ƒ&�&“&2ˆ MM+M5M8M@MPMPMdMnM„MŽM�M¯M´MÅMÓMÞMïMýMNNNN3PÙéÎùÎùìùÿùú%ú6úCúWú^údúsú4$mrhyhyly|y�y‘y5H¾Ì^^^^4^?^H^J^V^Y^\^f^6D&‹b‹b”b¢b¢b¤bªbµbµbÄbÅbÊb7(¤ª¢~¢~¦~±~¶~À~Â~8D.;ôô,ô:ô:ôBôaô{ô{ôô…ô9d>S³ú³úÌúÐúÜúÜúèúèúõúõúûû"û4ûIûSûbûbûlû:ÔT–Ó–Ó´Ó¸Ó»ÓÌÓßÓéÓïÓóÓöÓøÓþÓÔÔÔÔ!Ô9ÔAÔDÔUÔiÔpÔzÔ~Ô‘Ô”Ô Ô¥Ô«Ô³ÔÆÔàÔèÔëÔüÔÕÕÕ*Õ8ÕRÕ_Õ~Õ~Õ�Õ§Õ´Õ¹Õ¹ÕÊÕÞÕåÕêÕêÕûÕÖ&Ö+Ö+Ö1ÖBÖVÖuÖzÖzÖ€Ö‘Ö¥ÖÄÖÉÖÉÖÚÖîÖûÖ×××%×2×7×7×H×\×i×k×k×k×k×k×|×”×£×¥×¥×¶×Ê×Ó×Ó×Ù×Ù×â×â×kØ;4ÃÌjÊjÊxÊ}ʈʋÊ�Ê•Ê<l 7NN9NT3DŠÖŠÖ›Ö¼ÖÊÖÖÖÖÖôÖ××××&×2×4×<×?XÉÛ)w)wIwVw[wgw‡w�wšw¥w¬wµw¹wÅw@X¶È‰v‰v©v¶v»vÇvçvívúvwwww'wA$
´ ´ Ê ¡#¡1¡B X\^è^èbèkèmèC õù†ñ†ñ�ñ£ñ¨ñD áå{—{—�—¡—©—E(*0̨̨٨'©F0qyËË0Ë3Ë3Ë<ËMËPËXËGHª¸Ë•˕敖
–––3–8–:–:–D–HD lzÎz΅ΞΥθÎÅÎèÎèÎõÎÏ8ÏIÏtτϕϩϰϵϵÏÕÏíÏ'Ð.Ð?ÐQÐbÐ�ЦвйййооÐàÐËÐøÐÑÑ/ÑZÑkіѨѯѴѴÑÃÑÒÑáÑæÑæÑõÑ	Ò/Ò7ÒOÒ^ÒuÒ•Ò•Ò•Ò­Ò¹ÒÆÒÏÒ×ÒýÒIXºÌ¹¹<¹@¹F¹I¹T¹T¹e¹r¹|¹¹‚¹ˆ¹–¹J0 ¨“õ“õ©õµõàõâõâõêõKDºÍºÍÃÍËÍËÍØÍêÍòÍ÷ÍÎ	ÎÎÎÎLL4¡4¡D¡R¡b¡h¡“¡·¡È¡¢¢ ¢MØ9††4†;†?†C†N†_†m†�†�†�†™†¤†»†À†Ɇ̆Ö†Þ†á†ä†ø†‡‡.‡5‡>‡A‡C‡S‡V‡X‡_‡o‡s‡z‡}‡£‡ª‡¼‡N<ðû˜˜!˜#˜1˜N˜R˜b˜o˜O �…ëëëëìì!ìPH -žóžó²ó´ó»óÉóñóöó
ôôôôôQ@:F=Q=QMQZQaQvQ}Q„Q�QRHâðð/ð/
+00'0<0C0L0i0l0v0SPúVúVW0W0Wdisplay_flags,DISPLAYf_SILENT)) {
       if (kbd.scan_code & SCF_SCROLL && sys_focus_task==Fs)
 	while (kbd.scan_code & SCF_SCROLL)
 	  Yield; //Wait on SCROLL LOCK Key
-      while (tempp!=&keydev.put_key_head) {
-	if ((!(sc&SCF_KEY_DESC) || tempp->flags & KDF_HAS_DESCS) &&
-	      (*tempp->put_key)(ch,sc))
+      while (tmpk!=&keydev.put_key_head) {
+	if ((!(sc&SCF_KEY_DESC) || tmpk->flags & KDF_HAS_DESCS) &&
+	      (*tmpk->put_key)(ch,sc))
 	  break;
-	tempp=tempp->next;
+	tmpk=tmpk->next;
       }
     }
   }
@@ -33,22 +33,22 @@ U0 PutS(U8 *st)
   U8 *ptr;
   Bool cont=TRUE;
   if (!st) return;
-  CKeyDevEntry *tempp=keydev.put_key_head.next;
+  CKeyDevEntry *tmpk=keydev.put_key_head.next;
   if (!Bt(&Fs->display_flags,DISPLAYf_SILENT)) {
     if (kbd.scan_code & SCF_SCROLL && sys_focus_task==Fs)
       while (kbd.scan_code & SCF_SCROLL)
 	Yield;
-    while (cont && tempp!=&keydev.put_key_head) {
-      if (tempp->put_s) {
-	if ((*tempp->put_s)(st))
+    while (cont && tmpk!=&keydev.put_key_head) {
+      if (tmpk->put_s) {
+	if ((*tmpk->put_s)(st))
 	  break;
       } else {
 	ptr=st;
 	while (ch=*ptr++)
-	  if ((*tempp->put_key)(ch,0))
+	  if ((*tmpk->put_key)(ch,0))
 	    cont=FALSE;
       }
-      tempp=tempp->next;
+      tmpk=tmpk->next;
     }
   }
 }
@@ -61,28 +61,28 @@ U0 KeyDescSet(U8 *fmt,...)
   Free(buf);
 }
 
-U0 KeyDevRem(CKeyDevEntry *tempp)
+U0 KeyDevRem(CKeyDevEntry *tmpk)
 {//Remove StdOut hook and free.
-  QueRem(tempp);
-  Free(tempp);
+  QueRem(tmpk);
+  Free(tmpk);
 }
 
 CKeyDevEntry *KeyDevAdd(Bool (*fp_put_key)(I64 ch,I64 sc),
 	Bool (*fp_puts)(U8 *st),I64 priority,Bool key_descs=FALSE)
 {//Places hook in StdOut chain. See $LK,"Keyboard Devices",A="HI:Keyboard Devices/System"$.
-  CKeyDevEntry *tempp=keydev.put_key_head.last,
-	*tempp1=ACAlloc(sizeof(CKeyDevEntry));
-  tempp1->put_key=fp_put_key;
-  tempp1->put_s=fp_puts;
-  tempp1->priority=priority;
+  CKeyDevEntry *tmpk=keydev.put_key_head.last,
+	*tmpk1=ACAlloc(sizeof(CKeyDevEntry));
+  tmpk1->put_key=fp_put_key;
+  tmpk1->put_s=fp_puts;
+  tmpk1->priority=priority;
   if (key_descs)
-    tempp1->flags|=KDF_HAS_DESCS;
-  while (tempp->priority>priority)
-    tempp=tempp->last;
-  QueIns(tempp1,tempp);
-  if (tempp->priority==priority)
-    KeyDevRem(tempp);
-  return tempp1;
+    tmpk1->flags|=KDF_HAS_DESCS;
+  while (tmpk->priority>priority)
+    tmpk=tmpk->last;
+  QueIns(tmpk1,tmpk);
+  if (tmpk->priority==priority)
+    KeyDevRem(tmpk);
+  return tmpk1;
 }
 
 Bool KDRawPutKey(I64 ch,I64)
@@ -137,7 +137,7 @@ U0 CtrlAltC(I64)
 
 U0 CtrlAltD(I64)
 {
-  if (!IsDbg) {
+  if (!IsDbgMode) {
     if (Fs==Gs->idle_task)
       BptS(sys_winmgr_task->rip,sys_winmgr_task);
     else
diff --git a/Kernel/Mem/MemPhysical.HC b/Kernel/Mem/MemPhysical.HC
index a02231d..62ea122 100644
--- a/Kernel/Mem/MemPhysical.HC
+++ b/Kernel/Mem/MemPhysical.HC
@@ -1,55 +1,55 @@
-Bool Mem32DevIns(CMemRange *tempmr)
+Bool Mem32DevIns(CMemRange *tmpmr)
 {
-  CMemRange *tempmr1=dev.mem32_head.next,*tempmr2;
-  while (tempmr1!=&dev.mem32_head) {
-    if (!tempmr1->type && tempmr->base>=tempmr1->base &&
-	  tempmr->base+tempmr->size<=tempmr1->base+tempmr1->size) {
-      if (tempmr->base>tempmr1->base) {
-	tempmr2=AMAlloc(sizeof(CMemRange));
-	tempmr2->type=MRT_UNUSED;
-	tempmr2->flags=0;
-	tempmr2->base=tempmr1->base;
-	tempmr2->size=tempmr->base-tempmr1->base;
-	QueInsRev(tempmr2,tempmr1);
+  CMemRange *tmpmr1=dev.mem32_head.next,*tmpmr2;
+  while (tmpmr1!=&dev.mem32_head) {
+    if (!tmpmr1->type && tmpmr->base>=tmpmr1->base &&
+	  tmpmr->base+tmpmr->size<=tmpmr1->base+tmpmr1->size) {
+      if (tmpmr->base>tmpmr1->base) {
+	tmpmr2=AMAlloc(sizeof(CMemRange));
+	tmpmr2->type=MRT_UNUSED;
+	tmpmr2->flags=0;
+	tmpmr2->base=tmpmr1->base;
+	tmpmr2->size=tmpmr->base-tmpmr1->base;
+	QueInsRev(tmpmr2,tmpmr1);
       }
-      QueInsRev(tempmr,tempmr1);
-      tempmr1->size=tempmr1->base+tempmr1->size-
-	    (tempmr->base+tempmr->size);
-      tempmr1->base=tempmr->base+tempmr->size;
-      if (!tempmr1->size) {
-	QueRem(tempmr1);
-	Free(tempmr1);
+      QueInsRev(tmpmr,tmpmr1);
+      tmpmr1->size=tmpmr1->base+tmpmr1->size-
+	    (tmpmr->base+tmpmr->size);
+      tmpmr1->base=tmpmr->base+tmpmr->size;
+      if (!tmpmr1->size) {
+	QueRem(tmpmr1);
+	Free(tmpmr1);
       }
       return TRUE;
     }
-    tempmr1=tempmr1->next;
+    tmpmr1=tmpmr1->next;
   }
   return FALSE;
 }
 
 U0 Mem32DevInit()
 {
-  CMemRange *tempmr;
+  CMemRange *tmpmr;
   CMemE820 *m20=SYS_MEM_E820;
 
   QueInit(&dev.mem32_head);
-  tempmr=AMAlloc(sizeof(CMemRange));
-  tempmr->type=MRT_UNUSED;
-  tempmr->flags=0;
+  tmpmr=AMAlloc(sizeof(CMemRange));
+  tmpmr->type=MRT_UNUSED;
+  tmpmr->flags=0;
 //Maybe !!! Change this to 0xF0000000 !!!
-  tempmr->base=0xE0000000;
-  tempmr->size=0x10000000;
-  QueIns(tempmr,dev.mem32_head.last);
+  tmpmr->base=0xE0000000;
+  tmpmr->size=0x10000000;
+  QueIns(tmpmr,dev.mem32_head.last);
 
   if (m20->type) {
     while (m20->type) {
-      tempmr=AMAlloc(sizeof(CMemRange));
-      tempmr->type=m20->type;
-      tempmr->flags=0;
-      tempmr->base=m20->base;
-      tempmr->size=m20->len;
-      if (!Mem32DevIns(tempmr))
-	Free(tempmr);
+      tmpmr=AMAlloc(sizeof(CMemRange));
+      tmpmr->type=m20->type;
+      tmpmr->flags=0;
+      tmpmr->base=m20->base;
+      tmpmr->size=m20->len;
+      if (!Mem32DevIns(tmpmr))
+	Free(tmpmr);
       m20++;
     }
   }
@@ -83,29 +83,29 @@ U8 *Mem32DevAlloc(I64 size,I64 alignment)
 //For this to work the BIOS E820 map must be searched for gaps in
   //the 32-bit range and the pool initialized to the gaps.
   U8 *base,*limit;
-  CMemRange *tempmr,*tempmr1;
+  CMemRange *tmpmr,*tmpmr1;
   while (LBts(&sys_semas[SYS_SEMA_DEV_MEM],0))
     Yield;
-  tempmr1=dev.mem32_head.next;
-  while (tempmr1!=&dev.mem32_head) {
-    base=(tempmr1->base+alignment-1)&~(alignment-1);
+  tmpmr1=dev.mem32_head.next;
+  while (tmpmr1!=&dev.mem32_head) {
+    base=(tmpmr1->base+alignment-1)&~(alignment-1);
     limit=base+size-1;
-    if (!tempmr1->type &&
-	  limitbase+tempmr1->size) {
-      tempmr=AMAlloc(sizeof(CMemRange));
-      tempmr->type=MRT_DEV;
-      tempmr->flags=0;
-      tempmr->base=base;
-      tempmr->size=size;
-      if (!Mem32DevIns(tempmr)) {
-	Free(tempmr);
+    if (!tmpmr1->type &&
+	  limitbase+tmpmr1->size) {
+      tmpmr=AMAlloc(sizeof(CMemRange));
+      tmpmr->type=MRT_DEV;
+      tmpmr->flags=0;
+      tmpmr->base=base;
+      tmpmr->size=size;
+      if (!Mem32DevIns(tmpmr)) {
+	Free(tmpmr);
 	LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0);
 	return NULL;
       }
       LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0);
-      return tempmr->base;
+      return tmpmr->base;
     }
-    tempmr1=tempmr1->next;
+    tmpmr1=tmpmr1->next;
   }
   LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0);
   return NULL;
@@ -113,17 +113,17 @@ U8 *Mem32DevAlloc(I64 size,I64 alignment)
 
 U0 Mem32DevFree(U8 *base)
 {//Free 32-bit device address space.
-  CMemRange *tempmr;
+  CMemRange *tmpmr;
   if (!base) return;
   while (LBts(&sys_semas[SYS_SEMA_DEV_MEM],0))
     Yield;
-  tempmr=dev.mem32_head.next;
-  while (tempmr!=&dev.mem32_head) {
-    if (tempmr->base==base) {
-      tempmr->type=MRT_UNUSED;
+  tmpmr=dev.mem32_head.next;
+  while (tmpmr!=&dev.mem32_head) {
+    if (tmpmr->base==base) {
+      tmpmr->type=MRT_UNUSED;
       break;
     }
-    tempmr=tempmr->next;
+    tmpmr=tmpmr->next;
   }
   LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0);
 }
diff --git a/Kernel/MultiProc.HC b/Kernel/MultiProc.HC
index 9dbf3a7..49e597d 100644
--- a/Kernel/MultiProc.HC
+++ b/Kernel/MultiProc.HC
@@ -217,32 +217,32 @@ CSrvCmd *JobQue(I64 (*fp_addr)(U8 *data),U8 *data=NULL,
 //Set flags to zero if you wish to get the res.
   //See $LK,"::/Demo/MultiCore/Lock.HC"$
   CSrvCtrl *ctrl;
-  CSrvCmd *tempc;
+  CSrvCmd *tmpc;
   CTask *seth;
   if (!(0<=target_cpuaux_str=AStrNew(aux_str);
-  tempc->cmd_code=cmd_code;
-  tempc->addr=fp_addr;
-  tempc->fun_arg=data;
-  tempc->target_cpu=target_cpu;
-  tempc->flags=flags;
-  tempc->aux1=aux1;
-  tempc->aux2=aux2;
+    tmpc->aux_str=AStrNew(aux_str);
+  tmpc->cmd_code=cmd_code;
+  tmpc->addr=fp_addr;
+  tmpc->fun_arg=data;
+  tmpc->target_cpu=target_cpu;
+  tmpc->flags=flags;
+  tmpc->aux1=aux1;
+  tmpc->aux2=aux2;
   seth=cpu_structs[target_cpu].seth_task;
-  tempc->ctrl=ctrl=&seth->srv_ctrl;
+  tmpc->ctrl=ctrl=&seth->srv_ctrl;
   PUSHFD
   CLI
   while (LBts(&ctrl->flags,SVCRf_LOCKED))
     Yield;
   if (ctrl->next_waiting==ctrl && LBtr(&seth->task_flags,TASKf_AWAITING_MSG))
     MPInt(I_WAKE,target_cpu);
-  QueIns(tempc,ctrl->last_waiting);
+  QueIns(tmpc,ctrl->last_waiting);
   LBtr(&ctrl->flags,SVCRf_LOCKED);
   POPFD
-  return tempc;
+  return tmpc;
 }
 
 CTask *SpawnQue(U0 (*fp_addr)(U8 *data),U8 *data=NULL,U8 *task_name=NULL,
@@ -250,26 +250,26 @@ CTask *SpawnQue(U0 (*fp_addr)(U8 *data),U8 *data=NULL,U8 *task_name=NULL,
 	I64 stk_size=0,I64 flags=1<flags,SVCf_DONE)) {
+  while (!Bt(&tmpc->flags,SVCf_DONE)) {
     LBts(&Fs->task_flags,TASKf_IDLE);
     Yield;
   }
   LBtr(&Fs->task_flags,TASKf_IDLE);
 
-  res=tempc->spawned_task;
-  ctrl=tempc->ctrl;
+  res=tmpc->spawned_task;
+  ctrl=tmpc->ctrl;
   PUSHFD
   CLI
   while (LBts(&ctrl->flags,SVCRf_LOCKED))
     Yield;
-  QueRem(tempc);
+  QueRem(tmpc);
   LBtr(&ctrl->flags,SVCRf_LOCKED);
   POPFD
-  SrvCmdDel(tempc);
+  SrvCmdDel(tmpc);
   return res;
 }
 
@@ -378,7 +378,7 @@ U0 Core0Init()
 }
 
 interrupt U0 IntMPCrash()
-{//Entering the debugger from another core causes an interrupt on core0
+{//Entering the debugger from another core causes an interrupt on Core0
 //Which calls this routine.
   *(dev.uncached_alias+LAPIC_EOI)(U32 *)=0;
   mp_cnt=1;
diff --git a/Kernel/QSort.HC b/Kernel/QSort.HC
index a5e973f..ea2305d 100644
--- a/Kernel/QSort.HC
+++ b/Kernel/QSort.HC
@@ -53,10 +53,10 @@ U0 QSort2a(U8 **base,I64 num,I64 (*fp_compare)(U8 **_e1,U8 **_e2))
     QSort2a(left,i,fp_compare);
 }
 U0 QSort2b(U8 *base,I64 num, I64 width,
-	I64 (*fp_compare)(U8 *e1,U8 *e2),U8 *temp)
+	I64 (*fp_compare)(U8 *e1,U8 *e2),U8 *tmp)
 {//Not public
   I64 i;
-  U8 *left,*right,*pivot=temp+width;
+  U8 *left,*right,*pivot=tmp+width;
   left =base;
   right=base+(num-1)*width;
   MemCpy(pivot,base+num/2*width,width);
@@ -67,9 +67,9 @@ U0 QSort2b(U8 *base,I64 num, I64 width,
       right-=width;
     if (left<=right) {
       if (left!=right) {
-	MemCpy(temp,right,width);
+	MemCpy(tmp,right,width);
 	MemCpy(right,left,width);
-	MemCpy(left,temp,width);
+	MemCpy(left,tmp,width);
       }
       left+=width;
       right-=width;
@@ -77,10 +77,10 @@ U0 QSort2b(U8 *base,I64 num, I64 width,
   } while (left<=right);
   i=1+(right-base)/width;
   if (11) {
     if (width==sizeof(U8 *))	//assign instead of MemCpy for width 8
       QSort2a(base,num,fp_compare);
     else {
-      temp=MAlloc(width*2);
-      QSort2b(base,num,width,fp_compare,temp);
-      Free(temp);
+      tmp=MAlloc(width*2);
+      QSort2b(base,num,width,fp_compare,tmp);
+      Free(tmp);
     }
   }
 }
diff --git a/Kernel/Sched.HC b/Kernel/Sched.HC
index 5371228..ec14d9f 100644
--- a/Kernel/Sched.HC
+++ b/Kernel/Sched.HC
@@ -1,6 +1,6 @@
 /*On each core, tasks are linked in a
 circular doubly-linked list queue with
-the Seth task as the head.  On core0,
+the Seth task as the head.  On Core0,
 the queue order represents the front-to-back
 window stack order with the window mgr
 as the wallpaper.
diff --git a/Kernel/SerialDev/Message.HC b/Kernel/SerialDev/Message.HC
index dc56742..50a59ee 100644
--- a/Kernel/SerialDev/Message.HC
+++ b/Kernel/SerialDev/Message.HC
@@ -1,6 +1,6 @@
 U0 InputFilterTask()
 {
-  CSrvCmd *tempc,*tempc1;
+  CSrvCmd *tmpc,*tmpc1;
   Bool old_filter;
   I64 old_flags=GetRFlags;
   Fs->win_inhibit=WIG_USER_TASK_DFT;
@@ -10,19 +10,19 @@ U0 InputFilterTask()
   while (TRUE) {
     CLI
     SrvCmdsHandler(old_flags);
-    tempc1=&Fs->srv_ctrl.next_waiting;
-    tempc=tempc1->next;
-    if (tempc==tempc1)
+    tmpc1=&Fs->srv_ctrl.next_waiting;
+    tmpc=tmpc1->next;
+    if (tmpc==tmpc1)
       break;
     else {
-      if (tempc->cmd_code==SVCT_TEXT_INPUT) {
-	QueRem(tempc);
+      if (tmpc->cmd_code==SVCT_TEXT_INPUT) {
+	QueRem(tmpc);
 	SetRFlags(old_flags);
 	try
-		ExePrint("%s",tempc->aux_str);
+		ExePrint("%s",tmpc->aux_str);
 	catch
 	  Fs->catch_except=TRUE;
-	SrvCmdDel(tempc);
+	SrvCmdDel(tmpc);
       } else
 	break;
     }
@@ -42,28 +42,28 @@ Remove desired message, return $LK,"msg_code",A="MN:MSG_CMD"$.
 Note: This delivers messages from parent down to pop-up.
 */
   I64 res,old_flags;
-  CSrvCmd *tempc,*tempc1;
+  CSrvCmd *tmpc,*tmpc1;
   if (!task) task=Fs;
   old_flags=GetRFlags;
-  tempc1=&task->srv_ctrl.next_waiting;
+  tmpc1=&task->srv_ctrl.next_waiting;
   while (TRUE) {
     CLI
     if (task==Fs)
       SrvCmdsHandler(old_flags);
-    tempc=tempc1->next;
-    if (tempc==tempc1)
+    tmpc=tmpc1->next;
+    if (tmpc==tmpc1)
       break;
     else {
-      if (tempc->cmd_code==SVCT_MSG) {
-	QueRem(tempc);
+      if (tmpc->cmd_code==SVCT_MSG) {
+	QueRem(tmpc);
 	SetRFlags(old_flags);
-	res=tempc->msg_code;
+	res=tmpc->msg_code;
 	if (_a1)
-	  *_a1=tempc->aux1;
+	  *_a1=tmpc->aux1;
 	if (_a2)
-	  *_a2=tempc->aux2;
-	SrvCmdDel(tempc);
-	if ((res!=MSG_KEY_DOWN || !(tempc->aux2&SCF_KEY_DESC) ||
+	  *_a2=tmpc->aux2;
+	SrvCmdDel(tmpc);
+	if ((res!=MSG_KEY_DOWN || !(tmpc->aux2&SCF_KEY_DESC) ||
 	      !Bt(&task->win_inhibit,WIf_SELF_KEY_DESC)) && Bt(&mask,res))
 	  goto sm_done;
       }
@@ -156,7 +156,7 @@ I64 GetKey(I64 *_scan_code=NULL,Bool echo=FALSE,Bool raw_cursor=FALSE)
       }
     }
     LBts(&Fs->task_flags,TASKf_IDLE);
-    if (IsDbg) {
+    if (IsDbgMode) {
 //We don't want interrupt-driven keyboard when in debugger
       //because that could have side-effects or crash, so we poll
       //keyboard when in debugger with interrupts off.
@@ -222,7 +222,7 @@ I64 GetS(U8 *buf,I64 size,Bool allow_ext=TRUE)
     Free(st);
   } else {
     while (TRUE) {
-      ch=GetChar(,FALSE,IsDbg);
+      ch=GetChar(,FALSE,IsDbgMode);
       if (ch=='\n') {
 	'' ch;
 	break;
diff --git a/Kernel/SerialDev/Mouse.HC b/Kernel/SerialDev/Mouse.HC
index 5deb003..0b63e86 100644
--- a/Kernel/SerialDev/Mouse.HC
+++ b/Kernel/SerialDev/Mouse.HC
@@ -108,11 +108,11 @@ Bool MouseRst()
 
 U0 MouseSpeedSet()
 {
-  I64 dd,temp;
+  I64 dd,tmp;
   if ((dd=SqrI64(mouse_last.pos.x-mouse.pos.x)
 	+SqrI64(mouse_last.pos.y-mouse.pos.y)) &&
-	(temp=mouse.timestamp-mouse_last.timestamp))
-    mouse.speed=Sqrt(dd)*cnts.time_stamp_freq/temp;
+	(tmp=mouse.timestamp-mouse_last.timestamp))
+    mouse.speed=Sqrt(dd)*cnts.time_stamp_freq/tmp;
   mouse_last.timestamp=mouse.timestamp;
 }
 
diff --git a/Kernel/SrvCmd.HC b/Kernel/SrvCmd.HC
index cbeea88..b46314d 100644
--- a/Kernel/SrvCmd.HC
+++ b/Kernel/SrvCmd.HC
@@ -1,17 +1,17 @@
-U0 SrvCmdDel(CSrvCmd *tempc)
+U0 SrvCmdDel(CSrvCmd *tmpc)
 {//Free one cmd node.
-  Free(tempc->aux_str);
-  Free(tempc);
+  Free(tmpc->aux_str);
+  Free(tmpc);
 }
 
 U0 SrvCmdQueDel(CSrvCmd *head)
 {
-  CSrvCmd *tempc=head->next,*tempc1;
-  while (tempc!=head) {
-    tempc1=tempc->next;
-    QueRem(tempc);
-    SrvCmdDel(tempc);
-    tempc=tempc1;
+  CSrvCmd *tmpc=head->next,*tmpc1;
+  while (tmpc!=head) {
+    tmpc1=tmpc->next;
+    QueRem(tmpc);
+    SrvCmdDel(tmpc);
+    tmpc=tmpc1;
   }
 }
 
@@ -119,51 +119,51 @@ CSrvCmd *TaskText(CTask *srv,CTask *master,U8 *data,I64 flags)
 CSrvCmd *TaskMsg(CTask *_srv,CTask *master,I64 msg_code,I64 a1,I64 a2,I64 flags)
 {//Post message to servant task.  Tell who the master task is.
 //See $LK,"flags",A="MN:SVCf_WAKE_MASTER"$ and $LK,"msg_code",A="MN:MSG_CMD"$.
-  CSrvCmd *tempc1,*tempc;
+  CSrvCmd *tmpc1,*tmpc;
   CTask *srv=_srv;
   if (!TaskValidate(srv) || master && !TaskValidate(master)||
 	srv->popup_task && !Bt(&srv->task_flags,TASKf_FILTER_INPUT))
     return NULL;
-  tempc=ACAlloc(sizeof(CSrvCmd));
-  tempc->master_task=master;
-  tempc->cmd_code=SVCT_MSG;
-  tempc->msg_code=AbsI64(msg_code); //negative means do a down and up
-  tempc->aux1=a1;
-  tempc->aux2=a2;
-  tempc->flags=flags;
+  tmpc=ACAlloc(sizeof(CSrvCmd));
+  tmpc->master_task=master;
+  tmpc->cmd_code=SVCT_MSG;
+  tmpc->msg_code=AbsI64(msg_code); //negative means do a down and up
+  tmpc->aux1=a1;
+  tmpc->aux2=a2;
+  tmpc->flags=flags;
   PUSHFD
   if (Bt(&sys_semas[SYS_SEMA_RECORD_MACRO],0) &&
 	srv!=sys_macro_task && msg_code==MSG_KEY_DOWN) {
-    tempc1=AMAllocIdent(tempc);
+    tmpc1=AMAllocIdent(tmpc);
     CLI
-    QueIns(tempc1,sys_macro_head.last);
+    QueIns(tmpc1,sys_macro_head.last);
   }
   CLI
   while (Bt(&srv->task_flags,TASKf_FILTER_INPUT) &&
 	!Bt(&flags,SVCf_DONT_FILTER))
     srv=srv->next_input_filter_task;
-  tempc->ctrl=&srv->srv_ctrl;
+  tmpc->ctrl=&srv->srv_ctrl;
   while (LBts(&srv->srv_ctrl.flags,SVCRf_LOCKED))
     PAUSE
   if (!TaskValidate(srv)) {
-    SrvCmdDel(tempc);
-    tempc=NULL;
+    SrvCmdDel(tmpc);
+    tmpc=NULL;
   } else {
     LBtr(&srv->task_flags,TASKf_IDLE);
     TaskRstAwaitingMsg(srv);
-    QueIns(tempc,srv->srv_ctrl.last_waiting);
+    QueIns(tmpc,srv->srv_ctrl.last_waiting);
     LBtr(&srv->srv_ctrl.flags,SVCRf_LOCKED);
   }
   POPFD
   if (msg_code<0) //Down-Up
     TaskMsg(_srv,master,-msg_code+1,a1,a2,flags);
-  return tempc;
+  return tmpc;
 }
 
 Bool JobResScan(CSrvCmd *rqst=NULL,I64 *_res=NULL)
 {//Check rqst complete, return with or without.
   CSrvCtrl *ctrl;
-  CSrvCmd *tempc,*tempc1;
+  CSrvCmd *tmpc,*tmpc1;
   if (!rqst || Bt(&rqst->flags,SVCf_DONE)) {
     if (!rqst || rqst->master_task)
       ctrl=&Fs->srv_ctrl;
@@ -173,19 +173,19 @@ Bool JobResScan(CSrvCmd *rqst=NULL,I64 *_res=NULL)
     CLI
     while (LBts(&ctrl->flags,SVCRf_LOCKED))
       PAUSE
-    tempc1=&ctrl->next_done;
-    tempc=tempc1->next;
-    while (tempc!=tempc1) {
-      if (!rqst || rqst==tempc) {
-	QueRem(tempc);
+    tmpc1=&ctrl->next_done;
+    tmpc=tmpc1->next;
+    while (tmpc!=tmpc1) {
+      if (!rqst || rqst==tmpc) {
+	QueRem(tmpc);
 	LBtr(&ctrl->flags,SVCRf_LOCKED);
 	POPFD
 	if (_res)
-	  *_res=tempc->res;
-	SrvCmdDel(tempc);
+	  *_res=tmpc->res;
+	SrvCmdDel(tmpc);
 	return TRUE;
       }
-      tempc=tempc->next;
+      tmpc=tmpc->next;
     }
     LBtr(&ctrl->flags,SVCRf_LOCKED);
     POPFD
@@ -198,10 +198,10 @@ Bool JobResScan(CSrvCmd *rqst=NULL,I64 *_res=NULL)
 I64 JobResGet(CSrvCmd *rqst=NULL)
 {//See $LK,"::/Demo/MultiCore/Lock.HC"$
   I64 res;
-  CSrvCmd *tempc1;
+  CSrvCmd *tmpc1;
   if (!rqst) {
-    tempc1=&Fs->srv_ctrl.next_done;
-    while (tempc1==tempc1->next) {
+    tmpc1=&Fs->srv_ctrl.next_done;
+    while (tmpc1==tmpc1->next) {
       LBts(&Fs->task_flags,TASKf_IDLE);
       Yield;
     }
@@ -217,19 +217,20 @@ I64 JobResGet(CSrvCmd *rqst=NULL)
   return res;
 }
 
-U0 TaskWait(CTask *task=NULL)
+U0 TaskWait(CTask *task=NULL,Bool cmd_line_pmt=FALSE)
 {//Wait for idle.
   CTask *task1;
-  CSrvCmd *tempc1;
+  CSrvCmd *tmpc1;
   if (!task) task=Fs;
   if (TaskValidate(task)) {
     PUSHFD
     CLI
     while (TRUE) {
       task1=task->last_input_filter_task;
-      tempc1=&task1->srv_ctrl.next_waiting;
+      tmpc1=&task1->srv_ctrl.next_waiting;
       if (task1==Fs || !TaskValidate(task1) ||
-	    tempc1==tempc1->next && Bt(&task1->task_flags,TASKf_IDLE))
+	    tmpc1==tmpc1->next && Bt(&task1->task_flags,TASKf_IDLE) &&
+	    (!cmd_line_pmt || Bt(&task1->task_flags,TASKf_CMD_LINE_PMT)))
 	break;
       Yield;
     }
@@ -266,48 +267,48 @@ U0 Msg(I64 msg_code,I64 a1,I64 a2,I64 flags=0)
 
 I64 SrvCmdRunOne(I64 run_flags,CSrvCtrl *ctrl)
 {//Called with ctrl->flags,SVCRf_LOCKED.
-  CSrvCmd *tempc=ctrl->next_waiting;
+  CSrvCmd *tmpc=ctrl->next_waiting;
   CTask   *master;
-  I64 res,flags=tempc->flags,old_flags=GetRFlags;
+  I64 res,flags=tmpc->flags,old_flags=GetRFlags;
   if (Bt(&flags,SVCf_EXIT_ON_COMPLETE))
     res=SCR_EXIT;
   else
     res=SCR_CONT;
-  switch (tempc->cmd_code) {
+  switch (tmpc->cmd_code) {
     case SVCT_SPAWN_TASK:
-      QueRem(tempc);
-      LBts(&tempc->flags,SVCf_DISPATCHED);
-      tempc->servant_cpu_num=Gs->num;
+      QueRem(tmpc);
+      LBts(&tmpc->flags,SVCf_DISPATCHED);
+      tmpc->servant_cpu_num=Gs->num;
       LBtr(&ctrl->flags,SVCRf_LOCKED);
-      if (tempc->aux_str)
-	tempc->spawned_task=Spawn(tempc->addr,tempc->fun_arg,
-	      tempc->aux_str,,tempc->aux1,tempc->aux2,tempc->flags);
+      if (tmpc->aux_str)
+	tmpc->spawned_task=Spawn(tmpc->addr,tmpc->fun_arg,
+	      tmpc->aux_str,,tmpc->aux1,tmpc->aux2,tmpc->flags);
       else
-	tempc->spawned_task=Spawn(tempc->addr,tempc->fun_arg,
-	      "Unnamed",,tempc->aux1,tempc->aux2,tempc->flags);
+	tmpc->spawned_task=Spawn(tmpc->addr,tmpc->fun_arg,
+	      "Unnamed",,tmpc->aux1,tmpc->aux2,tmpc->flags);
       break;
     case SVCT_CALL:
-      QueRem(tempc);
-      LBts(&tempc->flags,SVCf_DISPATCHED);
-      tempc->servant_cpu_num=Gs->num;
+      QueRem(tmpc);
+      LBts(&tmpc->flags,SVCf_DISPATCHED);
+      tmpc->servant_cpu_num=Gs->num;
       LBtr(&ctrl->flags,SVCRf_LOCKED);
       SetRFlags(run_flags);
       LBtr(&Fs->task_flags,TASKf_IDLE);
       try
-	      tempc->res=(*tempc->addr)(tempc->fun_arg);
+	      tmpc->res=(*tmpc->addr)(tmpc->fun_arg);
       catch
 	Fs->catch_except=TRUE;
       SetRFlags(old_flags);
       break;
     case SVCT_EXE_STR:
-      QueRem(tempc);
-      LBts(&tempc->flags,SVCf_DISPATCHED);
-      tempc->servant_cpu_num=Gs->num;
+      QueRem(tmpc);
+      LBts(&tmpc->flags,SVCf_DISPATCHED);
+      tmpc->servant_cpu_num=Gs->num;
       LBtr(&ctrl->flags,SVCRf_LOCKED);
       SetRFlags(run_flags);
       LBtr(&Fs->task_flags,TASKf_IDLE);
       try
-	      tempc->res=ExePrint("%s",tempc->aux_str);
+	      tmpc->res=ExePrint("%s",tmpc->aux_str);
       catch
 	Fs->catch_except=TRUE;
       SetRFlags(old_flags);
@@ -316,13 +317,13 @@ I64 SrvCmdRunOne(I64 run_flags,CSrvCtrl *ctrl)
       res=SCR_DONE;
   }
   if (res) {
-    if (master=tempc->master_task) {
+    if (master=tmpc->master_task) {
       if (!Bt(&flags,SVCf_FREE_ON_COMPLETE)) {
 	CLI
 	while (LBts(&master->srv_ctrl.flags,SVCRf_LOCKED))
 	  PAUSE
-	QueIns(tempc,master->srv_ctrl.last_done);
-	LBts(&tempc->flags,SVCf_DONE);
+	QueIns(tmpc,master->srv_ctrl.last_done);
+	LBts(&tmpc->flags,SVCf_DONE);
 	LBtr(&master->srv_ctrl.flags,SVCRf_LOCKED);
 	SetRFlags(old_flags);
       }
@@ -333,13 +334,13 @@ I64 SrvCmdRunOne(I64 run_flags,CSrvCtrl *ctrl)
 	Suspend(master,FALSE);
     }
     if (Bt(&flags,SVCf_FREE_ON_COMPLETE))
-      SrvCmdDel(tempc);
+      SrvCmdDel(tmpc);
     else if (!master) {
       CLI
       while (LBts(&ctrl->flags,SVCRf_LOCKED))
 	Yield;
-      QueIns(tempc,ctrl->last_done);
-      LBts(&tempc->flags,SVCf_DONE);
+      QueIns(tmpc,ctrl->last_done);
+      LBts(&tmpc->flags,SVCf_DONE);
       LBtr(&ctrl->flags,SVCRf_LOCKED);
       SetRFlags(old_flags);
     }
@@ -377,7 +378,7 @@ sch_done:
 I64 PopUp(U8 *buf,CTask *parent=NULL,CTask **_pu_task=NULL)
 {//Execute code in $LK,"PopUp",A="MN:PopUp"$ task.
   I64 res;
-  CSrvCmd *tempc;
+  CSrvCmd *tmpc;
   CTask *task=Spawn(&SrvCmdLine,NULL,"Servant",,parent);
   if (!parent) {
     TaskExe(task,parent,buf,1<popup_task=task;
-    tempc=TaskExe(task,parent,buf,1<popup_task=NULL;
     Kill(task);
     if (_pu_task) *_pu_task=NULL;
@@ -408,15 +409,15 @@ I64 Adam(U8 *fmt,...)
 {//Make adam_task execute code.
   I64 res;
   U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
-  CSrvCmd *tempc;
+  CSrvCmd *tmpc;
   if (Fs==adam_task) {
-    tempc=TaskExe(adam_task,Fs,buf,0);
+    tmpc=TaskExe(adam_task,Fs,buf,0);
     SrvCmdsHandler(GetRFlags);
   } else {
     TaskWait(adam_task);
-    tempc=TaskExe(adam_task,Fs,buf,1<task_flags,TASKf_INPUT_FILTER_TASK))
     ExePrint("%s",buf);
@@ -472,30 +473,30 @@ U0 AutoStr(U8 *fmt,...)
   Free(buf);
 }
 
-U0 AutoFile(U8 *filename)
-{//Send AutoFile code file to self.
-  U8 *name=DftExt(filename,"AUT.Z");
-  AutoStr("Cd(\"%C:%s\");;#include \"%s\"",
+U0 InFile(U8 *filename)
+{//Send InFile code file to self.
+  U8 *name=DftExt(filename,"IN.Z");
+  InStr("Cd(\"%C:%s\");;#include \"%s\"",
 	Drv2Let(Fs->cur_dv),Fs->cur_dir,name);
   Free(name);
 }
 
-U0 Auto(U8 *fmt,...)
+U0 In(U8 *fmt,...)
 {//Send text to own input buffer. See $LK,"::/Demo/AcctExample/TOSDistro.HC"$.
   U8 *buf=StrPrintJoin(NULL,fmt,argc,argv),*st=AStrNew(buf);
-  AutoStr("\"%%s\",%d;Free(%d);",st,st);
+  InStr("\"%%s\",%d;Free(%d);",st,st);
   Free(buf);
 }
 
 U0 XTalkStr(CTask *task,U8 *fmt,...)
-{//Send AutoFile code to other task.
+{//Send InFile code to other task.
   U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
   TaskText(task,NULL,buf,0);
   Free(buf);
 }
 
 U0 XTalkStrWait(CTask *task,U8 *fmt,...)
-{//Send AutoFile code to other task and wait for it to idle.
+{//Send InFile code to other task and wait for it to idle.
   U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
   TaskText(task,NULL,buf,0);
   Free(buf);
diff --git a/Kernel/StrB.HC b/Kernel/StrB.HC
index 24ca2c4..e460fcd 100644
--- a/Kernel/StrB.HC
+++ b/Kernel/StrB.HC
@@ -1,29 +1,29 @@
 U8 *Tabs2Spaces(U8 *src)
 {//MAlloc str with tabs to spaces.
   I64 ch,i,j,l=StrLen(src)<<1+2,col=0;
-  U8 *dst=MAlloc(l),*temp;
+  U8 *dst=MAlloc(l),*tmp;
   while (ch=*src++) {
     if (ch=='\t') {
       j=(col+8) & ~7;
       for (i=col;i=l-2) {
-	  temp=MAlloc(l<<1);
-	  MemCpy(temp,dst,i+1);
+	  tmp=MAlloc(l<<1);
+	  MemCpy(tmp,dst,i+1);
 	  Free(dst);
 	  l<<=1;
-	  dst=temp;
+	  dst=tmp;
 	}
       }
       col=j;
     } else {
       dst[col]=ch;
       if (col>=l-2) {
-	temp=MAlloc(l<<1);
-	MemCpy(temp,dst,col+1);
+	tmp=MAlloc(l<<1);
+	MemCpy(tmp,dst,col+1);
 	Free(dst);
 	l<<=1;
-	dst=temp;
+	dst=tmp;
       }
       col++;
     }
@@ -57,12 +57,12 @@ U8 *ScaleIndent(U8 *src,F64 indent_scale_factor)
 
 U8 *MStrUtil(U8 *src,I64 flags,F64 indent_scale_factor=0)
 {//MAlloc $LK,"StrUtil",A="MN:StrUtil"$().
-  U8 *dst=StrNew(src),*dst2,*temp;
+  U8 *dst=StrNew(src),*dst2,*tmp;
   StrUtil(dst,flags);
   if (flags & SUF_T2S) {
-    temp=Tabs2Spaces(dst);
+    tmp=Tabs2Spaces(dst);
     Free(dst);
-    dst=temp;
+    dst=tmp;
   }
   if (flags & SUF_SCALE_INDENT)
     dst2=ScaleIndent(dst,indent_scale_factor);
@@ -114,7 +114,7 @@ Bool AreYouSure()
 
 U0 Help()
 {//Dbg help or master help index file.
-  if (IsDbg)
+  if (IsDbgMode)
     DbgHelp;
   else
     PopUp("Type(\"::/Doc/HelpIndex.DD\");DocTop;View;");
diff --git a/Kernel/StrPrint.HC b/Kernel/StrPrint.HC
index aa0036f..bc82467 100644
--- a/Kernel/StrPrint.HC
+++ b/Kernel/StrPrint.HC
@@ -24,9 +24,9 @@ U0 OutStr(U8 *ptr,U8 **_buf,U8 **_dst,I64 len,I64 flags)
     i=0;
   else
     i=StrLen(ptr);
-  if (flags&SPF_TRUNCATE && i>len)
+  if (flags&PRTF_TRUNCATE && i>len)
     i=len;
-  if (flags&SPF_LEFT_JUSTIFY) {
+  if (flags&PRTF_LEFT_JUSTIFY) {
     for (j=0;j=argc)
 	      throw('StrPrint');
-	    if (flags&SPF_DOLLAR) {
+	    if (flags&PRTF_DOLLAR) {
 	      doc=argv[cur_arg++];
 	      old_flags=doc->flags;
 	      doc->flags|=DOCF_NO_CURSOR;
@@ -390,43 +390,43 @@ to avoid this.
 	  case 'c':
 	    if (cur_arg>=argc)
 	      throw('StrPrint');
-	    temp_buf[0](I64)=argv[cur_arg++];
-	    temp_buf[8]=0;
+	    tmp_buf[0](I64)=argv[cur_arg++];
+	    tmp_buf[8]=0;
 	    break;
 	  case 'C':
 	    if (cur_arg>=argc)
 	      throw('StrPrint');
-	    temp_buf[0](I64)=argv[cur_arg++];
-	    temp_buf[8]=0;
-	    ptr=temp_buf;
+	    tmp_buf[0](I64)=argv[cur_arg++];
+	    tmp_buf[8]=0;
+	    ptr=tmp_buf;
 	    while (*ptr) {
 	      *ptr=ToUpper(*ptr);
 	      ptr++;
 	    }
 	    break;
 	end:
-	  if (!(flags&SPF_AUX_FMT_NUM))
+	  if (!(flags&PRTF_AUX_FMT_NUM))
 	    aux_fmt_num=1;
 	  while (aux_fmt_num-->0)
-	    OutStr(temp_buf,_buf,_dst,len,flags);
+	    OutStr(tmp_buf,_buf,_dst,len,flags);
 	  break;
 
 	case 'p':
 	  if (cur_arg>=argc)
 	    throw('StrPrint');
-	  StrPrintFunSeg(temp_buf,argv[cur_arg++],len,flags);
-	  OutStr(temp_buf,_buf,_dst,len,flags);
+	  StrPrintFunSeg(tmp_buf,argv[cur_arg++],len,flags);
+	  OutStr(tmp_buf,_buf,_dst,len,flags);
 	  break;
 	case 'P':
 	  if (cur_arg>=argc)
 	    throw('StrPrint');
-	  StrPrintFunSeg(temp_buf,argv[cur_arg],len,flags);
+	  StrPrintFunSeg(tmp_buf,argv[cur_arg],len,flags);
 	  if (!IsRaw || !_buf) {
-	    StrPrint(temp_buf2,"$$LK,\"%s\",A=\"AD:0x%X\"$$",
-		  temp_buf,argv[cur_arg]);
-	    OutStr(temp_buf2,_buf,_dst,len,flags);
+	    StrPrint(tmp_buf2,"$$LK,\"%s\",A=\"AD:0x%X\"$$",
+		  tmp_buf,argv[cur_arg]);
+	    OutStr(tmp_buf2,_buf,_dst,len,flags);
 	  } else
-	    OutStr(temp_buf,_buf,_dst,len,flags);
+	    OutStr(tmp_buf,_buf,_dst,len,flags);
 	  cur_arg++;
 	  break;
 	case 'd':
@@ -434,38 +434,38 @@ to avoid this.
 	    throw('StrPrint');
 	  m=argv[cur_arg++];
 	  if (m(I64)<0) {
-	    flags|=SPF_NEG;
+	    flags|=PRTF_NEG;
 	    m=-m;
 	  }
 sp_out_dec:
-	  if (flags&SPF_AUX_FMT_NUM) {
+	  if (flags&PRTF_AUX_FMT_NUM) {
 	    if (!len) len=12;
 	    d=m;
 	    goto sp_out_eng;
 	  }
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    comma_fmt_cnt=comma_cnt=3;
 	    do {
-	      temp_buf[k++]=ModU64(&m,10)+'0';
+	      tmp_buf[k++]=ModU64(&m,10)+'0';
 	      if (!m) break;
 	      if (!--comma_cnt) {
-		temp_buf[k++]=',';
+		tmp_buf[k++]=',';
 		comma_cnt=3;
 	      }
-	    } while (klen)
+	    if (flags&PRTF_TRUNCATE && k+i>len)
 	      k=len-i;
 	    if (k<0)
 	      k=0;
-	    if (flags&SPF_PAD_ZERO) {
-	      if (flags&SPF_NEG)
+	    if (flags&PRTF_PAD_ZERO) {
+	      if (flags&PRTF_NEG)
 		SPutChar(_dst,'-',_buf);
 	      comma_cnt=(len-k-i+comma_fmt_cnt-comma_cnt+1)
 	      %(comma_fmt_cnt+1)+1;
@@ -481,39 +481,39 @@ sp_out_comma_num:
 	    } else {
 	      for (;ilen)
+	    if (flags&PRTF_TRUNCATE && k+i>len)
 	      k=len-i;
 	    if (k<0)
 	      k=0;
-	    if (flags&SPF_PAD_ZERO) {
-	      if (flags&SPF_NEG)
+	    if (flags&PRTF_PAD_ZERO) {
+	      if (flags&PRTF_NEG)
 		SPutChar(_dst,'-',_buf);
 	      for (;i=0;i--)
-	    SPutChar(_dst,temp_buf[i],_buf);
+	    SPutChar(_dst,tmp_buf[i],_buf);
 	  break;
 	case 'u':
 	  if (cur_arg>=argc)
@@ -525,26 +525,26 @@ sp_out_num:
 	    throw('StrPrint');
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
-	    flags|=SPF_NEG;
+	    flags|=PRTF_NEG;
 	    d=-d;
 	  }
 
 	  if (d==ì) {
 sp_out_inf:
-	    if (flags&SPF_NEG)
+	    if (flags&PRTF_NEG)
 	      i=1;
 	    else
 	      i=0;
 	    k=1;
 	    if (len<0)
 	      len=0;
-	    if (flags&SPF_TRUNCATE && k+i>len)
+	    if (flags&PRTF_TRUNCATE && k+i>len)
 	      k=len-i;
 	    if (k<0)
 	      k=0;
 	    for (;i17) {
 	      n+=i-17;
@@ -573,66 +573,66 @@ sp_out_inf:
 	    n=0;
 
 	  m=Round(d);
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    comma_cnt=i&3;
-	    while (i-- && k2 && !comma_cnt--) {
-		temp_buf[k++]=',';
+		tmp_buf[k++]=',';
 		comma_cnt=2;
 		if (!--i) break;
 	      }
 	      if (n) {
 		n--;
-		temp_buf[k++]='0';
+		tmp_buf[k++]='0';
 	      } else
-		temp_buf[k++]=ModU64(&m,10)+'0';
+		tmp_buf[k++]=ModU64(&m,10)+'0';
 	      if (!i) break;
 	    }
 	  } else {
-	    while (i-- && k=argc)
 	    throw('StrPrint');
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
-	    flags|=SPF_NEG;
+	    flags|=PRTF_NEG;
 	    d=-d;
 	  }
 	  if (d==ì) goto sp_out_inf;
@@ -649,18 +649,18 @@ sp_out_e:
 	    n0=n;
 	    if (n<0) {
 	      n=-n;
-	      flags|=SPF_NEG_E;
+	      flags|=PRTF_NEG_E;
 	    } else
-	      flags&=~SPF_NEG_E;
+	      flags&=~PRTF_NEG_E;
 
 	    i=3;
-	    do temp_buf[k++]=ModU64(&n,10)+'0';
+	    do tmp_buf[k++]=ModU64(&n,10)+'0';
 	    while (n && i--);
-	    if (flags&SPF_NEG_E)
-	      temp_buf[k++]='-';
-	    temp_buf[k++]='e';
+	    if (flags&PRTF_NEG_E)
+	      tmp_buf[k++]='-';
+	    tmp_buf[k++]='e';
 	    dec_len=len-k-2;
-	    if (flags&SPF_NEG)
+	    if (flags&PRTF_NEG)
 	      dec_len--;
 
 	    if (d) {
@@ -682,12 +682,12 @@ sp_out_e:
 	  goto sp_out_f;
 	case 'g':
 	  if (!len) len=12;
-	  flags|=SPF_TRUNCATE;
+	  flags|=PRTF_TRUNCATE;
 	  if (cur_arg>=argc)
 	    throw('StrPrint');
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
-	    flags|=SPF_NEG;
+	    flags|=PRTF_NEG;
 	    d=-d;
 	  }
 	  if (d==ì) goto sp_out_inf;
@@ -701,12 +701,12 @@ sp_out_e:
 	    goto sp_out_f;
 	case 'n':
 	  if (!len) len=12;
-	  flags|=SPF_TRUNCATE;
+	  flags|=PRTF_TRUNCATE;
 	  if (cur_arg>=argc)
 	    throw('StrPrint');
 	  d=argv[cur_arg++](F64);
 	  if (d<0) {
-	    flags|=SPF_NEG;
+	    flags|=PRTF_NEG;
 	    d=-d;
 	  }
 sp_out_eng: //Engineering notation
@@ -719,17 +719,17 @@ sp_out_eng: //Engineering notation
 
 	  if (n<0) {
 	    n=-n;
-	    flags|=SPF_NEG_E;
+	    flags|=PRTF_NEG_E;
 	  }
-	  if (flags&SPF_AUX_FMT_NUM && -24<=n<=24) {
-	    if (flags&SPF_QUESTION) {
-	      if (flags&SPF_NEG_E)
+	  if (flags&PRTF_AUX_FMT_NUM && -24<=n<=24) {
+	    if (flags&PRTF_QUESTION) {
+	      if (flags&PRTF_NEG_E)
 		i=-n/3;
 	      else
 		i=n/3;
 	      j=0;
 	    } else {
-	      if (flags&SPF_NEG_E)
+	      if (flags&PRTF_NEG_E)
 		j=-n-aux_fmt_num;
 	      else
 		j=n-aux_fmt_num;
@@ -737,17 +737,17 @@ sp_out_eng: //Engineering notation
 	      i=aux_fmt_num/3;
 	    }
 	    if (i<0)
-	      temp_buf[k++]=sys_neg_pows_lets[-i];
+	      tmp_buf[k++]=sys_neg_pows_lets[-i];
 	    else if (i>0)
-	      temp_buf[k++]=sys_pos_pows_lets[i];
+	      tmp_buf[k++]=sys_pos_pows_lets[i];
 	    else if (len!=0)
-	      temp_buf[k++]=CH_SPACE;
-	    if (!(flags&SPF_DECIMAL)) {
+	      tmp_buf[k++]=CH_SPACE;
+	    if (!(flags&PRTF_DECIMAL)) {
 	      dec_len=len-k-2;
-	      if (flags&SPF_NEG)
+	      if (flags&PRTF_NEG)
 		dec_len--;
 	      if (j>0) {
-		if (flags&SPF_COMMA)
+		if (flags&PRTF_COMMA)
 		  dec_len-=4*j/3;
 		else
 		  dec_len-=j;
@@ -761,14 +761,14 @@ sp_out_eng: //Engineering notation
 	    }
 	  } else {
 	    i=3;
-	    do temp_buf[k++]=ModU64(&n,10)+'0';
+	    do tmp_buf[k++]=ModU64(&n,10)+'0';
 	    while (n && i--);
-	    if (flags&SPF_NEG_E)
-	      temp_buf[k++]='-';
-	    temp_buf[k++]='e';
+	    if (flags&PRTF_NEG_E)
+	      tmp_buf[k++]='-';
+	    tmp_buf[k++]='e';
 	    if (!dec_len) {
 	      dec_len=len-k-2;
-	      if (flags&SPF_NEG)
+	      if (flags&PRTF_NEG)
 		dec_len--;
 	      d1=d+Pow10I64(-dec_len+1)/2;
 	      if (d1>=10) {
@@ -778,9 +778,9 @@ sp_out_eng: //Engineering notation
 	      }
 	    }
 	  }
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    if (len && dec_len>0 && !(dec_len&3))
-	      temp_buf[k++]=',';
+	      tmp_buf[k++]=',';
 	    dec_len-=dec_len/4;
 	  }
 	  goto sp_out_f;
@@ -788,54 +788,54 @@ sp_out_eng: //Engineering notation
 	  if (cur_arg>=argc)
 	    throw('StrPrint');
 	  m=argv[cur_arg++];
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    comma_fmt_cnt=comma_cnt=4;
 	    do {
-	      temp_buf[k]= m&15 +'0';
-	      if (temp_buf[k]>'9') temp_buf[k]+='A'-0x3A;
+	      tmp_buf[k]= m&15 +'0';
+	      if (tmp_buf[k]>'9') tmp_buf[k]+='A'-0x3A;
 	      k++;
 	      m>>=4;
 	      if (!m) break;
 	      if (!--comma_cnt) {
-		temp_buf[k++]=',';
+		tmp_buf[k++]=',';
 		comma_cnt=4;
 	      }
-	    } while (k'9') temp_buf[k]+='A'-0x3A;
+	      tmp_buf[k]= m&15 +'0';
+	      if (tmp_buf[k]>'9') tmp_buf[k]+='A'-0x3A;
 	      k++;
 	      m>>=4;
-	    } while (m && k=argc)
 	    throw('StrPrint');
 	  m=argv[cur_arg++];
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    comma_fmt_cnt=comma_cnt=4;
 	    do {
-	      temp_buf[k]= m&15 +'0';
-	      if (temp_buf[k]>'9') temp_buf[k]+='a'-0x3A;
+	      tmp_buf[k]= m&15 +'0';
+	      if (tmp_buf[k]>'9') tmp_buf[k]+='a'-0x3A;
 	      k++;
 	      m>>=4;
 	      if (!m) break;
 	      if (!--comma_cnt) {
-		temp_buf[k++]=',';
+		tmp_buf[k++]=',';
 		comma_cnt=4;
 	      }
-	    } while (k'9') temp_buf[k]+='a'-0x3A;
+	      tmp_buf[k]= m&15 +'0';
+	      if (tmp_buf[k]>'9') tmp_buf[k]+='a'-0x3A;
 	      k++;
 	      m>>=4;
-	    } while (m && k=argc)
 	    throw('StrPrint');
 	  m=argv[cur_arg++];
-	  if (flags&SPF_COMMA) {
+	  if (flags&PRTF_COMMA) {
 	    comma_fmt_cnt=comma_cnt=4;
 	    do {
-	      temp_buf[k++]= m&1 +'0';
+	      tmp_buf[k++]= m&1 +'0';
 	      m>>=1;
 	      if (!m) break;
 	      if (!--comma_cnt) {
-		temp_buf[k++]=',';
+		tmp_buf[k++]=',';
 		comma_cnt=4;
 	      }
-	    } while (k>=1;
-	    } while (m && kentry_used) {
     i=c->free_idx;
@@ -96,13 +96,13 @@ void ArcEntryGet(CArcCtrl *c)
     } else {
       do if (++i==c->free_limit) i=c->min_table_entry;
       while (c->hash[i]);
-      temp=&c->compress[i];
-      c->next_entry=temp;
-      temp1=(CArcEntry *)&c->hash[temp->basecode];
-      while (temp1 && temp1->next!=temp)
-	temp1=temp1->next;
-      if (temp1)
-	temp1->next=temp->next;
+      tmp=&c->compress[i];
+      c->next_entry=tmp;
+      tmp1=(CArcEntry *)&c->hash[tmp->basecode];
+      while (tmp1 && tmp1->next!=tmp)
+	tmp1=tmp1->next;
+      if (tmp1)
+	tmp1->next=tmp->next;
     }
     c->free_idx=i;
   }
@@ -112,7 +112,7 @@ void ArcExpandBuf(CArcCtrl *c)
 {
   BYTE *dst_ptr,*dst_limit;
   DWORD basecode,lastcode,code;
-  CArcEntry *temp,*temp1;
+  CArcEntry *tmp,*tmp1;
 
   dst_ptr=c->dst_buf+c->dst_pos;
   dst_limit=c->dst_buf+c->dst_size;
@@ -147,12 +147,12 @@ void ArcExpandBuf(CArcCtrl *c)
       c->last_ch=code;
 
       c->entry_used=TRUE;
-      temp=c->cur_entry;
-      temp->basecode=lastcode;
-      temp->ch=c->last_ch;
-      temp1=(CArcEntry *)&c->hash[lastcode];
-      temp->next=temp1->next;
-      temp1->next=temp;
+      tmp=c->cur_entry;
+      tmp->basecode=lastcode;
+      tmp->ch=c->last_ch;
+      tmp1=(CArcEntry *)&c->hash[lastcode];
+      tmp->next=tmp1->next;
+      tmp1->next=tmp;
 
       ArcEntryGet(c);
       while (dst_ptrstk_ptr!=c->stk_base)
@@ -306,6 +306,6 @@ int main(int argc, char* argv[])
   } else
     puts("TOSZ [-ascii] in_name [out_name]\r\n\r\n"
 	  "TOSZ expands a single TempleOS file. The -ascii flag will convert "
-	  "nonstandard TempleOS ASCII characters to regular ASCII.\r\n");
+	  "nonstandard TempleOS ASCII characters to regular ASCII.\r\n");
   return EXIT_SUCCESS;
 }
diff --git a/Misc/DoDistro.HC b/Misc/DoDistro.HC
index 324898c..07713c6 100644
--- a/Misc/DoDistro.HC
+++ b/Misc/DoDistro.HC
@@ -14,7 +14,7 @@ U0 MakeMyISO(U8 *_out_iso_filename)
   Del(out_iso_filename);
 
   MkDir("/Distro");
-  Auto(STD_DISTRO_DVD_CFG);
+  In(STD_DISTRO_DVD_CFG);
   BootDVDIns;
 
   Copy("/*","/Distro");
@@ -31,10 +31,10 @@ U0 MakeMyISO(U8 *_out_iso_filename)
   CopyTree("/Misc",	"/Distro/Misc");
 
   //To save space, optionally delete dictionary.
-  //Del("/Distro/Adam/AutoComplete/ACDefs.DAT");
+  //Del("/Distro/Adam/AutoComplete/ACDefs.DATA");
   CopyTree("/Linux","/Distro/Linux");	  //You can leave this out.
-  MkDir("/Distro/Temp");
-  MkDir("/Distro/Temp/ScreenShots");
+  MkDir("/Distro/Tmp");
+  MkDir("/Distro/Tmp/ScrnShots");
   ISO9660ISO(out_iso_filename,"/Distro/*",,"/Distro" BOOT_DIR_KERNEL_BIN_C);
 
   //If you want $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ filesystem, use this instead but make it ISO.C.
@@ -47,6 +47,6 @@ U0 MakeMyISO(U8 *_out_iso_filename)
   Free(out_iso_filename);
 }
 
-MakeMyISO("/Temp/MyDistro.ISO");
+MakeMyISO("/Tmp/MyDistro.ISO");
 
 // Study my account examples $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$.
diff --git a/Misc/OSInstall.HC b/Misc/OSInstall.HC
index a3c2d18..860fe76 100644
--- a/Misc/OSInstall.HC
+++ b/Misc/OSInstall.HC
@@ -2,8 +2,8 @@ U0 InstallDrv(U8 drv_let)
 {
   U8 *st;
   ExePrint("CopyTree(\"::/\",\"%C:/\");",drv_let);
-  ExePrint("MkDir(\"%C:/Temp\");",drv_let);
-  ExePrint("MkDir(\"%C:/Temp/ScreenShots\");",drv_let);
+  ExePrint("MkDir(\"%C:/Tmp\");",drv_let);
+  ExePrint("MkDir(\"%C:/Tmp/ScrnShots\");",drv_let);
   ExePrint("MkDir(\"%C:/Home\");",drv_let);
 
   st=MStrPrint("%C:/Home/DoDistro.HC.Z",drv_let);
@@ -73,7 +73,7 @@ U0 RegularInstallWiz()
 {
   I64 unit,drv_let;
   U8 *st,*base0,*base1;
-  CATARep *head=NULL,*tempha;
+  CATARep *head=NULL,*tmpha;
   I64 ch,num_hints;
   CTask *task;
 
@@ -101,11 +101,11 @@ U0 RegularInstallWiz()
     Free(base0);
   }
   if (1<=Str2I64(base0)<=num_hints) {
-    tempha=ATARepFind(&head,Str2I64(base0));
+    tmpha=ATARepFind(&head,Str2I64(base0));
     Free(base0);
-    base0=MStrPrint("0x%X",tempha->base0);
-    base1=MStrPrint("0x%X",tempha->base1);
-    st	 =MStrPrint("0x%X",tempha->unit);
+    base0=MStrPrint("0x%X",tmpha->base0);
+    base1=MStrPrint("0x%X",tmpha->base1);
+    st	 =MStrPrint("0x%X",tmpha->unit);
     unit=Str2I64(st);
     Free(st);
   } else {
diff --git a/Misc/OSTestSuite.HC b/Misc/OSTestSuite.HC
index 8040767..160a093 100644
--- a/Misc/OSTestSuite.HC
+++ b/Misc/OSTestSuite.HC
@@ -1,18 +1,13 @@
-$PL,1000$I64 ts_num;
-U0 TSStart()
+U0 TS(I64 i)
 {
-  ts_num=0;
-}
-U0 TS()
-{
-  progress4=ts_num++;
-  progress4_max=169;
+  progress4=i;
+  progress4_max=171;
   *progress4_desc=0;
 }
 U0 TSFile(U8 *name,I64 ms=750)
 {
-  CTask *task=User("#include \"%s\";Sleep(%d);Exit;\n",name,ms);
-  DeathWait(&task);
+  CTask *task=User("#include \"%s\";Sleep(%d);\n",name,ms);
+  DeathWait(&task,TRUE);
 }
 U0 TSFileChar(U8 *name,I64 ms=750,I64 ch=CH_SPACE,Bool wait=TRUE)
 {
@@ -22,19 +17,142 @@ U0 TSFileChar(U8 *name,I64 ms=750,I64 ch=CH_SPACE,Bool wait=TRUE)
   else
     XTalk(task,"#include \"%s\";\n",name);
   Sleep(ms);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,ch,0);
-  XTalk(task,"Exit;\n");
-//  DeathWait(&task);
+  if (ch)
+    PostMsgWait(task,MSG_KEY_DOWN_UP,ch,0);
+  DeathWait(&task,TRUE);
 }
-U0 TSEnd()
+/*
+U0 DoInputPointer()
 {
-  if (ts_num!=progress4_max)
-    ST_ERR_ST "Cnt %d should be %d.\n",ts_num,progress4_max;
-  else
-    "$$GREEN$$Test Suite Completed$$FG$$\n";
-  ProgressBarsRst;
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Graphics/InputPointer\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
 }
 
+U0 DoPullDownMenu()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/PullDownMenu\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoTicTacToe()
+{
+}
+
+U0 DoLife()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Graphics/Life\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoZing()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Games/Zing\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoSlider()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Graphics/Slider\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoScrollBars()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Graphics/ScrollBars\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoWhap()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Games/Whap\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoDataBase()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Dsk/DataBase\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoDskRaw()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Dsk/DskRaw\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoTimeClock()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Apps/TimeClock\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoLectures()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Lectures\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoInFile()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/InFile\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoSpy()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/Spy\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoUnusedDefine()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Demo/DolDoc/UnusedDefine\";\n");
+  Sleep(500);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  DeathWait(&task,TRUE);
+}
+*/
+$PL,1000$
 U0 DoRandDemo()
 {
   CTask *task=User;
@@ -42,7 +160,7 @@ U0 DoRandDemo()
   XTalkWait(task," ");
   XTalkWait(task," ");
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoLowPassFilter()
@@ -59,7 +177,7 @@ U0 DoLowPassFilter()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(300);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMathAudioDemo()
@@ -80,7 +198,7 @@ U0 DoMathAudioDemo()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMsgLoop()
@@ -91,7 +209,7 @@ U0 DoMsgLoop()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(300);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoASCIIOrgan()
@@ -106,7 +224,7 @@ U0 DoASCIIOrgan()
   PostMsgWait(task,MSG_KEY_DOWN_UP,'C',0);
   Sleep(200);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoDoodle()
@@ -117,12 +235,12 @@ U0 DoDoodle()
   PostMsgWait(task,MSG_IP_L_UP,100,200);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoSpeedLine()
 {
-  I64 i=PURPLE;
+  I64 i=PURPLE+1; //+1 because TRANSPARENT
   CTask *task=User;
   XTalkWait(task,"#include \"::/Demo/Graphics/Speedline\";\n");
   PostMsgWait(task,MSG_IP_L_DOWN,10,10);
@@ -131,27 +249,25 @@ U0 DoSpeedLine()
   BirthWait(&task->popup_task);
   while (i--)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
-  Sleep(100);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_ESC,0);
   TaskWait(task);
   PostMsgWait(task,MSG_IP_L_DOWN,50,10);
   PostMsgWait(task,MSG_IP_L_UP,150,200);
   Sleep(1000);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoKeyBitMap()
 {
   I64 i_sc=Char2ScanCode('i');
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/KeyBitMap\";\n");
+  CTask *task=User("#include \"::/Demo/KeyBitMap\";\n");
   Sleep(50);
   LBts(kbd.down_bitmap,i_sc);
   Sleep(500);
   LBtr(kbd.down_bitmap,i_sc);
   Sleep(50);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMountain()
@@ -173,7 +289,7 @@ U0 DoDigits()
   PostMsgWait(task,MSG_KEY_DOWN_UP,'1',0);
   Sleep(250);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoSymmetry()
@@ -190,7 +306,7 @@ U0 DoSymmetry()
   PostMsgWait(task,MSG_IP_L_UP,400,400);
   Sleep(250);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoBSpline()
@@ -203,34 +319,23 @@ U0 DoBSpline()
   PostMsgWait(task,MSG_IP_R_DOWN_UP,0,0);
   Sleep(1500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-U0 DoScreenCapture()
+U0 DoScrnCapture()
 {
   CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Graphics/ScreenCapture\";\n");
+  XTalkWait(task,"#include \"::/Demo/Graphics/ScrnCapture\";\n");
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-  Del("~/DemoScreenShot.GRA*");
+  DeathWait(&task,TRUE);
+  Del("~/DemoScrnShot.GR*");
 }
 
-/*
-U0 DoPullDownMenu()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/PullDownMenu\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoStadium()
 {
   CTask *task=User;
@@ -243,7 +348,7 @@ U0 DoStadium()
   PostMsgWait(task,MSG_IP_L_DOWN_UP,520,10);
   Sleep(300);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoPalette()
@@ -254,7 +359,7 @@ U0 DoPalette()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(400);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoElephantWalk()
@@ -267,7 +372,7 @@ U0 DoElephantWalk()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoHalogen()
@@ -281,7 +386,7 @@ U0 DoHalogen()
   Sleep(333);
   PostMsgWait(task,MSG_KEY_UP,0,SC_CURSOR_RIGHT);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoTheDead()
@@ -300,7 +405,7 @@ U0 DoTheDead()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoBomberGolf()
@@ -321,14 +426,13 @@ U0 DoBomberGolf()
     Sleep(200);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoZoneOut()
 {
   I64 i;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/ZoneOut\";\n");
+  CTask *task=User("#include \"::/Demo/Games/ZoneOut\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -339,7 +443,7 @@ U0 DoZoneOut()
     Sleep(100);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoVaroom()
@@ -357,13 +461,12 @@ U0 DoVaroom()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoFlatTops()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/FlatTops\";\n");
+  CTask *task=User("#include \"::/Demo/Games/FlatTops\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -371,14 +474,13 @@ U0 DoFlatTops()
   PostMsgWait(task,MSG_IP_R_DOWN_UP,RandI16%400+200,RandI16%300+150);
   Sleep(1500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoWenceslas()
 {
   I64 i;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/Wenceslas\";\n");
+  CTask *task=User("#include \"::/Demo/Games/Wenceslas\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -397,18 +499,16 @@ U0 DoWenceslas()
     Sleep(25);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoTreeCheckers()
 {
   I64 task_num;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/TreeCheckers\";\n");
+  CTask *task=User("#include \"::/Demo/Games/TreeCheckers\";\n");
 
-  BirthWait(&task->popup_task);
+  task_num=BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -422,7 +522,7 @@ U0 DoTreeCheckers()
   PostMsgWait(task,MSG_KEY_DOWN_UP,'\n',0);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMorseCode()
@@ -455,7 +555,7 @@ U0 DoMorseCode()
   Sleep(500);
 
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoPixCollision()
@@ -466,9 +566,9 @@ U0 DoPixCollision()
   w=task->pix_width>>1 +task->pix_left+task->scroll_x;
   h=task->pix_height>>1+task->pix_top +task->scroll_y;
   IPSet(w-35,h-35);
-  AFSetIP(10,w+35,w+35);
+  InSetIP(10,w+35,w+35);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoBlackDiamond()
@@ -485,54 +585,47 @@ U0 DoBlackDiamond()
     Sleep(75);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoCtrlR1()
 {
-  I64 i,task_num=-1;
+  I64 i,task_num;
   CTask *task=User;
   XTalkWait(task,"//");
   PostMsg(task,MSG_KEY_DOWN_UP,CH_CTRLR,0);
-  BirthWait(&task->popup_task);
+  task_num=BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<1;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  DeathWait(&task->popup_task);
   //Color
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<2;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
   for (i=0;i<2;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
-  task_num=task->popup_task->task_num;
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
 
   //Width
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<4;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
   for (i=0;i<4;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
-  task_num=task->popup_task->task_num;
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
 
   //Line
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<7;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -549,23 +642,20 @@ U0 DoCtrlR1()
   PostMsg(task,MSG_IP_R_DOWN_UP,100,100);
 
   //Color
-  BirthWait(&task->popup_task);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<2;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
   for (i=0;i<3;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
-  task_num=task->popup_task->task_num;
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
 
   //Circle
-  BirthWait(&task->popup_task,task_num);
+  task_num=BirthWait(&task->popup_task,task_num);
   TaskWait(task->popup_task);
-  task_num=task->popup_task->task_num;
   for (i=0;i<10;i++)
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -582,7 +672,8 @@ U0 DoCtrlR1()
   PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   DeathWait(&task->popup_task);
   Sleep(1000);
-  XTalk(task,"\nExit;\n");
+  XTalk(task,"\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoF2Macro()
@@ -616,25 +707,19 @@ U0 DoF2Macro()
   DeathWait(&sys_macro_task);
 
   Sleep(1000);
-  XTalk(task,"\nExit;\n");
+  XTalk(task,"\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 DoTicTacToe()
-{
-}
-*/
-
 U0 DoPredatorPrey()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Graphics/PredatorPrey\";\n");
+  CTask *task=User("#include \"::/Demo/Graphics/PredatorPrey\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(1500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoCharDemo()
@@ -645,7 +730,7 @@ U0 DoCharDemo()
   PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT);
   Sleep(750);
   PostMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoLattice()
@@ -669,56 +754,9 @@ U0 DoLattice()
   }
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Apps/Psalmody/Examples\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 DoLife()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Graphics/Life\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 DoZing()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Games/Zing\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Graphics/Slider\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Graphics/ScrollBars\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoCartesian()
 {
   CTask *task=User;
@@ -726,7 +764,7 @@ U0 DoCartesian()
   XTalkWait(task,"0.2*x`1.5\n");
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMPAdd()
@@ -737,14 +775,13 @@ U0 DoMPAdd()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoFlapBat()
 {
   I64 i;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/FlapBat\";\n");
+  CTask *task=User("#include \"::/Demo/Games/FlapBat\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -756,31 +793,28 @@ U0 DoFlapBat()
     Sleep(100);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoBattleLines()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/BattleLines\";\n");
+  CTask *task=User("#include \"::/Demo/Games/BattleLines\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   DeathWait(&task->popup_task);
   IPSet(430,300,,TRUE);
-  AFSetIP(10,530,400);
+  InSetIP(10,530,400);
   IPSet(,,,FALSE);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoBigGuns()
 {
   I64 i,task_num;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/BigGuns\";\n");
-  BirthWait(&task->popup_task);
-  task_num=task->popup_task->task_num;
+  CTask *task=User("#include \"::/Demo/Games/BigGuns\";\n");
+  task_num=BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   BirthWait(&task->popup_task,task_num);
@@ -795,7 +829,7 @@ U0 DoBigGuns()
     PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoDunGen()
@@ -816,7 +850,7 @@ U0 DoDunGen()
     Sleep(100);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoTimeOut()
@@ -841,19 +875,75 @@ U0 DoTimeOut()
     Sleep(200);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
+}
+
+U0 DoToTheFront()
+{
+  I64 task_num;
+  CTask *task=User("#include \"::/Apps/ToTheFront/Run\";\n");
+  task_num=BirthWait(&task->popup_task);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,'\n',0);
+  task_num=BirthWait(&task->popup_task,task_num);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  task_num=BirthWait(&task->popup_task,task_num);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  BirthWait(&task->popup_task,task_num);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN,CH_SPACE,0);
+  DeathWait(&task->popup_task);
+  Sleep(5000);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoPsalmody()
+{
+  CTask *task=User;
+  XTalkWait(task,"#include \"::/Apps/Psalmody/Run\";\n");
+  PostMsgWait(task,MSG_KEY_DOWN_UP,'z',0);
+  PostMsgWait(task,MSG_KEY_DOWN,'h',0);
+  Sleep(200);
+  PostMsgWait(task,MSG_KEY_UP,'h',0);
+  PostMsgWait(task,MSG_KEY_DOWN,'g',0);
+  Sleep(200);
+  PostMsgWait(task,MSG_KEY_UP,'g',0);
+  PostMsgWait(task,MSG_KEY_DOWN,'h',0);
+  Sleep(200);
+  PostMsgWait(task,MSG_KEY_UP,'h',0);
+  PostMsgWait(task,MSG_KEY_DOWN,'j',0);
+  Sleep(200);
+  PostMsgWait(task,MSG_KEY_UP,'j',0);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT+SCF_CTRL);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,'x',0);
+  Sleep(1250);
+  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
+  DeathWait(&task,TRUE);
+}
+
+U0 DoJukeBox()
+{
+  CTask *task=User("#include \"::/Apps/Psalmody/Load\";"
+	"JukeBox(\"::/Apps/Psalmody/Examples\");\n");
+  BirthWait(&task->popup_task);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
+  Sleep(1500);
+  PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
+  DeathWait(&task->popup_task);
+  DeathWait(&task,TRUE);
 }
 
 U0 DoSpan()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Apps/Span/Run\";\n");
+  CTask *task=User("#include \"::/Apps/Span/Run\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(1500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoStrut()
@@ -865,7 +955,7 @@ U0 DoStrut()
 
   IPSet(200,200,,TRUE);
   PostMsgWait(task,MSG_IP_L_DOWN,0,0);
-  WinMgrSync(2);
+  Refresh(2);
 
   IPSet(GR_WIDTH-200,200,,TRUE);
   PostMsgWait(task,MSG_IP_L_DOWN,0,0);
@@ -931,25 +1021,23 @@ U0 DoStrut()
   Sleep(200);
 
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoRawHide()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/RawHide\";\n");
+  CTask *task=User("#include \"::/Demo/Games/RawHide\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(2500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoAfterEgypt()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Apps/AfterEgypt/Run\";\n");
+  CTask *task=User("#include \"::/Apps/AfterEgypt/Run\";\n");
   BirthWait(&task->popup_task);
   Sleep(600); //It flushes messages!
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
@@ -966,19 +1054,18 @@ U0 DoAfterEgypt()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Map
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Camp
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Main Menu
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoPoleZeros()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Graphics/PoleZeros\";\n");
+  CTask *task=User("#include \"::/Demo/Graphics/PoleZeros\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoWhap()
@@ -987,28 +1074,27 @@ U0 DoWhap()
   XTalkWait(task,"#include \"::/Demo/Games/Whap\";\n");
   IPSet(300,200);
   Sleep(500);
-  AFSetIP(3,350,300);
+  InSetIP(3,350,300);
   Sleep(500);
-  AFSetIP(3,450,200);
+  InSetIP(3,450,200);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoGrid()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Graphics/Grid\";\n");
+  CTask *task=User("#include \"::/Demo/Graphics/Grid\";\n");
   IPSet(200,200);
   Sleep(150);
-  AFSetIP(2,400,400);
-  AFSetIP(2,200,400);
-  AFSetIP(2,200,200);
+  InSetIP(2,400,400);
+  InSetIP(2,200,400);
+  InSetIP(2,200,200);
   IPSet(,,,TRUE);
   Sleep(50);
   IPSet(,,,FALSE);
   DocBottom(DocPut(task));
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoPick()
@@ -1018,11 +1104,11 @@ U0 DoPick()
   IPSet(200,200);
   Sleep(500);
   IPSet(,,,TRUE);
-  AFSetIP(4,400,400);
+  InSetIP(4,400,400);
   IPSet(,,,FALSE);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoPick3D()
@@ -1032,24 +1118,13 @@ U0 DoPick3D()
   IPSet(200,200);
   Sleep(500);
   IPSet(,,,TRUE);
-  AFSetIP(4,400,400);
+  InSetIP(4,400,400);
   IPSet(,,,FALSE);
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Apps/ToTheFront\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoGrModels()
 {
   CTask *task=User;
@@ -1058,22 +1133,20 @@ U0 DoGrModels()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   PostMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0);
   for (i=0;i<4;i++) {
-    BirthWait(&task->popup_task,task_num);
+    task_num=BirthWait(&task->popup_task,task_num);
     TaskWait(task->popup_task);
-    task_num=task->popup_task->task_num;
     for (j=0;j<=i;j++)
       PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
     PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   }
   Sleep(1000);
   PostMsgWait(task,MSG_KEY_DOWN_UP,'n',0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoKeepAway()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Apps/KeepAway/Run\";\n");
+  CTask *task=User("#include \"::/Apps/KeepAway/Run\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -1082,7 +1155,7 @@ U0 DoKeepAway()
   PostMsgWait(task,MSG_IP_R_DOWN_UP,ip.pos.x,ip.pos.y);
   Sleep(1000);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoRocket()
@@ -1099,13 +1172,12 @@ U0 DoRocket()
   Btr(kbd.down_bitmap,SC_CURSOR_RIGHT);
   Sleep(1000);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoRocketScience()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/RocketScience\";\n");
+  CTask *task=User("#include \"::/Demo/Games/RocketScience\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN);
@@ -1114,13 +1186,12 @@ U0 DoRocketScience()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(2000);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMassSpring()
 {
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/Games/MassSpring\";\n");
+  CTask *task=User("#include \"::/Demo/Games/MassSpring\";\n");
   BirthWait(&task->popup_task);
   TaskWait(task->popup_task);
   PostMsgWait(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0);
@@ -1143,20 +1214,9 @@ U0 DoMassSpring()
   PostMsgWait(task,MSG_IP_R_UP,210,50);
   Sleep(1500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Games/Whap\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoSquirt()
 {
   I64 i;
@@ -1179,7 +1239,7 @@ U0 DoSquirt()
     Sleep(100);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoXCaliber()
@@ -1199,7 +1259,7 @@ U0 DoXCaliber()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoFPS()
@@ -1224,7 +1284,7 @@ U0 DoFPS()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoEagleDive()
@@ -1242,27 +1302,16 @@ U0 DoEagleDive()
     Sleep(50);
   }
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Apps/Psalmody\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoPhoneNumWords()
 {
   CTask *task=User;
   XTalkWait(task,"#include \"::/Demo/PhoneNumWords\";\n");
   XTalkWait(task,"702-254-4223\n\n");
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoSuggestedSpelling()
@@ -1271,7 +1320,7 @@ U0 DoSuggestedSpelling()
   XTalkWait(task,"#include \"::/Demo/SuggestSpelling\";\n");
   XTalkWait(task,"effecient\n\n");
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoFPrintF()
@@ -1284,29 +1333,9 @@ U0 DoFPrintF()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_CTRLO,0);
   XTalkWait(task,"Del(\"~/DemoFPrintF.DD*\");\n");
   Sleep(500);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Dsk/DataBase\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 DoRaw()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Dsk/Raw\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoLastClass()
 {
   CTask *task=User;
@@ -1316,7 +1345,7 @@ U0 DoLastClass()
   Sleep(500);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(500);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMiniCompiler()
@@ -1326,7 +1355,7 @@ U0 DoMiniCompiler()
   XTalkWait(task,"1+2*(3+4)\n");
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoWebLog()
@@ -1337,7 +1366,7 @@ U0 DoWebLog()
   PostMsgWait(task,MSG_KEY_DOWN_UP,'\n',0);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoRevFile()
@@ -1345,35 +1374,24 @@ U0 DoRevFile()
   CTask *task;
   Del("~/DemoPoemFwd.DD*");
   task=User("#include \"::/Demo/RevFileDemo/Rev\";"
-	"Type(\"~/DemoPoemFwd.DD.Z\");Sleep(750);Exit;\n");
-  DeathWait(&task);
+	"Type(\"~/DemoPoemFwd.DD.Z\");Sleep(750);\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoSortFile()
 {
   CTask *task=User("#include \"::/Demo/SortFileDemo/F64FileGen\";"
-	"#include \"::/Demo/SortFileDemo/F64FileSort\";Sleep(750);Exit;\n");
-  DeathWait(&task);
+	"#include \"::/Demo/SortFileDemo/F64FileSort\";Sleep(750);\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoToHtmlToTXT()
 {
   CTask *task=User("#include \"::/Demo/ToHtmlToTXTDemo/HtmlGen\";"
-	"#include \"::/Demo/ToHtmlToTXTDemo/TXTGen\";Sleep(750);Exit;\n");
-  DeathWait(&task);
+	"#include \"::/Demo/ToHtmlToTXTDemo/TXTGen\";Sleep(750);\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Apps/TimeClock\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoLogic()
 {
   CTask *task=User;
@@ -1381,29 +1399,9 @@ U0 DoLogic()
   XTalkWait(task,"NAND\nNOR\n\n0x100\n0xF0\n0xCC\n0xAA\n\n0x12\n\n");
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Lectures\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/AutoFile\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoPrompt()
 {
   CTask *task=User;
@@ -1414,7 +1412,7 @@ U0 DoPrompt()
   XTalkWait(task,"*-1\n");
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoNumBible()
@@ -1422,7 +1420,7 @@ U0 DoNumBible()
   CTask *task=User;
   XTalkWait(task,"#include \"::/Demo/DolDoc/NumBible\";\n");
   Del("~/DemoNumBible.DD*");
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoForm()
@@ -1446,14 +1444,13 @@ U0 DoForm()
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoClickCallBack()
 {
   I64 i;
-  CTask *task=User;
-  XTalk(task,"#include \"::/Demo/DolDoc/ClickCallBack\";\n");
+  CTask *task=User("#include \"::/Demo/DolDoc/ClickCallBack\";\n");
   for (i=0;i<3;i++) {
     BirthWait(&task->popup_task);
     TaskWait(task->popup_task);
@@ -1461,7 +1458,7 @@ U0 DoClickCallBack()
     Sleep(250);
   }
   Sleep(500);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMenuButton()
@@ -1482,7 +1479,7 @@ U0 DoMenuButton()
   DeathWait(&task->popup_task);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoMenuSprite()
@@ -1500,7 +1497,7 @@ U0 DoMenuSprite()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(300);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoExceptions()
@@ -1509,7 +1506,7 @@ U0 DoExceptions()
   XTalkWait(task,"#include \"::/Demo/Exceptions\";\n");
   XTalkWait(task,"yy");
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoDemoDoc()
@@ -1521,20 +1518,9 @@ U0 DoDemoDoc()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/Spy\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoFileRead()
 {
   CTask *task=User;
@@ -1543,7 +1529,7 @@ U0 DoFileRead()
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   Sleep(750);
   PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
 U0 DoDefine()
@@ -1552,228 +1538,213 @@ U0 DoDefine()
   XTalkWait(task,"#include \"::/Demo/Define\";\n");
   XTalkWait(task,"YS\n");
   Sleep(750);
-  XTalk(task,"Exit;\n");
+  DeathWait(&task,TRUE);
 }
 
-/*
-U0 Do()
-{
-  CTask *task=User;
-  XTalkWait(task,"#include \"::/Demo/DolDoc/UnusedDefine\";\n");
-  Sleep(500);
-  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
-  XTalk(task,"Exit;\n");
-}
-*/
-
 U0 DoAsmAndC1()
 {
   CTask *task=User;
   XTalkWait(task,"#include \"::/Demo/Asm/AsmAndC1\";\n2\n");
-  XTalk(task,"Exit;\n");
-  DeathWait(&task);
+  DeathWait(&task,TRUE);
 }
 
 U0 DoAsmAndC2()
 {
   CTask *task=User;
   XTalkWait(task,"#include \"::/Demo/Asm/AsmAndC2\";\n2\n");
-  XTalk(task,"Exit;\n");
-  DeathWait(&task);
+  DeathWait(&task,TRUE);
 }
 
-U0 DoReps()
-{
-  CTask *task=User;
-  TS; XTalkWait(task,"DocMax;Prof;HeapLog(ON);\n");
-  TS; XTalkWait(task,"PCIRep;Sleep(750);\n");
-  TS; XTalkWait(task,"MemBIOSRep;Sleep(750);\n");
-  TS; XTalkWait(task,"MemRep;Sleep(750);\n");
-  TS; XTalkWait(task,"ZipRep;Sleep(750);\n");
-  TS; XTalkWait(task,"ProfRep;Sleep(750);\n");
-  TS; XTalkWait(task,"HeapLogSizeRep;Sleep(750);\n");
-  TS; if (mp_cnt>1) XTalkWait(task,"CPURep(TRUE);Sleep(750);\n");
-  TS; if (DrvIsWritable(':')) XTalkWait(task,"ChkDsk;Sleep(750);\n");
-  TS; if (DrvIsWritable(':')) {
+U0 OSTestSuite()
+{ //$MA+LIS-X,"RENUM",LM="I64 i;for (i=0;i<171;i++){if(i)Msg(MSG_KEY_DOWN_UP,0,SC_F3);else\"%cTS(%c\",CH_CTRLF,CH_ESC;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%03d\",i;Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\"%c%c%c\",CH_BACKSPACE,CH_BACKSPACE,CH_BACKSPACE;}"$
+  CTask *task;
+  TS(000); DoBlackDiamond;
+  TS(001); DoEagleDive;
+  TS(002); DoFlatTops;
+  TS(003); DoDunGen;
+  TS(004); DoFPS;
+  TS(005); DoZoneOut;
+  TS(006); DoVaroom;
+  TS(007); DoRocket;
+  TS(008); DoRocketScience;
+  TS(009); DoBattleLines;
+  TS(010); DoBigGuns;
+  TS(011); DoFlapBat;
+  TS(012); DoTimeOut;
+  TS(013); DoToTheFront;
+  TS(014); DoPsalmody;
+  TS(015); DoJukeBox;
+  TS(016); if (!sys_heap_init_flag) DoSpan; //Has FloodFill
+  TS(017); DoStrut;
+  TS(018); DoRawHide;
+  TS(019); DoKeepAway;
+  TS(020); DoAfterEgypt;
+  TS(021); DoXCaliber;
+  TS(022); DoWenceslas;
+  TS(023); DoBomberGolf;
+  TS(024); DoTheDead;
+  TS(025); DoTreeCheckers;
+  TS(026); DoMPAdd;
+  TS(027); TSFile("::/Demo/MultiCore/Primes");
+  TS(028); if (FileFind(BIBLE_FILENAME))
+    TSFile("::/Demo/MultiCore/Palindrome");
+  TS(029); TSFileChar("::/Demo/MultiCore/Clouds");
+  TS(030); if (mp_cnt>1) TSFile("::/Demo/MultiCore/RadixSort");
+  TS(031); if (mp_cnt>1 && DrvIsWritable(':'))
+    TSFileChar("::/Demo/MultiCore/LoadTest");
+  TS(032); if (mp_cnt>1) TSFile("::/Demo/MultiCore/MPPrint");
+  TS(033); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Lock");
+  TS(034); if (mp_cnt>1) TSFile("::/Demo/MultiCore/Interrupts");
+  TS(035); TSFileChar("::/Demo/Graphics/SpritePlot");
+  TS(036); TSFileChar("::/Demo/Graphics/Elephant",,CH_SHIFT_ESC);
+  TS(037); TSFileChar("::/Demo/Graphics/SpritePlot3D");
+  TS(038); TSFile("::/Demo/Graphics/SpritePut");
+  TS(039); TSFile("::/Demo/Graphics/SpritePutExt");
+  TS(040); TSFile("::/Demo/Graphics/SpriteText");
+  TS(041); TSFile("::/Demo/Graphics/SpriteRaw");
+  TS(042); TSFile("::/Demo/Graphics/EdSprite");
+  TS(043); TSFile("::/Demo/Graphics/Balloon",0);
+  TS(044); TSFile("::/Demo/Carry");
+  TS(045); TSFile("::/Demo/Directives");
+  TS(046); DoRandDemo;
+  TS(047); TSFileChar("::/Demo/Graphics/Extents");
+  TS(048); TSFileChar("::/Demo/Graphics/NetOfDots");
+  TS(049); TSFileChar("::/Demo/Graphics/SunMoon");
+  TS(050); DoLowPassFilter;
+  TS(051); DoMathAudioDemo;
+  TS(052); TSFileChar("::/Demo/Graphics/Lines");
+  TS(053); TSFileChar("::/Demo/Graphics/Bounce",,CH_SHIFT_ESC,FALSE);
+  TS(054); DoMsgLoop;
+  TS(055); DoASCIIOrgan;
+  TS(056); DoMorseCode;
+  TS(057); DoPixCollision;
+  TS(058); DoDoodle;
+  TS(059); DoMassSpring;
+  TS(060); DoSpeedLine;
+  TS(061); DoKeyBitMap;
+  TS(062); DoMountain;
+  TS(063); DoBSpline;
+  TS(064); DoGrModels;
+  TS(065); TSFileChar("::/Demo/Graphics/Blot",1800);
+  TS(066); if (DrvIsWritable('~')) DoScrnCapture;
+  TS(067); DoGrid;
+  TS(068); DoPick;
+  TS(069); DoPick3D;
+  TS(070); DoWhap;
+  TS(071); DoPalette;
+  TS(072); TSFile("::/Demo/Print");
+  TS(073); TSFileChar("::/Demo/Graphics/Shading",1500);
+  TS(074); TSFileChar("::/Demo/Graphics/RotateTank",1500);
+  TS(075); TSFileChar("::/Demo/Graphics/3DPoly",1500);
+  TS(076); TSFileChar("::/Demo/Graphics/Box",1500);
+  TS(077); DoSymmetry;
+  TS(078); TSFileChar("::/Demo/Graphics/Shadow",1500);
+  TS(079); TSFileChar("::/Demo/Graphics/Transform",,CH_SHIFT_ESC);
+  TS(080); DoPredatorPrey;
+  TS(081); DoPoleZeros;
+  TS(082); DoDigits;
+  TS(083); DoStadium;
+  TS(084); DoElephantWalk;
+  TS(085); DoHalogen;
+  TS(086); TSFileChar("::/Demo/Games/Maze",,CH_SHIFT_ESC);
+  TS(087); TSFileChar("::/Demo/Graphics/FontEd",,CH_SHIFT_ESC);
+  TS(088); DoLattice;
+  TS(089); DoCtrlR1;
+  TS(090); DoF2Macro;
+  TS(091); TSFile("::/Demo/SubIntAccess");
+  TS(092); DoDemoDoc;
+  TS(093); TSFile("::/Demo/DolDoc/TreeDemo");
+  TS(094); TSFile("::/Demo/DolDoc/TextDemo");
+  TS(095); TSFile("::/Demo/DolDoc/CursorMove");
+  TS(096); DoMiniCompiler;
+  TS(097); TSFile("::/Demo/Lectures/MiniGrLib",0);
+  TS(098); TSFileChar("::/Demo/TimeIns");
+  TS(099); DoPhoneNumWords;
+  TS(100); TSFile("::/Demo/Dsk/UnusedSpaceRep");
+  TS(101); TSFile("::/Demo/Dsk/BlkDevRep");
+  TS(102); DoLastClass;
+  TS(103); if (DrvIsWritable('~')) DoFPrintF;
+  TS(104); TSFile("::/Demo/Dsk/SerializeTree");
+  TS(105); DoExceptions;
+  TS(106); TSFileChar("::/Demo/ScrnCodes");
+  TS(107); TSFile("::/Demo/ExtChars");
+  TS(108); TSFile("::/Demo/Graphics/PanText",0);
+  TS(109); TSFile("::/Demo/Graphics/CharAnimation");
+  TS(110); DoCharDemo;
+  TS(111); TSFile("::/Demo/DateTime");
+  TS(112); TSFile("::/Demo/SubSwitch");
+  TS(113); TSFile("::/Demo/NullCase");
+  TS(114); TSFile("::/Demo/MagicPairs");
+  TS(115); TSFileChar("::/Demo/Graphics/Hanoi",3000);
+  TS(116); DoSquirt;
+  TS(117); TSFileChar("::/Demo/Graphics/CommonAncestor",1500,CH_SHIFT_ESC);
+  TS(118); DoCartesian;
+  TS(119); TSFileChar("::/Demo/Games/RainDrops",,CH_SHIFT_ESC);
+  TS(120); TSFileChar("::/Demo/Games/Collision",1500);
+  TS(121); DoLogic;
+  TS(122); TSFile("::/Demo/CompileDemo");
+  TS(123); DoPrompt;
+  TS(124); if (DrvIsWritable('~')) DoWebLog;
+  TS(125); if (DrvIsWritable('~')) DoRevFile;
+  TS(126); if (DrvIsWritable('~')) DoSortFile;
+  TS(127); if (DrvIsWritable('~')) DoToHtmlToTXT;
+  TS(128); if (DrvIsWritable('~')) TSFile("::/Demo/RegistryDemo");
+  TS(129); DoDefine;
+  TS(130); TSFile("::/Demo/GlblVars");
+  TS(131); DoFileRead;
+  TS(132); TSFile("::/Demo/ParenWarn");
+  TS(133); TSFile("::/Demo/DolDoc/DefineStr");
+  TS(134); TSFile("::/Demo/DolDoc/Data");
+  TS(135); TSFile("::/Demo/DolDoc/CallBack");
+  TS(136); TSFile("::/Demo/ClassMeta");
+  TS(137); if (DrvIsWritable('~')) DoNumBible;
+  TS(138); DoForm;
+  TS(139); DoClickCallBack;
+  TS(140); DoMenuButton;
+  TS(141); DoMenuSprite;
+  TS(142); DoSuggestedSpelling;
+  TS(143); TSFileChar("::/Demo/WordSearch");
+  TS(144); TSFile("::/Demo/StkGrow");
+  TS(145); TSFile("::/Demo/MemDemo");
+  TS(146); TSFileChar("::/Demo/Snd/WaterFowl");
+  TS(147); TSFile("::/Demo/Asm/AsmHelloWorld");
+  TS(148); DoAsmAndC1;
+  TS(149); DoAsmAndC2;
+  TS(150); TSFile("::/Demo/Asm/AsmAndC3");
+  TS(151); TSFile("::/Demo/Asm/MulByHand");
+  TS(152); TSFile("::/Demo/Asm/DivByHand");
+  TS(153); TSFile("::/Demo/Asm/BuzzFizz");
+  TS(154); TSFile("::/Demo/Asm/PutDec");
+
+  task=User;
+  TS(155); XTalkWait(task,"DocMax;Prof;HeapLog(ON);\n");
+  TS(156); XTalkWait(task,"PCIRep;Sleep(750);\n");
+  TS(157); XTalkWait(task,"MemBIOSRep;Sleep(750);\n");
+  TS(158); XTalkWait(task,"MemRep;Sleep(750);\n");
+  TS(159); XTalkWait(task,"ZipRep;Sleep(750);\n");
+  TS(160); XTalkWait(task,"ProfRep;Sleep(750);\n");
+  TS(161); XTalkWait(task,"HeapLogSizeRep;Sleep(750);\n");
+  TS(162); if (mp_cnt>1) XTalkWait(task,"CPURep(TRUE);Sleep(750);\n");
+  TS(163); if (DrvIsWritable(':')) XTalkWait(task,"ChkDsk;Sleep(750);\n");
+  TS(164); if (DrvIsWritable(':')) {
     XTalkWait(task,"DrvView;\n");
     Sleep(750);
     PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   }
-  TS; if (DrvIsWritable(':')) {
+  TS(165); if (DrvIsWritable(':')) {
     XTalkWait(task,"DskView;\n");
     Sleep(250); //Short because ATARep takes time.
     PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
   }
-  TS; XTalkWait(task,"ATARep;\npSleep(750);\n");
-  TS; XTalkWait(task,"HashDepthRep(adam_task->hash_table);Sleep(750);\n");
-  TS; XTalkWait(task,"Who;Sleep(750);\n");
-  TS; XTalkWait(task,"DrvRep;Sleep(750);\n");
-  TS; XTalkWait(task,"TaskRep;Sleep(750);\n");
-  XTalk(task,"Exit;\n");
-}
+  TS(166); XTalkWait(task,"ATARep;\npSleep(750);\n");
+  TS(167); XTalkWait(task,
+	"HashDepthRep(adam_task->hash_table);Sleep(750);\n");
+  TS(168); XTalkWait(task,"Who;Sleep(750);\n");
+  TS(169); XTalkWait(task,"DrvRep;Sleep(750);\n");
+  TS(170); XTalkWait(task,"TaskRep;Sleep(750);\n");
+  DeathWait(&task,TRUE);
 
-U0 OSTestSuite()
-{
-  TSStart;
-  TS; DoBlackDiamond;
-  TS; DoEagleDive;
-  TS; DoFlatTops;
-  TS; DoDunGen;
-  TS; DoFPS;
-  TS; DoZoneOut;
-  TS; DoVaroom;
-  TS; DoRocket;
-  TS; DoRocketScience;
-  TS; DoBattleLines;
-  TS; DoBigGuns;
-  TS; DoFlapBat;
-  TS; DoTimeOut;
-  TS; if (!sys_heap_init_flag) /* FloodFill */ DoSpan;
-  TS; DoStrut;
-  TS; DoRawHide;
-  TS; DoKeepAway;
-  TS; DoAfterEgypt;
-  TS; DoXCaliber;
-  TS; DoWenceslas;
-  TS; DoBomberGolf;
-  TS; DoTheDead;
-  TS; DoTreeCheckers;
-  TS; DoMPAdd;
-  TS; TSFile("::/Demo/MultiCore/Primes");
-  TS; if (FileFind(BIBLE_FILENAME)) TSFile("::/Demo/MultiCore/Palindrome");
-  TS; TSFileChar("::/Demo/MultiCore/Clouds");
-  TS; if (mp_cnt>1) TSFile("::/Demo/MultiCore/RadixSort");
-  TS; if (mp_cnt>1 && DrvIsWritable(':'))
-    TSFileChar("::/Demo/MultiCore/LoadTest");
-  TS; if (mp_cnt>1) TSFile("::/Demo/MultiCore/MPPrint");
-  TS; if (mp_cnt>1) TSFile("::/Demo/MultiCore/Lock");
-  TS; if (mp_cnt>1) TSFile("::/Demo/MultiCore/Interrupts");
-  TS; TSFileChar("::/Demo/Graphics/SpritePlot");
-  TS; TSFileChar("::/Demo/Graphics/Elephant",,CH_SHIFT_ESC);
-  TS; TSFileChar("::/Demo/Graphics/SpritePlot3D");
-  TS; TSFile("::/Demo/Graphics/SpritePut");
-  TS; TSFile("::/Demo/Graphics/SpritePutExt");
-  TS; TSFile("::/Demo/Graphics/SpriteText");
-  TS; TSFile("::/Demo/Graphics/SpriteRaw");
-  TS; TSFile("::/Demo/Graphics/EdSprite");
-  TS; TSFile("::/Demo/Graphics/Balloon",0);
-  TS; TSFile("::/Demo/Carry");
-  TS; TSFile("::/Demo/Directives");
-  TS; DoRandDemo;
-  TS; TSFileChar("::/Demo/Graphics/Extents");
-  TS; TSFileChar("::/Demo/Graphics/NetOfDots");
-  TS; TSFileChar("::/Demo/Graphics/SunMoon");
-  TS; DoLowPassFilter;
-  TS; DoMathAudioDemo;
-  TS; TSFileChar("::/Demo/Graphics/Lines");
-  TS; TSFileChar("::/Demo/Graphics/Bounce",,CH_SHIFT_ESC,FALSE);
-  TS; DoMsgLoop;
-  TS; DoASCIIOrgan;
-  TS; DoMorseCode;
-  TS; DoPixCollision;
-  TS; DoDoodle;
-  TS; DoMassSpring;
-  TS; DoSpeedLine;
-  TS; DoKeyBitMap;
-  TS; DoMountain;
-  TS; DoBSpline;
-  TS; DoGrModels;
-  TS; TSFileChar("::/Demo/Graphics/Blot",1800);
-  TS; if (DrvIsWritable('~')) DoScreenCapture;
-  TS; DoGrid;
-  TS; DoPick;
-  TS; DoPick3D;
-  TS; DoWhap;
-  TS; DoPalette;
-  TS; TSFile("::/Demo/Print");
-  TS; TSFileChar("::/Demo/Graphics/Shading",1500);
-  TS; TSFileChar("::/Demo/Graphics/RotateTank",1500);
-  TS; TSFileChar("::/Demo/Graphics/3DPoly",1500);
-  TS; TSFileChar("::/Demo/Graphics/Box",1500);
-  TS; DoSymmetry;
-  TS; TSFileChar("::/Demo/Graphics/Shadow",1500);
-  TS; TSFileChar("::/Demo/Graphics/Transform",,CH_SHIFT_ESC);
-  TS; DoPredatorPrey;
-  TS; DoPoleZeros;
-  TS; DoDigits;
-  TS; DoStadium;
-  TS; DoElephantWalk;
-  TS; DoHalogen;
-  TS; TSFileChar("::/Demo/Games/Maze",,CH_SHIFT_ESC);
-  TS; TSFileChar("::/Demo/Graphics/FontEd",,CH_SHIFT_ESC);
-  TS; DoLattice;
-  TS; DoCtrlR1;
-  TS; DoF2Macro;
-  TS; TSFile("::/Demo/SubIntAccess");
-  TS; DoDemoDoc;
-  TS; TSFile("::/Demo/DolDoc/TreeDemo");
-  TS; TSFile("::/Demo/DolDoc/TextDemo");
-  TS; TSFile("::/Demo/DolDoc/CursorMove");
-  TS; DoMiniCompiler;
-  TS; TSFile("::/Demo/Lectures/MiniGrLib",0);
-  TS; TSFileChar("::/Demo/TimeIns");
-  TS; DoPhoneNumWords;
-  TS; TSFile("::/Demo/Dsk/UnusedSpaceRep");
-  TS; TSFile("::/Demo/Dsk/BlkDevRep");
-  TS; DoLastClass;
-  TS; if (DrvIsWritable('~')) DoFPrintF;
-  TS; TSFile("::/Demo/Dsk/SerializeTree");
-  TS; DoExceptions;
-  TS; TSFileChar("::/Demo/ScreenCodes");
-  TS; TSFile("::/Demo/ExtChars");
-  TS; TSFile("::/Demo/Graphics/PanText",0);
-  TS; TSFileChar("::/Demo/Graphics/CharAnimation");
-  TS; DoCharDemo;
-  TS; TSFile("::/Demo/DateTime");
-  TS; TSFile("::/Demo/SubSwitch");
-  TS; TSFile("::/Demo/NullCase");
-  TS; TSFile("::/Demo/MagicPairs");
-  TS; TSFileChar("::/Demo/Graphics/Hanoi",3000);
-  TS; DoSquirt;
-  TS; TSFileChar("::/Demo/Graphics/CommonAncestor",1500,CH_SHIFT_ESC);
-  TS; DoCartesian;
-  TS; TSFileChar("::/Demo/Games/RainDrops",,CH_SHIFT_ESC);
-  TS; TSFileChar("::/Demo/Games/Collision",1500);
-  TS; DoLogic;
-  TS; TSFile("::/Demo/CompileDemo");
-  TS; DoPrompt;
-  TS; if (DrvIsWritable('~')) DoWebLog;
-  TS; if (DrvIsWritable('~')) DoRevFile;
-  TS; if (DrvIsWritable('~')) DoSortFile;
-  TS; if (DrvIsWritable('~')) DoToHtmlToTXT;
-  TS; if (DrvIsWritable('~')) TSFile("::/Demo/RegistryDemo");
-  TS; DoDefine;
-  TS; TSFile("::/Demo/GlblVars");
-  TS; DoFileRead;
-  TS; TSFile("::/Demo/ParenWarn");
-  TS; TSFile("::/Demo/DolDoc/DefineStr");
-  TS; TSFile("::/Demo/DolDoc/Data");
-  TS; TSFile("::/Demo/DolDoc/CallBack");
-  TS; TSFile("::/Demo/ClassMeta");
-  TS; if (DrvIsWritable('~')) DoNumBible;
-  TS; DoForm;
-  TS; DoClickCallBack;
-  TS; DoMenuButton;
-  TS; DoMenuSprite;
-  TS; DoSuggestedSpelling;
-  TS; TSFileChar("::/Demo/WordSearch");
-  TS; TSFile("::/Demo/StkGrow");
-  TS; TSFile("::/Demo/MemDemo");
-  TS; TSFileChar("::/Demo/Snd/WaterFowl");
-  TS; TSFile("::/Demo/Asm/AsmHelloWorld");
-  TS; DoAsmAndC1;
-  TS; DoAsmAndC2;
-  TS; TSFile("::/Demo/Asm/AsmAndC3");
-  TS; TSFile("::/Demo/Asm/MulByHand");
-  TS; TSFile("::/Demo/Asm/DivByHand");
-  TS; TSFile("::/Demo/Asm/BuzzFizz");
-  TS; TSFile("::/Demo/Asm/PutDec");
-  TS; TSFile("::/Demo/Lectures/Mem/PageTableEntries");
-  DoReps;
-  TSEnd;
+  ProgressBarsRst;
 }
 
 OSTestSuite;
-
-//$LK,"::/Demo/Dsk/DskRaw.HC"$
-//$LK,"::/Demo/Graphics/InputPointer.HC"$
diff --git a/Misc/Tour/Tour.AUT b/Misc/Tour/Tour.IN
similarity index 97%
rename from Misc/Tour/Tour.AUT
rename to Misc/Tour/Tour.IN
index 8dbacd5..c804d4d 100644
--- a/Misc/Tour/Tour.AUT
+++ b/Misc/Tour/Tour.IN
@@ -20,7 +20,7 @@ U0 TourPutTask()
   DocCursor(FALSE,doc);
   "$$WW+H,1$$";
   while (TRUE) {
-    WinMgrSync;
+    Refresh;
     if (ScanMsg(&ch,,1<parent_task,FALSE);
       break;
@@ -61,7 +61,7 @@ U0 TourPut(U8 *st,Bool wait_okay=FALSE)
       DocFormBwd(doc);
       old_focus_task=sys_focus_task;
       tour_okay_pressed=FALSE;
-      do WinMgrSync;
+      do Refresh;
       while (!tour_okay_pressed);
       WinFocus(old_focus_task);
       DocClear(doc);
@@ -111,7 +111,7 @@ U0 TourMenu()
     if (i>0) {
       if (!LBts(&tour_put->display_flags,DISPLAYf_SHOW))
 	WinZBufUpdate;
-      StrPrint(buf,"Tour%X.AUT",i);
+      StrPrint(buf,"Tour%X.IN",i);
       ExeFile(buf);
     } else
       break;
@@ -120,7 +120,7 @@ U0 TourMenu()
 }
 
 "DocClear;WinMax;\n";
-WinMgrSync(2);
+Refresh(2);
 TourMenu;
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "Cd;Dir;\n";
diff --git a/Misc/Tour/Tour1.AUT b/Misc/Tour/Tour1.IN
similarity index 97%
rename from Misc/Tour/Tour1.AUT
rename to Misc/Tour/Tour1.IN
index bbed626..c722ef1 100644
--- a/Misc/Tour/Tour1.AUT
+++ b/Misc/Tour/Tour1.IN
@@ -8,11 +8,11 @@ TourPut("Press $$GREEN$$$$FG$$ for the main help index.\n"
 	"the editor and at the command line.\n"
 	"\n"
 	"You can find the $LK+PU,"Demo Index",A="FI:::/Doc/DemoIndex.DD"$ on the help index.\n");
-AFGetKey(SC_F1);
+InGetKey(SC_F1);
 
 TourPut(
 "Press $$GREEN$$$$FG$$ to abort and exit.\n");
-AFGetChar(CH_SHIFT_ESC);
+InGetChar(CH_SHIFT_ESC);
 
 U0 RevealPopUpHelp(I64 scf)
 {
diff --git a/Misc/Tour/Tour2.AUT b/Misc/Tour/Tour2.IN
similarity index 93%
rename from Misc/Tour/Tour2.AUT
rename to Misc/Tour/Tour2.IN
index 16dab0e..bbabe89 100644
--- a/Misc/Tour/Tour2.AUT
+++ b/Misc/Tour/Tour2.IN
@@ -10,14 +10,14 @@ TourPut(
 "\n"
 "Type \"$$GREEN$$Dir;$$FG$$\" and press $$GREEN$$$$FG$$.\n\n"
 "You must remember the semicolon.\n");
-AFGetStr("Dir;\n");
+InGetStr("Dir;\n");
 
 TourPut(
 "Press $$GREEN$$$$FG$$.\n\n"
 "This will access your PersonalMenu.  You can customize it.  "
 "It's like your START menu and desktop.\n");
 
-AFGetChar(CH_CTRLM);
+InGetChar(CH_CTRLM);
 TourPut(
 "You can also get to your PersonalMenu by clicking on the word "
 "\"$$GREEN$$MENU$$FG$$\" in the title bar.\n",TRUE);
@@ -29,7 +29,7 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 
 I64 i;
 for (i=0;i<9;i++)
-  AFGetKey(SC_CURSOR_DOWN);
+  InGetKey(SC_CURSOR_DOWN);
 
 TourPut(
 "Keyboard commands are:\n\n"
@@ -42,7 +42,7 @@ TourPut(
 "The cursor is now on top of a macro we wish to run.\n"
 "\n"
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr(" ");
+InGetStr(" ");
 
 TourPut(
 "The macro changed directories and did a $$GREEN$$Dir;$$FG$$ command.  "
@@ -56,13 +56,13 @@ TourPut(
 TourPut(
 "Press $$GREEN$$$$FG$$ to toggle to plain text mode.\n\n"
 "These are \"DolDoc\" commands.");
-AFGetChar(CH_CTRLT);
+InGetChar(CH_CTRLT);
 
 TourPut(
 "The DolDoc widgets are bracketed with dollar sign characters.\n\n"
 "\"LK\" stands \"link\".\n"
 "\"MA\" stands for \"macro\".\n\n"
 "Now, $$GREEN$$$$FG$$ to toggle back to regular mode.\n");
-AFGetChar(CH_CTRLT);
+InGetChar(CH_CTRLT);
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 
diff --git a/Misc/Tour/Tour3.AUT b/Misc/Tour/Tour3.IN
similarity index 86%
rename from Misc/Tour/Tour3.AUT
rename to Misc/Tour/Tour3.IN
index 3108bc1..9a1fa53 100644
--- a/Misc/Tour/Tour3.AUT
+++ b/Misc/Tour/Tour3.IN
@@ -12,8 +12,8 @@ TourPut(
 "and the boot drive is specified with \"$$GREEN$$::$$FG$$\".\n\n"
 "$$GREEN$$$$FG$$ to complete the command.\n");
 
-AFPrint(25,"Cd(\"::/Demo/Games\");Dir;");
-AFGetStr("\n");
+InPrint(25,"Cd(\"::/Demo/Games\");Dir;");
+InGetStr("\n");
 
 TourPut(
 "Now, we're going to edit a file.  Normally, "
@@ -22,8 +22,8 @@ TourPut(
 "type it on the command line.\n\n"
 "$$GREEN$$$$FG$$ to complete the command.\n");
 
-AFPrint(25,"Ed(\"CastleFrankenstein.HC.Z\");");
-AFGetStr("\n");
+InPrint(25,"Ed(\"CastleFrankenstein.HC.Z\");");
+InGetStr("\n");
 Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL);
 
 Sleep(1000);
@@ -40,29 +40,29 @@ TourPut(
 
 TourPut("Press $$GREEN$$$$FG$$ to abort the editor.\n");
 
-AFGetChar(CH_ESC,CH_SHIFT_ESC);
+InGetChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "Now, run the CastleFrankenstein.HC.Z program.  Press $$GREEN$$$$FG$$.\n");
 
-AFPrint(25,"#include \"CastleFrankenstein\";");
-AFGetStr("\n");
+InPrint(25,"#include \"CastleFrankenstein\";");
+InGetStr("\n");
 TourPut(
 "Move around with cursor keys and press $$GREEN$$$$FG$$ when you "
 "are done.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "The program is still in memory and we can start it again by typing "
 "\"$$GREEN$$CastleFrankenstein;$$FG$$\".\n\n"
 "Press $$GREEN$$$$FG$$ at the command line to run it again.\n");
 
-AFPrint(25,"CastleFrankenstein;");
-AFGetStr("\n");
+InPrint(25,"CastleFrankenstein;");
+InGetStr("\n");
 TourPut(
 "Move around with cursor keys and press $$GREEN$$$$FG$$ when you "
 "are done.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "$$GREEN$$$$FG$$\tExtended ASCII.\n"
@@ -72,11 +72,11 @@ TourPut(
 "$$GREEN$$$$FG$$\tTerminal window.\n"
 "$$GREEN$$$$FG$$\tKill task (window).\n",TRUE);
 
-AFPrint(50,"Ed(\"CastleFrankenstein.HC.Z\");\n");
+InPrint(50,"Ed(\"CastleFrankenstein.HC.Z\");\n");
 
 TourPut("Press $$GREEN$$$$FG$$ in the editor to run the file being edited.\n");
 
-AFGetKey(SC_F5);
+InGetKey(SC_F5);
 Sleep(1000);
 CTask *task=sys_focus_task;
 
@@ -88,7 +88,7 @@ DeathWait(&task);
 
 TourPut("Press $$GREEN$$$$FG$$ to abort the editor.\n");
 
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "Explore the $$RED$$$TX+L+PU+UL,"DemoIndex",A="FI:::/Doc/DemoIndex.DD"$$$FG$$.  "
diff --git a/Misc/Tour/Tour4.AUT b/Misc/Tour/Tour4.IN
similarity index 81%
rename from Misc/Tour/Tour4.AUT
rename to Misc/Tour/Tour4.IN
index 49a79d5..30d7142 100644
--- a/Misc/Tour/Tour4.AUT
+++ b/Misc/Tour/Tour4.IN
@@ -6,13 +6,13 @@ TourPut(
 "Now, we're going to add the CastleFrankenstein.HC.Z program "
 "to your PersonalMenu.\n\n"
 "Press $$GREEN$$$$FG$$ to get to your PersonalMenu.\n");
-AFGetChar(CH_CTRLM);
+InGetChar(CH_CTRLM);
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 
 TourPut(
 "Press $$GREEN$$$$FG$$ to invoke the insert text widgets wizard.\n\n"
 "(Pressing $$GREEN$$$$FG$$ invokes the graphic sprite resource editor.)\n");
-AFGetChar(CH_CTRLL);
+InGetChar(CH_CTRLL);
 
 Sleep(500);
 WinToTop;//Kludge
@@ -20,35 +20,35 @@ WinToTop;//Kludge
 TourPut("$$GREEN$$$$FG$$ until you reach \"Macro\".\n");
 I64 i;
 for (i=0;i<6;i++)
-  AFGetKey(SC_CURSOR_DOWN);
+  InGetKey(SC_CURSOR_DOWN);
 
 TourPut("Press $$GREEN$$$$FG$$.\n");
-AFGetStr(" ");
+InGetStr(" ");
 
 TourPut(
 "Now, we'll fill-in the visible tag of the macro.  Then, "
 "we'll fill-in the macro text.\n",TRUE);
-AFPrint(,"Click Here");
+InPrint(,"Click Here");
 
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
-AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
+InPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
 
 TourPut("Press $$GREEN$$$$FG$$ to exit the form.\n");
-AFGetChar(CH_ESC);
+InGetChar(CH_ESC);
 
 TourPut(
 "Press $$GREEN$$$$FG$$ to insert a line feed.  "
 "($$GREEN$$$$FG$$ does a page break.  "
 "$$GREEN$$$$FG$$ would execute the macro.)\n");
-AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
+InGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
 
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 TourPut("Press $$GREEN$$$$FG$$ to test it.\n");
-AFGetStr(" ");
+InGetStr(" ");
 TourPut(
 "Move around with cursor keys and press $$GREEN$$$$FG$$ when you "
 "are done.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "Now, we'll do a fancier macro that pops-up a new window which dies when "
@@ -58,29 +58,29 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 Msg(MSG_KEY_DOWN,CH_CTRLL,0x42600000426);
 for (i=0;i<6;i++)
   Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
-AFPrint(," Click here for Pop-up version");
+InPrint(," Click here for Pop-up version");
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
-AFPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
+InPrint(,"Cd(\"::/Demo/Games\");;#include \"CastleFrankenstein\";\\n");
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT|SCF_CTRL);
 
 TourPut(
 "Press $$GREEN$$$$FG$$ until you reach the \"Pop-Up\" check-box.\n");
 for (i=0;i<2;i++)
-  AFGetKey(SC_CURSOR_DOWN);
+  InGetKey(SC_CURSOR_DOWN);
 TourPut(
 "Press $$GREEN$$$$FG$$ to check the box.\n");
-AFGetStr(" ");
+InGetStr(" ");
 
 TourPut("Press $$GREEN$$$$FG$$ to exit the form.\n");
-AFGetChar(CH_ESC);
+InGetChar(CH_ESC);
 
 TourPut("Press $$GREEN$$$$FG$$ to insert a line feed.\n");
-AFGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
+InGetKey(SC_ENTER|SCF_CTRL|SCF_SHIFT);
 
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 TourPut(
 "Press $$GREEN$$$$FG$$ to test it.\n");
-AFGetStr(" ");
+InGetStr(" ");
 
 Sleep(500);
 WinToTop;//Kludge
@@ -88,7 +88,7 @@ WinToTop;//Kludge
 TourPut(
 "Move around with cursor keys and press $$GREEN$$$$FG$$ when you "
 "are done.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "$$GREEN$$$$FG$$ to save your PersonalMenu file, if you wish.  "
diff --git a/Misc/Tour/Tour5.AUT b/Misc/Tour/Tour5.IN
similarity index 88%
rename from Misc/Tour/Tour5.AUT
rename to Misc/Tour/Tour5.IN
index 8242d06..3951f7f 100644
--- a/Misc/Tour/Tour5.AUT
+++ b/Misc/Tour/Tour5.IN
@@ -2,7 +2,7 @@
 
 //Puts the cursor at the bottom.
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
-"\nEd(\"::/Misc/Tour/Tour5.AUT.Z\");\n";
+"\nEd(\"::/Misc/Tour/Tour5.IN.Z\");\n";
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL);
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN);
 "//";
@@ -23,12 +23,12 @@ Sleep(1500);
 TourPut(
 "Press $$GREEN$$$$FG$$ for the file chooser.  Then, "
 "pick a file and press $$GREEN$$$$FG$$.");
-AFGetKey(SC_F4);
+InGetKey(SC_F4);
 Sleep(5000);
 TourPut("Press $$GREEN$$$$FG$$ to exit the form.\n");
-AFGetChar(CH_ESC);
+InGetChar(CH_ESC);
 
 TourPut("Press $$GREEN$$$$FG$$ to abort.\n");
-AFGetChar(CH_SHIFT_ESC);
+InGetChar(CH_SHIFT_ESC);
 
 TourPut("Use $$GREEN$$$$FG$$ to pick directories.\n",TRUE);
diff --git a/Misc/Tour/Tour6.AUT b/Misc/Tour/Tour6.IN
similarity index 89%
rename from Misc/Tour/Tour6.AUT
rename to Misc/Tour/Tour6.IN
index 3ca7eb9..9826eb3 100644
--- a/Misc/Tour/Tour6.AUT
+++ b/Misc/Tour/Tour6.IN
@@ -20,15 +20,15 @@ TourPut(
 "window.  Notice it is underlined.  This means a source code link is "
 "available.\n\n"
 "Press $$GREEN$$$$FG$$ to jump to source code.\n");
-AFGetKey(SC_F1|SCF_CTRL|SCF_SHIFT);
+InGetKey(SC_F1|SCF_CTRL|SCF_SHIFT);
 Sleep(500);
 WinToTop;//Kludge
 
 TourPut("Press $$GREEN$$$$FG$$ to abort the source code.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut("Press $$GREEN$$$$FG$$ to autocomplete.\n");
-AFGetKey(SC_F1|SCF_CTRL);
+InGetKey(SC_F1|SCF_CTRL);
 Sleep(500);
 
 Msg(MSG_KEY_DOWN,'\n',SCF_CTRL|SCF_SHIFT);
@@ -42,9 +42,9 @@ TourPut(
 "You can also use the $$GREEN$$Man()$$FG$$ function to jump to source code.  "
 "(I use AutoComplete.)  The $$GREEN$$Man()$$FG$$ is good for short symbol "
 "names or when inside the debugger.\n",TRUE);
-AFPrint(,"Man(\"U\");");
+InPrint(,"Man(\"U\");");
 Sleep(1500);
 "\n";
 
 TourPut("Press $$GREEN$$$$FG$$ to abort the source code.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
diff --git a/Misc/Tour/Tour7.AUT b/Misc/Tour/Tour7.IN
similarity index 94%
rename from Misc/Tour/Tour7.AUT
rename to Misc/Tour/Tour7.IN
index d3946b9..2317db8 100644
--- a/Misc/Tour/Tour7.AUT
+++ b/Misc/Tour/Tour7.IN
@@ -10,7 +10,7 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "\n";
 
 "F(\"RED\");";
-AFGetStr("\n");
+InGetStr("\n");
 Sleep(2000);
 
 TourPut("Notice the number of matches.\n",TRUE);
@@ -26,7 +26,7 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "\n";
 
 "F(\"RED\",\"+l\");";
-AFGetStr("\n");
+InGetStr("\n");
 Sleep(2000);
 
 TourPut("Notice the number of matches.\n",TRUE);
@@ -42,7 +42,7 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "\n";
 
 "F(\"RED\",\"+l-i\");";
-AFGetStr("\n");
+InGetStr("\n");
 Sleep(2000);
 
 TourPut("Notice the number of matches.\n",TRUE);
@@ -59,10 +59,10 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "\n";
 
 "Ed(\"~/HomeWrappers.HC.Z\");";
-AFGetStr("\n");
+InGetStr("\n");
 
 TourPut("Press $$GREEN$$$$FG$$ to abort the source code.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "$$GREEN$$+lb$$FG$$ is whole label just before.\n"
diff --git a/Misc/Tour/Tour8.AUT b/Misc/Tour/Tour8.IN
similarity index 91%
rename from Misc/Tour/Tour8.AUT
rename to Misc/Tour/Tour8.IN
index 02f9658..e07aeab 100644
--- a/Misc/Tour/Tour8.AUT
+++ b/Misc/Tour/Tour8.IN
@@ -3,23 +3,23 @@ TourPut(
 "Let's list files in the $$GREEN$$/Kernel$$FG$$ and sub directories.\n\n"
 "TempleOS masks have one base directory and multiple filename masks.\n\n"
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr("\n");
+InGetStr("\n");
 
 "FF(\"/Kernel/*\",\"-r\");";
 TourPut(
 "The recurse $$GREEN$$+r$$FG$$ flag is usually set.  Let's turn it off.\n\n"
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr("\n");
+InGetStr("\n");
 
 "FF(\"/Kernel/St*;*.HH*\");";
 TourPut(
 "Let's have two mask of $$GREEN$$St*$$FG$$ plus $$GREEN$$*.HH*$$FG$$\n\n"
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr("\n");
+InGetStr("\n");
 
 "FF(\"/Kernel/St*;*.HH*;!*Print*\");";
 TourPut(
 "Let's unsel $$GREEN$$*Print*$$FG$$.\n\n"
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr("\n");
+InGetStr("\n");
 TourPut("There is no way to include multiple base directories.\n",TRUE);
diff --git a/Misc/Tour/Tour9.AUT b/Misc/Tour/Tour9.IN
similarity index 76%
rename from Misc/Tour/Tour9.AUT
rename to Misc/Tour/Tour9.IN
index 08121a7..a2d21f0 100644
--- a/Misc/Tour/Tour9.AUT
+++ b/Misc/Tour/Tour9.IN
@@ -1,22 +1,22 @@
 "Ed(\"::/Misc/Bible.TXT.Z\");\n";
 TourPut("Press $$GREEN$$$$FG$$ to find.\n");
-AFGetChar(CH_CTRLF);
+InGetChar(CH_CTRLF);
 
-AFPrint(150,"new song");
+InPrint(150,"new song");
 
 TourPut("Cursor down 8 times.\n");
 I64 i;
 for (i=0;i<8;i++)
-  AFGetKey(SC_CURSOR_DOWN);
+  InGetKey(SC_CURSOR_DOWN);
 
 TourPut("Press '$$GREEN$$2$$FG$$' to show all lines within 2 of a match.\n");
-AFGetStr("2");
+InGetStr("2");
 
 TourPut("Press $$GREEN$$$$FG$$ to exit the form.\n");
-AFGetChar(CH_ESC);
+InGetChar(CH_ESC);
 
 TourPut("Look around and press $$GREEN$$$$FG$$ to turn off filter.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut("You can combine filters to effectively do AND searches.\n",TRUE);
 
diff --git a/Misc/Tour/TourA.AUT b/Misc/Tour/TourA.IN
similarity index 84%
rename from Misc/Tour/TourA.AUT
rename to Misc/Tour/TourA.IN
index e6d71d6..f1a2008 100644
--- a/Misc/Tour/TourA.AUT
+++ b/Misc/Tour/TourA.IN
@@ -1,27 +1,27 @@
 TourPut("Press $$GREEN$$$$FG$$.");
 "Ed(\"HI:Debugging\");";
-AFGetStr("\n");
+InGetStr("\n");
 TourPut("Press $$GREEN$$$$FG$$ to abort.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 TourPut(
 "We will now use $$RED$$$$TX+L+PU+UL,\"Uf\",A=\"MN:Uf\"$$$$FG$$() to "
 "unassemble a function.  It takes the function name as a string arg.\n\n"
 "Press $$GREEN$$$$FG$$.\n");
 "WinBorder;WinMax;\nUf(\"CAlloc\");";
-AFGetStr("\n");
+InGetStr("\n");
 
 TourPut("Press $$GREEN$$$$FG$$ eight times..");
 I64 i;
 for (i=0;i<8;i++)
-  AFGetKey(SC_CURSOR_UP);
+  InGetKey(SC_CURSOR_UP);
 
 TourPut(
 "Press $$GREEN$$$$FG$$.\n");
-AFGetStr(" ");
+InGetStr(" ");
 
 TourPut("Press $$GREEN$$$$FG$$ when finished.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
 
 //Puts the cursor at the bottom.
 Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
@@ -31,7 +31,7 @@ TourPut(
 "$$RED$$$$TX+L+PU+UL,\"U\",A=\"MN:U\"$$$$FG$$().\n\n"
 "Press $$GREEN$$$$FG$$.\n");
 "U(&CAlloc);";
-AFGetStr("\n");
+InGetStr("\n");
 
 TourPut("The opcodes are slightly nonstandard.\n",TRUE);
 "Ed(\"::/Compiler/OpCodes.DD.Z\");\n";
@@ -41,4 +41,4 @@ Msg(MSG_KEY_DOWN,CH_CTRLF,0x42100000421);
 Msg(MSG_KEY_DOWN,CH_ESC,0x100000001);
 
 TourPut("Press $$GREEN$$$$FG$$ to abort.\n");
-AFUntilChar(CH_ESC,CH_SHIFT_ESC);
+InUntilChar(CH_ESC,CH_SHIFT_ESC);
diff --git a/Misc/Tour/TourB.AUT b/Misc/Tour/TourB.IN
similarity index 90%
rename from Misc/Tour/TourB.AUT
rename to Misc/Tour/TourB.IN
index 84de28a..f737d0b 100644
--- a/Misc/Tour/TourB.AUT
+++ b/Misc/Tour/TourB.IN
@@ -10,12 +10,12 @@ Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
 "\n";
 
 "Type(\"~/PersonalMenu.DD\");";
-AFGetStr("\n");
+InGetStr("\n");
 
 Sleep(1500);
-AFPrint(250,"Dir;\n");
+InPrint(250,"Dir;\n");
 
 Sleep(1500);
 TourPut(
-"$$GREEN$$Type()$$FG$$ can also be used on $$GREEN$$.BMP$$FG$$ or $$GREEN$$.GRA$$FG$$ "
+"$$GREEN$$Type()$$FG$$ can also be used on $$GREEN$$.BMP$$FG$$ or $$GREEN$$.GR$$FG$$ "
 "files!",TRUE);
diff --git a/Misc/Tour/TourC.AUT b/Misc/Tour/TourC.IN
similarity index 94%
rename from Misc/Tour/TourC.AUT
rename to Misc/Tour/TourC.IN
index de4e949..7f0fd24 100644
--- a/Misc/Tour/TourC.AUT
+++ b/Misc/Tour/TourC.IN
@@ -4,7 +4,7 @@ TourPut(
 "Press $$GREEN$$$$FG$$.\n");
 
 "#include \"::/Misc/OSTestSuite\";";
-AFGetStr("\n");
+InGetStr("\n");
 
 if (LBtr(&tour_put->display_flags,DISPLAYf_SHOW))
   WinZBufUpdate;
diff --git a/PersonalMenu.DD b/PersonalMenu.DD
index 1449dc1..47ad06f 100644
Binary files a/PersonalMenu.DD and b/PersonalMenu.DD differ
diff --git a/ReadMe.TXT b/ReadMe.TXT
index 85beefc..66b7969 100644
--- a/ReadMe.TXT
+++ b/ReadMe.TXT
@@ -1,20 +1,21 @@
                            TempleOS
 
 You can't do much until you burn a TempleOS CD/DVD from the ISO file
-and boot it, or you aim your virtual machine at the ISO file and boot.
-TempleOS files are compressed and the source code can only be 
+and boot it, or you aim your virtual machine's CD/DVD at the ISO file
+and boot.  TempleOS files are compressed and the source code can only be 
 compiled by the TempleOS compiler... which is available when you boot
 the CD/DVD.  TempleOS is 100% open source with all source present.
 
 TempleOS is 64-bit and will not run on 32-bit hardware.
 
+TempleOS requires 512 Meg of RAM minimum.
+
 TempleOS may require you to enter I/O port addresses for the CD/DVD drive
 and the hard drive.  In Windows, you can find I/O port info in the
-Accessories folder, System Tools, System Info, Hardware Resources, 
-I/O ports.  Look for and write down "IDE", "ATA" or "SATA" port numbers.
-In Linux, use "lspci -v".  Then, boot the TempleOS CD and try all
-combinations.  (Sorry, it's too difficult for TempleOS to figure-out port
-numbers, automatically.)
+Accessories/System Tools/System Info/Hardware Resources/I/O ports.
+Look for and write down "IDE", "ATA" or "SATA" port numbers.  In Linux, use
+"lspci -v".  Then, boot the TempleOS CD and try all combinations.  (Sorry,
+it's too difficult for TempleOS to figure-out port numbers, automatically.)
 
 The source code can also be found at the TempleOS web site, 
 http://www.templeos.org but cannot be compiled outside TempleOS because
diff --git a/StartOS.HC b/StartOS.HC
index 2accb2f..73ef856 100644
--- a/StartOS.HC
+++ b/StartOS.HC
@@ -17,7 +17,7 @@ HashTablePurge(adam_task->hash_table);
 
 #help_index "Misc"
 //Use Dbg("Type 'G;'"); to debug before window mgr is running.
-public F64 os_version=4.110;//Operating system version.
+public F64 os_version=4.120;//Operating system version.
 
 #include "/Adam/MakeAdam"
 
@@ -35,7 +35,7 @@ LBts(&sys_run_level,RLf_REGISTRY);
 WallPaperInit;
 
 if (DrvIsWritable)
-  MkDir("/Temp"); //Good to have a Temp
+  MkDir("/Tmp"); //Good to have a Tmp
 
 Option(OPTf_WARN_PAREN,OFF);
 Option(OPTf_WARN_DUP_TYPES,OFF);