TempleOS V5.03 Nightly (ISO SHA-1 57e189b)

This commit is contained in:
Terry A. Davis
2017-06-21 21:14:32 +02:00
committed by minexew
parent da84afbaf7
commit 3b252c61be
36 changed files with 1742 additions and 1784 deletions
Binary file not shown.
+1 -1
View File
@@ -15,7 +15,7 @@ U0 LoadDocDefines()
//$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$
$TR,"LineRep"$
$ID,2$DefinePrint("DD_TEMPLEOS_LOC","80,800");
$ID,2$DefinePrint("DD_TEMPLEOS_LOC","80,845");
$ID,-2$
DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR);
DefinePrint("DD_MP_VECT_END","%08X",
-2
View File
@@ -4,8 +4,6 @@ which will regenerate processed dictionary
files from a raw Project Gutenberg
dictionary file.
$TX,"http://www.templeos.org/files/DICTIONARY.DD",HTML="http://www.templeos.org/files/DICTIONARY.DD"$
See $LK,"::/Doc/Credits.DD"$.
*/
+1 -1
View File
@@ -14,7 +14,7 @@ Cd(__DIR__);;
#include "GrBitMap"
#include "GrPrimatives"
#include "GrComposites"
#include "GrMV"
#include "ScrnCast"
#define SPE_ABORT (-1)
#define SPE_EXIT 0
+2 -4
View File
@@ -136,10 +136,8 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE)
if (task==sys_winmgr_task) {
"gr.pen_brushes\t:%010X\n",PenBrushesSize;
"gr.scrn_zoom_tbles\t:%010X\n",ScrnZoomTablesSize;
"winmgr.scrn_cast_dc\t:%010X\n",
DCSize(winmgr.scrn_cast_dc);
"winmgr.dc2_alias\t:%010X\n",
DCSize(winmgr.dc2_alias);
"scrncast.dc\t:%010X\n",DCSize(scrncast.dc);
"scrncast.dc2_alias\t:%010X\n",DCSize(scrncast.dc2_alias);
} else if (task==adam_task) {
j=0;k=0;m=0;n=0;
for (i=0;i<mp_cnt;i++) {
+1 -1
View File
@@ -13,7 +13,7 @@ U0 TOSStaffIns()
"\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n";
if (PressAKey!=CH_SHIFT_ESC) {
if (HostChgDsk("/home/tad/TOS_Supplemental1.ISO.C"))
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental1.ISO.C"))
CopyTree("T:/","~/Sup1");
Once("TOSBootHDIns;");
BIN
View File
Binary file not shown.
+1 -2
View File
@@ -6,8 +6,7 @@ CMsStateGlbls old_ms={{-1000,-1000,0},{-1000,-1000,0},{-1000,-1000,0},
FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE
};
public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,tS,NULL,
Now,tS,NULL,NULL,NULL,FALSE,FALSE,FALSE,FALSE};
public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,tS,NULL,FALSE,FALSE,FALSE};
winmgr.t=CAlloc(sizeof(CWinMgrTimingGlbls));
winmgr.t->last_calc_idle_time=tS;
+17 -35
View File
@@ -31,24 +31,6 @@ public U0 Refresh(I64 cnt=1,Bool force=FALSE)
LBEqu(&Fs->task_flags,TASKf_IDLE,old_idle);
}
#help_index "Windows;Cmd Line (Typically)"
public Bool ScrnCast(Bool val=ON,U8 *print_fmt="B:/Tmp/%X.GR")
{//WinMgr saves GR files to a dir.
Bool old_val;
if (val) {
if (!(old_val=LBtr(&winmgr.scrn_cast,0))) {
Free(winmgr.scrn_cast_print_fmt);
winmgr.scrn_cast_print_fmt=AStrNew(print_fmt);
winmgr.scrn_cast_now=Now;
winmgr.scrn_cast_tS=tS;
LBts(&winmgr.scrn_cast,0);
}
} else
old_val=LBtr(&winmgr.scrn_cast,0);
return old_val;
}
#help_index "Windows"
I64 WinQueIPMsgs(Bool que)
@@ -288,28 +270,28 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE)
LBts(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0);
GrUpdateScrn;
LBtr(&sys_semas[SEMA_REFRESH_IN_PROGRESS],0);
if (winmgr.scrn_cast) {
cdt=winmgr.scrn_cast_now+ToI64(CDATE_FREQ*(tS-winmgr.scrn_cast_tS));
if (!winmgr.scrn_cast_dc) {
winmgr.scrn_cast_dc=DCCopy(winmgr.dc2_alias);
winmgr.scrn_cast_dc->cdt=cdt;
st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt);
GRWrite(st,winmgr.scrn_cast_dc);
if (scrncast.record && !scrncast.just_audio) {
cdt=scrncast.t0_now(I64)+ToI64(CDATE_FREQ*(tS-scrncast.t0_tS));
if (!scrncast.dc) {
scrncast.dc=DCCopy(scrncast.dc2_alias);
scrncast.dc->cdt=cdt;
st=MStrPrint(scrncast.print_fmt,cdt);
GRWrite(st,scrncast.dc);
Free(st);
} else if (MemCmp(winmgr.scrn_cast_dc->body,
winmgr.dc2_alias->body,MSize(winmgr.dc2_alias->body))) {
diff=DCDiff(winmgr.scrn_cast_dc,winmgr.dc2_alias);
} else if (MemCmp(scrncast.dc->body,
scrncast.dc2_alias->body,MSize(scrncast.dc2_alias->body))) {
diff=DCDiff(scrncast.dc,scrncast.dc2_alias);
diff->cdt=cdt;
st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt);
st=MStrPrint(scrncast.print_fmt,cdt);
GRWrite(st,diff);
Free(st);
DCDel(diff);
Free(winmgr.scrn_cast_dc->body);
winmgr.scrn_cast_dc->body=MAllocIdent(winmgr.dc2_alias->body);
Free(scrncast.dc->body);
scrncast.dc->body=MAllocIdent(scrncast.dc2_alias->body);
}
} else if (winmgr.scrn_cast_dc) {
DCDel(winmgr.scrn_cast_dc); //TODO: $LK,"MemRep",A="MN:MemRep"$ can crash.
winmgr.scrn_cast_dc=NULL;
} else if (scrncast.dc) {
DCDel(scrncast.dc); //TODO: $LK,"MemRep",A="MN:MemRep"$ can crash.
scrncast.dc=NULL;
}
if (sys_focus_task && !Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) {
Free(music.cur_song);
@@ -450,7 +432,7 @@ U0 WinMgrTask(I64)
gr.dc->win_task=Fs;
Fs->win_inhibit&=~WIF_SELF_CTRLS;
GrSetUpTables;
winmgr.dc2_alias=DCAlias(gr.dc2);
scrncast.dc2_alias=DCAlias(gr.dc2);
WinZBufUpdate;
LBts(&sys_run_level,RLf_WINMGR);
while (TRUE) {
-14
View File
@@ -165,20 +165,6 @@ $BG$class Frame
#define COURT_BORDER 10
#define COLLISION_DAMP 0.8
/* Viscosity is way bigger than
real air viscosity. In reality
air is approximated by V and V$SY,-3$2$SY,0$
terms and is smaller. However, I use
this to produce a rolling friction
value, too. If you want to see my
best attempt at realistic physics
download SimStructure.
http://www.templeos.org/files/SimStrSetUp.zip
This is just a video game. Relax.
*/
#define AIR_VISCOSITY 0.1
#define GRAVITY_ACCELERATION 500
+1 -1
View File
@@ -1,4 +1,4 @@
#help_index "Snd"
#help_index "Snd/Music/Apps"
Cd(__DIR__);;
#include "JukeBox"
+4 -4
View File
@@ -162,7 +162,7 @@ U0 UnitDirectFire(Unit *tmpu,Unit *target)
facing=0;
DamageDo(target,HitDamage(tmpu,target,facing,range_factor));
}
while (snd.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
while (scrncast.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
Yield;
target_unit=NULL;
}
@@ -195,7 +195,7 @@ Bool HexOccupy(Bool overrun,Unit *tmpu,Unit *target)
}
if (DamageDo(target,Round(damage))) {
"$$RED$$Success$$FG$$\n";
while (snd.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
while (scrncast.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
Yield;
return TRUE;
} else {
@@ -203,7 +203,7 @@ Bool HexOccupy(Bool overrun,Unit *tmpu,Unit *target)
VisRecalc(VR_FRIENDLY_UNIT_DIED,tmpu);
alive_cnt[tmpu->player]--;
"$$RED$$Failure$$FG$$\n";
while (snd.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
while (scrncast.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
Yield;
return FALSE;
}
@@ -267,7 +267,7 @@ U0 IndirectResolveAll()
}
Noise(2000*animation_delay,70,74);
Sleep(2000*animation_delay);
while (snd.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
while (scrncast.ona!=ONA_REST) //see $LK,"Snd",A="MN:Snd"$()
Yield;
indirect_explosion=FALSE;
Binary file not shown.
+4 -4
View File
@@ -157,17 +157,17 @@ Bool MyPutKey(I64 ch,I64 sc)
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /FrameGrabber Sync");
else if (fg_on)
FrameGrabberToggle(FALSE,FALSE,FALSE);
FrameGrabberToggle(FALSE,FALSE);
else
FrameGrabberToggle(TRUE,FALSE,FALSE);
FrameGrabberToggle(TRUE,FALSE);
return TRUE;
case 'F': //With sync and intro TOS theme
if (sc&SCF_KEY_DESC)
KeyDescSet("Cmd /FrameGrabber Intro");
else if (fg_on)
FrameGrabberToggle(FALSE,FALSE,TRUE);
FrameGrabberToggle(FALSE,FALSE);
else
FrameGrabberToggle(TRUE,TRUE,FALSE);
FrameGrabberToggle(TRUE,TRUE);
return TRUE;
case 'h':
if (sc&SCF_KEY_DESC)
Binary file not shown.
+2
View File
@@ -1,5 +1,7 @@
$WW,1$$FG,5$$TX+CX,"TODO"$$FG$
* Compiler Bug: $LK,"AUWrite",A="MN:AUWrite"$() dst->cdt=t0_now+ToI64(CDATE_FREQ*(tmpsd->tS-t0_tS));
* Make MV files combine disjoint rects for same frame.
* God said to reconsider switch start/end, perhaps preface portion?
+1 -1
View File
@@ -60,7 +60,7 @@ $ID,-2$$TR,"Titanium"$
$ID,2$I64 best_score=16469;
$ID,-2$$TR,"TOSRegen"$
$ID,2$progress1_tf=0.000;progress2_tf=0.000;
progress3_tf=0.000;progress4_tf=279.384;
progress3_tf=0.000;progress4_tf=341.847;
$ID,-2$$ID,-2$$TR,"Once"$
$ID,2$$TR,"Adam"$
$ID,2$$ID,-2$$TR,"User"$
+8 -8
View File
@@ -221,9 +221,9 @@ U0 UpdateISODocDefines()
try {
DefinePrint("DD_TEMPLEOSCD_SIZE",
"Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
0.1*(10*Size("D:/TOS_Distro.ISO","+s")/1024/1024));
0.1*(10*Size("D:/Downloads/TOS_Distro.ISO","+s")/1024/1024));
DefinePrint("DD_TEMPLEOSCD_K_SIZE",
"%dKB",Size("D:/TOS_Distro.ISO","+s")/1024);
"%dKB",Size("D:/Downloads/TOS_Distro.ISO","+s")/1024);
} catch
Fs->catch_except=TRUE;
}
@@ -270,22 +270,22 @@ U0 TOSRegen2()
TOSProgress("Make Standard Distro ISO");
MakeStdDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/TOS_Distro.ISO");
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Distro.ISO");
TOSProgress("Make Supplemental1 ISO");
RedSeaISO("D:/TOS_Supplemental1","C:/Home/Sup1");
RedSeaISO("D:/Downloads/TOS_Supplemental1","C:/Home/Sup1");
#if MAKE_DBG
TOSProgress("Make Dbg Distro ISO");
MakeDbgDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/TOS_Dbg.ISO");
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Dbg.ISO");
#endif
#if MAKE_STAFF
TOSProgress("Make Staff Distro ISO");
MakeStaffDistro;
DocClear;
Move(TOS_ISO_NAME,"D:/TOS_Staff.ISO");
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Staff.ISO");
#endif
UpdateISODocDefines;
@@ -323,8 +323,8 @@ public U0 TOSPreRegen()
CopyTree("D:/Home/Sup1/Sup1Bin","C:/Home/Sup1/Sup1Bin");
Copy("D:/Home/Sup1/Sup1CodeScraps/Comm/TOSSocket*",
"C:/Home/Sup1/Sup1CodeScraps/Comm");
DelTree("C:/Linux");
CopyTree("D:/Linux","C:/Linux");
DelTree("C:/Downloads/Linux");
CopyTree("D:/Downloads/Linux","C:/Downloads/Linux");
}
public U0 TOSRegen()
+16 -24
View File
@@ -2,56 +2,47 @@
Bool fg_on =FALSE;
I64 CopyVideo(Bool reverb)
I64 CopyVideo()
{
I64 res=0;
F64 delay=0,intensity=0;
Bool old_silent=Silent;
if (reverb) {
delay=0.45;
intensity=0.35;
}
Del("D:/Tmp/*.SND");
Del("D:/Tmp/*.AU");
Del("D:/Tmp/*.MV");
Silent(old_silent);
RunFile("~/Sup1/Sup1Snd/SndFile",,
"D:/Tmp/AUD%03d.SND",0.115,0.0,1,delay,intensity,0.185);
SndShift(&scrncast.snd_head,0.185);
AUWrite("D:/Tmp/AUDIO",&scrncast.snd_head,scrncast.t0_now,scrncast.t0_tS);
QueDel(&scrncast.snd_head,TRUE);
GR2MV("D:/Tmp/VID%03d.MV","B:/Tmp","+d");
return res;
}
#help_index "Misc/TOS"
#help_index "ScrnCast/TOS"
U0 DelScrnShots()
{
Bool old_silent=Silent;
DelTree("B:/Tmp");
DirMk("B:/Tmp");
Del("D:/Tmp/*.SND");
Del("D:/Tmp/*.AU");
Del("D:/Tmp/*.MV");
Del("C:/Tmp/*.SND");
Del("C:/Tmp/*.AU");
Del("C:/Tmp/*.MV");
Silent(old_silent);
}
public U0 FrameGrabberToggle(Bool sync_tone,Bool tos_theme,
Bool reverb,Bool just_audio=FALSE)
Bool just_audio=FALSE)
{//The frame grabber saves GR files to B:/Tmp.
static F64 last_time=0;
if (tS-last_time>3.0) {
last_time=tS;
if (fg_on) {
fg_on=FALSE;
Snd;
wall->record=snd.record=FALSE;
ScrnCast(OFF);
User("CopyVideo(%d);Exit;\n",reverb);
User("CopyVideo;Exit;\n");
} else {
DelScrnShots;
fg_on=TRUE;
if (!just_audio)
ScrnCast(ON);
wall->record=snd.record=TRUE;
Snd;
ScrnCast(ON,just_audio);
if (sync_tone) {Beep;}
if (tos_theme) {User("ExeFile(\"~/TOS/TOSTheme\");Exit;\n");}
}
@@ -61,19 +52,19 @@ public U0 FrameGrabberToggle(Bool sync_tone,Bool tos_theme,
public U0 JukeSong(I64 num,I64 passes=2)
{//Make movie of one song.
if (!fg_on)
FrameGrabberToggle(FALSE,FALSE,FALSE);
FrameGrabberToggle(FALSE,FALSE);
JukeSongsPuppet("~/Sup1/Sup1Hymns",passes,num,num+1);
if (fg_on)
FrameGrabberToggle(FALSE,FALSE,TRUE);
FrameGrabberToggle(FALSE,FALSE);
}
public U0 JukeLines(I64 start_line,I64 end_line)
{//Make movie of many lines of songs, starting at 0.
if (!fg_on)
FrameGrabberToggle(FALSE,FALSE,FALSE);
FrameGrabberToggle(FALSE,FALSE);
JukeSongsPuppet("~/Sup1/Sup1Hymns",,start_line*5,end_line*5);
if (fg_on)
FrameGrabberToggle(FALSE,FALSE,TRUE);
FrameGrabberToggle(FALSE,FALSE);
}
public U0 TADHymn(I64 num)
@@ -81,6 +72,7 @@ public U0 TADHymn(I64 num)
JukeLines((num-1)*2,num*2);
}
#help_index "Misc/TOS"
public U0 DskChkAll()
{//DskChk on C & D.
U8 *ptr=TOS_HDS;
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -1,6 +1,6 @@
$WW,1$$FG,5$$TX+CX,"The Temple Operating System",HTML="http://www.templeos.org"$$FG,0$
$FG,4$$TX,"Downloads (100% Public Domain)",HTML="http://www.templeos.org/files"$$FG$
$FG,4$$TX,"TempleOS File Downloads (100% Public Domain)",HTML="http://www.templeos.org/Downloads"$$FG$
TempleOS is a free, public domain, open source, x86_64, non-preemptive multi-tasking, multi-cored, ring-0-only, single-address-map (identity-mapped), non-networked, PC operating system. Paging is, basically, not used.
@@ -8,4 +8,4 @@ The CIA obsfucates to foil India, China, Russia and Korea. They make things mor
God said TempleOS must be perfect, so backward compatibility is not promised.
I, Terry Davis, wrote all $TX,"81,281",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.9",D="DD_TEMPLEOS_AGE"$ years, including the 64-bit compiler. I have been a professional operating system developer since 1990 when I worked on Ticketmaster's VAX OS.
I, Terry Davis, wrote all $TX,"80,847",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.9",D="DD_TEMPLEOS_AGE"$ years, including the 64-bit compiler. I have been a professional operating system developer since 1990 when I worked on Ticketmaster's VAX OS.
+1 -3
View File
@@ -18,15 +18,13 @@ $TX,"tdavis@templeos.org",HTML="mailto:tdavis@templeos.org"$
$FG,5$About Me:$FG$
$TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$ $TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$
I was a National Merit Scholar with a 1440 SAT at Arizona State University. I have a bachelor's in Computer System Engineering from ASU, basically, embedded systems, and a master's in Electrical Engineering from ASU, control systems. I worked as a software, hardware and mechanical engineer at Ticketmaster from 1990-1996.
I designed a 3 axis stepper-motor-driven milling machine 1996-1997 with a CAD/CAM package for a company I started called Home Automation and Robotic Equipment.
$HC,"<center><img src=\"http://www.templeos.org/images/Machine.jpg\" width=\"600\" height=\"400\" alt=\"\"></center>"$
I worked for a company named Xytec Corp. 1997-1999. We made FPGA-based image processing equipment. I wrote $FG,2$$TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$$FG$ from 2000-2001 for H.A.R.E. I worked as head software/electrical engineer for a company called Graphic Technologies, 2001-2002, making replacement chips for toner printer cartridges so they could be refilled.
I worked for a company named Xytec Corp. 1997-1999. We made FPGA-based image processing equipment. I wrote $FG,2$SimStructure$FG$ from 2000-2001 for H.A.R.E. I worked as head software/electrical engineer for a company called Graphic Technologies, 2001-2002, making replacement chips for toner printer cartridges so they could be refilled.
$FG,5$Credits:$FG$
See $LK,"::/Doc/Credits.DD"$.
+3 -3
View File
@@ -1,6 +1,6 @@
$WW,1$$FG,5$$TX+CX,"Credits"$$FG$
I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.8",D="DD_TEMPLEOS_AGE"$ years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders! It is public domain, not GPL.
I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.9",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.
@@ -34,7 +34,7 @@ I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.8",D="D
*) God told me to stick with 640x480 16 color and single-voice 8-bit signed MIDI-like sample for sound. He kept me from zombie-walking into making child windows like $FG,2$Windows$FG$. Instead, I made one window per task with no child windows. He also guided my progress, very obviously.
*) I got $FG,4$$TX,"Webster's Dictionary",HTML="http://www.templeos.org/files/DICTIONARY.DD"$$FG$ and $FG,4$$TX,"The King James Bible",HTML="http://www.templeos.org/files/BIBLE.DD"$$FG$ from $FG,4$$TX,"Project Gutenberg",HTML="http://web.archive.org/web/20110730111436/http://promo.net/pg/"$$FG$.
*) I got $FG,4$$TX,"Webster's Dictionary",HTML="http://www.templeos.org/files/DICTIONARY.DD"$$FG$ and $LK,"The King James Bible",A="FI:::/Misc/Bible.TXT"$ from $FG,4$$TX,"Project Gutenberg",HTML="http://web.archive.org/web/20110730111436/http://promo.net/pg/"$$FG$.
*) John Carmack inspired me to use "$LK,"Clamp",A="MN:Clamp"$" as a name instead of "Limit". He inspired me to use "needle" and "haystack" as names. He inspired me to simplify my Frames-Per-Second code.
@@ -42,7 +42,7 @@ I, $FG,2$Terry A. Davis$FG$, wrote all of TempleOS over the past $TX,"13.8",D="D
*) I hired an artist, Cody Rigby, for $$3,000 worth of pixel art.
*) Erik van der Karbargenbok wrote /Linux shell scripts -- GodPassage, GodWords.
*) Erik van der Karbargenbok wrote /Downloads shell scripts -- gw.
*) The random number generator is from Donald Knuth in the wikipedia entry for $TX,"Linear_congruential_generator",HTML="http://en.wikipedia.org/wiki/Linear_congruential_generator"$.
+1 -1
View File
@@ -17,7 +17,7 @@ $LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk.
* 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.
* VMware PC speaker's distortion is a good idea, but it is too much for hymns.
* VMware and others must list TempleOS as an official 64-bit operating system.
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -49,7 +49,7 @@ I am tmpted to help amateur hardware device designers by making the hardware int
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.
Digital cameras will be super-simple high speed serial, but TempleOS is forever limited to 16 colors and multimedia is banned because large files being loaded into memory fragments memory, so cameras are somewhat unwelcome. I have enough problems without making the Brits anxious about autonomous gun turrets and killer robots. The reason I say cameras will be super-simple serial is because we are replacing USB ports with super-simple serial. Windows/Linux will have only super-simple serial ports unless people buy a USB PCI expansion card. So, the digital cameras will be super-simple serial.
Digital cameras will be super-simple high speed serial, but TempleOS is forever limited to 16 colors and multimedia is banned because large files being loaded into memory fragments memory, so cameras are somewhat unwelcome. I have enough problems without making the Brits anxious about autonomous gun turrets and killer robots. The reason I say cameras will be super-simple serial is because we are replacing USB ports with super-simple serial. PC's will have only super-simple serial ports unless people buy a USB PCI expansion card. So, the digital cameras will be super-simple serial.
$FG,5$$TX+CX,"Version 1.0"$$FG$
Binary file not shown.
+3 -4
View File
@@ -988,7 +988,7 @@ int SND2MP4Lst(char *snd_print_fmt,char *mp4_print_fmt,char *out_name,
}
int AU2SNDLst(char *au_name,char *snd_print_fmt,
char *mp4_print_fmt,char *out_name,double vol=1.0,int rate=24000)
char *mp4_print_fmt,char *out_name,int rate=24000)
{//Cvt AU file to SND lst to MP4
int num=0,snd_percent_cnt;
FILE *au_file;
@@ -998,7 +998,7 @@ int AU2SNDLst(char *au_name,char *snd_print_fmt,
else
snd_percent_cnt=0;
AURead(&head,au_name);
num=SndFileCreate(&head,snd_print_fmt,vol);
num=SndFileCreate(&head,snd_print_fmt);
QueDel(&head);
return SND2MP4Lst(snd_print_fmt,mp4_print_fmt,out_name,rate);
}
@@ -1008,7 +1008,6 @@ int main(int argc, char* argv[])
char *in_name,*out_name,st[256],*mv_print_fmt,*au_name;
BOOL cvt_ascii,del_in=FALSE;
int i=1,l;
double vol=0.1;
if (argc>i && !strcmp(argv[i],"-mp4")) {
i++;
if (argc>i)
@@ -1023,7 +1022,7 @@ int main(int argc, char* argv[])
(char *)"TOSZTEMP%06d.BMP",(char *)"TOSZTEMPVID%03d.MP4",
(char *)"TOSZVIDEO.MP4");
AU2SNDLst(au_name,(char *)"TOSZTEMP%03d.SND",
(char *)"TOSZTEMPAUD%03d.MP4",(char *)"TOSZAUDIO.MP4",vol);
(char *)"TOSZTEMPAUD%03d.MP4",(char *)"TOSZAUDIO.MP4");
if (argc>i)
out_name=argv[i++];
else
+1 -1
View File
@@ -26,7 +26,7 @@ CMsStateGlbls ms,ms_last;
CKbdStateGlbls kbd;
CKeyDevGlbls keydev;
CMsHardStateGlbls ms_hard,ms_hard_last;
CSndGlbls snd;
CScrnCastGlbls scrncast;
CTextGlbls text;
U8 *(*fp_getstr2)(I64 flags=0);
+4 -3
View File
@@ -48,9 +48,10 @@ U0 SysGlblsInit()
for (i=-308;i<309;i++)
pow10_I64[i+309]=Pow10(i);
snd.ona=ONA_REST;
QueInit(&snd.record_head);
snd.record_head.time=tS;
QueInit(&scrncast.snd_head);
scrncast.t0_now=Now;
scrncast.t0_tS=tS;
scrncast.ona=scrncast.snd_head.ona=ONA_REST;
ProgressBarsRst;
+25 -6
View File
@@ -183,26 +183,45 @@ U0 Snd(I8 ona=ONA_REST)
if (!Bt(&sys_semas[SEMA_MUTE],0) &&
!LBts(&sys_semas[SEMA_SND],0)) { //Mutex. Just throw-out if in use
if (ona<=ONA_REST) {
snd.ona=ona;
scrncast.ona=ona;
OutU8(0x61,InU8(0x61)&~3);
} else if (ona!=snd.ona) {
snd.ona=ona;
} else if (ona!=scrncast.ona) {
scrncast.ona=ona;
period=ClampI64(SYS_TIMER_FREQ/Ona2Freq(ona),1,U16_MAX);
OutU8(0x43,0xB6);
OutU8(0x42,period);
OutU8(0x42,period.u8[1]);
OutU8(0x61,3|InU8(0x61));
}
if (!IsDbgMode && snd.record) {
if (!IsDbgMode && scrncast.record) {
d=ACAlloc(sizeof(CSndData));
d->ona=ona;
d->time=tS;
QueIns(d,snd.record_head.last);
d->tS=tS;
QueIns(d,scrncast.snd_head.last);
}
LBtr(&sys_semas[SEMA_SND],0);
}
}
Bool ScrnCast(Bool val=ON,Bool just_audio=FALSE,U8 *print_fmt="B:/Tmp/%X.GR")
{//WinMgr saves GR files to a dir.
Bool old_val;
scrncast.just_audio=just_audio;
if (val) {
if (!(old_val=LBtr(&scrncast.record,0))) {
Free(scrncast.print_fmt);
scrncast.print_fmt=AStrNew(print_fmt);
scrncast.t0_now=Now;
scrncast.snd_head.tS=scrncast.t0_tS=tS;
scrncast.snd_head.ona=scrncast.ona;
LBts(&scrncast.record,0);
}
} else
old_val=LBtr(&scrncast.record,0);
Snd;
return old_val;
}
U0 SndRst()
{//Fix stuck sound.
if (Bt(&sys_semas[SEMA_SND],0)) {
+1614 -1640
View File
File diff suppressed because one or more lines are too long
+21 -15
View File
@@ -1487,13 +1487,7 @@ public class CWinMgrGlbls
ideal_refresh_tS,
last_refresh_tS;
CWinMgrTimingGlbls *t;
CDate scrn_cast_now;
F64 scrn_cast_tS;
U8 *scrn_cast_print_fmt;
CDC *scrn_cast_dc,*dc2_alias;
Bool show_menu,
grab_scroll,grab_scroll_closed,
scrn_cast;
Bool show_menu,grab_scroll,grab_scroll_closed;
};
#help_index "AutoComplete"
@@ -3778,18 +3772,30 @@ class CKeyDevGlbls
#help_index "Snd"
#define ONA_REST I8_MIN
class CSndData
{
CSndData *next,*last;
F64 time;
#help_index "ScrnCast;Snd/AU Files"
public class CAUData
{//Fmt of AU files
CDate cdt;
I8 ona;
};
public class CSndGlbls
{
CSndData record_head;
class CSndData
{//Fmt recorded in mem
CSndData *next,*last;
F64 tS;
I8 ona;
};
public class CScrnCastGlbls
{
CSndData snd_head;
CDate t0_now;
F64 t0_tS;
U8 *print_fmt;
CDC *dc,*dc2_alias;
Bool record,just_audio;
I8 ona;
Bool record;
};
#help_index "Debugging/FunSeg"
+6 -2
View File
@@ -664,6 +664,11 @@ public extern U8 *IntEntryGet(I64 irq);
public extern U8 *IntEntrySet(I64 irq,
U0 (*fp_new_hndlr)(),I64 type=IDTET_IRQ,I64 dpl=0);
#help_index "ScrnCast;Cmd Line (Typically)"
public extern Bool ScrnCast(Bool val=ON,Bool just_audio=FALSE,
U8 *print_fmt="B:/Tmp/%X.GR")
public extern CScrnCastGlbls scrncast;
#help_index "Snd"
#help_file "::/Doc/Snd"
public extern U0 Beep(I8 ona=62,Bool busy=FALSE);
@@ -673,7 +678,6 @@ public extern Bool Mute(Bool val);
public extern F64 Ona2Freq(I64 ona);
public extern U0 Snd(I8 ona=ONA_REST);
public extern U0 SndRst();
public extern CSndGlbls snd;
#help_index "StdIn"
#help_file "::/Doc/Streams"
@@ -725,7 +729,6 @@ public extern CTask *Spawn(U0 (*fp_addr)(U8 *data),U8 *data=NULL,
#help_index "Time/CPU Cycles;Time/HPET;Time/Jiffies"
public extern CCntsGlbls cnts;
#help_index "Time/Date/CDate;Date/CDate"
#help_file "::/Doc/TimeDate"
public extern U0 Date2Struct(CDateStruct *_ds,CDate cdt);
@@ -749,6 +752,7 @@ public extern U16 mon_start_days2[12];
#help_index "Time/HPET"
#help_file "::/Doc/TimeHPET"
public extern I64 HPET();
#help_index "Time/Jiffies"
#help_file "::/Doc/TimeJiffy"
public extern I64 SysTimerRead();//18.33333*65536Hz (SYS_TIMER_FREQ)
+1 -1
View File
@@ -32,7 +32,7 @@ U0 MakeMyISO(U8 *_out_iso_filename)
//To save space, optionally delete dictionary.
//Del("/Distro/Adam/AutoComplete/ACDefs.DATA");
CopyTree("/Linux","/Distro/Linux"); //You can leave this out.
CopyTree("/Downloads","/Distro/Downloads"); //You can leave this out.
DirMk("/Distro/Tmp");
DirMk("/Distro/Tmp/ScrnShots");
RedSeaISO(out_iso_filename,"/Distro","/Distro" BOOT_DIR_KERNEL_BIN_C);